d2coreui 23.0.14 → 23.0.15

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 (403) hide show
  1. package/components/clipboard/clipboardUtils.ts +53 -0
  2. package/components/codemirror/SyntaxHighlighter.tsx +58 -0
  3. package/components/collapse/expandable.tsx +48 -0
  4. package/components/color/colorPicker.tsx +121 -0
  5. package/components/color/colorSwatch.d.ts +18 -13
  6. package/components/color/colorSwatch.jsx +87 -0
  7. package/components/color/colorUtils.ts +60 -0
  8. package/components/date/dateRangeInput.tsx +468 -0
  9. package/components/date/dateRangeInputAdvancedPanel.tsx +238 -0
  10. package/components/date/dateRangeInputConfirm.tsx +200 -0
  11. package/components/date/dateTimeInput.tsx +633 -0
  12. package/components/date/durationInput.tsx +375 -0
  13. package/components/form/NiceFormItem.tsx +32 -0
  14. package/components/grid/cell/beanAccessor.ts +17 -0
  15. package/components/grid/cell/cellEditorUtils.ts +12 -0
  16. package/components/grid/cell/customEnumCellEditor.tsx +130 -0
  17. package/components/grid/cell/dataGridCellEditorComponent.tsx +61 -0
  18. package/components/grid/cell/dateCellEditor.tsx +83 -0
  19. package/components/grid/cell/durationCellEditor.tsx +105 -0
  20. package/components/grid/cell/hexaOctetStringCellEditor.tsx +101 -0
  21. package/components/grid/cell/hexaValueCellEditor.tsx +92 -0
  22. package/components/grid/cell/numberCellEditor.tsx +115 -0
  23. package/components/grid/cell/rangeSelector.d.ts +9 -78
  24. package/components/grid/cell/rangeSelector.js +674 -527
  25. package/components/grid/cell/simpleStatusTextCellEditor.tsx +168 -0
  26. package/components/grid/cell/statusTextCellEditor.tsx +198 -0
  27. package/components/grid/cell/tableDefaultRowStyleRules.ts +51 -0
  28. package/components/grid/cell/textCellEditor.tsx +94 -0
  29. package/components/grid/cell/withAgGridHooks.tsx +15 -0
  30. package/components/grid/columnUtils.ts +29 -0
  31. package/components/grid/config/columnTransfer.tsx +258 -0
  32. package/components/grid/config/dataGridEditor.tsx +328 -0
  33. package/components/grid/config/rowHeightCalculator.tsx +29 -0
  34. package/components/grid/config/rowStylePicker.tsx +196 -0
  35. package/components/grid/dataGrid.tsx +2183 -0
  36. package/components/grid/detail/detailHeaderPanel.tsx +59 -0
  37. package/components/grid/export/contextMenu.tsx +154 -0
  38. package/components/grid/export/progressPopup.tsx +106 -0
  39. package/components/grid/export/worker/clipboardExport.ts +10 -0
  40. package/components/grid/export/worker/csvExport.ts +10 -0
  41. package/components/grid/export/worker/pdfExport.ts +98 -0
  42. package/components/grid/export/worker/txtExport.ts +21 -0
  43. package/components/grid/extendedDataGrid.tsx +974 -0
  44. package/components/grid/filter/customColumnFilter.tsx +14 -0
  45. package/components/grid/filter/dataGridColumnFilter.tsx +70 -0
  46. package/components/grid/filter/dateColumnFilter.tsx +34 -0
  47. package/components/grid/filter/textColumnFilter.tsx +37 -0
  48. package/components/grid/filter/wildcardQuickFilterEngine.ts +50 -0
  49. package/components/grid/header/simpleHeader.tsx +270 -0
  50. package/components/grid/panel/dataGridPagination.tsx +123 -0
  51. package/components/grid/panel/loadingOverlay.tsx +14 -0
  52. package/components/grid/panel/noRecordsOverlay.tsx +16 -0
  53. package/components/grid/panel/tablePagination.tsx +77 -0
  54. package/components/icons/dropdownArrow.tsx +67 -0
  55. package/components/icons/undoIcon.tsx +16 -0
  56. package/components/input/autoCompleteInput.tsx +174 -0
  57. package/components/input/draftUtils.tsx +62 -0
  58. package/components/input/draftail.d.ts +186 -1
  59. package/components/input/draftail.js +1 -2
  60. package/components/input/hexaFormattedInput.tsx +64 -0
  61. package/components/input/mask/helpers.ts +154 -0
  62. package/components/input/mask/inputMaskCore.ts +452 -0
  63. package/components/input/mask/pattern.ts +122 -0
  64. package/components/input/maskedInput.tsx +275 -0
  65. package/components/input/passwordInput.tsx +62 -0
  66. package/components/input/simpleAutoComplete.tsx +60 -0
  67. package/components/input/textarea/extractSpansOfClasses.tsx +125 -0
  68. package/components/input/textarea/getRanges.ts +82 -0
  69. package/components/input/textarea/getType.ts +23 -0
  70. package/components/input/textarea/highlighedContents.tsx +20 -0
  71. package/components/input/textarea/highlightedTextarea.css +61 -0
  72. package/components/input/textarea/mentionsWithHighlighting.tsx +95 -0
  73. package/components/keyboard/keyboardUtils.ts +42 -0
  74. package/components/modal/draggableModalProvider.tsx +37 -0
  75. package/components/modal/impl/clamp.ts +4 -0
  76. package/components/modal/impl/draggableModal.tsx +36 -0
  77. package/components/modal/impl/draggableModalContext.ts +14 -0
  78. package/components/modal/impl/draggableModalInner.tsx +114 -0
  79. package/components/modal/impl/draggableModalReducer.ts +285 -0
  80. package/components/modal/impl/getWindowSize.ts +6 -0
  81. package/components/modal/impl/index.ts +5 -0
  82. package/components/modal/impl/resizeHandle.tsx +12 -0
  83. package/components/modal/impl/useDrag.ts +57 -0
  84. package/components/modal/impl/usePrevious.ts +11 -0
  85. package/components/modal/impl/useResize.ts +79 -0
  86. package/components/modal/modalDialog.tsx +172 -0
  87. package/components/picker/enumValuePicker.tsx +48 -0
  88. package/components/platformSpecific.ts +39 -0
  89. package/components/scrollTo/dom-scroll-into-view.d.ts +1 -0
  90. package/components/scrollTo/onlyText.ts +36 -0
  91. package/components/scrollTo/scrollTo.tsx +324 -0
  92. package/components/style/withCss.tsx +14 -0
  93. package/components/style/withInputNumberCss.tsx +18 -0
  94. package/components/svg.d.ts +1 -0
  95. package/components/table/dragSortingTable.tsx +123 -0
  96. package/components/text/impl/innerSize.ts +15 -0
  97. package/components/text/impl/series.ts +37 -0
  98. package/components/text/impl/shallowEqual.ts +19 -0
  99. package/components/text/impl/uniqueId.ts +5 -0
  100. package/components/text/impl/whilst.ts +25 -0
  101. package/components/text/textFit.tsx +229 -0
  102. package/i18n/components.cs.json +101 -101
  103. package/i18n/components.sk.json +101 -101
  104. package/i18n/components.uk.json +101 -101
  105. package/i18n/componentsLocaleHolder.js +24 -29
  106. package/i18n/componentsLocaleLoader.d.ts +9 -0
  107. package/lib/esm/components/color/colorSwatch.d.ts +13 -0
  108. package/lib/esm/components/grid/cell/rangeSelector.d.ts +78 -0
  109. package/lib/esm/components/grid/cell/rangeSelector.js +527 -0
  110. package/{components → lib/esm/components}/grid/export/contextMenu.js +4 -4
  111. package/lib/esm/components/input/draftail.d.ts +1 -0
  112. package/lib/esm/components/input/draftail.js +2 -0
  113. package/lib/esm/i18n/components.cs.json +101 -0
  114. package/lib/esm/i18n/components.sk.json +101 -0
  115. package/lib/esm/i18n/components.uk.json +101 -0
  116. package/lib/esm/i18n/componentsLocaleHolder.js +29 -0
  117. package/lib/esm/package.json +70 -0
  118. package/lib/esm/tsconfig.build.json +24 -0
  119. package/lib/esm/tsconfig.json +11 -0
  120. package/package.json +3 -3
  121. package/tsconfig.build.json +24 -24
  122. package/tsconfig.json +11 -11
  123. /package/{components → lib/esm/components}/clipboard/clipboardUtils.d.ts +0 -0
  124. /package/{components → lib/esm/components}/clipboard/clipboardUtils.js +0 -0
  125. /package/{components → lib/esm/components}/clipboard/clipboardUtils.js.map +0 -0
  126. /package/{components → lib/esm/components}/codemirror/SyntaxHighlighter.d.ts +0 -0
  127. /package/{components → lib/esm/components}/codemirror/SyntaxHighlighter.js +0 -0
  128. /package/{components → lib/esm/components}/codemirror/SyntaxHighlighter.js.map +0 -0
  129. /package/{components → lib/esm/components}/collapse/expandable.d.ts +0 -0
  130. /package/{components → lib/esm/components}/collapse/expandable.js +0 -0
  131. /package/{components → lib/esm/components}/collapse/expandable.js.map +0 -0
  132. /package/{components → lib/esm/components}/color/colorPicker.d.ts +0 -0
  133. /package/{components → lib/esm/components}/color/colorPicker.js +0 -0
  134. /package/{components → lib/esm/components}/color/colorPicker.js.map +0 -0
  135. /package/{components → lib/esm/components}/color/colorSwatch.js +0 -0
  136. /package/{components → lib/esm/components}/color/colorSwatch.js.map +0 -0
  137. /package/{components → lib/esm/components}/color/colorUtils.d.ts +0 -0
  138. /package/{components → lib/esm/components}/color/colorUtils.js +0 -0
  139. /package/{components → lib/esm/components}/color/colorUtils.js.map +0 -0
  140. /package/{components → lib/esm/components}/date/dateRangeInput.d.ts +0 -0
  141. /package/{components → lib/esm/components}/date/dateRangeInput.js +0 -0
  142. /package/{components → lib/esm/components}/date/dateRangeInput.js.map +0 -0
  143. /package/{components → lib/esm/components}/date/dateRangeInputAdvancedPanel.d.ts +0 -0
  144. /package/{components → lib/esm/components}/date/dateRangeInputAdvancedPanel.js +0 -0
  145. /package/{components → lib/esm/components}/date/dateRangeInputAdvancedPanel.js.map +0 -0
  146. /package/{components → lib/esm/components}/date/dateRangeInputConfirm.d.ts +0 -0
  147. /package/{components → lib/esm/components}/date/dateRangeInputConfirm.js +0 -0
  148. /package/{components → lib/esm/components}/date/dateRangeInputConfirm.js.map +0 -0
  149. /package/{components → lib/esm/components}/date/dateTimeInput.d.ts +0 -0
  150. /package/{components → lib/esm/components}/date/dateTimeInput.js +0 -0
  151. /package/{components → lib/esm/components}/date/dateTimeInput.js.map +0 -0
  152. /package/{components → lib/esm/components}/date/durationInput.d.ts +0 -0
  153. /package/{components → lib/esm/components}/date/durationInput.js +0 -0
  154. /package/{components → lib/esm/components}/date/durationInput.js.map +0 -0
  155. /package/{components → lib/esm/components}/form/NiceFormItem.d.ts +0 -0
  156. /package/{components → lib/esm/components}/form/NiceFormItem.js +0 -0
  157. /package/{components → lib/esm/components}/form/NiceFormItem.js.map +0 -0
  158. /package/{components → lib/esm/components}/grid/cell/beanAccessor.d.ts +0 -0
  159. /package/{components → lib/esm/components}/grid/cell/beanAccessor.js +0 -0
  160. /package/{components → lib/esm/components}/grid/cell/beanAccessor.js.map +0 -0
  161. /package/{components → lib/esm/components}/grid/cell/cellEditorUtils.d.ts +0 -0
  162. /package/{components → lib/esm/components}/grid/cell/cellEditorUtils.js +0 -0
  163. /package/{components → lib/esm/components}/grid/cell/cellEditorUtils.js.map +0 -0
  164. /package/{components → lib/esm/components}/grid/cell/customEnumCellEditor.d.ts +0 -0
  165. /package/{components → lib/esm/components}/grid/cell/customEnumCellEditor.js +0 -0
  166. /package/{components → lib/esm/components}/grid/cell/customEnumCellEditor.js.map +0 -0
  167. /package/{components → lib/esm/components}/grid/cell/dataGridCellEditorComponent.d.ts +0 -0
  168. /package/{components → lib/esm/components}/grid/cell/dataGridCellEditorComponent.js +0 -0
  169. /package/{components → lib/esm/components}/grid/cell/dataGridCellEditorComponent.js.map +0 -0
  170. /package/{components → lib/esm/components}/grid/cell/dateCellEditor.d.ts +0 -0
  171. /package/{components → lib/esm/components}/grid/cell/dateCellEditor.js +0 -0
  172. /package/{components → lib/esm/components}/grid/cell/dateCellEditor.js.map +0 -0
  173. /package/{components → lib/esm/components}/grid/cell/durationCellEditor.d.ts +0 -0
  174. /package/{components → lib/esm/components}/grid/cell/durationCellEditor.js +0 -0
  175. /package/{components → lib/esm/components}/grid/cell/durationCellEditor.js.map +0 -0
  176. /package/{components → lib/esm/components}/grid/cell/hexaOctetStringCellEditor.d.ts +0 -0
  177. /package/{components → lib/esm/components}/grid/cell/hexaOctetStringCellEditor.js +0 -0
  178. /package/{components → lib/esm/components}/grid/cell/hexaOctetStringCellEditor.js.map +0 -0
  179. /package/{components → lib/esm/components}/grid/cell/hexaValueCellEditor.d.ts +0 -0
  180. /package/{components → lib/esm/components}/grid/cell/hexaValueCellEditor.js +0 -0
  181. /package/{components → lib/esm/components}/grid/cell/hexaValueCellEditor.js.map +0 -0
  182. /package/{components → lib/esm/components}/grid/cell/numberCellEditor.d.ts +0 -0
  183. /package/{components → lib/esm/components}/grid/cell/numberCellEditor.js +0 -0
  184. /package/{components → lib/esm/components}/grid/cell/numberCellEditor.js.map +0 -0
  185. /package/{components → lib/esm/components}/grid/cell/rangeSelector.js.map +0 -0
  186. /package/{components → lib/esm/components}/grid/cell/simpleStatusTextCellEditor.d.ts +0 -0
  187. /package/{components → lib/esm/components}/grid/cell/simpleStatusTextCellEditor.js +0 -0
  188. /package/{components → lib/esm/components}/grid/cell/simpleStatusTextCellEditor.js.map +0 -0
  189. /package/{components → lib/esm/components}/grid/cell/statusTextCellEditor.d.ts +0 -0
  190. /package/{components → lib/esm/components}/grid/cell/statusTextCellEditor.js +0 -0
  191. /package/{components → lib/esm/components}/grid/cell/statusTextCellEditor.js.map +0 -0
  192. /package/{components → lib/esm/components}/grid/cell/tableDefaultRowStyleRules.d.ts +0 -0
  193. /package/{components → lib/esm/components}/grid/cell/tableDefaultRowStyleRules.js +0 -0
  194. /package/{components → lib/esm/components}/grid/cell/tableDefaultRowStyleRules.js.map +0 -0
  195. /package/{components → lib/esm/components}/grid/cell/textCellEditor.d.ts +0 -0
  196. /package/{components → lib/esm/components}/grid/cell/textCellEditor.js +0 -0
  197. /package/{components → lib/esm/components}/grid/cell/textCellEditor.js.map +0 -0
  198. /package/{components → lib/esm/components}/grid/cell/withAgGridHooks.d.ts +0 -0
  199. /package/{components → lib/esm/components}/grid/cell/withAgGridHooks.js +0 -0
  200. /package/{components → lib/esm/components}/grid/cell/withAgGridHooks.js.map +0 -0
  201. /package/{components → lib/esm/components}/grid/columnUtils.d.ts +0 -0
  202. /package/{components → lib/esm/components}/grid/columnUtils.js +0 -0
  203. /package/{components → lib/esm/components}/grid/columnUtils.js.map +0 -0
  204. /package/{components → lib/esm/components}/grid/config/columnTransfer.d.ts +0 -0
  205. /package/{components → lib/esm/components}/grid/config/columnTransfer.js +0 -0
  206. /package/{components → lib/esm/components}/grid/config/columnTransfer.js.map +0 -0
  207. /package/{components → lib/esm/components}/grid/config/dataGridEditor.d.ts +0 -0
  208. /package/{components → lib/esm/components}/grid/config/dataGridEditor.js +0 -0
  209. /package/{components → lib/esm/components}/grid/config/dataGridEditor.js.map +0 -0
  210. /package/{components → lib/esm/components}/grid/config/rowHeightCalculator.d.ts +0 -0
  211. /package/{components → lib/esm/components}/grid/config/rowHeightCalculator.js +0 -0
  212. /package/{components → lib/esm/components}/grid/config/rowHeightCalculator.js.map +0 -0
  213. /package/{components → lib/esm/components}/grid/config/rowStylePicker.d.ts +0 -0
  214. /package/{components → lib/esm/components}/grid/config/rowStylePicker.js +0 -0
  215. /package/{components → lib/esm/components}/grid/config/rowStylePicker.js.map +0 -0
  216. /package/{components → lib/esm/components}/grid/dataGrid.d.ts +0 -0
  217. /package/{components → lib/esm/components}/grid/dataGrid.js +0 -0
  218. /package/{components → lib/esm/components}/grid/dataGrid.js.map +0 -0
  219. /package/{components → lib/esm/components}/grid/detail/detailHeaderPanel.d.ts +0 -0
  220. /package/{components → lib/esm/components}/grid/detail/detailHeaderPanel.js +0 -0
  221. /package/{components → lib/esm/components}/grid/detail/detailHeaderPanel.js.map +0 -0
  222. /package/{components → lib/esm/components}/grid/export/contextMenu.d.ts +0 -0
  223. /package/{components → lib/esm/components}/grid/export/contextMenu.js.map +0 -0
  224. /package/{components → lib/esm/components}/grid/export/progressPopup.d.ts +0 -0
  225. /package/{components → lib/esm/components}/grid/export/progressPopup.js +0 -0
  226. /package/{components → lib/esm/components}/grid/export/progressPopup.js.map +0 -0
  227. /package/{components → lib/esm/components}/grid/export/worker/clipboardExport.d.ts +0 -0
  228. /package/{components → lib/esm/components}/grid/export/worker/clipboardExport.js +0 -0
  229. /package/{components → lib/esm/components}/grid/export/worker/clipboardExport.js.map +0 -0
  230. /package/{components → lib/esm/components}/grid/export/worker/csvExport.d.ts +0 -0
  231. /package/{components → lib/esm/components}/grid/export/worker/csvExport.js +0 -0
  232. /package/{components → lib/esm/components}/grid/export/worker/csvExport.js.map +0 -0
  233. /package/{components → lib/esm/components}/grid/export/worker/pdfExport.d.ts +0 -0
  234. /package/{components → lib/esm/components}/grid/export/worker/pdfExport.js +0 -0
  235. /package/{components → lib/esm/components}/grid/export/worker/pdfExport.js.map +0 -0
  236. /package/{components → lib/esm/components}/grid/export/worker/txtExport.d.ts +0 -0
  237. /package/{components → lib/esm/components}/grid/export/worker/txtExport.js +0 -0
  238. /package/{components → lib/esm/components}/grid/export/worker/txtExport.js.map +0 -0
  239. /package/{components → lib/esm/components}/grid/extendedDataGrid.d.ts +0 -0
  240. /package/{components → lib/esm/components}/grid/extendedDataGrid.js +0 -0
  241. /package/{components → lib/esm/components}/grid/extendedDataGrid.js.map +0 -0
  242. /package/{components → lib/esm/components}/grid/filter/customColumnFilter.d.ts +0 -0
  243. /package/{components → lib/esm/components}/grid/filter/customColumnFilter.js +0 -0
  244. /package/{components → lib/esm/components}/grid/filter/customColumnFilter.js.map +0 -0
  245. /package/{components → lib/esm/components}/grid/filter/dataGridColumnFilter.d.ts +0 -0
  246. /package/{components → lib/esm/components}/grid/filter/dataGridColumnFilter.js +0 -0
  247. /package/{components → lib/esm/components}/grid/filter/dataGridColumnFilter.js.map +0 -0
  248. /package/{components → lib/esm/components}/grid/filter/dateColumnFilter.d.ts +0 -0
  249. /package/{components → lib/esm/components}/grid/filter/dateColumnFilter.js +0 -0
  250. /package/{components → lib/esm/components}/grid/filter/dateColumnFilter.js.map +0 -0
  251. /package/{components → lib/esm/components}/grid/filter/textColumnFilter.d.ts +0 -0
  252. /package/{components → lib/esm/components}/grid/filter/textColumnFilter.js +0 -0
  253. /package/{components → lib/esm/components}/grid/filter/textColumnFilter.js.map +0 -0
  254. /package/{components → lib/esm/components}/grid/filter/wildcardQuickFilterEngine.d.ts +0 -0
  255. /package/{components → lib/esm/components}/grid/filter/wildcardQuickFilterEngine.js +0 -0
  256. /package/{components → lib/esm/components}/grid/filter/wildcardQuickFilterEngine.js.map +0 -0
  257. /package/{components → lib/esm/components}/grid/header/simpleHeader.d.ts +0 -0
  258. /package/{components → lib/esm/components}/grid/header/simpleHeader.js +0 -0
  259. /package/{components → lib/esm/components}/grid/header/simpleHeader.js.map +0 -0
  260. /package/{components → lib/esm/components}/grid/panel/dataGridPagination.d.ts +0 -0
  261. /package/{components → lib/esm/components}/grid/panel/dataGridPagination.js +0 -0
  262. /package/{components → lib/esm/components}/grid/panel/dataGridPagination.js.map +0 -0
  263. /package/{components → lib/esm/components}/grid/panel/loadingOverlay.d.ts +0 -0
  264. /package/{components → lib/esm/components}/grid/panel/loadingOverlay.js +0 -0
  265. /package/{components → lib/esm/components}/grid/panel/loadingOverlay.js.map +0 -0
  266. /package/{components → lib/esm/components}/grid/panel/noRecordsOverlay.d.ts +0 -0
  267. /package/{components → lib/esm/components}/grid/panel/noRecordsOverlay.js +0 -0
  268. /package/{components → lib/esm/components}/grid/panel/noRecordsOverlay.js.map +0 -0
  269. /package/{components → lib/esm/components}/grid/panel/tablePagination.d.ts +0 -0
  270. /package/{components → lib/esm/components}/grid/panel/tablePagination.js +0 -0
  271. /package/{components → lib/esm/components}/grid/panel/tablePagination.js.map +0 -0
  272. /package/{components → lib/esm/components}/icons/dropdownArrow.d.ts +0 -0
  273. /package/{components → lib/esm/components}/icons/dropdownArrow.js +0 -0
  274. /package/{components → lib/esm/components}/icons/dropdownArrow.js.map +0 -0
  275. /package/{components → lib/esm/components}/icons/undoIcon.d.ts +0 -0
  276. /package/{components → lib/esm/components}/icons/undoIcon.js +0 -0
  277. /package/{components → lib/esm/components}/icons/undoIcon.js.map +0 -0
  278. /package/{components → lib/esm/components}/input/autoCompleteInput.d.ts +0 -0
  279. /package/{components → lib/esm/components}/input/autoCompleteInput.js +0 -0
  280. /package/{components → lib/esm/components}/input/autoCompleteInput.js.map +0 -0
  281. /package/{components → lib/esm/components}/input/draftUtils.d.ts +0 -0
  282. /package/{components → lib/esm/components}/input/draftUtils.js +0 -0
  283. /package/{components → lib/esm/components}/input/draftUtils.js.map +0 -0
  284. /package/{components → lib/esm/components}/input/draftail.js.map +0 -0
  285. /package/{components → lib/esm/components}/input/hexaFormattedInput.d.ts +0 -0
  286. /package/{components → lib/esm/components}/input/hexaFormattedInput.js +0 -0
  287. /package/{components → lib/esm/components}/input/hexaFormattedInput.js.map +0 -0
  288. /package/{components → lib/esm/components}/input/mask/helpers.d.ts +0 -0
  289. /package/{components → lib/esm/components}/input/mask/helpers.js +0 -0
  290. /package/{components → lib/esm/components}/input/mask/helpers.js.map +0 -0
  291. /package/{components → lib/esm/components}/input/mask/inputMaskCore.d.ts +0 -0
  292. /package/{components → lib/esm/components}/input/mask/inputMaskCore.js +0 -0
  293. /package/{components → lib/esm/components}/input/mask/inputMaskCore.js.map +0 -0
  294. /package/{components → lib/esm/components}/input/mask/pattern.d.ts +0 -0
  295. /package/{components → lib/esm/components}/input/mask/pattern.js +0 -0
  296. /package/{components → lib/esm/components}/input/mask/pattern.js.map +0 -0
  297. /package/{components → lib/esm/components}/input/maskedInput.d.ts +0 -0
  298. /package/{components → lib/esm/components}/input/maskedInput.js +0 -0
  299. /package/{components → lib/esm/components}/input/maskedInput.js.map +0 -0
  300. /package/{components → lib/esm/components}/input/passwordInput.d.ts +0 -0
  301. /package/{components → lib/esm/components}/input/passwordInput.js +0 -0
  302. /package/{components → lib/esm/components}/input/passwordInput.js.map +0 -0
  303. /package/{components → lib/esm/components}/input/simpleAutoComplete.d.ts +0 -0
  304. /package/{components → lib/esm/components}/input/simpleAutoComplete.js +0 -0
  305. /package/{components → lib/esm/components}/input/simpleAutoComplete.js.map +0 -0
  306. /package/{components → lib/esm/components}/input/textarea/extractSpansOfClasses.d.ts +0 -0
  307. /package/{components → lib/esm/components}/input/textarea/extractSpansOfClasses.js +0 -0
  308. /package/{components → lib/esm/components}/input/textarea/extractSpansOfClasses.js.map +0 -0
  309. /package/{components → lib/esm/components}/input/textarea/getRanges.d.ts +0 -0
  310. /package/{components → lib/esm/components}/input/textarea/getRanges.js +0 -0
  311. /package/{components → lib/esm/components}/input/textarea/getRanges.js.map +0 -0
  312. /package/{components → lib/esm/components}/input/textarea/getType.d.ts +0 -0
  313. /package/{components → lib/esm/components}/input/textarea/getType.js +0 -0
  314. /package/{components → lib/esm/components}/input/textarea/getType.js.map +0 -0
  315. /package/{components → lib/esm/components}/input/textarea/highlighedContents.d.ts +0 -0
  316. /package/{components → lib/esm/components}/input/textarea/highlighedContents.js +0 -0
  317. /package/{components → lib/esm/components}/input/textarea/highlighedContents.js.map +0 -0
  318. /package/{components → lib/esm/components}/input/textarea/mentionsWithHighlighting.d.ts +0 -0
  319. /package/{components → lib/esm/components}/input/textarea/mentionsWithHighlighting.js +0 -0
  320. /package/{components → lib/esm/components}/input/textarea/mentionsWithHighlighting.js.map +0 -0
  321. /package/{components → lib/esm/components}/keyboard/keyboardUtils.d.ts +0 -0
  322. /package/{components → lib/esm/components}/keyboard/keyboardUtils.js +0 -0
  323. /package/{components → lib/esm/components}/keyboard/keyboardUtils.js.map +0 -0
  324. /package/{components → lib/esm/components}/modal/draggableModalProvider.d.ts +0 -0
  325. /package/{components → lib/esm/components}/modal/draggableModalProvider.js +0 -0
  326. /package/{components → lib/esm/components}/modal/draggableModalProvider.js.map +0 -0
  327. /package/{components → lib/esm/components}/modal/impl/clamp.d.ts +0 -0
  328. /package/{components → lib/esm/components}/modal/impl/clamp.js +0 -0
  329. /package/{components → lib/esm/components}/modal/impl/clamp.js.map +0 -0
  330. /package/{components → lib/esm/components}/modal/impl/draggableModal.d.ts +0 -0
  331. /package/{components → lib/esm/components}/modal/impl/draggableModal.js +0 -0
  332. /package/{components → lib/esm/components}/modal/impl/draggableModal.js.map +0 -0
  333. /package/{components → lib/esm/components}/modal/impl/draggableModalContext.d.ts +0 -0
  334. /package/{components → lib/esm/components}/modal/impl/draggableModalContext.js +0 -0
  335. /package/{components → lib/esm/components}/modal/impl/draggableModalContext.js.map +0 -0
  336. /package/{components → lib/esm/components}/modal/impl/draggableModalInner.d.ts +0 -0
  337. /package/{components → lib/esm/components}/modal/impl/draggableModalInner.js +0 -0
  338. /package/{components → lib/esm/components}/modal/impl/draggableModalInner.js.map +0 -0
  339. /package/{components → lib/esm/components}/modal/impl/draggableModalReducer.d.ts +0 -0
  340. /package/{components → lib/esm/components}/modal/impl/draggableModalReducer.js +0 -0
  341. /package/{components → lib/esm/components}/modal/impl/draggableModalReducer.js.map +0 -0
  342. /package/{components → lib/esm/components}/modal/impl/getWindowSize.d.ts +0 -0
  343. /package/{components → lib/esm/components}/modal/impl/getWindowSize.js +0 -0
  344. /package/{components → lib/esm/components}/modal/impl/getWindowSize.js.map +0 -0
  345. /package/{components → lib/esm/components}/modal/impl/index.d.ts +0 -0
  346. /package/{components → lib/esm/components}/modal/impl/index.js +0 -0
  347. /package/{components → lib/esm/components}/modal/impl/index.js.map +0 -0
  348. /package/{components → lib/esm/components}/modal/impl/resizeHandle.d.ts +0 -0
  349. /package/{components → lib/esm/components}/modal/impl/resizeHandle.js +0 -0
  350. /package/{components → lib/esm/components}/modal/impl/resizeHandle.js.map +0 -0
  351. /package/{components → lib/esm/components}/modal/impl/useDrag.d.ts +0 -0
  352. /package/{components → lib/esm/components}/modal/impl/useDrag.js +0 -0
  353. /package/{components → lib/esm/components}/modal/impl/useDrag.js.map +0 -0
  354. /package/{components → lib/esm/components}/modal/impl/usePrevious.d.ts +0 -0
  355. /package/{components → lib/esm/components}/modal/impl/usePrevious.js +0 -0
  356. /package/{components → lib/esm/components}/modal/impl/usePrevious.js.map +0 -0
  357. /package/{components → lib/esm/components}/modal/impl/useResize.d.ts +0 -0
  358. /package/{components → lib/esm/components}/modal/impl/useResize.js +0 -0
  359. /package/{components → lib/esm/components}/modal/impl/useResize.js.map +0 -0
  360. /package/{components → lib/esm/components}/modal/modalDialog.d.ts +0 -0
  361. /package/{components → lib/esm/components}/modal/modalDialog.js +0 -0
  362. /package/{components → lib/esm/components}/modal/modalDialog.js.map +0 -0
  363. /package/{components → lib/esm/components}/picker/enumValuePicker.d.ts +0 -0
  364. /package/{components → lib/esm/components}/picker/enumValuePicker.js +0 -0
  365. /package/{components → lib/esm/components}/picker/enumValuePicker.js.map +0 -0
  366. /package/{components → lib/esm/components}/platformSpecific.d.ts +0 -0
  367. /package/{components → lib/esm/components}/platformSpecific.js +0 -0
  368. /package/{components → lib/esm/components}/platformSpecific.js.map +0 -0
  369. /package/{components → lib/esm/components}/scrollTo/onlyText.d.ts +0 -0
  370. /package/{components → lib/esm/components}/scrollTo/onlyText.js +0 -0
  371. /package/{components → lib/esm/components}/scrollTo/onlyText.js.map +0 -0
  372. /package/{components → lib/esm/components}/scrollTo/scrollTo.d.ts +0 -0
  373. /package/{components → lib/esm/components}/scrollTo/scrollTo.js +0 -0
  374. /package/{components → lib/esm/components}/scrollTo/scrollTo.js.map +0 -0
  375. /package/{components → lib/esm/components}/style/withCss.d.ts +0 -0
  376. /package/{components → lib/esm/components}/style/withCss.js +0 -0
  377. /package/{components → lib/esm/components}/style/withCss.js.map +0 -0
  378. /package/{components → lib/esm/components}/style/withInputNumberCss.d.ts +0 -0
  379. /package/{components → lib/esm/components}/style/withInputNumberCss.js +0 -0
  380. /package/{components → lib/esm/components}/style/withInputNumberCss.js.map +0 -0
  381. /package/{components → lib/esm/components}/table/dragSortingTable.d.ts +0 -0
  382. /package/{components → lib/esm/components}/table/dragSortingTable.js +0 -0
  383. /package/{components → lib/esm/components}/table/dragSortingTable.js.map +0 -0
  384. /package/{components → lib/esm/components}/text/impl/innerSize.d.ts +0 -0
  385. /package/{components → lib/esm/components}/text/impl/innerSize.js +0 -0
  386. /package/{components → lib/esm/components}/text/impl/innerSize.js.map +0 -0
  387. /package/{components → lib/esm/components}/text/impl/series.d.ts +0 -0
  388. /package/{components → lib/esm/components}/text/impl/series.js +0 -0
  389. /package/{components → lib/esm/components}/text/impl/series.js.map +0 -0
  390. /package/{components → lib/esm/components}/text/impl/shallowEqual.d.ts +0 -0
  391. /package/{components → lib/esm/components}/text/impl/shallowEqual.js +0 -0
  392. /package/{components → lib/esm/components}/text/impl/shallowEqual.js.map +0 -0
  393. /package/{components → lib/esm/components}/text/impl/uniqueId.d.ts +0 -0
  394. /package/{components → lib/esm/components}/text/impl/uniqueId.js +0 -0
  395. /package/{components → lib/esm/components}/text/impl/uniqueId.js.map +0 -0
  396. /package/{components → lib/esm/components}/text/impl/whilst.d.ts +0 -0
  397. /package/{components → lib/esm/components}/text/impl/whilst.js +0 -0
  398. /package/{components → lib/esm/components}/text/impl/whilst.js.map +0 -0
  399. /package/{components → lib/esm/components}/text/textFit.d.ts +0 -0
  400. /package/{components → lib/esm/components}/text/textFit.js +0 -0
  401. /package/{components → lib/esm/components}/text/textFit.js.map +0 -0
  402. /package/{i18n → lib/esm/i18n}/componentsLocaleHolder.d.ts +0 -0
  403. /package/{i18n → lib/esm/i18n}/componentsLocaleHolder.js.map +0 -0
@@ -0,0 +1,82 @@
1
+ import getType from './getType';
2
+
3
+ export default function getRanges(input: any, highlight: any): number[][] {
4
+ let type = getType(highlight);
5
+ switch (type) {
6
+ case 'array':
7
+ return getArrayRanges(input, highlight);
8
+ case 'function':
9
+ return getFunctionRanges(input, highlight);
10
+ case 'regexp':
11
+ return getRegExpRanges(input, highlight);
12
+ case 'string':
13
+ return getStringRanges(input, highlight);
14
+ case 'range':
15
+ return getRangeRanges(input, highlight);
16
+ case 'custom':
17
+ return getCustomRanges(input, highlight);
18
+ default:
19
+ if (!highlight) {
20
+ // do nothing for falsey values
21
+ return [];
22
+ } else {
23
+ console.error('unrecognized highlight type');
24
+ return [];
25
+ }
26
+ }
27
+ }
28
+
29
+ function getArrayRanges(input: any[], arr: any[]): number[][] {
30
+ let ranges = arr.map(getRanges.bind(null, input));
31
+ return Array.prototype.concat.apply([], ranges);
32
+ }
33
+
34
+ function getFunctionRanges(input: string, func: (input: string) => string): number[][] {
35
+ return getRanges(input, func(input));
36
+ }
37
+
38
+ function getRegExpRanges(input: string, regex: RegExp) {
39
+ let ranges = [];
40
+ let match;
41
+ while (match = regex.exec(input), match !== null) {
42
+ ranges.push([match.index, match.index + match[0].length]);
43
+ if (!regex.global) {
44
+ // non-global regexes do not increase lastIndex, causing an infinite loop,
45
+ // but we can just break manually after the first match
46
+ break;
47
+ }
48
+ }
49
+ return ranges;
50
+ }
51
+
52
+ function getStringRanges(input: string, str: string): number[][] {
53
+ let ranges = [];
54
+ let inputLower = input.toLowerCase();
55
+ let strLower = str.toLowerCase();
56
+ let index = 0;
57
+ while (index = inputLower.indexOf(strLower, index), index !== -1) {
58
+ ranges.push([index, index + strLower.length]);
59
+ index += strLower.length;
60
+ }
61
+ return ranges;
62
+ }
63
+
64
+ function getRangeRanges(_input: string, range: number[]): number[][] {
65
+ return [range];
66
+ }
67
+
68
+ function getCustomRanges(input: string, custom: { className?: string, highlight: any }): number[][] {
69
+ let ranges = getRanges(input, custom.highlight);
70
+ if (custom.className) {
71
+ ranges.forEach(function (range) {
72
+ // persist class name as a property of the array
73
+ let customRange = range as any;
74
+ if (customRange.className) {
75
+ customRange.className = custom.className + ' ' + customRange.className;
76
+ } else {
77
+ customRange.className = custom.className;
78
+ }
79
+ });
80
+ }
81
+ return ranges;
82
+ }
@@ -0,0 +1,23 @@
1
+ // returns identifier strings that aren't necessarily "real" JavaScript types
2
+ export default function getType(instance:any):string {
3
+ let type = typeof instance;
4
+ if (!instance) {
5
+ return 'falsey';
6
+ } else if (Array.isArray(instance)) {
7
+ if (instance.length === 2 && typeof instance[0] === 'number' && typeof instance[1] === 'number') {
8
+ return 'range';
9
+ } else {
10
+ return 'array';
11
+ }
12
+ } else if (type === 'object') {
13
+ if (instance instanceof RegExp) {
14
+ return 'regexp';
15
+ } else if (instance.hasOwnProperty('highlight')) {
16
+ return 'custom';
17
+ }
18
+ } else if (type === 'function' || type === 'string') {
19
+ return type;
20
+ }
21
+
22
+ return 'other';
23
+ }
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ import getRanges from './getRanges';
3
+ import extractSpansOfClasses from './extractSpansOfClasses';
4
+
5
+ // @ts-ignore
6
+ const HighlighedContents = ({value, highlight}) => {
7
+
8
+ let ranges = getRanges(value, highlight);
9
+ let parts = extractSpansOfClasses(value, ranges);
10
+
11
+ return (
12
+ <div>
13
+ <div className={`highlight-highlights highlight-content`} >
14
+ {parts.map(part => part.render())}
15
+ </div>
16
+ </div>
17
+ );
18
+ }
19
+
20
+ export default HighlighedContents
@@ -0,0 +1,61 @@
1
+ .highlight-container {
2
+ display: inline-block;
3
+ position: relative;
4
+ overflow: hidden !important;
5
+ -webkit-text-size-adjust: none !important;
6
+ }
7
+
8
+ .highlight-backdrop {
9
+ position: absolute !important;
10
+ top: 0 !important;
11
+ right: calc(2em + 20px) !important; /* important due to style ".dictionary-autocomplete > textarea" externalize if this should be used elsewhere as */
12
+ bottom: 0 !important;
13
+ left: 0 !important;
14
+ overflow-x: hidden !important;
15
+ overflow-y: hidden !important;
16
+ }
17
+
18
+ .highlight-highlights {
19
+ padding: 4px 11px !important;
20
+ width: auto !important;
21
+ height: auto !important;
22
+ border-color: transparent !important;
23
+ white-space: pre-wrap !important;
24
+ word-wrap: break-word !important;
25
+ color: transparent !important;
26
+ overflow: hidden !important;
27
+ }
28
+
29
+ .highlight-input textarea{
30
+ display: block !important;
31
+ position: relative !important;
32
+ margin: 0;
33
+ padding: 4px 11px;
34
+ border-radius: 0;
35
+ font: inherit;
36
+ overflow-x: hidden !important;
37
+ white-space: pre-wrap !important;
38
+ word-wrap: break-word !important;
39
+ }
40
+
41
+ .highlight-content {
42
+ background: none transparent !important;
43
+ }
44
+
45
+ .highlight-content textarea {
46
+ background: none transparent !important;
47
+ }
48
+
49
+ .highlight-content mark {
50
+ padding: 0 !important;
51
+ color: transparent;
52
+ }
53
+
54
+ .highlight-error {
55
+ background-color: #ffccc7;
56
+ }
57
+
58
+ .highlight-warning {
59
+ background-color: #ffec3d;
60
+ }
61
+
@@ -0,0 +1,95 @@
1
+ import React, {CSSProperties} from 'react';
2
+ import './highlightedTextarea.css';
3
+ import HighlighedContents from './highlighedContents';
4
+ import {MentionProps} from "antd/lib/mentions";
5
+ import {Mentions} from "antd";
6
+
7
+ export interface HighlightItem {
8
+ highlight: HighlightType
9
+ className: string
10
+ }
11
+
12
+ export type AssignHighlightFunction = (value: string) => HighlightType;
13
+ export type HighlightType =
14
+ boolean
15
+ | string
16
+ | RegExp
17
+ | [number, number]
18
+ | HighlightType[]
19
+ | AssignHighlightFunction
20
+ | HighlightItem[];
21
+
22
+ interface MentionsWithHighlightingProps extends MentionProps {
23
+ highlight?: HighlightType
24
+ containerStyle?: CSSProperties
25
+ containerClassName?: string
26
+ }
27
+
28
+ interface MentionsWithHighlightingState {
29
+ fakeValue: string
30
+ }
31
+
32
+ /**
33
+ * Merged antd Mentions component with code from https://github.com/bonafideduck/react-highlight-within-textarea
34
+ */
35
+ export class MentionsWithHighlighting extends React.Component<MentionsWithHighlightingProps, MentionsWithHighlightingState> {
36
+ mentionsComponent: any | null = null;
37
+ backdropComponent: HTMLDivElement | null = null;
38
+
39
+ constructor(props: Readonly<MentionsWithHighlightingProps>) {
40
+ super(props);
41
+ this.state = {
42
+ fakeValue: props.value ?? ""
43
+ }
44
+ }
45
+
46
+ handleScroll = () => {
47
+ if (this.backdropComponent) {
48
+ if (this.mentionsComponent) {
49
+ const textArea = (this.mentionsComponent as any).textarea as HTMLTextAreaElement
50
+ this.backdropComponent.scrollTop = textArea.scrollTop;
51
+ this.backdropComponent.scrollLeft = textArea.scrollLeft;
52
+ }
53
+ }
54
+ };
55
+
56
+ onChange = (value?:string) => {
57
+ // To properly work, value and onChange must be supplied. Give a hint for new users.
58
+ if (value == undefined) {
59
+ value = this.state.fakeValue;
60
+ }
61
+ this.setState({fakeValue: value});
62
+ };
63
+
64
+ get textarea() : HTMLTextAreaElement | undefined {
65
+ return (this.mentionsComponent as any)?.textarea as HTMLTextAreaElement;
66
+ }
67
+
68
+ render() {
69
+ let {value, onChange, highlight = {}, className = "", style = {}, containerStyle = {}, containerClassName = "", onScroll, ...restProps} = this.props;
70
+
71
+ className = `highlight-input ${!this.props.disabled ? "highlight-content": ""} ${className}`;
72
+ containerClassName = `highlight-container ${containerClassName}`;
73
+
74
+ // Resizing is currently not supported
75
+ style.resize = "none";
76
+ style.wordWrap = "break-word";
77
+
78
+
79
+
80
+ return (
81
+ <div className={containerClassName} style={containerStyle}>
82
+ <div className={"highlight-backdrop"} ref={(component)=> {
83
+ this.backdropComponent = component;
84
+ }}>
85
+ <HighlighedContents value={value} highlight={highlight}/>
86
+ </div>
87
+ <Mentions value={value} onChange={onChange} style={{...style}} className={className} {...restProps}
88
+ onScroll={this.handleScroll} ref={(component) => {
89
+ this.mentionsComponent = component
90
+ }}>
91
+ </Mentions>
92
+ </div>
93
+ );
94
+ }
95
+ }
@@ -0,0 +1,42 @@
1
+ import {Key} from "ts-key-enum";
2
+
3
+ const pressedKeys: any = {};
4
+ let mouseDown: number = 0;
5
+
6
+ function keyDown(e: KeyboardEvent) {
7
+ pressedKeys[e.key] = true;
8
+ }
9
+
10
+ function keyUp(e: KeyboardEvent) {
11
+ pressedKeys[e.key] = false;
12
+ }
13
+
14
+ function reset() {
15
+ Object.keys(pressedKeys).forEach((key) => {
16
+ pressedKeys[key] = false;
17
+ });
18
+ }
19
+
20
+ function onMouseDown() {
21
+ mouseDown++;
22
+ }
23
+
24
+ function onMouseUp() {
25
+ mouseDown--;
26
+ }
27
+
28
+ window.addEventListener("keydown", keyDown);
29
+ window.addEventListener("keyup", keyUp);
30
+ window.addEventListener("blur", reset);
31
+ window.addEventListener("mousedown", onMouseDown);
32
+ window.addEventListener("mouseup", onMouseUp);
33
+
34
+ export default class KeyboardUtils {
35
+ static isKeyPressed(key: Key): boolean {
36
+ return !!pressedKeys[key];
37
+ }
38
+
39
+ static isMouseDown() :boolean {
40
+ return mouseDown > 0;
41
+ }
42
+ }
@@ -0,0 +1,37 @@
1
+ // https://github.com/CUBETIQ/antd-modal/
2
+
3
+ import * as React from 'react'
4
+ import {useEffect, useReducer} from 'react'
5
+ import {DraggableModalContext} from 'd2coreui/components/modal/impl/draggableModalContext'
6
+ import {getWindowSize} from 'd2coreui/components/modal/impl/getWindowSize'
7
+ import {draggableModalReducer, initialModalsState} from 'd2coreui/components/modal/impl/draggableModalReducer'
8
+
9
+ export const DraggableModalProvider = ({
10
+ children,
11
+ }: {
12
+ children: React.ReactNode
13
+ }): React.ReactElement => {
14
+ const [state, dispatch] = useReducer(draggableModalReducer, initialModalsState)
15
+
16
+ useEffect(() => {
17
+ if (typeof window !== 'object') {
18
+ // @ts-ignore
19
+ return;
20
+ }
21
+ const onResize = (): void => dispatch({ type: 'windowResize', size: getWindowSize() })
22
+ window.addEventListener('resize', onResize)
23
+ onResize()
24
+ return () => window.removeEventListener('resize', onResize)
25
+ }, [dispatch])
26
+
27
+ return (
28
+ <DraggableModalContext.Provider
29
+ value={{
30
+ state,
31
+ dispatch,
32
+ }}
33
+ >
34
+ {children}
35
+ </DraggableModalContext.Provider>
36
+ )
37
+ }
@@ -0,0 +1,4 @@
1
+ // https://github.com/CUBETIQ/antd-modal/
2
+
3
+ export const clamp = (min: number, max: number, value: number): number =>
4
+ Math.max(min, Math.min(max, value));
@@ -0,0 +1,36 @@
1
+ // https://github.com/CUBETIQ/antd-modal/
2
+
3
+ import * as React from 'react'
4
+ import {FunctionComponent, useContext} from 'react'
5
+ import {useUID} from 'react-uid'
6
+ import {DraggableModalContext} from './draggableModalContext'
7
+ import {DraggableModalInner} from './draggableModalInner'
8
+ import {getModalState} from './draggableModalReducer'
9
+ import {ModalProps} from 'antd/lib/modal'
10
+ import '../../../style/modal/DraggableModal.css'
11
+
12
+ export interface DraggableModalProps extends Omit<ModalProps, "width"> {
13
+ initialWidth?: number,
14
+ initialHeight?: number
15
+ // resize dialog handler
16
+ onResize?(size: { width: number, height: number }): void
17
+ }
18
+
19
+ export const DraggableModal: FunctionComponent<DraggableModalProps> = (props: DraggableModalProps): React.ReactElement => {
20
+ // Get the unique ID of this modal.
21
+ const id = useUID();
22
+
23
+ // Get modal provider.
24
+ const modalProvider = useContext(DraggableModalContext);
25
+ if (!modalProvider) {
26
+ throw new Error('No Provider')
27
+ }
28
+
29
+ const {dispatch, state} = modalProvider;
30
+ const modalState = getModalState({state, id, initialWidth: props.initialWidth, initialHeight: props.initialHeight});
31
+
32
+ // We do this so that we don't re-render all modals for every state change.
33
+ // DraggableModalInner uses React.memo, so it only re-renders if
34
+ // if props change (e.g. modalState).
35
+ return <DraggableModalInner id={id} dispatch={dispatch} modalState={modalState} {...props} />
36
+ };
@@ -0,0 +1,14 @@
1
+ // https://github.com/CUBETIQ/antd-modal/
2
+
3
+ import * as React from 'react'
4
+ import {Action, ModalsState} from './draggableModalReducer'
5
+
6
+ export interface DraggableModalContextMethods {
7
+ dispatch: (action: Action) => void
8
+ }
9
+
10
+ export interface DraggableModalContextValue extends DraggableModalContextMethods {
11
+ state: ModalsState
12
+ }
13
+
14
+ export const DraggableModalContext = React.createContext<DraggableModalContextValue | null>(null)
@@ -0,0 +1,114 @@
1
+ // https://github.com/CUBETIQ/antd-modal/
2
+
3
+ import * as React from 'react'
4
+ import {memo, useCallback, useEffect, useMemo} from 'react'
5
+ import {Modal} from 'antd'
6
+ import {ResizeHandle} from './resizeHandle'
7
+ import {useDrag} from './useDrag'
8
+ import {DraggableModalContextMethods} from './draggableModalContext'
9
+ import {usePrevious} from './usePrevious'
10
+ import {ModalID, ModalState} from './draggableModalReducer'
11
+ import {useResize} from './useResize'
12
+ import {DraggableModalProps} from "./draggableModal";
13
+
14
+ const modalStyle: React.CSSProperties = {margin: 0, paddingBottom: 0, pointerEvents: 'auto'}
15
+
16
+ interface ContextProps extends DraggableModalContextMethods {
17
+ id: ModalID
18
+ modalState: ModalState
19
+ initialWidth?: number
20
+ initialHeight?: number
21
+ }
22
+
23
+ //export type DraggableModalInnerProps = ModalProps & { children?: React.ReactNode } & ContextProps
24
+ export interface DraggableModalInnerProps extends DraggableModalProps, ContextProps {
25
+ children?: React.ReactNode
26
+ }
27
+
28
+ export const DraggableModalInner = memo(
29
+ ({
30
+ id,
31
+ modalState,
32
+ dispatch,
33
+ open,
34
+ children,
35
+ title,
36
+ initialWidth,
37
+ initialHeight,
38
+ onResize,
39
+ ...otherProps
40
+ }: DraggableModalInnerProps) => {
41
+ // Call on mount and unmount.
42
+ useEffect(() => {
43
+ dispatch({type: 'mount', id, intialState: {initialWidth, initialHeight}});
44
+ return () => dispatch({type: 'unmount', id})
45
+ }, [dispatch, id, initialWidth, initialHeight]);
46
+
47
+ // Bring this to the front if it's been opened with props.
48
+ const visiblePrevious = usePrevious(open);
49
+ useEffect(() => {
50
+ if (open !== visiblePrevious) {
51
+ if (open) {
52
+ dispatch({type: 'show', id})
53
+ } else {
54
+ dispatch({type: 'hide', id})
55
+ }
56
+ }
57
+ }, [open, visiblePrevious, id, dispatch]);
58
+
59
+ const {zIndex, x, y, width, height} = modalState;
60
+
61
+ const style: React.CSSProperties = useMemo(
62
+ () => ({...modalStyle, top: y, left: x, height}),
63
+ [y, x, height],
64
+ );
65
+
66
+ const onFocus = useCallback(() => dispatch({type: 'focus', id}), [id, dispatch])
67
+
68
+ const onDragWithID = useCallback((args: any) => dispatch({type: 'drag', id, ...args}), [
69
+ dispatch,
70
+ id,
71
+ ]);
72
+
73
+ const onResizeWithID = useCallback((args: any) => {
74
+ onResize?.({width: args.width, height: args.height});
75
+ return dispatch({type: 'resize', id, ...args})
76
+ }, [dispatch, id,]);
77
+
78
+ const onMouseDrag = useDrag(x, y, onDragWithID);
79
+ const onMouseResize = useResize(x, y, width, height, onResizeWithID);
80
+
81
+ const titleElement = useMemo(
82
+ () => (
83
+ <div
84
+ className="ant-design-draggable-modal-title"
85
+ onMouseDown={onMouseDrag}
86
+ onClick={onFocus}
87
+ >
88
+ {title}
89
+ </div>
90
+ ),
91
+ [onMouseDrag, onFocus, title],
92
+ );
93
+
94
+ return (
95
+ <Modal
96
+ wrapClassName="ant-design-draggable-modal"
97
+ style={style}
98
+ destroyOnClose={true}
99
+ width={width}
100
+ zIndex={zIndex}
101
+ title={titleElement}
102
+ open={open}
103
+ {...otherProps}
104
+ >
105
+ {children}
106
+ <ResizeHandle onMouseDown={onMouseResize}/>
107
+ </Modal>
108
+ )
109
+ }
110
+ );
111
+
112
+ if (process.env.NODE_ENV !== 'production') {
113
+ DraggableModalInner.displayName = 'DraggableModalInner'
114
+ }