zotero-types
Version:
This package contains type definitions for Zotero (https://www.zotero.org/) plugin.
251 lines (234 loc) • 6.16 kB
TypeScript
/// <reference path="dataObject.d.ts" />
declare namespace Zotero {
class Search extends Zotero.DataObject {
static prototype: Search;
constructor(params?: { name?: string; libraryID?: number });
_name: string | null;
_scope?: Search;
_scopeIncludeChildren?: boolean;
_sql: string;
_sqlParams: object[];
_maxSearchConditionID: number;
_conditions: {};
_hasPrimaryConditions: boolean;
_objectType: "search";
_dataTypes: _ZoteroTypes.Search.DataType;
name: string;
version: string | null;
synced: boolean;
conditions: { [id: number]: _ZoteroTypes.Search.ConditionType };
readonly treeViewID: string;
readonly treeViewImage: string;
loadFromRow(row: object): void;
_initSave(env: _ZoteroTypes.Search.EnvType): Promise<void>;
// _finalizeSave(env: Search.EnvType): Promise<boolean | number>;
clone(libraryID: number): Search;
_eraseData(env: _ZoteroTypes.Search.EnvType): Promise<void>;
addCondition(
condition: _ZoteroTypes.Search.Conditions,
operator: _ZoteroTypes.Search.Operator,
value: string | number,
required?: boolean,
): number;
addCondition(
condition: string,
operator: _ZoteroTypes.Search.Operator,
value?: string | number,
required?: boolean,
): number;
addCondition(condition: "blockStart" | "blockEnd"): number;
/**
* Sets scope of search to the results of the passed Search object
*/
setScope(searchObj: Search, includeChildren: boolean): void;
/**
* @param {Number} searchConditionID
* @param {String} condition
* @param {String} operator
* @param {String} value
* @param {Boolean} [required]
* @return {Promise}
*/
updateCondition(
searchConditionID: number,
condition: string,
operator: string,
value: string,
required: boolean,
): void;
removeCondition(searchConditionID: number): void;
/**
* Returns an array with 'condition', 'operator', 'value', 'required'
* for the given searchConditionID
*/
getCondition(searchConditionID: number): _ZoteroTypes.Search.ConditionType;
/**
* Returns an object of conditions/operator/value sets used in the search,
* indexed by searchConditionID
*/
getConditions(): { [id: number]: _ZoteroTypes.Search.ConditionType };
hasPostSearchFilter(): boolean;
/**
* Run the search and return an array of item ids for results
*
* @param {Boolean} [asTempTable=false]
* @return {Promise}
*/
search(asTempTable?: false): Promise<number[]>;
search(asTempTable: true): Promise<string>;
/**
* Populate the object's data from an API JSON data object
*
* If this object is identified (has an id or library/key), loadAll() must have been called.
*
* @param {Object} json
* @param {Object} [options]
* @param {Boolean} [options.strict = false] - Throw on unknown property
*/
fromJSON(json: object, options?: { strict: boolean }): void;
toJSON(option: object): object;
}
}
declare namespace _ZoteroTypes {
namespace Search {
type DataType = ["primaryData", "conditions"];
type ConditionType = {
id: number;
condition: Conditions;
mode: boolean;
operator: Operator;
value: string;
required: boolean;
};
type EnvType = {
options: Zotero.DataObject.SaveOptions;
transactionOptions: object;
isNew: boolean;
};
type Operator =
| "is"
| "isNot"
| "true"
| "false"
| "isInTheLast"
| "isBefore"
| "isAfter"
| "contains"
| "doesNotContain"
| "beginsWith"
| "isLessThan"
| "isGreaterThan"
| "any"
| "all"
| "true"
| "false";
// Zotero.SearchConditions.getStandardConditions().map((c) => `'${c.name}'`).join(" | ");
type Conditions =
| "numPages"
| "numberOfVolumes"
| "abstractNote"
| "anyField"
| "accessDate"
| "applicationNumber"
| "archive"
| "artworkSize"
| "assignee"
| "fulltextContent"
| "fileTypeID"
| "author"
| "authority"
| "bookAuthor"
| "callNumber"
| "childNote"
| "citationKey"
| "code"
| "codeNumber"
| "collection"
| "committee"
| "conferenceName"
| "country"
| "creator"
| "date"
| "dateAdded"
| "dateModified"
| "DOI"
| "edition"
| "editor"
| "extra"
| "filingDate"
| "history"
| "ISBN"
| "ISSN"
| "issue"
| "itemType"
| "journalAbbreviation"
| "language"
| "libraryCatalog"
| "archiveLocation"
| "medium"
| "meetingName"
| "note"
| "number"
| "pages"
| "place"
| "priorityNumbers"
| "programmingLanguage"
| "publicationTitle"
| "publisher"
| "references"
| "reporter"
| "rights"
| "runningTime"
| "scale"
| "section"
| "series"
| "seriesNumber"
| "seriesText"
| "seriesTitle"
| "session"
| "shortTitle"
| "status"
| "system"
| "tag"
| "title"
| "type"
| "url"
| "versionNumber"
| "volume"
| "deleted"
| "noChildren"
| "unfiled"
| "retracted"
| "publications"
| "feed"
| "includeParentsAndChildren"
| "includeParents"
| "includeChildren"
| "recursive"
| "joinMode"
| "quicksearch-titleCreatorYear"
| "quicksearch-titleCreatorYearNote"
| "quicksearch-fields"
| "quicksearch-everything"
| "quicksearch"
| "blockStart"
| "blockEnd"
| "collectionID"
| "savedSearchID"
| "savedSearch"
| "itemTypeID"
| "tagID"
| "lastName"
| "field"
| "datefield"
| "year"
| "numberfield"
| "libraryID"
| "key"
| "itemID"
| "annotationText"
| "annotationComment"
| "fulltextWord"
| "tempTable";
}
}