File component in Microsoft Graph Toolkit
The File component is used to represent an individual file/folder from OneDrive or SharePoint. The component displays information such as the file or folder name, the file type icon, and the author and last modified date. You can provide the identifiers for a file and the component generates the query to retrieve the file based on the identifiers provided. This component can be used on its own or as part of the mgt-file-list components.
Example
The following example displays a file using the mgt-file
component. You can use the code editor to see how properties change the behavior of the component.
Properties
You can use several properties to customize the component.
Attribute | Property | Description |
---|---|---|
file-query | fileQuery | The full query or path to the file to be retrieved. |
user-id | userId | ID of the user. This property is used to get the file for a specified user. Must also provide item-id , item-path , insight-type or insight-id . |
drive-id | driveId | The ID of the drive the file belongs to. Must also provide either item-id or item-path . |
group-id | groupId | ID of the group the file belongs to. Must also provide either item-id or item-path . |
site-id | siteId | ID of the site the file belongs to. Must also provide either item-id or item-path . Provide the list-id too if you’re referencing a file from a specific list. |
list-id | listId | ID of the list the file belongs to. Must also provide site-id and item-id . |
item-id | itemId | ID of the file. Default query is /me/drive/items . Provide drive-id , group-id , site-id , or user-id to query a specific location. |
item-path | itemPath | Item path of the file. Default query is /me/drive/root . Provide drive-id , group-id , site-id , or user-id to query a specific location. |
insight-type | insightType | Type of insight the file is retrieved from. Can be trending , used , or shared . |
insight-id | insightId | ID of the insight resource. |
file-details | fileDetails | Set to an object representing a file |
file-icon | fileIcon | URL path where the icon is stored. |
- | driveItem | Object containing Graph details on item. |
- | fileDetails | Object containing the DriveItem. |
view | view | Set to control how the file is rendered. The default is oneline . image - show only the icon oneline - show the icon and one line of text (default is file name ) twolines - show the icon and two lines of text (name and lastModifiedDateTime by default)threelines - show the icon and three lines of text (name , lastModifiedDateTime , and displayName of the author by default) |
line1-property | line1Property | Sets the property of fileDetails to use for the first line of text. Default is name of the file. |
line2-property | line2Property | Sets the property of fileDetails to use for the second line of text. Default is lastModifiedDateTime . |
line3-property | line3Property | Sets the property of fileDetails to use for the third line of text. Default is size of the file. |
The following example changes the behavior of the component to fetch data from a specific query.
<mgt-file file-query="/me/drive/items/01BYE5RZZFWGWWVNHHKVHYXE3OUJHGWCT2">
</mgt-file>
The following example changes the behavior of the component to fetch data from a specific query, show three lines of information - file name, last modified date time, and file size by default - and set the file icon.
<mgt-file
file-query="/me/drive/items/01BYE5RZZFWGWWVNHHKVHYXE3OUJHGWCT2"
view="threeLines"
file-icon="ICON_PATH"
></mgt-file>
The following example changes the behavior of the component to fetch data from a specific drive.
<mgt-file
drive-id="b!-RIj2DuyvEyV1T4NlOaMHk8XkS_I8MdFlUCq1BlcjgmhRfAj3-Z8RY2VpuvV_tpd"
item-id="01BYE5RZ5MYLM2SMX75ZBIPQZIHT6OAYPB"
></mgt-file>
The following example changes the behavior of the component to fetch data from a SharePoint site and path.
<mgt-file
site-id="m365x214355.sharepoint.com,5a58bb09-1fba-41c1-8125-69da264370a0,9f2ec1da-0be4-4a74-9254-973f0add78fd"
item-Path="/DemoDocs/AdminDemo"
></mgt-file>
The following example changes the behavior of the component to fetch data by insight type.
<mgt-file
insight-type="shared"
insight-id="AW1GxMvkOztMkJX-SCppUSRPF5EvyPDHRZVAqtQZXI4JoUXwI9_mfEWNlabr1f7aXRBWDMt2C2FDop4fP1vsUw9tRsTL5Ds7TJCV_kgqaVEkBA"
></mgt-file>
CSS custom properties
The mgt-file
component defines the following CSS custom properties.
<mgt-file class="file" file-query="/me/drive/items/01BYE5RZZFWGWWVNHHKVHYXE3OUJHGWCT2"></mgt-file>
.file {
--file-type-icon-height: 30px;
--file-border: 4px dotted #ffbdc3;
--file-border-radius: 8px;
--file-box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.1);
--file-background-color: #e0f8db;
--file-background-color-focus: yellow;
--file-background-color-hover: green;
--file-padding: 8px;
--file-padding-inline-start: 12px;
--file-margin: 3px 4px;
--file-line1-font-size: 15px;
--file-line1-font-weight: 500;
--file-line1-color: gray;
--file-line1-text-transform: capitalize;
--file-line2-font-size: 14px;
--file-line2-font-weight: 300;
--file-line2-color: #e50000;
--file-line2-text-transform: lowercase;
--file-line3-font-size: 13px;
--file-line3-font-weight: 500;
--file-line3-color: purple;
--file-line3-text-transform: capitalize;
}
To learn more, see styling components.
Microsoft Graph APIs and permissions
This control uses the following Microsoft Graph APIs and permissions. For each API call, one of the permissions listed is required.
Configuration | Permission Scopes | API |
---|---|---|
Developer provides {drive-id} AND {item-id} |
Files.Read, Files.ReadWrite, Files.Read.All, Files.ReadWrite.All, Group.Read.All, Group.ReadWrite.All, Sites.Read.All, Sites.ReadWrite.All | GET /drives/{drive-id}/items/{item-id} |
Developer provides {drive-id} AND {item-path} |
Files.Read, Files.ReadWrite, Files.Read.All, Files.ReadWrite.All, Group.Read.All, Group.ReadWrite.All, Sites.Read.All, Sites.ReadWrite.All | GET /drives/{drive-id}/root:/{item-path} |
Developer provides {group-id} AND {item-id} |
Files.Read, Files.ReadWrite, Files.Read.All, Files.ReadWrite.All, Group.Read.All, Group.ReadWrite.All, Sites.Read.All, Sites.ReadWrite.All | GET /groups/{group-id}/drive/items/{item-id} |
Developer provides {group-id} AND {item-path} |
Files.Read, Files.ReadWrite, Files.Read.All, Files.ReadWrite.All, Group.Read.All, Group.ReadWrite.All, Sites.Read.All, Sites.ReadWrite.All | GET /groups/{group-id}/drive/root:/{item-path} |
Developer provides ONLY {item-id} |
Files.Read, Files.ReadWrite, Files.Read.All, Files.ReadWrite.All, Group.Read.All, Group.ReadWrite.All, Sites.Read.All, Sites.ReadWrite.All | GET /me/drive/items/{item-id} |
Developer provides ONLY {item-path} |
Files.Read, Files.ReadWrite, Files.Read.All, Files.ReadWrite.All, Group.Read.All, Group.ReadWrite.All, Sites.Read.All, Sites.ReadWrite.All | GET /me/drive/root:/{item-path} |
Developer provides {site-id} AND {item-id} |
Files.Read, Files.ReadWrite, Files.Read.All, Files.ReadWrite.All, Group.Read.All, Group.ReadWrite.All, Sites.Read.All, Sites.ReadWrite.All | GET /sites/{site-id}/drive/items/{item-id} |
Developer provides {site-id} AND {item-path} |
Files.Read, Files.ReadWrite, Files.Read.All, Files.ReadWrite.All, Group.Read.All, Group.ReadWrite.All, Sites.Read.All, Sites.ReadWrite.All | GET /sites/{site-id}/drive/root:/{item-path} |
Developer provides {site-id} AND {list-id} AND {item-id} |
Files.Read, Files.ReadWrite, Files.Read.All, Files.ReadWrite.All, Group.Read.All, Group.ReadWrite.All, Sites.Read.All, Sites.ReadWrite.All | GET /sites/{site-id}/lists/{list-id}/items/{item-id}/driveItem |
Developer provides {user-id} AND {item-id} |
Files.Read, Files.ReadWrite, Files.Read.All, Files.ReadWrite.All, Group.Read.All, Group.ReadWrite.All, Sites.Read.All, Sites.ReadWrite.All | GET /users/{user-id}/drive/items/{item-id} |
Developer provides {user-id} AND {item-path} |
Files.Read, Files.ReadWrite, Files.Read.All, Files.ReadWrite.All, Group.Read.All, Group.ReadWrite.All, Sites.Read.All, Sites.ReadWrite.All | GET /users/{user-id}/drive/root:/{item-path} |
insight-type is set to trending AND developer provides {insight-id} |
Sites.Read.All, Sites.ReadWrite.All | GET /me/insights/trending/{insight-id}/resource |
insight-type is set to used AND developer provides {insight-id} |
Sites.Read.All, Sites.ReadWrite.All | GET /me/insights/used/{id}/resource |
insight-type is shared AND developer provides {insight-id} |
Sites.Read.All, Sites.ReadWrite.All | GET /me/insights/shared/{id}/resource |
Templates
The mgt-file
component supports several templates that allow you to replace certain parts of the component. To specify a template, include a <template>
element inside of a component and set the data-type
to one of the following values:
Data Type | Data Context | Description |
---|---|---|
loading | none | The template to render while the component is in a loading state. |
no-data | none | The template to render when no file data is available. |
default | file: the file details object | The default template replaces the entire component with your own. |
Example of template usage
<mgt-file file-query="/me/drive/items/01BYE5RZZFWGWWVNHHKVHYXE3OUJHGWCT2">
<template data-type="default">
<p>File name: {{file.name}}.</p>
<p>File ID: {{file.id}}.</p>
</template>
<template data-type="loading">
<p>Getting the file data...</p>
</template>
<template data-type="no-data">
<p>No file data was found</p>
</template>
</mgt-file>
Authentication
The control uses the global authentication provider described in the authentication documentation to fetch the required data.
Cache
Object store | Cached data | Remarks |
---|---|---|
driveFiles |
List of files by drive id | Used when driveId is provided |
groupFiles |
List of files by group id | Used when groupId is provided |
siteFiles |
List of files by site id | Used when siteId is provided |
userFiles |
List of files by user id | Used when userId is provided |
insightFiles |
List of files by insights | Used when insightType and insightId are provided |
fileQueries |
List of files by queries | Used when fileQuery is provided |
For details about how to configure the cache, see Caching.
Localization
The control exposes the following variables that can be localized. For details about how to set up localization, see Localizing components.
String name | Default value |
---|---|
modifiedSubtitle | Modified |
sizeSubtitle | Size |