This PR introduces the view that contains a list of badges and a textfield that will be used in People Picker named `MSBadgeListField`. The text entered into the field creates a badge that gets appended to a list of badges shown before the view's textfield.
The user can:
- enter text to create badges
- select badges
- drag and drop badges to other badge list fields
- delete badges using the keyboard's delete key
- set a max number of lines for the text field which will append a 'moreBadge' indicating the number of badges not shown if the badges cannot fit within the max number of lines (e.g. "+5")
The next step in the People Picker process will include integration with MSPersonaListView and functionality for this field's entered text to search and view search results in MSPersonaListView where MSPersonaCells can be selected and added to the MSBadgeListView as badges.
![Screen Shot 2018-12-17 at 10.43.46 AM.png](https://onedrive.visualstudio.com/4dcbf0bc-c3cd-49c8-a7c3-ec1924691d9b/_apis/git/repositories/93ac71ee-b53a-4fc6-a8c4-d46a80d4ca39/pullRequests/208193/attachments/Screen%20Shot%202018-12-17%20at%2010.43.46%20AM.png)
Related work items: #627344
This PR introduces MSBadgeView with MSBadgeBaseView to represent a "badge". This badge will be used in an upcoming field to represent selected personas from the MSPersonaListView. The badge can be selected with a tap and then tapped again once in a selected state to reveal more details about the selected person. It includes 3 styles: default, error, and warning with a disabled state as well.
Also included in this PR:
- A small update to the accessibility for MSAvatarView to become an accessibility element so details about the avatar can be used in VoiceOver when the avatar view is used outside of a MSPersonaCell.
- An update to Physical colors in MSColors to include dark yellow colors for 'warning' and 'light warning'. The previous red colors used for 'warning' and 'light warning' are now named 'error' and 'lightError' respectively.
![Screen Shot 2018-11-14 at 3.56.30 PM.png](https://onedrive.visualstudio.com/4dcbf0bc-c3cd-49c8-a7c3-ec1924691d9b/_apis/git/repositories/93ac71ee-b53a-4fc6-a8c4-d46a80d4ca39/pullRequests/203007/attachments/Screen%20Shot%202018-11-14%20at%203.56.30%20PM.png)
Related work items: #627343
Also:
- Added darker primary colors for images in Fabric and demo app.
- Removed demo for Button to not confuse the users :-)
Related work items: #658039
I used our Drawer controller to implement Popup Menu. In Outlook presentation and content are coupled together for each of Popup Menu and Action Sheet. We separated presentation (Drawer) from content. This work builds on existing presentation code (Drawer) and adds content as Popup Menu. Public API is very similar to Outlook with some cleaning done. This was my FHL project :-)
Related work items: #653496
- Adds a config file for running SwiftLint with explicitly whitelisted rules.
- Adds a run script build phase to run SwiftLint every time we build the OfficeUIFabric framework.
- Fixes warnings that were showing from implementing these linting rules.
You can find a description of all rules on the [SwiftLint github repo](https://github.com/realm/SwiftLint/blob/master/Rules.md).
This PR adds a public `MSDatePicker` class to display and select a date from a calendar style view. It has public APIs to programmatically change the selected date, present the modal, and set a delegate that will be notified when the user has confirmed a date.
It includes additions and changes in support classes for:
* A paged card modal presenter (`MSPageCardPresenterViewController` and supporting classes)
* Multiple styles of obscured backgrounds (`Obscurable`, `MSDimmingView`, and `MSBlurringView`)
* Accessibility navigation support (`AccessibleViewDelegate`)
* A simple dot view to show events on a day (`MSDotView`, unimplemented)
* A number of convenience extensions to help with navigation stacks, date handling, view centering, and more![Screen Shot 2018-10-09 at 6.03.49 PM.png](https://onedrive.visualstudio.com/4dcbf0bc-c3cd-49c8-a7c3-ec1924691d9b/_apis/git/repositories/93ac71ee-b53a-4fc6-a8c4-d46a80d4ca39/pullRequests/189673/attachments/Screen%20Shot%202018-10-09%20at%206.03.49%20PM.png)
Related work items: #640099, #640121, #640470
- `isExpanded` property maximizes/restores drawer's content
- Animation for `contentSize` change when drawer is visible
Related work items: #619247, #645234
This PR introduces MSPersonaListView to display a list of personas. The MSPersonaListView displays a MSPersonaCell for each MSPersona in an array used as the data source to populate the list view.
- Fixes an issue where the MSAvatarView initials view background color would change on selection of the cell to the selection state background color (backgroundGray).
- Includes MSPersona protocol with properties needed to set up the MSPeopleCell and MSAvatarView to display a persona.
- Includes a personaSelected callback for when a cell is selected. This will be used to add tokens to the tokenizable textfield in the upcoming people picker control.
- Includes keyboard shortcut support to use a keyboard to navigate the table view which will be implemented in the upcoming people picker view controller.
- Demo included that shows an alert demonstrating the selection behavior of the cell.
![Screen Shot 2018-10-15 at 2.57.34 PM.png](https://onedrive.visualstudio.com/4dcbf0bc-c3cd-49c8-a7c3-ec1924691d9b/_apis/git/repositories/93ac71ee-b53a-4fc6-a8c4-d46a80d4ca39/pullRequests/189085/attachments/Screen%20Shot%202018-10-15%20at%202.57.34%20PM.png)
Related work items: #627341
- Added support for CocoaPods to demo app
- Added AppCenter pod to demo app
- Added Dogfood configuration/scheme to demo app
- Added certificates and provisioning profile required for Enterprise (dogfood) distribution of the demo
Related work items: #600575
- MSDrawerController supports any content/subclassing and can slide down or up from any position on screen. It shows as a popover on iPad.
- New MSDimmingView and MSSeparator and extensions.
- New DemoController. Better support for device rotation in the demo. Better support for navigation item for demo controllers (they are now inserted directly into navigation controller and not some intermediate controller).
Related work items: #615745