@operato/data-grist 0.2.28 → 0.2.34
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 +58 -0
- package/custom-elements.json +200 -186
- package/dist/src/configure/column-builder.d.ts +1 -1
- package/dist/src/configure/column-builder.js.map +1 -1
- package/dist/src/configure/config-builder.d.ts +1 -1
- package/dist/src/configure/config-builder.js.map +1 -1
- package/dist/src/configure/imex-option-builder.d.ts +1 -1
- package/dist/src/configure/imex-option-builder.js.map +1 -1
- package/dist/src/configure/list-option-builder.d.ts +1 -1
- package/dist/src/configure/list-option-builder.js +1 -1
- package/dist/src/configure/list-option-builder.js.map +1 -1
- package/dist/src/configure/rows-option-builder.d.ts +1 -1
- package/dist/src/configure/rows-option-builder.js.map +1 -1
- package/dist/src/configure/zero-config.d.ts +21 -0
- package/dist/src/configure/{config-types.js → zero-config.js} +1 -1
- package/dist/src/configure/zero-config.js.map +1 -0
- package/dist/src/data-card/data-card-field.d.ts +1 -1
- package/dist/src/data-card/data-card-field.js +2 -2
- package/dist/src/data-card/data-card-field.js.map +1 -1
- package/dist/src/data-card/data-card-gutter-menu.js +1 -1
- package/dist/src/data-card/data-card-gutter-menu.js.map +1 -1
- package/dist/src/data-card/data-card-gutter.js +2 -2
- package/dist/src/data-card/data-card-gutter.js.map +1 -1
- package/dist/src/data-card/data-card.d.ts +1 -1
- package/dist/src/data-card/data-card.js +2 -2
- package/dist/src/data-card/data-card.js.map +1 -1
- package/dist/src/data-card/event-handlers/record-card-click-handler.js.map +1 -1
- package/dist/src/data-card/event-handlers/record-card-dblclick-handler.js.map +1 -1
- package/dist/src/data-card/record-card.d.ts +1 -1
- package/dist/src/data-card/record-card.js +2 -2
- package/dist/src/data-card/record-card.js.map +1 -1
- package/dist/src/data-consumer.d.ts +1 -1
- package/dist/src/data-consumer.js.map +1 -1
- package/dist/src/data-grid/data-grid-body.d.ts +1 -1
- package/dist/src/data-grid/data-grid-body.js +5 -5
- package/dist/src/data-grid/data-grid-body.js.map +1 -1
- package/dist/src/data-grid/data-grid-field.d.ts +1 -1
- package/dist/src/data-grid/data-grid-field.js +2 -2
- package/dist/src/data-grid/data-grid-field.js.map +1 -1
- package/dist/src/data-grid/data-grid-footer.d.ts +1 -1
- package/dist/src/data-grid/data-grid-footer.js +2 -2
- package/dist/src/data-grid/data-grid-footer.js.map +1 -1
- package/dist/src/data-grid/data-grid-header.d.ts +1 -1
- package/dist/src/data-grid/data-grid-header.js +2 -2
- package/dist/src/data-grid/data-grid-header.js.map +1 -1
- package/dist/src/data-grid/data-grid.d.ts +1 -1
- package/dist/src/data-grid/data-grid.js +1 -1
- package/dist/src/data-grid/data-grid.js.map +1 -1
- package/dist/src/data-grist.d.ts +2 -2
- package/dist/src/data-grist.js +6 -6
- package/dist/src/data-grist.js.map +1 -1
- package/dist/src/data-list/data-list-field.d.ts +1 -1
- package/dist/src/data-list/data-list-field.js +2 -2
- package/dist/src/data-list/data-list-field.js.map +1 -1
- package/dist/src/data-list/data-list-gutter.js +2 -2
- package/dist/src/data-list/data-list-gutter.js.map +1 -1
- package/dist/src/data-list/data-list.d.ts +1 -1
- package/dist/src/data-list/data-list.js +1 -1
- package/dist/src/data-list/data-list.js.map +1 -1
- package/dist/src/data-list/event-handlers/record-partial-click-handler.js.map +1 -1
- package/dist/src/data-list/event-handlers/record-partial-dblclick-handler.js.map +1 -1
- package/dist/src/data-list/event-handlers/record-partial-long-press-handler.js.map +1 -1
- package/dist/src/data-list/record-partial.d.ts +1 -1
- package/dist/src/data-list/record-partial.js +2 -2
- package/dist/src/data-list/record-partial.js.map +1 -1
- package/dist/src/data-provider.d.ts +1 -1
- package/dist/src/data-provider.js +1 -1
- package/dist/src/data-provider.js.map +1 -1
- package/dist/src/data-report/data-report-body.d.ts +1 -1
- package/dist/src/data-report/data-report-body.js +3 -3
- package/dist/src/data-report/data-report-body.js.map +1 -1
- package/dist/src/data-report/data-report-component.d.ts +1 -1
- package/dist/src/data-report/data-report-component.js +1 -1
- package/dist/src/data-report/data-report-component.js.map +1 -1
- package/dist/src/data-report/data-report-field.d.ts +1 -1
- package/dist/src/data-report/data-report-field.js +2 -2
- package/dist/src/data-report/data-report-field.js.map +1 -1
- package/dist/src/data-report/data-report-header.js +3 -3
- package/dist/src/data-report/data-report-header.js.map +1 -1
- package/dist/src/data-report.d.ts +1 -1
- package/dist/src/data-report.js +1 -1
- package/dist/src/data-report.js.map +1 -1
- package/dist/src/editors/input-editors.d.ts +1 -1
- package/dist/src/editors/input-editors.js +2 -2
- package/dist/src/editors/input-editors.js.map +1 -1
- package/dist/src/editors/registry.d.ts +1 -1
- package/dist/src/editors/registry.js.map +1 -1
- package/dist/src/gutters/gutter-button.js.map +1 -1
- package/dist/src/gutters/gutter-dirty.d.ts +1 -1
- package/dist/src/gutters/gutter-dirty.js +1 -1
- package/dist/src/gutters/gutter-dirty.js.map +1 -1
- package/dist/src/gutters/gutter-row-selector.js.map +1 -1
- package/dist/src/gutters/gutter-sequence.js.map +1 -1
- package/dist/src/gutters/registry.d.ts +1 -1
- package/dist/src/gutters/registry.js.map +1 -1
- package/dist/src/handlers/record-view-handler.d.ts +1 -1
- package/dist/src/handlers/record-view-handler.js.map +1 -1
- package/dist/src/handlers/registry.d.ts +1 -1
- package/dist/src/handlers/registry.js.map +1 -1
- package/dist/src/handlers/select-row-toggle.d.ts +1 -1
- package/dist/src/handlers/select-row-toggle.js.map +1 -1
- package/dist/src/handlers/select-row.d.ts +1 -1
- package/dist/src/handlers/select-row.js.map +1 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/record-view/record-view-body.d.ts +1 -1
- package/dist/src/record-view/record-view-body.js +2 -2
- package/dist/src/record-view/record-view-body.js.map +1 -1
- package/dist/src/record-view/record-view.d.ts +1 -1
- package/dist/src/record-view/record-view.js +2 -2
- package/dist/src/record-view/record-view.js.map +1 -1
- package/dist/src/renderers/boolean-renderer.d.ts +1 -1
- package/dist/src/renderers/boolean-renderer.js.map +1 -1
- package/dist/src/renderers/color-renderer.d.ts +1 -1
- package/dist/src/renderers/color-renderer.js.map +1 -1
- package/dist/src/renderers/date-renderer.d.ts +1 -1
- package/dist/src/renderers/date-renderer.js.map +1 -1
- package/dist/src/renderers/image-renderer.d.ts +1 -1
- package/dist/src/renderers/image-renderer.js.map +1 -1
- package/dist/src/renderers/json5-renderer.d.ts +1 -1
- package/dist/src/renderers/json5-renderer.js.map +1 -1
- package/dist/src/renderers/link-renderer.d.ts +1 -1
- package/dist/src/renderers/link-renderer.js.map +1 -1
- package/dist/src/renderers/password-renderer.d.ts +1 -1
- package/dist/src/renderers/password-renderer.js.map +1 -1
- package/dist/src/renderers/progress-renderer.d.ts +1 -1
- package/dist/src/renderers/progress-renderer.js +1 -1
- package/dist/src/renderers/progress-renderer.js.map +1 -1
- package/dist/src/renderers/registry.d.ts +1 -1
- package/dist/src/renderers/registry.js.map +1 -1
- package/dist/src/renderers/select-renderer.d.ts +1 -1
- package/dist/src/renderers/select-renderer.js.map +1 -1
- package/dist/src/renderers/text-renderer.d.ts +1 -1
- package/dist/src/renderers/text-renderer.js.map +1 -1
- package/dist/src/{configure/config-types.d.ts → types.d.ts} +0 -20
- package/dist/src/types.js +2 -0
- package/dist/src/types.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +7 -7
- package/src/configure/column-builder.ts +1 -1
- package/src/configure/config-builder.ts +1 -1
- package/src/configure/imex-option-builder.ts +1 -1
- package/src/configure/list-option-builder.ts +2 -1
- package/src/configure/rows-option-builder.ts +1 -1
- package/src/configure/zero-config.ts +75 -0
- package/src/data-card/data-card-field.ts +3 -3
- package/src/data-card/data-card-gutter-menu.ts +2 -3
- package/src/data-card/data-card-gutter.ts +3 -3
- package/src/data-card/data-card.ts +3 -2
- package/src/data-card/event-handlers/record-card-click-handler.ts +2 -1
- package/src/data-card/event-handlers/record-card-dblclick-handler.ts +2 -1
- package/src/data-card/record-card.ts +3 -2
- package/src/data-consumer.ts +1 -1
- package/src/data-grid/data-grid-body.ts +6 -5
- package/src/data-grid/data-grid-field.ts +3 -2
- package/src/data-grid/data-grid-footer.ts +3 -3
- package/src/data-grid/data-grid-header.ts +4 -11
- package/src/data-grid/data-grid.ts +2 -9
- package/src/data-grist.ts +10 -10
- package/src/data-list/data-list-field.ts +3 -3
- package/src/data-list/data-list-gutter.ts +3 -3
- package/src/data-list/data-list.ts +2 -1
- package/src/data-list/event-handlers/record-partial-click-handler.ts +2 -1
- package/src/data-list/event-handlers/record-partial-dblclick-handler.ts +2 -1
- package/src/data-list/event-handlers/record-partial-long-press-handler.ts +2 -1
- package/src/data-list/record-partial.ts +3 -2
- package/src/data-provider.ts +2 -3
- package/src/data-report/data-report-body.ts +4 -3
- package/src/data-report/data-report-component.ts +2 -1
- package/src/data-report/data-report-field.ts +3 -3
- package/src/data-report/data-report-header.ts +4 -3
- package/src/data-report.ts +2 -9
- package/src/editors/input-editors.ts +3 -2
- package/src/editors/registry.ts +1 -1
- package/src/gutters/gutter-button.ts +1 -1
- package/src/gutters/gutter-dirty.ts +2 -3
- package/src/gutters/gutter-row-selector.ts +1 -1
- package/src/gutters/gutter-sequence.ts +1 -1
- package/src/gutters/registry.ts +1 -1
- package/src/handlers/record-view-handler.ts +2 -2
- package/src/handlers/registry.ts +1 -1
- package/src/handlers/select-row-toggle.ts +2 -1
- package/src/handlers/select-row.ts +2 -1
- package/src/index.ts +1 -0
- package/src/record-view/record-view-body.ts +3 -2
- package/src/record-view/record-view.ts +3 -2
- package/src/renderers/boolean-renderer.ts +1 -1
- package/src/renderers/color-renderer.ts +1 -1
- package/src/renderers/date-renderer.ts +1 -1
- package/src/renderers/image-renderer.ts +1 -1
- package/src/renderers/json5-renderer.ts +1 -1
- package/src/renderers/link-renderer.ts +1 -1
- package/src/renderers/password-renderer.ts +1 -1
- package/src/renderers/progress-renderer.ts +2 -2
- package/src/renderers/registry.ts +1 -1
- package/src/renderers/select-renderer.ts +1 -1
- package/src/renderers/text-renderer.ts +1 -1
- package/src/{configure/config-types.ts → types.ts} +0 -62
- package/dist/src/configure/config-types.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-report-header.js","sourceRoot":"","sources":["../../../src/data-report/data-report-header.ts"],"names":[],"mappings":"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","sourcesContent":["import { css, html, LitElement } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport throttle from 'lodash-es/throttle'\n\nimport { ColumnConfig, GristConfig, GristData, SortersConfig, ZERO_CONFIG, ZERO_DATA } from '../configure/config-types'\nimport { supportsPassive } from '../utils'\n\n@customElement('ox-report-header')\nclass DataReportHeader extends LitElement {\n static styles = [\n css`\n :host {\n display: grid;\n grid-template-columns: var(--report-template-columns);\n\n overflow: hidden;\n }\n\n div {\n display: flex;\n\n white-space: nowrap;\n overflow: hidden;\n background-color: var(--report-header-background-color, gray);\n border: 1px solid var(--report-header-border-color);\n border-width: 1px 1px 1px 0;\n padding: var(--report-header-padding);\n\n text-overflow: ellipsis;\n text-align: center;\n font-size: var(--report-header-fontsize, 1em);\n color: var(--report-header-color);\n }\n\n span {\n white-space: nowrap;\n overflow: hidden;\n\n text-align: center;\n }\n\n span[title] {\n flex: 1;\n text-overflow: ellipsis;\n font: var(--report-header-font);\n color: var(--report-header-color);\n text-transform: capitalize;\n }\n\n span[sorter] {\n padding: 0;\n border: 0;\n font-size: 10px;\n }\n\n span[splitter] {\n cursor: col-resize;\n }\n\n @media print {\n :host {\n grid-template-columns: var(--report-template-print-columns);\n }\n }\n `\n ]\n\n @property({ type: Object }) config: GristConfig = ZERO_CONFIG\n @property({ type: Array }) columns: ColumnConfig[] = []\n @property({ type: Object }) data: GristData = ZERO_DATA\n @property({ type: Array }) private _sorters?: SortersConfig\n\n private throttledNotifier?: (idx: number, width: number) => void\n\n _onWheelEvent(e: WheelEvent) {\n var delta = Math.max(-1, Math.min(1, e.deltaY || 0))\n this.scrollLeft = Math.max(0, this.scrollLeft - delta * 40)\n\n supportsPassive || e.preventDefault()\n }\n\n firstUpdated() {\n this.addEventListener('wheel', this._onWheelEvent.bind(this), supportsPassive ? { passive: true } : false)\n }\n\n updated(changed: any) {\n if (changed.has('config')) {\n this._sorters = this.config.sorters || []\n }\n }\n\n render() {\n var columns = this.columns || []\n\n return html`\n ${columns.map((column, idx) =>\n !column.hidden\n ? html`\n <div @dragstart=${(e: MouseEvent) => this._dragStart(e, idx)}>\n <span title @click=${(e: Event) => this._changeSort(column)}>${this._renderHeader(column)} </span>\n\n ${column.sortable\n ? html`\n <span sorter @click=${(e: Event) => this._changeSort(column)}>\n ${this._renderSortHeader(column)}\n </span>\n `\n : html``}\n ${column.resizable !== false ? html` <span splitter draggable=\"true\"> </span> ` : html``}\n </div>\n `\n : html``\n )}\n\n <div></div>\n `\n }\n\n _renderHeader(column: ColumnConfig) {\n var { renderer } = column.header || {}\n var title = renderer.call(this, column)\n\n return html` ${title} `\n }\n\n _renderSortHeader(column: ColumnConfig) {\n if (column.hidden) {\n return html``\n }\n\n var sorters = this._sorters || []\n\n var sorter = sorters.find(sorter => column.type !== 'gutter' && column.name == sorter.name)\n if (!sorter) {\n return html``\n }\n\n if (sorters.length > 1) {\n var rank = sorters.indexOf(sorter) + 1\n return sorter.desc ? html` ▼<sub>${rank}</sub> ` : html` ▲<sub>${rank}</sub> `\n } else {\n return sorter.desc ? html` ▼ ` : html` ▲ `\n }\n }\n\n _changeSort(column: ColumnConfig) {\n if (!column.sortable) {\n return\n }\n\n var sorters = [...(this._sorters || [])]\n\n var idx = sorters.findIndex(sorter => sorter.name == column.name)\n if (idx !== -1) {\n let sorter = sorters[idx]\n if (sorter.desc) {\n sorters.splice(idx, 1)\n } else {\n sorter.desc = true\n }\n } else {\n var sorter = {\n name: column.name\n }\n\n sorters.push(sorter)\n }\n\n this._sorters = sorters\n\n this.dispatchEvent(\n new CustomEvent('sorters-change', {\n bubbles: true,\n composed: true,\n detail: this._sorters\n })\n )\n }\n\n _notifyWidthChange(idx: number, width: number) {\n if (!this.throttledNotifier) {\n this.throttledNotifier = throttle((idx, width) => {\n this.dispatchEvent(\n new CustomEvent('column-width-change', {\n bubbles: true,\n composed: true,\n detail: {\n idx,\n width\n }\n })\n )\n }, 100)\n }\n\n this.throttledNotifier(idx, width)\n }\n\n _dragStart(e: MouseEvent, idx: number) {\n var target = e.currentTarget as HTMLElement\n var startX = e.offsetX\n\n var dragHandler = ((e: MouseEvent) => {\n let column = this.columns[idx]\n\n let width = Math.max(0, Number(column.width) + e.offsetX - startX)\n if (width == 0) {\n /* CLARIFY-ME 왜 마지막 이벤트의 offsetX로 음수 값이 오는가 */\n return\n }\n\n this._notifyWidthChange(idx, width)\n }).bind(this)\n\n var dragEndHandler = ((e: MouseEvent) => {\n target.removeEventListener('drag', dragHandler)\n target.removeEventListener('dragend', dragEndHandler)\n\n dragHandler(e)\n }).bind(this)\n\n target.addEventListener('drag', dragHandler)\n target.addEventListener('dragend', dragEndHandler)\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"data-report-header.js","sourceRoot":"","sources":["../../../src/data-report/data-report-header.ts"],"names":[],"mappings":"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","sourcesContent":["import { ColumnConfig, GristConfig, GristData, SortersConfig } from '../types'\nimport { LitElement, css, html } from 'lit'\nimport { ZERO_CONFIG, ZERO_DATA } from '../configure/zero-config'\nimport { customElement, property } from 'lit/decorators.js'\n\nimport { supportsPassive } from '../utils'\nimport throttle from 'lodash-es/throttle'\n\n@customElement('ox-report-header')\nclass DataReportHeader extends LitElement {\n static styles = [\n css`\n :host {\n display: grid;\n grid-template-columns: var(--report-template-columns);\n\n overflow: hidden;\n }\n\n div {\n display: flex;\n\n white-space: nowrap;\n overflow: hidden;\n background-color: var(--report-header-background-color, gray);\n border: 1px solid var(--report-header-border-color);\n border-width: 1px 1px 1px 0;\n padding: var(--report-header-padding);\n\n text-overflow: ellipsis;\n text-align: center;\n font-size: var(--report-header-fontsize, 1em);\n color: var(--report-header-color);\n }\n\n span {\n white-space: nowrap;\n overflow: hidden;\n\n text-align: center;\n }\n\n span[title] {\n flex: 1;\n text-overflow: ellipsis;\n font: var(--report-header-font);\n color: var(--report-header-color);\n text-transform: capitalize;\n }\n\n span[sorter] {\n padding: 0;\n border: 0;\n font-size: 10px;\n }\n\n span[splitter] {\n cursor: col-resize;\n }\n\n @media print {\n :host {\n grid-template-columns: var(--report-template-print-columns);\n }\n }\n `\n ]\n\n @property({ type: Object }) config: GristConfig = ZERO_CONFIG\n @property({ type: Array }) columns: ColumnConfig[] = []\n @property({ type: Object }) data: GristData = ZERO_DATA\n @property({ type: Array }) private _sorters?: SortersConfig\n\n private throttledNotifier?: (idx: number, width: number) => void\n\n _onWheelEvent(e: WheelEvent) {\n var delta = Math.max(-1, Math.min(1, e.deltaY || 0))\n this.scrollLeft = Math.max(0, this.scrollLeft - delta * 40)\n\n supportsPassive || e.preventDefault()\n }\n\n firstUpdated() {\n this.addEventListener('wheel', this._onWheelEvent.bind(this), supportsPassive ? { passive: true } : false)\n }\n\n updated(changed: any) {\n if (changed.has('config')) {\n this._sorters = this.config.sorters || []\n }\n }\n\n render() {\n var columns = this.columns || []\n\n return html`\n ${columns.map((column, idx) =>\n !column.hidden\n ? html`\n <div @dragstart=${(e: MouseEvent) => this._dragStart(e, idx)}>\n <span title @click=${(e: Event) => this._changeSort(column)}>${this._renderHeader(column)} </span>\n\n ${column.sortable\n ? html`\n <span sorter @click=${(e: Event) => this._changeSort(column)}>\n ${this._renderSortHeader(column)}\n </span>\n `\n : html``}\n ${column.resizable !== false ? html` <span splitter draggable=\"true\"> </span> ` : html``}\n </div>\n `\n : html``\n )}\n\n <div></div>\n `\n }\n\n _renderHeader(column: ColumnConfig) {\n var { renderer } = column.header || {}\n var title = renderer.call(this, column)\n\n return html` ${title} `\n }\n\n _renderSortHeader(column: ColumnConfig) {\n if (column.hidden) {\n return html``\n }\n\n var sorters = this._sorters || []\n\n var sorter = sorters.find(sorter => column.type !== 'gutter' && column.name == sorter.name)\n if (!sorter) {\n return html``\n }\n\n if (sorters.length > 1) {\n var rank = sorters.indexOf(sorter) + 1\n return sorter.desc ? html` ▼<sub>${rank}</sub> ` : html` ▲<sub>${rank}</sub> `\n } else {\n return sorter.desc ? html` ▼ ` : html` ▲ `\n }\n }\n\n _changeSort(column: ColumnConfig) {\n if (!column.sortable) {\n return\n }\n\n var sorters = [...(this._sorters || [])]\n\n var idx = sorters.findIndex(sorter => sorter.name == column.name)\n if (idx !== -1) {\n let sorter = sorters[idx]\n if (sorter.desc) {\n sorters.splice(idx, 1)\n } else {\n sorter.desc = true\n }\n } else {\n var sorter = {\n name: column.name\n }\n\n sorters.push(sorter)\n }\n\n this._sorters = sorters\n\n this.dispatchEvent(\n new CustomEvent('sorters-change', {\n bubbles: true,\n composed: true,\n detail: this._sorters\n })\n )\n }\n\n _notifyWidthChange(idx: number, width: number) {\n if (!this.throttledNotifier) {\n this.throttledNotifier = throttle((idx, width) => {\n this.dispatchEvent(\n new CustomEvent('column-width-change', {\n bubbles: true,\n composed: true,\n detail: {\n idx,\n width\n }\n })\n )\n }, 100)\n }\n\n this.throttledNotifier(idx, width)\n }\n\n _dragStart(e: MouseEvent, idx: number) {\n var target = e.currentTarget as HTMLElement\n var startX = e.offsetX\n\n var dragHandler = ((e: MouseEvent) => {\n let column = this.columns[idx]\n\n let width = Math.max(0, Number(column.width) + e.offsetX - startX)\n if (width == 0) {\n /* CLARIFY-ME 왜 마지막 이벤트의 offsetX로 음수 값이 오는가 */\n return\n }\n\n this._notifyWidthChange(idx, width)\n }).bind(this)\n\n var dragEndHandler = ((e: MouseEvent) => {\n target.removeEventListener('drag', dragHandler)\n target.removeEventListener('dragend', dragEndHandler)\n\n dragHandler(e)\n }).bind(this)\n\n target.addEventListener('drag', dragHandler)\n target.addEventListener('dragend', dragEndHandler)\n }\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import './data-report/data-report-component';
|
|
2
|
-
import { GristConfig, GristData, GristRecord } from './
|
|
2
|
+
import { GristConfig, GristData, GristRecord } from './types';
|
|
3
3
|
import { LitElement, PropertyValues } from 'lit';
|
|
4
4
|
import { DataConsumer } from './data-consumer';
|
|
5
5
|
import { DataReportComponent } from './data-report/data-report-component';
|
package/dist/src/data-report.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
2
|
import './data-report/data-report-component';
|
|
3
|
-
import { ZERO_CONFIG, ZERO_DATA, ZERO_PAGINATION } from './configure/config-types';
|
|
4
3
|
import { LitElement, css, html } from 'lit';
|
|
5
4
|
import { ScrollbarStyles, SpinnerStyles } from '@operato/styles';
|
|
5
|
+
import { ZERO_CONFIG, ZERO_DATA, ZERO_PAGINATION } from './configure/zero-config';
|
|
6
6
|
import { customElement, property, query, queryAsync, state } from 'lit/decorators.js';
|
|
7
7
|
import { DataProvider } from './data-provider';
|
|
8
8
|
import { buildColumn } from './configure/column-builder';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-report.js","sourceRoot":"","sources":["../../src/data-report.ts"],"names":[],"mappings":"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","sourcesContent":["import './data-report/data-report-component'\n\nimport {\n GristConfig,\n GristData,\n GristRecord,\n GroupConfig,\n ZERO_CONFIG,\n ZERO_DATA,\n ZERO_PAGINATION\n} from './configure/config-types'\nimport { LitElement, PropertyValues, css, html } from 'lit'\nimport { ScrollbarStyles, SpinnerStyles } from '@operato/styles'\nimport { customElement, property, query, queryAsync, state } from 'lit/decorators.js'\n\nimport { DataConsumer } from './data-consumer'\nimport { DataProvider } from './data-provider'\nimport { DataReportComponent } from './data-report/data-report-component'\nimport { buildColumn } from './configure/column-builder'\nimport { buildConfig } from './configure/config-builder'\nimport i18next from 'i18next'\nimport { pulltorefresh } from '@operato/pull-to-refresh'\n\n@customElement('ox-report')\nexport class DataReport extends LitElement implements DataConsumer {\n static styles = [\n ScrollbarStyles,\n SpinnerStyles,\n css`\n :host {\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n background-color: var(--report-background-color);\n padding: var(--report-padding);\n min-height: 120px;\n\n overflow: hidden;\n\n /* for pulltorefresh controller */\n position: relative;\n }\n\n #wrap {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: auto;\n }\n\n ox-report-component {\n flex: 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 ]\n\n @property() config: any\n @property() data: GristData = ZERO_DATA\n @property() fetchHandler: any\n @property() fetchOptions: any\n @property({ type: Boolean, attribute: 'auto-fetch' }) autoFetch: boolean = false\n\n @state() _data: GristData = ZERO_DATA\n @state() _config: GristConfig = ZERO_CONFIG\n @state() private _showSpinner: boolean = false\n\n private dataProvider?: DataProvider\n private pulltorefreshHandle?: any\n\n @query('#report') report!: DataReportComponent\n @queryAsync('#wrap') private wrap!: Promise<HTMLElement>\n\n connectedCallback() {\n super.connectedCallback()\n\n this.dataProvider = new DataProvider(this)\n }\n\n disconnectedCallback() {\n super.disconnectedCallback()\n\n this.resetPullToRefresh()\n this.dataProvider?.dispose()\n }\n\n private resetPullToRefresh() {\n if (this.pulltorefreshHandle) {\n this.pulltorefreshHandle()\n delete this.pulltorefreshHandle\n }\n }\n\n private async setPullToRefresh() {\n this.resetPullToRefresh()\n if (this.fetchHandler) {\n this.pulltorefreshHandle = pulltorefresh({\n container: await this.wrap,\n scrollable: this.report.pullToRefreshTarget,\n refresh: () => {\n return this.fetch(true)\n }\n })\n }\n }\n\n async firstUpdated() {\n if (this.fetchHandler && this.autoFetch) {\n await this.requestUpdate()\n this.fetch(true)\n }\n }\n\n render() {\n var oops = !this._showSpinner && (!this._data || !this._data.records || this._data.records.length == 0)\n\n return html`\n ${oops\n ? html`\n <ox-empty-note\n icon=\"list\"\n title=\"EMPTY LIST\"\n description=\"There are no records to be shown\"\n ></ox-empty-note>\n `\n : html``}\n\n <div id=\"wrap\">\n <ox-report-component id=\"report\" .config=${this._config} .data=${this._data}> </ox-report-component>\n </div>\n\n <div id=\"spinner\" ?show=${this._showSpinner}></div>\n `\n }\n\n async fetch(reset = true) {\n if (!this._config) {\n /* avoid to be here */\n console.warn('report is not configured yet.')\n return\n }\n\n if (reset) {\n /*\n * scroll 의 현재위치에 의해서 scroll 이벤트가 발생할 수 있으므로, 이를 방지하기 위해서 스크롤의 위치를 TOP으로 옮긴다.\n * (scroll 이 첫페이지 크기 이상으로 내려가 있는 경우, 첫페이지부터 다시 표시하는 경우에, scroll 이벤트가 발생한다.)\n */\n this.report.scrollTop = 0\n }\n\n if (this.dataProvider) {\n await this.dataProvider.attach(reset)\n }\n }\n\n async updated(changes: PropertyValues<this>) {\n if (changes.has('config')) {\n this._config = buildConfig({\n ...this.config\n })\n\n this.dataProvider && (this.dataProvider.sorters = this._config.sorters)\n this.fetch()\n }\n\n if (changes.has('fetchHandler')) {\n this.dataProvider && (this.dataProvider.fetchHandler = this.fetchHandler)\n await this.setPullToRefresh()\n }\n\n if (changes.has('fetchOptions')) {\n this.dataProvider && (this.dataProvider.fetchOptions = this.fetchOptions)\n }\n\n if (changes.has('data')) {\n this.reset()\n }\n }\n\n get dirtyData() {\n return (this.report as any)?.data || {}\n }\n\n showSpinner() {\n this._showSpinner = true\n }\n\n hideSpinner() {\n this._showSpinner = false\n }\n\n focus() {\n super.focus()\n\n this.report?.focus()\n }\n\n /**\n * Forced internal data to be reflected on the screen\n * Data changing through a normal method is automatically reflected on the screen, so it is a method that does not need to be used in general.\nTherefore, it will be deprecated.\n * @deprecated\n * @method\n */\n refresh() {\n this.requestUpdate()\n }\n\n reset() {\n var {\n limit = ZERO_PAGINATION.limit,\n page = ZERO_PAGINATION.page,\n total = ZERO_PAGINATION.total,\n records = []\n } = this.data\n\n this._data = {\n limit,\n page,\n total,\n records: this.sortByGroups(records).map((record, idx) => {\n return {\n ...record,\n __seq__: (page - 1) * limit + idx + 1\n }\n })\n }\n }\n\n sortByGroups(sortedRecords: GristRecord[]) {\n var { groups, totals } = this._config.rows\n var { columns } = this._config\n\n var getColumnIndex = (name: string | number) =>\n columns.filter(column => !column.hidden).findIndex(column => column.name == name)\n\n var groupFieldsForTotalRecord: GroupConfig[] = [\n /* add a group total record to the front. */\n {\n column: '*',\n title: i18next.exists('text.ox-data-report-grand-total')\n ? i18next.t('text.ox-data-report-grand-total')\n : 'grand total',\n align: 'right',\n rowspan: 1\n },\n ...groups\n ].map(group => {\n return {\n ...group,\n titleColumn: buildColumn({\n record: {\n align: group.align || 'right'\n }\n })\n }\n })\n let lastGroupValues\n let reportRecords = []\n let totalicRecords: { [idx: string]: GroupConfig }[] = sortedRecords[0]\n ? (() => {\n /* 처음 만드는 total records */\n let record = sortedRecords[0]\n let totalBase = totals.reduce((base, field) => {\n base[field] = record[field]\n return base\n }, {} as { [totalField: string]: number })\n let groupBase = {} as { [idx: string]: GroupConfig }\n\n return groupFieldsForTotalRecord.map((group, idx) => {\n groupBase[group.column] = record[group.column]\n\n return {\n ...totalBase,\n ...groupBase,\n [group.column]: record[group.column],\n '*': {\n titleColumn: group.titleColumn,\n value: group.title,\n groupName: group.column,\n /* 이 레코드 그룹에 해당하는 첫번째 레코드의 행 번호(1 부터 시작하는 번호임.) - grid layout의 row 지정에 사용됨. */\n row: 1,\n rowspan: 1,\n /* 이 레코드 그룹의 컬럼에 해당하는 열 번호(1 부터 시작하는 번호임.) - grid layout의 column 지정에 사용됨. */\n column:\n group.column !== '*'\n ? getColumnIndex(group.column) + 1\n : getColumnIndex(groups[0].column) + 1 /* grand total 은 첫번째 그룹 컬럼을 사용한다. */,\n colspan:\n group.column !== '*' ? groupFieldsForTotalRecord.length - idx : groupFieldsForTotalRecord.length - 1\n }\n }\n })\n })()\n : [\n {\n '*': {\n titleColumn: groupFieldsForTotalRecord[0].titleColumn,\n value: i18next.exists('text.ox-data-report-grand-total')\n ? i18next.t('text.ox-data-report-grand-total')\n : 'grand total',\n groupName: '*',\n row: 1,\n rowspan: 1,\n column: 1,\n colspan: 0\n } as GroupConfig\n }\n ]\n\n var row = 0\n\n for (let record of sortedRecords) {\n let groupValues = groups.reduce((base, group) => {\n base[group.column] = record[group.column]\n return base\n }, {} as { [groupColumn: string]: string | number })\n let isSameGroupRecord = true\n let totalsStack = [] as { idx: string; record: any }[]\n let groupBase = {} as { [idx: string]: any }\n\n row++\n\n if (lastGroupValues) {\n for (let idx in groupFieldsForTotalRecord) {\n let group = groupFieldsForTotalRecord[idx]\n let totalRecord: {\n [idx: string]: GroupConfig | number\n } = totalicRecords[idx]\n\n groupBase[group.column] = record[group.column]\n\n if (\n group.column == '*' ||\n (isSameGroupRecord && groupValues[group.column] === lastGroupValues[group.column])\n ) {\n for (let field of totals) {\n totalRecord[field] += record[field]\n }\n\n ;(totalRecord['*'] as GroupConfig).rowspan++\n\n continue\n }\n\n /* to avoid from floating point calculation problem */\n totals.forEach(field => {\n totalRecord[field] = Math.round((totalRecord[field] as number) * 100) / 100\n })\n\n isSameGroupRecord = false\n\n totalsStack.push({\n idx,\n record: totals.reduce(\n (sum, field) => {\n sum[field] = record[field]\n return sum\n },\n {\n ...groupBase,\n [group.column]: record[group.column],\n '*': {\n titleColumn: group.titleColumn,\n groupName: group.column,\n value: group.title,\n row,\n rowspan: 1,\n column: getColumnIndex(group.column) + 1,\n colspan: totalicRecords[idx]['*'].colspan\n }\n }\n )\n })\n }\n\n totalsStack\n .reverse()\n .map(({ record, idx }) => {\n reportRecords.push(totalicRecords[Number(idx)])\n totalicRecords[Number(idx)] = {}\n\n if (record['*'].value) {\n totalicRecords.forEach(record => record['*'] && record['*'].rowspan++)\n row++\n }\n\n return { record, idx }\n })\n .forEach(({ record, idx }) => {\n record['*'].row = row\n totalicRecords[Number(idx)] = record\n })\n }\n\n reportRecords.push(record)\n\n lastGroupValues = groupValues\n }\n\n /* 마지막 남은 토탈 레코드들을 추가한다. */\n var poped: any\n while ((poped = totalicRecords.pop())) {\n /* to avoid from floating point calculation problem */\n totals.forEach(field => {\n poped[field] = Math.round(poped[field] * 100) / 100\n })\n\n reportRecords.push(poped)\n if (poped['*'].value) {\n totalicRecords.forEach(record => record['*'].rowspan++)\n }\n }\n\n return reportRecords\n }\n\n checkDirties() {}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"data-report.js","sourceRoot":"","sources":["../../src/data-report.ts"],"names":[],"mappings":"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","sourcesContent":["import './data-report/data-report-component'\n\nimport { GristConfig, GristData, GristRecord, GroupConfig } from './types'\nimport { LitElement, PropertyValues, css, html } from 'lit'\nimport { ScrollbarStyles, SpinnerStyles } from '@operato/styles'\nimport { ZERO_CONFIG, ZERO_DATA, ZERO_PAGINATION } from './configure/zero-config'\nimport { customElement, property, query, queryAsync, state } from 'lit/decorators.js'\n\nimport { DataConsumer } from './data-consumer'\nimport { DataProvider } from './data-provider'\nimport { DataReportComponent } from './data-report/data-report-component'\nimport { buildColumn } from './configure/column-builder'\nimport { buildConfig } from './configure/config-builder'\nimport i18next from 'i18next'\nimport { pulltorefresh } from '@operato/pull-to-refresh'\n\n@customElement('ox-report')\nexport class DataReport extends LitElement implements DataConsumer {\n static styles = [\n ScrollbarStyles,\n SpinnerStyles,\n css`\n :host {\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n background-color: var(--report-background-color);\n padding: var(--report-padding);\n min-height: 120px;\n\n overflow: hidden;\n\n /* for pulltorefresh controller */\n position: relative;\n }\n\n #wrap {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: auto;\n }\n\n ox-report-component {\n flex: 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 ]\n\n @property() config: any\n @property() data: GristData = ZERO_DATA\n @property() fetchHandler: any\n @property() fetchOptions: any\n @property({ type: Boolean, attribute: 'auto-fetch' }) autoFetch: boolean = false\n\n @state() _data: GristData = ZERO_DATA\n @state() _config: GristConfig = ZERO_CONFIG\n @state() private _showSpinner: boolean = false\n\n private dataProvider?: DataProvider\n private pulltorefreshHandle?: any\n\n @query('#report') report!: DataReportComponent\n @queryAsync('#wrap') private wrap!: Promise<HTMLElement>\n\n connectedCallback() {\n super.connectedCallback()\n\n this.dataProvider = new DataProvider(this)\n }\n\n disconnectedCallback() {\n super.disconnectedCallback()\n\n this.resetPullToRefresh()\n this.dataProvider?.dispose()\n }\n\n private resetPullToRefresh() {\n if (this.pulltorefreshHandle) {\n this.pulltorefreshHandle()\n delete this.pulltorefreshHandle\n }\n }\n\n private async setPullToRefresh() {\n this.resetPullToRefresh()\n if (this.fetchHandler) {\n this.pulltorefreshHandle = pulltorefresh({\n container: await this.wrap,\n scrollable: this.report.pullToRefreshTarget,\n refresh: () => {\n return this.fetch(true)\n }\n })\n }\n }\n\n async firstUpdated() {\n if (this.fetchHandler && this.autoFetch) {\n await this.requestUpdate()\n this.fetch(true)\n }\n }\n\n render() {\n var oops = !this._showSpinner && (!this._data || !this._data.records || this._data.records.length == 0)\n\n return html`\n ${oops\n ? html`\n <ox-empty-note\n icon=\"list\"\n title=\"EMPTY LIST\"\n description=\"There are no records to be shown\"\n ></ox-empty-note>\n `\n : html``}\n\n <div id=\"wrap\">\n <ox-report-component id=\"report\" .config=${this._config} .data=${this._data}> </ox-report-component>\n </div>\n\n <div id=\"spinner\" ?show=${this._showSpinner}></div>\n `\n }\n\n async fetch(reset = true) {\n if (!this._config) {\n /* avoid to be here */\n console.warn('report is not configured yet.')\n return\n }\n\n if (reset) {\n /*\n * scroll 의 현재위치에 의해서 scroll 이벤트가 발생할 수 있으므로, 이를 방지하기 위해서 스크롤의 위치를 TOP으로 옮긴다.\n * (scroll 이 첫페이지 크기 이상으로 내려가 있는 경우, 첫페이지부터 다시 표시하는 경우에, scroll 이벤트가 발생한다.)\n */\n this.report.scrollTop = 0\n }\n\n if (this.dataProvider) {\n await this.dataProvider.attach(reset)\n }\n }\n\n async updated(changes: PropertyValues<this>) {\n if (changes.has('config')) {\n this._config = buildConfig({\n ...this.config\n })\n\n this.dataProvider && (this.dataProvider.sorters = this._config.sorters)\n this.fetch()\n }\n\n if (changes.has('fetchHandler')) {\n this.dataProvider && (this.dataProvider.fetchHandler = this.fetchHandler)\n await this.setPullToRefresh()\n }\n\n if (changes.has('fetchOptions')) {\n this.dataProvider && (this.dataProvider.fetchOptions = this.fetchOptions)\n }\n\n if (changes.has('data')) {\n this.reset()\n }\n }\n\n get dirtyData() {\n return (this.report as any)?.data || {}\n }\n\n showSpinner() {\n this._showSpinner = true\n }\n\n hideSpinner() {\n this._showSpinner = false\n }\n\n focus() {\n super.focus()\n\n this.report?.focus()\n }\n\n /**\n * Forced internal data to be reflected on the screen\n * Data changing through a normal method is automatically reflected on the screen, so it is a method that does not need to be used in general.\nTherefore, it will be deprecated.\n * @deprecated\n * @method\n */\n refresh() {\n this.requestUpdate()\n }\n\n reset() {\n var {\n limit = ZERO_PAGINATION.limit,\n page = ZERO_PAGINATION.page,\n total = ZERO_PAGINATION.total,\n records = []\n } = this.data\n\n this._data = {\n limit,\n page,\n total,\n records: this.sortByGroups(records).map((record, idx) => {\n return {\n ...record,\n __seq__: (page - 1) * limit + idx + 1\n }\n })\n }\n }\n\n sortByGroups(sortedRecords: GristRecord[]) {\n var { groups, totals } = this._config.rows\n var { columns } = this._config\n\n var getColumnIndex = (name: string | number) =>\n columns.filter(column => !column.hidden).findIndex(column => column.name == name)\n\n var groupFieldsForTotalRecord: GroupConfig[] = [\n /* add a group total record to the front. */\n {\n column: '*',\n title: i18next.exists('text.ox-data-report-grand-total')\n ? i18next.t('text.ox-data-report-grand-total')\n : 'grand total',\n align: 'right',\n rowspan: 1\n },\n ...groups\n ].map(group => {\n return {\n ...group,\n titleColumn: buildColumn({\n record: {\n align: group.align || 'right'\n }\n })\n }\n })\n let lastGroupValues\n let reportRecords = []\n let totalicRecords: { [idx: string]: GroupConfig }[] = sortedRecords[0]\n ? (() => {\n /* 처음 만드는 total records */\n let record = sortedRecords[0]\n let totalBase = totals.reduce((base, field) => {\n base[field] = record[field]\n return base\n }, {} as { [totalField: string]: number })\n let groupBase = {} as { [idx: string]: GroupConfig }\n\n return groupFieldsForTotalRecord.map((group, idx) => {\n groupBase[group.column] = record[group.column]\n\n return {\n ...totalBase,\n ...groupBase,\n [group.column]: record[group.column],\n '*': {\n titleColumn: group.titleColumn,\n value: group.title,\n groupName: group.column,\n /* 이 레코드 그룹에 해당하는 첫번째 레코드의 행 번호(1 부터 시작하는 번호임.) - grid layout의 row 지정에 사용됨. */\n row: 1,\n rowspan: 1,\n /* 이 레코드 그룹의 컬럼에 해당하는 열 번호(1 부터 시작하는 번호임.) - grid layout의 column 지정에 사용됨. */\n column:\n group.column !== '*'\n ? getColumnIndex(group.column) + 1\n : getColumnIndex(groups[0].column) + 1 /* grand total 은 첫번째 그룹 컬럼을 사용한다. */,\n colspan:\n group.column !== '*' ? groupFieldsForTotalRecord.length - idx : groupFieldsForTotalRecord.length - 1\n }\n }\n })\n })()\n : [\n {\n '*': {\n titleColumn: groupFieldsForTotalRecord[0].titleColumn,\n value: i18next.exists('text.ox-data-report-grand-total')\n ? i18next.t('text.ox-data-report-grand-total')\n : 'grand total',\n groupName: '*',\n row: 1,\n rowspan: 1,\n column: 1,\n colspan: 0\n } as GroupConfig\n }\n ]\n\n var row = 0\n\n for (let record of sortedRecords) {\n let groupValues = groups.reduce((base, group) => {\n base[group.column] = record[group.column]\n return base\n }, {} as { [groupColumn: string]: string | number })\n let isSameGroupRecord = true\n let totalsStack = [] as { idx: string; record: any }[]\n let groupBase = {} as { [idx: string]: any }\n\n row++\n\n if (lastGroupValues) {\n for (let idx in groupFieldsForTotalRecord) {\n let group = groupFieldsForTotalRecord[idx]\n let totalRecord: {\n [idx: string]: GroupConfig | number\n } = totalicRecords[idx]\n\n groupBase[group.column] = record[group.column]\n\n if (\n group.column == '*' ||\n (isSameGroupRecord && groupValues[group.column] === lastGroupValues[group.column])\n ) {\n for (let field of totals) {\n totalRecord[field] += record[field]\n }\n\n ;(totalRecord['*'] as GroupConfig).rowspan++\n\n continue\n }\n\n /* to avoid from floating point calculation problem */\n totals.forEach(field => {\n totalRecord[field] = Math.round((totalRecord[field] as number) * 100) / 100\n })\n\n isSameGroupRecord = false\n\n totalsStack.push({\n idx,\n record: totals.reduce(\n (sum, field) => {\n sum[field] = record[field]\n return sum\n },\n {\n ...groupBase,\n [group.column]: record[group.column],\n '*': {\n titleColumn: group.titleColumn,\n groupName: group.column,\n value: group.title,\n row,\n rowspan: 1,\n column: getColumnIndex(group.column) + 1,\n colspan: totalicRecords[idx]['*'].colspan\n }\n }\n )\n })\n }\n\n totalsStack\n .reverse()\n .map(({ record, idx }) => {\n reportRecords.push(totalicRecords[Number(idx)])\n totalicRecords[Number(idx)] = {}\n\n if (record['*'].value) {\n totalicRecords.forEach(record => record['*'] && record['*'].rowspan++)\n row++\n }\n\n return { record, idx }\n })\n .forEach(({ record, idx }) => {\n record['*'].row = row\n totalicRecords[Number(idx)] = record\n })\n }\n\n reportRecords.push(record)\n\n lastGroupValues = groupValues\n }\n\n /* 마지막 남은 토탈 레코드들을 추가한다. */\n var poped: any\n while ((poped = totalicRecords.pop())) {\n /* to avoid from floating point calculation problem */\n totals.forEach(field => {\n poped[field] = Math.round(poped[field] * 100) / 100\n })\n\n reportRecords.push(poped)\n if (poped['*'].value) {\n totalicRecords.forEach(record => record['*'].rowspan++)\n }\n }\n\n return reportRecords\n }\n\n checkDirties() {}\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { ColumnConfig, GristRecord } from '../types';
|
|
1
2
|
import { LitElement } from 'lit';
|
|
2
|
-
import { ColumnConfig, GristRecord } from '../configure/config-types';
|
|
3
3
|
import { DataGridField } from '../data-grid/data-grid-field';
|
|
4
4
|
export declare class InputEditor extends LitElement {
|
|
5
5
|
static styles: import("lit").CSSResult;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
|
-
import { css, html
|
|
2
|
+
import { LitElement, css, html } from 'lit';
|
|
3
|
+
import { ZERO_COLUMN, ZERO_RECORD } from '../configure/zero-config';
|
|
3
4
|
import { customElement, property, query } from 'lit/decorators.js';
|
|
4
|
-
import { ZERO_COLUMN, ZERO_RECORD } from '../configure/config-types';
|
|
5
5
|
const STYLE = css `
|
|
6
6
|
:host {
|
|
7
7
|
display: block;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-editors.js","sourceRoot":"","sources":["../../../src/editors/input-editors.ts"],"names":[],"mappings":"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","sourcesContent":["import { css, html, LitElement } from 'lit'\nimport { customElement, property, query } from 'lit/decorators.js'\n\nimport { ColumnConfig, GristRecord, ZERO_COLUMN, ZERO_RECORD } from '../configure/config-types'\nimport { DataGridField } from '../data-grid/data-grid-field'\n\nconst STYLE = css`\n :host {\n display: block;\n\n width: 100%;\n height: 100%;\n\n border: 0;\n background-color: transparent;\n }\n\n :host > * {\n display: block;\n\n width: 100%;\n height: 100%;\n\n border: 0;\n background-color: transparent;\n\n box-sizing: border-box;\n\n font-size: inherit;\n font-family: inherit;\n }\n\n :host > style {\n display: none;\n }\n\n :host > input[type='checkbox'] {\n width: initial;\n margin: auto;\n }\n input[type='checkbox'],\n input[type='radio'] {\n zoom: var(--grist-input-zoom);\n }\n *:focus {\n outline: none;\n }\n\n input[type='file'] {\n opacity: 0%;\n }\n\n @media screen and (max-width: 460px) {\n :host > * {\n border: initial;\n background-color: initial;\n }\n *:focus {\n outline: none;\n }\n }\n`\n\n@customElement('ox-input-editor')\nexport class InputEditor extends LitElement {\n static styles = STYLE\n\n @property({ type: Object }) value?: any\n @property({ type: Object }) column: ColumnConfig = ZERO_COLUMN\n @property({ type: Object }) record: GristRecord = ZERO_RECORD\n @property({ type: Number }) rowIndex?: number\n @property({ type: Object }) field?: DataGridField\n @property({ type: Number }) row?: number\n\n protected _dirtyValue?: any\n\n render() {\n return this.editorTemplate\n }\n\n get editor(): HTMLElement | null {\n return this.renderRoot.firstElementChild as HTMLElement\n }\n\n async firstUpdated() {\n this.renderRoot.addEventListener('change', this._onchange.bind(this))\n this.renderRoot.addEventListener('focusout', this._onfocusout.bind(this))\n this.renderRoot.addEventListener('click', this._onclick.bind(this))\n this.renderRoot.addEventListener('dblclick', this._ondblclick.bind(this))\n\n const align = this.column.record.align\n if (align) {\n this.style.textAlign = align\n this.style.textAlignLast = align /* for select */\n }\n\n const name = this.column.name || ''\n this.value = this._dirtyValue = this.formatForEditor(this.record[name])\n\n this.focus()\n await this.updateComplete\n this.select()\n }\n\n select() {\n if ((this.editor as HTMLInputElement)?.select) {\n return (this.editor as HTMLInputElement).select()\n }\n }\n\n focus() {\n this.editor?.focus()\n }\n\n formatForEditor(value: any): any {\n return value === undefined ? '' : value\n }\n\n formatFromEditor(e: Event): any {\n return (e.target as HTMLInputElement).value\n }\n\n _onfocusout() {\n if (this._dirtyValue !== this.value) {\n this.dispatchEvent(\n new CustomEvent('field-change', {\n bubbles: true,\n composed: true,\n detail: {\n before: this.value,\n after: this._dirtyValue,\n column: this.column,\n record: this.record,\n row: this.row\n }\n })\n )\n }\n }\n\n _onchange(e: Event): void {\n e.stopPropagation()\n\n this._dirtyValue = this.formatFromEditor(e)\n }\n\n _onclick(e: Event): void {\n e.stopPropagation()\n }\n\n _ondblclick(e: Event): void {\n e.stopPropagation()\n }\n\n get editorTemplate() {\n return html``\n }\n}\n\n@customElement('ox-text-input')\nexport class TextInput extends InputEditor {\n get editorTemplate() {\n return html` <input type=\"text\" .value=${this.value} /> `\n }\n}\n\n@customElement('ox-email-input')\nexport class EmailInput extends InputEditor {\n get editorTemplate() {\n return html` <input type=\"email\" .value=${this.value} /> `\n }\n}\n\n@customElement('ox-tel-input')\nexport class TelInput extends InputEditor {\n get editorTemplate() {\n return html` <input type=\"tel\" .value=${this.value} /> `\n }\n}\n\n@customElement('ox-number-input')\nexport class NumberInput extends InputEditor {\n formatFromEditor(e: Event) {\n let value = (e.target as HTMLInputElement).value\n\n switch (this.column.type) {\n case 'float':\n return Number.parseFloat(value)\n case 'integer':\n return Number.parseInt(value)\n default:\n return Number(value)\n }\n }\n\n get editorTemplate() {\n var { min = -Infinity, max = Infinity } = this.column.record.options || {}\n\n return html` <input type=\"number\" .value=${this.value} .min=${Number(min)} .max=${Number(max)} /> `\n }\n}\n\n@customElement('ox-password-input')\nexport class PasswordInput extends InputEditor {\n get editorTemplate() {\n return html` <input type=\"password\" .value=${this.value} /> `\n }\n}\n\n@customElement('ox-date-input')\nexport class DateInput extends InputEditor {\n get editorTemplate() {\n return html` <input type=\"date\" .value=${this.value} /> `\n }\n}\n\n@customElement('ox-month-input')\nexport class MonthInput extends InputEditor {\n get editorTemplate() {\n return html` <input type=\"month\" .value=${this.value} /> `\n }\n}\n\n@customElement('ox-week-input')\nexport class WeekInput extends InputEditor {\n get editorTemplate() {\n return html` <input type=\"week\" .value=${this.value} /> `\n }\n}\n\n@customElement('ox-time-input')\nexport class TimeInput extends InputEditor {\n get editorTemplate() {\n return html` <input type=\"time\" .value=${this.value} /> `\n }\n}\n\n@customElement('ox-datetime-input')\nexport class DateTimeInput extends InputEditor {\n formatForEditor(timestamp: any) {\n if (!timestamp) {\n timestamp = Date.now()\n }\n var datetime = new Date(timestamp)\n\n var tzoffset = datetime.getTimezoneOffset() * 60000 //offset in milliseconds\n\n return new Date(timestamp - tzoffset).toISOString().slice(0, -1)\n }\n\n formatFromEditor(e: Event) {\n var value = (e.target as HTMLInputElement).value\n var datetime = new Date(value)\n\n return datetime.getTime()\n }\n\n get editorTemplate() {\n return html` <input type=\"datetime-local\" .value=${this.value} /> `\n }\n}\n\n@customElement('ox-color-input')\nexport class ColorInput extends InputEditor {\n get editorTemplate() {\n return html` <input type=\"color\" .value=${this.value} /> `\n }\n}\n\n@customElement('ox-checkbox-input')\nexport class CheckboxInput extends InputEditor {\n formatFromEditor(e: Event) {\n return (e.target as HTMLInputElement).checked\n }\n\n get editorTemplate() {\n return html` <input type=\"checkbox\" .checked=${!!this.value} /> `\n }\n}\n\n@customElement('ox-image-input')\nexport class ImageInput extends InputEditor {\n @query('input[type=file]') imageInput!: HTMLElement\n\n get editorTemplate() {\n return html`${this.value\n ? html`<span\n >${this.value.name || this.value}<button\n @click=${() => {\n this.imageInput.dispatchEvent(\n new Event('change', {\n bubbles: true\n })\n )\n }}\n >\n X\n </button></span\n >`\n : ''} <input type=\"file\" accept=\"image/*\" /> `\n }\n\n focus() {\n if (!this.value) this.imageInput.click()\n }\n\n _onchange(e: Event) {\n e.stopPropagation()\n this._dirtyValue = this.formatFromEditor(e)\n this._onfocusout()\n }\n\n formatFromEditor(e: Event) {\n // value가 image file object인지, image url인지 확인\n const input = e.target as HTMLInputElement\n if (input.files?.[0]) {\n return input.files[0]\n } else {\n return input.value\n }\n }\n}\n\n@customElement('ox-select-input')\nexport class Select extends InputEditor {\n get editorTemplate() {\n var rowOptionField = this.record[this.column.record.rowOptionField || '']\n var { options = [] } = rowOptionField ? rowOptionField : this.column.record\n\n if (typeof options == 'function') {\n options = options.call(null, this.value, this.column, this.record, this.rowIndex, this.field)\n }\n\n options = options.map((option: any) => {\n switch (typeof option) {\n case 'string':\n return {\n display: option,\n value: option\n }\n case 'object':\n return {\n display: option.display,\n value: option.value\n }\n default:\n return option\n }\n })\n\n return html`\n <select>\n ${options.map(\n (option: any) => html`\n <option ?selected=${option.value == this.value} value=${option.value}>${option.display}</option>\n `\n )}\n </select>\n `\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"input-editors.js","sourceRoot":"","sources":["../../../src/editors/input-editors.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACnE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAIlE,MAAM,KAAK,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuDhB,CAAA;AAGD,IAAa,WAAW,GAAxB,MAAa,WAAY,SAAQ,UAAU;IAA3C;;QAI8B,WAAM,GAAiB,WAAW,CAAA;QAClC,WAAM,GAAgB,WAAW,CAAA;IAwF/D,CAAC;IAjFC,MAAM;QACJ,OAAO,IAAI,CAAC,cAAc,CAAA;IAC5B,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,UAAU,CAAC,iBAAgC,CAAA;IACzD,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QACrE,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QACzE,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QACnE,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QAEzE,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAA;QACtC,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAA;YAC5B,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,KAAK,CAAA,CAAC,gBAAgB;SAClD;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAA;QACnC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;QAEvE,IAAI,CAAC,KAAK,EAAE,CAAA;QACZ,MAAM,IAAI,CAAC,cAAc,CAAA;QACzB,IAAI,CAAC,MAAM,EAAE,CAAA;IACf,CAAC;IAED,MAAM;;QACJ,IAAI,MAAC,IAAI,CAAC,MAA2B,0CAAE,MAAM,EAAE;YAC7C,OAAQ,IAAI,CAAC,MAA2B,CAAC,MAAM,EAAE,CAAA;SAClD;IACH,CAAC;IAED,KAAK;;QACH,MAAA,IAAI,CAAC,MAAM,0CAAE,KAAK,EAAE,CAAA;IACtB,CAAC;IAED,eAAe,CAAC,KAAU;QACxB,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAA;IACzC,CAAC;IAED,gBAAgB,CAAC,CAAQ;QACvB,OAAQ,CAAC,CAAC,MAA2B,CAAC,KAAK,CAAA;IAC7C,CAAC;IAED,WAAW;QACT,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,KAAK,EAAE;YACnC,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,cAAc,EAAE;gBAC9B,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE;oBACN,MAAM,EAAE,IAAI,CAAC,KAAK;oBAClB,KAAK,EAAE,IAAI,CAAC,WAAW;oBACvB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,GAAG,EAAE,IAAI,CAAC,GAAG;iBACd;aACF,CAAC,CACH,CAAA;SACF;IACH,CAAC;IAED,SAAS,CAAC,CAAQ;QAChB,CAAC,CAAC,eAAe,EAAE,CAAA;QAEnB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAA;IAC7C,CAAC;IAED,QAAQ,CAAC,CAAQ;QACf,CAAC,CAAC,eAAe,EAAE,CAAA;IACrB,CAAC;IAED,WAAW,CAAC,CAAQ;QAClB,CAAC,CAAC,eAAe,EAAE,CAAA;IACrB,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAA,EAAE,CAAA;IACf,CAAC;CACF,CAAA;AA5FQ,kBAAM,GAAG,KAAK,CAAA;AAEO;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;0CAAY;AACX;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;2CAAmC;AAClC;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;2CAAkC;AACjC;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;6CAAkB;AACjB;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;0CAAsB;AACrB;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;wCAAa;AAR7B,WAAW;IADvB,aAAa,CAAC,iBAAiB,CAAC;GACpB,WAAW,CA6FvB;SA7FY,WAAW;AAgGxB,IAAa,SAAS,GAAtB,MAAa,SAAU,SAAQ,WAAW;IACxC,IAAI,cAAc;QAChB,OAAO,IAAI,CAAA,8BAA8B,IAAI,CAAC,KAAK,MAAM,CAAA;IAC3D,CAAC;CACF,CAAA;AAJY,SAAS;IADrB,aAAa,CAAC,eAAe,CAAC;GAClB,SAAS,CAIrB;SAJY,SAAS;AAOtB,IAAa,UAAU,GAAvB,MAAa,UAAW,SAAQ,WAAW;IACzC,IAAI,cAAc;QAChB,OAAO,IAAI,CAAA,+BAA+B,IAAI,CAAC,KAAK,MAAM,CAAA;IAC5D,CAAC;CACF,CAAA;AAJY,UAAU;IADtB,aAAa,CAAC,gBAAgB,CAAC;GACnB,UAAU,CAItB;SAJY,UAAU;AAOvB,IAAa,QAAQ,GAArB,MAAa,QAAS,SAAQ,WAAW;IACvC,IAAI,cAAc;QAChB,OAAO,IAAI,CAAA,6BAA6B,IAAI,CAAC,KAAK,MAAM,CAAA;IAC1D,CAAC;CACF,CAAA;AAJY,QAAQ;IADpB,aAAa,CAAC,cAAc,CAAC;GACjB,QAAQ,CAIpB;SAJY,QAAQ;AAOrB,IAAa,WAAW,GAAxB,MAAa,WAAY,SAAQ,WAAW;IAC1C,gBAAgB,CAAC,CAAQ;QACvB,IAAI,KAAK,GAAI,CAAC,CAAC,MAA2B,CAAC,KAAK,CAAA;QAEhD,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YACxB,KAAK,OAAO;gBACV,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;YACjC,KAAK,SAAS;gBACZ,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;YAC/B;gBACE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;SACvB;IACH,CAAC;IAED,IAAI,cAAc;QAChB,IAAI,EAAE,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAA;QAE1E,OAAO,IAAI,CAAA,gCAAgC,IAAI,CAAC,KAAK,SAAS,MAAM,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,GAAG,CAAC,MAAM,CAAA;IACrG,CAAC;CACF,CAAA;AAnBY,WAAW;IADvB,aAAa,CAAC,iBAAiB,CAAC;GACpB,WAAW,CAmBvB;SAnBY,WAAW;AAsBxB,IAAa,aAAa,GAA1B,MAAa,aAAc,SAAQ,WAAW;IAC5C,IAAI,cAAc;QAChB,OAAO,IAAI,CAAA,kCAAkC,IAAI,CAAC,KAAK,MAAM,CAAA;IAC/D,CAAC;CACF,CAAA;AAJY,aAAa;IADzB,aAAa,CAAC,mBAAmB,CAAC;GACtB,aAAa,CAIzB;SAJY,aAAa;AAO1B,IAAa,SAAS,GAAtB,MAAa,SAAU,SAAQ,WAAW;IACxC,IAAI,cAAc;QAChB,OAAO,IAAI,CAAA,8BAA8B,IAAI,CAAC,KAAK,MAAM,CAAA;IAC3D,CAAC;CACF,CAAA;AAJY,SAAS;IADrB,aAAa,CAAC,eAAe,CAAC;GAClB,SAAS,CAIrB;SAJY,SAAS;AAOtB,IAAa,UAAU,GAAvB,MAAa,UAAW,SAAQ,WAAW;IACzC,IAAI,cAAc;QAChB,OAAO,IAAI,CAAA,+BAA+B,IAAI,CAAC,KAAK,MAAM,CAAA;IAC5D,CAAC;CACF,CAAA;AAJY,UAAU;IADtB,aAAa,CAAC,gBAAgB,CAAC;GACnB,UAAU,CAItB;SAJY,UAAU;AAOvB,IAAa,SAAS,GAAtB,MAAa,SAAU,SAAQ,WAAW;IACxC,IAAI,cAAc;QAChB,OAAO,IAAI,CAAA,8BAA8B,IAAI,CAAC,KAAK,MAAM,CAAA;IAC3D,CAAC;CACF,CAAA;AAJY,SAAS;IADrB,aAAa,CAAC,eAAe,CAAC;GAClB,SAAS,CAIrB;SAJY,SAAS;AAOtB,IAAa,SAAS,GAAtB,MAAa,SAAU,SAAQ,WAAW;IACxC,IAAI,cAAc;QAChB,OAAO,IAAI,CAAA,8BAA8B,IAAI,CAAC,KAAK,MAAM,CAAA;IAC3D,CAAC;CACF,CAAA;AAJY,SAAS;IADrB,aAAa,CAAC,eAAe,CAAC;GAClB,SAAS,CAIrB;SAJY,SAAS;AAOtB,IAAa,aAAa,GAA1B,MAAa,aAAc,SAAQ,WAAW;IAC5C,eAAe,CAAC,SAAc;QAC5B,IAAI,CAAC,SAAS,EAAE;YACd,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;SACvB;QACD,IAAI,QAAQ,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAA;QAElC,IAAI,QAAQ,GAAG,QAAQ,CAAC,iBAAiB,EAAE,GAAG,KAAK,CAAA,CAAC,wBAAwB;QAE5E,OAAO,IAAI,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAClE,CAAC;IAED,gBAAgB,CAAC,CAAQ;QACvB,IAAI,KAAK,GAAI,CAAC,CAAC,MAA2B,CAAC,KAAK,CAAA;QAChD,IAAI,QAAQ,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAA;QAE9B,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAA;IAC3B,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAA,wCAAwC,IAAI,CAAC,KAAK,MAAM,CAAA;IACrE,CAAC;CACF,CAAA;AAtBY,aAAa;IADzB,aAAa,CAAC,mBAAmB,CAAC;GACtB,aAAa,CAsBzB;SAtBY,aAAa;AAyB1B,IAAa,UAAU,GAAvB,MAAa,UAAW,SAAQ,WAAW;IACzC,IAAI,cAAc;QAChB,OAAO,IAAI,CAAA,+BAA+B,IAAI,CAAC,KAAK,MAAM,CAAA;IAC5D,CAAC;CACF,CAAA;AAJY,UAAU;IADtB,aAAa,CAAC,gBAAgB,CAAC;GACnB,UAAU,CAItB;SAJY,UAAU;AAOvB,IAAa,aAAa,GAA1B,MAAa,aAAc,SAAQ,WAAW;IAC5C,gBAAgB,CAAC,CAAQ;QACvB,OAAQ,CAAC,CAAC,MAA2B,CAAC,OAAO,CAAA;IAC/C,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAA,oCAAoC,CAAC,CAAC,IAAI,CAAC,KAAK,MAAM,CAAA;IACnE,CAAC;CACF,CAAA;AARY,aAAa;IADzB,aAAa,CAAC,mBAAmB,CAAC;GACtB,aAAa,CAQzB;SARY,aAAa;AAW1B,IAAa,UAAU,GAAvB,MAAa,UAAW,SAAQ,WAAW;IAGzC,IAAI,cAAc;QAChB,OAAO,IAAI,CAAA,GAAG,IAAI,CAAC,KAAK;YACpB,CAAC,CAAC,IAAI,CAAA;eACC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK;uBACrB,GAAG,EAAE;gBACZ,IAAI,CAAC,UAAU,CAAC,aAAa,CAC3B,IAAI,KAAK,CAAC,QAAQ,EAAE;oBAClB,OAAO,EAAE,IAAI;iBACd,CAAC,CACH,CAAA;YACH,CAAC;;;;YAIH;YACJ,CAAC,CAAC,EAAE,0CAA0C,CAAA;IACpD,CAAC;IAED,KAAK;QACH,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAA;IAC1C,CAAC;IAED,SAAS,CAAC,CAAQ;QAChB,CAAC,CAAC,eAAe,EAAE,CAAA;QACnB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAA;QAC3C,IAAI,CAAC,WAAW,EAAE,CAAA;IACpB,CAAC;IAED,gBAAgB,CAAC,CAAQ;;QACvB,6CAA6C;QAC7C,MAAM,KAAK,GAAG,CAAC,CAAC,MAA0B,CAAA;QAC1C,IAAI,MAAA,KAAK,CAAC,KAAK,0CAAG,CAAC,CAAC,EAAE;YACpB,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;SACtB;aAAM;YACL,OAAO,KAAK,CAAC,KAAK,CAAA;SACnB;IACH,CAAC;CACF,CAAA;AAvC4B;IAA1B,KAAK,CAAC,kBAAkB,CAAC;8CAAyB;AADxC,UAAU;IADtB,aAAa,CAAC,gBAAgB,CAAC;GACnB,UAAU,CAwCtB;SAxCY,UAAU;AA2CvB,IAAa,MAAM,GAAnB,MAAa,MAAO,SAAQ,WAAW;IACrC,IAAI,cAAc;QAChB,IAAI,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,IAAI,EAAE,CAAC,CAAA;QACzE,IAAI,EAAE,OAAO,GAAG,EAAE,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAA;QAE3E,IAAI,OAAO,OAAO,IAAI,UAAU,EAAE;YAChC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;SAC9F;QAED,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAW,EAAE,EAAE;YACpC,QAAQ,OAAO,MAAM,EAAE;gBACrB,KAAK,QAAQ;oBACX,OAAO;wBACL,OAAO,EAAE,MAAM;wBACf,KAAK,EAAE,MAAM;qBACd,CAAA;gBACH,KAAK,QAAQ;oBACX,OAAO;wBACL,OAAO,EAAE,MAAM,CAAC,OAAO;wBACvB,KAAK,EAAE,MAAM,CAAC,KAAK;qBACpB,CAAA;gBACH;oBACE,OAAO,MAAM,CAAA;aAChB;QACH,CAAC,CAAC,CAAA;QAEF,OAAO,IAAI,CAAA;;UAEL,OAAO,CAAC,GAAG,CACX,CAAC,MAAW,EAAE,EAAE,CAAC,IAAI,CAAA;gCACC,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,UAAU,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO;WACvF,CACF;;KAEJ,CAAA;IACH,CAAC;CACF,CAAA;AApCY,MAAM;IADlB,aAAa,CAAC,iBAAiB,CAAC;GACpB,MAAM,CAoClB;SApCY,MAAM","sourcesContent":["import { ColumnConfig, GristRecord } from '../types'\nimport { LitElement, css, html } from 'lit'\nimport { ZERO_COLUMN, ZERO_RECORD } from '../configure/zero-config'\nimport { customElement, property, query } from 'lit/decorators.js'\n\nimport { DataGridField } from '../data-grid/data-grid-field'\n\nconst STYLE = css`\n :host {\n display: block;\n\n width: 100%;\n height: 100%;\n\n border: 0;\n background-color: transparent;\n }\n\n :host > * {\n display: block;\n\n width: 100%;\n height: 100%;\n\n border: 0;\n background-color: transparent;\n\n box-sizing: border-box;\n\n font-size: inherit;\n font-family: inherit;\n }\n\n :host > style {\n display: none;\n }\n\n :host > input[type='checkbox'] {\n width: initial;\n margin: auto;\n }\n input[type='checkbox'],\n input[type='radio'] {\n zoom: var(--grist-input-zoom);\n }\n *:focus {\n outline: none;\n }\n\n input[type='file'] {\n opacity: 0%;\n }\n\n @media screen and (max-width: 460px) {\n :host > * {\n border: initial;\n background-color: initial;\n }\n *:focus {\n outline: none;\n }\n }\n`\n\n@customElement('ox-input-editor')\nexport class InputEditor extends LitElement {\n static styles = STYLE\n\n @property({ type: Object }) value?: any\n @property({ type: Object }) column: ColumnConfig = ZERO_COLUMN\n @property({ type: Object }) record: GristRecord = ZERO_RECORD\n @property({ type: Number }) rowIndex?: number\n @property({ type: Object }) field?: DataGridField\n @property({ type: Number }) row?: number\n\n protected _dirtyValue?: any\n\n render() {\n return this.editorTemplate\n }\n\n get editor(): HTMLElement | null {\n return this.renderRoot.firstElementChild as HTMLElement\n }\n\n async firstUpdated() {\n this.renderRoot.addEventListener('change', this._onchange.bind(this))\n this.renderRoot.addEventListener('focusout', this._onfocusout.bind(this))\n this.renderRoot.addEventListener('click', this._onclick.bind(this))\n this.renderRoot.addEventListener('dblclick', this._ondblclick.bind(this))\n\n const align = this.column.record.align\n if (align) {\n this.style.textAlign = align\n this.style.textAlignLast = align /* for select */\n }\n\n const name = this.column.name || ''\n this.value = this._dirtyValue = this.formatForEditor(this.record[name])\n\n this.focus()\n await this.updateComplete\n this.select()\n }\n\n select() {\n if ((this.editor as HTMLInputElement)?.select) {\n return (this.editor as HTMLInputElement).select()\n }\n }\n\n focus() {\n this.editor?.focus()\n }\n\n formatForEditor(value: any): any {\n return value === undefined ? '' : value\n }\n\n formatFromEditor(e: Event): any {\n return (e.target as HTMLInputElement).value\n }\n\n _onfocusout() {\n if (this._dirtyValue !== this.value) {\n this.dispatchEvent(\n new CustomEvent('field-change', {\n bubbles: true,\n composed: true,\n detail: {\n before: this.value,\n after: this._dirtyValue,\n column: this.column,\n record: this.record,\n row: this.row\n }\n })\n )\n }\n }\n\n _onchange(e: Event): void {\n e.stopPropagation()\n\n this._dirtyValue = this.formatFromEditor(e)\n }\n\n _onclick(e: Event): void {\n e.stopPropagation()\n }\n\n _ondblclick(e: Event): void {\n e.stopPropagation()\n }\n\n get editorTemplate() {\n return html``\n }\n}\n\n@customElement('ox-text-input')\nexport class TextInput extends InputEditor {\n get editorTemplate() {\n return html` <input type=\"text\" .value=${this.value} /> `\n }\n}\n\n@customElement('ox-email-input')\nexport class EmailInput extends InputEditor {\n get editorTemplate() {\n return html` <input type=\"email\" .value=${this.value} /> `\n }\n}\n\n@customElement('ox-tel-input')\nexport class TelInput extends InputEditor {\n get editorTemplate() {\n return html` <input type=\"tel\" .value=${this.value} /> `\n }\n}\n\n@customElement('ox-number-input')\nexport class NumberInput extends InputEditor {\n formatFromEditor(e: Event) {\n let value = (e.target as HTMLInputElement).value\n\n switch (this.column.type) {\n case 'float':\n return Number.parseFloat(value)\n case 'integer':\n return Number.parseInt(value)\n default:\n return Number(value)\n }\n }\n\n get editorTemplate() {\n var { min = -Infinity, max = Infinity } = this.column.record.options || {}\n\n return html` <input type=\"number\" .value=${this.value} .min=${Number(min)} .max=${Number(max)} /> `\n }\n}\n\n@customElement('ox-password-input')\nexport class PasswordInput extends InputEditor {\n get editorTemplate() {\n return html` <input type=\"password\" .value=${this.value} /> `\n }\n}\n\n@customElement('ox-date-input')\nexport class DateInput extends InputEditor {\n get editorTemplate() {\n return html` <input type=\"date\" .value=${this.value} /> `\n }\n}\n\n@customElement('ox-month-input')\nexport class MonthInput extends InputEditor {\n get editorTemplate() {\n return html` <input type=\"month\" .value=${this.value} /> `\n }\n}\n\n@customElement('ox-week-input')\nexport class WeekInput extends InputEditor {\n get editorTemplate() {\n return html` <input type=\"week\" .value=${this.value} /> `\n }\n}\n\n@customElement('ox-time-input')\nexport class TimeInput extends InputEditor {\n get editorTemplate() {\n return html` <input type=\"time\" .value=${this.value} /> `\n }\n}\n\n@customElement('ox-datetime-input')\nexport class DateTimeInput extends InputEditor {\n formatForEditor(timestamp: any) {\n if (!timestamp) {\n timestamp = Date.now()\n }\n var datetime = new Date(timestamp)\n\n var tzoffset = datetime.getTimezoneOffset() * 60000 //offset in milliseconds\n\n return new Date(timestamp - tzoffset).toISOString().slice(0, -1)\n }\n\n formatFromEditor(e: Event) {\n var value = (e.target as HTMLInputElement).value\n var datetime = new Date(value)\n\n return datetime.getTime()\n }\n\n get editorTemplate() {\n return html` <input type=\"datetime-local\" .value=${this.value} /> `\n }\n}\n\n@customElement('ox-color-input')\nexport class ColorInput extends InputEditor {\n get editorTemplate() {\n return html` <input type=\"color\" .value=${this.value} /> `\n }\n}\n\n@customElement('ox-checkbox-input')\nexport class CheckboxInput extends InputEditor {\n formatFromEditor(e: Event) {\n return (e.target as HTMLInputElement).checked\n }\n\n get editorTemplate() {\n return html` <input type=\"checkbox\" .checked=${!!this.value} /> `\n }\n}\n\n@customElement('ox-image-input')\nexport class ImageInput extends InputEditor {\n @query('input[type=file]') imageInput!: HTMLElement\n\n get editorTemplate() {\n return html`${this.value\n ? html`<span\n >${this.value.name || this.value}<button\n @click=${() => {\n this.imageInput.dispatchEvent(\n new Event('change', {\n bubbles: true\n })\n )\n }}\n >\n X\n </button></span\n >`\n : ''} <input type=\"file\" accept=\"image/*\" /> `\n }\n\n focus() {\n if (!this.value) this.imageInput.click()\n }\n\n _onchange(e: Event) {\n e.stopPropagation()\n this._dirtyValue = this.formatFromEditor(e)\n this._onfocusout()\n }\n\n formatFromEditor(e: Event) {\n // value가 image file object인지, image url인지 확인\n const input = e.target as HTMLInputElement\n if (input.files?.[0]) {\n return input.files[0]\n } else {\n return input.value\n }\n }\n}\n\n@customElement('ox-select-input')\nexport class Select extends InputEditor {\n get editorTemplate() {\n var rowOptionField = this.record[this.column.record.rowOptionField || '']\n var { options = [] } = rowOptionField ? rowOptionField : this.column.record\n\n if (typeof options == 'function') {\n options = options.call(null, this.value, this.column, this.record, this.rowIndex, this.field)\n }\n\n options = options.map((option: any) => {\n switch (typeof option) {\n case 'string':\n return {\n display: option,\n value: option\n }\n case 'object':\n return {\n display: option.display,\n value: option.value\n }\n default:\n return option\n }\n })\n\n return html`\n <select>\n ${options.map(\n (option: any) => html`\n <option ?selected=${option.value == this.value} value=${option.value}>${option.display}</option>\n `\n )}\n </select>\n `\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/editors/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,UAAU,EACV,SAAS,EACT,aAAa,EACb,UAAU,EACV,UAAU,EAEV,UAAU,EACV,WAAW,EACX,aAAa,EACb,MAAM,EACN,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACV,MAAM,iBAAiB,CAAA;AAKxB,IAAI,OAAO,GAAgD;IACzD,MAAM,EAAE,SAAS;IACjB,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,UAAU;IACjB,GAAG,EAAE,QAAQ;IACb,QAAQ,EAAE,aAAa;IACvB,OAAO,EAAE,WAAW;IACpB,KAAK,EAAE,WAAW;IAClB,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,MAAM;IACd,OAAO,EAAE,aAAa;IACtB,QAAQ,EAAE,aAAa;IACvB,KAAK,EAAE,UAAU;IACjB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,SAAS;IACf,QAAQ,EAAE,aAAa;IACvB,KAAK,EAAE,UAAU;IACjB,QAAQ,EAAE,WAAW;IACrB,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,UAAU;CAClB,CAAA;AAED,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,MAA+B;IAC1E,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAA;AACxB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,OAAO,OAAO,CAAC,IAAI,CAAC,CAAA;AACtB,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO,EAAE,GAAG,OAAO,EAAE,CAAA;AACvB,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,IAAI,OAAO,IAAI,IAAI,UAAU,EAAE;QAC7B,OAAO,IAAI,CAAA;KACZ;IAED,OAAO,UAAU,KAAU,EAAE,MAAoB,EAAE,MAAmB,EAAE,QAAgB,EAAE,KAAoB;QAC5G,IAAI,KAAK,GAAG,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,SAAS,CAAA;QAEhD,IAAI,OAAO,GAAG,IAAI,KAAK,EAAE,CAAA;QAEzB,OAAO,CAAC,KAAK,GAAG,KAAK,CAAA;QACrB,OAAO,CAAC,MAAM,GAAG,MAAM,CAAA;QACvB,OAAO,CAAC,MAAM,GAAG,MAAM,CAAA;QACvB,OAAO,CAAC,GAAG,GAAG,QAAQ,CAAA;QACtB,OAAO,CAAC,KAAK,GAAG,KAAK,CAAA;QAErB,OAAO,OAAO,CAAA;IAChB,CAAC,CAAA;AACH,CAAC","sourcesContent":["import {\n CheckboxInput,\n ColorInput,\n DateInput,\n DateTimeInput,\n EmailInput,\n ImageInput,\n InputEditor,\n MonthInput,\n NumberInput,\n PasswordInput,\n Select,\n TelInput,\n TextInput,\n TimeInput,\n WeekInput\n} from './input-editors'\nimport { ColumnConfig, FieldEditor, GristRecord } from '../
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/editors/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,UAAU,EACV,SAAS,EACT,aAAa,EACb,UAAU,EACV,UAAU,EAEV,UAAU,EACV,WAAW,EACX,aAAa,EACb,MAAM,EACN,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACV,MAAM,iBAAiB,CAAA;AAKxB,IAAI,OAAO,GAAgD;IACzD,MAAM,EAAE,SAAS;IACjB,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,UAAU;IACjB,GAAG,EAAE,QAAQ;IACb,QAAQ,EAAE,aAAa;IACvB,OAAO,EAAE,WAAW;IACpB,KAAK,EAAE,WAAW;IAClB,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,MAAM;IACd,OAAO,EAAE,aAAa;IACtB,QAAQ,EAAE,aAAa;IACvB,KAAK,EAAE,UAAU;IACjB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,SAAS;IACf,QAAQ,EAAE,aAAa;IACvB,KAAK,EAAE,UAAU;IACjB,QAAQ,EAAE,WAAW;IACrB,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,UAAU;CAClB,CAAA;AAED,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,MAA+B;IAC1E,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAA;AACxB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,OAAO,OAAO,CAAC,IAAI,CAAC,CAAA;AACtB,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO,EAAE,GAAG,OAAO,EAAE,CAAA;AACvB,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,IAAI,OAAO,IAAI,IAAI,UAAU,EAAE;QAC7B,OAAO,IAAI,CAAA;KACZ;IAED,OAAO,UAAU,KAAU,EAAE,MAAoB,EAAE,MAAmB,EAAE,QAAgB,EAAE,KAAoB;QAC5G,IAAI,KAAK,GAAG,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,SAAS,CAAA;QAEhD,IAAI,OAAO,GAAG,IAAI,KAAK,EAAE,CAAA;QAEzB,OAAO,CAAC,KAAK,GAAG,KAAK,CAAA;QACrB,OAAO,CAAC,MAAM,GAAG,MAAM,CAAA;QACvB,OAAO,CAAC,MAAM,GAAG,MAAM,CAAA;QACvB,OAAO,CAAC,GAAG,GAAG,QAAQ,CAAA;QACtB,OAAO,CAAC,KAAK,GAAG,KAAK,CAAA;QAErB,OAAO,OAAO,CAAA;IAChB,CAAC,CAAA;AACH,CAAC","sourcesContent":["import {\n CheckboxInput,\n ColorInput,\n DateInput,\n DateTimeInput,\n EmailInput,\n ImageInput,\n InputEditor,\n MonthInput,\n NumberInput,\n PasswordInput,\n Select,\n TelInput,\n TextInput,\n TimeInput,\n WeekInput\n} from './input-editors'\nimport { ColumnConfig, FieldEditor, GristRecord } from '../types'\n\nimport { DataGridField } from '../data-grid/data-grid-field'\n\nvar EDITORS: { [name: string]: { new (): InputEditor } } = {\n string: TextInput,\n text: TextInput,\n email: EmailInput,\n tel: TelInput,\n password: PasswordInput,\n integer: NumberInput,\n float: NumberInput,\n number: NumberInput,\n select: Select,\n boolean: CheckboxInput,\n checkbox: CheckboxInput,\n month: MonthInput,\n week: WeekInput,\n date: DateInput,\n time: TimeInput,\n datetime: DateTimeInput,\n color: ColorInput,\n progress: NumberInput,\n link: TextInput,\n image: ImageInput\n}\n\nexport function registerEditor(type: string, editor: { new (): InputEditor }) {\n EDITORS[type] = editor\n}\n\nexport function unregisterEditor(type: string) {\n delete EDITORS[type]\n}\n\nexport function getEditors(): { [name: string]: { new (): InputEditor } } {\n return { ...EDITORS }\n}\n\nexport function getEditor(type: string): FieldEditor {\n if (typeof type == 'function') {\n return type\n }\n\n return function (value: any, column: ColumnConfig, record: GristRecord, rowIndex: number, field: DataGridField) {\n var clazz = EDITORS[type || 'text'] || TextInput\n\n var element = new clazz()\n\n element.value = value\n element.record = record\n element.column = column\n element.row = rowIndex\n element.field = field\n\n return element\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gutter-button.js","sourceRoot":"","sources":["../../../src/gutters/gutter-button.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,CAAA;AAI3B,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAE1B,MAAM,OAAO,YAAY;IACvB,MAAM,CAAC,QAAQ,CAAC,SAAc,EAAE;QAC9B,IAAI,EAAE,IAAI,GAAG,MAAM,EAAE,GAAG,MAAM,CAAA;QAE9B,IAAI,MAAM,GAAG,OAAO,IAAI,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAA;QAE1D,IAAI,iBAAiB,GAAG,wDAAwD,CAAA;QAChF,IAAI,iBAAiB,GAAG,wDAAwD,CAAA;QAEhF,OAAO,MAAM,CAAC,MAAM,CAClB,EAAE,EACF;YACE,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,QAAQ;YACpB,KAAK,EAAE,EAAE;YACT,SAAS,EAAE,KAAK;YAChB,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE;gBACN,QAAQ,EAAE,UAAU,MAAM;oBACxB,OAAO,IAAI,CAAA,oBAAoB,iBAAiB,IAAI,MAAM,EAAE,cAAc,CAAA;gBAC5E,CAAmB;aACpB;YACD,MAAM,EAAE;gBACN,QAAQ,EAAE,UAAU,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK;oBACxD,OAAO,IAAI,CAAA,oBAAoB,iBAAiB,IAAI,MAAM,CAAC,MAAM,CAAC,cAAc,CAAA;gBAClF,CAAkB;aACnB;YACD,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,IAAI;SACd,EACD,MAAM,CACP,CAAA;IACH,CAAC;CACF","sourcesContent":["import '@material/mwc-icon'\n\nimport { FieldRenderer, HeaderRenderer } from '../
|
|
1
|
+
{"version":3,"file":"gutter-button.js","sourceRoot":"","sources":["../../../src/gutters/gutter-button.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,CAAA;AAI3B,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAE1B,MAAM,OAAO,YAAY;IACvB,MAAM,CAAC,QAAQ,CAAC,SAAc,EAAE;QAC9B,IAAI,EAAE,IAAI,GAAG,MAAM,EAAE,GAAG,MAAM,CAAA;QAE9B,IAAI,MAAM,GAAG,OAAO,IAAI,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAA;QAE1D,IAAI,iBAAiB,GAAG,wDAAwD,CAAA;QAChF,IAAI,iBAAiB,GAAG,wDAAwD,CAAA;QAEhF,OAAO,MAAM,CAAC,MAAM,CAClB,EAAE,EACF;YACE,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,QAAQ;YACpB,KAAK,EAAE,EAAE;YACT,SAAS,EAAE,KAAK;YAChB,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE;gBACN,QAAQ,EAAE,UAAU,MAAM;oBACxB,OAAO,IAAI,CAAA,oBAAoB,iBAAiB,IAAI,MAAM,EAAE,cAAc,CAAA;gBAC5E,CAAmB;aACpB;YACD,MAAM,EAAE;gBACN,QAAQ,EAAE,UAAU,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK;oBACxD,OAAO,IAAI,CAAA,oBAAoB,iBAAiB,IAAI,MAAM,CAAC,MAAM,CAAC,cAAc,CAAA;gBAClF,CAAkB;aACnB;YACD,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,IAAI;SACd,EACD,MAAM,CACP,CAAA;IACH,CAAC;CACF","sourcesContent":["import '@material/mwc-icon'\n\nimport { FieldRenderer, HeaderRenderer } from '../types'\n\nimport { html } from 'lit'\n\nexport class GutterButton {\n static instance(config: any = {}) {\n var { icon = 'edit' } = config\n\n var iconFn = typeof icon == 'function' ? icon : () => icon\n\n var inlineHeaderStyle = 'font-size: var(--grid-record-fontsize);margin-top:1px;'\n var inlineRecordStyle = 'font-size: var(--grid-record-fontsize);margin-top:1px;'\n\n return Object.assign(\n {},\n {\n type: 'gutter',\n gutterType: 'button',\n width: 26,\n resizable: false,\n sortable: false,\n header: {\n renderer: function (column) {\n return html` <mwc-icon style=${inlineHeaderStyle}>${iconFn()}</mwc-icon> `\n } as HeaderRenderer\n },\n record: {\n renderer: function (value, column, record, rowIndex, field) {\n return html` <mwc-icon style=${inlineRecordStyle}>${iconFn(record)}</mwc-icon> `\n } as FieldRenderer\n },\n forGrid: true,\n forList: true\n },\n config\n )\n }\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
2
|
import '@material/mwc-icon';
|
|
3
|
-
import { css, html
|
|
3
|
+
import { LitElement, css, html } from 'lit';
|
|
4
4
|
import { customElement, property } from 'lit/decorators.js';
|
|
5
5
|
let GutterDirtyElement = class GutterDirtyElement extends LitElement {
|
|
6
6
|
render() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gutter-dirty.js","sourceRoot":"","sources":["../../../src/gutters/gutter-dirty.ts"],"names":[],"mappings":";AAAA,OAAO,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"gutter-dirty.js","sourceRoot":"","sources":["../../../src/gutters/gutter-dirty.ts"],"names":[],"mappings":";AAAA,OAAO,oBAAoB,CAAA;AAG3B,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAG3D,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,UAAU;IAyBzC,MAAM;QACJ,QAAQ,IAAI,CAAC,KAAK,EAAE;YAClB,KAAK,GAAG;gBACN,OAAO,IAAI,CAAA,oBAAoB,WAAW,6BAA6B,CAAA;YACzE,KAAK,GAAG;gBACN,OAAO,IAAI,CAAA,oBAAoB,WAAW,mCAAmC,CAAA;YAC/E,KAAK,GAAG;gBACN,OAAO,IAAI,CAAA,oBAAoB,WAAW,+BAA+B,CAAA;YAC3E;gBACE,OAAO,EAAE,CAAA;SACZ;IACH,CAAC;CACF,CAAA;AApCQ,yBAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;GAoBlB,CAAA;AAE2B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;iDAAe;AAvBtC,kBAAkB;IADvB,aAAa,CAAC,yBAAyB,CAAC;GACnC,kBAAkB,CAqCvB;AAED,MAAM,WAAW,GACf,sGAAsG,CAAA;AAExG,MAAM,OAAO,WAAW;IACtB,MAAM,CAAC,QAAQ,CAAC,SAAuB,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAS;QACjF,OAAO,MAAM,CAAC,MAAM,CAClB,EAAE,EACF;YACE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,WAAW;YACjB,UAAU,EAAE,OAAO;YACnB,KAAK,EAAE,EAAE;YACT,SAAS,EAAE,KAAK;YAChB,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE,EAAE;YACV,MAAM,EAAE;gBACN,QAAQ,EAAE,UAAU,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK;oBACxD,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA,mCAAmC,KAAK,8BAA8B,CAAC,CAAC,CAAC,IAAI,CAAA,EAAE,CAAA;gBACpG,CAAkB;aACnB;YACD,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,KAAK;SACf,EACD,MAAM,CACP,CAAA;IACH,CAAC;CACF","sourcesContent":["import '@material/mwc-icon'\n\nimport { ColumnConfig, FieldRenderer } from '../types'\nimport { LitElement, css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\n@customElement('ox-gutter-dirty-element')\nclass GutterDirtyElement extends LitElement {\n static styles = css`\n :host {\n display: block;\n text-align: center !important;\n }\n mwc-icon {\n width: var(--grid-record-dirty-icon-size);\n height: var(--grid-record-dirty-icon-size);\n border-radius: 50%;\n opacity: 0.8;\n }\n [add] {\n background-color: var(--status-success-color);\n }\n [remove] {\n background-color: var(--status-danger-color);\n }\n [done] {\n background-color: var(--status-info-color);\n }\n `\n\n @property({ type: String }) value?: string\n\n render() {\n switch (this.value) {\n case '+':\n return html` <mwc-icon style=${INLINESTYLE} center add>add</mwc-icon> `\n case '-':\n return html` <mwc-icon style=${INLINESTYLE} center remove>remove</mwc-icon> `\n case 'M':\n return html` <mwc-icon style=${INLINESTYLE} center done>done</mwc-icon> `\n default:\n return ''\n }\n }\n}\n\nconst INLINESTYLE =\n 'font-size: var(--grid-record-fontsize);vertical-align: middle; color: var(--grid-record-dirty-color)'\n\nexport class GutterDirty {\n static instance(config: ColumnConfig = { type: 'gutter', name: '__dirty__' } as any) {\n return Object.assign(\n {},\n {\n type: 'gutter',\n name: '__dirty__',\n gutterType: 'dirty',\n width: 30,\n resizable: false,\n sortable: false,\n header: '',\n record: {\n renderer: function (value, column, record, rowIndex, field) {\n return value ? html` <ox-gutter-dirty-element value=${value}></ox-gutter-dirty-element> ` : html``\n } as FieldRenderer\n },\n forGrid: true,\n forList: false\n },\n config\n )\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gutter-row-selector.js","sourceRoot":"","sources":["../../../src/gutters/gutter-row-selector.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAE1B,MAAM,OAAO,iBAAiB;IAC5B,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAS;QAChC,OAAO,MAAM,CAAC,MAAM,CAClB,EAAE,EACF;YACE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,cAAc;YACpB,UAAU,EAAE,cAAc;YAC1B,KAAK,EAAE,EAAE;YACT,SAAS,EAAE,KAAK;YAChB,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE;gBACN,QAAQ,EAAE,UAAgD,MAAM;oBAC9D,IAAI,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAA;oBAEtF,OAAO,IAAI,CAAA;;;2BAGI,OAAO;0BACR,CAAC,CAAQ,EAAE,EAAE;wBACrB,IAAI,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC,CAAC,MAA2B,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAA;wBAE/E,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,mBAAmB,EAAE;4BACnC,OAAO,EAAE,IAAI;4BACb,QAAQ,EAAE,IAAI;4BACd,MAAM,EAAE;gCACN,QAAQ;6BACT;yBACF,CAAC,CACH,CAAA;wBAED,CAAC,CAAC,eAAe,EAAE,CAAA;oBACrB,CAAC;;aAEJ,CAAA;gBACH,CAAmB;aACpB;YACD,MAAM,EAAE;gBACN,QAAQ,EAAE,UAAU,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK;oBACxD,OAAO,IAAI,CAAA;;uBAEA,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO;2BAClC,CAAC,CAAC,KAAK;0BACR,CAAC,CAAQ,EAAE,EAAE;wBACrB,IAAI,QAAQ,GAAI,CAAC,CAAC,MAA2B,CAAC,OAAO,CAAA;wBAErD,IAAI,MAAM,GAAG,MAAM,CAAC,QAAQ;4BAC1B,CAAC,CAAC;gCACE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;gCAC/B,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;6BAClC;4BACH,CAAC,CAAC;gCACE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;6BAClC,CAAA;wBAEL,KAAK,CAAC,aAAa,CACjB,IAAI,WAAW,CAAC,sBAAsB,EAAE;4BACtC,OAAO,EAAE,IAAI;4BACb,QAAQ,EAAE,IAAI;4BACd,MAAM;yBACP,CAAC,CACH,CAAA;wBAED,CAAC,CAAC,eAAe,EAAE,CAAA;oBACrB,CAAC;;aAEJ,CAAA;gBACH,CAAkB;aACnB;YACD,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,IAAI;SACd,EACD,MAAM,CACP,CAAA;IACH,CAAC;CACF","sourcesContent":["import { FieldRenderer, HeaderRenderer } from '../
|
|
1
|
+
{"version":3,"file":"gutter-row-selector.js","sourceRoot":"","sources":["../../../src/gutters/gutter-row-selector.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAE1B,MAAM,OAAO,iBAAiB;IAC5B,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAS;QAChC,OAAO,MAAM,CAAC,MAAM,CAClB,EAAE,EACF;YACE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,cAAc;YACpB,UAAU,EAAE,cAAc;YAC1B,KAAK,EAAE,EAAE;YACT,SAAS,EAAE,KAAK;YAChB,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE;gBACN,QAAQ,EAAE,UAAgD,MAAM;oBAC9D,IAAI,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAA;oBAEtF,OAAO,IAAI,CAAA;;;2BAGI,OAAO;0BACR,CAAC,CAAQ,EAAE,EAAE;wBACrB,IAAI,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC,CAAC,MAA2B,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAA;wBAE/E,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,mBAAmB,EAAE;4BACnC,OAAO,EAAE,IAAI;4BACb,QAAQ,EAAE,IAAI;4BACd,MAAM,EAAE;gCACN,QAAQ;6BACT;yBACF,CAAC,CACH,CAAA;wBAED,CAAC,CAAC,eAAe,EAAE,CAAA;oBACrB,CAAC;;aAEJ,CAAA;gBACH,CAAmB;aACpB;YACD,MAAM,EAAE;gBACN,QAAQ,EAAE,UAAU,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK;oBACxD,OAAO,IAAI,CAAA;;uBAEA,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO;2BAClC,CAAC,CAAC,KAAK;0BACR,CAAC,CAAQ,EAAE,EAAE;wBACrB,IAAI,QAAQ,GAAI,CAAC,CAAC,MAA2B,CAAC,OAAO,CAAA;wBAErD,IAAI,MAAM,GAAG,MAAM,CAAC,QAAQ;4BAC1B,CAAC,CAAC;gCACE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;gCAC/B,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;6BAClC;4BACH,CAAC,CAAC;gCACE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;6BAClC,CAAA;wBAEL,KAAK,CAAC,aAAa,CACjB,IAAI,WAAW,CAAC,sBAAsB,EAAE;4BACtC,OAAO,EAAE,IAAI;4BACb,QAAQ,EAAE,IAAI;4BACd,MAAM;yBACP,CAAC,CACH,CAAA;wBAED,CAAC,CAAC,eAAe,EAAE,CAAA;oBACrB,CAAC;;aAEJ,CAAA;gBACH,CAAkB;aACnB;YACD,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,IAAI;SACd,EACD,MAAM,CACP,CAAA;IACH,CAAC;CACF","sourcesContent":["import { FieldRenderer, HeaderRenderer } from '../types'\n\nimport { DataCard } from '../data-card/data-card'\nimport { DataGrid } from '../data-grid/data-grid'\nimport { DataList } from '../data-list/data-list'\nimport { html } from 'lit'\n\nexport class GutterRowSelector {\n static instance(config = {} as any) {\n return Object.assign(\n {},\n {\n type: 'gutter',\n name: '__selected__',\n gutterType: 'row-selector',\n width: 30,\n resizable: false,\n sortable: false,\n header: {\n renderer: function (this: DataGrid | DataList | DataCard, column) {\n var checked = ((this.data || {}).records || []).find(record => record['__selected__'])\n\n return html`\n <input\n type=\"checkbox\"\n .checked=${checked}\n @change=${(e: Event) => {\n let selected = column.multiple ? (e.target as HTMLInputElement).checked : false\n\n this.dispatchEvent(\n new CustomEvent('select-all-change', {\n bubbles: true,\n composed: true,\n detail: {\n selected\n }\n })\n )\n\n e.stopPropagation()\n }}\n />\n `\n } as HeaderRenderer\n },\n record: {\n renderer: function (value, column, record, rowIndex, field) {\n return html`\n <input\n type=${column.multiple ? 'checkbox' : 'radio'}\n .checked=${!!value}\n @change=${(e: Event) => {\n let selected = (e.target as HTMLInputElement).checked\n\n let detail = column.multiple\n ? {\n added: selected ? [record] : [],\n removed: selected ? [] : [record]\n }\n : {\n records: selected ? [record] : []\n }\n\n field.dispatchEvent(\n new CustomEvent('select-record-change', {\n bubbles: true,\n composed: true,\n detail\n })\n )\n\n e.stopPropagation()\n }}\n />\n `\n } as FieldRenderer\n },\n forGrid: true,\n forList: true\n },\n config\n )\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gutter-sequence.js","sourceRoot":"","sources":["../../../src/gutters/gutter-sequence.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,cAAc;IACzB,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAS;QAChC,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,SAAS;YACf,UAAU,EAAE,UAAU;YACtB,KAAK,EAAE,UAAgD,MAAM;gBAC3D,IAAI,IAAI,CAAC,IAAI,EAAE;oBACb,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,OAAO,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAA;oBAC3D,IAAI,SAAS,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,OAAO,CAAC,MAAM,CAAA;iBACpD;qBAAM;oBACL,IAAI,SAAS,GAAG,GAAG,CAAA;iBACpB;gBAED,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAA;YACrD,CAAwB;YACxB,SAAS,EAAE,KAAK;YAChB,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE,GAAG;YACX,MAAM,EAAE;gBACN,QAAQ,EAAE,UAAU,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK;oBACxD,OAAO,KAAK,CAAA;gBACd,CAAkB;gBAClB,KAAK,EAAE,OAAO;aACf;YACD,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,KAAK;YACd,GAAG,MAAM;SACV,CAAA;IACH,CAAC;CACF","sourcesContent":["import { ColumnWidthCallback, FieldRenderer } from '../
|
|
1
|
+
{"version":3,"file":"gutter-sequence.js","sourceRoot":"","sources":["../../../src/gutters/gutter-sequence.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,cAAc;IACzB,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAS;QAChC,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,SAAS;YACf,UAAU,EAAE,UAAU;YACtB,KAAK,EAAE,UAAgD,MAAM;gBAC3D,IAAI,IAAI,CAAC,IAAI,EAAE;oBACb,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,OAAO,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAA;oBAC3D,IAAI,SAAS,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,OAAO,CAAC,MAAM,CAAA;iBACpD;qBAAM;oBACL,IAAI,SAAS,GAAG,GAAG,CAAA;iBACpB;gBAED,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAA;YACrD,CAAwB;YACxB,SAAS,EAAE,KAAK;YAChB,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE,GAAG;YACX,MAAM,EAAE;gBACN,QAAQ,EAAE,UAAU,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK;oBACxD,OAAO,KAAK,CAAA;gBACd,CAAkB;gBAClB,KAAK,EAAE,OAAO;aACf;YACD,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,KAAK;YACd,GAAG,MAAM;SACV,CAAA;IACH,CAAC;CACF","sourcesContent":["import { ColumnWidthCallback, FieldRenderer } from '../types'\n\nimport { DataCard } from '../data-card/data-card'\nimport { DataGrid } from '../data-grid/data-grid'\nimport { DataList } from '../data-list/data-list'\n\nexport class GutterSequence {\n static instance(config = {} as any) {\n return {\n type: 'gutter',\n name: '__seq__',\n getterType: 'sequence',\n width: function (this: DataGrid | DataList | DataCard, column): string {\n if (this.data) {\n var { limit = 0, page = 1, records = [] } = this.data || {}\n var lastIndex = (page - 1) * limit + records.length\n } else {\n var lastIndex = 100\n }\n\n return `${Math.max(String(lastIndex).length, 2)}ch`\n } as ColumnWidthCallback,\n resizable: false,\n sortable: false,\n header: '#',\n record: {\n renderer: function (value, column, record, rowIndex, field) {\n return value\n } as FieldRenderer,\n align: 'right'\n },\n forGrid: true,\n forList: false,\n ...config\n }\n }\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ColumnConfig } from '../
|
|
1
|
+
import { ColumnConfig } from '../types';
|
|
2
2
|
export declare function registerGutter(name: string, gutter: any): void;
|
|
3
3
|
export declare function unregisterGutter(name: string): void;
|
|
4
4
|
export declare function getGutters(): {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/gutters/registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAElD,IAAI,OAAO,GAA4B;IACrC,QAAQ,EAAE,cAAc;IACxB,cAAc,EAAE,iBAAiB;IACjC,MAAM,EAAE,YAAY;IACpB,KAAK,EAAE,WAAW;CACnB,CAAA;AAED,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,MAAW;IACtD,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAA;AACxB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,OAAO,OAAO,CAAC,IAAI,CAAC,CAAA;AACtB,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO,EAAE,GAAG,OAAO,EAAE,CAAA;AACvB,CAAC;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,MAAoB,EAAE,EAAE;IAC3D,IAAI,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAA;IAE5C,IAAI,KAAK,EAAE;QACT,OAAO,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;KAC9B;AACH,CAAC,CAAA","sourcesContent":["import { ColumnConfig } from '../
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/gutters/registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAElD,IAAI,OAAO,GAA4B;IACrC,QAAQ,EAAE,cAAc;IACxB,cAAc,EAAE,iBAAiB;IACjC,MAAM,EAAE,YAAY;IACpB,KAAK,EAAE,WAAW;CACnB,CAAA;AAED,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,MAAW;IACtD,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAA;AACxB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,OAAO,OAAO,CAAC,IAAI,CAAC,CAAA;AACtB,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO,EAAE,GAAG,OAAO,EAAE,CAAA;AACvB,CAAC;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,MAAoB,EAAE,EAAE;IAC3D,IAAI,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAA;IAE5C,IAAI,KAAK,EAAE;QACT,OAAO,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;KAC9B;AACH,CAAC,CAAA","sourcesContent":["import { ColumnConfig } from '../types'\nimport { GutterButton } from './gutter-button'\nimport { GutterDirty } from './gutter-dirty'\nimport { GutterRowSelector } from './gutter-row-selector'\nimport { GutterSequence } from './gutter-sequence'\n\nvar GUTTERS: { [name: string]: any } = {\n sequence: GutterSequence,\n 'row-selector': GutterRowSelector,\n button: GutterButton,\n dirty: GutterDirty\n}\n\nexport function registerGutter(name: string, gutter: any) {\n GUTTERS[name] = gutter\n}\n\nexport function unregisterGutter(name: string) {\n delete GUTTERS[name]\n}\n\nexport function getGutters() {\n return { ...GUTTERS }\n}\n\nexport const generateGutterColumn = (config: ColumnConfig) => {\n var clazz = GUTTERS[config.gutterName || '']\n\n if (clazz) {\n return clazz.instance(config)\n }\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import '../record-view/record-view';
|
|
2
|
-
import { ColumnConfig, GristData, GristRecord } from '../
|
|
2
|
+
import { ColumnConfig, GristData, GristRecord } from '../types';
|
|
3
3
|
import { DataGridField } from '../data-grid/data-grid-field';
|
|
4
4
|
export declare const RecordViewHandler: (columns: ColumnConfig[], data: GristData, column: ColumnConfig, record: GristRecord, rowIndex: number, field: DataGridField) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record-view-handler.js","sourceRoot":"","sources":["../../../src/handlers/record-view-handler.ts"],"names":[],"mappings":"AAAA,OAAO,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"record-view-handler.js","sourceRoot":"","sources":["../../../src/handlers/record-view-handler.ts"],"names":[],"mappings":"AAAA,OAAO,4BAA4B,CAAA;AAKnC,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAE1B;;;GAGG;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,UAC/B,OAAuB,EACvB,IAAe,EACf,MAAoB,EACpB,MAAmB,EACnB,QAAgB,EAChB,KAAoB;IAEpB,QAAQ,CAAC,aAAa,CACpB,IAAI,WAAW,CAAC,YAAY,EAAE;QAC5B,MAAM,EAAE;YACN,QAAQ,EAAE,IAAI,CAAA;;qBAED,KAAK;uBACH,OAAO;sBACR,MAAM;sBACN,MAAM;wBACJ,QAAQ;qBACX,CAAC,CAAQ,EAAE,EAAE;gBACpB,KAAK,CAAC,aAAa,CACjB,IAAI,WAAW,CAAC,cAAc,EAAE;oBAC9B,OAAO,EAAE,IAAI;oBACb,QAAQ,EAAE,IAAI;oBACd,MAAM,EAAE,MAAM;iBACf,CAAC,CACH,CAAA;YACH,CAAC;sBACS,CAAC,CAAQ,EAAE,EAAE;gBACrB,KAAK,CAAC,aAAa,CACjB,IAAI,WAAW,CAAC,cAAc,EAAE;oBAC9B,OAAO,EAAE,IAAI;oBACb,QAAQ,EAAE,IAAI;oBACd,MAAM,EAAE,MAAM;iBACf,CAAC,CACH,CAAA;gBACD,gBAAgB;YAClB,CAAC;kBACK,CAAC,CAAQ,EAAE,EAAE;gBACjB,gBAAgB;YAClB,CAAC;;SAEJ;SACF;QACD,OAAO,EAAE;YACP,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;SACtB;KACK,CAAC,CACV,CAAA;AACH,CAAC,CAAA","sourcesContent":["import '../record-view/record-view'\n\nimport { ColumnConfig, GristData, GristRecord } from '../types'\n\nimport { DataGridField } from '../data-grid/data-grid-field'\nimport { html } from 'lit'\n\n/*\n * handler들은 ox-grid-field 로부터 호출되는 것을 전제로 하며,\n * 전반적인 처리를 위해서, columns 및 data 정보를 포함해서 제공할 수 있어야 한다.\n */\n\nexport const RecordViewHandler = function (\n columns: ColumnConfig[],\n data: GristData,\n column: ColumnConfig,\n record: GristRecord,\n rowIndex: number,\n field: DataGridField\n): void {\n document.dispatchEvent(\n new CustomEvent('open-popup', {\n detail: {\n template: html`\n <record-view\n .field=${field}\n .columns=${columns}\n .column=${column}\n .record=${record}\n .rowIndex=${rowIndex}\n @reset=${(e: Event) => {\n field.dispatchEvent(\n new CustomEvent('record-reset', {\n bubbles: true,\n composed: true,\n detail: record\n })\n )\n }}\n @cancel=${(e: Event) => {\n field.dispatchEvent(\n new CustomEvent('record-reset', {\n bubbles: true,\n composed: true,\n detail: record\n })\n )\n // popup.close()\n }}\n @ok=${(e: Event) => {\n // popup.close()\n }}\n ></record-view>\n `\n },\n options: {\n backdrop: true,\n size: 'large',\n title: record['name']\n }\n } as any)\n )\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { GristEventHandler } from '../
|
|
1
|
+
import { GristEventHandler } from '../types';
|
|
2
2
|
export declare function registerGristEventHandler(type: string, handler: GristEventHandler): void;
|
|
3
3
|
export declare function unregisterGristEventHandler(type: string): void;
|
|
4
4
|
export declare function getGristEventHandlers(): {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/handlers/registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAErD,IAAI,QAAQ,GAER;IACF,aAAa,EAAE,iBAAsC;IACrD,YAAY,EAAE,SAA8B;IAC5C,mBAAmB,EAAE,eAAoC;CAC1D,CAAA;AAED,MAAM,UAAU,yBAAyB,CAAC,IAAY,EAAE,OAA0B;IAChF,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAA;AAC1B,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,IAAY;IACtD,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAA;AACvB,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO,EAAE,GAAG,QAAQ,EAAE,CAAA;AACxB,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAgC;IACnE,IAAI,OAAO,IAAI,IAAI,UAAU,EAAE;QAC7B,OAAO,IAAI,CAAA;KACZ;IAED,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAA;AACvB,CAAC","sourcesContent":["import { GristEventHandler } from '../
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/handlers/registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAErD,IAAI,QAAQ,GAER;IACF,aAAa,EAAE,iBAAsC;IACrD,YAAY,EAAE,SAA8B;IAC5C,mBAAmB,EAAE,eAAoC;CAC1D,CAAA;AAED,MAAM,UAAU,yBAAyB,CAAC,IAAY,EAAE,OAA0B;IAChF,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAA;AAC1B,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,IAAY;IACtD,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAA;AACvB,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO,EAAE,GAAG,QAAQ,EAAE,CAAA;AACxB,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAgC;IACnE,IAAI,OAAO,IAAI,IAAI,UAAU,EAAE;QAC7B,OAAO,IAAI,CAAA;KACZ;IAED,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAA;AACvB,CAAC","sourcesContent":["import { GristEventHandler } from '../types'\nimport { RecordViewHandler } from './record-view-handler'\nimport { SelectRow } from './select-row'\nimport { SelectRowToggle } from './select-row-toggle'\n\nvar HANDLERS: {\n [name: string]: GristEventHandler\n} = {\n 'record-view': RecordViewHandler as GristEventHandler,\n 'select-row': SelectRow as GristEventHandler,\n 'select-row-toggle': SelectRowToggle as GristEventHandler\n}\n\nexport function registerGristEventHandler(type: string, handler: GristEventHandler) {\n HANDLERS[type] = handler\n}\n\nexport function unregisterGristEventHandler(type: string) {\n delete HANDLERS[type]\n}\n\nexport function getGristEventHandlers() {\n return { ...HANDLERS }\n}\n\nexport function getGristEventHandler(type: string | GristEventHandler): GristEventHandler {\n if (typeof type == 'function') {\n return type\n }\n\n return HANDLERS[type]\n}\n"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { ColumnConfig, GristData, GristRecord } from '../
|
|
1
|
+
import { ColumnConfig, GristData, GristRecord } from '../types';
|
|
2
2
|
import { DataGridField } from '../data-grid/data-grid-field';
|
|
3
3
|
export declare const SelectRowToggle: (columns: ColumnConfig[], data: GristData, column: ColumnConfig, record: GristRecord, rowIndex: number, field: DataGridField) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select-row-toggle.js","sourceRoot":"","sources":["../../../src/handlers/select-row-toggle.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"select-row-toggle.js","sourceRoot":"","sources":["../../../src/handlers/select-row-toggle.ts"],"names":[],"mappings":"AAIA;;;GAGG;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,UAC7B,OAAuB,EACvB,IAAe,EACf,MAAoB,EACpB,MAAmB,EACnB,QAAgB,EAChB,KAAoB;IAEpB,KAAK,CAAC,aAAa,CACjB,IAAI,WAAW,CAAC,sBAAsB,EAAE;QACtC,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC;YAC5B,CAAC,CAAC;gBACE,OAAO,EAAE,CAAC,MAAM,CAAC;aAClB;YACH,CAAC,CAAC;gBACE,KAAK,EAAE,CAAC,MAAM,CAAC;aAChB;KACN,CAAC,CACH,CAAA;AACH,CAAC,CAAA","sourcesContent":["import { ColumnConfig, GristData, GristRecord } from '../types'\n\nimport { DataGridField } from '../data-grid/data-grid-field'\n\n/*\n * handler들은 ox-grid-field 로부터 호출되는 것을 전제로 하며,\n * 전반적인 처리를 위해서, columns 및 data 정보를 포함해서 제공할 수 있어야 한다.\n */\n\nexport const SelectRowToggle = function (\n columns: ColumnConfig[],\n data: GristData,\n column: ColumnConfig,\n record: GristRecord,\n rowIndex: number,\n field: DataGridField\n): void {\n field.dispatchEvent(\n new CustomEvent('select-record-change', {\n bubbles: true,\n composed: true,\n detail: record['__selected__']\n ? {\n removed: [record]\n }\n : {\n added: [record]\n }\n })\n )\n}\n"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { ColumnConfig, GristData, GristRecord } from '../
|
|
1
|
+
import { ColumnConfig, GristData, GristRecord } from '../types';
|
|
2
2
|
import { DataGridField } from '../data-grid/data-grid-field';
|
|
3
3
|
export declare const SelectRow: (columns: ColumnConfig[], data: GristData, column: ColumnConfig, record: GristRecord, rowIndex: number, field: DataGridField) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select-row.js","sourceRoot":"","sources":["../../../src/handlers/select-row.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"select-row.js","sourceRoot":"","sources":["../../../src/handlers/select-row.ts"],"names":[],"mappings":"AAIA;;;GAGG;AAEH,MAAM,CAAC,MAAM,SAAS,GAAG,UACvB,OAAuB,EACvB,IAAe,EACf,MAAoB,EACpB,MAAmB,EACnB,QAAgB,EAChB,KAAoB;IAEpB,KAAK,CAAC,aAAa,CACjB,IAAI,WAAW,CAAC,sBAAsB,EAAE;QACtC,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE;YACN,KAAK,EAAE,CAAC,MAAM,CAAC;SAChB;KACF,CAAC,CACH,CAAA;AACH,CAAC,CAAA","sourcesContent":["import { ColumnConfig, GristData, GristRecord } from '../types'\n\nimport { DataGridField } from '../data-grid/data-grid-field'\n\n/*\n * handler들은 ox-grid-field 로부터 호출되는 것을 전제로 하며,\n * 전반적인 처리를 위해서, columns 및 data 정보를 포함해서 제공할 수 있어야 한다.\n */\n\nexport const SelectRow = function (\n columns: ColumnConfig[],\n data: GristData,\n column: ColumnConfig,\n record: GristRecord,\n rowIndex: number,\n field: DataGridField\n): void {\n field.dispatchEvent(\n new CustomEvent('select-record-change', {\n bubbles: true,\n composed: true,\n detail: {\n added: [record]\n }\n })\n )\n}\n"]}
|
package/dist/src/index.d.ts
CHANGED
package/dist/src/index.js
CHANGED
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAE7B,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA","sourcesContent":["export * from './data-grist'\nexport * from './data-report'\n\nexport * from './editors'\nexport * from './renderers'\nexport * from './handlers'\nexport * from './formatters'\nexport * from './gutters'\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA;AACvC,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAE7B,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA","sourcesContent":["export * from './configure/zero-config'\nexport * from './data-grist'\nexport * from './data-report'\n\nexport * from './editors'\nexport * from './renderers'\nexport * from './handlers'\nexport * from './formatters'\nexport * from './gutters'\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import '@material/mwc-icon';
|
|
2
2
|
import '../data-grid/data-grid-field';
|
|
3
|
+
import { ColumnConfig, GristRecord } from '../types';
|
|
3
4
|
import { LitElement } from 'lit';
|
|
4
|
-
import { ColumnConfig, GristRecord } from '../configure/config-types';
|
|
5
5
|
export declare class RecordViewBody extends LitElement {
|
|
6
6
|
static styles: import("lit").CSSResult[];
|
|
7
7
|
columns: ColumnConfig[];
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
2
|
import '@material/mwc-icon';
|
|
3
3
|
import '../data-grid/data-grid-field';
|
|
4
|
-
import { css, html
|
|
4
|
+
import { LitElement, css, html } from 'lit';
|
|
5
5
|
import { customElement, property } from 'lit/decorators.js';
|
|
6
|
-
import { ZERO_RECORD } from '../configure/config
|
|
6
|
+
import { ZERO_RECORD } from '../configure/zero-config';
|
|
7
7
|
const KEY_ENTER = 13;
|
|
8
8
|
const KEY_ESC = 27;
|
|
9
9
|
let RecordViewBody = class RecordViewBody extends LitElement {
|