Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature Request: igxSelect Component #3148

Closed
IvayloG opened this issue Nov 26, 2018 · 10 comments · Fixed by #3570
Closed

Feature Request: igxSelect Component #3148

IvayloG opened this issue Nov 26, 2018 · 10 comments · Fixed by #3570
Assignees
Labels
select Select component 🧰 feature-request ✅ status: resolved Applies to issues that have pending PRs resolving them, or PRs that have already merged.

Comments

@IvayloG
Copy link
Contributor

IvayloG commented Nov 26, 2018

Description

Create a simplified version of the IgxCombo a.k.a “Single Select” component that comes without the multi-selection checkboxes.

@grosch
Copy link

grosch commented Nov 26, 2018

Please! The igx-combo is awesome, except for the fact it requires multi-select. Doing a multi is a much less common scenario than doing a single select. For example I want to pick which state you're in, or who the ticket is assigned to, or any other of a myriad of ways in which a single-select is used.

I think the fact that HTML comes with a tag where the default is single select also says that it's the more common and needed resource. I know we can build one out ourselves, and I see you did so in your financial application example, but it should just be an option on igx-combo. I don't even care if the default is multi-select as long as I can add a [multi]="false" type option.

@kdinev
Copy link
Member

kdinev commented Dec 3, 2018

@IvayloG @grosch The component, that is supposed to handle the HTML select-like behavior, is the igx-dropdown. The team is adding a sample, which covers the igx-dropdown being bound to an input, with placeholder, title and label. I will update with a link to the sample to verify if the sample is satisfactory for the requirements described in the forum thread linked above.

@grosch
Copy link

grosch commented Dec 8, 2018

@kdinev That would be wonderful. How are you coming with that sample?

@kdinev
Copy link
Member

kdinev commented Dec 8, 2018

It's now the first sample of the drop down right here: https://www.infragistics.com/products/ignite-ui-angular/angular/components/drop_down.html

@grosch
Copy link

grosch commented Dec 8, 2018

@kdinev Thanks for that. I'm seeing an issue though that it only works as long as your list of items is less than the height of the screen. How can I tell it to only show X number of items and then scroll if there are more?

@kdinev
Copy link
Member

kdinev commented Dec 10, 2018

@grosch You can't control the number of items in the view through an input, but you can set height to the drop down according to the number of items you want displayed.

On Friday, we got together to discuss two new components, that we're going to introduce as a intermediate form component between the drop down and the combo - IgxSelect, and IgxAutoComplete. Both you be planned for release in the next milestone - end of February. The IgxSelect would be an alternative to the native select element, but it's size would also be controlled by the height of the drop down, rather than number of elements to display. I can keep you posted on the progress of these two and provide links to the specifications once they are made available on our wiki. @Lipata @bazal4o @damyanpetev

@bazal4o
Copy link
Contributor

bazal4o commented Jan 2, 2019

The initial spec is available here: igxSelect Specification.

@grosch
Copy link

grosch commented Jan 2, 2019

@bazal4o Are you saying that if there are 10 items in the list, and the 3rd one was previously selected, and I click on the dropdown, then I'm going to see two items above the select box and 7 items below the select box? That would be strange behavior as it's different from how a normal works. In regards to the height of the selection...that's going to be a bad looking UI. If I have to specify a height, and I randomly pick 47, and 47 happens to be enough to hold 7 items, but I only have 3 in the list, I have a huge chuck of whitespace showing on the dropdown. It would be a much more usable component if I were able to specify the maximum number of items to be displayed. If there are more than that, then it scrolls. If there are less, then the height of the dropdown shrinks to contain just what's there. Thanks for your consideration of this feedback :)

@StefanIvanov StefanIvanov self-assigned this Jan 9, 2019
@IvayloG IvayloG self-assigned this Jan 10, 2019
@IvayloG IvayloG added select Select component 🛠️ status: in-development Issues and PRs with active development on them and removed combo 🆕 status: new labels Jan 10, 2019
@SlavUI SlavUI changed the title Create a simplified version of the IgxCombo a.k.a “Single Select” component Feature Request: igxSelect Component Jan 11, 2019
@Lipata Lipata removed their assignment Jan 11, 2019
@grosch
Copy link

grosch commented Feb 6, 2019

Is there an ETA for release of this to production?

@bazal4o
Copy link
Contributor

bazal4o commented Feb 6, 2019

It will be included into the next major release (7.2.0). The release should be out the door at the end of February. Expect beta packages available by the end of the next week.

@IvayloG IvayloG added ✅ status: resolved Applies to issues that have pending PRs resolving them, or PRs that have already merged. and removed 🛠️ status: in-development Issues and PRs with active development on them labels Feb 13, 2019
Lipata added a commit that referenced this issue Feb 14, 2019
bazal4o pushed a commit that referenced this issue Feb 14, 2019
* feat(IgxSelect): Initial structure and sample. #3148

* feat(IgxSelect): Adding ControlValueAccessor methods. #3148

* feat(IgxSelect): Adding igxLabel and igxPrefix #3148

* chore(IgxSelect): Update for drop-down refactoring.

* chore(IgxSelect): Update selection.

* chore(IgxSelect): Add initial keybord nav and SelectPositioningStrategy.

* chore(IgxSelect): Clean up excess references.

* chore(IgxSelect): Add IgxSelectItemNavigationDirective.

* chore(IgxSelect): Fix selection when item isHeader #3148

* chore(IgxSelect): Fix selecting item when both disabled&selected.

* chore(IgxSelect): Fix setting invalid input value.

* chore(IgxSelect): Fix isSelected Input so others are available sooner.

* chore(IgxSelect): Update sample with the values being set.

* test(IgxSelect): Initialization and selection tests #3148

* chore(IgxSelect): Add initial ARIA. Refactor SelectItemNavigationService

* chore(IgxSelect): Add ARIA required attr.id. Update ARIA.

* chore(IgxSelect): Update handleKeyDown switch.

* chore(IgxSelect): Upate sample with more logging.

* chore(IgxSelect): Add selectionValue setter. Get rid of build exception.

* chore(IgxSelect): Add ngDoCheck. Get rid of multipple selectItem calls.

* chore(IgxSelect): Apply empty labelledby if user did not set a label.

* chore(IgxSelect): Add select sample to navdrawer.

* chore(select): rename select sample component

* chore(*): select positioning strat, WIP

* chore(IgxSelect): Fix input value binding.

* chore(IgxSelect): Update sample. Add select in Form sample.

* chore(IgxSelect): Update model binding when no items available.

* chore(*): refactor pseudocode for positioning strat

* chore(*): implement strategy private methods

* chore(*): select strategy WIP - working with container w/o scroll

* test(IgxSelect): Key navigation tests #3148

* chore(IgxSelect): Add select-item itemText.

* chore(IgxSelect): Add activate items when typing.

* chore(IgxSelect): drop-down style class override.

* test(IgxSelect): More key navigation tests + fixing failing tests#3148

* chore(IgxSelect): Adjust item-padding when possitioning.

* chore(IgxSelect):  Spin input values on key Up/Down.

* chore(IgxSelect): Offset DD container when OUT_OF_BOUNDS and no scroll.

* chore(IgxSelect): Initial possitioning refactor when no scroll.

* chore(IgxSelect): Complete positioning strategy & scroll fix.

* chore(IgxSelect): Update translateX where needed.

* chore(IgxSelect): navigate to next item when typing same start letter

* chore(IgxSelect):  Navigate when typing - case insensitive.

* chore(IgxSelect): Add to typing - case insensitive.

* chore(IgxSelect): Complete Y positioning. Cleanup code,  refactoring.

* chore(IgxSelect): Add positionAndScrollBottom method.

* chore(IgxSelect): Cleanup most capital namings.

* chore(IgxSelect): IgxDropDownModule update.

* chore(IgxSelect): Export select-positioning-strategy.

* chore(IgxSelect): Refactor positioning adding methods.

* chore(IgxSelect): Fix positionAndScrollBottom

* chore(IgxSelect): Position trough the 3 main position methods.

* test(IgxSelect): Key navigation tests#3148

* chore(IgxSelect): Update translateX. Update sample.

* chore(IgxSelect): Update sample css.

* test(IgxSelect): dropdown items aria attributes test#3148

* test(IgxSelect): positioning tests description#3148

* chore(IgxSelect): Persist container position when open & scroll window.

* chore(IgxSelect): Use custom OverlaySettings if passed.

* chore(IgxSelect): if no items do not open list. Do not possition.

* chore(IgxSelect): Display groups in IgxSelect

* Adding some styling to the samples

* chore(IgxSelect): Fix group padding. update sample.

* fix sample styling

* chore(IgxSelect): Respect customOverlaySettings on Open mehod or input

* chore(IgxSelect): Update customOverlay sample.

* chore(IgxSelect): Add inut group styles(box, border).

* chore(IgxSelect): Fix space close no value

* chore(IgxSelect): Remove isHeader

* chore(IgxSelect): Add IgxSelectToggleIconDirective to template the arrow

* chore(IgxSelect): Add class igx-select__list

* Adding styles for select drop-down

* chore(IgxSelect): Update value set/get.

* chore(IgxSelect): Use left/top instead of x/y. IE/Chrome Issue

* test(IgxSelect): character key navigation tests#3148

* style(select-sample): Fix sample in IE11

* fix(IgxSelect): Fix imports; add forwardRef to label prop #3148

* chore(IgxSelect): fix null, undefined, emptyString, same items selection

* chore(IgsSelect): Fix grouping after master merge.

* chore(IgxSelect): Move select-positioning-strategy to component folder

* chore(IgxSelect):  Set items container width. Update sample

* chore(drop-down): cleanp open handler, don't (re)set active w/o selected

* chore(IgxSelect): Update UP/DOWN Arrows navigation methods

* chore(select): update typing keyboard navigation

* chore(IgxSelect): address comments

* chore(select): slected item id in aria activedescendant

* test(IgxSelect): remove selected item#3148

* chore(IgxSelect): Addres pull request comments.

* chore(IgxSelect): use IgxSelectBase interface (circular ref fix)

* chore(IgxSelect): exposing displayDensity for the inputGroup

* test(IgxSelect): fix failing tests#3148

* chore(IgxSelect): combine samples

* Fix sample styling

* chore(IgxSelect): Fix Up/Down navigation in IE

* chore(IgxSpace): FIx space selection and scroll

* fix(igx-autcomplete): manually unselect after DropDown change #3148

* chore(IgxSelect): Remove select sample from navigation.

* docs(igx-select): add select link in general ReadMe #3148

* test(IgxSelect): input type and display density tests#3148

* docs(igx-select): add API comments #3148

* test(IgxSelect): input type and display density tests#3148

* chore(IgxSelect): add changelog and readme

* chore(select): Cleanup the changelog.

* chore(IgxSelect): Update Readme for label

* refactor(drop-down): make sure toggle goes through DD open/close methods

* refactor(select): default, boudn and passed overlay settings

* chore(IgxSelect):  Fix overlay position sample
@radomirchev radomirchev added this to Milestone 6 (MAR 08, 2019) in ROADMAP 2019 Sep 2, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
select Select component 🧰 feature-request ✅ status: resolved Applies to issues that have pending PRs resolving them, or PRs that have already merged.
Projects
ROADMAP 2019
Milestone 6 (MAR 08, 2019)
Development

Successfully merging a pull request may close this issue.

8 participants