UNPKG

qlik

Version:

A collection of helpful utilities for using the Qlik Capability APIs

340 lines (339 loc) 11 kB
import { Layout, NxDimensionInfo, NxMeasureInfo, NxCellRows, NxCell, Size, SelectionObject, HyperCubeDef, NxMeasure, NxPage } from './data'; export interface NxAutoSortByStateDef { qDisplayNumberOfRows: number; } export interface NxListObjectExpressionDef { qExpr: string; qLibraryId: string; } export interface ListObjectDef { qStateName: string; qLibraryId: string; qDef: any; qAutoSortByState: NxAutoSortByStateDef; qFrequencyMode: "NX_FREQUENCY_NONE" | "NX_FREQUENCY_VALUE" | "NX_FREQUENCY_PERCENT" | "NX_FREQUENCY_RELATIVE"; qShowAlternatives: boolean; qInitialDataFetch: NxPage[]; qExpressions: NxListObjectExpressionDef[]; } export interface InitialPropertiesHyperCube { qHyperCubeDef: HyperCubeDef; [key: string]: any; } export interface InitialPropertiesListObject { qListObjectDef: ListObjectDef; [key: string]: any; } export type InitialProperties = InitialPropertiesHyperCube | InitialPropertiesListObject; export interface SnapshotLegacy { canTakeSnapshot: boolean; } export type SupportFunction = (layout: Layout) => boolean; export type SupportItem = boolean | SupportFunction; export interface Support { snapshot: SupportItem | SnapshotLegacy; export: SupportItem; exportData: SupportItem; } export type Paint = (this: ExtensionContext, $element?: any, layout?: Layout, qDimensionInfo?: NxDimensionInfo, qMeasureInfo?: NxMeasureInfo, qMatrix?: NxCellRows[], dimensions?: NxCell[], measures?: NxCell[], qSize?: Size, qId?: string, qSelectionInfo?: SelectionObject) => void; export interface VisualizationCommon { qHyperCubeDef: HyperCubeDef; title: string; showTitles: boolean; subtitle: string; footnote: string; } export type VisualizationOptions = VisualizationCommon; export type ShowFunction = (layout: Layout, cls: any, obj: any) => boolean | ((measure: NxMeasure) => boolean); export interface CustomPropertyCommon { type?: "string" | "integer" | "number" | "array" | "boolean" | "items"; ref?: string; label?: string; show?: boolean | ShowFunction; } export interface CustomPropertyString extends CustomPropertyCommon { type: "string"; expression?: "always" | "optional" | ""; maxLength?: number; defaultValue?: string; } export interface CustomPropertyInteger extends CustomPropertyCommon { type: "integer"; component?: string; min?: string; max?: string; defaultValue?: number; } export interface CustomPropertyNumber extends CustomPropertyCommon { type: "number"; component?: string; min?: string; max?: string; defaultValue?: number; } export interface CustomPropertyArray extends CustomPropertyCommon { type: "array"; component?: undefined; itemTitleRef?: string; allowAdd?: boolean; allowRemove?: boolean; addTranslation?: string; allowMove?: boolean; } export interface CustomPropertyButton extends CustomPropertyCommon { component: "button"; action(data: VisualizationOptions): void; } export interface ButtonGroupOption { value: string; label: string; tooltip: string; } export interface CustomPropertyButtonGroup extends CustomPropertyCommon { type: "string"; component: "buttongroup"; defaultValue?: string; options?: ButtonGroupOption[] | (() => ButtonGroupOption[]); } export interface CustomPropertyCheckbox extends CustomPropertyCommon { type: "boolean"; defaultValue?: boolean; } export interface CustomPropertyColorPicker extends CustomPropertyCommon { type: "integer"; component: "color-picker"; defaultValue?: number; } export interface CustomPropertyOption { value: string; label: string; } export type CustomPropertyOptions = CustomPropertyOption[] | (() => CustomPropertyOption[]); export interface CustomPropertyDropdown extends CustomPropertyCommon { type: "string"; ref: string; component: "dropdown"; defaultValue?: string; options?: CustomPropertyOptions; } export interface CustomPropertyLink extends CustomPropertyCommon { component: "link"; url?: string; } export interface CustomPropertyMedia extends CustomPropertyCommon { type: "string"; component: "media"; layoutRef?: string; } export interface CustomPropertyRadio extends CustomPropertyCommon { type: "string"; component: "radiobuttons"; defaultValue?: string; options?: CustomPropertyOptions; } export interface CustomPropertySlider extends CustomPropertyCommon { type: "number"; component: "slider"; defaultValue?: number; min?: number; max?: number; step?: number; } export interface CustomPropertyRangeSlider extends CustomPropertyCommon { type: "array"; component: "slider"; defaultValue?: number; min?: number; max?: number; step?: number; } export interface CustomPropertySwitch extends CustomPropertyCommon { type: "boolean"; component: "switch"; defaultValue?: string; options?: CustomPropertyOptions; } export interface CustomPropertyText extends CustomPropertyCommon { component: "text"; } export interface CustomPropertyTextArea extends CustomPropertyCommon { type: "string"; component: "textarea"; rows?: number; maxlength?: number; defaultValue?: string; } export interface CustomPropertyExpression extends CustomPropertyCommon { type: undefined; component: "expression"; expressionType: "dimension" | "measure" | "StringExpr" | "ValueExpr" | "ValueExpression" | "StringExpression"; defaultValue?: string; } export interface CustomPropertyItems extends CustomPropertyCommon { type: "items"; items: { [key: string]: CustomProperty; }; } export type CustomProperty = CustomPropertyString | CustomPropertyInteger | CustomPropertyNumber | CustomPropertyArray | CustomPropertyButton | CustomPropertyButtonGroup | CustomPropertyCheckbox | CustomPropertyColorPicker | CustomPropertyDropdown | CustomPropertyLink | CustomPropertyMedia | CustomPropertyRadio | CustomPropertySlider | CustomPropertyRangeSlider | CustomPropertySwitch | CustomPropertyText | CustomPropertyTextArea | CustomPropertyExpression | CustomPropertyItems; export interface Definition { type: "items"; component: "accordion"; items: { data?: { uses: "data"; }; dimensions?: { uses: "dimensions"; ref?: string; min?: number; max?: number; items?: { [key: string]: CustomProperty; }; }; measures?: { uses: "measures"; ref?: string; min?: number; max?: number; items?: { [key: string]: CustomProperty; }; }; sorting?: { uses: "sorting"; items?: { [key: string]: CustomProperty; }; }; settings?: { uses: "settings"; items?: { [key: string]: CustomProperty; }; }; }; } export interface Extension { initialProperties: InitialProperties; definition: Definition; paint: Paint; support?: Support; } export interface Patch { qOp: "add" | "remove" | "replace"; qPath: string; qValue: string; } export interface BackendApi { abortSearch(): void; acceptSearch(toggleMode: boolean): void; applyPatches(qPatches: Patch[], qSoftPatch: boolean): Promise<any>; clearSelections(): void; clearSoftPatches(): Promise<any>; collapseLeft(qRow: number, qCol: number, qAll?: boolean): Promise<any>; collapseTop(qRow: number, qCol: number, qAll?: boolean): Promise<any>; eachDataRow(callback: (i: number, d: NxCellRows) => boolean | void): NxCellRows; expandLeft(qRow: number, qCol: number, qAll?: boolean): Promise<any>; expandTop(qRow: number, qCol: number, qAll?: boolean): Promise<any>; getData(qPages: NxPage[]): Promise<any[]>; getDataRow(rownum: number): NxCellRows | null; getDimensionInfos(): NxDimensionInfo[]; getMeasureInfos(): NxMeasureInfo[]; getPivotData(qPages: NxPage[]): Promise<any>; getRowCount(): number; getStackeddata(qPages: NxPage[], qMaxNbrCells: number): Promise<any>; hasSelections(): boolean; save(): Promise<undefined>; search(term: string): void; selectValues(qDimNo: number, qValues: number[], qToggleMode: boolean): void; selectProperties(props: {}): Promise<any>; } export interface ExtensionContext { $element: any; $scope: any; _inAnalysisState: boolean; _inEditState: boolean; _interactionState: number; _on: boolean; backendApi: BackendApi; paint: Paint; selectionsEnabled: boolean; toggleLasso(): void; selectValues(dimNo: number, values: number[], toggleMode: boolean): void; } export interface QDimensionCell { qText: string; qElemNumber: number; qState: string; qNum?: number; select(): void; } export interface QMeasureCell { qText: string; qNum?: number; getPercent(): number; getPercentOfMax(): number; } export interface QRow { dimensions: QDimensionCell[]; measures: QMeasureCell[]; cells: Array<QDimensionCell | QMeasureCell>; } export interface QHeader { qFallbackTitle: string; qSortIndicator: "A" | "B"; isOrderedBy: boolean; qReverseSort: boolean; col: number; qCardinal?: number; qStateCounts?: { [state: string]: number; }; qMin?: number; qMax?: number; errorCode?: number; errorMessage?: number; orderBy(): void; reverseOrder(): void; selectRange(min: number, max: number, inclMin: boolean, inclMax: boolean): Promise<any>; } export interface ExportDataOptions { format: "OOXML" | "CSV_C" | "CSV_T"; filename?: string; state: "A" | "P"; download: boolean; } export interface QTable { rows: QRow[]; headers: QHeader[]; totals: QMeasureCell[]; rowCount: number; colCount: number; exportData(options: ExportDataOptions, callback: (url: string) => void): void; getColByName(fld: string): number | undefined; getMoreData(): void; } export declare namespace LanguageCodes { type German = "de" | "de-DE"; type English = "en" | "en-US"; type Spanish = "es" | "es-ES"; type French = "fr" | "fr-FR"; type Italian = "it" | "it-IT"; type Japanese = "ja" | "ja-JP"; type Korean = "ko" | "ko-KR"; type Dutch = "nl" | "nl-NL"; type Polish = "pl" | "pl-PL"; type BrazilianPortuguese = "pt" | "pt-BR"; type Russian = "ru" | "ru-RU"; type Swedish = "sv" | "sv-SE"; type Turkish = "tr" | "tr-TR"; type SimplifiedChinese = "zh-CN"; type TraditionalChinese = "zh-TW"; type All = German | English | Spanish | French | Italian | Japanese | Korean | Dutch | Polish | BrazilianPortuguese | Russian | Swedish | Turkish | SimplifiedChinese | TraditionalChinese; } export interface Error { code: string | number; message: string; }