@tanstack/vue-router 1.159.9 → 1.159.10
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/dist/esm/Asset.js +9 -0
- package/dist/esm/Asset.js.map +1 -1
- package/dist/source/Asset.jsx +13 -0
- package/dist/source/Asset.jsx.map +1 -1
- package/package.json +1 -1
- package/src/Asset.tsx +15 -0
package/dist/esm/Asset.js
CHANGED
|
@@ -41,8 +41,10 @@ const Script = Vue.defineComponent({
|
|
|
41
41
|
},
|
|
42
42
|
setup(props) {
|
|
43
43
|
const router = useRouter();
|
|
44
|
+
const dataScript = typeof props.attrs?.type === "string" && props.attrs.type !== "" && props.attrs.type !== "text/javascript" && props.attrs.type !== "module";
|
|
44
45
|
if (!(isServer ?? router.isServer)) {
|
|
45
46
|
Vue.onMounted(() => {
|
|
47
|
+
if (dataScript) return;
|
|
46
48
|
const attrs = props.attrs;
|
|
47
49
|
const children = props.children;
|
|
48
50
|
if (attrs?.src) {
|
|
@@ -92,6 +94,13 @@ const Script = Vue.defineComponent({
|
|
|
92
94
|
}
|
|
93
95
|
return () => {
|
|
94
96
|
if (!(isServer ?? router.isServer)) {
|
|
97
|
+
if (dataScript && typeof props.children === "string") {
|
|
98
|
+
return Vue.h("script", {
|
|
99
|
+
...props.attrs,
|
|
100
|
+
"data-allow-mismatch": true,
|
|
101
|
+
innerHTML: props.children
|
|
102
|
+
});
|
|
103
|
+
}
|
|
95
104
|
const {
|
|
96
105
|
src: _src,
|
|
97
106
|
...rest
|
package/dist/esm/Asset.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Asset.js","sources":["../../src/Asset.tsx"],"sourcesContent":["import * as Vue from 'vue'\nimport { isServer } from '@tanstack/router-core/isServer'\nimport { useRouter } from './useRouter'\nimport type { RouterManagedTag } from '@tanstack/router-core'\n\ninterface ScriptAttrs {\n [key: string]: string | boolean | undefined\n src?: string\n}\n\nconst Title = Vue.defineComponent({\n name: 'Title',\n props: {\n children: {\n type: String,\n default: '',\n },\n },\n setup(props) {\n const router = useRouter()\n\n if (!(isServer ?? router.isServer)) {\n Vue.onMounted(() => {\n if (props.children) {\n document.title = props.children\n }\n })\n\n Vue.watch(\n () => props.children,\n (newTitle) => {\n if (newTitle) {\n document.title = newTitle\n }\n },\n )\n }\n\n return () => Vue.h('title', {}, props.children)\n },\n})\n\nconst Script = Vue.defineComponent({\n name: 'Script',\n props: {\n attrs: {\n type: Object as Vue.PropType<ScriptAttrs>,\n default: () => ({}),\n },\n children: {\n type: String,\n default: undefined,\n },\n },\n setup(props) {\n const router = useRouter()\n\n if (!(isServer ?? router.isServer)) {\n Vue.onMounted(() => {\n const attrs = props.attrs\n const children = props.children\n\n if (attrs?.src) {\n const normSrc = (() => {\n try {\n const base = document.baseURI || window.location.href\n return new URL(attrs.src, base).href\n } catch {\n return attrs.src\n }\n })()\n const existingScript = Array.from(\n document.querySelectorAll('script[src]'),\n ).find((el) => (el as HTMLScriptElement).src === normSrc)\n\n if (existingScript) {\n return\n }\n\n const script = document.createElement('script')\n\n for (const [key, value] of Object.entries(attrs)) {\n if (value !== undefined && value !== false) {\n script.setAttribute(\n key,\n typeof value === 'boolean' ? '' : String(value),\n )\n }\n }\n\n document.head.appendChild(script)\n } else if (typeof children === 'string') {\n const typeAttr =\n typeof attrs?.type === 'string' ? attrs.type : 'text/javascript'\n const nonceAttr =\n typeof attrs?.nonce === 'string' ? attrs.nonce : undefined\n const existingScript = Array.from(\n document.querySelectorAll('script:not([src])'),\n ).find((el) => {\n if (!(el instanceof HTMLScriptElement)) return false\n const sType = el.getAttribute('type') ?? 'text/javascript'\n const sNonce = el.getAttribute('nonce') ?? undefined\n return (\n el.textContent === children &&\n sType === typeAttr &&\n sNonce === nonceAttr\n )\n })\n\n if (existingScript) {\n return\n }\n\n const script = document.createElement('script')\n script.textContent = children\n\n if (attrs) {\n for (const [key, value] of Object.entries(attrs)) {\n if (value !== undefined && value !== false) {\n script.setAttribute(\n key,\n typeof value === 'boolean' ? '' : String(value),\n )\n }\n }\n }\n\n document.head.appendChild(script)\n }\n })\n }\n\n return () => {\n if (!(isServer ?? router.isServer)) {\n const { src: _src, ...rest } = props.attrs || {}\n return Vue.h('script', {\n ...rest,\n 'data-allow-mismatch': true,\n innerHTML: '',\n })\n }\n\n if (props.attrs?.src && typeof props.attrs.src === 'string') {\n return Vue.h('script', props.attrs)\n }\n\n if (typeof props.children === 'string') {\n return Vue.h('script', {\n ...props.attrs,\n innerHTML: props.children,\n })\n }\n\n return null\n }\n },\n})\n\nexport function Asset({ tag, attrs, children }: RouterManagedTag): any {\n switch (tag) {\n case 'title':\n return Vue.h(Title, { children: children })\n case 'meta':\n return <meta {...attrs} />\n case 'link':\n return <link {...attrs} />\n case 'style':\n return <style {...attrs} innerHTML={children} />\n case 'script':\n return Vue.h(Script, { attrs, children: children })\n default:\n return null\n }\n}\n"],"names":["Title","Vue","defineComponent","name","props","children","type","String","default","setup","router","useRouter","isServer","onMounted","document","title","watch","newTitle","h","Script","attrs","Object","undefined","src","normSrc","base","baseURI","window","location","href","URL","existingScript","Array","from","querySelectorAll","find","el","script","createElement","key","value","entries","setAttribute","head","appendChild","typeAttr","nonceAttr","nonce","HTMLScriptElement","sType","getAttribute","sNonce","textContent","
|
|
1
|
+
{"version":3,"file":"Asset.js","sources":["../../src/Asset.tsx"],"sourcesContent":["import * as Vue from 'vue'\nimport { isServer } from '@tanstack/router-core/isServer'\nimport { useRouter } from './useRouter'\nimport type { RouterManagedTag } from '@tanstack/router-core'\n\ninterface ScriptAttrs {\n [key: string]: string | boolean | undefined\n src?: string\n}\n\nconst Title = Vue.defineComponent({\n name: 'Title',\n props: {\n children: {\n type: String,\n default: '',\n },\n },\n setup(props) {\n const router = useRouter()\n\n if (!(isServer ?? router.isServer)) {\n Vue.onMounted(() => {\n if (props.children) {\n document.title = props.children\n }\n })\n\n Vue.watch(\n () => props.children,\n (newTitle) => {\n if (newTitle) {\n document.title = newTitle\n }\n },\n )\n }\n\n return () => Vue.h('title', {}, props.children)\n },\n})\n\nconst Script = Vue.defineComponent({\n name: 'Script',\n props: {\n attrs: {\n type: Object as Vue.PropType<ScriptAttrs>,\n default: () => ({}),\n },\n children: {\n type: String,\n default: undefined,\n },\n },\n setup(props) {\n const router = useRouter()\n const dataScript =\n typeof props.attrs?.type === 'string' &&\n props.attrs.type !== '' &&\n props.attrs.type !== 'text/javascript' &&\n props.attrs.type !== 'module'\n\n if (!(isServer ?? router.isServer)) {\n Vue.onMounted(() => {\n if (dataScript) return\n\n const attrs = props.attrs\n const children = props.children\n\n if (attrs?.src) {\n const normSrc = (() => {\n try {\n const base = document.baseURI || window.location.href\n return new URL(attrs.src, base).href\n } catch {\n return attrs.src\n }\n })()\n const existingScript = Array.from(\n document.querySelectorAll('script[src]'),\n ).find((el) => (el as HTMLScriptElement).src === normSrc)\n\n if (existingScript) {\n return\n }\n\n const script = document.createElement('script')\n\n for (const [key, value] of Object.entries(attrs)) {\n if (value !== undefined && value !== false) {\n script.setAttribute(\n key,\n typeof value === 'boolean' ? '' : String(value),\n )\n }\n }\n\n document.head.appendChild(script)\n } else if (typeof children === 'string') {\n const typeAttr =\n typeof attrs?.type === 'string' ? attrs.type : 'text/javascript'\n const nonceAttr =\n typeof attrs?.nonce === 'string' ? attrs.nonce : undefined\n const existingScript = Array.from(\n document.querySelectorAll('script:not([src])'),\n ).find((el) => {\n if (!(el instanceof HTMLScriptElement)) return false\n const sType = el.getAttribute('type') ?? 'text/javascript'\n const sNonce = el.getAttribute('nonce') ?? undefined\n return (\n el.textContent === children &&\n sType === typeAttr &&\n sNonce === nonceAttr\n )\n })\n\n if (existingScript) {\n return\n }\n\n const script = document.createElement('script')\n script.textContent = children\n\n if (attrs) {\n for (const [key, value] of Object.entries(attrs)) {\n if (value !== undefined && value !== false) {\n script.setAttribute(\n key,\n typeof value === 'boolean' ? '' : String(value),\n )\n }\n }\n }\n\n document.head.appendChild(script)\n }\n })\n }\n\n return () => {\n if (!(isServer ?? router.isServer)) {\n if (dataScript && typeof props.children === 'string') {\n return Vue.h('script', {\n ...props.attrs,\n 'data-allow-mismatch': true,\n innerHTML: props.children,\n })\n }\n\n const { src: _src, ...rest } = props.attrs || {}\n return Vue.h('script', {\n ...rest,\n 'data-allow-mismatch': true,\n innerHTML: '',\n })\n }\n\n if (props.attrs?.src && typeof props.attrs.src === 'string') {\n return Vue.h('script', props.attrs)\n }\n\n if (typeof props.children === 'string') {\n return Vue.h('script', {\n ...props.attrs,\n innerHTML: props.children,\n })\n }\n\n return null\n }\n },\n})\n\nexport function Asset({ tag, attrs, children }: RouterManagedTag): any {\n switch (tag) {\n case 'title':\n return Vue.h(Title, { children: children })\n case 'meta':\n return <meta {...attrs} />\n case 'link':\n return <link {...attrs} />\n case 'style':\n return <style {...attrs} innerHTML={children} />\n case 'script':\n return Vue.h(Script, { attrs, children: children })\n default:\n return null\n }\n}\n"],"names":["Title","Vue","defineComponent","name","props","children","type","String","default","setup","router","useRouter","isServer","onMounted","document","title","watch","newTitle","h","Script","attrs","Object","undefined","dataScript","src","normSrc","base","baseURI","window","location","href","URL","existingScript","Array","from","querySelectorAll","find","el","script","createElement","key","value","entries","setAttribute","head","appendChild","typeAttr","nonceAttr","nonce","HTMLScriptElement","sType","getAttribute","sNonce","textContent","innerHTML","_src","rest","Asset","tag","_createVNode","_mergeProps"],"mappings":"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"}
|
package/dist/source/Asset.jsx
CHANGED
|
@@ -40,8 +40,14 @@ const Script = Vue.defineComponent({
|
|
|
40
40
|
},
|
|
41
41
|
setup(props) {
|
|
42
42
|
const router = useRouter();
|
|
43
|
+
const dataScript = typeof props.attrs?.type === 'string' &&
|
|
44
|
+
props.attrs.type !== '' &&
|
|
45
|
+
props.attrs.type !== 'text/javascript' &&
|
|
46
|
+
props.attrs.type !== 'module';
|
|
43
47
|
if (!(isServer ?? router.isServer)) {
|
|
44
48
|
Vue.onMounted(() => {
|
|
49
|
+
if (dataScript)
|
|
50
|
+
return;
|
|
45
51
|
const attrs = props.attrs;
|
|
46
52
|
const children = props.children;
|
|
47
53
|
if (attrs?.src) {
|
|
@@ -96,6 +102,13 @@ const Script = Vue.defineComponent({
|
|
|
96
102
|
}
|
|
97
103
|
return () => {
|
|
98
104
|
if (!(isServer ?? router.isServer)) {
|
|
105
|
+
if (dataScript && typeof props.children === 'string') {
|
|
106
|
+
return Vue.h('script', {
|
|
107
|
+
...props.attrs,
|
|
108
|
+
'data-allow-mismatch': true,
|
|
109
|
+
innerHTML: props.children,
|
|
110
|
+
});
|
|
111
|
+
}
|
|
99
112
|
const { src: _src, ...rest } = props.attrs || {};
|
|
100
113
|
return Vue.h('script', {
|
|
101
114
|
...rest,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Asset.jsx","sourceRoot":"","sources":["../../src/Asset.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAA;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAA;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAQvC,MAAM,KAAK,GAAG,GAAG,CAAC,eAAe,CAAC;IAChC,IAAI,EAAE,OAAO;IACb,KAAK,EAAE;QACL,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,EAAE;SACZ;KACF;IACD,KAAK,CAAC,KAAK;QACT,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;QAE1B,IAAI,CAAC,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;gBACjB,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;oBACnB,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAA;gBACjC,CAAC;YACH,CAAC,CAAC,CAAA;YAEF,GAAG,CAAC,KAAK,CACP,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,EACpB,CAAC,QAAQ,EAAE,EAAE;gBACX,IAAI,QAAQ,EAAE,CAAC;oBACb,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAA;gBAC3B,CAAC;YACH,CAAC,CACF,CAAA;QACH,CAAC;QAED,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;IACjD,CAAC;CACF,CAAC,CAAA;AAEF,MAAM,MAAM,GAAG,GAAG,CAAC,eAAe,CAAC;IACjC,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE;QACL,KAAK,EAAE;YACL,IAAI,EAAE,MAAmC;YACzC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;SACpB;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,SAAS;SACnB;KACF;IACD,KAAK,CAAC,KAAK;QACT,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"Asset.jsx","sourceRoot":"","sources":["../../src/Asset.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAA;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAA;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAQvC,MAAM,KAAK,GAAG,GAAG,CAAC,eAAe,CAAC;IAChC,IAAI,EAAE,OAAO;IACb,KAAK,EAAE;QACL,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,EAAE;SACZ;KACF;IACD,KAAK,CAAC,KAAK;QACT,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;QAE1B,IAAI,CAAC,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;gBACjB,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;oBACnB,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAA;gBACjC,CAAC;YACH,CAAC,CAAC,CAAA;YAEF,GAAG,CAAC,KAAK,CACP,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,EACpB,CAAC,QAAQ,EAAE,EAAE;gBACX,IAAI,QAAQ,EAAE,CAAC;oBACb,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAA;gBAC3B,CAAC;YACH,CAAC,CACF,CAAA;QACH,CAAC;QAED,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;IACjD,CAAC;CACF,CAAC,CAAA;AAEF,MAAM,MAAM,GAAG,GAAG,CAAC,eAAe,CAAC;IACjC,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE;QACL,KAAK,EAAE;YACL,IAAI,EAAE,MAAmC;YACzC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;SACpB;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,SAAS;SACnB;KACF;IACD,KAAK,CAAC,KAAK;QACT,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;QAC1B,MAAM,UAAU,GACd,OAAO,KAAK,CAAC,KAAK,EAAE,IAAI,KAAK,QAAQ;YACrC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,EAAE;YACvB,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,iBAAiB;YACtC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAA;QAE/B,IAAI,CAAC,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;gBACjB,IAAI,UAAU;oBAAE,OAAM;gBAEtB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;gBACzB,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAA;gBAE/B,IAAI,KAAK,EAAE,GAAG,EAAE,CAAC;oBACf,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE;wBACpB,IAAI,CAAC;4BACH,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAA;4BACrD,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,IAAI,CAAA;wBACtC,CAAC;wBAAC,MAAM,CAAC;4BACP,OAAO,KAAK,CAAC,GAAG,CAAA;wBAClB,CAAC;oBACH,CAAC,CAAC,EAAE,CAAA;oBACJ,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAC/B,QAAQ,CAAC,gBAAgB,CAAC,aAAa,CAAC,CACzC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAE,EAAwB,CAAC,GAAG,KAAK,OAAO,CAAC,CAAA;oBAEzD,IAAI,cAAc,EAAE,CAAC;wBACnB,OAAM;oBACR,CAAC;oBAED,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;oBAE/C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;wBACjD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;4BAC3C,MAAM,CAAC,YAAY,CACjB,GAAG,EACH,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAChD,CAAA;wBACH,CAAC;oBACH,CAAC;oBAED,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;gBACnC,CAAC;qBAAM,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;oBACxC,MAAM,QAAQ,GACZ,OAAO,KAAK,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAA;oBAClE,MAAM,SAAS,GACb,OAAO,KAAK,EAAE,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;oBAC5D,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAC/B,QAAQ,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAC/C,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;wBACZ,IAAI,CAAC,CAAC,EAAE,YAAY,iBAAiB,CAAC;4BAAE,OAAO,KAAK,CAAA;wBACpD,MAAM,KAAK,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,iBAAiB,CAAA;wBAC1D,MAAM,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,SAAS,CAAA;wBACpD,OAAO,CACL,EAAE,CAAC,WAAW,KAAK,QAAQ;4BAC3B,KAAK,KAAK,QAAQ;4BAClB,MAAM,KAAK,SAAS,CACrB,CAAA;oBACH,CAAC,CAAC,CAAA;oBAEF,IAAI,cAAc,EAAE,CAAC;wBACnB,OAAM;oBACR,CAAC;oBAED,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;oBAC/C,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAA;oBAE7B,IAAI,KAAK,EAAE,CAAC;wBACV,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;4BACjD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;gCAC3C,MAAM,CAAC,YAAY,CACjB,GAAG,EACH,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAChD,CAAA;4BACH,CAAC;wBACH,CAAC;oBACH,CAAC;oBAED,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;gBACnC,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC;QAED,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACnC,IAAI,UAAU,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;oBACrD,OAAO,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE;wBACrB,GAAG,KAAK,CAAC,KAAK;wBACd,qBAAqB,EAAE,IAAI;wBAC3B,SAAS,EAAE,KAAK,CAAC,QAAQ;qBAC1B,CAAC,CAAA;gBACJ,CAAC;gBAED,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE,CAAA;gBAChD,OAAO,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE;oBACrB,GAAG,IAAI;oBACP,qBAAqB,EAAE,IAAI;oBAC3B,SAAS,EAAE,EAAE;iBACd,CAAC,CAAA;YACJ,CAAC;YAED,IAAI,KAAK,CAAC,KAAK,EAAE,GAAG,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAC5D,OAAO,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;YACrC,CAAC;YAED,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBACvC,OAAO,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE;oBACrB,GAAG,KAAK,CAAC,KAAK;oBACd,SAAS,EAAE,KAAK,CAAC,QAAQ;iBAC1B,CAAC,CAAA;YACJ,CAAC;YAED,OAAO,IAAI,CAAA;QACb,CAAC,CAAA;IACH,CAAC;CACF,CAAC,CAAA;AAEF,MAAM,UAAU,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAoB;IAC9D,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,OAAO;YACV,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAA;QAC7C,KAAK,MAAM;YACT,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,EAAG,CAAA;QAC5B,KAAK,MAAM;YACT,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,EAAG,CAAA;QAC5B,KAAK,OAAO;YACV,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,EAAG,CAAA;QAClD,KAAK,QAAQ;YACX,OAAO,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAA;QACrD;YACE,OAAO,IAAI,CAAA;IACf,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
package/src/Asset.tsx
CHANGED
|
@@ -54,9 +54,16 @@ const Script = Vue.defineComponent({
|
|
|
54
54
|
},
|
|
55
55
|
setup(props) {
|
|
56
56
|
const router = useRouter()
|
|
57
|
+
const dataScript =
|
|
58
|
+
typeof props.attrs?.type === 'string' &&
|
|
59
|
+
props.attrs.type !== '' &&
|
|
60
|
+
props.attrs.type !== 'text/javascript' &&
|
|
61
|
+
props.attrs.type !== 'module'
|
|
57
62
|
|
|
58
63
|
if (!(isServer ?? router.isServer)) {
|
|
59
64
|
Vue.onMounted(() => {
|
|
65
|
+
if (dataScript) return
|
|
66
|
+
|
|
60
67
|
const attrs = props.attrs
|
|
61
68
|
const children = props.children
|
|
62
69
|
|
|
@@ -132,6 +139,14 @@ const Script = Vue.defineComponent({
|
|
|
132
139
|
|
|
133
140
|
return () => {
|
|
134
141
|
if (!(isServer ?? router.isServer)) {
|
|
142
|
+
if (dataScript && typeof props.children === 'string') {
|
|
143
|
+
return Vue.h('script', {
|
|
144
|
+
...props.attrs,
|
|
145
|
+
'data-allow-mismatch': true,
|
|
146
|
+
innerHTML: props.children,
|
|
147
|
+
})
|
|
148
|
+
}
|
|
149
|
+
|
|
135
150
|
const { src: _src, ...rest } = props.attrs || {}
|
|
136
151
|
return Vue.h('script', {
|
|
137
152
|
...rest,
|