@operato/font 1.0.0-beta.9 → 1.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/CHANGELOG.md +392 -0
  2. package/custom-elements.json +855 -0
  3. package/dist/src/font-creation-card.d.ts +18 -0
  4. package/dist/src/font-creation-card.js +258 -0
  5. package/dist/src/font-creation-card.js.map +1 -0
  6. package/dist/src/font-graphql-client.d.ts +20 -0
  7. package/dist/src/font-graphql-client.js +109 -0
  8. package/dist/src/font-graphql-client.js.map +1 -0
  9. package/dist/src/font-selector.d.ts +36 -0
  10. package/dist/src/font-selector.js +285 -0
  11. package/dist/src/font-selector.js.map +1 -0
  12. package/dist/src/index.d.ts +5 -0
  13. package/dist/src/index.js +6 -0
  14. package/dist/src/index.js.map +1 -0
  15. package/dist/src/ox-file-selector.d.ts +12 -0
  16. package/dist/src/ox-file-selector.js +129 -0
  17. package/dist/src/ox-file-selector.js.map +1 -0
  18. package/dist/src/ox-font-selector.d.ts +15 -0
  19. package/dist/src/ox-font-selector.js +88 -0
  20. package/dist/src/ox-font-selector.js.map +1 -0
  21. package/dist/src/ox-property-editor-font-selector.d.ts +8 -0
  22. package/dist/src/ox-property-editor-font-selector.js +13 -0
  23. package/dist/src/ox-property-editor-font-selector.js.map +1 -0
  24. package/dist/src/redux-font-actions.d.ts +7 -0
  25. package/dist/src/redux-font-actions.js +19 -0
  26. package/dist/src/redux-font-actions.js.map +1 -0
  27. package/dist/src/redux-font-reducers.d.ts +12 -0
  28. package/dist/src/redux-font-reducers.js +70 -0
  29. package/dist/src/redux-font-reducers.js.map +1 -0
  30. package/dist/tsconfig.tsbuildinfo +1 -0
  31. package/package.json +78 -20
  32. package/src/font-creation-card.ts +260 -0
  33. package/src/{graphql-client.js → font-graphql-client.ts} +35 -26
  34. package/src/font-selector.ts +284 -0
  35. package/src/index.ts +6 -0
  36. package/src/ox-file-selector.ts +114 -0
  37. package/src/ox-font-selector.ts +94 -0
  38. package/src/ox-property-editor-font-selector.ts +17 -0
  39. package/src/redux-font-actions.ts +21 -0
  40. package/src/redux-font-reducers.ts +88 -0
  41. package/src/font-creation-card.js +0 -311
  42. package/src/font-selector.js +0 -465
  43. package/src/index.js +0 -3
  44. package/src/ox-font-selector.js +0 -102
  45. package/src/ox-property-editor-font-selector.js +0 -25
  46. package/things-factory.config.js +0 -5
@@ -0,0 +1,855 @@
1
+ {
2
+ "schemaVersion": "1.0.0",
3
+ "readme": "",
4
+ "modules": [
5
+ {
6
+ "kind": "javascript-module",
7
+ "path": "src/font-creation-card.ts",
8
+ "declarations": [
9
+ {
10
+ "kind": "class",
11
+ "description": "",
12
+ "name": "FontCreationCard",
13
+ "members": [
14
+ {
15
+ "kind": "field",
16
+ "name": "provider",
17
+ "type": {
18
+ "text": "string"
19
+ },
20
+ "default": "'google'",
21
+ "attribute": "provider"
22
+ },
23
+ {
24
+ "kind": "field",
25
+ "name": "googleFonts",
26
+ "type": {
27
+ "text": "Array<string>"
28
+ },
29
+ "default": "[]",
30
+ "attribute": "googleFonts"
31
+ },
32
+ {
33
+ "kind": "field",
34
+ "name": "files",
35
+ "type": {
36
+ "text": "Array<any> | undefined"
37
+ },
38
+ "attribute": "files"
39
+ },
40
+ {
41
+ "kind": "field",
42
+ "name": "providers",
43
+ "type": {
44
+ "text": "Array<{ value: string; display: string }>"
45
+ },
46
+ "default": "[\n { value: 'google', display: 'Google' },\n // TODO 구글 외 폰트 서비스 구현\n // { value: 'typekit', display: 'Typekit' },\n { value: 'custom', display: 'Custom' }\n ]"
47
+ },
48
+ {
49
+ "kind": "method",
50
+ "name": "onClickFlip",
51
+ "parameters": [
52
+ {
53
+ "name": "e",
54
+ "type": {
55
+ "text": "Event"
56
+ }
57
+ }
58
+ ]
59
+ },
60
+ {
61
+ "kind": "method",
62
+ "name": "onClickSubmit",
63
+ "parameters": [
64
+ {
65
+ "name": "e",
66
+ "type": {
67
+ "text": "Event"
68
+ }
69
+ }
70
+ ]
71
+ },
72
+ {
73
+ "kind": "method",
74
+ "name": "reset"
75
+ }
76
+ ],
77
+ "events": [
78
+ {
79
+ "name": "create-font",
80
+ "type": {
81
+ "text": "CustomEvent"
82
+ }
83
+ }
84
+ ],
85
+ "attributes": [
86
+ {
87
+ "name": "provider",
88
+ "type": {
89
+ "text": "string"
90
+ },
91
+ "default": "'google'",
92
+ "fieldName": "provider"
93
+ },
94
+ {
95
+ "name": "googleFonts",
96
+ "type": {
97
+ "text": "Array<string>"
98
+ },
99
+ "default": "[]",
100
+ "fieldName": "googleFonts"
101
+ },
102
+ {
103
+ "name": "files",
104
+ "type": {
105
+ "text": "Array<any> | undefined"
106
+ },
107
+ "fieldName": "files"
108
+ }
109
+ ],
110
+ "mixins": [
111
+ {
112
+ "name": "localize(i18next)",
113
+ "module": "src/font-creation-card.ts"
114
+ }
115
+ ],
116
+ "superclass": {
117
+ "name": "LitElement",
118
+ "package": "lit"
119
+ },
120
+ "tagName": "font-creation-card",
121
+ "customElement": true
122
+ }
123
+ ],
124
+ "exports": [
125
+ {
126
+ "kind": "js",
127
+ "name": "FontCreationCard",
128
+ "declaration": {
129
+ "name": "FontCreationCard",
130
+ "module": "src/font-creation-card.ts"
131
+ }
132
+ },
133
+ {
134
+ "kind": "custom-element-definition",
135
+ "name": "font-creation-card",
136
+ "declaration": {
137
+ "name": "FontCreationCard",
138
+ "module": "src/font-creation-card.ts"
139
+ }
140
+ }
141
+ ]
142
+ },
143
+ {
144
+ "kind": "javascript-module",
145
+ "path": "src/font-graphql-client.ts",
146
+ "declarations": [
147
+ {
148
+ "kind": "function",
149
+ "name": "fetchFontList",
150
+ "parameters": [
151
+ {
152
+ "name": "listParam",
153
+ "optional": true,
154
+ "type": {
155
+ "text": "Object"
156
+ },
157
+ "description": "{filters, pagination, sortings}"
158
+ }
159
+ ]
160
+ },
161
+ {
162
+ "kind": "function",
163
+ "name": "createFont",
164
+ "parameters": [
165
+ {
166
+ "name": "font",
167
+ "type": {
168
+ "text": "Object"
169
+ },
170
+ "description": "Font patch"
171
+ }
172
+ ]
173
+ },
174
+ {
175
+ "kind": "function",
176
+ "name": "updateFont",
177
+ "parameters": [
178
+ {
179
+ "name": "font",
180
+ "type": {
181
+ "text": "Object"
182
+ },
183
+ "description": "Font patch"
184
+ }
185
+ ]
186
+ },
187
+ {
188
+ "kind": "function",
189
+ "name": "deleteFont",
190
+ "parameters": [
191
+ {
192
+ "name": "id",
193
+ "type": {
194
+ "text": "String"
195
+ },
196
+ "description": "Font id"
197
+ }
198
+ ]
199
+ }
200
+ ],
201
+ "exports": [
202
+ {
203
+ "kind": "js",
204
+ "name": "fetchFontList",
205
+ "declaration": {
206
+ "name": "fetchFontList",
207
+ "module": "src/font-graphql-client.ts"
208
+ }
209
+ },
210
+ {
211
+ "kind": "js",
212
+ "name": "createFont",
213
+ "declaration": {
214
+ "name": "createFont",
215
+ "module": "src/font-graphql-client.ts"
216
+ }
217
+ },
218
+ {
219
+ "kind": "js",
220
+ "name": "updateFont",
221
+ "declaration": {
222
+ "name": "updateFont",
223
+ "module": "src/font-graphql-client.ts"
224
+ }
225
+ },
226
+ {
227
+ "kind": "js",
228
+ "name": "deleteFont",
229
+ "declaration": {
230
+ "name": "deleteFont",
231
+ "module": "src/font-graphql-client.ts"
232
+ }
233
+ }
234
+ ]
235
+ },
236
+ {
237
+ "kind": "javascript-module",
238
+ "path": "src/font-selector.ts",
239
+ "declarations": [
240
+ {
241
+ "kind": "class",
242
+ "description": "",
243
+ "name": "FontSelector",
244
+ "members": [
245
+ {
246
+ "kind": "field",
247
+ "name": "fonts",
248
+ "type": {
249
+ "text": "Array<any>"
250
+ },
251
+ "default": "[]",
252
+ "attribute": "fonts"
253
+ },
254
+ {
255
+ "kind": "field",
256
+ "name": "creatable",
257
+ "type": {
258
+ "text": "boolean"
259
+ },
260
+ "default": "false",
261
+ "attribute": "creatable"
262
+ },
263
+ {
264
+ "kind": "field",
265
+ "name": "provider",
266
+ "type": {
267
+ "text": "string"
268
+ },
269
+ "default": "''",
270
+ "attribute": "provider"
271
+ },
272
+ {
273
+ "kind": "field",
274
+ "name": "main",
275
+ "type": {
276
+ "text": "HTMLElement"
277
+ }
278
+ },
279
+ {
280
+ "kind": "field",
281
+ "name": "filter",
282
+ "type": {
283
+ "text": "HTMLElement"
284
+ }
285
+ },
286
+ {
287
+ "kind": "field",
288
+ "name": "creationCard",
289
+ "type": {
290
+ "text": "{ reset: () => {} }"
291
+ }
292
+ },
293
+ {
294
+ "kind": "field",
295
+ "name": "showGotoTop",
296
+ "type": {
297
+ "text": "boolean"
298
+ },
299
+ "default": "false"
300
+ },
301
+ {
302
+ "kind": "method",
303
+ "name": "stateChanged",
304
+ "parameters": [
305
+ {
306
+ "name": "state",
307
+ "type": {
308
+ "text": "any"
309
+ }
310
+ }
311
+ ]
312
+ },
313
+ {
314
+ "kind": "method",
315
+ "name": "refresh"
316
+ },
317
+ {
318
+ "kind": "method",
319
+ "name": "toggleActive",
320
+ "parameters": [
321
+ {
322
+ "name": "font",
323
+ "type": {
324
+ "text": "{ id: string; active: boolean }"
325
+ }
326
+ }
327
+ ]
328
+ },
329
+ {
330
+ "kind": "method",
331
+ "name": "onCreateFont",
332
+ "parameters": [
333
+ {
334
+ "name": "e",
335
+ "type": {
336
+ "text": "CustomEvent"
337
+ }
338
+ }
339
+ ]
340
+ },
341
+ {
342
+ "kind": "method",
343
+ "name": "deleteFont",
344
+ "parameters": [
345
+ {
346
+ "name": "font",
347
+ "type": {
348
+ "text": "{ id: string }"
349
+ }
350
+ }
351
+ ]
352
+ },
353
+ {
354
+ "kind": "method",
355
+ "name": "onClickSelect",
356
+ "parameters": [
357
+ {
358
+ "name": "font",
359
+ "type": {
360
+ "text": "any"
361
+ }
362
+ }
363
+ ]
364
+ }
365
+ ],
366
+ "events": [
367
+ {
368
+ "name": "font-selected",
369
+ "type": {
370
+ "text": "CustomEvent"
371
+ }
372
+ }
373
+ ],
374
+ "attributes": [
375
+ {
376
+ "name": "fonts",
377
+ "type": {
378
+ "text": "Array<any>"
379
+ },
380
+ "default": "[]",
381
+ "fieldName": "fonts"
382
+ },
383
+ {
384
+ "name": "creatable",
385
+ "type": {
386
+ "text": "boolean"
387
+ },
388
+ "default": "false",
389
+ "fieldName": "creatable"
390
+ },
391
+ {
392
+ "name": "provider",
393
+ "type": {
394
+ "text": "string"
395
+ },
396
+ "default": "''",
397
+ "fieldName": "provider"
398
+ }
399
+ ],
400
+ "mixins": [
401
+ {
402
+ "name": "localize(i18next)",
403
+ "module": "src/font-selector.ts"
404
+ },
405
+ {
406
+ "name": "connect(store)",
407
+ "module": "src/font-selector.ts"
408
+ }
409
+ ],
410
+ "superclass": {
411
+ "name": "LitElement",
412
+ "package": "lit"
413
+ },
414
+ "tagName": "font-selector",
415
+ "customElement": true
416
+ }
417
+ ],
418
+ "exports": [
419
+ {
420
+ "kind": "js",
421
+ "name": "FontSelector",
422
+ "declaration": {
423
+ "name": "FontSelector",
424
+ "module": "src/font-selector.ts"
425
+ }
426
+ },
427
+ {
428
+ "kind": "custom-element-definition",
429
+ "name": "font-selector",
430
+ "declaration": {
431
+ "name": "FontSelector",
432
+ "module": "src/font-selector.ts"
433
+ }
434
+ }
435
+ ]
436
+ },
437
+ {
438
+ "kind": "javascript-module",
439
+ "path": "src/index.ts",
440
+ "declarations": [],
441
+ "exports": [
442
+ {
443
+ "kind": "js",
444
+ "name": "*",
445
+ "declaration": {
446
+ "name": "*",
447
+ "package": "./font-selector.js"
448
+ }
449
+ },
450
+ {
451
+ "kind": "js",
452
+ "name": "*",
453
+ "declaration": {
454
+ "name": "*",
455
+ "package": "./ox-font-selector.js"
456
+ }
457
+ },
458
+ {
459
+ "kind": "js",
460
+ "name": "*",
461
+ "declaration": {
462
+ "name": "*",
463
+ "package": "./ox-property-editor-font-selector.js"
464
+ }
465
+ },
466
+ {
467
+ "kind": "js",
468
+ "name": "*",
469
+ "declaration": {
470
+ "name": "*",
471
+ "package": "./redux-font-actions.js"
472
+ }
473
+ },
474
+ {
475
+ "kind": "js",
476
+ "name": "ReducerFont",
477
+ "declaration": {
478
+ "name": "default",
479
+ "module": "./redux-font-reducers.js"
480
+ }
481
+ }
482
+ ]
483
+ },
484
+ {
485
+ "kind": "javascript-module",
486
+ "path": "src/ox-file-selector.ts",
487
+ "declarations": [
488
+ {
489
+ "kind": "class",
490
+ "description": "",
491
+ "name": "OxFileSelector",
492
+ "members": [
493
+ {
494
+ "kind": "field",
495
+ "name": "label",
496
+ "type": {
497
+ "text": "string"
498
+ },
499
+ "default": "'select file'",
500
+ "attribute": "label"
501
+ },
502
+ {
503
+ "kind": "field",
504
+ "name": "accept",
505
+ "type": {
506
+ "text": "string | undefined"
507
+ },
508
+ "attribute": "accept"
509
+ },
510
+ {
511
+ "kind": "field",
512
+ "name": "showFilename",
513
+ "type": {
514
+ "text": "boolean"
515
+ },
516
+ "default": "false",
517
+ "attribute": "show-filename"
518
+ },
519
+ {
520
+ "kind": "field",
521
+ "name": "multiple",
522
+ "type": {
523
+ "text": "boolean"
524
+ },
525
+ "default": "false",
526
+ "attribute": "multiple"
527
+ },
528
+ {
529
+ "kind": "field",
530
+ "name": "_files",
531
+ "type": {
532
+ "text": "Array<any>"
533
+ },
534
+ "default": "[]",
535
+ "attribute": "_files"
536
+ }
537
+ ],
538
+ "events": [
539
+ {
540
+ "name": "file-change",
541
+ "type": {
542
+ "text": "CustomEvent"
543
+ }
544
+ }
545
+ ],
546
+ "attributes": [
547
+ {
548
+ "name": "label",
549
+ "type": {
550
+ "text": "string"
551
+ },
552
+ "default": "'select file'",
553
+ "fieldName": "label"
554
+ },
555
+ {
556
+ "name": "accept",
557
+ "type": {
558
+ "text": "string | undefined"
559
+ },
560
+ "fieldName": "accept"
561
+ },
562
+ {
563
+ "name": "show-filename",
564
+ "type": {
565
+ "text": "boolean"
566
+ },
567
+ "default": "false",
568
+ "fieldName": "showFilename"
569
+ },
570
+ {
571
+ "name": "multiple",
572
+ "type": {
573
+ "text": "boolean"
574
+ },
575
+ "default": "false",
576
+ "fieldName": "multiple"
577
+ },
578
+ {
579
+ "name": "_files",
580
+ "type": {
581
+ "text": "Array<any>"
582
+ },
583
+ "default": "[]",
584
+ "fieldName": "_files"
585
+ }
586
+ ],
587
+ "superclass": {
588
+ "name": "LitElement",
589
+ "package": "lit"
590
+ },
591
+ "tagName": "ox-file-selector",
592
+ "customElement": true
593
+ }
594
+ ],
595
+ "exports": [
596
+ {
597
+ "kind": "js",
598
+ "name": "OxFileSelector",
599
+ "declaration": {
600
+ "name": "OxFileSelector",
601
+ "module": "src/ox-file-selector.ts"
602
+ }
603
+ },
604
+ {
605
+ "kind": "custom-element-definition",
606
+ "name": "ox-file-selector",
607
+ "declaration": {
608
+ "name": "OxFileSelector",
609
+ "module": "src/ox-file-selector.ts"
610
+ }
611
+ }
612
+ ]
613
+ },
614
+ {
615
+ "kind": "javascript-module",
616
+ "path": "src/ox-font-selector.ts",
617
+ "declarations": [
618
+ {
619
+ "kind": "class",
620
+ "description": "",
621
+ "name": "OxFontSelector",
622
+ "members": [
623
+ {
624
+ "kind": "field",
625
+ "name": "value",
626
+ "type": {
627
+ "text": "string | undefined"
628
+ },
629
+ "attribute": "value"
630
+ },
631
+ {
632
+ "kind": "field",
633
+ "name": "popup",
634
+ "type": {
635
+ "text": "any"
636
+ }
637
+ },
638
+ {
639
+ "kind": "method",
640
+ "name": "_onInputChanged",
641
+ "parameters": [
642
+ {
643
+ "name": "e",
644
+ "type": {
645
+ "text": "Event"
646
+ }
647
+ }
648
+ ]
649
+ },
650
+ {
651
+ "kind": "method",
652
+ "name": "openSelector"
653
+ }
654
+ ],
655
+ "events": [
656
+ {
657
+ "name": "change",
658
+ "type": {
659
+ "text": "CustomEvent"
660
+ }
661
+ }
662
+ ],
663
+ "attributes": [
664
+ {
665
+ "name": "value",
666
+ "type": {
667
+ "text": "string | undefined"
668
+ },
669
+ "fieldName": "value"
670
+ },
671
+ {
672
+ "name": "properties",
673
+ "type": {
674
+ "text": "any"
675
+ },
676
+ "fieldName": "properties"
677
+ }
678
+ ],
679
+ "superclass": {
680
+ "name": "LitElement",
681
+ "package": "lit"
682
+ },
683
+ "tagName": "ox-font-selector",
684
+ "customElement": true
685
+ }
686
+ ],
687
+ "exports": [
688
+ {
689
+ "kind": "js",
690
+ "name": "default",
691
+ "declaration": {
692
+ "name": "OxFontSelector",
693
+ "module": "src/ox-font-selector.ts"
694
+ }
695
+ },
696
+ {
697
+ "kind": "custom-element-definition",
698
+ "name": "ox-font-selector",
699
+ "declaration": {
700
+ "name": "OxFontSelector",
701
+ "module": "src/ox-font-selector.ts"
702
+ }
703
+ }
704
+ ]
705
+ },
706
+ {
707
+ "kind": "javascript-module",
708
+ "path": "src/ox-property-editor-font-selector.ts",
709
+ "declarations": [
710
+ {
711
+ "kind": "class",
712
+ "description": "",
713
+ "name": "OxPropertyEditorFontSelector",
714
+ "members": [
715
+ {
716
+ "kind": "method",
717
+ "name": "editorTemplate",
718
+ "parameters": [
719
+ {
720
+ "name": "value",
721
+ "type": {
722
+ "text": "any"
723
+ }
724
+ },
725
+ {
726
+ "name": "spec",
727
+ "type": {
728
+ "text": "PropertySpec"
729
+ }
730
+ }
731
+ ]
732
+ }
733
+ ],
734
+ "superclass": {
735
+ "name": "OxPropertyEditor",
736
+ "package": "@operato/property-editor"
737
+ },
738
+ "tagName": "ox-property-editor-font-selector",
739
+ "customElement": true
740
+ }
741
+ ],
742
+ "exports": [
743
+ {
744
+ "kind": "js",
745
+ "name": "OxPropertyEditorFontSelector",
746
+ "declaration": {
747
+ "name": "OxPropertyEditorFontSelector",
748
+ "module": "src/ox-property-editor-font-selector.ts"
749
+ }
750
+ },
751
+ {
752
+ "kind": "custom-element-definition",
753
+ "name": "ox-property-editor-font-selector",
754
+ "declaration": {
755
+ "name": "OxPropertyEditorFontSelector",
756
+ "module": "src/ox-property-editor-font-selector.ts"
757
+ }
758
+ }
759
+ ]
760
+ },
761
+ {
762
+ "kind": "javascript-module",
763
+ "path": "src/redux-font-actions.ts",
764
+ "declarations": [
765
+ {
766
+ "kind": "variable",
767
+ "name": "UPDATE_FONT_LIST",
768
+ "type": {
769
+ "text": "string"
770
+ },
771
+ "default": "'UPDATE_FONT_LIST'"
772
+ },
773
+ {
774
+ "kind": "variable",
775
+ "name": "CLEAR_FONT_LIST",
776
+ "type": {
777
+ "text": "string"
778
+ },
779
+ "default": "'CLEAR_FONT_LIST'"
780
+ },
781
+ {
782
+ "kind": "function",
783
+ "name": "actionUpdateFontList",
784
+ "parameters": [
785
+ {
786
+ "name": "listParams",
787
+ "optional": true,
788
+ "type": {
789
+ "text": "{ sortings?: any; filters?: any; pagination?: any }"
790
+ }
791
+ }
792
+ ]
793
+ }
794
+ ],
795
+ "exports": [
796
+ {
797
+ "kind": "js",
798
+ "name": "UPDATE_FONT_LIST",
799
+ "declaration": {
800
+ "name": "UPDATE_FONT_LIST",
801
+ "module": "src/redux-font-actions.ts"
802
+ }
803
+ },
804
+ {
805
+ "kind": "js",
806
+ "name": "CLEAR_FONT_LIST",
807
+ "declaration": {
808
+ "name": "CLEAR_FONT_LIST",
809
+ "module": "src/redux-font-actions.ts"
810
+ }
811
+ },
812
+ {
813
+ "kind": "js",
814
+ "name": "actionUpdateFontList",
815
+ "declaration": {
816
+ "name": "actionUpdateFontList",
817
+ "module": "src/redux-font-actions.ts"
818
+ }
819
+ }
820
+ ]
821
+ },
822
+ {
823
+ "kind": "javascript-module",
824
+ "path": "src/redux-font-reducers.ts",
825
+ "declarations": [
826
+ {
827
+ "kind": "function",
828
+ "name": "ReducerFont",
829
+ "parameters": [
830
+ {
831
+ "name": "state",
832
+ "default": "[]"
833
+ },
834
+ {
835
+ "name": "action",
836
+ "type": {
837
+ "text": "any"
838
+ }
839
+ }
840
+ ]
841
+ }
842
+ ],
843
+ "exports": [
844
+ {
845
+ "kind": "js",
846
+ "name": "default",
847
+ "declaration": {
848
+ "name": "ReducerFont",
849
+ "module": "src/redux-font-reducers.ts"
850
+ }
851
+ }
852
+ ]
853
+ }
854
+ ]
855
+ }