@vonage/vwc-media-controller 2.39.0 → 2.40.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vonage/vwc-media-controller",
3
- "version": "2.39.0",
3
+ "version": "2.40.0",
4
4
  "description": "A web component for displaying a simple media playback controller consisting of a play/pause button and a scrub bar",
5
5
  "homepage": "https://github.com/Vonage/vivid/tree/master/components/media-playback-controller#readme",
6
6
  "license": "ISC",
@@ -25,17 +25,17 @@
25
25
  "url": "https://github.com/Vonage/vivid/issues"
26
26
  },
27
27
  "dependencies": {
28
- "@vonage/vvd-core": "2.39.0",
29
- "@vonage/vwc-icon": "2.39.0",
28
+ "@vonage/vvd-core": "2.40.0",
29
+ "@vonage/vwc-icon": "2.40.0",
30
30
  "kefir": "^3.8.7",
31
31
  "lit-element": "^2.4.0",
32
32
  "ramda": "^0.27.1"
33
33
  },
34
34
  "devDependencies": {
35
- "@vonage/vvd-design-tokens": "2.39.0",
36
- "@vonage/vvd-foundation": "2.39.0",
37
- "@vonage/vvd-umbrella": "2.39.0",
35
+ "@vonage/vvd-design-tokens": "2.40.0",
36
+ "@vonage/vvd-foundation": "2.40.0",
37
+ "@vonage/vvd-umbrella": "2.40.0",
38
38
  "typescript": "^4.3.2"
39
39
  },
40
- "gitHead": "3cb926a97da5007058ece4ba7b6c7aa07d06dce5"
40
+ "gitHead": "6b8cae2afaa5f4e80dc8b39875e029f80d1b296c"
41
41
  }
package/vwc-scrub-bar.js CHANGED
@@ -171,7 +171,7 @@ class VWCScrubBar extends HTMLElement {
171
171
  trackBarStream
172
172
  .filter(byType('update_progress_position'))
173
173
  .map(prop('value'))
174
- .onValue(percentage => (trackEl.style.backgroundImage = `linear-gradient(90deg, ${TRACK_ACTIVE_COLOR} 0%, ${TRACK_ACTIVE_COLOR} ${percentage * 100}%, ${TRACK_INACTIVE_COLOR} ${percentage * 100}%, ${TRACK_INACTIVE_COLOR} 100%)`));
174
+ .onValue(percentage => (trackEl.style.backgroundImage = `linear-gradient(90deg, ${TRACK_ACTIVE_COLOR} 0%, ${TRACK_ACTIVE_COLOR} ${(!isNaN(percentage) ? percentage : 0) * 100}%, ${TRACK_INACTIVE_COLOR} ${(!isNaN(percentage) ? percentage : 0) * 100}%, ${TRACK_INACTIVE_COLOR} 100%)`));
175
175
  trackBarStream
176
176
  .filter(byType('update_scrub_state'))
177
177
  .map(prop('value'))
@@ -1 +1 @@
1
- {"version":3,"file":"vwc-scrub-bar.js","sourceRoot":"","sources":["src/vwc-scrub-bar.ts"],"names":[],"mappings":"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","sourcesContent":["// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck\nimport '@vonage/vvd-core';\nimport kefir from 'kefir';\nimport {\n\tpipe, partial, clamp, prop, always, not, identity, path\n} from 'ramda';\nimport { style as vwcScrubBarStyle } from './vwc-scrub-bar.css.js';\n\nconst SIGNAL = Symbol('signal'),\n\tTRACK_KNOB_HORIZONTAL_MARGIN = 5,\n\tTRACK_VERTICAL_RESPONSIVITY_MARGIN = 10,\n\tTRACK_INACTIVE_COLOR = 'var(--disable-scrub, #E1E2E6)',\n\tTRACK_ACTIVE_COLOR = 'var(--disable-scrub, #999)',\n\tKEY_LEFT = 'ArrowLeft',\n\tKEY_RIGHT = 'ArrowRight';\n\nconst byType = typeName => ({ type }) => type === typeName,\n\tcreateTag = function (tagName, tagAttrs = {}, ...children) {\n\t\tconst el = document.createElement(tagName);\n\t\tObject.entries(tagAttrs).forEach(([attributeName, attributeValue]) => el.setAttribute(attributeName, attributeValue));\n\t\tchildren.forEach(child => (typeof child === 'string' ? (el.innerHTML += child) : el.appendChild(child)));\n\t\treturn el;\n\t},\n\tpreventDefault = (e) => {\n\t\te.preventDefault();\n\t\treturn e;\n\t},\n\tsendCustomEventFactory = target => (\n\t\teventType,\n\t\tdetail,\n\t\toptions = { bubbles: true, composed: true }\n\t) => {\n\t\tconst event = new CustomEvent(eventType, { ...options, detail });\n\t\ttarget.dispatchEvent(event);\n\t},\n\taddRectMargin = ({ marginX = 0, marginY = 0 }, {\n\t\tx, y, width, height\n\t}) => ({\n\t\tx: x - marginX,\n\t\ty: y - marginY,\n\t\twidth: width + marginX * 2,\n\t\theight: height + marginY * 2,\n\t}),\n\tisBetween = (value, min, max) => value >= min && value <= max,\n\tisInRect = (\n\t\t{ x: sourceX, y: sourceY },\n\t\t{\n\t\t\tx: rectX, y: rectY, width: rectWidth, height: rectHeight\n\t\t}\n\t) => [\n\t\tisBetween(sourceX, rectX, rectX + rectWidth),\n\t\tisBetween(sourceY, rectY, rectY + rectHeight),\n\t].every(identity);\n\n/**\n * Scrub bar implementation that shows playback progress and enables user-seeking\n *\n * @element vwc-scrub-bar\n *\n * @fires userScrubRequest - Fires while the user modifies the scrubber's knob location.\n * @fires userSkipForwardRequest - Fires when the user requests a skip forward\n * @fires userSkipBackwardsRequest - Fires when the user requests a skip backwards\n */\nclass VWCScrubBar extends HTMLElement {\n\tstatic get observedAttributes() { return ['noseek-button']; }\n\n\tattributeChangedCallback(name, oldValue, newValue) {\n\t\tif (name === 'noseek-button' && oldValue !== newValue) {\n\t\t\tthis.trackEl.querySelector('button')?.style.display = newValue !== null ? 'none' : 'block';\n\t\t}\n\t}\n\tconstructor() {\n\t\tsuper();\n\n\t\t// Local bus for collecting signals from the end-user/custom element api\n\t\tconst\n\t\t\tapiBus = kefir.pool(),\n\t\t\tsendCustomEvent = sendCustomEventFactory(this);\n\n\t\tthis[SIGNAL] = pipe(kefir.constant, apiBus.plug.bind(apiBus));\n\n\t\t// Set component's elemental structure\n\t\tconst rootDoc = this.attachShadow({ mode: 'open' });\n\t\tlet trackEl,\n\t\t\tScrubberKnobEl,\n\t\t\trootEl;\n\n\t\tconst componentContent = (function () {\n\t\t\tconst [style, div, button] = ['style', 'div', 'button'].map(tagName => partial(createTag, [tagName]));\n\t\t\treturn [\n\t\t\t\tstyle({}, vwcScrubBarStyle.cssText),\n\t\t\t\t(rootEl = div({ tabindex: '-1' },\n\t\t\t\t\t(trackEl = div({}, (ScrubberKnobEl = button({ tabindex: '0', 'aria-label': 'Seek' })))))),\n\t\t\t];\n\t\t}());\n\n\t\tconst rafStream = kefir.repeat(() => kefir.fromCallback(requestAnimationFrame)),\n\t\t\tcomponentConnectedStream = apiBus.filter(byType('component_connected')),\n\t\t\tmouseDownStream = kefir.fromEvents(rootDoc, 'mousedown'),\n\t\t\tkeyPressStream = kefir.fromEvents(this, 'keydown'),\n\t\t\ttouchStartStream = kefir\n\t\t\t\t.fromEvents(window, 'touchstart')\n\t\t\t\t.map(preventDefault),\n\t\t\ttouchMoveStream = kefir\n\t\t\t\t.stream(({ emit }) => {\n\t\t\t\t\twindow.addEventListener('touchmove', emit, { passive: false });\n\t\t\t\t\treturn () => window.removeEventListener('touchmove', emit);\n\t\t\t\t})\n\t\t\t\t.map(preventDefault),\n\t\t\ttouchEndStream = kefir.merge(\n\t\t\t\t['touchend', 'touchcancel'].map(eventName => kefir.fromEvents(window, eventName))\n\t\t\t),\n\t\t\t[mouseUpStream, mouseMoveStream, contextMenuStream, windowResizeStream] = [\n\t\t\t\t'mouseup',\n\t\t\t\t'mousemove',\n\t\t\t\t'contextmenu',\n\t\t\t\t'resize',\n\t\t\t].map(eventName => kefir.fromEvents(window, eventName)),\n\t\t\ttrackBarEnabledProperty = componentConnectedStream\n\t\t\t\t.map(() => {\n\t\t\t\t\t// eslint-disable-next-line\n\t\t\t\t\treturn !this.hasAttribute('noseek');\n\t\t\t\t})\n\t\t\t\t.toProperty(() => true);\n\n\t\tconst apiPositionProperty = apiBus\n\t\t\t.filter(byType('set_position'))\n\t\t\t.map(prop('value'))\n\t\t\t.toProperty(always(0));\n\n\t\tconst trackBarStream = kefir\n\t\t\t.combine([trackBarEnabledProperty, componentConnectedStream], identity)\n\t\t\t.flatMapLatest(function (trackEnabled) {\n\t\t\t\tconst userScrubStream = kefir\n\t\t\t\t\t.merge([\n\t\t\t\t\t\ttouchStartStream.map(path(['changedTouches', 0])),\n\t\t\t\t\t\tmouseDownStream,\n\t\t\t\t\t])\n\t\t\t\t\t.map(({ clientX: mouseX, clientY: mouseY, identifier }) => ({\n\t\t\t\t\t\tmouseX,\n\t\t\t\t\t\tmouseY,\n\t\t\t\t\t\tidentifier,\n\t\t\t\t\t\t...(({\n\t\t\t\t\t\t\tx, y, width, height\n\t\t\t\t\t\t}) => ({\n\t\t\t\t\t\t\tx, y, width, height\n\t\t\t\t\t\t}))(\n\t\t\t\t\t\t\ttrackEl.getBoundingClientRect()\n\t\t\t\t\t\t),\n\t\t\t\t\t}))\n\t\t\t\t\t.filter(({ mouseX, mouseY, ...rect }) => isInRect(\n\t\t\t\t\t\t{ x: mouseX, y: mouseY },\n\t\t\t\t\t\taddRectMargin({ marginY: TRACK_VERTICAL_RESPONSIVITY_MARGIN }, rect)\n\t\t\t\t\t))\n\t\t\t\t\t.flatMapLatest(\n\t\t\t\t\t\t({\n\t\t\t\t\t\t\tmouseX,\n\t\t\t\t\t\t\tmouseY,\n\t\t\t\t\t\t\tx: rectX,\n\t\t\t\t\t\t\twidth: rectWidth,\n\t\t\t\t\t\t\tidentifier: touchIdentifier,\n\t\t\t\t\t\t}) => {\n\t\t\t\t\t\t\treturn kefir.concat([\n\t\t\t\t\t\t\t\tkefir.constant({ type: 'start', rectWidth, rectX }),\n\t\t\t\t\t\t\t\tkefir\n\t\t\t\t\t\t\t\t\t.concat([\n\t\t\t\t\t\t\t\t\t\tkefir.constant({ mouseX, mouseY }),\n\t\t\t\t\t\t\t\t\t\tkefir\n\t\t\t\t\t\t\t\t\t\t\t.merge([\n\t\t\t\t\t\t\t\t\t\t\t\tmouseMoveStream,\n\t\t\t\t\t\t\t\t\t\t\t\ttouchMoveStream\n\t\t\t\t\t\t\t\t\t\t\t\t\t.map(({ touches }) => Array.from(touches).find(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t({ identifier: currentIdentifier }) => currentIdentifier === touchIdentifier\n\t\t\t\t\t\t\t\t\t\t\t\t\t))\n\t\t\t\t\t\t\t\t\t\t\t\t\t.filter(Boolean),\n\t\t\t\t\t\t\t\t\t\t\t])\n\t\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line\n\t\t\t\t\t\t\t\t\t\t\t.map(({ clientX: mouseX, clientY: mouseY }) => ({ mouseX, mouseY })),\n\t\t\t\t\t\t\t\t\t])\n\t\t\t\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t\t\t\tpipe(\n\t\t\t\t\t\t\t\t\t\t\tprop('mouseX'),\n\t\t\t\t\t\t\t\t\t\t\tclamp(\n\t\t\t\t\t\t\t\t\t\t\t\trectX + TRACK_KNOB_HORIZONTAL_MARGIN,\n\t\t\t\t\t\t\t\t\t\t\t\trectX + rectWidth - TRACK_KNOB_HORIZONTAL_MARGIN\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\tpos => (pos - (rectX + TRACK_KNOB_HORIZONTAL_MARGIN)) /\n\t\t\t\t\t\t\t\t\t\t\t\t(rectWidth - TRACK_KNOB_HORIZONTAL_MARGIN * 2)\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t.takeUntilBy(\n\t\t\t\t\t\t\t\t\t\tkefir\n\t\t\t\t\t\t\t\t\t\t\t.merge([\n\t\t\t\t\t\t\t\t\t\t\t\tmouseUpStream,\n\t\t\t\t\t\t\t\t\t\t\t\tcontextMenuStream,\n\t\t\t\t\t\t\t\t\t\t\t\ttouchEndStream.filter(({ changedTouches }) => Array.from(changedTouches)\n\t\t\t\t\t\t\t\t\t\t\t\t\t.map(prop('identifier'))\n\t\t\t\t\t\t\t\t\t\t\t\t\t.includes(touchIdentifier)),\n\t\t\t\t\t\t\t\t\t\t\t])\n\t\t\t\t\t\t\t\t\t\t\t.take(1)\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t.map(position => ({ type: 'position_change', position })),\n\t\t\t\t\t\t\t\tkefir.constant({ type: 'end' }),\n\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\n\t\t\t\tconst userScrubInteractionProperty = kefir\n\t\t\t\t\t.merge(\n\t\t\t\t\t\t['start', 'end'].map(eventType => userScrubStream\n\t\t\t\t\t\t\t.filter(byType(eventType))\n\t\t\t\t\t\t\t.map(always(eventType === 'start')))\n\t\t\t\t\t)\n\t\t\t\t\t.skipDuplicates()\n\t\t\t\t\t.toProperty(always(false));\n\n\t\t\t\treturn trackEnabled\n\t\t\t\t\t? kefir\n\t\t\t\t\t\t.merge([\n\t\t\t\t\t\t\tkefir\n\t\t\t\t\t\t\t\t.combine(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tuserScrubInteractionProperty\n\t\t\t\t\t\t\t\t\t\t\t.flatMap((active) => {\n\t\t\t\t\t\t\t\t\t\t\t\treturn active\n\t\t\t\t\t\t\t\t\t\t\t\t\t? userScrubStream\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.filter(byType('position_change'))\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.map(prop('position'))\n\t\t\t\t\t\t\t\t\t\t\t\t\t: apiPositionProperty.filterBy(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tuserScrubInteractionProperty.map(not)\n\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\t\t.skipDuplicates(),\n\t\t\t\t\t\t\t\t\t\twindowResizeStream.toProperty(always(0)),\n\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\tval => val\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t.flatMapLatest(value => rafStream.take(1).map(always(value)))\n\t\t\t\t\t\t\t\t.map(position => ({\n\t\t\t\t\t\t\t\t\ttype: 'update_knob_position',\n\t\t\t\t\t\t\t\t\tvalue: position,\n\t\t\t\t\t\t\t\t})),\n\t\t\t\t\t\t\tapiPositionProperty.skipDuplicates().map(percentage => ({\n\t\t\t\t\t\t\t\ttype: 'update_progress_position',\n\t\t\t\t\t\t\t\tvalue: percentage,\n\t\t\t\t\t\t\t})),\n\t\t\t\t\t\t\tuserScrubInteractionProperty.map(state => ({\n\t\t\t\t\t\t\t\ttype: 'update_scrub_state',\n\t\t\t\t\t\t\t\tvalue: state,\n\t\t\t\t\t\t\t})),\n\t\t\t\t\t\t\tuserScrubStream.filter(byType('position_change')).map(\n\t\t\t\t\t\t\t\tpipe(prop('position'), position => ({\n\t\t\t\t\t\t\t\t\ttype: 'update_user_scrub_request',\n\t\t\t\t\t\t\t\t\tvalue: position,\n\t\t\t\t\t\t\t\t}))\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t])\n\t\t\t\t\t\t.takeUntilBy(apiBus.filter(byType('component_disconnected')).take(1))\n\t\t\t\t\t: kefir.constant({ type: 'update_scrub_state', value: false });\n\t\t\t});\n\n\t\t// Draw component internals\n\t\tcomponentConnectedStream.take(1).onValue(() => {\n\t\t\tcomponentContent.forEach(el => rootDoc.appendChild(el));\n\t\t});\n\n\t\ttrackBarEnabledProperty.onValue(\n\t\t\tenabled => (trackEl.style.display = enabled ? 'block' : 'none')\n\t\t);\n\n\t\t// Update knob position\n\t\ttrackBarStream\n\t\t\t.filter(byType('update_knob_position'))\n\t\t\t.map(prop('value'))\n\t\t\t.onValue((position) => {\n\t\t\t\tconst { width: trackWidth } = trackEl.getBoundingClientRect();\n\t\t\t\tScrubberKnobEl.style.transform = `translate(-50%, -50%) translateX(${\n\t\t\t\t\tTRACK_KNOB_HORIZONTAL_MARGIN +\n\t\t\t\t\tposition * (trackWidth - TRACK_KNOB_HORIZONTAL_MARGIN * 2)\n\t\t\t\t}px)`;\n\t\t\t});\n\n\t\ttrackBarStream\n\t\t\t.filter(byType('update_progress_position'))\n\t\t\t.map(prop('value'))\n\t\t\t.onValue(\n\t\t\t\tpercentage => (trackEl.style.backgroundImage = `linear-gradient(90deg, ${TRACK_ACTIVE_COLOR} 0%, ${TRACK_ACTIVE_COLOR} ${\n\t\t\t\t\tpercentage * 100\n\t\t\t\t}%, ${TRACK_INACTIVE_COLOR} ${\n\t\t\t\t\tpercentage * 100\n\t\t\t\t}%, ${TRACK_INACTIVE_COLOR} 100%)`)\n\t\t\t);\n\n\t\ttrackBarStream\n\t\t\t.filter(byType('update_scrub_state'))\n\t\t\t.map(prop('value'))\n\t\t\t.onValue(scrub => rootEl.classList.toggle('scrub', scrub));\n\n\t\t// Send user scrub event\n\t\ttrackBarStream\n\t\t\t.filter(byType('update_user_scrub_request'))\n\t\t\t.map(prop('value'))\n\t\t\t.onValue(partial(sendCustomEvent, ['userScrubRequest']));\n\n\t\t// Send user skip events\n\t\tkeyPressStream\n\t\t\t.map(prop('key'))\n\t\t\t.filter(keyCode => [KEY_LEFT, KEY_RIGHT].includes(keyCode))\n\t\t\t.onValue((keyCode) => {\n\t\t\t\tsendCustomEvent(({\n\t\t\t\t\t[KEY_LEFT]: 'userSkipBackwardsRequest',\n\t\t\t\t\t[KEY_RIGHT]: 'userSkipForwardRequest'\n\t\t\t\t})[keyCode]);\n\t\t\t});\n\n\t\tthis.trackEl = trackEl;\n\t}\n\n\t/**\n\t * Sets the scrubber's position\n\t * @param {number} position - The relative position of the scrubber (a value between 0-1).\n\t **/\n\tsetPosition(position: number): void {\n\t\tthis[SIGNAL]({ type: 'set_position', value: position });\n\t}\n\n\tconnectedCallback(): void {\n\t\tthis[SIGNAL]({ type: 'component_connected' });\n\t}\n\n\tdisconnectedCallback(): void {\n\t\tthis[SIGNAL]({ type: 'component_disconnected' });\n\t}\n}\n\nexport { VWCScrubBar };\ncustomElements.define('vwc-scrub-bar', VWCScrubBar);\n"]}
1
+ {"version":3,"file":"vwc-scrub-bar.js","sourceRoot":"","sources":["src/vwc-scrub-bar.ts"],"names":[],"mappings":"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","sourcesContent":["// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck\nimport '@vonage/vvd-core';\nimport kefir from 'kefir';\nimport {\n\tpipe, partial, clamp, prop, always, not, identity, path\n} from 'ramda';\nimport { style as vwcScrubBarStyle } from './vwc-scrub-bar.css.js';\n\nconst SIGNAL = Symbol('signal'),\n\tTRACK_KNOB_HORIZONTAL_MARGIN = 5,\n\tTRACK_VERTICAL_RESPONSIVITY_MARGIN = 10,\n\tTRACK_INACTIVE_COLOR = 'var(--disable-scrub, #E1E2E6)',\n\tTRACK_ACTIVE_COLOR = 'var(--disable-scrub, #999)',\n\tKEY_LEFT = 'ArrowLeft',\n\tKEY_RIGHT = 'ArrowRight';\n\nconst byType = typeName => ({ type }) => type === typeName,\n\tcreateTag = function (tagName, tagAttrs = {}, ...children) {\n\t\tconst el = document.createElement(tagName);\n\t\tObject.entries(tagAttrs).forEach(([attributeName, attributeValue]) => el.setAttribute(attributeName, attributeValue));\n\t\tchildren.forEach(child => (typeof child === 'string' ? (el.innerHTML += child) : el.appendChild(child)));\n\t\treturn el;\n\t},\n\tpreventDefault = (e) => {\n\t\te.preventDefault();\n\t\treturn e;\n\t},\n\tsendCustomEventFactory = target => (\n\t\teventType,\n\t\tdetail,\n\t\toptions = { bubbles: true, composed: true }\n\t) => {\n\t\tconst event = new CustomEvent(eventType, { ...options, detail });\n\t\ttarget.dispatchEvent(event);\n\t},\n\taddRectMargin = ({ marginX = 0, marginY = 0 }, {\n\t\tx, y, width, height\n\t}) => ({\n\t\tx: x - marginX,\n\t\ty: y - marginY,\n\t\twidth: width + marginX * 2,\n\t\theight: height + marginY * 2,\n\t}),\n\tisBetween = (value, min, max) => value >= min && value <= max,\n\tisInRect = (\n\t\t{ x: sourceX, y: sourceY },\n\t\t{\n\t\t\tx: rectX, y: rectY, width: rectWidth, height: rectHeight\n\t\t}\n\t) => [\n\t\tisBetween(sourceX, rectX, rectX + rectWidth),\n\t\tisBetween(sourceY, rectY, rectY + rectHeight),\n\t].every(identity);\n\n/**\n * Scrub bar implementation that shows playback progress and enables user-seeking\n *\n * @element vwc-scrub-bar\n *\n * @fires userScrubRequest - Fires while the user modifies the scrubber's knob location.\n * @fires userSkipForwardRequest - Fires when the user requests a skip forward\n * @fires userSkipBackwardsRequest - Fires when the user requests a skip backwards\n */\nclass VWCScrubBar extends HTMLElement {\n\tstatic get observedAttributes() { return ['noseek-button']; }\n\n\tattributeChangedCallback(name, oldValue, newValue) {\n\t\tif (name === 'noseek-button' && oldValue !== newValue) {\n\t\t\tthis.trackEl.querySelector('button')?.style.display = newValue !== null ? 'none' : 'block';\n\t\t}\n\t}\n\tconstructor() {\n\t\tsuper();\n\n\t\t// Local bus for collecting signals from the end-user/custom element api\n\t\tconst\n\t\t\tapiBus = kefir.pool(),\n\t\t\tsendCustomEvent = sendCustomEventFactory(this);\n\n\t\tthis[SIGNAL] = pipe(kefir.constant, apiBus.plug.bind(apiBus));\n\n\t\t// Set component's elemental structure\n\t\tconst rootDoc = this.attachShadow({ mode: 'open' });\n\t\tlet trackEl,\n\t\t\tScrubberKnobEl,\n\t\t\trootEl;\n\n\t\tconst componentContent = (function () {\n\t\t\tconst [style, div, button] = ['style', 'div', 'button'].map(tagName => partial(createTag, [tagName]));\n\t\t\treturn [\n\t\t\t\tstyle({}, vwcScrubBarStyle.cssText),\n\t\t\t\t(rootEl = div({ tabindex: '-1' },\n\t\t\t\t\t(trackEl = div({}, (ScrubberKnobEl = button({ tabindex: '0', 'aria-label': 'Seek' })))))),\n\t\t\t];\n\t\t}());\n\n\t\tconst rafStream = kefir.repeat(() => kefir.fromCallback(requestAnimationFrame)),\n\t\t\tcomponentConnectedStream = apiBus.filter(byType('component_connected')),\n\t\t\tmouseDownStream = kefir.fromEvents(rootDoc, 'mousedown'),\n\t\t\tkeyPressStream = kefir.fromEvents(this, 'keydown'),\n\t\t\ttouchStartStream = kefir\n\t\t\t\t.fromEvents(window, 'touchstart')\n\t\t\t\t.map(preventDefault),\n\t\t\ttouchMoveStream = kefir\n\t\t\t\t.stream(({ emit }) => {\n\t\t\t\t\twindow.addEventListener('touchmove', emit, { passive: false });\n\t\t\t\t\treturn () => window.removeEventListener('touchmove', emit);\n\t\t\t\t})\n\t\t\t\t.map(preventDefault),\n\t\t\ttouchEndStream = kefir.merge(\n\t\t\t\t['touchend', 'touchcancel'].map(eventName => kefir.fromEvents(window, eventName))\n\t\t\t),\n\t\t\t[mouseUpStream, mouseMoveStream, contextMenuStream, windowResizeStream] = [\n\t\t\t\t'mouseup',\n\t\t\t\t'mousemove',\n\t\t\t\t'contextmenu',\n\t\t\t\t'resize',\n\t\t\t].map(eventName => kefir.fromEvents(window, eventName)),\n\t\t\ttrackBarEnabledProperty = componentConnectedStream\n\t\t\t\t.map(() => {\n\t\t\t\t\t// eslint-disable-next-line\n\t\t\t\t\treturn !this.hasAttribute('noseek');\n\t\t\t\t})\n\t\t\t\t.toProperty(() => true);\n\n\t\tconst apiPositionProperty = apiBus\n\t\t\t.filter(byType('set_position'))\n\t\t\t.map(prop('value'))\n\t\t\t.toProperty(always(0));\n\n\t\tconst trackBarStream = kefir\n\t\t\t.combine([trackBarEnabledProperty, componentConnectedStream], identity)\n\t\t\t.flatMapLatest(function (trackEnabled) {\n\t\t\t\tconst userScrubStream = kefir\n\t\t\t\t\t.merge([\n\t\t\t\t\t\ttouchStartStream.map(path(['changedTouches', 0])),\n\t\t\t\t\t\tmouseDownStream,\n\t\t\t\t\t])\n\t\t\t\t\t.map(({ clientX: mouseX, clientY: mouseY, identifier }) => ({\n\t\t\t\t\t\tmouseX,\n\t\t\t\t\t\tmouseY,\n\t\t\t\t\t\tidentifier,\n\t\t\t\t\t\t...(({\n\t\t\t\t\t\t\tx, y, width, height\n\t\t\t\t\t\t}) => ({\n\t\t\t\t\t\t\tx, y, width, height\n\t\t\t\t\t\t}))(\n\t\t\t\t\t\t\ttrackEl.getBoundingClientRect()\n\t\t\t\t\t\t),\n\t\t\t\t\t}))\n\t\t\t\t\t.filter(({ mouseX, mouseY, ...rect }) => isInRect(\n\t\t\t\t\t\t{ x: mouseX, y: mouseY },\n\t\t\t\t\t\taddRectMargin({ marginY: TRACK_VERTICAL_RESPONSIVITY_MARGIN }, rect)\n\t\t\t\t\t))\n\t\t\t\t\t.flatMapLatest(\n\t\t\t\t\t\t({\n\t\t\t\t\t\t\tmouseX,\n\t\t\t\t\t\t\tmouseY,\n\t\t\t\t\t\t\tx: rectX,\n\t\t\t\t\t\t\twidth: rectWidth,\n\t\t\t\t\t\t\tidentifier: touchIdentifier,\n\t\t\t\t\t\t}) => {\n\t\t\t\t\t\t\treturn kefir.concat([\n\t\t\t\t\t\t\t\tkefir.constant({ type: 'start', rectWidth, rectX }),\n\t\t\t\t\t\t\t\tkefir\n\t\t\t\t\t\t\t\t\t.concat([\n\t\t\t\t\t\t\t\t\t\tkefir.constant({ mouseX, mouseY }),\n\t\t\t\t\t\t\t\t\t\tkefir\n\t\t\t\t\t\t\t\t\t\t\t.merge([\n\t\t\t\t\t\t\t\t\t\t\t\tmouseMoveStream,\n\t\t\t\t\t\t\t\t\t\t\t\ttouchMoveStream\n\t\t\t\t\t\t\t\t\t\t\t\t\t.map(({ touches }) => Array.from(touches).find(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t({ identifier: currentIdentifier }) => currentIdentifier === touchIdentifier\n\t\t\t\t\t\t\t\t\t\t\t\t\t))\n\t\t\t\t\t\t\t\t\t\t\t\t\t.filter(Boolean),\n\t\t\t\t\t\t\t\t\t\t\t])\n\t\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line\n\t\t\t\t\t\t\t\t\t\t\t.map(({ clientX: mouseX, clientY: mouseY }) => ({ mouseX, mouseY })),\n\t\t\t\t\t\t\t\t\t])\n\t\t\t\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t\t\t\tpipe(\n\t\t\t\t\t\t\t\t\t\t\tprop('mouseX'),\n\t\t\t\t\t\t\t\t\t\t\tclamp(\n\t\t\t\t\t\t\t\t\t\t\t\trectX + TRACK_KNOB_HORIZONTAL_MARGIN,\n\t\t\t\t\t\t\t\t\t\t\t\trectX + rectWidth - TRACK_KNOB_HORIZONTAL_MARGIN\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\tpos => (pos - (rectX + TRACK_KNOB_HORIZONTAL_MARGIN)) /\n\t\t\t\t\t\t\t\t\t\t\t\t(rectWidth - TRACK_KNOB_HORIZONTAL_MARGIN * 2)\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t.takeUntilBy(\n\t\t\t\t\t\t\t\t\t\tkefir\n\t\t\t\t\t\t\t\t\t\t\t.merge([\n\t\t\t\t\t\t\t\t\t\t\t\tmouseUpStream,\n\t\t\t\t\t\t\t\t\t\t\t\tcontextMenuStream,\n\t\t\t\t\t\t\t\t\t\t\t\ttouchEndStream.filter(({ changedTouches }) => Array.from(changedTouches)\n\t\t\t\t\t\t\t\t\t\t\t\t\t.map(prop('identifier'))\n\t\t\t\t\t\t\t\t\t\t\t\t\t.includes(touchIdentifier)),\n\t\t\t\t\t\t\t\t\t\t\t])\n\t\t\t\t\t\t\t\t\t\t\t.take(1)\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t.map(position => ({ type: 'position_change', position })),\n\t\t\t\t\t\t\t\tkefir.constant({ type: 'end' }),\n\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\n\t\t\t\tconst userScrubInteractionProperty = kefir\n\t\t\t\t\t.merge(\n\t\t\t\t\t\t['start', 'end'].map(eventType => userScrubStream\n\t\t\t\t\t\t\t.filter(byType(eventType))\n\t\t\t\t\t\t\t.map(always(eventType === 'start')))\n\t\t\t\t\t)\n\t\t\t\t\t.skipDuplicates()\n\t\t\t\t\t.toProperty(always(false));\n\n\t\t\t\treturn trackEnabled\n\t\t\t\t\t? kefir\n\t\t\t\t\t\t.merge([\n\t\t\t\t\t\t\tkefir\n\t\t\t\t\t\t\t\t.combine(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tuserScrubInteractionProperty\n\t\t\t\t\t\t\t\t\t\t\t.flatMap((active) => {\n\t\t\t\t\t\t\t\t\t\t\t\treturn active\n\t\t\t\t\t\t\t\t\t\t\t\t\t? userScrubStream\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.filter(byType('position_change'))\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.map(prop('position'))\n\t\t\t\t\t\t\t\t\t\t\t\t\t: apiPositionProperty.filterBy(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tuserScrubInteractionProperty.map(not)\n\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\t\t.skipDuplicates(),\n\t\t\t\t\t\t\t\t\t\twindowResizeStream.toProperty(always(0)),\n\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\tval => val\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t.flatMapLatest(value => rafStream.take(1).map(always(value)))\n\t\t\t\t\t\t\t\t.map(position => ({\n\t\t\t\t\t\t\t\t\ttype: 'update_knob_position',\n\t\t\t\t\t\t\t\t\tvalue: position,\n\t\t\t\t\t\t\t\t})),\n\t\t\t\t\t\t\tapiPositionProperty.skipDuplicates().map(percentage => ({\n\t\t\t\t\t\t\t\ttype: 'update_progress_position',\n\t\t\t\t\t\t\t\tvalue: percentage,\n\t\t\t\t\t\t\t})),\n\t\t\t\t\t\t\tuserScrubInteractionProperty.map(state => ({\n\t\t\t\t\t\t\t\ttype: 'update_scrub_state',\n\t\t\t\t\t\t\t\tvalue: state,\n\t\t\t\t\t\t\t})),\n\t\t\t\t\t\t\tuserScrubStream.filter(byType('position_change')).map(\n\t\t\t\t\t\t\t\tpipe(prop('position'), position => ({\n\t\t\t\t\t\t\t\t\ttype: 'update_user_scrub_request',\n\t\t\t\t\t\t\t\t\tvalue: position,\n\t\t\t\t\t\t\t\t}))\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t])\n\t\t\t\t\t\t.takeUntilBy(apiBus.filter(byType('component_disconnected')).take(1))\n\t\t\t\t\t: kefir.constant({ type: 'update_scrub_state', value: false });\n\t\t\t});\n\n\t\t// Draw component internals\n\t\tcomponentConnectedStream.take(1).onValue(() => {\n\t\t\tcomponentContent.forEach(el => rootDoc.appendChild(el));\n\t\t});\n\n\t\ttrackBarEnabledProperty.onValue(\n\t\t\tenabled => (trackEl.style.display = enabled ? 'block' : 'none')\n\t\t);\n\n\t\t// Update knob position\n\t\ttrackBarStream\n\t\t\t.filter(byType('update_knob_position'))\n\t\t\t.map(prop('value'))\n\t\t\t.onValue((position) => {\n\t\t\t\tconst { width: trackWidth } = trackEl.getBoundingClientRect();\n\t\t\t\tScrubberKnobEl.style.transform = `translate(-50%, -50%) translateX(${\n\t\t\t\t\tTRACK_KNOB_HORIZONTAL_MARGIN +\n\t\t\t\t\tposition * (trackWidth - TRACK_KNOB_HORIZONTAL_MARGIN * 2)\n\t\t\t\t}px)`;\n\t\t\t});\n\n\t\ttrackBarStream\n\t\t\t.filter(byType('update_progress_position'))\n\t\t\t.map(prop('value'))\n\t\t\t.onValue(\n\t\t\t\tpercentage => (trackEl.style.backgroundImage = `linear-gradient(90deg, ${TRACK_ACTIVE_COLOR} 0%, ${TRACK_ACTIVE_COLOR} ${\n\t\t\t\t\t(!isNaN(percentage) ? percentage : 0) * 100\n\t\t\t\t}%, ${TRACK_INACTIVE_COLOR} ${\n\t\t\t\t\t(!isNaN(percentage) ? percentage : 0) * 100\n\t\t\t\t}%, ${TRACK_INACTIVE_COLOR} 100%)`)\n\t\t\t);\n\n\t\ttrackBarStream\n\t\t\t.filter(byType('update_scrub_state'))\n\t\t\t.map(prop('value'))\n\t\t\t.onValue(scrub => rootEl.classList.toggle('scrub', scrub));\n\n\t\t// Send user scrub event\n\t\ttrackBarStream\n\t\t\t.filter(byType('update_user_scrub_request'))\n\t\t\t.map(prop('value'))\n\t\t\t.onValue(partial(sendCustomEvent, ['userScrubRequest']));\n\n\t\t// Send user skip events\n\t\tkeyPressStream\n\t\t\t.map(prop('key'))\n\t\t\t.filter(keyCode => [KEY_LEFT, KEY_RIGHT].includes(keyCode))\n\t\t\t.onValue((keyCode) => {\n\t\t\t\tsendCustomEvent(({\n\t\t\t\t\t[KEY_LEFT]: 'userSkipBackwardsRequest',\n\t\t\t\t\t[KEY_RIGHT]: 'userSkipForwardRequest'\n\t\t\t\t})[keyCode]);\n\t\t\t});\n\n\t\tthis.trackEl = trackEl;\n\t}\n\n\t/**\n\t * Sets the scrubber's position\n\t * @param {number} position - The relative position of the scrubber (a value between 0-1).\n\t **/\n\tsetPosition(position: number): void {\n\t\tthis[SIGNAL]({ type: 'set_position', value: position });\n\t}\n\n\tconnectedCallback(): void {\n\t\tthis[SIGNAL]({ type: 'component_connected' });\n\t}\n\n\tdisconnectedCallback(): void {\n\t\tthis[SIGNAL]({ type: 'component_disconnected' });\n\t}\n}\n\nexport { VWCScrubBar };\ncustomElements.define('vwc-scrub-bar', VWCScrubBar);\n"]}