pne-ui 4.2.2 → 4.3.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (286) hide show
  1. package/README.md +159 -0
  2. package/cjs/component/AutoTestAttribute.d.ts +22 -5
  3. package/cjs/component/AutoTestAttribute.js +27 -23
  4. package/cjs/component/AutoTestAttribute.js.map +1 -1
  5. package/cjs/component/dropdown/PneAsyncAutocomplete.d.ts +5 -0
  6. package/cjs/component/dropdown/PneAsyncAutocomplete.js +10 -5
  7. package/cjs/component/dropdown/PneAsyncAutocomplete.js.map +1 -1
  8. package/cjs/component/dropdown/PneAutocomplete.d.ts +8 -2
  9. package/cjs/component/dropdown/PneAutocomplete.js +8 -2
  10. package/cjs/component/dropdown/PneAutocomplete.js.map +1 -1
  11. package/cjs/component/dropdown/PneSelect.d.ts +4 -0
  12. package/cjs/component/dropdown/PneSelect.js +5 -2
  13. package/cjs/component/dropdown/PneSelect.js.map +1 -1
  14. package/cjs/component/non-abstract-entity-selector/AbstractEntitySelectModal.d.ts +6 -1
  15. package/cjs/component/non-abstract-entity-selector/AbstractEntitySelectModal.js +4 -2
  16. package/cjs/component/non-abstract-entity-selector/AbstractEntitySelectModal.js.map +1 -1
  17. package/cjs/component/non-abstract-entity-selector/AbstractEntitySelector.d.ts +18 -0
  18. package/cjs/component/non-abstract-entity-selector/AbstractEntitySelector.js +11 -10
  19. package/cjs/component/non-abstract-entity-selector/AbstractEntitySelector.js.map +1 -1
  20. package/cjs/component/non-abstract-entity-selector/ItemEntitySelector.d.ts +5 -1
  21. package/cjs/component/non-abstract-entity-selector/ItemEntitySelector.js +3 -3
  22. package/cjs/component/non-abstract-entity-selector/ItemEntitySelector.js.map +1 -1
  23. package/cjs/component/non-abstract-entity-selector/styled.d.ts +6 -2
  24. package/cjs/component/non-abstract-entity-selector/styled.js.map +1 -1
  25. package/cjs/component/search-ui/SearchUI.d.ts +7 -3
  26. package/cjs/component/search-ui/SearchUI.js +3 -3
  27. package/cjs/component/search-ui/SearchUI.js.map +1 -1
  28. package/cjs/component/search-ui/filters/AutoTestScope.d.ts +20 -0
  29. package/cjs/component/search-ui/filters/AutoTestScope.js +31 -0
  30. package/cjs/component/search-ui/filters/AutoTestScope.js.map +1 -0
  31. package/cjs/component/search-ui/filters/CriterionContainer.js +10 -6
  32. package/cjs/component/search-ui/filters/CriterionContainer.js.map +1 -1
  33. package/cjs/component/search-ui/filters/SearchUIFilters.d.ts +8 -4
  34. package/cjs/component/search-ui/filters/SearchUIFilters.js +30 -22
  35. package/cjs/component/search-ui/filters/SearchUIFilters.js.map +1 -1
  36. package/cjs/component/search-ui/filters/component/button/SearchUIFiltersCriterionHeaderClearButton.d.ts +1 -0
  37. package/cjs/component/search-ui/filters/component/button/SearchUIFiltersCriterionHeaderClearButton.js +5 -3
  38. package/cjs/component/search-ui/filters/component/button/SearchUIFiltersCriterionHeaderClearButton.js.map +1 -1
  39. package/cjs/component/search-ui/filters/component/button/SearchUIFiltersCriterionHeaderRemoveButton.d.ts +1 -0
  40. package/cjs/component/search-ui/filters/component/button/SearchUIFiltersCriterionHeaderRemoveButton.js +5 -3
  41. package/cjs/component/search-ui/filters/component/button/SearchUIFiltersCriterionHeaderRemoveButton.js.map +1 -1
  42. package/cjs/component/search-ui/filters/component/criterion/CriterionRight.js +7 -2
  43. package/cjs/component/search-ui/filters/component/criterion/CriterionRight.js.map +1 -1
  44. package/cjs/component/search-ui/filters/component/criterion/CustomerLevelCriterion.js +21 -4
  45. package/cjs/component/search-ui/filters/component/criterion/CustomerLevelCriterion.js.map +1 -1
  46. package/cjs/component/search-ui/filters/component/criterion/DateRangeCriterion.js +126 -6
  47. package/cjs/component/search-ui/filters/component/criterion/DateRangeCriterion.js.map +1 -1
  48. package/cjs/component/search-ui/filters/component/criterion/ErrorCodeCriterion.js +29 -1
  49. package/cjs/component/search-ui/filters/component/criterion/ErrorCodeCriterion.js.map +1 -1
  50. package/cjs/component/search-ui/filters/component/criterion/ExactSearchCriterion.js +7 -0
  51. package/cjs/component/search-ui/filters/component/criterion/ExactSearchCriterion.js.map +1 -1
  52. package/cjs/component/search-ui/filters/component/criterion/GroupingCriterion.js +77 -4
  53. package/cjs/component/search-ui/filters/component/criterion/GroupingCriterion.js.map +1 -1
  54. package/cjs/component/search-ui/filters/component/criterion/MarkerStatusCriterion.js +3 -9
  55. package/cjs/component/search-ui/filters/component/criterion/MarkerStatusCriterion.js.map +1 -1
  56. package/cjs/component/search-ui/filters/component/criterion/MultigetCriterionPanel.js +35 -6
  57. package/cjs/component/search-ui/filters/component/criterion/MultigetCriterionPanel.js.map +1 -1
  58. package/cjs/component/search-ui/filters/component/criterion/ProcessorLogEntryTypesCriterion.js +12 -2
  59. package/cjs/component/search-ui/filters/component/criterion/ProcessorLogEntryTypesCriterion.js.map +1 -1
  60. package/cjs/component/search-ui/filters/component/criterion/ProjectCurrencyCriterion.js +57 -16
  61. package/cjs/component/search-ui/filters/component/criterion/ProjectCurrencyCriterion.js.map +1 -1
  62. package/cjs/component/search-ui/filters/component/criterion/StatusCriterion.js +3 -9
  63. package/cjs/component/search-ui/filters/component/criterion/StatusCriterion.js.map +1 -1
  64. package/cjs/component/search-ui/filters/component/criterion/ThreeDCriterion.js +8 -14
  65. package/cjs/component/search-ui/filters/component/criterion/ThreeDCriterion.js.map +1 -1
  66. package/cjs/component/search-ui/filters/component/criterion/TransactionSessionStatusCriterion.js +55 -6
  67. package/cjs/component/search-ui/filters/component/criterion/TransactionSessionStatusCriterion.js.map +1 -1
  68. package/cjs/component/search-ui/filters/component/criterion/orders-search/OrdersSearchCountrySelect.js +48 -12
  69. package/cjs/component/search-ui/filters/component/criterion/orders-search/OrdersSearchCountrySelect.js.map +1 -1
  70. package/cjs/component/search-ui/filters/component/criterion/orders-search/OrdersSearchInput.js +11 -0
  71. package/cjs/component/search-ui/filters/component/criterion/orders-search/OrdersSearchInput.js.map +1 -1
  72. package/cjs/component/search-ui/filters/component/select/SearchUIAbstractEntityChipSelect.d.ts +7 -0
  73. package/cjs/component/search-ui/filters/component/select/SearchUIAbstractEntityChipSelect.js +26 -3
  74. package/cjs/component/search-ui/filters/component/select/SearchUIAbstractEntityChipSelect.js.map +1 -1
  75. package/cjs/component/search-ui/filters/component/select/SearchUIAbstractEntitySelect.js +58 -47
  76. package/cjs/component/search-ui/filters/component/select/SearchUIAbstractEntitySelect.js.map +1 -1
  77. package/cjs/component/search-ui/filters/component/select/SearchUIAddFilter.js +15 -2
  78. package/cjs/component/search-ui/filters/component/select/SearchUIAddFilter.js.map +1 -1
  79. package/cjs/component/search-ui/filters/component/select/SearchUICollapsableGroupSelect.d.ts +13 -1
  80. package/cjs/component/search-ui/filters/component/select/SearchUICollapsableGroupSelect.js +153 -60
  81. package/cjs/component/search-ui/filters/component/select/SearchUICollapsableGroupSelect.js.map +1 -1
  82. package/cjs/component/search-ui/filters/component/select/SearchUICountriesSelect.js +56 -31
  83. package/cjs/component/search-ui/filters/component/select/SearchUICountriesSelect.js.map +1 -1
  84. package/cjs/component/search-ui/filters/component/select/SearchUIDateRangeSpecTypeSelect.js +19 -2
  85. package/cjs/component/search-ui/filters/component/select/SearchUIDateRangeSpecTypeSelect.js.map +1 -1
  86. package/cjs/component/search-ui/filters/component/select/SearchUIEnumChipSelect.d.ts +10 -0
  87. package/cjs/component/search-ui/filters/component/select/SearchUIEnumChipSelect.js +21 -0
  88. package/cjs/component/search-ui/filters/component/select/SearchUIEnumChipSelect.js.map +1 -0
  89. package/cjs/component/search-ui/filters/component/select/SearchUIExactSearchLabelSelect.js +17 -2
  90. package/cjs/component/search-ui/filters/component/select/SearchUIExactSearchLabelSelect.js.map +1 -1
  91. package/cjs/component/search-ui/filters/component/select/SearchUIGroupingDateTypeSelect.js +19 -2
  92. package/cjs/component/search-ui/filters/component/select/SearchUIGroupingDateTypeSelect.js.map +1 -1
  93. package/cjs/component/search-ui/filters/component/select/SearchUIOrderDateTypeSelect.js +19 -2
  94. package/cjs/component/search-ui/filters/component/select/SearchUIOrderDateTypeSelect.js.map +1 -1
  95. package/cjs/component/search-ui/filters/component/select/SearchUIOrdersSearchLabelSelect.js +29 -4
  96. package/cjs/component/search-ui/filters/component/select/SearchUIOrdersSearchLabelSelect.js.map +1 -1
  97. package/cjs/component/search-ui/filters/component/template/SearchUITemplatePanel.js +19 -3
  98. package/cjs/component/search-ui/filters/component/template/SearchUITemplatePanel.js.map +1 -1
  99. package/cjs/component/search-ui/filters/component/template/SearchUITemplatesMenu.js +29 -5
  100. package/cjs/component/search-ui/filters/component/template/SearchUITemplatesMenu.js.map +1 -1
  101. package/cjs/component/search-ui/filters/state/actions.js +0 -1
  102. package/cjs/component/search-ui/filters/state/actions.js.map +1 -1
  103. package/cjs/component/search-ui/filters/styled.d.ts +1 -1
  104. package/cjs/component/search-ui/filters/styled.js +9 -3
  105. package/cjs/component/search-ui/filters/styled.js.map +1 -1
  106. package/cjs/component/search-ui/multiget_select/MultigetSelect.js +20 -7
  107. package/cjs/component/search-ui/multiget_select/MultigetSelect.js.map +1 -1
  108. package/cjs/component/search-ui/multiget_select/MultigetSelectTable.js +30 -6
  109. package/cjs/component/search-ui/multiget_select/MultigetSelectTable.js.map +1 -1
  110. package/cjs/component/table/AbstractTable.d.ts +7 -0
  111. package/cjs/component/table/AbstractTable.js +10 -8
  112. package/cjs/component/table/AbstractTable.js.map +1 -1
  113. package/cjs/component/table/PneHeaderTableCell.d.ts +6 -1
  114. package/cjs/component/table/PneHeaderTableCell.js +5 -2
  115. package/cjs/component/table/PneHeaderTableCell.js.map +1 -1
  116. package/cjs/component/table/PneTablePaginationActions.js +4 -13
  117. package/cjs/component/table/PneTablePaginationActions.js.map +1 -1
  118. package/cjs/component/table/useTable.js +7 -8
  119. package/cjs/component/table/useTable.js.map +1 -1
  120. package/cjs/exports/entities.d.ts +1 -1
  121. package/cjs/exports/entities.js.map +1 -1
  122. package/cjs/exports/inputs.d.ts +2 -1
  123. package/cjs/exports/inputs.js.map +1 -1
  124. package/cjs/exports/search.d.ts +2 -2
  125. package/cjs/exports/search.js.map +1 -1
  126. package/cjs/exports/table.d.ts +1 -0
  127. package/cjs/exports/table.js.map +1 -1
  128. package/cjs/exports/utils.d.ts +1 -1
  129. package/cjs/exports/utils.js +2 -1
  130. package/cjs/exports/utils.js.map +1 -1
  131. package/docs/i18n.md +66 -0
  132. package/docs/selenium-locators.md +640 -0
  133. package/esm/component/AutoTestAttribute.d.ts +22 -5
  134. package/esm/component/AutoTestAttribute.js +25 -22
  135. package/esm/component/AutoTestAttribute.js.map +1 -1
  136. package/esm/component/dropdown/PneAsyncAutocomplete.d.ts +5 -0
  137. package/esm/component/dropdown/PneAsyncAutocomplete.js +10 -5
  138. package/esm/component/dropdown/PneAsyncAutocomplete.js.map +1 -1
  139. package/esm/component/dropdown/PneAutocomplete.d.ts +8 -2
  140. package/esm/component/dropdown/PneAutocomplete.js +8 -2
  141. package/esm/component/dropdown/PneAutocomplete.js.map +1 -1
  142. package/esm/component/dropdown/PneSelect.d.ts +4 -0
  143. package/esm/component/dropdown/PneSelect.js +5 -2
  144. package/esm/component/dropdown/PneSelect.js.map +1 -1
  145. package/esm/component/non-abstract-entity-selector/AbstractEntitySelectModal.d.ts +6 -1
  146. package/esm/component/non-abstract-entity-selector/AbstractEntitySelectModal.js +4 -2
  147. package/esm/component/non-abstract-entity-selector/AbstractEntitySelectModal.js.map +1 -1
  148. package/esm/component/non-abstract-entity-selector/AbstractEntitySelector.d.ts +18 -0
  149. package/esm/component/non-abstract-entity-selector/AbstractEntitySelector.js +11 -10
  150. package/esm/component/non-abstract-entity-selector/AbstractEntitySelector.js.map +1 -1
  151. package/esm/component/non-abstract-entity-selector/ItemEntitySelector.d.ts +5 -1
  152. package/esm/component/non-abstract-entity-selector/ItemEntitySelector.js +4 -4
  153. package/esm/component/non-abstract-entity-selector/ItemEntitySelector.js.map +1 -1
  154. package/esm/component/non-abstract-entity-selector/styled.d.ts +6 -2
  155. package/esm/component/non-abstract-entity-selector/styled.js.map +1 -1
  156. package/esm/component/search-ui/SearchUI.d.ts +7 -3
  157. package/esm/component/search-ui/SearchUI.js +3 -3
  158. package/esm/component/search-ui/SearchUI.js.map +1 -1
  159. package/esm/component/search-ui/filters/AutoTestScope.d.ts +20 -0
  160. package/esm/component/search-ui/filters/AutoTestScope.js +23 -0
  161. package/esm/component/search-ui/filters/AutoTestScope.js.map +1 -0
  162. package/esm/component/search-ui/filters/CriterionContainer.js +10 -6
  163. package/esm/component/search-ui/filters/CriterionContainer.js.map +1 -1
  164. package/esm/component/search-ui/filters/SearchUIFilters.d.ts +8 -4
  165. package/esm/component/search-ui/filters/SearchUIFilters.js +31 -23
  166. package/esm/component/search-ui/filters/SearchUIFilters.js.map +1 -1
  167. package/esm/component/search-ui/filters/component/button/SearchUIFiltersCriterionHeaderClearButton.d.ts +1 -0
  168. package/esm/component/search-ui/filters/component/button/SearchUIFiltersCriterionHeaderClearButton.js +5 -3
  169. package/esm/component/search-ui/filters/component/button/SearchUIFiltersCriterionHeaderClearButton.js.map +1 -1
  170. package/esm/component/search-ui/filters/component/button/SearchUIFiltersCriterionHeaderRemoveButton.d.ts +1 -0
  171. package/esm/component/search-ui/filters/component/button/SearchUIFiltersCriterionHeaderRemoveButton.js +5 -3
  172. package/esm/component/search-ui/filters/component/button/SearchUIFiltersCriterionHeaderRemoveButton.js.map +1 -1
  173. package/esm/component/search-ui/filters/component/criterion/CriterionRight.js +7 -2
  174. package/esm/component/search-ui/filters/component/criterion/CriterionRight.js.map +1 -1
  175. package/esm/component/search-ui/filters/component/criterion/CustomerLevelCriterion.js +21 -4
  176. package/esm/component/search-ui/filters/component/criterion/CustomerLevelCriterion.js.map +1 -1
  177. package/esm/component/search-ui/filters/component/criterion/DateRangeCriterion.js +126 -6
  178. package/esm/component/search-ui/filters/component/criterion/DateRangeCriterion.js.map +1 -1
  179. package/esm/component/search-ui/filters/component/criterion/ErrorCodeCriterion.js +29 -1
  180. package/esm/component/search-ui/filters/component/criterion/ErrorCodeCriterion.js.map +1 -1
  181. package/esm/component/search-ui/filters/component/criterion/ExactSearchCriterion.js +7 -0
  182. package/esm/component/search-ui/filters/component/criterion/ExactSearchCriterion.js.map +1 -1
  183. package/esm/component/search-ui/filters/component/criterion/GroupingCriterion.js +77 -4
  184. package/esm/component/search-ui/filters/component/criterion/GroupingCriterion.js.map +1 -1
  185. package/esm/component/search-ui/filters/component/criterion/MarkerStatusCriterion.js +3 -9
  186. package/esm/component/search-ui/filters/component/criterion/MarkerStatusCriterion.js.map +1 -1
  187. package/esm/component/search-ui/filters/component/criterion/MultigetCriterionPanel.js +35 -6
  188. package/esm/component/search-ui/filters/component/criterion/MultigetCriterionPanel.js.map +1 -1
  189. package/esm/component/search-ui/filters/component/criterion/ProcessorLogEntryTypesCriterion.js +12 -2
  190. package/esm/component/search-ui/filters/component/criterion/ProcessorLogEntryTypesCriterion.js.map +1 -1
  191. package/esm/component/search-ui/filters/component/criterion/ProjectCurrencyCriterion.js +57 -16
  192. package/esm/component/search-ui/filters/component/criterion/ProjectCurrencyCriterion.js.map +1 -1
  193. package/esm/component/search-ui/filters/component/criterion/StatusCriterion.js +3 -9
  194. package/esm/component/search-ui/filters/component/criterion/StatusCriterion.js.map +1 -1
  195. package/esm/component/search-ui/filters/component/criterion/ThreeDCriterion.js +8 -14
  196. package/esm/component/search-ui/filters/component/criterion/ThreeDCriterion.js.map +1 -1
  197. package/esm/component/search-ui/filters/component/criterion/TransactionSessionStatusCriterion.js +55 -6
  198. package/esm/component/search-ui/filters/component/criterion/TransactionSessionStatusCriterion.js.map +1 -1
  199. package/esm/component/search-ui/filters/component/criterion/orders-search/OrdersSearchCountrySelect.js +48 -12
  200. package/esm/component/search-ui/filters/component/criterion/orders-search/OrdersSearchCountrySelect.js.map +1 -1
  201. package/esm/component/search-ui/filters/component/criterion/orders-search/OrdersSearchInput.js +11 -0
  202. package/esm/component/search-ui/filters/component/criterion/orders-search/OrdersSearchInput.js.map +1 -1
  203. package/esm/component/search-ui/filters/component/select/SearchUIAbstractEntityChipSelect.d.ts +7 -0
  204. package/esm/component/search-ui/filters/component/select/SearchUIAbstractEntityChipSelect.js +26 -3
  205. package/esm/component/search-ui/filters/component/select/SearchUIAbstractEntityChipSelect.js.map +1 -1
  206. package/esm/component/search-ui/filters/component/select/SearchUIAbstractEntitySelect.js +60 -49
  207. package/esm/component/search-ui/filters/component/select/SearchUIAbstractEntitySelect.js.map +1 -1
  208. package/esm/component/search-ui/filters/component/select/SearchUIAddFilter.js +15 -2
  209. package/esm/component/search-ui/filters/component/select/SearchUIAddFilter.js.map +1 -1
  210. package/esm/component/search-ui/filters/component/select/SearchUICollapsableGroupSelect.d.ts +13 -1
  211. package/esm/component/search-ui/filters/component/select/SearchUICollapsableGroupSelect.js +154 -61
  212. package/esm/component/search-ui/filters/component/select/SearchUICollapsableGroupSelect.js.map +1 -1
  213. package/esm/component/search-ui/filters/component/select/SearchUICountriesSelect.js +57 -32
  214. package/esm/component/search-ui/filters/component/select/SearchUICountriesSelect.js.map +1 -1
  215. package/esm/component/search-ui/filters/component/select/SearchUIDateRangeSpecTypeSelect.js +19 -2
  216. package/esm/component/search-ui/filters/component/select/SearchUIDateRangeSpecTypeSelect.js.map +1 -1
  217. package/esm/component/search-ui/filters/component/select/SearchUIEnumChipSelect.d.ts +10 -0
  218. package/esm/component/search-ui/filters/component/select/SearchUIEnumChipSelect.js +16 -0
  219. package/esm/component/search-ui/filters/component/select/SearchUIEnumChipSelect.js.map +1 -0
  220. package/esm/component/search-ui/filters/component/select/SearchUIExactSearchLabelSelect.js +17 -2
  221. package/esm/component/search-ui/filters/component/select/SearchUIExactSearchLabelSelect.js.map +1 -1
  222. package/esm/component/search-ui/filters/component/select/SearchUIGroupingDateTypeSelect.js +19 -2
  223. package/esm/component/search-ui/filters/component/select/SearchUIGroupingDateTypeSelect.js.map +1 -1
  224. package/esm/component/search-ui/filters/component/select/SearchUIOrderDateTypeSelect.js +19 -2
  225. package/esm/component/search-ui/filters/component/select/SearchUIOrderDateTypeSelect.js.map +1 -1
  226. package/esm/component/search-ui/filters/component/select/SearchUIOrdersSearchLabelSelect.js +30 -5
  227. package/esm/component/search-ui/filters/component/select/SearchUIOrdersSearchLabelSelect.js.map +1 -1
  228. package/esm/component/search-ui/filters/component/template/SearchUITemplatePanel.js +19 -3
  229. package/esm/component/search-ui/filters/component/template/SearchUITemplatePanel.js.map +1 -1
  230. package/esm/component/search-ui/filters/component/template/SearchUITemplatesMenu.js +30 -6
  231. package/esm/component/search-ui/filters/component/template/SearchUITemplatesMenu.js.map +1 -1
  232. package/esm/component/search-ui/filters/state/actions.js +0 -1
  233. package/esm/component/search-ui/filters/state/actions.js.map +1 -1
  234. package/esm/component/search-ui/filters/styled.d.ts +1 -1
  235. package/esm/component/search-ui/filters/styled.js +9 -3
  236. package/esm/component/search-ui/filters/styled.js.map +1 -1
  237. package/esm/component/search-ui/multiget_select/MultigetSelect.js +20 -7
  238. package/esm/component/search-ui/multiget_select/MultigetSelect.js.map +1 -1
  239. package/esm/component/search-ui/multiget_select/MultigetSelectTable.js +30 -6
  240. package/esm/component/search-ui/multiget_select/MultigetSelectTable.js.map +1 -1
  241. package/esm/component/table/AbstractTable.d.ts +7 -0
  242. package/esm/component/table/AbstractTable.js +10 -8
  243. package/esm/component/table/AbstractTable.js.map +1 -1
  244. package/esm/component/table/PneHeaderTableCell.d.ts +6 -1
  245. package/esm/component/table/PneHeaderTableCell.js +5 -2
  246. package/esm/component/table/PneHeaderTableCell.js.map +1 -1
  247. package/esm/component/table/PneTablePaginationActions.js +4 -13
  248. package/esm/component/table/PneTablePaginationActions.js.map +1 -1
  249. package/esm/component/table/useTable.js +7 -8
  250. package/esm/component/table/useTable.js.map +1 -1
  251. package/esm/exports/entities.d.ts +1 -1
  252. package/esm/exports/entities.js.map +1 -1
  253. package/esm/exports/inputs.d.ts +2 -1
  254. package/esm/exports/inputs.js.map +1 -1
  255. package/esm/exports/search.d.ts +2 -2
  256. package/esm/exports/search.js.map +1 -1
  257. package/esm/exports/table.d.ts +1 -0
  258. package/esm/exports/table.js.map +1 -1
  259. package/esm/exports/utils.d.ts +1 -1
  260. package/esm/exports/utils.js +1 -1
  261. package/esm/exports/utils.js.map +1 -1
  262. package/package.json +22 -4
  263. package/cjs/component/table/state/actions.d.ts +0 -3
  264. package/cjs/component/table/state/actions.js +0 -12
  265. package/cjs/component/table/state/actions.js.map +0 -1
  266. package/cjs/component/table/state/initial.d.ts +0 -2
  267. package/cjs/component/table/state/initial.js +0 -8
  268. package/cjs/component/table/state/initial.js.map +0 -1
  269. package/cjs/component/table/state/store.d.ts +0 -11
  270. package/cjs/component/table/state/store.js +0 -12
  271. package/cjs/component/table/state/store.js.map +0 -1
  272. package/cjs/component/table/state/type.d.ts +0 -7
  273. package/cjs/component/table/state/type.js +0 -3
  274. package/cjs/component/table/state/type.js.map +0 -1
  275. package/esm/component/table/state/actions.d.ts +0 -3
  276. package/esm/component/table/state/actions.js +0 -8
  277. package/esm/component/table/state/actions.js.map +0 -1
  278. package/esm/component/table/state/initial.d.ts +0 -2
  279. package/esm/component/table/state/initial.js +0 -4
  280. package/esm/component/table/state/initial.js.map +0 -1
  281. package/esm/component/table/state/store.d.ts +0 -11
  282. package/esm/component/table/state/store.js +0 -9
  283. package/esm/component/table/state/store.js.map +0 -1
  284. package/esm/component/table/state/type.d.ts +0 -7
  285. package/esm/component/table/state/type.js +0 -2
  286. package/esm/component/table/state/type.js.map +0 -1
package/README.md CHANGED
@@ -29,6 +29,132 @@ yarn add pne-ui @emotion/react@^11 @emotion/styled@^11 @mui/material@^7 @mui/sys
29
29
  - `react-dom@^18 || ^19`
30
30
  - `react-i18next@^11`
31
31
 
32
+ ## Якоря для автотестов
33
+
34
+ Для нового кода добавляйте якорь непосредственно на существующий DOM-элемент или нужный MUI slot через
35
+ `createAutoTestAttributes`. Helper не создаёт дополнительный wrapper и возвращает стабильные
36
+ `data-autotest` и, при наличии значения, `data-autotest-value`:
37
+
38
+ ```tsx
39
+ import { createAutoTestAttributes } from 'pne-ui'
40
+
41
+ export const OrdersTable = () => (
42
+ <section {...createAutoTestAttributes('orders-table', 'active')}>
43
+ {/* content */}
44
+ </section>
45
+ )
46
+ ```
47
+
48
+ Атрибуты присутствуют во всех build modes. `undefined` не добавляет `data-autotest-value`, а `''`, `0` и
49
+ `false` сохраняются как явные значения. Используйте только стабильные несекретные идентификаторы; состояние
50
+ `disabled`, `checked`, `selected` и похожие состояния проверяйте через нативные DOM/ARIA-свойства.
51
+
52
+ `AutoTestAttribute` остаётся compatibility API для существующего кода. Он принимает ровно одного React child:
53
+
54
+ - DOM-элемент получает атрибуты без дополнительного узла;
55
+ - custom component обязан передать неизвестные DOM props на нужный элемент;
56
+ - React Fragment временно оборачивается в `div` для обратной совместимости.
57
+
58
+ Поэтому во внутренней реализации новых компонентов библиотеки используйте `createAutoTestAttributes`, а не
59
+ wrapper-компонент.
60
+
61
+ ### PneTable
62
+
63
+ Передавайте `autoTestId` для каждой логической таблицы; если на странице их несколько, значения обязаны быть
64
+ уникальными. Существующий внешний root получает `data-autotest="table"` и переданный ID в
65
+ `data-autotest-value`. `tableAriaLabel` или `tableAriaLabelledBy` независимо задают пользовательское имя
66
+ semantic `<table>` для role-запросов.
67
+
68
+ ```tsx
69
+ <PneTable<Order>
70
+ autoTestId="orders"
71
+ tableAriaLabel="Orders"
72
+ data={orders}
73
+ createRow={order => (
74
+ <PneTableRow
75
+ key={order.id}
76
+ {...createAutoTestAttributes('row', order.id)}
77
+ >
78
+ <PneTableCell {...createAutoTestAttributes('cell', 'status')}>
79
+ {order.statusLabel}
80
+ </PneTableCell>
81
+ </PneTableRow>
82
+ )}
83
+ /* остальные props */
84
+ />
85
+ ```
86
+
87
+ Идентичность строк и колонок принадлежит caller-коду в `createRow`/`createTableHeader`: используйте
88
+ стабильные domain ID и column keys. Библиотека намеренно не выводит их из array index, переведённого текста,
89
+ DOM-позиции или пользовательских/секретных данных. Для sortable header передавайте те же `sortOptions` и
90
+ `sortIndex` в `PneHeaderTableCell`; MUI выставит `aria-sort` только на активном `<th>`.
91
+
92
+ Внутренний контракт таблицы:
93
+
94
+ - пагинации: `data-autotest="pagination"` со значением `top` или `bottom`; action IDs ищутся внутри этого scope;
95
+ - загрузка: `aria-busy` на semantic table;
96
+ - пустой результат: существующая строка `data-autotest="empty-state"`;
97
+ - disabled/checked/selected состояния: только нативные DOM/ARIA-свойства, без test-only копий.
98
+
99
+ ### SearchUI и SearchUIFilters
100
+
101
+ Передавайте стабильный несекретный `autoTestId` как Selenium scope поискового интерфейса. Если prop не задан,
102
+ используется `settingsContextName`. Для нескольких одновременно отображаемых `SearchUI` или самостоятельных
103
+ `SearchUIFilters` задавайте разные явные значения, даже если компоненты намеренно используют один
104
+ `settingsContextName` для состояния.
105
+
106
+ `SearchUI` не получает общего test-only root: фильтры и результаты имеют отдельные anchors с одним значением
107
+ scope. Таблица ищется от document/page scope, а не внутри `search-filters`:
108
+
109
+ - `data-autotest="search-filters"` / `data-autotest-value="<scope>"` — панель фильтров;
110
+ - `data-autotest="table"` / `data-autotest-value="<scope>"` — таблица результатов;
111
+ - `data-autotest="criterion"` / `data-autotest-value="<raw CriterionTypeEnum>"` — существующий root критерия.
112
+
113
+ Например, очистку критерия `STATUS` в поиске заказов можно найти обычным CSS locator:
114
+
115
+ ```css
116
+ [data-autotest="search-filters"][data-autotest-value="orders"] [data-autotest="criterion"][data-autotest-value="STATUS"] [data-autotest="clear-criterion"]
117
+ ```
118
+
119
+ Общие действия внутри `search-filters/<scope>`:
120
+
121
+ - `toggle-filters` — native button; состояние панели находится в `aria-expanded`, связь с панелью — в
122
+ `aria-controls`;
123
+ - `clear-all` и `run-search` — реальные кнопки; доступность запуска поиска проверяется через native `disabled`
124
+ (`run-search` одинаков для режимов Search и Refresh);
125
+ - `templates` — native button с `aria-expanded` и open-state `aria-controls`;
126
+ - `add-filter` — реально кликаемый MUI `role="combobox"`, а не декоративная кнопка над ним; состояние и связь с
127
+ listbox находятся в `aria-expanded` и open-state `aria-controls`;
128
+ - `clear-criterion` и `remove-criterion` — native `button type="button"` внутри соответствующего
129
+ `criterion/<raw type>`; remove отсутствует у non-removable predefined-критерия.
130
+
131
+ Часть roots/actions условна: критерий, `clear-all`, `remove-criterion`, templates и add-filter могут отсутствовать
132
+ из-за `config` или текущего состояния. Такое отсутствие является состоянием UI, а не ошибкой locator contract.
133
+
134
+ Popover и modal рендерятся через React portal вне `search-filters`, поэтому Selenium должен искать их отдельно
135
+ по тому же owner scope:
136
+
137
+ ```css
138
+ [data-autotest="templates-panel"][data-autotest-value="orders"]
139
+ [data-autotest="add-filter-options"][data-autotest-value="orders"]
140
+ [data-autotest="template-editor"][data-autotest-value="orders"]
141
+ ```
142
+
143
+ `templates-panel` и `template-editor` имеют dialog semantics, а `add-filter-options` — native MUI listbox.
144
+ Generated IDs из `aria-controls` не хардкодируйте: при необходимости считывайте ID у trigger во время теста;
145
+ стабильным owner locator остаётся `data-autotest` + scope. Строки сохранённых шаблонов отмечены одинаковым
146
+ `template-item` без value; внутри используются `select-template` и `remove-template`. Имя шаблона остаётся
147
+ видимым пользовательским значением и доступным именем, но намеренно не попадает в `data-autotest-value`.
148
+ Icon-only закрытие editor имеет `close-template-editor`; поле имени, Create и Cancel остаются стандартными
149
+ required textbox/text buttons и ищутся по role/name внутри scoped editor.
150
+
151
+ Обычные inputs, text buttons, options, checkboxes и switches ищите по native role/name и проверяйте их native/ARIA
152
+ state. Не используйте MUI classes, SVG/path, DOM depth, array index, переведённый текст как технический ID или
153
+ сгенерированный `aria-controls` ID.
154
+
155
+ Полная Selenium-документация, включая матрицу всех 31 критериев, detached portals, date pickers, grouping,
156
+ transaction session status и все девять multiget-панелей: [docs/selenium-locators.md](docs/selenium-locators.md).
157
+
32
158
  ## OverlayHost
33
159
 
34
160
  Компоненты, которые используют `overlayActions` напрямую или косвенно, требуют смонтированный
@@ -498,6 +624,39 @@ export const FabDemo = () => (
498
624
  - Ширина > `mobileBreakpoint`: стек FAB над триггером + меню (все action-пункты дублируются в меню).
499
625
  - Ширина <= `mobileBreakpoint`: только триггер + меню, стек FAB скрыт.
500
626
 
627
+ ## Публикация пакета
628
+
629
+ Перед публикацией выполните `yarn npmLogin`. Release-команды проверяют npm-сессию, запускают тесты, линтер, сборку и
630
+ `npm pack --dry-run` перед `npm publish`.
631
+
632
+ Стабильные версии публикуются под npm dist-tag `latest`:
633
+
634
+ | Команда | Результат |
635
+ | --- | --- |
636
+ | `yarn release` / `yarn release:patch` | Для стабильной версии поднять patch; для RC снять `-rc.N`. Затем опубликовать. Это команда по умолчанию, если отдельный bump был забыт. |
637
+ | `yarn release:minor` | Поднять minor и опубликовать. |
638
+ | `yarn release:major` | Поднять major и опубликовать. |
639
+ | `yarn release:stable` | Снять текущий `-rc.N` и опубликовать стабильную версию; для уже стабильной версии работает как patch release. |
640
+ | `yarn release:current` / `yarn publish:stable` | Опубликовать уже выставленную стабильную версию без изменения номера. |
641
+
642
+ RC-версии публикуются под dist-tag `next`, поэтому не заменяют стабильную версию для обычной установки:
643
+
644
+ | Команда | Результат |
645
+ | --- | --- |
646
+ | `yarn release:rc:current` | Опубликовать уже выставленную RC-версию без изменения номера. |
647
+ | `yarn release:rc:next` | Например, `4.3.0-rc.0` → `4.3.0-rc.1`, затем опубликовать. |
648
+ | `yarn release:rc:patch` | Начать следующую patch RC-линейку и опубликовать. |
649
+ | `yarn release:rc:minor` | Начать следующую minor RC-линейку и опубликовать. |
650
+ | `yarn release:rc:major` | Начать следующую major RC-линейку и опубликовать. |
651
+
652
+ Версию можно изменить отдельно, без публикации: `yarn version:patch`, `yarn version:minor`, `yarn version:major`,
653
+ `yarn version:rc:patch`, `yarn version:rc:minor`, `yarn version:rc:major` или `yarn version:rc:next`. После ручного bump
654
+ используйте `yarn publish:stable` либо `yarn publish:rc`; команда должна соответствовать типу версии в `package.json`.
655
+ Повторный запуск составной `release:*`-команды поднимет версию ещё раз.
656
+
657
+ Если публикация завершилась ошибкой уже после bump, исправьте причину и повторите только `yarn publish:stable` или
658
+ `yarn publish:rc`. Скрипты меняют `package.json`, но не создают git commit и tag — их следует оформить отдельно.
659
+
501
660
  [npm-url]: https://www.npmjs.com/package/pne-ui
502
661
 
503
662
  [npm-image]: https://img.shields.io/npm/v/pne-ui
@@ -1,8 +1,25 @@
1
1
  import React from 'react';
2
- interface IProps {
2
+ declare const TEST_ATTRIBUTE_NAME = "data-autotest";
3
+ declare const TEST_ATTRIBUTE_VALUE_NAME = "data-autotest-value";
4
+ export type AutoTestValue = string | number | boolean;
5
+ export type AutoTestAttributes = {
6
+ [TEST_ATTRIBUTE_NAME]: string;
7
+ [TEST_ATTRIBUTE_VALUE_NAME]?: AutoTestValue;
8
+ };
9
+ export type AutoTestAttributeProps = React.PropsWithChildren<{
3
10
  id: string;
4
- value?: valueType;
5
- }
6
- type valueType = string | number | boolean;
7
- export declare const AutoTestAttribute: (props: React.PropsWithChildren<IProps>) => React.JSX.Element;
11
+ value?: AutoTestValue;
12
+ }>;
13
+ /**
14
+ * Creates always-on, non-secret locator attributes for direct attachment to the
15
+ * DOM node or MUI slot that owns the tested interaction.
16
+ */
17
+ export declare const createAutoTestAttributes: (id: string, value?: AutoTestValue) => AutoTestAttributes;
18
+ /**
19
+ * Compatibility API for existing consumers. Custom children must forward
20
+ * unknown DOM attributes. A Fragment child is wrapped in a div for legacy
21
+ * compatibility, so new library code should use createAutoTestAttributes on an
22
+ * existing DOM node or MUI slot instead.
23
+ */
24
+ export declare const AutoTestAttribute: (props: AutoTestAttributeProps) => React.JSX.Element;
8
25
  export {};
@@ -1,37 +1,41 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AutoTestAttribute = void 0;
3
+ exports.AutoTestAttribute = exports.createAutoTestAttributes = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importDefault(require("react"));
6
- const react_is_1 = tslib_1.__importDefault(require("react-is"));
7
- const DATA_ATTRIBUTE_SUFFIX = 'autotest';
8
- const DATA_ATTRIBUTE_VALUE_SUFFIX = 'autotest-value';
9
- const TEST_ATTRIBUTE_NAME = `data-${DATA_ATTRIBUTE_SUFFIX}`;
10
- const TEST_ATTRIBUTE_VALUE_NAME = `data-${DATA_ATTRIBUTE_VALUE_SUFFIX}`;
6
+ const TEST_ATTRIBUTE_NAME = 'data-autotest';
7
+ const TEST_ATTRIBUTE_VALUE_NAME = 'data-autotest-value';
8
+ /**
9
+ * Creates always-on, non-secret locator attributes for direct attachment to the
10
+ * DOM node or MUI slot that owns the tested interaction.
11
+ */
12
+ const createAutoTestAttributes = (id, value) => value === undefined
13
+ ? { [TEST_ATTRIBUTE_NAME]: id }
14
+ : {
15
+ [TEST_ATTRIBUTE_NAME]: id,
16
+ [TEST_ATTRIBUTE_VALUE_NAME]: value,
17
+ };
18
+ exports.createAutoTestAttributes = createAutoTestAttributes;
19
+ /**
20
+ * Compatibility API for existing consumers. Custom children must forward
21
+ * unknown DOM attributes. A Fragment child is wrapped in a div for legacy
22
+ * compatibility, so new library code should use createAutoTestAttributes on an
23
+ * existing DOM node or MUI slot instead.
24
+ */
11
25
  const AutoTestAttribute = (props) => {
12
26
  const { id, value, children, } = props;
13
- const isProduction = process.env.PUBLIC_AUTOTEST_ATTRIBUTES === 'false';
27
+ const attributes = (0, exports.createAutoTestAttributes)(id, value);
14
28
  const withTestAttribute = (nodes) => {
15
29
  const node = react_1.default.Children.only(nodes);
16
- if (react_is_1.default.isFragment(node)) {
17
- return react_1.default.createElement('div',
18
- // @ts-expect-error TS2345
19
- addValueAttributeIfPresent({ [TEST_ATTRIBUTE_NAME]: id }, value), node);
20
- }
21
- else if (react_is_1.default.isElement(node)) {
22
- return react_1.default.cloneElement(node,
23
- // @ts-expect-error TS2345
24
- addValueAttributeIfPresent({ [TEST_ATTRIBUTE_NAME]: id }, value));
25
- }
26
- else {
27
- console.log('node');
30
+ if (!react_1.default.isValidElement(node)) {
28
31
  return node;
29
32
  }
33
+ if (node.type === react_1.default.Fragment) {
34
+ return react_1.default.createElement('div', attributes, node);
35
+ }
36
+ return react_1.default.cloneElement(node, attributes);
30
37
  };
31
- return react_1.default.createElement(react_1.default.Fragment, null, isProduction ? children : withTestAttribute(children));
38
+ return react_1.default.createElement(react_1.default.Fragment, null, withTestAttribute(children));
32
39
  };
33
40
  exports.AutoTestAttribute = AutoTestAttribute;
34
- const addValueAttributeIfPresent = (attributes, value) => {
35
- return value !== undefined ? { ...attributes, [TEST_ATTRIBUTE_VALUE_NAME]: value } : attributes;
36
- };
37
41
  //# sourceMappingURL=AutoTestAttribute.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AutoTestAttribute.js","sourceRoot":"","sources":["../../src/component/AutoTestAttribute.tsx"],"names":[],"mappings":";;;;AAAA,0DAA0C;AAC1C,gEAA+B;AAE/B,MAAM,qBAAqB,GAAG,UAAU,CAAC;AACzC,MAAM,2BAA2B,GAAG,gBAAgB,CAAC;AACrD,MAAM,mBAAmB,GAAG,QAAQ,qBAAqB,EAAE,CAAC;AAC5D,MAAM,yBAAyB,GAAG,QAAQ,2BAA2B,EAAE,CAAC;AASjE,MAAM,iBAAiB,GAAG,CAAC,KAAsC,EAAE,EAAE;IACxE,MAAM,EACF,EAAE,EACF,KAAK,EACL,QAAQ,GACX,GAAG,KAAK,CAAC;IAEV,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,OAAO,CAAC;IAExE,MAAM,iBAAiB,GAAG,CAAC,KAAsB,EAAmB,EAAE;QAClE,MAAM,IAAI,GAAG,eAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAExC,IAAI,kBAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,OAAO,eAAK,CAAC,aAAa,CACtB,KAAK;YACL,0BAA0B;YAC1B,0BAA0B,CAAC,EAAC,CAAC,mBAAmB,CAAC,EAAE,EAAE,EAAC,EAAE,KAAK,CAAC,EAC9D,IAAI,CACP,CAAC;QACN,CAAC;aAAM,IAAI,kBAAO,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,OAAO,eAAK,CAAC,YAAY,CACrB,IAAoB;YACpB,0BAA0B;YAC1B,0BAA0B,CAAC,EAAC,CAAC,mBAAmB,CAAC,EAAE,EAAE,EAAC,EAAE,KAAK,CAAC,CACjE,CAAC;QACN,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACpB,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC,CAAA;IAED,OAAO,8DACF,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CACvD,CAAA;AACP,CAAC,CAAC;AAlCW,QAAA,iBAAiB,qBAkC5B;AAEF,MAAM,0BAA0B,GAAG,CAC/B,UAAqC,EACrC,KAAgB,EACS,EAAE;IAC3B,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAC,GAAG,UAAU,EAAE,CAAC,yBAAyB,CAAC,EAAE,KAAK,EAAC,CAAC,CAAC,CAAC,UAAU,CAAC;AAClG,CAAC,CAAA"}
1
+ {"version":3,"file":"AutoTestAttribute.js","sourceRoot":"","sources":["../../src/component/AutoTestAttribute.tsx"],"names":[],"mappings":";;;;AAAA,0DAA0B;AAE1B,MAAM,mBAAmB,GAAG,eAAe,CAAC;AAC5C,MAAM,yBAAyB,GAAG,qBAAqB,CAAC;AAcxD;;;GAGG;AACI,MAAM,wBAAwB,GAAG,CACpC,EAAU,EACV,KAAqB,EACH,EAAE,CAAC,KAAK,KAAK,SAAS;IACxC,CAAC,CAAC,EAAC,CAAC,mBAAmB,CAAC,EAAE,EAAE,EAAC;IAC7B,CAAC,CAAC;QACE,CAAC,mBAAmB,CAAC,EAAE,EAAE;QACzB,CAAC,yBAAyB,CAAC,EAAE,KAAK;KACrC,CAAA;AARQ,QAAA,wBAAwB,4BAQhC;AAEL;;;;;GAKG;AACI,MAAM,iBAAiB,GAAG,CAAC,KAA6B,EAAE,EAAE;IAC/D,MAAM,EACF,EAAE,EACF,KAAK,EACL,QAAQ,GACX,GAAG,KAAK,CAAC;IAEV,MAAM,UAAU,GAAG,IAAA,gCAAwB,EAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAEvD,MAAM,iBAAiB,GAAG,CAAC,KAAsB,EAAmB,EAAE;QAClE,MAAM,IAAI,GAAG,eAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAExC,IAAI,CAAC,eAAK,CAAC,cAAc,CAA0B,IAAI,CAAC,EAAE,CAAC;YACvD,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,KAAK,eAAK,CAAC,QAAQ,EAAE,CAAC;YAC/B,OAAO,eAAK,CAAC,aAAa,CACtB,KAAK,EACL,UAAU,EACV,IAAI,CACP,CAAC;QACN,CAAC;QAED,OAAO,eAAK,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAChD,CAAC,CAAA;IAED,OAAO,8DACF,iBAAiB,CAAC,QAAQ,CAAC,CAC7B,CAAA;AACP,CAAC,CAAC;AA9BW,QAAA,iBAAiB,qBA8B5B"}
@@ -1,6 +1,9 @@
1
1
  import React, { ReactNode } from 'react';
2
2
  import { AutocompleteProps } from '@mui/material';
3
3
  import { PneDropdownChoice } from '../../common/paynet/dropdown';
4
+ export interface PneAsyncAutocompleteHtmlInputProps extends React.InputHTMLAttributes<HTMLInputElement> {
5
+ [attribute: `data-${string}`]: string | number | boolean | undefined;
6
+ }
4
7
  export interface PneAsyncAutocompleteProps<T extends PneDropdownChoice, Multiple extends boolean | undefined = undefined, DisableClearable extends boolean | undefined = undefined, FreeSolo extends boolean | undefined = undefined> extends Omit<AutocompleteProps<T, Multiple, DisableClearable, FreeSolo>, 'renderInput' | 'options'> {
5
8
  searchChoices: (request: {
6
9
  searchString?: string;
@@ -11,6 +14,8 @@ export interface PneAsyncAutocompleteProps<T extends PneDropdownChoice, Multiple
11
14
  placeholder?: string;
12
15
  required?: boolean;
13
16
  onSearchError?: (reason: any) => void;
17
+ /** Props merged onto the actual native text input. Autocomplete event handlers remain library-owned. */
18
+ htmlInputProps?: PneAsyncAutocompleteHtmlInputProps;
14
19
  }
15
20
  declare const PneAsyncAutocomplete: <T extends PneDropdownChoice, Multiple extends boolean | undefined = false, DisableClearable extends boolean | undefined = false, FreeSolo extends boolean | undefined = false>(props: PneAsyncAutocompleteProps<T, Multiple, DisableClearable, FreeSolo>) => React.JSX.Element;
16
21
  export default PneAsyncAutocomplete;
@@ -7,7 +7,7 @@ const dropdown_1 = require("../../common/paynet/dropdown");
7
7
  const index_1 = require("../../index");
8
8
  const PneFieldContext_1 = require("../PneFieldContext");
9
9
  const PneAsyncAutocomplete = (props) => {
10
- const { searchChoices, disabled, label, size = 'small', error, helperText, fullWidth, id: idProp, sx, placeholder, required, onSearchError, ...rest } = props;
10
+ const { searchChoices, disabled, label, size = 'small', error, helperText, fullWidth, id: idProp, sx, placeholder, required, onSearchError, htmlInputProps, ...rest } = props;
11
11
  const innerSx = [
12
12
  dropdown_1.dropDownSx,
13
13
  ...(Array.isArray(sx) ? sx : [sx])
@@ -15,7 +15,7 @@ const PneAsyncAutocomplete = (props) => {
15
15
  const [open, setOpen] = (0, react_1.useState)(false);
16
16
  const [options, setOptions] = (0, react_1.useState)([]);
17
17
  const [loading, setLoading] = (0, react_1.useState)(false);
18
- const [inputValue, setInputValue] = (0, react_1.useState)('');
18
+ const [searchString, setSearchString] = (0, react_1.useState)('');
19
19
  const generatedId = (0, react_1.useId)();
20
20
  const requestIdRef = (0, react_1.useRef)(0);
21
21
  const controlProps = (0, PneFieldContext_1.usePneFieldControlProps)({
@@ -37,7 +37,7 @@ const PneAsyncAutocomplete = (props) => {
37
37
  let active = true;
38
38
  setOptions([]);
39
39
  setLoading(true);
40
- searchChoices({ searchString: inputValue })
40
+ searchChoices({ searchString })
41
41
  .then((result) => {
42
42
  if (!active || requestIdRef.current !== requestId) {
43
43
  return;
@@ -62,8 +62,8 @@ const PneAsyncAutocomplete = (props) => {
62
62
  return () => {
63
63
  active = false;
64
64
  };
65
- }, [open, inputValue, onSearchError, searchChoices]);
66
- return react_1.default.createElement(material_1.Autocomplete, { disabled: controlProps.disabled, fullWidth: controlProps.fullWidth, id: id, open: open, onOpen: () => setOpen(true), onClose: () => setOpen(false), isOptionEqualToValue: dropdown_1.isOptionEqualToValue, getOptionLabel: dropdown_1.getOptionLabel, getOptionKey: dropdown_1.getOptionKey, options: options, loading: loading, filterOptions: (x) => x, inputValue: inputValue, onInputChange: (e, value) => setInputValue(value), renderInput: (params) => (react_1.default.createElement(index_1.PneTextField, { ...params, label: label, placeholder: placeholder, required: controlProps.required, slotProps: {
65
+ }, [onSearchError, open, searchChoices, searchString]);
66
+ return react_1.default.createElement(material_1.Autocomplete, { disabled: controlProps.disabled, fullWidth: controlProps.fullWidth, id: id, open: open, onOpen: () => setOpen(true), onClose: () => setOpen(false), isOptionEqualToValue: dropdown_1.isOptionEqualToValue, getOptionLabel: dropdown_1.getOptionLabel, getOptionKey: dropdown_1.getOptionKey, options: options, loading: loading, filterOptions: (x) => x, onInputChange: (e, value) => setSearchString(value), renderInput: (params) => (react_1.default.createElement(index_1.PneTextField, { ...params, label: label, placeholder: placeholder, required: controlProps.required, slotProps: {
67
67
  ...params.slotProps,
68
68
  input: {
69
69
  ...params.slotProps.input,
@@ -71,6 +71,11 @@ const PneAsyncAutocomplete = (props) => {
71
71
  loading ? react_1.default.createElement(material_1.CircularProgress, { color: "inherit", size: 20 }) : null,
72
72
  params.slotProps.input.endAdornment)),
73
73
  },
74
+ htmlInput: {
75
+ ...htmlInputProps,
76
+ ...params.slotProps.htmlInput,
77
+ 'aria-busy': loading,
78
+ },
74
79
  }, error: controlProps.error ?? false, helperText: helperText })), sx: innerSx, size: size, ...rest });
75
80
  };
76
81
  exports.default = PneAsyncAutocomplete;
@@ -1 +1 @@
1
- {"version":3,"file":"PneAsyncAutocomplete.js","sourceRoot":"","sources":["../../../src/component/dropdown/PneAsyncAutocomplete.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PneAsyncAutocomplete.js","sourceRoot":"","sources":["../../../src/component/dropdown/PneAsyncAutocomplete.tsx"],"names":[],"mappings":"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"}
@@ -2,13 +2,19 @@ import React, { ReactNode } from 'react';
2
2
  import { AutocompleteProps } from '@mui/material';
3
3
  import type { TextFieldProps } from '@mui/material/TextField';
4
4
  import { PneDropdownChoice } from '../../common/paynet/dropdown';
5
- export interface IProps<T extends PneDropdownChoice, Multiple extends boolean | undefined = undefined, DisableClearable extends boolean | undefined = undefined, FreeSolo extends boolean | undefined = undefined> extends Omit<AutocompleteProps<T, Multiple, DisableClearable, FreeSolo>, 'renderInput'> {
5
+ export interface PneAutocompleteHtmlInputProps extends React.InputHTMLAttributes<HTMLInputElement> {
6
+ [attribute: `data-${string}`]: string | number | boolean | undefined;
7
+ }
8
+ export interface PneAutocompleteProps<T extends PneDropdownChoice, Multiple extends boolean | undefined = undefined, DisableClearable extends boolean | undefined = undefined, FreeSolo extends boolean | undefined = undefined> extends Omit<AutocompleteProps<T, Multiple, DisableClearable, FreeSolo>, 'renderInput'> {
6
9
  label?: ReactNode;
7
10
  variant?: TextFieldProps['variant'];
8
11
  error?: boolean;
9
12
  helperText?: string;
10
13
  placeholder?: string;
11
14
  required?: boolean;
15
+ /** Props merged onto the actual native text input. Autocomplete event handlers remain library-owned. */
16
+ htmlInputProps?: PneAutocompleteHtmlInputProps;
12
17
  }
13
- declare const PneAutocomplete: <T extends PneDropdownChoice, Multiple extends boolean | undefined = false, DisableClearable extends boolean | undefined = false, FreeSolo extends boolean | undefined = false>(props: IProps<T, Multiple, DisableClearable, FreeSolo>) => React.JSX.Element;
18
+ export type IProps<T extends PneDropdownChoice, Multiple extends boolean | undefined = undefined, DisableClearable extends boolean | undefined = undefined, FreeSolo extends boolean | undefined = undefined> = PneAutocompleteProps<T, Multiple, DisableClearable, FreeSolo>;
19
+ declare const PneAutocomplete: <T extends PneDropdownChoice, Multiple extends boolean | undefined = false, DisableClearable extends boolean | undefined = false, FreeSolo extends boolean | undefined = false>(props: PneAutocompleteProps<T, Multiple, DisableClearable, FreeSolo>) => React.JSX.Element;
14
20
  export default PneAutocomplete;
@@ -7,7 +7,7 @@ const dropdown_1 = require("../../common/paynet/dropdown");
7
7
  const index_1 = require("../../index");
8
8
  const PneFieldContext_1 = require("../PneFieldContext");
9
9
  const PneAutocomplete = (props) => {
10
- const { disabled, label, variant, size = 'small', error, helperText, fullWidth, id, sx, placeholder, required, ...rest } = props;
10
+ const { disabled, label, variant, size = 'small', error, helperText, fullWidth, id, sx, placeholder, required, htmlInputProps, ...rest } = props;
11
11
  const innerSx = [
12
12
  dropdown_1.dropDownSx,
13
13
  ...(Array.isArray(sx) ? sx : [sx])
@@ -20,7 +20,13 @@ const PneAutocomplete = (props) => {
20
20
  required,
21
21
  });
22
22
  return react_1.default.createElement(material_1.Autocomplete, { disabled: controlProps.disabled, fullWidth: controlProps.fullWidth, id: controlProps.id, isOptionEqualToValue: dropdown_1.isOptionEqualToValue, getOptionLabel: dropdown_1.getOptionLabel, getOptionKey: dropdown_1.getOptionKey, renderInput: (params) => {
23
- return react_1.default.createElement(index_1.PneTextField, { ...params, placeholder: placeholder, label: label, variant: variant, error: controlProps.error ?? false, helperText: helperText, required: controlProps.required });
23
+ return react_1.default.createElement(index_1.PneTextField, { ...params, placeholder: placeholder, label: label, variant: variant, error: controlProps.error ?? false, helperText: helperText, required: controlProps.required, slotProps: {
24
+ ...params.slotProps,
25
+ htmlInput: {
26
+ ...htmlInputProps,
27
+ ...params.slotProps.htmlInput,
28
+ },
29
+ } });
24
30
  }, size: size, sx: innerSx, ...rest });
25
31
  };
26
32
  exports.default = PneAutocomplete;
@@ -1 +1 @@
1
- {"version":3,"file":"PneAutocomplete.js","sourceRoot":"","sources":["../../../src/component/dropdown/PneAutocomplete.tsx"],"names":[],"mappings":";;;AAAA,0DAAuC;AACvC,4CAAuE;AAEvE,2DAMsC;AACtC,uCAAyC;AACzC,wDAA2D;AAgB3D,MAAM,eAAe,GAAG,CAKtB,KAKD,EAAE,EAAE;IACD,MAAM,EACF,QAAQ,EACR,KAAK,EACL,OAAO,EACP,IAAI,GAAG,OAAO,EACd,KAAK,EACL,UAAU,EACV,SAAS,EACT,EAAE,EACF,EAAE,EACF,WAAW,EACX,QAAQ,EACR,GAAG,IAAI,EACV,GAAG,KAAK,CAAA;IAET,MAAM,OAAO,GAAY;QACrB,qBAAU;QACV,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;KACrC,CAAA;IACD,MAAM,YAAY,GAAG,IAAA,yCAAuB,EAAC;QACzC,QAAQ;QACR,KAAK;QACL,SAAS;QACT,EAAE;QACF,QAAQ;KACX,CAAC,CAAA;IAEF,OAAO,8BAAC,uBAAY,IAChB,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAC/B,SAAS,EAAE,YAAY,CAAC,SAAS,EACjC,EAAE,EAAE,YAAY,CAAC,EAAE,EACnB,oBAAoB,EAAE,+BAAoB,EAC1C,cAAc,EAAE,yBAAc,EAC9B,YAAY,EAAE,uBAAY,EAC1B,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE;YACpB,OAAO,8BAAC,oBAAY,OACZ,MAAM,EACV,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,YAAY,CAAC,KAAK,IAAI,KAAK,EAClC,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,YAAY,CAAC,QAAQ,GACjC,CAAA;QACN,CAAC,EACD,IAAI,EAAE,IAAI,EACV,EAAE,EAAE,OAAO,KACP,IAAI,GACV,CAAA;AACN,CAAC,CAAA;AAED,kBAAe,eAAe,CAAA"}
1
+ {"version":3,"file":"PneAutocomplete.js","sourceRoot":"","sources":["../../../src/component/dropdown/PneAutocomplete.tsx"],"names":[],"mappings":";;;AAAA,0DAAuC;AACvC,4CAAuE;AAEvE,2DAMsC;AACtC,uCAAyC;AACzC,wDAA2D;AA6B3D,MAAM,eAAe,GAAG,CAKtB,KAKD,EAAE,EAAE;IACD,MAAM,EACF,QAAQ,EACR,KAAK,EACL,OAAO,EACP,IAAI,GAAG,OAAO,EACd,KAAK,EACL,UAAU,EACV,SAAS,EACT,EAAE,EACF,EAAE,EACF,WAAW,EACX,QAAQ,EACR,cAAc,EACd,GAAG,IAAI,EACV,GAAG,KAAK,CAAA;IAET,MAAM,OAAO,GAAY;QACrB,qBAAU;QACV,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;KACrC,CAAA;IACD,MAAM,YAAY,GAAG,IAAA,yCAAuB,EAAC;QACzC,QAAQ;QACR,KAAK;QACL,SAAS;QACT,EAAE;QACF,QAAQ;KACX,CAAC,CAAA;IAEF,OAAO,8BAAC,uBAAY,IAChB,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAC/B,SAAS,EAAE,YAAY,CAAC,SAAS,EACjC,EAAE,EAAE,YAAY,CAAC,EAAE,EACnB,oBAAoB,EAAE,+BAAoB,EAC1C,cAAc,EAAE,yBAAc,EAC9B,YAAY,EAAE,uBAAY,EAC1B,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE;YACpB,OAAO,8BAAC,oBAAY,OACZ,MAAM,EACV,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,YAAY,CAAC,KAAK,IAAI,KAAK,EAClC,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAC/B,SAAS,EAAE;oBACP,GAAG,MAAM,CAAC,SAAS;oBACnB,SAAS,EAAE;wBACP,GAAG,cAAc;wBACjB,GAAG,MAAM,CAAC,SAAS,CAAC,SAAS;qBAChC;iBACJ,GACH,CAAA;QACN,CAAC,EACD,IAAI,EAAE,IAAI,EACV,EAAE,EAAE,OAAO,KACP,IAAI,GACV,CAAA;AACN,CAAC,CAAA;AAED,kBAAe,eAAe,CAAA"}
@@ -2,10 +2,14 @@ import React, { ReactNode } from 'react';
2
2
  import { SelectProps, SelectVariants } from '@mui/material';
3
3
  import { PneDropdownChoice } from '../../common/paynet/dropdown';
4
4
  import { SelectOption } from '../../common/pne/type';
5
+ export interface PneSelectOptionProps extends React.HTMLAttributes<HTMLLIElement> {
6
+ [attribute: `data-${string}`]: string | number | boolean | undefined;
7
+ }
5
8
  export interface IProps<T extends PneDropdownChoice> extends Omit<SelectProps<T>, 'children' | 'onChange' | 'placeholder' | 'variant'> {
6
9
  options: readonly T[];
7
10
  onChange: (option: T) => void;
8
11
  getOptionLabel?: (option: SelectOption) => ReactNode;
12
+ getOptionProps?: (option: SelectOption) => PneSelectOptionProps;
9
13
  placeholder?: ReactNode;
10
14
  variant?: SelectVariants;
11
15
  disableMenuItem?: (option: SelectOption) => boolean;
@@ -7,7 +7,7 @@ const type_1 = require("../../common/pne/type");
7
7
  const type_2 = require("../../common/paynet/type");
8
8
  const PneFieldContext_1 = require("../PneFieldContext");
9
9
  const PneSelect = (0, react_1.forwardRef)((props, ref) => {
10
- const { 'aria-describedby': ariaDescribedBy, options, onChange, size = 'small', getOptionLabel = createDefaultOptionLabel, variant = 'outlined', disableMenuItem, label, disabled, error, required, sx, displayEmpty, placeholder, renderValue, id, labelId: labelIdProp, ...rest } = props;
10
+ const { 'aria-describedby': ariaDescribedBy, options, onChange, size = 'small', getOptionLabel = createDefaultOptionLabel, getOptionProps, variant = 'outlined', disableMenuItem, label, disabled, error, required, sx, displayEmpty, placeholder, renderValue, id, labelId: labelIdProp, ...rest } = props;
11
11
  const generatedLabelId = (0, react_1.useId)();
12
12
  const hasLabel = label !== undefined && label !== null && label !== '';
13
13
  const mappedOptions = options.map(mapChoiceToSelectOption);
@@ -39,7 +39,10 @@ const PneSelect = (0, react_1.forwardRef)((props, ref) => {
39
39
  };
40
40
  return react_1.default.createElement(material_1.FormControl, { size: size, variant: variant, disabled: controlProps.disabled, error: controlProps.error, required: controlProps.required, sx: sx, fullWidth: true },
41
41
  hasLabel ? react_1.default.createElement(material_1.InputLabel, { id: internalLabelId }, label) : null,
42
- react_1.default.createElement(material_1.Select, { ref: ref, "aria-describedby": controlProps.ariaDescribedBy, displayEmpty: displayEmpty ?? shouldRenderPlaceholder, id: controlProps.id, labelId: resolvedLabelId, onChange: handleChange, size: size, variant: variant, label: hasLabel ? label : undefined, renderValue: renderValue ?? (shouldRenderPlaceholder ? renderSelectedValue : undefined), ...rest }, optionsPresent ? mappedOptions.map(option => react_1.default.createElement(material_1.MenuItem, { disabled: disableMenuItem ? disableMenuItem(option) : false, key: option.value, value: option.value }, getOptionLabel(option))) : null));
42
+ react_1.default.createElement(material_1.Select, { ref: ref, "aria-describedby": controlProps.ariaDescribedBy, displayEmpty: displayEmpty ?? shouldRenderPlaceholder, id: controlProps.id, labelId: resolvedLabelId, onChange: handleChange, size: size, variant: variant, label: hasLabel ? label : undefined, renderValue: renderValue ?? (shouldRenderPlaceholder ? renderSelectedValue : undefined), ...rest }, optionsPresent ? options.map(choice => {
43
+ const option = mapChoiceToSelectOption(choice);
44
+ return react_1.default.createElement(material_1.MenuItem, { ...getOptionProps?.(option), disabled: disableMenuItem ? disableMenuItem(option) : false, key: option.value, value: option.value }, getOptionLabel(option));
45
+ }) : null));
43
46
  });
44
47
  exports.default = PneSelect;
45
48
  const createDefaultOptionLabel = (option) => {
@@ -1 +1 @@
1
- {"version":3,"file":"PneSelect.js","sourceRoot":"","sources":["../../../src/component/dropdown/PneSelect.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PneSelect.js","sourceRoot":"","sources":["../../../src/component/dropdown/PneSelect.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import { TFunction } from 'react-i18next';
3
- import { AbstractEntitySelectorProp, IMappedUnmappedList } from './AbstractEntitySelector';
3
+ import { AbstractEntitySelectorProp, IAbstractEntityOptions, IMappedUnmappedList } from './AbstractEntitySelector';
4
+ import { PneModalCloseButtonProps, PneModalContainerProps } from "../PneModal";
4
5
  interface IProps<T extends AbstractEntitySelectorProp> {
5
6
  open: boolean;
6
7
  onClose: () => void;
@@ -15,6 +16,10 @@ interface IProps<T extends AbstractEntitySelectorProp> {
15
16
  optionRenderer?: TFunction;
16
17
  textRepresentation?: 'ID' | 'NAME' | undefined;
17
18
  textRepresentationValue?: string;
19
+ containerProps?: PneModalContainerProps;
20
+ closeButtonProps?: PneModalCloseButtonProps;
21
+ getItemAttributes?: IAbstractEntityOptions<T>['getItemAttributes'];
22
+ elementAttributes?: IAbstractEntityOptions<T>['elementAttributes'];
18
23
  }
19
24
  export declare const AbstractEntitySelectModal: <T extends AbstractEntitySelectorProp>(props: IProps<T>) => React.JSX.Element;
20
25
  export {};
@@ -9,7 +9,7 @@ const PneButton_1 = tslib_1.__importDefault(require("../PneButton"));
9
9
  const PneModal_1 = tslib_1.__importDefault(require("../PneModal"));
10
10
  const PneModalActions_1 = tslib_1.__importDefault(require("../PneModalActions"));
11
11
  const AbstractEntitySelectModal = (props) => {
12
- const { open, onClose, mappedList, unMappedList, handleSave, title, subTitle, loading = false, disableMoving, allowNewlyAddedRemoval, optionRenderer, textRepresentation, textRepresentationValue } = props;
12
+ const { open, onClose, mappedList, unMappedList, handleSave, title, subTitle, loading = false, disableMoving, allowNewlyAddedRemoval, optionRenderer, textRepresentation, textRepresentationValue, containerProps, closeButtonProps, getItemAttributes, elementAttributes, } = props;
13
13
  const { t } = (0, react_i18next_1.useTranslation)();
14
14
  const autoHeight = () => {
15
15
  if (mappedList?.length > unMappedList?.length) {
@@ -43,11 +43,13 @@ const AbstractEntitySelectModal = (props) => {
43
43
  textRepresentation,
44
44
  textRepresentationValue,
45
45
  onChange: handleChange,
46
+ getItemAttributes,
47
+ elementAttributes,
46
48
  };
47
49
  return (react_1.default.createElement(PneModal_1.default, { actions: react_1.default.createElement(PneModalActions_1.default, { secondary: react_1.default.createElement(PneButton_1.default, { variant: 'outlined', onClick: onClose }, t('cancel')), primary: react_1.default.createElement(PneButton_1.default, { variant: 'contained', onClick: () => handleSave({
48
50
  mapped: localMappedList,
49
51
  unmapped: localUnMappedList
50
- }) }, t('save')) }), open: open, onClose: onClose, title: title, subtitle: subTitle, containerSx: {
52
+ }) }, t('save')) }), open: open, onClose: onClose, title: title, subtitle: subTitle, containerProps: containerProps, closeButtonProps: closeButtonProps, containerSx: {
51
53
  width: {
52
54
  xs: 'clamp(360px, calc(100vw - 32px), 600px)',
53
55
  sm: '600px'
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractEntitySelectModal.js","sourceRoot":"","sources":["../../../src/component/non-abstract-entity-selector/AbstractEntitySelectModal.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AbstractEntitySelectModal.js","sourceRoot":"","sources":["../../../src/component/non-abstract-entity-selector/AbstractEntitySelectModal.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,21 @@
1
1
  import React from 'react';
2
2
  import { TFunction } from 'react-i18next';
3
+ import { ItemEntitySelectorAttributes } from './ItemEntitySelector';
3
4
  import { AbstractEntity, Country, IMappedAbstractEntity } from '../../common';
5
+ export type AbstractEntitySelectorItemAttributes = ItemEntitySelectorAttributes;
6
+ export type AbstractEntitySelectorElementAttributes = React.AriaAttributes & {
7
+ id?: string;
8
+ role?: React.AriaRole;
9
+ [key: `data-${string}`]: unknown;
10
+ };
11
+ export type AbstractEntitySelectorElements = {
12
+ searchInput?: AbstractEntitySelectorElementAttributes;
13
+ searchClearButton?: AbstractEntitySelectorElementAttributes;
14
+ availableColumn?: AbstractEntitySelectorElementAttributes;
15
+ addAllButton?: AbstractEntitySelectorElementAttributes;
16
+ addedColumn?: AbstractEntitySelectorElementAttributes;
17
+ removeAllButton?: AbstractEntitySelectorElementAttributes;
18
+ };
4
19
  export type ProcessorPaymentApparatus = {
5
20
  id: number;
6
21
  name: string;
@@ -19,7 +34,10 @@ export interface IAbstractEntityOptions<T> {
19
34
  textRepresentationValue?: string;
20
35
  onChange: (mappedList: T[], unMappedList: T[]) => void;
21
36
  actionBlock?: React.ReactNode;
37
+ getItemAttributes?: (item: AbstractEntity, list: AbstractEntitySelectorList) => AbstractEntitySelectorItemAttributes;
38
+ elementAttributes?: AbstractEntitySelectorElements;
22
39
  }
40
+ export type AbstractEntitySelectorList = 'AVAILABLE' | 'ADDED';
23
41
  export type AbstractEntitySelectorProp = string | IMappedAbstractEntity | AbstractEntity | Country | ProcessorPaymentApparatus;
24
42
  export interface IMappedUnmappedList<T extends AbstractEntitySelectorProp> {
25
43
  mapped: T[];