@finos/legend-application-repl 0.0.59 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/application/LegendREPL.d.ts +3 -4
- package/lib/application/LegendREPL.d.ts.map +1 -1
- package/lib/application/LegendREPL.js +3 -9
- package/lib/application/LegendREPL.js.map +1 -1
- package/lib/{__lib__/LegendREPLEvent.d.ts → application/LegendREPLApplicationStore.d.ts} +4 -5
- package/lib/application/LegendREPLApplicationStore.d.ts.map +1 -0
- package/lib/{stores/dataCube/editor/DataCubeEditorPanelState.js → application/LegendREPLApplicationStore.js} +1 -1
- package/lib/application/LegendREPLApplicationStore.js.map +1 -0
- package/lib/components/LegendREPLApplication.d.ts +5 -3
- package/lib/components/LegendREPLApplication.d.ts.map +1 -1
- package/lib/components/LegendREPLApplication.js +22 -8
- package/lib/components/LegendREPLApplication.js.map +1 -1
- package/lib/index.css +2 -2
- package/lib/index.css.map +1 -1
- package/lib/index.d.ts +1 -2
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -2
- package/lib/index.js.map +1 -1
- package/lib/package.json +6 -27
- package/lib/stores/LegendREPLDataCubeApplicationEngine.d.ts +38 -0
- package/lib/stores/LegendREPLDataCubeApplicationEngine.d.ts.map +1 -0
- package/lib/stores/LegendREPLDataCubeApplicationEngine.js +71 -0
- package/lib/stores/LegendREPLDataCubeApplicationEngine.js.map +1 -0
- package/lib/stores/LegendREPLDataCubeEngine.d.ts +34 -0
- package/lib/stores/LegendREPLDataCubeEngine.d.ts.map +1 -0
- package/lib/stores/LegendREPLDataCubeEngine.js +76 -0
- package/lib/stores/LegendREPLDataCubeEngine.js.map +1 -0
- package/lib/{server/REPLServerClient.d.ts → stores/LegendREPLServerClient.d.ts} +33 -4
- package/lib/stores/LegendREPLServerClient.d.ts.map +1 -0
- package/lib/{server/REPLServerClient.js → stores/LegendREPLServerClient.js} +2 -2
- package/lib/stores/LegendREPLServerClient.js.map +1 -0
- package/package.json +11 -32
- package/src/application/LegendREPL.tsx +7 -11
- package/src/{__lib__/LegendREPLEvent.ts → application/LegendREPLApplicationStore.ts} +11 -4
- package/src/components/LegendREPLApplication.tsx +60 -26
- package/src/index.tsx +1 -2
- package/src/stores/LegendREPLDataCubeApplicationEngine.ts +109 -0
- package/src/stores/LegendREPLDataCubeEngine.ts +130 -0
- package/src/{server/REPLServerClient.ts → stores/LegendREPLServerClient.ts} +38 -10
- package/tsconfig.json +5 -110
- package/lib/__lib__/LegendREPLEvent.d.ts.map +0 -1
- package/lib/__lib__/LegendREPLEvent.js +0 -21
- package/lib/__lib__/LegendREPLEvent.js.map +0 -1
- package/lib/__lib__/LegendREPLSetting.d.ts +0 -19
- package/lib/__lib__/LegendREPLSetting.d.ts.map +0 -1
- package/lib/__lib__/LegendREPLSetting.js +0 -20
- package/lib/__lib__/LegendREPLSetting.js.map +0 -1
- package/lib/application/LegendREPLDocumentation.d.ts +0 -22
- package/lib/application/LegendREPLDocumentation.d.ts.map +0 -1
- package/lib/application/LegendREPLDocumentation.js +0 -23
- package/lib/application/LegendREPLDocumentation.js.map +0 -1
- package/lib/application/LegendREPLPluginManager.d.ts +0 -32
- package/lib/application/LegendREPLPluginManager.d.ts.map +0 -1
- package/lib/application/LegendREPLPluginManager.js +0 -46
- package/lib/application/LegendREPLPluginManager.js.map +0 -1
- package/lib/components/Core_LegendREPLApplicationPlugin.d.ts +0 -23
- package/lib/components/Core_LegendREPLApplicationPlugin.d.ts.map +0 -1
- package/lib/components/Core_LegendREPLApplicationPlugin.js +0 -33
- package/lib/components/Core_LegendREPLApplicationPlugin.js.map +0 -1
- package/lib/components/LegendREPLFrameworkProvider.d.ts +0 -22
- package/lib/components/LegendREPLFrameworkProvider.d.ts.map +0 -1
- package/lib/components/LegendREPLFrameworkProvider.js +0 -29
- package/lib/components/LegendREPLFrameworkProvider.js.map +0 -1
- package/lib/components/REPLStoreProvider.d.ts +0 -24
- package/lib/components/REPLStoreProvider.d.ts.map +0 -1
- package/lib/components/REPLStoreProvider.js +0 -38
- package/lib/components/REPLStoreProvider.js.map +0 -1
- package/lib/components/dataCube/DataCube.d.ts +0 -19
- package/lib/components/dataCube/DataCube.d.ts.map +0 -1
- package/lib/components/dataCube/DataCube.js +0 -68
- package/lib/components/dataCube/DataCube.js.map +0 -1
- package/lib/components/dataCube/editor/DataCubeEditor.d.ts +0 -22
- package/lib/components/dataCube/editor/DataCubeEditor.d.ts.map +0 -1
- package/lib/components/dataCube/editor/DataCubeEditor.js +0 -50
- package/lib/components/dataCube/editor/DataCubeEditor.js.map +0 -1
- package/lib/components/dataCube/editor/DataCubeEditorColumnPropertiesPanel.d.ts +0 -22
- package/lib/components/dataCube/editor/DataCubeEditorColumnPropertiesPanel.d.ts.map +0 -1
- package/lib/components/dataCube/editor/DataCubeEditorColumnPropertiesPanel.js +0 -273
- package/lib/components/dataCube/editor/DataCubeEditorColumnPropertiesPanel.js.map +0 -1
- package/lib/components/dataCube/editor/DataCubeEditorColumnsPanel.d.ts +0 -22
- package/lib/components/dataCube/editor/DataCubeEditorColumnsPanel.d.ts.map +0 -1
- package/lib/components/dataCube/editor/DataCubeEditorColumnsPanel.js +0 -35
- package/lib/components/dataCube/editor/DataCubeEditorColumnsPanel.js.map +0 -1
- package/lib/components/dataCube/editor/DataCubeEditorColumnsSelector.d.ts +0 -32
- package/lib/components/dataCube/editor/DataCubeEditorColumnsSelector.d.ts.map +0 -1
- package/lib/components/dataCube/editor/DataCubeEditorColumnsSelector.js +0 -307
- package/lib/components/dataCube/editor/DataCubeEditorColumnsSelector.js.map +0 -1
- package/lib/components/dataCube/editor/DataCubeEditorGeneralPropertiesPanel.d.ts +0 -22
- package/lib/components/dataCube/editor/DataCubeEditorGeneralPropertiesPanel.d.ts.map +0 -1
- package/lib/components/dataCube/editor/DataCubeEditorGeneralPropertiesPanel.js +0 -167
- package/lib/components/dataCube/editor/DataCubeEditorGeneralPropertiesPanel.js.map +0 -1
- package/lib/components/dataCube/editor/DataCubeEditorHorizontalPivotsPanel.d.ts +0 -22
- package/lib/components/dataCube/editor/DataCubeEditorHorizontalPivotsPanel.d.ts.map +0 -1
- package/lib/components/dataCube/editor/DataCubeEditorHorizontalPivotsPanel.js +0 -29
- package/lib/components/dataCube/editor/DataCubeEditorHorizontalPivotsPanel.js.map +0 -1
- package/lib/components/dataCube/editor/DataCubeEditorSortsPanel.d.ts +0 -22
- package/lib/components/dataCube/editor/DataCubeEditorSortsPanel.d.ts.map +0 -1
- package/lib/components/dataCube/editor/DataCubeEditorSortsPanel.js +0 -62
- package/lib/components/dataCube/editor/DataCubeEditorSortsPanel.js.map +0 -1
- package/lib/components/dataCube/editor/DataCubeEditorVerticalPivotsPanel.d.ts +0 -22
- package/lib/components/dataCube/editor/DataCubeEditorVerticalPivotsPanel.d.ts.map +0 -1
- package/lib/components/dataCube/editor/DataCubeEditorVerticalPivotsPanel.js +0 -25
- package/lib/components/dataCube/editor/DataCubeEditorVerticalPivotsPanel.js.map +0 -1
- package/lib/components/dataCube/extend/DataCubeColumnEditor.d.ts +0 -22
- package/lib/components/dataCube/extend/DataCubeColumnEditor.d.ts.map +0 -1
- package/lib/components/dataCube/extend/DataCubeColumnEditor.js +0 -166
- package/lib/components/dataCube/extend/DataCubeColumnEditor.js.map +0 -1
- package/lib/components/dataCube/filter/DataCubeFilterEditor.d.ts +0 -22
- package/lib/components/dataCube/filter/DataCubeFilterEditor.d.ts.map +0 -1
- package/lib/components/dataCube/filter/DataCubeFilterEditor.js +0 -312
- package/lib/components/dataCube/filter/DataCubeFilterEditor.js.map +0 -1
- package/lib/components/dataCube/grid/DataCubeGrid.d.ts +0 -27
- package/lib/components/dataCube/grid/DataCubeGrid.d.ts.map +0 -1
- package/lib/components/dataCube/grid/DataCubeGrid.js +0 -241
- package/lib/components/dataCube/grid/DataCubeGrid.js.map +0 -1
- package/lib/components/dataCube/grid/DataCubeGridShared.d.ts +0 -18
- package/lib/components/dataCube/grid/DataCubeGridShared.d.ts.map +0 -1
- package/lib/components/dataCube/grid/DataCubeGridShared.js +0 -25
- package/lib/components/dataCube/grid/DataCubeGridShared.js.map +0 -1
- package/lib/components/repl/Alert.d.ts +0 -35
- package/lib/components/repl/Alert.d.ts.map +0 -1
- package/lib/components/repl/Alert.js +0 -91
- package/lib/components/repl/Alert.js.map +0 -1
- package/lib/components/repl/DocumentationPanel.d.ts +0 -19
- package/lib/components/repl/DocumentationPanel.d.ts.map +0 -1
- package/lib/components/repl/DocumentationPanel.js +0 -30
- package/lib/components/repl/DocumentationPanel.js.map +0 -1
- package/lib/components/repl/Form.d.ts +0 -54
- package/lib/components/repl/Form.d.ts.map +0 -1
- package/lib/components/repl/Form.js +0 -252
- package/lib/components/repl/Form.js.map +0 -1
- package/lib/components/repl/LayoutManager.d.ts +0 -27
- package/lib/components/repl/LayoutManager.d.ts.map +0 -1
- package/lib/components/repl/LayoutManager.js +0 -116
- package/lib/components/repl/LayoutManager.js.map +0 -1
- package/lib/components/repl/PureCodeEditor.d.ts +0 -22
- package/lib/components/repl/PureCodeEditor.d.ts.map +0 -1
- package/lib/components/repl/PureCodeEditor.js +0 -64
- package/lib/components/repl/PureCodeEditor.js.map +0 -1
- package/lib/components/repl/SettingsPanel.d.ts +0 -19
- package/lib/components/repl/SettingsPanel.d.ts.map +0 -1
- package/lib/components/repl/SettingsPanel.js +0 -53
- package/lib/components/repl/SettingsPanel.js.map +0 -1
- package/lib/server/DataCubeQuery.d.ts +0 -40
- package/lib/server/DataCubeQuery.d.ts.map +0 -1
- package/lib/server/DataCubeQuery.js +0 -79
- package/lib/server/DataCubeQuery.js.map +0 -1
- package/lib/server/REPLEngine.d.ts +0 -74
- package/lib/server/REPLEngine.d.ts.map +0 -1
- package/lib/server/REPLEngine.js +0 -32
- package/lib/server/REPLEngine.js.map +0 -1
- package/lib/server/REPLServerClient.d.ts.map +0 -1
- package/lib/server/REPLServerClient.js.map +0 -1
- package/lib/stores/LayoutManagerState.d.ts +0 -63
- package/lib/stores/LayoutManagerState.d.ts.map +0 -1
- package/lib/stores/LayoutManagerState.js +0 -128
- package/lib/stores/LayoutManagerState.js.map +0 -1
- package/lib/stores/LegendREPLApplicationPlugin.d.ts +0 -28
- package/lib/stores/LegendREPLApplicationPlugin.d.ts.map +0 -1
- package/lib/stores/LegendREPLApplicationPlugin.js +0 -35
- package/lib/stores/LegendREPLApplicationPlugin.js.map +0 -1
- package/lib/stores/LegendREPLBaseStore.d.ts +0 -25
- package/lib/stores/LegendREPLBaseStore.d.ts.map +0 -1
- package/lib/stores/LegendREPLBaseStore.js +0 -24
- package/lib/stores/LegendREPLBaseStore.js.map +0 -1
- package/lib/stores/REPLStore.d.ts +0 -50
- package/lib/stores/REPLStore.d.ts.map +0 -1
- package/lib/stores/REPLStore.js +0 -104
- package/lib/stores/REPLStore.js.map +0 -1
- package/lib/stores/dataCube/DataCubeEngine.d.ts +0 -98
- package/lib/stores/dataCube/DataCubeEngine.d.ts.map +0 -1
- package/lib/stores/dataCube/DataCubeEngine.js +0 -211
- package/lib/stores/dataCube/DataCubeEngine.js.map +0 -1
- package/lib/stores/dataCube/DataCubeState.d.ts +0 -50
- package/lib/stores/dataCube/DataCubeState.d.ts.map +0 -1
- package/lib/stores/dataCube/DataCubeState.js +0 -108
- package/lib/stores/dataCube/DataCubeState.js.map +0 -1
- package/lib/stores/dataCube/core/DataCubeConfiguration.d.ts +0 -107
- package/lib/stores/dataCube/core/DataCubeConfiguration.d.ts.map +0 -1
- package/lib/stores/dataCube/core/DataCubeConfiguration.js +0 -185
- package/lib/stores/dataCube/core/DataCubeConfiguration.js.map +0 -1
- package/lib/stores/dataCube/core/DataCubeConfigurationBuilder.d.ts +0 -25
- package/lib/stores/dataCube/core/DataCubeConfigurationBuilder.d.ts.map +0 -1
- package/lib/stores/dataCube/core/DataCubeConfigurationBuilder.js +0 -50
- package/lib/stores/dataCube/core/DataCubeConfigurationBuilder.js.map +0 -1
- package/lib/stores/dataCube/core/DataCubeInfoState.d.ts +0 -33
- package/lib/stores/dataCube/core/DataCubeInfoState.d.ts.map +0 -1
- package/lib/stores/dataCube/core/DataCubeInfoState.js +0 -48
- package/lib/stores/dataCube/core/DataCubeInfoState.js.map +0 -1
- package/lib/stores/dataCube/core/DataCubeQueryBuilder.d.ts +0 -35
- package/lib/stores/dataCube/core/DataCubeQueryBuilder.d.ts.map +0 -1
- package/lib/stores/dataCube/core/DataCubeQueryBuilder.js +0 -130
- package/lib/stores/dataCube/core/DataCubeQueryBuilder.js.map +0 -1
- package/lib/stores/dataCube/core/DataCubeQueryBuilderUtils.d.ts +0 -50
- package/lib/stores/dataCube/core/DataCubeQueryBuilderUtils.d.ts.map +0 -1
- package/lib/stores/dataCube/core/DataCubeQueryBuilderUtils.js +0 -320
- package/lib/stores/dataCube/core/DataCubeQueryBuilderUtils.js.map +0 -1
- package/lib/stores/dataCube/core/DataCubeQueryEngine.d.ts +0 -224
- package/lib/stores/dataCube/core/DataCubeQueryEngine.d.ts.map +0 -1
- package/lib/stores/dataCube/core/DataCubeQueryEngine.js +0 -286
- package/lib/stores/dataCube/core/DataCubeQueryEngine.js.map +0 -1
- package/lib/stores/dataCube/core/DataCubeQuerySnapshot.d.ts +0 -84
- package/lib/stores/dataCube/core/DataCubeQuerySnapshot.d.ts.map +0 -1
- package/lib/stores/dataCube/core/DataCubeQuerySnapshot.js +0 -81
- package/lib/stores/dataCube/core/DataCubeQuerySnapshot.js.map +0 -1
- package/lib/stores/dataCube/core/DataCubeQuerySnapshotBuilder.d.ts +0 -33
- package/lib/stores/dataCube/core/DataCubeQuerySnapshotBuilder.d.ts.map +0 -1
- package/lib/stores/dataCube/core/DataCubeQuerySnapshotBuilder.js +0 -265
- package/lib/stores/dataCube/core/DataCubeQuerySnapshotBuilder.js.map +0 -1
- package/lib/stores/dataCube/core/DataCubeQuerySnapshotBuilderUtils.d.ts +0 -30
- package/lib/stores/dataCube/core/DataCubeQuerySnapshotBuilderUtils.d.ts.map +0 -1
- package/lib/stores/dataCube/core/DataCubeQuerySnapshotBuilderUtils.js +0 -125
- package/lib/stores/dataCube/core/DataCubeQuerySnapshotBuilderUtils.js.map +0 -1
- package/lib/stores/dataCube/core/DataCubeQuerySnapshotManager.d.ts +0 -49
- package/lib/stores/dataCube/core/DataCubeQuerySnapshotManager.d.ts.map +0 -1
- package/lib/stores/dataCube/core/DataCubeQuerySnapshotManager.js +0 -87
- package/lib/stores/dataCube/core/DataCubeQuerySnapshotManager.js.map +0 -1
- package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation.d.ts +0 -28
- package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation.d.ts.map +0 -1
- package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation.js +0 -25
- package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation.js.map +0 -1
- package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Average.d.ts +0 -27
- package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Average.d.ts.map +0 -1
- package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Average.js +0 -39
- package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Average.js.map +0 -1
- package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Count.d.ts +0 -27
- package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Count.d.ts.map +0 -1
- package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Count.js +0 -47
- package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Count.js.map +0 -1
- package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__First.d.ts +0 -27
- package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__First.d.ts.map +0 -1
- package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__First.js +0 -44
- package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__First.js.map +0 -1
- package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__JoinStrings.d.ts +0 -27
- package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__JoinStrings.d.ts.map +0 -1
- package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__JoinStrings.js +0 -53
- package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__JoinStrings.js.map +0 -1
- package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Last.d.ts +0 -27
- package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Last.d.ts.map +0 -1
- package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Last.js +0 -44
- package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Last.js.map +0 -1
- package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Max.d.ts +0 -27
- package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Max.d.ts.map +0 -1
- package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Max.js +0 -39
- package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Max.js.map +0 -1
- package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Min.d.ts +0 -27
- package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Min.d.ts.map +0 -1
- package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Min.js +0 -39
- package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Min.js.map +0 -1
- package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__StdDevPopulation.d.ts +0 -27
- package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__StdDevPopulation.d.ts.map +0 -1
- package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__StdDevPopulation.js +0 -39
- package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__StdDevPopulation.js.map +0 -1
- package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__StdDevSample.d.ts +0 -27
- package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__StdDevSample.d.ts.map +0 -1
- package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__StdDevSample.js +0 -39
- package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__StdDevSample.js.map +0 -1
- package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Sum.d.ts +0 -27
- package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Sum.d.ts.map +0 -1
- package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Sum.js +0 -39
- package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Sum.js.map +0 -1
- package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__UniqueValue.d.ts +0 -27
- package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__UniqueValue.d.ts.map +0 -1
- package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__UniqueValue.js +0 -44
- package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__UniqueValue.js.map +0 -1
- package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__VariancePopulation.d.ts +0 -27
- package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__VariancePopulation.d.ts.map +0 -1
- package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__VariancePopulation.js +0 -39
- package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__VariancePopulation.js.map +0 -1
- package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__VarianceSample.d.ts +0 -27
- package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__VarianceSample.d.ts.map +0 -1
- package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__VarianceSample.js +0 -39
- package/lib/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__VarianceSample.js.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterEditorState.d.ts +0 -36
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterEditorState.d.ts.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterEditorState.js +0 -153
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterEditorState.js.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation.d.ts +0 -32
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation.d.ts.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation.js +0 -48
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation.js.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__Contain.d.ts +0 -34
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__Contain.d.ts.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__Contain.js +0 -59
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__Contain.js.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__ContainCaseInsensitive.d.ts +0 -34
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__ContainCaseInsensitive.d.ts.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__ContainCaseInsensitive.js +0 -64
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__ContainCaseInsensitive.js.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EndWith.d.ts +0 -34
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EndWith.d.ts.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EndWith.js +0 -59
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EndWith.js.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EndWithCaseInsensitive.d.ts +0 -34
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EndWithCaseInsensitive.d.ts.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EndWithCaseInsensitive.js +0 -64
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EndWithCaseInsensitive.js.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__Equal.d.ts +0 -34
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__Equal.d.ts.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__Equal.js +0 -136
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__Equal.js.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitive.d.ts +0 -34
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitive.d.ts.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitive.js +0 -64
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitive.js.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitiveColumn.d.ts +0 -34
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitiveColumn.d.ts.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitiveColumn.js +0 -64
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitiveColumn.js.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualColumn.d.ts +0 -34
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualColumn.d.ts.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualColumn.js +0 -65
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualColumn.js.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThan.d.ts +0 -34
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThan.d.ts.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThan.js +0 -67
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThan.js.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanColumn.d.ts +0 -34
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanColumn.d.ts.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanColumn.js +0 -64
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanColumn.js.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqual.d.ts +0 -34
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqual.d.ts.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqual.js +0 -67
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqual.js.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqualColumn.d.ts +0 -34
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqualColumn.d.ts.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqualColumn.js +0 -64
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqualColumn.js.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__IsNotNull.d.ts +0 -31
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__IsNotNull.d.ts.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__IsNotNull.js +0 -64
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__IsNotNull.js.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__IsNull.d.ts +0 -31
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__IsNull.d.ts.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__IsNull.js +0 -64
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__IsNull.js.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThan.d.ts +0 -34
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThan.d.ts.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThan.js +0 -67
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThan.js.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanColumn.d.ts +0 -34
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanColumn.d.ts.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanColumn.js +0 -64
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanColumn.js.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanOrEqual.d.ts +0 -34
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanOrEqual.d.ts.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanOrEqual.js +0 -67
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanOrEqual.js.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanOrEqualColumn.d.ts +0 -34
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanOrEqualColumn.d.ts.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanOrEqualColumn.js +0 -64
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanOrEqualColumn.js.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotContain.d.ts +0 -34
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotContain.d.ts.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotContain.js +0 -59
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotContain.js.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEndWith.d.ts +0 -34
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEndWith.d.ts.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEndWith.js +0 -59
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEndWith.js.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqual.d.ts +0 -34
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqual.d.ts.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqual.js +0 -69
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqual.js.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitive.d.ts +0 -34
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitive.d.ts.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitive.js +0 -64
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitive.js.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitiveColumn.d.ts +0 -34
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitiveColumn.d.ts.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitiveColumn.js +0 -64
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitiveColumn.js.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualColumn.d.ts +0 -34
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualColumn.d.ts.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualColumn.js +0 -65
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualColumn.js.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotStartWith.d.ts +0 -34
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotStartWith.d.ts.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotStartWith.js +0 -59
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotStartWith.js.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__StartWith.d.ts +0 -34
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__StartWith.d.ts.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__StartWith.js +0 -59
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__StartWith.js.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__StartWithCaseInsensitive.d.ts +0 -34
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__StartWithCaseInsensitive.d.ts.map +0 -1
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__StartWithCaseInsensitive.js +0 -64
- package/lib/stores/dataCube/core/filter/DataCubeQueryFilterOperation__StartWithCaseInsensitive.js.map +0 -1
- package/lib/stores/dataCube/editor/DataCubeEditorColumnPropertiesPanelState.d.ts +0 -37
- package/lib/stores/dataCube/editor/DataCubeEditorColumnPropertiesPanelState.d.ts.map +0 -1
- package/lib/stores/dataCube/editor/DataCubeEditorColumnPropertiesPanelState.js +0 -68
- package/lib/stores/dataCube/editor/DataCubeEditorColumnPropertiesPanelState.js.map +0 -1
- package/lib/stores/dataCube/editor/DataCubeEditorColumnsPanelState.d.ts +0 -58
- package/lib/stores/dataCube/editor/DataCubeEditorColumnsPanelState.d.ts.map +0 -1
- package/lib/stores/dataCube/editor/DataCubeEditorColumnsPanelState.js +0 -127
- package/lib/stores/dataCube/editor/DataCubeEditorColumnsPanelState.js.map +0 -1
- package/lib/stores/dataCube/editor/DataCubeEditorColumnsSelectorState.d.ts +0 -42
- package/lib/stores/dataCube/editor/DataCubeEditorColumnsSelectorState.d.ts.map +0 -1
- package/lib/stores/dataCube/editor/DataCubeEditorColumnsSelectorState.js +0 -74
- package/lib/stores/dataCube/editor/DataCubeEditorColumnsSelectorState.js.map +0 -1
- package/lib/stores/dataCube/editor/DataCubeEditorGeneralPropertiesPanelState.d.ts +0 -35
- package/lib/stores/dataCube/editor/DataCubeEditorGeneralPropertiesPanelState.d.ts.map +0 -1
- package/lib/stores/dataCube/editor/DataCubeEditorGeneralPropertiesPanelState.js +0 -59
- package/lib/stores/dataCube/editor/DataCubeEditorGeneralPropertiesPanelState.js.map +0 -1
- package/lib/stores/dataCube/editor/DataCubeEditorHorizontalPivotsPanelState.d.ts +0 -43
- package/lib/stores/dataCube/editor/DataCubeEditorHorizontalPivotsPanelState.d.ts.map +0 -1
- package/lib/stores/dataCube/editor/DataCubeEditorHorizontalPivotsPanelState.js +0 -92
- package/lib/stores/dataCube/editor/DataCubeEditorHorizontalPivotsPanelState.js.map +0 -1
- package/lib/stores/dataCube/editor/DataCubeEditorMutableConfiguration.d.ts +0 -107
- package/lib/stores/dataCube/editor/DataCubeEditorMutableConfiguration.d.ts.map +0 -1
- package/lib/stores/dataCube/editor/DataCubeEditorMutableConfiguration.js +0 -467
- package/lib/stores/dataCube/editor/DataCubeEditorMutableConfiguration.js.map +0 -1
- package/lib/stores/dataCube/editor/DataCubeEditorPanelState.d.ts +0 -29
- package/lib/stores/dataCube/editor/DataCubeEditorPanelState.d.ts.map +0 -1
- package/lib/stores/dataCube/editor/DataCubeEditorPanelState.js.map +0 -1
- package/lib/stores/dataCube/editor/DataCubeEditorSortsPanelState.d.ts +0 -41
- package/lib/stores/dataCube/editor/DataCubeEditorSortsPanelState.d.ts.map +0 -1
- package/lib/stores/dataCube/editor/DataCubeEditorSortsPanelState.js +0 -77
- package/lib/stores/dataCube/editor/DataCubeEditorSortsPanelState.js.map +0 -1
- package/lib/stores/dataCube/editor/DataCubeEditorState.d.ts +0 -64
- package/lib/stores/dataCube/editor/DataCubeEditorState.d.ts.map +0 -1
- package/lib/stores/dataCube/editor/DataCubeEditorState.js +0 -156
- package/lib/stores/dataCube/editor/DataCubeEditorState.js.map +0 -1
- package/lib/stores/dataCube/editor/DataCubeEditorVerticalPivotsPanelState.d.ts +0 -35
- package/lib/stores/dataCube/editor/DataCubeEditorVerticalPivotsPanelState.d.ts.map +0 -1
- package/lib/stores/dataCube/editor/DataCubeEditorVerticalPivotsPanelState.js +0 -58
- package/lib/stores/dataCube/editor/DataCubeEditorVerticalPivotsPanelState.js.map +0 -1
- package/lib/stores/dataCube/extend/DataCubeColumnEditorState.d.ts +0 -61
- package/lib/stores/dataCube/extend/DataCubeColumnEditorState.d.ts.map +0 -1
- package/lib/stores/dataCube/extend/DataCubeColumnEditorState.js +0 -262
- package/lib/stores/dataCube/extend/DataCubeColumnEditorState.js.map +0 -1
- package/lib/stores/dataCube/extend/DataCubeExtendManagerState.d.ts +0 -46
- package/lib/stores/dataCube/extend/DataCubeExtendManagerState.d.ts.map +0 -1
- package/lib/stores/dataCube/extend/DataCubeExtendManagerState.js +0 -118
- package/lib/stores/dataCube/extend/DataCubeExtendManagerState.js.map +0 -1
- package/lib/stores/dataCube/filter/DataCubeFilterEditorState.d.ts +0 -61
- package/lib/stores/dataCube/filter/DataCubeFilterEditorState.d.ts.map +0 -1
- package/lib/stores/dataCube/filter/DataCubeFilterEditorState.js +0 -230
- package/lib/stores/dataCube/filter/DataCubeFilterEditorState.js.map +0 -1
- package/lib/stores/dataCube/grid/DataCubeGridClientEngine.d.ts +0 -92
- package/lib/stores/dataCube/grid/DataCubeGridClientEngine.d.ts.map +0 -1
- package/lib/stores/dataCube/grid/DataCubeGridClientEngine.js +0 -357
- package/lib/stores/dataCube/grid/DataCubeGridClientEngine.js.map +0 -1
- package/lib/stores/dataCube/grid/DataCubeGridClientExportEngine.d.ts +0 -31
- package/lib/stores/dataCube/grid/DataCubeGridClientExportEngine.d.ts.map +0 -1
- package/lib/stores/dataCube/grid/DataCubeGridClientExportEngine.js +0 -152
- package/lib/stores/dataCube/grid/DataCubeGridClientExportEngine.js.map +0 -1
- package/lib/stores/dataCube/grid/DataCubeGridConfigurationBuilder.d.ts +0 -220
- package/lib/stores/dataCube/grid/DataCubeGridConfigurationBuilder.d.ts.map +0 -1
- package/lib/stores/dataCube/grid/DataCubeGridConfigurationBuilder.js +0 -586
- package/lib/stores/dataCube/grid/DataCubeGridConfigurationBuilder.js.map +0 -1
- package/lib/stores/dataCube/grid/DataCubeGridControllerState.d.ts +0 -88
- package/lib/stores/dataCube/grid/DataCubeGridControllerState.d.ts.map +0 -1
- package/lib/stores/dataCube/grid/DataCubeGridControllerState.js +0 -325
- package/lib/stores/dataCube/grid/DataCubeGridControllerState.js.map +0 -1
- package/lib/stores/dataCube/grid/DataCubeGridMenuBuilder.d.ts +0 -19
- package/lib/stores/dataCube/grid/DataCubeGridMenuBuilder.d.ts.map +0 -1
- package/lib/stores/dataCube/grid/DataCubeGridMenuBuilder.js +0 -684
- package/lib/stores/dataCube/grid/DataCubeGridMenuBuilder.js.map +0 -1
- package/lib/stores/dataCube/grid/DataCubeGridQueryBuilder.d.ts +0 -23
- package/lib/stores/dataCube/grid/DataCubeGridQueryBuilder.d.ts.map +0 -1
- package/lib/stores/dataCube/grid/DataCubeGridQueryBuilder.js +0 -130
- package/lib/stores/dataCube/grid/DataCubeGridQueryBuilder.js.map +0 -1
- package/lib/stores/dataCube/grid/DataCubeGridQuerySnapshotBuilder.d.ts +0 -27
- package/lib/stores/dataCube/grid/DataCubeGridQuerySnapshotBuilder.d.ts.map +0 -1
- package/lib/stores/dataCube/grid/DataCubeGridQuerySnapshotBuilder.js +0 -60
- package/lib/stores/dataCube/grid/DataCubeGridQuerySnapshotBuilder.js.map +0 -1
- package/lib/stores/dataCube/grid/DataCubeGridState.d.ts +0 -55
- package/lib/stores/dataCube/grid/DataCubeGridState.d.ts.map +0 -1
- package/lib/stores/dataCube/grid/DataCubeGridState.js +0 -114
- package/lib/stores/dataCube/grid/DataCubeGridState.js.map +0 -1
- package/src/__lib__/LegendREPLSetting.ts +0 -19
- package/src/application/LegendREPLDocumentation.ts +0 -22
- package/src/application/LegendREPLPluginManager.ts +0 -65
- package/src/components/Core_LegendREPLApplicationPlugin.tsx +0 -40
- package/src/components/LegendREPLFrameworkProvider.tsx +0 -52
- package/src/components/REPLStoreProvider.tsx +0 -63
- package/src/components/dataCube/DataCube.tsx +0 -157
- package/src/components/dataCube/editor/DataCubeEditor.tsx +0 -113
- package/src/components/dataCube/editor/DataCubeEditorColumnPropertiesPanel.tsx +0 -1209
- package/src/components/dataCube/editor/DataCubeEditorColumnsPanel.tsx +0 -121
- package/src/components/dataCube/editor/DataCubeEditorColumnsSelector.tsx +0 -596
- package/src/components/dataCube/editor/DataCubeEditorGeneralPropertiesPanel.tsx +0 -786
- package/src/components/dataCube/editor/DataCubeEditorHorizontalPivotsPanel.tsx +0 -61
- package/src/components/dataCube/editor/DataCubeEditorSortsPanel.tsx +0 -166
- package/src/components/dataCube/editor/DataCubeEditorVerticalPivotsPanel.tsx +0 -43
- package/src/components/dataCube/extend/DataCubeColumnEditor.tsx +0 -363
- package/src/components/dataCube/filter/DataCubeFilterEditor.tsx +0 -907
- package/src/components/dataCube/grid/DataCubeGrid.tsx +0 -385
- package/src/components/dataCube/grid/DataCubeGridShared.tsx +0 -45
- package/src/components/repl/Alert.tsx +0 -182
- package/src/components/repl/DocumentationPanel.tsx +0 -40
- package/src/components/repl/Form.tsx +0 -579
- package/src/components/repl/LayoutManager.tsx +0 -190
- package/src/components/repl/PureCodeEditor.tsx +0 -91
- package/src/components/repl/SettingsPanel.tsx +0 -207
- package/src/server/DataCubeQuery.ts +0 -130
- package/src/server/REPLEngine.ts +0 -110
- package/src/stores/LayoutManagerState.ts +0 -176
- package/src/stores/LegendREPLApplicationPlugin.ts +0 -39
- package/src/stores/LegendREPLBaseStore.ts +0 -34
- package/src/stores/REPLStore.tsx +0 -193
- package/src/stores/dataCube/DataCubeEngine.ts +0 -284
- package/src/stores/dataCube/DataCubeState.ts +0 -128
- package/src/stores/dataCube/core/DataCubeConfiguration.ts +0 -240
- package/src/stores/dataCube/core/DataCubeConfigurationBuilder.ts +0 -66
- package/src/stores/dataCube/core/DataCubeInfoState.ts +0 -61
- package/src/stores/dataCube/core/DataCubeQueryBuilder.ts +0 -296
- package/src/stores/dataCube/core/DataCubeQueryBuilderUtils.ts +0 -514
- package/src/stores/dataCube/core/DataCubeQueryEngine.ts +0 -327
- package/src/stores/dataCube/core/DataCubeQuerySnapshot.ts +0 -188
- package/src/stores/dataCube/core/DataCubeQuerySnapshotBuilder.ts +0 -411
- package/src/stores/dataCube/core/DataCubeQuerySnapshotBuilderUtils.ts +0 -197
- package/src/stores/dataCube/core/DataCubeQuerySnapshotManager.ts +0 -155
- package/src/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation.ts +0 -47
- package/src/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Average.tsx +0 -52
- package/src/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Count.tsx +0 -61
- package/src/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__First.tsx +0 -57
- package/src/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__JoinStrings.tsx +0 -81
- package/src/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Last.tsx +0 -57
- package/src/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Max.tsx +0 -52
- package/src/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Min.tsx +0 -52
- package/src/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__StdDevPopulation.tsx +0 -55
- package/src/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__StdDevSample.tsx +0 -52
- package/src/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__Sum.tsx +0 -52
- package/src/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__UniqueValue.tsx +0 -57
- package/src/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__VariancePopulation.tsx +0 -52
- package/src/stores/dataCube/core/aggregation/DataCubeQueryAggregateOperation__VarianceSample.tsx +0 -52
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterEditorState.ts +0 -231
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation.ts +0 -96
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__Contain.tsx +0 -88
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__ContainCaseInsensitive.tsx +0 -94
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EndWith.tsx +0 -88
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EndWithCaseInsensitive.tsx +0 -94
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__Equal.tsx +0 -170
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitive.tsx +0 -94
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualCaseInsensitiveColumn.tsx +0 -92
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__EqualColumn.tsx +0 -93
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThan.tsx +0 -96
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanColumn.tsx +0 -92
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqual.tsx +0 -96
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__GreaterThanOrEqualColumn.tsx +0 -92
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__IsNotNull.tsx +0 -92
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__IsNull.tsx +0 -89
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThan.tsx +0 -96
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanColumn.tsx +0 -92
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanOrEqual.tsx +0 -96
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__LessThanOrEqualColumn.tsx +0 -92
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotContain.tsx +0 -91
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEndWith.tsx +0 -91
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqual.tsx +0 -101
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitive.tsx +0 -97
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualCaseInsensitiveColumn.tsx +0 -95
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotEqualColumn.tsx +0 -96
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__NotStartWith.tsx +0 -91
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__StartWith.tsx +0 -88
- package/src/stores/dataCube/core/filter/DataCubeQueryFilterOperation__StartWithCaseInsensitive.tsx +0 -94
- package/src/stores/dataCube/editor/DataCubeEditorColumnPropertiesPanelState.ts +0 -111
- package/src/stores/dataCube/editor/DataCubeEditorColumnsPanelState.ts +0 -198
- package/src/stores/dataCube/editor/DataCubeEditorColumnsSelectorState.ts +0 -114
- package/src/stores/dataCube/editor/DataCubeEditorGeneralPropertiesPanelState.ts +0 -87
- package/src/stores/dataCube/editor/DataCubeEditorHorizontalPivotsPanelState.ts +0 -157
- package/src/stores/dataCube/editor/DataCubeEditorMutableConfiguration.ts +0 -677
- package/src/stores/dataCube/editor/DataCubeEditorPanelState.ts +0 -37
- package/src/stores/dataCube/editor/DataCubeEditorSortsPanelState.ts +0 -133
- package/src/stores/dataCube/editor/DataCubeEditorState.tsx +0 -208
- package/src/stores/dataCube/editor/DataCubeEditorVerticalPivotsPanelState.ts +0 -110
- package/src/stores/dataCube/extend/DataCubeColumnEditorState.tsx +0 -366
- package/src/stores/dataCube/extend/DataCubeExtendManagerState.tsx +0 -174
- package/src/stores/dataCube/filter/DataCubeFilterEditorState.tsx +0 -326
- package/src/stores/dataCube/grid/DataCubeGridClientEngine.ts +0 -501
- package/src/stores/dataCube/grid/DataCubeGridClientExportEngine.ts +0 -173
- package/src/stores/dataCube/grid/DataCubeGridConfigurationBuilder.tsx +0 -849
- package/src/stores/dataCube/grid/DataCubeGridControllerState.ts +0 -468
- package/src/stores/dataCube/grid/DataCubeGridMenuBuilder.tsx +0 -856
- package/src/stores/dataCube/grid/DataCubeGridQueryBuilder.ts +0 -195
- package/src/stores/dataCube/grid/DataCubeGridQuerySnapshotBuilder.ts +0 -103
- package/src/stores/dataCube/grid/DataCubeGridState.ts +0 -154
|
@@ -1,501 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) 2020-present, Goldman Sachs
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
import type {
|
|
18
|
-
GridApi,
|
|
19
|
-
IRowNode,
|
|
20
|
-
IServerSideDatasource,
|
|
21
|
-
IServerSideGetRowsParams,
|
|
22
|
-
} from '@ag-grid-community/core';
|
|
23
|
-
import type { DataCubeGridState } from './DataCubeGridState.js';
|
|
24
|
-
import {
|
|
25
|
-
IllegalStateError,
|
|
26
|
-
LogEvent,
|
|
27
|
-
assertErrorThrown,
|
|
28
|
-
guaranteeNonNullable,
|
|
29
|
-
hashObject,
|
|
30
|
-
isBoolean,
|
|
31
|
-
isNonNullable,
|
|
32
|
-
pruneObject,
|
|
33
|
-
} from '@finos/legend-shared';
|
|
34
|
-
import { buildExecutableQuery } from '../core/DataCubeQueryBuilder.js';
|
|
35
|
-
import {
|
|
36
|
-
type TabularDataSet,
|
|
37
|
-
type V1_AppliedFunction,
|
|
38
|
-
V1_Lambda,
|
|
39
|
-
} from '@finos/legend-graph';
|
|
40
|
-
import { APPLICATION_EVENT } from '@finos/legend-application';
|
|
41
|
-
import { buildQuerySnapshot } from './DataCubeGridQuerySnapshotBuilder.js';
|
|
42
|
-
import { generateRowGroupingDrilldownExecutableQueryPostProcessor } from './DataCubeGridQueryBuilder.js';
|
|
43
|
-
import { makeObservable, observable, runInAction } from 'mobx';
|
|
44
|
-
import type {
|
|
45
|
-
DataCubeConfiguration,
|
|
46
|
-
DataCubeConfigurationColorKey,
|
|
47
|
-
} from '../core/DataCubeConfiguration.js';
|
|
48
|
-
import { AlertType } from '../../../components/repl/Alert.js';
|
|
49
|
-
import { DEFAULT_LARGE_ALERT_WINDOW_CONFIG } from '../../LayoutManagerState.js';
|
|
50
|
-
import type { DataCubeQuerySnapshot } from '../core/DataCubeQuerySnapshot.js';
|
|
51
|
-
import type { DataCubeEngine } from '../DataCubeEngine.js';
|
|
52
|
-
import { generateColumnDefs } from './DataCubeGridConfigurationBuilder.js';
|
|
53
|
-
import type { DataCubeQueryFunctionMap } from '../core/DataCubeQueryEngine.js';
|
|
54
|
-
import type { DataCubeQueryFilterOperation } from '../core/filter/DataCubeQueryFilterOperation.js';
|
|
55
|
-
import type { DataCubeQueryAggregateOperation } from '../core/aggregation/DataCubeQueryAggregateOperation.js';
|
|
56
|
-
|
|
57
|
-
type GridClientCellValue = string | number | boolean | null | undefined;
|
|
58
|
-
type GridClientRowData = {
|
|
59
|
-
[key: string]: GridClientCellValue;
|
|
60
|
-
};
|
|
61
|
-
|
|
62
|
-
export enum DataCubeGridClientExportFormat {
|
|
63
|
-
CSV = 'CSV',
|
|
64
|
-
EXCEL = 'EXCEL',
|
|
65
|
-
PLAIN_TEXT = 'PLAIN_TEXT',
|
|
66
|
-
HTML = 'HTML',
|
|
67
|
-
PDF = 'PDF',
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
export enum INTERNAL__GridClientUtilityCssClassName {
|
|
71
|
-
ROOT = 'data-cube-grid.ag-theme-quartz',
|
|
72
|
-
HIGHLIGHT_ROW = 'data-cube-grid__utility--highlight-row',
|
|
73
|
-
SHOW_VERTICAL_GRID_LINES = 'data-cube-grid__utility--show-vertical-grid-lines',
|
|
74
|
-
SHOW_HORIZONTAL_GRID_LINES = 'data-cube-grid__utility--show-horizontal-grid-lines',
|
|
75
|
-
|
|
76
|
-
BLUR = 'data-cube-grid__utility--blur',
|
|
77
|
-
|
|
78
|
-
FONT_FAMILY_PREFIX = 'data-cube-grid__utility--font-family-',
|
|
79
|
-
FONT_SIZE_PREFIX = 'data-cube-grid__utility--font-size-',
|
|
80
|
-
FONT_BOLD = 'data-cube-grid__utility--font-style-bold',
|
|
81
|
-
FONT_ITALIC = 'data-cube-grid__utility--font-style-italic',
|
|
82
|
-
FONT_UNDERLINE_PREFIX = 'data-cube-grid__utility--font-style-underline-',
|
|
83
|
-
FONT_STRIKETHROUGH = 'data-cube-grid__utility--font-style-strikethrough',
|
|
84
|
-
FONT_CASE_PREFIX = 'data-cube-grid__utility--font-style-case-',
|
|
85
|
-
TEXT_ALIGN_PREFIX = 'data-cube-grid__utility--text-align-',
|
|
86
|
-
TEXT_COLOR_PREFIX = 'data-cube-grid__utility--text-color-',
|
|
87
|
-
BACKGROUND_COLOR_PREFIX = 'data-cube-grid__utility--background-color-',
|
|
88
|
-
|
|
89
|
-
PIVOT_COLUMN_GROUP = 'data-cube-grid__utility--pivot-column-group',
|
|
90
|
-
PIVOT_COLUMN_GROUP_PREFIX = 'data-cube-grid__utility--pivot-column-group-',
|
|
91
|
-
}
|
|
92
|
-
export const generateFontFamilyUtilityClassName = (fontFamily: string) =>
|
|
93
|
-
`${INTERNAL__GridClientUtilityCssClassName.FONT_FAMILY_PREFIX}${fontFamily.replaceAll(' ', '-')}`;
|
|
94
|
-
export const generateFontSizeUtilityClassName = (fontSize: number) =>
|
|
95
|
-
`${INTERNAL__GridClientUtilityCssClassName.FONT_SIZE_PREFIX}${fontSize}`;
|
|
96
|
-
export const generateFontUnderlineUtilityClassName = (
|
|
97
|
-
variant: string | undefined,
|
|
98
|
-
) =>
|
|
99
|
-
`${INTERNAL__GridClientUtilityCssClassName.FONT_UNDERLINE_PREFIX}${variant ?? 'none'}`;
|
|
100
|
-
export const generateFontCaseUtilityClassName = (
|
|
101
|
-
fontCase: string | undefined,
|
|
102
|
-
) =>
|
|
103
|
-
`${INTERNAL__GridClientUtilityCssClassName.FONT_CASE_PREFIX}${fontCase ?? 'none'}`;
|
|
104
|
-
export const generateTextAlignUtilityClassName = (alignment: string) =>
|
|
105
|
-
`${INTERNAL__GridClientUtilityCssClassName.TEXT_ALIGN_PREFIX}${alignment}`;
|
|
106
|
-
export const generateTextColorUtilityClassName = (
|
|
107
|
-
color: string,
|
|
108
|
-
key: DataCubeConfigurationColorKey,
|
|
109
|
-
) =>
|
|
110
|
-
`${INTERNAL__GridClientUtilityCssClassName.TEXT_COLOR_PREFIX}${key}-${color.substring(1)}`;
|
|
111
|
-
export const generateBackgroundColorUtilityClassName = (
|
|
112
|
-
color: string,
|
|
113
|
-
key: DataCubeConfigurationColorKey,
|
|
114
|
-
) =>
|
|
115
|
-
`${INTERNAL__GridClientUtilityCssClassName.BACKGROUND_COLOR_PREFIX}${key}-${color.substring(1)}`;
|
|
116
|
-
|
|
117
|
-
// Indicates how many rows for each block in the cache, i.e. how many rows returned from the server at a time.
|
|
118
|
-
// ag-grid will dedicte space in advanced to store these rows. In server-side row model, this is used as the page size.
|
|
119
|
-
// See https://www.ag-grid.com/react-data-grid/server-side-model-configuration/#server-side-cache
|
|
120
|
-
export const INTERNAL__GRID_CLIENT_DEFAULT_CACHE_BLOCK_SIZE = 100;
|
|
121
|
-
// NOTE: The cache block size is used by ag-grid to pre-allocate memory for the grid
|
|
122
|
-
// so the value set must be reasonable, or else it can crash the application!
|
|
123
|
-
export const INTERNAL__GRID_CLIENT_MAX_CACHE_BLOCK_SIZE = 1e5;
|
|
124
|
-
|
|
125
|
-
export const INTERNAL__GRID_CLIENT_PIVOT_COLUMN_GROUP_COLOR_ROTATION_SIZE = 5;
|
|
126
|
-
export const INTERNAL__GRID_CLIENT_SIDE_BAR_WIDTH = 200;
|
|
127
|
-
export const INTERNAL__GRID_CLIENT_COLUMN_MIN_WIDTH = 50;
|
|
128
|
-
export const INTERNAL__GRID_CLIENT_HEADER_HEIGHT = 24;
|
|
129
|
-
export const INTERNAL__GRID_CLIENT_ROW_HEIGHT = 20;
|
|
130
|
-
export const INTERNAL__GRID_CLIENT_TOOLTIP_SHOW_DELAY = 1000;
|
|
131
|
-
export const INTERNAL__GRID_CLIENT_AUTO_RESIZE_PADDING = 10;
|
|
132
|
-
export const INTERNAL__GRID_CLIENT_MISSING_VALUE = '__MISSING';
|
|
133
|
-
export const INTERNAL__GRID_CLIENT_TREE_COLUMN_ID = 'INTERNAL__tree';
|
|
134
|
-
export const INTERNAL__GRID_CLIENT_DATA_FETCH_MANUAL_TRIGGER_COLUMN_ID =
|
|
135
|
-
'INTERNAL__dataFetchManualTrigger';
|
|
136
|
-
export const INTERNAL__GRID_CLIENT_ROW_GROUPING_COUNT_AGG_COLUMN_ID =
|
|
137
|
-
'INTERNAL__count';
|
|
138
|
-
|
|
139
|
-
export enum GridClientPinnedAlignement {
|
|
140
|
-
LEFT = 'left',
|
|
141
|
-
RIGHT = 'right',
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
export enum GridClientSortDirection {
|
|
145
|
-
ASCENDING = 'asc',
|
|
146
|
-
DESCENDING = 'desc',
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
export function getDataForAllNodes<T>(client: GridApi<T>): T[] {
|
|
150
|
-
const rows: T[] = [];
|
|
151
|
-
client.forEachNode((node: IRowNode<T>) => {
|
|
152
|
-
if (node.data) {
|
|
153
|
-
rows.push(node.data);
|
|
154
|
-
}
|
|
155
|
-
});
|
|
156
|
-
return rows;
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
/**
|
|
160
|
-
* NOTE: this method does not work for server-side row model.
|
|
161
|
-
* It only works when client-side filter is being applied
|
|
162
|
-
*/
|
|
163
|
-
export function getDataForAllFilteredNodes<T>(client: GridApi<T>): T[] {
|
|
164
|
-
const rows: T[] = [];
|
|
165
|
-
client.forEachNodeAfterFilter((node: IRowNode<T>) => {
|
|
166
|
-
if (node.data) {
|
|
167
|
-
rows.push(node.data);
|
|
168
|
-
}
|
|
169
|
-
});
|
|
170
|
-
return rows;
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
/**
|
|
174
|
-
* This method computes the hash code for the parts of the snapshot that should trigger data fetching.
|
|
175
|
-
* This is used to manually trigger server-side row model data source getRows() method.
|
|
176
|
-
*/
|
|
177
|
-
export function computeHashCodeForDataFetchManualTrigger(
|
|
178
|
-
snapshot: DataCubeQuerySnapshot,
|
|
179
|
-
configuration: DataCubeConfiguration,
|
|
180
|
-
) {
|
|
181
|
-
return hashObject(
|
|
182
|
-
pruneObject({
|
|
183
|
-
...snapshot.data,
|
|
184
|
-
name: undefined,
|
|
185
|
-
configuration: {
|
|
186
|
-
initialExpandLevel: configuration.initialExpandLevel,
|
|
187
|
-
showRootAggregation: configuration.showRootAggregation,
|
|
188
|
-
showLeafCount: configuration.showLeafCount,
|
|
189
|
-
pivotTotalColumnPlacement: configuration.pivotTotalColumnPlacement,
|
|
190
|
-
treeGroupSortFunction: configuration.treeGroupSortFunction,
|
|
191
|
-
columns: configuration.columns.map((column) => ({
|
|
192
|
-
name: column.name,
|
|
193
|
-
type: column.type,
|
|
194
|
-
aggregateOperator: column.aggregateOperator,
|
|
195
|
-
aggregationParameters: column.aggregationParameters,
|
|
196
|
-
excludedFromHorizontalPivot: column.excludedFromHorizontalPivot,
|
|
197
|
-
horizontalPivotSortFunction: column.horizontalPivotSortFunction,
|
|
198
|
-
})),
|
|
199
|
-
},
|
|
200
|
-
}),
|
|
201
|
-
);
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
function TDStoRowData(tds: TabularDataSet): GridClientRowData[] {
|
|
205
|
-
return tds.rows.map((_row, rowIdx) => {
|
|
206
|
-
const row: GridClientRowData = {};
|
|
207
|
-
const cols = tds.columns;
|
|
208
|
-
_row.values.forEach((value, colIdx) => {
|
|
209
|
-
// `ag-grid` shows `false` value as empty string so we have
|
|
210
|
-
// call `.toString()` to avoid this behavior.
|
|
211
|
-
row[cols[colIdx] as string] = isBoolean(value)
|
|
212
|
-
? String(value)
|
|
213
|
-
: isNonNullable(value)
|
|
214
|
-
? value
|
|
215
|
-
: INTERNAL__GRID_CLIENT_MISSING_VALUE;
|
|
216
|
-
});
|
|
217
|
-
return row;
|
|
218
|
-
});
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
async function getCastColumns(
|
|
222
|
-
currentSnapshot: DataCubeQuerySnapshot,
|
|
223
|
-
engine: DataCubeEngine,
|
|
224
|
-
) {
|
|
225
|
-
if (!currentSnapshot.data.pivot) {
|
|
226
|
-
throw new IllegalStateError(
|
|
227
|
-
`Can't build cast columns collector query when no pivot is specified`,
|
|
228
|
-
);
|
|
229
|
-
}
|
|
230
|
-
const snapshot = currentSnapshot.clone();
|
|
231
|
-
guaranteeNonNullable(snapshot.data.pivot).castColumns = [];
|
|
232
|
-
snapshot.data.groupBy = undefined;
|
|
233
|
-
snapshot.data.sortColumns = [];
|
|
234
|
-
snapshot.data.limit = 0;
|
|
235
|
-
const query = buildExecutableQuery(
|
|
236
|
-
snapshot,
|
|
237
|
-
engine.filterOperations,
|
|
238
|
-
engine.aggregateOperations,
|
|
239
|
-
{
|
|
240
|
-
postProcessor: (
|
|
241
|
-
_snapshot: DataCubeQuerySnapshot,
|
|
242
|
-
sequence: V1_AppliedFunction[],
|
|
243
|
-
funcMap: DataCubeQueryFunctionMap,
|
|
244
|
-
configuration: DataCubeConfiguration,
|
|
245
|
-
filterOperations: DataCubeQueryFilterOperation[],
|
|
246
|
-
aggregateOperations: DataCubeQueryAggregateOperation[],
|
|
247
|
-
) => {
|
|
248
|
-
const _unprocess = (funcMapKey: keyof DataCubeQueryFunctionMap) => {
|
|
249
|
-
const func = funcMap[funcMapKey];
|
|
250
|
-
if (func) {
|
|
251
|
-
sequence.splice(sequence.indexOf(func), 1);
|
|
252
|
-
funcMap[funcMapKey] = undefined;
|
|
253
|
-
}
|
|
254
|
-
};
|
|
255
|
-
|
|
256
|
-
if (funcMap.groupExtend) {
|
|
257
|
-
_unprocess('groupExtend');
|
|
258
|
-
}
|
|
259
|
-
},
|
|
260
|
-
},
|
|
261
|
-
);
|
|
262
|
-
|
|
263
|
-
const lambda = new V1_Lambda();
|
|
264
|
-
lambda.body.push(query);
|
|
265
|
-
const result = await engine.executeQuery(lambda);
|
|
266
|
-
|
|
267
|
-
return result.result.builder.columns.map((column) => ({
|
|
268
|
-
name: column.name,
|
|
269
|
-
type: column.type as string,
|
|
270
|
-
}));
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
export class DataCubeGridClientServerSideDataSource
|
|
274
|
-
implements IServerSideDatasource
|
|
275
|
-
{
|
|
276
|
-
readonly grid: DataCubeGridState;
|
|
277
|
-
rowCount: number | undefined = undefined;
|
|
278
|
-
|
|
279
|
-
constructor(grid: DataCubeGridState) {
|
|
280
|
-
makeObservable(this, {
|
|
281
|
-
rowCount: observable,
|
|
282
|
-
});
|
|
283
|
-
|
|
284
|
-
this.grid = grid;
|
|
285
|
-
}
|
|
286
|
-
|
|
287
|
-
async fetchRows(params: IServerSideGetRowsParams<unknown, unknown>) {
|
|
288
|
-
const task = this.grid.dataCube.newTask('Fetching data');
|
|
289
|
-
|
|
290
|
-
// ------------------------------ GRID OPTIONS ------------------------------
|
|
291
|
-
// Here, we make adjustments to the grid display in response to the new
|
|
292
|
-
// request, in case the grid action has not impacted the layout in an
|
|
293
|
-
// adequate way.
|
|
294
|
-
|
|
295
|
-
// Toggle the visibility of the tree column based on the presence of row-group columns
|
|
296
|
-
if (params.request.rowGroupCols.length) {
|
|
297
|
-
params.api.setColumnsVisible(
|
|
298
|
-
[INTERNAL__GRID_CLIENT_TREE_COLUMN_ID],
|
|
299
|
-
true,
|
|
300
|
-
);
|
|
301
|
-
} else {
|
|
302
|
-
params.api.setColumnsVisible(
|
|
303
|
-
[INTERNAL__GRID_CLIENT_TREE_COLUMN_ID],
|
|
304
|
-
false,
|
|
305
|
-
);
|
|
306
|
-
}
|
|
307
|
-
|
|
308
|
-
// ------------------------------ SNAPSHOT ------------------------------
|
|
309
|
-
|
|
310
|
-
const currentSnapshot = guaranteeNonNullable(this.grid.getLatestSnapshot());
|
|
311
|
-
const newSnapshot = buildQuerySnapshot(params.request, currentSnapshot);
|
|
312
|
-
// NOTE: if h-pivot is enabled
|
|
313
|
-
// if h-pivot is enabled, update the cast columns
|
|
314
|
-
// and panels which might be affected by this (e.g. sorts)
|
|
315
|
-
// TOOD?: this is an expensive operation in certain case, so we might want to
|
|
316
|
-
// optimize when this gets called
|
|
317
|
-
if (newSnapshot.data.pivot) {
|
|
318
|
-
try {
|
|
319
|
-
const castColumns = await getCastColumns(
|
|
320
|
-
newSnapshot,
|
|
321
|
-
this.grid.dataCube.engine,
|
|
322
|
-
);
|
|
323
|
-
newSnapshot.data.pivot.castColumns = castColumns;
|
|
324
|
-
newSnapshot.data.sortColumns = newSnapshot.data.sortColumns.filter(
|
|
325
|
-
(column) =>
|
|
326
|
-
[...castColumns, ...newSnapshot.data.groupExtendedColumns].find(
|
|
327
|
-
(col) => column.name === col.name,
|
|
328
|
-
),
|
|
329
|
-
);
|
|
330
|
-
} catch (error) {
|
|
331
|
-
assertErrorThrown(error);
|
|
332
|
-
this.grid.dataCube.repl.alertError(error, {
|
|
333
|
-
message: `Query Validation Failure: Can't retrieve pivot results column metadata. ${error.message}`,
|
|
334
|
-
});
|
|
335
|
-
// fail early since we can't proceed without the cast columns validated
|
|
336
|
-
params.fail();
|
|
337
|
-
this.grid.dataCube.endTask(task);
|
|
338
|
-
return;
|
|
339
|
-
}
|
|
340
|
-
}
|
|
341
|
-
|
|
342
|
-
newSnapshot.finalize();
|
|
343
|
-
if (newSnapshot.hashCode !== currentSnapshot.hashCode) {
|
|
344
|
-
// update grid column definitions since new columns could have been added
|
|
345
|
-
// due to changes in pivot
|
|
346
|
-
this.grid.client.updateGridOptions({
|
|
347
|
-
columnDefs: generateColumnDefs(
|
|
348
|
-
newSnapshot,
|
|
349
|
-
this.grid.queryConfiguration,
|
|
350
|
-
this.grid.dataCube,
|
|
351
|
-
),
|
|
352
|
-
});
|
|
353
|
-
this.grid.publishSnapshot(newSnapshot);
|
|
354
|
-
}
|
|
355
|
-
|
|
356
|
-
// ------------------------------ DATA ------------------------------
|
|
357
|
-
|
|
358
|
-
try {
|
|
359
|
-
const executableQuery = buildExecutableQuery(
|
|
360
|
-
newSnapshot,
|
|
361
|
-
this.grid.dataCube.engine.filterOperations,
|
|
362
|
-
this.grid.dataCube.engine.aggregateOperations,
|
|
363
|
-
{
|
|
364
|
-
postProcessor:
|
|
365
|
-
generateRowGroupingDrilldownExecutableQueryPostProcessor(
|
|
366
|
-
params.request.groupKeys,
|
|
367
|
-
),
|
|
368
|
-
pagination:
|
|
369
|
-
this.grid.isPaginationEnabled &&
|
|
370
|
-
params.request.startRow !== undefined &&
|
|
371
|
-
params.request.endRow !== undefined
|
|
372
|
-
? {
|
|
373
|
-
start: params.request.startRow,
|
|
374
|
-
end: params.request.endRow,
|
|
375
|
-
}
|
|
376
|
-
: undefined,
|
|
377
|
-
},
|
|
378
|
-
);
|
|
379
|
-
const lambda = new V1_Lambda();
|
|
380
|
-
lambda.body.push(executableQuery);
|
|
381
|
-
const result = await this.grid.dataCube.engine.executeQuery(lambda);
|
|
382
|
-
const rowData = TDStoRowData(result.result.result);
|
|
383
|
-
if (this.grid.dataCube.engine.enableDebugMode) {
|
|
384
|
-
this.grid.dataCube.application.debugProcess(
|
|
385
|
-
`Execution`,
|
|
386
|
-
`\nQuery: ${result.executedQuery}`,
|
|
387
|
-
`\nConfig: pagination=${this.grid.isPaginationEnabled}`,
|
|
388
|
-
`\nStats: ${rowData.length} rows, ${result.result.result.columns.length} columns`,
|
|
389
|
-
`\nSQL: ${result.executedSQL}`,
|
|
390
|
-
);
|
|
391
|
-
}
|
|
392
|
-
|
|
393
|
-
if (this.grid.isPaginationEnabled) {
|
|
394
|
-
params.success({ rowData });
|
|
395
|
-
// only update row count when loading the top-level drilldown data
|
|
396
|
-
if (params.request.groupKeys.length === 0) {
|
|
397
|
-
runInAction(() => {
|
|
398
|
-
this.rowCount = (params.request.startRow ?? 0) + rowData.length;
|
|
399
|
-
});
|
|
400
|
-
}
|
|
401
|
-
|
|
402
|
-
// toggle no-rows overlay
|
|
403
|
-
if (
|
|
404
|
-
params.request.groupKeys.length === 0 &&
|
|
405
|
-
params.request.startRow === 0 &&
|
|
406
|
-
rowData.length === 0
|
|
407
|
-
) {
|
|
408
|
-
this.grid.client.showNoRowsOverlay();
|
|
409
|
-
} else {
|
|
410
|
-
this.grid.client.hideOverlay();
|
|
411
|
-
}
|
|
412
|
-
} else {
|
|
413
|
-
// NOTE: When pagination is disabled and the user currently scrolls to somewhere in the grid, as data is fetched
|
|
414
|
-
// and the operation does not force a scroll top (for example, grouping will always force scrolling to the
|
|
415
|
-
// top, while sorting will leave scroll position as is), the grid ends up showing the wrong data because
|
|
416
|
-
// the data being displayed does not take into account the scroll position, but by the start and end row
|
|
417
|
-
// which stay constant as pagination is disabled.
|
|
418
|
-
//
|
|
419
|
-
// In order to handle this, when pagination is disabled, we tune the start and end row by setting the cache block size
|
|
420
|
-
// to a high-enough value (100k-1m). However, ag-grid use cache block size to pre-allocate memory for the rows,
|
|
421
|
-
// which means we must cap/tune this value reasonably to prevent the app from crashing.
|
|
422
|
-
//
|
|
423
|
-
// When there are just too many rows (exceeding the maximum cache block size), we will fallback to a slightly less ideal
|
|
424
|
-
// behavior by forcing a scroll top for every data fetch and also reset the cache block size to the default value to save memory
|
|
425
|
-
if (rowData.length > INTERNAL__GRID_CLIENT_MAX_CACHE_BLOCK_SIZE) {
|
|
426
|
-
if (
|
|
427
|
-
!this.grid.dataCube.repl.dataCubeEngine
|
|
428
|
-
.gridClientSuppressLargeDatasetWarning
|
|
429
|
-
) {
|
|
430
|
-
this.grid.dataCube.repl.alert({
|
|
431
|
-
message: `Large dataset (>${INTERNAL__GRID_CLIENT_MAX_CACHE_BLOCK_SIZE} rows) detected!`,
|
|
432
|
-
text: `Overall app performance can be impacted by large dataset due to longer query execution time and increased memory usage. At its limit, the application can crash!\nTo boost performance, consider enabling pagination while working with large dataset.`,
|
|
433
|
-
type: AlertType.WARNING,
|
|
434
|
-
actions: [
|
|
435
|
-
{
|
|
436
|
-
label: 'Enable Pagination',
|
|
437
|
-
handler: () => {
|
|
438
|
-
this.grid.setPaginationEnabled(true);
|
|
439
|
-
},
|
|
440
|
-
},
|
|
441
|
-
{
|
|
442
|
-
label: 'Dismiss Warning',
|
|
443
|
-
handler: () => {
|
|
444
|
-
// this.grid.setPaginationEnabled(true);
|
|
445
|
-
this.grid.dataCube.repl.dataCubeEngine.setGridClientSuppressLargeDatasetWarning(
|
|
446
|
-
true,
|
|
447
|
-
);
|
|
448
|
-
},
|
|
449
|
-
},
|
|
450
|
-
],
|
|
451
|
-
windowConfig: DEFAULT_LARGE_ALERT_WINDOW_CONFIG,
|
|
452
|
-
});
|
|
453
|
-
}
|
|
454
|
-
|
|
455
|
-
// NOTE: when drilldown occurs, we will scroll top until the drilldown row is reached
|
|
456
|
-
params.api.ensureIndexVisible(params.parentNode.rowIndex ?? 0, 'top');
|
|
457
|
-
}
|
|
458
|
-
|
|
459
|
-
params.success({
|
|
460
|
-
rowData,
|
|
461
|
-
// Setting row count to disable infinite-scrolling when pagination is disabled
|
|
462
|
-
// See https://www.ag-grid.com/react-data-grid/infinite-scrolling/#setting-last-row-index
|
|
463
|
-
rowCount: rowData.length,
|
|
464
|
-
});
|
|
465
|
-
|
|
466
|
-
// only update row count when loading the top-level drilldown data
|
|
467
|
-
if (params.request.groupKeys.length === 0) {
|
|
468
|
-
runInAction(() => {
|
|
469
|
-
this.rowCount = rowData.length;
|
|
470
|
-
});
|
|
471
|
-
}
|
|
472
|
-
|
|
473
|
-
// toggle no-rows overlay
|
|
474
|
-
if (params.request.groupKeys.length === 0 && rowData.length === 0) {
|
|
475
|
-
this.grid.client.showNoRowsOverlay();
|
|
476
|
-
} else {
|
|
477
|
-
this.grid.client.hideOverlay();
|
|
478
|
-
}
|
|
479
|
-
}
|
|
480
|
-
} catch (error) {
|
|
481
|
-
assertErrorThrown(error);
|
|
482
|
-
this.grid.dataCube.repl.alertError(error, {
|
|
483
|
-
message: `Data Fetch Failure: ${error.message}`,
|
|
484
|
-
});
|
|
485
|
-
params.fail();
|
|
486
|
-
} finally {
|
|
487
|
-
this.grid.dataCube.endTask(task);
|
|
488
|
-
}
|
|
489
|
-
}
|
|
490
|
-
|
|
491
|
-
getRows(params: IServerSideGetRowsParams<unknown, unknown>) {
|
|
492
|
-
this.fetchRows(params).catch((error: unknown) => {
|
|
493
|
-
assertErrorThrown(error);
|
|
494
|
-
this.grid.dataCube.application.logService.error(
|
|
495
|
-
LogEvent.create(APPLICATION_EVENT.ILLEGAL_APPLICATION_STATE_OCCURRED),
|
|
496
|
-
`Error ocurred while fetching data for grid should have been handled gracefully`,
|
|
497
|
-
error,
|
|
498
|
-
);
|
|
499
|
-
});
|
|
500
|
-
}
|
|
501
|
-
}
|
|
@@ -1,173 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) 2020-present, Goldman Sachs
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
import {
|
|
18
|
-
ContentType,
|
|
19
|
-
downloadFileUsingDataURI,
|
|
20
|
-
formatDate,
|
|
21
|
-
IllegalStateError,
|
|
22
|
-
isString,
|
|
23
|
-
UnsupportedOperationError,
|
|
24
|
-
} from '@finos/legend-shared';
|
|
25
|
-
import type { DataCubeState } from '../DataCubeState.js';
|
|
26
|
-
import type { DataCubeGridState } from './DataCubeGridState.js';
|
|
27
|
-
import { DataCubeGridClientExportFormat } from './DataCubeGridClientEngine.js';
|
|
28
|
-
|
|
29
|
-
function blobToBase64(blob: Blob): Promise<string> {
|
|
30
|
-
return new Promise((resolve, reject) => {
|
|
31
|
-
const reader = new FileReader();
|
|
32
|
-
reader.onloadend = () => {
|
|
33
|
-
const result = reader.result;
|
|
34
|
-
if (isString(result)) {
|
|
35
|
-
const base64Data = result.split(',')[1];
|
|
36
|
-
if (base64Data) {
|
|
37
|
-
resolve(base64Data);
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
reject(new Error(`Can't base64 encode blob data`));
|
|
42
|
-
};
|
|
43
|
-
reader.onerror = (error) => reject(error);
|
|
44
|
-
reader.readAsDataURL(blob);
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
const EMAIL_TEXT_CONTENT = '';
|
|
49
|
-
const EMAIL_HTML_CONTENT = `<html><body><p>${EMAIL_TEXT_CONTENT}</p><body></html>`;
|
|
50
|
-
// See https://stackoverflow.com/questions/3902455/mail-multipart-alternative-vs-multipart-mixed
|
|
51
|
-
const EMAIL_MIXED_BOUNDARY = 'mixed_boundary';
|
|
52
|
-
const EMAIL_ALTERNATIVE_BOUNDARY = 'alternative_boundary';
|
|
53
|
-
const EMAIL_CONTENT = `
|
|
54
|
-
From:
|
|
55
|
-
To:
|
|
56
|
-
Subject:
|
|
57
|
-
X-Unsent: 1
|
|
58
|
-
Content-Type: multipart/mixed; boundary="${EMAIL_MIXED_BOUNDARY}"
|
|
59
|
-
|
|
60
|
-
--${EMAIL_MIXED_BOUNDARY}
|
|
61
|
-
Content-Type: multipart/alternative; boundary="${EMAIL_ALTERNATIVE_BOUNDARY}"
|
|
62
|
-
|
|
63
|
-
--${EMAIL_ALTERNATIVE_BOUNDARY}
|
|
64
|
-
Content-Type: text/plain; charset="UTF-8"
|
|
65
|
-
Content-Transfer-Encoding: 7bit
|
|
66
|
-
|
|
67
|
-
${EMAIL_TEXT_CONTENT}
|
|
68
|
-
|
|
69
|
-
--${EMAIL_ALTERNATIVE_BOUNDARY}
|
|
70
|
-
Content-Type: text/html; charset="UTF-8"
|
|
71
|
-
Content-Transfer-Encoding: 7bit
|
|
72
|
-
|
|
73
|
-
${EMAIL_HTML_CONTENT}
|
|
74
|
-
|
|
75
|
-
--${EMAIL_ALTERNATIVE_BOUNDARY}--
|
|
76
|
-
|
|
77
|
-
`;
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* NOTE: this is a client-side export engine, this will and should eventually be replaced by a
|
|
81
|
-
* server-side export engine which is more standardized and scalable.
|
|
82
|
-
*/
|
|
83
|
-
export class DataCubeGridClientExportEngine {
|
|
84
|
-
readonly dataCube!: DataCubeState;
|
|
85
|
-
readonly grid!: DataCubeGridState;
|
|
86
|
-
|
|
87
|
-
constructor(grid: DataCubeGridState) {
|
|
88
|
-
this.dataCube = grid.dataCube;
|
|
89
|
-
this.grid = grid;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
private generateFileName() {
|
|
93
|
-
return `${this.dataCube.info.name} - ${formatDate(new Date(), 'EEE MMM dd yyyy HH_mm_ss')}`;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
exportFile(format: DataCubeGridClientExportFormat) {
|
|
97
|
-
const fileName = this.generateFileName();
|
|
98
|
-
switch (format) {
|
|
99
|
-
case DataCubeGridClientExportFormat.CSV: {
|
|
100
|
-
this.grid.client.exportDataAsCsv({
|
|
101
|
-
fileName: `${fileName}.csv`,
|
|
102
|
-
});
|
|
103
|
-
return;
|
|
104
|
-
}
|
|
105
|
-
case DataCubeGridClientExportFormat.EXCEL: {
|
|
106
|
-
// TODO?: configure settings for Excel export so we can export styling as well
|
|
107
|
-
// See https://www.ag-grid.com/angular-data-grid/excel-export-styles/
|
|
108
|
-
this.grid.client.exportDataAsExcel({
|
|
109
|
-
fileName: `${fileName}.xlsx`,
|
|
110
|
-
});
|
|
111
|
-
return;
|
|
112
|
-
}
|
|
113
|
-
default:
|
|
114
|
-
// do nothing
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
async exportEmail(format: DataCubeGridClientExportFormat) {
|
|
119
|
-
const fileName = this.generateFileName();
|
|
120
|
-
let fileNameWithExtension = fileName;
|
|
121
|
-
let attachment: string;
|
|
122
|
-
let contentType: string;
|
|
123
|
-
switch (format) {
|
|
124
|
-
case DataCubeGridClientExportFormat.CSV: {
|
|
125
|
-
fileNameWithExtension = `${fileName}.csv`;
|
|
126
|
-
contentType = ContentType.TEXT_CSV;
|
|
127
|
-
attachment = await blobToBase64(
|
|
128
|
-
new Blob([this.grid.client.getDataAsCsv() ?? ''], {
|
|
129
|
-
type: ContentType.TEXT_CSV,
|
|
130
|
-
}),
|
|
131
|
-
);
|
|
132
|
-
break;
|
|
133
|
-
}
|
|
134
|
-
case DataCubeGridClientExportFormat.EXCEL: {
|
|
135
|
-
fileNameWithExtension += `${fileName}.xlsx`;
|
|
136
|
-
contentType = ContentType.APPLICATION_XLSX;
|
|
137
|
-
// TODO?: configure settings for Excel export so we can export styling as well
|
|
138
|
-
// See https://www.ag-grid.com/angular-data-grid/excel-export-styles/
|
|
139
|
-
const xlsxContent = this.grid.client.getDataAsExcel();
|
|
140
|
-
let xlsxBlob: Blob;
|
|
141
|
-
if (xlsxContent instanceof Blob) {
|
|
142
|
-
xlsxBlob = xlsxContent;
|
|
143
|
-
} else if (typeof xlsxContent === 'string') {
|
|
144
|
-
xlsxBlob = new Blob([xlsxContent], {
|
|
145
|
-
type: ContentType.APPLICATION_XLSX,
|
|
146
|
-
});
|
|
147
|
-
} else {
|
|
148
|
-
throw new IllegalStateError(`Can't export Excel content`);
|
|
149
|
-
}
|
|
150
|
-
attachment = await blobToBase64(xlsxBlob);
|
|
151
|
-
break;
|
|
152
|
-
}
|
|
153
|
-
default:
|
|
154
|
-
throw new UnsupportedOperationError(
|
|
155
|
-
`Can't export email in format '${format}'`,
|
|
156
|
-
);
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
downloadFileUsingDataURI(
|
|
160
|
-
`${fileName}.eml`,
|
|
161
|
-
// NOTE: empty lines before email content can cause some mail client to not
|
|
162
|
-
// recognize the email content, e.g. Outlook
|
|
163
|
-
`${EMAIL_CONTENT.trimStart()}--${EMAIL_MIXED_BOUNDARY}\n` +
|
|
164
|
-
`Content-Type: ${contentType}; name="${fileNameWithExtension}"\n` +
|
|
165
|
-
`Content-Transfer-Encoding: base64\n` +
|
|
166
|
-
`Content-Disposition: attachment; filename="${fileNameWithExtension}"\n\n` +
|
|
167
|
-
`${attachment}\n\n` +
|
|
168
|
-
`--${EMAIL_MIXED_BOUNDARY}--`,
|
|
169
|
-
// This MIME type here might not matter
|
|
170
|
-
ContentType.MESSAGE_RFC822,
|
|
171
|
-
);
|
|
172
|
-
}
|
|
173
|
-
}
|