blob: 307f48362bab3a1a49c21b00c47346560245e7a4 [file] [log] [blame]
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
/**
* @typedef {{
* scaleX: number,
* scaleY: number,
* rotate90: number
* }}
*/
var ImageTransformation;
/**
* Metadata of a file.
* @constructor
* @struct
*/
function MetadataItem() {
/**
* Size of the file. -1 for directory.
* @public {number|undefined}
*/
this.size;
/**
* @public {!Date|undefined}
*/
this.modificationTime;
/**
* Thumbnail URL obtained from external provider.
* @public {string|undefined}
*/
this.thumbnailUrl;
/**
* Cropped thumbnail URL obtained from external provider.
* @public {string|undefined}
*/
this.croppedThumbnailUrl;
/**
* @public {Error|undefined}
*/
this.thumbnailUrlError;
/**
* @public {number|undefined}
*/
this.imageWidth;
/**
* @public {number|undefined}
*/
this.imageHeight;
/**
* @public {number|undefined}
*/
this.imageRotation;
/**
* Thumbnail obtained from content provider.
* @public {string|undefined}
*/
this.contentThumbnailUrl;
/**
* @public {Error|undefined}
*/
this.contentThumbnailUrlError;
/**
* Thumbnail transformation obtained from content provider.
* @public {!ImageTransformation|undefined}
*/
this.contentThumbnailTransform;
/**
* @public {Error|undefined}
*/
this.contentThumbnailTransformError;
/**
* Image transformation obtained from content provider.
* @public {!ImageTransformation|undefined}
*/
this.contentImageTransform;
/**
* @public {Error|undefined}
*/
this.contentImageTransformError;
/**
* Whether the entry is pinned for ensuring it is available offline.
* @public {boolean|undefined}
*/
this.pinned;
/**
* Whether the entry is cached locally.
* @public {boolean|undefined}
*/
this.present;
/**
* @public {Error|undefined}
*/
this.presentError;
/**
* Whether the entry is hosted document of google drive.
* @public {boolean|undefined}
*/
this.hosted;
/**
* Whether the entry is modified locally and not synched yet.
* @public {boolean|undefined}
*/
this.dirty;
/**
* Whether the entry is present or hosted;
* @public {boolean|undefined}
*/
this.availableOffline;
/**
* @public {boolean|undefined}
*/
this.availableWhenMetered;
/**
* @public {string|undefined}
*/
this.customIconUrl;
/**
* @public {Error|undefined}
*/
this.customIconUrlError;
/**
* @public {string|undefined}
*/
this.contentMimeType;
/**
* Whether the entry is shared explicitly with me.
* @public {boolean|undefined}
*/
this.sharedWithMe;
/**
* Whether the entry is shared publicly.
* @public {boolean|undefined}
*/
this.shared;
/**
* URL for open a file in browser tab.
* @public {string|undefined}
*/
this.externalFileUrl;
/**
* @public {string|undefined}
*/
this.mediaAlbum;
/**
* @public {string|undefined}
*/
this.mediaArtist;
/**
* Audio or video duration in seconds.
* @public {number|undefined}
*/
this.mediaDuration;
/**
* @public {string|undefined}
*/
this.mediaGenre;
/**
* @public {string|undefined}
*/
this.mediaTitle;
/**
* @public {string|undefined}
*/
this.mediaTrack;
/**
* @public {string|undefined}
*/
this.mediaYearRecorded;
/**
* Mime type obtained by content provider based on URL.
* TODO(hirono): Remove the mediaMimeType.
* @public {string|undefined}
*/
this.mediaMimeType;
/**
* "Image File Directory" obtained from EXIF header.
* @public {!Object|undefined}
*/
this.ifd;
/**
* @public {boolean|undefined}
*/
this.exifLittleEndian;
}