@operato/data-grist 0.2.36 → 0.2.37

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 CHANGED
@@ -3,6 +3,16 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ### [0.2.37](https://github.com/hatiolab/operato/compare/v0.2.36...v0.2.37) (2021-12-07)
7
+
8
+
9
+ ### :bug: Bug Fix
10
+
11
+ * data-grist fetch-handler related types ([804f635](https://github.com/hatiolab/operato/commit/804f635bb19b204b675554eacb31840ecc8ee47b))
12
+ * data-grist headroom logic about padding-top & margin-top switching ([81ce72b](https://github.com/hatiolab/operato/commit/81ce72b4912c2b6e5b4e0b3035bf82c55ba91a1a))
13
+
14
+
15
+
6
16
  ### [0.2.36](https://github.com/hatiolab/operato/compare/v0.2.35...v0.2.36) (2021-12-06)
7
17
 
8
18
 
@@ -163,9 +163,19 @@
163
163
  },
164
164
  {
165
165
  "kind": "field",
166
- "name": "_resizeObserver",
167
- "privacy": "private",
168
- "default": "new ResizeObserver(entries => {\n this._adjustPaddingTop()\n })"
166
+ "name": "orginPaddingTop",
167
+ "type": {
168
+ "text": "string | undefined"
169
+ },
170
+ "privacy": "private"
171
+ },
172
+ {
173
+ "kind": "field",
174
+ "name": "originMarginTop",
175
+ "type": {
176
+ "text": "string | undefined"
177
+ },
178
+ "privacy": "private"
169
179
  },
170
180
  {
171
181
  "kind": "field",
@@ -199,11 +209,6 @@
199
209
  "name": "_setPullToRefresh",
200
210
  "privacy": "private"
201
211
  },
202
- {
203
- "kind": "method",
204
- "name": "_adjustPaddingTop",
205
- "privacy": "private"
206
- },
207
212
  {
208
213
  "kind": "method",
209
214
  "name": "_setHeadroom",
@@ -1,7 +1,7 @@
1
1
  import '@material/mwc-icon';
2
2
  import './record-card';
3
- import { ColumnConfig, GristConfig, GristData, GristRecord } from '../types';
4
3
  import { LitElement, PropertyValues } from 'lit';
4
+ import { ColumnConfig, GristConfig, GristData, GristRecord } from '../types';
5
5
  export declare class DataCard extends LitElement {
6
6
  static styles: import("lit").CSSResult[];
7
7
  config: GristConfig;
@@ -1,9 +1,9 @@
1
1
  import { __decorate } from "tslib";
2
2
  import '@material/mwc-icon';
3
3
  import './record-card';
4
- import { LitElement, css, html } from 'lit';
5
- import { ZERO_CONFIG, ZERO_DATA } from '../configure/zero-config';
4
+ import { css, html, LitElement } from 'lit';
6
5
  import { customElement, property } from 'lit/decorators.js';
6
+ import { ZERO_CONFIG, ZERO_DATA } from '../configure/zero-config';
7
7
  import { dataCardClickHandler } from './event-handlers/data-card-click-handler';
8
8
  import { dataCardDblclickHandler } from './event-handlers/data-card-dblclick-handler';
9
9
  let DataCard = class DataCard extends LitElement {
@@ -237,12 +237,6 @@ DataCard.styles = [
237
237
  width: 100%;
238
238
  }
239
239
 
240
- slot[name='headroom'] {
241
- display: flex;
242
- position: absolute;
243
- top: 0;
244
- }
245
-
246
240
  @media screen and (max-width: 460px) {
247
241
  #setting {
248
242
  grid-template-columns: 1fr;
@@ -1 +1 @@
1
- {"version":3,"file":"data-card.js","sourceRoot":"","sources":["../../../src/data-card/data-card.ts"],"names":[],"mappings":";AAAA,OAAO,oBAAoB,CAAA;AAC3B,OAAO,eAAe,CAAA;AAGtB,OAAO,EAAE,UAAU,EAAkB,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAE3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAA;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAA;AAGrF,IAAa,QAAQ,GAArB,MAAa,QAAS,SAAQ,UAAU;IAAxC;;QA4D8B,WAAM,GAAgB,WAAW,CAAA;QACjC,SAAI,GAAc,SAAS,CAAA;QAC1B,UAAK,GAAY,KAAK,CAAA;QAChB,aAAQ,GAAkB,EAAE,CAAA;QAEvD,WAAM,GAAW,CAAC,CAAA;QAClB,WAAM,GAAW,EAAE,CAAA;QACnB,UAAK,GAAW,CAAC,CAAA;IA8N3B,CAAC;IA5NC,YAAY,CAAC,OAA6B;QACxC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QAEjB,wBAAwB;QACxB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE;YAClC,MAAM,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAA;YAC3C,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAA;YACtC,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAA;YAEvC,IAAI,iBAAiB,IAAI,YAAY,GAAG,gBAAgB,GAAG,CAAC,EAAE;gBAC5D,8BAA8B;gBAC9B,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAA;gBAEnD,IAAI,IAAI,CAAC,KAAK,GAAG,QAAQ,EAAE;oBACzB,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;iBACtF;aACF;YAED,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,IAAI,CAAC,CAAA;QAClC,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,EAAE,CAAC,CAAC,EAAE;YAChD,IAAI,EACF,OAAO,EAAE,eAAe,EACxB,KAAK,GAAG,EAAE,EACV,OAAO,GAAG,EAAE,EACb,GAAI,CAAiB,CAAC,MAItB,CAAA;YACD,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAA;YACjC,IAAI,EAAE,UAAU,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAA;YAEnD,IAAI,CAAC,OAAO,IAAI,CAAC,UAAU,EAAE;gBAC3B,OAAM;aACP;iBAAM,IAAI,UAAU,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE;gBAC7C,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC,CAAC,CAAA;aAC5D;YAED,IAAI,eAAe,EAAE;gBACnB,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC,CAAC,CAAA;gBAC3D,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;aACnE;iBAAM;gBACL,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC,CAAC,CAAA;gBAC3D,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;aACzD;YAED,IAAI,CAAC,aAAa,EAAE,CAAA;QACtB,CAAC,CAAC,CAAA;QAEF,6BAA6B;QAC7B,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE;YACxC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAI,CAAiB,CAAC,MAM/D,CAAA;YAED,qBAAqB;YACrB,IAAI,KAAK,KAAK,MAAM,EAAE;gBACpB,OAAM;aACP;YAED,IAAI,UAAU,GAAG,MAAM,CAAC,UAAU,CAAA;YAClC,IAAI,UAAU,IAAI,OAAO,UAAU,IAAI,UAAU,EAAE;gBACjD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE;oBACzD,OAAM;iBACP;aACF;YAED,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,CAAA;QAC7D,CAAC,CAAC,CAAA;QAEF,6BAA6B;QAC7B,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE;YACxC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,GAAI,CAAiB,CAAC,MAGxC,CAAA;YAED,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;QACvD,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,OAAO,EAAE,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAkB,CAAC,CAAA;QAC3F,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,UAAU,EAAE,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAkB,CAAC,CAAA;IACnG,CAAC;IAED,eAAe,CACb,UAAuB,EACvB,GAAW,EACX,MAA2B,CAAC,mCAAmC;QAE/D,sDAAsD;QAEtD,2CAA2C;QAC3C,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAA;QAE/B,IAAI,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;QAC/B,IAAI,WAAwB,CAAA;QAC5B,IAAI,YAAY,GAAG,KAAK,CAAA;QACxB,IAAI,YAAY,GAAG,KAAK,CAAA;QAExB,IAAI,CAAC,UAAU,EAAE;YACf,IAAI,CAAC,YAAY,EAAE;gBACjB,yEAAyE;gBACzE,IAAI,CAAC,aAAa,EAAE,CAAA;gBACpB,OAAM;aACP;iBAAM;gBACL;;;mBAGG;gBACH,IAAI,YAAY,CAAC,WAAW,CAAC,IAAI,GAAG,EAAE;oBACpC,YAAY,GAAG,IAAI,CAAA;iBACpB;qBAAM;oBACL,WAAW,GAAG;wBACZ,GAAG,YAAY;wBACf,SAAS,EAAE,GAAG;qBACf,CAAA;iBACF;aACF;SACF;aAAM;YACL,IAAI,CAAC,YAAY,EAAE;gBACjB,mCAAmC;gBACnC,WAAW,GAAG;oBACZ,GAAG,UAAU;oBACb,SAAS,EAAE,GAAG;iBACf,CAAA;gBAED,YAAY,GAAG,IAAI,CAAA;aACpB;iBAAM;gBACL,IAAI,WAAW,GAAG,YAAY,CAAC,WAAW,CAAC,CAAA;gBAC3C,IAAI,WAAW,IAAI,GAAG,EAAE;oBACtB,oCAAoC;oBACpC,WAAW,GAAG;wBACZ,GAAG,YAAY;wBACf,GAAG,UAAU;wBACb,SAAS,EAAE,GAAG;qBACf,CAAA;iBACF;qBAAM;oBACL,6BAA6B;oBAC7B,WAAW,GAAG;wBACZ,GAAG,YAAY;wBACf,GAAG,UAAU;wBACb,SAAS,EAAE,GAAG;qBACf,CAAA;iBACF;aACF;SACF;QAED,IAAI,YAAY,EAAE;YAChB,OAAO,CAAC,IAAI,CAAC,WAAY,CAAC,CAAA;SAC3B;aAAM,IAAI,YAAY,EAAE;YACvB,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;SACvB;aAAM;YACL,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,WAAY,CAAC,CAAA;SACrC;QAED,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,eAAe,EAAE;YAC/B,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE;gBACN,MAAM,EAAE,YAAY;gBACpB,KAAK,EAAE,WAAY;gBACnB,MAAM;gBACN,GAAG;aACJ;SACF,CAAC,CACH,CAAA;IACH,CAAC;IAED,OAAO,CAAC,OAA6B;QACnC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YACzB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAA;YAClB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAA;SACf;QAED,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YACvB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAA;YACjC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAA;YAClC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAA;YACnC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAA;SACjC;IACH,CAAC;IAED,MAAM;QACJ,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAA;QAEjC,OAAO,IAAI,CAAA;QACP,OAAO,CAAC,GAAG,CACX,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAA;;sBAEZ,IAAI,CAAC,MAAM;oBACb,IAAI,CAAC,IAAI;sBACP,MAAM;wBACJ,QAAQ;4BACJ,MAAM,CAAC,cAAc,CAAC;qBAC7B,MAAM,CAAC,WAAW,CAAC;;SAE/B,CACF;QACC,IAAI,CAAC,KAAK;YACV,CAAC,CAAC,IAAI,CAAA,EAAE;YACR,CAAC,CAAC,IAAI,CAAA,iCAAiC,CAAC,CAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,2BAA2B;KAClG,CAAA;IACH,CAAC;IAED,OAAO,CAAC,CAAQ;QACd,IAAI,CAAC,SAAS,GAAG,CAAC,CAAA;QAElB,CAAC,CAAC,eAAe,EAAE,CAAA;IACrB,CAAC;IAED,IAAI,mBAAmB;QACrB,OAAO,IAAI,CAAA;IACb,CAAC;CACF,CAAA;AAhSQ,eAAM,GAAG;IACd,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAuDF;CACF,CAAA;AAE2B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;wCAAkC;AACjC;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;sCAA4B;AAC1B;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;uCAAuB;AACxB;IAA1B,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;0CAAqC;AA/DpD,QAAQ;IADpB,aAAa,CAAC,SAAS,CAAC;GACZ,QAAQ,CAiSpB;SAjSY,QAAQ","sourcesContent":["import '@material/mwc-icon'\nimport './record-card'\n\nimport { ColumnConfig, GristConfig, GristData, GristRecord } from '../types'\nimport { LitElement, PropertyValues, css, html } from 'lit'\nimport { ZERO_CONFIG, ZERO_DATA } from '../configure/zero-config'\nimport { customElement, property } from 'lit/decorators.js'\n\nimport { dataCardClickHandler } from './event-handlers/data-card-click-handler'\nimport { dataCardDblclickHandler } from './event-handlers/data-card-dblclick-handler'\n\n@customElement('ox-card')\nexport class DataCard extends LitElement {\n static styles = [\n css`\n :host {\n background-color: var(--data-card-background-color);\n overflow-y: auto;\n padding: var(--padding-wide);\n\n display: grid;\n grid-template-columns: var(--data-card-template);\n grid-template-rows: min-content;\n grid-gap: var(--margin-wide);\n }\n\n ox-record-card {\n align-items: stretch;\n background-color: var(--data-card-record-card-background-color);\n border: var(--data-card-record-card-border);\n border-radius: var(--data-card-record-card-border-radius);\n }\n ox-record-card:hover {\n border: var(--data-card-record-card-border-hover);\n box-shadow: var(--data-card-record-card-boxshadow-hover);\n }\n\n [selected-row] {\n background-color: var(--data-card-record-card-selected-border);\n }\n\n #upward {\n --mdc-icon-size: 26px;\n position: absolute;\n top: var(--data-card-fab-position-vertical);\n right: var(--data-card-fab-position-horizontal);\n background-color: rgba(255, 255, 255, 0.7);\n border-radius: 20px;\n color: var(--data-card-fab-color);\n box-shadow: var(--data-card-fab-shadow);\n padding: 7px;\n }\n\n slot {\n width: 100%;\n }\n\n slot[name='headroom'] {\n display: flex;\n position: absolute;\n top: 0;\n }\n\n @media screen and (max-width: 460px) {\n #setting {\n grid-template-columns: 1fr;\n grid-template-rows: 1fr 1fr;\n }\n }\n `\n ]\n\n @property({ type: Object }) config: GristConfig = ZERO_CONFIG\n @property({ type: Object }) data: GristData = ZERO_DATA\n @property({ type: Boolean }) isTop: boolean = false\n @property({ type: Array }) private _records: GristRecord[] = []\n\n private _total: number = 0\n private _limit: number = 20\n private _page: number = 1\n\n firstUpdated(changes: PropertyValues<this>) {\n this.isTop = true\n\n /* infinite scrolling */\n this.addEventListener('scroll', e => {\n const totalScrollHeight = this.scrollHeight\n const screenHeight = this.offsetHeight\n const currentScrollTop = this.scrollTop\n\n if (totalScrollHeight <= screenHeight + currentScrollTop + 1) {\n /* 마지막 페이지까지 계속 페이지를 증가시킨다. */\n var lastPage = Math.ceil(this._total / this._limit)\n\n if (this._page < lastPage) {\n this.dispatchEvent(new CustomEvent('attach-page', { bubbles: true, composed: true }))\n }\n }\n\n this.isTop = this.scrollTop == 0\n })\n\n this.addEventListener('select-record-change', e => {\n var {\n records: selectedRecords,\n added = [],\n removed = []\n } = (e as CustomEvent).detail as {\n records: GristRecord[]\n added: GristRecord[]\n removed: GristRecord[]\n }\n var { records } = this.data || {}\n var { selectable = false } = this.config.rows || {}\n\n if (!records || !selectable) {\n return\n } else if (selectable && !selectable.multiple) {\n records.forEach(record => (record['__selected__'] = false))\n }\n\n if (selectedRecords) {\n records.forEach(record => (record['__selected__'] = false))\n selectedRecords.forEach(record => (record['__selected__'] = true))\n } else {\n removed.forEach(record => (record['__selected__'] = false))\n added.forEach(record => (record['__selected__'] = true))\n }\n\n this.requestUpdate()\n })\n\n /* field change processing */\n this.addEventListener('field-change', e => {\n var { after, before, column, record, row } = (e as CustomEvent).detail as {\n after: any\n before: any\n column: ColumnConfig\n record: GristRecord\n row: number\n }\n\n /* compare changes */\n if (after === before) {\n return\n }\n\n var validation = column.validation\n if (validation && typeof validation == 'function') {\n if (!validation.call(this, after, before, record, column)) {\n return\n }\n }\n\n this.onRecordChanged({ [column.name]: after }, row, column)\n })\n\n /* record reset processing */\n this.addEventListener('record-reset', e => {\n var { record, row } = (e as CustomEvent).detail as {\n record: GristRecord\n row: number\n }\n\n this.onRecordChanged(record['__origin__'], row, null)\n })\n\n this.renderRoot.addEventListener('click', dataCardClickHandler.bind(this) as EventListener)\n this.renderRoot.addEventListener('dblclick', dataCardDblclickHandler.bind(this) as EventListener)\n }\n\n onRecordChanged(\n recordData: GristRecord,\n row: number,\n column: ColumnConfig | null /* TODO column should be removed */\n ) {\n // TODO 오브젝트나 배열 타입인 경우 deepCompare 후에 변경 적용 여부를 결정한다.\n\n /* 빈 그리드로 시작한 경우, data 설정이 되어있지 않을 수 있다. */\n var records = this.data.records\n\n var beforeRecord = records[row]\n var afterRecord: GristRecord\n var wantToDelete = false\n var wantToAppend = false\n\n if (!recordData) {\n if (!beforeRecord) {\n /* recordData가 없고, beforeRecord도 없다면, 레코드 생성 중에 리셋된 경우이므로 아무것도 하지 않는다. */\n this.requestUpdate()\n return\n } else {\n /*\n * beforeRecord가 있는데, 빈데이타로 업데이트하고자 한다면,\n * 삭제하고자 하는 의도로 이해된다. (주의 필요)\n */\n if (beforeRecord['__dirty__'] == '+') {\n wantToDelete = true\n } else {\n afterRecord = {\n ...beforeRecord,\n __dirty__: '-'\n }\n }\n }\n } else {\n if (!beforeRecord) {\n /* 기존 레코드가 없는 경우에는 새로운 레코드가 생성된다 */\n afterRecord = {\n ...recordData,\n __dirty__: '+'\n }\n\n wantToAppend = true\n } else {\n let beforeDirty = beforeRecord['__dirty__']\n if (beforeDirty == '+') {\n /* 기존에 새로 생성된 레코드가 있었으며 계속 수정중이다. */\n afterRecord = {\n ...beforeRecord,\n ...recordData,\n __dirty__: '+'\n }\n } else {\n /* 기존에 레코드가 있었으며 계속 수정중이다. */\n afterRecord = {\n ...beforeRecord,\n ...recordData,\n __dirty__: 'M'\n }\n }\n }\n }\n\n if (wantToAppend) {\n records.push(afterRecord!)\n } else if (wantToDelete) {\n records.splice(row, 1)\n } else {\n records.splice(row, 1, afterRecord!)\n }\n\n this.dispatchEvent(\n new CustomEvent('record-change', {\n bubbles: true,\n composed: true,\n detail: {\n before: beforeRecord,\n after: afterRecord!,\n column,\n row\n }\n })\n )\n }\n\n updated(changes: PropertyValues<this>) {\n if (changes.has('config')) {\n this._records = []\n this._page = 1\n }\n\n if (changes.has('data')) {\n this._records = this.data.records\n this._total = this.data.total || 0\n this._limit = this.data.limit || 20\n this._page = this.data.page || 0\n }\n }\n\n render() {\n var records = this._records || []\n\n return html`\n ${records.map(\n (record, rowIndex) => html`\n <ox-record-card\n .config=${this.config}\n .data=${this.data}\n .record=${record}\n .rowIndex=${rowIndex}\n ?selected-row=${record['__selected__']}\n ?dirty=${record['__dirty__']}\n ></ox-record-card>\n `\n )}\n ${this.isTop\n ? html``\n : html` <mwc-icon id=\"upward\" @click=${(e: Event) => this.gotoTop(e)}>arrow_upward</mwc-icon> `}\n `\n }\n\n gotoTop(e: Event) {\n this.scrollTop = 0\n\n e.stopPropagation()\n }\n\n get pullToRefreshTarget() {\n return this\n }\n}\n"]}
1
+ {"version":3,"file":"data-card.js","sourceRoot":"","sources":["../../../src/data-card/data-card.ts"],"names":[],"mappings":";AAAA,OAAO,oBAAoB,CAAA;AAC3B,OAAO,eAAe,CAAA;AAEtB,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAkB,MAAM,KAAK,CAAA;AAC3D,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAE3D,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAA;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAA;AAGrF,IAAa,QAAQ,GAArB,MAAa,QAAS,SAAQ,UAAU;IAAxC;;QAsD8B,WAAM,GAAgB,WAAW,CAAA;QACjC,SAAI,GAAc,SAAS,CAAA;QAC1B,UAAK,GAAY,KAAK,CAAA;QAChB,aAAQ,GAAkB,EAAE,CAAA;QAEvD,WAAM,GAAW,CAAC,CAAA;QAClB,WAAM,GAAW,EAAE,CAAA;QACnB,UAAK,GAAW,CAAC,CAAA;IA8N3B,CAAC;IA5NC,YAAY,CAAC,OAA6B;QACxC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QAEjB,wBAAwB;QACxB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE;YAClC,MAAM,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAA;YAC3C,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAA;YACtC,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAA;YAEvC,IAAI,iBAAiB,IAAI,YAAY,GAAG,gBAAgB,GAAG,CAAC,EAAE;gBAC5D,8BAA8B;gBAC9B,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAA;gBAEnD,IAAI,IAAI,CAAC,KAAK,GAAG,QAAQ,EAAE;oBACzB,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;iBACtF;aACF;YAED,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,IAAI,CAAC,CAAA;QAClC,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,EAAE,CAAC,CAAC,EAAE;YAChD,IAAI,EACF,OAAO,EAAE,eAAe,EACxB,KAAK,GAAG,EAAE,EACV,OAAO,GAAG,EAAE,EACb,GAAI,CAAiB,CAAC,MAItB,CAAA;YACD,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAA;YACjC,IAAI,EAAE,UAAU,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAA;YAEnD,IAAI,CAAC,OAAO,IAAI,CAAC,UAAU,EAAE;gBAC3B,OAAM;aACP;iBAAM,IAAI,UAAU,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE;gBAC7C,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC,CAAC,CAAA;aAC5D;YAED,IAAI,eAAe,EAAE;gBACnB,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC,CAAC,CAAA;gBAC3D,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;aACnE;iBAAM;gBACL,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC,CAAC,CAAA;gBAC3D,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;aACzD;YAED,IAAI,CAAC,aAAa,EAAE,CAAA;QACtB,CAAC,CAAC,CAAA;QAEF,6BAA6B;QAC7B,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE;YACxC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAI,CAAiB,CAAC,MAM/D,CAAA;YAED,qBAAqB;YACrB,IAAI,KAAK,KAAK,MAAM,EAAE;gBACpB,OAAM;aACP;YAED,IAAI,UAAU,GAAG,MAAM,CAAC,UAAU,CAAA;YAClC,IAAI,UAAU,IAAI,OAAO,UAAU,IAAI,UAAU,EAAE;gBACjD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE;oBACzD,OAAM;iBACP;aACF;YAED,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,CAAA;QAC7D,CAAC,CAAC,CAAA;QAEF,6BAA6B;QAC7B,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE;YACxC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,GAAI,CAAiB,CAAC,MAGxC,CAAA;YAED,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;QACvD,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,OAAO,EAAE,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAkB,CAAC,CAAA;QAC3F,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,UAAU,EAAE,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAkB,CAAC,CAAA;IACnG,CAAC;IAED,eAAe,CACb,UAAuB,EACvB,GAAW,EACX,MAA2B,CAAC,mCAAmC;QAE/D,sDAAsD;QAEtD,2CAA2C;QAC3C,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAA;QAE/B,IAAI,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;QAC/B,IAAI,WAAwB,CAAA;QAC5B,IAAI,YAAY,GAAG,KAAK,CAAA;QACxB,IAAI,YAAY,GAAG,KAAK,CAAA;QAExB,IAAI,CAAC,UAAU,EAAE;YACf,IAAI,CAAC,YAAY,EAAE;gBACjB,yEAAyE;gBACzE,IAAI,CAAC,aAAa,EAAE,CAAA;gBACpB,OAAM;aACP;iBAAM;gBACL;;;mBAGG;gBACH,IAAI,YAAY,CAAC,WAAW,CAAC,IAAI,GAAG,EAAE;oBACpC,YAAY,GAAG,IAAI,CAAA;iBACpB;qBAAM;oBACL,WAAW,GAAG;wBACZ,GAAG,YAAY;wBACf,SAAS,EAAE,GAAG;qBACf,CAAA;iBACF;aACF;SACF;aAAM;YACL,IAAI,CAAC,YAAY,EAAE;gBACjB,mCAAmC;gBACnC,WAAW,GAAG;oBACZ,GAAG,UAAU;oBACb,SAAS,EAAE,GAAG;iBACf,CAAA;gBAED,YAAY,GAAG,IAAI,CAAA;aACpB;iBAAM;gBACL,IAAI,WAAW,GAAG,YAAY,CAAC,WAAW,CAAC,CAAA;gBAC3C,IAAI,WAAW,IAAI,GAAG,EAAE;oBACtB,oCAAoC;oBACpC,WAAW,GAAG;wBACZ,GAAG,YAAY;wBACf,GAAG,UAAU;wBACb,SAAS,EAAE,GAAG;qBACf,CAAA;iBACF;qBAAM;oBACL,6BAA6B;oBAC7B,WAAW,GAAG;wBACZ,GAAG,YAAY;wBACf,GAAG,UAAU;wBACb,SAAS,EAAE,GAAG;qBACf,CAAA;iBACF;aACF;SACF;QAED,IAAI,YAAY,EAAE;YAChB,OAAO,CAAC,IAAI,CAAC,WAAY,CAAC,CAAA;SAC3B;aAAM,IAAI,YAAY,EAAE;YACvB,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;SACvB;aAAM;YACL,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,WAAY,CAAC,CAAA;SACrC;QAED,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,eAAe,EAAE;YAC/B,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE;gBACN,MAAM,EAAE,YAAY;gBACpB,KAAK,EAAE,WAAY;gBACnB,MAAM;gBACN,GAAG;aACJ;SACF,CAAC,CACH,CAAA;IACH,CAAC;IAED,OAAO,CAAC,OAA6B;QACnC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YACzB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAA;YAClB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAA;SACf;QAED,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YACvB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAA;YACjC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAA;YAClC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAA;YACnC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAA;SACjC;IACH,CAAC;IAED,MAAM;QACJ,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAA;QAEjC,OAAO,IAAI,CAAA;QACP,OAAO,CAAC,GAAG,CACX,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAA;;sBAEZ,IAAI,CAAC,MAAM;oBACb,IAAI,CAAC,IAAI;sBACP,MAAM;wBACJ,QAAQ;4BACJ,MAAM,CAAC,cAAc,CAAC;qBAC7B,MAAM,CAAC,WAAW,CAAC;;SAE/B,CACF;QACC,IAAI,CAAC,KAAK;YACV,CAAC,CAAC,IAAI,CAAA,EAAE;YACR,CAAC,CAAC,IAAI,CAAA,iCAAiC,CAAC,CAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,2BAA2B;KAClG,CAAA;IACH,CAAC;IAED,OAAO,CAAC,CAAQ;QACd,IAAI,CAAC,SAAS,GAAG,CAAC,CAAA;QAElB,CAAC,CAAC,eAAe,EAAE,CAAA;IACrB,CAAC;IAED,IAAI,mBAAmB;QACrB,OAAO,IAAI,CAAA;IACb,CAAC;CACF,CAAA;AA1RQ,eAAM,GAAG;IACd,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAiDF;CACF,CAAA;AAE2B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;wCAAkC;AACjC;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;sCAA4B;AAC1B;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;uCAAuB;AACxB;IAA1B,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;0CAAqC;AAzDpD,QAAQ;IADpB,aAAa,CAAC,SAAS,CAAC;GACZ,QAAQ,CA2RpB;SA3RY,QAAQ","sourcesContent":["import '@material/mwc-icon'\nimport './record-card'\n\nimport { css, html, LitElement, PropertyValues } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\nimport { ZERO_CONFIG, ZERO_DATA } from '../configure/zero-config'\nimport { ColumnConfig, GristConfig, GristData, GristRecord } from '../types'\nimport { dataCardClickHandler } from './event-handlers/data-card-click-handler'\nimport { dataCardDblclickHandler } from './event-handlers/data-card-dblclick-handler'\n\n@customElement('ox-card')\nexport class DataCard extends LitElement {\n static styles = [\n css`\n :host {\n background-color: var(--data-card-background-color);\n overflow-y: auto;\n padding: var(--padding-wide);\n\n display: grid;\n grid-template-columns: var(--data-card-template);\n grid-template-rows: min-content;\n grid-gap: var(--margin-wide);\n }\n\n ox-record-card {\n align-items: stretch;\n background-color: var(--data-card-record-card-background-color);\n border: var(--data-card-record-card-border);\n border-radius: var(--data-card-record-card-border-radius);\n }\n ox-record-card:hover {\n border: var(--data-card-record-card-border-hover);\n box-shadow: var(--data-card-record-card-boxshadow-hover);\n }\n\n [selected-row] {\n background-color: var(--data-card-record-card-selected-border);\n }\n\n #upward {\n --mdc-icon-size: 26px;\n position: absolute;\n top: var(--data-card-fab-position-vertical);\n right: var(--data-card-fab-position-horizontal);\n background-color: rgba(255, 255, 255, 0.7);\n border-radius: 20px;\n color: var(--data-card-fab-color);\n box-shadow: var(--data-card-fab-shadow);\n padding: 7px;\n }\n\n slot {\n width: 100%;\n }\n\n @media screen and (max-width: 460px) {\n #setting {\n grid-template-columns: 1fr;\n grid-template-rows: 1fr 1fr;\n }\n }\n `\n ]\n\n @property({ type: Object }) config: GristConfig = ZERO_CONFIG\n @property({ type: Object }) data: GristData = ZERO_DATA\n @property({ type: Boolean }) isTop: boolean = false\n @property({ type: Array }) private _records: GristRecord[] = []\n\n private _total: number = 0\n private _limit: number = 20\n private _page: number = 1\n\n firstUpdated(changes: PropertyValues<this>) {\n this.isTop = true\n\n /* infinite scrolling */\n this.addEventListener('scroll', e => {\n const totalScrollHeight = this.scrollHeight\n const screenHeight = this.offsetHeight\n const currentScrollTop = this.scrollTop\n\n if (totalScrollHeight <= screenHeight + currentScrollTop + 1) {\n /* 마지막 페이지까지 계속 페이지를 증가시킨다. */\n var lastPage = Math.ceil(this._total / this._limit)\n\n if (this._page < lastPage) {\n this.dispatchEvent(new CustomEvent('attach-page', { bubbles: true, composed: true }))\n }\n }\n\n this.isTop = this.scrollTop == 0\n })\n\n this.addEventListener('select-record-change', e => {\n var {\n records: selectedRecords,\n added = [],\n removed = []\n } = (e as CustomEvent).detail as {\n records: GristRecord[]\n added: GristRecord[]\n removed: GristRecord[]\n }\n var { records } = this.data || {}\n var { selectable = false } = this.config.rows || {}\n\n if (!records || !selectable) {\n return\n } else if (selectable && !selectable.multiple) {\n records.forEach(record => (record['__selected__'] = false))\n }\n\n if (selectedRecords) {\n records.forEach(record => (record['__selected__'] = false))\n selectedRecords.forEach(record => (record['__selected__'] = true))\n } else {\n removed.forEach(record => (record['__selected__'] = false))\n added.forEach(record => (record['__selected__'] = true))\n }\n\n this.requestUpdate()\n })\n\n /* field change processing */\n this.addEventListener('field-change', e => {\n var { after, before, column, record, row } = (e as CustomEvent).detail as {\n after: any\n before: any\n column: ColumnConfig\n record: GristRecord\n row: number\n }\n\n /* compare changes */\n if (after === before) {\n return\n }\n\n var validation = column.validation\n if (validation && typeof validation == 'function') {\n if (!validation.call(this, after, before, record, column)) {\n return\n }\n }\n\n this.onRecordChanged({ [column.name]: after }, row, column)\n })\n\n /* record reset processing */\n this.addEventListener('record-reset', e => {\n var { record, row } = (e as CustomEvent).detail as {\n record: GristRecord\n row: number\n }\n\n this.onRecordChanged(record['__origin__'], row, null)\n })\n\n this.renderRoot.addEventListener('click', dataCardClickHandler.bind(this) as EventListener)\n this.renderRoot.addEventListener('dblclick', dataCardDblclickHandler.bind(this) as EventListener)\n }\n\n onRecordChanged(\n recordData: GristRecord,\n row: number,\n column: ColumnConfig | null /* TODO column should be removed */\n ) {\n // TODO 오브젝트나 배열 타입인 경우 deepCompare 후에 변경 적용 여부를 결정한다.\n\n /* 빈 그리드로 시작한 경우, data 설정이 되어있지 않을 수 있다. */\n var records = this.data.records\n\n var beforeRecord = records[row]\n var afterRecord: GristRecord\n var wantToDelete = false\n var wantToAppend = false\n\n if (!recordData) {\n if (!beforeRecord) {\n /* recordData가 없고, beforeRecord도 없다면, 레코드 생성 중에 리셋된 경우이므로 아무것도 하지 않는다. */\n this.requestUpdate()\n return\n } else {\n /*\n * beforeRecord가 있는데, 빈데이타로 업데이트하고자 한다면,\n * 삭제하고자 하는 의도로 이해된다. (주의 필요)\n */\n if (beforeRecord['__dirty__'] == '+') {\n wantToDelete = true\n } else {\n afterRecord = {\n ...beforeRecord,\n __dirty__: '-'\n }\n }\n }\n } else {\n if (!beforeRecord) {\n /* 기존 레코드가 없는 경우에는 새로운 레코드가 생성된다 */\n afterRecord = {\n ...recordData,\n __dirty__: '+'\n }\n\n wantToAppend = true\n } else {\n let beforeDirty = beforeRecord['__dirty__']\n if (beforeDirty == '+') {\n /* 기존에 새로 생성된 레코드가 있었으며 계속 수정중이다. */\n afterRecord = {\n ...beforeRecord,\n ...recordData,\n __dirty__: '+'\n }\n } else {\n /* 기존에 레코드가 있었으며 계속 수정중이다. */\n afterRecord = {\n ...beforeRecord,\n ...recordData,\n __dirty__: 'M'\n }\n }\n }\n }\n\n if (wantToAppend) {\n records.push(afterRecord!)\n } else if (wantToDelete) {\n records.splice(row, 1)\n } else {\n records.splice(row, 1, afterRecord!)\n }\n\n this.dispatchEvent(\n new CustomEvent('record-change', {\n bubbles: true,\n composed: true,\n detail: {\n before: beforeRecord,\n after: afterRecord!,\n column,\n row\n }\n })\n )\n }\n\n updated(changes: PropertyValues<this>) {\n if (changes.has('config')) {\n this._records = []\n this._page = 1\n }\n\n if (changes.has('data')) {\n this._records = this.data.records\n this._total = this.data.total || 0\n this._limit = this.data.limit || 20\n this._page = this.data.page || 0\n }\n }\n\n render() {\n var records = this._records || []\n\n return html`\n ${records.map(\n (record, rowIndex) => html`\n <ox-record-card\n .config=${this.config}\n .data=${this.data}\n .record=${record}\n .rowIndex=${rowIndex}\n ?selected-row=${record['__selected__']}\n ?dirty=${record['__dirty__']}\n ></ox-record-card>\n `\n )}\n ${this.isTop\n ? html``\n : html` <mwc-icon id=\"upward\" @click=${(e: Event) => this.gotoTop(e)}>arrow_upward</mwc-icon> `}\n `\n }\n\n gotoTop(e: Event) {\n this.scrollTop = 0\n\n e.stopPropagation()\n }\n\n get pullToRefreshTarget() {\n return this\n }\n}\n"]}
@@ -1,13 +1,4 @@
1
- import { GristData } from './types';
2
- export declare type FetchHandler = (param?: {
3
- page?: number;
4
- limit?: number;
5
- sorters?: object[];
6
- options?: object;
7
- }) => {
8
- total: number;
9
- records: object[];
10
- };
1
+ import { FetchHandler, GristData } from './types';
11
2
  export interface DataConsumer extends EventTarget {
12
3
  data: any;
13
4
  _data: GristData;
@@ -1 +1 @@
1
- {"version":3,"file":"data-consumer.js","sourceRoot":"","sources":["../../src/data-consumer.ts"],"names":[],"mappings":"","sourcesContent":["import { GristData } from './types'\n\nexport type FetchHandler = (param?: { page?: number; limit?: number; sorters?: object[]; options?: object }) => {\n total: number\n records: object[]\n}\n\nexport interface DataConsumer extends EventTarget {\n data: any\n _data: GristData\n checkDirties(): void\n fetchHandler?: FetchHandler\n showSpinner(): void\n hideSpinner(): void\n}\n"]}
1
+ {"version":3,"file":"data-consumer.js","sourceRoot":"","sources":["../../src/data-consumer.ts"],"names":[],"mappings":"","sourcesContent":["import { FetchHandler, GristData } from './types'\n\nexport interface DataConsumer extends EventTarget {\n data: any\n _data: GristData\n checkDirties(): void\n fetchHandler?: FetchHandler\n showSpinner(): void\n hideSpinner(): void\n}\n"]}
@@ -2,12 +2,12 @@ import './data-grid/data-grid';
2
2
  import './data-list/data-list';
3
3
  import './data-card/data-card';
4
4
  import './empty-note';
5
- import { DataConsumer, FetchHandler } from './data-consumer';
6
- import { GristConfig, GristData, GristRecord } from './types';
7
5
  import { LitElement, PropertyValues } from 'lit';
8
6
  import { DataCard } from './data-card/data-card';
7
+ import { DataConsumer } from './data-consumer';
9
8
  import { DataGrid } from './data-grid/data-grid';
10
9
  import { DataList } from './data-list/data-list';
10
+ import { FetchHandler, GristConfig, GristData, GristRecord } from './types';
11
11
  export declare class DataGrist extends LitElement implements DataConsumer {
12
12
  static styles: import("lit").CSSResult[];
13
13
  mode: string;
@@ -23,7 +23,8 @@ export declare class DataGrist extends LitElement implements DataConsumer {
23
23
  private dataProvider?;
24
24
  private _pulltorefreshHandle?;
25
25
  private _headroom?;
26
- private _resizeObserver;
26
+ private orginPaddingTop?;
27
+ private originMarginTop?;
27
28
  head: HTMLElement;
28
29
  grist: DataGrid | DataList | DataCard;
29
30
  private wrap;
@@ -31,7 +32,6 @@ export declare class DataGrist extends LitElement implements DataConsumer {
31
32
  disconnectedCallback(): void;
32
33
  private _resetPullToRefresh;
33
34
  private _setPullToRefresh;
34
- private _adjustPaddingTop;
35
35
  private _setHeadroom;
36
36
  render(): import("lit-html").TemplateResult<1>;
37
37
  fetch(reset?: boolean): Promise<void>;
@@ -3,16 +3,16 @@ import './data-grid/data-grid';
3
3
  import './data-list/data-list';
4
4
  import './data-card/data-card';
5
5
  import './empty-note';
6
- import { HeadroomStyles, ScrollbarStyles, SpinnerStyles } from '@operato/styles';
7
- import { LitElement, css, html } from 'lit';
8
- import { ZERO_CONFIG, ZERO_DATA, ZERO_PAGINATION } from './configure/zero-config';
6
+ import { css, html, LitElement } from 'lit';
9
7
  import { customElement, property, query, queryAsync, state } from 'lit/decorators.js';
10
- import { DataProvider } from './data-provider';
11
- import Headroom from '@operato/headroom';
12
- import { buildConfig } from './configure/config-builder';
13
8
  import isEmpty from 'lodash-es/isEmpty';
14
9
  import isEqual from 'lodash-es/isEqual';
10
+ import Headroom from '@operato/headroom';
15
11
  import { pulltorefresh } from '@operato/pull-to-refresh';
12
+ import { HeadroomStyles, ScrollbarStyles, SpinnerStyles } from '@operato/styles';
13
+ import { buildConfig } from './configure/config-builder';
14
+ import { ZERO_CONFIG, ZERO_DATA, ZERO_PAGINATION } from './configure/zero-config';
15
+ import { DataProvider } from './data-provider';
16
16
  let DataGrist = class DataGrist extends LitElement {
17
17
  constructor() {
18
18
  super(...arguments);
@@ -22,22 +22,17 @@ let DataGrist = class DataGrist extends LitElement {
22
22
  this._data = ZERO_DATA;
23
23
  this._config = ZERO_CONFIG;
24
24
  this._showSpinner = false;
25
- this._resizeObserver = new ResizeObserver(entries => {
26
- this._adjustPaddingTop();
27
- });
28
25
  }
29
26
  async connectedCallback() {
30
27
  super.connectedCallback();
31
28
  this.dataProvider = new DataProvider(this);
32
29
  await this.updateComplete;
33
- this._resizeObserver.observe(this.head);
34
30
  }
35
31
  disconnectedCallback() {
36
32
  var _a;
37
33
  super.disconnectedCallback();
38
34
  (_a = this.dataProvider) === null || _a === void 0 ? void 0 : _a.dispose();
39
35
  this._resetPullToRefresh();
40
- this._resizeObserver.unobserve(this.head);
41
36
  }
42
37
  _resetPullToRefresh() {
43
38
  if (this._pulltorefreshHandle) {
@@ -57,16 +52,26 @@ let DataGrist = class DataGrist extends LitElement {
57
52
  });
58
53
  }
59
54
  }
60
- _adjustPaddingTop() {
61
- this.grist.style.paddingTop = this.head.clientHeight + 'px';
62
- }
63
55
  _setHeadroom() {
64
56
  var _a;
65
57
  (_a = this._headroom) === null || _a === void 0 ? void 0 : _a.destroy();
66
58
  if (this.grist && this.head) {
67
- this._adjustPaddingTop();
59
+ const style = getComputedStyle(this.grist);
60
+ this.orginPaddingTop = style.paddingTop || '0';
61
+ this.originMarginTop = style.marginTop || '0';
62
+ console.log(this.orginPaddingTop, this.originMarginTop);
68
63
  this._headroom = new Headroom(this.head, {
69
- scroller: this.grist
64
+ scroller: this.grist,
65
+ onTop: () => {
66
+ this.grist.style.paddingTop = this.orginPaddingTop;
67
+ this.originMarginTop = this.grist.style.marginTop;
68
+ this.grist.style.marginTop = this.head.clientHeight + 'px';
69
+ },
70
+ onNotTop: () => {
71
+ this.grist.style.marginTop = this.originMarginTop;
72
+ this.orginPaddingTop = this.grist.style.paddingTop;
73
+ this.grist.style.paddingTop = this.head.clientHeight + 'px';
74
+ }
70
75
  });
71
76
  this._headroom.init();
72
77
  }
@@ -1 +1 @@
1
- {"version":3,"file":"data-grist.js","sourceRoot":"","sources":["../../src/data-grist.ts"],"names":[],"mappings":"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","sourcesContent":["import './data-grid/data-grid'\nimport './data-list/data-list'\nimport './data-card/data-card'\nimport './empty-note'\n\nimport { DataConsumer, FetchHandler } from './data-consumer'\nimport { GristConfig, GristData, GristRecord } from './types'\nimport { HeadroomStyles, ScrollbarStyles, SpinnerStyles } from '@operato/styles'\nimport { LitElement, PropertyValues, css, html } from 'lit'\nimport { ZERO_CONFIG, ZERO_DATA, ZERO_PAGINATION } from './configure/zero-config'\nimport { customElement, property, query, queryAsync, state } from 'lit/decorators.js'\n\nimport { DataCard } from './data-card/data-card'\nimport { DataGrid } from './data-grid/data-grid'\nimport { DataList } from './data-list/data-list'\nimport { DataProvider } from './data-provider'\nimport Headroom from '@operato/headroom'\nimport { buildConfig } from './configure/config-builder'\nimport isEmpty from 'lodash-es/isEmpty'\nimport isEqual from 'lodash-es/isEqual'\nimport { pulltorefresh } from '@operato/pull-to-refresh'\n\n@customElement('ox-grist')\nexport class DataGrist extends LitElement implements DataConsumer {\n static styles = [\n ScrollbarStyles,\n HeadroomStyles,\n SpinnerStyles,\n css`\n :host {\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n background-color: var(--grist-background-color);\n min-height: 120px;\n\n overflow: hidden;\n\n /* for pulltorefresh controller */\n position: relative;\n\n --mdc-icon-size: var(--grid-record-wide-fontsize);\n }\n\n #wrap {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: auto;\n }\n\n ox-grid,\n ox-list {\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 slot[name='headroom'] {\n display: block;\n\n position: absolute;\n top: 0;\n left: 0;\n\n width: 100%;\n box-sizing: border-box;\n }\n `\n ]\n\n @property() mode: string = 'GRID'\n @property() config: any\n @property() data: GristData = ZERO_DATA\n @property() selectedRecords?: GristRecord[]\n @property({ type: Boolean, attribute: 'auto-fetch' }) autoFetch: boolean = false\n @property() fetchHandler?: FetchHandler\n @property() fetchOptions: any\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 private _headroom?: Headroom\n private _resizeObserver = new ResizeObserver(entries => {\n this._adjustPaddingTop()\n })\n\n @query('slot[name=headroom]') head!: HTMLElement\n @query('#grist') grist!: DataGrid | DataList | DataCard\n @queryAsync('#wrap') private wrap!: Promise<HTMLElement>\n\n async connectedCallback() {\n super.connectedCallback()\n\n this.dataProvider = new DataProvider(this)\n\n await this.updateComplete\n this._resizeObserver.observe(this.head)\n }\n\n disconnectedCallback() {\n super.disconnectedCallback()\n\n this.dataProvider?.dispose()\n this._resetPullToRefresh()\n this._resizeObserver.unobserve(this.head)\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.grist.pullToRefreshTarget,\n refresh: () => {\n return this.fetch(true)\n }\n })\n }\n }\n\n private _adjustPaddingTop() {\n this.grist.style.paddingTop = this.head.clientHeight + 'px'\n }\n\n private _setHeadroom() {\n this._headroom?.destroy()\n\n if (this.grist && this.head) {\n this._adjustPaddingTop()\n\n this._headroom = new Headroom(this.head, {\n scroller: this.grist\n })\n this._headroom.init()\n }\n }\n\n render() {\n var oops = !this._showSpinner && 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 <div id=\"wrap\">\n ${this.mode == 'GRID'\n ? html` <ox-grid id=\"grist\" .config=${this._config} .data=${this._data}> </ox-grid> `\n : this.mode == 'CARD'\n ? html` <ox-card id=\"grist\" .config=${this._config} .data=${this._data}> </ox-card> `\n : html` <ox-list id=\"grist\" .config=${this._config} .data=${this._data}> </ox-list> `}\n </div>\n\n <div id=\"spinner\" ?show=${this._showSpinner}></div>\n\n <slot name=\"headroom\"> </slot>\n `\n }\n\n async fetch(reset = true) {\n if (!this._config) {\n /* avoid to be here */\n console.warn('grist is not configured yet.')\n return\n }\n\n if (reset && this.grist) {\n /*\n * scroll 의 현재위치에 의해서 scroll 이벤트가 발생할 수 있으므로, 이를 방지하기 위해서 스크롤의 위치를 TOP으로 옮긴다.\n * (scroll 이 첫페이지 크기 이상으로 내려가 있는 경우, 첫페이지부터 다시 표시하는 경우에, scroll 이벤트가 발생한다.)\n */\n this.grist.scrollTop = 0\n }\n\n if (this.dataProvider) {\n let { limit: initLimit, page: initPage, infinite } = this._config.pagination || {}\n let { limit = initLimit || ZERO_PAGINATION.limit, page = initPage || ZERO_PAGINATION.page } = this.dataProvider\n let { sorters } = this._config\n\n if (infinite || this.mode !== 'GRID') {\n await this.dataProvider.attach(reset)\n } else {\n await this.dataProvider.fetch({\n limit,\n page,\n sorters\n })\n }\n }\n }\n\n async updated(changes: PropertyValues<this>) {\n var needToSetPullToRefresh = false\n\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 needToSetPullToRefresh = true\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 if (changes.has('mode')) {\n needToSetPullToRefresh = true\n this._setHeadroom()\n }\n\n if (changes.has('selectedRecords')) {\n var { records } = this.data || []\n var selectedRecords = this.selectedRecords || []\n\n var _records = this._data.records\n\n /* 원본데이타에서 index를 찾아서, 복사본 데이타의 selected를 설정한다. */\n selectedRecords.forEach(selected => {\n var index = records.indexOf(selected)\n var record = _records[index]\n if (record) {\n record['__selected__'] = true\n }\n })\n\n /* update _data property intentionally */\n this.refresh()\n }\n\n if (needToSetPullToRefresh) {\n await this._setPullToRefresh()\n }\n }\n\n get dirtyData(): GristData {\n return (this.grist as any)?.data || {}\n }\n\n get dirtyRecords() {\n var { records = [] } = this.dirtyData\n return records.filter(record => record['__dirty__'])\n }\n\n exportPatchList({ flagName = 'patchFlag', addedFlag = '+', deletedFlag = '-', modifiedFlag = 'M', idField = 'id' }) {\n let dirtyRecords = this.dirtyRecords\n if (!dirtyRecords || dirtyRecords.length == 0) {\n return []\n }\n\n return dirtyRecords.map(record => {\n let flag = record.__dirty__\n\n let patch = {\n [flagName]: flag == 'M' ? modifiedFlag : flag == '+' ? addedFlag : deletedFlag\n }\n\n if (idField in record && record[idField]) {\n patch[idField] = record[idField]\n }\n\n for (let key in record.__dirtyfields__) {\n patch[key] = record[key]\n }\n return patch\n })\n }\n\n exportRecords({ ifSelectedOnly = true, includeHiddenField = true } = {}) {\n let records = ifSelectedOnly ? this.selected : this.data.records\n\n if (ifSelectedOnly && (!records || records.length == 0)) {\n records = this.data.records\n }\n\n let columns = this._config.columns.filter(column => column.type !== 'gutter')\n if (!includeHiddenField) {\n columns = columns.filter(column => !column.hidden)\n }\n let columnNames = columns.map(column => column.name)\n\n return records.map(item => {\n return columnNames.reduce((record, name) => {\n record[name] = item[name]\n return record\n }, {} as any)\n })\n }\n\n get selected() {\n var { records = [] } = this.grist?.data\n return records.filter(record => record['__selected__'])\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.grist.focus()\n }\n\n commit() {\n var { page, total, limit, records } = this.grist.data\n\n this.data = {\n page,\n total,\n limit,\n records: records.map(record => {\n var copied = {\n ...record\n }\n\n delete copied.__seq__\n delete copied.__dirty__\n delete copied.__selected__\n delete copied.__changes__\n delete copied.__dirtyfields__\n delete copied.__origin__\n\n return copied\n })\n }\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.\n * Therefore, it will be deprecated.\n * @deprecated\n * @method\n */\n refresh() {\n this._data = { ...this._data }\n }\n\n /**\n * This method cancels all changes in the dirty state before being reflected in the data.\n *\n * @method\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 /* 원본 데이타를 남기고, 복사본(_data)을 사용한다. */\n records = records.map((record, idx) => {\n return {\n ...record,\n __seq__: this.mode == 'GRID' ? (page - 1) * limit + idx + 1 : idx + 1,\n __origin__: record\n }\n })\n\n this._data = {\n limit,\n page,\n total,\n records\n }\n }\n\n checkDirties() {\n const records = this.dirtyRecords\n const { columns = [] } = this._config || {}\n\n for (var record of records || []) {\n var origin = record['__origin__'] || {}\n\n var dirtyFields = (record['__dirtyfields__'] = columns\n .filter(column => column.type !== 'gutter' && !isEqual(origin[column.name], record[column.name]))\n .reduce((sum, column) => {\n var name = column.name\n\n sum[name] = {\n before: origin[name],\n after: record[name]\n }\n\n return sum\n }, {} as any))\n\n if (record['__dirty__'] == 'M' && isEmpty(dirtyFields)) {\n delete record['__dirty__']\n }\n }\n }\n}\n"]}
1
+ {"version":3,"file":"data-grist.js","sourceRoot":"","sources":["../../src/data-grist.ts"],"names":[],"mappings":"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","sourcesContent":["import './data-grid/data-grid'\nimport './data-list/data-list'\nimport './data-card/data-card'\nimport './empty-note'\n\nimport { css, html, LitElement, PropertyValues } from 'lit'\nimport { customElement, property, query, queryAsync, state } from 'lit/decorators.js'\nimport isEmpty from 'lodash-es/isEmpty'\nimport isEqual from 'lodash-es/isEqual'\n\nimport Headroom from '@operato/headroom'\nimport { pulltorefresh } from '@operato/pull-to-refresh'\nimport { HeadroomStyles, ScrollbarStyles, SpinnerStyles } from '@operato/styles'\n\nimport { buildConfig } from './configure/config-builder'\nimport { ZERO_CONFIG, ZERO_DATA, ZERO_PAGINATION } from './configure/zero-config'\nimport { DataCard } from './data-card/data-card'\nimport { DataConsumer } from './data-consumer'\nimport { DataGrid } from './data-grid/data-grid'\nimport { DataList } from './data-list/data-list'\nimport { DataProvider } from './data-provider'\nimport { FetchHandler, GristConfig, GristData, GristRecord } from './types'\n\n@customElement('ox-grist')\nexport class DataGrist extends LitElement implements DataConsumer {\n static styles = [\n ScrollbarStyles,\n HeadroomStyles,\n SpinnerStyles,\n css`\n :host {\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n background-color: var(--grist-background-color);\n min-height: 120px;\n\n overflow: hidden;\n\n /* for pulltorefresh controller */\n position: relative;\n\n --mdc-icon-size: var(--grid-record-wide-fontsize);\n }\n\n #wrap {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: auto;\n }\n\n ox-grid,\n ox-list {\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 slot[name='headroom'] {\n display: block;\n\n position: absolute;\n top: 0;\n left: 0;\n\n width: 100%;\n box-sizing: border-box;\n }\n `\n ]\n\n @property() mode: string = 'GRID'\n @property() config: any\n @property() data: GristData = ZERO_DATA\n @property() selectedRecords?: GristRecord[]\n @property({ type: Boolean, attribute: 'auto-fetch' }) autoFetch: boolean = false\n @property() fetchHandler?: FetchHandler\n @property() fetchOptions: any\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 private _headroom?: Headroom\n private orginPaddingTop?: string\n private originMarginTop?: string\n\n @query('slot[name=headroom]') head!: HTMLElement\n @query('#grist') grist!: DataGrid | DataList | DataCard\n @queryAsync('#wrap') private wrap!: Promise<HTMLElement>\n\n async connectedCallback() {\n super.connectedCallback()\n\n this.dataProvider = new DataProvider(this)\n\n await this.updateComplete\n }\n\n disconnectedCallback() {\n super.disconnectedCallback()\n\n this.dataProvider?.dispose()\n this._resetPullToRefresh()\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.grist.pullToRefreshTarget,\n refresh: () => {\n return this.fetch(true)\n }\n })\n }\n }\n\n private _setHeadroom() {\n this._headroom?.destroy()\n\n if (this.grist && this.head) {\n const style = getComputedStyle(this.grist)\n\n this.orginPaddingTop = style.paddingTop || '0'\n this.originMarginTop = style.marginTop || '0'\n\n console.log(this.orginPaddingTop, this.originMarginTop)\n\n this._headroom = new Headroom(this.head, {\n scroller: this.grist,\n onTop: () => {\n this.grist.style.paddingTop = this.orginPaddingTop!\n\n this.originMarginTop = this.grist.style.marginTop\n this.grist.style.marginTop = this.head.clientHeight + 'px'\n },\n onNotTop: () => {\n this.grist.style.marginTop = this.originMarginTop!\n\n this.orginPaddingTop = this.grist.style.paddingTop\n this.grist.style.paddingTop = this.head.clientHeight + 'px'\n }\n })\n this._headroom.init()\n }\n }\n\n render() {\n var oops = !this._showSpinner && 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 <div id=\"wrap\">\n ${this.mode == 'GRID'\n ? html` <ox-grid id=\"grist\" .config=${this._config} .data=${this._data}> </ox-grid> `\n : this.mode == 'CARD'\n ? html` <ox-card id=\"grist\" .config=${this._config} .data=${this._data}> </ox-card> `\n : html` <ox-list id=\"grist\" .config=${this._config} .data=${this._data}> </ox-list> `}\n </div>\n\n <div id=\"spinner\" ?show=${this._showSpinner}></div>\n\n <slot name=\"headroom\"> </slot>\n `\n }\n\n async fetch(reset = true) {\n if (!this._config) {\n /* avoid to be here */\n console.warn('grist is not configured yet.')\n return\n }\n\n if (reset && this.grist) {\n /*\n * scroll 의 현재위치에 의해서 scroll 이벤트가 발생할 수 있으므로, 이를 방지하기 위해서 스크롤의 위치를 TOP으로 옮긴다.\n * (scroll 이 첫페이지 크기 이상으로 내려가 있는 경우, 첫페이지부터 다시 표시하는 경우에, scroll 이벤트가 발생한다.)\n */\n this.grist.scrollTop = 0\n }\n\n if (this.dataProvider) {\n let { limit: initLimit, page: initPage, infinite } = this._config.pagination || {}\n let { limit = initLimit || ZERO_PAGINATION.limit, page = initPage || ZERO_PAGINATION.page } = this.dataProvider\n let { sorters } = this._config\n\n if (infinite || this.mode !== 'GRID') {\n await this.dataProvider.attach(reset)\n } else {\n await this.dataProvider.fetch({\n limit,\n page,\n sorters\n })\n }\n }\n }\n\n async updated(changes: PropertyValues<this>) {\n var needToSetPullToRefresh = false\n\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 needToSetPullToRefresh = true\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 if (changes.has('mode')) {\n needToSetPullToRefresh = true\n this._setHeadroom()\n }\n\n if (changes.has('selectedRecords')) {\n var { records } = this.data || []\n var selectedRecords = this.selectedRecords || []\n\n var _records = this._data.records\n\n /* 원본데이타에서 index를 찾아서, 복사본 데이타의 selected를 설정한다. */\n selectedRecords.forEach(selected => {\n var index = records.indexOf(selected)\n var record = _records[index]\n if (record) {\n record['__selected__'] = true\n }\n })\n\n /* update _data property intentionally */\n this.refresh()\n }\n\n if (needToSetPullToRefresh) {\n await this._setPullToRefresh()\n }\n }\n\n get dirtyData(): GristData {\n return (this.grist as any)?.data || {}\n }\n\n get dirtyRecords() {\n var { records = [] } = this.dirtyData\n return records.filter(record => record['__dirty__'])\n }\n\n exportPatchList({ flagName = 'patchFlag', addedFlag = '+', deletedFlag = '-', modifiedFlag = 'M', idField = 'id' }) {\n let dirtyRecords = this.dirtyRecords\n if (!dirtyRecords || dirtyRecords.length == 0) {\n return []\n }\n\n return dirtyRecords.map(record => {\n let flag = record.__dirty__\n\n let patch = {\n [flagName]: flag == 'M' ? modifiedFlag : flag == '+' ? addedFlag : deletedFlag\n }\n\n if (idField in record && record[idField]) {\n patch[idField] = record[idField]\n }\n\n for (let key in record.__dirtyfields__) {\n patch[key] = record[key]\n }\n return patch\n })\n }\n\n exportRecords({ ifSelectedOnly = true, includeHiddenField = true } = {}) {\n let records = ifSelectedOnly ? this.selected : this.data.records\n\n if (ifSelectedOnly && (!records || records.length == 0)) {\n records = this.data.records\n }\n\n let columns = this._config.columns.filter(column => column.type !== 'gutter')\n if (!includeHiddenField) {\n columns = columns.filter(column => !column.hidden)\n }\n let columnNames = columns.map(column => column.name)\n\n return records.map(item => {\n return columnNames.reduce((record, name) => {\n record[name] = item[name]\n return record\n }, {} as any)\n })\n }\n\n get selected() {\n var { records = [] } = this.grist?.data\n return records.filter(record => record['__selected__'])\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.grist.focus()\n }\n\n commit() {\n var { page, total, limit, records } = this.grist.data\n\n this.data = {\n page,\n total,\n limit,\n records: records.map(record => {\n var copied = {\n ...record\n }\n\n delete copied.__seq__\n delete copied.__dirty__\n delete copied.__selected__\n delete copied.__changes__\n delete copied.__dirtyfields__\n delete copied.__origin__\n\n return copied\n })\n }\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.\n * Therefore, it will be deprecated.\n * @deprecated\n * @method\n */\n refresh() {\n this._data = { ...this._data }\n }\n\n /**\n * This method cancels all changes in the dirty state before being reflected in the data.\n *\n * @method\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 /* 원본 데이타를 남기고, 복사본(_data)을 사용한다. */\n records = records.map((record, idx) => {\n return {\n ...record,\n __seq__: this.mode == 'GRID' ? (page - 1) * limit + idx + 1 : idx + 1,\n __origin__: record\n }\n })\n\n this._data = {\n limit,\n page,\n total,\n records\n }\n }\n\n checkDirties() {\n const records = this.dirtyRecords\n const { columns = [] } = this._config || {}\n\n for (var record of records || []) {\n var origin = record['__origin__'] || {}\n\n var dirtyFields = (record['__dirtyfields__'] = columns\n .filter(column => column.type !== 'gutter' && !isEqual(origin[column.name], record[column.name]))\n .reduce((sum, column) => {\n var name = column.name\n\n sum[name] = {\n before: origin[name],\n after: record[name]\n }\n\n return sum\n }, {} as any))\n\n if (record['__dirty__'] == 'M' && isEmpty(dirtyFields)) {\n delete record['__dirty__']\n }\n }\n }\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  import '@material/mwc-icon';
2
2
  import './record-partial';
3
- import { ColumnConfig, GristConfig, GristData, GristRecord } from '../types';
4
3
  import { LitElement, PropertyValues } from 'lit';
4
+ import { ColumnConfig, GristConfig, GristData, GristRecord } from '../types';
5
5
  export declare class DataList extends LitElement {
6
6
  static styles: import("lit").CSSResult[];
7
7
  config: GristConfig;
@@ -1,9 +1,9 @@
1
1
  import { __decorate } from "tslib";
2
2
  import '@material/mwc-icon';
3
3
  import './record-partial';
4
- import { LitElement, css, html } from 'lit';
5
- import { ZERO_CONFIG, ZERO_DATA } from '../configure/zero-config';
4
+ import { css, html, LitElement } from 'lit';
6
5
  import { customElement, property } from 'lit/decorators.js';
6
+ import { ZERO_CONFIG, ZERO_DATA } from '../configure/zero-config';
7
7
  import { dataListClickHandler } from './event-handlers/data-list-click-handler';
8
8
  import { dataListDblclickHandler } from './event-handlers/data-list-dblclick-handler';
9
9
  let DataList = class DataList extends LitElement {
@@ -226,12 +226,6 @@ DataList.styles = [
226
226
  slot {
227
227
  width: 100%;
228
228
  }
229
-
230
- slot[name='headroom'] {
231
- display: flex;
232
- position: absolute;
233
- top: 0;
234
- }
235
229
  `
236
230
  ];
237
231
  __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"data-list.js","sourceRoot":"","sources":["../../../src/data-list/data-list.ts"],"names":[],"mappings":"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","sourcesContent":["import '@material/mwc-icon'\nimport './record-partial'\n\nimport { ColumnConfig, GristConfig, GristData, GristRecord } from '../types'\nimport { LitElement, PropertyValues, css, html } from 'lit'\nimport { ZERO_CONFIG, ZERO_DATA } from '../configure/zero-config'\nimport { customElement, property } from 'lit/decorators.js'\n\nimport { dataListClickHandler } from './event-handlers/data-list-click-handler'\nimport { dataListDblclickHandler } from './event-handlers/data-list-dblclick-handler'\n\n@customElement('ox-list')\nexport class DataList extends LitElement {\n static styles = [\n css`\n :host {\n background-color: var(--data-list-background-color);\n overflow-y: auto;\n }\n\n :nth-child(even) {\n background-color: var(--theme-white-color);\n }\n\n [selected-row] {\n background-color: var(--data-list-selected-background-color);\n }\n\n #upward {\n --mdc-icon-size: 26px;\n position: absolute;\n top: var(--data-list-fab-position-vertical);\n right: var(--data-list-fab-position-horizontal);\n background-color: rgba(255, 255, 255, 0.7);\n border-radius: 20px;\n color: var(--data-list-fab-color);\n box-shadow: var(--data-list-fab-shadow);\n padding: 7px;\n }\n\n slot {\n width: 100%;\n }\n\n slot[name='headroom'] {\n display: flex;\n position: absolute;\n top: 0;\n }\n `\n ]\n\n @property({ type: Object }) config: GristConfig = ZERO_CONFIG\n @property({ type: Object }) data: GristData = ZERO_DATA\n @property({ type: Boolean }) isTop: boolean = false\n @property({ type: Array }) private _records: GristRecord[] = []\n\n private _total: number = 0\n private _limit: number = 20\n private _page: number = 1\n\n firstUpdated(changes: PropertyValues<this>) {\n this.isTop = true\n\n /* infinite scrolling */\n this.addEventListener('scroll', e => {\n const totalScrollHeight = this.scrollHeight\n const screenHeight = this.offsetHeight\n const currentScrollTop = this.scrollTop\n\n if (totalScrollHeight <= screenHeight + currentScrollTop + 1) {\n /* 마지막 페이지까지 계속 페이지를 증가시킨다. */\n var lastPage = Math.ceil(this._total / this._limit)\n\n if (this._page < lastPage) {\n this.dispatchEvent(new CustomEvent('attach-page', { bubbles: true, composed: true }))\n }\n }\n\n this.isTop = this.scrollTop == 0\n })\n\n this.addEventListener('select-record-change', e => {\n var {\n records: selectedRecords,\n added = [],\n removed = []\n } = (e as CustomEvent).detail as {\n records: GristRecord[]\n added: GristRecord[]\n removed: GristRecord[]\n }\n var { records } = this.data || {}\n var { selectable = false } = this.config.rows || {}\n\n if (!records || !selectable) {\n return\n } else if (selectable && !selectable.multiple) {\n records.forEach(record => (record['__selected__'] = false))\n }\n\n if (selectedRecords) {\n records.forEach(record => (record['__selected__'] = false))\n selectedRecords.forEach(record => (record['__selected__'] = true))\n } else {\n removed.forEach(record => (record['__selected__'] = false))\n added.forEach(record => (record['__selected__'] = true))\n }\n\n this.requestUpdate()\n })\n\n /* field change processing */\n this.addEventListener('field-change', e => {\n var { after, before, column, record, row } = (e as CustomEvent).detail as {\n after: any\n before: any\n column: ColumnConfig\n record: GristRecord\n row: number\n }\n\n /* compare changes */\n if (after === before) {\n return\n }\n\n var validation = column.validation\n if (validation && typeof validation == 'function') {\n if (!validation.call(this, after, before, record, column)) {\n return\n }\n }\n\n this.onRecordChanged({ [column.name]: after }, row, column)\n })\n\n /* record reset processing */\n this.addEventListener('record-reset', e => {\n var { record, row } = (e as CustomEvent).detail as {\n record: GristRecord\n row: number\n }\n\n this.onRecordChanged(record['__origin__'], row, null)\n })\n\n this.renderRoot.addEventListener('click', dataListClickHandler.bind(this) as EventListener)\n this.renderRoot.addEventListener('dblclick', dataListDblclickHandler.bind(this) as EventListener)\n }\n\n onRecordChanged(\n recordData: GristRecord,\n row: number,\n column: ColumnConfig | null /* TODO column should be removed */\n ) {\n // TODO 오브젝트나 배열 타입인 경우 deepCompare 후에 변경 적용 여부를 결정한다.\n\n /* 빈 그리드로 시작한 경우, data 설정이 되어있지 않을 수 있다. */\n var records = this.data.records\n\n var beforeRecord = records[row]\n var afterRecord: GristRecord\n var wantToDelete = false\n var wantToAppend = false\n\n if (!recordData) {\n if (!beforeRecord) {\n /* recordData가 없고, beforeRecord도 없다면, 레코드 생성 중에 리셋된 경우이므로 아무것도 하지 않는다. */\n this.requestUpdate()\n return\n } else {\n /*\n * beforeRecord가 있는데, 빈데이타로 업데이트하고자 한다면,\n * 삭제하고자 하는 의도로 이해된다. (주의 필요)\n */\n if (beforeRecord['__dirty__'] == '+') {\n wantToDelete = true\n } else {\n afterRecord = {\n ...beforeRecord,\n __dirty__: '-'\n }\n }\n }\n } else {\n if (!beforeRecord) {\n /* 기존 레코드가 없는 경우에는 새로운 레코드가 생성된다 */\n afterRecord = {\n ...recordData,\n __dirty__: '+'\n }\n\n wantToAppend = true\n } else {\n let beforeDirty = beforeRecord['__dirty__']\n if (beforeDirty == '+') {\n /* 기존에 새로 생성된 레코드가 있었으며 계속 수정중이다. */\n afterRecord = {\n ...beforeRecord,\n ...recordData,\n __dirty__: '+'\n }\n } else {\n /* 기존에 레코드가 있었으며 계속 수정중이다. */\n afterRecord = {\n ...beforeRecord,\n ...recordData,\n __dirty__: 'M'\n }\n }\n }\n }\n\n if (wantToAppend) {\n records.push(afterRecord!)\n } else if (wantToDelete) {\n records.splice(row, 1)\n } else {\n records.splice(row, 1, afterRecord!)\n }\n\n this.dispatchEvent(\n new CustomEvent('record-change', {\n bubbles: true,\n composed: true,\n detail: {\n before: beforeRecord,\n after: afterRecord!,\n column,\n row\n }\n })\n )\n }\n\n updated(changes: PropertyValues<this>) {\n if (changes.has('config')) {\n this._records = []\n this._page = 1\n }\n\n if (changes.has('data')) {\n this._records = this.data.records\n this._total = this.data.total || 0\n this._limit = this.data.limit || 20\n this._page = this.data.page || 0\n }\n }\n\n render() {\n var records = this._records || []\n\n if (this.config && this.config.rows.appendable) {\n records = [...records, { __dirty__: '+' }]\n }\n\n return html`\n ${records.map(\n (record, rowIndex) => html`\n <ox-record-partial\n .config=${this.config}\n .data=${this.data}\n .record=${record}\n .rowIndex=${rowIndex}\n ?selected-row=${record['__selected__']}\n ?dirty=${record['__dirty__']}\n ></ox-record-partial>\n `\n )}\n ${this.isTop\n ? html``\n : html` <mwc-icon id=\"upward\" @click=${(e: Event) => this.gotoTop(e)}>arrow_upward</mwc-icon> `}\n `\n }\n\n gotoTop(e: Event) {\n this.scrollTop = 0\n\n e.stopPropagation()\n }\n\n get pullToRefreshTarget() {\n return this\n }\n}\n"]}
1
+ {"version":3,"file":"data-list.js","sourceRoot":"","sources":["../../../src/data-list/data-list.ts"],"names":[],"mappings":"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","sourcesContent":["import '@material/mwc-icon'\nimport './record-partial'\n\nimport { css, html, LitElement, PropertyValues } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\nimport { ZERO_CONFIG, ZERO_DATA } from '../configure/zero-config'\nimport { ColumnConfig, GristConfig, GristData, GristRecord } from '../types'\nimport { dataListClickHandler } from './event-handlers/data-list-click-handler'\nimport { dataListDblclickHandler } from './event-handlers/data-list-dblclick-handler'\n\n@customElement('ox-list')\nexport class DataList extends LitElement {\n static styles = [\n css`\n :host {\n background-color: var(--data-list-background-color);\n overflow-y: auto;\n }\n\n :nth-child(even) {\n background-color: var(--theme-white-color);\n }\n\n [selected-row] {\n background-color: var(--data-list-selected-background-color);\n }\n\n #upward {\n --mdc-icon-size: 26px;\n position: absolute;\n top: var(--data-list-fab-position-vertical);\n right: var(--data-list-fab-position-horizontal);\n background-color: rgba(255, 255, 255, 0.7);\n border-radius: 20px;\n color: var(--data-list-fab-color);\n box-shadow: var(--data-list-fab-shadow);\n padding: 7px;\n }\n\n slot {\n width: 100%;\n }\n `\n ]\n\n @property({ type: Object }) config: GristConfig = ZERO_CONFIG\n @property({ type: Object }) data: GristData = ZERO_DATA\n @property({ type: Boolean }) isTop: boolean = false\n @property({ type: Array }) private _records: GristRecord[] = []\n\n private _total: number = 0\n private _limit: number = 20\n private _page: number = 1\n\n firstUpdated(changes: PropertyValues<this>) {\n this.isTop = true\n\n /* infinite scrolling */\n this.addEventListener('scroll', e => {\n const totalScrollHeight = this.scrollHeight\n const screenHeight = this.offsetHeight\n const currentScrollTop = this.scrollTop\n\n if (totalScrollHeight <= screenHeight + currentScrollTop + 1) {\n /* 마지막 페이지까지 계속 페이지를 증가시킨다. */\n var lastPage = Math.ceil(this._total / this._limit)\n\n if (this._page < lastPage) {\n this.dispatchEvent(new CustomEvent('attach-page', { bubbles: true, composed: true }))\n }\n }\n\n this.isTop = this.scrollTop == 0\n })\n\n this.addEventListener('select-record-change', e => {\n var {\n records: selectedRecords,\n added = [],\n removed = []\n } = (e as CustomEvent).detail as {\n records: GristRecord[]\n added: GristRecord[]\n removed: GristRecord[]\n }\n var { records } = this.data || {}\n var { selectable = false } = this.config.rows || {}\n\n if (!records || !selectable) {\n return\n } else if (selectable && !selectable.multiple) {\n records.forEach(record => (record['__selected__'] = false))\n }\n\n if (selectedRecords) {\n records.forEach(record => (record['__selected__'] = false))\n selectedRecords.forEach(record => (record['__selected__'] = true))\n } else {\n removed.forEach(record => (record['__selected__'] = false))\n added.forEach(record => (record['__selected__'] = true))\n }\n\n this.requestUpdate()\n })\n\n /* field change processing */\n this.addEventListener('field-change', e => {\n var { after, before, column, record, row } = (e as CustomEvent).detail as {\n after: any\n before: any\n column: ColumnConfig\n record: GristRecord\n row: number\n }\n\n /* compare changes */\n if (after === before) {\n return\n }\n\n var validation = column.validation\n if (validation && typeof validation == 'function') {\n if (!validation.call(this, after, before, record, column)) {\n return\n }\n }\n\n this.onRecordChanged({ [column.name]: after }, row, column)\n })\n\n /* record reset processing */\n this.addEventListener('record-reset', e => {\n var { record, row } = (e as CustomEvent).detail as {\n record: GristRecord\n row: number\n }\n\n this.onRecordChanged(record['__origin__'], row, null)\n })\n\n this.renderRoot.addEventListener('click', dataListClickHandler.bind(this) as EventListener)\n this.renderRoot.addEventListener('dblclick', dataListDblclickHandler.bind(this) as EventListener)\n }\n\n onRecordChanged(\n recordData: GristRecord,\n row: number,\n column: ColumnConfig | null /* TODO column should be removed */\n ) {\n // TODO 오브젝트나 배열 타입인 경우 deepCompare 후에 변경 적용 여부를 결정한다.\n\n /* 빈 그리드로 시작한 경우, data 설정이 되어있지 않을 수 있다. */\n var records = this.data.records\n\n var beforeRecord = records[row]\n var afterRecord: GristRecord\n var wantToDelete = false\n var wantToAppend = false\n\n if (!recordData) {\n if (!beforeRecord) {\n /* recordData가 없고, beforeRecord도 없다면, 레코드 생성 중에 리셋된 경우이므로 아무것도 하지 않는다. */\n this.requestUpdate()\n return\n } else {\n /*\n * beforeRecord가 있는데, 빈데이타로 업데이트하고자 한다면,\n * 삭제하고자 하는 의도로 이해된다. (주의 필요)\n */\n if (beforeRecord['__dirty__'] == '+') {\n wantToDelete = true\n } else {\n afterRecord = {\n ...beforeRecord,\n __dirty__: '-'\n }\n }\n }\n } else {\n if (!beforeRecord) {\n /* 기존 레코드가 없는 경우에는 새로운 레코드가 생성된다 */\n afterRecord = {\n ...recordData,\n __dirty__: '+'\n }\n\n wantToAppend = true\n } else {\n let beforeDirty = beforeRecord['__dirty__']\n if (beforeDirty == '+') {\n /* 기존에 새로 생성된 레코드가 있었으며 계속 수정중이다. */\n afterRecord = {\n ...beforeRecord,\n ...recordData,\n __dirty__: '+'\n }\n } else {\n /* 기존에 레코드가 있었으며 계속 수정중이다. */\n afterRecord = {\n ...beforeRecord,\n ...recordData,\n __dirty__: 'M'\n }\n }\n }\n }\n\n if (wantToAppend) {\n records.push(afterRecord!)\n } else if (wantToDelete) {\n records.splice(row, 1)\n } else {\n records.splice(row, 1, afterRecord!)\n }\n\n this.dispatchEvent(\n new CustomEvent('record-change', {\n bubbles: true,\n composed: true,\n detail: {\n before: beforeRecord,\n after: afterRecord!,\n column,\n row\n }\n })\n )\n }\n\n updated(changes: PropertyValues<this>) {\n if (changes.has('config')) {\n this._records = []\n this._page = 1\n }\n\n if (changes.has('data')) {\n this._records = this.data.records\n this._total = this.data.total || 0\n this._limit = this.data.limit || 20\n this._page = this.data.page || 0\n }\n }\n\n render() {\n var records = this._records || []\n\n if (this.config && this.config.rows.appendable) {\n records = [...records, { __dirty__: '+' }]\n }\n\n return html`\n ${records.map(\n (record, rowIndex) => html`\n <ox-record-partial\n .config=${this.config}\n .data=${this.data}\n .record=${record}\n .rowIndex=${rowIndex}\n ?selected-row=${record['__selected__']}\n ?dirty=${record['__dirty__']}\n ></ox-record-partial>\n `\n )}\n ${this.isTop\n ? html``\n : html` <mwc-icon id=\"upward\" @click=${(e: Event) => this.gotoTop(e)}>arrow_upward</mwc-icon> `}\n `\n }\n\n gotoTop(e: Event) {\n this.scrollTop = 0\n\n e.stopPropagation()\n }\n\n get pullToRefreshTarget() {\n return this\n }\n}\n"]}
@@ -67,14 +67,14 @@ export class DataProvider {
67
67
  }
68
68
  get fetchHandler() {
69
69
  if (!this._fetchHandlerWrap) {
70
- this._fetchHandlerWrap = async (...args) => {
70
+ this._fetchHandlerWrap = async (options) => {
71
71
  var _a, _b;
72
72
  if (!this._fetchHandler) {
73
73
  return;
74
74
  }
75
75
  try {
76
76
  (_a = this.consumer) === null || _a === void 0 ? void 0 : _a.showSpinner();
77
- return await (this._fetchHandler || EMPTY_FETCHHANDLER)(...args);
77
+ return await (this._fetchHandler || EMPTY_FETCHHANDLER)(options);
78
78
  }
79
79
  finally {
80
80
  (_b = this.consumer) === null || _b === void 0 ? void 0 : _b.hideSpinner();
@@ -1 +1 @@
1
- {"version":3,"file":"data-provider.js","sourceRoot":"","sources":["../../src/data-provider.ts"],"names":[],"mappings":"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","sourcesContent":["import { DataConsumer, FetchHandler } from './data-consumer'\nimport { GristRecord, SorterConfig } from './types'\n\nimport { ZERO_RECORDS } from './configure/zero-config'\n\nfunction EMPTY_FETCHHANDLER() {\n return {\n total: 0,\n records: []\n }\n}\n\nfunction _calculateTotalPage(limit: number, total: number) {\n /*\n * total page는 1이상이어야 한다.\n * 즉, 레코드가 하나도 없어도, 페이지 갯수는 1이 되어야 한다.\n */\n return Math.max(1, Math.ceil(total / limit))\n}\n\nexport class DataProvider {\n page: number = 1\n limit: number = 20\n total: number = 0\n records: GristRecord[] = []\n\n private consumer?: DataConsumer\n private _fetchHandler?: FetchHandler\n private _sorters?: SorterConfig[]\n\n private _pageChangeHandler: EventListener = this.onPageChange.bind(this)\n private _limitChangeHandler = this.onLimitChange.bind(this)\n private _sortersChangeHandler = this.onSortersChange.bind(this)\n private _recordChangeHandler = this.onRecordChange.bind(this)\n private _attachPageHandler: EventListener = this.onAttachPage.bind(this)\n\n private _fetchHandlerWrap: any\n private _fetchOptions: any\n\n constructor(consumer: DataConsumer) {\n this.consumer = consumer\n\n this.fetchHandler = consumer.fetchHandler\n\n this.consumer.addEventListener('attach-page', this._attachPageHandler)\n this.consumer.addEventListener('page-change', this._pageChangeHandler)\n this.consumer.addEventListener('limit-change', this._limitChangeHandler)\n this.consumer.addEventListener('sorters-change', this._sortersChangeHandler)\n this.consumer.addEventListener('record-change', this._recordChangeHandler)\n }\n\n dispose() {\n this.consumer?.removeEventListener('attach-page', this._attachPageHandler)\n this.consumer?.removeEventListener('page-change', this._pageChangeHandler)\n this.consumer?.removeEventListener('limit-change', this._limitChangeHandler)\n this.consumer?.removeEventListener('sorters-change', this._sortersChangeHandler)\n this.consumer?.removeEventListener('record-change', this._recordChangeHandler)\n }\n\n onAttachPage() {\n this.attach()\n }\n\n onPageChange(e: Event) {\n var page = (e as CustomEvent).detail\n this.fetch({ page })\n }\n\n onLimitChange(e: Event) {\n var limit = (e as CustomEvent).detail\n this.fetch({ limit })\n }\n\n onSortersChange(e: Event) {\n this.sorters = (e as CustomEvent).detail\n this.fetch()\n }\n\n onRecordChange(e: Event) {\n this.consumer?.checkDirties()\n }\n\n get fetchOptions() {\n return this._fetchOptions\n }\n\n set fetchOptions(fetchOptions) {\n this._fetchOptions = fetchOptions\n\n this.fetch()\n }\n\n get fetchHandler() {\n if (!this._fetchHandlerWrap) {\n this._fetchHandlerWrap = async (...args: any[]) => {\n if (!this._fetchHandler) {\n return\n }\n\n try {\n this.consumer?.showSpinner()\n return await (this._fetchHandler || EMPTY_FETCHHANDLER)(...args)\n } finally {\n this.consumer?.hideSpinner()\n }\n }\n }\n\n return this._fetchHandlerWrap\n }\n\n set fetchHandler(fetchHandler) {\n this._fetchHandler = fetchHandler\n delete this._fetchHandlerWrap\n }\n\n get sorters() {\n return this._sorters\n }\n\n set sorters(sorters) {\n this._sorters = sorters\n }\n\n async attach(reset = false) {\n var { page = 0, limit = 20 } = this\n\n /*\n * page는 0 based index가 아님에 주의한다.\n * 즉, page 값이 1 은 첫페이지를 의미한다.\n */\n if (reset) {\n this.records = ZERO_RECORDS\n page = 1\n } else {\n /* attach의 경우는 grist data의 변경상태를 유지하기 위해서, grist._data 를 기반으로 한다. */\n this.records = this.consumer?._data ? this.consumer._data.records : ZERO_RECORDS\n page = page + 1\n }\n\n return this._update(\n {\n /* fetch에서 limit과 page를 제공하지 않는 경우를 대비함. */\n limit,\n page,\n ...(await this.fetchHandler.call(null, {\n page,\n limit,\n sorters: this.sorters,\n options: this.fetchOptions\n }))\n },\n reset\n )\n }\n\n async fetch({ page = this.page, limit = this.limit, sorters = this.sorters } = {}) {\n /* fetchHandler should reture { page, limit, total, records } */\n this.records = ZERO_RECORDS\n\n this.sorters = sorters\n\n return this._update({\n /* fetch에서 limit과 page를 제공하지 않는 경우를 대비함. */\n limit,\n page,\n ...(await this.fetchHandler.call(null, {\n page,\n limit,\n sorters,\n options: this.fetchOptions\n }))\n })\n }\n\n async _update(\n {\n page,\n limit,\n total,\n records\n }: {\n page: number\n limit: number\n total: number\n records: GristRecord[]\n },\n reset?: boolean\n ): Promise<void> {\n // total을 감안해서 page가 최대값을 넘지 않도록 한다.\n var maxpage = _calculateTotalPage(limit, total)\n if (maxpage < page) {\n return await this.fetch({ page: maxpage, limit })\n }\n // CONFIRM-ME 위 코드에 대한 설명이 필요함!!!.\n\n // page와 limit이 없는 경우 records 검사 전에 초기화\n this.page = this.page || page\n this.limit = this.limit || limit\n\n if (!records) {\n return\n }\n\n if (this.records === ZERO_RECORDS) {\n this.records = records\n } else if (this.page < page) {\n // attach인 경우에는 records를 append한다.\n this.records = [...this.records, ...records]\n } else {\n return\n }\n\n this.limit = limit\n this.total = total\n this.page = page\n\n this.consumer &&\n (this.consumer.data = {\n page: this.page,\n limit: this.limit,\n total: this.total,\n\n records: this.records\n })\n }\n}\n"]}
1
+ {"version":3,"file":"data-provider.js","sourceRoot":"","sources":["../../src/data-provider.ts"],"names":[],"mappings":"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","sourcesContent":["import { ZERO_RECORDS } from './configure/zero-config'\nimport { DataConsumer } from './data-consumer'\nimport { FetchHandler, FetchOption, GristRecord, SorterConfig } from './types'\n\nfunction EMPTY_FETCHHANDLER() {\n return {\n total: 0,\n records: []\n }\n}\n\nfunction _calculateTotalPage(limit: number, total: number) {\n /*\n * total page는 1이상이어야 한다.\n * 즉, 레코드가 하나도 없어도, 페이지 갯수는 1이 되어야 한다.\n */\n return Math.max(1, Math.ceil(total / limit))\n}\n\nexport class DataProvider {\n page: number = 1\n limit: number = 20\n total: number = 0\n records: GristRecord[] = []\n\n private consumer?: DataConsumer\n private _fetchHandler?: FetchHandler\n private _sorters?: SorterConfig[]\n\n private _pageChangeHandler: EventListener = this.onPageChange.bind(this)\n private _limitChangeHandler = this.onLimitChange.bind(this)\n private _sortersChangeHandler = this.onSortersChange.bind(this)\n private _recordChangeHandler = this.onRecordChange.bind(this)\n private _attachPageHandler: EventListener = this.onAttachPage.bind(this)\n\n private _fetchHandlerWrap: any\n private _fetchOptions: any\n\n constructor(consumer: DataConsumer) {\n this.consumer = consumer\n\n this.fetchHandler = consumer.fetchHandler\n\n this.consumer.addEventListener('attach-page', this._attachPageHandler)\n this.consumer.addEventListener('page-change', this._pageChangeHandler)\n this.consumer.addEventListener('limit-change', this._limitChangeHandler)\n this.consumer.addEventListener('sorters-change', this._sortersChangeHandler)\n this.consumer.addEventListener('record-change', this._recordChangeHandler)\n }\n\n dispose() {\n this.consumer?.removeEventListener('attach-page', this._attachPageHandler)\n this.consumer?.removeEventListener('page-change', this._pageChangeHandler)\n this.consumer?.removeEventListener('limit-change', this._limitChangeHandler)\n this.consumer?.removeEventListener('sorters-change', this._sortersChangeHandler)\n this.consumer?.removeEventListener('record-change', this._recordChangeHandler)\n }\n\n onAttachPage() {\n this.attach()\n }\n\n onPageChange(e: Event) {\n var page = (e as CustomEvent).detail\n this.fetch({ page })\n }\n\n onLimitChange(e: Event) {\n var limit = (e as CustomEvent).detail\n this.fetch({ limit })\n }\n\n onSortersChange(e: Event) {\n this.sorters = (e as CustomEvent).detail\n this.fetch()\n }\n\n onRecordChange(e: Event) {\n this.consumer?.checkDirties()\n }\n\n get fetchOptions() {\n return this._fetchOptions\n }\n\n set fetchOptions(fetchOptions) {\n this._fetchOptions = fetchOptions\n\n this.fetch()\n }\n\n get fetchHandler() {\n if (!this._fetchHandlerWrap) {\n this._fetchHandlerWrap = async (options: FetchOption) => {\n if (!this._fetchHandler) {\n return\n }\n\n try {\n this.consumer?.showSpinner()\n return await (this._fetchHandler || EMPTY_FETCHHANDLER)(options)\n } finally {\n this.consumer?.hideSpinner()\n }\n }\n }\n\n return this._fetchHandlerWrap\n }\n\n set fetchHandler(fetchHandler) {\n this._fetchHandler = fetchHandler\n delete this._fetchHandlerWrap\n }\n\n get sorters() {\n return this._sorters\n }\n\n set sorters(sorters) {\n this._sorters = sorters\n }\n\n async attach(reset = false) {\n var { page = 0, limit = 20 } = this\n\n /*\n * page는 0 based index가 아님에 주의한다.\n * 즉, page 값이 1 은 첫페이지를 의미한다.\n */\n if (reset) {\n this.records = ZERO_RECORDS\n page = 1\n } else {\n /* attach의 경우는 grist data의 변경상태를 유지하기 위해서, grist._data 를 기반으로 한다. */\n this.records = this.consumer?._data ? this.consumer._data.records : ZERO_RECORDS\n page = page + 1\n }\n\n return this._update(\n {\n /* fetch에서 limit과 page를 제공하지 않는 경우를 대비함. */\n limit,\n page,\n ...(await this.fetchHandler.call(null, {\n page,\n limit,\n sorters: this.sorters,\n options: this.fetchOptions\n }))\n },\n reset\n )\n }\n\n async fetch({ page = this.page, limit = this.limit, sorters = this.sorters } = {}) {\n /* fetchHandler should reture { page, limit, total, records } */\n this.records = ZERO_RECORDS\n\n this.sorters = sorters\n\n return this._update({\n /* fetch에서 limit과 page를 제공하지 않는 경우를 대비함. */\n limit,\n page,\n ...(await this.fetchHandler.call(null, {\n page,\n limit,\n sorters,\n options: this.fetchOptions\n }))\n })\n }\n\n async _update(\n {\n page,\n limit,\n total,\n records\n }: {\n page: number\n limit: number\n total: number\n records: GristRecord[]\n },\n reset?: boolean\n ): Promise<void> {\n // total을 감안해서 page가 최대값을 넘지 않도록 한다.\n var maxpage = _calculateTotalPage(limit, total)\n if (maxpage < page) {\n return await this.fetch({ page: maxpage, limit })\n }\n // CONFIRM-ME 위 코드에 대한 설명이 필요함!!!.\n\n // page와 limit이 없는 경우 records 검사 전에 초기화\n this.page = this.page || page\n this.limit = this.limit || limit\n\n if (!records) {\n return\n }\n\n if (this.records === ZERO_RECORDS) {\n this.records = records\n } else if (this.page < page) {\n // attach인 경우에는 records를 append한다.\n this.records = [...this.records, ...records]\n } else {\n return\n }\n\n this.limit = limit\n this.total = total\n this.page = page\n\n this.consumer &&\n (this.consumer.data = {\n page: this.page,\n limit: this.limit,\n total: this.total,\n\n records: this.records\n })\n }\n}\n"]}
@@ -1,12 +1,12 @@
1
+ import { TemplateResult } from 'lit-html';
1
2
  import { DataCardField } from './data-card/data-card-field';
2
3
  import { DataCardGutter } from './data-card/data-card-gutter';
4
+ import { RecordCard } from './data-card/record-card';
3
5
  import { DataGridField } from './data-grid/data-grid-field';
4
6
  import { DataListField } from './data-list/data-list-field';
5
7
  import { DataListGutter } from './data-list/data-list-gutter';
6
- import { DataReportField } from './data-report/data-report-field';
7
- import { RecordCard } from './data-card/record-card';
8
8
  import { RecordPartial } from './data-list/record-partial';
9
- import { TemplateResult } from 'lit-html';
9
+ import { DataReportField } from './data-report/data-report-field';
10
10
  export declare type GristConfig = {
11
11
  columns: ColumnConfig[];
12
12
  rows: RowsConfig;
@@ -31,6 +31,18 @@ export declare type PaginationConfig = {
31
31
  pages: number[];
32
32
  infinite?: boolean;
33
33
  };
34
+ export declare type FetchOption = {
35
+ page?: number;
36
+ limit?: number;
37
+ sorters?: object[];
38
+ options?: object;
39
+ };
40
+ export declare type FetchHandler = (param: FetchOption) => {
41
+ page?: number;
42
+ limit?: number;
43
+ total: number;
44
+ records: object[];
45
+ };
34
46
  export declare type GristEventHandler = (columns: ColumnConfig[], data?: GristData, column?: ColumnConfig, record?: GristRecord, rowIndex?: number, target?: any) => void;
35
47
  export declare type ColumnConfig = {
36
48
  type: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import { DataCardField } from './data-card/data-card-field'\nimport { DataCardGutter } from './data-card/data-card-gutter'\nimport { DataGridField } from './data-grid/data-grid-field'\nimport { DataListField } from './data-list/data-list-field'\nimport { DataListGutter } from './data-list/data-list-gutter'\nimport { DataReportField } from './data-report/data-report-field'\nimport { RecordCard } from './data-card/record-card'\nimport { RecordPartial } from './data-list/record-partial'\nimport { TemplateResult } from 'lit-html'\n\nexport type GristConfig = {\n columns: ColumnConfig[]\n rows: RowsConfig\n list: ListConfig\n pagination?: PaginationConfig\n sorters?: SortersConfig\n}\n\nexport type SorterConfig = { name: string; desc?: boolean }\nexport type SortersConfig = SorterConfig[]\nexport type FilterConfig = { type: string; options?: { [key: string]: any } }\n\nexport type PaginationConfig = {\n page?: number\n limit?: number\n pages: number[]\n infinite?: boolean\n}\n\nexport type GristEventHandler = (\n columns: ColumnConfig[],\n data?: GristData,\n column?: ColumnConfig,\n record?: GristRecord,\n rowIndex?: number,\n target?: any\n) => void\n\nexport type ColumnConfig = {\n type: string\n name: string\n gutterName?: string\n header: HeaderConfig\n record: RecordConfig\n handlers: GristEventHandlerSet\n label: LabelConfig\n hidden?: boolean\n sortable?: boolean\n resizable?: boolean\n width?: number | string | ColumnWidthCallback\n forList?: boolean\n validation?: ValidationCallback\n filter?: FilterConfig\n imex?: ImexConfig\n multiple?: boolean\n}\n\nexport type ValidationCallback = (after: any, before: any, record: GristRecord, column: ColumnConfig) => boolean\n\nexport type LabelConfig =\n | string\n | boolean\n | {\n renderer: LabelRenderer\n }\n\nexport type LabelRenderer = () => void\n\nexport type ColumnWidthCallback = (column: ColumnConfig) => string\n\nexport type HeaderConfig = {\n renderer: HeaderRenderer\n}\nexport type HeaderRenderer = (column: ColumnConfig) => any\n\nexport type RecordConfig = {\n renderer: FieldRenderer\n editor?: FieldEditor\n editable?: boolean\n classifier: GristClassifier\n align?: 'left' | 'right' | 'center'\n options: { [key: string]: any }\n rowOptionField?: string\n}\n\nexport type FieldRenderer = (\n value: any,\n column: ColumnConfig,\n record: GristRecord,\n rowIndex: number,\n owner: RecordCard | DataCardGutter | DataCardField | DataListGutter | DataListField | RecordPartial | DataReportField\n) => TemplateResult | string | void\nexport type FieldEditor = (\n value: any,\n column: ColumnConfig,\n record: GristRecord,\n rowIndex: number,\n field: DataGridField\n) => Element\nexport type FieldThumbnailRenderer = (record: GristRecord, rowIndex: number) => TemplateResult | string | void\nexport type FilterSelectRenderer = (column: ColumnConfig, owner: Element) => TemplateResult | string | void\n\nexport type GristEventHandlerSet = {\n click?: GristEventHandler\n dblclick?: GristEventHandler\n}\n\nexport type ListConfig = {\n thumbnail: FieldThumbnailRenderer\n fields: string[]\n details: string[]\n}\n\nexport type ImexConfig = {\n header: string\n key: string\n width: number\n type: string\n}\n\nexport type RowsConfig = {\n appendable: boolean\n insertable: boolean\n selectable?: RowSelectableConfig\n groups: GroupConfig[]\n totals: string[]\n classifier: GristClassifier\n handlers: GristEventHandlerSet\n}\n\nexport type GristClassifier = (\n record: GristRecord,\n rowIndex: number\n) => { emphasized?: boolean | string | string[]; [key: string]: any } | void\n\nexport type GroupConfig = {\n align: string\n titleColumn?: ColumnConfig\n title: string\n value?: string\n groupName?: string\n row?: number\n column: string | number\n rowspan: number\n colspan?: number\n}\n\nexport type RowSelectableConfig = {\n multiple?: boolean\n}\n\nexport type GristRecord = {\n id?: string\n name?: string\n __seq__?: number\n __dirty__?: string\n __selected__?: boolean\n __changes__?: object[]\n __dirtyfields__?: { [key: string]: any }\n __origin__?: any\n [key: string]: any\n}\n\nexport type GristData = {\n page?: number\n total?: number\n limit?: number\n records: GristRecord[]\n}\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import { TemplateResult } from 'lit-html'\n\nimport { DataCardField } from './data-card/data-card-field'\nimport { DataCardGutter } from './data-card/data-card-gutter'\nimport { RecordCard } from './data-card/record-card'\nimport { DataGridField } from './data-grid/data-grid-field'\nimport { DataListField } from './data-list/data-list-field'\nimport { DataListGutter } from './data-list/data-list-gutter'\nimport { RecordPartial } from './data-list/record-partial'\nimport { DataReportField } from './data-report/data-report-field'\n\nexport type GristConfig = {\n columns: ColumnConfig[]\n rows: RowsConfig\n list: ListConfig\n pagination?: PaginationConfig\n sorters?: SortersConfig\n}\n\nexport type SorterConfig = { name: string; desc?: boolean }\nexport type SortersConfig = SorterConfig[]\nexport type FilterConfig = { type: string; options?: { [key: string]: any } }\n\nexport type PaginationConfig = {\n page?: number\n limit?: number\n pages: number[]\n infinite?: boolean\n}\n\nexport type FetchOption = { page?: number; limit?: number; sorters?: object[]; options?: object }\nexport type FetchHandler = (param: FetchOption) => {\n page?: number\n limit?: number\n total: number\n records: object[]\n}\n\nexport type GristEventHandler = (\n columns: ColumnConfig[],\n data?: GristData,\n column?: ColumnConfig,\n record?: GristRecord,\n rowIndex?: number,\n target?: any\n) => void\n\nexport type ColumnConfig = {\n type: string\n name: string\n gutterName?: string\n header: HeaderConfig\n record: RecordConfig\n handlers: GristEventHandlerSet\n label: LabelConfig\n hidden?: boolean\n sortable?: boolean\n resizable?: boolean\n width?: number | string | ColumnWidthCallback\n forList?: boolean\n validation?: ValidationCallback\n filter?: FilterConfig\n imex?: ImexConfig\n multiple?: boolean\n}\n\nexport type ValidationCallback = (after: any, before: any, record: GristRecord, column: ColumnConfig) => boolean\n\nexport type LabelConfig =\n | string\n | boolean\n | {\n renderer: LabelRenderer\n }\n\nexport type LabelRenderer = () => void\n\nexport type ColumnWidthCallback = (column: ColumnConfig) => string\n\nexport type HeaderConfig = {\n renderer: HeaderRenderer\n}\nexport type HeaderRenderer = (column: ColumnConfig) => any\n\nexport type RecordConfig = {\n renderer: FieldRenderer\n editor?: FieldEditor\n editable?: boolean\n classifier: GristClassifier\n align?: 'left' | 'right' | 'center'\n options: { [key: string]: any }\n rowOptionField?: string\n}\n\nexport type FieldRenderer = (\n value: any,\n column: ColumnConfig,\n record: GristRecord,\n rowIndex: number,\n owner: RecordCard | DataCardGutter | DataCardField | DataListGutter | DataListField | RecordPartial | DataReportField\n) => TemplateResult | string | void\nexport type FieldEditor = (\n value: any,\n column: ColumnConfig,\n record: GristRecord,\n rowIndex: number,\n field: DataGridField\n) => Element\nexport type FieldThumbnailRenderer = (record: GristRecord, rowIndex: number) => TemplateResult | string | void\nexport type FilterSelectRenderer = (column: ColumnConfig, owner: Element) => TemplateResult | string | void\n\nexport type GristEventHandlerSet = {\n click?: GristEventHandler\n dblclick?: GristEventHandler\n}\n\nexport type ListConfig = {\n thumbnail: FieldThumbnailRenderer\n fields: string[]\n details: string[]\n}\n\nexport type ImexConfig = {\n header: string\n key: string\n width: number\n type: string\n}\n\nexport type RowsConfig = {\n appendable: boolean\n insertable: boolean\n selectable?: RowSelectableConfig\n groups: GroupConfig[]\n totals: string[]\n classifier: GristClassifier\n handlers: GristEventHandlerSet\n}\n\nexport type GristClassifier = (\n record: GristRecord,\n rowIndex: number\n) => { emphasized?: boolean | string | string[]; [key: string]: any } | void\n\nexport type GroupConfig = {\n align: string\n titleColumn?: ColumnConfig\n title: string\n value?: string\n groupName?: string\n row?: number\n column: string | number\n rowspan: number\n colspan?: number\n}\n\nexport type RowSelectableConfig = {\n multiple?: boolean\n}\n\nexport type GristRecord = {\n id?: string\n name?: string\n __seq__?: number\n __dirty__?: string\n __selected__?: boolean\n __changes__?: object[]\n __dirtyfields__?: { [key: string]: any }\n __origin__?: any\n [key: string]: any\n}\n\nexport type GristData = {\n page?: number\n total?: number\n limit?: number\n records: GristRecord[]\n}\n"]}
@@ -1 +1 @@
1
- {"program":{"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/tslib/tslib.d.ts","../../../node_modules/@lit/reactive-element/css-tag.d.ts","../../../node_modules/@lit/reactive-element/reactive-controller.d.ts","../../../node_modules/@lit/reactive-element/reactive-element.d.ts","../../../node_modules/@types/trusted-types/lib/index.d.ts","../../../node_modules/@types/trusted-types/index.d.ts","../../../node_modules/lit-html/directive.d.ts","../../../node_modules/lit-html/lit-html.d.ts","../../../node_modules/lit-element/lit-element.d.ts","../../../node_modules/lit/index.d.ts","../../../node_modules/@lit/reactive-element/decorators/base.d.ts","../../../node_modules/@lit/reactive-element/decorators/custom-element.d.ts","../../../node_modules/@lit/reactive-element/decorators/property.d.ts","../../../node_modules/@lit/reactive-element/decorators/state.d.ts","../../../node_modules/@lit/reactive-element/decorators/event-options.d.ts","../../../node_modules/@lit/reactive-element/decorators/query.d.ts","../../../node_modules/@lit/reactive-element/decorators/query-all.d.ts","../../../node_modules/@lit/reactive-element/decorators/query-async.d.ts","../../../node_modules/@lit/reactive-element/decorators/query-assigned-nodes.d.ts","../../../node_modules/lit/decorators.d.ts","../src/data-card/data-card-field.ts","../src/data-card/data-card-gutter.ts","../src/data-grid/data-grid-field.ts","../src/data-list/data-list-field.ts","../src/data-list/data-list-gutter.ts","../src/data-report/data-report-field.ts","../../../node_modules/@material/mwc-icon/mwc-icon.d.ts","../src/record-view/record-view-body.ts","../src/record-view/record-view.ts","../src/record-view/index.ts","../src/data-card/event-handlers/record-card-click-handler.ts","../src/data-card/event-handlers/record-card-dblclick-handler.ts","../src/data-card/record-card.ts","../src/data-list/event-handlers/record-partial-click-handler.ts","../src/data-list/event-handlers/record-partial-dblclick-handler.ts","../src/data-list/record-partial.ts","../src/types.ts","../src/configure/zero-config.ts","../../popup/dist/src/ox-popup.d.ts","../../popup/dist/src/ox-popup-list.d.ts","../../popup/dist/src/ox-popup-menu.d.ts","../../popup/dist/src/ox-popup-menuitem.d.ts","../../popup/dist/src/index.d.ts","../../../node_modules/lit-element/decorators.d.ts","../../../node_modules/lit-element/index.d.ts","../../input/dist/src/ox-formfield.d.ts","../../input/dist/src/ox-input-angle.d.ts","../../input/dist/src/ox-input-3dish.d.ts","../../input/dist/src/ox-buttons-radio.d.ts","../../input/dist/src/ox-input-stack.d.ts","../../input/dist/src/ox-checkbox.d.ts","../../input/dist/src/index.d.ts","../src/filters/list-select.ts","../src/filters/registry.ts","../../../node_modules/@types/lodash/common/common.d.ts","../../../node_modules/@types/lodash/common/array.d.ts","../../../node_modules/@types/lodash/common/collection.d.ts","../../../node_modules/@types/lodash/common/date.d.ts","../../../node_modules/@types/lodash/common/function.d.ts","../../../node_modules/@types/lodash/common/lang.d.ts","../../../node_modules/@types/lodash/common/math.d.ts","../../../node_modules/@types/lodash/common/number.d.ts","../../../node_modules/@types/lodash/common/object.d.ts","../../../node_modules/@types/lodash/common/seq.d.ts","../../../node_modules/@types/lodash/common/string.d.ts","../../../node_modules/@types/lodash/common/util.d.ts","../../../node_modules/@types/lodash/index.d.ts","../../../node_modules/@types/lodash-es/throttle.d.ts","../src/data-grid/data-grid-header.ts","../src/data-grid/event-handlers/data-grid-body-click-handler.ts","../src/data-grid/event-handlers/data-grid-body-dblclick-handler.ts","../src/const.ts","../src/data-grid/event-handlers/data-grid-body-keydown-handler.ts","../src/data-grid/data-grid-body-style.ts","../../../node_modules/@types/lodash-es/debounce.d.ts","../src/utils/supports-passive.ts","../src/utils/index.ts","../src/data-grid/data-grid-body.ts","../src/data-grid/data-grid-footer.ts","../../styles/dist/src/headroom-styles.d.ts","../../styles/dist/src/scrollbar-styles.d.ts","../../styles/dist/src/spinner-styles.d.ts","../../styles/dist/src/index.d.ts","../src/data-grid/data-grid.ts","../src/data-list/event-handlers/data-list-click-handler.ts","../src/data-list/event-handlers/data-list-dblclick-handler.ts","../src/data-list/data-list.ts","../src/data-card/event-handlers/data-card-click-handler.ts","../src/data-card/event-handlers/data-card-dblclick-handler.ts","../src/data-card/data-card.ts","../src/empty-note.ts","../src/data-consumer.ts","../src/data-provider.ts","../../headroom/dist/src/headroom.d.ts","../../headroom/dist/src/index.d.ts","../src/gutters/gutter-button.ts","../src/gutters/gutter-dirty.ts","../src/gutters/gutter-row-selector.ts","../src/gutters/gutter-sequence.ts","../src/gutters/registry.ts","../src/gutters/index.ts","../src/editors/input-editors.ts","../src/editors/registry.ts","../src/editors/index.ts","../src/handlers/record-view-handler.ts","../src/handlers/select-row.ts","../src/handlers/select-row-toggle.ts","../src/handlers/registry.ts","../src/handlers/index.ts","../src/renderers/boolean-renderer.ts","../src/renderers/color-renderer.ts","../src/renderers/date-renderer.ts","../src/renderers/image-renderer.ts","../../../node_modules/json5/lib/parse.d.ts","../../../node_modules/json5/lib/stringify.d.ts","../../../node_modules/json5/lib/index.d.ts","../src/renderers/json5-renderer.ts","../src/renderers/link-renderer.ts","../src/renderers/password-renderer.ts","../src/renderers/progress-renderer.ts","../src/renderers/select-renderer.ts","../src/renderers/text-renderer.ts","../src/renderers/registry.ts","../src/renderers/index.ts","../src/configure/column-builder.ts","../src/configure/imex-option-builder.ts","../src/configure/list-option-builder.ts","../src/configure/rows-option-builder.ts","../src/configure/config-builder.ts","../../../node_modules/@types/lodash-es/isempty.d.ts","../../../node_modules/@types/lodash-es/isequal.d.ts","../../pull-to-refresh/dist/src/pull-to-refresh-control.d.ts","../../pull-to-refresh/dist/src/pull-to-refresh.d.ts","../../pull-to-refresh/dist/src/index.d.ts","../src/data-grist.ts","../src/data-report/data-report-header.ts","../src/data-report/event-handlers/data-report-body-click-handler.ts","../src/data-report/event-handlers/data-report-body-dblclick-handler.ts","../src/data-report/event-handlers/data-report-body-keydown-handler.ts","../src/data-report/data-report-body-style.ts","../src/data-report/data-report-body.ts","../src/data-report/data-report-component.ts","../../../node_modules/i18next/index.d.ts","../src/data-report.ts","../src/formatters/date-formatter.ts","../src/formatters/number-formatter.ts","../src/formatters/text-formatter.ts","../src/formatters/registry.ts","../src/formatters/index.ts","../src/interfaces/ox-search-field.ts","../src/interfaces/ox-grist-search-form.ts","../src/interfaces/index.ts","../../../node_modules/lit-html/directives/if-defined.d.ts","../../../node_modules/lit/directives/if-defined.d.ts","../src/search-form/ox-basic-field.ts","../src/search-form/ox-text-field.ts","../src/search-form/ox-checkbox-field.ts","../src/search-form/ox-select-field.ts","../src/search-form/ox-number-field.ts","../src/search-form/ox-search-form.ts","../src/search-form/ox-grist-search-form.ts","../src/search-form/index.ts","../src/index.ts","../index.ts","../src/data-card/data-card-gutter-menu.ts","../src/data-list/event-handlers/record-partial-long-press-handler.ts","../src/filters/index.ts","../stories/index.stories.ts","../../../node_modules/@types/chai/index.d.ts","../../../node_modules/@open-wc/semantic-dom-diff/get-diffable-html.d.ts","../../../node_modules/@open-wc/semantic-dom-diff/chai-dom-diff-plugin.d.ts","../../../node_modules/@open-wc/semantic-dom-diff/chai-dom-diff.d.ts","../../../node_modules/@open-wc/semantic-dom-diff/index.d.ts","../../../node_modules/chai-a11y-axe/chai-a11y-axe-plugin.d.ts","../../../node_modules/chai-a11y-axe/src/accessible.d.ts","../../../node_modules/chai-a11y-axe/index.d.ts","../../../node_modules/@types/chai-dom/index.d.ts","../../../node_modules/@sinonjs/fake-timers/types/fake-timers-src.d.ts","../../../node_modules/@types/sinon/index.d.ts","../../../node_modules/@types/sinon-chai/index.d.ts","../../../node_modules/@open-wc/testing/register-chai-plugins.d.ts","../../../node_modules/@open-wc/testing-helpers/types/src/elementupdated.d.ts","../../../node_modules/lit-html/static.d.ts","../../../node_modules/@open-wc/testing-helpers/types/src/renderable.d.ts","../../../node_modules/@open-wc/dedupe-mixin/index.d.ts","../../../node_modules/@open-wc/scoped-elements/types/src/types.d.ts","../../../node_modules/@open-wc/scoped-elements/types/src/scopedelementsmixin.d.ts","../../../node_modules/@open-wc/scoped-elements/types/index.d.ts","../../../node_modules/@open-wc/testing-helpers/types/src/fixture-no-side-effect.d.ts","../../../node_modules/@open-wc/testing-helpers/types/src/fixture.d.ts","../../../node_modules/@open-wc/testing-helpers/types/src/fixturewrapper.d.ts","../../../node_modules/@open-wc/testing-helpers/types/src/helpers.d.ts","../../../node_modules/@open-wc/testing-helpers/types/src/scopedelementswrapper.d.ts","../../../node_modules/@open-wc/testing-helpers/types/src/litfixture.d.ts","../../../node_modules/@open-wc/testing-helpers/types/src/stringfixture.d.ts","../../../node_modules/@open-wc/testing-helpers/types/index.d.ts","../../../node_modules/@open-wc/testing/index.d.ts","../test/data-grist.test.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/dns/promises.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/@types/node/stream/web.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/timers/promises.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/globals.global.d.ts","../../../node_modules/@types/node/index.d.ts","../../../node_modules/@types/mocha/index.d.ts"],"fileInfos":[{"version":"6adbf5efd0e374ff5f427a4f26a5a413e9734eee5067a0e86da69aea41910b52","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","e21c071ca3e1b4a815d5f04a7475adcaeea5d64367e840dd0154096d705c3940",{"version":"abba1071bfd89e55e88a054b0c851ea3e8a494c340d0f3fab19eb18f6afb0c9e","affectsGlobalScope":true},{"version":"d8996609230d17e90484a2dd58f22668f9a05a3bfe00bfb1d6271171e54a31fb","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"4378fc8122ec9d1a685b01eb66c46f62aba6b239ca7228bb6483bcf8259ee493","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"62d80405c46c3f4c527ee657ae9d43fda65a0bf582292429aea1e69144a522a6","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"1b3fe904465430e030c93239a348f05e1be80640d91f2f004c3512c2c2c89f34","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"d071129cba6a5f2700be09c86c07ad2791ab67d4e5ed1eb301d6746c62745ea4","affectsGlobalScope":true},{"version":"10bbdc1981b8d9310ee75bfac28ee0477bb2353e8529da8cff7cb26c409cb5e8","affectsGlobalScope":true},"12f4cfe2fe60b810c3174537bc2ddb20c1067b7768643d12cb1266fd183afb75","0c8a56610b08f55e29ffb466cd27626ad6dbe822312a398026e82270c63088e3","1e5743b25a63fd34ffbae89adcbf248ee17db6ed08d90079ffa93803c3e80d2a","7b33ee85f2e96a51c0e3bcee47b247a24515aff37a7d8b5dfe4e18b735d37440","2fcd2d22b1f30555e785105597cd8f57ed50300e213c4f1bbca6ae149f782c38",{"version":"bb4248c7f953233ac52332088fac897d62b82be07244e551d87c5049600b6cf7","affectsGlobalScope":true},"70f04c91d3186b1b10157157887fab664968fc9b88377785a5ee42750c202c6d","06e20da1bc94df355f22ac7a9533c2488816ec4cb9134d9b160a263629a07072","c311ef8d8b159d0c268b415f78c1949498dc2d14455a9891c5b8ef84625b1e41","f07a77a7fb1d49aa2b61cb68bf712a083487acd7130d20223a83de03af0c257d","97c58f6db61d45712d91d2260994817ae2b568bbb37cc280013079b6b5d2232d","ac388c7c7a262213a3700451bc921e382a93fb27c0252c34ccf03540b4ce044b","9bdb35d0b28dcd5d8f0879bd29f0cf07b7eb48aa63be4dd44057e32fcfeb1c83","fb0107c83e2e0e75b77dacd0c3c6c3ab6844e98dce2a8f858c6f0a57c12136a6","84610cf09dee3cefc910555318f1ad7b45f1cba36905a86849324ca4fead2385","a25d1e52291791819032826af5c52987e16ffdb96e8bb69f7f1790f5ab080be6","d660961abada6b5030461f3322ef3a2e1d9fec74167574f8b590a7796cf90a72","707b4eae3d469b2f347d2083037151922f94c370a9456ebd5ac0a4fb7441c7e7","ef509d57201aa4e2e3e2b3d1fafd066a8ce68cd2caea737d539c3544f5a99a67","84c66a77a1302611ea5001dc88d10de1b5d87c6b2f30a48585495217421ce1ac","9f91d6d61f9cea88631e932ed08ba906b45d9daa9cb3fc2205041a29a06bda22","6bd5137340660aa00e95aa8c65c94d8f8529559b569300885b6ce2cfe472360a","f41a82816d944d87e570c26dfa100505462c6ae9facb5fd8332aa95a6680bbac","0fb8488c917f69f54e86aa143d5d6adffcc0f80631f0aae536c1043264e32391","75e223cbdf2917289aff71b0758885d9c1fce53b63f7dee1f6ffeec1f3a7ad78","d0eb198aa8b26193b40e6ed6c7170cdf2bd844088b7cbe310fdf793c2cfe2881",{"version":"27b285e901600242883d62a5fff9f5d262c6fa128b6e6c6963f981f2630a957e","affectsGlobalScope":true},"1a4367df8e269bd078822496c341e99f7914bf262ee878d6a75890617cf2d9f8","77f9481e8a34b8aa3a39b834885a4578a4f0e531cb52e0aa4599538e757323e5","cdd2ffe64e134028e6c5f786ea351d0e01ccc4ee81775305a0bb258aa4f30623","d4e46059ac026397ed17001f2f9354842c0824b1f7c1ef236dfa825fd1b9bc16","12e0624a60e97b3f91a0bd0057185e1947e928a39f39fe885e16d571ec5c5a90","d5167b9f42d757e9a729fb8b7a59df5befad865e76d30be6f69b2e0f87755f88","b37f60293d013ca597185057bca7eab3264b8f58892ad82fa368bbabbb62964d","d0adee9d028e855fceebfe74614e36a4a05693c792e0962c53e520de03a53d18","ba75c2595954275ae55b4bfffa757bda4c1e16f2c89f78d3d61aa52bedd97fed","a4cc69916c01af93030c447f29b10832427a4e8957e833f6a10378537e70d37f","cf8d7c29caf75f398e2cf61767e565bc514baa3214a80008aeea013f17c96d78","1d722bc8901d9cd7e0ee2edf5526bf2bb1dc4e24608b3f3b33d00fec42fbf1b8","0d9e52280b929cfa5c83241de4d5a7f0379cc3b12f51814b82985e231957427a","4d0f230bcbc4cb046b8be5218b81e099c0879cd65f2ad8f1416b685036ee54d1","10cbee260a09cb62cc5516ea65aa7504f21ec98048a324e789d04d40d9057513","77b0b20b0aeafc78f8af2d66bf16a53b91312d6426f5413a574b978cc6edff34","73b7d7df7c0dbc9a4c07c8c0f9bf6b436a0c728884e3425b120a65dd7459584e","3e96c96efad5d403b16c4b3d9cf99b3e86267a046abef94fe37cfa97ec013f23","3a00dd158022751cd1d19d29d1feb644609a53c6c1c46b02dded4ffc04e44a42","d8b4001e8ebb69d29fe37238d95e5821b5a69a2103b333dfe19df356c2af456a","483aeeccbdab8ce9102af2d71dec086135e08ebf913025b0c371228cccf349b8","e08d48cb07b0176357b71b20958f39fae42ef66e0213a1ac4d131278d9fb47bd","69de8cad66432212b451eaf53cf01657b93f15c760bc6881b98bf044d7d0f6c2","6f03eac79da391f3b736476c341b9b8ef5c072b488e77b9f016d5fc9a19a8ff1","c0d6073c426dc8ad85ba7895288478f5410643ef830d5763666ebc4885535d71","fa37f71d3db6032293e234c1931cbfd40a26181f8f47f84d923cd9ce4ecba157","1bcb8494d84f6df9c06f7c8e6fa0749b32b690867383b480c6ca86f0d82663ae","675e702f2032766a91eeadee64f51014c64688525da99dccd8178f0c599f13a8","378df8bbbb9e3f6fca05d58f644aab538e1062eab5e778fb0b83d41125df246d","d88a479cccf787b4aa82362150fbeba5211a32dbfafa7b92ba6995ecaf9a1a89","187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42","c24ad9be9adf28f0927e3d9d9e9cec1c677022356f241ccbbfb97bfe8fb3d1a1","0ec0998e2d085e8ea54266f547976ae152c9dd6cdb9ac4d8a520a230f5ebae84","9364c7566b0be2f7b70ff5285eb34686f83ccb01bda529b82d23b2a844653bfb","00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a","ae9930989ed57478eb03b9b80ad3efa7a3eacdfeff0f78ecf7894c4963a64f93","3c92b6dfd43cc1c2485d9eba5ff0b74a19bb8725b692773ef1d66dac48cda4bd","3e59f00ab03c33717b3130066d4debb272da90eeded4935ff0604c2bc25a5cae","6ac6f24aff52e62c3950461aa17eab26e3a156927858e6b654baef0058b4cd1e",{"version":"0714e2046df66c0e93c3330d30dbc0565b3e8cd3ee302cf99e4ede6220e5fec8","affectsGlobalScope":true},"1be8da453470021f6fe936ba19ee0bfebc7cfa2406953fa56e78940467c90769","a28fd30f35b2a9afb1c437a4eb07a57850456f18a9e16dee7fc261f6322b79bd","239bc5d8b5c22d741b17a3604982eb8339a559a43437b15eb41cd998aef46b7a","fe9f22ba83e4c9b1d1b6105a3eab129b1666a002c3665a3cb6eeb0a8d8dbd174","3dacb7c808d7bce659c6483a820edb426d3ca0c496b3836d41339463bae8f0de","200ff2f8e4c024be9dc95f16e8e0d61a5009a4e69133c101e5fc8f31b284c470","06ff1d15788446ff55c9749e18d9df92bfadd11f9359ee6a84c32eb00e3fe567","30905c89260ca8da4e72345c72f8e80beb9cc39ee2ee48261e63f76ea1874d1e","2fd48df87a103cee6f65309642f4502853d1608eeb00189249b2286093413e09","3c4bbff3ccab1975097cd7a1d54602cf49ee5287b578090883c9ed944d89d755","6d1d34d172a378bf37a6b48b60872073d3640d7c6bbbf852f63b505ebdc14d98","7b1caf881d4680c1a8a19f78962f5adfc74583477c718421fb7b1ee33fe7622a","cf93fb9208a01c80f0fad245c4360356e5de6c2384b7641acf0b9cc2f5c42448","336398b0efaf964124e636a9b29c4edd5870aee79ac64bf87be58a9d66b7c048","571bc65ec37ba124e762bb822e14a2b8502dc684e356be8feaccbd6b9cadd023","0766fae8dbc740ce8a4731666a1537594d7763f71f46bbfef67ed9d7a34cb0cc","cfc0bb3723f823a8b6eb7b180a28713dff744a70522a6ddd22d8b0498aecc1d5","355b4808d0f3d6f2720339032ed599c2400b68adec7890a2dfdbcdddc9dfc639","d69e089619f0d96b958e8c9fceff8e5f8e089c98cbf3f88c41b39e6c9be81ee4","0e62f630c4d432efff4c825735babecb7f05528d04c90847523d27cd77dd78c3","a5c5e2219ce1d79d69cea50bb6d1ab8a632cb5234b50cfeb6e217cd174079853","1e79dd4f633666341c63570d67682b3d0fa579b5fb7a13778701ffbf704065e2","5345351cd100a99dc11abf4b0500da3965eaaddf8bc522651f71c895f653c5e3","bcab3351a6ebfc2e2f19ca9aa349b0522b530a2d461414c0ab6fda03f833520e","3ed581c4c02d08dd758e588744ae5db9f350612f380393e0715dd8f423883d37","3dfba1042479b6dd0c47c8ed7a16cf3afb9b1f6e26775ecae909002cb3c4ebfd","769c966ef166205a08c0382a298a6c5877951599d805931a963ae5650ee46391","35c1202e93852c1c233191971b8c4aefe5d3f9df287991585fe305078c0880e6","8d87fe7b49ffdf726c8ebe86f7fcaf49731114d9cdf4a79e17405e25200c6fd4","2ee946e9af009e9d7573cf721a07208e17daa01d68e407a21c85b75369d2b81a","76feb982df79ca2271d1e7965ac7339b2908c967b29eb36ff7ffda90e2276c0b","2d26ffe8976c72dd5c9c68950742d31a72b339f91010c46ec6e4640064049478","1e834276e651debe99cd115a3cee8d3a53b1858355251bc8fee5c9be76bea5e4","900683c32709e025b93cc18be550bbf2a2e5686e0ac5d058f25468062117a5a7","de1a9813a41cae418348bce5e3235e416d60808b4dc7438cedd43025ecf68ce5","56e8d8346c27cf80c9cd090d815f367091c766b49fccfb675cee47139e208e20","2d478623349256bdcb8558f2217faf23dddb431adb410391348d3d0885eed142","a9d770695a42ac4e2593a5a588ecbdd015aee8c0ae62c72004432c32226f54ec","dd20dc1dde9e5dfc60ee128833c3fff8ac7367b3e5be5dd0abe8ddf01276703a","6f7ec8b0cfda6d2f5d099f767f43f39156e6d665eb37507ce95756078b59f86c","3bf5af355505ddb9cd63a4c1221601353176af04da96cecfd819a9b4fdb51e17","900683c32709e025b93cc18be550bbf2a2e5686e0ac5d058f25468062117a5a7","45480dca7801a941ba984c52a96932a88b33cd34350b721653172349dab8da72","7eb622f25e584caf2db75777fd45aba56a8dd4c2b91b1ce2b6e8b049d05e5b24","a69f95a1ffd9f2dbd632a05ac6c4ac0f62ad215bca75ad998b637c56233d1080","58ad45f0c73dab6bfefd3201e7fb3b69de03fe27f2304beae6c91416c1e82a3a","88a3a6f8c2a1640d8d5fd30d8d86462f8babd86a1e52fab0e8b7f7c141fb348e","345f76c854da724803c96f727a3f9c75e26cf95c6e7b8c1064dbc4e7727b74e6","ab7b7a15a5d73eb0cfc2b973e580f357f07492bff6608669d7e899e2d49ac9a3","df05184ed31d40e21373496ff82d04a077849030c3acaee9b9e90ad42420d8af","6ce34cbfa0480a66ace42ec4c9c43d185292f1f6753c35ff43127945b6bc67a6","3a6cd4b8b719d06b74ae01f84c16984b923d0510e655e247ba52c094ca6046e9","1f86828029e4c451cfbc7f2a7a7b02bc00cb92787565810da0e29460b0bf0aec","edccb51f9fe247f8bd47b91ece1d92b075e6b5c16d0a105d27ccb89d4700461b","6cee1623e9789e466ee0ed2db9b4c6f7145c6c107d940f74ae2fe5ef8f502ea8","5875ba32f894c6af79e095e166e81a6415a200e3631000c8d7325290752efd24","d3796eba9f0aa69613d07aea76fa51381b0ab81073c5d738e6a6a62ed95611a4","a67701d52c9681f09f291e30c49c1d37f311587f964eeb5fe13aa1a2c02076b0","42221ab620b5c643d8acf4ebf0be653237ae703e61d75d080865169dc216b709","65a9738ef946e53356d22ac459a30d2f3914dbed8018fa1a169be682a736102d","02149338a9afc04d32a63203e5111046676257bbdd4acd82f595b410e0e90ed4","139153fd5593479e342ea2b3cab5e5ccba57dbb09cd4f99a0e9c04dce696c3f7","3be6b3304a81d0301838860fd3b4536c2b93390e785808a1f1a30e4135501514","da66c1b3e50ef9908e31ce7a281b137b2db41423c2b143c62524f97a536a53d9","690a59ec8ef431839c447cd88fbb0bd0ce59c037736d8748737d4e0f2ed57077","4a2a6bd6a36b058effc58d1aab136cdbd66188773470885a4b414098a0d76821","b12f96f442196be954b8fa982f179527fff05a796962fecfb6e12b0a2c1b6867","3b3643d821f9f587562f081d75cc0771dabb2eafc2d2a6295767afd20e570891","accbe8d6d2e3d9ba9eb6a0e8eb3e6eb5edbb4c83ef697477c48960b3fd489709","fb396aed0372a9d07b066357137a71cada3c2cdcf63a943bb5cf54693879170f","0866f5c3af2d2991560fe573f7770a5de4df9e8661f3422dc3cdf3d07c7ca77b","257a9fbd78627aee4b41944dfdd51791295dc9f75e23ca860bfcbc1d963af172","84f090849fcf05385e3028adb7e0dd317ef90d2d6e2ce5b3014cc227ad959012","9aafa0486b647d36c763b947635c5abd502b4866068a201e1aac421ba2400635","f2492c82b866dbbec1cbf905068d3f10395eba9eddfeb93cd68d7999c7c02e94","c44dfb1945045dd2d0affce0f09f4f37eb504e69e1b114b61570b94bc2625b54","2df4e6ba6dee78a86e4ec293bae74ee74e7f1fe5b7ed542d560db8dcb491f4de","1e8c51eaab31c7c7ce8590e80b8663f360aed54caf8cdf2643349ef59ae27876","85d33ba4097c3f24ceeca365379301c327d5291da44e57bbcf301b68621f3708","39426a077f479e1b77cd46b3b2341d76963fc3f4832143effe966b22cd77b72f","f7f1e3147bdda813f8f14187c20ee886cd7cc1f1fe2bf61f678727789cf671ac","900683c32709e025b93cc18be550bbf2a2e5686e0ac5d058f25468062117a5a7","251fb837e3eefc7a173215efe55ebb373d9fec897222727a2f7155116ed2d435","8e99aaf972a6c838b663870254542772c537cab7a38e6274a2f22ec7a4ead471","2212824fa4922883901b4615635a1eda8788f69f6f8d98c7fc0005a067deb02d","8cfa7d90fe529121908d3dff84049cf7ef22f9e7730465ac7d4eb0b9339a98c9","62dea411507bb1166ea5940b49d4c338c19755523c37333c7e72749544038bdf","837e6673ec26cd2b1836c803d6da009414af6fb41b9b3e4da354a7d951e4ca15","c2ca0a54cc7834751e690220a2076537efafc81557b4662a472b9a67521e307a","0bbb5cc45fbd16275125543c3e0384db63878bb204bdf7c52ba552f6b99f5cfd","e171e60ab3a7ad19ca923c78efd9622a4e6b6e17a34e725bd7ff5bb5ca8e32c9","779f5614ebe2da4d6732b9d08897adc4c9f0e6201982824d15c1e7355c044459","e661819988538e4af27c23d55732efe30753fd3cbaf8e3b0bdff7139af05ab4e","cbb925cff3951c95e48779038235c39473cc72f182ea404689d4708f68940473","fdecfb7b227276fc0ce791be1ccb632a10e69608c381dca2ee8447f2b8e4fddc","2b9a6bb62441681d9e1b7d5d5619d01427940c0da211f3bf56ef53401075e089","a5e79bb8f19b20dbe0c68bd79b290a2b444c6b545cfb78d31f963c8e250df9a2","bf44e222a94f471385c144737a72686e213a85c791efc82aff43b215aa969614","05e8724049ab4e0e557f1723afd88725a866dc885520d19a14a1d7679eec5523","b98d9f66e748d5fac9da77d18ad94ce2bb35504e11c875c8c0d99d6f0dff5610","e5fdef1384127bd18db947832995108ac8e180ea01a69853a8e3d46213145f69",{"version":"0c9d1fd5b43d5e88c277f7f53cffc87778190f2f9a1f57743559421f04fc730b","affectsGlobalScope":true},"8a659f7d82d932649a78f89643c5b436953424a219d705d49b8b3d9ccd6e35ff",{"version":"75cd6dce1c5f87511772c891de86d0c9e6829e6273dea9f92a5bec9d0479d1e7","affectsGlobalScope":true},{"version":"cd711db43a952f15464b571ac11b7a440332cd52342bc92c4bf908c70688f57f","affectsGlobalScope":true},"9d8709c916778cb34830708ed47b78e9a46d1fb2eb73a682b14eee990bed4aa6",{"version":"5d90911f942229eb9049feab241739a5ced76f137948f8f42a615e5f01d4e7ea","affectsGlobalScope":true},"999a90d30a3183dcee987d0a5a7c586aba5bacbf6ce087ba8635124082ccfeea","8a5878edd52f4a720560b4c6e6247e9ddc3df6118ad9cf2f9927903b03d5f440",{"version":"d95d76d79a0351572ec5b1a6cc1e5c4bce1be82eedeed7278d6f31ea1059fa69","affectsGlobalScope":true},"6b40029289530423f407a22755c85b81740f9acfd88d2b53564f8c1657c26660","50a5b297e6c91df4f6068d98467a5e7ba4eeb888b9376757734dd4b1dfcdacd4",{"version":"b644a9e5433c651fb751aeb6e06f24dfa5604950d948622dcd2980b782bb1f50","affectsGlobalScope":true},"65b91a3725399231d3469529b5e27b85bf2aa98013e607f308e5fe260b47eeff","a11181f6d68200e83ccb1fb48b262a7132a3257e0a230f41c9dc4c351964297a","fb2e6b33c4f8332c524dcf99f37fe5bfadccf9bc2f09fcd32eb802b4048bd6e4","d58f29ef032a92da0196fc9304889d8993e2503fb2713b8c1f97808a87d45f8b","88cda4269c54f0803834fd62b2fac61af8bff7a085693f7ca9df85c1f19dee8a",{"version":"aa087ee31af7d286efa149c9660a8fa1d0908cb72c980f129a30a6bd1063c696","affectsGlobalScope":true},"c7b2b6f36bb88832616cf257bc19b42096cfa94d76114b3fa9e57563fffddb49","fdf0aa1a72ff0188a9013926201a391116ef6701cd439b89850786abdf755fb8","5f3d348a3a6978dc5ff85ea97be65e41a21884d078bfdec5a588940639fd7fc5","abf9ea97b78a7b239186cf5b7ed59c4a593abac3c408c8c95fc5e604cfdfdb43","ae91c9161caf0af81c89e780a045fc5ea8382407e516342e409c5db9161d3b32","2c387828a523cc77a4300f5deb063651c9346c5a36ccfbfc127c38df8ab45b0c","e6a731551b57eb0f9fe5dde97ce2cf02f57d99cf7d7e06b916111c7a07c30abc","4a662115c4c7186cc027ef4a8163e48c7f1c57f05247f08d5acb2344fae2ca53","d598157512ae6e0d3aa6bb0dd261ae34845831dccf7bc7739695ee2589eb76f5","c523db72c97b64fb4afe53e79cd7a2b062bacc36b1d0b29c9686f71c05d4409c","d2173e08898108c0aaa6dbfed27725b4a71f5817153800c86f03fa06456a2fc7","d6399c5d288103cbfdc97dcab3f7754aef9f7eb22cf55d942d6dc62a9c57b180","0d5a2ee1fdfa82740e0103389b9efd6bfe145a20018a2da3c02b89666181f4d9","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"92d63add669d18ebc349efbacd88966d6f2ccdddfb1b880b2db98ae3aa7bf7c4","affectsGlobalScope":true},"ccc94049a9841fe47abe5baef6be9a38fc6228807974ae675fb15dc22531b4be",{"version":"9acfe4d1ff027015151ce81d60797b04b52bffe97ad8310bb0ec2e8fd61e1303","affectsGlobalScope":true},"95843d5cfafced8f3f8a5ce57d2335f0bcd361b9483587d12a25e4bd403b8216","afc6e96061af46bcff47246158caee7e056f5288783f2d83d6858cd25be1c565",{"version":"34f5bcac12b36d70304b73de5f5aab3bb91bd9919f984be80579ebcad03a624e","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","2f520601649a893e6a49a8851ebfcf4be8ce090dc1281c2a08a871cb04e8251f","f50c975ab7b50e25a69e3d8a3773894125b44e9698924105f23b812bf7488baf","2b8c764f856a1dd0a9a2bf23e5efddbff157de8138b0754010be561ae5fcaa90","76650408392bf49a8fbf3e2b6b302712a92d76af77b06e2da1cc8077359c4409","0af3121e68297b2247dd331c0d24dba599e50736a7517a5622d5591aae4a3122","6972fca26f6e9bd56197568d4379f99071a90766e06b4fcb5920a0130a9202be",{"version":"4a2628e95962c8ab756121faa3ac2ed348112ff7a87b5c286dd2cc3326546b4c","affectsGlobalScope":true},"80793b2277f31baa199234daed806fff0fb11491d1ebd3357e520c3558063f00","a049a59a02009fc023684fcfaf0ac526fe36c35dcc5d2b7d620c1750ba11b083","5533392c50c51b1a5c32b89f13145db929c574ef1c5949cf67a074a05ea107d9","b287b810b5035d5685f1df6e1e418f1ca452a3ed4f59fd5cc081dbf2045f0d9b","4b9a003b5c556c96784132945bb41c655ea11273b1917f5c8d0c154dd5fd20dd","a458dc78104cc80048ac24fdc02fe6dce254838094c2f25641b3f954d9721241",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"902cd98bf46e95caf4118a0733fb801e9e90eec3edaed6abdad77124afec9ca2","abc1c425b2ad6720433f40f1877abfa4223f0f3dd486c9c28c492179ca183cb6","cd4854d38f4eb5592afd98ab95ca17389a7dfe38013d9079e802d739bdbcc939","94eed4cc2f5f658d5e229ff1ccd38860bddf4233e347bf78edd2154dee1f2b99",{"version":"bd1a08e30569b0fb2f0b21035eb9b039871f68faa9b98accf847e9c878c5e0a9","affectsGlobalScope":true},"9f1069b9e2c051737b1f9b4f1baf50e4a63385a6a89c32235549ae87fc3d5492","ee18f2da7a037c6ceeb112a084e485aead9ea166980bf433474559eac1b46553","29c2706fa0cc49a2bd90c83234da33d08bb9554ecec675e91c1f85087f5a5324","0acbf26bf958f9e80c1ffa587b74749d2697b75b484062d36e103c137c562bc3","d7838022c7dab596357a9604b9c6adffe37dc34085ce0779c958ce9545bd7139","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff",{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true},"a7971f9fb2a32ec7788ec6cda9d7a33c02023dfe9a62db2030ad1359649d8050","c33a6ea7147af60d8e98f1ac127047f4b0d4e2ce28b8f08ff3de07ca7cc00637",{"version":"b42b47e17b8ece2424ae8039feb944c2e3ba4b262986aebd582e51efbdca93dc","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","2408611d9b4146e35d1dbd1f443ccd8e187c74614a54b80300728277529dbf11","998a3de5237518c0b3ac00a11b3b4417affb008aa20aedee52f3fdae3cb86151","ad41008ffe077206e1811fc873f4d9005b5fd7f6ab52bb6118fef600815a5cb4","d88ecca73348e7c337541c4b8b60a50aca5e87384f6b8a422fc6603c637e4c21","badae0df9a8016ac36994b0a0e7b82ba6aaa3528e175a8c3cb161e4683eec03e","c3db860bcaaaeb3bbc23f353bbda1f8ab82756c8d5e973bebb3953cb09ea68f2","235a53595bd20b0b0eeb1a29cb2887c67c48375e92f03749b2488fbd46d0b1a0","bc09393cd4cd13f69cf1366d4236fbae5359bb550f0de4e15767e9a91d63dfb1","9c266243b01545e11d2733a55ad02b4c00ecdbda99c561cd1674f96e89cdc958","c71155c05fc76ff948a4759abc1cb9feec036509f500174bc18dad4c7827a60c",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"1cdb8f094b969dcc183745dc88404e2d8fcf2a858c6e7cc2441011476573238e",{"version":"5f186a758a616c107c70e8918db4630d063bd782f22e6e0b17573b125765b40b","affectsGlobalScope":true}],"options":{"allowSyntheticDefaultImports":true,"declaration":true,"esModuleInterop":true,"experimentalDecorators":true,"importHelpers":true,"inlineSources":true,"module":99,"noEmitOnError":true,"outDir":"./","rootDir":"..","sourceMap":true,"strict":true,"target":5},"fileIdsList":[[281],[43,281],[50,281],[43,50,281],[41,42,281],[49,281],[226,281],[43,224,225,281],[43,224,281],[208,209,281],[210,281],[209,211,281],[221,222,229,230,231,233,234,281],[223,227,281],[228,281],[224,281],[223,228,232,281],[223,281],[208,220,235,281],[212,215,216,219,281],[208,281],[106,281],[94,96,97,98,99,100,101,102,103,104,105,106,281],[94,95,97,98,99,100,101,102,103,104,105,106,281],[95,96,97,98,99,100,101,102,103,104,105,106,281],[94,95,96,98,99,100,101,102,103,104,105,106,281],[94,95,96,97,99,100,101,102,103,104,105,106,281],[94,95,96,97,98,100,101,102,103,104,105,106,281],[94,95,96,97,98,99,101,102,103,104,105,106,281],[94,95,96,97,98,99,100,102,103,104,105,106,281],[94,95,96,97,98,99,100,101,103,104,105,106,281],[94,95,96,97,98,99,100,101,102,104,105,106,281],[94,95,96,97,98,99,100,101,102,103,105,106,281],[94,95,96,97,98,99,100,101,102,103,104,106,281],[94,95,96,97,98,99,100,101,102,103,104,105,281],[238,281],[241,281],[242,247,281],[243,253,254,261,270,280,281],[243,244,253,261,281],[245,281],[246,247,254,262,281],[247,270,277,281],[248,250,253,261,281],[249,281],[250,251,281],[252,253,281],[253,281],[253,254,255,270,280,281],[253,254,255,270,281],[256,261,270,280,281],[253,254,256,257,261,270,277,280,281],[256,258,270,277,280,281],[238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287],[253,259,281],[260,280,281],[250,253,261,270,281],[262,281],[263,281],[241,264,281],[265,279,281,285],[266,281],[267,281],[253,268,281],[268,269,281,283],[253,270,271,272,281],[270,272,281],[270,271,281],[273,281],[274,281],[253,275,276,281],[275,276,281],[247,261,277,281],[278,281],[261,279,281],[242,256,267,280,281],[247,281],[270,281,282],[281,283],[281,284],[242,247,253,255,264,270,280,281,283,285],[270,281,286],[208,218,281],[217,281],[44,281],[214,281],[213,281],[153,154,281],[50,51,52,53,54,55,56,57,58,281],[43,47,48,83,281],[43,47,281],[47,281],[45,46,281],[51,52,53,54,55,56,57,58,281],[192,281],[43,47,48,281],[40,202,281],[40,76,111,140,143,148,163,281],[40,76,164,165,166,167,281],[40,76,281],[40,76,77,281],[40,76,111,148,281],[40,281],[40,49,59,76,77,281],[40,49,59,61,66,76,82,281],[40,49,59,66,72,76,77,127,128,281],[40,60,281],[40,72,76,281],[40,49,59,60,61,66,69,70,71,76,77,281],[40,49,281],[40,49,59,62,76,77,109,110,112,113,114,116,281],[40,49,59,66,76,77,281],[40,49,59,66,76,77,82,91,93,107,281],[40,49,59,76,77,108,116,117,118,122,281],[40,62,117,281],[40,111,117,281],[40,49,59,76,77,122,123,126,129,130,131,132,134,168,169,170,173,281],[40,49,59,66,75,76,77,124,125,281],[40,63,281],[40,75,76,281],[40,49,59,63,64,66,69,73,74,76,77,281],[40,76,77,131,281],[40,49,59,76,77,122,131,132,164,168,173,181,182,281],[40,49,59,65,76,77,176,177,178,179,281],[40,49,59,76,77,122,175,180,281],[40,49,59,76,77,107,116,281],[40,65,180,281],[40,111,180,281],[40,141,142,281],[40,49,59,62,76,77,281],[40,62,76,141,281],[40,49,59,66,281],[40,92,93,281],[40,47,76,82,281],[40,76,92,281],[40,187,281],[40,111,184,185,186,281],[40,49,66,76,281],[40,49,59,66,76,281],[40,49,76,123,126,129,281],[40,76,123,126,129,281],[40,139,281],[40,76,135,136,137,138,281],[40,147,281],[40,49,62,68,76,281],[40,76,144,145,146,281],[40,62,76,281],[40,77,140,143,148,163,174,183,188,191,201,281],[40,189,190,281],[40,68,281],[40,49,59,62,66,76,77,281],[40,49,59,66,67,76,77,281],[40,49,76,281],[40,149,150,151,152,156,157,158,159,160,161,162,281],[40,49,76,155,281],[40,49,59,76,281],[40,76,149,150,151,152,156,157,158,159,160,161,281],[40,194,195,196,197,198,199,200,281],[40,84,189,281],[40,49,59,192,194,202,281],[40,49,59,76,202,281],[40,49,59,66,192,194,202,281],[40,49,59,195,196,197,198,202,281],[40,49,59,66,82,192,194,202,281],[40,49,59,193,194,202,281],[40,47,60,61,62,63,64,65,72,75,281],[40,115,281],[40,49,203,281],[40,49,174,236,281],[133,281],[86,87,88,89,90,281],[47,49,85,281],[84,281],[78,79,80,81,281],[47,49,78,281],[47,49,80,281],[47,49,281],[172,281],[171,281],[119,120,121,281]],"referencedMap":[[41,1],[50,2],[51,3],[54,4],[52,4],[56,4],[58,4],[57,4],[55,4],[53,3],[42,1],[43,5],[66,6],[224,1],[227,7],[226,8],[225,9],[210,10],[211,11],[209,1],[212,12],[235,13],[221,1],[228,14],[229,15],[230,1],[231,16],[233,17],[223,6],[232,18],[234,15],[236,19],[220,20],[217,1],[216,21],[208,1],[114,22],[169,22],[170,22],[107,22],[95,23],[96,24],[94,25],[97,26],[98,27],[99,28],[100,29],[101,30],[102,31],[103,32],[104,33],[105,34],[106,35],[289,1],[238,36],[239,36],[241,37],[242,38],[243,39],[244,40],[245,41],[246,42],[247,43],[248,44],[249,45],[250,46],[251,46],[252,47],[253,48],[254,49],[255,50],[240,1],[287,1],[256,51],[257,52],[258,53],[288,54],[259,55],[260,56],[261,57],[262,58],[263,59],[264,60],[265,61],[266,62],[267,63],[268,64],[269,65],[270,66],[272,67],[271,68],[273,69],[274,70],[275,71],[276,72],[277,73],[278,74],[279,75],[280,76],[281,77],[282,78],[283,79],[284,80],[285,81],[286,82],[219,83],[218,84],[45,85],[44,1],[213,21],[215,86],[214,87],[182,1],[155,88],[153,1],[154,1],[83,89],[84,90],[48,91],[46,92],[192,92],[47,93],[222,92],[59,94],[193,95],[49,96],[40,1],[8,1],[10,1],[9,1],[2,1],[11,1],[12,1],[13,1],[14,1],[15,1],[16,1],[17,1],[18,1],[3,1],[4,1],[22,1],[19,1],[20,1],[21,1],[23,1],[24,1],[25,1],[5,1],[26,1],[27,1],[28,1],[29,1],[6,1],[30,1],[31,1],[32,1],[33,1],[7,1],[38,1],[34,1],[35,1],[36,1],[37,1],[1,1],[39,1],[203,97],[164,98],[168,99],[165,100],[166,101],[167,102],[77,100],[111,103],[60,104],[204,105],[61,104],[129,106],[127,107],[128,107],[70,108],[71,108],[72,109],[131,100],[113,110],[117,111],[62,104],[118,112],[108,113],[123,114],[109,115],[110,115],[112,116],[174,117],[63,104],[64,104],[126,118],[124,119],[125,119],[73,120],[74,120],[205,120],[75,121],[132,122],[183,123],[179,110],[180,124],[181,125],[65,104],[175,126],[176,127],[177,127],[178,128],[143,129],[141,130],[142,131],[130,132],[206,133],[92,134],[93,135],[184,103],[188,136],[185,103],[187,137],[186,103],[135,138],[136,139],[137,140],[138,141],[140,142],[139,143],[148,144],[144,145],[147,146],[146,147],[145,147],[202,148],[191,149],[190,103],[189,103],[69,150],[67,151],[68,152],[149,153],[150,153],[151,100],[152,153],[163,154],[156,155],[157,153],[158,100],[159,156],[162,157],[160,100],[161,153],[201,158],[194,159],[196,160],[200,161],[198,162],[199,163],[197,164],[195,165],[76,166],[116,167],[115,103],[207,168],[237,169],[133,1],[134,170],[91,171],[88,172],[90,172],[85,173],[87,172],[86,172],[89,172],[82,174],[79,175],[80,175],[81,176],[78,177],[173,178],[171,177],[172,179],[119,6],[122,180],[120,6],[121,6]],"exportedModulesMap":[[41,1],[50,2],[51,3],[54,4],[52,4],[56,4],[58,4],[57,4],[55,4],[53,3],[42,1],[43,5],[66,6],[224,1],[227,7],[226,8],[225,9],[210,10],[211,11],[209,1],[212,12],[235,13],[221,1],[228,14],[229,15],[230,1],[231,16],[233,17],[223,6],[232,18],[234,15],[236,19],[220,20],[217,1],[216,21],[208,1],[114,22],[169,22],[170,22],[107,22],[95,23],[96,24],[94,25],[97,26],[98,27],[99,28],[100,29],[101,30],[102,31],[103,32],[104,33],[105,34],[106,35],[289,1],[238,36],[239,36],[241,37],[242,38],[243,39],[244,40],[245,41],[246,42],[247,43],[248,44],[249,45],[250,46],[251,46],[252,47],[253,48],[254,49],[255,50],[240,1],[287,1],[256,51],[257,52],[258,53],[288,54],[259,55],[260,56],[261,57],[262,58],[263,59],[264,60],[265,61],[266,62],[267,63],[268,64],[269,65],[270,66],[272,67],[271,68],[273,69],[274,70],[275,71],[276,72],[277,73],[278,74],[279,75],[280,76],[281,77],[282,78],[283,79],[284,80],[285,81],[286,82],[219,83],[218,84],[45,85],[44,1],[213,21],[215,86],[214,87],[182,1],[155,88],[153,1],[154,1],[83,89],[84,90],[48,91],[46,92],[192,92],[47,93],[222,92],[59,94],[193,95],[49,96],[40,1],[8,1],[10,1],[9,1],[2,1],[11,1],[12,1],[13,1],[14,1],[15,1],[16,1],[17,1],[18,1],[3,1],[4,1],[22,1],[19,1],[20,1],[21,1],[23,1],[24,1],[25,1],[5,1],[26,1],[27,1],[28,1],[29,1],[6,1],[30,1],[31,1],[32,1],[33,1],[7,1],[38,1],[34,1],[35,1],[36,1],[37,1],[1,1],[39,1],[203,97],[164,98],[168,99],[165,100],[166,101],[167,102],[77,100],[111,103],[60,104],[204,105],[61,104],[129,106],[127,107],[128,107],[70,108],[71,108],[72,109],[131,100],[113,110],[117,111],[62,104],[118,112],[108,113],[123,114],[109,115],[110,115],[112,116],[174,117],[63,104],[64,104],[126,118],[124,119],[125,119],[73,120],[74,120],[205,120],[75,121],[132,122],[183,123],[179,110],[180,124],[181,125],[65,104],[175,126],[176,127],[177,127],[178,128],[143,129],[141,130],[142,131],[130,132],[206,133],[92,134],[93,135],[184,103],[188,136],[185,103],[187,137],[186,103],[135,138],[136,139],[137,140],[138,141],[140,142],[139,143],[148,144],[144,145],[147,146],[146,147],[145,147],[202,148],[191,149],[190,103],[189,103],[69,150],[67,151],[68,152],[149,153],[150,153],[151,100],[152,153],[163,154],[156,155],[157,153],[158,100],[159,156],[162,157],[160,100],[161,153],[201,158],[194,159],[196,160],[200,161],[198,162],[199,163],[197,164],[195,165],[76,166],[116,167],[115,103],[207,168],[237,169],[133,1],[134,170],[91,171],[88,172],[90,172],[85,173],[87,172],[86,172],[89,172],[82,174],[79,175],[80,175],[81,176],[78,177],[173,178],[171,177],[172,179],[119,6],[122,180],[120,6],[121,6]],"semanticDiagnosticsPerFile":[41,50,51,54,52,56,58,57,55,53,42,43,66,224,227,226,225,210,211,209,212,235,221,228,229,230,231,233,223,232,234,236,220,217,216,208,114,169,170,107,95,96,94,97,98,99,100,101,102,103,104,105,106,289,238,239,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,240,287,256,257,258,288,259,260,261,262,263,264,265,266,267,268,269,270,272,271,273,274,275,276,277,278,279,280,281,282,283,284,285,286,219,218,45,44,213,215,214,182,155,153,154,83,84,48,46,192,47,222,59,193,49,40,8,10,9,2,11,12,13,14,15,16,17,18,3,4,22,19,20,21,23,24,25,5,26,27,28,29,6,30,31,32,33,7,38,34,35,36,37,1,39,203,164,168,165,166,167,77,111,60,204,61,129,127,128,70,71,72,131,113,117,62,118,108,123,109,110,112,174,63,64,126,124,125,73,74,205,75,132,183,179,180,181,65,175,176,177,178,143,141,142,130,206,92,93,184,188,185,187,186,135,136,137,138,140,139,148,144,147,146,145,202,191,190,189,69,67,68,149,150,151,152,163,156,157,158,159,162,160,161,201,194,196,200,198,199,197,195,76,116,115,207,237,133,134,91,88,90,85,87,86,89,82,79,80,81,78,173,171,172,119,122,120,121]},"version":"4.5.2"}
1
+ {"program":{"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/tslib/tslib.d.ts","../../../node_modules/@types/trusted-types/lib/index.d.ts","../../../node_modules/@types/trusted-types/index.d.ts","../../../node_modules/lit-html/directive.d.ts","../../../node_modules/lit-html/lit-html.d.ts","../../../node_modules/@lit/reactive-element/css-tag.d.ts","../../../node_modules/@lit/reactive-element/reactive-controller.d.ts","../../../node_modules/@lit/reactive-element/reactive-element.d.ts","../../../node_modules/lit-element/lit-element.d.ts","../../../node_modules/lit/index.d.ts","../../../node_modules/@lit/reactive-element/decorators/base.d.ts","../../../node_modules/@lit/reactive-element/decorators/custom-element.d.ts","../../../node_modules/@lit/reactive-element/decorators/property.d.ts","../../../node_modules/@lit/reactive-element/decorators/state.d.ts","../../../node_modules/@lit/reactive-element/decorators/event-options.d.ts","../../../node_modules/@lit/reactive-element/decorators/query.d.ts","../../../node_modules/@lit/reactive-element/decorators/query-all.d.ts","../../../node_modules/@lit/reactive-element/decorators/query-async.d.ts","../../../node_modules/@lit/reactive-element/decorators/query-assigned-nodes.d.ts","../../../node_modules/lit/decorators.d.ts","../src/data-card/data-card-field.ts","../src/data-card/data-card-gutter.ts","../../../node_modules/@material/mwc-icon/mwc-icon.d.ts","../src/data-grid/data-grid-field.ts","../src/record-view/record-view-body.ts","../src/record-view/record-view.ts","../src/record-view/index.ts","../src/data-card/event-handlers/record-card-click-handler.ts","../src/data-card/event-handlers/record-card-dblclick-handler.ts","../src/data-card/record-card.ts","../src/data-list/data-list-field.ts","../src/data-list/data-list-gutter.ts","../src/data-list/event-handlers/record-partial-click-handler.ts","../src/data-list/event-handlers/record-partial-dblclick-handler.ts","../src/data-list/record-partial.ts","../src/data-report/data-report-field.ts","../src/types.ts","../src/configure/zero-config.ts","../../popup/dist/src/ox-popup.d.ts","../../popup/dist/src/ox-popup-list.d.ts","../../popup/dist/src/ox-popup-menu.d.ts","../../popup/dist/src/ox-popup-menuitem.d.ts","../../popup/dist/src/index.d.ts","../../../node_modules/lit-element/decorators.d.ts","../../../node_modules/lit-element/index.d.ts","../../input/dist/src/ox-formfield.d.ts","../../input/dist/src/ox-input-angle.d.ts","../../input/dist/src/ox-input-3dish.d.ts","../../input/dist/src/ox-buttons-radio.d.ts","../../input/dist/src/ox-input-stack.d.ts","../../input/dist/src/ox-checkbox.d.ts","../../input/dist/src/index.d.ts","../src/filters/list-select.ts","../src/filters/registry.ts","../../../node_modules/@types/lodash/common/common.d.ts","../../../node_modules/@types/lodash/common/array.d.ts","../../../node_modules/@types/lodash/common/collection.d.ts","../../../node_modules/@types/lodash/common/date.d.ts","../../../node_modules/@types/lodash/common/function.d.ts","../../../node_modules/@types/lodash/common/lang.d.ts","../../../node_modules/@types/lodash/common/math.d.ts","../../../node_modules/@types/lodash/common/number.d.ts","../../../node_modules/@types/lodash/common/object.d.ts","../../../node_modules/@types/lodash/common/seq.d.ts","../../../node_modules/@types/lodash/common/string.d.ts","../../../node_modules/@types/lodash/common/util.d.ts","../../../node_modules/@types/lodash/index.d.ts","../../../node_modules/@types/lodash-es/throttle.d.ts","../src/data-grid/data-grid-header.ts","../src/data-grid/event-handlers/data-grid-body-click-handler.ts","../src/data-grid/event-handlers/data-grid-body-dblclick-handler.ts","../src/const.ts","../src/data-grid/event-handlers/data-grid-body-keydown-handler.ts","../src/data-grid/data-grid-body-style.ts","../../../node_modules/@types/lodash-es/debounce.d.ts","../src/utils/supports-passive.ts","../src/utils/index.ts","../src/data-grid/data-grid-body.ts","../src/data-grid/data-grid-footer.ts","../../styles/dist/src/headroom-styles.d.ts","../../styles/dist/src/scrollbar-styles.d.ts","../../styles/dist/src/spinner-styles.d.ts","../../styles/dist/src/index.d.ts","../src/data-grid/data-grid.ts","../src/data-list/event-handlers/data-list-click-handler.ts","../src/data-list/event-handlers/data-list-dblclick-handler.ts","../src/data-list/data-list.ts","../src/data-card/event-handlers/data-card-click-handler.ts","../src/data-card/event-handlers/data-card-dblclick-handler.ts","../src/data-card/data-card.ts","../src/empty-note.ts","../../../node_modules/@types/lodash-es/isempty.d.ts","../../../node_modules/@types/lodash-es/isequal.d.ts","../../headroom/dist/src/headroom.d.ts","../../headroom/dist/src/index.d.ts","../../pull-to-refresh/dist/src/pull-to-refresh-control.d.ts","../../pull-to-refresh/dist/src/pull-to-refresh.d.ts","../../pull-to-refresh/dist/src/index.d.ts","../src/gutters/gutter-button.ts","../src/gutters/gutter-dirty.ts","../src/gutters/gutter-row-selector.ts","../src/gutters/gutter-sequence.ts","../src/gutters/registry.ts","../src/gutters/index.ts","../src/editors/input-editors.ts","../src/editors/registry.ts","../src/editors/index.ts","../src/handlers/record-view-handler.ts","../src/handlers/select-row.ts","../src/handlers/select-row-toggle.ts","../src/handlers/registry.ts","../src/handlers/index.ts","../src/renderers/boolean-renderer.ts","../src/renderers/color-renderer.ts","../src/renderers/date-renderer.ts","../src/renderers/image-renderer.ts","../../../node_modules/json5/lib/parse.d.ts","../../../node_modules/json5/lib/stringify.d.ts","../../../node_modules/json5/lib/index.d.ts","../src/renderers/json5-renderer.ts","../src/renderers/link-renderer.ts","../src/renderers/password-renderer.ts","../src/renderers/progress-renderer.ts","../src/renderers/select-renderer.ts","../src/renderers/text-renderer.ts","../src/renderers/registry.ts","../src/renderers/index.ts","../src/configure/column-builder.ts","../src/configure/imex-option-builder.ts","../src/configure/list-option-builder.ts","../src/configure/rows-option-builder.ts","../src/configure/config-builder.ts","../src/data-consumer.ts","../src/data-provider.ts","../src/data-grist.ts","../src/data-report/data-report-header.ts","../src/data-report/event-handlers/data-report-body-click-handler.ts","../src/data-report/event-handlers/data-report-body-dblclick-handler.ts","../src/data-report/event-handlers/data-report-body-keydown-handler.ts","../src/data-report/data-report-body-style.ts","../src/data-report/data-report-body.ts","../src/data-report/data-report-component.ts","../../../node_modules/i18next/index.d.ts","../src/data-report.ts","../src/formatters/date-formatter.ts","../src/formatters/number-formatter.ts","../src/formatters/text-formatter.ts","../src/formatters/registry.ts","../src/formatters/index.ts","../src/interfaces/ox-search-field.ts","../src/interfaces/ox-grist-search-form.ts","../src/interfaces/index.ts","../../../node_modules/lit-html/directives/if-defined.d.ts","../../../node_modules/lit/directives/if-defined.d.ts","../src/search-form/ox-basic-field.ts","../src/search-form/ox-text-field.ts","../src/search-form/ox-checkbox-field.ts","../src/search-form/ox-select-field.ts","../src/search-form/ox-number-field.ts","../src/search-form/ox-search-form.ts","../src/search-form/ox-grist-search-form.ts","../src/search-form/index.ts","../src/index.ts","../index.ts","../src/data-card/data-card-gutter-menu.ts","../src/data-list/event-handlers/record-partial-long-press-handler.ts","../src/filters/index.ts","../stories/index.stories.ts","../../../node_modules/@types/chai/index.d.ts","../../../node_modules/@open-wc/semantic-dom-diff/get-diffable-html.d.ts","../../../node_modules/@open-wc/semantic-dom-diff/chai-dom-diff-plugin.d.ts","../../../node_modules/@open-wc/semantic-dom-diff/chai-dom-diff.d.ts","../../../node_modules/@open-wc/semantic-dom-diff/index.d.ts","../../../node_modules/chai-a11y-axe/chai-a11y-axe-plugin.d.ts","../../../node_modules/chai-a11y-axe/src/accessible.d.ts","../../../node_modules/chai-a11y-axe/index.d.ts","../../../node_modules/@types/chai-dom/index.d.ts","../../../node_modules/@sinonjs/fake-timers/types/fake-timers-src.d.ts","../../../node_modules/@types/sinon/index.d.ts","../../../node_modules/@types/sinon-chai/index.d.ts","../../../node_modules/@open-wc/testing/register-chai-plugins.d.ts","../../../node_modules/@open-wc/testing-helpers/types/src/elementupdated.d.ts","../../../node_modules/lit-html/static.d.ts","../../../node_modules/@open-wc/testing-helpers/types/src/renderable.d.ts","../../../node_modules/@open-wc/dedupe-mixin/index.d.ts","../../../node_modules/@open-wc/scoped-elements/types/src/types.d.ts","../../../node_modules/@open-wc/scoped-elements/types/src/scopedelementsmixin.d.ts","../../../node_modules/@open-wc/scoped-elements/types/index.d.ts","../../../node_modules/@open-wc/testing-helpers/types/src/fixture-no-side-effect.d.ts","../../../node_modules/@open-wc/testing-helpers/types/src/fixture.d.ts","../../../node_modules/@open-wc/testing-helpers/types/src/fixturewrapper.d.ts","../../../node_modules/@open-wc/testing-helpers/types/src/helpers.d.ts","../../../node_modules/@open-wc/testing-helpers/types/src/scopedelementswrapper.d.ts","../../../node_modules/@open-wc/testing-helpers/types/src/litfixture.d.ts","../../../node_modules/@open-wc/testing-helpers/types/src/stringfixture.d.ts","../../../node_modules/@open-wc/testing-helpers/types/index.d.ts","../../../node_modules/@open-wc/testing/index.d.ts","../test/data-grist.test.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/dns/promises.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/@types/node/stream/web.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/timers/promises.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/globals.global.d.ts","../../../node_modules/@types/node/index.d.ts","../../../node_modules/@types/mocha/index.d.ts"],"fileInfos":[{"version":"6adbf5efd0e374ff5f427a4f26a5a413e9734eee5067a0e86da69aea41910b52","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","e21c071ca3e1b4a815d5f04a7475adcaeea5d64367e840dd0154096d705c3940",{"version":"abba1071bfd89e55e88a054b0c851ea3e8a494c340d0f3fab19eb18f6afb0c9e","affectsGlobalScope":true},{"version":"d8996609230d17e90484a2dd58f22668f9a05a3bfe00bfb1d6271171e54a31fb","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"4378fc8122ec9d1a685b01eb66c46f62aba6b239ca7228bb6483bcf8259ee493","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"62d80405c46c3f4c527ee657ae9d43fda65a0bf582292429aea1e69144a522a6","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"1b3fe904465430e030c93239a348f05e1be80640d91f2f004c3512c2c2c89f34","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"d071129cba6a5f2700be09c86c07ad2791ab67d4e5ed1eb301d6746c62745ea4","affectsGlobalScope":true},{"version":"10bbdc1981b8d9310ee75bfac28ee0477bb2353e8529da8cff7cb26c409cb5e8","affectsGlobalScope":true},"12f4cfe2fe60b810c3174537bc2ddb20c1067b7768643d12cb1266fd183afb75","2fcd2d22b1f30555e785105597cd8f57ed50300e213c4f1bbca6ae149f782c38",{"version":"bb4248c7f953233ac52332088fac897d62b82be07244e551d87c5049600b6cf7","affectsGlobalScope":true},"70f04c91d3186b1b10157157887fab664968fc9b88377785a5ee42750c202c6d","06e20da1bc94df355f22ac7a9533c2488816ec4cb9134d9b160a263629a07072","0c8a56610b08f55e29ffb466cd27626ad6dbe822312a398026e82270c63088e3","1e5743b25a63fd34ffbae89adcbf248ee17db6ed08d90079ffa93803c3e80d2a","7b33ee85f2e96a51c0e3bcee47b247a24515aff37a7d8b5dfe4e18b735d37440","c311ef8d8b159d0c268b415f78c1949498dc2d14455a9891c5b8ef84625b1e41","f07a77a7fb1d49aa2b61cb68bf712a083487acd7130d20223a83de03af0c257d","97c58f6db61d45712d91d2260994817ae2b568bbb37cc280013079b6b5d2232d","ac388c7c7a262213a3700451bc921e382a93fb27c0252c34ccf03540b4ce044b","9bdb35d0b28dcd5d8f0879bd29f0cf07b7eb48aa63be4dd44057e32fcfeb1c83","fb0107c83e2e0e75b77dacd0c3c6c3ab6844e98dce2a8f858c6f0a57c12136a6","84610cf09dee3cefc910555318f1ad7b45f1cba36905a86849324ca4fead2385","a25d1e52291791819032826af5c52987e16ffdb96e8bb69f7f1790f5ab080be6","d660961abada6b5030461f3322ef3a2e1d9fec74167574f8b590a7796cf90a72","707b4eae3d469b2f347d2083037151922f94c370a9456ebd5ac0a4fb7441c7e7","ef509d57201aa4e2e3e2b3d1fafd066a8ce68cd2caea737d539c3544f5a99a67","84c66a77a1302611ea5001dc88d10de1b5d87c6b2f30a48585495217421ce1ac","9f91d6d61f9cea88631e932ed08ba906b45d9daa9cb3fc2205041a29a06bda22","6bd5137340660aa00e95aa8c65c94d8f8529559b569300885b6ce2cfe472360a",{"version":"27b285e901600242883d62a5fff9f5d262c6fa128b6e6c6963f981f2630a957e","affectsGlobalScope":true},"f41a82816d944d87e570c26dfa100505462c6ae9facb5fd8332aa95a6680bbac","1a4367df8e269bd078822496c341e99f7914bf262ee878d6a75890617cf2d9f8","77f9481e8a34b8aa3a39b834885a4578a4f0e531cb52e0aa4599538e757323e5","cdd2ffe64e134028e6c5f786ea351d0e01ccc4ee81775305a0bb258aa4f30623","d4e46059ac026397ed17001f2f9354842c0824b1f7c1ef236dfa825fd1b9bc16","12e0624a60e97b3f91a0bd0057185e1947e928a39f39fe885e16d571ec5c5a90","d5167b9f42d757e9a729fb8b7a59df5befad865e76d30be6f69b2e0f87755f88","0fb8488c917f69f54e86aa143d5d6adffcc0f80631f0aae536c1043264e32391","75e223cbdf2917289aff71b0758885d9c1fce53b63f7dee1f6ffeec1f3a7ad78","b37f60293d013ca597185057bca7eab3264b8f58892ad82fa368bbabbb62964d","d0adee9d028e855fceebfe74614e36a4a05693c792e0962c53e520de03a53d18","ba75c2595954275ae55b4bfffa757bda4c1e16f2c89f78d3d61aa52bedd97fed","d0eb198aa8b26193b40e6ed6c7170cdf2bd844088b7cbe310fdf793c2cfe2881","57ce2db8d8e13edfe153af7cb97e892c05bf8a896570cfd1cf3bd229d52df411","cf8d7c29caf75f398e2cf61767e565bc514baa3214a80008aeea013f17c96d78","1d722bc8901d9cd7e0ee2edf5526bf2bb1dc4e24608b3f3b33d00fec42fbf1b8","0d9e52280b929cfa5c83241de4d5a7f0379cc3b12f51814b82985e231957427a","4d0f230bcbc4cb046b8be5218b81e099c0879cd65f2ad8f1416b685036ee54d1","10cbee260a09cb62cc5516ea65aa7504f21ec98048a324e789d04d40d9057513","77b0b20b0aeafc78f8af2d66bf16a53b91312d6426f5413a574b978cc6edff34","73b7d7df7c0dbc9a4c07c8c0f9bf6b436a0c728884e3425b120a65dd7459584e","3e96c96efad5d403b16c4b3d9cf99b3e86267a046abef94fe37cfa97ec013f23","3a00dd158022751cd1d19d29d1feb644609a53c6c1c46b02dded4ffc04e44a42","d8b4001e8ebb69d29fe37238d95e5821b5a69a2103b333dfe19df356c2af456a","483aeeccbdab8ce9102af2d71dec086135e08ebf913025b0c371228cccf349b8","e08d48cb07b0176357b71b20958f39fae42ef66e0213a1ac4d131278d9fb47bd","69de8cad66432212b451eaf53cf01657b93f15c760bc6881b98bf044d7d0f6c2","6f03eac79da391f3b736476c341b9b8ef5c072b488e77b9f016d5fc9a19a8ff1","c0d6073c426dc8ad85ba7895288478f5410643ef830d5763666ebc4885535d71","fa37f71d3db6032293e234c1931cbfd40a26181f8f47f84d923cd9ce4ecba157","1bcb8494d84f6df9c06f7c8e6fa0749b32b690867383b480c6ca86f0d82663ae","675e702f2032766a91eeadee64f51014c64688525da99dccd8178f0c599f13a8","378df8bbbb9e3f6fca05d58f644aab538e1062eab5e778fb0b83d41125df246d","d88a479cccf787b4aa82362150fbeba5211a32dbfafa7b92ba6995ecaf9a1a89","187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42","c24ad9be9adf28f0927e3d9d9e9cec1c677022356f241ccbbfb97bfe8fb3d1a1","0ec0998e2d085e8ea54266f547976ae152c9dd6cdb9ac4d8a520a230f5ebae84","9364c7566b0be2f7b70ff5285eb34686f83ccb01bda529b82d23b2a844653bfb","00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a","ae9930989ed57478eb03b9b80ad3efa7a3eacdfeff0f78ecf7894c4963a64f93","3c92b6dfd43cc1c2485d9eba5ff0b74a19bb8725b692773ef1d66dac48cda4bd","3e59f00ab03c33717b3130066d4debb272da90eeded4935ff0604c2bc25a5cae","6ac6f24aff52e62c3950461aa17eab26e3a156927858e6b654baef0058b4cd1e",{"version":"0714e2046df66c0e93c3330d30dbc0565b3e8cd3ee302cf99e4ede6220e5fec8","affectsGlobalScope":true},"1be8da453470021f6fe936ba19ee0bfebc7cfa2406953fa56e78940467c90769","a28fd30f35b2a9afb1c437a4eb07a57850456f18a9e16dee7fc261f6322b79bd","239bc5d8b5c22d741b17a3604982eb8339a559a43437b15eb41cd998aef46b7a","fe9f22ba83e4c9b1d1b6105a3eab129b1666a002c3665a3cb6eeb0a8d8dbd174","3dacb7c808d7bce659c6483a820edb426d3ca0c496b3836d41339463bae8f0de","200ff2f8e4c024be9dc95f16e8e0d61a5009a4e69133c101e5fc8f31b284c470","06ff1d15788446ff55c9749e18d9df92bfadd11f9359ee6a84c32eb00e3fe567","30905c89260ca8da4e72345c72f8e80beb9cc39ee2ee48261e63f76ea1874d1e","2fd48df87a103cee6f65309642f4502853d1608eeb00189249b2286093413e09","3c4bbff3ccab1975097cd7a1d54602cf49ee5287b578090883c9ed944d89d755","6d1d34d172a378bf37a6b48b60872073d3640d7c6bbbf852f63b505ebdc14d98","7b1caf881d4680c1a8a19f78962f5adfc74583477c718421fb7b1ee33fe7622a","cf93fb9208a01c80f0fad245c4360356e5de6c2384b7641acf0b9cc2f5c42448","336398b0efaf964124e636a9b29c4edd5870aee79ac64bf87be58a9d66b7c048","571bc65ec37ba124e762bb822e14a2b8502dc684e356be8feaccbd6b9cadd023","0766fae8dbc740ce8a4731666a1537594d7763f71f46bbfef67ed9d7a34cb0cc","cfc0bb3723f823a8b6eb7b180a28713dff744a70522a6ddd22d8b0498aecc1d5","355b4808d0f3d6f2720339032ed599c2400b68adec7890a2dfdbcdddc9dfc639","d69e089619f0d96b958e8c9fceff8e5f8e089c98cbf3f88c41b39e6c9be81ee4","cac65b7814f43860e0be1702aada9dc7cfdbfcdf2c501073d276e11d095e14bc","a5c5e2219ce1d79d69cea50bb6d1ab8a632cb5234b50cfeb6e217cd174079853","1e79dd4f633666341c63570d67682b3d0fa579b5fb7a13778701ffbf704065e2","1940575453797360fc4f29597e544305309bf76e284878a5f7ee28c1f64c5e87","bcab3351a6ebfc2e2f19ca9aa349b0522b530a2d461414c0ab6fda03f833520e","3be6b3304a81d0301838860fd3b4536c2b93390e785808a1f1a30e4135501514","da66c1b3e50ef9908e31ce7a281b137b2db41423c2b143c62524f97a536a53d9","769c966ef166205a08c0382a298a6c5877951599d805931a963ae5650ee46391","35c1202e93852c1c233191971b8c4aefe5d3f9df287991585fe305078c0880e6","690a59ec8ef431839c447cd88fbb0bd0ce59c037736d8748737d4e0f2ed57077","4a2a6bd6a36b058effc58d1aab136cdbd66188773470885a4b414098a0d76821","b12f96f442196be954b8fa982f179527fff05a796962fecfb6e12b0a2c1b6867","8d87fe7b49ffdf726c8ebe86f7fcaf49731114d9cdf4a79e17405e25200c6fd4","2ee946e9af009e9d7573cf721a07208e17daa01d68e407a21c85b75369d2b81a","76feb982df79ca2271d1e7965ac7339b2908c967b29eb36ff7ffda90e2276c0b","2d26ffe8976c72dd5c9c68950742d31a72b339f91010c46ec6e4640064049478","1e834276e651debe99cd115a3cee8d3a53b1858355251bc8fee5c9be76bea5e4","900683c32709e025b93cc18be550bbf2a2e5686e0ac5d058f25468062117a5a7","de1a9813a41cae418348bce5e3235e416d60808b4dc7438cedd43025ecf68ce5","56e8d8346c27cf80c9cd090d815f367091c766b49fccfb675cee47139e208e20","2d478623349256bdcb8558f2217faf23dddb431adb410391348d3d0885eed142","a9d770695a42ac4e2593a5a588ecbdd015aee8c0ae62c72004432c32226f54ec","dd20dc1dde9e5dfc60ee128833c3fff8ac7367b3e5be5dd0abe8ddf01276703a","6f7ec8b0cfda6d2f5d099f767f43f39156e6d665eb37507ce95756078b59f86c","3bf5af355505ddb9cd63a4c1221601353176af04da96cecfd819a9b4fdb51e17","900683c32709e025b93cc18be550bbf2a2e5686e0ac5d058f25468062117a5a7","45480dca7801a941ba984c52a96932a88b33cd34350b721653172349dab8da72","7eb622f25e584caf2db75777fd45aba56a8dd4c2b91b1ce2b6e8b049d05e5b24","a69f95a1ffd9f2dbd632a05ac6c4ac0f62ad215bca75ad998b637c56233d1080","58ad45f0c73dab6bfefd3201e7fb3b69de03fe27f2304beae6c91416c1e82a3a","88a3a6f8c2a1640d8d5fd30d8d86462f8babd86a1e52fab0e8b7f7c141fb348e","345f76c854da724803c96f727a3f9c75e26cf95c6e7b8c1064dbc4e7727b74e6","ab7b7a15a5d73eb0cfc2b973e580f357f07492bff6608669d7e899e2d49ac9a3","df05184ed31d40e21373496ff82d04a077849030c3acaee9b9e90ad42420d8af","6ce34cbfa0480a66ace42ec4c9c43d185292f1f6753c35ff43127945b6bc67a6","3a6cd4b8b719d06b74ae01f84c16984b923d0510e655e247ba52c094ca6046e9","1f86828029e4c451cfbc7f2a7a7b02bc00cb92787565810da0e29460b0bf0aec","edccb51f9fe247f8bd47b91ece1d92b075e6b5c16d0a105d27ccb89d4700461b","6cee1623e9789e466ee0ed2db9b4c6f7145c6c107d940f74ae2fe5ef8f502ea8","5875ba32f894c6af79e095e166e81a6415a200e3631000c8d7325290752efd24","d3796eba9f0aa69613d07aea76fa51381b0ab81073c5d738e6a6a62ed95611a4","a67701d52c9681f09f291e30c49c1d37f311587f964eeb5fe13aa1a2c02076b0","42221ab620b5c643d8acf4ebf0be653237ae703e61d75d080865169dc216b709","65a9738ef946e53356d22ac459a30d2f3914dbed8018fa1a169be682a736102d","02149338a9afc04d32a63203e5111046676257bbdd4acd82f595b410e0e90ed4","139153fd5593479e342ea2b3cab5e5ccba57dbb09cd4f99a0e9c04dce696c3f7","ee0c1682ae2647493e384cbc0fb745cfec343bc2bc9e4dea7c32fc638d4d9662","f70fd363c7ecb31ae00d4ef9300d851817380f48fd1de3d27e81203bef364bd4","7f252df94ae8ba544a3e7e3685d0b8010819e5da2984f9d9388410c3f219766f","accbe8d6d2e3d9ba9eb6a0e8eb3e6eb5edbb4c83ef697477c48960b3fd489709","fb396aed0372a9d07b066357137a71cada3c2cdcf63a943bb5cf54693879170f","0866f5c3af2d2991560fe573f7770a5de4df9e8661f3422dc3cdf3d07c7ca77b","257a9fbd78627aee4b41944dfdd51791295dc9f75e23ca860bfcbc1d963af172","84f090849fcf05385e3028adb7e0dd317ef90d2d6e2ce5b3014cc227ad959012","9aafa0486b647d36c763b947635c5abd502b4866068a201e1aac421ba2400635","f2492c82b866dbbec1cbf905068d3f10395eba9eddfeb93cd68d7999c7c02e94","c44dfb1945045dd2d0affce0f09f4f37eb504e69e1b114b61570b94bc2625b54","2df4e6ba6dee78a86e4ec293bae74ee74e7f1fe5b7ed542d560db8dcb491f4de","1e8c51eaab31c7c7ce8590e80b8663f360aed54caf8cdf2643349ef59ae27876","85d33ba4097c3f24ceeca365379301c327d5291da44e57bbcf301b68621f3708","39426a077f479e1b77cd46b3b2341d76963fc3f4832143effe966b22cd77b72f","f7f1e3147bdda813f8f14187c20ee886cd7cc1f1fe2bf61f678727789cf671ac","900683c32709e025b93cc18be550bbf2a2e5686e0ac5d058f25468062117a5a7","251fb837e3eefc7a173215efe55ebb373d9fec897222727a2f7155116ed2d435","8e99aaf972a6c838b663870254542772c537cab7a38e6274a2f22ec7a4ead471","2212824fa4922883901b4615635a1eda8788f69f6f8d98c7fc0005a067deb02d","8cfa7d90fe529121908d3dff84049cf7ef22f9e7730465ac7d4eb0b9339a98c9","62dea411507bb1166ea5940b49d4c338c19755523c37333c7e72749544038bdf","837e6673ec26cd2b1836c803d6da009414af6fb41b9b3e4da354a7d951e4ca15","c2ca0a54cc7834751e690220a2076537efafc81557b4662a472b9a67521e307a","0bbb5cc45fbd16275125543c3e0384db63878bb204bdf7c52ba552f6b99f5cfd","e171e60ab3a7ad19ca923c78efd9622a4e6b6e17a34e725bd7ff5bb5ca8e32c9","779f5614ebe2da4d6732b9d08897adc4c9f0e6201982824d15c1e7355c044459","e661819988538e4af27c23d55732efe30753fd3cbaf8e3b0bdff7139af05ab4e","cbb925cff3951c95e48779038235c39473cc72f182ea404689d4708f68940473","fdecfb7b227276fc0ce791be1ccb632a10e69608c381dca2ee8447f2b8e4fddc","2b9a6bb62441681d9e1b7d5d5619d01427940c0da211f3bf56ef53401075e089","a5e79bb8f19b20dbe0c68bd79b290a2b444c6b545cfb78d31f963c8e250df9a2","bf44e222a94f471385c144737a72686e213a85c791efc82aff43b215aa969614","05e8724049ab4e0e557f1723afd88725a866dc885520d19a14a1d7679eec5523","b98d9f66e748d5fac9da77d18ad94ce2bb35504e11c875c8c0d99d6f0dff5610","e5fdef1384127bd18db947832995108ac8e180ea01a69853a8e3d46213145f69",{"version":"0c9d1fd5b43d5e88c277f7f53cffc87778190f2f9a1f57743559421f04fc730b","affectsGlobalScope":true},"8a659f7d82d932649a78f89643c5b436953424a219d705d49b8b3d9ccd6e35ff",{"version":"75cd6dce1c5f87511772c891de86d0c9e6829e6273dea9f92a5bec9d0479d1e7","affectsGlobalScope":true},{"version":"cd711db43a952f15464b571ac11b7a440332cd52342bc92c4bf908c70688f57f","affectsGlobalScope":true},"9d8709c916778cb34830708ed47b78e9a46d1fb2eb73a682b14eee990bed4aa6",{"version":"5d90911f942229eb9049feab241739a5ced76f137948f8f42a615e5f01d4e7ea","affectsGlobalScope":true},"999a90d30a3183dcee987d0a5a7c586aba5bacbf6ce087ba8635124082ccfeea","8a5878edd52f4a720560b4c6e6247e9ddc3df6118ad9cf2f9927903b03d5f440",{"version":"d95d76d79a0351572ec5b1a6cc1e5c4bce1be82eedeed7278d6f31ea1059fa69","affectsGlobalScope":true},"6b40029289530423f407a22755c85b81740f9acfd88d2b53564f8c1657c26660","50a5b297e6c91df4f6068d98467a5e7ba4eeb888b9376757734dd4b1dfcdacd4",{"version":"b644a9e5433c651fb751aeb6e06f24dfa5604950d948622dcd2980b782bb1f50","affectsGlobalScope":true},"65b91a3725399231d3469529b5e27b85bf2aa98013e607f308e5fe260b47eeff","a11181f6d68200e83ccb1fb48b262a7132a3257e0a230f41c9dc4c351964297a","fb2e6b33c4f8332c524dcf99f37fe5bfadccf9bc2f09fcd32eb802b4048bd6e4","d58f29ef032a92da0196fc9304889d8993e2503fb2713b8c1f97808a87d45f8b","88cda4269c54f0803834fd62b2fac61af8bff7a085693f7ca9df85c1f19dee8a",{"version":"aa087ee31af7d286efa149c9660a8fa1d0908cb72c980f129a30a6bd1063c696","affectsGlobalScope":true},"c7b2b6f36bb88832616cf257bc19b42096cfa94d76114b3fa9e57563fffddb49","fdf0aa1a72ff0188a9013926201a391116ef6701cd439b89850786abdf755fb8","5f3d348a3a6978dc5ff85ea97be65e41a21884d078bfdec5a588940639fd7fc5","abf9ea97b78a7b239186cf5b7ed59c4a593abac3c408c8c95fc5e604cfdfdb43","ae91c9161caf0af81c89e780a045fc5ea8382407e516342e409c5db9161d3b32","2c387828a523cc77a4300f5deb063651c9346c5a36ccfbfc127c38df8ab45b0c","e6a731551b57eb0f9fe5dde97ce2cf02f57d99cf7d7e06b916111c7a07c30abc","4a662115c4c7186cc027ef4a8163e48c7f1c57f05247f08d5acb2344fae2ca53","d598157512ae6e0d3aa6bb0dd261ae34845831dccf7bc7739695ee2589eb76f5","c523db72c97b64fb4afe53e79cd7a2b062bacc36b1d0b29c9686f71c05d4409c","d2173e08898108c0aaa6dbfed27725b4a71f5817153800c86f03fa06456a2fc7","d6399c5d288103cbfdc97dcab3f7754aef9f7eb22cf55d942d6dc62a9c57b180","0d5a2ee1fdfa82740e0103389b9efd6bfe145a20018a2da3c02b89666181f4d9","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"92d63add669d18ebc349efbacd88966d6f2ccdddfb1b880b2db98ae3aa7bf7c4","affectsGlobalScope":true},"ccc94049a9841fe47abe5baef6be9a38fc6228807974ae675fb15dc22531b4be",{"version":"9acfe4d1ff027015151ce81d60797b04b52bffe97ad8310bb0ec2e8fd61e1303","affectsGlobalScope":true},"95843d5cfafced8f3f8a5ce57d2335f0bcd361b9483587d12a25e4bd403b8216","afc6e96061af46bcff47246158caee7e056f5288783f2d83d6858cd25be1c565",{"version":"34f5bcac12b36d70304b73de5f5aab3bb91bd9919f984be80579ebcad03a624e","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","2f520601649a893e6a49a8851ebfcf4be8ce090dc1281c2a08a871cb04e8251f","f50c975ab7b50e25a69e3d8a3773894125b44e9698924105f23b812bf7488baf","2b8c764f856a1dd0a9a2bf23e5efddbff157de8138b0754010be561ae5fcaa90","76650408392bf49a8fbf3e2b6b302712a92d76af77b06e2da1cc8077359c4409","0af3121e68297b2247dd331c0d24dba599e50736a7517a5622d5591aae4a3122","6972fca26f6e9bd56197568d4379f99071a90766e06b4fcb5920a0130a9202be",{"version":"4a2628e95962c8ab756121faa3ac2ed348112ff7a87b5c286dd2cc3326546b4c","affectsGlobalScope":true},"80793b2277f31baa199234daed806fff0fb11491d1ebd3357e520c3558063f00","a049a59a02009fc023684fcfaf0ac526fe36c35dcc5d2b7d620c1750ba11b083","5533392c50c51b1a5c32b89f13145db929c574ef1c5949cf67a074a05ea107d9","b287b810b5035d5685f1df6e1e418f1ca452a3ed4f59fd5cc081dbf2045f0d9b","4b9a003b5c556c96784132945bb41c655ea11273b1917f5c8d0c154dd5fd20dd","a458dc78104cc80048ac24fdc02fe6dce254838094c2f25641b3f954d9721241",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"902cd98bf46e95caf4118a0733fb801e9e90eec3edaed6abdad77124afec9ca2","abc1c425b2ad6720433f40f1877abfa4223f0f3dd486c9c28c492179ca183cb6","cd4854d38f4eb5592afd98ab95ca17389a7dfe38013d9079e802d739bdbcc939","94eed4cc2f5f658d5e229ff1ccd38860bddf4233e347bf78edd2154dee1f2b99",{"version":"bd1a08e30569b0fb2f0b21035eb9b039871f68faa9b98accf847e9c878c5e0a9","affectsGlobalScope":true},"9f1069b9e2c051737b1f9b4f1baf50e4a63385a6a89c32235549ae87fc3d5492","ee18f2da7a037c6ceeb112a084e485aead9ea166980bf433474559eac1b46553","29c2706fa0cc49a2bd90c83234da33d08bb9554ecec675e91c1f85087f5a5324","0acbf26bf958f9e80c1ffa587b74749d2697b75b484062d36e103c137c562bc3","d7838022c7dab596357a9604b9c6adffe37dc34085ce0779c958ce9545bd7139","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff",{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true},"a7971f9fb2a32ec7788ec6cda9d7a33c02023dfe9a62db2030ad1359649d8050","c33a6ea7147af60d8e98f1ac127047f4b0d4e2ce28b8f08ff3de07ca7cc00637",{"version":"b42b47e17b8ece2424ae8039feb944c2e3ba4b262986aebd582e51efbdca93dc","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","2408611d9b4146e35d1dbd1f443ccd8e187c74614a54b80300728277529dbf11","998a3de5237518c0b3ac00a11b3b4417affb008aa20aedee52f3fdae3cb86151","ad41008ffe077206e1811fc873f4d9005b5fd7f6ab52bb6118fef600815a5cb4","d88ecca73348e7c337541c4b8b60a50aca5e87384f6b8a422fc6603c637e4c21","badae0df9a8016ac36994b0a0e7b82ba6aaa3528e175a8c3cb161e4683eec03e","c3db860bcaaaeb3bbc23f353bbda1f8ab82756c8d5e973bebb3953cb09ea68f2","235a53595bd20b0b0eeb1a29cb2887c67c48375e92f03749b2488fbd46d0b1a0","bc09393cd4cd13f69cf1366d4236fbae5359bb550f0de4e15767e9a91d63dfb1","9c266243b01545e11d2733a55ad02b4c00ecdbda99c561cd1674f96e89cdc958","c71155c05fc76ff948a4759abc1cb9feec036509f500174bc18dad4c7827a60c",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"1cdb8f094b969dcc183745dc88404e2d8fcf2a858c6e7cc2441011476573238e",{"version":"5f186a758a616c107c70e8918db4630d063bd782f22e6e0b17573b125765b40b","affectsGlobalScope":true}],"options":{"allowSyntheticDefaultImports":true,"declaration":true,"esModuleInterop":true,"experimentalDecorators":true,"importHelpers":true,"inlineSources":true,"module":99,"noEmitOnError":true,"outDir":"./","rootDir":"..","sourceMap":true,"strict":true,"target":5},"fileIdsList":[[281],[47,281],[50,281],[47,50,281],[45,46,281],[49,281],[226,281],[47,224,225,281],[47,224,281],[208,209,281],[210,281],[209,211,281],[221,222,229,230,231,233,234,281],[223,227,281],[228,281],[224,281],[223,228,232,281],[223,281],[208,220,235,281],[212,215,216,219,281],[208,281],[106,281],[94,96,97,98,99,100,101,102,103,104,105,106,281],[94,95,97,98,99,100,101,102,103,104,105,106,281],[95,96,97,98,99,100,101,102,103,104,105,106,281],[94,95,96,98,99,100,101,102,103,104,105,106,281],[94,95,96,97,99,100,101,102,103,104,105,106,281],[94,95,96,97,98,100,101,102,103,104,105,106,281],[94,95,96,97,98,99,101,102,103,104,105,106,281],[94,95,96,97,98,99,100,102,103,104,105,106,281],[94,95,96,97,98,99,100,101,103,104,105,106,281],[94,95,96,97,98,99,100,101,102,104,105,106,281],[94,95,96,97,98,99,100,101,102,103,105,106,281],[94,95,96,97,98,99,100,101,102,103,104,106,281],[94,95,96,97,98,99,100,101,102,103,104,105,281],[238,281],[241,281],[242,247,281],[243,253,254,261,270,280,281],[243,244,253,261,281],[245,281],[246,247,254,262,281],[247,270,277,281],[248,250,253,261,281],[249,281],[250,251,281],[252,253,281],[253,281],[253,254,255,270,280,281],[253,254,255,270,281],[256,261,270,280,281],[253,254,256,257,261,270,277,280,281],[256,258,270,277,280,281],[238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287],[253,259,281],[260,280,281],[250,253,261,270,281],[262,281],[263,281],[241,264,281],[265,279,281,285],[266,281],[267,281],[253,268,281],[268,269,281,283],[253,270,271,272,281],[270,272,281],[270,271,281],[273,281],[274,281],[253,275,276,281],[275,276,281],[247,261,277,281],[278,281],[261,279,281],[242,256,267,280,281],[247,281],[270,281,282],[281,283],[281,284],[242,247,253,255,264,270,280,281,283,285],[270,281,286],[208,218,281],[217,281],[41,281],[214,281],[213,281],[156,157,281],[50,51,52,53,54,55,56,57,58,281],[44,47,48,83,281],[44,47,281],[44,281],[42,43,281],[51,52,53,54,55,56,57,58,281],[192,281],[44,47,48,281],[40,202,281],[40,76,111,143,146,151,166,281],[40,76,167,168,169,170,281],[40,76,281],[40,76,77,281],[40,76,111,151,281],[40,281],[40,49,59,76,77,281],[40,49,59,61,62,76,82,281],[40,49,59,62,69,76,77,127,128,281],[40,60,281],[40,69,76,281],[40,49,59,60,61,62,66,67,68,76,77,281],[40,49,281],[40,49,59,63,76,77,109,110,112,113,114,116,281],[40,49,59,62,76,77,281],[40,49,59,62,76,77,82,91,93,107,281],[40,49,59,76,77,108,116,117,118,122,281],[40,63,117,281],[40,111,117,281],[40,49,59,76,77,122,123,126,129,130,131,132,134,137,171,172,173,281],[40,49,59,62,74,76,77,124,125,281],[40,70,281],[40,74,76,281],[40,49,59,62,66,70,71,72,73,76,77,281],[40,76,77,172,281],[40,49,59,76,77,122,137,167,171,172,173,181,182,281],[40,49,59,75,76,77,176,177,178,179,281],[40,49,59,76,77,122,175,180,281],[40,49,59,76,77,107,116,281],[40,75,180,281],[40,111,180,281],[40,144,145,281],[40,49,59,63,76,77,281],[40,63,76,144,281],[40,49,59,62,281],[40,92,93,281],[40,44,76,82,281],[40,76,92,281],[40,187,281],[40,111,184,185,186,281],[40,49,62,76,281],[40,49,59,62,76,281],[40,49,76,123,126,129,281],[40,76,123,126,129,281],[40,142,281],[40,76,138,139,140,141,281],[40,150,281],[40,49,63,65,76,281],[40,76,147,148,149,281],[40,63,76,281],[40,77,143,146,151,166,174,183,188,191,201,281],[40,189,190,281],[40,65,281],[40,49,59,62,63,76,77,281],[40,49,59,62,64,76,77,281],[40,49,76,281],[40,152,153,154,155,159,160,161,162,163,164,165,281],[40,49,76,158,281],[40,49,59,76,281],[40,76,152,153,154,155,159,160,161,162,163,164,281],[40,194,195,196,197,198,199,200,281],[40,84,189,281],[40,49,59,192,194,202,281],[40,49,59,76,202,281],[40,49,59,62,192,194,202,281],[40,49,59,195,196,197,198,202,281],[40,49,59,62,82,192,194,202,281],[40,49,59,193,194,202,281],[40,44,60,61,63,69,70,71,74,75,281],[40,115,281],[40,49,203,281],[40,49,174,236,281],[133,281],[86,87,88,89,90,281],[44,49,85,281],[84,281],[78,79,80,81,281],[44,49,78,281],[44,49,80,281],[44,49,281],[136,281],[135,281],[119,120,121,281]],"referencedMap":[[45,1],[50,2],[51,3],[54,4],[52,4],[56,4],[58,4],[57,4],[55,4],[53,3],[46,1],[47,5],[62,6],[224,1],[227,7],[226,8],[225,9],[210,10],[211,11],[209,1],[212,12],[235,13],[221,1],[228,14],[229,15],[230,1],[231,16],[233,17],[223,6],[232,18],[234,15],[236,19],[220,20],[217,1],[216,21],[208,1],[114,22],[131,22],[132,22],[107,22],[95,23],[96,24],[94,25],[97,26],[98,27],[99,28],[100,29],[101,30],[102,31],[103,32],[104,33],[105,34],[106,35],[289,1],[238,36],[239,36],[241,37],[242,38],[243,39],[244,40],[245,41],[246,42],[247,43],[248,44],[249,45],[250,46],[251,46],[252,47],[253,48],[254,49],[255,50],[240,1],[287,1],[256,51],[257,52],[258,53],[288,54],[259,55],[260,56],[261,57],[262,58],[263,59],[264,60],[265,61],[266,62],[267,63],[268,64],[269,65],[270,66],[272,67],[271,68],[273,69],[274,70],[275,71],[276,72],[277,73],[278,74],[279,75],[280,76],[281,77],[282,78],[283,79],[284,80],[285,81],[286,82],[219,83],[218,84],[42,85],[41,1],[213,21],[215,86],[214,87],[182,1],[158,88],[156,1],[157,1],[83,89],[84,90],[48,91],[43,92],[192,92],[44,93],[222,92],[59,94],[193,95],[49,96],[40,1],[8,1],[10,1],[9,1],[2,1],[11,1],[12,1],[13,1],[14,1],[15,1],[16,1],[17,1],[18,1],[3,1],[4,1],[22,1],[19,1],[20,1],[21,1],[23,1],[24,1],[25,1],[5,1],[26,1],[27,1],[28,1],[29,1],[6,1],[30,1],[31,1],[32,1],[33,1],[7,1],[38,1],[34,1],[35,1],[36,1],[37,1],[1,1],[39,1],[203,97],[167,98],[171,99],[168,100],[169,101],[170,102],[77,100],[111,103],[60,104],[204,105],[61,104],[129,106],[127,107],[128,107],[67,108],[68,108],[69,109],[172,100],[113,110],[117,111],[63,104],[118,112],[108,113],[123,114],[109,115],[110,115],[112,116],[174,117],[70,104],[71,104],[126,118],[124,119],[125,119],[72,120],[73,120],[205,120],[74,121],[173,122],[183,123],[179,110],[180,124],[181,125],[75,104],[175,126],[176,127],[177,127],[178,128],[146,129],[144,130],[145,131],[130,132],[206,133],[92,134],[93,135],[184,103],[188,136],[185,103],[187,137],[186,103],[138,138],[139,139],[140,140],[141,141],[143,142],[142,143],[151,144],[147,145],[150,146],[149,147],[148,147],[202,148],[191,149],[190,103],[189,103],[66,150],[64,151],[65,152],[152,153],[153,153],[154,100],[155,153],[166,154],[159,155],[160,153],[161,100],[162,156],[165,157],[163,100],[164,153],[201,158],[194,159],[196,160],[200,161],[198,162],[199,163],[197,164],[195,165],[76,166],[116,167],[115,103],[207,168],[237,169],[133,1],[134,170],[91,171],[88,172],[90,172],[85,173],[87,172],[86,172],[89,172],[82,174],[79,175],[80,175],[81,176],[78,177],[137,178],[135,177],[136,179],[119,6],[122,180],[120,6],[121,6]],"exportedModulesMap":[[45,1],[50,2],[51,3],[54,4],[52,4],[56,4],[58,4],[57,4],[55,4],[53,3],[46,1],[47,5],[62,6],[224,1],[227,7],[226,8],[225,9],[210,10],[211,11],[209,1],[212,12],[235,13],[221,1],[228,14],[229,15],[230,1],[231,16],[233,17],[223,6],[232,18],[234,15],[236,19],[220,20],[217,1],[216,21],[208,1],[114,22],[131,22],[132,22],[107,22],[95,23],[96,24],[94,25],[97,26],[98,27],[99,28],[100,29],[101,30],[102,31],[103,32],[104,33],[105,34],[106,35],[289,1],[238,36],[239,36],[241,37],[242,38],[243,39],[244,40],[245,41],[246,42],[247,43],[248,44],[249,45],[250,46],[251,46],[252,47],[253,48],[254,49],[255,50],[240,1],[287,1],[256,51],[257,52],[258,53],[288,54],[259,55],[260,56],[261,57],[262,58],[263,59],[264,60],[265,61],[266,62],[267,63],[268,64],[269,65],[270,66],[272,67],[271,68],[273,69],[274,70],[275,71],[276,72],[277,73],[278,74],[279,75],[280,76],[281,77],[282,78],[283,79],[284,80],[285,81],[286,82],[219,83],[218,84],[42,85],[41,1],[213,21],[215,86],[214,87],[182,1],[158,88],[156,1],[157,1],[83,89],[84,90],[48,91],[43,92],[192,92],[44,93],[222,92],[59,94],[193,95],[49,96],[40,1],[8,1],[10,1],[9,1],[2,1],[11,1],[12,1],[13,1],[14,1],[15,1],[16,1],[17,1],[18,1],[3,1],[4,1],[22,1],[19,1],[20,1],[21,1],[23,1],[24,1],[25,1],[5,1],[26,1],[27,1],[28,1],[29,1],[6,1],[30,1],[31,1],[32,1],[33,1],[7,1],[38,1],[34,1],[35,1],[36,1],[37,1],[1,1],[39,1],[203,97],[167,98],[171,99],[168,100],[169,101],[170,102],[77,100],[111,103],[60,104],[204,105],[61,104],[129,106],[127,107],[128,107],[67,108],[68,108],[69,109],[172,100],[113,110],[117,111],[63,104],[118,112],[108,113],[123,114],[109,115],[110,115],[112,116],[174,117],[70,104],[71,104],[126,118],[124,119],[125,119],[72,120],[73,120],[205,120],[74,121],[173,122],[183,123],[179,110],[180,124],[181,125],[75,104],[175,126],[176,127],[177,127],[178,128],[146,129],[144,130],[145,131],[130,132],[206,133],[92,134],[93,135],[184,103],[188,136],[185,103],[187,137],[186,103],[138,138],[139,139],[140,140],[141,141],[143,142],[142,143],[151,144],[147,145],[150,146],[149,147],[148,147],[202,148],[191,149],[190,103],[189,103],[66,150],[64,151],[65,152],[152,153],[153,153],[154,100],[155,153],[166,154],[159,155],[160,153],[161,100],[162,156],[165,157],[163,100],[164,153],[201,158],[194,159],[196,160],[200,161],[198,162],[199,163],[197,164],[195,165],[76,166],[116,167],[115,103],[207,168],[237,169],[133,1],[134,170],[91,171],[88,172],[90,172],[85,173],[87,172],[86,172],[89,172],[82,174],[79,175],[80,175],[81,176],[78,177],[137,178],[135,177],[136,179],[119,6],[122,180],[120,6],[121,6]],"semanticDiagnosticsPerFile":[45,50,51,54,52,56,58,57,55,53,46,47,62,224,227,226,225,210,211,209,212,235,221,228,229,230,231,233,223,232,234,236,220,217,216,208,114,131,132,107,95,96,94,97,98,99,100,101,102,103,104,105,106,289,238,239,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,240,287,256,257,258,288,259,260,261,262,263,264,265,266,267,268,269,270,272,271,273,274,275,276,277,278,279,280,281,282,283,284,285,286,219,218,42,41,213,215,214,182,158,156,157,83,84,48,43,192,44,222,59,193,49,40,8,10,9,2,11,12,13,14,15,16,17,18,3,4,22,19,20,21,23,24,25,5,26,27,28,29,6,30,31,32,33,7,38,34,35,36,37,1,39,203,167,171,168,169,170,77,111,60,204,61,129,127,128,67,68,69,172,113,117,63,118,108,123,109,110,112,174,70,71,126,124,125,72,73,205,74,173,183,179,180,181,75,175,176,177,178,146,144,145,130,206,92,93,184,188,185,187,186,138,139,140,141,143,142,151,147,150,149,148,202,191,190,189,66,64,65,152,153,154,155,166,159,160,161,162,165,163,164,201,194,196,200,198,199,197,195,76,116,115,207,237,133,134,91,88,90,85,87,86,89,82,79,80,81,78,137,135,136,119,122,120,121]},"version":"4.5.2"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@operato/data-grist",
3
- "version": "0.2.36",
3
+ "version": "0.2.37",
4
4
  "description": "User interface for grid (desktop) and list (mobile)",
5
5
  "author": "heartyoh",
6
6
  "license": "MIT",
@@ -76,5 +76,5 @@
76
76
  "prettier --write"
77
77
  ]
78
78
  },
79
- "gitHead": "fa4b02d776ebca4674d2c5e02fafa7042a5d5448"
79
+ "gitHead": "531c09091059530c5c686497c50fc29742b47e67"
80
80
  }
@@ -1,11 +1,11 @@
1
1
  import '@material/mwc-icon'
2
2
  import './record-card'
3
3
 
4
- import { ColumnConfig, GristConfig, GristData, GristRecord } from '../types'
5
- import { LitElement, PropertyValues, css, html } from 'lit'
6
- import { ZERO_CONFIG, ZERO_DATA } from '../configure/zero-config'
4
+ import { css, html, LitElement, PropertyValues } from 'lit'
7
5
  import { customElement, property } from 'lit/decorators.js'
8
6
 
7
+ import { ZERO_CONFIG, ZERO_DATA } from '../configure/zero-config'
8
+ import { ColumnConfig, GristConfig, GristData, GristRecord } from '../types'
9
9
  import { dataCardClickHandler } from './event-handlers/data-card-click-handler'
10
10
  import { dataCardDblclickHandler } from './event-handlers/data-card-dblclick-handler'
11
11
 
@@ -55,12 +55,6 @@ export class DataCard extends LitElement {
55
55
  width: 100%;
56
56
  }
57
57
 
58
- slot[name='headroom'] {
59
- display: flex;
60
- position: absolute;
61
- top: 0;
62
- }
63
-
64
58
  @media screen and (max-width: 460px) {
65
59
  #setting {
66
60
  grid-template-columns: 1fr;
@@ -1,9 +1,4 @@
1
- import { GristData } from './types'
2
-
3
- export type FetchHandler = (param?: { page?: number; limit?: number; sorters?: object[]; options?: object }) => {
4
- total: number
5
- records: object[]
6
- }
1
+ import { FetchHandler, GristData } from './types'
7
2
 
8
3
  export interface DataConsumer extends EventTarget {
9
4
  data: any
package/src/data-grist.ts CHANGED
@@ -3,22 +3,23 @@ import './data-list/data-list'
3
3
  import './data-card/data-card'
4
4
  import './empty-note'
5
5
 
6
- import { DataConsumer, FetchHandler } from './data-consumer'
7
- import { GristConfig, GristData, GristRecord } from './types'
8
- import { HeadroomStyles, ScrollbarStyles, SpinnerStyles } from '@operato/styles'
9
- import { LitElement, PropertyValues, css, html } from 'lit'
10
- import { ZERO_CONFIG, ZERO_DATA, ZERO_PAGINATION } from './configure/zero-config'
6
+ import { css, html, LitElement, PropertyValues } from 'lit'
11
7
  import { customElement, property, query, queryAsync, state } from 'lit/decorators.js'
8
+ import isEmpty from 'lodash-es/isEmpty'
9
+ import isEqual from 'lodash-es/isEqual'
10
+
11
+ import Headroom from '@operato/headroom'
12
+ import { pulltorefresh } from '@operato/pull-to-refresh'
13
+ import { HeadroomStyles, ScrollbarStyles, SpinnerStyles } from '@operato/styles'
12
14
 
15
+ import { buildConfig } from './configure/config-builder'
16
+ import { ZERO_CONFIG, ZERO_DATA, ZERO_PAGINATION } from './configure/zero-config'
13
17
  import { DataCard } from './data-card/data-card'
18
+ import { DataConsumer } from './data-consumer'
14
19
  import { DataGrid } from './data-grid/data-grid'
15
20
  import { DataList } from './data-list/data-list'
16
21
  import { DataProvider } from './data-provider'
17
- import Headroom from '@operato/headroom'
18
- import { buildConfig } from './configure/config-builder'
19
- import isEmpty from 'lodash-es/isEmpty'
20
- import isEqual from 'lodash-es/isEqual'
21
- import { pulltorefresh } from '@operato/pull-to-refresh'
22
+ import { FetchHandler, GristConfig, GristData, GristRecord } from './types'
22
23
 
23
24
  @customElement('ox-grist')
24
25
  export class DataGrist extends LitElement implements DataConsumer {
@@ -90,9 +91,8 @@ export class DataGrist extends LitElement implements DataConsumer {
90
91
  private dataProvider?: DataProvider
91
92
  private _pulltorefreshHandle?: any
92
93
  private _headroom?: Headroom
93
- private _resizeObserver = new ResizeObserver(entries => {
94
- this._adjustPaddingTop()
95
- })
94
+ private orginPaddingTop?: string
95
+ private originMarginTop?: string
96
96
 
97
97
  @query('slot[name=headroom]') head!: HTMLElement
98
98
  @query('#grist') grist!: DataGrid | DataList | DataCard
@@ -104,7 +104,6 @@ export class DataGrist extends LitElement implements DataConsumer {
104
104
  this.dataProvider = new DataProvider(this)
105
105
 
106
106
  await this.updateComplete
107
- this._resizeObserver.observe(this.head)
108
107
  }
109
108
 
110
109
  disconnectedCallback() {
@@ -112,7 +111,6 @@ export class DataGrist extends LitElement implements DataConsumer {
112
111
 
113
112
  this.dataProvider?.dispose()
114
113
  this._resetPullToRefresh()
115
- this._resizeObserver.unobserve(this.head)
116
114
  }
117
115
 
118
116
  private _resetPullToRefresh() {
@@ -135,18 +133,31 @@ export class DataGrist extends LitElement implements DataConsumer {
135
133
  }
136
134
  }
137
135
 
138
- private _adjustPaddingTop() {
139
- this.grist.style.paddingTop = this.head.clientHeight + 'px'
140
- }
141
-
142
136
  private _setHeadroom() {
143
137
  this._headroom?.destroy()
144
138
 
145
139
  if (this.grist && this.head) {
146
- this._adjustPaddingTop()
140
+ const style = getComputedStyle(this.grist)
141
+
142
+ this.orginPaddingTop = style.paddingTop || '0'
143
+ this.originMarginTop = style.marginTop || '0'
144
+
145
+ console.log(this.orginPaddingTop, this.originMarginTop)
147
146
 
148
147
  this._headroom = new Headroom(this.head, {
149
- scroller: this.grist
148
+ scroller: this.grist,
149
+ onTop: () => {
150
+ this.grist.style.paddingTop = this.orginPaddingTop!
151
+
152
+ this.originMarginTop = this.grist.style.marginTop
153
+ this.grist.style.marginTop = this.head.clientHeight + 'px'
154
+ },
155
+ onNotTop: () => {
156
+ this.grist.style.marginTop = this.originMarginTop!
157
+
158
+ this.orginPaddingTop = this.grist.style.paddingTop
159
+ this.grist.style.paddingTop = this.head.clientHeight + 'px'
160
+ }
150
161
  })
151
162
  this._headroom.init()
152
163
  }
@@ -1,11 +1,11 @@
1
1
  import '@material/mwc-icon'
2
2
  import './record-partial'
3
3
 
4
- import { ColumnConfig, GristConfig, GristData, GristRecord } from '../types'
5
- import { LitElement, PropertyValues, css, html } from 'lit'
6
- import { ZERO_CONFIG, ZERO_DATA } from '../configure/zero-config'
4
+ import { css, html, LitElement, PropertyValues } from 'lit'
7
5
  import { customElement, property } from 'lit/decorators.js'
8
6
 
7
+ import { ZERO_CONFIG, ZERO_DATA } from '../configure/zero-config'
8
+ import { ColumnConfig, GristConfig, GristData, GristRecord } from '../types'
9
9
  import { dataListClickHandler } from './event-handlers/data-list-click-handler'
10
10
  import { dataListDblclickHandler } from './event-handlers/data-list-dblclick-handler'
11
11
 
@@ -41,12 +41,6 @@ export class DataList extends LitElement {
41
41
  slot {
42
42
  width: 100%;
43
43
  }
44
-
45
- slot[name='headroom'] {
46
- display: flex;
47
- position: absolute;
48
- top: 0;
49
- }
50
44
  `
51
45
  ]
52
46
 
@@ -1,7 +1,6 @@
1
- import { DataConsumer, FetchHandler } from './data-consumer'
2
- import { GristRecord, SorterConfig } from './types'
3
-
4
1
  import { ZERO_RECORDS } from './configure/zero-config'
2
+ import { DataConsumer } from './data-consumer'
3
+ import { FetchHandler, FetchOption, GristRecord, SorterConfig } from './types'
5
4
 
6
5
  function EMPTY_FETCHHANDLER() {
7
6
  return {
@@ -92,14 +91,14 @@ export class DataProvider {
92
91
 
93
92
  get fetchHandler() {
94
93
  if (!this._fetchHandlerWrap) {
95
- this._fetchHandlerWrap = async (...args: any[]) => {
94
+ this._fetchHandlerWrap = async (options: FetchOption) => {
96
95
  if (!this._fetchHandler) {
97
96
  return
98
97
  }
99
98
 
100
99
  try {
101
100
  this.consumer?.showSpinner()
102
- return await (this._fetchHandler || EMPTY_FETCHHANDLER)(...args)
101
+ return await (this._fetchHandler || EMPTY_FETCHHANDLER)(options)
103
102
  } finally {
104
103
  this.consumer?.hideSpinner()
105
104
  }
package/src/types.ts CHANGED
@@ -1,12 +1,13 @@
1
+ import { TemplateResult } from 'lit-html'
2
+
1
3
  import { DataCardField } from './data-card/data-card-field'
2
4
  import { DataCardGutter } from './data-card/data-card-gutter'
5
+ import { RecordCard } from './data-card/record-card'
3
6
  import { DataGridField } from './data-grid/data-grid-field'
4
7
  import { DataListField } from './data-list/data-list-field'
5
8
  import { DataListGutter } from './data-list/data-list-gutter'
6
- import { DataReportField } from './data-report/data-report-field'
7
- import { RecordCard } from './data-card/record-card'
8
9
  import { RecordPartial } from './data-list/record-partial'
9
- import { TemplateResult } from 'lit-html'
10
+ import { DataReportField } from './data-report/data-report-field'
10
11
 
11
12
  export type GristConfig = {
12
13
  columns: ColumnConfig[]
@@ -27,6 +28,14 @@ export type PaginationConfig = {
27
28
  infinite?: boolean
28
29
  }
29
30
 
31
+ export type FetchOption = { page?: number; limit?: number; sorters?: object[]; options?: object }
32
+ export type FetchHandler = (param: FetchOption) => {
33
+ page?: number
34
+ limit?: number
35
+ total: number
36
+ records: object[]
37
+ }
38
+
30
39
  export type GristEventHandler = (
31
40
  columns: ColumnConfig[],
32
41
  data?: GristData,