@webority/ui-elements 0.21.0 → 0.23.0

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 (204) hide show
  1. package/THIRD-PARTY-NOTICES.txt +218 -0
  2. package/dist/fileViewerImage-BCa3VOzL.js +185 -0
  3. package/dist/fileViewerMedia-nWkR08x2.js +129 -0
  4. package/dist/fileViewerPdf-CQ-yloBU.js +15776 -0
  5. package/dist/fileViewerUi-CnRi0mTH.js +222 -0
  6. package/dist/pdfjs/LICENSE +177 -0
  7. package/dist/pdfjs/cmaps/78-EUC-H.bcmap +0 -0
  8. package/dist/pdfjs/cmaps/78-EUC-V.bcmap +0 -0
  9. package/dist/pdfjs/cmaps/78-H.bcmap +0 -0
  10. package/dist/pdfjs/cmaps/78-RKSJ-H.bcmap +0 -0
  11. package/dist/pdfjs/cmaps/78-RKSJ-V.bcmap +0 -0
  12. package/dist/pdfjs/cmaps/78-V.bcmap +0 -0
  13. package/dist/pdfjs/cmaps/78ms-RKSJ-H.bcmap +0 -0
  14. package/dist/pdfjs/cmaps/78ms-RKSJ-V.bcmap +0 -0
  15. package/dist/pdfjs/cmaps/83pv-RKSJ-H.bcmap +0 -0
  16. package/dist/pdfjs/cmaps/90ms-RKSJ-H.bcmap +0 -0
  17. package/dist/pdfjs/cmaps/90ms-RKSJ-V.bcmap +0 -0
  18. package/dist/pdfjs/cmaps/90msp-RKSJ-H.bcmap +0 -0
  19. package/dist/pdfjs/cmaps/90msp-RKSJ-V.bcmap +0 -0
  20. package/dist/pdfjs/cmaps/90pv-RKSJ-H.bcmap +0 -0
  21. package/dist/pdfjs/cmaps/90pv-RKSJ-V.bcmap +0 -0
  22. package/dist/pdfjs/cmaps/Add-H.bcmap +0 -0
  23. package/dist/pdfjs/cmaps/Add-RKSJ-H.bcmap +0 -0
  24. package/dist/pdfjs/cmaps/Add-RKSJ-V.bcmap +0 -0
  25. package/dist/pdfjs/cmaps/Add-V.bcmap +0 -0
  26. package/dist/pdfjs/cmaps/Adobe-CNS1-0.bcmap +0 -0
  27. package/dist/pdfjs/cmaps/Adobe-CNS1-1.bcmap +0 -0
  28. package/dist/pdfjs/cmaps/Adobe-CNS1-2.bcmap +0 -0
  29. package/dist/pdfjs/cmaps/Adobe-CNS1-3.bcmap +0 -0
  30. package/dist/pdfjs/cmaps/Adobe-CNS1-4.bcmap +0 -0
  31. package/dist/pdfjs/cmaps/Adobe-CNS1-5.bcmap +0 -0
  32. package/dist/pdfjs/cmaps/Adobe-CNS1-6.bcmap +0 -0
  33. package/dist/pdfjs/cmaps/Adobe-CNS1-UCS2.bcmap +0 -0
  34. package/dist/pdfjs/cmaps/Adobe-GB1-0.bcmap +0 -0
  35. package/dist/pdfjs/cmaps/Adobe-GB1-1.bcmap +0 -0
  36. package/dist/pdfjs/cmaps/Adobe-GB1-2.bcmap +0 -0
  37. package/dist/pdfjs/cmaps/Adobe-GB1-3.bcmap +0 -0
  38. package/dist/pdfjs/cmaps/Adobe-GB1-4.bcmap +0 -0
  39. package/dist/pdfjs/cmaps/Adobe-GB1-5.bcmap +0 -0
  40. package/dist/pdfjs/cmaps/Adobe-GB1-UCS2.bcmap +0 -0
  41. package/dist/pdfjs/cmaps/Adobe-Japan1-0.bcmap +0 -0
  42. package/dist/pdfjs/cmaps/Adobe-Japan1-1.bcmap +0 -0
  43. package/dist/pdfjs/cmaps/Adobe-Japan1-2.bcmap +0 -0
  44. package/dist/pdfjs/cmaps/Adobe-Japan1-3.bcmap +0 -0
  45. package/dist/pdfjs/cmaps/Adobe-Japan1-4.bcmap +0 -0
  46. package/dist/pdfjs/cmaps/Adobe-Japan1-5.bcmap +0 -0
  47. package/dist/pdfjs/cmaps/Adobe-Japan1-6.bcmap +0 -0
  48. package/dist/pdfjs/cmaps/Adobe-Japan1-UCS2.bcmap +0 -0
  49. package/dist/pdfjs/cmaps/Adobe-Korea1-0.bcmap +0 -0
  50. package/dist/pdfjs/cmaps/Adobe-Korea1-1.bcmap +0 -0
  51. package/dist/pdfjs/cmaps/Adobe-Korea1-2.bcmap +0 -0
  52. package/dist/pdfjs/cmaps/Adobe-Korea1-UCS2.bcmap +0 -0
  53. package/dist/pdfjs/cmaps/B5-H.bcmap +0 -0
  54. package/dist/pdfjs/cmaps/B5-V.bcmap +0 -0
  55. package/dist/pdfjs/cmaps/B5pc-H.bcmap +0 -0
  56. package/dist/pdfjs/cmaps/B5pc-V.bcmap +0 -0
  57. package/dist/pdfjs/cmaps/CNS-EUC-H.bcmap +0 -0
  58. package/dist/pdfjs/cmaps/CNS-EUC-V.bcmap +0 -0
  59. package/dist/pdfjs/cmaps/CNS1-H.bcmap +0 -0
  60. package/dist/pdfjs/cmaps/CNS1-V.bcmap +0 -0
  61. package/dist/pdfjs/cmaps/CNS2-H.bcmap +0 -0
  62. package/dist/pdfjs/cmaps/CNS2-V.bcmap +3 -0
  63. package/dist/pdfjs/cmaps/ETHK-B5-H.bcmap +0 -0
  64. package/dist/pdfjs/cmaps/ETHK-B5-V.bcmap +0 -0
  65. package/dist/pdfjs/cmaps/ETen-B5-H.bcmap +0 -0
  66. package/dist/pdfjs/cmaps/ETen-B5-V.bcmap +0 -0
  67. package/dist/pdfjs/cmaps/ETenms-B5-H.bcmap +3 -0
  68. package/dist/pdfjs/cmaps/ETenms-B5-V.bcmap +0 -0
  69. package/dist/pdfjs/cmaps/EUC-H.bcmap +0 -0
  70. package/dist/pdfjs/cmaps/EUC-V.bcmap +0 -0
  71. package/dist/pdfjs/cmaps/Ext-H.bcmap +0 -0
  72. package/dist/pdfjs/cmaps/Ext-RKSJ-H.bcmap +0 -0
  73. package/dist/pdfjs/cmaps/Ext-RKSJ-V.bcmap +0 -0
  74. package/dist/pdfjs/cmaps/Ext-V.bcmap +0 -0
  75. package/dist/pdfjs/cmaps/GB-EUC-H.bcmap +0 -0
  76. package/dist/pdfjs/cmaps/GB-EUC-V.bcmap +0 -0
  77. package/dist/pdfjs/cmaps/GB-H.bcmap +4 -0
  78. package/dist/pdfjs/cmaps/GB-V.bcmap +0 -0
  79. package/dist/pdfjs/cmaps/GBK-EUC-H.bcmap +0 -0
  80. package/dist/pdfjs/cmaps/GBK-EUC-V.bcmap +0 -0
  81. package/dist/pdfjs/cmaps/GBK2K-H.bcmap +0 -0
  82. package/dist/pdfjs/cmaps/GBK2K-V.bcmap +0 -0
  83. package/dist/pdfjs/cmaps/GBKp-EUC-H.bcmap +0 -0
  84. package/dist/pdfjs/cmaps/GBKp-EUC-V.bcmap +0 -0
  85. package/dist/pdfjs/cmaps/GBT-EUC-H.bcmap +0 -0
  86. package/dist/pdfjs/cmaps/GBT-EUC-V.bcmap +0 -0
  87. package/dist/pdfjs/cmaps/GBT-H.bcmap +0 -0
  88. package/dist/pdfjs/cmaps/GBT-V.bcmap +0 -0
  89. package/dist/pdfjs/cmaps/GBTpc-EUC-H.bcmap +0 -0
  90. package/dist/pdfjs/cmaps/GBTpc-EUC-V.bcmap +0 -0
  91. package/dist/pdfjs/cmaps/GBpc-EUC-H.bcmap +0 -0
  92. package/dist/pdfjs/cmaps/GBpc-EUC-V.bcmap +0 -0
  93. package/dist/pdfjs/cmaps/H.bcmap +0 -0
  94. package/dist/pdfjs/cmaps/HKdla-B5-H.bcmap +0 -0
  95. package/dist/pdfjs/cmaps/HKdla-B5-V.bcmap +0 -0
  96. package/dist/pdfjs/cmaps/HKdlb-B5-H.bcmap +0 -0
  97. package/dist/pdfjs/cmaps/HKdlb-B5-V.bcmap +0 -0
  98. package/dist/pdfjs/cmaps/HKgccs-B5-H.bcmap +0 -0
  99. package/dist/pdfjs/cmaps/HKgccs-B5-V.bcmap +0 -0
  100. package/dist/pdfjs/cmaps/HKm314-B5-H.bcmap +0 -0
  101. package/dist/pdfjs/cmaps/HKm314-B5-V.bcmap +0 -0
  102. package/dist/pdfjs/cmaps/HKm471-B5-H.bcmap +0 -0
  103. package/dist/pdfjs/cmaps/HKm471-B5-V.bcmap +0 -0
  104. package/dist/pdfjs/cmaps/HKscs-B5-H.bcmap +0 -0
  105. package/dist/pdfjs/cmaps/HKscs-B5-V.bcmap +0 -0
  106. package/dist/pdfjs/cmaps/Hankaku.bcmap +0 -0
  107. package/dist/pdfjs/cmaps/Hiragana.bcmap +0 -0
  108. package/dist/pdfjs/cmaps/KSC-EUC-H.bcmap +0 -0
  109. package/dist/pdfjs/cmaps/KSC-EUC-V.bcmap +0 -0
  110. package/dist/pdfjs/cmaps/KSC-H.bcmap +0 -0
  111. package/dist/pdfjs/cmaps/KSC-Johab-H.bcmap +0 -0
  112. package/dist/pdfjs/cmaps/KSC-Johab-V.bcmap +0 -0
  113. package/dist/pdfjs/cmaps/KSC-V.bcmap +0 -0
  114. package/dist/pdfjs/cmaps/KSCms-UHC-H.bcmap +0 -0
  115. package/dist/pdfjs/cmaps/KSCms-UHC-HW-H.bcmap +0 -0
  116. package/dist/pdfjs/cmaps/KSCms-UHC-HW-V.bcmap +0 -0
  117. package/dist/pdfjs/cmaps/KSCms-UHC-V.bcmap +0 -0
  118. package/dist/pdfjs/cmaps/KSCpc-EUC-H.bcmap +0 -0
  119. package/dist/pdfjs/cmaps/KSCpc-EUC-V.bcmap +0 -0
  120. package/dist/pdfjs/cmaps/Katakana.bcmap +0 -0
  121. package/dist/pdfjs/cmaps/LICENSE +36 -0
  122. package/dist/pdfjs/cmaps/NWP-H.bcmap +0 -0
  123. package/dist/pdfjs/cmaps/NWP-V.bcmap +0 -0
  124. package/dist/pdfjs/cmaps/RKSJ-H.bcmap +0 -0
  125. package/dist/pdfjs/cmaps/RKSJ-V.bcmap +0 -0
  126. package/dist/pdfjs/cmaps/Roman.bcmap +0 -0
  127. package/dist/pdfjs/cmaps/UniCNS-UCS2-H.bcmap +0 -0
  128. package/dist/pdfjs/cmaps/UniCNS-UCS2-V.bcmap +0 -0
  129. package/dist/pdfjs/cmaps/UniCNS-UTF16-H.bcmap +0 -0
  130. package/dist/pdfjs/cmaps/UniCNS-UTF16-V.bcmap +0 -0
  131. package/dist/pdfjs/cmaps/UniCNS-UTF32-H.bcmap +0 -0
  132. package/dist/pdfjs/cmaps/UniCNS-UTF32-V.bcmap +0 -0
  133. package/dist/pdfjs/cmaps/UniCNS-UTF8-H.bcmap +0 -0
  134. package/dist/pdfjs/cmaps/UniCNS-UTF8-V.bcmap +0 -0
  135. package/dist/pdfjs/cmaps/UniGB-UCS2-H.bcmap +0 -0
  136. package/dist/pdfjs/cmaps/UniGB-UCS2-V.bcmap +0 -0
  137. package/dist/pdfjs/cmaps/UniGB-UTF16-H.bcmap +0 -0
  138. package/dist/pdfjs/cmaps/UniGB-UTF16-V.bcmap +0 -0
  139. package/dist/pdfjs/cmaps/UniGB-UTF32-H.bcmap +0 -0
  140. package/dist/pdfjs/cmaps/UniGB-UTF32-V.bcmap +0 -0
  141. package/dist/pdfjs/cmaps/UniGB-UTF8-H.bcmap +0 -0
  142. package/dist/pdfjs/cmaps/UniGB-UTF8-V.bcmap +0 -0
  143. package/dist/pdfjs/cmaps/UniJIS-UCS2-H.bcmap +0 -0
  144. package/dist/pdfjs/cmaps/UniJIS-UCS2-HW-H.bcmap +0 -0
  145. package/dist/pdfjs/cmaps/UniJIS-UCS2-HW-V.bcmap +0 -0
  146. package/dist/pdfjs/cmaps/UniJIS-UCS2-V.bcmap +0 -0
  147. package/dist/pdfjs/cmaps/UniJIS-UTF16-H.bcmap +0 -0
  148. package/dist/pdfjs/cmaps/UniJIS-UTF16-V.bcmap +0 -0
  149. package/dist/pdfjs/cmaps/UniJIS-UTF32-H.bcmap +0 -0
  150. package/dist/pdfjs/cmaps/UniJIS-UTF32-V.bcmap +0 -0
  151. package/dist/pdfjs/cmaps/UniJIS-UTF8-H.bcmap +0 -0
  152. package/dist/pdfjs/cmaps/UniJIS-UTF8-V.bcmap +0 -0
  153. package/dist/pdfjs/cmaps/UniJIS2004-UTF16-H.bcmap +0 -0
  154. package/dist/pdfjs/cmaps/UniJIS2004-UTF16-V.bcmap +0 -0
  155. package/dist/pdfjs/cmaps/UniJIS2004-UTF32-H.bcmap +0 -0
  156. package/dist/pdfjs/cmaps/UniJIS2004-UTF32-V.bcmap +0 -0
  157. package/dist/pdfjs/cmaps/UniJIS2004-UTF8-H.bcmap +0 -0
  158. package/dist/pdfjs/cmaps/UniJIS2004-UTF8-V.bcmap +0 -0
  159. package/dist/pdfjs/cmaps/UniJISPro-UCS2-HW-V.bcmap +0 -0
  160. package/dist/pdfjs/cmaps/UniJISPro-UCS2-V.bcmap +0 -0
  161. package/dist/pdfjs/cmaps/UniJISPro-UTF8-V.bcmap +0 -0
  162. package/dist/pdfjs/cmaps/UniJISX0213-UTF32-H.bcmap +0 -0
  163. package/dist/pdfjs/cmaps/UniJISX0213-UTF32-V.bcmap +0 -0
  164. package/dist/pdfjs/cmaps/UniJISX02132004-UTF32-H.bcmap +0 -0
  165. package/dist/pdfjs/cmaps/UniJISX02132004-UTF32-V.bcmap +0 -0
  166. package/dist/pdfjs/cmaps/UniKS-UCS2-H.bcmap +0 -0
  167. package/dist/pdfjs/cmaps/UniKS-UCS2-V.bcmap +0 -0
  168. package/dist/pdfjs/cmaps/UniKS-UTF16-H.bcmap +0 -0
  169. package/dist/pdfjs/cmaps/UniKS-UTF16-V.bcmap +0 -0
  170. package/dist/pdfjs/cmaps/UniKS-UTF32-H.bcmap +0 -0
  171. package/dist/pdfjs/cmaps/UniKS-UTF32-V.bcmap +0 -0
  172. package/dist/pdfjs/cmaps/UniKS-UTF8-H.bcmap +0 -0
  173. package/dist/pdfjs/cmaps/UniKS-UTF8-V.bcmap +0 -0
  174. package/dist/pdfjs/cmaps/V.bcmap +0 -0
  175. package/dist/pdfjs/cmaps/WP-Symbol.bcmap +0 -0
  176. package/dist/pdfjs/standard_fonts/FoxitDingbats.pfb +0 -0
  177. package/dist/pdfjs/standard_fonts/FoxitFixed.pfb +0 -0
  178. package/dist/pdfjs/standard_fonts/FoxitFixedBold.pfb +0 -0
  179. package/dist/pdfjs/standard_fonts/FoxitFixedBoldItalic.pfb +0 -0
  180. package/dist/pdfjs/standard_fonts/FoxitFixedItalic.pfb +0 -0
  181. package/dist/pdfjs/standard_fonts/FoxitSerif.pfb +0 -0
  182. package/dist/pdfjs/standard_fonts/FoxitSerifBold.pfb +0 -0
  183. package/dist/pdfjs/standard_fonts/FoxitSerifBoldItalic.pfb +0 -0
  184. package/dist/pdfjs/standard_fonts/FoxitSerifItalic.pfb +0 -0
  185. package/dist/pdfjs/standard_fonts/FoxitSymbol.pfb +0 -0
  186. package/dist/pdfjs/standard_fonts/LICENSE_FOXIT +27 -0
  187. package/dist/pdfjs/standard_fonts/LICENSE_LIBERATION +102 -0
  188. package/dist/pdfjs/standard_fonts/LiberationSans-Bold.ttf +0 -0
  189. package/dist/pdfjs/standard_fonts/LiberationSans-BoldItalic.ttf +0 -0
  190. package/dist/pdfjs/standard_fonts/LiberationSans-Italic.ttf +0 -0
  191. package/dist/pdfjs/standard_fonts/LiberationSans-Regular.ttf +0 -0
  192. package/dist/pdfjs/wasm/LICENSE_OPENJPEG +39 -0
  193. package/dist/pdfjs/wasm/LICENSE_PDFJS_OPENJPEG +22 -0
  194. package/dist/pdfjs/wasm/LICENSE_PDFJS_QCMS +22 -0
  195. package/dist/pdfjs/wasm/LICENSE_QCMS +21 -0
  196. package/dist/pdfjs/wasm/openjpeg.wasm +0 -0
  197. package/dist/pdfjs/wasm/openjpeg_nowasm_fallback.js +17 -0
  198. package/dist/pdfjs/wasm/qcms_bg.wasm +0 -0
  199. package/dist/ui-elements.global.js +9 -8
  200. package/dist/ui-elements.js +22 -12
  201. package/dist/ui-file-viewer.global.js +24 -0
  202. package/dist/ui-file-viewer.js +297 -0
  203. package/package.json +7 -4
  204. package/LICENSE +0 -5
@@ -0,0 +1,297 @@
1
+ import { i as e, r as t, t as n } from "./fileViewerUi-CnRi0mTH.js";
2
+ //#region src/elementBase.js
3
+ var r = typeof HTMLElement > "u" ? class {} : HTMLElement, i = {
4
+ pdf: "pdf",
5
+ jpg: "image",
6
+ jpeg: "image",
7
+ png: "image",
8
+ webp: "image",
9
+ gif: "image",
10
+ avif: "image",
11
+ bmp: "image",
12
+ svg: "image",
13
+ mp4: "video",
14
+ m4v: "video",
15
+ webm: "video",
16
+ ogv: "video",
17
+ mp3: "audio",
18
+ m4a: "audio",
19
+ aac: "audio",
20
+ wav: "audio",
21
+ ogg: "audio",
22
+ oga: "audio",
23
+ opus: "audio",
24
+ flac: "audio"
25
+ }, a = {
26
+ "application/pdf": "pdf",
27
+ "image/jpeg": "image",
28
+ "image/png": "image",
29
+ "image/webp": "image",
30
+ "image/gif": "image",
31
+ "image/avif": "image",
32
+ "image/bmp": "image",
33
+ "image/svg+xml": "image",
34
+ "video/mp4": "video",
35
+ "video/webm": "video",
36
+ "video/ogg": "video",
37
+ "audio/mpeg": "audio",
38
+ "audio/mp4": "audio",
39
+ "audio/aac": "audio",
40
+ "audio/wav": "audio",
41
+ "audio/x-wav": "audio",
42
+ "audio/ogg": "audio",
43
+ "audio/opus": "audio",
44
+ "audio/webm": "audio",
45
+ "audio/flac": "audio"
46
+ }, o = "wui-file-viewer:load", s = "wui-file-viewer:error", c = "wui-file-viewer:prefs-change";
47
+ function l(e, t) {
48
+ let n = String(e ?? "").split(";")[0].trim().toLowerCase();
49
+ if (n) return a[n] ?? null;
50
+ let r = String(t ?? "").split(/[?#]/)[0];
51
+ return i[r.includes(".") ? r.split(".").pop().toLowerCase() : ""] ?? null;
52
+ }
53
+ function u(e) {
54
+ let t = String(e ?? "").split(/[?#]/)[0].split("/").filter(Boolean).pop() ?? "";
55
+ try {
56
+ return decodeURIComponent(t);
57
+ } catch {
58
+ return t;
59
+ }
60
+ }
61
+ var d = {
62
+ pdf: () => import("./fileViewerPdf-CQ-yloBU.js").then((e) => e.PdfView),
63
+ image: () => import("./fileViewerImage-BCa3VOzL.js").then((e) => e.ImageView),
64
+ video: () => import("./fileViewerMedia-nWkR08x2.js").then((e) => e.MediaView),
65
+ audio: () => import("./fileViewerMedia-nWkR08x2.js").then((e) => e.MediaView)
66
+ }, f = 0, p = class i extends r {
67
+ static defaultAssetBase = "";
68
+ static get observedAttributes() {
69
+ return [
70
+ "src",
71
+ "name",
72
+ "type",
73
+ "download",
74
+ "worker-src",
75
+ "asset-base",
76
+ "captions"
77
+ ];
78
+ }
79
+ constructor() {
80
+ super(), f += 1, this.uid = `wui-file-viewer-${f}`, this._prefs = {}, this._onFullscreen = () => this._syncFullscreen();
81
+ }
82
+ get src() {
83
+ return this.getAttribute("src") ?? "";
84
+ }
85
+ set src(e) {
86
+ this.setAttribute("src", String(e ?? ""));
87
+ }
88
+ get name() {
89
+ return this.getAttribute("name") ?? "";
90
+ }
91
+ set name(e) {
92
+ this.setAttribute("name", String(e ?? ""));
93
+ }
94
+ get type() {
95
+ return this.getAttribute("type") ?? "";
96
+ }
97
+ set type(e) {
98
+ this.setAttribute("type", String(e ?? ""));
99
+ }
100
+ get viewKey() {
101
+ return this.getAttribute("view-key") ?? "";
102
+ }
103
+ set viewKey(e) {
104
+ this.setAttribute("view-key", String(e ?? ""));
105
+ }
106
+ get download() {
107
+ return this.hasAttribute("download");
108
+ }
109
+ set download(e) {
110
+ this.toggleAttribute("download", e === !0 || e === "" || e === "true");
111
+ }
112
+ get workerSrc() {
113
+ return this.getAttribute("worker-src") ?? "";
114
+ }
115
+ set workerSrc(e) {
116
+ this.setAttribute("worker-src", String(e ?? ""));
117
+ }
118
+ get captions() {
119
+ return this.getAttribute("captions") ?? "";
120
+ }
121
+ set captions(e) {
122
+ this.setAttribute("captions", String(e ?? ""));
123
+ }
124
+ get assetBase() {
125
+ return this.getAttribute("asset-base") ?? "";
126
+ }
127
+ set assetBase(e) {
128
+ this.setAttribute("asset-base", String(e ?? ""));
129
+ }
130
+ get prefs() {
131
+ return { ...this._prefs };
132
+ }
133
+ set prefs(e) {
134
+ this._hostPrefs = !0, this._prefs = e && typeof e == "object" ? { ...e } : {};
135
+ }
136
+ get actionsContainer() {
137
+ return this._actionsBox ?? null;
138
+ }
139
+ displayName() {
140
+ return this.name || u(this.src) || "Document";
141
+ }
142
+ connectedCallback() {
143
+ if (Object.hasOwn(this, "prefs")) {
144
+ let e = this.prefs;
145
+ delete this.prefs, this.prefs = e;
146
+ }
147
+ document.addEventListener("fullscreenchange", this._onFullscreen), this._open();
148
+ }
149
+ disconnectedCallback() {
150
+ document.removeEventListener("fullscreenchange", this._onFullscreen), this._close();
151
+ }
152
+ attributeChangedCallback(e, t, n) {
153
+ !this.isConnected || !this._parts || t === n || (e === "name" ? this._parts.name.textContent = this.displayName() : e === "download" ? this._syncDownload() : this._open());
154
+ }
155
+ _close() {
156
+ this._view?.destroy(), this._view = null, this._loadId = (this._loadId ?? 0) + 1;
157
+ }
158
+ async _open() {
159
+ this._close();
160
+ let e = this._loadId;
161
+ this._render(), this._prefs = this._readPrefs();
162
+ let t = l(this.type, this.name || this.src);
163
+ if (!this.src) {
164
+ this._status("No file to show.");
165
+ return;
166
+ }
167
+ if (!t) {
168
+ this._status("This file can't be shown here.", { offerDownload: !0 });
169
+ return;
170
+ }
171
+ this._status("Loading...");
172
+ let n;
173
+ try {
174
+ n = await d[t]();
175
+ } catch (t) {
176
+ e === this._loadId && this._fail(t);
177
+ return;
178
+ }
179
+ e === this._loadId && (this._view = new n(this._shell(e), {
180
+ src: this.src,
181
+ kind: t,
182
+ captions: this.captions,
183
+ workerSrc: this.workerSrc,
184
+ assetBase: this.assetBase || i.defaultAssetBase
185
+ }), this._view.load());
186
+ }
187
+ _shell(e) {
188
+ let t = () => e === this._loadId, n = this._parts;
189
+ return {
190
+ host: this,
191
+ start: n.start,
192
+ center: n.center,
193
+ end: n.viewEnd,
194
+ search: n.search,
195
+ body: n.body,
196
+ prefs: { ...this._prefs },
197
+ name: () => this.displayName(),
198
+ savePrefs: (e) => {
199
+ t() && this._savePrefs(e);
200
+ },
201
+ loaded: (e) => {
202
+ t() && (n.body.removeAttribute("aria-busy"), this.dispatchEvent(new CustomEvent(o, {
203
+ bubbles: !0,
204
+ detail: e
205
+ })));
206
+ },
207
+ fail: (e) => {
208
+ t() && this._fail(e);
209
+ }
210
+ };
211
+ }
212
+ _render() {
213
+ let r = (e, t) => {
214
+ let n = document.createElement(e);
215
+ return n.className = t, n;
216
+ }, i = r("div", "wui-file-viewer-toolbar"), a = r("div", "wui-file-viewer-group wui-file-viewer-start"), o = r("span", "wui-file-viewer-name");
217
+ o.textContent = this.displayName(), o.title = this.displayName(), a.append(o);
218
+ let s = r("div", "wui-file-viewer-group wui-file-viewer-center"), c = r("div", "wui-file-viewer-group wui-file-viewer-end"), l = r("div", "wui-file-viewer-group wui-file-viewer-view-end"), u = r("a", "u-action wui-file-viewer-download");
219
+ u.style.setProperty("--wui-action-size", "32px"), t(u, "download"), e(u, "Download");
220
+ let d = n("maximize-4", "Full screen", { className: "wui-file-viewer-fullscreen" });
221
+ d.addEventListener("click", () => this.toggleFullscreen()), d.hidden = !document.fullscreenEnabled, this._actionsBox ??= r("div", "wui-file-viewer-actions");
222
+ let f = this._actionsBox;
223
+ f.append(...this.querySelectorAll(":scope > [slot=\"actions\"]")), c.append(l, u, d, f);
224
+ let p = r("search", "wui-file-viewer-search");
225
+ p.hidden = !0, i.append(a, s, c, p);
226
+ let m = r("div", "wui-file-viewer-body");
227
+ m.setAttribute("aria-busy", "true"), this.replaceChildren(i, m), this._parts = {
228
+ toolbar: i,
229
+ start: a,
230
+ name: o,
231
+ center: s,
232
+ end: c,
233
+ viewEnd: l,
234
+ downloadLink: u,
235
+ fullscreen: d,
236
+ actionsBox: f,
237
+ search: p,
238
+ body: m
239
+ }, this._syncDownload(), this._syncFullscreen();
240
+ }
241
+ _syncDownload() {
242
+ let e = this._parts.downloadLink;
243
+ e.hidden = !this.download || !this.src, e.href = this.src, e.setAttribute("download", this.displayName());
244
+ }
245
+ _status(e, { offerDownload: t = !1 } = {}) {
246
+ let n = document.createElement("div");
247
+ n.className = "wui-file-viewer-status";
248
+ let r = document.createElement("p");
249
+ if (r.textContent = e, n.append(r), t && this.src) {
250
+ let e = document.createElement("a");
251
+ e.className = "btn btn-sm btn-outline-secondary", e.href = this.src, e.setAttribute("download", this.displayName()), e.textContent = "Download", n.append(e);
252
+ }
253
+ this._parts.body.replaceChildren(n);
254
+ }
255
+ _fail(e) {
256
+ this._view?.destroy(), this._view = null, this._parts.body.removeAttribute("aria-busy"), this._status("Couldn't open this file.", { offerDownload: !0 }), this.dispatchEvent(new CustomEvent(s, {
257
+ bubbles: !0,
258
+ detail: { message: e?.message ?? String(e) }
259
+ }));
260
+ }
261
+ toggleFullscreen() {
262
+ if (document.fullscreenElement) {
263
+ document.exitFullscreen();
264
+ return;
265
+ }
266
+ this.requestFullscreen().catch((e) => {
267
+ console.warn("[wui-file-viewer] full screen refused:", e?.message);
268
+ });
269
+ }
270
+ _syncFullscreen() {
271
+ if (!this._parts) return;
272
+ let n = document.fullscreenElement === this, r = this._parts.fullscreen;
273
+ t(r, n ? "x" : "maximize-4"), e(r, n ? "Exit full screen" : "Full screen"), this._parts.actionsBox.hidden = n;
274
+ }
275
+ _readPrefs() {
276
+ if (this._hostPrefs || !this.viewKey) return { ...this._prefs };
277
+ try {
278
+ return JSON.parse(window.localStorage.getItem(`wui-view:${this.viewKey}`) ?? "{}") ?? {};
279
+ } catch {
280
+ return {};
281
+ }
282
+ }
283
+ _savePrefs(e) {
284
+ if (this._prefs = {
285
+ ...this._prefs,
286
+ ...e
287
+ }, this.dispatchEvent(new CustomEvent(c, {
288
+ bubbles: !0,
289
+ detail: { ...this._prefs }
290
+ })), !(this._hostPrefs || !this.viewKey)) try {
291
+ window.localStorage.setItem(`wui-view:${this.viewKey}`, JSON.stringify(this._prefs));
292
+ } catch {}
293
+ }
294
+ }, m = typeof document > "u" ? null : document.currentScript;
295
+ m?.src && (p.defaultAssetBase = new URL("pdfjs/", m.src).href), typeof customElements < "u" && !customElements.get("wui-file-viewer") && customElements.define("wui-file-viewer", p);
296
+ //#endregion
297
+ export { p as WuiFileViewer, l as fileKind, u as fileNameFromUrl };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webority/ui-elements",
3
- "version": "0.21.0",
3
+ "version": "0.23.0",
4
4
  "description": "Webority framework-agnostic UI custom elements (<wui-*>) — the single implementation of the interactive components, styled by @webority/theme. Used natively in Razor and wrapped by @webority/ui-react.",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "type": "module",
@@ -14,7 +14,8 @@
14
14
  "directory": "packages/elements"
15
15
  },
16
16
  "files": [
17
- "dist"
17
+ "dist",
18
+ "THIRD-PARTY-NOTICES.txt"
18
19
  ],
19
20
  "main": "./dist/ui-elements.js",
20
21
  "module": "./dist/ui-elements.js",
@@ -22,13 +23,15 @@
22
23
  ".": "./dist/ui-elements.js",
23
24
  "./global": "./dist/ui-elements.global.js",
24
25
  "./consent-banner": "./dist/ui-consent-banner.global.js",
26
+ "./file-viewer": "./dist/ui-file-viewer.js",
25
27
  "./package.json": "./package.json"
26
28
  },
27
29
  "sideEffects": [
28
30
  "./dist/*"
29
31
  ],
30
32
  "dependencies": {
31
- "libphonenumber-js": "^1.13.9"
33
+ "libphonenumber-js": "^1.13.9",
34
+ "pdfjs-dist": "5.4.296"
32
35
  },
33
36
  "devDependencies": {
34
37
  "@vitest/coverage-v8": "5.0.1",
@@ -37,7 +40,7 @@
37
40
  "vitest": "5.0.1"
38
41
  },
39
42
  "scripts": {
40
- "build": "vite build && vite build -c vite.consent-banner.config.js && node ../../scripts/sync-rcl-assets.mjs elements",
43
+ "build": "vite build && vite build -c vite.consent-banner.config.js && vite build -c vite.file-viewer.config.js && node ../../scripts/sync-rcl-assets.mjs elements",
41
44
  "test": "vitest run",
42
45
  "test:watch": "vitest",
43
46
  "test:coverage": "vitest run --coverage"
package/LICENSE DELETED
@@ -1,5 +0,0 @@
1
- Copyright (c) Webority Technologies. All rights reserved.
2
-
3
- This software and its source code are proprietary and confidential to
4
- Webority Technologies. Use is restricted to Webority products and teams under
5
- internal license. Redistribution outside Webority Technologies is prohibited.