@eternalheart/angular-file-preview 1.6.5 → 1.6.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.
- package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-UobTf36G.mjs → eternalheart-angular-file-preview-eternalheart-angular-file-preview-RPRQhVCg.mjs} +39 -32
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-RPRQhVCg.mjs.map +1 -0
- package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-pG0Ko5mI-DthQJg-X.mjs → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-3-0UYUJy-CD5hv6Xd.mjs} +27 -8
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-3-0UYUJy-CD5hv6Xd.mjs.map +1 -0
- package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-D35x1nwM-CugEEXjg.mjs → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-5zqP72gq-lAwuxCQV.mjs} +2 -2
- package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-D35x1nwM-CugEEXjg.mjs.map → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-5zqP72gq-lAwuxCQV.mjs.map} +1 -1
- package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-CDjKPqyW-CmX5sdkL.mjs → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-71x_jK0V-BwzFr9L0.mjs} +2 -2
- package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-CDjKPqyW-CmX5sdkL.mjs.map → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-71x_jK0V-BwzFr9L0.mjs.map} +1 -1
- package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-Bv3JRXKn-B4Wewc-4.mjs → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-7KavuB8u-CFBWzMGm.mjs} +2 -2
- package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-Bv3JRXKn-B4Wewc-4.mjs.map → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-7KavuB8u-CFBWzMGm.mjs.map} +1 -1
- package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-DsNNZ59Q-C8MaSME6.mjs → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-B-TVstXS-Dh1KMX_8.mjs} +2 -2
- package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-DsNNZ59Q-C8MaSME6.mjs.map → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-B-TVstXS-Dh1KMX_8.mjs.map} +1 -1
- package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-6dZS_Cfs-B1itLV5R.mjs → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-B4L1kfY--BHy3x_oj.mjs} +2 -2
- package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-6dZS_Cfs-B1itLV5R.mjs.map → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-B4L1kfY--BHy3x_oj.mjs.map} +1 -1
- package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-D9jJNzeM-mWX59Aj2.mjs → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-B56pscOG-ClsvukS5.mjs} +4 -5
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-B56pscOG-ClsvukS5.mjs.map +1 -0
- package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-DbmuvdvN-C29uLyt2.mjs → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-BNU3NWQp-C5U5krn9.mjs} +2 -2
- package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-DbmuvdvN-C29uLyt2.mjs.map → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-BNU3NWQp-C5U5krn9.mjs.map} +1 -1
- package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-B1ANUCTy-BRs7TMLn.mjs → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-BbRwLog8-B9Sw6HEr.mjs} +2 -2
- package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-B1ANUCTy-BRs7TMLn.mjs.map → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-BbRwLog8-B9Sw6HEr.mjs.map} +1 -1
- package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-BGqTRZbm-CAOLRw20.mjs → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-BeL4xzpS-eYswtncp.mjs} +2 -2
- package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-BGqTRZbm-CAOLRw20.mjs.map → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-BeL4xzpS-eYswtncp.mjs.map} +1 -1
- package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-C518mdUd-B5SCzrzU.mjs → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-BeTNUne--CwUzGLn3.mjs} +2 -2
- package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-C518mdUd-B5SCzrzU.mjs.map → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-BeTNUne--CwUzGLn3.mjs.map} +1 -1
- package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-DufW2Fuc-CTosCut6.mjs → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-C3uCX4wD-CoZ795pn.mjs} +3 -3
- package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-DufW2Fuc-CTosCut6.mjs.map → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-C3uCX4wD-CoZ795pn.mjs.map} +1 -1
- package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-C0McUoqT-DJ35bhIz.mjs → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-CBbnvps8-ClkiJKQ9.mjs} +2 -2
- package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-C0McUoqT-DJ35bhIz.mjs.map → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-CBbnvps8-ClkiJKQ9.mjs.map} +1 -1
- package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-Cb1RLXeO-Bj9gjS1Z.mjs → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-CMeATokn-iD-SSbnK.mjs} +2 -2
- package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-Cb1RLXeO-Bj9gjS1Z.mjs.map → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-CMeATokn-iD-SSbnK.mjs.map} +1 -1
- package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-CHi9tOe0-NOeQYAnM.mjs → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-CZQnGY6g-DexFUJLU.mjs} +2 -2
- package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-CHi9tOe0-NOeQYAnM.mjs.map → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-CZQnGY6g-DexFUJLU.mjs.map} +1 -1
- package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-TSTa_Q7E-DBhkL6pV.mjs → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-Cjjsjooa-24Qg-LjD.mjs} +2 -2
- package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-TSTa_Q7E-DBhkL6pV.mjs.map → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-Cjjsjooa-24Qg-LjD.mjs.map} +1 -1
- package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-CSCTj7ft-BfqruUyY.mjs → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-CpiK7yUb-T48dTv66.mjs} +3 -3
- package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-CSCTj7ft-BfqruUyY.mjs.map → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-CpiK7yUb-T48dTv66.mjs.map} +1 -1
- package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index--7d8Hgi0-D-sg24Qs.mjs → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-CyO8N29I-CMesNfcT.mjs} +2 -2
- package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index--7d8Hgi0-D-sg24Qs.mjs.map → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-CyO8N29I-CMesNfcT.mjs.map} +1 -1
- package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-Cw90Kdyg-BzrW_cyx.mjs → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-D6UfVKL_-CAqlAQIN.mjs} +2 -2
- package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-Cw90Kdyg-BzrW_cyx.mjs.map → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-D6UfVKL_-CAqlAQIN.mjs.map} +1 -1
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-DWe1kVtU-CJlU6sOy.mjs +597 -0
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-DWe1kVtU-CJlU6sOy.mjs.map +1 -0
- package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-BEaqpRV8-BidVIVlO.mjs → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-QydIBtJH-Dw052TRv.mjs} +2 -2
- package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-BEaqpRV8-BidVIVlO.mjs.map → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-QydIBtJH-Dw052TRv.mjs.map} +1 -1
- package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-shiki-highlight-CL9cG481-BKfwdOpN.mjs → eternalheart-angular-file-preview-eternalheart-angular-file-preview-shiki-highlight-CE3FZF7D-BjdXRpvN.mjs} +2 -2
- package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-shiki-highlight-CL9cG481-BKfwdOpN.mjs.map → eternalheart-angular-file-preview-eternalheart-angular-file-preview-shiki-highlight-CE3FZF7D-BjdXRpvN.mjs.map} +1 -1
- package/lib/fesm2022/eternalheart-angular-file-preview.mjs +1 -1
- package/lib/index.css +340 -60
- package/lib/index.d.ts +1 -1
- package/lib/renderers/Audio/index.d.ts +1 -18
- package/lib/renderers/Cad/index.d.ts +1 -0
- package/lib/version.d.ts +1 -0
- package/package.json +2 -1
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-UobTf36G.mjs.map +0 -1
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-CQwhffym-DAGw4Xy_.mjs +0 -823
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-CQwhffym-DAGw4Xy_.mjs.map +0 -1
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-D9jJNzeM-mWX59Aj2.mjs.map +0 -1
- package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-pG0Ko5mI-DthQJg-X.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-CSCTj7ft-BfqruUyY.mjs","sources":["../fesm2022/eternalheart-angular-file-preview-index-CSCTj7ft.mjs"],"sourcesContent":["import * as i0 from '@angular/core';\nimport { input, inject, signal, computed, effect, ChangeDetectionStrategy, Component } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { L as LocaleService, R as RequestService, g as getFallbackTranslator } from './eternalheart-angular-file-preview-eternalheart-angular-file-preview-DXwNhxAB.mjs';\nimport { R as RendererError } from './eternalheart-angular-file-preview-RendererError-DtNihCIX.mjs';\nimport { c as createShikiHighlight } from './eternalheart-angular-file-preview-shiki-highlight-CL9cG481.mjs';\nimport { fetchTextUtf8 } from '@eternalheart/file-preview-core';\n\nclass XmlRenderer {\n constructor() {\n this.url = input.required();\n this.fileName = input.required();\n this.locale = inject(LocaleService, { optional: true });\n this.request = inject(RequestService, { optional: true });\n this.sanitizer = inject(DomSanitizer);\n this.t = this.locale?.t() ?? getFallbackTranslator();\n this.content = signal('');\n this.loading = signal(true);\n this.error = signal(null);\n this.xmlLang = signal('xml');\n this.shiki = createShikiHighlight(() => this.content(), () => this.xmlLang());\n this.lineHtmls = this.shiki.lineHtmls;\n this.lines = computed(() => this.content().split('\\n'));\n this.getToolbarGroups = () => [];\n effect(() => {\n this.url();\n void this.load();\n });\n effect(() => {\n this.content();\n this.xmlLang();\n void this.shiki.highlight();\n });\n }\n trust(html) {\n return this.sanitizer.bypassSecurityTrustHtml(html);\n }\n indentXml(xml) {\n const PADDING = ' ';\n const reg = /(>)(<)(\\/*)/g;\n const formatted = xml.replace(reg, '$1\\n$2$3');\n let pad = 0;\n return formatted\n .split('\\n')\n .map((line) => {\n let indent = 0;\n if (/^<\\/\\w/.test(line)) {\n pad = Math.max(pad - 1, 0);\n }\n else if (/^<\\w[^>]*[^/]>.*$/.test(line) && !/<.+<\\/.+>$/.test(line)) {\n indent = 1;\n }\n const padded = PADDING.repeat(pad) + line;\n pad += indent;\n return padded;\n })\n .join('\\n');\n }\n prettyPrintXml(xml) {\n try {\n const parser = new DOMParser();\n const doc = parser.parseFromString(xml, 'application/xml');\n if (doc.querySelector('parsererror'))\n return xml;\n const serializer = new XMLSerializer();\n const serialized = serializer.serializeToString(doc);\n return this.indentXml(serialized);\n }\n catch {\n return xml;\n }\n }\n async load() {\n this.loading.set(true);\n this.error.set(null);\n try {\n const fetcher = this.request?.fetcher() ?? ((u, init) => fetch(u, init));\n const raw = await fetchTextUtf8(this.url(), { fetcher });\n this.content.set(this.prettyPrintXml(raw));\n }\n catch (err) {\n console.error(err);\n this.error.set(this.t('xml.load_failed'));\n }\n finally {\n this.loading.set(false);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"19.2.25\", ngImport: i0, type: XmlRenderer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"19.2.25\", type: XmlRenderer, isStandalone: true, selector: \"afp-xml-renderer\", inputs: { url: { classPropertyName: \"url\", publicName: \"url\", isSignal: true, isRequired: true, transformFunction: null }, fileName: { classPropertyName: \"fileName\", publicName: \"fileName\", isSignal: true, isRequired: true, transformFunction: null } }, host: { classAttribute: \"afp-block afp-w-full afp-h-full\" }, ngImport: i0, template: `\n @if (loading()) {\n <div class=\"afp-flex afp-items-center afp-justify-center afp-w-full afp-h-full\">\n <div\n class=\"afp-w-12 afp-h-12 afp-border-4 afp-border-line-strong afp-border-t-spinner-head afp-rounded-full afp-animate-spin\"\n ></div>\n </div>\n } @else if (error()) {\n <afp-renderer-error [message]=\"error()!\" />\n } @else if (lineHtmls().length === 0) {\n <div class=\"afp-w-full afp-h-full afp-overflow-auto\" style=\"background: var(--fp-code-bg);\">\n <pre\n class=\"afp-py-6 afp-px-4 afp-text-fg-primary afp-font-mono afp-text-sm afp-whitespace-pre-wrap afp-break-words\"\n >{{ content() }}</pre>\n </div>\n } @else {\n <div class=\"afp-w-full afp-h-full afp-overflow-auto\" style=\"background: var(--fp-code-bg);\">\n <div\n class=\"afp-code-block with-line-numbers afp-w-full\"\n [style.gridTemplateRows]=\"'repeat(' + lines().length + ', auto) minmax(1.5rem, 1fr)'\"\n >\n @for (line of lines(); track $index) {\n <span class=\"afp-code-gutter\">{{ $index + 1 }}</span>\n <span class=\"afp-code-line\" [innerHTML]=\"trust(lineHtmls()[$index] ?? '')\"></span>\n }\n <span class=\"afp-code-gutter-filler\"></span>\n <span class=\"afp-code-line-filler\"></span>\n </div>\n </div>\n }\n `, isInline: true, dependencies: [{ kind: \"component\", type: RendererError, selector: \"afp-renderer-error\", inputs: [\"message\", \"detail\", \"showIcon\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"19.2.25\", ngImport: i0, type: XmlRenderer, decorators: [{\n type: Component,\n args: [{\n selector: 'afp-xml-renderer',\n standalone: true,\n imports: [RendererError],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'afp-block afp-w-full afp-h-full' },\n template: `\n @if (loading()) {\n <div class=\"afp-flex afp-items-center afp-justify-center afp-w-full afp-h-full\">\n <div\n class=\"afp-w-12 afp-h-12 afp-border-4 afp-border-line-strong afp-border-t-spinner-head afp-rounded-full afp-animate-spin\"\n ></div>\n </div>\n } @else if (error()) {\n <afp-renderer-error [message]=\"error()!\" />\n } @else if (lineHtmls().length === 0) {\n <div class=\"afp-w-full afp-h-full afp-overflow-auto\" style=\"background: var(--fp-code-bg);\">\n <pre\n class=\"afp-py-6 afp-px-4 afp-text-fg-primary afp-font-mono afp-text-sm afp-whitespace-pre-wrap afp-break-words\"\n >{{ content() }}</pre>\n </div>\n } @else {\n <div class=\"afp-w-full afp-h-full afp-overflow-auto\" style=\"background: var(--fp-code-bg);\">\n <div\n class=\"afp-code-block with-line-numbers afp-w-full\"\n [style.gridTemplateRows]=\"'repeat(' + lines().length + ', auto) minmax(1.5rem, 1fr)'\"\n >\n @for (line of lines(); track $index) {\n <span class=\"afp-code-gutter\">{{ $index + 1 }}</span>\n <span class=\"afp-code-line\" [innerHTML]=\"trust(lineHtmls()[$index] ?? '')\"></span>\n }\n <span class=\"afp-code-gutter-filler\"></span>\n <span class=\"afp-code-line-filler\"></span>\n </div>\n </div>\n }\n `,\n }]\n }], ctorParameters: () => [] });\n\nexport { XmlRenderer };\n//# sourceMappingURL=eternalheart-angular-file-preview-index-CSCTj7ft.mjs.map\n"],"names":["fetchTextUtf8"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-CpiK7yUb-T48dTv66.mjs","sources":["../fesm2022/eternalheart-angular-file-preview-index-CpiK7yUb.mjs"],"sourcesContent":["import * as i0 from '@angular/core';\nimport { input, inject, signal, computed, effect, ChangeDetectionStrategy, Component } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { L as LocaleService, R as RequestService, g as getFallbackTranslator } from './eternalheart-angular-file-preview-eternalheart-angular-file-preview-Dnuf7kun.mjs';\nimport { R as RendererError } from './eternalheart-angular-file-preview-RendererError-DtNihCIX.mjs';\nimport { c as createShikiHighlight } from './eternalheart-angular-file-preview-shiki-highlight-CE3FZF7D.mjs';\nimport { fetchTextUtf8 } from '@eternalheart/file-preview-core';\n\nclass XmlRenderer {\n constructor() {\n this.url = input.required();\n this.fileName = input.required();\n this.locale = inject(LocaleService, { optional: true });\n this.request = inject(RequestService, { optional: true });\n this.sanitizer = inject(DomSanitizer);\n this.t = this.locale?.t() ?? getFallbackTranslator();\n this.content = signal('');\n this.loading = signal(true);\n this.error = signal(null);\n this.xmlLang = signal('xml');\n this.shiki = createShikiHighlight(() => this.content(), () => this.xmlLang());\n this.lineHtmls = this.shiki.lineHtmls;\n this.lines = computed(() => this.content().split('\\n'));\n this.getToolbarGroups = () => [];\n effect(() => {\n this.url();\n void this.load();\n });\n effect(() => {\n this.content();\n this.xmlLang();\n void this.shiki.highlight();\n });\n }\n trust(html) {\n return this.sanitizer.bypassSecurityTrustHtml(html);\n }\n indentXml(xml) {\n const PADDING = ' ';\n const reg = /(>)(<)(\\/*)/g;\n const formatted = xml.replace(reg, '$1\\n$2$3');\n let pad = 0;\n return formatted\n .split('\\n')\n .map((line) => {\n let indent = 0;\n if (/^<\\/\\w/.test(line)) {\n pad = Math.max(pad - 1, 0);\n }\n else if (/^<\\w[^>]*[^/]>.*$/.test(line) && !/<.+<\\/.+>$/.test(line)) {\n indent = 1;\n }\n const padded = PADDING.repeat(pad) + line;\n pad += indent;\n return padded;\n })\n .join('\\n');\n }\n prettyPrintXml(xml) {\n try {\n const parser = new DOMParser();\n const doc = parser.parseFromString(xml, 'application/xml');\n if (doc.querySelector('parsererror'))\n return xml;\n const serializer = new XMLSerializer();\n const serialized = serializer.serializeToString(doc);\n return this.indentXml(serialized);\n }\n catch {\n return xml;\n }\n }\n async load() {\n this.loading.set(true);\n this.error.set(null);\n try {\n const fetcher = this.request?.fetcher() ?? ((u, init) => fetch(u, init));\n const raw = await fetchTextUtf8(this.url(), { fetcher });\n this.content.set(this.prettyPrintXml(raw));\n }\n catch (err) {\n console.error(err);\n this.error.set(this.t('xml.load_failed'));\n }\n finally {\n this.loading.set(false);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"19.2.25\", ngImport: i0, type: XmlRenderer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"19.2.25\", type: XmlRenderer, isStandalone: true, selector: \"afp-xml-renderer\", inputs: { url: { classPropertyName: \"url\", publicName: \"url\", isSignal: true, isRequired: true, transformFunction: null }, fileName: { classPropertyName: \"fileName\", publicName: \"fileName\", isSignal: true, isRequired: true, transformFunction: null } }, host: { classAttribute: \"afp-block afp-w-full afp-h-full\" }, ngImport: i0, template: `\n @if (loading()) {\n <div class=\"afp-flex afp-items-center afp-justify-center afp-w-full afp-h-full\">\n <div\n class=\"afp-w-12 afp-h-12 afp-border-4 afp-border-line-strong afp-border-t-spinner-head afp-rounded-full afp-animate-spin\"\n ></div>\n </div>\n } @else if (error()) {\n <afp-renderer-error [message]=\"error()!\" />\n } @else if (lineHtmls().length === 0) {\n <div class=\"afp-w-full afp-h-full afp-overflow-auto\" style=\"background: var(--fp-code-bg);\">\n <pre\n class=\"afp-py-6 afp-px-4 afp-text-fg-primary afp-font-mono afp-text-sm afp-whitespace-pre-wrap afp-break-words\"\n >{{ content() }}</pre>\n </div>\n } @else {\n <div class=\"afp-w-full afp-h-full afp-overflow-auto\" style=\"background: var(--fp-code-bg);\">\n <div\n class=\"afp-code-block with-line-numbers afp-w-full\"\n [style.gridTemplateRows]=\"'repeat(' + lines().length + ', auto) minmax(1.5rem, 1fr)'\"\n >\n @for (line of lines(); track $index) {\n <span class=\"afp-code-gutter\">{{ $index + 1 }}</span>\n <span class=\"afp-code-line\" [innerHTML]=\"trust(lineHtmls()[$index] ?? '')\"></span>\n }\n <span class=\"afp-code-gutter-filler\"></span>\n <span class=\"afp-code-line-filler\"></span>\n </div>\n </div>\n }\n `, isInline: true, dependencies: [{ kind: \"component\", type: RendererError, selector: \"afp-renderer-error\", inputs: [\"message\", \"detail\", \"showIcon\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"19.2.25\", ngImport: i0, type: XmlRenderer, decorators: [{\n type: Component,\n args: [{\n selector: 'afp-xml-renderer',\n standalone: true,\n imports: [RendererError],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'afp-block afp-w-full afp-h-full' },\n template: `\n @if (loading()) {\n <div class=\"afp-flex afp-items-center afp-justify-center afp-w-full afp-h-full\">\n <div\n class=\"afp-w-12 afp-h-12 afp-border-4 afp-border-line-strong afp-border-t-spinner-head afp-rounded-full afp-animate-spin\"\n ></div>\n </div>\n } @else if (error()) {\n <afp-renderer-error [message]=\"error()!\" />\n } @else if (lineHtmls().length === 0) {\n <div class=\"afp-w-full afp-h-full afp-overflow-auto\" style=\"background: var(--fp-code-bg);\">\n <pre\n class=\"afp-py-6 afp-px-4 afp-text-fg-primary afp-font-mono afp-text-sm afp-whitespace-pre-wrap afp-break-words\"\n >{{ content() }}</pre>\n </div>\n } @else {\n <div class=\"afp-w-full afp-h-full afp-overflow-auto\" style=\"background: var(--fp-code-bg);\">\n <div\n class=\"afp-code-block with-line-numbers afp-w-full\"\n [style.gridTemplateRows]=\"'repeat(' + lines().length + ', auto) minmax(1.5rem, 1fr)'\"\n >\n @for (line of lines(); track $index) {\n <span class=\"afp-code-gutter\">{{ $index + 1 }}</span>\n <span class=\"afp-code-line\" [innerHTML]=\"trust(lineHtmls()[$index] ?? '')\"></span>\n }\n <span class=\"afp-code-gutter-filler\"></span>\n <span class=\"afp-code-line-filler\"></span>\n </div>\n </div>\n }\n `,\n }]\n }], ctorParameters: () => [] });\n\nexport { XmlRenderer };\n//# sourceMappingURL=eternalheart-angular-file-preview-index-CpiK7yUb.mjs.map\n"],"names":["fetchTextUtf8"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { input, inject, DestroyRef, signal, viewChild, afterNextRender, effect, untracked, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
3
3
|
import { init } from 'pptx-preview';
|
|
4
|
-
import { L as LocaleService, R as RequestService, g as getFallbackTranslator, D as Dg } from './eternalheart-angular-file-preview-eternalheart-angular-file-preview-
|
|
4
|
+
import { L as LocaleService, R as RequestService, g as getFallbackTranslator, D as Dg } from './eternalheart-angular-file-preview-eternalheart-angular-file-preview-RPRQhVCg.mjs';
|
|
5
5
|
import { R as RendererError } from './eternalheart-angular-file-preview-eternalheart-angular-file-preview-RendererError-DtNihCIX-DtNihCIX.mjs';
|
|
6
6
|
|
|
7
7
|
class PptxRenderer {
|
|
@@ -281,4 +281,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
|
|
|
281
281
|
}], ctorParameters: () => [] });
|
|
282
282
|
|
|
283
283
|
export { PptxRenderer };
|
|
284
|
-
//# sourceMappingURL=eternalheart-angular-file-preview-eternalheart-angular-file-preview-index
|
|
284
|
+
//# sourceMappingURL=eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-CyO8N29I-CMesNfcT.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eternalheart-angular-file-preview-eternalheart-angular-file-preview-index--7d8Hgi0-D-sg24Qs.mjs","sources":["../fesm2022/eternalheart-angular-file-preview-index--7d8Hgi0.mjs"],"sourcesContent":["import * as i0 from '@angular/core';\nimport { input, inject, DestroyRef, signal, viewChild, afterNextRender, effect, untracked, ChangeDetectionStrategy, Component } from '@angular/core';\nimport { init } from 'pptx-preview';\nimport { L as LocaleService, R as RequestService, g as getFallbackTranslator } from './eternalheart-angular-file-preview-eternalheart-angular-file-preview-DXwNhxAB.mjs';\nimport { R as RendererError } from './eternalheart-angular-file-preview-RendererError-DtNihCIX.mjs';\nimport { readPptxSlideSize } from '@eternalheart/file-preview-core';\n\nclass PptxRenderer {\n constructor() {\n this.url = input.required();\n this.tiled = input(true);\n this.locale = inject(LocaleService, { optional: true });\n this.request = inject(RequestService, { optional: true });\n this.destroyRef = inject(DestroyRef);\n this.t = this.locale?.t() ?? getFallbackTranslator();\n this.loading = signal(true);\n this.error = signal(null);\n this.slideCount = signal(0);\n this.containerRef = viewChild('containerRef');\n this.previewer = null;\n this.resizeObserver = null;\n this.arrayBufferRef = null;\n this.resizeTimeout = null;\n this.lastDimensions = { width: 0, height: 0 };\n this.slideRatio = 9 / 16;\n this.urlWatchReady = false;\n this.getToolbarGroups = () => [];\n afterNextRender(() => {\n const el = this.containerRef()?.nativeElement;\n if (!el)\n return;\n let isInitialRender = true;\n this.resizeObserver = new ResizeObserver(() => {\n if (isInitialRender) {\n isInitialRender = false;\n this.lastDimensions = this.calculateDimensions();\n return;\n }\n const newDimensions = this.calculateDimensions();\n const widthDiff = Math.abs(this.lastDimensions.width - newDimensions.width);\n const heightDiff = Math.abs(this.lastDimensions.height - newDimensions.height);\n if (widthDiff < 10 && heightDiff < 10)\n return;\n this.lastDimensions = newDimensions;\n if (this.resizeTimeout !== null)\n clearTimeout(this.resizeTimeout);\n this.resizeTimeout = window.setTimeout(() => {\n if (this.previewer && this.arrayBufferRef)\n void this.reinitializePreviewer();\n }, 800);\n });\n this.resizeObserver.observe(el);\n this.urlWatchReady = true;\n window.setTimeout(() => {\n requestAnimationFrame(() => requestAnimationFrame(() => void this.loadPptx()));\n }, 150);\n });\n this.destroyRef.onDestroy(() => {\n if (this.resizeObserver)\n this.resizeObserver.disconnect();\n if (this.resizeTimeout !== null)\n clearTimeout(this.resizeTimeout);\n this.arrayBufferRef = null;\n this.slideCount.set(0);\n if (this.previewer) {\n try {\n this.previewer.destroy();\n }\n catch {\n // ignore\n }\n }\n this.previewer = null;\n });\n effect(() => {\n const newUrl = this.url();\n if (!this.urlWatchReady)\n return;\n if (newUrl) {\n untracked(() => {\n void this.loadPptx();\n });\n }\n });\n }\n calculateDimensions() {\n const el = this.containerRef()?.nativeElement;\n if (!el)\n return { width: 960, height: 540 };\n const rawWidth = el.clientWidth;\n const parentWidth = el.parentElement?.clientWidth || 0;\n const containerWidth = rawWidth > 100 ? rawWidth : parentWidth > 100 ? parentWidth : 300;\n const height = Math.floor(containerWidth * this.slideRatio);\n return { width: containerWidth, height };\n }\n async reinitializePreviewer() {\n const el = this.containerRef()?.nativeElement;\n if (!el || !this.arrayBufferRef || this.slideCount() === 0)\n return;\n try {\n if (this.previewer) {\n try {\n this.previewer.destroy();\n }\n catch {\n // ignore\n }\n }\n el.innerHTML = '';\n const currentDimensions = this.calculateDimensions();\n this.previewer = init(el, {\n width: currentDimensions.width,\n height: this.tiled() ? currentDimensions.height * this.slideCount() : currentDimensions.height,\n mode: this.tiled() ? 'list' : 'slide',\n });\n await this.previewer.preview(this.arrayBufferRef);\n }\n catch {\n // 静默处理\n }\n }\n async loadPptx() {\n if (!this.containerRef()?.nativeElement)\n return;\n this.loading.set(true);\n this.error.set(null);\n let timeoutId = window.setTimeout(() => {\n this.error.set(this.t('pptx.timeout'));\n this.loading.set(false);\n }, 30000);\n try {\n const fetcher = this.request?.fetcher() ?? ((u, init) => fetch(u, init));\n const response = await fetcher(this.url(), {\n mode: 'cors',\n credentials: 'omit',\n redirect: 'follow',\n });\n if (!response.ok) {\n if (response.status === 404)\n throw new Error(this.t('pptx.not_found'));\n if (response.status === 403)\n throw new Error('无权限访问此文件');\n if (response.status >= 500)\n throw new Error('服务器错误,请稍后重试');\n throw new Error(`文件加载失败 (${response.status})`);\n }\n const arrayBuffer = await response.arrayBuffer();\n if (arrayBuffer.byteLength === 0)\n throw new Error('文件为空');\n this.arrayBufferRef = arrayBuffer;\n this.slideRatio = (await readPptxSlideSize(arrayBuffer)).ratio;\n const hiddenContainer = document.createElement('div');\n hiddenContainer.style.cssText = 'position:absolute;left:-9999px;top:-9999px;visibility:hidden';\n document.body.appendChild(hiddenContainer);\n try {\n const tempPreviewer = init(hiddenContainer, {\n width: 100,\n height: 100,\n mode: 'slide',\n });\n try {\n await tempPreviewer.preview(arrayBuffer);\n }\n catch {\n throw new Error(this.t('pptx.invalid_format'));\n }\n const count = tempPreviewer.slideCount;\n if (!count || count === 0)\n throw new Error(this.t('pptx.no_pages'));\n tempPreviewer.destroy();\n this.slideCount.set(count);\n const el = this.containerRef()?.nativeElement;\n if (el) {\n el.innerHTML = '';\n }\n const currentDimensions = this.calculateDimensions();\n this.previewer = init(el, {\n width: currentDimensions.width,\n height: this.tiled() ? currentDimensions.height * count : currentDimensions.height,\n mode: this.tiled() ? 'list' : 'slide',\n });\n await this.previewer.preview(arrayBuffer);\n if (timeoutId !== null) {\n clearTimeout(timeoutId);\n timeoutId = null;\n }\n this.loading.set(false);\n }\n finally {\n if (document.body.contains(hiddenContainer)) {\n document.body.removeChild(hiddenContainer);\n }\n }\n }\n catch (err) {\n if (timeoutId !== null)\n clearTimeout(timeoutId);\n let errorMsg = this.t('pptx.parse_failed');\n if (err instanceof Error)\n errorMsg = err.message;\n else if (typeof err === 'string')\n errorMsg = err;\n this.error.set(errorMsg);\n this.loading.set(false);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"19.2.25\", ngImport: i0, type: PptxRenderer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"19.2.25\", type: PptxRenderer, isStandalone: true, selector: \"afp-pptx-renderer\", inputs: { url: { classPropertyName: \"url\", publicName: \"url\", isSignal: true, isRequired: true, transformFunction: null }, tiled: { classPropertyName: \"tiled\", publicName: \"tiled\", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: \"afp-block afp-w-full afp-h-full\" }, viewQueries: [{ propertyName: \"containerRef\", first: true, predicate: [\"containerRef\"], descendants: true, isSignal: true }], ngImport: i0, template: `\n <div class=\"afp-relative afp-flex afp-flex-col afp-items-center afp-w-full afp-h-full\">\n @if (loading()) {\n <div\n class=\"afp-absolute afp-inset-0 afp-flex afp-items-center afp-justify-center afp-bg-surface-toolbar afp-backdrop-blur-sm afp-z-10\"\n >\n <div class=\"afp-text-center\">\n <div\n class=\"afp-w-10 afp-h-10 md:afp-w-12 md:afp-h-12 afp-mx-auto afp-mb-3 afp-border-4 afp-border-line-strong afp-border-t-spinner-head afp-rounded-full afp-animate-spin\"\n ></div>\n <p class=\"afp-text-xs md:afp-text-sm afp-text-fg-secondary afp-font-medium\">{{ t('pptx.loading') }}</p>\n </div>\n </div>\n }\n\n @if (error() && !loading()) {\n <afp-renderer-error\n [message]=\"t('pptx.load_failed')\"\n [detail]=\"error()!\"\n class=\"afp-absolute afp-inset-0 afp-bg-surface-toolbar afp-backdrop-blur-sm afp-z-10\"\n />\n }\n\n @if (!error()) {\n <div\n #containerRef\n class=\"pptx-wrapper afp-w-full afp-max-w-full md:afp-max-w-6xl\"\n [style.opacity]=\"loading() ? 0 : 1\"\n ></div>\n }\n </div>\n `, isInline: true, dependencies: [{ kind: \"component\", type: RendererError, selector: \"afp-renderer-error\", inputs: [\"message\", \"detail\", \"showIcon\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"19.2.25\", ngImport: i0, type: PptxRenderer, decorators: [{\n type: Component,\n args: [{\n selector: 'afp-pptx-renderer',\n standalone: true,\n imports: [RendererError],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'afp-block afp-w-full afp-h-full' },\n template: `\n <div class=\"afp-relative afp-flex afp-flex-col afp-items-center afp-w-full afp-h-full\">\n @if (loading()) {\n <div\n class=\"afp-absolute afp-inset-0 afp-flex afp-items-center afp-justify-center afp-bg-surface-toolbar afp-backdrop-blur-sm afp-z-10\"\n >\n <div class=\"afp-text-center\">\n <div\n class=\"afp-w-10 afp-h-10 md:afp-w-12 md:afp-h-12 afp-mx-auto afp-mb-3 afp-border-4 afp-border-line-strong afp-border-t-spinner-head afp-rounded-full afp-animate-spin\"\n ></div>\n <p class=\"afp-text-xs md:afp-text-sm afp-text-fg-secondary afp-font-medium\">{{ t('pptx.loading') }}</p>\n </div>\n </div>\n }\n\n @if (error() && !loading()) {\n <afp-renderer-error\n [message]=\"t('pptx.load_failed')\"\n [detail]=\"error()!\"\n class=\"afp-absolute afp-inset-0 afp-bg-surface-toolbar afp-backdrop-blur-sm afp-z-10\"\n />\n }\n\n @if (!error()) {\n <div\n #containerRef\n class=\"pptx-wrapper afp-w-full afp-max-w-full md:afp-max-w-6xl\"\n [style.opacity]=\"loading() ? 0 : 1\"\n ></div>\n }\n </div>\n `,\n }]\n }], ctorParameters: () => [] });\n\nexport { PptxRenderer };\n//# sourceMappingURL=eternalheart-angular-file-preview-index--7d8Hgi0.mjs.map\n"],"names":["readPptxSlideSize"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-CyO8N29I-CMesNfcT.mjs","sources":["../fesm2022/eternalheart-angular-file-preview-index-CyO8N29I.mjs"],"sourcesContent":["import * as i0 from '@angular/core';\nimport { input, inject, DestroyRef, signal, viewChild, afterNextRender, effect, untracked, ChangeDetectionStrategy, Component } from '@angular/core';\nimport { init } from 'pptx-preview';\nimport { L as LocaleService, R as RequestService, g as getFallbackTranslator } from './eternalheart-angular-file-preview-eternalheart-angular-file-preview-Dnuf7kun.mjs';\nimport { R as RendererError } from './eternalheart-angular-file-preview-RendererError-DtNihCIX.mjs';\nimport { readPptxSlideSize } from '@eternalheart/file-preview-core';\n\nclass PptxRenderer {\n constructor() {\n this.url = input.required();\n this.tiled = input(true);\n this.locale = inject(LocaleService, { optional: true });\n this.request = inject(RequestService, { optional: true });\n this.destroyRef = inject(DestroyRef);\n this.t = this.locale?.t() ?? getFallbackTranslator();\n this.loading = signal(true);\n this.error = signal(null);\n this.slideCount = signal(0);\n this.containerRef = viewChild('containerRef');\n this.previewer = null;\n this.resizeObserver = null;\n this.arrayBufferRef = null;\n this.resizeTimeout = null;\n this.lastDimensions = { width: 0, height: 0 };\n this.slideRatio = 9 / 16;\n this.urlWatchReady = false;\n this.getToolbarGroups = () => [];\n afterNextRender(() => {\n const el = this.containerRef()?.nativeElement;\n if (!el)\n return;\n let isInitialRender = true;\n this.resizeObserver = new ResizeObserver(() => {\n if (isInitialRender) {\n isInitialRender = false;\n this.lastDimensions = this.calculateDimensions();\n return;\n }\n const newDimensions = this.calculateDimensions();\n const widthDiff = Math.abs(this.lastDimensions.width - newDimensions.width);\n const heightDiff = Math.abs(this.lastDimensions.height - newDimensions.height);\n if (widthDiff < 10 && heightDiff < 10)\n return;\n this.lastDimensions = newDimensions;\n if (this.resizeTimeout !== null)\n clearTimeout(this.resizeTimeout);\n this.resizeTimeout = window.setTimeout(() => {\n if (this.previewer && this.arrayBufferRef)\n void this.reinitializePreviewer();\n }, 800);\n });\n this.resizeObserver.observe(el);\n this.urlWatchReady = true;\n window.setTimeout(() => {\n requestAnimationFrame(() => requestAnimationFrame(() => void this.loadPptx()));\n }, 150);\n });\n this.destroyRef.onDestroy(() => {\n if (this.resizeObserver)\n this.resizeObserver.disconnect();\n if (this.resizeTimeout !== null)\n clearTimeout(this.resizeTimeout);\n this.arrayBufferRef = null;\n this.slideCount.set(0);\n if (this.previewer) {\n try {\n this.previewer.destroy();\n }\n catch {\n // ignore\n }\n }\n this.previewer = null;\n });\n effect(() => {\n const newUrl = this.url();\n if (!this.urlWatchReady)\n return;\n if (newUrl) {\n untracked(() => {\n void this.loadPptx();\n });\n }\n });\n }\n calculateDimensions() {\n const el = this.containerRef()?.nativeElement;\n if (!el)\n return { width: 960, height: 540 };\n const rawWidth = el.clientWidth;\n const parentWidth = el.parentElement?.clientWidth || 0;\n const containerWidth = rawWidth > 100 ? rawWidth : parentWidth > 100 ? parentWidth : 300;\n const height = Math.floor(containerWidth * this.slideRatio);\n return { width: containerWidth, height };\n }\n async reinitializePreviewer() {\n const el = this.containerRef()?.nativeElement;\n if (!el || !this.arrayBufferRef || this.slideCount() === 0)\n return;\n try {\n if (this.previewer) {\n try {\n this.previewer.destroy();\n }\n catch {\n // ignore\n }\n }\n el.innerHTML = '';\n const currentDimensions = this.calculateDimensions();\n this.previewer = init(el, {\n width: currentDimensions.width,\n height: this.tiled() ? currentDimensions.height * this.slideCount() : currentDimensions.height,\n mode: this.tiled() ? 'list' : 'slide',\n });\n await this.previewer.preview(this.arrayBufferRef);\n }\n catch {\n // 静默处理\n }\n }\n async loadPptx() {\n if (!this.containerRef()?.nativeElement)\n return;\n this.loading.set(true);\n this.error.set(null);\n let timeoutId = window.setTimeout(() => {\n this.error.set(this.t('pptx.timeout'));\n this.loading.set(false);\n }, 30000);\n try {\n const fetcher = this.request?.fetcher() ?? ((u, init) => fetch(u, init));\n const response = await fetcher(this.url(), {\n mode: 'cors',\n credentials: 'omit',\n redirect: 'follow',\n });\n if (!response.ok) {\n if (response.status === 404)\n throw new Error(this.t('pptx.not_found'));\n if (response.status === 403)\n throw new Error('无权限访问此文件');\n if (response.status >= 500)\n throw new Error('服务器错误,请稍后重试');\n throw new Error(`文件加载失败 (${response.status})`);\n }\n const arrayBuffer = await response.arrayBuffer();\n if (arrayBuffer.byteLength === 0)\n throw new Error('文件为空');\n this.arrayBufferRef = arrayBuffer;\n this.slideRatio = (await readPptxSlideSize(arrayBuffer)).ratio;\n const hiddenContainer = document.createElement('div');\n hiddenContainer.style.cssText = 'position:absolute;left:-9999px;top:-9999px;visibility:hidden';\n document.body.appendChild(hiddenContainer);\n try {\n const tempPreviewer = init(hiddenContainer, {\n width: 100,\n height: 100,\n mode: 'slide',\n });\n try {\n await tempPreviewer.preview(arrayBuffer);\n }\n catch {\n throw new Error(this.t('pptx.invalid_format'));\n }\n const count = tempPreviewer.slideCount;\n if (!count || count === 0)\n throw new Error(this.t('pptx.no_pages'));\n tempPreviewer.destroy();\n this.slideCount.set(count);\n const el = this.containerRef()?.nativeElement;\n if (el) {\n el.innerHTML = '';\n }\n const currentDimensions = this.calculateDimensions();\n this.previewer = init(el, {\n width: currentDimensions.width,\n height: this.tiled() ? currentDimensions.height * count : currentDimensions.height,\n mode: this.tiled() ? 'list' : 'slide',\n });\n await this.previewer.preview(arrayBuffer);\n if (timeoutId !== null) {\n clearTimeout(timeoutId);\n timeoutId = null;\n }\n this.loading.set(false);\n }\n finally {\n if (document.body.contains(hiddenContainer)) {\n document.body.removeChild(hiddenContainer);\n }\n }\n }\n catch (err) {\n if (timeoutId !== null)\n clearTimeout(timeoutId);\n let errorMsg = this.t('pptx.parse_failed');\n if (err instanceof Error)\n errorMsg = err.message;\n else if (typeof err === 'string')\n errorMsg = err;\n this.error.set(errorMsg);\n this.loading.set(false);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"19.2.25\", ngImport: i0, type: PptxRenderer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"19.2.25\", type: PptxRenderer, isStandalone: true, selector: \"afp-pptx-renderer\", inputs: { url: { classPropertyName: \"url\", publicName: \"url\", isSignal: true, isRequired: true, transformFunction: null }, tiled: { classPropertyName: \"tiled\", publicName: \"tiled\", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: \"afp-block afp-w-full afp-h-full\" }, viewQueries: [{ propertyName: \"containerRef\", first: true, predicate: [\"containerRef\"], descendants: true, isSignal: true }], ngImport: i0, template: `\n <div class=\"afp-relative afp-flex afp-flex-col afp-items-center afp-w-full afp-h-full\">\n @if (loading()) {\n <div\n class=\"afp-absolute afp-inset-0 afp-flex afp-items-center afp-justify-center afp-bg-surface-toolbar afp-backdrop-blur-sm afp-z-10\"\n >\n <div class=\"afp-text-center\">\n <div\n class=\"afp-w-10 afp-h-10 md:afp-w-12 md:afp-h-12 afp-mx-auto afp-mb-3 afp-border-4 afp-border-line-strong afp-border-t-spinner-head afp-rounded-full afp-animate-spin\"\n ></div>\n <p class=\"afp-text-xs md:afp-text-sm afp-text-fg-secondary afp-font-medium\">{{ t('pptx.loading') }}</p>\n </div>\n </div>\n }\n\n @if (error() && !loading()) {\n <afp-renderer-error\n [message]=\"t('pptx.load_failed')\"\n [detail]=\"error()!\"\n class=\"afp-absolute afp-inset-0 afp-bg-surface-toolbar afp-backdrop-blur-sm afp-z-10\"\n />\n }\n\n @if (!error()) {\n <div\n #containerRef\n class=\"pptx-wrapper afp-w-full afp-max-w-full md:afp-max-w-6xl\"\n [style.opacity]=\"loading() ? 0 : 1\"\n ></div>\n }\n </div>\n `, isInline: true, dependencies: [{ kind: \"component\", type: RendererError, selector: \"afp-renderer-error\", inputs: [\"message\", \"detail\", \"showIcon\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"19.2.25\", ngImport: i0, type: PptxRenderer, decorators: [{\n type: Component,\n args: [{\n selector: 'afp-pptx-renderer',\n standalone: true,\n imports: [RendererError],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'afp-block afp-w-full afp-h-full' },\n template: `\n <div class=\"afp-relative afp-flex afp-flex-col afp-items-center afp-w-full afp-h-full\">\n @if (loading()) {\n <div\n class=\"afp-absolute afp-inset-0 afp-flex afp-items-center afp-justify-center afp-bg-surface-toolbar afp-backdrop-blur-sm afp-z-10\"\n >\n <div class=\"afp-text-center\">\n <div\n class=\"afp-w-10 afp-h-10 md:afp-w-12 md:afp-h-12 afp-mx-auto afp-mb-3 afp-border-4 afp-border-line-strong afp-border-t-spinner-head afp-rounded-full afp-animate-spin\"\n ></div>\n <p class=\"afp-text-xs md:afp-text-sm afp-text-fg-secondary afp-font-medium\">{{ t('pptx.loading') }}</p>\n </div>\n </div>\n }\n\n @if (error() && !loading()) {\n <afp-renderer-error\n [message]=\"t('pptx.load_failed')\"\n [detail]=\"error()!\"\n class=\"afp-absolute afp-inset-0 afp-bg-surface-toolbar afp-backdrop-blur-sm afp-z-10\"\n />\n }\n\n @if (!error()) {\n <div\n #containerRef\n class=\"pptx-wrapper afp-w-full afp-max-w-full md:afp-max-w-6xl\"\n [style.opacity]=\"loading() ? 0 : 1\"\n ></div>\n }\n </div>\n `,\n }]\n }], ctorParameters: () => [] });\n\nexport { PptxRenderer };\n//# sourceMappingURL=eternalheart-angular-file-preview-index-CyO8N29I.mjs.map\n"],"names":["readPptxSlideSize"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { input, inject, DestroyRef, signal, viewChild, afterNextRender, effect, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
3
3
|
import Spreadsheet from 'x-data-spreadsheet';
|
|
4
|
-
import { L as LocaleService, R as RequestService, g as getFallbackTranslator, e as e0, u as u0, O as O0, l as lg } from './eternalheart-angular-file-preview-eternalheart-angular-file-preview-
|
|
4
|
+
import { L as LocaleService, R as RequestService, g as getFallbackTranslator, e as e0, u as u0, O as O0, l as lg } from './eternalheart-angular-file-preview-eternalheart-angular-file-preview-RPRQhVCg.mjs';
|
|
5
5
|
import { R as RendererError } from './eternalheart-angular-file-preview-eternalheart-angular-file-preview-RendererError-DtNihCIX-DtNihCIX.mjs';
|
|
6
6
|
|
|
7
7
|
class CsvRenderer {
|
|
@@ -204,4 +204,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
|
|
|
204
204
|
}], ctorParameters: () => [] });
|
|
205
205
|
|
|
206
206
|
export { CsvRenderer };
|
|
207
|
-
//# sourceMappingURL=eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-
|
|
207
|
+
//# sourceMappingURL=eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-D6UfVKL_-CAqlAQIN.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-Cw90Kdyg-BzrW_cyx.mjs","sources":["../fesm2022/eternalheart-angular-file-preview-index-Cw90Kdyg.mjs"],"sourcesContent":["import * as i0 from '@angular/core';\nimport { input, inject, DestroyRef, signal, viewChild, afterNextRender, effect, ChangeDetectionStrategy, Component } from '@angular/core';\nimport Spreadsheet from 'x-data-spreadsheet';\nimport { L as LocaleService, R as RequestService, g as getFallbackTranslator } from './eternalheart-angular-file-preview-eternalheart-angular-file-preview-DXwNhxAB.mjs';\nimport { R as RendererError } from './eternalheart-angular-file-preview-RendererError-DtNihCIX.mjs';\nimport { fetchTextUtf8, parseCsv, guessCsvDelimiter, convertCsvToSpreadsheetData } from '@eternalheart/file-preview-core';\n\nclass CsvRenderer {\n constructor() {\n this.url = input.required();\n this.fileName = input.required();\n this.locale = inject(LocaleService, { optional: true });\n this.request = inject(RequestService, { optional: true });\n this.destroyRef = inject(DestroyRef);\n this.t = this.locale?.t() ?? getFallbackTranslator();\n this.loading = signal(true);\n this.error = signal(null);\n this.container = viewChild('container');\n this.sheetData = null;\n this.resizeObserver = null;\n this.resizeTimeout = null;\n this.lastDimensions = { width: 0, height: 0 };\n this.urlWatchStarted = false;\n this.getToolbarGroups = () => [];\n afterNextRender(() => {\n const el = this.container()?.nativeElement;\n if (!el)\n return;\n let isInitialRender = true;\n this.resizeObserver = new ResizeObserver(() => {\n if (isInitialRender) {\n isInitialRender = false;\n this.lastDimensions = this.calculateDimensions();\n return;\n }\n const newDimensions = this.calculateDimensions();\n const widthDiff = Math.abs(this.lastDimensions.width - newDimensions.width);\n const heightDiff = Math.abs(this.lastDimensions.height - newDimensions.height);\n if (widthDiff < 10 && heightDiff < 10)\n return;\n this.lastDimensions = newDimensions;\n if (this.resizeTimeout !== null)\n clearTimeout(this.resizeTimeout);\n this.resizeTimeout = window.setTimeout(() => {\n if (this.sheetData)\n this.mountSpreadsheet();\n }, 500);\n });\n this.resizeObserver.observe(el);\n setTimeout(() => {\n requestAnimationFrame(() => this.loadCsv());\n }, 100);\n });\n effect(() => {\n this.url();\n if (!this.urlWatchStarted) {\n this.urlWatchStarted = true;\n return;\n }\n void this.loadCsv();\n });\n this.destroyRef.onDestroy(() => {\n this.resizeObserver?.disconnect();\n this.resizeObserver = null;\n if (this.resizeTimeout !== null)\n clearTimeout(this.resizeTimeout);\n this.sheetData = null;\n const el = this.container()?.nativeElement;\n if (el)\n el.innerHTML = '';\n });\n }\n calculateDimensions() {\n const el = this.container()?.nativeElement;\n if (!el)\n return { width: 800, height: 600 };\n const rawWidth = el.clientWidth;\n const rawHeight = el.clientHeight;\n const width = rawWidth > 100 ? rawWidth : 800;\n const height = rawHeight > 100 ? rawHeight : 600;\n return { width, height };\n }\n mountSpreadsheet() {\n const el = this.container()?.nativeElement;\n if (!el || !this.sheetData)\n return;\n el.innerHTML = '';\n const { width, height } = this.calculateDimensions();\n const isMobile = width < 640;\n const s = new Spreadsheet(el, {\n mode: 'read',\n showToolbar: false,\n showContextmenu: false,\n showGrid: true,\n row: {\n len: 100,\n height: 25,\n },\n col: {\n len: 26,\n width: isMobile ? 80 : 100,\n indexWidth: isMobile ? 40 : 60,\n minWidth: isMobile ? 40 : 60,\n },\n view: {\n height: () => height,\n width: () => width,\n },\n });\n s.loadData(this.sheetData);\n }\n async loadCsv() {\n if (!this.container()?.nativeElement)\n return;\n this.loading.set(true);\n this.error.set(null);\n try {\n const fetcher = this.request?.fetcher() ?? ((u, init) => fetch(u, init));\n const text = await fetchTextUtf8(this.url(), { fetcher });\n const parsed = parseCsv(text, { delimiter: guessCsvDelimiter(this.fileName()) });\n const data = convertCsvToSpreadsheetData(parsed.header, parsed.rows, this.fileName());\n this.sheetData = data;\n this.mountSpreadsheet();\n this.loading.set(false);\n }\n catch (err) {\n console.error('CSV 解析错误:', err);\n this.error.set(this.t('csv.load_failed'));\n this.loading.set(false);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"19.2.25\", ngImport: i0, type: CsvRenderer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"19.2.25\", type: CsvRenderer, isStandalone: true, selector: \"afp-csv-renderer\", inputs: { url: { classPropertyName: \"url\", publicName: \"url\", isSignal: true, isRequired: true, transformFunction: null }, fileName: { classPropertyName: \"fileName\", publicName: \"fileName\", isSignal: true, isRequired: true, transformFunction: null } }, host: { classAttribute: \"afp-block afp-w-full afp-h-full\" }, viewQueries: [{ propertyName: \"container\", first: true, predicate: [\"container\"], descendants: true, isSignal: true }], ngImport: i0, template: `\n <div class=\"afp-relative afp-flex afp-flex-col afp-items-center afp-w-full afp-h-full\">\n @if (loading()) {\n <div\n class=\"afp-absolute afp-inset-0 afp-flex afp-items-center afp-justify-center afp-bg-surface-toolbar afp-backdrop-blur-sm afp-z-10\"\n >\n <div class=\"afp-text-center\">\n <div\n class=\"afp-w-10 afp-h-10 md:afp-w-12 md:afp-h-12 afp-mx-auto afp-mb-3 afp-border-4 afp-border-line-strong afp-border-t-spinner-head afp-rounded-full afp-animate-spin\"\n ></div>\n <p class=\"afp-text-xs md:afp-text-sm afp-text-fg-secondary afp-font-medium\">{{ t('csv.loading') }}</p>\n </div>\n </div>\n }\n\n @if (error() && !loading()) {\n <afp-renderer-error\n [message]=\"error()!\"\n class=\"afp-absolute afp-inset-0 afp-bg-surface-toolbar afp-backdrop-blur-sm afp-z-10\"\n />\n }\n\n @if (!error()) {\n <div\n #container\n class=\"xlsx-spreadsheet-container afp-w-full afp-h-full\"\n [style.opacity]=\"loading() ? 0 : 1\"\n ></div>\n }\n </div>\n `, isInline: true, dependencies: [{ kind: \"component\", type: RendererError, selector: \"afp-renderer-error\", inputs: [\"message\", \"detail\", \"showIcon\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"19.2.25\", ngImport: i0, type: CsvRenderer, decorators: [{\n type: Component,\n args: [{\n selector: 'afp-csv-renderer',\n standalone: true,\n imports: [RendererError],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'afp-block afp-w-full afp-h-full' },\n template: `\n <div class=\"afp-relative afp-flex afp-flex-col afp-items-center afp-w-full afp-h-full\">\n @if (loading()) {\n <div\n class=\"afp-absolute afp-inset-0 afp-flex afp-items-center afp-justify-center afp-bg-surface-toolbar afp-backdrop-blur-sm afp-z-10\"\n >\n <div class=\"afp-text-center\">\n <div\n class=\"afp-w-10 afp-h-10 md:afp-w-12 md:afp-h-12 afp-mx-auto afp-mb-3 afp-border-4 afp-border-line-strong afp-border-t-spinner-head afp-rounded-full afp-animate-spin\"\n ></div>\n <p class=\"afp-text-xs md:afp-text-sm afp-text-fg-secondary afp-font-medium\">{{ t('csv.loading') }}</p>\n </div>\n </div>\n }\n\n @if (error() && !loading()) {\n <afp-renderer-error\n [message]=\"error()!\"\n class=\"afp-absolute afp-inset-0 afp-bg-surface-toolbar afp-backdrop-blur-sm afp-z-10\"\n />\n }\n\n @if (!error()) {\n <div\n #container\n class=\"xlsx-spreadsheet-container afp-w-full afp-h-full\"\n [style.opacity]=\"loading() ? 0 : 1\"\n ></div>\n }\n </div>\n `,\n }]\n }], ctorParameters: () => [] });\n\nexport { CsvRenderer };\n//# sourceMappingURL=eternalheart-angular-file-preview-index-Cw90Kdyg.mjs.map\n"],"names":["fetchTextUtf8","parseCsv","guessCsvDelimiter","convertCsvToSpreadsheetData"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-D6UfVKL_-CAqlAQIN.mjs","sources":["../fesm2022/eternalheart-angular-file-preview-index-D6UfVKL_.mjs"],"sourcesContent":["import * as i0 from '@angular/core';\nimport { input, inject, DestroyRef, signal, viewChild, afterNextRender, effect, ChangeDetectionStrategy, Component } from '@angular/core';\nimport Spreadsheet from 'x-data-spreadsheet';\nimport { L as LocaleService, R as RequestService, g as getFallbackTranslator } from './eternalheart-angular-file-preview-eternalheart-angular-file-preview-Dnuf7kun.mjs';\nimport { R as RendererError } from './eternalheart-angular-file-preview-RendererError-DtNihCIX.mjs';\nimport { fetchTextUtf8, parseCsv, guessCsvDelimiter, convertCsvToSpreadsheetData } from '@eternalheart/file-preview-core';\n\nclass CsvRenderer {\n constructor() {\n this.url = input.required();\n this.fileName = input.required();\n this.locale = inject(LocaleService, { optional: true });\n this.request = inject(RequestService, { optional: true });\n this.destroyRef = inject(DestroyRef);\n this.t = this.locale?.t() ?? getFallbackTranslator();\n this.loading = signal(true);\n this.error = signal(null);\n this.container = viewChild('container');\n this.sheetData = null;\n this.resizeObserver = null;\n this.resizeTimeout = null;\n this.lastDimensions = { width: 0, height: 0 };\n this.urlWatchStarted = false;\n this.getToolbarGroups = () => [];\n afterNextRender(() => {\n const el = this.container()?.nativeElement;\n if (!el)\n return;\n let isInitialRender = true;\n this.resizeObserver = new ResizeObserver(() => {\n if (isInitialRender) {\n isInitialRender = false;\n this.lastDimensions = this.calculateDimensions();\n return;\n }\n const newDimensions = this.calculateDimensions();\n const widthDiff = Math.abs(this.lastDimensions.width - newDimensions.width);\n const heightDiff = Math.abs(this.lastDimensions.height - newDimensions.height);\n if (widthDiff < 10 && heightDiff < 10)\n return;\n this.lastDimensions = newDimensions;\n if (this.resizeTimeout !== null)\n clearTimeout(this.resizeTimeout);\n this.resizeTimeout = window.setTimeout(() => {\n if (this.sheetData)\n this.mountSpreadsheet();\n }, 500);\n });\n this.resizeObserver.observe(el);\n setTimeout(() => {\n requestAnimationFrame(() => this.loadCsv());\n }, 100);\n });\n effect(() => {\n this.url();\n if (!this.urlWatchStarted) {\n this.urlWatchStarted = true;\n return;\n }\n void this.loadCsv();\n });\n this.destroyRef.onDestroy(() => {\n this.resizeObserver?.disconnect();\n this.resizeObserver = null;\n if (this.resizeTimeout !== null)\n clearTimeout(this.resizeTimeout);\n this.sheetData = null;\n const el = this.container()?.nativeElement;\n if (el)\n el.innerHTML = '';\n });\n }\n calculateDimensions() {\n const el = this.container()?.nativeElement;\n if (!el)\n return { width: 800, height: 600 };\n const rawWidth = el.clientWidth;\n const rawHeight = el.clientHeight;\n const width = rawWidth > 100 ? rawWidth : 800;\n const height = rawHeight > 100 ? rawHeight : 600;\n return { width, height };\n }\n mountSpreadsheet() {\n const el = this.container()?.nativeElement;\n if (!el || !this.sheetData)\n return;\n el.innerHTML = '';\n const { width, height } = this.calculateDimensions();\n const isMobile = width < 640;\n const s = new Spreadsheet(el, {\n mode: 'read',\n showToolbar: false,\n showContextmenu: false,\n showGrid: true,\n row: {\n len: 100,\n height: 25,\n },\n col: {\n len: 26,\n width: isMobile ? 80 : 100,\n indexWidth: isMobile ? 40 : 60,\n minWidth: isMobile ? 40 : 60,\n },\n view: {\n height: () => height,\n width: () => width,\n },\n });\n s.loadData(this.sheetData);\n }\n async loadCsv() {\n if (!this.container()?.nativeElement)\n return;\n this.loading.set(true);\n this.error.set(null);\n try {\n const fetcher = this.request?.fetcher() ?? ((u, init) => fetch(u, init));\n const text = await fetchTextUtf8(this.url(), { fetcher });\n const parsed = parseCsv(text, { delimiter: guessCsvDelimiter(this.fileName()) });\n const data = convertCsvToSpreadsheetData(parsed.header, parsed.rows, this.fileName());\n this.sheetData = data;\n this.mountSpreadsheet();\n this.loading.set(false);\n }\n catch (err) {\n console.error('CSV 解析错误:', err);\n this.error.set(this.t('csv.load_failed'));\n this.loading.set(false);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"19.2.25\", ngImport: i0, type: CsvRenderer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"19.2.25\", type: CsvRenderer, isStandalone: true, selector: \"afp-csv-renderer\", inputs: { url: { classPropertyName: \"url\", publicName: \"url\", isSignal: true, isRequired: true, transformFunction: null }, fileName: { classPropertyName: \"fileName\", publicName: \"fileName\", isSignal: true, isRequired: true, transformFunction: null } }, host: { classAttribute: \"afp-block afp-w-full afp-h-full\" }, viewQueries: [{ propertyName: \"container\", first: true, predicate: [\"container\"], descendants: true, isSignal: true }], ngImport: i0, template: `\n <div class=\"afp-relative afp-flex afp-flex-col afp-items-center afp-w-full afp-h-full\">\n @if (loading()) {\n <div\n class=\"afp-absolute afp-inset-0 afp-flex afp-items-center afp-justify-center afp-bg-surface-toolbar afp-backdrop-blur-sm afp-z-10\"\n >\n <div class=\"afp-text-center\">\n <div\n class=\"afp-w-10 afp-h-10 md:afp-w-12 md:afp-h-12 afp-mx-auto afp-mb-3 afp-border-4 afp-border-line-strong afp-border-t-spinner-head afp-rounded-full afp-animate-spin\"\n ></div>\n <p class=\"afp-text-xs md:afp-text-sm afp-text-fg-secondary afp-font-medium\">{{ t('csv.loading') }}</p>\n </div>\n </div>\n }\n\n @if (error() && !loading()) {\n <afp-renderer-error\n [message]=\"error()!\"\n class=\"afp-absolute afp-inset-0 afp-bg-surface-toolbar afp-backdrop-blur-sm afp-z-10\"\n />\n }\n\n @if (!error()) {\n <div\n #container\n class=\"xlsx-spreadsheet-container afp-w-full afp-h-full\"\n [style.opacity]=\"loading() ? 0 : 1\"\n ></div>\n }\n </div>\n `, isInline: true, dependencies: [{ kind: \"component\", type: RendererError, selector: \"afp-renderer-error\", inputs: [\"message\", \"detail\", \"showIcon\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"19.2.25\", ngImport: i0, type: CsvRenderer, decorators: [{\n type: Component,\n args: [{\n selector: 'afp-csv-renderer',\n standalone: true,\n imports: [RendererError],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'afp-block afp-w-full afp-h-full' },\n template: `\n <div class=\"afp-relative afp-flex afp-flex-col afp-items-center afp-w-full afp-h-full\">\n @if (loading()) {\n <div\n class=\"afp-absolute afp-inset-0 afp-flex afp-items-center afp-justify-center afp-bg-surface-toolbar afp-backdrop-blur-sm afp-z-10\"\n >\n <div class=\"afp-text-center\">\n <div\n class=\"afp-w-10 afp-h-10 md:afp-w-12 md:afp-h-12 afp-mx-auto afp-mb-3 afp-border-4 afp-border-line-strong afp-border-t-spinner-head afp-rounded-full afp-animate-spin\"\n ></div>\n <p class=\"afp-text-xs md:afp-text-sm afp-text-fg-secondary afp-font-medium\">{{ t('csv.loading') }}</p>\n </div>\n </div>\n }\n\n @if (error() && !loading()) {\n <afp-renderer-error\n [message]=\"error()!\"\n class=\"afp-absolute afp-inset-0 afp-bg-surface-toolbar afp-backdrop-blur-sm afp-z-10\"\n />\n }\n\n @if (!error()) {\n <div\n #container\n class=\"xlsx-spreadsheet-container afp-w-full afp-h-full\"\n [style.opacity]=\"loading() ? 0 : 1\"\n ></div>\n }\n </div>\n `,\n }]\n }], ctorParameters: () => [] });\n\nexport { CsvRenderer };\n//# sourceMappingURL=eternalheart-angular-file-preview-index-D6UfVKL_.mjs.map\n"],"names":["fetchTextUtf8","parseCsv","guessCsvDelimiter","convertCsvToSpreadsheetData"],"mappings":"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"}
|