Built for c-store fresh foodservice · 7-Eleven Wawa Sheetz Casey's RaceTrac

Fresh is the new fuel.

Built for c-store fresh foodservice. The same AI platform that runs all of Albertsons fresh, adapted for the pace of Wawa-grade made-to-order, Sheetz-scale prepared foods, and 7-Eleven's national fresh push.

  • Engineered for foodservice complexity
  • 30 days to first store
  • Built on the platform proven at every Albertsons banner
Albertsons LogoWinco Logosavesmart logoFresh Thyme LogoCub logoBashas's LogoHeinens Logo

+3%

Foodservice sales lift

+25%

Hot food & prepared shrink cut

80%

Daypart stockout reduction

+20%

Foodservice labor efficiency

+7%

Faster commissary & case turns

+94%

Associate adherence rate

Meet the Afresh platform —
tuned for c-store fresh.

Purpose-built for fresh foodservice, Afresh goes beyond traditional demand forecasting and perpetual inventory to drive optimal decisions across commissary kitchens, store-level prep, and the hot case.

A new approach that deliver in fresh"})},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]+'" '}),'"+i+""},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 c-store fresh foodservice
Video Thumbnail
1:45

The Afresh advantage

Transform the complexity of c-store fresh foodservice into coordinated, predictable performance with Afresh's award-winning AI — built for foodservice teams and the realities of made-to-order, prepared foods, and hot case operations.

Unify the fresh supply chain

One platform across commissary, DC, store ordering, and case-level inventory

Higher turns, stronger foodservice margins, better availability at peak dayparts

Reduce hot food and prepared foods shrink chainwide

Navigate messy data

Connect commissary production, DC buying, store ordering, and case-level inventory across every store in your network — all on one platform

C-store data is messy: split shifts, shrink hidden in waste sheets, store-level associate variability — Afresh is built for the imperfect inputs

Turn imperfect inputs into clear, profitable actions for foodservice teams

Optimize real world c-store decisions

Balance hot food vs grab-and-go vs case-stocked SKUs

Account for daypart shifts, weekly traffic, weather, and event-driven demand

Handle uncertainty with Intelligent Inventory across prepared foods

Empower fresh teams

Mobile-first daily guidance for c-store associates

Replaces the spreadsheet plus clipboard process you've outgrown

Faster onboarding for high-turnover foodservice teams

A fresh approach

Traditional tools can't keep up with c-store fresh foodservice complexity.
Afresh is purpose built for commissary kitchens, store-level production, daypart ordering, and hot case rotation — turning prepared-foods chaos into profitability and customer loyalty.

Industrialized food

Packaged grab-and-go data

Sealed roller-grill items, packaged sandwiches, and bottled drinks have consistent UPCs and predictable shelf lives

Made-to-order foodservice data

Daypart shifts, weather, traffic, and store-level associate execution make hot food and prepared foods data highly variable and hard to predict
Supermarket

Cooler & gondola merchandising

Cooler doors and gondola sets are mostly static with seasonal beverage promotions
fresh veggies

Hot case & prepared foods rotation 

Hot cases and prepared foods displays shift constantly to accommodate daypart traffic, perishability, and made-to-order quality
supermarket

Packaged inventory workflows

Consistent packaging and barcodes on packaged sandwiches, drinks, and snacks make case-stocked inventory straight-forward
raw meat

Foodservice associate workflows

C-store associates manage roller grills, made-to-order builds, hot cases, and commissary deliveries — all on a split shift, often without a dedicated foodservice manager
More

Fresh innovation at foodservice scale

Why this matters for c-store

The same AI engine that runs Albertsons fresh — fully deployed across 2,200 banner stores — is built for c-store foodservice complexity. Wawa-grade made-to-order, Sheetz-scale prepared foods, 7-Eleven's national fresh push: same platform, sub-segment-tuned.

Albertsons Companies + Afresh: How fresh-first innovation creates chainwide value
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
Jason Resner
,
Meat Category Manager at Fresh Thyme
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
Jeff Heinen
,
Co-CEO of Heinen’s
By partnering with Afresh, we are now able to improve our processes to better manage our fresh product supply and provide our store teams with a tool to better predict demand and monitor inventory.
Susan Morris
Susan Morris
,
CEO at Albertsons Companies

Customers trust Afresh

Albertsons
Fruits

With Afresh, what’s good for business is also good for the planet.

Our advances in technology always come back to our mission: To eliminate food waste and make fresh food accessible to all.
About Afresh

Win lunch. Without the shrink.

Pilot a single store in 30 days. Cut fresh shrink 25%. Then scale to your network.

fruits

More fresh ideas and tools.

Afresh Raises $34M to Scale AI Across the Grocery Industry — Driving Fresher Food, Stronger Margins, and Less Waste
  • Press
  • Article

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
Afresh Expands AI Platform to Cover Every Item in Stores
  • 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
Fixing the Hidden Layer Holding Back Fresh
  • 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
Afresh Launches Industry’s First AI-Powered Fresh Buying Solution with Wakefern
  • 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
Afresh Completes AI-Powered Fresh Replenishment and Inventory Management Solution Roll Out Across All Albertsons Companies Fresh Departments
  • 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

Explore
More