@srcroot/ui 0.0.55 → 0.0.58
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/README.md +151 -151
- package/dist/index.d.ts +0 -0
- package/dist/index.js +120 -93
- package/package.json +7 -2
- package/src/registry/analytics/google-analytics.tsx +36 -39
- package/src/registry/analytics/google-tag-manager.tsx +62 -65
- package/src/registry/analytics/meta-pixel.tsx +44 -47
- package/src/registry/analytics/microsoft-clarity.tsx +31 -34
- package/src/registry/analytics/tiktok-pixel.tsx +34 -37
- package/src/registry/lib/utils.ts +0 -0
- package/src/registry/themes/v3/blue.css +157 -157
- package/src/registry/themes/v3/glass.css +153 -153
- package/src/registry/themes/v3/gray.css +157 -157
- package/src/registry/themes/v3/green.css +157 -157
- package/src/registry/themes/v3/neutral.css +157 -157
- package/src/registry/themes/v3/orange.css +157 -157
- package/src/registry/themes/v3/rose.css +157 -157
- package/src/registry/themes/v3/slate.css +157 -157
- package/src/registry/themes/v3/stone.css +157 -157
- package/src/registry/themes/v3/violet.css +186 -186
- package/src/registry/themes/v3/zinc.css +157 -157
- package/src/registry/themes/v4/blue.css +184 -184
- package/src/registry/themes/v4/glass.css +180 -180
- package/src/registry/themes/v4/gray.css +184 -184
- package/src/registry/themes/v4/green.css +184 -184
- package/src/registry/themes/v4/neutral.css +184 -184
- package/src/registry/themes/v4/orange.css +184 -184
- package/src/registry/themes/v4/rose.css +184 -184
- package/src/registry/themes/v4/slate.css +184 -184
- package/src/registry/themes/v4/stone.css +184 -184
- package/src/registry/themes/v4/violet.css +184 -184
- package/src/registry/themes/v4/zinc.css +184 -184
- package/src/registry/ui/accordion.tsx +164 -165
- package/src/registry/ui/alert-dialog.tsx +213 -214
- package/src/registry/ui/alert.tsx +73 -76
- package/src/registry/ui/aspect-ratio.tsx +44 -47
- package/src/registry/ui/avatar.tsx +96 -97
- package/src/registry/ui/badge.tsx +52 -55
- package/src/registry/ui/breadcrumb.tsx +147 -150
- package/src/registry/ui/button-group.tsx +64 -67
- package/src/registry/ui/button.tsx +71 -72
- package/src/registry/ui/calendar.tsx +514 -515
- package/src/registry/ui/card.tsx +88 -91
- package/src/registry/ui/carousel.tsx +214 -214
- package/src/registry/ui/chart.tsx +373 -373
- package/src/registry/ui/chatbot.tsx +86 -13
- package/src/registry/ui/checkbox.tsx +93 -94
- package/src/registry/ui/collapsible.tsx +107 -108
- package/src/registry/ui/combobox.tsx +171 -171
- package/src/registry/ui/command.tsx +300 -300
- package/src/registry/ui/container.tsx +44 -47
- package/src/registry/ui/context-menu.tsx +221 -221
- package/src/registry/ui/date-picker.tsx +228 -228
- package/src/registry/ui/dialog.tsx +269 -270
- package/src/registry/ui/drawer.tsx +10 -4
- package/src/registry/ui/dropdown-menu.tsx +529 -530
- package/src/registry/ui/empty-state.tsx +0 -2
- package/src/registry/ui/file-upload.tsx +0 -0
- package/src/registry/ui/floating-dock.tsx +0 -0
- package/src/registry/ui/form-field.tsx +91 -94
- package/src/registry/ui/google-analytics.tsx +38 -0
- package/src/registry/ui/google-tag-manager.tsx +64 -0
- package/src/registry/ui/hover-card.tsx +223 -223
- package/src/registry/ui/image.tsx +144 -147
- package/src/registry/ui/input-group.tsx +82 -85
- package/src/registry/ui/input.tsx +125 -125
- package/src/registry/ui/kbd.tsx +60 -63
- package/src/registry/ui/label.tsx +36 -37
- package/src/registry/ui/loading-spinner.tsx +108 -111
- package/src/registry/ui/map.tsx +0 -0
- package/src/registry/ui/marquee.tsx +2 -0
- package/src/registry/ui/menubar.tsx +246 -246
- package/src/registry/ui/meta-pixel.tsx +46 -0
- package/src/registry/ui/microsoft-clarity.tsx +33 -0
- package/src/registry/ui/native-select.tsx +49 -52
- package/src/registry/ui/otp-input.tsx +163 -155
- package/src/registry/ui/pagination.tsx +149 -152
- package/src/registry/ui/patterns.tsx +28 -0
- package/src/registry/ui/popover.tsx +226 -227
- package/src/registry/ui/progress.tsx +51 -52
- package/src/registry/ui/radio.tsx +99 -102
- package/src/registry/ui/resizable.tsx +314 -314
- package/src/registry/ui/scroll-animation.tsx +45 -0
- package/src/registry/ui/scroll-area.tsx +121 -122
- package/src/registry/ui/scroll-to-top.tsx +0 -0
- package/src/registry/ui/search.tsx +162 -150
- package/src/registry/ui/select.tsx +292 -293
- package/src/registry/ui/separator.tsx +46 -47
- package/src/registry/ui/sheet.tsx +6 -3
- package/src/registry/ui/sidebar.tsx +628 -628
- package/src/registry/ui/skeleton.tsx +26 -29
- package/src/registry/ui/slider.tsx +196 -197
- package/src/registry/ui/slot.tsx +69 -72
- package/src/registry/ui/star-rating.tsx +146 -134
- package/src/registry/ui/switch.tsx +72 -73
- package/src/registry/ui/table-of-contents.tsx +96 -96
- package/src/registry/ui/table.tsx +138 -139
- package/src/registry/ui/tabs.tsx +124 -125
- package/src/registry/ui/text.tsx +61 -64
- package/src/registry/ui/textarea.tsx +41 -42
- package/src/registry/ui/theme-switcher.tsx +66 -66
- package/src/registry/ui/tiktok-pixel.tsx +36 -0
- package/src/registry/ui/toast.tsx +97 -98
- package/src/registry/ui/toggle-group.tsx +129 -129
- package/src/registry/ui/toggle.tsx +72 -72
- package/src/registry/ui/tooltip.tsx +143 -144
- package/src/registry/ui/whatsapp.tsx +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@srcroot/ui",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.58",
|
|
4
4
|
"description": "A UI library with polymorphic, accessible React components",
|
|
5
5
|
"author": "Shifaul Islam",
|
|
6
6
|
"license": "MIT",
|
|
@@ -34,15 +34,18 @@
|
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@types/fs-extra": "^11.0.4",
|
|
37
|
+
"@types/leaflet": "^1.9.21",
|
|
37
38
|
"@types/node": "^22.10.1",
|
|
38
39
|
"@types/prompts": "^2.4.9",
|
|
39
40
|
"@types/react": "^19.2.7",
|
|
40
41
|
"class-variance-authority": "^0.7.1",
|
|
41
42
|
"clsx": "^2.1.1",
|
|
42
43
|
"cmdk": "^1.0.0",
|
|
44
|
+
"leaflet": "^1.9.4",
|
|
43
45
|
"react": "^18.0.0 || ^19.0.0",
|
|
44
46
|
"react-dom": "^18.0.0 || ^19.0.0",
|
|
45
47
|
"react-icons": "^5.5.0",
|
|
48
|
+
"react-leaflet": "^5.0.0",
|
|
46
49
|
"tailwind-merge": "^3.4.0",
|
|
47
50
|
"tailwindcss": "^3.0.0 || ^4.0.0",
|
|
48
51
|
"tailwindcss-animate": "^1.0.7",
|
|
@@ -54,9 +57,11 @@
|
|
|
54
57
|
"class-variance-authority": "^0.7.1",
|
|
55
58
|
"clsx": "^2.1.1",
|
|
56
59
|
"cmdk": "^1.0.0",
|
|
60
|
+
"leaflet": "^1.9.4",
|
|
57
61
|
"react": "^18.0.0 || ^19.0.0",
|
|
58
62
|
"react-dom": "^18.0.0 || ^19.0.0",
|
|
59
63
|
"react-icons": "^5.5.0",
|
|
64
|
+
"react-leaflet": "^4.2.1",
|
|
60
65
|
"tailwind-merge": "^3.4.0",
|
|
61
66
|
"tailwindcss": "^3.0.0 || ^4.0.0",
|
|
62
67
|
"tailwindcss-animate": "^1.0.7"
|
|
@@ -66,4 +71,4 @@
|
|
|
66
71
|
"optional": true
|
|
67
72
|
}
|
|
68
73
|
}
|
|
69
|
-
}
|
|
74
|
+
}
|
|
@@ -1,39 +1,36 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
id
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
export default GoogleAnalytics;
|
|
39
|
-
|
|
1
|
+
import Script from 'next/script';
|
|
2
|
+
import type { FC } from 'react';
|
|
3
|
+
|
|
4
|
+
interface GoogleAnalyticsProps {
|
|
5
|
+
gaIds: string[];
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
const GoogleAnalytics: FC<GoogleAnalyticsProps> = ({ gaIds }) => {
|
|
9
|
+
if (gaIds.length === 0) {
|
|
10
|
+
return null;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
return (
|
|
14
|
+
<>
|
|
15
|
+
<Script
|
|
16
|
+
id="ga4-script"
|
|
17
|
+
strategy="afterInteractive"
|
|
18
|
+
src={`https://www.googletagmanager.com/gtag/js?id=${gaIds[0]}`}
|
|
19
|
+
/>
|
|
20
|
+
<Script
|
|
21
|
+
id="ga4-init"
|
|
22
|
+
strategy="afterInteractive"
|
|
23
|
+
dangerouslySetInnerHTML={{
|
|
24
|
+
__html: `
|
|
25
|
+
window.dataLayer = window.dataLayer || [];
|
|
26
|
+
function gtag(){dataLayer.push(arguments);}
|
|
27
|
+
gtag('js', new Date());
|
|
28
|
+
${gaIds.map((id) => `gtag('config', '${id}', { page_path: window.location.pathname });`).join('\n')}
|
|
29
|
+
`,
|
|
30
|
+
}}
|
|
31
|
+
/>
|
|
32
|
+
</>
|
|
33
|
+
);
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
export default GoogleAnalytics;
|
|
@@ -1,65 +1,62 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
export default GoogleTagManager;
|
|
65
|
-
|
|
1
|
+
import Script from 'next/script';
|
|
2
|
+
import type { FC, ReactNode } from 'react';
|
|
3
|
+
|
|
4
|
+
interface GTMContainer {
|
|
5
|
+
gtmId: string;
|
|
6
|
+
tagServerUrl?: string;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
interface GoogleTagManagerProps {
|
|
10
|
+
containers: GTMContainer[];
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const GoogleTagManager: FC<GoogleTagManagerProps> = ({ containers }) => {
|
|
14
|
+
const defaultServer = 'https://www.googletagmanager.com';
|
|
15
|
+
|
|
16
|
+
// Group containers by tagServer to avoid duplicate script loads
|
|
17
|
+
const scriptsMap = containers.reduce((map, container) => {
|
|
18
|
+
const server = container.tagServerUrl || defaultServer;
|
|
19
|
+
if (!map.has(server)) {
|
|
20
|
+
map.set(server, []);
|
|
21
|
+
}
|
|
22
|
+
map.get(server)!.push(container.gtmId);
|
|
23
|
+
return map;
|
|
24
|
+
}, new Map<string, string[]>());
|
|
25
|
+
|
|
26
|
+
const scriptElements: ReactNode[] = Array.from(scriptsMap.entries()).map(([server, ids]) => (
|
|
27
|
+
<Script
|
|
28
|
+
key={server}
|
|
29
|
+
id={`gtm-script-${server}`}
|
|
30
|
+
strategy="afterInteractive"
|
|
31
|
+
dangerouslySetInnerHTML={{
|
|
32
|
+
__html: `
|
|
33
|
+
${ids
|
|
34
|
+
.map(
|
|
35
|
+
id => `(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s);j.async=true;j.src="${server}/gtm.js?"+i;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','${id}');`
|
|
36
|
+
)
|
|
37
|
+
.join('')}
|
|
38
|
+
`,
|
|
39
|
+
}}
|
|
40
|
+
/>
|
|
41
|
+
));
|
|
42
|
+
|
|
43
|
+
return (
|
|
44
|
+
<>
|
|
45
|
+
{scriptElements}
|
|
46
|
+
|
|
47
|
+
<noscript>
|
|
48
|
+
{containers.map(({ gtmId, tagServerUrl = defaultServer }) => (
|
|
49
|
+
<iframe
|
|
50
|
+
key={gtmId}
|
|
51
|
+
src={`${tagServerUrl}/ns.html?id=${gtmId}`}
|
|
52
|
+
height="0"
|
|
53
|
+
width="0"
|
|
54
|
+
style={{ display: 'none', visibility: 'hidden' }}
|
|
55
|
+
/>
|
|
56
|
+
))}
|
|
57
|
+
</noscript>
|
|
58
|
+
</>
|
|
59
|
+
);
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
export default GoogleTagManager;
|
|
@@ -1,47 +1,44 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
n.
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
'
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
export default MetaPixel;
|
|
47
|
-
|
|
1
|
+
import Script from 'next/script';
|
|
2
|
+
import type { FC } from 'react';
|
|
3
|
+
|
|
4
|
+
interface MetaPixelProps {
|
|
5
|
+
pixelIds: string[]; // ← array now
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
const MetaPixel: FC<MetaPixelProps> = ({ pixelIds }) => {
|
|
9
|
+
return (
|
|
10
|
+
<>
|
|
11
|
+
<Script
|
|
12
|
+
id="fb-script-multi"
|
|
13
|
+
strategy="afterInteractive"
|
|
14
|
+
dangerouslySetInnerHTML={{
|
|
15
|
+
__html: `
|
|
16
|
+
!function(f,b,e,v,n,t,s)
|
|
17
|
+
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
|
|
18
|
+
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
|
|
19
|
+
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
|
|
20
|
+
n.queue=[];t=b.createElement(e);t.async=!0;
|
|
21
|
+
t.src=v;s=b.getElementsByTagName(e)[0];
|
|
22
|
+
s.parentNode.insertBefore(t,s)}(window, document,'script',
|
|
23
|
+
'https://connect.facebook.net/en_US/fbevents.js');
|
|
24
|
+
${pixelIds.map(id => `fbq('init', '${id}');`).join('\n')}
|
|
25
|
+
fbq('track', 'PageView');
|
|
26
|
+
`,
|
|
27
|
+
}}
|
|
28
|
+
/>
|
|
29
|
+
|
|
30
|
+
{/* One noscript tag per pixel */}
|
|
31
|
+
{pixelIds.map(id => (
|
|
32
|
+
<noscript key={id}>
|
|
33
|
+
<img
|
|
34
|
+
height="1" width="1" style={{ display: 'none' }}
|
|
35
|
+
src={`https://www.facebook.com/tr?id=${id}&ev=PageView&noscript=1`}
|
|
36
|
+
alt=""
|
|
37
|
+
/>
|
|
38
|
+
</noscript>
|
|
39
|
+
))}
|
|
40
|
+
</>
|
|
41
|
+
);
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
export default MetaPixel;
|
|
@@ -1,34 +1,31 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
export default MicrosoftClarity;
|
|
34
|
-
|
|
1
|
+
import Script from 'next/script';
|
|
2
|
+
import type { FC } from 'react';
|
|
3
|
+
|
|
4
|
+
interface MicrosoftClarityProps {
|
|
5
|
+
clarityIds: string[];
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
const MicrosoftClarity: FC<MicrosoftClarityProps> = ({ clarityIds }) => {
|
|
9
|
+
return (
|
|
10
|
+
<>
|
|
11
|
+
{clarityIds.map((id) => (
|
|
12
|
+
<Script
|
|
13
|
+
key={id}
|
|
14
|
+
id={`microsoft-clarity-init-${id}`}
|
|
15
|
+
strategy="afterInteractive"
|
|
16
|
+
dangerouslySetInnerHTML={{
|
|
17
|
+
__html: `
|
|
18
|
+
(function(c,l,a,r,i,t,y){
|
|
19
|
+
c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
|
|
20
|
+
t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;
|
|
21
|
+
y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
|
|
22
|
+
})(window, document, "clarity", "script", "${id}");
|
|
23
|
+
`,
|
|
24
|
+
}}
|
|
25
|
+
/>
|
|
26
|
+
))}
|
|
27
|
+
</>
|
|
28
|
+
);
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
export default MicrosoftClarity;
|
|
@@ -1,37 +1,34 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
ttq.methods
|
|
20
|
-
ttq.
|
|
21
|
-
|
|
22
|
-
ttq.
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
export default TikTokPixel;
|
|
37
|
-
|
|
1
|
+
import Script from 'next/script';
|
|
2
|
+
import type { FC } from 'react';
|
|
3
|
+
|
|
4
|
+
interface TikTokPixelProps {
|
|
5
|
+
pixelIds: string[]; // ← array
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
const TikTokPixel: FC<TikTokPixelProps> = ({ pixelIds }) => {
|
|
9
|
+
return (
|
|
10
|
+
<Script
|
|
11
|
+
id="tiktok-script-multi"
|
|
12
|
+
strategy="afterInteractive"
|
|
13
|
+
dangerouslySetInnerHTML={{
|
|
14
|
+
__html: `
|
|
15
|
+
!function (w, d, t) {
|
|
16
|
+
w.TiktokAnalyticsObject=t;var ttq=w[t]=w[t]||[];
|
|
17
|
+
ttq.methods=["page","track","identify","instances","debug","on","off","once","ready","alias","group","enableCookie","disableCookie","holdConsent","revokeConsent","grantConsent"],
|
|
18
|
+
ttq.setAndDefer=function(t,e){t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}};
|
|
19
|
+
for(var i=0;i<ttq.methods.length;i++)ttq.setAndDefer(ttq,ttq.methods[i]);
|
|
20
|
+
ttq.instance=function(t){for(var e=ttq._i[t]||[],n=0;n<ttq.methods.length;n++)ttq.setAndDefer(e,ttq.methods[n]);return e},
|
|
21
|
+
ttq.load=function(e,n){var r="https://analytics.tiktok.com/i18n/pixel/events.js";
|
|
22
|
+
ttq._i=ttq._i||{},ttq._i[e]=[],ttq._i[e]._u=r,ttq._t=ttq._t||{},ttq._t[e]=+new Date,ttq._o=ttq._o||{},ttq._o[e]=n||{};
|
|
23
|
+
var s=document.createElement("script");s.type="text/javascript",s.async=!0,s.src=r+"?sdkid="+e+"&lib="+t;
|
|
24
|
+
var p=document.getElementsByTagName("script")[0];p.parentNode.insertBefore(s,p)};
|
|
25
|
+
${pixelIds.map(id => `ttq.load('${id}');`).join('\n')}
|
|
26
|
+
ttq.page();
|
|
27
|
+
}(window, document, 'ttq');
|
|
28
|
+
`,
|
|
29
|
+
}}
|
|
30
|
+
/>
|
|
31
|
+
);
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
export default TikTokPixel;
|
|
File without changes
|