@trebco/treb 37.0.0 → 37.0.1
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/build/package.json +119 -0
- package/build/treb-base-types/src/api_types.d.ts +11 -0
- package/build/treb-base-types/src/api_types.js +22 -0
- package/build/treb-base-types/src/api_types.js.map +1 -0
- package/build/treb-base-types/src/area-utils.d.ts +9 -0
- package/build/treb-base-types/src/area-utils.js +50 -0
- package/build/treb-base-types/src/area-utils.js.map +1 -0
- package/build/treb-base-types/src/area.d.ts +182 -0
- package/build/treb-base-types/src/area.js +715 -0
- package/build/treb-base-types/src/area.js.map +1 -0
- package/build/treb-base-types/src/basic_types.d.ts +20 -0
- package/build/treb-base-types/src/basic_types.js +22 -0
- package/build/treb-base-types/src/basic_types.js.map +1 -0
- package/build/treb-base-types/src/cell.d.ts +167 -0
- package/build/treb-base-types/src/cell.js +432 -0
- package/build/treb-base-types/src/cell.js.map +1 -0
- package/build/treb-base-types/src/cells.d.ts +251 -0
- package/build/treb-base-types/src/cells.js +1136 -0
- package/build/treb-base-types/src/cells.js.map +1 -0
- package/build/treb-base-types/src/color.d.ts +35 -0
- package/build/treb-base-types/src/color.js +162 -0
- package/build/treb-base-types/src/color.js.map +1 -0
- package/build/treb-base-types/src/dom-utilities.d.ts +70 -0
- package/build/treb-base-types/src/dom-utilities.js +144 -0
- package/build/treb-base-types/src/dom-utilities.js.map +1 -0
- package/build/treb-base-types/src/evaluate-options.d.ts +35 -0
- package/build/treb-base-types/src/evaluate-options.js +22 -0
- package/build/treb-base-types/src/evaluate-options.js.map +1 -0
- package/build/treb-base-types/src/font-stack.d.ts +37 -0
- package/build/treb-base-types/src/font-stack.js +93 -0
- package/build/treb-base-types/src/font-stack.js.map +1 -0
- package/build/treb-base-types/src/gradient.d.ts +18 -0
- package/build/treb-base-types/src/gradient.js +86 -0
- package/build/treb-base-types/src/gradient.js.map +1 -0
- package/build/treb-base-types/src/import.d.ts +48 -0
- package/build/treb-base-types/src/import.js +22 -0
- package/build/treb-base-types/src/import.js.map +1 -0
- package/build/treb-base-types/src/index-standalone.d.ts +6 -0
- package/build/treb-base-types/src/index-standalone.js +27 -0
- package/build/treb-base-types/src/index-standalone.js.map +1 -0
- package/build/treb-base-types/src/index.d.ts +22 -0
- package/build/treb-base-types/src/index.js +45 -0
- package/build/treb-base-types/src/index.js.map +1 -0
- package/build/treb-base-types/src/layout.d.ts +22 -0
- package/build/treb-base-types/src/layout.js +22 -0
- package/build/treb-base-types/src/layout.js.map +1 -0
- package/build/treb-base-types/src/localization.d.ts +37 -0
- package/build/treb-base-types/src/localization.js +157 -0
- package/build/treb-base-types/src/localization.js.map +1 -0
- package/build/treb-base-types/src/rectangle.d.ts +51 -0
- package/build/treb-base-types/src/rectangle.js +123 -0
- package/build/treb-base-types/src/rectangle.js.map +1 -0
- package/build/treb-base-types/src/render_text.d.ts +34 -0
- package/build/treb-base-types/src/render_text.js +22 -0
- package/build/treb-base-types/src/render_text.js.map +1 -0
- package/build/treb-base-types/src/style.d.ts +214 -0
- package/build/treb-base-types/src/style.js +373 -0
- package/build/treb-base-types/src/style.js.map +1 -0
- package/build/treb-base-types/src/table.d.ts +58 -0
- package/build/treb-base-types/src/table.js +27 -0
- package/build/treb-base-types/src/table.js.map +1 -0
- package/build/treb-base-types/src/text_part.d.ts +26 -0
- package/build/treb-base-types/src/text_part.js +47 -0
- package/build/treb-base-types/src/text_part.js.map +1 -0
- package/build/treb-base-types/src/theme.d.ts +120 -0
- package/build/treb-base-types/src/theme.js +460 -0
- package/build/treb-base-types/src/theme.js.map +1 -0
- package/build/treb-base-types/src/union.d.ts +73 -0
- package/build/treb-base-types/src/union.js +61 -0
- package/build/treb-base-types/src/union.js.map +1 -0
- package/build/treb-base-types/src/value-type.d.ts +86 -0
- package/build/treb-base-types/src/value-type.js +168 -0
- package/build/treb-base-types/src/value-type.js.map +1 -0
- package/build/treb-base-types/src/worker-proxy.d.ts +95 -0
- package/build/treb-base-types/src/worker-proxy.js +221 -0
- package/build/treb-base-types/src/worker-proxy.js.map +1 -0
- package/build/treb-calculator/src/calculator.d.ts +249 -0
- package/build/treb-calculator/src/calculator.js +2755 -0
- package/build/treb-calculator/src/calculator.js.map +1 -0
- package/build/treb-calculator/src/complex-math.d.ts +75 -0
- package/build/treb-calculator/src/complex-math.js +559 -0
- package/build/treb-calculator/src/complex-math.js.map +1 -0
- package/build/treb-calculator/src/dag/array-vertex.d.ts +71 -0
- package/build/treb-calculator/src/dag/array-vertex.js +156 -0
- package/build/treb-calculator/src/dag/array-vertex.js.map +1 -0
- package/build/treb-calculator/src/dag/calculation_leaf_vertex.d.ts +48 -0
- package/build/treb-calculator/src/dag/calculation_leaf_vertex.js +84 -0
- package/build/treb-calculator/src/dag/calculation_leaf_vertex.js.map +1 -0
- package/build/treb-calculator/src/dag/graph.d.ts +134 -0
- package/build/treb-calculator/src/dag/graph.js +842 -0
- package/build/treb-calculator/src/dag/graph.js.map +1 -0
- package/build/treb-calculator/src/dag/spreadsheet_vertex.d.ts +58 -0
- package/build/treb-calculator/src/dag/spreadsheet_vertex.js +232 -0
- package/build/treb-calculator/src/dag/spreadsheet_vertex.js.map +1 -0
- package/build/treb-calculator/src/dag/spreadsheet_vertex_base.d.ts +20 -0
- package/build/treb-calculator/src/dag/spreadsheet_vertex_base.js +25 -0
- package/build/treb-calculator/src/dag/spreadsheet_vertex_base.js.map +1 -0
- package/build/treb-calculator/src/dag/state_leaf_vertex.d.ts +43 -0
- package/build/treb-calculator/src/dag/state_leaf_vertex.js +81 -0
- package/build/treb-calculator/src/dag/state_leaf_vertex.js.map +1 -0
- package/build/treb-calculator/src/dag/vertex.d.ts +71 -0
- package/build/treb-calculator/src/dag/vertex.js +274 -0
- package/build/treb-calculator/src/dag/vertex.js.map +1 -0
- package/build/treb-calculator/src/descriptors.d.ts +189 -0
- package/build/treb-calculator/src/descriptors.js +22 -0
- package/build/treb-calculator/src/descriptors.js.map +1 -0
- package/build/treb-calculator/src/expression-calculator.d.ts +127 -0
- package/build/treb-calculator/src/expression-calculator.js +1033 -0
- package/build/treb-calculator/src/expression-calculator.js.map +1 -0
- package/build/treb-calculator/src/function-error.d.ts +35 -0
- package/build/treb-calculator/src/function-error.js +85 -0
- package/build/treb-calculator/src/function-error.js.map +1 -0
- package/build/treb-calculator/src/function-library.d.ts +22 -0
- package/build/treb-calculator/src/function-library.js +96 -0
- package/build/treb-calculator/src/function-library.js.map +1 -0
- package/build/treb-calculator/src/functions/base-functions.d.ts +7 -0
- package/build/treb-calculator/src/functions/base-functions.js +2611 -0
- package/build/treb-calculator/src/functions/base-functions.js.map +1 -0
- package/build/treb-calculator/src/functions/beta.d.ts +17 -0
- package/build/treb-calculator/src/functions/beta.js +201 -0
- package/build/treb-calculator/src/functions/beta.js.map +1 -0
- package/build/treb-calculator/src/functions/checkbox.d.ts +3 -0
- package/build/treb-calculator/src/functions/checkbox.js +128 -0
- package/build/treb-calculator/src/functions/checkbox.js.map +1 -0
- package/build/treb-calculator/src/functions/complex-functions.d.ts +2 -0
- package/build/treb-calculator/src/functions/complex-functions.js +217 -0
- package/build/treb-calculator/src/functions/complex-functions.js.map +1 -0
- package/build/treb-calculator/src/functions/date-utils.d.ts +3 -0
- package/build/treb-calculator/src/functions/date-utils.js +59 -0
- package/build/treb-calculator/src/functions/date-utils.js.map +1 -0
- package/build/treb-calculator/src/functions/finance-functions.d.ts +2 -0
- package/build/treb-calculator/src/functions/finance-functions.js +547 -0
- package/build/treb-calculator/src/functions/finance-functions.js.map +1 -0
- package/build/treb-calculator/src/functions/fp.d.ts +2 -0
- package/build/treb-calculator/src/functions/fp.js +463 -0
- package/build/treb-calculator/src/functions/fp.js.map +1 -0
- package/build/treb-calculator/src/functions/function-utilities.d.ts +2 -0
- package/build/treb-calculator/src/functions/function-utilities.js +36 -0
- package/build/treb-calculator/src/functions/function-utilities.js.map +1 -0
- package/build/treb-calculator/src/functions/gamma.d.ts +20 -0
- package/build/treb-calculator/src/functions/gamma.js +142 -0
- package/build/treb-calculator/src/functions/gamma.js.map +1 -0
- package/build/treb-calculator/src/functions/information-functions.d.ts +2 -0
- package/build/treb-calculator/src/functions/information-functions.js +71 -0
- package/build/treb-calculator/src/functions/information-functions.js.map +1 -0
- package/build/treb-calculator/src/functions/lambda-functions.d.ts +2 -0
- package/build/treb-calculator/src/functions/lambda-functions.js +85 -0
- package/build/treb-calculator/src/functions/lambda-functions.js.map +1 -0
- package/build/treb-calculator/src/functions/matrix-functions.d.ts +2 -0
- package/build/treb-calculator/src/functions/matrix-functions.js +144 -0
- package/build/treb-calculator/src/functions/matrix-functions.js.map +1 -0
- package/build/treb-calculator/src/functions/normal.d.ts +2 -0
- package/build/treb-calculator/src/functions/normal.js +32 -0
- package/build/treb-calculator/src/functions/normal.js.map +1 -0
- package/build/treb-calculator/src/functions/regex-functions.d.ts +2 -0
- package/build/treb-calculator/src/functions/regex-functions.js +188 -0
- package/build/treb-calculator/src/functions/regex-functions.js.map +1 -0
- package/build/treb-calculator/src/functions/sparkline.d.ts +37 -0
- package/build/treb-calculator/src/functions/sparkline.js +264 -0
- package/build/treb-calculator/src/functions/sparkline.js.map +1 -0
- package/build/treb-calculator/src/functions/statistics-functions.d.ts +6 -0
- package/build/treb-calculator/src/functions/statistics-functions.js +989 -0
- package/build/treb-calculator/src/functions/statistics-functions.js.map +1 -0
- package/build/treb-calculator/src/functions/students-t.d.ts +3 -0
- package/build/treb-calculator/src/functions/students-t.js +64 -0
- package/build/treb-calculator/src/functions/students-t.js.map +1 -0
- package/build/treb-calculator/src/functions/text-functions.d.ts +3 -0
- package/build/treb-calculator/src/functions/text-functions.js +320 -0
- package/build/treb-calculator/src/functions/text-functions.js.map +1 -0
- package/build/treb-calculator/src/index.d.ts +2 -0
- package/build/treb-calculator/src/index.js +22 -0
- package/build/treb-calculator/src/index.js.map +1 -0
- package/build/treb-calculator/src/notifier-types.d.ts +26 -0
- package/build/treb-calculator/src/notifier-types.js +22 -0
- package/build/treb-calculator/src/notifier-types.js.map +1 -0
- package/build/treb-calculator/src/primitives.d.ts +15 -0
- package/build/treb-calculator/src/primitives.js +398 -0
- package/build/treb-calculator/src/primitives.js.map +1 -0
- package/build/treb-calculator/src/utilities.d.ts +68 -0
- package/build/treb-calculator/src/utilities.js +324 -0
- package/build/treb-calculator/src/utilities.js.map +1 -0
- package/build/treb-charts/src/chart-functions.d.ts +8 -0
- package/build/treb-charts/src/chart-functions.js +209 -0
- package/build/treb-charts/src/chart-functions.js.map +1 -0
- package/build/treb-charts/src/chart-types.d.ts +233 -0
- package/build/treb-charts/src/chart-types.js +57 -0
- package/build/treb-charts/src/chart-types.js.map +1 -0
- package/build/treb-charts/src/chart-utils.d.ts +106 -0
- package/build/treb-charts/src/chart-utils.js +1060 -0
- package/build/treb-charts/src/chart-utils.js.map +1 -0
- package/build/treb-charts/src/chart.d.ts +23 -0
- package/build/treb-charts/src/chart.js +94 -0
- package/build/treb-charts/src/chart.js.map +1 -0
- package/build/treb-charts/src/default-chart-renderer.d.ts +16 -0
- package/build/treb-charts/src/default-chart-renderer.js +533 -0
- package/build/treb-charts/src/default-chart-renderer.js.map +1 -0
- package/build/treb-charts/src/index.d.ts +5 -0
- package/build/treb-charts/src/index.js +24 -0
- package/build/treb-charts/src/index.js.map +1 -0
- package/build/treb-charts/src/main.d.ts +1 -0
- package/build/treb-charts/src/main.js +34 -0
- package/build/treb-charts/src/main.js.map +1 -0
- package/build/treb-charts/src/quicksort.d.ts +1 -0
- package/build/treb-charts/src/quicksort.js +49 -0
- package/build/treb-charts/src/quicksort.js.map +1 -0
- package/build/treb-charts/src/rectangle.d.ts +18 -0
- package/build/treb-charts/src/rectangle.js +41 -0
- package/build/treb-charts/src/rectangle.js.map +1 -0
- package/build/treb-charts/src/renderer-type.d.ts +24 -0
- package/build/treb-charts/src/renderer-type.js +22 -0
- package/build/treb-charts/src/renderer-type.js.map +1 -0
- package/build/treb-charts/src/renderer.d.ts +127 -0
- package/build/treb-charts/src/renderer.js +1518 -0
- package/build/treb-charts/src/renderer.js.map +1 -0
- package/build/treb-charts/src/util.d.ts +18 -0
- package/build/treb-charts/src/util.js +71 -0
- package/build/treb-charts/src/util.js.map +1 -0
- package/build/treb-data-model/src/annotation.d.ts +167 -0
- package/build/treb-data-model/src/annotation.js +120 -0
- package/build/treb-data-model/src/annotation.js.map +1 -0
- package/build/treb-data-model/src/conditional_format.d.ts +155 -0
- package/build/treb-data-model/src/conditional_format.js +62 -0
- package/build/treb-data-model/src/conditional_format.js.map +1 -0
- package/build/treb-data-model/src/data-validation.d.ts +28 -0
- package/build/treb-data-model/src/data-validation.js +22 -0
- package/build/treb-data-model/src/data-validation.js.map +1 -0
- package/build/treb-data-model/src/data_model.d.ts +173 -0
- package/build/treb-data-model/src/data_model.js +637 -0
- package/build/treb-data-model/src/data_model.js.map +1 -0
- package/build/treb-data-model/src/index.d.ts +13 -0
- package/build/treb-data-model/src/index.js +28 -0
- package/build/treb-data-model/src/index.js.map +1 -0
- package/build/treb-data-model/src/language-model.d.ts +22 -0
- package/build/treb-data-model/src/language-model.js +22 -0
- package/build/treb-data-model/src/language-model.js.map +1 -0
- package/build/treb-data-model/src/named.d.ts +124 -0
- package/build/treb-data-model/src/named.js +372 -0
- package/build/treb-data-model/src/named.js.map +1 -0
- package/build/treb-data-model/src/serialize_options.d.ts +49 -0
- package/build/treb-data-model/src/serialize_options.js +22 -0
- package/build/treb-data-model/src/serialize_options.js.map +1 -0
- package/build/treb-data-model/src/sheet.d.ts +499 -0
- package/build/treb-data-model/src/sheet.js +2904 -0
- package/build/treb-data-model/src/sheet.js.map +1 -0
- package/build/treb-data-model/src/sheet_collection.d.ts +58 -0
- package/build/treb-data-model/src/sheet_collection.js +112 -0
- package/build/treb-data-model/src/sheet_collection.js.map +1 -0
- package/build/treb-data-model/src/sheet_selection.d.ts +42 -0
- package/build/treb-data-model/src/sheet_selection.js +39 -0
- package/build/treb-data-model/src/sheet_selection.js.map +1 -0
- package/build/treb-data-model/src/sheet_types.d.ts +104 -0
- package/build/treb-data-model/src/sheet_types.js +22 -0
- package/build/treb-data-model/src/sheet_types.js.map +1 -0
- package/build/treb-data-model/src/types.d.ts +59 -0
- package/build/treb-data-model/src/types.js +22 -0
- package/build/treb-data-model/src/types.js.map +1 -0
- package/build/treb-embed/src/custom-element/spreadsheet-constructor.d.ts +75 -0
- package/build/treb-embed/src/custom-element/spreadsheet-constructor.js +1144 -0
- package/build/treb-embed/src/custom-element/spreadsheet-constructor.js.map +1 -0
- package/build/treb-embed/src/custom-element/treb-global.d.ts +36 -0
- package/build/treb-embed/src/custom-element/treb-global.js +64 -0
- package/build/treb-embed/src/custom-element/treb-global.js.map +1 -0
- package/build/treb-embed/src/custom-element/treb-spreadsheet-element.d.ts +1 -0
- package/build/treb-embed/src/custom-element/treb-spreadsheet-element.js +61 -0
- package/build/treb-embed/src/custom-element/treb-spreadsheet-element.js.map +1 -0
- package/build/treb-embed/src/embedded-spreadsheet.d.ts +1358 -0
- package/build/treb-embed/src/embedded-spreadsheet.js +5205 -0
- package/build/treb-embed/src/embedded-spreadsheet.js.map +1 -0
- package/build/treb-embed/src/index.d.ts +12 -0
- package/build/treb-embed/src/index.js +34 -0
- package/build/treb-embed/src/index.js.map +1 -0
- package/build/treb-embed/src/options.d.ts +266 -0
- package/build/treb-embed/src/options.js +56 -0
- package/build/treb-embed/src/options.js.map +1 -0
- package/build/treb-embed/src/plugin.d.ts +9 -0
- package/build/treb-embed/src/plugin.js +22 -0
- package/build/treb-embed/src/plugin.js.map +1 -0
- package/build/treb-embed/src/progress-dialog.d.ts +49 -0
- package/build/treb-embed/src/progress-dialog.js +178 -0
- package/build/treb-embed/src/progress-dialog.js.map +1 -0
- package/build/treb-embed/src/selection-state.d.ts +15 -0
- package/build/treb-embed/src/selection-state.js +22 -0
- package/build/treb-embed/src/selection-state.js.map +1 -0
- package/build/treb-embed/src/spinner.d.ts +8 -0
- package/build/treb-embed/src/spinner.js +40 -0
- package/build/treb-embed/src/spinner.js.map +1 -0
- package/build/treb-embed/src/toolbar-message.d.ts +72 -0
- package/build/treb-embed/src/toolbar-message.js +22 -0
- package/build/treb-embed/src/toolbar-message.js.map +1 -0
- package/build/treb-embed/src/types.d.ts +185 -0
- package/build/treb-embed/src/types.js +45 -0
- package/build/treb-embed/src/types.js.map +1 -0
- package/build/treb-embed/tsconfig.tsbuildinfo +1 -0
- package/build/treb-export/src/address-type.d.ts +34 -0
- package/build/treb-export/src/address-type.js +53 -0
- package/build/treb-export/src/address-type.js.map +1 -0
- package/build/treb-export/src/base-template.d.ts +1 -0
- package/build/treb-export/src/base-template.js +22 -0
- package/build/treb-export/src/base-template.js.map +1 -0
- package/build/treb-export/src/column-width.d.ts +2 -0
- package/build/treb-export/src/column-width.js +80 -0
- package/build/treb-export/src/column-width.js.map +1 -0
- package/build/treb-export/src/drawing/bubble-chart-template.d.ts +514 -0
- package/build/treb-export/src/drawing/bubble-chart-template.js +544 -0
- package/build/treb-export/src/drawing/bubble-chart-template.js.map +1 -0
- package/build/treb-export/src/drawing/chart-template-components2.d.ts +365 -0
- package/build/treb-export/src/drawing/chart-template-components2.js +386 -0
- package/build/treb-export/src/drawing/chart-template-components2.js.map +1 -0
- package/build/treb-export/src/drawing/chart.d.ts +26 -0
- package/build/treb-export/src/drawing/chart.js +247 -0
- package/build/treb-export/src/drawing/chart.js.map +1 -0
- package/build/treb-export/src/drawing/column-chart-template2.d.ts +490 -0
- package/build/treb-export/src/drawing/column-chart-template2.js +518 -0
- package/build/treb-export/src/drawing/column-chart-template2.js.map +1 -0
- package/build/treb-export/src/drawing/donut-chart-template2.d.ts +272 -0
- package/build/treb-export/src/drawing/donut-chart-template2.js +293 -0
- package/build/treb-export/src/drawing/donut-chart-template2.js.map +1 -0
- package/build/treb-export/src/drawing/drawing.d.ts +49 -0
- package/build/treb-export/src/drawing/drawing.js +193 -0
- package/build/treb-export/src/drawing/drawing.js.map +1 -0
- package/build/treb-export/src/drawing/embedded-image.d.ts +12 -0
- package/build/treb-export/src/drawing/embedded-image.js +54 -0
- package/build/treb-export/src/drawing/embedded-image.js.map +1 -0
- package/build/treb-export/src/drawing/scatter-chart-template2.d.ts +520 -0
- package/build/treb-export/src/drawing/scatter-chart-template2.js +551 -0
- package/build/treb-export/src/drawing/scatter-chart-template2.js.map +1 -0
- package/build/treb-export/src/export.d.ts +72 -0
- package/build/treb-export/src/export.js +2039 -0
- package/build/treb-export/src/export.js.map +1 -0
- package/build/treb-export/src/import-export-messages.d.ts +31 -0
- package/build/treb-export/src/import-export-messages.js +22 -0
- package/build/treb-export/src/import-export-messages.js.map +1 -0
- package/build/treb-export/src/import.d.ts +33 -0
- package/build/treb-export/src/import.js +1258 -0
- package/build/treb-export/src/import.js.map +1 -0
- package/build/treb-export/src/index.worker.d.ts +1 -0
- package/build/treb-export/src/index.worker.js +93 -0
- package/build/treb-export/src/index.worker.js.map +1 -0
- package/build/treb-export/src/metadata.d.ts +51 -0
- package/build/treb-export/src/metadata.js +153 -0
- package/build/treb-export/src/metadata.js.map +1 -0
- package/build/treb-export/src/ooxml.d.ts +7 -0
- package/build/treb-export/src/ooxml.js +41 -0
- package/build/treb-export/src/ooxml.js.map +1 -0
- package/build/treb-export/src/relationship.d.ts +8 -0
- package/build/treb-export/src/relationship.js +27 -0
- package/build/treb-export/src/relationship.js.map +1 -0
- package/build/treb-export/src/shared-strings.d.ts +11 -0
- package/build/treb-export/src/shared-strings.js +105 -0
- package/build/treb-export/src/shared-strings.js.map +1 -0
- package/build/treb-export/src/template-2.d.ts +1 -0
- package/build/treb-export/src/template-2.js +22 -0
- package/build/treb-export/src/template-2.js.map +1 -0
- package/build/treb-export/src/unescape_xml.d.ts +1 -0
- package/build/treb-export/src/unescape_xml.js +61 -0
- package/build/treb-export/src/unescape_xml.js.map +1 -0
- package/build/treb-export/src/workbook-sheet.d.ts +75 -0
- package/build/treb-export/src/workbook-sheet.js +128 -0
- package/build/treb-export/src/workbook-sheet.js.map +1 -0
- package/build/treb-export/src/workbook-style.d.ts +110 -0
- package/build/treb-export/src/workbook-style.js +1134 -0
- package/build/treb-export/src/workbook-style.js.map +1 -0
- package/build/treb-export/src/workbook-theme.d.ts +13 -0
- package/build/treb-export/src/workbook-theme.js +85 -0
- package/build/treb-export/src/workbook-theme.js.map +1 -0
- package/build/treb-export/src/workbook.d.ts +123 -0
- package/build/treb-export/src/workbook.js +644 -0
- package/build/treb-export/src/workbook.js.map +1 -0
- package/build/treb-export/src/xml-test.d.ts +9 -0
- package/build/treb-export/src/xml-test.js +52 -0
- package/build/treb-export/src/xml-test.js.map +1 -0
- package/build/treb-export/src/xml-utils.d.ts +76 -0
- package/build/treb-export/src/xml-utils.js +223 -0
- package/build/treb-export/src/xml-utils.js.map +1 -0
- package/build/treb-export/src/zip-wrapper.d.ts +22 -0
- package/build/treb-export/src/zip-wrapper.js +93 -0
- package/build/treb-export/src/zip-wrapper.js.map +1 -0
- package/build/treb-format/src/format.d.ts +130 -0
- package/build/treb-format/src/format.js +805 -0
- package/build/treb-format/src/format.js.map +1 -0
- package/build/treb-format/src/format_cache.d.ts +55 -0
- package/build/treb-format/src/format_cache.js +166 -0
- package/build/treb-format/src/format_cache.js.map +1 -0
- package/build/treb-format/src/format_parser.d.ts +70 -0
- package/build/treb-format/src/format_parser.js +618 -0
- package/build/treb-format/src/format_parser.js.map +1 -0
- package/build/treb-format/src/index.d.ts +4 -0
- package/build/treb-format/src/index.js +25 -0
- package/build/treb-format/src/index.js.map +1 -0
- package/build/treb-format/src/number_format_section.d.ts +58 -0
- package/build/treb-format/src/number_format_section.js +78 -0
- package/build/treb-format/src/number_format_section.js.map +1 -0
- package/build/treb-format/src/value_parser.d.ts +48 -0
- package/build/treb-format/src/value_parser.js +244 -0
- package/build/treb-format/src/value_parser.js.map +1 -0
- package/build/treb-grid/src/editors/autocomplete.d.ts +39 -0
- package/build/treb-grid/src/editors/autocomplete.js +316 -0
- package/build/treb-grid/src/editors/autocomplete.js.map +1 -0
- package/build/treb-grid/src/editors/autocomplete_matcher.d.ts +74 -0
- package/build/treb-grid/src/editors/autocomplete_matcher.js +212 -0
- package/build/treb-grid/src/editors/autocomplete_matcher.js.map +1 -0
- package/build/treb-grid/src/editors/editor.d.ts +214 -0
- package/build/treb-grid/src/editors/editor.js +879 -0
- package/build/treb-grid/src/editors/editor.js.map +1 -0
- package/build/treb-grid/src/editors/external_editor.d.ts +11 -0
- package/build/treb-grid/src/editors/external_editor.js +118 -0
- package/build/treb-grid/src/editors/external_editor.js.map +1 -0
- package/build/treb-grid/src/editors/formula_bar.d.ts +85 -0
- package/build/treb-grid/src/editors/formula_bar.js +444 -0
- package/build/treb-grid/src/editors/formula_bar.js.map +1 -0
- package/build/treb-grid/src/editors/overlay_editor.d.ts +85 -0
- package/build/treb-grid/src/editors/overlay_editor.js +353 -0
- package/build/treb-grid/src/editors/overlay_editor.js.map +1 -0
- package/build/treb-grid/src/index.d.ts +12 -0
- package/build/treb-grid/src/index.js +28 -0
- package/build/treb-grid/src/index.js.map +1 -0
- package/build/treb-grid/src/layout/base_layout.d.ts +346 -0
- package/build/treb-grid/src/layout/base_layout.js +2050 -0
- package/build/treb-grid/src/layout/base_layout.js.map +1 -0
- package/build/treb-grid/src/layout/grid_layout.d.ts +19 -0
- package/build/treb-grid/src/layout/grid_layout.js +235 -0
- package/build/treb-grid/src/layout/grid_layout.js.map +1 -0
- package/build/treb-grid/src/layout/mock-layout.d.ts +10 -0
- package/build/treb-grid/src/layout/mock-layout.js +37 -0
- package/build/treb-grid/src/layout/mock-layout.js.map +1 -0
- package/build/treb-grid/src/render/selection-renderer.d.ts +97 -0
- package/build/treb-grid/src/render/selection-renderer.js +315 -0
- package/build/treb-grid/src/render/selection-renderer.js.map +1 -0
- package/build/treb-grid/src/render/svg_header_overlay.d.ts +20 -0
- package/build/treb-grid/src/render/svg_header_overlay.js +76 -0
- package/build/treb-grid/src/render/svg_header_overlay.js.map +1 -0
- package/build/treb-grid/src/render/svg_selection_block.d.ts +27 -0
- package/build/treb-grid/src/render/svg_selection_block.js +106 -0
- package/build/treb-grid/src/render/svg_selection_block.js.map +1 -0
- package/build/treb-grid/src/render/tile_renderer.d.ts +121 -0
- package/build/treb-grid/src/render/tile_renderer.js +1609 -0
- package/build/treb-grid/src/render/tile_renderer.js.map +1 -0
- package/build/treb-grid/src/types/border_constants.d.ts +9 -0
- package/build/treb-grid/src/types/border_constants.js +34 -0
- package/build/treb-grid/src/types/border_constants.js.map +1 -0
- package/build/treb-grid/src/types/clipboard_data.d.ts +11 -0
- package/build/treb-grid/src/types/clipboard_data.js +22 -0
- package/build/treb-grid/src/types/clipboard_data.js.map +1 -0
- package/build/treb-grid/src/types/clipboard_data2.d.ts +46 -0
- package/build/treb-grid/src/types/clipboard_data2.js +22 -0
- package/build/treb-grid/src/types/clipboard_data2.js.map +1 -0
- package/build/treb-grid/src/types/drag_mask.d.ts +10 -0
- package/build/treb-grid/src/types/drag_mask.js +78 -0
- package/build/treb-grid/src/types/drag_mask.js.map +1 -0
- package/build/treb-grid/src/types/external_editor_config.d.ts +33 -0
- package/build/treb-grid/src/types/external_editor_config.js +22 -0
- package/build/treb-grid/src/types/external_editor_config.js.map +1 -0
- package/build/treb-grid/src/types/grid.d.ts +806 -0
- package/build/treb-grid/src/types/grid.js +6410 -0
- package/build/treb-grid/src/types/grid.js.map +1 -0
- package/build/treb-grid/src/types/grid_base.d.ts +442 -0
- package/build/treb-grid/src/types/grid_base.js +3523 -0
- package/build/treb-grid/src/types/grid_base.js.map +1 -0
- package/build/treb-grid/src/types/grid_command.d.ts +408 -0
- package/build/treb-grid/src/types/grid_command.js +75 -0
- package/build/treb-grid/src/types/grid_command.js.map +1 -0
- package/build/treb-grid/src/types/grid_events.d.ts +93 -0
- package/build/treb-grid/src/types/grid_events.js +36 -0
- package/build/treb-grid/src/types/grid_events.js.map +1 -0
- package/build/treb-grid/src/types/grid_options.d.ts +50 -0
- package/build/treb-grid/src/types/grid_options.js +34 -0
- package/build/treb-grid/src/types/grid_options.js.map +1 -0
- package/build/treb-grid/src/types/scale-control.d.ts +21 -0
- package/build/treb-grid/src/types/scale-control.js +148 -0
- package/build/treb-grid/src/types/scale-control.js.map +1 -0
- package/build/treb-grid/src/types/set_range_options.d.ts +24 -0
- package/build/treb-grid/src/types/set_range_options.js +22 -0
- package/build/treb-grid/src/types/set_range_options.js.map +1 -0
- package/build/treb-grid/src/types/tab_bar.d.ts +84 -0
- package/build/treb-grid/src/types/tab_bar.js +426 -0
- package/build/treb-grid/src/types/tab_bar.js.map +1 -0
- package/build/treb-grid/src/types/tile.d.ts +29 -0
- package/build/treb-grid/src/types/tile.js +22 -0
- package/build/treb-grid/src/types/tile.js.map +1 -0
- package/build/treb-grid/src/types/update_flags.d.ts +48 -0
- package/build/treb-grid/src/types/update_flags.js +22 -0
- package/build/treb-grid/src/types/update_flags.js.map +1 -0
- package/build/treb-grid/src/util/fontmetrics.d.ts +21 -0
- package/build/treb-grid/src/util/fontmetrics.js +82 -0
- package/build/treb-grid/src/util/fontmetrics.js.map +1 -0
- package/build/treb-grid/src/util/ua.d.ts +33 -0
- package/build/treb-grid/src/util/ua.js +86 -0
- package/build/treb-grid/src/util/ua.js.map +1 -0
- package/build/treb-parser/src/csv-parser.d.ts +13 -0
- package/build/treb-parser/src/csv-parser.js +107 -0
- package/build/treb-parser/src/csv-parser.js.map +1 -0
- package/build/treb-parser/src/index.d.ts +4 -0
- package/build/treb-parser/src/index.js +25 -0
- package/build/treb-parser/src/index.js.map +1 -0
- package/build/treb-parser/src/md-parser.d.ts +97 -0
- package/build/treb-parser/src/md-parser.js +403 -0
- package/build/treb-parser/src/md-parser.js.map +1 -0
- package/build/treb-parser/src/parser-types.d.ts +345 -0
- package/build/treb-parser/src/parser-types.js +53 -0
- package/build/treb-parser/src/parser-types.js.map +1 -0
- package/build/treb-parser/src/parser.d.ts +422 -0
- package/build/treb-parser/src/parser.js +2418 -0
- package/build/treb-parser/src/parser.js.map +1 -0
- package/build/treb-utils/src/event_source.d.ts +34 -0
- package/build/treb-utils/src/event_source.js +110 -0
- package/build/treb-utils/src/event_source.js.map +1 -0
- package/build/treb-utils/src/ievent_source.d.ts +9 -0
- package/build/treb-utils/src/ievent_source.js +22 -0
- package/build/treb-utils/src/ievent_source.js.map +1 -0
- package/build/treb-utils/src/index.d.ts +6 -0
- package/build/treb-utils/src/index.js +30 -0
- package/build/treb-utils/src/index.js.map +1 -0
- package/build/treb-utils/src/measurement.d.ts +42 -0
- package/build/treb-utils/src/measurement.js +145 -0
- package/build/treb-utils/src/measurement.js.map +1 -0
- package/build/treb-utils/src/scale.d.ts +16 -0
- package/build/treb-utils/src/scale.js +106 -0
- package/build/treb-utils/src/scale.js.map +1 -0
- package/build/treb-utils/src/serialize_html.d.ts +5 -0
- package/build/treb-utils/src/serialize_html.js +128 -0
- package/build/treb-utils/src/serialize_html.js.map +1 -0
- package/build/treb-utils/src/validate_uri.d.ts +20 -0
- package/build/treb-utils/src/validate_uri.js +55 -0
- package/build/treb-utils/src/validate_uri.js.map +1 -0
- package/dist/{chunk-XD5PEZBZ.mjs → chunk-E35ONJUS.mjs} +1 -1
- package/dist/treb-export-worker.mjs +2 -2
- package/dist/treb-spreadsheet.mjs +4 -4
- package/package.json +1 -1
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* This file is part of TREB.
|
|
3
|
+
*
|
|
4
|
+
* TREB is free software: you can redistribute it and/or modify it under the
|
|
5
|
+
* terms of the GNU General Public License as published by the Free Software
|
|
6
|
+
* Foundation, either version 3 of the License, or (at your option) any
|
|
7
|
+
* later version.
|
|
8
|
+
*
|
|
9
|
+
* TREB is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
10
|
+
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
|
11
|
+
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
|
12
|
+
* details.
|
|
13
|
+
*
|
|
14
|
+
* You should have received a copy of the GNU General Public License along
|
|
15
|
+
* with TREB. If not, see <https://www.gnu.org/licenses/>.
|
|
16
|
+
*
|
|
17
|
+
* Copyright 2022-2026 trebco, llc.
|
|
18
|
+
* info@treb.app
|
|
19
|
+
*
|
|
20
|
+
*/
|
|
21
|
+
import { SpreadsheetVertexBase } from './spreadsheet_vertex_base';
|
|
22
|
+
import { Color } from './vertex';
|
|
23
|
+
/**
|
|
24
|
+
* this is a new cut at array vertices. unlike the old version, we are not
|
|
25
|
+
* trying to reduce the number of vertices (and in fact we won't). this is
|
|
26
|
+
* to handle the case of unbounded arrays (full rows or columns).
|
|
27
|
+
*
|
|
28
|
+
* standard behavior with an array is to create all vertices when the reference
|
|
29
|
+
* is created (this is wasteful, but works). this does _not_ work for unbounded
|
|
30
|
+
* arrays because we may add rows/columns later which will expand arrays.
|
|
31
|
+
*
|
|
32
|
+
* so this class is an intermediate vertex that sits between the dependent edge
|
|
33
|
+
* and all the members of the array. if a new vertex is created later, we check
|
|
34
|
+
* existing arrays to see if anyone will need to add it.
|
|
35
|
+
*
|
|
36
|
+
* the more arrays you have, the more expensive these checks are (we could
|
|
37
|
+
* probably optimize this a bit), but it only happens at create time so
|
|
38
|
+
* potentially it's not too bad -- only on initial create and when manually
|
|
39
|
+
* modifying the spreadsheet.
|
|
40
|
+
*
|
|
41
|
+
* [FIXME: that initial create step could definitely be optimized to limit checks]
|
|
42
|
+
*
|
|
43
|
+
*/
|
|
44
|
+
export class ArrayVertex extends SpreadsheetVertexBase {
|
|
45
|
+
static type = 'array-vertex';
|
|
46
|
+
/**
|
|
47
|
+
* this is the list of currently used array vertices. it will get cleaned
|
|
48
|
+
* up when a vertex is no longer used (via the instance RemoveDependent
|
|
49
|
+
* overload) and when the graph is reset (via the static Clear method).
|
|
50
|
+
*
|
|
51
|
+
* we could theoretically optimize this store, which might be useful if
|
|
52
|
+
* we start using a lot of these: split by sheet ID, sort in start/end order,
|
|
53
|
+
* and so on.
|
|
54
|
+
*/
|
|
55
|
+
static list = [];
|
|
56
|
+
type = ArrayVertex.type; // for type guard
|
|
57
|
+
/** the target area */
|
|
58
|
+
area;
|
|
59
|
+
/**
|
|
60
|
+
* factory/lookup method: creates a vertex if it does not exist, or
|
|
61
|
+
* returns existing vertex. returns the vertex and a flag indicating
|
|
62
|
+
* if this was created new (true) or not (false).
|
|
63
|
+
*/
|
|
64
|
+
static GetVertex(area) {
|
|
65
|
+
for (const entry of this.list) {
|
|
66
|
+
if ((entry.area.start.sheet_id === area.start.sheet_id) && entry.area.Equals(area)) {
|
|
67
|
+
return [entry, false];
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return [new ArrayVertex(area), true];
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* this seems sloppy, does this clean up properly?
|
|
74
|
+
*/
|
|
75
|
+
static Clear() {
|
|
76
|
+
this.list = [];
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* returns a list of arrays that contain this address
|
|
80
|
+
*/
|
|
81
|
+
static GetContainingArrays(address) {
|
|
82
|
+
const list = [];
|
|
83
|
+
for (const entry of this.list) {
|
|
84
|
+
if ((entry.area.start.sheet_id === address.sheet_id) && entry.area.Contains(address)) {
|
|
85
|
+
list.push(entry);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return list;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* if any arrays contain this address, add edges
|
|
92
|
+
*/
|
|
93
|
+
static CreateImplicitEdges(vertex, address) {
|
|
94
|
+
// console.info('av2 create implicit edges:', address.row, address.column);
|
|
95
|
+
for (const entry of this.list) {
|
|
96
|
+
if ((entry.area.start.sheet_id === address.sheet_id) && entry.area.Contains(address)) {
|
|
97
|
+
// console.info("add to", entry.area.spreadsheet_label);
|
|
98
|
+
entry.DependsOn(vertex);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* constructor adds the vertex to the internal list (static to this class).
|
|
104
|
+
*
|
|
105
|
+
* UPDATE: use the factory method, which can check if a reference to this
|
|
106
|
+
* area already exists.
|
|
107
|
+
*/
|
|
108
|
+
constructor(range) {
|
|
109
|
+
super();
|
|
110
|
+
this.area = range.Clone();
|
|
111
|
+
ArrayVertex.list.push(this);
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* override for RemoveDependent. if there are no more dependents, it will
|
|
115
|
+
* be removed from our internal list (and hopefully GCd, but check).
|
|
116
|
+
*/
|
|
117
|
+
RemoveDependent(edge) {
|
|
118
|
+
super.RemoveDependent(edge);
|
|
119
|
+
if (!this.edges_out.size) {
|
|
120
|
+
// console.info('removing dead array vertex');
|
|
121
|
+
this.Reset();
|
|
122
|
+
ArrayVertex.list = ArrayVertex.list.filter(test => test !== this);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
Calculate(graph) {
|
|
126
|
+
// this is copied from SpreadsheetVertex, just removing the
|
|
127
|
+
// actual calculation (because we have no output).
|
|
128
|
+
if (!this.dirty) {
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
if (this.color === Color.white && this.LoopCheck()) {
|
|
132
|
+
// console.info('LC', this);
|
|
133
|
+
this.dirty = false;
|
|
134
|
+
if (this.edges_in.size) {
|
|
135
|
+
// intuitively this seems like a good idea but I'm not sure
|
|
136
|
+
// that it is actually necessary (TODO: check)
|
|
137
|
+
for (const edge of this.edges_out) {
|
|
138
|
+
edge.Calculate(graph);
|
|
139
|
+
}
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
for (const edge of this.edges_in) {
|
|
144
|
+
if (edge.dirty) {
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
// console.info('setting dirty -> false');
|
|
149
|
+
this.dirty = false;
|
|
150
|
+
for (const edge of this.edges_out) {
|
|
151
|
+
edge.Calculate(graph);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
// (self as any).AV2 = ArrayVertex2;
|
|
156
|
+
//# sourceMappingURL=array-vertex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"array-vertex.js","sourceRoot":"","sources":["../../../../treb-calculator/src/dag/array-vertex.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { GraphCallbacks } from './spreadsheet_vertex_base';
|
|
2
|
+
import { SpreadsheetVertex } from './spreadsheet_vertex';
|
|
3
|
+
import { Color } from './vertex';
|
|
4
|
+
/**
|
|
5
|
+
* adding a new leaf vertex type that actually does a calculation;
|
|
6
|
+
* but it has no spreadsheet context (address) and by definition it
|
|
7
|
+
* has no dependendents.
|
|
8
|
+
*
|
|
9
|
+
* this is intended for managing conditional formats, if they have
|
|
10
|
+
* an expression. we only want to calculate these when necessary
|
|
11
|
+
* (i.e. dependencies have updated, or they are volatile).
|
|
12
|
+
*
|
|
13
|
+
*/
|
|
14
|
+
export declare class CalculationLeafVertex extends SpreadsheetVertex {
|
|
15
|
+
static type: string;
|
|
16
|
+
type: string;
|
|
17
|
+
address: {
|
|
18
|
+
row: number;
|
|
19
|
+
column: number;
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* this type is currently only used for conditional formatting.
|
|
23
|
+
* but that might change in the future. I want to identify what
|
|
24
|
+
* it's used for so we can selectively prune them when necessary.
|
|
25
|
+
*/
|
|
26
|
+
use?: string;
|
|
27
|
+
/**
|
|
28
|
+
* flag, to reduce unecessary application. work in progress. this
|
|
29
|
+
* indicates that we reached the calculation step. that means either
|
|
30
|
+
* (1) dependencies changed, or (2) we were marked dirty in some global
|
|
31
|
+
* operation, probably a full-recalc.
|
|
32
|
+
*
|
|
33
|
+
* (2) is a waste but we're still going to save some cycles here. if you
|
|
34
|
+
* want you could add a state check like the other leaf vertex.
|
|
35
|
+
*/
|
|
36
|
+
updated: boolean;
|
|
37
|
+
/**
|
|
38
|
+
* leaf vertex defaults to black (i.e. tested) because leaf nodes cannot have
|
|
39
|
+
* outbound edges. it is still possible to change this, because it's a property
|
|
40
|
+
* and we can't override the set accessor, but making it an accessor in the
|
|
41
|
+
* superclass just for this purpose is not worthwhile since regular vertices
|
|
42
|
+
* should vastly outnumber leaves.
|
|
43
|
+
*/
|
|
44
|
+
color: Color;
|
|
45
|
+
/** overrides calculate function */
|
|
46
|
+
Calculate(graph: GraphCallbacks): void;
|
|
47
|
+
AddDependent(): void;
|
|
48
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* This file is part of TREB.
|
|
3
|
+
*
|
|
4
|
+
* TREB is free software: you can redistribute it and/or modify it under the
|
|
5
|
+
* terms of the GNU General Public License as published by the Free Software
|
|
6
|
+
* Foundation, either version 3 of the License, or (at your option) any
|
|
7
|
+
* later version.
|
|
8
|
+
*
|
|
9
|
+
* TREB is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
10
|
+
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
|
11
|
+
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
|
12
|
+
* details.
|
|
13
|
+
*
|
|
14
|
+
* You should have received a copy of the GNU General Public License along
|
|
15
|
+
* with TREB. If not, see <https://www.gnu.org/licenses/>.
|
|
16
|
+
*
|
|
17
|
+
* Copyright 2022-2026 trebco, llc.
|
|
18
|
+
* info@treb.app
|
|
19
|
+
*
|
|
20
|
+
*/
|
|
21
|
+
import { SpreadsheetVertex } from './spreadsheet_vertex';
|
|
22
|
+
import { Color } from './vertex';
|
|
23
|
+
/**
|
|
24
|
+
* adding a new leaf vertex type that actually does a calculation;
|
|
25
|
+
* but it has no spreadsheet context (address) and by definition it
|
|
26
|
+
* has no dependendents.
|
|
27
|
+
*
|
|
28
|
+
* this is intended for managing conditional formats, if they have
|
|
29
|
+
* an expression. we only want to calculate these when necessary
|
|
30
|
+
* (i.e. dependencies have updated, or they are volatile).
|
|
31
|
+
*
|
|
32
|
+
*/
|
|
33
|
+
export class CalculationLeafVertex extends SpreadsheetVertex {
|
|
34
|
+
static type = 'calculation-leaf-vertex';
|
|
35
|
+
type = CalculationLeafVertex.type; // for type guard
|
|
36
|
+
address = { row: -1, column: -1 }; // fake address
|
|
37
|
+
/**
|
|
38
|
+
* this type is currently only used for conditional formatting.
|
|
39
|
+
* but that might change in the future. I want to identify what
|
|
40
|
+
* it's used for so we can selectively prune them when necessary.
|
|
41
|
+
*/
|
|
42
|
+
use;
|
|
43
|
+
/**
|
|
44
|
+
* flag, to reduce unecessary application. work in progress. this
|
|
45
|
+
* indicates that we reached the calculation step. that means either
|
|
46
|
+
* (1) dependencies changed, or (2) we were marked dirty in some global
|
|
47
|
+
* operation, probably a full-recalc.
|
|
48
|
+
*
|
|
49
|
+
* (2) is a waste but we're still going to save some cycles here. if you
|
|
50
|
+
* want you could add a state check like the other leaf vertex.
|
|
51
|
+
*/
|
|
52
|
+
updated = false;
|
|
53
|
+
/**
|
|
54
|
+
* leaf vertex defaults to black (i.e. tested) because leaf nodes cannot have
|
|
55
|
+
* outbound edges. it is still possible to change this, because it's a property
|
|
56
|
+
* and we can't override the set accessor, but making it an accessor in the
|
|
57
|
+
* superclass just for this purpose is not worthwhile since regular vertices
|
|
58
|
+
* should vastly outnumber leaves.
|
|
59
|
+
*/
|
|
60
|
+
color = Color.black;
|
|
61
|
+
/** overrides calculate function */
|
|
62
|
+
Calculate(graph) {
|
|
63
|
+
// if we are not dirty, nothing to do
|
|
64
|
+
if (!this.dirty)
|
|
65
|
+
return;
|
|
66
|
+
// check deps
|
|
67
|
+
for (const edge of this.edges_in) {
|
|
68
|
+
if (edge.dirty) {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
// ...
|
|
73
|
+
const result = graph.CalculationCallback.call(graph, this);
|
|
74
|
+
this.result = result.value;
|
|
75
|
+
this.dirty = false;
|
|
76
|
+
// set flag
|
|
77
|
+
this.updated = true;
|
|
78
|
+
// we are not allowed to have edges out, so nothing to do
|
|
79
|
+
}
|
|
80
|
+
AddDependent() {
|
|
81
|
+
throw (new Error('leaf vertex cannot have dependents'));
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=calculation_leaf_vertex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calculation_leaf_vertex.js","sourceRoot":"","sources":["../../../../treb-calculator/src/dag/calculation_leaf_vertex.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC;;;;;;;;;GASG;AACH,MAAM,OAAO,qBAAsB,SAAQ,iBAAiB;IAEnD,MAAM,CAAC,IAAI,GAAG,yBAAyB,CAAC;IAExC,IAAI,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC,iBAAiB;IAEpD,OAAO,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,eAAe;IAEzD;;;;OAIG;IACI,GAAG,CAAU;IAEpB;;;;;;;;OAQG;IACI,OAAO,GAAG,KAAK,CAAC;IAEvB;;;;;;OAMG;IACI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAE3B,mCAAmC;IAC5B,SAAS,CAAC,KAAqB;QAEpC,qCAAqC;QACrC,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QAExB,aAAa;QACb,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjC,IAAK,IAA0B,CAAC,KAAK,EAAE,CAAC;gBACtC,OAAO;YACT,CAAC;QACH,CAAC;QAED,MAAM;QAEN,MAAM,MAAM,GAAG,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAE3D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,WAAW;QAEX,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QAEpB,yDAAyD;IAE3D,CAAC;IAEM,YAAY;QACjB,MAAK,CAAC,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC,CAAC;IACzD,CAAC"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import type { Vertex } from './vertex';
|
|
2
|
+
import { SpreadsheetVertex } from './spreadsheet_vertex';
|
|
3
|
+
import type { SpreadsheetVertexBase, CalculationResult, GraphCallbacks } from './spreadsheet_vertex_base';
|
|
4
|
+
import type { StateLeafVertex } from './state_leaf_vertex';
|
|
5
|
+
import type { ICellAddress, IArea, UnionValue } from 'treb-base-types';
|
|
6
|
+
import { Area } from 'treb-base-types';
|
|
7
|
+
import type { DataModel } from 'treb-data-model';
|
|
8
|
+
import { CalculationLeafVertex } from './calculation_leaf_vertex';
|
|
9
|
+
export type LeafVertex = StateLeafVertex | CalculationLeafVertex;
|
|
10
|
+
export type { StateLeafVertex };
|
|
11
|
+
export declare enum GraphStatus {
|
|
12
|
+
OK = 0,
|
|
13
|
+
Loop = 1,
|
|
14
|
+
CalculationError = 2
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* graph is now abstract, as we are extending it with the calculator.
|
|
18
|
+
*/
|
|
19
|
+
export declare abstract class Graph implements GraphCallbacks {
|
|
20
|
+
/**
|
|
21
|
+
* list of vertices, indexed by address as [sheet id][column][row]
|
|
22
|
+
*/
|
|
23
|
+
vertices: Array<Array<Array<SpreadsheetVertex | undefined>>>;
|
|
24
|
+
volatile_list: SpreadsheetVertexBase[];
|
|
25
|
+
calculation_list: SpreadsheetVertexBase[];
|
|
26
|
+
spill_data: {
|
|
27
|
+
area: IArea;
|
|
28
|
+
vertex: StateLeafVertex;
|
|
29
|
+
}[];
|
|
30
|
+
protected abstract readonly model: DataModel;
|
|
31
|
+
/**
|
|
32
|
+
* where is the loop in the graph (or at least the first one we found)?
|
|
33
|
+
*/
|
|
34
|
+
loop_hint?: string;
|
|
35
|
+
leaf_vertices: Set<LeafVertex>;
|
|
36
|
+
/** lock down access */
|
|
37
|
+
private dirty_list;
|
|
38
|
+
/** flag set on add edge */
|
|
39
|
+
private loop_check_required;
|
|
40
|
+
IsSpreadsheetVertex(vertex: Vertex): vertex is SpreadsheetVertex;
|
|
41
|
+
/**
|
|
42
|
+
* flush the graph, calculation tree and cells reference
|
|
43
|
+
*/
|
|
44
|
+
FlushTree(): void;
|
|
45
|
+
ResolveArrayHead(address: ICellAddress): ICellAddress;
|
|
46
|
+
/**
|
|
47
|
+
* iterate vertices
|
|
48
|
+
* @param area
|
|
49
|
+
*/
|
|
50
|
+
IterateVertices(area: IArea, create?: boolean): Generator<SpreadsheetVertex>;
|
|
51
|
+
/** overload */
|
|
52
|
+
GetVertex(address: ICellAddress, create: true): SpreadsheetVertex;
|
|
53
|
+
/** overload */
|
|
54
|
+
GetVertex(address: ICellAddress, create?: boolean): SpreadsheetVertex | undefined;
|
|
55
|
+
/** deletes the vertex at this address. */
|
|
56
|
+
RemoveVertex(address: ICellAddress): void;
|
|
57
|
+
/** removes all edges, for rebuilding. leaves value/formula as-is. */
|
|
58
|
+
ResetVertex(address: ICellAddress): void;
|
|
59
|
+
RIBcount: number;
|
|
60
|
+
/**
|
|
61
|
+
* resets the vertex by removing inbound edges and clearing formula flag.
|
|
62
|
+
* we have an option to set dirty because they get called together
|
|
63
|
+
* frequently, saves a lookup.
|
|
64
|
+
*/
|
|
65
|
+
ResetInbound(address: ICellAddress, set_dirty?: boolean, create?: boolean, remove?: boolean): void;
|
|
66
|
+
/**
|
|
67
|
+
* reset all vertices. this method is used so we can run the loop check
|
|
68
|
+
* as part of the graph calculation, instead of requiring the separate call.
|
|
69
|
+
*/
|
|
70
|
+
ResetLoopState(): void;
|
|
71
|
+
/**
|
|
72
|
+
* global check returns true if there is any loop. this is more efficient
|
|
73
|
+
* than detecting loops on every call to AddEdge. uses the color algorithm
|
|
74
|
+
* from CLRS.
|
|
75
|
+
*
|
|
76
|
+
* UPDATE we switched to a stack-based check because we were hitting
|
|
77
|
+
* recursion limits, although that seemed to only happen in workers --
|
|
78
|
+
* perhaps they have different stack [in the malloc sense] sizes? in any
|
|
79
|
+
* event, I think the version below is now stable.
|
|
80
|
+
*
|
|
81
|
+
* @param force force a check, for dev/debug
|
|
82
|
+
*/
|
|
83
|
+
LoopCheck(force?: boolean): boolean;
|
|
84
|
+
/**
|
|
85
|
+
* render address as string; this is for reporting loops
|
|
86
|
+
*/
|
|
87
|
+
RenderAddress(address?: ICellAddress): string;
|
|
88
|
+
/**
|
|
89
|
+
* new array vertices
|
|
90
|
+
*/
|
|
91
|
+
protected CompositeAddArrayEdge(u: Area, vertex: Vertex): void;
|
|
92
|
+
AddLeafVertexArrayEdge(u: Area, vertex: LeafVertex): void;
|
|
93
|
+
/**
|
|
94
|
+
* new array vertices
|
|
95
|
+
*/
|
|
96
|
+
AddArrayEdge(u: Area, v: ICellAddress): void;
|
|
97
|
+
/** adds an edge from u -> v */
|
|
98
|
+
AddEdge(u: ICellAddress, v: ICellAddress): void;
|
|
99
|
+
/** removes edge from u -> v */
|
|
100
|
+
RemoveEdge(u: ICellAddress, v: ICellAddress): void;
|
|
101
|
+
/**
|
|
102
|
+
* not used? remove
|
|
103
|
+
* @deprecated
|
|
104
|
+
*/
|
|
105
|
+
SetAreaDirty(area: IArea): void;
|
|
106
|
+
SetVertexDirty(vertex: SpreadsheetVertexBase): void;
|
|
107
|
+
/** sets dirty */
|
|
108
|
+
SetDirty(address: ICellAddress): void;
|
|
109
|
+
/**
|
|
110
|
+
* adds a leaf vertex to the graph. this implies that someone else is
|
|
111
|
+
* managing and maintaining these vertices: we only need references.
|
|
112
|
+
*/
|
|
113
|
+
AddLeafVertex(vertex: LeafVertex): void;
|
|
114
|
+
/** removes vertex */
|
|
115
|
+
RemoveLeafVertex(vertex: LeafVertex): void;
|
|
116
|
+
/**
|
|
117
|
+
* adds an edge from u -> v where v is a leaf vertex. this doesn't use
|
|
118
|
+
* the normal semantics, and you must pass in the actual vertex instead
|
|
119
|
+
* of an address.
|
|
120
|
+
*
|
|
121
|
+
* there is no loop check (leaves are not allowed to have outbound
|
|
122
|
+
* edges).
|
|
123
|
+
*/
|
|
124
|
+
AddLeafVertexEdge(u: ICellAddress, v: LeafVertex): GraphStatus;
|
|
125
|
+
/** removes edge from u -> v */
|
|
126
|
+
RemoveLeafVertexEdge(u: ICellAddress, v: LeafVertex): void;
|
|
127
|
+
InitializeGraph(): void;
|
|
128
|
+
/** runs calculation */
|
|
129
|
+
Recalculate(): void;
|
|
130
|
+
abstract CalculationCallback(vertex: SpreadsheetVertexBase): CalculationResult;
|
|
131
|
+
abstract SpreadCallback(vertex: SpreadsheetVertexBase, value: UnionValue): void;
|
|
132
|
+
abstract SpillCallback(vertex: SpreadsheetVertexBase, value: UnionValue): void;
|
|
133
|
+
protected abstract CheckVolatile(vertex: SpreadsheetVertex): boolean;
|
|
134
|
+
}
|