@things-factory/meta-ui 6.2.122 → 6.2.126
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/client/actions/main.js +4 -4
- package/client/bootstrap.js +11 -0
- package/client/component/filter/filter-form-meta-code-select.js +10 -10
- package/client/component/filter/filter-form-meta-object-select.js +10 -10
- package/client/component/filter/filter-grist-meta-code-select.js +10 -10
- package/client/component/filter/filter-grist-meta-object-select.js +10 -10
- package/client/component/grist/editor/grist-editor-code-input.js +6 -6
- package/client/component/grist/editor/grist-editor-meta-code-selector.js +7 -7
- package/client/component/grist/editor/grist-editor-meta-object-selector.js +8 -8
- package/client/component/grist/renderer/grist-renderer-code-input.js +1 -1
- package/client/component/grist/renderer/grist-renderer-meta-code-selector.js +1 -1
- package/client/component/grist/renderer/grist-renderer-meta-object-selector.js +1 -1
- package/client/component/popup/code-input-editor-popup.js +10 -10
- package/client/component/popup/file-upload-popup.js +11 -11
- package/client/component/popup/meta-object-selector-popup.js +11 -11
- package/client/component/popup/record-based-code-editor-popup.js +11 -11
- package/client/mixin/meta-base-mixin.js +1 -1
- package/client/mixin/meta-basic-grist-mixin.js +4 -4
- package/client/mixin/meta-button-mixin.js +1 -1
- package/client/mixin/meta-form-mixin.js +1 -1
- package/client/mixin/meta-grist-tab-mixin.js +1 -1
- package/client/mixin/meta-main-tab-mixin.js +1 -1
- package/client/mixin/meta-master-detail-mixin.js +1 -1
- package/client/mixin/meta-service-mixin.js +1 -1
- package/client/mixin/meta-tab-detail-mixin.js +1 -1
- package/client/mixin/meta-tab-mixin.js +1 -1
- package/client/pages/activity/meta-activity-define-page.js +15 -358
- package/client/pages/activity/meta-activity-list-page.js +6 -6
- package/client/pages/activity/meta-activity-viewer-element.js +3 -3
- package/client/pages/activity/meta-activity-writer-element.js +3 -3
- package/client/pages/activity/meta-activiy-mixin.js +3 -3
- package/client/pages/button-role/button-role-detail.js +1 -1
- package/client/pages/button-role/button-role-page.js +1 -1
- package/client/pages/doc-number/doc-number-page.js +1 -1
- package/client/pages/doc-number/next-doc-number-popup.js +1 -1
- package/client/pages/entity/config-entity.js +29 -29
- package/client/pages/entity/main-menu-selector.js +8 -8
- package/client/pages/history/history-copy-list-popup.js +6 -6
- package/client/pages/history/history-json-list-popup.js +6 -6
- package/client/pages/loading-page.js +5 -5
- package/client/pages/menu/dynamic-menu-setting-let.js +6 -6
- package/client/pages/menu/dynamic-menu-template.js +7 -7
- package/client/pages/menu/dynamic-menu.js +16 -16
- package/client/pages/menu/export-menu-popup.js +7 -7
- package/client/pages/meta-form-element.js +1 -1
- package/client/pages/meta-grist-element.js +1 -1
- package/client/pages/meta-grist-page.js +1 -1
- package/client/pages/meta-grist-tab-element.js +1 -1
- package/client/pages/meta-grist-tab-page.js +1 -1
- package/client/pages/meta-main-tab-element.js +1 -1
- package/client/pages/meta-main-tab-page.js +1 -1
- package/client/pages/meta-master-detail-element.js +1 -1
- package/client/pages/meta-master-detail-page.js +1 -1
- package/client/pages/meta-tab-detail-element.js +1 -1
- package/client/pages/meta-tab-detail-page.js +1 -1
- package/client/pages/meta-tab-element.js +1 -1
- package/client/pages/personalize/personal-column-selector.js +11 -11
- package/client/pages/printer-device/printer-device-page.js +1 -1
- package/client/pages/template/doc-template-page.js +1 -1
- package/client/pages/template/template-file-page.js +1 -1
- package/client/pages/terms/config-terminology.js +6 -6
- package/client/pages/work-code/work-code-detail-popup.js +1 -1
- package/client/pages/work-code/work-code-page.js +1 -1
- package/client/reducers/main.js +1 -1
- package/client/utils/grist-default-value.js +1 -1
- package/client/utils/meta-api.js +1 -1
- package/client/utils/meta-crypto.js +1 -1
- package/client/utils/meta-ui-util.js +675 -2889
- package/client/utils/service-util.js +51 -35
- package/client/utils/terms-util.js +2 -2
- package/client/utils/ui-util.js +1 -1
- package/client/utils/value-util.js +1 -1
- package/client/viewparts/dynamic-menu-landscape-styles.js +1 -1
- package/client/viewparts/dynamic-menu-landscape.js +12 -12
- package/client/viewparts/dynamic-menu-part.js +12 -12
- package/client/viewparts/dynamic-menu-portrait-styles.js +2 -2
- package/client/viewparts/dynamic-menu-portrait.js +10 -10
- package/client/viewparts/dynamic-top-menu-bar.js +8 -8
- package/package.json +5 -5
package/client/actions/main.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
<mwc-icon @click=${
|
|
1
|
+
import"../viewparts/dynamic-menu-part";import"@material/mwc-icon";import gql from"graphql-tag";import{html}from"lit";import{client}from"@operato/graphql";import{appendViewpart,toggleOverlay,TOOL_POSITION,VIEWPART_POSITION}from"@operato/layout";import{store}from"@operato/shell";import{isMobileDevice}from"@operato/utils";import{APPEND_APP_TOOL,REMOVE_APP_TOOL}from"@things-factory/apptool-base";import{clientSettingStore}from"@things-factory/shell";export const UPDATE_META_UI="UPDATE_META_UI";export const UPDATE_META_MENU_TEMPLATE="UPDATE_META_MENU_TEMPLATE";var HAMBURGER;export async function setupMenuPart(e){var{hovering:t=!!isMobileDevice(),slotTemplate:a,portraitSlotTemplate:i,landscapeSlotTemplate:o,position:r=VIEWPART_POSITION.NAVBAR}=e||{};const{hovering:n}=(await clientSettingStore.get("dynamic-menu"))?.value||{};void 0!==n&&(t=n);const p=r==VIEWPART_POSITION.HEADERBAR?"landscape":"portrait",l=("landscape"==p?o:i)||a||html``;appendViewpart({name:"dynamic-menu-part",viewpart:{show:!t,resizable:!0,hovering:!!isMobileDevice()||t,template:html`<dynamic-menu-part .orientation=${p}>${l}</dynamic-menu-part>`},position:r}),t&&"portrait"==p?HAMBURGER||(HAMBURGER={name:"hamburger",template:html`
|
|
2
|
+
<mwc-icon @click=${e=>toggleOverlay("dynamic-menu-part",{backdrop:!0})}
|
|
3
3
|
>view_headline</mwc-icon>
|
|
4
|
-
`,
|
|
4
|
+
`,position:TOOL_POSITION.FRONT_END},store.dispatch({type:APPEND_APP_TOOL,tool:HAMBURGER})):HAMBURGER&&(store.dispatch({type:REMOVE_APP_TOOL,name:"hamburger"}),HAMBURGER=null)}export async function updateMenuTemplate(e){var t=document.querySelector('meta[name="application-name"]')?.content,a=(await client.query({query:gql`
|
|
5
5
|
query ($filters: [Filter!], $sortings: [Sorting!]) {
|
|
6
6
|
liteMenus: liteMenus(filters: $filters
|
|
7
7
|
sortings: $sortings) {
|
|
@@ -20,4 +20,4 @@ const a0_0x58b458=a0_0x251c;(function(_0x29ecac,_0x396f71){const _0x330c26=a0_0x
|
|
|
20
20
|
total
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
|
-
`,
|
|
23
|
+
`,variables:{filters:[{name:"active",operator:"eq",value:!0},{name:"appName",operator:"in",value:["",t]}],sortings:[{name:"rank",desc:!1}]}})).data.liteMenus.items;store.dispatch({type:UPDATE_META_MENU_TEMPLATE,addon:a.filter((e=>!e.appName||e.appName===t)),template:e})}
|
package/client/bootstrap.js
CHANGED
|
@@ -179,6 +179,17 @@ export default function bootstrap() {
|
|
|
179
179
|
}
|
|
180
180
|
})
|
|
181
181
|
|
|
182
|
+
store.dispatch({
|
|
183
|
+
type: ADD_MORENDA,
|
|
184
|
+
morenda: {
|
|
185
|
+
icon: html` <mwc-icon>dataset</mwc-icon> `,
|
|
186
|
+
name: html` <ox-i18n msgid="text.attribute management"></ox-i18n> `,
|
|
187
|
+
action: () => {
|
|
188
|
+
navigate('attributes')
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
})
|
|
192
|
+
|
|
182
193
|
// 8. 모든 routes 정보 추출
|
|
183
194
|
let allRoutes = menuRoutes.routes
|
|
184
195
|
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
|
|
1
|
+
import"../popup/meta-object-selector-popup";import{html}from"lit-html";import{openPopup}from"@operato/layout";import{TermsUtil}from"./../../utils/terms-util";function openMetaCodeSelector(e,t,o){var l=html`
|
|
2
2
|
<meta-object-selector-popup
|
|
3
|
-
.value=${
|
|
4
|
-
.options=${
|
|
5
|
-
.confirmCallback=${
|
|
3
|
+
.value=${t}
|
|
4
|
+
.options=${e.options}
|
|
5
|
+
.confirmCallback=${o}
|
|
6
6
|
></meta-object-selector-popup>
|
|
7
|
-
`;openPopup(
|
|
8
|
-
<input name='${
|
|
7
|
+
`;openPopup(l,{backdrop:!0,size:"large",title:e.options.selectorName?TermsUtil.tMenu(e.options.selectorName):TermsUtil.tTitle("select_item")})}export const FilterFormMetaCodeSelect=(e,t,o)=>{const l=e.options,p=l.codes&&l.codes.length>0?l.codes:void 0,{operator:a="eq"}=e;let i=t||"",r=t||"";if(l.dispField&&t&&p){let e=p.filter((e=>e.value==t));e&&e.length>0&&(r=e[0].display)}return"eq"===a?html`
|
|
8
|
+
<input name='${e.name}' .value=${i} type="text" hidden></input>
|
|
9
9
|
<input
|
|
10
10
|
type="text"
|
|
11
11
|
readonly
|
|
12
|
-
name='${
|
|
13
|
-
.value=${
|
|
14
|
-
@click=${
|
|
12
|
+
name='${e.name}_disp'
|
|
13
|
+
.value=${r}
|
|
14
|
+
@click=${p=>{p.stopPropagation();const i=p.target;openMetaCodeSelector(e,t,(t=>{let p=t?t[l.codeField]:"",r=p;if(t&&l.dispField){let e=l.dispField.split(",");r=t[e[0]],e.length>1&&(r+=`(${e.splice(1).map((e=>t[e])).join(",")})`)}i.value=r,("ox-grid-header"==o.tagName.toLowerCase()?o.renderRoot.querySelector(`[name="${e.name}"]`):o.renderRoot.querySelector(`form [name="${e.name}"]`)).value=p,i.dispatchEvent(new Event("change",{bubbles:!0})),i.dispatchEvent(new CustomEvent("filter-change",{bubbles:!0,composed:!0,detail:{name:e.name,operator:a,value:p}}))}))}}
|
|
15
15
|
/>
|
|
16
|
-
`:html
|
|
16
|
+
`:html``};
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
|
|
1
|
+
import"../popup/meta-object-selector-popup";import{html}from"lit-html";import{openPopup}from"@operato/layout";import{TermsUtil}from"./../../utils/terms-util";function openMetaObjectSelector(e,t,o){var l=html`
|
|
2
2
|
<meta-object-selector-popup
|
|
3
|
-
.value=${
|
|
4
|
-
.options=${
|
|
5
|
-
.confirmCallback=${
|
|
3
|
+
.value=${t}
|
|
4
|
+
.options=${e.options}
|
|
5
|
+
.confirmCallback=${o}
|
|
6
6
|
></meta-object-selector-popup>
|
|
7
|
-
`;openPopup(
|
|
8
|
-
<input name='${
|
|
7
|
+
`;openPopup(l,{backdrop:!0,size:"large",title:e.options.selectorName?TermsUtil.tMenu(e.options.selectorName):TermsUtil.tTitle("select_item")})}export const FilterFormMetaObjectSelect=(e,t,o)=>{const l=e.options,{operator:p="eq"}=e;let a=t?t.id:"",n="";if(t){let e=l.nameField.split(",");n=t[e[0]],e.length>1&&(n+=`(${e.splice(1).map((e=>t[e])).join(",")})`)}return"eq"===p?html`
|
|
8
|
+
<input name='${e.name}' .value=${a} type="text" hidden></input>
|
|
9
9
|
<input
|
|
10
10
|
type="text"
|
|
11
11
|
readonly
|
|
12
|
-
name='${
|
|
13
|
-
.value=${
|
|
14
|
-
@click=${
|
|
12
|
+
name='${e.name}_disp'
|
|
13
|
+
.value=${n}
|
|
14
|
+
@click=${a=>{a.stopPropagation();const n=a.target;openMetaObjectSelector(e,t,(t=>{let a=t?t.id:"",r="";if(t){let e=l.nameField.split(",");r=t[e[0]],e.length>1&&(r+=`(${e.splice(1).map((e=>t[e])).join(",")})`)}n.value=r,("ox-grid-header"==o.tagName.toLowerCase()?o.renderRoot.querySelector(`[name="${e.name}"]`):o.renderRoot.querySelector(`form [name="${e.name}"]`)).value=a,n.dispatchEvent(new Event("change",{bubbles:!0})),n.dispatchEvent(new CustomEvent("filter-change",{bubbles:!0,composed:!0,detail:{name:e.name,operator:p,value:a}}))}))}}
|
|
15
15
|
/>
|
|
16
|
-
`:html
|
|
16
|
+
`:html``};
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
|
|
1
|
+
import"../popup/meta-object-selector-popup";import{html}from"lit-html";import{openPopup}from"@operato/layout";import{TermsUtil}from"./../../utils/terms-util";function openMetaCodeSelector(e,t,o){var l=html`
|
|
2
2
|
<meta-object-selector-popup
|
|
3
|
-
.value=${
|
|
4
|
-
.options=${
|
|
5
|
-
.confirmCallback=${
|
|
3
|
+
.value=${t}
|
|
4
|
+
.options=${e.record.options}
|
|
5
|
+
.confirmCallback=${o}
|
|
6
6
|
></meta-object-selector-popup>
|
|
7
|
-
`;openPopup(
|
|
8
|
-
<input name='${
|
|
7
|
+
`;openPopup(l,{backdrop:!0,size:"large",title:e.record.options.selectorName?TermsUtil.tMenu(e.record.options.selectorName):TermsUtil.tTitle("select_item")})}export const FilterGristMetaCodeSelect=(e,t,o)=>{const l=e.filter,r=e.record.options,p=r.codes&&r.codes.length>0?r.codes:void 0,{operator:i="eq"}=l;let a=t||"",n=t||"";if(r.dispField&&t&&p){let e=p.filter((e=>e.value==t));e&&e.length>0&&(n=e[0].display)}return"eq"===i?html`
|
|
8
|
+
<input name='${e.name}' .value=${a} type="text" hidden></input>
|
|
9
9
|
<input
|
|
10
10
|
type="text"
|
|
11
11
|
readonly
|
|
12
|
-
name='${
|
|
13
|
-
.value=${
|
|
14
|
-
@click=${
|
|
12
|
+
name='${e.name}_disp'
|
|
13
|
+
.value=${n}
|
|
14
|
+
@click=${p=>{p.stopPropagation();const a=p.target;openMetaCodeSelector(e,t,(t=>{let p=t?t[r.codeField]:"",n=p;if(t&&r.dispField){let e=r.dispField.split(",");n=t[e[0]],e.length>1&&(n+=`(${e.splice(1).map((e=>t[e])).join(",")})`)}a.value=n,("ox-grid-header"==o.tagName.toLowerCase()?o.renderRoot.querySelector(`[name="${l.name}"]`):o.renderRoot.querySelector(`form [name="${l.name}"]`)).value=p,a.dispatchEvent(new Event("change",{bubbles:!0})),a.dispatchEvent(new CustomEvent("filter-change",{bubbles:!0,composed:!0,detail:{name:e.name,operator:i,value:p}}))}))}}
|
|
15
15
|
/>
|
|
16
|
-
`:html
|
|
16
|
+
`:html``};
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
|
|
1
|
+
import"../popup/meta-object-selector-popup";import{html}from"lit-html";import{openPopup}from"@operato/layout";import{TermsUtil}from"./../../utils/terms-util";function openMetaObjectSelector(e,t,o){var r=html`
|
|
2
2
|
<meta-object-selector-popup
|
|
3
|
-
.value=${
|
|
4
|
-
.options=${
|
|
5
|
-
.confirmCallback=${
|
|
3
|
+
.value=${t}
|
|
4
|
+
.options=${e.record.options}
|
|
5
|
+
.confirmCallback=${o}
|
|
6
6
|
></meta-object-selector-popup>
|
|
7
|
-
`;openPopup(
|
|
8
|
-
<input name='${
|
|
7
|
+
`;openPopup(r,{backdrop:!0,size:"large",title:e.record.options.selectorName?TermsUtil.tMenu(e.record.options.selectorName):TermsUtil.tTitle("select_item")})}export const FilterGristMetaObjectSelect=(e,t,o)=>{const r=e.filter,{operator:l="eq"}=r,p=e.record.options;let a=t?t.id:"",n="";if(t){let e=p.nameField.split(",");n=t[e[0]],e.length>1&&(n+=`(${e.splice(1).map((e=>t[e])).join(",")})`)}return"eq"===l?html`
|
|
8
|
+
<input name='${e.name}' .value=${a} type="text" hidden></input>
|
|
9
9
|
<input
|
|
10
10
|
type="text"
|
|
11
11
|
readonly
|
|
12
|
-
name='${
|
|
13
|
-
.value=${
|
|
14
|
-
@click=${
|
|
12
|
+
name='${e.name}_disp'
|
|
13
|
+
.value=${n}
|
|
14
|
+
@click=${a=>{a.stopPropagation();const n=a.target;openMetaObjectSelector(e,t,(t=>{let a=t?t.id:"",i="";if(t){let e=p.nameField.split(",");i=t[e[0]],e.length>1&&(i+=`(${e.splice(1).map((e=>t[e])).join(",")})`)}n.value=i,("ox-grid-header"==o.tagName.toLowerCase()?o.renderRoot.querySelector(`[name="${r.name}"]`):o.renderRoot.querySelector(`form [name="${r.name}"]`)).value=a,n.dispatchEvent(new Event("change",{bubbles:!0})),n.dispatchEvent(new CustomEvent("filter-change",{bubbles:!0,composed:!0,detail:{name:e.name,operator:l,value:a}}))}))}}
|
|
15
15
|
/>
|
|
16
|
-
`:html
|
|
16
|
+
`:html``};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
${
|
|
3
|
-
|
|
1
|
+
import{html}from"lit";import{OxGristEditor}from"@operato/data-grist";import{openPopup}from"@operato/layout";import{TermsUtil}from"../../../utils/terms-util";import"../../popup/code-input-editor-popup";export class GristEditorCodeInput extends OxGristEditor{static get properties(){return{value:Object,column:Object,record:Object,rowIndex:Number,field:Object,popup:Object}}get editorTemplate(){let t;return this.value&&(t="object"==typeof this.value?JSON.stringify(this.value,0,2):this.value,t=t.length>20?`${t.substring(0,20)}...`:t),html`
|
|
2
|
+
${t?html` <span tabindex="0" style="flex:1;">${t}</span> `:html`<span tabindex="0" ></span>`}
|
|
3
|
+
`}async firstUpdated(){super.firstUpdated()}_onclick(t){t.stopPropagation(),this.openEditor()}_onkeydown(t){"Enter"==t.key&&(t.stopPropagation(),this.openEditor())}openEditor(){this.popup&&delete this.popup;var t=html`
|
|
4
4
|
<code-input-editor-popup
|
|
5
|
-
.value=${this
|
|
6
|
-
.confirmCallback=${(
|
|
5
|
+
.value=${this.value}
|
|
6
|
+
.confirmCallback=${(t=>{this.dispatchEvent(new CustomEvent("field-change",{bubbles:!0,composed:!0,detail:{before:this.value,after:t?"object"==typeof this.value?JSON.parse(t):t:null,record:this.record,column:this.column,row:this.row}}))}).bind(this)}
|
|
7
7
|
></code-input-editor-popup>
|
|
8
|
-
`;this
|
|
8
|
+
`;this.popup=openPopup(t,{backdrop:!0,size:"large",title:TermsUtil.tTitle("code-editor")})}}customElements.define("grist-editor-code-input",GristEditorCodeInput);
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
${
|
|
3
|
-
|
|
1
|
+
import{html}from"lit";import{OxGristEditor}from"@operato/data-grist";import{openPopup}from"@operato/layout";import{TermsUtil}from"../../../utils/terms-util";import"../../popup/meta-object-selector-popup";export class GristEditorMetaCodeSelector extends OxGristEditor{static get properties(){return{value:Object,column:Object,record:Object,rowIndex:Number,field:Object,popup:Object}}get editorTemplate(){let e="";if(this.column.record&&this.column.record.options)if(this.column.record.options.dispField){let t=this.column.record.options.codes||[];if(this.value&&this.value.length>0){let o=t.filter((e=>e.value===this.value));e=o&&o.length>0?o[0].display:""}}else e=this.value;else e="";return html`
|
|
2
|
+
${e?html` <span tabindex="0" style="flex:1">${e}</span> `:html`<span tabindex="0"></span>`}
|
|
3
|
+
`}async firstUpdated(){super.firstUpdated()}_onclick(e){e.stopPropagation(),this.openSelector()}_onkeydown(e){"Enter"==e.key&&(e.stopPropagation(),this.openSelector())}openSelector(){this.popup&&delete this.popup;var{selectorName:e=TermsUtil.tTitle("select_item")}=this.column.record.options||{};var t=html`
|
|
4
4
|
<meta-object-selector-popup
|
|
5
|
-
.value=${this
|
|
6
|
-
.options=${this
|
|
7
|
-
.confirmCallback=${(
|
|
5
|
+
.value=${this.value}
|
|
6
|
+
.options=${this.column.record.options}
|
|
7
|
+
.confirmCallback=${(e=>{let t=this.column.record.options.codeField,o=this.column.record.options.dispField,i=this.column.record.options.fieldMap||{};if(this.column.record.options.codes||(this.column.record.options.codes=[]),e){let i=this.column.record.options.codes.filter((o=>o.value==e[t]));if(!i||0==i.length){let i=e[t];if(o){let t=o.split(",");i=e[t[0]],t.length>1&&(i+=`(${t.splice(1).map((t=>e[t])).join(",")})`)}this.column.record.options.codes.push({value:e[t],display:i})}}this.dispatchEvent(new CustomEvent("field-change",{bubbles:!0,composed:!0,detail:{before:this.value,after:e?e[t]:null,record:this.record,column:this.column,row:this.row}})),Object.keys(i).forEach((t=>{this.dispatchEvent(new CustomEvent("field-change",{bubbles:!0,composed:!0,detail:{before:this.record[i[t]],after:e?e[t]:null,record:this.record,column:{name:i[t]},row:this.row}}))}))}).bind(this)}
|
|
8
8
|
></meta-object-selector-popup>
|
|
9
|
-
`;this
|
|
9
|
+
`;this.popup=openPopup(t,{backdrop:!0,size:"large",title:TermsUtil.tMenu(e)})}}customElements.define("grist-editor-meta-code-selector",GristEditorMetaCodeSelector);
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
${this
|
|
3
|
-
|
|
1
|
+
import{html}from"lit";import{OxGristEditor}from"@operato/data-grist";import{openPopup}from"@operato/layout";import{TermsUtil}from"../../../utils/terms-util";import"../../popup/meta-object-selector-popup";export class GristEditorMetaObjectSelector extends OxGristEditor{static get properties(){return{value:Object,column:Object,record:Object,rowIndex:Number,field:Object,popup:Object}}get editorTemplate(){let e="";if(this.value&&this.column.record.options){let t=this.column.record.options.nameField.split(",");e=this.value[t[0]],t.length>1&&(e+=`(${t.splice(1).map((e=>this.value[e])).join(",")})`)}return html`
|
|
2
|
+
${this.value?html` <span tabindex="0" style="flex:1">${e}</span> `:html`<span tabindex="0">${e}</span>`}
|
|
3
|
+
`}async firstUpdated(){super.firstUpdated()}_onclick(e){e.stopPropagation(),this.openSelector()}_onkeydown(e){"Enter"==e.key&&(e.stopPropagation(),this.openSelector())}openSelector(){this.popup&&delete this.popup;var{selectorName:e=TermsUtil.tTitle("select_item")}=this.column.record.options||{};var t=html`
|
|
4
4
|
<meta-object-selector-popup
|
|
5
|
-
.value=${this
|
|
6
|
-
.options=${this
|
|
7
|
-
.record=${this
|
|
8
|
-
.confirmCallback=${(
|
|
5
|
+
.value=${this.value}
|
|
6
|
+
.options=${this.column.record.options}
|
|
7
|
+
.record=${this.record}
|
|
8
|
+
.confirmCallback=${(e=>{let t=this.column.record.options.fieldMap||{};this.dispatchEvent(new CustomEvent("field-change",{bubbles:!0,composed:!0,detail:{before:this.value,after:e||null,record:this.record,column:this.column,row:this.row}})),Object.keys(t).forEach((o=>{this.dispatchEvent(new CustomEvent("field-change",{bubbles:!0,composed:!0,detail:{before:this.record[t[o]],after:e?e[o]:null,record:this.record,column:{name:t[o]},row:this.row}}))}))}).bind(this)}
|
|
9
9
|
></meta-object-selector-popup>
|
|
10
|
-
`;this
|
|
10
|
+
`;this.popup=openPopup(t,{backdrop:!0,size:"large",title:TermsUtil.tMenu(e)})}}customElements.define("grist-editor-meta-object-selector",GristEditorMetaObjectSelector);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
import{html}from"lit";import{detectOverflow}from"@operato/utils";function onmouseover(t){const o=t.target;detectOverflow(o)&&o.setAttribute("data-tooltip",o.textContent)}function onmouseout(t){t.target.removeAttribute("data-tooltip")}export const GristRendererCodeInput=(t,o,e,r,n)=>{let s="";return t&&(s="object"==typeof t?JSON.stringify(t,0,2):t,s=s.length>20?`${s.substring(0,20)}...`:s),html`<span style='flex:1' @mouseover=${onmouseover} @mouseout=${onmouseout}>${s}</span>`};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
import{html}from"lit";import{detectOverflow}from"@operato/utils";function onmouseover(o){const e=o.target;detectOverflow(e)&&e.setAttribute("data-tooltip",e.textContent)}function onmouseout(o){o.target.removeAttribute("data-tooltip")}export const GristRendererMetaCodeSelector=(o,e,t,r,s)=>{let i="";if(e.record&&e.record.options)if(e.record.options.dispField){if(e.record.options.codes||(e.record.options.codes=[]),o&&o.length>0){let t=e.record.options.codes.filter((e=>e.value===o));i=t&&t.length>0?t[0].display:o}}else i=o;else i="";return html`<span @mouseover=${onmouseover} @mouseout=${onmouseout}>${i}</span>`};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
import{html}from"lit";import{detectOverflow}from"@operato/utils";function onmouseover(t){const o=t.target;detectOverflow(o)&&o.setAttribute("data-tooltip",o.textContent)}function onmouseout(t){t.target.removeAttribute("data-tooltip")}export const GristRendererMetaObjectSelector=(t,o,e,r,n)=>{let i="";if(t&&o.record.options){let e=o.record.options.nameField.split(",");i=t[e[0]],e.length>1&&(i+=`(${e.splice(1).map((o=>t[o])).join(",")})`)}return html`<span @mouseover=${onmouseover} @mouseout=${onmouseout}>${i}</span>`};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import{css,html,LitElement}from"lit";import{CommonGristStyles,ButtonContainerStyles}from"@operato/styles";import{TermsUtil}from"../../utils/terms-util";import{MetaApi}from"../../utils/meta-api";import"@operato/input/ox-input-code.js";import{closePopup}from"@operato/popup";export class CodeInputEditorPopup extends LitElement{static styles=[CommonGristStyles,ButtonContainerStyles,css`
|
|
2
2
|
:host {
|
|
3
3
|
display: flex;
|
|
4
4
|
flex-direction: column;
|
|
@@ -19,17 +19,17 @@ function a0_0x6834(_0xcc48b5,_0x1bef63){var _0x299217=a0_0x2992();return a0_0x68
|
|
|
19
19
|
display: flex;
|
|
20
20
|
margin-left: auto;
|
|
21
21
|
}
|
|
22
|
-
`];async
|
|
23
|
-
<ox-input-code mode="javascript" value=${this
|
|
22
|
+
`];async connectedCallback(){"object"==typeof this.value?this.codeVlaue=JSON.stringify(this.value,0,2):this.codeVlaue=this.value,await super.connectedCallback()}async firstUpdated(){await super.firstUpdated()}render(){return html`
|
|
23
|
+
<ox-input-code mode="javascript" value=${this.codeVlaue} tab-size="2" tab-as-space="true"></ox-input-code>
|
|
24
24
|
<div id="button-container" class="button-container">
|
|
25
|
-
<mwc-button raised label="${TermsUtil
|
|
26
|
-
@click=${this
|
|
25
|
+
<mwc-button raised label="${TermsUtil.tButton("empty")}" style="margin-left:7px;margin-top:7px;"
|
|
26
|
+
@click=${this.clickEmpty.bind(this)}>
|
|
27
27
|
</mwc-button>
|
|
28
|
-
<mwc-button raised label="${TermsUtil
|
|
29
|
-
@click=${this
|
|
28
|
+
<mwc-button raised label="${TermsUtil.tButton("cancel")}" style="margin-left:7px;margin-top:7px;"
|
|
29
|
+
@click=${this.clickCancel.bind(this)}>
|
|
30
30
|
</mwc-button>
|
|
31
|
-
<mwc-button raised label="${TermsUtil
|
|
32
|
-
@click=${this
|
|
31
|
+
<mwc-button raised label="${TermsUtil.tButton("confirm")}" style="margin-left:7px;margin-top:7px;"
|
|
32
|
+
@click=${this.clickConfirm.bind(this)}>
|
|
33
33
|
</mwc-button>
|
|
34
34
|
</div>
|
|
35
|
-
|
|
35
|
+
`}get codeEditor(){return this.shadowRoot.querySelector("ox-input-code")}async clickEmpty(t){this.confirmCallback&&this.confirmCallback(null),closePopup(this)}async clickCancel(t){closePopup(this)}async clickConfirm(t){this.codeVlaue!==this.codeEditor.value?this.changedValue(this.codeEditor.value):MetaApi.showToast("info",TermsUtil.tText("NOTHING_CHANGED"))}async changedValue(t){this.confirmCallback&&this.confirmCallback(t),closePopup(this)}}customElements.define("code-input-editor-popup",CodeInputEditorPopup);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import{client,gqlContext}from"@things-factory/shell";import{css,html,LitElement}from"lit";import{SingleColumnFormStyles}from"@things-factory/form-ui";import{CommonGristStyles,ButtonContainerStyles}from"@operato/styles";import gql from"graphql-tag";import{TermsUtil}from"../../utils/terms-util";import{ValueUtil}from"../../utils/value-util";import{ServiceUtil}from"../../utils/service-util";import{MetaApi}from"../../utils/meta-api";import{MetaUiUtil}from"../../utils/meta-ui-util";import{isMobileDevice}from"@operato/utils";import{closePopup}from"@operato/popup";class FileUploadPopup extends LitElement{static get styles(){return[SingleColumnFormStyles,css`
|
|
2
2
|
:host {
|
|
3
3
|
padding: 10px;
|
|
4
4
|
display: flex;
|
|
@@ -27,30 +27,30 @@ const a0_0x2b41f4=a0_0x3384;function a0_0x3384(_0x4e022e,_0x2f6be2){const _0x10d
|
|
|
27
27
|
.button-container > button:active {
|
|
28
28
|
background-color: var(--button-background-focus-color);
|
|
29
29
|
}
|
|
30
|
-
`]
|
|
30
|
+
`]}static get properties(){return{templateTypes:Array}}async connectedCallback(){super.connectedCallback(),this.templateTypes=await ServiceUtil.codeItems("TEMPLATE_TYPES")}render(){return html`
|
|
31
31
|
<div>
|
|
32
32
|
<form id="input-form" class="single-column-form">
|
|
33
33
|
<fieldset>
|
|
34
|
-
<legend>${TermsUtil
|
|
35
|
-
<label>${TermsUtil
|
|
34
|
+
<legend>${TermsUtil.tLabel("file_upload")}</legend>
|
|
35
|
+
<label>${TermsUtil.tLabel("file_upload")}</label>
|
|
36
36
|
<file-uploader custom-input id="uploadTemplate" name="attachments"></file-uploader>
|
|
37
37
|
|
|
38
|
-
<label>${TermsUtil
|
|
38
|
+
<label>${TermsUtil.tLabel("category")}</label>
|
|
39
39
|
<select name="category" required>
|
|
40
|
-
<option value="">${TermsUtil
|
|
41
|
-
${(this
|
|
40
|
+
<option value="">${TermsUtil.tText("please_select_upload_category")}</option>
|
|
41
|
+
${(this.templateTypes||[]).map((t=>{const{name:e,description:o}=t;return html` <option value="${e}">${e} ${o?` (${o})`:""}</option> `}))}
|
|
42
42
|
</select>
|
|
43
43
|
|
|
44
|
-
<label>${TermsUtil
|
|
44
|
+
<label>${TermsUtil.tLabel("description")}</label>
|
|
45
45
|
<input name="description" />
|
|
46
46
|
</fieldset>
|
|
47
47
|
</form>
|
|
48
48
|
</div>
|
|
49
49
|
|
|
50
50
|
<div class="button-container">
|
|
51
|
-
<mwc-button raised @click="${this
|
|
51
|
+
<mwc-button raised @click="${this._createAttachment}" label="${TermsUtil.tButton("create")}"></mwc-button>
|
|
52
52
|
</div>
|
|
53
|
-
|
|
53
|
+
`}get _template(){return this.renderRoot.querySelector("#uploadTemplate")}async _createAttachment(){try{const t=this._getAttachmentInfo();(await client.mutate({mutation:gql`
|
|
54
54
|
mutation ($attachment: NewAttachment!) {
|
|
55
55
|
createAttachment(attachment: $attachment) {
|
|
56
56
|
id
|
|
@@ -58,4 +58,4 @@ const a0_0x2b41f4=a0_0x3384;function a0_0x3384(_0x4e022e,_0x2f6be2){const _0x10d
|
|
|
58
58
|
path
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
|
-
`,
|
|
61
|
+
`,variables:{attachment:t},context:{...gqlContext(),hasUpload:!0}})).errors||(history.back(),this.dispatchEvent(new CustomEvent("template-uploaded",{bubbles:!0,composed:!0,cancelable:!0})))}catch(t){MetaApi.showAlertPopup("label.error",t.message,"error","confirm")}}_getAttachmentInfo(){if(this.renderRoot.querySelector("form").checkValidity())return{file:this._template.files[0],category:this._getInputByName("category").value,description:this._getInputByName("description").value};throw new Error(TermsUtil.tText("text.attachment_info_not_valid"))}_getInputByName(t){return this.renderRoot.querySelector(`select[name=${t}], input[name=${t}]`)}}window.customElements.define("file-upload-popup",FileUploadPopup);
|