@things-factory/integration-ui 10.0.0-beta.92 → 10.0.0-beta.95

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-var-quick-editor.js","sourceRoot":"","sources":["../../client/viewparts/env-var-quick-editor.ts"],"names":[],"mappings":";AAAA,OAAO,uCAAuC,CAAA;AAC9C,OAAO,yCAAyC,CAAA;AAChD,OAAO,qCAAqC,CAAA;AAC5C,OAAO,gDAAgD,CAAA;AACvD,OAAO,4BAA4B,CAAA;AAEnC,OAAO,GAAG,MAAM,aAAa,CAAA;AAC7B,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAWjD;;;;;;;;;;GAUG;AAEI,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,QAAQ,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC;IAA7D;;QAiIL,qBAAqB;QACO,cAAS,GAAW,EAAE,CAAA;QAEjC,gBAAW,GAAW,EAAE,CAAA;QACxB,SAAI,GAAY,KAAK,CAAA;IAmLxC,CAAC;aAvTQ,WAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqHlB,AArHY,CAqHZ;IAiBD,iBAAiB;QACf,KAAK,CAAC,iBAAiB,EAAE,CAAA;QACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE,CAAA;IACjD,CAAC;IAED,IAAY,QAAQ;QAClB,OAAO,IAAI,CAAC,QAAQ,EAAE,IAAI,KAAK,QAAQ,IAAI,6BAA6B,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAA;IACrG,CAAC;IAED;;;;;OAKG;IACK,iBAAiB,CAAC,OAAgB,EAAE,WAAoB;QAC9D,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,IAAI,CAAA;;;;;;;;;;;;;OAaV,CAAA;QACH,CAAC;QACD,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,IAAI,CAAA;;;;;;qBAMI,IAAI,CAAC,UAAU,CAAC,gBAAgB,IAAI,QAAQ;;;;sBAI3C,IAAI,CAAC,UAAU,CAAC,gBAAgB,IAAI,QAAQ;;;OAG3D,CAAA;QACH,CAAC;QACD,OAAO,IAAI,CAAA;;;;;;;;;;;;;KAaV,CAAA;IACH,CAAC;IAED,IAAY,WAAW;QACrB,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,CAAA;QACjC,IAAI,CAAC,KAAK,OAAO;YAAE,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,yBAAyB,CAAC,IAAI,YAAY,EAAE,CAAA;QACrF,IAAI,CAAC,KAAK,WAAW;YACnB,OAAO,MAAM,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,IAAI,IAAI,KAAK,IAAI,CAAC,UAAU,CAAC,gBAAgB,IAAI,QAAQ,GAAG,CAAA;QAC3G,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,KAAK,EAAE,CAAA;IAClD,CAAC;IAED,MAAM;QACJ,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAA;QACnD,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,KAAK,WAAW,CAAA;QAE3D,OAAO,IAAI,CAAA;YACH,OAAO,CAAC,CAAC,CAAC,uBAAuB,CAAC,IAAI,QAAQ,MAAM,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI;;;2BAGhE,IAAI,CAAC,IAAI;;0CAEM,IAAI,CAAC,UAAU,EAAE,MAAM,IAAI,QAAQ,IAAI,IAAI,CAAC,WAAW;;UAEvF,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,WAAW,CAAC;;;kBAGpC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC;iBACzB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM;mBACjC,IAAI,CAAC,WAAW;mBAChB,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;sBAC5C,IAAI,CAAC,IAAI;;;;;UAKrB,OAAO;YACP,CAAC,CAAC,IAAI,CAAA,0BAA0B,IAAI,CAAC,OAAO,cAAc,IAAI,CAAC,IAAI;gBAC7D,OAAO,CAAC,CAAC,CAAC,gCAAgC,CAAC,IAAI,YAAY;8BAC7C;YACpB,CAAC,CAAC,EAAE;qCACuB,IAAI,CAAC,OAAO,cAAc,IAAI,CAAC,IAAI;YAC5D,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;;mCAEH,IAAI,CAAC,KAAK,cAAc,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW;YAC7E,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,IAAI;;;KAGrF,CAAA;IACH,CAAC;IAEO,OAAO;QACb,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IAClF,CAAC;IAEO,KAAK,CAAC,KAAK;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAA;YACjF,MAAM,OAAO,GAAG,QAAQ;gBACtB,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;gBACxF,CAAC,CAAC;oBACE;wBACE,MAAM,EAAE,GAAG;wBACX,IAAI,EAAE,IAAI,CAAC,IAAI;wBACf,KAAK,EAAE,IAAI,CAAC,WAAW;wBACvB,MAAM,EAAE,IAAI;wBACZ,WAAW,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE;qBAClC;iBACF,CAAA;YAEL,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;gBACnC,QAAQ,EAAE,GAAG,CAAA;;;;;;SAMZ;gBACD,SAAS,EAAE,EAAE,OAAO,EAAE;aACvB,CAAC,CAAA;YAEF,IAAI,QAAQ,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;YAE3F,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,yBAAyB,CAAC,IAAI,SAAS,EAAE,CAAC,CAAA;YACtE,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QACjF,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;QAC7D,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,IAAI,GAAG,KAAK,CAAA;QACnB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,OAAO;QACnB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ;YAAE,OAAM;QACtC,4BAA4B;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;gBACnC,QAAQ,EAAE,GAAG,CAAA;;;;SAIZ;gBACD,SAAS,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE;aAC5C,CAAC,CAAA;YAEF,IAAI,QAAQ,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;YAE3F,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,2BAA2B,CAAC,IAAI,SAAS,EAAE,CAAC,CAAA;YACxE,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QACjF,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;QAC7D,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,IAAI,GAAG,KAAK,CAAA;QACnB,CAAC;IACH,CAAC;;AA9L2B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;+CAAc;AAGb;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;mDAAc;AAGb;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;qDAAwB;AAGvB;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;oDAAuB;AAEjC;IAAhB,KAAK,EAAE;;sDAAiC;AACxB;IAAhB,KAAK,EAAE;;+CAA8B;AArI3B,iBAAiB;IAD7B,aAAa,CAAC,sBAAsB,CAAC;GACzB,iBAAiB,CAwT7B","sourcesContent":["import '@material/web/button/filled-button.js'\nimport '@material/web/button/outlined-button.js'\nimport '@material/web/button/text-button.js'\nimport '@material/web/textfield/outlined-text-field.js'\nimport '@material/web/icon/icon.js'\n\nimport gql from 'graphql-tag'\nimport { LitElement, css, html } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { client } from '@operato/graphql'\nimport { notify } from '@operato/layout'\nimport { i18next, localize } from '@operato/i18n'\n\ninterface Resolution {\n key: string\n status: 'local' | 'inherited' | 'absent'\n envVarId?: string\n sourceDomainName?: string\n value?: string\n hasValue?: boolean\n}\n\n/**\n * Connection / Step 파라미터 화면에서 useDomainAttribute 속성의 EnvVar 를\n * 한 자리에서 확인·편집·삭제하는 인라인 편집기.\n *\n * 동작:\n * - 현 도메인에 값이 있으면 update(M) / delete\n * - 상속만 있는 경우(또는 없는 경우) \"이 도메인에 등록\" (create)\n * - 부모 값을 덮어쓰면 closest-wins 로 자식 값이 적용됨을 안내\n *\n * 저장/삭제 성공 시 `saved` 이벤트 발생.\n */\n@customElement('env-var-quick-editor')\nexport class EnvVarQuickEditor extends localize(i18next)(LitElement) {\n static styles = css`\n :host {\n display: flex;\n flex-direction: column;\n min-width: 460px;\n max-height: 80vh;\n padding: 20px 24px;\n box-sizing: border-box;\n background: var(--md-sys-color-surface, #fff);\n }\n\n h3 {\n margin: 0 0 4px;\n font-size: 16px;\n flex: 0 0 auto;\n }\n\n /* 스크롤 가능 본문 — flex column 안에서 actions 위쪽 영역만 흘러내림 */\n .body {\n flex: 1 1 auto;\n overflow: auto;\n min-height: 0;\n }\n\n .key {\n font-family: var(--md-sys-typescale-body-medium-font-family, monospace);\n font-size: 12px;\n color: var(--md-sys-color-on-surface-variant);\n background: var(--md-sys-color-surface-variant);\n padding: 4px 8px;\n border-radius: 6px;\n display: inline-block;\n margin-bottom: 16px;\n word-break: break-all;\n }\n\n .status {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 14px;\n font-size: 14px;\n }\n\n .status[data-status='local'] {\n color: var(--md-sys-color-tertiary);\n }\n .status[data-status='inherited'] {\n color: var(--md-sys-color-primary);\n }\n .status[data-status='absent'] {\n color: var(--md-sys-color-error);\n }\n\n md-outlined-text-field {\n width: 100%;\n margin-bottom: 12px;\n }\n\n .actions {\n display: flex;\n justify-content: flex-end;\n gap: 8px;\n flex: 0 0 auto;\n padding-top: 12px;\n margin-top: 4px;\n border-top: 1px solid var(--md-sys-color-outline-variant, #e0e0e0);\n }\n\n .info {\n font-size: 12px;\n color: var(--md-sys-color-on-surface-variant);\n margin-bottom: 12px;\n line-height: 1.5;\n }\n\n .scope {\n font-size: 12px;\n line-height: 1.6;\n padding: 10px 12px;\n margin-bottom: 14px;\n border-radius: 8px;\n background: var(--md-sys-color-surface-container-low, #f5f5f5);\n border-left: 3px solid var(--md-sys-color-primary, #3457d5);\n }\n\n .scope .scope-title {\n font-weight: 600;\n color: var(--md-sys-color-on-surface);\n margin-bottom: 4px;\n display: flex;\n align-items: center;\n gap: 4px;\n }\n\n .scope .scope-title md-icon {\n font-size: 14px;\n --md-icon-size: 14px;\n }\n\n .scope ul {\n margin: 4px 0 0;\n padding-left: 18px;\n color: var(--md-sys-color-on-surface-variant);\n }\n\n .scope li {\n margin-bottom: 2px;\n }\n\n .scope code {\n font-family: var(--md-sys-typescale-body-medium-font-family, monospace);\n font-size: 11px;\n background: var(--md-sys-color-surface-variant);\n padding: 1px 4px;\n border-radius: 3px;\n }\n `\n\n /** EnvVar 키 (예: `Connection::kiscon-conn::password`) */\n @property({ type: String }) key_!: string\n\n /** 속성 사양 (type/secret 여부 표시 등에 사용) */\n @property({ type: Object }) propSpec: any\n\n /** 사전 조회한 해소 상태 */\n @property({ type: Object }) resolution!: Resolution\n\n /** 표시용 라벨 (속성 이름) */\n @property({ type: String }) propLabel: string = ''\n\n @state() private editedValue: string = ''\n @state() private busy: boolean = false\n\n connectedCallback() {\n super.connectedCallback()\n this.editedValue = this.resolution?.value ?? ''\n }\n\n private get isSecret(): boolean {\n return this.propSpec?.type === 'secret' || /password|secret|token|key$/i.test(this.propLabel || '')\n }\n\n /**\n * 저장 시 영향 범위 (scope) 안내 패널 — 운영자 의사결정 보조.\n * - absent : 처음 등록. 자손 트리 전체에 inherit.\n * - local : 이미 등록됨. 자손이 inherit (자손에 자기 override 있으면 그것 우선).\n * - inherited: 상위에서 받고있음. 여기 등록 시 이 도메인 + 자손에만 한정 override.\n */\n private _renderScopePanel(isLocal: boolean, isInherited: boolean) {\n if (isLocal) {\n return html`\n <div class=\"scope\">\n <div class=\"scope-title\">\n <md-icon>info</md-icon>\n 저장 위치 / 영향 범위\n </div>\n 이 도메인에 이미 등록된 값이 자손 도메인 전체에 inherit 됩니다 (closest-wins).\n <ul>\n <li>여기서 값을 바꾸면 → 이 도메인 + 자손 트리 전체에 즉시 반영</li>\n <li>특정 자손에 자기 override 가 등록되어 있으면 그쪽은 자기 값 우선</li>\n <li>\"이 도메인에서 삭제\" → 부모(있다면) 값으로 fallback</li>\n </ul>\n </div>\n `\n }\n if (isInherited) {\n return html`\n <div class=\"scope\">\n <div class=\"scope-title\">\n <md-icon>inventory</md-icon>\n 저장 위치 / 영향 범위\n </div>\n 현재 <code>${this.resolution.sourceDomainName || '상위 도메인'}</code> 에서 상속된 값을 사용 중입니다.\n <ul>\n <li>여기서 등록하면 → 이 도메인 + 그 자손에만 우선 적용 (다른 형제 도메인은 영향 없음)</li>\n <li>나머지 다른 자손들은 여전히\n <code>${this.resolution.sourceDomainName || '상위 도메인'}</code> 의 값을 그대로 사용</li>\n </ul>\n </div>\n `\n }\n return html`\n <div class=\"scope\">\n <div class=\"scope-title\">\n <md-icon>add_circle</md-icon>\n 저장 위치 / 영향 범위\n </div>\n 이 도메인에 처음 등록합니다.\n <ul>\n <li>저장 후 → 이 도메인 + 자손 트리 전체에서 사용</li>\n <li>특정 자손이 자기 값을 별도 등록하면 그쪽은 자기 값 우선 (closest-wins)</li>\n <li>잘못된 도메인에 저장하지 않도록 — 현재 컨텍스트 도메인을 한번 확인하세요</li>\n </ul>\n </div>\n `\n }\n\n private get statusLabel(): string {\n const s = this.resolution?.status\n if (s === 'local') return `✓ ${i18next.t('text.set-on-this-domain') || '이 도메인에 등록됨'}`\n if (s === 'inherited')\n return `🔗 ${i18next.t('text.inherited-from') || '상속'} (${this.resolution.sourceDomainName || '부모 도메인'})`\n return `⚠ ${i18next.t('text.not-set') || '미설정'}`\n }\n\n render() {\n const isLocal = this.resolution?.status === 'local'\n const isInherited = this.resolution?.status === 'inherited'\n\n return html`\n <h3>${i18next.t('text.domain-attribute') || '도메인 속성'} · ${this.propLabel || this.key_}</h3>\n\n <div class=\"body\">\n <div class=\"key\">${this.key_}</div>\n\n <div class=\"status\" data-status=${this.resolution?.status || 'absent'}>${this.statusLabel}</div>\n\n ${this._renderScopePanel(isLocal, isInherited)}\n\n <md-outlined-text-field\n label=${i18next.t('field.value')}\n type=${this.isSecret ? 'password' : 'text'}\n .value=${this.editedValue}\n @input=${(e: any) => (this.editedValue = e.target.value)}\n ?disabled=${this.busy}\n ></md-outlined-text-field>\n </div>\n\n <div class=\"actions\">\n ${isLocal\n ? html`<md-text-button @click=${this._delete} ?disabled=${this.busy}>\n ${i18next.t('button.delete-from-this-domain') || '이 도메인에서 삭제'}\n </md-text-button>`\n : ''}\n <md-outlined-button @click=${this._cancel} ?disabled=${this.busy}>\n ${i18next.t('button.cancel')}\n </md-outlined-button>\n <md-filled-button @click=${this._save} ?disabled=${this.busy || !this.editedValue}>\n ${isLocal ? i18next.t('button.update') || '갱신' : i18next.t('button.set') || '등록'}\n </md-filled-button>\n </div>\n `\n }\n\n private _cancel() {\n this.dispatchEvent(new CustomEvent('cancel', { bubbles: true, composed: true }))\n }\n\n private async _save() {\n this.busy = true\n try {\n const isUpdate = this.resolution?.status === 'local' && this.resolution?.envVarId\n const patches = isUpdate\n ? [{ id: this.resolution.envVarId, cuFlag: 'M', value: this.editedValue, active: true }]\n : [\n {\n cuFlag: '+',\n name: this.key_,\n value: this.editedValue,\n active: true,\n description: this.propLabel || ''\n }\n ]\n\n const response = await client.mutate({\n mutation: gql`\n mutation ($patches: [EnvVarPatch!]!) {\n updateMultipleEnvVars(patches: $patches) {\n name\n }\n }\n `,\n variables: { patches }\n })\n\n if (response.errors) throw new Error(response.errors.map((e: any) => e.message).join('\\n'))\n\n notify({ message: i18next.t('text.saved-successfully') || '저장되었습니다' })\n this.dispatchEvent(new CustomEvent('saved', { bubbles: true, composed: true }))\n } catch (e: any) {\n notify({ level: 'error', message: e.message || String(e) })\n } finally {\n this.busy = false\n }\n }\n\n private async _delete() {\n if (!this.resolution?.envVarId) return\n // 도메인 환경변수 삭제는 확인 없이 즉시 처리.\n this.busy = true\n try {\n const response = await client.mutate({\n mutation: gql`\n mutation ($id: String!) {\n deleteEnvVar(id: $id)\n }\n `,\n variables: { id: this.resolution.envVarId }\n })\n\n if (response.errors) throw new Error(response.errors.map((e: any) => e.message).join('\\n'))\n\n notify({ message: i18next.t('text.deleted-successfully') || '삭제되었습니다' })\n this.dispatchEvent(new CustomEvent('saved', { bubbles: true, composed: true }))\n } catch (e: any) {\n notify({ level: 'error', message: e.message || String(e) })\n } finally {\n this.busy = false\n }\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/integration-ui",
3
- "version": "10.0.0-beta.92",
3
+ "version": "10.0.0-beta.95",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "dist-client/index.js",
6
6
  "things-factory": true,
@@ -41,9 +41,9 @@
41
41
  "@operato/utils": "^10.0.0-beta.1",
42
42
  "@things-factory/export-base": "^10.0.0-beta.92",
43
43
  "@things-factory/import-base": "^10.0.0-beta.92",
44
- "@things-factory/integration-base": "^10.0.0-beta.92",
44
+ "@things-factory/integration-base": "^10.0.0-beta.95",
45
45
  "@things-factory/personalization": "^10.0.0-beta.92",
46
46
  "d3": "^7.8.5"
47
47
  },
48
- "gitHead": "e1143534691790a7006213e06d93051528b93bf4"
48
+ "gitHead": "17291189a406eb17709411200d0dc4acb54d92a2"
49
49
  }
@@ -1,23 +1,27 @@
1
1
  {
2
2
  "button.connect": "connect",
3
- "button.disconnect": "disconnect",
4
3
  "button.copy": "copy",
5
4
  "button.delete": "delete",
5
+ "button.delete-from-this-domain": "Delete from this domain",
6
+ "button.disconnect": "disconnect",
6
7
  "button.save": "save",
8
+ "button.schedule-task": "schedule task",
9
+ "button.set": "Set",
7
10
  "button.start": "start",
8
11
  "button.start monitor": "start monitor",
9
12
  "button.stop": "stop",
10
13
  "button.stop monitor": "stop monitor",
11
- "button.schedule-task": "schedule task",
12
14
  "button.unschedule-task": "unschedule task",
13
- "field.startup-connect": "startup connect",
14
- "field.startup-scenario": "startup execution",
15
+ "button.update": "Update",
15
16
  "field.api_url": "API URL",
16
17
  "field.auto-publish": "auto publish",
17
18
  "field.connection": "connection",
18
19
  "field.crontab": "crontab",
20
+ "field.domain-attribute-readiness": "Readiness",
19
21
  "field.edge-server": "edge server",
20
22
  "field.endpoint": "endpoint",
23
+ "field.inheritance-mode": "Inheritance Mode",
24
+ "field.iteration-scope": "iteration",
21
25
  "field.log": "log",
22
26
  "field.message": "message",
23
27
  "field.on-demand": "on demand",
@@ -28,13 +32,14 @@
28
32
  "field.rounds": "rounds",
29
33
  "field.schedule": "schedule",
30
34
  "field.skip": "skip",
35
+ "field.startup-connect": "startup connect",
36
+ "field.startup-scenario": "startup execution",
31
37
  "field.state-value": "state value",
32
38
  "field.task": "task",
33
39
  "field.timezone": "timezone",
34
40
  "field.ttl-seconds": "TTL(seconds)",
35
41
  "field.type": "type",
36
42
  "field.wrote-at": "wrote at",
37
- "field.iteration-scope": "iteration",
38
43
  "label.address": "address",
39
44
  "label.auth-client": "oauth2 client",
40
45
  "label.authtype": "auth-type",
@@ -73,8 +78,8 @@
73
78
  "label.parameters": "parameters",
74
79
  "label.params": "parameters",
75
80
  "label.pool-increment": "connection pool increment",
76
- "label.pool-min": "min. connection pool",
77
81
  "label.pool-max": "max. connection pool",
82
+ "label.pool-min": "min. connection pool",
78
83
  "label.priority": "priority",
79
84
  "label.procedure": "procedure",
80
85
  "label.procedure-code": "procedure code",
@@ -103,6 +108,8 @@
103
108
  "text.connection list": "connection list",
104
109
  "text.copy": "copy",
105
110
  "text.delete": "delete",
111
+ "text.deleted-successfully": "Deleted successfully.",
112
+ "text.domain-attribute": "Domain attribute",
106
113
  "text.every 12 hours": "every 12 hours",
107
114
  "text.every 15 minutes": "every 15 minutes",
108
115
  "text.every 15 seconds": "every 15 seconds",
@@ -120,12 +127,17 @@
120
127
  "text.every sunday": "every sunday",
121
128
  "text.every weekday": "every weekday",
122
129
  "text.info_x_successfully": "{x} success.",
130
+ "text.inherited-from": "Inherited",
131
+ "text.inherited-override-warning": "Setting a value here will override the parent value with this domain's value (closest-wins).",
123
132
  "text.integration analysis": "integration analysis",
124
133
  "text.integration monitor": "integration monitor",
125
134
  "text.no properties to set": "there's no properties to set",
135
+ "text.not-set": "Not set",
126
136
  "text.range of values": "range of values",
137
+ "text.saved-successfully": "Saved successfully.",
127
138
  "text.scenario": "scenario",
128
139
  "text.scenario list": "scenario list",
140
+ "text.set-on-this-domain": "Set on this domain",
129
141
  "text.step values": "step values",
130
142
  "text.sure_to_x": "Sure to {x}?",
131
143
  "text.the first day of every month": "the first day of every month",
@@ -1,24 +1,28 @@
1
1
  {
2
2
  "button.connect": "接続",
3
- "button.disconnect": "切断",
4
3
  "button.copy": "コピー",
5
4
  "button.delete": "削除",
5
+ "button.delete-from-this-domain": "このドメインから削除",
6
+ "button.disconnect": "切断",
6
7
  "button.save": "保存",
8
+ "button.schedule-task": "タスクをスケジュール",
9
+ "button.set": "登録",
7
10
  "button.start": "開始",
8
11
  "button.start monitor": "モニタリング開始",
9
12
  "button.stop": "停止",
10
13
  "button.stop monitor": "モニタリング終了",
11
- "button.schedule-task": "タスクをスケジュール",
12
14
  "button.unschedule-task": "タスクのスケジュールを解除",
13
- "field.startup-connect": "起動時に接続",
14
- "field.startup-scenario": "起動時に実行",
15
+ "button.update": "更新",
15
16
  "field.api_url": "API URL",
16
17
  "field.auto-publish": "自動公開",
17
18
  "field.break_main": "BreakMain",
18
19
  "field.connection": "連結",
19
20
  "field.crontab": "クロン タブ",
21
+ "field.domain-attribute-readiness": "準備状態",
20
22
  "field.edge-server": "エッジサーバー",
21
23
  "field.endpoint": "エンド ポイント",
24
+ "field.inheritance-mode": "継承モード",
25
+ "field.iteration-scope": "反復実行",
22
26
  "field.log": "ログ",
23
27
  "field.message": "メッセージ",
24
28
  "field.on-demand": "オンデマンド",
@@ -29,13 +33,14 @@
29
33
  "field.rounds": "回目",
30
34
  "field.schedule": "スケジュール",
31
35
  "field.skip": "スキップ",
36
+ "field.startup-connect": "起動時に接続",
37
+ "field.startup-scenario": "起動時に実行",
32
38
  "field.state-value": "状態値",
33
39
  "field.task": "タスク",
34
40
  "field.timezone": "タイムゾーン",
35
41
  "field.ttl-seconds": "TTL(秒)",
36
42
  "field.type": "分類",
37
43
  "field.wrote-at": "作成日時",
38
- "field.iteration-scope": "反復実行",
39
44
  "label.address": "アドレス",
40
45
  "label.auth-client": "oauth2クライアント",
41
46
  "label.authtype": "認証タイプ",
@@ -74,8 +79,8 @@
74
79
  "label.parameters": "パラメータ",
75
80
  "label.params": "パラメータ",
76
81
  "label.pool-increment": "コネクションプールの増加",
77
- "label.pool-min": "最小コネクションプール",
78
82
  "label.pool-max": "最大コネクションプール",
83
+ "label.pool-min": "最小コネクションプール",
79
84
  "label.priority": "優先順位",
80
85
  "label.procedure": "プロシージャ",
81
86
  "label.procedure-code": "手順コード",
@@ -104,6 +109,8 @@
104
109
  "text.connection list": "コネクション リスト",
105
110
  "text.copy": "コピー",
106
111
  "text.delete": "削除",
112
+ "text.deleted-successfully": "削除しました。",
113
+ "text.domain-attribute": "ドメイン属性",
107
114
  "text.every 12 hours": "12時間ごとに",
108
115
  "text.every 15 minutes": "15分ごとに",
109
116
  "text.every 15 seconds": "15秒ごとに",
@@ -121,12 +128,17 @@
121
128
  "text.every sunday": "毎週日曜日に",
122
129
  "text.every weekday": "平日ごとに",
123
130
  "text.info_x_successfully": "{x}に成功しました.",
131
+ "text.inherited-from": "継承",
132
+ "text.inherited-override-warning": "ここで値を登録すると、このドメインの値が親の値を上書きします(closest-wins)。",
124
133
  "text.integration analysis": "統合分析 ",
125
134
  "text.integration monitor": "インテグレーション モニタ",
126
135
  "text.no properties to set": "プロパティの設定は必要ありません.",
136
+ "text.not-set": "未設定",
127
137
  "text.range of values": "値の範囲",
138
+ "text.saved-successfully": "保存しました。",
128
139
  "text.scenario": "シナリオ",
129
140
  "text.scenario list": "シナリオリスト",
141
+ "text.set-on-this-domain": "このドメインに登録済み",
130
142
  "text.step values": "ステップ値",
131
143
  "text.sure_to_x": "{x}しますか?",
132
144
  "text.the first day of every month": "毎月1日ごとに",
@@ -1,24 +1,28 @@
1
1
  {
2
2
  "button.connect": "연결",
3
- "button.disconnect": "연결끊기",
4
3
  "button.copy": "복사",
5
4
  "button.delete": "삭제",
5
+ "button.delete-from-this-domain": "이 도메인에서 삭제",
6
+ "button.disconnect": "연결끊기",
6
7
  "button.save": "저장",
8
+ "button.schedule-task": "스케쥴 등록",
9
+ "button.set": "등록",
7
10
  "button.start": "시작",
8
11
  "button.start monitor": "모니터링 시작",
9
12
  "button.stop": "종료",
10
13
  "button.stop monitor": "모니터링 종료",
11
- "button.schedule-task": "스케쥴 등록",
12
14
  "button.unschedule-task": "스케쥴 취소",
13
- "field.startup-connect": "시작시 연결",
14
- "field.startup-scenario": "시작시 실행",
15
+ "button.update": "갱신",
15
16
  "field.api_url": "API URL",
16
17
  "field.auto-publish": "자동 퍼블리시",
17
18
  "field.break_main": "BreakMain",
18
19
  "field.connection": "연결",
19
20
  "field.crontab": "크론탭",
21
+ "field.domain-attribute-readiness": "준비 상태",
20
22
  "field.edge-server": "엣지 서버",
21
23
  "field.endpoint": "엔드포인트",
24
+ "field.inheritance-mode": "상속 모드",
25
+ "field.iteration-scope": "반복 실행",
22
26
  "field.log": "로그",
23
27
  "field.message": "메시지",
24
28
  "field.on-demand": "온디맨드",
@@ -29,13 +33,14 @@
29
33
  "field.rounds": "회차",
30
34
  "field.schedule": "스케줄",
31
35
  "field.skip": "건너뛰기",
36
+ "field.startup-connect": "시작시 연결",
37
+ "field.startup-scenario": "시작시 실행",
32
38
  "field.state-value": "상태값",
33
39
  "field.task": "작업",
34
40
  "field.timezone": "타임존",
35
41
  "field.ttl-seconds": "TTL(초)",
36
42
  "field.type": "분류",
37
43
  "field.wrote-at": "작성일시",
38
- "field.iteration-scope": "반복 실행",
39
44
  "label.address": "주소",
40
45
  "label.auth-client": "oauth2 클라이언트",
41
46
  "label.authtype": "인증 유형",
@@ -74,8 +79,8 @@
74
79
  "label.parameters": "파라미터",
75
80
  "label.params": "파라미터",
76
81
  "label.pool-increment": "커넥션 풀 증분",
77
- "label.pool-min": "최소 커넥션 풀",
78
82
  "label.pool-max": "최대 커넥션 풀",
83
+ "label.pool-min": "최소 커넥션 풀",
79
84
  "label.priority": "우선순위",
80
85
  "label.procedure": "프로시져",
81
86
  "label.procedure-code": "프로시져 코드",
@@ -104,6 +109,8 @@
104
109
  "text.connection list": "커넥션 리스트",
105
110
  "text.copy": "복사",
106
111
  "text.delete": "삭제",
112
+ "text.deleted-successfully": "삭제되었습니다.",
113
+ "text.domain-attribute": "도메인 속성",
107
114
  "text.every 12 hours": "매 12시간마다",
108
115
  "text.every 15 minutes": "매 15분마다",
109
116
  "text.every 15 seconds": "매 15초마다",
@@ -121,12 +128,17 @@
121
128
  "text.every sunday": "매주 일요일마다",
122
129
  "text.every weekday": "평일마다",
123
130
  "text.info_x_successfully": "성공적으로 {x}했습니다.",
131
+ "text.inherited-from": "상속",
132
+ "text.inherited-override-warning": "여기서 값을 등록하면 이 도메인 값이 부모 값을 덮어씁니다 (closest-wins).",
124
133
  "text.integration analysis": "인티그레이션 분석",
125
134
  "text.integration monitor": "인티그레이션 모니터",
126
135
  "text.no properties to set": "속성 설정이 필요하지 않습니다.",
136
+ "text.not-set": "미설정",
127
137
  "text.range of values": "값의 범위",
138
+ "text.saved-successfully": "저장되었습니다.",
128
139
  "text.scenario": "시나리오",
129
140
  "text.scenario list": "시나리오 리스트",
141
+ "text.set-on-this-domain": "이 도메인에 등록됨",
130
142
  "text.step values": "단계 값",
131
143
  "text.sure_to_x": "{x}하시겠습니까?",
132
144
  "text.the first day of every month": "매월 1일마다",
@@ -1,24 +1,28 @@
1
1
  {
2
2
  "button.connect": "sambung",
3
- "button.disconnect": "putuskan sambungan",
4
3
  "button.copy": "salin",
5
4
  "button.delete": "padam",
5
+ "button.delete-from-this-domain": "Padam dari domain ini",
6
+ "button.disconnect": "putuskan sambungan",
6
7
  "button.download": "muat turun",
7
8
  "button.save": "simpan",
9
+ "button.schedule-task": "jadualkan tugas",
10
+ "button.set": "Tetapkan",
8
11
  "button.start": "mula",
9
12
  "button.start monitor": "mula pemantauan",
10
13
  "button.stop": "berhenti",
11
14
  "button.stop monitor": "hentikan pemantauan",
12
- "button.schedule-task": "jadualkan tugas",
13
15
  "button.unschedule-task": "batalkan jadual tugas",
14
- "field.startup-connect": "sambungan pada permulaan",
15
- "field.startup-scenario": "senario pada permulaan",
16
+ "button.update": "Kemaskini",
16
17
  "field.api_url": "URL API",
17
18
  "field.auto-publish": "terbitan automatik",
18
19
  "field.connection": "sambungan",
19
20
  "field.crontab": "crontab",
21
+ "field.domain-attribute-readiness": "Status Kesediaan",
20
22
  "field.edge-server": "pelayan tepi",
21
23
  "field.endpoint": "titik akhir",
24
+ "field.inheritance-mode": "Mod Pewarisan",
25
+ "field.iteration-scope": "iterasi",
22
26
  "field.log": "log",
23
27
  "field.message": "mesej",
24
28
  "field.on-demand": "on demand",
@@ -29,13 +33,14 @@
29
33
  "field.rounds": "pusingan",
30
34
  "field.schedule": "jadual",
31
35
  "field.skip": "langkau",
36
+ "field.startup-connect": "sambungan pada permulaan",
37
+ "field.startup-scenario": "senario pada permulaan",
32
38
  "field.state-value": "nilai keadaan",
33
39
  "field.task": "tugas",
34
40
  "field.timezone": "zon masa",
35
41
  "field.ttl-seconds": "TTL(detik)",
36
42
  "field.type": "jenis",
37
43
  "field.wrote-at": "tarikh & masa penulisan",
38
- "field.iteration-scope": "iterasi",
39
44
  "label.address": "alamat",
40
45
  "label.auth-client": "klien oauth2",
41
46
  "label.authtype": "jenis autentikasi",
@@ -74,8 +79,8 @@
74
79
  "label.parameters": "parameter",
75
80
  "label.params": "parameter",
76
81
  "label.pool-increment": "peningkatan kolam sambungan",
77
- "label.pool-min": "kolam sambungan min.",
78
82
  "label.pool-max": "kolam sambungan maks.",
83
+ "label.pool-min": "kolam sambungan min.",
79
84
  "label.priority": "keutamaan",
80
85
  "label.procedure": "Prosedur",
81
86
  "label.procedure-code": "kod prosedur",
@@ -104,6 +109,8 @@
104
109
  "text.connection list": "senarai sambungan",
105
110
  "text.copy": "salin",
106
111
  "text.delete": "padam",
112
+ "text.deleted-successfully": "Berjaya dipadam.",
113
+ "text.domain-attribute": "Atribut domain",
107
114
  "text.every 12 hours": "setiap 12 jam",
108
115
  "text.every 15 minutes": "setiap 15 minit",
109
116
  "text.every 15 seconds": "setiap 15 saat",
@@ -121,12 +128,17 @@
121
128
  "text.every sunday": "setiap Ahad",
122
129
  "text.every weekday": "setiap hari dalam minggu",
123
130
  "text.info_x_successfully": "{x} berjaya.",
131
+ "text.inherited-from": "Diwarisi",
132
+ "text.inherited-override-warning": "Menetapkan nilai di sini akan menggantikan nilai induk dengan nilai domain ini (closest-wins).",
124
133
  "text.integration analysis": "analisis integrasi",
125
134
  "text.integration monitor": "pemantauan integrasi",
126
135
  "text.no properties to set": "tiada harta untuk ditetapkan",
136
+ "text.not-set": "Tidak ditetapkan",
127
137
  "text.range of values": "julat nilai",
138
+ "text.saved-successfully": "Berjaya disimpan.",
128
139
  "text.scenario": "senario",
129
140
  "text.scenario list": "senarai senario",
141
+ "text.set-on-this-domain": "Ditetapkan pada domain ini",
130
142
  "text.step values": "nilai langkah",
131
143
  "text.sure_to_x": "Pasti {x}?",
132
144
  "text.the first day of every month": "hari pertama setiap bulan",
@@ -1,23 +1,27 @@
1
1
  {
2
2
  "button.connect": "连接",
3
- "button.disconnect": "断开连接",
4
3
  "button.copy": "复制",
5
4
  "button.delete": "删除",
5
+ "button.delete-from-this-domain": "从此域删除",
6
+ "button.disconnect": "断开连接",
6
7
  "button.save": "保存",
8
+ "button.schedule-task": "安排任务",
9
+ "button.set": "登记",
7
10
  "button.start": "开始",
8
11
  "button.start monitor": "启动监视器",
9
12
  "button.stop": "停止",
10
13
  "button.stop monitor": "停止监视器",
11
- "button.schedule-task": "安排任务",
12
14
  "button.unschedule-task": "取消安排任务",
13
- "field.startup-connect": "启动时连接",
14
- "field.startup-scenario": "启动时执行",
15
+ "button.update": "更新",
15
16
  "field.api_url": "API URL",
16
17
  "field.auto-publish": "自动发布",
17
18
  "field.connection": "连接",
18
19
  "field.crontab": "crontab",
20
+ "field.domain-attribute-readiness": "就绪状态",
19
21
  "field.edge-server": "边缘服务器",
20
22
  "field.endpoint": "端点",
23
+ "field.inheritance-mode": "继承模式",
24
+ "field.iteration-scope": "迭代执行",
21
25
  "field.log": "日志",
22
26
  "field.message": "信息",
23
27
  "field.on-demand": "按需",
@@ -28,13 +32,14 @@
28
32
  "field.rounds": "回合",
29
33
  "field.schedule": "日程",
30
34
  "field.skip": "跳过",
35
+ "field.startup-connect": "启动时连接",
36
+ "field.startup-scenario": "启动时执行",
31
37
  "field.state-value": "状态值",
32
38
  "field.task": "任务",
33
39
  "field.timezone": "时区",
34
40
  "field.ttl-seconds": "TTL(秒)",
35
41
  "field.type": "类型",
36
42
  "field.wrote-at": "编写日期和时间",
37
- "field.iteration-scope": "迭代执行",
38
43
  "label.address": "地址",
39
44
  "label.auth-client": "认证客户端",
40
45
  "label.authtype": "授权类型",
@@ -73,8 +78,8 @@
73
78
  "label.parameters": "参数",
74
79
  "label.params": "参数",
75
80
  "label.pool-increment": "连接池增量",
76
- "label.pool-min": "最小连接池",
77
81
  "label.pool-max": "最大连接池",
82
+ "label.pool-min": "最小连接池",
78
83
  "label.priority": "优先度",
79
84
  "label.procedure": "存储过程",
80
85
  "label.procedure-code": "过程代码",
@@ -103,6 +108,8 @@
103
108
  "text.connection list": "连接列表",
104
109
  "text.copy": "复制",
105
110
  "text.delete": "删除",
111
+ "text.deleted-successfully": "删除成功。",
112
+ "text.domain-attribute": "域属性",
106
113
  "text.every 12 hours": "每十二小时",
107
114
  "text.every 15 minutes": "每十五分钟",
108
115
  "text.every 15 seconds": "每十五秒",
@@ -120,12 +127,17 @@
120
127
  "text.every sunday": "每星期天",
121
128
  "text.every weekday": "每个工作日",
122
129
  "text.info_x_successfully": "{x} 成功。",
130
+ "text.inherited-from": "继承",
131
+ "text.inherited-override-warning": "在此处保存值会以此域的值覆盖父域的值(closest-wins)。",
123
132
  "text.integration analysis": "整合分析",
124
133
  "text.integration monitor": "集成监控器",
125
134
  "text.no properties to set": "没有要设置的属性",
135
+ "text.not-set": "未设置",
126
136
  "text.range of values": "值的范围",
137
+ "text.saved-successfully": "保存成功。",
127
138
  "text.scenario": "方案",
128
139
  "text.scenario list": "方案列表",
140
+ "text.set-on-this-domain": "已在此域注册",
129
141
  "text.step values": "阶跃值",
130
142
  "text.sure_to_x": "确定 {x}?",
131
143
  "text.the first day of every month": "每月的第一天",