taon-ui 21.0.61 → 21.0.63
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/VERIFIED-BUILD-DATA.jsonc +5 -5
- package/bin/start.js +1 -1
- package/browser/fesm2022/{taon-ui-browser-taon-kv-authorization.component.html.de-DE.i18n.data-B4ZzYnfR.mjs → taon-ui-browser-taon-kv-authorization.component.html.de-DE.i18n.data-Cd9FbUj8.mjs} +3 -3
- package/browser/fesm2022/taon-ui-browser-taon-kv-authorization.component.html.de-DE.i18n.data-Cd9FbUj8.mjs.map +1 -0
- package/browser/fesm2022/{taon-ui-browser-taon-kv-authorization.component.html.en-US.i18n.data-C8oLV101.mjs → taon-ui-browser-taon-kv-authorization.component.html.en-US.i18n.data-L4Myx3Qy.mjs} +2 -2
- package/browser/fesm2022/taon-ui-browser-taon-kv-authorization.component.html.en-US.i18n.data-L4Myx3Qy.mjs.map +1 -0
- package/browser/fesm2022/{taon-ui-browser-taon-kv-authorization.component.html.pl-PL.i18n.data-DIy8LL8b.mjs → taon-ui-browser-taon-kv-authorization.component.html.pl-PL.i18n.data-D2z4X4t3.mjs} +3 -3
- package/browser/fesm2022/taon-ui-browser-taon-kv-authorization.component.html.pl-PL.i18n.data-D2z4X4t3.mjs.map +1 -0
- package/browser/fesm2022/taon-ui-browser.mjs +179 -120
- package/browser/fesm2022/taon-ui-browser.mjs.map +1 -1
- package/browser/package.json +1 -1
- package/browser/types/taon-ui-browser.d.ts +29 -20
- package/browser-prod/fesm2022/{taon-ui-browser-prod-taon-kv-authorization.component.html.de-DE.i18n.data-B4ZzYnfR.mjs → taon-ui-browser-prod-taon-kv-authorization.component.html.de-DE.i18n.data-Cd9FbUj8.mjs} +3 -3
- package/browser-prod/fesm2022/taon-ui-browser-prod-taon-kv-authorization.component.html.de-DE.i18n.data-Cd9FbUj8.mjs.map +1 -0
- package/browser-prod/fesm2022/{taon-ui-browser-prod-taon-kv-authorization.component.html.en-US.i18n.data-C8oLV101.mjs → taon-ui-browser-prod-taon-kv-authorization.component.html.en-US.i18n.data-L4Myx3Qy.mjs} +2 -2
- package/browser-prod/fesm2022/taon-ui-browser-prod-taon-kv-authorization.component.html.en-US.i18n.data-L4Myx3Qy.mjs.map +1 -0
- package/browser-prod/fesm2022/{taon-ui-browser-prod-taon-kv-authorization.component.html.pl-PL.i18n.data-DIy8LL8b.mjs → taon-ui-browser-prod-taon-kv-authorization.component.html.pl-PL.i18n.data-D2z4X4t3.mjs} +3 -3
- package/browser-prod/fesm2022/taon-ui-browser-prod-taon-kv-authorization.component.html.pl-PL.i18n.data-D2z4X4t3.mjs.map +1 -0
- package/browser-prod/fesm2022/taon-ui-browser-prod.mjs +156 -98
- package/browser-prod/fesm2022/taon-ui-browser-prod.mjs.map +1 -1
- package/browser-prod/package.json +1 -1
- package/browser-prod/types/taon-ui-browser-prod.d.ts +30 -21
- package/browser-prod.split-namespaces.json +3 -1
- package/html/lib/ui/taon-kv-authorization/taon-kv-authorization.component.html +1 -1
- package/html/lib/ui/taon-stripe-buy-button/taon-stripe-buy-button.component.html +1 -2
- package/html/lib/ui/taon-youtube-video/taon-youtube-video.component.html +44 -46
- package/lib/build-info._auto-generated_.d.ts +1 -1
- package/lib/build-info._auto-generated_.js +1 -1
- package/lib/index._auto-generated_.d.ts +1 -0
- package/lib/index._auto-generated_.js +1 -0
- package/lib/index._auto-generated_.js.map +1 -1
- package/lib/layouts/taon-bootstrap-navbar/index.js +2 -2
- package/lib/package.json +1 -1
- package/lib/ui/anonymize-text/index.js +2 -2
- package/lib/ui/directives/index.js +2 -2
- package/lib/ui/index.js +2 -2
- package/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.d.ts +3 -3
- package/lib/ui/taon-github-fork-me-corner/index.js +2 -2
- package/lib/ui/taon-github-fork-me-ribbon/index.js +2 -2
- package/lib/ui/taon-iframe-sync/index.js +2 -2
- package/lib/ui/taon-kv-authorization/i18n/taon-kv-authorization.component.html.de-DE.i18n.data.d.ts +1 -1
- package/lib/ui/taon-kv-authorization/i18n/taon-kv-authorization.component.html.de-DE.i18n.data.js +2 -2
- package/lib/ui/taon-kv-authorization/i18n/taon-kv-authorization.component.html.de-DE.i18n.data.js.map +1 -1
- package/lib/ui/taon-kv-authorization/i18n/taon-kv-authorization.component.html.en-US.i18n.data.d.ts +1 -1
- package/lib/ui/taon-kv-authorization/i18n/taon-kv-authorization.component.html.en-US.i18n.data.js +1 -1
- package/lib/ui/taon-kv-authorization/i18n/taon-kv-authorization.component.html.en-US.i18n.data.js.map +1 -1
- package/lib/ui/taon-kv-authorization/i18n/taon-kv-authorization.component.html.pl-PL.i18n.data.d.ts +1 -1
- package/lib/ui/taon-kv-authorization/i18n/taon-kv-authorization.component.html.pl-PL.i18n.data.js +2 -2
- package/lib/ui/taon-kv-authorization/i18n/taon-kv-authorization.component.html.pl-PL.i18n.data.js.map +1 -1
- package/lib/ui/taon-lang-selector/index.js +2 -2
- package/lib/ui/taon-lang-selector/taon-lang-selector.component.d.ts +1 -1
- package/lib/ui/taon-progress-bar/index.js +2 -2
- package/lib/ui/taon-progress-bar/taon-progress-bar.component.d.ts +1 -2
- package/lib/ui/taon-session-passcode/index.js +2 -2
- package/lib/ui/taon-settings/index.js +2 -2
- package/lib/ui/taon-table/index.js +2 -2
- package/lib/ui/taon-youtube-video/taon-youtube-video.component.d.ts +25 -18
- package/lib/ui/taon-youtube-video/taon-youtube.models.d.ts +1 -0
- package/lib/ui/taon-youtube-video/taon-youtube.models.js +3 -0
- package/lib/ui/taon-youtube-video/taon-youtube.models.js.map +1 -0
- package/lib/ui/taon-youtube-video/taon-youtube.utils.d.ts +1 -0
- package/lib/ui/taon-youtube-video/taon-youtube.utils.js +23 -0
- package/lib/ui/taon-youtube-video/taon-youtube.utils.js.map +1 -1
- package/lib-esm/app/translation-app/translation-app.active.context.d.ts +1 -0
- package/lib-esm/app.electron.d.ts +1 -1
- package/lib-esm/app.electron.js +1 -1
- package/lib-esm/app.hosts.d.ts +4 -4
- package/lib-esm/app.hosts.js +18 -5
- package/lib-esm/app.hosts.js.map +1 -1
- package/lib-esm/lib/build-info._auto-generated_.d.ts +1 -1
- package/lib-esm/lib/build-info._auto-generated_.js +1 -1
- package/lib-esm/lib/index._auto-generated_.d.ts +1 -0
- package/lib-esm/lib/index._auto-generated_.js +1 -0
- package/lib-esm/lib/index._auto-generated_.js.map +1 -1
- package/lib-esm/lib/layouts/taon-bootstrap-navbar/index.d.ts +1 -1
- package/lib-esm/lib/layouts/taon-bootstrap-navbar/index.js +1 -1
- package/lib-esm/lib/ui/anonymize-text/index.d.ts +1 -1
- package/lib-esm/lib/ui/anonymize-text/index.js +1 -1
- package/lib-esm/lib/ui/directives/index.d.ts +1 -1
- package/lib-esm/lib/ui/directives/index.js +1 -1
- package/lib-esm/lib/ui/index.d.ts +1 -1
- package/lib-esm/lib/ui/index.js +1 -1
- package/lib-esm/lib/ui/taon-github-fork-me-corner/index.d.ts +1 -1
- package/lib-esm/lib/ui/taon-github-fork-me-corner/index.js +1 -1
- package/lib-esm/lib/ui/taon-github-fork-me-ribbon/index.d.ts +1 -1
- package/lib-esm/lib/ui/taon-github-fork-me-ribbon/index.js +1 -1
- package/lib-esm/lib/ui/taon-iframe-sync/index.d.ts +1 -1
- package/lib-esm/lib/ui/taon-iframe-sync/index.js +1 -1
- package/lib-esm/lib/ui/taon-kv-authorization/i18n/taon-kv-authorization.component.html.de-DE.i18n.data.d.ts +1 -1
- package/lib-esm/lib/ui/taon-kv-authorization/i18n/taon-kv-authorization.component.html.de-DE.i18n.data.js +2 -2
- package/lib-esm/lib/ui/taon-kv-authorization/i18n/taon-kv-authorization.component.html.de-DE.i18n.data.js.map +1 -1
- package/lib-esm/lib/ui/taon-kv-authorization/i18n/taon-kv-authorization.component.html.en-US.i18n.data.d.ts +1 -1
- package/lib-esm/lib/ui/taon-kv-authorization/i18n/taon-kv-authorization.component.html.en-US.i18n.data.js +1 -1
- package/lib-esm/lib/ui/taon-kv-authorization/i18n/taon-kv-authorization.component.html.en-US.i18n.data.js.map +1 -1
- package/lib-esm/lib/ui/taon-kv-authorization/i18n/taon-kv-authorization.component.html.pl-PL.i18n.data.d.ts +1 -1
- package/lib-esm/lib/ui/taon-kv-authorization/i18n/taon-kv-authorization.component.html.pl-PL.i18n.data.js +2 -2
- package/lib-esm/lib/ui/taon-kv-authorization/i18n/taon-kv-authorization.component.html.pl-PL.i18n.data.js.map +1 -1
- package/lib-esm/lib/ui/taon-lang-selector/index.d.ts +1 -1
- package/lib-esm/lib/ui/taon-lang-selector/index.js +1 -1
- package/lib-esm/lib/ui/taon-progress-bar/index.d.ts +1 -1
- package/lib-esm/lib/ui/taon-progress-bar/index.js +1 -1
- package/lib-esm/lib/ui/taon-session-passcode/index.d.ts +1 -1
- package/lib-esm/lib/ui/taon-session-passcode/index.js +1 -1
- package/lib-esm/lib/ui/taon-settings/index.d.ts +1 -1
- package/lib-esm/lib/ui/taon-settings/index.js +1 -1
- package/lib-esm/lib/ui/taon-table/index.d.ts +1 -1
- package/lib-esm/lib/ui/taon-table/index.js +1 -1
- package/lib-esm/lib/ui/taon-youtube-video/taon-youtube.models.d.ts +1 -0
- package/lib-esm/lib/ui/taon-youtube-video/taon-youtube.models.js +2 -0
- package/lib-esm/lib/ui/taon-youtube-video/taon-youtube.models.js.map +1 -0
- package/lib-esm/lib/ui/taon-youtube-video/taon-youtube.utils.d.ts +1 -0
- package/lib-esm/lib/ui/taon-youtube-video/taon-youtube.utils.js +23 -0
- package/lib-esm/lib/ui/taon-youtube-video/taon-youtube.utils.js.map +1 -1
- package/lib-prod/build-info._auto-generated_.d.ts +1 -1
- package/lib-prod/build-info._auto-generated_.js +1 -1
- package/lib-prod/index._auto-generated_.d.ts +1 -0
- package/lib-prod/index._auto-generated_.js +1 -0
- package/lib-prod/index._auto-generated_.js.map +1 -1
- package/lib-prod/layouts/taon-bootstrap-navbar/index.d.ts +1 -1
- package/lib-prod/layouts/taon-bootstrap-navbar/index.js +1 -1
- package/lib-prod/package.json +1 -1
- package/lib-prod/ui/anonymize-text/index.d.ts +1 -1
- package/lib-prod/ui/anonymize-text/index.js +1 -1
- package/lib-prod/ui/directives/index.d.ts +1 -1
- package/lib-prod/ui/directives/index.js +1 -1
- package/lib-prod/ui/index.d.ts +1 -1
- package/lib-prod/ui/index.js +1 -1
- package/lib-prod/ui/taon-github-fork-me-corner/index.d.ts +1 -1
- package/lib-prod/ui/taon-github-fork-me-corner/index.js +1 -1
- package/lib-prod/ui/taon-github-fork-me-ribbon/index.d.ts +1 -1
- package/lib-prod/ui/taon-github-fork-me-ribbon/index.js +1 -1
- package/lib-prod/ui/taon-iframe-sync/index.d.ts +1 -1
- package/lib-prod/ui/taon-iframe-sync/index.js +1 -1
- package/lib-prod/ui/taon-kv-authorization/i18n/taon-kv-authorization.component.html.de-DE.i18n.data.d.ts +1 -1
- package/lib-prod/ui/taon-kv-authorization/i18n/taon-kv-authorization.component.html.de-DE.i18n.data.js +2 -2
- package/lib-prod/ui/taon-kv-authorization/i18n/taon-kv-authorization.component.html.de-DE.i18n.data.js.map +1 -1
- package/lib-prod/ui/taon-kv-authorization/i18n/taon-kv-authorization.component.html.en-US.i18n.data.d.ts +1 -1
- package/lib-prod/ui/taon-kv-authorization/i18n/taon-kv-authorization.component.html.en-US.i18n.data.js +1 -1
- package/lib-prod/ui/taon-kv-authorization/i18n/taon-kv-authorization.component.html.en-US.i18n.data.js.map +1 -1
- package/lib-prod/ui/taon-kv-authorization/i18n/taon-kv-authorization.component.html.pl-PL.i18n.data.d.ts +1 -1
- package/lib-prod/ui/taon-kv-authorization/i18n/taon-kv-authorization.component.html.pl-PL.i18n.data.js +2 -2
- package/lib-prod/ui/taon-kv-authorization/i18n/taon-kv-authorization.component.html.pl-PL.i18n.data.js.map +1 -1
- package/lib-prod/ui/taon-lang-selector/index.d.ts +1 -1
- package/lib-prod/ui/taon-lang-selector/index.js +1 -1
- package/lib-prod/ui/taon-progress-bar/index.d.ts +1 -1
- package/lib-prod/ui/taon-progress-bar/index.js +1 -1
- package/lib-prod/ui/taon-session-passcode/index.d.ts +1 -1
- package/lib-prod/ui/taon-session-passcode/index.js +1 -1
- package/lib-prod/ui/taon-settings/index.d.ts +1 -1
- package/lib-prod/ui/taon-settings/index.js +1 -1
- package/lib-prod/ui/taon-table/index.d.ts +1 -1
- package/lib-prod/ui/taon-table/index.js +1 -1
- package/lib-prod/ui/taon-youtube-video/taon-youtube.models.d.ts +1 -0
- package/lib-prod/ui/taon-youtube-video/taon-youtube.models.js +2 -0
- package/lib-prod/ui/taon-youtube-video/taon-youtube.models.js.map +1 -0
- package/lib-prod/ui/taon-youtube-video/taon-youtube.utils.d.ts +1 -0
- package/lib-prod/ui/taon-youtube-video/taon-youtube.utils.js +22 -0
- package/lib-prod/ui/taon-youtube-video/taon-youtube.utils.js.map +1 -1
- package/lib-prod.split-namespaces.json +3 -1
- package/package.json +1 -1
- package/scss/lib/ui/taon-youtube-video/taon-youtube-video.component.scss +50 -48
- package/websql/fesm2022/{taon-ui-websql-taon-kv-authorization.component.html.de-DE.i18n.data-B4ZzYnfR.mjs → taon-ui-websql-taon-kv-authorization.component.html.de-DE.i18n.data-Cd9FbUj8.mjs} +3 -3
- package/websql/fesm2022/taon-ui-websql-taon-kv-authorization.component.html.de-DE.i18n.data-Cd9FbUj8.mjs.map +1 -0
- package/websql/fesm2022/{taon-ui-websql-taon-kv-authorization.component.html.en-US.i18n.data-C8oLV101.mjs → taon-ui-websql-taon-kv-authorization.component.html.en-US.i18n.data-L4Myx3Qy.mjs} +2 -2
- package/websql/fesm2022/taon-ui-websql-taon-kv-authorization.component.html.en-US.i18n.data-L4Myx3Qy.mjs.map +1 -0
- package/websql/fesm2022/{taon-ui-websql-taon-kv-authorization.component.html.pl-PL.i18n.data-DIy8LL8b.mjs → taon-ui-websql-taon-kv-authorization.component.html.pl-PL.i18n.data-D2z4X4t3.mjs} +3 -3
- package/websql/fesm2022/taon-ui-websql-taon-kv-authorization.component.html.pl-PL.i18n.data-D2z4X4t3.mjs.map +1 -0
- package/websql/fesm2022/taon-ui-websql.mjs +179 -120
- package/websql/fesm2022/taon-ui-websql.mjs.map +1 -1
- package/websql/package.json +1 -1
- package/websql/types/taon-ui-websql.d.ts +29 -20
- package/websql-prod/fesm2022/{taon-ui-websql-prod-taon-kv-authorization.component.html.de-DE.i18n.data-B4ZzYnfR.mjs → taon-ui-websql-prod-taon-kv-authorization.component.html.de-DE.i18n.data-Cd9FbUj8.mjs} +3 -3
- package/websql-prod/fesm2022/taon-ui-websql-prod-taon-kv-authorization.component.html.de-DE.i18n.data-Cd9FbUj8.mjs.map +1 -0
- package/websql-prod/fesm2022/{taon-ui-websql-prod-taon-kv-authorization.component.html.en-US.i18n.data-C8oLV101.mjs → taon-ui-websql-prod-taon-kv-authorization.component.html.en-US.i18n.data-L4Myx3Qy.mjs} +2 -2
- package/websql-prod/fesm2022/taon-ui-websql-prod-taon-kv-authorization.component.html.en-US.i18n.data-L4Myx3Qy.mjs.map +1 -0
- package/websql-prod/fesm2022/{taon-ui-websql-prod-taon-kv-authorization.component.html.pl-PL.i18n.data-DIy8LL8b.mjs → taon-ui-websql-prod-taon-kv-authorization.component.html.pl-PL.i18n.data-D2z4X4t3.mjs} +3 -3
- package/websql-prod/fesm2022/taon-ui-websql-prod-taon-kv-authorization.component.html.pl-PL.i18n.data-D2z4X4t3.mjs.map +1 -0
- package/websql-prod/fesm2022/taon-ui-websql-prod.mjs +156 -98
- package/websql-prod/fesm2022/taon-ui-websql-prod.mjs.map +1 -1
- package/websql-prod/package.json +1 -1
- package/websql-prod/types/taon-ui-websql-prod.d.ts +30 -21
- package/websql-prod.split-namespaces.json +3 -1
- package/browser/fesm2022/taon-ui-browser-taon-kv-authorization.component.html.de-DE.i18n.data-B4ZzYnfR.mjs.map +0 -1
- package/browser/fesm2022/taon-ui-browser-taon-kv-authorization.component.html.en-US.i18n.data-C8oLV101.mjs.map +0 -1
- package/browser/fesm2022/taon-ui-browser-taon-kv-authorization.component.html.pl-PL.i18n.data-DIy8LL8b.mjs.map +0 -1
- package/browser-prod/fesm2022/taon-ui-browser-prod-taon-kv-authorization.component.html.de-DE.i18n.data-B4ZzYnfR.mjs.map +0 -1
- package/browser-prod/fesm2022/taon-ui-browser-prod-taon-kv-authorization.component.html.en-US.i18n.data-C8oLV101.mjs.map +0 -1
- package/browser-prod/fesm2022/taon-ui-browser-prod-taon-kv-authorization.component.html.pl-PL.i18n.data-DIy8LL8b.mjs.map +0 -1
- package/lib-esm/app.cloudflare.d.ts +0 -0
- package/lib-esm/app.cloudflare.js +0 -4
- package/lib-esm/app.cloudflare.js.map +0 -1
- package/websql/fesm2022/taon-ui-websql-taon-kv-authorization.component.html.de-DE.i18n.data-B4ZzYnfR.mjs.map +0 -1
- package/websql/fesm2022/taon-ui-websql-taon-kv-authorization.component.html.en-US.i18n.data-C8oLV101.mjs.map +0 -1
- package/websql/fesm2022/taon-ui-websql-taon-kv-authorization.component.html.pl-PL.i18n.data-DIy8LL8b.mjs.map +0 -1
- package/websql-prod/fesm2022/taon-ui-websql-prod-taon-kv-authorization.component.html.de-DE.i18n.data-B4ZzYnfR.mjs.map +0 -1
- package/websql-prod/fesm2022/taon-ui-websql-prod-taon-kv-authorization.component.html.en-US.i18n.data-C8oLV101.mjs.map +0 -1
- package/websql-prod/fesm2022/taon-ui-websql-prod-taon-kv-authorization.component.html.pl-PL.i18n.data-DIy8LL8b.mjs.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
{
|
|
2
|
-
"commitHash": "
|
|
3
|
-
"commitName": "chore: update",
|
|
4
|
-
"commitDate": "
|
|
5
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"commitHash": "5f57c69aa8a3e265e31fa1746a703aa93c4da4c6",
|
|
3
|
+
"commitName": "chore: update",
|
|
4
|
+
"commitDate": "22-08-2026 00:28:48"
|
|
5
|
+
}
|
package/bin/start.js
CHANGED
|
@@ -14,13 +14,13 @@ var taonKvAuthorization_component_html_deDE_i18n_data = {
|
|
|
14
14
|
"translation": "Du hast es gekauft."
|
|
15
15
|
},
|
|
16
16
|
{
|
|
17
|
-
"gettextString": "
|
|
17
|
+
"gettextString": "product(s)",
|
|
18
18
|
"lineNumber": 13,
|
|
19
|
-
"translation": "
|
|
19
|
+
"translation": "Produkt (s)"
|
|
20
20
|
}
|
|
21
21
|
]
|
|
22
22
|
};
|
|
23
23
|
// THIS FILE IS GENERATED - DO NOT MODIFY
|
|
24
24
|
|
|
25
25
|
export { taonKvAuthorization_component_html_deDE_i18n_data as default };
|
|
26
|
-
//# sourceMappingURL=taon-ui-browser-taon-kv-authorization.component.html.de-DE.i18n.data-
|
|
26
|
+
//# sourceMappingURL=taon-ui-browser-taon-kv-authorization.component.html.de-DE.i18n.data-Cd9FbUj8.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"taon-ui-browser-taon-kv-authorization.component.html.de-DE.i18n.data-Cd9FbUj8.mjs","sources":["../../../tmp-libs-for-dist/taon-ui/projects/taon-ui/src/lib/ui/taon-kv-authorization/i18n/taon-kv-authorization.component.html.de-DE.i18n.data.ts"],"sourcesContent":["// THIS FILE IS GENERATED - DO NOT MODIFY\n\nexport interface DeDeTraslationOverrideSrcLibUiTaonKvAuthorizationTaonKvAuthorizationComponentHtml {\n \"de-DE\": {\n \"\": {\n \"You did not purchase any products\"?: string;\n \"You purchased\"?: string;\n \"product(s)\"?: string;\n };\n\n };\n}\n// THIS FILE IS GENERATED - DO NOT MODIFY\nexport default {\n \"fileRelativePath\": \"src/lib/ui/taon-kv-authorization/taon-kv-authorization.component.html\",\n \"tags\": [\n {\n \"gettextString\": \"You did not purchase any products\",\n \"lineNumber\": 5,\n \"translation\": \"Sie haben keine Produkte gekauft.\"\n },\n {\n \"gettextString\": \"You purchased\",\n \"lineNumber\": 12,\n \"translation\": \"Du hast es gekauft.\"\n },\n {\n \"gettextString\": \"product(s)\",\n \"lineNumber\": 13,\n \"translation\": \"Produkt (s)\"\n }\n ]\n};\n// THIS FILE IS GENERATED - DO NOT MODIFY\n"],"names":[],"mappings":"AAAA;AAYA;AACA,wDAAe;AACb,IAAA,kBAAkB,EAAE,uEAAuE;AAC3F,IAAA,MAAM,EAAE;AACN,QAAA;AACE,YAAA,eAAe,EAAE,mCAAmC;AACpD,YAAA,YAAY,EAAE,CAAC;AACf,YAAA,aAAa,EAAE;AAChB,SAAA;AACD,QAAA;AACE,YAAA,eAAe,EAAE,eAAe;AAChC,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,aAAa,EAAE;AAChB,SAAA;AACD,QAAA;AACE,YAAA,eAAe,EAAE,YAAY;AAC7B,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,aAAa,EAAE;AAChB;AACF;CACF;AACD;;;;"}
|
|
@@ -12,7 +12,7 @@ var taonKvAuthorization_component_html_enUS_i18n_data = {
|
|
|
12
12
|
"lineNumber": 12
|
|
13
13
|
},
|
|
14
14
|
{
|
|
15
|
-
"gettextString": "
|
|
15
|
+
"gettextString": "product(s)",
|
|
16
16
|
"lineNumber": 13
|
|
17
17
|
}
|
|
18
18
|
]
|
|
@@ -20,4 +20,4 @@ var taonKvAuthorization_component_html_enUS_i18n_data = {
|
|
|
20
20
|
// THIS FILE IS GENERATED - DO NOT MODIFY
|
|
21
21
|
|
|
22
22
|
export { taonKvAuthorization_component_html_enUS_i18n_data as default };
|
|
23
|
-
//# sourceMappingURL=taon-ui-browser-taon-kv-authorization.component.html.en-US.i18n.data-
|
|
23
|
+
//# sourceMappingURL=taon-ui-browser-taon-kv-authorization.component.html.en-US.i18n.data-L4Myx3Qy.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"taon-ui-browser-taon-kv-authorization.component.html.en-US.i18n.data-L4Myx3Qy.mjs","sources":["../../../tmp-libs-for-dist/taon-ui/projects/taon-ui/src/lib/ui/taon-kv-authorization/i18n/taon-kv-authorization.component.html.en-US.i18n.data.ts"],"sourcesContent":["// THIS FILE IS GENERATED - DO NOT MODIFY\n\nexport interface EnUsTraslationOverrideSrcLibUiTaonKvAuthorizationTaonKvAuthorizationComponentHtml {\n \"en-US\": {\n \"\": {\n \"You did not purchase any products\"?: string;\n \"You purchased\"?: string;\n \"product(s)\"?: string;\n };\n\n };\n}\n// THIS FILE IS GENERATED - DO NOT MODIFY\nexport default {\n \"fileRelativePath\": \"src/lib/ui/taon-kv-authorization/taon-kv-authorization.component.html\",\n \"tags\": [\n {\n \"gettextString\": \"You did not purchase any products\",\n \"lineNumber\": 5\n },\n {\n \"gettextString\": \"You purchased\",\n \"lineNumber\": 12\n },\n {\n \"gettextString\": \"product(s)\",\n \"lineNumber\": 13\n }\n ]\n};\n// THIS FILE IS GENERATED - DO NOT MODIFY\n"],"names":[],"mappings":"AAAA;AAYA;AACA,wDAAe;AACb,IAAA,kBAAkB,EAAE,uEAAuE;AAC3F,IAAA,MAAM,EAAE;AACN,QAAA;AACE,YAAA,eAAe,EAAE,mCAAmC;AACpD,YAAA,YAAY,EAAE;AACf,SAAA;AACD,QAAA;AACE,YAAA,eAAe,EAAE,eAAe;AAChC,YAAA,YAAY,EAAE;AACf,SAAA;AACD,QAAA;AACE,YAAA,eAAe,EAAE,YAAY;AAC7B,YAAA,YAAY,EAAE;AACf;AACF;CACF;AACD;;;;"}
|
|
@@ -14,13 +14,13 @@ var taonKvAuthorization_component_html_plPL_i18n_data = {
|
|
|
14
14
|
"translation": "Zakupiłeś"
|
|
15
15
|
},
|
|
16
16
|
{
|
|
17
|
-
"gettextString": "
|
|
17
|
+
"gettextString": "product(s)",
|
|
18
18
|
"lineNumber": 13,
|
|
19
|
-
"translation": "
|
|
19
|
+
"translation": "produkt(ów)"
|
|
20
20
|
}
|
|
21
21
|
]
|
|
22
22
|
};
|
|
23
23
|
// THIS FILE IS GENERATED - DO NOT MODIFY
|
|
24
24
|
|
|
25
25
|
export { taonKvAuthorization_component_html_plPL_i18n_data as default };
|
|
26
|
-
//# sourceMappingURL=taon-ui-browser-taon-kv-authorization.component.html.pl-PL.i18n.data-
|
|
26
|
+
//# sourceMappingURL=taon-ui-browser-taon-kv-authorization.component.html.pl-PL.i18n.data-D2z4X4t3.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"taon-ui-browser-taon-kv-authorization.component.html.pl-PL.i18n.data-D2z4X4t3.mjs","sources":["../../../tmp-libs-for-dist/taon-ui/projects/taon-ui/src/lib/ui/taon-kv-authorization/i18n/taon-kv-authorization.component.html.pl-PL.i18n.data.ts"],"sourcesContent":["// THIS FILE IS GENERATED - DO NOT MODIFY\n\nexport interface PlPlTraslationOverrideSrcLibUiTaonKvAuthorizationTaonKvAuthorizationComponentHtml {\n \"pl-PL\": {\n \"\": {\n \"You did not purchase any products\"?: string;\n \"You purchased\"?: string;\n \"product(s)\"?: string;\n };\n\n };\n}\n// THIS FILE IS GENERATED - DO NOT MODIFY\nexport default {\n \"fileRelativePath\": \"src/lib/ui/taon-kv-authorization/taon-kv-authorization.component.html\",\n \"tags\": [\n {\n \"gettextString\": \"You did not purchase any products\",\n \"lineNumber\": 5,\n \"translation\": \"Nie kupiłeś jeszcze żadnego produktu\"\n },\n {\n \"gettextString\": \"You purchased\",\n \"lineNumber\": 12,\n \"translation\": \"Zakupiłeś\"\n },\n {\n \"gettextString\": \"product(s)\",\n \"lineNumber\": 13,\n \"translation\": \"produkt(ów)\"\n }\n ]\n};\n// THIS FILE IS GENERATED - DO NOT MODIFY\n"],"names":[],"mappings":"AAAA;AAYA;AACA,wDAAe;AACb,IAAA,kBAAkB,EAAE,uEAAuE;AAC3F,IAAA,MAAM,EAAE;AACN,QAAA;AACE,YAAA,eAAe,EAAE,mCAAmC;AACpD,YAAA,YAAY,EAAE,CAAC;AACf,YAAA,aAAa,EAAE;AAChB,SAAA;AACD,QAAA;AACE,YAAA,eAAe,EAAE,eAAe;AAChC,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,aAAa,EAAE;AAChB,SAAA;AACD,QAAA;AACE,YAAA,eAAe,EAAE,YAAY;AAC7B,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,aAAa,EAAE;AAChB;AACF;CACF;AACD;;;;"}
|
|
@@ -59,7 +59,7 @@ import { ModalModule } from 'ngx-bootstrap/modal';
|
|
|
59
59
|
import * as i1$1 from '@angular/platform-browser';
|
|
60
60
|
import { DomSanitizer } from '@angular/platform-browser';
|
|
61
61
|
import { Log, Level } from 'ng2-logger/browser';
|
|
62
|
-
import { _, Helpers, json5 } from 'tnp-core/browser';
|
|
62
|
+
import { _, axios, Helpers, json5 } from 'tnp-core/browser';
|
|
63
63
|
import * as i2$1 from '@angular/forms';
|
|
64
64
|
import { FormGroup, FormControl, ReactiveFormsModule, FormsModule, Validators } from '@angular/forms';
|
|
65
65
|
import * as i3 from 'ngx-scrollbar';
|
|
@@ -71,7 +71,6 @@ import { TaonAdminPanelMode, TaonAdminService, Symbols } from 'taon/browser';
|
|
|
71
71
|
import { TaonStor } from 'taon-storage/browser';
|
|
72
72
|
import { Resource, getDefaultModel } from 'ng2-rest/browser';
|
|
73
73
|
import * as i1$2 from '@ngneat/hot-toast';
|
|
74
|
-
import axios from 'axios';
|
|
75
74
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
76
75
|
import { PasswordModule } from 'primeng/password';
|
|
77
76
|
import * as i2$4 from '@angular/router';
|
|
@@ -110,7 +109,7 @@ const CURRENT_PACKAGE_TAON_VERSION = 'v21';
|
|
|
110
109
|
/**
|
|
111
110
|
* Autogenerated by current cli tool. Use *tnp release* to bump version.
|
|
112
111
|
*/
|
|
113
|
-
const CURRENT_PACKAGE_VERSION = '21.0.
|
|
112
|
+
const CURRENT_PACKAGE_VERSION = '21.0.63';
|
|
114
113
|
// THIS FILE IS GENERATED - DO NOT MODIFY
|
|
115
114
|
|
|
116
115
|
function myOrgProj() { }
|
|
@@ -1637,7 +1636,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImpor
|
|
|
1637
1636
|
|
|
1638
1637
|
//#region import
|
|
1639
1638
|
//#endregion
|
|
1640
|
-
const t$4 = Translation.for('src/lib/ui/taon-kv-authorization/taon-kv-authorization.component.ts', { "src/lib/ui/taon-kv-authorization/taon-kv-authorization.component.html": { "en-US": async () => (await import('./taon-ui-browser-taon-kv-authorization.component.html.en-US.i18n.data-
|
|
1639
|
+
const t$4 = Translation.for('src/lib/ui/taon-kv-authorization/taon-kv-authorization.component.ts', { "src/lib/ui/taon-kv-authorization/taon-kv-authorization.component.html": { "en-US": async () => (await import('./taon-ui-browser-taon-kv-authorization.component.html.en-US.i18n.data-L4Myx3Qy.mjs')).default, "pl-PL": async () => (await import('./taon-ui-browser-taon-kv-authorization.component.html.pl-PL.i18n.data-D2z4X4t3.mjs')).default, "de-DE": async () => (await import('./taon-ui-browser-taon-kv-authorization.component.html.de-DE.i18n.data-Cd9FbUj8.mjs')).default }, "src/lib/ui/taon-kv-authorization/taon-kv-authorization.component.ts": { "en-US": async () => (await import('./taon-ui-browser-taon-kv-authorization.component.ts.en-US.i18n.data-DN8soZSJ.mjs')).default, "pl-PL": async () => (await import('./taon-ui-browser-taon-kv-authorization.component.ts.pl-PL.i18n.data-BXH1x3RS.mjs')).default, "de-DE": async () => (await import('./taon-ui-browser-taon-kv-authorization.component.ts.de-DE.i18n.data-UUFMWd9s.mjs')).default } }, {
|
|
1641
1640
|
// debug: true,
|
|
1642
1641
|
});
|
|
1643
1642
|
class TaonKvAuthorizationComponent {
|
|
@@ -1700,11 +1699,11 @@ class TaonKvAuthorizationComponent {
|
|
|
1700
1699
|
return this.authorizedProductsData().filter(p => p.authorized).length;
|
|
1701
1700
|
}
|
|
1702
1701
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonKvAuthorizationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1703
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.9", type: TaonKvAuthorizationComponent, isStandalone: true, selector: "taon-kv-authorization", inputs: { email: "email", url: "url", products: "products" }, outputs: { authorizedProducts: "authorizedProducts" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"taon-kv-authorization\">\n <div *ngIf=\"loading()\">{{ infoMsg() }}</div>\n\n <div *ngIf=\"!loading()\">\n <div\n *ngIf=\"authorizedCount() === 0\"\n translate [translate-t]=\"t\" [translate-t]=\"t\">\n You did not purchase any products\n </div>\n\n <div *ngIf=\"authorizedCount() > 0\">\n <span translate [translate-t]=\"t\">You purchased </span> {{ authorizedCount() }}\n <span translate [translate-t]=\"t\">
|
|
1702
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.9", type: TaonKvAuthorizationComponent, isStandalone: true, selector: "taon-kv-authorization", inputs: { email: "email", url: "url", products: "products" }, outputs: { authorizedProducts: "authorizedProducts" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"taon-kv-authorization\">\n <div *ngIf=\"loading()\">{{ infoMsg() }}</div>\n\n <div *ngIf=\"!loading()\">\n <div\n *ngIf=\"authorizedCount() === 0\"\n translate [translate-t]=\"t\" [translate-t]=\"t\">\n You did not purchase any products\n </div>\n\n <div *ngIf=\"authorizedCount() > 0\">\n <span translate [translate-t]=\"t\">You purchased </span> {{ authorizedCount() }}\n <span translate [translate-t]=\"t\">product(s)</span>\n </div>\n </div>\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: TranslateDirective, selector: "[translate]", inputs: ["translate-t", "translate-params", "translate-context"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1704
1703
|
}
|
|
1705
1704
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonKvAuthorizationComponent, decorators: [{
|
|
1706
1705
|
type: Component,
|
|
1707
|
-
args: [{ selector: 'taon-kv-authorization', changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, TranslateDirective], template: "<div class=\"taon-kv-authorization\">\n <div *ngIf=\"loading()\">{{ infoMsg() }}</div>\n\n <div *ngIf=\"!loading()\">\n <div\n *ngIf=\"authorizedCount() === 0\"\n translate [translate-t]=\"t\" [translate-t]=\"t\">\n You did not purchase any products\n </div>\n\n <div *ngIf=\"authorizedCount() > 0\">\n <span translate [translate-t]=\"t\">You purchased </span> {{ authorizedCount() }}\n <span translate [translate-t]=\"t\">
|
|
1706
|
+
args: [{ selector: 'taon-kv-authorization', changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, TranslateDirective], template: "<div class=\"taon-kv-authorization\">\n <div *ngIf=\"loading()\">{{ infoMsg() }}</div>\n\n <div *ngIf=\"!loading()\">\n <div\n *ngIf=\"authorizedCount() === 0\"\n translate [translate-t]=\"t\" [translate-t]=\"t\">\n You did not purchase any products\n </div>\n\n <div *ngIf=\"authorizedCount() > 0\">\n <span translate [translate-t]=\"t\">You purchased </span> {{ authorizedCount() }}\n <span translate [translate-t]=\"t\">product(s)</span>\n </div>\n </div>\n</div>" }]
|
|
1708
1707
|
}], propDecorators: { email: [{
|
|
1709
1708
|
type: Input,
|
|
1710
1709
|
args: [{ required: true }]
|
|
@@ -1802,11 +1801,11 @@ class TaonRumbleComponent {
|
|
|
1802
1801
|
return this.state === 'video-preview-private';
|
|
1803
1802
|
}
|
|
1804
1803
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonRumbleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1805
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.9", type: TaonRumbleComponent, isStandalone: true, selector: "taon-rumble", inputs: { title: "title", clipId: "clipId", picturePreviewUrl: "picturePreviewUrl", state: "state" }, outputs: { paddlockClicked: "paddlockClicked", previewClicked: "previewClicked" }, ngImport: i0, template: "<div class=\"taon-rumble\">\n <!-- PREVIEW MODE -->\n <div\n *ngIf=\"isPreview()\"\n class=\"preview\"\n (click)=\"onPreviewClick()\">\n <img\n class=\"preview-img\"\n [src]=\"picturePreviewUrl\"\n [alt]=\"title\" />\n\n <div class=\"title\">\n {{ title }}\n </div>\n\n <!-- PLAY BUTTON -->\n <div class=\"play-button\">\u25B6</div>\n\n <!-- LOCK -->\n <div\n *ngIf=\"isLocked()\"\n class=\"lock\"\n (click)=\"onPadlockClick($event)\">\n \uD83D\uDD12\n </div>\n </div>\n\n <!-- VIDEO OPEN -->\n <div\n *ngIf=\"isVideoOpen()\"\n class=\"video\">\n <iframe\n class=\"rumble-frame\"\n [src]=\"embedUrl()\"\n frameborder=\"0\"\n allowfullscreen>\n </iframe>\n </div>\n\n <!-- PRIVATE VIDEO -->\n <div\n *ngIf=\"isPrivate()\"\n class=\"private\">\n <div class=\"private-box\">\uD83D\uDD12 Private video</div>\n </div>\n</div
|
|
1804
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.9", type: TaonRumbleComponent, isStandalone: true, selector: "taon-rumble", inputs: { title: "title", clipId: "clipId", picturePreviewUrl: "picturePreviewUrl", state: "state" }, outputs: { paddlockClicked: "paddlockClicked", previewClicked: "previewClicked" }, ngImport: i0, template: "<div class=\"taon-rumble\">\n <!-- PREVIEW MODE -->\n <div\n *ngIf=\"isPreview()\"\n class=\"preview\"\n (click)=\"onPreviewClick()\">\n <img\n class=\"preview-img\"\n [src]=\"picturePreviewUrl\"\n [alt]=\"title\" />\n\n <div class=\"title\">\n {{ title }}\n </div>\n\n <!-- PLAY BUTTON -->\n <div class=\"play-button\">\u25B6</div>\n\n <!-- LOCK -->\n <div\n *ngIf=\"isLocked()\"\n class=\"lock\"\n (click)=\"onPadlockClick($event)\">\n \uD83D\uDD12\n </div>\n </div>\n\n <!-- VIDEO OPEN -->\n <div\n *ngIf=\"isVideoOpen()\"\n class=\"video\">\n <iframe\n class=\"rumble-frame\"\n [src]=\"embedUrl()\"\n frameborder=\"0\"\n allowfullscreen>\n </iframe>\n </div>\n\n <!-- PRIVATE VIDEO -->\n <div\n *ngIf=\"isPrivate()\"\n class=\"private\">\n <div class=\"private-box\">\uD83D\uDD12 Private video</div>\n </div>\n</div>", styles: [".taon-rumble{width:100%;max-width:640px;margin:auto;position:relative;font-family:inherit}.preview{position:relative;cursor:pointer;overflow:hidden;border-radius:10px}.preview-img{width:100%;display:block}.title{position:absolute;left:0;bottom:0;right:0;padding:10px 14px;background:linear-gradient(transparent,#000c);color:#fff;font-size:14px}.play-button{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:40px;color:#fff;background:#00000080;width:70px;height:70px;display:flex;align-items:center;justify-content:center;border-radius:50%}.lock{position:absolute;top:10px;right:10px;font-size:20px;background:#0009;color:#fff;padding:6px 8px;border-radius:6px}.video{position:relative;padding-top:56.25%}.rumble-frame{position:absolute;top:0;left:0;width:100%;height:100%}.private{display:flex;align-items:center;justify-content:center;height:200px;background:#111;color:#fff}.private-box{opacity:.7}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
1806
1805
|
}
|
|
1807
1806
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonRumbleComponent, decorators: [{
|
|
1808
1807
|
type: Component,
|
|
1809
|
-
args: [{ selector: 'taon-rumble', standalone: true, imports: [NgIf], template: "<div class=\"taon-rumble\">\n <!-- PREVIEW MODE -->\n <div\n *ngIf=\"isPreview()\"\n class=\"preview\"\n (click)=\"onPreviewClick()\">\n <img\n class=\"preview-img\"\n [src]=\"picturePreviewUrl\"\n [alt]=\"title\" />\n\n <div class=\"title\">\n {{ title }}\n </div>\n\n <!-- PLAY BUTTON -->\n <div class=\"play-button\">\u25B6</div>\n\n <!-- LOCK -->\n <div\n *ngIf=\"isLocked()\"\n class=\"lock\"\n (click)=\"onPadlockClick($event)\">\n \uD83D\uDD12\n </div>\n </div>\n\n <!-- VIDEO OPEN -->\n <div\n *ngIf=\"isVideoOpen()\"\n class=\"video\">\n <iframe\n class=\"rumble-frame\"\n [src]=\"embedUrl()\"\n frameborder=\"0\"\n allowfullscreen>\n </iframe>\n </div>\n\n <!-- PRIVATE VIDEO -->\n <div\n *ngIf=\"isPrivate()\"\n class=\"private\">\n <div class=\"private-box\">\uD83D\uDD12 Private video</div>\n </div>\n</div
|
|
1808
|
+
args: [{ selector: 'taon-rumble', standalone: true, imports: [NgIf], template: "<div class=\"taon-rumble\">\n <!-- PREVIEW MODE -->\n <div\n *ngIf=\"isPreview()\"\n class=\"preview\"\n (click)=\"onPreviewClick()\">\n <img\n class=\"preview-img\"\n [src]=\"picturePreviewUrl\"\n [alt]=\"title\" />\n\n <div class=\"title\">\n {{ title }}\n </div>\n\n <!-- PLAY BUTTON -->\n <div class=\"play-button\">\u25B6</div>\n\n <!-- LOCK -->\n <div\n *ngIf=\"isLocked()\"\n class=\"lock\"\n (click)=\"onPadlockClick($event)\">\n \uD83D\uDD12\n </div>\n </div>\n\n <!-- VIDEO OPEN -->\n <div\n *ngIf=\"isVideoOpen()\"\n class=\"video\">\n <iframe\n class=\"rumble-frame\"\n [src]=\"embedUrl()\"\n frameborder=\"0\"\n allowfullscreen>\n </iframe>\n </div>\n\n <!-- PRIVATE VIDEO -->\n <div\n *ngIf=\"isPrivate()\"\n class=\"private\">\n <div class=\"private-box\">\uD83D\uDD12 Private video</div>\n </div>\n</div>", styles: [".taon-rumble{width:100%;max-width:640px;margin:auto;position:relative;font-family:inherit}.preview{position:relative;cursor:pointer;overflow:hidden;border-radius:10px}.preview-img{width:100%;display:block}.title{position:absolute;left:0;bottom:0;right:0;padding:10px 14px;background:linear-gradient(transparent,#000c);color:#fff;font-size:14px}.play-button{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:40px;color:#fff;background:#00000080;width:70px;height:70px;display:flex;align-items:center;justify-content:center;border-radius:50%}.lock{position:absolute;top:10px;right:10px;font-size:20px;background:#0009;color:#fff;padding:6px 8px;border-radius:6px}.video{position:relative;padding-top:56.25%}.rumble-frame{position:absolute;top:0;left:0;width:100%;height:100%}.private{display:flex;align-items:center;justify-content:center;height:200px;background:#111;color:#fff}.private-box{opacity:.7}\n"] }]
|
|
1810
1809
|
}], propDecorators: { title: [{
|
|
1811
1810
|
type: Input,
|
|
1812
1811
|
args: [{
|
|
@@ -2089,11 +2088,11 @@ class TaonStripeBuyButtonComponent {
|
|
|
2089
2088
|
}
|
|
2090
2089
|
}
|
|
2091
2090
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonStripeBuyButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2092
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.9", type: TaonStripeBuyButtonComponent, isStandalone: true, selector: "taon-stripe-buy-button", inputs: { priceId: "priceId", productId: "productId", promotionPreviousPrice: "promotionPreviousPrice", workerUrl: "workerUrl", email: "email", successUrl: "successUrl", cancelUrl: "cancelUrl" }, ngImport: i0, template: "<button\n type=\"button\"\n matButton=\"filled\"\n (click)=\"buy()\"\n [disabled]=\"loading\">\n <span *ngIf=\"!loading\">\n {{ label() }}\n </span>\n <span\n class=\"line-through absolute bg-red-500 p-1
|
|
2091
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.9", type: TaonStripeBuyButtonComponent, isStandalone: true, selector: "taon-stripe-buy-button", inputs: { priceId: "priceId", productId: "productId", promotionPreviousPrice: "promotionPreviousPrice", workerUrl: "workerUrl", email: "email", successUrl: "successUrl", cancelUrl: "cancelUrl" }, ngImport: i0, template: "<button\n type=\"button\"\n matButton=\"filled\"\n (click)=\"buy()\"\n [disabled]=\"loading\">\n <span *ngIf=\"!loading\">\n {{ label() }}\n </span>\n <span\n class=\"line-through absolute bg-red-500 p-1 rounded-xl whitespace-nowrap ml-2\"\n *ngIf=\"promotionPreviousPrice\">\n {{ promotionPreviousPrice }}\n </span>\n\n <span *ngIf=\"loading\"> Redirecting to Stripe... </span>\n</button>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3$1.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }] }); }
|
|
2093
2092
|
}
|
|
2094
2093
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonStripeBuyButtonComponent, decorators: [{
|
|
2095
2094
|
type: Component,
|
|
2096
|
-
args: [{ selector: 'taon-stripe-buy-button', imports: [CommonModule, MatButtonModule], template: "<button\n type=\"button\"\n matButton=\"filled\"\n (click)=\"buy()\"\n [disabled]=\"loading\">\n <span *ngIf=\"!loading\">\n {{ label() }}\n </span>\n <span\n class=\"line-through absolute bg-red-500 p-1
|
|
2095
|
+
args: [{ selector: 'taon-stripe-buy-button', imports: [CommonModule, MatButtonModule], template: "<button\n type=\"button\"\n matButton=\"filled\"\n (click)=\"buy()\"\n [disabled]=\"loading\">\n <span *ngIf=\"!loading\">\n {{ label() }}\n </span>\n <span\n class=\"line-through absolute bg-red-500 p-1 rounded-xl whitespace-nowrap ml-2\"\n *ngIf=\"promotionPreviousPrice\">\n {{ promotionPreviousPrice }}\n </span>\n\n <span *ngIf=\"loading\"> Redirecting to Stripe... </span>\n</button>" }]
|
|
2097
2096
|
}], propDecorators: { priceId: [{
|
|
2098
2097
|
type: Input,
|
|
2099
2098
|
args: [{ required: true }]
|
|
@@ -2370,34 +2369,124 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImpor
|
|
|
2370
2369
|
}]
|
|
2371
2370
|
}] });
|
|
2372
2371
|
|
|
2373
|
-
|
|
2374
|
-
|
|
2375
|
-
//
|
|
2376
|
-
//
|
|
2377
|
-
//
|
|
2378
|
-
//
|
|
2379
|
-
|
|
2380
|
-
|
|
2381
|
-
|
|
2382
|
-
|
|
2383
|
-
|
|
2384
|
-
|
|
2372
|
+
var TaonYouTubeUtils;
|
|
2373
|
+
(function (TaonYouTubeUtils) {
|
|
2374
|
+
// declare global {
|
|
2375
|
+
// interface Window {
|
|
2376
|
+
// YT: any;
|
|
2377
|
+
// onYouTubeIframeAPIReady: () => void;
|
|
2378
|
+
// }
|
|
2379
|
+
// }
|
|
2380
|
+
function loadYoutubeApi() {
|
|
2381
|
+
return new Promise(resolve => {
|
|
2382
|
+
// @ts-ignore
|
|
2383
|
+
if (window.YT && window.YT.Player) {
|
|
2384
|
+
resolve();
|
|
2385
|
+
return;
|
|
2386
|
+
}
|
|
2387
|
+
const tag = document.createElement('script');
|
|
2388
|
+
tag.src = 'https://www.youtube.com/iframe_api';
|
|
2389
|
+
document.body.appendChild(tag);
|
|
2390
|
+
// @ts-ignore
|
|
2391
|
+
window.onYouTubeIframeAPIReady = () => {
|
|
2392
|
+
resolve();
|
|
2393
|
+
};
|
|
2394
|
+
});
|
|
2395
|
+
}
|
|
2396
|
+
TaonYouTubeUtils.loadYoutubeApi = loadYoutubeApi;
|
|
2397
|
+
async function getVidesIdsOfPlaylist(ytplaylistId) {
|
|
2398
|
+
const url = `https://www.youtube.com/playlist?list=${encodeURIComponent(ytplaylistId)}`;
|
|
2399
|
+
const response = await fetch(url, {
|
|
2400
|
+
headers: {
|
|
2401
|
+
'accept-language': 'en-US,en;q=0.9',
|
|
2402
|
+
},
|
|
2403
|
+
});
|
|
2404
|
+
if (!response.ok) {
|
|
2405
|
+
throw new Error(`Failed to fetch playlist page: ${response.status} ${response.statusText}`);
|
|
2385
2406
|
}
|
|
2386
|
-
const
|
|
2387
|
-
|
|
2388
|
-
|
|
2389
|
-
|
|
2390
|
-
|
|
2391
|
-
|
|
2392
|
-
|
|
2393
|
-
|
|
2394
|
-
|
|
2407
|
+
const html = await response.text();
|
|
2408
|
+
const matches = [...html.matchAll(/"videoId":"([a-zA-Z0-9_-]{11})"/g)];
|
|
2409
|
+
const ids = matches.map(match => match[1]);
|
|
2410
|
+
return [...new Set(ids)];
|
|
2411
|
+
}
|
|
2412
|
+
TaonYouTubeUtils.getVidesIdsOfPlaylist = getVidesIdsOfPlaylist;
|
|
2413
|
+
function extractPlaylistId(input) {
|
|
2414
|
+
if (!input.includes('http')) {
|
|
2415
|
+
return input.split('&')[0].trim();
|
|
2416
|
+
}
|
|
2417
|
+
const url = new URL(input);
|
|
2418
|
+
return (url.searchParams.get('list') || '').trim();
|
|
2419
|
+
}
|
|
2420
|
+
TaonYouTubeUtils.extractPlaylistId = extractPlaylistId;
|
|
2421
|
+
})(TaonYouTubeUtils || (TaonYouTubeUtils = {}));
|
|
2422
|
+
|
|
2423
|
+
//#region imports
|
|
2424
|
+
//#endregion
|
|
2395
2425
|
class TaonYoutubeVideoComponent {
|
|
2426
|
+
get containerStyle() {
|
|
2427
|
+
return this.height ? { height: this.height } : null;
|
|
2428
|
+
}
|
|
2429
|
+
get displayTitle() {
|
|
2430
|
+
return this.title;
|
|
2431
|
+
}
|
|
2432
|
+
//#endregion
|
|
2433
|
+
constructor(sanitizer) {
|
|
2434
|
+
this.sanitizer = sanitizer;
|
|
2435
|
+
this.state = 'preview-picture';
|
|
2436
|
+
this.paddlockClicked = new EventEmitter();
|
|
2437
|
+
this.previewClicked = new EventEmitter();
|
|
2438
|
+
/**
|
|
2439
|
+
* > controls=0 Hides bottom control bar
|
|
2440
|
+
* > modestbranding=1 Reduces YouTube logo
|
|
2441
|
+
* > rel=0 Disables related videos from other channels
|
|
2442
|
+
* > disablekb=1 Disables keyboard controls
|
|
2443
|
+
* > fs=0 Disables fullscreen button
|
|
2444
|
+
* > playsinline=1 Prevents fullscreen auto behavior on iOS
|
|
2445
|
+
*/
|
|
2446
|
+
this.embedUrl = computed(() => this.sanitizer.bypassSecurityTrustResourceUrl(`https://www.youtube.com/embed/${this.videoIdSignal()}` +
|
|
2447
|
+
`?enablejsapi=1` +
|
|
2448
|
+
`&autoplay=1` +
|
|
2449
|
+
`&playsinline=1` +
|
|
2450
|
+
`&rel=0` +
|
|
2451
|
+
`&origin=${encodeURIComponent(window.location.origin)}`), ...(ngDevMode ? [{ debugName: "embedUrl" }] : []));
|
|
2452
|
+
this.PS = {
|
|
2453
|
+
UNSTARTED: -1,
|
|
2454
|
+
ENDED: 0,
|
|
2455
|
+
PLAYING: 1,
|
|
2456
|
+
PAUSED: 2,
|
|
2457
|
+
BUFFERING: 3,
|
|
2458
|
+
CUED: 5,
|
|
2459
|
+
};
|
|
2460
|
+
this.videoActivated = signal(false, ...(ngDevMode ? [{ debugName: "videoActivated" }] : []));
|
|
2461
|
+
this.isInViewport = signal(false, ...(ngDevMode ? [{ debugName: "isInViewport" }] : []));
|
|
2462
|
+
// previewImage = computed(
|
|
2463
|
+
// () =>
|
|
2464
|
+
// `https://img.youtube.com/vi/${this.videoIdSignal()}/maxresdefault.jpg`,
|
|
2465
|
+
// );
|
|
2466
|
+
this.previewImage = computed(() => `https://img.youtube.com/vi/${this.videoIdSignal()}/0.jpg`, ...(ngDevMode ? [{ debugName: "previewImage" }] : []));
|
|
2467
|
+
this.cdr = inject(ChangeDetectorRef);
|
|
2468
|
+
this.allowedToBeDisplayedVideoOveraly = signal(true, ...(ngDevMode ? [{ debugName: "allowedToBeDisplayedVideoOveraly" }] : []));
|
|
2469
|
+
this.el = inject((ElementRef));
|
|
2470
|
+
this.videoIdSignal = signal('', ...(ngDevMode ? [{ debugName: "videoIdSignal" }] : []));
|
|
2471
|
+
effect(() => { });
|
|
2472
|
+
}
|
|
2473
|
+
//#region methods / right click
|
|
2396
2474
|
onRightClick(event) {
|
|
2397
2475
|
// console.log(event);
|
|
2398
2476
|
event.preventDefault();
|
|
2399
2477
|
event.stopPropagation();
|
|
2400
2478
|
}
|
|
2479
|
+
//#endregion
|
|
2480
|
+
//#region methods / on thumbnail error
|
|
2481
|
+
onThumbnailError(event) {
|
|
2482
|
+
const img = event.target;
|
|
2483
|
+
const fallback = `https://img.youtube.com/vi/${this.videoIdSignal()}/hqdefault.jpg`;
|
|
2484
|
+
if (img.src !== fallback) {
|
|
2485
|
+
img.src = fallback;
|
|
2486
|
+
}
|
|
2487
|
+
}
|
|
2488
|
+
//#endregion
|
|
2489
|
+
//#region methods / clicked
|
|
2401
2490
|
clicked(event) {
|
|
2402
2491
|
event.stopPropagation();
|
|
2403
2492
|
this.allowedToBeDisplayedVideoOveraly.set(false);
|
|
@@ -2407,15 +2496,47 @@ class TaonYoutubeVideoComponent {
|
|
|
2407
2496
|
// this.cdr.detectChanges();
|
|
2408
2497
|
// }, 200);
|
|
2409
2498
|
}
|
|
2499
|
+
//#endregion
|
|
2500
|
+
//#region methods / restart
|
|
2410
2501
|
restart() {
|
|
2411
2502
|
this.postCommand('seekTo', [0, true]); // go to 0 seconds
|
|
2412
2503
|
this.postCommand('playVideo');
|
|
2413
2504
|
}
|
|
2505
|
+
//#endregion
|
|
2506
|
+
//#region on init
|
|
2507
|
+
ngOnInit() {
|
|
2508
|
+
//Called after the constructor, initializing input properties, and the first call to ngOnChanges.
|
|
2509
|
+
//Add 'implements OnInit' to the class.
|
|
2510
|
+
}
|
|
2511
|
+
//#endregion
|
|
2512
|
+
//#region on destroy
|
|
2513
|
+
ngOnDestroy() {
|
|
2514
|
+
this.observer?.disconnect();
|
|
2515
|
+
}
|
|
2516
|
+
//#endregion
|
|
2517
|
+
//#region after view init
|
|
2414
2518
|
async ngAfterViewInit() {
|
|
2519
|
+
// this.observer = new IntersectionObserver(
|
|
2520
|
+
// entries => {
|
|
2521
|
+
// // console.log({ entries });
|
|
2522
|
+
// const entry = entries[0];
|
|
2523
|
+
// if (entry.isIntersecting) {
|
|
2524
|
+
// this.isInViewport.set(true);
|
|
2525
|
+
// // We don't need to watch this component anymore.
|
|
2526
|
+
// this.observer?.disconnect();
|
|
2527
|
+
// }
|
|
2528
|
+
// },
|
|
2529
|
+
// {
|
|
2530
|
+
// root: null,
|
|
2531
|
+
// rootMargin: '150px',
|
|
2532
|
+
// threshold: 0.01,
|
|
2533
|
+
// },
|
|
2534
|
+
// );
|
|
2535
|
+
// this.observer.observe(this.el.nativeElement);
|
|
2415
2536
|
if (this.state !== 'video-preview-private') {
|
|
2416
2537
|
return;
|
|
2417
2538
|
}
|
|
2418
|
-
await loadYoutubeApi();
|
|
2539
|
+
await TaonYouTubeUtils.loadYoutubeApi();
|
|
2419
2540
|
// @ts-ignore
|
|
2420
2541
|
this.player = new window.YT.Player(this.iframeRef.nativeElement, {
|
|
2421
2542
|
videoId: this.videoId,
|
|
@@ -2429,6 +2550,8 @@ class TaonYoutubeVideoComponent {
|
|
|
2429
2550
|
},
|
|
2430
2551
|
});
|
|
2431
2552
|
}
|
|
2553
|
+
//#endregion
|
|
2554
|
+
//#region handle state change
|
|
2432
2555
|
handleStateChange(state) {
|
|
2433
2556
|
// @ts-ignore
|
|
2434
2557
|
// const YT = window.YT;
|
|
@@ -2439,68 +2562,38 @@ class TaonYoutubeVideoComponent {
|
|
|
2439
2562
|
// ) as any;
|
|
2440
2563
|
// console.log('currentVideoState', this.currentVideoState);
|
|
2441
2564
|
}
|
|
2442
|
-
|
|
2443
|
-
|
|
2444
|
-
this.PS = {
|
|
2445
|
-
UNSTARTED: -1,
|
|
2446
|
-
ENDED: 0,
|
|
2447
|
-
PLAYING: 1,
|
|
2448
|
-
PAUSED: 2,
|
|
2449
|
-
BUFFERING: 3,
|
|
2450
|
-
CUED: 5,
|
|
2451
|
-
};
|
|
2452
|
-
this.state = 'preview-picture';
|
|
2453
|
-
this.paddlockClicked = new EventEmitter();
|
|
2454
|
-
this.previewClicked = new EventEmitter();
|
|
2455
|
-
this.cdr = inject(ChangeDetectorRef);
|
|
2456
|
-
this.allowedToBeDisplayedVideoOveraly = signal(true, ...(ngDevMode ? [{ debugName: "allowedToBeDisplayedVideoOveraly" }] : []));
|
|
2457
|
-
this.videoIdSignal = signal('', ...(ngDevMode ? [{ debugName: "videoIdSignal" }] : []));
|
|
2458
|
-
this.previewImage = computed(() => `https://img.youtube.com/vi/${this.videoIdSignal()}/0.jpg`, ...(ngDevMode ? [{ debugName: "previewImage" }] : []));
|
|
2459
|
-
/**
|
|
2460
|
-
* > controls=0 Hides bottom control bar
|
|
2461
|
-
* > modestbranding=1 Reduces YouTube logo
|
|
2462
|
-
* > rel=0 Disables related videos from other channels
|
|
2463
|
-
* > disablekb=1 Disables keyboard controls
|
|
2464
|
-
* > fs=0 Disables fullscreen button
|
|
2465
|
-
* > playsinline=1 Prevents fullscreen auto behavior on iOS
|
|
2466
|
-
*/
|
|
2467
|
-
this.embedUrl = computed(() => this.sanitizer.bypassSecurityTrustResourceUrl(`https://www.youtube.com/embed/${this.videoIdSignal()}?enablejsapi=1` +
|
|
2468
|
-
// (this.state === 'video-preview-private' ? `&controls=0` : '') +
|
|
2469
|
-
(this.state === 'video-preview-private' ? `&modestbranding=1` : '') +
|
|
2470
|
-
(this.state === 'video-preview-private' ? `&rel=0` : '') +
|
|
2471
|
-
// (this.state === 'video-preview-private' ? `&fs=0` : '') +
|
|
2472
|
-
// (this.state === 'video-preview-private' ? `&rel=0` : '') +
|
|
2473
|
-
`&disablekb=1` +
|
|
2474
|
-
`&playsinline=1` +
|
|
2475
|
-
`&origin=${window.location.origin}`), ...(ngDevMode ? [{ debugName: "embedUrl" }] : []));
|
|
2476
|
-
effect(() => { });
|
|
2477
|
-
}
|
|
2565
|
+
//#endregion
|
|
2566
|
+
//#region on ng changes
|
|
2478
2567
|
ngOnChanges() {
|
|
2479
2568
|
this.videoIdSignal.set(this.videoId);
|
|
2480
2569
|
}
|
|
2481
|
-
|
|
2482
|
-
|
|
2483
|
-
}
|
|
2484
|
-
get displayTitle() {
|
|
2485
|
-
return this.title;
|
|
2486
|
-
}
|
|
2570
|
+
//#endregion
|
|
2571
|
+
//#region on lock click
|
|
2487
2572
|
onLockClick(event) {
|
|
2488
2573
|
event.stopPropagation();
|
|
2489
2574
|
this.paddlockClicked.emit();
|
|
2490
2575
|
}
|
|
2576
|
+
//#endregion
|
|
2577
|
+
//#region on preview click
|
|
2491
2578
|
onPreviewClick() {
|
|
2579
|
+
if (this.state === 'preview-picture-locked') {
|
|
2580
|
+
return;
|
|
2581
|
+
}
|
|
2582
|
+
this.videoActivated.set(true);
|
|
2492
2583
|
this.previewClicked.emit();
|
|
2493
2584
|
}
|
|
2494
|
-
|
|
2495
|
-
|
|
2496
|
-
|
|
2497
|
-
|
|
2498
|
-
|
|
2499
|
-
|
|
2500
|
-
|
|
2501
|
-
|
|
2502
|
-
|
|
2503
|
-
|
|
2585
|
+
//#endregion
|
|
2586
|
+
//#region play
|
|
2587
|
+
play() {
|
|
2588
|
+
this.postCommand('playVideo');
|
|
2589
|
+
}
|
|
2590
|
+
//#endregion
|
|
2591
|
+
//#region pause
|
|
2592
|
+
pause() {
|
|
2593
|
+
this.postCommand('pauseVideo');
|
|
2594
|
+
}
|
|
2595
|
+
//#endregion
|
|
2596
|
+
//#region private methods
|
|
2504
2597
|
postCommand(command, args = []) {
|
|
2505
2598
|
const iframe = this.iframeRef?.nativeElement;
|
|
2506
2599
|
if (!iframe)
|
|
@@ -2511,18 +2604,12 @@ class TaonYoutubeVideoComponent {
|
|
|
2511
2604
|
args: args,
|
|
2512
2605
|
}), 'https://www.youtube.com');
|
|
2513
2606
|
}
|
|
2514
|
-
play() {
|
|
2515
|
-
this.postCommand('playVideo');
|
|
2516
|
-
}
|
|
2517
|
-
pause() {
|
|
2518
|
-
this.postCommand('pauseVideo');
|
|
2519
|
-
}
|
|
2520
2607
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonYoutubeVideoComponent, deps: [{ token: i1$1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2521
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.9", type: TaonYoutubeVideoComponent, isStandalone: true, selector: "taon-youtube-video", inputs: { videoId: "videoId", title: "title", height: "height", state: "state" }, outputs: { paddlockClicked: "paddlockClicked", previewClicked: "previewClicked" }, viewQueries: [{ propertyName: "iframeRef", first: true, predicate: ["ytFrame"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"yt-container\"\n [ngClass]=\"state\"\n [ngStyle]=\"containerStyle\">\n <!--
|
|
2608
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.9", type: TaonYoutubeVideoComponent, isStandalone: true, selector: "taon-youtube-video", inputs: { videoId: "videoId", title: "title", height: "height", state: "state" }, outputs: { paddlockClicked: "paddlockClicked", previewClicked: "previewClicked" }, viewQueries: [{ propertyName: "iframeRef", first: true, predicate: ["ytFrame"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"yt-container\"\n [ngClass]=\"state\"\n [ngStyle]=\"containerStyle\">\n <!-- THUMBNAIL -->\n <div\n *ngIf=\"!videoActivated()\"\n class=\"yt-preview\"\n (click)=\"onPreviewClick()\">\n <!-- @if (isInViewport()) { -->\n <img\n class=\"yt-media\"\n [src]=\"previewImage()\"\n [alt]=\"displayTitle || 'YouTube video'\"\n decoding=\"async\"\n draggable=\"false\"\n (error)=\"onThumbnailError($event)\" />\n <!-- } -->\n\n <!-- PLAY -->\n <div\n *ngIf=\"state !== 'preview-picture-locked'\"\n class=\"yt-play-button\">\n <mat-icon>play_arrow</mat-icon>\n </div>\n\n <!-- LOCK -->\n <div\n *ngIf=\"state === 'preview-picture-locked'\"\n class=\"yt-overlay yt-lock\"\n (click)=\"onLockClick($event)\">\n <mat-icon>lock</mat-icon>\n </div>\n </div>\n\n <!-- ACTUAL YOUTUBE PLAYER -->\n <iframe\n #ytFrame\n *ngIf=\"videoActivated()\"\n class=\"yt-media\"\n [src]=\"embedUrl()\"\n frameborder=\"0\"\n allow=\"autoplay; encrypted-media; picture-in-picture; web-share\"\n allowfullscreen>\n </iframe>\n\n <!-- PRIVATE OVERLAY -->\n <div\n *ngIf=\"\n videoActivated() &&\n state === 'video-preview-private' &&\n allowedToBeDisplayedVideoOveraly()\n \"\n class=\"yt-overlay-video\"\n (contextmenu)=\"onRightClick($event)\"\n (dblclick)=\"clicked($event)\"\n (click)=\"clicked($event)\">\n <h1 class=\"text-center\">\n Thanks for buying<br />\n this video\n </h1>\n </div>\n</div>\n\n<div\n class=\"yt-title\"\n *ngIf=\"displayTitle\">\n {{ displayTitle }}\n</div>", styles: [".yt-container{position:relative;overflow:hidden;border-radius:8px;border:1px solid var(--surface-border)}.yt-container:not([style*=height]){aspect-ratio:16/9}.yt-preview{position:absolute;inset:0;cursor:pointer;touch-action:pan-y}.yt-media{width:100%;height:100%;display:block;object-fit:contain;border:0}img.yt-media{pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.yt-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}.yt-play-button{position:absolute;left:50%;top:50%;width:72px;height:52px;transform:translate(-50%,-50%);border-radius:14px;background:#ff0000e6;display:flex;align-items:center;justify-content:center;pointer-events:none}.yt-play-button mat-icon{width:40px;height:40px;font-size:40px;color:#fff}.yt-preview:hover .yt-play-button{transform:translate(-50%,-50%) scale(1.08)}.yt-lock{background:#0000008c}.yt-lock mat-icon{width:60px;height:60px;font-size:56px;color:#fff}.yt-overlay-video{position:absolute;inset:0;z-index:5;display:flex;align-items:center;justify-content:center;background:#c8c8c880}.yt-title{margin-top:.5rem;font-size:.9rem;font-weight:500}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2522
2609
|
}
|
|
2523
2610
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonYoutubeVideoComponent, decorators: [{
|
|
2524
2611
|
type: Component,
|
|
2525
|
-
args: [{ selector: 'taon-youtube-video', standalone: true, imports: [NgIf, NgStyle, MatIconModule, CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"yt-container\"\n [ngClass]=\"state\"\n [ngStyle]=\"containerStyle\">\n <!--
|
|
2612
|
+
args: [{ selector: 'taon-youtube-video', standalone: true, imports: [NgIf, NgStyle, MatIconModule, CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"yt-container\"\n [ngClass]=\"state\"\n [ngStyle]=\"containerStyle\">\n <!-- THUMBNAIL -->\n <div\n *ngIf=\"!videoActivated()\"\n class=\"yt-preview\"\n (click)=\"onPreviewClick()\">\n <!-- @if (isInViewport()) { -->\n <img\n class=\"yt-media\"\n [src]=\"previewImage()\"\n [alt]=\"displayTitle || 'YouTube video'\"\n decoding=\"async\"\n draggable=\"false\"\n (error)=\"onThumbnailError($event)\" />\n <!-- } -->\n\n <!-- PLAY -->\n <div\n *ngIf=\"state !== 'preview-picture-locked'\"\n class=\"yt-play-button\">\n <mat-icon>play_arrow</mat-icon>\n </div>\n\n <!-- LOCK -->\n <div\n *ngIf=\"state === 'preview-picture-locked'\"\n class=\"yt-overlay yt-lock\"\n (click)=\"onLockClick($event)\">\n <mat-icon>lock</mat-icon>\n </div>\n </div>\n\n <!-- ACTUAL YOUTUBE PLAYER -->\n <iframe\n #ytFrame\n *ngIf=\"videoActivated()\"\n class=\"yt-media\"\n [src]=\"embedUrl()\"\n frameborder=\"0\"\n allow=\"autoplay; encrypted-media; picture-in-picture; web-share\"\n allowfullscreen>\n </iframe>\n\n <!-- PRIVATE OVERLAY -->\n <div\n *ngIf=\"\n videoActivated() &&\n state === 'video-preview-private' &&\n allowedToBeDisplayedVideoOveraly()\n \"\n class=\"yt-overlay-video\"\n (contextmenu)=\"onRightClick($event)\"\n (dblclick)=\"clicked($event)\"\n (click)=\"clicked($event)\">\n <h1 class=\"text-center\">\n Thanks for buying<br />\n this video\n </h1>\n </div>\n</div>\n\n<div\n class=\"yt-title\"\n *ngIf=\"displayTitle\">\n {{ displayTitle }}\n</div>", styles: [".yt-container{position:relative;overflow:hidden;border-radius:8px;border:1px solid var(--surface-border)}.yt-container:not([style*=height]){aspect-ratio:16/9}.yt-preview{position:absolute;inset:0;cursor:pointer;touch-action:pan-y}.yt-media{width:100%;height:100%;display:block;object-fit:contain;border:0}img.yt-media{pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.yt-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}.yt-play-button{position:absolute;left:50%;top:50%;width:72px;height:52px;transform:translate(-50%,-50%);border-radius:14px;background:#ff0000e6;display:flex;align-items:center;justify-content:center;pointer-events:none}.yt-play-button mat-icon{width:40px;height:40px;font-size:40px;color:#fff}.yt-preview:hover .yt-play-button{transform:translate(-50%,-50%) scale(1.08)}.yt-lock{background:#0000008c}.yt-lock mat-icon{width:60px;height:60px;font-size:56px;color:#fff}.yt-overlay-video{position:absolute;inset:0;z-index:5;display:flex;align-items:center;justify-content:center;background:#c8c8c880}.yt-title{margin-top:.5rem;font-size:.9rem;font-weight:500}\n"] }]
|
|
2526
2613
|
}], ctorParameters: () => [{ type: i1$1.DomSanitizer }], propDecorators: { videoId: [{
|
|
2527
2614
|
type: Input,
|
|
2528
2615
|
args: [{ required: true }]
|
|
@@ -2541,34 +2628,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImpor
|
|
|
2541
2628
|
args: ['ytFrame']
|
|
2542
2629
|
}] } });
|
|
2543
2630
|
|
|
2544
|
-
var TaonYouTubeUtils;
|
|
2545
|
-
(function (TaonYouTubeUtils) {
|
|
2546
|
-
async function getVidesIdsOfPlaylist(ytplaylistId) {
|
|
2547
|
-
const url = `https://www.youtube.com/playlist?list=${encodeURIComponent(ytplaylistId)}`;
|
|
2548
|
-
const response = await fetch(url, {
|
|
2549
|
-
headers: {
|
|
2550
|
-
'accept-language': 'en-US,en;q=0.9',
|
|
2551
|
-
},
|
|
2552
|
-
});
|
|
2553
|
-
if (!response.ok) {
|
|
2554
|
-
throw new Error(`Failed to fetch playlist page: ${response.status} ${response.statusText}`);
|
|
2555
|
-
}
|
|
2556
|
-
const html = await response.text();
|
|
2557
|
-
const matches = [...html.matchAll(/"videoId":"([a-zA-Z0-9_-]{11})"/g)];
|
|
2558
|
-
const ids = matches.map(match => match[1]);
|
|
2559
|
-
return [...new Set(ids)];
|
|
2560
|
-
}
|
|
2561
|
-
TaonYouTubeUtils.getVidesIdsOfPlaylist = getVidesIdsOfPlaylist;
|
|
2562
|
-
function extractPlaylistId(input) {
|
|
2563
|
-
if (!input.includes('http')) {
|
|
2564
|
-
return input.split('&')[0].trim();
|
|
2565
|
-
}
|
|
2566
|
-
const url = new URL(input);
|
|
2567
|
-
return (url.searchParams.get('list') || '').trim();
|
|
2568
|
-
}
|
|
2569
|
-
TaonYouTubeUtils.extractPlaylistId = extractPlaylistId;
|
|
2570
|
-
})(TaonYouTubeUtils || (TaonYouTubeUtils = {}));
|
|
2571
|
-
|
|
2572
2631
|
;
|
|
2573
2632
|
// THIS FILE IS GENERATED - DO NOT MODIFY
|
|
2574
2633
|
|