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.
- package/README.md +159 -0
- package/cjs/component/AutoTestAttribute.d.ts +22 -5
- package/cjs/component/AutoTestAttribute.js +27 -23
- package/cjs/component/AutoTestAttribute.js.map +1 -1
- package/cjs/component/dropdown/PneAsyncAutocomplete.d.ts +5 -0
- package/cjs/component/dropdown/PneAsyncAutocomplete.js +10 -5
- package/cjs/component/dropdown/PneAsyncAutocomplete.js.map +1 -1
- package/cjs/component/dropdown/PneAutocomplete.d.ts +8 -2
- package/cjs/component/dropdown/PneAutocomplete.js +8 -2
- package/cjs/component/dropdown/PneAutocomplete.js.map +1 -1
- package/cjs/component/dropdown/PneSelect.d.ts +4 -0
- package/cjs/component/dropdown/PneSelect.js +5 -2
- package/cjs/component/dropdown/PneSelect.js.map +1 -1
- package/cjs/component/non-abstract-entity-selector/AbstractEntitySelectModal.d.ts +6 -1
- package/cjs/component/non-abstract-entity-selector/AbstractEntitySelectModal.js +4 -2
- package/cjs/component/non-abstract-entity-selector/AbstractEntitySelectModal.js.map +1 -1
- package/cjs/component/non-abstract-entity-selector/AbstractEntitySelector.d.ts +18 -0
- package/cjs/component/non-abstract-entity-selector/AbstractEntitySelector.js +11 -10
- package/cjs/component/non-abstract-entity-selector/AbstractEntitySelector.js.map +1 -1
- package/cjs/component/non-abstract-entity-selector/ItemEntitySelector.d.ts +5 -1
- package/cjs/component/non-abstract-entity-selector/ItemEntitySelector.js +3 -3
- package/cjs/component/non-abstract-entity-selector/ItemEntitySelector.js.map +1 -1
- package/cjs/component/non-abstract-entity-selector/styled.d.ts +6 -2
- package/cjs/component/non-abstract-entity-selector/styled.js.map +1 -1
- package/cjs/component/search-ui/SearchUI.d.ts +7 -3
- package/cjs/component/search-ui/SearchUI.js +3 -3
- package/cjs/component/search-ui/SearchUI.js.map +1 -1
- package/cjs/component/search-ui/filters/AutoTestScope.d.ts +20 -0
- package/cjs/component/search-ui/filters/AutoTestScope.js +31 -0
- package/cjs/component/search-ui/filters/AutoTestScope.js.map +1 -0
- package/cjs/component/search-ui/filters/CriterionContainer.js +10 -6
- package/cjs/component/search-ui/filters/CriterionContainer.js.map +1 -1
- package/cjs/component/search-ui/filters/SearchUIFilters.d.ts +8 -4
- package/cjs/component/search-ui/filters/SearchUIFilters.js +30 -22
- package/cjs/component/search-ui/filters/SearchUIFilters.js.map +1 -1
- package/cjs/component/search-ui/filters/component/button/SearchUIFiltersCriterionHeaderClearButton.d.ts +1 -0
- package/cjs/component/search-ui/filters/component/button/SearchUIFiltersCriterionHeaderClearButton.js +5 -3
- package/cjs/component/search-ui/filters/component/button/SearchUIFiltersCriterionHeaderClearButton.js.map +1 -1
- package/cjs/component/search-ui/filters/component/button/SearchUIFiltersCriterionHeaderRemoveButton.d.ts +1 -0
- package/cjs/component/search-ui/filters/component/button/SearchUIFiltersCriterionHeaderRemoveButton.js +5 -3
- package/cjs/component/search-ui/filters/component/button/SearchUIFiltersCriterionHeaderRemoveButton.js.map +1 -1
- package/cjs/component/search-ui/filters/component/criterion/CriterionRight.js +7 -2
- package/cjs/component/search-ui/filters/component/criterion/CriterionRight.js.map +1 -1
- package/cjs/component/search-ui/filters/component/criterion/CustomerLevelCriterion.js +21 -4
- package/cjs/component/search-ui/filters/component/criterion/CustomerLevelCriterion.js.map +1 -1
- package/cjs/component/search-ui/filters/component/criterion/DateRangeCriterion.js +126 -6
- package/cjs/component/search-ui/filters/component/criterion/DateRangeCriterion.js.map +1 -1
- package/cjs/component/search-ui/filters/component/criterion/ErrorCodeCriterion.js +29 -1
- package/cjs/component/search-ui/filters/component/criterion/ErrorCodeCriterion.js.map +1 -1
- package/cjs/component/search-ui/filters/component/criterion/ExactSearchCriterion.js +7 -0
- package/cjs/component/search-ui/filters/component/criterion/ExactSearchCriterion.js.map +1 -1
- package/cjs/component/search-ui/filters/component/criterion/GroupingCriterion.js +77 -4
- package/cjs/component/search-ui/filters/component/criterion/GroupingCriterion.js.map +1 -1
- package/cjs/component/search-ui/filters/component/criterion/MarkerStatusCriterion.js +3 -9
- package/cjs/component/search-ui/filters/component/criterion/MarkerStatusCriterion.js.map +1 -1
- package/cjs/component/search-ui/filters/component/criterion/MultigetCriterionPanel.js +35 -6
- package/cjs/component/search-ui/filters/component/criterion/MultigetCriterionPanel.js.map +1 -1
- package/cjs/component/search-ui/filters/component/criterion/ProcessorLogEntryTypesCriterion.js +12 -2
- package/cjs/component/search-ui/filters/component/criterion/ProcessorLogEntryTypesCriterion.js.map +1 -1
- package/cjs/component/search-ui/filters/component/criterion/ProjectCurrencyCriterion.js +57 -16
- package/cjs/component/search-ui/filters/component/criterion/ProjectCurrencyCriterion.js.map +1 -1
- package/cjs/component/search-ui/filters/component/criterion/StatusCriterion.js +3 -9
- package/cjs/component/search-ui/filters/component/criterion/StatusCriterion.js.map +1 -1
- package/cjs/component/search-ui/filters/component/criterion/ThreeDCriterion.js +8 -14
- package/cjs/component/search-ui/filters/component/criterion/ThreeDCriterion.js.map +1 -1
- package/cjs/component/search-ui/filters/component/criterion/TransactionSessionStatusCriterion.js +55 -6
- package/cjs/component/search-ui/filters/component/criterion/TransactionSessionStatusCriterion.js.map +1 -1
- package/cjs/component/search-ui/filters/component/criterion/orders-search/OrdersSearchCountrySelect.js +48 -12
- package/cjs/component/search-ui/filters/component/criterion/orders-search/OrdersSearchCountrySelect.js.map +1 -1
- package/cjs/component/search-ui/filters/component/criterion/orders-search/OrdersSearchInput.js +11 -0
- package/cjs/component/search-ui/filters/component/criterion/orders-search/OrdersSearchInput.js.map +1 -1
- package/cjs/component/search-ui/filters/component/select/SearchUIAbstractEntityChipSelect.d.ts +7 -0
- package/cjs/component/search-ui/filters/component/select/SearchUIAbstractEntityChipSelect.js +26 -3
- package/cjs/component/search-ui/filters/component/select/SearchUIAbstractEntityChipSelect.js.map +1 -1
- package/cjs/component/search-ui/filters/component/select/SearchUIAbstractEntitySelect.js +58 -47
- package/cjs/component/search-ui/filters/component/select/SearchUIAbstractEntitySelect.js.map +1 -1
- package/cjs/component/search-ui/filters/component/select/SearchUIAddFilter.js +15 -2
- package/cjs/component/search-ui/filters/component/select/SearchUIAddFilter.js.map +1 -1
- package/cjs/component/search-ui/filters/component/select/SearchUICollapsableGroupSelect.d.ts +13 -1
- package/cjs/component/search-ui/filters/component/select/SearchUICollapsableGroupSelect.js +153 -60
- package/cjs/component/search-ui/filters/component/select/SearchUICollapsableGroupSelect.js.map +1 -1
- package/cjs/component/search-ui/filters/component/select/SearchUICountriesSelect.js +56 -31
- package/cjs/component/search-ui/filters/component/select/SearchUICountriesSelect.js.map +1 -1
- package/cjs/component/search-ui/filters/component/select/SearchUIDateRangeSpecTypeSelect.js +19 -2
- package/cjs/component/search-ui/filters/component/select/SearchUIDateRangeSpecTypeSelect.js.map +1 -1
- package/cjs/component/search-ui/filters/component/select/SearchUIEnumChipSelect.d.ts +10 -0
- package/cjs/component/search-ui/filters/component/select/SearchUIEnumChipSelect.js +21 -0
- package/cjs/component/search-ui/filters/component/select/SearchUIEnumChipSelect.js.map +1 -0
- package/cjs/component/search-ui/filters/component/select/SearchUIExactSearchLabelSelect.js +17 -2
- package/cjs/component/search-ui/filters/component/select/SearchUIExactSearchLabelSelect.js.map +1 -1
- package/cjs/component/search-ui/filters/component/select/SearchUIGroupingDateTypeSelect.js +19 -2
- package/cjs/component/search-ui/filters/component/select/SearchUIGroupingDateTypeSelect.js.map +1 -1
- package/cjs/component/search-ui/filters/component/select/SearchUIOrderDateTypeSelect.js +19 -2
- package/cjs/component/search-ui/filters/component/select/SearchUIOrderDateTypeSelect.js.map +1 -1
- package/cjs/component/search-ui/filters/component/select/SearchUIOrdersSearchLabelSelect.js +29 -4
- package/cjs/component/search-ui/filters/component/select/SearchUIOrdersSearchLabelSelect.js.map +1 -1
- package/cjs/component/search-ui/filters/component/template/SearchUITemplatePanel.js +19 -3
- package/cjs/component/search-ui/filters/component/template/SearchUITemplatePanel.js.map +1 -1
- package/cjs/component/search-ui/filters/component/template/SearchUITemplatesMenu.js +29 -5
- package/cjs/component/search-ui/filters/component/template/SearchUITemplatesMenu.js.map +1 -1
- package/cjs/component/search-ui/filters/state/actions.js +0 -1
- package/cjs/component/search-ui/filters/state/actions.js.map +1 -1
- package/cjs/component/search-ui/filters/styled.d.ts +1 -1
- package/cjs/component/search-ui/filters/styled.js +9 -3
- package/cjs/component/search-ui/filters/styled.js.map +1 -1
- package/cjs/component/search-ui/multiget_select/MultigetSelect.js +20 -7
- package/cjs/component/search-ui/multiget_select/MultigetSelect.js.map +1 -1
- package/cjs/component/search-ui/multiget_select/MultigetSelectTable.js +30 -6
- package/cjs/component/search-ui/multiget_select/MultigetSelectTable.js.map +1 -1
- package/cjs/component/table/AbstractTable.d.ts +7 -0
- package/cjs/component/table/AbstractTable.js +10 -8
- package/cjs/component/table/AbstractTable.js.map +1 -1
- package/cjs/component/table/PneHeaderTableCell.d.ts +6 -1
- package/cjs/component/table/PneHeaderTableCell.js +5 -2
- package/cjs/component/table/PneHeaderTableCell.js.map +1 -1
- package/cjs/component/table/PneTablePaginationActions.js +4 -13
- package/cjs/component/table/PneTablePaginationActions.js.map +1 -1
- package/cjs/component/table/useTable.js +7 -8
- package/cjs/component/table/useTable.js.map +1 -1
- package/cjs/exports/entities.d.ts +1 -1
- package/cjs/exports/entities.js.map +1 -1
- package/cjs/exports/inputs.d.ts +2 -1
- package/cjs/exports/inputs.js.map +1 -1
- package/cjs/exports/search.d.ts +2 -2
- package/cjs/exports/search.js.map +1 -1
- package/cjs/exports/table.d.ts +1 -0
- package/cjs/exports/table.js.map +1 -1
- package/cjs/exports/utils.d.ts +1 -1
- package/cjs/exports/utils.js +2 -1
- package/cjs/exports/utils.js.map +1 -1
- package/docs/i18n.md +66 -0
- package/docs/selenium-locators.md +640 -0
- package/esm/component/AutoTestAttribute.d.ts +22 -5
- package/esm/component/AutoTestAttribute.js +25 -22
- package/esm/component/AutoTestAttribute.js.map +1 -1
- package/esm/component/dropdown/PneAsyncAutocomplete.d.ts +5 -0
- package/esm/component/dropdown/PneAsyncAutocomplete.js +10 -5
- package/esm/component/dropdown/PneAsyncAutocomplete.js.map +1 -1
- package/esm/component/dropdown/PneAutocomplete.d.ts +8 -2
- package/esm/component/dropdown/PneAutocomplete.js +8 -2
- package/esm/component/dropdown/PneAutocomplete.js.map +1 -1
- package/esm/component/dropdown/PneSelect.d.ts +4 -0
- package/esm/component/dropdown/PneSelect.js +5 -2
- package/esm/component/dropdown/PneSelect.js.map +1 -1
- package/esm/component/non-abstract-entity-selector/AbstractEntitySelectModal.d.ts +6 -1
- package/esm/component/non-abstract-entity-selector/AbstractEntitySelectModal.js +4 -2
- package/esm/component/non-abstract-entity-selector/AbstractEntitySelectModal.js.map +1 -1
- package/esm/component/non-abstract-entity-selector/AbstractEntitySelector.d.ts +18 -0
- package/esm/component/non-abstract-entity-selector/AbstractEntitySelector.js +11 -10
- package/esm/component/non-abstract-entity-selector/AbstractEntitySelector.js.map +1 -1
- package/esm/component/non-abstract-entity-selector/ItemEntitySelector.d.ts +5 -1
- package/esm/component/non-abstract-entity-selector/ItemEntitySelector.js +4 -4
- package/esm/component/non-abstract-entity-selector/ItemEntitySelector.js.map +1 -1
- package/esm/component/non-abstract-entity-selector/styled.d.ts +6 -2
- package/esm/component/non-abstract-entity-selector/styled.js.map +1 -1
- package/esm/component/search-ui/SearchUI.d.ts +7 -3
- package/esm/component/search-ui/SearchUI.js +3 -3
- package/esm/component/search-ui/SearchUI.js.map +1 -1
- package/esm/component/search-ui/filters/AutoTestScope.d.ts +20 -0
- package/esm/component/search-ui/filters/AutoTestScope.js +23 -0
- package/esm/component/search-ui/filters/AutoTestScope.js.map +1 -0
- package/esm/component/search-ui/filters/CriterionContainer.js +10 -6
- package/esm/component/search-ui/filters/CriterionContainer.js.map +1 -1
- package/esm/component/search-ui/filters/SearchUIFilters.d.ts +8 -4
- package/esm/component/search-ui/filters/SearchUIFilters.js +31 -23
- package/esm/component/search-ui/filters/SearchUIFilters.js.map +1 -1
- package/esm/component/search-ui/filters/component/button/SearchUIFiltersCriterionHeaderClearButton.d.ts +1 -0
- package/esm/component/search-ui/filters/component/button/SearchUIFiltersCriterionHeaderClearButton.js +5 -3
- package/esm/component/search-ui/filters/component/button/SearchUIFiltersCriterionHeaderClearButton.js.map +1 -1
- package/esm/component/search-ui/filters/component/button/SearchUIFiltersCriterionHeaderRemoveButton.d.ts +1 -0
- package/esm/component/search-ui/filters/component/button/SearchUIFiltersCriterionHeaderRemoveButton.js +5 -3
- package/esm/component/search-ui/filters/component/button/SearchUIFiltersCriterionHeaderRemoveButton.js.map +1 -1
- package/esm/component/search-ui/filters/component/criterion/CriterionRight.js +7 -2
- package/esm/component/search-ui/filters/component/criterion/CriterionRight.js.map +1 -1
- package/esm/component/search-ui/filters/component/criterion/CustomerLevelCriterion.js +21 -4
- package/esm/component/search-ui/filters/component/criterion/CustomerLevelCriterion.js.map +1 -1
- package/esm/component/search-ui/filters/component/criterion/DateRangeCriterion.js +126 -6
- package/esm/component/search-ui/filters/component/criterion/DateRangeCriterion.js.map +1 -1
- package/esm/component/search-ui/filters/component/criterion/ErrorCodeCriterion.js +29 -1
- package/esm/component/search-ui/filters/component/criterion/ErrorCodeCriterion.js.map +1 -1
- package/esm/component/search-ui/filters/component/criterion/ExactSearchCriterion.js +7 -0
- package/esm/component/search-ui/filters/component/criterion/ExactSearchCriterion.js.map +1 -1
- package/esm/component/search-ui/filters/component/criterion/GroupingCriterion.js +77 -4
- package/esm/component/search-ui/filters/component/criterion/GroupingCriterion.js.map +1 -1
- package/esm/component/search-ui/filters/component/criterion/MarkerStatusCriterion.js +3 -9
- package/esm/component/search-ui/filters/component/criterion/MarkerStatusCriterion.js.map +1 -1
- package/esm/component/search-ui/filters/component/criterion/MultigetCriterionPanel.js +35 -6
- package/esm/component/search-ui/filters/component/criterion/MultigetCriterionPanel.js.map +1 -1
- package/esm/component/search-ui/filters/component/criterion/ProcessorLogEntryTypesCriterion.js +12 -2
- package/esm/component/search-ui/filters/component/criterion/ProcessorLogEntryTypesCriterion.js.map +1 -1
- package/esm/component/search-ui/filters/component/criterion/ProjectCurrencyCriterion.js +57 -16
- package/esm/component/search-ui/filters/component/criterion/ProjectCurrencyCriterion.js.map +1 -1
- package/esm/component/search-ui/filters/component/criterion/StatusCriterion.js +3 -9
- package/esm/component/search-ui/filters/component/criterion/StatusCriterion.js.map +1 -1
- package/esm/component/search-ui/filters/component/criterion/ThreeDCriterion.js +8 -14
- package/esm/component/search-ui/filters/component/criterion/ThreeDCriterion.js.map +1 -1
- package/esm/component/search-ui/filters/component/criterion/TransactionSessionStatusCriterion.js +55 -6
- package/esm/component/search-ui/filters/component/criterion/TransactionSessionStatusCriterion.js.map +1 -1
- package/esm/component/search-ui/filters/component/criterion/orders-search/OrdersSearchCountrySelect.js +48 -12
- package/esm/component/search-ui/filters/component/criterion/orders-search/OrdersSearchCountrySelect.js.map +1 -1
- package/esm/component/search-ui/filters/component/criterion/orders-search/OrdersSearchInput.js +11 -0
- package/esm/component/search-ui/filters/component/criterion/orders-search/OrdersSearchInput.js.map +1 -1
- package/esm/component/search-ui/filters/component/select/SearchUIAbstractEntityChipSelect.d.ts +7 -0
- package/esm/component/search-ui/filters/component/select/SearchUIAbstractEntityChipSelect.js +26 -3
- package/esm/component/search-ui/filters/component/select/SearchUIAbstractEntityChipSelect.js.map +1 -1
- package/esm/component/search-ui/filters/component/select/SearchUIAbstractEntitySelect.js +60 -49
- package/esm/component/search-ui/filters/component/select/SearchUIAbstractEntitySelect.js.map +1 -1
- package/esm/component/search-ui/filters/component/select/SearchUIAddFilter.js +15 -2
- package/esm/component/search-ui/filters/component/select/SearchUIAddFilter.js.map +1 -1
- package/esm/component/search-ui/filters/component/select/SearchUICollapsableGroupSelect.d.ts +13 -1
- package/esm/component/search-ui/filters/component/select/SearchUICollapsableGroupSelect.js +154 -61
- package/esm/component/search-ui/filters/component/select/SearchUICollapsableGroupSelect.js.map +1 -1
- package/esm/component/search-ui/filters/component/select/SearchUICountriesSelect.js +57 -32
- package/esm/component/search-ui/filters/component/select/SearchUICountriesSelect.js.map +1 -1
- package/esm/component/search-ui/filters/component/select/SearchUIDateRangeSpecTypeSelect.js +19 -2
- package/esm/component/search-ui/filters/component/select/SearchUIDateRangeSpecTypeSelect.js.map +1 -1
- package/esm/component/search-ui/filters/component/select/SearchUIEnumChipSelect.d.ts +10 -0
- package/esm/component/search-ui/filters/component/select/SearchUIEnumChipSelect.js +16 -0
- package/esm/component/search-ui/filters/component/select/SearchUIEnumChipSelect.js.map +1 -0
- package/esm/component/search-ui/filters/component/select/SearchUIExactSearchLabelSelect.js +17 -2
- package/esm/component/search-ui/filters/component/select/SearchUIExactSearchLabelSelect.js.map +1 -1
- package/esm/component/search-ui/filters/component/select/SearchUIGroupingDateTypeSelect.js +19 -2
- package/esm/component/search-ui/filters/component/select/SearchUIGroupingDateTypeSelect.js.map +1 -1
- package/esm/component/search-ui/filters/component/select/SearchUIOrderDateTypeSelect.js +19 -2
- package/esm/component/search-ui/filters/component/select/SearchUIOrderDateTypeSelect.js.map +1 -1
- package/esm/component/search-ui/filters/component/select/SearchUIOrdersSearchLabelSelect.js +30 -5
- package/esm/component/search-ui/filters/component/select/SearchUIOrdersSearchLabelSelect.js.map +1 -1
- package/esm/component/search-ui/filters/component/template/SearchUITemplatePanel.js +19 -3
- package/esm/component/search-ui/filters/component/template/SearchUITemplatePanel.js.map +1 -1
- package/esm/component/search-ui/filters/component/template/SearchUITemplatesMenu.js +30 -6
- package/esm/component/search-ui/filters/component/template/SearchUITemplatesMenu.js.map +1 -1
- package/esm/component/search-ui/filters/state/actions.js +0 -1
- package/esm/component/search-ui/filters/state/actions.js.map +1 -1
- package/esm/component/search-ui/filters/styled.d.ts +1 -1
- package/esm/component/search-ui/filters/styled.js +9 -3
- package/esm/component/search-ui/filters/styled.js.map +1 -1
- package/esm/component/search-ui/multiget_select/MultigetSelect.js +20 -7
- package/esm/component/search-ui/multiget_select/MultigetSelect.js.map +1 -1
- package/esm/component/search-ui/multiget_select/MultigetSelectTable.js +30 -6
- package/esm/component/search-ui/multiget_select/MultigetSelectTable.js.map +1 -1
- package/esm/component/table/AbstractTable.d.ts +7 -0
- package/esm/component/table/AbstractTable.js +10 -8
- package/esm/component/table/AbstractTable.js.map +1 -1
- package/esm/component/table/PneHeaderTableCell.d.ts +6 -1
- package/esm/component/table/PneHeaderTableCell.js +5 -2
- package/esm/component/table/PneHeaderTableCell.js.map +1 -1
- package/esm/component/table/PneTablePaginationActions.js +4 -13
- package/esm/component/table/PneTablePaginationActions.js.map +1 -1
- package/esm/component/table/useTable.js +7 -8
- package/esm/component/table/useTable.js.map +1 -1
- package/esm/exports/entities.d.ts +1 -1
- package/esm/exports/entities.js.map +1 -1
- package/esm/exports/inputs.d.ts +2 -1
- package/esm/exports/inputs.js.map +1 -1
- package/esm/exports/search.d.ts +2 -2
- package/esm/exports/search.js.map +1 -1
- package/esm/exports/table.d.ts +1 -0
- package/esm/exports/table.js.map +1 -1
- package/esm/exports/utils.d.ts +1 -1
- package/esm/exports/utils.js +1 -1
- package/esm/exports/utils.js.map +1 -1
- package/package.json +22 -4
- package/cjs/component/table/state/actions.d.ts +0 -3
- package/cjs/component/table/state/actions.js +0 -12
- package/cjs/component/table/state/actions.js.map +0 -1
- package/cjs/component/table/state/initial.d.ts +0 -2
- package/cjs/component/table/state/initial.js +0 -8
- package/cjs/component/table/state/initial.js.map +0 -1
- package/cjs/component/table/state/store.d.ts +0 -11
- package/cjs/component/table/state/store.js +0 -12
- package/cjs/component/table/state/store.js.map +0 -1
- package/cjs/component/table/state/type.d.ts +0 -7
- package/cjs/component/table/state/type.js +0 -3
- package/cjs/component/table/state/type.js.map +0 -1
- package/esm/component/table/state/actions.d.ts +0 -3
- package/esm/component/table/state/actions.js +0 -8
- package/esm/component/table/state/actions.js.map +0 -1
- package/esm/component/table/state/initial.d.ts +0 -2
- package/esm/component/table/state/initial.js +0 -4
- package/esm/component/table/state/initial.js.map +0 -1
- package/esm/component/table/state/store.d.ts +0 -11
- package/esm/component/table/state/store.js +0 -9
- package/esm/component/table/state/store.js.map +0 -1
- package/esm/component/table/state/type.d.ts +0 -7
- package/esm/component/table/state/type.js +0 -2
- 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
|
-
|
|
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?:
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
|
|
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
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
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
|
|
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 (
|
|
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,
|
|
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,
|
|
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 [
|
|
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
|
|
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
|
-
}, [
|
|
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,
|
|
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":";;;AAAA,uDAA2E;AAC3E,4CAAyF;AACzF,2DAMsC;AACtC,uCAAyC;AACzC,wDAA2D;
|
|
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
|
|
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
|
-
|
|
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;
|
|
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 ?
|
|
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":";;;AAAA,uDAAyD;AACzD,4CAA4H;AAE5H,gDAAyF;AACzF,mDAAgF;AAChF,wDAA0D;
|
|
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":";;;;AAAA,uDAAsC;AACtC,iDAAwD;AACxD,qEAKkC;AAClC,qEAAqC;AACrC,
|
|
1
|
+
{"version":3,"file":"AbstractEntitySelectModal.js","sourceRoot":"","sources":["../../../src/component/non-abstract-entity-selector/AbstractEntitySelectModal.tsx"],"names":[],"mappings":";;;;AAAA,uDAAsC;AACtC,iDAAwD;AACxD,qEAKkC;AAClC,qEAAqC;AACrC,mEAGqB;AACrB,iFAAiD;AAsB1C,MAAM,yBAAyB,GAAG,CAAuC,KAAgB,EAAE,EAAE;IAChG,MAAM,EACF,IAAI,EACJ,OAAO,EACP,UAAU,EACV,YAAY,EACZ,UAAU,EACV,KAAK,EACL,QAAQ,EACR,OAAO,GAAG,KAAK,EACf,aAAa,EACb,sBAAsB,EACtB,cAAc,EACd,kBAAkB,EAClB,uBAAuB,EACvB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,GACpB,GAAG,KAAK,CAAC;IAEV,MAAM,EAAC,CAAC,EAAC,GAAG,IAAA,8BAAc,GAAE,CAAC;IAE7B,MAAM,UAAU,GAAG,GAAG,EAAE;QACpB,IAAI,UAAU,EAAE,MAAM,GAAG,YAAY,EAAE,MAAM,EAAE,CAAC;YAC5C,OAAO,UAAU,CAAC,MAAM,IAAI,EAAE;gBAC1B,CAAC,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC;oBACpB,CAAC,CAAC,SAAS,UAAU,EAAE,MAAM,GAAG,CAAC,kBAAkB;oBACnD,CAAC,CAAC,SAAS,UAAU,EAAE,MAAM,kBAAkB;gBACnD,CAAC,CAAC,2BAA2B,CAAA;QACrC,CAAC;aAAM,CAAC;YACJ,OAAO,YAAY,EAAE,MAAM,IAAI,EAAE;gBAC7B,CAAC,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC;oBACvB,CAAC,CAAC,SAAS,YAAY,EAAE,MAAM,GAAG,CAAC,kBAAkB;oBACrD,CAAC,CAAC,SAAS,YAAY,EAAE,MAAM,kBAAkB;gBACrD,CAAC,CAAC,oBAAoB,CAAA;QAC9B,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,IAAA,gBAAQ,EAAM,YAAY,CAAC,CAAC;IAC9E,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,IAAA,gBAAQ,EAAM,UAAU,CAAC,CAAC;IAExE,MAAM,YAAY,GAAG,CAAC,UAAe,EAAE,YAAiB,EAAE,EAAE;QACxD,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAC/B,oBAAoB,CAAC,YAAY,CAAC,CAAC;IACvC,CAAC,CAAC;IAEF,MAAM,qBAAqB,GAA8B;QACrD,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,UAAU;QACpB,MAAM,EAAE,UAAU,EAAE;QACpB,aAAa;QACb,sBAAsB;QACtB,cAAc;QACd,kBAAkB;QAClB,uBAAuB;QACvB,QAAQ,EAAE,YAAY;QACtB,iBAAiB;QACjB,iBAAiB;KACpB,CAAC;IAEF,OAAO,CACH,8BAAC,kBAAQ,IACL,OAAO,EAAE,8BAAC,yBAAe,IACrB,SAAS,EAAE,8BAAC,mBAAS,IAAC,OAAO,EAAC,UAAU,EAAC,OAAO,EAAE,OAAO,IACpD,CAAC,CAAC,QAAQ,CAAC,CACJ,EACZ,OAAO,EAAE,8BAAC,mBAAS,IACf,OAAO,EAAC,WAAW,EACnB,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC;oBACtB,MAAM,EAAE,eAAe;oBACvB,QAAQ,EAAE,iBAAiB;iBAC9B,CAAC,IAED,CAAC,CAAC,MAAM,CAAC,CACF,GACd,EACF,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,cAAc,EAC9B,gBAAgB,EAAE,gBAAgB,EAClC,WAAW,EAAE;YACT,KAAK,EAAE;gBACH,EAAE,EAAE,yCAAyC;gBAC7C,EAAE,EAAE,OAAO;aACd;YACD,QAAQ,EAAE,CAAC;YACX,QAAQ,EAAE,OAAO;YACjB,MAAM,EAAE,MAAM;SACjB;QAGD,8BAAC,+CAAsB,OAAK,qBAAqB,GAAG,CAE7C,CACd,CAAC;AACN,CAAC,CAAC;AAlGW,QAAA,yBAAyB,6BAkGpC"}
|
|
@@ -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[];
|