@operato/data-grist 9.0.0-beta.61 → 9.0.0-beta.63
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/CHANGELOG.md +18 -0
- package/dist/src/accumulator/accumulator.d.ts +2 -0
- package/dist/src/accumulator/accumulator.js +42 -0
- package/dist/src/accumulator/accumulator.js.map +1 -0
- package/dist/src/configure/column-builder.d.ts +2 -0
- package/dist/src/configure/column-builder.js +99 -0
- package/dist/src/configure/column-builder.js.map +1 -0
- package/dist/src/configure/config-builder.d.ts +2 -0
- package/dist/src/configure/config-builder.js +36 -0
- package/dist/src/configure/config-builder.js.map +1 -0
- package/dist/src/configure/filters-option-builder.d.ts +2 -0
- package/dist/src/configure/filters-option-builder.js +7 -0
- package/dist/src/configure/filters-option-builder.js.map +1 -0
- package/dist/src/configure/imex-option-builder.d.ts +2 -0
- package/dist/src/configure/imex-option-builder.js +4 -0
- package/dist/src/configure/imex-option-builder.js.map +1 -0
- package/dist/src/configure/list-option-builder.d.ts +2 -0
- package/dist/src/configure/list-option-builder.js +8 -0
- package/dist/src/configure/list-option-builder.js.map +1 -0
- package/dist/src/configure/rows-option-builder.d.ts +2 -0
- package/dist/src/configure/rows-option-builder.js +26 -0
- package/dist/src/configure/rows-option-builder.js.map +1 -0
- package/dist/src/configure/tree-option-builder.d.ts +2 -0
- package/dist/src/configure/tree-option-builder.js +18 -0
- package/dist/src/configure/tree-option-builder.js.map +1 -0
- package/dist/src/configure/zero-config.d.ts +23 -0
- package/dist/src/configure/zero-config.js +59 -0
- package/dist/src/configure/zero-config.js.map +1 -0
- package/dist/src/const.d.ts +1 -0
- package/dist/src/const.js +2 -0
- package/dist/src/const.js.map +1 -0
- package/dist/src/data-card/data-card-field.d.ts +11 -0
- package/dist/src/data-card/data-card-field.js +106 -0
- package/dist/src/data-card/data-card-field.js.map +1 -0
- package/dist/src/data-card/data-card-gutter-menu.d.ts +2 -0
- package/dist/src/data-card/data-card-gutter-menu.js +96 -0
- package/dist/src/data-card/data-card-gutter-menu.js.map +1 -0
- package/dist/src/data-card/data-card-gutter.d.ts +12 -0
- package/dist/src/data-card/data-card-gutter.js +116 -0
- package/dist/src/data-card/data-card-gutter.js.map +1 -0
- package/dist/src/data-card/data-card.d.ts +19 -0
- package/dist/src/data-card/data-card.js +149 -0
- package/dist/src/data-card/data-card.js.map +1 -0
- package/dist/src/data-card/event-handlers/record-card-click-handler.d.ts +7 -0
- package/dist/src/data-card/event-handlers/record-card-click-handler.js +29 -0
- package/dist/src/data-card/event-handlers/record-card-click-handler.js.map +1 -0
- package/dist/src/data-card/event-handlers/record-card-dblclick-handler.d.ts +7 -0
- package/dist/src/data-card/event-handlers/record-card-dblclick-handler.js +29 -0
- package/dist/src/data-card/event-handlers/record-card-dblclick-handler.js.map +1 -0
- package/dist/src/data-card/record-card.d.ts +23 -0
- package/dist/src/data-card/record-card.js +288 -0
- package/dist/src/data-card/record-card.js.map +1 -0
- package/dist/src/data-consumer.d.ts +10 -0
- package/dist/src/data-consumer.js +2 -0
- package/dist/src/data-consumer.js.map +1 -0
- package/dist/src/data-grid/data-grid-accum-field.d.ts +16 -0
- package/dist/src/data-grid/data-grid-accum-field.js +133 -0
- package/dist/src/data-grid/data-grid-accum-field.js.map +1 -0
- package/dist/src/data-grid/data-grid-body-style.d.ts +1 -0
- package/dist/src/data-grid/data-grid-body-style.js +99 -0
- package/dist/src/data-grid/data-grid-body-style.js.map +1 -0
- package/dist/src/data-grid/data-grid-body.d.ts +52 -0
- package/dist/src/data-grid/data-grid-body.js +660 -0
- package/dist/src/data-grid/data-grid-body.js.map +1 -0
- package/dist/src/data-grid/data-grid-field.d.ts +25 -0
- package/dist/src/data-grid/data-grid-field.js +263 -0
- package/dist/src/data-grid/data-grid-field.js.map +1 -0
- package/dist/src/data-grid/data-grid-footer.d.ts +11 -0
- package/dist/src/data-grid/data-grid-footer.js +120 -0
- package/dist/src/data-grid/data-grid-footer.js.map +1 -0
- package/dist/src/data-grid/data-grid-header.d.ts +29 -0
- package/dist/src/data-grid/data-grid-header.js +531 -0
- package/dist/src/data-grid/data-grid-header.js.map +1 -0
- package/dist/src/data-grid/data-grid.d.ts +36 -0
- package/dist/src/data-grid/data-grid.js +260 -0
- package/dist/src/data-grid/data-grid.js.map +1 -0
- package/dist/src/data-grid/event-handlers/data-grid-body-click-handler.d.ts +7 -0
- package/dist/src/data-grid/event-handlers/data-grid-body-click-handler.js +57 -0
- package/dist/src/data-grid/event-handlers/data-grid-body-click-handler.js.map +1 -0
- package/dist/src/data-grid/event-handlers/data-grid-body-contextmenu-handler.d.ts +7 -0
- package/dist/src/data-grid/event-handlers/data-grid-body-contextmenu-handler.js +25 -0
- package/dist/src/data-grid/event-handlers/data-grid-body-contextmenu-handler.js.map +1 -0
- package/dist/src/data-grid/event-handlers/data-grid-body-dblclick-handler.d.ts +7 -0
- package/dist/src/data-grid/event-handlers/data-grid-body-dblclick-handler.js +34 -0
- package/dist/src/data-grid/event-handlers/data-grid-body-dblclick-handler.js.map +1 -0
- package/dist/src/data-grid/event-handlers/data-grid-body-focus-change-handler.d.ts +7 -0
- package/dist/src/data-grid/event-handlers/data-grid-body-focus-change-handler.js +19 -0
- package/dist/src/data-grid/event-handlers/data-grid-body-focus-change-handler.js.map +1 -0
- package/dist/src/data-grid/event-handlers/data-grid-body-keydown-handler.d.ts +7 -0
- package/dist/src/data-grid/event-handlers/data-grid-body-keydown-handler.js +226 -0
- package/dist/src/data-grid/event-handlers/data-grid-body-keydown-handler.js.map +1 -0
- package/dist/src/data-grist.d.ts +367 -0
- package/dist/src/data-grist.js +1064 -0
- package/dist/src/data-grist.js.map +1 -0
- package/dist/src/data-list/data-list-field.d.ts +11 -0
- package/dist/src/data-list/data-list-field.js +95 -0
- package/dist/src/data-list/data-list-field.js.map +1 -0
- package/dist/src/data-list/data-list-gutter.d.ts +12 -0
- package/dist/src/data-list/data-list-gutter.js +121 -0
- package/dist/src/data-list/data-list-gutter.js.map +1 -0
- package/dist/src/data-list/data-list.d.ts +18 -0
- package/dist/src/data-list/data-list.js +139 -0
- package/dist/src/data-list/data-list.js.map +1 -0
- package/dist/src/data-list/event-handlers/record-partial-click-handler.d.ts +7 -0
- package/dist/src/data-list/event-handlers/record-partial-click-handler.js +29 -0
- package/dist/src/data-list/event-handlers/record-partial-click-handler.js.map +1 -0
- package/dist/src/data-list/event-handlers/record-partial-dblclick-handler.d.ts +7 -0
- package/dist/src/data-list/event-handlers/record-partial-dblclick-handler.js +29 -0
- package/dist/src/data-list/event-handlers/record-partial-dblclick-handler.js.map +1 -0
- package/dist/src/data-list/event-handlers/record-partial-long-press-handler.d.ts +7 -0
- package/dist/src/data-list/event-handlers/record-partial-long-press-handler.js +29 -0
- package/dist/src/data-list/event-handlers/record-partial-long-press-handler.js.map +1 -0
- package/dist/src/data-list/record-partial.d.ts +21 -0
- package/dist/src/data-list/record-partial.js +252 -0
- package/dist/src/data-list/record-partial.js.map +1 -0
- package/dist/src/data-manipulator.d.ts +38 -0
- package/dist/src/data-manipulator.js +324 -0
- package/dist/src/data-manipulator.js.map +1 -0
- package/dist/src/data-provider.d.ts +50 -0
- package/dist/src/data-provider.js +200 -0
- package/dist/src/data-provider.js.map +1 -0
- package/dist/src/data-report/data-report-body-style.d.ts +1 -0
- package/dist/src/data-report/data-report-body-style.js +58 -0
- package/dist/src/data-report/data-report-body-style.js.map +1 -0
- package/dist/src/data-report/data-report-body.d.ts +18 -0
- package/dist/src/data-report/data-report-body.js +181 -0
- package/dist/src/data-report/data-report-body.js.map +1 -0
- package/dist/src/data-report/data-report-component.d.ts +21 -0
- package/dist/src/data-report/data-report-component.js +138 -0
- package/dist/src/data-report/data-report-component.js.map +1 -0
- package/dist/src/data-report/data-report-field.d.ts +13 -0
- package/dist/src/data-report/data-report-field.js +99 -0
- package/dist/src/data-report/data-report-field.js.map +1 -0
- package/dist/src/data-report/data-report-header.d.ts +1 -0
- package/dist/src/data-report/data-report-header.js +221 -0
- package/dist/src/data-report/data-report-header.js.map +1 -0
- package/dist/src/data-report/event-handlers/data-report-body-click-handler.d.ts +5 -0
- package/dist/src/data-report/event-handlers/data-report-body-click-handler.js +33 -0
- package/dist/src/data-report/event-handlers/data-report-body-click-handler.js.map +1 -0
- package/dist/src/data-report/event-handlers/data-report-body-dblclick-handler.d.ts +5 -0
- package/dist/src/data-report/event-handlers/data-report-body-dblclick-handler.js +19 -0
- package/dist/src/data-report/event-handlers/data-report-body-dblclick-handler.js.map +1 -0
- package/dist/src/data-report/event-handlers/data-report-body-keydown-handler.d.ts +5 -0
- package/dist/src/data-report/event-handlers/data-report-body-keydown-handler.js +58 -0
- package/dist/src/data-report/event-handlers/data-report-body-keydown-handler.js.map +1 -0
- package/dist/src/data-report.d.ts +44 -0
- package/dist/src/data-report.js +386 -0
- package/dist/src/data-report.js.map +1 -0
- package/dist/src/editors/index.d.ts +3 -0
- package/dist/src/editors/index.js +4 -0
- package/dist/src/editors/index.js.map +1 -0
- package/dist/src/editors/ox-grist-editor-checkbox.d.ts +7 -0
- package/dist/src/editors/ox-grist-editor-checkbox.js +27 -0
- package/dist/src/editors/ox-grist-editor-checkbox.js.map +1 -0
- package/dist/src/editors/ox-grist-editor-color.d.ts +4 -0
- package/dist/src/editors/ox-grist-editor-color.js +14 -0
- package/dist/src/editors/ox-grist-editor-color.js.map +1 -0
- package/dist/src/editors/ox-grist-editor-date.d.ts +4 -0
- package/dist/src/editors/ox-grist-editor-date.js +14 -0
- package/dist/src/editors/ox-grist-editor-date.js.map +1 -0
- package/dist/src/editors/ox-grist-editor-datetime.d.ts +6 -0
- package/dist/src/editors/ox-grist-editor-datetime.js +26 -0
- package/dist/src/editors/ox-grist-editor-datetime.js.map +1 -0
- package/dist/src/editors/ox-grist-editor-email.d.ts +4 -0
- package/dist/src/editors/ox-grist-editor-email.js +14 -0
- package/dist/src/editors/ox-grist-editor-email.js.map +1 -0
- package/dist/src/editors/ox-grist-editor-file.d.ts +6 -0
- package/dist/src/editors/ox-grist-editor-file.js +25 -0
- package/dist/src/editors/ox-grist-editor-file.js.map +1 -0
- package/dist/src/editors/ox-grist-editor-image.d.ts +7 -0
- package/dist/src/editors/ox-grist-editor-image.js +31 -0
- package/dist/src/editors/ox-grist-editor-image.js.map +1 -0
- package/dist/src/editors/ox-grist-editor-month.d.ts +4 -0
- package/dist/src/editors/ox-grist-editor-month.js +14 -0
- package/dist/src/editors/ox-grist-editor-month.js.map +1 -0
- package/dist/src/editors/ox-grist-editor-multiple-select.d.ts +8 -0
- package/dist/src/editors/ox-grist-editor-multiple-select.js +52 -0
- package/dist/src/editors/ox-grist-editor-multiple-select.js.map +1 -0
- package/dist/src/editors/ox-grist-editor-number.d.ts +6 -0
- package/dist/src/editors/ox-grist-editor-number.js +27 -0
- package/dist/src/editors/ox-grist-editor-number.js.map +1 -0
- package/dist/src/editors/ox-grist-editor-password.d.ts +4 -0
- package/dist/src/editors/ox-grist-editor-password.js +14 -0
- package/dist/src/editors/ox-grist-editor-password.js.map +1 -0
- package/dist/src/editors/ox-grist-editor-select.d.ts +4 -0
- package/dist/src/editors/ox-grist-editor-select.js +53 -0
- package/dist/src/editors/ox-grist-editor-select.js.map +1 -0
- package/dist/src/editors/ox-grist-editor-tel.d.ts +4 -0
- package/dist/src/editors/ox-grist-editor-tel.js +14 -0
- package/dist/src/editors/ox-grist-editor-tel.js.map +1 -0
- package/dist/src/editors/ox-grist-editor-text.d.ts +5 -0
- package/dist/src/editors/ox-grist-editor-text.js +17 -0
- package/dist/src/editors/ox-grist-editor-text.js.map +1 -0
- package/dist/src/editors/ox-grist-editor-textarea.d.ts +6 -0
- package/dist/src/editors/ox-grist-editor-textarea.js +18 -0
- package/dist/src/editors/ox-grist-editor-textarea.js.map +1 -0
- package/dist/src/editors/ox-grist-editor-time.d.ts +4 -0
- package/dist/src/editors/ox-grist-editor-time.js +14 -0
- package/dist/src/editors/ox-grist-editor-time.js.map +1 -0
- package/dist/src/editors/ox-grist-editor-tree.d.ts +6 -0
- package/dist/src/editors/ox-grist-editor-tree.js +27 -0
- package/dist/src/editors/ox-grist-editor-tree.js.map +1 -0
- package/dist/src/editors/ox-grist-editor-varname.d.ts +6 -0
- package/dist/src/editors/ox-grist-editor-varname.js +36 -0
- package/dist/src/editors/ox-grist-editor-varname.js.map +1 -0
- package/dist/src/editors/ox-grist-editor-week.d.ts +4 -0
- package/dist/src/editors/ox-grist-editor-week.js +14 -0
- package/dist/src/editors/ox-grist-editor-week.js.map +1 -0
- package/dist/src/editors/ox-grist-editor.d.ts +27 -0
- package/dist/src/editors/ox-grist-editor.js +197 -0
- package/dist/src/editors/ox-grist-editor.js.map +1 -0
- package/dist/src/editors/ox-input-tree.d.ts +20 -0
- package/dist/src/editors/ox-input-tree.js +221 -0
- package/dist/src/editors/ox-input-tree.js.map +1 -0
- package/dist/src/editors/registry.d.ts +12 -0
- package/dist/src/editors/registry.js +71 -0
- package/dist/src/editors/registry.js.map +1 -0
- package/dist/src/empty-note.d.ts +9 -0
- package/dist/src/empty-note.js +53 -0
- package/dist/src/empty-note.js.map +1 -0
- package/dist/src/filters/filter-checkbox.d.ts +3 -0
- package/dist/src/filters/filter-checkbox.js +41 -0
- package/dist/src/filters/filter-checkbox.js.map +1 -0
- package/dist/src/filters/filter-input-barcode.d.ts +3 -0
- package/dist/src/filters/filter-input-barcode.js +28 -0
- package/dist/src/filters/filter-input-barcode.js.map +1 -0
- package/dist/src/filters/filter-input.d.ts +2 -0
- package/dist/src/filters/filter-input.js +25 -0
- package/dist/src/filters/filter-input.js.map +1 -0
- package/dist/src/filters/filter-range-date.d.ts +2 -0
- package/dist/src/filters/filter-range-date.js +66 -0
- package/dist/src/filters/filter-range-date.js.map +1 -0
- package/dist/src/filters/filter-range-number.d.ts +2 -0
- package/dist/src/filters/filter-range-number.js +54 -0
- package/dist/src/filters/filter-range-number.js.map +1 -0
- package/dist/src/filters/filter-select-buttons.d.ts +3 -0
- package/dist/src/filters/filter-select-buttons.js +50 -0
- package/dist/src/filters/filter-select-buttons.js.map +1 -0
- package/dist/src/filters/filter-select.d.ts +3 -0
- package/dist/src/filters/filter-select.js +52 -0
- package/dist/src/filters/filter-select.js.map +1 -0
- package/dist/src/filters/filter-styles.d.ts +1 -0
- package/dist/src/filters/filter-styles.js +119 -0
- package/dist/src/filters/filter-styles.js.map +1 -0
- package/dist/src/filters/filters-form.d.ts +40 -0
- package/dist/src/filters/filters-form.js +430 -0
- package/dist/src/filters/filters-form.js.map +1 -0
- package/dist/src/filters/index.d.ts +8 -0
- package/dist/src/filters/index.js +9 -0
- package/dist/src/filters/index.js.map +1 -0
- package/dist/src/filters/registry.d.ts +7 -0
- package/dist/src/filters/registry.js +48 -0
- package/dist/src/filters/registry.js.map +1 -0
- package/dist/src/formatters/date-formatter.d.ts +1 -0
- package/dist/src/formatters/date-formatter.js +4 -0
- package/dist/src/formatters/date-formatter.js.map +1 -0
- package/dist/src/formatters/index.d.ts +1 -0
- package/dist/src/formatters/index.js +2 -0
- package/dist/src/formatters/index.js.map +1 -0
- package/dist/src/formatters/number-formatter.d.ts +1 -0
- package/dist/src/formatters/number-formatter.js +4 -0
- package/dist/src/formatters/number-formatter.js.map +1 -0
- package/dist/src/formatters/registry.d.ts +6 -0
- package/dist/src/formatters/registry.js +25 -0
- package/dist/src/formatters/registry.js.map +1 -0
- package/dist/src/formatters/text-formatter.d.ts +1 -0
- package/dist/src/formatters/text-formatter.js +4 -0
- package/dist/src/formatters/text-formatter.js.map +1 -0
- package/dist/src/gutters/gutter-button.d.ts +21 -0
- package/dist/src/gutters/gutter-button.js +40 -0
- package/dist/src/gutters/gutter-button.js.map +1 -0
- package/dist/src/gutters/gutter-dirty.d.ts +23 -0
- package/dist/src/gutters/gutter-dirty.js +87 -0
- package/dist/src/gutters/gutter-dirty.js.map +1 -0
- package/dist/src/gutters/gutter-row-selector.d.ts +21 -0
- package/dist/src/gutters/gutter-row-selector.js +70 -0
- package/dist/src/gutters/gutter-row-selector.js.map +1 -0
- package/dist/src/gutters/gutter-sequence.d.ts +35 -0
- package/dist/src/gutters/gutter-sequence.js +48 -0
- package/dist/src/gutters/gutter-sequence.js.map +1 -0
- package/dist/src/gutters/index.d.ts +1 -0
- package/dist/src/gutters/index.js +2 -0
- package/dist/src/gutters/index.js.map +1 -0
- package/dist/src/gutters/registry.d.ts +7 -0
- package/dist/src/gutters/registry.js +26 -0
- package/dist/src/gutters/registry.js.map +1 -0
- package/dist/src/handlers/contextmenu-tree-mutation.d.ts +3 -0
- package/dist/src/handlers/contextmenu-tree-mutation.js +64 -0
- package/dist/src/handlers/contextmenu-tree-mutation.js.map +1 -0
- package/dist/src/handlers/index.d.ts +1 -0
- package/dist/src/handlers/index.js +2 -0
- package/dist/src/handlers/index.js.map +1 -0
- package/dist/src/handlers/move-down.d.ts +3 -0
- package/dist/src/handlers/move-down.js +26 -0
- package/dist/src/handlers/move-down.js.map +1 -0
- package/dist/src/handlers/move-up.d.ts +3 -0
- package/dist/src/handlers/move-up.js +26 -0
- package/dist/src/handlers/move-up.js.map +1 -0
- package/dist/src/handlers/record-copy.d.ts +3 -0
- package/dist/src/handlers/record-copy.js +23 -0
- package/dist/src/handlers/record-copy.js.map +1 -0
- package/dist/src/handlers/record-delete.d.ts +3 -0
- package/dist/src/handlers/record-delete.js +16 -0
- package/dist/src/handlers/record-delete.js.map +1 -0
- package/dist/src/handlers/record-view-handler.d.ts +3 -0
- package/dist/src/handlers/record-view-handler.js +15 -0
- package/dist/src/handlers/record-view-handler.js.map +1 -0
- package/dist/src/handlers/registry.d.ts +7 -0
- package/dist/src/handlers/registry.js +34 -0
- package/dist/src/handlers/registry.js.map +1 -0
- package/dist/src/handlers/select-row-toggle.d.ts +3 -0
- package/dist/src/handlers/select-row-toggle.js +18 -0
- package/dist/src/handlers/select-row-toggle.js.map +1 -0
- package/dist/src/handlers/select-row.d.ts +3 -0
- package/dist/src/handlers/select-row.js +14 -0
- package/dist/src/handlers/select-row.js.map +1 -0
- package/dist/src/index.d.ts +14 -0
- package/dist/src/index.js +15 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/personalizer/index.d.ts +1 -0
- package/dist/src/personalizer/index.js +2 -0
- package/dist/src/personalizer/index.js.map +1 -0
- package/dist/src/personalizer/ox-grist-filter-personalizer.d.ts +8 -0
- package/dist/src/personalizer/ox-grist-filter-personalizer.js +178 -0
- package/dist/src/personalizer/ox-grist-filter-personalizer.js.map +1 -0
- package/dist/src/personalizer/ox-grist-personalizer.d.ts +8 -0
- package/dist/src/personalizer/ox-grist-personalizer.js +212 -0
- package/dist/src/personalizer/ox-grist-personalizer.js.map +1 -0
- package/dist/src/record-view/event-handlers/record-view-body-click-handler.d.ts +7 -0
- package/dist/src/record-view/event-handlers/record-view-body-click-handler.js +27 -0
- package/dist/src/record-view/event-handlers/record-view-body-click-handler.js.map +1 -0
- package/dist/src/record-view/event-handlers/record-view-body-keydown-handler.d.ts +7 -0
- package/dist/src/record-view/event-handlers/record-view-body-keydown-handler.js +22 -0
- package/dist/src/record-view/event-handlers/record-view-body-keydown-handler.js.map +1 -0
- package/dist/src/record-view/index.d.ts +2 -0
- package/dist/src/record-view/index.js +3 -0
- package/dist/src/record-view/index.js.map +1 -0
- package/dist/src/record-view/ox-record-creator.d.ts +26 -0
- package/dist/src/record-view/ox-record-creator.js +247 -0
- package/dist/src/record-view/ox-record-creator.js.map +1 -0
- package/dist/src/record-view/record-view-body.d.ts +21 -0
- package/dist/src/record-view/record-view-body.js +252 -0
- package/dist/src/record-view/record-view-body.js.map +1 -0
- package/dist/src/record-view/record-view-handler.d.ts +9 -0
- package/dist/src/record-view/record-view-handler.js +57 -0
- package/dist/src/record-view/record-view-handler.js.map +1 -0
- package/dist/src/record-view/record-view.d.ts +23 -0
- package/dist/src/record-view/record-view.js +117 -0
- package/dist/src/record-view/record-view.js.map +1 -0
- package/dist/src/renderers/index.d.ts +13 -0
- package/dist/src/renderers/index.js +14 -0
- package/dist/src/renderers/index.js.map +1 -0
- package/dist/src/renderers/ox-grist-renderer-boolean.d.ts +2 -0
- package/dist/src/renderers/ox-grist-renderer-boolean.js +39 -0
- package/dist/src/renderers/ox-grist-renderer-boolean.js.map +1 -0
- package/dist/src/renderers/ox-grist-renderer-color.d.ts +2 -0
- package/dist/src/renderers/ox-grist-renderer-color.js +12 -0
- package/dist/src/renderers/ox-grist-renderer-color.js.map +1 -0
- package/dist/src/renderers/ox-grist-renderer-date.d.ts +2 -0
- package/dist/src/renderers/ox-grist-renderer-date.js +53 -0
- package/dist/src/renderers/ox-grist-renderer-date.js.map +1 -0
- package/dist/src/renderers/ox-grist-renderer-file.d.ts +2 -0
- package/dist/src/renderers/ox-grist-renderer-file.js +27 -0
- package/dist/src/renderers/ox-grist-renderer-file.js.map +1 -0
- package/dist/src/renderers/ox-grist-renderer-image.d.ts +2 -0
- package/dist/src/renderers/ox-grist-renderer-image.js +24 -0
- package/dist/src/renderers/ox-grist-renderer-image.js.map +1 -0
- package/dist/src/renderers/ox-grist-renderer-json5.d.ts +2 -0
- package/dist/src/renderers/ox-grist-renderer-json5.js +30 -0
- package/dist/src/renderers/ox-grist-renderer-json5.js.map +1 -0
- package/dist/src/renderers/ox-grist-renderer-link.d.ts +2 -0
- package/dist/src/renderers/ox-grist-renderer-link.js +12 -0
- package/dist/src/renderers/ox-grist-renderer-link.js.map +1 -0
- package/dist/src/renderers/ox-grist-renderer-password.d.ts +2 -0
- package/dist/src/renderers/ox-grist-renderer-password.js +5 -0
- package/dist/src/renderers/ox-grist-renderer-password.js.map +1 -0
- package/dist/src/renderers/ox-grist-renderer-progress.d.ts +5 -0
- package/dist/src/renderers/ox-grist-renderer-progress.js +46 -0
- package/dist/src/renderers/ox-grist-renderer-progress.js.map +1 -0
- package/dist/src/renderers/ox-grist-renderer-select.d.ts +2 -0
- package/dist/src/renderers/ox-grist-renderer-select.js +50 -0
- package/dist/src/renderers/ox-grist-renderer-select.js.map +1 -0
- package/dist/src/renderers/ox-grist-renderer-text.d.ts +2 -0
- package/dist/src/renderers/ox-grist-renderer-text.js +11 -0
- package/dist/src/renderers/ox-grist-renderer-text.js.map +1 -0
- package/dist/src/renderers/ox-grist-renderer-textarea.d.ts +2 -0
- package/dist/src/renderers/ox-grist-renderer-textarea.js +5 -0
- package/dist/src/renderers/ox-grist-renderer-textarea.js.map +1 -0
- package/dist/src/renderers/ox-grist-renderer-tree.d.ts +12 -0
- package/dist/src/renderers/ox-grist-renderer-tree.js +183 -0
- package/dist/src/renderers/ox-grist-renderer-tree.js.map +1 -0
- package/dist/src/renderers/ox-grist-renderer.d.ts +15 -0
- package/dist/src/renderers/ox-grist-renderer.js +48 -0
- package/dist/src/renderers/ox-grist-renderer.js.map +1 -0
- package/dist/src/renderers/registry.d.ts +12 -0
- package/dist/src/renderers/registry.js +70 -0
- package/dist/src/renderers/registry.js.map +1 -0
- package/dist/src/sorters/sorters-control.d.ts +12 -0
- package/dist/src/sorters/sorters-control.js +138 -0
- package/dist/src/sorters/sorters-control.js.map +1 -0
- package/dist/src/types.d.ts +696 -0
- package/dist/src/types.js +23 -0
- package/dist/src/types.js.map +1 -0
- package/dist/src/utils/index.d.ts +2 -0
- package/dist/src/utils/index.js +3 -0
- package/dist/src/utils/index.js.map +1 -0
- package/dist/src/utils/list-param.d.ts +16 -0
- package/dist/src/utils/list-param.js +40 -0
- package/dist/src/utils/list-param.js.map +1 -0
- package/dist/src/utils/supports-passive.d.ts +1 -0
- package/dist/src/utils/supports-passive.js +13 -0
- package/dist/src/utils/supports-passive.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -4
- package/dist/index.d.ts +0 -1
- package/dist/index.js +0 -2
- package/dist/index.js.map +0 -1
- package/index.ts +0 -1
@@ -0,0 +1,260 @@
|
|
1
|
+
import { __decorate } from "tslib";
|
2
|
+
import '../empty-note.js';
|
3
|
+
import './data-grid-header.js';
|
4
|
+
import './data-grid-body.js';
|
5
|
+
import './data-grid-footer.js';
|
6
|
+
import { css, html } from 'lit';
|
7
|
+
import { customElement, property, query, state } from 'lit/decorators.js';
|
8
|
+
import { styles as MDTypeScaleStyles } from '@material/web/typography/md-typescale-styles.js';
|
9
|
+
import { ScrollbarStyles } from '@operato/styles';
|
10
|
+
import { DataManipulator } from '../data-manipulator.js';
|
11
|
+
/**
|
12
|
+
* DataGrid
|
13
|
+
*/
|
14
|
+
let DataGrid = class DataGrid extends DataManipulator {
|
15
|
+
constructor() {
|
16
|
+
super(...arguments);
|
17
|
+
this.fixedLefts = [];
|
18
|
+
}
|
19
|
+
firstUpdated() {
|
20
|
+
/* header and body scroll synchronization */
|
21
|
+
this.header.addEventListener('scroll', e => {
|
22
|
+
if (this.body.scrollLeft !== this.header.scrollLeft) {
|
23
|
+
this.body.scrollLeft = this.header.scrollLeft;
|
24
|
+
}
|
25
|
+
});
|
26
|
+
this.body.addEventListener('scroll', e => {
|
27
|
+
if (this.body.scrollLeft !== this.header.scrollLeft) {
|
28
|
+
this.header.scrollLeft = this.body.scrollLeft;
|
29
|
+
}
|
30
|
+
});
|
31
|
+
this.header.addEventListener('wheel', this.onWheelEvent.bind(this));
|
32
|
+
this.footer && this.footer.addEventListener('wheel', this.onWheelEvent.bind(this));
|
33
|
+
/* record selection processing */
|
34
|
+
this.addEventListener('select-all-change', e => {
|
35
|
+
if (this.data.records.length == 0) {
|
36
|
+
return;
|
37
|
+
}
|
38
|
+
var { selected } = e.detail;
|
39
|
+
var { records } = this.data;
|
40
|
+
records.forEach(record => (record['__selected__'] = selected));
|
41
|
+
this.header.requestUpdate();
|
42
|
+
this.body.requestUpdate();
|
43
|
+
});
|
44
|
+
this.addEventListener('focus-change', e => {
|
45
|
+
const { row, column } = e.detail || {};
|
46
|
+
if (!this.focused || this.focused.row != row || this.focused.column != column) {
|
47
|
+
this.focused = { row, column };
|
48
|
+
this.focus();
|
49
|
+
this.requestUpdate();
|
50
|
+
}
|
51
|
+
});
|
52
|
+
}
|
53
|
+
onWheelEvent(e) {
|
54
|
+
if (this.body.scrollWidth > this.body.clientWidth) {
|
55
|
+
var delta = Math.max(-1, Math.min(1, e.deltaY || 0));
|
56
|
+
this.body.scrollLeft = Math.max(0, this.body.scrollLeft - delta * 30);
|
57
|
+
var maxScrollLeft = this.body.scrollWidth - this.body.clientWidth;
|
58
|
+
var atStart = this.body.scrollLeft === 0;
|
59
|
+
var atEnd = this.body.scrollLeft === maxScrollLeft;
|
60
|
+
// 스크롤이 맨 앞으로 와 있는 상태에서 휠을 올리는 경우 또는
|
61
|
+
// 스크롤이 맨 끝으로 가 있는 상태에서 휠을 내리는 경우에만 디폴트 동작 허용
|
62
|
+
if ((atStart && delta > 0) || (atEnd && delta < 0)) {
|
63
|
+
return true;
|
64
|
+
}
|
65
|
+
e.preventDefault();
|
66
|
+
}
|
67
|
+
}
|
68
|
+
onSelectRecordChanged({ selectedRecords, added, removed }) {
|
69
|
+
super.onSelectRecordChanged({ selectedRecords, added, removed });
|
70
|
+
this.header.requestUpdate();
|
71
|
+
this.body.requestUpdate();
|
72
|
+
}
|
73
|
+
onRecordChanged(recordData, row, column /* TODO column should be removed */) {
|
74
|
+
/* record-viewer 등 grid 외에서 변경되는 경우에도 header와 body를 refresh 하도록 한다. */
|
75
|
+
super.onRecordChanged(recordData, row, column);
|
76
|
+
this.header.requestUpdate();
|
77
|
+
this.body.requestUpdate();
|
78
|
+
}
|
79
|
+
updated(changes) {
|
80
|
+
if (changes.has('data')) {
|
81
|
+
/*
|
82
|
+
* 데이타 내용에 따라 동적으로 컬럼의 폭이 달라지는 경우(예를 들면, sequence field)가 있으므로,
|
83
|
+
* data의 변동에 대해서도 다시 계산되어야 한다.
|
84
|
+
*/
|
85
|
+
this.calculateWidths(this.config.columns);
|
86
|
+
if (this.focused && 'row' in this.focused) {
|
87
|
+
var { row = 0, column = 0 } = this.focused;
|
88
|
+
var { records: oldrecords = [] } = changes.get('data') || {};
|
89
|
+
var { records: newrecords } = this.data;
|
90
|
+
var oldrecord = oldrecords[row];
|
91
|
+
if (oldrecord && oldrecord !== newrecords[row]) {
|
92
|
+
var newrecord = newrecords.find(record =>
|
93
|
+
/* TODO keyfields를 정의하고, keyfields의 동일성으로 확정해야 한다. */
|
94
|
+
oldrecord === record ||
|
95
|
+
('id' in oldrecord
|
96
|
+
? record.id == oldrecord.id
|
97
|
+
: 'name' in oldrecord
|
98
|
+
? record.name == oldrecord.name
|
99
|
+
: false));
|
100
|
+
this.focused = {
|
101
|
+
row: newrecord ? newrecords.indexOf(newrecord) : row,
|
102
|
+
column
|
103
|
+
};
|
104
|
+
}
|
105
|
+
}
|
106
|
+
}
|
107
|
+
else if (changes.has('config')) {
|
108
|
+
this.calculateWidths(this.config.columns);
|
109
|
+
}
|
110
|
+
/* grid fetch 후에 grid로 focus를 주어야 하는 지 검토가 필요하다. */
|
111
|
+
// this.focus()
|
112
|
+
}
|
113
|
+
calculateWidths(columns) {
|
114
|
+
/*
|
115
|
+
* 컬럼 모델 마지막에 'auto' cell을 추가하여, 자투리 영역을 꽉 채워서 표시한다.
|
116
|
+
*/
|
117
|
+
const widths = columns
|
118
|
+
.filter(column => !column.hidden)
|
119
|
+
.map(column => {
|
120
|
+
switch (typeof column.width) {
|
121
|
+
case 'number':
|
122
|
+
return column.width + 'px';
|
123
|
+
case 'string':
|
124
|
+
return column.width;
|
125
|
+
case 'function':
|
126
|
+
return column.width.call(this, column);
|
127
|
+
default:
|
128
|
+
return 'auto';
|
129
|
+
}
|
130
|
+
})
|
131
|
+
.concat(['auto'])
|
132
|
+
.join(' ');
|
133
|
+
this.style.setProperty('--grid-template-columns', widths);
|
134
|
+
this.style.setProperty('--grid-template-print-columns', widths.replace(/px/gi, 'fr'));
|
135
|
+
}
|
136
|
+
render() {
|
137
|
+
var { pagination = {}, columns = [], filters } = this.config;
|
138
|
+
var paginatable = !pagination.infinite;
|
139
|
+
var data = this.data;
|
140
|
+
return html `
|
141
|
+
<div setting>
|
142
|
+
<slot name="setting"></slot>
|
143
|
+
</div>
|
144
|
+
|
145
|
+
<ox-grid-header
|
146
|
+
class="md-typescale-label-medium-prominent"
|
147
|
+
.columns=${columns}
|
148
|
+
.sorters=${this.sorters}
|
149
|
+
.filters=${this.filters}
|
150
|
+
.data=${data}
|
151
|
+
?filtering-feature=${filters === null || filters === void 0 ? void 0 : filters.header}
|
152
|
+
@column-width-change=${(e) => {
|
153
|
+
let { idx, width } = e.detail;
|
154
|
+
columns[idx].width = width;
|
155
|
+
this.calculateWidths(columns);
|
156
|
+
}}
|
157
|
+
@fixed-lefts-change=${(e) => (this.fixedLefts = e.detail)}
|
158
|
+
>
|
159
|
+
</ox-grid-header>
|
160
|
+
|
161
|
+
<ox-grid-body
|
162
|
+
class="md-typescale-body-medium"
|
163
|
+
.config=${this.config}
|
164
|
+
.columns=${columns}
|
165
|
+
.data=${data}
|
166
|
+
.focused=${this.focused}
|
167
|
+
.fixedLefts=${this.fixedLefts}
|
168
|
+
>
|
169
|
+
${this.empty ? html ` <ox-empty-note title="NO RECORDS"></ox-empty-note> ` : html ``}
|
170
|
+
</ox-grid-body>
|
171
|
+
${paginatable
|
172
|
+
? html `
|
173
|
+
<ox-grid-footer
|
174
|
+
class="md-typescale-body-medium"
|
175
|
+
.data=${data}
|
176
|
+
.pagination=${this.pagination}
|
177
|
+
></ox-grid-footer>
|
178
|
+
`
|
179
|
+
: html ``}
|
180
|
+
`;
|
181
|
+
}
|
182
|
+
focus() {
|
183
|
+
super.focus();
|
184
|
+
this.body.focus();
|
185
|
+
}
|
186
|
+
get pullToRefreshTarget() {
|
187
|
+
return this.body;
|
188
|
+
}
|
189
|
+
};
|
190
|
+
DataGrid.styles = [
|
191
|
+
MDTypeScaleStyles,
|
192
|
+
ScrollbarStyles,
|
193
|
+
css `
|
194
|
+
:host {
|
195
|
+
display: flex;
|
196
|
+
flex-direction: column;
|
197
|
+
|
198
|
+
overflow: hidden;
|
199
|
+
|
200
|
+
border-width: var(--grid-container-border-width);
|
201
|
+
}
|
202
|
+
|
203
|
+
ox-grid-body {
|
204
|
+
flex: 1;
|
205
|
+
position: relative;
|
206
|
+
|
207
|
+
font-variation-settings: 'FILL' 1;
|
208
|
+
}
|
209
|
+
|
210
|
+
ox-grid-header {
|
211
|
+
font-variation-settings: 'FILL' 1;
|
212
|
+
}
|
213
|
+
|
214
|
+
ox-grid-footer {
|
215
|
+
font-variation-settings: 'FILL' 1;
|
216
|
+
}
|
217
|
+
|
218
|
+
ox-empty-note {
|
219
|
+
display: block;
|
220
|
+
position: absolute;
|
221
|
+
left: 50%;
|
222
|
+
top: 50%;
|
223
|
+
transform: translate(-50%, -50%);
|
224
|
+
}
|
225
|
+
|
226
|
+
div[setting] {
|
227
|
+
position: relative;
|
228
|
+
z-index: 5;
|
229
|
+
}
|
230
|
+
|
231
|
+
@media print {
|
232
|
+
:host {
|
233
|
+
zoom: 80%;
|
234
|
+
}
|
235
|
+
}
|
236
|
+
`
|
237
|
+
];
|
238
|
+
__decorate([
|
239
|
+
property({ type: Object })
|
240
|
+
], DataGrid.prototype, "focused", void 0);
|
241
|
+
__decorate([
|
242
|
+
property({ type: Boolean })
|
243
|
+
], DataGrid.prototype, "empty", void 0);
|
244
|
+
__decorate([
|
245
|
+
query('ox-grid-body', true)
|
246
|
+
], DataGrid.prototype, "body", void 0);
|
247
|
+
__decorate([
|
248
|
+
query('ox-grid-header', true)
|
249
|
+
], DataGrid.prototype, "header", void 0);
|
250
|
+
__decorate([
|
251
|
+
query('ox-grid-footer', true)
|
252
|
+
], DataGrid.prototype, "footer", void 0);
|
253
|
+
__decorate([
|
254
|
+
state()
|
255
|
+
], DataGrid.prototype, "fixedLefts", void 0);
|
256
|
+
DataGrid = __decorate([
|
257
|
+
customElement('ox-grid')
|
258
|
+
], DataGrid);
|
259
|
+
export { DataGrid };
|
260
|
+
//# sourceMappingURL=data-grid.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"data-grid.js","sourceRoot":"","sources":["../../../src/data-grid/data-grid.ts"],"names":[],"mappings":"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","sourcesContent":["import '../empty-note.js'\nimport './data-grid-header.js'\nimport './data-grid-body.js'\nimport './data-grid-footer.js'\n\nimport { css, html, LitElement, PropertyValues } from 'lit'\nimport { customElement, property, query, state } from 'lit/decorators.js'\nimport { styles as MDTypeScaleStyles } from '@material/web/typography/md-typescale-styles.js'\n\nimport { ScrollbarStyles } from '@operato/styles'\n\nimport { DataManipulator } from '../data-manipulator.js'\nimport { ColumnConfig, GristRecord, PaginationConfig } from '../types.js'\n// import { supportsPassive } from '../utils/index.js'\nimport { DataGridHeader } from './data-grid-header.js'\n\n/**\n * DataGrid\n */\n@customElement('ox-grid')\nexport class DataGrid extends DataManipulator {\n static styles = [\n MDTypeScaleStyles,\n ScrollbarStyles,\n css`\n :host {\n display: flex;\n flex-direction: column;\n\n overflow: hidden;\n\n border-width: var(--grid-container-border-width);\n }\n\n ox-grid-body {\n flex: 1;\n position: relative;\n\n font-variation-settings: 'FILL' 1;\n }\n\n ox-grid-header {\n font-variation-settings: 'FILL' 1;\n }\n\n ox-grid-footer {\n font-variation-settings: 'FILL' 1;\n }\n\n ox-empty-note {\n display: block;\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n }\n\n div[setting] {\n position: relative;\n z-index: 5;\n }\n\n @media print {\n :host {\n zoom: 80%;\n }\n }\n `\n ]\n\n @property({ type: Object }) focused?: { row: number; column: number }\n @property({ type: Boolean }) empty?: boolean\n\n @query('ox-grid-body', true) body!: LitElement\n @query('ox-grid-header', true) header!: DataGridHeader\n @query('ox-grid-footer', true) footer!: LitElement\n\n @state() fixedLefts: number[] = []\n\n firstUpdated() {\n /* header and body scroll synchronization */\n this.header.addEventListener('scroll', e => {\n if (this.body.scrollLeft !== this.header.scrollLeft) {\n this.body.scrollLeft = this.header.scrollLeft\n }\n })\n\n this.body.addEventListener('scroll', e => {\n if (this.body.scrollLeft !== this.header.scrollLeft) {\n this.header.scrollLeft = this.body.scrollLeft\n }\n })\n\n this.header.addEventListener('wheel', this.onWheelEvent.bind(this))\n this.footer && this.footer.addEventListener('wheel', this.onWheelEvent.bind(this))\n\n /* record selection processing */\n this.addEventListener('select-all-change', e => {\n if (this.data.records.length == 0) {\n return\n }\n\n var { selected } = (e as CustomEvent).detail\n var { records } = this.data\n\n records.forEach(record => (record['__selected__'] = selected))\n\n this.header.requestUpdate()\n this.body.requestUpdate()\n })\n\n this.addEventListener('focus-change', e => {\n const { row, column } = (e as CustomEvent).detail || {}\n if (!this.focused || this.focused.row != row || this.focused.column != column) {\n this.focused = { row, column }\n this.focus()\n this.requestUpdate()\n }\n })\n }\n\n onWheelEvent(e: WheelEvent) {\n if (this.body.scrollWidth > this.body.clientWidth) {\n var delta = Math.max(-1, Math.min(1, e.deltaY || 0))\n this.body.scrollLeft = Math.max(0, this.body.scrollLeft - delta * 30)\n\n var maxScrollLeft = this.body.scrollWidth - this.body.clientWidth\n\n var atStart = this.body.scrollLeft === 0\n var atEnd = this.body.scrollLeft === maxScrollLeft\n\n // 스크롤이 맨 앞으로 와 있는 상태에서 휠을 올리는 경우 또는\n // 스크롤이 맨 끝으로 가 있는 상태에서 휠을 내리는 경우에만 디폴트 동작 허용\n if ((atStart && delta > 0) || (atEnd && delta < 0)) {\n return true\n }\n\n e.preventDefault()\n }\n }\n\n onSelectRecordChanged({\n selectedRecords,\n added,\n removed\n }: {\n selectedRecords: GristRecord[]\n added: GristRecord[]\n removed: GristRecord[]\n }): void {\n super.onSelectRecordChanged({ selectedRecords, added, removed })\n\n this.header.requestUpdate()\n this.body.requestUpdate()\n }\n\n onRecordChanged(\n recordData: GristRecord,\n row: number,\n column: ColumnConfig | null /* TODO column should be removed */\n ) {\n /* record-viewer 등 grid 외에서 변경되는 경우에도 header와 body를 refresh 하도록 한다. */\n super.onRecordChanged(recordData, row, column)\n\n this.header.requestUpdate()\n this.body.requestUpdate()\n }\n\n updated(changes: PropertyValues<this>) {\n if (changes.has('data')) {\n /*\n * 데이타 내용에 따라 동적으로 컬럼의 폭이 달라지는 경우(예를 들면, sequence field)가 있으므로,\n * data의 변동에 대해서도 다시 계산되어야 한다.\n */\n this.calculateWidths(this.config.columns)\n\n if (this.focused && 'row' in this.focused) {\n var { row = 0, column = 0 } = this.focused\n var { records: oldrecords = [] } = changes.get('data') || {}\n var { records: newrecords } = this.data\n\n var oldrecord = oldrecords[row]\n\n if (oldrecord && oldrecord !== newrecords[row]) {\n var newrecord = newrecords.find(\n record =>\n /* TODO keyfields를 정의하고, keyfields의 동일성으로 확정해야 한다. */\n oldrecord === record ||\n ('id' in oldrecord\n ? record.id == oldrecord.id\n : 'name' in oldrecord\n ? record.name == oldrecord.name\n : false)\n )\n\n this.focused = {\n row: newrecord ? newrecords.indexOf(newrecord) : row,\n column\n }\n }\n }\n } else if (changes.has('config')) {\n this.calculateWidths(this.config.columns)\n }\n\n /* grid fetch 후에 grid로 focus를 주어야 하는 지 검토가 필요하다. */\n // this.focus()\n }\n\n calculateWidths(columns: ColumnConfig[]) {\n /*\n * 컬럼 모델 마지막에 'auto' cell을 추가하여, 자투리 영역을 꽉 채워서 표시한다.\n */\n const widths = columns\n .filter(column => !column.hidden)\n .map(column => {\n switch (typeof column.width) {\n case 'number':\n return column.width + 'px'\n case 'string':\n return column.width\n case 'function':\n return column.width.call(this, column)\n default:\n return 'auto'\n }\n })\n .concat(['auto'])\n .join(' ')\n\n this.style.setProperty('--grid-template-columns', widths)\n this.style.setProperty('--grid-template-print-columns', widths.replace(/px/gi, 'fr'))\n }\n\n render() {\n var { pagination = {} as PaginationConfig, columns = [], filters } = this.config\n\n var paginatable = !pagination.infinite\n var data = this.data\n\n return html`\n <div setting>\n <slot name=\"setting\"></slot>\n </div>\n\n <ox-grid-header\n class=\"md-typescale-label-medium-prominent\"\n .columns=${columns}\n .sorters=${this.sorters}\n .filters=${this.filters}\n .data=${data}\n ?filtering-feature=${filters?.header}\n @column-width-change=${(e: CustomEvent) => {\n let { idx, width } = e.detail\n columns[idx].width = width\n this.calculateWidths(columns)\n }}\n @fixed-lefts-change=${(e: CustomEvent) => (this.fixedLefts = e.detail)}\n >\n </ox-grid-header>\n\n <ox-grid-body\n class=\"md-typescale-body-medium\"\n .config=${this.config}\n .columns=${columns}\n .data=${data}\n .focused=${this.focused!}\n .fixedLefts=${this.fixedLefts}\n >\n ${this.empty ? html` <ox-empty-note title=\"NO RECORDS\"></ox-empty-note> ` : html``}\n </ox-grid-body>\n ${paginatable\n ? html`\n <ox-grid-footer\n class=\"md-typescale-body-medium\"\n .data=${data}\n .pagination=${this.pagination}\n ></ox-grid-footer>\n `\n : html``}\n `\n }\n\n focus() {\n super.focus()\n\n this.body.focus()\n }\n\n get pullToRefreshTarget() {\n return this.body\n }\n}\n"]}
|
@@ -0,0 +1,57 @@
|
|
1
|
+
/**
|
2
|
+
* ox-grid-body 의 click handler
|
3
|
+
*
|
4
|
+
* - handler의 this 는 ox-grid-body임.
|
5
|
+
*/
|
6
|
+
export function dataGridBodyClickHandler(e) {
|
7
|
+
e.stopPropagation();
|
8
|
+
if (e.detail === 2) {
|
9
|
+
return;
|
10
|
+
}
|
11
|
+
if (this.editTarget) {
|
12
|
+
/* editTarget이 새로 설정되지 않았다면, 이후 기능이 실행된다. */
|
13
|
+
return;
|
14
|
+
}
|
15
|
+
/* target should be 'ox-grid-field' */
|
16
|
+
var target = e.target.closest('ox-grid-field');
|
17
|
+
var { column, record, rowIndex, columnIndex } = target || {};
|
18
|
+
// if (!column) {
|
19
|
+
// /* 여백 컬럼이 클릭된 경우 */
|
20
|
+
// return
|
21
|
+
// }
|
22
|
+
// this.dispatchEvent(
|
23
|
+
// new CustomEvent('focus-change', {
|
24
|
+
// bubbles: true,
|
25
|
+
// composed: true,
|
26
|
+
// detail: {
|
27
|
+
// row: rowIndex,
|
28
|
+
// column: columnIndex
|
29
|
+
// }
|
30
|
+
// })
|
31
|
+
// )
|
32
|
+
/* 만약, 클릭 이벤트에 포커스만 바꾸고 싶다면, 아래 코멘트를 제거한다. */
|
33
|
+
/*
|
34
|
+
this.resetEdit()
|
35
|
+
*/
|
36
|
+
/* 만약, 클릭 이벤트에 포커스만 바꾸고 싶다면, 아래 부분을 코멘트처리한다. */
|
37
|
+
// if (!isNaN(rowIndex) && !isNaN(columnIndex)) {
|
38
|
+
// this.startEditTarget(rowIndex, columnIndex)
|
39
|
+
// if (this.editTarget) {
|
40
|
+
// /* editTarget이 새로 설정되지 않았다면, 이후 기능이 실행된다. */
|
41
|
+
// return
|
42
|
+
// }
|
43
|
+
// } else {
|
44
|
+
// console.error('should not be here.')
|
45
|
+
// return
|
46
|
+
// }
|
47
|
+
/* 만약, 클릭 이벤트에 포커스만 바꾸고 싶다면, 여기까지 코멘트 처리한다. */
|
48
|
+
/* do column click handler */
|
49
|
+
if (column) {
|
50
|
+
var { click } = column.handlers;
|
51
|
+
click && click(this.columns, this.data, column, record, rowIndex, target, e);
|
52
|
+
}
|
53
|
+
/* do rows click handler */
|
54
|
+
var { click: rowsClick } = this.config.rows.handlers;
|
55
|
+
rowsClick && rowsClick(this.columns, this.data, column, record, rowIndex, target, e);
|
56
|
+
}
|
57
|
+
//# sourceMappingURL=data-grid-body-click-handler.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"data-grid-body-click-handler.js","sourceRoot":"","sources":["../../../../src/data-grid/event-handlers/data-grid-body-click-handler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,MAAM,UAAU,wBAAwB,CAAqB,CAAQ;IACnE,CAAC,CAAC,eAAe,EAAE,CAAA;IAEnB,IAAK,CAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,OAAM;IACR,CAAC;IAED,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,4CAA4C;QAC5C,OAAM;IACR,CAAC;IAED,sCAAsC;IACtC,IAAI,MAAM,GAAI,CAAC,CAAC,MAAkB,CAAC,OAAO,CAAC,eAAe,CAAkB,CAAA;IAC5E,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM,IAAI,EAAE,CAAA;IAE5D,iBAAiB;IACjB,wBAAwB;IACxB,WAAW;IACX,IAAI;IAEJ,sBAAsB;IACtB,sCAAsC;IACtC,qBAAqB;IACrB,sBAAsB;IACtB,gBAAgB;IAChB,uBAAuB;IACvB,4BAA4B;IAC5B,QAAQ;IACR,OAAO;IACP,IAAI;IAEJ,6CAA6C;IAC7C;;MAEE;IAEF,+CAA+C;IAC/C,iDAAiD;IACjD,gDAAgD;IAChD,2BAA2B;IAC3B,mDAAmD;IACnD,aAAa;IACb,MAAM;IACN,WAAW;IACX,yCAAyC;IACzC,WAAW;IACX,IAAI;IACJ,8CAA8C;IAE9C,6BAA6B;IAC7B,IAAI,MAAM,EAAE,CAAC;QACX,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAA;QAC/B,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;IAC9E,CAAC;IAED,2BAA2B;IAC3B,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAA;IACpD,SAAS,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;AACtF,CAAC","sourcesContent":["/**\n * ox-grid-body 의 click handler\n *\n * - handler의 this 는 ox-grid-body임.\n */\n\nimport { DataGridBody } from '../data-grid-body.js'\nimport { DataGridField } from '../data-grid-field.js'\n\nexport function dataGridBodyClickHandler(this: DataGridBody, e: Event): void {\n e.stopPropagation()\n\n if ((e as MouseEvent).detail === 2) {\n return\n }\n\n if (this.editTarget) {\n /* editTarget이 새로 설정되지 않았다면, 이후 기능이 실행된다. */\n return\n }\n\n /* target should be 'ox-grid-field' */\n var target = (e.target as Element).closest('ox-grid-field') as DataGridField\n var { column, record, rowIndex, columnIndex } = target || {}\n\n // if (!column) {\n // /* 여백 컬럼이 클릭된 경우 */\n // return\n // }\n\n // this.dispatchEvent(\n // new CustomEvent('focus-change', {\n // bubbles: true,\n // composed: true,\n // detail: {\n // row: rowIndex,\n // column: columnIndex\n // }\n // })\n // )\n\n /* 만약, 클릭 이벤트에 포커스만 바꾸고 싶다면, 아래 코멘트를 제거한다. */\n /* \n this.resetEdit()\n */\n\n /* 만약, 클릭 이벤트에 포커스만 바꾸고 싶다면, 아래 부분을 코멘트처리한다. */\n // if (!isNaN(rowIndex) && !isNaN(columnIndex)) {\n // this.startEditTarget(rowIndex, columnIndex)\n // if (this.editTarget) {\n // /* editTarget이 새로 설정되지 않았다면, 이후 기능이 실행된다. */\n // return\n // }\n // } else {\n // console.error('should not be here.')\n // return\n // }\n /* 만약, 클릭 이벤트에 포커스만 바꾸고 싶다면, 여기까지 코멘트 처리한다. */\n\n /* do column click handler */\n if (column) {\n var { click } = column.handlers\n click && click(this.columns, this.data, column, record, rowIndex, target, e)\n }\n\n /* do rows click handler */\n var { click: rowsClick } = this.config.rows.handlers\n rowsClick && rowsClick(this.columns, this.data, column, record, rowIndex, target, e)\n}\n"]}
|
@@ -0,0 +1,25 @@
|
|
1
|
+
/**
|
2
|
+
* ox-grid-body 의 focus-change handler
|
3
|
+
*
|
4
|
+
* - handler의 this 는 ox-grid-body임.
|
5
|
+
*/
|
6
|
+
export async function dataGridBodyContextMenuHandler(e) {
|
7
|
+
e.stopPropagation();
|
8
|
+
if (this.editTarget) {
|
9
|
+
/* editTarget이 새로 설정되지 않았다면, 이후 기능이 실행된다. */
|
10
|
+
return;
|
11
|
+
}
|
12
|
+
/* target should be 'ox-grid-field' */
|
13
|
+
var target = e.target.closest('ox-grid-field');
|
14
|
+
var { column, record, rowIndex, columnIndex } = target || {};
|
15
|
+
var { column, record } = target || {};
|
16
|
+
/* do column contextmenu handler */
|
17
|
+
if (column) {
|
18
|
+
var { contextmenu } = column.handlers;
|
19
|
+
contextmenu && contextmenu(this.columns, this.data, column, record, rowIndex, target, e);
|
20
|
+
}
|
21
|
+
/* do rows contextmenu handler */
|
22
|
+
var { contextmenu: rowsContextMenu } = this.config.rows.handlers;
|
23
|
+
rowsContextMenu && rowsContextMenu(this.columns, this.data, column, record, rowIndex, target, e);
|
24
|
+
}
|
25
|
+
//# sourceMappingURL=data-grid-body-contextmenu-handler.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"data-grid-body-contextmenu-handler.js","sourceRoot":"","sources":["../../../../src/data-grid/event-handlers/data-grid-body-contextmenu-handler.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAAqB,CAAQ;IAC/E,CAAC,CAAC,eAAe,EAAE,CAAA;IAEnB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,4CAA4C;QAC5C,OAAM;IACR,CAAC;IAED,sCAAsC;IACtC,IAAI,MAAM,GAAI,CAAC,CAAC,MAAkB,CAAC,OAAO,CAAC,eAAe,CAAkB,CAAA;IAC5E,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM,IAAI,EAAE,CAAA;IAE5D,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,EAAE,CAAA;IAErC,mCAAmC;IACnC,IAAI,MAAM,EAAE,CAAC;QACX,IAAI,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAA;QACrC,WAAW,IAAI,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;IAC1F,CAAC;IAED,iCAAiC;IACjC,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAA;IAChE,eAAe,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;AAClG,CAAC","sourcesContent":["import { DataGridBody } from '../data-grid-body.js'\nimport { DataGridField } from '../data-grid-field.js'\n\n/**\n * ox-grid-body 의 focus-change handler\n *\n * - handler의 this 는 ox-grid-body임.\n */\nexport async function dataGridBodyContextMenuHandler(this: DataGridBody, e: Event): Promise<void> {\n e.stopPropagation()\n\n if (this.editTarget) {\n /* editTarget이 새로 설정되지 않았다면, 이후 기능이 실행된다. */\n return\n }\n\n /* target should be 'ox-grid-field' */\n var target = (e.target as Element).closest('ox-grid-field') as DataGridField\n var { column, record, rowIndex, columnIndex } = target || {}\n\n var { column, record } = target || {}\n\n /* do column contextmenu handler */\n if (column) {\n var { contextmenu } = column.handlers\n contextmenu && contextmenu(this.columns, this.data, column, record, rowIndex, target, e)\n }\n\n /* do rows contextmenu handler */\n var { contextmenu: rowsContextMenu } = this.config.rows.handlers\n rowsContextMenu && rowsContextMenu(this.columns, this.data, column, record, rowIndex, target, e)\n}\n"]}
|
@@ -0,0 +1,34 @@
|
|
1
|
+
/**
|
2
|
+
* ox-grid-body 의 dblclick handler
|
3
|
+
*
|
4
|
+
* - handler의 this 는 ox-grid-body임.
|
5
|
+
*/
|
6
|
+
export async function dataGridBodyDblclickHandler(e) {
|
7
|
+
e.stopPropagation();
|
8
|
+
if (this.editTarget) {
|
9
|
+
/* editTarget이 새로 설정되지 않았다면, 이후 기능이 실행된다. */
|
10
|
+
return;
|
11
|
+
}
|
12
|
+
/* target should be 'ox-grid-field' */
|
13
|
+
var target = e.target.closest('ox-grid-field');
|
14
|
+
var { column, record, rowIndex, columnIndex } = target || {};
|
15
|
+
// if (!column) {
|
16
|
+
// /* 여백 컬럼이 클릭된 경우 */
|
17
|
+
// return
|
18
|
+
// }
|
19
|
+
// if (!isNaN(rowIndex) && !isNaN(columnIndex)) {
|
20
|
+
// this.startEditTarget(rowIndex, columnIndex)
|
21
|
+
// } else {
|
22
|
+
// console.error('should not be here.')
|
23
|
+
// return
|
24
|
+
// }
|
25
|
+
/* do column dblclick handler */
|
26
|
+
if (column) {
|
27
|
+
var { dblclick } = column.handlers;
|
28
|
+
dblclick && dblclick(this.columns, this.data, column, record, rowIndex, target, e);
|
29
|
+
}
|
30
|
+
/* do rows dblclick handler */
|
31
|
+
var { dblclick: rowsDblclick } = this.config.rows.handlers;
|
32
|
+
rowsDblclick && rowsDblclick(this.columns, this.data, column, record, rowIndex, target, e);
|
33
|
+
}
|
34
|
+
//# sourceMappingURL=data-grid-body-dblclick-handler.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"data-grid-body-dblclick-handler.js","sourceRoot":"","sources":["../../../../src/data-grid/event-handlers/data-grid-body-dblclick-handler.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAqB,CAAQ;IAC5E,CAAC,CAAC,eAAe,EAAE,CAAA;IAEnB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,4CAA4C;QAC5C,OAAM;IACR,CAAC;IAED,sCAAsC;IACtC,IAAI,MAAM,GAAI,CAAC,CAAC,MAAkB,CAAC,OAAO,CAAC,eAAe,CAAkB,CAAA;IAC5E,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM,IAAI,EAAE,CAAA;IAE5D,iBAAiB;IACjB,wBAAwB;IACxB,WAAW;IACX,IAAI;IAEJ,iDAAiD;IACjD,gDAAgD;IAChD,WAAW;IACX,yCAAyC;IACzC,WAAW;IACX,IAAI;IAEJ,gCAAgC;IAChC,IAAI,MAAM,EAAE,CAAC;QACX,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAA;QAClC,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;IACpF,CAAC;IAED,8BAA8B;IAC9B,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAA;IAC1D,YAAY,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;AAC5F,CAAC","sourcesContent":["import { DataGridBody } from '../data-grid-body.js'\nimport { DataGridField } from '../data-grid-field.js'\n\n/**\n * ox-grid-body 의 dblclick handler\n *\n * - handler의 this 는 ox-grid-body임.\n */\nexport async function dataGridBodyDblclickHandler(this: DataGridBody, e: Event): Promise<void> {\n e.stopPropagation()\n\n if (this.editTarget) {\n /* editTarget이 새로 설정되지 않았다면, 이후 기능이 실행된다. */\n return\n }\n\n /* target should be 'ox-grid-field' */\n var target = (e.target as Element).closest('ox-grid-field') as DataGridField\n var { column, record, rowIndex, columnIndex } = target || {}\n\n // if (!column) {\n // /* 여백 컬럼이 클릭된 경우 */\n // return\n // }\n\n // if (!isNaN(rowIndex) && !isNaN(columnIndex)) {\n // this.startEditTarget(rowIndex, columnIndex)\n // } else {\n // console.error('should not be here.')\n // return\n // }\n\n /* do column dblclick handler */\n if (column) {\n var { dblclick } = column.handlers\n dblclick && dblclick(this.columns, this.data, column, record, rowIndex, target, e)\n }\n\n /* do rows dblclick handler */\n var { dblclick: rowsDblclick } = this.config.rows.handlers\n rowsDblclick && rowsDblclick(this.columns, this.data, column, record, rowIndex, target, e)\n}\n"]}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
/**
|
2
|
+
* ox-grid-body 의 focus-change handler
|
3
|
+
*
|
4
|
+
* - handler의 this 는 ox-grid-body임.
|
5
|
+
*/
|
6
|
+
export async function dataGridBodyFocusChangeHandler(e) {
|
7
|
+
const { row: rowIndex, column: columnIndex } = e.detail;
|
8
|
+
const target = this.getFieldByIndex(rowIndex, columnIndex);
|
9
|
+
var { column, record } = target || {};
|
10
|
+
/* do column focus handler */
|
11
|
+
if (column) {
|
12
|
+
var { focus } = column.handlers;
|
13
|
+
focus && focus(this.columns, this.data, column, record, rowIndex, target, e);
|
14
|
+
}
|
15
|
+
/* do rows focus handler */
|
16
|
+
var { focus: rowsFocus } = this.config.rows.handlers;
|
17
|
+
rowsFocus && rowsFocus(this.columns, this.data, column, record, rowIndex, target, e);
|
18
|
+
}
|
19
|
+
//# sourceMappingURL=data-grid-body-focus-change-handler.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"data-grid-body-focus-change-handler.js","sourceRoot":"","sources":["../../../../src/data-grid/event-handlers/data-grid-body-focus-change-handler.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAAqB,CAAQ;IAC/E,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,GAAI,CAAiB,CAAC,MAAM,CAAA;IAExE,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;IAE1D,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,EAAE,CAAA;IAErC,6BAA6B;IAC7B,IAAI,MAAM,EAAE,CAAC;QACX,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAA;QAC/B,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;IAC9E,CAAC;IAED,2BAA2B;IAC3B,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAA;IACpD,SAAS,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;AACtF,CAAC","sourcesContent":["import { DataGridBody } from '../data-grid-body.js'\n\n/**\n * ox-grid-body 의 focus-change handler\n *\n * - handler의 this 는 ox-grid-body임.\n */\nexport async function dataGridBodyFocusChangeHandler(this: DataGridBody, e: Event): Promise<void> {\n const { row: rowIndex, column: columnIndex } = (e as CustomEvent).detail\n\n const target = this.getFieldByIndex(rowIndex, columnIndex)\n\n var { column, record } = target || {}\n\n /* do column focus handler */\n if (column) {\n var { focus } = column.handlers\n focus && focus(this.columns, this.data, column, record, rowIndex, target, e)\n }\n\n /* do rows focus handler */\n var { focus: rowsFocus } = this.config.rows.handlers\n rowsFocus && rowsFocus(this.columns, this.data, column, record, rowIndex, target, e)\n}\n"]}
|