SYMBOL INDEX (15508 symbols across 1420 files) FILE: app/client/DefaultHooks.ts type IHooks (line 5) | interface IHooks { method maybeModifyLinkAttrs (line 20) | maybeModifyLinkAttrs(attrs: IAttrObj) { FILE: app/client/aclui/ACLColumnList.ts function aclColumnList (line 11) | function aclColumnList(colIds: Observable, validColIds: string... FILE: app/client/aclui/ACLFormulaEditor.ts type ACLFormulaOptions (line 12) | interface ACLFormulaOptions { function aclFormulaEditor (line 21) | function aclFormulaEditor(options: ACLFormulaOptions) { FILE: app/client/aclui/ACLMemoEditor.ts function aclMemoEditor (line 5) | function aclMemoEditor(obs: Observable, ...args: DomElementArg[]... FILE: app/client/aclui/ACLSelect.ts function aclSelect (line 11) | function aclSelect(obs: Observable, optionArray: MaybeObsArray & { id?: number, ... type UseCB (line 85) | type UseCB = (obs: BaseObservable) => T; type RuleStatus (line 89) | enum RuleStatus { type ISuggestionInfo (line 96) | interface ISuggestionInfo { type IAttrOption (line 103) | interface IAttrOption extends ISuggestionInfo { type IColTypeInfo (line 108) | interface IColTypeInfo extends ISuggestionInfo { class Suggestion (line 112) | class Suggestion implements ISuggestionWithSubAttrs { method constructor (line 113) | constructor(public value: string, private _info?: ISuggestionInfo) {} method example (line 114) | public get example() { method subAttributes (line 118) | public subAttributes(): ISuggestionWithSubAttrs[] { class AccessRules (line 129) | class AccessRules extends Disposable { method constructor (line 181) | constructor(public gristDoc: GristDoc) { method allTableIds (line 255) | public get allTableIds() { return Array.from(this._aclResources.keys()... method userAttrRules (line 256) | public get userAttrRules() { return this._userAttrRules; } method userAttrChoices (line 257) | public get userAttrChoices() { return this._userAttrChoices; } method getTableTitle (line 259) | public getTableTitle(tableId: string) { method update (line 268) | public async update() { method save (line 324) | public async save(): Promise { method buildDom (line 453) | public buildDom() { method _buildRulesDom (line 464) | public _buildRulesDom() { method _buildRuleProblemsDom (line 572) | public _buildRuleProblemsDom(ruleProblems: AclRuleProblem[]) { method getRules (line 595) | public getRules(): RuleRec[] { method removeTableRules (line 605) | public removeTableRules(tableRules: TableRules) { method removeUserAttributes (line 609) | public removeUserAttributes(userAttr: ObsUserAttributeRule) { method checkAclFormula (line 613) | public async checkAclFormula(text: string): Promise(...args: T[][]): T[] { function removeItem (line 2294) | function removeItem(observableArray: MutableObsArray, item: T): bo... function getChangedStatus (line 2303) | function getChangedStatus(value: boolean): RuleStatus { function getAclFormulaProperties (line 2307) | function getAclFormulaProperties(part?: RulePart): PredicateFormulaPrope... function filterRuleSet (line 2313) | function filterRuleSet(colIds: string[], ruleSet?: RuleSet): RuleSet | u... function filterRuleSets (line 2324) | function filterRuleSets(colIds: string[], ruleSets: RuleSet[]): RuleSet[] { function makeSuggestionExample (line 2328) | function makeSuggestionExample(value: unknown): string | undefined { function getColTypeInfo (line 2341) | function getColTypeInfo(colIds: string[], tableData?: TableData): IColTy... function getSampleRecord (line 2353) | function getSampleRecord(colIds: string[], tableData?: TableData): InfoV... FILE: app/client/aclui/PermissionsWidget.ts constant PERMISSION_BIT_ORDER (line 17) | const PERMISSION_BIT_ORDER = "RUCDS"; function permissionsWidget (line 24) | function permissionsWidget( function next (line 90) | function next(pvalue: PartialPermissionValue): PartialPermissionValue { function makePermissionSet (line 99) | function makePermissionSet(bits: PermissionKey[], makeValue: (bit: Permi... function tick (line 108) | function tick(show: boolean) { function psetDescription (line 113) | function psetDescription(permissionSet: PartialPermissionSet): string { function sortBits (line 136) | function sortBits(bits: PermissionKey[]) { FILE: app/client/apiconsole.ts function loadExternal (line 24) | function loadExternal() { type ParamValue (line 40) | type ParamValue = string | number | null; type Example (line 42) | interface Example { type JsonSpec (line 47) | interface JsonSpec { type SpecActions (line 50) | interface SpecActions { function applySpecActions (line 55) | function applySpecActions(cb: (specActions: SpecActions, jsonSpec: JsonS... function updateSpec (line 64) | function updateSpec(cb: (spec: JsonSpec) => JsonSpec) { function setExamples (line 74) | function setExamples(examplesArr: Example[], paramName: string) { function setParamValue (line 111) | function setParamValue(resolvedParam: any, value: ParamValue) { class ExtendedDocAPIImpl (line 143) | class ExtendedDocAPIImpl extends DocAPIImpl { method listTables (line 144) | public listTables(): Promise<{ tables: RecordWithStringId[] }> { method listColumns (line 148) | public listColumns(tableId: string, includeHidden = false): Promise<{ ... function wrapChangeParamByIdentity (line 153) | function wrapChangeParamByIdentity(appModel: AppModel, system: any, oriA... function gristPlugin (line 216) | function gristPlugin(appModel: AppModel, system: any) { function initialize (line 230) | function initialize(appModel: AppModel) { function requestInterceptor (line 302) | async function requestInterceptor(request: SwaggerUI.Request) { FILE: app/client/components/AceEditor.js function AceEditor (line 25) | function AceEditor(options) { FILE: app/client/components/AceEditorCompletions.ts type ICompletionOptions (line 6) | interface ICompletionOptions { function setupAceEditorCompletions (line 12) | function setupAceEditorCompletions(editor: Ace.Editor, options: IComplet... function initCustomCompleter (line 92) | function initCustomCompleter() { constant BASE_PADDING (line 187) | const BASE_PADDING = 8; constant MAX_RELATIVE_SHARED_PADDING (line 194) | const MAX_RELATIVE_SHARED_PADDING = 15; constant MAX_ABSOLUTE_SHARED_PADDING (line 196) | const MAX_ABSOLUTE_SHARED_PADDING = 40; type AceSuggestion (line 199) | interface AceSuggestion { function aceCompleterAddHelpLinks (line 224) | function aceCompleterAddHelpLinks(completer: any) { function customizeAceCompleterPopup (line 234) | function customizeAceCompleterPopup(completer: any, popup: any) { function retokenizeAceCompleterRow (line 252) | function retokenizeAceCompleterRow(rowData: AceSuggestion, tokens: Ace.T... function maybeAceCompleterLinkClick (line 331) | function maybeAceCompleterLinkClick(domEvent: Event) { FILE: app/client/components/ActionCounter.ts constant MAX_MEMORY_OF_COUNTED_ACTIONS (line 8) | const MAX_MEMORY_OF_COUNTED_ACTIONS = 250; constant MAX_COUNT (line 9) | const MAX_COUNT = 20; class ActionCounter (line 22) | class ActionCounter extends dispose.Disposable { method create (line 52) | public create(log: MinimalActionGroup[], docData: DocData) { method setMark (line 101) | public setMark(state?: DocState) { method setMarkToBaseAction (line 107) | public setMarkToBaseAction() { method pushAction (line 114) | public pushAction(action: MinimalActionGroup) { method _countAction (line 133) | private _countAction(action: MinimalActionGroup) { method _changeCount (line 137) | private _changeCount(delta: number, value?: number) { method _setCount (line 146) | private _setCount() { method _truncated (line 151) | private _truncated(value: number): number | "..." { FILE: app/client/components/ActionLog.ts type ActionGroupWithState (line 42) | interface ActionGroupWithState extends ActionGroup { type ActionContext (line 49) | type ActionContext = Record; class ActionLog (line 62) | class ActionLog extends dispose.Disposable implements IDomComponent { method create (line 80) | public create(options: { gristDoc: GristDoc | null }) { method buildDom (line 103) | public buildDom() { method getChangesSince (line 111) | public async getChangesSince(actionNum: number): Promise { method pushAction (line 121) | public pushAction(ag: ActionGroupWithState): void { method renderTabularDiffs (line 168) | public renderTabularDiffs(sum: ActionSummary, txt: string, ag?: Action... method _setupFilters (line 185) | private _setupFilters(ag: ActionGroupWithState, prev?: ActionGroupWith... method _hasSelectedTable (line 217) | private _hasSelectedTable(ag: ActionGroupWithState): boolean { method _buildLogDom (line 222) | private _buildLogDom() { method _loadActionSummaries (line 268) | private async _loadActionSummaries() { method constructor (line 294) | public constructor( method renderTabularDiffs (line 325) | public renderTabularDiffs(sum: ActionSummary, options: RenderTabularDiff... method toggleContext (line 378) | public async toggleContext(contextObs: ko.Observable, tab... method _renderCell (line 395) | private _renderCell(cell: CellDelta | string | null) { method _renderTableName (line 433) | private _renderTableName(name: string): string { method _renderSchemaChange (line 453) | private _renderSchemaChange(scope: string, pair: LabelDelta) { method _renderTableSchemaChanges (line 468) | private _renderTableSchemaChanges(sum: ActionSummary) { method _renderColumnSchemaChanges (line 476) | private _renderColumnSchemaChanges(sum: ActionSummary) { method _resetContext (line 485) | private async _resetContext(contextObs: ko.Observable, ta... method _setContext (line 490) | private async _setContext(contextObs: ko.Observable, tabl... method _naiveColumnOrder (line 499) | private _naiveColumnOrder(tableId: string, colIds: string[]) { class ActionLogPartInList (line 527) | class ActionLogPartInList extends ActionLogPart { method constructor (line 528) | public constructor( method showForTable (line 536) | public showForTable(tableName: string): boolean { method selectCell (line 540) | public async selectCell(rowId: number, colId: string, tableId: string)... method getContext (line 565) | public async getContext(): Promise { method _showForTable (line 587) | private _showForTable(tableName: string, ag?: ActionGroupWithState): b... function traceCell (line 599) | function traceCell(cell: { rowId: number, colId: string, tableId: string }, function showCell (line 645) | async function showCell(gristDoc: GristDoc, cell: { function computeContext (line 681) | async function computeContext(gristDoc: GristDoc, base: ActionSummary, i... function reportDeletedObject (line 711) | function reportDeletedObject(obj: DeletedObject, actionNum: number) { type DeletedObject (line 730) | interface DeletedObject { type RenderTabularDiffOptions (line 736) | interface RenderTabularDiffOptions { FILE: app/client/components/Banner.ts type BannerOptions (line 9) | interface BannerOptions { class Banner (line 71) | class Banner extends Disposable { method constructor (line 74) | constructor(private _options: BannerOptions) { method buildDom (line 78) | public buildDom() { method _buildContent (line 88) | private _buildContent() { method _buildButtons (line 99) | private _buildButtons() { method _buildCloseButton (line 106) | private _buildCloseButton() { method _buildExpandButton (line 113) | private _buildExpandButton() { function buildBannerMessage (line 123) | function buildBannerMessage(...domArgs: DomElementArg[]) { FILE: app/client/components/BaseView.ts type ViewOptions (line 58) | interface ViewOptions { class BaseView (line 75) | class BaseView extends DisposableWithEvents { method constructor (line 115) | constructor( method getSelection (line 383) | protected getSelection(): CopySelection { method selectedRows (line 392) | protected selectedRows(): number[] { method deleteRows (line 396) | protected deleteRows(rowIds: number[]) { method deleteRecords (line 402) | protected deleteRecords(source: unknown) { method setCursorPos (line 443) | public setCursorPos( method getLoadingDonePromise (line 462) | public async getLoadingDonePromise(): Promise { method activateEditorAtCursor (line 471) | public activateEditorAtCursor(options: BuildEditorOptions = {}): void { method _openDiscussionAtCursor (line 491) | private _openDiscussionAtCursor(text: CommentWithMentions | null) { method moveEditRowToCursor (line 515) | public moveEditRowToCursor(): DataRowModel { method getAnchorLinkForSection (line 522) | public getAnchorLinkForSection(sectionId: number): IGristUrlState { method copyLink (line 540) | protected async copyLink() { method filterByThisCellValue (line 546) | protected filterByThisCellValue() { method insertRow (line 575) | public insertRow(index?: number): Promise | undefined { method _setCursorPosImmediately (line 597) | private _setCursorPosImmediately(cursorPos: CursorPos, isFromLink: boo... method _getDefaultColValues (line 602) | private _getDefaultColValues() { method _enhanceAction (line 610) | private _enhanceAction(action: UserAction) { method prepTableActions (line 628) | protected prepTableActions(actions: UserAction[]) { method sendTableActions (line 640) | protected sendTableActions(actions: UserAction[], optDesc?: string) { method sendTableAction (line 648) | protected sendTableAction(action: UserAction, optDesc?: string) { method insertCurrentDate (line 658) | protected insertCurrentDate(withTime: boolean) { method _saveEditRowField (line 703) | private _saveEditRowField(editRowModel: DataRowModel, colName: string,... method copy (line 752) | protected copy(selection: CopySelection) { method cut (line 770) | protected cut(selection: CopySelection) { method sendPasteActions (line 786) | protected sendPasteActions(cutCallback: CutCallback | null, actions: U... method buildDom (line 807) | protected buildDom() { method buildTitleControls (line 815) | public buildTitleControls(): DomArg { method onTableLoaded (line 823) | protected onTableLoaded() { method onResize (line 839) | public onResize(): void { method onRowResize (line 846) | public onRowResize(rowModels: BaseRowModel[]): void { method onLinkFilterChange (line 852) | protected onLinkFilterChange() { method prepareToPrint (line 863) | public prepareToPrint(onOff: boolean): void { method getRenderedRowModel (line 872) | protected getRenderedRowModel(rowId: UIRowId): DataRowModel | undefined { method getLastDataRowIndex (line 879) | protected getLastDataRowIndex() { method createFilterMenu (line 887) | public createFilterMenu( method isFiltered (line 906) | protected isFiltered() { method scrollToCursor (line 916) | public async scrollToCursor(sync?: boolean): Promise { method _getRowInsertPos (line 925) | protected _getRowInsertPos(index: number, numInserts: number) { method _duplicateRows (line 934) | protected async _duplicateRows(): Promise { method viewSelectedRecordAsCard (line 981) | public viewSelectedRecordAsCard(): void { method isRecordCardDisabled (line 991) | public isRecordCardDisabled(): boolean { FILE: app/client/components/BaseView2.ts function isFileList (line 19) | function isFileList(value: unknown): value is File[] { function parsePasteForView (line 31) | async function parsePasteForView( function getDefaultColValues (line 136) | function getDefaultColValues(viewSection: ViewSectionRec): Record Datum; type Series (line 88) | interface Series { function getSeriesName (line 96) | function getSeriesName(series: Series, haveMultiple: boolean) { type Data (line 113) | type Data = Partial; type PlotData (line 117) | interface PlotData { type DataOptions (line 124) | interface DataOptions extends Data { type ChartFunc (line 135) | type ChartFunc = (series: Series[], options: ChartOptions, dataOptions?:... function dateGetter (line 139) | function dateGetter(getter: RowPropGetter): RowPropGetter { constant LIST_TYPES (line 152) | const LIST_TYPES = ["ChoiceList", "RefList"]; class ChartView (line 157) | class ChartView extends BaseView { method _sortSpec (line 167) | private get _sortSpec() { return this.viewSection.activeSortSpec.peek(... method constructor (line 169) | constructor(gristDoc: GristDoc, viewSectionModel: ViewSectionRec) { method prepareToPrint (line 207) | public prepareToPrint(onOff: boolean) { method onResize (line 211) | public onResize() { method onTableLoaded (line 215) | protected onTableLoaded() { method buildDom (line 220) | protected buildDom() { method _updateView (line 224) | private async _updateView() { method _resizeChart (line 321) | private _resizeChart() { method _isCompatibleSeries (line 331) | private _isCompatibleSeries(col: ColumnRec) { method _getPlotlyLayout (line 335) | private _getPlotlyLayout(options: ChartOptions): Partial { method _getPlotlyTheme (line 358) | private _getPlotlyTheme(): Partial { function groupSeries (line 400) | function groupSeries(groupColumn: T[], valueSeries: Ser... function extractErrorBars (line 438) | function extractErrorBars(series: Series[], options: ChartOptions): Map<... class ChartConfig (line 461) | class ChartConfig extends GrainJSDisposable { method constructor (line 567) | constructor(private _gristDoc: GristDoc, private _section: ViewSection... method _optionsObj (line 572) | private get _optionsObj() { return this._section.optionsObj; } method buildDom (line 574) | public buildDom(): DomContents { method _setXAxis (line 706) | private async _setXAxis(colId: string) { method _setGroupDataColumn (line 759) | private async _setGroupDataColumn(colId: string) { method _getColumns (line 806) | private _getColumns(use: UseCB = unwrap) { method _getSummarySourceColumns (line 811) | private _getSummarySourceColumns(use: UseCB = unwrap) { method _buildField (line 817) | private _buildField(col: IField) { method _buildYAxis (line 829) | private _buildYAxis(): DomContents { method _isCompatibleSeries (line 851) | private _isCompatibleSeries(col: ColumnRec, use: UseCB = unwrap) { method _setAggregation (line 855) | private async _setAggregation(val: boolean) { method _doAggregation (line 874) | private async _doAggregation(): Promise { method _undoAggregation (line 883) | private async _undoAggregation() { method _isSummaryTable (line 889) | private _isSummaryTable(use: UseCB = unwrap) { method _toggleSummaryTable (line 896) | private async _toggleSummaryTable(): Promise { method _setGroupByColumns (line 906) | private async _setGroupByColumns(groupByCols: string[]) { method _ensureValidLinkingIfAny (line 915) | private _ensureValidLinkingIfAny(pageWidget: IPageWidget) { method _getColumnIds (line 924) | private _getColumnIds(colIds: string[]) { function cssNumberWithSpinnerRow (line 938) | function cssNumberWithSpinnerRow(label: string, value: Computed,... function cssSlideRow (line 986) | function cssSlideRow(label: string, value: Computed, save: (val:... function cssCheckboxRow (line 1035) | function cssCheckboxRow(label: string, value: KoSaveableObservable, ..... function basicPlot (line 1046) | function basicPlot(series: Series[], options: ChartOptions, dataOptions:... method bar (line 1098) | bar(series: Series[], options: ChartOptions): PlotData { method line (line 1109) | line(series: Series[], options: ChartOptions): PlotData { method area (line 1118) | area(series: Series[], options: ChartOptions): PlotData { method scatter (line 1126) | scatter(series: Series[], options: ChartOptions): PlotData { method pie (line 1135) | pie(series: Series[], _options: ChartOptions, dataOptions: DataOptions =... method donut (line 1160) | donut(series: Series[], options: ChartOptions, dataOptions: DataOptions ... method kaplan_meier (line 1191) | kaplan_meier(series: Series[]): PlotData { function trimNonNumericData (line 1216) | function trimNonNumericData(series: Series[]): void { function replaceEmptyLabels (line 1231) | function replaceEmptyLabels(values: Datum[]): Datum[] { function groupIntoSeries (line 1237) | function groupIntoSeries(categoryList: Datum[], valueList: Datum[]): Ser... function kaplanMeierPlot (line 1247) | function kaplanMeierPlot(survivalValues: number[]): { x: number, y: numb... FILE: app/client/components/ClientScope.ts class ClientScope (line 10) | class ClientScope extends dispose.Disposable { method create (line 13) | public create() { method servePlugin (line 21) | public servePlugin(pluginId: string, rpc: Rpc) { method _implementStorage (line 36) | private _implementStorage(): Storage { FILE: app/client/components/Clipboard.ts type PasteObj (line 45) | interface PasteObj { type CutCallback (line 53) | type CutCallback = () => DocAction | null; class Clipboard (line 55) | class Clipboard extends Disposable { method contextMenuCopy (line 57) | contextMenuCopy(this: Clipboard) { this._doContextMenuCopy(); } method contextMenuCopyWithHeaders (line 58) | contextMenuCopyWithHeaders(this: Clipboard) { this._doContextMenuCopyW... method contextMenuCut (line 59) | contextMenuCut(this: Clipboard) { this._doContextMenuCut(); } method contextMenuPaste (line 60) | contextMenuPaste(this: Clipboard) { this._doContextMenuPaste().catch(r... method allowFocus (line 79) | public static allowFocus(elem: Element): boolean { method constructor (line 102) | constructor(private _app: App) { method _onCopy (line 151) | private _onCopy(event: ClipboardEvent, elem: HTMLTextAreaElement) { method _doContextMenuCopy (line 157) | private _doContextMenuCopy() { method _doContextMenuCopyWithHeaders (line 162) | private _doContextMenuCopyWithHeaders() { method _onCut (line 167) | private _onCut(event: ClipboardEvent, elem: HTMLTextAreaElement) { method _doContextMenuCut (line 173) | private _doContextMenuCut() { method _setCBdata (line 178) | private _setCBdata(pasteObj: PasteObj, clipboardData: DataTransfer) { method _copyToClipboard (line 189) | private async _copyToClipboard(pasteObj: PasteObj, action: "cut" | "co... method _setCutCallback (line 222) | private _setCutCallback(pasteObj: PasteObj, cutData: string) { method _onPaste (line 236) | private _onPaste(event: ClipboardEvent, elem: HTMLTextAreaElement) { method _doContextMenuPaste (line 250) | private async _doContextMenuPaste() { method _doPaste (line 265) | private _doPaste(pasteData: PasteData, plainText: string) { constant FOCUS_TARGET_TAGS (line 281) | const FOCUS_TARGET_TAGS = new Set([ function getPasteData (line 295) | function getPasteData(plainText: string, htmlText: string, fileItems: Fi... function getTextFromClipboardItem (line 316) | async function getTextFromClipboardItem(clipboardItem: ClipboardItem | u... function getFilesFromClipboardItems (line 330) | async function getFilesFromClipboardItems(clipboardItems: ClipboardItem[... function showUnavailableMenuCommandModal (line 343) | function showUnavailableMenuCommandModal(action: "cut" | "copy" | "paste... FILE: app/client/components/CodeEditorPanel.ts class CodeEditorPanel (line 17) | class CodeEditorPanel extends DisposableWithEvents { method constructor (line 20) | constructor(private _gristDoc: GristDoc) { method buildDom (line 26) | public buildDom() { method _onSchemaUpdateAction (line 53) | private async _onSchemaUpdateAction() { FILE: app/client/components/ColumnTransform.ts type AceEditor (line 24) | type AceEditor = any; class ColumnTransform (line 30) | class ColumnTransform extends Disposable { method constructor (line 54) | constructor(protected gristDoc: GristDoc, private _fieldBuilder: Field... method buildDom (line 80) | public buildDom() { method finalize (line 84) | public async finalize(): Promise { method buildEditorDom (line 92) | protected buildEditorDom(optInit?: string) { method prepare (line 118) | public async prepare(optColType?: string) { method _doPrepare (line 138) | private async _doPrepare(colType: string) { method _shouldIncludeInBundle (line 154) | private _shouldIncludeInBundle(actions: UserAction[]) { method addTransformColumn (line 178) | protected async addTransformColumn(colType: string): Promise { method postAddTransformColumn (line 200) | protected postAddTransformColumn(): void { method cancel (line 204) | public async cancel(): Promise { method execute (line 209) | protected async execute(): Promise { method _doFinalize (line 216) | private async _doFinalize(): Promise { method executeActions (line 248) | protected executeActions(): UserAction[] { method cleanup (line 268) | protected cleanup() { method getIdentityFormula (line 272) | protected getIdentityFormula() { method _setTransforming (line 276) | protected _setTransforming(bool: boolean) { method isFinalizing (line 281) | protected isFinalizing(): boolean { method preview (line 285) | protected preview() { method previewActions (line 293) | protected previewActions(): UserAction[] { FILE: app/client/components/Comm.ts type CommRequestInFlight (line 40) | interface CommRequestInFlight { function isCommResponseError (line 52) | function isCommResponseError(msg: CommResponse | CommResponseError): msg... class Comm (line 60) | class Comm extends dispose.Disposable implements GristServerAPI, DocList... method create (line 93) | public create(reportError?: (err: Error) => void) { method initialize (line 120) | public initialize(docId: string | null): GristWSConnection { method listConnections (line 140) | public listConnections(): Map { method openDoc (line 150) | public async openDoc(docName: string, options?: OpenDocOptions): Promi... method useDocConnection (line 159) | public useDocConnection(docId: string): GristWSConnection { method releaseDocConnection (line 172) | public releaseDocConnection(docId: string): void { method userActionsCollect (line 190) | public userActionsCollect(optYesNo?: boolean): void { method userActionsFetchAndReset (line 197) | public userActionsFetchAndReset(): UserAction[] { method addUserActions (line 204) | public addUserActions(actions: UserAction[]) { method getDocWorkerUrl (line 214) | public getDocWorkerUrl(docId: string | null): string { method hasActiveRequests (line 221) | public hasActiveRequests(): boolean { method _makeRequest (line 239) | public async _makeRequest(clientId: string | null, docId: string | null, method _connection (line 273) | private _connection(docId: string | null): GristWSConnection { method _rejectRequests (line 294) | private _rejectRequests(docId: string | null) { method _onServerMessage (line 313) | private _onServerMessage(docId: string | null, message: CommResponseBa... method _resendPendingRequest (line 380) | private _resendPendingRequest(reqId: number, r: CommRequestInFlight) { method _wrapMethod (line 401) | private _wrapMethod(name: Name): Gr... function reqMatchesConnection (line 408) | function reqMatchesConnection(reqDocId: string | null, connDocId: string... FILE: app/client/components/CopySelection.ts class CopySelection (line 15) | class CopySelection { method constructor (line 28) | constructor(tableData: TableData, public readonly rowIds: UIRowId[], p... method isCellSelected (line 49) | public isCellSelected(rowId: UIRowId, colId: string): boolean { method onlyAddRowSelected (line 53) | public onlyAddRowSelected(): boolean { FILE: app/client/components/CoreBanners.ts function buildHomeBanners (line 8) | function buildHomeBanners(app: AppModel) { function buildDocumentBanners (line 12) | function buildDocumentBanners(docPageModel: DocPageModel) { FILE: app/client/components/Cursor.ts function nullAsUndefined (line 15) | function nullAsUndefined(value: T | null | undefined): T | undefined { type SequenceNum (line 24) | type SequenceNum = number; function nextSequenceNum (line 27) | function nextSequenceNum() { // First call to this func should return 1 class Cursor (line 45) | class Cursor extends Disposable { method cursorUp (line 52) | cursorUp(this: Cursor) { this.rowIndex(this.rowIndex()! - 1); } method cursorDown (line 53) | cursorDown(this: Cursor) { this.rowIndex(this.rowIndex()! + 1); } method cursorLeft (line 54) | cursorLeft(this: Cursor) { this.fieldIndex(this.fieldIndex() - 1); } method cursorRight (line 55) | cursorRight(this: Cursor) { this.fieldIndex(this.fieldIndex() + 1); } method skipUp (line 56) | skipUp(this: Cursor) { this.rowIndex(this.rowIndex()! - 5); } method skipDown (line 57) | skipDown(this: Cursor) { this.rowIndex(this.rowIndex()! + 5); } method pageUp (line 58) | pageUp(this: Cursor) { this.rowIndex(this.rowIndex()! - 20); } method pageDown (line 59) | pageDown(this: Cursor) { this.rowIndex(this.rowIndex()! + 20); } method prevField (line 60) | prevField(this: Cursor) { this.fieldIndex(this.fieldIndex() - 1); } method nextField (line 61) | nextField(this: Cursor) { this.fieldIndex(this.fieldIndex() + 1); } method moveToFirstRecord (line 62) | moveToFirstRecord(this: Cursor) { this.rowIndex(0); } method moveToLastRecord (line 63) | moveToLastRecord(this: Cursor) { this.rowIndex(Infinity); } method moveToFirstField (line 64) | moveToFirstField(this: Cursor) { this.fieldIndex(0); } method moveToLastField (line 65) | moveToLastField(this: Cursor) { this.fieldIndex(Infinity); } method constructor (line 93) | constructor(baseView: BaseView, optCursorPos?: CursorPos) { method getCursorPos (line 153) | public getCursorPos(): CursorPos { method setCursorPos (line 173) | public setCursorPos(cursorPos: CursorPos, isFromLink: boolean = false,... method setLive (line 216) | public setLive(isLive: boolean): void { method _cursorEdited (line 224) | private _cursorEdited(): void { method _getNewRowIndexForCursorPos (line 237) | private _getNewRowIndexForCursorPos(cursorPos: CursorPos): number | nu... FILE: app/client/components/CursorMonitor.ts type ViewCursorPos (line 12) | type ViewCursorPos = CursorPos & { viewId: ViewDocPage }; class CursorMonitor (line 19) | class CursorMonitor extends Disposable { method constructor (line 29) | constructor( method clear (line 51) | public clear() { method _whenCursorHasChangedStoreInMemory (line 55) | private _whenCursorHasChangedStoreInMemory(doc: GristDoc) { method _whenDocumentLoadsRestorePosition (line 71) | private _whenDocumentLoadsRestorePosition(doc: GristDoc) { method _doRestorePosition (line 90) | private async _doRestorePosition(doc: GristDoc) { method _abortRestore (line 111) | private _abortRestore() { method _storePosition (line 116) | private _storePosition(pos: ViewCursorPos) { method _readPosition (line 120) | private _readPosition(view: IDocPage) { class StorageWrapper (line 131) | class StorageWrapper { method constructor (line 132) | constructor(private _storage = getStorage()) { method update (line 136) | public update(docId: string, position: ViewCursorPos): void { method clear (line 146) | public clear(docId: string): void { method read (line 151) | public read(docId: string): { docId: string; position: ViewCursorPos; ... method _key (line 158) | protected _key(docId: string) { function oneTimeListener (line 163) | function oneTimeListener(obs: Observable, handler: (value: T) => a... FILE: app/client/components/CustomCalendarView.ts class CustomCalendarView (line 4) | class CustomCalendarView extends CustomView { method getBuiltInSettings (line 5) | protected getBuiltInSettings(): CustomViewSettings { FILE: app/client/components/CustomView.ts type CustomViewSettings (line 43) | interface CustomViewSettings { class CustomView (line 56) | class CustomView extends BaseView { method viewAsCard (line 59) | async viewAsCard(event: Event) { method openWidgetConfiguration (line 74) | async openWidgetConfiguration(this: CustomView) { method viewAsCard (line 87) | async viewAsCard(event: Event) { method constructor (line 114) | constructor(gristDoc: GristDoc, viewSectionModel: ViewSectionRec) { method triggerPrint (line 166) | public async triggerPrint() { method getBuiltInSettings (line 172) | protected getBuiltInSettings(): CustomViewSettings { method _updatePluginInstance (line 180) | private _updatePluginInstance() { method _updateCustomSection (line 197) | private _updateCustomSection() { method _buildDom (line 212) | private _buildDom(): HTMLElement { method _promptAccess (line 291) | private _promptAccess(access: AccessLevel) { method _buildIFrame (line 298) | private _buildIFrame(options: { function buildNotification (line 380) | function buildNotification(...args: any[]) { function onFrameFocus (line 393) | function onFrameFocus(frame: HTMLIFrameElement, handler: () => void) { FILE: app/client/components/DataTables.ts constant DATA_TABLES_TOOLTIP_KEY (line 25) | const DATA_TABLES_TOOLTIP_KEY = "dataTablesTooltip"; class DataTables (line 27) | class DataTables extends Disposable { method constructor (line 39) | constructor(private _gristDoc: GristDoc) { method buildDom (line 49) | public buildDom() { method _tableTitle (line 135) | private _tableTitle(table: TableRec, isEditing: Observable) { method _menuItems (line 165) | private _menuItems(table: TableRec, isEditingName: Observable) { method _duplicateTable (line 221) | private _duplicateTable(r: TableRec) { method _removeTable (line 228) | private _removeTable(r: TableRec) { method _editRecordCard (line 239) | private _editRecordCard(r: TableRec) { method _enableRecordCard (line 249) | private async _enableRecordCard(r: TableRec) { method _disableRecordCard (line 253) | private async _disableRecordCard(r: TableRec) { method _tableRows (line 257) | private _tableRows(table: TableRec) { FILE: app/client/components/DetailView.ts class DetailView (line 41) | class DetailView extends BaseView { method constructor (line 54) | constructor(gristDoc: GristDoc, viewSectionModel: ViewSectionRec) { method onTableLoaded (line 164) | protected onTableLoaded() { method _updateFloatingRow (line 174) | protected _updateFloatingRow() { method domToRowModel (line 220) | public domToRowModel(elem: Element, elemType: ElemType): DataRowModel ... method domToColModel (line 221) | public domToColModel(elem: Element, elemType: ElemType): DataRowModel ... method selectedRows (line 223) | protected selectedRows() { method deleteRows (line 230) | protected async deleteRows(rowIds: number[]) { method paste (line 250) | protected async paste(data: PasteData, cutCallback: CutCallback | null) { method buildCardContextMenu (line 277) | protected buildCardContextMenu(row: DataRowModel) { method buildFieldContextMenu (line 282) | protected buildFieldContextMenu() { method buildFieldDom (line 293) | protected buildFieldDom(field: RecordLayout.NewField | ViewFieldRec, r... method buildDom (line 345) | protected buildDom() { method buildTitleControls (line 399) | public override buildTitleControls() { method onNewRecordRequest (line 453) | public override onNewRecordRequest() { method onResize (line 458) | public override onResize() { method onRowResize (line 465) | public override onRowResize(rowModels: BaseRowModel[]): void { method makeRecord (line 472) | protected makeRecord(record: DataRowModel) { method getRenderedRowModel (line 494) | protected override getRenderedRowModel(rowId: UIRowId) { method _isAddRow (line 506) | protected _isAddRow(index: number | null = this.cursor.rowIndex()) { method scrollToCursor (line 510) | public async scrollToCursor(sync: boolean = true): Promise { method _duplicateRows (line 515) | protected async _duplicateRows(): Promise { method _canSingleClick (line 524) | protected _canSingleClick(field: ViewFieldRec) { method _clearCardFields (line 541) | protected _clearCardFields() { method _hideCardFields (line 558) | protected _hideCardFields() { method _clearSelection (line 568) | protected _clearSelection() { method _clearCopySelection (line 573) | protected _clearCopySelection() { method _getCardContextMenuOptions (line 577) | protected _getCardContextMenuOptions(row: DataRowModel) { method _getFieldContextMenuOptions (line 594) | protected _getFieldContextMenuOptions() { FILE: app/client/components/DocComm.ts constant SLOW_NOTIFICATION_TIMEOUT_MS (line 13) | const SLOW_NOTIFICATION_TIMEOUT_MS = 1000; class DocComm (line 19) | class DocComm extends Disposable implements ActiveDocAPI { method constructor (line 69) | constructor(private _comm: Comm, openResponse: OpenLocalDocResult, pri... method getUrlParams (line 91) | public getUrlParams(): { clientId: string, docFD: number } { method docUrl (line 97) | public docUrl(path: string) { method docWorkerUrl (line 103) | public get docWorkerUrl() { method isActionFromThisDoc (line 108) | public isActionFromThisDoc(message: CommMessage): boolean { method applyUserActions (line 115) | public applyUserActions(actions: UserAction[], options?: ApplyUAOption... method closeDoc (line 124) | public closeDoc(): Promise { method forkAndUpdateUrl (line 133) | public async forkAndUpdateUrl(): Promise { method _shutdown (line 138) | private async _shutdown() { method _setOpenResponse (line 160) | private _setOpenResponse(openResponse: OpenLocalDocResult) { method _wrapMethod (line 166) | private _wrapMethod(name: Name): Acti... method _callMethod (line 170) | private async _callMethod(name: keyof ActiveDocAPI, ...args: any[]): P... method _doCallMethod (line 174) | private async _doCallMethod(name: keyof ActiveDocAPI, ...args: any[]):... method _callDocMethod (line 194) | private _callDocMethod(name: keyof ActiveDocAPI, ...args: any[]): Prom... method _doForkDoc (line 198) | private async _doForkDoc(): Promise { FILE: app/client/components/DocumentUsage.ts constant DEFAULT_MAX_ROWS (line 30) | const DEFAULT_MAX_ROWS = deploymentType == "saas" ? 20000 : 150000; constant DEFAULT_MAX_DATA_SIZE (line 34) | const DEFAULT_MAX_DATA_SIZE = DEFAULT_MAX_ROWS * 2 * 1024; constant DEFAULT_MAX_ATTACHMENTS_SIZE (line 37) | const DEFAULT_MAX_ATTACHMENTS_SIZE = 1 * 1024 * 1024 * 1024; class DocumentUsage (line 42) | class DocumentUsage extends Disposable { method constructor (line 139) | constructor(private _docPageModel: DocPageModel) { method buildDom (line 143) | public buildDom() { method _buildMessage (line 155) | private _buildMessage() { method _buildMetrics (line 193) | private _buildMetrics() { function buildLimitStatusMessage (line 211) | function buildLimitStatusMessage( function buildUpgradeMessage (line 255) | function buildUpgradeMessage( function buildUpgradeLink (line 273) | function buildUpgradeLink(linkText: string, onClick: () => void) { function buildRawDataPageLink (line 277) | function buildRawDataPageLink(linkText: string) { type MetricOptions (line 281) | interface MetricOptions { function buildUsageMetric (line 300) | function buildUsageMetric(options: MetricOptions, ...domArgs: DomElement... function buildUsageProgressBar (line 313) | function buildUsageProgressBar(options: MetricOptions) { function buildMessage (line 352) | function buildMessage(message: DomContents) { FILE: app/client/components/Drafts.ts class Drafts (line 28) | class Drafts extends Disposable { method constructor (line 29) | constructor( type Cursor (line 143) | interface Cursor { type Editor (line 150) | interface Editor { type Notification (line 168) | interface Notification { type Storage (line 183) | interface Storage { type Tooltip (line 198) | interface Tooltip { type State (line 213) | interface State { type StateChanged (line 223) | interface StateChanged extends State { class CursorAdapter (line 231) | class CursorAdapter extends Disposable implements Cursor { method constructor (line 232) | constructor(private _doc: GristDoc) { method goToCell (line 236) | public async goToCell(pos: CellPosition): Promise { class StorageAdapter (line 241) | class StorageAdapter extends Disposable implements Storage { method get (line 243) | public get(): State | null { method save (line 247) | public save(ev: State) { method hasDraftFor (line 251) | public hasDraftFor(position: CellPosition): boolean { method clear (line 259) | public clear(): void { function showUndoDiscardNotification (line 267) | function showUndoDiscardNotification(doc: GristDoc, onClick: () => void) { class NotificationAdapter (line 280) | class NotificationAdapter extends Disposable implements Notification { method constructor (line 286) | constructor(private _doc: GristDoc) { method close (line 292) | public close(): void { method showUndoDiscard (line 297) | public showUndoDiscard() { class TooltipAdapter (line 312) | class TooltipAdapter extends Disposable implements Tooltip { method constructor (line 319) | constructor(private _doc: GristDoc) { method scheduleClose (line 329) | public scheduleClose(): void { method showContinueDraft (line 338) | public showContinueDraft(): void { method close (line 354) | public close(): void { class EditorAdapter (line 361) | class EditorAdapter extends Disposable implements Editor { method constructor (line 369) | constructor(private _doc: GristDoc) { method setState (line 413) | public setState(state: any): void { method activate (line 418) | public async activate() { function cellTooltip (line 438) | function cellTooltip(clb: () => any) { function discardNotification (line 458) | function discardNotification(...args: IDomArgs>) { function makeWhen (line 470) | function makeWhen(owner: IDisposableOwner) { type TypedEmitter (line 477) | interface TypedEmitter { type Signal (line 481) | interface Signal { type EmitterType (line 485) | type EmitterType = T extends TypedEmitter ? TypedEmitter ... type EmitterHandler (line 486) | type EmitterHandler = T extends TypedEmitter ? ((e: E) => an... FILE: app/client/components/DropdownConditionConfig.ts class DropdownConditionConfig (line 24) | class DropdownConditionConfig extends Disposable { method constructor (line 106) | constructor(private _field: ViewFieldRec, private _gristDoc: GristDoc) { method buildDom (line 114) | public buildDom() { method _getAutocompleteSuggestions (line 172) | private _getAutocompleteSuggestions(): ISuggestionWithValue[] { function getUserCompletions (line 196) | function getUserCompletions(user: UserInfo) { FILE: app/client/components/DropdownConditionEditor.ts type BuildDropdownConditionEditorOptions (line 25) | interface BuildDropdownConditionEditorOptions { function buildDropdownConditionEditor (line 46) | function buildDropdownConditionEditor( function openDropdownConditionEditor (line 70) | function openDropdownConditionEditor(owner: IDisposableOwner, options: { type DropdownConditionEditorOptions (line 105) | interface DropdownConditionEditorOptions { class DropdownConditionEditor (line 112) | class DropdownConditionEditor extends Disposable { method constructor (line 119) | constructor(private _options: DropdownConditionEditorOptions) { method attach (line 155) | public attach(cellElem: Element): void { method getValue (line 167) | public getValue(): string { method blur (line 171) | public blur() { method _updateEditorPlaceholder (line 175) | private _updateEditorPlaceholder() { method _calcSize (line 190) | private _calcSize(elem: HTMLElement, desiredElemSize: ISize) { FILE: app/client/components/EditorMonitor.ts class EditorMonitor (line 15) | class EditorMonitor extends Disposable { method constructor (line 20) | constructor( method monitorEditor (line 46) | public monitorEditor(editor: FieldEditor) { method _listenToReload (line 67) | private async _listenToReload(doc: GristDoc) { method _doRestorePosition (line 85) | private async _doRestorePosition(doc: GristDoc) { function typedListener (line 109) | function typedListener(owner: IDisposableOwner) { type EditorState (line 116) | type EditorState = any; type LastEditData (line 119) | interface LastEditData { class EditMemoryStorage (line 127) | class EditMemoryStorage { method constructor (line 131) | constructor(private _key: string, private _storage = getStorage()) { method updateValue (line 134) | public updateValue(pos: CellPosition, value: EditorState): void { method readValue (line 139) | public readValue(): LastEditData | null { method clear (line 144) | public clear(): void { method timestamp (line 149) | public timestamp(): number { method _storageKey (line 153) | protected _storageKey() { method load (line 157) | protected load() { method save (line 178) | protected save(): void { FILE: app/client/components/ExternalAttachmentBanner.ts type ShowExternalAttachmentBannerPrefer (line 14) | interface ShowExternalAttachmentBannerPrefer { class ExternalAttachmentBanner (line 19) | class ExternalAttachmentBanner extends Disposable { method constructor (line 23) | constructor(private _docPageModel: DocPageModel) { method buildDom (line 39) | public buildDom() { function getExternalStorageRecommendation (line 77) | function getExternalStorageRecommendation() { FILE: app/client/components/FormRenderer.ts type FormLayoutNode (line 36) | interface FormLayoutNode { type FormLayoutNodeType (line 55) | type FormLayoutNodeType = type FormRendererContext (line 70) | interface FormRendererContext { function cleanFormLayoutSpec (line 86) | function cleanFormLayoutSpec( method new (line 118) | public static new( method constructor (line 129) | constructor( method reset (line 144) | public reset() { class LabelRenderer (line 149) | class LabelRenderer extends FormRenderer { method render (line 150) | public render() { class ParagraphRenderer (line 155) | class ParagraphRenderer extends FormRenderer { method render (line 156) | public render() { class SectionRenderer (line 164) | class SectionRenderer extends FormRenderer { method render (line 165) | public render() { class ColumnsRenderer (line 172) | class ColumnsRenderer extends FormRenderer { method render (line 173) | public render() { method _getColumnsCount (line 180) | private _getColumnsCount() { class SubmitRenderer (line 185) | class SubmitRenderer extends FormRenderer { method render (line 186) | public render() { class PlaceholderRenderer (line 228) | class PlaceholderRenderer extends FormRenderer { method render (line 229) | public render() { class LayoutRenderer (line 234) | class LayoutRenderer extends FormRenderer { method render (line 235) | public render() { class FieldRenderer (line 240) | class FieldRenderer extends FormRenderer { method constructor (line 243) | public constructor(layoutNode: FormLayoutNode, context: FormRendererCo... method render (line 252) | public render() { method reset (line 256) | public reset() { method constructor (line 262) | public constructor(protected field: FormField, protected context: FormRe... method render (line 266) | public render() { method name (line 275) | public name() { method id (line 279) | public id() { method label (line 283) | public label(): HTMLElement { method fieldDomAttributes (line 299) | public fieldDomAttributes(): IAttrObj { method getInitialValue (line 303) | protected getInitialValue(): string | null { method getInitialValueList (line 312) | protected getInitialValueList(): string[] { class BaseTextRenderer (line 322) | class BaseTextRenderer extends BaseFieldRenderer { method input (line 329) | public input() { method resetInput (line 340) | public resetInput(): void { method _renderSingleLineInput (line 344) | private _renderSingleLineInput() { method _renderMultiLineInput (line 357) | private _renderMultiLineInput() { class TextRenderer (line 370) | class TextRenderer extends BaseTextRenderer { method label (line 373) | public label() { method input (line 389) | public input(): HTMLTextAreaElement | HTMLInputElement { class NumericRenderer (line 406) | class NumericRenderer extends BaseFieldRenderer { method input (line 413) | public input() { method resetInput (line 421) | public resetInput(): void { method getInitialNumericValue (line 426) | protected getInitialNumericValue(): number | "" { method _renderTextInput (line 431) | private _renderTextInput() { method _renderSpinnerInput (line 444) | private _renderSpinnerInput() { class DateRenderer (line 462) | class DateRenderer extends BaseTextRenderer { class DateTimeRenderer (line 466) | class DateTimeRenderer extends BaseTextRenderer { class ChoiceRenderer (line 472) | class ChoiceRenderer extends BaseFieldRenderer { method constructor (line 485) | public constructor(field: FormField, context: FormRendererContext) { method fieldDomAttributes (line 505) | public fieldDomAttributes() { method input (line 515) | public input() { method resetInput (line 523) | public resetInput() { method getInitialValue (line 531) | protected override getInitialValue() { method _renderSelectInput (line 536) | private _renderSelectInput() { method _renderRadioInput (line 595) | private _renderRadioInput() { method _maybeOpenSearchSelect (line 620) | private _maybeOpenSearchSelect(ev: KeyboardEvent) { class BoolRenderer (line 631) | class BoolRenderer extends BaseFieldRenderer { method render (line 637) | public render() { method input (line 643) | public input() { method resetInput (line 651) | public resetInput(): void { method _renderSwitchInput (line 655) | private _renderSwitchInput() { method _renderCheckboxInput (line 668) | private _renderCheckboxInput() { class ChoiceListRenderer (line 689) | class ChoiceListRenderer extends BaseFieldRenderer { method constructor (line 697) | public constructor(field: FormField, context: FormRendererContext) { method fieldDomAttributes (line 715) | public fieldDomAttributes() { method input (line 722) | public input() { method resetInput (line 747) | public resetInput(): void { class RefListRenderer (line 755) | class RefListRenderer extends BaseFieldRenderer { method constructor (line 764) | public constructor(field: FormField, context: FormRendererContext) { method fieldDomAttributes (line 779) | public fieldDomAttributes() { method input (line 786) | public input() { method resetInput (line 812) | public resetInput(): void { class RefRenderer (line 820) | class RefRenderer extends BaseFieldRenderer { method constructor (line 834) | public constructor(field: FormField, context: FormRendererContext) { method fieldDomAttributes (line 852) | public fieldDomAttributes() { method input (line 862) | public input() { method resetInput (line 870) | public resetInput(): void { method getInitialValue (line 879) | protected override getInitialValue() { method _renderSelectInput (line 885) | private _renderSelectInput() { method _renderRadioInput (line 956) | private _renderRadioInput() { method _maybeOpenSearchSelect (line 981) | private _maybeOpenSearchSelect(ev: KeyboardEvent) { class AttachmentsRenderer (line 992) | class AttachmentsRenderer extends BaseFieldRenderer { method input (line 998) | public input() { method resetInput (line 1013) | public resetInput(): void { function preventSubmitOnEnter (line 1046) | function preventSubmitOnEnter() { function validateRequiredLists (line 1061) | function validateRequiredLists() { function sortChoicesInPlace (line 1083) | function sortChoicesInPlace( FILE: app/client/components/Forms/Columns.ts class ColumnsModel (line 20) | class ColumnsModel extends BoxModel { method removeChild (line 23) | public removeChild(box: BoxModel) { method accept (line 36) | public accept(dropped: FormLayoutNode): BoxModel { method render (line 52) | public render(...args: IDomArgs): HTMLElement { method deleteSelf (line 102) | public async deleteSelf(): Promise { class PlaceholderModel (line 128) | class PlaceholderModel extends BoxModel { method render (line 129) | public render(...args: IDomArgs): HTMLElement { function Placeholder (line 238) | function Placeholder(): FormLayoutNode { function Columns (line 242) | function Columns(): FormLayoutNode { FILE: app/client/components/Forms/Editor.ts type Props (line 16) | interface Props { function buildEditor (line 49) | function buildEditor(props: Props, ...args: IDomArgs) { FILE: app/client/components/Forms/Field.ts class FieldModel (line 55) | class FieldModel extends BoxModel { method leaf (line 87) | public get leaf() { method constructor (line 101) | constructor(box: FormLayoutNode, parent: BoxModel | null, view: FormVi... method render (line 122) | public override render(...args: IDomArgs): HTMLElement { method deleteSelf (line 160) | public async deleteSelf() { method constructor (line 180) | constructor(public model: FieldModel) { method buildDom (line 184) | public buildDom(props: { method renderLabel (line 201) | protected renderLabel(props: { class TextModel (line 290) | class TextModel extends Question { method renderInput (line 301) | public renderInput() { method _renderSingleLineInput (line 314) | private _renderSingleLineInput() { method _renderMultiLineInput (line 321) | private _renderMultiLineInput() { class NumericModel (line 330) | class NumericModel extends Question { method renderInput (line 336) | public renderInput() { method _renderTextInput (line 349) | private _renderTextInput() { method _renderSpinnerInput (line 356) | private _renderSpinnerInput() { class ChoiceModel (line 361) | class ChoiceModel extends Question { method constructor (line 379) | constructor(model: FieldModel) { method renderInput (line 396) | public renderInput() { method _renderSelectInput (line 411) | private _renderSelectInput() { method _renderRadioInput (line 427) | private _renderRadioInput() { class ChoiceListModel (line 439) | class ChoiceListModel extends ChoiceModel { method renderInput (line 444) | public renderInput() { class BoolModel (line 461) | class BoolModel extends Question { method buildDom (line 467) | public override buildDom(props: { method renderInput (line 483) | public override renderInput() { method _renderSwitchInput (line 493) | private _renderSwitchInput() { method _renderCheckboxInput (line 497) | private _renderCheckboxInput() { class DateModel (line 504) | class DateModel extends Question { method renderInput (line 505) | public renderInput() { class DateTimeModel (line 515) | class DateTimeModel extends Question { method renderInput (line 516) | public renderInput() { class RefListModel (line 527) | class RefListModel extends Question { method constructor (line 540) | constructor(model: FieldModel) { method renderInput (line 545) | public renderInput() { method _getOptions (line 562) | private _getOptions() { method _columnObserver (line 588) | private _columnObserver( class RefModel (line 619) | class RefModel extends RefListModel { method renderInput (line 625) | public renderInput() { method _renderSelectInput (line 643) | private _renderSelectInput() { method _renderRadioInput (line 659) | private _renderRadioInput() { class AttachmentsModel (line 673) | class AttachmentsModel extends Question { method renderInput (line 674) | public renderInput() { function fieldConstructor (line 685) | function fieldConstructor(type: string): Constructor { function useFormOptionsLimit (line 702) | function useFormOptionsLimit(use: UseCB, field: ko.Computed) { FILE: app/client/components/Forms/FormConfig.ts class FormSelectConfig (line 25) | class FormSelectConfig extends Disposable { method constructor (line 26) | constructor(private _field: ViewFieldRec) { method buildDom (line 30) | public buildDom() { class FormOptionsAlignmentConfig (line 53) | class FormOptionsAlignmentConfig extends Disposable { method constructor (line 54) | constructor(private _field: ViewFieldRec) { method buildDom (line 58) | public buildDom() { class FormOptionsSortConfig (line 80) | class FormOptionsSortConfig extends Disposable { method constructor (line 81) | constructor(private _field: ViewFieldRec) { method buildDom (line 85) | public buildDom() { class FormOptionsLimitConfig (line 108) | class FormOptionsLimitConfig extends Disposable { method constructor (line 109) | constructor(private _field: ViewFieldRec) { method buildDom (line 113) | public buildDom() { function obsPropWithSaveOnWrite (line 147) | function obsPropWithSaveOnWrite): IDomAr... FILE: app/client/components/Forms/Model.ts type Callback (line 17) | type Callback = () => Promise; type Place (line 22) | type Place = (box: FormLayoutNode) => BoxModel; method new (line 31) | public static new(box: FormLayoutNode, parent: BoxModel | null, view: Fo... method constructor (line 75) | constructor(box: FormLayoutNode, public parent: BoxModel | null, public ... method removeChild (line 108) | public removeChild(box: BoxModel) { method removeSelf (line 117) | public removeSelf() { method deleteSelf (line 126) | public async deleteSelf() { method copySelf (line 135) | public async copySelf() { method cutSelf (line 144) | public async cutSelf() { method willAccept (line 155) | public willAccept(box?: FormLayoutNode | BoxModel | null): "sibling" | "... method accept (line 172) | public accept(dropped: FormLayoutNode, hint: "above" | "below" = "above") { method prop (line 187) | public prop(name: string, defaultValue?: any) { method hasProp (line 194) | public hasProp(name: string) { method save (line 198) | public async save(before?: () => MaybePromise): Promise { method replaceAtIndex (line 206) | public replaceAtIndex(box: FormLayoutNode, index: number) { method swap (line 212) | public swap(box1: BoxModel, box2: BoxModel) { method append (line 222) | public append(box: FormLayoutNode) { method insert (line 228) | public insert(box: FormLayoutNode, index: number) { method replace (line 237) | public replace(existing: BoxModel, newOne: FormLayoutNode | BoxModel) { method placeBeforeFirstChild (line 250) | public placeBeforeFirstChild() { method placeAfterListChild (line 255) | public placeAfterListChild() { method placeAt (line 259) | public placeAt(index: number) { method placeAfterChild (line 263) | public placeAfterChild(child: BoxModel) { method placeAfterMe (line 267) | public placeAfterMe() { method placeBeforeMe (line 271) | public placeBeforeMe() { method insertAfter (line 275) | public insertAfter(json: any) { method insertBefore (line 279) | public insertBefore(json: any) { method root (line 283) | public root() { method find (line 292) | public find(droppedId: string | undefined | null): BoxModel | null { method filter (line 302) | public* filter(filter: (box: BoxModel) => boolean): Iterable { method includes (line 309) | public includes(box: BoxModel) { method kids (line 316) | public kids() { method update (line 324) | public update(boxDef: FormLayoutNode) { method toJSON (line 371) | public toJSON(): FormLayoutNode { method traverse (line 380) | public* traverse(): IterableIterator { method canRemove (line 387) | public canRemove() { method onCreate (line 391) | protected onCreate() { class LayoutModel (line 396) | class LayoutModel extends BoxModel { method constructor (line 399) | constructor( method save (line 411) | public async save(clb?: Callback) { method render (line 415) | public override render(): HTMLElement { class DefaultBoxModel (line 420) | class DefaultBoxModel extends BoxModel { method render (line 421) | public render(): HTMLElement { function unwrap (line 431) | function unwrap(val: T | Computed): T { function parseBox (line 435) | function parseBox(text: string): FormLayoutNode | null { FILE: app/client/components/Forms/Paragraph.ts class ParagraphModel (line 12) | class ParagraphModel extends BoxModel { method render (line 20) | public override render(): HTMLElement { function Paragraph (line 68) | function Paragraph(text: string, alignment?: "left" | "right" | "center"... FILE: app/client/components/Forms/Section.ts class SectionModel (line 24) | class SectionModel extends BoxModel { method constructor (line 25) | constructor(box: FormLayoutNode, parent: BoxModel | null, view: FormVi... method render (line 29) | public override render(): HTMLElement { method willAccept (line 70) | public override willAccept(): "sibling" | "child" | null { method accept (line 78) | public override accept(dropped: FormLayoutNode) { method deleteSelf (line 101) | public async deleteSelf(): Promise { method canRemove (line 120) | public canRemove() { function Section (line 125) | function Section(...children: FormLayoutNode[]): FormLayoutNode { FILE: app/client/components/Forms/Submit.ts class SubmitModel (line 9) | class SubmitModel extends BoxModel { method canRemove (line 10) | public canRemove() { method render (line 14) | public override render() { FILE: app/client/components/Forms/elements.ts function defaultElement (line 18) | function defaultElement(type: FormLayoutNodeType): FormLayoutNode { FILE: app/client/components/Forms/styles.ts function textbox (line 127) | function textbox(obs: Observable, ...args: DomElemen... constant SHADOW_STYLE (line 468) | const SHADOW_STYLE = ` function bindMarkdown (line 508) | function bindMarkdown(textObs: BindableValue) { function buildMarkdown (line 525) | function buildMarkdown(obs: BindableValue, ...args: IDomArgs, save: (ok: boolean)... FILE: app/client/components/FormulaTransform.ts class FormulaTransform (line 23) | class FormulaTransform extends ColumnTransform { method constructor (line 24) | constructor(gristDoc: GristDoc, fieldBuilder: FieldBuilder) { method buildDom (line 31) | public buildDom() { FILE: app/client/components/GridView.ts constant SHORT_CLICK_IN_MS (line 79) | const SHORT_CLICK_IN_MS = 500; type RowIndexRenderer (line 84) | type RowIndexRenderer = (row: DataRowModel) => DomElementArg | null; type CornerRenderer (line 89) | type CornerRenderer = (el: Element) => DomElementArg | null; constant PLUS_WIDTH (line 92) | const PLUS_WIDTH = 40; constant ROW_NUMBER_WIDTH (line 94) | const ROW_NUMBER_WIDTH = 52; type InsertColOptions (line 96) | interface InsertColOptions { type Direction (line 103) | type Direction = "left" | "right" | "up" | "down"; type GridViewOptions (line 105) | interface GridViewOptions extends ViewOptions { class GridView (line 122) | class GridView extends BaseView { method constructor (line 171) | constructor(gristDoc: GristDoc, viewSectionModel: ViewSectionRec, prot... method viewAsCard (line 505) | viewAsCard() { method onTableLoaded (line 513) | protected onTableLoaded() { method applyAutoSize (line 526) | protected applyAutoSize() { method _shiftSelect (line 574) | protected _shiftSelect({ step, direction}: { step: number, direction: ... method _shiftSelectUntilFirstOrLastNonEmptyCell (line 609) | protected _shiftSelectUntilFirstOrLastNonEmptyCell({ direction}: { dir... method _stepsToContent (line 618) | protected _stepsToContent({ direction}: { direction: Direction }) { method _selectionData (line 720) | protected _selectionData( method _isCellValueEmpty (line 742) | protected _isCellValueEmpty(value: CellValue | undefined) { method paste (line 757) | protected async paste(data: PasteData, cutCallback: CutCallback | null) { method _createBulkActionsFromPaste (line 824) | protected _createBulkActionsFromPaste(rowIds: UIRowId[], bulkUpdate: B... method getSelection (line 850) | protected getSelection() { method clearSelection (line 898) | protected clearSelection() { method clearValues (line 908) | protected clearValues(selection: CopySelection) { method _clearColumns (line 924) | protected _clearColumns(selection: CopySelection) { method _convertFormulasToData (line 932) | protected _convertFormulasToData(selection: CopySelection) { method selectAll (line 941) | protected selectAll() { method assignCursor (line 958) | protected assignCursor(elem: Element, elemType: ElemType) { method scheduleAssignCursor (line 999) | protected scheduleAssignCursor(elem: Element, elemType: ElemType) { method preventAssignCursor (line 1009) | protected preventAssignCursor() { method selectedRows (line 1014) | protected selectedRows() { method deleteRows (line 1019) | protected async deleteRows(rowIds: number[]) { method insertColumn (line 1032) | public async insertColumn(colId: string | null = null, options: Insert... method makeHeadersFromRow (line 1052) | protected async makeHeadersFromRow(selection: CopySelection) { method renameColumn (line 1084) | protected renameColumn(index: number) { method scrollPaneBottom (line 1093) | protected scrollPaneBottom() { method scrollPaneTop (line 1097) | protected scrollPaneTop() { method scrollPaneRight (line 1101) | protected scrollPaneRight() { method scrollPaneLeft (line 1105) | protected scrollPaneLeft() { method selectColumn (line 1109) | protected selectColumn(colIndex: number) { method showColumn (line 1114) | public async showColumn(colRef: number, method deleteColumns (line 1122) | protected deleteColumns(selection: CopySelection) { method hideFields (line 1142) | protected hideFields(selection: CopySelection) { method moveColumns (line 1153) | protected moveColumns(oldIndices: number[], newIndex: number) { method moveRows (line 1175) | protected moveRows(oldIndices: number[], newIndex: number) { method getMousePosRow (line 1203) | protected getMousePosRow(yCoord: number) { method currentMouseRow (line 1213) | protected currentMouseRow(yCoord: number) { method getMousePosCol (line 1242) | protected getMousePosCol(mouseX: number) { method _getRowStyle (line 1270) | protected _getRowStyle(rowIndex: number) { method _getColStyle (line 1274) | protected _getColStyle(colIndex: number) { method domToRowModel (line 1281) | public domToRowModel(elem: Element, elemType: ElemType): DataRowModel ... method domToColModel (line 1297) | public domToColModel(elem: Element, elemType: ElemType): DataRowModel ... method onScroll (line 1317) | protected onScroll() { method buildDom (line 1324) | protected buildDom() { method onNewRecordRequest (line 1751) | public onNewRecordRequest() { method onResize (line 1755) | public override onResize() { method onRowResize (line 1774) | public override onRowResize(rowModels: BaseRowModel[]): void { method onLinkFilterChange (line 1778) | protected onLinkFilterChange() { method _onRenderedVisibleRows (line 1783) | protected _onRenderedVisibleRows(heights?: number[]) { method onCellContextMenu (line 1790) | protected onCellContextMenu(ev: Event, elem: Element) { method _createColSelectedObs (line 1810) | protected _createColSelectedObs(col: ViewFieldRec) { method cellMouseDown (line 1820) | protected cellMouseDown(elem: HTMLElement, event: MouseEvent) { method colMouseDown (line 1837) | protected colMouseDown(elem: HTMLElement, event: MouseEvent) { method _tooltipMouseDown (line 1849) | protected _tooltipMouseDown(elem: HTMLElement, elemType: ElemType) { method rowMouseDown (line 1856) | protected rowMouseDown(elem: HTMLElement, event: MouseEvent) { method rowMouseMove (line 1865) | protected rowMouseMove(event: MouseEvent) { method colMouseMove (line 1869) | protected colMouseMove(event: MouseEvent) { method cellMouseMove (line 1877) | protected cellMouseMove(event: MouseEvent) { method createSelector (line 1890) | protected createSelector() { method attachSelectorHandlers (line 1897) | protected attachSelectorHandlers() { method styleRowDragElements (line 1962) | protected styleRowDragElements(elem: HTMLElement, event: MouseEvent) { method styleColDragElements (line 1977) | protected styleColDragElements(elem: HTMLElement, event: MouseEvent) { method dragRows (line 2002) | protected dragRows(event: MouseEvent) { method dragCols (line 2021) | protected dragCols(event: MouseEvent) { method dropRows (line 2050) | protected dropRows() { method dropCols (line 2056) | protected dropCols() { method columnContextMenu (line 2075) | protected columnContextMenu( method _getColumnMenuOptions (line 2094) | protected _getColumnMenuOptions(copySelection: CopySelection): IMultiC... method _columnFilterMenu (line 2108) | protected _columnFilterMenu(ctl: IOpenController, field: ViewFieldRec,... method maybeSelectColumn (line 2122) | protected maybeSelectColumn(elem: Element, field: ViewFieldRec) { method maybeSelectRow (line 2132) | protected maybeSelectRow(elem: Element, rowId: number) { method rowContextMenu (line 2141) | protected rowContextMenu() { method _getRowContextMenuOptions (line 2146) | protected _getRowContextMenuOptions(): IRowContextMenu { method isRecordCardDisabled (line 2160) | public isRecordCardDisabled(): boolean { method cellContextMenu (line 2166) | protected cellContextMenu() { method _getCellContextMenuOptions (line 2177) | protected _getCellContextMenuOptions(): ICellContextMenu { method scrollToCursor (line 2198) | public async scrollToCursor(sync = true) { method _duplicateRows (line 2202) | protected async _duplicateRows(): Promise { method _clearCopySelection (line 2219) | protected _clearCopySelection() { method _showTooltipOnHover (line 2223) | protected _showTooltipOnHover(field: ViewFieldRec, isShowingTooltip: k... method _scrollColumnIntoView (line 2237) | protected _scrollColumnIntoView(colIndex: number) { method _buildInsertColumnMenu (line 2277) | protected _buildInsertColumnMenu(options: { field?: ViewFieldRec } = {... method _openInsertColumnMenu (line 2324) | protected _openInsertColumnMenu(columnIndex: number) { method _insertField (line 2334) | protected _insertField(event: KeyboardEvent | undefined, index: number) { method _deleteFields (line 2346) | protected _deleteFields() { method _applyAutoWidth (line 2360) | protected _applyAutoWidth() { function unzipPasteData (line 2401) | function unzipPasteData(pasteData: PasteData): PasteData { function growPasteDataMatrix (line 2406) | function growPasteDataMatrix(pasteData: PasteData, r: number, c: number)... type ComputedRule (line 2410) | interface ComputedRule { function buildStyleOption (line 2414) | function buildStyleOption( class HoverColumnTooltip (line 2426) | class HoverColumnTooltip { method constructor (line 2428) | constructor(public el: HTMLElement) { method show (line 2431) | public show(text: string) { method hide (line 2436) | public hide() { method dispose (line 2443) | public dispose() { function calcZebra (line 2449) | function calcZebra(hex: string) { function styleCustomVar (line 2470) | function styleCustomVar(property: string, valueObs: BindableValue void)) { method onopen (line 31) | public set onopen(cb: null | (() => void)) { method onerror (line 35) | public set onerror(cb: null | ((err: Error) => void)) { method onclose (line 39) | public set onclose(cb: null | (() => void)) { method close (line 43) | public close() { method send (line 51) | public send(data: string) { method pause (line 61) | public pause() { method resume (line 65) | public resume() { method isOpen (line 69) | public isOpen() { method _createWSSocket (line 73) | private _createWSSocket() { method _destroyWSSocket (line 91) | private _destroyWSSocket() { method _onWSMessage (line 101) | private _onWSMessage(event: WS.MessageEvent | MessageEvent) { method _onWSOpen (line 107) | private _onWSOpen() { method _onWSError (line 114) | private _onWSError(ev: Event) { method _onWSClose (line 128) | private _onWSClose() { method _createEIOSocket (line 132) | private _createEIOSocket() { method _onEIOMessage (line 148) | private _onEIOMessage(data: string) { method _onEIOOpen (line 152) | private _onEIOOpen() { method _onEIOError (line 156) | private _onEIOError(err: string | Error) { method _onEIOClose (line 160) | private _onEIOClose() { FILE: app/client/components/GristDoc.ts constant RICK_ROLL_YOUTUBE_EMBED_ID (line 122) | const RICK_ROLL_YOUTUBE_EMBED_ID = "dQw4w9WgXcQ"; type TabContent (line 131) | interface TabContent { type TabOptions (line 140) | interface TabOptions { type IExtraTool (line 149) | interface IExtraTool { type PopupSectionOptions (line 155) | interface PopupSectionOptions { type AddSectionOptions (line 161) | interface AddSectionOptions { type GristDoc (line 168) | interface GristDoc extends DisposableWithEvents { class GristDocImpl (line 242) | class GristDocImpl extends DisposableWithEvents implements GristDoc { method regionFocusSwitcher (line 257) | public get regionFocusSwitcher() { return this.app.regionFocusSwitcher; } method docApi (line 302) | public get docApi() { method constructor (line 351) | constructor( method docId (line 828) | public docId() { method buildDom (line 835) | public buildDom() { method openDocPage (line 914) | public openDocPage(viewId: IDocPage) { method setComparison (line 918) | public setComparison(comparison: DocStateComparison | null) { method showTool (line 926) | public showTool(tool: typeof RightPanelTool.type): void { method onSetCursorPos (line 930) | public async onSetCursorPos(rowModel: BaseRowModel | undefined, fieldM... method moveToCursorPos (line 942) | public async moveToCursorPos(cursorPos?: CursorPos, optActionGroup?: M... method getUndoStack (line 960) | public getUndoStack() { method getActionCounter (line 964) | public getActionCounter() { method getTableModel (line 968) | public getTableModel(tableId: string): DataTableModel { method getTableModelMaybeWithDiff (line 974) | public getTableModelMaybeWithDiff(tableId: string): DataTableModel { method addEmptyTable (line 988) | public async addEmptyTable(): Promise { method addWidgetToPage (line 1000) | public async addWidgetToPage(widget: IPageWidget): Promise { method addNewPage (line 1026) | public async addNewPage(val: IPageWidget): Promise { method saveViewSection (line 1050) | public async saveViewSection(section: ViewSectionRec, newVal: IPageWid... method saveLink (line 1097) | public async saveLink(linkId: string, sectionId?: number) { method selectBy (line 1122) | public selectBy(widget: IPageWidget) { method forkIfNeeded (line 1128) | public async forkIfNeeded() { method getCsvLink (line 1134) | public getCsvLink() { method getTsvLink (line 1139) | public getTsvLink() { method getDsvLink (line 1144) | public getDsvLink() { method getXlsxActiveViewLink (line 1149) | public getXlsxActiveViewLink() { method recursiveMoveToCursorPos (line 1161) | public async recursiveMoveToCursorPos( method activateEditorAtCursor (line 1286) | public async activateEditorAtCursor(options?: { init?: string, state?:... method copyAnchorLink (line 1294) | public async copyAnchorLink(anchorInfo: HashLink & CursorPos) { method testRenameTable (line 1314) | public async testRenameTable(tableId: string, newTableName: string) { method getActionLog (line 1322) | public getActionLog(): ActionLog { method _setSectionViewFieldsFromArray (line 1328) | private async _setSectionViewFieldsFromArray(section: ViewSectionRec, ... method _onCreateForm (line 1370) | private async _onCreateForm() { method _onDocChatter (line 1383) | private _onDocChatter(message: CommDocChatter) { method _onDocUsageMessage (line 1409) | private _onDocUsageMessage(message: CommDocUsage) { method _onDocUserAction (line 1424) | private _onDocUserAction(message: CommDocUserAction) { method _setCursorPos (line 1475) | private async _setCursorPos(cursorPos: CursorPos) { method _getCursorPos (line 1513) | private _getCursorPos(): CursorPos { method _addWidgetToPage (line 1519) | private async _addWidgetToPage( method _addPage (line 1551) | private async _addPage( method _focus (line 1594) | private async _focus({ viewRef, sectionRef}: { viewRef?: number, secti... method _showNewWidgetPopups (line 1599) | private _showNewWidgetPopups(type: IWidgetType) { method _openPopup (line 1610) | private async _openPopup(hash: HashLink) { method _playRickRollVideo (line 1691) | private async _playRickRollVideo() { method _focusPreviousSection (line 1727) | private _focusPreviousSection() { method _waitForView (line 1743) | private async _waitForView(popupSection?: ViewSectionRec) { method _getToolContent (line 1776) | private _getToolContent(tool: typeof RightPanelTool.type): IExtraTool ... method _maybeShowEditCardLayoutTip (line 1795) | private async _maybeShowEditCardLayoutTip(selectedWidgetType: IWidgetT... method _handleNewAttachedCustomWidget (line 1823) | private async _handleNewAttachedCustomWidget(widget: IAttachedCustomWi... method _promptForName (line 1838) | private async _promptForName() { method _replaceViewSection (line 1846) | private async _replaceViewSection( method _onSendActionsStart (line 1906) | private _onSendActionsStart(ev: { cursorPos: CursorPos }) { method _onSendActionsEnd (line 1915) | private _onSendActionsEnd(ev: { cursorPos: CursorPos }) { method _getDocApiDownloadParams (line 1925) | private _getDocApiDownloadParams() { method _switchToSectionId (line 1948) | private async _switchToSectionId(sectionId: number) { method _getTableData (line 1969) | private async _getTableData(section: ViewSectionRec): Promise { method _shouldAutoStartWelcomeTour (line 2027) | private _shouldAutoStartWelcomeTour(): boolean { method _ensureOneNumericSeries (line 2059) | private async _ensureOneNumericSeries(id: number) { method _setDefaultFormLayoutSpec (line 2091) | private async _setDefaultFormLayoutSpec(viewSectionId: number) { method _handleTriggerQueueOverflowMessage (line 2097) | private _handleTriggerQueueOverflowMessage() { function finalizeAnchor (line 2116) | async function finalizeAnchor() { FILE: app/client/components/GristWSConnection.ts constant HEARTBEAT_PERIOD_IN_SECONDS (line 21) | const HEARTBEAT_PERIOD_IN_SECONDS = 45; function getDocWorkerUrl (line 26) | async function getDocWorkerUrl(assignmentId: string | null): Promise { method disconnect (line 181) | public disconnect() { method established (line 198) | public get established(): boolean { method clientId (line 202) | public get clientId(): string | null { method docWorkerUrl (line 209) | public get docWorkerUrl(): string { method getDocWorkerUrlOrNull (line 217) | public getDocWorkerUrlOrNull(): string | null { method onmessage (line 224) | public onmessage(data: string) { method send (line 234) | public send(message: any) { method _processReceivedMessage (line 244) | private _processReceivedMessage(msgData: string, processClientConnect:... method _clearHeartbeat (line 309) | private _clearHeartbeat() { method _scheduleHeartbeat (line 317) | private _scheduleHeartbeat() { method _sendHeartbeat (line 324) | private _sendHeartbeat() { method _connectImpl (line 332) | private _connectImpl(isReconnecting: boolean, timezone: any) { method _scheduleReconnect (line 388) | private _scheduleReconnect(isReconnecting: boolean) { method _buildWebsocketUrl (line 400) | private _buildWebsocketUrl(isReconnecting: boolean, timezone: any): st... method _updateDocWorkerUrl (line 414) | private async _updateDocWorkerUrl() { FILE: app/client/components/Importer.ts type CreatePreviewFunc (line 76) | type CreatePreviewFunc = (vs: ViewSectionRec) => GridView; type GridView (line 77) | type GridView = IDisposable & { viewPane: HTMLElement, sortedRows: Sorte... constant TABLE_MAPPING (line 78) | const TABLE_MAPPING = 1; constant COLUMN_MAPPING (line 79) | const COLUMN_MAPPING = 2; type ViewType (line 80) | type ViewType = typeof TABLE_MAPPING | typeof COLUMN_MAPPING; type SourceInfo (line 86) | interface SourceInfo { function toggleCustomized (line 119) | function toggleCustomized(info: SourceInfo, colId: string, on: boolean):... type MergeOptionsStateMap (line 132) | interface MergeOptionsStateMap { type MergeOptionsState (line 139) | interface MergeOptionsState { function selectAndImport (line 162) | async function selectAndImport( function importFromFile (line 200) | async function importFromFile(gristDoc: GristDoc, createPreview: CreateP... class Importer (line 236) | class Importer extends DisposableWithEvents { method constructor (line 383) | constructor(private _gristDoc: GristDoc, method pickAndUploadSource (line 401) | public async pickAndUploadSource(uploadResult: UploadResult | null = n... method _setupGlobalEditorCleanup (line 456) | private _setupGlobalEditorCleanup() { method _getPrimaryViewSection (line 469) | private _getPrimaryViewSection(tableId: string): ViewSectionRec { method _getSectionByRef (line 475) | private _getSectionByRef(sectionRef: number): ViewSectionRec { method _updateTransformSection (line 479) | private async _updateTransformSection(sourceInfo: SourceInfo) { method _getTransformedDataSource (line 506) | private _getTransformedDataSource(upload: UploadResult): DataSourceTra... method _getMergeOptionMaps (line 511) | private _getMergeOptionMaps(upload: UploadResult): MergeOptionsMap[] { method _createTransformRuleMap (line 515) | private _createTransformRuleMap(uploadFileIndex: number): TransformRul... method _createMergeOptionsMap (line 525) | private _createMergeOptionsMap(uploadFileIndex: number): MergeOptionsM... method _createTransformRule (line 535) | private _createTransformRule(sourceInfo: SourceInfo): TransformRule { method _getMergeOptionsForSource (line 558) | private _getMergeOptionsForSource(sourceInfo: SourceInfo): MergeOption... method _getHiddenTableIds (line 569) | private _getHiddenTableIds(): string[] { method _reImport (line 573) | private async _reImport(upload: UploadResult) { method _prepareMergeOptions (line 637) | private _prepareMergeOptions() { method _maybeFinishImport (line 653) | private async _maybeFinishImport(upload: UploadResult) { method _cancelImport (line 679) | private async _cancelImport() { method _resetTableMergeOptions (line 690) | private _resetTableMergeOptions(tableId: string) { method _validateImportConfiguration (line 694) | private _validateImportConfiguration(): boolean { method _buildModalTitle (line 715) | private _buildModalTitle(rightElement?: DomContents) { method _buildStaticTitle (line 720) | private _buildStaticTitle() { method _updateImportDiff (line 730) | private async _updateImportDiff(info: SourceInfo) { method _updateDiff (line 759) | private async _updateDiff(info: SourceInfo) { method _resetImportDiffState (line 784) | private _resetImportDiffState() { method _cancelPendingDiffRequests (line 794) | private _cancelPendingDiffRequests() { method _renderMain (line 802) | private _renderMain(upload: UploadResult) { method _makeImportOptionsForCol (line 1175) | private _makeImportOptionsForCol(gristCol: ColumnRec, info: SourceInfo) { method _makeImportOptionsMenu (line 1205) | private _makeImportOptionsMenu(transformCol: ColumnRec, others: [strin... method _addFocusLayer (line 1219) | private _addFocusLayer(container: HTMLElement) { method _setColumnFormula (line 1230) | private async _setColumnFormula(transformCol: ColumnRec, formula: stri... method _activateFormulaEditor (line 1247) | private _activateFormulaEditor(refElem: Element, field: ViewFieldRec, ... method _setupFormulaEditorCleanup (line 1276) | private _setupFormulaEditorCleanup( method _buildSourceSelector (line 1295) | private _buildSourceSelector(owner: MultiHolder, field: ViewFieldRec, ... method _buildCustomFormula (line 1361) | private _buildCustomFormula(owner: MultiHolder, field: ViewFieldRec, i... method _renderParseOptions (line 1381) | private _renderParseOptions(schema: ParseOptionSchema[], upload: Uploa... method _fetchFromDrive (line 1407) | private async _fetchFromDrive(itemUrl: string) { class GDriveUrlNotSupported (line 1445) | class GDriveUrlNotSupported extends Error { method constructor (line 1446) | constructor(public url: string) { class CancelledError (line 1452) | class CancelledError extends Error { function getSourceDescription (line 1455) | function getSourceDescription(sourceInfo: SourceInfo, upload: UploadResu... function getSourceFileExtension (line 1460) | function getSourceFileExtension(sourceInfo: SourceInfo, upload: UploadRe... FILE: app/client/components/KeyboardFocusHighlighter.ts class KeyboardFocusHighlighter (line 14) | class KeyboardFocusHighlighter extends Disposable { method constructor (line 15) | constructor() { FILE: app/client/components/Layout.ts type ContentBox (line 68) | interface ContentBox { class LayoutBox (line 80) | class LayoutBox extends Disposable implements ContentBox { method create (line 96) | public create(layout: Layout) { method getDom (line 145) | public getDom() { method maximize (line 149) | public maximize() { method buildDom (line 157) | public buildDom() { method takeLeafFrom (line 186) | public takeLeafFrom(sourceLayoutBox: ContentBox) { method setChildren (line 194) | public setChildren(children: LayoutBox[]) { method isFirstChild (line 199) | public isFirstChild() { method isLastChild (line 203) | public isLastChild() { method isDomDetached (line 209) | public isDomDetached() { method getSiblingBox (line 213) | public getSiblingBox(isAfter: boolean) { method _addChild (line 226) | public _addChild(childBox: LayoutBox, isAfter: boolean, optNextSibling... method addSibling (line 238) | public addSibling(childBox: LayoutBox, isAfter: boolean) { method addChild (line 268) | public addChild(childBox: LayoutBox, isAfter: boolean) { method toString (line 280) | public toString(): string { method _removeChildBox (line 288) | public _removeChildBox(childBox: LayoutBox) { method removeFromParent (line 327) | public removeFromParent() { method rescaleFlexSizes (line 338) | public rescaleFlexSizes() { function makeStatic (line 355) | function makeStatic(valueOrFunc: any) { class Layout (line 371) | class Layout extends Disposable { method getContainingBox (line 376) | public static getContainingBox(elem: Element | null, optContainer: any) { method create (line 394) | public create(boxSpec: BoxSpec, createLeafFunc: (id: string) => HTMLEl... method getLeafBox (line 421) | public getLeafBox(leafId: string | number) { method getAllLeafIds (line 428) | public getAllLeafIds() { method setRoot (line 432) | public setRoot(layoutBox: LayoutBox) { method buildDom (line 436) | public buildDom() { method forEachBox (line 450) | public forEachBox(cb: (box: LayoutBox) => void, optContext?: any) { method buildLayoutBox (line 461) | public buildLayoutBox(boxSpec: BoxSpec) { method buildLayout (line 477) | public buildLayout(boxSpec: BoxSpec, needDynamic = false) { method _getBoxSpec (line 493) | public _getBoxSpec(layoutBox: LayoutBox) { method getLayoutSpec (line 509) | public getLayoutSpec() { method getLeafIdMap (line 518) | public getLeafIdMap() { method getContainingBox (line 534) | public getContainingBox(elem: Element | null) { FILE: app/client/components/LayoutEditor.ts type JQMouseEvent (line 61) | type JQMouseEvent = JQuery.MouseEventBase | MouseEvent; class HelperBox (line 65) | class HelperBox { method constructor (line 74) | constructor(data?: Partial) { type TargetPart (line 81) | interface TargetPart { type JqueryUI (line 87) | interface JqueryUI { type LeafId (line 94) | type LeafId = string | number; class Floater (line 100) | class Floater extends Disposable implements ContentBox { method create (line 109) | public create(fillWindow?: boolean) { method onInitialMouseMove (line 127) | public onInitialMouseMove(mouseEvent: JQMouseEvent, sourceBox: Content... method onMouseUp (line 145) | public onMouseUp() { method onMouseMove (line 149) | public onMouseMove(mouseEvent: JQMouseEvent) { class DropOverlay (line 163) | class DropOverlay extends Disposable { method create (line 168) | public create() { method detach (line 178) | public detach() { method attach (line 187) | public attach(targetElem: HTMLElement) { method getAffinity (line 211) | public getAffinity(mouseEvent: JQMouseEvent) { class DropTargeter (line 229) | class DropTargeter extends Disposable { method create (line 240) | public create(rootElem: HTMLElement) { method removeTargetHints (line 250) | public removeTargetHints() { method updateTargetHints (line 265) | public updateTargetHints( method triggerInsertion (line 369) | public triggerInsertion(part: TargetPart) { method accelerateInsertion (line 380) | public accelerateInsertion() { class LayoutEditor (line 407) | class LayoutEditor extends Disposable { method create (line 429) | public create(layout: Layout) { method triggerUserEditStart (line 487) | public triggerUserEditStart() { method triggerUserEditStop (line 495) | public triggerUserEditStop() { method makeResizable (line 503) | public makeResizable(box: LayoutBox) { method unmakeResizable (line 520) | public unmakeResizable(box: LayoutBox) { method onResizeStart (line 527) | public onResizeStart(helperObj: HelperBox, isWidth: boolean, event: JQ... method onResizeMove (line 541) | public onResizeMove(helperObj: HelperBox, isWidth: boolean, event: JQM... method handleMouseDown (line 570) | public handleMouseDown(event: JQMouseEvent, elem: HTMLElement) { method dragInNewBox (line 586) | public dragInNewBox(event: JQMouseEvent, leafId: number) { method startDragBox (line 595) | public startDragBox(event: JQMouseEvent, box: LayoutBox) { method handleMouseUp (line 602) | public handleMouseUp(event: JQMouseEvent) { method getBoxFromElement (line 641) | public getBoxFromElement(elem: HTMLElement) { method getBox (line 649) | public getBox(leafId: number) { method removeContainingBox (line 653) | public removeContainingBox(box: LayoutBox) { method doRemoveBox (line 662) | public doRemoveBox(box: ContentBox) { method handleMouseMove (line 671) | public handleMouseMove(event: JQMouseEvent) { method updateTargets (line 704) | public updateTargets(event: JQMouseEvent) { method onInsertBox (line 722) | public async onInsertBox(inserterFunc: (box: LayoutBox) => void) { function isAffinityUpDown (line 776) | function isAffinityUpDown(affinity: number): boolean { function isAffinityAfter (line 780) | function isAffinityAfter(affinity: number): boolean { function getFrac (line 784) | function getFrac(distance: number, max: number): number { function round (line 791) | function round(value: number, multipleOf: number) { function snap (line 795) | function snap(flexSize: number, sumPrev: number, sumAll: number) { function resizeLayoutBox (line 809) | function resizeLayoutBox(layoutBox: LayoutBox, sizeRect: string | DOMRec... function rectDesc (line 823) | function rectDesc(rect: string | DOMRect) { function resizeLayoutBoxSmoothly (line 832) | function resizeLayoutBoxSmoothly(layoutBox: LayoutBox, startRect: string... function adder (line 867) | function adder(sum: number, box: LayoutBox) { FILE: app/client/components/LayoutTray.ts type JQMouseEvent (line 23) | type JQMouseEvent = JQuery.MouseEventBase | MouseEvent; class LayoutTray (line 28) | class LayoutTray extends DisposableWithEvents { method constructor (line 47) | constructor(public viewLayout: ViewLayout) { method replaceLayout (line 106) | public replaceLayout() { method buildPopup (line 121) | public buildPopup(owner: IDisposableOwner, selected: Observable(obj: T): T { method release (line 1006) | public release(obj: IDisposable) { function syncHover (line 1015) | function syncHover(obs: Signal) { function detachedNode (line 1023) | function detachedNode(node: Observable) { function findDraggable (line 1035) | function findDraggable(ev: EventTarget | null) { function asDraggable (line 1046) | function asDraggable(item: Draggable) { function useDragging (line 1059) | function useDragging() { class VRect (line 1149) | class VRect { method constructor (line 1155) | constructor(offset: DOMRect, params: Partial) { method contains (line 1163) | public contains(ev: MouseEvent) { FILE: app/client/components/LinkingState.ts type LinkType (line 28) | type LinkType = "Filter:Summary-Group" | type FilterState (line 41) | type FilterState = FilterColValues & { function FilterStateToColValues (line 45) | function FilterStateToColValues(fs: FilterState) { return pick(fs, ["fil... class LinkingState (line 51) | class LinkingState extends Disposable { method constructor (line 82) | constructor(docModel: DocModel, linkConfig: LinkConfig) { method disableEditing (line 348) | public disableEditing(): boolean { method _makeFilterObs (line 376) | private _makeFilterObs( method _srcCustomFilter (line 530) | private _srcCustomFilter( method _makeValGetter (line 551) | private _makeValGetter( function isSummaryOf (line 586) | function isSummaryOf(summary: TableRec, detail: TableRec): boolean { function summaryGetCorrespondingCol (line 608) | function summaryGetCorrespondingCol(srcGBCol: ColumnRec, tgtTable: Table... FILE: app/client/components/ParseOptions.ts type ParseOptionValueType (line 13) | type ParseOptionValueType = boolean | string | number; type ParseOptionValues (line 17) | interface ParseOptionValues { type EscapeChars (line 25) | interface EscapeChars { function escapeChars (line 38) | function escapeChars(value: string) { function unescapeChars (line 41) | function unescapeChars(value: string) { function buildParseOptionsForm (line 50) | function buildParseOptionsForm( function optionToInput (line 99) | function optionToInput(owner: IDisposableOwner, type: string, value: Obs... FILE: app/client/components/PluginScreen.ts type RenderOptions (line 16) | interface RenderOptions { class PluginScreen (line 25) | class PluginScreen extends Disposable { method constructor (line 31) | constructor(private _title: string) { method renderContent (line 37) | public renderContent(inlineElement: HTMLElement) { method renderPlugin (line 42) | public renderPlugin(plugin: PluginInstance): RenderTarget { method render (line 51) | public render(content: DomContents, options?: RenderOptions) { method renderError (line 59) | public renderError(message: string) { method renderSpinner (line 73) | public renderSpinner() { method close (line 78) | public close() { method showImportDialog (line 83) | public showImportDialog(options?: IModalOptions) { method _buildModalTitle (line 108) | private _buildModalTitle(rightElement?: DomContents) { FILE: app/client/components/Printing.ts type RowId (line 10) | type RowId = number | "new"; function getViewSectionContent (line 12) | function getViewSectionContent(viewInstance: BaseView | null) { function printViewSection (line 32) | async function printViewSection(layout: any, viewSection: ViewSectionRec) { function renderAllRows (line 119) | function renderAllRows( FILE: app/client/components/RawDataPage.ts class RawDataPage (line 19) | class RawDataPage extends Disposable { method constructor (line 21) | constructor(private _gristDoc: GristDoc) { method buildDom (line 47) | public buildDom() { method _close (line 69) | private _close() { class RawDataPopup (line 74) | class RawDataPopup extends Disposable { method constructor (line 75) | constructor( method buildDom (line 98) | public buildDom() { FILE: app/client/components/RecordCardPopup.ts type RecordCardPopupOptions (line 15) | interface RecordCardPopupOptions { class RecordCardPopup (line 22) | class RecordCardPopup extends DisposableWithEvents { method constructor (line 29) | constructor(private _options: RecordCardPopupOptions) { method buildDom (line 42) | public buildDom() { method _onRowChange (line 64) | private _onRowChange(type: ChangeType, rows: RowList) { FILE: app/client/components/RecordLayout.js function RecordLayout (line 54) | function RecordLayout(options) { function processBox (line 225) | function processBox(spec) { FILE: app/client/components/RecordLayoutEditor.js function RecordLayoutEditor (line 27) | function RecordLayoutEditor(recordLayout, layout, optResizeCallback) { FILE: app/client/components/RefSelect.ts type Item (line 19) | interface Item { class RefSelect (line 27) | class RefSelect extends Disposable { method constructor (line 37) | constructor(options: { method buildDom (line 87) | public buildDom() { method _addFormulaField (line 122) | private async _addFormulaField(item: Item) { method _removeFormulaField (line 166) | private _removeFormulaField(item: Item) { method _getReferrerFields (line 187) | private _getReferrerFields(colId: string) { method _getReferencedCols (line 197) | private _getReferencedCols(field: ViewFieldRec) { method _getFormulaMatchSet (line 206) | private _getFormulaMatchSet(field: ViewFieldRec) { FILE: app/client/components/RegionFocusSwitcher.ts type Panel (line 19) | type Panel = "left" | "top" | "right" | "main"; type PanelRegion (line 20) | interface PanelRegion { type SectionRegion (line 24) | interface SectionRegion { type Region (line 28) | type Region = PanelRegion | SectionRegion; type StateUpdateInitiator (line 29) | type StateUpdateInitiator = { type: "cycle" } | { type: "mouse", event?:... type State (line 30) | interface State { class RegionFocusSwitcher (line 40) | class RegionFocusSwitcher extends Disposable { method _gristDocObs (line 47) | private get _gristDocObs() { return this._app?.pageModel?.gristDoc; } method constructor (line 64) | constructor(private _app?: App) { method onPageDomLoaded (line 100) | public onPageDomLoaded(el: HTMLElement) { method panelAttrs (line 108) | public panelAttrs(id: Panel, ariaLabel: string) { method getRegionId (line 152) | public getRegionId(region?: Region) { method focusRegion (line 165) | public focusRegion(id: Panel) { method focusActiveSection (line 179) | public focusActiveSection() { method addListener (line 190) | public addListener(listener: (regionId: Panel, prevRegionId: Panel) =>... method reset (line 201) | public reset() { method _focusRegion (line 205) | private _focusRegion( method _cycle (line 226) | private _cycle(direction: "next" | "prev") { method _onClick (line 242) | private _onClick(event: MouseEvent) { method _onEscapeKeypress (line 287) | private _onEscapeKeypress() { method _savePrevElementState (line 330) | private _savePrevElementState(prev: Region | undefined) { method _onStateChange (line 343) | private _onStateChange(current: State, prev: State) { method _toggleCreatorPanel (line 402) | private _toggleCreatorPanel() { method _canTabThroughMainRegion (line 415) | private _canTabThroughMainRegion(use: UseCBOwner) { method _getGristDoc (line 432) | private _getGristDoc() { method _logCommand (line 442) | private _logCommand(name: "nextRegion" | "prevRegion" | "creatorPanel") { method _maybeNotifyAboutCreatorPanel (line 455) | private _maybeNotifyAboutCreatorPanel() { constant ATTRS (line 509) | const ATTRS = { FILE: app/client/components/SelectionSummary.ts type Range (line 25) | interface Range { type SummaryPart (line 33) | interface SummaryPart { constant MAX_CELLS_TO_SCAN (line 48) | const MAX_CELLS_TO_SCAN = 1_000_000; class SelectionSummary (line 50) | class SelectionSummary extends Disposable { method constructor (line 94) | constructor( method buildDom (line 115) | public buildDom() { method _onSpliceChange (line 129) | private _onSpliceChange(splice: { start: number }) { method _onRowNotify (line 143) | private _onRowNotify(rows: RowsChanged) { method _scheduleRecalc (line 165) | private _scheduleRecalc() { method _recalc (line 170) | private _recalc() { function doCopy (line 268) | async function doCopy(value: string, elem: Element) { FILE: app/client/components/TypeConversion.ts type PrepColInfo (line 19) | interface PrepColInfo { function addColTypeSuffix (line 33) | function addColTypeSuffix(type: string, column: ColumnRec, docModel: Doc... function inferColTypeSuffix (line 52) | function inferColTypeSuffix(newPure: string, column: ColumnRec) { function getRefTableIdFromData (line 72) | function getRefTableIdFromData(docModel: DocModel, column: ColumnRec): s... function prepTransformColInfo (line 105) | async function prepTransformColInfo(options: { function guessWidgetOptionsSync (line 202) | function guessWidgetOptionsSync(options: { function setDisplayFormula (line 287) | async function setDisplayFormula( function getVisibleColName (line 300) | function getVisibleColName(docModel: DocModel, visibleColRef: number): s... function isReferenceCol (line 305) | function isReferenceCol(colModel: ColumnRec) { FILE: app/client/components/TypeTransform.ts class TypeTransform (line 32) | class TypeTransform extends ColumnTransform { method constructor (line 38) | constructor(gristDoc: GristDoc, fieldBuilder: FieldBuilder) { method buildDom (line 54) | public buildDom() { method addTransformColumn (line 107) | protected async addTransformColumn(toType: string) { method convertValuesActions (line 140) | protected convertValuesActions(): UserAction[] { method convertValues (line 150) | protected async convertValues() { method executeActions (line 157) | protected executeActions(): UserAction[] { method postAddTransformColumn (line 164) | protected postAddTransformColumn() { method cleanup (line 177) | protected cleanup() { method setType (line 184) | public async setType(toType: string) { FILE: app/client/components/UndoStack.ts type ActionGroupWithCursorPos (line 11) | interface ActionGroupWithCursorPos extends MinimalActionGroup { type IUndoState (line 19) | interface IUndoState { class UndoStack (line 28) | class UndoStack extends dispose.Disposable { method create (line 42) | public create(log: MinimalActionGroup[], options: { method pushAction (line 87) | public pushAction(ag: MinimalActionGroup): void { method sendUndoAction (line 117) | public async sendUndoAction(): Promise { method sendRedoAction (line 124) | public async sendRedoAction(): Promise { method enable (line 130) | public enable(): void { method disable (line 134) | public disable(): void { method _sendAction (line 138) | private async _sendAction(isUndo: boolean): Promise { method _findActionBundle (line 177) | private _findActionBundle(ag: ActionGroupWithCursorPos) { FILE: app/client/components/UnsavedChanges.ts class UnsavedChange (line 11) | class UnsavedChange extends Disposable { method constructor (line 12) | constructor( method haveUnsavedChanges (line 23) | public haveUnsavedChanges() { return !this._haveChanges || this._haveC... method save (line 24) | public async save(): Promise { return this._saveCB?.(); } class UnsavedChangeSet (line 27) | class UnsavedChangeSet { method haveUnsavedChanges (line 33) | public haveUnsavedChanges(): boolean { method saveChanges (line 40) | public async saveChanges(): Promise { method add (line 44) | public add(unsaved: UnsavedChange) { this._changes.add(unsaved); } method delete (line 45) | public delete(unsaved: UnsavedChange) { this._changes.delete(unsaved); } FILE: app/client/components/VersionUpdateBanner.ts type ShowVersionUpdateBannerPrefer (line 12) | interface ShowVersionUpdateBannerPrefer { class VersionUpdateBanner (line 17) | class VersionUpdateBanner extends Disposable { method constructor (line 21) | constructor(private _appModel: AppModel) { method buildDom (line 35) | public buildDom() { FILE: app/client/components/ViewAsBanner.ts class ViewAsBanner (line 24) | class ViewAsBanner extends Disposable { method constructor (line 28) | constructor(private _docPageModel: DocPageModel) { method buildDom (line 32) | public buildDom() { method _buildContent (line 45) | private _buildContent(userOverride: UserOverride) { method _initViewAsUsers (line 87) | private async _initViewAsUsers() { method _getUsersForViewAs (line 92) | private _getUsersForViewAs(): Promise { FILE: app/client/components/ViewConfigTab.js function ViewSectionData (line 27) | function ViewSectionData(section) { function ViewConfigTab (line 36) | function ViewConfigTab(options) { FILE: app/client/components/ViewLayout.ts function getInstanceConstructor (line 60) | function getInstanceConstructor(parentKey: string) { class ViewSectionHelper (line 69) | class ViewSectionHelper extends Disposable { method constructor (line 72) | constructor(gristDoc: GristDoc, vs: ViewSectionRec, options?: any) { class ViewLayout (line 98) | class ViewLayout extends DisposableWithEvents implements IDomComponent { method constructor (line 112) | constructor(public readonly gristDoc: GristDoc, viewId: number) { method buildDom (line 242) | public buildDom() { method freezeUntil (line 277) | public async freezeUntil(promise: Promise): Promise { method getFullLayoutSpec (line 290) | public getFullLayoutSpec() { method saveLayoutSpec (line 296) | public saveLayoutSpec(specs?: BoxSpec) { method removeViewSection (line 316) | public async removeViewSection(viewSectionRowId: number) { method rebuildLayout (line 376) | public rebuildLayout(layoutSpec: BoxSpec) { method _expandSection (line 388) | private _expandSection() { method _buildLeafContent (line 396) | private _buildLeafContent(sectionRowId: number) { method _updateLayoutSpecWithSections (line 409) | private _updateLayoutSpecWithSections(spec: BoxSpec) { method _onResize (line 415) | private _onResize() { method _maybeFocusInSection (line 424) | private _maybeFocusInSection() { method _openSortFilterMenu (line 437) | private _openSortFilterMenu(sectionId?: number) { constant DELETE_WIDGET (line 447) | const DELETE_WIDGET = "deleteOnlyWidget"; constant DELETE_DATA (line 448) | const DELETE_DATA = "deleteDataAndWidget"; constant CANCEL (line 449) | const CANCEL = "cancel"; type PromptAction (line 450) | type PromptAction = typeof DELETE_WIDGET | typeof DELETE_DATA | typeof C... function widgetRemovalPrompt (line 452) | function widgetRemovalPrompt(tableName: string): Promise { FILE: app/client/components/VirtualDoc.ts class VirtualDoc (line 75) | class VirtualDoc extends DisposableWithEvents implements GristDoc { method constructor (line 114) | constructor(public appModel: AppModel) { method focus (line 184) | public focus() { method buildDom (line 193) | public buildDom() { method tableDef (line 210) | public tableDef(tableId: string) { method addTable (line 215) | public addTable(table: TableSpec) { method hideColumn (line 350) | public async hideColumn(tableId: string, colId: string) { method showColumn (line 372) | public async showColumn(tableId: string, colId: string) { method getColumnRec (line 394) | public getColumnRec(tableId: string, colId: string) { method getTableRec (line 402) | public getTableRec(tableId: string) { method getMainSectionRec (line 407) | public getMainSectionRec(tableId: string) { method refreshTableData (line 418) | public async refreshTableData(tableId: string) { method setView (line 424) | public setView(label: string) { method getRecords (line 433) | public getRecords(table: string) { method onSetCursorPos (line 446) | public async onSetCursorPos(rowModel: BaseRowModel | undefined, fieldM... method getTableModelMaybeWithDiff (line 460) | public getTableModelMaybeWithDiff(tableId: string) { method getTableModel (line 469) | public getTableModel(tableId: string) { method docId (line 473) | public docId(): string { method openDocPage (line 477) | public async openDocPage(viewId: IDocPage): Promise { method showTool (line 481) | public showTool(tool: "none" | "docHistory" | "validations" | "discuss... method moveToCursorPos (line 484) | public async moveToCursorPos(cursorPos?: CursorPos, optActionGroup?: M... method getUndoStack (line 488) | public getUndoStack(): UndoStack { method getActionCounter (line 492) | public getActionCounter(): ActionCounter { method addEmptyTable (line 496) | public async addEmptyTable(): Promise { method addWidgetToPage (line 500) | public async addWidgetToPage(widget: IPageWidget): Promise { method addNewPage (line 504) | public async addNewPage(val: IPageWidget): Promise { method saveViewSection (line 508) | public async saveViewSection(section: ViewSectionRec, newVal: IPageWid... method saveLink (line 512) | public async saveLink(linkId: string, sectionId?: number): Promise { method selectBy (line 516) | public selectBy(widget: IPageWidget): any[] { method forkIfNeeded (line 520) | public async forkIfNeeded(): Promise { method recursiveMoveToCursorPos (line 524) | public async recursiveMoveToCursorPos( method activateEditorAtCursor (line 533) | public async activateEditorAtCursor(options?: { init?: string; state?:... method copyAnchorLink (line 537) | public async copyAnchorLink(_anchorInfo: unknown) {} method getCsvLink (line 539) | public getCsvLink() { method getTsvLink (line 543) | public getTsvLink() { method getDsvLink (line 547) | public getDsvLink() { method getXlsxActiveViewLink (line 551) | public getXlsxActiveViewLink() { method sendTableAction (line 555) | public async sendTableAction() {} method sendTableActions (line 556) | public async sendTableActions() {} method getActionLog (line 557) | public getActionLog(): ActionLog { method setComparison (line 561) | public setComparison(comparison: DocStateComparison | null) { type ExternalData (line 569) | interface ExternalData { type ExternalFormat (line 576) | interface ExternalFormat { type VirtualRowId (line 583) | type VirtualRowId = string | UIRowId; class VirtualSection (line 588) | class VirtualSection extends Disposable { method constructor (line 593) | constructor(protected _doc: VirtualDoc, protected props: { method buildDom (line 761) | public buildDom() { method _syncColumns (line 797) | private _syncColumns() { class ApiData (line 827) | class ApiData implements ExternalData { method constructor (line 828) | constructor(private _fun: () => MaybePromise) { method getData (line 831) | public async getData() { class RecordsFormat (line 839) | class RecordsFormat implements ExternalFormat { method convert (line 840) | public convert(tableId: string, data: TableRecordValues, keys: string[... class RawFormat (line 855) | class RawFormat implements ExternalFormat { method convert (line 856) | public convert(tableId: string, data: any[], keys: string[]): TableDat... type TableSpec (line 870) | interface TableSpec { type ColumnSpec (line 887) | interface ColumnSpec { class InMemoryDocModel (line 913) | class InMemoryDocModel extends DocModel { method constructor (line 914) | constructor() { class InMemoryApp (line 950) | class InMemoryApp extends DisposableWithEvents implements App { method constructor (line 955) | constructor(public topAppModel: TopAppModel) { class InMemoryDocPageModel (line 964) | class InMemoryDocPageModel extends DocPageModelImpl { method initialize (line 965) | public override initialize(): void { function generateInitialActions (line 974) | function generateInitialActions(tabDef: TableSpec): DocAction[] { function properId (line 1044) | function properId(label: string) { function maybePeek (line 1048) | function maybePeek(value: T | Observable) { function maybeUse (line 1052) | function maybeUse(use: UseCB, obs: BaseObservable | T): T { FILE: app/client/components/VirtualTable.ts class VirtualTable (line 51) | class VirtualTable extends Disposable { method constructor (line 70) | constructor(options: { method rename (line 88) | public rename(name: string) { method addColumn (line 95) | public addColumn(...cols: (Partial & { label: string })[]) { method setData (line 108) | public setData(args: any) { method buildDom (line 117) | public buildDom() { method _build (line 125) | private _build() { method _transform (line 271) | private _transform(rows: any[]): any { class ExternalTable (line 287) | class ExternalTable extends Disposable implements IExternalTable { method beforeEdit (line 293) | public async beforeEdit(editor: IEdit) {} method afterEdit (line 294) | public async afterEdit(editor: IEdit) {} method afterAnySchemaChange (line 295) | public async afterAnySchemaChange(editor: IEdit) {} method sync (line 296) | public async sync(editor: IEdit): Promise {} function toId (line 300) | function toId(label: string) { function toTableData (line 305) | function toTableData(name: string, data: Record[]): TableDa... class InMemoryGristDoc (line 321) | class InMemoryGristDoc extends Disposable { method constructor (line 345) | constructor(public docModel: DocModel, viewId: any) { method getCsvLink (line 358) | public getCsvLink() { method getTsvLink (line 362) | public getTsvLink() { method getDsvLink (line 366) | public getDsvLink() { method getXlsxActiveViewLink (line 370) | public getXlsxActiveViewLink() { method clearColumns (line 374) | public async clearColumns() {} method convertIsFormula (line 375) | public async convertIsFormula() {} method sendTableAction (line 376) | public async sendTableAction() {} method sendTableActions (line 377) | public async sendTableActions() {} method convertToCard (line 378) | public convertToCard() {} method getTableModelMaybeWithDiff (line 379) | public getTableModelMaybeWithDiff(tableId: string) { method getTableModel (line 383) | public getTableModel(tableId: string) { method onSetCursorPos (line 387) | public async onSetCursorPos(rowModel: BaseRowModel | undefined, fieldM... method getLinkingRowIds (line 398) | public getLinkingRowIds(sectionId: number): UIRowId[] | undefined { type ColDef (line 408) | interface ColDef { FILE: app/client/components/WidgetFrame.ts type WidgetFrameOptions (line 50) | interface WidgetFrameOptions { class WidgetFrame (line 100) | class WidgetFrame extends DisposableWithEvents { method constructor (line 117) | constructor(private _options: WidgetFrameOptions) { method useEvents (line 168) | public useEvents(source: IEventSource, access: AccessChecker) { method exposeAPI (line 185) | public exposeAPI(name: string, api: any, access: AccessChecker) { method exposeMethod (line 193) | public exposeMethod(name: string, handler: (...args: any[]) => any, ac... method editOptions (line 206) | public editOptions() { method callRemote (line 213) | public callRemote(name: string, ...args: any[]) { method buildDom (line 217) | public buildDom() { method _urlWithAccess (line 234) | private _urlWithAccess(url: string | null): string | null { method _getEmptyWidgetPage (line 254) | private _getEmptyWidgetPage(): string { method _onMessage (line 258) | private _onMessage(event: MessageEvent) { method _checkWidgetRepository (line 286) | private async _checkWidgetRepository() { function wrapObject (line 305) | function wrapObject(impl: T, accessChecker: AccessChec... type AccessChecker (line 327) | interface AccessChecker { class MinimumLevel (line 339) | class MinimumLevel implements AccessChecker { method constructor (line 340) | constructor(private _minimum: AccessLevel) {} method check (line 341) | public check(access: AccessLevel): boolean { type MethodMatcher (line 346) | type MethodMatcher = keyof T | "*"; class MethodAccess (line 368) | class MethodAccess implements AccessChecker { method constructor (line 370) | constructor() {} method require (line 371) | public require(level: AccessLevel, method: MethodMatcher = "*") { method check (line 376) | public check(access: AccessLevel, method?: string): boolean { class GristDocAPIImpl (line 408) | class GristDocAPIImpl implements GristDocAPI { method constructor (line 413) | constructor(private _doc: GristDoc) {} method getDocName (line 415) | public async getDocName() { method listTables (line 419) | public async listTables(): Promise { method fetchTable (line 426) | public async fetchTable(tableId: string) { method applyUserActions (line 430) | public async applyUserActions(actions: any[][], options?: any) { method getAccessToken (line 443) | public async getAccessToken(options: AccessTokenOptions) { class GristViewImpl (line 453) | class GristViewImpl implements GristView { method constructor (line 454) | constructor(private _baseView: BaseView, private _access: AccessLevel) { method fetchSelectedTable (line 457) | public async fetchSelectedTable(options: FetchSelectedOptions = {}): P... method fetchSelectedRecord (line 478) | public async fetchSelectedRecord(rowId: number, options: FetchSelected... method allowSelectBy (line 504) | public async allowSelectBy(): Promise { method setSelectedRows (line 511) | public async setSelectedRows(rowIds: number[] | null): Promise { method setCursorPos (line 515) | public setCursorPos(cursorPos: CursorPos): Promise { method _visibleColumns (line 520) | private _visibleColumns(options: FetchSelectedOptions): ColumnRec[] { class WidgetAPIImpl (line 554) | class WidgetAPIImpl implements WidgetAPI { method constructor (line 555) | constructor(private _section: ViewSectionRec) {} method setOptions (line 562) | public async setOptions(options: object): Promise { method getOptions (line 569) | public async getOptions(): Promise | null> { method clearOptions (line 573) | public async clearOptions(): Promise { method setOption (line 577) | public async setOption(key: string, value: any): Promise { method getOption (line 583) | public getOption(key: string): Promise { constant COMMAND_MINIMUM_ACCESS_LEVELS (line 589) | const COMMAND_MINIMUM_ACCESS_LEVELS = new Map([ class CommandAPI (line 595) | class CommandAPI { method constructor (line 596) | constructor(private _currentAccess: AccessLevel) {} method run (line 598) | public async run(commandName: CommandName): Promise { type IEventSource (line 624) | interface IEventSource extends DisposableWithEvents { class BaseEventSource (line 631) | class BaseEventSource extends DisposableWithEvents implements IEventSour... method attach (line 633) | public attach(frame: WidgetFrame): void { method _ready (line 637) | protected _ready() { method _notify (line 641) | protected _notify(data: any) { class RecordNotifier (line 652) | class RecordNotifier extends BaseEventSource { method constructor (line 654) | constructor(private _baseView: BaseView) { method _update (line 660) | private _update() { type ConfigNotifierOptions (line 673) | interface ConfigNotifierOptions { class ConfigNotifier (line 680) | class ConfigNotifier extends BaseEventSource { method constructor (line 690) | constructor(private _section: ViewSectionRec, private _options: Config... method _ready (line 701) | protected _ready() { method _update (line 706) | private _update({ fromReady}: { fromReady?: boolean } = {}) { class ThemeNotifier (line 722) | class ThemeNotifier extends BaseEventSource { method constructor (line 723) | constructor() { method _ready (line 734) | protected _ready() { method _update (line 738) | private _update({ fromReady}: { fromReady?: boolean } = {}) { class TableNotifier (line 753) | class TableNotifier extends BaseEventSource { method constructor (line 756) | constructor(private _baseView: BaseView) { method _ready (line 770) | protected _ready() { method _update (line 775) | private _update() { class CustomSectionAPIImpl (line 790) | class CustomSectionAPIImpl extends Disposable implements CustomSectionAPI { method constructor (line 791) | constructor( method mappings (line 799) | public async mappings(): Promise { method configure (line 807) | public async configure(settings: InteractionOptionsRequest): Promise | ko.Computed ... function subscribe (line 26) | function subscribe(value: Exclude, fn: (value: boolea... function init (line 61) | function init(optCommandGroups?: CommendGroupDef[]) { constant KEY_MAP_MAC (line 95) | const KEY_MAP_MAC = { constant KEY_MAP_WIN (line 106) | const KEY_MAP_WIN = { function getHumanKey (line 114) | function getHumanKey(key: string, mac: boolean): string { type CommandOptions (line 125) | interface CommandOptions { class Command (line 142) | class Command implements CommandDef { method constructor (line 155) | constructor(name: CommandName, desc: (() => string) | null, keys: stri... method getKeysDesc (line 174) | public getKeysDesc() { method getDesc (line 183) | public getDesc() { method getKeysDom (line 194) | public getKeysDom(separator?: ko.Observable) { method addGroup (line 204) | public addGroup(cmdGroup: CommandGroup) { method removeGroup (line 212) | public removeGroup(cmdGroup: CommandGroup) { method _updateActive (line 220) | private _updateActive() { method _run (line 249) | private _run(...args: any[]) { function wrapKeyCallback (line 258) | function wrapKeyCallback(callback: Func) { type Func (line 266) | type Func = (...args: any[]) => any; type CommandMap (line 267) | type CommandMap = { [key in CommandName]?: Func }; class CommandGroup (line 278) | class CommandGroup extends Disposable { method constructor (line 293) | constructor(commands: CommandMap, context: any, activate?: BoolLike) { method activate (line 332) | public activate(yesNo: boolean) { method _addGroup (line 340) | private _addGroup() { method _removeGroup (line 354) | private _removeGroup() { type BoundedFunc (line 368) | type BoundedFunc = (this: T, ...args: any[]) => any; type BoundedMap (line 369) | type BoundedMap = { [key in CommandName]?: BoundedFunc }; function createGroup (line 374) | function createGroup(commands: BoundedMap | null, context: T, acti... FILE: app/client/components/duplicatePage.ts function buildDuplicatePageDialog (line 14) | async function buildDuplicatePageDialog(gristDoc: GristDoc, pageId: numb... function duplicatePage (line 34) | async function duplicatePage(gristDoc: GristDoc, pageId: number, pageNam... FILE: app/client/components/duplicateWidget.ts type PageSelectOption (line 26) | type PageSelectOption = IOption & { isActivePage: boolean }; function buildDuplicateWidgetModal (line 28) | async function buildDuplicateWidgetModal(gristDoc: GristDoc, viewSection... function duplicateWidgets (line 72) | async function duplicateWidgets(gristDoc: GristDoc, srcViewSectionIds: n... function copyFilters (line 151) | async function copyFilters( function updateViewSections (line 178) | async function updateViewSections(gristDoc: GristDoc, duplicatedViewSect... function copyOriginalViewFields (line 210) | async function copyOriginalViewFields(gristDoc: GristDoc, viewSectionPai... function listAllViewFields (line 245) | function listAllViewFields(viewSections: ViewSectionRec[]) { function removeViewFields (line 251) | async function removeViewFields(gristDoc: GristDoc, fieldIds: number[]) { function createNewViewSections (line 259) | async function createNewViewSections(gristDoc: GristDoc, viewSections: V... function newViewSectionAction (line 297) | function newViewSectionAction(widget: IPageWidget, viewId: number) { function patchLayoutSpec (line 314) | function patchLayoutSpec(layoutSpec: BoxSpec, mapIds: { [id: number]: nu... type DuplicatedViewSection (line 329) | interface DuplicatedViewSection { FILE: app/client/components/modals.ts function buildConfirmDelete (line 26) | function buildConfirmDelete( function showDeprecatedWarning (line 70) | function showDeprecatedWarning( function reportUndo (line 111) | function reportUndo( type ShowTipPopupOptions (line 143) | interface ShowTipPopupOptions { function showTipPopup (line 152) | function showTipPopup( type ShowNewsPopupOptions (line 210) | interface ShowNewsPopupOptions { function showNewsPopup (line 214) | function showNewsPopup( function buildArrow (line 268) | function buildArrow() { function sideSelectorChunk (line 277) | function sideSelectorChunk(side: "top" | "bottom" | "left" | "right") { function fadeInFromSide (line 281) | function fadeInFromSide(side: "top" | "bottom" | "left" | "right") { constant HEADER_HEIGHT_PX (line 307) | const HEADER_HEIGHT_PX = 30; FILE: app/client/components/viewCommon.js function makeResizable (line 37) | function makeResizable(widthObservable, options) { FILE: app/client/declarations.d.ts type NewField (line 12) | interface NewField { class RecordLayout (line 20) | class RecordLayout extends Disposable { type ViewSectionData (line 46) | interface ViewSectionData { class ViewConfigTab (line 52) | class ViewConfigTab extends Disposable { class BaseRowModel (line 74) | class BaseRowModel extends Disposable { type NPartial (line 91) | type NPartial = { type Values (line 94) | type Values = T extends keyof SchemaTypes ? NPartial ... class MetaRowModel (line 97) | class MetaRowModel { type KoSaveableObservable (line 113) | type KoSaveableObservable = ko.Observable & SaveInterface; type KoSaveableComputed (line 114) | type KoSaveableComputed = ko.Computed & SaveInterface; type CustomComputed (line 116) | interface CustomComputed extends KoSaveableComputed { type ObjObservable (line 125) | interface ObjObservable extends ko.Observable { type SaveableObjObservable (line 130) | interface SaveableObjObservable extends ko.Observable<... class TableModel (line 167) | class TableModel extends RowSource { class MetaTableModel (line 194) | class MetaTableModel extends TableModel { type LazyArrayModel (line 219) | interface LazyArrayModel extends KoArray { class DataTableModel (line 228) | class DataTableModel extends TableModel { type ComputedWithKoUtils (line 241) | interface ComputedWithKoUtils extends ko.Computed { type ObservableWithKoUtils (line 245) | interface ObservableWithKoUtils extends ko.Observable { type Location (line 260) | interface Location { type JQuery (line 266) | interface JQuery { type ResizableOptions (line 272) | interface ResizableOptions { type JQueryUI (line 284) | interface JQueryUI { type Position (line 294) | interface Position { type Size (line 299) | interface Size { FILE: app/client/lib/ACIndex.ts type ACItem (line 17) | interface ACItem { function normalizeText (line 25) | function normalizeText(text: string): string { type ACIndex (line 38) | interface ACIndex { type HighlightFunc (line 43) | type HighlightFunc = (text: string) => string[]; type ACResults (line 51) | interface ACResults { type Word (line 65) | interface Word { type ACIndexOptions (line 71) | interface ACIndexOptions { class ACIndexImpl (line 88) | class ACIndexImpl implements ACIndex { method totalItems (line 98) | public get totalItems() { method constructor (line 103) | constructor(items: Item[], private _options: ACIndexOptions = {}) { method search (line 122) | public search(searchText: string): ACResults { method _findOverlaps (line 195) | private _findOverlaps(searchWord: string, searchWordPos: number): Map<... type BuildHighlightFunc (line 241) | type BuildHighlightFunc = (match: string) => DomContents; function buildHighlightedDom (line 246) | function buildHighlightedDom( function highlightMatches (line 261) | function highlightMatches(searchWords: string[], text: string): string[] { function findLongestPrefixLen (line 283) | function findLongestPrefixLen(text: string, choices: string[]): number { function findCommonPrefixLength (line 287) | function findCommonPrefixLength(text1: string, text2: string): number { function startsWithText (line 297) | function startsWithText(item: ACItem, text: string, searchWords: string[... FILE: app/client/lib/ACSelect.ts type ACSelectItem (line 9) | interface ACSelectItem extends ACItem { function buildACSelect (line 19) | function buildACSelect( FILE: app/client/lib/ACUserManager.ts type ACUserItem (line 26) | interface ACUserItem extends ACItem { function buildACMemberEmail (line 36) | function buildACMemberEmail( FILE: app/client/lib/BoxSpec.ts type BoxSpec (line 6) | interface BoxSpec { function purgeBoxSpec (line 13) | function purgeBoxSpec(options: { function addToSpec (line 50) | function addToSpec(tmpLayout: Layout, leafId: number) { FILE: app/client/lib/CellDiffTool.ts class CellDiffTool (line 7) | class CellDiffTool { method prepareCellDiff (line 27) | public prepareCellDiff(value: CellValue, formatter: BaseFormatter): Di... method _prepareTextDiff (line 57) | private _prepareTextDiff(txt1: string, txt2: string): Diff[] { method _notDiffWorthy (line 74) | private _notDiffWorthy(txt: string, parts: number) { method _isMostlyNumeric (line 79) | private _isMostlyNumeric(txt: string) { constant DIFF_LOCAL (line 86) | const DIFF_LOCAL = 2; FILE: app/client/lib/CustomSectionElement.ts type PluginCustomSection (line 9) | interface PluginCustomSection { class CustomSectionElement (line 14) | class CustomSectionElement { method getSections (line 18) | public static getSections(plugins: PluginInstance[]): PluginCustomSect... method find (line 36) | public static find(plugin: PluginInstance, sectionName: string): ViewP... FILE: app/client/lib/Delay.ts class Delay (line 8) | class Delay extends Disposable { method wrapWithDelay (line 16) | public static wrapWithDelay(ms: number, cb: (this: T, ...args: any[... method untilAnimationFrame (line 30) | public static untilAnimationFrame(cb: (this: T, ...args: any[]) => ... method create (line 51) | public create() { method cancel (line 58) | public cancel() { method isPending (line 68) | public isPending() { method schedule (line 78) | public schedule(ms: number, cb: (this: T, ...args: any[]) => any, o... type DisposableCB (line 87) | interface DisposableCB { FILE: app/client/lib/DocPluginManager.ts class DocPluginManager (line 12) | class DocPluginManager { method constructor (line 20) | constructor(private _options: { method receiveAction (line 56) | public receiveAction(action: any[]) { method makeAnonForwarder (line 68) | public makeAnonForwarder() { FILE: app/client/lib/DocSchemaImport.ts function getExistingDocSchema (line 5) | async function getExistingDocSchema(docApi: DocAPI): Promise): DomMethod void) { FILE: app/client/lib/GristWindow.ts type Window (line 18) | interface Window { FILE: app/client/lib/HomePluginManager.ts class HomePluginManager (line 12) | class HomePluginManager { method constructor (line 15) | constructor(options: { class NotAvailableForwarder (line 58) | class NotAvailableForwarder { method forwardPluginRpc (line 59) | public async forwardPluginRpc(pluginId: string, msg: any) { FILE: app/client/lib/ImportSourceElement.ts class ImportSourceElement (line 11) | class ImportSourceElement { method fromArray (line 15) | public static fromArray(pluginInstances: PluginInstance[]): ImportSour... method constructor (line 30) | private constructor(public plugin: PluginInstance, public importSource... FILE: app/client/lib/MultiUserManager.ts function parseEmailList (line 13) | function parseEmailList(emailListRaw: string): string[] { function validateEmail (line 20) | function validateEmail(email: string): boolean { function buildMultiUserManagerModal (line 25) | function buildMultiUserManagerModal( function buildRolesSelect (line 82) | function buildRolesSelect( function buildEmailsTextarea (line 106) | function buildEmailsTextarea( FILE: app/client/lib/ObservableMap.js function ObservableMap (line 37) | function ObservableMap(mapFunc) { FILE: app/client/lib/ObservableSet.js function ObservableSet (line 10) | function ObservableSet() { FILE: app/client/lib/ReferenceUtils.ts class ReferenceUtils (line 20) | class ReferenceUtils extends Disposable { method constructor (line 33) | constructor(public readonly field: ViewFieldRec, private readonly _gri... method idToText (line 57) | public idToText(value: unknown) { method autocompleteSearch (line 72) | public autocompleteSearch(text: string, rowId: number): ACResults { method doForwardCall (line 164) | protected doForwardCall(c: IMsgRpcCall): Promise { method doForwardMessage (line 172) | protected doForwardMessage(c: IMsgCustom): Promise { method activateImplementation (line 180) | protected async activateImplementation(): Promise { method deactivateImplementation (line 191) | protected async deactivateImplementation(): Promise { method _createViewProcess (line 202) | private _createViewProcess(path: string): [ViewProcess, number] { method _createRpc (line 224) | private _createRpc(path: string): Rpc { class ClientProcess (line 240) | class ClientProcess extends Disposable { method create (line 248) | public create(safeBrowser: SafeBrowser, rpc: Rpc, src: string) { method receiveAction (line 265) | public receiveAction(action: any[]) { class WorkerProcess (line 274) | class WorkerProcess extends ClientProcess { method create (line 275) | public create(safeBrowser: SafeBrowser, rpc: Rpc, src: string) { class ViewProcess (line 285) | class ViewProcess extends ClientProcess { class IframeProcess (line 295) | class IframeProcess extends ViewProcess { method create (line 296) | public create(safeBrowser: SafeBrowser, rpc: Rpc, src: string) { method _sendTheme (line 331) | private async _sendTheme({ theme, fromReady = false}: { theme: Theme, ... class WebviewProcess (line 339) | class WebviewProcess extends ViewProcess { method create (line 340) | public create(safeBrowser: SafeBrowser, rpc: Rpc, src: string) { FILE: app/client/lib/Signal.ts class Signal (line 37) | class Signal implements IDisposable, IDisposableOwner { method create (line 42) | public static create(owner: IDisposableOwner | null, value: T) { method fromEvents (line 49) | public static fromEvents( method compute (line 65) | public static compute(owner: Disposable | null, compute: ComputeFun... method constructor (line 95) | constructor(owner: IDisposableOwner | null, initialValue: T) { method dispose (line 100) | public dispose() { method autoDispose (line 104) | public autoDispose(disposable: IDisposable) { method pipe (line 111) | public pipe(signal: Signal) { method map (line 119) | public map(selector: (value: T) => Z): Signal { method filter (line 131) | public filter(selector: (value: T) => boolean): Signal { method distinct (line 144) | public distinct(): Signal { method flag (line 160) | public flag() { method listen (line 167) | public listen(handler: (value: T) => any) { method emit (line 177) | public emit(value: T) { method before (line 189) | public before(handler: CustomEmitter) { type ComputeFunction (line 194) | type ComputeFunction = (on: (s: Signal) => TS) => T; type CustomEmitter (line 195) | type CustomEmitter = (value: T, emit: (value: T) => void) => any; FILE: app/client/lib/Suggestions.ts type ISuggestionWithSubAttrs (line 8) | interface ISuggestionWithSubAttrs { function expandAndFilterSuggestions (line 21) | function expandAndFilterSuggestions( function findMatchingSuggestion (line 55) | function findMatchingSuggestion(text: string, suggestions: ISuggestionWi... function splitAttr (line 66) | function splitAttr(text: string): [string, string] { FILE: app/client/lib/TokenField.ts type IToken (line 28) | interface IToken { type ITokenFieldOptions (line 32) | interface ITokenFieldOptions { type ITokenFieldKeyBindings (line 58) | interface ITokenFieldKeyBindings { type ITokenFieldVariant (line 63) | type ITokenFieldVariant = "horizontal" | "vertical"; class TokenWrap (line 71) | class TokenWrap { method constructor (line 72) | constructor(public token: Token) {} class UndoItem (line 75) | class UndoItem { method constructor (line 76) | constructor(public redo: () => void, public undo: () => void) {} class TokenField (line 79) | class TokenField extends Disposable { method ctor (line 80) | public static ctor(): IDisposableCtor,... method constructor (line 107) | constructor(private _options: ITokenFieldOptions) { method attach (line 202) | public attach(elem: HTMLElement): void { method getRootElem (line 207) | public getRootElem(): HTMLElement { method getTextInput (line 212) | public getTextInput(): HTMLInputElement { method getTextInputValue (line 219) | public getTextInputValue(): string { method getHiddenInput (line 224) | public getHiddenInput(): HTMLInputElement { method getAutocomplete (line 231) | public getAutocomplete(): Autocomplete | null { method setTokens (line 243) | public setTokens(tokens: Token[]): void { method replaceToken (line 249) | public replaceToken(label: string, newToken: Token): void { method _openAutocomplete (line 256) | private _openAutocomplete() { method _addSelectedItem (line 266) | private _addSelectedItem(): boolean { method _onInputFocus (line 282) | private _onInputFocus() { method _onTokenClick (line 292) | private _onTokenClick(ev: MouseEvent, t: TokenWrap) { method _maybeSelectAllTokens (line 317) | private _maybeSelectAllTokens(ev: KeyboardEvent) { method _setFocus (line 329) | private _setFocus() { method _maybeBackspace (line 337) | private _maybeBackspace(ev: KeyboardEvent) { method _maybeDelete (line 350) | private _maybeDelete(ev: KeyboardEvent) { method _maybeAdvance (line 359) | private _maybeAdvance(ev: KeyboardEvent, advance: 1 | -1): void { method _toggleTokenSelection (line 399) | private _toggleTokenSelection(token: TokenWrap) { method _resetTokenSelection (line 410) | private _resetTokenSelection(token: TokenWrap | null) { method _deleteTokens (line 416) | private _deleteTokens(toDelete: Set>, advance: 1 | -1... method _getNextToken (line 424) | private _getNextToken(selection: Set>, advance: 1 | -... method _getSelectedIndexRange (line 430) | private _getSelectedIndexRange(selection: Set>): [num... method _onCopyEvent (line 442) | private _onCopyEvent(ev: ClipboardEvent): boolean { method _onCutEvent (line 457) | private _onCutEvent(ev: ClipboardEvent) { method _onPasteEvent (line 463) | private _onPasteEvent(ev: ClipboardEvent) { method _onMouseDown (line 495) | private _onMouseDown(startEvent: MouseEvent, t: TokenWrap) { method _recordUndo (line 579) | private _recordUndo(val: TokenWrap[], prev: TokenWrap[],... method _combineUndo (line 589) | private _combineUndo(callback: () => void) { method _undo (line 605) | private _undo(ev: KeyboardEvent): void { method _redo (line 619) | private _redo(ev: KeyboardEvent): void { method _maybeTrimTokens (line 636) | private _maybeTrimTokens(tokens: Token[]): Token[] { method _getNonEmptyTokens (line 644) | private _getNonEmptyTokens(tokens: Token[]): Token[] { type ITokenFieldStyles (line 795) | type ITokenFieldStyles = Partial; FILE: app/client/lib/UrlState.ts type UrlStateSpec (line 23) | interface UrlStateSpec { type UpdateFunc (line 37) | type UpdateFunc = (prevState: IUrlState) => IUrlState; class UrlState (line 42) | class UrlState extends Disposable { method constructor (line 46) | constructor(private _window: HistWindow, private _stateImpl: UrlStateS... method pushUrl (line 62) | public async pushUrl(urlState: IUrlState | UpdateFunc, method makeUrl (line 111) | public makeUrl(urlState: IUrlState | UpdateFunc, use: UseCB... method setHref (line 121) | public setHref(urlState: IUrlState | UpdateFunc): DomElemen... method setLinkUrl (line 134) | public setLinkUrl( method loadState (line 158) | public loadState() { method _getState (line 163) | private _getState(): IUrlState { method _mergeState (line 167) | private _mergeState(prevState: IUrlState, newState: IUrlState | Update... type HistWindow (line 175) | interface HistWindow extends EventTarget { type UseCB (line 185) | type UseCB = (obs: BaseObservable) => T; FILE: app/client/lib/Validator.ts type ValidationFunction (line 29) | type ValidationFunction = () => (boolean | Promise | void | Pro... class ValidationGroup (line 35) | class ValidationGroup { method validate (line 41) | public async validate() { method add (line 66) | public add(validator: Validator) { method inputReset (line 73) | public inputReset() { method reset (line 80) | public reset() { class Validator (line 88) | class Validator extends Disposable { method constructor (line 91) | constructor(public group: ValidationGroup, message: string, public che... method inputReset (line 100) | public inputReset() { method set (line 108) | public set(isValid: boolean | string) { method buildDom (line 118) | public buildDom() { FILE: app/client/lib/airtable/AirtableImportUI.ts type AirtableBase (line 50) | interface AirtableBase { type AirtableToGristMapping (line 56) | interface AirtableToGristMapping { type NewTable (line 62) | interface NewTable { type ExistingTable (line 67) | interface ExistingTable { type TokenPayload (line 72) | interface TokenPayload { type AirtableImportStep (line 78) | type AirtableImportStep = "auth" | "select-base" | "select-tables"; type Destination (line 80) | type Destination = ExistingDoc & { docSchema?: Computed { return this.requestJson(`... method deleteToken (line 768) | public deleteToken() { return this.requestJson(`${this._homeUrl}/oauth... function cssWarning (line 771) | function cssWarning(...args: DomElementArg[]) { function cssError (line 776) | function cssError(...args: DomElementArg[]) { FILE: app/client/lib/airtable/AirtableImporter.ts type ExistingDoc (line 20) | interface ExistingDoc { type NewDoc (line 25) | interface NewDoc { type AirtableImportDestination (line 31) | type AirtableImportDestination = NewDoc | ExistingDoc; type AirtableImportOptions (line 33) | interface AirtableImportOptions { type AirtableImportResult (line 40) | interface AirtableImportResult { function applyAirtableImportSchemaAndImportData (line 48) | async function applyAirtableImportSchemaAndImportData(params: { function validateAirtableSchemaImport (line 146) | function validateAirtableSchemaImport( FILE: app/client/lib/airtable/startDocAirtableImport.ts function startDocAirtableImport (line 11) | async function startDocAirtableImport(gristDoc: GristDoc) { FILE: app/client/lib/airtable/startHomeAirtableImport.ts function startHomeAirtableImport (line 13) | async function startHomeAirtableImport(home: HomeModel) { FILE: app/client/lib/autocomplete.ts type IAutocompleteOptions (line 17) | interface IAutocompleteOptions { class Autocomplete (line 54) | class Autocomplete extends Disposable { method constructor (line 72) | constructor( method getSelectedItem (line 122) | public getSelectedItem(): Item | undefined { method search (line 126) | public search(findMatch?: (items: Item[]) => number) { method _value (line 130) | private get _value() { method _value (line 139) | private set _value(value: string) { method _setSelected (line 151) | private _setSelected(index: number, updateValue: boolean) { method _findTargetItem (line 175) | private _findTargetItem(target: EventTarget | null): number { method _getNext (line 181) | private _getNext(step: 1 | -1): number { method _updateChoices (line 188) | private async _updateChoices(inputVal: string, findMatch?: (items: Ite... method _allItems (line 212) | private get _allItems() { method _maybeShowNoItemsMessage (line 216) | private _maybeShowNoItemsMessage() { method fn (line 236) | fn({ state }: any) { function getContainer (line 258) | function getContainer(elem: Element, attachElem: Element | string | null... FILE: app/client/lib/browserGlobals.ts type OrigGlobals (line 8) | type OrigGlobals = typeof globalThis; type Globals (line 10) | interface Globals extends Partial { type PossibleNames (line 15) | type PossibleNames = keyof Globals; type RequestedGlobals (line 17) | interface RequestedGlobals { function get (line 37) | function get(...neededNames: Names): Requ... function updateGlobals (line 52) | function updateGlobals(obj: RequestedGlobals) { function setGlobals (line 62) | function setGlobals(globals: Globals) { FILE: app/client/lib/browserInfo.ts function getParser (line 5) | function getParser() { function isDesktop (line 10) | function isDesktop() { function isIOS (line 18) | function isIOS() { function modKeyProp (line 26) | function modKeyProp(): "metaKey" | "ctrlKey" { function isWin (line 30) | function isWin() { FILE: app/client/lib/chartUtil.ts function sortByXValues (line 12) | function sortByXValues(series: { values: Datum[] }[]): void { function uniqXValues (line 28) | function uniqXValues(series: T[]) { function splitValues (line 40) | function splitValues(series: T[]): T[] { function splitValuesByIndex (line 45) | function splitValuesByIndex(series: T[], ... function consolidateValues (line 72) | function consolidateValues(series: { values: Datum[] }[], xvalues: Datum... function formatPercent (line 89) | function formatPercent(val: number) { FILE: app/client/lib/clipboardUtils.ts function copyToClipboard (line 8) | async function copyToClipboard(data: string | ClipboardItem) { function copyTextToClipboard (line 19) | async function copyTextToClipboard(txt: string) { function copyDataToClipboard (line 54) | async function copyDataToClipboard(data: ClipboardItem) { function readTextFromClipboard (line 65) | function readTextFromClipboard(): Promise { function readDataFromClipboard (line 76) | function readDataFromClipboard(): Promise { FILE: app/client/lib/dblclick.ts constant DOUBLE_TAP_INTERVAL_MS (line 3) | const DOUBLE_TAP_INTERVAL_MS = 500; function onDblClickMatchElem (line 22) | function onDblClickMatchElem(elem: EventTarget, selector: string, callba... FILE: app/client/lib/dispose.js class Disposable (line 68) | class Disposable { method constructor (line 72) | constructor(...args) { method create (line 80) | static create(...args) { function makeDisposable (line 211) | function makeDisposable(Constructor) { function safeCreate (line 225) | function safeCreate(Constructor, varArgs) { function wipeOutObject (line 279) | function wipeOutObject(obj) { function removeObjectToDispose (line 291) | function removeObjectToDispose(disposalList, obj) { function methodDisposer (line 316) | function methodDisposer(methodName) { function disposeHelper (line 327) | function disposeHelper(owner, disposer, obj) { function defaultDisposer (line 339) | function defaultDisposer(obj) { function emptyNode (line 354) | function emptyNode(node) { FILE: app/client/lib/dom.js function dom (line 39) | function dom(firstArg, ...args) { function createElemFromString (line 64) | function createElemFromString(tagString, elemCreator) { function createDOMElement (line 91) | function createDOMElement(tagName) { function createSVGElement (line 95) | function createSVGElement(tagName) { function handleChildren (line 100) | function handleChildren(elem, children, index) { function wrapInlinable (line 185) | function wrapInlinable(func, context, args) { function makeFilterFunc (line 316) | function makeFilterFunc(selectorOrFunc) { FILE: app/client/lib/domAsync.ts function domAsync (line 12) | function domAsync(promiseForDomContents: Promise, onError =... FILE: app/client/lib/domUtils.ts function makeTestId (line 8) | function makeTestId(prefix: string) { function autoFocus (line 19) | function autoFocus() { function autoSelect (line 23) | function autoSelect() { method create (line 31) | create(owner: IDisposableOwner, cb: (use: UseCB) => Promise): Asyn... type AsyncComputed (line 53) | interface AsyncComputed extends Observable { function stopEvent (line 63) | function stopEvent(ev: Event) { function domOnCustom (line 72) | function domOnCustom(name: string, handler: (args: any, event: Event, el... function domDispatch (line 84) | function domDispatch(element: Element, name: string, args?: any) { function onClickOutside (line 99) | function onClickOutside(click: () => void) { function onClickOutsideElem (line 113) | function onClickOutsideElem(elem: Node, click: () => void) { function findAncestorChild (line 131) | function findAncestorChild(ancestor: Element, elem: Element | null): Ele... function attachMouseOverOnMove (line 144) | function attachMouseOverOnMove(elem: T, callback:... FILE: app/client/lib/download.js function download (line 19) | function download(href) { FILE: app/client/lib/formUtils.ts type SubmitOptions (line 9) | interface SubmitOptions { function handleSubmit (line 29) | function handleSubmit( function formDataToObj (line 62) | function formDataToObj(formElem: HTMLFormElement): { [key: string]: stri... function submitForm (line 78) | async function submitForm(fields: { [key: string]: string }, form: HTMLF... function handleFormError (line 86) | function handleFormError(err: unknown, errObs: Observable) { class TypedFormData (line 101) | class TypedFormData { method constructor (line 104) | constructor(private _formElement: HTMLFormElement) { method keys (line 108) | public keys() { method type (line 122) | public type(key: string) { method get (line 126) | public get(key: string) { method set (line 134) | public set(key: string, value: any) { method getAll (line 138) | public getAll(key: string) { function typedFormDataToJson (line 151) | function typedFormDataToJson(formData: TypedFormData) { FILE: app/client/lib/formatUtils.ts function dateFmt (line 6) | function dateFmt(timestamp: number | null | string | Date): string { function dateFmtFull (line 20) | function dateFmtFull(timestamp: number | null | string | Date): string { function timeFmt (line 28) | function timeFmt(timestampMs: number): string { FILE: app/client/lib/fromKoSave.ts function fromKoSave (line 16) | function fromKoSave(koObs: IKnockoutObservable): Observable { class KoSaveWrapObs (line 20) | class KoSaveWrapObs extends KoWrapObs { method constructor (line 21) | constructor(_koObs: IKnockoutObservable) { method set (line 28) | public set(value: T): void { FILE: app/client/lib/getOrCreateStyleElement.ts function getOrCreateStyleElement (line 11) | function getOrCreateStyleElement(id: string, insertOptions: { FILE: app/client/lib/guessTimezone.ts function guessTimezone (line 7) | async function guessTimezone() { FILE: app/client/lib/hashUtils.ts function hashCode (line 4) | function hashCode(str: string): number { FILE: app/client/lib/helpScout.ts type BeaconCmd (line 28) | type BeaconCmd = "init" | "destroy" | "open" | "close" | "toggle" | "sea... type BeaconRoute (line 32) | type BeaconRoute = "/ask/message/" | "/answers/"; type IUserObj (line 34) | interface IUserObj { type IFormObj (line 44) | interface IFormObj { type ISessionData (line 52) | interface ISessionData { type ICallbackAttributes (line 56) | interface ICallbackAttributes { function Beacon (line 77) | function Beacon(method: BeaconCmd, options?: unknown, data?: unknown) { function _beacon (line 84) | function _beacon(method: BeaconCmd, options?: unknown, data?: unknown) { function initBeacon (line 89) | function initBeacon(): void { function _beaconOpen (line 126) | function _beaconOpen(userObj: IUserObj | null, options: IBeaconOpenOptio... function fixBeaconBaseHref (line 206) | function fixBeaconBaseHref() { type IBeaconOpenOptions (line 220) | interface IBeaconOpenOptions { function beaconOpenMessage (line 236) | function beaconOpenMessage(options: IBeaconOpenOptions) { function getBeaconUserObj (line 245) | function getBeaconUserObj(appModel: AppModel | null): IUserObj | null { FILE: app/client/lib/imports.d.ts type Ace (line 17) | type Ace = typeof ace; type MomentTimezone (line 18) | type MomentTimezone = typeof momentTimezone; type PlotlyType (line 19) | type PlotlyType = typeof plotly; FILE: app/client/lib/koArray.d.ts class KoArray (line 3) | class KoArray { FILE: app/client/lib/koArray.js function koArray (line 31) | function koArray(optInitialValues) { function SyncedState (line 75) | function SyncedState(constructFunc, key) { function KoArray (line 112) | function KoArray(initialValues) { function noop (line 324) | function noop() {} function identity (line 325) | function identity(x) { return x; } FILE: app/client/lib/koArrayWrap.ts function createObsArray (line 12) | function createObsArray( class KoWrapObsArray (line 26) | class KoWrapObsArray extends MutableObsArray { method constructor (line 29) | constructor(_koArray: KoArray) { method dispose (line 38) | public dispose(): void { FILE: app/client/lib/koDom.js function setBinding (line 37) | function setBinding(elem, valueOrFunc, updaterFunc) { function makeBinding (line 70) | function makeBinding(valueOrFunc, updaterFunc) { function text (line 82) | function text(valueOrFunc) { function bootstrapToken (line 107) | function bootstrapToken(templateToken, valueOrFunc) { function attr (line 122) | function attr(attrName, valueOrFunc) { function boolAttr (line 139) | function boolAttr(attrName, valueOrFunc) { function style (line 156) | function style(property, valueOrFunc) { function show (line 177) | function show(boolValueOrFunc) { function hide (line 189) | function hide(boolValueOrFunc) { function domData (line 199) | function domData(key, valueOrFunc) { function value (line 210) | function value(valueOrFunc) { function toggleClass (line 226) | function toggleClass(className, boolValueOrFunc) { function toggleDisabled (line 240) | function toggleDisabled(boolValueOrFunc) { function cssClass (line 257) | function cssClass(valueOrFunc) { function scrollChildIntoView (line 282) | function scrollChildIntoView(valueOrFunc) { function doScrollChildIntoView (line 287) | function doScrollChildIntoView(elem, index, sync) { function scope (line 363) | function scope(valueOrFunc, contentFunc) { function maybe (line 407) | function maybe(boolValueOrFunc, contentFunc) { function foreach (line 431) | function foreach(data, itemCreateFunc) { FILE: app/client/lib/koDomScrolly.js function ScrollyPane (line 30) | function ScrollyPane(scrolly, paneIndex, container, options, itemCreateF... function Scrolly (line 154) | function Scrolly(dataModel) { function getInstance (line 255) | function getInstance(dataModel) { function scrolly (line 647) | function scrolly(data, options, itemCreateFunc) { FILE: app/client/lib/koForm.js function genSpinner (line 245) | function genSpinner(valueObservable, getNewValue, shouldDisable) { function getNewValue (line 297) | function getNewValue(value, direction) { function shouldDisable (line 307) | function shouldDisable(value, direction) { function getNewValue (line 318) | function getNewValue(value, direction) { function shouldDisable (line 324) | function shouldDisable(value, direction) { function handleReorderStop (line 513) | function handleReorderStop(container, e, ui) { function handleConnectedStop (line 528) | function handleConnectedStop(e, ui) { function revertRemovedItem (line 554) | function revertRemovedItem(ui, parent, item, err) { function getDraggableItemModel (line 571) | function getDraggableItemModel(elem) { function getNextDraggableItemModel (line 578) | function getNextDraggableItemModel(elem) { function resetDraggedItem (line 582) | function resetDraggedItem(elem) { function enableDraggableConnection (line 588) | function enableDraggableConnection(draggable) { function connectDraggableToClass (line 602) | function connectDraggableToClass(draggable, className) { function textInput (line 719) | function textInput(valueObservable, options, moreArgs) { function _initTabs (line 1041) | function _initTabs(optObservable, labelSelector, elem) { function _addTab (line 1057) | function _addTab(tabsSelector, labelElem, contentElem) { FILE: app/client/lib/koUtil.js function withKoUtils (line 8) | function withKoUtils(obj) { function _wrapComputedRead (line 83) | function _wrapComputedRead(readFunc) { function setComputedErrorHandler (line 107) | function setComputedErrorHandler(handlerFunc) { function observableWithDefault (line 129) | function observableWithDefault(obs, defaultOrFunc, optContext) { function observableNumber (line 152) | function observableNumber(obs) { function computedAutoDispose (line 168) | function computedAutoDispose(optionsOrReadFunc, target, options) { function computedBuilder (line 225) | function computedBuilder(callback, optContext) { FILE: app/client/lib/loadScript.ts function loadScript (line 7) | function loadScript(url: string) { function loadCssFile (line 18) | function loadCssFile(url: string): Promise { FILE: app/client/lib/localStorageObs.ts function getStorageBoolObs (line 6) | function getStorageBoolObs(store: Storage, key: string, defValue: boolea... function localStorageBoolObs (line 19) | function localStorageBoolObs(key: string, defValue = false): Observable<... function sessionStorageBoolObs (line 26) | function sessionStorageBoolObs(key: string, defValue = false): Observabl... function getStorageObs (line 30) | function getStorageObs(store: Storage, key: string, defaultValue?: strin... function localStorageObs (line 39) | function localStorageObs(key: string, defaultValue?: string): Observable... function sessionStorageObs (line 46) | function sessionStorageObs(key: string, defaultValue?: string): Observab... function getStorageJsonObs (line 50) | function getStorageJsonObs(store: Storage, key: string, defaultValue:... function localStorageJsonObs (line 60) | function localStorageJsonObs(key: string, defaultValue: T): Observabl... function sessionStorageJsonObs (line 67) | function sessionStorageJsonObs(key: string, defaultValue: T): Observa... FILE: app/client/lib/localization.ts function setupLocale (line 8) | async function setupLocale() { function detectCurrentLang (line 67) | function detectCurrentLang() { function setAnonymousLocale (line 81) | function setAnonymousLocale(lng: string) { function tString (line 89) | function tString(key: string, args?: any, instance = i18next): string { type InferResult (line 100) | type InferResult = T extends Record>(key: string, args?: T | null, ... function domT (line 109) | function domT(key: string, args: any, tImpl: typeof i18next.t) { function hasTranslation (line 138) | function hasTranslation(key: string) { function missingInterpolationHandler (line 142) | function missingInterpolationHandler(key: string, value: any) { function isLikeDomContents (line 149) | function isLikeDomContents(value: any): boolean { function makeT (line 161) | function makeT(scope: string, instance?: typeof i18next) { FILE: app/client/lib/log.ts type LogMethod (line 8) | type LogMethod = (message: string, ...args: any[]) => void; FILE: app/client/lib/markdown.ts function markdown (line 27) | function markdown(markdownObs: BindableValue, options: { inline?... function cssMarkdownSpan (line 36) | function cssMarkdownSpan( function inlineMarkdown (line 58) | function inlineMarkdown(markdownObs: BindableValue): DomContents { function getMarkdownValue (line 62) | function getMarkdownValue(markdownValue: string, options: { inline?: boo... function stripLinks (line 72) | function stripLinks(markdownText: string) { FILE: app/client/lib/nameUtils.ts constant VALID_NAME_REGEXP (line 7) | const VALID_NAME_REGEXP = /^(\w|[^\u0000-\u007F])(\w|[- ./'"()]|[^\u0000... function checkName (line 12) | function checkName(name: string): boolean { FILE: app/client/lib/pausableObs.ts type PausableObservable (line 3) | interface PausableObservable extends Observable { function createPausableObs (line 15) | function createPausableObs( FILE: app/client/lib/popupControl.ts function popupControl (line 16) | function popupControl(reference: Element, domCreator: IPopupDomCreator, ... FILE: app/client/lib/popupUtils.ts function documentCursor (line 7) | function documentCursor(type: "ns-resize" | "grabbing"): IDisposable { function movable (line 28) | function movable(options: { FILE: app/client/lib/sanitizeUrl.ts function sanitizeHttpUrl (line 16) | function sanitizeHttpUrl(url: string): string | null { function sanitizeLinkUrl (line 40) | function sanitizeLinkUrl(url: string): string | null { FILE: app/client/lib/sessionObs.ts type SessionObs (line 10) | interface SessionObs extends Observable { function createSessionObs (line 36) | function createSessionObs( function isNumber (line 65) | function isNumber(t: any): t is number { return typeof t === "number"; } function isBoolean (line 66) | function isBoolean(t: any): t is boolean { return typeof t === "boolean"; } function isString (line 67) | function isString(t: any): t is string { return typeof t === "string"; } FILE: app/client/lib/simpleList.ts type ISimpleListOpt (line 26) | interface ISimpleListOpt = IOption> { class SimpleList (line 32) | class SimpleList = IOption> extends Disposable { method constructor (line 39) | constructor(private _ctl: IOpenController, method listenKeys (line 82) | public listenKeys(elem: HTMLElement) { method setSelected (line 93) | public setSelected(index: number) { method _update (line 108) | private _update() { method _findTargetItem (line 112) | private _findTargetItem(target: EventTarget | null): number { method _getSelectedData (line 119) | private _getSelectedData() { method _doAction (line 123) | private _doAction(value: T | null) { method _getNext (line 130) | private _getNext(index: number, step: 1 | -1): number { method _getNextSelectable (line 137) | private _getNextSelectable(step: 1 | -1): number { FILE: app/client/lib/sortUtil.ts function addToSort (line 17) | function addToSort(sortSpecObs: ko.Observable, colRef: nu... function sortBy (line 29) | function sortBy(sortSpecObs: ko.Observable, colRef: numbe... function updatePositions (line 39) | async function updatePositions(gristDoc: GristDoc, section: ViewSectionR... FILE: app/client/lib/storage.ts function getStorage (line 15) | function getStorage(): Storage { function getSessionStorage (line 23) | function getSessionStorage(): Storage { function testStorage (line 37) | function testStorage(storageName: "localStorage" | "sessionStorage"): St... function createInMemoryStorage (line 54) | function createInMemoryStorage(): Storage { FILE: app/client/lib/tableUtil.ts function fieldInsertPositions (line 24) | function fieldInsertPositions(viewFields: KoArray, index: ... function makePasteText (line 36) | function makePasteText(tableData: TableData, selection: CopySelection, i... function getDocIdHash (line 52) | function getDocIdHash(): string | undefined { function makePasteHtml (line 66) | function makePasteHtml(tableData: TableData, selection: CopySelection, i... type RichPasteObject (line 101) | interface RichPasteObject { type PasteData (line 109) | type PasteData = string[][] | RichPasteObject[][] | File[][][]; function parsePasteHtml (line 116) | function parsePasteHtml(data: string): RichPasteObject[][] { function _styleAttr (line 146) | function _styleAttr(style: object | undefined) { function makeDeleteAction (line 160) | function makeDeleteAction(selection: CopySelection): BulkUpdateRecord | ... function fillSelectionDown (line 185) | function fillSelectionDown(selection: CopySelection, tableModel: TableMo... FILE: app/client/lib/telemetry.ts function logTelemetryEvent (line 5) | function logTelemetryEvent(event: TelemetryEvent, metadata?: TelemetryMe... FILE: app/client/lib/testState.ts function setTestState (line 6) | function setTestState(state: Partial) { function getTestState (line 13) | function getTestState(): TestState { FILE: app/client/lib/textUtils.ts function findLinks (line 41) | function findLinks(text: string): { value: string, isLink: boolean }[] { function hashFnv32a (line 56) | function hashFnv32a(str: string): string { function simpleStringHash (line 69) | function simpleStringHash(str: string) { FILE: app/client/lib/timeUtils.ts function getTimeFromNow (line 13) | function getTimeFromNow(isoOrTimestamp: string | number): string { FILE: app/client/lib/trapTabKey.ts function trapTabKey (line 34) | function trapTabKey(container: HTMLElement, tabEvent: KeyboardEvent) { function getFocusableEdges (line 53) | function getFocusableEdges(el: HTMLElement) { function findFocusableEl (line 65) | function findFocusableEl( function getActiveEl (line 132) | function getActiveEl( function canHaveFocusableChildren (line 162) | function canHaveFocusableChildren(el: HTMLElement) { function getNextChildEl (line 174) | function getNextChildEl(el: ParentNode, forward: boolean) { function getNextSiblingEl (line 178) | function getNextSiblingEl(el: HTMLElement, forward: boolean) { FILE: app/client/lib/uploads.ts type ProgressCB (line 24) | type ProgressCB = (percent: number) => void; type UploadOptions (line 26) | interface UploadOptions { type SelectFileOptions (line 31) | interface SelectFileOptions extends UploadOptions { constant EXTENSIONS_IMPORTABLE_WITHIN_DOC (line 38) | const EXTENSIONS_IMPORTABLE_WITHIN_DOC = [".xlsx", ".json", ".csv", ".ts... constant EXTENSIONS_IMPORTABLE_AS_DOC (line 40) | const EXTENSIONS_IMPORTABLE_AS_DOC = [".grist", ".csv", ".tsv", ".dsv", ... function selectFiles (line 49) | async function selectFiles(options: SelectFileOptions, function selectPicker (line 67) | async function selectPicker(options: SelectFileOptions) { function getFileDialogOptions (line 73) | function getFileDialogOptions(options: SelectFileOptions): FileDialogOpt... function getElectronOptions (line 85) | function getElectronOptions(options: SelectFileOptions) /* : OpenDialogO... function uploadFiles (line 104) | async function uploadFiles( function uploadFormData (line 145) | async function uploadFormData( function fetchURL (line 182) | async function fetchURL( function isDriveUrl (line 208) | function isDriveUrl(url: string) { FILE: app/client/lib/urlUtils.ts type URLOptions (line 4) | interface URLOptions { function buildURL (line 46) | function buildURL(path: string, options: URLOptions = {}): URL { type GetLoginOrSignupUrlOptions (line 59) | interface GetLoginOrSignupUrlOptions { function getLoginUrl (line 66) | function getLoginUrl(options: GetLoginOrSignupUrlOptions = {}): string { function getSignupUrl (line 71) | function getSignupUrl(options: GetLoginOrSignupUrlOptions = {}): string { function getLogoutUrl (line 76) | function getLogoutUrl(): string { function getAccountDeletedUrl (line 81) | function getAccountDeletedUrl(): string { function getLoginOrSignupUrl (line 86) | function getLoginOrSignupUrl(options: GetLoginOrSignupUrlOptions = {}): ... function getWelcomeHomeUrl (line 90) | function getWelcomeHomeUrl() { constant FINAL_PATHS (line 98) | const FINAL_PATHS = ["/signed-out", "/account-deleted"]; function _getCurrentUrl (line 103) | function _getCurrentUrl(): string { function getLoginPageUrl (line 111) | function getLoginPageUrl( FILE: app/client/models/AdminChecks.ts class AdminChecks (line 14) | class AdminChecks { method constructor (line 25) | constructor(private _parent: Disposable, private _installAPI: InstallA... method fetchAvailableChecks (line 34) | public async fetchAvailableChecks() { method requestCheck (line 54) | public requestCheck(probe: BootProbeInfo): AdminCheckRequest { method requestCheckById (line 77) | public requestCheckById(use: UseCBOwner, id: BootProbeIds): AdminCheck... type AdminCheckRequest (line 87) | interface AdminCheckRequest { class AdminCheckRunner (line 96) | class AdminCheckRunner { method constructor (line 97) | constructor(private _installAPI: InstallAPI, method start (line 110) | public start() { type ProbeDetails (line 170) | interface ProbeDetails { FILE: app/client/models/AppModel.ts type PageType (line 40) | type PageType = type TopAppModel (line 53) | interface TopAppModel { type AppModel (line 100) | interface AppModel { type TopAppModelOptions (line 151) | interface TopAppModelOptions { class TopAppModelImpl (line 156) | class TopAppModelImpl extends Disposable implements TopAppModel { method constructor (line 172) | constructor(private _window: { gristConfig?: GristLoadConfig }, method initialize (line 198) | public initialize(): void { method reload (line 203) | public reload(): void { method getWidgets (line 211) | public async getWidgets(): Promise { method testReloadWidgets (line 215) | public async testReloadWidgets() { method getUntrustedContentOrigin (line 223) | public getUntrustedContentOrigin() { method fetchUsersAndOrgs (line 240) | public async fetchUsersAndOrgs() { method _doInitialize (line 249) | private async _doInitialize() { class AppModelImpl (line 282) | class AppModelImpl extends Disposable implements AppModel { method constructor (line 359) | constructor( method planName (line 409) | public get planName() { method showUpgradeModal (line 413) | public async showUpgradeModal(plan?: PlanSelection) { method showNewSiteModal (line 429) | public async showNewSiteModal(plan?: PlanSelection) { method isSupport (line 439) | public isSupport() { method isBillingManager (line 443) | public isBillingManager() { method isOwner (line 447) | public isOwner() { method isOwnerOrEditor (line 451) | public isOwnerOrEditor() { method isInstallAdmin (line 455) | public isInstallAdmin(): boolean { method refreshOrgUsage (line 462) | public async refreshOrgUsage() { method dismissPopup (line 475) | public dismissPopup(name: DismissedPopup, isSeen: boolean): void { method switchUser (line 479) | public async switchUser(user: FullUser, org?: string) { method isFreePlan (line 484) | public isFreePlan() { method _updateLastVisitedOrgDomain (line 488) | private _updateLastVisitedOrgDomain({ doc, org }: IGristUrlState, avai... method _recordSignUpIfIsNewUser (line 508) | private _recordSignUpIfIsNewUser() { function getOrgNameOrGuest (line 534) | function getOrgNameOrGuest(org: Organization | null, user: FullUser | nu... function newUserAPIImpl (line 542) | function newUserAPIImpl(): UserAPIImpl { FILE: app/client/models/AuditLogsModel.ts type AuditLogsModel (line 11) | interface AuditLogsModel { type AuditLogsModelOptions (line 26) | interface AuditLogsModelOptions { class AuditLogsModelImpl (line 30) | class AuditLogsModelImpl extends Disposable implements AuditLogsModel { method constructor (line 36) | constructor(private _options: AuditLogsModelOptions) { method fetchStreamingDestinations (line 40) | public async fetchStreamingDestinations(): Promise { method createStreamingDestination (line 60) | public async createStreamingDestination( method updateStreamingDestination (line 74) | public async updateStreamingDestination( method deleteStreamingDestination (line 95) | public async deleteStreamingDestination( method _updateStreamingDestinations (line 103) | private async _updateStreamingDestinations( FILE: app/client/models/BaseRowModel.js function BaseRowModel (line 19) | function BaseRowModel(tableModel, colNames) { FILE: app/client/models/ChatHistory.ts type ChatHistory (line 12) | interface ChatHistory { type ChatMessage (line 22) | interface ChatMessage { FILE: app/client/models/ClientColumnGetters.ts class ClientColumnGetters (line 14) | class ClientColumnGetters implements ColumnGetters { method constructor (line 19) | constructor(private _tableModel: DataTableModel, private _options: { method getColGetter (line 23) | public getColGetter(colSpec: Sort.ColSpec): ColumnGetter | null { method getManualSortGetter (line 52) | public getManualSortGetter(): ((rowId: number) => any) | null { class ClientColumnGettersByColId (line 62) | class ClientColumnGettersByColId implements ColumnGettersByColId { method constructor (line 63) | constructor(private _tableData: TableData) { method getColGetterByColId (line 66) | public getColGetterByColId(colId: string): ColumnGetter { FILE: app/client/models/ColumnACIndexes.ts type ICellItem (line 18) | interface ICellItem { class ColumnACIndexes (line 24) | class ColumnACIndexes { method constructor (line 27) | constructor(private _tableData: TableData) {} method getColACIndex (line 34) | public getColACIndex(colId: string, formatter: BaseFormatter): ACIndex... method buildColACIndex (line 38) | public buildColACIndex( function itemCompare (line 61) | function itemCompare(a: ICellItem, b: ICellItem) { FILE: app/client/models/ColumnCache.ts class ColumnCache (line 9) | class ColumnCache { method constructor (line 12) | constructor(private _tableData: TableData) { method getValue (line 22) | public getValue(colId: string, calc: () => T): T { method _invalidateCache (line 26) | private _invalidateCache(action: DocAction): void { method _clearCache (line 39) | private _clearCache(): void { FILE: app/client/models/ColumnFilter.ts class ColumnFilter (line 19) | class ColumnFilter extends Disposable { method constructor (line 36) | constructor(private _initialFilterJson: string, private _columnType: s... method columnType (line 44) | public get columnType() { method initialFilterJson (line 48) | public get initialFilterJson() { method setState (line 52) | public setState(filterJson: string | FilterSpec) { method includes (line 71) | public includes(val: CellValue): boolean { method add (line 75) | public add(val: CellValue) { method addMany (line 79) | public addMany(values: CellValue[]) { method delete (line 91) | public delete(val: CellValue) { method deleteMany (line 95) | public deleteMany(values: CellValue[]) { method clear (line 107) | public clear() { method selectAll (line 113) | public selectAll() { method makeFilterJson (line 120) | public makeFilterJson(): string { method hasChanged (line 131) | public hasChanged(): boolean { method getBoundsValue (line 136) | public getBoundsValue(minMax: "min" | "max"): number { method _updateState (line 142) | private _updateState(): void { method _getState (line 146) | private _getState(): FilterState { method _isRange (line 150) | private _isRange() { method _toValues (line 154) | private _toValues() { constant ALL_INCLUSIVE_FILTER_JSON (line 168) | const ALL_INCLUSIVE_FILTER_JSON = '{"excluded":[]}'; constant NEW_FILTER_JSON (line 179) | const NEW_FILTER_JSON = "{}"; FILE: app/client/models/ColumnFilterMenuModel.ts constant MAXIMUM_SHOWN_FILTER_ITEMS (line 11) | const MAXIMUM_SHOWN_FILTER_ITEMS = 500; type IFilterCount (line 13) | interface IFilterCount { type ICompare (line 26) | type ICompare = (a: T, b: T) => number; type ColumnFilterMenuModelParams (line 30) | interface ColumnFilterMenuModelParams { class ColumnFilterMenuModel (line 38) | class ColumnFilterMenuModel extends Disposable { method constructor (line 111) | constructor(private _params: ColumnFilterMenuModelParams) { FILE: app/client/models/ColumnToMap.ts class ColumnToMapImpl (line 7) | class ColumnToMapImpl implements Required { method constructor (line 25) | constructor(def: string | ColumnToMap) { method canByMapped (line 53) | public canByMapped(pureType: string) { FILE: app/client/models/ConnectState.ts type ConnectState (line 10) | enum ConnectState { Connected, JustDisconnected, RecentlyDisconnected, R... class ConnectStateManager (line 12) | class ConnectStateManager extends Disposable { method setConnected (line 22) | public setConnected(yesNo: boolean) { method _setState (line 38) | private _setState(state: ConnectState) { FILE: app/client/models/DataRowModel.ts class DataRowModel (line 17) | class DataRowModel extends BaseRowModel { method constructor (line 31) | public constructor(dataTableModel: DataTableModel, colNames: string[]) { method getValidationNameFromId (line 54) | public getValidationNameFromId(id: number) { method updateColValues (line 62) | public async updateColValues(colValues: ColValues) { method assign (line 96) | public assign(rowId: number | "new" | null) { method _assignColumn (line 116) | private _assignColumn(colName: string) { FILE: app/client/models/DataTableModel.js function DataTableModel (line 21) | function DataTableModel(docModel, tableData, tableMetaRow) { function LazyArrayModel (line 113) | function LazyArrayModel(sortedRowSet, makeRowModelFunc) { FILE: app/client/models/DataTableModelWithDiff.ts constant ROW_ID_SKIP (line 18) | const ROW_ID_SKIP = -1; class ExtraRows (line 30) | class ExtraRows { method interpretRowId (line 34) | public static interpretRowId( method constructor (line 54) | public constructor(public readonly tableId?: string, public readonly c... method encodeLeftRemoveRow (line 73) | public encodeLeftRemoveRow(id: number) { method encodeRightAddRow (line 77) | public encodeRightAddRow(id: number) { method getExtraRows (line 84) | public getExtraRows(): readonly number[] { method getRowType (line 91) | public getRowType(rowId: number) { class DataTableModelWithDiff (line 118) | class DataTableModelWithDiff extends DisposableWithEvents implements Dat... method constructor (line 135) | public constructor(public core: DataTableModel, private _comparison: D... method getExtraRows (line 168) | public getExtraRows() { method createLazyRowsModel (line 172) | public createLazyRowsModel(sortedRowSet: SortedRowSet, optRowModelClas... method createFloatingRowModel (line 176) | public createFloatingRowModel(optRowModelClass?: any): BaseRowModel { method fetch (line 180) | public fetch(force?: boolean): Promise { method getAllRows (line 184) | public getAllRows(): readonly number[] { method getNumRows (line 189) | public getNumRows(): number { method getRowGrouping (line 193) | public getRowGrouping(groupByCol: string): RowGrouping { method sendTableActions (line 197) | public sendTableActions(actions: UserAction[], optDesc?: string): Prom... method sendTableAction (line 201) | public sendTableAction(action: UserAction, optDesc?: string): Promise<... class TableDataWithDiff (line 210) | class TableDataWithDiff { method constructor (line 219) | constructor(public core: TableData, public leftTableDelta: TableDelta, method getColIds (line 234) | public getColIds(): string[] { method getColType (line 238) | public getColType(colId: string) { method sendTableActions (line 242) | public sendTableActions(actions: UserAction[], optDesc?: string): Prom... method sendTableAction (line 246) | public sendTableAction(action: UserAction, optDesc?: string): Promise<... method receiveAction (line 250) | public receiveAction(action: DocAction): boolean { method getRowPropFunc (line 258) | public getRowPropFunc(colId: string) { method getKeepFunc (line 269) | public getKeepFunc(): undefined | ((rowId: number | "new") => boolean) { method getSkipRowId (line 276) | public getSkipRowId(): number { method mayHaveVersions (line 280) | public mayHaveVersions() { method getValue (line 287) | public getValue(rowId: number, colId: string): CellValue | undefined { method tableId (line 328) | public get tableId() { return this.core.tableId; } method numRecords (line 330) | public numRecords() { method before (line 343) | public before(action: DocAction): void { method _processUpdateRows (line 365) | private _processUpdateRows(tableDelta: TableDelta): void { method _processAddRows (line 393) | private _processAddRows(tableDelta: TableDelta): void { method _processRemoveRows (line 421) | private _processRemoveRows(tableDelta: TableDelta): void { method _ensureColumnExists (line 449) | private _ensureColumnExists(colId: string): void { method _cleanupAddedRow (line 455) | private _cleanupAddedRow(rowId: number): void { function oldValue (line 465) | function oldValue(delta: CellDelta) { function newValue (line 473) | function newValue(delta: CellDelta) { function getRemoteTableId (line 482) | function getRemoteTableId(tableId: string, comparison?: DocStateComparis... FILE: app/client/models/DocData.ts class DocData (line 21) | class DocData extends BaseDocData { method constructor (line 44) | constructor(public readonly docComm: DocComm, metaTableData: { [tableI... method createTableData (line 50) | public createTableData(tableId: string, tableData: TableDataAction | n... method getTable (line 56) | public getTable(tableId: string): TableData | undefined { method getMetaTable (line 61) | public getMetaTable(tableId: TableI... method findColFromValues (line 68) | public async findColFromValues(values: any[], n: number, optTableId?: ... method getFormulaError (line 80) | public getFormulaError(tableId: string, colId: string, rowId: number):... method startBundlingActions (line 86) | public startBundlingActions(options: BundlingOptions): BundlingI... method bundleActions (line 146) | public async bundleActions(desc: string | null, callback: () => T |... method sendActions (line 175) | public sendActions(actions: UserAction[], optDesc?: string): Promise { method registerVirtualTableFactory (line 190) | public registerVirtualTableFactory(tableId: string, Cons: typeof Table... method unregisterVirtualTableFactory (line 194) | public unregisterVirtualTableFactory(tableId: string) { method _sendActionsImpl (line 199) | private async _sendActionsImpl(actions: UserAction[], optDesc?: string... class BundleSender (line 243) | class BundleSender { method constructor (line 248) | constructor(private _docComm: DocComm) {} method applyUserActions (line 250) | public applyUserActions(actions: UserAction[], options: ApplyUAOptions... method _getSendPromise (line 264) | public _getSendPromise(): Promise { type BundlingOptions (line 284) | interface BundlingOptions { type BundlingInfo (line 304) | interface BundlingInfo { type Constructor (line 316) | type Constructor = new (...args: any[]) => T; FILE: app/client/models/DocModel.ts type IRowModel (line 60) | type IRowModel = MetaRowModel & { function recordSet (line 74) | function recordSet( function refRecord (line 90) | function refRecord( function refListRecords (line 102) | function refListRecords( type MTM (line 115) | type MTM = MetaTableModel; class DocModel (line 117) | class DocModel extends Disposable { method constructor (line 179) | constructor(public readonly docData: DocData, private readonly _docPag... method getTableModel (line 262) | public getTableModel(tableId: string) { method getLinkingRowIds (line 272) | public getLinkingRowIds(sectionId: number): UIRowId[] | undefined { method clearColumns (line 290) | public async clearColumns(colRefs: number[], { keepType}: { keepType?:... method convertIsFormula (line 310) | public async convertIsFormula(colRefs: number[], opts: { toFormula: bo... method updateFormula (line 321) | public async updateFormula(colRef: number, formula: string): Promise { method _createVisibleTablesArray (line 400) | private _createVisibleTablesArray(): KoArray { method _createRawDataTablesArray (line 412) | private _createRawDataTablesArray(): KoArray { method _createRawSummaryTablesArray (line 422) | private _createRawSummaryTablesArray(): KoArray { function createTablesArray (line 432) | function createTablesArray( function isTutorialTable (line 446) | function isTutorialTable(tablesData: TableData, tableRef: UIRowId): bool... function isVirtualTable (line 454) | function isVirtualTable(tablesData: TableData, tableRef: UIRowId): boole... FILE: app/client/models/DocPageModel.ts type DocInfo (line 49) | interface DocInfo extends Document { type DocPageModel (line 66) | interface DocPageModel { type ImportSource (line 131) | interface ImportSource { class DocPageModelImpl (line 136) | class DocPageModelImpl extends Disposable implements DocPageModel { method constructor (line 213) | constructor(private _appObj: App, public readonly appModel: AppModel, ... method initialize (line 227) | public initialize() { method refreshDocumentAccess (line 280) | public async refreshDocumentAccess() { method refreshProposal (line 291) | public async refreshProposal(): Promise { method createLeftPane (line 310) | public createLeftPane(leftPanelOpen: Observable) { method renameDoc (line 330) | public async renameDoc(value: string): Promise { method refreshCurrentDoc (line 349) | public async refreshCurrentDoc(doc: DocInfo) { method updateCurrentDocUsage (line 353) | public updateCurrentDocUsage(docUsage: FilteredDocUsageSummary) { method updateUrlNoReload (line 358) | public updateUrlNoReload( method offerRecovery (line 376) | public offerRecovery(err: Error) { method clearUnsavedChanges (line 407) | public clearUnsavedChanges(): void { method _updateCurrentDoc (line 411) | private async _updateCurrentDoc(urlId: string, openMode: OpenDocMode) { method _onOpenError (line 421) | private _onOpenError(err: Error) { method _openDoc (line 433) | private async _openDoc(flow: AsyncFlow, urlId: string, options: OpenDo... method _getDocKey (line 569) | private _getDocKey(state: IGristUrlState) { function addMenu (line 578) | function addMenu(importSources: ImportSource[], gristDoc: GristDoc, isRe... function buildDocInfo (line 612) | function buildDocInfo(doc: Document, mode: OpenDocMode | undefined): Doc... function retryOnNetworkError (line 668) | async function retryOnNetworkError(flow: AsyncFlow, func: () => Promi... FILE: app/client/models/FormModel.ts type FormModel (line 14) | interface FormModel { class FormModelImpl (line 24) | class FormModelImpl extends Disposable implements FormModel { method constructor (line 44) | constructor() { method fetchForm (line 48) | public async fetchForm(): Promise { method submitForm (line 79) | public async submitForm(formData: TypedFormData): Promise { method _getFetchFormParams (line 112) | private _getFetchFormParams() { method _getDocIdOrShareKeyParam (line 119) | private _getDocIdOrShareKeyParam() { FILE: app/client/models/HomeModel.ts constant DELAY_BEFORE_SPINNER_MS (line 22) | const DELAY_BEFORE_SPINNER_MS = 500; type HomeModel (line 24) | interface HomeModel { type ViewSettings (line 82) | interface ViewSettings { class HomeModelImpl (line 87) | class HomeModelImpl extends Disposable implements HomeModel, ViewSettings { method constructor (line 173) | constructor(private _app: AppModel, clientScope: ClientScope) { method app (line 211) | public get app(): AppModel { return this._app; } method createWorkspace (line 213) | public async createWorkspace(name: string) { method renameWorkspace (line 221) | public async renameWorkspace(id: number, name: string) { method deleteWorkspace (line 227) | public async deleteWorkspace(id: number, forever: boolean) { method restoreWorkspace (line 233) | public async restoreWorkspace(ws: Workspace) { method createDoc (line 240) | public async createDoc(name: string, workspaceId: number | "unsaved"):... method renameDoc (line 250) | public async renameDoc( method deleteDoc (line 259) | public async deleteDoc(docId: string, forever: boolean): Promise { method restoreDoc (line 264) | public async restoreDoc(doc: Document): Promise { method pinUnpinDoc (line 270) | public async pinUnpinDoc(docId: string, pin: boolean): Promise { method moveDoc (line 275) | public async moveDoc(docId: string, workspaceId: number): Promise { method updateWorkspaces (line 281) | public async updateWorkspaces() { method _checkForDuplicates (line 331) | private _checkForDuplicates(name: string): void { method _fetchWorkspaces (line 337) | private async _fetchWorkspaces(orgId: number, forRemoved: boolean) { method _maybeFetchTemplates (line 375) | private async _maybeFetchTemplates(): Promise { method _loadWelcomeTutorial (line 400) | private async _loadWelcomeTutorial() { method _saveUserOrgPref (line 421) | private async _saveUserOrgPref(key: K, v... function _isSingleWorkspaceMode (line 432) | function _isSingleWorkspaceMode(app: AppModel): boolean { function getViewPrefDefault (line 439) | function getViewPrefDefault(workspaces: Workspace[]): ViewPref { function makeLocalViewSettings (line 450) | function makeLocalViewSettings( FILE: app/client/models/MetaRowModel.js function MetaRowModel (line 13) | function MetaRowModel(tableModel, fieldNames, rowConstructor, rowId) { FILE: app/client/models/MetaTableModel.js function MetaTableModel (line 21) | function MetaTableModel(docModel, tableData, fields, rowConstructor) { FILE: app/client/models/NotifyModel.ts type INotifier (line 30) | interface INotifier { type INotification (line 43) | interface INotification extends Expirable { type IProgress (line 47) | interface IProgress extends Expirable { type CustomAction (line 54) | interface CustomAction { label: string, action: () => void } type MessageType (line 58) | type MessageType = string | (() => DomElementArg); type NotifyAction (line 60) | type NotifyAction = "upgrade" | "renew" | "personal" | "report-problem" | type NotificationLevel (line 62) | type NotificationLevel = "message" | "info" | "success" | "warning" | "e... type INotifyOptions (line 64) | interface INotifyOptions { type Status (line 85) | type Status = "active" | "expiring"; class Expirable (line 87) | class Expirable extends Disposable { method constructor (line 91) | constructor() { method expire (line 98) | public async expire(withoutDelay: boolean = false): Promise { class Notification (line 109) | class Notification extends Expirable implements INotification { method constructor (line 125) | constructor(_opts: INotifyOptions) { type IProgressOptions (line 136) | interface IProgressOptions { class Progress (line 142) | class Progress extends Expirable implements IProgress { method constructor (line 145) | constructor(public options: IProgressOptions) { method setProgress (line 160) | public setProgress(progress: number) { class BetterMultiHolder (line 170) | class BetterMultiHolder implements IDisposableOwner { method autoDispose (line 173) | public autoDispose(obj: T): T { method dispose (line 181) | public dispose() { type IAppError (line 189) | interface IAppError { class Notifier (line 195) | class Notifier extends Disposable implements INotifier { method constructor (line 217) | constructor() { method getStateForUI (line 233) | public getStateForUI() { method createUserMessage (line 251) | public createUserMessage(message: MessageType, options: Partial(promise: Promise, optTimeout: numb... method _addNotification (line 353) | private async _addNotification(n: Notification): Promise { method _createAppErrorItem (line 373) | private _createAppErrorItem(where: "toast" | "dropdown") { function arrayRemove (line 405) | function arrayRemove(arr: MutableObsArray, elem: T) { function getDisconnectMessage (line 412) | function getDisconnectMessage(state: ConnectState): { title: string, mes... FILE: app/client/models/QuerySet.ts constant ON_DEMAND_ROW_LIMIT (line 49) | const ON_DEMAND_ROW_LIMIT = 10000; constant MAX_SQL_PARAMS (line 52) | const MAX_SQL_PARAMS = 500; type QueryRefs (line 58) | interface QueryRefs { type ColRef (line 63) | type ColRef = number | "id"; type FilterTuple (line 64) | type FilterTuple = [ColRef, QueryOperation, any[]]; class QuerySetManager (line 80) | class QuerySetManager extends Disposable { method constructor (line 83) | constructor(private _docModel: DocModel, docComm: ActiveDocAPI) { method useQuerySet (line 92) | public useQuerySet(owner: IDisposableOwnerT>, q... method purgeKey (line 105) | public purgeKey(queryKey: string) { method testSetGracePeriodMs (line 110) | public testSetGracePeriodMs(ms: number): number { class DynamicQuerySet (line 119) | class DynamicQuerySet extends RowSource { method constructor (line 135) | constructor(private _querySetManager: QuerySetManager, private _tableM... method getAllRows (line 139) | public getAllRows(): RowList { method getNumRows (line 143) | public getNumRows(): number { method isTruncated (line 150) | public get isTruncated(): boolean { method makeQuery (line 162) | public makeQuery(filters: { [colId: string]: any[] }, method _updateQuerySet (line 179) | private _updateQuerySet(nextQuerySet: QuerySet, cb: (err: Error | null... method _getTicket (line 200) | private _getTicket() { class QuerySet (line 214) | class QuerySet extends BaseFilteredRowSource { method constructor (line 222) | constructor(docModel: DocModel, docComm: ActiveDocAPI, queryKey: strin... class TableQuerySets (line 291) | class TableQuerySets { method constructor (line 294) | constructor(private _tableData: TableData) {} method addQuerySet (line 296) | public addQuerySet(querySet: QuerySet, data: TableDataAction): void { method removeQuerySet (line 302) | public removeQuerySet(querySet: QuerySet): void { function getFilterFunc (line 319) | function getFilterFunc(docData: DocData, query: ClientQuery): RowFilterF... function convertQueryToRefs (line 331) | function convertQueryToRefs(docModel: DocModel, query: ClientQuery): Que... function convertQueryFromRefs (line 359) | function convertQueryFromRefs(docModel: DocModel, queryRefs: QueryRefs):... function encodeQuery (line 378) | function encodeQuery(queryRefs: QueryRefs): string { function decodeQuery (line 383) | function decodeQuery(queryKey: string): QueryRefs { function makeQueryInvalidComputed (line 392) | function makeQueryInvalidComputed(docModel: DocModel, queryRefs: QueryRe... FILE: app/client/models/RuleOwner.ts type RuleOwner (line 6) | interface RuleOwner { function removeRule (line 27) | async function removeRule(docModel: DocModel, owner: RuleOwner, index: n... FILE: app/client/models/SearchModel.ts type SearchModel (line 22) | interface SearchModel { type SearchPosition (line 36) | interface SearchPosition { class Stepper (line 51) | class Stepper { method inRange (line 55) | public inRange() { method next (line 61) | public next(step: number, nextArrayFunc: () => Promise | void): ... method setStart (line 75) | public setStart(step: number) { method value (line 79) | public get value(): T { return this.array[this.index]; } type IFinder (line 85) | interface IFinder { type DocPageOpener (line 95) | type DocPageOpener = (viewId: IDocPage) => Promise; type ISearchablePageRec (line 100) | interface ISearchablePageRec { class RawSectionWrapper (line 107) | class RawSectionWrapper implements ISearchablePageRec { method constructor (line 108) | constructor(private _section: ViewSectionRec) { method viewSections (line 112) | public viewSections(): ViewSectionRec[] { method activeSectionId (line 116) | public activeSectionId() { method getViewId (line 120) | public getViewId(): IDocPage { method openPage (line 124) | public async openPage() { class PageRecWrapper (line 131) | class PageRecWrapper implements ISearchablePageRec { method constructor (line 132) | constructor(private _page: PageRec, private _opener: DocPageOpener) { method viewSections (line 136) | public viewSections(): ViewSectionRec[] { method activeSectionId (line 149) | public activeSectionId() { method getViewId (line 153) | public getViewId() { method openPage (line 157) | public openPage() { class FinderImpl (line 167) | class FinderImpl implements IFinder { method constructor (line 182) | constructor(private _gristDoc: GristDoc, value: string, private _openD... method abort (line 187) | public abort() { method getCurrentPosition (line 192) | public getCurrentPosition(): SearchPosition { method init (line 202) | public async init(): Promise { method matchNext (line 246) | public async matchNext(step: number): Promise { method nextField (line 288) | public nextField(step: number): Promise | void { method _nextRow (line 292) | private _nextRow(step: number) { method _nextSection (line 296) | private async _nextSection(step: number) { method _initNewSectionCommon (line 309) | private _initNewSectionCommon() { method _initNewSectionShown (line 319) | private _initNewSectionShown() { method _initNewSectionAny (line 326) | private async _initNewSectionAny() { method _nextPage (line 344) | private async _nextPage(step: number) { method _initFormatters (line 353) | private _initFormatters() { method _matches (line 357) | private _matches(): boolean { method _loadSection (line 381) | private async _loadSection(step: number): Promise { method _highlight (line 408) | private async _highlight() { method _isCurrentPosition (line 444) | private _isCurrentPosition(pos: SearchPosition): boolean { class SearchModelImpl (line 457) | class SearchModelImpl extends Disposable implements SearchModel { method constructor (line 469) | constructor(private _gristDoc: GristDoc) { method findNext (line 498) | public async findNext() { method findPrev (line 507) | public async findPrev() { method onPageChange (line 516) | public onPageChange(callback: () => void) { method _findFirst (line 520) | private async _findFirst(value: string) { method _updateFinder (line 530) | private async _updateFinder(value: string) { method _run (line 544) | private async _run(cb: (finder: IFinder) => Promise) { method _openDocPage (line 559) | private async _openDocPage(viewId: IDocPage) { function makeRegexp (line 565) | function makeRegexp(value: string) { FILE: app/client/models/SectionFilter.ts type OpenColumnFilter (line 12) | interface OpenColumnFilter { type ColFilterCB (line 17) | type ColFilterCB = ( class SectionFilter (line 29) | class SectionFilter extends Disposable { method constructor (line 34) | constructor(public viewSection: ViewSectionRec, private _tableData: Ta... method setFilterOverride (line 53) | public setFilterOverride(colRef: number, colFilter: ColumnFilter) { method buildFilterFunc (line 68) | public buildFilterFunc(getFilterFunc: ColFilterCB, use: UseCB) { FILE: app/client/models/Styles.ts type Style (line 1) | interface Style { type HeaderStyle (line 10) | interface HeaderStyle { class CombinedStyle (line 19) | class CombinedStyle implements Style { method constructor (line 26) | constructor(rules: (Style | undefined | null)[], flags: any[]) { FILE: app/client/models/TableData.ts class TableData (line 18) | class TableData extends TableDataBase { method constructor (line 35) | constructor(public readonly docData: DocData, method loadData (line 40) | public loadData(tableData: TableDataAction | ReplaceTableData): number... method loadPartial (line 51) | public loadPartial(data: TableDataAction): void { method unloadPartial (line 58) | public unloadPartial(rowIds: number[]): void { method countErrors (line 68) | public countErrors(colId: string): number | undefined { method sendTableActions (line 84) | public sendTableActions(actions: UserAction[], optDesc?: string) { method sendTableAction (line 97) | public sendTableAction(action: UserAction, optDesc?: string) { method receiveAction (line 106) | public receiveAction(action: DocAction): boolean { type MetaTableData (line 116) | type MetaTableData = MetaTableDataBas... FILE: app/client/models/TableModel.js function TableModel (line 12) | function TableModel(docModel, tableData) { FILE: app/client/models/TelemetryModel.ts type TelemetryModel (line 7) | interface TelemetryModel { class TelemetryModelImpl (line 14) | class TelemetryModelImpl extends Disposable implements TelemetryModel { method constructor (line 18) | constructor(_appModel: AppModel) { method fetchTelemetryPrefs (line 22) | public async fetchTelemetryPrefs(): Promise { method updateTelemetryPrefs (line 29) | public async updateTelemetryPrefs(prefs: Partial): Pro... FILE: app/client/models/TimeQuery.ts class ClientTimeData (line 9) | class ClientTimeData implements ITimeData { method constructor (line 10) | public constructor(public db: DocData) { method getColIds (line 13) | public async getColIds(tableId: string): Promise { method fetch (line 18) | public async fetch(tableId: string, colIds: string[], rowIds?: number[... FILE: app/client/models/ToggleEnterpriseModel.ts class ToggleEnterpriseModel (line 14) | class ToggleEnterpriseModel extends Disposable { method constructor (line 22) | constructor(private _notifier: Notifier) { method fetchEnterpriseToggle (line 26) | public async fetchEnterpriseToggle() { method updateEnterpriseToggle (line 39) | public async updateEnterpriseToggle(edition: GristDeploymentType): Pro... method activateEnterprise (line 50) | public async activateEnterprise(key: string) { method _doWork (line 58) | private async _doWork(func: () => Promise) { method _reloadWhenReady (line 72) | private async _reloadWhenReady() { function retryOnNetworkError (line 94) | async function retryOnNetworkError(func: () => Promise): Promise { FILE: app/client/models/TreeModel.ts type TreeNode (line 27) | interface TreeNode { type TreeItem (line 42) | interface TreeItem extends TreeNode { type TreeModel (line 47) | interface TreeModel extends TreeNode { type TreeRecord (line 52) | interface TreeRecord { type TreeTableData (line 60) | interface TreeTableData { type DomBuilder (line 66) | type DomBuilder = (id: number, item: TreeItemRecord) => HTMLElement; function getRecords (line 71) | function getRecords(table: TreeTableData) { function fixIndents (line 80) | function fixIndents(records: TreeRecord[]) { function fromTableData (line 90) | function fromTableData(table: TreeTableData, buildDom: DomBuilder, oldMo... type Storage (line 120) | interface Storage { class TreeNodeRecord (line 126) | class TreeNodeRecord implements TreeNode { method constructor (line 134) | constructor() { method init (line 138) | public init(storage: Storage, index: number | "root", children: TreeIt... method insertBefore (line 148) | public async insertBefore(item: TreeItemRecord, nextChild: TreeItemRec... method sendActions (line 179) | public async sendActions(actions: { update?: TreeRecord[], remove?: Tr... method removeChild (line 205) | public async removeChild(child: TreeItemRecord) { method getRecords (line 210) | public getRecords(): TreeRecord[] { method findLastIndex (line 217) | public findLastIndex(): number | "root" { method _records (line 221) | private get _records() { class TreeItemRecord (line 226) | class TreeItemRecord extends TreeNodeRecord implements TreeItem { method constructor (line 229) | constructor() { method record (line 233) | public get record() { return this.storage.records[this.index]; } class TreeModelRecord (line 236) | class TreeModelRecord extends TreeNodeRecord implements TreeModel { method constructor (line 237) | constructor(storage: Storage, children: TreeItemRecord[]) { function walkTree (line 244) | function walkTree(model: TreeNode, func: (item: TreeItem) => void) { function find (line 255) | function find(model: TreeNode, func: (item: TreeItem) => boolean): TreeI... FILE: app/client/models/UnionRowSource.ts class UnionRowSource (line 4) | class UnionRowSource extends RowListener implements RowSource { method constructor (line 7) | constructor(parentRowSources: RowSource[]) { method getAllRows (line 14) | public getAllRows(): RowList { method getNumRows (line 18) | public getNumRows(): number { method onAddRows (line 22) | public onAddRows(rows: RowList, rowSource: RowSource) { method onRemoveRows (line 38) | public onRemoveRows(rows: RowList, rowSource: RowSource) { method onUpdateRows (line 56) | public onUpdateRows(rows: RowList) { FILE: app/client/models/UserManagerModel.ts type UserManagerModel (line 18) | interface UserManagerModel { type ResourceType (line 61) | type ResourceType = "organization" | "workspace" | "document"; type Resource (line 63) | type Resource = Organization | Workspace | Document; type IEditableMember (line 65) | interface IEditableMember { type IMemberSelectOption (line 82) | interface IMemberSelectOption { type IOrgMemberSelectOption (line 88) | interface IOrgMemberSelectOption { type IBuildMemberOptions (line 93) | interface IBuildMemberOptions { class UserManagerModelImpl (line 106) | class UserManagerModelImpl extends Disposable implements UserManagerModel { method constructor (line 182) | constructor( method reset (line 202) | public reset(): void { method reloadAnnotations (line 207) | public async reloadAnnotations(): Promise { method save (line 220) | public async save(userApi: UserAPI, resourceId: number | string): Prom... method add (line 230) | public add(email: string, role: roles.Role | null): void { method remove (line 263) | public remove(member: IEditableMember): void { method isActiveUser (line 274) | public isActiveUser(member: IEditableMember): boolean { method annotate (line 278) | public annotate() { method getDelta (line 287) | public getDelta(options?: { silent: boolean }): PermissionDelta { method goingToSharePublicly (line 316) | public goingToSharePublicly(): boolean { method _buildAllMembers (line 322) | private _buildAllMembers(): IEditableMember[] { method _buildPublicMember (line 343) | private _buildPublicMember(): IEditableMember | null { method _buildEditableMember (line 362) | private _buildEditableMember(member: IBuildMemberOptions): IEditableMe... function getResourceParent (line 410) | function getResourceParent(resource: ResourceType): ResourceType | null { function shouldSupportAnon (line 421) | function shouldSupportAnon(): boolean { FILE: app/client/models/UserPrefs.ts type PrefsTypes (line 8) | interface PrefsTypes { function makePrefFunctions (line 13) | function makePrefFunctions

(prefsTypeName: P) { function markAsSeen (line 102) | function markAsSeen(seenIdsObs: Observable, itemId: ... FILE: app/client/models/UserPresenceModel.ts type UserPresenceModel (line 9) | interface UserPresenceModel extends Disposable { class UserPresenceModelImpl (line 15) | class UserPresenceModelImpl extends DisposableWithEvents implements User... method constructor (line 18) | constructor(private _docComm: DocComm, private _comm: Comm) { method initialize (line 24) | public async initialize(): Promise { method _onUserPresenceUpdateMessage (line 39) | private _onUserPresenceUpdateMessage(message: CommDocUserPresenceUpdat... class UserPresenceModelStub (line 54) | class UserPresenceModelStub extends Disposable implements UserPresenceMo... method constructor (line 57) | constructor() { method initialize (line 62) | public async initialize(): Promise {} FILE: app/client/models/ViewFieldConfig.ts class ViewFieldConfig (line 13) | class ViewFieldConfig { method constructor (line 30) | constructor(private _field: ViewFieldRec, private _docModel: DocModel) { method updateChoices (line 331) | public async updateChoices(renames: Record, options: a... function allSame (line 362) | function allSame(arr: any[]) { function allEmpty (line 374) | function allEmpty(arr: any[]) { type CommonOptions (line 382) | type CommonOptions = modelUtil.SaveableObjObservable & { type StyleOptions (line 392) | type StyleOptions = modelUtil.SaveableObjObservable & { function extendObservable (line 400) | function extendObservable( FILE: app/client/models/VirtualTable.ts type IEdit (line 25) | interface IEdit { type IExternalTable (line 44) | interface IExternalTable { class VirtualTableData (line 62) | class VirtualTableData extends TableData { method fetchData (line 67) | public override fetchData() { method sendTableActions (line 75) | public override async sendTableActions(userActions: UserAction[]): Pro... method sendTableAction (line 82) | public override async sendTableAction(action: UserAction): Promise { method setExt (line 87) | public setExt(_ext: IExternalTable) { method getName (line 92) | public getName() { method sync (line 96) | public sync() { method schemaChange (line 100) | public async schemaChange() { method _editor (line 104) | private _editor(actions: ProcessedAction[] = []): IEdit { method _sendTableActionsCore (line 123) | private async _sendTableActionsCore(userActions: UserAction[], options: { method _doUndo (line 173) | private async _doUndo(actionGroup: { class VirtualTableRegistration (line 195) | class VirtualTableRegistration extends DisposableWithEvents { method constructor (line 203) | constructor(docModel: DocModel, ext: IExternalTable) { method listenToEvents (line 234) | public listenToEvents(source: DisposableWithEvents) { method updateSchema (line 240) | public updateSchema() { method _sync (line 244) | private async _sync() { function generateDestroyActions (line 257) | function generateDestroyActions(initialActions: DocAction[]): DocAction[] { FILE: app/client/models/VirtualTableMeta.ts constant META_TABLES (line 4) | const META_TABLES: { [tableId: string]: TableDataAction } = Object.fromE... FILE: app/client/models/WorkspaceInfo.ts function workspaceName (line 10) | function workspaceName(app: AppModel, ws: Workspace) { function ownerName (line 21) | function ownerName(app: AppModel, ws: Workspace): string { type WorkspaceInfo (line 27) | interface WorkspaceInfo { function getWorkspaceInfo (line 35) | function getWorkspaceInfo(app: AppModel, ws: Workspace): WorkspaceInfo { FILE: app/client/models/entities/ACLRuleRec.ts type ACLRuleRec (line 3) | type ACLRuleRec = IRowModel<"_grist_ACLRules">; function createACLRuleRec (line 5) | function createACLRuleRec(this: ACLRuleRec, docModel: DocModel): void { FILE: app/client/models/entities/CellRec.ts type CellRec (line 9) | interface CellRec extends IRowModel<"_grist_Cells"> { function createCellRec (line 23) | function createCellRec(this: CellRec, docModel: DocModel): void { FILE: app/client/models/entities/ColumnRec.ts type BEHAVIOR (line 23) | type BEHAVIOR = "empty" | "formula" | "data"; type ColumnRec (line 26) | interface ColumnRec extends IRowModel<"_grist_Tables_column"> { function createColumnRec (line 112) | function createColumnRec(this: ColumnRec, docModel: DocModel): void { function formatterForRec (line 219) | function formatterForRec( FILE: app/client/models/entities/DocInfoRec.ts type DocInfoRec (line 9) | interface DocInfoRec extends IRowModel<"_grist_DocInfo"> { function createDocInfoRec (line 21) | function createDocInfoRec(this: DocInfoRec, docModel: DocModel): void { FILE: app/client/models/entities/FilterRec.ts type FilterRec (line 7) | interface FilterRec extends IRowModel<"_grist_Filters"> { function createFilterRec (line 15) | function createFilterRec(this: FilterRec, docModel: DocModel): void { FILE: app/client/models/entities/PageRec.ts type PageRec (line 9) | interface PageRec extends IRowModel<"_grist_Pages"> { function createPageRec (line 20) | function createPageRec(this: PageRec, docModel: DocModel): void { FILE: app/client/models/entities/ShareRec.ts type ShareRec (line 4) | interface ShareRec extends IRowModel<"_grist_Shares"> { function createShareRec (line 8) | function createShareRec(this: ShareRec): void { FILE: app/client/models/entities/TabBarRec.ts type TabBarRec (line 6) | interface TabBarRec extends IRowModel<"_grist_TabBar"> { function createTabBarRec (line 10) | function createTabBarRec(this: TabBarRec, docModel: DocModel): void { FILE: app/client/models/entities/TableRec.ts type TableRec (line 12) | interface TableRec extends IRowModel<"_grist_Tables"> { function createTableRec (line 50) | function createTableRec(this: TableRec, docModel: DocModel): void { FILE: app/client/models/entities/ValidationRec.ts type ValidationRec (line 4) | type ValidationRec = IRowModel<"_grist_Validations">; function createValidationRec (line 6) | function createValidationRec(this: ValidationRec, docModel: DocModel): v... FILE: app/client/models/entities/ViewFieldRec.ts type ViewFieldRec (line 18) | interface ViewFieldRec extends IRowModel<"_grist_Views_section_field">, ... function createViewFieldRec (line 121) | function createViewFieldRec(this: ViewFieldRec, docModel: DocModel): void { FILE: app/client/models/entities/ViewRec.ts type ViewRec (line 11) | interface ViewRec extends IRowModel<"_grist_Views"> { function createViewRec (line 44) | function createViewRec(this: ViewRec, docModel: DocModel): void { function getFirstLeaf (line 96) | function getFirstLeaf(layoutSpec: BoxSpec | undefined): BoxSpec["leaf"] { FILE: app/client/models/entities/ViewSectionRec.ts type InsertColOptions (line 41) | interface InsertColOptions { type ColInfo (line 47) | interface ColInfo { type NewColInfo (line 57) | interface NewColInfo { type NewFieldInfo (line 62) | interface NewFieldInfo extends NewColInfo { type ChartOptions (line 66) | interface ChartOptions { type ViewSectionOptions (line 85) | interface ViewSectionOptions extends ChartOptions { type ViewSectionRec (line 102) | interface ViewSectionRec extends IRowModel<"_grist_Views_section">, Rule... type WidgetMappedColumn (line 379) | type WidgetMappedColumn = number | number[] | null; type WidgetColumnMapping (line 380) | type WidgetColumnMapping = Record; type CustomViewSectionDef (line 382) | interface CustomViewSectionDef { type FilterInfo (line 438) | interface FilterInfo { type Filter (line 453) | interface Filter { function createViewSectionRec (line 458) | function createViewSectionRec(this: ViewSectionRec, docModel: DocModel):... FILE: app/client/models/errors.ts class MutedError (line 20) | class MutedError extends Error { class UserError (line 24) | class UserError extends Error { method constructor (line 27) | constructor(message: string, options: { key?: string } = {}) { class NeedUpgradeError (line 36) | class NeedUpgradeError extends Error { method constructor (line 38) | constructor(message: string = "This feature is not available in your p... function setErrorNotifier (line 46) | function setErrorNotifier(notifier: Notifier) { function getAppErrors (line 51) | function getAppErrors(): string[] { function reportMessage (line 58) | function reportMessage(msg: MessageType, options?: Partial) { function reportSuccess (line 80) | function reportSuccess(msg: MessageType, options?: Partial { FILE: app/client/models/gristConfigCache.ts function getDoc (line 21) | async function getDoc(api: UserAPI, docId: string): Promise { function getWorker (line 33) | async function getWorker(api: UserAPI, assignmentId: string): Promise { function docUrl (line 49) | function docUrl(doc: Document): IGristUrlState { function getMainOrgUrl (line 59) | function getMainOrgUrl(): string { return urlState().makeUrl({}); } function getCurrentDocUrl (line 62) | function getCurrentDocUrl(): string { return urlState().makeUrl({ docPag... class UrlStateImpl (line 68) | class UrlStateImpl { method constructor (line 69) | constructor(private _window: { gristConfig?: Partial ... method encodeUrl (line 82) | public encodeUrl(state: IGristUrlState, baseLocation: Location | URL):... method decodeUrl (line 92) | public decodeUrl(location: Location | URL): IGristUrlState { method updateState (line 103) | public updateState(prevState: IGristUrlState, newState: IGristUrlState... method needPageLoad (line 129) | public needPageLoad(prevState: IGristUrlState, newState: IGristUrlStat... method delayPushUrl (line 172) | public async delayPushUrl(prevState: IGristUrlState, newState: IGristU... function constructUrl (line 183) | function constructUrl(value: CellValue): string { function sameDocumentUrlState (line 202) | function sameDocumentUrlState(urlValue: CellValue): IGristUrlState | null { FILE: app/client/models/homeUrl.ts function getFallbackHomeUrl (line 13) | function getFallbackHomeUrl(): string { function getConfiguredHomeUrl (line 21) | function getConfiguredHomeUrl(): string { function getPreferredHomeUrl (line 30) | function getPreferredHomeUrl(): string | undefined { function getHomeUrl (line 54) | function getHomeUrl(): string { FILE: app/client/models/modelUtil.js function addSaveInterface (line 19) | function addSaveInterface(observable, saveFunc) { function savingComputed (line 60) | function savingComputed(options) { function _writeSetter (line 68) | function _writeSetter(obs, val) { return obs(val); } function _saveSetter (line 69) | function _saveSetter(obs, val) { return obs.saveOnly(val); } function setSaveValue (line 83) | function setSaveValue(observable, value, optOrigValue) { function createField (line 105) | function createField(saveFunc) { function fieldWithDefault (line 116) | function fieldWithDefault(fieldObs, defaultOrFunc, optContext) { function _createJsonProp (line 131) | function _createJsonProp(jsonObservable, propName) { function jsonObservable (line 171) | function jsonObservable(stringObservable, modifierFunc, optContext) { function objObservable (line 205) | function objObservable(objectObservable) { function customValue (line 226) | function customValue(savedObservable) { function customComputed (line 248) | function customComputed(options) { function bulkActionExpand (line 277) | function bulkActionExpand(bulkAction, callback, context) { FILE: app/client/models/rowset.ts constant ALL (line 36) | const ALL: unique symbol = Symbol("ALL"); type ChangeType (line 38) | type ChangeType = "add" | "remove" | "update"; type ChangeMethod (line 39) | type ChangeMethod = "onAddRows" | "onRemoveRows" | "onUpdateRows"; type RowList (line 40) | type RowList = Iterable; type RowsChanged (line 41) | type RowsChanged = RowList | typeof ALL; class RowListener (line 80) | class RowListener extends DisposableWithEvents { method subscribeTo (line 84) | public subscribeTo(rowSource: RowSource): void { method unsubscribeFrom (line 97) | public unsubscribeFrom(rowSource: RowSource): void { method onAddRows (line 106) | protected onAddRows(rows: RowList, rowSource?: RowSource) { /* no-op */ } method onRemoveRows (line 111) | protected onRemoveRows(rows: RowList, rowSource?: RowSource) { /* no-o... method onUpdateRows (line 116) | protected onUpdateRows(rows: RowList, rowSource?: RowSource) { /* no-o... method onRowNotify (line 122) | protected onRowNotify(rows: RowList, notifyValue: any) { class MappedRowSource (line 139) | class MappedRowSource extends RowSource { method constructor (line 142) | constructor( method getAllRows (line 160) | public getAllRows(): RowList { method getNumRows (line 164) | public getNumRows(): number { class ExtendedRowSource (line 172) | class ExtendedRowSource extends RowSource { method constructor (line 173) | constructor( method getAllRows (line 188) | public getAllRows(): RowList { method getNumRows (line 192) | public getNumRows(): number { type FilterRowChanges (line 201) | interface FilterRowChanges { class BaseFilteredRowSource (line 211) | class BaseFilteredRowSource extends RowListener implements RowSource { method constructor (line 214) | constructor(protected _filterFunc: RowFilterFunc) { method getAllRows (line 218) | public getAllRows(): RowList { method getNumRows (line 222) | public getNumRows(): number { method onAddRows (line 226) | public onAddRows(rows: RowList) { method onRemoveRows (line 241) | public onRemoveRows(rows: RowList) { method onUpdateRows (line 254) | public onUpdateRows(rows: RowList) { method onRowNotify (line 261) | public onRowNotify(rows: RowsChanged, notifyValue: any) { method _updateRowsHelper (line 282) | protected _updateRowsHelper(changes: FilterRowChanges, rows: RowList) { method _addExcludedRow (line 302) | protected _addExcludedRow(row: UIRowId): void { /* no-op */ } method _deleteExcludedRow (line 303) | protected _deleteExcludedRow(row: UIRowId): boolean { return true; } class FilteredRowSource (line 313) | class FilteredRowSource extends BaseFilteredRowSource { method updateFilter (line 320) | public updateFilter(filterFunc: RowFilterFunc) { method refilterRows (line 336) | public refilterRows(rows: RowList) { method getHiddenRows (line 345) | public getHiddenRows() { method _addExcludedRow (line 349) | protected _addExcludedRow(row: UIRowId): void { this._excludedRows.add... method _deleteExcludedRow (line 350) | protected _deleteExcludedRow(row: UIRowId): boolean { return this._exc... class RowGroupHelper (line 360) | class RowGroupHelper extends RowSource { method constructor (line 362) | constructor(public readonly groupValue: Value) { method getAllRows (line 366) | public getAllRows() { method getNumRows (line 370) | public getNumRows(): number { method _addAll (line 374) | public _addAll(rows: RowList) { method _removeAll (line 378) | public _removeAll(rows: RowList) { function _addToMapOfArrays (line 388) | function _addToMapOfArrays(map: Map, key: K, r: V): void { class RowGrouping (line 401) | class RowGrouping extends RowListener { method constructor (line 408) | constructor(private _groupFunc: (row: UIRowId) => Value) { method getGroup (line 422) | public getGroup(groupValue: Value): RowGroupHelper { method onAddRows (line 433) | public onAddRows(rows: RowList) { method onRemoveRows (line 448) | public onRemoveRows(rows: RowList) { method onUpdateRows (line 465) | public onUpdateRows(rows: RowList) { method onRowNotify (line 500) | public onRowNotify(rows: RowsChanged, notifyValue: any) { class SortedRowSet (line 529) | class SortedRowSet extends RowListener { method constructor (line 535) | constructor(private _compareFunc: CompareFunc, method getKoArray (line 545) | public getKoArray() { method pause (line 554) | public pause(doPause: boolean) { method updateSort (line 564) | public updateSort(compareFunc: CompareFunc): void { method onAddRows (line 571) | public onAddRows(rows: RowList) { method onRemoveRows (line 588) | public onRemoveRows(rows: RowList) { method onUpdateRows (line 607) | public onUpdateRows(rows: RowList) { method _canChangeIncrementally (line 635) | private _canChangeIncrementally(rows: RowList) { method _keep (line 641) | private _keep(rows: UIRowId[], nContext: number = 2) { type RowTester (line 695) | type RowTester = (rowId: UIRowId) => boolean; class RowWatcher (line 700) | class RowWatcher extends RowListener { method clear (line 709) | public clear() { method onAddRows (line 715) | protected onAddRows(rows: RowList) { method onRemoveRows (line 722) | protected onRemoveRows(rows: RowList) { function isSmallChange (line 730) | function isSmallChange(rows: RowList) { function _isIndexInOrder (line 737) | function _isIndexInOrder(array: T[], index: number, compareFunc: Comp... function _allRowsSorted (line 747) | function _allRowsSorted(array: T[], allRows: Set, sortedRows: Iter... class ExemptFromFilterRowSource (line 768) | class ExemptFromFilterRowSource extends BaseFilteredRowSource { method constructor (line 769) | public constructor() { method addExemptRows (line 776) | public addExemptRows(rows: RowList) { method addExemptRow (line 789) | public addExemptRow(rowId: number) { method reset (line 796) | public reset() { method onUpdateRows (line 800) | public onUpdateRows() { /* no-op */ } FILE: app/client/models/rowuid.js constant MAX_TABLES (line 13) | const MAX_TABLES = Math.pow(2, 18); constant MAX_ROWS (line 14) | const MAX_ROWS = Math.pow(2, 35); function combine (line 21) | function combine(tableRef, rowId) { function tableRef (line 29) | function tableRef(rowUid) { function rowId (line 37) | function rowId(rowUid) { function toString (line 45) | function toString(rowUid) { FILE: app/client/ui/AccountPage.ts class AccountPage (line 34) | class AccountPage extends Disposable { method constructor (line 44) | constructor(private _appModel: AppModel, private _appObj: App) { method buildDom (line 50) | public buildDom() { method _buildContentMain (line 67) | private _buildContentMain() { method _buildHeaderMain (line 179) | private _buildHeaderMain() { method _fetchApiKey (line 194) | private async _fetchApiKey() { method _createApiKey (line 198) | private async _createApiKey() { method _deleteApiKey (line 202) | private async _deleteApiKey() { method _fetchUserProfile (line 207) | private async _fetchUserProfile() { method _fetchAll (line 211) | private async _fetchAll() { method _updateUserName (line 218) | private async _updateUserName(val: string) { method _updateAllowGooglelogin (line 226) | private async _updateAllowGooglelogin(allowGoogleLogin: boolean) { method _showChangePasswordDialog (line 231) | private _showChangePasswordDialog() { method _buildNameWarningsDom (line 238) | private _buildNameWarningsDom() { method _setPageTitle (line 245) | private _setPageTitle() { FILE: app/client/ui/AccountWidget.ts class AccountWidget (line 40) | class AccountWidget extends Disposable { method constructor (line 41) | constructor(private _appModel: AppModel, private _docPageModel?: DocPa... method buildDom (line 45) | public buildDom() { method _buildAccountMenuButton (line 62) | private _buildAccountMenuButton(user: FullUser | null) { method _buildSignInAndSignUpButtons (line 69) | private _buildSignInAndSignUpButtons() { method _buildUseThisTemplateButton (line 93) | private _buildUseThisTemplateButton() { method _makeAccountMenu (line 108) | private _makeAccountMenu(user: FullUser | null): DomElementArg[] { method _switchAccount (line 192) | private async _switchAccount(user: FullUser) { method _maybeBuildBillingPageMenuItem (line 207) | private _maybeBuildBillingPageMenuItem() { method _maybeBuildActivationPageMenuItem (line 228) | private _maybeBuildActivationPageMenuItem() { method _maybeBuildAdminPanelMenuItem (line 237) | private _maybeBuildAdminPanelMenuItem() { method _maybeBuildSupportGristButton (line 248) | private _maybeBuildSupportGristButton() { FILE: app/client/ui/ActiveUserList.ts function buildActiveUserList (line 27) | function buildActiveUserList(owner: IDisposableOwner, userPresenceModel:... function createUserIndicator (line 90) | function createUserIndicator( function createRemainingUsersIndicator (line 103) | function createRemainingUsersIndicator( function createUsername (line 146) | function createUsername(name: string) { function createEmail (line 150) | function createEmail(email?: string) { function compareUserProfiles (line 242) | function compareUserProfiles(a: VisibleUserProfile, b: VisibleUserProfil... type UsersMetadata (line 246) | interface UsersMetadata { FILE: app/client/ui/AddNewButton.ts function addNewButton (line 10) | function addNewButton( FILE: app/client/ui/AddNewTip.ts function attachAddNewTip (line 3) | function attachAddNewTip(home: HomeModel): (el: Element) => void { function shouldShowAddNewTip (line 11) | function shouldShowAddNewTip(home: HomeModel): boolean { function showAddNewTip (line 28) | function showAddNewTip(home: HomeModel): void { function isVisible (line 46) | function isVisible(element: HTMLElement): boolean { FILE: app/client/ui/AdminLeftPanel.ts function areAdminControlsAvailable (line 23) | function areAdminControlsAvailable(): boolean { function getPageNames (line 29) | function getPageNames() { function buildAdminLeftPanel (line 45) | function buildAdminLeftPanel(owner: MultiHolder, appModel: AppModel): Pa... FILE: app/client/ui/AdminPanel.ts constant STALE_VERSION_CHECK_TIME_IN_MS (line 60) | const STALE_VERSION_CHECK_TIME_IN_MS = 14 * 24 * 60 * 60 * 1000; class AdminPanel (line 62) | class AdminPanel extends Disposable { method constructor (line 65) | constructor(private _appModel: AppModel, private _appObj: App) { method buildDom (line 70) | public buildDom() { method _buildMainHeader (line 81) | private _buildMainHeader(pageObs: Computed) { method _buildMainContent (line 100) | private _buildMainContent() { class AdminInstallationPanel (line 120) | class AdminInstallationPanel extends Disposable implements AdminPanelCon... method constructor (line 131) | constructor(private _appModel: AppModel) { method buildDom (line 147) | public buildDom() { method restartGrist (line 162) | public async restartGrist(): Promise { method _performRestart (line 185) | private async _performRestart() { method _buildMainContentForOthers (line 194) | private _buildMainContentForOthers() { method _buildMainContentForAdmin (line 210) | private _buildMainContentForAdmin() { method _maybeAddEnterpriseToggle (line 321) | private _maybeAddEnterpriseToggle() { method _buildSandboxingDisplay (line 346) | private _buildSandboxingDisplay() { method _buildSandboxingNotice (line 370) | private _buildSandboxingNotice() { method _buildAdminUsersComputed (line 383) | private _buildAdminUsersComputed( method _buildAdminUsersDisplay (line 403) | private _buildAdminUsersDisplay() { method _buildAdminUsersDetail (line 418) | private _buildAdminUsersDetail() { method _buildAuthenticationDisplay (line 440) | private _buildAuthenticationDisplay() { method _buildAuthenticationPanelExtraContent (line 489) | private _buildAuthenticationPanelExtraContent() { method _buildSessionSecretDisplay (line 498) | private _buildSessionSecretDisplay() { method _buildSessionSecretNotice (line 513) | private _buildSessionSecretNotice() { method _buildUpdates (line 519) | private _buildUpdates(owner: MultiHolder) { method _buildProbeItems (line 744) | private _buildProbeItems(options: { method _buildProbeItem (line 768) | private _buildProbeItem(info: BootProbeInfo, method _encodeSuccess (line 812) | private _encodeSuccess(result: BootProbeResult) { method _buildAuditLogsSection (line 830) | private _buildAuditLogsSection() { method _buildLogStreamingSection (line 849) | private _buildLogStreamingSection( method _buildLogStreamingStatus (line 884) | private _buildLogStreamingStatus(model: AuditLogsModel) { function _longCodeForExample (line 1034) | function _longCodeForExample() { function reloadSafe (line 1044) | async function reloadSafe() { FILE: app/client/ui/AdminPanelCss.ts type AdminPanelControls (line 11) | interface AdminPanelControls { function HidableToggle (line 16) | function HidableToggle( function AdminSection (line 27) | function AdminSection(owner: IDisposableOwner, title: DomContents, items... function AdminSectionItem (line 34) | function AdminSectionItem(owner: IDisposableOwner, options: { FILE: app/client/ui/AdminPanelName.ts function getAdminPanelName (line 9) | function getAdminPanelName() { FILE: app/client/ui/ApiKey.ts type IWidgetOptions (line 11) | interface IWidgetOptions { class ApiKey (line 30) | class ApiKey extends Disposable { method constructor (line 39) | constructor(options: IWidgetOptions) { method buildDom (line 48) | public buildDom() { method _switchLoadingFlag (line 91) | private async _switchLoadingFlag(promise: Promise) { method _onDelete (line 100) | private _onDelete(): Promise { method _onCreate (line 104) | private _onCreate(): Promise { method _getDescription (line 108) | private _getDescription(): string { method _showRemoveKeyModal (line 116) | private _showRemoveKeyModal(): void { FILE: app/client/ui/App.ts type App (line 36) | interface App extends DisposableWithEvents { class AppImpl (line 49) | class AppImpl extends DisposableWithEvents implements App { method constructor (line 70) | constructor() { method testTriggerError (line 214) | public testTriggerError(msg: string) { throw new Error(msg); } method testEnableFeature (line 217) | public testEnableFeature(featureName: keyof ISupportedFeatures, onOff:... method getServerVersion (line 223) | public getServerVersion() { method reload (line 227) | public reload() { method checkSpecialTranslationKey (line 242) | public checkSpecialTranslationKey() { method testGetProfile (line 247) | public async testGetProfile(): Promise { method testNumPendingApiRequests (line 252) | public testNumPendingApiRequests(): number { method _reloadPane (line 256) | private _reloadPane() { method _checkError (line 261) | private _checkError(err: Error) { FILE: app/client/ui/AppHeader.ts type AppLogoOrgNameAndLink (line 37) | interface AppLogoOrgNameAndLink { type AppLogoLink (line 44) | type AppLogoLink = AppLogoOrgDomain | AppLogoHref; type AppLogoOrgDomain (line 46) | interface AppLogoOrgDomain { type AppLogoHref (line 51) | interface AppLogoHref { class AppHeader (line 56) | class AppHeader extends Disposable { method constructor (line 76) | constructor( method buildDom (line 82) | public buildDom() { method _buildOrgLinkOrMenu (line 128) | private _buildOrgLinkOrMenu() { method _setHomePageUrl (line 174) | private _setHomePageUrl(link: AppLogoLink) { method _maybeBuildBillingPageMenuItem (line 182) | private _maybeBuildBillingPageMenuItem() { method _maybeBuildActivationPageMenuItem (line 207) | private _maybeBuildActivationPageMenuItem() { method _getAppLogoOrgNameAndLink (line 216) | private _getAppLogoOrgNameAndLink(params: { function productPill (line 261) | function productPill(org: Organization | null, options: { large?: boolea... FILE: app/client/ui/AppUI.ts function createAppUI (line 37) | function createAppUI(topAppModel: TopAppModel, appObj: App): IDisposable { function createMainPage (line 65) | function createMainPage(appModel: AppModel, appObj: App) { function pagePanelsHome (line 102) | function pagePanelsHome(owner: IDisposableOwner, appModel: AppModel, app... function pagePanelsDoc (line 136) | function pagePanelsDoc(owner: IDisposableOwner, appModel: AppModel, appO... FILE: app/client/ui/AuditLogStreamingConfig.ts class AuditLogStreamingConfig (line 25) | class AuditLogStreamingConfig extends Disposable { method constructor (line 26) | constructor(private _model: AuditLogsModel) { method buildDom (line 30) | public buildDom() { method _handleAddDestinationClick (line 108) | private _handleAddDestinationClick() { method _handleDeleteDestinationClick (line 117) | private _handleDeleteDestinationClick({ id }: AuditLogStreamingDestina... method _handleEditDestinationClick (line 130) | private _handleEditDestinationClick( function getDestinationDisplayName (line 143) | function getDestinationDisplayName(name: AuditLogStreamingDestinationNam... type DestinationFormOptions (line 154) | interface DestinationFormOptions { function showDestinationForm (line 161) | function showDestinationForm(options: DestinationFormOptions) { function toStreamingDestination (line 270) | function toStreamingDestination(formData: Record) { function assertStreamingDestinationName (line 281) | function assertStreamingDestinationName(name: string): asserts name is A... FILE: app/client/ui/AuditLogsPage.ts class AuditLogsPage (line 35) | class AuditLogsPage extends Disposable { method constructor (line 46) | constructor(private _appModel: AppModel, private _appObj: App) { method buildDom (line 51) | public buildDom() { method _buildHeader (line 83) | private _buildHeader() { method _buildContent (line 95) | private _buildContent() { method _buildLogStreamingConfig (line 111) | private _buildLogStreamingConfig() { method _setTitle (line 146) | private _setTitle() { FILE: app/client/ui/AuthenticationSection.ts type AuthenticationSectionOptions (line 36) | interface AuthenticationSectionOptions { class AuthenticationSection (line 43) | class AuthenticationSection extends Disposable { method constructor (line 67) | constructor(private _options: AuthenticationSectionOptions) { method buildDom (line 74) | public buildDom() { method _fetchProviders (line 82) | private async _fetchProviders() { method _fetchPrefsPendingChanges (line 91) | private async _fetchPrefsPendingChanges() { method _buildListOfProviders (line 101) | private _buildListOfProviders(providers: AuthProvider[]) { method _buildNoAuthenticationWarning (line 179) | private _buildNoAuthenticationWarning() { method _buildAuthenticationChangeWarning (line 196) | private _buildAuthenticationChangeWarning() { method _setActiveProvider (line 246) | private async _setActiveProvider(provider: AuthProvider) { method _configureProvider (line 268) | private _configureProvider(provider: AuthProvider) { method _showChangeAdminModal (line 276) | private _showChangeAdminModal() { method _setInstallAdmin (line 301) | private async _setInstallAdmin(email: string, replace: boolean) { method _revertSetInstallAdmin (line 313) | private async _revertSetInstallAdmin() { method _checkIfRestartNeeded (line 323) | private _checkIfRestartNeeded() { method for (line 345) | public static for(provider: AuthProvider) { method constructor (line 362) | constructor(protected _provider: AuthProvider) { method show (line 366) | public show() { class OIDCInformationModal (line 407) | class OIDCInformationModal extends BaseInformationModal { method getDescription (line 408) | protected getDescription(): string[] { method getInstruction (line 418) | protected getInstruction(): string { class SAMLInformationModal (line 427) | class SAMLInformationModal extends BaseInformationModal { method getDescription (line 428) | protected getDescription(): string[] { method getInstruction (line 438) | protected getInstruction(): string { class ForwardedHeadersInfoModal (line 447) | class ForwardedHeadersInfoModal extends BaseInformationModal { method getDescription (line 448) | protected getDescription(): string[] { method getInstruction (line 457) | protected getInstruction(): string { class GristConnectInfoModal (line 466) | class GristConnectInfoModal extends BaseInformationModal { method getDescription (line 467) | protected getDescription(): string[] { method getInstruction (line 477) | protected getInstruction(): string { FILE: app/client/ui/BottomBar.ts function createBottomBarDoc (line 7) | function createBottomBarDoc(owner: MultiHolder, pageModel: DocPageModel,... FILE: app/client/ui/CardContextMenu.ts type ICardContextMenu (line 9) | interface ICardContextMenu { function CardContextMenu (line 16) | function CardContextMenu({ FILE: app/client/ui/CellContextMenu.ts type ICellContextMenu (line 10) | interface ICellContextMenu { function CellContextMenu (line 19) | function CellContextMenu(cellOptions: ICellContextMenu, colOptions: IMul... FILE: app/client/ui/ChangeAdminModal.ts type ChangeAdminModalOptions (line 11) | interface ChangeAdminModalOptions { class ChangeAdminModal (line 17) | class ChangeAdminModal extends Disposable { method constructor (line 23) | constructor(private _options: ChangeAdminModalOptions) { method saveDisabled (line 27) | public get saveDisabled() { return this._saveDisabled; } method save (line 29) | public async save() { method buildDom (line 33) | public buildDom() { FILE: app/client/ui/CodeHighlight.ts type BuildCodeHighlighterOptions (line 14) | interface BuildCodeHighlighterOptions { function fetchAceModules (line 26) | async function fetchAceModules() { function buildCodeHighlighter (line 46) | async function buildCodeHighlighter(options: BuildCodeHighlighterOptions... type BuildHighlightedCodeOptions (line 80) | interface BuildHighlightedCodeOptions extends BuildCodeHighlighterOptions { function buildHighlightedCode (line 91) | function buildHighlightedCode( FILE: app/client/ui/ColumnFilterCalendarView.ts class ColumnFilterCalendarView (line 12) | class ColumnFilterCalendarView extends Disposable { method constructor (line 15) | constructor(private _opts: { method columnFilter (line 28) | public get columnFilter() { return this._opts.columnFilter; } method selectedBoundObs (line 29) | public get selectedBoundObs() { return this._opts.selectedBoundObs; } method buildDom (line 31) | public buildDom() { method _setRange (line 69) | private _setRange() { method _moveToSelected (line 75) | private _moveToSelected() { method _getCurrentTime (line 90) | private _getCurrentTime(): Date { method _onChangeDate (line 94) | private _onChangeDate() { method _getRange (line 114) | private _getRange() { method _updateBoundValue (line 135) | private _updateBoundValue(val: IRelativeDateSpec | number | undefined,... method _cleanup (line 142) | private _cleanup() { FILE: app/client/ui/ColumnFilterMenu.ts type IFilterMenuOptions (line 55) | interface IFilterMenuOptions { type IColumnFilterViewType (line 70) | type IColumnFilterViewType = "listView" | "calendarView"; function columnFilterMenu (line 77) | function columnFilterMenu(owner: IDisposableOwner, opts: IFilterMenuOpti... type IRangeInputOptions (line 401) | interface IRangeInputOptions { function rangeInput (line 412) | function rangeInput(obs: Observable, values: [CellVal... function formatCount (line 611) | function formatCount(values: [CellValue, IFilterCount][]) { function formatUniqueCount (line 616) | function formatUniqueCount(values: [CellValue, IFilterCount][]) { function getEmptyCountMap (line 626) | function getEmptyCountMap(fieldOrColumn: ViewFieldRec | ColumnRec): Map<... type IColumnFilterMenuOptions (line 638) | interface IColumnFilterMenuOptions { type ICreateFilterMenuParams (line 645) | interface ICreateFilterMenuParams extends IColumnFilterMenuOptions { function createFilterMenu (line 657) | function createFilterMenu(params: ICreateFilterMenuParams) { function getMapFuncs (line 769) | function getMapFuncs(columnType: string, tableData: TableData, fieldOrCo... function getRenderFunc (line 801) | function getRenderFunc(columnType: string, fieldOrColumn: ViewFieldRec |... type ICountOptions (line 833) | interface ICountOptions { function addCountsToMap (line 853) | function addCountsToMap(valueMap: Map, rowIds: ... function addSingleCountToMap (line 896) | function addSingleCountToMap(valueMap: Map, val... function getCount (line 906) | function getCount(values: [CellValue, IFilterCount][]) { type IColumnFilterPopupOptions (line 916) | interface IColumnFilterPopupOptions { type IAttachColumnFilterMenuOptions (line 921) | type IAttachColumnFilterMenuOptions = IColumnFilterPopupOptions & IColum... function attachColumnFilterMenu (line 924) | function attachColumnFilterMenu( FILE: app/client/ui/ColumnFilterMenuUtils.ts type IOptionsDropdownOpt (line 10) | interface IOptionsDropdownOpt { function relativeDatesControl (line 17) | function relativeDatesControl( class RelativeDatesMenu (line 33) | class RelativeDatesMenu extends Disposable { method constructor (line 37) | constructor(ctl: IOpenController, method _getOptions (line 48) | private _getOptions() { method _update (line 53) | private _update() { method _action (line 59) | private _action(value: IRangeBoundType) { FILE: app/client/ui/ColumnTitle.ts type IColumnTitleOptions (line 24) | interface IColumnTitleOptions { function buildRenameColumn (line 47) | function buildRenameColumn(options: IColumnTitleOptions) { function columnHeaderWithInfo (line 74) | function columnHeaderWithInfo( function buildColumnRenamePopup (line 88) | function buildColumnRenamePopup(ctrl: IOpenController, options: IColumnT... FILE: app/client/ui/ConfigsAPI.ts type ConfigsAPI (line 6) | interface ConfigsAPI { class InstallConfigsAPI (line 12) | class InstallConfigsAPI extends BaseAPI implements ConfigsAPI { method constructor (line 13) | constructor(private _homeUrl: string = getHomeUrl(), options: IOptions... method getConfig (line 17) | public getConfig(key: ConfigKey): Promise { method updateConfig (line 23) | public updateConfig(key: ConfigKey, value: ConfigValue): Promise { method _url (line 36) | private get _url(): string { class OrgConfigsAPI (line 41) | class OrgConfigsAPI extends BaseAPI implements ConfigsAPI { method constructor (line 42) | constructor( method getConfig (line 50) | public getConfig(key: ConfigKey): Promise { method updateConfig (line 59) | public updateConfig(key: ConfigKey, value: ConfigValue): Promise { method _url (line 75) | private get _url(): string { FILE: app/client/ui/CoreHomeImports.ts function docImport (line 16) | async function docImport(app: AppModel, workspaceId: number | "unsaved")... function fileImport (line 35) | async function fileImport( function importFromPlugin (line 73) | async function importFromPlugin( FILE: app/client/ui/CoreNewDocMethods.ts function createDocAndOpen (line 10) | async function createDocAndOpen(home: HomeModel) { function importDocAndOpen (line 25) | async function importDocAndOpen(home: HomeModel) { function importFromPluginAndOpen (line 35) | async function importFromPluginAndOpen(home: HomeModel, source: ImportSo... FILE: app/client/ui/CreateTeamModal.ts function buildNewSiteModal (line 21) | async function buildNewSiteModal(context: Disposable, options: { class NewSiteModalContent (line 35) | class NewSiteModalContent extends Disposable { method constructor (line 41) | constructor( method buildDom (line 48) | public buildDom() { method _createTeam (line 65) | private async _createTeam() { function buildUpgradeModal (line 79) | function buildUpgradeModal(owner: Disposable, options: { class UpgradeButton (line 87) | class UpgradeButton extends Disposable { method constructor (line 88) | constructor(_appModel: AppModel) { method buildDom (line 92) | public buildDom() { return null; } function buildConfirm (line 95) | function buildConfirm({ function buildTeamPage (line 111) | function buildTeamPage({ function showModal (line 185) | function showModal( function hspace (line 211) | function hspace(height: string) { FILE: app/client/ui/CustomSectionConfig.ts class ColumnPicker (line 52) | class ColumnPicker extends Disposable { method constructor (line 53) | constructor( method buildDom (line 60) | public buildDom() { class ColumnListPicker (line 167) | class ColumnListPicker extends Disposable { method constructor (line 168) | constructor( method buildDom (line 175) | public buildDom() { method _buildAddColumn (line 188) | private _buildAddColumn() { method _buildDraggableList (line 236) | private _buildDraggableList(use: UseCBOwner) { method _readItems (line 249) | private _readItems(use: UseCBOwner): ColumnRec[] { method _renderItem (line 262) | private _renderItem(use: UseCBOwner, field: ColumnRec): any { method _list (line 279) | private _list(value?: number[]) { method _reorder (line 292) | private _reorder(column: ColumnRec, nextColumn: ColumnRec | null): any { method _remove (line 305) | private _remove(column: ColumnRec): any { method _addColumn (line 310) | private _addColumn(col: ColumnRec): any { class CustomSectionConfigurationConfig (line 325) | class CustomSectionConfigurationConfig extends Disposable { method constructor (line 329) | constructor(private _section: ViewSectionRec, private _gristDoc: Grist... method buildDom (line 333) | public buildDom() { method _openConfiguration (line 373) | private _openConfiguration(): void { method _attachColumnMappingTip (line 377) | private _attachColumnMappingTip(widgetUrl: string | null) { class CustomSectionConfig (line 406) | class CustomSectionConfig extends Disposable { method constructor (line 468) | constructor(protected _section: ViewSectionRec, private _gristDoc: Gri... method buildDom (line 489) | public buildDom(): DomContents { method shouldRenderWidgetSelector (line 497) | protected shouldRenderWidgetSelector(): boolean { method _getWidgets (line 501) | protected async _getWidgets() { method _buildWidgetSelector (line 505) | private _buildWidgetSelector() { method _buildShowWidgetDetailsButton (line 519) | private _buildShowWidgetDetailsButton() { method _buildWidgetName (line 539) | private _buildWidgetName() { method _maybeBuildWidgetDetails (line 562) | private _maybeBuildWidgetDetails() { method _buildWidgetDetails (line 573) | private _buildWidgetDetails(widget: ICustomWidget | null) { method _buildAccessLevelConfig (line 631) | private _buildAccessLevelConfig() { method _buildAccessLevelPrompt (line 666) | private _buildAccessLevelPrompt(level: AccessLevel | null) { method _grantDesiredAccess (line 684) | private _grantDesiredAccess() { method _dismissAccessPrompt (line 691) | private _dismissAccessPrompt() { function getAccessLevels (line 696) | function getAccessLevels(): IOptionFull[] { FILE: app/client/ui/CustomThemes.ts type ProductFlavor (line 17) | type ProductFlavor = "grist" | "fieldlink"; type CustomTheme (line 19) | interface CustomTheme { function getFlavor (line 24) | function getFlavor(org?: string): ProductFlavor { function getTheme (line 42) | function getTheme(flavor: ProductFlavor): CustomTheme { FILE: app/client/ui/CustomWidgetGallery.ts constant CUSTOM_URL_WIDGET_ID (line 24) | const CUSTOM_URL_WIDGET_ID = "custom"; type Options (line 26) | interface Options { function showCustomWidgetGallery (line 31) | function showCustomWidgetGallery(gristDoc: GristDoc, options: Options = ... type WidgetInfo (line 38) | interface WidgetInfo { type CustomWidgetACItem (line 47) | interface CustomWidgetACItem extends ICustomWidget { type WidgetVariant (line 51) | type WidgetVariant = "custom" | "grist" | "community"; class CustomWidgetGallery (line 53) | class CustomWidgetGallery extends Disposable { method constructor (line 64) | constructor( method buildDom (line 121) | public buildDom() { method _initializeWidgets (line 170) | private async _initializeWidgets() { method _filterWidgets (line 195) | private _filterWidgets() { method _buildWidgets (line 213) | private _buildWidgets() { method _buildWidget (line 238) | private _buildWidget(info: WidgetInfo) { method _save (line 317) | private async _save() { method _validateSelectedWidget (line 331) | private async _validateSelectedWidget() { method _deselectOrClose (line 342) | private async _deselectOrClose() { method _saveSelectedWidget (line 350) | private async _saveSelectedWidget() { method _saveCustomUrlWidget (line 378) | private async _saveCustomUrlWidget(section: ViewSectionRec) { method _saveRemoteWidget (line 395) | private async _saveRemoteWidget(section: ViewSectionRec) { method _maybeClearSelection (line 427) | private _maybeClearSelection(event: MouseEvent) { function getWidgetName (line 440) | function getWidgetName({ name, source }: ICustomWidget) { function getWidgetVariant (line 444) | function getWidgetVariant({ isGristLabsMaintained = false, widgetId }: I... function getWidgetId (line 454) | function getWidgetId({ source, widgetId }: ICustomWidget) { function getWidgetCleanText (line 462) | function getWidgetCleanText({ name, description, authors = [] }: ICustom... constant WIDGET_WIDTH_PX (line 504) | const WIDGET_WIDTH_PX = 240; constant WIDGETS_GAP_PX (line 506) | const WIDGETS_GAP_PX = 16; FILE: app/client/ui/DateRangeOptions.ts type IDateRangeOption (line 6) | interface IDateRangeOption { function getDateRangeOptions (line 12) | function getDateRangeOptions(): IDateRangeOption[] { FILE: app/client/ui/DefaultActivationPage.ts type IActivationPageCreator (line 5) | type IActivationPageCreator = IDomCreator<[AppModel]>; class DefaultActivationPage (line 11) | class DefaultActivationPage extends Disposable { method constructor (line 12) | constructor(_appModel: AppModel) { method buildDom (line 16) | public buildDom() { FILE: app/client/ui/DescriptionConfig.ts function buildDescriptionConfig (line 15) | function buildDescriptionConfig( function buildTextInput (line 113) | function buildTextInput( FILE: app/client/ui/DocHistory.ts class DocHistory (line 23) | class DocHistory extends Disposable implements IDomComponent { method constructor (line 26) | constructor(private _docPageModel: DocPageModel, private _actionLog: I... method buildDom (line 30) | public buildDom() { method _buildSnapshots (line 49) | private _buildSnapshots(owner: MultiHolder) { FILE: app/client/ui/DocIcon.ts type DocIconOptions (line 8) | interface DocIconOptions { function buildDocIcon (line 18) | function buildDocIcon(options: DocIconOptions, ...args: DomElementArg[]) { function getDefaultIconColors (line 45) | function getDefaultIconColors(docId: string) { function isEmoji (line 53) | function isEmoji(value: unknown): value is string { function getIconFromName (line 61) | function getIconFromName(name: string) { function stripIconFromName (line 91) | function stripIconFromName(name: string, hasIcon: boolean) { constant DEFAULT_DOC_ICON_COLORS (line 101) | const DEFAULT_DOC_ICON_COLORS = [ FILE: app/client/ui/DocList.ts type DocListOptions (line 50) | interface DocListOptions { class DocList (line 55) | class DocList extends Disposable { method constructor (line 100) | constructor(private _options: DocListOptions) { method buildDom (line 104) | public buildDom() { method _buildHeader (line 108) | private _buildHeader() { method _buildViewSettings (line 116) | private _buildViewSettings() { method _buildBody (line 136) | private _buildBody() { function makeDocOptionsMenu (line 250) | function makeDocOptionsMenu(home: HomeModel, doc: Document) { function showMoveDocModal (line 331) | function showMoveDocModal(home: HomeModel, doc: Document) { type IconAndLabel (line 372) | interface IconAndLabel { function getTabIconsAndLabels (line 377) | function getTabIconsAndLabels(): Record { type SortAndFilterOptions (line 394) | interface SortAndFilterOptions { function sortAndFilterDocs (line 399) | function sortAndFilterDocs( function renameDoc (line 414) | async function renameDoc(home: HomeModel, doc: Document, val: string) { function getUpdatedAt (line 424) | function getUpdatedAt(doc: Document) { FILE: app/client/ui/DocMenu.ts function createDocMenu (line 49) | function createDocMenu(home: HomeModel): DomElementArg[] { function attachWelcomePopups (line 88) | function attachWelcomePopups(home: HomeModel): (el: Element) => void { function buildAllDocumentsPage (line 97) | function buildAllDocumentsPage(home: HomeModel) { function buildWorkspacePage (line 106) | function buildWorkspacePage(home: HomeModel, workspace: Workspace | unde... function buildTemplatesPage (line 131) | function buildTemplatesPage(home: HomeModel) { function buildTrashPage (line 167) | function buildTrashPage(home: HomeModel) { function buildAllDocsBlock (line 190) | function buildAllDocsBlock( function buildAllTemplates (line 237) | function buildAllTemplates(home: HomeModel, templateWorkspaces: Observab... function buildPrefs (line 257) | function buildPrefs(viewSettings: ViewSettings, ...args: DomArg { method _uploadAttachmentsArchive (line 436) | private async _uploadAttachmentsArchive(file: File) { method _reloadEngine (line 455) | private async _reloadEngine(ask = true) { method _startTiming (line 473) | private async _startTiming() { method _buildDocumentTypeModal (line 541) | private _buildDocumentTypeModal() { function getApiConsoleLink (line 647) | function getApiConsoleLink(docPageModel: DocPageModel) { type LocaleItem (line 657) | type LocaleItem = ACSelectItem & { locale?: string }; function buildLocaleSelect (line 659) | function buildLocaleSelect( type DocumentTypeItem (line 690) | type DocumentTypeItem = ACSelectItem & { type?: string }; function displayCurrentType (line 692) | function displayCurrentType( function stillExternalCopy (line 727) | function stillExternalCopy(inProgress: Observable, ...args: IDo... function stillInternalCopy (line 754) | function stillInternalCopy(inProgress: Observable, ...args: IDo... function getSupportedEngineChoices (line 867) | function getSupportedEngineChoices(): EngineCode[] { constant TOOLTIP_KEY (line 872) | const TOOLTIP_KEY = "copy-on-settings"; function copyHandler (line 874) | function copyHandler(value: () => string, confirmation: string) { function readonly (line 885) | function readonly() { function clickToSelect (line 891) | function clickToSelect() { type TimingModalPage (line 908) | enum TimingModalPage { type TimingModalOption (line 916) | enum TimingModalOption { type DocTypeOption (line 931) | enum DocTypeOption { FILE: app/client/ui/DuplicateTable.ts type DuplicateTableResponse (line 21) | interface DuplicateTableResponse { type DuplicateTableOptions (line 30) | interface DuplicateTableOptions { function duplicateTable (line 37) | function duplicateTable( class DuplicateTableModal (line 57) | class DuplicateTableModal extends Disposable { method constructor (line 62) | constructor(private _gristDoc: GristDoc, private _tableId: string) { method saveDisabled (line 66) | public get saveDisabled() { return this._saveDisabled; } method save (line 68) | public save() { method buildDom (line 72) | public buildDom() { method _duplicateTable (line 106) | private _duplicateTable() { FILE: app/client/ui/EmojiPicker.ts type EmojiPickerOptions (line 5) | interface EmojiPickerOptions { function buildEmojiPicker (line 10) | async function buildEmojiPicker({ FILE: app/client/ui/ExampleCard.ts function showExampleCard (line 13) | function showExampleCard( function disposeCard (line 58) | function disposeCard(cardElem: HTMLElement) { function collapseAndRemoveCard (line 65) | function collapseAndRemoveCard(card: HTMLElement, collapsedRect: DOMRect) { function collapseCard (line 72) | function collapseCard(card: HTMLElement, collapsedRect: DOMRect) { function expandCard (line 85) | function expandCard(card: HTMLElement, collapsedRect: DOMRect) { FILE: app/client/ui/ExampleInfo.ts type IExampleInfo (line 5) | interface IExampleInfo { type WelcomeCard (line 14) | interface WelcomeCard { FILE: app/client/ui/Experiments.ts constant EXPERIMENTS (line 15) | const EXPERIMENTS = { type Experiment (line 19) | type Experiment = keyof typeof EXPERIMENTS; constant EXPERIMENT_URL_PARAM (line 21) | const EXPERIMENT_URL_PARAM = "experiment"; class Experiments (line 23) | class Experiments extends Disposable { method constructor (line 24) | constructor(private _userId: number) { method isEnabled (line 28) | public isEnabled(experiment: Experiment) { method isRequested (line 36) | public isRequested() { method getCurrentRequest (line 44) | public getCurrentRequest() { method showModal (line 52) | public showModal(experiment: string) { method _showFeedbackModal (line 92) | private _showFeedbackModal(experiment: string, nowEnabled: boolean) { method _isSupported (line 126) | private _isSupported(experiment: string) { method _getExperimentState (line 130) | private _getExperimentState(experiment: string): { enabled: boolean, t... method _setExperimentState (line 137) | private _setExperimentState(experiment: string, enabled: boolean) { method _getStorageKey (line 144) | private _getStorageKey(experiment: string) { method _cleanAndReloadUrl (line 151) | private _cleanAndReloadUrl() { FILE: app/client/ui/FieldConfig.ts constant LIMITED_COLUMN_OPTIONS (line 26) | const LIMITED_COLUMN_OPTIONS = t("Column options are limited in summary ... function buildNameConfig (line 28) | function buildNameConfig( type BuildEditorOptions (line 103) | interface BuildEditorOptions { type SaveHandler (line 116) | type SaveHandler = (column: ColumnRec, formula: string) => Promise; type BuildEditor (line 118) | type BuildEditor = (options: BuildEditorOptions) => void; function buildFormulaConfig (line 120) | function buildFormulaConfig( type BuildFormulaOptions (line 449) | interface BuildFormulaOptions { function buildFormula (line 456) | function buildFormula( FILE: app/client/ui/FieldContextMenu.ts type IFieldContextMenu (line 10) | interface IFieldContextMenu { function FieldContextMenu (line 17) | function FieldContextMenu(fieldOptions: IFieldContextMenu) { FILE: app/client/ui/FieldMenus.ts type IFieldOptions (line 6) | interface IFieldOptions { function FieldSettingsMenu (line 14) | function FieldSettingsMenu(useColOptions: boolean, disableSeparate: bool... FILE: app/client/ui/FileDialog.ts type FileDialogOptions (line 22) | interface FileDialogOptions { type FilesCB (line 28) | type FilesCB = (files: File[]) => void; function noop (line 30) | function noop() { /* no-op */ } function openFilePicker (line 50) | function openFilePicker(options: FileDialogOptions): Promise { function open (line 59) | function open(options: FileDialogOptions, callback: FilesCB): void { FILE: app/client/ui/FilterBar.ts function filterBar (line 17) | function filterBar( function makeFilterField (line 38) | function makeFilterField(filterInfo: FilterInfo, popupControls: WeakMap<... type AddFilterMenuOptions (line 63) | interface AddFilterMenuOptions { function addFilterMenu (line 80) | function addFilterMenu( function openFilter (line 102) | function openFilter( function makePlusButton (line 113) | function makePlusButton(viewSectionRec: ViewSectionRec, popupControls: W... FILE: app/client/ui/FilterConfig.ts type FilterConfigOptions (line 18) | interface FilterConfigOptions { class FilterConfig (line 31) | class FilterConfig extends Disposable { method constructor (line 38) | constructor(private _section: ViewSectionRec, private _options: Filter... method buildDom (line 42) | public buildDom() { FILE: app/client/ui/FloatingPopup.ts constant POPUP_GAP_PX (line 23) | const POPUP_GAP_PX = 16; constant POPUP_HEADER_HEIGHT_PX (line 25) | const POPUP_HEADER_HEIGHT_PX = 30; constant FLOATING_POPUP_TOOLTIP_KEY (line 31) | const FLOATING_POPUP_TOOLTIP_KEY = "floatingPopupTooltip"; type PopupOptions (line 33) | interface PopupOptions { type PopupPosition (line 64) | interface PopupPosition { type PopupSize (line 69) | interface PopupSize extends PopupPosition { class FloatingPopup (line 74) | class FloatingPopup extends Disposable { method constructor (line 97) | constructor(protected _options: PopupOptions) { method showPopup (line 137) | public showPopup() { method _closePopup (line 142) | protected _closePopup() { method _buildTitle (line 152) | protected _buildTitle(): DomContents { method _buildContent (line 156) | protected _buildContent(): DomContents { method _buildArgs (line 160) | protected _buildArgs(): any { method _addPopupToDom (line 164) | private _addPopupToDom() { method _disposePopup (line 171) | private _disposePopup() { method _hidePopup (line 179) | private _hidePopup() { method _getDefaultPosition (line 183) | private _getDefaultPosition(): PopupPosition { method _handleMouseDown (line 198) | private _handleMouseDown(ev: MouseEvent) { method _handleTouchStart (line 208) | private _handleTouchStart(ev: TouchEvent) { method _setStartPosition (line 217) | private _setStartPosition() { method _handleTouchMove (line 222) | private _handleTouchMove({ touches }: TouchEvent) { method _handleMouseMove (line 226) | private _handleMouseMove({ clientX, clientY }: MouseEvent | Touch) { method _handleMouseUp (line 265) | private _handleMouseUp() { method _handleTouchEnd (line 273) | private _handleTouchEnd() { method _handleMoveEnd (line 280) | private _handleMoveEnd() { method _updatePosition (line 286) | private _updatePosition() { method _updateSize (line 293) | private _updateSize() { method _handleWindowResize (line 298) | private _handleWindowResize() { method _repositionPopup (line 302) | private _repositionPopup() { method _minimizeOrMaximize (line 332) | private _minimizeOrMaximize() { method _buildPopup (line 339) | private _buildPopup() { method _resizable (line 421) | private _resizable() { method _handleResize (line 443) | private _handleResize( method _handleResizeStop (line 494) | private _handleResizeStop() { method _forceCursor (line 504) | private _forceCursor() { method _testId (line 509) | private _testId(name: string) { function getPopupTopBottomGapPx (line 514) | function getPopupTopBottomGapPx(): number { FILE: app/client/ui/FormAPI.ts type Form (line 13) | interface Form { type FormField (line 29) | interface FormField { type FormFieldOptions (line 44) | interface FormFieldOptions { type FormTextFormat (line 90) | type FormTextFormat = "singleline" | "multiline"; type FormNumberFormat (line 92) | type FormNumberFormat = "text" | "spinner"; type FormToggleFormat (line 94) | type FormToggleFormat = "switch" | "checkbox"; type FormSelectFormat (line 96) | type FormSelectFormat = "select" | "radio"; type FormOptionsAlignment (line 98) | type FormOptionsAlignment = "vertical" | "horizontal"; type FormOptionsSortOrder (line 100) | type FormOptionsSortOrder = "default" | "ascending" | "descending"; constant FORM_OPTIONS_DEFAULT_LIMIT (line 102) | const FORM_OPTIONS_DEFAULT_LIMIT = 30; function getFormOptionsLimit (line 104) | function getFormOptionsLimit(options: FormFieldOptions): number { type FormAPI (line 108) | interface FormAPI { type FormTargetWithDocId (line 114) | interface FormTargetWithDocId { type FormTargetWithShareKey (line 118) | interface FormTargetWithShareKey { type FormTarget (line 122) | type FormTarget = FormTargetWithDocId | FormTargetWithShareKey; type GetFormCommonOptions (line 124) | interface GetFormCommonOptions { type GetFormOptions (line 128) | type GetFormOptions = GetFormCommonOptions & FormTarget; type CreateRecordCommonOptions (line 130) | interface CreateRecordCommonOptions { type CreateRecordOptions (line 135) | type CreateRecordOptions = CreateRecordCommonOptions & FormTarget; type CreateAttachmentCommonOptions (line 137) | interface CreateAttachmentCommonOptions { type CreateAttachmentOptions (line 141) | type CreateAttachmentOptions = CreateAttachmentCommonOptions & FormTarget; class FormAPIImpl (line 143) | class FormAPIImpl extends BaseAPI implements FormAPI { method constructor (line 144) | constructor(private _homeUrl: string, options: IOptions = {}) { method getForm (line 148) | public async getForm(options: GetFormOptions): Promise

{ method createRecord (line 155) | public async createRecord(options: CreateRecordOptions): Promise { method createAttachments (line 166) | public async createAttachments(options: CreateAttachmentOptions): Prom... method _baseUrl (line 184) | private get _baseUrl(): string { method _docOrShareUrl (line 188) | private _docOrShareUrl(path: string, target: FormTarget): string { FILE: app/client/ui/FormContainer.ts function buildFormMessagePage (line 10) | function buildFormMessagePage(buildBody: () => DomContents, ...args: Dom... function buildFormFooter (line 24) | function buildFormFooter() { FILE: app/client/ui/FormErrorPage.ts class FormErrorPage (line 17) | class FormErrorPage extends Disposable { method constructor (line 18) | constructor(private _message: string) { method buildDom (line 23) | public buildDom() { FILE: app/client/ui/FormPage.ts class FormPage (line 21) | class FormPage extends Disposable { method constructor (line 25) | constructor() { method buildDom (line 36) | public buildDom() { method _buildFormPageDom (line 50) | private _buildFormPageDom() { method _handleFormSubmit (line 98) | private async _handleFormSubmit(formElement: HTMLFormElement) { method _handleFormSubmitSuccess (line 102) | private async _handleFormSubmitSuccess() { method _handleFormError (line 117) | private _handleFormError(e: unknown) { FILE: app/client/ui/FormSuccessPage.ts class FormSuccessPage (line 19) | class FormSuccessPage extends Disposable { method constructor (line 30) | constructor(private _model: FormModel) { method buildDom (line 35) | public buildDom() { method _handleClickNewResponseButton (line 54) | private async _handleClickNewResponseButton() { FILE: app/client/ui/GetGristComProvider.ts class GetGristComProviderInfoModal (line 25) | class GetGristComProviderInfoModal extends Disposable { method constructor (line 32) | constructor() { method show (line 45) | public show( method _handleConfigure (line 127) | private async _handleConfigure() { FILE: app/client/ui/GridOptions.ts class GridOptions (line 15) | class GridOptions extends Disposable { method constructor (line 16) | constructor(private _section: ViewSectionRec) { method buildDom (line 20) | public buildDom() { function setSaveValueFromKo (line 59) | function setSaveValueFromKo(owner: IDisposableOwner, obs: KoSaveableObse... FILE: app/client/ui/GridViewMenus.ts function buildAddColumnMenu (line 37) | function buildAddColumnMenu(gridView: GridView, index?: number) { function getColumnTypes (line 49) | function getColumnTypes(gristDoc: GristDoc, tableId: string, pure = fals... function buildAddNewColumMenuSection (line 84) | function buildAddNewColumMenuSection(gridView: GridView, index?: number)... function buildHiddenColumnsMenuItems (line 153) | function buildHiddenColumnsMenuItems(gridView: GridView, index?: number) { function buildShortcutsMenuItems (line 197) | function buildShortcutsMenuItems(gridView: GridView, index?: number) { function buildTimestampMenuItems (line 209) | function buildTimestampMenuItems(gridView: GridView, index?: number) { function buildAuthorshipMenuItems (line 253) | function buildAuthorshipMenuItems(gridView: GridView, index?: number) { function buildDetectDuplicatesMenuItems (line 294) | function buildDetectDuplicatesMenuItems(gridView: GridView, index?: numb... function buildUUIDMenuItem (line 363) | function buildUUIDMenuItem(gridView: GridView, index?: number) { function menuLabelWithBadge (line 396) | function menuLabelWithBadge(label: string, toast: string) { function buildLookupSection (line 402) | function buildLookupSection(gridView: GridView, index?: number) { type IMultiColumnContextMenu (line 695) | interface IMultiColumnContextMenu { type IColumnContextMenu (line 713) | interface IColumnContextMenu extends IMultiColumnContextMenu { function calcFieldsCondition (line 719) | function calcFieldsCondition( function buildColumnContextMenu (line 725) | function buildColumnContextMenu(options: IColumnContextMenu) { function buildMultiColumnMenu (line 803) | function buildMultiColumnMenu(options: IMultiColumnContextMenu) { function freezeAction (line 834) | function freezeAction(options: IMultiColumnContextMenu): { text: string;... function freezeMenuItemCmd (line 937) | function freezeMenuItemCmd(options: IMultiColumnContextMenu) { function getAddToSortLabel (line 950) | function getAddToSortLabel(sortSpec: Sort.SortSpec, colId: number): stri... function customMenuItem (line 995) | function customMenuItem(action: () => void, ...args: DomElementArg[]) { FILE: app/client/ui/GridViewMenusDateHelpers.ts constant FORMULAS (line 24) | const FORMULAS = { constant CONFIGURATION (line 95) | const CONFIGURATION: Record = { type PlainItem (line 473) | interface PlainItem { type SubmenuItem (line 485) | interface SubmenuItem { type SectionItem (line 493) | type SectionItem = PlainItem | SubmenuItem; type Section (line 498) | interface Section { function buildDateHelpersMenuItems (line 506) | function buildDateHelpersMenuItems(gridView: GridView, index?: number) { FILE: app/client/ui/GristTooltips.ts type Tooltip (line 35) | type Tooltip = type TooltipContentFunc (line 63) | type TooltipContentFunc = (...domArgs: DomElementArg[]) => DomContents; type ErrorTooltip (line 270) | type ErrorTooltip = "summaryFormulas"; type BehavioralPromptContent (line 286) | interface BehavioralPromptContent { FILE: app/client/ui/HomeIntro.ts function buildHomeIntro (line 17) | function buildHomeIntro(homeModel: HomeModel): DomContents { function makeTeamSiteIntro (line 30) | function makeTeamSiteIntro(homeModel: HomeModel) { function makePersonalIntro (line 50) | function makePersonalIntro(homeModel: HomeModel, user: FullUser) { function makeAnonIntro (line 70) | function makeAnonIntro(homeModel: HomeModel) { function buildPreferencesMenu (line 82) | function buildPreferencesMenu(homeModel: HomeModel) { FILE: app/client/ui/HomeIntroCards.ts type BuildHomeIntroCardsOptions (line 15) | interface BuildHomeIntroCardsOptions { function buildHomeIntroCards (line 23) | function buildHomeIntroCards( FILE: app/client/ui/HomeLeftPane.ts function createHomeLeftPane (line 44) | function createHomeLeftPane(leftPanelOpen: Observable, home: Ho... function addMenu (line 197) | function addMenu(home: HomeModel, creating: Observable): DomEle... function workspaceMenu (line 243) | function workspaceMenu(home: HomeModel, ws: Workspace, renaming: Observa... FILE: app/client/ui/IAssistantPopup.ts type IAssistantPopup (line 5) | interface IAssistantPopup extends Disposable { FILE: app/client/ui/ImportProgress.ts class ImportProgress (line 5) | class ImportProgress extends Disposable { method constructor (line 15) | constructor(private _progressUI: IProgress, file: File) { method setUploadProgress (line 32) | public setUploadProgress(percentage: number) { method finish (line 40) | public finish() { method _onImportTimer (line 52) | private _onImportTimer() { FILE: app/client/ui/LanguageMenu.ts function buildLanguageMenu (line 16) | function buildLanguageMenu(appModel: AppModel) { function buildFlagIcon (line 58) | function buildFlagIcon(locale: string) { function translateLocale (line 71) | function translateLocale(locale: string) { FILE: app/client/ui/LeftPanelCommon.ts function createHelpTools (line 35) | function createHelpTools(appModel: AppModel): DomContents { function createAccessibilityTools (line 59) | function createAccessibilityTools(): DomContents { function leftPanelBasic (line 86) | function leftPanelBasic(appModel: AppModel, panelOpen: Observable, private _allItems:... method buildDom (line 44) | public buildDom() { method add (line 57) | protected async add(item: Item): Promise { method remove (line 62) | protected async remove(item: Item): Promise { method reorder (line 69) | protected async reorder(item: Item, nextItem: Item): Promise { ret... method changeItem (line 72) | protected async changeItem(item: Item, newItem: Item): Promise { method buildDragHandle (line 79) | protected buildDragHandle(item: Item): Element { return new Element(); } method buildSelectBox (line 81) | protected buildSelectBox(selectedValue: string, method buildRemoveButton (line 101) | protected buildRemoveButton(removeCb: () => void): Element { method buildItemDom (line 109) | protected buildItemDom(item: Item): Element { method _findIncIndex (line 118) | private _findIncIndex(item: Item): number { method _findItemByValue (line 123) | private _findItemByValue(value: string): Item | undefined { method _buildAddItemDom (line 128) | private _buildAddItemDom(defLabel: string, defText: string): Element { FILE: app/client/ui/NewRecordButton.ts function maybeShowNewRecordExperiment (line 21) | function maybeShowNewRecordExperiment(view: BaseView) { function newRecordButton (line 37) | function newRecordButton(view: BaseView) { FILE: app/client/ui/NotifyUI.ts function buildAction (line 22) | function buildAction(action: NotifyAction, item: Notification, options: ... function notificationIcon (line 77) | function notificationIcon(item: Notification) { function buildNotificationDom (line 88) | function buildNotificationDom(item: Notification, options: IBeaconOpenOp... function buildProgressDom (line 121) | function buildProgressDom(item: Progress) { function buildNotifyMenuButton (line 137) | function buildNotifyMenuButton(notifier: Notifier, appModel: AppModel | ... function buildNotifyDropdown (line 152) | function buildNotifyDropdown(ctl: IOpenController, notifier: Notifier, a... function buildSnackbarDom (line 194) | function buildSnackbarDom(notifier: Notifier, appModel: AppModel | null)... function buildConnectStateButton (line 202) | function buildConnectStateButton(state: ConnectState): Element { FILE: app/client/ui/OnBoardingPopups.ts type IOnBoardingMsg (line 45) | interface IOnBoardingMsg { function isTourActiveObs (line 84) | function isTourActiveObs(): Observable { function startOnBoarding (line 96) | function startOnBoarding(messages: IOnBoardingMsg[], onFinishCB: (lastMe... function isTourActive (line 104) | function isTourActive(): boolean { class OnBoardingError (line 108) | class OnBoardingError extends Error { method constructor (line 110) | constructor(message: string) { class OnBoardingPopupsCtl (line 124) | class OnBoardingPopupsCtl extends Disposable { method constructor (line 129) | constructor(private _messages: IOnBoardingMsg[], private _onFinishCB: ... method start (line 144) | public async start() { method _finish (line 157) | private _finish(lastMessageIndex: number) { method _move (line 162) | private async _move(movement: number, maybeClose = false) { method _showHasPopup (line 195) | private async _showHasPopup(movement: number) { method _addFocusLayer (line 238) | private _addFocusLayer(container: HTMLElement) { method _getAdjacentPadding (line 246) | private _getAdjacentPadding(elem: HTMLElement, placement?: Placement) { method _showHasModal (line 268) | private _showHasModal() { method _buildPopupContent (line 281) | private _buildPopupContent() { method _buildFooter (line 304) | private _buildFooter() { method _showOverlay (line 327) | private _showOverlay() { function buildArrow (line 336) | function buildArrow() { function sideSelectorChunk (line 355) | function sideSelectorChunk(side: "top" | "bottom" | "left" | "right") { FILE: app/client/ui/OnboardingPage.ts function shouldShowOnboardingPage (line 49) | function shouldShowOnboardingPage(userPrefsObs: Observable): ... type IncrementStep (line 53) | type IncrementStep = (delta?: 1 | -1) => void; type Step (line 55) | interface Step { type QuestionsState (line 61) | interface QuestionsState { type VideoState (line 68) | interface VideoState { class OnboardingPage (line 72) | class OnboardingPage extends Disposable { method constructor (line 76) | constructor(private _appModel: AppModel) { method buildDom (line 114) | public buildDom() { function buildStepper (line 139) | function buildStepper(steps: Step[], stepIndex: Observable) { function saveQuestions (line 155) | function saveQuestions(state: QuestionsState) { function buildQuestions (line 173) | function buildQuestions(owner: IDisposableOwner, incrementStep: Incremen... function buildVideo (line 245) | function buildVideo(_owner: IDisposableOwner, incrementStep: IncrementSt... function buildTutorial (line 339) | function buildTutorial(_owner: IDisposableOwner, incrementStep: Incremen... FILE: app/client/ui/OpenAccessibilityModal.ts function openAccessibilityModal (line 28) | function openAccessibilityModal(appObs: Observable) { FILE: app/client/ui/OpenUserManager.ts type ManageTeamUsersOptions (line 5) | interface ManageTeamUsersOptions { function manageTeamUsers (line 13) | async function manageTeamUsers({ org, user, api, onSave }: ManageTeamUse... type ManagePersonalUsersAppOptions (line 24) | interface ManagePersonalUsersAppOptions { function manageTeamUsersApp (line 30) | async function manageTeamUsersApp({ app, onSave }: ManagePersonalUsersAp... FILE: app/client/ui/OpenVideoTour.ts function openVideoTour (line 20) | function openVideoTour(refElement: HTMLElement) { function createVideoTourTextButton (line 66) | function createVideoTourTextButton(): HTMLDivElement { function createVideoTourToolsButton (line 82) | function createVideoTourToolsButton(): HTMLDivElement | null { FILE: app/client/ui/PagePanels.ts constant AUTO_EXPAND_TIMEOUT_MS (line 25) | const AUTO_EXPAND_TIMEOUT_MS = 400; constant DELAY_BEFORE_TESTING_FOCUS_CHANGE_MS (line 28) | const DELAY_BEFORE_TESTING_FOCUS_CHANGE_MS = 12; type PageSidePanel (line 30) | interface PageSidePanel { type PageContents (line 40) | interface PageContents { function pagePanels (line 56) | function pagePanels(page: PageContents) { function toggleObs (line 409) | function toggleObs(boolObs: Observable) { function maybePatchDomAndChangeFocus (line 705) | function maybePatchDomAndChangeFocus() { function watchHeight (line 713) | function watchHeight(callback: (height: number) => void): DomElementMeth... function watchHeightElem (line 717) | function watchHeightElem(elem: HTMLElement, callback: (height: number) =... FILE: app/client/ui/PageWidgetPicker.ts type TableRef (line 39) | type TableRef = number | "New Table" | null; type IPageWidget (line 42) | interface IPageWidget { function toPageWidget (line 73) | function toPageWidget(section: ViewSectionRec): IPageWidget { type IOptions (line 90) | interface IOptions extends ISelectOptions { type ICompatibleTypes (line 99) | interface ICompatibleTypes { function getCompatibleTypes (line 112) | function getCompatibleTypes(tableId: TableRef, function isSummaryCompatible (line 129) | function isSummaryCompatible(widgetType: IWidgetType): boolean { function isValidSelection (line 135) | function isValidSelection(table: TableRef, type ISaveFunc (line 141) | type ISaveFunc = (val: IPageWidget) => Promise; constant DELAY_BEFORE_SPINNER_MS (line 146) | const DELAY_BEFORE_SPINNER_MS = 500; function attachPageWidgetPicker (line 149) | function attachPageWidgetPicker(elem: HTMLElement, gristDoc: GristDoc, o... function openPageWidgetPicker (line 168) | function openPageWidgetPicker(elem: HTMLElement, gristDoc: GristDoc, onS... function buildPageWidgetPicker (line 180) | function buildPageWidgetPicker( type IWidgetValueObs (line 274) | type IWidgetValueObs = { type ISelectOptions (line 278) | interface ISelectOptions { class PageWidgetSelect (line 306) | class PageWidgetSelect extends Disposable { method constructor (line 330) | constructor( method buildDom (line 339) | public buildDom() { method _closeSummarizePanel (line 460) | private _closeSummarizePanel() { method _openSummarizePanel (line 465) | private _openSummarizePanel() { method _selectType (line 469) | private _selectType(type: IWidgetType) { method _selectTable (line 473) | private _selectTable(tid: TableRef) { method _isSelected (line 481) | private _isSelected(el: HTMLElement) { method _selectPivot (line 485) | private _selectPivot(tid: TableRef, pivotEl: HTMLElement) { method _toggleColumnId (line 498) | private _toggleColumnId(cid: number) { method _isTypeDisabled (line 504) | private _isTypeDisabled(type: IWidgetType, table: TableRef, isSummaryO... function header (line 512) | function header(label: string, ...args: DomElementArg[]) { function sortedAs (line 656) | function sortedAs(array: number[], other: number[]) { FILE: app/client/ui/Pages.ts function buildPagesDom (line 24) | function buildPagesDom(owner: Disposable, activeDoc: GristDoc, isOpen: O... function buildDomFromTable (line 68) | function buildDomFromTable( function removeView (line 107) | function removeView(activeDoc: GristDoc, viewId: number, pageName: strin... type RemoveOption (line 147) | type RemoveOption = "" | "data" | "page"; function otherPage (line 151) | function otherPage(currentPage: TreeItemRecord, delta: number) { function buildPrompt (line 158) | function buildPrompt(tableNames: string[], onSave: (option: RemoveOption... function buildWarning (line 192) | function buildWarning(tables: string[]) { FILE: app/client/ui/PinnedDocs.ts function createPinnedDocs (line 22) | function createPinnedDocs(home: HomeModel, docs: Observable,... function buildPinnedDoc (line 36) | function buildPinnedDoc(home: HomeModel, doc: Document, workspace: Works... function docInitials (line 87) | function docInitials(docTitle: string) { function capitalizeFirst (line 92) | function capitalizeFirst(str: string): string { FILE: app/client/ui/PredefinedCustomSectionConfig.ts class PredefinedCustomSectionConfig (line 6) | class PredefinedCustomSectionConfig extends CustomSectionConfig { method constructor (line 7) | constructor(section: ViewSectionRec, gristDoc: GristDoc) { method buildDom (line 11) | public buildDom() { method shouldRenderWidgetSelector (line 15) | protected shouldRenderWidgetSelector(): boolean { method _getWidgets (line 19) | protected async _getWidgets(): Promise { FILE: app/client/ui/ProposedChangesPage.ts class ProposedChangesPage (line 48) | class ProposedChangesPage extends Disposable { method constructor (line 52) | constructor(public gristDoc: GristDoc) { method buildDom (line 70) | public buildDom() { class ProposedChangesTrunkPage (line 89) | class ProposedChangesTrunkPage extends Disposable { method constructor (line 109) | constructor(public gristDoc: GristDoc) { method load (line 113) | public async load() { method title (line 139) | public title() { method buildDom (line 143) | public buildDom() { method _updateProposal (line 248) | private _updateProposal(oldProposal: Proposal, newProposal: Proposal) { method _linkProposal (line 254) | private _linkProposal(proposal: Proposal) { class ProposedChangesForkPage (line 273) | class ProposedChangesForkPage extends Disposable { method constructor (line 280) | constructor(public gristDoc: GristDoc) { method title (line 291) | public title() { method load (line 300) | public async load() { method buildDom (line 330) | public buildDom() { method update (line 415) | public async update() { method _getProposalRelativeToCurrent (line 425) | private _getProposalRelativeToCurrent() { class ActionLogPartInProposal (line 437) | class ActionLogPartInProposal extends ActionLogPart { method constructor (line 438) | public constructor( method showForTable (line 446) | public showForTable(): boolean { method selectCell (line 450) | public async selectCell(rowId: number, colId: string, tableId: string)... method getContext (line 454) | public async getContext() { method buildDom (line 465) | public buildDom() { method _makeTable (line 482) | protected _makeTable(props: { function getProposalActionSummary (line 586) | function getProposalActionSummary(proposal: Proposal | null) { function convertTabularDiffToTableData (line 603) | function convertTabularDiffToTableData(table: string, tdiff: TabularDiff... function buildComparisonDetails (line 639) | function buildComparisonDetails( FILE: app/client/ui/RelativeDatesOptions.ts constant DEPS (line 15) | const DEPS = { getCurrentTime }; type IRelativeDateOption (line 17) | interface IRelativeDateOption { constant DEFAULT_OPTION_LIST (line 22) | const DEFAULT_OPTION_LIST: IRelativeDateSpec[] = [ function relativeDatesOptions (line 50) | function relativeDatesOptions(value: IRangeBoundType, valueFormatter: (v... function relativeDateOptionsSpec (line 59) | function relativeDateOptionsSpec(value: IRangeBoundType): IRangeBoundTyp... function now (line 106) | function now(): moment.Moment { function getMatchingDoubleRelativeDate (line 114) | function getMatchingDoubleRelativeDate( function formatBoundOption (line 131) | function formatBoundOption(bound: IRangeBoundType, valueFormatter: (val:... function updateRelativeDate (line 136) | function updateRelativeDate(relativeDate: IRelativeDateSpec, date: numbe... FILE: app/client/ui/RenameDocModal.ts type RenameDocModalOptions (line 29) | interface RenameDocModalOptions { function showRenameDocModal (line 34) | function showRenameDocModal({ home, doc }: RenameDocModalOptions) { class RenameDocModal (line 47) | class RenameDocModal extends Disposable { method constructor (line 71) | constructor(private _options: RenameDocModalOptions) { method buildDom (line 81) | public buildDom() { method save (line 180) | public async save() { FILE: app/client/ui/RightPanel.ts constant BLACK_CIRCLE (line 81) | const BLACK_CIRCLE = "\u2022"; constant ELEMENTOF (line 82) | const ELEMENTOF = "\u2208"; class RightPanel (line 92) | class RightPanel extends Disposable { method constructor (line 131) | constructor(private _gristDoc: GristDoc, private _isOpen: Observable | TabContent[... FILE: app/client/ui/RightPanelUtils.ts function getFieldType (line 11) | function getFieldType(widgetType: IWidgetType | null) { function buildConfigContainer (line 25) | function buildConfigContainer(...args: DomElementArg[]): HTMLElement { FILE: app/client/ui/RowContextMenu.ts type IRowContextMenu (line 9) | interface IRowContextMenu { function RowContextMenu (line 19) | function RowContextMenu({ FILE: app/client/ui/RowHeightConfig.ts function rowHeightConfigColumn (line 20) | function rowHeightConfigColumn(viewSection: ViewSectionRec): DomContents { function rowHeightConfigTable (line 37) | function rowHeightConfigTable( function applyRowHeightLimit (line 75) | function applyRowHeightLimit(section: ViewSectionRec): DomElementArg { FILE: app/client/ui/ShareMenu.ts function buildOriginalUrlId (line 39) | function buildOriginalUrlId(urlId: string, isSnapshot: boolean): string { function buildShareMenuButton (line 48) | function buildShareMenuButton(pageModel: DocPageModel): DomContents { function shareButton (line 131) | function shareButton(buttonText: DomContents | null, menuCreateFunc: Men... function handleSaveCopy (line 171) | async function handleSaveCopy(options: { function menuManageUsers (line 188) | function menuManageUsers(doc: DocInfo, pageModel: DocPageModel) { type MenuOriginalOptions (line 199) | interface MenuOriginalOptions { function menuOriginal (line 216) | function menuOriginal(doc: Document, pageModel: DocPageModel, options: M... function menuSaveCopy (line 265) | function menuSaveCopy(options: { function menuWorkOnCopy (line 279) | function menuWorkOnCopy(pageModel: DocPageModel, options?: { function menuExports (line 306) | function menuExports(doc: Document, pageModel: DocPageModel) { function manageUsers (line 378) | async function manageUsers(doc: DocInfo, docPageModel: DocPageModel) { function makeShareDocUrl (line 399) | function makeShareDocUrl(doc: Document) { FILE: app/client/ui/SiteSwitcher.ts function maybeAddSiteSwitcherSection (line 20) | function maybeAddSiteSwitcherSection(appModel: AppModel) { function buildSiteSwitcher (line 34) | function buildSiteSwitcher(appModel: AppModel) { FILE: app/client/ui/SortConfig.ts type SortableColumn (line 23) | interface SortableColumn { type SortConfigOptions (line 30) | interface SortConfigOptions { class SortConfig (line 48) | class SortConfig extends Disposable { method constructor (line 76) | constructor(private _section: ViewSectionRec, private _gristDoc: Grist... method buildDom (line 86) | public buildDom() { method _createRow (line 102) | private _createRow(colRef: number) { method _buildSortRow (line 111) | private _buildSortRow( method _buildAddToSortButton (line 229) | private _buildAddToSortButton(columns: Computed) { method _buildUpdateDataButton (line 257) | private _buildUpdateDataButton() { method _reorder (line 272) | private _reorder(colRef: number, nextColRef: number | null) { method _saveSort (line 283) | private _saveSort(sortSpec: Sort.SortSpec) { FILE: app/client/ui/SortFilterConfig.ts class SortFilterConfig (line 15) | class SortFilterConfig extends Disposable { method constructor (line 23) | constructor(private _section: ViewSectionRec, private _gristDoc: Grist... method buildDom (line 27) | public buildDom() { method _save (line 58) | private async _save() { method _revert (line 65) | private _revert() { FILE: app/client/ui/SupportGristButton.ts class SupportGristButton (line 27) | class SupportGristButton extends Disposable { method constructor (line 31) | constructor(private _appModel: AppModel) { method buildDom (line 48) | public buildDom(): DomContents { method _buildNudgeModal (line 74) | private _buildNudgeModal() { method _buildOptInScreen (line 97) | private _buildOptInScreen(onOptIn: () => Promise) { method _buildOptedInScreen (line 122) | private _buildOptedInScreen(onClose: () => void) { method _markDismissed (line 143) | private _markDismissed() { method _optInToTelemetry (line 147) | private async _optInToTelemetry() { function helpCenterLink (line 153) | function helpCenterLink() { function adminPanelLink (line 160) | function adminPanelLink() { FILE: app/client/ui/SupportGristPage.ts class SupportGristPage (line 28) | class SupportGristPage extends Disposable { method constructor (line 41) | constructor(private _appModel: AppModel) { method buildTelemetrySection (line 46) | public buildTelemetrySection() { method getTelemetryOptInObservable (line 89) | public getTelemetryOptInObservable() { return this._optInToTelemetry; } method _buildTelemetrySectionButtons (line 91) | public _buildTelemetrySectionButtons(prefs: TelemetryPrefsWithSources) { method buildSponsorshipSection (line 123) | public buildSponsorshipSection() { method buildSponsorshipSmallButton (line 152) | public buildSponsorshipSmallButton() { function telemetryHelpCenterLink (line 158) | function telemetryHelpCenterLink() { function sponsorGristLink (line 165) | function sponsorGristLink() { function gristCoreLink (line 172) | function gristCoreLink() { FILE: app/client/ui/TemplateDocs.ts function buildTemplateDocs (line 16) | function buildTemplateDocs(home: HomeModel, templateDocs: Document[], vi... function buildTemplateDoc (line 38) | function buildTemplateDoc(home: HomeModel, doc: Document, workspace: Wor... FILE: app/client/ui/ThemeConfig.ts class ThemeConfig (line 14) | class ThemeConfig extends Disposable { method constructor (line 38) | constructor(private _appModel: AppModel) { method buildDom (line 42) | public buildDom() { method _updateTheme (line 73) | private _updateTheme(themeName: ThemeName) { method _updateSyncWithOS (line 84) | private _updateSyncWithOS(syncWithOS: boolean) { FILE: app/client/ui/TimingPage.ts class TimingPage (line 17) | class TimingPage extends DisposableWithEvents { method constructor (line 21) | constructor(private _gristDoc: GristDoc) { method buildDom (line 50) | public buildDom() { method _openSettings (line 68) | private _openSettings() { method _start (line 72) | private async _start() { FILE: app/client/ui/ToggleEnterpriseWidget.ts constant TOOLTIP_KEY (line 22) | const TOOLTIP_KEY = "copy-on-settings"; type State (line 24) | type State = "core" | "activated" | "trial" | "no-key" | "error"; class ToggleEnterpriseWidget (line 26) | class ToggleEnterpriseWidget extends Disposable { method constructor (line 53) | constructor(private _notifier: Notifier) { method getEnterpriseToggleObservable (line 60) | public getEnterpriseToggleObservable() { method buildEnterpriseSection (line 64) | public buildEnterpriseSection() { method _buildPasteYourKey (line 85) | private _buildPasteYourKey(show: BindableValue = Observable.c... method _activateButtonClicked (line 125) | private async _activateButtonClicked() { method _trialCopy (line 129) | private _trialCopy() { method _activatedCopy (line 148) | private _activatedCopy() { method _coreCopy (line 275) | private _coreCopy() { method _noKeyCopy (line 286) | private _noKeyCopy() { method _errorCopy (line 332) | private _errorCopy() { function enterpriseNotEnabledCopy (line 344) | function enterpriseNotEnabledCopy() { function learnMoreLink (line 356) | function learnMoreLink() { function copyHandler (line 364) | function copyHandler(value: () => string, confirmation: string) { FILE: app/client/ui/Tools.ts function tools (line 41) | function tools(owner: Disposable, gristDoc: GristDoc, leftPanelOpen: Obs... function automaticHelpTool (line 208) | function automaticHelpTool( type AutomaticHelpToolInfo (line 239) | interface AutomaticHelpToolInfo { FILE: app/client/ui/TopBar.ts function createTopBarHome (line 31) | function createTopBarHome(appModel: AppModel, onSave?: (personal: boolea... function createTopBarDoc (line 56) | function createTopBarDoc(owner: MultiHolder, appModel: AppModel, pageMod... function buildShowDiscussionButton (line 169) | function buildShowDiscussionButton(gristDoc: GristDoc) { function getRenamePageFn (line 183) | function getRenamePageFn(gristDoc: GristDoc): (val: string) => Promise Promise { function topBarUndoBtn (line 201) | function topBarUndoBtn(iconName: IconName, ...domArgs: DomElementArg[]):... FILE: app/client/ui/TreeViewComponent.ts type DropZone (line 15) | interface DropZone { type ItemModel (line 30) | interface ItemModel { function eq (line 48) | function eq(item1: ItemModel | "root", item2: ItemModel | "root") { type Drag (line 59) | interface Drag extends IDisposable { type Target (line 68) | interface Target { type TreeViewOptions (line 74) | interface TreeViewOptions { class TreeViewComponent (line 103) | class TreeViewComponent extends Disposable { method constructor (line 119) | constructor(private _model: Observable, options: TreeViewOp... method buildDom (line 174) | public buildDom() { return this._containerElement; } method _startDrag (line 177) | private _startDrag(ev: MouseEvent) { method _terminateDragging (line 208) | private _terminateDragging() { method _buildTarget (line 223) | private _buildTarget() { method _update (line 237) | private _update() { method _buildChildren (line 253) | private _buildChildren(children: ObsArray, level: number = 0) { method _getOrCreateItem (line 276) | private _getOrCreateItem(treeItem: TreeItem): Element { method _setOffset (line 287) | private _setOffset(el: Element, level: number) { method _buildTreeItemDom (line 292) | private _buildTreeItemDom(treeItem: TreeItem, ...args: DomArg[]): Elem... method _updateHandle (line 367) | private _updateHandle(y: number) { method _onMouseMove (line 374) | private _onMouseMove(ev: MouseEvent) { method _setDropZone (line 400) | private _setDropZone(dropZone: DropZone | null) { method _updateTarget (line 412) | private _updateTarget() { method _getDropZoneRight (line 426) | private _getDropZoneRight(dropZone: DropZone): number { method _getDropZoneOffsetLeft (line 433) | private _getDropZoneOffsetLeft(dropZone: DropZone): number { method _getDropZoneTop (line 439) | private _getDropZoneTop(dropZone: DropZone): number { method _updateTargetParent (line 448) | private _updateTargetParent() { method _getDropZone (line 463) | private _getDropZone(mouseY: number): DropZone | null { method _isInChildOf (line 508) | private _isInChildOf(el: Element, parent: Element) { method _closestItem (line 520) | private _closestItem(element: HTMLElement | null): ItemModel | "root" { method _getParent (line 534) | private _getParent(item: ItemModel): ItemModel | "root" { method _getDropZoneParent (line 539) | private _getDropZoneParent(zone: DropZone): ItemModel | "root" { method _getTreeNode (line 544) | private _getTreeNode(item: ItemModel | "root"): TreeNode { method _getNextChild (line 549) | private _getNextChild(zone: DropZone): TreeItem | undefined { method _moveTreeNode (line 563) | private _moveTreeNode(draggedItem: ItemModel, zone: DropZone) { method _updateExpander (line 589) | private _updateExpander(drag: Drag, item: ItemModel) { function findNext (line 622) | function findNext(children: TreeItem[], item: TreeItem) { function toggle (line 626) | function toggle(obs: Observable) { function addTreeView (line 630) | function addTreeView(model: Observable, options: TreeViewOpti... function delayedMouseDrag (line 637) | function delayedMouseDrag(startDrag: MouseDragStart, delay: number) { function replaceChildren (line 663) | function replaceChildren(elem: Element, ...children: Element[]) { FILE: app/client/ui/TriggerFormulas.ts function buildFormulaTriggers (line 28) | function buildFormulaTriggers(owner: MultiHolder, column: ColumnRec, opt... function buildTriggerSelectors (line 135) | function buildTriggerSelectors(ctl: IOpenController, tableRec: TableRec,... FILE: app/client/ui/UserImage.ts type User (line 9) | type User = Partial | "exampleUser" | "addUser" | null; type Size (line 11) | type Size = "small" | "medium" | "large"; function createUserImage (line 17) | function createUserImage(user: User, size: Size, ...args: DomElementArg[... function getInitials (line 49) | function getInitials(user: Partial) { function pickColor (line 57) | function pickColor(user: Partial): string { FILE: app/client/ui/UserManager.ts type ACCEPTED_WARNINGS (line 51) | type ACCEPTED_WARNINGS = "self-removal" | "public-sharing"; type IUserManagerOptions (line 53) | interface IUserManagerOptions { function getModel (line 73) | async function getModel(options: IUserManagerOptions): Promise) { method _buildOverviewAccessDom (line 551) | private _buildOverviewAccessDom() { method _memberRoleSelector (line 569) | private _memberRoleSelector( method _inheritRoleSelector (line 619) | private _inheritRoleSelector() { function getUserItem (line 641) | function getUserItem(member: IEditableMember): ACUserItem { class ACMemberEmail (line 656) | class ACMemberEmail extends Disposable { method constructor (line 659) | constructor( method buildDom (line 670) | public buildDom() { method _handleSave (line 688) | private _handleSave(selectedEmail: string) { function getFullUser (line 694) | function getFullUser(member: IEditableMember): FullUser { function makeCopyBtn (line 705) | function makeCopyBtn(linkToCopy: string | undefined, ...domArgs: DomElem... function copyLink (line 715) | async function copyLink(elem: HTMLElement, link: string) { function manageTeam (line 721) | async function manageTeam(appModel: AppModel, function renderTitle (line 890) | function renderTitle(resourceType: ResourceType, resource?: Resource, pe... function resourceName (line 922) | function resourceName(resourceType: ResourceType): string { FILE: app/client/ui/ViewLayoutMenu.ts function makeViewLayoutMenu (line 18) | function makeViewLayoutMenu(viewSection: ViewSectionRec, isReadonly: boo... function makeCollapsedLayoutMenu (line 126) | function makeCollapsedLayoutMenu(viewSection: ViewSectionRec, gristDoc: ... FILE: app/client/ui/ViewSectionMenu.ts function doSave (line 24) | async function doSave(docModel: DocModel, viewSection: ViewSectionRec): ... function doRevert (line 33) | function doRevert(viewSection: ViewSectionRec) { function viewSectionMenu (line 40) | function viewSectionMenu( function makeSortPanel (line 175) | function makeSortPanel(section: ViewSectionRec, gristDoc: GristDoc) { function makeFilterPanel (line 186) | function makeFilterPanel(section: ViewSectionRec) { function makeCustomOptions (line 199) | function makeCustomOptions(section: ViewSectionRec) { FILE: app/client/ui/VisibleFieldsConfig.ts type IField (line 27) | type IField = ViewFieldRec | ColumnRec; type DraggableFieldsOption (line 29) | interface DraggableFieldsOption { class VisibleFieldsConfig (line 65) | class VisibleFieldsConfig extends Disposable { method constructor (line 94) | constructor(private _gristDoc: GristDoc, method buildVisibleFieldsConfigHelper (line 114) | public buildVisibleFieldsConfigHelper(options: DraggableFieldsOption) { method buildSectionFieldsConfigHelper (line 167) | public buildSectionFieldsConfigHelper( method buildDom (line 199) | public buildDom() { method removeField (line 320) | public async removeField(field: IField) { method addField (line 324) | public async addField(column: IField, nextField: ViewFieldRec | null =... method changeFieldPosition (line 340) | public changeFieldPosition(field: ViewFieldRec, nextField: ViewFieldRe... method _setVisibleCheckboxes (line 347) | private _setVisibleCheckboxes(visibleFieldsDraggable: Element, checked... method _setHiddenCheckboxes (line 358) | private _setHiddenCheckboxes(hiddenFieldsDraggable: Element, checked: ... method _setCheckboxesHelper (line 370) | private _setCheckboxesHelper(draggable: Element, fields: IField[], sel... method _buildHiddenFieldItem (line 382) | private _buildHiddenFieldItem(column: IField) { method _buildVisibleFieldItem (line 412) | private _buildVisibleFieldItem(field: IField) { method _removeSelectedFields (line 442) | private async _removeSelectedFields() { method _addSelectedFields (line 448) | private async _addSelectedFields() { function getFieldNewPosition (line 460) | function getFieldNewPosition(fields: KoArray, item: IField, function getItemIndex (line 466) | function getItemIndex(collection: KoArray, item: ViewField... function buildCheckbox (line 473) | function buildCheckbox(...args: IDomArgs) { function findCheckboxes (line 485) | function findCheckboxes(draggableElement: Element): NodeListOf, event: { deleted:... FILE: app/client/ui/WebhookPage.ts constant TABLE_COLUMN_ROW_ID (line 33) | const TABLE_COLUMN_ROW_ID = VirtualId(); constant WEBHOOK_COLUMNS (line 39) | const WEBHOOK_COLUMNS = [ constant WEBHOOK_VIEW_FIELDS (line 122) | const WEBHOOK_VIEW_FIELDS: (typeof WEBHOOK_COLUMNS)[number]["colId"][] = [ class WebhookExternalTable (line 143) | class WebhookExternalTable implements IExternalTable { method constructor (line 151) | public constructor(private _docApi: DocAPI) { method initialActions (line 154) | public initialActions(): DocAction[] { method fetchAll (line 158) | public async fetchAll(): Promise { method beforeEdit (line 166) | public async beforeEdit(editor: IEdit) { method afterEdit (line 198) | public async afterEdit(editor: IEdit) { method sync (line 233) | public async sync(editor: IEdit): Promise { method afterAnySchemaChange (line 276) | public async afterAnySchemaChange(editor: IEdit) { method _initalizeWebhookList (line 291) | private _initalizeWebhookList(webhooks: WebhookSummary[]) { method _getErrorString (line 301) | private _getErrorString(e: ApiError): string { method _addWebhook (line 305) | private async _addWebhook(rec: RowRecord) { method _updateWebhook (line 314) | private async _updateWebhook(id: string, rec: RowRecord) { method _removeWebhook (line 321) | private async _removeWebhook(rec: RowRecord) { method _prepareFields (line 332) | private _prepareFields(fields: any) { class WebhookPage (line 348) | class WebhookPage extends DisposableWithEvents { method constructor (line 353) | constructor(public gristDoc: GristDoc) { method buildDom (line 363) | public buildDom() { method reset (line 385) | public async reset() { method resetSelected (line 390) | public async resetSelected(id: string) { function _prepareWebhookInitialActions (line 431) | function _prepareWebhookInitialActions(tableId: string): DocAction[] { function _mapWebhookValues (line 474) | function _mapWebhookValues(webhookSummary: UIWebhookSummary): Partial void) { FILE: app/client/ui/WidgetTitle.ts type WidgetTitleOptions (line 19) | interface WidgetTitleOptions { function buildWidgetTitle (line 25) | function buildWidgetTitle(vs: ViewSectionRec, options: WidgetTitleOption... type TableNameOptions (line 31) | interface TableNameOptions { function buildTableName (line 36) | function buildTableName(vs: ViewSectionRec, options: TableNameOptions, .... type RenamableTitleOptions (line 53) | interface RenamableTitleOptions { function buildRenamableTitle (line 62) | function buildRenamableTitle( function buildRenameTitlePopup (line 129) | function buildRenameTitlePopup(ctrl: IOpenController, vs: ViewSectionRec... FILE: app/client/ui/YouTubePlayer.ts type Player (line 7) | interface Player { type PlayerOptions (line 18) | interface PlayerOptions { type PlayerVars (line 27) | interface PlayerVars { type PlayerStateChangeEvent (line 36) | interface PlayerStateChangeEvent { type PlayerState (line 40) | enum PlayerState { class YouTubePlayer (line 59) | class YouTubePlayer extends Disposable { method constructor (line 65) | constructor( method isLoading (line 87) | public isLoading() { method isLoaded (line 91) | public isLoaded() { method play (line 95) | public play() { method pause (line 99) | public pause() { method playPause (line 103) | public playPause() { method setVolume (line 111) | public setVolume(volume: number) { method getCurrentTime (line 115) | public getCurrentTime(): number { method buildDom (line 119) | public buildDom() { method _handleYouTubeIframeAPIReady (line 123) | private _handleYouTubeIframeAPIReady() { FILE: app/client/ui/buildReassignModal.ts function buildReassignModal (line 40) | async function buildReassignModal(options: { FILE: app/client/ui/contextMenu.ts type IContextMenuContentFunc (line 15) | type IContextMenuContentFunc = (ctx: ContextMenuController) => DomContents; type ContextMenuControllerOptions (line 17) | interface ContextMenuControllerOptions { class ContextMenuController (line 22) | class ContextMenuController extends Disposable implements IOpenController { method constructor (line 26) | constructor( method close (line 70) | public close() { method setOpenClass (line 74) | public setOpenClass(elem: Element, cls: string = "weasel-popup-open") { method getTriggerElem (line 79) | public getTriggerElem() { method update (line 83) | public update() {} method _updatePosition (line 85) | private _updatePosition() { function contextMenu (line 103) | function contextMenu( FILE: app/client/ui/createAppPage.ts function createAppPage (line 19) | function createAppPage( FILE: app/client/ui/createPage.ts function createPage (line 19) | function createPage(buildPage: () => DomContents, options: { disableThem... FILE: app/client/ui/errorPages.ts function signInAgainButton (line 21) | function signInAgainButton() { function createErrPage (line 27) | function createErrPage(appModel: AppModel) { function createForbiddenPage (line 47) | function createForbiddenPage(appModel: AppModel, message?: string) { function createSignedOutPage (line 76) | function createSignedOutPage(appModel: AppModel) { function createAccountDeletedPage (line 88) | function createAccountDeletedPage(appModel: AppModel) { function createUnsubscribedPage (line 99) | function createUnsubscribedPage( function createNotFoundPage (line 225) | function createNotFoundPage(appModel: AppModel, message?: string) { function createSigninFailedPage (line 239) | function createSigninFailedPage(appModel: AppModel, message?: string) { function createOtherErrorPage (line 254) | function createOtherErrorPage(appModel: AppModel, message?: string) { function addPeriod (line 266) | function addPeriod(msg: string): string { function pagePanelsError (line 270) | function pagePanelsError(appModel: AppModel, header: string, content: Do... FILE: app/client/ui/forms.ts function checkboxItem (line 33) | function checkboxItem( function checkboxOther (line 46) | function checkboxOther(checkboxArgs: DomElementArg[], ...textboxArgs: Do... function isFormFilled (line 61) | function isFormFilled(formElem: HTMLFormElement, names: string[]): boole... function hasValue (line 71) | function hasValue(formData: FormData, nameOrPrefix: string): boolean { function resize (line 80) | function resize(el: HTMLElement) { function autoGrow (line 86) | function autoGrow(text: Observable) { FILE: app/client/ui/googleAuth.ts constant ACCESS_DENIED (line 25) | const ACCESS_DENIED = "access_denied"; constant AUTH_INTERRUPTED (line 26) | const AUTH_INTERRUPTED = "auth_interrupted"; constant APP_SCOPE (line 30) | const APP_SCOPE = "https://www.googleapis.com/auth/drive.file"; constant READ_SCOPE (line 32) | const READ_SCOPE = "https://www.googleapis.com/auth/drive.readonly"; function getGoogleCodeForSending (line 34) | function getGoogleCodeForSending(owner: Disposable) { function getGoogleCodeForReading (line 38) | function getGoogleCodeForReading(owner: Disposable) { function canReadPrivateFiles (line 47) | function canReadPrivateFiles() { function getGoogleAuthCode (line 56) | function getGoogleAuthCode(owner: Disposable, scope: string) { function attachListener (line 94) | function attachListener(owner: Disposable, popup: Window, listener: (e: ... function onClose (line 119) | function onClose(window: Window, clb: () => void) { function openPopup (line 129) | function openPopup(url: string): Window { function getGoogleAuthEndpoint (line 158) | function getGoogleAuthEndpoint(scope: string) { FILE: app/client/ui/inputs.ts function textInput (line 44) | function textInput(obs: Observable, ...args: DomElem... type ITextAreaOptions (line 52) | interface ITextAreaOptions extends IInputOptions { function textarea (line 57) | function textarea( FILE: app/client/ui/mouseDrag.ts type MouseDragHandler (line 14) | interface MouseDragHandler { type MouseDragStart (line 19) | type MouseDragStart = (startEv: MouseEvent, elem: HTMLElement) => MouseD... function mouseDragElem (line 21) | function mouseDragElem(elem: HTMLElement, onStart: MouseDragStart): IDis... function mouseDrag (line 27) | function mouseDrag(onStart: MouseDragStart): DomElementMethod { function mouseDragMatchElem (line 32) | function mouseDragMatchElem(elem: HTMLElement, selector: string, onStart... function _startDragging (line 37) | function _startDragging(startEv: MouseEvent, elem: HTMLElement, onStart:... FILE: app/client/ui/resizeHandle.ts type ChangeFunc (line 27) | type ChangeFunc = (value: number) => void; type Edge (line 28) | type Edge = "left" | "right"; type IResizeFlexOptions (line 30) | interface IResizeFlexOptions { type IResizeOptions (line 37) | interface IResizeOptions { function resizeFlexVHandle (line 46) | function resizeFlexVHandle(options: IResizeFlexOptions, ...args: DomElem... function onResizeStart (line 64) | function onResizeStart(startEv: MouseEvent, handle: Element, options: IR... function getComputedSize (line 102) | function getComputedSize(elem: Element, prop: "width" | "height"): number { FILE: app/client/ui/sanitizeHTML.ts function sanitizeHTML (line 3) | function sanitizeHTML(source: string | Node): string { function sanitizeHTMLIntoDOM (line 7) | function sanitizeHTMLIntoDOM(source: string | Node): DocumentFragment { function sanitizeTutorialHTML (line 29) | function sanitizeTutorialHTML(source: string | Node): string { function handleAfterSanitizeAttributes (line 48) | function handleAfterSanitizeAttributes(node: Element) { function handleSanitizeTutorialElement (line 57) | function handleSanitizeTutorialElement(node: Node, data: createDOMPurifi... FILE: app/client/ui/searchDropdown.ts type IOption (line 23) | type IOption = (T & string) | IOptionFull; type IDropdownWithSearchOptions (line 25) | interface IDropdownWithSearchOptions { class OptionItem (line 52) | class OptionItem implements ACItem, IOptionFull { method constructor (line 58) | constructor(private _params: IOptionFull) { class TruncatedListItem (line 63) | class TruncatedListItem extends OptionItem { method constructor (line 64) | constructor(label: string) { function dropdownWithSearch (line 73) | function dropdownWithSearch(options: IDropdownWithSearchOptions): ... class DropdownWithSearch (line 87) | class DropdownWithSearch extends Disposable { method constructor (line 94) | constructor(private _ctl: IOpenController, private _options: IDropdown... method content (line 108) | public get content(): HTMLElement { method _buildSimpleList (line 112) | private _buildSimpleList() { method _buildHeader (line 123) | private _buildHeader() { method _buildItem (line 141) | private _buildItem(item: OptionItem) { method _buildTruncatedMsgItem (line 147) | private _buildTruncatedMsgItem(item: TruncatedListItem) { method _update (line 155) | private _update() { method _action (line 171) | private _action(value: T | null) { FILE: app/client/ui/selectBy.ts constant BLACK_CIRCLE (line 22) | const BLACK_CIRCLE = "\u2022"; constant RIGHT_ARROW (line 23) | const RIGHT_ARROW = "\u2192"; type IPageWidgetLink (line 26) | interface IPageWidgetLink { type MaybeSection (line 45) | type MaybeSection = ViewSectionRec | IPageWidget; function selectBy (line 53) | function selectBy(docModel: DocModel, sources: ViewSectionRec[], function isViewSectionRec (line 100) | function isViewSectionRec(section: MaybeSection): section is ViewSection... function createNodesFromViewSections (line 104) | function createNodesFromViewSections( function getLinkNodeTableById (line 118) | function getLinkNodeTableById(docModel: DocModel, id: number): LinkNodeT... function getLinkNodeSectionById (line 137) | function getLinkNodeSectionById( function createNodesFromPageWidget (line 158) | function createNodesFromPageWidget(docModel: DocModel, pageWidget: IPage... function linkId (line 223) | function linkId(link: IPageWidgetLink) { function linkFromId (line 228) | function linkFromId(linkid: string): IPageWidgetLink { FILE: app/client/ui/sendToDrive.ts function sendToDrive (line 20) | async function sendToDrive(doc: Document, pageModel: DocPageModel) { FILE: app/client/ui/shadowScroll.ts constant SHADOW_TOP (line 4) | const SHADOW_TOP = "inset 0 4px 6px 0 var(--grist-theme-scroll-shadow, r... constant SHADOW_BTM (line 5) | const SHADOW_BTM = "inset 0 -4px 6px 0 var(--grist-theme-scroll-shadow, ... function shadowScroll (line 11) | function shadowScroll(...args: IDomArgs) { function isAtScrollTop (line 34) | function isAtScrollTop(elem: Element): boolean { function isAtScrollBtm (line 40) | function isAtScrollBtm(elem: HTMLElement): boolean { FILE: app/client/ui/tooltips.ts type ITipOptions (line 22) | interface ITipOptions { type ITransientTipOptions (line 42) | interface ITransientTipOptions extends ITipOptions { type IHoverTipOptions (line 47) | interface IHoverTipOptions extends ITransientTipOptions { type ITooltipContent (line 91) | type ITooltipContent = ITooltipContentFunc | DomContents; type ITooltipContentFunc (line 93) | type ITooltipContentFunc = (ctl: ITooltipControl) => DomContents; type ITooltipControl (line 95) | interface ITooltipControl { function showTransientTooltip (line 110) | function showTransientTooltip( function showTooltip (line 127) | function showTooltip( function hoverTooltip (line 182) | function hoverTooltip(tipContent: ITooltipContent, options?: IHoverTipOp... function overflowTooltip (line 192) | function overflowTooltip(options?: IHoverTipOptions): DomElementMethod { function setHoverTooltip (line 204) | function setHoverTooltip( function tooltipCloseButton (line 312) | function tooltipCloseButton(ctl: ITooltipControl): HTMLElement { type InfoTooltipOptions (line 323) | interface InfoTooltipOptions { type InfoTooltipVariant (line 332) | type InfoTooltipVariant = "click" | "hover"; function infoTooltip (line 337) | function infoTooltip( type ClickableInfoTooltipOptions (line 354) | interface ClickableInfoTooltipOptions { function buildClickableInfoTooltip (line 359) | function buildClickableInfoTooltip( function buildHoverableInfoTooltip (line 402) | function buildHoverableInfoTooltip( type WithInfoTooltipOptions (line 418) | interface WithInfoTooltipOptions { function withInfoTooltip (line 448) | function withInfoTooltip( function descriptionInfoTooltip (line 464) | function descriptionInfoTooltip( FILE: app/client/ui/transientInput.ts type ITransientInputOptions (line 14) | interface ITransientInputOptions { function transientInput (line 20) | function transientInput({ initialValue, save, close }: ITransientInputOp... FILE: app/client/ui/transitions.ts type ITransitionLogic (line 37) | interface ITransitionLogic { function transition (line 43) | function transition(obs: BindableValue, trans: ITransitionLogic... function prepareForTransition (line 70) | function prepareForTransition(elem: HTMLElement, prepare: () => void) { class TransitionWatcher (line 99) | class TransitionWatcher extends Disposable { method constructor (line 104) | constructor(elem: Element) { method reschedule (line 122) | public reschedule() { FILE: app/client/ui/userTrustsCustomWidget.ts function userTrustsCustomWidget (line 18) | function userTrustsCustomWidget() { FILE: app/client/ui/viewport.ts function toggleViewport (line 8) | function toggleViewport() { function addViewportTag (line 16) | function addViewportTag() { FILE: app/client/ui/widgetTypesMap.ts type IWidgetTypeInfo (line 21) | interface IWidgetTypeInfo { function getWidgetTypes (line 28) | function getWidgetTypes(sectionType: IWidgetType | null): IWidgetTypeInfo { type GetTelemetryWidgetTypeOptions (line 32) | interface GetTelemetryWidgetTypeOptions { function getTelemetryWidgetTypeFromVS (line 39) | function getTelemetryWidgetTypeFromVS(vs: ViewSectionRec) { function getTelemetryWidgetTypeFromPageWidget (line 45) | function getTelemetryWidgetTypeFromPageWidget(widget: IPageWidget) { function getTelemetryWidgetType (line 52) | function getTelemetryWidgetType(type: IWidgetType, options: GetTelemetry... FILE: app/client/ui2018/ColorPalette.ts function isLight (line 69) | function isLight(index: number) { FILE: app/client/ui2018/ColorSelect.ts type StyleOptions (line 17) | interface StyleOptions { class ColorOption (line 26) | class ColorOption { method constructor (line 34) | constructor(options: { function colorSelect (line 50) | function colorSelect( type ColorButtonOptions (line 103) | interface ColorButtonOptions { function colorButton (line 111) | function colorButton(options: ColorButtonOptions): Element { type ColorPickerOptions (line 140) | interface ColorPickerOptions { function buildColorPicker (line 147) | function buildColorPicker( class PickerModel (line 262) | class PickerModel extends Dispos... method constructor (line 267) | constructor(public obs: Observable) { method setValue (line 285) | public setValue(val: T) { method revert (line 292) | public revert() { class ColorModel (line 297) | class ColorModel extends PickerModel {} class BooleanModel (line 298) | class BooleanModel extends PickerModel {} type PickerComponentOptions (line 300) | interface PickerComponentOptions { class PickerComponent (line 308) | class PickerComponent extends Disposable { method constructor (line 315) | constructor( method buildDom (line 321) | public buildDom() { method _setValue (line 382) | private _setValue(val: string | undefined) { class FontComponent (line 387) | class FontComponent extends Disposable { method constructor (line 393) | constructor( method buildDom (line 404) | public buildDom() { FILE: app/client/ui2018/IconList.ts type IconName (line 180) | type IconName = (typeof IconList)[number]; FILE: app/client/ui2018/alerts.ts function alert (line 16) | function alert(content: DomElementArg, ...args: DomElementArg[]) { FILE: app/client/ui2018/breadcrumbs.ts type PartialWorkspace (line 82) | interface PartialWorkspace { function docBreadcrumbs (line 87) | function docBreadcrumbs( FILE: app/client/ui2018/buttonSelect.ts type ISelectorOptionFull (line 12) | interface ISelectorOptionFull { type ISelectorOption (line 20) | type ISelectorOption = (T & string) | ISelectorOptionFull; function buttonSelect (line 47) | function buttonSelect( function buttonToggleSelect (line 59) | function buttonToggleSelect( function alignmentSelect (line 71) | function alignmentSelect(obs: Observable, ...domArgs: DomElement... function colorSelect (line 83) | function colorSelect(value: Observable, save: (val: string) => P... function makeButtonSelect (line 110) | function makeButtonSelect( function isFullOption (line 136) | function isFullOption(option: ISelectorOption): option is ISelecto... function getOptionLabel (line 140) | function getOptionLabel(option: ISelectorOption): string | undefin... function getOptionValue (line 144) | function getOptionValue(option: ISelectorOption): T { FILE: app/client/ui2018/buttons.ts type IButtonProps (line 78) | interface IButtonProps { function button (line 87) | function button(props: IButtonProps, ...domArgs: DomElementArg[]) { FILE: app/client/ui2018/checkbox.ts type CheckboxArg (line 117) | type CheckboxArg = DomArg; function checkbox (line 119) | function checkbox( function squareCheckbox (line 136) | function squareCheckbox(obs: Observable, ...domArgs: CheckboxAr... function circleCheckbox (line 140) | function circleCheckbox(obs: Observable, ...domArgs: CheckboxAr... function labeledSquareCheckbox (line 144) | function labeledSquareCheckbox(obs: Observable, label: DomArg, ... function labeledLeftSquareCheckbox (line 148) | function labeledLeftSquareCheckbox(obs: Observable, label: DomA... function labeledCircleCheckbox (line 152) | function labeledCircleCheckbox(obs: Observable, label: DomArg, ... type TriState (line 157) | type TriState = boolean | "indeterminate"; function triStateCheckbox (line 159) | function triStateCheckbox( function triStateSquareCheckbox (line 172) | function triStateSquareCheckbox(obs: Observable, ...domArgs: C... function labeledTriStateSquareCheckbox (line 176) | function labeledTriStateSquareCheckbox(obs: Observable, label:... function radioCheckboxOption (line 180) | function radioCheckboxOption(selectedObservable: Observable, optio... FILE: app/client/ui2018/cssVars.ts function isNarrowScreen (line 241) | function isNarrowScreen() { function isNarrowScreenObs (line 248) | function isNarrowScreenObs(): Observable { function isXSmallScreen (line 257) | function isXSmallScreen() { function isXSmallScreenObs (line 264) | function isXSmallScreenObs(): Observable { function isScreenResizing (line 285) | function isScreenResizing(): Observable { function attachCssRootVars (line 298) | function attachCssRootVars(productFlavor: ProductFlavor, varsOnly: boole... function hideInPrintView (line 324) | function hideInPrintView(): DomElementMethod { FILE: app/client/ui2018/editableLabel.ts type Status (line 64) | enum Status { NORMAL, EDITING, SAVING } type SaveFunc (line 66) | type SaveFunc = (value: string) => void | PromiseLike; type EditableLabelOptions (line 68) | interface EditableLabelOptions { function editableLabel (line 79) | function editableLabel(label: Observable, options: EditableLabel... function textInput (line 105) | function textInput(label: Observable, save: SaveFunc, ...args: D... function rawTextInput (line 112) | function rawTextInput(value: Observable, save: SaveFunc, onChang... FILE: app/client/ui2018/icons.ts function icon (line 90) | function icon(name: IconName, ...domArgs: DomElementArg[]): HTMLElement { function iconSpan (line 97) | function iconSpan(name: IconName, ...domArgs: DomElementArg[]): HTMLElem... function colorIcon (line 104) | function colorIcon(name: IconName, ...domArgs: DomElementArg[]): HTMLEle... FILE: app/client/ui2018/links.ts function gristLink (line 45) | function gristLink(href: BindableValue, ...args: IDomArgs[]) { function watchPromise (line 55) | function watchPromise any>(fun: T): T & { ... FILE: app/client/ui2018/menus.ts type IOptionFull (line 21) | interface IOptionFull { function closeRegisteredMenu (line 33) | function closeRegisteredMenu() { function registerMenuOpen (line 38) | function registerMenuOpen(ctl: weasel.IOpenController) { type IOption (line 44) | type IOption = (T & string) | IOptionFull; function menu (line 46) | function menu(createFunc: weasel.MenuCreateFunc, options?: weasel.IMenuO... type SearchableMenuOptions (line 54) | interface SearchableMenuOptions { type SearchableMenuItem (line 58) | interface SearchableMenuItem { function searchableMenu (line 67) | function searchableMenu( type ISubMenuOptions (line 107) | type ISubMenuOptions = function menuItemSubmenu (line 115) | function menuItemSubmenu( function menuSubHeaderMenu (line 136) | function menuSubHeaderMenu( type SelectOptions (line 227) | interface SelectOptions extends weasel.ISelectUserOptions { function select (line 265) | function select(obs: Observable, optionArray: MaybeObsArray(obs: Observable, optionArray: MaybeObsArray(selectedOptions: MutableObsArray, function formSelect (line 410) | function formSelect(obs: Observable, optionArray: MaybeObsArray<... function inputMenu (line 428) | function inputMenu(createFunc: weasel.MenuCreateFunc, options?: weasel.I... function upgradableMenuItem (line 448) | function upgradableMenuItem(needUpgrade: boolean, action: () => void, ..... function upgradeText (line 456) | function upgradeText(needUpgrade: boolean, onClick: () => void) { function autocomplete (line 474) | function autocomplete( function selectMenu (line 508) | function selectMenu( function listOfMenuItems (line 521) | function listOfMenuItems(items: () => DomElementArg[]) { function selectTitle (line 542) | function selectTitle(label: BindableValue, iconName?: BindableVa... function selectOption (line 549) | function selectOption( function menuItemTrimmed (line 585) | function menuItemTrimmed( function menuItemCmd (line 600) | function menuItemCmd( function menuAnnotate (line 621) | function menuAnnotate(text: string, ...args: DomElementArg[]) { type MenuDefinition (line 853) | type MenuDefinition = MenuItem[]; type MenuItem (line 855) | interface MenuItem { function menuBuilder (line 871) | function menuBuilder(definition: MenuItem[]) { FILE: app/client/ui2018/modals.ts type IModalControl (line 24) | interface IModalControl { class ModalControl (line 52) | class ModalControl extends Disposable implements IModalControl { method constructor (line 58) | constructor( method focus (line 65) | public focus() { method close (line 69) | public close(): void { method closeAndWait (line 73) | public async closeAndWait(): Promise { method preventClose (line 77) | public preventClose(): void { method workInProgress (line 81) | public get workInProgress() { method doWork (line 85) | public doWork( method _doCloseAndWait (line 112) | private async _doCloseAndWait(): Promise { type IModalVariant (line 135) | type IModalVariant = "fade-in" | "collapsing"; type IModalOptions (line 137) | interface IModalOptions { class StayOpen (line 157) | class StayOpen extends Error { type ModalWidth (line 160) | type ModalWidth = function modal (line 183) | function modal( type ISaveModalOptions (line 276) | interface ISaveModalOptions { function saveModal (line 321) | function saveModal( type ConfirmModalOptions (line 358) | interface ConfirmModalOptions { function confirmModal (line 374) | function confirmModal( function promptModal (line 434) | function promptModal( function invokePrompt (line 483) | function invokePrompt( function spinnerModal (line 507) | async function spinnerModal( function cssModalWidth (line 537) | function cssModalWidth(style: ModalWidth) { function modalTooltip (line 549) | function modalTooltip( FILE: app/client/ui2018/pages.ts type PageOptions (line 17) | interface PageOptions { function isTargetSelected (line 31) | function isTargetSelected(target: HTMLElement) { function buildPageDom (line 41) | function buildPageDom(name: Observable, options: PageOptions, ..... function buildCensoredPage (line 188) | function buildCensoredPage() { function splitPageInitial (line 211) | function splitPageInitial(name: string): { initial: string, displayName:... function onHoverSupport (line 300) | function onHoverSupport(yesNo: boolean) { FILE: app/client/ui2018/popups.ts type IPopupController (line 6) | interface IPopupController extends Disposable { class PopupController (line 21) | class PopupController extends Disposable implements IPopupController { method constructor (line 22) | constructor( method close (line 28) | public close(): void { function cardPopup (line 38) | function cardPopup( FILE: app/client/ui2018/search.ts constant EXPAND_TIME (line 26) | const EXPAND_TIME = 0.5; function searchBar (line 145) | function searchBar(model: SearchModel, testId: TestId = noTestId, region... FILE: app/client/ui2018/tabs.ts type TabProps (line 13) | interface TabProps { function buildTabs (line 26) | function buildTabs( FILE: app/client/ui2018/theme.ts constant DEFAULT_LIGHT_THEME (line 25) | const DEFAULT_LIGHT_THEME: Theme = getThemeObject("GristLight"); constant DEFAULT_DARK_THEME (line 26) | const DEFAULT_DARK_THEME: Theme = getThemeObject("GristDark"); function prefersColorSchemeDark (line 38) | function prefersColorSchemeDark(): boolean { function prefersColorSchemeDarkObs (line 48) | function prefersColorSchemeDarkObs(): PausableObservable { function gristThemeObs (line 63) | function gristThemeObs() { function attachTheme (line 95) | function attachTheme() { function attachDefaultLightTheme (line 116) | function attachDefaultLightTheme() { function getThemeFromPrefs (line 126) | function getThemeFromPrefs(themePrefs: ThemePrefs, userAgentPrefersDarkT... function getThemeObject (line 158) | function getThemeObject(themeName: ThemeName): Theme { function attachCssThemeVars (line 166) | function attachCssThemeVars(theme: Theme) { function getCssThemeScrollbarProperties (line 223) | function getCssThemeScrollbarProperties(appearance: ThemeAppearance) { function getCssThemeBackgroundProperties (line 242) | function getCssThemeBackgroundProperties(appearance: ThemeAppearance) { function fixOldCustomCss (line 255) | function fixOldCustomCss() { FILE: app/client/ui2018/toggleSwitch.ts type ToggleSwitchOptions (line 6) | interface ToggleSwitchOptions { function toggleSwitch (line 42) | function toggleSwitch(value?: Observable, options: Toggl... FILE: app/client/widgets/AbstractWidget.js function AbstractWidget (line 13) | function AbstractWidget(field, opts = {}) { FILE: app/client/widgets/Assistant.ts constant LOW_CREDITS_WARNING_BANNER_THRESHOLD (line 54) | const LOW_CREDITS_WARNING_BANNER_THRESHOLD = 10; type AssistantOptions (line 56) | interface AssistantOptions { class Assistant (line 84) | class Assistant extends Disposable { method constructor (line 120) | constructor(private _options: AssistantOptions) { method buildDom (line 132) | public buildDom() { method send (line 142) | public async send(message: string): Promise { method clear (line 148) | public clear() { method focus (line 155) | public focus() { method scrollToBottom (line 168) | public scrollToBottom(options: { smooth?: boolean; sync?: boolean } = ... method conversationId (line 172) | public get conversationId() { method conversationLength (line 176) | public get conversationLength() { method conversationHistoryLength (line 180) | public get conversationHistoryLength() { method conversationSuggestedFormulas (line 184) | public get conversationSuggestedFormulas() { method _buildBanner (line 188) | private _buildBanner() { method _buildBannerUpgradeMessage (line 244) | private _buildBannerUpgradeMessage() { method _buildChatInput (line 273) | private _buildChatInput() { method _buildSignupNudge (line 364) | private _buildSignupNudge() { method _handleChatEnterKeyDown (line 369) | private _handleChatEnterKeyDown(ev: KeyboardEvent) { method _addResponse (line 388) | private _addResponse(response: AssistanceResponse) { method _ask (line 418) | private async _ask() { method _doAsk (line 431) | private async _doAsk(message: string) { method _cancel (line 467) | private _cancel() { class AssistantConversation (line 481) | class AssistantConversation extends Disposable { method constructor (line 497) | constructor( method addResponse (line 574) | public addResponse(message: ChatMessage) { method addQuestion (line 583) | public addQuestion(message: string) { method addError (line 591) | public addError(error: ApiError) { method clear (line 599) | public clear() { method scrollDown (line 604) | public scrollDown(options: { smooth?: boolean; sync?: boolean } = {}) { method buildDom (line 619) | public buildDom() { method _buildErrorMessage (line 679) | private _buildErrorMessage(error: ApiError) { method _buildIntroMessage (line 704) | private _buildIntroMessage() { method _render (line 713) | private _render(message: string, ...args: DomElementArg[]) { function buildSignupNudge (line 730) | function buildSignupNudge() { function buildAnonNudge (line 745) | function buildAnonNudge() { function buildAvatar (line 755) | function buildAvatar(grist: GristDoc) { constant MIN_CHAT_HISTORY_HEIGHT_PX (line 765) | const MIN_CHAT_HISTORY_HEIGHT_PX = 160; constant MIN_CHAT_INPUT_HEIGHT_PX (line 767) | const MIN_CHAT_INPUT_HEIGHT_PX = 42; FILE: app/client/widgets/AttachmentsEditor.ts type Attachment (line 29) | interface Attachment { class AttachmentsEditor (line 55) | class AttachmentsEditor extends NewBaseEditor { method constructor (line 65) | constructor(options: FieldOptions) { method attach (line 107) | public attach(cellElem: Element) { method getCellValue (line 127) | public getCellValue() { method getCursorPos (line 131) | public getCursorPos(): number { method getTextValue (line 135) | public getTextValue(): string { method _buildDom (line 140) | private _buildDom(ctl: IModalControl) { method _renameAttachment (line 210) | private async _renameAttachment(att: Attachment, fileName: string): Pr... method _getUrl (line 216) | private _getUrl( method _moveIndex (line 232) | private _moveIndex(dir: -1 | 1): void { method _remove (line 238) | private _remove(): void { method _select (line 242) | private async _select(): Promise { method _upload (line 262) | private async _upload(files: FileList): Promise { method _add (line 281) | private async _add(uploadResult: UploadResult | null): Promise { function isInEditor (line 292) | function isInEditor(ev: KeyboardEvent): boolean { function renderContent (line 296) | function renderContent(att: Attachment | null, readonly: boolean): HTMLE... function dragOverClass (line 325) | function dragOverClass(target: HTMLElement, className: string): void { FILE: app/client/widgets/AttachmentsWidget.ts class AttachmentsWidget (line 31) | class AttachmentsWidget extends NewAbstractWidget { method constructor (line 37) | constructor(field: ViewFieldRec) { method buildDom (line 56) | public buildDom(row: DataRowModel) { method buildConfigDom (line 104) | public buildConfigDom(): DomContents { method buildFormConfigDom (line 131) | public buildFormConfigDom(): DomContents { method _buildAttachment (line 137) | protected _buildAttachment(value: number, allValues: Computed, text: string):... method _renderACItem (line 294) | private _renderACItem(item: ChoiceItem, highlightFunc: HighlightFunc) { type GetACFilterFuncParams (line 314) | interface GetACFilterFuncParams { function buildDropdownConditionFilter (line 321) | function buildDropdownConditionFilter( FILE: app/client/widgets/ChoiceListEntry.ts class RenameMap (line 20) | class RenameMap implements Record { method constructor (line 21) | constructor(tokens: ChoiceItem[]) { class ChoiceItem (line 33) | class ChoiceItem implements IToken { method from (line 34) | public static from(item: ChoiceItem) { method constructor (line 38) | constructor( method rename (line 46) | public rename(label: string) { method changeStyle (line 50) | public changeStyle(options: IChoiceOptions) { class ChoiceListEntry (line 97) | class ChoiceListEntry extends Disposable { method constructor (line 104) | constructor( method buildDom (line 127) | public buildDom(maxRows: number = 6): DomContents { method _startEditing (line 270) | private _startEditing(): void { method _save (line 276) | private _save(): void { method _cancel (line 311) | private _cancel(): void { method _focusOnOpen (line 315) | private _focusOnOpen(elem: HTMLInputElement): void { method _renderToken (line 319) | private _renderToken(token: ChoiceItem) { function focus (line 426) | function focus(elem: HTMLInputElement) { function row (line 433) | function row(...domArgs: DomElementArg[]): Element { function getTextColor (line 440) | function getTextColor(choiceOptions?: IChoiceOptions) { function getFillColor (line 444) | function getFillColor(choiceOptions?: IChoiceOptions) { function clipboardToChoices (line 454) | function clipboardToChoices(clipboard: DataTransfer): ChoiceItem[] { function isJSON (line 472) | function isJSON(string: string) { FILE: app/client/widgets/ChoiceTextBox.ts type IChoiceOptions (line 22) | type IChoiceOptions = Style; type ChoiceOptions (line 23) | type ChoiceOptions = Record; type ChoiceOptionsByName (line 24) | type ChoiceOptionsByName = Map; class ChoiceTextBox (line 31) | class ChoiceTextBox extends NTextBox { method constructor (line 38) | constructor(field: ViewFieldRec) { method buildDom (line 47) | public buildDom(row: DataRowModel) { method buildConfigDom (line 76) | public buildConfigDom(gristDoc: GristDoc) { method buildTransformConfigDom (line 84) | public buildTransformConfigDom() { method buildFormConfigDom (line 90) | public buildFormConfigDom() { method buildFormTransformConfigDom (line 99) | public buildFormTransformConfigDom() { method getChoiceValuesSet (line 105) | protected getChoiceValuesSet(): Computed> { method getChoiceOptions (line 109) | protected getChoiceOptions(): Computed { method save (line 113) | protected save(choices: string[], choiceOptions: ChoiceOptionsByName, ... method buildChoicesConfigDom (line 121) | protected buildChoicesConfigDom() { function toMap (line 152) | function toMap(choiceOptions?: ChoiceOptions | null): ChoiceOptionsByName { function toObject (line 159) | function toObject(choiceOptions: ChoiceOptionsByName): ChoiceOptions { FILE: app/client/widgets/ChoiceToken.ts constant DEFAULT_BACKGROUND_COLOR (line 10) | const DEFAULT_BACKGROUND_COLOR = theme.choiceTokenBg.toString(); constant DEFAULT_COLOR (line 11) | const DEFAULT_COLOR = theme.choiceTokenFg.toString(); type IChoiceTokenOptions (line 13) | interface IChoiceTokenOptions extends Style { function choiceToken (line 32) | function choiceToken( function choiceTokenDomArgs (line 44) | function choiceTokenDomArgs( function findBestShade (line 95) | function findBestShade(color: string, shades: string[]) { function getReadableColorsCombo (line 122) | function getReadableColorsCombo( constant ADD_NEW_HEIGHT (line 137) | const ADD_NEW_HEIGHT = "37px"; FILE: app/client/widgets/ConditionalStyle.ts type ColumnRecAndIndex (line 28) | type ColumnRecAndIndex = [ColumnRec, number]; class ConditionalStyle (line 30) | class ConditionalStyle extends Disposable { method constructor (line 41) | constructor( method buildDom (line 81) | public buildDom(): DomContents { method _buildRule (line 121) | private _buildRule(owner: Disposable, rule: ColumnRecAndIndex) { method _reorderRule (line 185) | private async _reorderRule(rule: ColumnRecAndIndex, nextRule: ColumnRe... method _buildStyleOption (line 213) | private _buildStyleOption(owner: Disposable, in... method _buildRuleFormula (line 227) | private _buildRuleFormula( FILE: app/client/widgets/CurrencyPicker.ts type CurrencyPickerOptions (line 11) | interface CurrencyPickerOptions { function buildCurrencyPicker (line 17) | function buildCurrencyPicker( FILE: app/client/widgets/DateEditor.ts class DateEditor (line 25) | class DateEditor extends NTextEditor { method constructor (line 32) | constructor( method getCellValue (line 68) | public getCellValue() { method formatValue (line 77) | protected formatValue(value: CellValue, formatString: string | undefin... method _allowKeyboardNav (line 87) | private _allowKeyboardNav(bool: boolean) { method _attachDatePicker (line 98) | private async _attachDatePicker(datepickerCommands: CommandGroup) { function makeFullMomentFormat (line 157) | function makeFullMomentFormat(mFormat: string): string { function loadLocale (line 174) | async function loadLocale(locale: string): Promise { function doLoadLocale (line 179) | async function doLoadLocale(locale: string): Promise { function monkeyPatchDatepicker (line 207) | function monkeyPatchDatepicker() { FILE: app/client/widgets/DateTextBox.js function DateTextBox (line 21) | function DateTextBox(field) { function textbox (line 112) | function textbox(value, options) { FILE: app/client/widgets/DateTimeEditor.ts class DateTimeEditor (line 13) | class DateTimeEditor extends DateEditor { method constructor (line 20) | constructor(options: FieldOptions) { method getCellValue (line 90) | public getCellValue() { method setSizerLimits (line 103) | public setSizerLimits() { method resizeInput (line 115) | protected resizeInput() { method _focusIndex (line 144) | private _focusIndex() { method _setFocus (line 152) | private _setFocus(index: 0 | 1) { method _onChange (line 164) | private _onChange() { FILE: app/client/widgets/DateTimeTextBox.js function DateTimeTextBox (line 24) | function DateTimeTextBox(field) { function textbox (line 115) | function textbox(value, options) { FILE: app/client/widgets/DiffBox.ts class DiffBox (line 14) | class DiffBox extends NewAbstractWidget { method buildConfigDom (line 17) | public buildConfigDom() { method buildDom (line 24) | public buildDom(row: DataRowModel) { FILE: app/client/widgets/DiscussionEditor.ts constant COMMENTS_LIMIT (line 49) | const COMMENTS_LIMIT = 200; type DiscardedComment (line 51) | interface DiscardedComment extends CursorPos { type DiscussionModel (line 55) | interface DiscussionModel { class DiscussionModelImpl (line 94) | class DiscussionModelImpl extends Disposable implements DiscussionModel { method fromCursor (line 95) | public static fromCursor(owner: MultiHolder, gristDoc: GristDoc, curso... method constructor (line 114) | constructor( method startIn (line 128) | public async startIn(pos: CursorPos, commentText: CommentWithMentions)... method reply (line 163) | public async reply(comment: CellRec, commentText: CommentWithMentions)... method resolve (line 188) | public resolve(comment: CellRec): Promise { method update (line 192) | public async update(comment: CellRec, commentText: CommentWithMentions... method open (line 198) | public async open(comment: CellRec): Promise { method remove (line 202) | public async remove(comment: CellRec): Promise { class CommentPopup (line 210) | class CommentPopup extends Disposable { method constructor (line 216) | constructor(private _props: { method _onSave (line 278) | private async _onSave(text: CommentWithMentions) { class CommentMonitor (line 290) | class CommentMonitor extends Disposable { method constructor (line 293) | constructor(private _doc: GristDoc) { method clear (line 301) | public clear() { method setDiscardedComment (line 306) | public setDiscardedComment(discarded: DiscardedComment) { class EmptyThread (line 321) | class EmptyThread extends Disposable { method constructor (line 324) | constructor(public props: { method buildDom (line 346) | public buildDom() { method _onSave (line 359) | private _onSave(md: CommentWithMentions) { method _onCancel (line 365) | private _onCancel() { class SingleThread (line 376) | class SingleThread extends Disposable implements IDomComponent { method constructor (line 393) | constructor(public props: { method buildDom (line 435) | public buildDom() { method _onCancelEdit (line 462) | private _onCancelEdit() { method _onEditComment (line 469) | private _onEditComment(el: Comment) { method _save (line 477) | private async _save() { method _createCommentEntry (line 495) | private _createCommentEntry() { class MultiThreads (line 503) | class MultiThreads extends Disposable implements IDomComponent { method constructor (line 516) | constructor(private _props: { method buildDom (line 536) | public buildDom() { method _onCancelEdit (line 567) | private _onCancelEdit() { method _onEditComment (line 574) | private _onEditComment(el: Comment) { class Comment (line 586) | class Comment extends Disposable { method _isReply (line 601) | private get _isReply() { method _start (line 605) | private get _start() { method constructor (line 609) | constructor( method buildDom (line 641) | public buildDom() { method setEditing (line 802) | public setEditing(editing: boolean) { method _menuItems (line 817) | private _menuItems() { class CommentEntry (line 885) | class CommentEntry extends Disposable { method constructor (line 888) | constructor(public props: { method buildDom (line 904) | public buildDom() { method clear (line 960) | public clear() { class DiscussionPanel (line 969) | class DiscussionPanel extends Disposable implements IDomComponent { method constructor (line 978) | constructor(private _grist: GristDoc) { method buildDom (line 989) | public buildDom(): DomContents { method buildMenu (line 1112) | public buildMenu(): DomContents { method _navigate (line 1133) | private async _navigate(discussion: CellRec) { function buildAvatar (line 1192) | function buildAvatar(user: FullUser | null, ...args: DomElementArg[]) { function buildNick (line 1196) | function buildNick(user: { name: string } | null, ...args: DomArg any) { FILE: app/client/widgets/EditorButtons.ts function needsMobileButtons (line 14) | function needsMobileButtons(): boolean { function createMobileButtons (line 29) | function createMobileButtons(commands: IEditorCommandGroup) { function getButtonMargins (line 36) | function getButtonMargins() { FILE: app/client/widgets/EditorPlacement.ts type ISize (line 3) | interface ISize { type ISizeOpts (line 8) | interface ISizeOpts { type IMargins (line 13) | interface IMargins { type IRect (line 20) | type IRect = ISize & IMargins; class EditorPlacement (line 37) | class EditorPlacement extends Disposable { method constructor (line 49) | constructor(editorDom: HTMLElement, private _cellElem: Element, option... method calcSize (line 88) | public calcSize(desiredSize: ISize, options: ISizeOpts = {}): ISize { method calcSizeWithPadding (line 128) | public calcSizeWithPadding(elem: HTMLElement, desiredElemSize: ISize, ... function rectWithoutBorders (line 146) | function rectWithoutBorders(elem: Element): IRect { FILE: app/client/widgets/EditorTooltip.ts function showTooltipToCreateFormula (line 11) | function showTooltipToCreateFormula(editorDom: HTMLElement, convert: () ... FILE: app/client/widgets/ErrorDom.ts function buildErrorDom (line 8) | function buildErrorDom(row: DataRowModel, field: ViewFieldRec) { FILE: app/client/widgets/FieldBuilder.ts function createAllFieldWidgets (line 61) | function createAllFieldWidgets(gristDoc: GristDoc, viewFields: ko.Comput... function getTypeDefinition (line 72) | function getTypeDefinition(type: string | false) { type ComputedStyle (line 77) | type ComputedStyle = { style?: Style; error?: true } | null | undefined; function buildFontOptions (line 82) | function buildFontOptions( type BuildEditorOptions (line 94) | interface BuildEditorOptions { class FieldBuilder (line 106) | class FieldBuilder extends Disposable { method constructor (line 130) | public constructor(public readonly gristDoc: GristDoc, public readonly... method buildSelectWidgetDom (line 241) | public buildSelectWidgetDom() { method buildSelectTypeDom (line 289) | public buildSelectTypeDom() { method _setType (line 367) | public _setType(newType: string): void { method _buildRefTableSelect (line 423) | public _buildRefTableSelect() { method buildTransformDom (line 465) | public buildTransformDom() { method buildConfigDom (line 506) | public buildConfigDom() { method buildColorConfigDom (line 516) | public buildColorConfigDom() { method buildFormConfigDom (line 526) | public buildFormConfigDom() { method buildSettingOptions (line 537) | public buildSettingOptions() { method fieldSettingsUseSeparate (line 574) | public fieldSettingsUseSeparate() { method fieldSettingsSaveAsCommon (line 586) | public fieldSettingsSaveAsCommon() { method fieldSettingsRevertToCommon (line 601) | public fieldSettingsRevertToCommon() { method buildDomWithCursor (line 617) | public buildDomWithCursor(row: DataRowModel, isActive: ko.Computed { function setupReadonlyEditorCleanup (line 454) | function setupReadonlyEditorCleanup( function setupEditorCleanup (line 471) | function setupEditorCleanup( function onlyCurrent (line 490) | function onlyCurrent(cellValue: CellValue): CellValue { FILE: app/client/widgets/FloatingEditor.ts constant FLOATING_POPUP_WIDTH_PX (line 17) | const FLOATING_POPUP_WIDTH_PX = 436; type IFloatingOwner (line 19) | interface IFloatingOwner extends IDisposableOwner { type FloatingEditorOptions (line 24) | interface FloatingEditorOptions { class FloatingEditor (line 47) | class FloatingEditor extends Disposable { method constructor (line 54) | constructor( method createPopup (line 64) | public createPopup() { method _getPopupPosition (line 123) | private _getPopupPosition(): PopupPosition | undefined { function createDetachedIcon (line 151) | function createDetachedIcon(...args: IDomArgs) { FILE: app/client/widgets/FormulaAssistant.ts class FormulaAssistant (line 37) | class FormulaAssistant extends Disposable { method constructor (line 85) | constructor(private _options: { method buildDom (line 172) | public buildDom() { method _buildChatPanel (line 211) | private _buildChatPanel() { method _logTelemetryEvent (line 228) | private _logTelemetryEvent(event: TelemetryEvent, includeContext = fal... method _buildChatPanelHeader (line 243) | private _buildChatPanelHeader() { method _buildChatPanelBody (line 277) | private _buildChatPanelBody() { method _saveOrClose (line 305) | private _saveOrClose() { method _cancel (line 319) | private _cancel() { method _preview (line 332) | private async _preview() { method _preparePreview (line 344) | private async _preparePreview() { method _cleanupPreview (line 378) | private async _cleanupPreview() { method _collapseChatPanel (line 421) | private _collapseChatPanel() { method _expandChatPanel (line 437) | private _expandChatPanel() { method _onResizeStart (line 465) | private _onResizeStart() { method _onResizeMove (line 477) | private _onResizeMove(x: number, y: number, { start, total}: { start: ... method _onResizeEnd (line 504) | private _onResizeEnd() { method _sendMessage (line 511) | private async _sendMessage(message: string) { method _applyFormula (line 520) | private async _applyFormula(formula: string) { function askAI (line 530) | async function askAI(grist: GristDoc, options: { function buildIntroMessage (line 547) | function buildIntroMessage(...args: DomElementArg[]) { constant MIN_FORMULA_EDITOR_HEIGHT_PX (line 616) | const MIN_FORMULA_EDITOR_HEIGHT_PX = 100; constant FORMULA_EDITOR_BUTTONS_HEIGHT_PX (line 618) | const FORMULA_EDITOR_BUTTONS_HEIGHT_PX = 42; constant MIN_CHAT_PANEL_BODY_HEIGHT_PX (line 620) | const MIN_CHAT_PANEL_BODY_HEIGHT_PX = 180; constant CHAT_PANEL_HEADER_HEIGHT_PX (line 622) | const CHAT_PANEL_HEADER_HEIGHT_PX = 30; FILE: app/client/widgets/FormulaEditor.ts type IFormulaEditorOptions (line 33) | interface IFormulaEditorOptions extends Options { class FormulaEditor (line 52) | class FormulaEditor extends NewBaseEditor { method constructor (line 63) | constructor(options: IFormulaEditorOptions) { method attach (line 266) | public attach(cellElem: Element): void { method getDom (line 278) | public getDom(): HTMLElement { method setFormula (line 282) | public setFormula(formula: string) { method getCellValue (line 286) | public getCellValue() { method getTextValue (line 293) | public getTextValue() { method getCursorPos (line 297) | public getCursorPos() { method focus (line 302) | public focus() { method resize (line 307) | public resize() { method detach (line 312) | public detach() { method _updateEditorPlaceholder (line 329) | private _updateEditorPlaceholder() { method _handleUseAssistantButtonClick (line 358) | private _handleUseAssistantButtonClick(ev: MouseEvent) { method _calcSize (line 365) | private _calcSize(elem: HTMLElement, desiredElemSize: ISize) { method _getSuggestions (line 407) | private _getSuggestions(prefix: string) { method _onSetCursor (line 419) | private _onSetCursor(row?: DataRowModel, col?: ViewFieldRec) { function _isInIdentifier (line 469) | function _isInIdentifier(line: string, column: number) { function openFormulaEditor (line 489) | function openFormulaEditor(options: { function getFormulaError (line 602) | function getFormulaError(owner: Disposable, options: { function errorMonitor (line 652) | function errorMonitor( function createFormulaErrorObs (line 685) | function createFormulaErrorObs(owner: MultiHolder, gristDoc: GristDoc, o... function initializeAceOptions (line 728) | function initializeAceOptions(aceObj: any) { FILE: app/client/widgets/HyperLinkEditor.ts class HyperLinkEditor (line 11) | class HyperLinkEditor extends NTextEditor { method constructor (line 12) | constructor(options: FieldOptions) { FILE: app/client/widgets/HyperLinkTextBox.ts class HyperLinkTextBox (line 18) | class HyperLinkTextBox extends NTextBox { method constructor (line 19) | constructor(field: ViewFieldRec) { method buildDom (line 23) | public buildDom(row: DataRowModel) { function _formatValue (line 50) | function _formatValue(value: CellValue): string { FILE: app/client/widgets/MarkdownTextBox.ts class MarkdownTextBox (line 13) | class MarkdownTextBox extends NTextBox { method constructor (line 14) | constructor(field: ViewFieldRec) { method buildDom (line 18) | public buildDom(row: DataRowModel) { FILE: app/client/widgets/MentionTextBox.ts class CommentWithMentions (line 53) | class CommentWithMentions { method fromMarkdownEditor (line 58) | public static fromMarkdownEditor(elem: HTMLElement): CommentWithMentio... method constructor (line 87) | constructor(text: string = "", mentions: string[] = []) { method isEmpty (line 92) | public isEmpty(): boolean { method shouldBeRestored (line 99) | public shouldBeRestored(): boolean { function buildMentionTextBox (line 104) | function buildMentionTextBox( function renderMarkdownForEditing (line 209) | function renderMarkdownForEditing(text: string) { function enforceNotEditableChildren (line 217) | function enforceNotEditableChildren(element: HTMLElement) { type MentionPickerProps (line 238) | interface MentionPickerProps { constant MENTION_CLASS (line 245) | const MENTION_CLASS = "grist-mention"; function buildMentionElement (line 246) | function buildMentionElement() { class MentionPicker (line 253) | class MentionPicker extends Disposable { method constructor (line 259) | constructor(private _props: MentionPickerProps) { method dispose (line 341) | public dispose() { method _parent (line 347) | private get _parent() { method _updateTarget (line 351) | private _updateTarget() { method _removeMention (line 357) | private _removeMention() { method _convertToPlainText (line 363) | private _convertToPlainText() { method _acceptSelected (line 373) | private _acceptSelected() { method _renderItem (line 389) | private _renderItem(item: UserItem, highlightFunc: HighlightFunc) { method _cursorAfter (line 412) | private _cursorAfter(node: Node) { type UserItem (line 423) | interface UserItem extends ACItem { class UserItemImpl (line 430) | class UserItemImpl implements UserItem { method hasAccess (line 432) | public get hasAccess() { method ref (line 436) | public get ref() { method profile (line 440) | public get profile(): Partial { method name (line 444) | public get name() { method constructor (line 448) | constructor( class LoadingItem (line 456) | class LoadingItem implements UserItem { class NotReadyResult (line 464) | class NotReadyResult implements ACResults { FILE: app/client/widgets/NTextBox.ts class NTextBox (line 23) | class NTextBox extends NewAbstractWidget { method constructor (line 27) | constructor(field: ViewFieldRec, options: Options = {}) { method buildConfigDom (line 36) | public buildConfigDom(_gristDoc: GristDoc): DomContents { method buildFormConfigDom (line 66) | public buildFormConfigDom(): DomContents { method buildDom (line 122) | public buildDom(row: DataRowModel) { method _addRowHeightListeners (line 133) | private _addRowHeightListeners() { FILE: app/client/widgets/NTextEditor.ts class NTextEditor (line 14) | class NTextEditor extends NewBaseEditor { method constructor (line 29) | constructor(protected options: FieldOptions) { method attach (line 59) | public attach(cellElem: Element): void { method getDom (line 75) | public getDom(): HTMLElement { method getCellValue (line 79) | public getCellValue(): CellValue { method getTextValue (line 84) | public getTextValue() { method getCursorPos (line 88) | public getCursorPos() { method setSizerLimits (line 92) | public setSizerLimits() { method contentSizer (line 100) | public get contentSizer(): HTMLElement { method editorPlacement (line 104) | public get editorPlacement(): EditorPlacement { method onInput (line 112) | protected onInput() { method resizeInput (line 125) | protected resizeInput() { function enoughSpace (line 154) | function enoughSpace(requested: ISize, received: ISize) { function hasScroll (line 158) | function hasScroll(el: HTMLTextAreaElement) { FILE: app/client/widgets/NewAbstractWidget.ts type Options (line 23) | interface Options { method create (line 44) | public static create(...args: any[]) { method constructor (line 55) | constructor(protected field: ViewFieldRec, private _opts: Options = {}) { method buildConfigDom (line 64) | public buildConfigDom(_gristDoc: GristDoc): DomContents { method buildTransformConfigDom (line 72) | public buildTransformConfigDom(_gristDoc: GristDoc): DomContents { method buildColorConfigDom (line 76) | public buildColorConfigDom(gristDoc: GristDoc): DomContents { method buildFormConfigDom (line 80) | public buildFormConfigDom(): DomContents { method buildFormTransformConfigDom (line 84) | public buildFormTransformConfigDom(): DomContents { method _getDocData (line 97) | protected _getDocData(): DocData { method _getDocComm (line 105) | protected _getDocComm(): DocComm { FILE: app/client/widgets/NewBaseEditor.ts type IEditorCommandGroup (line 11) | interface IEditorCommandGroup { type Options (line 19) | interface Options { type FieldOptions (line 31) | interface FieldOptions extends Options { type IEditorConstructor (line 36) | type IEditorConstructor = typeof NewBaseEditor & (new (...args: any[]) =... method create (line 57) | public static create(ownerOrOptions: any, options?: any): NewBaseEditor { method skipEditor (line 67) | public static skipEditor( method supportsReadonly (line 78) | public static supportsReadonly(): boolean { method constructor (line 87) | constructor(protected options: Options) { method detach (line 101) | public detach(): HTMLElement | null { return null; } method getDom (line 107) | public getDom(): HTMLElement | null { return null; } method prepForSave (line 117) | public prepForSave(): void | Promise { FILE: app/client/widgets/NumericEditor.ts class NumericEditor (line 4) | class NumericEditor extends NTextEditor { method constructor (line 5) | constructor(protected options: FieldOptions) { FILE: app/client/widgets/NumericSpinner.ts type NumericSpinnerOptions (line 10) | interface NumericSpinnerOptions { function numericSpinner (line 25) | function numericSpinner( FILE: app/client/widgets/NumericTextBox.ts class NumericTextBox (line 39) | class NumericTextBox extends NTextBox { method constructor (line 40) | constructor(field: ViewFieldRec) { method buildConfigDom (line 44) | public buildConfigDom(gristDoc: GristDoc): DomContents { method buildFormConfigDom (line 141) | public buildFormConfigDom(): DomContents { function updateOptions (line 165) | function updateOptions(prop: keyof NumberFormatOptions, value: unknown):... FILE: app/client/widgets/Reference.ts class Reference (line 30) | class Reference extends NTextBox { method constructor (line 35) | constructor(field: ViewFieldRec) { method buildConfigDom (line 59) | public buildConfigDom(gristDoc: GristDoc) { method buildTransformConfigDom (line 69) | public buildTransformConfigDom() { method buildFormConfigDom (line 83) | public buildFormConfigDom() { method buildFormTransformConfigDom (line 92) | public buildFormTransformConfigDom() { method buildDom (line 96) | public buildDom(row: DataRowModel) { FILE: app/client/widgets/ReferenceEditor.ts class ReferenceEditor (line 18) | class ReferenceEditor extends NTextEditor { method constructor (line 24) | constructor(options: FieldOptions) { method attach (line 68) | public attach(cellElem: Element): void { method prepForSave (line 85) | public async prepForSave() { method getCellValue (line 94) | public getCellValue() { method _idToText (line 108) | private _idToText() { method _doSearch (line 117) | private async _doSearch(text: string): Promise> { method _renderItem (line 134) | private _renderItem(item: ICellItem, highlightFunc: HighlightFunc) { function renderACItem (line 139) | function renderACItem(text: string, highlightFunc: HighlightFunc, isAddN... FILE: app/client/widgets/ReferenceList.ts class ReferenceList (line 21) | class ReferenceList extends Reference { method buildDom (line 29) | public buildDom(row: DataRowModel) { method buildFormConfigDom (line 114) | public buildFormConfigDom() { FILE: app/client/widgets/ReferenceListEditor.ts class ReferenceItem (line 20) | class ReferenceItem implements IToken, ACItem { method constructor (line 32) | constructor( class ReferenceListEditor (line 41) | class ReferenceListEditor extends NewBaseEditor { method constructor (line 56) | constructor(protected options: FieldOptions) { method attach (line 154) | public attach(cellElem: Element): void { method getDom (line 175) | public getDom(): HTMLElement { method getCellValue (line 179) | public getCellValue(): CellValue { method getTextValue (line 185) | public getTextValue(): string { method getCursorPos (line 191) | public getCursorPos(): number { method prepForSave (line 198) | public async prepForSave() { method setSizerLimits (line 217) | public setSizerLimits() { method resizeInput (line 229) | protected resizeInput(onlyTextInput: boolean = false) { method _doSearch (line 269) | private async _doSearch(text: string): Promise, ...args: Do... function buildSwitch (line 119) | function buildSwitch( FILE: app/client/widgets/UserType.ts function getWidgetConfiguration (line 18) | function getWidgetConfiguration(widgetName: string, type: string) { function mergeOptions (line 29) | function mergeOptions(options: any, type: string) { type WidgetType (line 311) | type WidgetType = "TextBox" | "Markdown" | "HyperLink" | "Spinner" | FILE: app/client/widgets/UserTypeImpl.ts type WidgetConstructor (line 61) | interface WidgetConstructor { create: (...args: any[]) => NewAbstractWid... function getWidgetConstructor (line 64) | function getWidgetConstructor(widget: string, type: string): WidgetConst... function getFormWidgetConstructor (line 70) | function getFormWidgetConstructor(widget: string, type: string): WidgetC... function getEditorConstructor (line 76) | function getEditorConstructor(widget: string, type: string): IEditorCons... FILE: app/common/ACLPermissions.ts type PermissionValue (line 13) | type PermissionValue = "allow" | "deny"; type MixedPermissionValue (line 17) | type MixedPermissionValue = PermissionValue | "mixed"; type TablePermissionValue (line 21) | type TablePermissionValue = MixedPermissionValue | "mixedColumns"; type PartialPermissionValue (line 24) | type PartialPermissionValue = PermissionValue | "allowSome" | "denySome"... type PermissionSet (line 29) | interface PermissionSet { type PartialPermissionSet (line 38) | type PartialPermissionSet = PermissionSet; type MixedPermissionSet (line 39) | type MixedPermissionSet = PermissionSet; type TablePermissionSet (line 40) | type TablePermissionSet = PermissionSet; type PermissionKey (line 43) | type PermissionKey = keyof PermissionSet; constant PERMISSION_BITS (line 45) | const PERMISSION_BITS: { [letter: string]: PermissionKey } = { constant ALL_PERMISSION_BITS (line 53) | const ALL_PERMISSION_BITS = "CRUDS"; constant ALL_PERMISSION_PROPS (line 55) | const ALL_PERMISSION_PROPS: (keyof PermissionSet)[] = constant ALIASES (line 58) | const ALIASES: { [key: string]: string } = { constant REVERSE_ALIASES (line 62) | const REVERSE_ALIASES = fromPairs(Object.entries(ALIASES).map(([alias, v... constant AVAILABLE_BITS_TABLES (line 64) | const AVAILABLE_BITS_TABLES: PermissionKey[] = ["read", "update", "creat... constant AVAILABLE_BITS_COLUMNS (line 65) | const AVAILABLE_BITS_COLUMNS: PermissionKey[] = ["read", "update"]; function emptyPermissionSet (line 68) | function emptyPermissionSet(): PartialPermissionSet { function parsePermissions (line 75) | function parsePermissions(permissionsText: string): PartialPermissionSet { function permissionSetToText (line 100) | function permissionSetToText(permissionSet: Partial(psets: PermissionSet[], combine: (bit... function toMixed (line 177) | function toMixed(pset: PartialPermissionSet): MixedPermissionSet { function summarizePermissionSet (line 185) | function summarizePermissionSet(pset: PartialPermissionSet): MixedPermis... function summarizePermissions (line 204) | function summarizePermissions(perms: MixedPermissionValue[]): MixedPermi... function isEmpty (line 210) | function isEmpty(permissions: PartialPermissionSet): boolean { function splitSchemaEditPermissionSet (line 219) | function splitSchemaEditPermissionSet(permissions: PartialPermissionSet): FILE: app/common/ACLRuleCollection.ts type ILogger (line 12) | type ILogger = Pick; constant SPECIAL_RULES_TABLE_ID (line 16) | const SPECIAL_RULES_TABLE_ID = "*SPECIAL"; constant DEFAULT_RULE_SET (line 19) | const DEFAULT_RULE_SET: RuleSet = { function isSchemaEditResource (line 42) | function isSchemaEditResource(resource: { tableId: string, colIds: strin... type SpecialRuleName (line 46) | type SpecialRuleName = "AccessRules" | "DocCopies" | "FullCopies" | "See... constant SPECIAL_RULE_SETS (line 48) | const SPECIAL_RULE_SETS: Record = { constant EMERGENCY_RULE_SET (line 115) | const EMERGENCY_RULE_SET: RuleSet = { class ACLRuleCollection (line 131) | class ACLRuleCollection { method haveRules (line 164) | public haveRules(): boolean { method getColumnRuleSet (line 169) | public getColumnRuleSet(tableId: string, colId: string): RuleSet | und... method getAllColumnRuleSets (line 175) | public getAllColumnRuleSets(tableId: string): RuleSet[] { method getTableDefaultRuleSet (line 180) | public getTableDefaultRuleSet(tableId: string): RuleSet | undefined { method getDocDefaultRuleSet (line 185) | public getDocDefaultRuleSet(): RuleSet { method getAllTableIds (line 190) | public getAllTableIds(): string[] { method getUserAttributeRules (line 195) | public getUserAttributeRules(): Map { method update (line 204) | public async update(docData: DocData, options: ReadAclOptions) { method updateWithExceptions (line 221) | public async updateWithExceptions(docData: DocData, options: ReadAclOp... method checkDocEntities (line 322) | public checkDocEntities(docData: DocData) { method findRuleProblems (line 335) | public findRuleProblems(docData: DocData): AclRuleProblem[] { method _readAclRules (line 405) | private _readAclRules(docData: DocData, options: ReadAclOptions): Read... type ReadAclOptions (line 415) | interface ReadAclOptions { type ReadAclResults (line 435) | interface ReadAclResults { function getHelperCols (line 444) | function getHelperCols(docData: DocData, tableId: string, colIds: string... function readAclRules (line 498) | function readAclRules( function splitSchemaEditRulePart (line 579) | function splitSchemaEditRulePart(rulePart: RulePart): { schemaEdit?: Rul... FILE: app/common/ACLRulesReader.ts class TableWithOverlay (line 19) | class TableWithOverlay { method constructor (line 25) | public constructor(private _originalTable: MetaTableData) {} method addRecord (line 31) | public addRecord(rec: MetaRowRecord): number { method excludeRecord (line 41) | public excludeRecord(id: number) { method getRecord (line 48) | public getRecord(id: number) { method getRecords (line 60) | public getRecords() { method filterRecords (line 67) | public filterRecords(properties: Partial>): MetaRowRe... method findMatchingRowId (line 74) | public findMatchingRowId(properties: Partial>): number { method _filterExcludedRecords (line 84) | private _filterExcludedRecords(records: MetaRowRecord[]) { type ACLRulesReaderOptions (line 89) | interface ACLRulesReaderOptions { type ShareContext (line 115) | interface ShareContext { class ACLRulesReader (line 124) | class ACLRulesReader { method constructor (line 132) | public constructor(public docData: DocData, private _options: ACLRules... method entries (line 138) | public entries() { method getResourceById (line 153) | public getResourceById(id: number) { method _checkResources (line 157) | private _checkResources() { method _addOriginalRules (line 172) | private _addOriginalRules() { method _maybeAddShareRules (line 190) | private _maybeAddShareRules() { method _addRulesForShare (line 205) | private _addRulesForShare(share: MetaRowRecord<"_grist_Shares">) { method _addDefaultShareRules (line 270) | private _addDefaultShareRules() { method _shareTableForForm (line 287) | private _shareTableForForm(table: MetaRowRecord<"_grist_Tables">, method _shareTableReferencesForForm (line 325) | private _shareTableReferencesForForm(table: MetaRowRecord<"_grist_Tabl... method _maybeSplitResourceForShares (line 396) | private _maybeSplitResourceForShares(resourceId: number) { method _findOrAddResource (line 428) | private _findOrAddResource(properties: { method _addShareRule (line 440) | private _addShareRule(resourceRef: number, permissionsText: string) { method _blockShare (line 452) | private _blockShare(shareRef: number) { method _makeRule (line 466) | private _makeRule(options: { function disableRuleInShare (line 497) | function disableRuleInShare(rule: MetaRowRecord<"_grist_ACLRules">) { FILE: app/common/ActionBundle.ts type ActionInfo (line 11) | interface ActionInfo { type Envelope (line 22) | interface Envelope { type EnvContent (line 27) | type EnvContent = [number, Content]; type ActionBundle (line 32) | interface ActionBundle { function getEnvContent (line 42) | function getEnvContent(items: EnvContent[]): Content[] { type UserActionBundle (line 51) | interface UserActionBundle { type SandboxActionBundle (line 60) | interface SandboxActionBundle { type SandboxRequest (line 76) | interface SandboxRequest { type LocalActionBundle (line 87) | interface LocalActionBundle extends ActionBundle { FILE: app/common/ActionDispatcher.ts method dispatchAction (line 18) | public dispatchAction(action: DocAction): void { method onBulkAddRecord (line 45) | protected onBulkAddRecord(action: DocAction, tableId: string, rowIds: nu... method onBulkUpdateRecord (line 51) | protected onBulkUpdateRecord(action: DocAction, tableId: string, rowIds:... method onBulkRemoveRecord (line 57) | protected onBulkRemoveRecord(action: DocAction, tableId: string, rowIds:... FILE: app/common/ActionGroup.ts type MinimalActionGroup (line 6) | interface MinimalActionGroup { type ActionGroup (line 21) | interface ActionGroup extends MinimalActionGroup { FILE: app/common/ActionRouter.ts class ActionRouter (line 7) | class ActionRouter { method constructor (line 10) | constructor(private _rpc: Rpc) {} method subscribeTable (line 15) | public subscribeTable(tableId: string): Promise { method unsubscribeTable (line 23) | public unsubscribeTable(tableId: string): Promise { method process (line 32) | public process(action: any[]): Promise { FILE: app/common/ActionSummarizer.ts constant MAXIMUM_INLINE_ROWS (line 22) | const MAXIMUM_INLINE_ROWS = 10; type ActionSummaryOptions (line 27) | interface ActionSummaryOptions { class ActionSummarizer (line 40) | class ActionSummarizer { method constructor (line 43) | constructor(private _options?: ActionSummaryOptions) {} method addForwardAction (line 52) | public addForwardAction(summary: ActionSummary, act: DocAction) { method addReverseAction (line 96) | public addReverseAction(summary: ActionSummary, act: DocAction) { method addAction (line 140) | public addAction(summary: ActionSummary, act: DocAction, method _forTable (line 185) | private _forTable(summary: ActionSummary, tableId: string): TableDelta { method _forCell (line 190) | private _forCell(td: TableDelta, rowId: number, colId: string): CellDe... method _addRow (line 199) | private _addRow(td: TableDelta, rowId: number, colValues: Action.ColVa... method _addRows (line 208) | private _addRows(tableId: string, td: TableDelta, rowIds: number[], method _addRename (line 233) | private _addRename(renames: LabelDelta[], rename: LabelDelta) { method _getMaxRows (line 238) | private _getMaxRows() { function summarizeAction (line 254) | function summarizeAction(body: LocalActionBundle, options?: ActionSummar... function summarizeStoredAndUndo (line 258) | function summarizeStoredAndUndo(stored: DocAction[], undo: DocAction[], type NameMerge (line 304) | interface NameMerge { function planNameMerge (line 317) | function planNameMerge(names1: LabelDelta[], names2: LabelDelta[]): Name... function renameAndDelete (line 388) | function renameAndDelete(entries: CopyOnWrite<{ [name: string]: T }>,... function mergeNames (line 422) | function mergeNames(names: NameMerge, type RowChange (line 448) | interface RowChange { type RowChanges (line 455) | interface RowChanges { function bulkCellFor (line 464) | function bulkCellFor(rc: RowChange | undefined): CellDelta | undefined { function mergeColumn (line 482) | function mergeColumn(present1: RowChanges, present2: RowChanges, function uniqueAndSorted (line 504) | function uniqueAndSorted(lst: number[]) { function getRowChanges (line 510) | function getRowChanges(e: TableDelta): RowChanges { function mergeTable (line 529) | function mergeTable(e1: TableDelta, e2: CopyOnWrite): Table... function concatenateSummaryPair (line 574) | function concatenateSummaryPair(sum1: ActionSummary, sum2: ActionSummary... function concatenateSummaries (line 585) | function concatenateSummaries(sums: ActionSummary[]): ActionSummary { function getRenames (line 594) | function getRenames(ref: ActionSummary | TableDelta) { function getDeltas (line 602) | function getDeltas(ref: T) { type RebasePlan (line 610) | interface RebasePlan { function planRebase (line 629) | function planRebase(ref: ActionSummary | TableDelta, function rebaseSummary (line 687) | function rebaseSummary(ref: ActionSummary, target: ActionSummary) { function rebaseTable (line 704) | function rebaseTable(ref: TableDelta, target: TableDelta) { function copyOnWrite (line 716) | function copyOnWrite(item: T): CopyOnWrite { type CopyOnWrite (line 733) | interface CopyOnWrite { FILE: app/common/ActionSummary.ts type ActionSummary (line 80) | interface ActionSummary { type TableDelta (line 88) | interface TableDelta { type LabelDelta (line 101) | type LabelDelta = [string | null, string | null]; type ColumnDelta (line 106) | interface ColumnDelta { function createEmptyActionSummary (line 111) | function createEmptyActionSummary(): ActionSummary { function createEmptyTableDelta (line 116) | function createEmptyTableDelta(): TableDelta { function asTabularDiffs (line 132) | function asTabularDiffs(summary: ActionSummary, options: { function defunctTableName (line 249) | function defunctTableName(id: string): string { function rootTableName (line 253) | function rootTableName(id: string): string { function getAffectedTables (line 262) | function getAffectedTables(summary: ActionSummary): string[] { function getTableIdBefore (line 275) | function getTableIdBefore(renames: LabelDelta[], tableIdAfter: string | ... function getTableIdAfter (line 285) | function getTableIdAfter(renames: LabelDelta[], tableIdBefore: string | ... FILE: app/common/ActivationAPI.ts type ActivationStatus (line 5) | interface ActivationStatus extends ActivationState { type ActivationAPI (line 12) | interface ActivationAPI { class ActivationAPIImpl (line 17) | class ActivationAPIImpl extends BaseAPI implements ActivationAPI { method constructor (line 18) | constructor(private _homeUrl: string, options: IOptions = {}) { method getActivationStatus (line 22) | public async getActivationStatus(): Promise { method activateEnterprise (line 26) | public async activateEnterprise(key: string): Promise { method _url (line 30) | private get _url(): string { FILE: app/common/ActiveDocAPI.ts type ApplyUAOptions (line 13) | interface ApplyUAOptions { type ApplyUAExtendedOptions (line 20) | interface ApplyUAExtendedOptions extends ApplyUAOptions { type ApplyUAResult (line 30) | interface ApplyUAResult { type DataSourceTransformed (line 37) | interface DataSourceTransformed { type TransformRuleMap (line 45) | interface TransformRuleMap { constant NEW_TABLE (line 51) | const NEW_TABLE = null; constant SKIP_TABLE (line 52) | const SKIP_TABLE = ""; type DestId (line 54) | type DestId = string | typeof NEW_TABLE | typeof SKIP_TABLE; type TransformRule (line 59) | interface TransformRule { type TransformColumn (line 77) | interface TransformColumn { type ImportParseOptions (line 100) | interface ImportParseOptions extends ParseOptions { type ImportResult (line 105) | interface ImportResult { type ImportTableResult (line 110) | interface ImportTableResult { type ImportOptions (line 118) | interface ImportOptions { type MergeOptionsMap (line 123) | interface MergeOptionsMap { type MergeOptions (line 128) | interface MergeOptions { type MergeStrategy (line 133) | interface MergeStrategy { type BaseQuery (line 143) | interface BaseQuery { type ClientQuery (line 152) | interface ClientQuery extends BaseQuery { type FilterColValues (line 158) | type FilterColValues = Pick; type ServerQuery (line 163) | interface ServerQuery extends BaseQuery { type QueryFilters (line 180) | interface QueryFilters { type QueryOperation (line 188) | type QueryOperation = "in" | "intersects" | "empty"; type TableFetchResult (line 202) | interface TableFetchResult { type QueryResult (line 212) | interface QueryResult extends TableFetchResult { type ForkResult (line 221) | interface ForkResult { type PermissionDataWithExtraUsers (line 232) | interface PermissionDataWithExtraUsers extends PermissionData { type AclTableDescription (line 240) | interface AclTableDescription { type AclResources (line 246) | interface AclResources { type AclRuleProblem (line 251) | interface AclRuleProblem { function getTableTitle (line 266) | function getTableTitle(table: AclTableDescription): string { function summaryGroupByDescription (line 274) | function summaryGroupByDescription(groupByColumnLabels: string[]): string { type ISuggestion (line 285) | type ISuggestion = string | [string, string, boolean]; type ISuggestionWithValue (line 288) | type ISuggestionWithValue = [ISuggestion, string | null]; type ShareInfo (line 293) | interface ShareInfo { type RemoteShareInfo (line 301) | interface RemoteShareInfo { type TimingInfo (line 308) | interface TimingInfo { type FormulaTimingInfo (line 326) | interface FormulaTimingInfo extends TimingInfo { type TimingStatus (line 335) | interface TimingStatus { type AssistantState (line 351) | interface AssistantState { type VisibleUserProfile (line 359) | interface VisibleUserProfile { type ActiveDocAPI (line 367) | interface ActiveDocAPI { type ApplyProposalResult (line 556) | interface ApplyProposalResult { type PatchLog (line 561) | interface PatchLog { type PatchItem (line 566) | interface PatchItem { type GetActionSummariesResult (line 571) | interface GetActionSummariesResult { FILE: app/common/AlternateActions.ts constant ACTION_TYPES (line 4) | const ACTION_TYPES = new Set([ type ProcessedAction (line 12) | interface ProcessedAction { type AlternateStorage (line 24) | interface AlternateStorage { class AlternateActions (line 34) | class AlternateActions { method constructor (line 35) | constructor(private _storage: AlternateStorage) {} method usesAlternateStorage (line 41) | public usesAlternateStorage(tableId: string): boolean { method processUserAction (line 48) | public processUserAction(action: UserAction): Promise { method splitByStorage (line 65) | public splitByStorage(actions: UserAction[]): [UserAction[], UserActio... method isSchemaAction (line 95) | public isSchemaAction(docAction: DocAction): boolean { method _doApplyUndoActions (line 99) | private async _doApplyUndoActions(actions: DocAction[]) { method _doAddRecord (line 112) | private async _doAddRecord( method _doBulkAddRecord (line 130) | private async _doBulkAddRecord( method _doUpdateRecord (line 153) | private async _doUpdateRecord( method _doBulkUpdateRecord (line 167) | private async _doBulkUpdateRecord( method _doRemoveRecord (line 181) | private async _doRemoveRecord(tableId: string, rowId: number): Promise... method _doBulkRemoveRecord (line 190) | private async _doBulkRemoveRecord(tableId: string, rowIds: number[]): ... FILE: app/common/ApiError.ts type ApiTip (line 4) | interface ApiTip { type LimitType (line 9) | type LimitType = "collaborators" | "docs" | "workspaces" | "assistant"; type ApiLimit (line 14) | interface ApiLimit { type ApiErrorDetails (line 25) | interface ApiErrorDetails { type ApiErrorCode (line 39) | type ApiErrorCode = class ApiError (line 48) | class ApiError extends Error { method constructor (line 49) | constructor(message: string, public status: number, public details?: A... FILE: app/common/Assistance.ts type AssistanceState (line 14) | interface AssistanceState { type AssistanceMessage (line 18) | interface AssistanceMessage { type AssistanceRequest (line 24) | type AssistanceRequest = AssistanceRequestV1 | AssistanceRequestV2; type AssistanceRequestV1 (line 29) | interface AssistanceRequestV1 extends BaseAssistanceRequest { type AssistanceRequestV2 (line 36) | interface AssistanceRequestV2 extends BaseAssistanceRequest { function isAssistanceRequestV2 (line 41) | function isAssistanceRequestV2(req: AssistanceRequest): req is Assistanc... type DeveloperPromptVersion (line 45) | type DeveloperPromptVersion = "default" | "new-document"; type BaseAssistanceRequest (line 47) | interface BaseAssistanceRequest { type AssistanceContextV1 (line 57) | interface AssistanceContextV1 { type AssistanceContextV2 (line 64) | interface AssistanceContextV2 { type AssistanceResponse (line 68) | type AssistanceResponse = AssistanceResponseV1 | AssistanceResponseV2; type AssistanceResponseV1 (line 70) | interface AssistanceResponseV1 extends BaseAssistanceResponse { type AssistanceResponseV2 (line 75) | interface AssistanceResponseV2 extends BaseAssistanceResponse { type BaseAssistanceResponse (line 85) | interface BaseAssistanceResponse { type AssistanceLimit (line 95) | interface AssistanceLimit { FILE: app/common/Assistant.ts type AssistantConfig (line 1) | interface AssistantConfig { type AssistantProvider (line 6) | type AssistantProvider = "OpenAI" | "Unknown" | null; type AssistantVersion (line 8) | type AssistantVersion = 1 | 2; FILE: app/common/AsyncCreate.ts class AsyncCreate (line 14) | class AsyncCreate { method constructor (line 17) | constructor(private _createFunc: () => Promise) {} method get (line 23) | public get(): Promise { method clear (line 28) | public clear(): void { method isSet (line 33) | public isSet(): boolean { method getIfValid (line 38) | public async getIfValid(): Promise { method _clearOnError (line 43) | private _clearOnError(p: Promise): Promise { function asyncOnce (line 54) | function asyncOnce(createFunc: () => Promise): () => Promise { function mapGetOrSet (line 72) | function mapGetOrSet(map: Map>, key: K, creator: (ke... function mapSetOrClear (line 80) | function mapSetOrClear(map: Map>, key: K, pvalue: Pr... class MapWithTTL (line 89) | class MapWithTTL extends Map { method constructor (line 97) | constructor(private _ttlMs: number) { method set (line 104) | public set(key: K, value: V): this { method setWithCustomTTL (line 111) | public setWithCustomTTL(key: K, value: V, ttlMs: number): this { method expire (line 123) | public expire(key: K): boolean { method delete (line 130) | public delete(key: K): boolean { method clear (line 143) | public clear(): void { class MapWithCustomExpire (line 155) | class MapWithCustomExpire extends MapWithTTL { method constructor (line 156) | constructor(ttlMs: number, private _onExpire: (key: K) => void) { method expire (line 160) | public override expire(key: K): boolean { function freezeError (line 172) | async function freezeError(promise: Promise): Promise { FILE: app/common/AsyncFlow.ts type DisposeListener (line 35) | type DisposeListener = ReturnType; class CancelledError (line 37) | class CancelledError extends Error {} class FlowRunner (line 39) | class FlowRunner extends Disposable { method constructor (line 42) | constructor(func: (flow: AsyncFlow) => Promise) { class AsyncFlow (line 57) | class AsyncFlow extends Disposable { method autoDispose (line 61) | public autoDispose(obj: T): T { method release (line 67) | public release(obj: T): T { method checkIfCancelled (line 74) | public checkIfCancelled() { method cancel (line 80) | public cancel() { FILE: app/common/AttachmentColumns.ts type AttachmentColumns (line 12) | type AttachmentColumns = Map>; function getAttachmentColumns (line 18) | function getAttachmentColumns(metaDocData: DocData): AttachmentColumns { function gatherAttachmentIds (line 40) | function gatherAttachmentIds( FILE: app/common/BaseAPI.ts type IOptions (line 6) | interface IOptions { class BaseAPI (line 16) | class BaseAPI { method numPendingRequests (line 18) | public static numPendingRequests(): number { return this._numPendingRe... method countPendingRequest (line 21) | public static async countPendingRequest(promise: Promise): Promi... method countRequest (line 31) | public static countRequest(target: unknown, propertyKey: string, descr... method requestJson (line 40) | public static requestJson(url: string, init: RequestInit = {}): Promis... method request (line 46) | public static request(url: string, init: RequestInit = {}): Promise { method getPlans (line 241) | public async getPlans(plan?: PlanSelection): Promise { method getSubscription (line 251) | public async getSubscription(): Promise { method getBillingAccount (line 255) | public async getBillingAccount(): Promise { method cancelCurrentPlan (line 259) | public async cancelCurrentPlan() { method updateSettings (line 265) | public async updateSettings(settings?: Partial): ... method updateBillingManagers (line 272) | public async updateBillingManagers(delta: ManagerDelta): Promise { method createTeam (line 279) | public async createTeam(name: string, domain: string, plan: { method createFreeTeam (line 297) | public async createFreeTeam(name: string, domain: string): Promise { method confirmChange (line 310) | public async confirmChange(plan: PlanSelection): Promise { method updateAssistantPlan (line 328) | public async updateAssistantPlan(tier: number): Promise { method subscriptionStatus (line 338) | public async subscriptionStatus(planId: string): Promise { method changeProduct (line 346) | public async changeProduct(product: string): Promise { method attachSubscription (line 353) | public async attachSubscription(subscriptionId: string): Promise { method attachPayment (line 360) | public async attachPayment(paymentLink: string): Promise { method getPaymentLink (line 367) | public async getPaymentLink(): Promise<{ checkoutUrl: string }> { method cancelPlanChange (line 371) | public async cancelPlanChange(): Promise { method dontCancelPlan (line 375) | public async dontCancelPlan(): Promise { method _url (line 379) | private get _url(): string { FILE: app/common/BinaryIndexedTree.js function BinaryIndexedTree (line 5) | function BinaryIndexedTree(optSize) { function leastSignificantOne (line 22) | function leastSignificantOne(num) { function stripLeastSignificantOne (line 33) | function stripLeastSignificantOne(num) { function mostSignificantOne (line 39) | function mostSignificantOne(num) { function cumulToValues (line 57) | function cumulToValues(values) { function valuesToCumul (line 72) | function valuesToCumul(values) { FILE: app/common/BootProbe.ts type BootProbeIds (line 3) | type BootProbeIds = type BootProbeResult (line 16) | interface BootProbeResult { type BootProbeInfo (line 27) | interface BootProbeInfo { type SandboxingBootProbeDetails (line 32) | type SandboxingBootProbeDetails = SandboxInfo; FILE: app/common/BrowserSettings.ts type BrowserSettings (line 4) | interface BrowserSettings { FILE: app/common/CircularArray.js function CircularArray (line 4) | function CircularArray(maxLength) { FILE: app/common/ColumnFilterFunc.ts type ColumnFilterFunc (line 10) | type ColumnFilterFunc = (value: CellValue) => boolean; function makeFilterFunc (line 14) | function makeFilterFunc(state: FilterState, function buildColFilter (line 59) | function buildColFilter(filterJson: string | undefined, function changeTimezone (line 66) | function changeTimezone(date: IRangeBoundType, FILE: app/common/ColumnGetters.ts type ColumnGetters (line 11) | interface ColumnGetters { type ColumnGettersByColId (line 33) | interface ColumnGettersByColId { type ColumnGetter (line 37) | type ColumnGetter = (rowId: number) => any; FILE: app/common/CommTypes.ts type ValidEvent (line 12) | type ValidEvent = typeof ValidEvent.type; type CommRequest (line 17) | interface CommRequest { type CommResponse (line 26) | interface CommResponse { type CommResponseError (line 35) | interface CommResponseError { type CommMessageBase (line 49) | interface CommMessageBase { type CommDocMessage (line 55) | type CommDocMessage = CommDocUserAction | CommDocUsage | CommDocShutdown | type CommMessage (line 57) | type CommMessage = CommDocMessage | CommDocListAction | CommClientConnect; type CommResponseBase (line 59) | type CommResponseBase = CommResponse | CommResponseError | CommMessage; type CommDocEventType (line 61) | type CommDocEventType = CommDocMessage["type"]; type CommDocListAction (line 68) | interface CommDocListAction extends CommMessageBase { type CommDocUserAction (line 81) | interface CommDocUserAction extends CommMessageBase { type WebhookMessageType (line 95) | enum WebhookMessageType { type CommDocChatter (line 99) | interface CommDocChatter extends CommMessageBase { type CommDocUserPresenceUpdate (line 118) | interface CommDocUserPresenceUpdate extends CommMessageBase { type CommDocUsage (line 131) | interface CommDocUsage extends CommMessageBase { type CommDocShutdown (line 143) | interface CommDocShutdown extends CommMessageBase { type CommDocError (line 152) | interface CommDocError extends CommMessageBase { type CommClientConnect (line 164) | interface CommClientConnect extends CommMessageBase { FILE: app/common/Config.ts type Config (line 5) | interface Config { type ConfigOrg (line 14) | interface ConfigOrg { type ConfigKey (line 20) | type ConfigKey = "audit_log_streaming_destinations"; type ConfigValue (line 22) | type ConfigValue = AuditLogStreamingDestinations; type AuditLogStreamingDestinations (line 24) | type AuditLogStreamingDestinations = AuditLogStreamingDestination[]; type AuditLogStreamingDestination (line 26) | interface AuditLogStreamingDestination { type AuditLogStreamingDestinationName (line 33) | type AuditLogStreamingDestinationName = "splunk" | "other"; FILE: app/common/ConfigAPI.ts type AuthProvider (line 7) | interface AuthProvider { class ConfigAPI (line 25) | class ConfigAPI extends BaseAPI { method constructor (line 26) | constructor(private _homeUrl: string, options: IOptions = {}) { method getValue (line 30) | public async getValue(key: string): Promise { method setValue (line 34) | public async setValue(value: any, restart = false): Promise { method restartServer (line 41) | public async restartServer(): Promise { method healthcheck (line 45) | public async healthcheck(): Promise { method setActiveAuthProvider (line 55) | public async setActiveAuthProvider(providerKey: string): Promise { method getAuthProviders (line 65) | public async getAuthProviders(): Promise { method configureProvider (line 73) | public async configureProvider(provider: string, config: Record; type AddRecord (line 17) | type AddRecord = ["AddRecord", string, number, ColValues]; type BulkAddRecord (line 18) | type BulkAddRecord = ["BulkAddRecord", string, number[], BulkColValues]; type RemoveRecord (line 19) | type RemoveRecord = ["RemoveRecord", string, number]; type BulkRemoveRecord (line 20) | type BulkRemoveRecord = ["BulkRemoveRecord", string, number[]]; type UpdateRecord (line 21) | type UpdateRecord = ["UpdateRecord", string, number, ColValues]; type BulkUpdateRecord (line 22) | type BulkUpdateRecord = ["BulkUpdateRecord", string, number[], BulkColVa... type ReplaceTableData (line 24) | type ReplaceTableData = ["ReplaceTableData", string, number[], BulkColVa... type TableDataAction (line 27) | type TableDataAction = ["TableData", string, number[], BulkColValues]; type AddColumn (line 29) | type AddColumn = ["AddColumn", string, string, ColInfo]; type RemoveColumn (line 30) | type RemoveColumn = ["RemoveColumn", string, string]; type RenameColumn (line 31) | type RenameColumn = ["RenameColumn", string, string, string]; type ModifyColumn (line 32) | type ModifyColumn = ["ModifyColumn", string, string, Partial]; type AddTable (line 34) | type AddTable = ["AddTable", string, ColInfoWithId[]]; type RemoveTable (line 35) | type RemoveTable = ["RemoveTable", string]; type RenameTable (line 36) | type RenameTable = ["RenameTable", string, string]; type DocAction (line 38) | type DocAction = ( function isAddRecord (line 58) | function isAddRecord(act: DocAction): act is AddRecord { return act[0] =... function isBulkAddRecord (line 59) | function isBulkAddRecord(act: DocAction): act is BulkAddRecord { return ... function isRemoveRecord (line 60) | function isRemoveRecord(act: DocAction): act is RemoveRecord { return ac... function isBulkRemoveRecord (line 61) | function isBulkRemoveRecord(act: DocAction): act is BulkRemoveRecord { r... function isUpdateRecord (line 62) | function isUpdateRecord(act: DocAction): act is UpdateRecord { return ac... function isBulkUpdateRecord (line 63) | function isBulkUpdateRecord(act: DocAction): act is BulkUpdateRecord { r... function isReplaceTableData (line 65) | function isReplaceTableData(act: DocAction): act is ReplaceTableData { r... function isAddColumn (line 67) | function isAddColumn(act: DocAction): act is AddColumn { return act[0] =... function isRemoveColumn (line 68) | function isRemoveColumn(act: DocAction): act is RemoveColumn { return ac... function isRenameColumn (line 69) | function isRenameColumn(act: DocAction): act is RenameColumn { return ac... function isModifyColumn (line 70) | function isModifyColumn(act: DocAction): act is ModifyColumn { return ac... function isAddTable (line 72) | function isAddTable(act: DocAction): act is AddTable { return act[0] ===... function isRemoveTable (line 73) | function isRemoveTable(act: DocAction): act is RemoveTable { return act[... function isRenameTable (line 74) | function isRenameTable(act: DocAction): act is RenameTable { return act[... constant SCHEMA_ACTIONS (line 76) | const SCHEMA_ACTIONS = new Set(["AddTable", "RemoveTable", "RenameTable"... constant DATA_ACTIONS (line 79) | const DATA_ACTIONS = new Set(["AddRecord", "RemoveRecord", "UpdateRecord... function isSchemaAction (line 85) | function isSchemaAction(action: DocAction): type DataAction (line 90) | type DataAction = AddRecord | RemoveRecord | UpdateRecord | type SingleDataAction (line 94) | type SingleDataAction = AddRecord | UpdateRecord | RemoveRecord; type BulkDataAction (line 95) | type BulkDataAction = Exclude; function isDataAction (line 98) | function isDataAction(action: DocAction | UserAction): action is DataAct... function isSingleAction (line 102) | function isSingleAction(action: DataAction): action is SingleDataAction { function isBulkAction (line 105) | function isBulkAction(action: DataAction): action is BulkDataAction { function isSomeAddRecordAction (line 108) | function isSomeAddRecordAction(a: DataAction): a is AddRecord | BulkAddR... function isSomeRemoveRecordAction (line 111) | function isSomeRemoveRecordAction(a: DataAction): a is RemoveRecord | Bu... function getTableId (line 118) | function getTableId(action: DocAction): string { function getActionName (line 123) | function getActionName(action: T) { return action[0... function getRowIds (line 129) | function getRowIds(action: DataAction): number | number[] { return actio... function getRowIdsFromDocAction (line 132) | function getRowIdsFromDocAction(action: DataAction): number[] { function getActionColValues (line 143) | function getActionColValues(action: Exclude[]): BulkColValues { function getColIdsFromDocAction (line 263) | function getColIdsFromDocAction(docActions: RemoveRecord | BulkRemoveRec... function getColValuesFromDocAction (line 274) | function getColValuesFromDocAction(docAction: RemoveRecord | BulkRemoveR... function getRowFromBulkColValues (line 320) | function getRowFromBulkColValues(colValues: BulkColValues, idx: number):... FILE: app/common/DocComments.ts type CommentContent (line 10) | interface CommentContent { type DocComment (line 55) | interface DocComment { type CellRecord (line 64) | type CellRecord = SchemaTypes["_grist_Cells"]; function makeDocComment (line 74) | function makeDocComment( type MentionChunk (line 98) | type MentionChunk = function splitTextWithMentions (line 124) | function splitTextWithMentions(text: string): MentionChunk[] { function replaceMentionsInText (line 150) | function replaceMentionsInText(text: string) { function getMentions (line 161) | function getMentions(cellContent: string): string[] { FILE: app/common/DocData.ts type FetchTableFunc (line 21) | type FetchTableFunc = (tableId: string) => Promise; class DocData (line 23) | class DocData extends ActionDispatcher { method constructor (line 33) | constructor(fetchTableFunc: FetchTableFunc, metaTableData: { [tableId:... method createTableData (line 69) | public createTableData(tableId: string, tableData: TableDataAction | n... method getTable (line 76) | public getTable(tableId: string): TableData | undefined { method requireTable (line 80) | public async requireTable(tableId: string): Promise { method getMetaTable (line 92) | public getMetaTable(tableId: TableI... method getTables (line 99) | public getTables(): ReadonlyMap { method fetchTable (line 107) | public async fetchTable(tableId: string, force?: boolean): Promise { method receiveAction (line 131) | public receiveAction(action: DocAction): void { method receiveActions (line 144) | public receiveActions(actions: DocAction[]): void { method docInfo (line 148) | public docInfo(): MetaRowRecord<"_grist_DocInfo"> { method docSettings (line 153) | public docSettings(): DocumentSettings { method onAddTable (line 159) | protected onAddTable(action: DocAction, tableId: string, columns: ColI... method onRemoveTable (line 164) | protected onRemoveTable(action: DocAction, tableId: string): void { method onRenameTable (line 168) | protected onRenameTable(action: DocAction, oldTableId: string, newTabl... method onAddRecord (line 176) | protected onAddRecord(action: DocAction, tableId: string, rowId: numbe... method onUpdateRecord (line 177) | protected onUpdateRecord(action: DocAction, tableId: string, rowId: nu... method onRemoveRecord (line 178) | protected onRemoveRecord(action: DocAction, tableId: string, rowId: nu... method onBulkAddRecord (line 180) | protected onBulkAddRecord(action: DocAction, tableId: string, rowIds: ... method onBulkUpdateRecord (line 181) | protected onBulkUpdateRecord(action: DocAction, tableId: string, rowId... method onBulkRemoveRecord (line 182) | protected onBulkRemoveRecord(action: DocAction, tableId: string, rowId... method onReplaceTableData (line 184) | protected onReplaceTableData(action: DocAction, tableId: string, rowId... method onAddColumn (line 186) | protected onAddColumn(action: DocAction, tableId: string, colId: strin... method onRemoveColumn (line 187) | protected onRemoveColumn(action: DocAction, tableId: string, colId: st... method onRenameColumn (line 188) | protected onRenameColumn(action: DocAction, tableId: string, oldColId:... method onModifyColumn (line 189) | protected onModifyColumn(action: DocAction, tableId: string, colId: st... FILE: app/common/DocDataCache.ts class DocDataCache (line 12) | class DocDataCache implements AlternateStorage { method constructor (line 15) | constructor(actions?: DocAction[]) { method sendTableActions (line 28) | public async sendTableActions(actions: UserAction[]): Promise { FILE: app/common/DocLimits.ts type GetDataLimitStatusParams (line 7) | interface GetDataLimitStatusParams { function getDataLimitInfo (line 17) | function getDataLimitInfo(params: GetDataLimitStatusParams): DataLimitIn... function getDataLimitRatio (line 41) | function getDataLimitRatio( function getSeverity (line 63) | function getSeverity(dataLimitStatus: DataLimitStatus): number { FILE: app/common/DocListAPI.ts type DocEntryTag (line 10) | type DocEntryTag = "" | "sample" | "invite" | "shared"; type OpenDocMode (line 18) | type OpenDocMode = typeof OpenDocMode.type; type OpenDocOptions (line 28) | interface OpenDocOptions { type DocEntry (line 54) | interface DocEntry { type DocCreationInfo (line 64) | interface DocCreationInfo { type OpenLocalDocResult (line 73) | interface OpenLocalDocResult { type UserOverride (line 85) | interface UserOverride { type DocListAPI (line 90) | interface DocListAPI { FILE: app/common/DocSchemaImport.ts type ImportSchema (line 20) | interface ImportSchema { type TableImportSchema (line 24) | interface TableImportSchema { type ColumnImportSchema (line 33) | interface ColumnImportSchema { type FormulaTemplate (line 88) | interface FormulaTemplate { type OriginalTableRef (line 96) | interface OriginalTableRef { type ExistingTableRef (line 110) | interface ExistingTableRef { type TableRef (line 119) | type TableRef = OriginalTableRef | ExistingTableRef; type OriginalColRef (line 125) | interface OriginalColRef { type ExistingColRef (line 136) | interface ExistingColRef { type ColRef (line 145) | type ColRef = OriginalColRef | ExistingColRef; type ResolvedRef (line 150) | type ResolvedRef = type ApplyUserActionsFunc (line 155) | type ApplyUserActionsFunc = (userActions: UserAction[]) => Promise { function tablesToSchema (line 281) | function tablesToSchema(tables: TableMetadata[]): ExistingDocSchema { type DocSchemaImportWarning (line 300) | interface DocSchemaImportWarning { class RefWarning (line 305) | class RefWarning implements DocSchemaImportWarning { method constructor (line 308) | constructor(public readonly ref: TableRef | ColRef) { class ColumnRefWarning (line 313) | class ColumnRefWarning extends RefWarning { method constructor (line 316) | constructor(public readonly column: ColumnImportSchema, public readonl... class FormulaRefWarning (line 322) | class FormulaRefWarning implements DocSchemaImportWarning { method constructor (line 325) | constructor( function validateImportSchema (line 343) | function validateImportSchema(schema: ImportSchema, existingSchema?: Exi... class NoColumnInfoForRefWarning (line 387) | class NoColumnInfoForRefWarning implements DocSchemaImportWarning { method constructor (line 390) | constructor(public readonly ref: TableRef | ColRef) { class NoMatchingColumnWarning (line 395) | class NoMatchingColumnWarning implements DocSchemaImportWarning { method constructor (line 398) | constructor(public readonly colSchema: ColumnImportSchema, public read... type ImportSchemaTransformParams (line 406) | interface ImportSchemaTransformParams { function transformImportSchema (line 424) | function transformImportSchema( function transformSchemaMapRef (line 468) | function transformSchemaMapRef( function findMatchingExistingColumn (line 504) | function findMatchingExistingColumn(colSchema: ColumnImportSchema, exist... function prepareFormula (line 513) | function prepareFormula( class DocSchemaImportError (line 539) | class DocSchemaImportError extends Error { method constructor (line 540) | constructor(message: string) { function createUnresolvedRefError (line 546) | function createUnresolvedRefError(ref: TableRef | ColRef) { function makeResolveRefFuncs (line 559) | function makeResolveRefFuncs(tableIdsMap: Map) { type TableIdsInfo (line 599) | interface TableIdsInfo { function schemaItemDebugIds (line 606) | function schemaItemDebugIds({ originalId, desiredGristId }: { originalId... FILE: app/common/DocSchemaImportTypes.ts type ExistingDocSchema (line 6) | interface ExistingDocSchema { type ExistingTableSchema (line 10) | interface ExistingTableSchema { type ExistingColumnSchema (line 17) | interface ExistingColumnSchema { FILE: app/common/DocSnapshot.ts type ObjSnapshot (line 4) | interface ObjSnapshot { type ObjMetadata (line 13) | interface ObjMetadata { type ObjSnapshotWithMetadata (line 21) | interface ObjSnapshotWithMetadata extends ObjSnapshot { type DocSnapshot (line 28) | interface DocSnapshot extends ObjSnapshotWithMetadata { type DocSnapshots (line 35) | interface DocSnapshots { type ExternalMetadata (line 46) | type ExternalMetadata = Record; function toExternalMetadata (line 51) | function toExternalMetadata(metadata: ObjMetadata): ExternalMetadata { function toGristMetadata (line 62) | function toGristMetadata(metadata: ExternalMetadata): ObjMetadata { FILE: app/common/DocState.ts type DocStates (line 10) | interface DocStates { type DocStateComparison (line 21) | interface DocStateComparison { type DocStateComparisonDetails (line 41) | interface DocStateComparisonDetails { function createEmptyDocStateComparison (line 47) | function createEmptyDocStateComparison(): DocStateComparison { function removeMetadataChangesFromDetails (line 60) | function removeMetadataChangesFromDetails(details: DocStateComparisonDet... function removeMetadataChangesFromSummary (line 74) | function removeMetadataChangesFromSummary(summary: ActionSummary) { FILE: app/common/DocUsage.ts type DocumentUsage (line 1) | interface DocumentUsage { type RowCounts (line 7) | interface RowCounts { type DataLimitStatus (line 12) | type DataLimitStatus = "approachingLimit" | "gracePeriod" | "deleteOnly"... type DataLimitInfo (line 13) | interface DataLimitInfo { type DocUsageOrPending (line 18) | type DocUsageOrPending = { type DocUsageSummary (line 22) | interface DocUsageSummary extends DocUsageOrPending { type OrgUsageSummary (line 27) | interface OrgUsageSummary { type UsageRecommendations (line 37) | interface UsageRecommendations { type FilteredDocUsage (line 41) | type FilteredDocUsage = { type FilteredDocUsageSummary (line 45) | interface FilteredDocUsageSummary extends FilteredDocUsage { function createEmptyOrgUsageSummary (line 53) | function createEmptyOrgUsageSummary(): OrgUsageSummary { FILE: app/common/DocumentSettings.ts type DocumentSettings (line 5) | interface DocumentSettings { type EngineCode (line 26) | type EngineCode = "python3"; type DocState (line 31) | interface DocState { FILE: app/common/DropdownCondition.ts type DropdownCondition (line 3) | interface DropdownCondition { type DropdownConditionCompilationResult (line 8) | type DropdownConditionCompilationResult = type DropdownConditionCompilationSuccess (line 12) | interface DropdownConditionCompilationSuccess { type DropdownConditionCompilationFailure (line 17) | interface DropdownConditionCompilationFailure { FILE: app/common/EncActionBundle.ts type Timestamp (line 9) | type Timestamp = number; type Base64String (line 12) | type Base64String = string; type KeyInfo (line 15) | interface KeyInfo { type EncKeyInfo (line 21) | interface EncKeyInfo extends KeyInfo { type EncKeyBundle (line 27) | interface EncKeyBundle extends KeyInfo { type DecryptedEnvelopeContent (line 41) | interface DecryptedEnvelopeContent { type DecryptedEnvelope (line 48) | type DecryptedEnvelope = Envelope & DecryptedEnvelopeContent; type EncEnvelopeToHub (line 51) | interface EncEnvelopeToHub extends Envelope { type EncEnvelopeFromHub (line 58) | interface EncEnvelopeFromHub extends Envelope { type EncActionBundle (line 65) | interface EncActionBundle { type EncActionBundleToHub (line 72) | type EncActionBundleToHub = EncActionBundle; type EncActionBundleFromHub (line 73) | type EncActionBundleFromHub = EncActionBundle; FILE: app/common/ErrorWithCode.ts type ErrorDetails (line 3) | interface ErrorDetails { class ErrorWithCode (line 16) | class ErrorWithCode extends Error { method constructor (line 17) | constructor(public code: string, message: string, public details: Erro... method accessMode (line 21) | public get accessMode() { return this.details?.accessMode; } method status (line 22) | public get status() { return this.details?.status; } FILE: app/common/Features.ts type SnapshotWindow (line 6) | interface SnapshotWindow { type Product (line 12) | interface Product { constant UNITS (line 21) | const UNITS = "{units}"; type Features (line 29) | interface Features { function mergedFeatures (line 123) | function mergedFeatures(resource: Features | null, ...defaults: (Feature... type StripeMetaValues (line 130) | interface StripeMetaValues { function parseStripeFeatures (line 145) | function parseStripeFeatures(meta: Record): Features { function parseMetadata (line 183) | function parseMetadata(meta: Record): Record { function canAddOrgMembers (line 219) | function canAddOrgMembers(features: Features): boolean { constant PERSONAL_FREE_PLAN (line 225) | const PERSONAL_FREE_PLAN = "personalFree"; constant TEAM_FREE_PLAN (line 226) | const TEAM_FREE_PLAN = "teamFree"; constant SUSPENDED_PLAN (line 229) | const SUSPENDED_PLAN = "suspended"; constant ANONYMOUS_PLAN (line 232) | const ANONYMOUS_PLAN = "anonymous"; constant FREE_PLAN (line 235) | const FREE_PLAN = "Free"; constant STUB_PLAN (line 238) | const STUB_PLAN = "stub"; constant PERSONAL_LEGACY_PLAN (line 242) | const PERSONAL_LEGACY_PLAN = "starter"; constant TEAM_PLAN (line 246) | const TEAM_PLAN = "team"; function isLegacyPlan (line 260) | function isLegacyPlan(planName: string): boolean { function isFreePersonalPlan (line 265) | function isFreePersonalPlan(planName: string): boolean { function isFreePlan (line 274) | function isFreePlan(planName: string): boolean { function isManagedPlan (line 290) | function isManagedPlan(planName: string): boolean { FILE: app/common/FilterState.ts type FilterSpec (line 8) | interface FilterSpec { type IRangeBoundType (line 15) | type IRangeBoundType = undefined | number | IRelativeDateSpec; type FilterState (line 17) | type FilterState = ByValueFilterState | RangeFilterState; type ByValueFilterState (line 20) | interface ByValueFilterState { type RangeFilterState (line 25) | interface RangeFilterState { function makeFilterState (line 31) | function makeFilterState(spec: string | FilterSpec): FilterState { function isEquivalentFilter (line 45) | function isEquivalentFilter(state: FilterState, spec: FilterSpec): boole... function isRangeFilter (line 63) | function isRangeFilter(state: FilterState): state is RangeFilterState { function isEquivalentBound (line 68) | function isEquivalentBound(a: IRangeBoundType, b: IRangeBoundType) { FILE: app/common/Forms.ts constant INITIAL_FIELDS_COUNT (line 4) | const INITIAL_FIELDS_COUNT = 9; FILE: app/common/Formula.ts type Formula (line 16) | type Formula = LiteralNumberFormula | ColumnFormula | ForeignColumnFormu... type ColumnFormula (line 19) | interface ColumnFormula { type ForeignColumnFormula (line 25) | interface ForeignColumnFormula { type LiteralNumberFormula (line 31) | interface LiteralNumberFormula { type FormulaError (line 37) | interface FormulaError { function parseFormula (line 49) | function parseFormula(txt: string): Formula { FILE: app/common/GranularAccessClause.ts type RuleSet (line 6) | interface RuleSet { type RulePart (line 14) | interface RulePart { type InfoEditor (line 28) | interface InfoEditor { type UserAttributeRule (line 34) | interface UserAttributeRule { FILE: app/common/GristServerAPI.ts type GristServerAPI (line 6) | interface GristServerAPI extends type UserAPI (line 13) | interface UserAPI { type MiscAPI (line 33) | interface MiscAPI { FILE: app/common/ICommonUrls.ts type ICommonUrls (line 1) | interface ICommonUrls { FILE: app/common/InactivityTimer.ts class InactivityTimer (line 16) | class InactivityTimer { method constructor (line 21) | constructor(private _callback: () => void, private _delay: number) {} method getDelay (line 24) | public getDelay(): number { method setDelay (line 29) | public setDelay(delayMs: number): void { method enable (line 37) | public enable(): void { method disable (line 45) | public disable(): void { method isEnabled (line 53) | public isEnabled(): boolean { method isScheduled (line 61) | public isScheduled(): boolean { method ping (line 68) | public ping() { method disableUntilFinish (line 78) | public async disableUntilFinish(promise: Promise): Promise { method _beginActivity (line 87) | private _beginActivity() { method _endActivity (line 92) | private _endActivity() { method _clearTimeout (line 97) | private _clearTimeout() { method _setTimeout (line 104) | private _setTimeout() { method _onTimeoutTriggered (line 109) | private _onTimeoutTriggered() { FILE: app/common/Install.ts type InstallPrefs (line 3) | interface InstallPrefs extends PendingChanges { type PendingChanges (line 9) | interface PendingChanges { type TelemetryPrefs (line 44) | interface TelemetryPrefs { FILE: app/common/InstallAPI.ts type InstallProperties (line 10) | interface InstallProperties { type InstallPrefsWithSources (line 14) | interface InstallPrefsWithSources extends PendingChanges { type TelemetryPrefsWithSources (line 21) | type TelemetryPrefsWithSources = InstallPrefsWithSources["telemetry"]; type PrefWithSource (line 23) | interface PrefWithSource { type PrefSource (line 28) | type PrefSource = "environment-variable" | "preferences"; type InstallAPI (line 30) | interface InstallAPI { class InstallAPIImpl (line 41) | class InstallAPIImpl extends BaseAPI implements InstallAPI { method constructor (line 42) | constructor(private _homeUrl: string, options: IOptions = {}) { method getInstallPrefs (line 46) | public async getInstallPrefs(): Promise { method updateInstallPrefs (line 50) | public async updateInstallPrefs(prefs: Partial): Promise... method checkUpdates (line 57) | public checkUpdates(): Promise { method getChecks (line 61) | public getChecks(): Promise<{ probes: BootProbeInfo[] }> { method runCheck (line 65) | public runCheck(id: string): Promise { method _url (line 69) | private get _url(): string { FILE: app/common/Interval.ts type IntervalOptions (line 1) | interface IntervalOptions { type IntervalDelay (line 8) | interface IntervalDelay { class Interval (line 21) | class Interval { method constructor (line 27) | constructor( method enable (line 36) | public enable(): void { method disable (line 48) | public disable(): void { method disableAndFinish (line 56) | public async disableAndFinish(): Promise { method getDelayMs (line 66) | public getDelayMs(): number | undefined { method _clearTimeout (line 70) | private _clearTimeout() { method _setTimeout (line 77) | private _setTimeout() { method _computeDelayMs (line 83) | private _computeDelayMs() { method _onTimeoutTriggered (line 94) | private async _onTimeoutTriggered() { FILE: app/common/KeyedMutex.ts class KeyedMutex (line 7) | class KeyedMutex { method acquire (line 10) | public async acquire(key: string): Promise { method runExclusive (line 27) | public async runExclusive(key: string, callback: MutexInterface.Wor... method isLocked (line 36) | public isLocked(key: string): boolean { method size (line 43) | public get size(): number { FILE: app/common/KeyedOps.ts class KeyedOps (line 6) | class KeyedOps { method constructor (line 39) | constructor(private _op: (key: string) => Promise, private _opti... method addOperation (line 51) | public addOperation(key: string) { method hasPendingOperations (line 59) | public hasPendingOperations() { method hasPendingOperation (line 66) | public hasPendingOperation(key: string) { method expediteOperations (line 74) | public expediteOperations() { method stopOperations (line 87) | public stopOperations() { method wait (line 97) | public async wait(logRepeat?: (count: number) => void) { method expediteOperationAndWait (line 111) | public async expediteOperationAndWait(key: string) { method _schedule (line 131) | private _schedule(key: string, immediate: boolean = false) { method _getOperationStatus (line 153) | private _getOperationStatus(key: string): OperationStatus { method _getOperationHistory (line 166) | private _getOperationHistory(key: string): OperationHistory { method _doOp (line 175) | private async _doOp(key: string) { method _update (line 181) | private _update(key: string) { type OperationStatus (line 232) | interface OperationStatus { type OperationHistory (line 243) | interface OperationHistory { FILE: app/common/Limits.ts class LimitExceededError (line 6) | class LimitExceededError extends ApiError { method constructor (line 7) | constructor(message: string) { constant APPROACHING_LIMIT_RATIO (line 13) | const APPROACHING_LIMIT_RATIO = 0.9; function getUsageRatio (line 19) | function getUsageRatio(usage: number | undefined, limit: number | undefi... function isEnforceableLimit (line 31) | function isEnforceableLimit(limit: number | undefined): limit is number { FILE: app/common/LinkNode.ts type LinkNodeSection (line 15) | interface LinkNodeSection { type LinkNodeColumn (line 29) | interface LinkNodeColumn { type LinkNodeTable (line 37) | interface LinkNodeTable { type LinkNode (line 44) | interface LinkNode { type LinkNodeOperations (line 79) | interface LinkNodeOperations { function buildLinkNodes (line 84) | function buildLinkNodes( function buildRefColLinkNodes (line 156) | function buildRefColLinkNodes( function isSummaryGroup (line 183) | function isSummaryGroup(node: LinkNode): boolean { function isValidLink (line 188) | function isValidLink(source: LinkNode, target: LinkNode) { FILE: app/common/Locales.ts constant DEFAULT_CURRENCY (line 7) | const DEFAULT_CURRENCY = "USD"; type Locale (line 9) | interface Locale { type Currency (line 41) | interface Currency { function getCurrency (line 52) | function getCurrency(code: string) { function getCountryCode (line 73) | function getCountryCode(locale: string) { FILE: app/common/LoginSessionAPI.ts type UserProfile (line 5) | interface UserProfile { type InstallAdminInfo (line 20) | interface InstallAdminInfo { function sameUser (line 29) | function sameUser(a: UserProfile | FullUser, b: UserProfile | FullUser):... type FullUser (line 42) | interface FullUser extends UserProfile { type LoginSessionAPI (line 52) | interface LoginSessionAPI { FILE: app/common/MemBuffer.js function MemBuffer (line 9) | function MemBuffer(optBytesToReserve) { function makeWriteFunc (line 134) | function makeWriteFunc(typeName, bytes, optLittleEndian) { function Consumer (line 197) | function Consumer(mbuf) { function makeReadFunc (line 264) | function makeReadFunc(typeName, bytes, optLittleEndian) { FILE: app/common/NumberFormat.ts type NumMode (line 30) | type NumMode = typeof NumMode.type; type NumSign (line 31) | type NumSign = "parens"; type NumberFormatOptions (line 33) | interface NumberFormatOptions extends FormatOptions { function getCurrency (line 41) | function getCurrency(options: NumberFormatOptions, docSettings: Document... function buildNumberFormat (line 45) | function buildNumberFormat(options: NumberFormatOptions, docSettings: Do... function parseNumMode (line 83) | function parseNumMode(numMode?: NumMode | null, currency?: string): Intl... FILE: app/common/NumberParse.ts type NumberFormatPartTypes (line 17) | type NumberFormatPartTypes = Intl.NumberFormatPartTypes | "exponentSepar... function getDigitsMap (line 24) | function getDigitsMap(locale: string) { type ParsedOptions (line 37) | interface ParsedOptions { class NumberParse (line 45) | class NumberParse { method fromSettings (line 52) | public static fromSettings(docSettings: DocumentSettings, options: Num... method constructor (line 77) | constructor(public readonly locale: string, public readonly currency: ... method parse (line 145) | public parse(value: string): { result: number, cleaned: string, option... method guessOptions (line 225) | public guessOptions(values: (string | null)[]): NumberFormatOptions { function removeSymbol (line 336) | function removeSymbol(value: string, symbol: string): [string, boolean] { FILE: app/common/PluginInstance.ts type ComponentKind (line 10) | type ComponentKind = "safeBrowser" | "safePython" | "unsafeNode"; type TargetRenderFunc (line 14) | type TargetRenderFunc = (containerElement: HTMLElement, options?: Render... method constructor (line 26) | constructor(plugin: BarePlugin, private _logger: IRpcLogger) { method activated (line 35) | public activated(): boolean { method activate (line 42) | public async activate(): Promise { method deactivate (line 52) | public async deactivate(): Promise { method forwardCall (line 68) | public async forwardCall(c: IMsgRpcCall): Promise { method forwardMessage (line 73) | public async forwardMessage(msg: IMsgCustom): Promise { class PluginInstance (line 96) | class PluginInstance { method constructor (line 106) | constructor(public definition: LocalPlugin, rpcLogger: IRpcLogger) { method getStub (line 116) | public getStub(implementation: Implementation, checker: Checker... method shutdown (line 127) | public async shutdown(): Promise { method addRenderTarget (line 139) | public addRenderTarget(renderPluginContent: TargetRenderFunc): number { method getRenderTarget (line 148) | public getRenderTarget(target: RenderTarget, options?: RenderOptions):... method removeRenderTarget (line 159) | public removeRenderTarget(target: RenderTarget): boolean { function renderFullScreen (line 167) | function renderFullScreen(element: Element) { type BaseLogger (line 173) | interface BaseLogger { function createRpcLogger (line 183) | function createRpcLogger(baseLog: BaseLogger, prefix: string): IRpcLogger { function warnIfNotReady (line 198) | function warnIfNotReady(rpc: Rpc, msec: number, message: string): void { FILE: app/common/PredicateFormula.ts type PrimitiveCellValue (line 22) | type PrimitiveCellValue = number | string | boolean | null; type ParsedPredicateFormula (line 23) | type ParsedPredicateFormula = [string, ...(ParsedPredicateFormula | Prim... type PredicateFormulaInput (line 28) | interface PredicateFormulaInput { type CompiledPredicateFormula (line 56) | type CompiledPredicateFormula = (input: PredicateFormulaInput) => boolean; constant GRIST_CONSTANTS (line 58) | const GRIST_CONSTANTS: Record = { type IntermediatePredicateFormula (line 68) | type IntermediatePredicateFormula = (input: PredicateFormulaInput) => any; type CompilePredicateFormulaOptions (line 70) | interface CompilePredicateFormulaOptions { function compilePredicateFormula (line 78) | function compilePredicateFormula( class SupportedCallable (line 177) | class SupportedCallable { method constructor (line 178) | constructor(public readonly func: Function) {} function getStringMethod (line 181) | function getStringMethod(value: string, attrName: string): SupportedCall... function includes (line 189) | function includes(haystack: unknown, needle: unknown) { function describeNode (line 203) | function describeNode(node: ParsedPredicateFormula): string { function getAttr (line 213) | function getAttr(value: any, attrName: string, valueNode: ParsedPredicat... type PredicateFormulaProperties (line 237) | interface PredicateFormulaProperties { function getPredicateFormulaProperties (line 262) | function getPredicateFormulaProperties( function isAnyRec (line 272) | function isAnyRec(formula: ParsedPredicateFormula | PrimitiveCellValue):... function getRecColIds (line 278) | function getRecColIds(formula: ParsedPredicateFormula): string[] { function isChoice (line 282) | function isChoice(formula: ParsedPredicateFormula | PrimitiveCellValue):... function getChoiceColIds (line 286) | function getChoiceColIds(formula: ParsedPredicateFormula): string[] { function collectColIds (line 290) | function collectColIds( function typeCheckFormula (line 308) | function typeCheckFormula( FILE: app/common/Prefs.ts type SortPref (line 5) | type SortPref = typeof SortPref.type; type ViewPref (line 8) | type ViewPref = typeof ViewPref.type; type Prefs (line 11) | interface Prefs { type UserPrefs (line 17) | interface UserPrefs extends Prefs { type UserOrgPrefs (line 41) | interface UserOrgPrefs extends Prefs { type OrgPrefs (line 59) | interface OrgPrefs extends Prefs { type DocPrefs (line 64) | interface DocPrefs { type FullDocPrefs (line 74) | interface FullDocPrefs { type DeprecationWarning (line 95) | type DeprecationWarning = typeof DeprecationWarning.type; type BehavioralPrompt (line 118) | type BehavioralPrompt = typeof BehavioralPrompt.type; type BehavioralPromptPrefs (line 120) | interface BehavioralPromptPrefs { type DismissedPopup (line 144) | type DismissedPopup = typeof DismissedPopup.type; type WelcomePopup (line 149) | type WelcomePopup = typeof WelcomePopup.type; type DismissedReminder (line 151) | interface DismissedReminder { FILE: app/common/RecentItems.js class RecentItems (line 13) | class RecentItems { method constructor (line 14) | constructor(options) { method addItem (line 21) | addItem(item) { method addItems (line 33) | addItems(items) { method listItems (line 45) | listItems() { FILE: app/common/RecordView.ts type InfoView (line 4) | interface InfoView { class RecordView (line 15) | class RecordView implements InfoView { method constructor (line 16) | public constructor(public data: TableDataAction, public index: number ... method get (line 19) | public get(colId: string): CellValue { method has (line 27) | public has(colId: string) { method keys (line 31) | public keys(): string[] { method toJSON (line 35) | public toJSON() { class EmptyRecordView (line 45) | class EmptyRecordView implements InfoView { method get (line 46) | public get(_colId: string): CellValue { return null; } method keys (line 47) | public keys(): string[] { return []; } method toJSON (line 48) | public toJSON() { return {}; } FILE: app/common/RefCountMap.ts type IRefCountSub (line 12) | interface IRefCountSub extends IDisposable { class RefCountMap (line 17) | class RefCountMap implements IDisposable { method constructor (line 28) | constructor(options: { method use (line 44) | public use(key: Key): IRefCountSub { method get (line 56) | public get(key: Key): Value | undefined { method purgeKey (line 64) | public purgeKey(key: Key): void { method dispose (line 73) | public dispose(): void { method testSetGracePeriodMs (line 85) | public testSetGracePeriodMs(ms: number): number { method _useKey (line 91) | private _useKey(key: Key): RefCountValue { method _releaseKey (line 104) | private _releaseKey(r: RefCountValue, key: Key): void { method _doDisposeKey (line 119) | private _doDisposeKey(key: Key): void { class RefCountValue (line 133) | class RefCountValue { method constructor (line 136) | constructor(public value: Value) {} method unsetTimeout (line 138) | public unsetTimeout() { FILE: app/common/RelativeDates.ts type IRelativeDateSpec (line 17) | type IRelativeDateSpec = IPeriod[]; type IPeriod (line 24) | interface IPeriod { constant CURRENT_DATE (line 30) | const CURRENT_DATE: IRelativeDateSpec = [{ quantity: 0, unit: "day" }]; function isRelativeBound (line 32) | function isRelativeBound(bound?: number | IRelativeDateSpec): bound is I... function relativeDateToUnixTimestamp (line 38) | function relativeDateToUnixTimestamp(bound: IRelativeDateSpec): number { function formatRelBounds (line 60) | function formatRelBounds(periods: IPeriod[]): string { function localTimestampToUTC (line 107) | function localTimestampToUTC(timestamp: number, timezone: string): number { function formatDay (line 111) | function formatDay(quantity: number, refUnit: IPeriod["unit"]): string { function formatReference (line 128) | function formatReference(period: IPeriod): string { function isEquivalentRelativeDate (line 147) | function isEquivalentRelativeDate(a: IPeriod | IPeriod[], b: IPeriod | I... function diffUnit (line 161) | function diffUnit(a: moment.Moment, b: moment.Moment, unit: "day" | "wee... FILE: app/common/RowFilterFunc.ts type RowFilterFunc (line 8) | type RowFilterFunc = (row: T) => boolean; function buildRowFilter (line 11) | function buildRowFilter( type RowValueFunc (line 20) | type RowValueFunc = (rowId: T) => CellValue; function getLinkingFilterFunc (line 23) | function getLinkingFilterFunc( FILE: app/common/SandboxInfo.ts type SandboxInfo (line 1) | interface SandboxInfo { FILE: app/common/ServiceAccountTypes.ts type ServiceAccountAllOptional (line 7) | interface ServiceAccountAllOptional { type ServiceAccountApiResponse (line 13) | interface ServiceAccountApiResponse { type ServiceAccountCreationResponse (line 22) | interface ServiceAccountCreationResponse extends ServiceAccountApiRespon... type PatchServiceAccount (line 26) | type PatchServiceAccount = ServiceAccountAllOptional; type PostServiceAccount (line 28) | interface PostServiceAccount extends ServiceAccountAllOptional { FILE: app/common/ShareAnnotator.ts type ShareLimitAnnotation (line 17) | interface ShareLimitAnnotation { type ShareAnnotation (line 25) | interface ShareAnnotation { type ShareAnnotations (line 34) | interface ShareAnnotations { type ShareAnnotatorOptions (line 39) | interface ShareAnnotatorOptions { constant EXCLUDED_EMAILS (line 46) | const EXCLUDED_EMAILS = new Set([ class ShareAnnotator (line 56) | class ShareAnnotator { method constructor (line 59) | constructor( method updateState (line 66) | public updateState(state: PermissionData) { method annotateChanges (line 70) | public annotateChanges(change: PermissionDelta): ShareAnnotations { FILE: app/common/ShareOptions.ts type ShareOptions (line 13) | interface ShareOptions { FILE: app/common/SortFunc.ts function choiceGetter (line 16) | function choiceGetter(getter: ColumnGetter, choices: string[]): ColumnGe... type Comparator (line 24) | type Comparator = (val1: any, val2: any) => number; function naturalCompare (line 31) | function naturalCompare(val1: any, val2: any) { function typedCompare (line 64) | function typedCompare(val1: any, val2: any): number { function _arrayCompare (line 86) | function _arrayCompare(val1: any[], val2: any[]): number { class SortFunc (line 102) | class SortFunc { method constructor (line 108) | constructor(private _getters: ColumnGetters) {} method updateSpec (line 110) | public updateSpec(sortSpec: Sort.SortSpec): void { method compare (line 145) | public compare(rowId1: number, rowId2: number): number { function orderBy (line 165) | function orderBy(keyFunc: (row: T) => any, options: { desc?: boolean ... FILE: app/common/SortSpec.ts type ColSpecDetails (line 25) | interface ColSpecDetails { type ColSpec (line 35) | type ColSpec = number | string; type ColRef (line 36) | type ColRef = number | string; type SortSpec (line 40) | type SortSpec = ColSpec[]; type Direction (line 41) | type Direction = 1 | -1; function hasOptions (line 55) | function hasOptions(colSpec: ColSpec | ColSpecDetails): boolean { function detailsToSpec (line 66) | function detailsToSpec(d: ColSpecDetails): ColSpec { function specToDetails (line 87) | function specToDetails(colSpec: ColSpec): ColSpecDetails { function maybeNumber (line 96) | function maybeNumber(colRef: string): ColRef { function parseColSpec (line 101) | function parseColSpec(colString: string): ColSpecDetails { function onlyDefined (line 121) | function onlyDefined>(obj: T): T { function getColRef (line 128) | function getColRef(colSpec: ColSpec) { function swap (line 138) | function swap(spec: SortSpec, colA: ColSpec, colB: ColSpec): SortSpec { function setColDirection (line 153) | function setColDirection(colSpec: ColSpec, dir: Direction): ColSpec { function createColSpec (line 168) | function createColSpec(colRef: ColRef, dir: Direction): ColSpec { function contains (line 179) | function contains(spec: SortSpec, colSpec: ColSpec, dir: Direction) { function containsOnly (line 184) | function containsOnly(spec: SortSpec, colSpec: ColSpec, dir: Direction) { function isAscending (line 191) | function isAscending(colSpec: ColSpec): boolean { function direction (line 198) | function direction(colSpec: ColSpec): Direction { function sameColumn (line 205) | function sameColumn(colSpec: ColSpec, colRef: ColSpec): boolean { function swapColRef (line 212) | function swapColRef(colSpec: ColSpec, colRef: ColRef): ColSpec { function findColIndex (line 226) | function findColIndex(sortSpec: SortSpec, colRef: ColSpec): number { function removeCol (line 230) | function removeCol(sortSpec: SortSpec, colRef: ColSpec): SortSpec { function findCol (line 237) | function findCol(sortSpec: SortSpec, colRef: ColSpec): ColSpec | undefin... function replace (line 248) | function replace(sortSpec: SortSpec, colRef: ColRef, newSpec: ColSpec | ... function flipCol (line 261) | function flipCol(colSpec: ColSpec): ColSpec { function flipSort (line 271) | function flipSort(spec: SortSpec, colSpec: ColSpec): SortSpec { function setSortDirection (line 281) | function setSortDirection(spec: SortSpec, colSpec: ColSpec, dir: Directi... function parseSortColRefs (line 292) | function parseSortColRefs(sortColRefs: string): SortSpec { function reorderSortRefs (line 304) | function reorderSortRefs(spec: SortSpec, colSpec: ColSpec, nextColSpec: ... function parseNames (line 327) | function parseNames(sort: string[], colIdToRef: Map): So... function VirtualId (line 359) | function VirtualId(symbol = "") { FILE: app/common/StringUnion.ts class StringUnionError (line 1) | class StringUnionError extends TypeError { method constructor (line 2) | constructor(errMessage: string, public readonly actual: string, public... FILE: app/common/TableData.ts type ColTypeMap (line 15) | interface ColTypeMap { [colId: string]: string; } type UIRowFunc (line 17) | type UIRowFunc = (rowId: UIRowId) => T; type ColData (line 19) | interface ColData { type SingleCell (line 26) | interface SingleCell { type SkippableRows (line 35) | interface SkippableRows { class TableData (line 49) | class TableData extends ActionDispatcher implements SkippableRows { method constructor (line 67) | constructor(tableId: string, tableData: TableDataAction | null, colTyp... method fetchData (line 94) | public fetchData(fetchFunc: (tableId: string) => Promise { method getKeepFunc (line 197) | public getKeepFunc(): undefined | UIRowFunc { method getSkipRowId (line 202) | public getSkipRowId(): number { method getRowIds (line 210) | public getRowIds(): readonly number[] { method getSortedRowIds (line 217) | public getSortedRowIds(): number[] { method mayHaveVersions (line 224) | public mayHaveVersions() { method getColIds (line 231) | public getColIds(): string[] { method getColValues (line 240) | public getColValues(colId: string): readonly CellValue[] | undefined { method getDistinctValues (line 249) | public getDistinctValues(colId: string, count: number = Infinity): Set... method getTableDataAction (line 260) | public getTableDataAction(desiredRowIds?: number[], method getBulkAddRecord (line 290) | public getBulkAddRecord(desiredRowIds?: number[]): BulkAddRecord { method getColType (line 300) | public getColType(colId: string): string | undefined { method getRecord (line 308) | public getRecord(rowId: number): undefined | RowRecord { method getRecords (line 321) | public getRecords(): RowRecord[] { method filterRowIds (line 331) | public filterRowIds(properties: { [key: string]: CellValue | undefined... method filterRecords (line 339) | public filterRecords(properties: { [key: string]: CellValue | undefine... method findRow (line 355) | public findRow(colId: string, colValue: CellValue): number { method findRecord (line 368) | public findRecord(colId: string, colValue: CellValue): RowRecord | und... method findMatchingRowId (line 384) | public findMatchingRowId(properties: { [key: string]: CellValue | unde... method receiveAction (line 397) | public receiveAction(action: DocAction): boolean { method onAddRecord (line 407) | protected onAddRecord(action: DocAction, tableId: string, rowId: numbe... method onBulkAddRecord (line 423) | protected onBulkAddRecord(action: DocAction, tableId: string, rowIds: ... method onRemoveRecord (line 450) | protected onRemoveRecord(action: DocAction, tableId: string, rowId: nu... method onUpdateRecord (line 466) | protected onUpdateRecord(action: DocAction, tableId: string, rowId: nu... method onBulkUpdateRecord (line 480) | protected onBulkUpdateRecord(action: DocAction, tableId: string, rowId... method onReplaceTableData (line 496) | protected onReplaceTableData(action: DocAction, tableId: string, rowId... method onAddColumn (line 500) | protected onAddColumn(action: DocAction, tableId: string, colId: strin... method onRemoveColumn (line 509) | protected onRemoveColumn(action: DocAction, tableId: string, colId: st... method onRenameColumn (line 516) | protected onRenameColumn(action: DocAction, tableId: string, oldColId:... method onModifyColumn (line 525) | protected onModifyColumn(action: DocAction, tableId: string, oldColId:... method onRenameTable (line 533) | protected onRenameTable(action: DocAction, oldTableId: string, newTabl... method onAddTable (line 537) | protected onAddTable(action: DocAction, tableId: string, columns: ColI... method onRemoveTable (line 541) | protected onRemoveTable(action: DocAction, tableId: string): void { method _filterRowIndices (line 546) | private _filterRowIndices(properties: { [key: string]: CellValue | und... type MetaRowRecord (line 564) | type MetaRowRecord = type MetaColId (line 568) | type MetaColId = keyof MetaRowRecord<... class MetaTableData (line 573) | class MetaTableData extends TableData { method constructor (line 574) | constructor(tableId: TableId, tableData: TableDataAction | null, colTy... method getValue (line 578) | public getValue>(rowId: number, colId... method getRecords (line 583) | public getRecords(): MetaRowRecord[] { method getRecord (line 587) | public getRecord(rowId: number): MetaRowRecord | undefined { method filterRecords (line 591) | public filterRecords(properties: Partial>): Met... method findMatchingRowId (line 595) | public findMatchingRowId(properties: Partial>):... method getRowPropFunc (line 599) | public getRowPropFunc>( method getColValues (line 605) | public getColValues>( method findRow (line 611) | public findRow>( method findRecord (line 617) | public findRecord>( function reassignArray (line 624) | function reassignArray(targetArray: T[], sourceArray: T[]): void { FILE: app/common/TabularDiff.ts type CellDelta (line 16) | type CellDelta = [[any] | "?" | null, [any] | "?" | null]; type RowChangeType (line 19) | type RowChangeType = string; type TabularDiffRow (line 21) | interface TabularDiffRow { type TabularDiff (line 28) | interface TabularDiff { type TabularDiffs (line 34) | interface TabularDiffs { FILE: app/common/Telemetry.ts type Level (line 6) | enum Level { type TelemetryContracts (line 1849) | type TelemetryContracts = Record; type TelemetryEvent (line 1921) | type TelemetryEvent = typeof TelemetryEvents.type; type TelemetryEventCategory (line 1923) | type TelemetryEventCategory = type TelemetryEventContract (line 1937) | interface TelemetryEventContract { type TelemetryRetentionPeriod (line 1945) | type TelemetryRetentionPeriod = "short" | "indefinitely"; type MetadataContract (line 1947) | interface MetadataContract { type TelemetryMetadataByLevel (line 1953) | type TelemetryMetadataByLevel = Partial; type TelemetryLevel (line 1958) | type TelemetryLevel = typeof TelemetryLevels.type; type TelemetryMetadata (line 1960) | type TelemetryMetadata = Record; constant TELEMETRY_TEMPLATE_SIGNUP_COOKIE_NAME (line 1968) | const TELEMETRY_TEMPLATE_SIGNUP_COOKIE_NAME = "gr_template_signup_trk"; function buildTelemetryEventChecker (line 1976) | function buildTelemetryEventChecker(telemetryLevel: TelemetryLevel) { function hasTimezone (line 2047) | function hasTimezone(isoDateString: string) { type TelemetryEventChecker (line 2052) | type TelemetryEventChecker = (event: TelemetryEvent, metadata?: Telemetr... FILE: app/common/TestState.ts type TestState (line 1) | interface TestState { FILE: app/common/ThemePrefs.ts type ThemePrefs (line 3) | interface ThemePrefs { type ThemeAppearance (line 13) | type ThemeAppearance = typeof themeAppearances[number]; type ThemeNameOrTokens (line 15) | type ThemeNameOrTokens = ThemeName | ThemeTokens; type ThemeName (line 18) | type ThemeName = typeof themeNames[number]; function getDefaultThemePrefs (line 26) | function getDefaultThemePrefs(): ThemePrefs { type Theme (line 40) | interface Theme { type ThemeWithCssVars (line 46) | interface ThemeWithCssVars { type Token (line 54) | type Token = string | CssCustomProp; type SpecificThemeTokens (line 730) | interface SpecificThemeTokens { type BaseThemeTokens (line 994) | interface BaseThemeTokens { type ThemeTokens (line 1327) | interface ThemeTokens extends FILE: app/common/Themes.ts constant THEMES (line 6) | const THEMES: Readonly> = { function getThemeTokens (line 12) | function getThemeTokens(themeName: ThemeName): ThemeTokens { function getThemeBackgroundSnippet (line 32) | function getThemeBackgroundSnippet() { FILE: app/common/TimeQuery.ts type ResultRow (line 21) | interface ResultRow { type ITimeData (line 25) | interface ITimeData { class TimeCursor (line 31) | class TimeCursor { method constructor (line 34) | constructor(public db: ITimeData) { method prepend (line 42) | public prepend(prevSummary: ActionSummary) { method append (line 52) | public append(nextSummary: ActionSummary) { type ResultRows (line 62) | interface ResultRows { class TimeQuery (line 72) | class TimeQuery { method constructor (line 76) | constructor(public tc: TimeCursor, method reset (line 82) | public reset(tableId: string, colIds: string[] | "*", rowIds?: number[... method update (line 94) | public async update(): Promise { method one (line 177) | public one(args: { [name: string]: any }): ResultRow { method all (line 186) | public all(args?: { [name: string]: any }): ResultRow[] { class TimeLayout (line 196) | class TimeLayout { method constructor (line 203) | constructor(public tc: TimeCursor) { method update (line 213) | public async update() { method getColumnOrder (line 221) | public getColumnOrder(tableId: string): string[] { method getTableName (line 230) | public getTableName(tableId: string): string { FILE: app/common/Triggers.ts type WebhookSubscribeCollection (line 1) | interface WebhookSubscribeCollection { type Webhook (line 5) | interface Webhook { type WebhookFields (line 9) | interface WebhookFields { type WebhookBatchStatus (line 23) | type WebhookBatchStatus = "success" | "failure" | "rejected"; type WebhookStatus (line 24) | type WebhookStatus = "idle" | "sending" | "retrying" | "postponed" | "er... type WebHookSecret (line 27) | interface WebHookSecret { type WebhookSubscribe (line 35) | interface WebhookSubscribe { type WebhookSummaryCollection (line 47) | interface WebhookSummaryCollection { type WebhookSummary (line 50) | interface WebhookSummary { type WebhookUpdate (line 68) | interface WebhookUpdate { type WebhookPatch (line 75) | interface WebhookPatch { type WebhookUsage (line 87) | interface WebhookUsage { type TriggerAction (line 111) | type TriggerAction = WebhookAction | EmailAction; type WebhookAction (line 113) | interface WebhookAction { type EmailAction (line 120) | interface EmailAction { FILE: app/common/User.ts type UserType (line 8) | type UserType = "login" | "service"; type UserInfo (line 13) | interface UserInfo { class User (line 36) | class User implements UserInfo { method constructor (line 49) | constructor(info: Record = {}) { method toJSON (line 59) | public toJSON() { method toUserInfo (line 77) | public toUserInfo(): UserInfo { method _toObject (line 89) | private _toObject(mapValue: (value: unknown) => unknown) { FILE: app/common/UserAPI.ts constant ANONYMOUS_USER_EMAIL (line 35) | const ANONYMOUS_USER_EMAIL = "anon@getgrist.com"; constant EVERYONE_EMAIL (line 38) | const EVERYONE_EMAIL = "everyone@getgrist.com"; constant PREVIEWER_EMAIL (line 41) | const PREVIEWER_EMAIL = "thumbnail@getgrist.com"; constant NEW_DOCUMENT_CODE (line 44) | const NEW_DOCUMENT_CODE = "new"; type CommonProperties (line 47) | interface CommonProperties { type OrganizationProperties (line 57) | interface OrganizationProperties extends CommonProperties { type OrganizationWithoutAccessInfo (line 68) | interface OrganizationWithoutAccessInfo extends OrganizationProperties { type Organization (line 76) | interface Organization extends OrganizationWithoutAccessInfo { type BillingAccount (line 81) | interface BillingAccount { type UploadType (line 96) | type UploadType = string | Blob | Buffer; function getOrgName (line 101) | function getOrgName(org: Organization): string { function isTemplatesOrg (line 109) | function isTemplatesOrg(org: { domain: Organization["domain"] } | null):... type WorkspaceProperties (line 116) | type WorkspaceProperties = CommonProperties; type Workspace (line 119) | interface Workspace extends WorkspaceProperties { constant DOCTYPE_NORMAL (line 135) | const DOCTYPE_NORMAL = null; constant DOCTYPE_TEMPLATE (line 136) | const DOCTYPE_TEMPLATE = "template"; constant DOCTYPE_TUTORIAL (line 137) | const DOCTYPE_TUTORIAL = "tutorial"; type DocumentType (line 139) | type DocumentType = typeof DOCTYPE_NORMAL | typeof DOCTYPE_TEMPLATE | ty... type DocumentOptions (line 144) | interface DocumentOptions { type TutorialMetadata (line 157) | interface TutorialMetadata { type DocumentAppearance (line 162) | interface DocumentAppearance { type DocumentIcon (line 166) | interface DocumentIcon { type DocumentProperties (line 172) | interface DocumentProperties extends CommonProperties { type ProposedChanges (line 180) | interface ProposedChanges { type Document (line 194) | interface Document extends DocumentProperties { type Fork (line 202) | interface Fork { type ProposalComparison (line 209) | interface ProposalComparison { type ProposalStatus (line 213) | interface ProposalStatus { type Proposal (line 217) | interface Proposal { type UserOptions (line 235) | interface UserOptions { type PermissionDelta (line 250) | interface PermissionDelta { type PermissionData (line 258) | interface PermissionData { type ManagerDelta (line 268) | interface ManagerDelta { type UserAccess (line 277) | interface UserAccess { type UserAccessData (line 290) | interface UserAccessData extends UserAccess { function getRealAccess (line 305) | function getRealAccess( function getUserRoleText (line 318) | function getUserRoleText(user: UserAccessData) { type ExtendedUser (line 322) | interface ExtendedUser extends FullUser { type ActiveSessionInfo (line 327) | interface ActiveSessionInfo { type OrgError (line 333) | interface OrgError { type DocReplacementOptions (line 343) | interface DocReplacementOptions { type DocSnapshot (line 364) | interface DocSnapshot { type DocSnapshots (line 373) | interface DocSnapshots { type CopyDocOptions (line 377) | interface CopyDocOptions { type RenameDocOptions (line 382) | interface RenameDocOptions { type UserAPI (line 386) | interface UserAPI { type DownloadDocParams (line 471) | interface DownloadDocParams { type CreatableArchiveFormats (line 479) | type CreatableArchiveFormats = typeof CreatableArchiveFormats.type; type AttachmentsArchiveParams (line 481) | interface AttachmentsArchiveParams { type ArchiveUploadResult (line 485) | interface ArchiveUploadResult { type GetRowsParams (line 491) | interface GetRowsParams { type SqlResult (line 496) | interface SqlResult extends TableRecordValuesWithoutIds { type DocAttachmentsLocation (line 503) | type DocAttachmentsLocation = typeof DocAttachmentsLocation.type; type ExpandTableOption (line 506) | type ExpandTableOption = typeof ExpandTableOption.type; type GetTablesParams (line 508) | interface GetTablesParams { type DocAPI (line 517) | interface DocAPI { type DocWorkerAPI (line 631) | interface DocWorkerAPI { class UserAPIImpl (line 639) | class UserAPIImpl extends BaseAPI implements UserAPI { method constructor (line 640) | constructor(private _homeUrl: string, private _options: IOptions = {}) { method forRemoved (line 644) | public forRemoved(): UserAPI { method getSessionActive (line 649) | public async getSessionActive(): Promise { method setSessionActive (line 653) | public async setSessionActive(email: string, org?: string): Promise { method getWorkspace (line 666) | public async getWorkspace(workspaceId: number): Promise { method getOrg (line 670) | public async getOrg(orgId: number | string): Promise { method getOrgWorkspaces (line 674) | public async getOrgWorkspaces(orgId: number | string, includeSupport =... method getOrgUsageSummary (line 679) | public async getOrgUsageSummary(orgId: number | string): Promise { method getTemplate (line 687) | public async getTemplate(docId: string): Promise { method getWidgets (line 691) | public async getWidgets(): Promise { method getDoc (line 695) | public async getDoc(docId: string): Promise { method newOrg (line 699) | public async newOrg(props: Partial): Promise, orgId: ... method newDoc (line 713) | public async newDoc(props: Partial, workspaceId: n... method newUnsavedDoc (line 720) | public async newUnsavedDoc(options: { timezone?: string } = {}): Promi... method copyDoc (line 727) | public async copyDoc( method renameOrg (line 742) | public async renameOrg(orgId: number | string, name: string): Promise<... method renameWorkspace (line 749) | public async renameWorkspace(workspaceId: number, name: string): Promi... method renameDoc (line 756) | public async renameDoc(docId: string, name: string, { icon }: RenameDo... method updateOrg (line 763) | public async updateOrg(orgId: number | string, props: Partial { method deleteWorkspace (line 781) | public async deleteWorkspace(workspaceId: number): Promise { method softDeleteWorkspace (line 785) | public async softDeleteWorkspace(workspaceId: number): Promise { method undeleteWorkspace (line 789) | public async undeleteWorkspace(workspaceId: number): Promise { method deleteDoc (line 793) | public async deleteDoc(docId: string): Promise { method softDeleteDoc (line 797) | public async softDeleteDoc(docId: string): Promise { method undeleteDoc (line 801) | public async undeleteDoc(docId: string): Promise { method disableDoc (line 805) | public async disableDoc(docId: string): Promise { method enableDoc (line 809) | public async enableDoc(docId: string): Promise { method updateOrgPermissions (line 813) | public async updateOrgPermissions(orgId: number | string, delta: Permi... method updateWorkspacePermissions (line 820) | public async updateWorkspacePermissions(workspaceId: number, delta: Pe... method updateDocPermissions (line 827) | public async updateDocPermissions(docId: string, delta: PermissionDelt... method getOrgAccess (line 834) | public async getOrgAccess(orgId: number | string): Promise { method pinDoc (line 846) | public async pinDoc(docId: string): Promise { method unpinDoc (line 852) | public async unpinDoc(docId: string): Promise { method moveDoc (line 858) | public async moveDoc(docId: string, workspaceId: number): Promise { method getUserProfile (line 865) | public async getUserProfile(): Promise { method updateUserName (line 869) | public async updateUserName(name: string): Promise { method updateUserLocale (line 876) | public async updateUserLocale(locale: string | null): Promise { method updateAllowGoogleLogin (line 883) | public async updateAllowGoogleLogin(allowGoogleLogin: boolean): Promis... method updateIsConsultant (line 890) | public async updateIsConsultant(userId: number, isConsultant: boolean)... method disableUser (line 897) | public async disableUser(userId: number): Promise { method enableUser (line 903) | public async enableUser(userId: number): Promise { method getWorker (line 909) | public async getWorker(key: string): Promise { method getWorkerFull (line 914) | public async getWorkerFull(key: string): Promise { method getBillingAPI (line 927) | public getBillingAPI(): BillingAPI { method getDocAPI (line 931) | public getDocAPI(docId: string): DocAPI { method fetchApiKey (line 935) | public async fetchApiKey(): Promise { method createApiKey (line 940) | public async createApiKey(): Promise { method deleteApiKey (line 947) | public async deleteApiKey(): Promise { method getTable (line 955) | public async getTable(docId: string, tableName: string): Promise { method closeOrg (line 997) | public async closeOrg() { method getBaseUrl (line 1001) | public getBaseUrl(): string { return this._url; } method _url (line 1005) | private get _url(): string { method _urlWithOrg (line 1009) | private _urlWithOrg(base: string): string { class DocWorkerAPIImpl (line 1014) | class DocWorkerAPIImpl extends BaseAPI implements DocWorkerAPI { method constructor (line 1015) | constructor(public readonly url: string, _options: IOptions = {}) { method importDocToWorkspace (line 1019) | public async importDocToWorkspace(uploadId: number, workspaceId: numbe... method upload (line 1027) | public async upload(material: UploadType, filename?: string): Promise<... method downloadDoc (line 1041) | public async downloadDoc(docId: string, template: boolean = false): Pr... method copyDoc (line 1050) | public async copyDoc(docId: string, template: boolean = false, name?: ... class DocAPIImpl (line 1065) | class DocAPIImpl extends BaseAPI implements DocAPI { method constructor (line 1068) | constructor(url: string, public readonly docId: string, options: IOpti... method getBaseUrl (line 1073) | public getBaseUrl(): string { return this._url; } method getTables (line 1075) | public async getTables(options?: GetTablesParams): Promise { method getRows (line 1083) | public async getRows(tableId: string, options?: GetRowsParams): Promis... method getRecords (line 1087) | public async getRecords(tableId: string, options?: GetRowsParams): Pro... method sql (line 1092) | public async sql(sql: string, args?: any[]): Promise { method updateRows (line 1102) | public async updateRows(tableId: string, changes: TableColValues): Pro... method addRows (line 1123) | public async addRows(tableId: string, additions: BulkColValues): Promi... method removeRows (line 1130) | public async removeRows(tableId: string, removals: number[]): Promise<... method fork (line 1137) | public async fork(): Promise { method replace (line 1143) | public async replace(source: DocReplacementOptions): Promise { method getSnapshots (line 1150) | public async getSnapshots(raw?: boolean): Promise { method removeSnapshots (line 1154) | public async removeSnapshots(snapshotIds: string[] | "unlisted" | "pas... method getStates (line 1162) | public async getStates(): Promise { method getUsersForViewAs (line 1166) | public async getUsersForViewAs(): Promise { method getWebhooks (line 1170) | public async getWebhooks(): Promise { method addWebhook (line 1174) | public async addWebhook(webhook: WebhookSubscribe & { tableId: string ... method updateWebhook (line 1183) | public async updateWebhook(webhook: WebhookUpdate): Promise { method removeWebhook (line 1190) | public removeWebhook(webhookId: string, tableId: string) { method flushWebhooks (line 1199) | public async flushWebhooks(): Promise { method flushWebhook (line 1205) | public async flushWebhook(id: string): Promise { method forceReload (line 1211) | public async forceReload(): Promise { method recover (line 1217) | public async recover(recoveryMode: boolean): Promise { method compareDoc (line 1224) | public async compareDoc( method copyDoc (line 1242) | public async copyDoc(workspaceId: number, options: CopyDocOptions): Pr... method compareVersion (line 1250) | public async compareVersion(leftHash: string, rightHash: string): Prom... method getDownloadUrl (line 1257) | public getDownloadUrl({ template, removeHistory}: { template: boolean,... method getDownloadXlsxUrl (line 1261) | public getDownloadXlsxUrl(params: DownloadDocParams) { method getDownloadCsvUrl (line 1265) | public getDownloadCsvUrl(params: DownloadDocParams) { method getDownloadTsvUrl (line 1270) | public getDownloadTsvUrl(params: DownloadDocParams) { method getDownloadDsvUrl (line 1274) | public getDownloadDsvUrl(params: DownloadDocParams) { method getDownloadTableSchemaUrl (line 1278) | public getDownloadTableSchemaUrl(params: DownloadDocParams) { method getDownloadAttachmentsArchiveUrl (line 1283) | public getDownloadAttachmentsArchiveUrl(params: AttachmentsArchivePara... method sendToDrive (line 1287) | public async sendToDrive(code: string, title: string): Promise<{ url: ... method uploadAttachment (line 1294) | public async uploadAttachment(value: string | Blob, filename?: string)... method uploadAttachmentArchive (line 1308) | public async uploadAttachmentArchive(archive: string | Blob, filename?... method getAssistance (line 1324) | public async getAssistance( method timing (line 1333) | public async timing(): Promise { method startTiming (line 1337) | public async startTiming(): Promise { method stopTiming (line 1341) | public async stopTiming(): Promise { method transferAllAttachments (line 1345) | public async transferAllAttachments(): Promise { method getAttachmentTransferStatus (line 1349) | public async getAttachmentTransferStatus(): Promise { method getAttachmentStores (line 1357) | public async getAttachmentStores(): Promise<{ stores: AttachmentStoreD... method setAttachmentStore (line 1361) | public async setAttachmentStore(type: AttachmentStore): Promise { method makeProposal (line 1368) | public async makeProposal(options?: { method applyProposal (line 1377) | public async applyProposal(proposalId: number) { method applyUserActions (line 1383) | public async applyUserActions(actions: UserAction[]): Promise boolean; class BaseFormatter (line 69) | class BaseFormatter { method constructor (line 72) | constructor(public type: string, public widgetOpts: FormatOptions, pub... method formatAny (line 81) | public formatAny(value: any, translate?: (val: string) => string): str... method format (line 89) | protected format(value: any, _translate?: (val: string) => string): st... class BoolFormatter (line 94) | class BoolFormatter extends BaseFormatter { method format (line 95) | public format(value: boolean | 0 | 1, translate?: (val: string) => str... class AnyFormatter (line 103) | class AnyFormatter extends BaseFormatter { method format (line 104) | public format(value: any): string { class NumericFormatter (line 109) | class NumericFormatter extends BaseFormatter { method constructor (line 113) | constructor(type: string, options: NumberFormatOptions, docSettings: D... method format (line 119) | public format(value: any): string { method _formatPlain (line 123) | public _formatPlain(value: number): string { method _formatParens (line 127) | public _formatParens(value: number): string { class IntFormatter (line 135) | class IntFormatter extends NumericFormatter { method constructor (line 136) | constructor(type: string, opts: FormatOptions, docSettings: DocumentSe... type DateFormatOptions (line 141) | interface DateFormatOptions { class DateFormatter (line 145) | class DateFormatter extends BaseFormatter { method constructor (line 149) | constructor(type: string, widgetOpts: DateFormatOptions, docSettings: ... method format (line 170) | public format(value: any): string { type DateTimeFormatOptions (line 189) | interface DateTimeFormatOptions extends DateFormatOptions { class DateTimeFormatter (line 193) | class DateTimeFormatter extends DateFormatter { method constructor (line 194) | constructor(type: string, widgetOpts: DateTimeFormatOptions, docSettin... class RowIdFormatter (line 204) | class RowIdFormatter extends BaseFormatter { method format (line 207) | public format(value: number): string { type ReferenceFormatOptions (line 212) | interface ReferenceFormatOptions { class ReferenceFormatter (line 216) | class ReferenceFormatter extends BaseFormatter { method constructor (line 220) | constructor(type: string, widgetOpts: ReferenceFormatOptions, docSetti... method formatAny (line 228) | public formatAny(value: any): string { method formatNotInvalidRef (line 253) | protected formatNotInvalidRef(value: any) { class ReferenceListFormatter (line 258) | class ReferenceListFormatter extends ReferenceFormatter { method formatNotInvalidRef (line 259) | protected formatNotInvalidRef(value: any): string { function createFormatter (line 292) | function createFormatter(type: string, widgetOpts: FormatOptions, docSet... type FullFormatterArgs (line 297) | interface FullFormatterArgs { function createFullFormatterFromDocData (line 314) | function createFullFormatterFromDocData( function createFullFormatterRaw (line 331) | function createFullFormatterRaw(args: FullFormatterArgs) { function createVisibleColFormatterRaw (line 337) | function createVisibleColFormatterRaw( FILE: app/common/ValueGuesser.ts type GuessedColInfo (line 15) | interface GuessedColInfo { type GuessResult (line 20) | interface GuessResult { type ColMetadata (line 25) | type ColMetadata = Partial>; type GuessColMetadata (line 27) | interface GuessColMetadata { method guess (line 52) | public guess(values: (string | null)[], docSettings: DocumentSettings): ... method allowBlank (line 85) | protected allowBlank(): boolean { method isEqualFormatted (line 89) | protected isEqualFormatted(formatted1: string, formatted2: string): bool... class BoolGuesser (line 94) | class BoolGuesser extends ValueGuesser { method colInfo (line 95) | public colInfo(): GuessedColInfo { method parse (line 99) | public parse(value: string): boolean | string { method allowBlank (line 112) | protected allowBlank(): boolean { class NumericGuesser (line 117) | class NumericGuesser extends ValueGuesser { method constructor (line 119) | constructor(docSettings: DocumentSettings, private _options: NumberFor... method colInfo (line 124) | public colInfo(): GuessedColInfo { method parse (line 132) | public parse(value: string): number | string { method isEqualFormatted (line 136) | protected isEqualFormatted(formatted1: string, formatted2: string): bo... class DateGuesser (line 145) | class DateGuesser extends ValueGuesser { method constructor (line 148) | constructor(private _format: string, private _tz: string) { method colInfo (line 152) | public colInfo(): GuessedColInfo { method parse (line 166) | public parse(value: string): number | string { function guessColInfoWithDocData (line 172) | function guessColInfoWithDocData(values: (string | null)[], docData: Doc... function guessColInfo (line 176) | function guessColInfo( function guessColInfoForImports (line 202) | function guessColInfoForImports(values: CellValue[], docData: DocData): ... FILE: app/common/ValueParser.ts class ValueParser (line 19) | class ValueParser { method constructor (line 20) | constructor(public type: string, public widgetOpts: FormatOptions, pub... method cleanParse (line 23) | public cleanParse(value: string): any { method parse (line 30) | public parse(value: string): any { class IdentityParser (line 35) | class IdentityParser extends ValueParser { class NumericParser (line 38) | class NumericParser extends ValueParser { method constructor (line 41) | constructor(type: string, options: NumberFormatOptions, docSettings: D... method parse (line 46) | public parse(value: string): number | null { class DateParser (line 51) | class DateParser extends ValueParser { method parse (line 52) | public parse(value: string): any { class DateTimeParser (line 57) | class DateTimeParser extends ValueParser { method constructor (line 58) | constructor(type: string, widgetOpts: DateTimeFormatOptions, docSettin... method parse (line 64) | public parse(value: string): any { class ChoiceListParser (line 69) | class ChoiceListParser extends ValueParser { method cleanParse (line 70) | public cleanParse(value: string): string[] | null { method _parseJson (line 83) | private _parseJson(value: string): string[] | undefined { method _parseCsv (line 95) | private _parseCsv(value: string): string[] { type ReferenceParsingOptions (line 109) | interface ReferenceParsingOptions { class ReferenceParser (line 119) | class ReferenceParser extends ValueParser { method parse (line 130) | public parse(raw: string): any { method lookup (line 135) | public lookup(value: any, raw: string): any { class ReferenceListParser (line 162) | class ReferenceListParser extends ReferenceParser { method parse (line 163) | public parse(raw: string): any { function createParserRaw (line 230) | function createParserRaw( function createParser (line 244) | function createParser( function createParserOrFormatterArguments (line 258) | function createParserOrFormatterArguments( function createParserOrFormatterArgumentsRaw (line 276) | function createParserOrFormatterArgumentsRaw( function parseColValues (line 300) | function parseColValues( function parseUserAction (line 341) | function parseUserAction(ua: UserAction, docData: DocData): UserAction { function _parseUserActionColValues (line 367) | function _parseUserActionColValues(ua: UserAction, docData: DocData, par... FILE: app/common/WidgetOptions.ts type WidgetOptions (line 3) | interface WidgetOptions extends NumberFormatOptions { FILE: app/common/airtable/AirtableAPI.ts type AirtableAPIOptions (line 11) | interface AirtableAPIOptions { class AirtableAPI (line 25) | class AirtableAPI { method constructor (line 29) | constructor(_options: AirtableAPIOptions) { method base (line 37) | public base(baseId: string) { method listBases (line 41) | public async listBases(): Promise { method getBaseSchema (line 49) | public async getBaseSchema(baseId: string): Promise { class AirtableAPIError (line 61) | class AirtableAPIError extends Error { method constructor (line 62) | constructor(message: string) { type ListAirtableRecordsResult (line 67) | interface ListAirtableRecordsResult { type FetchNextPageFunc (line 73) | type FetchNextPageFunc = () => Promise; function listRecords (line 89) | function listRecords( FILE: app/common/airtable/AirtableAPITypes.ts type AirtableBaseId (line 2) | type AirtableBaseId = string; type AirtableTableId (line 3) | type AirtableTableId = string; type AirtableFieldId (line 4) | type AirtableFieldId = string; type AirtableFieldName (line 5) | type AirtableFieldName = string; type AirtableBaseSchema (line 8) | interface AirtableBaseSchema { type AirtableTableSchema (line 12) | interface AirtableTableSchema { type AirtableFieldSchema (line 19) | interface AirtableFieldSchema { type AirtableChoiceValue (line 26) | interface AirtableChoiceValue { type AirtableListBasesResponse (line 32) | interface AirtableListBasesResponse { FILE: app/common/airtable/AirtableAttachmentTracker.ts type AttachmentsByColumnId (line 12) | type AttachmentsByColumnId = Record; type Attachment (line 14) | interface Attachment { type AttachmentsForRecord (line 20) | interface AttachmentsForRecord { class AttachmentTracker (line 25) | class AttachmentTracker { method addTable (line 28) | public addTable(gristTableId: string, columnIdsToUpdate: string[]) { method getTables (line 34) | public getTables(): TableAttachmentTracker[] { method getRemainingAttachmentsCount (line 38) | public getRemainingAttachmentsCount() { class TableAttachmentTracker (line 47) | class TableAttachmentTracker { method constructor (line 50) | public constructor(private _tableId: string, private _columnIds: strin... method addRecord (line 53) | public addRecord(attachmentsForRecord: AttachmentsForRecord) { method importAttachments (line 57) | public async importAttachments( method getRemainingAttachmentsCount (line 116) | public getRemainingAttachmentsCount() { method _uploadAttachment (line 128) | private async _uploadAttachment( function isAttachmentField (line 152) | function isAttachmentField({ type }: AirtableFieldSchema) { function extractAttachmentsFromRecordField (line 156) | function extractAttachmentsFromRecordField( FILE: app/common/airtable/AirtableCrosswalk.ts type GristTableId (line 14) | type GristTableId = string; type AirtableBaseSchemaCrosswalk (line 16) | interface AirtableBaseSchemaCrosswalk { type AirtableTableCrosswalk (line 20) | interface AirtableTableCrosswalk { type AirtableFieldMappingInfo (line 28) | interface AirtableFieldMappingInfo { function createAirtableBaseToGristDocCrosswalk (line 40) | function createAirtableBaseToGristDocCrosswalk( function createAirtableTableToGristTableCrosswalk (line 76) | function createAirtableTableToGristTableCrosswalk( function findGristColumnForField (line 104) | function findGristColumnForField(field: AirtableFieldSchema, gristSchema... type AirtableCrosswalkWarning (line 108) | interface AirtableCrosswalkWarning { class MissingGristTableWarning (line 112) | class MissingGristTableWarning implements AirtableCrosswalkWarning { method constructor (line 115) | constructor(public readonly tableId: AirtableTableId) { class NoDestinationColumnWarning (line 120) | class NoDestinationColumnWarning implements AirtableCrosswalkWarning { method constructor (line 123) | constructor(public readonly gristTableId: string, public readonly fiel... FILE: app/common/airtable/AirtableDataImporter.ts function importDataFromAirtableBase (line 20) | async function importDataFromAirtableBase( type AirtableFieldValueConverter (line 161) | type AirtableFieldValueConverter = (fieldSchema: AirtableFieldSchema, va... method identity (line 163) | identity(fieldSchema, value) { method aiText (line 166) | aiText(fieldSchema, aiTextState) { method createdBy (line 169) | createdBy(fieldSchema, collaborator) { method count (line 172) | count(fieldSchema, collaborator) { method formula (line 175) | formula(fieldSchema, collaborator) { method lastModifiedBy (line 178) | lastModifiedBy(fieldSchema, collaborator) { method lookup (line 181) | lookup(fieldSchema, value) { method multipleCollaborators (line 185) | multipleCollaborators(fieldSchema, collaborators) { method singleCollaborator (line 190) | singleCollaborator(fieldSchema, collaborator) { method multipleSelects (line 193) | multipleSelects(fieldSchema, choices?: string[]) { method rollup (line 197) | rollup(fieldSchema, collaborator) { FILE: app/common/airtable/AirtableDataImporterTypes.ts type AirtableDataImportParams (line 9) | interface AirtableDataImportParams { type AirtableImportProgress (line 30) | interface AirtableImportProgress { type ListRecordsFunc (line 38) | type ListRecordsFunc = (tableId: AirtableTableId) => Promise Promi... type UpdateRowsFunc (line 48) | type UpdateRowsFunc = (tableId: GristTableId, rows: TableColValues) => P... type UploadAttachmentFunc (line 53) | type UploadAttachmentFunc = (value: string | Blob, filename?: string) =>... FILE: app/common/airtable/AirtableReferenceTracker.ts type RefValuesByColumnId (line 8) | type RefValuesByColumnId = Record; type UnresolvedRefsForRecord (line 10) | interface UnresolvedRefsForRecord { class ReferenceTracker (line 15) | class ReferenceTracker { method addRecordIdMapping (line 22) | public addRecordIdMapping(originalRecordId: string, gristRecordId: num... method resolve (line 26) | public resolve(originalRecordId: string): number | undefined { method addTable (line 30) | public addTable(gristTableId: string, columnIdsToUpdate: string[]) { method getTables (line 36) | public getTables(): TableReferenceTracker[] { class TableReferenceTracker (line 42) | class TableReferenceTracker { method constructor (line 47) | public constructor(private _parent: ReferenceTracker, private _tableId... method addUnresolvedRecord (line 50) | public addUnresolvedRecord(unresolvedRefsForRecord: UnresolvedRefsForR... method bulkUpdateRowsWithUnresolvedReferences (line 54) | public async bulkUpdateRowsWithUnresolvedReferences( function isRefField (line 90) | function isRefField(field: AirtableFieldSchema) { function extractRefFromRecordField (line 94) | function extractRefFromRecordField( function createEmptyBulkColValues (line 104) | function createEmptyBulkColValues(columnIds: string[]): BulkColValues { FILE: app/common/airtable/AirtableSchemaImporter.ts function gristDocSchemaFromAirtableSchema (line 26) | function gristDocSchemaFromAirtableSchema( function convertAirtableTableFieldsToColumnSchemas (line 49) | function convertAirtableTableFieldsToColumnSchemas( function convertAirtableFieldToColumnSchema (line 69) | function convertAirtableFieldToColumnSchema( function findTableIdForField (line 87) | function findTableIdForField(baseSchema: AirtableBaseSchema, fieldId: st... function createAirtableIdColumnSchema (line 97) | function createAirtableIdColumnSchema(): ColumnImportSchema { type AirtableFieldMapperParams (line 107) | interface AirtableFieldMapperParams { type AirtableFieldMapperResult (line 113) | interface AirtableFieldMapperResult { type AirtableFieldMapper (line 118) | type AirtableFieldMapper = (params: AirtableFieldMapperParams) => Airtab... method aiText (line 120) | aiText({ field }) { method autoNumber (line 130) | autoNumber({ field, table }) { method checkbox (line 148) | checkbox({ field }) { method count (line 158) | count({ field, table }) { method createdBy (line 180) | createdBy({ field }) { method createdTime (line 190) | createdTime({ field }) { method currency (line 202) | currency({ field }) { method date (line 218) | date({ field }) { method dateTime (line 233) | dateTime({ field }) { method duration (line 251) | duration({ field, table }) { method email (line 262) | email({ field }) { method formula (line 272) | formula({ field }) { method lastModifiedBy (line 290) | lastModifiedBy({ field }) { method lastModifiedTime (line 302) | lastModifiedTime({ field }) { method multilineText (line 320) | multilineText({ field }) { method multipleAttachments (line 330) | multipleAttachments({ field }) { method multipleCollaborators (line 340) | multipleCollaborators({ field }) { method multipleLookupValues (line 351) | multipleLookupValues({ field, table, getTableIdForField }) { method multipleRecordLinks (line 377) | multipleRecordLinks({ field }) { method multipleSelects (line 390) | multipleSelects({ field }) { method number (line 405) | number({ field }) { method percent (line 418) | percent({ field }) { method phoneNumber (line 432) | phoneNumber({ field }) { method rating (line 442) | rating({ field }) { method richText (line 453) | richText({ field }) { method rollup (line 466) | rollup({ field, table, getTableIdForField }) { method singleCollaborator (line 493) | singleCollaborator({ field }) { method singleLineText (line 503) | singleLineText({ field }) { method singleSelect (line 516) | singleSelect({ field }) { method url (line 531) | url({ field }) { class UnsupportedFieldTypeWarning (line 546) | class UnsupportedFieldTypeWarning implements DocSchemaImportWarning { method constructor (line 549) | constructor(fieldType: string, fieldName: string, public readonly ref:... class AutoNumberLimitationWarning (line 554) | class AutoNumberLimitationWarning implements DocSchemaImportWarning { method constructor (line 557) | constructor(fieldName: string, public readonly ref: OriginalTableRef) { class DurationFormatWarning (line 562) | class DurationFormatWarning implements DocSchemaImportWarning { method constructor (line 565) | constructor(fieldName: string, public readonly ref: OriginalTableRef) { class RollupLimitationWarning (line 570) | class RollupLimitationWarning implements DocSchemaImportWarning { method constructor (line 573) | constructor(fieldName: string, public readonly ref: OriginalTableRef) { class CountLimitationWarning (line 578) | class CountLimitationWarning implements DocSchemaImportWarning { method constructor (line 581) | constructor(fieldName: string, public readonly ref: OriginalTableRef) { FILE: app/common/asyncIterators.ts function toArray (line 19) | async function toArray(it: AsyncIterableIterator): Promise { FILE: app/common/csvFormat.ts function csvEncodeRow (line 17) | function csvEncodeRow(values: string[], options: { prettier?: boolean } ... function csvDecodeRow (line 21) | function csvDecodeRow(text: string): string[] { function csvEncodeCell (line 32) | function csvEncodeCell(value: string): string { function csvDecodeCell (line 36) | function csvDecodeCell(value: string): string { FILE: app/common/declarations.d.ts type MemBuffer (line 3) | type MemBuffer = any; type Map (line 9) | type Map = Record; class DisplayNames (line 14) | class DisplayNames { class Locale (line 20) | class Locale { FILE: app/common/delay.ts function delay (line 5) | function delay(msec: number): Promise { FILE: app/common/emails.ts function normalizeEmail (line 40) | function normalizeEmail(displayEmail: string): string { FILE: app/common/getCurrentTime.ts function getCurrentTime (line 7) | function getCurrentTime(): moment.Moment { FILE: app/common/gristTypes.ts type GristTypeInfo (line 7) | type GristTypeInfo = constant MANUALSORT (line 13) | const MANUALSORT = "manualSort"; function isHiddenCol (line 16) | function isHiddenCol(colId: string): boolean { function getDefaultForType (line 47) | function getDefaultForType(colType: string, options: { sqlFormatted?: bo... function extractInfoFromColType (line 56) | function extractInfoFromColType(colType: string): GristTypeInfo { function reencodeAsTypedCellValue (line 76) | function reencodeAsTypedCellValue(value: CellValue, typeInfo: GristTypeI... function isObject (line 97) | function isObject(value: CellValue): value is [GristObjCode, any?] { function getObjCode (line 105) | function getObjCode(value: CellValue): GristObjCode | string | null { function isRaisedException (line 112) | function isRaisedException(value: CellValue): boolean { function isVersions (line 120) | function isVersions(value: CellValue): value is [GristObjCode.Versions, ... function isSkip (line 124) | function isSkip(value: CellValue): value is [GristObjCode.Skip] { function isCensored (line 128) | function isCensored(value: CellValue): value is [GristObjCode.Censored] { function isList (line 135) | function isList(value: CellValue): value is [GristObjCode.List, ...CellV... function isReference (line 142) | function isReference(value: CellValue): value is [GristObjCode.Reference... function isReferenceList (line 149) | function isReferenceList(value: CellValue): value is [GristObjCode.Refer... function isReferencing (line 156) | function isReferencing(value: CellValue): function isListOrNull (line 166) | function isListOrNull(value: CellValue): boolean { function isEmptyList (line 173) | function isEmptyList(value: CellValue): boolean { function isEmptyReferenceList (line 180) | function isEmptyReferenceList(value: CellValue): boolean { function isNumber (line 184) | function isNumber(v: CellValue) { return typeof v === "number" || typeof... function isNumberOrNull (line 185) | function isNumberOrNull(v: CellValue) { return isNumber(v) || v === null; } function isBoolean (line 186) | function isBoolean(v: CellValue) { return typeof v === "boolean" || v ==... function isBooleanOrNull (line 187) | function isBooleanOrNull(v: CellValue) { return isBoolean(v) || v === nu... function isNormalValue (line 193) | function isNormalValue(value: CellValue) { function isRightType (line 220) | function isRightType(type: string): undefined | ((value: CellValue, opti... function extractTypeFromColType (line 224) | function extractTypeFromColType(type: string): string { type RecalcWhen (line 234) | enum RecalcWhen { function sequelizeToGristType (line 254) | function sequelizeToGristType(sqlType: string): GristType { function getReferencedTableId (line 325) | function getReferencedTableId(type: string) { function isRefListType (line 332) | function isRefListType(type: string) { function isListType (line 336) | function isListType(type: string) { function isNumberType (line 340) | function isNumberType(type: string | undefined) { function isDateLikeType (line 344) | function isDateLikeType(type: string) { function isFullReferencingType (line 348) | function isFullReferencingType(type: string) { function isValidRuleValue (line 352) | function isValidRuleValue(value: CellValue | undefined) { function isBlankValue (line 364) | function isBlankValue(value: CellValue) { type RefListValue (line 373) | type RefListValue = [GristObjCode.List, ...number[]] | null; type CellInfoType (line 378) | enum CellInfoType { FILE: app/common/gristUrls.ts type SpecialDocPage (line 29) | type SpecialDocPage = typeof SpecialDocPage.type; type IDocPage (line 30) | type IDocPage = number | SpecialDocPage; type ViewDocPage (line 32) | type ViewDocPage = number | "data"; function isViewDocPage (line 36) | function isViewDocPage(docPage: IDocPage): docPage is ViewDocPage { type IHomePage (line 43) | type IHomePage = typeof HomePage.type; type HomePageTab (line 46) | type HomePageTab = typeof HomePageTab.type; type WelcomePage (line 49) | type WelcomePage = typeof WelcomePage.type; type AccountPage (line 52) | type AccountPage = typeof AccountPage.type; type ActivationPage (line 55) | type ActivationPage = typeof ActivationPage.type; type AuditLogsPage (line 58) | type AuditLogsPage = typeof AuditLogsPage.type; type LoginPage (line 61) | type LoginPage = typeof LoginPage.type; type AdminPanelPage (line 64) | type AdminPanelPage = typeof AdminPanelPage.type; type AdminPanelTab (line 67) | type AdminPanelTab = typeof AdminPanelTab.type; constant PREFERRED_STORAGE_ANCHOR (line 69) | const PREFERRED_STORAGE_ANCHOR = "preferredStorage"; type PersistentAnchor (line 71) | type PersistentAnchor = typeof PersistentAnchor.type; type InterfaceStyle (line 75) | type InterfaceStyle = typeof InterfaceStyle.type; type CompareEmphasis (line 78) | type CompareEmphasis = typeof CompareEmphasis.type; constant DEFAULT_HOME_SUBDOMAIN (line 81) | const DEFAULT_HOME_SUBDOMAIN = "api"; constant MIN_URLID_PREFIX_LENGTH (line 85) | const MIN_URLID_PREFIX_LENGTH = 12; constant RESERVED_URLID_PREFIXES (line 89) | const RESERVED_URLID_PREFIXES = new Set(["forgot-password"]); constant SHARE_KEY_PREFIX (line 93) | const SHARE_KEY_PREFIX = "s."; type FormFraming (line 104) | type FormFraming = "border" | "minimal"; type IGristUrlState (line 180) | interface IGristUrlState { type OrgUrlOptions (line 235) | interface OrgUrlOptions { type OrgUrlInfo (line 254) | interface OrgUrlInfo { function hostMatchesUrl (line 259) | function hostMatchesUrl(host?: string, url?: string) { function isOwnInternalUrlHost (line 270) | function isOwnInternalUrlHost(host?: string) { function getHostType (line 282) | function getHostType(host: string, options: { function getOrgUrlInfo (line 304) | function getOrgUrlInfo(newOrg: string, currentHost: string, options: Org... function encodeUrl (line 334) | function encodeUrl(gristConfig: Partial, function decodeUrl (line 455) | function decodeUrl(gristConfig: Partial, location: Loca... function decodeLinkParameters (line 693) | function decodeLinkParameters(sp: URLSearchParams) { function userOverrideParams (line 707) | function userOverrideParams(email: string | null, extraState?: IGristUrl... function parseDocPage (line 724) | function parseDocPage(p: string): IDocPage { function parseSubdomain (line 740) | function parseSubdomain(host: string | undefined): { org?: string, base?... function parseSubdomainStrictly (line 763) | function parseSubdomainStrictly(host: string | undefined): { org?: strin... type ActivationState (line 779) | interface ActivationState { type LatestVersionAvailable (line 800) | interface LatestVersionAvailable { type GristLoadConfig (line 812) | interface GristLoadConfig { type IFeature (line 1019) | type IFeature = typeof Features.type; function isFeatureEnabled (line 1025) | function isFeatureEnabled(feature: IFeature): boolean { function getPageTitleSuffix (line 1029) | function getPageTitleSuffix(config?: GristLoadConfig) { type TelemetryConfig (line 1033) | interface TelemetryConfig { type GristDeploymentType (line 1038) | type GristDeploymentType = typeof GristDeploymentTypes.type; type OrgParts (line 1044) | interface OrgParts { function isClient (line 1055) | function isClient() { function getCustomizableValue (line 1059) | function getCustomizableValue( function getSingleOrg (line 1070) | function getSingleOrg(): string | null { function getHelpCenterUrl (line 1074) | function getHelpCenterUrl(): string { function getOnboardingVideoId (line 1079) | function getOnboardingVideoId(): string { function getTermsOfServiceUrl (line 1084) | function getTermsOfServiceUrl(): string | undefined { function getFreeCoachingCallUrl (line 1088) | function getFreeCoachingCallUrl(): string { function getContactSupportUrl (line 1093) | function getContactSupportUrl(): string { function getWebinarsUrl (line 1098) | function getWebinarsUrl(): string { function getMaxUploadSizeAttachmentMB (line 1103) | function getMaxUploadSizeAttachmentMB(): number { function isOrgInPathOnly (line 1113) | function isOrgInPathOnly(host?: string): boolean { function getOrgFromHost (line 1125) | function getOrgFromHost(reqHost: string): string | null { function extractOrgParts (line 1141) | function extractOrgParts(reqHost: string | undefined, reqPath: string): ... function sanitizePathTail (line 1169) | function sanitizePathTail(path: string | undefined) { function parseFirstUrlPart (line 1179) | function parseFirstUrlPart(tag: string, path: string): { value?: string,... type UrlIdParts (line 1195) | interface UrlIdParts { function parseUrlId (line 1206) | function parseUrlId(urlId: string): UrlIdParts { function buildUrlId (line 1229) | function buildUrlId(parts: UrlIdParts): string { type HashLink (line 1249) | interface HashLink { function makeAnchorLinkValue (line 1270) | function makeAnchorLinkValue(hash: HashLink): string { function shouldIncludeSlug (line 1301) | function shouldIncludeSlug(doc: { id: string, urlId: string | null }): b... function nameToSlug (line 1309) | function nameToSlug(name: string): string { function getSlugIfNeeded (line 1315) | function getSlugIfNeeded(doc: { id: string, urlId: string | null, name: ... type UrlTweaks (line 1326) | interface UrlTweaks { function withAdminDefinedUrls (line 1345) | function withAdminDefinedUrls(defaultUrls: ICommonUrls): ICommonUrls { FILE: app/common/gutil.ts constant UP_TRIANGLE (line 22) | const UP_TRIANGLE = "\u25B2"; constant DOWN_TRIANGLE (line 23) | const DOWN_TRIANGLE = "\u25BC"; constant EMAIL_RE (line 25) | const EMAIL_RE = new RegExp("^\\w[\\w%+/='-]*(\\.[\\w%+/='-]+)*@([A-Za-z... function startsWith (line 30) | function startsWith(str: string, prefix: string): boolean { function endsWith (line 35) | function endsWith(str: string, suffix: string): boolean { function removePrefix (line 40) | function removePrefix(str: string, prefix: string): string | null { function removeSuffix (line 45) | function removeSuffix(str: string, suffix: string): string | null { function removeTrailingSlash (line 49) | function removeTrailingSlash(str: string): string { function padStart (line 56) | function padStart(str: string, targetLength: number, padString: string) { function capitalize (line 61) | function capitalize(str: string): string { function capitalizeFirstWord (line 66) | function capitalizeFirstWord(str: string): string { function isNumber (line 72) | function isNumber(n: string): boolean { function clamp (line 84) | function clamp(value: number, min: number, max: number): number { function between (line 95) | function between(value: number, bound1: number, bound2: number): boolean { function mod (line 104) | function mod(x: number, n: number): number { function roundDownToMultiple (line 112) | function roundDownToMultiple(n: number, m: number): number { function undefDefault (line 119) | function undefDefault(x: T | undefined, y: T): T { type Undef1 (line 126) | type Undef1 = T extends [infer A] ? A : unknown; type Undef2 (line 128) | type Undef2 = T extends [infer A, infer B] ? type Undef3 (line 131) | type Undef3 = T extends [infer A, infer B, infer C] ? type Undef (line 134) | type Undef = T extends [infer A, infer B, infer C, infer D] ? function undef (line 158) | function undef(...list: T): Undef { function numberOrDefault (line 169) | function numberOrDefault(value: unknown, defaultVal: T): number | T { function safeJsonParse (line 183) | function safeJsonParse(json: string, defaultVal: any): any { function encodeQueryParam (line 195) | function encodeQueryParam(str: string | number | undefined): string { function encodeQueryParams (line 203) | function encodeQueryParams(obj: { [key: string]: string | number | undef... function maxsplit (line 216) | function maxsplit(str: string, sep: string, maxNumSplits: number): strin... function arraysEqual (line 232) | function arraysEqual(a: any[], b: any[]): boolean { function setDifference (line 250) | function setDifference(a: Set, b: Set): Set { function indexOf (line 259) | function indexOf(arrayLike: ArrayLike, item: T): number { function arrayRemove (line 267) | function arrayRemove(array: T[], value: T): boolean { function arrayInsertBefore (line 279) | function arrayInsertBefore(array: T[], value: T, nextValue: T): void { function arrayExtend (line 291) | function arrayExtend(array: T[], anotherArray: T[]): void { function arrayCopyForward (line 304) | function arrayCopyForward(toArray: T[], toStart: number, function arrayCopyBackward (line 329) | function arrayCopyBackward(toArray: T[], toStart: number, function arrayAppend (line 353) | function arrayAppend(toArray: T[], fromArray: ArrayLike, fromStart... function arraySplice (line 371) | function arraySplice(target: T[], start: number, arrToInsert: ArrayLi... type CompareFunc (line 389) | type CompareFunc = (a: T, b: T) => number; function sortedIndex (line 399) | function sortedIndex(array: ArrayLike, elem: T, compareFunc: Compa... function hasDuplicates (line 419) | function hasDuplicates(array: any[]): boolean { function countIf (line 433) | function countIf(array: readonly T[], callback: (item: T) => boolean)... function map2 (line 445) | function map2(array1: ArrayLike, array2: ArrayLike, mapFu... function growMatrix (line 460) | function growMatrix(dataMatrix: T[][], r: number, c: number): T[][] { function multiCompareFunc (line 480) | function multiCompareFunc(sortKeyFuncs: readonly ((a: T) => U)[], function nativeCompare (line 499) | function nativeCompare(a: T, b: T): number { function propertyCompare (line 506) | function propertyCompare(property: keyof T) { function setDefault (line 524) | function setDefault(mapInst: Map, key: K, val: V): V { function getSetMapValue (line 533) | function getSetMapValue(mapInst: Map, key: K, buildValue: ()... function popFromMap (line 543) | function popFromMap(mapInst: Map, key: K): V | undefined { function addCountsToMap (line 552) | function addCountsToMap(valueCounts: Map, values: Iterable... function isSubset (line 563) | function isSubset(smaller: Set, larger: Set): boolean { function deepExtend (line 579) | function deepExtend(target: any, _varArgObjects: any): any { function byteString (line 612) | function byteString(bytes: number): string { function mapToObject (line 630) | function mapToObject(keysArray: string[], callback: (key: string) => T, function pruneArray (line 647) | function pruneArray(arr: T[], indexes: number[]) { function sanitizeIdent (line 682) | function sanitizeIdent(ident: string, prefix?: string) { function cloneFunc (line 705) | function cloneFunc(fn: Function): Function { /* jshint evil:true */... function genRandomId (line 713) | function genRandomId(len: number, optPrefix?: string): string { function sortedScan (line 734) | function sortedScan(arrA: ArrayLike, arrB: ArrayLike, function getReconnectTimeout (line 763) | function getReconnectTimeout(attemptNumber: number, intervals: ArrayLike... function isEmail (line 778) | function isEmail(email: string): boolean { function waitObs (line 787) | function waitObs(observable: KoObservable, predicate: (value: T) =... function waitGrainObs (line 805) | async function waitGrainObs(observable: Observable, function inlineStyle (line 824) | function inlineStyle(property: string, valueObs: BindableValue): Do... class PromiseChain (line 835) | class PromiseChain { method add (line 841) | public add(nextCB: () => Promise): Promise { function isColorDark (line 857) | function isColorDark(hexColor: string, isDarkBelow: number = 220): boole... function isValidHex (line 871) | function isValidHex(val: unknown): val is string { function timeoutReached (line 883) | async function timeoutReached( function isLongerThan (line 912) | async function isLongerThan(promise: Promise, timeoutMsec: numb... function isAffirmative (line 921) | function isAffirmative(parameter: any): boolean { function isNonNullish (line 931) | function isNonNullish(value: T | null | undefined): value is T { function truthy (line 938) | function truthy(value: T | null | undefined): value is Exclude(use: UseCBOwner, obs: BindableValue): T { function getDistinctValues (line 984) | function getDistinctValues(values: readonly T[], count: number = Infi... function assertIsDefined (line 996) | function assertIsDefined(name: string, value: T): asserts value is No... function retryOnce (line 1006) | async function retryOnce(fn: () => Promise, recover: (e: unknown) ... function notSet (line 1019) | function notSet(value: any) { function ifNotSet (line 1029) | function ifNotSet(value: any, def: any = null) { function computedOwned (line 1037) | function computedOwned( type Constructor (line 1048) | type Constructor = new (...args: any[]) => T; function cached (line 1054) | function cached(fn: T): T { function inSeconds (line 1069) | function inSeconds(text: string): number { FILE: app/common/isHiddenTable.ts function isHiddenTable (line 8) | function isHiddenTable(tablesData: TableData, tableRef: UIRowId): boolean { function isSummaryTable (line 18) | function isSummaryTable(tablesData: TableData, tableRef: UIRowId): boole... function isTableCensored (line 25) | function isTableCensored(tablesData: TableData, tableRef: UIRowId): bool... function isMetadataTable (line 33) | function isMetadataTable(tableId: string): boolean { FILE: app/common/loginProviders.ts constant MINIMAL_PROVIDER_KEY (line 2) | const MINIMAL_PROVIDER_KEY = "minimal"; constant OIDC_PROVIDER_KEY (line 5) | const OIDC_PROVIDER_KEY = "oidc"; constant FORWARD_AUTH_PROVIDER_KEY (line 8) | const FORWARD_AUTH_PROVIDER_KEY = "forward-auth"; constant GRIST_CONNECT_PROVIDER_KEY (line 11) | const GRIST_CONNECT_PROVIDER_KEY = "grist-connect"; constant GETGRIST_COM_PROVIDER_KEY (line 14) | const GETGRIST_COM_PROVIDER_KEY = "getgrist.com"; constant SAML_PROVIDER_KEY (line 17) | const SAML_PROVIDER_KEY = "saml"; constant DEPRECATED_PROVIDERS (line 20) | const DEPRECATED_PROVIDERS: string[] = [ FILE: app/common/marshal.ts type MarshalOptions (line 33) | interface MarshalOptions { type UnmarshalOptions (line 45) | interface UnmarshalOptions { function ord (line 49) | function ord(str: string): number { type MarshalCode (line 93) | type MarshalCode = keyof typeof marshalCodes; function isInteger (line 98) | function isInteger(n: number): boolean { function wrap (line 110) | function wrap(codeStr: MarshalCode, value: unknown) { class WrappedObj (line 114) | class WrappedObj { method constructor (line 115) | constructor(public code: number, public value: unknown) {} method inspect (line 117) | public inspect() { class Marshaller (line 134) | class Marshaller { method constructor (line 140) | constructor(options?: MarshalOptions) { method dump (line 147) | public dump(): Uint8Array { method dumpAsBuffer (line 155) | public dumpAsBuffer(): Buffer { method getCode (line 161) | public getCode(value: any) { method marshal (line 187) | public marshal(value: any): void { method _writeInt64 (line 225) | private _writeInt64(value: number) { method _writeStringFloat (line 234) | private _writeStringFloat(value: number) { method _writeByteArray (line 245) | private _writeByteArray(value: Uint8Array | Buffer) { method _writeUtf8String (line 251) | private _writeUtf8String(value: string) { method _writeList (line 261) | private _writeList(array: unknown[]) { method _writeDict (line 268) | private _writeDict(obj: { [key: string]: any }) { class Unmarshaller (line 292) | class Unmarshaller extends EventEmitter { method constructor (line 300) | constructor(options?: UnmarshalOptions) { method push (line 311) | public push(byteArray: Uint8Array | Buffer) { method parse (line 319) | public parse(byteArray: Uint8Array | Buffer, valueCB: (val: any) => bo... method _parse (line 350) | private _parse(): unknown { method _parseInt (line 383) | private _parseInt() { method _parseInt64 (line 387) | private _parseInt64() { method _parseLong (line 402) | private _parseLong() { method _parseStringFloat (line 415) | private _parseStringFloat() { method _parseBinaryFloat (line 421) | private _parseBinaryFloat() { method _parseByteString (line 425) | private _parseByteString(): string | Uint8Array { method _parseInterned (line 432) | private _parseInterned() { method _parseStringRef (line 438) | private _parseStringRef() { method _parseList (line 443) | private _parseList() { method _parseDict (line 452) | private _parseDict() { method _parseUnicode (line 470) | private _parseUnicode() { function loads (line 480) | function loads(byteArray: Uint8Array | Buffer, options?: UnmarshalOption... function dumpBase64 (line 498) | function dumpBase64(data: any, options?: MarshalOptions) { function loadBase64 (line 507) | function loadBase64(data: string, options?: UnmarshalOptions) { FILE: app/common/normalizedDateTimeString.ts function normalizedDateTimeString (line 15) | function normalizedDateTimeString(dateTime: any): string { FILE: app/common/orgNameUtils.ts constant BLACKLISTED_SUBDOMAINS (line 1) | const BLACKLISTED_SUBDOMAINS = new Set([ function checkSubdomainValidity (line 41) | function checkSubdomainValidity(subdomain: string): void { FILE: app/common/parseDate.ts constant TWO_DIGIT_YEAR_THRESHOLD (line 14) | const TWO_DIGIT_YEAR_THRESHOLD = 10; constant MAX_TWO_DIGIT_YEAR (line 15) | const MAX_TWO_DIGIT_YEAR = new Date().getFullYear() + TWO_DIGIT_YEAR_THR... constant PARSER_FORMATS (line 30) | const PARSER_FORMATS: string[] = [ constant UNAMBIGUOUS_FORMATS (line 62) | const UNAMBIGUOUS_FORMATS = [ constant TIME_REGEX (line 67) | const TIME_REGEX = /(?:^|\s+|T)(?:(\d\d?)(?::(\d\d?)(?::(\d\d?))?)?|(\d\... constant UTC_REGEX (line 69) | const UTC_REGEX = /[^a-zA-Z](UTC?|GMT|Z)$/i; constant NUMERIC_TZ_REGEX (line 70) | const NUMERIC_TZ_REGEX = /([+-]\d\d?)(?::?(\d\d))?$/i; constant SEPARATORS (line 73) | const SEPARATORS = /[\W_]+/g; type ParseOptions (line 87) | interface ParseOptions { function parseDate (line 106) | function parseDate(date: string, options: ParseOptions = {}): number | n... function parseDateStrict (line 153) | function parseDateStrict( function parseDateTime (line 180) | function parseDateTime(dateTime: string, options: ParseOptions): number ... function _getPartialFormat (line 225) | function _getPartialFormat(input: string, format: string): string { function _buildVariations (line 251) | function _buildVariations(dateFormat: string, date: string) { function calculateOffset (line 282) | function calculateOffset(tzMatch: string[]): string { function parseTimeZone (line 288) | function parseTimeZone(str: string, timezone: string): { remaining: stri... function standardizeTime (line 321) | function standardizeTime(timeString: string): { remaining: string, time:... function guessDateFormat (line 345) | function guessDateFormat(values: (string | null)[], timezone: string = "... function guessDateFormats (line 358) | function guessDateFormats(values: (string | null)[], timezone: string = ... function dateTimeWidgetOptions (line 421) | function dateTimeWidgetOptions(fullFormat: string, defaultTimeFormat: bo... function parseTimeStamp (line 438) | function parseTimeStamp(date: string): number | null { FILE: app/common/plugin.ts type LocalPluginKind (line 6) | type LocalPluginKind = "installed" | "builtIn"; type ImplDescription (line 8) | interface ImplDescription { type FileParser (line 13) | interface FileParser { type FileImporter (line 20) | interface FileImporter { type ManifestParsingError (line 32) | interface ManifestParsingError { function isPicker (line 42) | function isPicker(importer: FileImporter): boolean { type LocalPlugin (line 49) | interface LocalPlugin { type DirectoryScanEntry (line 64) | interface DirectoryScanEntry { type Contribution (line 77) | type Contribution = "importSource" | "fileParser"; FILE: app/common/resetOrg.ts function resetOrg (line 9) | async function resetOrg(api: UserAPI, org: string | number) { FILE: app/common/roles.ts constant OWNER (line 3) | const OWNER = "owners"; constant EDITOR (line 4) | const EDITOR = "editors"; constant VIEWER (line 5) | const VIEWER = "viewers"; constant GUEST (line 6) | const GUEST = "guests"; constant MEMBER (line 7) | const MEMBER = "members"; type BasicRole (line 12) | type BasicRole = "owners" | "editors" | "viewers"; type NonMemberRole (line 13) | type NonMemberRole = BasicRole | "guests"; type NonGuestRole (line 14) | type NonGuestRole = BasicRole | "members"; type Role (line 15) | type Role = NonMemberRole | "members"; function getEffectiveRole (line 18) | function getEffectiveRole(role: Role | null): BasicRole | null { function canEditAccess (line 26) | function canEditAccess(role: string | null): boolean { function canEdit (line 32) | function canEdit(role: string | null): boolean { function canDelete (line 36) | function canDelete(role: string | null): boolean { function canView (line 40) | function canView(role: string | null): boolean { function isOwner (line 44) | function isOwner(resource: { access: Role | null } | null): resource is ... function isOwnerOrEditor (line 48) | function isOwnerOrEditor(resource: { access: Role | null } | null): reso... function canUpgradeOrg (line 52) | function canUpgradeOrg(org: Organization | null): org is Organization { function isValidRole (line 58) | function isValidRole(role: string | null): role is Role | null { function isBasicRole (line 63) | function isBasicRole(role: string | null): role is BasicRole { function isNonGuestRole (line 68) | function isNonGuestRole(role: string | null): role is NonGuestRole { function getStrongestRole (line 76) | function getStrongestRole(...args: T[]): T { function getWeakestRole (line 84) | function getWeakestRole(...args: T[]): T { function getFirstMatchingRole (line 90) | function getFirstMatchingRole(array: (Role | null... FILE: app/common/schema.ts constant SCHEMA_VERSION (line 9) | const SCHEMA_VERSION = 46; type SchemaTypes (line 240) | interface SchemaTypes { FILE: app/common/tagManager.ts function getTagManagerSnippet (line 5) | function getTagManagerSnippet(tagId?: string) { function getTagManagerScript (line 23) | function getTagManagerScript(tagId: string) { FILE: app/common/tbind.ts function tbind (line 13) | function tbind(func: any, context: any, ...boundArgs: any[]): any { FILE: app/common/timeFormat.ts function pad (line 20) | function pad(num: number, len: number): string { type FormatHelper (line 25) | type FormatHelper = (out: string[], date: Date) => void; function timeFormatHelper (line 40) | function timeFormatHelper(out: string[], format: string, date: Date) { function timeFormat (line 52) | function timeFormat(format: string, date: Date): string { FILE: app/common/tpromisified.ts type AnyFunction (line 4) | type AnyFunction = (...args: any[]) => any; type Unpacked (line 7) | type Unpacked = T extends Promise ? U : T; type PromisifiedFunction (line 9) | type PromisifiedFunction = type Promisified (line 23) | type Promisified = { FILE: app/common/tsvFormat.ts function tsvEncode (line 6) | function tsvEncode(data: any[][]): string { function encode (line 10) | function encode(rawValue: any): string { function tsvDecode (line 27) | function tsvDecode(tsvString: string): string[][] { FILE: app/common/uploads.ts type UploadResult (line 24) | interface UploadResult { type FileUploadResult (line 34) | interface FileUploadResult { constant UPLOAD_URL_PATH (line 44) | const UPLOAD_URL_PATH = "uploads"; type FetchUrlOptions (line 49) | interface FetchUrlOptions { FILE: app/common/urlUtils.ts function getGristConfig (line 3) | function getGristConfig(): GristLoadConfig { function addCurrentOrgToPath (line 13) | function addCurrentOrgToPath(path: string, skipIfInDomain: boolean = fal... function addOrgToPath (line 24) | function addOrgToPath(path: string, page: string, skipIfInDomain: boolea... function docUrl (line 47) | function docUrl(docWorkerUrl: string | null | undefined, path?: string) { function getOriginUrl (line 56) | function getOriginUrl(path: string) { function getInitialDocAssignment (line 62) | function getInitialDocAssignment(): string | null { function pageHasDocList (line 68) | function pageHasDocList(): boolean { function pageHasHome (line 74) | function pageHasHome(): boolean { function fetchFromHome (line 80) | function fetchFromHome(path: string, opts: RequestInit): Promise( method _changeUserDisabledDate (line 861) | private async _changeUserDisabledDate(req: express.Request, disabledAt... method _hardDeleteWorkspace (line 871) | private async _hardDeleteWorkspace(req: Request, wsId: number) { method _logCreateDocumentEvents (line 894) | private _logCreateDocumentEvents(req: Request, document: Document) { method _logRenameDocumentEvents (line 930) | private _logRenameDocumentEvents( method _logRestoreDocumentEvents (line 950) | private _logRestoreDocumentEvents(req: Request, document: Document) { method _logChangeDocumentAccessEvents (line 965) | private _logChangeDocumentAccessEvents( method _logInvitedDocUserTelemetryEvents (line 988) | private _logInvitedDocUserTelemetryEvents(req: Request, delta: Permiss... method _logMoveDocumentEvents (line 1030) | private _logMoveDocumentEvents( method _logPinDocumentEvents (line 1056) | private _logPinDocumentEvents(req: Request, document: Document) { method _logUnpinDocumentEvents (line 1068) | private _logUnpinDocumentEvents(req: Request, document: Document) { method _logCreateWorkspaceEvents (line 1080) | private _logCreateWorkspaceEvents(req: Request, workspace: Workspace) { method _logRenameWorkspaceEvents (line 1099) | private _logRenameWorkspaceEvents( method _logRemoveWorkspaceEvents (line 1119) | private _logRemoveWorkspaceEvents(req: Request, workspace: Workspace) { method _logDeleteWorkspaceEvents (line 1131) | private _logDeleteWorkspaceEvents(req: Request, workspace: Workspace, ... method _logRestoreWorkspaceEvents (line 1151) | private _logRestoreWorkspaceEvents(req: Request, workspace: Workspace) { method _logChangeWorkspaceAccessEvents (line 1163) | private _logChangeWorkspaceAccessEvents( method _logCreateSiteEvents (line 1185) | private _logCreateSiteEvents(req: Request, org: Organization) { method _logRenameSiteEvents (line 1194) | private _logRenameSiteEvents( method _logDeleteSiteEvents (line 1214) | private _logDeleteSiteEvents(req: Request, org: Organization, method _logChangeSiteAccessEvents (line 1225) | private _logChangeSiteAccessEvents( method _logChangeUserNameEvents (line 1243) | private _logChangeUserNameEvents( method _logCreateUserAPIKeyEvents (line 1266) | private _logCreateUserAPIKeyEvents(req: Request, user: User) { method _logDeleteUserAPIKeyEvents (line 1278) | private _logDeleteUserAPIKeyEvents(req: Request, user: User) { method _logDeleteUserEvents (line 1290) | private _logDeleteUserEvents(req: Request, user: User) { function handleDeletedUser (line 1306) | function handleDeletedUser(): never { FILE: app/gen-server/entity/AclRule.ts class AclRule (line 11) | class AclRule extends BaseEntity { class AclRuleWs (line 24) | class AclRuleWs extends AclRule { class AclRuleOrg (line 34) | class AclRuleOrg extends AclRule { class AclRuleDoc (line 44) | class AclRuleDoc extends AclRule { FILE: app/gen-server/entity/Activation.ts class Activation (line 10) | class Activation extends BaseEntity { method checkProperties (line 39) | public checkProperties(props: any): props is Partial { method updateFromProperties (line 62) | public updateFromProperties(props: Partial) { FILE: app/gen-server/entity/Alias.ts class Alias (line 8) | class Alias extends BaseEntity { FILE: app/gen-server/entity/BillingAccount.ts type BillingAccountStatus (line 12) | interface BillingAccountStatus { type ExternalBillingOptions (line 21) | interface ExternalBillingOptions { class BillingAccount (line 33) | class BillingAccount extends BaseEntity { method getFeatures (line 93) | public getFeatures(): Features { FILE: app/gen-server/entity/BillingAccountManager.ts class BillingAccountManager (line 10) | class BillingAccountManager extends BaseEntity { FILE: app/gen-server/entity/Config.ts class Config (line 17) | class Config extends BaseEntity { FILE: app/gen-server/entity/DocPref.ts class DocPref (line 9) | class DocPref { FILE: app/gen-server/entity/Document.ts function isValidUrlId (line 19) | function isValidUrlId(urlId: string) { class Document (line 25) | class Document extends Resource { method checkProperties (line 103) | public checkProperties(props: any): props is Partial) { class FilteredDocument (line 211) | class FilteredDocument extends Document { function sanitizeIcon (line 216) | function sanitizeIcon(icon: string | null) { FILE: app/gen-server/entity/Group.ts class Group (line 9) | class Group extends BaseEntity { method checkGroupMembers (line 49) | public checkGroupMembers() { FILE: app/gen-server/entity/Limit.ts class Limit (line 7) | class Limit extends BaseEntity { FILE: app/gen-server/entity/Login.ts class Login (line 16) | class Login extends BaseEntity { method checkServiceAccountMailAreInvalid (line 40) | public checkServiceAccountMailAreInvalid() { FILE: app/gen-server/entity/OAuthClient.ts class OAuthClient (line 22) | class OAuthClient extends BaseEntity { FILE: app/gen-server/entity/OAuthGrant.ts class OAuthGrant (line 24) | class OAuthGrant extends BaseEntity { FILE: app/gen-server/entity/Organization.ts type AccessOption (line 14) | interface AccessOption { type AccessOptionWithRole (line 21) | interface AccessOptionWithRole extends AccessOption { class Organization (line 26) | class Organization extends Resource { method checkProperties (line 80) | public checkProperties(props: any): props is Partial) { FILE: app/gen-server/entity/Pref.ts class Pref (line 9) | class Pref { FILE: app/gen-server/entity/Product.ts constant PRODUCTS (line 116) | const PRODUCTS: IProduct[] = [ function getDefaultProductNames (line 154) | function getDefaultProductNames() { function getAnonymousFeatures (line 169) | function getAnonymousFeatures(): Features { class Product (line 189) | class Product extends BaseEntity { function synchronizeProducts (line 211) | async function synchronizeProducts( FILE: app/gen-server/entity/Proposal.ts class Proposal (line 51) | class Proposal extends BaseEntity { FILE: app/gen-server/entity/Resource.ts class Resource (line 6) | class Resource extends BaseEntity { method updateFromProperties (line 21) | public updateFromProperties(props: Partial) { method checkProperties (line 31) | protected checkProperties(props: any, keys: string[]): props is Partia... function _propertyToDate (line 42) | function _propertyToDate(d: string | Date): Date { FILE: app/gen-server/entity/Secret.ts class Secret (line 6) | class Secret extends BaseEntity { FILE: app/gen-server/entity/ServiceAccount.ts class ServiceAccount (line 9) | class ServiceAccount extends BaseEntity { method checkExpiresAt (line 38) | public checkExpiresAt() { method isActive (line 44) | public isActive(): boolean { FILE: app/gen-server/entity/Share.ts class Share (line 9) | class Share extends BaseEntity { FILE: app/gen-server/entity/User.ts class User (line 15) | class User extends BaseEntity { method beforeInsert (line 91) | public async beforeInsert() { method loginEmail (line 101) | public get loginEmail(): string | undefined { method displayEmail (line 110) | public get displayEmail(): string | undefined { method toUserProfile (line 116) | public toUserProfile(): UserProfile { FILE: app/gen-server/entity/Workspace.ts class Workspace (line 11) | class Workspace extends Resource { method checkProperties (line 46) | public checkProperties(props: any): props is Partial) { FILE: app/gen-server/lib/ActivationsManager.ts class ActivationsManager (line 17) | class ActivationsManager { method constructor (line 18) | constructor(private _db: HomeDBManager) { method runInTransaction (line 21) | public async runInTransaction(fn: (transaction: EntityManager) => P... method current (line 28) | public async current(transaction?: EntityManager): Promise { method setKey (line 41) | public async setKey(key: string, transaction?: EntityManager): Promise... method updateGracePeriod (line 47) | public async updateGracePeriod(gracePeriodStarted: Date | null, transa... method memberCount (line 53) | public async memberCount(transaction?: EntityManager): Promise { method updateAppEnvFile (line 96) | public async updateAppEnvFile(delta: Record, tr... method getPrefsWithSources (line 120) | public async getPrefsWithSources(): Promise { method updatePrefs (line 133) | public async updatePrefs(prefs: Partial): Promise { method deletePrefs (line 146) | public async deletePrefs( method _updateActivation (line 162) | private async _updateActivation(fn: (activation: Activation) => void, ... FILE: app/gen-server/lib/DocApiForwarder.ts class DocApiForwarder (line 30) | class DocApiForwarder { method constructor (line 31) | constructor(private _docWorkerMap: IDocWorkerMap, private _dbManager: ... method addEndpoints (line 35) | public addEndpoints(app: express.Application) { method _forwardToDocWorker (line 92) | private async _forwardToDocWorker( FILE: app/gen-server/lib/DocWorkerMap.ts constant LOCK_TIMEOUT (line 18) | const LOCK_TIMEOUT = 3000; constant CHECKSUM_TTL_MSEC (line 24) | const CHECKSUM_TTL_MSEC = 24 * 60 * 60 * 1000; constant PERMIT_TTL_MSEC (line 27) | const PERMIT_TTL_MSEC = 1 * 60 * 1000; constant DEFAULT_GROUP (line 30) | const DEFAULT_GROUP = "default"; class DummyDocWorkerMap (line 32) | class DummyDocWorkerMap implements IDocWorkerMap { method getDocWorker (line 38) | public async getDocWorker(docId: string) { method assignDocWorker (line 43) | public async assignDocWorker(docId: string) { method getDocWorkerOrAssign (line 48) | public async getDocWorkerOrAssign(docId: string, workerId: string): Pr... method updateDocStatus (line 54) | public async updateDocStatus(docId: string, checksum: string) { method addWorker (line 58) | public async addWorker(info: DocWorkerInfo): Promise { method removeWorker (line 62) | public async removeWorker(workerId: string): Promise { method setWorkerAvailability (line 66) | public async setWorkerAvailability(workerId: string, available: boolea... method setWorkerLoad (line 70) | public async setWorkerLoad(workerInfo: DocWorkerInfo, load: number): P... method isWorkerRegistered (line 74) | public async isWorkerRegistered(workerInfo: DocWorkerInfo): Promise { method getPermitStore (line 86) | public getPermitStore(prefix: string, defaultTtlMs?: number): IPermitS... method close (line 118) | public async close(): Promise { method getElection (line 124) | public async getElection(name: string, durationInMs: number): Promise<... method removeElection (line 131) | public async removeElection(name: string, electionKey: string): Promis... method updateChecksum (line 137) | public async updateChecksum(family: string, key: string, checksum: str... method getChecksum (line 141) | public async getChecksum(family: string, key: string) { method getWorkerGroup (line 145) | public async getWorkerGroup(workerId: string): Promise { method getDocGroup (line 149) | public async getDocGroup(docId: string): Promise { method updateDocGroup (line 153) | public async updateDocGroup(docId: string, docGroup: string): Promise<... method removeDocGroup (line 157) | public async removeDocGroup(docId: string): Promise { method getRedisClient (line 161) | public getRedisClient() { class DocWorkerMap (line 193) | class DocWorkerMap implements IDocWorkerMap { method constructor (line 200) | constructor(_clients?: RedisClient[], private _deploymentKey?: string,... method addWorker (line 212) | public async addWorker(info: DocWorkerInfo): Promise { method removeWorker (line 252) | public async removeWorker(workerId: string): Promise { method setWorkerAvailability (line 307) | public async setWorkerAvailability(workerId: string, available: boolea... method setWorkerLoad (line 340) | public async setWorkerLoad(workerInfo: DocWorkerInfo, load: number): P... method isWorkerRegistered (line 350) | public async isWorkerRegistered(workerInfo: DocWorkerInfo): Promise { method getDocWorker (line 375) | public async getDocWorker(docId: string): Promise { method assignDocWorker (line 398) | public async assignDocWorker(docId: string, workerId?: string): Promis... method getDocWorkerOrAssign (line 494) | public async getDocWorkerOrAssign(docId: string, workerId: string): Pr... method updateDocStatus (line 498) | public async updateDocStatus(docId: string, checksum: string): Promise... method updateChecksum (line 502) | public async updateChecksum(family: string, key: string, checksum: str... method getChecksum (line 506) | public async getChecksum(family: string, key: string) { method getPermitStore (line 511) | public getPermitStore(prefix: string, defaultTtlMs?: number): IPermitS... method close (line 540) | public async close(): Promise { method getElection (line 546) | public async getElection(name: string, durationInMs: number): Promise<... method removeElection (line 563) | public async removeElection(name: string, electionKey: string): Promis... method getWorkerGroup (line 578) | public async getWorkerGroup(workerId: string): Promise { method getDocGroup (line 582) | public async getDocGroup(docId: string): Promise { method updateDocGroup (line 586) | public async updateDocGroup(docId: string, docGroup: string): Promise<... method removeDocGroup (line 590) | public async removeDocGroup(docId: string): Promise { method getRedisClient (line 594) | public getRedisClient(): RedisClient { method _getDocAndChecksum (line 602) | private async _getDocAndChecksum(docId: string): Promise<{ method _getAvailableWorkerId (line 628) | private async _getAvailableWorkerId(group: string): Promise { FILE: app/gen-server/lib/Housekeeper.ts constant GRIST_TEST_PROXY_URL (line 48) | const GRIST_TEST_PROXY_URL = appSettings.section("proxy").flag("testUrl"... class Housekeeper (line 64) | class Housekeeper { method constructor (line 74) | public constructor(private _dbManager: HomeDBManager, private _server:... method start (line 81) | public async start() { method stop (line 105) | public async stop() { method deleteTrashExclusively (line 121) | public async deleteTrashExclusively(): Promise { method deleteTrash (line 135) | public async deleteTrash() { method testProxyUrlExclusively (line 199) | public async testProxyUrlExclusively(): Promise { method testProxyUrl (line 210) | public async testProxyUrl() { method logMetricsExclusively (line 240) | public async logMetricsExclusively(): Promise { method logMetrics (line 254) | public async logMetrics() { method checkVersionUpdatesExclusively (line 302) | public async checkVersionUpdatesExclusively() { method checkVersionUpdates (line 314) | public async checkVersionUpdates() { method addEndpoints (line 318) | public addEndpoints(app: express.Application) { method testClearExclusivity (line 379) | public async testClearExclusivity(): Promise { method _getDocsToDelete (line 386) | private async _getDocsToDelete() { method _getWorkspacesToDelete (line 398) | private async _getWorkspacesToDelete() { method _getForksToDelete (line 412) | private async _getForksToDelete() { method _getOrgUsageSummaries (line 422) | private async _getOrgUsageSummaries(manager: EntityManager) { method _getOrgMembershipSummaries (line 449) | private async _getOrgMembershipSummaries(manager: EntityManager) { method _getThreshold (line 474) | private _getThreshold() { method _withSupport (line 480) | private _withSupport( function forEachWithBreaks (line 511) | async function forEachWithBreaks(logText: string, items: T[], callbac... FILE: app/gen-server/lib/NotifierTypes.ts type SendGridMail (line 28) | interface SendGridMail { type SendGridAddress (line 42) | interface SendGridAddress { type DynamicTemplateData (line 46) | interface DynamicTemplateData { type SendGridPersonalization (line 49) | interface SendGridPersonalization { type SendGridInviteTemplate (line 58) | interface SendGridInviteTemplate { type SendGridInviteResource (line 66) | interface SendGridInviteResource { type SendGridInviteResourceKind (line 73) | type SendGridInviteResourceKind = "team site" | "workspace" | "document"; type SendGridInviteAccess (line 75) | interface SendGridInviteAccess { type SendGridBillingTemplate (line 84) | interface SendGridBillingTemplate { type SendGridMemberChangeTemplate (line 91) | interface SendGridMemberChangeTemplate extends SendGridBillingTemplate { type SendGridConfig (line 104) | interface SendGridConfig { type TwoFactorEvent (line 134) | type TwoFactorEvent = typeof TwoFactorEvents.type; type DocNotificationEvent (line 142) | type DocNotificationEvent = typeof DocNotificationEvents.type; type DocNotificationTemplateBase (line 144) | interface DocNotificationTemplateBase { type TemplateName (line 157) | type TemplateName = typeof TemplateName.type; type SendGridMailWithTemplateId (line 159) | interface SendGridMailWithTemplateId extends SendGridMail { type NotifierEventName (line 163) | type NotifierEventName = keyof INotifier; FILE: app/gen-server/lib/Permissions.ts type Permissions (line 1) | enum Permissions { FILE: app/gen-server/lib/TypeORMPatches.ts constant SLOW_TRANSACTION_MS (line 34) | const SLOW_TRANSACTION_MS = 5000; class SqliteQueryRunnerPatched (line 44) | class SqliteQueryRunnerPatched extends SqliteQueryRunner { method startTransaction (line 47) | public async startTransaction(level?: any): Promise { method commitTransaction (line 52) | public async commitTransaction(): Promise { method rollbackTransaction (line 61) | public async rollbackTransaction(): Promise { method connect (line 70) | public async connect(): Promise { class SqliteDriverPatched (line 79) | class SqliteDriverPatched extends SqliteDriver { method createQueryRunner (line 80) | public createQueryRunner(): QueryRunner { method loadDependencies (line 87) | protected loadDependencies(): void { function applyPatch (line 99) | function applyPatch() { function callWithRetry (line 189) | async function callWithRetry(op: () => Promise, options: { type QueryBuilder (line 224) | interface QueryBuilder { method setParameter (line 231) | public setParameter(key: string, value: any): this { method chain (line 247) | public chain>(this: Q, callback: (qb: Q) => Q)... function worthPreparing (line 271) | function worthPreparing(sql: string) { function setPreparedStatement (line 280) | function setPreparedStatement(name: string, sql: string) { function maybePrepareStatement (line 290) | function maybePrepareStatement(sql: string) { function pickStatementName (line 302) | function pickStatementName(query: string): string { function testGetPreparedStatementCount (line 313) | function testGetPreparedStatementCount() { function testResetPreparedStatements (line 323) | function testResetPreparedStatements() { class PostgresQueryRunnerPatched (line 333) | class PostgresQueryRunnerPatched extends PostgresQueryRunner { method connect (line 334) | public async connect() { class PostgresDriverPatched (line 364) | class PostgresDriverPatched extends PostgresDriver { method createQueryRunner (line 365) | public createQueryRunner(mode: "master" | "slave"): PostgresQueryRunner { FILE: app/gen-server/lib/Usage.ts constant USAGE_PERIOD_MS (line 9) | const USAGE_PERIOD_MS = 1 * 60 * 60 * 1000; class Usage (line 15) | class Usage { method constructor (line 19) | public constructor(private _dbManager: HomeDBManager) { method close (line 32) | public async close() { method apply (line 37) | public apply() { method _apply (line 44) | private async _apply(): Promise { FILE: app/gen-server/lib/homedb/Caches.ts class HomeDBCaches (line 17) | class HomeDBCaches { method constructor (line 21) | constructor( method getDocAccess (line 40) | public getDocAccess(docId: string) { return this._docAccessCache.getVa... method getDocPrefs (line 41) | public getDocPrefs(docId: string) { return this._docPrefsCache.getValu... method invalidateDocAccess (line 43) | public invalidateDocAccess(docIds: string[]) { return this._docAccessC... method invalidateDocPrefs (line 44) | public invalidateDocPrefs(docIds: string[]) { return this._docPrefsCac... method addInvalidationDocAccess (line 49) | public addInvalidationDocAccess(callbacks: (() => Promise)[], do... method addInvalidationDocPrefs (line 53) | public addInvalidationDocPrefs(callbacks: (() => Promise)[], doc... method clear (line 58) | public clear() { method _getDocAccess (line 63) | private _getDocAccess(docId: string): Promise(res: Resource, ... method constructor (line 118) | public constructor(private _usersManager: UsersManager, private _runIn... method moveInheritedGroups (line 139) | public moveInheritedGroups( method setGroupUsers (line 183) | public async setGroupUsers(manager: EntityManager, groupId: number, us... method createGroups (line 212) | public createGroups(inherit?: Organization | Workspace, ownerId?: numb... method setInheritance (line 238) | public setInheritance(group: Group, parent: Organization | Workspace) { method getRoleFromPermissions (line 256) | public getRoleFromPermissions(permissions: number): roles.Role | null { method getMaxInheritedRole (line 263) | public getMaxInheritedRole(res: Workspace | Document): roles.BasicRole... method createGroup (line 285) | public async createGroup(groupDescriptor: GroupWithMembersDescriptor, ... method overwriteRoleGroup (line 308) | public async overwriteRoleGroup( method overwriteTeamGroup (line 328) | public async overwriteTeamGroup( method deleteGroup (line 350) | public async deleteGroup(id: number, expectedType?: GroupTypes, optMan... method getGroupsWithMembers (line 369) | public getGroupsWithMembers(optManager?: EntityManager): Promise { method connectTo (line 371) | public connectTo(connection: DataSource) { method initializeSpecialIds (line 376) | public async initializeSpecialIds(options?: { method connection (line 403) | public get connection() { method testQuery (line 407) | public async testQuery(sql: string, args: any[]): Promise { method testGetId (line 417) | public async testGetId(name: string): Promise { method testGetRef (line 434) | public async testGetRef(name: string): Promise { method testClearUserPrefs (line 444) | public async testClearUserPrefs(emails: string[]) { method getUserByKey (line 448) | public async getUserByKey(apiKey: string): Promise { method getUserByRef (line 452) | public async getUserByRef( method getUser (line 459) | public async getUser(userId: number, options: { includePrefs?: boolean... method getUsers (line 463) | public async getUsers(options?: { type?: UserType }) { method getFullUser (line 467) | public async getFullUser(userId: number) { method getUserAndEnsureUnsubscribeKey (line 471) | public async getUserAndEnsureUnsubscribeKey(userId: number) { method makeFullUser (line 478) | public makeFullUser(user: User) { method ensureExternalUser (line 485) | public async ensureExternalUser(profile: UserProfile) { method updateUser (line 492) | public async updateUser( method updateUserOptions (line 503) | public async updateUserOptions(userId: number, props: Partial, manager?: Enti... method createGroup (line 541) | public async createGroup(groupDescriptor: GroupWithMembersDescriptor, ... method overwriteTeamGroup (line 545) | public async overwriteTeamGroup( method overwriteRoleGroup (line 551) | public async overwriteRoleGroup( method deleteGroup (line 557) | public async deleteGroup(id: number, expectedType?: GroupTypes, optMan... method getGroupsWithMembers (line 561) | public getGroupsWithMembers(manager?: EntityManager): Promise { method getGroupsWithMembersByType (line 565) | public getGroupsWithMembersByType( method getGroupWithMembersById (line 570) | public getGroupWithMembersById( method isDomainAvailable (line 581) | public async isDomainAvailable(domain: string): Promise { method getOrgMemberCount (line 595) | public async getOrgMemberCount(org: string | number | Organization): P... method getOrgBillableMemberCount (line 602) | public async getOrgBillableMemberCount(org: string | number | Organiza... method deleteUser (line 612) | public async deleteUser(scope: Scope, userIdToDelete: number, method overwriteUser (line 617) | public async overwriteUser(userId: number, props: UserProfile) { method getOrg (line 626) | public async getOrg(scope: Scope, orgKey: string | number | null, method getBillingAccount (line 711) | public async getBillingAccount(scope: Scope, orgKey: string | number, method getFullBillingAccount (line 735) | public getFullBillingAccount(billingAccountId: number, transaction?: E... method getOrgByExternalId (line 763) | public async getOrgByExternalId(externalId: string): Promise { method flushDocAuthCache (line 1156) | public flushDocAuthCache() { method clearCaches (line 1161) | public clearCaches() { method flushSingleDocAuthCache (line 1170) | public async flushSingleDocAuthCache(scope: DocScope, docId: string) { method getDocByName (line 1188) | public async getDocByName(userId: number, orgId: number, docName: stri... method getDocForks (line 1204) | public async getDocForks(docId: string): Promise { method addOrg (line 1230) | public async addOrg( method updateOrg (line 1402) | public async updateOrg( method deleteOrg (line 1489) | public async deleteOrg( method addWorkspace (line 1544) | public async addWorkspace( method updateWorkspace (line 1603) | public async updateWorkspace( method deleteWorkspace (line 1634) | public async deleteWorkspace(scope: Scope, wsId: number): Promise { method updateSecret (line 1799) | public async updateSecret(id: string, docId: string, value: string, ma... method getSecret (line 1810) | public async getSecret(id: string, docId: string, manager?: EntityMana... method updateWebhookUrlAndAuth (line 1821) | public async updateWebhookUrlAndAuth( method removeWebhook (line 1851) | public async removeWebhook(id: string, docId: string, unsubscribeKey: ... method updateDocument (line 1887) | public async updateDocument( method deleteDocument (line 1968) | public async deleteDocument(scope: DocScope): Promise { method getDocFeatures (line 2815) | public async getDocFeatures(docId: string, transaction?: EntityManager... method getDocProduct (line 2833) | public async getDocProduct(docId: string): Promise { method getAnonymousUser (line 2845) | public getAnonymousUser() { method getSpecialUserIds (line 2849) | public getSpecialUserIds() { method getAnonymousUserId (line 2853) | public getAnonymousUserId() { method getPreviewerUserId (line 2857) | public getPreviewerUserId() { method getEveryoneUserId (line 2861) | public getEveryoneUserId() { method getSupportUserId (line 2865) | public getSupportUserId() { method completeProfiles (line 2872) | public async completeProfiles(profiles: UserProfile[]) { method normalizeOrgDomain (line 2891) | public normalizeOrgDomain(orgId: number, domain: string | null, method unwrapQueryResult (line 2919) | public unwrapQueryResult(qr: QueryResult): T { method checkQueryResult (line 2925) | public checkQueryResult(qr: QueryResult) { method mergedOrgDomain (line 2933) | public mergedOrgDomain() { method isMergedOrg (line 2944) | public isMergedOrg(orgKey: string | number | null) { method org (line 2953) | public org(scope: Scope, org: string | number | null, method getLimits (line 2958) | public async getLimits(accountId: number): Promise { method getLimit (line 2970) | public async getLimit(accountId: number, limitType: LimitType): Promis... method peekLimit (line 2974) | public async peekLimit(accountId: number, limitType: LimitType): Promi... method removeLimit (line 2978) | public async removeLimit(scope: Scope, limitType: LimitType): Promise<... method increaseUsage (line 3001) | public async increaseUsage(scope: Scope, limitType: LimitType, options: { method syncShares (line 3066) | public async syncShares(docId: string, shares: ShareInfo[]) { method getShareByKey (line 3101) | public async getShareByKey(key: string) { method getShareByLinkId (line 3109) | public async getShareByLinkId(docId: string, linkId: string) { method getInstallConfig (line 3124) | public async getInstallConfig( method updateInstallConfig (line 3145) | public async updateInstallConfig( method deleteInstallConfig (line 3189) | public async deleteInstallConfig(key: ConfigKey): Promise { method setDocPrefs (line 3386) | public async setDocPrefs(scope: DocScope, newPrefs: Partial( method makeJsonArray (line 3553) | public makeJsonArray(content: string): string { return makeJsonArray(t... method readJson (line 3554) | public readJson(selection: any) { return readJson(this._dbType, select... method testDeleteAllServiceAccounts (line 3559) | public async testDeleteAllServiceAccounts() { method createServiceAccount (line 3563) | public async createServiceAccount( method getOwnedServiceAccounts (line 3570) | public async getOwnedServiceAccounts(ownerId: number) { method assertServiceAccountExistingAndOwned (line 3574) | public assertServiceAccountExistingAndOwned( method getServiceAccount (line 3580) | public async getServiceAccount(serviceId: number) { method getServiceAccountByLoginWithOwner (line 3584) | public async getServiceAccountByLoginWithOwner(login: string) { method updateServiceAccount (line 3588) | public async updateServiceAccount( method deleteServiceAccount (line 3594) | public async deleteServiceAccount(serviceId: number, options: { expect... method createServiceAccountApiKey (line 3598) | public async createServiceAccountApiKey(serviceId: number, options: { ... method deleteServiceAccountApiKey (line 3602) | public async deleteServiceAccountApiKey(serviceId: number, options: { ... method getApiKey (line 3606) | public async getApiKey(userId: number) { method createApiKey (line 3610) | public async createApiKey(userId: number, force: boolean, transaction?... method deleteApiKey (line 3614) | public async deleteApiKey(userId: number, transaction?: EntityManager) { method _doGetDocPrefs (line 3618) | private async _doGetDocPrefs(scope: DocScope, manager: EntityManager):... method _createNotFoundUsers (line 3636) | private async _createNotFoundUsers(options: { method _installConfig (line 3653) | private _installConfig( method _orgConfig (line 3663) | private _orgConfig( method _configs (line 3686) | private _configs(manager?: EntityManager) { method _getOrgMembers (line 3693) | private async _getOrgMembers(org: string | number | Organization) { method _orgMembers (line 3705) | private _orgMembers( method _getOrCreateLimitAndReset (line 3721) | private async _getOrCreateLimitAndReset( method _org (line 3798) | private _org(scope: Scope | null, includeSupport: boolean, org: string... method _orgWorkspaces (line 3838) | private _orgWorkspaces(scope: Scope, org: string | number | null, method _checkForUrlIdConflict (line 3887) | private async _checkForUrlIdConflict(manager: EntityManager, org: Orga... method _repairWorkspaceGuests (line 3928) | private async _repairWorkspaceGuests(scope: Scope, wsId: number, trans... method _repairOrgGuests (line 3965) | private async _repairOrgGuests(scope: Scope, orgKey: string | number, ... method _doAddWorkspace (line 3996) | private async _doAddWorkspace( method _addBillingAccount (line 4040) | private _addBillingAccount(qb: SelectQueryBuilder, userI... method _addBillingAccountCalculatedFields (line 4055) | private _addBillingAccountCalculatedFields(qb... method _addFeatures (line 4066) | private _addFeatures(qb: SelectQueryBuilder(users: Availab... method _addForks (line 4093) | private _addForks(userId: number, qb: SelectQ... method _setForkAccess (line 4115) | private _setForkAccess(doc: Document, method _failIfPowerfulAndChangingSelf (line 4147) | private _failIfPowerfulAndChangingSelf(analysis: PermissionDeltaAnalys... method _failIfTooManyBillingManagers (line 4160) | private _failIfTooManyBillingManagers(options: { method _failIfTooManyNewUserInvites (line 4184) | private async _failIfTooManyNewUserInvites(options: { method _updateUserPermissions (line 4227) | private async _updateUserPermissions( method _aggJsonObject (line 4272) | private _aggJsonObject(content: { [key: string]: string }): string { method _docs (line 4284) | private _docs(manager?: EntityManager, cte?: string) { method _doc (line 4299) | private _doc(scope: DocScope, options: DocQueryOptions = {}): SelectQu... method _fork (line 4370) | private _fork(scope: DocScope, options: QueryOptions = {}): SelectQuer... method _workspaces (line 4403) | private _workspaces(manager?: EntityManager) { method _onDoc (line 4418) | private _onDoc(scope: Scope) { method _workspace (line 4434) | private _workspace(scope: Scope, wsId: number, options: QueryOptions =... method _orgs (line 4453) | private _orgs(manager?: EntityManager) { method _whereOrg (line 4468) | private _whereOrg(qb: T, org: string... method _wherePlainOrg (line 4488) | private _wherePlainOrg(qb: T, org: s... method _withAccess (line 4507) | private _withAccess(qb: SelectQueryBuilder, users: AvailableUsers, method _filterByOrgGroups (line 4528) | private _filterByOrgGroups(qb: SelectQueryBuilder, users... method _single (line 4564) | private _single(result: QueryResult) { method _moveInheritedGroups (line 4591) | private _moveInheritedGroups( method _verifyAclPermissions (line 4642) | private async _verifyAclPermissions( method _normalizeQueryResults (line 4724) | private _normalizeQueryResults(value: any, method _isForbidden (line 4831) | private _isForbidden(entity: any, ignoreAccess: boolean, scope?: Scope... method _markIsPermitted (line 4854) | private _markIsPermitted( method _getUsersAcls (line 4950) | private _getUsersAcls(qb: SelectQueryBuilder, users: AvailableUsers, method _getDocsInheritingFrom (line 5018) | private async _getDocsInheritingFrom(manager: EntityManager, options: ... method _joinToAllGroupUsers (line 5041) | public _joinToAllGroupUsers(qb: SelectQueryBu... method _applyLimit (line 5056) | private _applyLimit(qb: SelectQueryBuilder... method _mergePersonalOrgs (line 5094) | private _mergePersonalOrgs(userId: number, orgs: Organization[]): Orga... method _restrictShares (line 5107) | private _restrictShares(role: roles.NonGuestRole | null, limit: number, method _restrictAllDocShares (line 5142) | private _restrictAllDocShares(features: Features, method _checkRoomForAnotherDoc (line 5163) | private async _checkRoomForAnotherDoc(workspace: Workspace, manager: E... method _checkUserChangeAllowed (line 5187) | private _checkUserChangeAllowed(userId: number, groups: Group[]) { method _loadDocAccess (line 5194) | private async _loadDocAccess(scope: DocScope, markPermissions: Permiss... method _loadWorkspaceAccess (line 5221) | private async _loadWorkspaceAccess( method _userChangeNotification (line 5258) | private _userChangeNotification( method _inviteNotification (line 5276) | private _inviteNotification(userId: number, resource: Organization | W... method _billingManagerNotification (line 5284) | private _billingManagerNotification(userId: number, addUserId: number,... method _teamCreatorNotification (line 5290) | private _teamCreatorNotification(userId: number) { method _streamingDestinationsChange (line 5296) | private _streamingDestinationsChange(orgId?: number) { method _setWorkspaceRemovedAt (line 5303) | private _setWorkspaceRemovedAt(scope: Scope, wsId: number, removedAt: ... method _setDocumentRemovedAt (line 5324) | private _setDocumentRemovedAt(scope: DocScope, removedAt: Date | null) { method _setDocumentDisabledAt (line 5328) | private _setDocumentDisabledAt(scope: DocScope, removedAt: Date | null) { method _setDocumentDeletionProperty (line 5332) | private _setDocumentDeletionProperty(scope: DocScope, property: "remov... method _filterAccessData (line 5359) | private _filterAccessData( method _buildWorkspaceWithACLRules (line 5384) | private _buildWorkspaceWithACLRules(scope: Scope, wsId: number, option... method _getWorkspaceWithACLRules (line 5397) | private _getWorkspaceWithACLRules(scope: Scope, wsId: number, options:... method _buildOrgWithACLRulesQuery (line 5405) | private _buildOrgWithACLRulesQuery(scope: Scope, org: number | string,... method _getOrgWithACLRules (line 5417) | private _getOrgWithACLRules(scope: Scope, org: number | string) { function verifyEntity (line 5438) | async function verifyEntity( function getFrom (line 5467) | function getFrom(queryBuilder: SelectQueryBuilder): string { function removeRole (line 5475) | function removeRole(usersWithRoles: Map) { function makeDocAuthResult (line 5479) | async function makeDocAuthResult(docPromise: Promise): Promise... function getDocAuthKeyFromScope (line 5494) | function getDocAuthKeyFromScope(scope: Scope): DocAuthKey { function isNonGuestGroup (line 5501) | function isNonGuestGroup(group: Group): group is NonGuestGroup { function getNonGuestGroups (line 5505) | function getNonGuestGroups(entity: Organization | Workspace | Document):... function getUserAccessChanges (line 5509) | function getUserAccessChanges({ function getDocResult (line 5539) | function getDocResult(queryResult: QueryResult) { function patch (line 5549) | function patch(obj: T, ...patches: Partial[]): T { function prepareStatementIfPossible (line 5553) | function prepareStatementIfPossible(builder: SelectQueryBuilder) { FILE: app/gen-server/lib/homedb/Interfaces.ts type QueryResult (line 15) | interface QueryResult { type PreviousAndCurrent (line 21) | interface PreviousAndCurrent { type GetUserOptions (line 26) | interface GetUserOptions { type UserProfileChange (line 32) | interface UserProfileChange { type AvailableUsers (line 42) | type AvailableUsers = number | UserProfile[]; type NonGuestGroup (line 44) | type NonGuestGroup = Group & { name: roles.NonGuestRole }; type Resource (line 46) | type Resource = Organization | Workspace | Document; type RunInTransaction (line 48) | type RunInTransaction = ( type DocumentAccessChanges (line 53) | interface DocumentAccessChanges { type WorkspaceAccessChanges (line 58) | interface WorkspaceAccessChanges { type OrgAccessChanges (line 64) | interface OrgAccessChanges { type RoleGroupDescriptor (line 69) | interface RoleGroupDescriptor { type GroupWithMembersDescriptor (line 76) | interface GroupWithMembersDescriptor { type AccessChanges (line 83) | interface AccessChanges { type ServiceAccountProperties (line 91) | type ServiceAccountProperties = Partial { method getUserByRef (line 173) | public async getUserByRef( method getUser (line 182) | public async getUser( method getFullUser (line 192) | public async getFullUser(userId: number): Promise { method getUserAndEnsureUnsubscribeKey (line 201) | public async getUserAndEnsureUnsubscribeKey(userId: number): Promise, manager?: Enti... method getUserByLogin (line 431) | public async getUserByLogin(email: string, options: GetUserOptions = {... method deleteUser (line 564) | public async deleteUser(scope: Scope, userIdToDelete: number, method initializeSpecialIds (line 643) | public async initializeSpecialIds(): Promise { method completeProfiles (line 669) | public async completeProfiles(profiles: UserProfile[]): Promise):... method checkUserChangeAllowed (line 945) | public checkUserChangeAllowed(userId: number, groups: Group[]) { method getApiKey (line 953) | public async getApiKey(userId: number) { method createApiKey (line 962) | public async createApiKey(userId: number, force: boolean, transaction?... method deleteApiKey (line 977) | public async deleteApiKey(userId: number, transaction?: EntityManager)... method _maybeCreateSpecialUserId (line 993) | private async _maybeCreateSpecialUserId(profile: UserProfile) { method _getNameOrDeduceFromEmail (line 1006) | private _getNameOrDeduceFromEmail(name: string, email: string) { method _mergeIndistinguishableEmails (line 1015) | private _mergeIndistinguishableEmails(delta: PermissionDelta) { method _buildExistingUsersByLoginRequest (line 1033) | private _buildExistingUsersByLoginRequest( FILE: app/gen-server/lib/scrubUserFromOrg.ts function scrubUserFromOrg (line 24) | async function scrubUserFromOrg( function scrubUserFromBillingAccounts (line 132) | async function scrubUserFromBillingAccounts(removeUserId: number, newUse... function addMissingGuestMemberships (line 168) | async function addMissingGuestMemberships(userId: number, orgId: number, type Mention (line 232) | interface Mention { type MentionKey (line 240) | type MentionKey = string; function getMentionKey (line 242) | function getMentionKey(mention: Mention): MentionKey { FILE: app/gen-server/lib/values.ts type NativeValues (line 7) | interface NativeValues { FILE: app/gen-server/migration/1536634251710-Initial.ts class Initial1536634251710 (line 5) | class Initial1536634251710 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 295) | public async down(queryRunner: QueryRunner): Promise { FILE: app/gen-server/migration/1539031763952-Login.ts class Login1539031763952 (line 3) | class Login1539031763952 implements MigrationInterface { method up (line 4) | public async up(queryRunner: QueryRunner): Promise { method down (line 35) | public async down(queryRunner: QueryRunner): Promise { FILE: app/gen-server/migration/1549313797109-PinDocs.ts class PinDocs1549313797109 (line 3) | class PinDocs1549313797109 implements MigrationInterface { method up (line 4) | public async up(queryRunner: QueryRunner): Promise { method down (line 13) | public async down(queryRunner: QueryRunner): Promise { FILE: app/gen-server/migration/1549381727494-UserPicture.ts class UserPicture1549381727494 (line 3) | class UserPicture1549381727494 implements MigrationInterface { method up (line 4) | public async up(queryRunner: QueryRunner): Promise { method down (line 12) | public async down(queryRunner: QueryRunner): Promise { FILE: app/gen-server/migration/1551805156919-LoginDisplayEmail.ts class LoginDisplayEmail1551805156919 (line 3) | class LoginDisplayEmail1551805156919 implements MigrationInterface { method up (line 4) | public async up(queryRunner: QueryRunner): Promise { method down (line 12) | public async down(queryRunner: QueryRunner): Promise { FILE: app/gen-server/migration/1552416614755-LoginDisplayEmailNonNull.ts class LoginDisplayEmailNonNull1552416614755 (line 3) | class LoginDisplayEmailNonNull1552416614755 implements MigrationInterface { method up (line 4) | public async up(queryRunner: QueryRunner): Promise { method down (line 24) | public async down(queryRunner: QueryRunner): Promise { FILE: app/gen-server/migration/1553016106336-Indexes.ts class Indexes1553016106336 (line 3) | class Indexes1553016106336 implements MigrationInterface { method up (line 4) | public async up(queryRunner: QueryRunner): Promise { method down (line 52) | public async down(queryRunner: QueryRunner): Promise { FILE: app/gen-server/migration/1556726945436-Billing.ts class Billing1556726945436 (line 9) | class Billing1556726945436 implements MigrationInterface { method up (line 10) | public async up(queryRunner: QueryRunner): Promise { method down (line 213) | public async down(queryRunner: QueryRunner): Promise { FILE: app/gen-server/migration/1557157922339-OrgDomainUnique.ts class OrgDomainUnique1557157922339 (line 3) | class OrgDomainUnique1557157922339 implements MigrationInterface { method up (line 4) | public async up(queryRunner: QueryRunner): Promise { method down (line 16) | public async down(queryRunner: QueryRunner): Promise { FILE: app/gen-server/migration/1561589211752-Aliases.ts class Aliases1561589211752 (line 5) | class Aliases1561589211752 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 62) | public async down(queryRunner: QueryRunner): Promise { FILE: app/gen-server/migration/1568238234987-TeamMembers.ts class TeamMembers1568238234987 (line 10) | class TeamMembers1568238234987 implements MigrationInterface { method up (line 11) | public async up(queryRunner: QueryRunner): Promise { method down (line 38) | public async down(queryRunner: QueryRunner): Promise { FILE: app/gen-server/migration/1569593726320-FirstLogin.ts class FirstLogin1569593726320 (line 3) | class FirstLogin1569593726320 implements MigrationInterface { method up (line 4) | public async up(queryRunner: QueryRunner): Promise { method down (line 14) | public async down(queryRunner: QueryRunner): Promise { FILE: app/gen-server/migration/1569946508569-FirstTimeUser.ts class FirstTimeUser1569946508569 (line 5) | class FirstTimeUser1569946508569 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 14) | public async down(queryRunner: QueryRunner): Promise { FILE: app/gen-server/migration/1573569442552-CustomerIndex.ts class CustomerIndex1573569442552 (line 3) | class CustomerIndex1573569442552 implements MigrationInterface { method up (line 4) | public async up(queryRunner: QueryRunner): Promise { method down (line 11) | public async down(queryRunner: QueryRunner): Promise { FILE: app/gen-server/migration/1579559983067-ExtraIndexes.ts class ExtraIndexes1579559983067 (line 3) | class ExtraIndexes1579559983067 implements MigrationInterface { method up (line 4) | public async up(queryRunner: QueryRunner): Promise { method down (line 35) | public async down(queryRunner: QueryRunner): Promise { FILE: app/gen-server/migration/1591755411755-OrgHost.ts class OrgHost1591755411755 (line 3) | class OrgHost1591755411755 implements MigrationInterface { method up (line 4) | public async up(queryRunner: QueryRunner): Promise { method down (line 13) | public async down(queryRunner: QueryRunner): Promise { FILE: app/gen-server/migration/1592261300044-DocRemovedAt.ts class DocRemovedAt1592261300044 (line 5) | class DocRemovedAt1592261300044 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 20) | public async down(queryRunner: QueryRunner): Promise { FILE: app/gen-server/migration/1596456522124-Prefs.ts class Prefs1596456522124 (line 5) | class Prefs1596456522124 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 59) | public async down(queryRunner: QueryRunner): Promise { FILE: app/gen-server/migration/1623871765992-ExternalBilling.ts class ExternalBilling1623871765992 (line 5) | class ExternalBilling1623871765992 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 20) | public async down(queryRunner: QueryRunner): Promise { FILE: app/gen-server/migration/1626369037484-DocOptions.ts class DocOptions1626369037484 (line 5) | class DocOptions1626369037484 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 14) | public async down(queryRunner: QueryRunner): Promise { FILE: app/gen-server/migration/1631286208009-Secret.ts class Secret1631286208009 (line 3) | class Secret1631286208009 implements MigrationInterface { method up (line 4) | public async up(queryRunner: QueryRunner): Promise { method down (line 33) | public async down(queryRunner: QueryRunner): Promise { FILE: app/gen-server/migration/1644363380225-UserOptions.ts class UserOptions1644363380225 (line 5) | class UserOptions1644363380225 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 14) | public async down(queryRunner: QueryRunner): Promise { FILE: app/gen-server/migration/1647883793388-GracePeriodStart.ts class GracePeriodStart1647883793388 (line 5) | class GracePeriodStart1647883793388 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 14) | public async down(queryRunner: QueryRunner): Promise { FILE: app/gen-server/migration/1651469582887-DocumentUsage.ts class DocumentUsage1651469582887 (line 5) | class DocumentUsage1651469582887 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 14) | public async down(queryRunner: QueryRunner): Promise { FILE: app/gen-server/migration/1652273656610-Activations.ts class Activations1652273656610 (line 5) | class Activations1652273656610 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 37) | public async down(queryRunner: QueryRunner): Promise { FILE: app/gen-server/migration/1652277549983-UserConnectId.ts class UserConnectId1652277549983 (line 3) | class UserConnectId1652277549983 implements MigrationInterface { method up (line 4) | public async up(queryRunner: QueryRunner): Promise { method down (line 18) | public async down(queryRunner: QueryRunner): Promise { FILE: app/gen-server/migration/1663851423064-UserUUID.ts class UserUUID1663851423064 (line 6) | class UserUUID1663851423064 implements MigrationInterface { method up (line 7) | public async up(queryRunner: QueryRunner): Promise { method down (line 40) | public async down(queryRunner: QueryRunner): Promise { FILE: app/gen-server/migration/1664528376930-UserRefUnique.ts class UserRefUnique1664528376930 (line 6) | class UserRefUnique1664528376930 implements MigrationInterface { method up (line 7) | public async up(queryRunner: QueryRunner): Promise { method down (line 38) | public async down(queryRunner: QueryRunner): Promise { FILE: app/gen-server/migration/1673051005072-Forks.ts class Forks1673051005072 (line 3) | class Forks1673051005072 implements MigrationInterface { method up (line 4) | public async up(queryRunner: QueryRunner): Promise { method down (line 39) | public async down(queryRunner: QueryRunner): Promise { FILE: app/gen-server/migration/1678737195050-ForkIndexes.ts class ForkIndexes1678737195050 (line 3) | class ForkIndexes1678737195050 implements MigrationInterface { method up (line 4) | public async up(queryRunner: QueryRunner): Promise { method down (line 17) | public async down(queryRunner: QueryRunner): Promise { FILE: app/gen-server/migration/1682636695021-ActivationPrefs.ts class ActivationPrefs1682636695021 (line 5) | class ActivationPrefs1682636695021 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 14) | public async down(queryRunner: QueryRunner): Promise { FILE: app/gen-server/migration/1685343047786-AssistantLimit.ts class AssistantLimit1685343047786 (line 5) | class AssistantLimit1685343047786 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 80) | public async down(queryRunner: QueryRunner): Promise { FILE: app/gen-server/migration/1701557445716-Shares.ts class Shares1701557445716 (line 5) | class Shares1701557445716 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 51) | public async down(queryRunner: QueryRunner): Promise { FILE: app/gen-server/migration/1711557445716-Billing.ts class Billing1711557445716 (line 5) | class Billing1711557445716 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 20) | public async down(queryRunner: QueryRunner): Promise { FILE: app/gen-server/migration/1713186031023-UserLastConnection.ts class UserLastConnection1713186031023 (line 3) | class UserLastConnection1713186031023 implements MigrationInterface { method up (line 4) | public async up(queryRunner: QueryRunner): Promise { method down (line 14) | public async down(queryRunner: QueryRunner): Promise { FILE: app/gen-server/migration/1722529827161-Activation-Enabled.ts class ActivationEnabled1722529827161 (line 5) | class ActivationEnabled1722529827161 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 16) | public async down(queryRunner: QueryRunner): Promise { FILE: app/gen-server/migration/1727747249153-Configs.ts class Configs1727747249153 (line 6) | class Configs1727747249153 implements MigrationInterface { method up (line 7) | public async up(queryRunner: QueryRunner): Promise { method down (line 64) | public async down(queryRunner: QueryRunner): Promise { FILE: app/gen-server/migration/1729754662550-LoginsEmailIndex.ts class LoginsEmailsIndex1729754662550 (line 3) | class LoginsEmailsIndex1729754662550 implements MigrationInterface { method up (line 4) | public async up(queryRunner: QueryRunner): Promise { method down (line 11) | public async down(queryRunner: QueryRunner): Promise { FILE: app/gen-server/migration/1732103776245-GracePeriod.ts class GracePeriod1732103776245 (line 5) | class GracePeriod1732103776245 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 14) | public async down(queryRunner: QueryRunner): Promise { FILE: app/gen-server/migration/1738912357827-UserCreatedAt.ts class UserCreatedAt1738912357827 (line 5) | class UserCreatedAt1738912357827 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 46) | public async down(queryRunner: QueryRunner): Promise { FILE: app/gen-server/migration/1746246433628-DocPref.ts class DocPref1746246433628 (line 5) | class DocPref1746246433628 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 38) | public async down(queryRunner: QueryRunner): Promise { FILE: app/gen-server/migration/1749454162428-GroupUsersCreatedAt.ts class GroupUsersCreatedAt1749454162428 (line 5) | class GroupUsersCreatedAt1749454162428 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 19) | public async down(queryRunner: QueryRunner): Promise { FILE: app/gen-server/migration/1753088213255-GroupTypes.ts class GroupTypes1753088213255 (line 5) | class GroupTypes1753088213255 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 38) | public async down(queryRunner: QueryRunner): Promise { FILE: app/gen-server/migration/1754077317821-UserDisabledAt.ts class UserDisabledAt1754077317821 (line 5) | class UserDisabledAt1754077317821 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 14) | public async down(queryRunner: QueryRunner): Promise { FILE: app/gen-server/migration/1756799894986-UserUnsubscribeKey.ts class UserUnsubscribeKey1756799894986 (line 6) | class UserUnsubscribeKey1756799894986 implements MigrationInterface { method up (line 7) | public async up(queryRunner: QueryRunner): Promise { method down (line 15) | public async down(queryRunner: QueryRunner): Promise { FILE: app/gen-server/migration/1756918816559-ServiceAccounts.ts class ServiceAccounts1756918816559 (line 6) | class ServiceAccounts1756918816559 implements MigrationInterface { method up (line 7) | public async up(queryRunner: QueryRunner): Promise { method down (line 90) | public async down(queryRunner: QueryRunner): Promise { FILE: app/gen-server/migration/1759256005608-Proposals.ts class Proposals1759256005608 (line 6) | class Proposals1759256005608 implements MigrationInterface { method up (line 7) | public async up(queryRunner: QueryRunner): Promise { method down (line 86) | public async down(queryRunner: QueryRunner): Promise { FILE: app/gen-server/migration/1759434763338-DocDisabledAt.ts class DocDisabledAt1759434763338 (line 5) | class DocDisabledAt1759434763338 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 14) | public async down(queryRunner: QueryRunner): Promise { FILE: app/gen-server/migration/1764872085347-OAuthClientsAndGrants.ts class OAuthClientsAndGrants1764872085347 (line 6) | class OAuthClientsAndGrants1764872085347 implements MigrationInterface { method up (line 7) | public async up(queryRunner: QueryRunner): Promise { method down (line 127) | public async down(queryRunner: QueryRunner): Promise { FILE: app/gen-server/sqlUtils.ts function sqliteBitOr (line 17) | function sqliteBitOr(column: string, bits: number): string { function bitOr (line 34) | function bitOr(dbType: DatabaseType, column: string, bits: number): stri... function hasOnlyTheseIdsOrNull (line 50) | function hasOnlyTheseIdsOrNull(dbType: DatabaseType, ids: number[], colu... function hasAtLeastOneOfTheseIds (line 66) | function hasAtLeastOneOfTheseIds(dbType: DatabaseType, ids: number[], co... function makeJsonArray (line 80) | function makeJsonArray(dbType: DatabaseType, content: string): string { function readJson (line 93) | function readJson(dbType: DatabaseType, selection: any) { function now (line 104) | function now(dbType: DatabaseType) { function fromNow (line 116) | function fromNow(dbType: DatabaseType, relative: string) { function datetime (line 127) | function datetime(dbType: DatabaseType) { function getRawAndEntities (line 158) | async function getRawAndEntities(rawQueryBuilde... type QueryRunnerSource (line 198) | interface QueryRunnerSource { FILE: app/plugin/CustomSectionAPI.ts type ColumnToMap (line 5) | interface ColumnToMap { type ColumnsToMap (line 41) | type ColumnsToMap = (string | ColumnToMap)[]; type InteractionOptionsRequest (line 46) | interface InteractionOptionsRequest { type InteractionOptions (line 71) | interface InteractionOptions { type WidgetColumnMap (line 81) | interface WidgetColumnMap { type CustomSectionAPI (line 88) | interface CustomSectionAPI { FILE: app/plugin/DocApiTypes.ts type NewRecord (line 6) | interface NewRecord { type NewRecordWithStringId (line 14) | interface NewRecordWithStringId { type Record (line 26) | interface Record { type RecordWithStringId (line 31) | interface RecordWithStringId { type AddOrUpdateRecord (line 39) | interface AddOrUpdateRecord { type RecordsPatch (line 56) | interface RecordsPatch { type RecordsPost (line 63) | interface RecordsPost { type RecordsPut (line 70) | interface RecordsPut { type RecordId (line 74) | type RecordId = number; type MinimalRecord (line 79) | interface MinimalRecord { type ColumnsPost (line 83) | interface ColumnsPost { type ColumnsPatch (line 87) | interface ColumnsPatch { type ColumnsPut (line 91) | interface ColumnsPut { type TablePost (line 99) | interface TablePost extends ColumnsPost { type ColumnMetadata (line 103) | interface ColumnMetadata { type TableMetadata (line 113) | interface TableMetadata { type TablesGet (line 122) | interface TablesGet { type TablesPost (line 126) | interface TablesPost { type TablesPatch (line 130) | interface TablesPatch { type SqlPost (line 137) | interface SqlPost { type SetAttachmentStorePost (line 147) | interface SetAttachmentStorePost { type AttachmentStore (line 151) | type AttachmentStore = "internal" | "external"; type AttachmentStoreDesc (line 153) | interface AttachmentStoreDesc { FILE: app/plugin/FileParserAPI.ts type EditOptionsAPI (line 7) | interface EditOptionsAPI { type ParseFileAPI (line 11) | interface ParseFileAPI { type ParseOptions (line 20) | interface ParseOptions { type ParseOptionSchema (line 29) | interface ParseOptionSchema { type FileSource (line 35) | interface FileSource { type ParseFileResult (line 58) | interface ParseFileResult extends GristTables { FILE: app/plugin/GristAPI.ts type UIRowId (line 46) | type UIRowId = number | "new"; type CursorPos (line 51) | interface CursorPos { type ComponentKind (line 75) | type ComponentKind = "safeBrowser" | "safePython" | "unsafeNode"; constant RPC_GRISTAPI_INTERFACE (line 77) | const RPC_GRISTAPI_INTERFACE = "_grist_api"; type GristAPI (line 79) | interface GristAPI { type GristDocAPI (line 109) | interface GristDocAPI { type CellFormatType (line 154) | type CellFormatType = "normal" | "typed"; type FetchSelectedOptions (line 168) | interface FetchSelectedOptions { type GristView (line 206) | interface GristView { type AccessTokenOptions (line 241) | interface AccessTokenOptions { type AccessTokenResult (line 251) | interface AccessTokenResult { FILE: app/plugin/GristData.ts type GristObjCode (line 4) | enum GristObjCode { type CellValue (line 46) | type CellValue = number | string | boolean | null | [GristObjCode, ...un... type BulkColValues (line 48) | interface BulkColValues { [colId: string]: CellValue[]; } type RowRecord (line 53) | interface RowRecord { type RowRecords (line 62) | interface RowRecords { type GristType (line 67) | type GristType = "Any" | "Attachments" | "Blob" | "Bool" | "Choice" | "C... FILE: app/plugin/GristTable.ts type GristTable (line 8) | interface GristTable { type GristTables (line 18) | interface GristTables { type GristColumn (line 25) | interface GristColumn { type APIType (line 30) | enum APIType { FILE: app/plugin/ImportSourceAPI-ti.ts constant URL (line 25) | const URL = t.iface([], { FILE: app/plugin/ImportSourceAPI.ts type ImportSourceAPI (line 7) | interface ImportSourceAPI { type ImportProcessorAPI (line 17) | interface ImportProcessorAPI { type FileContent (line 21) | interface FileContent { type FileListItem (line 26) | interface FileListItem { type URL (line 35) | interface URL { type ImportSource (line 40) | interface ImportSource { FILE: app/plugin/InternalImportSourceAPI.ts type InternalImportSourceAPI (line 15) | interface InternalImportSourceAPI { FILE: app/plugin/PluginManifest.ts type PublishedPlugin (line 26) | interface PublishedPlugin extends BarePlugin { type BarePlugin (line 36) | interface BarePlugin { type ImportSource (line 133) | interface ImportSource { type FileParser (line 174) | interface FileParser { type CustomSection (line 200) | interface CustomSection { type Implementation (line 219) | interface Implementation { FILE: app/plugin/RenderOptions.ts type RenderTarget (line 6) | type RenderTarget = "fullscreen" | number; type RenderOptions (line 11) | interface RenderOptions { FILE: app/plugin/StorageAPI.ts type Storage (line 2) | interface Storage { FILE: app/plugin/TableOperations.ts type TableOperations (line 6) | interface TableOperations { type OpOptions (line 41) | interface OpOptions { type UpsertOptions (line 49) | interface UpsertOptions extends OpOptions { FILE: app/plugin/TableOperationsImpl.ts class TableOperationsImpl (line 16) | class TableOperationsImpl implements TableOperations { method constructor (line 17) | public constructor(private _platform: TableOperationsPlatform, method getTableId (line 21) | public getTableId() { method create (line 27) | public async create(recordsOrRecord: Types.NewRecord[] | Types.NewRecord, method update (line 37) | public async update(recordOrRecords: Types.Record | Types.Record[], op... method upsert (line 53) | public async upsert(recordOrRecords: Types.AddOrUpdateRecord | Types.A... method destroy (line 85) | public async destroy(recordIdOrRecordIds: Types.RecordId | Types.Recor... method updateRecords (line 97) | public async updateRecords(columnValues: BulkColValues, rowIds: number[], method addRecords (line 108) | public async addRecords( method _addOrUpdateRecords (line 116) | private async _addOrUpdateRecords( method _applyUserActions (line 133) | private async _applyUserActions(tableId: string, colNames: string[], a... type TableOperationsPlatform (line 144) | interface TableOperationsPlatform { function convertToBulkColValues (line 155) | function convertToBulkColValues(records: (Types.Record | Types.NewRecord... function fieldNames (line 166) | function fieldNames(records: any[]) { function areSameFields (line 170) | function areSameFields(records: (Types.Record | Types.NewRecord)[]) { function withRecords (line 180) | async function withRecords(recordsOrRecord: T[] | T, op: (records... function handleSandboxErrorOnPlatform (line 191) | async function handleSandboxErrorOnPlatform( FILE: app/plugin/TypeCheckers.ts function checkDuplicates (line 31) | function checkDuplicates(types: { [key: string]: object }[]) { FILE: app/plugin/WidgetAPI.ts type WidgetAPI (line 4) | interface WidgetAPI { FILE: app/plugin/grist-plugin-api.ts method fetchSelectedTable (line 62) | async fetchSelectedTable(options: FetchSelectedOptions = {}) { method fetchSelectedRecord (line 81) | async fetchSelectedRecord(rowId: number, options: FetchSelectedOptions =... function fetchSelectedTable (line 118) | async function fetchSelectedTable(options: FetchSelectedOptions = {}) { function fetchSelectedRecord (line 127) | async function fetchSelectedRecord(rowId: number, options: FetchSelected... function getTable (line 179) | function getTable(tableId?: string): TableOperations { function getAccessToken (line 211) | async function getAccessToken(options?: AccessTokenOptions): Promise { function getSelectedTableIdSync (line 230) | function getSelectedTableIdSync(): string | undefined { function getMappingsIfChanged (line 251) | async function getMappingsIfChanged(data: any): Promise unk... function onRecords (line 405) | function onRecords( function onOptions (line 424) | function onOptions(callback: (options: any, settings: InteractionOptions... function onThemeChange (line 435) | function onThemeChange(callback: (theme: any) => unknown) { function addImporter (line 462) | async function addImporter(name: string, path: string, mode: "fullscreen... function enableKeyboardShortcuts (line 479) | function enableKeyboardShortcuts() { type ReadyPayload (line 489) | interface ReadyPayload extends Omit(count: number, value: T): T[] { type MaybePromise (line 11) | type MaybePromise = T | Promise; FILE: app/plugin/objtypes.ts constant PENDING_DATA_PLACEHOLDER (line 11) | const PENDING_DATA_PLACEHOLDER = "Loading..."; class GristDate (line 16) | class GristDate extends Date { method fromGristValue (line 17) | public static fromGristValue(epochSec: number): GristDate { method toString (line 21) | public toString() { class GristDateTime (line 32) | class GristDateTime extends Date { method fromGristValue (line 33) | public static fromGristValue(epochSec: number, timezone: string): Gris... method toString (line 38) | public toString() { return this.toISOString(); } class Reference (line 45) | class Reference { method constructor (line 46) | constructor(public tableId: string, public rowId: number) {} method toString (line 48) | public toString(): string { class ReferenceList (line 57) | class ReferenceList { method constructor (line 58) | constructor(public tableId: string, public rowIds: number[]) {} method toString (line 60) | public toString(): string { class RaisedException (line 69) | class RaisedException { method constructor (line 75) | constructor(list: any[]) { method toString (line 89) | public toString() { class UnknownValue (line 104) | class UnknownValue { method safeRepr (line 106) | public static safeRepr(value: unknown): string { method constructor (line 114) | constructor(public value: unknown) {} method toString (line 115) | public toString() { class PendingValue (line 123) | class PendingValue { method toString (line 124) | public toString() { class SkipValue (line 132) | class SkipValue { method toString (line 133) | public toString() { class CensoredValue (line 145) | class CensoredValue { method toString (line 146) | public toString() { function encodeObject (line 157) | function encodeObject(value: unknown): CellValue { function decodeObject (line 200) | function decodeObject(value: CellValue): unknown { function mapValues (line 231) | function mapValues( FILE: app/server/MergedServer.ts type ServerType (line 14) | type ServerType = "home" | "docs" | "static" | "app"; function parseServerTypes (line 18) | function parseServerTypes(serverTypes: string | undefined): ServerType[] { function checkUserContentPort (line 34) | function checkUserContentPort(): number | null { type ServerOptions (line 54) | interface ServerOptions extends FlexServerOptions { class MergedServer (line 68) | class MergedServer { method create (line 69) | public static async create(port: number, serverTypes: ServerType[], op... method constructor (line 145) | private constructor(port: number, serverTypes: ServerType[], options: ... method hasComponent (line 151) | public hasComponent(serverType: ServerType) { method run (line 155) | public async run() { method close (line 228) | public async close() { method testGetWorkerFromId (line 238) | public testGetWorkerFromId(docWorkerId: string): MergedServer { method _maybeClearSessions (line 250) | private async _maybeClearSessions() { function startMain (line 269) | async function startMain() { FILE: app/server/companion.ts function main (line 21) | async function main() { function getProgram (line 40) | function getProgram(): commander.Command { function addAuditLogsCommand (line 56) | function addAuditLogsCommand(program: commander.Command, options: Comman... function addHistoryCommand (line 74) | function addHistoryCommand(program: commander.Command, options: CommandO... function addSettingsCommand (line 87) | function addSettingsCommand(program: commander.Command, function showTelemetry (line 101) | async function showTelemetry(options: { function describeTelemetryLevel (line 134) | function describeTelemetryLevel(level: Level, nesting: "" | "#") { function showTelemetryAtLevel (line 153) | function showTelemetryAtLevel(level: Level, nesting: "" | "#" | "##") { function addSiteCommand (line 172) | function addSiteCommand(program: commander.Command, function addDbCommand (line 202) | function addDbCommand(program: commander.Command, function addSqliteCommand (line 253) | function addSqliteCommand(program: commander.Command) { function addVersionCommand (line 272) | function addVersionCommand(program: commander.Command) { function dbCheck (line 290) | async function dbCheck(connection: Connection) { function getHomeDBManager (line 319) | async function getHomeDBManager() { function section (line 329) | function section(program: commander.Command, options: { type CommandOptions (line 350) | interface CommandOptions { function parseIntForCommander (line 356) | function parseIntForCommander(value: string, prev: number) { FILE: app/server/declarations.d.ts class Disposer (line 18) | class Disposer {} type ProcessEnv (line 52) | interface ProcessEnv { FILE: app/server/devServerMain.ts function getPort (line 34) | function getPort(envVarName: string, fallbackPort: number): number { function main (line 39) | async function main() { FILE: app/server/generateCheckpoint.ts function main (line 12) | async function main() { FILE: app/server/generateInitialDocSql.ts function main (line 25) | async function main(baseName: string) { FILE: app/server/lib/AccessTokens.ts type AccessTokenInfo (line 24) | interface AccessTokenInfo extends AccessTokenOptions { type IAccessTokens (line 32) | interface IAccessTokens { class AccessTokens (line 80) | class AccessTokens implements IAccessTokens { method constructor (line 91) | constructor(cli: RedisClient | null, private _factor: number = 10) { method getNominalTTLInMsec (line 100) | public getNominalTTLInMsec() { method sign (line 105) | public async sign(content: AccessTokenInfo): Promise { method verify (line 117) | public async verify(token: string): Promise { method close (line 136) | public async close() { method _verifyWithGivenDoc (line 142) | private async _verifyWithGivenDoc(docId: string, token: string): Promi... method _verifyWithGivenSecret (line 158) | private _verifyWithGivenSecret(secret: string, token: string): AccessT... method _getOrCreateSecret (line 187) | private async _getOrCreateSecret(docId: string): Promise { method _refreshSecrets (line 203) | private async _refreshSecrets(docId: string): Promise { method _mintSecret (line 208) | private _mintSecret(): string { type IAccessTokenSignerStore (line 216) | interface IAccessTokenSignerStore { class InMemoryAccessTokenSignerStore (line 224) | class InMemoryAccessTokenSignerStore implements IAccessTokenSignerStore { method constructor (line 228) | public constructor() { method getSigners (line 232) | public async getSigners(docId: string): Promise { method setSigners (line 236) | public async setSigners(docId: string, secrets: string[], ttlMsec: num... method close (line 240) | public async close() { class RedisAccessTokenSignerStore (line 250) | class RedisAccessTokenSignerStore implements IAccessTokenSignerStore { method constructor (line 251) | constructor(private _cli: RedisClient) { } method getSigners (line 253) | public async getSigners(docId: string): Promise { method setSigners (line 258) | public async setSigners(docId: string, secrets: string[], ttlMsec: num... method close (line 262) | public async close() { method _getKey (line 265) | private _getKey(docId: string) { FILE: app/server/lib/ActionHistory.ts type ActionGroupOptions (line 22) | interface ActionGroupOptions { type ActionHistoryUndoInfoWithoutClient (line 40) | interface ActionHistoryUndoInfoWithoutClient { type ActionHistoryUndoInfo (line 47) | interface ActionHistoryUndoInfo extends ActionHistoryUndoInfoWithoutClie... function asActionGroup (line 170) | function asActionGroup(history: ActionHistory, function asMinimalActionGroup (line 201) | function asMinimalActionGroup(history: ActionHistory, function getActionUndoInfo (line 217) | function getActionUndoInfo(act: LocalActionBundle, clientId: string, function getActionUndoInfoWithoutClient (line 230) | function getActionUndoInfoWithoutClient(act: LocalActionBundle, retValue... FILE: app/server/lib/ActionHistoryImpl.ts constant ACTION_HISTORY_MAX_ROWS (line 26) | const ACTION_HISTORY_MAX_ROWS = section.flag("maxRows").requireInt({ constant ACTION_HISTORY_MAX_BYTES (line 33) | const ACTION_HISTORY_MAX_BYTES = section.flag("maxBytes").requireInt({ constant ACTION_HISTORY_GRACE_FACTOR (line 39) | const ACTION_HISTORY_GRACE_FACTOR = 1.25; constant ACTION_HISTORY_CHECK_PERIOD (line 40) | const ACTION_HISTORY_CHECK_PERIOD = 10; function encodeAction (line 47) | function encodeAction(action: LocalActionBundle): Buffer { function decodeAction (line 58) | function decodeAction(blob: Buffer | Uint8Array): LocalActionBundle { function decodeActionFromRow (line 67) | function decodeActionFromRow(row: ResultRow): LocalActionBundle { function computeActionHash (line 81) | function computeActionHash(action: LocalActionBundle): string { type ActionIdentifiers (line 94) | interface ActionIdentifiers { type StandardBranches (line 130) | interface StandardBranches { type ActionHistoryOptions (line 137) | interface ActionHistoryOptions { class ActionHistoryImpl (line 177) | class ActionHistoryImpl implements ActionHistory { method constructor (line 185) | constructor(private _db: ISQLiteDB, private _options: ActionHistoryOpt... method wipe (line 189) | public async wipe() { method initialize (line 195) | public async initialize(): Promise { method isInitialized (line 214) | public isInitialized(): boolean { method getNextHubActionNum (line 218) | public getNextHubActionNum(): number { method getNextLocalActionNum (line 222) | public getNextLocalActionNum(): number { method skipActionNum (line 226) | public async skipActionNum(actionNum: number): Promise { method haveLocalUnsent (line 268) | public haveLocalUnsent(): boolean { method haveLocalSent (line 272) | public haveLocalSent(): boolean { method haveLocalActions (line 276) | public haveLocalActions(): boolean { method fetchAllLocalUnsent (line 280) | public async fetchAllLocalUnsent(): Promise { method fetchAllLocal (line 285) | public async fetchAllLocal(): Promise { method clearLocalActions (line 290) | public async clearLocalActions(): Promise { method markAsSent (line 305) | public async markAsSent(actions: LocalActionBundle[]): Promise { method acceptNextSharedAction (line 337) | public async acceptNextSharedAction(actionHash: string | null): Promis... method recordNextLocalUnsent (line 364) | public async recordNextLocalUnsent(action: LocalActionBundle): Promise... method recordNextShared (line 371) | public async recordNextShared(action: LocalActionBundle): Promise { method getRecentActions (line 389) | public async getRecentActions(maxActions?: number): Promise { method getActions (line 421) | public async getActions(actionNums: number[]): Promise<(LocalActionBun... method deleteActions (line 445) | public async deleteActions(keepN: number): Promise { method setActionUndoInfo (line 462) | public setActionUndoInfo(actionHash: string, undoInfo: ActionHistoryUn... method getActionUndoInfo (line 466) | public getActionUndoInfo(actionHash: string): ActionHistoryUndoInfo | ... method _getRecentActionRows (line 474) | private async _getRecentActionRows(maxActions: number | undefined, method _noteSharedAction (line 489) | private _noteSharedAction(actionNum: number): void { method _noteLocalAction (line 497) | private _noteLocalAction(actionNum: number): void { method _addAction (line 504) | private async _addAction(action: LocalActionBundle, method _getBranches (line 529) | private async _getBranches(): Promise { method _asActionIdentifiers (line 545) | private _asActionIdentifiers(row: ResultRow | null): ActionIdentifiers... method _fetchParts (line 578) | private async _fetchParts(start: ActionIdentifiers | null, method _fetchActions (line 624) | private async _fetchActions(start: ActionIdentifiers | null, method _deleteRows (line 640) | private async _deleteRows(rows: ResultRow[], invert?: boolean): Promis... method _pruneLargeHistory (line 659) | private async _pruneLargeHistory(actionNum: number): Promise { FILE: app/server/lib/ActiveDoc.ts constant MAX_RECENT_ACTIONS (line 197) | const MAX_RECENT_ACTIONS = 100; constant DEFAULT_TIMEZONE (line 199) | const DEFAULT_TIMEZONE = (process.versions as any).electron ? moment.tz.... constant DEFAULT_LOCALE (line 200) | const DEFAULT_LOCALE = process.env.GRIST_DEFAULT_LOCALE || "en-US"; constant ACTIVEDOC_TIMEOUT (line 205) | const ACTIVEDOC_TIMEOUT = (process.env.NODE_ENV === "production") ? 30 : 5; constant MEMORY_MEASUREMENT_THROTTLE_WAIT_MS (line 208) | const MEMORY_MEASUREMENT_THROTTLE_WAIT_MS = 60 * 1000; constant UPDATE_CURRENT_TIME_DELAY (line 211) | const UPDATE_CURRENT_TIME_DELAY = { delayMs: 60 * 60 * 1000, varianceMs:... constant UPDATE_DATA_SIZE_DELAY (line 214) | const UPDATE_DATA_SIZE_DELAY = { delayMs: 5 * 60 * 1000, varianceMs: 30 ... constant LOG_DOCUMENT_METRICS_DELAY (line 217) | const LOG_DOCUMENT_METRICS_DELAY = { delayMs: 60 * 60 * 1000, varianceMs... constant SHUTDOWN_ITEM_TIMEOUT_MS (line 220) | const SHUTDOWN_ITEM_TIMEOUT_MS = 5000; constant MAX_INTERNAL_ATTACHMENTS_BYTES (line 222) | const MAX_INTERNAL_ATTACHMENTS_BYTES = constant KEEP_DOC_OPEN_TIMEOUT_MS (line 231) | const KEEP_DOC_OPEN_TIMEOUT_MS = 5 * 60 * 1000; type ActiveDocOptions (line 244) | interface ActiveDocOptions { type UpdateUsageOptions (line 251) | interface UpdateUsageOptions { class ActiveDoc (line 263) | class ActiveDoc extends EventEmitter { method keepDocOpen (line 268) | public static keepDocOpen(target: ActiveDoc, propertyKey: string, desc... method constructor (line 367) | constructor( method docName (line 527) | public get docName(): string { return this._docName; } method features (line 529) | public get features(): Features | undefined { return this._features; } method recoveryMode (line 531) | public get recoveryMode(): boolean { return this._recoveryMode; } method isShuttingDown (line 533) | public get isShuttingDown(): boolean { return this._shuttingDown; } method triggers (line 535) | public get triggers(): DocTriggers { return this._triggers; } method webhookQueue (line 537) | public get webhookQueue(): WebhookQueue { return this._webhookQueue; } method rowLimitRatio (line 539) | public get rowLimitRatio(): number { method dataSizeLimitRatio (line 546) | public get dataSizeLimitRatio(): number { method dataLimitRatio (line 553) | public get dataLimitRatio(): number { method dataLimitInfo (line 557) | public get dataLimitInfo(): DataLimitInfo { method getDocUsageSummary (line 565) | public getDocUsageSummary(): DocUsageSummary { method getFilteredDocUsageSummary (line 574) | public async getFilteredDocUsageSummary( method getUser (line 580) | public getUser(docSession: OptDocSession) { method getUserOverride (line 584) | public async getUserOverride(docSession: OptDocSession) { method getLogMeta (line 589) | public getLogMeta(docSession: OptDocSession | null, docMethod?: string... method setMuted (line 597) | public setMuted() { method muted (line 601) | public get muted() { method isMigrating (line 605) | public isMigrating() { method getRecentActionsDirect (line 611) | public getRecentActionsDirect(maxActions?: number): Promise { method oneStepImport (line 1065) | public async oneStepImport(docSession: OptDocSession, uploadInfo: Uplo... method importParsedFileAsNewTable (line 1074) | public async importParsedFileAsNewTable( method addAttachments (line 1084) | public async addAttachments(docSession: OptDocSession, uploadId: numbe... method getAttachmentMetadataWithoutAccessControl (line 1130) | public getAttachmentMetadataWithoutAccessControl(attId: number): MetaR... method getAttachmentMetadata (line 1142) | public async getAttachmentMetadata(docSession: OptDocSession, attId: n... method getAttachmentData (line 1157) | public async getAttachmentData(docSession: OptDocSession, attRecord: M... method getAttachmentsArchive (line 1171) | public async getAttachmentsArchive(docSession: OptDocSession, method addMissingFilesFromArchive (line 1218) | public async addMissingFilesFromArchive(docSession: OptDocSession, method startTransferringAllAttachmentsToDefaultStore (line 1265) | public async startTransferringAllAttachmentsToDefaultStore() { method attachmentTransferStatus (line 1274) | public async attachmentTransferStatus() { method attachmentLocationSummary (line 1284) | public async attachmentLocationSummary() { method allAttachmentTransfersCompleted (line 1293) | public async allAttachmentTransfersCompleted() { method setAttachmentStore (line 1297) | public async setAttachmentStore(docSession: OptDocSession, id: string ... method setAttachmentStoreFromLabel (line 1309) | public async setAttachmentStoreFromLabel(docSession: OptDocSession, la... method getAttachmentStore (line 1314) | public async getAttachmentStore(): Promise { method fetchMetaTables (line 1321) | public async fetchMetaTables(docSession: OptDocSession) { method waitForInitialization (line 1337) | public async waitForInitialization() { method canDownload (line 1343) | public async canDownload(docSession: OptDocSession) { method canCopyEverything (line 1348) | public async canCopyEverything(docSession: OptDocSession) { method canForkAsOwner (line 1359) | public async canForkAsOwner(docSession: OptDocSession) { method flushAccess (line 1364) | public flushAccess(docSession: OptDocSession) { method fetchTable (line 1375) | public async fetchTable(docSession: OptDocSession, tableId: string, method fetchQuery (line 1387) | public async fetchQuery(docSession: OptDocSession, query: ServerQuery, method fetchPythonCode (line 1469) | public async fetchPythonCode(docSession: OptDocSession): Promise { method assistanceEvaluateFormula (line 1776) | public assistanceEvaluateFormula( method fetchURL (line 1785) | public fetchURL(docSession: DocSession, url: string, options?: FetchUr... method forwardPluginRpc (line 1795) | public async forwardPluginRpc(docSession: DocSession, pluginId: string... method reloadPlugins (line 1811) | public async reloadPlugins(docSession: DocSession) { method reloadDoc (line 1824) | public async reloadDoc(docSession?: DocSession) { method isOwner (line 1830) | public isOwner(docSession: OptDocSession): Promise { method fork (line 1839) | public async fork(docSession: OptDocSession): Promise { method getAccessToken (line 1895) | public async getAccessToken(docSession: OptDocSession, options: Access... method checkAclFormula (line 1925) | public async checkAclFormula(docSession: DocSession, text: string): Pr... method getAclResources (line 1950) | public async getAclResources(docSession: DocSession): Promise { method makeAccessId (line 2212) | public makeAccessId(userId: number | null): string | null { method applyStoredActionsToDocStorage (line 2220) | public async applyStoredActionsToDocStorage(docActions: DocAction[]): ... method onlyAllowMetaDataActionsOnDb (line 2233) | public onlyAllowMetaDataActionsOnDb(flag: boolean) { method getGranularAccessForBundle (line 2244) | public getGranularAccessForBundle(docSession: OptDocSession, docAction... method updateRowCount (line 2251) | public async updateRowCount(rowCount: RowCounts, docSession: OptDocSes... method clearWebhookQueue (line 2271) | public async clearWebhookQueue() { method clearSingleWebhookQueue (line 2275) | public async clearSingleWebhookQueue(webhookId: string) { method webhooksSummary (line 2282) | public async webhooksSummary() { method sendWebhookNotification (line 2293) | public async sendWebhookNotification(type: WebhookMessageType = Webhoo... method sendAttachmentTransferStatusNotification (line 2304) | public async sendAttachmentTransferStatusNotification(attachmentTransf... method sendTimingsNotification (line 2310) | public async sendTimingsNotification() { method logAuditEvent (line 2318) | public logAuditEvent( method logTelemetryEvent (line 2330) | public logTelemetryEvent( method syncShares (line 2347) | public async syncShares(docSession: OptDocSession, options: { method getShare (line 2367) | public async getShare(_docSession: OptDocSession, linkId: string): Pro... method startTiming (line 2371) | public async startTiming(): Promise { method stopTiming (line 2390) | public async stopTiming(): Promise { method getTimings (line 2405) | public async getTimings(): Promise { method getAssistantState (line 2414) | public async getAssistantState(_docSession: OptDocSession, id: string)... method getMemoryUsedMB (line 2424) | public getMemoryUsedMB(): number { method notifySubscribers (line 2428) | public async notifySubscribers(docSession: OptDocSession, accessContro... method _loadOpenDoc (line 2436) | protected async _loadOpenDoc(docSession: OptDocSession): Promise { method _applyUserActionsAsSystem (line 2483) | protected async _applyUserActionsAsSystem(actions: UserAction[]): Prom... method _applyUserActions (line 2505) | protected async _applyUserActions(docSession: OptDocSession, actions: ... method _doShutdownImpl (line 2550) | private async _doShutdownImpl(options: { beforeShutdown?: () => Promis... method _applyUserActionsWithExtendedOptions (line 2657) | private async _applyUserActionsWithExtendedOptions(docSession: OptDocS... method _createDocFile (line 2683) | private async _createDocFile(docSession: OptDocSession, options?: { method _makeInfo (line 2701) | private _makeInfo(docSession: OptDocSession, options: ApplyUAOptions =... method _updateCurrentTime (line 2721) | private async _updateCurrentTime() { method _updateDocUsage (line 2738) | private async _updateDocUsage(usage: Partial, options: ... method _syncDocUsageToDatabase (line 2754) | private _syncDocUsageToDatabase(minimizeDelay = false) { method _assertCanGetAttachment (line 2758) | private async _assertCanGetAttachment(docSession: OptDocSession, attId... method _broadcastDocUsageToClients (line 2788) | private async _broadcastDocUsageToClients() { method _updateGracePeriodStart (line 2801) | private async _updateGracePeriodStart(gracePeriodStart: Date | null) { method _checkDataLimitRatio (line 2808) | private async _checkDataLimitRatio() { method _checkDataSizeLimitRatio (line 2817) | private async _checkDataSizeLimitRatio(docSession: OptDocSession | nul... method _updateDataSize (line 2838) | private async _updateDataSize(options?: UpdateUsageOptions): Promise { method _loadTables (line 2977) | private async _loadTables(docSession: OptDocSession, tableNames: strin... method _fetchTableIfPresent (line 2991) | private async _fetchTableIfPresent(tableName: string): Promise(): P... method _getTelemetryMeta (line 3316) | private _getTelemetryMeta(docSession: OptDocSession | null): Telemetry... method _beforeMigration (line 3334) | private async _beforeMigration(docSession: OptDocSession, versionType:... method _afterMigration (line 3347) | private async _afterMigration(docSession: OptDocSession, versionType: ... method _rawPyCall (line 3358) | private async _rawPyCall(funcName: string, ...varArgs: unknown[]): Pro... method _pyCall (line 3378) | private _pyCall(funcName: string, ...varArgs: unknown[]): Promise { method _getEngine (line 3382) | private async _getEngine(): Promise { method _getDocumentSettings (line 3392) | private _getDocumentSettings(): DocumentSettings { method _updateDocumentSettings (line 3400) | private async _updateDocumentSettings(docSessions: OptDocSession, sett... method _makeEngine (line 3411) | private async _makeEngine(): Promise { method _makeNullEngine (line 3428) | private async _makeNullEngine(): Promise { method _assertUploadInfoSizeBelowLimit (line 3436) | private async _assertUploadInfoSizeBelowLimit(upload: UploadInfo) { method _assertAttachmentSizeBelowLimit (line 3446) | private async _assertAttachmentSizeBelowLimit(uploadSizeBytes: number,... method _updateAttachmentsSize (line 3479) | private async _updateAttachmentsSize(options?: UpdateUsageOptions): Pr... method _getCachedAttachmentColumns (line 3485) | private _getCachedAttachmentColumns(): AttachmentColumns { method _withDataEngine (line 3503) | private async _withDataEngine( method _onInactive (line 3528) | private async _onInactive() { method _getHomeDbManagerOrFail (line 3558) | private _getHomeDbManagerOrFail() { method _doStartTiming (line 3567) | private _doStartTiming() { method _logForkDocumentEvents (line 3571) | private _logForkDocumentEvents( method _registerSQLiteDB (line 3602) | private _registerSQLiteDB() { method _colMetadataRecords (line 3606) | private _colMetadataRecords( function createEmptySandboxActionBundle (line 3640) | function createEmptySandboxActionBundle(): SandboxActionBundle { function tableIdToRef (line 3653) | function tableIdToRef(metaTables: { [p: string]: TableDataAction }, tabl... function colIdToRef (line 3663) | function colIdToRef(metaTables: { [p: string]: TableDataAction }, tableI... type MetaTables (line 3678) | interface MetaTables { type ActiveDocAndReq (line 3681) | interface ActiveDocAndReq { function getRealTableId (line 3684) | async function getRealTableId( function sanitizeApplyUAOptions (line 3701) | function sanitizeApplyUAOptions(options?: ApplyUAOptions): ApplyUAOptions { function createSandbox (line 3708) | function createSandbox(options: { function getTelemetryMeta (line 3728) | function getTelemetryMeta(docSession: OptDocSession | null): TelemetryMe... function attachmentToArchiveFilePath (line 3743) | function attachmentToArchiveFilePath(fileDetails: { fileIdent: string, f... function archiveFilePathToAttachmentIdent (line 3756) | function archiveFilePathToAttachmentIdent(filePath: string): string { FILE: app/server/lib/ActiveDocImport.ts constant IMPORT_TRANSFORM_COLUMN_PREFIX (line 28) | const IMPORT_TRANSFORM_COLUMN_PREFIX = "gristHelper_Import_"; type AddTableRetValue (line 33) | interface AddTableRetValue { type ReferenceDescription (line 40) | interface ReferenceDescription { type FileImportOptions (line 49) | interface FileImportOptions { class ActiveDocImport (line 64) | class ActiveDocImport { method constructor (line 65) | constructor(private _activeDoc: ActiveDoc) {} method importFiles (line 69) | public async importFiles(docSession: DocSession, dataSource: DataSourc... method finishImportFiles (line 82) | public async finishImportFiles(docSession: DocSession, dataSource: Dat... method cancelImportFiles (line 107) | public async cancelImportFiles(docSession: DocSession, method generateImportDiff (line 136) | public async generateImportDiff(hiddenTableId: string, { destCols, des... method oneStepImport (line 220) | public async oneStepImport(docSession: OptDocSession, uploadInfo: Uplo... method importParsedFileAsNewTable (line 234) | public async importParsedFileAsNewTable( method _importFiles (line 323) | private async _importFiles(docSession: OptDocSession, upload: UploadIn... method _importFileAsNewTable (line 385) | private async _importFileAsNewTable(docSession: OptDocSession, tmpPath... method _transformAndFinishImport (line 415) | private async _transformAndFinishImport( method _mergeAndFinishImport (line 484) | private async _mergeAndFinishImport(docSession: OptDocSession, hiddenT... method _getTableComparison (line 587) | private async _getTableComparison(hiddenTableId: string, destTableId: ... method _removeHiddenTables (line 609) | private async _removeHiddenTables(docSession: DocSession, hiddenTableI... method _encodeReferenceAsInt (line 619) | private _encodeReferenceAsInt(parsedTables: GristTable[]): ReferenceDe... method _fixReferences (line 636) | private async _fixReferences(docSession: OptDocSession, function stripPrefixes (line 668) | function stripPrefixes(colIds: string[]): string[] { type MergeFunction (line 673) | type MergeFunction = (srcVal: CellValue, destVal: CellValue) => CellValue; function getMergeFunction (line 682) | function getMergeFunction({ type }: MergeStrategy): MergeFunction { function cleanColumnMetadata (line 709) | function cleanColumnMetadata(columns: GristColumn[], tableData: unknown[... FILE: app/server/lib/ActiveDocUtils.ts function getTableById (line 4) | function getTableById(doc: ActiveDoc, id: number) { function getTableColumnById (line 8) | function getTableColumnById(doc: ActiveDoc, id: number) { function getTableColumnsByTableId (line 12) | function getTableColumnsByTableId(doc: ActiveDoc, tableId: number) { function getWidgetById (line 21) | function getWidgetById(doc: ActiveDoc, id: number) { function getWidgetsByPageId (line 25) | function getWidgetsByPageId(doc: ActiveDoc, pageId: number) { function getDocDataOrThrow (line 32) | function getDocDataOrThrow(doc: ActiveDoc) { function getRecordById (line 41) | function getRecordById( function getRecordName (line 54) | function getRecordName(tableId: keyof SchemaTypes) { FILE: app/server/lib/AppEndpoint.ts type AttachOptions (line 30) | interface AttachOptions { function attachAppEndpoint (line 43) | function attachAppEndpoint(options: AttachOptions): void { function logOpenDocumentEvents (line 222) | function logOpenDocumentEvents(req: RequestWithLogin, options: { FILE: app/server/lib/AppSettings.ts type EnvFile (line 3) | type EnvFile = Record; class AppSettings (line 11) | class AppSettings { method _root (line 16) | private get _root(): AppSettings { method constructor (line 20) | public constructor(public readonly name: string, private _parent?: App... method setEnvVars (line 27) | public setEnvVars(envVars: EnvFile): void { method get (line 35) | public get(): JSONValue | undefined { method getAsBool (line 40) | public getAsBool(): boolean | undefined { method getAsInt (line 48) | public getAsInt(): number | undefined { method getAsFloat (line 64) | public getAsFloat(): number | undefined { method read (line 81) | public read(query: AppSettingQuery) { method readString (line 134) | public readString(query: AppSettingQuery): string | undefined { method requireString (line 144) | public requireString(query: AppSettingQuery): string { method requireInt (line 155) | public requireInt(query: AppSettingQueryNumber): number { method requireFloat (line 166) | public requireFloat(query: AppSettingQueryNumber): number { method readBool (line 178) | public readBool(query: AppSettingQuery): boolean | undefined { method readInt (line 189) | public readInt(query: AppSettingQueryNumber): number | undefined { method readFloat (line 210) | public readFloat(query: AppSettingQueryNumber): number | undefined { method set (line 228) | public set(value: JSONValue): void { method nested (line 234) | public get nested(): { [key: string]: AppSettings } { method section (line 245) | public section(fname: string): AppSettings { method flag (line 261) | public flag(fname: string): AppSettings { method describe (line 269) | public describe(): AppSettingDescription { method describeAll (line 286) | public describeAll(): AppSettingDescription[] { type AppSettingQuery (line 311) | interface AppSettingQuery { type AppSettingQueryNumber (line 332) | interface AppSettingQueryNumber extends AppSettingQuery { type AppSettingQueryResult (line 354) | interface AppSettingQueryResult { type AppSettingDescription (line 364) | interface AppSettingDescription { function getEnvVarsFromQuery (line 374) | function getEnvVarsFromQuery(q?: AppSettingQuery): string[] { type JSONValue (line 381) | type JSONValue = string | number | boolean | null | { [member: string]: ... FILE: app/server/lib/Archive.ts type ArchiveEntry (line 9) | interface ArchiveEntry { type ArchivePackingOptions (line 15) | interface ArchivePackingOptions { type Archive (line 24) | interface Archive { function create_zip_archive (line 45) | function create_zip_archive( function addEntriesToZipArchive (line 71) | async function addEntriesToZipArchive(archive: ZipStream, entries: Async... function addEntryToZipArchive (line 78) | function addEntryToZipArchive(archive: ZipStream, file: ArchiveEntry): P... function create_tar_archive (line 100) | function create_tar_archive( function addEntriesToTarArchive (line 128) | async function addEntriesToTarArchive(archive: tar.Pack, entries: AsyncI... type UnpackedFile (line 136) | interface UnpackedFile { function unpackTarArchive (line 142) | async function unpackTarArchive( FILE: app/server/lib/Assistant.ts function getAssistantV1Options (line 14) | function getAssistantV1Options(): AssistantV1Options { function getAssistantV2Options (line 51) | function getAssistantV2Options(): AssistantV2Options { function getProviderFromHostname (line 73) | function getProviderFromHostname(url: string): AssistantProvider { function getUserHash (line 91) | function getUserHash(session: OptDocSession): string { class NonRetryableError (line 107) | class NonRetryableError extends ApiError {} class TokensExceededError (line 109) | class TokensExceededError extends NonRetryableError {} class TokensExceededFirstMessageError (line 111) | class TokensExceededFirstMessageError extends TokensExceededError { method constructor (line 112) | constructor() { class TokensExceededLaterMessageError (line 124) | class TokensExceededLaterMessageError extends TokensExceededError { method constructor (line 125) | constructor() { class QuotaExceededError (line 137) | class QuotaExceededError extends NonRetryableError { method constructor (line 138) | constructor() { class RetryableError (line 147) | class RetryableError extends Error { method constructor (line 148) | constructor(message: string) { FILE: app/server/lib/AssistantStatePermit.ts type AssistantStatePermit (line 23) | interface AssistantStatePermit extends Permit { function getAndRemoveAssistantStatePermit (line 36) | async function getAndRemoveAssistantStatePermit( function setAssistantStatePermit (line 56) | async function setAssistantStatePermit( FILE: app/server/lib/AttachmentFileManager.ts type AddFileResult (line 21) | interface AddFileResult { class StoresNotConfiguredError (line 26) | class StoresNotConfiguredError extends Error { method constructor (line 27) | constructor() { class StoreNotAvailableError (line 32) | class StoreNotAvailableError extends Error { method constructor (line 35) | constructor(storeId: AttachmentStoreId) { class UnknownDocumentPoolError (line 41) | class UnknownDocumentPoolError extends Error { method constructor (line 42) | constructor() { class MissingAttachmentError (line 47) | class MissingAttachmentError extends Error { method constructor (line 50) | constructor(fileIdent: string) { class AttachmentRetrievalError (line 56) | class AttachmentRetrievalError extends Error { method constructor (line 60) | constructor(storeId: AttachmentStoreId | null, fileId: string, cause?:... class MismatchedFileHashError (line 71) | class MismatchedFileHashError extends Error { method constructor (line 72) | constructor(fileIdent: string, hash: string) { class AttachmentFileManager (line 96) | class AttachmentFileManager extends EventEmitter { method constructor (line 126) | constructor( method shutdown (line 137) | public async shutdown(): Promise { method addFile (line 151) | public async addFile( method addMissingFileData (line 174) | public async addMissingFileData( method getFileData (line 224) | public async getFileData(fileIdent: string): Promise { method getFile (line 229) | public async getFile(fileIdent: string): Promise { method isFileAvailable (line 240) | public async isFileAvailable(fileIdent: string): Promise { method locationSummary (line 245) | public async locationSummary(): Promise { method startTransferringAllFilesToOtherStore (line 261) | public async startTransferringAllFilesToOtherStore(newStoreId: Attachm... method startTransferringFileToOtherStore (line 293) | public startTransferringFileToOtherStore(fileIdent: string, newStoreId... method transferFileToOtherStore (line 301) | public async transferFileToOtherStore(fileIdent: string, newStoreId: A... method allTransfersCompleted (line 344) | public async allTransfersCompleted(): Promise { method transferStatus (line 350) | public transferStatus() { method _runTransferJob (line 359) | private _runTransferJob() { method _performPendingTransfers (line 372) | private async _performPendingTransfers() { method _notifyAboutStart (line 411) | private async _notifyAboutStart() { method _notifyAboutEnd (line 423) | private async _notifyAboutEnd() { method _isFileAvailable (line 430) | private async _isFileAvailable(fileInfo?: FileInfo | null): Promise; FILE: app/server/lib/AttachmentStore.ts type DocPoolId (line 12) | type DocPoolId = string; type FileId (line 13) | type FileId = string; type AttachmentStoreDocInfo (line 17) | interface AttachmentStoreDocInfo { type FileMetadata (line 25) | interface FileMetadata { type AttachmentFile (line 29) | interface AttachmentFile { type AttachmentFileInMemory (line 36) | interface AttachmentFileInMemory extends AttachmentFile { function isAttachmentFileInMemory (line 40) | function isAttachmentFileInMemory(file: AttachmentFile): file is Attachm... function loadAttachmentFileIntoMemory (line 44) | async function loadAttachmentFileIntoMemory(file: AttachmentFile): Promi... function getDocPoolIdFromDocInfo (line 83) | function getDocPoolIdFromDocInfo(docInfo: AttachmentStoreDocInfo): string { type IAttachmentStore (line 102) | interface IAttachmentStore { class InvalidAttachmentExternalStorageError (line 126) | class InvalidAttachmentExternalStorageError extends Error { method constructor (line 127) | constructor(storeId: string, context?: string) { class AttachmentStoreCreationError (line 133) | class AttachmentStoreCreationError extends Error { method constructor (line 134) | constructor(storeBackend: string, storeId: string, context?: string) { type ExternalStorageSupportingAttachments (line 140) | interface ExternalStorageSupportingAttachments extends ExternalStorage { function storageSupportsAttachments (line 146) | function storageSupportsAttachments(storage: ExternalStorage): storage i... class ExternalStorageAttachmentStore (line 150) | class ExternalStorageAttachmentStore implements IAttachmentStore { method constructor (line 151) | constructor( method exists (line 156) | public exists(docPoolId: string, fileId: string): Promise { method upload (line 160) | public async upload(docPoolId: string, fileId: string, fileData: strea... method download (line 164) | public async download(docPoolId: string, fileId: string): Promise { method removePool (line 172) | public async removePool(docPoolId: string): Promise { method close (line 176) | public async close(): Promise { method _getPoolPrefix (line 180) | private _getPoolPrefix(docPoolId: string): string { method _getKey (line 184) | private _getKey(docPoolId: string, fileId: string): string { class FilesystemAttachmentStore (line 189) | class FilesystemAttachmentStore implements IAttachmentStore { method constructor (line 190) | constructor(public readonly id: string, private _rootFolderPath: strin... method exists (line 193) | public async exists(docPoolId: DocPoolId, fileId: FileId): Promise { method removePool (line 223) | public async removePool(docPoolId: DocPoolId): Promise { method close (line 227) | public async close(): Promise { method _createPath (line 231) | private _createPath(docPoolId: DocPoolId, fileId: FileId = ""): string { FILE: app/server/lib/AttachmentStoreProvider.ts type AttachmentStoreId (line 12) | type AttachmentStoreId = string; type IAttachmentStoreProvider (line 24) | interface IAttachmentStoreProvider { type IAttachmentStoreSpecification (line 38) | interface IAttachmentStoreSpecification { type IAttachmentStoreConfig (line 44) | interface IAttachmentStoreConfig { class AttachmentStoreProvider (line 63) | class AttachmentStoreProvider implements IAttachmentStoreProvider { method constructor (line 66) | constructor( method getStoreIdFromLabel (line 83) | public getStoreIdFromLabel(label: string): string { method getStore (line 87) | public async getStore(id: AttachmentStoreId): Promise { method storeExists (line 101) | public storeExists(id: AttachmentStoreId): boolean { method listAllStoreIds (line 105) | public listAllStoreIds(): string[] { function isAttachmentStoreOptionAvailable (line 110) | async function isAttachmentStoreOptionAvailable(option: ICreateAttachmen... function storeOptionIsNotUndefined (line 119) | function storeOptionIsNotUndefined( function checkAvailabilityAttachmentStoreOptions (line 125) | async function checkAvailabilityAttachmentStoreOptions( function makeTempFilesystemStoreSpec (line 140) | async function makeTempFilesystemStoreSpec( constant GRIST_EXTERNAL_ATTACHMENTS_MODE (line 157) | const GRIST_EXTERNAL_ATTACHMENTS_MODE = settings.flag("mode").requireStr... function getConfiguredStandardAttachmentStore (line 162) | function getConfiguredStandardAttachmentStore(): string | undefined { class UnsupportedExternalAttachmentsMode (line 173) | class UnsupportedExternalAttachmentsMode extends Error { method constructor (line 174) | constructor(storeType: string) { function getConfiguredAttachmentStoreConfigs (line 179) | async function getConfiguredAttachmentStoreConfigs(): Promise { method _setSession (line 281) | private async _setSession(req: Request, session: SessionObj): Promise<... method _updateScopedSession (line 303) | private async _updateScopedSession(req: Request, user: SessionUserObj,... method _clearUser (line 331) | private _clearUser(session: SessionObj): void { FILE: app/server/lib/CellDataAccess.ts function applyAndCheckActionsForCells (line 40) | async function applyAndCheckActionsForCells( function isCellDataAction (line 189) | function isCellDataAction(a: DocAction): a is DataAction { type SingleCellInfo (line 193) | interface SingleCellInfo extends SingleCell { type SingleCellInfoWithData (line 198) | interface SingleCellInfoWithData extends SingleCellInfo { class CellData (line 206) | class CellData { method constructor (line 207) | constructor(private _docData: DocData) { method hasNewComments (line 214) | public hasNewComments(actions: DocAction[]): boolean { method getNewComments (line 224) | public getNewComments(actions: DocAction[]): MetaRowRecord<"_grist_Cel... method getAudience (line 249) | public getAudience(rowIds: number[]): Map { method getCell (line 285) | public getCell(cellId: number) { method getCellRecord (line 290) | public getCellRecord(cellId: number) { method generatePatch (line 300) | public generatePatch(actions: DocAction[]) { method censorCells (line 382) | public async censorCells( method convertToCellInfo (line 410) | public convertToCellInfo(cell: MetaRowRecord<"_grist_Cells">): SingleC... method getColId (line 423) | public getColId(colRef: number) { method getTableId (line 427) | public getTableId(tableRef: number) { method getTableRef (line 431) | public getTableRef(tableId: string) { method getColRef (line 435) | public getColRef(tableId: string, colId: string) { method readCells (line 452) | public readCells(tableId: string, rowIds: Set, colId?: string) { method hasCellInfo (line 464) | public hasCellInfo(docAction: DocAction): method isAttached (line 479) | public isAttached(cell: SingleCellInfo) { method convertToCells (line 486) | public convertToCells(action: DocAction): SingleCellInfo[] { method generateInsert (line 530) | public generateInsert(ids: number[]): DataAction | null { method generateRemovals (line 569) | public generateRemovals(ids: number[]) { method generateUpdate (line 579) | public generateUpdate(ids: number[]) { type CellField (line 607) | type CellField = keyof MetaRowRecord<"_grist_Cells">; function checkChangedIds (line 613) | function checkChangedIds( function wasToggled (line 636) | function wasToggled( FILE: app/server/lib/Client.ts type ClientMethod (line 28) | type ClientMethod = (client: Client, ...args: any[]) => Promise; function generateClientId (line 53) | function generateClientId(): string { constant MESSAGE_TYPES_NO_AUTH (line 63) | const MESSAGE_TYPES_NO_AUTH = new Set([ class Client (line 78) | class Client { method constructor (line 104) | constructor( method toString (line 117) | public toString() { return `Client ${this.clientId} #${this._counter}`; } method t (line 119) | public t(key: string, args?: any): string { method setConnection (line 123) | public setConnection(options: { method authSession (line 143) | public get authSession(): AuthSession { method getConnectionRequest (line 147) | public getConnectionRequest(): IncomingMessage | null { method getDocSession (line 154) | public getDocSession(fd: number): DocSession { method addDocSession (line 163) | public addDocSession(activeDoc: ActiveDoc, docSessionPrecursor: DocSes... method removeDocSession (line 171) | public removeDocSession(fd: number): void { method closeAllDocs (line 178) | public closeAllDocs(): number { method interruptConnection (line 193) | public interruptConnection() { method sendMessageOrInterrupt (line 210) | public async sendMessageOrInterrupt(messageObj: CommMessage | CommResp... method sendMessage (line 222) | public async sendMessage(messageObj: CommMessage | CommResponse | Comm... method canAcceptConnection (line 296) | public canAcceptConnection(): boolean { method sendConnectMessage (line 306) | public async sendConnectMessage( method getMissedMessages (line 380) | public getMissedMessages(lastSeqId: number | null): string[] | undefin... method destroy (line 396) | public destroy() { method getLogMeta (line 409) | public getLogMeta(meta: log.ILogMeta = {}): log.ILogMeta { method _onMessage (line 418) | private async _onMessage(message: string): Promise { method _onMessageImpl (line 430) | private async _onMessageImpl(message: string): Promise { method _isAuthorized (line 484) | private async _isAuthorized(): Promise { method _getNextDocFD (line 496) | private _getNextDocFD(): number { method _sendToWebsocket (line 502) | private _sendToWebsocket(message: string): Promise { method _onError (line 509) | private _onError(err: Error) { method _onClose (line 517) | private _onClose() { FILE: app/server/lib/Comm.ts type CommOptions (line 59) | interface CommOptions { class Comm (line 80) | class Comm extends EventEmitter { method constructor (line 95) | constructor(private _server: http.Server, private _options: CommOption... method registerMethods (line 105) | public registerMethods(serverMethods: { [name: string]: ClientMethod }... method getClient (line 115) | public getClient(clientId: string): Client { method broadcastMessage (line 124) | public broadcastMessage(type: "docListAction", data: unknown) { method removeClient (line 130) | public removeClient(client: Client) { method testServerShutdown (line 134) | public async testServerShutdown() { method testServerRestart (line 143) | public async testServerRestart() { method destroyAllClients (line 151) | public destroyAllClients() { method setServerVersion (line 165) | public setServerVersion(serverVersion: string | null) { method setServerActivation (line 173) | public setServerActivation(active: boolean) { method _getSessionProfile (line 180) | private async _getSessionProfile( method _onWebSocketConnection (line 192) | private async _onWebSocketConnection(websocket: GristServerSocket, req... method _startServer (line 227) | private _startServer() { function getAuthSession (line 269) | async function getAuthSession( FILE: app/server/lib/ConfigBackendAPI.ts class ConfigBackendAPI (line 20) | class ConfigBackendAPI { method constructor (line 21) | constructor(private _activations: ActivationsManager) { method addEndpoints (line 24) | public addEndpoints(app: express.Express, requireInstallAdmin: express... method _buildProviderList (line 127) | private async _buildProviderList(): Promise { function _fillProviderInfo (line 162) | function _fillProviderInfo({ FILE: app/server/lib/DiscourseConnect.ts constant DISCOURSE_CONNECT_SECRET (line 29) | const DISCOURSE_CONNECT_SECRET = process.env.DISCOURSE_CONNECT_SECRET; constant DISCOURSE_SITE (line 30) | const DISCOURSE_SITE = process.env.DISCOURSE_SITE; function calcSignature (line 36) | function calcSignature(payload: string, secret: string) { function checkParams (line 41) | function checkParams(req: Request, resp: Response, next: NextFunction) { function discourseConnect (line 61) | function discourseConnect(req: Request, resp: Response) { function addDiscourseConnectEndpoints (line 100) | function addDiscourseConnectEndpoints(app: Express, options: { FILE: app/server/lib/DocApi.ts constant MAX_ACTIVE_DOCS_USAGE_CACHE (line 132) | const MAX_ACTIVE_DOCS_USAGE_CACHE = 1000; class DocWorkerApi (line 148) | class DocWorkerApi { method constructor (line 167) | constructor(private _app: Application, private _docWorker: DocWorker, method addEndpoints (line 178) | public addEndpoints() { method _assertIsPublishedForm (line 1574) | private _assertIsPublishedForm(params: { method _copyDocToWorkspace (line 1609) | private async _copyDocToWorkspace(req: Request, options: { method _importDocumentToWorkspace (line 1659) | private async _importDocumentToWorkspace(mreq: RequestWithLogin, optio... method _createNewSavedDoc (line 1687) | private async _createNewSavedDoc(req: Request, options: { method _createNewUnsavedDoc (line 1703) | private async _createNewUnsavedDoc(req: Request, options: { method _confirmDocIdForRead (line 1733) | private async _confirmDocIdForRead(req: Request, urlId: string): Promi... method _getDownloadFilename (line 1740) | private async _getDownloadFilename(req: Request, tableId?: string, opt... method _getDownloadOptions (line 1752) | private async _getDownloadOptions(req: Request, doc?: Document): Promi... method _getActiveDoc (line 1760) | private _getActiveDoc(req: RequestWithLogin): Promise { method _getActiveDocIfAvailable (line 1764) | private _getActiveDocIfAvailable(req: RequestWithLogin): Promise(tableId: string, colNames: string[]... function getMetaTables (line 54) | async function getMetaTables(activeDoc: ActiveDoc, req: RequestWithLogin) { FILE: app/server/lib/DocAuthorizer.ts type DocAuthorizer (line 13) | interface DocAuthorizer { type DocAuthorizerOptions (line 25) | interface DocAuthorizerOptions { class DocAuthorizerImpl (line 37) | class DocAuthorizerImpl implements DocAuthorizer { method constructor (line 41) | constructor( method getAuthKey (line 50) | public getAuthKey(): DocAuthKey { method assertAccess (line 54) | public async assertAccess(role: "viewers" | "editors" | "owners"): Pro... method getCachedAuth (line 60) | public getCachedAuth(): DocAuthResult { class DummyAuthorizer (line 66) | class DummyAuthorizer implements DocAuthorizer { method constructor (line 67) | constructor(public role: Role | null, public docId: string) {} method getAuthKey (line 68) | public getAuthKey(): DocAuthKey { throw new Error("Not supported in st... method assertAccess (line 69) | public async assertAccess() { /* noop */ } method getCachedAuth (line 70) | public getCachedAuth(): DocAuthResult { FILE: app/server/lib/DocClients.ts function isUserPresenceDisabled (line 29) | function isUserPresenceDisabled(): boolean { type ClientAddedEventListener (line 33) | type ClientAddedEventListener = (session: DocSession) => void; type ClientRemovedEventListener (line 34) | type ClientRemovedEventListener = (session: DocSession) => void; class DocClients (line 36) | class DocClients extends EventEmitter { method constructor (line 40) | constructor( method clientCount (line 49) | public clientCount(): number { method addClient (line 56) | public addClient(client: Client, docSessionPrecursor: DocSessionPrecur... method addClientAddedListener (line 65) | public addClientAddedListener(listener: ClientAddedEventListener) { method removeClient (line 73) | public removeClient(docSession: DocSession): void { method addClientRemovedListener (line 84) | public addClientRemovedListener(listener: ClientRemovedEventListener) { method removeAllClients (line 91) | public removeAllClients(): void { method interruptAllClients (line 100) | public interruptAllClients() { method broadcastDocMessage (line 115) | public async broadcastDocMessage(client: Client | null, type: CommDocE... method _prepareMessage (line 154) | private async _prepareMessage( method _emitClientAdded (line 193) | private _emitClientAdded(session: DocSession) { method _emitClientRemoved (line 197) | private _emitClientRemoved(session: DocSession) { FILE: app/server/lib/DocManager.ts constant DEFAULT_CACHE_TTL (line 49) | const DEFAULT_CACHE_TTL = 10000; constant RECOVERY_CACHE_TTL (line 53) | const RECOVERY_CACHE_TTL = 30000; constant TIMING_ON_CACHE_TTL (line 56) | const TIMING_ON_CACHE_TTL = 10 * 60 * 1000; type IMemoryLoadEstimator (line 58) | interface IMemoryLoadEstimator { class DocManager (line 66) | class DocManager extends EventEmitter implements IMemoryLoadEstimator { method constructor (line 90) | constructor( method setRecovery (line 100) | public setRecovery(docId: string, recovery: boolean) { method restoreTimingOn (line 107) | public restoreTimingOn(docId: string, timingOn: boolean) { method testSetHomeDbManager (line 113) | public testSetHomeDbManager(dbManager: HomeDBManager) { method getHomeDbManager (line 117) | public getHomeDbManager() { method getDocListAPIImpl (line 124) | public getDocListAPIImpl(client: Client): DocListAPI { method numOpenDocs (line 139) | public numOpenDocs(): number { method getDocClientCounts (line 146) | public async getDocClientCounts(): Promise> { method listDocs (line 157) | public async listDocs(client: Client): Promise<{ docs: DocEntry[], doc... method createNewDoc (line 166) | public async createNewDoc(client: Client): Promise { method addActiveDoc (line 176) | public addActiveDoc(docId: string, activeDoc: ActiveDoc) { method createNamedDoc (line 180) | public async createNamedDoc(docSession: OptDocSession, docId: string):... method importSampleDoc (line 191) | public async importSampleDoc(client: Client, sampleDocName: string): P... method importDoc (line 211) | public async importDoc(client: Client, uploadId: number): Promise { method deleteDoc (line 299) | public async deleteDoc(client: Client | null, docName: string, deleteP... method interruptDocClients (line 316) | public async interruptDocClients(docName: string) { method openDoc (line 332) | public async openDoc(client: Client, docId: string, method shutdownDocs (line 452) | public async shutdownDocs() { method shutdownAll (line 466) | public async shutdownAll() { method getActiveDoc (line 483) | public getActiveDoc(docName: string): Promise | undefined { method registerSQLiteDB (line 494) | public registerSQLiteDB(docName: string, db: SQLiteDB) { method unregisterSQLiteDB (line 501) | public unregisterSQLiteDB(docName: string) { method getSQLiteDB (line 509) | public getSQLiteDB(docName: string): SQLiteDB | undefined { method removeActiveDoc (line 513) | public removeActiveDoc(activeDoc: ActiveDoc): void { method renameDoc (line 519) | public async renameDoc(client: Client, oldName: string, newName: strin... method markAsChanged (line 537) | public markAsChanged(activeDoc: ActiveDoc, reason?: "edit") { method makeBackup (line 544) | public async makeBackup(activeDoc: ActiveDoc, name: string): Promise(docSession: OptDocSession, docName: s... method _fetchPossiblyMutedDoc (line 631) | private async _fetchPossiblyMutedDoc(docSession: OptDocSession, docNam... method _getDoc (line 660) | private async _getDoc(docSession: OptDocSession, docName: string) { method _getDocUrls (line 688) | private async _getDocUrls(doc: Document) { method _createActiveDoc (line 703) | private async _createActiveDoc(docSession: OptDocSession, docName: str... method _doImportDoc (line 717) | private async _doImportDoc(docSession: OptDocSession, uploadInfo: Uplo... method _createNewDoc (line 781) | private async _createNewDoc(basenameHint: string): Promise { function extname (line 796) | function extname(fpath: string): string { function updateDocumentAttachmentStoreSettingToValidValue (line 800) | async function updateDocumentAttachmentStoreSettingToValidValue(fname: s... function updateDocumentSettingsInPlace (line 817) | async function updateDocumentSettingsInPlace( FILE: app/server/lib/DocPluginData.ts class DocPluginData (line 8) | class DocPluginData implements Promisified { method constructor (line 9) | constructor(private _docStorage: DocStorage, private _pluginId: string) { method getItem (line 13) | public async getItem(key: string): Promise { method hasItem (line 21) | public hasItem(key: string): Promise { method setItem (line 25) | public setItem(key: string, value: any): Promise { method removeItem (line 29) | public removeItem(key: string): Promise { method clear (line 33) | public clear(): Promise { FILE: app/server/lib/DocPluginManager.ts class GristDocAPIImpl (line 28) | class GristDocAPIImpl implements GristDocAPI { method constructor (line 29) | constructor(private _activeDoc: ActiveDoc) { } method getDocName (line 31) | public async getDocName() { return this._activeDoc.docName; } method listTables (line 33) | public async listTables(): Promise { method fetchTable (line 40) | public async fetchTable(tableId: string): Promise { method applyUserActions (line 45) | public applyUserActions(actions: any[][]): Promise { method getAccessToken (line 52) | public async getAccessToken(): Promise { class DocPluginManager (line 64) | class DocPluginManager { method constructor (line 72) | constructor( method tmpDir (line 83) | public tmpDir(): string { method parseFile (line 91) | public async parseFile(filePath: string, fileName: string, parseOption... method getPlugins (line 157) | public getPlugins(): LocalPlugin[] { method shutdown (line 164) | public async shutdown(): Promise { method reload (line 178) | public async reload(plugins: LocalPlugin[]): Promise { method receiveAction (line 185) | public receiveAction(action: any[]): void { method _initialize (line 194) | private async _initialize(): Promise { function checkReferences (line 234) | function checkReferences(tables: GristTable[]) { FILE: app/server/lib/DocSession.ts class OptDocSession (line 14) | class OptDocSession extends AuthSession { method _authSession (line 38) | private get _authSession(): AuthSession { method constructor (line 42) | constructor(options: { method org (line 58) | public get org() { return this._authSession.org; } method altSessionId (line 59) | public get altSessionId() { return this._authSession.altSessionId; } method userId (line 60) | public get userId() { return this._authSession.userId; } method userIsAuthorized (line 61) | public get userIsAuthorized() { return this._authSession.userIsAuthori... method fullUser (line 62) | public get fullUser() { return this._authSession.fullUser; } method getLogMeta (line 65) | public getLogMeta() { return this.client?.getLogMeta() || super.getLog... function makeOptDocSession (line 68) | function makeOptDocSession(client: Client | null): OptDocSession { function makeExceptionalDocSession (line 78) | function makeExceptionalDocSession(mode: "nascent" | "plugin" | "system"... function docSessionFromRequest (line 91) | function docSessionFromRequest(req: RequestWithLogin): OptDocSession { class DocSessionPrecursor (line 99) | class DocSessionPrecursor extends OptDocSession { method constructor (line 103) | constructor(client: Client, authorizer: DocAuthorizer, options: { class DocSession (line 116) | class DocSession extends DocSessionPrecursor { method constructor (line 120) | constructor(ds: DocSessionPrecursor, activeDoc: ActiveDoc, fd: number) { FILE: app/server/lib/DocSnapshots.ts type IInventory (line 15) | interface IInventory { class DocSnapshotPruner (line 24) | class DocSnapshotPruner { method constructor (line 29) | constructor(private _ext: IInventory, _options: { method close (line 42) | public async close() { method wait (line 49) | public async wait() { method requestPrune (line 55) | public requestPrune(key: string): boolean { method classify (line 65) | public async classify(key: string): Promise<{ snapshot: ObjSnapshotWit... method prune (line 73) | public async prune(key: string, snapshotIds?: string[]) { class DocSnapshotInventory (line 107) | class DocSnapshotInventory implements IInventory { method constructor (line 115) | constructor( method create (line 125) | public async create(key: string) { method isSaved (line 136) | public isSaved(key: string) { method add (line 152) | public async add(key: string, snapshot: ObjSnapshotWithMetadata, prevS... method uploadAndAdd (line 167) | public async uploadAndAdd(key: string, method flush (line 191) | public async flush(key: string) { method clear (line 200) | public async clear(key: string) { method remove (line 212) | public async remove(key: string, snapshotIds: string[]) { method versions (line 232) | public async versions(key: string, expectSnapshotId?: string | null): ... method _getSnapshots (line 240) | private async _getSnapshots(key: string, expectSnapshotId: string | nu... method _loadFromFile (line 277) | private async _loadFromFile(fname: string): Promise { method _upgradeTable (line 156) | function _upgradeTable(tableId: string) { method _sqlColSpec (line 174) | function _sqlColSpec(info: ResultRow): string { method _fixTable (line 310) | async function _fixTable(tableId: string) { method _getInfoAndValuesSql (line 339) | function _getInfoAndValuesSql(info: ResultRow, tableId: string): [Resu... method _sqlColSpec (line 351) | function _sqlColSpec(info: ResultRow): string { method decodeRowValues (line 424) | public static decodeRowValues(dbRow: ResultRow): any { method _isMetadataTable (line 432) | private static _isMetadataTable(tableId: string): boolean { method _formattedDefault (line 439) | private static _formattedDefault(colType: string): any { method _prefixJoin (line 446) | private static _prefixJoin(sep: string, array: string[]): string { method _makeTmpTableId (line 456) | private static _makeTmpTableId(tableId: string): string { method _sqlColSpecFromDBInfo (line 460) | private static _sqlColSpecFromDBInfo(info: ResultRow): string { method _encodeColumnsToRows (line 468) | private static _encodeColumnsToRows(types: string[], valueColumns: any... method _encodeValue (line 487) | private static _encodeValue( method _decodeValue (line 558) | private static _decodeValue(val: any, gristType: string, sqlType: stri... method _columnDef (line 584) | private static _columnDef(colId: string, colType: string): string { method _columnDefWithBlobs (line 593) | private static _columnDefWithBlobs(colId: string, colType: string): st... method _getSqlType (line 603) | private static _getSqlType(colType: string | null): string { method _getAffinity (line 646) | private static _getAffinity(colType: string | null): string { method constructor (line 674) | public constructor(public storageManager: IDocStorageManager, public d... method openFile (line 683) | public openFile(hooks: MigrationHooks = {}): Promise { method createFile (line 696) | public createFile(options?: { method isInitialized (line 711) | public isInitialized(): boolean { method _initDB (line 718) | public _initDB(): Promise { method _updateMetadata (line 752) | public _updateMetadata(): Promise { method shutdown (line 780) | public async shutdown(): Promise { method attachFileIfNew (line 804) | public attachFileIfNew( method attachOrUpdateFile (line 831) | public attachOrUpdateFile( method getFileInfo (line 849) | public async getFileInfo(fileIdent: string): Promise { method getFileInfoNoData (line 869) | public async getFileInfoNoData(fileIdent: string): Promise { method fetchTable (line 897) | public fetchTable(tableId: string): Promise { method getNextRowId (line 904) | public async getNextRowId(tableId: string): Promise { method getColumnType (line 915) | public getColumnType(tableId: string, colId: string): string | undefin... method fetchActionData (line 922) | public async fetchActionData(tableId: string, rowIds: number[], colIds... method fetchQuery (line 953) | public async fetchQuery(query: ExpandedQuery): Promise { method getAllTableNames (line 978) | public async getAllTableNames(): Promise { method decodeMarshalledData (line 991) | public decodeMarshalledData(marshalledData: Buffer | Uint8Array, table... method decodeMarshalledDataFromTables (line 1011) | public decodeMarshalledDataFromTables(marshalledData: Buffer | Uint8Ar... method applyStoredActions (line 1031) | public async applyStoredActions(docActions: DocAction[]): Promise { method applyStoredAction (line 1061) | public async applyStoredAction(action: DocAction): Promise { method _process_AddTable (line 1087) | public _process_AddTable(tableId: string, columns: any[]): Promise { method renameDocTo (line 1358) | public renameDocTo(newName: string): Promise { method getTotalAttachmentFileSizes (line 1380) | public async getTotalAttachmentFileSizes(): Promise { method scanAttachmentsForUsageChanges (line 1417) | public async scanAttachmentsForUsageChanges(): Promise<{ used: boolean... method findAttachmentReferences (line 1457) | public async findAttachmentReferences(attId: number): Promise { method getOptions (line 1531) | public getOptions(): MinDBOptions | undefined { method all (line 1535) | public all(sql: string, ...args: any[]): Promise { method run (line 1539) | public run(sql: string, ...args: any[]): Promise { method exec (line 1543) | public exec(sql: string): Promise { method prepare (line 1547) | public prepare(sql: string): Promise { method get (line 1551) | public get(sql: string, ...args: any[]): Promise { method execTransaction (line 1555) | public execTransaction(transx: (db1: SQLiteDB) => Promise): Prom... method runAndGetId (line 1560) | public runAndGetId(sql: string, ...params: any[]): Promise { method requestVacuum (line 1565) | public requestVacuum(): Promise { method vacuum (line 1576) | public async vacuum(): Promise { method getPluginDataItem (line 1595) | public async getPluginDataItem(pluginId: string, key: string): Promise... method getDB (line 1603) | public getDB(): SQLiteDB { method hasPluginDataItem (line 1607) | public async hasPluginDataItem(pluginId: string, key: string): Promise... method setPluginDataItem (line 1612) | public async setPluginDataItem(pluginId: string, key: string, value: s... method removePluginDataItem (line 1617) | public async removePluginDataItem(pluginId: string, key: string): Prom... method clearPluginDataItem (line 1621) | public async clearPluginDataItem(pluginId: string): Promise { method testGetIndexes (line 1628) | public async testGetIndexes(): Promise { method updateIndexes (line 1636) | public async updateIndexes(desiredIndexes: IndexColumns[]) { method getDataSize (line 1672) | public async getDataSize(): Promise { method getDataSizeUncached (line 1680) | public async getDataSizeUncached(): Promise { method _markAsChanged (line 1701) | private async _markAsChanged(promise: Promise): Promise { method _openFile (line 1714) | private async _openFile(mode: number, hooks: MigrationHooks): Promise<... method _applyMaybeBulkUpdateOrAddSql (line 1728) | private async _applyMaybeBulkUpdateOrAddSql(sql: string, sqlParams: an... method _rebuildTableSql (line 1747) | private async _rebuildTableSql(tableId: string, colId: string, newColI... method _alterTableSoft (line 1787) | private async _alterTableSoft(tableId: string, newTableSql: string): P... method _alterColumn (line 1806) | private async _alterColumn(tableId: string, colId: string, newColId: s... method _getGristType (line 1845) | private _getGristType(tableId: string, colId: string): string { method _getDB (line 1849) | private _getDB(): SQLiteDB { method _getIndexes (line 1863) | private async _getIndexes(): Promise { method _fetchQueryWithManyParameters (line 1882) | private async _fetchQueryWithManyParameters(query: ExpandedQuery): Pro... method _getSqlForQuery (line 1912) | private _getSqlForQuery(query: ExpandedQuery, whereParts: string[]) { method _compressStoredActions (line 1928) | private _compressStoredActions(docActions: DocAction[]): DocAction[] { method _considerWithoutManualSort (line 1948) | private _considerWithoutManualSort(act: DocAction): DocAction | null { method _addBasicFileRecord (line 1959) | private async _addBasicFileRecord(db: SQLiteDB, fileIdent: string): Pr... method _updateFileRecord (line 1979) | private async _updateFileRecord( type RebuildResult (line 1986) | interface RebuildResult { type IndexColumns (line 1997) | interface IndexColumns { type IndexInfo (line 2003) | interface IndexInfo extends IndexColumns { function createAttachmentsIndex (line 2010) | async function createAttachmentsIndex(db: ISQLiteDB) { function fixDefault (line 2017) | function fixDefault(def: string) { type FileInfo (line 2022) | interface FileInfo { FILE: app/server/lib/DocStorageManager.ts class DocStorageManager (line 32) | class DocStorageManager implements IDocStorageManager { method constructor (line 40) | constructor(private _docsRoot: string, private _samplesRoot?: string, method getPath (line 55) | public getPath(docName: string): string { method getSQLiteDB (line 60) | public getSQLiteDB(docName: string) { method getSampleDocPath (line 67) | public getSampleDocPath(sampleDocName: string): string | null { method getCanonicalDocName (line 78) | public async getCanonicalDocName(altDocName: string): Promise { method prepareLocalDoc (line 87) | public async prepareLocalDoc(docName: string): Promise { retu... method prepareToCreateDoc (line 89) | public async prepareToCreateDoc(docName: string): Promise { method prepareFork (line 93) | public async prepareFork(srcDocName: string, destDocName: string): Pro... method listDocs (line 107) | public listDocs(): Promise { method deleteDoc (line 122) | public async deleteDoc(docName: string, deletePermanently?: boolean): ... method renameDoc (line 141) | public renameDoc(oldName: string, newName: string): Promise { method makeBackup (line 167) | public makeBackup(docName: string, backupTag: string): Promise { method showItemInFolder (line 199) | public async showItemInFolder(docName: string): Promise { method closeStorage (line 203) | public async closeStorage() { method closeDocument (line 207) | public async closeDocument(docName: string) { method markAsChanged (line 211) | public markAsChanged(docName: string): void { method markAsEdited (line 215) | public markAsEdited(docName: string): void { method scheduleUsageUpdate (line 219) | public scheduleUsageUpdate( method testReopenStorage (line 227) | public testReopenStorage(): void { method addToStorage (line 231) | public async addToStorage(id: string): Promise { method prepareToCloseStorage (line 235) | public prepareToCloseStorage(): void { method flushDoc (line 239) | public async flushDoc(docName: string): Promise { method getCopy (line 243) | public async getCopy(docName: string): Promise { method getSnapshots (line 249) | public async getSnapshots(docName: string, skipMetadataCache?: boolean... method removeSnapshots (line 253) | public removeSnapshots(docName: string, snapshotIds: string[]): Promis... method getSnapshotProgress (line 257) | public getSnapshotProgress(): SnapshotProgress { method replace (line 261) | public async replace(docName: string, options: any): Promise { method getFsFileSize (line 265) | public async getFsFileSize(docName: string): Promise { method _listDocs (line 274) | private _listDocs(dirPath: string, tag: DocEntryTag): Promise { method _generateBackupFilePath (line 301) | private _generateBackupFilePath(docName: string, backupTag: string): P... method _sendDocListAction (line 321) | private _sendDocListAction(actionType: string, docPath: string, data: ... method _safeCopy (line 328) | private async _safeCopy(docName: string, options: { function getDocName (line 342) | function getDocName(docPath: string): string { function getDocListFileInfo (line 353) | function getDocListFileInfo(docPath: string, fsStat: any, tag: DocEntryT... FILE: app/server/lib/DocWorker.ts type AttachOptions (line 28) | interface AttachOptions { class DocWorker (line 33) | class DocWorker { method constructor (line 36) | constructor(private _dbManager: HomeDBManager, options: AttachOptions) { method getAttachment (line 41) | public async getAttachment(req: express.Request, res: express.Response... method downloadDoc (line 77) | public async downloadDoc(req: express.Request, res: express.Response, method registerCommCore (line 117) | public registerCommCore(): void { method registerCommPlugin (line 157) | public registerCommPlugin(): void { method assertDocAccess (line 170) | public async assertDocAccess( method _getDocSession (line 201) | private _getDocSession(clientId: string, docFD: number): DocSession { function activeDocMethod (line 211) | async function activeDocMethod(role: "viewers" | "editors" | "owners" | ... FILE: app/server/lib/DocWorkerLoadTracker.ts function getDocWorkerLoadTracker (line 53) | function getDocWorkerLoadTracker( class DocWorkerLoadTracker (line 70) | class DocWorkerLoadTracker { method constructor (line 83) | constructor( method start (line 92) | public start() { method stop (line 99) | public stop() { method getLoad (line 115) | public async getLoad() { method _readValueFromFileInMB (line 131) | private async _readValueFromFileInMB( method _getMemoryUsedMB (line 156) | private async _getMemoryUsedMB(): Promise { method _getMemoryTotalMB (line 177) | private async _getMemoryTotalMB() { method _updateLoad (line 193) | private async _updateLoad() { FILE: app/server/lib/DocWorkerMap.ts type DocWorkerInfo (line 12) | interface DocWorkerInfo { type DocStatus (line 26) | interface DocStatus { type IDocWorkerMap (line 41) | interface IDocWorkerMap extends IPermitStores, IElectionStore, IChecksum... FILE: app/server/lib/DocWorkerUtils.ts function customizeDocWorkerUrl (line 40) | function customizeDocWorkerUrl(docWorkerUrlSeed: string, req: express.Re... function getWorker (line 82) | async function getWorker( type DocWorkerInfoOrSelfPrefix (line 148) | type DocWorkerInfoOrSelfPrefix = { function getDocWorkerInfoOrSelfPrefix (line 156) | async function getDocWorkerInfoOrSelfPrefix( function useWorkerPool (line 186) | function useWorkerPool() { FILE: app/server/lib/ExcelFormatter.ts type WidgetOptions (line 13) | interface WidgetOptions extends NumberFormatOptions { class BaseFormatter (line 20) | class BaseFormatter { method constructor (line 24) | constructor(public type: string, public opts: FormatOptions) { method format (line 34) | public format(value: any): any { method style (line 38) | public style(): Partial