Built for the Produce department ·25% shrink reduction3% sales lift7% turn improvement
Produce, perfected.
AI built specifically for produce, accounting for ripeness curves, weather, weekly ad lift, and holiday spikes. Cut shrink 25%. Lift sales 3%. Already running at 12,500+ fresh departments.
+Three weeks to first store. Twelve to full chain.
+3%
Sales increase
+25%
Shrink reduction
80%
Stockout reduction
+20%
Labor efficiency
+7%
Faster inventory turns
+94%
Adherence rate
Meet the Produce engine.
Purpose-built for produce, Afresh goes beyond traditional demand forecasting and perpetual inventory. It models ripening curves, weather impact, weekly ad lift, and holiday spikes to drive optimal decisions in every department, every store, every day.
"})},o})(t.default);t.default.registerComponent("TimeDivider",o),n.default=o,e.exports=n.default},{"../../component.js":64}],91:[function(t,e,n){function o(t){return t&&t.__esModule?t:{default:t}}n.__esModule=!0;var r=o(t("../../slider/slider.js")),i=o(t("../../component.js")),s=(t=>{if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e})(t("../../utils/fn.js")),t=(o(t("./volume-level.js")),(n=>{var t=o,e=n;if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);function o(t,e){if(!(this instanceof o))throw new TypeError("Cannot call a class as a function");n.call(this,t,e),this.on(t,"volumechange",this.updateARIAAttributes),t.ready(s.bind(this,this.updateARIAAttributes))}return t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e),o.prototype.createEl=function(){return n.prototype.createEl.call(this,"div",{className:"vjs-volume-bar vjs-slider-bar"},{"aria-label":"volume level"})},o.prototype.handleMouseMove=function(t){this.player_.muted()&&this.player_.muted(!1),this.player_.volume(this.calculateDistance(t))},o.prototype.getPercent=function(){return this.player_.muted()?0:this.player_.volume()},o.prototype.stepForward=function(){this.player_.volume(this.player_.volume()+.1)},o.prototype.stepBack=function(){this.player_.volume(this.player_.volume()-.1)},o.prototype.updateARIAAttributes=function(){var t=(100*this.player_.volume()).toFixed(2);this.el_.setAttribute("aria-valuenow",t),this.el_.setAttribute("aria-valuetext",t+"%")},o})(r.default));t.prototype.options_={children:["volumeLevel"],barName:"volumeLevel"},t.prototype.playerEvent="volumechange",i.default.registerComponent("VolumeBar",t),n.default=t,e.exports=n.default},{"../../component.js":64,"../../slider/slider.js":109,"../../utils/fn.js":127,"./volume-level.js":93}],92:[function(t,e,n){function o(t){return t&&t.__esModule?t:{default:t}}n.__esModule=!0;var r=o(t("../../component.js")),t=(o(t("./volume-bar.js")),(n=>{var t=o,e=n;if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);function o(t,e){if(!(this instanceof o))throw new TypeError("Cannot call a class as a function");n.call(this,t,e),t.tech_&&!1===t.tech_.featuresVolumeControl&&this.addClass("vjs-hidden"),this.on(t,"loadstart",function(){!1===t.tech_.featuresVolumeControl?this.addClass("vjs-hidden"):this.removeClass("vjs-hidden")})}return t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e),o.prototype.createEl=function(){return n.prototype.createEl.call(this,"div",{className:"vjs-volume-control vjs-control"})},o})(r.default));t.prototype.options_={children:["volumeBar"]},r.default.registerComponent("VolumeControl",t),n.default=t,e.exports=n.default},{"../../component.js":64,"./volume-bar.js":91}],93:[function(t,e,n){n.__esModule=!0;var t=t("../../component.js"),t=(t=t)&&t.__esModule?t:{default:t},o=(n=>{var t=o,e=n;if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);function o(){var t=this,e=o;if(!(t instanceof e))throw new TypeError("Cannot call a class as a function");n.apply(this,arguments)}return t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e),o.prototype.createEl=function(){return n.prototype.createEl.call(this,"div",{className:"vjs-volume-level",innerHTML:''})},o})(t.default);t.default.registerComponent("VolumeLevel",o),n.default=o,e.exports=n.default},{"../../component.js":64}],94:[function(t,e,n){function o(t){return t&&t.__esModule?t:{default:t}}n.__esModule=!0;o(t("../button.js"));var r=o(t("../component.js")),a=o(t("../menu/menu.js")),i=o(t("../menu/menu-button.js")),l=o(t("./mute-toggle.js")),u=o(t("./volume-control/volume-bar.js")),t=(i=>{var t=s,e=i;if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);function s(t){var e=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],n=this,o=s;if(!(n instanceof o))throw new TypeError("Cannot call a class as a function");function r(){t.tech_&&!1===t.tech_.featuresVolumeControl?this.addClass("vjs-hidden"):this.removeClass("vjs-hidden")}void 0===e.inline&&(e.inline=!0),void 0===e.vertical&&(e.inline?e.vertical=!1:e.vertical=!0),e.volumeBar=e.volumeBar||{},e.volumeBar.vertical=!!e.vertical,i.call(this,t,e),this.on(t,"volumechange",this.volumeUpdate),this.on(t,"loadstart",this.volumeUpdate),r.call(this),this.on(t,"loadstart",r),this.on(this.volumeBar,["slideractive","focus"],function(){this.addClass("vjs-slider-active")}),this.on(this.volumeBar,["sliderinactive","blur"],function(){this.removeClass("vjs-slider-active")})}return t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e),s.prototype.buildCSSClass=function(){var t="",t=this.options_.vertical?"vjs-volume-menu-button-vertical":"vjs-volume-menu-button-horizontal";return"vjs-volume-menu-button "+i.prototype.buildCSSClass.call(this)+" "+t},s.prototype.createMenu=function(){var t=new a.default(this.player_,{contentElType:"div"}),e=new u.default(this.player_,this.options_.volumeBar);return t.addChild(e),this.volumeBar=e,t},s.prototype.handleClick=function(){l.default.prototype.handleClick.call(this),i.prototype.handleClick.call(this)},s})(i.default);t.prototype.volumeUpdate=l.default.prototype.update,t.prototype.controlText_="Mute",r.default.registerComponent("VolumeMenuButton",t),n.default=t,e.exports=n.default},{"../button.js":62,"../component.js":64,"../menu/menu-button.js":101,"../menu/menu.js":103,"./mute-toggle.js":68,"./volume-control/volume-bar.js":91}],95:[function(t,e,n){function o(t){return t&&t.__esModule?t:{default:t}}n.__esModule=!0;var r=o(t("./component")),i=o(t("./modal-dialog")),t=((t=>{if(t&&t.__esModule)return;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);e.default=t})(t("./utils/dom")),o(t("./utils/merge-options"))),s=(n=>{var t=o,e=n;if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);function o(t,e){if(!(this instanceof o))throw new TypeError("Cannot call a class as a function");n.call(this,t,e),this.on(t,"error",this.open)}return t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e),o.prototype.buildCSSClass=function(){return"vjs-error-display "+n.prototype.buildCSSClass.call(this)},o.prototype.content=function(){var t=this.player().error();return t?this.localize(t.message):""},o})(i.default);s.prototype.options_=t.default(i.default.prototype.options_,{fillAlways:!0,uncloseable:!0}),r.default.registerComponent("ErrorDisplay",s),n.default=s,e.exports=n.default},{"./component":64,"./modal-dialog":104,"./utils/dom":125,"./utils/merge-options":131}],96:[function(t,e,n){n.__esModule=!0;function o(){}var r=(t=>{if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e})(t("./utils/events.js"));o.prototype.allowedEvents_={},o.prototype.addEventListener=o.prototype.on=function(t,e){var n=this.addEventListener;this.addEventListener=Function.prototype,r.on(this,t,e),this.addEventListener=n},o.prototype.removeEventListener=o.prototype.off=function(t,e){r.off(this,t,e)},o.prototype.one=function(t,e){r.one(this,t,e)},o.prototype.dispatchEvent=o.prototype.trigger=function(t){var e=t.type||t;t=r.fixEvent(t="string"==typeof t?{type:e}:t),this.allowedEvents_[e]&&this["on"+e]&&this["on"+e](t),r.trigger(this,t)},n.default=o,e.exports=n.default},{"./utils/events.js":126}],97:[function(t,e,n){n.__esModule=!0;var t=t("./utils/log"),s=(t=t)&&t.__esModule?t:{default:t};n.default=function(t){var e,n=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],o=function(){t.apply(this,arguments)},r={},n=("object"==typeof n?("function"==typeof n.init&&(s.default.warn("Constructor logic via init() is deprecated; please use constructor() instead."),n.constructor=n.init),n.constructor!==Object.prototype.constructor&&(o=n.constructor),r=n):"function"==typeof n&&(o=n),o),i=t;if("function"!=typeof i&&null!==i)throw new TypeError("Super expression must either be null or a function, not "+typeof i);for(e in n.prototype=Object.create(i&&i.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),i&&(n.super_=i),r)r.hasOwnProperty(e)&&(o.prototype[e]=r[e]);return o},e.exports=n.default},{"./utils/log":130}],98:[function(t,e,n){n.__esModule=!0;for(var t=t("global/document"),o=(t=t)&&t.__esModule?t:{default:t},r={},i=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],s=i[0],a=void 0,l=0;l{var t=o,e=n;if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);function o(){var t=this,e=o;if(!(t instanceof e))throw new TypeError("Cannot call a class as a function");n.apply(this,arguments)}return t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e),o.prototype.createEl=function(){return n.prototype.createEl.call(this,"div",{className:"vjs-loading-spinner"})},o})(t.default);t.default.registerComponent("LoadingSpinner",o),n.default=o,e.exports=n.default},{"./component":64}],100:[function(t,e,n){n.__esModule=!0;function o(t){"number"==typeof t?this.code=t:"string"==typeof t?this.message=t:"object"==typeof t&&r.default(this,t),this.message||(this.message=o.defaultMessages[this.code]||"")}var t=t("object.assign"),r=(t=t)&&t.__esModule?t:{default:t};o.prototype.code=0,o.prototype.message="",o.prototype.status=null,o.errorTypes=["MEDIA_ERR_CUSTOM","MEDIA_ERR_ABORTED","MEDIA_ERR_NETWORK","MEDIA_ERR_DECODE","MEDIA_ERR_SRC_NOT_SUPPORTED","MEDIA_ERR_ENCRYPTED"],o.defaultMessages={1:"You aborted the media playback",2:"A network error caused the media download to fail part-way.",3:"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.",4:"The media could not be loaded, either because the server or network failed or because the format is not supported.",5:"The media is encrypted and we do not have the keys to decrypt it."};for(var i=0;i{var t=i,e=r;if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);function i(t){var e=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],n=this,o=i;if(!(n instanceof o))throw new TypeError("Cannot call a class as a function");r.call(this,t,e),this.update(),this.on("keydown",this.handleKeyPress),this.el_.setAttribute("aria-haspopup",!0),this.el_.setAttribute("role","button")}return t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e),i.prototype.update=function(){var t=this.createMenu();this.menu&&this.removeChild(this.menu),this.menu=t,this.addChild(t),this.buttonPressed_=!1,this.items&&0===this.items.length?this.hide():this.items&&1{var t=n,e=o;if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);function n(t,e){if(!(this instanceof n))throw new TypeError("Cannot call a class as a function");o.call(this,t,e),this.selected(e.selected)}return t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e),n.prototype.createEl=function(t,e,n){return o.prototype.createEl.call(this,"li",s.default({className:"vjs-menu-item",innerHTML:this.localize(this.options_.label)},e),n)},n.prototype.handleClick=function(){this.selected(!0)},n.prototype.selected=function(t){t?(this.addClass("vjs-selected"),this.el_.setAttribute("aria-selected",!0)):(this.removeClass("vjs-selected"),this.el_.setAttribute("aria-selected",!1))},n})(r.default);i.default.registerComponent("MenuItem",t),n.default=t,e.exports=n.default},{"../button.js":62,"../component.js":64,"object.assign":45}],103:[function(t,e,n){function o(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}n.__esModule=!0;var r=t("../component.js"),r=(r=r)&&r.__esModule?r:{default:r},i=o(t("../utils/dom.js")),s=o(t("../utils/fn.js")),a=o(t("../utils/events.js")),t=(n=>{var t=o,e=n;if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);function o(){var t=this,e=o;if(!(t instanceof e))throw new TypeError("Cannot call a class as a function");n.apply(this,arguments)}return t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e),o.prototype.addItem=function(t){this.addChild(t),t.on("click",s.bind(this,function(){this.unlockShowing()}))},o.prototype.createEl=function(){var t=this.options_.contentElType||"ul",t=(this.contentEl_=i.createEl(t,{className:"vjs-menu-content"}),n.prototype.createEl.call(this,"div",{append:this.contentEl_,className:"vjs-menu"}));return t.appendChild(this.contentEl_),a.on(t,"click",function(t){t.preventDefault(),t.stopImmediatePropagation()}),t},o})(r.default);r.default.registerComponent("Menu",t),n.default=t,e.exports=n.default},{"../component.js":64,"../utils/dom.js":125,"../utils/events.js":126,"../utils/fn.js":127}],104:[function(t,e,n){function o(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}function r(t){return t&&t.__esModule?t:{default:t}}n.__esModule=!0;var i=r(t("global/document")),s=o(t("./utils/dom")),a=o(t("./utils/fn")),l=(r(t("./utils/log")),r(t("./component"))),u=(r(t("./close-button")),"vjs-modal-dialog"),t=(n=>{var t=o,e=n;if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);function o(t,e){if(!(this instanceof o))throw new TypeError("Cannot call a class as a function");n.call(this,t,e),this.opened_=this.hasBeenOpened_=this.hasBeenFilled_=!1,this.closeable(!this.options_.uncloseable),this.content(this.options_.content),this.contentEl_=s.createEl("div",{className:u+"-content"},{role:"document"}),this.descEl_=s.createEl("p",{className:u+"-description vjs-offscreen",id:this.el().getAttribute("aria-describedby")}),s.textContent(this.descEl_,this.description()),this.el_.appendChild(this.descEl_),this.el_.appendChild(this.contentEl_)}return t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e),o.prototype.createEl=function(){return n.prototype.createEl.call(this,"div",{className:this.buildCSSClass(),tabIndex:-1},{"aria-describedby":this.id()+"_description","aria-hidden":"true","aria-label":this.label(),role:"dialog"})},o.prototype.buildCSSClass=function(){return u+" vjs-hidden "+n.prototype.buildCSSClass.call(this)},o.prototype.handleKeyPress=function(t){27===t.which&&this.closeable()&&this.close()},o.prototype.label=function(){return this.options_.label||this.localize("Modal Window")},o.prototype.description=function(){var t=this.options_.description||this.localize("This is a modal window.");return this.closeable()&&(t+=" "+this.localize("This modal can be closed by pressing the Escape key or activating the close button.")),t},o.prototype.open=function(){var t;return this.opened_||(t=this.player(),this.trigger("beforemodalopen"),this.opened_=!0,!this.options_.fillAlways&&(this.hasBeenOpened_||this.hasBeenFilled_)||this.fill(),this.wasPlaying_=!t.paused(),this.wasPlaying_&&t.pause(),this.closeable()&&this.on(i.default,"keydown",a.bind(this,this.handleKeyPress)),t.controls(!1),this.show(),this.el().setAttribute("aria-hidden","false"),this.trigger("modalopen"),this.hasBeenOpened_=!0),this},o.prototype.opened=function(t){return"boolean"==typeof t&&this[t?"open":"close"](),this.opened_},o.prototype.close=function(){var t;return this.opened_&&(t=this.player(),this.trigger("beforemodalclose"),this.opened_=!1,this.wasPlaying_&&t.play(),this.closeable()&&this.off(i.default,"keydown",a.bind(this,this.handleKeyPress)),t.controls(!0),this.hide(),this.el().setAttribute("aria-hidden","true"),this.trigger("modalclose"),this.options_.temporary)&&this.dispose(),this},o.prototype.closeable=function(t){var e,n;return"boolean"==typeof t&&(t=this.closeable_=!!t,e=this.getChild("closeButton"),t&&!e&&(n=this.contentEl_,this.contentEl_=this.el_,e=this.addChild("closeButton"),this.contentEl_=n,this.on(e,"close",this.close)),!t)&&e&&(this.off(e,"close",this.close),this.removeChild(e),e.dispose()),this.closeable_},o.prototype.fill=function(){return this.fillWith(this.content())},o.prototype.fillWith=function(t){var e=this.contentEl(),n=e.parentNode,o=e.nextSibling;return this.trigger("beforemodalfill"),this.hasBeenFilled_=!0,n.removeChild(e),this.empty(),s.insertContent(e,t),this.trigger("modalfill"),o?n.insertBefore(e,o):n.appendChild(e),this},o.prototype.empty=function(){return this.trigger("beforemodalempty"),s.emptyEl(this.contentEl()),this.trigger("modalempty"),this},o.prototype.content=function(t){return void 0!==t&&(this.content_=t),this.content_},o})(l.default);t.prototype.options_={temporary:!0},l.default.registerComponent("ModalDialog",t),n.default=t,e.exports=n.default},{"./close-button":63,"./component":64,"./utils/dom":125,"./utils/fn":127,"./utils/log":130,"global/document":1}],105:[function(t,e,n){function o(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}function r(t){return t&&t.__esModule?t:{default:t}}n.__esModule=!0;var l=r(t("./component.js")),i=r(t("global/document")),s=r(t("global/window")),u=o(t("./utils/events.js")),c=o(t("./utils/dom.js")),p=o(t("./utils/fn.js")),h=o(t("./utils/guid.js")),d=(o(t("./utils/browser.js")),r(t("./utils/log.js"))),f=r(t("./utils/to-title-case.js")),m=t("./utils/time-ranges.js"),y=t("./utils/buffer.js"),v=o(t("./utils/stylesheet.js")),g=r(t("./fullscreen-api.js")),b=r(t("./media-error.js")),_=r(t("safe-json-parse/tuple")),j=r(t("object.assign")),w=r(t("./utils/merge-options.js")),T=r(t("./tracks/text-track-list-converter.js")),x=(r(t("./tech/loader.js")),r(t("./poster-image.js")),r(t("./tracks/text-track-display.js")),r(t("./loading-spinner.js")),r(t("./big-play-button.js")),r(t("./control-bar/control-bar.js")),r(t("./error-display.js")),r(t("./tracks/text-track-settings.js")),r(t("./modal-dialog"))),t=(r(t("./tech/html5.js")),(s=>{var t=a,e=s;if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);function a(t,e,n){var o,r=this;if(!(this instanceof a))throw new TypeError("Cannot call a class as a function");if(t.id=t.id||"vjs_video_"+h.newGUID(),(e=j.default(a.getTagSettings(t),e)).initChildren=!1,e.createEl=!1,e.reportTouchActivity=!1,s.call(this,null,e,n),!this.options_||!this.options_.techOrder||!this.options_.techOrder.length)throw new Error("No techOrder specified. Did you overwrite videojs.options instead of just changing the properties you want to override?");this.tag=t,this.tagAttributes=t&&c.getElAttributes(t),this.language(this.options_.language),e.languages?(o={},Object.getOwnPropertyNames(e.languages).forEach(function(t){o[t.toLowerCase()]=e.languages[t]}),r.languages_=o):this.languages_=a.prototype.options_.languages,this.cache_={},this.poster_=e.poster||"",this.controls_=!!e.controls,t.controls=!1,this.scrubbing_=!1,this.el_=this.createEl();var i,n=w.default(this.options_);e.plugins&&(i=e.plugins,Object.getOwnPropertyNames(i).forEach(function(t){"function"==typeof this[t]?this[t](i[t]):d.default.error("Unable to find plugin:",t)},r)),this.options_.playerOptions=n,this.initChildren(),this.isAudio("audio"===t.nodeName.toLowerCase()),this.controls()?this.addClass("vjs-controls-enabled"):this.addClass("vjs-controls-disabled"),this.isAudio()&&this.addClass("vjs-audio"),this.flexNotSupported_()&&this.addClass("vjs-no-flex"),(a.players[this.id_]=this).userActive(!0),this.reportUserActivity(),this.listenForUserActivity_(),this.on("fullscreenchange",this.handleFullscreenChange_),this.on("stageclick",this.handleStageClick_)}return t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e),a.prototype.dispose=function(){this.trigger("dispose"),this.off("dispose"),this.styleEl_&&this.styleEl_.parentNode.removeChild(this.styleEl_),a.players[this.id_]=null,this.tag&&this.tag.player&&(this.tag.player=null),this.el_&&this.el_.player&&(this.el_.player=null),this.tech_&&this.tech_.dispose(),s.prototype.dispose.call(this)},a.prototype.createEl=function(){var e=this.el_=s.prototype.createEl.call(this,"div"),t=this.tag,n=(t.removeAttribute("width"),t.removeAttribute("height"),c.getElAttributes(t)),o=(Object.getOwnPropertyNames(n).forEach(function(t){"class"===t?e.className=n[t]:e.setAttribute(t,n[t])}),t.id+="_html5_api",t.className="vjs-tech",(t.player=e.player=this).addClass("vjs-paused"),this.styleEl_=v.createStyleElement("vjs-styles-dimensions"),i.default.querySelector(".vjs-styles-defaults")),r=i.default.querySelector("head");return r.insertBefore(this.styleEl_,o?o.nextSibling:r.firstChild),this.width(this.options_.width),this.height(this.options_.height),this.fluid(this.options_.fluid),this.aspectRatio(this.options_.aspectRatio),t.initNetworkState_=t.networkState,t.parentNode&&t.parentNode.insertBefore(e,t),c.insertElFirst(t,e),this.el_=e},a.prototype.width=function(t){return this.dimension("width",t)},a.prototype.height=function(t){return this.dimension("height",t)},a.prototype.dimension=function(t,e){var n=t+"_";if(void 0===e)return this[n]||0;if(""===e)this[n]=void 0;else{var o=parseFloat(e);if(isNaN(o))return d.default.error('Improper value "'+e+'" supplied for for '+t),this;this[n]=o}return this.updateStyleEl_(),this},a.prototype.fluid=function(t){if(void 0===t)return!!this.fluid_;this.fluid_=!!t,t?this.addClass("vjs-fluid"):this.removeClass("vjs-fluid")},a.prototype.aspectRatio=function(t){if(void 0===t)return this.aspectRatio_;if(!/^\d+\:\d+$/.test(t))throw new Error("Improper value supplied for aspect ratio. The format should be width:height, for example 16:9.");this.aspectRatio_=t,this.fluid(!0),this.updateStyleEl_()},a.prototype.updateStyleEl_=function(){var t=void 0,e=void 0,n=(void 0!==this.aspectRatio_&&"auto"!==this.aspectRatio_?this.aspectRatio_:this.videoWidth()?this.videoWidth()+":"+this.videoHeight():"16:9").split(":"),n=n[1]/n[0],t=void 0!==this.width_?this.width_:void 0!==this.height_?this.height_/n:this.videoWidth()||300,e=void 0!==this.height_?this.height_:t*n,o=this.id()+"-dimensions";this.addClass(o),v.setTextContent(this.styleEl_,"\n ."+o+" {\n width: "+t+"px;\n height: "+e+"px;\n }\n\n ."+o+".vjs-fluid {\n padding-top: "+100*n+"%;\n }\n ")},a.prototype.loadTech_=function(t,e){this.tech_&&this.unloadTech_(),"Html5"!==t&&this.tag&&(l.default.getComponent("Html5").disposeMediaElement(this.tag),this.tag.player=null,this.tag=null),this.techName_=t,this.isReady_=!1;var n=j.default({nativeControlsForTouch:this.options_.nativeControlsForTouch,source:e,playerId:this.id(),techId:this.id()+"_"+t+"_api",textTracks:this.textTracks_,autoplay:this.options_.autoplay,preload:this.options_.preload,loop:this.options_.loop,muted:this.options_.muted,poster:this.poster(),language:this.language(),"vtt.js":this.options_["vtt.js"]},this.options_[t.toLowerCase()]),e=(this.tag&&(n.tag=this.tag),e&&(this.currentType_=e.type,e.src===this.cache_.src&&0{var t=o,e=n;if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);function o(t,e){if(!(this instanceof o))throw new TypeError("Cannot call a class as a function");n.call(this,t,e),this.update(),t.on("posterchange",a.bind(this,this.update))}return t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e),o.prototype.dispose=function(){this.player().off("posterchange",this.update),n.prototype.dispose.call(this)},o.prototype.createEl=function(){var t=l.createEl("div",{className:"vjs-poster",tabIndex:-1});return u.BACKGROUND_SIZE_SUPPORTED||(this.fallbackImg_=l.createEl("img"),t.appendChild(this.fallbackImg_)),t},o.prototype.update=function(){var t=this.player().poster();this.setSrc(t),t?this.show():this.hide()},o.prototype.setSrc=function(t){this.fallbackImg_?this.fallbackImg_.src=t:this.el_.style.backgroundImage=t?'url("'+t+'")':""},o.prototype.handleClick=function(){this.player_.paused()?this.player_.play():this.player_.pause()},o})(i.default);s.default.registerComponent("PosterImage",t),n.default=t,e.exports=n.default},{"./button.js":62,"./component.js":64,"./utils/browser.js":122,"./utils/dom.js":125,"./utils/fn.js":127}],108:[function(t,e,n){function o(t){return t&&t.__esModule?t:{default:t}}n.__esModule=!0;function s(t,e){u=e,setTimeout(i,t)}var r=(t=>{if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e})(t("./utils/events.js")),a=o(t("global/document")),t=o(t("global/window")),l=!1,u=void 0,i=function(){var t=a.default.getElementsByTagName("video"),e=a.default.getElementsByTagName("audio"),n=[];if(t&&0{if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e})(t("../utils/dom.js")),s=o(t("global/document")),a=o(t("object.assign")),t=(o=>{var t=n,e=o;if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);function n(t,e){if(!(this instanceof n))throw new TypeError("Cannot call a class as a function");o.call(this,t,e),this.bar=this.getChild(this.options_.barName),this.vertical(!!this.options_.vertical),this.on("mousedown",this.handleMouseDown),this.on("touchstart",this.handleMouseDown),this.on("focus",this.handleFocus),this.on("blur",this.handleBlur),this.on("click",this.handleClick),this.on(t,"controlsvisible",this.update),this.on(t,this.playerEvent,this.update)}return t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e),n.prototype.createEl=function(t){var e=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],n=arguments.length<=2||void 0===arguments[2]?{}:arguments[2];return e.className=e.className+" vjs-slider",e=a.default({tabIndex:0},e),n=a.default({role:"slider","aria-valuenow":0,"aria-valuemin":0,"aria-valuemax":100,tabIndex:0},n),o.prototype.createEl.call(this,t,e,n)},n.prototype.handleMouseDown=function(t){t.preventDefault(),i.blockTextSelection(),this.addClass("vjs-sliding"),this.trigger("slideractive"),this.on(s.default,"mousemove",this.handleMouseMove),this.on(s.default,"mouseup",this.handleMouseUp),this.on(s.default,"touchmove",this.handleMouseMove),this.on(s.default,"touchend",this.handleMouseUp),this.handleMouseMove(t)},n.prototype.handleMouseMove=function(){},n.prototype.handleMouseUp=function(){i.unblockTextSelection(),this.removeClass("vjs-sliding"),this.trigger("sliderinactive"),this.off(s.default,"mousemove",this.handleMouseMove),this.off(s.default,"mouseup",this.handleMouseUp),this.off(s.default,"touchmove",this.handleMouseMove),this.off(s.default,"touchend",this.handleMouseUp),this.update()},n.prototype.update=function(){var t,e;this.el_&&(e=this.getPercent(),t=this.bar)&&(e=(100*(e="number"!=typeof e||e!=e||e<0||e===1/0?0:e)).toFixed(2)+"%",this.vertical()?t.el().style.height=e:t.el().style.width=e)},n.prototype.calculateDistance=function(t){t=i.getPointerPosition(this.el_,t);return this.vertical()?t.y:t.x},n.prototype.handleFocus=function(){this.on(s.default,"keydown",this.handleKeyPress)},n.prototype.handleKeyPress=function(t){37===t.which||40===t.which?(t.preventDefault(),this.stepBack()):38!==t.which&&39!==t.which||(t.preventDefault(),this.stepForward())},n.prototype.handleBlur=function(){this.off(s.default,"keydown",this.handleKeyPress)},n.prototype.handleClick=function(t){t.stopImmediatePropagation(),t.preventDefault()},n.prototype.vertical=function(t){return void 0===t?this.vertical_||!1:(this.vertical_=!!t,this.vertical_?this.addClass("vjs-slider-vertical"):this.addClass("vjs-slider-horizontal"),this)},n})(r.default);r.default.registerComponent("Slider",t),n.default=t,e.exports=n.default},{"../component.js":64,"../utils/dom.js":125,"global/document":1,"object.assign":45}],110:[function(t,e,n){n.__esModule=!0,n.default=function(n){return n.streamingFormats={"rtmp/mp4":"MP4","rtmp/flv":"FLV"},n.streamFromParts=function(t,e){return t+"&"+e},n.streamToParts=function(t){var e,n,o={connection:"",stream:""};return t&&(n=void 0,-1!==(e=t.indexOf("&"))?n=e+1:0===(e=n=t.lastIndexOf("/")+1)&&(e=n=t.length),o.connection=t.substring(0,e),o.stream=t.substring(n,t.length)),o},n.isStreamingType=function(t){return t in n.streamingFormats},n.RTMP_RE=/^rtmp[set]?:\/\//i,n.isStreamingSrc=function(t){return n.RTMP_RE.test(t)},n.rtmpSourceHandler={},n.rtmpSourceHandler.canPlayType=function(t){return n.isStreamingType(t)?"maybe":""},n.rtmpSourceHandler.canHandleSource=function(t){var e=n.rtmpSourceHandler.canPlayType(t.type);return e||(n.isStreamingSrc(t.src)?"maybe":"")},n.rtmpSourceHandler.handleSource=function(t,e){t=n.streamToParts(t.src);e.setRtmpConnection(t.connection),e.setRtmpStream(t.stream)},n.registerSourceHandler(n.rtmpSourceHandler),n},e.exports=n.default},{}],111:[function(t,e,n){function o(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}function r(t){return t&&t.__esModule?t:{default:t}}n.__esModule=!0;var i=r(t("./tech")),s=o(t("../utils/dom.js")),a=o(t("../utils/url.js")),l=t("../utils/time-ranges.js"),u=r(t("./flash-rtmp")),c=r(t("../component")),p=r(t("global/window")),h=r(t("object.assign")),d=p.default.navigator,f=(n=>{var t=r,e=n;if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);function r(t,e){if(!(this instanceof r))throw new TypeError("Cannot call a class as a function");n.call(this,t,e),t.source&&this.ready(function(){this.setSource(t.source)},!0),t.startTime&&this.ready(function(){this.load(),this.play(),this.currentTime(t.startTime)},!0),p.default.videojs=p.default.videojs||{},p.default.videojs.Flash=p.default.videojs.Flash||{},p.default.videojs.Flash.onReady=r.onReady,p.default.videojs.Flash.onEvent=r.onEvent,p.default.videojs.Flash.onError=r.onError,this.on("seeked",function(){this.lastSeekTarget_=void 0})}return t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e),r.prototype.createEl=function(){var t=this.options_,e=(t.swf||(t.swf="//vjs.zencdn.net/swf/5.0.0-rc1/video-js.swf"),t.techId),n=h.default({readyFunction:"videojs.Flash.onReady",eventProxyFunction:"videojs.Flash.onEvent",errorEventProxyFunction:"videojs.Flash.onError",autoplay:t.autoplay,preload:t.preload,loop:t.loop,muted:t.muted},t.flashVars),o=h.default({wmode:"opaque",bgcolor:"#000000"},t.params),e=h.default({id:e,name:e,class:"vjs-tech"},t.attributes);return this.el_=r.embed(t.swf,n,o,e),(this.el_.tech=this).el_},r.prototype.play=function(){this.ended()&&this.setCurrentTime(0),this.el_.vjs_play()},r.prototype.pause=function(){this.el_.vjs_pause()},r.prototype.src=function(t){return void 0===t?this.currentSrc():this.setSrc(t)},r.prototype.setSrc=function(t){var e;t=a.getAbsoluteURL(t),this.el_.vjs_src(t),this.autoplay()&&(e=this).setTimeout(function(){e.play()},0)},r.prototype.seeking=function(){return void 0!==this.lastSeekTarget_},r.prototype.setCurrentTime=function(t){var e=this.seekable();e.length&&(t=(t=t>e.start(0)?t:e.start(0)){var t=e.charAt(0).toUpperCase()+e.slice(1);m["set"+t]=function(t){return this.el_.vjs_setProperty(e,t)}})(y[b]);for(b=0;b'}),o=h.default({data:t,width:"100%",height:"100%"},o),Object.getOwnPropertyNames(o).forEach(function(t){s+=t+'="'+o[t]+'" '}),'"},u.default(f),c.default.registerComponent("Flash",f),n.default=f,e.exports=n.default},{"../component":64,"../utils/dom.js":125,"../utils/time-ranges.js":133,"../utils/url.js":135,"./flash-rtmp":110,"./tech":114,"global/window":2,"object.assign":45}],112:[function(t,e,n){function o(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}function r(t){return t&&t.__esModule?t:{default:t}}n.__esModule=!0;var i=r(t("./tech.js")),s=r(t("../component")),u=o(t("../utils/dom.js")),a=o(t("../utils/url.js")),c=o(t("../utils/fn.js")),p=r(t("../utils/log.js")),h=o(t("../utils/browser.js")),d=r(t("global/document")),f=r(t("global/window")),m=r(t("object.assign")),y=r(t("../utils/merge-options.js")),l=(a=>{var t=l,e=a;if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);function l(t,e){if(!(this instanceof l))throw new TypeError("Cannot call a class as a function");a.call(this,t,e);e=t.source;if(e&&(this.el_.currentSrc!==e.src||t.tag&&3===t.tag.initNetworkState_)?this.setSource(e):this.handleLateInit_(this.el_),this.el_.hasChildNodes()){for(var n=this.el_.childNodes,o=n.length,r=[];o--;){var i=n[o];"track"===i.nodeName.toLowerCase()&&(this.featuresNativeTextTracks?this.remoteTextTracks().addTrack_(i.track):r.push(i))}for(var s=0;s{function t(){n=!0}function e(){n||this.trigger("loadstart")}var n=!1;return o.on("loadstart",t),o.on("loadedmetadata",e),o.ready(function(){this.off("loadstart",t),this.off("loadedmetadata",e),n||this.trigger("loadstart")}),{v:void 0}})();if("object"==typeof e)return e.v}var n=["loadstart"];n.push("loadedmetadata"),2<=t.readyState&&n.push("loadeddata"),3<=t.readyState&&n.push("canplay"),4<=t.readyState&&n.push("canplaythrough"),this.ready(function(){n.forEach(function(t){this.trigger(t)},this)})}},l.prototype.proxyNativeTextTracks_=function(){var t=this.el().textTracks;t&&t.addEventListener&&(t.addEventListener("change",this.handleTextTrackChange_),t.addEventListener("addtrack",this.handleTextTrackAdd_),t.addEventListener("removetrack",this.handleTextTrackRemove_))},l.prototype.handleTextTrackChange=function(t){var e=this.textTracks();this.textTracks().trigger({type:"change",target:e,currentTarget:e,srcElement:e})},l.prototype.handleTextTrackAdd=function(t){this.textTracks().addTrack_(t.track)},l.prototype.handleTextTrackRemove=function(t){this.textTracks().removeTrack_(t.track)},l.prototype.play=function(){this.el_.play()},l.prototype.pause=function(){this.el_.pause()},l.prototype.paused=function(){return this.el_.paused},l.prototype.currentTime=function(){return this.el_.currentTime},l.prototype.setCurrentTime=function(t){try{this.el_.currentTime=t}catch(t){p.default(t,"Video is not ready. (Video.js)")}},l.prototype.duration=function(){return this.el_.duration||0},l.prototype.buffered=function(){return this.el_.buffered},l.prototype.volume=function(){return this.el_.volume},l.prototype.setVolume=function(t){this.el_.volume=t},l.prototype.muted=function(){return this.el_.muted},l.prototype.setMuted=function(t){this.el_.muted=t},l.prototype.width=function(){return this.el_.offsetWidth},l.prototype.height=function(){return this.el_.offsetHeight},l.prototype.supportsFullScreen=function(){if("function"==typeof this.el_.webkitEnterFullScreen){var t=f.default.navigator.userAgent;if(/Android/.test(t)||!/Chrome|Mac OS X 10.5/.test(t))return!0}return!1},l.prototype.enterFullScreen=function(){var t=this.el_;"webkitDisplayingFullscreen"in t&&this.one("webkitbeginfullscreen",function(){this.one("webkitendfullscreen",function(){this.trigger("fullscreenchange",{isFullscreen:!1})}),this.trigger("fullscreenchange",{isFullscreen:!0})}),t.paused&&t.networkState<=t.HAVE_METADATA?(this.el_.play(),this.setTimeout(function(){t.pause(),t.webkitEnterFullScreen()},0)):t.webkitEnterFullScreen()},l.prototype.exitFullScreen=function(){this.el_.webkitExitFullScreen()},l.prototype.src=function(t){if(void 0===t)return this.el_.src;this.setSrc(t)},l.prototype.setSrc=function(t){this.el_.src=t},l.prototype.load=function(){this.el_.load()},l.prototype.currentSrc=function(){return this.el_.currentSrc},l.prototype.poster=function(){return this.el_.poster},l.prototype.setPoster=function(t){this.el_.poster=t},l.prototype.preload=function(){return this.el_.preload},l.prototype.setPreload=function(t){this.el_.preload=t},l.prototype.autoplay=function(){return this.el_.autoplay},l.prototype.setAutoplay=function(t){this.el_.autoplay=t},l.prototype.controls=function(){return this.el_.controls},l.prototype.setControls=function(t){this.el_.controls=!!t},l.prototype.loop=function(){return this.el_.loop},l.prototype.setLoop=function(t){this.el_.loop=t},l.prototype.error=function(){return this.el_.error},l.prototype.seeking=function(){return this.el_.seeking},l.prototype.seekable=function(){return this.el_.seekable},l.prototype.ended=function(){return this.el_.ended},l.prototype.defaultMuted=function(){return this.el_.defaultMuted},l.prototype.playbackRate=function(){return this.el_.playbackRate},l.prototype.played=function(){return this.el_.played},l.prototype.setPlaybackRate=function(t){this.el_.playbackRate=t},l.prototype.networkState=function(){return this.el_.networkState},l.prototype.readyState=function(){return this.el_.readyState},l.prototype.videoWidth=function(){return this.el_.videoWidth},l.prototype.videoHeight=function(){return this.el_.videoHeight},l.prototype.textTracks=function(){return a.prototype.textTracks.call(this)},l.prototype.addTextTrack=function(t,e,n){return this.featuresNativeTextTracks?this.el_.addTextTrack(t,e,n):a.prototype.addTextTrack.call(this,t,e,n)},l.prototype.addRemoteTextTrack=function(){var t,e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];return this.featuresNativeTextTracks?(t=d.default.createElement("track"),e.kind&&(t.kind=e.kind),e.label&&(t.label=e.label),(e.language||e.srclang)&&(t.srclang=e.language||e.srclang),e.default&&(t.default=e.default),e.id&&(t.id=e.id),e.src&&(t.src=e.src),this.el().appendChild(t),this.remoteTextTracks().addTrack_(t.track),t):a.prototype.addRemoteTextTrack.call(this,e)},l.prototype.removeRemoteTextTrack=function(t){if(!this.featuresNativeTextTracks)return a.prototype.removeRemoteTextTrack.call(this,t);var e,n;for(this.remoteTextTracks().removeTrack_(t),n=(e=this.el().querySelectorAll("track")).length;n--;)t!==e[n]&&t!==e[n].track||this.el().removeChild(e[n])},l})(i.default),t=(l.TEST_VID=d.default.createElement("video"),d.default.createElement("track")),v=(t.kind="captions",t.srclang="en",t.label="English",l.TEST_VID.appendChild(t),l.isSupported=function(){try{l.TEST_VID.volume=.5}catch(t){return!1}return!!l.TEST_VID.canPlayType},i.default.withSourceHandlers(l),l.nativeSourceHandler={},l.nativeSourceHandler.canPlayType=function(t){try{return l.TEST_VID.canPlayType(t)}catch(t){return""}},l.nativeSourceHandler.canHandleSource=function(t){return t.type?l.nativeSourceHandler.canPlayType(t.type):t.src?(t=a.getFileExtension(t.src),l.nativeSourceHandler.canPlayType("video/"+t)):""},l.nativeSourceHandler.handleSource=function(t,e){e.setSrc(t.src)},l.nativeSourceHandler.dispose=function(){},l.registerSourceHandler(l.nativeSourceHandler),l.canControlVolume=function(){var t=l.TEST_VID.volume;return l.TEST_VID.volume=t/2+.1,t!==l.TEST_VID.volume},l.canControlPlaybackRate=function(){var t=l.TEST_VID.playbackRate;return l.TEST_VID.playbackRate=t/2+.1,t!==l.TEST_VID.playbackRate},l.supportsNativeTextTracks=function(){var t=!!l.TEST_VID.textTracks;return t=!(t=(t=t&&0{var t=l,e=a;if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);function l(t,e,n){if(!(this instanceof l))throw new TypeError("Cannot call a class as a function");if(a.call(this,t,e,n),e.playerOptions.sources&&0!==e.playerOptions.sources.length)t.src(e.playerOptions.sources);else for(var o=0,r=e.playerOptions.techOrder;o{if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e})(t("../utils/fn.js")),i=o(t("../utils/log.js")),u=t("../utils/time-ranges.js"),c=t("../utils/buffer.js"),p=o(t("../media-error.js")),h=o(t("global/window")),d=o(t("global/document")),t=(r=>{var t=i,e=r;if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);function i(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],e=arguments.length<=1||void 0===arguments[1]?function(){}:arguments[1],n=this,o=i;if(!(n instanceof o))throw new TypeError("Cannot call a class as a function");t.reportTouchActivity=!1,r.call(this,null,t,e),this.hasStarted_=!1,this.on("playing",function(){this.hasStarted_=!0}),this.on("loadstart",function(){this.hasStarted_=!1}),this.textTracks_=t.textTracks,this.featuresProgressEvents||this.manualProgressOn(),this.featuresTimeupdateEvents||this.manualTimeUpdatesOn(),!1!==t.nativeCaptions&&!1!==t.nativeTextTracks||(this.featuresNativeTextTracks=!1),this.featuresNativeTextTracks||this.on("ready",this.emulateTextTracks),this.initTextTrackListeners(),this.emitTapEvents()}return t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e),i.prototype.manualProgressOn=function(){this.on("durationchange",this.onDurationChange),this.manualProgress=!0,this.one("ready",this.trackProgress)},i.prototype.manualProgressOff=function(){this.manualProgress=!1,this.stopTrackingProgress(),this.off("durationchange",this.onDurationChange)},i.prototype.trackProgress=function(){this.stopTrackingProgress(),this.progressInterval=this.setInterval(l.bind(this,function(){var t=this.bufferedPercent();this.bufferedPercent_!==t&&this.trigger("progress"),1===(this.bufferedPercent_=t)&&this.stopTrackingProgress()}),500)},i.prototype.onDurationChange=function(){this.duration_=this.duration()},i.prototype.buffered=function(){return u.createTimeRange(0,0)},i.prototype.bufferedPercent=function(){return c.bufferedPercent(this.buffered(),this.duration_)},i.prototype.stopTrackingProgress=function(){this.clearInterval(this.progressInterval)},i.prototype.manualTimeUpdatesOn=function(){this.manualTimeUpdates=!0,this.on("play",this.trackCurrentTime),this.on("pause",this.stopTrackingCurrentTime)},i.prototype.manualTimeUpdatesOff=function(){this.manualTimeUpdates=!1,this.stopTrackingCurrentTime(),this.off("play",this.trackCurrentTime),this.off("pause",this.stopTrackingCurrentTime)},i.prototype.trackCurrentTime=function(){this.currentTimeInterval&&this.stopTrackingCurrentTime(),this.currentTimeInterval=this.setInterval(function(){this.trigger({type:"timeupdate",target:this,manuallyTriggered:!0})},250)},i.prototype.stopTrackingCurrentTime=function(){this.clearInterval(this.currentTimeInterval),this.trigger({type:"timeupdate",target:this,manuallyTriggered:!0})},i.prototype.dispose=function(){var t=this.textTracks();if(t)for(var e=t.length;e--;)this.removeRemoteTextTrack(t[e]);this.manualProgress&&this.manualProgressOff(),this.manualTimeUpdates&&this.manualTimeUpdatesOff(),r.prototype.dispose.call(this)},i.prototype.error=function(t){return void 0!==t&&(t instanceof p.default?this.error_=t:this.error_=new p.default(t),this.trigger("error")),this.error_},i.prototype.played=function(){return this.hasStarted_?u.createTimeRange(0,0):u.createTimeRange()},i.prototype.setCurrentTime=function(){this.manualTimeUpdates&&this.trigger({type:"timeupdate",target:this,manuallyTriggered:!0})},i.prototype.initTextTrackListeners=function(){var t=l.bind(this,function(){this.trigger("texttrackchange")}),e=this.textTracks();e&&(e.addEventListener("removetrack",t),e.addEventListener("addtrack",t),this.on("dispose",l.bind(this,function(){e.removeEventListener("removetrack",t),e.removeEventListener("addtrack",t)})))},i.prototype.emulateTextTracks=function(){var t,e,r=this.textTracks();r&&(h.default.WebVTT||null==this.el().parentNode||((t=d.default.createElement("script")).src=this.options_["vtt.js"]||"https://cdn.rawgit.com/gkatsev/vtt.js/vjs-v0.12.1/dist/vtt.min.js",this.el().parentNode.appendChild(t),h.default.WebVTT=!0),e=l.bind(this,function(){function t(){return e.trigger("texttrackchange")}var e=this;t();for(var n=0;n{if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e})(t("../utils/browser.js")),t=t("global/document"),i=(t=t)&&t.__esModule?t:{default:t};o.prototype.setCues_=function(t){function e(t){""+t in this||Object.defineProperty(this,""+t,{get:function(){return this.cues_[t]}})}var n=this.length||0,o=0,r=t.length;this.cues_=t,this.length_=t.length;if(n{if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e})(t("../utils/fn.js"))),a=(o(t("global/document")),o(t("global/window"))),l={monospace:"monospace",sansSerif:"sans-serif",serif:"serif",monospaceSansSerif:'"Andale Mono", "Lucida Console", monospace',monospaceSerif:'"Courier New", monospace',proportionalSansSerif:"sans-serif",proportionalSerif:"serif",casual:'"Comic Sans MS", Impact, fantasy',script:'"Monotype Corsiva", cursive',smallcaps:'"Andale Mono", "Lucida Console", monospace, sans-serif'},t=(n=>{var t=r,e=n;if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);function r(o,t,e){if(!(this instanceof r))throw new TypeError("Cannot call a class as a function");n.call(this,o,t,e),o.on("loadstart",i.bind(this,this.toggleDisplay)),o.on("texttrackchange",i.bind(this,this.updateDisplay)),o.ready(i.bind(this,function(){if(o.tech_&&o.tech_.featuresNativeTextTracks)this.hide();else{o.on("fullscreenchange",i.bind(this,this.updateDisplay));for(var t=this.options_.playerOptions.tracks||[],e=0;e{var t=o,e=n;if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);function o(t,e){if(!(this instanceof o))throw new TypeError("Cannot call a class as a function");n.call(this,t,e),this.hide(),void 0===e.persistTextTrackSettings&&(this.options_.persistTextTrackSettings=this.options_.playerOptions.persistTextTrackSettings),s.on(this.el().querySelector(".vjs-done-button"),"click",a.bind(this,function(){this.saveSettings(),this.hide()})),s.on(this.el().querySelector(".vjs-default-button"),"click",a.bind(this,function(){this.el().querySelector(".vjs-fg-color > select").selectedIndex=0,this.el().querySelector(".vjs-bg-color > select").selectedIndex=0,this.el().querySelector(".window-color > select").selectedIndex=0,this.el().querySelector(".vjs-text-opacity > select").selectedIndex=0,this.el().querySelector(".vjs-bg-opacity > select").selectedIndex=0,this.el().querySelector(".vjs-window-opacity > select").selectedIndex=0,this.el().querySelector(".vjs-edge-style select").selectedIndex=0,this.el().querySelector(".vjs-font-family select").selectedIndex=0,this.el().querySelector(".vjs-font-percent select").selectedIndex=2,this.updateDisplay()})),s.on(this.el().querySelector(".vjs-fg-color > select"),"change",a.bind(this,this.updateDisplay)),s.on(this.el().querySelector(".vjs-bg-color > select"),"change",a.bind(this,this.updateDisplay)),s.on(this.el().querySelector(".window-color > select"),"change",a.bind(this,this.updateDisplay)),s.on(this.el().querySelector(".vjs-text-opacity > select"),"change",a.bind(this,this.updateDisplay)),s.on(this.el().querySelector(".vjs-bg-opacity > select"),"change",a.bind(this,this.updateDisplay)),s.on(this.el().querySelector(".vjs-window-opacity > select"),"change",a.bind(this,this.updateDisplay)),s.on(this.el().querySelector(".vjs-font-percent select"),"change",a.bind(this,this.updateDisplay)),s.on(this.el().querySelector(".vjs-edge-style select"),"change",a.bind(this,this.updateDisplay)),s.on(this.el().querySelector(".vjs-font-family select"),"change",a.bind(this,this.updateDisplay)),this.options_.persistTextTrackSettings&&this.restoreSettings()}return t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e),o.prototype.createEl=function(){return n.prototype.createEl.call(this,"div",{className:"vjs-caption-settings vjs-modal-overlay",innerHTML:'
\n
\n
\n \n \n \n \n \n
\x3c!-- vjs-fg-color --\x3e\n
\n \n \n \n \n \n
\x3c!-- vjs-bg-color --\x3e\n
\n \n \n \n \n \n
\x3c!-- vjs-window-color --\x3e\n
\x3c!-- vjs-tracksettings --\x3e\n
\n
\n \n \n
\x3c!-- vjs-font-percent --\x3e\n
\n \n \n
\x3c!-- vjs-edge-style --\x3e\n
\n \n \n
\x3c!-- vjs-font-family --\x3e\n
\n
\n
\n \n \n
'})},o.prototype.getValues=function(){var t,e=this.el(),n=p(e.querySelector(".vjs-edge-style select")),o=p(e.querySelector(".vjs-font-family select")),r=p(e.querySelector(".vjs-fg-color > select")),i=p(e.querySelector(".vjs-text-opacity > select")),s=p(e.querySelector(".vjs-bg-color > select")),a=p(e.querySelector(".vjs-bg-opacity > select")),l=p(e.querySelector(".window-color > select")),u={backgroundOpacity:a,textOpacity:i,windowOpacity:p(e.querySelector(".vjs-window-opacity > select")),edgeStyle:n,fontFamily:o,color:r,backgroundColor:s,windowColor:l,fontPercent:c.default.parseFloat(p(e.querySelector(".vjs-font-percent > select")))};for(t in u)(""===u[t]||"none"===u[t]||"fontPercent"===t&&1===u[t])&&delete u[t];return u},o.prototype.setValues=function(t){var e=this.el();h(e.querySelector(".vjs-edge-style select"),t.edgeStyle),h(e.querySelector(".vjs-font-family select"),t.fontFamily),h(e.querySelector(".vjs-fg-color > select"),t.color),h(e.querySelector(".vjs-text-opacity > select"),t.textOpacity),h(e.querySelector(".vjs-bg-color > select"),t.backgroundColor),h(e.querySelector(".vjs-bg-opacity > select"),t.backgroundOpacity),h(e.querySelector(".window-color > select"),t.windowColor),h(e.querySelector(".vjs-window-opacity > select"),t.windowOpacity);t=(t=t.fontPercent)&&t.toFixed(2);h(e.querySelector(".vjs-font-percent > select"),t)},o.prototype.restoreSettings=function(){var t=u.default(c.default.localStorage.getItem("vjs-text-track-settings")),e=t[0],t=t[1];e&&l.default.error(e),t&&this.setValues(t)},o.prototype.saveSettings=function(){if(this.options_.persistTextTrackSettings){var t=this.getValues();try{0=t||r.startTime===r.endTime&&r.startTime<=t&&r.startTime+.5>=t)&&e.push(r)}if(c=!1,e.length!==this.activeCues_.length)c=!0;else for(n=0;n>>0;if(0!=o){e=+e||0;if(!(o<=(e=Math.abs(e)===1/0?0:e)))for(var r=Math.max(0<=e?e:o-Math.abs(e),0);r{var t=i.match(/OS (\d+)_/i);if(t&&t[1])return t[1]})()),u=(n.IOS_VERSION=l,/Android/i.test(i)),c=(n.IS_ANDROID=u,(a=i.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i))?(l=a[1]&&parseFloat(a[1]),c=a[2]&&parseFloat(a[2]),l&&c?parseFloat(a[1]+"."+a[2]):l||null):null),a=(n.ANDROID_VERSION=c,u&&/webkit/i.test(i)&&c<2.3),l=(n.IS_OLD_ANDROID=a,u&&c<5&&s<537),a=(n.IS_NATIVE_ANDROID=l,/Firefox/i.test(i)),u=(n.IS_FIREFOX=a,/Chrome/i.test(i)),s=(n.IS_CHROME=u,/MSIE\s8\.0/.test(i)),l=(n.IS_IE8=s,!!("ontouchstart"in t.default||t.default.DocumentTouch&&r.default instanceof t.default.DocumentTouch)),a=(n.TOUCH_ENABLED=l,"backgroundSize"in r.default.createElement("video").style);n.BACKGROUND_SIZE_SUPPORTED=a},{"global/document":1,"global/window":2}],123:[function(t,e,n){n.__esModule=!0,n.bufferedPercent=function(t,e){var n,o,r=0;if(!e)return 0;t&&t.length||(t=s.createTimeRange(0,0));for(var i=0;i{if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e})(t("./guid.js")),l=o(t("./log.js")),u=o(t("tsml"));var c={},p="vdata"+(new Date).getTime();function h(t,e){return-1!==(" "+t.className+" ").indexOf(" "+e+" ")}function d(t){var e,n,o,r=void 0;return(r=t.getBoundingClientRect&&t.parentNode?t.getBoundingClientRect():r)?(t=i.default.documentElement,o=i.default.body,n=t.clientLeft||o.clientLeft||0,e=s.default.pageXOffset||o.scrollLeft,e=r.left+e-n,n=t.clientTop||o.clientTop||0,t=s.default.pageYOffset||o.scrollTop,o=r.top+t-n,{left:Math.round(e),top:Math.round(o)}):{left:0,top:0}}function f(t){return!!t&&"object"==typeof t&&1===t.nodeType}function m(t){return!!t&&"object"==typeof t&&3===t.nodeType}function y(t){for(;t.firstChild;)t.removeChild(t.firstChild);return t}function v(t){return"function"==typeof t&&(t=t()),(Array.isArray(t)?t:[t]).map(function(t){return f(t="function"==typeof t?t():t)||m(t)?t:"string"==typeof t&&/\S/.test(t)?i.default.createTextNode(t):void 0}).filter(function(t){return t})}function g(e,t){return v(t).forEach(function(t){return e.appendChild(t)}),e}},{"./guid.js":129,"./log.js":130,"global/document":1,"global/window":2,tsml:54}],126:[function(t,e,n){function o(t){return t&&t.__esModule?t:{default:t}}function r(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}n.__esModule=!0,n.on=c,n.off=p,n.trigger=s,n.one=function t(e,n,o){if(Array.isArray(n))return f(t,e,n,o);var r=function t(){p(e,n,t),o.apply(this,arguments)};r.guid=o.guid=o.guid||i.newGUID();c(e,n,r)},n.fixEvent=h;var l=r(t("./dom.js")),i=r(t("./guid.js")),a=o(t("global/window")),u=o(t("global/document"));function c(s,t,e){if(Array.isArray(t))return f(c,s,t,e);var a=l.getElData(s);a.handlers||(a.handlers={}),a.handlers[t]||(a.handlers[t]=[]),e.guid||(e.guid=i.newGUID()),a.handlers[t].push(e),a.dispatcher||(a.disabled=!1,a.dispatcher=function(t,e){if(!a.disabled){t=h(t);var n=a.handlers[t.type];if(n)for(var o=n.slice(0),r=0,i=o.length;r',n=r.firstChild,r.setAttribute("style","display:none; position:absolute;"),a.default.body.appendChild(r)),{}),s=0;sx',t=e.firstChild.href),t},n.getFileExtension=function(t){if("string"==typeof t){t=/^(\/?)([\s\S]*?)((?:\.{1,2}|[^\/]+?)(\.([^\.\/\?]+)))(?:[\/]*|[\?].*)$/i.exec(t);if(t)return t.pop().toLowerCase()}return""};n.isCrossOrigin=function(t){var e=i.default.location,t=r(t);return(":"===t.protocol?e:t).protocol+t.host!==e.protocol+e.host}},{"global/document":1,"global/window":2}],136:[function(t,e,n){function o(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}function r(t){return t&&t.__esModule?t:{default:t}}n.__esModule=!0;function i(t,e,n){var o;if("string"==typeof t){if(0===t.indexOf("#")&&(t=t.slice(1)),i.getPlayers()[t])return e&&b.default.warn('Player "'+t+'" is already initialised. Options will not be applied.'),n&&i.getPlayers()[t].ready(n),i.getPlayers()[t];o=_.getEl(t)}else o=t;if(o&&o.nodeName)return o.player||new h.default(o,e,n);throw new TypeError("The element or ID supplied is not valid. (videojs)")}var s=r(t("global/document")),a=o(t("./setup")),l=o(t("./utils/stylesheet.js")),u=r(t("./component")),c=r(t("./event-target")),p=o(t("./utils/events.js")),h=r(t("./player")),d=r(t("./plugins.js")),f=r(t("../../src/js/utils/merge-options.js")),m=o(t("./utils/fn.js")),y=r(t("./tracks/text-track.js")),v=(r(t("object.assign")),t("./utils/time-ranges.js")),g=r(t("./utils/format-time.js")),b=r(t("./utils/log.js")),_=o(t("./utils/dom.js")),j=o(t("./utils/browser.js")),w=o(t("./utils/url.js")),T=r(t("./extend.js")),x=r(t("lodash-compat/object/merge")),E=r(t("./utils/create-deprecation-proxy.js")),S=r(t("xhr")),t=(r(t("./tech/html5.js")),r(t("./tech/flash.js")),"undefined"==typeof HTMLVideoElement&&(s.default.createElement("video"),s.default.createElement("audio"),s.default.createElement("track")),s.default.querySelector(".vjs-styles-defaults"));t||(t=l.createStyleElement("vjs-styles-defaults"),(s=s.default.querySelector("head")).insertBefore(t,s.firstChild),l.setTextContent(t,"\n .video-js {\n width: 300px;\n height: 150px;\n }\n\n .vjs-fluid {\n padding-top: 56.25%\n }\n ")),a.autoSetupTimeout(1,i),i.VERSION="5.1.0",i.options=h.default.prototype.options_,i.getPlayers=function(){return h.default.players},i.players=E.default(h.default.players,{get:"Access to videojs.players is deprecated; use videojs.getPlayers instead",set:"Modification of videojs.players is deprecated"}),i.getComponent=u.default.getComponent,i.registerComponent=u.default.registerComponent,i.browser=j,i.TOUCH_ENABLED=j.TOUCH_ENABLED,i.extend=T.default,i.mergeOptions=f.default,i.bind=m.bind,i.plugin=d.default,i.addLanguage=function(t,e){var n;return t=(""+t).toLowerCase(),x.default(i.options.languages,((n={})[t]=e,n))[t]},i.log=b.default,i.createTimeRange=i.createTimeRanges=v.createTimeRanges,i.formatTime=g.default,i.parseUrl=w.parseUrl,i.isCrossOrigin=w.isCrossOrigin,i.EventTarget=c.default,i.on=p.on,i.one=p.one,i.off=p.off,i.trigger=p.trigger,i.xhr=S.default,i.TextTrack=y.default,"object"==typeof n&&"object"==typeof e&&(e.exports=i),n.default=i,e.exports=n.default},{"../../src/js/utils/merge-options.js":131,"./component":64,"./event-target":96,"./extend.js":97,"./player":105,"./plugins.js":106,"./setup":108,"./tech/flash.js":111,"./tech/html5.js":112,"./tracks/text-track.js":121,"./utils/browser.js":122,"./utils/create-deprecation-proxy.js":124,"./utils/dom.js":125,"./utils/events.js":126,"./utils/fn.js":127,"./utils/format-time.js":128,"./utils/log.js":130,"./utils/stylesheet.js":132,"./utils/time-ranges.js":133,"./utils/url.js":135,"global/document":1,"lodash-compat/object/merge":40,"object.assign":45,xhr:55}]},{},[136])(136)}),t=(p=this).vttjs={},e=t.VTTCue,n=t.VTTRegion,o=p.VTTCue,r=p.VTTRegion,t.shim=function(){t.VTTCue=e,t.VTTRegion=n},t.restore=function(){t.VTTCue=o,t.VTTRegion=r},s=(p=this).vttjs||{},_={"":!0,lr:!0,rl:!0},i={start:!0,middle:!0,end:!0,left:!0,right:!0},a.prototype.getCueAsHTML=function(){return WebVTT.convertCueToDOMTree(window,this.text)},p.VTTCue=p.VTTCue||a,s.VTTCue=a,s=(p=this).vttjs||{},l={"":!0,up:!0},p.VTTRegion=p.VTTRegion||c,s.VTTRegion=c;var p=this,h=(this.vttjs,Object.create||function(t){if(1!==arguments.length)throw new Error("Object.create shim only accepts one parameter.");return d.prototype=t,new d});function d(){}function f(t,e){this.name="ParsingError",this.code=t.code,this.message=e||t.message}function m(t){function e(t,e,n,o){return 3600*(0|t)+60*(0|e)+(0|n)+(0|o)/1e3}t=t.match(/^(\d+):(\d{2})(:\d{2})?\.(\d{3})/);return t?t[3]?e(t[1],t[2],t[3].replace(":",""),t[4]):59","":"","":""," ":" "},b={c:"span",i:"i",b:"b",u:"u",ruby:"ruby",rt:"rt",v:"span",lang:"span"},T={v:"title",lang:"lang"},x={rt:"ruby"};function E(t,e){function n(t){return g[t]}for(var o,r,i,s,a,l,u,c=t.document.createElement("div"),p=c,h=[];null!==(u=void 0,u=e?(u=(u=e.match(/^([^<]*)(<[^>]+>?)?/))[1]||u[2],e=e.substr(u.length),u):null);)"<"===u[0]?"/"===u[1]?h.length&&h[h.length-1]===u.substr(2).replace(">","")&&(h.pop(),p=p.parentNode):(i=m(u.substr(1,u.length-2)))?(o=t.document.createProcessingInstruction("timestamp",i),p.appendChild(o)):(r=u.match(/^<([^.\s/0-9>]+)(\.[^\s\\>]+)?([^>\\]+)?(\\?)>?$/))&&(i=r[1],s=r[3],l=a=void 0,l=b[i],o=l?((a=t.document.createElement(l)).localName=l,(l=T[i])&&s&&(a[l]=s.trim()),a):null)&&(i=p,x[(l=o).localName]&&x[l.localName]!==i.localName||(r[2]&&(o.className=r[2].substr(1).replace("."," ")),h.push(r[1]),p.appendChild(o),p=o)):p.appendChild(t.document.createTextNode((t=>{for(;r=t.match(/&(amp|lt|gt|lrm|rlm|nbsp);/);)t=t.replace(r[0],n);return t})(u)));return c}var S=[1470,1472,1475,1478,1488,1489,1490,1491,1492,1493,1494,1495,1496,1497,1498,1499,1500,1501,1502,1503,1504,1505,1506,1507,1508,1509,1510,1511,1512,1513,1514,1520,1521,1522,1523,1524,1544,1547,1549,1563,1566,1567,1568,1569,1570,1571,1572,1573,1574,1575,1576,1577,1578,1579,1580,1581,1582,1583,1584,1585,1586,1587,1588,1589,1590,1591,1592,1593,1594,1595,1596,1597,1598,1599,1600,1601,1602,1603,1604,1605,1606,1607,1608,1609,1610,1645,1646,1647,1649,1650,1651,1652,1653,1654,1655,1656,1657,1658,1659,1660,1661,1662,1663,1664,1665,1666,1667,1668,1669,1670,1671,1672,1673,1674,1675,1676,1677,1678,1679,1680,1681,1682,1683,1684,1685,1686,1687,1688,1689,1690,1691,1692,1693,1694,1695,1696,1697,1698,1699,1700,1701,1702,1703,1704,1705,1706,1707,1708,1709,1710,1711,1712,1713,1714,1715,1716,1717,1718,1719,1720,1721,1722,1723,1724,1725,1726,1727,1728,1729,1730,1731,1732,1733,1734,1735,1736,1737,1738,1739,1740,1741,1742,1743,1744,1745,1746,1747,1748,1749,1765,1766,1774,1775,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1807,1808,1810,1811,1812,1813,1814,1815,1816,1817,1818,1819,1820,1821,1822,1823,1824,1825,1826,1827,1828,1829,1830,1831,1832,1833,1834,1835,1836,1837,1838,1839,1869,1870,1871,1872,1873,1874,1875,1876,1877,1878,1879,1880,1881,1882,1883,1884,1885,1886,1887,1888,1889,1890,1891,1892,1893,1894,1895,1896,1897,1898,1899,1900,1901,1902,1903,1904,1905,1906,1907,1908,1909,1910,1911,1912,1913,1914,1915,1916,1917,1918,1919,1920,1921,1922,1923,1924,1925,1926,1927,1928,1929,1930,1931,1932,1933,1934,1935,1936,1937,1938,1939,1940,1941,1942,1943,1944,1945,1946,1947,1948,1949,1950,1951,1952,1953,1954,1955,1956,1957,1969,1984,1985,1986,1987,1988,1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999,2e3,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026,2036,2037,2042,2048,2049,2050,2051,2052,2053,2054,2055,2056,2057,2058,2059,2060,2061,2062,2063,2064,2065,2066,2067,2068,2069,2074,2084,2088,2096,2097,2098,2099,2100,2101,2102,2103,2104,2105,2106,2107,2108,2109,2110,2112,2113,2114,2115,2116,2117,2118,2119,2120,2121,2122,2123,2124,2125,2126,2127,2128,2129,2130,2131,2132,2133,2134,2135,2136,2142,2208,2210,2211,2212,2213,2214,2215,2216,2217,2218,2219,2220,8207,64285,64287,64288,64289,64290,64291,64292,64293,64294,64295,64296,64298,64299,64300,64301,64302,64303,64304,64305,64306,64307,64308,64309,64310,64312,64313,64314,64315,64316,64318,64320,64321,64323,64324,64326,64327,64328,64329,64330,64331,64332,64333,64334,64335,64336,64337,64338,64339,64340,64341,64342,64343,64344,64345,64346,64347,64348,64349,64350,64351,64352,64353,64354,64355,64356,64357,64358,64359,64360,64361,64362,64363,64364,64365,64366,64367,64368,64369,64370,64371,64372,64373,64374,64375,64376,64377,64378,64379,64380,64381,64382,64383,64384,64385,64386,64387,64388,64389,64390,64391,64392,64393,64394,64395,64396,64397,64398,64399,64400,64401,64402,64403,64404,64405,64406,64407,64408,64409,64410,64411,64412,64413,64414,64415,64416,64417,64418,64419,64420,64421,64422,64423,64424,64425,64426,64427,64428,64429,64430,64431,64432,64433,64434,64435,64436,64437,64438,64439,64440,64441,64442,64443,64444,64445,64446,64447,64448,64449,64467,64468,64469,64470,64471,64472,64473,64474,64475,64476,64477,64478,64479,64480,64481,64482,64483,64484,64485,64486,64487,64488,64489,64490,64491,64492,64493,64494,64495,64496,64497,64498,64499,64500,64501,64502,64503,64504,64505,64506,64507,64508,64509,64510,64511,64512,64513,64514,64515,64516,64517,64518,64519,64520,64521,64522,64523,64524,64525,64526,64527,64528,64529,64530,64531,64532,64533,64534,64535,64536,64537,64538,64539,64540,64541,64542,64543,64544,64545,64546,64547,64548,64549,64550,64551,64552,64553,64554,64555,64556,64557,64558,64559,64560,64561,64562,64563,64564,64565,64566,64567,64568,64569,64570,64571,64572,64573,64574,64575,64576,64577,64578,64579,64580,64581,64582,64583,64584,64585,64586,64587,64588,64589,64590,64591,64592,64593,64594,64595,64596,64597,64598,64599,64600,64601,64602,64603,64604,64605,64606,64607,64608,64609,64610,64611,64612,64613,64614,64615,64616,64617,64618,64619,64620,64621,64622,64623,64624,64625,64626,64627,64628,64629,64630,64631,64632,64633,64634,64635,64636,64637,64638,64639,64640,64641,64642,64643,64644,64645,64646,64647,64648,64649,64650,64651,64652,64653,64654,64655,64656,64657,64658,64659,64660,64661,64662,64663,64664,64665,64666,64667,64668,64669,64670,64671,64672,64673,64674,64675,64676,64677,64678,64679,64680,64681,64682,64683,64684,64685,64686,64687,64688,64689,64690,64691,64692,64693,64694,64695,64696,64697,64698,64699,64700,64701,64702,64703,64704,64705,64706,64707,64708,64709,64710,64711,64712,64713,64714,64715,64716,64717,64718,64719,64720,64721,64722,64723,64724,64725,64726,64727,64728,64729,64730,64731,64732,64733,64734,64735,64736,64737,64738,64739,64740,64741,64742,64743,64744,64745,64746,64747,64748,64749,64750,64751,64752,64753,64754,64755,64756,64757,64758,64759,64760,64761,64762,64763,64764,64765,64766,64767,64768,64769,64770,64771,64772,64773,64774,64775,64776,64777,64778,64779,64780,64781,64782,64783,64784,64785,64786,64787,64788,64789,64790,64791,64792,64793,64794,64795,64796,64797,64798,64799,64800,64801,64802,64803,64804,64805,64806,64807,64808,64809,64810,64811,64812,64813,64814,64815,64816,64817,64818,64819,64820,64821,64822,64823,64824,64825,64826,64827,64828,64829,64848,64849,64850,64851,64852,64853,64854,64855,64856,64857,64858,64859,64860,64861,64862,64863,64864,64865,64866,64867,64868,64869,64870,64871,64872,64873,64874,64875,64876,64877,64878,64879,64880,64881,64882,64883,64884,64885,64886,64887,64888,64889,64890,64891,64892,64893,64894,64895,64896,64897,64898,64899,64900,64901,64902,64903,64904,64905,64906,64907,64908,64909,64910,64911,64914,64915,64916,64917,64918,64919,64920,64921,64922,64923,64924,64925,64926,64927,64928,64929,64930,64931,64932,64933,64934,64935,64936,64937,64938,64939,64940,64941,64942,64943,64944,64945,64946,64947,64948,64949,64950,64951,64952,64953,64954,64955,64956,64957,64958,64959,64960,64961,64962,64963,64964,64965,64966,64967,65008,65009,65010,65011,65012,65013,65014,65015,65016,65017,65018,65019,65020,65136,65137,65138,65139,65140,65142,65143,65144,65145,65146,65147,65148,65149,65150,65151,65152,65153,65154,65155,65156,65157,65158,65159,65160,65161,65162,65163,65164,65165,65166,65167,65168,65169,65170,65171,65172,65173,65174,65175,65176,65177,65178,65179,65180,65181,65182,65183,65184,65185,65186,65187,65188,65189,65190,65191,65192,65193,65194,65195,65196,65197,65198,65199,65200,65201,65202,65203,65204,65205,65206,65207,65208,65209,65210,65211,65212,65213,65214,65215,65216,65217,65218,65219,65220,65221,65222,65223,65224,65225,65226,65227,65228,65229,65230,65231,65232,65233,65234,65235,65236,65237,65238,65239,65240,65241,65242,65243,65244,65245,65246,65247,65248,65249,65250,65251,65252,65253,65254,65255,65256,65257,65258,65259,65260,65261,65262,65263,65264,65265,65266,65267,65268,65269,65270,65271,65272,65273,65274,65275,65276,67584,67585,67586,67587,67588,67589,67592,67594,67595,67596,67597,67598,67599,67600,67601,67602,67603,67604,67605,67606,67607,67608,67609,67610,67611,67612,67613,67614,67615,67616,67617,67618,67619,67620,67621,67622,67623,67624,67625,67626,67627,67628,67629,67630,67631,67632,67633,67634,67635,67636,67637,67639,67640,67644,67647,67648,67649,67650,67651,67652,67653,67654,67655,67656,67657,67658,67659,67660,67661,67662,67663,67664,67665,67666,67667,67668,67669,67671,67672,67673,67674,67675,67676,67677,67678,67679,67840,67841,67842,67843,67844,67845,67846,67847,67848,67849,67850,67851,67852,67853,67854,67855,67856,67857,67858,67859,67860,67861,67862,67863,67864,67865,67866,67867,67872,67873,67874,67875,67876,67877,67878,67879,67880,67881,67882,67883,67884,67885,67886,67887,67888,67889,67890,67891,67892,67893,67894,67895,67896,67897,67903,67968,67969,67970,67971,67972,67973,67974,67975,67976,67977,67978,67979,67980,67981,67982,67983,67984,67985,67986,67987,67988,67989,67990,67991,67992,67993,67994,67995,67996,67997,67998,67999,68e3,68001,68002,68003,68004,68005,68006,68007,68008,68009,68010,68011,68012,68013,68014,68015,68016,68017,68018,68019,68020,68021,68022,68023,68030,68031,68096,68112,68113,68114,68115,68117,68118,68119,68121,68122,68123,68124,68125,68126,68127,68128,68129,68130,68131,68132,68133,68134,68135,68136,68137,68138,68139,68140,68141,68142,68143,68144,68145,68146,68147,68160,68161,68162,68163,68164,68165,68166,68167,68176,68177,68178,68179,68180,68181,68182,68183,68184,68192,68193,68194,68195,68196,68197,68198,68199,68200,68201,68202,68203,68204,68205,68206,68207,68208,68209,68210,68211,68212,68213,68214,68215,68216,68217,68218,68219,68220,68221,68222,68223,68352,68353,68354,68355,68356,68357,68358,68359,68360,68361,68362,68363,68364,68365,68366,68367,68368,68369,68370,68371,68372,68373,68374,68375,68376,68377,68378,68379,68380,68381,68382,68383,68384,68385,68386,68387,68388,68389,68390,68391,68392,68393,68394,68395,68396,68397,68398,68399,68400,68401,68402,68403,68404,68405,68416,68417,68418,68419,68420,68421,68422,68423,68424,68425,68426,68427,68428,68429,68430,68431,68432,68433,68434,68435,68436,68437,68440,68441,68442,68443,68444,68445,68446,68447,68448,68449,68450,68451,68452,68453,68454,68455,68456,68457,68458,68459,68460,68461,68462,68463,68464,68465,68466,68472,68473,68474,68475,68476,68477,68478,68479,68608,68609,68610,68611,68612,68613,68614,68615,68616,68617,68618,68619,68620,68621,68622,68623,68624,68625,68626,68627,68628,68629,68630,68631,68632,68633,68634,68635,68636,68637,68638,68639,68640,68641,68642,68643,68644,68645,68646,68647,68648,68649,68650,68651,68652,68653,68654,68655,68656,68657,68658,68659,68660,68661,68662,68663,68664,68665,68666,68667,68668,68669,68670,68671,68672,68673,68674,68675,68676,68677,68678,68679,68680,126464,126465,126466,126467,126469,126470,126471,126472,126473,126474,126475,126476,126477,126478,126479,126480,126481,126482,126483,126484,126485,126486,126487,126488,126489,126490,126491,126492,126493,126494,126495,126497,126498,126500,126503,126505,126506,126507,126508,126509,126510,126511,126512,126513,126514,126516,126517,126518,126519,126521,126523,126530,126535,126537,126539,126541,126542,126543,126545,126546,126548,126551,126553,126555,126557,126559,126561,126562,126564,126567,126568,126569,126570,126572,126573,126574,126575,126576,126577,126578,126580,126581,126582,126583,126585,126586,126587,126588,126590,126592,126593,126594,126595,126596,126597,126598,126599,126600,126601,126603,126604,126605,126606,126607,126608,126609,126610,126611,126612,126613,126614,126615,126616,126617,126618,126619,126625,126626,126627,126629,126630,126631,126632,126633,126635,126636,126637,126638,126639,126640,126641,126642,126643,126644,126645,126646,126647,126648,126649,126650,126651,1114109];function C(t){var e=[],n="";if(t&&t.childNodes)for(s(e,t);n=function t(e){var n,o,r;return e&&e.length?(o=(n=e.pop()).textContent||n.innerText)?(r=o.match(/^.*(\n|\r)/))?r[e.length=0]:o:"ruby"===n.tagName?t(e):n.childNodes?(s(e,n),t(e)):void 0:null}(e);)for(var o=0;o{if("number"==typeof t.line&&(t.snapToLines||0<=t.line&&t.line<=100))return t.line;if(!t.track||!t.track.textTrackList||!t.track.textTrackList.mediaElement)return-1;for(var e=t.track,n=e.textTrackList,o=0,r=0;rp&&(c=c<0?-1:1,c*=Math.ceil(p/u)*u),i<0&&(c+=""===r.vertical?a.height:a.width,s=s.reverse()),o.move(h,c)}else{var d=o.lineHeight/a.height*100;switch(r.lineAlign){case"middle":i-=d/2;break;case"end":i-=d}switch(r.vertical){case"":e.applyStyles({top:e.formatStyle(i,"%")});break;case"rl":e.applyStyles({left:e.formatStyle(i,"%")});break;case"lr":e.applyStyles({right:e.formatStyle(i,"%")})}s=["+y","-x","+x","-y"],o=new P(e)}p=((t,e)=>{for(var n,o=new P(t),r=1,i=0;it.left&&this.topt.top},P.prototype.overlapsAny=function(t){for(var e=0;e=t.top&&this.bottom<=t.bottom&&this.left>=t.left&&this.right<=t.right},P.prototype.overlapsOppositeAxis=function(t,e){switch(e){case"+x":return this.leftt.right;case"+y":return this.topt.bottom}},P.prototype.intersectPercentage=function(t){return Math.max(0,Math.min(this.right,t.right)-Math.max(this.left,t.left))*Math.max(0,Math.min(this.bottom,t.bottom)-Math.max(this.top,t.top))/(this.height*this.width)},P.prototype.toCSSCompatValues=function(t){return{top:this.top-t.top,bottom:t.bottom-this.bottom,left:this.left-t.left,right:t.right-this.right,height:this.height,width:this.width}},P.getSimpleBoxPosition=function(t){var e=t.div?t.div.offsetHeight:t.tagName?t.offsetHeight:0,n=t.div?t.div.offsetWidth:t.tagName?t.offsetWidth:0,o=t.div?t.div.offsetTop:t.tagName?t.offsetTop:0;return{left:(t=t.div?t.div.getBoundingClientRect():t.tagName?t.getBoundingClientRect():t).left,right:t.right,top:t.top||o,height:t.height||e,bottom:t.bottom||o+(t.height||e),width:t.width||n}},A.StringDecoder=function(){return{decode:function(t){if(!t)return"";if("string"!=typeof t)throw new Error("Error - expected string data.");return decodeURIComponent(encodeURIComponent(t))}}},A.convertCueToDOMTree=function(t,e){return t&&e?E(t,e):null},A.processCues=function(t,e,n){if(!t||!e||!n)return null;for(;n.firstChild;)n.removeChild(n.firstChild);var o=t.document.createElement("div");if(o.style.position="absolute",o.style.left="0",o.style.right="0",o.style.top="0",o.style.bottom="0",o.style.margin="1.5%",n.appendChild(o),(t=>{for(var e=0;e{var n,s,o=e;function r(){var t=m(e);if(null===t)throw new f(f.Errors.BadTimeStamp,"Malformed timestamp: "+o);return e=e.replace(/^[^\sa-zA-Z-]+/,""),t}function a(){e=e.replace(/^\s+/,"")}if(a(),t.startTime=r(),a(),"--\x3e"!==e.substr(0,3))throw new f(f.Errors.BadTimeStamp,"Malformed time stamp (time stamps must be separated by '--\x3e'): "+o);e=e.substr(3),a(),t.endTime=r(),a(),n=e,t=t,s=new y,v(n,function(t,e){switch(t){case"region":for(var n=i.length-1;0<=n;n--)if(i[n].id===e){s.set(t,i[n].region);break}break;case"vertical":s.alt(t,e,["rl","lr"]);break;case"line":var o=e.split(","),r=o[0];s.integer(t,r),s.percent(t,r)&&s.set("snapToLines",!1),s.alt(t,r,["auto"]),2===o.length&&s.alt("lineAlign",o[1],["start","middle","end"]);break;case"position":o=e.split(","),s.percent(t,o[0]),2===o.length&&s.alt("positionAlign",o[1],["start","middle","end"]);break;case"size":s.percent(t,e);break;case"align":s.alt(t,e,["start","middle","end","left","right"])}},/:/,/\s/),t.region=s.get("region",null),t.vertical=s.get("vertical",""),t.line=s.get("line","auto"),t.lineAlign=s.get("lineAlign","start"),t.snapToLines=s.get("snapToLines",!0),t.size=s.get("size",100),t.align=s.get("align","middle"),t.position=s.get("position",{start:0,left:0,middle:50,end:100,right:100},t.align),t.positionAlign=s.get("positionAlign",{start:"start",left:"start",middle:"middle",end:"end",right:"end"},t.align)})(r,o.cue,o.regionList)}catch(t){o.reportOrThrowError(t),o.cue=null,o.state="BADCUE";continue}o.state="CUETEXT";continue;case"CUETEXT":var a=-1!==r.indexOf("--\x3e");if(!r||a&&(s=!0)){o.oncue&&o.oncue(o.cue),o.cue=null,o.state="ID";continue}o.cue.text&&(o.cue.text+="\n"),o.cue.text+=r;continue;case"BADCUE":r||(o.state="ID");continue}}}catch(t){o.reportOrThrowError(t),"CUETEXT"===o.state&&o.cue&&o.oncue&&o.oncue(o.cue),o.cue=null,o.state="INITIAL"===o.state?"BADWEBVTT":"BADCUE"}return this},flush:function(){var e=this;try{if(e.buffer+=e.decoder.decode(),!e.cue&&"HEADER"!==e.state||(e.buffer+="\n\n",e.parse()),"INITIAL"===e.state)throw new f(f.Errors.BadSignature)}catch(t){e.reportOrThrowError(t)}return e.onflush&&e.onflush(),this}},p.WebVTT=A}.call(this)}.call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],conf:[function(t,e,n){var o;(e=void 0===e?this.conf={}:e.exports).EMB_DEBUG=!1,e.EMB_HTTPS=!0,e.CDN_ORIGIN=(e.EMB_HTTPS?"https":"http")+"://cdn.embedly.com",e.CDN_BASE_URL=e.CDN_ORIGIN+"/",e.EMB_ASSET_VERSION="74fbf467",e.WIDGET_FRAME_SRC=e.CDN_ORIGIN+"/widgets/",e.SECURE_WIDGET_FRAME_SRC="https://cdn.embedly.com/widgets/",e.EMB_POST_MESSAGE=!!window.postMessage,e.EMB_PROGRESS=!0,e.APP_API_URL="https://app.embed.ly",e.PLATFORM_KEY="fd92ebbc52fc43fb98f69e50e7893c13",e.CHROMIE_URL="https://chromie.embed.ly",o=window.location.pathname.split(".")[0].split("/"),e.EMB_GROUP=o[o.length-1].toLowerCase(),e.PAGE_PROGRESS_DOMAINS=[]},{}]},{},[20]);
A new approach that delivers in fresh
1:45
The Afresh advantage for produce.
Turn the complexity of produce (ripeness, weather, ad lift, supplier swaps) into coordinated, predictable performance with Afresh's award-winning AI.
Unify the fresh supply chain
From DC to backroom to on-shelf: one platform.
Connects produce buying, store ordering, ripening cycles.
Traditional replenishment tools were built for shelf-stable cans and boxes. They cannot model ripening curves, weather impact on demand, weekly ad lift, holiday spikes, supplier substitutions, or the gap between conventional and organic SKUs. Afresh was engineered for produce from day one, turning that complexity into profitability, fewer dump bins, and lasting growth.
Center store data
Consistent UPCs, pack sizes, and discrete units make center-store inventory clean and predictable.
Produce department data
Ripeness curves, weather swings, weekly ad lift, conventional vs organic, weight-variable items. Produce data shifts every hour.
Center store merchandising
Biannual planograms are mostly static, with the occasional endcap promotion.
Produce merchandising
Wet rack rotates daily. Holiday spikes (Cinco, July 4, Thanksgiving) reshape the entire department. Ad-driven SKUs lift 5x in a single week.
Center store workflows
Consistent packaging and scannable barcodes make inventory management straightforward.
Produce team workflows
Produce managers juggle hyper-perishables, supplier substitutions, random weights, and ripening windows, all before 8am.
More
Inside the produce engine
Why this matters for produceAlbertsons rolled Afresh out across all 2,200 banner produce departments. 25% shrink reduction at scale. The same engine, the same playbook is available to any produce VP today.
Our customers know that they can find the freshest, highest-quality foods and a great assortment at Heinen’s. The partnership with Afresh enables us to continue to deliver on that promise of excellent food and the best in-stock rate.
Jeff Heinen
,
Co-CEO of Heinen’s
We're still looking for those individuals who approach produce as an art. But with Afresh, if a produce manager leaves, the knowledge that you'll have an increase in cherry orders during the summer doesn't leave with them.
Jason Resner
,
Meat Category Manager at Fresh Thyme
By partnering with Afresh, we are now able to better manage produce supply across all 2,200 stores, giving our department teams a tool to predict demand SKU-by-SKU, account for ripening windows, and monitor inventory in real time.
Produce is the largest source of in-store food waste, and the highest-shrink department in any grocer. A 25% shrink reduction means tens of thousands of pounds of fruit and vegetables sold instead of dumped, every store, every year.
Afresh Raises $34M to Scale AI Across the Grocery Industry — Driving Fresher Food, Stronger Margins, and Less Waste
Round co-led by Just Climate — the climate-led investment strategy of Generation Investment Management — and High Sage Ventures, as Afresh’s AI platform scales to 12,500+ departments with 70% year-over-year revenue growth in 2025.
Explore
Press
•
Article
Afresh Expands AI Platform to Cover Every Item in Stores
Afresh's AI platform now manages replenishment, inventory, and DC buying decisions across center store and general merchandise—already ordering more than 320 million center store items annually.
Explore
Industry Insights
•
Article
Fixing the Hidden Layer Holding Back Fresh
For decades, fresh buying has relied on instinct and spreadsheets. Today, technology can finally match the pace of perishables.
Explore
Press
•
Article
Afresh Launches Industry’s First AI-Powered Fresh Buying Solution with Wakefern
Wakefern, the nation’s largest retailer-owned cooperative, will be among the first to deploy Afresh’s breakthrough Fresh Buying solution — the world's first technology designed to help fresh buyers take control of their entire day, replacing fragmented systems with one streamlined intelligent solution built for the pace of Fresh and the best in customer experience.
Explore
Press
•
Article
Afresh Completes AI-Powered Fresh Replenishment and Inventory Management Solution Roll Out Across All Albertsons Companies Fresh Departments
Afresh now powers the bakery and deli for Albertsons Cos. in addition to the retailer's meat, seafood and produce departments