sd-render 1.2.6 → 1.2.7

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,268 @@
1
+ import { PropType } from 'vue';
2
+ /**
3
+ * SdSmartCard — headless Thai ID smart-card listener
4
+ *
5
+ * ทำตัวเหมือน background process: เปิด WebSocket ไปหา local agent (sd-card-agent /
6
+ * softmax-agent) ที่อ่านบัตรประชาชนไทยผ่าน PC/SC. agent เป็นฝั่ง push อย่างเดียว —
7
+ * พอเสียบบัตร/ถอดบัตร/เครื่องอ่านเปลี่ยนสถานะ จะ push event มาเอง widget แปลงเป็น
8
+ * $emit ออกไป ให้ host เขียน JS ว่าจะทำอะไรต่อ (เช่น map ค่าลงฟอร์ม)
9
+ *
10
+ * ไม่มี UI input — default ซ่อนทุกอย่าง (renderless). เปิด indicator='dot'/'badge'
11
+ * เพื่อโชว์สถานะเล็กๆ ที่มุมจอได้ (teleport to body)
12
+ *
13
+ * agent เป็น local process ที่อาจปิด/restart ระหว่างใช้งาน → default auto-reconnect
14
+ * แบบ exponential backoff. agent ส่ง state snapshot ให้ตอน client เพิ่ง connect
15
+ * (reader-connected / card-read ล่าสุด) → handle เหมือน event ปกติ
16
+ */
17
+ /** ข้อมูลที่อ่านได้จากบัตร — ตรงกับ ThaiIDData ของ agent (field profile full เป็น optional) */
18
+ export interface ThaiIDData {
19
+ cid: string;
20
+ titleTH: string;
21
+ firstNameTH: string;
22
+ lastNameTH: string;
23
+ birthDate: string;
24
+ firstNameEN?: string;
25
+ lastNameEN?: string;
26
+ gender?: string;
27
+ address?: string;
28
+ issueDate?: string;
29
+ expireDate?: string;
30
+ photo?: string;
31
+ }
32
+ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
33
+ /**
34
+ * URL ของ agent แบบเต็ม — ถ้าให้มา ใช้ตรงๆ (override host/port/token/secure)
35
+ * เช่น 'ws://localhost:8765/?token=change-me'
36
+ */
37
+ url: {
38
+ type: StringConstructor;
39
+ default: string;
40
+ };
41
+ /** host ของ agent (ใช้เมื่อไม่ระบุ url) */
42
+ host: {
43
+ type: StringConstructor;
44
+ default: string;
45
+ };
46
+ /** port ของ agent (ใช้เมื่อไม่ระบุ url) */
47
+ port: {
48
+ type: NumberConstructor;
49
+ default: number;
50
+ };
51
+ /** token auth (ตรงกับ config.token ของ agent — dev default = 'change-me') */
52
+ token: {
53
+ type: StringConstructor;
54
+ default: string;
55
+ };
56
+ /** ใช้ wss (TLS) แทน ws — ใช้เมื่อไม่ระบุ url */
57
+ secure: {
58
+ type: BooleanConstructor;
59
+ default: boolean;
60
+ };
61
+ /** ต่อ ws อัตโนมัติตอน mount */
62
+ autoConnect: {
63
+ type: BooleanConstructor;
64
+ default: boolean;
65
+ };
66
+ /** ปิดการทำงานชั่วคราว (ปิด ws + ไม่ reconnect) */
67
+ disabled: {
68
+ type: BooleanConstructor;
69
+ default: boolean;
70
+ };
71
+ /** auto-reconnect เมื่อ ws หลุด (exponential backoff) */
72
+ reconnect: {
73
+ type: BooleanConstructor;
74
+ default: boolean;
75
+ };
76
+ /** ดีเลย์เริ่มต้นก่อน reconnect (ms) — จะคูณเพิ่มแบบ backoff ทุกครั้งที่ fail */
77
+ reconnectDelay: {
78
+ type: NumberConstructor;
79
+ default: number;
80
+ };
81
+ /** เพดานดีเลย์ reconnect (ms) */
82
+ reconnectMaxDelay: {
83
+ type: NumberConstructor;
84
+ default: number;
85
+ };
86
+ /**
87
+ * แสดงสถานะเล็กๆ ที่มุมจอ:
88
+ * - 'none' (default) : ซ่อนทุกอย่าง (headless ล้วน)
89
+ * - 'dot' : จุดเล็กๆ ล้วน บอกสถานะด้วยสี — ย่อสุด
90
+ * - 'status' : จุด + ข้อความสถานะ (ไม่โชว์ value) — แบบย่อ
91
+ * - 'badge' : จุด + ข้อความสถานะ + cid ล่าสุด — เต็ม
92
+ */
93
+ indicator: {
94
+ type: PropType<"none" | "dot" | "status" | "badge">;
95
+ default: string;
96
+ };
97
+ /** ตำแหน่ง indicator */
98
+ indicatorPosition: {
99
+ type: PropType<"top-left" | "top-right" | "bottom-left" | "bottom-right">;
100
+ default: string;
101
+ };
102
+ /**
103
+ * auto-hide indicator (วินาที) — หลังมีสถานะแสดง ถ้าเงียบครบ N วิ จะ fade หายไป
104
+ * แล้วโผล่กลับเมื่อมี activity ใหม่. 0 = แสดงตลอด (ไม่หาย)
105
+ */
106
+ indicatorTimeout: {
107
+ type: NumberConstructor;
108
+ default: number;
109
+ };
110
+ }>, {}, {
111
+ ws: WebSocket | null;
112
+ connState: "connecting" | "open" | "closed";
113
+ readerPresent: boolean;
114
+ cardPresent: boolean;
115
+ reading: boolean;
116
+ lastData: ThaiIDData | null;
117
+ lastCid: string;
118
+ lastError: string;
119
+ flash: boolean;
120
+ indicatorVisible: boolean;
121
+ attempts: number;
122
+ manualClose: boolean;
123
+ reconnectTimer: number | undefined;
124
+ flashTimer: number | undefined;
125
+ hideTimer: number | undefined;
126
+ }, {
127
+ /** URL จริงที่ใช้ต่อ — prop url ชนะ, ไม่งั้นประกอบจาก host/port/token/secure */
128
+ wsUrl(): string;
129
+ /** สถานะรวมสำหรับ indicator */
130
+ statusState(): "disabled" | "offline" | "connecting" | "no-reader" | "reading" | "ready";
131
+ statusLabel(): string;
132
+ indicatorTitle(): string;
133
+ /** indicator ควรแสดงตอนนี้ไหม — timeout<=0 แสดงตลอด, >0 แสดงเฉพาะตอนมี activity ล่าสุด */
134
+ indicatorShown(): boolean;
135
+ /** signature ของ option ที่กระทบการต่อ — เปลี่ยนแล้ว reconnect */
136
+ connectKey(): string;
137
+ }, {
138
+ /** เปิด ws ไป agent */
139
+ connect(): void;
140
+ openSocket(): void;
141
+ /** ปิด ws เอง (ไม่ reconnect) */
142
+ disconnect(): void;
143
+ /** ปิดแล้วต่อใหม่ทันที (reset backoff) */
144
+ reconnectNow(): void;
145
+ /** ปิด socket + ล้าง handler + ยกเลิก reconnect ที่ค้าง */
146
+ teardown(): void;
147
+ clearReconnect(): void;
148
+ /** ตั้งเวลา reconnect แบบ exponential backoff (มีเพดาน) */
149
+ scheduleReconnect(): void;
150
+ /** แปลง message จาก agent → state + $emit */
151
+ handleMessage(ev: MessageEvent): void;
152
+ /** flash indicator สั้นๆ เมื่ออ่านบัตรสำเร็จ */
153
+ doFlash(): void;
154
+ /** มี activity → แสดง indicator แล้วตั้งเวลา auto-hide (เฉพาะ indicatorTimeout > 0) */
155
+ pokeIndicator(): void;
156
+ /** ต่อ ws (ถ้ายังไม่ต่อ) */
157
+ open(): void;
158
+ /** ปิด ws เอง */
159
+ close(): void;
160
+ /** ต่อใหม่ทันที (reset backoff) */
161
+ reconnectSocket(): void;
162
+ isConnected(): boolean;
163
+ /** ข้อมูลบัตรที่อ่านได้ล่าสุด (null ถ้ายังไม่เคยอ่านสำเร็จ) */
164
+ getLastData(): ThaiIDData | null;
165
+ }, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, ("error" | "message" | "card-reading" | "card-read" | "card-removed" | "reader-connected" | "reader-disconnected" | "connected" | "disconnected")[], "error" | "message" | "card-reading" | "card-read" | "card-removed" | "reader-connected" | "reader-disconnected" | "connected" | "disconnected", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
166
+ /**
167
+ * URL ของ agent แบบเต็ม — ถ้าให้มา ใช้ตรงๆ (override host/port/token/secure)
168
+ * เช่น 'ws://localhost:8765/?token=change-me'
169
+ */
170
+ url: {
171
+ type: StringConstructor;
172
+ default: string;
173
+ };
174
+ /** host ของ agent (ใช้เมื่อไม่ระบุ url) */
175
+ host: {
176
+ type: StringConstructor;
177
+ default: string;
178
+ };
179
+ /** port ของ agent (ใช้เมื่อไม่ระบุ url) */
180
+ port: {
181
+ type: NumberConstructor;
182
+ default: number;
183
+ };
184
+ /** token auth (ตรงกับ config.token ของ agent — dev default = 'change-me') */
185
+ token: {
186
+ type: StringConstructor;
187
+ default: string;
188
+ };
189
+ /** ใช้ wss (TLS) แทน ws — ใช้เมื่อไม่ระบุ url */
190
+ secure: {
191
+ type: BooleanConstructor;
192
+ default: boolean;
193
+ };
194
+ /** ต่อ ws อัตโนมัติตอน mount */
195
+ autoConnect: {
196
+ type: BooleanConstructor;
197
+ default: boolean;
198
+ };
199
+ /** ปิดการทำงานชั่วคราว (ปิด ws + ไม่ reconnect) */
200
+ disabled: {
201
+ type: BooleanConstructor;
202
+ default: boolean;
203
+ };
204
+ /** auto-reconnect เมื่อ ws หลุด (exponential backoff) */
205
+ reconnect: {
206
+ type: BooleanConstructor;
207
+ default: boolean;
208
+ };
209
+ /** ดีเลย์เริ่มต้นก่อน reconnect (ms) — จะคูณเพิ่มแบบ backoff ทุกครั้งที่ fail */
210
+ reconnectDelay: {
211
+ type: NumberConstructor;
212
+ default: number;
213
+ };
214
+ /** เพดานดีเลย์ reconnect (ms) */
215
+ reconnectMaxDelay: {
216
+ type: NumberConstructor;
217
+ default: number;
218
+ };
219
+ /**
220
+ * แสดงสถานะเล็กๆ ที่มุมจอ:
221
+ * - 'none' (default) : ซ่อนทุกอย่าง (headless ล้วน)
222
+ * - 'dot' : จุดเล็กๆ ล้วน บอกสถานะด้วยสี — ย่อสุด
223
+ * - 'status' : จุด + ข้อความสถานะ (ไม่โชว์ value) — แบบย่อ
224
+ * - 'badge' : จุด + ข้อความสถานะ + cid ล่าสุด — เต็ม
225
+ */
226
+ indicator: {
227
+ type: PropType<"none" | "dot" | "status" | "badge">;
228
+ default: string;
229
+ };
230
+ /** ตำแหน่ง indicator */
231
+ indicatorPosition: {
232
+ type: PropType<"top-left" | "top-right" | "bottom-left" | "bottom-right">;
233
+ default: string;
234
+ };
235
+ /**
236
+ * auto-hide indicator (วินาที) — หลังมีสถานะแสดง ถ้าเงียบครบ N วิ จะ fade หายไป
237
+ * แล้วโผล่กลับเมื่อมี activity ใหม่. 0 = แสดงตลอด (ไม่หาย)
238
+ */
239
+ indicatorTimeout: {
240
+ type: NumberConstructor;
241
+ default: number;
242
+ };
243
+ }>> & Readonly<{
244
+ onError?: ((...args: any[]) => any) | undefined;
245
+ onMessage?: ((...args: any[]) => any) | undefined;
246
+ "onCard-reading"?: ((...args: any[]) => any) | undefined;
247
+ "onCard-read"?: ((...args: any[]) => any) | undefined;
248
+ "onCard-removed"?: ((...args: any[]) => any) | undefined;
249
+ "onReader-connected"?: ((...args: any[]) => any) | undefined;
250
+ "onReader-disconnected"?: ((...args: any[]) => any) | undefined;
251
+ onConnected?: ((...args: any[]) => any) | undefined;
252
+ onDisconnected?: ((...args: any[]) => any) | undefined;
253
+ }>, {
254
+ disabled: boolean;
255
+ url: string;
256
+ host: string;
257
+ token: string;
258
+ autoConnect: boolean;
259
+ indicatorPosition: "bottom-left" | "bottom-right" | "top-left" | "top-right";
260
+ indicator: "none" | "status" | "dot" | "badge";
261
+ indicatorTimeout: number;
262
+ port: number;
263
+ secure: boolean;
264
+ reconnect: boolean;
265
+ reconnectDelay: number;
266
+ reconnectMaxDelay: number;
267
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
268
+ export default _default;
@@ -367,6 +367,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
367
367
  providerType: string;
368
368
  dataProvider: SdProvider;
369
369
  textColor: string;
370
+ labelField: string;
370
371
  parentId: string;
371
372
  iconField: string;
372
373
  limitRow: number;
@@ -375,7 +376,6 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
375
376
  buildState: boolean;
376
377
  customValue: CustomValue[];
377
378
  borderColor: string;
378
- labelField: string;
379
379
  pathField: string;
380
380
  roleField: string;
381
381
  subMenuField: string;