A Web Component for Google Drive Picker.
Install using NPM or similar.
npm i @googleworkspace/drive-picker-element
yarn add @googleworkspace/drive-picker-element
pnpm add @googleworkspace/drive-picker-element
import "@googleworkspace/drive-picker-element";
<drive-picker client-id="YOUR_CLIENT_ID" app-id="YOUR_APP_ID">
<drive-picker-docs-view
mime-types="application/json"
label="JSON"
></drive-picker-docs-view>
<drive-picker-docs-view owned-by-me="" label="Mine"></drive-picker-docs-view>
<drive-picker-docs-view starred="" label="Starred"></drive-picker-docs-view>
</drive-picker>
See the components and the official reference documentation for more details:
Status | Component | Reference Docs |
---|---|---|
✅ | <drive-picker/> | PickerBuilder API Reference |
✅ | <drive-picker-docs-view/> | DocsView API Reference |
❌ - ToDo | <drive-picker-docs-upload-view/> | DocsUploadView API Reference |
To report issues or feature requests for the underlying Drive Picker, please use the issue tracker.
The drive-picker
web component provides a convenient way to integrate the Google Picker API into your web applications. The Google Picker API is a JavaScript API that allows users to select or upload Google Drive files. This component acts as a "File Open" dialog for accessing and interacting with files stored on Google Drive.
Features:
- Provides a similar look-and-feel to the Google Drive UI.
- Offers several views showing previews and thumbnail images of Drive files.
- Displays as an inline, modal window, ensuring users never leave the main application.
Note: The Google Picker API does not support file organization, moving, or copying. For these operations, you should use either the Google Drive API or the Drive UI.
<drive-picker
app-id="675807958095"
client-id="675807958095-nsptdcn5qdb6pl44cge1c6ghact9t5q0.apps.googleusercontent.com"
>
<drive-picker-docs-view></drive-picker-docs-view>
</drive-picker>
Property | Attribute | Type | Default | Description |
---|---|---|---|---|
appId |
app-id |
string |
The Google Drive app ID. | |
clientId |
client-id |
string |
The Google API client ID. | |
developerKey |
developerKey |
string | undefined |
The Google API developer key. | |
height |
height |
number | undefined |
The height of the picker dialog. | |
hideTitleBar |
hide-title-bar |
boolean | undefined |
Whether to hide the title bar of the picker dialog. | |
locale |
locale |
string | undefined |
The locale of the picker dialog. | |
maxItems |
max-items |
number | undefined |
The maximum number of items that the user can select. | |
multiselect |
multiselect |
boolean | undefined |
Whether the user can select multiple items. | |
oauthToken |
oauth-token |
string | undefined |
The OAuth token to authenticate the user. | |
origin |
origin |
string | undefined |
The origin of the picker dialog. | |
relayUrl |
relay-url |
string | undefined |
The relay URL to use for cross-origin communication. | |
scope |
scope |
string |
"https://www.googleapis.com/auth/drive.file" | The scope of the OAuth token. |
title |
title |
string |
"" | The title of the picker dialog. |
visible |
visible |
boolean |
true | Whether the picker dialog is visible. |
width |
width |
number | undefined |
The width of the picker dialog. |
Method | Type |
---|---|
addEventListener |
(type: "cancel" | "picked", listener: (ev: CustomEvent<ResponseObject>): void, options?: boolean | AddEventListenerOptions | undefined) => void |
removeEventListener |
(type: "cancel" | "picked", listener: (ev: CustomEvent<ResponseObject>): void, options?: boolean | EventListenerOptions | undefined) => void |
Event | Type | Description |
---|---|---|
cancel |
CustomEvent<google.picker.ResponseObject> |
Triggered when the user cancels the picker dialog. |
picked |
CustomEvent<google.picker.ResponseObject> |
Triggered when the user picks one or more items. |
Name | Description |
---|---|
The View elements to display in the picker. Each View element should implement a property view of type google.picker.View . |
The drive-picker-docs-view
element is used to define a view for the Google Drive Picker.
<drive-picker-docs-view ownedByMe=""></drive-picker-docs-view>
Property | Attribute | Modifiers | Type | Default | Description |
---|---|---|---|---|---|
enableDrives |
enable-drives |
boolean | undefined |
Indicates whether to enable drives in the view. | ||
includeFolders |
include-folders |
boolean | undefined |
Indicates whether to include folders in the view. | ||
label |
label |
string | undefined |
|||
mimeTypes |
mime-types |
string | undefined |
The MIME types to filter the view by. | ||
mode |
mode |
"GRID" | "LIST" |
"GRID" | The mode of the view. This should be one of the values of the google.picker.DocsViewMode enum. |
|
ownedByMe |
owned-by-me |
boolean | undefined |
Indicates whether to show only files owned by the user in the view. | ||
parent |
parent |
string | undefined |
The ID of the parent folder to restrict the view to. | ||
query |
query |
string | undefined |
The query string to filter the view by. | ||
selectFolderEnabled |
select-folder-enabled |
boolean | undefined |
Indicates whether selecting folders is enabled in the view. | ||
starred |
starred |
boolean | undefined |
Indicates whether to show only starred files in the view. | ||
view |
readonly | DocsView |
Gets the Google Drive Picker view based on the current property values. | ||
viewId |
view-id |
"DOCS" | "DOCS_IMAGES" | "DOCS_IMAGES_AND_VIDEOS" | "DOCS_VIDEOS" | "DOCUMENTS" | "DRAWINGS" | "FOLDERS" | "FORMS" | "PDFS" | "PRESENTATIONS" | "SPREADSHEETS" | "IMAGE_SEARCH" | ... 7 more ... | "YOUTUBE" |
"DOCS" | The ID of the view. This should be one of the values of thegoogle.picker.ViewId enum.Note: The default value is DOCS which corresponds to thegoogle.picker.ViewId.DOCS enum value in the Google Drive Picker API andcorresponsds to all Google Drive document types. |
pnpm install
pnpm build
pnpm serve
pnpm storybook