Skip to content

Commit 0802c55

Browse files
Ramakrishnan24689scottdurowdenise-msft
authored
October release prep (microsoft#50)
* Calendar Test Added - gitignore updated * Removed Shimmer Coverage/ Updated Test Snaps * Udpated Test for Progress Indicator * fix:(Calendar) test failing due to dependency on today's date (microsoft#30) * fix: (pivot) width in custom pages (microsoft#33) chore: (pivot) npm update - stay with pcf-scripts 1.14.2 due to webpack dependency issue * fix: auto-height in custom pages (microsoft#32) fix: onchange not fired when any outputs undefined chore: npm update and test chore: spelling mistake chore: variable names should be camelCase * Facepile component added (microsoft#35) * Facepile component added * reactdom-definition * fixing typos * Update Facepile.1033.resx Adding preview tag * Facepile propertyname changed (microsoft#48) * Features/people picker (microsoft#46) * PeoplePicker Added * Code refactor and Documentation * Updated readme, fixed typos. * refactor: code optimization-onsearch/retries * Tweaks * refactor : render - pre-selected members * Readme modified * refactor : duplicate code removed * refactor : personakey & presence type change * refactor: presence return type fix Co-authored-by: Scott Durow <[email protected]> * Searchbox (microsoft#49) * Added SearchBox * updated searchbox * added comments to index * renamed component.types.ts and updated searchbox * added tests * enhancement Co-authored-by: Denise Moran <[email protected]> * test: test modified * (People Picker) Deterministic Suggestions Resolution (microsoft#51) * fixes issue with suggestions not resolving correctly fixes other minor typos and consistency issues * fix casing on peoplepicker file Co-authored-by: Scott Durow <[email protected]> Co-authored-by: Denise Moran <[email protected]>
1 parent 3574ed1 commit 0802c55

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+42065
-1
lines changed

.github/workflows/create-release.yml

+3
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,13 @@ jobs:
4545
`${process.env.GITHUB_WORKSPACE}/Icon/Icon`,
4646
`${process.env.GITHUB_WORKSPACE}/KeyboardShortcuts/KeyboardShortcuts`,
4747
`${process.env.GITHUB_WORKSPACE}/Nav/Nav`,
48+
`${process.env.GITHUB_WORKSPACE}/Persona/Persona`,
49+
`${process.env.GITHUB_WORKSPACE}/PeoplePicker/PeoplePicker`,
4850
`${process.env.GITHUB_WORKSPACE}/Picker/Picker`,
4951
`${process.env.GITHUB_WORKSPACE}/Pivot/Pivot`,
5052
`${process.env.GITHUB_WORKSPACE}/ProgressIndicator/ProgressIndicator`,
5153
`${process.env.GITHUB_WORKSPACE}/ResizableTextarea/ResizableTextarea`,
54+
`${process.env.GITHUB_WORKSPACE}/SearchBox/SearchBox`,
5255
`${process.env.GITHUB_WORKSPACE}/Shimmer/Shimmer`,
5356
`${process.env.GITHUB_WORKSPACE}/Spinner/Spinner`,
5457
`${process.env.GITHUB_WORKSPACE}/TagList/TagList`,

.github/workflows/pr_validate_all.yml

+3
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,13 @@ jobs:
2323
- "./Icon"
2424
- "./KeyboardShortcuts"
2525
- "./Nav"
26+
- "./PeoplePicker"
27+
- "./Persona"
2628
- "./Picker"
2729
- "./Pivot"
2830
- "./ProgressIndicator"
2931
- "./ResizableTextarea"
32+
- "./SearchBox"
3033
- "./Spinner"
3134
- "./Shimmer"
3235
- "./TagList"

.vscode/settings.json

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"git.ignoreLimitWarning": true
3+
}

Facepile/Facepile/strings/Facepile.1033.resx

+8
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,11 @@
134134
<value>Max Displayable Personas</value>
135135
</data>
136136
<data name="PersonaSize" xml:space="preserve">
137+
<<<<<<< HEAD
138+
<value>Persona Size</value>
139+
=======
137140
<value>Event Name</value>
141+
>>>>>>> 3574ed17211547f623558827e54e20f9e65dd546
138142
</data>
139143
<data name="OverflowButtonType" xml:space="preserve">
140144
<value>OverflowButton Type</value>
@@ -175,4 +179,8 @@
175179
<data name="OverflowButtonAriaLabel" xml:space="preserve">
176180
<value>Overflow Button Aria Label</value>
177181
</data>
182+
<<<<<<< HEAD
178183
</root>
184+
=======
185+
</root>
186+
>>>>>>> 3574ed17211547f623558827e54e20f9e65dd546

PeoplePicker/.eslintrc.json

+53
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
{
2+
"env": {
3+
"browser": true,
4+
"es2021": true
5+
},
6+
"extends": [
7+
"eslint:recommended",
8+
"plugin:react/recommended",
9+
"plugin:react-hooks/recommended",
10+
"plugin:@typescript-eslint/recommended",
11+
"plugin:prettier/recommended",
12+
"prettier"
13+
],
14+
"parser": "@typescript-eslint/parser",
15+
"parserOptions": {
16+
"ecmaFeatures": {
17+
"jsx": true
18+
},
19+
"ecmaVersion": 12,
20+
"sourceType": "module"
21+
},
22+
"plugins": [
23+
"react",
24+
"react-hooks",
25+
"@typescript-eslint",
26+
"prettier"
27+
],
28+
"settings": {
29+
"react": {
30+
"pragma": "React",
31+
"version": "detect"
32+
}
33+
},
34+
"ignorePatterns": ["**/generated/*.ts"],
35+
"rules": {
36+
"eqeqeq": [2, "smart"],
37+
"prettier/prettier": "error",
38+
"arrow-body-style": "off",
39+
"prefer-arrow-callback": "off",
40+
"linebreak-style": [
41+
"error",
42+
"windows"
43+
],
44+
"quotes": [
45+
"error",
46+
"single"
47+
],
48+
"semi": [
49+
"error",
50+
"always"
51+
]
52+
}
53+
}

PeoplePicker/.gitignore

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2+
3+
# dependencies
4+
/node_modules
5+
6+
# generated directory
7+
**/generated
8+
9+
# coverage directory
10+
/coverage
11+
12+
# output directory
13+
/out
14+
15+
# msbuild output directories
16+
/bin
17+
/obj

PeoplePicker/.prettierrc.json

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"semi": true,
3+
"trailingComma": "all",
4+
"singleQuote": true,
5+
"printWidth": 120,
6+
"tabWidth": 4,
7+
"endOfLine": "auto"
8+
}

PeoplePicker/PeoplePicker.pcfproj

+47
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3+
<PropertyGroup>
4+
<PowerAppsTargetsPath>$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\PowerApps</PowerAppsTargetsPath>
5+
</PropertyGroup>
6+
7+
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" />
8+
<Import Project="$(PowerAppsTargetsPath)\Microsoft.PowerApps.VisualStudio.Pcf.props" Condition="Exists('$(PowerAppsTargetsPath)\Microsoft.PowerApps.VisualStudio.Pcf.props')" />
9+
10+
<PropertyGroup>
11+
<Name>PeoplePicker</Name>
12+
<ProjectGuid>4f1851cb-52ae-4803-bce0-817b2091888f</ProjectGuid>
13+
<OutputPath>$(MSBuildThisFileDirectory)out\controls</OutputPath>
14+
<PcfBuildMode>production</PcfBuildMode>
15+
</PropertyGroup>
16+
17+
<PropertyGroup>
18+
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
19+
<!--Remove TargetFramework when this is available in 16.1-->
20+
<TargetFramework>net462</TargetFramework>
21+
<RestoreProjectStyle>PackageReference</RestoreProjectStyle>
22+
</PropertyGroup>
23+
24+
<ItemGroup>
25+
<PackageReference Include="Microsoft.PowerApps.MSBuild.Pcf" Version="1.*" />
26+
<PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.0" PrivateAssets="All" />
27+
</ItemGroup>
28+
29+
<ItemGroup>
30+
<ExcludeDirectories Include="$(MSBuildThisFileDirectory)\.gitignore" />
31+
<ExcludeDirectories Include="$(MSBuildThisFileDirectory)\bin\**" />
32+
<ExcludeDirectories Include="$(MSBuildThisFileDirectory)\obj\**" />
33+
<ExcludeDirectories Include="$(OutputPath)\**" />
34+
<ExcludeDirectories Include="$(MSBuildThisFileDirectory)\*.pcfproj" />
35+
<ExcludeDirectories Include="$(MSBuildThisFileDirectory)\*.pcfproj.user" />
36+
<ExcludeDirectories Include="$(MSBuildThisFileDirectory)\*.sln" />
37+
<ExcludeDirectories Include="$(MSBuildThisFileDirectory)\node_modules\**" />
38+
</ItemGroup>
39+
40+
<ItemGroup>
41+
<None Include="$(MSBuildThisFileDirectory)\**" Exclude="@(ExcludeDirectories)" />
42+
</ItemGroup>
43+
44+
<Import Project="$(MSBuildToolsPath)\Microsoft.Common.targets" />
45+
<Import Project="$(PowerAppsTargetsPath)\Microsoft.PowerApps.VisualStudio.Pcf.targets" Condition="Exists('$(PowerAppsTargetsPath)\Microsoft.PowerApps.VisualStudio.Pcf.targets')" />
46+
47+
</Project>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
// This is undocumented - but needed since canvas apps sets non-zero tabindexes
2+
// so we must use the tabindex provided by the context for accessibility purposes
3+
export interface ContextEx {
4+
accessibility: {
5+
assignedTabIndex: number;
6+
assignedTooltip?: string;
7+
};
8+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<manifest>
3+
<control namespace="PowerCAT" constructor="PeoplePicker" version="0.0.1" display-name-key="PeoplePicker" description-key="PeoplePicker description" control-type="virtual">
4+
<property name="Theme" display-name-key="Theme" of-type="Multiple" usage="input" required="false" />
5+
<property name="AccessibilityLabel" display-name-key="AccessibilityLabel" of-type="SingleLine.Text" usage="input" required="false" default-value="People Picker" />
6+
<property name="ShowSecondaryText" display-name-key="ShowSecondaryText_Desc" of-type="TwoOptions" usage="input" default-value="false" required="false" />
7+
<property name="Error" display-name-key="Error" of-type="TwoOptions" usage="input" default-value="false" required="false" />
8+
<property name="MinimumSearchTermLength" description-key="MinimumSearchTermLength_Desc" display-name-key="MinimumSearchTermLength" required="true" usage="input" of-type="Whole.None" default-value="3" />
9+
<property name="SearchTermToShortMessage" description-key="SearchTermToShortMessage_Desc" display-name-key="SearchTermToShortMessage" required="true" usage="input" of-type="SingleLine.Text" default-value="Continue Typing..." />
10+
<property name="NoResultFoundMessage" description-key="NoResultFoundMessage_Desc" display-name-key="NoResultFoundMessage" required="true" usage="input" of-type="SingleLine.Text" default-value="No results found" />
11+
<property name="SuggestionsHeaderText" description-key="SuggestionsHeaderText_Desc" display-name-key="SuggestionsHeaderText" required="true" usage="input" of-type="SingleLine.Text" default-value="Suggested People" />
12+
<property name="HintText" description-key="HintText_Desc" display-name-key="HintText" required="true" usage="input" of-type="SingleLine.Text" default-value="Search" />
13+
<property name="MaxPeople" description-key="MaxPeople_Desc" display-name-key="MaxPeople" required="true" usage="input" of-type="Whole.None" default-value="10" />
14+
<!-- People Picker Type -->
15+
<property name="PeoplePickerType" display-name-key="PeoplePickerType" description-key="PeoplePickerType" usage="input" of-type="Enum" required="true">
16+
<value name="NormalPeoplePicker" display-name-key="NormalPeoplePicker" description-key="Normal" default="true">Normal People Picker</value>
17+
<value name="CompactPeoplePicker" display-name-key="CompactPeoplePicker" description-key="Compact">Compact People Picker</value>
18+
<value name="ListPeoplePicker" display-name-key="ListPeoplePicker" description-key="List">List People Picker</value>
19+
</property>
20+
<!-- Output Properties -->
21+
<property name="SelectedPeople" display-name-key="SelectedPeople_Desc" description-key="SelectedPeopleDisplayName" of-type="Object" usage="output" default-value="" required="true" />
22+
<property name="SearchText" description-key="SearchText_Desc" display-name-key="SearchText" usage="output" of-type="SingleLine.Text" />
23+
<property name="AutoHeight" description-key="AutoHeight_Desc" display-name-key="AutoHeight" usage="output" of-type="Whole.None" />
24+
<!-- InputEvent : "SetFocus" -->
25+
<property name="InputEvent" display-name-key="InputEvent" description-key="InputEvent_Desc" of-type="SingleLine.Text" usage="input" />
26+
<!-- Custom Event -->
27+
<event name="OnSearch" display-name-key="OnSearch" description-key="OnSearch_Desc" />
28+
<event name="OnBlur" display-name-key="OnBlur" description-key="OnBlur_Desc" />
29+
<event name="OnFocus" display-name-key="OnFocus" description-key="OnFocus_Desc" />
30+
<!-- Dataset Property -->
31+
<data-set name="Personas" display-name-key="Personas">
32+
<property-set name="PersonaKey" display-name-key="PersonaKey" description-key="PersonaKey_Desc" of-type="SingleLine.Text" usage="bound" required="true" />
33+
<property-set name="PersonaName" display-name-key="PersonaName" of-type="SingleLine.Text" usage="bound" required="true" />
34+
<property-set name="PersonaImgUrl" display-name-key="PersonaImgUrl" of-type="SingleLine.Text" usage="bound" required="false" />
35+
<property-set name="PersonaImageAlt" display-name-key="PersonaImageAlt" of-type="SingleLine.Text" usage="bound" required="false" />
36+
<property-set name="PersonaPresence" display-name-key="PersonaPresence" of-type="SingleLine.Text" usage="bound" required="false" />
37+
<property-set name="PersonaOOF" display-name-key="PersonaOOF" of-type="TwoOptions" usage="bound" required="false" />
38+
<property-set name="PersonaRole" display-name-key="PersonaRole" of-type="SingleLine.Text" usage="bound" required="false" />
39+
</data-set>
40+
<data-set name="Suggestions" display-name-key="Suggestions">
41+
<property-set name="SuggestionKey" display-name-key="SuggestionKey" description-key="SuggestionsKey_Desc" of-type="SingleLine.Text" usage="bound" required="true" />
42+
<property-set name="SuggestionName" display-name-key="SuggestionName" of-type="SingleLine.Text" usage="bound" required="true" />
43+
<property-set name="SuggestionImgUrl" display-name-key="SuggestionImgUrl" of-type="SingleLine.Text" usage="bound" required="false" />
44+
<property-set name="SuggestionImageAlt" display-name-key="SuggestionImageAlt" of-type="SingleLine.Text" usage="bound" required="false" />
45+
<property-set name="SuggestionPresence" display-name-key="SuggestionPresence" of-type="SingleLine.Text" usage="bound" required="false" />
46+
<property-set name="SuggestionOOF" display-name-key="SuggestiosOOF" of-type="TwoOptions" usage="bound" required="false" />
47+
<property-set name="SuggestionRole" display-name-key="SuggestionRole" of-type="SingleLine.Text" usage="bound" required="false" />
48+
</data-set>
49+
<property-dependencies>
50+
<property-dependency input="PeoplePickerType" output="SelectedPeople" required-for="schema" />
51+
<property-dependency input="PeoplePickerType" output="SearchText" required-for="schema" />
52+
<property-dependency input="PeoplePickerType" output="AutoHeight" required-for="schema" />
53+
</property-dependencies>
54+
<resources>
55+
<code path="index.ts" order="1" />
56+
<resx path="strings/PeoplePicker.1033.resx" version="1.0.0" />
57+
<css path="css/PeoplePicker.css" order="1" />
58+
<platform-library name="React" version="16.8.6" />
59+
<platform-library name="Fluent" version="8.29.0" />
60+
</resources>
61+
</control>
62+
</manifest>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
export const enum ManifestPropertyNames {
2+
dataset = 'dataset',
3+
Suggestions_dataset = 'Suggestions_dataset',
4+
SearchText = 'SearchText',
5+
}
6+
7+
export const enum PersonaColumns {
8+
PersonaKey = 'PersonaKey',
9+
PersonaName = 'PersonaName',
10+
PersonaSize = 'PersonaSize',
11+
PersonaImgUrl = 'PersonaImgUrl',
12+
PersonaImageAlt = 'PersonaImageAlt',
13+
PersonaPresence = 'PersonaPresence',
14+
PersonaOOF = 'PersonaOOF',
15+
PersonaRole = 'PersonaRole',
16+
}
17+
18+
export const enum SuggestionColumns {
19+
SuggestionKey = 'SuggestionKey',
20+
SuggestionName = 'SuggestionName',
21+
SuggestionSize = 'SuggestionSize',
22+
SuggestionImgUrl = 'SuggestionImgUrl',
23+
SuggestionImageAlt = 'SuggestionImageAlt',
24+
SuggestionPresence = 'SuggestionPresence',
25+
SuggestionOOF = 'SuggestionOOF',
26+
SuggestionRole = 'SuggestionRole',
27+
}
28+
29+
export const enum InputEvents {
30+
SetFocus = 'SetFocus',
31+
}
32+
33+
export const enum InputProperties {
34+
InputEvent = 'InputEvent',
35+
SelectedKey = 'SelectedKey',
36+
}
37+
38+
export const enum OutputEvents {
39+
Add = 'Add',
40+
Remove = 'Remove',
41+
Search = 'Search',
42+
}

0 commit comments

Comments
 (0)