@things-factory/board-ui 10.1.41 → 10.1.42

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/dist-client/board-list/board-thumb.d.ts +33 -0
  2. package/dist-client/board-list/board-thumb.js +119 -0
  3. package/dist-client/board-list/board-thumb.js.map +1 -0
  4. package/dist-client/graphql/favorite-board.js +3 -0
  5. package/dist-client/graphql/favorite-board.js.map +1 -1
  6. package/dist-client/graphql/my-board.js +3 -0
  7. package/dist-client/graphql/my-board.js.map +1 -1
  8. package/dist-client/graphql/play-group.js +2 -0
  9. package/dist-client/graphql/play-group.js.map +1 -1
  10. package/dist-client/index.d.ts +1 -0
  11. package/dist-client/index.js +1 -0
  12. package/dist-client/index.js.map +1 -1
  13. package/dist-client/pages/board-list-page.d.ts +39 -42
  14. package/dist-client/pages/board-list-page.js +388 -284
  15. package/dist-client/pages/board-list-page.js.map +1 -1
  16. package/dist-client/pages/board-modeller-page.d.ts +2 -0
  17. package/dist-client/pages/board-modeller-page.js +18 -1
  18. package/dist-client/pages/board-modeller-page.js.map +1 -1
  19. package/dist-client/pages/board-template/board-template-list-page.d.ts +21 -10
  20. package/dist-client/pages/board-template/board-template-list-page.js +147 -136
  21. package/dist-client/pages/board-template/board-template-list-page.js.map +1 -1
  22. package/dist-client/pages/play-list-page.d.ts +22 -12
  23. package/dist-client/pages/play-list-page.js +264 -113
  24. package/dist-client/pages/play-list-page.js.map +1 -1
  25. package/dist-client/route.d.ts +1 -1
  26. package/dist-client/setting-let/board-modeller-setting-let.d.ts +21 -0
  27. package/dist-client/setting-let/board-modeller-setting-let.js +144 -0
  28. package/dist-client/setting-let/board-modeller-setting-let.js.map +1 -0
  29. package/dist-client/styles/board-card-styles.d.ts +11 -0
  30. package/dist-client/styles/board-card-styles.js +90 -0
  31. package/dist-client/styles/board-card-styles.js.map +1 -0
  32. package/dist-client/themes/board-theme.css +32 -19
  33. package/dist-client/tsconfig.tsbuildinfo +1 -1
  34. package/dist-client/utils/board-meta.d.ts +10 -0
  35. package/dist-client/utils/board-meta.js +34 -0
  36. package/dist-client/utils/board-meta.js.map +1 -0
  37. package/dist-client/viewparts/board-basic-info.d.ts +38 -7
  38. package/dist-client/viewparts/board-basic-info.js +378 -349
  39. package/dist-client/viewparts/board-basic-info.js.map +1 -1
  40. package/dist-client/viewparts/board-info-link.d.ts +5 -1
  41. package/dist-client/viewparts/board-info-link.js +79 -21
  42. package/dist-client/viewparts/board-info-link.js.map +1 -1
  43. package/dist-client/viewparts/board-info-template.d.ts +15 -0
  44. package/dist-client/viewparts/board-info-template.js +97 -0
  45. package/dist-client/viewparts/board-info-template.js.map +1 -0
  46. package/dist-client/viewparts/board-info.d.ts +5 -0
  47. package/dist-client/viewparts/board-info.js +24 -73
  48. package/dist-client/viewparts/board-info.js.map +1 -1
  49. package/dist-client/viewparts/board-template-builder.d.ts +1 -0
  50. package/dist-client/viewparts/board-template-builder.js +37 -65
  51. package/dist-client/viewparts/board-template-builder.js.map +1 -1
  52. package/dist-client/viewparts/board-template-info.d.ts +3 -0
  53. package/dist-client/viewparts/board-template-info.js +75 -134
  54. package/dist-client/viewparts/board-template-info.js.map +1 -1
  55. package/dist-client/viewparts/group-info-basic.d.ts +8 -3
  56. package/dist-client/viewparts/group-info-basic.js +54 -190
  57. package/dist-client/viewparts/group-info-basic.js.map +1 -1
  58. package/dist-client/viewparts/group-info-import.d.ts +3 -1
  59. package/dist-client/viewparts/group-info-import.js +29 -62
  60. package/dist-client/viewparts/group-info-import.js.map +1 -1
  61. package/dist-client/viewparts/group-info.d.ts +4 -0
  62. package/dist-client/viewparts/group-info.js +21 -55
  63. package/dist-client/viewparts/group-info.js.map +1 -1
  64. package/dist-client/viewparts/info-dialog-styles.d.ts +19 -0
  65. package/dist-client/viewparts/info-dialog-styles.js +194 -0
  66. package/dist-client/viewparts/info-dialog-styles.js.map +1 -0
  67. package/dist-client/viewparts/link-builder.d.ts +3 -0
  68. package/dist-client/viewparts/link-builder.js +87 -81
  69. package/dist-client/viewparts/link-builder.js.map +1 -1
  70. package/dist-client/viewparts/play-group-info-basic.d.ts +4 -3
  71. package/dist-client/viewparts/play-group-info-basic.js +49 -188
  72. package/dist-client/viewparts/play-group-info-basic.js.map +1 -1
  73. package/dist-client/viewparts/play-group-info.d.ts +4 -0
  74. package/dist-client/viewparts/play-group-info.js +22 -53
  75. package/dist-client/viewparts/play-group-info.js.map +1 -1
  76. package/package.json +4 -4
  77. package/translations/en.json +32 -0
  78. package/translations/ja.json +10 -0
  79. package/translations/ko.json +32 -0
  80. package/translations/ms.json +8 -0
  81. package/translations/zh.json +10 -0
@@ -0,0 +1,33 @@
1
+ import '@material/web/icon/icon.js';
2
+ import { LitElement } from 'lit';
3
+ declare const BoardThumb_base: (new (...args: any[]) => LitElement) & typeof LitElement;
4
+ /**
5
+ * A board card's image cell - the picture itself, plus the draft marker.
6
+ *
7
+ * ## Why a component
8
+ *
9
+ * The catalog draws in ox-grist's CARD mode. The grid treats the thumbnail as one column, drawn by
10
+ * that column's `record.renderer` - and a renderer's output lands inside `ox-card-field`'s own
11
+ * shadow root, several shadow boundaries below this page's stylesheet, so inline `style=""` is the
12
+ * only way to reach it directly. That still works for a plain image and a badge, but this stays a
13
+ * component (rather than folding back into an inline renderer) because the border-bottom seam
14
+ * against the info area below wants the same shadow-scoped styling.
15
+ *
16
+ * ## Why info and favorite do *not* live here
17
+ *
18
+ * They did, briefly, overlaid on the image the way figure-ui's figure-thumb.ts overlays its own
19
+ * (2026-09-23). Reverted the same day: a figure's picture is a neutral rendered part, closer to a
20
+ * plan drawing than a screen - text and icons laid over it read fine. A board's picture is the
21
+ * actual dashboard, often already dense with its own labels and numbers; icons on top of that
22
+ * compete with content the catalog exists to let a person recognize at a glance. Board's info and
23
+ * favorite are gutter buttons instead (board-list-page.ts / play-list-page.ts), in the information
24
+ * area below the picture, not on it.
25
+ */
26
+ export declare class BoardThumb extends BoardThumb_base {
27
+ static styles: import("lit").CSSResult;
28
+ board: any;
29
+ badge?: string;
30
+ render(): import("lit-html").TemplateResult<1>;
31
+ private renderBadge;
32
+ }
33
+ export {};
@@ -0,0 +1,119 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import '@material/web/icon/icon.js';
3
+ import { css, html, LitElement } from 'lit';
4
+ import { customElement, property } from 'lit/decorators.js';
5
+ import { i18next, localize } from '@operato/i18n';
6
+ /**
7
+ * A board card's image cell - the picture itself, plus the draft marker.
8
+ *
9
+ * ## Why a component
10
+ *
11
+ * The catalog draws in ox-grist's CARD mode. The grid treats the thumbnail as one column, drawn by
12
+ * that column's `record.renderer` - and a renderer's output lands inside `ox-card-field`'s own
13
+ * shadow root, several shadow boundaries below this page's stylesheet, so inline `style=""` is the
14
+ * only way to reach it directly. That still works for a plain image and a badge, but this stays a
15
+ * component (rather than folding back into an inline renderer) because the border-bottom seam
16
+ * against the info area below wants the same shadow-scoped styling.
17
+ *
18
+ * ## Why info and favorite do *not* live here
19
+ *
20
+ * They did, briefly, overlaid on the image the way figure-ui's figure-thumb.ts overlays its own
21
+ * (2026-09-23). Reverted the same day: a figure's picture is a neutral rendered part, closer to a
22
+ * plan drawing than a screen - text and icons laid over it read fine. A board's picture is the
23
+ * actual dashboard, often already dense with its own labels and numbers; icons on top of that
24
+ * compete with content the catalog exists to let a person recognize at a glance. Board's info and
25
+ * favorite are gutter buttons instead (board-list-page.ts / play-list-page.ts), in the information
26
+ * area below the picture, not on it.
27
+ */
28
+ let BoardThumb = class BoardThumb extends localize(i18next)(LitElement) {
29
+ static { this.styles = css `
30
+ :host {
31
+ position: relative;
32
+ display: block;
33
+ width: 100%;
34
+ height: 100%;
35
+ overflow: hidden;
36
+ /* The name/gutters area below has no border of its own (record-card.ts's [content] is plain
37
+ * margin) - without this the image bleeds straight into it with no seam. */
38
+ border-bottom: 1px solid var(--md-sys-color-outline-variant);
39
+ box-sizing: border-box;
40
+ }
41
+
42
+ img {
43
+ display: block;
44
+ width: 100%;
45
+ height: 100%;
46
+ /*
47
+ contain, not cover. Boards are not one shape - a wide dashboard, a portrait barcode label,
48
+ a small popup - and cover cropped each one differently, so no two cards framed their
49
+ picture alike and the grid never settled. contain shows the whole board on the neutral plate
50
+ (--data-card-thumbnail-background) the way figure-list-page shows a whole figure, so every
51
+ card reads as "a picture in a frame" and the row lines up.
52
+ */
53
+ object-fit: contain;
54
+ }
55
+
56
+ div[empty] {
57
+ display: flex;
58
+ align-items: center;
59
+ justify-content: center;
60
+ width: 100%;
61
+ height: 100%;
62
+ color: var(--md-sys-color-outline);
63
+ }
64
+ div[empty] md-icon {
65
+ --md-icon-size: 28px;
66
+ }
67
+
68
+ /* Draft marker - only draft ever says anything, same reasoning as figure-thumb.ts's span[draft]. */
69
+ span[draft] {
70
+ position: absolute;
71
+ top: 6px;
72
+ left: 6px;
73
+ padding: 1px 7px;
74
+ font: var(--label-font, inherit);
75
+ font-size: 0.68rem;
76
+ line-height: 1.5;
77
+ color: var(--md-sys-color-on-secondary-container);
78
+ background-color: var(--md-sys-color-secondary-container);
79
+ border-radius: 4px;
80
+ }
81
+ `; }
82
+ render() {
83
+ const board = this.board;
84
+ if (!board) {
85
+ return html ``;
86
+ }
87
+ return html `
88
+ ${board.thumbnail
89
+ ? html `<img src=${board.thumbnail} alt=${board.name || ''} loading="lazy" />`
90
+ : html `
91
+ <div empty>
92
+ <md-icon>dashboard</md-icon>
93
+ </div>
94
+ `}
95
+ ${this.renderBadge(board)}
96
+ `;
97
+ }
98
+ renderBadge(board) {
99
+ const text = this.badge !== undefined
100
+ ? this.badge
101
+ : board.state === 'released'
102
+ ? ''
103
+ : i18next.t('label.draft', { defaultValue: 'Draft' });
104
+ return text ? html `<span draft>${text}</span>` : '';
105
+ }
106
+ };
107
+ __decorate([
108
+ property({ type: Object }),
109
+ __metadata("design:type", Object)
110
+ ], BoardThumb.prototype, "board", void 0);
111
+ __decorate([
112
+ property({ type: String }),
113
+ __metadata("design:type", String)
114
+ ], BoardThumb.prototype, "badge", void 0);
115
+ BoardThumb = __decorate([
116
+ customElement('board-thumb')
117
+ ], BoardThumb);
118
+ export { BoardThumb };
119
+ //# sourceMappingURL=board-thumb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"board-thumb.js","sourceRoot":"","sources":["../../client/board-list/board-thumb.ts"],"names":[],"mappings":";AAAA,OAAO,4BAA4B,CAAA;AAEnC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAE3D,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAEjD;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEI,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,QAAQ,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC;aACpD,WAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDlB,AApDY,CAoDZ;IAOD,MAAM;QACJ,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,CAAA,EAAE,CAAA;QACf,CAAC;QAED,OAAO,IAAI,CAAA;QACP,KAAK,CAAC,SAAS;YACf,CAAC,CAAC,IAAI,CAAA,YAAY,KAAK,CAAC,SAAS,QAAQ,KAAK,CAAC,IAAI,IAAI,EAAE,oBAAoB;YAC7E,CAAC,CAAC,IAAI,CAAA;;;;WAIH;QACH,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;KAC1B,CAAA;IACH,CAAC;IAEO,WAAW,CAAC,KAAU;QAC5B,MAAM,IAAI,GACR,IAAI,CAAC,KAAK,KAAK,SAAS;YACtB,CAAC,CAAC,IAAI,CAAC,KAAK;YACZ,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK,UAAU;gBAC1B,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAA;QAE3D,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA,eAAe,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAA;IACrD,CAAC;;AAhC2B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;yCAAY;AAGX;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;yCAAe;AA1D/B,UAAU;IADtB,aAAa,CAAC,aAAa,CAAC;GAChB,UAAU,CAwFtB","sourcesContent":["import '@material/web/icon/icon.js'\n\nimport { css, html, LitElement } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\nimport { i18next, localize } from '@operato/i18n'\n\n/**\n * A board card's image cell - the picture itself, plus the draft marker.\n *\n * ## Why a component\n *\n * The catalog draws in ox-grist's CARD mode. The grid treats the thumbnail as one column, drawn by\n * that column's `record.renderer` - and a renderer's output lands inside `ox-card-field`'s own\n * shadow root, several shadow boundaries below this page's stylesheet, so inline `style=\"\"` is the\n * only way to reach it directly. That still works for a plain image and a badge, but this stays a\n * component (rather than folding back into an inline renderer) because the border-bottom seam\n * against the info area below wants the same shadow-scoped styling.\n *\n * ## Why info and favorite do *not* live here\n *\n * They did, briefly, overlaid on the image the way figure-ui's figure-thumb.ts overlays its own\n * (2026-09-23). Reverted the same day: a figure's picture is a neutral rendered part, closer to a\n * plan drawing than a screen - text and icons laid over it read fine. A board's picture is the\n * actual dashboard, often already dense with its own labels and numbers; icons on top of that\n * compete with content the catalog exists to let a person recognize at a glance. Board's info and\n * favorite are gutter buttons instead (board-list-page.ts / play-list-page.ts), in the information\n * area below the picture, not on it.\n */\n@customElement('board-thumb')\nexport class BoardThumb extends localize(i18next)(LitElement) {\n static styles = css`\n :host {\n position: relative;\n display: block;\n width: 100%;\n height: 100%;\n overflow: hidden;\n /* The name/gutters area below has no border of its own (record-card.ts's [content] is plain\n * margin) - without this the image bleeds straight into it with no seam. */\n border-bottom: 1px solid var(--md-sys-color-outline-variant);\n box-sizing: border-box;\n }\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n /*\n contain, not cover. Boards are not one shape - a wide dashboard, a portrait barcode label,\n a small popup - and cover cropped each one differently, so no two cards framed their\n picture alike and the grid never settled. contain shows the whole board on the neutral plate\n (--data-card-thumbnail-background) the way figure-list-page shows a whole figure, so every\n card reads as \"a picture in a frame\" and the row lines up.\n */\n object-fit: contain;\n }\n\n div[empty] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n color: var(--md-sys-color-outline);\n }\n div[empty] md-icon {\n --md-icon-size: 28px;\n }\n\n /* Draft marker - only draft ever says anything, same reasoning as figure-thumb.ts's span[draft]. */\n span[draft] {\n position: absolute;\n top: 6px;\n left: 6px;\n padding: 1px 7px;\n font: var(--label-font, inherit);\n font-size: 0.68rem;\n line-height: 1.5;\n color: var(--md-sys-color-on-secondary-container);\n background-color: var(--md-sys-color-secondary-container);\n border-radius: 4px;\n }\n `\n\n @property({ type: Object }) board!: any\n /* Overrides the marker text. Unset means \"the draft rule\"; an empty string means no marker at\n * all - a template has no draft/released state, so board-template-list-page.ts passes ''. */\n @property({ type: String }) badge?: string\n\n render() {\n const board = this.board\n if (!board) {\n return html``\n }\n\n return html`\n ${board.thumbnail\n ? html`<img src=${board.thumbnail} alt=${board.name || ''} loading=\"lazy\" />`\n : html`\n <div empty>\n <md-icon>dashboard</md-icon>\n </div>\n `}\n ${this.renderBadge(board)}\n `\n }\n\n private renderBadge(board: any) {\n const text =\n this.badge !== undefined\n ? this.badge\n : board.state === 'released'\n ? ''\n : i18next.t('label.draft', { defaultValue: 'Draft' })\n\n return text ? html`<span draft>${text}</span>` : ''\n }\n}\n"]}
@@ -11,6 +11,9 @@ export async function fetchFavoriteBoardList(listParam = {}) {
11
11
  name
12
12
  description
13
13
  thumbnail
14
+ state
15
+ type
16
+ version
14
17
  createdAt
15
18
  updatedAt
16
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"favorite-board.js","sourceRoot":"","sources":["../../client/graphql/favorite-board.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,aAAa,CAAA;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAElD,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,SAAS,GAAG,EAAE;IACzD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;QAClC,KAAK,EAAE,GAAG,CAAA;;yBAEW,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC;;;;;;;;;;;;KAYnD;KACF,CAAC,CAAA;IAEF,OAAO,QAAQ,CAAC,IAAI,CAAA;AACtB,CAAC","sourcesContent":["import gql from 'graphql-tag'\nimport { client } from '@operato/graphql'\nimport { gqlBuilder } from '@things-factory/utils'\n\nexport async function fetchFavoriteBoardList(listParam = {}) {\n const response = await client.query({\n query: gql`\n {\n favoriteBoards(${gqlBuilder.buildArgs(listParam)}) {\n items {\n id\n name\n description\n thumbnail\n createdAt\n updatedAt\n }\n total\n }\n }\n `\n })\n\n return response.data\n}\n"]}
1
+ {"version":3,"file":"favorite-board.js","sourceRoot":"","sources":["../../client/graphql/favorite-board.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,aAAa,CAAA;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAElD,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,SAAS,GAAG,EAAE;IACzD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;QAClC,KAAK,EAAE,GAAG,CAAA;;yBAEW,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC;;;;;;;;;;;;;;;KAenD;KACF,CAAC,CAAA;IAEF,OAAO,QAAQ,CAAC,IAAI,CAAA;AACtB,CAAC","sourcesContent":["import gql from 'graphql-tag'\nimport { client } from '@operato/graphql'\nimport { gqlBuilder } from '@things-factory/utils'\n\nexport async function fetchFavoriteBoardList(listParam = {}) {\n const response = await client.query({\n query: gql`\n {\n favoriteBoards(${gqlBuilder.buildArgs(listParam)}) {\n items {\n id\n name\n description\n thumbnail\n state\n type\n version\n createdAt\n updatedAt\n }\n total\n }\n }\n `\n })\n\n return response.data\n}\n"]}
@@ -11,6 +11,9 @@ export async function fetchMyBoardList(listParam = {}) {
11
11
  name
12
12
  description
13
13
  thumbnail
14
+ state
15
+ type
16
+ version
14
17
  createdAt
15
18
  updatedAt
16
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"my-board.js","sourceRoot":"","sources":["../../client/graphql/my-board.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,aAAa,CAAA;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAElD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,SAAS,GAAG,EAAE;IACnD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;QAClC,KAAK,EAAE,GAAG,CAAA;;4BAEc,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC;;;;;;;;;;;;KAYtD;KACF,CAAC,CAAA;IAEF,OAAO,QAAQ,CAAC,IAAI,CAAA;AACtB,CAAC","sourcesContent":["import gql from 'graphql-tag'\nimport { client } from '@operato/graphql'\nimport { gqlBuilder } from '@things-factory/utils'\n\nexport async function fetchMyBoardList(listParam = {}) {\n const response = await client.query({\n query: gql`\n {\n boardsCreatedByMe(${gqlBuilder.buildArgs(listParam)}) {\n items {\n id\n name\n description\n thumbnail\n createdAt\n updatedAt\n }\n total\n }\n }\n `\n })\n\n return response.data\n}\n"]}
1
+ {"version":3,"file":"my-board.js","sourceRoot":"","sources":["../../client/graphql/my-board.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,aAAa,CAAA;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAElD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,SAAS,GAAG,EAAE;IACnD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;QAClC,KAAK,EAAE,GAAG,CAAA;;4BAEc,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC;;;;;;;;;;;;;;;KAetD;KACF,CAAC,CAAA;IAEF,OAAO,QAAQ,CAAC,IAAI,CAAA;AACtB,CAAC","sourcesContent":["import gql from 'graphql-tag'\nimport { client } from '@operato/graphql'\nimport { gqlBuilder } from '@things-factory/utils'\n\nexport async function fetchMyBoardList(listParam = {}) {\n const response = await client.query({\n query: gql`\n {\n boardsCreatedByMe(${gqlBuilder.buildArgs(listParam)}) {\n items {\n id\n name\n description\n thumbnail\n state\n type\n version\n createdAt\n updatedAt\n }\n total\n }\n }\n `\n })\n\n return response.data\n}\n"]}
@@ -31,6 +31,8 @@ export async function fetchPlayGroup(groupId) {
31
31
  description
32
32
  model
33
33
  thumbnail
34
+ state
35
+ version
34
36
  createdAt
35
37
  creator {
36
38
  id
@@ -1 +1 @@
1
- {"version":3,"file":"play-group.js","sourceRoot":"","sources":["../../client/graphql/play-group.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,aAAa,CAAA;AAE7B,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAEzC,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;QAClC,KAAK,EAAE,GAAG,CAAA;;;;;;;;;;;KAWT;KACF,CAAC,CAAA;IAEF,OAAO,QAAQ,CAAC,IAAI,CAAA;AACtB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAAO;IAC1C,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;QAClC,KAAK,EAAE,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAmCT;QACD,SAAS,EAAE;YACT,EAAE,EAAE,OAAO;SACZ;KACF,CAAC,CAAA;IAEF,OAAO,QAAQ,CAAC,IAAI,CAAA;AACtB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,KAAK;IACzC,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,KAAK,CAAA;IAEnC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;QACnC,QAAQ,EAAE,GAAG,CAAA;;;;;;;;;;KAUZ;QACD,SAAS,EAAE;YACT,SAAS,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;SACjC;KACF,CAAC,CAAA;IAEF,OAAO,QAAQ,CAAC,IAAI,CAAA;AACtB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,KAAK;IACzC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,KAAK,CAAA;IAEvC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;QACnC,QAAQ,EAAE,GAAG,CAAA;;;;;;;;;;KAUZ;QACD,SAAS,EAAE;YACT,EAAE;YACF,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;SAC7B;KACF,CAAC,CAAA;IAEF,OAAO,QAAQ,CAAC,IAAI,CAAA;AACtB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,EAAE;IACtC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;QACnC,QAAQ,EAAE,GAAG,CAAA;;;;KAIZ;QACD,SAAS,EAAE;YACT,EAAE;SACH;KACF,CAAC,CAAA;IACF,OAAO,QAAQ,CAAC,IAAI,CAAA;AACtB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAO,EAAE,KAAK;IAChD,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,KAAK,CAAA;IAEvC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;QACnC,QAAQ,EAAE,GAAG,CAAA;;;;;;;;;;;;;;;;;KAiBZ;QACD,SAAS,EAAE;YACT,EAAE;YACF,QAAQ,EAAE,CAAC,OAAO,CAAC;SACpB;KACF,CAAC,CAAA;IAEF,OAAO,QAAQ,CAAC,IAAI,CAAA;AACtB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAAO,EAAE,OAAO;IACnD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;QACnC,QAAQ,EAAE,GAAG,CAAA;;;;;;;;;;;;;;;;;KAiBZ;QACD,SAAS,EAAE;YACT,EAAE,EAAE,OAAO;YACX,QAAQ,EAAE,CAAC,OAAO,CAAC;SACpB;KACF,CAAC,CAAA;IAEF,OAAO,QAAQ,CAAC,IAAI,CAAA;AACtB,CAAC","sourcesContent":["import gql from 'graphql-tag'\n\nimport { client } from '@operato/graphql'\n\nexport async function fetchPlayGroupList() {\n const response = await client.query({\n query: gql`\n {\n playGroups {\n items {\n id\n name\n description\n }\n total\n }\n }\n `\n })\n\n return response.data\n}\n\nexport async function fetchPlayGroup(groupId) {\n const response = await client.query({\n query: gql`\n query FetchPlayGroup($id: String!) {\n playGroup(id: $id) {\n id\n name\n description\n boards {\n id\n name\n description\n model\n thumbnail\n createdAt\n creator {\n id\n name\n }\n updatedAt\n updater {\n id\n name\n }\n }\n createdAt\n creator {\n id\n name\n }\n updatedAt\n updater {\n id\n name\n }\n }\n }\n `,\n variables: {\n id: groupId\n }\n })\n\n return response.data\n}\n\nexport async function createPlayGroup(group) {\n const { name, description } = group\n\n const response = await client.mutate({\n mutation: gql`\n mutation CreatePlayGroup($playGroup: NewPlayGroup!) {\n createPlayGroup(playGroup: $playGroup) {\n id\n name\n description\n createdAt\n updatedAt\n }\n }\n `,\n variables: {\n playGroup: { name, description }\n }\n })\n\n return response.data\n}\n\nexport async function updatePlayGroup(group) {\n const { id, name, description } = group\n\n const response = await client.mutate({\n mutation: gql`\n mutation UpdatePlayGroup($id: String!, $patch: PlayGroupPatch!) {\n updatePlayGroup(id: $id, patch: $patch) {\n id\n name\n description\n createdAt\n updatedAt\n }\n }\n `,\n variables: {\n id,\n patch: { name, description }\n }\n })\n\n return response.data\n}\n\nexport async function deletePlayGroup(id) {\n const response = await client.mutate({\n mutation: gql`\n mutation ($id: String!) {\n deletePlayGroup(id: $id)\n }\n `,\n variables: {\n id\n }\n })\n return response.data\n}\n\nexport async function joinPlayGroup(boardId, group) {\n const { id, name, description } = group\n\n const response = await client.mutate({\n mutation: gql`\n mutation JoinPlayGroup($id: String!, $boardIds: [String!]!) {\n joinPlayGroup(id: $id, boardIds: $boardIds) {\n id\n name\n description\n boards {\n id\n name\n description\n createdAt\n updatedAt\n }\n createdAt\n updatedAt\n }\n }\n `,\n variables: {\n id,\n boardIds: [boardId]\n }\n })\n\n return response.data\n}\n\nexport async function leavePlayGroup(boardId, groupId) {\n const response = await client.mutate({\n mutation: gql`\n mutation ($id: String!, $boardIds: [String]!) {\n leavePlayGroup(id: $id, boardIds: $boardIds) {\n id\n name\n description\n boards {\n id\n name\n description\n createdAt\n updatedAt\n }\n createdAt\n updatedAt\n }\n }\n `,\n variables: {\n id: groupId,\n boardIds: [boardId]\n }\n })\n\n return response.data\n}\n"]}
1
+ {"version":3,"file":"play-group.js","sourceRoot":"","sources":["../../client/graphql/play-group.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,aAAa,CAAA;AAE7B,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAEzC,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;QAClC,KAAK,EAAE,GAAG,CAAA;;;;;;;;;;;KAWT;KACF,CAAC,CAAA;IAEF,OAAO,QAAQ,CAAC,IAAI,CAAA;AACtB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAAO;IAC1C,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;QAClC,KAAK,EAAE,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAqCT;QACD,SAAS,EAAE;YACT,EAAE,EAAE,OAAO;SACZ;KACF,CAAC,CAAA;IAEF,OAAO,QAAQ,CAAC,IAAI,CAAA;AACtB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,KAAK;IACzC,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,KAAK,CAAA;IAEnC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;QACnC,QAAQ,EAAE,GAAG,CAAA;;;;;;;;;;KAUZ;QACD,SAAS,EAAE;YACT,SAAS,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;SACjC;KACF,CAAC,CAAA;IAEF,OAAO,QAAQ,CAAC,IAAI,CAAA;AACtB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,KAAK;IACzC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,KAAK,CAAA;IAEvC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;QACnC,QAAQ,EAAE,GAAG,CAAA;;;;;;;;;;KAUZ;QACD,SAAS,EAAE;YACT,EAAE;YACF,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;SAC7B;KACF,CAAC,CAAA;IAEF,OAAO,QAAQ,CAAC,IAAI,CAAA;AACtB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,EAAE;IACtC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;QACnC,QAAQ,EAAE,GAAG,CAAA;;;;KAIZ;QACD,SAAS,EAAE;YACT,EAAE;SACH;KACF,CAAC,CAAA;IACF,OAAO,QAAQ,CAAC,IAAI,CAAA;AACtB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAO,EAAE,KAAK;IAChD,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,KAAK,CAAA;IAEvC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;QACnC,QAAQ,EAAE,GAAG,CAAA;;;;;;;;;;;;;;;;;KAiBZ;QACD,SAAS,EAAE;YACT,EAAE;YACF,QAAQ,EAAE,CAAC,OAAO,CAAC;SACpB;KACF,CAAC,CAAA;IAEF,OAAO,QAAQ,CAAC,IAAI,CAAA;AACtB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAAO,EAAE,OAAO;IACnD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;QACnC,QAAQ,EAAE,GAAG,CAAA;;;;;;;;;;;;;;;;;KAiBZ;QACD,SAAS,EAAE;YACT,EAAE,EAAE,OAAO;YACX,QAAQ,EAAE,CAAC,OAAO,CAAC;SACpB;KACF,CAAC,CAAA;IAEF,OAAO,QAAQ,CAAC,IAAI,CAAA;AACtB,CAAC","sourcesContent":["import gql from 'graphql-tag'\n\nimport { client } from '@operato/graphql'\n\nexport async function fetchPlayGroupList() {\n const response = await client.query({\n query: gql`\n {\n playGroups {\n items {\n id\n name\n description\n }\n total\n }\n }\n `\n })\n\n return response.data\n}\n\nexport async function fetchPlayGroup(groupId) {\n const response = await client.query({\n query: gql`\n query FetchPlayGroup($id: String!) {\n playGroup(id: $id) {\n id\n name\n description\n boards {\n id\n name\n description\n model\n thumbnail\n state\n version\n createdAt\n creator {\n id\n name\n }\n updatedAt\n updater {\n id\n name\n }\n }\n createdAt\n creator {\n id\n name\n }\n updatedAt\n updater {\n id\n name\n }\n }\n }\n `,\n variables: {\n id: groupId\n }\n })\n\n return response.data\n}\n\nexport async function createPlayGroup(group) {\n const { name, description } = group\n\n const response = await client.mutate({\n mutation: gql`\n mutation CreatePlayGroup($playGroup: NewPlayGroup!) {\n createPlayGroup(playGroup: $playGroup) {\n id\n name\n description\n createdAt\n updatedAt\n }\n }\n `,\n variables: {\n playGroup: { name, description }\n }\n })\n\n return response.data\n}\n\nexport async function updatePlayGroup(group) {\n const { id, name, description } = group\n\n const response = await client.mutate({\n mutation: gql`\n mutation UpdatePlayGroup($id: String!, $patch: PlayGroupPatch!) {\n updatePlayGroup(id: $id, patch: $patch) {\n id\n name\n description\n createdAt\n updatedAt\n }\n }\n `,\n variables: {\n id,\n patch: { name, description }\n }\n })\n\n return response.data\n}\n\nexport async function deletePlayGroup(id) {\n const response = await client.mutate({\n mutation: gql`\n mutation ($id: String!) {\n deletePlayGroup(id: $id)\n }\n `,\n variables: {\n id\n }\n })\n return response.data\n}\n\nexport async function joinPlayGroup(boardId, group) {\n const { id, name, description } = group\n\n const response = await client.mutate({\n mutation: gql`\n mutation JoinPlayGroup($id: String!, $boardIds: [String!]!) {\n joinPlayGroup(id: $id, boardIds: $boardIds) {\n id\n name\n description\n boards {\n id\n name\n description\n createdAt\n updatedAt\n }\n createdAt\n updatedAt\n }\n }\n `,\n variables: {\n id,\n boardIds: [boardId]\n }\n })\n\n return response.data\n}\n\nexport async function leavePlayGroup(boardId, groupId) {\n const response = await client.mutate({\n mutation: gql`\n mutation ($id: String!, $boardIds: [String]!) {\n leavePlayGroup(id: $id, boardIds: $boardIds) {\n id\n name\n description\n boards {\n id\n name\n description\n createdAt\n updatedAt\n }\n createdAt\n updatedAt\n }\n }\n `,\n variables: {\n id: groupId,\n boardIds: [boardId]\n }\n })\n\n return response.data\n}\n"]}
@@ -2,6 +2,7 @@ export * from './pages/board-viewer-page.js';
2
2
  export * from './pages/board-player-page.js';
3
3
  export * from './pages/board-modeller-page.js';
4
4
  export * from './setting-let/board-view-setting-let.js';
5
+ export * from './setting-let/board-modeller-setting-let.js';
5
6
  export * from './apptools/favorite-tool.js';
6
7
  export * from './graphql/index.js';
7
8
  export * from './viewparts/index.js';
@@ -4,6 +4,7 @@ export * from './pages/board-modeller-page.js';
4
4
  /* AI 패치/액션의 things-scene in-place 적용기 — 순수 함수. 자체 모델러 셸을 가진 호스트
5
5
  * (예: operato-twin 의 트윈 모델러)가 같은 적용 규칙을 쓰도록 공개한다(중복 구현 금지). */
6
6
  export * from './setting-let/board-view-setting-let.js';
7
+ export * from './setting-let/board-modeller-setting-let.js';
7
8
  export * from './apptools/favorite-tool.js';
8
9
  export * from './graphql/index.js';
9
10
  export * from './viewparts/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../client/index.ts"],"names":[],"mappings":"AACA,cAAc,8BAA8B,CAAA;AAC5C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,gCAAgC,CAAA;AAC9C;+DAC+D;AAE/D,cAAc,yCAAyC,CAAA;AACvD,cAAc,6BAA6B,CAAA;AAC3C,cAAc,oBAAoB,CAAA;AAClC,cAAc,sBAAsB,CAAA","sourcesContent":["\nexport * from './pages/board-viewer-page.js'\nexport * from './pages/board-player-page.js'\nexport * from './pages/board-modeller-page.js'\n/* AI 패치/액션의 things-scene in-place 적용기 — 순수 함수. 자체 모델러 셸을 가진 호스트\n * (예: operato-twin 의 트윈 모델러)가 같은 적용 규칙을 쓰도록 공개한다(중복 구현 금지). */\n\nexport * from './setting-let/board-view-setting-let.js'\nexport * from './apptools/favorite-tool.js'\nexport * from './graphql/index.js'\nexport * from './viewparts/index.js'\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../client/index.ts"],"names":[],"mappings":"AACA,cAAc,8BAA8B,CAAA;AAC5C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,gCAAgC,CAAA;AAC9C;+DAC+D;AAE/D,cAAc,yCAAyC,CAAA;AACvD,cAAc,6CAA6C,CAAA;AAC3D,cAAc,6BAA6B,CAAA;AAC3C,cAAc,oBAAoB,CAAA;AAClC,cAAc,sBAAsB,CAAA","sourcesContent":["\nexport * from './pages/board-viewer-page.js'\nexport * from './pages/board-player-page.js'\nexport * from './pages/board-modeller-page.js'\n/* AI 패치/액션의 things-scene in-place 적용기 — 순수 함수. 자체 모델러 셸을 가진 호스트\n * (예: operato-twin 의 트윈 모델러)가 같은 적용 규칙을 쓰도록 공개한다(중복 구현 금지). */\n\nexport * from './setting-let/board-view-setting-let.js'\nexport * from './setting-let/board-modeller-setting-let.js'\nexport * from './apptools/favorite-tool.js'\nexport * from './graphql/index.js'\nexport * from './viewparts/index.js'\n"]}
@@ -1,70 +1,62 @@
1
+ import '@operato/data-grist';
2
+ import '@material/web/icon/icon.js';
3
+ import '@material/web/button/text-button.js';
4
+ import '../board-list/board-thumb.js';
1
5
  import '../viewparts/board-info.js';
2
6
  import '../viewparts/group-info.js';
3
- import '../board-list/board-tile-list.js';
4
- import '../board-list/group-bar.js';
7
+ import { FetchOption } from '@operato/data-grist';
5
8
  import { PageView } from '@operato/shell';
6
9
  declare const BoardListPageBase: typeof PageView;
7
10
  export declare class BoardListPage extends BoardListPageBase {
8
11
  static styles: import("lit").CSSResult[];
9
- groupId?: string;
10
12
  groups: any[];
11
- boards: any[];
12
13
  favorites: any[];
13
- showMainBoardOnly: boolean;
14
+ gristConfig: any;
14
15
  searchText: string;
15
- scrollTargetEl: HTMLElement;
16
- private _page;
17
- private _total;
18
- private page?;
19
- private _lastFetchTime?;
20
- private _updatedBoardIds;
16
+ private creatable;
17
+ private currentGroupId;
18
+ private grist;
21
19
  get context(): {
22
- title: {
23
- icon: string;
24
- text: string;
25
- };
20
+ title: string;
26
21
  search: {
22
+ placeholder: string;
27
23
  handler: (search: any) => void;
28
24
  value: string;
29
25
  };
30
26
  board_topmenu: boolean;
31
27
  };
32
- _infiniteScrollOptions: any;
33
- constructor();
34
28
  render(): import("lit-html").TemplateResult<1>;
29
+ pageInitialized(): Promise<void>;
30
+ fetchHandler({ page, limit, filters }: FetchOption): Promise<{
31
+ total: any;
32
+ records: any;
33
+ }>;
35
34
  refresh(): Promise<void>;
36
- showAllBoardType(e: any): void;
37
- getBoards({ page, limit }?: {
35
+ getBoards({ page, limit, groupId, types, states }?: {
38
36
  page?: number | undefined;
39
- limit?: any;
37
+ limit?: number | undefined;
38
+ groupId?: string | undefined;
39
+ types?: string[] | undefined;
40
+ states?: string[] | undefined;
40
41
  }): Promise<any>;
41
42
  /**
42
43
  * favor/mywork 같이 "search text + pagination"만 받는 간단한 리스트 조회 공용 헬퍼.
43
44
  * 그룹/타입 필터 등 복합 조건을 쓰는 일반 목록(getBoards)과 구분해 중복 제거.
44
45
  */
45
46
  private _fetchSimpleBoardList;
46
- getFavoriteBoards({ page, limit }?: {
47
+ getFavoriteBoards({ page, limit, types, states }?: {
47
48
  page?: number | undefined;
48
- limit?: any;
49
- }): Promise<any[]>;
50
- getMyBoards({ page, limit }?: {
49
+ limit?: number | undefined;
50
+ types?: string[] | undefined;
51
+ states?: string[] | undefined;
52
+ }): Promise<any>;
53
+ getMyBoards({ page, limit, types, states }?: {
51
54
  page?: number | undefined;
52
- limit?: any;
53
- }): Promise<any[]>;
55
+ limit?: number | undefined;
56
+ types?: string[] | undefined;
57
+ states?: string[] | undefined;
58
+ }): Promise<any>;
54
59
  refreshBoards(): Promise<void>;
55
- /**
56
- * 컨텐츠가 스크롤 영역을 채우지 못하면 다음 페이지를 자동 로드한다.
57
- */
58
- private _filling;
59
- private fillViewport;
60
- /**
61
- * 기존 목록을 유지하면서 변경된 보드만 갱신한다.
62
- * 스크롤 위치가 보존된다.
63
- */
64
- incrementalRefresh(): Promise<void>;
65
- appendBoards(): Promise<void>;
66
- scrollAction(): Promise<void>;
67
- pageInitialized(): Promise<void>;
68
60
  pageUpdated(changes: any, lifecycle: any): Promise<void>;
69
61
  private _unsubscribe?;
70
62
  connectedCallback(): void;
@@ -81,9 +73,9 @@ export declare class BoardListPage extends BoardListPageBase {
81
73
  files: any;
82
74
  overwrite: any;
83
75
  }): Promise<void>;
84
- onReorderBoards({ boardIds, movedId }: {
85
- boardIds: any;
86
- movedId: any;
76
+ onReorderBoards({ ids, movedId }: {
77
+ ids: string[];
78
+ movedId: string;
87
79
  }): Promise<void>;
88
80
  onCreateBoard(board: any): Promise<void>;
89
81
  onCloneBoard({ id, name, description, targetSubdomain, targetGroupId }: {
@@ -114,6 +106,11 @@ export declare class BoardListPage extends BoardListPageBase {
114
106
  description: any;
115
107
  visibility: any;
116
108
  }): Promise<void>;
109
+ toggleFavorite(board: any): Promise<void>;
110
+ /** Replaces one record in the grist in place, so only that card re-renders. */
111
+ private patchRecord;
112
+ removeFavorite(boardId: any): Promise<void>;
113
+ addFavorite(boardId: any): Promise<void>;
117
114
  refreshFavorites(): Promise<void>;
118
115
  }
119
116
  export {};