@things-factory/board-ui 10.1.45 → 10.1.47

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 (39) hide show
  1. package/dist-client/pages/board-list-page.js +1 -1
  2. package/dist-client/pages/board-list-page.js.map +1 -1
  3. package/dist-client/pages/board-modeller-page.d.ts +13 -0
  4. package/dist-client/pages/board-modeller-page.js +43 -1
  5. package/dist-client/pages/board-modeller-page.js.map +1 -1
  6. package/dist-client/pages/board-template/board-template-list-page.js +1 -1
  7. package/dist-client/pages/board-template/board-template-list-page.js.map +1 -1
  8. package/dist-client/pages/play-list-page.js +1 -1
  9. package/dist-client/pages/play-list-page.js.map +1 -1
  10. package/dist-client/pages/theme/theme-list-page.js +2 -2
  11. package/dist-client/pages/theme/theme-list-page.js.map +1 -1
  12. package/dist-client/styles/board-card-styles.js +1 -4
  13. package/dist-client/styles/board-card-styles.js.map +1 -1
  14. package/dist-client/tsconfig.tsbuildinfo +1 -1
  15. package/dist-client/viewparts/board-basic-info.js +3 -24
  16. package/dist-client/viewparts/board-basic-info.js.map +1 -1
  17. package/dist-client/viewparts/board-info-link.js +1 -18
  18. package/dist-client/viewparts/board-info-link.js.map +1 -1
  19. package/dist-client/viewparts/board-info-template.js +1 -18
  20. package/dist-client/viewparts/board-info-template.js.map +1 -1
  21. package/dist-client/viewparts/board-template-info.d.ts +1 -0
  22. package/dist-client/viewparts/board-template-info.js +7 -12
  23. package/dist-client/viewparts/board-template-info.js.map +1 -1
  24. package/dist-client/viewparts/group-info-basic.d.ts +1 -0
  25. package/dist-client/viewparts/group-info-basic.js +6 -7
  26. package/dist-client/viewparts/group-info-basic.js.map +1 -1
  27. package/dist-client/viewparts/group-info-import.js +1 -1
  28. package/dist-client/viewparts/group-info-import.js.map +1 -1
  29. package/dist-client/viewparts/info-dialog-styles.js +12 -1
  30. package/dist-client/viewparts/info-dialog-styles.js.map +1 -1
  31. package/dist-client/viewparts/play-group-info-basic.d.ts +1 -0
  32. package/dist-client/viewparts/play-group-info-basic.js +6 -7
  33. package/dist-client/viewparts/play-group-info-basic.js.map +1 -1
  34. package/package.json +7 -7
  35. package/translations/en.json +0 -16
  36. package/translations/ja.json +88 -16
  37. package/translations/ko.json +0 -16
  38. package/translations/ms.json +94 -20
  39. package/translations/zh.json +89 -16
@@ -179,7 +179,18 @@ export const InfoFormStyles = css `
179
179
  color: var(--md-sys-color-on-surface);
180
180
  }
181
181
 
182
- .buttons [filler] {
182
+ /*
183
+ * A tool row inside a dialog's body or footer - a menu, a copy-link button, an import option. It is
184
+ * not the dialog's closing command row, which is <ox-popup-actions>; it only lines its tools up.
185
+ */
186
+ [tools] {
187
+ display: flex;
188
+ justify-content: flex-end;
189
+ align-items: center;
190
+ gap: var(--spacing-small, 4px);
191
+ }
192
+
193
+ [tools] [filler] {
183
194
  flex: 1;
184
195
  }
185
196
 
@@ -1 +1 @@
1
- {"version":3,"file":"info-dialog-styles.js","sourceRoot":"","sources":["../../client/viewparts/info-dialog-styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAEzB;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqDlC,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwHhC,CAAA","sourcesContent":["import { css } from 'lit'\n\n/**\n * The frame the three info dialogs share - board, group, play group.\n *\n * They open through openPopup (a centered card with its own title bar and close button), so this\n * owns only what is inside the card: an optional tab strip and a scrolling body. The tabs are the\n * underline kind the page title bar uses, not filled blocks - a filled tab strip inside a card\n * reads as a second header fighting the card's own.\n *\n * Height follows the card. A small card (the group forms) is content-sized; a medium card (board)\n * is viewport-sized, and the body scrolls inside it. Both work because the host takes 100% and\n * the body is the one flex child allowed to shrink.\n */\nexport const InfoDialogStyles = css`\n :host {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n box-sizing: border-box;\n /* One surface for every dialog; the theme sets --info-dialog-surface per scheme. */\n background-color: var(--info-dialog-surface, var(--md-sys-color-surface-container-lowest, var(--md-sys-color-surface)));\n color: var(--md-sys-color-on-surface);\n }\n\n [tab] {\n flex: none;\n display: flex;\n gap: var(--spacing-large, 16px);\n padding: 0 var(--spacing-large, 16px);\n border-bottom: 1px solid var(--md-sys-color-outline-variant);\n }\n\n [tab] > span {\n padding: 10px 2px 8px;\n font-size: 0.78rem;\n font-weight: 500;\n letter-spacing: 0.03em;\n text-transform: uppercase;\n color: var(--md-sys-color-on-surface-variant);\n border-bottom: 2px solid transparent;\n cursor: pointer;\n user-select: none;\n }\n\n [tab] > span:hover {\n color: var(--md-sys-color-on-surface);\n }\n\n [tab] > span[active] {\n color: var(--md-sys-color-on-surface);\n border-bottom-color: var(--md-sys-color-primary);\n }\n\n [content] {\n flex: 1;\n min-height: 0;\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n }\n\n [content] > * {\n flex: 1;\n min-height: 0;\n }\n`\n\n/**\n * The one form vocabulary the group and play-group dialogs use on top of CommonPopupStyles:\n * a stack of fields, a quiet provenance line, and the action row. Kept next to the frame so the\n * two forms cannot drift apart again (they had: same form, two sets of margins and button kinds).\n */\nexport const InfoFormStyles = css`\n :host {\n --popup-min-width: 0;\n background: var(--info-dialog-surface, var(--ui-bg, #ffffff));\n }\n\n .fields {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-medium, 8px);\n }\n\n /*\n * Inputs lighter than Material's filled field: a label over a thin-bordered box, the way the\n * suite's own create-domain popup draws them. The filled field's grey slab and underline made a\n * two-field dialog look heavier than the page behind it.\n */\n .fields label {\n display: flex;\n flex-direction: column;\n gap: 4px;\n font-size: var(--popup-font-size-small);\n color: var(--md-sys-color-on-surface-variant);\n /* Translations arrive in mixed case (\"Name\", \"description\"); one case for one form. */\n text-transform: capitalize;\n }\n\n .fields label > input,\n .fields label > textarea,\n .fields label > select {\n text-transform: none;\n }\n\n /* A button whose label comes from a lower-case translation (\"save\") says so with [cap]; labels\n * written in sentence case here (\"Open in modeller\") are left alone. */\n md-filled-button[cap],\n md-outlined-button[cap],\n md-text-button[cap] {\n text-transform: capitalize;\n }\n\n .fields input,\n .fields textarea,\n .fields select {\n box-sizing: border-box;\n width: 100%;\n padding: 8px 10px;\n border: 1px solid var(--md-sys-color-outline-variant);\n border-radius: var(--md-sys-shape-corner-small, 6px);\n background-color: var(--md-sys-color-surface);\n color: var(--md-sys-color-on-surface);\n font: inherit;\n font-size: var(--popup-font-size);\n }\n\n .fields input:focus,\n .fields textarea:focus,\n .fields select:focus {\n outline: none;\n border-color: var(--md-sys-color-primary);\n box-shadow: 0 0 0 2px color-mix(in srgb, var(--md-sys-color-primary) 18%, transparent);\n }\n\n /* A section's name: small caps in the muted tone, never a heading competing with the title bar. */\n .section {\n margin-top: var(--spacing-medium, 8px);\n font-size: 0.7rem;\n font-weight: 600;\n letter-spacing: 0.06em;\n text-transform: uppercase;\n color: var(--md-sys-color-on-surface-variant);\n }\n\n /* Read-only value with a copy affordance beside it (a link, an id). */\n .copyable {\n display: flex;\n align-items: center;\n gap: var(--spacing-small, 4px);\n }\n\n .copyable input {\n flex: 1;\n min-width: 0;\n font-family: ui-monospace, SFMono-Regular, Menlo, monospace;\n font-size: 0.76rem;\n color: var(--md-sys-color-on-surface-variant);\n background: var(--md-sys-color-surface-container-low);\n }\n\n .copyable md-icon-button {\n --md-icon-button-icon-color: var(--md-sys-color-on-surface-variant);\n --md-icon-button-icon-size: 18px;\n }\n\n /* Who made it and when - a side note under the fields, never a row of its own with icons. */\n .provenance {\n display: flex;\n flex-wrap: wrap;\n gap: 2px var(--spacing-large, 16px);\n color: var(--md-sys-color-on-surface-variant);\n font-size: var(--popup-font-size-small);\n line-height: var(--popup-line-height);\n }\n\n .provenance b {\n font-weight: 500;\n color: var(--md-sys-color-on-surface);\n }\n\n .buttons [filler] {\n flex: 1;\n }\n\n /* The irreversible action is a quiet text button on the far left, in the error colour. */\n md-text-button[danger] {\n --md-text-button-label-text-color: var(--md-sys-color-error);\n --md-text-button-icon-color: var(--md-sys-color-error);\n --md-text-button-hover-label-text-color: var(--md-sys-color-error);\n --md-text-button-hover-state-layer-color: var(--md-sys-color-error);\n }\n`\n"]}
1
+ {"version":3,"file":"info-dialog-styles.js","sourceRoot":"","sources":["../../client/viewparts/info-dialog-styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAEzB;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqDlC,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmIhC,CAAA","sourcesContent":["import { css } from 'lit'\n\n/**\n * The frame the three info dialogs share - board, group, play group.\n *\n * They open through openPopup (a centered card with its own title bar and close button), so this\n * owns only what is inside the card: an optional tab strip and a scrolling body. The tabs are the\n * underline kind the page title bar uses, not filled blocks - a filled tab strip inside a card\n * reads as a second header fighting the card's own.\n *\n * Height follows the card. A small card (the group forms) is content-sized; a medium card (board)\n * is viewport-sized, and the body scrolls inside it. Both work because the host takes 100% and\n * the body is the one flex child allowed to shrink.\n */\nexport const InfoDialogStyles = css`\n :host {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n box-sizing: border-box;\n /* One surface for every dialog; the theme sets --info-dialog-surface per scheme. */\n background-color: var(--info-dialog-surface, var(--md-sys-color-surface-container-lowest, var(--md-sys-color-surface)));\n color: var(--md-sys-color-on-surface);\n }\n\n [tab] {\n flex: none;\n display: flex;\n gap: var(--spacing-large, 16px);\n padding: 0 var(--spacing-large, 16px);\n border-bottom: 1px solid var(--md-sys-color-outline-variant);\n }\n\n [tab] > span {\n padding: 10px 2px 8px;\n font-size: 0.78rem;\n font-weight: 500;\n letter-spacing: 0.03em;\n text-transform: uppercase;\n color: var(--md-sys-color-on-surface-variant);\n border-bottom: 2px solid transparent;\n cursor: pointer;\n user-select: none;\n }\n\n [tab] > span:hover {\n color: var(--md-sys-color-on-surface);\n }\n\n [tab] > span[active] {\n color: var(--md-sys-color-on-surface);\n border-bottom-color: var(--md-sys-color-primary);\n }\n\n [content] {\n flex: 1;\n min-height: 0;\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n }\n\n [content] > * {\n flex: 1;\n min-height: 0;\n }\n`\n\n/**\n * The one form vocabulary the group and play-group dialogs use on top of CommonPopupStyles:\n * a stack of fields, a quiet provenance line, and the action row. Kept next to the frame so the\n * two forms cannot drift apart again (they had: same form, two sets of margins and button kinds).\n */\nexport const InfoFormStyles = css`\n :host {\n --popup-min-width: 0;\n background: var(--info-dialog-surface, var(--ui-bg, #ffffff));\n }\n\n .fields {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-medium, 8px);\n }\n\n /*\n * Inputs lighter than Material's filled field: a label over a thin-bordered box, the way the\n * suite's own create-domain popup draws them. The filled field's grey slab and underline made a\n * two-field dialog look heavier than the page behind it.\n */\n .fields label {\n display: flex;\n flex-direction: column;\n gap: 4px;\n font-size: var(--popup-font-size-small);\n color: var(--md-sys-color-on-surface-variant);\n /* Translations arrive in mixed case (\"Name\", \"description\"); one case for one form. */\n text-transform: capitalize;\n }\n\n .fields label > input,\n .fields label > textarea,\n .fields label > select {\n text-transform: none;\n }\n\n /* A button whose label comes from a lower-case translation (\"save\") says so with [cap]; labels\n * written in sentence case here (\"Open in modeller\") are left alone. */\n md-filled-button[cap],\n md-outlined-button[cap],\n md-text-button[cap] {\n text-transform: capitalize;\n }\n\n .fields input,\n .fields textarea,\n .fields select {\n box-sizing: border-box;\n width: 100%;\n padding: 8px 10px;\n border: 1px solid var(--md-sys-color-outline-variant);\n border-radius: var(--md-sys-shape-corner-small, 6px);\n background-color: var(--md-sys-color-surface);\n color: var(--md-sys-color-on-surface);\n font: inherit;\n font-size: var(--popup-font-size);\n }\n\n .fields input:focus,\n .fields textarea:focus,\n .fields select:focus {\n outline: none;\n border-color: var(--md-sys-color-primary);\n box-shadow: 0 0 0 2px color-mix(in srgb, var(--md-sys-color-primary) 18%, transparent);\n }\n\n /* A section's name: small caps in the muted tone, never a heading competing with the title bar. */\n .section {\n margin-top: var(--spacing-medium, 8px);\n font-size: 0.7rem;\n font-weight: 600;\n letter-spacing: 0.06em;\n text-transform: uppercase;\n color: var(--md-sys-color-on-surface-variant);\n }\n\n /* Read-only value with a copy affordance beside it (a link, an id). */\n .copyable {\n display: flex;\n align-items: center;\n gap: var(--spacing-small, 4px);\n }\n\n .copyable input {\n flex: 1;\n min-width: 0;\n font-family: ui-monospace, SFMono-Regular, Menlo, monospace;\n font-size: 0.76rem;\n color: var(--md-sys-color-on-surface-variant);\n background: var(--md-sys-color-surface-container-low);\n }\n\n .copyable md-icon-button {\n --md-icon-button-icon-color: var(--md-sys-color-on-surface-variant);\n --md-icon-button-icon-size: 18px;\n }\n\n /* Who made it and when - a side note under the fields, never a row of its own with icons. */\n .provenance {\n display: flex;\n flex-wrap: wrap;\n gap: 2px var(--spacing-large, 16px);\n color: var(--md-sys-color-on-surface-variant);\n font-size: var(--popup-font-size-small);\n line-height: var(--popup-line-height);\n }\n\n .provenance b {\n font-weight: 500;\n color: var(--md-sys-color-on-surface);\n }\n\n /*\n * A tool row inside a dialog's body or footer - a menu, a copy-link button, an import option. It is\n * not the dialog's closing command row, which is <ox-popup-actions>; it only lines its tools up.\n */\n [tools] {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n gap: var(--spacing-small, 4px);\n }\n\n [tools] [filler] {\n flex: 1;\n }\n\n /* The irreversible action is a quiet text button on the far left, in the error colour. */\n md-text-button[danger] {\n --md-text-button-label-text-color: var(--md-sys-color-error);\n --md-text-button-icon-color: var(--md-sys-color-error);\n --md-text-button-hover-label-text-color: var(--md-sys-color-error);\n --md-text-button-hover-state-layer-color: var(--md-sys-color-error);\n }\n`\n"]}
@@ -1,3 +1,4 @@
1
+ import '@operato/popup/ox-popup-actions.js';
1
2
  import '@material/web/icon/icon.js';
2
3
  import '@material/web/button/filled-button.js';
3
4
  import '@material/web/button/text-button.js';
@@ -1,4 +1,5 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
+ import '@operato/popup/ox-popup-actions.js';
2
3
  import '@material/web/icon/icon.js';
3
4
  import '@material/web/button/filled-button.js';
4
5
  import '@material/web/button/text-button.js';
@@ -36,24 +37,22 @@ let PlayGroupInfoBasic = class PlayGroupInfoBasic extends LitElement {
36
37
 
37
38
  ${this.playGroupId ? this.renderProvenance(playGroup) : ''}
38
39
 
39
- <div class="buttons">
40
+ <ox-popup-actions>
40
41
  ${this.playGroupId
41
42
  ? html `
42
- <md-text-button cap danger @click=${this.deletePlayGroup.bind(this)}>
43
+ <md-text-button slot="start" destructive cap @click=${this.deletePlayGroup.bind(this)}>
43
44
  <md-icon slot="icon">delete_outline</md-icon>${i18next.t('button.delete')}
44
45
  </md-text-button>
45
- <div filler></div>
46
- <md-filled-button cap @click=${this.updateGroup.bind(this)}>
46
+ <md-filled-button slot="confirm" cap @click=${this.updateGroup.bind(this)}>
47
47
  <md-icon slot="icon">save</md-icon>${i18next.t('button.save')}
48
48
  </md-filled-button>
49
49
  `
50
50
  : html `
51
- <div filler></div>
52
- <md-filled-button cap @click=${this.createPlayGroup.bind(this)}>
51
+ <md-filled-button slot="confirm" cap @click=${this.createPlayGroup.bind(this)}>
53
52
  <md-icon slot="icon">create_new_folder</md-icon>${i18next.t('button.create')}
54
53
  </md-filled-button>
55
54
  `}
56
- </div>
55
+ </ox-popup-actions>
57
56
  `;
58
57
  }
59
58
  renderProvenance(playGroup) {
@@ -1 +1 @@
1
- {"version":3,"file":"play-group-info-basic.js","sourceRoot":"","sources":["../../client/viewparts/play-group-info-basic.ts"],"names":[],"mappings":"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","sourcesContent":["import '@material/web/icon/icon.js'\nimport '@material/web/button/filled-button.js'\nimport '@material/web/button/text-button.js'\n\nimport { html, LitElement } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\n\nimport { i18next } from '@operato/i18n'\nimport { CommonPopupStyles } from '@operato/styles'\n\nimport { fetchPlayGroup } from '../graphql/index.js'\nimport { InfoFormStyles } from './info-dialog-styles.js'\n\n/** The play-group form - the same shape as group-info-basic.ts, on purpose. */\n@customElement('play-group-info-basic')\nexport class PlayGroupInfoBasic extends LitElement {\n static styles = [CommonPopupStyles, InfoFormStyles]\n\n @property({ type: String }) playGroupId?: string\n\n @state() playGroup: any = { name: '', description: '' }\n\n render() {\n const playGroup = this.playGroup || { name: '', description: '' }\n\n return html`\n <div class=\"fields\">\n <label>\n ${i18next.t('label.name')}\n <input type=\"text\" .value=${playGroup.name || ''} @change=${e => (this.playGroup.name = e.target.value)} autofocus />\n </label>\n\n <label>\n ${i18next.t('label.description')}\n <input\n type=\"text\"\n .value=${playGroup.description || ''}\n @change=${e => (this.playGroup.description = e.target.value)}\n />\n </label>\n </div>\n\n ${this.playGroupId ? this.renderProvenance(playGroup) : ''}\n\n <div class=\"buttons\">\n ${this.playGroupId\n ? html`\n <md-text-button cap danger @click=${this.deletePlayGroup.bind(this)}>\n <md-icon slot=\"icon\">delete_outline</md-icon>${i18next.t('button.delete')}\n </md-text-button>\n <div filler></div>\n <md-filled-button cap @click=${this.updateGroup.bind(this)}>\n <md-icon slot=\"icon\">save</md-icon>${i18next.t('button.save')}\n </md-filled-button>\n `\n : html`\n <div filler></div>\n <md-filled-button cap @click=${this.createPlayGroup.bind(this)}>\n <md-icon slot=\"icon\">create_new_folder</md-icon>${i18next.t('button.create')}\n </md-filled-button>\n `}\n </div>\n `\n }\n\n private renderProvenance(playGroup: any) {\n const when = (value?: string) => (value ? new Date(value).toLocaleString() : '')\n\n return html`\n <div class=\"provenance\">\n <span>${i18next.t('label.creator')} <b>${playGroup.creator?.name || '-'}</b> ${when(playGroup.createdAt)}</span>\n <span>${i18next.t('label.updater')} <b>${playGroup.updater?.name || '-'}</b> ${when(playGroup.updatedAt)}</span>\n </div>\n `\n }\n\n updated(changes) {\n if (changes.has('playGroupId')) {\n this.refresh()\n }\n }\n\n firstUpdated() {\n setTimeout(() => {\n ;(this.renderRoot.querySelector('input') as any)?.focus()\n }, 100)\n }\n\n async refresh() {\n if (!this.playGroupId) {\n this.playGroup = { name: '', description: '' }\n } else {\n const response = await fetchPlayGroup(this.playGroupId)\n this.playGroup = response.playGroup\n }\n }\n\n async createPlayGroup() {\n this.dispatchEvent(new CustomEvent('create-play-group', { detail: this.playGroup, bubbles: true, composed: true }))\n this.close()\n }\n\n async updateGroup() {\n this.dispatchEvent(new CustomEvent('update-play-group', { detail: this.playGroup, bubbles: true, composed: true }))\n this.close()\n }\n\n async deletePlayGroup() {\n this.dispatchEvent(new CustomEvent('delete-play-group', { detail: this.playGroup, bubbles: true, composed: true }))\n this.close()\n }\n\n close() {\n history.back()\n }\n}\n"]}
1
+ {"version":3,"file":"play-group-info-basic.js","sourceRoot":"","sources":["../../client/viewparts/play-group-info-basic.ts"],"names":[],"mappings":"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","sourcesContent":["import '@operato/popup/ox-popup-actions.js'\nimport '@material/web/icon/icon.js'\nimport '@material/web/button/filled-button.js'\nimport '@material/web/button/text-button.js'\n\nimport { html, LitElement } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\n\nimport { i18next } from '@operato/i18n'\nimport { CommonPopupStyles } from '@operato/styles'\n\nimport { fetchPlayGroup } from '../graphql/index.js'\nimport { InfoFormStyles } from './info-dialog-styles.js'\n\n/** The play-group form - the same shape as group-info-basic.ts, on purpose. */\n@customElement('play-group-info-basic')\nexport class PlayGroupInfoBasic extends LitElement {\n static styles = [CommonPopupStyles, InfoFormStyles]\n\n @property({ type: String }) playGroupId?: string\n\n @state() playGroup: any = { name: '', description: '' }\n\n render() {\n const playGroup = this.playGroup || { name: '', description: '' }\n\n return html`\n <div class=\"fields\">\n <label>\n ${i18next.t('label.name')}\n <input type=\"text\" .value=${playGroup.name || ''} @change=${e => (this.playGroup.name = e.target.value)} autofocus />\n </label>\n\n <label>\n ${i18next.t('label.description')}\n <input\n type=\"text\"\n .value=${playGroup.description || ''}\n @change=${e => (this.playGroup.description = e.target.value)}\n />\n </label>\n </div>\n\n ${this.playGroupId ? this.renderProvenance(playGroup) : ''}\n\n <ox-popup-actions>\n ${this.playGroupId\n ? html`\n <md-text-button slot=\"start\" destructive cap @click=${this.deletePlayGroup.bind(this)}>\n <md-icon slot=\"icon\">delete_outline</md-icon>${i18next.t('button.delete')}\n </md-text-button>\n <md-filled-button slot=\"confirm\" cap @click=${this.updateGroup.bind(this)}>\n <md-icon slot=\"icon\">save</md-icon>${i18next.t('button.save')}\n </md-filled-button>\n `\n : html`\n <md-filled-button slot=\"confirm\" cap @click=${this.createPlayGroup.bind(this)}>\n <md-icon slot=\"icon\">create_new_folder</md-icon>${i18next.t('button.create')}\n </md-filled-button>\n `}\n </ox-popup-actions>\n `\n }\n\n private renderProvenance(playGroup: any) {\n const when = (value?: string) => (value ? new Date(value).toLocaleString() : '')\n\n return html`\n <div class=\"provenance\">\n <span>${i18next.t('label.creator')} <b>${playGroup.creator?.name || '-'}</b> ${when(playGroup.createdAt)}</span>\n <span>${i18next.t('label.updater')} <b>${playGroup.updater?.name || '-'}</b> ${when(playGroup.updatedAt)}</span>\n </div>\n `\n }\n\n updated(changes) {\n if (changes.has('playGroupId')) {\n this.refresh()\n }\n }\n\n firstUpdated() {\n setTimeout(() => {\n ;(this.renderRoot.querySelector('input') as any)?.focus()\n }, 100)\n }\n\n async refresh() {\n if (!this.playGroupId) {\n this.playGroup = { name: '', description: '' }\n } else {\n const response = await fetchPlayGroup(this.playGroupId)\n this.playGroup = response.playGroup\n }\n }\n\n async createPlayGroup() {\n this.dispatchEvent(new CustomEvent('create-play-group', { detail: this.playGroup, bubbles: true, composed: true }))\n this.close()\n }\n\n async updateGroup() {\n this.dispatchEvent(new CustomEvent('update-play-group', { detail: this.playGroup, bubbles: true, composed: true }))\n this.close()\n }\n\n async deletePlayGroup() {\n this.dispatchEvent(new CustomEvent('delete-play-group', { detail: this.playGroup, bubbles: true, composed: true }))\n this.close()\n }\n\n close() {\n history.back()\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/board-ui",
3
- "version": "10.1.45",
3
+ "version": "10.1.47",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "dist-client/index.js",
6
6
  "things-factory": true,
@@ -37,17 +37,17 @@
37
37
  "@operato/i18n": "^10.0.0",
38
38
  "@operato/layout": "^10.0.0",
39
39
  "@operato/oops": "^10.0.0",
40
- "@operato/popup": "^10.0.0",
40
+ "@operato/popup": "^10.15.0",
41
41
  "@operato/pull-to-refresh": "^10.0.0",
42
42
  "@operato/scene-ops": "^10.14.1",
43
43
  "@operato/shell": "^10.0.0",
44
44
  "@operato/styles": "^10.0.0",
45
45
  "@operato/utils": "^10.0.0",
46
- "@things-factory/barcode-base": "^10.1.44",
47
- "@things-factory/board-ai": "^10.1.45",
48
- "@things-factory/fav-base": "^10.1.44",
49
- "@things-factory/setting-base": "^10.1.44",
46
+ "@things-factory/barcode-base": "^10.1.47",
47
+ "@things-factory/board-ai": "^10.1.47",
48
+ "@things-factory/fav-base": "^10.1.47",
49
+ "@things-factory/setting-base": "^10.1.47",
50
50
  "@things-factory/utils": "^10.1.20"
51
51
  },
52
- "gitHead": "d72e1fd1285797fcd7839d97a18e31f5bf076ae3"
52
+ "gitHead": "185f20d7d9a15715a0ee2757a6a8189ec36cfb9d"
53
53
  }
@@ -13,7 +13,6 @@
13
13
  "button.bring-forward": "bring forward",
14
14
  "button.bring-to-back": "bring to back",
15
15
  "button.bring-to-front": "bring to front",
16
- "button.cancel": "cancel",
17
16
  "button.cancel-request-confirm": "Re-Edit",
18
17
  "button.cancel-request-release": "Re-Edit",
19
18
  "button.change_password": "Change Password",
@@ -21,16 +20,10 @@
21
20
  "button.check-initialized": "Check Initialized Settings",
22
21
  "button.choose another": "choose another file",
23
22
  "button.clear": "Clear",
24
- "button.close": "Close",
25
- "button.confirm": "confirm",
26
- "button.copy": "copy",
27
23
  "button.copy to draft": "copy to draft",
28
24
  "button.copy-link": "Copy headless link",
29
- "button.create": "create",
30
25
  "button.create board": "create board",
31
26
  "button.decrease-font": "decrease font",
32
- "button.delete": "delete",
33
- "button.detail": "detail",
34
27
  "button.diff with draft": "diff with draft",
35
28
  "button.diff with previous": "diff with previous",
36
29
  "button.duplicate": "Duplicate…",
@@ -57,7 +50,6 @@
57
50
  "button.open-import": "Import",
58
51
  "button.open-modeller": "Open in modeller",
59
52
  "button.profile": "profile",
60
- "button.redo": "redo",
61
53
  "button.refresh": "refresh",
62
54
  "button.regenerate": "regenerate",
63
55
  "button.register-template": "register template",
@@ -73,7 +65,6 @@
73
65
  "button.retry": "retry",
74
66
  "button.revert-board-version": "revert version",
75
67
  "button.role-list": "Roles",
76
- "button.save": "save",
77
68
  "button.save as new board": "save as new board",
78
69
  "button.script": "script",
79
70
  "button.self-confirm": "Self confirm",
@@ -87,9 +78,7 @@
87
78
  "button.submit": "Submit",
88
79
  "button.toggle-property-panel": "toggle property panel",
89
80
  "button.toggle_sidebar": "Menu Toggle",
90
- "button.undo": "undo",
91
81
  "button.ungroup": "ungroup",
92
- "button.update": "update",
93
82
  "button.upload": "Upload",
94
83
  "button.version-up": "version up",
95
84
  "button.view": "view",
@@ -110,7 +99,6 @@
110
99
  "error.your license due date is x, please renewal your license!": "Your license due date is {x}, please renewal your license!",
111
100
  "error.your license is expired! expired date is [x]": "Your license is expired! Expired date is [{x}]",
112
101
  "error.your license is not valid in this host": "Your license is not valid in this host!",
113
- "field.email": "E-mail",
114
102
  "field.password": "password",
115
103
  "field.tags": "tags",
116
104
  "field.visibility": "visibility",
@@ -241,7 +229,6 @@
241
229
  "label.delay": "Delay",
242
230
  "label.delete": "Delete",
243
231
  "label.depth": "depth",
244
- "label.description": "description",
245
232
  "label.dimension": "dimension",
246
233
  "label.direction": "Direction",
247
234
  "label.disabled": "disabled",
@@ -398,7 +385,6 @@
398
385
  "label.move_to_admin": "Move to Administrator Page",
399
386
  "label.multi-axis": "Multi Axis",
400
387
  "label.multiple": "multiple",
401
- "label.name": "Name",
402
388
  "label.ndns": "No Data No Show",
403
389
  "label.ndnsp": "No Data No Spreading",
404
390
  "label.near": "Near",
@@ -736,7 +722,6 @@
736
722
  "text.latest": "latest",
737
723
  "text.leaved from play-group": "board '{board}' leaved from play-group '{playGroup}'",
738
724
  "text.link copied": "Link copied",
739
- "text.loading": "Loading...",
740
725
  "text.login_failure": "Login failure.",
741
726
  "text.model-overlay": "Because this label is status of {1} \n, you can not edit more.",
742
727
  "text.model-overlay-authority-not-allow-change": "Cause of your authority, you can not edit more.",
@@ -759,7 +744,6 @@
759
744
  "text.no difference from previous": "no difference from the previous version",
760
745
  "text.no existing files": "No drawing or image files found. Use the 'From New Drawing' tab to upload.",
761
746
  "text.no playgroup": "no playgroup is specified in the address, or the specified playgroup was not found.",
762
- "text.no released version information available": "no released version information available",
763
747
  "text.no templates": "No templates available.",
764
748
  "text.only-edit-status-label-can-be-deleted": "Only EDIT Status Label allow to be deleted!",
765
749
  "text.only-edit-status-label-can-be-saved": "Only authorized user and EDIT Status Label allow to be updated!",
@@ -16,21 +16,14 @@
16
16
  "button.bring-forward": "最前面へ移動",
17
17
  "button.bring-to-back": "背面へ移動",
18
18
  "button.bring-to-front": "前面へ移動",
19
- "button.cancel": "キャンセル",
20
19
  "button.cancel-request-confirm": "再編集",
21
20
  "button.cancel-request-release": "再編集",
22
21
  "button.change_password": "パスワード変更",
23
22
  "button.check": "チェック",
24
23
  "button.check-initialized": "初期化設定チェック",
25
24
  "button.clear": "フォーム リセット",
26
- "button.close": "閉じる",
27
- "button.confirm": "確認",
28
- "button.copy": "コピー",
29
25
  "button.copy to draft": "ドラフトにコピー",
30
- "button.create": "作成",
31
26
  "button.decrease-font": "フォント サイズ縮小",
32
- "button.delete": "削除",
33
- "button.detail": "詳細",
34
27
  "button.diff with draft": "ドラフトと比較",
35
28
  "button.diff with previous": "前のバージョンと比較",
36
29
  "button.edit": "修正",
@@ -52,7 +45,6 @@
52
45
  "button.new-group": "新しいグループ",
53
46
  "button.open-import": "読み込み",
54
47
  "button.profile": "プロフィール",
55
- "button.redo": "やり直す",
56
48
  "button.refresh": "リロード",
57
49
  "button.register-template": "テンプレートを登録",
58
50
  "button.reject": "拒む",
@@ -66,7 +58,6 @@
66
58
  "button.reset_password": "パスワード リセット",
67
59
  "button.revert-board-version": "バージョンを戻す",
68
60
  "button.role-list": "ロール",
69
- "button.save": "保存",
70
61
  "button.script": "スクリプト",
71
62
  "button.self-confirm": "自己配布",
72
63
  "button.send-backward": "最背面へ移動",
@@ -78,9 +69,7 @@
78
69
  "button.submit": "確認",
79
70
  "button.toggle-property-panel": "プロパティパネル表示/非表示",
80
71
  "button.toggle_sidebar": "メニュー トグル",
81
- "button.undo": "取り消す",
82
72
  "button.ungroup": "グループ解除",
83
- "button.update": "修正",
84
73
  "button.upload": "アップロード",
85
74
  "button.version-up": "バージョンアップ",
86
75
  "button.view": "見る",
@@ -217,7 +206,6 @@
217
206
  "label.delay": "遅延",
218
207
  "label.delete": "削除",
219
208
  "label.depth": "深さ",
220
- "label.description": "説明",
221
209
  "label.dimension": "大きさ",
222
210
  "label.direction": "方向",
223
211
  "label.disabled": "使用不能",
@@ -230,7 +218,6 @@
230
218
  "label.donut-style": "ドーナッツ スタイル",
231
219
  "label.draggable": "ドラッグ機能",
232
220
  "label.duration": "継続時間",
233
- "label.email": "メール",
234
221
  "label.email-id": "メールID",
235
222
  "label.email_address": "メール",
236
223
  "label.emphasize": "強調",
@@ -357,7 +344,6 @@
357
344
  "label.move_to_admin": "管理者ページに移動",
358
345
  "label.multi-axis": "2軸",
359
346
  "label.multiple": "多重",
360
- "label.name": "名前",
361
347
  "label.ndns": "No Data No Show",
362
348
  "label.ndnsp": "No Data No Spreading",
363
349
  "label.near": "Near",
@@ -683,7 +669,6 @@
683
669
  "text.no difference from draft": "ドラフトとの差分はありません",
684
670
  "text.no difference from previous": "前のバージョンとの差分はありません",
685
671
  "text.no playgroup": "アドレスに再生グループが指定されていないか、指定されたグループが見つかりませんでした。",
686
- "text.no released version information available": "リリースされたバージョン情報はありません",
687
672
  "text.only-edit-status-label-can-be-deleted": "編集状態のBoardのみ削除できます!",
688
673
  "text.only-edit-status-label-can-be-saved": "権限が付与されたユーザーと編集状態のBoardのみ修正できます!",
689
674
  "text.password_inited": "パスワード リセット",
@@ -749,5 +734,92 @@
749
734
  "title.update-preferences": "設定修正",
750
735
  "title.update-user": "ユーザー修正",
751
736
  "title.update-variable": "変数修正",
752
- "title.warn": "警告"
737
+ "title.warn": "警告",
738
+ "button.choose another": "別のファイルを選択",
739
+ "button.copy-link": "ヘッドレスリンクをコピー",
740
+ "button.create board": "新規ボード作成",
741
+ "button.duplicate": "複製…",
742
+ "button.export-json": "JSONでエクスポート",
743
+ "button.import another": "別の図面をインポート",
744
+ "button.open modeller": "モデラーを開く",
745
+ "button.open-modeller": "モデラーで開く",
746
+ "button.regenerate": "再リクエスト",
747
+ "button.retry": "再試行",
748
+ "button.save as new board": "新しいボードとして保存",
749
+ "button.start import": "変換開始",
750
+ "button.start over": "最初から",
751
+ "hint.choose variant": "同じ図面に対するAIの異なる解釈です。最も適切なものを選択してください。",
752
+ "hint.regenerate variants": "気に入る案がなければAIに再リクエスト",
753
+ "hint.user prompt": "任意 — 例:'FABリソグラフィ区域、中央の大きな四角形はstocker、細い直線はOHTレール'",
754
+ "label.ai analysis": "AI分析サマリー",
755
+ "label.ai client": "AIモデル",
756
+ "label.ai intent": "AIの意図 / 進め方",
757
+ "label.assembling": "ボード組み立て",
758
+ "label.binding": "データバインディング",
759
+ "label.board description": "ボード説明",
760
+ "label.categories": "カテゴリー",
761
+ "label.choose variant": "AI案の選択",
762
+ "label.completed": "完了",
763
+ "label.confidence": "信頼度",
764
+ "label.create board": "新規ボード作成",
765
+ "label.done": "完了",
766
+ "label.draft": "下書き",
767
+ "label.entities": "エンティティ",
768
+ "label.failed": "失敗",
769
+ "label.from-existing-drawing": "既存の図面から",
770
+ "label.from-new-drawing": "新しい図面から",
771
+ "label.from-scratch": "最初から",
772
+ "label.from-template": "テンプレートから",
773
+ "label.generic": "一般オブジェクト",
774
+ "label.image size": "画像サイズ",
775
+ "label.import progress": "変換の進行状況",
776
+ "label.mapping": "マッピング",
777
+ "label.matched": "マッピング済み",
778
+ "label.mimetype": "MIMEタイプ",
779
+ "label.modeller toolbar contextual": "選択対象の横にフローティング",
780
+ "label.modeller toolbar docked": "キャンバス上部に固定",
781
+ "label.modeller toolbar fixed": "すべてのツールを備えた基本ツールバー",
782
+ "label.new board name": "新しいボード名",
783
+ "label.no group": "(グループなし)",
784
+ "label.parsing": "解析",
785
+ "label.queued": "待機中",
786
+ "label.reasoning": "根拠",
787
+ "label.review": "確認",
788
+ "label.select file": "ファイル選択",
789
+ "label.upload": "アップロード",
790
+ "label.user hint": "ユーザーヒント",
791
+ "label.user prompt": "図面の説明 / 強調したい点",
792
+ "label.view type": "図面の種類",
793
+ "label.viewtype perspective-3d": "3Dレンダー / 鳥瞰図",
794
+ "label.viewtype photo": "写真",
795
+ "label.viewtype top-down": "平面図 (top-down)",
796
+ "label.warnings": "警告",
797
+ "placeholder.board description": "ボードの詳しい説明(任意)",
798
+ "placeholder.board name": "新しいボード",
799
+ "placeholder.search file": "ファイル名で検索",
800
+ "placeholder.search template": "テンプレートを検索",
801
+ "placeholder.user prompt": "図面についての補足説明を入力してください(任意)",
802
+ "text.appliance token needs security privilege": "アクセストークンを追加するには、ドメイン所有者であるか、セキュリティ照会権限が必要です。",
803
+ "text.board-template hint": "このボードを新しいボードの出発点として使えるよう、テンプレートとして保管します。",
804
+ "text.create board": "新規ボード作成",
805
+ "text.drop or click to upload": "図面をドラッグ&ドロップまたはクリック",
806
+ "text.duplicate": "複製",
807
+ "text.duplicate hint": "このボードを別のドメインまたはグループにコピーします。同じドメイン内では新しい名前を付けてください。",
808
+ "text.edit group": "編集",
809
+ "text.headless-link hint": "アプリケーションの枠なしで、このボードだけを全画面で開きます。ウォールディスプレイやキオスク用です。",
810
+ "text.import success": "ボードを作成しました",
811
+ "text.link copied": "リンクをコピーしました",
812
+ "text.modeller toolbar contextual": "選択したものに合うツールだけを表示します。上段には元に戻す、やり直し、フィット、プレビュー、パネルのみ残ります。",
813
+ "text.modeller toolbar docked": "同じ選択ツールをキャンバス上部中央に固定し、図形やハンドルを隠しません。",
814
+ "text.modeller toolbar fixed": "すべてのツールを上部の1行に常に表示します。",
815
+ "text.no existing files": "図面/画像ファイルがありません。「新しい図面から」タブを使用してください。",
816
+ "text.no templates": "テンプレートがありません。",
817
+ "text.perspective notice": "Perspective図面はfloor plan上の位置推定が難しいです — 位置精度が低い場合があるため、確認のうえ調整してください。",
818
+ "text.play-group membership applies at once": "プレイグループをタップすると、このボードがすぐに追加または削除されます。",
819
+ "text.plays in": "プレイグループ",
820
+ "text.save before release": "先に変更内容を保存してください",
821
+ "text.saving": "保存中...",
822
+ "text.updated by": "修正",
823
+ "text.uploading": "アップロード中...",
824
+ "title.create board": "新規ボード作成"
753
825
  }
@@ -16,7 +16,6 @@
16
16
  "button.bring-forward": "맨 앞으로 보내기",
17
17
  "button.bring-to-back": "뒤로 보내기",
18
18
  "button.bring-to-front": "앞으로 보내기",
19
- "button.cancel": "취소",
20
19
  "button.cancel-request-confirm": "재 편집",
21
20
  "button.cancel-request-release": "재 편집",
22
21
  "button.change_password": "비밀번호 변경",
@@ -24,16 +23,10 @@
24
23
  "button.check-initialized": "초기화 설정 체크",
25
24
  "button.choose another": "다른 파일 선택",
26
25
  "button.clear": "폼 리셋",
27
- "button.close": "닫기",
28
- "button.confirm": "확인",
29
- "button.copy": "복사",
30
26
  "button.copy to draft": "초안으로 복사",
31
27
  "button.copy-link": "헤드리스 링크 복사",
32
- "button.create": "생성",
33
28
  "button.create board": "새 보드 만들기",
34
29
  "button.decrease-font": "폰트 줄이기",
35
- "button.delete": "삭제",
36
- "button.detail": "상세",
37
30
  "button.diff with draft": "초안과 비교",
38
31
  "button.diff with previous": "앞 버전과 비교",
39
32
  "button.duplicate": "복제…",
@@ -60,7 +53,6 @@
60
53
  "button.open-import": "가져오기",
61
54
  "button.open-modeller": "모델러에서 열기",
62
55
  "button.profile": "프로필",
63
- "button.redo": "되돌리기",
64
56
  "button.refresh": "새로고침",
65
57
  "button.regenerate": "다시 요청",
66
58
  "button.register-template": "템플릿 등록",
@@ -76,7 +68,6 @@
76
68
  "button.retry": "다시 시도",
77
69
  "button.revert-board-version": "버전적용",
78
70
  "button.role-list": "역할",
79
- "button.save": "저장",
80
71
  "button.save as new board": "새 보드로 저장",
81
72
  "button.script": "스크립트",
82
73
  "button.self-confirm": "자가 배포",
@@ -91,9 +82,7 @@
91
82
  "button.submit": "확인",
92
83
  "button.toggle-property-panel": "프로퍼티 패널 표시/숨김",
93
84
  "button.toggle_sidebar": "메뉴 토글",
94
- "button.undo": "실행취소",
95
85
  "button.ungroup": "그룹 해제",
96
- "button.update": "수정",
97
86
  "button.upload": "업로드",
98
87
  "button.version-up": "버전 업",
99
88
  "button.view": "보기",
@@ -244,7 +233,6 @@
244
233
  "label.delay": "지연",
245
234
  "label.delete": "삭제",
246
235
  "label.depth": "깊이",
247
- "label.description": "설명",
248
236
  "label.dimension": "크기",
249
237
  "label.direction": "방향",
250
238
  "label.disabled": "사용불능",
@@ -259,7 +247,6 @@
259
247
  "label.draft": "초안",
260
248
  "label.draggable": "드래깅 기능",
261
249
  "label.duration": "지속 시간",
262
- "label.email": "이메일",
263
250
  "label.email-id": "이메일 ID",
264
251
  "label.email_address": "메일",
265
252
  "label.emphasize": "강조",
@@ -401,7 +388,6 @@
401
388
  "label.move_to_admin": "관리자 페이지로 이동",
402
389
  "label.multi-axis": "2축",
403
390
  "label.multiple": "다중",
404
- "label.name": "이름",
405
391
  "label.ndns": "No Data No Show",
406
392
  "label.ndnsp": "No Data No Spreading",
407
393
  "label.near": "Near",
@@ -739,7 +725,6 @@
739
725
  "text.latest": "최신",
740
726
  "text.leaved from play-group": "보드 '{board}'가 플레이그룹 '{playGroup}'에서 제거되었습니다",
741
727
  "text.link copied": "링크를 복사했습니다",
742
- "text.loading": "불러오는 중...",
743
728
  "text.login_failure": "로그인 실패.",
744
729
  "text.model-overlay": "이 Board는 {1} 상태이므로\n더 이상 수정할 수 없습니다.",
745
730
  "text.model-overlay-authority-not-allow-change": "등록하신 사용자는 수정권한이 없으므로\n더 이상 수정할 수 없습니다.",
@@ -762,7 +747,6 @@
762
747
  "text.no difference from previous": "앞 버전과 차이가 없습니다",
763
748
  "text.no existing files": "도면/이미지 파일이 없습니다. '새 도면에서' 탭을 이용하세요.",
764
749
  "text.no playgroup": "주소에 재생 그룹이 지정되지 않았거나, 지정된 그룹을 찾지 못했습니다.",
765
- "text.no released version information available": "배포된 버전이 없습니다",
766
750
  "text.no templates": "템플릿이 없습니다.",
767
751
  "text.only-edit-status-label-can-be-deleted": "편집 상태의 Board만 삭제할 수 있습니다!",
768
752
  "text.only-edit-status-label-can-be-saved": "권한이 부여된 사용자와 편집 상태의 Board만 수정할 수 있습니다!",