@trebco/treb 32.13.2 → 36.1.2
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/api-generator/api-generator-types.ts +3 -0
- package/api-generator/api-generator.ts +15 -1
- package/bun.lock +145 -99
- package/dist/chunk-43DLP2OX.mjs +11 -0
- package/dist/chunk-4CKS56PE.mjs +11 -0
- package/dist/chunk-75PARUQE.mjs +11 -0
- package/dist/chunk-7QD63AZS.mjs +24601 -0
- package/dist/chunk-A55ARVRD.mjs +11 -0
- package/dist/chunk-DESAKYW4.mjs +11 -0
- package/dist/chunk-EQ2R5W6P.mjs +24565 -0
- package/dist/chunk-IYJU2J6D.mjs +24601 -0
- package/dist/chunk-KSJFPGXT.mjs +11 -0
- package/dist/chunk-ORQFKLXM.mjs +24601 -0
- package/dist/chunk-SFDNNDHY.mjs +11 -0
- package/dist/chunk-T47DX5MI.mjs +11 -0
- package/dist/chunk-T6ILBVEX.mjs +11 -0
- package/dist/chunk-TPRCDYYG.mjs +11 -0
- package/dist/chunk-YAHNOOHO.mjs +11 -0
- package/dist/treb-export-worker.mjs +9 -2
- package/dist/treb-spreadsheet.mjs +7 -19
- package/dist/treb.d.ts +20 -4
- package/esbuild-composite.mjs +18 -6
- package/esbuild-utils.mjs +62 -3
- package/i18n/languages/treb-i18n-da.mjs +1 -1
- package/i18n/languages/treb-i18n-de.mjs +1 -1
- package/i18n/languages/treb-i18n-es.mjs +1 -1
- package/i18n/languages/treb-i18n-fr.mjs +1 -1
- package/i18n/languages/treb-i18n-it.mjs +1 -1
- package/i18n/languages/treb-i18n-nl.mjs +1 -1
- package/i18n/languages/treb-i18n-no.mjs +1 -1
- package/i18n/languages/treb-i18n-pl.mjs +1 -1
- package/i18n/languages/treb-i18n-pt.mjs +1 -1
- package/i18n/languages/treb-i18n-sv.mjs +1 -1
- package/ooxml-types/README.md +141 -0
- package/ooxml-types/package.json +5 -0
- package/ooxml-types/src/types/drawingml/chart.ts +327 -0
- package/ooxml-types/src/types/drawingml/index.ts +63 -0
- package/ooxml-types/src/types/drawingml/spreadsheetDrawing.ts +105 -0
- package/ooxml-types/src/types/drawingml/theme.ts +104 -0
- package/ooxml-types/src/types/index.ts +3 -0
- package/ooxml-types/src/types/package/contentTypes.ts +49 -0
- package/ooxml-types/src/types/package/docProps.ts +46 -0
- package/ooxml-types/src/types/package/index.ts +17 -0
- package/ooxml-types/src/types/package/relationships.ts +37 -0
- package/ooxml-types/src/types/spreadsheetml/columns.ts +20 -0
- package/ooxml-types/src/types/spreadsheetml/comments.ts +30 -0
- package/ooxml-types/src/types/spreadsheetml/dataFeatures.ts +261 -0
- package/ooxml-types/src/types/spreadsheetml/enums.ts +175 -0
- package/ooxml-types/src/types/spreadsheetml/index.ts +186 -0
- package/ooxml-types/src/types/spreadsheetml/metadata.ts +90 -0
- package/ooxml-types/src/types/spreadsheetml/misc.ts +35 -0
- package/ooxml-types/src/types/spreadsheetml/pageLayout.ts +83 -0
- package/ooxml-types/src/types/spreadsheetml/sharedStrings.ts +33 -0
- package/ooxml-types/src/types/spreadsheetml/sheetData.ts +70 -0
- package/ooxml-types/src/types/spreadsheetml/sheetProperties.ts +86 -0
- package/ooxml-types/src/types/spreadsheetml/sheetViews.ts +51 -0
- package/ooxml-types/src/types/spreadsheetml/sparkline.ts +46 -0
- package/ooxml-types/src/types/spreadsheetml/styles.ts +274 -0
- package/ooxml-types/src/types/spreadsheetml/table.ts +106 -0
- package/ooxml-types/src/types/spreadsheetml/util.ts +15 -0
- package/ooxml-types/src/types/spreadsheetml/workbook.ts +165 -0
- package/ooxml-types/src/types/spreadsheetml/worksheet.ts +60 -0
- package/package.json +13 -11
- package/treb-base-types/src/api_types.ts +1 -1
- package/treb-base-types/src/area-utils.ts +1 -1
- package/treb-base-types/src/area.ts +1 -1
- package/treb-base-types/src/basic_types.ts +1 -1
- package/treb-base-types/src/cell.ts +1 -1
- package/treb-base-types/src/cells.ts +1 -1
- package/treb-base-types/src/color.ts +1 -1
- package/treb-base-types/src/dom-utilities.ts +1 -1
- package/treb-base-types/src/evaluate-options.ts +1 -1
- package/treb-base-types/src/font-stack.ts +1 -1
- package/treb-base-types/src/gradient.ts +1 -1
- package/treb-base-types/src/import.ts +1 -1
- package/treb-base-types/src/index-standalone.ts +1 -1
- package/treb-base-types/src/index.ts +2 -1
- package/treb-base-types/src/layout.ts +1 -1
- package/treb-base-types/src/localization.ts +1 -1
- package/treb-base-types/src/rectangle.ts +1 -1
- package/treb-base-types/src/render_text.ts +7 -1
- package/treb-base-types/src/style.ts +1 -1
- package/treb-base-types/src/table.ts +1 -1
- package/treb-base-types/src/text_part.ts +1 -1
- package/treb-base-types/src/theme.ts +1 -1
- package/treb-base-types/src/union.ts +4 -1
- package/treb-base-types/src/value-type.ts +1 -1
- package/treb-base-types/src/worker-proxy.ts +294 -0
- package/treb-base-types/style/resizable.css +1 -1
- package/treb-calculator/src/calculator.ts +133 -14
- package/treb-calculator/src/complex-math.ts +1 -1
- package/treb-calculator/src/dag/array-vertex.ts +1 -1
- package/treb-calculator/src/dag/calculation_leaf_vertex.ts +1 -1
- package/treb-calculator/src/dag/graph.ts +1 -1
- package/treb-calculator/src/dag/spreadsheet_vertex.ts +1 -1
- package/treb-calculator/src/dag/spreadsheet_vertex_base.ts +1 -1
- package/treb-calculator/src/dag/state_leaf_vertex.ts +1 -1
- package/treb-calculator/src/dag/vertex.ts +1 -1
- package/treb-calculator/src/descriptors.ts +9 -1
- package/treb-calculator/src/expression-calculator.ts +1 -1
- package/treb-calculator/src/function-error.ts +1 -1
- package/treb-calculator/src/function-library.ts +1 -1
- package/treb-calculator/src/functions/base-functions.ts +10 -4
- package/treb-calculator/src/functions/beta.ts +1 -1
- package/treb-calculator/src/functions/checkbox.ts +1 -1
- package/treb-calculator/src/functions/complex-functions.ts +1 -1
- package/treb-calculator/src/functions/date-utils.ts +1 -1
- package/treb-calculator/src/functions/finance-functions.ts +2 -4
- package/treb-calculator/src/functions/fp.ts +1 -1
- package/treb-calculator/src/functions/function-utilities.ts +1 -1
- package/treb-calculator/src/functions/gamma.ts +1 -1
- package/treb-calculator/src/functions/information-functions.ts +1 -1
- package/treb-calculator/src/functions/lambda-functions.ts +4 -1
- package/treb-calculator/src/functions/matrix-functions.ts +1 -1
- package/treb-calculator/src/functions/normal.ts +1 -1
- package/treb-calculator/src/functions/regex-functions.ts +13 -4
- package/treb-calculator/src/functions/sparkline.ts +1 -1
- package/treb-calculator/src/functions/statistics-functions.ts +1 -1
- package/treb-calculator/src/functions/students-t.ts +1 -1
- package/treb-calculator/src/functions/text-functions.ts +5 -1
- package/treb-calculator/src/index.ts +1 -1
- package/treb-calculator/src/notifier-types.ts +1 -1
- package/treb-calculator/src/primitives.ts +1 -1
- package/treb-calculator/src/utilities.ts +1 -1
- package/treb-charts/src/chart-functions.ts +1 -1
- package/treb-charts/src/chart-types.ts +1 -1
- package/treb-charts/src/chart-utils.ts +1 -1
- package/treb-charts/src/chart.ts +1 -1
- package/treb-charts/src/default-chart-renderer.ts +1 -1
- package/treb-charts/src/index.ts +1 -1
- package/treb-charts/src/main.ts +1 -1
- package/treb-charts/src/quicksort.ts +1 -1
- package/treb-charts/src/rectangle.ts +1 -1
- package/treb-charts/src/renderer-type.ts +1 -1
- package/treb-charts/src/renderer.ts +1 -1
- package/treb-charts/src/util.ts +1 -1
- package/treb-charts/style/charts.scss +1 -1
- package/treb-data-model/src/annotation.ts +1 -1
- package/treb-data-model/src/conditional_format.ts +1 -1
- package/treb-data-model/src/data-validation.ts +1 -1
- package/treb-data-model/src/data_model.ts +32 -5
- package/treb-data-model/src/index.ts +1 -1
- package/treb-data-model/src/language-model.ts +1 -1
- package/treb-data-model/src/named.ts +1 -1
- package/treb-data-model/src/serialize_options.ts +1 -1
- package/treb-data-model/src/sheet.ts +1 -1
- package/treb-data-model/src/sheet_collection.ts +1 -1
- package/treb-data-model/src/sheet_selection.ts +1 -1
- package/treb-data-model/src/sheet_types.ts +1 -1
- package/treb-data-model/src/types.ts +1 -1
- package/treb-embed/src/content-types.d.ts +1 -1
- package/treb-embed/src/custom-element/global.d.ts +1 -1
- package/treb-embed/src/custom-element/spreadsheet-constructor.ts +1 -1
- package/treb-embed/src/custom-element/treb-global.ts +1 -1
- package/treb-embed/src/custom-element/treb-spreadsheet-element.ts +1 -1
- package/treb-embed/src/embedded-spreadsheet.ts +342 -149
- package/treb-embed/src/index.ts +1 -1
- package/treb-embed/src/options.ts +4 -2
- package/treb-embed/src/plugin.ts +1 -1
- package/treb-embed/src/progress-dialog.ts +1 -1
- package/treb-embed/src/selection-state.ts +1 -1
- package/treb-embed/src/spinner.ts +1 -1
- package/treb-embed/src/toolbar-message.ts +6 -1
- package/treb-embed/src/types.ts +13 -1
- package/treb-embed/style/autocomplete.scss +1 -1
- package/treb-embed/style/dark-theme.scss +1 -1
- package/treb-embed/style/defaults.scss +1 -1
- package/treb-embed/style/dialog.scss +1 -1
- package/treb-embed/style/dropdown-select.scss +1 -1
- package/treb-embed/style/font-stacks.scss +1 -1
- package/treb-embed/style/formula-bar.scss +1 -1
- package/treb-embed/style/grid.scss +1 -1
- package/treb-embed/style/layout.scss +1 -1
- package/treb-embed/style/mouse-mask.scss +1 -1
- package/treb-embed/style/note.scss +1 -1
- package/treb-embed/style/overlay-editor.scss +1 -1
- package/treb-embed/style/spinner.scss +1 -1
- package/treb-embed/style/tab-bar.scss +1 -1
- package/treb-embed/style/table.scss +1 -1
- package/treb-embed/style/theme-defaults.scss +1 -1
- package/treb-embed/style/toolbar.scss +1 -1
- package/treb-embed/style/tooltip.scss +1 -1
- package/treb-embed/style/treb-icons.scss +1 -1
- package/treb-embed/style/treb-spreadsheet-element.scss +1 -1
- package/treb-embed/style/z-index.scss +1 -1
- package/treb-export/src/address-type.ts +1 -1
- package/treb-export/src/base-template.ts +1 -1
- package/treb-export/src/column-width.ts +1 -1
- package/treb-export/src/drawing/bubble-chart-template.ts +1 -1
- package/treb-export/src/drawing/chart-template-components2.ts +1 -1
- package/treb-export/src/drawing/chart.ts +1 -1
- package/treb-export/src/drawing/column-chart-template2.ts +1 -1
- package/treb-export/src/drawing/donut-chart-template2.ts +1 -1
- package/treb-export/src/drawing/drawing.ts +1 -1
- package/treb-export/src/drawing/embedded-image.ts +1 -1
- package/treb-export/src/drawing/scatter-chart-template2.ts +1 -1
- package/treb-export/src/export.ts +121 -8
- package/treb-export/src/import-export-messages.ts +61 -0
- package/treb-export/src/import.ts +318 -301
- package/treb-export/src/index.worker.ts +85 -53
- package/treb-export/src/metadata.ts +71 -3
- package/treb-export/src/ooxml.ts +47 -0
- package/treb-export/src/relationship.ts +1 -1
- package/treb-export/src/shared-strings.ts +19 -15
- package/treb-export/src/template-2.ts +1 -1
- package/treb-export/src/unescape_xml.ts +1 -1
- package/treb-export/src/workbook-sheet.ts +11 -6
- package/treb-export/src/workbook-style.ts +137 -25
- package/treb-export/src/workbook-theme.ts +20 -4
- package/treb-export/src/workbook.ts +85 -88
- package/treb-export/src/xml-test.ts +1 -1
- package/treb-export/src/xml-utils.ts +1 -1
- package/treb-export/src/zip-wrapper.ts +1 -1
- package/treb-export/tsconfig.json +2 -1
- package/treb-format/src/format.test.ts +1 -1
- package/treb-format/src/format.ts +12 -5
- package/treb-format/src/format_cache.ts +3 -3
- package/treb-format/src/format_parser.ts +1 -1
- package/treb-format/src/index.ts +1 -1
- package/treb-format/src/number_format_section.ts +1 -1
- package/treb-format/src/value_parser.ts +1 -1
- package/treb-grid/src/editors/autocomplete.ts +1 -1
- package/treb-grid/src/editors/autocomplete_matcher.ts +1 -1
- package/treb-grid/src/editors/editor.ts +15 -6
- package/treb-grid/src/editors/external_editor.ts +33 -8
- package/treb-grid/src/editors/formula_bar.ts +12 -1
- package/treb-grid/src/editors/overlay_editor.ts +4 -1
- package/treb-grid/src/index.ts +1 -1
- package/treb-grid/src/layout/base_layout.ts +1 -1
- package/treb-grid/src/layout/grid_layout.ts +1 -1
- package/treb-grid/src/layout/mock-layout.ts +1 -1
- package/treb-grid/src/render/selection-renderer.ts +1 -1
- package/treb-grid/src/render/svg_header_overlay.ts +1 -1
- package/treb-grid/src/render/svg_selection_block.ts +1 -1
- package/treb-grid/src/render/tile_renderer.ts +36 -7
- package/treb-grid/src/types/border_constants.ts +1 -1
- package/treb-grid/src/types/clipboard_data.ts +1 -1
- package/treb-grid/src/types/clipboard_data2.ts +1 -1
- package/treb-grid/src/types/drag_mask.ts +1 -1
- package/treb-grid/src/types/external_editor_config.ts +1 -1
- package/treb-grid/src/types/grid.ts +181 -40
- package/treb-grid/src/types/grid_base.ts +7 -4
- package/treb-grid/src/types/grid_command.ts +7 -1
- package/treb-grid/src/types/grid_events.ts +2 -1
- package/treb-grid/src/types/grid_options.ts +1 -1
- package/treb-grid/src/types/scale-control.ts +1 -1
- package/treb-grid/src/types/set_range_options.ts +1 -1
- package/treb-grid/src/types/tab_bar.ts +1 -1
- package/treb-grid/src/types/tile.ts +1 -1
- package/treb-grid/src/types/update_flags.ts +1 -1
- package/treb-grid/src/util/fontmetrics.ts +1 -1
- package/treb-grid/src/util/ua.ts +1 -1
- package/treb-parser/src/csv-parser.ts +1 -1
- package/treb-parser/src/index.ts +1 -1
- package/treb-parser/src/md-parser.ts +1 -1
- package/treb-parser/src/parser-types.ts +1 -1
- package/treb-parser/src/parser.ts +1 -1
- package/treb-utils/src/event_source.ts +1 -1
- package/treb-utils/src/ievent_source.ts +1 -1
- package/treb-utils/src/index.ts +1 -1
- package/treb-utils/src/measurement.ts +1 -1
- package/treb-utils/src/scale.ts +1 -1
- package/treb-utils/src/serialize_html.ts +1 -1
- package/treb-utils/src/validate_uri.ts +1 -1
- package/tsproject.json +2 -3
- package/treb-embed/src/export-worker.ts +0 -44
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* You should have received a copy of the GNU General Public License along
|
|
15
15
|
* with TREB. If not, see <https://www.gnu.org/licenses/>.
|
|
16
16
|
*
|
|
17
|
-
* Copyright 2022-
|
|
17
|
+
* Copyright 2022-2026 trebco, llc.
|
|
18
18
|
* info@treb.app
|
|
19
19
|
*
|
|
20
20
|
*/
|
|
@@ -374,7 +374,7 @@ export class Editor<E = FormulaEditorEvent> extends EventSource<E|FormulaEditorE
|
|
|
374
374
|
/**
|
|
375
375
|
*
|
|
376
376
|
*/
|
|
377
|
-
public InsertReference(reference: string) {
|
|
377
|
+
public InsertReference(reference: string, toggle_reference_type = false, typed_reference_list: string[] = []) {
|
|
378
378
|
|
|
379
379
|
if (!this.active_editor) {
|
|
380
380
|
return;
|
|
@@ -421,6 +421,8 @@ export class Editor<E = FormulaEditorEvent> extends EventSource<E|FormulaEditorE
|
|
|
421
421
|
|
|
422
422
|
const substrings = this.SubstringToCaret2(this.active_editor.node);
|
|
423
423
|
|
|
424
|
+
// console.info("Case 1", substrings);
|
|
425
|
+
|
|
424
426
|
/*
|
|
425
427
|
// console.info('case 1');
|
|
426
428
|
|
|
@@ -451,7 +453,14 @@ export class Editor<E = FormulaEditorEvent> extends EventSource<E|FormulaEditorE
|
|
|
451
453
|
const parent = range.startContainer.parentElement;
|
|
452
454
|
if (parent instanceof view.HTMLElement && parent.dataset.reference) {
|
|
453
455
|
|
|
454
|
-
|
|
456
|
+
if (toggle_reference_type && typed_reference_list.length) {
|
|
457
|
+
for (const [index, ref] of typed_reference_list.entries()) {
|
|
458
|
+
if (ref === parent.textContent) {
|
|
459
|
+
reference = typed_reference_list[index + 1] || typed_reference_list[0];
|
|
460
|
+
break;
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
}
|
|
455
464
|
|
|
456
465
|
// replace text
|
|
457
466
|
parent.textContent = reference;
|
|
@@ -581,7 +590,7 @@ export class Editor<E = FormulaEditorEvent> extends EventSource<E|FormulaEditorE
|
|
|
581
590
|
|
|
582
591
|
for (const support of this.nodes) {
|
|
583
592
|
for (const area of support.references || []) {
|
|
584
|
-
const label = this.model.AddressToLabel(area);
|
|
593
|
+
const label = this.model.AddressToLabel(area, true);
|
|
585
594
|
if (!map.has(label)) {
|
|
586
595
|
map.set(label, area);
|
|
587
596
|
indexes.set(label, indexes.size);
|
|
@@ -733,7 +742,7 @@ export class Editor<E = FormulaEditorEvent> extends EventSource<E|FormulaEditorE
|
|
|
733
742
|
|
|
734
743
|
for (const entry of reference_list) {
|
|
735
744
|
|
|
736
|
-
const label = this.model.AddressToLabel(entry); // , this.view.active_sheet);
|
|
745
|
+
const label = this.model.AddressToLabel(entry, true); // , this.view.active_sheet);
|
|
737
746
|
const area = IsCellAddress(entry) ?
|
|
738
747
|
new Area(entry) :
|
|
739
748
|
new Area(entry.start, entry.end);
|
|
@@ -767,7 +776,7 @@ export class Editor<E = FormulaEditorEvent> extends EventSource<E|FormulaEditorE
|
|
|
767
776
|
* @param options
|
|
768
777
|
*/
|
|
769
778
|
protected UpdateReferences(descriptor: NodeDescriptor, references: Area[] = []) {
|
|
770
|
-
descriptor.node.dataset.references = JSON.stringify(references.map(entry => this.model.AddressToLabel(entry)));
|
|
779
|
+
descriptor.node.dataset.references = JSON.stringify(references.map(entry => this.model.AddressToLabel(entry, true)));
|
|
771
780
|
descriptor.references = references;
|
|
772
781
|
}
|
|
773
782
|
|
|
@@ -14,32 +14,30 @@
|
|
|
14
14
|
* You should have received a copy of the GNU General Public License along
|
|
15
15
|
* with TREB. If not, see <https://www.gnu.org/licenses/>.
|
|
16
16
|
*
|
|
17
|
-
* Copyright 2022-
|
|
17
|
+
* Copyright 2022-2026 trebco, llc.
|
|
18
18
|
* info@treb.app
|
|
19
19
|
*
|
|
20
20
|
*/
|
|
21
21
|
|
|
22
|
-
|
|
23
22
|
import { Editor, type NodeDescriptor } from './editor';
|
|
24
23
|
|
|
24
|
+
export type KeyEventCallbackType = (event: KeyboardEvent) => void;
|
|
25
|
+
|
|
25
26
|
export class ExternalEditor extends Editor {
|
|
26
27
|
|
|
28
|
+
public key_event_callback?: KeyEventCallbackType;
|
|
29
|
+
|
|
27
30
|
public get active() {
|
|
28
31
|
return this.nodes.length > 0;
|
|
29
32
|
}
|
|
30
33
|
|
|
31
34
|
public Reset() {
|
|
32
35
|
this.AttachNodes();
|
|
36
|
+
this.key_event_callback = undefined;
|
|
33
37
|
}
|
|
34
38
|
|
|
35
39
|
/**
|
|
36
40
|
* attach to a set of nodes (one is fine).
|
|
37
|
-
*
|
|
38
|
-
* FIXME: since this is not used in subclasses for ICE and formula bar,
|
|
39
|
-
* perhaps we should move it into a new subclass specifically for
|
|
40
|
-
* external editor. we can add some flags as well. TODO/FIXME
|
|
41
|
-
*
|
|
42
|
-
* update modifying how this works. we will now watch focus ourselves.
|
|
43
41
|
*/
|
|
44
42
|
public AttachNodes(nodes: HTMLElement[] = [], assume_formula = true) {
|
|
45
43
|
|
|
@@ -111,6 +109,33 @@ export class ExternalEditor extends Editor {
|
|
|
111
109
|
this.active_editor = undefined;
|
|
112
110
|
});
|
|
113
111
|
|
|
112
|
+
this.RegisterListener(descriptor, 'keydown', (event: KeyboardEvent) => {
|
|
113
|
+
if (this.selecting) {
|
|
114
|
+
switch (event.key) {
|
|
115
|
+
case 'ArrowDown':
|
|
116
|
+
case 'ArrowUp':
|
|
117
|
+
case 'ArrowLeft':
|
|
118
|
+
case 'ArrowRight':
|
|
119
|
+
break;
|
|
120
|
+
|
|
121
|
+
case '/':
|
|
122
|
+
if (event.ctrlKey) {
|
|
123
|
+
break;
|
|
124
|
+
}
|
|
125
|
+
// otherwise fall through
|
|
126
|
+
|
|
127
|
+
default:
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
// we need to pass this event up to grid to handle. we might
|
|
133
|
+
// also want to filter it (let the handler dp that)
|
|
134
|
+
|
|
135
|
+
this.key_event_callback?.(event);
|
|
136
|
+
|
|
137
|
+
});
|
|
138
|
+
|
|
114
139
|
this.RegisterListener(descriptor, 'input', (event: Event) => {
|
|
115
140
|
|
|
116
141
|
// we're filtering on trusted here because we send an event.
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* You should have received a copy of the GNU General Public License along
|
|
15
15
|
* with TREB. If not, see <https://www.gnu.org/licenses/>.
|
|
16
16
|
*
|
|
17
|
-
* Copyright 2022-
|
|
17
|
+
* Copyright 2022-2026 trebco, llc.
|
|
18
18
|
* info@treb.app
|
|
19
19
|
*
|
|
20
20
|
*/
|
|
@@ -51,11 +51,16 @@ export interface TollEvent {
|
|
|
51
51
|
value?: string;
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
+
export interface ToggleReferenceEvent {
|
|
55
|
+
type: 'toggle-reference';
|
|
56
|
+
}
|
|
57
|
+
|
|
54
58
|
export type FormulaBar2Event
|
|
55
59
|
= FormulaButtonEvent
|
|
56
60
|
// | FormulaBarResizeEvent
|
|
57
61
|
| AddressLabelEvent
|
|
58
62
|
| TollEvent
|
|
63
|
+
| ToggleReferenceEvent
|
|
59
64
|
;
|
|
60
65
|
|
|
61
66
|
// ---
|
|
@@ -553,6 +558,12 @@ export class FormulaBar extends Editor<FormulaBar2Event|FormulaEditorEvent> {
|
|
|
553
558
|
}
|
|
554
559
|
|
|
555
560
|
switch (event.key){
|
|
561
|
+
case 'F4':
|
|
562
|
+
if (this.selecting) {
|
|
563
|
+
this.Publish({ type: 'toggle-reference' });
|
|
564
|
+
}
|
|
565
|
+
break;
|
|
566
|
+
|
|
556
567
|
case 'Enter':
|
|
557
568
|
case 'Tab':
|
|
558
569
|
{
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* You should have received a copy of the GNU General Public License along
|
|
15
15
|
* with TREB. If not, see <https://www.gnu.org/licenses/>.
|
|
16
16
|
*
|
|
17
|
-
* Copyright 2022-
|
|
17
|
+
* Copyright 2022-2026 trebco, llc.
|
|
18
18
|
* info@treb.app
|
|
19
19
|
*
|
|
20
20
|
*/
|
|
@@ -446,6 +446,9 @@ export class OverlayEditor extends Editor<ResetSelectionEvent> {
|
|
|
446
446
|
|
|
447
447
|
switch (event.key) {
|
|
448
448
|
|
|
449
|
+
case 'F4':
|
|
450
|
+
return undefined;
|
|
451
|
+
|
|
449
452
|
case 'Enter':
|
|
450
453
|
case 'Tab':
|
|
451
454
|
return 'commit';
|
package/treb-grid/src/index.ts
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* You should have received a copy of the GNU General Public License along
|
|
15
15
|
* with TREB. If not, see <https://www.gnu.org/licenses/>.
|
|
16
16
|
*
|
|
17
|
-
* Copyright 2022-
|
|
17
|
+
* Copyright 2022-2026 trebco, llc.
|
|
18
18
|
* info@treb.app
|
|
19
19
|
*
|
|
20
20
|
*/
|
|
@@ -886,7 +886,8 @@ export class TileRenderer {
|
|
|
886
886
|
const render_part: RenderTextPart = {
|
|
887
887
|
width: mt_width,
|
|
888
888
|
text: part.text,
|
|
889
|
-
hidden: part.flag === TextPartFlag.hidden
|
|
889
|
+
hidden: part.flag === TextPartFlag.hidden,
|
|
890
|
+
indent: part.flag === TextPartFlag.indent,
|
|
890
891
|
};
|
|
891
892
|
|
|
892
893
|
strings.push(render_part);
|
|
@@ -1067,7 +1068,7 @@ export class TileRenderer {
|
|
|
1067
1068
|
|
|
1068
1069
|
max_width = Math.max(max_width, last.width);
|
|
1069
1070
|
|
|
1070
|
-
const line_string = line2.map((metric) => {
|
|
1071
|
+
const line_string: RenderTextPart[] = line2.map((metric) => {
|
|
1071
1072
|
return {
|
|
1072
1073
|
...metric.part,
|
|
1073
1074
|
hidden: false,
|
|
@@ -1078,10 +1079,10 @@ export class TileRenderer {
|
|
|
1078
1079
|
|
|
1079
1080
|
if (style.indent) {
|
|
1080
1081
|
if (align === 'right') {
|
|
1081
|
-
line_string.push({ text: indent, hidden: false, width: indent_width });
|
|
1082
|
+
line_string.push({ text: indent, hidden: false, width: indent_width, indent: true });
|
|
1082
1083
|
}
|
|
1083
1084
|
else if (align === 'left') {
|
|
1084
|
-
line_string.unshift({ text: indent, hidden: false, width: indent_width });
|
|
1085
|
+
line_string.unshift({ text: indent, hidden: false, width: indent_width, indent: true });
|
|
1085
1086
|
}
|
|
1086
1087
|
}
|
|
1087
1088
|
|
|
@@ -1100,6 +1101,7 @@ export class TileRenderer {
|
|
|
1100
1101
|
for (const line of md) {
|
|
1101
1102
|
const parts: RenderTextPart[] = [];
|
|
1102
1103
|
|
|
1104
|
+
/*
|
|
1103
1105
|
if (style.indent) {
|
|
1104
1106
|
if (align === 'right') {
|
|
1105
1107
|
line.push({ text: indent });
|
|
@@ -1108,8 +1110,25 @@ export class TileRenderer {
|
|
|
1108
1110
|
line.unshift({ text: indent });
|
|
1109
1111
|
}
|
|
1110
1112
|
}
|
|
1113
|
+
*/
|
|
1111
1114
|
|
|
1112
1115
|
let line_width = 0;
|
|
1116
|
+
let indent_width = 0;
|
|
1117
|
+
|
|
1118
|
+
if (style.indent) {
|
|
1119
|
+
context.font = fonts.base;
|
|
1120
|
+
indent_width = context.measureText(indent).width;
|
|
1121
|
+
}
|
|
1122
|
+
|
|
1123
|
+
if (style.indent && align === 'left') {
|
|
1124
|
+
line_width += indent_width;
|
|
1125
|
+
parts.push({
|
|
1126
|
+
text: indent,
|
|
1127
|
+
hidden: false,
|
|
1128
|
+
width: indent_width,
|
|
1129
|
+
indent: true,
|
|
1130
|
+
});
|
|
1131
|
+
}
|
|
1113
1132
|
|
|
1114
1133
|
for (const element of line) {
|
|
1115
1134
|
|
|
@@ -1139,6 +1158,16 @@ export class TileRenderer {
|
|
|
1139
1158
|
|
|
1140
1159
|
}
|
|
1141
1160
|
|
|
1161
|
+
if (style.indent && align === 'right') {
|
|
1162
|
+
line_width += indent_width;
|
|
1163
|
+
parts.push({
|
|
1164
|
+
text: indent,
|
|
1165
|
+
hidden: false,
|
|
1166
|
+
width: indent_width,
|
|
1167
|
+
indent: true,
|
|
1168
|
+
});
|
|
1169
|
+
}
|
|
1170
|
+
|
|
1142
1171
|
max_width = Math.max(max_width, line_width);
|
|
1143
1172
|
|
|
1144
1173
|
strings.push(parts);
|
|
@@ -2211,12 +2240,12 @@ export class TileRenderer {
|
|
|
2211
2240
|
context.fillText(part.text, x, baseline);
|
|
2212
2241
|
}
|
|
2213
2242
|
|
|
2214
|
-
if (style.underline) {
|
|
2243
|
+
if (style.underline && !part.indent) {
|
|
2215
2244
|
context.moveTo(x, underline_y);
|
|
2216
2245
|
context.lineTo(x + part.width, underline_y);
|
|
2217
2246
|
}
|
|
2218
2247
|
|
|
2219
|
-
if (style.strike || part.strike) {
|
|
2248
|
+
if ((style.strike || part.strike) && !part.indent) {
|
|
2220
2249
|
context.moveTo(x, strike_y);
|
|
2221
2250
|
context.lineTo(x + part.width, strike_y);
|
|
2222
2251
|
}
|