@fmsim/api 2.0.0 → 3.0.0-beta.1

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.
@@ -2,6 +2,31 @@
2
2
  "schemaVersion": "1.0.0",
3
3
  "readme": "",
4
4
  "modules": [
5
+ {
6
+ "kind": "javascript-module",
7
+ "path": "src/carrier-types.ts",
8
+ "declarations": [
9
+ {
10
+ "kind": "variable",
11
+ "name": "CARRIER_TYPES_THEME",
12
+ "type": {
13
+ "text": "string"
14
+ },
15
+ "default": "'carrier-types'",
16
+ "description": "The theme type fmsim keeps its carrier types under (ADR-0155 amendment 1 D): things-scene's item types are fmsim's\ncarriers, and a screen of fmsim says carrier."
17
+ }
18
+ ],
19
+ "exports": [
20
+ {
21
+ "kind": "js",
22
+ "name": "CARRIER_TYPES_THEME",
23
+ "declaration": {
24
+ "name": "CARRIER_TYPES_THEME",
25
+ "module": "src/carrier-types.ts"
26
+ }
27
+ }
28
+ ]
29
+ },
5
30
  {
6
31
  "kind": "javascript-module",
7
32
  "path": "src/index.ts",
@@ -260,6 +285,16 @@
260
285
  }
261
286
  ],
262
287
  "description": "머신/유닛 id 리스트를 keyword 로 **풀텍스트 필터** — 서버 재조회 없이 로컬에서 사용.\nkeyword 를 공백 토큰화하고, 각 토큰이 (순서 무관) id 에 부분일치(AND) 하면 통과.\n빈 keyword 는 전체 반환. 예: \"stk01 p03\" ↔ \"STK01-P03\", \"p03 stk01\" 동일."
288
+ },
289
+ {
290
+ "kind": "function",
291
+ "name": "fetchDomainCarrierTypes",
292
+ "return": {
293
+ "type": {
294
+ "text": "Promise<ItemTypeTable>"
295
+ }
296
+ },
297
+ "description": "The domain's carrier type table (ADR-0155): its active carrier-types theme, from the customer backend in RESTful mode\nand from this board server otherwise, read by things-scene's rule. An empty table when the themes cannot be read."
263
298
  }
264
299
  ],
265
300
  "exports": [
@@ -279,6 +314,14 @@
279
314
  "module": "./restful"
280
315
  }
281
316
  },
317
+ {
318
+ "kind": "js",
319
+ "name": "CARRIER_TYPES_THEME",
320
+ "declaration": {
321
+ "name": "CARRIER_TYPES_THEME",
322
+ "module": "src/index.ts"
323
+ }
324
+ },
282
325
  {
283
326
  "kind": "js",
284
327
  "name": "isRestfulAvailable",
@@ -406,6 +449,14 @@
406
449
  "name": "filterFigureIds",
407
450
  "module": "src/index.ts"
408
451
  }
452
+ },
453
+ {
454
+ "kind": "js",
455
+ "name": "fetchDomainCarrierTypes",
456
+ "declaration": {
457
+ "name": "fetchDomainCarrierTypes",
458
+ "module": "src/index.ts"
459
+ }
409
460
  }
410
461
  ]
411
462
  },
@@ -2256,6 +2307,14 @@
2256
2307
  "name": "*",
2257
2308
  "module": "src/restful/playback"
2258
2309
  }
2310
+ },
2311
+ {
2312
+ "kind": "js",
2313
+ "name": "CARRIER_TYPES_THEME",
2314
+ "declaration": {
2315
+ "name": "CARRIER_TYPES_THEME",
2316
+ "module": "../carrier-types"
2317
+ }
2259
2318
  }
2260
2319
  ]
2261
2320
  },
@@ -0,0 +1,5 @@
1
+ /**
2
+ * The theme type fmsim keeps its carrier types under (ADR-0155 amendment 1 D): things-scene's item types are fmsim's
3
+ * carriers, and a screen of fmsim says carrier.
4
+ */
5
+ export declare const CARRIER_TYPES_THEME = "carrier-types";
@@ -0,0 +1,6 @@
1
+ /**
2
+ * The theme type fmsim keeps its carrier types under (ADR-0155 amendment 1 D): things-scene's item types are fmsim's
3
+ * carriers, and a screen of fmsim says carrier.
4
+ */
5
+ export const CARRIER_TYPES_THEME = 'carrier-types';
6
+ //# sourceMappingURL=carrier-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"carrier-types.js","sourceRoot":"","sources":["../../src/carrier-types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,eAAe,CAAA","sourcesContent":["/**\n * The theme type fmsim keeps its carrier types under (ADR-0155 amendment 1 D): things-scene's item types are fmsim's\n * carriers, and a screen of fmsim says carrier.\n */\nexport const CARRIER_TYPES_THEME = 'carrier-types'\n"]}
@@ -150,9 +150,10 @@ export async function updateBoard(board) {
150
150
  name : String
151
151
  description : String
152
152
  model : String
153
+ thumbnail : String
153
154
  }
154
155
  */
155
- var { id, name, description, model, groupId } = board;
156
+ var { id, name, description, model, groupId, thumbnail } = board;
156
157
  model = JSON.stringify(model);
157
158
  const response = await client.mutate({
158
159
  mutation: gql `
@@ -173,7 +174,7 @@ export async function updateBoard(board) {
173
174
  `,
174
175
  variables: {
175
176
  id,
176
- patch: { name, description, model, groupId }
177
+ patch: { name, description, model, groupId, thumbnail }
177
178
  }
178
179
  });
179
180
  return response.data;
@@ -1 +1 @@
1
- {"version":3,"file":"board.js","sourceRoot":"","sources":["../../../src/graphql/board.ts"],"names":[],"mappings":"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","sourcesContent":["import { buildArgs, client } from '@operato/graphql'\n\nimport { Board } from '../types'\nimport gql from 'graphql-tag'\n\nexport async function fetchBoardList(listParam: any = {}) {\n const response = await client.query({\n query: gql`\n {\n boards(${buildArgs(listParam)}) {\n items {\n id\n name\n description\n thumbnail\n sortOrder\n createdAt\n updatedAt\n }\n total\n }\n }\n `\n })\n\n return response.data\n}\n\nexport async function fetchBoardNameById(id: string): Promise<string> {\n const { data } = await client.query({\n query: gql`\n query FetchBoardName($id: String!) {\n board(id: $id) {\n id\n name\n }\n }\n `,\n variables: { id }\n })\n return (data as any).board?.name || id\n}\n\n/** 대표명 + 다국어(nameI18n) 를 함께 반환 — 표시 측에서 현재 언어로 resolve 하기 위함. */\nexport async function fetchBoardNameInfoById(id: string): Promise<{ name?: string; nameI18n?: string }> {\n const { data } = await client.query({\n query: gql`\n query FetchBoardNameInfo($id: String!) {\n board(id: $id) {\n id\n name\n nameI18n\n }\n }\n `,\n variables: { id }\n })\n return { name: (data as any).board?.name, nameI18n: (data as any).board?.nameI18n }\n}\n\nexport async function reorderBoard(id: string, prevId?: string, nextId?: string) {\n const response = await client.mutate({\n mutation: gql`\n mutation ReorderBoard($id: String!, $prevId: String, $nextId: String) {\n reorderBoard(id: $id, prevId: $prevId, nextId: $nextId)\n }\n `,\n variables: { id, prevId, nextId }\n })\n return response.data\n}\n\nexport async function fetchBoardById(id: string, cachedUpdatedAt?: string) {\n const response = await client.query({\n query: gql`\n query FetchBoardById($id: String!, $cachedUpdatedAt: String, $filters: [Filter!]) {\n board(id: $id, cachedUpdatedAt: $cachedUpdatedAt) {\n id\n name\n description\n group {\n id\n name\n }\n thumbnail\n model\n createdAt\n creator {\n id\n name\n }\n updatedAt\n updater {\n id\n name\n }\n }\n\n themes(filters: $filters) {\n items {\n name\n description\n active\n type\n value\n }\n }\n }\n `,\n variables: {\n id,\n cachedUpdatedAt,\n filters: [\n {\n name: 'active',\n operator: 'eq',\n value: true\n }\n ]\n }\n })\n\n return response.data\n}\n\nexport async function createBoard(board: Board) {\n /*\n input NewBoard {\n name : String!\n description : String\n model : String!\n groupId : String!\n }\n */\n\n board.model = JSON.stringify(board.model)\n\n const response = await client.mutate({\n mutation: gql`\n mutation CreateBoard($board: NewBoard!) {\n createBoard(board: $board) {\n id\n name\n description\n model\n createdAt\n updatedAt\n }\n }\n `,\n variables: {\n board\n }\n })\n\n return response.data\n}\n\nexport async function updateBoard(board: Board) {\n /*\n input BoardPatch {\n name : String\n description : String\n model : String\n }\n */\n var { id, name, description, model, groupId } = board\n model = JSON.stringify(model)\n\n const response = await client.mutate({\n mutation: gql`\n mutation UpdateBoard($id: String!, $patch: BoardPatch!) {\n updateBoard(id: $id, patch: $patch) {\n id\n name\n description\n model\n group {\n id\n name\n }\n createdAt\n updatedAt\n }\n }\n `,\n variables: {\n id,\n patch: { name, description, model, groupId }\n }\n })\n\n return response.data\n}\n\nexport async function deleteBoard(id: string) {\n const response = await client.mutate({\n mutation: gql`\n mutation ($id: String!) {\n deleteBoard(id: $id)\n }\n `,\n variables: {\n id\n }\n })\n\n return response.data\n}\n\nexport async function fetchBoardInfoById(boardId: string) {\n const { data } = await client.query({\n query: gql`\n query FetchBoardById($id: String!) {\n board(id: $id) {\n id\n name\n description\n group {\n id\n name\n }\n thumbnail\n createdAt\n creator {\n id\n name\n }\n updatedAt\n updater {\n id\n name\n }\n }\n\n groups {\n items {\n id\n name\n description\n }\n }\n }\n `,\n variables: { id: boardId }\n })\n\n return data\n}\n"]}
1
+ {"version":3,"file":"board.js","sourceRoot":"","sources":["../../../src/graphql/board.ts"],"names":[],"mappings":"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","sourcesContent":["import { buildArgs, client } from '@operato/graphql'\n\nimport { Board } from '../types'\nimport gql from 'graphql-tag'\n\nexport async function fetchBoardList(listParam: any = {}) {\n const response = await client.query({\n query: gql`\n {\n boards(${buildArgs(listParam)}) {\n items {\n id\n name\n description\n thumbnail\n sortOrder\n createdAt\n updatedAt\n }\n total\n }\n }\n `\n })\n\n return response.data\n}\n\nexport async function fetchBoardNameById(id: string): Promise<string> {\n const { data } = await client.query({\n query: gql`\n query FetchBoardName($id: String!) {\n board(id: $id) {\n id\n name\n }\n }\n `,\n variables: { id }\n })\n return (data as any).board?.name || id\n}\n\n/** 대표명 + 다국어(nameI18n) 를 함께 반환 — 표시 측에서 현재 언어로 resolve 하기 위함. */\nexport async function fetchBoardNameInfoById(id: string): Promise<{ name?: string; nameI18n?: string }> {\n const { data } = await client.query({\n query: gql`\n query FetchBoardNameInfo($id: String!) {\n board(id: $id) {\n id\n name\n nameI18n\n }\n }\n `,\n variables: { id }\n })\n return { name: (data as any).board?.name, nameI18n: (data as any).board?.nameI18n }\n}\n\nexport async function reorderBoard(id: string, prevId?: string, nextId?: string) {\n const response = await client.mutate({\n mutation: gql`\n mutation ReorderBoard($id: String!, $prevId: String, $nextId: String) {\n reorderBoard(id: $id, prevId: $prevId, nextId: $nextId)\n }\n `,\n variables: { id, prevId, nextId }\n })\n return response.data\n}\n\nexport async function fetchBoardById(id: string, cachedUpdatedAt?: string) {\n const response = await client.query({\n query: gql`\n query FetchBoardById($id: String!, $cachedUpdatedAt: String, $filters: [Filter!]) {\n board(id: $id, cachedUpdatedAt: $cachedUpdatedAt) {\n id\n name\n description\n group {\n id\n name\n }\n thumbnail\n model\n createdAt\n creator {\n id\n name\n }\n updatedAt\n updater {\n id\n name\n }\n }\n\n themes(filters: $filters) {\n items {\n name\n description\n active\n type\n value\n }\n }\n }\n `,\n variables: {\n id,\n cachedUpdatedAt,\n filters: [\n {\n name: 'active',\n operator: 'eq',\n value: true\n }\n ]\n }\n })\n\n return response.data\n}\n\nexport async function createBoard(board: Board) {\n /*\n input NewBoard {\n name : String!\n description : String\n model : String!\n groupId : String!\n }\n */\n\n board.model = JSON.stringify(board.model)\n\n const response = await client.mutate({\n mutation: gql`\n mutation CreateBoard($board: NewBoard!) {\n createBoard(board: $board) {\n id\n name\n description\n model\n createdAt\n updatedAt\n }\n }\n `,\n variables: {\n board\n }\n })\n\n return response.data\n}\n\nexport async function updateBoard(board: Board) {\n /*\n input BoardPatch {\n name : String\n description : String\n model : String\n thumbnail : String\n }\n */\n var { id, name, description, model, groupId, thumbnail } = board\n model = JSON.stringify(model)\n\n const response = await client.mutate({\n mutation: gql`\n mutation UpdateBoard($id: String!, $patch: BoardPatch!) {\n updateBoard(id: $id, patch: $patch) {\n id\n name\n description\n model\n group {\n id\n name\n }\n createdAt\n updatedAt\n }\n }\n `,\n variables: {\n id,\n patch: { name, description, model, groupId, thumbnail }\n }\n })\n\n return response.data\n}\n\nexport async function deleteBoard(id: string) {\n const response = await client.mutate({\n mutation: gql`\n mutation ($id: String!) {\n deleteBoard(id: $id)\n }\n `,\n variables: {\n id\n }\n })\n\n return response.data\n}\n\nexport async function fetchBoardInfoById(boardId: string) {\n const { data } = await client.query({\n query: gql`\n query FetchBoardById($id: String!) {\n board(id: $id) {\n id\n name\n description\n group {\n id\n name\n }\n thumbnail\n createdAt\n creator {\n id\n name\n }\n updatedAt\n updater {\n id\n name\n }\n }\n\n groups {\n items {\n id\n name\n description\n }\n }\n }\n `,\n variables: { id: boardId }\n })\n\n return data\n}\n"]}
@@ -1,7 +1,10 @@
1
1
  export * from './graphql';
2
+ import { type ItemTypeTable } from '@hatiolab/things-scene';
2
3
  import type { FigureIdSearchOptions } from './restful';
3
4
  export type { FigureIdSearchOptions } from './restful';
4
5
  import { Board } from './types';
6
+ import { CARRIER_TYPES_THEME } from './carrier-types';
7
+ export { CARRIER_TYPES_THEME };
5
8
  export declare function isRestfulAvailable(): string | null;
6
9
  export declare function fetchGroupList(): Promise<any>;
7
10
  export declare function fetchBoardList(listParam?: any): Promise<any>;
@@ -39,3 +42,8 @@ export declare function searchFigureIds(type: string, keyword?: string, opts?: F
39
42
  * 빈 keyword 는 전체 반환. 예: "stk01 p03" ↔ "STK01-P03", "p03 stk01" 동일.
40
43
  */
41
44
  export declare function filterFigureIds(ids: string[], keyword: string): string[];
45
+ /**
46
+ * The domain's carrier type table (ADR-0155): its active carrier-types theme, from the customer backend in RESTful mode
47
+ * and from this board server otherwise, read by things-scene's rule. An empty table when the themes cannot be read.
48
+ */
49
+ export declare function fetchDomainCarrierTypes(): Promise<ItemTypeTable>;
package/dist/src/index.js CHANGED
@@ -1,8 +1,13 @@
1
1
  export * from './graphql';
2
+ import { itemTypesFromThemes } from '@hatiolab/things-scene';
3
+ import { fetchThemeList as graphqlFetchThemeList } from './graphql';
4
+ import { getThemes as restfulGetThemes } from './restful';
2
5
  import { themesColorMap as graphqlThemesColorMap, themesColorRange as graphqlThemesColorRange, themesAnimationMap as graphqlThemesAnimationMap } from './graphql';
3
6
  import { getPopupData as restfulGetPopupData, themesColorMap as restfulThemesColorMap, themesColorRange as restfulThemesColorRange, themesAnimationMap as restfulThemesAnimationMap } from './restful';
4
7
  import { fetchGroupList as restfulFetchGroupList, fetchBoardList as restfulFetchBoardList, createBoard as restfulCreateBoard, fetchBoardById as restfulFetchBoardById, fetchBoardNameById as restfulFetchBoardNameById, fetchBoardNameInfoById as restfulFetchBoardNameInfoById, reorderBoard as restfulReorderBoard, fetchPlayback as restfulFetchPlayback, fetchCarrierLocationHistory as restfulFetchCarrierLocationHistory, fetchFigureIds as restfulFetchFigureIds } from './restful';
5
8
  import { fetchGroupList as graphqlFetchGroupList, fetchBoardList as graphqlFetchBoardList, createBoard as graphqlCreateBoard, fetchBoardById as graphqlFetchBoardById, fetchBoardNameById as graphqlFetchBoardNameById, fetchBoardNameInfoById as graphqlFetchBoardNameInfoById, reorderBoard as graphqlReorderBoard, fetchPlayback as graphqlFetchPlayback, fetchCarrierLocationHistory as graphqlFetchCarrierLocationHistory } from './graphql';
9
+ import { CARRIER_TYPES_THEME } from './carrier-types';
10
+ export { CARRIER_TYPES_THEME };
6
11
  export function isRestfulAvailable() {
7
12
  return sessionStorage.getItem('lv_server_ip_port');
8
13
  }
@@ -151,4 +156,20 @@ export function filterFigureIds(ids, keyword) {
151
156
  return terms.every(t => s.includes(t));
152
157
  });
153
158
  }
159
+ /**
160
+ * The domain's carrier type table (ADR-0155): its active carrier-types theme, from the customer backend in RESTful mode
161
+ * and from this board server otherwise, read by things-scene's rule. An empty table when the themes cannot be read.
162
+ */
163
+ export async function fetchDomainCarrierTypes() {
164
+ var _a, _b, _c, _d;
165
+ try {
166
+ if (isRestfulAvailable())
167
+ return itemTypesFromThemes((_c = (_b = (_a = (await restfulGetThemes())) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.themeList) === null || _c === void 0 ? void 0 : _c.items, CARRIER_TYPES_THEME);
168
+ const data = await graphqlFetchThemeList({ filters: [{ name: 'type', operator: 'eq', value: CARRIER_TYPES_THEME }] });
169
+ return itemTypesFromThemes((_d = data === null || data === void 0 ? void 0 : data.responses) === null || _d === void 0 ? void 0 : _d.items, CARRIER_TYPES_THEME);
170
+ }
171
+ catch (_e) {
172
+ return itemTypesFromThemes([], CARRIER_TYPES_THEME);
173
+ }
174
+ }
154
175
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["export * from './graphql'\n\nimport {\n themesColorMap as graphqlThemesColorMap,\n themesColorRange as graphqlThemesColorRange,\n themesAnimationMap as graphqlThemesAnimationMap\n} from './graphql'\n\nimport {\n getPopupData as restfulGetPopupData,\n themesColorMap as restfulThemesColorMap,\n themesColorRange as restfulThemesColorRange,\n themesAnimationMap as restfulThemesAnimationMap\n} from './restful'\n\nimport {\n fetchGroupList as restfulFetchGroupList,\n fetchBoardList as restfulFetchBoardList,\n createBoard as restfulCreateBoard,\n fetchBoardById as restfulFetchBoardById,\n fetchBoardNameById as restfulFetchBoardNameById,\n fetchBoardNameInfoById as restfulFetchBoardNameInfoById,\n reorderBoard as restfulReorderBoard,\n fetchPlayback as restfulFetchPlayback,\n fetchCarrierLocationHistory as restfulFetchCarrierLocationHistory,\n fetchFigureIds as restfulFetchFigureIds\n} from './restful'\n\nimport type { FigureIdSearchOptions } from './restful'\nexport type { FigureIdSearchOptions } from './restful'\n\nimport {\n fetchGroupList as graphqlFetchGroupList,\n fetchBoardList as graphqlFetchBoardList,\n createBoard as graphqlCreateBoard,\n fetchBoardById as graphqlFetchBoardById,\n fetchBoardNameById as graphqlFetchBoardNameById,\n fetchBoardNameInfoById as graphqlFetchBoardNameInfoById,\n reorderBoard as graphqlReorderBoard,\n fetchPlayback as graphqlFetchPlayback,\n fetchCarrierLocationHistory as graphqlFetchCarrierLocationHistory\n} from './graphql'\n\nimport { Board } from './types'\n\nexport function isRestfulAvailable() {\n return sessionStorage.getItem('lv_server_ip_port')\n}\n\nexport async function fetchGroupList() {\n if (isRestfulAvailable()) {\n return await restfulFetchGroupList()\n } else {\n return await graphqlFetchGroupList()\n }\n}\n\nexport async function fetchBoardList(listParam: any = {}) {\n if (isRestfulAvailable()) {\n return await restfulFetchBoardList(listParam)\n } else {\n return await graphqlFetchBoardList(listParam)\n }\n}\n\nexport async function reorderBoard(id: string, prevId?: string, nextId?: string) {\n if (isRestfulAvailable()) {\n return await restfulReorderBoard(id, prevId, nextId)\n } else {\n return await graphqlReorderBoard(id, prevId, nextId)\n }\n}\n\nexport async function fetchPlayback(\n startTime: string,\n endTime?: string,\n includeSnapshot: boolean = true,\n count?: number\n) {\n if (isRestfulAvailable()) {\n return await restfulFetchPlayback(startTime, endTime, includeSnapshot, count)\n } else {\n return await graphqlFetchPlayback(startTime, endTime, includeSnapshot, count)\n }\n}\n\nexport async function fetchCarrierLocationHistory(\n startTime: string,\n endTime: string,\n carrierName: string\n) {\n if (isRestfulAvailable()) {\n return await restfulFetchCarrierLocationHistory(startTime, endTime, carrierName)\n } else {\n return await graphqlFetchCarrierLocationHistory(startTime, endTime, carrierName)\n }\n}\n\nexport async function fetchBoardById(id: string, cachedUpdatedAt?: string) {\n if (isRestfulAvailable()) {\n return await restfulFetchBoardById(id, cachedUpdatedAt)\n } else {\n return await graphqlFetchBoardById(id, cachedUpdatedAt)\n }\n}\n\nexport async function fetchBoardNameById(id: string): Promise<string> {\n if (isRestfulAvailable()) {\n return await restfulFetchBoardNameById(id)\n } else {\n return await graphqlFetchBoardNameById(id)\n }\n}\n\nexport async function fetchBoardNameInfoById(id: string): Promise<{ name?: string; nameI18n?: string }> {\n if (isRestfulAvailable()) {\n return await restfulFetchBoardNameInfoById(id)\n } else {\n return await graphqlFetchBoardNameInfoById(id)\n }\n}\n\nexport async function createBoard(board: Board) {\n if (isRestfulAvailable()) {\n return await restfulCreateBoard(board)\n } else {\n return await graphqlCreateBoard(board)\n }\n}\n\nexport async function themesColorMap() {\n if (isRestfulAvailable()) {\n return await restfulThemesColorMap()\n } else {\n return await graphqlThemesColorMap()\n }\n}\n\nexport async function themesColorRange() {\n if (isRestfulAvailable()) {\n return await restfulThemesColorRange()\n } else {\n return await graphqlThemesColorRange()\n }\n}\n\nexport async function themesAnimationMap() {\n if (isRestfulAvailable()) {\n return await restfulThemesAnimationMap()\n } else {\n return await graphqlThemesAnimationMap()\n }\n}\n\nexport async function getPopupData(type: string, id: string) {\n if (isRestfulAvailable()) {\n const response = (await restfulGetPopupData(type, id))?.data\n\n if (!response || !response.status) {\n document.dispatchEvent(\n new CustomEvent('notify', {\n detail: {\n level: 'error',\n message: 'Error : getPopupData'\n }\n })\n )\n throw new Error('Error : getPopupData')\n }\n\n return response.popupData\n } else {\n await new Promise(resolve => setTimeout(resolve, 1000))\n }\n}\n\n/**\n * 컴포넌트 타입 + 검색어로, MCS 에 이미 정의된 머신/유닛 ID 후보를 검색.\n * 보드 작화 시 컴포넌트 ID 를 자유 입력 대신 *검색해서 선택* 하기 위한 용도.\n *\n * 서버에는 type(+unit 이면 machine)만 보내 후보 목록을 받고, keyword 는 받은 목록을\n * 클라이언트에서 **풀텍스트 매칭** 으로 필터한다 — 서버에 keyword 를 보내지 않는다.\n *\n * 풀텍스트 전략: keyword 를 공백으로 토큰화하고, 각 토큰이 (순서 무관) 후보의 전체\n * 식별자(\"{machine} {unit}\", 대소문자 무관) 에 부분일치하면(AND) 매치로 본다.\n * 예) \"stk01 p03\" → STK01-P03 매치, \"p03 stk01\" 도 동일 매치.\n *\n * 결과는 **1차원 id 리스트(string[])** — machine 타입이면 머신 id, unit 타입이면 unit id.\n */\nexport async function searchFigureIds(\n type: string,\n keyword: string = '',\n opts: FigureIdSearchOptions = {}\n): Promise<string[]> {\n return filterFigureIds(await restfulFetchFigureIds(type, opts), keyword)\n}\n\n/**\n * 머신/유닛 id 리스트를 keyword 로 **풀텍스트 필터** — 서버 재조회 없이 로컬에서 사용.\n * keyword 를 공백 토큰화하고, 각 토큰이 (순서 무관) id 에 부분일치(AND) 하면 통과.\n * 빈 keyword 는 전체 반환. 예: \"stk01 p03\" ↔ \"STK01-P03\", \"p03 stk01\" 동일.\n */\nexport function filterFigureIds(ids: string[], keyword: string): string[] {\n const terms = keyword.trim().toLowerCase().split(/\\s+/).filter(Boolean)\n if (!terms.length) return ids\n return ids.filter(id => {\n const s = id.toLowerCase()\n return terms.every(t => s.includes(t))\n })\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["export * from './graphql'\n\nimport { itemTypesFromThemes, type ItemTypeTable } from '@hatiolab/things-scene'\nimport { fetchThemeList as graphqlFetchThemeList } from './graphql'\nimport { getThemes as restfulGetThemes } from './restful'\n\nimport {\n themesColorMap as graphqlThemesColorMap,\n themesColorRange as graphqlThemesColorRange,\n themesAnimationMap as graphqlThemesAnimationMap\n} from './graphql'\n\nimport {\n getPopupData as restfulGetPopupData,\n themesColorMap as restfulThemesColorMap,\n themesColorRange as restfulThemesColorRange,\n themesAnimationMap as restfulThemesAnimationMap\n} from './restful'\n\nimport {\n fetchGroupList as restfulFetchGroupList,\n fetchBoardList as restfulFetchBoardList,\n createBoard as restfulCreateBoard,\n fetchBoardById as restfulFetchBoardById,\n fetchBoardNameById as restfulFetchBoardNameById,\n fetchBoardNameInfoById as restfulFetchBoardNameInfoById,\n reorderBoard as restfulReorderBoard,\n fetchPlayback as restfulFetchPlayback,\n fetchCarrierLocationHistory as restfulFetchCarrierLocationHistory,\n fetchFigureIds as restfulFetchFigureIds\n} from './restful'\n\nimport type { FigureIdSearchOptions } from './restful'\nexport type { FigureIdSearchOptions } from './restful'\n\nimport {\n fetchGroupList as graphqlFetchGroupList,\n fetchBoardList as graphqlFetchBoardList,\n createBoard as graphqlCreateBoard,\n fetchBoardById as graphqlFetchBoardById,\n fetchBoardNameById as graphqlFetchBoardNameById,\n fetchBoardNameInfoById as graphqlFetchBoardNameInfoById,\n reorderBoard as graphqlReorderBoard,\n fetchPlayback as graphqlFetchPlayback,\n fetchCarrierLocationHistory as graphqlFetchCarrierLocationHistory\n} from './graphql'\n\nimport { Board } from './types'\nimport { CARRIER_TYPES_THEME } from './carrier-types'\n\nexport { CARRIER_TYPES_THEME }\n\nexport function isRestfulAvailable() {\n return sessionStorage.getItem('lv_server_ip_port')\n}\n\nexport async function fetchGroupList() {\n if (isRestfulAvailable()) {\n return await restfulFetchGroupList()\n } else {\n return await graphqlFetchGroupList()\n }\n}\n\nexport async function fetchBoardList(listParam: any = {}) {\n if (isRestfulAvailable()) {\n return await restfulFetchBoardList(listParam)\n } else {\n return await graphqlFetchBoardList(listParam)\n }\n}\n\nexport async function reorderBoard(id: string, prevId?: string, nextId?: string) {\n if (isRestfulAvailable()) {\n return await restfulReorderBoard(id, prevId, nextId)\n } else {\n return await graphqlReorderBoard(id, prevId, nextId)\n }\n}\n\nexport async function fetchPlayback(\n startTime: string,\n endTime?: string,\n includeSnapshot: boolean = true,\n count?: number\n) {\n if (isRestfulAvailable()) {\n return await restfulFetchPlayback(startTime, endTime, includeSnapshot, count)\n } else {\n return await graphqlFetchPlayback(startTime, endTime, includeSnapshot, count)\n }\n}\n\nexport async function fetchCarrierLocationHistory(\n startTime: string,\n endTime: string,\n carrierName: string\n) {\n if (isRestfulAvailable()) {\n return await restfulFetchCarrierLocationHistory(startTime, endTime, carrierName)\n } else {\n return await graphqlFetchCarrierLocationHistory(startTime, endTime, carrierName)\n }\n}\n\nexport async function fetchBoardById(id: string, cachedUpdatedAt?: string) {\n if (isRestfulAvailable()) {\n return await restfulFetchBoardById(id, cachedUpdatedAt)\n } else {\n return await graphqlFetchBoardById(id, cachedUpdatedAt)\n }\n}\n\nexport async function fetchBoardNameById(id: string): Promise<string> {\n if (isRestfulAvailable()) {\n return await restfulFetchBoardNameById(id)\n } else {\n return await graphqlFetchBoardNameById(id)\n }\n}\n\nexport async function fetchBoardNameInfoById(id: string): Promise<{ name?: string; nameI18n?: string }> {\n if (isRestfulAvailable()) {\n return await restfulFetchBoardNameInfoById(id)\n } else {\n return await graphqlFetchBoardNameInfoById(id)\n }\n}\n\nexport async function createBoard(board: Board) {\n if (isRestfulAvailable()) {\n return await restfulCreateBoard(board)\n } else {\n return await graphqlCreateBoard(board)\n }\n}\n\nexport async function themesColorMap() {\n if (isRestfulAvailable()) {\n return await restfulThemesColorMap()\n } else {\n return await graphqlThemesColorMap()\n }\n}\n\nexport async function themesColorRange() {\n if (isRestfulAvailable()) {\n return await restfulThemesColorRange()\n } else {\n return await graphqlThemesColorRange()\n }\n}\n\nexport async function themesAnimationMap() {\n if (isRestfulAvailable()) {\n return await restfulThemesAnimationMap()\n } else {\n return await graphqlThemesAnimationMap()\n }\n}\n\nexport async function getPopupData(type: string, id: string) {\n if (isRestfulAvailable()) {\n const response = (await restfulGetPopupData(type, id))?.data\n\n if (!response || !response.status) {\n document.dispatchEvent(\n new CustomEvent('notify', {\n detail: {\n level: 'error',\n message: 'Error : getPopupData'\n }\n })\n )\n throw new Error('Error : getPopupData')\n }\n\n return response.popupData\n } else {\n await new Promise(resolve => setTimeout(resolve, 1000))\n }\n}\n\n/**\n * 컴포넌트 타입 + 검색어로, MCS 에 이미 정의된 머신/유닛 ID 후보를 검색.\n * 보드 작화 시 컴포넌트 ID 를 자유 입력 대신 *검색해서 선택* 하기 위한 용도.\n *\n * 서버에는 type(+unit 이면 machine)만 보내 후보 목록을 받고, keyword 는 받은 목록을\n * 클라이언트에서 **풀텍스트 매칭** 으로 필터한다 — 서버에 keyword 를 보내지 않는다.\n *\n * 풀텍스트 전략: keyword 를 공백으로 토큰화하고, 각 토큰이 (순서 무관) 후보의 전체\n * 식별자(\"{machine} {unit}\", 대소문자 무관) 에 부분일치하면(AND) 매치로 본다.\n * 예) \"stk01 p03\" → STK01-P03 매치, \"p03 stk01\" 도 동일 매치.\n *\n * 결과는 **1차원 id 리스트(string[])** — machine 타입이면 머신 id, unit 타입이면 unit id.\n */\nexport async function searchFigureIds(\n type: string,\n keyword: string = '',\n opts: FigureIdSearchOptions = {}\n): Promise<string[]> {\n return filterFigureIds(await restfulFetchFigureIds(type, opts), keyword)\n}\n\n/**\n * 머신/유닛 id 리스트를 keyword 로 **풀텍스트 필터** — 서버 재조회 없이 로컬에서 사용.\n * keyword 를 공백 토큰화하고, 각 토큰이 (순서 무관) id 에 부분일치(AND) 하면 통과.\n * 빈 keyword 는 전체 반환. 예: \"stk01 p03\" ↔ \"STK01-P03\", \"p03 stk01\" 동일.\n */\nexport function filterFigureIds(ids: string[], keyword: string): string[] {\n const terms = keyword.trim().toLowerCase().split(/\\s+/).filter(Boolean)\n if (!terms.length) return ids\n return ids.filter(id => {\n const s = id.toLowerCase()\n return terms.every(t => s.includes(t))\n })\n}\n\n/**\n * The domain's carrier type table (ADR-0155): its active carrier-types theme, from the customer backend in RESTful mode\n * and from this board server otherwise, read by things-scene's rule. An empty table when the themes cannot be read.\n */\nexport async function fetchDomainCarrierTypes(): Promise<ItemTypeTable> {\n try {\n if (isRestfulAvailable()) return itemTypesFromThemes((await restfulGetThemes())?.data?.themeList?.items, CARRIER_TYPES_THEME)\n const data = await graphqlFetchThemeList({ filters: [{ name: 'type', operator: 'eq', value: CARRIER_TYPES_THEME }] })\n return itemTypesFromThemes(data?.responses?.items, CARRIER_TYPES_THEME)\n } catch {\n return itemTypesFromThemes([], CARRIER_TYPES_THEME)\n }\n}\n"]}
@@ -10,3 +10,4 @@ export * from './common';
10
10
  export * from './machine';
11
11
  export * from './theme';
12
12
  export * from './playback';
13
+ export { CARRIER_TYPES_THEME } from '../carrier-types';
@@ -10,4 +10,5 @@ export * from './common';
10
10
  export * from './machine';
11
11
  export * from './theme';
12
12
  export * from './playback';
13
+ export { CARRIER_TYPES_THEME } from '../carrier-types';
13
14
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/restful/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA;AACtB,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA","sourcesContent":["export * from './board'\nexport * from './authHeader'\nexport * from './favorite-board'\nexport * from './group'\nexport * from './font'\nexport * from './attachment'\nexport * from './connection'\nexport * from './scenario'\nexport * from './common'\nexport * from './machine'\nexport * from './theme'\nexport * from './playback'\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/restful/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA;AACtB,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA;AAC1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA","sourcesContent":["export * from './board'\nexport * from './authHeader'\nexport * from './favorite-board'\nexport * from './group'\nexport * from './font'\nexport * from './attachment'\nexport * from './connection'\nexport * from './scenario'\nexport * from './common'\nexport * from './machine'\nexport * from './theme'\nexport * from './playback'\nexport { CARRIER_TYPES_THEME } from '../carrier-types'\n"]}
@@ -38,6 +38,8 @@ export type Board = {
38
38
  description?: string;
39
39
  model?: any;
40
40
  groupId?: string;
41
+ /** 클라이언트가 메인 캔버스에서 뜬 썸네일 data URL. 저장할 때 model 과 함께 보낸다. */
42
+ thumbnail?: string;
41
43
  };
42
44
  export type BoardGroup = {
43
45
  id?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import { Model } from '@hatiolab/things-scene'\n\nexport interface PalletItem {\n type: string\n description: string\n icon: HTMLImageElement\n group:\n | 'line'\n | 'shape'\n | 'textAndMedio'\n | 'chartAndGauge'\n | 'table'\n | 'container'\n | 'IoT'\n | '3D'\n | 'warehouse'\n | 'form'\n | 'etc'\n | string\n model: Model\n}\n\nexport interface Pallet {\n name: string\n templates: PalletItem[]\n}\n\nexport type ComponentTemplate = {\n type: string\n description: string\n group: string | string[]\n icon: any\n model: Model\n}\n\nexport type ComponentGroup = {\n name: string\n description: string\n icon: string\n templates: ComponentTemplate[]\n}\n\nexport type Board = {\n id?: string\n name?: string\n /** 보드명 다국어 { lang: name } JSON 문자열. 편집(저작) 폼 전용 — 표시에는 displayName 을 쓴다. */\n nameI18n?: string\n /**\n * 현재 요청 언어(X-Lang = lv_server_lang)로 백엔드가 해석해 내려주는 표시명.\n * 표시/리스팅은 이 값을 쓴다(없으면 name 폴백). name/nameI18n 원본은 편집용으로 보존.\n */\n displayName?: string\n /** 숨김 플래그. 보드 리스트 기본 조회에서 제외됨. */\n hidden?: boolean\n description?: string\n model?: any\n groupId?: string\n}\n\nexport type BoardGroup = {\n id?: string\n name?: string\n description?: string\n}\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import { Model } from '@hatiolab/things-scene'\n\nexport interface PalletItem {\n type: string\n description: string\n icon: HTMLImageElement\n group:\n | 'line'\n | 'shape'\n | 'textAndMedio'\n | 'chartAndGauge'\n | 'table'\n | 'container'\n | 'IoT'\n | '3D'\n | 'warehouse'\n | 'form'\n | 'etc'\n | string\n model: Model\n}\n\nexport interface Pallet {\n name: string\n templates: PalletItem[]\n}\n\nexport type ComponentTemplate = {\n type: string\n description: string\n group: string | string[]\n icon: any\n model: Model\n}\n\nexport type ComponentGroup = {\n name: string\n description: string\n icon: string\n templates: ComponentTemplate[]\n}\n\nexport type Board = {\n id?: string\n name?: string\n /** 보드명 다국어 { lang: name } JSON 문자열. 편집(저작) 폼 전용 — 표시에는 displayName 을 쓴다. */\n nameI18n?: string\n /**\n * 현재 요청 언어(X-Lang = lv_server_lang)로 백엔드가 해석해 내려주는 표시명.\n * 표시/리스팅은 이 값을 쓴다(없으면 name 폴백). name/nameI18n 원본은 편집용으로 보존.\n */\n displayName?: string\n /** 숨김 플래그. 보드 리스트 기본 조회에서 제외됨. */\n hidden?: boolean\n description?: string\n model?: any\n groupId?: string\n /** 클라이언트가 메인 캔버스에서 뜬 썸네일 data URL. 저장할 때 model 과 함께 보낸다. */\n thumbnail?: string\n}\n\nexport type BoardGroup = {\n id?: string\n name?: string\n description?: string\n}\n"]}