@operato/data-grist 0.2.49 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/CHANGELOG.md +59 -0
  2. package/custom-elements.json +1548 -1490
  3. package/demo/index.html +3 -2
  4. package/dist/src/data-card/data-card-field.js +11 -2
  5. package/dist/src/data-card/data-card-field.js.map +1 -1
  6. package/dist/src/data-card/data-card-gutter-menu.d.ts +1 -1
  7. package/dist/src/data-card/data-card-gutter-menu.js +36 -9
  8. package/dist/src/data-card/data-card-gutter-menu.js.map +1 -1
  9. package/dist/src/data-card/data-card-gutter.d.ts +1 -1
  10. package/dist/src/data-card/data-card-gutter.js +3 -2
  11. package/dist/src/data-card/data-card-gutter.js.map +1 -1
  12. package/dist/src/data-card/record-card.d.ts +3 -0
  13. package/dist/src/data-card/record-card.js +14 -14
  14. package/dist/src/data-card/record-card.js.map +1 -1
  15. package/dist/src/data-grid/data-grid-header.d.ts +2 -2
  16. package/dist/src/data-grid/data-grid-header.js +4 -4
  17. package/dist/src/data-grid/data-grid-header.js.map +1 -1
  18. package/dist/src/data-grid/data-grid.js +0 -1
  19. package/dist/src/data-grid/data-grid.js.map +1 -1
  20. package/dist/src/filters/filter-select.d.ts +1 -1
  21. package/dist/src/filters/filter-select.js +1 -1
  22. package/dist/src/filters/filter-select.js.map +1 -1
  23. package/dist/src/index.d.ts +1 -0
  24. package/dist/src/index.js +1 -0
  25. package/dist/src/index.js.map +1 -1
  26. package/dist/src/search-form/ox-select-field.d.ts +3 -3
  27. package/dist/src/search-form/ox-select-field.js +3 -3
  28. package/dist/src/search-form/ox-select-field.js.map +1 -1
  29. package/dist/src/types.d.ts +1 -1
  30. package/dist/src/types.js.map +1 -1
  31. package/dist/tsconfig.tsbuildinfo +1 -1
  32. package/package.json +8 -8
  33. package/src/data-card/data-card-field.ts +11 -2
  34. package/src/data-card/data-card-gutter-menu.ts +35 -10
  35. package/src/data-card/data-card-gutter.ts +5 -3
  36. package/src/data-card/record-card.ts +14 -14
  37. package/src/data-grid/data-grid-header.ts +7 -6
  38. package/src/data-grid/data-grid.ts +0 -1
  39. package/src/filters/filter-select.ts +3 -2
  40. package/src/index.ts +2 -0
  41. package/src/search-form/ox-select-field.ts +6 -5
  42. package/src/types.ts +1 -1
  43. package/tsconfig.json +1 -0
  44. package/yarn-error.log +0 -17496
@@ -1,11 +1,12 @@
1
1
  import '@material/mwc-icon'
2
- import './data-card-gutter'
2
+ import './data-card-gutter.js'
3
3
 
4
- import { ColumnConfig, GristRecord } from '../types'
5
- import { LitElement, css, html } from 'lit'
4
+ import { css, html, LitElement } from 'lit'
6
5
  import { customElement, property, query } from 'lit/decorators.js'
7
6
 
8
- import { OxPopupMenu } from '@operato/popup'
7
+ import { OxPopup } from '@operato/popup'
8
+
9
+ import { ColumnConfig, GristRecord } from '../types.js'
9
10
 
10
11
  @customElement('ox-card-gutter-menu')
11
12
  class DataCardGutterMenu extends LitElement {
@@ -14,20 +15,34 @@ class DataCardGutterMenu extends LitElement {
14
15
  position: relative;
15
16
  }
16
17
 
18
+ ::slotted(ox-popup) {
19
+ padding: 4px;
20
+ }
21
+
17
22
  mwc-icon {
18
23
  cursor: pointer;
24
+
25
+ flex: 1;
26
+ margin: 0;
27
+ margin-bottom: 1px;
28
+ border: var(--data-card-item-btn-border);
29
+ border-radius: var(--data-card-item-btn-border-radius);
30
+ padding: var(--data-card-item-btn-padding);
31
+ font-size: var(--grid-record-fontsize);
19
32
  }
20
33
  `
21
34
 
22
35
  @property({ type: Object }) gutters!: ColumnConfig[]
23
36
  @property({ type: Number }) rowIndex!: number
24
37
  @property({ type: Object }) record!: GristRecord
38
+ @property() clickHandler!: EventListener
39
+ @property() dblclickHandler!: EventListener
25
40
 
26
41
  @query('mwc-icon') icon!: Element
27
42
 
28
43
  render() {
29
44
  return html`
30
- <mwc-icon @click=${(e: Event) => this.open()}>more_horiz</mwc-icon>
45
+ <mwc-icon @click=${(e: Event) => this.open(e)}>more_horiz</mwc-icon>
31
46
  <slot></slot>
32
47
  `
33
48
  }
@@ -43,20 +58,30 @@ class DataCardGutterMenu extends LitElement {
43
58
  .value=${this.record[gutter.name]}
44
59
  menu
45
60
  alive-on-select
61
+ @click=${(e: Event) => {
62
+ this.clickHandler(e)
63
+ // TODO close popup
64
+ }}
65
+ @dblclick=${(e: Event) => {
66
+ this.dblclickHandler(e)
67
+ // TODO close popup
68
+ }}
46
69
  ></ox-card-gutter>
47
70
  `
48
71
  )}
49
72
  `
50
73
  }
51
74
 
52
- open() {
53
- const top = 0
54
- const left = (this.icon as HTMLElement).offsetWidth
75
+ open(e: Event) {
76
+ e.stopPropagation()
77
+
78
+ const bottom = (this.icon as HTMLElement).offsetHeight
79
+ const left = -4
55
80
  const parent = this
56
81
 
57
- OxPopupMenu.open({
82
+ OxPopup.open({
58
83
  template: this.menuRender(),
59
- top,
84
+ bottom,
60
85
  left,
61
86
  parent
62
87
  })
@@ -1,8 +1,9 @@
1
- import { ColumnConfig, GristRecord } from '../types'
2
- import { LitElement, PropertyValues, TemplateResult, css, html } from 'lit'
3
- import { ZERO_COLUMN, ZERO_RECORD } from '../configure/zero-config'
1
+ import { css, html, LitElement, PropertyValues, TemplateResult } from 'lit'
4
2
  import { customElement, property } from 'lit/decorators.js'
5
3
 
4
+ import { ZERO_COLUMN, ZERO_RECORD } from '../configure/zero-config'
5
+ import { ColumnConfig, GristRecord } from '../types'
6
+
6
7
  const DEFAULT_TEXT_ALIGN = 'left'
7
8
 
8
9
  @customElement('ox-card-gutter')
@@ -24,6 +25,7 @@ export class DataCardGutter extends LitElement {
24
25
  border: var(--data-card-item-btn-border);
25
26
  border-radius: var(--data-card-item-btn-border-radius);
26
27
  padding: var(--data-card-item-btn-padding);
28
+ font-size: var(--grid-record-fontsize);
27
29
  }
28
30
  *:hover {
29
31
  color: var(--grid-record-color-hover);
@@ -2,6 +2,7 @@ import '@material/mwc-icon'
2
2
  import './data-card-field'
3
3
  import '../record-view'
4
4
  import './data-card-gutter'
5
+ import './data-card-gutter-menu'
5
6
 
6
7
  import { GristConfig, GristData, GristRecord } from '../types'
7
8
  import { LitElement, PropertyValues, css, html } from 'lit'
@@ -61,11 +62,12 @@ export class RecordCard extends LitElement {
61
62
 
62
63
  [thumbnail] {
63
64
  width: 100%;
64
- max-height: var(--data-card-thumbnail-height);
65
+ height: var(--data-card-thumbnail-height);
65
66
  border-top-left-radius: var(--data-card-record-card-border-radius);
66
67
  border-top-right-radius: var(--data-card-record-card-border-radius);
67
68
  border-bottom: var(--data-card-thumbnail-border-bottom);
68
69
  overflow: hidden;
70
+ align-self: center;
69
71
  }
70
72
 
71
73
  [content] {
@@ -77,16 +79,6 @@ export class RecordCard extends LitElement {
77
79
  margin: var(--data-card-item-margin);
78
80
  }
79
81
 
80
- [gutters] {
81
- width: 50px;
82
- grid-area: gutters;
83
-
84
- display: flex;
85
- flex-direction: column;
86
- justify-content: space-evenly;
87
-
88
- position: relative;
89
- }
90
82
  [brief] {
91
83
  grid-area: brief;
92
84
  }
@@ -137,6 +129,8 @@ export class RecordCard extends LitElement {
137
129
  @property({ type: Boolean, attribute: 'selected-row' }) selectedRow: boolean = false
138
130
 
139
131
  private _recordView: any
132
+ private clickHandler = recordCardClickHandler.bind(this) as EventListener
133
+ private dblclickHandler = recordCardDblClickHandler.bind(this) as EventListener
140
134
 
141
135
  attributeChangedCallback(name: string, oldval: any, newval: any) {
142
136
  super.attributeChangedCallback(name, oldval, newval)
@@ -175,8 +169,8 @@ export class RecordCard extends LitElement {
175
169
  */
176
170
  // longpressable(this.renderRoot.querySelector('[content]'))
177
171
  // this.renderRoot.addEventListener('long-press', recordPartialLongPressHandler.bind(this))
178
- this.renderRoot.addEventListener('click', recordCardClickHandler.bind(this) as EventListener)
179
- this.renderRoot.addEventListener('dblclick', recordCardDblClickHandler.bind(this) as EventListener)
172
+ this.renderRoot.addEventListener('click', this.clickHandler)
173
+ this.renderRoot.addEventListener('dblclick', this.dblclickHandler)
180
174
  }
181
175
 
182
176
  updated(changes: PropertyValues<this>) {
@@ -243,7 +237,13 @@ export class RecordCard extends LitElement {
243
237
  `
244
238
  : gutters.length > 2
245
239
  ? html`
246
- <ox-card-gutter-menu .gutters=${gutters} .rowIndex=${rowIndex} .record=${record}></ox-card-gutter-menu>
240
+ <ox-card-gutter-menu
241
+ .gutters=${gutters}
242
+ .rowIndex=${rowIndex}
243
+ .record=${record}
244
+ .clickHandler=${this.clickHandler}
245
+ .dblclickHandler=${this.dblclickHandler}
246
+ ></ox-card-gutter-menu>
247
247
  `
248
248
  : html``}
249
249
  </div>
@@ -1,15 +1,16 @@
1
- import '@operato/popup'
1
+ import '@operato/popup/ox-popup.js'
2
2
  import '@material/mwc-icon'
3
3
 
4
- import { ColumnConfig, GristConfig, GristData, SortersConfig } from '../types'
5
- import { LitElement, PropertyValues, css, html } from 'lit'
6
- import { ZERO_COLUMNS, ZERO_CONFIG, ZERO_DATA } from '../configure/zero-config'
4
+ import { css, html, LitElement, PropertyValues } from 'lit'
7
5
  import { customElement, property, state } from 'lit/decorators.js'
6
+ import throttle from 'lodash-es/throttle'
8
7
 
9
- import { FilterStyles } from '../filters/filter-styles'
10
8
  import { OxPopup } from '@operato/popup'
9
+
10
+ import { ZERO_COLUMNS, ZERO_CONFIG, ZERO_DATA } from '../configure/zero-config'
11
+ import { FilterStyles } from '../filters/filter-styles'
11
12
  import { getRenderer } from '../filters/registry'
12
- import throttle from 'lodash-es/throttle'
13
+ import { ColumnConfig, GristConfig, GristData, SortersConfig } from '../types'
13
14
 
14
15
  @customElement('ox-grid-header')
15
16
  export class DataGridHeader extends LitElement {
@@ -25,7 +25,6 @@ export class DataGrid extends LitElement {
25
25
 
26
26
  overflow: hidden;
27
27
 
28
- border: var(--grid-container-border-color);
29
28
  border-width: var(--grid-container-border-width);
30
29
  }
31
30
 
@@ -1,8 +1,9 @@
1
- import '@operato/input/dist/src/ox-checkbox.js'
1
+ import '@operato/input/ox-checkbox.js'
2
2
 
3
- import { FilterSelectRenderer } from '../types'
4
3
  import { html } from 'lit-html'
5
4
 
5
+ import { FilterSelectRenderer } from '../types'
6
+
6
7
  export const FilterSelect: FilterSelectRenderer = (column, owner) => {
7
8
  const options = (typeof column.filter !== 'boolean' && column.filter?.options) || []
8
9
 
package/src/index.ts CHANGED
@@ -1,3 +1,5 @@
1
+ export * from './types'
2
+
1
3
  export * from './configure/zero-config'
2
4
  export * from './data-grist'
3
5
  export * from './data-report'
@@ -1,13 +1,14 @@
1
- import '@operato/popup'
1
+ import '@operato/popup/ox-popup-list.js'
2
2
  import '@material/mwc-icon'
3
3
 
4
- import { CSSResult, TemplateResult, css, html } from 'lit'
5
- import { OXFieldOptionProps, OXSelectFieldProps } from '..'
4
+ import { css, CSSResult, html, TemplateResult } from 'lit'
5
+ import { ifDefined } from 'lit-html/directives/if-defined.js'
6
6
  import { customElement, property } from 'lit/decorators.js'
7
7
 
8
- import { OXBasicField } from './ox-basic-field'
9
8
  import { OxPopupList } from '@operato/popup'
10
- import { ifDefined } from 'lit-html/directives/if-defined.js'
9
+
10
+ import { OXFieldOptionProps, OXSelectFieldProps } from '../index.js'
11
+ import { OXBasicField } from './ox-basic-field.js'
11
12
 
12
13
  @customElement('ox-select-field')
13
14
  export class OXSelectField extends OXBasicField {
package/src/types.ts CHANGED
@@ -23,7 +23,7 @@ export type FilterConfig = { type: string; options?: { [key: string]: any } } |
23
23
  export type PaginationConfig = {
24
24
  page?: number
25
25
  limit?: number
26
- pages: number[]
26
+ pages?: number[]
27
27
  infinite?: boolean
28
28
  }
29
29
 
package/tsconfig.json CHANGED
@@ -10,6 +10,7 @@
10
10
  "allowSyntheticDefaultImports": true,
11
11
  "allowJs": true,
12
12
  "experimentalDecorators": true,
13
+ "useDefineForClassFields": false,
13
14
  "importHelpers": true,
14
15
  "outDir": "dist",
15
16
  "sourceMap": true,