@mattebox/player-preferences 0.0.0 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +43 -2
  3. package/dist/cdn/mattebox-player-preferences.min.js +1 -0
  4. package/dist/component.d.ts +31 -0
  5. package/dist/component.d.ts.map +1 -0
  6. package/dist/component.js +49 -0
  7. package/dist/component.js.map +1 -0
  8. package/dist/element.d.ts +39 -0
  9. package/dist/element.d.ts.map +1 -0
  10. package/dist/element.js +261 -0
  11. package/dist/element.js.map +1 -0
  12. package/dist/es2015/_virtual/_@oxc-project_runtime@0.155.0/helpers/esm/defineProperty.js +11 -0
  13. package/dist/es2015/_virtual/_@oxc-project_runtime@0.155.0/helpers/esm/objectSpread2.js +24 -0
  14. package/dist/es2015/_virtual/_@oxc-project_runtime@0.155.0/helpers/esm/toPrimitive.js +13 -0
  15. package/dist/es2015/_virtual/_@oxc-project_runtime@0.155.0/helpers/esm/toPropertyKey.js +8 -0
  16. package/dist/es2015/_virtual/_@oxc-project_runtime@0.155.0/helpers/esm/typeof.js +10 -0
  17. package/dist/es2015/component.js +43 -0
  18. package/dist/es2015/element.js +223 -0
  19. package/dist/es2015/host.js +18 -0
  20. package/dist/es2015/index.js +18 -0
  21. package/dist/es2015/store.js +70 -0
  22. package/dist/es2015/tracks.js +45 -0
  23. package/dist/host.d.ts +14 -0
  24. package/dist/host.d.ts.map +1 -0
  25. package/dist/host.js +19 -0
  26. package/dist/host.js.map +1 -0
  27. package/dist/index.d.ts +21 -0
  28. package/dist/index.d.ts.map +1 -0
  29. package/dist/index.js +19 -0
  30. package/dist/index.js.map +1 -0
  31. package/dist/store.d.ts +62 -0
  32. package/dist/store.d.ts.map +1 -0
  33. package/dist/store.js +89 -0
  34. package/dist/store.js.map +1 -0
  35. package/dist/tracks.d.ts +21 -0
  36. package/dist/tracks.d.ts.map +1 -0
  37. package/dist/tracks.js +47 -0
  38. package/dist/tracks.js.map +1 -0
  39. package/package.json +48 -6
package/dist/tracks.js ADDED
@@ -0,0 +1,47 @@
1
+ import { isAudioDescription, isEnhancedSpeech, isSdh } from 'mattebox';
2
+ /** The kinds a viewer keeps across languages. */
3
+ const ACCESS = ['description', 'enhanced-speech'];
4
+ /** The primary language subtag, so `de-CH` and `de` are the same language (RFC 5646 §2.2.1). */
5
+ function primary(tag) {
6
+ return tag.toLowerCase().split('-')[0];
7
+ }
8
+ export function score(track, wanted) {
9
+ const language = wanted.language !== '' && primary(track.language) === primary(wanted.language);
10
+ const kind = track.kind === wanted.kind;
11
+ if (language)
12
+ return kind ? 3 : 2;
13
+ return kind && ACCESS.includes(wanted.kind) ? 1 : 0;
14
+ }
15
+ /** The index of the best match for `wanted`, or -1 when none scores. `current` wins a tie. */
16
+ export function best(tracks, wanted, current = -1) {
17
+ let found = -1;
18
+ let top = 0;
19
+ tracks.forEach((track, index) => {
20
+ const points = score(track, wanted);
21
+ if (points > top || (points === top && points > 0 && index === current)) {
22
+ found = index;
23
+ top = points;
24
+ }
25
+ });
26
+ return found;
27
+ }
28
+ /** An engine track as a choice, its kind from the manifest's standard signals. */
29
+ export function engineChoice(track) {
30
+ const kind = track.contentType === 'text'
31
+ ? isSdh(track)
32
+ ? 'captions'
33
+ : 'subtitles'
34
+ : isAudioDescription(track)
35
+ ? 'description'
36
+ : isEnhancedSpeech(track)
37
+ ? 'enhanced-speech'
38
+ : 'main';
39
+ return { language: track.lang ?? '', kind };
40
+ }
41
+ /** A native `AudioTrack` or `TextTrack` as a choice, from HTML's kinds. */
42
+ export function nativeChoice(track) {
43
+ // `main-desc` is a main track with the description mixed in; an empty kind is a plain one.
44
+ const kind = track.kind === 'main-desc' ? 'description' : track.kind || 'main';
45
+ return { language: track.language, kind };
46
+ }
47
+ //# sourceMappingURL=tracks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracks.js","sourceRoot":"","sources":["../src/tracks.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAGvE,iDAAiD;AACjD,MAAM,MAAM,GAAG,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;AAElD,gGAAgG;AAChG,SAAS,OAAO,CAAC,GAAW;IAC1B,OAAO,GAAG,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAW,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,KAAkB,EAAE,MAAmB;IAC3D,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,KAAK,EAAE,IAAI,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAChG,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC;IACxC,IAAI,QAAQ;QAAE,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,OAAO,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtD,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,IAAI,CAAC,MAA8B,EAAE,MAAmB,EAAE,OAAO,GAAG,CAAC,CAAC;IACpF,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;IACf,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC9B,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACpC,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,KAAK,GAAG,IAAI,MAAM,GAAG,CAAC,IAAI,KAAK,KAAK,OAAO,CAAC,EAAE,CAAC;YACxE,KAAK,GAAG,KAAK,CAAC;YACd,GAAG,GAAG,MAAM,CAAC;QACf,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,YAAY,CAAC,KAAY;IACvC,MAAM,IAAI,GACR,KAAK,CAAC,WAAW,KAAK,MAAM;QAC1B,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;YACZ,CAAC,CAAC,UAAU;YACZ,CAAC,CAAC,WAAW;QACf,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC;YACzB,CAAC,CAAC,aAAa;YACf,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC;gBACvB,CAAC,CAAC,iBAAiB;gBACnB,CAAC,CAAC,MAAM,CAAC;IACjB,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC;AAC9C,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,YAAY,CAAC,KAG5B;IACC,2FAA2F;IAC3F,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC;IAC/E,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC5C,CAAC"}
package/package.json CHANGED
@@ -1,16 +1,58 @@
1
1
  {
2
2
  "name": "@mattebox/player-preferences",
3
- "version": "0.0.0",
4
- "description": "Provisional release that reserves the name. The first real release comes from GitHub Actions.",
3
+ "version": "0.1.0",
4
+ "description": "<mbx-preferences> and a store for the viewer's preferences in <mattebox-player>: tracks, volume, rate, quality and the subtitle look, kept across programmes and visits.",
5
5
  "author": "Josep Boix Requesens",
6
- "license": "MIT",
7
6
  "repository": {
8
7
  "type": "git",
9
8
  "url": "git+https://github.com/jboix/mattebox-player.git",
10
9
  "directory": "packages/preferences"
11
10
  },
12
- "files": ["README.md"],
13
- "publishConfig": {
14
- "access": "public"
11
+ "homepage": "https://github.com/jboix/mattebox-player#readme",
12
+ "bugs": {
13
+ "url": "https://github.com/jboix/mattebox-player/issues"
14
+ },
15
+ "keywords": [
16
+ "mattebox",
17
+ "player",
18
+ "custom-element",
19
+ "preferences",
20
+ "localstorage",
21
+ "accessibility"
22
+ ],
23
+ "license": "MIT",
24
+ "type": "module",
25
+ "sideEffects": true,
26
+ "engines": {
27
+ "node": ">=20.19"
28
+ },
29
+ "main": "./dist/es2015/index.js",
30
+ "types": "./dist/index.d.ts",
31
+ "exports": {
32
+ ".": {
33
+ "types": "./dist/index.d.ts",
34
+ "modern": "./dist/index.js",
35
+ "default": "./dist/es2015/index.js"
36
+ },
37
+ "./package.json": "./package.json"
38
+ },
39
+ "files": [
40
+ "dist"
41
+ ],
42
+ "scripts": {
43
+ "clean": "rm -rf dist",
44
+ "build": "npm run clean && npm run build:modern && npm run build:es2015 && npm run build:cdn",
45
+ "build:modern": "tsc -p tsconfig.build.json",
46
+ "build:es2015": "rolldown -c rolldown.dist.config.mjs",
47
+ "build:cdn": "rolldown -c rolldown.cdn.config.mjs",
48
+ "check:package": "publint && attw --pack . --format table --no-emoji",
49
+ "release:ci": "semantic-release"
50
+ },
51
+ "peerDependencies": {
52
+ "@mattebox/player": ">=0.12.0",
53
+ "mattebox": "^0.16.2"
54
+ },
55
+ "devDependencies": {
56
+ "@mattebox/player-core": "^0.8.0"
15
57
  }
16
58
  }