* perf: avoid memory leak #1834
Avoid memory leak by remove the exclusive parameter and logic in the code block on AddEventListener method in DomEventService class.
The following are the components affected:
components/affix/Affix.razor.cs
components/anchor/Anchor.razor.cs
components/carousel/Carousel.razor.cs
components/core/Component/Overlay/Overlay.razor.cs
components/core/Component/Overlay/OverlayTrigger.razor.cs
components/core/JsInterop/DomEventService.cs
components/descriptions/Descriptions.razor.cs
components/dropdown/DropdownButton.cs
components/grid/Row.razor.cs
components/input/Input.cs
components/input/TextArea.razor.cs
components/layout/Sider.razor.cs
components/list/ListItem.razor.cs
components/select/Select.razor.cs
components/select/internal/SelectContent.razor.cs
components/slider/Slider.razor.cs
components/table/Table.razor.cs
components/tabs/Tabs.razor.cs
* fix override AddEventListener method in AntDesign.TestKit project
* add register/remove event listerner for exclusive use in DomEventService class
* move _dotNetObjects to DomEventListerner class/service, so that users not required to maintain it in each component.
* * move share/reuse dom event listerner methods to DomEventListerner class
* remove method 'AddEventListener' that no longer exists in DomEventService class in AntDesign.TestKit project
* * change the component referring to an IDomEventListerner interface instead of a concrete class,
so that the component can be tested via a mock TestDomEventListerner.
* introduce DisposeShared and Dispose method in DomEventListerner to ease user remove callback from DomEventListerner
* register IDomEventListerner into DI container instead of create manually
* fix FormatKey
* fix FormatKey
* fix tests
* fix test
* fix test
Co-authored-by: James Yeung <shunjiey@hotmail.com>
* fix(module:select): value no longer reset on datasource set
* fix(module:select): dataSource change detection
* fix: improve datasource detection
add item & set value in SelectOption
* tests: scenario from issue #1207
* fix: DataSourceEqualityComparer default
* fix(module:select) MaxTagCount behaves property for non-responsive scenarios
docs: added XML comments
fixed order in English docs
redid Chinese docs (missing translations)
test: add scenario for MaxTagCount when non-responsive
* merge with changes coming from feature branch
* docs: example of MaxTagCount change
Co-authored-by: James Yeung <shunjiey@hotmail.com>
* feat(module: select): add EnumSelect for select componet with enum
* refactor: extract EnumLabelValue to the core directory
* feat: add enum select demo
* refactor: extracts the GetLabelValueList method to EnumHelper
* refactor: refactor EnumSelect with simple data source
* feat: add enum DisplayName support
* fix: modify the reflection of the enum get attribute with field
* add test
Co-authored-by: wangjun <wangjun@chemical.ai>
Co-authored-by: James Yeung <shunjiey@hotmail.com>
* fix(module: select): can not set initial value for non-datasource approach
* Update Select.razor.cs
Co-authored-by: James Yeung <shunjiey@hotmail.com>
* fix(module:select): allow change both datasource and value in one render period
* Update Select.razor.cs
* Update Select.razor.cs
* Update Select.razor.cs
* feat(module:table): add built-in filter for not composable enum types, support null value for List filter type
* feat(module:table): throw an exception for composable enum types when use built-in filter
* Revert "feat(module:table): throw an exception for composable enum types when use built-in filter"
This reverts commit 0e04ed91f58e23b93a441ac2aa00a794ae1a9b46.
* feat(module:table): add support for null value localization
* docs(module: table): update for enum build-in filter
* feat(module:table): add built-in filter for composable enum types
* docs(module: table): update for enum built-in filter
* feat(module: table): add enum built-in filter
* feat: add static constructor to EnumHelper
Co-authored-by: 令远 孔 <lingyuan.kong@outlook.com>
* feat: use ResizeObserver Api instead of window.resize
* fix(module:select): fall back to window.resize in IE11.
* fix(module:domEventService): switch from IsIE11 to IsResizeObserverSupported
* fix: Console.WriteLine removed
Co-authored-by: James Yeung <shunjiey@hotmail.com>
* feat(module:select): allow overlay to match item width
* fix(module:select): resize selectbox on window resize
* docs(module:select): add new parameters
* fix(module:select): add DropdownMatchSelectWidth & DropdownMaxWidth
* fix(module:select): apply same layout as antD
apply same behavior as antD for backspace
split code to default/multiple&tags
always focus on input for search-able
handle overflow & ellipsis for to long items
rendering optimization for SelectContent
* fix(module:select): backspace functionality limit
* chore: add GitHub Actions for auto preview (#1205)
* chore: add github actions for auto preview
* fix setup job
* chore: add GitHub Actions for auto preview (#1205)
* fix(module:select): add loading for multiple mode
* fix(module:select): selected items duplication for multiple mode when values changed outside the component
Co-authored-by: James Yeung <shunjiey@hotmail.com>
* fix: add class name prefix for zoom and slide-up animations.
* fix(module: popconfirm): fix animation
* fix(module: popover): correct animation, sync de
* chore: add GitHub Actions for auto preview (#1205)
* chore: add github actions for auto preview
* fix setup job
* chore: add GitHub Actions for auto preview (#1205)
* fix(module:select): reset value when changed to non-existing
Co-authored-by: James Yeung <shunjiey@hotmail.com>
* fix(module:select) _setLabel not needed for non-tags
fix for exception when label is a property with getter only
* fix(module:select): bind-Value lock if changed outside component
* fix(module:Select): overlay reposition SelectContent resize
* refactor(module: select): use Func to get or set value instead of reflection
* refactor(module: select): add delegate cache
* chore: add DelegateCacheKeyComparer
Co-authored-by: James Yeung <shunjiey@hotmail.com>
* fix(module:select): new tag item label and value fix
* fix: interop firefox "Permission Denied" fix
* fix(module:select): prefixIcon styling and positioning
* feat(module:overlay): OverlayTrigger not bound to a div
* feat(module:overlay): OverlayTrigger not bound to a div
* feat(module:overlay): Logic transfer to single Overlay
* feat(module:overlay): remove obsolete duplication
* feat(module:Tooltip): Add for unbounded oncontextmenu event handler
* feat(module:tooltip): unbound js event listeners remove
* docs(module:tooltip): unbound explanation
* fix(module:button): attach Ref to top level html element @ref
* feat(module:dropdown&tooltip&popconfirm&popover): Overlay not bound to a div
* docs(module:dropdown&tooltip&popconfirm&popover): unbound explanation
* feat(module:OverlayTrigger): common logic relocation
* feat(module:overlaytrigger): Overlay not bound to a div
* feat(module:DatePicker): Overlay not bound to a div
* feat(module:select): Overlay not boud to div
* fix(module:select): onclickarrow event relocation
* fix(module:select): rename Show to OnArrowClick
* feat(module:avatar): Overlay not bound to a div
* docs(module:avatar): demo switch to unbound version
* feat(module:autocomplete): partial OverlayTrigger not bound to a div
* feat(module:slider): tooltip
* docs(module:slider): tooltip
* fix(module:overlay): add SetVisible method
* feat: set Ref where missing, performance
components register Ref when missing
IsFixed flag for CascadeValue changed
hard-code sequence numbers when using RenderTreeBuilder
Rate component use Tooltip Unbound version
Tabs test fix
* fix: revert changes (accidental)
* feat(module:upload): tooltip with unbound usage
* feat(module:table): column use of unbound tooltip
* feat(module:autocomplete):overlay unbound from div
* fix(module:upload): missing div restore
Co-authored-by: James Yeung <shunjiey@hotmail.com>