b.options.slidesToShow)){for(e=b.options.centerMode===!0?b.options.slidesToShow+1:b.options.slidesToShow,c=b.slideCount;c>b.slideCount-e;c-=1)d=c-1,a(b.$slides[d]).clone(!0).attr(\"id\",\"\").attr(\"data-slick-index\",d-b.slideCount).prependTo(b.$slideTrack).addClass(\"slick-cloned\");for(c=0;e>c;c+=1)d=c,a(b.$slides[d]).clone(!0).attr(\"id\",\"\").attr(\"data-slick-index\",d+b.slideCount).appendTo(b.$slideTrack).addClass(\"slick-cloned\");b.$slideTrack.find(\".slick-cloned\").find(\"[id]\").each(function(){a(this).attr(\"id\",\"\")})}},b.prototype.setPaused=function(a){var b=this;b.options.autoplay===!0&&b.options.pauseOnHover===!0&&(b.paused=a,a?b.autoPlayClear():b.autoPlay())},b.prototype.selectHandler=function(b){var c=this,d=a(b.target).is(\".slick-slide\")?a(b.target):a(b.target).parents(\".slick-slide\"),e=parseInt(d.attr(\"data-slick-index\"));return e||(e=0),c.slideCount<=c.options.slidesToShow?(c.setSlideClasses(e),void c.asNavFor(e)):void c.slideHandler(e)},b.prototype.slideHandler=function(a,b,c){var d,e,f,g,h=null,i=this;return b=b||!1,i.animating===!0&&i.options.waitForAnimate===!0||i.options.fade===!0&&i.currentSlide===a||i.slideCount<=i.options.slidesToShow?void 0:(b===!1&&i.asNavFor(a),d=a,h=i.getLeft(d),g=i.getLeft(i.currentSlide),i.currentLeft=null===i.swipeLeft?g:i.swipeLeft,i.options.infinite===!1&&i.options.centerMode===!1&&(0>a||a>i.getDotCount()*i.options.slidesToScroll)?void(i.options.fade===!1&&(d=i.currentSlide,c!==!0?i.animateSlide(g,function(){i.postSlide(d);\r\n}):i.postSlide(d))):i.options.infinite===!1&&i.options.centerMode===!0&&(0>a||a>i.slideCount-i.options.slidesToScroll)?void(i.options.fade===!1&&(d=i.currentSlide,c!==!0?i.animateSlide(g,function(){i.postSlide(d)}):i.postSlide(d))):(i.options.autoplay===!0&&clearInterval(i.autoPlayTimer),e=0>d?i.slideCount%i.options.slidesToScroll!==0?i.slideCount-i.slideCount%i.options.slidesToScroll:i.slideCount+d:d>=i.slideCount?i.slideCount%i.options.slidesToScroll!==0?0:d-i.slideCount:d,i.animating=!0,i.$slider.trigger(\"beforeChange\",[i,i.currentSlide,e]),f=i.currentSlide,i.currentSlide=e,i.setSlideClasses(i.currentSlide),i.updateDots(),i.updateArrows(),i.options.fade===!0?(c!==!0?(i.fadeSlideOut(f),i.fadeSlide(e,function(){i.postSlide(e)})):i.postSlide(e),void i.animateHeight()):void(c!==!0?i.animateSlide(h,function(){i.postSlide(e)}):i.postSlide(e))))},b.prototype.startLoad=function(){var a=this;a.options.arrows===!0&&a.slideCount>a.options.slidesToShow&&(a.$prevArrow.hide(),a.$nextArrow.hide()),a.options.dots===!0&&a.slideCount>a.options.slidesToShow&&a.$dots.hide(),a.$slider.addClass(\"slick-loading\")},b.prototype.swipeDirection=function(){var a,b,c,d,e=this;return a=e.touchObject.startX-e.touchObject.curX,b=e.touchObject.startY-e.touchObject.curY,c=Math.atan2(b,a),d=Math.round(180*c/Math.PI),0>d&&(d=360-Math.abs(d)),45>=d&&d>=0?e.options.rtl===!1?\"left\":\"right\":360>=d&&d>=315?e.options.rtl===!1?\"left\":\"right\":d>=135&&225>=d?e.options.rtl===!1?\"right\":\"left\":e.options.verticalSwiping===!0?d>=35&&135>=d?\"left\":\"right\":\"vertical\"},b.prototype.swipeEnd=function(a){var c,b=this;if(b.dragging=!1,b.shouldClick=b.touchObject.swipeLength>10?!1:!0,void 0===b.touchObject.curX)return!1;if(b.touchObject.edgeHit===!0&&b.$slider.trigger(\"edge\",[b,b.swipeDirection()]),b.touchObject.swipeLength>=b.touchObject.minSwipe)switch(b.swipeDirection()){case\"left\":c=b.options.swipeToSlide?b.checkNavigable(b.currentSlide+b.getSlideCount()):b.currentSlide+b.getSlideCount(),b.slideHandler(c),b.currentDirection=0,b.touchObject={},b.$slider.trigger(\"swipe\",[b,\"left\"]);break;case\"right\":c=b.options.swipeToSlide?b.checkNavigable(b.currentSlide-b.getSlideCount()):b.currentSlide-b.getSlideCount(),b.slideHandler(c),b.currentDirection=1,b.touchObject={},b.$slider.trigger(\"swipe\",[b,\"right\"])}else b.touchObject.startX!==b.touchObject.curX&&(b.slideHandler(b.currentSlide),b.touchObject={})},b.prototype.swipeHandler=function(a){var b=this;if(!(b.options.swipe===!1||\"ontouchend\"in document&&b.options.swipe===!1||b.options.draggable===!1&&-1!==a.type.indexOf(\"mouse\")))switch(b.touchObject.fingerCount=a.originalEvent&&void 0!==a.originalEvent.touches?a.originalEvent.touches.length:1,b.touchObject.minSwipe=b.listWidth/b.options.touchThreshold,b.options.verticalSwiping===!0&&(b.touchObject.minSwipe=b.listHeight/b.options.touchThreshold),a.data.action){case\"start\":b.swipeStart(a);break;case\"move\":b.swipeMove(a);break;case\"end\":b.swipeEnd(a)}},b.prototype.swipeMove=function(a){var d,e,f,g,h,b=this;return h=void 0!==a.originalEvent?a.originalEvent.touches:null,!b.dragging||h&&1!==h.length?!1:(d=b.getLeft(b.currentSlide),b.touchObject.curX=void 0!==h?h[0].pageX:a.clientX,b.touchObject.curY=void 0!==h?h[0].pageY:a.clientY,b.touchObject.swipeLength=Math.round(Math.sqrt(Math.pow(b.touchObject.curX-b.touchObject.startX,2))),b.options.verticalSwiping===!0&&(b.touchObject.swipeLength=Math.round(Math.sqrt(Math.pow(b.touchObject.curY-b.touchObject.startY,2)))),e=b.swipeDirection(),\"vertical\"!==e?(void 0!==a.originalEvent&&b.touchObject.swipeLength>4&&a.preventDefault(),g=(b.options.rtl===!1?1:-1)*(b.touchObject.curX>b.touchObject.startX?1:-1),b.options.verticalSwiping===!0&&(g=b.touchObject.curY>b.touchObject.startY?1:-1),f=b.touchObject.swipeLength,b.touchObject.edgeHit=!1,b.options.infinite===!1&&(0===b.currentSlide&&\"right\"===e||b.currentSlide>=b.getDotCount()&&\"left\"===e)&&(f=b.touchObject.swipeLength*b.options.edgeFriction,b.touchObject.edgeHit=!0),b.options.vertical===!1?b.swipeLeft=d+f*g:b.swipeLeft=d+f*(b.$list.height()/b.listWidth)*g,b.options.verticalSwiping===!0&&(b.swipeLeft=d+f*g),b.options.fade===!0||b.options.touchMove===!1?!1:b.animating===!0?(b.swipeLeft=null,!1):void b.setCSS(b.swipeLeft)):void 0)},b.prototype.swipeStart=function(a){var c,b=this;return 1!==b.touchObject.fingerCount||b.slideCount<=b.options.slidesToShow?(b.touchObject={},!1):(void 0!==a.originalEvent&&void 0!==a.originalEvent.touches&&(c=a.originalEvent.touches[0]),b.touchObject.startX=b.touchObject.curX=void 0!==c?c.pageX:a.clientX,b.touchObject.startY=b.touchObject.curY=void 0!==c?c.pageY:a.clientY,void(b.dragging=!0))},b.prototype.unfilterSlides=b.prototype.slickUnfilter=function(){var a=this;null!==a.$slidesCache&&(a.unload(),a.$slideTrack.children(this.options.slide).detach(),a.$slidesCache.appendTo(a.$slideTrack),a.reinit())},b.prototype.unload=function(){var b=this;a(\".slick-cloned\",b.$slider).remove(),b.$dots&&b.$dots.remove(),b.$prevArrow&&b.htmlExpr.test(b.options.prevArrow)&&b.$prevArrow.remove(),b.$nextArrow&&b.htmlExpr.test(b.options.nextArrow)&&b.$nextArrow.remove(),b.$slides.removeClass(\"slick-slide slick-active slick-visible slick-current\").attr(\"aria-hidden\",\"true\").css(\"width\",\"\")},b.prototype.unslick=function(a){var b=this;b.$slider.trigger(\"unslick\",[b,a]),b.destroy()},b.prototype.updateArrows=function(){var b,a=this;b=Math.floor(a.options.slidesToShow/2),a.options.arrows===!0&&a.slideCount>a.options.slidesToShow&&!a.options.infinite&&(a.$prevArrow.removeClass(\"slick-disabled\").attr(\"aria-disabled\",\"false\"),a.$nextArrow.removeClass(\"slick-disabled\").attr(\"aria-disabled\",\"false\"),0===a.currentSlide?(a.$prevArrow.addClass(\"slick-disabled\").attr(\"aria-disabled\",\"true\"),a.$nextArrow.removeClass(\"slick-disabled\").attr(\"aria-disabled\",\"false\")):a.currentSlide>=a.slideCount-a.options.slidesToShow&&a.options.centerMode===!1?(a.$nextArrow.addClass(\"slick-disabled\").attr(\"aria-disabled\",\"true\"),a.$prevArrow.removeClass(\"slick-disabled\").attr(\"aria-disabled\",\"false\")):a.currentSlide>=a.slideCount-1&&a.options.centerMode===!0&&(a.$nextArrow.addClass(\"slick-disabled\").attr(\"aria-disabled\",\"true\"),a.$prevArrow.removeClass(\"slick-disabled\").attr(\"aria-disabled\",\"false\")))},b.prototype.updateDots=function(){var a=this;null!==a.$dots&&(a.$dots.find(\"li\").removeClass(\"slick-active\").attr(\"aria-hidden\",\"true\"),a.$dots.find(\"li\").eq(Math.floor(a.currentSlide/a.options.slidesToScroll)).addClass(\"slick-active\").attr(\"aria-hidden\",\"false\"))},b.prototype.visibility=function(){var a=this;document[a.hidden]?(a.paused=!0,a.autoPlayClear()):a.options.autoplay===!0&&(a.paused=!1,a.autoPlay())},b.prototype.initADA=function(){var b=this;b.$slides.add(b.$slideTrack.find(\".slick-cloned\")).attr({\"aria-hidden\":\"true\",tabindex:\"-1\"}).find(\"a, input, button, select\").attr({tabindex:\"-1\"}),b.$slideTrack.attr(\"role\",\"listbox\"),b.$slides.not(b.$slideTrack.find(\".slick-cloned\")).each(function(c){a(this).attr({role:\"option\",\"aria-describedby\":\"slick-slide\"+b.instanceUid+c})}),null!==b.$dots&&b.$dots.attr(\"role\",\"tablist\").find(\"li\").each(function(c){a(this).attr({role:\"presentation\",\"aria-selected\":\"false\",\"aria-controls\":\"navigation\"+b.instanceUid+c,id:\"slick-slide\"+b.instanceUid+c})}).first().attr(\"aria-selected\",\"true\").end().find(\"button\").attr(\"role\",\"button\").end().closest(\"div\").attr(\"role\",\"toolbar\"),b.activateADA()},b.prototype.activateADA=function(){var a=this;a.$slideTrack.find(\".slick-active\").attr({\"aria-hidden\":\"false\"}).find(\"a, input, button, select\").attr({tabindex:\"0\"})},b.prototype.focusHandler=function(){var b=this;b.$slider.on(\"focus.slick blur.slick\",\"*\",function(c){c.stopImmediatePropagation();var d=a(this);setTimeout(function(){b.isPlay&&(d.is(\":focus\")?(b.autoPlayClear(),b.paused=!0):(b.paused=!1,b.autoPlay()))},0)})},a.fn.slick=function(){var f,g,a=this,c=arguments[0],d=Array.prototype.slice.call(arguments,1),e=a.length;for(f=0;e>f;f++)if(\"object\"==typeof c||\"undefined\"==typeof c?a[f].slick=new b(a[f],c):g=a[f].slick[c].apply(a[f].slick,d),\"undefined\"!=typeof g)return g;return a}});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/js/slick.min.js\n// module id = 248\n// module chunks = 0","/**\n * State-based routing for AngularJS 1.x\n * @version v1.0.29\n * @link https://ui-router.github.io\n * @license MIT License, http://www.opensource.org/licenses/MIT\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('angular')) :\n typeof define === 'function' && define.amd ? define(['exports', 'angular'], factory) :\n (global = global || self, factory(global['@uirouter/angularjs-state-events'] = {}, global.angular));\n}(this, (function (exports, ng_from_import) { 'use strict';\n\n /** @publicapi @module ng1 */ /** */\n /** @hidden */ var ng_from_global = angular;\n /** @hidden */ var ng = ng_from_import && ng_from_import.module ? ng_from_import : ng_from_global;\n\n /**\n * # Legacy state events\n *\n * Polyfill implementation of the UI-Router 0.2.x state events.\n *\n * The 0.2.x state events are deprecated. We recommend moving to Transition Hooks instead, as they\n * provide much more flexibility, support async, and provide the context (the Transition, etc) necessary\n * to implement meaningful application behaviors.\n *\n * To enable these state events, include the `stateEvents.js` file in your project, e.g.,\n * ```\n * \n * ```\n * and also make sure you depend on the `ui.router.state.events` angular module, e.g.,\n * ```\n * angular.module(\"myApplication\", ['ui.router', 'ui.router.state.events']\n * ```\n *\n * @publicapi @module ng1_state_events\n */ /** */\n /**\n * An event broadcast on `$rootScope` when the state transition **begins**.\n *\n * ### Deprecation warning: use [[TransitionService.onStart]] instead\n *\n * You can use `event.preventDefault()`\n * to prevent the transition from happening and then the transition promise will be\n * rejected with a `'transition prevented'` value.\n *\n * Additional arguments to the event handler are provided:\n * - `toState`: the Transition Target state\n * - `toParams`: the Transition Target Params\n * - `fromState`: the state the transition is coming from\n * - `fromParams`: the parameters from the state the transition is coming from\n * - `options`: any Transition Options\n * - `$transition$`: the [[Transition]]\n *\n * #### Example:\n * ```js\n * $rootScope.$on('$stateChangeStart', function(event, transition) {\n * event.preventDefault();\n * // transitionTo() promise will be rejected with\n * // a 'transition prevented' error\n * })\n * ```\n *\n * @event $stateChangeStart\n * @deprecated\n */\n var $stateChangeStart;\n /**\n * An event broadcast on `$rootScope` if a transition is **cancelled**.\n *\n * ### Deprecation warning: use [[TransitionService.onStart]] instead\n *\n * Additional arguments to the event handler are provided:\n * - `toState`: the Transition Target state\n * - `toParams`: the Transition Target Params\n * - `fromState`: the state the transition is coming from\n * - `fromParams`: the parameters from the state the transition is coming from\n * - `options`: any Transition Options\n * - `$transition$`: the [[Transition]] that was cancelled\n *\n * @event $stateChangeCancel\n * @deprecated\n */\n var $stateChangeCancel;\n /**\n * An event broadcast on `$rootScope` once the state transition is **complete**.\n *\n * ### Deprecation warning: use [[TransitionService.onStart]] and [[Transition.promise]], or [[Transition.onSuccess]]\n *\n * Additional arguments to the event handler are provided:\n * - `toState`: the Transition Target state\n * - `toParams`: the Transition Target Params\n * - `fromState`: the state the transition is coming from\n * - `fromParams`: the parameters from the state the transition is coming from\n * - `options`: any Transition Options\n * - `$transition$`: the [[Transition]] that just succeeded\n *\n * @event $stateChangeSuccess\n * @deprecated\n */\n var $stateChangeSuccess;\n /**\n * An event broadcast on `$rootScope` when an **error occurs** during transition.\n *\n * ### Deprecation warning: use [[TransitionService.onStart]] and [[Transition.promise]], or [[Transition.onError]]\n *\n * It's important to note that if you\n * have any errors in your resolve functions (javascript errors, non-existent services, etc)\n * they will not throw traditionally. You must listen for this $stateChangeError event to\n * catch **ALL** errors.\n *\n * Additional arguments to the event handler are provided:\n * - `toState`: the Transition Target state\n * - `toParams`: the Transition Target Params\n * - `fromState`: the state the transition is coming from\n * - `fromParams`: the parameters from the state the transition is coming from\n * - `error`: The reason the transition errored.\n * - `options`: any Transition Options\n * - `$transition$`: the [[Transition]] that errored\n *\n * @event $stateChangeError\n * @deprecated\n */\n var $stateChangeError;\n /**\n * An event broadcast on `$rootScope` when a requested state **cannot be found** using the provided state name.\n *\n * ### Deprecation warning: use [[StateService.onInvalid]] instead\n *\n * The event is broadcast allowing any handlers a single chance to deal with the error (usually by\n * lazy-loading the unfound state). A `TargetState` object is passed to the listener handler,\n * you can see its properties in the example. You can use `event.preventDefault()` to abort the\n * transition and the promise returned from `transitionTo()` will be rejected with a\n * `'transition aborted'` error.\n *\n * Additional arguments to the event handler are provided:\n * - `unfoundState` Unfound State information. Contains: `to, toParams, options` properties.\n * - `fromState`: the state the transition is coming from\n * - `fromParams`: the parameters from the state the transition is coming from\n * - `options`: any Transition Options\n *\n * #### Example:\n * ```js\n * // somewhere, assume lazy.state has not been defined\n * $state.go(\"lazy.state\", { a: 1, b: 2 }, { inherit: false });\n *\n * // somewhere else\n * $scope.$on('$stateNotFound', function(event, transition) {\n * function(event, unfoundState, fromState, fromParams){\n * console.log(unfoundState.to); // \"lazy.state\"\n * console.log(unfoundState.toParams); // {a:1, b:2}\n * console.log(unfoundState.options); // {inherit:false} + default options\n * });\n * ```\n *\n * @event $stateNotFound\n * @deprecated\n */\n var $stateNotFound;\n (function () {\n var isFunction = ng.isFunction, isString = ng.isString;\n function applyPairs(memo, keyValTuple) {\n var key, value;\n if (Array.isArray(keyValTuple))\n key = keyValTuple[0], value = keyValTuple[1];\n if (!isString(key))\n throw new Error('invalid parameters to applyPairs');\n memo[key] = value;\n return memo;\n }\n function stateChangeStartHandler($transition$) {\n if (!$transition$.options().notify || !$transition$.valid() || $transition$.ignored())\n return;\n var $injector = $transition$.injector();\n var $stateEvents = $injector.get('$stateEvents');\n var $rootScope = $injector.get('$rootScope');\n var $state = $injector.get('$state');\n var $urlRouter = $injector.get('$urlRouter');\n var enabledEvents = $stateEvents.provider.enabled();\n var toParams = $transition$.params('to');\n var fromParams = $transition$.params('from');\n if (enabledEvents.$stateChangeSuccess) {\n var startEvent = $rootScope.$broadcast('$stateChangeStart', $transition$.to(), toParams, $transition$.from(), fromParams, $transition$.options(), $transition$);\n if (startEvent.defaultPrevented) {\n if (enabledEvents.$stateChangeCancel) {\n $rootScope.$broadcast('$stateChangeCancel', $transition$.to(), toParams, $transition$.from(), fromParams, $transition$.options(), $transition$);\n }\n // Don't update and resync url if there's been a new transition started. see issue #2238, #600\n if ($state.transition == null)\n $urlRouter.update();\n return false;\n }\n // right after global state is updated\n var successOpts = { priority: 9999 };\n $transition$.onSuccess({}, function () {\n $rootScope.$broadcast('$stateChangeSuccess', $transition$.to(), toParams, $transition$.from(), fromParams, $transition$.options(), $transition$);\n }, successOpts);\n }\n if (enabledEvents.$stateChangeError) {\n $transition$.promise['catch'](function (error) {\n if (error && (error.type === 2 /* RejectType.SUPERSEDED */ || error.type === 3) /* RejectType.ABORTED */)\n return;\n var evt = $rootScope.$broadcast('$stateChangeError', $transition$.to(), toParams, $transition$.from(), fromParams, error, $transition$.options(), $transition$);\n if (!evt.defaultPrevented) {\n $urlRouter.update();\n }\n });\n }\n }\n stateNotFoundHandler.$inject = ['$to$', '$from$', '$state', '$rootScope', '$urlRouter'];\n function stateNotFoundHandler($to$, $from$, injector) {\n var $state = injector.get('$state');\n var $rootScope = injector.get('$rootScope');\n var $urlRouter = injector.get('$urlRouter');\n var redirect = { to: $to$.identifier(), toParams: $to$.params(), options: $to$.options() };\n var e = $rootScope.$broadcast('$stateNotFound', redirect, $from$.state(), $from$.params());\n if (e.defaultPrevented || e.retry)\n $urlRouter.update();\n function redirectFn() {\n return $state.target(redirect.to, redirect.toParams, redirect.options);\n }\n if (e.defaultPrevented) {\n return false;\n }\n else if (e.retry || !!$state.get(redirect.to)) {\n return e.retry && isFunction(e.retry.then) ? e.retry.then(redirectFn) : redirectFn();\n }\n }\n $StateEventsProvider.$inject = ['$stateProvider'];\n function $StateEventsProvider($stateProvider) {\n $StateEventsProvider.prototype.instance = this;\n var runtime = false;\n var allEvents = ['$stateChangeStart', '$stateNotFound', '$stateChangeSuccess', '$stateChangeError'];\n var enabledStateEvents = allEvents.map(function (e) { return [e, true]; }).reduce(applyPairs, {});\n function assertNotRuntime() {\n if (runtime)\n throw new Error('Cannot enable events at runtime (use $stateEventsProvider');\n }\n /**\n * Enables the deprecated UI-Router 0.2.x State Events\n * [ '$stateChangeStart', '$stateNotFound', '$stateChangeSuccess', '$stateChangeError' ]\n */\n this.enable = function () {\n var events = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n events[_i] = arguments[_i];\n }\n assertNotRuntime();\n if (!events || !events.length)\n events = allEvents;\n events.forEach(function (event) { return (enabledStateEvents[event] = true); });\n };\n /**\n * Disables the deprecated UI-Router 0.2.x State Events\n * [ '$stateChangeStart', '$stateNotFound', '$stateChangeSuccess', '$stateChangeError' ]\n */\n this.disable = function () {\n var events = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n events[_i] = arguments[_i];\n }\n assertNotRuntime();\n if (!events || !events.length)\n events = allEvents;\n events.forEach(function (event) { return delete enabledStateEvents[event]; });\n };\n this.enabled = function () { return enabledStateEvents; };\n this.$get = $get;\n $get.$inject = ['$transitions'];\n function $get($transitions) {\n runtime = true;\n if (enabledStateEvents['$stateNotFound'])\n $stateProvider.onInvalid(stateNotFoundHandler);\n if (enabledStateEvents.$stateChangeStart)\n $transitions.onBefore({}, stateChangeStartHandler, { priority: 1000 });\n return {\n provider: $StateEventsProvider.prototype.instance,\n };\n }\n }\n ng\n .module('ui.router.state.events', ['ui.router.state'])\n .provider('$stateEvents', $StateEventsProvider)\n .run([\n '$stateEvents',\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n function ($stateEvents) {\n /* Invokes $get() */\n },\n ]);\n })();\n\n exports.$stateChangeCancel = $stateChangeCancel;\n exports.$stateChangeError = $stateChangeError;\n exports.$stateChangeStart = $stateChangeStart;\n exports.$stateChangeSuccess = $stateChangeSuccess;\n exports.$stateNotFound = $stateNotFound;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n//# sourceMappingURL=stateEvents.js.map\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/@uirouter/angularjs/release/stateEvents.js\n// module id = 249\n// module chunks = 0","'use strict';\nangular.module(\"ngLocale\", [], [\"$provide\", function($provide) {\nvar PLURAL_CATEGORY = {ZERO: \"zero\", ONE: \"one\", TWO: \"two\", FEW: \"few\", MANY: \"many\", OTHER: \"other\"};\n$provide.value(\"$locale\", {\n \"DATETIME_FORMATS\": {\n \"AMPMS\": [\n \"AM\",\n \"PM\"\n ],\n \"DAY\": [\n \"dimanche\",\n \"lundi\",\n \"mardi\",\n \"mercredi\",\n \"jeudi\",\n \"vendredi\",\n \"samedi\"\n ],\n \"ERANAMES\": [\n \"avant J\\u00e9sus-Christ\",\n \"apr\\u00e8s J\\u00e9sus-Christ\"\n ],\n \"ERAS\": [\n \"av. J.-C.\",\n \"ap. J.-C.\"\n ],\n \"FIRSTDAYOFWEEK\": 0,\n \"MONTH\": [\n \"janvier\",\n \"f\\u00e9vrier\",\n \"mars\",\n \"avril\",\n \"mai\",\n \"juin\",\n \"juillet\",\n \"ao\\u00fbt\",\n \"septembre\",\n \"octobre\",\n \"novembre\",\n \"d\\u00e9cembre\"\n ],\n \"SHORTDAY\": [\n \"dim.\",\n \"lun.\",\n \"mar.\",\n \"mer.\",\n \"jeu.\",\n \"ven.\",\n \"sam.\"\n ],\n \"SHORTMONTH\": [\n \"janv.\",\n \"f\\u00e9vr.\",\n \"mars\",\n \"avr.\",\n \"mai\",\n \"juin\",\n \"juil.\",\n \"ao\\u00fbt\",\n \"sept.\",\n \"oct.\",\n \"nov.\",\n \"d\\u00e9c.\"\n ],\n \"STANDALONEMONTH\": [\n \"Janvier\",\n \"F\\u00e9vrier\",\n \"Mars\",\n \"Avril\",\n \"Mai\",\n \"Juin\",\n \"Juillet\",\n \"Ao\\u00fbt\",\n \"Septembre\",\n \"Octobre\",\n \"Novembre\",\n \"D\\u00e9cembre\"\n ],\n \"WEEKENDRANGE\": [\n 5,\n 6\n ],\n \"fullDate\": \"EEEE d MMMM y\",\n \"longDate\": \"d MMMM y\",\n \"medium\": \"d MMM y HH:mm:ss\",\n \"mediumDate\": \"d MMM y\",\n \"mediumTime\": \"HH:mm:ss\",\n \"short\": \"dd/MM/y HH:mm\",\n \"shortDate\": \"dd/MM/y\",\n \"shortTime\": \"HH:mm\"\n },\n \"NUMBER_FORMATS\": {\n \"CURRENCY_SYM\": \"\\u20ac\",\n \"DECIMAL_SEP\": \",\",\n \"GROUP_SEP\": \"\\u00a0\",\n \"PATTERNS\": [\n {\n \"gSize\": 3,\n \"lgSize\": 3,\n \"maxFrac\": 3,\n \"minFrac\": 0,\n \"minInt\": 1,\n \"negPre\": \"-\",\n \"negSuf\": \"\",\n \"posPre\": \"\",\n \"posSuf\": \"\"\n },\n {\n \"gSize\": 3,\n \"lgSize\": 3,\n \"maxFrac\": 2,\n \"minFrac\": 2,\n \"minInt\": 1,\n \"negPre\": \"-\",\n \"negSuf\": \"\\u00a0\\u00a4\",\n \"posPre\": \"\",\n \"posSuf\": \"\\u00a0\\u00a4\"\n }\n ]\n },\n \"id\": \"fr\",\n \"localeID\": \"fr\",\n \"pluralCat\": function(n, opt_precision) { var i = n | 0; if (i == 0 || i == 1) { return PLURAL_CATEGORY.ONE; } return PLURAL_CATEGORY.OTHER;}\n});\n}]);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/angular-i18n/angular-locale_fr.js\n// module id = 250\n// module chunks = 0","'use strict';\nangular.module(\"ngLocale\", [], [\"$provide\", function($provide) {\nvar PLURAL_CATEGORY = {ZERO: \"zero\", ONE: \"one\", TWO: \"two\", FEW: \"few\", MANY: \"many\", OTHER: \"other\"};\nfunction getDecimals(n) {\n n = n + '';\n var i = n.indexOf('.');\n return (i == -1) ? 0 : n.length - i - 1;\n}\n\nfunction getVF(n, opt_precision) {\n var v = opt_precision;\n\n if (undefined === v) {\n v = Math.min(getDecimals(n), 3);\n }\n\n var base = Math.pow(10, v);\n var f = ((n * base) | 0) % base;\n return {v: v, f: f};\n}\n\n$provide.value(\"$locale\", {\n \"DATETIME_FORMATS\": {\n \"AMPMS\": [\n \"a.m.\",\n \"p.m.\"\n ],\n \"DAY\": [\n \"zondag\",\n \"maandag\",\n \"dinsdag\",\n \"woensdag\",\n \"donderdag\",\n \"vrijdag\",\n \"zaterdag\"\n ],\n \"ERANAMES\": [\n \"voor Christus\",\n \"na Christus\"\n ],\n \"ERAS\": [\n \"v.Chr.\",\n \"n.Chr.\"\n ],\n \"FIRSTDAYOFWEEK\": 0,\n \"MONTH\": [\n \"januari\",\n \"februari\",\n \"maart\",\n \"april\",\n \"mei\",\n \"juni\",\n \"juli\",\n \"augustus\",\n \"september\",\n \"oktober\",\n \"november\",\n \"december\"\n ],\n \"SHORTDAY\": [\n \"zo\",\n \"ma\",\n \"di\",\n \"wo\",\n \"do\",\n \"vr\",\n \"za\"\n ],\n \"SHORTMONTH\": [\n \"jan.\",\n \"feb.\",\n \"mrt.\",\n \"apr.\",\n \"mei\",\n \"jun.\",\n \"jul.\",\n \"aug.\",\n \"sep.\",\n \"okt.\",\n \"nov.\",\n \"dec.\"\n ],\n \"STANDALONEMONTH\": [\n \"Januari\",\n \"Februari\",\n \"Maart\",\n \"April\",\n \"Mei\",\n \"Juni\",\n \"Juli\",\n \"Augustus\",\n \"September\",\n \"Oktober\",\n \"November\",\n \"December\"\n ],\n \"WEEKENDRANGE\": [\n 5,\n 6\n ],\n \"fullDate\": \"EEEE d MMMM y\",\n \"longDate\": \"d MMMM y\",\n \"medium\": \"d MMM y HH:mm:ss\",\n \"mediumDate\": \"d MMM y\",\n \"mediumTime\": \"HH:mm:ss\",\n \"short\": \"dd-MM-yy HH:mm\",\n \"shortDate\": \"dd-MM-yy\",\n \"shortTime\": \"HH:mm\"\n },\n \"NUMBER_FORMATS\": {\n \"CURRENCY_SYM\": \"\\u20ac\",\n \"DECIMAL_SEP\": \",\",\n \"GROUP_SEP\": \".\",\n \"PATTERNS\": [\n {\n \"gSize\": 3,\n \"lgSize\": 3,\n \"maxFrac\": 3,\n \"minFrac\": 0,\n \"minInt\": 1,\n \"negPre\": \"-\",\n \"negSuf\": \"\",\n \"posPre\": \"\",\n \"posSuf\": \"\"\n },\n {\n \"gSize\": 3,\n \"lgSize\": 3,\n \"maxFrac\": 2,\n \"minFrac\": 2,\n \"minInt\": 1,\n \"negPre\": \"\\u00a4\\u00a0-\",\n \"negSuf\": \"\",\n \"posPre\": \"\\u00a4\\u00a0\",\n \"posSuf\": \"\"\n }\n ]\n },\n \"id\": \"nl\",\n \"localeID\": \"nl\",\n \"pluralCat\": function(n, opt_precision) { var i = n | 0; var vf = getVF(n, opt_precision); if (i == 1 && vf.v == 0) { return PLURAL_CATEGORY.ONE; } return PLURAL_CATEGORY.OTHER;}\n});\n}]);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/angular-i18n/angular-locale_nl.js\n// module id = 251\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.appComponent = undefined;\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar appComponent = exports.appComponent = {\n template: require('./app.html'),\n controllerAs: 'vm',\n controller: [\"config\", \"authService\", \"categoryService\", \"sellerService\", \"$q\", \"localizer\", \"gettextCatalog\", \"reservationCampaignService\", function controller(config, authService, categoryService, sellerService, $q, localizer, gettextCatalog, reservationCampaignService /*, $rootScope, $timeout, common*/) {\n 'ngInject';\n\n var vm = this;\n vm.$onInit = init;\n vm.languageChanged = languageChanged;\n vm.getPolicyUrl = getPolicyUrl;\n vm.closeVaccinesAlert = closeVaccinesAlert;\n vm.cookieMessage = gettextCatalog.getString('Our website uses cookies to make your browsing experience better. By using our site, you agree to our use of cookies.');\n vm.cookieAcceptText = gettextCatalog.getString('Close and don\\'t show again');\n vm.cookiePolicyText = gettextCatalog.getString('Learn more');\n vm.vaccinesAlertOpen = false;\n vm.isFebelcoCustomer = false;\n vm.navigationData = {};\n vm.isBeforeBlackFriday = isBeforeBlackFriday;\n vm.isBlackFridayDate = isBlackFridayDate;\n vm.checkVaccinDate = checkVaccinDate;\n\n vm.closeReservationCampaignAlert = closeReservationCampaignAlert;\n vm.activeCampaigns = [];\n\n function init() {\n var _this = this;\n\n var tenants = authService.customUserInfo.tenants;\n vm.activeTenant = tenants && tenants.find(function (t) {\n return !!t.secondaryAppUserKey && t.secondaryAppUserKey === authService.user.SAUK || !!t.id && t.id === parseInt(authService.user.BuyerID, 10);\n });\n vm.isFebelcoCustomer = authService.isFebelcoCustomer;\n localizer.addLanguageChangeEvent(function () {\n return _this.languageChanged();\n });\n vm.vaccinesAlertOpen = getVaccinesAlertOpenFromLocalStorage();\n if (vm.isFebelcoCustomer) {\n reservationCampaignService.getActiveReservationCampaigns().then(function (response) {\n response.forEach(function (campaign) {\n campaign.alertDismissed = getReservationCampaignAlertDismissedFromLocalStorage(campaign.code);\n });\n vm.activeCampaigns = response;\n });\n }\n }\n\n function getVaccinesAlertOpenFromLocalStorage() {\n if (window.localStorage.getItem('vaccinesAlertOpen2020') === 'false') {\n return false;\n } else {\n return true;\n }\n }\n\n function getReservationCampaignAlertDismissedFromLocalStorage(code) {\n if (window.localStorage.getItem('ReservationCampaignAlertOpen' + code) === 'false') {\n return true;\n } else {\n return false;\n }\n }\n\n function closeReservationCampaignAlert(campaign) {\n campaign.alertDismissed = true;\n window.localStorage.setItem('ReservationCampaignAlertOpen' + campaign.code, false);\n }\n\n function languageChanged() {\n categoryService.getMenuCategories().then(function (result) {\n vm.navigationData.categories = result;\n });\n }\n\n function getPolicyUrl() {\n switch (window.localStorage.getItem('language')) {\n case 'nl':\n return 'http://www.profficina.be/nl/algemene-voorwaarden.html';\n case 'fr':\n return 'http://www.profficina.be/fr/conditions-generales.html';\n default:\n return 'http://www.profficina.be/nl/algemene-voorwaarden.html';\n }\n }\n\n function closeVaccinesAlert() {\n vm.vaccinesAlertOpen = false;\n window.localStorage.setItem('vaccinesAlertOpen2020', false);\n }\n\n function isBlackFridayDate() {\n if ((0, _moment2.default)('2019-11-29').format('YYYY-MM-DD') === (0, _moment2.default)().format('YYYY-MM-DD')) {\n return true;\n }\n return false; //change to false to make this work\n }\n\n function isBeforeBlackFriday() {\n if ((0, _moment2.default)('2019-11-29').format('YYYY-MM-DD') > (0, _moment2.default)().format('YYYY-MM-DD')) {\n return true;\n }\n return false;\n }\n\n function checkVaccinDate() {\n var fluVaccinesEndDate = config.fluVaccines.endDate;\n var fluVaccinesStartDate = config.fluVaccines.startDate;\n return (0, _moment2.default)(fluVaccinesStartDate).format('YYYY-MM-DD') <= (0, _moment2.default)().format('YYYY-MM-DD') && (0, _moment2.default)(fluVaccinesEndDate).format('YYYY-MM-DD') >= (0, _moment2.default)().format('YYYY-MM-DD');\n // var today= moment().format('YYYY-MM-DD');\n // var startDate= moment('2020-03-16').format('YYYY-MM-DD');\n // var endDate = moment('2020-04-15').format('YYYY-MM-DD');\n // var condition = startDate <= today && endDate >= today;\n // if (condition) {\n // return true;\n // }\n // return false; //change to false to make this work\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app.component.js\n// module id = 255\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nrequire('picturefill');\n\nvar _angular = require('angular');\n\nvar _angular2 = _interopRequireDefault(_angular);\n\nrequire('angular-gettext');\n\nrequire('@uirouter/angularjs');\n\nrequire('angular-resource');\n\nrequire('ng-file-upload');\n\nrequire('ng-lodash');\n\nrequire('ngstorage');\n\nrequire('angular-dynamic-locale');\n\nrequire('@iamadamjowett/angular-click-outside');\n\nrequire('angular-aria');\n\nrequire('angular-slick-carousel');\n\nrequire('angular-youtube-embed');\n\nrequire('angular-picture');\n\nrequire('angular-toastr');\n\nrequire('tether');\n\nvar _core = require('./core');\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _directives = require('./directives');\n\nvar _directives2 = _interopRequireDefault(_directives);\n\nvar _filters = require('./filters');\n\nvar _filters2 = _interopRequireDefault(_filters);\n\nvar _models = require('./models');\n\nvar _models2 = _interopRequireDefault(_models);\n\nvar _services = require('./services');\n\nvar _services2 = _interopRequireDefault(_services);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _module = _angular2.default.module('app.common', [\n// 3rd party dependencies\n'gettext', 'ui.router', 'ngResource', 'ngLodash', 'ngDialog', 'ngStorage', 'ngLocale', 'tmh.dynamicLocale', 'angular-click-outside', 'toastr', 'ngAria', 'slickCarousel', 'youtube-embed', 'angular-google-analytics', 'ngPicturefill',\n\n// own dependencies\n_core2.default, _directives2.default, _filters2.default, _models2.default, _services2.default]);\n\nexports.default = _module.name;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/index.js\n// module id = 256\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _angular = require('angular');\n\nvar _angular2 = _interopRequireDefault(_angular);\n\nvar _account = require('./account');\n\nvar _account2 = _interopRequireDefault(_account);\n\nvar _authorization = require('./authorization');\n\nvar _authorization2 = _interopRequireDefault(_authorization);\n\nvar _brand = require('./brand');\n\nvar _brand2 = _interopRequireDefault(_brand);\n\nvar _category = require('./category');\n\nvar _category2 = _interopRequireDefault(_category);\n\nvar _checkout = require('./checkout');\n\nvar _checkout2 = _interopRequireDefault(_checkout);\n\nvar _common = require('./common');\n\nvar _common2 = _interopRequireDefault(_common);\n\nvar _discount = require('./discount');\n\nvar _discount2 = _interopRequireDefault(_discount);\n\nvar _fastOrder = require('./fast-order');\n\nvar _fastOrder2 = _interopRequireDefault(_fastOrder);\n\nvar _home = require('./home');\n\nvar _home2 = _interopRequireDefault(_home);\n\nvar _layout = require('./layout');\n\nvar _layout2 = _interopRequireDefault(_layout);\n\nvar _news = require('./news');\n\nvar _news2 = _interopRequireDefault(_news);\n\nvar _help = require('./help');\n\nvar _help2 = _interopRequireDefault(_help);\n\nvar _product = require('./product');\n\nvar _product2 = _interopRequireDefault(_product);\n\nvar _search = require('./search');\n\nvar _search2 = _interopRequireDefault(_search);\n\nvar _seller = require('./seller');\n\nvar _seller2 = _interopRequireDefault(_seller);\n\nvar _error = require('./error');\n\nvar _error2 = _interopRequireDefault(_error);\n\nvar _vaccines = require('./vaccines');\n\nvar _vaccines2 = _interopRequireDefault(_vaccines);\n\nvar _reservationCampaign = require('./reservation-campaign');\n\nvar _reservationCampaign2 = _interopRequireDefault(_reservationCampaign);\n\nvar _outlet = require('./outlet');\n\nvar _outlet2 = _interopRequireDefault(_outlet);\n\nvar _rental = require('./rental');\n\nvar _rental2 = _interopRequireDefault(_rental);\n\nvar _certificates = require('./certificates');\n\nvar _certificates2 = _interopRequireDefault(_certificates);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n//import staticModule from './static';\n\nvar _module = _angular2.default.module('app.features', [_account2.default, _authorization2.default, _brand2.default, _category2.default, _checkout2.default, _common2.default, _discount2.default, _fastOrder2.default, _home2.default, _layout2.default, _news2.default, _product2.default, _search2.default, _seller2.default,\n//staticModule,\n_vaccines2.default, _reservationCampaign2.default, _error2.default, _help2.default, _outlet2.default, _rental2.default, _certificates2.default]);\n\nexports.default = _module.name;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/index.js\n// module id = 257\n// module chunks = 0","'use strict';\n\nlogDecorator.$inject = [\"$logProvider\", \"$provide\", \"config\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.logDecorator = logDecorator;\n/*@ngInject*/\nfunction logDecorator($logProvider, $provide, config) {\n // In acceptance and production, we only log warnings and errors\n $logProvider.debugEnabled(config.env === 'local' || config.env === 'dev');\n\n $provide.decorator('$log', [\"$delegate\", function ($delegate) {\n //Original methods\n var origInfo = $delegate.info;\n var origLog = $delegate.log;\n\n //Override the default behavior \n $delegate.log = function () {\n if ($logProvider.debugEnabled()) {\n origLog.apply(null, arguments);\n }\n };\n\n //Override the default behavior\n $delegate.info = function () {\n if ($logProvider.debugEnabled()) {\n origInfo.apply(null, arguments);\n }\n };\n\n return $delegate;\n }]);\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./logDecorator.js\n// module id = 258\n// module chunks = 0","module.exports = trackJs;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"trackJs\"\n// module id = 259\n// module chunks = 0","module.exports = \"
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app.html\n// module id = 505\n// module chunks = 0","module.exports = \"
{{ ::title }}
{{ ::msg }}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/templates/confirm.html\n// module id = 506\n// module chunks = 0","module.exports = \"
Select other pharmacy
Orders are pharmacy based. When you log on as another pharmacy, your shopping basket will change. Your current shopping basket is however not removed.
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/templates/select-tenant.html\n// module id = 507\n// module chunks = 0","module.exports = \" Valid from {{vm.contract.startDate | date: 'dd/MM/yyyy'}} until {{vm.contract.endDate | date: 'dd/MM/yyyy'}} indefinite
For more information about this contract, please contact your relationship manager.
For more information about this contract, please contact your supplier.
Your purchases
From date must be greater than contract start date.
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/components/contract-detail-info.html\n// module id = 508\n// module chunks = 0","module.exports = \"
Products
All products of this supplier or in your contract.
Product number | Name |
{{product.sellerArticleNumber}} | {{product.name}} |
No products found.
No products found.
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/components/contract-products.html\n// module id = 509\n// module chunks = 0","module.exports = \"My contracts
{{contractsObject.type.name}}
| | Contract name | Valid from - until |
| ![\\\"\\\"]() | {{contract.name}} | {{contract.startDate | date: 'dd/MM/yyyy' }} - {{contract.endDate | date: 'dd/MM/yyyy' }} indefinitely |
Currently you do not have any Febelco Partner or Agios contract.
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/components/contracts-overview-info.html\n// module id = 510\n// module chunks = 0","module.exports = \"
Deliveries
Delivery nr.
Status
Total
Delivery nr.
{{ ::shippingNote.warehouseCode }}/{{ ::shippingNote.shippingNoteNumber }}
{{vm.getDeliveryStatusText(shippingNote.stateCode)}}
Total
{{ ::shippingNote.totalPrice | currency:\\\"€\\\":2 }}
{{vm.getDeliveryStatusText('DELIVREG')}}
{{vm.getDeliveryStatusText('DELIVBUSY')}}
{{vm.getDeliveryStatusText(shippingNote.stateCode)}}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/components/order-detail-deliveries.html\n// module id = 511\n// module chunks = 0","module.exports = \" Date | Time | Status |
{{ ::i.date }} | {{ ::i.time }} | {{ ::i.text }} |
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/components/order-detail-delivery-history.html\n// module id = 512\n// module chunks = 0","module.exports = \"
Products
Product number | Name | Quantity | Discount | Amount |
{{ ::product.productNumber }} | {{ ::product.name }} | {{ ::product.amount }} | {{ ::product.totalProductDiscount | currency:\\\"€\\\":2}} | {{ ::product.totalProductPrice | currency:\\\"€\\\":2 }} |
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/components/order-detail-delivery-products.html\n// module id = 513\n// module chunks = 0","module.exports = \"\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/components/order-detail-extra-info.html\n// module id = 514\n// module chunks = 0","module.exports = \" Download PDF Reorder
Just a moment please, your order is being added to your shopping cart... Note:
{{ ::vm.order.note }}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/components/order-detail-header.html\n// module id = 515\n// module chunks = 0","module.exports = \"
Ordered products
Product number | Name | Price | Quantity | Discount | Status | Subtotal |
Promopack {{::product.productNumber}} | {{::product.name}} | {{ vm.getDiscountPrice(product.unitPrice, product.discountPercentage) | currency:'€':4 }} | {{product.quantity}} | 0\\\">{{ ::product.discountPercentage }}% – {{ ::product.promoCode }} | - {{product.status}} {{product.reason}} | {{product.totalPriceWithDiscount | currency:\\\"€\\\":2 }} |
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/components/order-detail-products.html\n// module id = 516\n// module chunks = 0","module.exports = \"\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/components/order-overview-search.html\n// module id = 517\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/contract-detail.html\n// module id = 518\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/contracts-overview.html\n// module id = 519\n// module chunks = 0","module.exports = \" _myDocuments.myDocuments
_myDocuments._reportPurchaseProposals.title
_myDocuments._reportNarcotics.title
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/my-documents.html\n// module id = 520\n// module chunks = 0","module.exports = \"\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/my-packages/components/add-step1-select-receiver-form.html\n// module id = 521\n// module chunks = 0","module.exports = \"\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/my-packages/components/add-step1-select-receiver-read.html\n// module id = 522\n// module chunks = 0","module.exports = \"\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/my-packages/components/add-step2-details-form.html\n// module id = 523\n// module chunks = 0","module.exports = \"
{{orderline.packageType.name}}
{{orderline.packageType.description}}
Aftekenen bij ontvangst
Lorem ipsum dolor sit amet...
Opmerking / Bericht voor koerier
Lorem ipsum dolor sit amet.
{{ ::vm.delivery.remark ? vm.delivery.remark : '/' }}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/my-packages/components/add-step2-details-read.html\n// module id = 524\n// module chunks = 0","module.exports = \"\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/my-packages/components/add-step3-confirm-form.html\n// module id = 525\n// module chunks = 0","module.exports = \"
Hoe werkt het? ..TBD
- Maak hier een verzendlabel aan
- Geef uw pakket met label aan de Febelco koerier
- Volg via Track & Trace
- Binnen 48u geleverd op bestemming
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/my-packages/components/how-does-it-work-box.html\n// module id = 526\n// module chunks = 0","module.exports = \"
Details verzending
Verzending ID {{ ::vm.order.number }}
Opmerking / Bericht voor koerier
{{ ::vm.order.remark }}
{{::vm.order.quantity }} pakjepakjes
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/my-packages/components/order-detail-content.html\n// module id = 527\n// module chunks = 0","module.exports = \" {{ ::vm.line.packageType.name }}
{{ ::vm.line.packageType.description }}
Aftekenen bij ontvangst
{{ ::vm.line.date | date:'d MMMM yyyy' }} {{ ::vm.line.date | date:'hh:mm' }}
Track & Trace activiteit in detail
Barcode {{ ::vm.line.barcode }}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/my-packages/components/order-line-detail.html\n// module id = 528\n// module chunks = 0","module.exports = \" -
{{ history.state.name }}
{{ history.changedOn | date:'d MMMM yyyy' }} {{ history.changedOn | date:'hh:mm' }}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/my-packages/components/order-line-state-history.html\n// module id = 529\n// module chunks = 0","module.exports = \" {{ ::vm.state.name }}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/my-packages/components/order-line-state.html\n// module id = 530\n// module chunks = 0","module.exports = \"{{ ::vm.receiver.name }}
{{ ::vm.receiver.streetName }} {{ ::vm.receiver.houseNumber }} {{ ::vm.receiver.boxNumber }}
{{ ::vm.receiver.postalCode }} {{ ::vm.receiver.cityName }}
Vergunningsnr. {{ ::vm.receiver.licenseNumber }}, klantnr. {{ ::vm.receiver.customerNumber }}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/my-packages/components/order-receiver-detail.html\n// module id = 531\n// module chunks = 0","module.exports = \" Verzending ID {{ ::vm.order.number }}
{{ ::vm.order.createdOn | date:'d MMMM yyyy' }}
{{ ::vm.order.lines.length }} pakjes pakje
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/my-packages/components/order-search-result-item.html\n// module id = 532\n// module chunks = 0","module.exports = \" {{ ::vm.state.name }}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/my-packages/components/order-state.html\n// module id = 533\n// module chunks = 0","module.exports = \"
Uw verzending is geregistreerd
Print de verzendlabels en geef de pakjes mee met uw Febelco chauffeur.
Een woordje uitleg wat men nu moet doen ... Text TBD
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/my-packages/pod-order-add-confirmation.html\n// module id = 534\n// module chunks = 0","module.exports = \" Verzending aanmaken
Pakket versturen naar een apotheek via Febelco? Maak hier een verzendlabel aan.
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/my-packages/pod-order-add.html\n// module id = 535\n// module chunks = 0","module.exports = \" Al mijn verzendingen
Geen verzendingen gevonden voor ingegeven zoekcriteria.
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/my-packages/pod-order-archive.html\n// module id = 536\n// module chunks = 0","module.exports = \"
Verzending {{ ::vm.order.number }}
Aangemaakt op {{ ::vm.order.createdOn | date:'d MMMM yyyy'}}
Naar {{ ::vm.order.receiver.name }}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/my-packages/pod-order-detail.html\n// module id = 537\n// module chunks = 0","module.exports = \" Mijn verzendingen
Verzending aanmaken
Zoek in al uw verzendingen of maak een nieuwe verzending aan.
Een woordje uitleg over wat men kan verzenden en hoe het werkt.
Pakje versturen naar een apotheek of naar HC Pharma? Maak hier uw verzendlabel aan.
Verzending aanmaken
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/my-packages/pod-order-overview.html\n// module id = 538\n// module chunks = 0","module.exports = \" Dear Pharmacist,
From 23/01/2023 you and anyone who gives you rights, can manage the reservations yourself via MyFebelco, our new customer portal: changing, removing or adding can then be done in a few mouse clicks.
Via MyFebelco you also get direct access to all kinds of information, personal data and useful tools. Calling customer service is no longer necessary, so they have more time to help our customers on the line faster.
Due to this progress, the reservation overview will no longer be available on Profficina and your secure area (my Febelco) from 16/01.
Questions?
Before you can go to MyFebelco, you must activate your account on the basis of a registration email.
Didn't receive a registration email? Then contact support@myfebelco.be.
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/my-reservations.html\n// module id = 539\n// module chunks = 0","module.exports = \" Order - noun {{ ::vm.order.referenceNumber }}
Back to overview
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/order-detail.html\n// module id = 540\n// module chunks = 0","module.exports = \" My orders
Just a moment please, your order is being added to your shopping cart... {{ ::order.date | date:'dd/MM/yyyy' }}
{{ ::order.seller }}
TO-nr.
{{ ::order.orderNumber }}-
{{ ::order.orderStatusText }}
{{ ::order.amount | currency:\\\"€\\\":2 }}
No orders found
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/order-overview.html\n// module id = 541\n// module chunks = 0","module.exports = \"\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/parcels/components/parcel-add-step1-select-receiver-form.html\n// module id = 542\n// module chunks = 0","module.exports = \"\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/parcels/components/parcel-add-step1-select-receiver-read.html\n// module id = 543\n// module chunks = 0","module.exports = \"\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/parcels/components/parcel-add-step2-details-form.html\n// module id = 544\n// module chunks = 0","module.exports = \"
{{orderline.packageType.name}}
{{orderline.packageType.description}}
parcel.packagePrice{{orderline.packageType.packagePrice | currency:'€':2}}
parcel.packageDiscount{{orderline.packageType.packageDiscount | currency:'€':2}}
parcel.insurance: {{orderline.hasInsurance ? ('Yes' | translate) : ('No' | translate)}}
{{orderline.insurancePriceDescription}}
parcel.packageValue: {{orderline.packageValue | currency:'€':2}}
parcel.remarkForCourier
parcel.remarkForCourierDescription
{{ ::vm.delivery.remark ? vm.delivery.remark : '/' }}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/parcels/components/parcel-add-step2-details-read.html\n// module id = 545\n// module chunks = 0","module.exports = \"\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/parcels/components/parcel-add-step3-confirm-form.html\n// module id = 546\n// module chunks = 0","module.exports = \"
parcel.shippingDetails
parcel.orderNumber {{ ::vm.parcel.number }}
parcel.remarkForCourier
{{ ::vm.parcel.remark }}
{{::vm.parcel.quantity }} parcel.packLower
parcel.backToOverview
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/parcels/components/parcel-detail-content.html\n// module id = 547\n// module chunks = 0","module.exports = \"\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/parcels/components/parcel-how-does-it-work-box.html\n// module id = 548\n// module chunks = 0","module.exports = \" {{ ::vm.line.packageType.name }}
{{ ::vm.line.packageType.description }}
parcel.packagePrice {{ ::vm.line.packageType.packagePrice | currency:'€':2 }}
parcel.packageDiscount {{ ::vm.line.packageType.packageDiscount | currency:'€':2 }}
parcel.packageInvoiceAmount {{::vm.line.packageInvoiceAmount | currency:'€':2}}
parcel.freePackage
parcel.insuranceInvoiceAmount {{::vm.line.insuranceInvoiceAmount | currency:'€':2}}
{{ ::vm.line.date | date:'d MMMM yyyy' }} {{ ::vm.line.date | date:'HH:mm' }}
parcel.trackAndTraceInDetail
parcel.insurance: {{::vm.line.signatureRequired ? ('Yes' | translate) : ('No' | translate)}}
{{vm.insuranceDescription}}
parcel.packageValue: {{::vm.line.packageValue | currency:'€':4}}
parcel.barcode {{ ::vm.line.barcode }}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/parcels/components/parcel-line-detail.html\n// module id = 549\n// module chunks = 0","module.exports = \" -
{{ history.state.name }}
{{ history.changedOn | date:'d MMMM yyyy' }} {{ history.changedOn | date:'HH:mm' }}
parcel.isSigned {{ history.isSigned ? ('Yes' | translate) : ('No' | translate) }}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/parcels/components/parcel-line-state-history.html\n// module id = 550\n// module chunks = 0","module.exports = \" {{ vm.state.name }}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/parcels/components/parcel-line-state.html\n// module id = 551\n// module chunks = 0","module.exports = \"{{ ::vm.receiver.name }}
{{ ::vm.receiver.addressLine }}
{{ ::vm.receiver.postalCode }} {{ ::vm.receiver.cityName }}
parcel.licenseNumberShort {{ ::vm.receiver.licenseNumber }}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/parcels/components/parcel-receiver-detail.html\n// module id = 552\n// module chunks = 0","module.exports = \" parcel.orderNumber {{ ::vm.parcel.number }}
{{ ::vm.parcel.createdOn | date:'d MMMM yyyy' }}
{{ ::vm.parcel.lines.length }} parcel.line
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/parcels/components/parcel-search-result-item.html\n// module id = 553\n// module chunks = 0","module.exports = \" {{ vm.state.name }}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/parcels/components/parcel-state.html\n// module id = 554\n// module chunks = 0","module.exports = \"
parcel.yourParcelWasRegistered
parcel.printAndHandToDriver
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/parcels/parcel-add-confirmation.html\n// module id = 555\n// module chunks = 0","module.exports = \" parcel.createParcel
parcel.createShippingLabelHere
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/parcels/parcel-add.html\n// module id = 556\n// module chunks = 0","module.exports = \" parcel.allMyParcels
parcel.search
parcel.noParcelsFoundForCriteria
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/parcels/parcel-archive.html\n// module id = 557\n// module chunks = 0","module.exports = \"
parcel.parcel {{ vm.parcel.number }}
parcel.madeOn {{ vm.parcel.createdOn | date:'d MMMM yyyy'}}
parcel.to {{ vm.parcel.receiver.name }}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/parcels/parcel-detail.html\n// module id = 558\n// module chunks = 0","module.exports = \" parcel.myParcels
parcel.createParcel
parcel.searchAllParcels
parcel.whatCanBeSentAndHowItWorks
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/parcels/parcels-overview.html\n// module id = 559\n// module chunks = 0","module.exports = \" My rent overview
Rental products in your possession
| | Rented from | Deposit | Total rent | |
| {{product.productName}} {{product.remark}} | {{'Rented from' | translate}}: {{product.startDate | date: 'dd-MM-yyyy'}} | {{'Deposit' | translate}}:{{product.deposit | currency:'€':2}} | {{'Total rent' | translate}}:{{product.totalRent | currency:'€':2}} | Detail |
Recently passed rental products
| | Rented since – until | Deposit | Refunded deposit | |
| {{product.productName}} {{product.remark}} | {{'Rented until' | translate}}:{{ product.startDate | date: 'dd-MM-yyyy' }} – {{ product.endDate | date: 'dd-MM-yyyy' }} | {{'Deposit' | translate}}: {{product.deposit | currency:'€':2}} | {{'Refunded deposit' | translate}}: Yes {{ product.depositRefundedDate | date: 'dd-MM-yyyy' }} No | Detail |
Your recent rental requests
The last 3 months you did not submit any rental applications via Profficina.
vm.orders.length\\\" translate> You have more than 15 rental requests in the last 3 months.
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/rental-overview.html\n// module id = 560\n// module chunks = 0","module.exports = \" All my rental requests
Unfortunately there were no rental requests found.
Unfortunately there were no items found from Profficina.
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/rental-request-archive.html\n// module id = 561\n// module chunks = 0","module.exports = \" Unfortunately there were no rental products found.
You have not rented products from Febelco.
| | Rented until – from | Deposit | Total rent | Refunded deposit | Status | |
| {{product.productName}} – {{product.sellerArticleNumber}} {{ product.remark }} | {{ product.startDate | date: 'dd-MM-yyyy' }} – {{ product.endDate | date: 'dd-MM-yyyy' }} | {{ product.deposit | currency:'€':2 }} | {{ product.totalRent | currency:'€':2 }} | Yes {{ product.depositRefundedDate | date: 'dd-MM-yyyy' }} No | {{ product.statusName }} | Detail |
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/rented-product-archive.html\n// module id = 562\n// module chunks = 0","module.exports = \" Rented product detail {{vm.rentalHistory.productName}} – {{vm.rentalHistory.sellerArticleNumber}}
-
Status
{{vm.rentalHistory.status.name }}
-
Rented from
{{vm.rentalHistory.startDate | date: 'dd MMMM yyyy'}}
-
Rented until
{{vm.rentalHistory.endDate | date: 'dd MMMM yyyy'}}
-
Serialnumber
{{vm.rentalHistory.serialNumber}}
-
Shipping note
{{vm.rentalHistory.shippingNoteNumber}}
-
Info
{{vm.rentalHistory.remark}}
Modify
-
Rent per day
{{vm.rentalHistory.dailyRentalPrice | currency:'€':2}}
-
Total rent
{{vm.rentalHistory.totalRent | currency:'€':2}}
-
Deposit
{{vm.rentalHistory.deposit | currency:'€':2}}
-
Deposit refunded
{{ vm.rentalHistory.depositRefunded ? ('Yes' | translate) : ('No' | translate) }} refundOnDate {{ vm.rentalHistory.depositRefundedDate | date: 'dd MMMM yyyy' }}
Rental amount per month
Month | Amount |
{{ rent.month }} | {{rent.rent | currency:'€':2}} |
Total | {{vm.rentalHistory.totalRent | currency:'€':2}} |
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/rented-product-detail.html\n// module id = 563\n// module chunks = 0","module.exports = \" My account
My log in data
-
Displayname
-
Email address
-
Password
-
Pharmacy
{{::vm.pharmacyName}} - {{::vm.apbNumber}}
1\\\">
{{ 'Log in with other pharmacy:' | translate }}
Sign out
My pharmacy
-
Delivery address
{{vm.user.deliveryAddress.streetName}} {{vm.user.deliveryAddress.houseNumber}}
{{vm.user.deliveryAddress.postalCode}} {{vm.user.deliveryAddress.cityName}}
-
Billing address
{{vm.user.invoiceAddress.streetName}} {{vm.user.invoiceAddress.houseNumber}}
{{vm.user.invoiceAddress.postalCode}} {{vm.user.invoiceAddress.cityName}}
-
Telephone number
-
Company number
{{vm.user.companyNumber}}
E-mail address and language for order confirmations:
-
Language
{{vm.communicationLanguage.displayName | translate}} Change
checkout.contactSupportWhenInvoiceAddressIsIncorrect
My orders
Hier krijgt u een overzicht van alle bestellingen die u bij Profficina geplaatst heeft.
View my orders
My rent overview
Hier krijgt u een overzicht van alle Thuisgezondheidszorg producten in uw bezit en alle huuraanvragen via Profficina.
View my rent overview
My reservations
Hier krijgt u een overzicht van alle producten die u bij Febelco gereserveerd heeft.
View my reservations
_myDocuments._settings.myDocuments
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/settings.html\n// module id = 564\n// module chunks = 0","module.exports = \"Access is denied
You do not have permission to view this page.
Contact support@profficina.be for further assistance.
Error 401 - Unauthorized
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/authorization/unauthorized.html\n// module id = 565\n// module chunks = 0","module.exports = \" {{vm.brand.name}}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/brand/detail.html\n// module id = 566\n// module chunks = 0","module.exports = \" {{'News' | translate }} {{::vm.brand.name}}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/brand/news.html\n// module id = 567\n// module chunks = 0","module.exports = \" Brands
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/brand/overview.html\n// module id = 568\n// module chunks = 0","module.exports = \" {{ ::vm.category.name }}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/category/overview.html\n// module id = 569\n// module chunks = 0","module.exports = \" Certificates title
Certificates introtext
Unfortunately there were no certificates found.
No certificates found for the given search criteria.
CNK | Name | Batch number | Expiry date | Document (pdf) |
Product {{ certificate.productNumber }} | {{ certificate.productName }} | Batch number {{ certificate.batchNumber }} | Expiry date {{ certificate.expiryDate | date: 'dd-MM-yyyy' }} | Document (pdf) {{ certificate.filename }} |
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/certificates/certificates.html\n// module id = 570\n// module chunks = 0","module.exports = \"Something went wrong
Something went wrong when loading this page.
Contact support@profficina.be for further assistance.
Error 500 - Internal Server Error
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/checkout/cart-error.html\n// module id = 571\n// module chunks = 0","module.exports = \" Your shopping cart
APB-number {{ vm.apbNumber }}
Please place your order within {{error.daysLeftUntilDiscountExpires}} days, discount for {{error.productName}} ends on {{error.expireDate | date:'yyyy-MM-dd'}}
The shaded products can no longer be ordered.
{{seller.sellerCodeName}} ({{seller.protocolName}} - {{seller.deliveryPartnerName}})
{{errorMessage.message}} Product number
Name
Price
Max. discount
Current discount
Quantity
Subtotal
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/checkout/cart.html\n// module id = 572\n// module chunks = 0","module.exports = \" {{seller.displayName}}
{{errorMessage.message}}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/checkout/components/cart-by-sellers.html\n// module id = 573\n// module chunks = 0","module.exports = \" {{vm.product.productNumber}} {{vm.product.type}}
{{vm.product.unitPrice | currency:\\\"€\\\":2 }}
0\\\"> {{vm.product.unitPriceWithDiscount | currency:\\\"€\\\":4 }} {{vm.product.unitPrice | currency:\\\"€\\\":2 }}
{{vm.product.grossProfitPercentage + '%'}} GPM {{vm.product.grossProfitPercentageWithoutDiscount + '%'}} {{vm.product.grossProfitAmount | currency:\\\"€\\\":2}}
– {{ vm.product.maxDiscount }}%
– {{vm.product.discountPct + '%'}} {{vm.product.discountAmount | currency:'€':2}} 1\\\" translate>Expires within {{vm.product.daysLeftUntilDiscountExpires}} days
Discount expires today
{{vm.product.totalPriceWithDiscount | currency:\\\"€\\\":2 }}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/checkout/components/cart-product.html\n// module id = 574\n// module chunks = 0","module.exports = \" -
Discount on total order at {{d.displayName}}: {{ range.discount }}{{range.discountValueTypeSymbol}} upward of {{range.from ? range.from : range.amount | currency:'€':0 }}, (excl. btw - {{d.promoCode}} - Valid until {{d.endDate | date: 'dd/MM/yyyy'}})
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/checkout/components/cart-total-price-discounts.html\n// module id = 575\n// module chunks = 0","module.exports = \"Thank you for ordering
You will receive an email confirmation shortly at {{ vm.mail }}.
checkout.linkToOrderOverview
checkout.contactSupportWhenInvoiceAddressIsIncorrect
Seller
Profficina Ref.
Discount
Total
Receipt
{{ ::o.sellerName }}
Profficina Ref. {{ ::o.orderNumber }}
Discount {{ ::o.totalDiscount | currency:'€':2 }}
Total {{ ::o.totalPrice | currency:'€':2 }}
Delayed deliveries
Seller
Profficina Ref.
Discount
Total
Delivery Date
Receipt
{{ ::o.sellerName }}
Profficina Ref. {{ ::o.orderNumber }}
Discount {{ ::o.totalDiscount | currency:'€':2 }}
Total {{ ::o.totalPrice | currency:'€':2 }}
Delivery Date {{ ::o.deliveryDate | date: 'dd/MM/yyyy' }} -
There are still products in your shopping cart
{{ disabledSellers.name }}
{{ disabledSellers.totalPriceWithDiscount | currency: '€':2 }}
{{ disabledSellers.minOrderPriceExclVat - disabledSellers.totalPriceWithDiscount | currency: '€':2 }}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/checkout/confirmation.html\n// module id = 576\n// module chunks = 0","module.exports = \" Order
APB-number {{ vm.apbNumber }}
1. Check your order
{{ seller.name }}
{{ errorMessage.message }}
{{ seller.name }}
Product number
Name
Price
Quantity
Discount
Subtotal
{{ product.productNumber }} {{ product.type }}
{{ product.displayName }}
{{ product.unitPriceWithDiscount | currency: '€':4 }}
{{ product.quantity }}
– {{ product.discountPct }}% {{ product.promocode }}
{{ product.totalPriceWithDiscount | currency: '€':2 }}
1\\\">
Order total
2. Special orders
Following products can be ordered via 'special order', should the product not be in stock at the moment. More info about 'special orders'.
- {{ product.displayName }}
What would you like use to do when these products are not in stock?
2. 3. _order.selectAccountTitle
2. 3. 4. Confirm
-
Delivery address
{{::vm.user.deliveryAddress.streetName}} {{::vm.user.deliveryAddress.houseNumber}} {{::vm.user.deliveryAddress.boxNumber}}
{{::vm.user.deliveryAddress.postalCode}} {{::vm.user.deliveryAddress.cityName}}
-
Billing address
{{::vm.user.invoiceAddress.streetName}} {{::vm.user.invoiceAddress.houseNumber}} {{::vm.user.invoiceAddress.boxNumber}}
{{::vm.user.invoiceAddress.postalCode}} {{::vm.user.invoiceAddress.cityName}}
-
Email address
{{::vm.user.mail}}
-
Telephone number
{{ vm.user.phoneNumber }}
-
Company number
{{ vm.user.companyNumber }}
checkout.agreeWithTerms
checkout.contactSupportWhenInvoiceAddressIsIncorrect
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/checkout/order.html\n// module id = 577\n// module chunks = 0","module.exports = \" {{ vm.address.addressLine1 }}
{{ ::vm.address.addressLine2 }}
{{ ::vm.address.postalCode }} {{ ::vm.address.cityName }}
{{ ::vm.address.countryName }}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/common/address.html\n// module id = 578\n// module chunks = 0","module.exports = \"\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/common/contact-person.html\n// module id = 579\n// module chunks = 0","module.exports = \"
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/common/date-picker.html\n// module id = 580\n// module chunks = 0","module.exports = \"\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/common/dialogs/confirm-dialog.html\n// module id = 581\n// module chunks = 0","module.exports = \" You did not update your cart with the quantities you last modified.
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/common/dialogs/unsaved-changes-dialog.html\n// module id = 582\n// module chunks = 0","module.exports = \" {{vm.folderTitle}}
{{vm.itemCount}} {{vm.itemLabel}}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/common/folder-collapse.html\n// module id = 583\n// module chunks = 0","module.exports = \"\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/common/gallery.html\n// module id = 584\n// module chunks = 0","module.exports = \" 0\\\" class=box>
More info
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/common/links.html\n// module id = 585\n// module chunks = 0","module.exports = \"\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/common/pager.html\n// module id = 586\n// module chunks = 0","module.exports = \" Total discount {{ vm.totals.totalDiscount | currency:\\\"€\\\":2 }}
Total {{ vm.totals.totalPriceWithDiscount | currency:\\\"€\\\":2 }}
VAT {{ vat.pct }}% {{ vat.amount | currency:\\\"€\\\":2 }}
Total (incl. VAT) {{ vm.totals.totalPriceWithDiscountInclVat | currency:\\\"€\\\":2 }}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/common/totals.html\n// module id = 587\n// module chunks = 0","module.exports = \" {{::vm.item.name}}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/common/tree-view-item.html\n// module id = 588\n// module chunks = 0","module.exports = \"
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/common/tree-view.html\n// module id = 589\n// module chunks = 0","module.exports = \"\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/common/typeahead.html\n// module id = 590\n// module chunks = 0","module.exports = \" Discounts
Black Friday
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/discount/discounts.html\n// module id = 591\n// module chunks = 0","module.exports = \" {{ ::vm.discounttype.name }}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/discount/discounttype.html\n// module id = 592\n// module chunks = 0","module.exports = \"
Something went wrong
We can not find the page you are looking for. The product / news item / ... may no longer exist.
Below are some useful links:
Contact support@profficina.be for further assistance.
Error {{::vm.errormessage}}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/error/error.html\n// module id = 593\n// module chunks = 0","module.exports = \"Something went wrong
The product you were looking was not found or is inactive.
Error {{::vm.errormessage}}
Return to the homepage
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/error/product-not-found.html\n// module id = 594\n// module chunks = 0","module.exports = \" Fast order
Add products or import a CSV file with your order. More info.
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/fast-order/detail.html\n// module id = 595\n// module chunks = 0","module.exports = \" FAQ
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/help/help.html\n// module id = 596\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/home/home.html\n// module id = 597\n// module chunks = 0","module.exports = \" 0\\\" class=\\\"table table-block table-adapt\\\"> Name | APB-number | Customer number | Location | Address |
{{buyerBase.name}} | {{buyerBase.apb}} | {{buyerBase.febelcoCustomerNr}} | {{buyerBase.cityName}} | {{buyerBase.address}} |
Please refine your search. Too many results.
No results.
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/layout/components/buyer-base-select.html\n// module id = 598\n// module chunks = 0","module.exports = \"
Please select a pharmacy
-
More than one pharmacy is linked to your account. Choose the pharmacy you wish to log on with.
Orders in Profficina are pharmacy based. Once logged on, you can always switch pharmacy through the 'My account' link in the menu.
Please select a seller
More than one seller is linked to your account. Choose the seller you wish to log on with.
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/layout/login.html\n// module id = 599\n// module chunks = 0","module.exports = \" TOP\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/layout/site-footer.html\n// module id = 600\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/layout/site-header.html\n// module id = 601\n// module chunks = 0","module.exports = \"
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/layout/site-nav.html\n// module id = 602\n// module chunks = 0","module.exports = \"\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/news/components/news-aside.html\n// module id = 603\n// module chunks = 0","module.exports = \"News overview cannot be shown
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/news/components/news-grid.html\n// module id = 604\n// module chunks = 0","module.exports = \" Unfortunately there were no news items found.
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/news/components/news-overview.html\n// module id = 605\n// module chunks = 0","module.exports = \"\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/news/components/news-recent-popular.html\n// module id = 606\n// module chunks = 0","module.exports = \"\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/news/components/news-tags.html\n// module id = 607\n// module chunks = 0","module.exports = \" {{::vm.news.date}} {{ ::vm.news.typeDescription }}
{{::vm.news.title}}
© {{::vm.news.sellerName}}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/news/components/news-tile-short.html\n// module id = 608\n// module chunks = 0","module.exports = \"\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/news/components/news-tile.html\n// module id = 609\n// module chunks = 0","module.exports = \" {{::vm.newsdetail.title}}
{{ ::vm.newsdetail.publishDate | date: 'd MMMM yyyy' }} {{ ::vm.newsdetail.categoryName }}
{{::vm.newsdetail.shortDescription}}
© {{::vm.newsdetail.author}}, {{::vm.newsdetail.sellerName}}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/news/detail.html\n// module id = 610\n// module chunks = 0","module.exports = \" News
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/news/main-overview.html\n// module id = 611\n// module chunks = 0","module.exports = \" {{'News' | translate }} {{::vm.tag.name}}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/news/news-by-tag.html\n// module id = 612\n// module chunks = 0","module.exports = \" {{vm.paging.totalItems}} product
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/outlet/components/outlet-product-filters.html\n// module id = 613\n// module chunks = 0","module.exports = \"Product overview cannot be shown
Unfortunately there are no products available for the current criteria.
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/outlet/components/outlet-product-overview.html\n// module id = 614\n// module chunks = 0","module.exports = \" Op=Op? These is the last stock for certain products for an extra discounted price. These products can not be returned.
Klaar voor de winter?
{{vm.textFields.topTitle}}
Discover all promotions!
{{vm.textFields.bottomTitle}}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/outlet/outlet-category-overview.html\n// module id = 615\n// module chunks = 0","module.exports = \" {{ ::vm.category.name }}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/outlet/outlet-products.html\n// module id = 616\n// module chunks = 0","module.exports = \"\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/product/components/add-products-toolbar.html\n// module id = 617\n// module chunks = 0","module.exports = \"
This promopack contains following products
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/product/components/included-products-in-pack.html\n// module id = 618\n// module chunks = 0","module.exports = \"
You can choose from the following products:
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/product/components/included-products-in-panacee.html\n// module id = 619\n// module chunks = 0","module.exports = \"
Notices
-
Notices for patient
-
Scientific notices
Price information
1 Non-binding recommended prices
Dimensions
- Weight {{vm.medipimData.weight}}gr.
- Width {{vm.medipimData.width}}mm
- Height {{vm.medipimData.height}}mm
- Depth {{vm.medipimData.depth}}mm
Media
-
{{media.name}}
{{media.description}}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/product/components/medipim-info.html\n// module id = 620\n// module chunks = 0","module.exports = \" {{vm.product.nationalNumber}}
{{ vm.product.price | currency:'€':2 }}
{{ vm.getDiscountPrice()| currency:'€':4 }} {{ vm.product.price | currency:'€':2 }}
{{ vm.product.quantity }} x
Not available
Min {{vm.product.minOrderAmount}} Max {{vm.product.maxOrderAmount}}
Quantity in panaché (x{{vm.product.internalQuantity}}) {{vm.product.quantity * vm.product.internalQuantity}}
GPM{{(vm.product.grossProfit | number: 0 ) + '%'}}
{{ (vm.getGrossProfit() | number:0) + '%'}} 0\\\">Current discount {{vm.product.discountPct + '%'}} {{vm.product.totalDiscount | currency:'€':2}}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/product/components/panacee-overview-grid-item.html\n// module id = 621\n// module chunks = 0","module.exports = \" Total quantity in panaché {{vm.totalProductsAmountInPanacee}}
Product overview cannot be shown
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/product/components/panacee-overview-grid.html\n// module id = 622\n// module chunks = 0","module.exports = \" {{vm.product.nationalNumber}} Promopack Panaché
Price – {{ vm.product.price | currency:'€':2 }} 0\\\"> {{ vm.getDiscountPrice() | currency:'€':4 }} {{ vm.product.price | currency:'€':2 }}
GPM – {{ (vm.product.grossProfit | number:0) + '%' }} {{ (vm.getGrossProfit() | number:0) + '%'}} {{vm.product.grossProfitAmount | currency:\\\"€\\\":2}}
Max. discount – {{::vm.product.maxDiscount + '%'}}
Current discount – {{vm.product.discountPct + '%'}} {{vm.product.totalDiscount | currency:'€':2}}
Required {{vm.product.minOrderAmount}} From {{vm.product.minOrderAmount}} Max {{vm.product.maxOrderAmount}}
Not available
Quantity in panaché {{vm.product.panaceeQuantity}} '1'\\\">(x{{vm.product.internalQuantity}}) {{vm.product.panaceeQuantity}}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/product/components/panacee-overview-list-item.html\n// module id = 623\n// module chunks = 0","module.exports = \" Displays
Product number
Name
Price
Max. discount
Current discount
N° displays
Quantity in panaché
Product number
Name
Price
Max. discount
Current discount
Quantity
Quantity in panaché
Total quantity in panaché {{vm.totalProductsAmountInPanacee}}
Product overview cannot be shown
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/product/components/panacee-overview-list.html\n// module id = 624\n// module chunks = 0","module.exports = \"\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/product/components/product-certificates-overview-search.html\n// module id = 625\n// module chunks = 0","module.exports = \" {{::vm.product.discount.description}}
{{ vm.product.unitPriceWithDiscount | currency:'€':2}} {{ vm.product.price | currency:'€':2 }}
0\\\" class=product-detail-price> {{ vm.product.unitPriceWithDiscount | currency:'€':4}} {{ vm.product.price | currency:'€':2 }}
0\\\">
GPM
{{ (vm.product.grossProfit | number:0) + '%'}} {{ (vm.getGrossProfit() | number:0) + '%'}} {{vm.product.grossProfitAmount | currency:\\\"€\\\":2}}
Current discount {{vm.product.discountPct + '%'}} {{vm.product.totalDiscount | currency:'€':2}} {{vm.product.promocode}} {{vm.product.totalPriceDiscountPromoCode}}
Not available
Compose your panacea by choosing products from the list below.
Current discount {{vm.product.discountPct + '%'}} {{vm.product.promocode}} {{vm.product.totalPriceDiscountPromoCode}}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/product/components/product-detail-content.html\n// module id = 626\n// module chunks = 0","module.exports = \" Close
{{ discountGroup[0].displayName}}
{{vm.getDiscountType(productDiscount.discountType) | translate }}
- {{ range.discount }}{{range.discountValueTypeSymbol}} {{range.from ? range.from : range.amount}} pcs.
Product vervalt op {{productDiscount.expirationDate | date: 'dd/MM/yyyy' }}
{{productDiscount.remark}}
Available
Limited stock!
Running low on stock!
Only {{productDiscount.counter}} piece(s) left!
Retroactive discount
Valid until {{ productDiscount.endDate | date: 'dd/MM/yyyy' }}
1\\\" class=\\\"message message-warning message-expires\\\" translate>Expires within {{productDiscount.daysLeft}} days
Discount expires today
Order panaché
Order pack
Discount on order total
- {{ range.discount }}{{range.discountValueTypeSymbol}} {{range.from ? range.from : range.amount | currency:'€':2 }}
Valid until {{ productDiscount.endDate | date: 'dd/MM/yyyy' }}
1\\\" class=\\\"message message-warning message-expires\\\" translate>Expires within {{productDiscount.daysLeft}} days
Discount expires today
Agios
The Agios discount is not known, contact the supplier for more info.
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/product/components/product-discounts.html\n// module id = 627\n// module chunks = 0","module.exports = \" {{vm.paging.totalItems}} product
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/product/components/product-filters.html\n// module id = 628\n// module chunks = 0","module.exports = \" Max {{::vm.maxDiscount}}%
Available
Limited stock!
Running low on stock!
Only {{vm.counter}} piece(s) left!
Max {{::vm.maxDiscount}}%
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/product/components/product-img.html\n// module id = 629\n// module chunks = 0","module.exports = \"\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/product/components/product-info-box.html\n// module id = 630\n// module chunks = 0","module.exports = \"
Product information
0\\\">
Certificates
Batch number | Expiry date | Document (pdf) |
{{certificate.batchNumber}} | {{certificate.expiryDate | date: 'dd-MM-yyyy'}} | {{ certificate.filename }} |
General
-
Supplier
-
Written request by patient
true false
-
product.medipim.expires
true false
-
product.medipim.tradeInMonthsBeforeExpiry
{{::vm.product.mediPimData.tradeInMonthsBeforeExpiry}} Month
-
product.medipim.tradeInMonthsAfterExpiry
{{::vm.product.mediPimData.tradeInMonthsAfterExpiry}} Month
-
product.medipim.refundValueWithoutOmnio
{{::vm.product.mediPimData.refundValueWithoutOmnio}}
-
product.medipim.refundValueWithOmnio
{{::vm.product.mediPimData.refundValueWithOmnio}}
Notices
-
Notices for patient
-
Scientific notices
Price information
-
Pharmacy price
{{ vm.product.price | currency:'€':2}}
-
Public price 1
{{ vm.product.publicPrice | currency:'€':2}}
-
Tax
{{::vm.product.mediPimData.tax}}%
1 Non-binding recommended prices
Categorisation
-
Prescription
{{::vm.product.mediPimData.prescription | yesNo}}
-
Brand
-
APB category
{{::vm.product.mediPimData.apbCategory}}
-
Conservation
{{::vm.product.mediPimData.conservation}}
-
{{attr.type}}
{{attr.name}}
-
Active ingredients
{{ingredient.name}}{{ $last ? '' : ','}}
-
Public categories
Dimensions
- Package quantity {{::vm.product.mediPimData.packageQuantity}}
- Weight {{::vm.product.mediPimData.weight}}gr.
- Width {{::vm.product.mediPimData.width}}mm
- Height {{::vm.product.mediPimData.height}}mm
- Depth {{::vm.product.mediPimData.depth}}mm
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/product/components/product-info.html\n// module id = 631\n// module chunks = 0","module.exports = \" Available
Limited stock!
Running low on stock!
Only {{vm.counter}} piece(s) left!
Sold out!
{{::vm.product.nationalNumber}} Promopack Panaché
{{ ::vm.product.price | currency:'€':2 }}
{{ ::vm.getDiscountPrice()| currency:'€':4 }} {{ ::vm.product.price | currency:'€':2 }}
{{ ::vm.product.quantity }} x
Not available
GPM{{(vm.product.grossProfit | number: 0 ) + '%'}}
{{ (vm.getGrossProfit() | number:0) + '%'}} 0\\\">Current discount {{vm.product.discountPct + '%'}} {{vm.product.totalDiscount | currency:'€':2}}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/product/components/product-overview-grid-item.html\n// module id = 632\n// module chunks = 0","module.exports = \" Product overview cannot be shown
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/product/components/product-overview-grid.html\n// module id = 633\n// module chunks = 0","module.exports = \" {{vm.product.nationalNumber}} Promopack Panaché
Price – 0\\\"> {{::vm.getDiscountPrice() | currency:'€':2}}
GPM – {{(vm.getGrossProfit() | number: 0) + '%'}} {{vm.product.grossProfitAmount | currency:\\\"€\\\":2}}
Max. discount –
Current discount –
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/product/components/product-overview-list-item.html\n// module id = 634\n// module chunks = 0","module.exports = \" Product number
Name
Price
Max. discount
Current discount
Quantity
Product overview cannot be shown
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/product/components/product-overview-list.html\n// module id = 635\n// module chunks = 0","module.exports = \"\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/product/components/product-overview-toolbar.html\n// module id = 636\n// module chunks = 0","module.exports = \"Product overview cannot be shown
{{vm.noItemsMessage}}
Unfortunately there are no products available for the current criteria.
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/product/components/product-overview.html\n// module id = 637\n// module chunks = 0","module.exports = \"\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/product/components/related-products.html\n// module id = 638\n// module chunks = 0","module.exports = \"\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/product/components/selected-filters.html\n// module id = 639\n// module chunks = 0","module.exports = \"Febelco stock info
Checking stock...
Stock response cannot be checked at the moment.
{{'Product available' | translate}} {{'can be delivered on' | translate }} {{vm.stockOverview.stock.deliveryDate}} at {{vm.stockOverview.stock.deliveryTime}} - {{'tour' | translate }} {{vm.stockOverview.stock.deliveryId}}
{{ vm.stockOverview.stock.remark }}
{{vm.stockOverview.stock.deliverQty}} {{'products available' | translate}}
{{'can be delivered on' | translate }} {{vm.stockOverview.stock.deliveryDate}} at {{vm.stockOverview.stock.deliveryTime}}
{{vm.stockOverview.stock.deliverQty}} {{'products available' | translate}} {{'via another warehouse' | translate}}
{{'can be delivered on' | translate }} {{vm.stockOverview.stock.deliveryDate}} at {{vm.stockOverview.stock.deliveryTime}}
{{'Replacement product available' | translate}}: Product number {{ vm.stockOverview.stock.replacingCnk }}
{{'Replacement product available' | translate}}: Product number {{ vm.stockOverview.stock.replacingCnk }}
Supplier has no stock available
Supplier has no stock available
Maximum quantity exceeded.
{{vm.stockOverview.stock.remark}}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/product/components/stock-response.html\n// module id = 640\n// module chunks = 0","module.exports = \" {{ vm.product.displayName }} – {{::vm.product.nationalNumber}}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/product/detail.html\n// module id = 641\n// module chunks = 0","module.exports = \" {{'News' | translate }} {{::vm.product.name}}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/product/news.html\n// module id = 642\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/rental/components/rent-product-img.html\n// module id = 643\n// module chunks = 0","module.exports = \"
{{::vm.product.nationalNumber}}
{{ 'Rent per day' | translate }}: {{ ::vm.product.dayPrice | currency:'€':2 }}
{{ 'Deposit' | translate }}: {{ ::vm.product.rentalDeposit | currency:'€':2 }}
{{ 'VAT' | translate }}: {{ ::vm.product.vat}}%
{{ 'Price' | translate }}: {{ ::vm.product.pharmacyPrice | currency:'€':2 }}
{{ 'VAT' | translate }}: {{ ::vm.product.vat}}%
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/rental/components/rent-product-overview-grid-item.html\n// module id = 644\n// module chunks = 0","module.exports = \" Product overview cannot be shown
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/rental/components/rent-product-overview-grid.html\n// module id = 645\n// module chunks = 0","module.exports = \" Gelieve hieronder in te geven waar de producten geleverd mogen worden en wie ESRI kan contacteren om te verwittigen w.b. de levering.
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/rental/components/rental-checkout-delivery-info.html\n// module id = 646\n// module chunks = 0","module.exports = \" {{::vm.rentalProduct.nationalNumber}}
{{::vm.rentalProduct.name}}
{{ 'Quantity' | translate}}: {{vm.rentalProduct.quantity}}
{{'Rent per day' | translate}}: {{::vm.rentalProduct.dayPrice | currency:'€':2}}
{{'Deposit' | translate}}: {{::vm.rentalProduct.rentalDeposit | currency:'€':2}}
{{ 'VAT' | translate }}: {{ ::vm.rentalProduct.vat}}%
Dit product wordt rechtstreeks geleverd bij de patiënt.
De minimumhuurtijd bedraagt 7 kalenderdagen. Er worden €60 transportkosten (AP excl BTW) aangerekend; deze kost omvat leveren, ophalen, reiniging en de administratieve afhandeling. ESRI zal niets factureren aan de patiënt. Alle facturatie verloopt via uw apotheek.
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/rental/components/rental-checkout-product-info.html\n// module id = 647\n// module chunks = 0","module.exports = \"Uw huuraanvraag
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/rental/components/rental-checkout-wizard/rental-wizard-menu.html\n// module id = 648\n// module chunks = 0","module.exports = \"\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/rental/components/rental-checkout-wizard/rental-wizard-step.html\n// module id = 649\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/rental/components/rental-checkout-wizard/rental-wizard.html\n// module id = 650\n// module chunks = 0","module.exports = \"\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/rental/components/rental-product-grid-item.html\n// module id = 651\n// module chunks = 0","module.exports = \"
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/rental/components/rental-product-grid.html\n// module id = 652\n// module chunks = 0","module.exports = \" Rental products
| | | Quantity | Rent per day | Deposit | VAT |
| {{::rentalProduct.nationalNumber}} | {{::rentalProduct.productName}} | Quantity:{{::rentalProduct.quantity}} | Rent per day:{{::rentalProduct.dayPrice ? rentalProduct.dayPrice : rentalProduct.pharmacyPrice | currency:'€':2}} | Deposit:{{::rentalProduct.rentDeposit | currency:'€':2}} | VAT:{{::rentalProduct.vat}}% |
Non Rental Products
| | | Quantity | Price | VAT |
| {{::rentalProduct.nationalNumber}} | {{::rentalProduct.productName}} | Quantity:{{::rentalProduct.quantity}} | Price:{{::rentalProduct.dayPrice ? rentalProduct.dayPrice : rentalProduct.pharmacyPrice | currency:'€':2}} | VAT:{{::rentalProduct.vat}}% |
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/rental/components/rental-product-table.html\n// module id = 653\n// module chunks = 0","module.exports = \"\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/rental/rental-checkout-step-one.html\n// module id = 654\n// module chunks = 0","module.exports = \" Uw huuraanvraag is verstuurd naar de klantendienst.
Op {{vm.rentedProductsOrder.deliveryInfo.deliveryDate | date}} zullen de product(en) geleverd worden op uw gekozen leveradres
Voor vragen of aanpassingen aan deze aanvraag, gelieve de klantendienst te contacteren op 03/770.70.70 of klantendienst@febelco.be
-
Expected delivery date
{{vm.rentedProductsOrder.deliveryInfo.deliveryDate | date}}
-
Delivery address
{{::vm.rentedProductsOrder.deliveryInfo.streetName}} {{::vm.rentedProductsOrder.deliveryInfo.houseNumber}} {{::vm.rentedProductsOrder.deliveryInfo.boxNumber}}
{{::vm.rentedProductsOrder.deliveryInfo.postalCode}} {{::vm.rentedProductsOrder.deliveryInfo.cityName}}
-
Extra info
{{::vm.rentedProductsOrder.deliveryInfo.remark}}
-
Contact person
{{::vm.rentedProductsOrder.contactInfo.contactPerson}}
-
Telephone number
{{::vm.rentedProductsOrder.contactInfo.contactPhoneNumber}}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/rental/rental-checkout-step-three.html\n// module id = 655\n// module chunks = 0","module.exports = \"
Wij raden aan om hierbij ook deze producten te huren
Wij raden aan om hierbij ook deze producten te kopen
Producten die mogelijks interessant zijn om bij te huren
Producten die mogelijks interessant zijn om bij te kopen
-
-
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/rental/rental-checkout-step-two.html\n// module id = 656\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/rental/rental-checkout.html\n// module id = 657\n// module chunks = 0","module.exports = \" {{ vm.campaign.campaign.name }}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/reservation-campaign/reservation-campaign.html\n// module id = 658\n// module chunks = 0","module.exports = \"
You searched for '{{::vm.searchValue}}'
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/search/search.html\n// module id = 659\n// module chunks = 0","module.exports = \" 0\\\">
{{::vm.sellerAbout.title}}
{{::vm.sellerAbout.leading}}
0\\\"/>
0\\\">
{{vm.sellerAbout.logosTitle}}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/seller/about.html\n// module id = 660\n// module chunks = 0","module.exports = \"![\\\"\\\"]()
{{vm.sellerName}}
{{vm.sellerAddress.streetName}} {{vm.sellerAddress.houseNumber}} {{ 'Box:' | translate }} {{vm.sellerAddress.boxNumber}}
{{vm.sellerAddress.postalCode}} {{vm.sellerAddress.cityName}}
{{vm.sellerAddress.countryName}}
Tel: {{vm.contactInformation.phoneNumberPrimary}}
Fax: {{vm.contactInformation.faxNumberPrimary}} (Fax)
{{vm.contactInformation.emailPrimary}}
{{vm.contactInformation.websitePrimary}}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/seller/components/contact-block.html\n// module id = 661\n// module chunks = 0","module.exports = \" {{banner.link.text}}
Read more
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/seller/components/hero-slider.html\n// module id = 662\n// module chunks = 0","module.exports = \"\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/seller/components/menu.html\n// module id = 663\n// module chunks = 0","module.exports = \"\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/seller/components/partnership-grid.html\n// module id = 664\n// module chunks = 0","module.exports = \"
{{vm.partnership.partnerName}}
{{vm.partnership.title}}
More info
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/seller/components/partnership-tile.html\n// module id = 665\n// module chunks = 0","module.exports = \" -
Discount on total order at {{d.sellerCodeName}}: {{ range.discount }}{{range.discountValueTypeSymbol}} upward of {{range.from ? range.from : range.amount | currency:'€':0 }}, (excl. btw - {{d.promoCode}} - Valid until {{d.endDate | date: 'dd/MM/yyyy'}})
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/seller/components/seller-total-price-discounts.html\n// module id = 666\n// module chunks = 0","module.exports = \" Contact
{{::vm.sellerContact.moreInfoTitle}}
Questions or remarks concerning the pharmacovigilance of one of our products?
Call {{::vm.sellerContact.pharmacovigilanceContactInformation.phoneNumberPrimary}}
Send an e-mail to {{::vm.sellerContact.pharmacovigilanceContactInformation.emailPrimary}}
Send a fax to {{::vm.sellerContact.pharmacovigilanceContactInformation.faxNumberPrimary}}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/seller/contact.html\n// module id = 667\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/seller/contract-overview.html\n// module id = 668\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/seller/contract.html\n// module id = 669\n// module chunks = 0","module.exports = \"
{{::vm.seller.name}}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/seller/detail.html\n// module id = 670\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/seller/discounts.html\n// module id = 671\n// module chunks = 0","module.exports = \" Document library
Frequently asked questions
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/seller/documentLibrary.html\n// module id = 672\n// module chunks = 0","module.exports = \" {{::vm.seller.name}} news
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/seller/news.html\n// module id = 673\n// module chunks = 0","module.exports = \" Sellers
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/seller/overview.html\n// module id = 674\n// module chunks = 0","module.exports = \" {{::vm.partnership.title}}
{{::vm.partnership.partner.name}}
{{::vm.partnership.leading}}
0\\\">
How can you enjoy this partnership?
Uw contract
U heeft voor dit partnership een {{contract.name}} contract van {{contract.startDate | date}} tot {{contract.endDate | date}}
U heeft voor dit partnership een {{contract.name}} contract van onbepaalde duur vanaf {{contract.startDate | date}}
Currently you do not have any Febelco Partner or Agios contract.
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/seller/partnership-detail.html\n// module id = 675\n// module chunks = 0","module.exports = \" {{::vm.seller.name}}: partnerships
Unfortunately there were no partnerships found.
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/seller/partnerships.html\n// module id = 676\n// module chunks = 0","module.exports = \" {{::vm.seller.name}} products
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/seller/products.html\n// module id = 677\n// module chunks = 0","module.exports = \"
{{!vm.seller.name ? vm.seller.name : vm.sellerPublic.title}}
{{vm.sellerPublic.leading}}
{{::vm.sellerPublic.contactTitle}}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/seller/public.html\n// module id = 678\n// module chunks = 0","module.exports = \" {{ vm.product.name }} – {{::vm.product.nationalNumber}}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/seller/rent-product-detail.html\n// module id = 679\n// module chunks = 0","module.exports = \" Rent products
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/seller/rent-product-overview.html\n// module id = 680\n// module chunks = 0","module.exports = \" {{::vm.sellerCategory.categories[vm.sellerCategory.categories.length - 1].name}}
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/seller/sellercategory.html\n// module id = 681\n// module chunks = 0","module.exports = \" Griepvaccins 2021-2022
Febelco organiseert naar jaarlijkse gewoonte een voorverkoop van griepvaccins, en dat tot en met 28 februari 2021.
U kan uw vaccins uitsluitend reserveren via Profficina. We bevelen u van harte aan om uw aantallen goed in te schatten, zodat we op basis daarvan voldoende voorraad kunnen voorzien.
Opgelet! het maximale reservatieniveau voor de Influvac vaccins werd bereikt. Het is dus niet meer mogelijk om deze te reserveren. U kan uw eerder gereserveerde Influvac vaccins wel nog raadplegen, maar niet langer wijzigen.
Opgelet! U kan na 28 februari 2021 uw gereserveerde aantallen niet meer wijzigen.
Opgelet! Geen retours mogelijk. Levering van zodra voorradig en zolang de voorraad strekt.
Mocht u verdere vragen hebben, kan u steeds terecht bij uw vertrouwde relatiebeheerder.
\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/vaccines/vaccines.html\n// module id = 682\n// module chunks = 0","module.exports = {\n\t\"fr\": {\n\t\t\"(Will be) delivered\": \"Est livré\",\n\t\t\"(Will be) partially delivered\": \"Partiellement livré\",\n\t\t\"(excl. btw - {{d.promoCode}} - Valid until {{d.endDate | date: 'dd/MM/yyyy'}})\": \"(Hors TVA - {{d.promoCode}} - Valable jusqu'au {{d.endDate | date: 'dd/MM/yyyy'}})\",\n\t\t\".csv file, max. 5MB\": \"Fichier CSV, max. 5 MB\",\n\t\t\"www.profficina.be\": \"www.profficina.be\",\n\t\t\"Terms and conditions\": \"Conditions générales d’utilisation\",\n\t\t\"Privacy policy\": \"Protection de la vie privée\",\n\t\t\"Niet te reserveren\": \"Non réservable.\",\n\t\t\"Zonder korting\": \"À réserver sans réduction.\",\n\t\t\"Do not order the products.\": \"Ne pas commander les produits.\",\n\t\t\"Opgelet! Geen retours mogelijk. Levering van zodra voorradig en zolang de voorraad strekt.\": \"Il sera aussi impossible de retourner les vaccins. Ceux-ci seront livrés dès que nous les avons en stock et jusqu’à épuisement des réserves.\",\n\t\t\"Opgelet! U kan na 28 februari 2021 uw gereserveerde aantallen niet meer wijzigen.\": \"Veuillez également noter que, dès le 28 février prochain, vous ne pourrez plus modifier les quantités réservées. \",\n\t\t\"Opgelet! het maximale reservatieniveau voor de Influvac vaccins werd bereikt. Het is dus niet meer mogelijk om deze te reserveren. U kan uw eerder gereserveerde Influvac vaccins wel nog raadplegen, maar niet langer wijzigen.\": \"Attention : le seuil de réservation des vaccins Influvac a été franchi. Cela signifie qu'il n'est plus possible de les réserver. Vous pouvez toujours consulter vos réservations de vaccins Influvac, mais vous ne pouvez plus les modifier.\",\n\t\t\"Order the products anyway via the customer service ('special order').\": \"Commander les produits via le service clientèle (‘Commandes spéciales’). \",\n\t\t\"A question? A suggestion?\": \"Une question ? Une suggestion ?\",\n\t\t\"ALPHARIX TETRA 2021-2022 0,5 ML 1 WWSP\": \"ALPHARIX TETRA 2021-2022 0,5 ML 1 SER A JET\",\n\t\t\"APB category\": \"Catégorie APB\",\n\t\t\"APB-number\": \"N° d'autorisation\",\n\t\t\"About us\": \"À propos de nous\",\n\t\t\"Access is denied\": \"Accès refusé\",\n\t\t\"Account\": \"Account\",\n\t\t\"Active ingredients\": \"Principes actifs\",\n\t\t\"Add\": \"Ajouter\",\n\t\t\"Add package\": \"Verzending toevoegen\",\n\t\t\"Add products or import a CSV file with your order.\": \"Entrez vos produits ou importez un fichier csv avec votre commande.\",\n\t\t\"Add to shopping cart\": \"Ajouter au panier\",\n\t\t\"Add {{ vm.product.quantityToAddForHighestDiscount }} pcs. for {{ vm.product.highestDiscount.discount }}% discount\": \"Add {{ vm.product.quantityToAddForHighestDiscount }} pcs. for {{ vm.product.highestDiscount.discount }}% discount\",\n\t\t\"Added products to your shoppingcart\": \"Les produits ont été ajoutés au panier.\",\n\t\t\"Address\": \"Adresse\",\n\t\t\"Al mijn verzendingen\": \"Al mijn verzendingen\",\n\t\t\"All categories\": \"Toutes les catégories\",\n\t\t\"All discounts\": \"Toutes les réductions\",\n\t\t\"All my rental requests\": \"Toutes mes demandes\",\n\t\t\"All my rented products\": \"Mes demandes de location\",\n\t\t\"All news\": \"Toutes les nouvelles\",\n\t\t\"All partnerships\": \"Tous les partenariats\",\n\t\t\"All pharmacies\": \"Toutes les pharmacies\",\n\t\t\"All products\": \"Tous les produits\",\n\t\t\"All products of this supplier or in your contract.\": \"Tous les produits de ce labo sont dans votre contrat.\",\n\t\t\"All rental products\": \"Tous les produits de location\",\n\t\t\"All sellers\": \"Tous les fournisseurs\",\n\t\t\"All vendors\": \"Tous les fournisseurs\",\n\t\t\"Amount\": \"Montant\",\n\t\t\"An error occured when adding products to your shoppingcart, please try again\": \"Un problème inattendu est survenu en ajoutant des produits à votre panier. Veuillez réessayer. Nos excuses pour l’inconvénient.\",\n\t\t\"An error occurred during the confirmation of the order. Please contact the customer support.\": \"Un problème inattendu est survenu lors de la confirmation de votre commande. Veuillez prendre contact avec le service clientèle. Nos excuses pour l’inconvénient.\",\n\t\t\"An error occurred during the re order. Please contact the customer support.\": \"Un problème inattendu est survenu lors de la confirmation de votre commande. Veuillez prendre contact avec le service clientèle. Nos excuses pour l’inconvénient.\",\n\t\t\"An overview of all rental products since 2019.\": \"Un aperçu de toutes vos locations depuis 2019.\",\n\t\t\"Are you sure you want to clear your shopping cart?\": \"Êtes-vous certain de vouloir vider votre panier ?\",\n\t\t\"At least\": \"Au moins\",\n\t\t\"Attention!\": \"Attention !\",\n\t\t\"Available\": \"Stock suffisant\",\n\t\t\"Back to overview\": \"Retour à l’aperçu\",\n\t\t\"Batch number\": \"Lot\",\n\t\t\"Below are some useful links:\": \"Veuillez trouver ci-dessous quelques liens pratiques :\",\n\t\t\"Bewaren\": \"Réserver\",\n\t\t\"Billing address\": \"Adresse de facturation\",\n\t\t\"Black Friday\": \"Black Friday\",\n\t\t\"Box.\": \"Boîte\",\n\t\t\"Box:\": \"Boîte:\",\n\t\t\"Box: {{vm.partnership.partner.address.boxNumber}}\": \"Boîte: {{vm.partnership.partner.address.boxNumber}}\",\n\t\t\"Brand\": \"Marque\",\n\t\t\"Brands\": \"Marques\",\n\t\t\"Buy\": \"Acheter\",\n\t\t\"CNK\": \"CNK\",\n\t\t\"CTI extended\": \"CTI extended\",\n\t\t\"Call\": \"Appelez \",\n\t\t\"Cancel\": \"Annuler\",\n\t\t\"Cancelled\": \"Annulé\",\n\t\t\"Categories\": \"Catégorisatie\",\n\t\t\"Categorisation\": \"Catégorisation\",\n\t\t\"Certificates\": \"Certificats\",\n\t\t\"Certificates headerlink\": \"Certificats d'analyse\",\n\t\t\"Certificates introtext\": \"Chaque matière première est accompagnée d'un certificat d'analyse. C’est aussi le cas de Febelcare Elements. Grâce à Profficina, vous avez accès à ces certificats quand et où vous voulez !
Pour obtenir un certificat d'analyse, il suffit de saisir ci-dessous le numéro de lot, le CNK ou le nom du produit affiché sur l'emballage. Si aucune correspondance n’est trouvée, cela signifie que le numéro de lot a expiré ou que le certificat n'a tout simplement pas été enregistré dans la base de données.
En cas de problème, merci de prendre contact avec notre service clientèle. Ils se feront un plaisir de vous aider.
\",\n\t\t\"Certificates title\": \"À la recherche d’un certificat d'analyse ?\",\n\t\t\"Change\": \"Modifier \",\n\t\t\"Check stock\": \"Consultez le stock\",\n\t\t\"Check your order\": \"Vérifiez votre commande\",\n\t\t\"Checking stock...\": \"En traitement...\",\n\t\t\"City\": \"Ville\",\n\t\t\"Clear\": \"Supprimer\",\n\t\t\"Clear all\": \"Supprimer tout\",\n\t\t\"Clear all filters\": \"Supprimer tous les filtres\",\n\t\t\"Clear selection\": {\n\t\t\t\"Datetimepicker tooltips\": \"Supprimer\"\n\t\t},\n\t\t\"Clear shopping cart\": \"Vider panier\",\n\t\t\"Click here to see the complete list.\": \"Cliquez ici pour voir la liste.\",\n\t\t\"Close\": \"Fermer\",\n\t\t\"Close and don't show again\": \"Ne plus afficher\",\n\t\t\"Close the picker\": {\n\t\t\t\"Datetimepicker tooltips\": \"Fermer calendrier\"\n\t\t},\n\t\t\"Company number\": \"Numéro d'entreprise\",\n\t\t\"Compose your panacea by choosing products from the list below.\": \"Composez votre panaché à l’aide des produits ci-dessous.\",\n\t\t\"Composition\": \"Composition\",\n\t\t\"Confirm\": \"Confirmer\",\n\t\t\"Confirm order\": \"Confirmer commande\",\n\t\t\"Confirmation\": \"Confirmation\",\n\t\t\"Conservation\": \"Bewaring\",\n\t\t\"Contact\": {\n\t\t\t\"$$noContext\": \"Contact\",\n\t\t\t\"Contact page title\": \"Contact\"\n\t\t},\n\t\t\"Contact support@profficina.be for further assistance.\": \"Pour recevoir des renseignements ou des conseils, veuillez vous adresser à support@profficina.be.\",\n\t\t\"Contact person\": \"Personne à contacter\",\n\t\t\"Contacts\": \"Contact\",\n\t\t\"Continue shopping\": \"Poursuivre vos achats\",\n\t\t\"Continue without updating cart\": \"Continuer sans mise à jour panier\",\n\t\t\"Contra indication\": \"Contre-indication\",\n\t\t\"Contract name\": \"Nom contrat\",\n\t\t\"Contracts\": \"Contrats\",\n\t\t\"Counter discount\": \"Réduction compteur\",\n\t\t\"Created\": \"Créé\",\n\t\t\"Current discount\": \"Réduction actuelle\",\n\t\t\"Current filters\": \"Filtres actuels\",\n\t\t\"Currently you do not have any Febelco Partner or Agios contract.\": \"Vous n’avez pas encore de contrat pour ce partenariat.\",\n\t\t\"Customer number\": \"N° client\",\n\t\t\"DD-MM-YYYY\": \"JJ-MM-AAAA\",\n\t\t\"Date\": \"Date\",\n\t\t\"De minimumhuurtijd bedraagt 7 kalenderdagen. Er worden €60 transportkosten (AP excl BTW) aangerekend; deze kost omvat leveren, ophalen, reiniging en de administratieve afhandeling. ESRI zal niets factureren aan de patiënt. Alle facturatie verloopt via uw apotheek.\": \"Location minimum de 7 jours calendriers. Les frais de transport de €60 (Prix pharmacie, hors TVA) qui seront facturés, incluent la livraison, l’enlèvement, le nettoyage et l’administration. ESRI ne facturera rien au patient. Toute facturation passera par votre pharmacie.\",\n\t\t\"Decrement Hour\": {\n\t\t\t\"Datetimepicker tooltips\": \"Diminuer l'heure\"\n\t\t},\n\t\t\"Decrement Minute\": {\n\t\t\t\"Datetimepicker tooltips\": \"Diminuer les minutes\"\n\t\t},\n\t\t\"Decrement Second\": {\n\t\t\t\"Datetimepicker tooltips\": \"Diminuer les secondes\"\n\t\t},\n\t\t\"Deficit\": \"Déficit\",\n\t\t\"Delayed deliveries\": \"Livraisons réparties sur l'année\",\n\t\t\"Delete\": \"Supprimer\",\n\t\t\"Deliver earlier\": \"Avancer le délai de livraison\",\n\t\t\"Delivered\": \"Livré\",\n\t\t\"Deliveries\": \"Livraisons\",\n\t\t\"Delivery Date\": \"Date de livraison prévue\",\n\t\t\"Delivery address\": \"Adresse de livraison\",\n\t\t\"Delivery nr.\": \"N° livraison\",\n\t\t\"Deposit\": \"Caution\",\n\t\t\"Deposit not refunded\": \"Dépôt non remboursé\",\n\t\t\"Deposit refunded\": \"Restitution caution\",\n\t\t\"Deposit:\": \"Caution:\",\n\t\t\"Depth\": \"Profondeur\",\n\t\t\"Description\": \"Description\",\n\t\t\"Detail\": \"Détails\",\n\t\t\"Diameter\": \"Diamètre\",\n\t\t\"Dimensions\": \"Dimensions\",\n\t\t\"Discount\": \"Réduction\",\n\t\t\"Discount date\": \"Date réduction\",\n\t\t\"Discount expires today\": \"Réduction expire aujourd'hui.\",\n\t\t\"Discount on order total\": \"Réduction sur la totalité de votre commande \",\n\t\t\"Discount on total order at\": \"Réduction sur la totalité de votre commande chez \",\n\t\t\"Discount type\": \"Réduction\",\n\t\t\"Discounts\": \"Réductions\",\n\t\t\"Discounts only\": \"Uniquement des réductions\",\n\t\t\"Discover all promotions!\": \"Découvrez toutes les promotions !\",\n\t\t\"Discover the Homecare rental range.\": \"Découvrez nos Produits de soins à domicile en location.\",\n\t\t\"Displayname\": \"Nom d'affichage\",\n\t\t\"Displays\": \"Displays\",\n\t\t\"Dit product wordt rechtstreeks geleverd bij de patiënt.\": \"Ce produit sera livré au patient à l’aide de la partie externe ESRI.\",\n\t\t\"Document (pdf)\": \"Document (PDF)\",\n\t\t\"Document library\": \"Infothèque\",\n\t\t\"Documents\": \"Documents\",\n\t\t\"Download\": \"Télécharger\",\n\t\t\"Download PDF\": \"Télécharger PDF\",\n\t\t\"Drag your file here or\": \"Faites glisser le fichier ici ou\",\n\t\t\"Dutch\": \"Néerlandais\",\n\t\t\"E-mail address and language for order confirmations:\": \"Vos commandes seront confirmées sur cette adresse:\",\n\t\t\"Email address\": \"Adresse e-mail\",\n\t\t\"Enkel te bestellen via uw vertegenwoordiger\": \"À commander via votre délégué\",\n\t\t\"Enter e-mailadress\": \"Entrez adresse e-mail\",\n\t\t\"Error\": \"Erreur\",\n\t\t\"Estimated Delivery Date\": \"Délai de livraison prévu\",\n\t\t\"Expected delivery date\": \"Date de livraison prévue\",\n\t\t\"Expires\": \"Expire\",\n\t\t\"Expires within {{productDiscount.daysLeft}} days\": \"Expire dans {{productDiscount.daysLeft}} jours\",\n\t\t\"Expires within {{vm.product.daysLeftUntilDiscountExpires}} days\": \"Expire dans {{vm.product.daysLeftUntilDiscountExpires}} jours\",\n\t\t\"Expiry date\": \"Date de péremption\",\n\t\t\"Extra info\": \"Informations supplémentaires\",\n\t\t\"FAQ\": \"FAQ\",\n\t\t\"Fast Order\": \"Commande rapide\",\n\t\t\"Fast order\": \"Commande rapide\",\n\t\t\"Fax:\": \"Fax:\",\n\t\t\"Featured products\": \"Produits sous la loupe\",\n\t\t\"Febelco stock info\": \"Stock info Febelco\",\n\t\t\"Filter\": \"Filtre\",\n\t\t\"Flu vaccines\": \"Vaccins anti-grippe \",\n\t\t\"Following products can be ordered via 'special order', should the product not be in stock at the moment.\": \"Si les produits suivants ne sont plus en stock, ils peuvent être commandés via ‘Commandes spéciales’. \",\n\t\t\"For more information about this contract, please contact your relationship manager.\": \"Pour de plus amples renseignements sur ce contrat, merci de vous adresser à votre chargé de relations.\",\n\t\t\"For more information about this contract, please contact your supplier.\": \"Pour de plus amples renseignements sur ce contrat, merci de vous adresser au labo. \",\n\t\t\"French\": \"Français\",\n\t\t\"Frequently asked questions\": \"Questions fréquemment posées\",\n\t\t\"From\": \"Du\",\n\t\t\"From date must be greater than contract start date.\": \"La date doit être supérieure ou égale à la date de début du contrat.\",\n\t\t\"From {{vm.product.minOrderAmount}}\": \"à partir de {{vm.product.minOrderAmount}}\",\n\t\t\"GPM\": \"MBB\",\n\t\t\"Gelieve hieronder in te geven waar de producten geleverd mogen worden en wie ESRI kan contacteren om te verwittigen w.b. de levering.\": \"Veuillez ajouter ci-dessous une adresse pour la livraison des produits, ainsi que la personne qui peut être contactée par ESRI à propos de la livraison.\",\n\t\t\"General\": \"Général\",\n\t\t\"Go to today\": {\n\t\t\t\"Datetimepicker tooltips\": \"Aujourd'hui\"\n\t\t},\n\t\t\"Griepvaccins 2021-2022\": \"Vaccins anti-grippe 2021-2022\",\n\t\t\"Gross profit margin\": \"Marge bénéficiaire brute\",\n\t\t\"Gross profit margins (GPM) are calculated based on the pharmacy and public price (non-binding recommended prices).\": \"Les marges bénéficiaires brutes (MBB) sont calculées sur base du prix pharmacien et du prix public (prix conseillés non contraignants).\",\n\t\t\"Height\": \"Hauteur\",\n\t\t\"Hello\": \"Bonjour\",\n\t\t\"Help\": \"FAQ\",\n\t\t\"Hier krijgt u een overzicht van alle Thuisgezondheidszorg producten in uw bezit en alle huuraanvragen via Profficina.\": \"Consultez ici les produits Soins à domicile que vous louez actuellement ainsi que vos demandes de location sur Profficina.\",\n\t\t\"Hier krijgt u een overzicht van alle bestellingen die u bij Profficina geplaatst heeft.\": \"Consultez ici toutes vos commandes Profficina.\",\n\t\t\"Hier krijgt u een overzicht van alle producten die u bij Febelco gereserveerd heeft.\": \"Consultez ici toutes vos réservations auprès de Febelco.\",\n\t\t\"Hieronder kan u uw reservatie van de afgelopen 12 maanden terugvinden. Gelieve met uw klantendienst contact op te nemen indien u een reservatie wenst te annuleren.\": \"Vous trouverez ci-dessous vos réservations des douze derniers mois. Si vous souhaitez annuler une réservation, veuillez prendre contact avec votre service clientèle.\",\n\t\t\"Home\": \"Accueil\",\n\t\t\"Homepage\": \"Page d’accueil\",\n\t\t\"How can you enjoy this partnership?\": \"Comment profiter de cet avantage ?\",\n\t\t\"INFLUVAC S 2021-2022 0,5 ML 1 WWSP\": \"INFLUVAC S 2021-2022 0,5 ML 1 SER A JET\",\n\t\t\"In progress\": \"En cours de traitement\",\n\t\t\"In the spotlight\": \"Sous la loupe\",\n\t\t\"Increment Hour\": {\n\t\t\t\"Datetimepicker tooltips\": \"Augmenter l'heure\"\n\t\t},\n\t\t\"Increment Minute\": {\n\t\t\t\"Datetimepicker tooltips\": \"Augmenter les minutes\"\n\t\t},\n\t\t\"Increment Second\": {\n\t\t\t\"Datetimepicker tooltips\": \"Augmenter les secondes\"\n\t\t},\n\t\t\"Indication\": \"Indication\",\n\t\t\"Influvac niet meer reserveerbaar na bericht van de leverancier op 1/4/20.\": \"Influvac ne peut plus être réservé après un message du fournisseur le 1/4/20.\",\n\t\t\"Info\": \"Informations\",\n\t\t\"Invoiced\": \"Facturé\",\n\t\t\"Just a moment please, your order is being added to your shopping cart...\": \"Veuillez patienter, traitement des données en cours...\",\n\t\t\"Just a moment please, your order is being processed...\": \"Veuillez patienter, fichier en cours d’importation… \",\n\t\t\"Klaar voor de winter?\": \"Prêt pour l'hiver? \",\n\t\t\"Language\": \"Langue\",\n\t\t\"Learn more\": \"En savoir plus\",\n\t\t\"Lees meer\": \"Lire plus\",\n\t\t\"Limited stock!\": \"Stock limité !\",\n\t\t\"Location\": \"Emplacement\",\n\t\t\"Log in\": \"Connexion\",\n\t\t\"Log in with other pharmacy:\": \"Se connecter avec une autre pharmacie\",\n\t\t\"Max\": \"Max\",\n\t\t\"Max. discount\": \"Max. réduction\",\n\t\t\"Media\": \"Média\",\n\t\t\"Meer Details\": \"Plus de détails\",\n\t\t\"Mijn verzendingen\": \"Mijn verzendingen\",\n\t\t\"Mijn verzendingen bekijken\": \"Mijn verzendingen bekijken\",\n\t\t\"Mocht u verdere vragen hebben, kan u steeds terecht bij uw vertrouwde relatiebeheerder.\": \"Pour toute question à ce sujet, merci de prendre contact avec votre chargé(e) de relations.\",\n\t\t\"Modify\": \"Modifier\",\n\t\t\"Modify password\": \"Modifier mot de passe\",\n\t\t\"Month\": [\n\t\t\t\"mois\",\n\t\t\t\"mois\"\n\t\t],\n\t\t\"More info\": \"En savoir plus\",\n\t\t\"More info about\": \"More info about\",\n\t\t\"More info about 'special orders'.\": \"En savoir plus de 'Commande spéciales'.\",\n\t\t\"More than one pharmacy is linked to your account. Choose the pharmacy you wish to log on with.\": \"Plusieurs pharmacies sont liées à votre compte. Choisissez la pharmacie avec laquelle vous voulez vous connecter.\",\n\t\t\"More than one seller is linked to your account. Choose the seller you wish to log on with.\": \"Plusieurs fournisseurs sont liés à votre compte. Choisissez le fournisseur avec lequel vous voulez vous connecter.\",\n\t\t\"My account\": \"Mon compte\",\n\t\t\"My contracts\": \"Mes contrats\",\n\t\t\"My log in data\": \"Mes identifiants\",\n\t\t\"My orders\": \"Mes commandes\",\n\t\t\"My packages\": \"Mijn verzendingen\",\n\t\t\"My pharmacy\": \"Ma pharmacie\",\n\t\t\"My rent overview\": \"Mes demandes de location\",\n\t\t\"My reservations\": \"Mes Réservations\",\n\t\t\"Febelco organiseert naar jaarlijkse gewoonte een voorverkoop van griepvaccins, en dat tot en met 28 februari 2021.\": \"Febelco organise comme chaque année une prévente de vaccins antigrippaux, et ce jusqu'au 28 février 2021.\",\n\t\t\"Name\": \"Nom\",\n\t\t\"Name or APB or client number\": \"Nom ou APB ou numéro de client\",\n\t\t\"New order date must be before current order date\": \"Nouvelle date de livraison doit être antérieure à la date de livraison prévue.\",\n\t\t\"New order date must be later than today\": \"Nouvelle date de livraison doit être postérieure à aujourd'hui.\",\n\t\t\"Newest\": \"Dernières\",\n\t\t\"News\": \"Nouvelles\",\n\t\t\"News for\": \"Nouvelles pour\",\n\t\t\"News overview cannot be shown\": \"Fil d’actualité non disponible.\",\n\t\t\"Next\": \"Suivant\",\n\t\t\"Next Century\": {\n\t\t\t\"Datetimepicker tooltips\": \"Siècle suivant\"\n\t\t},\n\t\t\"Next Decade\": {\n\t\t\t\"Datetimepicker tooltips\": \"Décennie suivante\"\n\t\t},\n\t\t\"Next Month\": {\n\t\t\t\"Datetimepicker tooltips\": \"Mois suivant\"\n\t\t},\n\t\t\"Next Year\": {\n\t\t\t\"Datetimepicker tooltips\": \"Année suivante\"\n\t\t},\n\t\t\"No\": \"Non\",\n\t\t\"No certificates found for the given search criteria.\": \"Aucun certificat n'a été trouvé pour les critères de recherche saisis.\",\n\t\t\"No orders found\": \"Aucun résultat ne correspond à vos critères de recherche\",\n\t\t\"No passed rental products the last 3 months.\": \"Aucune demande de location n'a été terminée ces trois derniers mois.\",\n\t\t\"No products found.\": \"Produit introuvable.\",\n\t\t\"No results.\": \"Aucun résultat.\",\n\t\t\"No stock available\": \"Hors stock \",\n\t\t\"Non Rental Products\": \"Produits achetés\",\n\t\t\"Non-binding recommended prices\": \"Prix conseillés non contraignants\",\n\t\t\"Not available\": \"Non disponible\",\n\t\t\"Note\": \"Remarque\",\n\t\t\"Notices\": \"Notices\",\n\t\t\"Notices for patient\": \"Notice pour patient\",\n\t\t\"N°\": \"N°\",\n\t\t\"N° displays\": \"N° displays\",\n\t\t\"OP=OP\": \"À saisir\",\n\t\t\"One or more products were not found\": \"Un ou plusieurs produit(s) introuvable(s)\",\n\t\t\"Only {{productDiscount.counter}} piece(s) left!\": \"Plus que {{productDiscount.counter}} article(s) disponibles.\",\n\t\t\"Only {{vm.counter}} piece(s) left!\": \"Plus que {{vm.counter}} articles disponibles.\",\n\t\t\"Onze externe partner, ESRI, kan pas 24u na het moment van aanvraag leveren. Wenst u een dringende aanvraag (bijv. voor een palliatieve patiënt), neem dan even contact met de thuiszorgafdeling van Febelco via tgz@febelco.be of via het nummer 03/292.24.72. Zij bekijken dan samen met de externe partner wat er mogelijk is.\": \"Notre partenaire externe, ESRI, ne peut livrer que 24 heures après le moment de votre demande. Si vous avez besoin d'une demande urgente (par exemple pour un patient en soins palliatifs), veuillez contacter le service SÀD de Febelco par sad@febelco.be ou par le numéro 03/292.24.72. Ils examinent ensuite avec le partenaire externe ce qui est possible.\",\n\t\t\"Op {{vm.rentedProductsOrder.deliveryInfo.deliveryDate | date}} zullen de product(en) geleverd worden op uw gekozen leveradres\": \"Le(s) produit(s) seront livrés à votre adresse de livraison le {{vm.rentedProductsOrder.deliveryInfo.deliveryDate | date}}.\",\n\t\t\"Op=Op? These is the last stock for certain products for an extra discounted price. These products can not be returned.\": \"À saisir ? Ce sont des produits presque épuisés ne pouvant pas être retournés à un prix très avantageux. Visitez régulièrement notre site et découvrez chaque mois nos nouvelles promotions !\",\n\t\t\"Opgelet, de aangeduide aantallen griepvaccins op deze pagina geven uw initiële, totale reservatie griepvaccins weer. De aantallen houden met andere woorden geen rekening met eventueel reeds geleverde griepvaccins.\": \"Attention : les quantités de vaccins antigrippaux sur cette page correspondent à la quantité totale de votre réservation initiale. Autrement dit, ces quantités ne tiennent pas compte des vaccins antigrippaux déjà livrés.\",\n\t\t\"Order\": {\n\t\t\t\"noun\": \"Commander\",\n\t\t\t\"verb\": \"Commander\",\n\t\t\t\"$$noContext\": \"Commande\"\n\t\t},\n\t\t\"Order - noun\": \"Commande\",\n\t\t\"Order confirmation\": \"Confirmer commande\",\n\t\t\"Order here\": \"Commander ici\",\n\t\t\"Order now\": \"Commander maintenant\",\n\t\t\"Order pack\": \"Commander le promopack\",\n\t\t\"Order panaché\": \"Découvrez les conditions panaché et passez vos commandes\",\n\t\t\"Order total\": \"Total commande\",\n\t\t\"Order total price\": \"Réduction sur la totalité de votre commande\",\n\t\t\"Ordered products\": \"Produits\",\n\t\t\"Orders are pharmacy based. When you log on as another pharmacy, your shopping basket will change. Your current shopping basket is however not removed.\": \"Les commandes se font par pharmacie. Si vous vous connectez avec une autre pharmacie, le panier sera modifié. Votre panier actuel ne sera toutefois pas supprimé. \",\n\t\t\"Orders in Profficina are pharmacy based. Once logged on, you can always switch pharmacy through the 'My account' link in the menu.\": \"Les commandes dans Profficina se font par pharmacie. Dès que vous êtes connecté, vous pouvez toujours changer de pharmacie en cliquant sur le lien ‘Mon compte’ dans le menu.\",\n\t\t\"Other offers with this product\": \"Autres offres avec ce produit\",\n\t\t\"Our website uses cookies to make your browsing experience better. By using our site, you agree to our use of cookies.\": \"Ce site utilise des cookies pour améliorer votre expérience de navigation. Si vous poursuivez la navigation, nous considérerons que vous acceptez leur utilisation.\",\n\t\t\"Outlet\": \"À saisir\",\n\t\t\"Overview\": \"Aperçu\",\n\t\t\"Overview all discounts\": \"Aperçu réductions\",\n\t\t\"Overzicht producten in reservatie\": \"Mes réservations\",\n\t\t\"PDF\": \"PDF\",\n\t\t\"PROMO\": \"PROMO\",\n\t\t\"Package quantity\": \"Quantité de colis\",\n\t\t\"PackageDetail\": \"Details verzending\",\n\t\t\"Packages archive\": \"Al mijn verzendingen\",\n\t\t\"Panaché\": \"Panaché\",\n\t\t\"Panaché:\": \"Panaché:\",\n\t\t\"Partially in progress by wholesaler\": \"Commande partiellement en cours de de traitement\",\n\t\t\"Partially invoiced\": \"Facturé partiellement\",\n\t\t\"Partially registered by wholesaler\": \"Enregistré partiellement \",\n\t\t\"Partnerships\": \"Partenariats\",\n\t\t\"Password\": \"Mot de passe\",\n\t\t\"Pharmacy\": \"Pharmacie\",\n\t\t\"Pharmacy price\": \"Prix pharmacien\",\n\t\t\"Pick Hour\": {\n\t\t\t\"Datetimepicker tooltips\": \"Choisissez l'heure\"\n\t\t},\n\t\t\"Pick Minute\": {\n\t\t\t\"Datetimepicker tooltips\": \"Choisissez minutes\"\n\t\t},\n\t\t\"Pick Second\": {\n\t\t\t\"Datetimepicker tooltips\": \"Choisissez secondes\"\n\t\t},\n\t\t\"Place order\": \"Commander\",\n\t\t\"Please enter a date before {{vm.maxDate | date: 'dd-MM-yyyy'}}\": \"Veuillez choisir une date antérieure au {{vm.maxDate | date: 'dd-MM-yyyy'}}\",\n\t\t\"Please enter a date in the future\": \"Veuillez ajouter une date valable.\",\n\t\t\"Please enter a quantity.\": \"Entrez une quantité. \",\n\t\t\"Please place your order within {{error.daysLeftUntilDiscountExpires}} days, discount for {{error.productName}} ends on {{error.expireDate | date:'yyyy-MM-dd'}}\": \"Veuillez passer votre commande dans les {{error.daysLeftUntilDiscountExpires}} jours, la réduction pour {{error.productName}} expire le {{error.expireDate | date:'yyyy-MM-dd'}}\",\n\t\t\"Please provide a street.\": \"Veuillez ajouter une rue.\",\n\t\t\"Please provide a valid city.\": \"Veuillez ajouter une ville valable.\",\n\t\t\"Please provide your contact person.\": \"Veuillez ajouter une personne à contacter.\",\n\t\t\"Please provide your housenumber.\": \"Veuillez ajouter votre numéro de maison.\",\n\t\t\"Please provide your telephone number.\": \"Veuillez ajouter votre numéro de téléphone.\",\n\t\t\"Please refine your search.\": \"Affinez votre recherche...\",\n\t\t\"Please select a pharmacy\": \"Sélectionnez une pharmacie\",\n\t\t\"Please select a seller\": \"Sélectionnez un fournisseur\",\n\t\t\"Prescription\": \"Sur prescription\",\n\t\t\"Previous\": \"Dernier\",\n\t\t\"Previous Century\": {\n\t\t\t\"Datetimepicker tooltips\": \"Siècle précédent\"\n\t\t},\n\t\t\"Previous Decade\": {\n\t\t\t\"Datetimepicker tooltips\": \"Décennie précédente\"\n\t\t},\n\t\t\"Previous Month\": {\n\t\t\t\"Datetimepicker tooltips\": \"Mois précédent\"\n\t\t},\n\t\t\"Previous Year\": {\n\t\t\t\"Datetimepicker tooltips\": \"Année précédente\"\n\t\t},\n\t\t\"Price\": \"Prix\",\n\t\t\"Price information\": \"Informations prix\",\n\t\t\"Price:\": \"Prix:\",\n\t\t\"Processing...\": \"Traitement en cours…\",\n\t\t\"Product\": \"Produit\",\n\t\t\"Product available\": \"Produit disponible\",\n\t\t\"Product discount\": \"Réduction produit\",\n\t\t\"Product info\": \"Informations produit\",\n\t\t\"Product information\": \"Informations produit\",\n\t\t\"Product name or number\": \"Nom ou numéro du produit\",\n\t\t\"Product name, number or lot number\": \"CNK, nom produit ou n° lot\",\n\t\t\"Product not found\": \"Numéro de produit introuvable\",\n\t\t\"Product number\": \"CNK\",\n\t\t\"Product number or product name\": \"Cnk ou nom produit\",\n\t\t\"Product number, name product\": \"Numéro de produit, nom du produit\",\n\t\t\"Product overview cannot be shown\": \"Aperçu produits non disponible\",\n\t\t\"Product status\": \"Statut produit\",\n\t\t\"Product vervalt op {{productDiscount.expirationDate | date: 'dd/MM/yyyy' }}\": \"Date de péremption : {{productDiscount.expirationDate | date: 'dd/MM/yyyy'}}\",\n\t\t\"ProductNumber\": \"ProductNumber\",\n\t\t\"Producten die mogelijks\\n interessant zijn om bij te huren\": \"Produits intéressants à louer en addition de votre commande\",\n\t\t\"Producten die mogelijks\\n interessant zijn om bij te kopen\": \"Produits intéressants à acheter en addition de votre commande\",\n\t\t\"Producten die mogelijks interessant zijn om bij te huren\": \"Produits intéressants à louer en addition de votre commande\",\n\t\t\"Producten die mogelijks interessant zijn om bij te kopen\": \"Produits intéressants à acheter en addition de votre commande\",\n\t\t\"Productname or product number\": \"Nom produit ou numéro de produit\",\n\t\t\"Products\": \"Produits\",\n\t\t\"Products were added to your cart\": \"Les produits ont été ajoutés au panier.\",\n\t\t\"Profficina\": \"Profficina\",\n\t\t\"Profficina Ref.\": \"Profficina Réf.\",\n\t\t\"Profficina ref.\": \"Profficina Réf.\",\n\t\t\"Profficina ref. or TO-nr.\": \"Profficina Réf. ou TO N° bon\",\n\t\t\"Promopack\": \"Promopack\",\n\t\t\"Properties\": \"Propriétés\",\n\t\t\"Public categories\": \"Catégories publiques\",\n\t\t\"Public price\": \"Prix public\",\n\t\t\"Quantity\": \"Quantité\",\n\t\t\"Quantity in panaché\": \"Qté en panaché\",\n\t\t\"Quantity:\": \"Quantité\",\n\t\t\"Questions or remarks concerning the pharmacovigilance of one of our products?\": \"Des questions ou des remarques sur la pharmacovigilance d’un de nos produits ? \",\n\t\t\"Questions? More info?\": \"Des questions ? En savoir plus ?\",\n\t\t\"Read more\": \"Plus d'infos\",\n\t\t\"Read our FAQ\": \"Consultez notre FAQ\",\n\t\t\"Receipt\": \"Note de commande\",\n\t\t\"Recently passed rental products\": \"Locations terminées récemment\",\n\t\t\"Reference codes\": \"Codes de références\",\n\t\t\"Refund value with omnio\": \"Tarif Omnio\",\n\t\t\"Refund value without omnio\": \"Tarif de remboursement\",\n\t\t\"Refunded deposit\": \"Restitution caution\",\n\t\t\"Registered\": \"Enregistré\",\n\t\t\"Registered by seller\": \"Enregistré par le fournisseur\",\n\t\t\"Related news\": \"Actualités liées\",\n\t\t\"Rent\": {\n\t\t\t\"Verb\": \"Louer\"\n\t\t},\n\t\t\"Rent per day\": \"Prix de location par jour\",\n\t\t\"Rent per day:\": \"Prix de location par jour:\",\n\t\t\"Rent products\": \"Produits de location\",\n\t\t\"Rental amount per month\": \"Prix de location par mois\",\n\t\t\"Rental products\": \"Produits de location\",\n\t\t\"Rental products in your possession\": \"Locations en cours\",\n\t\t\"Rental request (Pdf)\": \"Demande (PDF)\",\n\t\t\"Rental service\": \"Location\",\n\t\t\"Rented from\": \"Loué depuis le\",\n\t\t\"Rented product detail\": \"Détails produit de location\",\n\t\t\"Rented since – until\": \"Loué du – au\",\n\t\t\"Rented until\": \"Loué jusqu'au\",\n\t\t\"Rented until – from\": \"Loué du – au\",\n\t\t\"Reorder\": \"Dupliquer commande\",\n\t\t\"Replacement product available\": \"Produit de remplacement disponible \",\n\t\t\"Required {{vm.product.minOrderAmount}}\": \"{{vm.product.minOrderAmount}} pièces requises\",\n\t\t\"Reservation time\": \"Réservé depuis\",\n\t\t\"Reservation time:\": \"Réservé depuis:\",\n\t\t\"Reserved products at Febelco\": \"Aperçu des produits en réservation\",\n\t\t\"Reserveer nu uw griep vaccins\": \"Réservez vos vaccins contre la grippe ici.\",\n\t\t\"Reset\": \"Supprimer\",\n\t\t\"Retroactive discount\": \"Réduction rétroactive\",\n\t\t\"Return\": \"Retour\",\n\t\t\"Return to the homepage\": \"Retour à la page d’accueil\",\n\t\t\"Route number\": \"Numéro de route\",\n\t\t\"Running low on stock!\": \"Stock presque épuisé !\",\n\t\t\"Save\": \"Enregistrer\",\n\t\t\"Scientific notices\": \"Notice scientifique\",\n\t\t\"Search\": \"Rechercher\",\n\t\t\"Search by contract name\": \"Recherche par nom contrat\",\n\t\t\"Search by name\": \"Recherche par nom\",\n\t\t\"Search by name or number\": \"Recherche par nom ou code Numéro de produit\",\n\t\t\"Search products by number or name\": \"Recherche produits par nom ou code Numéro de produit\",\n\t\t\"See the latest discounts\": \"Consultez les dernières réductions\",\n\t\t\"Select Decade\": {\n\t\t\t\"Datetimepicker tooltips\": \"Sélectionnez décennie\"\n\t\t},\n\t\t\"Select Month\": {\n\t\t\t\"Datetimepicker tooltips\": \"Sélectionnez mois\"\n\t\t},\n\t\t\"Select Year\": {\n\t\t\t\"Datetimepicker tooltips\": \"Sélectionnez année\"\n\t\t},\n\t\t\"Select other pharmacy\": \"Sélectionnez une autre pharmacie\",\n\t\t\"Select other seller\": \"Sélectionnez un autre fournisseur\",\n\t\t\"Select wholesaler\": \"Sélectionnez grossiste\",\n\t\t\"Seller\": \"Fournisseur\",\n\t\t\"Sellers\": \"Fournisseurs\",\n\t\t\"Send a fax to\": \"Envoyez un fax au\",\n\t\t\"Send an e-mail to\": \"Envoyez un e-mail à\",\n\t\t\"Send application\": \"Envoyer demande\",\n\t\t\"Sent to seller\": \"Envoyé au fournisseur\",\n\t\t\"Serialnumber\": \"Numéro de série\",\n\t\t\"Shipping note\": \"Note d'envoi\",\n\t\t\"Shopping cart\": \"Panier\",\n\t\t\"Show all\": \"Afficher tout\",\n\t\t\"Show all results\": \"Afficher tous les résultats\",\n\t\t\"Show in grid\": \"Afficher dans un tableau\",\n\t\t\"Show in list\": \"Afficher dans une liste\",\n\t\t\"Show less\": \"Afficher moins\",\n\t\t\"Side effects\": \"Effets secondaires\",\n\t\t\"Sign out\": \"Se déconnecter\",\n\t\t\"Sold out!\": \"Trop tard !\",\n\t\t\"Something went wrong\": \"Une erreur est survenue.\",\n\t\t\"Something went wrong when loading this page.\": \"Une erreur est survenue lors du chargement de cette page.\",\n\t\t\"Something went wrong while adding the products to your shoppingcart.\": \"Une erreur est survenue. Les produits n’ont pas pu être ajoutés au panier.\",\n\t\t\"Something went wrong while adding your products, please try again.\": \"Une erreur est survenue. Les produits n’ont pas pu être ajoutés au panier.\",\n\t\t\"Something went wrong with the import of your file. Please check your CSV and try again.\": \"Une erreur est survenue lors de l’importation du fichier CSV. Veuillez vous assurer que le fichier est correct et réessayer. \",\n\t\t\"Sort\": \"Trier\",\n\t\t\"Sort by\": \"Trier par\",\n\t\t\"Special Discounts\": \"Speciale kortingen (FR)\",\n\t\t\"Special order possible\": \"Commande spéciale possible\",\n\t\t\"Special orders\": \"Commandes spéciales\",\n\t\t\"Status\": \"État\",\n\t\t\"Stock response cannot be checked at the moment.\": \"Le stock n’est actuellement pas consultable.\",\n\t\t\"Street\": \"Rue\",\n\t\t\"Subtotal\": \"Sous-total\",\n\t\t\"Suggesties\": \"Suggestions\",\n\t\t\"Supplier\": \"Fournisseur\",\n\t\t\"Supplier has no stock available\": \"Non tenu en stock par le fournisseur\",\n\t\t\"Supplier reference\": \"Référence fournisseur\",\n\t\t\"TO-nr.\": \"TO N° bon\",\n\t\t\"Tags\": \"Étiquettes\",\n\t\t\"Tax\": \"TVA\",\n\t\t\"Tel:\": \"Tél:\",\n\t\t\"Telephone number\": \"Numéro de téléphone\",\n\t\t\"Thank you for ordering\": \"Merci de votre commande.\",\n\t\t\"The Agios discount is not known, contact the supplier for more info.\": \"Réduction Agios inconnue. Pour en savoir plus, veuillez prendre contact avec le fournisseur.\",\n\t\t\"The CSV was empty.\": \"Le fichier CSV est vide. Veuillez vous assurer que le fichier est correct et réessayer.\",\n\t\t\"The last 3 months you did not submit any rental applications via Profficina.\": \"Aucune demande de location n'a été faite sur Profficina ces trois derniers mois.\",\n\t\t\"The last 3 months, you ended rent for more than 15 products.\": \"Plus de 15 locations ont été terminées ces trois derniers mois.\",\n\t\t\"The orders could not be retrieved\": \"Une erreur s’est produite lors de l’affichage des commandes.\",\n\t\t\"The partnerships could not be retrieved\": \"Une erreur s’est produite lors de l’affichage des partenariats.\",\n\t\t\"The product could not be added to your shopping cart\": \"Le produit n’a pas pu être ajouté au panier.\",\n\t\t\"The product could not be removed from your shopping cart\": \"Le produit n’a pas pu être retiré du panier.\",\n\t\t\"The product quantity could not be updated\": \"La quantité du produit n’a pas pu être modifiée.\",\n\t\t\"The product you were looking was not found or is inactive.\": \"Le produit est introuvable ou est inactif.\",\n\t\t\"The products cannot be retrieved.\": \"Une erreur s’est produite lors de l’affichage des produits.\",\n\t\t\"The products could not be removed from your shopping cart\": \"Le produit n’a pas pu être retiré du panier.\",\n\t\t\"The quantity of one or more products is incorrect.\": \"Un ou plusieurs produit(s) ne renseigne(nt) pas la quantité.\",\n\t\t\"The shaded products can no longer be ordered.\": \"Les produits hachurés ne peuvent plus être commandés.\",\n\t\t\"There are currently no discounts available\": \"Aucun réduction n’est actuellement disponible.\",\n\t\t\"There are currently no products available\": \"Aucun produit n’est actuellement disponible.\",\n\t\t\"There are still products in your shopping cart\": \"Il y a encore des produits dans votre panier\",\n\t\t\"This product is in Agios, the discount displayed is not the Agios discount.\": \"Ce produit fait partie d'Agios, la réduction affichée n'est pas une réduction Agios.\",\n\t\t\"This promopack contains following products\": \"Ce paquet de promotion contient les produits suivants\",\n\t\t\"Time\": \"Moment\",\n\t\t\"To TGZ homepage\": \"Retour à la page d'accueil sad\",\n\t\t\"Too many results.\": \"Plus de 20 résultats.\",\n\t\t\"Total\": \"Total\",\n\t\t\"Total (incl. VAT)\": \"Total (TVA incluse)\",\n\t\t\"Total discount\": \"Réduction totale\",\n\t\t\"Total quantity in panaché\": \"Quantité totale en panaché\",\n\t\t\"Total rent\": \"Prix de location total\",\n\t\t\"Trade in months after expiry\": \"Échange en mois après expiration\",\n\t\t\"Trade in months before expiry\": \"Trade in months before expiry\",\n\t\t\"U heeft momenteel geen openstaande reservaties.\": \"Vous n’avez aucune réservation ouverte en ce moment.\",\n\t\t\"U heeft voor dit partnership een {{contract.name}} contract van onbepaalde duur vanaf {{contract.startDate | date}}\": \"Pour ce partenariat, vous avez un contrat {{contract.name}} de durée indéterminée ayant pris effet le {{contract.startDate | date}}.\",\n\t\t\"U heeft voor dit partnership een {{contract.name}} contract van {{contract.startDate | date}} tot {{contract.endDate | date}}\": \"Pour ce partenariat, vous avez un contrat {{contract.name}} du {{contract.startDate | date}} au {{contract.endDate | date}}\",\n\t\t\"Undo changes\": \"Annuler changements\",\n\t\t\"Unfortunately there are no products available for the current criteria.\": \"Aucun produit ne correspond aux critères sélectionnés.\",\n\t\t\"Unfortunately there were no certificates found.\": \"Aucun certificat n'est actuellement disponible.\",\n\t\t\"Unfortunately there were no items found from Profficina.\": \"Aucune demande de location n'a été faite sur Profficina.\",\n\t\t\"Unfortunately there were no news items found.\": \"Aucune nouveauté ne correspond aux critères sélectionnés.\",\n\t\t\"Unfortunately there were no partnerships found.\": \"Aucun avantage ne correspond aux critères sélectionnés.\",\n\t\t\"Unfortunately there were no rental products found.\": \"Produits de location introuvables.\",\n\t\t\"Unfortunately there were no rental requests found.\": \"Aucune demande de location n’a été trouvée.\",\n\t\t\"Until\": \"Au\",\n\t\t\"Up to\": \"Jusqu’à\",\n\t\t\"Update cart\": \"Mise à jour panier\",\n\t\t\"Update shopping cart [ENTER]\": \"Mettre à jour panier [ENTER]\",\n\t\t\"Updating your cart...\": \"Mise à jour panier en cours...\",\n\t\t\"Usage\": \"Utilisation\",\n\t\t\"Uw aanvraag\": \"Votre demande\",\n\t\t\"Uw contract\": \"Votre contrat\",\n\t\t\"Uw gereserveerde griepvaccins zijn toegevoegd aan onderstaande lijst van reservaties echter kunnen we geen nieuwe reservaties meer opnemen.\": \"Vos vaccins antigrippaux réservés ont été ajoutés à la liste des réservations ci-dessous, mais nous ne pouvons plus faire de nouvelles réservations.\",\n\t\t\"Uw huuraanvraag\": \"Votre demande de location\",\n\t\t\"Uw huuraanvraag is verstuurd naar de klantendienst.\": \"Votre demande de location a été envoyée au service clientèle.\",\n\t\t\"VAT\": \"TVA\",\n\t\t\"VAT:\": \"TVA:\",\n\t\t\"VAXIGRIP TETRA 2021-2022 0,5 ML 1 WWSP\": \"VAXIGRIP TETRA 2021-2022 0,5 ML 1 SER A JET\",\n\t\t\"Valid from\": \"Valable du \",\n\t\t\"Valid from - until\": \"Valable du - au\",\n\t\t\"Valid until\": \"Valable jusqu'à\",\n\t\t\"Vendor\": \"Fournisseur\",\n\t\t\"Verstuur\": \"Envoyer\",\n\t\t\"Verzending\": \"Verzending\",\n\t\t\"View my orders\": \"Mes commandes\",\n\t\t\"View my packages\": \"Mijn verzendingen bekijken\",\n\t\t\"View my rent overview\": \"Mes demandes de location\",\n\t\t\"View my reservations\": \"Mes réservations\",\n\t\t\"View your shopping basket\": \"Ouvrir votre panier\",\n\t\t\"Voor vragen of aanpassingen aan deze aanvraag, gelieve de klantendienst te contacteren op 03/770.70.70 of klantendienst@febelco.be\": \"Si vous avez des questions relatives à votre demande, ou si vous aimeriez faire des ajustements, veuillez contacter le service clientèle par téléphone au numéro [03/770.70.70] ou adressez-vous à klantendienst@febelco.be.\",\n\t\t\"We can not find the page you are looking for. The product / news item / ... may no longer exist.\": \"La page que vous demandez est introuvable. Il se peut que le lien vous avez utilisé ne soit plus valable.\",\n\t\t\"Weight\": \"Poids\",\n\t\t\"What would you like use to do when these products are not in stock?\": \"LE CAS ÉCHÉANT, QUE SOUHAITEZ-VOUS FAIRE?\",\n\t\t\"Wholesaler\": \"Grossiste\",\n\t\t\"Width\": \"Largeur\",\n\t\t\"active\": \"Actif\",\n\t\t\"inactive\": \"Inactif\",\n\t\t\"true\": \"Oui\",\n\t\t\"false\": \"Non\",\n\t\t\"Written request by patient\": \"Sur demande écrite du patient\",\n\t\t\"U kan uw vaccins uitsluitend reserveren via Profficina. We bevelen u van harte aan om uw aantallen goed in te schatten, zodat we op basis daarvan voldoende voorraad kunnen voorzien.\": \"Ces vaccins ne peuvent être réservés que sur Profficina. Nous vous recommandons vivement de bien estimer les quantités dont vous avez besoin, afin que nous puissions aligner notre stock sur celles-ci.\",\n\t\t\"Wij raden aan om\\n hierbij ook deze producten te huren\": \"Nous vous conseillons de louer les produits suivants en supplément\",\n\t\t\"Wij raden aan om\\n hierbij ook deze producten te kopen\": \"Nous vous conseillons d’acheter les produits suivants en supplément\",\n\t\t\"Wij raden aan om hierbij ook deze producten te huren\": \"Nous vous conseillons de louer les produits suivants en supplément\",\n\t\t\"Wij raden aan om hierbij ook deze producten te kopen\": \"Nous vous conseillons d’acheter les produits suivants en supplément \",\n\t\t\"Withdrawn product\": \"Produit retiré du marché\",\n\t\t\"Maximum quantity exceeded.\": \"Maximum quantity exceeded.\",\n\t\t\"Year\": \"Année\",\n\t\t\"Yes\": \"Oui\",\n\t\t\"You are logged in with pharmacy\": \"Vous êtes connecté avec la pharmacie \",\n\t\t\"You are logged in with seller\": \"Vous êtes connecté avec le fournisseur\",\n\t\t\"You are now logged in with pharmacy\": \"Vous êtes connecté avec la pharmacie \",\n\t\t\"You can choose from the following products:\": \"Vous avez le choix parmi les produits suivants :\",\n\t\t\"You currently do not rent products from Febelco.\": \"Actuellement, vous ne louez pas de produits Febelco.\",\n\t\t\"You did not update your cart with the quantities you last modified.\": \"Les dernières quantités modifiées n’ont pas encore été ajoutées à votre panier.\",\n\t\t\"You do not have permission to view this page.\": \"Vous n’êtes pas autorisé à consulter cette page.\",\n\t\t\"You have more than 15 rental products in your possession.\": \"Vous louez actuellement plus de 15 produits.\",\n\t\t\"You have more than 15 rental requests in the last 3 months.\": \"Plus de 15 locations les derniers 3 mois.\",\n\t\t\"You have not rented products from Febelco.\": \"Vous n’avez loué aucun produit.\",\n\t\t\"You searched for\": \"Vos résultats de recherche pour\",\n\t\t\"You will receive an email confirmation shortly at {{ vm.mail }}.\": \"Une confirmation vous a été envoyée par courrier électronique à l’adresse {{ vm.mail }}.\",\n\t\t\"Your browser does not support file upload.\": \"Your browser does not support file upload.\",\n\t\t\"Your info\": \"Vos données\",\n\t\t\"Your purchases\": \"Vos achats\",\n\t\t\"Your recent rental requests\": \"Locations demandées récemment sur Profficina\",\n\t\t\"Your rent request on\": \"Demande du\",\n\t\t\"Your reservation has been confirmed.\": \"Votre réservation a bien été enregistrée.\",\n\t\t\"Your search value\": \"Votre terme de recherche\",\n\t\t\"Your shopping cart\": \"Votre panier\",\n\t\t\"_myDocuments._reportNarcotics.description\": \"Vous trouverez ici un aperçu des produits (contenant des substances énumérées dans les annexes I, II et IV de l’A.R. du 06/09/2017) pour lesquels vous ne nous avez pas encore remis de bon de stupéfiant.\",\n\t\t\"_myDocuments._reportNarcotics.title\": \"Bons de stupéfiant non traités\",\n\t\t\"_myDocuments._reportPurchaseProposals.description\": \"Ce rapport est un tableau récapitulatif de vos achats et indique clairement – pour chaque CNK – combien de pièces (1/5/10 pc.) vous devriez acheter pour pouvoir bénéficier d'une réduction maximale. Ces propositions vous aident également à limiter le nombre de livraisons d’un CNK au cours de la même période de facturation, et permettent ainsi d’augmenter votre efficacité.\",\n\t\t\"_myDocuments._reportPurchaseProposals.title\": \"Propositions d’achat\",\n\t\t\"_myDocuments._settings.introText\": \"Vous trouverez ici un aperçu des bons de stupéfiant que vous devez encore nous remettre, ainsi qu’un aperçu de vos propositions d’achat.\",\n\t\t\"_myDocuments._settings.myDocuments\": \"Mes documents\",\n\t\t\"_myDocuments._settings.viewMyDocuments\": \"Visionner documents\",\n\t\t\"_myDocuments._siteHeader.myDocuments\": \"Mes documents\",\n\t\t\"_myDocuments.downloadDocument\": \"Télécharger document\",\n\t\t\"_myDocuments.myDocuments\": \"Mes documents\",\n\t\t\"_selftests.linkToFaq\": \"Pour toutes vos questions sur le kit COVID, merci de prendre contact avec votre chargé(e) de relations.\",\n\t\t\"_reservationCampaigns.product\": \"Produit\",\n\t\t\"_reservationCampaigns.productNumber\": \"CNK\",\n\t\t\"_reservationCampaigns.quantity\": \"Quantité\",\n\t\t\"_reservationCampaigns.reservationConfirmed\": \"Votre réservation a bien été enregistrée.\",\n\t\t\"_reservationCampaigns.save\": \"Réserver\",\n\t\t\"_reservationCampaigns.totalLimitReached\": \"Limite de réservation atteinte.\",\n\t\t\"_reservationCampaigns.limitReached\": \"Maximum {{limit}} pc.\",\n\t\t\"article\": [\n\t\t\t\"article\",\n\t\t\t\"articles\"\n\t\t],\n\t\t\"at\": {\n\t\t\t\"delivered on april 14th AT 17:25\": \"à\"\n\t\t},\n\t\t\"can be delivered on\": \"Ces produits pourront être livrés au plus tôt le \",\n\t\t\"certificate\": [\n\t\t\t\"certificat\",\n\t\t\t\"certificats\"\n\t\t],\n\t\t\"checkout.agreeWithTerms\": \"En cliquant sur \\\"Confirmer commande\\\", vous acceptez les conditions générales d’utilisation de Profficina.\",\n\t\t\"checkout.contactSupportWhenInvoiceAddressIsIncorrect\": \"Si ces informations ne sont pas correctes, veuillez prendre contact avec support@profficina.be.\",\n\t\t\"checkout.linkToOrderOverview\": \"Vous pouvez toujours consulter les détails de vos commandes via 'Mon compte' 'Mes commandes' en haut de la page.\",\n\t\t\"discount\": \"réduction\",\n\t\t\"discounts\": \"réductions\",\n\t\t\"documents\": \"documents\",\n\t\t\"indefinite\": \"pour une durée indéterminée\",\n\t\t\"indefinitely\": \"durée indéterminée\",\n\t\t\"news\": \"nouvelles\",\n\t\t\"no\": \"non\",\n\t\t\"or Send an email to\": \"ou envoyez un e-mail à\",\n\t\t\"parcel.addAnotherLine\": \"Ajouter un colis\",\n\t\t\"parcel.addConfirmationExplanations\": \"Een woordje uitleg wat men nu moet doen ... Text TBD\",\n\t\t\"parcel.allMyParcels\": \"Tous mes envois\",\n\t\t\"parcel.back\": \"Précédent\",\n\t\t\"parcel.backToOverview\": \"Retour à l’aperçu\",\n\t\t\"parcel.barcode\": \"Code-barres\",\n\t\t\"parcel.cancel\": \"Annuler envoi\",\n\t\t\"parcel.cancelParcel\": \"Annuler colis\",\n\t\t\"parcel.checkData\": \"Vérifiez les données ci-dessus et confirmez que vous êtes d'accord avec\",\n\t\t\"parcel.confirmOrder\": \"Confirmer envoi\",\n\t\t\"parcel.createParcel\": \"Créer envoi\",\n\t\t\"parcel.createShippingLabelHere\": \"Envoyer un colis à une pharmacie via Febelco ? Créez une étiquette d'envoi ici.\",\n\t\t\"parcel.customerNumber\": \"Numéro client Febelco\",\n\t\t\"parcel.deliveredWithin48\": \"Binnen 48u geleverd op bestemming\",\n\t\t\"parcel.enterLicenseNumberLong\": \"Saisissez le numéro d'autorisation de la pharmacie où votre colis doit être livré. L'adresse du destinataire sera automatiquement affichée sur le prochain écran.\",\n\t\t\"parcel.enterLicenseNumberShort\": \"Veuillez saisir numéro d'autorisation.\",\n\t\t\"parcel.febelcoNotResponsibleForContent\": \"Febelco n'est pas responsable du contenu des colis. \",\n\t\t\"parcel.followWithTrackAndTrace\": \"Suivi via le système Track & Trace\",\n\t\t\"parcel.giveParcelToCourier\": \"Geef uw pakket met label aan de Febelco koerier\",\n\t\t\"parcel.hereYouCanRegister\": \"Ici, vous pouvez enregistrer un colis à envoyer à une autre pharmacie via Febelco, et suivre le statut de vos envois.\",\n\t\t\"parcel.howDoesItWork\": \"Hoe werkt het? ..TBD\",\n\t\t\"parcel.iAgreeToTheTerms\": \"Je suis d'accord avec les termes et conditions.\",\n\t\t\"parcel.latestShipments\": \"Les envois des 6 derniers mois\",\n\t\t\"parcel.licenseNumber\": \"Numéro d'autorisation\",\n\t\t\"parcel.licenseNumberShort\": \"N° d'autorisation\",\n\t\t\"parcel.isSigned\": \"Recevoir la signature\",\n\t\t\"parcel.insurance\": \"Assurance\",\n\t\t\"parcel.insuranceDescription\": \"Prix €{{insurancePrice}}. Si le colis est assuré, une signature sera également demandée lors de sa réception.\",\n\t\t\"parcel.required\": \"Obligatoire\",\n\t\t\"parcel.packageValue\": \"Valeur d'un forfait\",\n\t\t\"parcel.packagePrice\": \"Prix du coffret: \",\n\t\t\"parcel.packageDiscount\": \"Pakket korting: \",\n\t\t\"parcel.insuranceInvoiceAmount\": \"Prix facturé pour l'assurance : \",\n\t\t\"parcel.packageInvoiceAmount\": \"Prix facturé pour le forfait: \",\n\t\t\"parcel.freePackage\": \"Ce forfait est gratuit, toute assurance complémentaire sera toujours facturée.\",\n\t\t\"parcel.line\": [\n\t\t\t\"colis\",\n\t\t\t\"colis\"\n\t\t],\n\t\t\"parcel.madeOn\": \"Créé le\",\n\t\t\"parcel.myParcels\": \"Mes envois\",\n\t\t\"parcel.nameApbOrCustomerNr\": \"Nom, n° APB, n° client\",\n\t\t\"parcel.next\": \"Suivant\",\n\t\t\"parcel.no\": \"Non\",\n\t\t\"parcel.noParcelsFound\": \"Aucune expédition trouvée.\",\n\t\t\"parcel.noParcelsFoundForCriteria\": \"Aucun envoi ne correspond aux données saisies.\",\n\t\t\"parcel.noPharmacyFound\": \"Aucune pharmacie ne correspond aux données saisies.\",\n\t\t\"parcel.orderNumber\": \"Envoi ID \",\n\t\t\"parcel.packLower\": [\n\t\t\t\"colis\",\n\t\t\t\"colis\"\n\t\t],\n\t\t\"parcel.packages\": \"Colis\",\n\t\t\"parcel.parcel\": \"Expédition\",\n\t\t\"parcel.parcelBarcode\": \"Code-barres colis\",\n\t\t\"parcel.parcelCancelCommandSent\": \"Veuillez patienter, l'annulation de votre colis ou envoi est en cours.\",\n\t\t\"parcel.errorSendingCancelCommand\": \"Un problème est survenu lors de l'annulation de votre colis ou de votre envoi.\",\n\t\t\"parcel.parcelLower\": [\n\t\t\t\"expédition\",\n\t\t\t\"verzendingen\"\n\t\t],\n\t\t\"parcel.perPage\": \"par page\",\n\t\t\"parcel.pleaseAgreeToTerms\": \"Veuillez accepter les termes et conditions.\",\n\t\t\"parcel.pleaseSelectPackageType\": \"Veuillez indiquer le type de colis que vous souhaitez envoyer. \",\n\t\t\"parcel.printAndHandToDriver\": \"Imprimez les étiquettes d'envoi et remettez le colis à votre chauffeur.\",\n\t\t\"parcel.printLabel\": \"Imprimer étiquette d'envoi\",\n\t\t\"parcel.remarkForCourier\": \"Remarque / Message pour le courrier\",\n\t\t\"parcel.remarkForCourierDescription\": \"Ici, vous pouvez ajouter des renseignements supplémentaires ou des instructions pour le courrier.\",\n\t\t\"parcel.reset\": \"Supprimer\",\n\t\t\"parcel.search\": \"Rechercher\",\n\t\t\"parcel.searchAllParcels\": \"Recherchez un de vos envois ou créez un nouvel envoi.\",\n\t\t\"parcel.sendTo\": \"Envoyer à\",\n\t\t\"parcel.sentTo\": \"Destinataire\",\n\t\t\"parcel.shippingDetail\": \"Détails envoi\",\n\t\t\"parcel.shippingDetails\": \"Détails envoi\",\n\t\t\"parcel.signatureRequired\": \"Signer à la réception\",\n\t\t\"parcel.signatureRequiredDescription\": \"Lorem ipsum dolor sit amet...\",\n\t\t\"parcel.theConditions\": \"les termes et conditions.\",\n\t\t\"parcel.to\": \"À l'adresse suivante\",\n\t\t\"parcel.trackAndTraceInDetail\": \"L'activité Track & Trace en détail\",\n\t\t\"parcel.until\": \"jusqu'au\",\n\t\t\"parcel.viewMyParcels\": \"Voir mes envois\",\n\t\t\"parcel.whatCanBeSentAndHowItWorks\": \"Een woordje uitleg over wat men kan verzenden en hoe het werkt.\",\n\t\t\"parcel.whatToSend\": \"Que voulez-vous expédier ?\",\n\t\t\"parcel.whichPharmacyToSend\": \"À quelle pharmacie souhaitez-vous envoyer un colis ?\",\n\t\t\"parcel.yes\": \"Oui\",\n\t\t\"parcel.youHaveNoRecentParcels\": \"Aucun envoi n'a été enregistré récemment.\",\n\t\t\"parcel.yourParcelWasRegistered\": \"Votre envoi a été enregistré.\",\n\t\t\"partnerships\": \"partenariats\",\n\t\t\"pcs.\": \"pc.\",\n\t\t\"per page\": \"par page\",\n\t\t\"product\": [\n\t\t\t\"produit\",\n\t\t\t\"produits\"\n\t\t],\n\t\t\"product.medipim.expires\": \"Date de péremption\",\n\t\t\"product.medipim.refundValueWithOmnio\": \"Tarif Omnio\",\n\t\t\"product.medipim.refundValueWithoutOmnio\": \"Tarif de remboursement\",\n\t\t\"product.medipim.tradeInMonthsAfterExpiry\": \"Période d'échange après la date de péremption\",\n\t\t\"product.medipim.tradeInMonthsBeforeExpiry\": \"Période d'échange avant la date de péremption\",\n\t\t\"product.status.active\": \"Actif\",\n\t\t\"product.status.inactive\": \"Inactif\",\n\t\t\"product.status.replaced\": \"Remplacé\",\n\t\t\"products\": \"Produits\",\n\t\t\"products available in your warehouse\": \"produits disponibles dans votre siège. \",\n\t\t\"products available\": \"produits disponibles\",\n\t\t\"refundOnDate\": \"le\",\n\t\t\"rental product\": [\n\t\t\t\"produit de location\",\n\t\t\t\"produits de location\"\n\t\t],\n\t\t\"rental request\": [\n\t\t\t\"demande de location\",\n\t\t\t\"demandes de location\"\n\t\t],\n\t\t\"select file\": \"sélectionnez un fichier\",\n\t\t\"tour\": \"tournée\",\n\t\t\"until\": \"au\",\n\t\t\"upward of\": \"à partir de\",\n\t\t\"v.a. {{d.amount}} st.\": \"À partir de {{d.amount}} pc.\",\n\t\t\"vac test\": \"\\\"Dès aujourd’hui, vous pouvez réserver vos vaccins exclusivement sur la plateforme d’achat Profficina. Vous pouvez égalementy consulter les réductions par produit, et les quantités réservées. Facile, non ?Vous n’avez pas encore de compte sur Profficina ? Prenez contact avec votre chargé de relations, ou envoyez un e-mail àsupport@profficina.be.\\\"\",\n\t\t\"yes\": \"oui\",\n\t\t\"{{ vm.activeCategory ? vm.activeCategory.name : 'All rental products'}}\": \"{{ vm.activeCategory ? vm.activeCategory.name : 'Tous les produits de location'}}\",\n\t\t\"_order.selectAccountTitle\": \"Sélectionnez votre compte client\",\n\t\t\"Dear Pharmacist,\": \"Cher pharmacien,\",\n\t\t\"From 23/01/2023 you and anyone who gives you rights, can manage the reservations yourself via MyFebelco, our new customer portal: changing, removing or adding can then be done in a few mouse clicks.\": \"À partir du 23/01/2023, vous et tous ceux à qui vous donnez les droits pourront simplement gérer les réservations via MyFebelco: vous pouvez les modifier, les supprimer ou les ajouter en quelques clics.\",\n\t\t\"Via MyFebelco you also get direct access to all kinds of information, personal data and useful tools. Calling customer service is no longer necessary, so they have more time to help our customers on the line faster.\": \"Vous bénéficiez également via MyFebelco d'un accès direct à toutes sortes d'informations, de données personnelles et d'outils utiles. Il ne sera plus nécessaire d'appeler le service client, ils auront donc plus de temps pour aider nos clients en ligne plus rapidement.\",\n\t\t\"Due to this progress, the reservation overview will no longer be available on Profficina and your secure area (my Febelco) from 16/01.\": \"En raison de cette évolution, l'aperçu des réservations ne sera plus disponible sur Profficina et votre zone sécurisé (mon Febelco) à partir du 16/01.\",\n\t\t\"Questions?
Before you can go to MyFebelco, you must activate your account on the basis of a registration email.\": \"Des questions?
Avant de pouvoir accéder à MyFebelco, vous devez activer votre compte sur la base d'un email d'inscription.\",\n\t\t\"Didn't receive a registration email? Then contact support@myfebelco.be.\": \"Vous n'avez pas reçu d'e-mail d'inscription? Alors contactez support@myfebelco.be.\"\n\t}\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/po/fr.po\n// module id = 684\n// module chunks = 0","module.exports = {\n\t\"nl\": {\n\t\t\"(Will be) delivered\": \"Wordt geleverd\",\n\t\t\"(Will be) partially delivered\": \"Wordt deels geleverd\",\n\t\t\"(excl. btw - {{d.promoCode}} - Valid until {{d.endDate | date: 'dd/MM/yyyy'}})\": \"(excl. btw - {{d.promoCode}} - Geldig tot {{d.endDate | date: 'dd/MM/yyyy'}})\",\n\t\t\".csv file, max. 5MB\": \"CSV-bestand, max. 5MB\",\n\t\t\"www.profficina.be\": \"www.profficina.be\",\n\t\t\"Terms and conditions\": \"Algemene gebruiksvoorwaarden\",\n\t\t\"Privacy policy\": \"Privacy beleid\",\n\t\t\"Niet te reserveren\": \"Niet te reserveren.\",\n\t\t\"Zonder korting\": \"Te reserveren zonder korting.\",\n\t\t\"Do not order the products.\": \"de producten niet te bestellen.\",\n\t\t\"Opgelet! Geen retours mogelijk. Levering van zodra voorradig en zolang de voorraad strekt.\": \"Opgelet! Geen retours mogelijk. Levering van zodra voorradig en zolang de voorraad strekt.\",\n\t\t\"Opgelet! U kan na 28 februari 2021 uw gereserveerde aantallen niet meer wijzigen.\": \"Opgelet! U kan na 28 februari 2021 uw gereserveerde aantallen niet meer wijzigen.\",\n\t\t\"Opgelet! het maximale reservatieniveau voor de Influvac vaccins werd bereikt. Het is dus niet meer mogelijk om deze te reserveren. U kan uw eerder gereserveerde Influvac vaccins wel nog raadplegen, maar niet langer wijzigen.\": \"Opgelet! het maximale reservatieniveau voor de Influvac vaccins werd bereikt. Het is dus niet meer mogelijk om deze te reserveren. U kan uw eerder gereserveerde Influvac vaccins wel nog raadplegen, maar niet langer wijzigen.\",\n\t\t\"Order the products anyway via the customer service ('special order').\": \"De producten bestellen via de klantendienst (‘Speciale bestellingen’). \",\n\t\t\"A question? A suggestion?\": \"Een vraag? Een suggestie?\",\n\t\t\"ALPHARIX TETRA 2020-2021 0,5 ML 1 WWSP\": \"ALPHARIX TETRA 2020-2021 0,5 ML 1 WWSP\",\n\t\t\"APB category\": \"APB categorie\",\n\t\t\"APB-number\": \"Vergunningsnummer\",\n\t\t\"About us\": \"Over ons\",\n\t\t\"Access is denied\": \"Toegang geweigerd\",\n\t\t\"Account\": \"Account\",\n\t\t\"Active ingredients\": \"Actieve bestandsdelen\",\n\t\t\"Add\": \"Toevoegen\",\n\t\t\"Add package\": \"Verzending toevoegen\",\n\t\t\"Add products or import a CSV file with your order.\": \"Geef producten in of importeer een csv-bestand met uw bestelling.\",\n\t\t\"Add to shopping cart\": \"In winkelmand\",\n\t\t\"Add {{ vm.product.quantityToAddForHighestDiscount }} pcs. for {{ vm.product.highestDiscount.discount }}% discount\": \"Voeg {{ vm.product.quantityToAddForHighestDiscount }} stuks toe voor {{ vm.product.highestDiscount.discount }}% korting\",\n\t\t\"Added products to your shoppingcart\": \"De producten zijn toegevoegd aan uw winkelmand.\",\n\t\t\"Address\": \"Adres\",\n\t\t\"Al mijn verzendingen\": \"Al mijn verzendingen\",\n\t\t\"All categories\": \"Alle categorieën\",\n\t\t\"All discounts\": \"Alle kortingen\",\n\t\t\"All my rental requests\": \"Al mijn huuraanvragen\",\n\t\t\"All my rented products\": \"Al mijn huurproducten\",\n\t\t\"All news\": \"Alle nieuws\",\n\t\t\"All partnerships\": \"Alle partners\",\n\t\t\"All pharmacies\": \"Alle apotheken\",\n\t\t\"All products\": \"Alle producten\",\n\t\t\"All products of this supplier or in your contract.\": \"Alle producten van deze leverancier zitten in uw contract.\",\n\t\t\"All rental products\": \"Alle huurproducten\",\n\t\t\"All sellers\": \"Alle aanbieders\",\n\t\t\"All vendors\": \"Alle aanbieders\",\n\t\t\"Amount\": \"Bedrag\",\n\t\t\"An error occured when adding products to your shoppingcart, please try again\": \"Er is iets foutgelopen, probeer het a.u.b. opnieuw\",\n\t\t\"An error occurred during the confirmation of the order. Please contact the customer support.\": \"Er heeft zich een onverwacht probleem voorgedaan tijdens de bevestiging van uw order. Neem aub contact op met de klantendienst. Onze excuses voor het ongemak.\",\n\t\t\"An error occurred during the re order. Please contact the customer support.\": \"Er heeft zich een onverwacht probleem voorgedaan tijdens de bevestiging van uw order. Neem aub contact op met de klantendienst. Onze excuses voor het ongemak.\",\n\t\t\"An overview of all rental products since 2019.\": \"Een overzicht van alles wat u huurde sinds 2019.\",\n\t\t\"Are you sure you want to clear your shopping cart?\": \"Bent u zeker dat u uw winkelmand wil leegmaken?\",\n\t\t\"At least\": \"Minstens\",\n\t\t\"Attention!\": \"Opgelet!\",\n\t\t\"Available\": \"Voldoende voorraad\",\n\t\t\"Back to overview\": \"Terug naar overzicht\",\n\t\t\"Batch number\": \"Lot\",\n\t\t\"Below are some useful links:\": \"Hieronder vindt u enkele handige links:\",\n\t\t\"Bewaren\": \"Bewaren\",\n\t\t\"Billing address\": \"Facturatieadres\",\n\t\t\"Black Friday\": \"Black Friday\",\n\t\t\"Box.\": \"Bus\",\n\t\t\"Box:\": \"Bus: \",\n\t\t\"Box: {{vm.partnership.partner.address.boxNumber}}\": \"Bus: {{vm.partnership.partner.address.boxNumber}}\",\n\t\t\"Brand\": \"Merk\",\n\t\t\"Brands\": \"Merken\",\n\t\t\"Buy\": \"Bestellen\",\n\t\t\"CNK\": \"CNK\",\n\t\t\"CTI extended\": \"CTI extended\",\n\t\t\"Call\": \"Bel naar\",\n\t\t\"Cancel\": \"Annuleren\",\n\t\t\"Cancelled\": \"Geannuleerd\",\n\t\t\"Categories\": \"Categorieën\",\n\t\t\"Categorisation\": \"Categorisatie\",\n\t\t\"Certificates\": \"Certificaten\",\n\t\t\"Certificates headerlink\": \"Analyse
certificaten\",\n\t\t\"Certificates introtext\": \"Bij elk grondstof hoort een analysecertificaat, zo ook bij Febelcare Elements. Dankzij Profficina heeft u altijd en overal toegang tot deze certificaten!
Een analysecertificaat opvragen doet u eenvoudigweg door het lotnummer, het CNK of de productnaam op de verpakking hieronder in te geven. Het kan zijn dat er geen lotnummer gevonden wordt. Dit betekent dat het nummer vervallen is of dat het certificaat gewoonweg niet is opgenomen in de database.
Bij eventuele problemen, kunt u steeds terecht bij onze klantendienst. Zij helpen u graag verder.
\",\n\t\t\"Certificates title\": \"Op zoek naar een analysecertificaat?\",\n\t\t\"Change\": \"Wijzigen\",\n\t\t\"Check stock\": \"Raadpleeg voorraad\",\n\t\t\"Check your order\": \"Kijk uw bestelling na\",\n\t\t\"Checking stock...\": \"Voorraad wordt gecheckt\",\n\t\t\"City\": \"Stad\",\n\t\t\"Clear\": \"Wissen\",\n\t\t\"Clear all\": \"Alles wissen\",\n\t\t\"Clear all filters\": \"Alle filters verwijderen\",\n\t\t\"Clear selection\": {\n\t\t\t\"Datetimepicker tooltips\": \"Wissen\"\n\t\t},\n\t\t\"Clear shopping cart\": \"Winkelmand leegmaken\",\n\t\t\"Click here to see the complete list.\": \"Klik hier om de volledige lijst te zien.\",\n\t\t\"Close\": \"Sluiten\",\n\t\t\"Close and don't show again\": \"Niet meer weergeven\",\n\t\t\"Close the picker\": {\n\t\t\t\"Datetimepicker tooltips\": \"Kalender sluiten\"\n\t\t},\n\t\t\"Company number\": \"Ondernemingsnummer\",\n\t\t\"Compose your panacea by choosing products from the list below.\": \"Stel uw panaché samen aan de hand van de producten uit onderstaande lijst.\",\n\t\t\"Composition\": \"Samenstelling\",\n\t\t\"Confirm\": \"Bevestigen\",\n\t\t\"Confirm order\": \"Bestelling bevestigen\",\n\t\t\"Confirmation\": \"Bevestiging\",\n\t\t\"Conservation\": \"Bewaring\",\n\t\t\"Contact\": {\n\t\t\t\"$$noContext\": \"Contact\",\n\t\t\t\"Contact page title\": \"Contact\"\n\t\t},\n\t\t\"Contact person\": \"Contactpersoon\",\n\t\t\"Contacts\": \"Contactpersonen\",\n\t\t\"Continue shopping\": \"Verder winkelen\",\n\t\t\"Continue without updating cart\": \"Verdergaan zonder winkelmand aan te passen\",\n\t\t\"Contra indication\": \"Contra-indicatie\",\n\t\t\"Contract name\": \"Contract naam\",\n\t\t\"Contracts\": \"Contracten\",\n\t\t\"Counter discount\": \"Tellerkorting\",\n\t\t\"Created\": \"Gecreëerd\",\n\t\t\"Current discount\": \"Huidige korting\",\n\t\t\"Current filters\": \"Huidige filters\",\n\t\t\"Currently you do not have any Febelco Partner or Agios contract.\": \"U heeft nog geen contract voor dit partnership.\",\n\t\t\"Customer number\": \"Klantnummer\",\n\t\t\"DD-MM-YYYY\": \"DD-MM-JJJJ\",\n\t\t\"Date\": \"Datum\",\n\t\t\"De minimumhuurtijd bedraagt 7 kalenderdagen. Er worden €60 transportkosten (AP excl BTW) aangerekend; deze kost omvat leveren, ophalen, reiniging en de administratieve afhandeling. ESRI zal niets factureren aan de patiënt. Alle facturatie verloopt via uw apotheek.\": \"De minimumhuurtijd bedraagt 7 kalenderdagen. Er worden €60 transportkosten (AP excl BTW) aangerekend; deze kost omvat leveren, ophalen, reiniging en de administratieve afhandeling. ESRI zal niets factureren aan de patiënt. Alle facturatie verloopt via uw apotheek.\",\n\t\t\"Decrement Hour\": {\n\t\t\t\"Datetimepicker tooltips\": \"Uur verlagen\"\n\t\t},\n\t\t\"Decrement Minute\": {\n\t\t\t\"Datetimepicker tooltips\": \"Minuten verlagen\"\n\t\t},\n\t\t\"Decrement Second\": {\n\t\t\t\"Datetimepicker tooltips\": \"Seconden verlagen\"\n\t\t},\n\t\t\"Deficit\": \"Tekort\",\n\t\t\"Delayed deliveries\": \"Volgende bestellingen worden later geleverd\",\n\t\t\"Delete\": \"Verwijderen\",\n\t\t\"Deliver earlier\": \"Leveringsdatum vervroegen\",\n\t\t\"Delivered\": \"Geleverd\",\n\t\t\"Deliveries\": \"Leveringen\",\n\t\t\"Delivery Date\": \"Levering na\",\n\t\t\"Delivery address\": \"Leveringsadres\",\n\t\t\"Delivery nr.\": \"Leveringsnr.\",\n\t\t\"Deposit\": \"Waarborg\",\n\t\t\"Deposit not refunded\": \"Waarborg niet terugbetaald\",\n\t\t\"Deposit refunded\": \"Waarborg terugbetaald\",\n\t\t\"Deposit:\": \"Waarborg:\",\n\t\t\"Depth\": \"Diepte\",\n\t\t\"Description\": \"Beschrijving\",\n\t\t\"Detail\": \"Detail\",\n\t\t\"Diameter\": \"Diameter\",\n\t\t\"Dimensions\": \"Afmetingen\",\n\t\t\"Discount\": \"Korting\",\n\t\t\"Discount date\": \"Datum korting\",\n\t\t\"Discount expires today\": \"Korting vervalt vandaag\",\n\t\t\"Discount on order total\": \"Korting op totale bestelling\",\n\t\t\"Discount on total order at\": \"Korting op totale bestelling bij\",\n\t\t\"Discount type\": \"Korting\",\n\t\t\"Discounts\": \"Kortingen\",\n\t\t\"Discounts only\": \"Enkel kortingen\",\n\t\t\"Discover all promotions!\": \"Ontdek alle promoties!\",\n\t\t\"Discover the Homecare rental range.\": \"Ontdek het Thuisgezondheidszorg huuraanbod.\",\n\t\t\"Displayname\": \"Weergave naam\",\n\t\t\"Displays\": \"Displays\",\n\t\t\"Dit product wordt rechtstreeks geleverd bij de patiënt.\": \"Dit product wordt rechtstreeks geleverd bij de patiënt.\",\n\t\t\"Document (pdf)\": \"Document (pdf)\",\n\t\t\"Document library\": \"Infotheek\",\n\t\t\"Documents\": \"Documenten\",\n\t\t\"Download PDF\": \"Download PDF\",\n\t\t\"Drag your file here or\": \"Sleep je bestand naar hier of\",\n\t\t\"Dutch\": \"Nederlands\",\n\t\t\"E-mail address and language for order confirmations:\": \"E-mailadres en taal bevestigingsmails bestelling:\",\n\t\t\"Email address\": \"E-mailadres\",\n\t\t\"Enkel te bestellen via uw vertegenwoordiger\": \"Enkel te bestellen via uw vertegenwoordiger\",\n\t\t\"Enter e-mailadress\": \"Vul e-mailadres in\",\n\t\t\"Error\": \"Fout\",\n\t\t\"Estimated Delivery Date\": \"Verwachte levertijd\",\n\t\t\"Expected delivery date\": \"Verwachte leveringsdatum\",\n\t\t\"Expires\": \"Vervalt\",\n\t\t\"Expires within {{productDiscount.daysLeft}} days\": \"Vervalt binnen {{productDiscount.daysLeft}} dagen\",\n\t\t\"Expires within {{vm.product.daysLeftUntilDiscountExpires}} days\": \"Vervalt binnen {{vm.product.daysLeftUntilDiscountExpires}} dagen\",\n\t\t\"Expiry date\": \"Vervaldatum\",\n\t\t\"Extra info\": \"Extra info\",\n\t\t\"FAQ\": \"Veelgestelde vragen\",\n\t\t\"Fast Order\": \"Snel bestellen\",\n\t\t\"Fast order\": \"Snel bestellen\",\n\t\t\"Fax:\": \"Fax:\",\n\t\t\"Featured products\": \"Producten in de kijker\",\n\t\t\"Febelco stock info\": \"Febelco voorraad info\",\n\t\t\"Filter\": \"Filter\",\n\t\t\"Flu vaccines\": \"GRIEPVACCINS\",\n\t\t\"Following products can be ordered via 'special order', should the product not be in stock at the moment.\": \"Indien de volgende producten niet meer op stock zijn, kunt u ze bestellen via ‘Speciale bestellingen’.\",\n\t\t\"For more information about this contract, please contact your relationship manager.\": \"Voor bijkomende informatie betreffende dit contract kan u terecht bij uw relatiebeheerder.\",\n\t\t\"For more information about this contract, please contact your supplier.\": \"Voor bijkomende informatie betreffende dit contract kan u terecht bij uw leverancier.\",\n\t\t\"French\": \"Frans\",\n\t\t\"Frequently asked questions\": \"Veelgestelde vragen\",\n\t\t\"From\": \"Van\",\n\t\t\"From date must be greater than contract start date.\": \"Startdatum moet groter of gelijk zijn aan startdatum contract.\",\n\t\t\"From {{vm.product.minOrderAmount}}\": \"Vanaf {{vm.product.minOrderAmount}}\",\n\t\t\"GPM\": \"BWM\",\n\t\t\"Gelieve hieronder in te geven waar de producten geleverd mogen worden en wie ESRI kan contacteren om te verwittigen w.b. de levering.\": \"Gelieve hieronder in te geven waar de producten geleverd mogen worden en wie ESRI kan contacteren om te verwittigen w.b. de levering.\",\n\t\t\"General\": \"Algemeen\",\n\t\t\"Go to today\": {\n\t\t\t\"Datetimepicker tooltips\": \"Vandaag\"\n\t\t},\n\t\t\"Griepvaccins 2021-2022\": \"Griepvaccins 2021-2022\",\n\t\t\"Gross profit margin\": \"Brutowinstmarge\",\n\t\t\"Gross profit margins (GPM) are calculated based on the pharmacy and public price (non-binding recommended prices).\": \"Brutowinstmarges (BWM) worden berekend op basis van de apothekers- en publieksprijs (niet-bindende adviesprijzen).\",\n\t\t\"Height\": \"Hoogte\",\n\t\t\"Hello\": \"Dag\",\n\t\t\"Help\": \"Veelgestelde vragen\",\n\t\t\"Hier krijgt u een overzicht van alle Thuisgezondheidszorg producten in uw bezit en alle huuraanvragen via Profficina.\": \"Hier krijgt u een overzicht van alle Thuisgezondheidszorg producten in uw bezit en alle huuraanvragen via Profficina.\",\n\t\t\"Hier krijgt u een overzicht van alle bestellingen die u bij Profficina geplaatst heeft.\": \"Hier krijgt u een overzicht van alle bestellingen die u bij Profficina geplaatst heeft.\",\n\t\t\"Hier krijgt u een overzicht van alle producten die u bij Febelco gereserveerd heeft.\": \"Hier krijgt u een overzicht van alle producten die u bij Febelco gereserveerd heeft.\",\n\t\t\"Hieronder kan u uw reservatie van de afgelopen 12 maanden terugvinden. Gelieve met uw klantendienst contact op te nemen indien u een reservatie wenst te annuleren.\": \"Hieronder kan u uw reservatie van de afgelopen 12 maanden terugvinden. Gelieve met uw klantendienst contact op te nemen indien u een reservatie wenst te annuleren.\",\n\t\t\"Home\": \"Home\",\n\t\t\"Homepage\": \"Startpagina\",\n\t\t\"How can you enjoy this partnership?\": \"Hoe kunt u van dit voordeel genieten?\",\n\t\t\"INFLUVAC S 2020-2021 0,5 ML 1 WWSP\": \"INFLUVAC S 2020-2021 0,5 ML 1 WWSP\",\n\t\t\"In progress\": \"In behandeling\",\n\t\t\"In the spotlight\": \"In de kijker\",\n\t\t\"Increment Hour\": {\n\t\t\t\"Datetimepicker tooltips\": \"Uur verhogen\"\n\t\t},\n\t\t\"Increment Minute\": {\n\t\t\t\"Datetimepicker tooltips\": \"Minuten verhogen\"\n\t\t},\n\t\t\"Increment Second\": {\n\t\t\t\"Datetimepicker tooltips\": \"Seconden verhogen\"\n\t\t},\n\t\t\"Indication\": \"Indicatie\",\n\t\t\"Influvac niet meer reserveerbaar na bericht van de leverancier op 1/4/20.\": \"Influvac niet meer reserveerbaar na bericht van de leverancier op 1/4/20.\",\n\t\t\"Info\": \"Info\",\n\t\t\"Invoiced\": \"Gefactureerd\",\n\t\t\"Just a moment please, your order is being added to your shopping cart...\": \"Even geduld, de producten worden toegevoegd aan uw winkelmand...\",\n\t\t\"Just a moment please, your order is being processed...\": \"Even geduld, uw import wordt verwerkt... \",\n\t\t\"Klaar voor de winter?\": \"Klaar voor de winter?\",\n\t\t\"Language\": \"Taal\",\n\t\t\"Learn more\": \"Meer info\",\n\t\t\"Lees meer\": \"Lees meer\",\n\t\t\"Limited stock!\": \"Beperkte voorraad!\",\n\t\t\"Location\": \"Plaats\",\n\t\t\"Log in\": \"Aanmelden\",\n\t\t\"Log in with other pharmacy:\": \"Aanmelden met een andere apotheek\",\n\t\t\"Max\": \"Max\",\n\t\t\"Max. discount\": \"Max. korting\",\n\t\t\"Media\": \"Media\",\n\t\t\"Meer Details\": \"Meer Details\",\n\t\t\"Mijn verzendingen\": \"Mijn verzendingen\",\n\t\t\"Mijn verzendingen bekijken\": \"Mijn verzendingen bekijken\",\n\t\t\"Mocht u verdere vragen hebben, kan u steeds terecht bij uw vertrouwde relatiebeheerder.\": \"Mocht u verdere vragen hebben, kan u steeds terecht bij uw vertrouwde relatiebeheerder.\",\n\t\t\"Modify\": \"Aanpassen\",\n\t\t\"Modify password\": \"Wachtwoord wijzigen\",\n\t\t\"Month\": [\n\t\t\t\"maand\",\n\t\t\t\"maanden\"\n\t\t],\n\t\t\"More info\": \"Meer informatie\",\n\t\t\"More info about\": \"Meer informatie over\",\n\t\t\"More info about 'special orders'.\": \"Meer informatie over 'Speciale bestellingen'.\",\n\t\t\"More than one pharmacy is linked to your account. Choose the pharmacy you wish to log on with.\": \"Er zijn meerdere apotheken gelinkt aan uw account. Kies met welke apotheek u wil aanmelden.\",\n\t\t\"More than one seller is linked to your account. Choose the seller you wish to log on with.\": \"Er zijn meerdere aanbieders gelinkt aan uw account. Kies met welke aanbieder u wil aanmelden.\",\n\t\t\"My account\": \"Mijn account\",\n\t\t\"My contracts\": \"Mijn contracten\",\n\t\t\"My log in data\": \"Mijn aanmeldgegevens\",\n\t\t\"My orders\": \"Mijn bestellingen\",\n\t\t\"My packages\": \"Mijn verzendingen\",\n\t\t\"My pharmacy\": \"Mijn apotheek\",\n\t\t\"My rent overview\": \"Mijn huuroverzicht\",\n\t\t\"My reservations\": \"Mijn reservaties\",\n\t\t\"Febelco organiseert naar jaarlijkse gewoonte een voorverkoop van griepvaccins, en dat tot en met 28 februari 2021.\": \"Febelco organiseert naar jaarlijkse gewoonte een voorverkoop van griepvaccins, en dat tot en met 28 februari 2021.\",\n\t\t\"Name\": \"Naam\",\n\t\t\"Name or APB or client number\": \"Naam of APB of klantnummer\",\n\t\t\"New order date must be before current order date\": \"Nieuwe leveringsdatum moet vroeger zijn dan de verwachte leveringsdatum \",\n\t\t\"New order date must be later than today\": \"Nieuwe leveringsdatum moet na vandaag zijn\",\n\t\t\"Newest\": \"Nieuwste\",\n\t\t\"News\": \"Nieuws\",\n\t\t\"News for\": \"Nieuws voor\",\n\t\t\"News overview cannot be shown\": \"Het nieuws overzicht is niet beschikbaar.\",\n\t\t\"Next\": \"Volgende\",\n\t\t\"Next Century\": {\n\t\t\t\"Datetimepicker tooltips\": \"Volgende eeuw\"\n\t\t},\n\t\t\"Next Decade\": {\n\t\t\t\"Datetimepicker tooltips\": \"Volgend decennium\"\n\t\t},\n\t\t\"Next Month\": {\n\t\t\t\"Datetimepicker tooltips\": \"Volgende maand\"\n\t\t},\n\t\t\"Next Year\": {\n\t\t\t\"Datetimepicker tooltips\": \"Volgend jaar\"\n\t\t},\n\t\t\"No\": \"Nee\",\n\t\t\"No certificates found for the given search criteria.\": \"Geen certificaat gevonden voor de ingegeven zoekcriteria.\",\n\t\t\"No orders found\": \"Geen resultaten.\",\n\t\t\"No passed rental products the last 3 months.\": \"U hebt de voorbije 3 maanden geen huur stopgezet.\",\n\t\t\"No products found.\": \"Geen producten gevonden.\",\n\t\t\"No results.\": \"Geen resultaten.\",\n\t\t\"No stock available\": \"Niet voorradig\",\n\t\t\"Non Rental Products\": \"Gekochte producten\",\n\t\t\"Non-binding recommended prices\": \"Niet-bindende adviesprijzen\",\n\t\t\"Not available\": \"Niet beschikbaar\",\n\t\t\"Note\": \"Opmerking\",\n\t\t\"Notices\": \"Bijsluiters\",\n\t\t\"Notices for patient\": \"Bijsluiter voor patiënt\",\n\t\t\"N°\": \"N°\",\n\t\t\"N° displays\": \"Aantal displays\",\n\t\t\"OP=OP\": \"OP=OP\",\n\t\t\"One or more products were not found\": \"Eén of meer producten werd niet gevonden\",\n\t\t\"Only {{productDiscount.counter}} piece(s) left!\": \"Slechts {{productDiscount.counter}} stuk(s) beschikbaar\",\n\t\t\"Only {{vm.counter}} piece(s) left!\": \"Slechts {{vm.counter}} stuk(s) beschikbaar\",\n\t\t\"Onze externe partner, ESRI, kan pas 24u na het moment van aanvraag leveren. Wenst u een dringende aanvraag (bijv. voor een palliatieve patiënt), neem dan even contact met de thuiszorgafdeling van Febelco via tgz@febelco.be of via het nummer 03/292.24.72. Zij bekijken dan samen met de externe partner wat er mogelijk is.\": \"Onze externe partner, ESRI, kan pas 24u na het moment van aanvraag leveren. Wenst u een dringende aanvraag (bijv. voor een palliatieve patiënt), neem dan even contact met de thuiszorgafdeling van Febelco via tgz@febelco.be of via het nummer 03/292.24.72. Zij bekijken dan samen met de externe partner wat er mogelijk is.\",\n\t\t\"Op {{vm.rentedProductsOrder.deliveryInfo.deliveryDate | date}} zullen de product(en) geleverd worden op uw gekozen leveradres\": \"Op {{vm.rentedProductsOrder.deliveryInfo.deliveryDate | date}} zullen de product(en) geleverd worden op het door u gekozen leveradres.\",\n\t\t\"Op=Op? These is the last stock for certain products for an extra discounted price. These products can not be returned.\": \"Op=op? Dat zijn de laatste stuks van producten aan een extra voordelige prijs. Elke maand zijn er nieuwe aanbiedingen, kom dus regelmatig een kijkje nemen! De producten kunnen niet geretourneerd worden.\",\n\t\t\"Opgelet, de aangeduide aantallen griepvaccins op deze pagina geven uw initiële, totale reservatie griepvaccins weer. De aantallen houden met andere woorden geen rekening met eventueel reeds geleverde griepvaccins.\": \"Opgelet, de aangeduide aantallen griepvaccins op deze pagina geven uw initiële, totale reservatie griepvaccins weer. De aantallen houden met andere woorden geen rekening met eventueel reeds geleverde griepvaccins.\",\n\t\t\"Order\": {\n\t\t\t\"$$noContext\": \"Bestelling\",\n\t\t\t\"verb\": \"Bestellen\",\n\t\t\t\"noun\": \"Bestelling\"\n\t\t},\n\t\t\"Order - noun\": \"Bestelling\",\n\t\t\"Order confirmation\": \"Bestelling bevestigen\",\n\t\t\"Order here\": \"Bestel hier\",\n\t\t\"Order now\": \"Nu bestellen\",\n\t\t\"Order pack\": \"Promopack bestellen\",\n\t\t\"Order panaché\": \"Bekijk de panaché condities en bestel\",\n\t\t\"Order total\": \"Totaal bestelling\",\n\t\t\"Order total price\": \"Korting op totale bestelling\",\n\t\t\"Ordered products\": \"Producten\",\n\t\t\"Orders are pharmacy based. When you log on as another pharmacy, your shopping basket will change. Your current shopping basket is however not removed.\": \"Bestellingen gebeuren per apotheek. Als u aanmeldt met een andere apotheek zal uw winkelmand wijzigen. Uw huidig winkelmand wordt echter niet verwijderd.\",\n\t\t\"Orders in Profficina are pharmacy based. Once logged on, you can always switch pharmacy through the 'My account' link in the menu.\": \"Bestellingen in Profficina gebeuren per apotheek. Eens aangemeld, kan u steeds wisselen van apotheek via de link 'Mijn account' in het menu.\",\n\t\t\"Other offers with this product\": \"Andere aanbiedingen met dit product\",\n\t\t\"Our website uses cookies to make your browsing experience better. By using our site, you agree to our use of cookies.\": \"Onze website maakt gebruik van cookies om uw gebruikservaring te verbeteren. Door onze website te gebruiken, gaat u akkoord met het gebruik van deze cookies.\",\n\t\t\"Outlet\": \"Op=Op\",\n\t\t\"Overview\": \"Overzicht\",\n\t\t\"Overview all discounts\": \"Overzicht alle kortingen\",\n\t\t\"Overzicht producten in reservatie\": \"Overzicht producten in reservatie\",\n\t\t\"PDF\": \"PDF\",\n\t\t\"PROMO\": \"PROMO\",\n\t\t\"Package quantity\": \"Verpakkingshoeveelheid\",\n\t\t\"PackageDetail\": \"Details verzending\",\n\t\t\"Packages archive\": \"Al mijn verzendingen\",\n\t\t\"Panaché\": \"Panaché\",\n\t\t\"Panaché:\": \"Panaché\",\n\t\t\"Partially in progress by wholesaler\": \"Deels in behandeling\",\n\t\t\"Partially invoiced\": \"Deels gefactureerd\",\n\t\t\"Partially registered by wholesaler\": \"Deels geregistreerd\",\n\t\t\"Partnerships\": \"Partnerships\",\n\t\t\"Password\": \"Wachtwoord\",\n\t\t\"Pharmacy\": \"Apotheek\",\n\t\t\"Pharmacy price\": \"Apothekersprijs\",\n\t\t\"Pick Hour\": {\n\t\t\t\"Datetimepicker tooltips\": \"Kies uur\"\n\t\t},\n\t\t\"Pick Minute\": {\n\t\t\t\"Datetimepicker tooltips\": \"Kies minuten\"\n\t\t},\n\t\t\"Pick Second\": {\n\t\t\t\"Datetimepicker tooltips\": \"Kies seconden\"\n\t\t},\n\t\t\"Place order\": \"Bestelling plaatsen\",\n\t\t\"Please enter a date before {{vm.maxDate | date: 'dd-MM-yyyy'}}\": \"Gelieve een datum te kiezen voor {{vm.maxDate | date: 'dd-MM-yyyy'}}\",\n\t\t\"Please enter a date in the future\": \"Gelieve een datum die in de toekomst ligt op te geven\",\n\t\t\"Please enter a quantity.\": \"Vul een aantal in.\",\n\t\t\"Please place your order within {{error.daysLeftUntilDiscountExpires}} days, discount for {{error.productName}} ends on {{error.expireDate | date:'yyyy-MM-dd'}}\": \"Gelieve binnen de {{error.daysLeftUntilDiscountExpires}} dagen te bestellen, de korting op {{error.productName}} vervalt op {{error.expireDate | date:'yyyy-MM-dd'}}\",\n\t\t\"Please provide a street.\": \"Gelieve een geldige straat te selecteren\",\n\t\t\"Please provide a valid city.\": \"Gelieve een geldige stad te selecteren.\",\n\t\t\"Please provide your contact person.\": \"Gelieve een contactpersoon op te geven.\",\n\t\t\"Please provide your housenumber.\": \"Gelieve uw huisnummer in te vullen.\",\n\t\t\"Please provide your telephone number.\": \"Gelieve uw telefoonnummer in te vullen.\",\n\t\t\"Please refine your search.\": \"Verfijn uw zoekopdracht...\",\n\t\t\"Please select a pharmacy\": \"Selecteer een apotheek\",\n\t\t\"Please select a seller\": \"Selecteer een aanbieder\",\n\t\t\"Prescription\": \"Op voorschrift\",\n\t\t\"Previous\": \"Vorige\",\n\t\t\"Previous Century\": {\n\t\t\t\"Datetimepicker tooltips\": \"Vorige eeuw\"\n\t\t},\n\t\t\"Previous Decade\": {\n\t\t\t\"Datetimepicker tooltips\": \"Vorig decennium\"\n\t\t},\n\t\t\"Previous Month\": {\n\t\t\t\"Datetimepicker tooltips\": \"Vorige maand\"\n\t\t},\n\t\t\"Previous Year\": {\n\t\t\t\"Datetimepicker tooltips\": \"Vorig jaar\"\n\t\t},\n\t\t\"Price\": \"Prijs\",\n\t\t\"Price information\": \"Prijsinformatie\",\n\t\t\"Price:\": \"Prijs:\",\n\t\t\"Processing...\": \"Aan het verwerken…\",\n\t\t\"Product\": \"Product\",\n\t\t\"Product available\": \"Voorradig\",\n\t\t\"Product discount\": \"Productkorting\",\n\t\t\"Product info\": \"Product info\",\n\t\t\"Product information\": \"Productinformatie\",\n\t\t\"Product name or number\": \"Productnaam of nummer\",\n\t\t\"Product name, number or lot number\": \"CNK, productnaam of lotnummer\",\n\t\t\"Product not found\": \"Er werd geen product gevonden met dit Productnummer.\",\n\t\t\"Product number\": \"CNK\",\n\t\t\"Product number or product name\": \"CNK of productnaam\",\n\t\t\"Product number, name product\": \"CNK of productnaam\",\n\t\t\"Product overview cannot be shown\": \"Het product overzicht is niet beschikbaar\",\n\t\t\"Product status\": \"Product status\",\n\t\t\"active\": \"Actief\",\n\t\t\"inactive\": \"Niet actief\",\n\t\t\"true\": \"Ja\",\n\t\t\"false\": \"Nee\",\n\t\t\"Written request by patient\": \"Schriftelijke aanvraag\",\n\t\t\"Product vervalt op {{productDiscount.expirationDate | date: 'dd/MM/yyyy' }}\": \"Product vervalt op {{productDiscount.expirationDate | date: 'dd/MM/yyyy' }}\",\n\t\t\"ProductNumber\": \"Productnummer\",\n\t\t\"Producten die mogelijks\\n interessant zijn om bij te huren\": \"Producten die mogelijks\\n interessant zijn om bij te huren\",\n\t\t\"Producten die mogelijks\\n interessant zijn om bij te kopen\": \"Producten die mogelijks\\n interessant zijn om bij te huren\",\n\t\t\"Producten die mogelijks interessant zijn om bij te huren\": \"Producten die mogelijks interessant zijn om bij te huren\",\n\t\t\"Producten die mogelijks interessant zijn om bij te kopen\": \"Producten die mogelijks interessant zijn om bij te kopen\",\n\t\t\"Productname or product number\": \"Productnaam of Productnummer\",\n\t\t\"Products\": \"Producten\",\n\t\t\"Products were added to your cart\": \"Producten succesvol toegevoegd aan winkelmand.\",\n\t\t\"Profficina\": \"Profficina\",\n\t\t\"Profficina Ref.\": \"Profficina ref.\",\n\t\t\"Profficina ref.\": \"Profficina ref.\",\n\t\t\"Profficina ref. or TO-nr.\": \"Profficina ref. of TO-bonnr.\",\n\t\t\"Promopack\": \"Promopack\",\n\t\t\"Properties\": \"Eigenschappen\",\n\t\t\"Public categories\": \"Publieke categorieën\",\n\t\t\"Public price\": \"Publieksprijs\",\n\t\t\"Quantity\": \"Aantal\",\n\t\t\"Quantity in panaché\": \"Aant. in panaché\",\n\t\t\"Quantity:\": \"Aantal:\",\n\t\t\"Questions or remarks concerning the pharmacovigilance of one of our products?\": \"Vragen of opmerkingen wat betreft de
pharmacovigilantie van onze producten?\",\n\t\t\"Questions? More info?\": \"Vragen? Meer informatie?\",\n\t\t\"Read more\": \"Lees meer\",\n\t\t\"Read our FAQ\": \"Raadpleeg onze veelgestelde vragen\",\n\t\t\"Receipt\": \"Bestelnota\",\n\t\t\"Recently passed rental products\": \"Recent huur gestopt\",\n\t\t\"Reference codes\": \"Referentiecodes\",\n\t\t\"Refund value with omnio\": \"Omnio tarief\",\n\t\t\"Refund value without omnio\": \"Terugbetalingstarief\",\n\t\t\"Refunded deposit\": \"Waarborg terug\",\n\t\t\"Registered\": \"Geregistreerd\",\n\t\t\"Registered by seller\": \"Geregistreerd door aanbieder\",\n\t\t\"Related news\": \"Verwant nieuws\",\n\t\t\"Rent\": {\n\t\t\t\"Verb\": \"Huur\"\n\t\t},\n\t\t\"Rent per day\": \"Huur per dag\",\n\t\t\"Rent per day:\": \"Huur per dag:\",\n\t\t\"Rent products\": \"Huurproducten\",\n\t\t\"Rental amount per month\": \"Huur per maand\",\n\t\t\"Rental products\": \"Huurproducten\",\n\t\t\"Rental products in your possession\": \"Huurproducten in uw bezit\",\n\t\t\"Rental request (Pdf)\": \"Aanvraag (PDF)\",\n\t\t\"Rental service\": \"Verhuur\",\n\t\t\"Rented from\": \"Gehuurd sinds\",\n\t\t\"Rented product detail\": \"Detail huurproduct\",\n\t\t\"Rented since – until\": \"Gehuurd sinds – tot\",\n\t\t\"Rented until\": \"Gehuurd tot\",\n\t\t\"Rented until – from\": \"Gehuurd sinds – tot\",\n\t\t\"Reorder\": \"Bestel opnieuw\",\n\t\t\"Replacement product available\": \"Vervangend product voorradig\",\n\t\t\"Required {{vm.product.minOrderAmount}}\": \"Verplicht {{vm.product.minOrderAmount}}\",\n\t\t\"Reservation time\": \"Gereserveerd sinds\",\n\t\t\"Reservation time:\": \"Gereserveerd sinds:\",\n\t\t\"Reserved products at Febelco\": \"Gereserveerde producten bij Febelco\",\n\t\t\"Reserveer nu uw griep vaccins\": \"Reserveer nu uw griep vaccins\",\n\t\t\"Reset\": \"Wissen\",\n\t\t\"Retroactive discount\": \"Retroactieve korting\",\n\t\t\"Return\": \"Terug\",\n\t\t\"Return to the homepage\": \"Terug naar de homepagina\",\n\t\t\"Route number\": \"Route nummer\",\n\t\t\"Running low on stock!\": \"Bijna op!\",\n\t\t\"Save\": \"Bewaren\",\n\t\t\"Scientific notices\": \"Wetenschappelijke bijsluiter\",\n\t\t\"Search\": \"Zoeken\",\n\t\t\"Search by contract name\": \"Zoek op naam contact\",\n\t\t\"Search by name\": \"Zoek op naam\",\n\t\t\"Search by name or number\": \"Zoek op productnaam of Productnummer\",\n\t\t\"Search products by number or name\": \"Zoek producten op Productnummer of naam\",\n\t\t\"See the latest discounts\": \"Bekijk de laatste kortingen\",\n\t\t\"Select Decade\": {\n\t\t\t\"Datetimepicker tooltips\": \"Selecteer decennium\"\n\t\t},\n\t\t\"Select Month\": {\n\t\t\t\"Datetimepicker tooltips\": \"Selecteer maand\"\n\t\t},\n\t\t\"Select Year\": {\n\t\t\t\"Datetimepicker tooltips\": \"Selecteer jaar\"\n\t\t},\n\t\t\"Select other pharmacy\": \"Selecteer andere apotheek\",\n\t\t\"Select other seller\": \"Selecteer andere aanbieder\",\n\t\t\"Select wholesaler\": \"Selecteer een groothandel\",\n\t\t\"Seller\": \"Aanbieder\",\n\t\t\"Sellers\": \"Aanbieders\",\n\t\t\"Send a fax to\": \"Fax naar\",\n\t\t\"Send an e-mail to\": \"Mail naar\",\n\t\t\"Send application\": \"Verstuur aanvraag\",\n\t\t\"Sent to seller\": \"Verstuurd naar aanbieder\",\n\t\t\"Serialnumber\": \"Serienummer\",\n\t\t\"Shipping note\": \"Zendnota\",\n\t\t\"Shopping cart\": \"Winkelmand\",\n\t\t\"Show all\": \"Toon alle\",\n\t\t\"Show all results\": \"Toon alle resultaten\",\n\t\t\"Show in grid\": \"Toon in rooster\",\n\t\t\"Show in list\": \"Toon in lijst\",\n\t\t\"Show less\": \"Toon minder\",\n\t\t\"Side effects\": \"Bijwerkingen\",\n\t\t\"Sign out\": \"Afmelden\",\n\t\t\"Sold out!\": \"Te laat!\",\n\t\t\"Something went wrong\": \"Er liep iets mis\",\n\t\t\"Something went wrong when loading this page.\": \"Er liep iets mis bij het inladen van deze pagina.\",\n\t\t\"Something went wrong while adding the products to your shoppingcart.\": \"Er liep iets mis. De producten konden niet toegevoegd worden aan uw winkelmand.\",\n\t\t\"Something went wrong while adding your products, please try again.\": \"Er liep iets mis. De producten konden niet toegevoegd worden. Gelieve opnieuw te proberen.\",\n\t\t\"Something went wrong with the import of your file. Please check your CSV and try again.\": \"Er liep iets mis bij het importeren van het bestand. Gelieve het CSV-bestand te controleren en opnieuw te proberen.\",\n\t\t\"Sort\": \"Sorteer\",\n\t\t\"Sort by\": \"Sorteer op\",\n\t\t\"Special Discounts\": \"Speciale kortingen\",\n\t\t\"Special order possible\": \"Speciale bestelling mogelijk\",\n\t\t\"Special orders\": \"Speciale bestellingen\",\n\t\t\"Status\": \"Status\",\n\t\t\"Stock response cannot be checked at the moment.\": \"De voorraad kan momenteel niet opgevraagd worden.\",\n\t\t\"Street\": \"Straat\",\n\t\t\"Subtotal\": \"Subtotaal\",\n\t\t\"Suggesties\": \"Suggesties\",\n\t\t\"Supplier\": \"Leverancier\",\n\t\t\"Supplier has no stock available\": \"Niet voorradig bij leverancier\",\n\t\t\"Supplier reference\": \"Leverancier ID\",\n\t\t\"TO-nr.\": \"TO-bonnr.\",\n\t\t\"Tags\": \"Labels\",\n\t\t\"Tax\": \"BTW\",\n\t\t\"Tel:\": \"Tel:\",\n\t\t\"Telephone number\": \"Telefoonnummer\",\n\t\t\"Thank you for ordering\": \"Bedankt voor uw bestelling\",\n\t\t\"The Agios discount is not known, contact the supplier for more info.\": \"De Agios korting is niet gekend, voor meer info hierover, contacteer de leverancier.\",\n\t\t\"The CSV was empty.\": \"Het CSV-bestand is leeg. Gelieve dit te controleren en opnieuw te proberen.\",\n\t\t\"The last 3 months you did not submit any rental applications via Profficina.\": \"U heeft de voorbije 3 maand geen huuraanvraag gedaan via Profficina.\",\n\t\t\"The last 3 months, you ended rent for more than 15 products.\": \"U heeft de huur stopgezet van meer dan 15 producten de afgelopen 3 maanden.\",\n\t\t\"The orders could not be retrieved\": \"Er ging iets mis tijdens het ophalen van de bestellingen\",\n\t\t\"The partnerships could not be retrieved\": \"Er ging iets mis tijdens het ophalen van de partners\",\n\t\t\"The product could not be added to your shopping cart\": \"Het product kon niet toegevoegd worden aan uw winkelmand\",\n\t\t\"The product could not be removed from your shopping cart\": \"Het product kon niet verwijderd worden uit uw winkelmand\",\n\t\t\"The product quantity could not be updated\": \"De product hoeveelheid kon niet aangepast worden\",\n\t\t\"The product you were looking was not found or is inactive.\": \"Het product dat u wou bekijken is niet meer actief.\",\n\t\t\"The products cannot be retrieved.\": \"Er liep iets mis met het ophalen van de producten.\",\n\t\t\"The products could not be removed from your shopping cart\": \"De producten konden niet verwijderd worden uit uw winkelmandje.\",\n\t\t\"The quantity of one or more products is incorrect.\": \"Bij één of meerdere producten werd geen correct aantal ingegeven.\",\n\t\t\"The shaded products can no longer be ordered.\": \"De gearceerde producten kunnen niet langer besteld worden.\",\n\t\t\"There are currently no discounts available\": \"Er zijn geen kortingen beschikbaar.\",\n\t\t\"There are currently no products available\": \"Er zijn geen producten beschikbaar.\",\n\t\t\"There are still products in your shopping cart\": \"Er zitten nog producten in uw winkelmand\",\n\t\t\"This product is in Agios, the discount displayed is not the Agios discount.\": \" Dit product zit in Agios, de getoonde korting is geen Agios korting.\",\n\t\t\"This promopack contains following products\": \"Dit promopack bevat de volgende producten\",\n\t\t\"Time\": \"Tijdstip\",\n\t\t\"To TGZ homepage\": \"TGZ Homepagina \",\n\t\t\"Too many results.\": \"Meer dan 20 resultaten.\",\n\t\t\"Total\": \"Totaal\",\n\t\t\"Total (incl. VAT)\": \"Totaal (incl. BTW)\",\n\t\t\"Total discount\": \"Totale korting\",\n\t\t\"Total quantity in panaché\": \"Totaal aantal producten in panaché\",\n\t\t\"Total rent\": \"Huurtotaal\",\n\t\t\"Trade in months after expiry\": \"Omruiltermijn na vervaldatum\",\n\t\t\"Trade in months before expiry\": \"Trade in months before expiry\",\n\t\t\"Trade in refund value\": \"Trade in refund value\",\n\t\t\"U heeft momenteel geen openstaande reservaties.\": \"U heeft momenteel geen openstaande reservaties.\",\n\t\t\"U heeft voor dit partnership een {{contract.name}} contract van onbepaalde duur vanaf {{contract.startDate | date}}\": \"U heeft voor dit partnership een {{contract.name}} contract van {{contract.startDate | date}} voor onbepaalde tijd.\",\n\t\t\"U heeft voor dit partnership een {{contract.name}} contract van {{contract.startDate | date}} tot {{contract.endDate | date}}\": \"U heeft voor dit partnership een {{contract.name}} contract van {{contract.startDate | date}} tot en met {{contract.endDate | date}}\",\n\t\t\"Undo changes\": \"Wijzigingen ongedaan maken\",\n\t\t\"Unfortunately there are no products available for the current criteria.\": \"Er zijn geen producten beschikbaar voor de geselecteerde criteria.\",\n\t\t\"Unfortunately there were no certificates found.\": \"Er zijn momenteel geen certificaten beschikbaar.\",\n\t\t\"Unfortunately there were no items found from Profficina.\": \"U hebt nog geen huuraanvraag gedaan via Profficina.\",\n\t\t\"Unfortunately there were no news items found.\": \"Er zijn geen nieuwsberichten beschikbaar.\",\n\t\t\"Unfortunately there were no partnerships found.\": \"Er zijn geen partners gevonden.\",\n\t\t\"Unfortunately there were no rental products found.\": \"Er zijn geen huurproducten teruggevonden.\",\n\t\t\"Unfortunately there were no rental requests found.\": \"Er zijn geen huuraanvragen teruggevonden.\",\n\t\t\"Until\": \"Tot\",\n\t\t\"Up to\": \"Tot\",\n\t\t\"Update cart\": \"Winkelmand aanpassen\",\n\t\t\"Update shopping cart [ENTER]\": \"Winkelmand bijwerken [ENTER]\",\n\t\t\"Updating your cart...\": \"Winkelmand aan het bijwerken...\",\n\t\t\"Usage\": \"Gebruik\",\n\t\t\"Uw aanvraag\": \"Uw aanvraag\",\n\t\t\"Uw contract\": \"Uw contract\",\n\t\t\"Uw gereserveerde griepvaccins zijn toegevoegd aan onderstaande lijst van reservaties echter kunnen we geen nieuwe reservaties meer opnemen.\": \"Uw gereserveerde griepvaccins zijn toegevoegd aan onderstaande lijst van reservaties echter kunnen we geen nieuwe reservaties meer opnemen.\",\n\t\t\"Uw huuraanvraag\": \"Uw huuraanvraag\",\n\t\t\"Uw huuraanvraag is verstuurd naar de klantendienst.\": \"Uw huuraanvraag is verstuurd naar de klantendienst.\",\n\t\t\"VAT\": \"BTW\",\n\t\t\"VAT:\": \"Btw:\",\n\t\t\"VAXIGRIP TETRA 2020-2021 0,5 ML 1 WWSP\": \"VAXIGRIP TETRA 2020-2021 0,5 ML 1 WWSP\",\n\t\t\"Valid from\": \"Geldig van\",\n\t\t\"Valid from - until\": \"Geldig van - tot\",\n\t\t\"Valid until\": \"Geldig tot\",\n\t\t\"Vendor\": \"Aanbieder\",\n\t\t\"Verstuur\": \"Verstuur\",\n\t\t\"Verzending\": \"Verzending\",\n\t\t\"View my orders\": \"Bestellingen bekijken\",\n\t\t\"View my packages\": \"Mijn verzendingen bekijken\",\n\t\t\"View my rent overview\": \"Mijn huuroverzicht bekijken\",\n\t\t\"View my reservations\": \"Reservaties bekijken\",\n\t\t\"View your shopping basket\": \"Bekijk uw winkelmand\",\n\t\t\"Voor vragen of aanpassingen aan deze aanvraag, gelieve de klantendienst te contacteren op 03/770.70.70 of klantendienst@febelco.be\": \"Voor vragen of aanpassingen aan deze aanvraag, gelieve de klantendienst te contacteren op 03/770.70.70 of klantendienst@febelco.be\",\n\t\t\"We can not find the page you are looking for. The product / news item / ... may no longer exist.\": \"We kunnen de pagina die u zoekt niet vinden. Mogelijks bestaat het product/nieuwsbericht/… niet meer.\",\n\t\t\"Weight\": \"Gewicht\",\n\t\t\"What would you like use to do when these products are not in stock?\": \"WAT WENST U TE DOEN INDIEN DIT ZICH VOORDOET?\",\n\t\t\"Wholesaler\": \"Groothandel\",\n\t\t\"Width\": \"Breedte\",\n\t\t\"U kan uw vaccins uitsluitend reserveren via Profficina. We bevelen u van harte aan om uw aantallen goed in te schatten, zodat we op basis daarvan voldoende voorraad kunnen voorzien.\": \"U kan uw vaccins uitsluitend reserveren via Profficina. We bevelen u van harte aan om uw aantallen goed in te schatten, zodat we op basis daarvan voldoende voorraad kunnen voorzien.\",\n\t\t\"Wij raden aan om\\n hierbij ook deze producten te huren\": \"Wij raden aan om hierbij ook deze producten te huren\",\n\t\t\"Wij raden aan om\\n hierbij ook deze producten te kopen\": \"Wij raden aan om hierbij ook deze producten te kopen\",\n\t\t\"Wij raden aan om hierbij ook deze producten te huren\": \"Wij raden aan om hierbij ook deze producten te huren\",\n\t\t\"Wij raden aan om hierbij ook deze producten te kopen\": \"Wij raden aan om hierbij ook deze producten te kopen\",\n\t\t\"Withdrawn product\": \"Product uit handel\",\n\t\t\"Maximum quantity exceeded.\": \"Maximum quantity exceeded.\",\n\t\t\"Year\": \"Jaar\",\n\t\t\"Yes\": \"Ja\",\n\t\t\"You are logged in with pharmacy\": \"U bent aangemeld met apotheek\",\n\t\t\"You are logged in with seller\": \"U bent aangemeld met aanbieder\",\n\t\t\"You are now logged in with pharmacy\": \"U bent nu aangemeld met apotheek\",\n\t\t\"You can choose from the following products:\": \"U heeft de keuze uit volgende producten:\",\n\t\t\"You currently do not rent products from Febelco.\": \"U huurt momenteel geen producten van Febelco.\",\n\t\t\"You did not update your cart with the quantities you last modified.\": \"U heeft uw winkelmand nog niet bijgewerkt met de laatst gewijzigde aantallen.\",\n\t\t\"You do not have permission to view this page.\": \"U heeft geen toestemming om deze pagina te bekijken.\",\n\t\t\"You have more than 15 rental products in your possession.\": \"U heeft meer dan 15 huurproducten in uw bezit.\",\n\t\t\"You have more than 15 rental requests in the last 3 months.\": \"U heeft de laatste 3 maanden huur aanvragen ingedient.\",\n\t\t\"You have not rented products from Febelco.\": \"U heeft geen producten gehuurd bij Febelco.\",\n\t\t\"You searched for\": \"Uw zoekresultaten voor\",\n\t\t\"You will receive an email confirmation shortly at {{ vm.mail }}.\": \"Een bevestiging van uw bestelling werd gemaild naar {{ vm.mail }}.\",\n\t\t\"Your browser does not support file upload.\": \"Uw browser ondersteunt de bestand-opladen functionaliteit niet.\",\n\t\t\"Your info\": \"Uw gegevens\",\n\t\t\"Your purchases\": \"Uw aankopen\",\n\t\t\"Your recent rental requests\": \"Recente huuraanvragen via Profficina\",\n\t\t\"Your rent request on\": \"Aanvraag van\",\n\t\t\"Your reservation has been confirmed.\": \"Uw reservatie van griepvaccins werd goed bewaard.\",\n\t\t\"Your search value\": \"Uw zoekterm\",\n\t\t\"Your shopping cart\": \"Uw winkelmand\",\n\t\t\"_myDocuments._reportNarcotics.description\": \"Hier krijgt u een overzicht van alle producten (met stoffen opgelijst in bijlagen I, II en IV van het K.B. 06/09/2017) waarvoor we nog geen verdovingsbon van u mochten ontvangen.\",\n\t\t\"_myDocuments._reportNarcotics.title\": \"Openstaande verdovingsbonnen\",\n\t\t\"_myDocuments._reportPurchaseProposals.description\": \"Dit rapport geeft u een mooi overzicht van uw aankopen en geeft duidelijk weer – per CNK – hoeveel stuks (1/5/10 st.) u het best aankoopt om van een maximale korting te kunnen genieten. Het helpt u ook het aantal inkomende leveringen van eenzelfde CNK binnen eenzelfde facturatieperiode te beperken, en draagt dus bij tot een hogere efficiëntie.\",\n\t\t\"_myDocuments._reportPurchaseProposals.title\": \"Aankoopvoorstellen\",\n\t\t\"_myDocuments._settings.introText\": \"Hier krijgt u een overzicht van uw openstaande verdovingsbonnen en uw aankoopvoorstellen.\",\n\t\t\"_myDocuments._settings.myDocuments\": \"Mijn documenten\",\n\t\t\"_myDocuments._settings.viewMyDocuments\": \"Documenten bekijken\",\n\t\t\"_myDocuments._siteHeader.myDocuments\": \"Mijn documenten\",\n\t\t\"_myDocuments.downloadDocument\": \"Download document\",\n\t\t\"_myDocuments.myDocuments\": \"Mijn documenten\",\n\t\t\"_selftests.linkToFaq\": \"Voor al uw vragen met betrekking tot de COVID testkit, gelieve contact op te nemen met uw relatiebeheerder.\",\n\t\t\"_reservationCampaigns.product\": \"Product\",\n\t\t\"_reservationCampaigns.productNumber\": \"CNK\",\n\t\t\"_reservationCampaigns.quantity\": \"Aantal\",\n\t\t\"_reservationCampaigns.reservationConfirmed\": \"Uw reservatie werd goed ontvangen.\",\n\t\t\"_reservationCampaigns.save\": \"Bewaren\",\n\t\t\"_reservationCampaigns.totalLimitReached\": \"Reservatielimiet bereikt.\",\n\t\t\"_reservationCampaigns.limitReached\": \"Maximum {{limit}} st.\",\n\t\t\"article\": [\n\t\t\t\"artikel\",\n\t\t\t\"artikels\"\n\t\t],\n\t\t\"at\": {\n\t\t\t\"delivered on april 14th AT 17:25\": \"om\"\n\t\t},\n\t\t\"can be delivered on\": \"levering mogelijk op\",\n\t\t\"certificate\": [\n\t\t\t\"document gevonden\",\n\t\t\t\"documenten gevonden\"\n\t\t],\n\t\t\"checkout.agreeWithTerms\": \"Door op ‘Bestelling bevestigen’ te klikken, stemt u in met de algemene gebruiksvoorwaarden van Profficina.\",\n\t\t\"checkout.contactSupportWhenInvoiceAddressIsIncorrect\": \"Contacteer support@profficina.be als deze informatie incorrect is.\",\n\t\t\"checkout.linkToOrderOverview\": \"U kan op elk moment de status en details van uw bestellingen bekijken via 'Mijn account' 'Mijn bestellingen' in het menu bovenaan de pagina.\",\n\t\t\"contact\": \"contact\",\n\t\t\"contract\": \"contract\",\n\t\t\"contracts\": \"contracts\",\n\t\t\"discount\": \"korting\",\n\t\t\"discounts\": \"kortingen\",\n\t\t\"documents\": \"documenten\",\n\t\t\"indefinite\": \"voor onbepaalde tijd\",\n\t\t\"indefinitely\": \"voor onbepaalde tijd\",\n\t\t\"news\": \"nieuws\",\n\t\t\"no\": \"nee\",\n\t\t\"or Send an email to\": \"of mail naar\",\n\t\t\"parcel.addAnotherLine\": \"Pakket toevoegen\",\n\t\t\"parcel.addConfirmationExplanations\": \"Een woordje uitleg wat men nu moet doen ... Text TBD\",\n\t\t\"parcel.allMyParcels\": \"Al mijn verzendingen\",\n\t\t\"parcel.back\": \"Vorige\",\n\t\t\"parcel.backToOverview\": \"Terug naar overzicht\",\n\t\t\"parcel.barcode\": \"Barcode\",\n\t\t\"parcel.cancel\": \"Verzending annuleren\",\n\t\t\"parcel.cancelParcel\": \"Pakket annuleren\",\n\t\t\"parcel.checkData\": \"Controleer de gegevens en duid aan dat u akkoord gaat met\",\n\t\t\"parcel.confirmOrder\": \"Verzending bevestigen\",\n\t\t\"parcel.createALabelHere\": \"Maak hier een verzendlabel aan\",\n\t\t\"parcel.createParcel\": \"Verzending aanmaken\",\n\t\t\"parcel.createShippingLabelHere\": \"Pakket versturen naar een apotheek via Febelco? Maak hier een verzendlabel aan.\",\n\t\t\"parcel.customerNumber\": \"Klantnummer Febelco\",\n\t\t\"parcel.deliveredWithin48\": \"Binnen 48u geleverd op bestemming\",\n\t\t\"parcel.enterLicenseNumberLong\": \"Geef vergunningsnummer in van de apotheek waarvoor uw pakket bestemd is. Het adres van de bestemmeling zal automatisch op het volgende scherm verschijnen.\",\n\t\t\"parcel.enterLicenseNumberShort\": \"Gelieve vergunningsnummer in te geven.\",\n\t\t\"parcel.febelcoNotResponsibleForContent\": \"Febelco is niet verantwoordelijk voor de inhoud van de pakketten.\",\n\t\t\"parcel.followWithTrackAndTrace\": \"Volg via Track & Trace\",\n\t\t\"parcel.giveParcelToCourier\": \"Geef uw pakket met label aan de Febelco koerier\",\n\t\t\"parcel.hereYouCanRegister\": \"Hier kan u verzendingen naar andere apotheken via Febelco aanvragen en kan u de status van die verzendingen opvolgen.\",\n\t\t\"parcel.howDoesItWork\": \"Hoe werkt het? ..TBD\",\n\t\t\"parcel.iAgreeToTheTerms\": \"Ik ga akkoord met de voorwaarden.\",\n\t\t\"parcel.latestShipments\": \"Verzendingen van de laatste 6 maanden\",\n\t\t\"parcel.licenseNumber\": \"Vergunningsnummer\",\n\t\t\"parcel.licenseNumberShort\": \"Vergunningsnr.\",\n\t\t\"parcel.isSigned\": \"Handtekening ontvangen\",\n\t\t\"parcel.insurance\": \"Verzekering\",\n\t\t\"parcel.insuranceDescription\": \"Prijs € {{ insurancePrice }} . Als het pakje verzekerd is, dan wordt er ook een handtekening gevraagd bij ontvangst.\",\n\t\t\"parcel.required\": \"Verplicht\",\n\t\t\"parcel.packageValue\": \"Waarde van het pakket\",\n\t\t\"parcel.packagePrice\": \"Pakket prijs: \",\n\t\t\"parcel.packageDiscount\": \"Pakket korting: \",\n\t\t\"parcel.insuranceInvoiceAmount\": \"Aangerekende prijs voor verzekering:\",\n\t\t\"parcel.packageInvoiceAmount\": \"Aangerekende prijs voor het pakket: \",\n\t\t\"parcel.freePackage\": \"Dit pakket is gratis, een eventuele bijkomende verzekering wordt altijd aangerekend.\",\n\t\t\"parcel.line\": [\n\t\t\t\"pakket\",\n\t\t\t\"pakketten\"\n\t\t],\n\t\t\"parcel.madeOn\": \"Aangemaakt op\",\n\t\t\"parcel.myParcels\": \"Mijn verzendingen\",\n\t\t\"parcel.nameApbOrCustomerNr\": \"Naam, apb-nr, klantnr.\",\n\t\t\"parcel.next\": \"Volgende\",\n\t\t\"parcel.no\": \"Nee\",\n\t\t\"parcel.noParcelsFound\": \"Geen verzendingen gevonden.\",\n\t\t\"parcel.noParcelsFoundForCriteria\": \"Geen verzendingen gevonden voor ingegeven zoekcriteria.\",\n\t\t\"parcel.noPharmacyFound\": \"Geen apotheek gevonden met deze gegevens.\",\n\t\t\"parcel.orderNumber\": \"Verzending ID\",\n\t\t\"parcel.packLower\": [\n\t\t\t\"pakket\",\n\t\t\t\"pakketten\"\n\t\t],\n\t\t\"parcel.packages\": \"Pakketjes\",\n\t\t\"parcel.parcel\": \"Verzending\",\n\t\t\"parcel.parcelBarcode\": \"Barcode pakket\",\n\t\t\"parcel.parcelCancelCommandSent\": \"Even geduld aub, de annulatie van uw pakket of zending is in verwerking.\",\n\t\t\"parcel.errorSendingCancelCommand\": \"Er is iets fout gegaan bij het annuleren van uw pakket of verzending.\",\n\t\t\"parcel.parcelLower\": [\n\t\t\t\"verzending\",\n\t\t\t\"verzendingen\"\n\t\t],\n\t\t\"parcel.perPage\": \"per pagina\",\n\t\t\"parcel.pleaseAgreeToTerms\": \"Gelieve akkoord te gaan met de voorwaarden.\",\n\t\t\"parcel.pleaseSelectPackageType\": \"Please select a package type\",\n\t\t\"parcel.printAndHandToDriver\": \"Print de verzendlabels en geef het pakket mee met uw Febelco-chauffeur.\",\n\t\t\"parcel.printLabel\": \"Print verzendlabel\",\n\t\t\"parcel.remarkForCourier\": \"Opmerking / Bericht voor koerier\",\n\t\t\"parcel.remarkForCourierDescription\": \"Hier kan u extra informatie of instructies toevoegen voor de koerier.\",\n\t\t\"parcel.reset\": \"Wissen\",\n\t\t\"parcel.search\": \"Zoeken\",\n\t\t\"parcel.searchAllParcels\": \"Zoek een van uw verzendingen op of maak een nieuwe verzending aan.\",\n\t\t\"parcel.sendTo\": \"Verzenden naar\",\n\t\t\"parcel.sentTo\": \"Verstuurd naar\",\n\t\t\"parcel.shippingDetail\": \"Detail verzending\",\n\t\t\"parcel.shippingDetails\": \"Details verzending\",\n\t\t\"parcel.signatureRequired\": \"Aftekenen bij ontvangst\",\n\t\t\"parcel.signatureRequiredDescription\": \"Lorem ipsum dolor sit amet...\",\n\t\t\"parcel.theConditions\": \"de voorwaarden\",\n\t\t\"parcel.to\": \"Naar\",\n\t\t\"parcel.trackAndTraceInDetail\": \"Track & Trace activiteit in detail\",\n\t\t\"parcel.until\": \"tot\",\n\t\t\"parcel.viewMyParcels\": \"Mijn verzendingen bekijken\",\n\t\t\"parcel.whatCanBeSentAndHowItWorks\": \"Een woordje uitleg over wat men kan verzenden en hoe het werkt.\",\n\t\t\"parcel.whatToSend\": \"Wat wil u verzenden?\",\n\t\t\"parcel.whichPharmacyToSend\": \"Naar welke apotheek wilt u een pakket verzenden?\",\n\t\t\"parcel.yes\": \"Ja\",\n\t\t\"parcel.youHaveNoRecentParcels\": \"U heeft recent geen verzendingen geregistreerd\",\n\t\t\"parcel.yourParcelWasRegistered\": \"Uw verzending is geregistreerd\",\n\t\t\"partnerships\": \"partnerships\",\n\t\t\"pcs.\": \"st.\",\n\t\t\"per page\": \"per pagina\",\n\t\t\"product\": [\n\t\t\t\"product\",\n\t\t\t\"producten\"\n\t\t],\n\t\t\"product.medipim.expires\": \"Vervaldatum\",\n\t\t\"product.medipim.refundValueWithOmnio\": \"Omnio tarief\",\n\t\t\"product.medipim.refundValueWithoutOmnio\": \"Terugbetalingstarief\",\n\t\t\"product.medipim.tradeInMonthsAfterExpiry\": \"Ruilperiode na vervaldatum\",\n\t\t\"product.medipim.tradeInMonthsBeforeExpiry\": \"Ruilperiode voor vervaldatum\",\n\t\t\"product.status.active\": \"Actief\",\n\t\t\"product.status.inactive\": \"Niet actief\",\n\t\t\"product.status.replaced\": \"Vervangen\",\n\t\t\"products\": \"producten\",\n\t\t\"products available in your warehouse\": \"stuk(s) voorradig in uw vestiging\",\n\t\t\"products available\": \"stuk(s) voorradig\",\n\t\t\"public\": \"public\",\n\t\t\"refundOnDate\": \"op\",\n\t\t\"rental product\": [\n\t\t\t\"huurproduct\",\n\t\t\t\"huurproducten\"\n\t\t],\n\t\t\"rental request\": [\n\t\t\t\"huuraanvraag\",\n\t\t\t\"huuraanvragen\"\n\t\t],\n\t\t\"select file\": \"selecteer bestand\",\n\t\t\"tour\": \"toer\",\n\t\t\"until\": \"tot\",\n\t\t\"upward of\": \"vanaf\",\n\t\t\"v.a. {{d.amount}} st.\": \"va. {{d.amount}} st.\",\n\t\t\"vac test\": \"\\\"U kan uw vaccins vanaf nu uitsluitend reserveren via het aankoopplatform Profficina. Zo kan u ook makkelijk de kortingenper product raadplegen, en achteraf ook de aantallen die u gereserveerd heeft. Handig, niet?Nog geen Profficina-account? Neem dan snel contact op met uw vertrouwde relatiebeheerder, of met support@profficina.be.\\\"\",\n\t\t\"yes\": \"ja\",\n\t\t\"{{ vm.activeCategory ? vm.activeCategory.name : 'All rental products'}}\": \"{{ vm.activeCategory ? vm.activeCategory.name : 'Alle huurproducten'}}\",\n\t\t\"Contract details\": \"Details contract\",\n\t\t\"_order.selectAccountTitle\": \"Selecteer uw klantenrekening\",\n\t\t\"Dear Pharmacist,\": \"Beste apotheker,\",\n\t\t\"From 23/01/2023 you and anyone who gives you rights, can manage the reservations yourself via MyFebelco, our new customer portal: changing, removing or adding can then be done in a few mouse clicks.\": \"Vanaf 23/01/2023 beheren jij en iedereen die je rechten geeft, de reservaties gewoon zelf via MyFebelco, ons nieuw klantenportaal: wijzigen, verwijderen of toevoegen kan dan in enkele muisklikken.\",\n\t\t\"Via MyFebelco you also get direct access to all kinds of information, personal data and useful tools. Calling customer service is no longer necessary, so they have more time to help our customers on the line faster.\": \"Je krijgt via MyFebelco ook directe toegang tot allerhande info, persoonlijke data en nuttige tools. Bellen naar de klantendienst is niet meer nodig, zo hebben zij meer tijd vrij om onze klanten aan de lijn sneller verder te helpen.\",\n\t\t\"Due to this progress, the reservation overview will no longer be available on Profficina and your secure area (my Febelco) from 16/01.\": \"Omwille van deze vooruitgang zal het reservatie-overzicht niet meer beschikbaar zijn op Profficina en uw beveiligde zone (mijn Febelco) vanaf 16/01.\",\n\t\t\"Questions?
Before you can go to MyFebelco, you must activate your account on the basis of a registration email.\": \"Vragen?
Voor je op MyFebelco terecht kan, moet je je account activeren, op basis van een registratiemail.\",\n\t\t\"Didn't receive a registration email? Then contact support@myfebelco.be.\": \"Geen registratiemail ontvangen? Contacteer dan support@myfebelco.be.\"\n\t}\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/po/nl.po\n// module id = 685\n// module chunks = 0","var map = {\n\t\"./en-au\": 233,\n\t\"./en-au.js\": 233,\n\t\"./en-ca\": 234,\n\t\"./en-ca.js\": 234,\n\t\"./en-gb\": 235,\n\t\"./en-gb.js\": 235,\n\t\"./en-ie\": 236,\n\t\"./en-ie.js\": 236,\n\t\"./en-il\": 237,\n\t\"./en-il.js\": 237,\n\t\"./en-in\": 238,\n\t\"./en-in.js\": 238,\n\t\"./en-nz\": 239,\n\t\"./en-nz.js\": 239,\n\t\"./en-sg\": 240,\n\t\"./en-sg.js\": 240,\n\t\"./fr\": 243,\n\t\"./fr-ca\": 241,\n\t\"./fr-ca.js\": 241,\n\t\"./fr-ch\": 242,\n\t\"./fr-ch.js\": 242,\n\t\"./fr.js\": 243,\n\t\"./nl\": 245,\n\t\"./nl-be\": 244,\n\t\"./nl-be.js\": 244,\n\t\"./nl.js\": 245\n};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) // check for number\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\treturn id;\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 686;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/moment/locale nl|fr|en\n// module id = 686\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _oidcClient = require('oidc-client');\n\nvar _oidcClient2 = _interopRequireDefault(_oidcClient);\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar AuthService = function () {\n function AuthService($log, $q, $location, $exceptionHandler, settings, Analytics) {\n _classCallCheck(this, AuthService);\n\n this.$log = $log;\n this.$q = $q;\n this.$location = $location;\n this.$exceptionHandler = $exceptionHandler;\n this._userLoadedEvent = new Event('User loaded');\n this._userUnloadedEvent = new Event('User unloaded');\n this._userSignedOutEvent = new Event('User signed out');\n this._initialized = false;\n this._userManager = new _oidcClient2.default.UserManager(settings);\n this.Analytics = Analytics;\n this._wireUserManagerEvents();\n }\n\n AuthService.prototype.addUserLoadedEvent = function addUserLoadedEvent(callback) {\n var _this = this;\n\n this._userLoadedEvent.addHandler(callback);\n return function () {\n return _this._userLoadedEvent.removeHandler(callback);\n };\n //return this._userManager.events.addUserLoaded(callback);\n //this._callbacks.push(callback);\n //return () => this._callbacks.splice(this._callbacks.findIndex(callback),1);\n };\n\n AuthService.prototype.addUserUnloadedEvent = function addUserUnloadedEvent(callback) {\n var _this2 = this;\n\n this._userUnloadedEvent.addHandler(callback);\n return function () {\n return _this2._userUnloadedEvent.removeHandler(callback);\n };\n //return this._userManager.events.addUserLoaded(callback);\n //this._callbacks.push(callback);\n //return () => this._callbacks.splice(this._callbacks.findIndex(callback),1);\n };\n\n AuthService.prototype.addUserSignedOut = function addUserSignedOut(callback) {\n var _this3 = this;\n\n this._userSignedOutEvent.addHandler(callback);\n return function () {\n return _this3._userSignedOutEvent.removeHandler(callback);\n };\n //return this._userManager.events.addUserSignedOut(callback);\n };\n\n AuthService.prototype.hasClaim = function hasClaim(claim, value) {\n var _this4 = this;\n\n if (!claim) {\n return true;\n }\n if (!this.user) {\n return false;\n }\n if (claim instanceof Array) {\n return claim.every(function (c) {\n return !!_this4.user[c] && _this4._hasClaimValue(claim, value);\n });\n }\n return !!this.user[claim] && this._hasClaimValue(claim, value);\n };\n\n AuthService.prototype._hasClaimValue = function _hasClaimValue(claim, value) {\n if (value === undefined) {\n return true;\n }\n if (this.user[claim] instanceof Array) {\n return this.user[claim].some(function (c) {\n return c === (value ? '' + value : value);\n });\n }\n return this.user[claim] === (value ? '' + value : value);\n };\n\n AuthService.prototype.hasClaimAsync = function hasClaimAsync(claim) {\n var _this5 = this;\n\n if (this._initialized === false) {\n return this._initPromise.then(function () {\n return _this5.hasClaim(claim);\n }, function () {\n return _this5.hasClaim(claim);\n });\n }\n return this.hasClaim(claim);\n };\n\n AuthService.prototype.init = function init() {\n var _this6 = this;\n\n this._initialized = false;\n this._initPromise = this._userManager.getUser().then(function (user) {\n _this6._setUser(user);\n _this6._initialized = true;\n return user ? _this6.$q.resolve() : _this6.$q.reject();\n }, function () {\n _this6._initialized = true;\n });\n return this._initPromise;\n };\n\n AuthService.prototype.signIn = function signIn(requestedUrl, acrValues, language) {\n var _this7 = this;\n\n if (!acrValues) {\n if (this.isAuthenticated) {\n return this.$q.resolve();\n }\n if (this._initialized === false) {\n return this._initPromise.catch(function () {\n return _this7._signIn(requestedUrl, acrValues, language);\n });\n }\n }\n return this._signIn(requestedUrl, acrValues, language);\n };\n\n AuthService.prototype.signOut = function signOut() {\n this._setUser();\n this.$log.debug('Security - sign out');\n return this._userManager.signoutRedirect();\n };\n\n AuthService.prototype.clearGALocalStorage = function clearGALocalStorage() {\n window.localStorage.removeItem('FlexMail');\n window.localStorage.removeItem('GAFlexTrack');\n window.localStorage.removeItem('GAFlexAlreadyLoginTrack');\n window.localStorage.removeItem('GAUserNotLoggedInTracked');\n window.localStorage.removeItem('GAUserNotLoggedInTrack');\n window.localStorage.removeItem('GAFlexNewLoginTrack');\n };\n\n AuthService.prototype._accessTokenExpired = function _accessTokenExpired() {\n var _this8 = this;\n\n this.$log.debug('Access token expired');\n // Must we do this?\n this._userManager.signinSilent().then(function (user) {\n _this8.$log.debug('Relogin success ', user);\n _this8._setUser(user);\n }, function (err) {\n _this8.$log.debug('Relogin failed: ', err);\n _this8._setUser();\n });\n };\n\n AuthService.prototype._accessTokenExpiring = function _accessTokenExpiring() {\n this.$log.debug('Access token expiring');\n };\n\n AuthService.prototype._formatAcrValues = function _formatAcrValues(acrValues) {\n if (!acrValues) {\n return;\n }\n\n var acr_values = this._userManager.settings.acr_values || '';\n for (var key in acrValues) {\n if (acrValues.hasOwnProperty(key)) {\n acr_values += key + ':' + acrValues[key] + ' ';\n }\n }\n return acr_values.trim();\n };\n\n AuthService.prototype._setUser = function _setUser(value) {\n this._user = value;\n\n if (value) {\n this._userLoadedEvent.raise(value);\n //this._callbacks.forEach(callback => callback(value));\n\n // track is the user came from flexmail\n if (this.$location.search().track === 'true') {\n window.localStorage.setItem('FlexMail', true);\n }\n\n // GA track user entered page and logged in\n if (window.localStorage.getItem('GAUserNotLoggedInTrack') === 'true' && !window.localStorage.getItem('GAUserNotLoggedInTracked')) {\n this.Analytics.trackEvent('GAUserLoggedIn', 'GAUserLoggedIn', 'GAUserLoggedIn');\n window.localStorage.setItem('GAUserNotLoggedInTracked', true);\n }\n\n // GA if the user clicked a flexmail link, log it once\n if (window.localStorage.getItem('FlexMail') && !window.localStorage.getItem('GAFlexTrack')) {\n window.localStorage.setItem('GAFlexTrack', true);\n this.Analytics.trackEvent('GATrackFlexmailLinkClicked', 'GATrackFlexmailLinkClicked', 'GATrackFlexmailLinkClicked');\n }\n\n // GA if the user that clicked a flexmail link, and is already logged in, log it. Only log this once\n if (window.localStorage.getItem('FlexMail') && !window.localStorage.getItem('GAFlexAlreadyLoginTrack') && window.localStorage.getItem('GAFlexTrack') && !window.sessionStorage.getItem('GAFlexNewLoginTrack')) {\n window.localStorage.setItem('GAFlexAlreadyLoginTrack', true);\n this.Analytics.trackEvent('GATrackFlexmailUserAlreadyLoggedIn', 'GATrackFlexmailUserAlreadyLoggedIn', 'GATrackFlexmailUserAlreadyLoggedIn');\n }\n } else {\n this._userUnloadedEvent.raise(value);\n }\n };\n\n AuthService.prototype._signIn = function _signIn(requestedUrl, acrValues, language) {\n var _this9 = this;\n\n this.$log.debug('Security - sign in');\n\n // if(window.localStorage.getItem('lastLoginGA')) {\n // var blw = moment(window.localStorage.getItem('lastLoginGA'), 'DD-MM-YYYY').diff(moment(), 'days');\n // }\n\n // //first time log in\n // if(!window.localStorage.getItem('lastLoginGA')) {\n // window.localStorage.setItem('lastLoginGA', moment().format('DD-MM-YYYY'));\n // // track is the user came from flexmail\n // } else if (moment(window.localStorage.getItem('lastLoginGA'), 'DD-MM-YYYY').diff(moment(), 'days') > 0 ) {\n // blw;\n // }\n\n if (this.$location.search().track === 'true') {\n window.localStorage.setItem('FlexMail', true);\n }\n\n //if the last time the user logged in is greater than a day\n if ((0, _moment2.default)(window.localStorage.getItem('lastLoginGA'), 'DD-MM-YYYY').diff((0, _moment2.default)(), 'days') > 0 || !window.localStorage.getItem('lastLoginGA')) {\n\n //clear the GA values in the local storage\n this.clearGALocalStorage();\n\n //set a new last logged in value in the local storage\n window.localStorage.setItem('lastLoginGA', (0, _moment2.default)().format('DD-MM-YYYY'));\n\n // GA track user entered page and not logged in, only log this once\n if (!window.localStorage.getItem('GAUserNotLoggedInTrack')) {\n window.localStorage.setItem('GAUserNotLoggedInTrack', true);\n this.Analytics.trackEvent('GAUserNotLoggedIn', 'GAUserNotLoggedIn', 'GAUserNotLoggedIn');\n }\n\n // GA if the user clicked a flexmail link, log it once\n if (window.localStorage.getItem('FlexMail') && !window.localStorage.getItem('GAFlexTrack')) {\n window.localStorage.setItem('GAFlexTrack', true);\n this.Analytics.trackEvent('GATrackFlexmailLinkClicked', 'GATrackFlexmailLinkClicked', 'GATrackFlexmailLinkClicked');\n }\n\n // GA if the user that clicked a flexmail link and had to log in, log it. Only log this once\n if (window.localStorage.getItem('FlexMail') && window.localStorage.getItem('GAFlexTrack') && !window.localStorage.getItem('GAFlexNewLoginTrack')) {\n window.localStorage.setItem('GAFlexNewLoginTrack', true);\n this.Analytics.trackEvent('GATrackFlexmailUserLoggedIn', 'GATrackFlexmailUserLoggedIn', 'GATrackFlexmailUserLoggedIn');\n }\n\n if (this.isAuthenticated && !acrValues) {\n // If the user is allready authenticated we can signIn\n // without bothering the user.\n // Also the history doesn't get polluted with an extra call to sso.\n return this.$q.when(this._userManager.signinSilent()).then(function () {\n if (requestedUrl) {\n _this9.$location.url(requestedUrl);\n //window.location.assign(requestedUrl);\n }\n }, function (error) {\n // If signinSilent fails, log it and log out the user\n _this9.$exceptionHandler(error);\n _this9.$log.debug('SigninSilent error ' + error);\n _this9.signOut();\n });\n }\n }\n\n window.sessionStorage.setItem('redirectUrl', requestedUrl);\n\n return this._userManager.signinRedirect({\n acr_values: this._formatAcrValues(acrValues),\n ui_locales: language\n }).then(function () {\n return _this9.$q.reject();\n });\n };\n\n AuthService.prototype._silentRenewError = function _silentRenewError(e) {\n this.$log.debug('Silent renew error');\n // If silentRenew fails, log it and log out the user\n this.$exceptionHandler(e);\n this.signOut();\n };\n\n AuthService.prototype._userLoaded = function _userLoaded(user) {\n this._setUser(user);\n this.$log.debug('user loaded: ', user);\n };\n\n AuthService.prototype._userSignedOut = function _userSignedOut() {\n var _this10 = this;\n\n var user = Object.assign({}, this._user);\n this._setUser();\n this.$log.debug('User signed out');\n setTimeout(function () {\n return _this10._userSignedOutEvent.raise(user);\n });\n };\n\n AuthService.prototype._userUnloaded = function _userUnloaded() {\n this._setUser();\n this.$log.debug('user unloaded');\n };\n\n AuthService.prototype._wireUserManagerEvents = function _wireUserManagerEvents() {\n var _this11 = this;\n\n this._userManager.events.addAccessTokenExpiring(function () {\n return _this11._accessTokenExpiring();\n });\n this._userManager.events.addAccessTokenExpired(function () {\n return _this11._accessTokenExpired();\n });\n this._userManager.events.addSilentRenewError(function (e) {\n return _this11._silentRenewError(e);\n });\n this._userManager.events.addUserLoaded(function (user) {\n return _this11._userLoaded(user);\n });\n this._userManager.events.addUserSignedOut(function () {\n return _this11._userSignedOut();\n });\n this._userManager.events.addUserUnloaded(function () {\n return _this11._userUnloaded();\n });\n };\n\n _createClass(AuthService, [{\n key: 'isAuthenticated',\n get: function get() {\n return !!this.user;\n }\n }, {\n key: 'isFebelcoCustomer',\n get: function get() {\n return this.user ? this.user.IsFebelcoCustomer === 'True' : false;\n }\n }, {\n key: 'isBuyer',\n get: function get() {\n return this.user ? this.user.IsBuyer === 'IsBuyer' : false;\n }\n }, {\n key: 'isSeller',\n get: function get() {\n return this.user ? this.user.IsSeller === 'IsSeller' : false;\n }\n }, {\n key: 'defaultWholesalerId',\n get: function get() {\n return this.user.DefaultWholesalerId;\n },\n set: function set(id) {\n this.user.DefaultWholesalerId = id;\n }\n }, {\n key: 'user',\n get: function get() {\n if (this._user) {\n return Object.assign({}, this._user.profile, {\n customInfo: this._customUserInfo\n });\n }\n return;\n }\n }, {\n key: 'accessToken',\n get: function get() {\n if (this._user) {\n return this._user.access_token;\n }\n return '';\n }\n }, {\n key: 'customUserInfo',\n get: function get() {\n return this._customUserInfo || {};\n },\n set: function set(value) {\n this._customUserInfo = value;\n }\n }]);\n\n return AuthService;\n}();\n\nvar Event = function () {\n function Event(name) {\n _classCallCheck(this, Event);\n\n this._name = name;\n this._callbacks = [];\n }\n\n Event.prototype.addHandler = function addHandler(cb) {\n this._callbacks.push(cb);\n };\n\n Event.prototype.removeHandler = function removeHandler(cb) {\n var idx = this._callbacks.findIndex(function (item) {\n return item === cb;\n });\n if (idx >= 0) {\n this._callbacks.splice(idx, 1);\n }\n };\n\n Event.prototype.raise = function raise() {\n for (var _iterator = this._callbacks, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var cb = _ref;\n\n cb.apply(undefined, arguments);\n }\n };\n\n return Event;\n}();\n\nexports.default = AuthService;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./blocks/security/authService.js\n// module id = 696\n// module chunks = 0","'use strict';\n\nvar _security = require('./_security.module');\n\nvar _security2 = _interopRequireDefault(_security);\n\nvar _authService = require('./authService');\n\nvar _authService2 = _interopRequireDefault(_authService);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*jshint esversion: 6 */\n_security2.default.provider('authService', AuthServiceProvider);\n\nfunction AuthServiceProvider() {\n var baseUrl = window.location.protocol + '//' + window.location.host;\n //var authService;\n //https://github.com/IdentityModel/oidc-client-js/wiki#configuration\n var defaultSettings = {\n //authority: \"https://dev-sso.febelco.be\", // \"https://idsv-webhost.febelco.be\",\n //client_id: \"Profficina.Admin\",\n redirect_uri: baseUrl + '/loginRedirect.html',\n post_logout_redirect_uri: baseUrl\n\n // Required if you want to use the silent_renew\n , response_type: 'id_token token'\n //scope: \"openid profile email profficinaAdmin\",\n\n // Silent renew will get a new access_token via an iframe just prior to the old access_token expiring (60 seconds prior)\n // The HTML file will be used in a dynamically created iframe to renew the token. The URL of that page is passed to the token manager\n // settings to instruct it to automatically renew the token when it expires.\n // The token manager will renew the token 60 seconds before it expires, which explains why we chose to change to access token \n // lifetime to 70 seconds (client.cs of the Identity server). This means the token will be renewed every 10 seconds.\n , silent_redirect_uri: baseUrl + '/silentRenew.html',\n automaticSilentRenew: false\n\n // This will allow all the OIDC protocol claims to be visible in the window. \n // Normally a client app wouldn't care about them or want them taking up space\n , filterProtocolClaims: false\n\n // This will use the user info endpoint if it's an OIDC request and there's an access_token\n , loadUserInfo: false\n // Will raise events for when user has performed a signout at the OP.\n // (default: true)\n , monitorSession: false\n // Sets the interval for cheking if the session is still valid.\n , checkSessionInterval: 10000\n // Storage object used to persist User for currently authenticated user. E.g. userStore: new WebStorageStateStore({ store: window.localStorage })\n // (default: session storage)\n // ,userStore: new WebStorageStateStore({ store: window.sessionStorage })\n // The number of seconds before an access token is to expire to raise the accessTokenExpiring event.\n // (default: 60)\n // ,accessTokenExpiringNotificationTime: 60\n },\n settings = Object.assign({}, defaultSettings);\n\n this.configure = function (appSettings, url) {\n if (url) {\n baseUrl = url;\n }\n\n settings = Object.assign(defaultSettings, appSettings);\n };\n\n this.getSettings = function () {\n return Object.assign({}, settings);\n };\n\n this.getSignInPath = function () {\n return settings.redirect_uri.replace(baseUrl, '');\n };\n\n this.getSignOutPath = function () {\n return settings.post_logout_redirect_uri.replace(baseUrl, '');\n };\n\n this.$get = ['$log', '$q', '$location', '$exceptionHandler', 'Analytics', function ($log, $q, $location, $exceptionHandler, Analytics) {\n return new _authService2.default($log, $q, $location, $exceptionHandler, settings, Analytics);\n }];\n}\n\n//SecurityModule.service(\"authService\", AuthService);\n\n//AuthService.$inject = [\"$log\", \"$document\"];\n\n//function AuthService($log, $q, settings) {\n// const oidcMgr = new OidcClient.UserManager(settings);\n// var callbacks = [];\n// var loggedInUser;\n// var initialized;\n//\n// //OidcClient.Log.logger = $log;\n//\n// // Raised when a user session has been established (or re-established)\n// oidcMgr.events.addUserLoaded(function(user) {\n// loggedInUser = user;\n//\n// callbacks.forEach(callback => callback(user));\n// $log.debug(\"oidcMgr.events.addUserLoaded()\");\n// });\n// oidcMgr.events.addUserUnloaded(function() {\n// loggedInUser = undefined;\n// $log.debug(\"oidcMgr.events.addUserUnloaded()\");\n// });\n// oidcMgr.events.addAccessTokenExpiring(function() {\n// $log.debug(\"oidcMgr.events.addAccessTokenExpiring()\");\n// });\n// oidcMgr.events.addAccessTokenExpired(function() {\n// loggedInUser = undefined;\n// $log.debug(\"oidcMgr.events.addAccessTokenExpired()\");\n// });\n// oidcMgr.events.addSilentRenewError(function(e) {\n// loggedInUser = undefined;\n// $log.debug(\" oidcMgr.events.addSilentRenewError(): \", e.message);\n// });\n// oidcMgr.events.addUserSignedOut(e => {\n// loggedInUser = undefined;\n// $log.debug(\" oidcMgr.events.userSignedOut(): \", e);\n// });\n//\n// function init() {\n// initialized = false;\n// return oidcMgr.getUser().then(user =>{ \n// loggedInUser = user;\n// initialized = true; \n// }, () => initialized = true);\n// }\n//\n// function signIn(requestedUrl, acrValues) {\n// debugger;\n// $log.debug(\"Security - sign in\");\n//\n// if(this.isAuthenticated() && !acrValues){\n// return $q.resolve();\n// }\n//\n// if(initialized === false){\n// var deferred = $q.defer();\n// setTimeout(function(ctx, url) {\n// ctx.signIn(url).then(deferred.resolve, deferred.reject, deferred.notify);\n// }, 100, this, requestedUrl);\n// return deferred.promise;\n// }\n//\n// let signInObj = { \n// scope: settings.scope, \n// response_type: settings.response_type \n// };\n//\n// if(acrValues){\n// var acr_values = \"\";\n// for (var key in acrValues) {\n// if (acrValues.hasOwnProperty(key)) {\n// acr_values += key + \":\" + acrValues[key] + \" \"; \n// }\n// }\n// signInObj.acr_values = acr_values.trim();\n// }\n//\n// window.sessionStorage.setItem(\"redirectUrl\", requestedUrl);\n//\n// return oidcMgr.signinRedirect(signInObj).then(function() {\n// $log.debug(\"Security - sign in success\");\n// return $q.reject();\n// }, function(e) {\n// $log.debug(\"Security - sign in failed: \" + e);\n// return $q.reject();\n// });\n// }\n//\n// function processLoginResponseData(responseData) {\n// return oidcMgr.signinRedirectCallback(responseData).then(function(/*user*/) {\n// $log.debug(\"Security - signed in\");\n// //loggedInUser = user;\n// let redirectUrl = window.sessionStorage.getItem(\"redirectUrl\") || \"/\";\n// // Clean up\n// window.sessionStorage.removeItem(\"redirectUrl\");\n// return redirectUrl;\n// }, function(e) {\n// $log.debug(\"Security - sign in failed: \" + e);\n// loggedInUser = undefined;\n// return \"/401\";\n// });\n// }\n//\n// function signOut() {\n// $log.debug(\"Security - sign out\");\n// return oidcMgr.signoutRedirect().then(() => loggedInUser = undefined);\n// }\n//\n// function getAccessToken() {\n// if (loggedInUser) {\n// return loggedInUser.access_token;\n// }\n// return \"\";\n// }\n//\n// function isAuthenticated() {\n// return settings.disableSecurity || !!loggedInUser;\n// }\n//\n// function getUser() {\n// if (loggedInUser) {\n// return loggedInUser.profile;\n// }\n// return;\n// }\n//\n// function addUserLoadedEvent(callback){\n// callbacks.push(callback);\n// return () => callbacks.splice(callbacks.findIndex(callback),1);\n// }\n//\n// return {\n// addUserLoadedEvent: addUserLoadedEvent,\n// getAccessToken: getAccessToken,\n// getUser: getUser,\n// init: init,\n// isAuthenticated: isAuthenticated,\n// processLoginResponseData: processLoginResponseData,\n// signIn: signIn,\n// signOut: signOut\n// };\n//}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./blocks/security/authService.provider.js\n// module id = 697\n// module chunks = 0","'use strict';\n\nvar _security = require('./_security.module');\n\nvar _security2 = _interopRequireDefault(_security);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_security2.default.directive('claimAuthorize', ['ngIfDirective', 'authService', function (ngIfDirective, authService) {\n var ngIf = ngIfDirective[0];\n\n return {\n transclude: ngIf.transclude,\n priority: ngIf.priority,\n terminal: ngIf.terminal,\n restrict: ngIf.restrict,\n link: function link($scope, $element, $attr) {\n var claim = $attr.claimAuthorize;\n var value = $scope.$eval($attr.claimValue);\n //var yourCustomValue = $scope.$eval(claim);\n\n $attr.ngIf = function () {\n return authService.hasClaim(claim, value);\n };\n ngIf.link.apply(ngIf, arguments);\n }\n };\n}]); /*jshint esversion: 6 */\n/* http://stackoverflow.com/questions/20325480/angularjs-whats-the-best-practice-to-add-ngif-to-a-directive-programmatically */\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./blocks/security/claimsAuthorize.directive.js\n// module id = 698\n// module chunks = 0","'use strict';\n\napiFactory.$inject = [\"$resource\", \"$cacheFactory\", \"config\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.apiFactory = apiFactory;\n/*@ngInject*/\nfunction apiFactory($resource, $cacheFactory, config) {\n var baseUrl = config.webApiBaseUrl;\n\n //var sellersCache = $cacheFactory('sellers');\n // var categoriesCache = $cacheFactory('categories');\n\n return {\n // products\n\n products: $resource(baseUrl + 'products/:id', null, {\n get: {\n method: 'GET',\n isArray: false\n },\n query: {\n method: 'GET',\n isArray: true\n },\n save: {\n method: 'POST'\n },\n remove: {\n method: 'DELETE'\n },\n delete: {\n method: 'DELETE'\n }\n }),\n productMedipim: $resource(baseUrl + 'products/:productId/getMediPimData', null, {\n getMedipimData: {\n method: 'GET',\n isArray: false\n }\n }),\n productSearch: $resource(baseUrl + 'products/search', null, {\n search: {\n method: 'GET',\n isArray: false\n }\n }),\n\n outletProductsSearch: $resource(baseUrl + 'products/searchOutletProducts', null, {\n search: {\n method: 'GET',\n isArray: false\n }\n }),\n rentalProducts: $resource(baseUrl + 'productrentals/:sellerId/getByCategory/:categoryId', null, {\n getAll: {\n method: 'GET',\n isArray: true\n }\n }),\n rentalProduct: $resource(baseUrl + 'productrentals/:productId', null, {\n get: {\n method: 'GET',\n isArray: false\n }\n }),\n rentalProductMedipim: $resource(baseUrl + 'productrentals/:productId/getMediPimData', null, {\n getMedipimData: {\n method: 'GET',\n isArray: false\n }\n }),\n rentalProductsOrder: $resource(baseUrl + 'rentalorder/rentProducts', null, {\n order: {\n method: 'POST',\n isArray: false\n }\n }),\n rentalProductCategories: $resource(baseUrl + 'productrentals/getRentalProductCategories/:sellerId', null, {\n getAll: {\n method: 'GET',\n isArray: true\n }\n }),\n rentalHistory: $resource(baseUrl + 'rentalHistory/search', null, {\n search: {\n method: 'GET',\n isArray: false\n }\n }),\n rentalHistoryDetail: $resource(baseUrl + 'rentalHistory/:id', null, {\n getById: {\n method: 'GET',\n isArray: false\n }\n }),\n rentalHistoryRemark: $resource(baseUrl + 'rentalHistory/remark', null, {\n set: {\n method: 'PUT',\n isArray: false\n }\n }),\n rentalHistoryStatus: $resource(baseUrl + 'rentalHistoryStatus/search', null, {\n getAll: {\n method: 'GET',\n isArray: false\n }\n }),\n rentalOrderSearch: $resource(baseUrl + 'rentalorder/search', null, {\n execute: {\n method: 'GET',\n isArray: false\n }\n }),\n productReservations: $resource(baseUrl + 'productreservations/getreservations?sortField=:sortField&sortAsc=:sortAsc', null, {\n getAll: {\n method: 'GET',\n isArray: true\n }\n }),\n // searchCities: $resource(baseUrl + 'belgiumPostalLocality?name=:name&code=:code ', null, {\n // execute: {\n // method: 'GET',\n // isArray: false\n // }\n // }),\n // searchStreet: $resource(baseUrl + 'belgiumStreet?name=:name&postalLocalityId=:postalLocalityId', null, {\n // execute: {\n // method: 'GET',\n // isArray: false\n // }\n // }),\n searchCities: $resource(baseUrl + 'postalLocality?name=:name&code=:code', null, {\n execute: {\n method: 'GET',\n isArray: false\n }\n }),\n searchStreet: $resource(baseUrl + 'street?name=:name&postalLocalityId=:postalLocalityId', null, {\n execute: {\n method: 'GET',\n isArray: false\n }\n }),\n productFilter: $resource(baseUrl + 'products/filter', null, {\n get: {\n method: 'GET',\n isArray: false\n }\n }),\n\n productStock: $resource(baseUrl + 'products/stock/:productNumber/:quantity', null, {\n get: {\n method: 'GET',\n isArray: false\n }\n }),\n\n productDiscounts: $resource(baseUrl + 'products/getProductDiscounts/:productId', null, {\n get: {\n method: 'GET',\n isArray: false\n }\n }),\n\n // sellers\n\n sellers: $resource(baseUrl + 'sellers/:id', null, {\n get: {\n method: 'GET',\n isArray: false\n },\n list: {\n method: 'GET',\n isArray: true\n }\n }),\n\n libraryQuestions: $resource(baseUrl + 'sellers/:sellerId/getQuestions', null, {\n get: {\n method: 'GET',\n isArray: true\n }\n }),\n\n libraryDocumentCategories: $resource(baseUrl + 'sellers/:sellerId/getDocumentCategories', null, {\n get: {\n method: 'GET',\n isArray: true\n }\n }),\n\n libraryDocument: $resource(baseUrl + 'sellers/DownloadFile/:documentId', null, {\n get: {\n method: 'GET',\n responseType: 'arraybuffer'\n }\n }),\n\n outletSeller: $resource(baseUrl + 'sellers/outlet', null, {\n get: {\n method: 'GET',\n isArray: false\n }\n }),\n menuSellers: $resource(baseUrl + 'sellers/getSellersForMenu', null, {\n list: {\n method: 'GET',\n isArray: true\n }\n }),\n\n sellerModules: $resource(baseUrl + 'sellers/:id/modules', null, {\n get: {\n method: 'GET',\n isArray: true\n }\n }),\n\n sellerAbout: $resource(baseUrl + 'sellers/:id/about', null, {\n get: {\n method: 'GET',\n isArray: false\n }\n }),\n\n sellerBanners: $resource(baseUrl + 'sellers/:id/home/banners', null, {\n get: {\n method: 'GET',\n isArray: false\n }\n }),\n\n sellerProductsAndDiscounts: $resource(baseUrl + 'sellers/:id/home/productsdiscounts', null, {\n get: {\n method: 'GET',\n isArray: false\n }\n }),\n\n sellerCategory: $resource(baseUrl + 'sellers/:id/category/:categoryId', null, {\n get: {\n method: 'GET',\n isArray: false\n }\n }),\n\n totalPriceDiscounts: $resource(baseUrl + 'sellers/:id/totalPriceDiscounts', null, {\n get: {\n method: 'GET',\n isArray: true\n }\n }),\n\n sellerContact: $resource(baseUrl + 'sellers/:id/contact', null, {\n get: {\n method: 'GET',\n isArray: false\n }\n }),\n\n sellerPublic: $resource(baseUrl + 'sellers/:id/public', null, {\n get: {\n method: 'GET',\n isArray: false\n }\n }),\n\n //wholeSalers\n\n wholesalers: $resource(baseUrl + 'wholeSaler/getAllWholeSalers', null, {\n get: {\n method: 'GET',\n isArray: true\n }\n }),\n\n // partnerships\n\n partnerships: $resource(baseUrl + 'partnership/:id', null, {\n get: {\n method: 'GET',\n isArray: false\n },\n list: {\n method: 'GET',\n isArray: false\n }\n }),\n\n // sellerCategory: $resource(baseUrl + 'sellers/:id/category/:categoryId', null, {\n // get: { method:'GET', isArray: false }\n // }),\n\n // brands\n\n brands: $resource(baseUrl + 'brands/:id', null, {\n get: {\n method: 'GET',\n isArray: false\n },\n list: {\n method: 'GET',\n isArray: true\n }\n }),\n\n // banner\n\n banners: $resource(baseUrl + 'banner', null, {\n list: {\n method: 'GET',\n isArray: true\n }\n }),\n\n // categories\n\n categories: $resource(baseUrl + 'categories', null, {\n get: {\n method: 'GET',\n isArray: false\n },\n list: {\n method: 'POST',\n isArray: true\n }\n }),\n\n categoriesMenu: $resource(baseUrl + 'categories/menu', null, {\n get: {\n method: 'GET',\n isArray: true\n }\n }),\n sellerCategories: $resource(baseUrl + 'products/sellerCategories/:sellerId', null, {\n getSellerCategories: {\n method: 'GET',\n isArray: false\n }\n }),\n category: $resource(baseUrl + 'categories/get/:id', null, {\n get: {\n method: 'GET',\n isArray: false\n }\n }),\n\n // cart\n\n cart: $resource(baseUrl + 'shoppingcart/v2', null, {\n get: {\n method: 'GET',\n isArray: false\n }\n }),\n\n //checkout cart\n checkoutCart: $resource(baseUrl + 'shoppingcart/v2/checkout', null, {\n get: {\n method: 'GET',\n isArray: false\n }\n }),\n\n shoppingCartProducts: $resource(baseUrl + 'shoppingcart/getShoppingCartProducts', null, {\n get: {\n method: 'GET',\n isArray: true\n }\n }),\n\n getCustomerAccounts: $resource(baseUrl + 'shoppingcart/customerAccounts', null, {\n get: {\n method: 'GET',\n isArray: false\n }\n }),\n\n setProductQuantity: $resource(baseUrl + 'shoppingcart/setProductQuantity', null, {\n execute: {\n method: 'POST',\n isArray: true\n }\n }),\n\n addProductToCart: $resource(baseUrl + 'shoppingcart/addProduct', null, {\n execute: {\n method: 'POST'\n }\n }),\n\n setQuantityOfProductToCart: $resource(baseUrl + 'shoppingcart/setQuantityOfProduct', null, {\n execute: {\n method: 'POST'\n }\n }),\n\n removeProductFromCart: $resource(baseUrl + 'shoppingcart/removeProduct/:productId/:discountId', null, {\n execute: {\n method: 'DELETE'\n }\n }),\n\n addPromoPackToCart: $resource(baseUrl + 'shoppingcart/addPromoPack', null, {\n execute: {\n method: 'POST'\n }\n }),\n\n setQuantityOfPromoPackToCart: $resource(baseUrl + 'shoppingcart/setQuantityOfPromoPack', null, {\n execute: {\n method: 'POST'\n }\n }),\n\n removePromoPackFromCart: $resource(baseUrl + 'shoppingcart/removePromoPack/:productId/:discountId', null, {\n execute: {\n method: 'DELETE'\n }\n }),\n\n setPanaceeToCart: $resource(baseUrl + 'shoppingcart/setPanacee', null, {\n execute: {\n method: 'POST'\n }\n }),\n\n removePanaceeFromCart: $resource(baseUrl + 'shoppingcart/removePanacee/:productId/:discountId', null, {\n execute: {\n method: 'DELETE'\n }\n }),\n\n getAddedToCartInfo: $resource(baseUrl + 'shoppingcart/addedToCartInfo/:id/:discountId', null, {\n execute: {\n method: 'GET',\n isArray: false\n }\n }),\n\n checkout: $resource(baseUrl + 'shoppingcart/checkout/v2', null, {\n execute: {\n method: 'PUT',\n isArray: false\n }\n }),\n\n createOrders: $resource(baseUrl + 'shoppingcart/order', null, {\n execute: {\n method: 'POST',\n isArray: true\n }\n }),\n\n clearCart: $resource(baseUrl + 'shoppingcart/clear', null, {\n execute: {\n method: 'DELETE',\n isArray: false\n }\n }),\n\n deactivateCartMessage: $resource(baseUrl + 'shoppingcart/deactivateMessage/:messageId', {\n messageId: '@messageId'\n }, {\n deactivate: {\n method: 'PUT',\n isArray: false\n }\n }),\n\n reOrderProducts: $resource(baseUrl + 'shoppingcart/reOrderProducts', null, {\n execute: {\n method: 'POST',\n isArray: false\n }\n }),\n\n // order\n orders: $resource(baseUrl + 'orders/:id', null, {\n get: {\n method: 'GET',\n isArray: false\n }\n }),\n\n orderSearch: $resource(baseUrl + 'orders/search', null, {\n execute: {\n method: 'GET',\n isArray: false\n }\n }),\n\n shippingNoteSearch: $resource(baseUrl + 'orders/:id/shippingNote/:warehouseCode/:shippingNote', null, {\n execute: {\n method: 'GET',\n isArray: false\n }\n }),\n\n setOrderDeliveryDate: $resource(baseUrl + 'orders/setDeliveryDate', null, {\n execute: {\n method: 'PUT',\n isArray: false\n }\n }),\n\n // discounttypes\n discounttypes: $resource(baseUrl + 'discounttypes/:id', null, {\n get: {\n method: 'GET',\n isArray: false\n }\n }),\n\n // tenants\n tenants: $resource(baseUrl + 'account/accounts', null, {\n get: {\n method: 'GET',\n isArray: false\n },\n list: {\n method: 'GET',\n isArray: true\n }\n }),\n\n // myAccount\n myAccount: $resource(baseUrl + 'account/myaccount', null, {\n get: {\n method: 'GET',\n isArray: false\n },\n list: {\n method: 'GET',\n isArray: true\n }\n }),\n\n currentTenant: $resource(baseUrl + 'account/currentTenant', null, {\n get: {\n method: 'GET',\n isArray: false\n }\n }),\n\n setBuyerMail: $resource(baseUrl + 'account/setBuyerMail', null, {\n execute: {\n method: 'PUT',\n isArray: false\n }\n }),\n\n setBuyerMailLanguage: $resource(baseUrl + 'account/setBuyerMailLanguage', null, {\n execute: {\n method: 'PUT',\n isArray: false\n }\n }),\n // tenantsOld\n // tenants: $resource(baseUrl + 'tenants/:id', null, {\n // get: { method:'GET', isArray: false },\n // list: { method:'GET', isArray: true }\n // })\n\n //news\n newsSearch: $resource(baseUrl + 'news/search', null, {\n execute: {\n method: 'GET',\n isArray: false\n }\n }),\n\n news: $resource(baseUrl + 'news/:id', null, {\n execute: {\n method: 'GET',\n isArray: false\n }\n }),\n\n newsCategories: $resource(baseUrl + 'news/categories/search', null, {\n execute: {\n method: 'GET',\n isArray: true\n }\n }),\n\n // fast order\n searchProduct: $resource(baseUrl + 'shoppingcart/searchProduct', null, {\n execute: {\n method: 'GET',\n isArray: true\n }\n }),\n\n quickAddProducts: $resource(baseUrl + 'shoppingcart/quickAddProducts', null, {\n execute: {\n method: 'POST',\n isArray: false\n }\n }),\n removeSellerFromCart: $resource(baseUrl + 'shoppingcart/removeSellerFromCart', null, {\n execute: {\n method: 'POST',\n isArray: false\n }\n }),\n // contracts\n contracts: $resource(baseUrl + 'contract', null, {\n list: {\n method: 'GET',\n isArray: true\n }\n }),\n\n numberOfContracts: $resource(baseUrl + 'contract/amount/:sellerId', null, {\n get: {\n method: 'GET',\n isArray: false\n }\n }),\n\n contractDetail: $resource(baseUrl + 'contract/:id', null, {\n get: {\n method: 'GET',\n isArray: false\n }\n }),\n\n sellerContract: $resource(baseUrl + 'sellers/:sellerId/contract/:contractId', null, {\n get: {\n method: 'GET',\n isArray: false\n }\n }),\n\n sellerContracts: $resource(baseUrl + 'sellers/:sellerId/contract', null, {\n list: {\n method: 'GET',\n isArray: true\n }\n }),\n\n // vaccines\n vaccinreservation: $resource(baseUrl + 'vaccinreservation', null, {\n get: {\n method: 'GET',\n isArray: false\n }\n }),\n\n setReservationAmounts: $resource(baseUrl + 'vaccinreservation/setReservationAmounts', null, {\n set: {\n method: 'PUT',\n isArray: true\n }\n }),\n\n // reservation campaigns\n reservationCampaign: $resource(baseUrl + 'reservation/:code', null, {\n get: {\n method: 'GET',\n isArray: false\n }\n }),\n\n setReservationCampaignAmounts: $resource(baseUrl + 'reservation/:code/setReservationAmounts', null, {\n set: {\n method: 'PUT',\n isArray: true\n }\n }),\n\n getActiveReservationCampaigns: $resource(baseUrl + 'reservation/activeCampaigns', null, {\n get: {\n method: 'GET',\n isArray: true\n }\n }),\n\n //corona\n coronaReservation: $resource(baseUrl + 'reservation', null, {\n get: {\n method: 'GET',\n isArray: false\n }\n }),\n\n //outlet\n outlet: $resource(baseUrl + 'outlet', null, {\n get: {\n method: 'GET',\n isArray: true\n }\n }),\n outletHomePage: $resource(baseUrl + 'outlet/outletHomePage', null, {\n get: {\n method: 'GET'\n }\n }),\n\n //buyer-base\n buyerBaseSearch: $resource(baseUrl + 'buyerBase?search=:search&sellerId=:sellerId', null, {\n execute: {\n method: 'GET',\n isArray: false\n }\n }),\n certificates: $resource(baseUrl + 'certificates/search', null, {\n search: {\n method: 'GET',\n isArray: false\n }\n }),\n podValidateContact: $resource(baseUrl + 'pod/validateContact?licenseNumber=:licenseNumber', null, {\n get: {\n method: 'GET',\n isArray: false\n }\n }),\n podOrderTypes: $resource(baseUrl + 'pod/orderTypes', null, {\n get: {\n method: 'GET',\n isArray: true\n }\n }),\n podPackageTypes: $resource(baseUrl + 'pod/packageTypes', null, {\n get: {\n method: 'GET',\n isArray: true\n }\n }),\n podOrderAdd: $resource(baseUrl + 'pod/:orderTypeId', null, {\n execute: {\n method: 'POST',\n isArray: false\n }\n }),\n podOrderDetail: $resource(baseUrl + 'pod/:orderTypeId/cancel', null, {\n cancel: {\n method: 'POST',\n isArray: false\n }\n }),\n pod: $resource(baseUrl + 'pod/:id', null, {\n get: {\n method: 'GET',\n isArray: false\n }\n }),\n podSearch: $resource(baseUrl + 'pod/search', null, {\n search: {\n method: 'GET',\n isArray: false\n }\n }),\n podLineStateHistory: $resource(baseUrl + 'pod/:lineId/stateHistory', null, {\n get: {\n method: 'GET',\n isArray: false\n }\n })\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/core/apiService.js\n// module id = 699\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.config = undefined;\n\nvar _profficinaConfig = require('profficinaConfig');\n\nvar _profficinaConfig2 = _interopRequireDefault(_profficinaConfig);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar config = exports.config = {\n env: _profficinaConfig2.default.env,\n webApiBaseUrl: _profficinaConfig2.default.webApiBaseUrl,\n imageBaseUrl: _profficinaConfig2.default.imageBaseUrl,\n ssoBaseUrl: _profficinaConfig2.default.ssoBaseUrl,\n enableTests: _profficinaConfig2.default.enableTests,\n fluVaccines: _profficinaConfig2.default.fluVaccines\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/core/config.js\n// module id = 700\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar searchContext = {\n none: { id: 0, value: 'none', description: 'None' },\n seller: { id: 1, value: 'seller', description: 'Seller' },\n discount: { id: 2, value: 'discount', description: 'Discount' },\n brand: { id: 3, value: 'brand', description: 'Brand' },\n category: { id: 4, value: 'category', description: 'Category' },\n search: { id: 5, value: 'search', description: 'Search' },\n sellerProducts: {\n id: 6,\n value: 'sellerProducts',\n description: 'SellerProducts'\n }\n};\n\nvar newsContext = {\n main: { id: 0, value: 'main', description: 'main' },\n seller: { id: 1, value: 'seller', description: 'seller' },\n brand: { id: 2, value: 'brand', description: 'brand' },\n product: { id: 3, value: 'product', description: 'product' }\n};\n\n// all values in categoryType are those that are in table CategoryType\nvar categoryType = {\n apbCategory: { id: 1, value: 'apbCategory', description: 'APB Category' },\n category: { id: 2, value: 'category', description: 'Category' },\n brand: { id: 3, value: 'brand', description: 'Brand' },\n seller: { id: 45, value: 'seller', description: 'Seller' },\n productRange: { id: 47, value: 'productRange', description: 'ProductRange' }\n};\n\n// other category types are those that are not in CategoryType, but that are categories/blocks in the filter\nvar otherCategoryType = {\n discountType: {\n id: 101,\n value: 'discountType',\n description: 'Discount type'\n },\n seller: { id: 102, value: 'sellers', description: 'Sellers' },\n discountsOnly: {\n id: 103,\n value: 'discountsOnly',\n description: 'Discounts only'\n }\n};\n\n// the different type of filters.\n// these are stored in different tables in the database, but are passed in the same array when getting the filters\n// we keep these values to distinguish between different types\nvar categoryFilterType = {\n category: { id: 0, description: 'Category' },\n sellerCategory: { id: 1, description: 'Seller category' },\n seller: { id: 2, description: 'Seller' },\n discountType: { id: 3, description: 'discountType' },\n customCategory: { id: 10, value: 'specialDiscounts', description: 'Special Discounts' }\n};\n\nvar navigationMenuItems = {\n home: { id: 1, value: 'home' },\n discounts: { id: 2, value: 'discounts' },\n sellers: { id: 3, value: 'sellers' },\n brands: { id: 4, value: 'brands' },\n products: { id: 5, value: 'products' },\n news: { id: 6, value: 'news' }\n};\n\nvar productContexts = {\n PRODUCTDETAIL: 'PRODUCTDETAIL'\n};\n\nvar getAmounts = {\n default: 20\n};\n\nvar orderStatusTexts = {\n REGSELLER: { text: gettext('Registered by seller') },\n CREATED: { text: gettext('Created') },\n SENTSELLER: { text: gettext('Sent to seller') },\n REGWS: { text: gettext('Registered') },\n BUSYWS: { text: gettext('In progress') },\n READYWS: { text: gettext('(Will be) delivered') },\n CANCELLED: { text: gettext('Cancelled') },\n ERROR: { text: gettext('Error') },\n REGWSP: { text: gettext('Partially registered by wholesaler') },\n BUSYWSP: { text: gettext('Partially in progress by wholesaler') },\n READYWSP: { text: gettext('(Will be) partially delivered') },\n INVWS: { text: gettext('Invoiced') },\n INVWSP: { text: gettext('Partially invoiced') }\n};\n\nvar deliveryStatusTexts = {\n DELIVREG: { text: gettext('Registered') },\n DELIVBUSY: { text: gettext('In progress') },\n DELIVREADY: { text: gettext('(Will be) delivered') },\n DELIVINV: { text: gettext('Delivered') }\n};\n\nvar bannerTextAlignmentClasses = {\n '0': { name: '' },\n '1': { name: 'hero-text-top-left' },\n '2': { name: 'hero-text-top-center' },\n '3': { name: 'hero-text-top-right' },\n '4': { name: 'hero-text-left' },\n '5': { name: 'hero-text-center' },\n '6': { name: 'hero-text-right' },\n '7': { name: 'hero-text-bottom-left' },\n '8': { name: 'hero-text-bottom-center' },\n '9': { name: 'hero-text-bottom-right' }\n};\n\nvar emailLanguages = [{\n id: 2,\n displayName: gettext('Dutch')\n}, {\n id: 3,\n displayName: gettext('French')\n}];\n\nvar orderProductStatusCodes = {\n CREATED: { value: 'CREATED' },\n CONFIRMED: { value: 'CONFIRMED' },\n ERROR: { value: 'ERROR' },\n REPLACED: { value: 'REPLACED' },\n MODIFIED: { value: 'MODIFIED' },\n CANCELLED: { value: 'CANCELLED' },\n REQUESTED: { value: 'REQUESTED' },\n REG: { value: 'REG' },\n PEN: { value: 'PEN' },\n CON: { value: 'CON' },\n CWN: { value: 'CWN' },\n CAN: { value: 'CAN' }\n};\n\nvar orderProductReasonCodes = {\n NOSTOCK: { value: 'NOSTOCK' },\n NOSTOCKSUP: { value: 'NOSTOCKSUP' },\n UNKCNK: { value: 'UNKCNK' },\n OFFMARKET: { value: 'OFFMARKET' },\n NOSERVICE: { value: 'NOSERVICE' },\n REFUSED: { value: 'REFUSED' },\n FORWARDED: { value: 'FORWARDED' },\n LIMITED: { value: 'LIMITED' },\n CUSTSERV: { value: 'CUSTSERV' }\n};\n\nvar rentalProductRelationTypeCodes = {\n RECOM: { value: 'RECOM' },\n INTER: { value: 'INTER' }\n};\n\nvar newsSliderSettings = {\n dots: true,\n arrows: false,\n slidesToShow: 4,\n slidesToScroll: 4,\n touchMove: false,\n responsive: [{\n breakpoint: 1199,\n settings: {\n slidesToShow: 3,\n slidesToScroll: 3\n }\n }, {\n breakpoint: 991,\n settings: {\n slidesToShow: 2,\n slidesToScroll: 2\n }\n }, {\n breakpoint: 767,\n settings: {\n slidesToShow: 2,\n slidesToScroll: 2\n }\n }, {\n breakpoint: 575,\n settings: {\n slidesToShow: 1,\n slidesToScroll: 1\n }\n }]\n};\n\nvar partnershipGallerySliderSettings = {\n autoplay: false,\n dots: true,\n arrows: false,\n slidesToShow: 4,\n slidesToScroll: 4,\n infinite: false,\n variableWidth: false,\n responsive: [{\n breakpoint: 992,\n settings: {\n slidesToShow: 3,\n slidesToScroll: 3\n }\n }, {\n breakpoint: 576,\n settings: {\n slidesToShow: 2,\n slidesToScroll: 2\n }\n }]\n};\n\nvar productSliderSettings = {\n dots: true,\n arrows: false,\n slidesToShow: 5,\n slidesToScroll: 5,\n touchMove: false,\n responsive: [{\n breakpoint: 1199,\n settings: {\n slidesToShow: 4,\n slidesToScroll: 4\n }\n }, {\n breakpoint: 991,\n settings: {\n slidesToShow: 3,\n slidesToScroll: 3\n }\n }, {\n breakpoint: 767,\n settings: {\n slidesToShow: 2,\n slidesToScroll: 2\n }\n }, {\n breakpoint: 575,\n settings: {\n slidesToShow: 1,\n slidesToScroll: 1\n }\n }]\n};\n\nvar rentalCheckoutMenuSteps = exports.rentalCheckoutMenuSteps = [{ index: 0, value: 'Uw aanvraag' }, { index: 1, value: 'Suggesties' }, { index: 2, value: 'Verstuur' }];\n\nvar enums = exports.enums = {\n bannerTextAlignmentClasses: bannerTextAlignmentClasses,\n searchContext: searchContext,\n newsContext: newsContext,\n categoryType: categoryType,\n otherCategoryType: otherCategoryType,\n categoryFilterType: categoryFilterType,\n navigationMenuItems: navigationMenuItems,\n orderStatusTexts: orderStatusTexts,\n deliveryStatusTexts: deliveryStatusTexts,\n productContexts: productContexts,\n emailLanguages: emailLanguages,\n orderProductStatusCodes: orderProductStatusCodes,\n orderProductReasonCodes: orderProductReasonCodes,\n getAmounts: getAmounts,\n partnershipGallerySliderSettings: partnershipGallerySliderSettings,\n productSliderSettings: productSliderSettings,\n newsSliderSettings: newsSliderSettings,\n rentalCheckoutMenuSteps: rentalCheckoutMenuSteps,\n rentalProductRelationTypeCodes: rentalProductRelationTypeCodes\n};\n\nvar breakpoints = exports.breakpoints = [{ name: 'xs', min: 0, max: 575 }, { name: 'sm', min: 576, max: 767 }, { name: 'md', min: 768, max: 991 }, { name: 'lg', min: 992, max: 1199 }, { name: 'xl', min: 1200, max: 99999 }];\n\nvar productTypes = exports.productTypes = {\n single: { serverValue: 'PORTALPRODUCT', clientValue: 'single' },\n pack: { serverValue: 'PROMOPACK', clientValue: 'pack' },\n panacee: { serverValue: 'PANACEE', clientValue: 'panacee' }\n};\n\nvar discountTypes = exports.discountTypes = {\n single: { serverValue: 'PORTALPRODUCT', clientValue: 'single' },\n pack: { serverValue: 'PROMOPACK', clientValue: 'pack' },\n panacee: { serverValue: 'PANACEE', clientValue: 'panacee' },\n counter: { serverValue: 'PRODUCTCOUNTER', clientValue: 'counter' }\n};\n\nvar discountTypeNames = exports.discountTypeNames = {\n PORTALPRODUCT: {\n serverValue: 'PORTALPRODUCT',\n clientValue: gettext('Product discount')\n },\n PROMOPACK: { serverValue: 'PROMOPACK', clientValue: gettext('Promopack') },\n PANACEE: { serverValue: 'PANACEE', clientValue: gettext('Panaché') },\n PRODUCTCOUNTER: {\n serverValue: 'PRODUCTCOUNTER',\n clientValue: gettext('Counter discount')\n },\n ORDERTOTALPRICE: {\n serverValue: 'ORDERTOTALPRICE', clientValue: gettext('Order total price')\n }\n};\n\nvar cartMessageTypes = exports.cartMessageTypes = {\n info: { serverValue: 0, clientValue: 'info' },\n warning: { serverValue: 1, clientValue: 'warning' },\n disabled: { serverValue: 2, clientValue: 'disabled' },\n error: { serverValue: 3, clientValue: 'error' }\n};\n\nvar sortProperties = exports.sortProperties = {\n DiscountDate: {\n value: 'DiscountDate',\n displayname: gettext('Discount date'),\n defaultSorting: 'desc'\n },\n DiscountAmount: {\n value: 'DiscountAmount',\n displayname: gettext('Max. discount'),\n defaultSorting: 'desc'\n },\n UnitPrice: {\n value: 'UnitPrice',\n displayname: gettext('Price'),\n defaultSorting: 'asc'\n },\n Name: {\n value: 'Name',\n displayname: gettext('Name'),\n defaultSorting: 'asc'\n },\n ProductNumber: { value: 'ProductNumber', displayname: gettext('ProductNumber'), defaultSorting: 'asc' },\n Bwm: { value: 'Bwm', displayname: gettext('GPM'), defaultSorting: 'asc' },\n ProductCreationDate: {\n value: 'ProductCreationDate',\n displayname: gettext('Newest'),\n defaultSorting: 'desc'\n }\n};\n\nvar newsTypes = exports.newsTypes = [{\n type: 'product',\n label: 'Product'\n}, {\n type: 'company',\n label: 'Bedrijf'\n}, {\n type: 'campaign',\n label: 'Campagne'\n}, {\n type: 'training',\n label: 'Opleiding'\n}, {\n type: 'event',\n label: 'Event'\n}];\n\nfunction gettext(string) {\n return string;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/core/enums.js\n// module id = 701\n// module chunks = 0","'use strict';\n\nexceptionHandler.$inject = [\"$provide\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.exceptionHandler = exceptionHandler;\n/*@ngInject*/\nfunction exceptionHandler($provide) {\n $provide.decorator('$exceptionHandler', [\"$delegate\", \"$window\", \"config\", function ($delegate, $window, config) {\n 'ngInject';\n\n return function (exception, cause) {\n if (config.env === 'dev' || config.env === 'acc' || config.env === 'prod' /* || config.env === 'local'*/) {\n //TODO\n if ($window.trackJs) {\n // Track error and log anything else of interest.\n $window.trackJs.track(exception);\n }\n }\n if (config.env === 'local' || config.env === 'dev') {\n // In *non-production* environments you may still want the error sent to the console.\n // You can delegate to the original handler (console.error) if you'd like.\n // Warning, this can cause double tracking of errors, so do not use in production.\n $delegate(exception, cause);\n }\n };\n }]);\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/core/exceptionHandler.js\n// module id = 702\n// module chunks = 0","'use strict';\n\nhttpInterceptorAuthorization.$inject = [\"authService\", \"$q\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.httpInterceptorAuthorization = httpInterceptorAuthorization;\n/*@ngInject*/\nfunction httpInterceptorAuthorization(authService, /*$state,*/$q) {\n return {\n request: function request(config) {\n if (authService.isAuthenticated) {\n config.headers.Authorization = 'Bearer ' + authService.accessToken;\n }\n return config;\n },\n responseError: function responseError(rejection) {\n if (rejection.status === 401) {\n authService.signIn();\n }\n\n // if (rejection.status === 403) {\n // $state.go('unauthenticated');\n // }\n\n // create a circular dependency with appModule.config\n // if (rejection.status === 403) {\n // $state.go('unauthorized');\n // }\n\n return $q.reject(rejection);\n }\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/core/httpInterceptorAuthorization.js\n// module id = 703\n// module chunks = 0","'use strict';\n\nhttpInterceptorErrors.$inject = [\"common\", \"config\", \"$q\", \"$state\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.httpInterceptorErrors = httpInterceptorErrors;\n/*@ngInject*/\nfunction httpInterceptorErrors(common, config, $q, $state) {\n return {\n responseError: function responseError(rejection) {\n\n if (rejection.status >= 400 && rejection.status < 500) {\n var clientError = 'The request was invalid or cannot be otherwise served [' + rejection.status + '].';\n // No longer threat 400 as exceptions\n trackJs.console.warn(clientError);\n //common.log.error(clientError);\n common.log.warn('HTTP client error ' + rejection.status);\n common.log.warn(rejection.data);\n }\n\n if (rejection.status >= 500) {\n //var serverError = 'Something is broken at the server [' + rejection.status + '].';\n trackJs.addMetadata('rejection data', rejection.config);\n //trackJs.track(serverError);\n common.log.error('HTTP server error ' + rejection.status);\n common.log.error(rejection.data);\n\n $state.go('error');\n }\n\n return $q.reject(rejection);\n }\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/core/httpInterceptorErrors.js\n// module id = 704\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.httpInterceptorLanguage = httpInterceptorLanguage;\n/*@ngInject*/\nfunction httpInterceptorLanguage() {\n return {\n // On request success\n request: function request(config) {\n if (!config.headers) {\n config.headers = {};\n }\n\n config.headers['x-accept-language'] = window.localStorage.getItem('language') || 'nl';\n return config;\n }\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/core/httpInterceptorLanguage.js\n// module id = 705\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _angular = require('angular');\n\nvar _angular2 = _interopRequireDefault(_angular);\n\nvar _apiService = require('./apiService');\n\nvar _httpInterceptorAuthorization = require('./httpInterceptorAuthorization');\n\nvar _httpInterceptorErrors = require('./httpInterceptorErrors');\n\nvar _httpInterceptorLanguage = require('./httpInterceptorLanguage');\n\nvar _exceptionHandler = require('./exceptionHandler');\n\nvar _enums = require('./enums');\n\nvar _config = require('./config');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _module = _angular2.default.module('app.core', []).config(_exceptionHandler.exceptionHandler).factory('api', _apiService.apiFactory).factory('httpInterceptorAuthorization', _httpInterceptorAuthorization.httpInterceptorAuthorization).factory('httpInterceptorErrors', _httpInterceptorErrors.httpInterceptorErrors).factory('httpInterceptorLanguage', _httpInterceptorLanguage.httpInterceptorLanguage).constant('Enums', _enums.enums).constant('Breakpoints', _enums.breakpoints).constant('NewsTypes', _enums.newsTypes).constant('DiscountTypes', _enums.discountTypes).constant('ProductTypes', _enums.productTypes).constant('CartMessageTypes', _enums.cartMessageTypes).constant('config', _config.config).constant('defaultLanguage', 'nl').constant('sortProperties', _enums.sortProperties).constant('discountTypeNames', _enums.discountTypeNames).constant('productContexts', _enums.productContexts).constant('supportedLanguages', ['nl', 'fr']);\n\nexports.default = _module.name;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/core/index.js\n// module id = 706\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.fbDateFormatter = fbDateFormatter;\n\nvar _dateTimeHelper = require('./dateTimeHelper');\n\nvar _dateTimeHelper2 = _interopRequireDefault(_dateTimeHelper);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction fbDateFormatter() {\n 'ngInject';\n\n return {\n restrict: 'A',\n require: ['ngModel', '?^fbDateTimePicker'],\n link: function link(scope, element, attribute, controllers) {\n var ngModel = controllers[0];\n var datetimepicker = controllers[1];\n\n var dateTimeHelper = new _dateTimeHelper2.default(attribute.format || _dateTimeHelper2.default.defaultDateFormat);\n\n ngModel.$parsers.push(function (val) {\n return dateTimeHelper.parseValue(val);\n });\n ngModel.$formatters.push(function (val) {\n return dateTimeHelper.formatValue(val);\n });\n\n if (datetimepicker) {\n datetimepicker.format = dateTimeHelper.momentFormat;\n // Is this necessary?\n //scope.$watch(ngModel.$modelValue, (newValue /*, oldValue*/) => {\n // datetimepicker.datetime = newValue;\n //});\n datetimepicker.onValueChanged = function (e) {\n if (e.date) {\n ngModel.$setViewValue(e.date.format(dateTimeHelper.momentFormat));\n } else {\n ngModel.$setViewValue();\n }\n };\n }\n }\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/directives/datepicker/dateFormatter.directive.js\n// module id = 707\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _dateTimeHelper = require('./dateTimeHelper');\n\nvar _dateTimeHelper2 = _interopRequireDefault(_dateTimeHelper);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar DatetimepickerController = function () {\n _createClass(DatetimepickerController, null, [{\n key: '$inject',\n get: function get() {\n return ['$element'];\n }\n }]);\n\n function DatetimepickerController($element) {\n var _this = this;\n\n _classCallCheck(this, DatetimepickerController);\n\n this.$element = $element;\n this.$element.on('dp.change', function (e) {\n _this.onValueChanged(e);\n });\n }\n\n _createClass(DatetimepickerController, [{\n key: 'format',\n get: function get() {\n return this.$element.datetimepicker('format');\n },\n set: function set(value) {\n this.$element.datetimepicker('format', _dateTimeHelper2.default.getMomentFormat(value));\n }\n }, {\n key: 'datetime',\n get: function get() {\n return this.$element.datetimepicker('parseInputDate');\n },\n set: function set(value) {\n // Allow this?\n this.$element.datetimepicker('parseInputDate', value);\n }\n }, {\n key: 'onValueChanged',\n get: function get() {\n return this._onValueChanged || function () {};\n },\n set: function set(value) {\n if (typeof value === 'function') {\n this._onValueChanged = value;\n }\n }\n }]);\n\n return DatetimepickerController;\n}();\n\nexports.default = DatetimepickerController;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/directives/datepicker/datetimepicker.controller.js\n// module id = 708\n// module chunks = 0","'use strict';\n\nfbDateTimePicker.$inject = [\"gettextCatalog\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.fbDateTimePicker = fbDateTimePicker;\n\nvar _angular = require('angular');\n\nvar _angular2 = _interopRequireDefault(_angular);\n\nvar _datetimepicker = require('./datetimepicker.controller');\n\nvar _datetimepicker2 = _interopRequireDefault(_datetimepicker);\n\nvar _dateTimeHelper = require('./dateTimeHelper');\n\nvar _dateTimeHelper2 = _interopRequireDefault(_dateTimeHelper);\n\nrequire('moment');\n\nrequire('eonasdan-bootstrap-datetimepicker');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction fbDateTimePicker(gettextCatalog) {\n 'ngInject';\n\n return {\n restrict: 'A',\n controller: _datetimepicker2.default,\n controllerAs: 'vmDatetimepicker',\n link: function link(scope, element, attribute) {\n\n var format = _dateTimeHelper2.default.getMomentFormat(attribute.format || _dateTimeHelper2.default.defaultDateTimeFormat);\n // Check if it is used as an attribute.\n // Added in case we want to extend to element usage\n\n if (attribute.$attr.fbDateTimePicker) {\n _angular2.default.element(element).datetimepicker({\n format: format,\n locale: window.localStorage.getItem('language'),\n icons: {\n time: 'ico ico-time',\n date: 'ico ico-calendar',\n up: 'ico ico-angle-up',\n down: 'ico ico-angle-down',\n previous: 'ico ico-angle-left',\n next: 'ico ico-angle-right',\n today: 'ico ico-target',\n clear: 'ico ico-delete',\n close: 'ico ico-close'\n },\n tooltips: {\n today: gettextCatalog.getString('Go to today', null, 'Datetimepicker tooltips'),\n clear: gettextCatalog.getString('Clear selection', null, 'Datetimepicker tooltips'),\n close: gettextCatalog.getString('Close the picker', null, 'Datetimepicker tooltips'),\n selectMonth: gettextCatalog.getString('Select Month', null, 'Datetimepicker tooltips'),\n prevMonth: gettextCatalog.getString('Previous Month', null, 'Datetimepicker tooltips'),\n nextMonth: gettextCatalog.getString('Next Month', null, 'Datetimepicker tooltips'),\n selectYear: gettextCatalog.getString('Select Year', null, 'Datetimepicker tooltips'),\n prevYear: gettextCatalog.getString('Previous Year', null, 'Datetimepicker tooltips'),\n nextYear: gettextCatalog.getString('Next Year', null, 'Datetimepicker tooltips'),\n selectDecade: gettextCatalog.getString('Select Decade', null, 'Datetimepicker tooltips'),\n prevDecade: gettextCatalog.getString('Previous Decade', null, 'Datetimepicker tooltips'),\n nextDecade: gettextCatalog.getString('Next Decade', null, 'Datetimepicker tooltips'),\n prevCentury: gettextCatalog.getString('Previous Century', null, 'Datetimepicker tooltips'),\n nextCentury: gettextCatalog.getString('Next Century', null, 'Datetimepicker tooltips'),\n incrementHour: gettextCatalog.getString('Increment Hour', null, 'Datetimepicker tooltips'),\n pickHour: gettextCatalog.getString('Pick Hour', null, 'Datetimepicker tooltips'),\n decrementHour: gettextCatalog.getString('Decrement Hour', null, 'Datetimepicker tooltips'),\n incrementMinute: gettextCatalog.getString('Increment Minute', null, 'Datetimepicker tooltips'),\n pickMinute: gettextCatalog.getString('Pick Minute', null, 'Datetimepicker tooltips'),\n decrementMinute: gettextCatalog.getString('Decrement Minute', null, 'Datetimepicker tooltips'),\n incrementSecond: gettextCatalog.getString('Increment Second', null, 'Datetimepicker tooltips'),\n pickSecond: gettextCatalog.getString('Pick Second', null, 'Datetimepicker tooltips'),\n decrementSecond: gettextCatalog.getString('Decrement Second', null, 'Datetimepicker tooltips')\n }\n });\n // Angular magic =-)\n\n // Cleanup tooltip\n element.on('$destroy', function () {\n if (_angular2.default.element(element).data('DateTimePicker')) {\n _angular2.default.element(element).data('DateTimePicker').destroy();\n }\n });\n }\n }\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/directives/datepicker/datetimepicker.directive.js\n// module id = 709\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.fbMaxDateValidator = fbMaxDateValidator;\n\nvar _dateTimeHelper = require('./dateTimeHelper');\n\nvar _dateTimeHelper2 = _interopRequireDefault(_dateTimeHelper);\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction fbMaxDateValidator() {\n 'ngInject';\n\n return {\n restrict: 'A',\n require: 'ngModel',\n link: function link(scope, element, attrs, ngModel) {\n var dateTimeHelper = new _dateTimeHelper2.default(attrs.format || _dateTimeHelper2.default.defaultDateFormat);\n attrs.$observe('fbMaxDate', function () {\n ngModel.$validate();\n });\n\n var compareLevel = 'day';\n\n if (dateTimeHelper.formatHasSeconds) {\n compareLevel = 'second';\n } else if (dateTimeHelper.formatHasMinutes) {\n compareLevel = 'minute';\n } else if (dateTimeHelper.formatHasHours) {\n compareLevel = 'hour';\n }\n\n ngModel.$validators.maxDate = function (modelValue) {\n if (!attrs.fbMaxDate) {\n // consider valid when no value provided\n return true;\n }\n if (ngModel.$isEmpty(modelValue)) {\n // consider empty models to be valid\n return true;\n }\n\n var maxDate = (0, _moment2.default)(attrs.fbMaxDate);\n\n if (!maxDate.isValid()) {\n // consider true when no valid max date provided\n return true;\n }\n\n var val = modelValue;\n if (typeof val === 'string' && val.indexOf('+') !== -1) {\n val = val.substr(0, val.indexOf('+'));\n }\n var dateValue = dateTimeHelper.momentValue(val);\n\n if (!dateValue.isValid()) {\n // consider true when no valid date provided\n return true;\n }\n\n if (dateValue.isSameOrBefore(maxDate, compareLevel)) {\n return true;\n }\n\n // its invalid\n return false;\n };\n }\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/directives/datepicker/maxDateValidator.directive.js\n// module id = 710\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.fbMinDateValidator = fbMinDateValidator;\n\nvar _dateTimeHelper = require('./dateTimeHelper');\n\nvar _dateTimeHelper2 = _interopRequireDefault(_dateTimeHelper);\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction fbMinDateValidator() {\n 'ngInject';\n\n return {\n restrict: 'A',\n require: 'ngModel',\n link: function link(scope, element, attrs, ngModel) {\n\n var dateTimeHelper = new _dateTimeHelper2.default(attrs.format || _dateTimeHelper2.default.defaultDateFormat);\n\n attrs.$observe('fbMinDate', function () {\n ngModel.$validate();\n });\n\n var compareLevel = 'day';\n\n if (dateTimeHelper.formatHasSeconds) {\n compareLevel = 'second';\n } else if (dateTimeHelper.formatHasMinutes) {\n compareLevel = 'minute';\n } else if (dateTimeHelper.formatHasHours) {\n compareLevel = 'hour';\n }\n\n ngModel.$validators.minDate = function (modelValue /*, viewValue*/) {\n if (!attrs.fbMinDate) {\n // consider valid when no value provided\n return true;\n }\n if (ngModel.$isEmpty(modelValue)) {\n // consider empty models to be valid\n return true;\n }\n\n var minDate = (0, _moment2.default)(attrs.fbMinDate);\n\n // if (!minDate.isValid()) {\n // // consider true when no valid min date provided\n // return true;\n // }\n\n var val = modelValue;\n if (typeof val === 'string' && val.indexOf('+') !== -1) {\n val = val.substr(0, val.indexOf('+'));\n }\n var dateValue = (0, _moment2.default)(val);\n\n // if (!dateValue.isValid()) {\n // // consider true when no valid date provided\n // return true;\n // }\n\n if (dateValue.isSameOrAfter(minDate, compareLevel)) {\n return true;\n }\n\n // its invalid\n return false;\n };\n }\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/directives/datepicker/minDateValidator.directive.js\n// module id = 711\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.fancybox = fancybox;\nfunction fancybox() {\n return {\n restrict: 'A',\n link: function link(scope, element, attr) {\n var target = '';\n element.on('click', function (event) {\n event.preventDefault();\n });\n\n target = angular.element(element.find('[fb-fancybox]'));\n target.fancybox({\n margin: [48, 48],\n preload: false,\n //fitToView : true,\n errorTpl: 'The requested content cannot be loaded.
Please try again later.
',\n closeTpl: ''\n });\n\n scope.$on('$destroy', function () {\n target.unbind('click.fb');\n });\n\n if (parseInt(extractIdFromParams(attr.galleryId)) === parseInt(attr.index) + 1) {\n setTimeout(function () {\n element.click();\n });\n }\n\n function extractIdFromParams(urlParams) {\n return urlParams.substring(8);\n }\n }\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/directives/fancybox.js\n// module id = 712\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.fbEnterPressed = fbEnterPressed;\nfunction fbEnterPressed() {\n return {\n restrict: 'A',\n link: function link(scope, elem, attrs) {\n elem.bind('keyup', function (event) {\n if (event.which === 13) {\n scope.$apply(function () {\n scope.$eval(attrs.dbwEnter, { event: event });\n });\n event.preventDefault();\n }\n });\n }\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/directives/fb-enter-pressed.js\n// module id = 713\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.fbErrSrc = fbErrSrc;\nfunction fbErrSrc() {\n return {\n link: function link(scope, element, attrs) {\n element.bind('error', function () {\n if (attrs.src !== attrs.fbErrSrc) {\n attrs.$set('src', attrs.fbErrSrc);\n }\n });\n\n attrs.$observe('ngSrc', function (value) {\n if (!value && attrs.fbErrSrc) {\n attrs.$set('src', attrs.fbErrSrc);\n }\n });\n }\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/directives/fb-err-src.js\n// module id = 714\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.fbFolder = fbFolder;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*\r\n Folder\r\n --------------------------------\r\n \r\n \r\n \r\n\r\n*/\n\nfunction fbFolder() {\n return {\n restrict: 'A',\n scope: {\n target: '@',\n initOpen: '@'\n },\n controller: [\"$scope\", \"$window\", \"$timeout\", \"$element\", \"common\", \"$attrs\", \"Breakpoints\", function controller($scope, $window, $timeout, $element, common, $attrs, Breakpoints) {\n 'ngInject';\n\n var init, toggle, close, isInitiallyOpen, breakpointMatch;\n\n init = function init() {\n if ($scope.target) {\n $element.targetEl = angular.element($scope.target).addClass('folder-content');\n } else {\n $element.targetEl = $element.next().addClass('folder-content');\n }\n\n $element.addClass('folder').on('click', function (e) {\n e.preventDefault();\n toggle();\n });\n $element.targetEl.find('[fb-folder-close]').on('click', function (e) {\n e.preventDefault;\n close();\n });\n // initially closed, use 'init-open' option to open by default\n if (isInitiallyOpen()) {\n toggle();\n }\n };\n\n toggle = function toggle() {\n $element.toggleClass('is-open');\n $element.targetEl.toggleClass('is-open');\n };\n\n close = function close() {\n $element.removeClass('is-open');\n $element.targetEl.removeClass('is-open');\n };\n\n isInitiallyOpen = function isInitiallyOpen() {\n if (!$scope.initOpen) {\n return false;\n }\n return breakpointMatch($scope.initOpen);\n };\n\n breakpointMatch = function breakpointMatch(breakpoint) {\n var bp = breakpoint.split('-')[0];\n var bpRange = breakpoint.split('-')[1];\n var min = 0;\n var max = 99999;\n\n if (bpRange === 'up') {\n min = _lodash2.default.find(Breakpoints, { name: bp }).min;\n } else if (bpRange === 'down') {\n max = _lodash2.default.find(Breakpoints, { name: bp }).max;\n } else if (bpRange === 'only' || bpRange === undefined) {\n min = _lodash2.default.find(Breakpoints, { name: bp }).min;\n max = _lodash2.default.find(Breakpoints, { name: bp }).max;\n }\n\n return $window.innerWidth >= min && $window.innerWidth <= max;\n };\n\n $timeout(function () {\n init();\n });\n }]\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/directives/fb-folder.js\n// module id = 715\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.fbIgnoreForBreadcrumb = fbIgnoreForBreadcrumb;\nfunction fbIgnoreForBreadcrumb() {\n 'ngInject';\n\n return {\n restrict: 'A',\n link: {\n pre: function pre(scope) {\n // This is dirty, but for now the only way.\n scope.ncyBreadcrumbIgnore = true;\n }\n }\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/directives/fb-ignoreForBreadcrumb.js\n// module id = 716\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createInputNumberDirective = createInputNumberDirective;\nfunction createInputNumberDirective(directivesModule) {\n function needsPolyfill() {\n\n ////// Betere check zou zijn: \n ////// https://github.com/jonstipe/number-polyfill/blob/master/number-polyfill.js\n\n ////// i = document.createElement(\"input\");\n ////// i.setAttribute(\"type\", \"number\");\n ////// if (i.type === \"text\") ===> needs polyfill\n\n ////// iets gelijkaardigs om te checken of min, max, steps ondersteund wordt value: bijv. value gelijk zetten aan value kleiner dan min, groter dan max\n ////// iets gelijkaardigs om numerieke content te checken; bijv. value gelijk zetten aan \"a\", als value daarna niet \"a\" is is 't OK\n\n // checks whether we're using an Internet Explorer 10+ or Edge\n //return (\n // !!document.documentMode && !!window.atob // IE10+ without Edge\n //) ||\n // (!!navigator.msLaunchUri // WIN8+\n // && !!window.atob // IE10+, Edge\n // );\n\n return true;\n }\n\n function hasRequiredAttributes(elem, attrs) {\n var isNumberField = elem.attr('type') && elem.attr('type').toLowerCase() === 'number';\n if (!isNumberField) {\n return false;\n }\n\n return !isNaN(parseFloat(attrs.max)) && !isNaN(parseFloat(attrs.min)) && !isNaN(parseFloat(attrs.step));\n }\n\n function createButton(value, modifierHandler) {\n var button = document.createElement('input');\n button.setAttribute('type', 'button');\n button.setAttribute('value', value);\n button.setAttribute('tabindex', '-1');\n var element = angular.element(button);\n element.on('click', modifierHandler);\n return button;\n }\n\n function createContainerDiv() {\n var div = document.createElement('div');\n div.setAttribute('class', 'input-number-container');\n return div;\n }\n\n function createSpan() {\n return document.createElement('span');\n }\n\n function isChildOfOrSame(parent, child) {\n var testElem = child;\n var steps = 3;\n\n for (; steps > 0; --steps) {\n if (!testElem) {\n return false;\n }\n if (parent === testElem) {\n return true;\n }\n testElem = testElem.parentElement;\n }\n\n return false;\n }\n\n if (needsPolyfill()) {\n directivesModule.directive('input', function () {\n return {\n restrict: 'E',\n scope: {},\n require: '?ngModel',\n link: function link(scope, elem, attrs, ngModel) {\n var containerDiv = null;\n var inputElem = elem[0];\n var hiddenRangeInput;\n var hiddenRangeInputJquery;\n var hasMouse;\n\n function hasFocus() {\n return document.activeElement === inputElem;\n }\n\n // function notifyAmountExcedeed(){\n // var newEvent = document.createEvent('HTMLEvents');\n // newEvent.initEvent('amountExcedeed', true, false);\n // inputElem.dispatchEvent(newEvent);\n // }\n\n // stepUp, stepDown in IE work only for the range input type\n function doStep(direction) {\n\n if (elem.attr('readonly') === 'readonly') {\n return;\n }\n\n var value = elem.val();\n var min = attrs.min;\n var max = attrs.max;\n\n if (value !== 0 && !value) {\n if (direction === 'up') {\n value = min;\n } else {\n value = max;\n }\n }\n\n hiddenRangeInput.setAttribute('min', min);\n hiddenRangeInput.setAttribute('max', max);\n hiddenRangeInput.setAttribute('value', value);\n hiddenRangeInput.setAttribute('step', attrs.step);\n\n //elem.after(hiddenRangeInput);\n if (direction === 'up') {\n hiddenRangeInput.stepUp();\n } else {\n hiddenRangeInput.stepDown();\n }\n hiddenRangeInputJquery = angular.element(hiddenRangeInput);\n elem.val(hiddenRangeInputJquery.val());\n\n ngModel.$setViewValue(elem.val() !== undefined ? parseInt(elem.val(), 10) : undefined);\n\n var event = document.createEvent('HTMLEvents');\n event.initEvent('change', true, false);\n inputElem.dispatchEvent(event);\n }\n\n function createButtonClickHandler(direction) {\n return function (event) {\n doStep(direction);\n inputElem.focus();\n event.preventDefault();\n\n return false;\n };\n }\n\n function createContainerWithButtons() {\n if (!hasRequiredAttributes(elem, attrs)) {\n return;\n }\n containerDiv = createContainerDiv();\n var span = createSpan();\n var btnUp = createButton('▴', createButtonClickHandler('up'));\n var btnDown = createButton('▾', createButtonClickHandler('down'));\n hiddenRangeInput = document.createElement('input');\n hiddenRangeInput.setAttribute('type', 'range');\n hiddenRangeInput.setAttribute('style', 'display:none;');\n\n span.appendChild(btnUp);\n span.appendChild(btnDown);\n containerDiv.appendChild(span);\n containerDiv.appendChild(hiddenRangeInput);\n elem.after(containerDiv);\n\n angular.element(containerDiv).on('mouseleave', function (event) {\n if (!event.relatedTarget || event.relatedTarget.parentElement !== inputElem) {\n deleteContainerWithButtons(elem);\n }\n });\n }\n\n function deleteContainerWithButtons() {\n var inputHasFocus = angular.element(elem).is(':focus');\n if (inputHasFocus) {\n return;\n }\n\n if (!containerDiv) {\n return;\n }\n\n hiddenRangeInput = null;\n angular.element(containerDiv).remove();\n containerDiv = null;\n hasMouse = false;\n }\n\n function registerInputElemEventHandler() {\n elem.on('keydown', function (event) {\n if (event.keyCode === 38) {\n doStep('up');\n event.preventDefault();\n } else if (event.keyCode === 40) {\n doStep('down');\n event.preventDefault();\n }\n });\n\n elem.on('keyup', function (event) {\n if (event.keyCode === 16 // shift\n || event.keyCode === 35 // home \n || event.keyCode === 36 // end\n || event.keyCode === 37 // left arrow\n || event.keyCode === 39) {\n //right arrow\n return;\n }\n\n if (event.keyCode !== 38 && event.keyCode !== 40) {\n var value = elem.val();\n hiddenRangeInput.setAttribute('min', attrs.min);\n hiddenRangeInput.setAttribute('max', attrs.max);\n hiddenRangeInput.setAttribute('step', attrs.step);\n\n if (!value) {\n hiddenRangeInput.value = 0;\n } else if (attrs.min && parseInt(value, 10) < parseInt(attrs.min, 10)) {\n hiddenRangeInput.value = parseInt(attrs.min, 10);\n } else if (attrs.max && parseInt(value, 10) > parseInt(attrs.max, 10)) {\n hiddenRangeInput.value = parseInt(attrs.max, 10);\n } else {\n hiddenRangeInput.value = value;\n }\n\n //elem.after(hiddenRangeInput);\n hiddenRangeInputJquery = angular.element(hiddenRangeInput);\n // var hiddenVal = hiddenRangeInputJquery.val();\n elem.val(hiddenRangeInput.value);\n ngModel.$setViewValue(elem.val() !== undefined ? parseInt(elem.val(), 10) : undefined);\n\n var newEvent = document.createEvent('HTMLEvents');\n newEvent.initEvent('change', true, false);\n inputElem.dispatchEvent(newEvent);\n }\n });\n\n elem.on('mouseenter', function () {\n hasMouse = true;\n if (containerDiv === null) {\n createContainerWithButtons();\n }\n });\n\n elem.on('mouseleave', function (event) {\n if (event.relatedTarget && isChildOfOrSame(containerDiv, event.relatedTarget)) {\n return;\n }\n if (hasFocus()) {\n hasMouse = false;\n return;\n }\n deleteContainerWithButtons();\n });\n\n elem.on('focus', function () {\n if (containerDiv === null) {\n createContainerWithButtons();\n }\n });\n\n elem.on('focusout', function () {\n if (hasMouse) {\n return;\n }\n deleteContainerWithButtons();\n });\n }\n\n if (hasRequiredAttributes(elem, attrs)) {\n registerInputElemEventHandler();\n }\n }\n };\n });\n }\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/directives/fb-input-number.js\n// module id = 717\n// module chunks = 0","'use strict';\n\nfbLoadCategories.$inject = [\"$rootScope\", \"common\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.fbLoadCategories = fbLoadCategories;\n/*@ngInject*/\nfunction fbLoadCategories($rootScope, common) {\n return {\n link: function link(scope) {\n if (scope.$last) {\n common.log.info('broadcast categories-loaded event');\n $rootScope.$broadcast('categories-loaded');\n }\n }\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/directives/fb-load-categories.js\n// module id = 718\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.fbPreventKeypress = fbPreventKeypress;\nfunction fbPreventKeypress() {\n return {\n link: function link(scope, element) {\n element.bind('keydown keypress', function (event) {\n if (event.which === 38 || event.which === 40) {\n event.preventDefault();\n }\n });\n }\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/directives/fb-prevent-keypress.js\n// module id = 719\n// module chunks = 0","'use strict';\n\nfbPreventNavigation.$inject = [\"gettextCatalog\", \"$transitions\", \"dialogService\", \"$parse\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.fbPreventNavigation = fbPreventNavigation;\nfunction fbPreventNavigation(gettextCatalog, $transitions, dialogService, $parse) {\n 'ngInject';\n\n return {\n restrict: 'A',\n require: 'form',\n link: function link(scope, element, attribute, form) {\n\n var destroyOnExitHandler = $transitions.onExit({}, function () {\n return !attribute.fbPreventNavigation || !form.$dirty || dialogService.unsavedChanges().then(function () {\n form.$setPristine();\n return true;\n }, function () {\n $parse(attribute.fbOnCloseAction)(scope);\n return false;\n });\n });\n\n // Cleanup\n element.on('$destroy', function () {\n if (destroyOnExitHandler) {\n destroyOnExitHandler();\n }\n });\n }\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/directives/fb-prevent-navigation.js\n// module id = 720\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.fbScrollToTop = fbScrollToTop;\n/*\r\n Scroll to top\r\n -------------------------------- \r\n*/\n\nfunction fbScrollToTop() {\n return {\n restrict: 'A',\n controller: [\"$element\", \"$anchorScroll\", function controller($element, $anchorScroll) {\n 'ngInject';\n\n $element.on('click', function (e) {\n e.preventDefault();\n $anchorScroll(0);\n });\n\n // https://github.com/oblador/angular-scroll\n }]\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/directives/fb-scroll-to-top.js\n// module id = 721\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.fbSetFocus = fbSetFocus;\n/*@ngInject*/\nfunction fbSetFocus() /*$timeout*/{\n return {\n restrict: 'A',\n link: function link(scope, element, attrs) {\n scope.$watch(attrs.fbSetFocus, function (value) {\n if (value === true) {\n //$timeout(function() {\n element[0].focus();\n scope[attrs.fbSetFocus] = false;\n //});\n }\n });\n }\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/directives/fb-set-focus.js\n// module id = 722\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _angular = require('angular');\n\nvar _angular2 = _interopRequireDefault(_angular);\n\nvar _fbFolder = require('./fb-folder');\n\nvar _fbInputNumber = require('./fb-input-number');\n\nvar _fancybox = require('./fancybox');\n\nvar _fbErrSrc = require('./fb-err-src');\n\nvar _fbLoadCategories = require('./fb-load-categories');\n\nvar _fbPreventKeypress = require('./fb-prevent-keypress');\n\nvar _fbScrollToTop = require('./fb-scroll-to-top');\n\nvar _fbSetFocus = require('./fb-set-focus');\n\nvar _testContext = require('./test-context');\n\nvar _fbIgnoreForBreadcrumb = require('./fb-ignoreForBreadcrumb');\n\nvar _fbEnterPressed = require('./fb-enter-pressed');\n\nvar _datetimepicker = require('./datepicker/datetimepicker.directive');\n\nvar _dateFormatter = require('./datepicker/dateFormatter.directive');\n\nvar _fbPreventNavigation = require('./fb-prevent-navigation');\n\nvar _maxDateValidator = require('./datepicker/maxDateValidator.directive');\n\nvar _minDateValidator = require('./datepicker/minDateValidator.directive');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _module = _angular2.default.module('app.directives', []).directive('fbFancybox', _fancybox.fancybox).directive('fbFolder', _fbFolder.fbFolder).directive('fbErrSrc', _fbErrSrc.fbErrSrc).directive('fbLoadCategories', _fbLoadCategories.fbLoadCategories).directive('fbPreventKeypress', _fbPreventKeypress.fbPreventKeypress).directive('fbScrollToTop', _fbScrollToTop.fbScrollToTop).directive('fbSetFocus', _fbSetFocus.fbSetFocus).directive('testContext', _testContext.testContext).directive('fbIgnoreForBreadcrumb', _fbIgnoreForBreadcrumb.fbIgnoreForBreadcrumb).directive('fbEnterPressed', _fbEnterPressed.fbEnterPressed).directive('fbDateTimePicker', _datetimepicker.fbDateTimePicker).directive('fbPreventNavigation', _fbPreventNavigation.fbPreventNavigation).directive('fbMaxDate', _maxDateValidator.fbMaxDateValidator).directive('fbMinDate', _minDateValidator.fbMinDateValidator).directive('fbDateFormatter', _dateFormatter.fbDateFormatter);\n\n(0, _fbInputNumber.createInputNumberDirective)(_module);\n\nexports.default = _module.name;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/directives/index.js\n// module id = 723\n// module chunks = 0","'use strict';\n\ntestContext.$inject = [\"config\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.testContext = testContext;\n/*@ngInject*/\nfunction testContext(config) {\n return {\n restrict: 'A',\n controllerAs: 'vm',\n compile: function compile(elem) {\n if (!config.enableTests) {\n elem.removeAttr();\n } else {\n return {\n post: function post(scope, element, attribute) {\n element.addClass(('fb-tst-' + attribute.testContext).toLowerCase());\n }\n };\n }\n }\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/directives/test-context.js\n// module id = 724\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _angular = require('angular');\n\nvar _angular2 = _interopRequireDefault(_angular);\n\nvar _yesNoFilter = require('./yesNoFilter');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _module = _angular2.default.module('app.filters', []).filter('yesNo', _yesNoFilter.yesNoFilter);\n\nexports.default = _module.name;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/filters/index.js\n// module id = 725\n// module chunks = 0","'use strict';\n\nyesNoFilter.$inject = [\"gettextCatalog\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.yesNoFilter = yesNoFilter;\n/*@ngInject*/\nfunction yesNoFilter(gettextCatalog) {\n return function (input) {\n return input ? gettextCatalog.getString('yes') : gettextCatalog.getString('no');\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/filters/yesNoFilter.js\n// module id = 726\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.addedToCartInfo = addedToCartInfo;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction addedToCartInfo() {\n var clazz = function AddedToCartInfo() {\n var defaults = {\n isInCart: false,\n productName: '',\n productImagePath: '',\n productQuantity: 0,\n productTotalPrice: 0,\n productTotalDiscount: 0,\n cartTotalPrice: 0,\n cartTotalDiscount: 0,\n quantityToAddForHighestDiscount: 0,\n highestDiscountPercentage: 0,\n discountName: '',\n discountImagePath: '',\n displayName: '',\n image: ''\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n _lodash2.default.extend(clazz.prototype, {});\n\n clazz.create = function (resource) {\n var obj = new clazz();\n\n obj.productName = resource.productName;\n obj.productImagePath = resource.productImagePath;\n obj.productQuantity = resource.quantity;\n obj.productTotalPrice = resource.productTotalPriceExclVat;\n obj.productTotalDiscount = resource.productTotalDiscount;\n obj.cartTotalPrice = resource.shoppingCartTotalPrice;\n obj.cartTotalDiscount = resource.shoppingCartTotalDiscountAmount ? resource.shoppingCartTotalDiscountAmount : resource.totalDiscount;\n obj.cartTotalProductQuantity = resource.shoppingCartTotalProductQuantity;\n obj.quantityToAddForHighestDiscount = resource.quantityToAddForHighestDiscount;\n obj.highestDiscountPercentage = resource.highestDiscountPercentage;\n obj.discountName = resource.discountName;\n obj.discountImagePath = resource.discountImagePath;\n obj.image = obj.discountImagePath || obj.productImagePath;\n obj.displayName = obj.discountName || obj.productName;\n\n return obj;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/addedToCartInfoModel.js\n// module id = 727\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.address = address;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction address() {\n var clazz = function Address() {\n var defaults = {\n streetName: '',\n houseNumber: '',\n boxNumber: '',\n streetName2: '',\n postalCode: '',\n cityName: '',\n countryName: '',\n addressLine1: '',\n addressLine2: '',\n postalCodeAndCity: ''\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n clazz.create = function (resource) {\n var o = new clazz();\n o.streetName = resource.streetName;\n o.houseNumber = resource.houseNumber || '';\n o.boxNumber = resource.boxNumber || '';\n o.streetName2 = resource.streetName2 || '';\n o.postalCode = resource.postalCode || '';\n o.cityName = resource.cityName || '';\n o.countryName = resource.countryName || '';\n o.addressLine1 = o.streetName + ' ' + o.houseNumber + ' ' + o.boxNumber;\n o.addressLine1 = o.addressLine1.trim();\n o.addressLine2 = o.streetName2.trim();\n o.postalCodeAndCity = o.postalCode + ' ' + o.cityName;\n o.postalCodeAndCity = o.postalCodeAndCity.trim();\n return o;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/addressModel.js\n// module id = 728\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.brand = brand;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction brand() {\n var clazz = function Brand() {\n var defaults = {\n id: 0,\n name: ''\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n clazz.create = function (resource) {\n var brand = new clazz();\n brand.id = resource.id;\n brand.name = resource.name;\n return brand;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/brandModel.js\n// module id = 729\n// module chunks = 0","'use strict';\n\ncartDisabledSeller.$inject = [\"CartErrorMessage\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.cartDisabledSeller = cartDisabledSeller;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction cartDisabledSeller(CartErrorMessage) {\n var clazz = function CartDisabledSeller() {\n var defaults = {\n id: 0,\n name: '',\n displayName: '',\n minOrderPriceExclVat: '',\n totalPriceWithDiscount: null,\n errorMessages: null\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n clazz.create = function (resource) {\n var o = new clazz();\n o.id = resource.sellerId;\n o.sellerCodeId = resource.sellerCodeId;\n o.name = resource.name;\n o.minOrderPriceExclVat = resource.minOrderPriceExclVat;\n\n o.totalPriceWithDiscount = resource.totalPriceWithDiscount;\n o.errorMessages = _lodash2.default.map(resource.errorMessages, function (i) {\n return CartErrorMessage.create(i);\n });\n o.displayName = resource.displayName;\n return o;\n };\n\n clazz.createFromLocalStorage = function (resource) {\n var o = new clazz();\n o.id = resource.sellerId;\n o.sellerCodeId = resource.sellerCodeId;\n o.name = resource.name;\n o.minOrderPriceExclVat = resource.minOrderPriceExclVat;\n\n o.totalPriceWithDiscount = resource.totalPriceWithDiscount;\n o.errorMessages = _lodash2.default.map(resource.errorMessages, function (i) {\n return CartErrorMessage.create(i);\n });\n o.displayName = resource.displayName;\n return o;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/cartDisabledSellerModel.js\n// module id = 730\n// module chunks = 0","'use strict';\n\ncartDraft.$inject = [\"Product\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.cartDraft = cartDraft;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction cartDraft(Product) {\n var clazz = function CartDraft() {\n var defaults = {\n products: [],\n vatList: [],\n numberOfProducts: 0,\n totalPriceWithoutDiscount: 0,\n totalDiscount: 0,\n totalPriceWithDiscount: 0\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n _lodash2.default.extend(clazz.prototype, {\n\n addProduct: function addProduct(product) {\n // when the product is already in the cart, then just update the quantity\n var productInList = _lodash2.default.find(this.products, { id: product.id });\n if (!productInList) {\n product.isInCart = true;\n this.products.push(product);\n this.updateTotals();\n } else {\n var newQuantity = productInList.quantity + product.quantity;\n this.changeQuantity(product.id, newQuantity);\n }\n },\n\n removeProduct: function removeProduct(productId) {\n _lodash2.default.remove(this.products, { id: productId });\n this.updateTotals();\n },\n\n updateTotals: function updateTotals() {\n var product = null;\n var numberOfProducts = 0;\n var totalPriceWithoutDiscount = 0;\n var totalDiscount = 0;\n var totalPriceWithDiscount = 0;\n\n for (var i = 0; i < this.products.length; i++) {\n product = this.products[i];\n numberOfProducts += product.quantity;\n totalPriceWithoutDiscount += product.totalPriceWithoutDiscount;\n totalDiscount += product.totalDiscount;\n totalPriceWithDiscount += product.totalPriceWithDiscount;\n }\n\n this.numberOfProducts = numberOfProducts;\n this.totalPriceWithoutDiscount = totalPriceWithoutDiscount;\n this.totalDiscount = totalDiscount;\n this.totalPriceWithDiscount = totalPriceWithDiscount;\n this.vatList = this.getVatList();\n },\n\n getVatList: function getVatList() {\n var vatList = [];\n var thisCart = this;\n\n angular.forEach(this.products, function (p) {\n thisCart.addVat(vatList, p);\n });\n\n return vatList;\n },\n\n addVat: function addVat(vatList, product) {\n var vat = product.tax;\n var vatItem = _lodash2.default.find(vatList, { 'pct': vat });\n var vatAmount = product.totalPriceWithoutDiscount * vat / 100;\n if (!vatItem) {\n vatList.push({ 'pct': vat, 'amount': vatAmount });\n } else {\n vatItem.amount += vatAmount;\n }\n },\n\n changeQuantity: function changeQuantity(productId, quantity) {\n var product = _lodash2.default.find(this.products, { id: productId });\n if (!product) {\n return;\n }\n\n product.quantity = quantity;\n product.updateTotals();\n this.updateTotals();\n }\n });\n\n clazz.create = function (resource) {\n var cart = new clazz();\n\n cart.products = [];\n angular.forEach(resource.products, function (productResource) {\n var product = Product.getClass().createFromLocalStorage(productResource, null, null, productResource.type, false);\n cart.products.push(product);\n });\n\n cart.numberOfProducts = resource.numberOfProducts;\n cart.totalPriceWithoutDiscount = resource.totalPriceWithoutDiscount;\n cart.totalDiscount = resource.totalDiscount;\n cart.totalPriceWithDiscount = resource.totalPriceWithDiscount;\n cart.vatList = cart.getVatList();\n\n return cart;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/cartDraftModel.js\n// module id = 731\n// module chunks = 0","'use strict';\n\ncartErrorMessage.$inject = [\"common\", \"CartMessageTypes\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.cartErrorMessage = cartErrorMessage;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction cartErrorMessage(common, CartMessageTypes) {\n var clazz = function CartErrorMessage() {\n var defaults = {\n id: 0,\n message: '',\n type: 0, // 0 = info, 1 = warning, 2 = disabled, 3 = blocking\n isMessageActive: false,\n canDisableMessage: false,\n isProductDisabled: false\n\n // when disabled, product is shown, cart can be ordered\n // when blocking, cart cannot be ordered\n // canDisable => show 'deactivate message' button\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n _lodash2.default.extend(clazz.prototype, {});\n\n clazz.create = function (resource) {\n var o = new clazz();\n o.id = resource.id;\n o.message = resource.message;\n o.type = common.serverTypes.getClientValue(CartMessageTypes, resource.type);\n if (o.type === 'disabled') {\n o.type = 'error';\n }\n o.isMessageActive = !!resource.active;\n o.canDisableMessage = !!resource.canDisable;\n o.isProductDisabled = resource.type === 2;\n o.code = resource.code;\n return o;\n };\n\n clazz.createFromLocalStorage = function (resource) {\n var o = new clazz();\n o.message = resource.message;\n o.type = resource.type;\n o.isMessageActive = resource.isMessageActive;\n o.canDisableMessage = resource.canDisableMessage;\n o.isProductDisabled = resource.isProductDisabled;\n o.code = resource.code;\n return o;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/cartErrorMessageModel.js\n// module id = 732\n// module chunks = 0","'use strict';\n\ncart.$inject = [\"CartSeller\", \"CartDisabledSeller\", \"Totals\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.cart = cart;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction cart(CartSeller, CartDisabledSeller, Totals) {\n var clazz = function Cart() {\n var defaults = {\n sellers: [],\n disabledSellers: [],\n totals: null,\n canCheckout: false,\n isEmpty: true,\n totalPriceDiscounts: []\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n _lodash2.default.extend(clazz.prototype, {\n updateAfterSetQuantity: function updateAfterSetQuantity(updatedCart, products) {\n var _this = this;\n\n products.forEach(function (product) {\n var productAndSeller = _this.getProductAndSeller(product.id, product.discountId);\n if (!productAndSeller.product) {\n return;\n }\n\n productAndSeller.seller.updateAfterSetQuantity(updatedCart, product);\n productAndSeller.product.updateAfterSetQuantity(updatedCart, product);\n });\n\n this.totals.updateAfterSetQuantity(updatedCart.totals);\n this.isEmpty = !this.sellers || this.sellers.length <= 0;\n this.canCheckout = updatedCart.canCheckout;\n },\n\n updateAfterRemove: function updateAfterRemove(updatedCart, sellerId, product) {\n var sellerToUpdate = _lodash2.default.find(this.sellers, function (s) {\n return _lodash2.default.some(s.products, function (p) {\n return p.id === product.id && p.discountId === product.discountId;\n });\n });\n if (!sellerToUpdate) {\n return;\n }\n\n var sellerInUpdatedCart = _lodash2.default.find(updatedCart.sellers, function (s) {\n return s.id === sellerId;\n });\n if (sellerInUpdatedCart) {\n sellerToUpdate.updateAfterRemove(sellerInUpdatedCart, product);\n } else {\n _lodash2.default.remove(this.sellers, function (s) {\n return s.id === sellerId;\n });\n }\n\n this.totals.updateAfterSetQuantity(updatedCart.totals);\n this.isEmpty = !this.sellers || this.sellers.length <= 0;\n this.canCheckout = updatedCart.canCheckout;\n },\n\n setFocusOnProduct: function setFocusOnProduct(productId) {\n if (!productId) {\n return;\n }\n\n productId = parseInt(productId);\n\n var seller = _lodash2.default.find(this.sellers, function (s) {\n return _lodash2.default.some(s.products, function (p) {\n return p.id === productId;\n });\n });\n if (!seller) {\n return;\n }\n\n var product = _lodash2.default.find(seller.products, function (p) {\n return p.id === productId;\n });\n if (!product) {\n return;\n }\n\n product.hasFocus = true;\n },\n\n isProductInCart: function isProductInCart(product) {\n return _lodash2.default.some(this.sellers, function (s) {\n return _lodash2.default.some(s.products, function (p) {\n return p.id === product.id || p.discountId === product.discountId;\n });\n });\n },\n\n getProductQuantity: function getProductQuantity(productId, discountId) {\n var productAndSeller = this.getProductAndSeller(productId, discountId);\n return productAndSeller.product ? productAndSeller.product.quantity : 0;\n },\n\n getIncludedProductQuantity: function getIncludedProductQuantity(parentProduct, includedProduct) {\n var productAndSeller = this.getProductAndSeller(parentProduct.id, parentProduct.discountId);\n if (!productAndSeller.product) {\n return 0;\n }\n\n var incProduct = _lodash2.default.find(productAndSeller.product.included_products, function (i) {\n return i.id === includedProduct.id;\n });\n return incProduct ? incProduct.quantity : 0;\n },\n\n getProductAndSeller: function getProductAndSeller(productId, discountId) {\n var seller = _lodash2.default.find(this.sellers, function (s) {\n return _lodash2.default.some(s.products, function (p) {\n return p.id === productId && (p.discountId || 0) === (discountId || 0);\n });\n });\n if (!seller) {\n return { seller: null, product: null };\n }\n\n var product = _lodash2.default.find(seller.products, function (p) {\n return p.id === productId && (p.discountId || 0) === (discountId || 0);\n });\n return { seller: seller, product: product };\n },\n\n getPanaceeProductInCart: function getPanaceeProductInCart(productId, discountId) {\n var productAndSeller = this.getProductAndSeller(productId, discountId);\n if (!productAndSeller.product) {\n return null;\n }\n\n return productAndSeller.product;\n }\n });\n\n clazz.create = function (resource) {\n var o = new clazz();\n o.sellers = _lodash2.default.map(resource.sellers, function (i) {\n return CartSeller.create(i, resource.products);\n });\n o.disabledSellers = _lodash2.default.map(resource.disabledSellers, function (i) {\n return CartDisabledSeller.create(i, resource.products);\n });\n o.totals = Totals.create(resource);\n o.canCheckout = resource.canCheckout;\n o.isEmpty = !o.sellers || o.sellers.length <= 0;\n o.errors = resource.errorMessages;\n o.totalPriceDiscounts = resource.totalPriceDiscounts;\n return o;\n };\n\n clazz.createFromLocalStorage = function (resource) {\n var o = new clazz();\n o.errors = resource.errorMessages;\n o.sellers = _lodash2.default.map(resource.sellers, function (i) {\n return CartSeller.createFromLocalStorage(i);\n });\n o.disabledSellers = _lodash2.default.map(resource.disabledSellers, function (i) {\n return CartDisabledSeller.createFromLocalStorage(i);\n });\n o.totals = Totals.createFromLocalStorage(resource);\n o.canCheckout = resource.canCheckout;\n o.isEmpty = !o.sellers || o.sellers.length <= 0;\n o.totalPriceDiscounts = resource.totalPriceDiscounts;\n return o;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/cartModel.js\n// module id = 733\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.cartProduct = cartProduct;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction cartProduct() {\n var clazz = function CartProduct() {\n var defaults = {\n id: 0,\n amount: 0,\n productNumber: '',\n discountAmount: 0,\n discountId: 0,\n discountPercentage: 0,\n discountPromoCode: null,\n discountValueTypeSymbol: null,\n grossProfit: 0,\n totalPriceDiscountId: 0,\n grossProfitAmount: 0,\n cartProduct: []\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n _lodash2.default.extend(clazz.prototype, {\n\n getCartFields: function getCartFields(product, cartProducts) {\n var this_ = this;\n\n //find the product in the shoppingcart\n var productSearch = cartProducts.find(function (x) {\n if (this_.nationalNumber) {\n return x.productNumber === this_.nationalNumber;\n } else {\n return x.id === this_.id;\n }\n });\n\n //set the fields from the value from the products that are already in the cart\n if (productSearch) {\n product.discountPct = productSearch.discountPercentage;\n product.promocode = productSearch.discountPromoCode;\n product.totalDiscount = productSearch.discountAmount;\n product.quantity = productSearch.amount;\n\n productSearch.productWithPossibleDiscounts.map(function (discount) {\n product.activeDiscountIds.push(discount.discountIds);\n product.totalPriceDiscountIds.push(discount.totalPriceDiscountId);\n });\n }\n return product;\n }\n\n });\n\n clazz.create = function (resource) {\n var cartProduct = new clazz();\n cartProduct.id = resource.id;\n cartProduct.amount = resource.amount;\n cartProduct.productNumber = resource.productNumber;\n cartProduct.discountAmount = resource.discountAmount;\n cartProduct.discountId = resource.discountId;\n cartProduct.discountPercentage = resource.discountPercentage;\n cartProduct.discountPromoCode = resource.discountPromoCode;\n cartProduct.discountValueTypeSymbol = resource.discountValueTypeSymbol;\n cartProduct.grossProfit = resource.grossProfit;\n cartProduct.totalPriceDiscountId = resource.totalPriceDiscountId;\n cartProduct.totalPriceDiscountPromoCode = resource.totalPriceDiscountPromoCode;\n cartProduct.grossProfitAmount = resource.grossProfitAmount;\n cartProduct.productWithPossibleDiscounts = resource.productWithPossibleDiscounts;\n\n resource.productWithPossibleDiscounts;\n\n return cartProduct;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/cartProduct.js\n// module id = 734\n// module chunks = 0","'use strict';\n\ncartSeller.$inject = [\"CartSellerProduct\", \"Totals\", \"CartErrorMessage\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.cartSeller = cartSeller;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction cartSeller(CartSellerProduct, Totals, CartErrorMessage) {\n var clazz = function CartSeller() {\n var defaults = {\n id: 0,\n name: '',\n sellerCodeName: '',\n displayName: '',\n products: [],\n minOrderPriceExclVat: '',\n totals: null,\n errorMessages: null,\n sellerCodeId: 0,\n isVipSeller: false,\n protocolName: '',\n deliveryPartnerName: '',\n promoMessages: []\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n _lodash2.default.extend(clazz.prototype, {\n updateAfterSetQuantity: function updateAfterSetQuantity(updatedCart, product) {\n var sellerInUpdatedCart = _lodash2.default.find(updatedCart.sellers, function (s) {\n return _lodash2.default.some(s.products, function (p) {\n return p.id === product.id && p.discountId === product.discountId;\n });\n });\n if (!sellerInUpdatedCart) {\n return;\n }\n\n this.totals.updateAfterSetQuantity(sellerInUpdatedCart.totals);\n this.errorMessages = sellerInUpdatedCart.errorMessages;\n },\n updateAfterRemove: function updateAfterRemove(sellerInUpdatedCart, product) {\n _lodash2.default.remove(this.products, function (p) {\n return p.id === product.id && p.discountId === product.discountId;\n });\n this.totals.updateAfterSetQuantity(sellerInUpdatedCart.totals);\n this.errorMessages = sellerInUpdatedCart.errorMessages;\n }\n });\n\n clazz.create = function (resource, products) {\n var o = new clazz();\n o.id = resource.sellerId;\n o.sellerCodeId = resource.sellerCodeId;\n o.name = resource.name;\n o.sellerCodeName = resource.sellerCodeName;\n o.isVipSeller = resource.isVipSeller;\n o.protocolName = resource.protocolName;\n o.deliveryPartnerName = resource.deliveryPartnerName;\n o.prefix = resource.prefix;\n o.canOrderSpecial = resource.canOrderSpecial;\n\n if (products) {\n o.products = products.filter(function (product) {\n o.minOrderPriceExclVat = resource.minOrderPriceExclVat;\n return product.sellerId === resource.sellerCodeId;\n });\n o.products = _lodash2.default.map(o.products, function (i) {\n return CartSellerProduct.create(i);\n });\n }\n\n o.totals = Totals.create(resource);\n o.errorMessages = _lodash2.default.map(resource.errorMessages, function (i) {\n return CartErrorMessage.create(i);\n });\n o.displayName = resource.displayName;\n o.promoMessages = resource.promoMessages;\n\n // if (resource.name !== resource.sellerCodeName) {\n // resource.onlyOneSellerCode ? o.name : o.displayName += ' - ' + resource.sellerCodeName;\n // }\n return o;\n };\n\n clazz.createFromLocalStorage = function (resource) {\n var o = new clazz();\n o.id = resource.id;\n o.sellerCodeId = resource.sellerCodeId;\n o.name = resource.name;\n o.sellerCodeName = resource.sellerCodeName;\n o.displayName = resource.displayName;\n o.products = _lodash2.default.map(resource.products, function (i) {\n return CartSellerProduct.createFromLocalStorage(i);\n });\n o.totals = Totals.createFromLocalStorage(resource);\n o.errorMessages = _lodash2.default.map(resource.errorMessages, function (i) {\n return CartErrorMessage.createFromLocalStorage(i);\n });\n o.isVipSeller = resource.isVipSeller;\n o.protocolName = resource.protocolName;\n o.deliveryPartnerName = resource.deliveryPartnerName;\n o.minOrderPriceExclVat = resource.minOrderPriceExclVat;\n return o;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/cartSellerModel.js\n// module id = 735\n// module chunks = 0","'use strict';\n\ncartSellerProduct.$inject = [\"common\", \"textBuilder\", \"CartErrorMessage\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.cartSellerProduct = cartSellerProduct;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction cartSellerProduct(common, textBuilder, CartErrorMessage) {\n var clazz = function CartSellerProduct() {\n var defaults = {\n id: 0,\n type: '',\n image: '',\n name: '',\n discountName: '',\n discountImagePath: '',\n displayName: '',\n displayImage: '',\n description: '',\n productNumber: '',\n promocode: '',\n discountId: 0,\n discountType: '',\n quantity: 0,\n initialQuantity: 0,\n unitPrice: 0,\n unitPriceWithDiscount: 0,\n discountPct: 0,\n discountAmount: 0,\n vatPct: 0,\n vatAmount: 0,\n totalPriceWithDiscount: 0,\n totalPrice: 0,\n discountRanges: null,\n daysLeftUntilDiscountExpires: 0,\n included_products: [],\n grossProfitPercentage: 0,\n grossProfitPercentageWithoutDiscount: 0,\n grossProfitAmount: 0,\n errorMessages: null,\n // calculated fields\n quantityToAddForHighestDiscount: 0,\n productNumberAndPromo: '',\n isDisabled: false,\n createdOn: null,\n lowestDiscount: 0\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n _lodash2.default.extend(clazz.prototype, {\n updateAfterSetQuantity: function updateAfterSetQuantity(updatedCart, product) {\n var sellerInUpdatedCart = _lodash2.default.find(updatedCart.sellers, function (s) {\n return _lodash2.default.some(s.products, function (p) {\n return p.id === product.id && p.discountId === product.discountId;\n });\n });\n if (!sellerInUpdatedCart) {\n return;\n }\n\n var productInUpdatedCart = _lodash2.default.find(sellerInUpdatedCart.products, function (p) {\n return p.id === product.id && p.discountId === product.discountId;\n });\n if (!productInUpdatedCart) {\n return;\n }\n\n this.unitPriceWithDiscount = productInUpdatedCart.unitPriceWithDiscount;\n this.totalPriceWithDiscount = productInUpdatedCart.totalPriceWithDiscount;\n this.discountPct = productInUpdatedCart.discountPct;\n this.discountAmount = productInUpdatedCart.discountAmount;\n this.totalPrice = this.totalPriceWithDiscount + this.discountAmount;\n\n // Also set quantityToAddForHighestDiscount and highestDiscount\n this.highestDiscount = this.getHighestDiscount();\n this.quantityToAddForHighestDiscount = this.getQuantityToAddForHighestDiscount();\n this.initialQuantity = this.quantity;\n\n this.errorMessages = productInUpdatedCart.errorMessages;\n },\n\n getLowestDiscount: function getLowestDiscount() {\n if (!this.discountRanges || this.discountRanges.length <= 0) {\n return null;\n }\n\n return this.discountRanges[this.discountRanges.length - 1];\n },\n\n getHighestDiscount: function getHighestDiscount() {\n if (!this.discountRanges || this.discountRanges.length <= 0) {\n return null;\n }\n\n return this.discountRanges[0];\n },\n\n getQuantityToAddForHighestDiscount: function getQuantityToAddForHighestDiscount() {\n var highestDiscount = this.getHighestDiscount();\n if (!highestDiscount) {\n return;\n }\n\n return highestDiscount.from > this.quantity ? highestDiscount.from - this.quantity : 0;\n },\n\n removeMessage: function removeMessage(id) {\n _lodash2.default.remove(this.errorMessages, { id: id });\n }\n });\n\n clazz.create = function (resource) {\n var o = new clazz();\n o.id = resource.productId;\n o.type = common.serverTypes.getProductType(resource.productTypeCode);\n o.image = resource.productImagePath;\n o.name = resource.name;\n o.discountName = resource.discountName;\n o.discountImagePath = resource.discountImagePath;\n o.description = resource.description;\n o.productNumber = resource.productNumber;\n o.promocode = resource.promocode;\n o.discountId = resource.discountId;\n o.discountType = resource.discountType;\n o.quantity = resource.quantity;\n o.initialQuantity = o.quantity;\n o.portalContractTypeCode = resource.portalContractTypeCode;\n o.unitPrice = resource.unitPrice;\n o.unitPriceWithDiscount = resource.unitPriceWithDiscount;\n o.discountPct = resource.discountPct;\n o.discountAmount = resource.discountAmount;\n o.vatPct = resource.tax ? resource.tax.taxPercentage : 0;\n o.vatAmount = resource.tax ? resource.tax.amount : 0;\n o.totalPriceWithDiscount = resource.totalPriceWithDiscount;\n o.totalPrice = o.totalPriceWithDiscount + o.discountAmount;\n o.discountRanges = _lodash2.default.map(resource.discountRanges, function (i) {\n return { from: i.from, discount: i.discount, symbol: i.discountValueTypeSymbol };\n });\n o.daysLeftUntilDiscountExpires = resource.daysLeftUntilDiscountExpires;\n o.createdOn = resource.createdOn;\n o.maxDiscount = resource.maxDiscount;\n o.isExpired = resource.isExpired;\n o.totalPriceDiscount = resource.totalPriceDiscount;\n o.totalPriceDiscountPct = resource.totalPriceDiscountPct;\n o.totalPriceDiscountId = resource.totalPriceDiscountId;\n o.retroactive = resource.retroactive;\n o.allowSpecial = resource.allowSpecial;\n o.grossProfitAmount = resource.grossProfitAmount;\n\n if (resource.panaceeContent && resource.panaceeContent.length > 0) {\n o.included_products = _lodash2.default.map(resource.panaceeContent, function (i) {\n return {\n id: i.productId,\n name: i.displayName,\n quantity: i.quantity,\n productNumber: i.productNumber\n };\n });\n }\n\n if (resource.promoPackContent && resource.promoPackContent.length > 0) {\n o.included_products = _lodash2.default.map(resource.promoPackContent, function (i) {\n return {\n id: i.productId,\n name: i.displayName,\n quantity: i.quantity,\n productNumber: i.productNumber\n };\n });\n }\n\n o.lowestDiscount = o.getLowestDiscount();\n o.highestDiscount = o.getHighestDiscount();\n o.quantityToAddForHighestDiscount = o.getQuantityToAddForHighestDiscount();\n o.productNumberAndPromo = textBuilder.getProductNumberAndPromo(o.productNumber, o.promocode);\n o.errorMessages = _lodash2.default.map(resource.errorMessages, function (i) {\n return CartErrorMessage.create(i);\n });\n o.isDisabled = _lodash2.default.some(o.errorMessages, function (i) {\n return i.isProductDisabled;\n });\n o.displayName = o.discountType === 'PANACEE' || o.discountType === 'PORTALPRODUCT' ? o.name : o.discountName || o.name;\n o.displayImage = o.discountImagePath || o.image;\n o.grossProfitPercentage = (resource.grossProfitPercentage * 100).toFixed(0);\n o.grossProfitPercentageWithoutDiscount = (resource.grossProfitPercentageWithoutDiscount * 100).toFixed(0);\n o.totalPriceDiscountPromoCode = resource.totalPriceDiscountPromoCode;\n return o;\n };\n\n clazz.createFromLocalStorage = function (resource) {\n var o = new clazz();\n o.id = resource.id;\n o.type = resource.type;\n o.image = resource.image;\n o.name = resource.name;\n o.discountName = resource.discountName;\n o.discountImagePath = resource.discountImagePath;\n o.description = resource.description;\n o.productNumber = resource.productNumber;\n o.promocode = resource.promocode;\n o.productNumberAndPromo = resource.productNumberAndPromo;\n o.discountId = resource.discountId;\n o.quantity = resource.quantity;\n o.initialQuantity = o.quantity;\n o.unitPrice = resource.unitPrice;\n o.unitPriceWithDiscount = resource.unitPriceWithDiscount;\n o.discountPct = resource.discountPct;\n o.discountAmount = resource.discountAmount;\n o.vatPct = resource.vatPct;\n o.vatAmount = resource.vatAmount;\n o.totalPriceWithDiscount = resource.totalPriceWithDiscount;\n o.totalPrice = resource.totalPrice;\n o.discountRanges = resource.discountRanges;\n o.daysLeftUntilDiscountExpires = resource.daysLeftUntilDiscountExpires;\n o.included_products = resource.included_products;\n o.createdOn = resource.createdOn;\n o.maxDiscount = resource.maxDiscount;\n o.portalContractTypeCode = resource.portalContractTypeCode;\n o.allowSpecial = resource.allowSpecial;\n o.lowestDiscount = o.getLowestDiscount();\n o.highestDiscount = o.getHighestDiscount();\n o.quantityToAddForHighestDiscount = o.getQuantityToAddForHighestDiscount();\n o.errorMessages = _lodash2.default.map(resource.errorMessages, function (i) {\n return CartErrorMessage.createFromLocalStorage(i);\n });\n o.isDisabled = resource.isDisabled;\n o.displayName = o.discountName || o.name;\n o.displayImage = o.discountImagePath || o.image;\n\n return o;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/cartSellerProductModel.js\n// module id = 736\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.category = category;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction category() {\n var clazz = function Category() {\n var defaults = {\n id: 0,\n name: '',\n parentCategoryId: null,\n parents: []\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n clazz.create = function (resource) {\n var category = new clazz();\n category.id = resource.id;\n category.name = resource.name;\n category.parentCategoryId = resource.parentCategoryId;\n category.parents = resource.parents;\n return category;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/categoryModel.js\n// module id = 737\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.categoryWithSubcategories = categoryWithSubcategories;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction categoryWithSubcategories() {\n // prodFactory and getClass are created to be able to use the CategoryModel recursively\n var prodFactory = {\n getClass: function getClass() {\n\n var clazz = function CategoryWithSubcategories() {\n var defaults = {\n id: 0,\n name: '',\n subcategories: null\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n clazz.create = function (resource) {\n var category = new clazz();\n category.id = resource.Id;\n category.name = resource.Name;\n\n category.subcategories = null;\n if (resource.Subcategories && resource.Subcategories.length > 0) {\n category.subcategories = [];\n for (var i = 0; i < resource.Subcategories.length; i++) {\n var cat = prodFactory.getClass().create(resource.Subcategories[i]);\n category.subcategories.push(cat);\n }\n }\n\n return category;\n };\n\n return clazz;\n }\n };\n\n return prodFactory;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/categoryWithSubcategoriesModel.js\n// module id = 738\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.certificateItem = certificateItem;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction certificateItem() {\n var clazz = function CertificateItem() {\n var defaults = {\n id: null,\n productId: 0,\n filename: '',\n productNumber: '',\n productName: '',\n batchNumber: '',\n expiryDate: null,\n mediaId: 0\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n clazz.create = function (resource) {\n var item = new clazz();\n item.id = resource.id;\n item.productId = resource.productId;\n item.filename = resource.filename;\n item.productNumber = resource.productNumber;\n item.productName = resource.productName;\n item.batchNumber = resource.batchNumber;\n item.expiryDate = resource.expiryDate;\n item.mediaId = resource.mediaId;\n return item;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/certificateItemModel.js\n// module id = 739\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.contactInfoRentalProduct = contactInfoRentalProduct;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction contactInfoRentalProduct() {\n var clazz = function ContactInfoRentalProduct() {\n var defaults = {\n contactPerson: '',\n contactPhoneNumber: ''\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n clazz.create = function (resource) {\n var o = new clazz();\n o.contactPerson = resource.contactPerson;\n o.contactPhoneNumber = resource.contactPhoneNumber;\n return o;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/contactInfoRentalProductModel.js\n// module id = 740\n// module chunks = 0","'use strict';\n\ncontractDetail.$inject = [\"Paging\", \"$filter\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.contractDetail = contractDetail;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction contractDetail(Paging, $filter) {\n var clazz = function ContractDetail() {\n var defaults = {\n id: 0,\n startDate: '',\n endDate: null,\n name: null,\n products: [],\n allProducts: false,\n portalContractTypeName: '',\n portalContractTypeCode: '',\n logoImagePath: '',\n agiosNr: null,\n description: ''\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n _lodash2.default.extend(clazz.prototype, {\n getPagedProducts: function getPagedProducts(page, products) {\n return products.slice(page * this.paging.itemsPerPage - this.paging.itemsPerPage, page * this.paging.itemsPerPage);\n }\n });\n\n clazz.create = function (resource) {\n var contractDetail = new clazz();\n contractDetail.id = resource.id;\n contractDetail.startDate = resource.startDate;\n contractDetail.endDate = resource.endDate;\n contractDetail.portalContractTypeName = resource.portalContractTypeName;\n contractDetail.portalContractTypeCode = resource.portalContractTypeCode;\n contractDetail.name = resource.name;\n contractDetail.products = $filter('orderBy')(resource.products, 'name');\n contractDetail.allProducts = resource.allProducts;\n contractDetail.logoImagePath = resource.logoImagePath;\n contractDetail.agiosNr = resource.agiosNr;\n contractDetail.paging = Paging.create({ totalItems: contractDetail.products.length, itemsPerPage: 24, page: 1, pageCount: 1, pageNumbers: [] });\n contractDetail.description = resource.description;\n return contractDetail;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/contractDetailModel.js\n// module id = 741\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.contract = contract;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction contract() {\n var clazz = function Contract() {\n var defaults = {\n id: 0,\n name: '',\n startDate: null,\n endDate: null,\n contractTypeCode: null,\n contractTypeName: null,\n portalContractTypeName: '',\n portalContractTypeCode: '',\n logoImagePath: ''\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n clazz.create = function (resource) {\n var contract = new clazz();\n contract.id = resource.id;\n contract.name = resource.name;\n contract.startDate = resource.startDate;\n contract.endDate = resource.endDate;\n contract.portalContractTypeName = resource.portalContractTypeName;\n contract.portalContractTypeCode = resource.portalContractTypeCode;\n contract.contractTypeCode = resource.contractTypeCode;\n contract.contractTypeName = resource.contractTypeName;\n contract.logoImagePath = resource.logoImagePath;\n return contract;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/contractModel.js\n// module id = 742\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.deliveryInfoRentalProduct = deliveryInfoRentalProduct;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction deliveryInfoRentalProduct() {\n var clazz = function DeliveryInfoRentalProduct() {\n var defaults = {\n boxNumber: '',\n cityName: '',\n countryName: '',\n countryCode: '',\n houseNumber: '',\n postalCode: '',\n streetName: '',\n deliveryDate: '',\n remark: ''\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n clazz.create = function (resource) {\n var o = new clazz();\n o.boxNumber = resource.boxNumber;\n o.cityName = resource.cityName;\n o.countryName = resource.countryName;\n o.countryCode = 'BE';\n o.postalLocalityId = resource.postalLocalityId;\n o.streetId = resource.streetId;\n o.houseNumber = resource.houseNumber;\n o.postalCode = resource.postalCode;\n o.streetName = resource.streetName;\n o.deliveryDate = resource.deliveryDate;\n o.remark = resource.remark;\n return o;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/deliveryInfoRentalProductModel.js\n// module id = 743\n// module chunks = 0","'use strict';\n\ndelivery.$inject = [\"DeliveryProduct\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.delivery = delivery;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction delivery(DeliveryProduct) {\n var clazz = function Delivery() {\n var defaults = {\n id: 0,\n state: '',\n amount: '',\n history: null,\n products: null\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n clazz.create = function (resource) {\n var o = new clazz();\n o.id = resource.deliveryNr;\n o.state = resource.deliveryState;\n o.amount = resource.deliveryAmount;\n o.history = _lodash2.default.map(resource.deliveryHistory, function (i) {\n return { date: i.date, time: i.time, text: i.text };\n });\n o.products = _lodash2.default.map(resource.products, function (i) {\n return DeliveryProduct.create(i);\n });\n return o;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/deliveryModel.js\n// module id = 744\n// module chunks = 0","'use strict';\n\ndeliveryProduct.$inject = [\"textBuilder\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.deliveryProduct = deliveryProduct;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction deliveryProduct(textBuilder) {\n var clazz = function DeliveryProduct() {\n var defaults = {\n name: '',\n productNumber: '',\n promocode: '',\n productNumberAndPromo: '',\n quantity: null,\n discount: null,\n amount: null\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n clazz.create = function (resource) {\n var o = new clazz();\n o.name = resource.name;\n o.productNumber = resource.productNumber;\n o.promocode = resource.promocode;\n o.productNumberAndPromo = textBuilder.getProductNumberAndPromo(o.productNumber, o.promocode);\n o.quantity = resource.quantity;\n o.discount = resource.discount;\n o.amount = resource.amount;\n return o;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/deliveryProductModel.js\n// module id = 745\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.discounttype = discounttype;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction discounttype() {\n var clazz = function Discounttype() {\n var defaults = {\n id: 0,\n name: ''\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n clazz.create = function (resource) {\n var o = new clazz();\n o.id = resource.id;\n o.name = resource.name;\n return o;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/discounttypeModel.js\n// module id = 746\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.fastOrderProduct = fastOrderProduct;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction fastOrderProduct() {\n var clazz = function FastOrderProduct() {\n var defaults = {\n categoryCode: '',\n productNumber: null,\n imagePath: '',\n productId: 0,\n productName: '',\n nationalNumber: 0\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n clazz.create = function (context) {\n var o = new clazz();\n o.id = context.productId;\n o.categoryCode = context.categoryCode;\n o.nationalNumber = context.productNumber;\n o.imagePath = context.imagePath;\n o.name = context.productName;\n o.quantity = context.quantity;\n return o;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/fastOrderProductModel.js\n// module id = 747\n// module chunks = 0","'use strict';\n\nfilterCategoryItem.$inject = [\"common\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.filterCategoryItem = filterCategoryItem;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction filterCategoryItem(common) {\n var clazz = function FilterCategoryItem() {\n var defaults = {\n id: '',\n name: '',\n isSelected: false,\n isParent: true,\n level: 0\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n clazz.create = function (resource, selectedIds, level, formatNameToPascalCase) {\n var item = new clazz();\n item.id = resource.id;\n if (formatNameToPascalCase) {\n item.name = common.toPascalCase(resource.name);\n } else {\n item.name = resource.name;\n }\n item.isSelected = resource.isSelected ? true : selectedIds ? selectedIds.indexOf(resource.id) >= 0 : false;\n item.isParent = false;\n item.level = level || 1;\n return item;\n };\n\n clazz.createParent = function (resource, level) {\n var item = new clazz();\n item.id = resource.id;\n item.name = resource.name;\n item.isSelected = true;\n item.isParent = true;\n item.level = level || 1;\n return item;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/filterCategoryItemModel.js\n// module id = 748\n// module chunks = 0","'use strict';\n\nfilterCategory.$inject = [\"common\", \"Enums\", \"FilterCategoryItem\", \"gettextCatalog\", \"FilterHierarchyCategoryItem\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.filterCategory = filterCategory;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction filterCategory(common, Enums, FilterCategoryItem, gettextCatalog, FilterHierarchyCategoryItem) {\n var clazz = function FilterCategory() {\n var defaults = {\n id: '',\n name: '',\n isHierarchical: false,\n isCollapsed: true,\n isLink: false,\n isSellerCategory: false,\n initialLimit: 15,\n limit: 15,\n items: [],\n order: 0\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n clazz.create = function (resource) {\n var filter = new clazz();\n\n var isSellerCategory = resource.context === Enums.categoryFilterType.sellerCategory.id;\n filter.limit = resource.initialAmountVisible;\n\n if (resource.context === Enums.categoryFilterType.category.id) {\n filter.id = String(resource.id);\n filter.name = resource.name;\n } else if (resource.context === Enums.categoryFilterType.sellerCategory.id) {\n filter.id = resource.id;\n filter.name = resource.name;\n } else if (resource.context === Enums.categoryFilterType.seller.id) {\n filter.id = Enums.otherCategoryType.seller.id;\n filter.limit = 9999;\n filter.name = gettextCatalog.getString('Seller');\n } else if (resource.context === Enums.categoryFilterType.discountType.id) {\n filter.id = Enums.otherCategoryType.discountType.id;\n filter.name = gettextCatalog.getString('Discount type');\n } else if (resource.context === Enums.categoryFilterType.customCategory.id) {\n filter.id = Enums.categoryFilterType.customCategory.id;\n filter.name = gettextCatalog.getString('Special Discounts');\n }\n\n filter.isCollapsed = false;\n filter.isHierarchical = resource.id === 2 || resource.hierarchyItems;\n filter.isLink = resource.isLink;\n filter.isSellerCategory = isSellerCategory;\n filter.initialLimit = resource.initialAmountVisible;\n filter.order = resource.order;\n\n var formatNameToPascalCase = resource.context === Enums.categoryFilterType.category.id && resource.id === Enums.categoryType.brand.id;\n filter.items = [];\n\n // check if there are hierarchyItems \n if (resource.hierarchyItems) {\n resource.hierarchyItems.length > 0 ? filter.items = _lodash2.default.orderBy(resource.hierarchyItems, 'name') : null;\n filter.items = _lodash2.default.map(filter.items, function (item) {\n return FilterHierarchyCategoryItem.create(item, 0, formatNameToPascalCase);\n });\n }\n\n // if there are no hierarchyItems set the items\n if (filter.items.length === 0) {\n if (resource.items && resource.items.length > 0) {\n var orderedItems = [];\n if (resource.context === Enums.categoryFilterType.seller.id) {\n orderedItems = _lodash2.default.orderBy(resource.items, ['isVIPSeller', 'name'], ['desc', 'asc']);\n } else {\n orderedItems = _lodash2.default.orderBy(resource.items, 'name');\n }\n\n filter.items = _lodash2.default.map(orderedItems, function (item) {\n return FilterCategoryItem.create(item, 0, formatNameToPascalCase);\n });\n }\n }\n\n return filter;\n };\n\n clazz.createShowDiscountsOnly = function () {\n var filter = new clazz();\n filter.id = Enums.otherCategoryType.discountsOnly.id;\n filter.name = gettextCatalog.getString('Discount');\n filter.isHierarchical = false;\n filter.isCollapsed = false;\n filter.isLink = false;\n filter.initialLimit = 15;\n filter.limit = 15;\n filter.items = [];\n filter.items.push(FilterCategoryItem.create({ id: 1, name: gettextCatalog.getString('Discounts only') }));\n return filter;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/filterCategoryModel.js\n// module id = 749\n// module chunks = 0","'use strict';\n\nfilterHierarchyCategoryItem.$inject = [\"common\", \"$stateParams\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.filterHierarchyCategoryItem = filterHierarchyCategoryItem;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction filterHierarchyCategoryItem(common, $stateParams) {\n var clazz = function FilterHierarchyCategoryItem() {\n var defaults = {\n id: '',\n name: '',\n isSelected: false,\n isParent: true,\n children: [],\n isVIPSeller: false,\n parentId: 0,\n childSelected: false\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n _lodash2.default.extend(clazz.prototype, {\n isFilterSelected: function isFilterSelected(qsFilter) {\n qsFilter;\n // this.$stateParams.filter\n },\n hasChildSelected: function hasChildSelected() {\n var childSearch = this.children.find(function (child) {\n return child.isSelected === true;\n });\n\n if (childSearch) {\n return true;\n } else {\n var hasChildSelected = false;\n this.children.forEach(function (child) {\n if (child.hasChildSelected(child)) {\n hasChildSelected = true;\n }\n });\n\n return hasChildSelected;\n }\n }\n });\n\n clazz.create = function (resource, level, formatNameToPascalCase) {\n var _this = this;\n\n var item = new clazz();\n item.id = resource.id;\n\n if (formatNameToPascalCase) {\n item.name = common.toPascalCase(resource.name);\n } else {\n item.name = resource.name;\n }\n\n // check if there are children and add them\n if (resource.children) {\n resource.children = _lodash2.default.orderBy(resource.children, 'name');\n item.children = _lodash2.default.map(resource.children, function (item) {\n return _this.create(item, null, 0, formatNameToPascalCase);\n });\n }\n\n item.isSelected = $stateParams.categoryId === item.id ? true : false;\n item.parentId = resource.parentId;\n item.isVIPSeller = resource.isVIPSeller;\n item.isParent = resource.parentId === 0 ? true : false;\n item.level = level || 1;\n item.childSelected = item.hasChildSelected();\n return item;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/filterHierarchyCategoryItemModel.js\n// module id = 750\n// module chunks = 0","'use strict';\n\nfilter.$inject = [\"FilterCategory\", \"FilterCategoryItem\", \"Enums\", \"$state\", \"$stateParams\", \"queryStringHelper\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.filter = filter;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction filter(FilterCategory, FilterCategoryItem, Enums, $state, $stateParams, queryStringHelper) {\n var clazz = function Filter() {\n var defaults = {\n filterCategories: [],\n flatListsOfCategories: [],\n selectedFilters: []\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n _lodash2.default.extend(clazz.prototype, {\n\n // Used when clearing a filter\n getParentIdOfChildCategory: function getParentIdOfChildCategory(categoryTypeId, id) {\n var flatList = _lodash2.default.find(this.flatListsOfCategories, { key: categoryTypeId }).list;\n var item = _lodash2.default.find(flatList, function (i) {\n return i.Id === id;\n });\n return item ? item.ParentId : null;\n },\n\n markFilterCheckboxesAsSelected: function markFilterCheckboxesAsSelected(qsFilter) {\n for (var i = 0; i < this.filterCategories.length; i++) {\n var filterCategory = this.filterCategories[i];\n var selectedIds = queryStringHelper.getSelectedIdsFromQueryString(qsFilter, filterCategory.id);\n var item = null;\n\n //category \n if (!filterCategory.isHierarchical && !filterCategory.isLink) {\n for (var j = 0; j < filterCategory.items.length; j++) {\n item = filterCategory.items[j];\n item.isSelected = selectedIds ? selectedIds.indexOf(item.id) >= 0 : false;\n }\n } else if (!filterCategory.isLink) {\n if (selectedIds) {\n //find each category by id and select it\n selectedIds.forEach(function (selectedCategoryId) {\n for (var _j = 0; _j < filterCategory.items.length; _j++) {\n item = filterCategory.items[_j];\n\n // select the children and the parent\n if (item.children && item.children.length > 0 && item.id !== selectedCategoryId) {\n item.children.forEach(function (child) {\n if (child.id === selectedCategoryId) {\n child.isSelected = true;\n item.isSelected = true;\n }\n child.children.forEach(function (child1) {\n if (child1.id === selectedCategoryId) {\n child1.isSelected = true;\n child.isSelected = true;\n item.isSelected = true;\n }\n });\n });\n } else if (item.id === selectedCategoryId) {\n item.isSelected = true;\n } else {\n item.isSelected = false;\n }\n }\n });\n } else {\n //if there are no selected id's, make sure they are all unchecked\n filterCategory.items.forEach(function (filterCategoryItem) {\n if (filterCategoryItem.children) {\n filterCategoryItem.children.forEach(function (child) {\n child.isSelected = false;\n });\n }\n filterCategoryItem.isSelected = false;\n });\n }\n }\n }\n },\n\n setSelectedFilters: function setSelectedFilters(qsFilter) {\n var selectedFilters = [];\n\n for (var i = 0; i < this.filterCategories.length; i++) {\n var filterCategory = this.filterCategories[i];\n var selectedFilterCategory = filterCategory.isHierarchical ? this.getSelectedItemsForHierarchicalFilterCategory(filterCategory, qsFilter) : this.getSelectedItemsForNonHierarchicalFilterCategory(filterCategory);\n\n //filter out category and product range filters, because they cannot be shown in the current filter bar\n if (selectedFilterCategory && String(selectedFilterCategory.id) !== String(Enums.categoryType.category.id) && String(selectedFilterCategory.id) !== String(Enums.categoryType.productRange.id)) {\n selectedFilters.push(selectedFilterCategory);\n }\n }\n this.selectedFilters = selectedFilters;\n },\n\n // for non-hierarchical filters: get the selected items from the list\n getSelectedItemsForNonHierarchicalFilterCategory: function getSelectedItemsForNonHierarchicalFilterCategory(filterCategory) {\n var selectedItems = _lodash2.default.chain(filterCategory.items).filter({ isSelected: true }).map(function (item) {\n return { id: item.id, name: item.name };\n }).value();\n\n return selectedItems.length === 0 ? null : { id: filterCategory.id, name: filterCategory.name, items: selectedItems };\n },\n\n // for hierarchical filters: get the name of the item that corresponds with the query string param, and all of its parents\n getSelectedItemsForHierarchicalFilterCategory: function getSelectedItemsForHierarchicalFilterCategory(filterCategory, qsFilter) {\n var selectedIds = queryStringHelper.getSelectedIdsFromQueryString(qsFilter, filterCategory.id);\n var selectedCategoryId = selectedIds && selectedIds.length > 0 ? selectedIds[0] : null;\n if (!selectedCategoryId) {\n return null;\n }\n\n var flatList = _lodash2.default.find(this.flatListsOfCategories, { key: filterCategory.id }).list;\n\n var selectedCategories = [];\n selectedIds.forEach(function (selectedId) {\n var category = _lodash2.default.find(flatList, { id: selectedId });\n if (category) {\n selectedCategories.push(category);\n }\n });\n\n return { id: filterCategory.id, name: filterCategory.name, items: selectedCategories };\n },\n\n clearFilter: function clearFilter(categoryId, filterId) {\n var filterCategory = _lodash2.default.find(this.filterCategories, { id: categoryId });\n if (!filterCategory) {\n return;\n }\n\n var item = _lodash2.default.find(filterCategory.items, { id: filterId });\n if (!item) {\n return;\n }\n\n item.isSelected = false;\n },\n\n isCategoryHierarchical: function isCategoryHierarchical(categoryId) {\n var filterCategory = _lodash2.default.find(this.filterCategories, { id: categoryId });\n return filterCategory && filterCategory.isHierarchical;\n }\n });\n\n clazz.create = function (resource) {\n var filter = new clazz();\n if (resource.categories && resource.categories.length > 0) {\n _lodash2.default.forEach(resource.categories, function (category) {\n var filterCategory = FilterCategory.create(category);\n\n //list of categories used in the views$\n filter.filterCategories.push(filterCategory);\n\n //flatlist of categories used for searches\n if (filterCategory.isSellerCategory || !filterCategory.isSellerCategory && category.id === Enums.categoryType.category.id) {\n filter.flatListsOfCategories.push({ key: filterCategory.id, list: category.items });\n }\n });\n }\n\n // set discount only\n if (resource.showDiscountsOnlyOption) {\n var discountsOnlyFilter = FilterCategory.createShowDiscountsOnly();\n\n //order the discount filter after the items with position 2\n var elementPos = filter.filterCategories.map(function (x) {\n return x.order;\n }).indexOf(2);\n\n //if position 2 does not exist add it to the end of the array\n elementPos === -1 ? filter.filterCategories.push(discountsOnlyFilter) : filter.filterCategories.splice(elementPos, 0, discountsOnlyFilter);\n }\n\n //if the state is brand, order the categories\n if ($state.current.name === 'brand') {\n var temp = [filter.filterCategories[1], filter.filterCategories[2], filter.filterCategories[0]];\n filter.filterCategories = temp;\n }\n\n return filter;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/filterModel.js\n// module id = 751\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.helpItem = helpItem;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction helpItem() {\n var clazz = function HelpItem() {\n var defaults = {\n categoryId: '',\n category: '',\n subCategories: []\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n clazz.create = function (resource) {\n var o = new clazz();\n o.categoryId = resource.categoryId;\n o.category = resource.category;\n o.subCategories = resource.subCategories;\n return o;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/helpItemModel.js\n// module id = 752\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _angular = require('angular');\n\nvar _angular2 = _interopRequireDefault(_angular);\n\nvar _addedToCartInfoModel = require('./addedToCartInfoModel');\n\nvar _addressModel = require('./addressModel');\n\nvar _brandModel = require('./brandModel');\n\nvar _cartModel = require('./cartModel');\n\nvar _cartDraftModel = require('./cartDraftModel');\n\nvar _cartErrorMessageModel = require('./cartErrorMessageModel');\n\nvar _cartSellerModel = require('./cartSellerModel');\n\nvar _cartSellerProductModel = require('./cartSellerProductModel');\n\nvar _categoryModel = require('./categoryModel');\n\nvar _categoryWithSubcategoriesModel = require('./categoryWithSubcategoriesModel');\n\nvar _deliveryModel = require('./deliveryModel');\n\nvar _deliveryProductModel = require('./deliveryProductModel');\n\nvar _discounttypeModel = require('./discounttypeModel');\n\nvar _filterCategoryModel = require('./filterCategoryModel');\n\nvar _filterCategoryItemModel = require('./filterCategoryItemModel');\n\nvar _filterModel = require('./filterModel');\n\nvar _cartDisabledSellerModel = require('./cartDisabledSellerModel');\n\nvar _mediPimDataModel = require('./mediPimDataModel');\n\nvar _newsItemModel = require('./newsItemModel');\n\nvar _newsOverviewModel = require('./newsOverviewModel');\n\nvar _newsSearchRequest = require('./newsSearchRequest');\n\nvar _orderModel = require('./orderModel');\n\nvar _orderProductModel = require('./orderProductModel');\n\nvar _orderConfirmationModel = require('./orderConfirmationModel');\n\nvar _orderOverviewItemModel = require('./orderOverviewItemModel');\n\nvar _pagingModel = require('./pagingModel');\n\nvar _productModel = require('./productModel');\n\nvar _productOverviewModel = require('./productOverviewModel');\n\nvar _productOverviewItemModel = require('./productOverviewItemModel');\n\nvar _productFilterRequest = require('./productFilterRequest');\n\nvar _productSearchRequest = require('./productSearchRequest');\n\nvar _sellerModel = require('./sellerModel');\n\nvar _sellerCategoryModel = require('./sellerCategoryModel');\n\nvar _sellerBannerModel = require('./sellerBannerModel');\n\nvar _tenantModel = require('./tenantModel');\n\nvar _totalsModel = require('./totalsModel');\n\nvar _userModel = require('./userModel');\n\nvar _helpItemModel = require('./helpItemModel');\n\nvar _newsTileModel = require('./newsTileModel');\n\nvar _sellerOverviewModel = require('./sellerOverviewModel');\n\nvar _partnershipModel = require('./partnershipModel');\n\nvar _partnershipOverviewModel = require('./partnershipOverviewModel');\n\nvar _partnershipDetail = require('./partnershipDetail');\n\nvar _stockModel = require('./stockModel');\n\nvar _stockOverviewModel = require('./stockOverviewModel');\n\nvar _sellerContactModel = require('./sellerContactModel');\n\nvar _sellerPublicModel = require('./sellerPublicModel');\n\nvar _fastOrderProductModel = require('./fastOrderProductModel');\n\nvar _productSetModel = require('./productSetModel');\n\nvar _cartProduct = require('./cartProduct');\n\nvar _productDiscountModel = require('./productDiscountModel');\n\nvar _contractModel = require('./contractModel');\n\nvar _contractDetailModel = require('./contractDetailModel');\n\nvar _filterHierarchyCategoryItemModel = require('./filterHierarchyCategoryItemModel');\n\nvar _wholesalerModel = require('./wholesalerModel');\n\nvar _outletCategoryModel = require('./outletCategoryModel');\n\nvar _outletHomePageModel = require('./outletHomePageModel');\n\nvar _rentalProductOverviewModel = require('./rentalProductOverviewModel');\n\nvar _rentalProductOverviewItemModel = require('./rentalProductOverviewItemModel');\n\nvar _rentalProductsOrderModel = require('./rentalProductsOrderModel');\n\nvar _rentalProductModel = require('./rentalProductModel');\n\nvar _rentalProductCategoryModel = require('./rentalProductCategoryModel');\n\nvar _libraryDocumentCategoryModel = require('./libraryDocumentCategoryModel');\n\nvar _libraryDocumentModel = require('./libraryDocumentModel');\n\nvar _libraryQuestionModel = require('./libraryQuestionModel');\n\nvar _deliveryInfoRentalProductModel = require('./deliveryInfoRentalProductModel');\n\nvar _contactInfoRentalProductModel = require('./contactInfoRentalProductModel');\n\nvar _rentalHistoryItemModel = require('./rentalHistoryItemModel');\n\nvar _rentalHistoryDetailModel = require('./rentalHistoryDetailModel');\n\nvar _rentalHistoryStatusItemModel = require('./rentalHistoryStatusItemModel');\n\nvar _certificateItemModel = require('./certificateItemModel');\n\nvar _packageItemModel = require('./packageItemModel');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _module = _angular2.default.module('app.models', []).factory('AddedToCartInfo', _addedToCartInfoModel.addedToCartInfo).factory('Address', _addressModel.address).factory('Brand', _brandModel.brand).factory('CartDraft', _cartDraftModel.cartDraft).factory('CartErrorMessage', _cartErrorMessageModel.cartErrorMessage).factory('Cart', _cartModel.cart).factory('CartSeller', _cartSellerModel.cartSeller).factory('CartDisabledSeller', _cartDisabledSellerModel.cartDisabledSeller).factory('CartSellerProduct', _cartSellerProductModel.cartSellerProduct).factory('Category', _categoryModel.category).factory('CategoryWithSubcategories', _categoryWithSubcategoriesModel.categoryWithSubcategories).factory('Delivery', _deliveryModel.delivery).factory('DeliveryProduct', _deliveryProductModel.deliveryProduct).factory('Discounttype', _discounttypeModel.discounttype).factory('FilterCategory', _filterCategoryModel.filterCategory).factory('FilterCategoryItem', _filterCategoryItemModel.filterCategoryItem).factory('Filter', _filterModel.filter)\n//.factory('Identity', identity)\n.factory('MediPimData', _mediPimDataModel.mediPimData).factory('NewsItem', _newsItemModel.newsItem).factory('NewsOverview', _newsOverviewModel.newsOverview).factory('NewsSearchRequest', _newsSearchRequest.newsSearchRequest).factory('Order', _orderModel.order).factory('OrderProduct', _orderProductModel.orderProduct).factory('OrderConfirmation', _orderConfirmationModel.orderConfirmation).factory('OrderOverviewItem', _orderOverviewItemModel.orderOverviewItem).factory('Paging', _pagingModel.paging).factory('Product', _productModel.product).factory('ProductOverview', _productOverviewModel.productOverview).factory('ProductOverviewItem', _productOverviewItemModel.productOverviewItem).factory('ProductFilterRequest', _productFilterRequest.productFilterRequest).factory('ProductSearchRequest', _productSearchRequest.productSearchRequest).factory('Seller', _sellerModel.seller).factory('SellerCategory', _sellerCategoryModel.sellerCategory).factory('SellerBanner', _sellerBannerModel.sellerBanner).factory('Tenant', _tenantModel.tenant).factory('Totals', _totalsModel.totals).factory('User', _userModel.user).factory('HelpItem', _helpItemModel.helpItem).factory('NewsTile', _newsTileModel.newsTile).factory('SellerOverview', _sellerOverviewModel.sellerOverview).factory('Partnership', _partnershipModel.partnership).factory('PartnershipOverview', _partnershipOverviewModel.partnershipOverview).factory('PartnershipDetail', _partnershipDetail.partnershipDetail).factory('StockOverview', _stockOverviewModel.stockOverview).factory('Stock', _stockModel.stock).factory('SellerContact', _sellerContactModel.sellerContact).factory('SellerPublic', _sellerPublicModel.sellerPublic).factory('FastOrderProduct', _fastOrderProductModel.fastOrderProduct).factory('ProductDiscount', _productDiscountModel.productDiscount).factory('ProductSet', _productSetModel.productSet).factory('CartProduct', _cartProduct.cartProduct).factory('Contract', _contractModel.contract).factory('FilterHierarchyCategoryItem', _filterHierarchyCategoryItemModel.filterHierarchyCategoryItem).factory('Wholesaler', _wholesalerModel.wholesaler).factory('ContractDetail', _contractDetailModel.contractDetail).factory('RentalProductOverview', _rentalProductOverviewModel.rentalProductOverview).factory('RentalProduct', _rentalProductModel.rentalProduct).factory('RentalProductOverviewItem', _rentalProductOverviewItemModel.rentalProductOverviewItem).factory('RentalHistoryItem', _rentalHistoryItemModel.rentalHistoryItem).factory(\"RentalHistoryDetail\", _rentalHistoryDetailModel.rentalHistoryDetail).factory(\"RentalHistoryStatusItem\", _rentalHistoryStatusItemModel.rentalHistoryStatusItem).factory('RentalProductsOrder', _rentalProductsOrderModel.rentalProductsOrder).factory('OutletCategory', _outletCategoryModel.outletCategory).factory('OutletHomePage', _outletHomePageModel.outletHomePage).factory('RentalProductCategory', _rentalProductCategoryModel.rentalProductCategory).factory('LibraryDocumentCategory', _libraryDocumentCategoryModel.libraryDocumentCategory).factory('LibraryDocument', _libraryDocumentModel.libraryDocument).factory('LibraryQuestion', _libraryQuestionModel.libraryQuestion).factory('ContactInfoRentalProduct', _contactInfoRentalProductModel.contactInfoRentalProduct).factory('DeliveryInfoRentalProduct', _deliveryInfoRentalProductModel.deliveryInfoRentalProduct).factory('CertificateItem', _certificateItemModel.certificateItem).factory('PackageItem', _packageItemModel.packageItem);\n//import {identity} from './identityModel';\nexports.default = _module.name;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/index.js\n// module id = 753\n// module chunks = 0","'use strict';\n\nlibraryDocumentCategory.$inject = [\"LibraryDocument\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.libraryDocumentCategory = libraryDocumentCategory;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction libraryDocumentCategory(LibraryDocument) {\n var clazz = function LibraryDocumentCategory() {\n var defaults = {\n sequenceNumber: 0,\n title: null,\n documents: []\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n clazz.create = function (resource) {\n var o = new clazz();\n o.sequenceNumber = resource.sequenceNumber;\n o.title = resource.title;\n o.documents = _lodash2.default.map(resource.libraryDocuments, function (i) {\n return LibraryDocument.create(i);\n });\n return o;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/libraryDocumentCategoryModel.js\n// module id = 754\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.libraryDocument = libraryDocument;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction libraryDocument() {\n var clazz = function LibraryDocument() {\n var defaults = {\n sequenceNumber: 0,\n title: null,\n description: null,\n path: null,\n code: null,\n visible: false,\n languageId: 0\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n clazz.create = function (resource) {\n var o = new clazz();\n o.sequenceNumber = resource.sequenceNumber;\n o.title = resource.title;\n o.description = resource.description;\n o.path = resource.path;\n o.code = resource.code;\n o.visible = resource.visible;\n o.languageId = resource.languageId;\n o.id = resource.id;\n return o;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/libraryDocumentModel.js\n// module id = 755\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.libraryQuestion = libraryQuestion;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction libraryQuestion() {\n var clazz = function libraryQuestion() {\n var defaults = {\n sequenceNumber: 0,\n question: '',\n answer: ''\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n clazz.create = function (resource) {\n var o = new clazz();\n o.sequenceNumber = resource.sequenceNumber;\n o.question = resource.question;\n o.answer = resource.answer;\n return o;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/libraryQuestionModel.js\n// module id = 756\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.mediPimData = mediPimData;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction mediPimData() {\n var clazz = function MediPimData() {\n var defaults = {\n description: '',\n fullDescription: '',\n NUT: '',\n ATC: '',\n EAN: '',\n UDI: '',\n prescription: false,\n properties: '',\n usage: '',\n composition: '',\n contraIndication: '',\n sideEffects: '',\n indication: '',\n images: [],\n height: 0,\n width: 0,\n depth: 0,\n weight: 0,\n brands: [],\n apbCategory: '',\n categories: [],\n tax: 0,\n media: [],\n faggPublicNotice: '',\n faggSpecialNotice: '',\n pharmaPublicNotice: '',\n pharmaSpecialNotice: '',\n laboPublicNotice: '',\n laboSpecialNotice: '',\n packageQuantity: '',\n conservation: '',\n pharmacistPrice: 0,\n expires: false,\n supplierReference: '',\n tradeInMonthsBeforeExpiry: 0,\n tradeInMonthsAfterExpiry: 0,\n tradeInRefundValue: 0,\n status: '',\n ctiExtended: '',\n refundValueWithOmnio: 0,\n refundValueWithoutOmnio: 0,\n attributes: [],\n activeIngredients: [],\n suppliers: [],\n shortDescription: '',\n frontals: [],\n writtenRequestByPatient: false\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n _lodash2.default.extend(clazz.prototype, {});\n\n clazz.create = function (resource) {\n var data = new clazz();\n data.description = resource.description;\n data.fullDescription = resource.fullDescription;\n data.NUT = resource.nut;\n data.ATC = resource.atc;\n data.EAN = resource.ean;\n data.GTIN = resource.gtin;\n data.UDI = resource.udi;\n data.prescription = resource.prescription;\n data.properties = resource.properties;\n data.usage = resource.usage;\n data.composition = resource.composition;\n data.contraIndication = resource.contraIndication;\n data.sideEffects = resource.sideEffects;\n data.indication = resource.indication;\n data.images = resource.images;\n data.height = resource.height;\n data.width = resource.width;\n data.depth = resource.depth;\n data.weight = resource.weight;\n data.brands = resource.brands;\n data.apbCategory = resource.apbCategory;\n data.categories = resource.categories;\n data.tax = resource.tax;\n data.media = resource.media;\n data.faggPublicNotice = resource.faggPublicNotice;\n data.faggSpecialNotice = resource.faggSpecialNotice;\n data.pharmaPublicNotice = resource.pharmaPublicNotice;\n data.pharmaSpecialNotice = resource.pharmaSpecialNotice;\n data.laboPublicNotice = resource.laboPublicNotice;\n data.laboSpecialNotice = resource.laboSpecialNotice;\n data.packageQuantity = resource.packageQuantity;\n data.conservation = resource.conservation;\n data.pharmacistPrice = resource.pharmacistPrice;\n data.expires = resource.expires;\n data.supplierReference = resource.supplierReference;\n data.tradeInMonthsBeforeExpiry = resource.tradeInMonthsBeforeExpiry;\n data.tradeInMonthsAfterExpiry = resource.tradeInMonthsAfterExpiry;\n data.tradeInRefundValue = resource.tradeInRefundValue;\n data.status = resource.status;\n data.ctiExtended = resource.ctiExtended;\n data.refundValueWithOmnio = resource.refundValueWithOmnio;\n data.refundValueWithoutOmnio = resource.refundValueWithoutOmnio;\n data.attributes = resource.attributes;\n data.activeIngredients = resource.activeIngredients;\n data.suppliers = resource.suppliers;\n data.shortDescription = resource.shortDescription;\n data.frontals = resource.frontals;\n data.writtenRequestByPatient = resource.writtenRequestByPatient;\n return data;\n };\n\n clazz.createFromLocalStorage = function (resource) {\n var data = new clazz();\n data.description = resource.description;\n data.fullDescription = resource.fullDescription;\n data.NUT = resource.nut;\n data.ATC = resource.atc;\n data.EAN = resource.ean;\n data.GTIN = resource.gtin;\n data.UDI = resource.udi;\n data.prescription = resource.prescription;\n data.properties = resource.properties;\n data.usage = resource.usage;\n data.composition = resource.composition;\n data.contraIndication = resource.contraIndication;\n data.sideEffects = resource.sideEffects;\n data.indication = resource.indication;\n data.images = resource.images;\n data.height = resource.height;\n data.width = resource.width;\n data.depth = resource.depth;\n data.weight = resource.weight;\n data.brands = resource.brands;\n data.apbCategory = resource.apbCategory;\n data.categories = resource.categories;\n data.tax = resource.tax;\n data.media = resource.media;\n data.faggPublicNotice = resource.faggPublicNotice;\n data.faggSpecialNotice = resource.faggSpecialNotice;\n data.pharmaPublicNotice = resource.pharmaPublicNotice;\n data.pharmaSpecialNotice = resource.pharmaSpecialNotice;\n data.laboPublicNotice = resource.laboPublicNotice;\n data.laboSpecialNotice = resource.laboSpecialNotice;\n data.packageQuantity = resource.packageQuantity;\n data.conservation = resource.conservation;\n data.pharmacistPrice = resource.pharmacistPrice;\n data.expires = resource.expires;\n data.supplierReference = resource.supplierReference;\n data.tradeInMonthsBeforeExpiry = resource.tradeInMonthsBeforeExpiry;\n data.tradeInMonthsAfterExpiry = resource.tradeInMonthsAfterExpiry;\n data.tradeInRefundValue = resource.tradeInRefundValue;\n data.status = resource.status;\n data.ctiExtended = resource.ctiExtended;\n data.refundValueWithOmnio = resource.refundValueWithOmnio;\n data.refundValueWithoutOmnio = resource.refundValueWithoutOmnio;\n data.attributes = resource.attributes;\n data.activeIngredients = resource.activeIngredients;\n data.suppliers = resource.suppliers;\n data.frontals = resource.frontals;\n data.shortDescription = resource.shortDescription;\n data.writtenRequestByPatient = resource.writtenRequestByPatient;\n return data;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/mediPimDataModel.js\n// module id = 757\n// module chunks = 0","'use strict';\n\nnewsItem.$inject = [\"NewsTypes\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.newsItem = newsItem;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction newsItem(NewsTypes) {\n var clazz = function NewsItem() {\n var defaults = {\n id: 0,\n type: '',\n sellerId: 0,\n sellerName: '',\n isVipSeller: false,\n title: '',\n description: '',\n html: '',\n categoryId: 0,\n categoryLabel: '',\n categoryName: '',\n tags: [],\n links: [],\n banners: [],\n header: [],\n author: '',\n featuredImage: '',\n publishDate: '',\n shortDescription: '',\n gallery: []\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n _lodash2.default.extend(clazz.prototype, {\n getTypeLabel: function getTypeLabel(type) {\n var item = _lodash2.default.filter(NewsTypes, function (i) {\n return i.type === type;\n });\n return item && item.length > 0 ? item[0].label : null;\n }\n });\n\n clazz.create = function (resource) {\n var o = new clazz();\n o.id = resource.id;\n o.type = resource.type;\n o.sellerId = resource.sellerId;\n o.sellerName = resource.sellerName;\n o.isVipSeller = resource.isVipSeller;\n o.title = resource.title;\n o.description = resource.description;\n o.html = resource.html;\n o.categoryId = resource.categoryId;\n o.tags = resource.tags;\n o.links = resource.links;\n o.banners = resource.banners;\n o.header = resource.header;\n o.author = resource.author;\n o.categoryLabel = resource.categoryLabel;\n o.categoryName = resource.categoryName;\n o.featuredImage = resource.featuredImage;\n o.publishDate = resource.publishDate;\n o.shortDescription = resource.shortDescription;\n o.gallery = resource.gallery;\n return o;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/newsItemModel.js\n// module id = 758\n// module chunks = 0","'use strict';\n\nnewsOverview.$inject = [\"Paging\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.newsOverview = newsOverview;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction newsOverview(Paging) {\n var clazz = function NewsOverview() {\n var defaults = {\n context: 0,\n items: [],\n categories: [],\n selectedCategory: null,\n searchValue: '',\n sellerId: null,\n brandId: null,\n productId: null,\n tagId: null,\n paging: null,\n isNewsAvailableForContext: false,\n isNewsAvailableForCriteria: true,\n isLoadingInitial: false,\n isLoading: false,\n errorOccurred: false\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n clazz.create = function (context, defaultFilterAttr, pageSize) {\n var o = new clazz();\n o.context = context;\n o.paging = Paging.create({ totalItems: 0, itemsPerPage: pageSize ? pageSize : 12, page: 1, pageCount: 1, pageNumbers: [] });\n\n if (defaultFilterAttr) {\n o.sellerId = defaultFilterAttr.sellerId;\n o.brandId = defaultFilterAttr.brandId;\n o.productId = defaultFilterAttr.productId;\n o.tagId = defaultFilterAttr.tagId;\n }\n return o;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/newsOverviewModel.js\n// module id = 759\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.newsSearchRequest = newsSearchRequest;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction newsSearchRequest() {\n var clazz = function NewsSearchRequest() {\n var defaults = {\n skip: 0,\n take: 5,\n categoryId: null,\n searchValue: '',\n context: 0,\n sellerId: 0,\n brandId: 0,\n productId: 0,\n tagId: 0\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n clazz.create = function (context, params) {\n var o = new clazz();\n o.skip = params.skip;\n o.take = params.take;\n o.categoryId = params.categoryId;\n o.searchValue = params.searchValue;\n o.context = context;\n o.sellerId = params.sellerId;\n o.brandId = params.brandId;\n o.productId = params.productId;\n o.tagId = params.tagId;\n return o;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/newsSearchRequest.js\n// module id = 760\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.newsTile = newsTile;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction newsTile() {\n var clazz = function NewsTile() {\n var defaults = {\n id: 0,\n shortDescription: '',\n defaultBannerImage: '0',\n featuredImagePath: '0',\n publishDate: '',\n categoryLabel: '',\n categoryName: '',\n author: '',\n title: ''\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n clazz.create = function (resource) {\n var o = new clazz();\n o.id = resource.id;\n o.shortDescription = resource.shortDescription;\n o.defaultBannerImage = resource.defaultBannerImage;\n o.featuredImagePath = resource.featuredImagePath;\n o.publishDate = resource.createdOn;\n o.categoryLabel = resource.categoryLabel;\n o.categoryName = resource.categoryName;\n o.author = resource.authorFullName;\n o.title = resource.title;\n o.sellerName = resource.sellerName;\n o.modified = resource.modified;\n return o;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/newsTileModel.js\n// module id = 761\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.orderConfirmation = orderConfirmation;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction orderConfirmation() {\n var clazz = function OrderConfirmation() {\n var defaults = {\n sellerName: '',\n orderNumber: '',\n totalPrice: 0,\n totalDiscount: 0,\n deliveryDate: null\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n clazz.create = function (resource) {\n var o = new clazz();\n o.id = resource.id;\n o.sellerName = resource.sellerName;\n o.orderNumber = resource.orderNumber;\n o.totalPrice = resource.totalPrice;\n o.totalDiscount = resource.totalDiscount;\n o.deliveryDate = resource.deliveryDate;\n return o;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/orderConfirmationModel.js\n// module id = 762\n// module chunks = 0","'use strict';\n\norder.$inject = [\"Totals\", \"OrderProduct\", \"Address\", \"Enums\", \"gettextCatalog\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.order = order;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction order(Totals, OrderProduct, Address, Enums, gettextCatalog) {\n var clazz = function Order() {\n var defaults = {\n id: 0,\n referenceNumber: '',\n orderNumber: '',\n date: '',\n sellerName: '',\n wholeSalerName: '',\n orderStatusCode: '',\n isPartialStatus: false,\n orderStatusText: '',\n hasError: false,\n hasSuccess: false,\n customerNumber: '',\n APBNr: '',\n deliveryAddress: null,\n invoiceAddress: null,\n totals: null,\n products: null,\n shippingNotes: null,\n version: 0,\n note: null,\n originalOrderId: 0,\n originalOrderReference: 0,\n actualDeliveryDate: null,\n deliveryRouteNumber: null\n //deliveries: null\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n _lodash2.default.extend(clazz.prototype, {\n setDeliveries: function setDeliveries(deliveries) {\n this.deliveries = deliveries;\n }\n });\n\n clazz.create = function (resource) {\n var o = new clazz();\n o.id = resource.id;\n o.referenceNumber = resource.referenceNr;\n o.orderNumber = resource.orderNr;\n o.date = resource.orderDate;\n o.sellerName = resource.sellerName;\n o.wholesalerName = resource.wholeSalerName;\n o.orderStatusCode = resource.stateCode;\n o.isPartialStatus = resource.isPartialState;\n o.orderStatusText = orderStatusText(resource.stateCode);\n o.hasError = hasError(resource.stateCode);\n o.hasSuccess = hasSuccess(resource.stateCode);\n o.customerNumber = resource.febelcoCustomerNr;\n o.APBNr = resource.apbNumber;\n o.deliveryAddress = resource.deliveryAddress ? Address.create(resource.deliveryAddress) : null;\n o.invoiceAddress = resource.invoiceAddress ? Address.create(resource.invoiceAddress) : null;\n o.totals = Totals.create(resource);\n o.products = _lodash2.default.map(resource.orderProducts, function (i) {\n return OrderProduct.create(i);\n });\n o.shippingNotes = resource.shippingNotes;\n o.deliveryDate = resource.deliveryDate;\n o.version = resource.version;\n o.note = resource.note;\n o.originalOrderId = resource.originalOrderId;\n o.originalOrderReference = resource.originalOrderReference;\n o.groupedProducts = _lodash2.default.groupBy(o.products, 'productNumber');\n o.actualDeliveryDate = resource.actualDeliveryDate;\n o.deliveryRouteNumber = resource.deliveryRouteNumber;\n //o.deliveries = lodash.map(resource.Deliveries, i => Delivery.create(i));\n return o;\n };\n\n function orderStatusText(code) {\n return code ? gettextCatalog.getString(Enums.orderStatusTexts[code].text) : '';\n }\n\n function hasError(code) {\n return code ? code === 'ERROR' || code === 'CANCELLED' : false;\n }\n\n function hasSuccess(code) {\n return code ? code === 'READYWS' || code === 'INVWS' || code === 'INVWSP' : false;\n }\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/orderModel.js\n// module id = 763\n// module chunks = 0","'use strict';\n\norderOverviewItem.$inject = [\"Enums\", \"gettextCatalog\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.orderOverviewItem = orderOverviewItem;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction orderOverviewItem(Enums, gettextCatalog) {\n var clazz = function OrderOverviewItem() {\n var defaults = {\n id: 0,\n referenceNumber: '',\n orderNumber: '',\n date: '',\n seller: '',\n amount: 0,\n orderStatusCode: '',\n isPartialStatus: false,\n orderStatusText: '',\n hasError: false,\n hasSuccess: false\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n clazz.create = function (resource) {\n var o = new clazz();\n o.id = resource.id;\n o.referenceNumber = resource.referenceNumber;\n o.orderNumber = resource.orderNumber;\n o.date = resource.orderDate;\n o.seller = resource.sellerName;\n o.amount = resource.totalPriceWithDiscount;\n o.orderStatusCode = resource.stateCode;\n o.isPartialStatus = resource.isPartialState;\n o.deliveryDate = resource.deliveryDate;\n o.orderStatusText = orderStatusText(resource.stateCode);\n o.hasError = hasError(resource.stateCode);\n o.hasSuccess = hasSuccess(resource.stateCode);\n return o;\n };\n\n function orderStatusText(code) {\n return code ? gettextCatalog.getString(Enums.orderStatusTexts[code].text) : '';\n }\n\n function hasError(code) {\n return code ? code === 'ERROR' || code === 'CANCELLED' : false;\n }\n\n function hasSuccess(code) {\n return code ? code === 'READYWS' || code === 'INVWS' || code === 'INVWSP' : false;\n }\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/orderOverviewItemModel.js\n// module id = 764\n// module chunks = 0","'use strict';\n\norderProduct.$inject = [\"textBuilder\", \"Enums\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.orderProduct = orderProduct;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction orderProduct(textBuilder, Enums) {\n var clazz = function OrderProduct() {\n var defaults = {\n id: 0,\n type: '',\n name: '',\n productNumber: '',\n promoCode: '',\n productNumberAndPromo: '',\n quantity: '',\n unitPrice: '',\n totalPriceWithoutDiscount: '',\n totalPriceWithDiscount: '',\n discountPercentage: '',\n totalDiscount: '',\n totalDiscountPct: '',\n included_products: null\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n clazz.create = function (resource) {\n var o = new clazz();\n o.id = resource.id;\n o.type = '';\n o.name = resource.displayName;\n o.productNumber = resource.nationalNumber;\n o.promoCode = resource.promoCode;\n o.productNumberAndPromo = textBuilder.getProductNumberAndPromo(o.productNumber, o.promoCode);\n o.quantity = resource.quantity;\n o.unitPrice = resource.price;\n o.discountPercentage = resource.discountPercentage;\n o.totalPriceWithDiscount = resource.totalPriceWithDiscount;\n o.totalDiscountAmount = resource.totalDiscountAmount;\n o.totalPriceWithoutDiscount = resource.totalPriceWithDiscount + resource.totalDiscountAmount;\n o.status = resource.status;\n o.hasSuccess = hasSuccess(resource.statusCode);\n o.hasError = hasError(resource.statusCode);\n o.statusCode = resource.status;\n o.reason = resource.reason;\n o.reasonCode = resource.reasonCode;\n\n if (resource.content && resource.content.length > 0) {\n o.included_products = _lodash2.default.map(resource.content, function (i) {\n return {\n name: i.displayName,\n quantity: i.quantity,\n productNumber: i.nationalNumber,\n statusCode: i.statusCode\n };\n });\n }\n return o;\n };\n\n function hasSuccess(code) {\n return code ? code === Enums.orderProductStatusCodes.CONFIRMED.value || code === Enums.orderProductStatusCodes.CON.value : false;\n }\n\n function hasError(code) {\n return code ? code === Enums.orderProductStatusCodes.ERROR.value || code === Enums.orderProductStatusCodes.CANCELLED.value || code === Enums.orderProductStatusCodes.CAN.value : false;\n }\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/orderProductModel.js\n// module id = 765\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.outletCategory = outletCategory;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction outletCategory() {\n var clazz = function OutletCategory() {\n var defaults = {\n id: 0,\n startDate: null,\n endDate: null,\n sequence: 0,\n url: null,\n imagePath: null,\n name: null,\n languageId: 0\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n clazz.create = function (resource) {\n var o = new clazz();\n o.id = resource.id;\n o.startDate = resource.startDate;\n o.endDate = resource.endDate;\n o.sequence = resource.priority;\n o.url = resource.url;\n o.imagePath = resource.imagePath;\n o.name = resource.name;\n o.languageId = resource.defaultLanguageId;\n return o;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/outletCategoryModel.js\n// module id = 766\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.outletHomePage = outletHomePage;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction outletHomePage() {\n var clazz = function OutletHomePage() {\n var defaults = {\n id: 0,\n topTitle: null,\n bottomTitle: null,\n topText: null,\n languageId: 0\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n clazz.create = function (resource) {\n var o = new clazz();\n o.id = resource.id;\n o.topTitle = resource.topTitle;\n o.bottomTitle = resource.bottomTitle;\n o.topText = resource.topText;\n o.languageId = resource.defaultLanguageId;\n return o;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/outletHomePageModel.js\n// module id = 767\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.packageItem = packageItem;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction packageItem() {\n var clazz = function HelpItem() {\n var defaults = {\n id: ''\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n clazz.create = function (resource) {\n var o = new clazz();\n o.id = resource.id;\n return o;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/packageItemModel.js\n// module id = 768\n// module chunks = 0","'use strict';\n\npaging.$inject = [\"Enums\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.paging = paging;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction paging(Enums) {\n var clazz = function Paging() {\n var defaults = {\n totalItems: 0,\n itemsPerPage: Enums.getAmounts.default,\n page: 1,\n pageCount: 1,\n pageNumbers: []\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n _lodash2.default.extend(clazz.prototype, {\n update: function update(page) {\n this.pageCount = this.getPageCount();\n this.pageNumbers = this.getPageNumbers(page);\n },\n getPageCount: function getPageCount() {\n return Math.floor((this.totalItems + this.itemsPerPage - 1) / this.itemsPerPage);\n },\n getPageNumbers: function getPageNumbers(page) {\n var pageCount = this.getPageCount();\n var pageObjects = [];\n\n if (pageCount <= 5) {\n for (var i = 1; i <= pageCount; i++) {\n pageObjects.push({ index: i, isHiddenOnMobile: false });\n }\n } else {\n // when current page is 1, 2 or 3\n // - show 1 2 3 4 at the beginning (on mobile: hide 4)\n // - add ellipses\n // - add n\n if (page === 1 || page === 2 || page === 3) {\n pageObjects.push({ index: 1, isHiddenOnMobile: false });\n pageObjects.push({ index: 2, isHiddenOnMobile: false });\n pageObjects.push({ index: 3, isHiddenOnMobile: false });\n pageObjects.push({ index: 4, isHiddenOnMobile: true });\n pageObjects.push({ isEllipses: '...', isHiddenOnMobile: false });\n pageObjects.push({ index: pageCount, isHiddenOnMobile: false });\n }\n\n // when current page is n, n-1, n-2\n // add 1\n // - add ellipses\n // - show n-3 n-2 n-1 n at the end (on mobile: hide n-3)\n else if (page === pageCount || page === pageCount - 1 || page === pageCount - 2) {\n pageObjects.push({ index: 1, isHiddenOnMobile: false });\n pageObjects.push({ isEllipses: '...', isHiddenOnMobile: false });\n pageObjects.push({ index: pageCount - 3, isHiddenOnMobile: true });\n pageObjects.push({ index: pageCount - 2, isHiddenOnMobile: false });\n pageObjects.push({ index: pageCount - 1, isHiddenOnMobile: false });\n pageObjects.push({ index: pageCount, isHiddenOnMobile: false });\n }\n\n // when current page (p) is anything else\n // - add 1\n // - add ellipses\n // - add p-1 p p+1 (on mobile: hide p-1 and p+1)\n // - add ellipses\n // - add n\n else {\n pageObjects.push({ index: 1, isHiddenOnMobile: false });\n pageObjects.push({ isEllipses: '...', isHiddenOnMobile: false });\n pageObjects.push({ index: page - 1, isHiddenOnMobile: true });\n pageObjects.push({ index: page, isHiddenOnMobile: false });\n pageObjects.push({ index: page + 1, isHiddenOnMobile: true });\n pageObjects.push({ isEllipses: '...', isHiddenOnMobile: false });\n pageObjects.push({ index: pageCount, isHiddenOnMobile: false });\n }\n }\n\n return pageObjects;\n },\n getSkipValue: function getSkipValue(page, itemsPerPage) {\n return (page - 1) * itemsPerPage;\n }\n });\n\n clazz.create = function (resource) {\n var o = new clazz();\n o.totalItems = resource.totalItems;\n o.itemsPerPage = resource.itemsPerPage;\n o.page = resource.page;\n o.pageCount = o.getPageCount();\n o.pageNumbers = o.getPageNumbers(o.page);\n return o;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/pagingModel.js\n// module id = 769\n// module chunks = 0","'use strict';\n\npartnershipDetail.$inject = [\"ProductOverviewItem\", \"Contract\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.partnershipDetail = partnershipDetail;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction partnershipDetail(ProductOverviewItem, Contract) {\n var clazz = function PartnershipDetail() {\n var defaults = {\n id: 0,\n partner: null,\n featuredImage: null,\n title: null,\n leading: null,\n content: null,\n summaryList: null,\n summary: null,\n gallery: null,\n links: null,\n callToActionContent: null,\n callToActionLinks: null,\n sellerContactPersons: null,\n type: '',\n typeName: '',\n contracts: null,\n discounts: null,\n hasNoLinkedContracts: null,\n category: null\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n clazz.create = function (resource, shopProductItems) {\n var partnership = new clazz();\n partnership.id = resource.id;\n partnership.featuredImage = resource.featuredImage;\n partnership.partner = resource.partner;\n partnership.title = resource.title;\n partnership.leading = resource.leading;\n partnership.content = resource.content;\n partnership.summaryList = resource.summaryList;\n partnership.summary = resource.summary;\n partnership.links = resource.links;\n partnership.gallery = resource.gallery;\n partnership.callToActionContent = resource.callToActionContent;\n partnership.callToActionLinks = resource.callToActionLinks;\n partnership.sellerContactPersons = resource.sellerContactPersons;\n partnership.type = resource.type;\n partnership.typeName = resource.typeName;\n partnership.contracts = resource.contracts.map(function (c) {\n return Contract.create(c);\n });\n partnership.hasNoLinkedContracts = resource.hasNoLinkedContracts;\n partnership.discounts = resource.discounts.map(function (d) {\n return ProductOverviewItem.getClass().create(d, shopProductItems);\n });\n partnership.category = resource.category;\n return partnership;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/partnershipDetail.js\n// module id = 770\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.partnership = partnership;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction partnership() {\n var clazz = function Partnership() {\n var defaults = {\n id: 0,\n featuredImagePath: '',\n featuredImageDescription: '',\n partnerName: null,\n title: null,\n type: '',\n typeName: ''\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n clazz.create = function (resource) {\n var partnership = new clazz();\n partnership.id = resource.id;\n partnership.featuredImagePath = resource.featuredImagePath;\n partnership.featuredImageDescription = resource.featuredImageDescription;\n partnership.partnerName = resource.partnerName;\n partnership.title = resource.title;\n partnership.type = resource.type;\n partnership.typeName = resource.typeName;\n return partnership;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/partnershipModel.js\n// module id = 771\n// module chunks = 0","'use strict';\n\npartnershipOverview.$inject = [\"Paging\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.partnershipOverview = partnershipOverview;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction partnershipOverview(Paging) {\n var clazz = function PartnershipOverview() {\n var defaults = {\n partnerships: [],\n isLoadingInitial: false,\n isLoading: false,\n errorOccurred: false,\n paging: null\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n clazz.create = function (pageSize) {\n var partnershipOverview = new clazz();\n partnershipOverview.partnerships = [];\n partnershipOverview.paging = Paging.create({ totalItems: 0, itemsPerPage: pageSize ? pageSize : 12, page: 1, pageCount: 1, pageNumbers: [] });\n return partnershipOverview;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/partnershipOverviewModel.js\n// module id = 772\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.productDiscount = productDiscount;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction productDiscount() {\n var clazz = function ProductDiscount() {\n var defaults = {\n productDiscounts: [],\n totalPriceDiscounts: []\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n clazz.create = function (resource) {\n var o = new clazz();\n o.allProductDiscounts = resource.productDiscounts;\n o.totalPriceDiscounts = resource.totalPriceDiscounts;\n return o;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/productDiscountModel.js\n// module id = 773\n// module chunks = 0","'use strict';\n\nproductFilterRequest.$inject = [\"Enums\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.productFilterRequest = productFilterRequest;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction productFilterRequest(Enums) {\n var clazz = function ProductFilterRequest() {\n var defaults = {\n context: 0,\n DiscountTypeId: null,\n SellerId: null,\n SellerPortalProductCategoryTypeId: null,\n MediPimBrandId: null,\n CategoryId: null,\n ProductName: null,\n IsDiscountView: false,\n CacheFilter: false\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n clazz.createForHomePage = function () {\n var request = new clazz();\n request.context = Enums.searchContext.none.id;\n request.DiscountTypeId = null;\n request.SellerId = null;\n request.SellerPortalProductCategoryTypeId = null;\n request.MediPimBrandId = null;\n request.CategoryId = null;\n request.ProductName = null;\n request.IsDiscountView = false;\n request.CacheFilter = true;\n return request;\n };\n\n clazz.createForDiscounts = function (discountTypeId) {\n var request = new clazz();\n request.context = Enums.searchContext.discount.id;\n request.DiscountTypeId = discountTypeId;\n request.SellerId = null;\n request.SellerPortalProductCategoryTypeId = null;\n request.MediPimBrandId = null;\n request.CategoryId = null;\n request.ProductName = null;\n request.IsDiscountView = true;\n request.CacheFilter = true;\n return request;\n };\n\n clazz.createForSearch = function (searchValue) {\n var request = new clazz();\n request.context = Enums.searchContext.search.id;\n request.DiscountTypeId = null;\n request.SellerId = null;\n request.SellerPortalProductCategoryTypeId = null;\n request.MediPimBrandId = null;\n request.CategoryId = null;\n request.ProductName = searchValue;\n request.IsDiscountView = false;\n request.CacheFilter = false;\n return request;\n };\n\n clazz.createForBrand = function (brandId) {\n var request = new clazz();\n request.context = Enums.searchContext.brand.id;\n request.DiscountTypeId = null;\n request.SellerId = null;\n request.SellerPortalProductCategoryTypeId = null;\n request.MediPimBrandId = brandId;\n request.CategoryId = null;\n request.ProductName = null;\n request.IsDiscountView = false;\n request.CacheFilter = true;\n return request;\n };\n\n clazz.createForCategory = function (categoryId) {\n var request = new clazz();\n request.context = Enums.searchContext.category.id;\n request.DiscountTypeId = null;\n request.SellerId = null;\n request.SellerPortalProductCategoryTypeId = null;\n request.MediPimBrandId = null;\n request.CategoryId = categoryId === 0 ? null : categoryId;\n request.ProductName = null;\n request.IsDiscountView = false;\n request.CacheFilter = true;\n return request;\n };\n\n clazz.createForSellerProducts = function (sellerId, categoryId) {\n var request = new clazz();\n request.context = Enums.searchContext.seller.id;\n request.DiscountTypeId = null;\n request.SellerId = sellerId;\n request.SellerPortalProductCategoryTypeId = categoryId ? categoryId : null;\n request.MediPimBrandId = null;\n request.CategoryId = categoryId ? categoryId : null;\n request.ProductName = null;\n request.IsDiscountView = false;\n request.CacheFilter = true;\n return request;\n };\n\n clazz.createForSellerDiscounts = function (sellerId) {\n var request = new clazz();\n request.context = Enums.searchContext.seller.id;\n request.DiscountTypeId = null;\n request.SellerId = sellerId;\n request.SellerPortalProductCategoryTypeId = null;\n request.MediPimBrandId = null;\n request.CategoryId = null;\n request.ProductName = null;\n request.IsDiscountView = true;\n request.CacheFilter = true;\n return request;\n };\n\n clazz.createForSellerCategory = function (sellerId, sellerCategoryId) {\n var request = new clazz();\n request.context = Enums.searchContext.seller.id;\n request.DiscountTypeId = null;\n request.SellerId = sellerId;\n request.SellerPortalProductCategoryTypeId = sellerCategoryId;\n request.MediPimBrandId = null;\n request.CategoryId = null;\n request.ProductName = null;\n request.IsDiscountView = false;\n request.CacheFilter = true;\n return request;\n };\n\n clazz.createForSellerDetailDiscounts = function (sellerId) {\n var request = new clazz();\n request.context = Enums.searchContext.seller.id;\n request.DiscountTypeId = null;\n request.SellerId = sellerId;\n request.SellerPortalProductCategoryTypeId = null;\n request.MediPimBrandId = null;\n request.CategoryId = null;\n request.ProductName = null;\n request.IsDiscountView = true;\n request.CacheFilter = true;\n return request;\n };\n\n clazz.createForSellerDetailProducts = function (sellerId) {\n var request = new clazz();\n request.context = Enums.searchContext.seller.id;\n request.DiscountTypeId = null;\n request.SellerId = sellerId;\n request.SellerPortalProductCategoryTypeId = null;\n request.MediPimBrandId = null;\n request.CategoryId = null;\n request.ProductName = null;\n request.IsDiscountView = false;\n request.CacheFilter = true;\n return request;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/productFilterRequest.js\n// module id = 774\n// module chunks = 0","'use strict';\n\nproduct.$inject = [\"common\", \"textBuilder\", \"MediPimData\", \"ProductTypes\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.product = product;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction product(common, textBuilder, MediPimData, ProductTypes) {\n // prodFactory and getClass are created to be able to use the ProductModel recursively\n var prodFactory = {\n getClass: function getClass() {\n\n var clazz = function Product() {\n var defaults = {\n id: null,\n name: '',\n discountName: '',\n displayName: '',\n message: null,\n type: '',\n image: '',\n sellerId: 0,\n sellerName: '',\n brand: '',\n discount: null,\n productNumber: '',\n EAN: '',\n ATC: '',\n UDI: '',\n NUT: '',\n promocode: '',\n price: 0,\n tax: 0,\n other_discounts: [],\n included_products: [],\n amountInPack: 0,\n minQuantityInPanacee: 0,\n maxQuantityInPanacee: 0,\n maxDiscount: 0,\n // calculated totals and discount\n quantity: 0,\n internalQuantity: 1,\n totalPriceDiscountIds: [],\n activeDiscountIds: [],\n discountAmount: 0,\n totalPriceWithoutDiscount: 0,\n totalDiscount: 0,\n totalPriceWithDiscount: 0,\n discountText: '',\n time_remaining: null,\n isInCart: false,\n isSellableInStore: null,\n isSellableAsSingleProduct: true,\n productSourceCode: null,\n portalContractTypeCode: null,\n counterStatus: null,\n counter: null,\n mediPimData: null,\n productNumberAndPromo: '',\n grossProfit: undefined,\n grossProfitAmount: undefined,\n panaceeQuantity: 0,\n totalProductsAmountInPanacee: 0,\n expirationDate: null,\n quantityToAddForHighestDiscount: 0,\n unitPriceWithDiscount: 0,\n topNewsitems: null,\n productDiscounts: null,\n certificates: []\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n _lodash2.default.extend(clazz.prototype, {\n getTotalQuantity: function getTotalQuantity() {\n return this.type === ProductTypes.panacee.clientValue ? _lodash2.default.sumBy(this.included_products, function (p) {\n return p.quantity * p.internalQuantity;\n }) : this.quantity;\n },\n\n getTotalPriceWithoutDiscount: function getTotalPriceWithoutDiscount() {\n var result = this.type === ProductTypes.panacee.clientValue ? _lodash2.default.sumBy(this.included_products, function (p) {\n if (p.maxOrderAmount > 0 && p.quantity > p.maxOrderAmount) {\n return p.maxOrderAmount * p.price;\n }\n if (p.minOrderAmount > 0 && p.quantity >= p.minOrderAmount) {\n return p.price * p.quantity;\n } else if (p.minOrderAmount > 0 && p.quantity < p.minOrderAmount) {\n return 0;\n }\n\n return p.price * p.quantity;\n }) : this.price * this.quantity;\n result = Math.round(result * 10000) / 10000;\n\n //console.log('getTotalPriceWithoutDiscount', result);\n\n return result;\n },\n\n getTotalPriceWithDiscount: function getTotalPriceWithDiscount() {\n var result = this.totalPriceWithoutDiscount - this.totalDiscount;\n result = Math.round(result * 10000) / 10000;\n\n //console.log('getTotalPriceWithDiscount', result);\n\n return result;\n },\n\n getTotalDiscount: function getTotalDiscount() {\n // discount is always on group level (or product level for a single product)\n var totalPriceWithoutDiscount = this.getTotalPriceWithoutDiscount();\n var discountPct = this.getDiscountPctForQuantity();\n var result = totalPriceWithoutDiscount * discountPct / 100;\n return Math.round(result * 10000) / 10000;\n },\n\n updateTotals: function updateTotals() {\n var _this = this;\n\n this.quantity = this.getTotalQuantity();\n this.totalDiscount = this.getTotalDiscount();\n this.unitPriceWithDiscount = this.price - this.price * this.discountPct / 100;\n this.totalPriceWithoutDiscount = this.getTotalPriceWithoutDiscount();\n this.totalPriceWithDiscount = this.getTotalPriceWithDiscount();\n this.quantityToAddForHighestDiscount = this.getQuantityToAddForHighestDiscount();\n this.panaceeProductMinMaxMessage = this.getPanaceeProductMinMaxMessage();\n this.totalProductsAmountInPanacee = 0;\n this.included_products.forEach(function (panaceeProduct) {\n _this.totalProductsAmountInPanacee += panaceeProduct.panaceeQuantity;\n });\n },\n\n getQuantityToAddForHighestDiscount: function getQuantityToAddForHighestDiscount() {\n return this.highestDiscount ? this.highestDiscount.amount - this.getTotalQuantity() : 0;\n },\n\n getDiscountPctForQuantity: function getDiscountPctForQuantity() {\n // NOTE: for now, we assume that all discounts are percentages\n if (!this.discount || !this.discount.discountRanges || this.discount.discountRanges.length <= 0 || !this.getAllConditionsMet()) {\n return 0;\n }\n\n // NOTE: discount ranges are sorted from high to low\n var qty = this.getTotalQuantity();\n for (var i = 0; i < this.discount.discountRanges.length; i++) {\n var range = this.discount.discountRanges[i];\n if (qty >= range.amount) {\n return range.discount;\n }\n }\n\n return 0;\n },\n getAllConditionsMet: function getAllConditionsMet() {\n var met = true;\n this.included_products.forEach(function (panaceeProduct) {\n if (panaceeProduct.minOrderAmount > panaceeProduct.quantity) {\n met = false;\n }\n });\n return met;\n },\n getHighestDiscount: function getHighestDiscount() {\n if (!this.discount || !this.discount.discountRanges || this.discount.discountRanges.length <= 0) {\n return null;\n }\n return this.discount.discountRanges[0];\n },\n\n getLowestDiscount: function getLowestDiscount() {\n if (!this.discount || !this.discount.discountRanges || this.discount.discountRanges.length <= 0) {\n return null;\n }\n return this.discount.discountRanges[this.discount.discountRanges.length - 1];\n },\n\n getPiecesText: function getPiecesText(i) {\n return i === 1 ? 'st.' : 'st.';\n },\n\n getPanaceeProductMinMaxMessage: function getPanaceeProductMinMaxMessage() {\n if (this.minQuantityInPanacee && this.minQuantityInPanacee > 0 && this.maxQuantityInPanacee && this.maxQuantityInPanacee > 0 && this.maxQuantityInPanacee !== 999999) {\n return 'min. ' + this.minQuantityInPanacee + ' ' + this.getPiecesText(this.minQuantityInPanacee) + ', max. ' + this.maxQuantityInPanacee + ' ' + this.getPiecesText(this.maxQuantityInPanacee);\n }\n if (this.minQuantityInPanacee && this.minQuantityInPanacee > 0) {\n return 'min. ' + this.minQuantityInPanacee + ' ' + this.getPiecesText(this.minQuantityInPanacee);\n }\n if (this.maxQuantityInPanacee && this.maxQuantityInPanacee > 0 && this.maxQuantityInPanacee !== 999999) {\n return 'max. ' + this.maxQuantityInPanacee + ' ' + this.getPiecesText(this.maxQuantityInPanacee);\n }\n },\n\n getCartCurrentDiscount: function getCartCurrentDiscount(cartProducts) {\n var this_ = this;\n\n var productSearch = cartProducts.find(function (shoppingCartProduct) {\n if (this_.nationalNumber) {\n return shoppingCartProduct.productNumber === this_.nationalNumber;\n } else {\n var shoppingCartProductSearch = shoppingCartProduct.productWithPossibleDiscounts.find(function (productWithPossibleDiscount) {\n return productWithPossibleDiscount.id === this_.id;\n });\n return shoppingCartProductSearch;\n }\n });\n return productSearch ? productSearch.discountPercentage : 0;\n },\n\n getTotalPriceDiscountId: function getTotalPriceDiscountId(cartProducts) {\n var _this2 = this;\n\n var productSearch = cartProducts.find(function (cartProduct) {\n return cartProduct.productNumber === _this2.nationalNumber;\n });\n return productSearch ? productSearch.totalPriceDiscountId : 0;\n },\n\n getTotalPriceDiscountCode: function getTotalPriceDiscountCode(cartProducts) {\n var _this3 = this;\n\n var productSearch = cartProducts.find(function (cartProduct) {\n return cartProduct.productNumber === _this3.nationalNumber;\n });\n return productSearch ? productSearch.totalPriceDiscountPromoCode : 0;\n },\n\n getPanaceeQuantity: function getPanaceeQuantity() {\n var quantity = 0;\n if (this.quantity >= this.minOrderAmount && (this.maxOrderAmount === 0 || this.quantity <= this.maxOrderAmount)) {\n quantity = this.quantity * this.internalQuantity;\n } else if (this.quantity > this.maxOrderAmount) {\n quantity = this.maxOrderAmount * this.internalQuantity;\n }\n return quantity;\n },\n\n //update all the discount fields\n getCartFields: function getCartFields(product, shoppingCartProducts) {\n //Find the product that has to updated in the list of products that are in the shoppingcart\n var productToUpdate = shoppingCartProducts.find(function (shoppingCartProduct) {\n if (product.nationalNumber && shoppingCartProduct.productNumber === product.nationalNumber) {\n return shoppingCartProduct.productNumber === product.nationalNumber;\n } else {\n var shoppingCartProductSearch = shoppingCartProduct.productWithPossibleDiscounts.find(function (productWithPossibleDiscount) {\n return productWithPossibleDiscount.id === product.id;\n });\n return shoppingCartProductSearch ? true : false;\n }\n });\n\n //SINGLE PRODUCT - PARENT PRODUCT update all the product fields with the values from the server\n if (productToUpdate) {\n product.discountPct = productToUpdate.discountPercentage;\n product.grossProfit = productToUpdate.grossProfit * 100;\n product.grossProfitAmount = productToUpdate.grossProfitAmount;\n product.promocode = productToUpdate.discountPromoCode;\n product.quantity = productToUpdate.amount;\n product.totalDiscount = productToUpdate.discountAmount;\n product.activeDiscountId = productToUpdate.discountId;\n product.totalPriceDiscountId = productToUpdate.totalPriceDiscountId;\n product.totalPriceDiscountPromoCode = productToUpdate.totalPriceDiscountPromoCode;\n\n if (typeof product.getPanaceeQuantity === 'function') {\n product.panaceeQuantity = product.getPanaceeQuantity();\n } else {\n product.panaceeQuantity = 0;\n }\n\n //clear the discountId's\n product.activeDiscountIds = [];\n product.totalPriceDiscountIds = [];\n\n //add the new discount id's\n productToUpdate.productWithPossibleDiscounts.map(function (discount) {\n product.activeDiscountIds.push(discount.discountIds);\n product.totalPriceDiscountIds.push(discount.totalPriceDiscountId);\n });\n } else {\n product.quantity = 0;\n product.discountPct = 0;\n product.promocode = null;\n product.activeDiscountId = 0;\n product.totalPriceDiscountId = 0;\n product.totalPriceDiscountPromoCode = null;\n product.panaceeQuantity = 0;\n product.grossProfit = 0;\n product.grossProfitAmount = 0;\n product.activeDiscountIds = [];\n product.totalPriceDiscountIds = [];\n }\n\n // PANACEE if the product is a panacee update the childproducts\n if (product.type === ProductTypes.panacee.clientValue) {\n\n product.totalProductsAmountInPanacee = 0;\n\n product.included_products.forEach(function (includedProduct) {\n\n //find the child product in the shoppingcart\n var productToUpdate = shoppingCartProducts.find(function (shoppingCartProduct) {\n if (includedProduct.nationalNumber && shoppingCartProduct.productNumber === includedProduct.nationalNumber) {\n return shoppingCartProduct.productNumber === includedProduct.nationalNumber;\n } else {\n var shoppingCartProductSearch = shoppingCartProduct.productWithPossibleDiscounts.find(function (productWithPossibleDiscount) {\n return productWithPossibleDiscount.id === product.id;\n });\n return shoppingCartProductSearch ? true : false;\n }\n });\n\n if (productToUpdate) {\n\n //update the total products amount\n product.totalProductsAmountInPanacee += productToUpdate.amount * includedProduct.internalQuantity;\n\n //update the child\n includedProduct.grossProfit = productToUpdate.grossProfit * 100;\n includedProduct.grossProfitAmount = productToUpdate.grossProfitAmount;\n includedProduct.promocode = productToUpdate.discountPromoCode;\n includedProduct.discountPct = productToUpdate.discountPercentage;\n includedProduct.panaceeQuantity = includedProduct.getPanaceeQuantity();\n\n //update the discount values for panacee contents\n var productDiscount = productToUpdate.productWithPossibleDiscounts.find(function (productWithDiscount) {\n return productWithDiscount.id === includedProduct.id;\n });\n\n if (productDiscount) {\n includedProduct.activeDiscountIds = [productDiscount.discountIds];\n includedProduct.totalPriceDiscountIds = [productDiscount.totalPriceDiscountId];\n includedProduct.totalPriceDiscountPromoCode = productDiscount.totalPriceDiscountPromoCode;\n }\n } else {\n includedProduct.discountPct = 0;\n includedProduct.activeDiscountIds = [];\n includedProduct.promocode = null;\n includedProduct.totalPriceDiscountIds = 0;\n includedProduct.totalPriceDiscountPromoCode = null;\n includedProduct.grossProfit = 0;\n includedProduct.panaceeQuantity = 0;\n }\n });\n } else if (product.type === common.serverTypes.getProductType('PROMOPACK')) {\n // PROMOPACK if the product is a panacee update the childproducts\n product.included_products.forEach(function (includedProduct) {\n includedProduct.totalPriceDiscountIds = product.totalPriceDiscountIds;\n includedProduct.activeDiscountIds = product.activeDiscountIds;\n includedProduct.discountPct = product.getCartCurrentDiscount(shoppingCartProducts);\n includedProduct.totalPriceDiscountId = product.getTotalPriceDiscountId(shoppingCartProducts);\n includedProduct.totalPriceDiscountPromoCode = product.getTotalPriceDiscountCode(shoppingCartProducts);\n });\n }\n\n //On a product detail page, update the totals\n product.updateTotals();\n\n //Return the updated product\n return product;\n }\n\n });\n\n clazz.create = function (resource, cart, parentProduct, rootProductType, topNewsitems, productDiscounts) {\n var product = new clazz();\n product.type = common.serverTypes.getProductType(resource.productTypeCode);\n product.id = resource.productId;\n product.name = common.toPascalCase(resource.productName);\n product.displayName = common.toPascalCase(resource.discountName || resource.productName);\n product.message = resource.message; //TODO\n product.price = resource.pharmacyPrice;\n product.publicPrice = resource.publicPrice;\n product.netPublicPrice = resource.netPublicPrice;\n product.image = resource.imagePath;\n product.sellerId = resource.sellerId;\n product.sellerName = resource.sellerName;\n product.nationalNumber = resource.productNumber ? resource.productNumber : resource.nationalNumber;\n product.promocode = resource.promocode;\n product.productNumberAndPromo = textBuilder.getProductNumberAndPromo(product.nationalNumber, product.promocode);\n product.isSellableInStore = resource.isSellableInStore ? true : false;\n product.isSellableAsSingleProduct = resource.isSellableAsSingleProduct;\n product.productSourceCode = resource.productSourceCode;\n product.portalContractTypeCode = resource.portalContractTypeCode;\n product.counterStatus = resource.counterStatus;\n product.counter = resource.counter;\n product.maxDiscount = resource.maxDiscount;\n product.grossProfit = resource.grossProfit;\n product.grossProfitAmount = resource.grossProfitAmount;\n product.tax = resource.tax;\n product.amountInPack = resource.quantity;\n product.minOrderAmount = resource.minOrderAmount;\n product.maxOrderAmount = resource.maxOrderAmount;\n product.minQuantityInPanacee = resource.minQuantityInPanacee || 0;\n product.maxQuantityInPanacee = resource.maxQuantityInPanacee || 999999;\n product.time_remaining = resource.time_remaining;\n product.orderTotalPriceDiscountIds = resource.orderTotalPriceDiscountIds || [];\n product.allowSpecial = resource.allowSpecial;\n product.internalQuantity = resource.internalQuantity;\n product.totalProductsAmountInPanacee = 0;\n product.minOrderAmountRequired = resource.minOrderAmountRequired;\n product.expirationDate = resource.expirationDate;\n product.topNewsitems = topNewsitems;\n product.productDiscounts = productDiscounts;\n product.isVipSeller = resource.isVipSeller;\n // set the discount ranges\n var discountRanges = _lodash2.default.map(resource.discountRanges, function (discountRange) {\n return {\n discount: parseFloat(discountRange.discount),\n discountValueTypeSymbol: discountRange.discountValueTypeSymbol,\n amount: parseInt(discountRange.from)\n };\n });\n\n // set the discount\n product.discountId = resource.discountId;\n product.discount = {\n id: resource.discountId,\n name: resource.discountName,\n description: resource.discountDescription,\n startDate: resource.discountStartDate,\n endDate: resource.discountEndDate,\n sellerName: resource.sellerName,\n discountType: resource.productTypeCode,\n discountRanges: _lodash2.default.orderBy(discountRanges, 'amount', 'desc')\n };\n\n // set the medipim data\n if (resource.mediPimData) {\n product.mediPimData = MediPimData.create(resource.mediPimData);\n }\n\n // Get calculated fields for toolbar data\n product.highestDiscount = product.getHighestDiscount();\n product.lowestDiscount = product.getLowestDiscount();\n\n //calculated discount fields form the cart\n if (cart) {\n product = product.getCartFields(product, cart);\n }\n\n // create the included products if the product is a panacee or pack\n var includedProduct = null;\n product.included_products = [];\n if (product.type === ProductTypes.pack.clientValue && resource.promoPackContents && resource.promoPackContents.length > 0) {\n for (var i = 0; i < resource.promoPackContents.length; i++) {\n resource.promoPackContents[i].isSellableInStore = true;\n includedProduct = prodFactory.getClass().create(resource.promoPackContents[i], cart, product, rootProductType, true);\n includedProduct.quantity = resource.promoPackContents[i].quantity; //set the quantity for promopack only\n product.included_products.push(includedProduct);\n }\n }\n\n if (product.type === ProductTypes.panacee.clientValue && resource.panaceeContents && resource.panaceeContents.length > 0) {\n for (var _i = 0; _i < resource.panaceeContents.length; _i++) {\n resource.panaceeContents[_i].isSellableInStore = true;\n includedProduct = prodFactory.getClass().create(resource.panaceeContents[_i], cart, product, rootProductType, true);\n product.included_products.push(includedProduct);\n }\n }\n\n return product;\n };\n\n return clazz;\n }\n };\n\n return prodFactory;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/productModel.js\n// module id = 775\n// module chunks = 0","'use strict';\n\nproductOverviewItem.$inject = [\"common\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.productOverviewItem = productOverviewItem;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction productOverviewItem(common) {\n // prodFactory and getClass are created to be able to use the ProductModel recursively\n var prodFactory = {\n getClass: function getClass() {\n var clazz = function ProductOverviewItem() {\n var defaults = {\n id: null,\n name: '',\n discountName: '',\n displayName: '',\n type: '',\n image: '',\n sellerId: 0,\n sellerName: '',\n brand: '',\n discountId: null,\n discount: null,\n productNumber: '',\n promocode: '',\n productNumberAndPromo: '',\n price: 0,\n time_remaining: null,\n isInCart: false,\n isSellableInStore: null,\n isVipSeller: null,\n portalContractTypeCode: null,\n counterStatus: null,\n counter: null,\n grossProfit: undefined,\n grossProfitAmount: 0,\n // calculated totals and discount\n highestDiscount: null,\n lowestDiscount: null,\n quantity: 0,\n quantityToAddForHighestDiscount: 0,\n unitPriceWithDiscount: 0,\n totalPriceWithoutDiscount: 0,\n totalDiscount: 0,\n totalPriceWithDiscount: 0,\n discountPct: 0,\n other_discounts: [],\n priority: 0,\n // tmp\n message: null,\n activeDiscountIds: [],\n totalPriceDiscountIds: [],\n expirationDate: null\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n _lodash2.default.extend(clazz.prototype, {\n getInitialQuantity: function getInitialQuantity(cart) {\n // when the product (with the correct discount) is in the cart, get the quantity from the cart\n var quantityFromCart = 0;\n if (cart) {\n quantityFromCart = cart.getProductQuantity(this.id, this.discountId);\n if (quantityFromCart > 0) {\n return quantityFromCart;\n }\n }\n\n var highestDiscount = this.getHighestDiscount();\n return highestDiscount ? highestDiscount.amount : 1;\n },\n\n getQuantityToAddForHighestDiscount: function getQuantityToAddForHighestDiscount() {\n if (!this.highestDiscount) {\n return 0;\n }\n\n return this.highestDiscount.amount - this.quantity;\n },\n\n getDiscountPctForQuantity: function getDiscountPctForQuantity() {\n // NOTE: for now, we assume that all discounts are percentages\n if (!this.discount || !this.discount.ranges || this.discount.ranges.length <= 0) {\n return 0;\n }\n\n // NOTE: discounts are sorted from high to low\n for (var i = 0; i < this.discount.ranges.length; i++) {\n var range = this.discount.ranges[i];\n if (this.quantity >= range.amount) {\n return range.discount;\n }\n }\n\n return 0;\n },\n\n getHighestDiscount: function getHighestDiscount() {\n if (!this.discount || !this.discount.ranges || this.discount.ranges.length <= 0) {\n return null;\n }\n\n return this.discount.ranges[0];\n },\n\n getLowestDiscount: function getLowestDiscount() {\n if (!this.discount || !this.discount.ranges || this.discount.ranges.length <= 0) {\n return null;\n }\n return this.discount.ranges[this.discount.ranges.length - 1];\n },\n getCartCurrentDiscount: function getCartCurrentDiscount(cartProducts) {\n var _this = this;\n\n var productSearch = cartProducts.find(function (cartProduct) {\n return cartProduct.id === _this.id;\n });\n return productSearch ? productSearch.discountPercentage : 0;\n },\n getCartCurrentDiscountPromoCode: function getCartCurrentDiscountPromoCode(cartProducts) {\n var _this2 = this;\n\n var productSearch = cartProducts.find(function (cartProduct) {\n return cartProduct.id === _this2.id;\n });\n return productSearch ? productSearch.discountPromoCode : null;\n },\n getTotalDiscount: function getTotalDiscount(cartProducts) {\n var _this3 = this;\n\n var productSearch = cartProducts.find(function (cartProduct) {\n return cartProduct.id === _this3.id;\n });\n return productSearch ? productSearch.discountAmount : null;\n },\n getCartFields: function getCartFields(product, shoppingCartProducts) {\n\n //Find the product that has to updated in the list of products that are in the shoppingcart\n var productToUpdate = shoppingCartProducts.find(function (shoppingCartProduct) {\n if (product.nationalNumber && shoppingCartProduct.productNumber === product.nationalNumber) {\n return shoppingCartProduct.productNumber === product.nationalNumber;\n } else {\n var shoppingCartProductSearch = shoppingCartProduct.productWithPossibleDiscounts.find(function (productWithPossibleDiscount) {\n return productWithPossibleDiscount.id === product.id;\n });\n return shoppingCartProductSearch ? true : false;\n }\n });\n\n if (productToUpdate) {\n product.discountPct = productToUpdate.discountPercentage;\n product.grossProfit = productToUpdate.grossProfit * 100;\n product.grossProfitAmount = productToUpdate.grossProfitAmount;\n product.promocode = productToUpdate.discountPromoCode;\n product.quantity = productToUpdate.amount;\n product.totalDiscount = productToUpdate.discountAmount;\n\n //clear the discountId's\n product.activeDiscountIds = [];\n product.totalPriceDiscountIds = [];\n\n //add the new discount id's\n productToUpdate.productWithPossibleDiscounts.map(function (discount) {\n product.activeDiscountIds.push(discount.discountIds);\n product.totalPriceDiscountIds.push(discount.totalPriceDiscountId);\n });\n } else {\n product.quantity = 0;\n product.discountPct = 0;\n product.promocode = null;\n product.activeDiscountId = 0;\n product.totalPriceDiscountId = 0;\n product.panaceeQuantity = 0;\n product.grossProfit = 0;\n product.grossProfitAmount = 0;\n product.activeDiscountIds = [];\n product.totalPriceDiscountIds = [];\n }\n //Return the updated product\n return product;\n }\n });\n\n clazz.create = function (resource, cartProducts) {\n var product = new clazz();\n product.id = resource.productId;\n product.discountId = resource.discountId;\n // On discount pages, discount name should be used\n product.displayName = resource.discountName !== null && resource.discountName !== undefined ? resource.discountName : resource.productName;\n product.image = resource.imagePath;\n product.price = resource.pharmacyPrice;\n product.publicPrice = resource.publicPrice;\n product.netPublicPrice = resource.netPublicPrice;\n product.nationalNumber = resource.productNumber ? resource.productNumber : resource.nationalNumber;\n product.isSellableAsSingleProduct = resource.isSellableAsSingleProduct;\n product.isSellableInStore = resource.isSellableInStore;\n product.isVipSeller = resource.isVipSeller;\n product.isSellable = resource.isSellable;\n product.productCreationDate = resource.productCreationDate;\n product.counterStatus = resource.counterStatus;\n product.counter = resource.counter;\n product.portalContractTypeCode = resource.portalContractTypeCode;\n product.maxDiscount = resource.maxDiscount;\n product.tooLate = resource.tooLate;\n product.productTypeCode = common.serverTypes.getProductType(resource.productTypeCode);\n product.grossProfit = resource.grossProfit;\n product.grossProfitAmount = resource.grossProfitAmount;\n product.sellerName = resource.sellerName;\n product.allowSpecial = resource.allowSpecial;\n product.grossProfitAmount = resource.grossProfitAmount;\n product.expirationDate = resource.expirationDate;\n product.sellerId = resource.sellerId;\n //todo split in rental product\n product.dayPrice = resource.dayPrice;\n product.netPublicPrice = resource.netPublicPrice;\n product.publicPrice = resource.publicPrice;\n product.pharmacyPrice = resource.pharmacyPrice;\n product.rentalDeposit = resource.rentalDeposit;\n product.vat = resource.vat;\n product.imagePath = resource.imagePath;\n\n // Get fields from shoppingcart\n if (cartProducts) {\n product = product.getCartFields(product, cartProducts);\n }\n return product;\n };\n\n return clazz;\n }\n };\n\n return prodFactory;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/productOverviewItemModel.js\n// module id = 776\n// module chunks = 0","'use strict';\n\nproductOverview.$inject = [\"Enums\", \"gettextCatalog\", \"sortProperties\", \"Paging\", \"$state\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.productOverview = productOverview;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction productOverview(Enums, gettextCatalog, sortProperties, Paging, $state) {\n var clazz = function ProductOverview() {\n var defaults = {\n products: [],\n filter: null,\n filters: [],\n paging: null,\n sorting: null,\n productsAvailableForContext: false,\n productsAvailableForCriteria: true,\n isLoadingInitial: false,\n isLoading: false,\n errorOccurred: false\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n _lodash2.default.extend(clazz.prototype, {});\n\n clazz.create = function (context) {\n var productOverview = new clazz();\n productOverview.products = [];\n productOverview.filter = null;\n productOverview.filters = [];\n productOverview.paging = Paging.create({ totalItems: 0, itemsPerPage: parseInt(window.sessionStorage.getItem('pageSize'), 10) || 24, page: 1, pageCount: 1, pageNumbers: [] });\n productOverview.sorting = getSortingByContext(context);\n return productOverview;\n\n function getSortingByContext(context) {\n\n if (context === Enums.searchContext.discount.id || context === Enums.searchContext.seller.id) {\n return {\n enableSorting: true,\n sortProperty: window.localStorage.getItem($state.current.name + '-sortProperty') || 'DiscountDate',\n sortAsc: window.localStorage.getItem($state.current.name + '-sortAsc') || false,\n properties: [sortProperties['DiscountDate'], sortProperties['Name'], sortProperties['UnitPrice']]\n };\n } else {\n return {\n enableSorting: true,\n sortProperty: window.localStorage.getItem($state.current.name + '-sortProperty') || 'Name',\n sortAsc: window.localStorage.getItem($state.current.name + '-sortAsc') || true,\n properties: [sortProperties['Name'], sortProperties['UnitPrice']]\n };\n }\n }\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/productOverviewModel.js\n// module id = 777\n// module chunks = 0","'use strict';\n\nproductSearchRequest.$inject = [\"Enums\", \"queryStringHelper\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.productSearchRequest = productSearchRequest;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction productSearchRequest(Enums, queryStringHelper) {\n var clazz = function ProductSearchRequest() {\n var defaults = {\n Skip: 0,\n Take: 5,\n SortByField: '',\n SortAsc: true,\n context: Enums.searchContext.none.id,\n Name: '',\n OnlyDiscounts: true,\n CategoryFilters: [],\n SellerIds: []\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n _lodash2.default.extend(clazz.prototype, {\n addCategoryFilter: function addCategoryFilter(categoryType, selectedId) {\n var item = _lodash2.default.find(this.CategoryFilters, {\n CategoryType: categoryType\n });\n if (item) {\n item.CategoryIds.push(selectedId);\n } else {\n this.CategoryFilters.push({\n CategoryType: categoryType,\n CategoryIds: [selectedId]\n });\n }\n }\n });\n\n clazz.createForHomePage = function () {\n var request = new clazz();\n request.Skip = 0;\n request.Take = 5;\n request.SortByField = 'DiscountDate';\n request.SortAsc = false;\n request.context = Enums.searchContext.discount.id;\n request.Name = '';\n request.OnlyDiscounts = true;\n request.CategoryFilters = [];\n request.SellerIds = [];\n return request;\n };\n\n clazz.createForDiscounts = function (params, discountTypeId) {\n var request = new clazz();\n request.Skip = params.skip;\n request.Take = params.take;\n request.SortByField = params.sortByField;\n request.SortAsc = params.sortAsc;\n request.context = Enums.searchContext.discount.id;\n request.Name = '';\n request.DiscountTypeIds = [discountTypeId];\n // TODO Make this correct again, changed for demo\n request.OnlyDiscounts = true; //queryStringHelper.getDiscountsOnly(params.filter);\n request.CategoryFilters = queryStringHelper.getCategoryFilters(params.filter);\n request.SellerIds = queryStringHelper.getSellerIds(params.filter);\n return request;\n };\n\n clazz.createForSearch = function (params, searchValue) {\n var request = new clazz();\n request.Skip = params.skip;\n request.Take = params.take;\n request.SortByField = params.sortByField;\n request.SortAsc = params.sortAsc;\n request.context = Enums.searchContext.search.id;\n request.Name = searchValue;\n request.OnlyDiscounts = queryStringHelper.getDiscountsOnly(params.filter);\n request.CategoryFilters = queryStringHelper.getCategoryFilters(params.filter);\n request.SellerIds = queryStringHelper.getSellerIds(params.filter);\n return request;\n };\n\n clazz.createForBrand = function (params, brandId) {\n var request = new clazz();\n request.Skip = params.skip;\n request.Take = params.take;\n request.SortByField = params.sortByField;\n request.SortAsc = params.sortAsc;\n request.context = Enums.searchContext.brand.id;\n request.Name = '';\n request.OnlyDiscounts = queryStringHelper.getDiscountsOnly(params.filter);\n request.CategoryFilters = queryStringHelper.getCategoryFilters(params.filter);\n // add brand to CategoryFilters\n request.CategoryFilters.push({\n CategoryType: Enums.categoryType.brand.id,\n categoryIds: [brandId]\n });\n request.SellerIds = queryStringHelper.getSellerIds(params.filter);\n return request;\n };\n\n clazz.createForCategory = function (params, categoryId) {\n var request = new clazz();\n request.Skip = params.skip;\n request.Take = params.take;\n request.SortByField = params.sortByField;\n request.SortAsc = params.sortAsc;\n request.context = Enums.searchContext.category.id;\n request.Name = '';\n request.OnlyDiscounts = queryStringHelper.getDiscountsOnly(params.filter);\n\n if (categoryId !== 0) {\n request.CategoryFilters = queryStringHelper.getCategoryFilters(params.filter);\n // add category to CategoryFilters\n request.addCategoryFilter(Enums.categoryType.category.id, categoryId);\n } else if (params.filter !== '') {\n request.CategoryFilters = queryStringHelper.getCategoryFilters(params.filter);\n } else {\n request.CategoryFilters = null;\n }\n\n request.SellerIds = queryStringHelper.getSellerIds(params.filter);\n return request;\n };\n\n clazz.createForSellerProducts = function (params, sellerId, categoryId) {\n var request = new clazz();\n request.Skip = params.skip;\n request.Take = params.take;\n request.SortByField = params.sortByField;\n request.SortAsc = params.sortAsc;\n request.context = Enums.searchContext.sellerProducts.id;\n request.Name = '';\n request.OnlyDiscounts = queryStringHelper.getDiscountsOnly(params.filter);\n request.SellerIds = [sellerId];\n\n if (categoryId !== 0 && categoryId) {\n request.CategoryFilters = queryStringHelper.getCategoryFilters(params.filter);\n // add category to CategoryFilters\n request.addCategoryFilter(Enums.categoryType.category.id, categoryId);\n } else if (params.filter !== '') {\n request.CategoryFilters = queryStringHelper.getCategoryFilters(params.filter);\n } else {\n request.CategoryFilters = null;\n }\n\n return request;\n };\n\n clazz.createForSellerDiscounts = function (params, sellerId) {\n var request = new clazz();\n request.Skip = params.skip;\n request.Take = params.take;\n request.SortByField = params.sortByField;\n request.SortAsc = params.sortAsc;\n request.context = Enums.searchContext.seller.id;\n request.Name = '';\n request.OnlyDiscounts = true;\n request.CategoryFilters = queryStringHelper.getCategoryFilters(params.filter);\n request.SellerIds = [sellerId];\n request.DiscountTypeIds = queryStringHelper.getDiscountTypes(params.filter);\n return request;\n };\n\n clazz.createForSellerCategory = function (params, sellerId, sellerCategoryId) {\n var request = new clazz();\n request.Skip = params.skip;\n request.Take = params.take;\n request.SortByField = params.sortByField;\n request.SortAsc = params.sortAsc;\n request.context = Enums.searchContext.seller.id;\n request.Name = '';\n request.OnlyDiscounts = queryStringHelper.getDiscountsOnly(params.filter);\n request.CategoryFilters = queryStringHelper.getCategoryFilters(params.filter);\n request.addCategoryFilter(Enums.categoryType.seller.id, sellerCategoryId);\n request.SellerIds = [sellerId];\n return request;\n };\n\n clazz.createForSellerDetailDiscounts = function (sellerId) {\n var request = new clazz();\n request.Skip = 0;\n request.Take = 5;\n request.SortByField = 'DiscountDate';\n request.SortAsc = false;\n request.context = Enums.searchContext.seller.id;\n request.Name = '';\n request.OnlyDiscounts = true;\n request.CategoryFilters = [];\n request.SellerIds = [sellerId];\n return request;\n };\n\n clazz.createForSellerDetailProducts = function (sellerId) {\n var request = new clazz();\n request.Skip = 0;\n request.Take = 5;\n request.SortByField = 'Date';\n request.SortAsc = false;\n request.context = Enums.searchContext.seller.id;\n request.Name = '';\n request.OnlyDiscounts = false;\n request.CategoryFilters = [];\n request.SellerIds = [sellerId];\n return request;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/productSearchRequest.js\n// module id = 778\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.productSet = productSet;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction productSet() {\n var clazz = function ProductSet() {\n var defaults = {\n id: null,\n quantity: 0\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n _lodash2.default.extend(clazz.prototype, {});\n\n clazz.create = function (context) {\n var productSet = new clazz();\n productSet.id = context.id;\n productSet.quantity = context.quantity;\n return productSet;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/productSetModel.js\n// module id = 779\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.rentalHistoryDetail = rentalHistoryDetail;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction rentalHistoryDetail() {\n var clazz = function RentalHistoryDetail() {\n var defaults = {\n id: null,\n version: 0,\n productId: 0,\n productName: '',\n productImagePath: '',\n sellerArticleNumber: '',\n serialNumber: '',\n startDate: null,\n endDate: null,\n remark: '',\n deposit: 0,\n status: {},\n shippingNoteNumber: '',\n depositRefunded: null,\n depositRefundedDate: null,\n dailyRentalPrice: 0,\n totalRent: 0,\n rentPerMonth: []\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n _lodash2.default.extend(clazz.prototype, {\n calculateRentPerPeriod: function calculateRentPerPeriod(startDate, endDate) {\n if (this.status.code !== '50') {\n var daysBetween = endDate.diff(startDate, 'days') + 1;\n return daysBetween * this.dailyRentalPrice;\n }\n return 0;\n },\n isCancelled: function isCancelled() {\n return this.status.code === '50';\n }\n });\n\n clazz.create = function (resource) {\n var item = new clazz();\n item.id = resource.id;\n item.version = resource.version;\n item.productId = resource.productId;\n item.productName = resource.productName;\n item.productImagePath = resource.productImagePath;\n item.sellerArticleNumber = resource.sellerArticleNumber;\n item.serialNumber = resource.serialNumber;\n item.startDate = resource.startDate;\n item.endDate = resource.endDate;\n item.remark = resource.remark;\n item.status = {\n id: resource.status.id,\n code: resource.status.code,\n name: resource.status.name\n }, item.shippingNoteNumber = resource.shippingNoteNumber;\n item.deposit = resource.deposit;\n item.depositRefunded = resource.depositRefunded;\n item.depositRefundedDate = resource.depositRefundedDate;\n item.dailyRentalPrice = resource.dailyRentalPrice;\n item.isCancelled = item.isCancelled();\n if (item.isCancelled) {\n item.totalRent = 0;\n item.rentPerMonth = [];\n } else if (item.startDate && item.dailyRentalPrice) {\n var startDay = (0, _moment2.default)(item.startDate, 'YYYY-MM-DD');\n var endDay = void 0;\n if (item.endDate) {\n endDay = (0, _moment2.default)(item.endDate, 'YYYY-MM-DD');\n } else {\n endDay = (0, _moment2.default)().startOf('day');\n }\n if (!startDay.isSame(endDay)) {\n item.totalRent = item.calculateRentPerPeriod(startDay, endDay);\n\n var rentPerMonth = [];\n var day = (0, _moment2.default)(startDay).startOf('month');\n while (day.isSameOrBefore(endDay)) {\n rentPerMonth.push({\n month: (0, _moment2.default)(day)\n });\n day.add(1, 'month');\n }\n\n if ((0, _moment2.default)(day).subtract(1, 'day').isSame(endDay)) {\n rentPerMonth.push({\n month: (0, _moment2.default)(day)\n });\n }\n\n rentPerMonth.forEach(function (i) {\n var start = _moment2.default.max(startDay, (0, _moment2.default)(i.month).subtract(1, 'day'));\n var end = _moment2.default.min((0, _moment2.default)(i.month).add(1, 'month').subtract(2, 'day'), endDay);\n var rent = item.calculateRentPerPeriod(start, end);\n var month = i.month.format('MMMM YYYY');\n\n if (rent > 0) {\n item.rentPerMonth.push({ rent: rent, month: month });\n }\n });\n }\n }\n return item;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/rentalHistoryDetailModel.js\n// module id = 780\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.rentalHistoryItem = rentalHistoryItem;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction rentalHistoryItem() {\n var clazz = function RentalHistoryItem() {\n var defaults = {\n id: null,\n productName: '',\n productImagePath: '',\n statusName: '',\n sellerArticleNumber: '',\n startDate: null,\n endDate: null,\n remark: '',\n deposit: 0,\n depositRefunded: null,\n depositRefundedDate: null,\n dailyRentalPrice: 0,\n totalRent: 0\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n _lodash2.default.extend(clazz.prototype, {\n calculateTotalRent: function calculateTotalRent() {\n if (this.statusName !== 'Geannuleerd' && this.statusName !== 'Annulé') {\n var startDay = (0, _moment2.default)(this.startDate, 'YYYY-MM-DD');\n var endDay = void 0;\n if (this.endDate) {\n endDay = (0, _moment2.default)(this.endDate, 'YYYY-MM-DD');\n } else {\n endDay = (0, _moment2.default)().startOf('day');\n }\n if (startDay.isSame(endDay)) {\n return 0;\n }\n var daysBetween = endDay.diff(startDay, 'days') + 1; // =1\n return daysBetween * this.dailyRentalPrice;\n }\n return 0;\n },\n isCancelled: function isCancelled() {\n return this.statusName === 'Geannuleerd' || this.statusName === 'Annulé';\n }\n });\n\n clazz.create = function (resource) {\n var item = new clazz();\n item.id = resource.id;\n item.productName = resource.productName;\n item.productImagePath = resource.productImagePath;\n item.statusName = resource.statusName;\n item.sellerArticleNumber = resource.sellerArticleNumber;\n item.startDate = resource.startDate;\n item.endDate = resource.endDate;\n item.remark = resource.remark;\n item.deposit = resource.deposit;\n item.depositRefunded = resource.depositRefunded;\n item.depositRefundedDate = resource.depositRefundedDate;\n item.dailyRentalPrice = resource.dailyRentalPrice;\n if (item.startDate && item.dailyRentalPrice) {\n item.totalRent = item.calculateTotalRent();\n }\n item.isCancelled = item.isCancelled();\n return item;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/rentalHistoryItemModel.js\n// module id = 781\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.rentalHistoryStatusItem = rentalHistoryStatusItem;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction rentalHistoryStatusItem() {\n var clazz = function RentalHistoryStatusItem() {\n var defaults = {\n id: null,\n code: '',\n name: ''\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n clazz.create = function (resource) {\n var item = new clazz();\n item.id = resource.id;\n item.code = resource.code;\n item.name = resource.name;\n return item;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/rentalHistoryStatusItemModel.js\n// module id = 782\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.rentalProductCategory = rentalProductCategory;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction rentalProductCategory() {\n var clazz = function RentalProductCategory() {\n var defaults = {\n id: null,\n imagePath: '',\n languageId: '',\n name: '',\n endDate: null,\n sequence: 0,\n startDate: 0,\n url: '',\n code: null\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n clazz.create = function (resource) {\n var rentalProductCategory = new clazz();\n rentalProductCategory.id = resource.url;\n rentalProductCategory.imagePath = resource.imagePath;\n rentalProductCategory.languageId = resource.languageId;\n rentalProductCategory.name = resource.name;\n rentalProductCategory.endDate = resource.endDate;\n rentalProductCategory.sequence = resource.sequence;\n rentalProductCategory.startDate = resource.startDate;\n rentalProductCategory.url = resource.url;\n rentalProductCategory.code = resource.code;\n return rentalProductCategory;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/rentalProductCategoryModel.js\n// module id = 783\n// module chunks = 0","'use strict';\n\nrentalProduct.$inject = [\"RentalProductOverviewItem\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.rentalProduct = rentalProduct;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction rentalProduct(RentalProductOverviewItem) {\n var clazz = function RentalProduct() {\n var defaults = {\n id: 0,\n relationTypeCode: null,\n name: '',\n nationalNumber: null,\n sellerName: '',\n sellerId: 0,\n sellerBaseCodeId: 0,\n imagePath: '',\n rentalDeposit: 0,\n dayPrice: 0,\n vat: 0,\n deliveryDate: null,\n remark: null,\n address: null,\n contractPerson: null,\n phoneNumber: null,\n isSellable: false,\n quantity: 0,\n relatedRentalProducts: [],\n attachments: [],\n pharmacyPrice: 0,\n publicPrice: 0,\n deliveryByExternalPartner: false\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n _lodash2.default.extend(clazz.prototype, {\n toJSON: function toJSON() {\n return {\n productId: this.id,\n quantity: this.quantity\n };\n }\n });\n\n clazz.create = function (resource) {\n var product = new clazz();\n product.id = resource.productId;\n product.relationTypeCode = resource.relationTypeCode;\n product.name = resource.productName;\n product.nationalNumber = resource.nationalNumber;\n product.sellerName = resource.sellerName;\n product.sellerId = resource.sellerId;\n product.sellerBaseCodeId = resource.sellerBaseCodeId;\n product.imagePath = resource.imagePath;\n product.rentalDeposit = resource.rentalDeposit;\n product.dayPrice = resource.dayPrice;\n product.vat = resource.vat;\n product.deliveryDate = resource.deliveryDate;\n product.remark = resource.remark;\n product.address = resource.address;\n product.contractPerson = resource.contractPerson;\n product.phoneNumber = resource.phoneNumber;\n product.isSellable = resource.isSellable;\n product.quantity = 1;\n product.relatedRentalProducts = _lodash2.default.map(resource.relatedRentalProducts, function (i) {\n return RentalProductOverviewItem.create(i);\n });\n product.attachments = resource.productRentalAttachments;\n product.pharmacyPrice = resource.pharmacyPrice;\n product.publicPrice = resource.publicPrice;\n product.deliveryByExternalPartner = resource.deliveryByExternalPartner;\n return product;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/rentalProductModel.js\n// module id = 784\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.rentalProductOverviewItem = rentalProductOverviewItem;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction rentalProductOverviewItem() {\n var clazz = function RentalProductOverviewItem() {\n var defaults = {\n id: null,\n name: '',\n discountName: '',\n displayName: '',\n message: null,\n type: '',\n image: '',\n sellerId: 0,\n sellerName: '',\n price: 0,\n nationalNumber: 0,\n rentalDeposit: 0,\n sellerBaseCodeId: 0,\n relationTypeCode: 0,\n quantity: 0,\n vat: 0,\n order: false,\n rentedFrom: null,\n pharmacyPrice: 0,\n deliveryByExternalPartner: false,\n isSellable: false\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n _lodash2.default.extend(clazz.prototype, {\n toJSON: function toJSON() {\n return {\n productId: this.id,\n quantity: this.quantity\n };\n },\n\n calculateTotalRent: function calculateTotalRent() {\n var startDay = (0, _moment2.default)(this.rentedFrom, 'YYYY-MM-DD');\n var endDay = (0, _moment2.default)().startOf('day');\n if (startDay.isSame(endDay)) {\n return 0;\n }\n var daysBetween = endDay.diff(startDay, 'days') + 1; // =1\n return daysBetween * this.dayPrice;\n }\n });\n\n clazz.create = function (resource) {\n var productOverview = new clazz();\n productOverview.id = resource.productId;\n productOverview.name = resource.productName;\n productOverview.displayName = resource.productName;\n productOverview.imagePath = resource.imagePath;\n productOverview.sellerId = resource.sellerId;\n productOverview.sellerName = resource.sellerName;\n productOverview.nationalNumber = resource.nationalNumber;\n productOverview.dayPrice = resource.dayPrice;\n productOverview.price = resource.dayPrice;\n productOverview.vat = resource.vat;\n productOverview.rentalDeposit = resource.rentalDeposit;\n productOverview.sellerBaseCodeId = resource.sellerBaseCodeId;\n productOverview.relationTypeCode = resource.relationTypeCode;\n productOverview.rentedFrom = resource.rentedFrom;\n productOverview.productTypeCode = resource.productTypeCode;\n productOverview.pharmacyPrice = resource.pharmacyPrice;\n productOverview.publicPrice = resource.publicPrice;\n productOverview.deliveryByExternalPartner = resource.deliveryByExternalPartner;\n productOverview.isSellable = resource.isSellable;\n if (productOverview.rentedFrom && productOverview.price) {\n productOverview.totalRent = productOverview.calculateTotalRent();\n }\n return productOverview;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/rentalProductOverviewItemModel.js\n// module id = 785\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.rentalProductOverview = rentalProductOverview;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction rentalProductOverview() {\n var clazz = function RentalProductOverview() {\n\n var defaults = {\n products: [],\n filter: null,\n filters: [],\n paging: null,\n sorting: null,\n productsAvailableForContext: true,\n productsAvailableForCriteria: true,\n isLoadingInitial: false,\n isLoading: false,\n errorOccurred: false\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n clazz.create = function () {\n var rentalProductOverview = new clazz();\n //todo filter\n return rentalProductOverview;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/rentalProductOverviewModel.js\n// module id = 786\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.rentalProductsOrder = rentalProductsOrder;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction rentalProductsOrder() {\n var clazz = function RentalProductsOrder() {\n var defaults = {\n deliveryInfo: null,\n contactInfo: null,\n isLoaded: false,\n rentalProducts: []\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n clazz.create = function (resource, isLoaded) {\n var rentalProductsOrder = new clazz();\n rentalProductsOrder.deliveryInfo = resource.deliveryInfo;\n rentalProductsOrder.contactInfo = resource.contactInfo;\n rentalProductsOrder.rentalProducts = resource.rentalProducts;\n rentalProductsOrder.isLoaded = isLoaded;\n return rentalProductsOrder;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/rentalProductsOrderModel.js\n// module id = 787\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.sellerBanner = sellerBanner;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction sellerBanner() {\n var clazz = function SellerCategory() {\n var defaults = {\n id: 0,\n darkTextColor: true,\n backgroundColor: '',\n textAlignment: 0,\n sequence: 1,\n link: null,\n content: null,\n title: null,\n media: null,\n priority: 0\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n clazz.create = function (resource) {\n var sellerBanner = new clazz();\n sellerBanner.id = resource.id;\n sellerBanner.darkTextColor = resource.darkTextColor;\n sellerBanner.backgroundColor = resource.backgroundColor;\n sellerBanner.textAlignment = resource.textAlignment;\n sellerBanner.sequence = resource.sequence;\n sellerBanner.link = resource.link;\n sellerBanner.content = resource.content;\n sellerBanner.title = resource.title;\n sellerBanner.media = resource.media;\n sellerBanner.priority = resource.priority;\n return sellerBanner;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/sellerBannerModel.js\n// module id = 788\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.sellerCategory = sellerCategory;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction sellerCategory() {\n var clazz = function SellerCategory() {\n var defaults = {\n id: 0,\n name: '',\n img: '',\n categories: []\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n clazz.create = function (resource) {\n var seller = new clazz();\n seller.id = resource.sellerId;\n seller.name = resource.sellerName;\n seller.img = resource.imagePath;\n seller.categories = _lodash2.default.map(resource.sellerCategoryBreadcrumbItems, function (cat) {\n return {\n id: cat.id,\n name: cat.name\n };\n });\n return seller;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/sellerCategoryModel.js\n// module id = 789\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.sellerContact = sellerContact;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction sellerContact() {\n var clazz = function Seller() {\n var defaults = {\n id: 0,\n sellerName: '',\n sellerLogo: null,\n contactPersons: null,\n sellerAddress: null,\n contactInformation: null,\n pharmacovigilanceContactInformation: null,\n moreInfoTitle: null,\n moreInfoContent: null,\n moreInfoLinks: null\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n clazz.create = function (resource) {\n var sellerContact = new clazz();\n sellerContact.id = resource.id;\n sellerContact.sellerName = resource.sellerName;\n sellerContact.sellerLogo = resource.sellerLogo;\n sellerContact.contactPersons = resource.contactPersons;\n sellerContact.sellerAddress = resource.sellerAddress;\n sellerContact.contactInformation = resource.contactInformation;\n sellerContact.pharmacovigilanceContactInformation = resource.pharmacovigilanceContactInformation;\n sellerContact.moreInfoTitle = resource.moreInfoTitle;\n sellerContact.moreInfoContent = resource.moreInfoContent;\n sellerContact.moreInfoLinks = resource.moreInfoLinks;\n return sellerContact;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/sellerContactModel.js\n// module id = 790\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.seller = seller;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction seller() {\n var clazz = function Seller() {\n var defaults = {\n id: 0,\n name: '',\n img: ''\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n clazz.create = function (resource) {\n var seller = new clazz();\n seller.id = resource.id;\n seller.name = resource.name;\n seller.img = resource.imagePath;\n seller.isFebelcoSeller = resource.isFebelcoSeller;\n seller.isVIPSeller = resource.isVIPSeller;\n seller.protocolName = resource.ProtocolName;\n seller.isVisibleInMenu = resource.isVisibleInMenu;\n seller.code = resource.code;\n return seller;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/sellerModel.js\n// module id = 791\n// module chunks = 0","'use strict';\n\nsellerOverview.$inject = [\"Address\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.sellerOverview = sellerOverview;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction sellerOverview(Address) {\n var clazz = function Seller() {\n var defaults = {\n id: 0,\n address: {},\n contactInformation: null,\n pharmacovigilanceContactInformation: null,\n displayName: '',\n sellerEmployees: '',\n sellerPageImagePath: '',\n description: ''\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n clazz.create = function (resource) {\n var o = new clazz();\n o.id = resource.id;\n o.address = resource.address ? Address.create(resource.address) : null;\n o.contactInformation = resource.contactInformation;\n o.pharmacovigilanceContactInformation = resource.pharmacovigilanceContactInformation;\n o.displayName = resource.displayName;\n o.sellerEmployees = resource.sellerEmployees;\n o.sellerPageImagePath = resource.sellerPageImagePath;\n o.description = resource.description;\n return o;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/sellerOverviewModel.js\n// module id = 792\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.sellerPublic = sellerPublic;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction sellerPublic() {\n var clazz = function sellerPublic() {\n var defaults = {\n id: null,\n sellerName: '',\n sellerLogo: null,\n title: '',\n leading: '',\n content: '',\n banners: null,\n links: null,\n sellerAddress: null,\n contactInformation: null,\n contactTitle: '',\n contactContent: '',\n contactLinks: null,\n sellerLogos: null,\n logoTitle: null\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n clazz.create = function (resource) {\n var o = new clazz();\n o.id = resource.id;\n o.sellerName = resource.sellerName;\n o.sellerLogo = resource.sellerLogo;\n o.title = resource.title;\n o.leading = resource.leading;\n o.content = resource.content;\n o.banners = resource.banners;\n o.links = resource.links;\n o.sellerAddress = resource.sellerAddress;\n o.contactInformation = resource.contactInformation;\n o.contactTitle = resource.contactTitle;\n o.contactContent = resource.contactContent;\n o.contactLinks = resource.contactLinks;\n o.sellerLogos = resource.logos;\n o.logoTitle = resource.logoTitle;\n return o;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/sellerPublicModel.js\n// module id = 793\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.stock = stock;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction stock() {\n var clazz = function Stock() {\n var defaults = {\n cnk: '',\n deliverQty: null,\n deliverCode: '',\n replacingCnk: '',\n stockCode: '',\n deliveryId: '',\n deliveryDate: '',\n deliveryTime: '',\n remark: ''\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n clazz.create = function (resource) {\n var o = new clazz();\n o.cnk = resource.cnk;\n o.deliverQty = resource.deliverQty;\n o.deliverCode = resource.deliverCode;\n o.replacingCnk = resource.replacingCnk;\n o.stockCode = resource.stockCode;\n o.deliveryId = resource.deliveryId;\n o.deliveryDate = resource.deliveryDate;\n o.deliveryTime = resource.deliveryTime;\n o.remark = resource.remark;\n\n return o;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/stockModel.js\n// module id = 794\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.stockOverview = stockOverview;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction stockOverview() {\n var clazz = function StockOverview() {\n var defaults = {\n isLoading: false,\n errorOccurred: false,\n hasloaded: false,\n stock: null\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n _lodash2.default.extend(clazz.prototype, {});\n\n clazz.create = function (resource) {\n var o = new clazz();\n if (resource) {\n o.isLoading = resource.isLoading;\n o.errorOccurred = resource.errorOccurred;\n o.hasloaded = resource.hasloaded;\n o.stock = resource.stock;\n }\n return o;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/stockOverviewModel.js\n// module id = 795\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.tenant = tenant;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction tenant() {\n var clazz = function Tenant() {\n var defaults = {\n apbNumber: '',\n name: '',\n sellerName: '',\n sellerId: '',\n secondaryAppUserKey: '',\n canViewPackages: false\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n clazz.create = function (resource) {\n var o = new clazz();\n o.febelcoCustomerNr = resource.febelcoCustomerNr;\n o.apbNumber = resource.apbNumber;\n o.sellerName = resource.sellerName;\n o.sellerId = resource.sellerId;\n o.name = resource.description;\n o.secondaryAppUserKey = resource.secondaryAppUserKey;\n o.canViewPackages = resource.canViewPackages;\n return o;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/tenantModel.js\n// module id = 796\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.totals = totals;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction totals() {\n var clazz = function Totals() {\n var defaults = {\n totalPriceWithDiscount: 0,\n totalVatAmount: 0,\n vatList: [],\n totalPriceInclVat: 0,\n totalDiscount: 0\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n _lodash2.default.extend(clazz.prototype, {\n updateAfterSetQuantity: function updateAfterSetQuantity(updatedTotals) {\n this.totalPriceWithDiscount = updatedTotals.totalPriceWithDiscount;\n this.vatList = updatedTotals.vatList;\n this.totalPriceWithDiscountInclVat = updatedTotals.totalPriceWithDiscountInclVat;\n this.totalDiscount = updatedTotals.totalDiscount;\n }\n });\n\n clazz.create = function (resource) {\n var o = new clazz();\n o.totalPriceWithDiscount = resource.totalPriceWithDiscount;\n o.totalVatAmount = resource.totalVatAmount;\n o.vatList = _lodash2.default.map(resource.vatList, function (i) {\n return { pct: i.vatPercentage, amount: i.vatAmount };\n });\n o.totalPriceWithDiscountInclVat = o.totalPriceWithDiscount + o.totalVatAmount;\n o.totalDiscount = resource.totalDiscountAmount;\n return o;\n };\n\n clazz.createFromLocalStorage = function (resource) {\n var o = new clazz();\n o.totalPriceWithDiscount = resource.totalPriceWithDiscount;\n o.totalVatAmount = resource.totalVatAmount;\n o.vatList = resource.vatList;\n o.totalPriceWithDiscountInclVat = resource.totalPriceWithDiscountInclVat;\n o.totalDiscount = resource.totalDiscount;\n return o;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/totalsModel.js\n// module id = 797\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.user = user;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction user() {\n var clazz = function Cart() {\n var defaults = {\n id: 0,\n companyName: '',\n title: '',\n firstName: '',\n lastName: '',\n deliveryAddress: null,\n invoiceAddress: null,\n pharmacies: null,\n client_unauthorized: null,\n email: null\n };\n\n _lodash2.default.extend(this, defaults);\n };\n\n _lodash2.default.extend(clazz.prototype, {});\n\n clazz.create = function (resource) {\n var user = new clazz();\n user.id = resource.id;\n user.companyName = resource.companyName;\n user.title = resource.title;\n user.firstName = resource.firstName;\n user.lastName = resource.lastName;\n user.deliveryAddress = resource.deliveryAddress;\n user.invoiceAddress = resource.invoiceAddress;\n user.pharmacies = resource.pharmacies;\n user.sellerBaseEmployees = resource.sellerBaseEmployees;\n user.client_unauthorized = resource.client_unauthorized;\n user.mail = resource.mail;\n user.communicationLanguageId = resource.communicationLanguageId;\n user.phoneNumber = resource.phoneNumber;\n user.companyNumber = resource.companyNumber;\n return user;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/userModel.js\n// module id = 798\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.wholesaler = wholesaler;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction wholesaler() {\n var clazz = function Wholesaler() {\n var defaults = {\n id: 0,\n name: ''\n };\n _lodash2.default.extend(this, defaults);\n };\n\n clazz.create = function (resource) {\n var o = new clazz();\n o.id = resource.id;\n o.name = resource.name;\n o.isFebelcoCustomerWholesaler = resource.isFebelcoCustomerWholesaler;\n return o;\n };\n\n return clazz;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/models/wholesalerModel.js\n// module id = 799\n// module chunks = 0","'use strict';\n\nadvertService.$inject = [\"$http\", \"api\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.advertService = advertService;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction advertService($http, api) {\n\n return {\n getAll: getAll,\n getBySellerId: getBySellerId,\n getAdvertsForHomepage: getAdvertsForHomepage\n };\n\n function getAll() {\n return api.banners.list().$promise.then(function (banners) {\n return banners;\n });\n }\n\n function getBySellerId(sellerId) {\n return getAll().then(function (response) {\n // for demo purposes \n return _lodash2.default.filter(response, function (i) {\n return i.seller === sellerId;\n });\n });\n }\n\n function getAdvertsForHomepage() {\n return getAll().then(function (response) {\n // for demo purposes \n var firstSixAdverts = _lodash2.default.take(response, 6);\n return firstSixAdverts;\n });\n }\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/services/advertService.js\n// module id = 800\n// module chunks = 0","'use strict';\n\nbrandService.$inject = [\"Brand\", \"$http\", \"api\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.brandService = brandService;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction brandService(Brand, $http, api) {\n return {\n getAll: getAll,\n getById: getById\n };\n\n function getAll() {\n return api.brands.list().$promise.then(function (resources) {\n return _lodash2.default.map(resources, function (resource) {\n return Brand.create(resource);\n });\n });\n }\n\n function getById(id) {\n return api.brands.get({ id: id }).$promise.then(function (resource) {\n return Brand.create(resource);\n });\n }\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/services/brandService.js\n// module id = 801\n// module chunks = 0","\"use strict\";\n\nbuyerBaseService.$inject = [\"api\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.buyerBaseService = buyerBaseService;\n/*@ngInject*/\nfunction buyerBaseService(api) {\n return {\n search: search\n };\n\n function search(searchString, sellerId) {\n return api.buyerBaseSearch.execute({ search: searchString, sellerId: sellerId }).$promise.then(function (resource) {\n return resource;\n });\n }\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/services/buyerBaseService.js\n// module id = 802\n// module chunks = 0","'use strict';\n\ncartService.$inject = [\"$rootScope\", \"api\", \"common\", \"Cart\", \"CartDraft\", \"AddedToCartInfo\", \"$http\", \"$localStorage\", \"ProductTypes\", \"OrderConfirmation\", \"ProductSet\", \"CartProduct\", \"Analytics\", \"$state\", \"Wholesaler\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.cartService = cartService;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction cartService($rootScope, api, common, Cart, CartDraft, AddedToCartInfo, $http, $localStorage, ProductTypes, OrderConfirmation, ProductSet, CartProduct, Analytics, $state, Wholesaler) {\n\n //added products for analytics\n var addedProducts = [];\n\n return {\n getFromServer: getFromServer,\n getFromServerCheckoutCart: getFromServerCheckoutCart,\n addProduct: addProduct,\n removeProducts: removeProducts,\n changeQuantity: changeQuantity,\n checkout: checkout,\n createOrders: createOrders,\n clear: clear,\n deactivateMessage: deactivateMessage,\n getAddedToCartInfo: getAddedToCartInfo,\n quickAddProducts: quickAddProducts,\n updateCart: updateCart,\n updateCartOverview: updateCartOverview,\n getAddedProducts: getAddedProducts,\n addProductToAddedProductsList: addProductToAddedProductsList,\n addProductToCartAnalytics: addProductToCartAnalytics,\n setAddedProducts: setAddedProducts,\n reOrderProducts: reOrderProducts,\n getWholesalers: getWholesalers,\n removeSellerFromCart: removeSellerFromCart,\n getCustomerAccounts: getCustomerAccounts\n };\n\n function getCustomerAccounts() {\n return api.getCustomerAccounts.get().$promise.then(function (resource) {\n return resource;\n });\n }\n\n function setAddedProducts(products) {\n addedProducts = products;\n }\n\n function getAddedProducts() {\n return addedProducts;\n }\n\n function addProductToAddedProductsList(product) {\n if (!addedProducts.includes(product)) {\n addedProducts.push(product);\n }\n }\n\n function getFromServer() {\n return api.cart.get().$promise.then(function (resource) {\n var cart = Cart.create(resource);\n $localStorage.cart = cart;\n $rootScope.isShoppingCartEmpty = cart.isEmpty;\n return cart;\n }).catch(function () {\n $rootScope.isShoppingCartInvalid = true;\n });\n }\n\n function getFromServerCheckoutCart() {\n return api.checkoutCart.get().$promise.then(function (resource) {\n var cart = Cart.create(resource);\n $localStorage.cart = cart;\n $rootScope.isShoppingCartEmpty = cart.isEmpty;\n return cart;\n }).catch(function () {\n $rootScope.isShoppingCartInvalid = true;\n });\n }\n\n function getAddedToCartInfo(id) {\n return api.getAddedToCartInfo.get({\n id: id\n }).$promise.then(function (resource) {\n return AddedToCartInfo.create(resource);\n });\n }\n\n function addProduct(product) {\n var apiCall = null;\n var data = null;\n\n if (product.type === ProductTypes.single.clientValue) {\n apiCall = api.setProductQuantity;\n data = [{\n id: product.id,\n quantity: product.quantity\n }];\n } else if (product.type === ProductTypes.pack.clientValue) {\n apiCall = api.setProductQuantity;\n data = [{\n id: product.id,\n quantity: product.quantity\n }];\n } else if (product.type === ProductTypes.panacee.clientValue) {\n apiCall = api.setProductQuantity;\n data = _lodash2.default.map(product.included_products, function (p) {\n return {\n id: p.id,\n quantity: p.quantity\n };\n });\n } else {\n throw 'A product of type ' + product.type + ' cannot be used as argument of the addProduct method';\n }\n\n return apiCall.execute(data).$promise.then(function (data) {\n return data;\n });\n }\n\n function removeSellerFromCart(sellerBaseCodeId) {\n return api.removeSellerFromCart.execute(sellerBaseCodeId).$promise.then(function (cart) {\n cart = Cart.create(cart);\n $localStorage.cart = cart;\n $rootScope.isShoppingCartEmpty = cart.isEmpty;\n return cart;\n });\n }\n\n function removeProducts(products) {\n\n products.forEach(function (product) {\n Analytics.addProduct(product.id, product.displayName, product.productTypeCode, product.sellerName, '', product.totalPriceWithDiscount, product.quantity, '', '');\n Analytics.trackCart('remove', product.displayName);\n Analytics.trackEvent('Product', 'removedFromCart', product.displayName);\n common.log.info('Analysis: product removed', product.name);\n });\n\n products = _lodash2.default.map(products, function (p) {\n return {\n id: p.id,\n quantity: 0\n };\n });\n products = _lodash2.default.map(products, function (o) {\n return ProductSet.create(o);\n });\n\n return api.quickAddProducts.execute(products).$promise.then(function (cart) {\n cart = Cart.create(cart);\n $localStorage.cart = cart;\n $rootScope.isShoppingCartEmpty = cart.isEmpty;\n return cart;\n });\n }\n\n /* Update the cart for the shoppingcart pages */\n function updateCart(products) {\n\n products = products.filter(function (product) {\n return product.type !== 'panacee';\n });\n\n return api.quickAddProducts.execute(products).$promise.then(function (cart) {\n cart = Cart.create(cart);\n $localStorage.cart = cart;\n $rootScope.isShoppingCartEmpty = cart.isEmpty;\n return cart;\n });\n }\n\n /* Update the cart for the product overview and detail pages */\n function updateCartOverview(products) {\n\n var apiCall = api.setProductQuantity;\n products = products.filter(function (product) {\n return product.type !== 'panacee';\n });\n\n products = _lodash2.default.map(products, function (o) {\n return ProductSet.create(o);\n });\n\n return apiCall.execute(products).$promise.then(function (cart) {\n return _lodash2.default.map(cart, function (o) {\n return CartProduct.create(o);\n });\n });\n }\n\n function changeQuantity(cart, productId, quantity) {\n cart.changeQuantity(productId, quantity);\n $localStorage.cart = cart;\n $rootScope.isShoppingCartEmpty = cart.isEmpty;\n }\n\n function checkout() {\n return api.checkout.execute().$promise.then(function (resource) {\n return Cart.create(resource);\n });\n }\n\n function createOrders(isSpecial, selectedWholeSaler, selectedCustomerAccount) {\n var selectedWholeSalerId = selectedWholeSaler ? selectedWholeSaler.id : null;\n var selectedCustomerAccountNumber = selectedCustomerAccount ? selectedCustomerAccount.number : null;\n return api.createOrders.execute({\n isSpecial: isSpecial,\n wholeSalerId: selectedWholeSalerId,\n customerAccountNumber: selectedCustomerAccountNumber\n }).$promise.then(function (orders) {\n return _lodash2.default.map(orders, function (o) {\n return OrderConfirmation.create(o);\n });\n });\n }\n\n function clear() {\n return api.clearCart.execute().$promise.then(function () {\n $localStorage.cart = null;\n $rootScope.isShoppingCartEmpty = true;\n });\n }\n\n function deactivateMessage(id) {\n return api.deactivateCartMessage.deactivate({\n messageId: id\n }).$promise.then(function (resource) {\n return resource;\n });\n }\n\n function quickAddProducts(products) {\n return api.quickAddProducts.execute(products).$promise.then(function (resource) {\n return resource;\n });\n }\n\n /* google analytics when product clicked */\n function addProductToCartAnalytics() {\n if (addedProducts.length > 0) {\n addedProducts.forEach(function (product) {\n if (product.quantity === 0) {\n Analytics.addProduct(product.id, product.displayName, product.productTypeCode, product.sellerName, '', product.totalPriceWithDiscount, product.quantity, '', '', {\n sellerId: product.sellerId,\n sellerName: product.sellerName,\n discountId: product.discountId,\n location: $state.current.name\n });\n Analytics.trackCart('remove', product.displayName);\n Analytics.trackEvent('Product', 'removedFromCart', product.displayName);\n common.log.info('Analysis: product removed', product.name);\n } else {\n Analytics.addProduct(product.id, product.displayName, product.productTypeCode, product.sellerName, '', product.totalPriceWithDiscount, product.quantity, '', '', {\n sellerId: product.sellerId,\n sellerName: product.sellerName,\n discountId: product.discountId,\n location: $state.current.name\n });\n Analytics.trackCart('add', product.displayName);\n Analytics.trackEvent('Product', 'addedToCart', product.displayName);\n common.log.info('Analysis: product added', product.name);\n }\n });\n }\n }\n\n function reOrderProducts(id) {\n return api.reOrderProducts.execute({\n id: id\n }).$promise.then(function (resource) {\n return resource;\n });\n }\n\n function getWholesalers() {\n return api.wholesalers.get().$promise.then(function (resource) {\n return _lodash2.default.map(resource, function (o) {\n return Wholesaler.create(o);\n });\n });\n }\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/services/cartService.js\n// module id = 803\n// module chunks = 0","'use strict';\n\ncategoryService.$inject = [\"api\", \"Category\", \"CategoryWithSubcategories\", \"$cacheFactory\", \"gettextCatalog\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.categoryService = categoryService;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction categoryService(api, Category, CategoryWithSubcategories, $cacheFactory, gettextCatalog) {\n var cache = $cacheFactory('myCache');\n\n return {\n getMenuCategories: getMenuCategories,\n getById: getById,\n getCategoryTreeInArrayById: getCategoryTreeInArrayById\n };\n\n function getAll() {\n // var cachedCategories = cache.get('categories');\n // if (!angular.isUndefined(cachedCategories)) {\n // return $q.when(cachedCategories);\n // }\n\n return api.categories.list({ ParentId: null, CategoryTypeIds: [] }).$promise.then(function (resourceList) {\n var categories = _lodash2.default.map(resourceList, function (resource) {\n return Category.create(resource);\n });\n\n cache.put('categories', categories);\n return categories;\n });\n }\n\n function getMenuCategories() {\n return api.categoriesMenu.get().$promise.then(function (resourceList) {\n var categories = _lodash2.default.map(resourceList, function (resource) {\n return Category.create(resource);\n });\n\n cache.put('categories', categories);\n categories = getCategoriesWithSubcategories(categories, null, 1);\n return categories;\n });\n }\n\n function getById(categoryId) {\n if (categoryId === 0) {\n return {\n name: gettextCatalog.getString('All products')\n };\n } else if (categoryId === undefined) {\n return null;\n }\n\n return api.category.get({ id: categoryId }).$promise.then(function (resource) {\n return Category.create(resource);\n });\n }\n\n function getCategoryTreeInArrayById(id) {\n return getAll().then(function (categories) {\n if (id === 0) {\n return categories;\n }\n\n var list = [];\n\n var category = _lodash2.default.find(categories, { id: id });\n while (category) {\n list.push({ id: category.id, name: category.name });\n category = _lodash2.default.find(categories, {\n id: category.parentCategoryId\n });\n }\n\n return list;\n });\n }\n\n /// private stuff\n\n function getCategoriesWithSubcategories(categories, parentCategoryId, level) {\n var list = [];\n\n for (var i = 0; i < categories.length; i++) {\n var cat = categories[i];\n if (cat.parentCategoryId === parentCategoryId) {\n var newCat = {\n id: cat.id,\n name: cat.name,\n subcategories: level >= 2 ? null : getCategoriesWithSubcategories(categories, cat.id, level + 1)\n };\n list.push(newCat);\n }\n }\n\n return list.length === 0 ? null : list;\n }\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/services/categoryService.js\n// module id = 804\n// module chunks = 0","'use strict';\n\ncertificatesService.$inject = [\"api\", \"config\", \"$stateParams\", \"CertificateItem\", \"authService\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.certificatesService = certificatesService;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction certificatesService(api, config, $stateParams, CertificateItem, authService) {\n var baseUrl = config.webApiBaseUrl;\n\n return {\n searchCertificates: searchCertificates,\n getCoaUrl: getCoaUrl\n };\n\n function searchCertificates(search) {\n return api.certificates.search(search).$promise.then(function (response) {\n response.results = _lodash2.default.map(response.results, function (i) {\n return CertificateItem.create(i);\n });\n return response;\n });\n }\n function getCoaUrl(id) {\n return baseUrl + ('certificates/' + id + '/getCertificateOfAnalysis?lang=' + $stateParams.language + '&access_token=' + authService.accessToken);\n }\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/services/certificatesService.js\n// module id = 805\n// module chunks = 0","'use strict';\n\ncommonService.$inject = [\"$rootScope\", \"$q\", \"$log\", \"config\", \"$localStorage\", \"Enums\", \"$window\", \"defaultLanguage\", \"supportedLanguages\", \"ProductTypes\", \"DiscountTypes\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.commonService = commonService;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction commonService($rootScope, $q, $log, config, $localStorage, Enums, $window, defaultLanguage, supportedLanguages, ProductTypes, DiscountTypes /*, gettextCatalog*/) {\n return {\n log: $log,\n config: config,\n setTitle: setTitle,\n toPascalCase: toPascalCase,\n getProductNumberAndPromo: getProductNumberAndPromo,\n enums: {\n existsIdInEnum: existsIdInEnum\n },\n localization: {\n getCurrentLanguage: getCurrentLanguage,\n getDefaultLanguage: getDefaultLanguage,\n isLanguageSupported: isLanguageSupported\n },\n navigationMenu: {\n clearActiveMenu: clearActiveMenu,\n setHomeActive: setHomeActive,\n setDiscountsActive: setDiscountsActive,\n setSellersActive: setSellersActive,\n setBrandsActive: setBrandsActive,\n setProductsActive: setProductsActive,\n setNewsActive: setNewsActive\n },\n serverTypes: {\n getProductType: getProductType,\n getDiscountType: getDiscountType,\n getClientValue: getClientValue\n }\n };\n\n function setTitle(title) {\n $window.document.title = title;\n }\n\n function toPascalCase(value) {\n // TO DO : functie mag uiteindelijk gedelete worden, back-end moet ervoor gezorgd worden dat Febelco Product namen omgezet worden naar camelcase\n if (!value) {\n return '';\n }\n return value; //return value.toLowerCase().replace(/\\b./g, function(a){ return a.toUpperCase(); } );\n }\n\n /* Enums */\n function existsIdInEnum(enumeration, id) {\n for (var property in enumeration) {\n if (enumeration.hasOwnProperty(property)) {\n if (enumeration[property].id === id) {\n return true;\n }\n }\n }\n\n return false;\n }\n /* End: Enums */\n\n /* Localization */\n function getCurrentLanguage() {\n return window.localStorage.getItem('language') || getDefaultLanguage();\n }\n\n function getDefaultLanguage() {\n return defaultLanguage;\n }\n\n function isLanguageSupported(language) {\n for (var i = 0; i < supportedLanguages.length; i++) {\n var sl = supportedLanguages[i];\n if (language.toUpperCase() === sl.toUpperCase()) {\n return true;\n }\n }\n\n return false;\n }\n\n /* End: Localization */\n\n /* Navigation menu */\n function clearActiveMenu() {\n $rootScope.activeMenu = '';\n }\n\n function setHomeActive() {\n $rootScope.activeMenu = Enums.navigationMenuItems.home.value;\n }\n\n function setDiscountsActive() {\n $rootScope.activeMenu = Enums.navigationMenuItems.discounts.value;\n }\n\n function setSellersActive() {\n $rootScope.activeMenu = Enums.navigationMenuItems.sellers.value;\n }\n\n function setBrandsActive() {\n $rootScope.activeMenu = Enums.navigationMenuItems.brands.value;\n }\n\n function setProductsActive() {\n $rootScope.activeMenu = Enums.navigationMenuItems.products.value;\n }\n\n function setNewsActive() {\n $rootScope.activeMenu = Enums.navigationMenuItems.news.value;\n }\n\n /* end: Navigation menu */\n\n /* convert server to client types */\n function getProductType(type) {\n if (type === ProductTypes.single.serverValue) {\n return ProductTypes.single.clientValue;\n } else if (type === ProductTypes.pack.serverValue) {\n return ProductTypes.pack.clientValue;\n } else if (type === ProductTypes.panacee.serverValue) {\n return ProductTypes.panacee.clientValue;\n }\n return type;\n }\n\n function getDiscountType(type) {\n if (type === DiscountTypes.single.serverValue) {\n return DiscountTypes.single.clientValue;\n } else if (type === DiscountTypes.pack.serverValue) {\n return DiscountTypes.pack.clientValue;\n } else if (type === DiscountTypes.panacee.serverValue) {\n return DiscountTypes.panacee.clientValue;\n }\n return type;\n }\n\n function getClientValue(types, serverValue) {\n var type = _lodash2.default.find(types, function (i) {\n return i.serverValue === serverValue;\n });\n return type ? type.clientValue : null;\n }\n /* END: convert server to client types */\n\n function getProductNumberAndPromo(productNumber, promocode) {\n var productNumberIsEmpty = !productNumber || productNumber.length <= 0;\n var promocodeIsEmpty = !promocode || promocode.length <= 0;\n\n if (productNumberIsEmpty && promocodeIsEmpty) {\n return '';\n }\n\n var productNumberLabel = 'Product number'; //gettextCatalog.getString('productNumber');\n var promocodeLabel = 'PROMO'; //gettextCatalog.getString('PROMO');\n\n if (promocodeIsEmpty) {\n return '(' + productNumberLabel + ': ' + productNumber + ')';\n }\n\n if (productNumberIsEmpty) {\n return '(' + promocodeLabel + ': ' + promocode + ')';\n }\n\n return '(' + productNumberLabel + ': ' + productNumber + ', ' + promocodeLabel + ': ' + promocode + ')';\n }\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/services/commonService.js\n// module id = 806\n// module chunks = 0","\"use strict\";\n\ncontractService.$inject = [\"$http\", \"api\", \"Contract\", \"ContractDetail\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.contractService = contractService;\n\nvar _lodash = require(\"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction contractService($http, api, Contract, ContractDetail) {\n\n return {\n get: get,\n getById: getById,\n getNumberOfContracts: getNumberOfContracts\n };\n\n function get() {\n return api.contracts.list().$promise.then(function (response) {\n return _lodash2.default.map(response, function (i) {\n return _lodash2.default.assign({\n \"type\": i.portalContractType,\n \"contracts\": _lodash2.default.map(i.contracts, function (x) {\n return Contract.create(x);\n })\n });\n });\n });\n }\n\n function getById(id) {\n return api.contractDetail.get({ id: id }).$promise.then(function (response) {\n return ContractDetail.create(response);\n });\n }\n function getNumberOfContracts(sellerId) {\n return api.numberOfContracts.get({ sellerId: sellerId }).$promise.then(function (response) {\n return response.amount;\n });\n }\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/services/contractService.js\n// module id = 807\n// module chunks = 0","\"use strict\";\n\ncoronaService.$inject = [\"api\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.coronaService = coronaService;\n/*@ngInject*/\nfunction coronaService(api) {\n return {\n setCoronaReservation: setCoronaReservation,\n getCorona: getCorona,\n vaccinsCanOrder: vaccinsCanOrder,\n canOrderVaccin: canOrderVaccin,\n allReservationsMade: allReservationsMade,\n isEnabled: isEnabled\n };\n\n function getCorona() {\n return api.coronaReservation.get({}).$promise.then(function (resource) {\n return resource.reservations;\n });\n }\n\n function vaccinsCanOrder(vaccins) {\n var vaccin = vaccins.find(function (vaccin) {\n return vaccin.amount > 0;\n });\n return vaccin === undefined ? false : true;\n }\n\n function allReservationsMade(vaccins) {\n return vaccins.every(amountNotZero);\n }\n\n function amountNotZero(vaccin) {\n return vaccin.amount !== 0;\n }\n\n function canOrderVaccin(vaccin) {\n return vaccin.amount === 0;\n }\n\n function setCoronaReservation(vaccines) {\n var vaccinesPost = [];\n\n vaccines.forEach(function (vaccine) {\n vaccinesPost.push({\n productNumber: vaccine.productNumber,\n amount: vaccine.amount\n });\n });\n\n return api.setReservationAmounts.set({\n reservations: vaccinesPost\n }).$promise.then(function (resources) {\n return resources;\n });\n }\n\n function isEnabled() {\n return api.enabled.get({}).$promise.then(function (resource) {\n return resource;\n });\n }\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/services/coronaService.js\n// module id = 808\n// module chunks = 0","'use strict';\n\ndialogService.$inject = [\"$q\", \"$rootScope\", \"ngDialog\", \"authService\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.dialogService = dialogService;\n/*@ngInject*/\nfunction dialogService($q, $rootScope, ngDialog, authService) {\n return {\n confirm: confirm,\n selectTenant: selectTenant,\n askConfirm: askConfirm,\n unsavedChanges: unsavedChanges\n };\n\n function confirm(scope, title, msg) {\n var deffered = $q.defer();\n\n var dlgScope = scope.$new(true);\n dlgScope.title = title;\n dlgScope.msg = msg;\n\n ngDialog.open({\n template: require('../templates/confirm.html'),\n className: 'ngdialog ngdialog-theme-default',\n plain: true,\n showClose: true,\n scope: dlgScope,\n disableAnimation: true\n }).closePromise.then(function (result) {\n if (result.value === 1) {\n deffered.resolve();\n } else {\n deffered.reject();\n }\n });\n\n return deffered.promise;\n }\n\n function selectTenant() {\n var deffered = $q.defer();\n var dlgScope = $rootScope.$new(true);\n dlgScope.tenants = authService.customUserInfo.tenants;\n dlgScope.activeTenant = dlgScope.tenants.find(function (t) {\n return !!t.secondaryAppUserKey && t.secondaryAppUserKey === authService._user.profile.SAUK || !!t.id && t.id === parseInt(authService._user.profile.BuyerID, 10);\n });\n\n ngDialog.open({\n template: require('../templates/select-tenant.html'),\n className: 'ngdialog ngdialog-theme-default',\n plain: true,\n showClose: true,\n scope: dlgScope,\n disableAnimation: true,\n controller: [\"$scope\", \"common\", function controller($scope, common) {\n 'ngInject';\n\n $scope.select = function (tenant) {\n common.log.debug('you selected tenant ' + tenant.secondaryAppUserKey);\n $scope.closeThisDialog({ closingState: 1, tenant: tenant });\n };\n }]\n }).closePromise.then(function (result) {\n if (result.value && result.value.closingState === 1 && result.value.tenant) {\n deffered.resolve(result.value.tenant);\n } else {\n deffered.reject();\n }\n });\n\n return deffered.promise;\n }\n\n function askConfirm(title, message) {\n return ngDialog.openConfirm({\n template: '',\n plain: true // plain html template no url\n });\n }\n\n function unsavedChanges() {\n return ngDialog.openConfirm({\n template: '',\n plain: true // plain html template no url\n });\n }\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/services/dialogService.js\n// module id = 809\n// module chunks = 0","\"use strict\";\n\ndiscounttypeService.$inject = [\"Discounttype\", \"$http\", \"api\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.discounttypeService = discounttypeService;\n/*@ngInject*/\nfunction discounttypeService(Discounttype, $http, api) {\n return {\n get: get\n };\n\n function get(id) {\n return api.discounttypes.get({ id: id }).$promise.then(function (resource) {\n return Discounttype.create(resource);\n });\n }\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/services/discounttypeService.js\n// module id = 810\n// module chunks = 0","'use strict';\n\ndocumentLibraryService.$inject = [\"LibraryQuestion\", \"LibraryDocumentCategory\", \"api\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.documentLibraryService = documentLibraryService;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction documentLibraryService(LibraryQuestion, LibraryDocumentCategory, api) {\n return {\n getLibraryQuestions: getLibraryQuestions,\n getLibraryDocumentCategories: getLibraryDocumentCategories,\n getLibraryDocument: getLibraryDocument\n };\n\n function getLibraryQuestions(sellerId) {\n return api.libraryQuestions.get({ sellerId: sellerId }).$promise.then(function (resource) {\n return _lodash2.default.map(resource, function (i) {\n return LibraryQuestion.create(i);\n });\n });\n }\n\n function getLibraryDocumentCategories(sellerId) {\n return api.libraryDocumentCategories.get({ sellerId: sellerId }).$promise.then(function (resource) {\n return _lodash2.default.map(resource, function (i) {\n return LibraryDocumentCategory.create(i);\n });\n });\n }\n\n function getLibraryDocument(documentId) {\n return api.libraryDocument.get({ documentId: documentId }).$promise;\n }\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/services/documentLibraryService.js\n// module id = 811\n// module chunks = 0","'use strict';\n\nexceptionService.$inject = [\"gettextCatalog\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.exceptionService = exceptionService;\n/*@ngInject*/\nfunction exceptionService(gettextCatalog) {\n return {\n logException: logException\n };\n\n function logException(msg) {\n var title = gettextCatalog.getString('Error');\n 'error', title, msg;\n }\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/services/exceptionService.js\n// module id = 812\n// module chunks = 0","'use strict';\n\nhelpService.$inject = [\"$http\", \"HelpItem\", \"localizer\", \"authService\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.helpService = helpService;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction helpService($http, HelpItem, localizer, authService) {\n return {\n getHelpCategories: getHelpCategories,\n getHelpSubCategory: getHelpSubCategory\n };\n\n function getHelpCategories() {\n var currentLanguage = localizer.getCurrentLanguage() ? localizer.getCurrentLanguage() : 'nl';\n var urlString = '';\n\n if (authService.isFebelcoCustomer) {\n urlString = '/assets/data/help-' + currentLanguage + '.json';\n } else {\n urlString = '/assets/data/help-nonfp-' + currentLanguage + '.json';\n }\n\n return $http.get(urlString).then(function (response) {\n return _lodash2.default.map(response.data.help, function (i) {\n return HelpItem.create(i);\n });\n });\n }\n\n function getHelpSubCategory(categoryId) {\n var currentLanguage = localizer.getCurrentLanguage() ? localizer.getCurrentLanguage() : 'nl';\n var urlString = '';\n\n if (authService.isFebelcoCustomer) {\n urlString = '/assets/data/help-' + currentLanguage + '.json';\n } else {\n urlString = '/assets/data/help-nonfp-' + currentLanguage + '.json';\n }\n\n return $http.get(urlString).then(function (response) {\n return HelpItem.create(_lodash2.default.find(response.data.help, function (item) {\n return item.categoryId === categoryId;\n }));\n });\n }\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/services/helpService.js\n// module id = 813\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _angular = require('angular');\n\nvar _angular2 = _interopRequireDefault(_angular);\n\nvar _advertService = require('./advertService');\n\nvar _brandService = require('./brandService');\n\nvar _buyerBaseService = require('./buyerBaseService');\n\nvar _cartService = require('./cartService');\n\nvar _categoryService = require('./categoryService');\n\nvar _commonService = require('./commonService');\n\nvar _dialogService = require('./dialogService');\n\nvar _discounttypeService = require('./discounttypeService');\n\nvar _documentLibraryService = require('./documentLibraryService');\n\nvar _exceptionService = require('./exceptionService');\n\nvar _localizer = require('./localizer');\n\nvar _newsService = require('./newsService');\n\nvar _newsOverviewService = require('./newsOverviewService');\n\nvar _orderService = require('./orderService');\n\nvar _productService = require('./productService');\n\nvar _queryStringHelper = require('./queryStringHelper');\n\nvar _sellerService = require('./sellerService');\n\nvar _sellerCategoryService = require('./sellerCategoryService');\n\nvar _screenService = require('./screenService');\n\nvar _tenantService = require('./tenantService');\n\nvar _textBuilder = require('./textBuilder');\n\nvar _userService = require('./userService');\n\nvar _productOverviewService = require('./productOverviewService');\n\nvar _helpService = require('./helpService');\n\nvar _partnershipsService = require('./partnershipsService');\n\nvar _contractService = require('./contractService');\n\nvar _vaccinesService = require('./vaccinesService');\n\nvar _reservationCampaignService = require('./reservationCampaignService');\n\nvar _coronaService = require('./coronaService');\n\nvar _outletService = require('./outletService');\n\nvar _rentalProductsService = require('./rentalProductsService');\n\nvar _packagesService = require('./packagesService');\n\nvar _parcelService = require('./parcelService');\n\nvar _security = require('../../blocks/security');\n\nvar _security2 = _interopRequireDefault(_security);\n\nvar _certificatesService = require('./certificatesService');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n//import {authServiceProvider} from './authService';\nvar _module = _angular2.default.module('app.services', [_security2.default]).factory('advertService', _advertService.advertService).factory('brandService', _brandService.brandService).factory('buyerBaseService', _buyerBaseService.buyerBaseService).factory('cartService', _cartService.cartService).factory('categoryService', _categoryService.categoryService).factory('common', _commonService.commonService).factory('dialogService', _dialogService.dialogService).factory('discounttypeService', _discounttypeService.discounttypeService).factory('documentLibraryService', _documentLibraryService.documentLibraryService).factory('exceptionService', _exceptionService.exceptionService).factory('localizer', _localizer.localizer).factory('newsService', _newsService.newsService).factory('newsOverviewService', _newsOverviewService.newsOverviewService).factory('orderService', _orderService.orderService).factory('productService', _productService.productService).factory('queryStringHelper', _queryStringHelper.queryStringHelper).factory('sellerService', _sellerService.sellerService).factory('sellerCategoryService', _sellerCategoryService.sellerCategoryService).factory('screenService', _screenService.screenService).factory('tenantService', _tenantService.tenantService).factory('textBuilder', _textBuilder.textBuilder).factory('userService', _userService.userService).factory('productOverviewService', _productOverviewService.productOverviewService).factory('helpService', _helpService.helpService).factory('partnershipsService', _partnershipsService.partnershipsService).factory('contractService', _contractService.contractService).factory('outletService', _outletService.outletService).factory('rentalProductsService', _rentalProductsService.rentalProductsService).factory('vaccinesService', _vaccinesService.vaccinesService).factory('reservationCampaignService', _reservationCampaignService.reservationCampaignService).factory('coronaService', _coronaService.coronaService).factory('certificatesService', _certificatesService.certificatesService).factory('packagesService', _packagesService.packagesService).factory('parcelService', _parcelService.parcelService);\n//.provider('authService', authServiceProvider);\n\nexports.default = _module.name;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/services/index.js\n// module id = 814\n// module chunks = 0","'use strict';\n\nlocalizer.$inject = [\"gettextCatalog\", \"common\", \"$q\", \"$localStorage\", \"tmhDynamicLocale\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.localizer = localizer;\n\nvar _nl = require('./../../assets/po/nl.po');\n\nvar _nl2 = _interopRequireDefault(_nl);\n\nvar _fr = require('./../../assets/po/fr.po');\n\nvar _fr2 = _interopRequireDefault(_fr);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction localizer(gettextCatalog, common, $q, $localStorage, tmhDynamicLocale) {\n var isLanguageLoaded = false;\n var languageChangeEvent = new Event('LanguageChange');\n\n gettextCatalog.setStrings('nl', _nl2.default.nl);\n gettextCatalog.setStrings('fr', _fr2.default.fr);\n\n return {\n addLanguageChangeEvent: addLanguageChangeEvent,\n init: init,\n getCurrentLanguage: getCurrentLanguage,\n setLanguage: setLanguage\n };\n\n function init(lang) {\n\n return setLanguage(lang);\n }\n\n function getCurrentLanguage() {\n return gettextCatalog.getCurrentLanguage();\n }\n\n function setLanguage(lang) {\n common.log.info('set language to:', lang);\n\n var isSameLanguage = lang === getCurrentLanguage() && isLanguageLoaded;\n if (isSameLanguage) {\n return $q.when(lang);\n }\n\n angular.element('html').attr('lang', lang);\n\n // Set the current language before the promise returns, otherwise the language is not highlighted in the footer\n gettextCatalog.setCurrentLanguage(lang);\n\n // set locale (for formatting of dates and currencies)\n tmhDynamicLocale.set(lang);\n\n // set text catalog\n common.log.info('load localization file', lang);\n\n // set local storage\n window.localStorage.setItem('language', lang);\n\n $localStorage.language = lang;\n languageChangeEvent.raise(lang);\n }\n\n function addLanguageChangeEvent(callback) {\n return languageChangeEvent.addHandler(callback);\n }\n}\n\nfunction Event(name) {\n this._name = name;\n this._callbacks = [];\n}\n\nEvent.prototype = function () {\n function addHandler(cb) {\n var ctx = this;\n this._callbacks.push(cb);\n return function () {\n ctx.removeHandler(cb);\n };\n }\n function removeHandler(cb) {\n var idx = this._callbacks.findIndex(function (item) {\n return item === cb;\n });\n if (idx >= 0) {\n this._callbacks.splice(idx, 1);\n }\n }\n function raise() {\n for (var _iterator = this._callbacks, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var cb = _ref;\n\n cb.apply(null, arguments);\n }\n }\n\n return {\n addHandler: addHandler,\n removeHandler: removeHandler,\n raise: raise\n };\n}();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/services/localizer.js\n// module id = 815\n// module chunks = 0","'use strict';\n\nnewsOverviewService.$inject = [\"newsService\", \"NewsOverview\", \"NewsSearchRequest\", \"common\", \"Enums\", \"$state\", \"$stateParams\", \"$q\", \"gettextCatalog\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.newsOverviewService = newsOverviewService;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction newsOverviewService(newsService, NewsOverview, NewsSearchRequest, common, Enums, $state, $stateParams, $q, gettextCatalog) {\n return {\n handleGetNews: handleGetNews\n };\n\n function handleGetNews(scope, context, defaultFilterAttr, pageSize) {\n var newsOverviewModel = NewsOverview.create(context, defaultFilterAttr, pageSize);\n return getNews(true, newsOverviewModel).then(function (model) {\n newsOverviewModel = model;\n listenForLocationChangeSuccess();\n return newsOverviewModel;\n });\n\n function listenForLocationChangeSuccess() {\n scope.$on('$locationChangeSuccess', function () {\n getNews(false, newsOverviewModel).then(function (model) {\n newsOverviewModel = model;\n document.body.scrollTop = document.documentElement.scrollTop = 0;\n }).catch(function () {\n $state.go('error', {}, { location: false });\n });\n });\n }\n }\n\n function getNews(init, newsOverviewModel) {\n var params = getQueryStringParams(newsOverviewModel);\n var searchRequest = NewsSearchRequest.create(newsOverviewModel.context, params);\n return loadNews(init, newsOverviewModel, searchRequest, params.page);\n }\n\n function getQueryStringParams(newsOverviewModel) {\n var page = parseInt($stateParams.page);\n var pageSize = newsOverviewModel.paging.itemsPerPage;\n\n return {\n page: page,\n skip: newsOverviewModel.paging.getSkipValue(page, pageSize),\n take: pageSize,\n categoryId: $stateParams.categoryId === '0' ? null : parseInt($stateParams.categoryId),\n searchValue: $stateParams.searchValue,\n sellerId: newsOverviewModel.sellerId,\n brandId: newsOverviewModel.brandId,\n productId: newsOverviewModel.productId,\n tagId: newsOverviewModel.tagId\n };\n }\n\n function loadNews(init, model, searchRequest, page) {\n var promises = [];\n promises.push(newsService.getByCriteria(searchRequest));\n promises.push(init ? newsService.getCategories() : $q.when(null));\n\n model.errorOccurred = false;\n model.isLoadingInitial = init;\n\n return $q.all(promises).then(function (promiseResults) {\n var newsResult = promiseResults[0];\n var categoriesResult = promiseResults[1];\n model.paging.totalItems = newsResult.count;\n model.paging.page = page;\n model.items = newsResult.results;\n model.searchValue = $stateParams.searchValue || '';\n\n if (categoriesResult) {\n model.categories = categoriesResult;\n var allCategoriesText = gettextCatalog.getString('All categories');\n var allCategoriesItem = {\n id: 0,\n displayName: allCategoriesText\n };\n model.categories.splice(0, 0, allCategoriesItem);\n model.selectedCategory = allCategoriesItem;\n\n if ($stateParams.categoryId) {\n var categoryId = parseInt($stateParams.categoryId);\n var selectedCategory = _lodash2.default.find(model.categories, function (i) {\n return i.id === categoryId;\n });\n if (selectedCategory) {\n model.selectedCategory = selectedCategory;\n }\n }\n }\n\n model.paging.update(page);\n\n if (init && model.items.length > 0) {\n model.isNewsAvailableForContext = true;\n }\n\n model.isNewsAvailableForCriteria = model.items.length > 0;\n\n model.isLoadingInitial = false;\n model.isLoading = false;\n return model;\n }).catch(function () {\n model.isLoadingInitial = false;\n model.isLoading = false;\n model.errorOccurred = true;\n return model;\n });\n }\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/services/newsOverviewService.js\n// module id = 816\n// module chunks = 0","'use strict';\n\nnewsService.$inject = [\"$http\", \"NewsItem\", \"api\", \"NewsTile\", \"Enums\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.newsService = newsService;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction newsService($http, NewsItem, api, NewsTile, Enums) {\n return {\n getById: getById,\n getByCriteria: getByCriteria,\n // getRecentNews: getRecentNews,\n // getPopularNews: getPopularNews,\n // getBySellerId: getBySellerId,\n getNewsForHomepage: getNewsForHomepage,\n getNewsForSellerPage: getNewsForSellerPage,\n getNewsForProduct: getNewsForProduct,\n getNewsForBrand: getNewsForBrand,\n getCategories: getCategories,\n getNewsSliderSettings: getNewsSliderSettings\n };\n\n function getById(id) {\n return api.news.get({ id: id }).$promise.then(function (resource) {\n return NewsItem.create(resource);\n });\n }\n\n function getByCriteria(searchRequest) {\n\n var params = {\n skip: searchRequest.skip,\n take: searchRequest.take,\n title: searchRequest.searchValue,\n productId: searchRequest.productId,\n sellerId: searchRequest.sellerId,\n brandId: searchRequest.brandId,\n categoryId: searchRequest.categoryId\n };\n\n return api.newsSearch.execute(params).$promise.then(function (searchResponse) {\n return searchResponse;\n });\n }\n\n // function getRecentNews() {\n // return getAll().then(r => lodash.chain(r).sortBy('date').reverse().take(5).value());\n // }\n\n // function getPopularNews() {\n // return getAll().then(r => lodash.chain(r).sortBy('id').take(5).value());\n // }\n\n // function getBySellerId(id) { \n // return getAll().then(r => lodash.filter(r, i => i.sellerId === id));\n // }\n\n function getNewsForSellerPage(id) {\n var params = {\n skip: 0,\n take: 3,\n sellerId: id\n };\n return api.newsSearch.execute(params).$promise.then(function (searchResponse) {\n return _lodash2.default.map(searchResponse.results, function (i) {\n return NewsTile.create(i);\n });\n });\n }\n\n function getNewsForHomepage() {\n var params = {\n skip: 0,\n take: 4\n };\n return api.newsSearch.execute(params).$promise.then(function (searchResponse) {\n return _lodash2.default.map(searchResponse.results, function (i) {\n return NewsTile.create(i);\n });\n });\n }\n\n function getNewsForProduct(id) {\n var params = {\n skip: 0,\n take: 3,\n productId: id\n };\n return api.newsSearch.execute(params).$promise.then(function (searchResponse) {\n return _lodash2.default.map(searchResponse.results, function (i) {\n return NewsTile.create(i);\n });\n });\n }\n\n function getNewsForBrand(id, skip, take) {\n var params = {\n skip: skip,\n take: take,\n brandId: id\n };\n return api.newsSearch.execute(params).$promise.then(function (searchResponse) {\n return _lodash2.default.map(searchResponse.results, function (i) {\n return NewsTile.create(i);\n });\n });\n }\n\n function getCategories() {\n var params = {};\n return api.newsCategories.execute(params).$promise.then(function (categories) {\n return categories;\n });\n }\n\n // function getTags() {\n // return $http.get('/assets/data/tags.json')\n // .then(function(response) { \n // return response.data;\n // });\n // }\n\n function getNewsSliderSettings() {\n return Enums.newsSliderSettings;\n }\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/services/newsService.js\n// module id = 817\n// module chunks = 0","'use strict';\n\norderService.$inject = [\"api\", \"$http\", \"$q\", \"OrderOverviewItem\", \"Order\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.orderService = orderService;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction orderService(api, $http, $q, OrderOverviewItem, Order) {\n return {\n getByCriteria: getByCriteria,\n getById: getById,\n setOrderDeliveryDate: setOrderDeliveryDate\n };\n\n function getByCriteria(searchValue, page, itemsPerPage, sortProperty, sortAsc, sellerId) {\n var params = {\n Number: searchValue,\n Skip: itemsPerPage * (page - 1),\n Take: itemsPerPage,\n OrderBy: sortProperty,\n OrderAsc: sortAsc,\n SellerId: sellerId\n };\n\n return api.orderSearch.execute(params).$promise.then(function (searchResponse) {\n return {\n totalItems: searchResponse.count,\n orders: _lodash2.default.map(searchResponse.results, function (i) {\n return OrderOverviewItem.create(i);\n })\n };\n });\n }\n\n function getById(id) {\n return $q.all([api.orders.get({ id: id }).$promise]).then(function (results) {\n var order = Order.create(results[0]);\n\n if (order.shippingNotes) {\n order.shippingNotes.forEach(function (note, i) {\n getShippingNoteDetail(order.id, note.warehouseCode, note.shippingNoteNumber).then(function (result) {\n order.shippingNotes[i].detail = result;\n return result;\n });\n });\n }\n\n return order;\n });\n }\n\n function getShippingNoteDetail(id, warehouseCode, shippingNote) {\n return api.shippingNoteSearch.execute({ id: id, warehouseCode: warehouseCode, shippingNote: shippingNote }).$promise.then(function (result) {\n return result;\n });\n }\n\n function setOrderDeliveryDate(order, newDeliveryDate) {\n return api.setOrderDeliveryDate.execute({ id: order.id, deliveryDate: newDeliveryDate, version: order.version }).$promise.then(function () {\n return getById(order.id).then(function (order) {\n return order;\n });\n });\n }\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/services/orderService.js\n// module id = 818\n// module chunks = 0","'use strict';\n\noutletService.$inject = [\"api\", \"OutletCategory\", \"OutletHomePage\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.outletService = outletService;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction outletService(api, OutletCategory, OutletHomePage) {\n return {\n getCategories: getCategories,\n getTextFields: getTextFields\n };\n\n function getCategories() {\n\n return api.outlet.get().$promise.then(function (searchResponse) {\n return _lodash2.default.map(searchResponse, function (i) {\n return OutletCategory.create(i);\n });\n });\n }\n function getTextFields() {\n return api.outletHomePage.get().$promise.then(function (response) {\n return OutletHomePage.create(response);\n });\n }\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/services/outletService.js\n// module id = 819\n// module chunks = 0","'use strict';\n\npackagesService.$inject = [\"$http\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.packagesService = packagesService;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction packagesService($http) {\n //, PackageItem\n return {\n getRecentOrders: getRecentOrders,\n getOrders: getOrders,\n getOrderTypes: getOrderTypes,\n getPackageTypes: getPackageTypes,\n validateContact: validateContact,\n getStateHistory: getStateHistory,\n getById: getById,\n getContactTypeName: getContactTypeName,\n getOrderStateContext: getOrderStateContext,\n getOrderStateIcon: getOrderStateIcon\n };\n\n function getContactTypeName(id) {\n var urlString = '/assets/data/packages.json';\n\n return $http.get(urlString).then(function (response) {\n var orderType = response.data.orderTypes.find(function (i) {\n return i.id === id;\n });\n return orderType ? orderType.name : null;\n });\n }\n\n function getOrderStateContext(code) {\n var context = void 0;\n\n switch (code) {\n case 'READY':\n context = 'secondary';\n break;\n case 'PICKEDUP':\n context = 'info';\n break;\n case 'DEPOT':\n context = 'info';\n break;\n case 'TRANSIT':\n context = 'info';\n break;\n case 'DELIVERED':\n context = 'success';\n break;\n case 'SIGNED':\n context = 'success';\n break;\n\n default:\n context = 'success';\n //\n }\n return context;\n }\n\n function getOrderStateIcon(code) {\n var icon = void 0;\n\n switch (code) {\n case 'READY':\n icon = 'ico-truck';\n break;\n case 'PICKEDUP':\n icon = 'ico-truck';\n break;\n case 'DEPOT':\n icon = 'ico-truck';\n break;\n case 'TRANSIT':\n icon = 'ico-truck';\n break;\n case 'DELIVERED':\n icon = 'ico-truck';\n break;\n case 'SIGNED':\n icon = 'ico-truck';\n break;\n\n default:\n icon = 'ico-truck';\n //\n }\n\n return icon;\n }\n\n function getRecentOrders() {\n var urlString = '/assets/data/packages.json';\n\n return $http.get(urlString).then(function (response) {\n return response.data.orders.results.slice(0, 2);\n });\n }\n\n function getOrders() {\n var urlString = '/assets/data/packages.json';\n\n return $http.get(urlString).then(function (response) {\n return response.data.orders.results;\n });\n }\n\n function validateContact(customerNumber, licenseNumber) {\n var urlString = '/assets/data/packages.json';\n\n return $http.get(urlString).then(function (response) {\n return response.data.contacts.find(function (i) {\n return i.customerNumber === customerNumber && i.licenseNumber === licenseNumber;\n });\n });\n }\n\n function getStateHistory(id) {\n ///api/pod/{id:int}/stateHistory \n var urlString = '/assets/data/packages.json';\n\n return $http.get(urlString).then(function (response) {\n var stateHistory = void 0;\n stateHistory = response.data.stateHistory.find(function (i) {\n return i.id === id;\n });\n if (!stateHistory) {\n stateHistory = response.data.stateHistory.find(function (i) {\n return i.id === 6;\n });\n }\n\n return stateHistory.stateHistory;\n });\n }\n\n function getOrderTypes() {\n ///api/pod/orderTypes \n var urlString = '/assets/data/packages.json';\n return $http.get(urlString).then(function (response) {\n return response.data.orderTypes.results;\n });\n }\n\n function getPackageTypes() {\n ///api/pod/packageTypes \n var urlString = '/assets/data/packages.json';\n return $http.get(urlString).then(function (response) {\n //return lodash.map(response.data.packages, i => PackageItem.create(i));\n return response.data.packageTypes.results;\n });\n }\n\n function getById(id) {\n var urlString = '/assets/data/packages.json';\n\n return $http.get(urlString).then(function (response) {\n var orders = response.data.orders.results;\n var order = _lodash2.default.find(orders, function (i) {\n return i.id === id;\n });\n\n if (!order) {\n order = _lodash2.default.find(orders, function (i) {\n return i.id === 3;\n });\n }\n\n return order;\n });\n }\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/services/packagesService.js\n// module id = 820\n// module chunks = 0","'use strict';\n\nparcelService.$inject = [\"api\", \"config\", \"$stateParams\", \"authService\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.parcelService = parcelService;\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction parcelService(api, config, $stateParams, authService) {\n var packageLineNumber = 1;\n var insuranceLineNumber = 2;\n\n return {\n init: init,\n validateReceiver: validateReceiver,\n getOrderTypes: getOrderTypes,\n add: add,\n get: get,\n search: search,\n getRecentOrders: getRecentOrders,\n getLabelDownloadUrl: getLabelDownloadUrl,\n getStateHistory: getStateHistory,\n getOrderStateContext: getOrderStateContext,\n getOrderStateIcon: getOrderStateIcon,\n cancel: cancel\n };\n\n function init() {\n var _this = this;\n\n if (!this.podPackageTypes) {\n return getPackageTypes().then(function (response) {\n return _this.podPackageTypes = response;\n });\n }\n }\n\n function add(orderTypeId, parcelAdd) {\n return api.podOrderAdd.execute({ orderTypeId: orderTypeId }, parcelAdd).$promise.then(function (resource) {\n return resource;\n });\n }\n\n function validateReceiver(licenseNumber) {\n return api.podValidateContact.get({ licenseNumber: licenseNumber }).$promise.then(function (resource) {\n return resource;\n });\n }\n\n function getOrderTypes() {\n return api.podOrderTypes.get().$promise.then(function (resource) {\n return resource;\n });\n }\n\n function getPackageTypes(customerNumber) {\n return api.podPackageTypes.get({ customerNumber: customerNumber }).$promise.then(function (resource) {\n return resource;\n });\n }\n\n function get(id) {\n return api.pod.get({ id: id }).$promise.then(function (result) {\n result.lines = result.lines.map(function (line) {\n var packageInvoiceLine = line.invoiceLines.find(function (invoiceLine) {\n return invoiceLine.lineNumber === packageLineNumber;\n });\n var insuranceInvoiceLine = line.invoiceLines.find(function (invoiceLine) {\n return invoiceLine.lineNumber === insuranceLineNumber;\n });\n line.isFree = packageInvoiceLine ? packageInvoiceLine.isFree : null;\n line.packageInvoiceAmount = packageInvoiceLine ? packageInvoiceLine.invoiceAmount : null;\n line.insuranceInvoiceAmount = insuranceInvoiceLine ? insuranceInvoiceLine.invoiceAmount : null;\n return line;\n });\n return result;\n });\n }\n\n function getRecentOrders() {\n var search = {\n dateFrom: (0, _moment2.default)().add(-6, 'months').format('YYYY-MM-DD'),\n take: 10\n };\n return api.podSearch.search(search).$promise.then(function (resource) {\n return resource.results;\n });\n }\n\n function search(search) {\n return api.podSearch.search(search).$promise.then(function (resource) {\n return resource;\n });\n }\n\n function getLabelDownloadUrl(id) {\n return config.webApiBaseUrl + ('pod/' + id + '/downloadLabel?lang=' + $stateParams.language + '&access_token=' + authService.accessToken);\n }\n\n function getStateHistory(id) {\n return api.podLineStateHistory.get({ lineId: id }).$promise.then(function (resource) {\n return resource;\n });\n }\n\n function cancel(orderTypeId, lineIds) {\n return api.podOrderDetail.cancel({ orderTypeId: orderTypeId }, lineIds).$promise.then(function (resource) {\n return resource;\n });\n }\n\n function getOrderStateContext(code) {\n var context = void 0;\n\n switch (code) {\n case 'CREATED':\n context = 'secondary';\n break;\n case 'REG':\n context = 'secondary';\n break;\n case 'PICK':\n context = 'info';\n break;\n case 'TRANSIT':\n context = 'info';\n break;\n case 'TOURDEL':\n context = 'info';\n break;\n case 'DELIV':\n context = 'success';\n break;\n case 'ANO':\n context = 'error';\n break;\n case 'CANCEL':\n context = 'error';\n break;\n\n default:\n context = 'success';\n }\n return context;\n }\n\n function getOrderStateIcon(code) {\n var icon = void 0;\n\n switch (code) {\n case 'CREATED':\n icon = 'ico-truck';\n break;\n case 'REG':\n icon = 'ico-truck';\n break;\n case 'PICK':\n icon = 'ico-truck';\n break;\n case 'TRANSIT':\n icon = 'ico-truck';\n break;\n case 'TOURDEL':\n icon = 'ico-truck';\n break;\n case 'DELIV':\n icon = 'ico-truck';\n break;\n case 'ANO':\n icon = 'ico-truck';\n break;\n case 'CANCEL':\n icon = 'ico-truck';\n break;\n\n default:\n icon = 'ico-truck';\n }\n\n return icon;\n }\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/services/parcelService.js\n// module id = 821\n// module chunks = 0","'use strict';\n\npartnershipsService.$inject = [\"Partnership\", \"$http\", \"api\", \"PartnershipOverview\", \"PartnershipDetail\", \"Enums\", \"authService\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.partnershipsService = partnershipsService;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction partnershipsService(Partnership, $http, api, PartnershipOverview, PartnershipDetail, Enums, authService) {\n\n return {\n getAllTemp: getAllTemp,\n // getPartnershipsForSellerHomepage: getPartnershipsForSellerHomepage,\n getAll: getAll,\n getById: getById,\n init: init,\n getGallerySliderSettings: getGallerySliderSettings\n };\n\n function init(pageSize) {\n return PartnershipOverview.create(pageSize);\n }\n\n function getAllTemp(model) {\n return $http.get('/assets/data/partnerships.json').then(function (resource) {\n _lodash2.default.map(resource.data.results, function (result) {\n model.partnerships.push(result);\n });\n model.isLoadingInitial = false;\n model.isLoading = false;\n model.paging.totalItems = resource.data.count;\n model.paging.update(1);\n return model;\n });\n }\n\n function getAll(model, searchRequest, page) {\n\n model.errorOccurred = false;\n model.isLoadingInitial = true;\n\n var params = {\n skip: model.paging.getSkipValue(page, searchRequest.take),\n take: searchRequest.take,\n sellerId: searchRequest.sellerId,\n title: searchRequest.title\n };\n\n return api.partnerships.list(params).$promise.then(function (resource) {\n _lodash2.default.map(resource.results, function (result) {\n model.partnerships.push(result);\n });\n model.isLoadingInitial = false;\n model.isLoading = false;\n model.paging.totalItems = resource.count;\n model.paging.update(page);\n model.paging.page = page;\n return model;\n }).catch(function () {\n model.isLoadingInitial = false;\n model.errorOccurred = true;\n return model;\n });\n }\n\n function getById(id) {\n return api.partnerships.get({ id: id }).$promise.then(function (resource) {\n if (authService.isSeller) {\n return PartnershipDetail.create(resource);\n }\n return api.shoppingCartProducts.get({}).$promise.then(function (cartProducts) {\n return PartnershipDetail.create(resource, cartProducts);\n });\n });\n }\n\n function getGallerySliderSettings() {\n return Enums.partnershipGallerySliderSettings;\n }\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/services/partnershipsService.js\n// module id = 822\n// module chunks = 0","'use strict';\n\nproductOverviewService.$inject = [\"productService\", \"ProductOverview\", \"ProductSearchRequest\", \"ProductFilterRequest\", \"Filter\", \"common\", \"Enums\", \"FilterCategory\", \"$stateParams\", \"$q\", \"$state\", \"categoryService\", \"sellerService\", \"gettextCatalog\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.productOverviewService = productOverviewService;\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction productOverviewService(productService, ProductOverview, ProductSearchRequest, ProductFilterRequest, Filter, common, Enums, FilterCategory, $stateParams, $q, $state, categoryService, sellerService, gettextCatalog) {\n return {\n init: init,\n loadProducts: loadProducts,\n getProductsForHomepage: getProductsForHomepage,\n getProductsByDiscounts: getProductsByDiscounts,\n getProductsBySearchValue: getProductsBySearchValue,\n getProductsByBrand: getProductsByBrand,\n getProductsByCategory: getProductsByCategory,\n getDiscountsBySeller: getDiscountsBySeller,\n getSellerProducts: getSellerProducts,\n getSellerDiscounts: getSellerDiscounts,\n getProductsBySellerCategory: getProductsBySellerCategory,\n getSellerDetailDiscounts: getSellerDetailDiscounts,\n getSellerDetailProducts: getSellerDetailProducts,\n getProductSliderSettings: getProductSliderSettings,\n getOutletProducts: getOutletProducts,\n setProductOverviewModel: setProductOverviewModel,\n getProductOverviewModel: getProductOverviewModel,\n getCustomCategory: getCustomCategory\n };\n\n function init(context) {\n return ProductOverview.create(context);\n }\n function getCustomCategory() {\n var cat = FilterCategory.create({\n id: '0',\n name: 'Special Discounts',\n isHierarchical: false,\n isCollapsed: false,\n isLink: true,\n isSellerCategory: false,\n initialLimit: 15,\n limit: 15,\n items: [{ id: 0,\n name: 'Black Friday',\n parentCategoryId: null,\n parents: [],\n isSelected: $stateParams.filter.indexOf('10_0') !== -1\n }],\n context: 10,\n order: 0\n });\n return cat;\n }\n function loadProducts(init, loadFilter, model, searchRequest, filterRequest, page, outlet) {\n var promises = [];\n\n if (outlet) {\n promises.push(productService.getByCriteriaForOutlet(searchRequest));\n } else if (filterRequest.SellerId) {\n promises.push(productService.getByCriteria(searchRequest));\n promises.push(loadFilter ? productService.getFilter(filterRequest) : $q.when(null));\n promises.push(categoryService.getById($stateParams.categoryId));\n promises.push(sellerService.getSellerTotalPriceDiscounts($stateParams.sellerId));\n } else {\n promises.push(productService.getByCriteria(searchRequest));\n promises.push(loadFilter ? productService.getFilter(filterRequest) : $q.when(null));\n promises.push(categoryService.getById($stateParams.categoryId));\n }\n\n model.errorOccurred = false;\n model.isLoadingInitial = init;\n model.isLoading = true;\n\n //TODO: when query string filter param is available and init, then get products without filter and with filter \n return $q.all(promises).then(function (promiseResults) {\n var productsResult = promiseResults[0];\n var filtersResult = promiseResults[1];\n var categoryResult = promiseResults[2];\n var totalPriceDiscounts = promiseResults[3];\n var test = (0, _moment2.default)().isSame('2018-11-23', 'day');\n if (searchRequest.context === Enums.searchContext.discount.id && filtersResult && filtersResult.filterCategories && test) {\n filtersResult.filterCategories.unshift(getCustomCategory());\n }\n model.paging.totalItems = productsResult.totalItems;\n model.paging.page = page;\n model.products = productsResult.products;\n model.category = categoryResult === null ? { name: gettextCatalog.getString('All products') } : categoryResult;\n model.totalPriceDiscounts = totalPriceDiscounts;\n if (filtersResult) {\n model.filter = filtersResult;\n }\n\n model.paging.update(page);\n if (model.filter) {\n model.filter.markFilterCheckboxesAsSelected($stateParams.filter);\n model.filter.setSelectedFilters($stateParams.filter);\n }\n\n if (model.products.length > 0) {\n model.productsAvailableForContext = true;\n }\n\n model.productsAvailableForCriteria = model.products.length > 0;\n model.isLoadingInitial = false;\n model.isLoading = false;\n return model;\n }).catch(function () {\n model.isLoadingInitial = false;\n model.isLoading = false;\n model.errorOccurred = true;\n return model;\n });\n }\n\n function getQueryStringParams(productOverviewModel, defaultSortProperty) {\n var page = parseInt($stateParams.page);\n var pageSize = parseInt(window.sessionStorage.getItem('pageSize')) || parseInt($stateParams.pageSize);\n var sortByField = null;\n var sortAsc = null;\n //set sorting and check localstorage \n if (window.localStorage.getItem($state.current.name + '-sortProperty')) {\n sortByField = window.localStorage.getItem($state.current.name + '-sortProperty');\n } else {\n sortByField = $stateParams.sortProperty || defaultSortProperty;\n }\n\n if (window.localStorage.getItem($state.current.name + '-sortAsc')) {\n sortAsc = window.localStorage.getItem($state.current.name + '-sortAsc');\n } else {\n sortAsc = $stateParams.sortAsc;\n }\n\n return {\n page: page,\n skip: productOverviewModel.paging.getSkipValue(page, pageSize),\n take: pageSize,\n sortByField: sortByField,\n sortAsc: sortAsc,\n filter: $stateParams.filter\n };\n }\n\n function getProductsForHomepage(init, productOverviewModel) {\n common.log.info('getProductsForHomepage');\n var searchRequest = ProductSearchRequest.createForHomePage();\n var filterRequest = ProductFilterRequest.createForHomePage();\n return loadProducts(init, false, productOverviewModel, searchRequest, filterRequest, 0);\n }\n\n function getProductsByDiscounts(init, productOverviewModel, discountTypeId) {\n common.log.info('getProductsByDiscounts');\n var params = getQueryStringParams(productOverviewModel, 'DiscountDate');\n var searchRequest = ProductSearchRequest.createForDiscounts(params, discountTypeId);\n var filterRequest = ProductFilterRequest.createForDiscounts(discountTypeId);\n return loadProducts(init, true, productOverviewModel, searchRequest, filterRequest, params.page);\n }\n\n function getProductsBySearchValue(init, productOverviewModel, searchValue) {\n common.log.info('getProductsBySearchValue');\n var params = getQueryStringParams(productOverviewModel, 'Name');\n var searchRequest = ProductSearchRequest.createForSearch(params, searchValue);\n var filterRequest = ProductFilterRequest.createForSearch(searchValue);\n return loadProducts(init, true, productOverviewModel, searchRequest, filterRequest, params.page);\n }\n\n function getProductsByBrand(init, productOverviewModel, brandId) {\n common.log.info('getProductsByBrand');\n var params = getQueryStringParams(productOverviewModel, 'Name');\n var searchRequest = ProductSearchRequest.createForBrand(params, brandId);\n var filterRequest = ProductFilterRequest.createForBrand(brandId);\n return loadProducts(init, true, productOverviewModel, searchRequest, filterRequest, params.page);\n }\n\n function getProductsByCategory(init, productOverviewModel, categoryId) {\n common.log.info('getProductsByCategory');\n var params = getQueryStringParams(productOverviewModel, 'Name');\n var searchRequest = ProductSearchRequest.createForCategory(params, categoryId);\n var filterRequest = ProductFilterRequest.createForCategory(categoryId);\n return loadProducts(init, true, productOverviewModel, searchRequest, filterRequest, params.page);\n }\n\n function getDiscountsBySeller(init, productOverviewModel, sellerId) {\n common.log.info('getDiscountsBySeller');\n var params = getQueryStringParams(productOverviewModel, 'Name');\n var searchRequest = ProductSearchRequest.createForSeller(params, sellerId);\n var filterRequest = ProductFilterRequest.createForSeller(sellerId);\n return loadProducts(init, true, productOverviewModel, searchRequest, filterRequest, params.page);\n }\n\n function getOutletProducts(init, productOverviewModel, sellerId, categoryId) {\n common.log.info('getSellerProducts');\n var params = getQueryStringParams(productOverviewModel, 'Name');\n var searchRequest = ProductSearchRequest.createForSellerProducts(params, sellerId, categoryId);\n var filterRequest = ProductFilterRequest.createForSellerProducts(sellerId, categoryId);\n return loadProducts(init, true, productOverviewModel, searchRequest, filterRequest, params.page, true);\n }\n\n function getSellerProducts(init, productOverviewModel, sellerId, categoryId) {\n common.log.info('getSellerProducts');\n var params = getQueryStringParams(productOverviewModel, 'Name');\n var searchRequest = ProductSearchRequest.createForSellerProducts(params, sellerId, categoryId);\n var filterRequest = ProductFilterRequest.createForSellerProducts(sellerId, categoryId);\n return loadProducts(init, true, productOverviewModel, searchRequest, filterRequest, params.page);\n }\n\n function getSellerDiscounts(init, productOverviewModel, sellerId) {\n common.log.info('getSellerDiscounts');\n var params = getQueryStringParams(productOverviewModel, 'Name');\n var searchRequest = ProductSearchRequest.createForSellerDiscounts(params, sellerId);\n var filterRequest = ProductFilterRequest.createForSellerDiscounts(sellerId);\n return loadProducts(init, true, productOverviewModel, searchRequest, filterRequest, params.page);\n }\n\n function getProductsBySellerCategory(init, productOverviewModel, sellerId, sellerCategoryId) {\n common.log.info('getProductsBySellerCategory');\n var params = getQueryStringParams(productOverviewModel, 'Name');\n var searchRequest = ProductSearchRequest.createForSellerCategory(params, sellerId, sellerCategoryId);\n var filterRequest = ProductFilterRequest.createForSellerCategory(sellerId, sellerCategoryId);\n return loadProducts(init, true, productOverviewModel, searchRequest, filterRequest, params.page);\n }\n\n function getSellerDetailDiscounts(init, productOverviewModel, sellerId) {\n common.log.info('getSellerDetailDiscounts');\n var searchRequest = ProductSearchRequest.createForSellerDetailDiscounts(sellerId);\n var filterRequest = ProductFilterRequest.createForSellerDetailDiscounts(sellerId);\n return loadProducts(init, false, productOverviewModel, searchRequest, filterRequest, 0);\n }\n\n function getSellerDetailProducts(init, productOverviewModel, sellerId) {\n common.log.info('getSellerDetailProducts');\n var searchRequest = ProductSearchRequest.createForSellerDetailProducts(sellerId);\n var filterRequest = ProductFilterRequest.createForSellerDetailDiscounts(sellerId);\n return loadProducts(init, false, productOverviewModel, searchRequest, filterRequest, 0);\n }\n\n function getProductSliderSettings() {\n return Enums.productSliderSettings;\n }\n\n function setProductOverviewModel(productOverviewModel) {\n this.productOverviewModel = productOverviewModel;\n }\n\n function getProductOverviewModel() {\n return this.productOverviewModel;\n }\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/services/productOverviewService.js\n// module id = 823\n// module chunks = 0","'use strict';\n\nproductService.$inject = [\"$http\", \"ProductOverviewItem\", \"Product\", \"Filter\", \"$q\", \"$cacheFactory\", \"api\", \"ProductSearchRequest\", \"Stock\", \"Upload\", \"config\", \"FastOrderProduct\", \"ProductDiscount\", \"$stateParams\", \"MediPimData\", \"NewsTile\", \"authService\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.productService = productService;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction productService($http, ProductOverviewItem, Product, Filter, $q, $cacheFactory, api, ProductSearchRequest, Stock, Upload, config, FastOrderProduct, ProductDiscount, $stateParams, MediPimData, NewsTile, authService) {\n var cache = $cacheFactory('filterCache');\n\n return {\n get: get,\n getFilter: getFilter,\n getByCriteria: getByCriteria,\n getSearchResults: getSearchResults,\n searchProducts: searchProducts,\n uploadProductList: uploadProductList,\n getProductStock: getProductStock,\n getProductDiscounts: getProductDiscounts,\n calculateGrossProfit: calculateGrossProfit,\n calculateGrossProfits: calculateGrossProfits,\n calculateGrossProfitWithoutDiscount: calculateGrossProfitWithoutDiscount,\n calculateGrossProfitAmounts: calculateGrossProfitAmounts,\n calculateGrossProfitAmount: calculateGrossProfitAmount,\n calculateGrossProfitAmountWithoutDiscount: calculateGrossProfitAmountWithoutDiscount,\n calculateGrossProfitAmountWithDiscount: calculateGrossProfitAmountWithDiscount,\n formatProductDiscount: formatProductDiscount,\n getByCriteriaForOutlet: getByCriteriaForOutlet,\n getProductMedipimdata: getProductMedipimdata\n };\n\n function get(id) {\n var promises = [];\n promises.push(api.products.get({ id: id }).$promise);\n if (authService.isBuyer) {\n promises.push(api.shoppingCartProducts.get({}).$promise);\n } else {\n promises.push(Promise.resolve());\n }\n var params = {\n skip: 0,\n take: 3,\n productId: id\n };\n promises.push(api.newsSearch.execute(params).$promise);\n promises.push(api.productDiscounts.get({ productId: id }).$promise);\n\n return $q.all(promises).then(function (results) {\n var product = results[0];\n var cartProducts = results[1];\n var topNewsitems = _lodash2.default.map(results[2].results, function (i) {\n return NewsTile.create(i);\n });\n var productDiscounts = formatProductDiscount(ProductDiscount.create(results[3]));\n\n var prod = Product.getClass().create(product, cartProducts, null, product.productTypeCode, topNewsitems, productDiscounts);\n prod.grossProfit = calculateGrossProfit(prod);\n prod.grossProfitAmount = calculateGrossProfitAmount(prod);\n calculateGrossProfits(prod.included_products);\n calculateGrossProfitAmounts(prod.included_products);\n prod.shoppingCartProducts = cartProducts;\n return prod;\n });\n }\n function getProductMedipimdata(productId) {\n return api.productMedipim.getMedipimData({ productId: productId }).$promise.then(function (response) {\n return MediPimData.create(response);\n });\n }\n function getProductStock(model, productNumber, quantity) {\n return api.productStock.get({ productNumber: productNumber, quantity: quantity }).$promise.then(function (response) {\n model.stock = Stock.create(response);\n return model;\n });\n }\n\n function getProductDiscounts(productId) {\n return api.productDiscounts.get({ productId: productId }).$promise.then(function (response) {\n return ProductDiscount.create(response);\n });\n }\n\n function getByCriteria(searchRequest) {\n var promises = [];\n promises.push(api.productSearch.search(searchRequest).$promise);\n if (authService.isBuyer) {\n promises.push(api.shoppingCartProducts.get({}).$promise);\n } else {\n promises.push(Promise.resolve());\n }\n return $q.all(promises).then(function (results) {\n var searchResponse = results[0];\n var cartProducts = results[1];\n var productResources = searchResponse.results;\n\n var products = _lodash2.default.map(productResources, function (resource) {\n return ProductOverviewItem.getClass().create(resource, cartProducts, searchRequest.context);\n });\n calculateGrossProfits(products);\n calculateGrossProfitAmounts(products);\n return {\n totalItems: searchResponse.count,\n products: products,\n filters: null\n };\n });\n }\n function getByCriteriaForOutlet(searchRequest) {\n var promises = [];\n promises.push(api.outletProductsSearch.search(searchRequest).$promise);\n if (authService.isBuyer) {\n promises.push(api.shoppingCartProducts.get({}).$promise);\n }\n return $q.all(promises).then(function (results) {\n var searchResponse = results[0];\n var cartProducts = results[1];\n var productResources = searchResponse.results;\n\n var products = _lodash2.default.map(productResources, function (resource) {\n return ProductOverviewItem.getClass().create(resource, cartProducts, searchRequest.context);\n });\n calculateGrossProfits(products);\n calculateGrossProfitAmounts(products);\n return {\n totalItems: searchResponse.count,\n products: products,\n filters: null\n };\n });\n }\n function getFilter(params) {\n\n var cachedFilter = void 0;\n var cachedFilterDate = void 0;\n\n //do not chache te filter\n if (!params.IsDiscountView && params.CacheFilter) {\n cachedFilter = cache.get('product-filters?sellerId=' + params.SellerId + '&context=' + params.context + '&isDiscountView=' + params.IsDiscountView + '&lang=' + $stateParams.language);\n cachedFilterDate = cache.put('cachedFilterDate', (0, _moment2.default)());\n }\n\n if (cachedFilter) {\n\n // clear the filter if older than one day\n if (cachedFilterDate.diff((0, _moment2.default)().subtract(1, 'days'), 'days') > 1) {\n cachedFilter = null;\n cachedFilterDate = null;\n }\n\n return Filter.create(cachedFilter);\n } else {\n return api.productFilter.get(params).$promise.then(function (response) {\n\n if (!params.IsDiscountView && params.CacheFilter) {\n cache.put('product-filters?sellerId=' + params.SellerId + '&context=' + params.context + '&isDiscountView=' + params.IsDiscountView + '&lang=' + $stateParams.language, response);\n cache.put('cachedFilterDate', (0, _moment2.default)());\n }\n\n return Filter.create(response);\n });\n }\n }\n\n function getSearchResults(searchValue) {\n var searchRequest = ProductSearchRequest.createForSearch({ skip: 0, take: 3, sortAsc: true, filter: '' }, searchValue);\n return this.getByCriteria(searchRequest).then(function (resources) {\n var mappedItems = _lodash2.default.map(resources.products, function (p) {\n return {\n id: p.id,\n name: p.displayName,\n image: p.image,\n discountId: p.discountId\n };\n });\n\n return {\n totalItems: resources.totalItems,\n products: mappedItems\n };\n });\n }\n\n /* Products search home and fast order*/\n function searchProducts(searchString, take) {\n return api.searchProduct.execute({ search: searchString, take: take }).$promise.then(function (resource) {\n return _lodash2.default.map(resource, function (o) {\n return Product.getClass().create(o);\n });\n });\n }\n\n /* Product list upload fast order page */\n function uploadProductList(file) {\n return Upload.upload({\n url: config.webApiBaseUrl + 'shoppingcart/UploadProductList',\n data: { file: file }\n }).then(function (result) {\n return _lodash2.default.map(result.data, function (o) {\n return FastOrderProduct.create(o);\n });\n });\n }\n\n function calculateGrossProfits(products) {\n products.forEach(function (product) {\n product.grossProfit = calculateGrossProfit(product);\n });\n }\n\n function calculateGrossProfit(product) {\n var publicPrice = product.netPublicPrice || 0;\n var pharmacyPrice = product.discountPct ? (product.price !== 0 ? product.price : 0) * ((100 - product.discountPct) / 100) : product.price;\n return (publicPrice === 0 ? 0 : (publicPrice - pharmacyPrice) / publicPrice * 100).toFixed(0);\n }\n\n function calculateGrossProfitWithoutDiscount(product) {\n var publicPrice = product.netPublicPrice || 0;\n var pharmacyPrice = product.price || 0;\n return (publicPrice === 0 ? 0 : (publicPrice - pharmacyPrice) / publicPrice * 100).toFixed(0);\n }\n function calculateGrossProfitAmounts(products) {\n products.forEach(function (product) {\n product.grossProfitAmount = calculateGrossProfitAmount(product);\n });\n }\n\n function calculateGrossProfitAmountWithoutDiscount(product) {\n var publicPrice = product.netPublicPrice || 0;\n var pharmacyPrice = product.price || 0;\n var grossProfitAmount = (publicPrice === 0 ? 0 : publicPrice - pharmacyPrice) * product.quantity;\n return grossProfitAmount;\n }\n function calculateGrossProfitAmount(product) {\n return product.discountPct > 0 ? calculateGrossProfitAmountWithDiscount(product) : calculateGrossProfitAmountWithoutDiscount(product);\n }\n function calculateGrossProfitAmountWithDiscount(product) {\n var publicPrice = product.netPublicPrice || 0;\n var pharmacyPrice = product.discountPct ? (product.price !== 0 ? product.price : 0) * ((100 - product.discountPct) / 100) : product.price;\n var grossProfitAmount = (publicPrice === 0 ? 0 : publicPrice - pharmacyPrice) * product.quantity;\n return grossProfitAmount;\n }\n\n function formatProductDiscount(discount) {\n\n //if there are no product discounts return the totalPriceDiscounts, else this won't be shown\n if (discount.allProductDiscounts.length === 0) {\n return [discount.totalPriceDiscounts];\n }\n\n var groupedProductDiscounts = _lodash2.default.groupBy(discount.allProductDiscounts, 'sellerBaseCodeId');\n\n /* add totalprice discount to the correct group or create a new group when none is found */\n discount.totalPriceDiscounts.forEach(function (totalPriceDiscount) {\n if (groupedProductDiscounts[totalPriceDiscount.sellerCodeId]) {\n groupedProductDiscounts[totalPriceDiscount.sellerCodeId].push(totalPriceDiscount);\n } else {\n groupedProductDiscounts[totalPriceDiscount.sellerCodeId] = [];\n groupedProductDiscounts[totalPriceDiscount.sellerCodeId].push(totalPriceDiscount);\n }\n });\n\n return _lodash2.default.values(groupedProductDiscounts);\n }\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/services/productService.js\n// module id = 824\n// module chunks = 0","'use strict';\n\nqueryStringHelper.$inject = [\"common\", \"Enums\"];\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.queryStringHelper = queryStringHelper;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*@ngInject*/\nfunction queryStringHelper(common, Enums) {\n return {\n getFilterParam: getFilterParam,\n getCategoryFilters: getCategoryFilters,\n getSellerIds: getSellerIds,\n getDiscountsOnly: getDiscountsOnly,\n getSelectedIdsFromQueryString: getSelectedIdsFromQueryString,\n getDiscountTypes: getDiscountTypes\n };\n\n // formats the selected filters into a query string parameter\n function getFilterParam(filterCategories, categoryId, selectedId) {\n var param = '';\n angular.forEach(filterCategories, function (filterCategory) {\n\n // for non-hierarchical lists: add all selected id's\n // for hierarchical lists: add only 1 id (the one at the lowest level)\n // for hierarchical lists: the parent id might be set, this is passed in the selectedId argument\n if (filterCategory.id) if (categoryId && filterCategory.id === categoryId) {\n // set the query string param from the arguments, not from the selected items in filterCategory\n if (selectedId <= 0) {\n // don't add the category to the query string param\n } else {\n if (param.length > 0) {\n param += '__';\n }\n\n param += categoryId;\n param += '_' + selectedId;\n }\n } else {\n var hasAnySelectedItem = null;\n\n if (filterCategory.isHierarchical) {\n hasAnySelectedItem = _lodash2.default.some(filterCategory.items, { isSelected: true });\n angular.forEach(filterCategory.items, function (item) {\n if (!hasAnySelectedItem) {\n hasAnySelectedItem = _lodash2.default.some(item.children, { isSelected: true });\n angular.forEach(item.children, function (item) {\n if (!hasAnySelectedItem) {\n hasAnySelectedItem = _lodash2.default.some(item.children, { isSelected: true });\n }\n });\n }\n });\n } else {\n hasAnySelectedItem = _lodash2.default.some(filterCategory.items, { isSelected: true });\n }\n\n if (hasAnySelectedItem) {\n if (param.length > 0) {\n param += '__';\n }\n param += filterCategory.id;\n\n // if the category is hierarchical add the selected child id's\n if (filterCategory.isHierarchical) {\n angular.forEach(filterCategory.items, function (item) {\n var hasChildrenSelected = false;\n // set childcategories in the params\n angular.forEach(item.children, function (child) {\n if (child.isSelected) {\n param += '_' + child.id;\n hasChildrenSelected = true;\n }\n angular.forEach(child.children, function (child) {\n if (child.isSelected) {\n param += '_' + child.id;\n hasChildrenSelected = true;\n }\n });\n });\n\n // set the parentcategories in the params\n if (item.isSelected && !hasChildrenSelected) {\n param += '_' + item.id;\n }\n if (item.isSelected && filterCategory.isSellerCategory && !hasChildrenSelected) {\n param += '_s';\n }\n });\n } else {\n angular.forEach(filterCategory.items, function (item) {\n if (item.isSelected) {\n param += '_' + item.id;\n if (filterCategory.isSellerCategory) {\n param += '_s';\n }\n }\n });\n }\n }\n\n //if the category has children\n // filterCategory.items.forEach((categoryFilter) => {\n // categoryFilter.children.forEach((child) => {\n\n // });\n // });\n }\n });\n\n return param;\n }\n\n // parse the query string parameter into an array of category filters, \n // which can be passed to the product search API call\n function getCategoryFilters(queryStringParam) {\n //TODO: validate\n var categoryFilters = [];\n\n if (!queryStringParam) {\n return categoryFilters;\n }\n\n var categories = queryStringParam.split('__');\n\n angular.forEach(categories, function (categoryString) {\n var values = categoryString.split('_');\n var categoryType = values[0];\n // var isCategoryType = GetIsCategoryType(categoryType);\n // var isSellerCategoryType = GetIsSellerCategoryType(categoryType);\n // isSellerCategoryType\n // if(values[2] && values[2]=== 's'){\n // isCategoryType = true;\n // values.pop();\n // }\n // if (!isCategoryType) {\n // return categoryFilters;\n // }\n var categoryIsSeller = CategoryIsSeller(categoryType);\n\n if (categoryIsSeller) {\n return categoryFilters;\n }\n\n var categoryIds = [];\n for (var i = 1; i <= values.length - 1; i++) {\n if (values[i] !== 's') {\n var id = parseInt(values[i]);\n categoryIds.push(id);\n }\n }\n\n var categoryFilter = { CategoryType: categoryType, CategoryIds: categoryIds };\n categoryFilters.push(categoryFilter);\n });\n\n return categoryFilters;\n }\n\n function getDiscountTypes(queryStringParam) {\n var discountTypeIds = [];\n\n if (!queryStringParam) {\n return discountTypeIds;\n }\n\n var categories = queryStringParam.split('__');\n\n angular.forEach(categories, function (categoryString) {\n var values = categoryString.split('_');\n var categoryType = values[0];\n\n if (categoryType === '101') {\n for (var i = 1; i < values.length; i++) {\n var id = parseInt(values[i]);\n discountTypeIds.push(id);\n }\n }\n });\n\n return discountTypeIds;\n }\n\n function getSellerIds(queryStringParam) {\n var sellerIds = [];\n\n if (!queryStringParam) {\n return sellerIds;\n }\n\n var categories = queryStringParam.split('__');\n\n angular.forEach(categories, function (categoryString) {\n var values = categoryString.split('_');\n\n var category = values[0];\n //if (category === 'sellers') {\n if (category === String(Enums.otherCategoryType.seller.id)) {\n for (var i = 1; i <= values.length - 1; i++) {\n var id = parseInt(values[i]);\n sellerIds.push(id);\n }\n }\n });\n\n return sellerIds;\n }\n\n function getDiscountsOnly(queryStringParam) {\n // when filter starts with '102_1' or contains '__102_1', then checkbox only discounts is selected\n var searchValue1 = String(Enums.otherCategoryType.discountsOnly.id) + '_1';\n var searchValue2 = '__' + Enums.otherCategoryType.discountsOnly.id + '_1';\n return queryStringParam && (queryStringParam.indexOf(searchValue1) === 0 || queryStringParam.indexOf(searchValue2) >= 0) ? true : false;\n }\n\n function getSelectedIdsFromQueryString(queryStringParam, categoryId) {\n if (!queryStringParam) {\n return null;\n }\n\n var categories = queryStringParam.split('__');\n\n for (var i = 0; i < categories.length; i++) {\n var categoryString = categories[i];\n var values = categoryString.split('_');\n var categoryType = values[0];\n\n if (String(categoryType) === String(categoryId)) {\n var selectedIds = [];\n for (var _i = 1; _i <= values.length - 1; _i++) {\n var id = parseInt(values[_i]);\n if (typeof id === 'number' && !isNaN(id)) {\n selectedIds.push(id);\n }\n }\n\n return selectedIds;\n }\n }\n\n return null;\n }\n\n // function getSelectedIdOnLowestLevel(items) {\n // var selectedId = 0;\n\n // for (let i=0; i= (0, _moment2.default)().format('YYYY-MM-DD') && (0, _moment2.default)(fluVaccinesEndDate).format('YYYY-MM-DD') <= (0, _moment2.default)().format('YYYY-MM-DD');\n\n // let vaccin = vaccins.find((vaccin) => {\n // return vaccin.amount > 0;\n // });\n // return vaccin === undefined ? false : true;\n }\n\n function allReservationsMade(vaccins) {\n return vaccins.every(amountNotZero);\n }\n\n function amountNotZero(vaccin) {\n return vaccin.amount !== 0;\n }\n\n function canOrderVaccin() {\n return (0, _moment2.default)(fluVaccinesStartDate).format('YYYY-MM-DD') >= (0, _moment2.default)().format('YYYY-MM-DD') && (0, _moment2.default)(fluVaccinesEndDate).format('YYYY-MM-DD') <= (0, _moment2.default)().format('YYYY-MM-DD'); // return vaccin.amount === 0;\n }\n\n function setVaccinReservation(vaccines) {\n var vaccinesPost = [];\n vaccines.forEach(function (vaccine) {\n vaccinesPost.push({\n productNumber: vaccine.productNumber,\n amount: vaccine.amount\n });\n });\n\n return api.setReservationAmounts.set({\n reservations: vaccinesPost\n }).$promise.then(function (resources) {\n return resources;\n });\n }\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./common/services/vaccinesService.js\n// module id = 834\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.contractDetailInfoComponent = undefined;\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _marked = require('marked');\n\nvar _marked2 = _interopRequireDefault(_marked);\n\nvar _markedRenderer = require('./../../../common/core/markedRenderer');\n\nvar _markedRenderer2 = _interopRequireDefault(_markedRenderer);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_marked2.default.setOptions({\n renderer: _markedRenderer2.default,\n breaks: false,\n sanitize: true\n});\n\nvar contractDetailInfoComponent = exports.contractDetailInfoComponent = {\n template: require('./contract-detail-info.html'),\n bindings: {\n contract: '<'\n },\n controllerAs: 'vm',\n controller: [\"common\", \"config\", \"authService\", \"$stateParams\", function contractDetailInfoController(common, config, authService, $stateParams) {\n 'ngInject';\n\n var vm = this;\n vm.$onInit = init;\n vm.$stateParams = $stateParams;\n vm.getDownloadUrl = getDownloadUrlContractProductsDetail;\n vm.startDateIsValid = startDateIsValid;\n vm.getDownloadUrlContractDetail = getDownloadUrlContractDetail;\n vm.from = (0, _moment2.default)(vm.contract.startDate).toISOString();\n if (vm.contract.portalContractTypeCode === 'FEB') {\n vm.minFrom = (0, _moment2.default)(vm.contract.startDate).toISOString();\n }\n vm.to = (0, _moment2.default)(vm.contract.endDate).toISOString();\n vm.checkYearsApart = checkYearsApart;\n\n function init() {\n common.navigationMenu.clearActiveMenu();\n vm.contract.description = (0, _marked2.default)(vm.contract.description || '');\n }\n\n function getDownloadUrlContractProductsDetail() {\n\n if (vm.contract.agiosNr === 'F001' || vm.contract.agiosNr === 'A005') {\n if (!vm.startDateIsValid()) return null;\n return config.webApiBaseUrl + ('report/febelCareProductsDetail/' + vm.contract.id + '?from=' + (0, _moment2.default)(vm.from).toISOString() + '&to=' + (0, _moment2.default)(vm.to).toISOString() + '&lang=' + vm.$stateParams.language + '&access_token=' + authService.accessToken);\n } else {\n return config.webApiBaseUrl + ('report/agiosProductsDetail/' + vm.contract.id + '?from=' + (0, _moment2.default)(vm.from).toISOString() + '&to=' + (0, _moment2.default)(vm.to).toISOString() + '&lang=' + vm.$stateParams.language + '&access_token=' + authService.accessToken);\n }\n }\n\n function startDateIsValid() {\n return !!vm.from;\n }\n\n function getDownloadUrlContractDetail() {\n return config.webApiBaseUrl + ('report/agiosContractDetail/' + vm.contract.id + '?lang=' + vm.$stateParams.language + '&access_token=' + authService.accessToken);\n }\n\n function checkYearsApart() {\n return (0, _moment2.default)(vm.contract.endDate).format('YYYY') - (0, _moment2.default)(vm.contract.startDate).format('YYYY') > 10 ? true : false;\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/components/contract-detail-info.js\n// module id = 835\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar contractProductsComponent = exports.contractProductsComponent = {\n template: require('./contract-products.html'),\n bindings: {\n contract: '<'\n },\n controllerAs: 'vm',\n controller: [\"$filter\", function contractProductsController($filter) {\n 'ngInject';\n\n var vm = this;\n vm.$onInit = init;\n vm.goToPage = goToPage;\n vm.onProductSearch = onProductSearch;\n vm.onOrderProducts = onOrderProducts;\n vm.pagedContractProducts = [];\n vm.filteredProducts = [];\n\n function init() {\n vm.pagedContractProducts = vm.contract.getPagedProducts(1, vm.contract.products);\n }\n\n function onProductSearch() {\n vm.filteredProducts = $filter('filter')(vm.contract.products, function (product) {\n return product.name.toLowerCase().includes(vm.searchValue.toLowerCase()) || product.sellerArticleNumber.toLowerCase().includes(vm.searchValue.toLowerCase());\n });\n vm.pagedContractProducts = vm.contract.getPagedProducts(1, vm.filteredProducts);\n vm.contract.paging.page = 1;\n vm.contract.paging.totalItems = vm.filteredProducts.length;\n vm.contract.paging.update(1);\n }\n\n function goToPage(page) {\n if (page === 0 || page > vm.contract.paging.pageCount) {\n return;\n }\n vm.pagedContractProducts = vm.contract.getPagedProducts(page, vm.contract.products);\n vm.contract.paging.page = page;\n vm.contract.paging.update(page);\n }\n\n function onOrderProducts(orderValue) {\n vm.contract.products = $filter('orderBy')(vm.contract.products, orderValue);\n vm.pagedContractProducts = vm.contract.getPagedProducts(1, vm.contract.products);\n vm.contract.paging.page = 1;\n vm.contract.paging.update(1);\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/components/contract-products.js\n// module id = 836\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.contractsOverviewInfoComponent = undefined;\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar contractsOverviewInfoComponent = exports.contractsOverviewInfoComponent = {\n template: require('./contracts-overview-info.html'),\n bindings: {\n contracts: '<',\n context: '@?'\n },\n controllerAs: 'vm',\n controller: [\"common\", function contractsOverviewController(common) {\n 'ngInject';\n\n var vm = this;\n vm.$onInit = init;\n vm.sortBy = sortBy;\n vm.reverse = false;\n vm.propertyName = 'name';\n vm.checkYearsApart = checkYearsApart;\n\n function init() {\n common.navigationMenu.clearActiveMenu();\n }\n\n function sortBy(propertyName) {\n vm.reverse = vm.propertyName === propertyName ? !vm.reverse : false;\n vm.propertyName = propertyName;\n }\n\n function checkYearsApart(contract) {\n return (0, _moment2.default)(contract.endDate).format('YYYY') - (0, _moment2.default)(contract.startDate).format('YYYY') > 10 ? true : false;\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/components/contracts-overview-info.js\n// module id = 837\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar orderDetailDeliveriesComponent = exports.orderDetailDeliveriesComponent = {\n template: require('./order-detail-deliveries.html'),\n bindings: {\n order: '<'\n },\n controllerAs: 'vm',\n controller: [\"common\", \"Enums\", \"gettextCatalog\", function orderDetailDeliveriesController(common, Enums, gettextCatalog) {\n 'ngInject';\n\n var vm = this;\n vm.$onInit = init;\n vm.orderStatusTexts = {};\n vm.getOrderStatusText = getOrderStatusText;\n vm.getDeliveryStatusText = getDeliveryStatusText;\n\n function init() {\n vm.orderStatusTexts = Enums.orderStatusTexts;\n vm.deliveryStatusTexts = Enums.deliveryStatusTexts;\n }\n\n function getOrderStatusText(code) {\n return code ? gettextCatalog.getString(vm.orderStatusTexts[code].text) : '';\n }\n\n function getDeliveryStatusText(code) {\n if (!code) {\n return '';\n }\n return code ? gettextCatalog.getString(vm.deliveryStatusTexts[code].text) : '';\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/components/order-detail-deliveries.js\n// module id = 838\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar orderDetailDeliveryHistoryComponent = exports.orderDetailDeliveryHistoryComponent = {\n template: require('./order-detail-delivery-history.html'),\n bindings: {\n history: '<'\n },\n controllerAs: 'vm'\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/components/order-detail-delivery-history.js\n// module id = 839\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar orderDetailDeliveryProductsComponent = exports.orderDetailDeliveryProductsComponent = {\n template: require('./order-detail-delivery-products.html'),\n bindings: {\n products: '<'\n },\n controllerAs: 'vm'\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/components/order-detail-delivery-products.js\n// module id = 840\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar orderDetailExtraInfoComponent = exports.orderDetailExtraInfoComponent = {\n template: require('./order-detail-extra-info.html'),\n bindings: {\n order: '<'\n },\n controllerAs: 'vm'\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/components/order-detail-extra-info.js\n// module id = 841\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.orderDetailHeaderComponent = undefined;\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar orderDetailHeaderComponent = exports.orderDetailHeaderComponent = {\n template: require('./order-detail-header.html'),\n bindings: {\n order: '<',\n setOrderDeliveryDate: '&',\n updatingOrderDate: '<',\n updateOrderDeliverDateErrors: '<'\n },\n controllerAs: 'vm',\n controller: [\"config\", \"authService\", \"$stateParams\", \"$state\", \"cartService\", \"gettextCatalog\", \"toastr\", function orderOverviewController(config, authService, $stateParams, $state, cartService, gettextCatalog, toastr) {\n 'ngInject';\n\n var vm = this;\n vm.getDownloadUrl = getDownloadUrl;\n vm.onSetOrderDelivery = onSetOrderDelivery;\n vm.showRequestOrderDate = showRequestOrderDate;\n vm.orderProductsAgain = orderProductsAgain;\n vm.buttonDisabled = buttonDisabled;\n vm.maxDate = (0, _moment2.default)(vm.order.deliveryDate).format('DD/MM/YYYY');\n vm.minDate = (0, _moment2.default)().add(1, 'days').format('DD/MM/YYYY');\n vm.newOrderDate = vm.order.deliveryDate;\n vm.isAddingToCart = false;\n\n vm.forms = [];\n\n function getDownloadUrl(order) {\n return config.webApiBaseUrl + ('report/orderDetail/' + order.id + '?lang=' + $stateParams.language + '&access_token=' + authService.accessToken);\n }\n\n function onSetOrderDelivery(newDeliveryDate) {\n vm.setOrderDeliveryDate({ $event: newDeliveryDate });\n }\n\n function showRequestOrderDate() {\n return vm.order.orderStatusCode === 'CREATED' && (0, _moment2.default)(vm.order.deliveryDate).isAfter((0, _moment2.default)().add(1, 'days')) || (0, _moment2.default)(vm.order.deliveryDate).isSame((0, _moment2.default)().add(1, 'days')) && vm.order.deliveryDate;\n }\n\n function buttonDisabled() {\n return vm.forms.requestOrderDate.$error.maxDate || vm.forms.requestOrderDate.$error.minDate || !vm.newOrderDate || (0, _moment2.default)(vm.order.deliveryDate).format('DD/MM/YYYY') === (0, _moment2.default)(vm.newOrderDate).format('DD/MM/YYYY');\n }\n\n function orderProductsAgain() {\n vm.isAddingToCart = true;\n cartService.reOrderProducts(vm.order.id).then(function () {\n vm.isAddingToCart = false;\n\n toastr.success(gettextCatalog.getString('Added products to your shoppingcart'), '', {\n progressBar: true,\n timeOut: 5000,\n extendedTimeOut: 1000,\n closeButton: true\n });\n\n $state.go('cart');\n }).catch(function () {\n\n toastr.error(gettextCatalog.getString('An error occured when adding products to your shoppingcart, please try again'), '', {\n progressBar: true,\n timeOut: 5000,\n extendedTimeOut: 1000,\n closeButton: true\n });\n\n vm.isAddingToCart = false;\n vm.errors.shoppingCartAdd = true;\n });\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/components/order-detail-header.js\n// module id = 842\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar orderDetailProductsComponent = exports.orderDetailProductsComponent = {\n template: require('./order-detail-products.html'),\n bindings: {\n order: '<'\n },\n controllerAs: 'vm',\n controller: function controller() {\n 'ngInject';\n\n var vm = this;\n vm.getDiscountPrice = getDiscountPrice;\n\n /* Get the discount price */\n function getDiscountPrice(unitPrice, discountPercentage) {\n return unitPrice - unitPrice * discountPercentage / 100;\n }\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/components/order-detail-products.js\n// module id = 843\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar orderOverviewSearchComponent = exports.orderOverviewSearchComponent = {\n template: require('./order-overview-search.html'),\n bindings: {\n searchValue: '=',\n search: '&',\n sellers: '<'\n },\n controllerAs: 'vm',\n controller: function contractsOverviewController() {\n 'ngInject';\n\n var vm = this;\n vm.onSearch = onSearch;\n vm.$onInit = init;\n\n function init() {\n vm.selectedSeller = vm.sellers[0];\n }\n\n function onSearch() {\n var data = {\n searchValue: vm.searchValue,\n selectedSeller: vm.selectedSeller\n };\n vm.search({ $event: data });\n }\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/components/order-overview-search.js\n// module id = 844\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar contractDetailComponent = exports.contractDetailComponent = {\n template: require('./contract-detail.html'),\n bindings: {\n contract: '<'\n },\n controllerAs: 'vm',\n controller: [\"common\", \"gettextCatalog\", \"Analytics\", function contractDetailController(common, gettextCatalog, Analytics) {\n 'ngInject';\n\n var vm = this;\n vm.$onInit = init;\n\n function init() {\n common.navigationMenu.clearActiveMenu();\n common.setTitle(gettextCatalog.getString(vm.contract.name));\n Analytics.trackPage('/' + common.localization.getCurrentLanguage() + '/account/contracts/' + vm.contract.id, vm.contract.name);\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/contract-detail.js\n// module id = 845\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar contractsOverviewComponent = exports.contractsOverviewComponent = {\n template: require('./contracts-overview.html'),\n bindings: {\n contracts: '<'\n },\n controllerAs: 'vm',\n controller: [\"common\", \"gettextCatalog\", \"Analytics\", function contractsOverviewController(common, gettextCatalog, Analytics) {\n 'ngInject';\n\n var vm = this;\n vm.$onInit = init;\n\n function init() {\n common.setTitle(gettextCatalog.getString('My contracts'));\n Analytics.trackPage('/' + common.localization.getCurrentLanguage() + '/account/contracts', gettextCatalog.getString('My contracts'));\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/contracts-overview.js\n// module id = 846\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _angular = require('angular');\n\nvar _angular2 = _interopRequireDefault(_angular);\n\nvar _settings = require('./settings');\n\nvar _orderDetail = require('./order-detail');\n\nvar _orderOverview = require('./order-overview');\n\nvar _contractsOverview = require('./contracts-overview');\n\nvar _orderDetailHeader = require('./components/order-detail-header');\n\nvar _orderDetailProducts = require('./components/order-detail-products');\n\nvar _orderDetailDeliveries = require('./components/order-detail-deliveries');\n\nvar _orderDetailDeliveryHistory = require('./components/order-detail-delivery-history');\n\nvar _orderDetailDeliveryProducts = require('./components/order-detail-delivery-products');\n\nvar _orderDetailExtraInfo = require('./components/order-detail-extra-info');\n\nvar _orderOverviewSearch = require('./components/order-overview-search');\n\nvar _contractDetail = require('./contract-detail');\n\nvar _contractDetailInfo = require('./components/contract-detail-info');\n\nvar _contractsOverviewInfo = require('./components/contracts-overview-info');\n\nvar _contractProducts = require('./components/contract-products');\n\nvar _myDocuments = require('./my-documents');\n\nvar _myReservations = require('./my-reservations');\n\nvar _rentalOverview = require('./rental-overview');\n\nvar _rentalRequestArchive = require('./rental-request-archive');\n\nvar _rentedProductArchive = require('./rented-product-archive');\n\nvar _rentedProductDetail = require('./rented-product-detail');\n\nvar _podOrderAdd = require('./my-packages/pod-order-add');\n\nvar _podOrderAddConfirmation = require('./my-packages/pod-order-add-confirmation');\n\nvar _podOrderArchive = require('./my-packages/pod-order-archive');\n\nvar _podOrderDetail = require('./my-packages/pod-order-detail');\n\nvar _podOrderOverview = require('./my-packages/pod-order-overview');\n\nvar _addStep1SelectReceiverForm = require('./my-packages/components/add-step1-select-receiver-form');\n\nvar _addStep1SelectReceiverRead = require('./my-packages/components/add-step1-select-receiver-read');\n\nvar _addStep2DetailsForm = require('./my-packages/components/add-step2-details-form');\n\nvar _addStep2DetailsRead = require('./my-packages/components/add-step2-details-read');\n\nvar _addStep3ConfirmForm = require('./my-packages/components/add-step3-confirm-form');\n\nvar _howDoesItWorkBox = require('./my-packages/components/how-does-it-work-box');\n\nvar _orderReceiverDetail = require('./my-packages/components/order-receiver-detail');\n\nvar _orderDetailContent = require('./my-packages/components/order-detail-content');\n\nvar _orderSearchResultItem = require('./my-packages/components/order-search-result-item');\n\nvar _orderState = require('./my-packages/components/order-state');\n\nvar _orderLineState = require('./my-packages/components/order-line-state');\n\nvar _orderLineDetail = require('./my-packages/components/order-line-detail');\n\nvar _orderLineStateHistory = require('./my-packages/components/order-line-state-history');\n\nvar _parcelsOverview = require('./parcels/parcels-overview');\n\nvar _parcelAdd = require('./parcels/parcel-add');\n\nvar _parcelAddConfirmation = require('./parcels/parcel-add-confirmation');\n\nvar _parcelArchive = require('./parcels/parcel-archive');\n\nvar _parcelDetail = require('./parcels/parcel-detail');\n\nvar _parcelHowDoesItWorkBox = require('./parcels/components/parcel-how-does-it-work-box');\n\nvar _parcelAddStep1SelectReceiverForm = require('./parcels/components/parcel-add-step1-select-receiver-form');\n\nvar _parcelAddStep1SelectReceiverRead = require('./parcels/components/parcel-add-step1-select-receiver-read');\n\nvar _parcelAddStep2DetailsForm = require('./parcels/components/parcel-add-step2-details-form');\n\nvar _parcelAddStep2DetailsRead = require('./parcels/components/parcel-add-step2-details-read');\n\nvar _parcelAddStep3ConfirmForm = require('./parcels/components/parcel-add-step3-confirm-form');\n\nvar _parcelSearchResultItem = require('./parcels/components/parcel-search-result-item');\n\nvar _parcelReceiverDetail = require('./parcels/components/parcel-receiver-detail');\n\nvar _parcelLineState = require('./parcels/components/parcel-line-state');\n\nvar _parcelState = require('./parcels/components/parcel-state');\n\nvar _parcelDetailContent = require('./parcels/components/parcel-detail-content');\n\nvar _parcelLineDetail = require('./parcels/components/parcel-line-detail');\n\nvar _parcelLineStateHistory = require('./parcels/components/parcel-line-state-history');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _module = _angular2.default.module('app.account', []).config([\"$stateProvider\", function ($stateProvider) {\n 'ngInject';\n\n $stateProvider.state('account', {\n parent: 'general',\n url: '/account',\n ncyBreadcrumb: {\n label: '{{\"My account\" | translate}}'\n },\n redirectTo: 'account-detail'\n }).state('account-detail', {\n parent: 'general',\n url: '/account',\n views: {\n 'main@root': {\n component: 'accountSettings'\n }\n },\n resolve: {\n user: [\"userService\", function user(userService) {\n return userService.getMyAccount();\n }]\n },\n params: {\n loadingOverlay: true\n },\n ncyBreadcrumb: {\n label: '{{\"My account\" | translate}}'\n }\n }).state('rental-overview', {\n parent: 'account',\n url: '/rentals?page',\n views: {\n 'main@root': {\n component: 'rentalOverview'\n }\n },\n params: {\n loadingOverlay: true\n },\n resolve: {\n tgzId: [\"sellerService\", function tgzId(sellerService) {\n return sellerService.getAllForMenu().then(function (results) {\n return results.find(function (s) {\n return s.code === 'TGZ';\n }).id;\n });\n }],\n statuses: [\"rentalProductsService\", function statuses(rentalProductsService) {\n return rentalProductsService.getHistoryStatuses();\n }]\n },\n ncyBreadcrumb: {\n label: '{{\"My rent overview\" | translate}}'\n },\n data: {\n febelcoCustomer: true\n }\n }).state('rented-product-detail', {\n parent: 'rented-product-archive',\n url: '/{id:int}',\n views: {\n 'main@root': {\n component: 'rentedProductDetail'\n }\n },\n resolve: {\n tgzId: [\"sellerService\", function tgzId(sellerService) {\n return sellerService.getAllForMenu().then(function (results) {\n return results.find(function (s) {\n return s.code === 'TGZ';\n }).id;\n });\n }],\n rentalHistory: [\"$stateParams\", \"rentalProductsService\", function rentalHistory($stateParams, rentalProductsService) {\n return rentalProductsService.getHistoryById($stateParams.id);\n }]\n },\n params: {\n loadingOverlay: true\n },\n ncyBreadcrumb: {\n label: '{{\"Rented product detail\" | translate}}'\n },\n data: {\n febelcoCustomer: true\n }\n }).state('rented-product-archive', {\n parent: 'rental-overview',\n url: '/rented-product-archive?page&pageSize&statusId&product&year&remark&depositRefunded',\n views: {\n 'main@root': {\n component: 'rentedProductArchive'\n }\n },\n resolve: {\n tgzId: [\"sellerService\", function tgzId(sellerService) {\n return sellerService.getAllForMenu().then(function (results) {\n return results.find(function (s) {\n return s.code === 'TGZ';\n }).id;\n });\n }],\n statuses: [\"rentalProductsService\", function statuses(rentalProductsService) {\n return rentalProductsService.getHistoryStatuses();\n }]\n },\n reloadOnSearch: false,\n params: {\n loadingOverlay: false,\n page: {\n value: '1',\n squash: true\n },\n pageSize: {\n value: window.localStorage.getItem('pageSize'),\n squash: true\n },\n statusId: {\n value: null,\n squash: true\n },\n product: {\n value: '',\n squash: true\n },\n year: {\n value: null,\n squash: true\n },\n remark: {\n value: '',\n squash: true\n },\n depositRefunded: {\n value: null,\n squash: true\n }\n },\n ncyBreadcrumb: {\n label: '{{\"All my rented products\" | translate}}'\n },\n data: {\n febelcoCustomer: true\n }\n }).state('rental-request-archive', {\n parent: 'rental-overview',\n url: '/request-archive?page&pageSize&product&year',\n views: {\n 'main@root': {\n component: 'rentalRequestArchive'\n }\n },\n reloadOnSearch: false,\n params: {\n loadingOverlay: false,\n page: {\n value: '1',\n squash: true\n },\n pageSize: {\n value: window.localStorage.getItem('pageSize'),\n squash: true\n },\n product: {\n value: '',\n squash: true\n },\n year: {\n value: null,\n squash: true\n }\n },\n resolve: {\n tgzId: [\"sellerService\", function tgzId(sellerService) {\n return sellerService.getAllForMenu().then(function (results) {\n return results.find(function (s) {\n return s.code === 'TGZ';\n }).id;\n });\n }]\n },\n ncyBreadcrumb: {\n label: '{{\"All my rental requests\" | translate}}'\n },\n data: {\n febelcoCustomer: true\n }\n }).state('order-overview', {\n parent: 'account',\n url: '/orders?page',\n views: {\n 'main@root': {\n component: 'orderOverview'\n }\n },\n resolve: {\n input: [\"orderService\", \"Enums\", function input(orderService, Enums) {\n return orderService.getByCriteria('', 1, Enums.getAmounts.default, 'OrderDate', false, 0);\n }],\n sellers: [\"sellerService\", \"gettextCatalog\", function sellers(sellerService, gettextCatalog) {\n return sellerService.getAll().then(function (sellers) {\n var newSellers = _angular2.default.copy(sellers);\n\n // add all sellers option\n newSellers.unshift({\n id: 0,\n name: gettextCatalog.getString('All sellers')\n });\n return newSellers;\n });\n }]\n },\n params: {\n loadingOverlay: true\n },\n reloadOnSearch: false,\n ncyBreadcrumb: {\n label: '{{\"My orders\" | translate}}'\n }\n }).state('order', {\n parent: 'order-overview',\n url: '/{id:int}',\n views: {\n 'main@root': {\n component: 'orderDetail'\n }\n },\n resolve: {\n order: [\"$stateParams\", \"orderService\", function order($stateParams, orderService) {\n return orderService.getById($stateParams.id);\n }]\n },\n params: {\n loadingOverlay: true\n },\n ncyBreadcrumb: {\n label: '{{\"Order - noun\" | translate}} {{$resolve.order.referenceNumber}}'\n }\n }).state('contracts-overview', {\n parent: 'account',\n url: '/contracts',\n views: {\n 'main@root': {\n component: 'contractsOverview'\n }\n },\n resolve: {\n contracts: [\"$stateParams\", \"contractService\", function contracts($stateParams, contractService) {\n return contractService.get();\n }]\n },\n params: {\n loadingOverlay: true\n },\n ncyBreadcrumb: {\n label: '{{\"My contracts\" | translate}}'\n },\n data: {\n febelcoCustomer: true\n }\n }).state('contract-detail', {\n parent: 'contracts-overview',\n url: '/{id:int}',\n views: {\n 'main@root': {\n component: 'contractDetail'\n }\n },\n resolve: {\n contract: [\"$stateParams\", \"contractService\", function contract($stateParams, contractService) {\n return contractService.getById($stateParams.id);\n }]\n },\n params: {\n loadingOverlay: true\n },\n ncyBreadcrumb: {\n label: '{{$resolve.contract.name}}'\n },\n data: {\n febelcoCustomer: true\n }\n }).state('my-documents', {\n parent: 'account',\n url: '/myDocuments',\n views: {\n 'main@root': {\n component: 'myDocuments'\n }\n },\n params: {},\n ncyBreadcrumb: {\n label: '{{\"_myDocuments.myDocuments\" | translate}}'\n },\n data: {\n febelcoCustomer: true\n }\n }).state('my-reservations', {\n parent: 'account',\n url: '/myReservations',\n views: {\n 'main@root': {\n component: 'myReservations'\n }\n },\n ncyBreadcrumb: {\n label: '{{\"My reservations\" | translate}}'\n },\n data: {\n febelcoCustomer: true\n }\n }).state('my-packages', {\n parent: 'account',\n url: '/my-packages',\n views: {\n 'main@root': {\n component: 'podOrderOverview'\n }\n },\n resolve: {\n recentOrders: [\"packagesService\", function recentOrders(packagesService) {\n return packagesService.getRecentOrders();\n }]\n },\n params: {\n loadingOverlay: true\n },\n ncyBreadcrumb: {\n label: 'Mijn verzendingen'\n },\n data: {\n febelcoCustomer: true\n }\n }).state('package-archive', {\n parent: 'my-packages',\n url: '/package-archive',\n views: {\n 'main@root': {\n component: 'podOrderArchive'\n }\n },\n resolve: {\n orders: [\"packagesService\", function orders(packagesService) {\n return packagesService.getOrders();\n }]\n },\n params: {\n loadingOverlay: true\n },\n ncyBreadcrumb: {\n label: 'Al mijn verzendingen'\n },\n data: {\n febelcoCustomer: true\n }\n }).state('package-detail', {\n parent: 'my-packages',\n url: '/{id:int}',\n views: {\n 'main@root': {\n component: 'podOrderDetail'\n }\n },\n resolve: {\n order: [\"$stateParams\", \"packagesService\", function order($stateParams, packagesService) {\n return packagesService.getById($stateParams.id);\n }]\n },\n params: {\n loadingOverlay: true\n },\n ncyBreadcrumb: {\n label: 'Verzending {{$resolve.order.orderNumber}}'\n // label: '{{$resolve.contract.name}}'\n },\n data: {\n febelcoCustomer: true\n }\n }).state('add-package', {\n parent: 'my-packages',\n url: '/add-package',\n views: {\n 'main@root': {\n component: 'podOrderAdd'\n }\n },\n resolve: {\n /* contract: ($stateParams, contractService) => {\r\n return contractService.getById($stateParams.id);\r\n } */\n },\n params: {\n loadingOverlay: true\n },\n ncyBreadcrumb: {\n label: 'Verzending aanmaken'\n // label: '{{$resolve.contract.name}}'\n },\n data: {\n febelcoCustomer: true\n }\n }).state('add-package-confirmation', {\n parent: 'my-packages',\n url: '/add-package-confirmation',\n views: {\n 'main@root': {\n component: 'podOrderAddConfirmation'\n }\n },\n resolve: {\n order: [\"packagesService\", function order(packagesService) {\n return packagesService.getById(99);\n }]\n },\n params: {\n loadingOverlay: true\n },\n ncyBreadcrumb: {\n label: 'Verzending aangemaakt'\n },\n data: {\n febelcoCustomer: true\n }\n }).state('parcels', {\n parent: 'account',\n url: '/parcels',\n views: {\n 'main@root': {\n component: 'parcelsOverview'\n }\n },\n params: {\n loadingOverlay: true\n },\n ncyBreadcrumb: {\n label: '{{\"parcel.myParcels\" | translate}}'\n },\n data: {\n febelcoCustomer: true\n }\n }).state('parcel-archive', {\n parent: 'parcels',\n url: '/parcel-archive?page&pageSize&identification&barCode&orderNumber&dateFrom&dateTo',\n views: {\n 'main@root': {\n component: 'parcelArchive'\n }\n },\n reloadOnSearch: false,\n params: {\n loadingOverlay: false,\n page: {\n value: '1',\n squash: true\n },\n pageSize: {\n value: window.localStorage.getItem('pageSize'),\n squash: true\n },\n identification: {\n value: '',\n squash: true\n },\n barCode: {\n value: '',\n squash: true\n },\n orderNumber: {\n value: '',\n squash: true\n },\n dateFrom: {\n value: null,\n squash: true\n },\n dateTo: {\n value: null,\n squash: true\n }\n },\n ncyBreadcrumb: {\n label: '{{\"parcel.allMyParcels\" | translate}}'\n },\n data: {\n febelcoCustomer: true\n }\n }).state('add-parcel', {\n parent: 'parcels',\n url: '/add-parcel',\n views: {\n 'main@root': {\n component: 'parcelAdd'\n }\n },\n resolve: {\n data: [\"parcelService\", function data(parcelService) {\n return parcelService.init();\n }]\n },\n params: {\n loadingOverlay: true\n },\n ncyBreadcrumb: {\n label: '{{\"parcel.createParcel\" | translate}}'\n },\n data: {\n febelcoCustomer: true\n }\n }).state('add-parcel-confirmation', {\n parent: 'parcels',\n url: '/add-parcel-confirmation/{id:int}',\n views: {\n 'main@root': {\n component: 'parcelAddConfirmation'\n }\n },\n resolve: {\n parcel: [\"$stateParams\", \"parcelService\", function parcel($stateParams, parcelService) {\n return parcelService.get($stateParams.id);\n }]\n },\n params: {\n loadingOverlay: true\n },\n ncyBreadcrumb: {\n label: '{{\"parcel.yourParcelWasRegistered\" | translate}}'\n },\n data: {\n febelcoCustomer: true\n }\n }).state('parcel-detail', {\n parent: 'parcels',\n url: '/{id:int}',\n views: {\n 'main@root': {\n component: 'parcelDetail'\n }\n },\n resolve: {\n parcelId: [\"$stateParams\", function parcelId($stateParams) {\n return $stateParams.id;\n }]\n },\n params: {\n loadingOverlay: true\n },\n ncyBreadcrumb: {\n label: '{{\"parcel.parcel\" | translate}} {{$resolve.parcel.orderNumber}}'\n },\n data: {\n febelcoCustomer: true\n }\n });\n}]).component('accountSettings', _settings.accountSettingsComponent).component('orderOverview', _orderOverview.orderOverviewComponent).component('orderDetail', _orderDetail.orderDetailComponent).component('orderDetailHeader', _orderDetailHeader.orderDetailHeaderComponent).component('orderDetailProducts', _orderDetailProducts.orderDetailProductsComponent).component('orderDetailDeliveries', _orderDetailDeliveries.orderDetailDeliveriesComponent).component('orderDetailDeliveryHistory', _orderDetailDeliveryHistory.orderDetailDeliveryHistoryComponent).component('orderDetailDeliveryProducts', _orderDetailDeliveryProducts.orderDetailDeliveryProductsComponent).component('orderDetailExtraInfo', _orderDetailExtraInfo.orderDetailExtraInfoComponent).component('orderOverviewSearch', _orderOverviewSearch.orderOverviewSearchComponent).component('contractsOverview', _contractsOverview.contractsOverviewComponent).component('contractDetailInfo', _contractDetailInfo.contractDetailInfoComponent).component('contractsOverviewInfo', _contractsOverviewInfo.contractsOverviewInfoComponent).component('contractProducts', _contractProducts.contractProductsComponent).component('myDocuments', _myDocuments.myDocumentsComponent).component('myReservations', _myReservations.myReservationsComponent).component('contractDetail', _contractDetail.contractDetailComponent).component('rentalOverview', _rentalOverview.rentalOverviewComponent).component('rentalRequestArchive', _rentalRequestArchive.rentalRequestArchiveComponent).component('rentedProductArchive', _rentedProductArchive.rentedProductArchiveComponent).component('rentedProductDetail', _rentedProductDetail.rentedProductDetailComponent).component('podOrderAdd', _podOrderAdd.podOrderAddComponent).component('podOrderAddConfirmation', _podOrderAddConfirmation.podOrderAddConfirmationComponent).component('podOrderArchive', _podOrderArchive.podOrderArchiveComponent).component('podOrderDetail', _podOrderDetail.podOrderDetailComponent).component('podOrderOverview', _podOrderOverview.podOrderOverviewComponent).component('addStep1SelectReceiverForm', _addStep1SelectReceiverForm.addStep1SelectReceiverFormComponent).component('addStep1SelectReceiverRead', _addStep1SelectReceiverRead.addStep1SelectReceiverReadComponent).component('addStep2DetailsForm', _addStep2DetailsForm.addStep2DetailsFormComponent).component('addStep2DetailsRead', _addStep2DetailsRead.addStep2DetailsReadComponent).component('addStep3ConfirmForm', _addStep3ConfirmForm.addStep3ConfirmFormComponent).component('howDoesItWorkBox', _howDoesItWorkBox.howDoesItWorkBoxComponent).component('orderReceiverDetail', _orderReceiverDetail.orderReceiverDetailComponent).component('orderDetailContent', _orderDetailContent.orderDetailContentComponent).component('orderSearchResultItem', _orderSearchResultItem.orderSearchResultItemComponent).component('orderState', _orderState.orderStateComponent).component('orderLineState', _orderLineState.orderLineStateComponent).component('orderLineDetail', _orderLineDetail.orderLineDetailComponent).component('orderLineStateHistory', _orderLineStateHistory.orderLineStateHistoryComponent).component('parcelAdd', _parcelAdd.parcelAddComponent).component('parcelAddConfirmation', _parcelAddConfirmation.parcelAddConfirmationComponent).component('parcelsOverview', _parcelsOverview.parcelsOverviewComponent).component('parcelArchive', _parcelArchive.parcelArchiveComponent).component('parcelDetail', _parcelDetail.parcelDetailComponent).component('parcelHowDoesItWorkBox', _parcelHowDoesItWorkBox.parcelHowDoesItWorkBoxComponent).component('parcelAddStep1SelectReceiverForm', _parcelAddStep1SelectReceiverForm.parcelAddStep1SelectReceiverFormComponent).component('parcelAddStep1SelectReceiverRead', _parcelAddStep1SelectReceiverRead.parcelAddStep1SelectReceiverReadComponent).component('parcelAddStep2DetailsForm', _parcelAddStep2DetailsForm.parcelAddStep2DetailsFormComponent).component('parcelAddStep2DetailsRead', _parcelAddStep2DetailsRead.parcelAddStep2DetailsReadComponent).component('parcelAddStep3ConfirmForm', _parcelAddStep3ConfirmForm.parcelAddStep3ConfirmFormComponent).component('parcelReceiverDetail', _parcelReceiverDetail.parcelReceiverDetailComponent).component('parcelDetailContent', _parcelDetailContent.parcelDetailContentComponent).component('parcelSearchResultItem', _parcelSearchResultItem.parcelSearchResultItemComponent).component('parcelLineState', _parcelLineState.parcelLineStateComponent).component('parcelState', _parcelState.parcelStateComponent).component('parcelLineDetail', _parcelLineDetail.parcelLineDetailComponent).component('parcelLineStateHistory', _parcelLineStateHistory.parcelLineStateHistoryComponent);\n\nexports.default = _module.name;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/index.js\n// module id = 847\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar myDocumentsComponent = exports.myDocumentsComponent = {\n template: require('./my-documents.html'),\n controllerAs: 'vm',\n controller: [\"config\", \"common\", \"authService\", \"$stateParams\", \"gettextCatalog\", \"Analytics\", function myDocumentsController(config, common, authService, $stateParams, gettextCatalog, Analytics) {\n 'ngInject';\n\n var vm = this;\n vm.$onInit = init;\n vm.$stateParams = $stateParams;\n vm.getUrlReportNarcotics = getUrlReportNarcotics;\n vm.getUrlReportPurchaseProposals = getUrlReportPurchaseProposals;\n\n function init() {\n common.setTitle(gettextCatalog.getString('_myDocuments.myDocuments'));\n Analytics.trackPage('/' + common.localization.getCurrentLanguage() + '/account/myDocuments', gettextCatalog.getString('_myDocuments.myDocuments'));\n }\n\n function getUrlReportNarcotics() {\n return config.webApiBaseUrl + 'report/narcoticsReminder?lang=' + vm.$stateParams.language + '&access_token=' + authService.accessToken;\n }\n\n function getUrlReportPurchaseProposals() {\n return config.webApiBaseUrl + 'report/purchaseProposals?lang=' + vm.$stateParams.language + '&access_token=' + authService.accessToken;\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/my-documents.js\n// module id = 848\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar addStep1SelectReceiverFormComponent = exports.addStep1SelectReceiverFormComponent = {\n template: require('./add-step1-select-receiver-form.html'),\n controllerAs: 'vm',\n bindings: {\n receiver: '<',\n selectReceiver: '&',\n cancel: '&'\n },\n controller: function addStep1SelectReceiverFormController() {\n 'ngInject';\n\n var vm = this;\n\n vm.orderTypeId;\n vm.licenseNumber;\n vm.customerNumber;\n vm.error;\n vm.errorNotFound;\n\n vm.$onInit = init;\n vm.submitStep1Form = submitStep1Form;\n vm.onCancel = onCancel;\n\n function init() {\n resetStep1Form();\n }\n\n function resetStep1Form() {\n vm.orderTypeId = 1; // 'PA', Pakje apotheek\n vm.licenseNumber = vm.receiver ? vm.receiver.licenseNumber : null;\n vm.customerNumber = vm.receiver ? vm.receiver.customerNumber : null;\n vm.error = null;\n vm.errorNotFound = false;\n }\n\n function submitStep1Form() {\n if (!vm.licenseNumber || !vm.customerNumber) {\n vm.error = 'Gelieve vergunningsnummer en klantnummer in te geven.';\n vm.errorNotFound = false;\n return;\n } else if (isNaN(vm.licenseNumber) || isNaN(vm.customerNumber)) {\n vm.errorNotFound = true;\n vm.error = null;\n } else {\n vm.error = null;\n vm.errorNotFound = false;\n var selectedReceiver = void 0;\n\n selectedReceiver = {\n orderTypeId: vm.orderTypeId,\n licenseNumber: vm.licenseNumber,\n customerNumber: vm.customerNumber,\n businessUnitCode: null,\n name: 'Tijskens Marc BVBA',\n streetName: \"Gasstraat\",\n houseNumber: \"105\",\n boxNumber: null,\n postalCode: \"2060\",\n cityName: \"Antwerpen\",\n id: 50\n };\n\n vm.selectReceiver({ $event: selectedReceiver });\n }\n }\n\n function onCancel() {\n vm.cancel();\n }\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/my-packages/components/add-step1-select-receiver-form.js\n// module id = 849\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar addStep1SelectReceiverReadComponent = exports.addStep1SelectReceiverReadComponent = {\n template: require('./add-step1-select-receiver-read.html'),\n bindings: {\n receiver: '<',\n editReceiver: '&'\n },\n controllerAs: 'vm',\n controller: function addStep1SelectReceiverReadController() {\n 'ngInject';\n\n var vm = this;\n vm.onEditStep1 = onEditStep1;\n\n function onEditStep1() {\n\n vm.editReceiver();\n }\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/my-packages/components/add-step1-select-receiver-read.js\n// module id = 850\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar addStep2DetailsFormComponent = exports.addStep2DetailsFormComponent = {\n template: require('./add-step2-details-form.html'),\n bindings: {\n receiver: '<',\n delivery: '<',\n submitStep2: '&',\n cancel: '&'\n },\n controllerAs: 'vm',\n controller: [\"packagesService\", function addStep2DetailsFormController(packagesService) {\n 'ngInject';\n\n var vm = this;\n\n vm.$onInit = init;\n vm.submitStep2Form = submitStep2Form;\n vm.onCancel = onCancel;\n vm.addOrderline = addOrderline;\n vm.deleteOrderline = deleteOrderline;\n vm.getPackageTypes = getPackageTypes;\n\n vm.packageTypes;\n vm.orderlines;\n vm.remark;\n vm.qty1;\n vm.qty2;\n vm.qty3;\n vm.qtyHcp;\n vm.signatureOfDelivery;\n\n vm.showError = false;\n\n function getPackageTypes() {\n packagesService.getPackageTypes().then(function (packageTypes) {\n vm.packageTypes = packageTypes;\n\n }, function (data) {\n\n });\n }\n\n vm.getPackageTypes();\n\n function init() {\n initForm();\n }\n\n function initForm() {\n\n if (vm.delivery) {\n vm.orderlines = vm.delivery.orderlines;\n vm.remark = vm.delivery.remark;\n vm.showError = false;\n } else {\n resetForm();\n }\n }\n\n function resetForm() {\n vm.orderlines = [];\n vm.remark = null;\n vm.showError = false;\n vm.addOrderline();\n }\n\n function addOrderline() {\n\n vm.orderlines.push({\n packageTypeCode: null,\n signatureRequired: false\n });\n }\n\n function deleteOrderline(index) {\n\n vm.orderlines.splice(index, 1);\n }\n\n function submitStep2Form() {\n\n var deliveryDetails = null;\n var error = false;\n\n // temp validate for demo\n error = false;\n\n if (error) {\n vm.showError = true;\n } else {\n vm.showError = false;\n deliveryDetails = {\n remark: vm.remark,\n orderlines: [{\n signatureRequired: true,\n packageType: {\n code: \"NORML\",\n name: \"Standaard pakket\",\n description: \"Kleiner dan een groene Febelco bak\",\n id: 1\n }\n }, {\n signatureRequired: true,\n packageType: {\n code: \"LARGE\",\n name: \"Groot pakket\",\n description: \"Groter dan een groene Febelco bak\",\n id: 2\n }\n }]\n };\n\n vm.submitStep2({ $event: deliveryDetails });\n }\n }\n\n function onCancel() {\n\n vm.cancel();\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/my-packages/components/add-step2-details-form.js\n// module id = 851\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar addStep2DetailsReadComponent = exports.addStep2DetailsReadComponent = {\n template: require('./add-step2-details-read.html'),\n bindings: {\n delivery: '<',\n editStep2: '&'\n },\n controllerAs: 'vm',\n controller: function addStep2DetailsReadController() {\n 'ngInject';\n\n var vm = this;\n vm.onEditStep2 = onEditStep2;\n\n function onEditStep2() {\n\n vm.editStep2();\n }\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/my-packages/components/add-step2-details-read.js\n// module id = 852\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar addStep3ConfirmFormComponent = exports.addStep3ConfirmFormComponent = {\n template: require('./add-step3-confirm-form.html'),\n bindings: {\n delivery: '<',\n submitStep3: '&',\n cancel: '&'\n },\n controllerAs: 'vm',\n controller: function addStep3ConfirmFormController() {\n 'ngInject';\n\n var vm = this;\n\n vm.$onInit = init;\n vm.onSubmitStep3Form = onSubmitStep3Form;\n vm.onCancel = onCancel;\n\n vm.showError = false;\n vm.agreeWithTerms = false;\n\n function init() {\n resetForm();\n }\n\n function resetForm() {\n vm.agreeWithTerms = false;\n vm.showError = false;\n }\n\n function onSubmitStep3Form() {\n if (vm.agreeWithTerms) {\n vm.showError = false;\n vm.submitStep3();\n } else {\n vm.showError = true;\n }\n }\n\n function onCancel() {\n vm.cancel();\n }\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/my-packages/components/add-step3-confirm-form.js\n// module id = 853\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar howDoesItWorkBoxComponent = exports.howDoesItWorkBoxComponent = {\n template: require('./how-does-it-work-box.html'),\n bindings: {},\n controllerAs: 'vm',\n controller: function howDoesItWorkBoxController() {\n 'ngInject';\n\n var vm = this;\n\n vm.$onInit = init;\n\n function init() {}\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/my-packages/components/how-does-it-work-box.js\n// module id = 854\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar orderDetailContentComponent = exports.orderDetailContentComponent = {\n template: require('./order-detail-content.html'),\n bindings: {\n order: '<',\n confirmation: '<'\n },\n controllerAs: 'vm',\n controller: function controller() {\n 'ngInject';\n\n var vm = this;\n\n vm.$onInit = init;\n\n function init() {}\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/my-packages/components/order-detail-content.js\n// module id = 855\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar orderLineDetailComponent = exports.orderLineDetailComponent = {\n template: require('./order-line-detail.html'),\n bindings: {\n line: '<',\n showLineState: '<'\n },\n controllerAs: 'vm',\n controller: function controller() {\n 'ngInject';\n\n var vm = this;\n\n\n\n vm.$onInit = init;\n\n function init() {}\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/my-packages/components/order-line-detail.js\n// module id = 856\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar orderLineStateHistoryComponent = exports.orderLineStateHistoryComponent = {\n template: require('./order-line-state-history.html'),\n bindings: {\n lineId: '<'\n },\n controllerAs: 'vm',\n controller: [\"packagesService\", function orderLineStateHistoryController(packagesService) {\n 'ngInject';\n\n var vm = this;\n vm.stateHistory;\n vm.getStateHistory = getStateHistory;\n\n function getStateHistory() {\n packagesService.getStateHistory(vm.lineId).then(function (stateHistory) {\n vm.stateHistory = stateHistory;\n }, function (data) {\n\n });\n }\n\n vm.getStateHistory();\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/my-packages/components/order-line-state-history.js\n// module id = 857\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar orderLineStateComponent = exports.orderLineStateComponent = {\n template: require('./order-line-state.html'),\n bindings: {\n state: '<'\n },\n controllerAs: 'vm',\n controller: [\"packagesService\", function controller(packagesService) {\n 'ngInject';\n\n var vm = this;\n vm.stateContext;\n vm.stateIcon;\n\n vm.$onInit = init;\n\n function init() {\n vm.stateContext = 'text-' + packagesService.getOrderStateContext(vm.state.code);\n vm.stateIcon = packagesService.getOrderStateIcon(vm.state.code);\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/my-packages/components/order-line-state.js\n// module id = 858\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar orderReceiverDetailComponent = exports.orderReceiverDetailComponent = {\n template: require('./order-receiver-detail.html'),\n bindings: {\n receiver: '<'\n },\n controllerAs: 'vm',\n controller: [\"packagesService\", function controller(packagesService) {\n 'ngInject';\n\n var vm = this;\n\n\n\n vm.orderTypeName;\n vm.$onInit = init;\n\n function init() {\n vm.orderTypeName = packagesService.getContactTypeName(vm.receiver.orderTypeId);\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/my-packages/components/order-receiver-detail.js\n// module id = 859\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar orderSearchResultItemComponent = exports.orderSearchResultItemComponent = {\n template: require('./order-search-result-item.html'),\n bindings: {\n order: '<'\n },\n controllerAs: 'vm',\n controller: function controller() {\n 'ngInject';\n\n var vm = this;\n\n\n\n vm.$onInit = init;\n\n function init() {}\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/my-packages/components/order-search-result-item.js\n// module id = 860\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar orderStateComponent = exports.orderStateComponent = {\n template: require('./order-state.html'),\n bindings: {\n state: '<'\n },\n controllerAs: 'vm',\n controller: [\"packagesService\", function controller(packagesService) {\n 'ngInject';\n\n var vm = this;\n vm.stateContext;\n vm.stateIcon;\n\n vm.$onInit = init;\n\n function init() {\n vm.stateContext = 'text' + packagesService.getOrderStateContext(vm.state.code);\n vm.stateIcon = packagesService.getOrderStateIcon(vm.state.code);\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/my-packages/components/order-state.js\n// module id = 861\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar podOrderAddConfirmationComponent = exports.podOrderAddConfirmationComponent = {\n template: require('./pod-order-add-confirmation.html'),\n controllerAs: 'vm',\n bindings: {\n order: '<'\n },\n controller: function podOrderAddrConfirmationController() {\n 'ngInject';\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/my-packages/pod-order-add-confirmation.js\n// module id = 862\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar podOrderAddComponent = exports.podOrderAddComponent = {\n template: require('./pod-order-add.html'),\n controllerAs: 'vm',\n bindings: {},\n controller: [\"common\", \"gettextCatalog\", \"$state\", function podOrderAddController(common, gettextCatalog, $state) {\n 'ngInject';\n\n var vm = this;\n\n vm.currentStep = 0;\n\n vm.receiver;\n vm.delivery;\n\n vm.initForm = initForm;\n vm.selectReceiver = selectReceiver;\n vm.editReceiver = editReceiver;\n vm.submitStep2 = submitStep2;\n vm.editStep2 = editStep2;\n vm.submitStep3 = submitStep3;\n vm.cancel = cancel;\n\n vm.$onInit = init;\n\n function init() {\n common.setTitle(gettextCatalog.getString('Add package'));\n\n initForm();\n }\n\n function initForm() {\n vm.currentStep = 1;\n vm.receiver = null;\n vm.delivery = null;\n }\n\n function selectReceiver($event) {\n vm.currentStep = 2;\n vm.receiver = $event;\n }\n\n function submitStep2($event) {\n vm.currentStep = 3;\n vm.delivery = $event;\n }\n\n function submitStep3($event) {\n vm.currentStep = 4;\n\n $state.go('add-package-confirmation');\n }\n\n function editReceiver() {\n vm.currentStep = 1;\n }\n\n function editStep2() {\n vm.currentStep = 2;\n }\n\n function cancel() {\n $state.go('my-packages');\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/my-packages/pod-order-add.js\n// module id = 863\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar podOrderArchiveComponent = exports.podOrderArchiveComponent = {\n template: require('./pod-order-archive.html'),\n controllerAs: 'vm',\n bindings: {\n orders: '<'\n },\n controller: [\"common\", \"gettextCatalog\", function podOrderArchiveController(common, gettextCatalog) {\n 'ngInject';\n\n var vm = this;\n\n vm.search = search;\n vm.clear = clear;\n\n vm.$onInit = init;\n vm.model = {\n results: [],\n paging: {\n totalItems: 23,\n itemsPerPage: 12,\n page: 1,\n pageCount: 2,\n pageNumbers: [{\n index: 1,\n isHiddenOnMobile: false\n }, {\n index: 2,\n isHiddenOnMobile: false\n }]\n }\n };\n\n function init() {\n common.setTitle(gettextCatalog.getString('Al mijn verzendingen'));\n }\n\n function search() {}\n\n function clear() {}\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/my-packages/pod-order-archive.js\n// module id = 864\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar podOrderDetailComponent = exports.podOrderDetailComponent = {\n template: require('./pod-order-detail.html'),\n controllerAs: 'vm',\n bindings: {\n order: '<'\n },\n controller: [\"common\", \"gettextCatalog\", function podOrderDetailController(common, gettextCatalog) {\n 'ngInject';\n\n var vm = this;\n vm.$onInit = init;\n\n function init() {\n common.setTitle(gettextCatalog.getString('Verzending') + ' ' + vm.order.number);\n\n\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/my-packages/pod-order-detail.js\n// module id = 865\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar podOrderOverviewComponent = exports.podOrderOverviewComponent = {\n template: require('./pod-order-overview.html'),\n controllerAs: 'vm',\n bindings: {\n recentOrders: '<'\n },\n controller: [\"common\", \"gettextCatalog\", function podOrderOverviewController(common, gettextCatalog) {\n 'ngInject';\n\n var vm = this;\n\n vm.$onInit = init;\n\n function init() {\n\n common.setTitle(gettextCatalog.getString('Mijn verzendingen'));\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/my-packages/pod-order-overview.js\n// module id = 866\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar myReservationsComponent = exports.myReservationsComponent = {\n template: require('./my-reservations.html'),\n controllerAs: 'vm',\n controller: [\"common\", \"gettextCatalog\", function myReservationsController(common, gettextCatalog) {\n 'ngInject';\n\n var vm = this;\n vm.$onInit = init;\n vm.myFebelcoLink = 'https://www.myfebelco.be/MyPharmacy/Reservations';\n\n function init() {\n common.setTitle(gettextCatalog.getString('Overzicht producten in reservatie'));\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/my-reservations.js\n// module id = 867\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar orderDetailComponent = exports.orderDetailComponent = {\n template: require('./order-detail.html'),\n bindings: {\n order: '<'\n },\n controllerAs: 'vm',\n controller: [\"common\", \"gettextCatalog\", \"authService\", \"config\", \"$stateParams\", \"orderService\", \"Analytics\", function orderDetailController(common, gettextCatalog, authService, config, $stateParams, orderService, Analytics) {\n 'ngInject';\n\n var vm = this;\n vm.$onInit = init;\n vm.getDownloadUrl = getDownloadUrl;\n vm.setOrderDeliveryDate = setOrderDeliveryDate;\n vm.updateOrderDeliverDateErrors = [];\n vm.updatingOrderDate = false;\n\n function init() {\n common.navigationMenu.clearActiveMenu();\n var pageTitle = vm.order.referenceNumber ? gettextCatalog.getString('Order - noun') + ' ' + vm.order.referenceNumber : gettextCatalog.getString('Order - noun');\n common.setTitle(pageTitle);\n Analytics.trackPage('/' + common.localization.getCurrentLanguage() + '/account/orders/' + vm.order.id, pageTitle);\n }\n\n function getDownloadUrl() {\n return config.webApiBaseUrl + ('report/orderDetail/' + vm.order.id + '?lang=' + $stateParams.language + '&access_token=' + authService.accessToken);\n }\n\n function setOrderDeliveryDate(newDeliveryDate) {\n vm.updatingOrderDate = true;\n orderService.setOrderDeliveryDate(vm.order, newDeliveryDate).then(function (order) {\n vm.order = order;\n vm.updatingOrderDate = false;\n vm.updateOrderDeliverDateErrors = [];\n }).catch(function (err) {\n vm.updateOrderDeliverDateErrors = err.data.errors;\n vm.updatingOrderDate = false;\n });\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/order-detail.js\n// module id = 868\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar orderOverviewComponent = exports.orderOverviewComponent = {\n template: require('./order-overview.html'),\n bindings: {\n input: '<',\n sellers: '<'\n },\n controllerAs: 'vm',\n controller: [\"$scope\", \"common\", \"gettextCatalog\", \"orderService\", \"exceptionService\", \"Paging\", \"config\", \"authService\", \"$stateParams\", \"$window\", \"cartService\", \"$state\", \"toastr\", \"Analytics\", \"Enums\", function orderOverviewController($scope, common, gettextCatalog, orderService, exceptionService, Paging, config, authService, $stateParams, $window, cartService, $state, toastr, Analytics, Enums) {\n 'ngInject';\n\n var vm = this;\n vm.orders = vm.input.orders;\n vm.searchValue = '';\n vm.paging = null;\n vm.sortProperty = 'OrderDate';\n vm.sortAsc = false;\n vm.isLoading = false;\n vm.isAddingToCart = false;\n vm.getOrders = getOrders;\n vm.search = search;\n vm.goToPage = goToPage;\n vm.changeSorting = changeSorting;\n vm.$onInit = init;\n vm.getDownloadUrl = getDownloadUrl;\n vm.reOrderProducts = reOrderProducts;\n vm.itemsPerPage = Enums.getAmounts.default;\n\n angular.element($window).on('keydown', function (event) {\n if (event.which === 13 && !vm.isLoading) {\n vm.getOrders();\n }\n });\n\n $scope.$on('$destroy', function () {\n angular.element($window).off('keydown');\n });\n\n function init() {\n common.navigationMenu.clearActiveMenu();\n common.setTitle(gettextCatalog.getString('My orders'));\n Analytics.trackPage('/' + common.localization.getCurrentLanguage() + '/account/orders', gettextCatalog.getString('My orders'));\n\n vm.selectedSeller = vm.sellers[0];\n vm.paging = Paging.create({\n page: 1,\n itemsPerPage: vm.itemsPerPage,\n totalItems: vm.input.totalItems\n });\n }\n\n function getOrders() {\n common.log.info('search orders: searchValue ' + vm.searchValue + ', page ' + vm.paging.page + ', sort by ' + vm.sortProperty + ', sort asc ' + vm.sortAsc);\n\n vm.isLoading = true;\n orderService.getByCriteria(vm.searchValue, vm.paging.page, vm.itemsPerPage, vm.sortProperty, vm.sortAsc, vm.selectedSeller.id).then(function (result) {\n vm.orders = result.orders;\n vm.paging = Paging.create({\n page: vm.paging.page,\n itemsPerPage: vm.itemsPerPage,\n totalItems: result.totalItems\n });\n }).catch(function () {\n var msg = gettextCatalog.getString('The orders could not be retrieved');\n exceptionService.logException(msg);\n }).finally(function () {\n return vm.isLoading = false;\n });\n }\n\n function search(e) {\n vm.searchValue = e.searchValue;\n vm.selectedSeller = e.selectedSeller;\n vm.paging.page = 1;\n getOrders();\n }\n\n function goToPage(page) {\n if (page === 0 || page > vm.paging.pageCount) {\n return;\n }\n vm.paging.page = page;\n getOrders();\n }\n\n function changeSorting(sortProperty) {\n vm.sortAsc = vm.sortProperty === sortProperty ? !vm.sortAsc : true;\n vm.sortProperty = sortProperty;\n vm.paging.page = 1;\n getOrders();\n }\n\n function getDownloadUrl(order) {\n return config.webApiBaseUrl + ('report/orderDetail/' + order.id + '?lang=' + $stateParams.language + '&access_token=' + authService.accessToken);\n }\n\n function reOrderProducts(order) {\n vm.isAddingToCart = true;\n cartService.reOrderProducts(order.id).then(function () {\n vm.isAddingToCart = false;\n\n toastr.success(gettextCatalog.getString('Added products to your shoppingcart'), '', {\n progressBar: true,\n timeOut: 5000,\n extendedTimeOut: 1000,\n closeButton: true\n });\n\n $state.go('cart');\n }).catch(function () {\n vm.isAddingToCart = false;\n\n toastr.error(gettextCatalog.getString('An error occured when adding products to your shoppingcart, please try again'), '', {\n progressBar: true,\n timeOut: 5000,\n extendedTimeOut: 1000,\n closeButton: true\n });\n\n var msg = gettextCatalog.getString('An error occurred during the re order. Please contact the customer support.');\n exceptionService.logException(msg);\n });\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/order-overview.js\n// module id = 869\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar parcelAddStep1SelectReceiverFormComponent = exports.parcelAddStep1SelectReceiverFormComponent = {\n template: require('./parcel-add-step1-select-receiver-form.html'),\n controllerAs: 'vm',\n bindings: {\n receiver: '<',\n selectReceiver: '&',\n validateReceiver: '&',\n cancel: '&'\n },\n controller: [\"gettextCatalog\", function parcelAddStep1SelectReceiverFormController(gettextCatalog) {\n 'ngInject';\n\n var vm = this;\n\n vm.orderTypeId;\n vm.licenseNumber;\n vm.error;\n vm.errorNotFound;\n\n vm.$onInit = init;\n vm.submitStep1Form = submitStep1Form;\n vm.onCancel = onCancel;\n\n function init() {\n resetStep1Form();\n }\n\n function resetStep1Form() {\n vm.orderTypeId = 1;\n vm.licenseNumber = vm.receiver ? vm.receiver.licenseNumber : null;\n vm.error = null;\n vm.errorNotFound = false;\n }\n\n function submitStep1Form() {\n if (!vm.licenseNumber) {\n vm.error = gettextCatalog.getString('parcel.enterLicenseNumberShort');\n vm.errorNotFound = false;\n return;\n } else if (isNaN(vm.licenseNumber)) {\n vm.errorNotFound = true;\n vm.error = null;\n } else {\n vm.validateReceiver({ $event: { licenseNumber: vm.licenseNumber } }).then(function (response) {\n vm.error = null;\n vm.errorNotFound = false;\n vm.selectReceiver({ $event: response });\n }, function () {\n vm.errorNotFound = true;\n vm.error = null;\n });\n }\n }\n\n function onCancel() {\n vm.cancel();\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/parcels/components/parcel-add-step1-select-receiver-form.js\n// module id = 870\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar parcelAddStep1SelectReceiverReadComponent = exports.parcelAddStep1SelectReceiverReadComponent = {\n template: require('./parcel-add-step1-select-receiver-read.html'),\n bindings: {\n receiver: '<',\n editReceiver: '&',\n editable: '<'\n },\n controllerAs: 'vm',\n controller: function parcelAddStep1SelectReceiverReadController() {\n 'ngInject';\n\n var vm = this;\n vm.onEditStep1 = onEditStep1;\n\n function onEditStep1() {\n vm.editReceiver();\n }\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/parcels/components/parcel-add-step1-select-receiver-read.js\n// module id = 871\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar parcelAddStep2DetailsFormComponent = exports.parcelAddStep2DetailsFormComponent = {\n template: require('./parcel-add-step2-details-form.html'),\n bindings: {\n receiver: '<',\n delivery: '<',\n submitStep2: '&',\n cancel: '&'\n },\n controllerAs: 'vm',\n controller: [\"gettextCatalog\", \"parcelService\", function parcelAddStep2DetailsFormController(gettextCatalog, parcelService) {\n 'ngInject';\n\n var vm = this;\n\n vm.$onInit = init;\n vm.submitStep2Form = submitStep2Form;\n vm.onCancel = onCancel;\n vm.addOrderline = addOrderline;\n vm.deleteOrderline = deleteOrderline;\n vm.onPackageTypeSelection = onPackageTypeSelection;\n\n vm.packageTypes = parcelService.podPackageTypes;\n\n vm.orderlines;\n vm.remark;\n vm.qty1;\n vm.qty2;\n vm.qty3;\n vm.qtyHcp;\n\n function init() {\n initForm();\n }\n\n function initForm() {\n if (vm.delivery) {\n vm.orderlines = vm.delivery.orderlines;\n vm.remark = vm.delivery.remark;\n } else {\n resetForm();\n }\n }\n\n function resetForm() {\n vm.orderlines = [];\n vm.remark = null;\n vm.addOrderline();\n }\n\n function addOrderline() {\n vm.orderlines.push({\n packageType: null,\n packageTypeCode: null,\n hasInsurance: false,\n packageValue: null,\n insurancePriceDescription: null,\n packageTypeError: null\n });\n }\n\n function onPackageTypeSelection(index) {\n var ol = vm.orderlines[index];\n var insurancePrice = vm.packageTypes.find(function (pt) {\n return pt.code === ol.packageTypeCode;\n }).insurancePrice;\n ol.insurancePriceDescription = gettextCatalog.getString('parcel.insuranceDescription', { insurancePrice: insurancePrice });\n }\n\n function deleteOrderline(index) {\n vm.orderlines.splice(index, 1);\n }\n\n function submitStep2Form() {\n if (vm.formReference.$valid) {\n vm.orderlines.forEach(function (element) {\n element.packageTypeError = !element.packageTypeCode ? gettextCatalog.getString('parcel.pleaseSelectPackageType') : null;\n });\n if (!vm.orderlines.find(function (x) {\n return x.packageTypeError;\n })) {\n var deliveryDetails = {\n remark: vm.remark,\n orderlines: vm.orderlines.map(function (orderLine) {\n orderLine.packageType = vm.packageTypes.find(function (pt) {\n return pt.code === orderLine.packageTypeCode;\n });\n return orderLine;\n })\n };\n vm.submitStep2({ $event: deliveryDetails });\n }\n }\n }\n function onCancel() {\n vm.cancel();\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/parcels/components/parcel-add-step2-details-form.js\n// module id = 872\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar parcelAddStep2DetailsReadComponent = exports.parcelAddStep2DetailsReadComponent = {\n template: require('./parcel-add-step2-details-read.html'),\n bindings: {\n delivery: '<',\n editStep2: '&',\n editable: '<'\n },\n controllerAs: 'vm',\n controller: function parcelAddStep2DetailsReadController() {\n 'ngInject';\n\n var vm = this;\n vm.onEditStep2 = onEditStep2;\n\n function onEditStep2() {\n vm.editStep2();\n }\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/parcels/components/parcel-add-step2-details-read.js\n// module id = 873\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar parcelAddStep3ConfirmFormComponent = exports.parcelAddStep3ConfirmFormComponent = {\n template: require('./parcel-add-step3-confirm-form.html'),\n bindings: {\n delivery: '<',\n submitStep3: '&',\n cancel: '&'\n },\n controllerAs: 'vm',\n controller: function parcelAddStep3ConfirmFormController() {\n 'ngInject';\n\n var vm = this;\n\n vm.$onInit = init;\n vm.onSubmitStep3Form = onSubmitStep3Form;\n vm.onCancel = onCancel;\n vm.showError = false;\n vm.agreeWithTerms = false;\n\n function init() {\n resetForm();\n }\n\n function resetForm() {\n vm.agreeWithTerms = false;\n vm.showError = false;\n }\n\n function onSubmitStep3Form() {\n if (vm.agreeWithTerms) {\n vm.showError = false;\n vm.submitStep3();\n } else {\n vm.showError = true;\n }\n }\n\n function onCancel() {\n vm.cancel();\n }\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/parcels/components/parcel-add-step3-confirm-form.js\n// module id = 874\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar parcelDetailContentComponent = exports.parcelDetailContentComponent = {\n template: require('./parcel-detail-content.html'),\n bindings: {\n parcel: '<',\n confirmation: '<',\n cancel: '&?',\n canCancel: ''\n },\n controllerAs: 'vm',\n controller: function controller() {\n 'ngInject';\n\n var vm = this;\n\n vm.onCancel = onCancel;\n\n function onCancel(lineId) {\n return vm.cancel(lineId);\n }\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/parcels/components/parcel-detail-content.js\n// module id = 875\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar parcelHowDoesItWorkBoxComponent = exports.parcelHowDoesItWorkBoxComponent = {\n template: require('./parcel-how-does-it-work-box.html'),\n bindings: {},\n controllerAs: 'vm',\n controller: function parcelHowDoesItWorkBoxController() {\n 'ngInject';\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/parcels/components/parcel-how-does-it-work-box.js\n// module id = 876\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar parcelLineDetailComponent = exports.parcelLineDetailComponent = {\n template: require('./parcel-line-detail.html'),\n bindings: {\n line: '<',\n showLineState: '<',\n cancel: '&?',\n canCancel: ''\n },\n controllerAs: 'vm',\n controller: [\"gettextCatalog\", \"parcelService\", function controller(gettextCatalog, parcelService) {\n 'ngInject';\n\n var vm = this;\n vm.stateHistory;\n\n vm.insuranceDescription = gettextCatalog.getString('parcel.insuranceDescription', { insurancePrice: vm.line.packageType.insurancePrice });\n vm.getLabelUrl = getLabelUrl;\n vm.loadHistory = loadHistory;\n vm.canCancelLine = canCancelLine;\n vm.onCancel = onCancel;\n\n function loadHistory() {\n if (!vm.stateHistory) {\n parcelService.getStateHistory(vm.line.id).then(function (response) {\n vm.stateHistory = response.stateHistory;\n });\n }\n }\n\n function getLabelUrl() {\n return parcelService.getLabelDownloadUrl(vm.line.id);\n }\n\n function canCancelLine() {\n return vm.canCancel && (vm.line.state.code === 'CREATED' || vm.line.state.code === 'REG');\n }\n\n function onCancel() {\n vm.cancel();\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/parcels/components/parcel-line-detail.js\n// module id = 877\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar parcelLineStateHistoryComponent = exports.parcelLineStateHistoryComponent = {\n template: require('./parcel-line-state-history.html'),\n bindings: {\n stateHistory: '<'\n },\n controllerAs: 'vm',\n controller: [\"parcelService\", function parcelLineStateHistoryController(parcelService) {\n 'ngInject';\n\n var vm = this;\n vm.getContext = getContext;\n function getContext(code) {\n return 'text-' + parcelService.getOrderStateContext(code);\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/parcels/components/parcel-line-state-history.js\n// module id = 878\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar parcelLineStateComponent = exports.parcelLineStateComponent = {\n template: require('./parcel-line-state.html'),\n bindings: {\n state: '<'\n },\n controllerAs: 'vm',\n controller: [\"parcelService\", function controller(parcelService) {\n 'ngInject';\n\n var vm = this;\n vm.stateContext;\n vm.stateIcon;\n\n vm.$onInit = init;\n\n function init() {\n vm.stateContext = 'text-' + parcelService.getOrderStateContext(vm.state.code);\n vm.stateIcon = parcelService.getOrderStateIcon(vm.state.code);\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/parcels/components/parcel-line-state.js\n// module id = 879\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar parcelReceiverDetailComponent = exports.parcelReceiverDetailComponent = {\n template: require('./parcel-receiver-detail.html'),\n bindings: {\n receiver: '<'\n },\n controllerAs: 'vm',\n controller: function controller() {\n 'ngInject';\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/parcels/components/parcel-receiver-detail.js\n// module id = 880\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar parcelSearchResultItemComponent = exports.parcelSearchResultItemComponent = {\n template: require('./parcel-search-result-item.html'),\n bindings: {\n parcel: '<'\n },\n controllerAs: 'vm',\n controller: function controller() {\n 'ngInject';\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/parcels/components/parcel-search-result-item.js\n// module id = 881\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar parcelStateComponent = exports.parcelStateComponent = {\n template: require('./parcel-state.html'),\n bindings: {\n state: '<'\n },\n controllerAs: 'vm',\n controller: [\"parcelService\", function controller(parcelService) {\n 'ngInject';\n\n var vm = this;\n vm.stateContext;\n vm.stateIcon;\n\n vm.$onInit = init;\n\n function init() {\n vm.stateContext = 'text' + parcelService.getOrderStateContext(vm.state.code);\n vm.stateIcon = parcelService.getOrderStateIcon(vm.state.code);\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/parcels/components/parcel-state.js\n// module id = 882\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar parcelAddConfirmationComponent = exports.parcelAddConfirmationComponent = {\n template: require('./parcel-add-confirmation.html'),\n controllerAs: 'vm',\n bindings: {\n parcel: '<'\n },\n controller: [\"common\", \"gettextCatalog\", \"Analytics\", function parcelAddConfirmationController(common, gettextCatalog, Analytics) {\n 'ngInject';\n\n var vm = this;\n vm.$onInit = init;\n\n function init() {\n var pageTitle = gettextCatalog.getString('parcel.yourParcelWasRegistered');\n common.setTitle(pageTitle);\n Analytics.trackPage('/' + common.localization.getCurrentLanguage() + '/account/parcels/add-parcel-confirmation', pageTitle);\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/parcels/parcel-add-confirmation.js\n// module id = 883\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar parcelAddComponent = exports.parcelAddComponent = {\n template: require('./parcel-add.html'),\n controllerAs: 'vm',\n bindings: {},\n controller: [\"common\", \"gettextCatalog\", \"$state\", \"parcelService\", \"Analytics\", function parcelAddController(common, gettextCatalog, $state, parcelService, Analytics) {\n 'ngInject';\n\n var vm = this;\n\n vm.currentStep = 0;\n\n vm.receiver;\n vm.delivery;\n\n vm.initForm = initForm;\n vm.validateReceiver = validateReceiver;\n vm.selectReceiver = selectReceiver;\n vm.editReceiver = editReceiver;\n vm.submitStep2 = submitStep2;\n vm.editStep2 = editStep2;\n vm.submitStep3 = submitStep3;\n vm.cancel = cancel;\n\n vm.$onInit = init;\n\n function init() {\n var pageTitle = gettextCatalog.getString('parcel.createParcel');\n common.setTitle(pageTitle);\n Analytics.trackPage('/' + common.localization.getCurrentLanguage() + '/account/parcels/add-parcel', pageTitle);\n initForm();\n }\n\n function initForm() {\n vm.currentStep = 1;\n vm.receiver = null;\n vm.delivery = null;\n }\n\n function selectReceiver($event) {\n vm.currentStep = 2;\n vm.receiver = $event;\n }\n\n function validateReceiver($event) {\n return parcelService.validateReceiver($event.licenseNumber);\n }\n\n function submitStep2($event) {\n vm.currentStep = 3;\n vm.delivery = $event;\n }\n\n function submitStep3() {\n vm.currentStep = 4;\n\n var parcelAdd = {\n receiverCustomerNumber: vm.receiver.customerNumber,\n receiverLicenseNumber: vm.receiver.licenseNumber,\n remark: vm.delivery.remark,\n lines: vm.delivery.orderlines.map(function (ol) {\n return { packageTypeId: ol.packageType.id,\n packageValue: ol.packageValue, hasInsurance: ol.hasInsurance\n };\n })\n };\n\n parcelService.add(vm.receiver.contactTypeId, parcelAdd).then(function (response) {\n $state.go('add-parcel-confirmation', { id: response.id });\n }).catch(function () {\n $state.go('error', {}, {\n location: false\n });\n });\n }\n\n function editReceiver() {\n vm.currentStep = 1;\n }\n\n function editStep2() {\n vm.currentStep = 2;\n }\n\n function cancel() {\n $state.go('parcels');\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/parcels/parcel-add.js\n// module id = 884\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.parcelArchiveComponent = undefined;\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar parcelArchiveComponent = exports.parcelArchiveComponent = {\n template: require('./parcel-archive.html'),\n controllerAs: 'vm',\n bindings: {\n parcels: '<'\n },\n controller: [\"$scope\", \"$state\", \"$stateParams\", \"common\", \"gettextCatalog\", \"Paging\", \"parcelService\", \"Analytics\", function parcelArchiveController($scope, $state, $stateParams, common, gettextCatalog, Paging, parcelService, Analytics) {\n 'ngInject';\n\n var vm = this;\n vm.$onInit = init;\n vm.search = search;\n vm.clear = clear;\n vm.goToPage = goToPage;\n vm.changeItemsPerPage = changeItemsPerPage;\n vm.isSearchUsed = isSearchUsed;\n vm.pageCountList = [12, 24, 36];\n vm.model = null;\n vm.ordersLoading = false;\n vm.dateFormat = 'YYYY-MM-DD';\n vm.paging = Paging.create({\n page: 1,\n itemsPerPage: parseInt($stateParams.pageSize) || vm.pageCountList[0],\n totalItems: 0\n });\n\n function init() {\n var pageTitle = gettextCatalog.getString('parcel.allMyParcels');\n common.setTitle(pageTitle);\n Analytics.trackPage('/' + common.localization.getCurrentLanguage() + '/account/parcels/parcel-archive', pageTitle);\n\n loadData(vm.paging.itemsPerPage).then(function () {\n listenForLocationChangeSuccess();\n });\n }\n\n function listenForLocationChangeSuccess() {\n $scope.$on('$locationChangeSuccess', function () {\n loadData(vm.paging.itemsPerPage);\n });\n }\n\n function loadData(itemsPerPage) {\n vm.ordersLoading = true;\n\n var params = getQueryStringParams(itemsPerPage);\n\n return parcelService.search(params).then(function (response) {\n vm.model = response;\n vm.paging = Paging.create({\n page: params.page,\n itemsPerPage: vm.paging.itemsPerPage,\n totalItems: response.count\n });\n vm.ordersLoading = false;\n });\n }\n\n function getQueryStringParams(itemsPerPage) {\n var page = parseInt($stateParams.page);\n\n return {\n page: page,\n skip: vm.paging.getSkipValue(page, itemsPerPage),\n take: itemsPerPage,\n identification: $stateParams.identification,\n orderNumber: $stateParams.orderNumber,\n barCode: $stateParams.barCode,\n dateFrom: $stateParams.dateFrom,\n dateTo: $stateParams.dateTo\n };\n }\n\n function search(page) {\n $state.go('.', {\n page: page || 1,\n pageSize: vm.paging.itemsPerPage,\n identification: vm.model.search.identification,\n orderNumber: vm.model.search.orderNumber,\n barCode: vm.model.search.barCode,\n dateFrom: vm.model.search.dateFrom && (0, _moment2.default)(vm.model.search.dateFrom).format(vm.dateFormat),\n dateTo: vm.model.search.dateTo && (0, _moment2.default)(vm.model.search.dateTo).format(vm.dateFormat)\n });\n }\n\n function clear() {\n vm.model.search.identification = null;\n vm.model.search.orderNumber = null;\n vm.model.search.barCode = null;\n vm.model.search.dateFrom = null;\n vm.model.search.dateTo = null;\n\n search();\n }\n\n function goToPage(page) {\n if (page === 0 || page > vm.paging.pageCount) {\n return;\n }\n search(page);\n }\n\n function changeItemsPerPage(itemsPerPage) {\n vm.paging.itemsPerPage = itemsPerPage;\n search();\n }\n\n function isSearchUsed() {\n return !!$stateParams.identification && $stateParams.identification.length > 0 || !!$stateParams.orderNumber && $stateParams.orderNumber.length > 0 || !!$stateParams.barCode && $stateParams.barCode.length > 0 || !!$stateParams.dateFrom || !!$stateParams.dateTo;\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/parcels/parcel-archive.js\n// module id = 885\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar parcelDetailComponent = exports.parcelDetailComponent = {\n template: require('./parcel-detail.html'),\n controllerAs: 'vm',\n bindings: {\n parcelId: '<'\n },\n controller: [\"common\", \"gettextCatalog\", \"parcelService\", \"toastr\", \"Analytics\", function parcelDetailController(common, gettextCatalog, parcelService, toastr, Analytics) {\n 'ngInject';\n\n var vm = this;\n vm.$onInit = init;\n vm.cancel = cancel;\n vm.cancelLine = cancelLine;\n vm.cancelOrder = cancelOrder;\n vm.orderCanBeCancelled = orderCanBeCancelled;\n vm.canCancel = true;\n\n function init() {\n refreshParcel().then(function () {\n var pageTitle = gettextCatalog.getString('parcel.parcel') + ' ' + vm.parcel.number;\n common.setTitle(pageTitle);\n Analytics.trackPage('/' + common.localization.getCurrentLanguage() + '/account/parcels/parcel-detail/' + vm.parcel.id, pageTitle);\n });\n }\n\n function refreshParcel() {\n return parcelService.get(vm.parcelId).then(function (result) {\n vm.parcel = result;\n });\n }\n\n function cancelLine(lineId) {\n return cancel([lineId]);\n }\n\n function cancelOrder() {\n return cancel(vm.parcel.lines.map(function (line) {\n return line.id;\n }));\n }\n\n function cancel(lineIds) {\n return parcelService.cancel(vm.parcel.type.id, lineIds).then(function () {\n toastr.success(gettextCatalog.getString('parcel.parcelCancelCommandSent'), '', {\n progressBar: true,\n timeOut: 3000,\n extendedTimeOut: 1000,\n closeButton: true\n });\n refreshParcel();\n }).catch(function () {\n toastr.error(gettextCatalog.getString('parcel.errorSendingCancelCommand'), '', {\n timeOut: 3000,\n extendedTimeOut: 1000,\n closeButton: true\n });\n });\n }\n\n function orderCanBeCancelled() {\n return !vm.parcel.lines.find(function (line) {\n return line.state.code !== 'CREATED' && line.state.code !== 'REG';\n }) && vm.canCancel;\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/parcels/parcel-detail.js\n// module id = 886\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar parcelsOverviewComponent = exports.parcelsOverviewComponent = {\n template: require('./parcels-overview.html'),\n controllerAs: 'vm',\n bindings: {},\n controller: [\"common\", \"gettextCatalog\", \"parcelService\", \"Analytics\", function parcelsOverviewController(common, gettextCatalog, parcelService, Analytics) {\n 'ngInject';\n\n var vm = this;\n vm.recentOrders = [];\n\n vm.$onInit = init;\n\n function init() {\n var pageTitle = gettextCatalog.getString('parcel.myParcels');\n common.setTitle(pageTitle);\n Analytics.trackPage('/' + common.localization.getCurrentLanguage() + '/account/parcels', pageTitle);\n\n parcelService.getRecentOrders().then(function (results) {\n return vm.recentOrders = results;\n });\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/parcels/parcels-overview.js\n// module id = 887\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.rentalOverviewComponent = undefined;\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar rentalOverviewComponent = exports.rentalOverviewComponent = {\n template: require('./rental-overview.html'),\n controllerAs: 'vm',\n bindings: {\n tgzId: '<',\n statuses: '<'\n },\n controller: [\"rentalProductsService\", \"config\", \"common\", \"gettextCatalog\", \"$stateParams\", \"authService\", \"$q\", \"Analytics\", function rentalOverviewController(rentalProductsService, config, common, gettextCatalog, $stateParams, authService, $q, Analytics) {\n 'ngInject';\n\n var vm = this;\n vm.$onInit = init;\n vm.productsLoading = false;\n vm.ordersLoading = false;\n vm.recentRentEndedProductsLoading = false;\n vm.loadOrders = loadOrders;\n vm.getDownloadUrl = getDownloadUrl;\n vm.getInRentStatus = getInRentStatus;\n vm.getRentEndedStatus = getRentEndedStatus;\n vm.rentingProductsTotalCount = 0;\n vm.recentRentEndedProductsCount = 0;\n vm.rentEndedProductsTotalCount = 0;\n vm.ordersTotalCount = 0;\n\n function init() {\n common.setTitle(gettextCatalog.getString('My rent overview'));\n Analytics.trackPage('/' + common.localization.getCurrentLanguage() + '/account/rentals', gettextCatalog.getString('My rent overview'));\n loadInRentProducts();\n loadRecentRentEndedProducts();\n loadOrders();\n }\n\n function loadInRentProducts() {\n vm.productsLoading = true;\n var search = {\n skip: 0,\n take: 15,\n statusId: vm.getInRentStatus().id\n };\n rentalProductsService.getRentalHistory(search).then(function (response) {\n vm.products = response.results;\n vm.rentingProductsTotalCount = response.count;\n vm.productsLoading = false;\n });\n }\n\n function loadRecentRentEndedProducts() {\n vm.recentRentEndedProductsLoading = true;\n var search = {\n skip: 0,\n take: 15,\n statusId: vm.getRentEndedStatus().id,\n minDate: (0, _moment2.default)().add(-3, 'months').format('YYYY-MM-DD')\n };\n var totalCountSearch = {\n skip: 0,\n take: 1,\n statusId: vm.getRentEndedStatus().id\n };\n $q.all([rentalProductsService.getRentalHistory(search), rentalProductsService.getRentalHistory(totalCountSearch)]).then(function (response) {\n vm.rentEndedProducts = response[0].results;\n vm.recentRentEndedProductsCount = response[0].count;\n vm.rentEndedProductsTotalCount = response[1].count;\n vm.recentRentEndedProductsLoading = false;\n });\n }\n\n function loadOrders() {\n vm.ordersLoading = true;\n var search = {\n skip: 0,\n take: 15,\n minDate: (0, _moment2.default)().add(-3, 'months').format('YYYY-MM-DD')\n };\n rentalProductsService.searchRentalOrders(search).then(function (response) {\n vm.orders = response.results;\n vm.ordersTotalCount = response.count;\n vm.ordersLoading = false;\n });\n }\n\n function getInRentStatus() {\n return vm.statuses.find(function (x) {\n return x.code === '20';\n });\n }\n\n function getRentEndedStatus() {\n return vm.statuses.find(function (x) {\n return x.code === '40';\n });\n }\n\n function getDownloadUrl(rentalOrder) {\n return config.webApiBaseUrl + ('report/rentalOrderDetail/' + rentalOrder.id + '?lang=' + $stateParams.language + '&access_token=' + authService.accessToken);\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/rental-overview.js\n// module id = 888\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.rentalRequestArchiveComponent = undefined;\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar rentalRequestArchiveComponent = exports.rentalRequestArchiveComponent = {\n template: require('./rental-request-archive.html'),\n controllerAs: 'vm',\n bindings: {\n tgzId: '<'\n },\n controller: [\"$scope\", \"$state\", \"rentalProductsService\", \"config\", \"common\", \"gettextCatalog\", \"Paging\", \"$stateParams\", \"authService\", \"Analytics\", function rentalRequestArchiveController($scope, $state, rentalProductsService, config, common, gettextCatalog, Paging, $stateParams, authService, Analytics) {\n 'ngInject';\n\n var vm = this;\n vm.$onInit = init;\n vm.search = search;\n vm.clear = clear;\n vm.isSearchUsed = isSearchUsed;\n vm.goToPage = goToPage;\n vm.changeItemsPerPage = changeItemsPerPage;\n vm.pageCountList = [12, 24, 36];\n vm.model = null;\n vm.ordersLoading = false;\n vm.years = [];\n vm.paging = Paging.create({\n page: 1,\n itemsPerPage: parseInt($stateParams.pageSize) || vm.pageCountList[0],\n totalItems: 0\n });\n vm.getDownloadUrl = getDownloadUrl;\n\n function init() {\n common.setTitle(gettextCatalog.getString('All my rental requests'));\n Analytics.trackPage('/' + common.localization.getCurrentLanguage() + '/account/rentals/request-archive', gettextCatalog.getString('All my rental requests'));\n\n var currentYear = (0, _moment2.default)().get('year');\n var minYear = 2019;\n vm.years = Array.from({ length: currentYear - minYear + 1 }, function (v, i) {\n return currentYear - i;\n });\n\n loadOrders(vm.paging.itemsPerPage).then(function () {\n listenForLocationChangeSuccess();\n });\n }\n\n function listenForLocationChangeSuccess() {\n $scope.$on('$locationChangeSuccess', function () {\n loadOrders(vm.paging.itemsPerPage);\n });\n }\n\n function loadOrders(itemsPerPage) {\n vm.ordersLoading = true;\n\n var params = getQueryStringParams(itemsPerPage);\n\n return rentalProductsService.searchRentalOrders(params).then(function (response) {\n vm.model = response;\n vm.paging = Paging.create({\n page: params.page,\n itemsPerPage: vm.paging.itemsPerPage,\n totalItems: response.count\n });\n vm.ordersLoading = false;\n });\n }\n\n function getDownloadUrl(rentalOrder) {\n return config.webApiBaseUrl + ('report/rentalOrderDetail/' + rentalOrder.id + '?lang=' + $stateParams.language + '&access_token=' + authService.accessToken);\n }\n\n function getQueryStringParams(itemsPerPage) {\n var page = parseInt($stateParams.page);\n\n return {\n page: page,\n skip: vm.paging.getSkipValue(page, itemsPerPage),\n take: itemsPerPage,\n product: $stateParams.product,\n year: $stateParams.year\n };\n }\n\n function search(page) {\n $state.go('.', {\n page: page || 1,\n pageSize: vm.paging.itemsPerPage,\n product: vm.model.search.product,\n year: vm.model.search.year\n });\n }\n\n function clear() {\n vm.model.search.product = null;\n vm.model.search.year = null;\n\n search();\n }\n\n function isSearchUsed() {\n return isNullOrEmpty($stateParams.statusId) || isNullOrEmpty($stateParams.product) || isNullOrEmpty($stateParams.remark) || isNullOrEmpty($stateParams.year) || isNullOrEmpty($stateParams.depositRefunded);\n }\n\n function isNullOrEmpty(str) {\n return !!str && str.length > 0;\n }\n\n function goToPage(page) {\n if (page === 0 || page > vm.paging.pageCount) {\n return;\n }\n search(page);\n }\n\n function changeItemsPerPage(itemsPerPage) {\n vm.paging.itemsPerPage = itemsPerPage;\n search();\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/rental-request-archive.js\n// module id = 889\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.rentedProductArchiveComponent = undefined;\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar rentedProductArchiveComponent = exports.rentedProductArchiveComponent = {\n template: require('./rented-product-archive.html'),\n controllerAs: 'vm',\n bindings: {\n tgzId: '<',\n statuses: '<'\n },\n controller: [\"$scope\", \"$state\", \"common\", \"gettextCatalog\", \"rentalProductsService\", \"$stateParams\", \"Paging\", \"Analytics\", function rentedProductArchiveController($scope, $state, common, gettextCatalog, rentalProductsService, $stateParams, Paging, Analytics) {\n 'ngInject';\n\n var vm = this;\n vm.$onInit = init;\n vm.search = search;\n vm.clear = clear;\n vm.isSearchUsed = isSearchUsed;\n vm.goToPage = goToPage;\n vm.changeItemsPerPage = changeItemsPerPage;\n vm.pageCountList = [12, 24, 36];\n vm.model = null;\n vm.historyLoading = false;\n vm.years = [];\n vm.paging = Paging.create({\n page: 1,\n itemsPerPage: parseInt($stateParams.pageSize) || vm.pageCountList[0],\n totalItems: 0\n });\n\n function init() {\n common.setTitle(gettextCatalog.getString('All my rented products'));\n Analytics.trackPage('/' + common.localization.getCurrentLanguage() + '/account/rentals/rented-product-archive', gettextCatalog.getString('All my rented products'));\n\n var currentYear = (0, _moment2.default)().get('year');\n var minYear = 2019;\n vm.years = Array.from({ length: currentYear - minYear + 1 }, function (v, i) {\n return currentYear - i;\n });\n\n loadProducts(vm.paging.itemsPerPage).then(function () {\n listenForLocationChangeSuccess();\n });\n }\n\n function listenForLocationChangeSuccess() {\n $scope.$on('$locationChangeSuccess', function () {\n loadProducts(vm.paging.itemsPerPage);\n });\n }\n\n function loadProducts(itemsPerPage) {\n vm.historyLoading = true;\n\n var params = getQueryStringParams(itemsPerPage);\n\n return rentalProductsService.getRentalHistory(params).then(function (response) {\n vm.model = response;\n vm.model.search.status = vm.statuses.find(function (x) {\n return x.id === vm.model.search.statusId;\n });\n vm.model.search.depositRefunded = vm.model.search.depositRefunded !== null ? String(vm.model.search.depositRefunded) : null;\n vm.paging = Paging.create({\n page: params.page,\n itemsPerPage: vm.paging.itemsPerPage,\n totalItems: response.count\n });\n vm.historyLoading = false;\n });\n }\n\n function getQueryStringParams(itemsPerPage) {\n var page = parseInt($stateParams.page);\n\n return {\n page: page,\n skip: vm.paging.getSkipValue(page, itemsPerPage),\n take: itemsPerPage,\n statusId: $stateParams.statusId ? parseInt($stateParams.statusId) : null,\n product: $stateParams.product,\n remark: $stateParams.remark,\n year: $stateParams.year,\n depositRefunded: $stateParams.depositRefunded\n };\n }\n\n function search(page) {\n $state.go('.', {\n page: page || 1,\n pageSize: vm.paging.itemsPerPage,\n product: vm.model.search.product,\n statusId: vm.model.search.status && vm.model.search.status.id,\n year: vm.model.search.year,\n remark: vm.model.search.remark,\n depositRefunded: vm.model.search.depositRefunded\n });\n }\n\n function clear() {\n vm.model.search.product = null;\n vm.model.search.statusId = null;\n vm.model.search.status = null;\n vm.model.search.year = null;\n vm.model.search.remark = null;\n vm.model.search.depositRefunded = null;\n\n search();\n }\n\n function isSearchUsed() {\n return isNullOrEmpty($stateParams.statusId) || isNullOrEmpty($stateParams.product) || isNullOrEmpty($stateParams.remark) || isNullOrEmpty($stateParams.year) || isNullOrEmpty($stateParams.depositRefunded);\n }\n\n function isNullOrEmpty(str) {\n return !!str && str.length > 0;\n }\n\n function goToPage(page) {\n if (page === 0 || page > vm.paging.pageCount) {\n return;\n }\n search(page);\n }\n\n function changeItemsPerPage(itemsPerPage) {\n vm.paging.itemsPerPage = itemsPerPage;\n search();\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/rented-product-archive.js\n// module id = 890\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar rentedProductDetailComponent = exports.rentedProductDetailComponent = {\n template: require('./rented-product-detail.html'),\n controllerAs: 'vm',\n bindings: {\n tgzId: '<',\n rentalHistory: '<'\n },\n controller: [\"common\", \"gettextCatalog\", \"rentalProductsService\", \"Analytics\", function rentedProductDetailController(common, gettextCatalog, rentalProductsService, Analytics) {\n 'ngInject';\n\n var vm = this;\n vm.$onInit = init;\n vm.$onChanges = bindingChanges;\n vm.saveRemark = saveRemark;\n vm.clearRemark = clearRemark;\n vm.isEditingRemark = false;\n vm.remark = '';\n vm.rentalProductsService = rentalProductsService;\n\n function init() {\n var pageTitle = vm.rentalHistory.productName ? gettextCatalog.getString('Rented product detail') + ' ' + vm.rentalHistory.productName + ' - ' + vm.rentalHistory.sellerArticleNumber : gettextCatalog.getString('Rented product detail');\n common.setTitle(pageTitle);\n Analytics.trackPage('/' + common.localization.getCurrentLanguage() + '/account/rentals/rented-product-archive/' + vm.rentalHistory.id, pageTitle);\n }\n\n function bindingChanges(changes) {\n if (changes.rentalHistory && changes.rentalHistory.currentValue) {\n vm.rentalHistory = changes.rentalHistory.currentValue;\n vm.remark = vm.rentalHistory.remark;\n }\n }\n\n function saveRemark() {\n vm.rentalProductsService.setHistoryRemark(vm.rentalHistory.id, vm.rentalHistory.version, vm.remark).then(function (response) {\n vm.rentalHistory = response;\n vm.remark = vm.rentalHistory.remark;\n vm.isEditingRemark = false;\n });\n }\n\n function clearRemark() {\n vm.remark = '';\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/rented-product-detail.js\n// module id = 891\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.accountSettingsComponent = undefined;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar accountSettingsComponent = exports.accountSettingsComponent = {\n template: require('./settings.html'),\n bindings: {\n user: '<'\n },\n controllerAs: 'vm',\n controller: [\"common\", \"authService\", \"$rootScope\", \"userService\", \"Enums\", \"$scope\", \"$window\", \"gettextCatalog\", \"Analytics\", \"ngDialog\", function controller(common, authService, $rootScope, userService, Enums, $scope, $window, gettextCatalog, Analytics, ngDialog) {\n 'ngInject';\n\n var vm = this;\n vm.name = '';\n vm.apbNumber = '';\n vm.tenants = null;\n vm.selectTenant = selectTenant;\n vm.signOut = signOut;\n vm.$onInit = init;\n vm.modifyName = modifyName;\n vm.modifyPassword = modifyPassword;\n vm.modifyEmail = modifyEmail;\n vm.modifyBuyerEmail = modifyBuyerEmail;\n vm.showModifyBuyerEmail = showModifyBuyerEmail;\n vm.getEmailLanguages = getEmailLanguages;\n vm.amr = '';\n vm.showModifyEmail = false;\n vm.newMail = '';\n vm.selectedLanguage = vm.getEmailLanguages()[0];\n vm.selectedLanguageChanged = selectedLanguageChanged;\n vm.showModifyCommunicationLanguage = showModifyCommunicationLanguage;\n vm.modifyCommunicationLanguage = false;\n vm.isFebelcoCustomer = isFebelcoCustomer;\n vm.changeBuyerBase = changeBuyerBase;\n vm.isShopAdmin = null;\n\n //update email/communicationlanguage on enter\n angular.element($window).on('keydown', function (event) {\n if (event.which === 13) {\n if (vm.modifyCommunicationLanguage) {\n vm.selectedLanguageChanged();\n }\n if (vm.showModifyEmail) {\n vm.modifyBuyerEmail();\n }\n }\n });\n\n $scope.$on('$destroy', function () {\n angular.element($window).off('keydown');\n });\n\n function init() {\n common.navigationMenu.clearActiveMenu();\n common.setTitle(gettextCatalog.getString('My account'));\n Analytics.trackPage('/' + common.localization.getCurrentLanguage() + '/account', gettextCatalog.getString('My account'));\n var tenants = authService.customUserInfo.tenants;\n var activeTenant = tenants && tenants.find(function (t) {\n return !!t.secondaryAppUserKey && t.secondaryAppUserKey === authService.user.SAUK || !!t.id && t.id === parseInt(authService.user.BuyerID, 10);\n });\n vm.name = authService.user.display_name;\n vm.apbNumber = activeTenant.apbNumber;\n vm.tenants = tenants;\n vm.pharmacyName = activeTenant.name;\n vm.canViewPackages = activeTenant.canViewPackages;\n vm.email = authService.user.email;\n vm.amr = authService.user.amr;\n vm.showModifyEmail = false;\n vm.communicationLanguage = _lodash2.default.find(Enums.emailLanguages, { 'id': vm.user.communicationLanguageId });\n vm.isShopAdmin = authService.hasClaim('ShopAdmin');\n }\n\n function isFebelcoCustomer() {\n return authService.isFebelcoCustomer;\n }\n\n function selectTenant(tenant) {\n var _this = this;\n\n authService.signIn('/', { tenant: tenant }).catch(function () {\n _this.$log.warn('Signin with tenant failed');\n });\n $rootScope.$broadcast('tenant-changed', { secondaryAppUserKey: tenant });\n }\n\n function signOut() {\n authService.signOut();\n }\n\n function modifyPassword() {\n return common.config.ssoBaseUrl + '/account?tab=password';\n }\n\n function modifyName() {\n return common.config.ssoBaseUrl + '/account?tab=general';\n }\n\n function modifyEmail() {\n return common.config.ssoBaseUrl + '/account?tab=primaryEmail';\n }\n function modifyBuyerEmail() {\n return userService.setBuyerMail(vm.newMail).then(function () {\n userService.getMyAccount().then(function (u) {\n vm.user.mail = u.mail;\n showModifyBuyerEmail();\n });\n });\n }\n function showModifyBuyerEmail() {\n vm.showModifyEmail = !vm.showModifyEmail;\n }\n\n function getEmailLanguages() {\n return Enums.emailLanguages;\n }\n\n function selectedLanguageChanged() {\n userService.setBuyerMailLanguage(vm.selectedLanguage).then(function (res) {\n vm.communicationLanguage = _lodash2.default.find(Enums.emailLanguages, { 'id': res.id });\n vm.modifyCommunicationLanguage = false;\n });\n }\n\n function showModifyCommunicationLanguage() {\n vm.modifyCommunicationLanguage ? vm.modifyCommunicationLanguage = false : vm.modifyCommunicationLanguage = true;\n }\n\n function changeBuyerBase() {\n ngDialog.openConfirm({\n template: '',\n className: 'ngdialog ngdialog-theme-webshop',\n plain: true,\n showClose: true,\n closeByNavigation: true\n }).then(function (result) {\n vm.selectTenant(result.id);\n });\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/account/settings.js\n// module id = 892\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _angular = require('angular');\n\nvar _angular2 = _interopRequireDefault(_angular);\n\nvar _unauthorized = require('./unauthorized');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _module = _angular2.default.module('app.authorization', []).config([\"$stateProvider\", function ($stateProvider) {\n 'ngInject';\n\n $stateProvider\n //.state('sso', {\n // url: '/sso/:responsedata',\n // skipAuthentication: true,\n // resolve: {\n // auth: function ($rootScope, $state, $location, $stateParams, authService) {\n // 'ngInject';\n // //send the user to the correct page if they are authenticated/chose a tenant\n // return authService.processSsoResponseData($location.absUrl())\n // .then(function(result) {\n // if (result.isTenantChanged) {\n // $state.go('home', { language: 'nl', isTenantChanged: true });\n // }\n // else if (!result.hasCurrentTenant && result.toState !== 'unauthorized') {\n // if(authService.identity.tenants.length === 1) { // if there is one tenant automaticly choose that one\n // authService.signInWithTenant(authService.identity.tenants[0].secondaryAppUserKey, false);\n // } \n // else { //else show the select tenant screen\n // $state.go('login');\n // }\n // }\n // else {\n // $state.go(result.toState, result.toParams); \n // } \n // })\n // .catch(function() {\n // $state.go('unauthorized');\n // });\n // }\n // }\n //})\n .state('unauthorized', {\n url: '/unauthorized',\n parent: 'master',\n views: {\n 'main@root': {\n component: 'unauthorized'\n },\n 'header@root': '',\n 'aside@root': '',\n 'menu@root': '',\n 'submenu@root': ''\n },\n data: {\n public: true\n }\n });\n}]).component('unauthorized', _unauthorized.unauthorizedComponent);\n\nexports.default = _module.name;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/authorization/index.js\n// module id = 893\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar unauthorizedComponent = exports.unauthorizedComponent = {\n template: require('./unauthorized.html')\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/authorization/unauthorized.js\n// module id = 894\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar options = {\n template: require('./detail.html'),\n bindings: {\n brand: '<',\n parentState: '<'\n },\n controllerAs: 'vm',\n controller: [\"$scope\", \"productOverviewService\", \"Enums\", \"common\", \"$state\", \"Analytics\", function controller($scope, productOverviewService, Enums, common, $state, Analytics) {\n 'ngInject';\n\n var vm = this;\n vm.productOverviewModel = null;\n vm.newsitems = [];\n vm.$onInit = init;\n\n function init() {\n common.navigationMenu.setBrandsActive();\n var pageTitle = vm.brand.name;\n common.setTitle(pageTitle);\n Analytics.trackPage('/' + common.localization.getCurrentLanguage() + '/brands/' + vm.brand.id, pageTitle);\n\n //put the brandname in the params so it can be used on the news page breadcrumbs\n $state.params.breadcrumbName = vm.brand.name;\n\n vm.productOverviewModel = productOverviewService.init(Enums.searchContext.brand.id);\n productOverviewService.getProductsByBrand(true, vm.productOverviewModel, vm.brand.id).then(function (model) {\n vm.productOverviewModel = model;\n listenForLocationChangeSuccess();\n });\n }\n\n function listenForLocationChangeSuccess() {\n $scope.$on('$locationChangeSuccess', function () {\n productOverviewService.getProductsByBrand(false, vm.productOverviewModel, vm.brand.id).then(function (model) {\n vm.productOverviewModel = model;\n document.body.scrollTop = document.documentElement.scrollTop = 0;\n });\n });\n }\n }]\n};\n\nexports.default = options;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/brand/detail.js\n// module id = 895\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _angular = require('angular');\n\nvar _angular2 = _interopRequireDefault(_angular);\n\nvar _detail = require('./detail');\n\nvar _detail2 = _interopRequireDefault(_detail);\n\nvar _overview = require('./overview');\n\nvar _news = require('./news');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _module = _angular2.default.module('app.brand', []).config([\"$stateProvider\", \"sortProperties\", function ($stateProvider, sortProperties) {\n 'ngInject';\n\n $stateProvider.state('brands', {\n parent: 'general',\n url: '/brands',\n views: {\n 'main@root': {\n component: 'brandOverview'\n }\n },\n resolve: {\n brands: [\"brandService\", function brands(brandService) {\n return brandService.getAll();\n }]\n },\n ncyBreadcrumb: {\n label: '{{\"Brands\" | translate}}'\n },\n data: {\n febelcoCustomer: true\n }\n }).state('brand', {\n parent: 'brands',\n url: '/{id:int}?page&pageSize&sortProperty&sortAsc&filter',\n views: {\n 'main@root': {\n component: 'brand'\n }\n },\n resolve: {\n brand: [\"$stateParams\", \"brandService\", function brand($stateParams, brandService) {\n return brandService.getById($stateParams.id);\n }]\n },\n reloadOnSearch: false,\n params: {\n page: { value: '1', squash: true },\n pageSize: { value: '24', squash: true },\n sortProperty: { value: sortProperties['UnitPrice'].value, squash: true },\n sortAsc: { value: (sortProperties['UnitPrice'].defaultSorting === 'asc').toString(), squash: true },\n filter: { value: '', squash: true },\n breadcrumbName: ''\n },\n ncyBreadcrumb: {\n label: '{{$resolve.brand.name | translate}}'\n },\n data: {\n febelcoCustomer: true\n }\n }).state('brand-news', {\n parent: 'brand',\n url: '/news?page&categoryId&searchValue',\n views: {\n 'main@root': {\n component: 'brandNews'\n }\n },\n resolve: {\n brand: [\"$stateParams\", \"brandService\", function brand($stateParams, brandService) {\n return brandService.getById($stateParams.id);\n }]\n },\n reloadOnSearch: false,\n params: {\n page: { value: '1', squash: true },\n categoryId: { value: '0', squash: true },\n searchValue: { value: '', squash: true }\n },\n data: {\n febelcoCustomer: true\n }\n });\n //.state('brand.product', {\n // url: '/product/:productId',\n // views:{\n // 'main@root':{\n // component: 'product'\n // }\n // },\n // resolve: {\n // product: function($stateParams, productService) {\n // return productService.get($stateParams.productId);\n // }\n // },\n // reloadOnSearch : false,\n // params: {\n // discountId: {\n // value: null,\n // squash: true\n // },\n // loadingOverlay: true\n // },\n // ncyBreadcrumb: {\n // label: '{{$resolve.product.displayName}}'\n // }\n //});\n}]).component('brand', _detail2.default).component('brandOverview', _overview.brandOverviewComponent).component('brandNews', _news.brandNewsComponent);\n\nexports.default = _module.name;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/brand/index.js\n// module id = 896\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar brandNewsComponent = exports.brandNewsComponent = {\n template: require('./news.html'),\n bindings: {\n brand: '<'\n },\n controllerAs: 'vm',\n controller: [\"$scope\", \"common\", \"newsOverviewService\", \"Enums\", \"gettextCatalog\", \"Analytics\", function brandNewsController($scope, common, newsOverviewService, Enums, gettextCatalog, Analytics) {\n 'ngInject';\n\n var vm = this;\n vm.newsOverviewModel = null;\n vm.$onInit = init;\n\n function init() {\n common.navigationMenu.setBrandsActive();\n common.setTitle(gettextCatalog.getString('News for ') + vm.brand.name);\n Analytics.trackPage('/' + common.localization.getCurrentLanguage() + '/brands/news', 'vm.brand.name ' + gettextCatalog.getString('News'));\n newsOverviewService.handleGetNews($scope, Enums.newsContext.brand.id, { brandId: vm.brand.id }).then(function (i) {\n return vm.newsOverviewModel = i;\n });\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/brand/news.js\n// module id = 897\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar brandOverviewComponent = exports.brandOverviewComponent = {\n template: require('./overview.html'),\n bindings: {\n brands: '<'\n },\n controllerAs: 'vm',\n controller: [\"brandService\", \"lodash\", \"$location\", \"gettextCatalog\", \"common\", \"Analytics\", function controller(brandService, lodash, $location, gettextCatalog, common, Analytics) {\n 'ngInject';\n\n var vm = this;\n vm.brandIndexes = getBrandIndexes(vm.brands);\n vm.currentLanguage = common.localization.getCurrentLanguage();\n vm.scrollTo = scrollTo;\n\n common.setTitle(gettextCatalog.getString('Brands'));\n Analytics.trackPage('/' + common.localization.getCurrentLanguage() + '/brands', gettextCatalog.getString('Brands'));\n\n function getBrandIndexes(brands) {\n common.navigationMenu.setBrandsActive();\n var indexes = lodash.uniq(lodash.map(brands, function (b) {\n return b.name.charAt(0).toLowerCase();\n })).sort();\n\n var brandIndexes = lodash.map(indexes, function (i) {\n return {\n 'char': i,\n 'brands': getBrandsByIndex(brands, i)\n };\n });\n\n return brandIndexes;\n }\n\n function getBrandsByIndex(brands, char) {\n return lodash.filter(brands, function (b) {\n return b.name.charAt(0).toLowerCase() === char;\n });\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/brand/overview.js\n// module id = 898\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _angular = require('angular');\n\nvar _angular2 = _interopRequireDefault(_angular);\n\nvar _overview = require('./overview');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _module = _angular2.default.module('app.category', []);\n\n_module.config([\"$stateProvider\", \"sortProperties\", function ($stateProvider, sortProperties) {\n $stateProvider.state('general.products', {\n url: '/products?page&pageSize&sortProperty&sortAsc&filter',\n views: {\n 'main@root': {\n component: 'categoryOverview'\n }\n },\n // reloadOnSearch: true,\n params: {\n page: { value: '1', squash: true, dynamic: true },\n pageSize: { value: window.sessionStorage.getItem('pageSize'), squash: true, dynamic: true },\n sortProperty: { value: sortProperties['Name'].value, squash: true, dynamic: true, array: false },\n sortAsc: { value: (sortProperties['Name'].defaultSorting === 'asc').toString(), squash: true, dynamic: true, array: false },\n filter: { value: '', squash: true, dynamic: true }\n },\n resolve: {\n category: [\"categoryService\", function category(categoryService) {\n return categoryService.getById(0); //id 0 returns all products\n }]\n },\n ncyBreadcrumb: {\n label: '{{\"Products\" | translate}}'\n },\n data: {\n febelcoCustomer: true\n }\n }).state('general.products.category', {\n url: '/category/{categoryId:int}',\n views: {\n 'main@root': {\n component: 'categoryOverview'\n }\n },\n //reloadOnSearch: true,\n params: {\n page: { value: '1', squash: true, dynamic: true },\n pageSize: { value: window.localStorage.getItem('pageSize'), squash: true, dynamic: true },\n sortProperty: { value: sortProperties['Name'].value, squash: true, dynamic: true, array: false },\n sortAsc: { value: (sortProperties['Name'].defaultSorting === 'asc').toString(), squash: true, dynamic: true, array: false },\n filter: { value: '', squash: true, dynamic: true },\n categoryId: { squash: true },\n noReloadFilter: { squash: true }\n },\n resolve: {\n // category: function($stateParams, categoryService) {\n // return categoryService.getById($stateParams.categoryId);\n // }\n },\n ncyBreadcrumb: {\n label: '{{$resolve.category.name}}'\n },\n data: {\n febelcoCustomer: true\n }\n });\n}]);\n\n_module.component('categoryOverview', _overview.categoryOverviewComponent);\n\nexports.default = _module.name;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/category/index.js\n// module id = 899\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar categoryOverviewComponent = exports.categoryOverviewComponent = {\n template: require('./overview.html'),\n bindings: {\n category: '<',\n parentState: '<'\n },\n controllerAs: 'vm',\n controller: [\"$scope\", \"productOverviewService\", \"Enums\", \"common\", \"$stateParams\", \"gettextCatalog\", \"Analytics\", function controller($scope, productOverviewService, Enums, common, $stateParams, gettextCatalog, Analytics) {\n 'ngInject';\n\n var vm = this;\n vm.productOverviewModel = null;\n vm.$onInit = init;\n vm.initialLoad = null;\n vm.onFilterChange = onFilterChange;\n\n function init() {\n\n common.setTitle(gettextCatalog.getString('Products'));\n common.navigationMenu.setProductsActive();\n\n if (!$stateParams.categoryId) {\n vm.categoryId = 0;\n } else {\n vm.categoryId = $stateParams.categoryId;\n }\n\n Analytics.trackPage('/' + common.localization.getCurrentLanguage() + '/products/category/' + vm.categoryId, gettextCatalog.getString('Products'));\n\n //todo put in resolve\n if ($stateParams.noReloadFilter) {\n vm.productOverviewModel = productOverviewService.getProductOverviewModel();\n } else {\n vm.productOverviewModel = productOverviewService.init(Enums.searchContext.category.id);\n }\n productOverviewService.getProductsByCategory($stateParams.noReloadFilter ? false : true, vm.productOverviewModel, vm.categoryId).then(function (model) {\n vm.productOverviewModel = model;\n productOverviewService.setProductOverviewModel(vm.productOverviewModel);\n listenForLocationChangeSuccess();\n });\n }\n\n function listenForLocationChangeSuccess() {\n $scope.$on('$locationChangeSuccess', function () {\n productOverviewService.getProductsByCategory(false, vm.productOverviewModel, vm.categoryId).then(function (model) {\n vm.productOverviewModel = model;\n });\n });\n }\n\n function onFilterChange() {\n productOverviewService.setProductOverviewModel(vm.productOverviewModel);\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/category/overview.js\n// module id = 900\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar certificatesComponent = exports.certificatesComponent = {\n template: require('./certificates.html'),\n controllerAs: 'vm',\n controller: [\"$scope\", \"$state\", \"common\", \"gettextCatalog\", \"certificatesService\", \"$stateParams\", \"Paging\", \"Analytics\", function certificatesController($scope, $state, common, gettextCatalog, certificatesService, $stateParams, Paging, Analytics) {\n 'ngInject';\n\n var vm = this;\n vm.$onInit = init;\n vm.search = search;\n vm.clear = clear;\n vm.goToPage = goToPage;\n vm.changeItemsPerPage = changeItemsPerPage;\n vm.isSearchUsed = isSearchUsed;\n vm.pageCountList = [12, 24, 36];\n vm.model = null;\n vm.certificatesLoading = false;\n vm.paging = Paging.create({\n page: 1,\n itemsPerPage: parseInt($stateParams.pageSize) || vm.pageCountList[0],\n totalItems: 0\n });\n vm.getCoaUrl = getCoaUrl;\n\n function init() {\n var pageTitle = gettextCatalog.getString('Certificates');\n common.setTitle(pageTitle);\n Analytics.trackPage('/' + common.localization.getCurrentLanguage() + '/certificates', pageTitle);\n loadCertificates(vm.paging.itemsPerPage).then(function () {\n listenForLocationChangeSuccess();\n });\n }\n\n function listenForLocationChangeSuccess() {\n $scope.$on('$locationChangeSuccess', function () {\n loadCertificates(vm.paging.itemsPerPage);\n });\n }\n\n function loadCertificates(itemsPerPage) {\n vm.certificatesLoading = true;\n\n var params = getQueryStringParams(itemsPerPage);\n\n return certificatesService.searchCertificates(params).then(function (response) {\n vm.model = response;\n vm.paging = Paging.create({\n page: params.page,\n itemsPerPage: vm.paging.itemsPerPage,\n totalItems: response.count\n });\n vm.certificatesLoading = false;\n });\n }\n\n function getQueryStringParams(itemsPerPage) {\n var page = parseInt($stateParams.page);\n\n return {\n page: page,\n skip: vm.paging.getSkipValue(page, itemsPerPage),\n take: itemsPerPage,\n identification: $stateParams.identification,\n isExpired: false\n };\n }\n\n function search(page) {\n $state.go('.', {\n page: page || 1,\n pageSize: vm.paging.itemsPerPage,\n identification: vm.model.search.identification\n });\n }\n\n function clear() {\n vm.model.search.identification = null;\n\n search();\n }\n\n function goToPage(page) {\n if (page === 0 || page > vm.paging.pageCount) {\n return;\n }\n search(page);\n }\n\n function changeItemsPerPage(itemsPerPage) {\n vm.paging.itemsPerPage = itemsPerPage;\n search();\n }\n\n function getCoaUrl(id) {\n return certificatesService.getCoaUrl(id);\n }\n\n function isSearchUsed() {\n return !!$stateParams.identification && $stateParams.identification.length > 0;\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/certificates/certificates.js\n// module id = 901\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _angular = require('angular');\n\nvar _angular2 = _interopRequireDefault(_angular);\n\nvar _certificates = require('./certificates');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _module = _angular2.default.module('app.certificates', []).config([\"$stateProvider\", function ($stateProvider) {\n 'ngInject';\n\n $stateProvider.state('general.certificates', {\n url: '/certificates?page&pageSize&identification',\n views: {\n 'main@root': {\n component: 'certificates'\n }\n },\n reloadOnSearch: false,\n params: {\n loadingOverlay: false,\n page: {\n value: '1',\n squash: true\n },\n pageSize: {\n value: window.localStorage.getItem('pageSize'),\n squash: true\n },\n identification: {\n value: '',\n squash: true\n }\n },\n ncyBreadcrumb: {\n label: '{{\"Certificates\" | translate}}'\n }\n }).state('root-certificaten', {\n parent: 'root',\n url: '/certificaten',\n onEnter: [\"$state\", function onEnter($state) {\n var language = 'nl';\n\n return $state.target('general.certificates', Object.assign({}, $state.transition.params('to'), {\n language: language\n }));\n }]\n }).state('root-certificats', {\n parent: 'root',\n url: '/certificats',\n onEnter: [\"$state\", function onEnter($state) {\n var language = 'fr';\n\n return $state.target('general.certificates', Object.assign({}, $state.transition.params('to'), {\n language: language\n }));\n }]\n }).state('general-certificaten', {\n parent: 'general',\n url: '/certificaten',\n redirectTo: 'general.certificates'\n }).state('general-certificats', {\n parent: 'general',\n url: '/certificats',\n redirectTo: 'general.certificates'\n });\n}]).component('certificates', _certificates.certificatesComponent);\n\nexports.default = _module.name;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/certificates/index.js\n// module id = 902\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar cartErrorComponent = exports.cartErrorComponent = {\n template: require('./cart-error.html')\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/checkout/cart-error.js\n// module id = 903\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar cartComponent = exports.cartComponent = {\n template: require('./cart.html'),\n bindings: {\n cart: '<',\n parentState: '<'\n },\n controllerAs: 'vm',\n controller: [\"$scope\", \"$state\", \"$stateParams\", \"$timeout\", \"cartService\", \"common\", \"exceptionService\", \"gettextCatalog\", \"dialogService\", \"Analytics\", \"authService\", \"$window\", function checkoutCartController($scope, $state, $stateParams, $timeout, cartService, common, exceptionService, gettextCatalog, dialogService, Analytics, authService, $window) {\n 'ngInject';\n\n var vm = this;\n vm.isLoading = false;\n vm.messages = null;\n vm.removeProducts = removeProducts;\n vm.updateQuantity = updateQuantity;\n vm.quantityChanged = quantityChanged;\n vm.undoChanged = undoChanged;\n vm.removeInactiveProducts = removeInactiveProducts;\n vm.checkout = checkout;\n vm.clear = clear;\n vm.$onInit = init;\n vm.cartUpdated = false;\n vm.productDiscounts = {};\n vm.removeSellerFromCart = removeSellerFromCart;\n\n function init() {\n var tenants = authService.customUserInfo.tenants;\n var activeTenant = tenants && tenants.find(function (t) {\n return !!t.secondaryAppUserKey && t.secondaryAppUserKey === authService.user.SAUK || !!t.id && t.id === parseInt(authService.user.BuyerID, 10);\n });\n vm.apbNumber = activeTenant.apbNumber;\n\n common.navigationMenu.clearActiveMenu();\n common.setTitle(gettextCatalog.getString('Shopping cart'));\n Analytics.trackPage('/' + common.localization.getCurrentLanguage() + '/cart', gettextCatalog.getString('Shopping cart'));\n\n vm.isLoading = true;\n cartService.getFromServer().then(function (cart) {\n vm.cart = cart;\n vm.isLoading = false;\n if (vm.cart) {\n vm.initCart = angular.copy(vm.cart);\n vm.cart.setFocusOnProduct($stateParams.productId);\n }\n\n //update quantity on enter\n angular.element($window).on('keydown', function (event) {\n if (event.which === 13 && vm.addingProducts !== true) {\n vm.updateQuantity();\n }\n });\n });\n }\n\n $scope.$on('$destroy', function () {\n angular.element($window).off('keydown');\n });\n\n function quantityChanged() {\n vm.cartUpdated = true;\n }\n\n function removeSellerFromCart(sellerBaseCodeId) {\n vm.isLoading = true;\n vm.cartUpdated = false;\n\n cartService.removeSellerFromCart(sellerBaseCodeId).then(function (updatedCart) {\n vm.cart = updatedCart;\n vm.initCart = angular.copy(updatedCart);\n vm.isLoading = false;\n }).catch(function () {\n var msg = gettextCatalog.getString('The products could not be removed from your shopping cart');\n exceptionService.logException(msg);\n }).finally(function () {\n vm.isLoading = false;\n });\n }\n\n function removeProducts(products) {\n vm.isLoading = true;\n vm.cartUpdated = false;\n\n cartService.removeProducts(products).then(function (updatedCart) {\n vm.cart = updatedCart;\n vm.initCart = angular.copy(updatedCart);\n vm.isLoading = false;\n }).catch(function () {\n var msg = gettextCatalog.getString('The product could not be removed from your shopping cart');\n exceptionService.logException(msg);\n }).finally(function () {\n vm.isLoading = false;\n });\n }\n\n function updateQuantity() {\n\n vm.isLoading = true;\n vm.cartUpdated = false;\n\n var products = [];\n\n vm.cart.sellers.map(function (seller) {\n products = products.concat(seller.products);\n });\n\n cartService.updateCart(products).then(function (updatedCart) {\n vm.cart = updatedCart;\n vm.initCart = angular.copy(updatedCart);\n }).catch(function () {\n var msg = gettextCatalog.getString('The product quantity could not be updated');\n exceptionService.logException(msg);\n }).finally(function () {\n vm.isLoading = false;\n });\n }\n\n function checkout(number) {\n vm.cart.customerAccountNumber = number;\n angular.forEach(vm.cart.sellers, function (seller) {\n angular.forEach(seller.products, function (product) {\n Analytics.addProduct(product.id, product.displayName, product.type, product.brand, '', product.totalPriceWithDiscount, product.quantity, '', '', {\n dimension1: product.sellerId,\n dimension2: product.sellerName,\n dimension3: product.discountId\n });\n });\n });\n Analytics.trackCheckout(1);\n\n $state.go('checkout-order');\n }\n\n function clear() {\n var title = gettextCatalog.getString('Confirmation');\n var msg = gettextCatalog.getString('Are you sure you want to clear your shopping cart?');\n\n dialogService.confirm($scope, title, msg).then(function () {\n return cartService.clear();\n }).then(function () {\n vm.cart = null;\n });\n }\n\n function undoChanged() {\n vm.cartUpdated = false;\n vm.cart = angular.copy(vm.initCart);\n }\n\n function removeInactiveProducts() {\n vm.isLoading = true;\n vm.cartUpdated = false;\n\n var products = [];\n vm.cart.sellers.map(function (seller) {\n products = products.concat(seller.products);\n });\n\n var inactiveProducts = products.filter(function (product) {\n return product.isExpired === true;\n });\n\n cartService.removeProducts(inactiveProducts).then(function (updatedCart) {\n vm.cart = updatedCart;\n vm.initCart = angular.copy(updatedCart);\n vm.isLoading = false;\n }).catch(function () {\n var msg = gettextCatalog.getString('The product could not be removed from your shopping cart');\n exceptionService.logException(msg);\n }).finally(function () {\n vm.isLoading = false;\n });\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/checkout/cart.js\n// module id = 904\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar cartBySellersComponent = exports.cartBySellersComponent = {\n template: require('./cart-by-sellers.html'),\n bindings: {\n cart: '<',\n updateQuantity: '&',\n removeProduct: '&'\n },\n controllerAs: 'vm'\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/checkout/components/cart-by-sellers.js\n// module id = 905\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar cartProductComponent = exports.cartProductComponent = {\n template: require('./cart-product.html'),\n bindings: {\n product: '=',\n sellerId: '<',\n sellerName: '<',\n isVipSeller: '<',\n removeProducts: '&',\n quantityChanged: '&',\n openProductDiscounts: '&',\n parentState: '<'\n },\n controllerAs: 'vm',\n controller: [\"productService\", \"authService\", function controller(productService, authService) {\n 'ngInject';\n\n var vm = this;\n vm.openProductDiscounts = openProductDiscounts;\n vm.closeProductDiscounts = closeProductDiscounts;\n vm.toggleProductDiscounts = toggleProductDiscounts;\n vm.removeProductsFromList = removeProductsFromList;\n vm.productDiscounts = {};\n vm.isFebelcoCustomer = isFebelcoCustomer;\n\n function openProductDiscounts(product) {\n if (!product.isDisabled) {\n vm.productDiscountsOpen = true;\n if (Object.keys(vm.productDiscounts).length === 0) {\n vm.productDiscountsLoading = true;\n productService.getProductDiscounts(product.id).then(function (result) {\n vm.productDiscountsLoading = false;\n vm.productDiscounts = productService.formatProductDiscount(result);\n });\n }\n }\n }\n\n function toggleProductDiscounts(product) {\n if (vm.product.maxDiscount !== null || vm.product.portalContractTypeCode === 'AGIOS') {\n if (vm.productDiscountsOpen) {\n closeProductDiscounts();\n } else {\n openProductDiscounts(product);\n }\n }\n }\n\n function closeProductDiscounts() {\n vm.productDiscountsOpen = false;\n }\n\n function removeProductsFromList(products) {\n vm.removeProducts({ $event: products });\n }\n\n function isFebelcoCustomer() {\n return authService.isFebelcoCustomer;\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/checkout/components/cart-product.js\n// module id = 906\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar cartTotalPriceDiscountsComponent = exports.cartTotalPriceDiscountsComponent = {\n template: require('./cart-total-price-discounts.html'),\n bindings: {\n close: '&',\n totalPriceDiscounts: '<'\n },\n controllerAs: 'vm',\n controller: [\"discountTypeNames\", function controller(discountTypeNames) {\n 'ngInject';\n\n var vm = this;\n\n // vm.isTotalPriceDiscountId = isTotalPriceDiscountId;\n vm.getDiscountType = getDiscountType;\n vm.isActive = isActive;\n\n function getDiscountType(discountType) {\n return discountTypeNames[discountType].clientValue;\n }\n function isActive(discount) {\n\n return discount.isActive ? 'product-discount is-active' : 'product-discount';\n }\n // function isTotalPriceDiscountId(productDiscount) {\n // return productDiscount.discountId === vm.totalPriceDiscountId ? 'product-discount is-active' : 'product-discount';\n // }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/checkout/components/cart-total-price-discounts.js\n// module id = 907\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar cartConfirmationComponent = exports.cartConfirmationComponent = {\n template: require('./confirmation.html'),\n bindings: {\n disabledSellers: '<',\n orders: '<'\n },\n controllerAs: 'vm',\n controller: [\"common\", \"gettextCatalog\", \"authService\", \"config\", \"$stateParams\", \"userService\", \"Analytics\", function controller(common, gettextCatalog, authService, config, $stateParams, userService, Analytics) {\n 'ngInject';\n\n var vm = this;\n vm.$onInit = init;\n vm.getDownloadUrl = getDownloadUrl;\n vm.ordersWithDeliveryDate = [];\n vm.ordersWithoutDeliveryDate = [];\n vm.mail = null;\n vm.user = null;\n\n function init() {\n common.navigationMenu.clearActiveMenu();\n common.setTitle(gettextCatalog.getString('Order confirmation'));\n Analytics.trackPage('/' + common.localization.getCurrentLanguage() + '/cart/confirmation', gettextCatalog.getString('Order confirmation'));\n\n splitArrayByDeliveryDate();\n userService.getMyAccount().then(function (u) {\n vm.mail = u.mail;\n vm.user = u;\n });\n }\n\n function splitArrayByDeliveryDate() {\n vm.orders.forEach(function (o) {\n if (o.deliveryDate === null) {\n vm.ordersWithDeliveryDate.push(o);\n } else {\n vm.ordersWithoutDeliveryDate.push(o);\n }\n });\n }\n\n function getDownloadUrl(orderId) {\n return config.webApiBaseUrl + ('report/orderDetail/' + orderId + '?lang=' + $stateParams.language + '&access_token=' + authService.accessToken);\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/checkout/confirmation.js\n// module id = 908\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _angular = require('angular');\n\nvar _angular2 = _interopRequireDefault(_angular);\n\nvar _cart = require('./cart');\n\nvar _confirmation = require('./confirmation');\n\nvar _order = require('./order');\n\nvar _cartProduct = require('./components/cart-product');\n\nvar _cartTotalPriceDiscounts = require('./components/cart-total-price-discounts');\n\nvar _cartBySellers = require('./components/cart-by-sellers');\n\nvar _cartError = require('./cart-error');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n//TODO FIX STATE NAME WITH CAMELCASE!\nvar _module = _angular2.default.module('app.checkout', []).config([\"$stateProvider\", function ($stateProvider) {\n 'ngInject';\n\n $stateProvider.state('cart', {\n parent: 'general',\n url: '/cart?productId',\n views: {\n 'main@root': {\n component: 'checkoutCart'\n }\n },\n reloadOnSearch: true,\n params: {\n loadingOverlay: true\n },\n ncyBreadcrumb: {\n label: '{{\"Your shopping cart\" | translate}}'\n }\n }).state('checkout-order', {\n parent: 'cart',\n url: '/order',\n views: {\n 'main@root': {\n component: 'checkoutOrder'\n },\n 'header@root': '',\n 'aside@root': '',\n 'menu@root': '',\n 'submenu@root': ''\n },\n resolve: {\n wholeSalers: [\"cartService\", function wholeSalers(cartService) {\n return cartService.getWholesalers().then(function (whole) {\n var febelco = {\n id: 22168,\n isFebelcoCustomerWholesaler: true,\n isDisabled: true,\n name: 'Febelco'\n };\n whole.push(febelco);\n return whole;\n });\n }],\n customerAccounts: [\"cartService\", function customerAccounts(cartService) {\n return cartService.getCustomerAccounts().then(function (response) {\n return response && response.accounts || [];\n });\n }],\n cart: [\"cartService\", function cart(cartService) {\n return cartService.checkout();\n }]\n },\n params: {\n loadingOverlay: true\n },\n ncyBreadcrumb: {\n label: '{{\"Order\" | translate}}'\n }\n }).state('order-draft', {\n parent: 'cart',\n url: '/order-draft',\n views: {\n 'main@root': {\n component: 'checkoutOrderDraft'\n }\n },\n params: {\n loadingOverlay: true\n }\n }).state('checkout-confirmation', {\n parent: 'cart',\n url: '/confirmation',\n views: {\n 'main@root': {\n component: 'checkoutConfirmation'\n }\n },\n resolve: {\n orders: [\"$state\", \"$stateParams\", \"$timeout\", \"$q\", function orders($state, $stateParams, $timeout, $q) {\n // when there is no orders in the stateParams, go to the order overview\n if ($stateParams.orders && $stateParams.orders.length > 0) {\n return $stateParams.orders;\n } else {\n $timeout(function () {\n return $state.go('order-overview', $stateParams);\n }, 0);\n return $q.reject();\n }\n }],\n disabledSellers: [\"$stateParams\", function disabledSellers($stateParams) {\n return $stateParams.disabledSellers;\n }]\n },\n params: {\n orders: null,\n disabledSellers: null,\n loadingOverlay: true\n },\n ncyBreadcrumb: {\n label: '{{\"Thank you for ordering\" | translate}}'\n }\n }).state('carterror', {\n parent: 'general',\n url: '/carterror',\n views: {\n 'main@root': {\n component: 'cartError'\n }\n },\n data: {\n public: true\n }\n });\n}]).component('checkoutCart', _cart.cartComponent).component('checkoutConfirmation', _confirmation.cartConfirmationComponent).component('checkoutOrder', _order.orderComponent).component('cartProduct', _cartProduct.cartProductComponent).component('cartBySellers', _cartBySellers.cartBySellersComponent).component('cartError', _cartError.cartErrorComponent).component('cartTotalPriceDiscounts', _cartTotalPriceDiscounts.cartTotalPriceDiscountsComponent);\n\nexports.default = _module.name;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/checkout/index.js\n// module id = 909\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar orderComponent = exports.orderComponent = {\n template: require('./order.html'),\n bindings: {\n cart: '<',\n wholeSalers: '<',\n customerAccounts: '<'\n },\n controllerAs: 'vm',\n controller: [\"$rootScope\", \"common\", \"gettextCatalog\", \"cartService\", \"$state\", \"exceptionService\", \"Analytics\", \"authService\", \"userService\", function checkoutOrderController($rootScope, common, gettextCatalog, cartService, $state, exceptionService, Analytics, authService, userService) {\n 'ngInject';\n\n var vm = this;\n vm.$onInit = init;\n vm.createOrders = createOrders;\n vm.specialOrderProducts = [];\n vm.isSpecialOrder = false;\n vm.isCreateOrderDisabled = isCreateOrderDisabled;\n vm.isFebelcoCustomer = isFebelcoCustomer;\n vm.selectedWholeSaler = null;\n vm.selectedCustomerAccount = null;\n vm.hasSpecialOrderProducts = null;\n vm.showCustomerAccounts = false;\n vm.user = null;\n\n function init() {\n common.navigationMenu.clearActiveMenu();\n\n common.setTitle(gettextCatalog.getString('Place order'));\n Analytics.trackPage('/' + common.localization.getCurrentLanguage() + '/cart/order', gettextCatalog.getString('Place order'));\n\n //get apb number\n var tenants = authService.customUserInfo.tenants;\n var activeTenant = tenants && tenants.find(function (t) {\n return !!t.secondaryAppUserKey && t.secondaryAppUserKey === authService.user.SAUK || !!t.id && t.id === parseInt(authService.user.BuyerID, 10);\n });\n vm.apbNumber = activeTenant.apbNumber;\n userService.getMyAccount().then(function (u) {\n vm.user = u;\n });\n //get list of products with special order products\n vm.cart.sellers.forEach(function (seller) {\n seller.products.map(function (sellerProduct) {\n if (sellerProduct.allowSpecial && seller.canOrderSpecial) {\n vm.specialOrderProducts.push(sellerProduct);\n }\n });\n });\n\n vm.specialOrderProducts.length === 0 ? vm.hasSpecialOrderProducts = false : vm.hasSpecialOrderProducts = true;\n\n setDefaultWholeSaler();\n setShowCustomerAccounts();\n setDefaultCustomerAccount();\n }\n\n function setDefaultWholeSaler() {\n vm.selectedWholeSaler = vm.wholeSalers.find(function (wholeSaler) {\n return String(wholeSaler.id) === authService.defaultWholesalerId;\n });\n }\n\n function setShowCustomerAccounts() {\n var hasMultipleCustomerAccounts = vm.customerAccounts.length > 1;\n var hasFebelcoSellerProducts = !!vm.cart.sellers.find(function (seller) {\n return seller.isVipSeller;\n });\n\n vm.showCustomerAccounts = hasFebelcoSellerProducts && hasMultipleCustomerAccounts;\n }\n\n function setDefaultCustomerAccount() {\n\n if (vm.customerAccounts && vm.customerAccounts.length) {\n var defaultAccount = vm.customerAccounts.find(function (x) {\n return x.number === authService.user.FebelcoCustomerNumber;\n });\n vm.selectedCustomerAccount = defaultAccount || vm.customerAccounts[0];\n }\n }\n\n function isFebelcoCustomer() {\n return authService.isFebelcoCustomer;\n }\n\n function createOrders() {\n\n angular.forEach(vm.cart.sellers, function (seller) {\n angular.forEach(seller.products, function (product) {\n Analytics.addProduct(product.id, product.name, product.type, product.brand, '', product.totalPriceWithDiscount, product.quantity, '', '', {\n sellerId: product.sellerId,\n sellerName: product.sellerName,\n discountId: product.discountId\n });\n });\n });\n\n cartService.createOrders(vm.isSpecialOrder, vm.selectedWholeSaler, vm.selectedCustomerAccount).then(function (orders) {\n orders.forEach(function (order) {\n Analytics.trackTransaction(order.orderNumber, order.sellerName, order.totalPrice, '', '', '', '', '', '');\n });\n cartService.getFromServerCheckoutCart().then(function (cart) {\n $state.go('checkout-confirmation', {\n orders: orders,\n disabledSellers: cart.disabledSellers\n });\n });\n }).catch(function () {\n var msg = gettextCatalog.getString('An error occurred during the confirmation of the order. Please contact the customer support.');\n exceptionService.logException(msg);\n });\n }\n\n function isCreateOrderDisabled() {\n if (vm.isFebelcoCustomer()) {\n if (vm.hasSpecialOrderProducts) {\n return vm.isSpecialOrder ? false : true;\n } else {\n return false;\n }\n } else {\n return vm.selectedWholeSaler ? false : true;\n }\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/checkout/order.js\n// module id = 910\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar addressComponent = exports.addressComponent = {\n template: require('./address.html'),\n bindings: {\n address: '<'\n },\n controllerAs: 'vm'\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/common/address.js\n// module id = 911\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar contactPersonComponent = exports.contactPersonComponent = {\n template: require('./contact-person.html'),\n bindings: {\n contact: '<'\n },\n controllerAs: 'vm'\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/common/contact-person.js\n// module id = 912\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar febDatePickerComponent = exports.febDatePickerComponent = {\n transclude: true,\n template: require('./date-picker.html'),\n bindings: {\n value: '=',\n maxDate: '<',\n minDate: '<',\n onChange: '&'\n },\n controllerAs: 'vm',\n controller: function controller() {\n var vm = this;\n vm.valueChanged = valueChanged;\n\n function valueChanged(event) {\n vm.onChange({ $event: event });\n }\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/common/date-picker.js\n// module id = 913\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar confirmDialogComponent = exports.confirmDialogComponent = {\n transclude: true,\n template: require('./confirm-dialog.html'),\n bindings: {\n message: '@?',\n messageTitle: '@?',\n onConfirm: '&',\n onReject: '&',\n onCancel: '&'\n },\n controllerAs: 'vm',\n controller: function controller() {\n var vm = this;\n vm.confirm = confirm;\n vm.reject = reject;\n vm.cancel = cancel;\n\n function confirm() {\n vm.onConfirm();\n }\n function reject() {\n vm.onReject();\n }\n function cancel() {\n vm.onCancel();\n }\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/common/dialogs/confirm-dialog.js\n// module id = 914\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar unsavedChangesDialogComponent = exports.unsavedChangesDialogComponent = {\n transclude: true,\n template: require('./unsaved-changes-dialog.html'),\n bindings: {\n onDiscard: '&',\n onCancel: '&'\n },\n controllerAs: 'vm',\n controller: function controller() {\n var vm = this;\n vm.discard = discard;\n vm.cancel = cancel;\n\n function discard() {\n vm.onDiscard();\n }\n function cancel() {\n vm.onCancel();\n }\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/common/dialogs/unsaved-changes-dialog.js\n// module id = 915\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar folderCollapseComponent = exports.folderCollapseComponent = {\n transclude: true,\n template: require('./folder-collapse.html'),\n bindings: {\n folderTitle: '<',\n isOpen: '<',\n showCount: '',\n itemCount: '',\n itemLabel: ''\n },\n controllerAs: 'vm',\n controller: function controller() {\n var vm = this;\n vm.folderOpen = true;\n vm.toggleFolder = toggleFolder;\n vm.setFolderClass = setFolderClass;\n vm.$onInit = init;\n\n function init() {\n vm.folderOpen = vm.isOpen ? true : false;\n }\n\n function toggleFolder() {\n vm.folderOpen = vm.folderOpen ? false : true;\n }\n\n function setFolderClass() {\n return vm.folderOpen ? 'folder is-open' : 'folder';\n }\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/common/folder-collapse.js\n// module id = 916\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n// import angular from 'angular';\n\nvar galleryComponent = exports.galleryComponent = {\n template: require('./gallery.html'),\n bindings: {\n gallerySliderSettings: '<',\n gallery: '<'\n },\n controllerAs: 'vm',\n controller: [\"$stateParams\", function controller($stateParams) {\n 'ngInject';\n\n var vm = this;\n vm.galleryId = $stateParams['#'];\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/common/gallery.js\n// module id = 917\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar helpQuestionComponent = exports.helpQuestionComponent = {\n template: '{{vm.question.question}}',\n bindings: {\n question: '<'\n },\n controllerAs: 'vm',\n controller: function controller() {\n var vm = this;\n vm.$onInit = init;\n\n function init() {}\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/common/help-question.js\n// module id = 918\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _angular = require('angular');\n\nvar _angular2 = _interopRequireDefault(_angular);\n\nvar _address = require('./address');\n\nvar _pager = require('./pager');\n\nvar _totals = require('./totals');\n\nvar _folderCollapse = require('./folder-collapse');\n\nvar _helpQuestion = require('./help-question');\n\nvar _contactPerson = require('./contact-person');\n\nvar _typeahead = require('./typeahead');\n\nvar _gallery = require('./gallery');\n\nvar _links = require('./links');\n\nvar _datePicker = require('./date-picker');\n\nvar _confirmDialog = require('./dialogs/confirm-dialog');\n\nvar _unsavedChangesDialog = require('./dialogs/unsaved-changes-dialog');\n\nvar _treeView = require('./tree-view');\n\nvar _treeViewItem = require('./tree-view-item');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _module = _angular2.default.module('app.commoncomponents', []).component('address', _address.addressComponent).component('pager', _pager.pagerComponent).component('totals', _totals.totalsComponent).component('folderCollapse', _folderCollapse.folderCollapseComponent).component('helpQuestion', _helpQuestion.helpQuestionComponent).component('typeahead', _typeahead.typeaheadComponent).component('contactPerson', _contactPerson.contactPersonComponent).component('gallery', _gallery.galleryComponent).component('links', _links.linksComponent).component('fbUnsavedChangesDialog', _unsavedChangesDialog.unsavedChangesDialogComponent).component('fbConfirmDialog', _confirmDialog.confirmDialogComponent).component('fbTreeView', _treeView.treeViewComponent).component('fbTreeViewItem', _treeViewItem.treeViewItemComponent).component('fbDatePicker', _datePicker.febDatePickerComponent);\n\nexports.default = _module.name;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/common/index.js\n// module id = 919\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n// import angular from 'angular';\n\nvar linksComponent = exports.linksComponent = {\n template: require('./links.html'),\n bindings: {\n links: '<',\n sellerId: '<'\n },\n controllerAs: 'vm'\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/common/links.js\n// module id = 920\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar pagerComponent = exports.pagerComponent = {\n template: require('./pager.html'),\n bindings: {\n paging: '<',\n goToPage: '&'\n },\n controllerAs: 'vm'\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/common/pager.js\n// module id = 921\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar totalsComponent = exports.totalsComponent = {\n template: require('./totals.html'),\n bindings: {\n totals: '<'\n },\n controllerAs: 'vm'\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/common/totals.js\n// module id = 922\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar treeViewItemComponent = exports.treeViewItemComponent = {\n template: require('./tree-view-item.html'),\n bindings: {\n category: '<',\n changeFilters: '&',\n level: '<',\n item: '<',\n isLink: '<'\n },\n controllerAs: 'vm',\n controller: function controller() {\n 'ngInject';\n\n var vm = this;\n vm.treeViewOpen = vm.item.isSelected || vm.item.childSelected ? true : false;\n vm.getLevel = getLevel;\n vm.onChangeFilters = onChangeFilters;\n vm.openTreeView = openTreeView;\n\n function getLevel() {\n return parseInt(vm.level) + 1;\n }\n\n function onChangeFilters($event) {\n vm.changeFilters({ $event: $event });\n }\n\n function openTreeView() {\n vm.treeViewOpen ? vm.treeViewOpen = false : vm.treeViewOpen = true;\n }\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/common/tree-view-item.js\n// module id = 923\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar treeViewComponent = exports.treeViewComponent = {\n template: require('./tree-view.html'),\n bindings: {\n items: '<',\n level: '<',\n isLink: '<',\n limit: '<',\n category: '<',\n changeFilters: '&'\n },\n controllerAs: 'vm',\n controller: function controller() {\n 'ngInject';\n\n var vm = this;\n vm.onChangeFilters = onChangeFilters;\n\n function onChangeFilters($event) {\n vm.changeFilters({ $event: $event });\n }\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/common/tree-view.js\n// module id = 924\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.typeaheadComponent = undefined;\n\nvar _angular = require('angular');\n\nvar _angular2 = _interopRequireDefault(_angular);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar typeaheadComponent = exports.typeaheadComponent = {\n template: require('./typeahead.html'),\n bindings: {\n searchString: '=',\n hasFocus: '=',\n searchSource: '&',\n onChange: '&',\n displayContext: '<',\n inputId: '<',\n isDisabled: '<',\n inputStyle: '<'\n },\n controllerAs: 'vm',\n controller: [\"$timeout\", function controller($timeout) {\n 'ngInject';\n\n var vm = this;\n\n _angular2.default.element(vm.inputId + '.input-sm').siblings('input.tt-hint').addClass('hint-small');\n _angular2.default.element(vm.inputId + '.input-lg').siblings('input.tt-hint').addClass('hint-large');\n\n // TYPE AHEAD\n $timeout(function () {\n //DOM has finished rendering\n _angular2.default.element('#' + vm.inputId).typeahead({\n items: 'all',\n source: function source(query, process) {\n vm.searchSource({ query: query }).then(function (results) {\n return process(results);\n });\n },\n updater: function updater(item) {\n vm.onChange({ item: item });\n return item;\n },\n displayText: function displayText(item) {\n //make dynamic with input binding and scope.eval\n switch (vm.displayContext) {\n case 'CITY':\n return item.postalCode + ' - ' + item.name;\n case 'STREET':\n return '' + item.name;\n default:\n return item.nationalNumber + ' - ' + item.name;\n }\n }\n });\n });\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/common/typeahead.js\n// module id = 925\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar discountsComponent = exports.discountsComponent = {\n template: require('./discounts.html'),\n bindings: {\n parentState: '<'\n },\n controllerAs: 'vm',\n controller: [\"$scope\", \"productOverviewService\", \"Enums\", \"common\", \"gettextCatalog\", \"Analytics\", \"$stateParams\", \"$state\", function controller($scope, productOverviewService, Enums, common, gettextCatalog, Analytics, $stateParams, $state) {\n 'ngInject';\n\n var vm = this;\n vm.productOverviewModel = null;\n vm.$onInit = init;\n vm.onFilterChange = onFilterChange;\n vm.setIsBlackFriday = setIsBlackFriday;\n vm.isBlackFriday = false;\n vm.setBlackFriday = setBlackFriday;\n\n function setIsBlackFriday(value) {\n return vm.isBlackFriday = value;\n }\n\n function setBlackFriday() {\n if ($stateParams.filter.indexOf('10_0') !== -1) {\n $state.current.ncyBreadcrumb.label = gettextCatalog.getString('Black Friday');\n $state.current.ncyBreadcrumbLabel = gettextCatalog.getString('Black Friday');\n $state.current.ncyBreadcrumbLink = '/' + common.localization.getCurrentLanguage() + '/discounts?filter=10_0';\n setIsBlackFriday(true);\n } else {\n $state.current.ncyBreadcrumb.label = gettextCatalog.getString('Discounts');\n $state.current.ncyBreadcrumbLabel = gettextCatalog.getString('Discounts');\n $state.current.ncyBreadcrumbLink = '/' + common.localization.getCurrentLanguage() + '/discounts';\n setIsBlackFriday(false);\n }\n }\n function init() {\n common.navigationMenu.setDiscountsActive();\n common.setTitle(gettextCatalog.getString('Discounts'));\n Analytics.trackPage('/' + common.localization.getCurrentLanguage() + '/discounts', gettextCatalog.getString('Discounts'));\n if ($stateParams.noReloadFilter) {\n vm.productOverviewModel = productOverviewService.getProductOverviewModel();\n } else {\n vm.productOverviewModel = productOverviewService.init(Enums.searchContext.discount.id);\n }\n setBlackFriday();\n\n productOverviewService.getProductsByDiscounts($stateParams.noReloadFilter ? false : true, vm.productOverviewModel).then(function (model) {\n vm.productOverviewModel = model;\n productOverviewService.setProductOverviewModel(vm.productOverviewModel);\n listenForLocationChangeSuccess();\n });\n }\n\n function listenForLocationChangeSuccess() {\n $scope.$on('$locationChangeSuccess', function () {\n productOverviewService.getProductsByDiscounts(false, vm.productOverviewModel).then(function (model) {\n vm.productOverviewModel = model;\n setBlackFriday();\n });\n });\n }\n\n function onFilterChange() {\n $state.current.ncyBreadcrumb.label = gettextCatalog.getString('Discounts');\n $state.current.ncyBreadcrumbLabel = gettextCatalog.getString('Discounts');\n $state.current.ncyBreadcrumbLink = '/' + common.localization.getCurrentLanguage() + '/discounts';\n productOverviewService.setProductOverviewModel(vm.productOverviewModel);\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/discount/discounts.js\n// module id = 926\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar discounttypeComponent = exports.discounttypeComponent = {\n template: require('./discounttype.html'),\n bindings: {\n discounttype: '<',\n parentState: '<'\n },\n controllerAs: 'vm',\n controller: [\"$scope\", \"productOverviewService\", \"Enums\", \"common\", \"Analytics\", \"gettextCatalog\", \"$stateParams\", function controller($scope, productOverviewService, Enums, common, Analytics, gettextCatalog, $stateParams) {\n 'ngInject';\n\n var vm = this;\n vm.productOverviewModel = null;\n vm.$onInit = init;\n vm.onFilterChange = onFilterChange;\n\n //TODO is this the same as discount.js? use same component?\n function init() {\n common.navigationMenu.setDiscountsActive();\n\n var pageTitle = vm.discounttype.name;\n common.setTitle(pageTitle);\n Analytics.trackPage('/' + common.localization.getCurrentLanguage() + '/discounts/discounttype/' + vm.discounttype.id, pageTitle);\n\n if ($stateParams.noReloadFilter) {\n vm.productOverviewModel = productOverviewService.getProductOverviewModel();\n } else {\n vm.productOverviewModel = productOverviewService.init(Enums.searchContext.discount.id);\n }\n\n productOverviewService.getProductsByDiscounts($stateParams.noReloadFilter ? false : true, vm.productOverviewModel, vm.discounttype.id).then(function (model) {\n vm.productOverviewModel = model;\n productOverviewService.setProductOverviewModel(vm.productOverviewModel);\n listenForLocationChangeSuccess();\n });\n }\n\n function listenForLocationChangeSuccess() {\n $scope.$on('$locationChangeSuccess', function () {\n productOverviewService.getProductsByDiscounts(false, vm.productOverviewModel, vm.discounttype.id).then(function (model) {\n vm.productOverviewModel = model;\n });\n });\n }\n\n function onFilterChange() {\n productOverviewService.setProductOverviewModel(vm.productOverviewModel);\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/discount/discounttype.js\n// module id = 927\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _angular = require('angular');\n\nvar _angular2 = _interopRequireDefault(_angular);\n\nvar _discounts = require('./discounts');\n\nvar _discounttype = require('./discounttype');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _module = _angular2.default.module('app.discount', []).config([\"$stateProvider\", \"sortProperties\", function ($stateProvider, sortProperties) {\n 'ngInject';\n\n $stateProvider.state('general.discounts', {\n url: '/discounts?page&pageSize&sortProperty&sortAsc&filter',\n views: {\n 'main@root': {\n component: 'discounts'\n }\n },\n //reloadOnSearch : false,\n params: {\n page: { value: '1', squash: true, dynamic: true },\n pageSize: { value: window.localStorage.getItem('pageSize'), squash: false, dynamic: true },\n sortProperty: { value: sortProperties['DiscountDate'].value, squash: true, dynamic: true, array: false },\n sortAsc: { value: (sortProperties['DiscountDate'].defaultSorting === 'asc').toString(), squash: true, dynamic: true, array: false },\n filter: { value: '', squash: true, dynamic: true\n //specificDateFilter : {value:'',squash: true, dynamic: true}\n } },\n ncyBreadcrumb: {\n label: '{{\"Discounts\" | translate}}'\n }\n }).state('general.discounts.discounttype', {\n url: '/discounttype/{id:int}',\n views: {\n 'main@root': {\n component: 'discounttype'\n }\n },\n resolve: {\n discounttype: [\"$stateParams\", \"discounttypeService\", function discounttype($stateParams, discounttypeService) {\n 'ngInject';\n\n return discounttypeService.get(parseInt($stateParams.id));\n }]\n },\n //loadOnSearch : false,\n params: {\n page: { value: '1', squash: true, dynamic: true },\n pageSize: { value: window.localStorage.getItem('pageSize'), squash: true, dynamic: true },\n sortProperty: { value: sortProperties['DiscountDate'].value, squash: true, dynamic: true, array: false },\n sortAsc: { value: (sortProperties['DiscountDate'].defaultSorting === 'asc').toString(), squash: true, dynamic: true, array: false },\n filter: { value: '', squash: true, dynamic: true },\n noReloadFilter: { squash: true }\n },\n ncyBreadcrumb: {\n label: '{{$resolve.discounttype.name}}'\n }\n }).state('seller.discounts.discounttype', {\n url: '/discounttype/{id:int}?page&pageSize&sortProperty&sortAsc&filter',\n views: {\n 'main@root': {\n component: 'discounttype'\n }\n },\n resolve: {\n discounttype: [\"$stateParams\", \"discounttypeService\", function discounttype($stateParams, discounttypeService) {\n 'ngInject';\n\n return discounttypeService.get(parseInt($stateParams.id));\n }]\n },\n reloadOnSearch: false,\n params: {\n page: { value: '1', squash: true },\n pageSize: { value: '24', squash: true },\n sortProperty: { value: sortProperties['DiscountDate'].value, squash: true },\n sortAsc: { value: (sortProperties['DiscountDate'].defaultSorting === 'asc').toString(), squash: true },\n filter: { value: '', squash: true },\n noReloadFilter: { squash: true }\n },\n ncyBreadcrumb: {\n label: '{{$resolve.discounttype.name}}'\n }\n });\n}]).component('discounts', _discounts.discountsComponent).component('discounttype', _discounttype.discounttypeComponent);\n\nexports.default = _module.name;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/discount/index.js\n// module id = 928\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar errorComponent = exports.errorComponent = {\n template: require('./error.html'),\n controllerAs: 'vm',\n controller: [\"common\", \"$stateParams\", \"$timeout\", \"$state\", \"Analytics\", \"gettextCatalog\", function controller(common, $stateParams, $timeout, $state, Analytics, gettextCatalog) {\n 'ngInject';\n\n var vm = this;\n vm.errormessage = $stateParams.message || '404 - Page not found';\n vm.$onInit = init;\n common.navigationMenu.clearActiveMenu();\n\n function init() {\n common.setTitle(gettextCatalog.getString('Error'));\n Analytics.trackPage('/' + common.localization.getCurrentLanguage() + '/error', 'Error');\n\n $timeout(function () {\n $state.go('home');\n }, 300000);\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/error/error.js\n// module id = 929\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _angular = require('angular');\n\nvar _angular2 = _interopRequireDefault(_angular);\n\nvar _error = require('./error');\n\nvar _productNotFound = require('./product-not-found');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _module = _angular2.default.module('app.error', ['ng']).config([\"$stateProvider\", function ($stateProvider) {\n 'ngInject';\n\n $stateProvider.state('error', {\n parent: 'master',\n url: '/error',\n views: {\n 'main@root': {\n component: 'error'\n },\n 'header@root': '',\n 'aside@root': '',\n 'menu@root': '',\n 'submenu@root': '',\n 'footer@root': ''\n },\n params: {\n message: null\n },\n data: {\n public: true\n }\n }).state('error-product', {\n parent: 'master',\n url: '/productNotFound',\n views: {\n 'main@root': {\n component: 'productNotFound'\n },\n 'header@root': '',\n 'aside@root': '',\n 'menu@root': '',\n 'submenu@root': '',\n 'footer@root': ''\n },\n data: {\n public: true\n }\n });\n}]).component('error', _error.errorComponent).component('productNotFound', _productNotFound.productNotFoundComponent);\n\nexports.default = _module.name;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/error/index.js\n// module id = 930\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar productNotFoundComponent = exports.productNotFoundComponent = {\n template: require('./product-not-found.html'),\n controllerAs: 'vm',\n controller: [\"common\", \"$stateParams\", \"$timeout\", \"$state\", \"Analytics\", \"gettextCatalog\", function controller(common, $stateParams, $timeout, $state, Analytics, gettextCatalog) {\n 'ngInject';\n\n var vm = this;\n vm.errormessage = $stateParams.message || '404 - Page not found';\n vm.$onInit = init;\n common.navigationMenu.clearActiveMenu();\n\n function init() {\n common.setTitle(gettextCatalog.getString('Product not found'));\n Analytics.trackPage('/' + common.localization.getCurrentLanguage() + '/productNotFound', gettextCatalog.getString('Product not found'));\n\n $timeout(function () {\n $state.go('home');\n }, 5000);\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/error/product-not-found.js\n// module id = 931\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar fastOrderDetailComponent = exports.fastOrderDetailComponent = {\n template: require('./detail.html'),\n controllerAs: 'vm',\n controller: [\"cartService\", \"$scope\", \"$state\", \"toastr\", \"gettextCatalog\", \"productService\", \"common\", \"Analytics\", function controller(cartService, $scope, $state, toastr, gettextCatalog, productService, common, Analytics) {\n 'ngInject';\n\n var vm = this;\n vm.addProductToList = addProductToList;\n vm.deleteProductFromList = deleteProductFromList;\n vm.addToShoppingCart = addToShoppingCart;\n vm.clearList = clearList;\n vm.quantity = 1;\n vm.searchString = null;\n vm.isLoading = false;\n vm.products = [];\n vm.errors = {};\n vm.productNotfound = true;\n vm.stateName = null;\n vm.searchProducts = searchProducts;\n vm.productSearchChanged = productSearchChanged;\n vm.isAddingToCart = false;\n vm.hasFocus = true;\n vm.$onInit = init;\n $scope.forms = {};\n\n function init() {\n common.setTitle(gettextCatalog.getString('Fast Order'));\n Analytics.trackPage('/' + common.localization.getCurrentLanguage() + '/fast-order', gettextCatalog.getString('Fast Order'));\n }\n\n function searchProducts(query) {\n return productService.searchProducts(query, 10);\n }\n\n function productSearchChanged(item) {\n vm.selectedProduct = item;\n }\n\n // UPLOAD CSV\n $scope.$watch('vm.file', function () {\n if (vm.file) {\n uploadProductList();\n }\n });\n\n this.checkError = function (product) {\n if (product.hasQuantityError) {\n product.hasQuantityError = false;\n }\n };\n\n function uploadProductList() {\n vm.isLoading = true;\n vm.errors.fileUpload = false;\n vm.errors.shoppingCartAdd = false;\n\n productService.uploadProductList(vm.file).then(function (products) {\n products.forEach(function (product) {\n vm.isLoading = false;\n\n if (product.quantity <= 0) {\n vm.errors.amount = true;\n }\n if (!product.quantity) {\n vm.errors.quantity = true;\n }\n if (!product.name) {\n vm.errors.productError = true;\n }\n\n //check if product is in list\n var data = vm.products.find(function (elem) {\n if (product.id === null) {\n return null;\n } else if (elem.id === product.id) {\n elem.quantity += product.quantity;\n return elem;\n }\n });\n\n if (!data) {\n vm.products.push(product);\n }\n //check for errors\n });\n if (!products.length) {\n vm.isLoading = false;\n vm.errors.emptyCsv = true;\n }\n Analytics.trackEvent('FastOrder', 'productListUploaded', 'productListUploaded', 0, true, { fileSize: vm.file.size + 'B' });\n }).catch(function (ex) {\n vm.isLoading = false;\n vm.errors.fileUpload = true;\n Analytics.trackException(ex, true);\n });\n }\n\n // PRODUCT OPERATIONS\n\n function addProductToList() {\n // Quickfix if no procduct is selected. trackjs issue (https://my.trackjs.com/shared/MTdlMGNmYThlNTg3NGZjNDk1MDY0MTFmYzg2YmVjMWY)\n if (!vm.selectedProduct) {\n return;\n }\n\n changeFocus();\n\n vm.errors.shoppingCartAdd = false;\n if (vm.quantity <= 0) {\n vm.errors.amount = true;\n } else {\n //check if product is in list\n var data = vm.products.find(function (elem, index) {\n if (elem.id === vm.selectedProduct.id) {\n elem.quantity += vm.quantity;\n vm.products.splice(index, 1);\n vm.products.unshift(elem);\n return elem;\n }\n });\n if (!data) {\n vm.selectedProduct.quantity = vm.quantity;\n vm.products.unshift(vm.selectedProduct);\n }\n\n vm.quantity = 1;\n vm.searchString = null;\n vm.selectedProduct = null;\n vm.errors.amount = false;\n vm.errors.fileUpload = false;\n }\n }\n\n function changeFocus() {\n vm.hasFocus === true ? vm.hasFocus = false : vm.hasFocus = true;\n }\n\n function deleteProductFromList(product) {\n vm.products.splice(vm.products.findIndex(function (elem) {\n return elem.id === product.id;\n }), 1);\n\n if (vm.products.length === 0) {\n vm.errors = {};\n }\n }\n\n function clearList() {\n vm.errors = {};\n vm.products = [];\n }\n\n function addToShoppingCart() {\n $scope.forms.productOverviewForm.$setPristine();\n vm.isAddingToCart = true;\n vm.productsForCart = [];\n vm.products.map(function (product) {\n if (product.name && product.name !== '' && product.nationalNumber && product.quantity) {\n vm.productsForCart.push(product);\n }\n });\n\n vm.errors = {};\n vm.products = [];\n\n cartService.quickAddProducts(vm.productsForCart).then(function () {\n vm.productsForCart = [];\n vm.isAddingToCart = false;\n\n Analytics.trackEvent('FastOrder', 'addedFastOrderProductsToCart', 'addedFastOrderProductsToCart', 0, true, {});\n\n toastr.success(gettextCatalog.getString('Added products to your shoppingcart'), '', {\n progressBar: true,\n timeOut: 5000,\n extendedTimeOut: 1000,\n closeButton: true\n });\n\n $state.go('cart');\n }).catch(function () {\n toastr.error(gettextCatalog.getString('An error occured when adding products to your shoppingcart, please try again'), '', {\n progressBar: true,\n timeOut: 5000,\n extendedTimeOut: 1000,\n closeButton: true\n });\n\n vm.isAddingToCart = false;\n vm.errors.shoppingCartAdd = true;\n });\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/fast-order/detail.js\n// module id = 932\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _angular = require('angular');\n\nvar _angular2 = _interopRequireDefault(_angular);\n\nvar _detail = require('./detail');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _module = _angular2.default.module('app.fastOrder', []).config([\"$stateProvider\", function ($stateProvider) {\n 'ngInject';\n\n $stateProvider.state('fast-order', {\n parent: 'general',\n url: '/fast-order',\n views: {\n 'main@root': {\n component: 'fastOrderDetail'\n }\n },\n ncyBreadcrumb: {\n label: '{{\"Fast order\" | translate}}'\n }\n });\n}]).component('fastOrderDetail', _detail.fastOrderDetailComponent);\n\nexports.default = _module.name;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/fast-order/index.js\n// module id = 933\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar helpComponent = exports.helpComponent = {\n template: require('./help.html'),\n bindings: {\n helpCategories: '<',\n helpQuestion: '<'\n },\n controllerAs: 'vm',\n controller: [\"$stateParams\", \"common\", \"Analytics\", \"gettextCatalog\", function controller($stateParams, common, Analytics, gettextCatalog) {\n 'ngInject';\n\n var vm = this;\n vm.$onInit = init;\n vm.questionId = 1;\n\n function init() {\n common.setTitle(gettextCatalog.getString('FAQ'));\n Analytics.trackPage('/' + common.localization.getCurrentLanguage() + '/help', gettextCatalog.getString('FAQ'));\n\n vm.questionCode = $stateParams.questionCode ? $stateParams.questionCode : 'orderprocess';\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/help/help.js\n// module id = 934\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _angular = require('angular');\n\nvar _angular2 = _interopRequireDefault(_angular);\n\nvar _help = require('./help');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n//import {helpDetailComponent} from './detail'; \n//import {helpContactComponent} from './components/help-contact';\n//import {helpContactBoxComponent} from './components/help-contact-box';\n//import {helpContactFaqBoxComponent} from './components/help-contact-faq-box';\n\nvar _module = _angular2.default.module('app.help', []).config([\"$stateProvider\", function ($stateProvider) {\n 'ngInject';\n\n $stateProvider.state('help', {\n parent: 'general',\n url: '/help/{questionCode}',\n views: {\n 'main@root': {\n component: 'help'\n }\n },\n resolve: {\n helpCategories: [\"helpService\", function helpCategories(helpService) {\n return helpService.getHelpCategories();\n }]\n },\n ncyBreadcrumb: {\n label: '{{\"FAQ\" | translate}}'\n }\n }); /*\r\n .state('helpDetail', {\r\n parent: 'help',\r\n url: '/{categoryId}/{subCategoryId}/{questionId}',\r\n views:{\r\n 'main@root':{\r\n component: 'helpDetail'\r\n }\r\n },\r\n reloadOnSearch : false,\r\n resolve: { \r\n helpCategory: function($stateParams, helpService) {\r\n debugger;\r\n return helpService.getHelpSubCategory($stateParams.categoryId);\r\n }\r\n }\r\n });*/\n}]).component('help', _help.helpComponent);\n//.component('helpDetail', helpDetailComponent);\n//.component('helpContact', helpContactComponent)\n//.component('helpContactBox', helpContactBoxComponent)\n//.component('helpContactFaqBox', helpContactFaqBoxComponent);\n\nexports.default = _module.name;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/help/index.js\n// module id = 935\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar options = {\n template: require('./home.html'),\n bindings: {\n parentState: '<'\n },\n controllerAs: 'vm',\n controller: [\"$scope\", \"$stateParams\", \"productOverviewService\", \"advertService\", \"newsService\", \"cartService\", \"Enums\", \"common\", \"gettextCatalog\", \"authService\", \"Analytics\", \"$location\", \"$timeout\", \"exceptionService\", \"productService\", \"reservationCampaignService\", \"$window\", \"$state\", function controller($scope, $stateParams, productOverviewService, advertService, newsService, cartService, Enums, common, gettextCatalog, authService, Analytics, $location, $timeout, exceptionService, productService, reservationCampaignService, $window, $state) {\n 'ngInject';\n\n var vm = this;\n vm.adverts = null;\n vm.discountsModel = null;\n vm.errorOccurredInProductOverview = false;\n vm.newsitems = null;\n vm.products = null;\n vm.addToCart = addToCart;\n vm.advertClicked = advertClicked;\n vm.buildUrl = buildUrl;\n vm.activeCampaigns = [];\n vm.isFebelcoCustomer = false;\n vm.$onInit = init;\n vm.onChangeQuantity = onChangeQuantity;\n vm._badgeClicked = _badgeClicked;\n vm.getProductDiscounts = getProductDiscounts;\n $scope.forms = {};\n\n function init() {\n common.navigationMenu.setHomeActive();\n common.setTitle(gettextCatalog.getString('Profficina'));\n\n //GA\n Analytics.trackPage('/' + common.localization.getCurrentLanguage(), gettextCatalog.getString('Profficina'));\n\n //get the settings for the sliders\n vm.productSliderSettings = productOverviewService.getProductSliderSettings();\n vm.newsSliderSettings = newsService.getNewsSliderSettings();\n\n vm.isFebelcoCustomer = authService.isFebelcoCustomer;\n if (vm.isFebelcoCustomer) {\n reservationCampaignService.getActiveReservationCampaigns().then(function (response) {\n vm.activeCampaigns = response;\n });\n }\n\n //load the adverts. Refactor code so it can be put in resolve with loading spinners shown\n advertService.getAdvertsForHomepage().then(function (model) {\n vm.adverts = model;\n angular.forEach(vm.adverts, function (advert) {\n Analytics.addPromo(advert.id, advert.name, $state.current.name + ' ' + advert.sequenceNr, '');\n });\n //Analytics.pageView(); // Homepage werd 2x getrackt hierdoor\n });\n\n //load the news items. Do not put in resolve or loading spinners will not be shown\n newsService.getNewsForHomepage().then(function (model) {\n vm.newsitems = model;\n });\n\n //load the product items. do not put in resolve or loading spinners will not be shown\n vm.discountsModel = productOverviewService.init(Enums.searchContext.discount.id);\n productOverviewService.getProductsForHomepage(true, vm.discountsModel).then(function (model) {\n vm.discountsModel = model;\n vm.products = model.products;\n vm.errorOccurredInProductOverview = model.errorOccurred;\n });\n\n //update quantity on enter\n angular.element($window).on('keydown', function (event) {\n if (event.which === 13 && vm.addingProducts !== true) {\n vm.addToCart();\n }\n });\n\n $scope.$on('$destroy', function () {\n angular.element($window).off('keydown');\n });\n }\n\n function advertClicked(advert) {\n Analytics.addPromo(advert.id, advert.name, $state.current.name + ' ' + advert.sequenceNr, '');\n Analytics.promoClick('Home');\n }\n\n function buildUrl(url) {\n return $location.path() + url;\n }\n\n function _badgeClicked(categoryId) {\n vm.badgeClicked({\n categoryId: categoryId\n });\n }\n\n function onChangeQuantity() {\n vm.productsQuantityChanged = true;\n vm.productsAdded = false;\n vm.isOpen = true;\n }\n\n function addToCart() {\n vm.productsQuantityChanged = false;\n vm.addingProducts = true;\n vm.hasError = false;\n cartService.updateCartOverview(vm.products).then(function (shoppingCartProducts) {\n if ($scope.forms.productOverviewForm) {\n $scope.forms.productOverviewForm.$setPristine();\n }\n vm.addingProducts = false;\n vm.productsAdded = true;\n vm.addToCartEnabled = true;\n vm.shoppingCartProducts = shoppingCartProducts;\n\n vm.products.map(function (product) {\n return product = product.getCartFields(product, shoppingCartProducts);\n });\n\n $timeout(function () {\n vm.productsAdded = false;\n vm.isOpen = false;\n }, 5000);\n }).catch(function () {\n vm.addToCartEnabled = false;\n vm.addingProducts = false;\n vm.isOpen = false;\n var msg = gettextCatalog.getString('The product quantity could not be updated');\n exceptionService.logException(msg);\n vm.hasError = true;\n $timeout(function () {\n vm.hasError = false;\n vm.isOpen = false;\n }, 5000);\n });\n }\n\n /* Load product discounts when discount is clicked */\n function getProductDiscounts(product) {\n return productService.getProductDiscounts(product.id);\n }\n }]\n};\n\nexports.default = options;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/home/home.js\n// module id = 936\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _angular = require('angular');\n\nvar _angular2 = _interopRequireDefault(_angular);\n\nvar _home = require('./home');\n\nvar _home2 = _interopRequireDefault(_home);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _module = _angular2.default.module('app.home', []).config([\"$stateProvider\", function ($stateProvider) {\n 'ngInject';\n\n $stateProvider.state('general', {\n url: '',\n parent: 'master',\n abstract: true,\n views: {\n 'menu@root': {\n template: ''\n }\n },\n resolve: {\n navigationData: [\"categoryService\", \"sellerService\", \"$q\", function navigationData(categoryService, sellerService, $q) {\n var promises = [];\n promises.push(categoryService.getMenuCategories());\n promises.push(sellerService.getAllForMenu());\n\n return $q.all(promises).then(function (results) {\n return {\n categories: results[0],\n sellers: results[1]\n };\n });\n }],\n parentState: [\"$state\", function parentState($state) {\n return $state.get('general');\n }]\n },\n ncyBreadcrumb: {\n skip: true // Never display this state in breadcrumb.\n }\n }).state('home', {\n url: '',\n parent: 'general',\n views: {\n 'main@root': {\n component: 'home'\n }\n },\n ncyBreadcrumb: {\n skip: true // Never display this state in breadcrumb.\n }\n });\n}]).component('home', _home2.default);\n\nexports.default = _module.name;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/home/index.js\n// module id = 937\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar buyerBaseSelectComponent = exports.buyerBaseSelectComponent = {\n template: require('./buyer-base-select.html'),\n bindings: {\n onCancel: '&?',\n sellerId: '',\n onConfirm: '&'\n },\n controllerAs: 'vm',\n controller: [\"buyerBaseService\", function buyerBaseSelectController(buyerBaseService) {\n 'ngInject';\n\n var vm = this;\n vm.buyers;\n vm.buyersCount;\n\n vm.save = save;\n vm.close = close;\n\n vm.onSearch = onSearch;\n vm.searchValue = '';\n vm.showSpinner = false;\n\n function onSearch() {\n if (vm.searchValue.trim() !== '') {\n vm.showSpinner = true;\n vm.buyers = undefined;\n buyerBaseService.search(vm.searchValue, this.sellerId).then(function (resources) {\n vm.buyers = resources.results;\n vm.buyersCount = resources.count;\n }).finally(function () {\n vm.showSpinner = false;\n });\n }\n }\n\n function save(selectedBuyer) {\n vm.onConfirm({ $event: selectedBuyer });\n }\n\n function close() {\n vm.onCancel({ $event: 'closed' });\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/layout/components/buyer-base-select.js\n// module id = 938\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _angular = require('angular');\n\nvar _angular2 = _interopRequireDefault(_angular);\n\nvar _login = require('./login');\n\nvar _siteNav = require('./site-nav');\n\nvar _siteHeader = require('./site-header');\n\nvar _siteFooter = require('./site-footer');\n\nvar _buyerBaseSelect = require('./components/buyer-base-select');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _module = _angular2.default.module('app.layout', ['ng']).config([\"$stateProvider\", function ($stateProvider) {\n 'ngInject';\n\n $stateProvider.state('login', {\n parent: 'master',\n url: '/login',\n views: {\n 'main@root': {\n component: 'login'\n },\n 'header@root': '',\n 'aside@root': '',\n 'menu@root': '',\n 'submenu@root': '',\n 'footer@root': ''\n },\n data: {\n noTenant: true\n },\n resolve: {\n tenants: [\"$injector\", function tenants($injector) {\n var tenantService = $injector.get('tenantService');\n var authService = $injector.get('authService');\n if (!authService.hasClaim('ShopAdmin')) {\n return tenantService.getAll().then(function (tenants) {\n authService.customUserInfo = Object.assign(authService.customUserInfo || {}, {\n tenants: tenants\n });\n return tenants;\n });\n }\n }],\n isAdmin: [\"$injector\", function isAdmin($injector) {\n var authService = $injector.get('authService');\n return authService.hasClaim('ShopAdmin');\n }],\n isSeller: [\"$injector\", function isSeller($injector) {\n var authService = $injector.get('authService');\n return authService.isSeller;\n }],\n isBuyer: [\"$injector\", function isBuyer($injector) {\n var authService = $injector.get('authService');\n return authService.isBuyer;\n }],\n redirectLocation: [\"$stateParams\", function redirectLocation($stateParams) {\n return $stateParams.redirectLocation || '/';\n }],\n selectedSauk: [\"$stateParams\", function selectedSauk($stateParams) {\n return $stateParams.selectedSauk;\n }]\n },\n params: {\n redirectLocation: { value: '/', squash: true },\n selectedSauk: { value: null, squash: true }\n }\n });\n}]).component('login', _login.loginComponent).component('siteNav', _siteNav.siteNavComponent).component('siteHeader', _siteHeader.siteHeaderComponent).component('siteFooter', _siteFooter.siteFooterComponent).component('buyerBaseSelect', _buyerBaseSelect.buyerBaseSelectComponent);\n\nexports.default = _module.name;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/layout/index.js\n// module id = 939\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar loginComponent = exports.loginComponent = {\n template: require('./login.html'),\n controllerAs: 'vm',\n bindings: {\n redirectLocation: '@?',\n tenants: '',\n isAdmin: '<',\n isBuyer: '<',\n isSeller: '<',\n selectedSauk: ''\n },\n controller: [\"common\", \"gettextCatalog\", \"authService\", function controller(common, gettextCatalog, authService) {\n 'ngInject';\n\n var vm = this;\n vm.select = select;\n vm.selectSeller = selectSeller;\n vm.$onInit = init;\n vm.confirm = confirm;\n\n vm.selectedTenant = undefined;\n\n function init() {\n var _this = this;\n\n common.navigationMenu.setHomeActive();\n common.setTitle(gettextCatalog.getString('Log in'));\n if (this.selectedSauk) {\n this.selectSeller(this.tenants.find(function (x) {\n return x.secondaryAppUserKey === _this.selectedSauk;\n }));\n }\n }\n\n function select(tenant) {\n var isSeller = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var redirect = vm.redirectLocation;\n if (isSeller && redirect && redirect.indexOf('/nl/' + vm.selectedTenant.sellerId) < 0 && redirect.indexOf('/fr/' + vm.selectedTenant.sellerId)) {\n redirect = '/';\n }\n authService.signIn(redirect, { tenant: tenant }).catch(function () {\n common.log.warn('Signin with tenant failed');\n });\n }\n\n function selectSeller(tenant) {\n this.selectedTenant = tenant;\n }\n\n function confirm(buyer) {\n if (this.isBuyer) {\n vm.select(buyer.id);\n } else {\n vm.select(this.selectedTenant.secondaryAppUserKey + ';' + buyer.id, true);\n }\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/layout/login.js\n// module id = 940\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar siteFooterComponent = exports.siteFooterComponent = {\n template: require('./site-footer.html'),\n controllerAs: 'vm',\n controller: [\"config\", \"localizer\", \"$state\", function controller(config, localizer, $state) {\n 'ngInject';\n\n var vm = this;\n vm.env = config.env !== 'prod' ? config.env : '';\n vm.currentLanguage = localizer.getCurrentLanguage();\n vm.setLanguage = setLanguage;\n\n function setLanguage(language) {\n localizer.setLanguage(language);\n $state.go('.', { language: language });\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/layout/site-footer.js\n// module id = 941\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.siteHeaderComponent = undefined;\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar siteHeaderComponent = exports.siteHeaderComponent = {\n template: require('./site-header.html'),\n bindings: {\n navigationData: '<'\n },\n controllerAs: 'vm',\n controller: [\"$scope\", \"$element\", \"$state\", \"$timeout\", \"config\", \"productService\", \"common\", \"exceptionService\", \"gettextCatalog\", \"authService\", \"dialogService\", \"ngDialog\", \"localizer\", \"reservationCampaignService\", \"Analytics\", function controller(\n // $rootScope,\n $scope, $element, $state, $timeout, config,\n // ProductSearchRequest,\n // cartService,\n productService, common, exceptionService, gettextCatalog, authService, dialogService, ngDialog, localizer, reservationCampaignService, Analytics) {\n 'ngInject';\n\n var vm = this;\n vm.name = '';\n vm.apbNumber = '';\n vm.tenantsCount = null;\n\n vm.toggleAccount = toggleAccount;\n vm.hideAccount = hideAccount;\n vm.showAccount = showAccount;\n vm.signOut = signOut;\n vm.changeTenant = changeTenant;\n\n vm.searchValue = '';\n vm.isLoading = false;\n vm.searchResults = null;\n vm.search = search;\n vm.searchIsOpen = false;\n vm.searchIsHovered = false;\n vm.showSearch = showSearch;\n vm.hideSearch = hideSearch;\n vm.onKeydownSearch = onKeydownSearch;\n vm.onMouseEnterSearchResults = onMouseEnterSearchResults;\n vm.selectedSearchResultIndex = -1;\n\n vm.currentLanguage = localizer.getCurrentLanguage();\n vm.setLanguage = setLanguage;\n vm.isFebelcoCustomer = isFebelcoCustomer;\n vm.checkVaccinDate = checkVaccinDate;\n\n vm.isShopAdmin = null;\n vm.selectTenant = selectTenant;\n vm.changeBuyerBase = changeBuyerBase;\n vm.changeSellerBuyerBase = changeSellerBuyerBase;\n vm.changeSeller = changeSeller;\n vm.vaccinesConfig = config.fluVaccines;\n vm.fluVaccinesEndDate = null;\n vm.fluVaccinesStartDate = null;\n\n vm.activeCampaigns = [];\n\n function checkVaccinDate() {\n vm.fluVaccinesEndDate = vm.vaccinesConfig.endDate;\n vm.fluVaccinesStartDate = vm.vaccinesConfig.startDate;\n return (0, _moment2.default)(vm.fluVaccinesStartDate).format('YYYY-MM-DD') <= (0, _moment2.default)().format('YYYY-MM-DD') && (0, _moment2.default)(vm.fluVaccinesEndDate).format('YYYY-MM-DD') >= (0, _moment2.default)().format('YYYY-MM-DD');\n // var today= moment().format('YYYY-MM-DD');\n // var startDate= moment('2020-03-16').format('YYYY-MM-DD');\n // var endDate = moment(config.vaccinesEndDate).format('YYYY-MM-DD');\n // var condition = startDate <= today && endDate >= today;\n // if (condition) {\n // return true;\n // }\n // return false; //change to false to make this work\n }\n\n function setLanguage(language) {\n localizer.setLanguage(language);\n $state.go('.', {\n language: language\n });\n }\n\n function isFebelcoCustomer() {\n return authService.isFebelcoCustomer;\n }\n\n vm.preventDefault = function (e) {\n e.preventDefault();\n };\n vm.$onInit = init;\n\n function init() {\n var tenants = authService.customUserInfo.tenants;\n var activeTenant = tenants && tenants.find(function (t) {\n return !!t.secondaryAppUserKey && t.secondaryAppUserKey === authService.user.SAUK || !!t.id && t.id === parseInt(authService.user.BuyerID, 10);\n });\n if (!activeTenant) {\n $timeout(function () {\n init();\n }, 100);\n return;\n }\n vm.name = authService.user.display_name;\n vm.tenantsCount = (tenants || []).length;\n if (activeTenant) {\n vm.apbNumber = activeTenant.apbNumber;\n vm.pharmacyName = activeTenant.name;\n vm.sellerName = activeTenant.sellerName;\n vm.canViewPackages = activeTenant.canViewPackages;\n }\n vm.isShopAdmin = authService.hasClaim('ShopAdmin');\n vm.isSeller = authService.isSeller;\n vm.isBuyer = authService.isBuyer;\n\n $element.find('.site-account a').on('click', function () {\n hideAccount();\n });\n\n if (isFebelcoCustomer()) {\n reservationCampaignService.getActiveReservationCampaigns().then(function (response) {\n vm.activeCampaigns = response;\n });\n }\n }\n\n function toggleAccount() {\n angular.element('html').toggleClass('site-account-is-open');\n }\n\n function showAccount() {\n angular.element('html').toggleClass('site-account-is-open', true);\n }\n\n function hideAccount() {\n angular.element('html').toggleClass('site-account-is-open', false);\n }\n\n function signOut() {\n authService.signOut();\n }\n\n //tenant changed outside, update the tenant in menu\n $scope.$on('tenant-changed', function (event, args) {\n var tenants = authService.customUserInfo.tenants;\n var activeTenant = tenants && tenants.find(function (t) {\n return !!t.secondaryAppUserKey && t.secondaryAppUserKey === args.secondaryAppUserKey || !!t.id && t.id === parseInt(args.BuyerID, 10);\n });\n if (activeTenant) {\n vm.apbNumber = activeTenant.apbNumber;\n vm.pharmacyName = activeTenant.name;\n vm.sellerName = activeTenant.sellerName;\n }\n });\n\n function changeTenant() {\n return dialogService.selectTenant().then(function (tenant) {\n if (tenant.secondaryAppUserKey) {\n vm.selectTenant(tenant.secondaryAppUserKey);\n return tenant.secondaryAppUserKey;\n }\n }).then(function (secondaryAppUserKey) {\n var tenants = authService.customUserInfo.tenants;\n var activeTenant = tenants && tenants.find(function (t) {\n return t.secondaryAppUserKey === secondaryAppUserKey;\n });\n if (activeTenant) {\n vm.apbNumber = activeTenant.apbNumber;\n vm.pharmacyName = activeTenant.name;\n vm.sellerName = activeTenant.sellerName;\n }\n });\n }\n\n function selectTenant(tenant) {\n authService.signIn('/', { tenant: tenant }).catch(function () {\n common.log.warn('Signin with tenant failed');\n });\n }\n\n function changeBuyerBase() {\n ngDialog.openConfirm({\n template: '',\n className: 'ngdialog ngdialog-theme-webshop',\n plain: true,\n showClose: true,\n closeByNavigation: true\n }).then(function (result) {\n vm.selectTenant(result.id);\n return result.id;\n }).then(function (id) {\n var tenants = authService.customUserInfo.tenants;\n var activeTenant = tenants && tenants.find(function (t) {\n return t.id === id;\n });\n if (activeTenant) {\n vm.apbNumber = activeTenant.apbNumber;\n vm.pharmacyName = activeTenant.name;\n vm.sellerName = activeTenant.sellerName;\n }\n });\n }\n\n function changeSellerBuyerBase() {\n ngDialog.openConfirm({\n template: '',\n className: 'ngdialog ngdialog-theme-webshop',\n plain: true,\n showClose: true,\n closeByNavigation: true\n }).then(function (result) {\n vm.selectTenant(authService.user.SAUK + ';' + result.id);\n return { buyerId: result.id, sauk: authService.user.SAUK };\n }).then(function (response) {\n var tenants = authService.customUserInfo.tenants;\n var activeTenant = tenants && tenants.find(function (t) {\n return t.secondaryAppUserKey === response.sauk;\n });\n if (activeTenant) {\n vm.apbNumber = activeTenant.apbNumber;\n vm.pharmacyName = activeTenant.name;\n vm.sellerName = activeTenant.sellerName;\n }\n });\n }\n\n function changeSeller() {\n return dialogService.selectTenant().then(function (tenant) {\n ngDialog.openConfirm({\n template: '',\n className: 'ngdialog ngdialog-theme-webshop',\n plain: true,\n showClose: true,\n closeByNavigation: true\n }).then(function (result) {\n vm.selectTenant(tenant.secondaryAppUserKey + ';' + result.id);\n return { buyerId: result.id, sauk: tenant.secondaryAppUserKey };\n }).then(function (response) {\n var tenants = authService.customUserInfo.tenants;\n var activeTenant = tenants && tenants.find(function (t) {\n return t.secondaryAppUserKey === response.sauk;\n });\n if (activeTenant) {\n vm.apbNumber = activeTenant.apbNumber;\n vm.pharmacyName = activeTenant.name;\n vm.sellerName = activeTenant.sellerName;\n }\n });\n });\n }\n\n // Search\n\n function search() {\n common.log.info('go to search view from the search input box');\n\n if (vm.searchValue !== '') {\n $state.go('search', {\n searchValue: vm.searchValue,\n page: 1,\n pageSize: 24,\n sortProperty: '',\n sortAsc: true\n });\n hideSearch();\n }\n }\n\n function showSearch() {\n vm.searchIsOpen = true;\n angular.element('html').toggleClass('locked site-search-is-open', true);\n angular.element('#search-input').find('input').focus();\n }\n\n function hideSearch() {\n vm.searchResults = null;\n vm.selectedSearchResultIndex = -1;\n vm.searchValue = '';\n\n vm.searchIsOpen = false;\n angular.element('html').toggleClass('locked site-search-is-open', false);\n }\n\n function onKeydownSearch() {\n //vm.showSearch();\n if (vm.searchResults && vm.searchResults.products) {\n if (event.keyCode === 40) {\n // keyIdentifier = 'Down'\n if (vm.selectedSearchResultIndex >= vm.searchResults.products.length) {\n return;\n }\n\n vm.selectedSearchResultIndex++;\n } else if (event.keyCode === 38) {\n // keyIdentifier = 'Up'\n if (vm.selectedSearchResultIndex < 0) {\n return;\n }\n\n vm.selectedSearchResultIndex--;\n } else if (event.keyCode === 13) {\n // keyIdentifier = 'Enter'\n\n if (!vm.searchResults || !vm.searchResults.products || vm.searchResults.products.length <= 0 || vm.selectedSearchResultIndex < 0 || vm.selectedSearchResultIndex > vm.searchResults.products.length) {\n return;\n }\n\n if (vm.selectedSearchResultIndex === vm.searchResults.products.length) {\n search();\n } else {\n var productId = vm.searchResults.products[vm.selectedSearchResultIndex].id;\n common.log.info('go to product ' + productId + ' from search results');\n $state.go('.product', {\n productId: productId\n });\n }\n\n vm.hideSearch();\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n }\n }\n }\n\n function onMouseEnterSearchResults(index) {\n vm.selectedSearchResultIndex = index;\n }\n\n $scope.$watch('vm.searchValue', function (newValue) {\n\n if (!newValue || newValue.length <= 2) {\n vm.searchResults = null;\n vm.selectedSearchResultIndex = -1;\n return;\n } else if (newValue && newValue.length > 2) {\n Analytics.trackPage('/search_results?q=' + newValue, 'send');\n Analytics.pageView();\n }\n\n vm.isLoading = true;\n common.log.info('search for ' + newValue);\n\n productService.searchProducts(newValue, 3).then(function (results) {\n Analytics.trackEvent('ProductSearch', 'siteHeaderSearch', newValue);\n vm.searchResults = results;\n }).catch(function () {\n exceptionService.logException(gettextCatalog.getString('The products cannot be retrieved.'));\n }).finally(function () {\n vm.isLoading = false;\n });\n });\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/layout/site-header.js\n// module id = 942\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar siteNavComponent = exports.siteNavComponent = {\n template: require('./site-nav.html'),\n bindings: {\n navigationData: '<'\n },\n controllerAs: 'vm',\n controller: [\"common\", \"$element\", \"$state\", \"localizer\", \"authService\", function controller(common, $element, $state, localizer, authService) {\n 'ngInject';\n\n var vm = this;\n vm.isSellerActive = true;\n vm.currentLanguage = common.localization.getCurrentLanguage();\n vm.toggleMenu = toggleMenu;\n vm.hideMenu = hideMenu;\n vm.toggleSubmenu = toggleSubmenu;\n vm.hideSubmenu = hideSubmenu;\n vm.preventDefault = function (e) {\n e.preventDefault();\n };\n vm.$onInit = init;\n vm.desktopMenuThreshold = 768;\n vm.currentLanguage = localizer.getCurrentLanguage();\n vm.isFebelcoCustomer = isFebelcoCustomer;\n vm.setLanguage = setLanguage;\n vm.outletIsActive = outletIsActive;\n\n function isFebelcoCustomer() {\n return authService.isFebelcoCustomer;\n }\n\n function setLanguage(language) {\n localizer.setLanguage(language);\n $state.go('.', { language: language });\n }\n\n function init() {\n /*$element.find('a.has-sub').on('click', function(e){ \r\n\r\n e.preventDefault();\r\n angular.element(e.currentTarget.parentElement).toggleClass('is-open');\r\n });*/\n $element.on('click', 'a:not(.has-sub)', function () {\n angular.element('html').toggleClass('site-nav-is-open', false);\n vm.hideSubmenu();\n });\n }\n\n function toggleMenu() {\n angular.element('html').toggleClass('site-nav-is-open');\n }\n\n function hideMenu() {\n angular.element('html').toggleClass('site-nav-is-open', false);\n }\n function outletIsActive() {\n return vm.navigationData.sellers.find(function (x) {\n return x.code === 'OUT';\n });\n }\n function toggleSubmenu(e) {\n e.preventDefault();\n var parent = angular.element(e.currentTarget.parentElement);\n var isOpen = parent.hasClass('is-open');\n if (!isOpen && window.innerWidth >= vm.desktopMenuThreshold) {\n // when opens ==> close others\n parent.siblings('.is-open').removeClass('is-open');\n }\n parent.toggleClass('is-open');\n }\n\n function hideSubmenu() {\n $element.find('.site-nav').find('.is-open').removeClass('is-open');\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/layout/site-nav.js\n// module id = 943\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar newsAsideComponent = exports.newsAsideComponent = {\n template: require('./news-aside.html'),\n bindings: {\n topNewsitems: '=',\n errorOccurred: '<',\n parentState: '<'\n },\n controllerAs: 'vm',\n controller: function controller() {\n 'ngInject';\n\n var vm = this;\n vm.$onInit = init;\n\n function init() {\n vm.newsSliderSettings = {\n dots: true,\n arrows: false,\n slidesToShow: 1,\n slidesToScroll: 1,\n touchMove: false,\n adaptiveHeight: false\n };\n }\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/news/components/news-aside.js\n// module id = 944\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar newsGridComponent = exports.newsGridComponent = {\n template: require('./news-grid.html'),\n bindings: {\n newsitems: '<',\n errorOccurred: '<',\n viewMode: '@',\n badgeClicked: '&',\n parentState: '<'\n },\n controllerAs: 'vm',\n controller: function newsOverviewController() {\n 'ngInject';\n\n var vm = this;\n vm._badgeClicked = _badgeClicked;\n\n function _badgeClicked(categoryId) {\n vm.badgeClicked({ categoryId: categoryId });\n }\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/news/components/news-grid.js\n// module id = 945\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.newsOverviewComponent = undefined;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar newsOverviewComponent = exports.newsOverviewComponent = {\n template: require('./news-overview.html'),\n bindings: {\n model: '<',\n viewMode: '@',\n itemsPerPageChanged: '&',\n selectedCategory: '<',\n badgeClicked: '&',\n parentState: '<'\n },\n controllerAs: 'vm',\n controller: [\"$scope\", \"$state\", \"Analytics\", function newsOverviewController($scope, $state, Analytics) {\n 'ngInject';\n\n var vm = this;\n\n vm.search = search;\n vm.clear = clear;\n vm.onKeydown = onKeydown;\n vm.goToPage = goToPage;\n vm.selectCategoriesChanged = selectCategoriesChanged;\n vm.changeItemsPerPage = changeItemsPerPage;\n vm.pagecountList = [12, 24, 36];\n vm._badgeClicked = _badgeClicked;\n\n function search() {\n Analytics.trackEvent('News', 'newsSearch', vm.model.searchValue, 0, true);\n $state.go('.', { page: 1, searchValue: vm.model.searchValue });\n }\n\n function clear() {\n vm.model.searchValue = null;\n $state.go('.', { page: 1, searchValue: vm.model.searchValue });\n }\n\n function onKeydown() {\n if (event.keyCode === 13) {\n // keyIdentifier = 'Enter'\n $state.go('.', { page: 1, searchValue: vm.model.searchValue });\n\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n }\n }\n\n function goToPage(page) {\n if (page === 0 || page > vm.model.paging.pageCount) {\n return;\n }\n $state.go('.', { page: page });\n }\n\n // function goToPage(page) {\n // if (page === 0 || page > vm.paging.pageCount) { return; }\n // vm.paging.page = page;\n // getOrders();\n // }\n\n /* paging */\n function changeItemsPerPage(_ref) {\n var itemsPerPage = _ref.itemsPerPage;\n\n vm.model.paging.itemsPerPage = itemsPerPage;\n $state.go('.', { page: 1 });\n vm.itemsPerPageChanged({ $event: itemsPerPage });\n }\n\n function selectCategoriesChanged() {\n $state.go('.', { page: 1, categoryId: vm.model.selectedCategory.id });\n }\n\n function _badgeClicked(categoryId) {\n vm.model.selectedCategory = _lodash2.default.find(vm.model.categories, function (i) {\n return i.id === categoryId;\n });\n vm.badgeClicked({ categoryId: categoryId });\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/news/components/news-overview.js\n// module id = 946\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar newsRecentPopularComponent = exports.newsRecentPopularComponent = {\n template: require('./news-recent-popular.html'),\n bindings: {\n recentNews: '<',\n popularNews: '<',\n currentTab: '@'\n },\n controllerAs: 'vm',\n controller: function controller() {\n\n var vm = this;\n\n //vm.currentTab = currentTab;\n vm.onClickTab = onClickTab;\n\n function onClickTab(tabId) {\n vm.currentTab = tabId;\n }\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/news/components/news-recent-popular.js\n// module id = 947\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar newsTagsComponent = exports.newsTagsComponent = {\n template: require('./news-tags.html'),\n bindings: {\n tags: '<'\n },\n controllerAs: 'vm'\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/news/components/news-tags.js\n// module id = 948\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar newsTileShortComponent = exports.newsTileShortComponent = {\n template: require('./news-tile-short.html'),\n bindings: {\n news: '<'\n },\n controllerAs: 'vm'\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/news/components/news-tile-short.js\n// module id = 949\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar newsTileComponent = exports.newsTileComponent = {\n template: require('./news-tile.html'),\n bindings: {\n news: '<',\n badgeClicked: '&',\n parentState: '<'\n },\n controllerAs: 'vm'\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/news/components/news-tile.js\n// module id = 950\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.newsDetail = undefined;\n\nvar _marked = require('marked');\n\nvar _marked2 = _interopRequireDefault(_marked);\n\nvar _markedRenderer = require('./../../common/core/markedRenderer');\n\nvar _markedRenderer2 = _interopRequireDefault(_markedRenderer);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_marked2.default.setOptions({\n renderer: _markedRenderer2.default,\n breaks: false,\n sanitize: true\n});\n\nvar newsDetail = exports.newsDetail = {\n template: require('./detail.html'),\n bindings: {\n newsdetail: '<'\n },\n controllerAs: 'vm',\n controller: [\"$rootScope\", \"$state\", \"common\", \"$scope\", \"gettextCatalog\", \"Analytics\", function controller($rootScope, $state, common, $scope, gettextCatalog, Analytics) {\n 'ngInject';\n\n var vm = this;\n vm.$onInit = init;\n vm.mediaTotal = 0;\n vm.extractVideoId = extractVideoId;\n vm.$onChanges = bindingChanges;\n\n vm.sliderSettings = {\n autoplay: true,\n autoplaySpeed: 10000,\n dots: true,\n arrows: true,\n slidesToShow: 1,\n slidesToScroll: 1,\n infinite: true,\n responsive: [{\n breakpoint: 576,\n settings: {\n dots: true,\n arrows: false\n }\n }],\n event: {\n beforeChange: function beforeChange(event, slick, currentSlide, nextSlide) {\n slick.$slider.toggleClass('slick-slider-light', angular.element(slick.$slides[nextSlide]).find('.hero').hasClass('hero-light'));\n }\n }\n };\n\n function init() {\n\n common.setTitle(vm.newsdetail.title);\n Analytics.trackPage('/' + common.localization.getCurrentLanguage() + '/news/' + vm.newsdetail.id, vm.newsdetail.title);\n\n //if there is no previous state go back news\n $state.previous.name === '' ? $state.previous.name = 'news' : $state.previous.name;\n //set the previous breadcrumb\n vm.breadcrumbPrevious = $state.fromParams.breadcrumbName ? $state.fromParams.breadcrumbName : gettextCatalog.getString('News');\n\n //vm.newsdetail.videos\n vm.mediaTotal = vm.newsdetail.gallery.length;\n\n //getMediaSliderDescription(0);\n }\n\n function bindingChanges(changes) {\n if (changes.newsdetail) {\n if (changes.newsdetail.currentValue) {\n vm.newsdetail = Object.assign(changes.newsdetail.currentValue, {\n description: (0, _marked2.default)(changes.newsdetail.currentValue.description || '')\n });\n } else {\n vm.newsdetail = changes.newsdetail.currentValue;\n }\n }\n }\n\n vm.gallerySliderSettings = {\n autoplay: false,\n dots: true,\n arrows: false,\n slidesToShow: 4,\n slidesToScroll: 4,\n enabled: true,\n infinite: false,\n variableWidth: false,\n responsive: [{\n breakpoint: 992,\n settings: {\n slidesToShow: 3,\n slidesToScroll: 3\n }\n }, {\n breakpoint: 576,\n settings: {\n slidesToShow: 2,\n slidesToScroll: 2\n }\n }],\n method: {}\n };\n\n function extractVideoId(videoUrl) {\n var video_id = videoUrl.replace('http://www.youtube.com/', '');\n return video_id;\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/news/detail.js\n// module id = 951\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _angular = require('angular');\n\nvar _angular2 = _interopRequireDefault(_angular);\n\nvar _detail = require('./detail');\n\nvar _mainOverview = require('./main-overview');\n\nvar _newsByTag = require('./news-by-tag');\n\nvar _newsAside = require('./components/news-aside');\n\nvar _newsRecentPopular = require('./components/news-recent-popular');\n\nvar _newsGrid = require('./components/news-grid');\n\nvar _newsOverview = require('./components/news-overview');\n\nvar _newsTags = require('./components/news-tags');\n\nvar _newsTile = require('./components/news-tile');\n\nvar _newsTileShort = require('./components/news-tile-short');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _module = _angular2.default.module('app.news', []).config([\"$stateProvider\", function ($stateProvider) {\n 'ngInject';\n\n $stateProvider.state('general.news', {\n url: '/news?page&categoryId&searchValue',\n views: {\n 'main@root': {\n component: 'mainNewsOverview'\n }\n },\n reloadOnSearch: false,\n params: {\n page: {\n value: '1',\n squash: true\n },\n categoryId: {\n value: '0',\n squash: true\n },\n searchValue: {\n value: '',\n squash: true\n }\n },\n ncyBreadcrumb: {\n label: '{{\"News\" | translate}}'\n },\n doNotTrack: true\n }).state('general.newsbytag', {\n url: '/news/tag/{id:int}?page&categoryId&searchValue',\n views: {\n 'main@root': {\n component: 'newsByTag'\n }\n },\n reloadOnSearch: false,\n params: {\n page: {\n value: '1',\n squash: true\n },\n categoryId: {\n value: '0',\n squash: true\n },\n searchValue: {\n value: '',\n squash: true\n }\n }\n }).state('general.news.newsitem', {\n url: '/{newsItemId:int}',\n views: {\n 'main@root': {\n component: 'news'\n }\n },\n resolve: {\n newsdetail: [\"$stateParams\", \"newsService\", function newsdetail($stateParams, newsService) {\n return newsService.getById($stateParams.newsItemId).then(function (newsdetail) {\n return newsdetail;\n });\n }]\n },\n ncyBreadcrumb: {\n label: '{{$resolve.newsdetail.title | translate}}'\n }\n });\n}]).component('news', _detail.newsDetail).component('mainNewsOverview', _mainOverview.mainNewsOverviewComponent).component('newsByTag', _newsByTag.newsByTagComponent).component('newsOverview', _newsOverview.newsOverviewComponent).component('newsRecentPopular', _newsRecentPopular.newsRecentPopularComponent).component('newsAside', _newsAside.newsAsideComponent).component('newsGrid', _newsGrid.newsGridComponent).component('newsTags', _newsTags.newsTagsComponent).component('newsTile', _newsTile.newsTileComponent).component('newsTileShort', _newsTileShort.newsTileShortComponent);\n\nexports.default = _module.name;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/news/index.js\n// module id = 952\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar mainNewsOverviewComponent = exports.mainNewsOverviewComponent = {\n template: require('./main-overview.html'),\n bindings: {\n recentnews: '<',\n popularnews: '<',\n tags: '<',\n parentState: '<'\n },\n controllerAs: 'vm',\n controller: [\"$scope\", \"common\", \"newsService\", \"newsOverviewService\", \"Enums\", \"gettextCatalog\", \"$state\", \"Analytics\", function mainNewsOverviewController($scope, common, newsService, newsOverviewService, Enums, gettextCatalog, $state, Analytics) {\n 'ngInject';\n\n var vm = this;\n vm.newsOverviewModel = null;\n vm.$onInit = init;\n vm.itemsPerPageChanged = itemsPerPageChanged;\n vm.badgeClicked = badgeClicked;\n\n function init() {\n common.navigationMenu.setNewsActive();\n common.setTitle(gettextCatalog.getString('News'));\n Analytics.trackPage('/' + common.localization.getCurrentLanguage() + '/news', gettextCatalog.getString('News'));\n\n handleGetNews(12); //default page size is 12 todo put in const\n }\n\n function itemsPerPageChanged(itemsPerPage) {\n handleGetNews(itemsPerPage);\n }\n\n function handleGetNews(itemsPerPage) {\n newsOverviewService.handleGetNews($scope, Enums.newsContext.main.id, {}, itemsPerPage).then(function (model) {\n vm.newsOverviewModel = model;\n });\n }\n\n function badgeClicked(categoryId) {\n $state.go('.', {\n page: 1,\n categoryId: categoryId\n });\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/news/main-overview.js\n// module id = 953\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.newsByTagComponent = undefined;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar newsByTagComponent = exports.newsByTagComponent = {\n template: require('./news-by-tag.html'),\n bindings: {\n recentnews: '<',\n popularnews: '<',\n tags: '<'\n },\n controllerAs: 'vm',\n controller: [\"$scope\", \"$stateParams\", \"common\", \"newsService\", \"newsOverviewService\", \"Enums\", \"gettextCatalog\", function newsByTagController($scope, $stateParams, common, newsService, newsOverviewService, Enums, gettextCatalog) {\n 'ngInject';\n\n var vm = this;\n vm.newsOverviewModel = null;\n vm.$onInit = init;\n\n function init() {\n var tagId = parseInt($stateParams.id);\n vm.tag = _lodash2.default.find(vm.tags, function (i) {\n return i.id === tagId;\n });\n\n common.navigationMenu.setNewsActive();\n common.setTitle(gettextCatalog.getString('News for ') + vm.tag.name);\n newsOverviewService.handleGetNews($scope, Enums.newsContext.main.id, { tagId: tagId }).then(function (i) {\n return vm.newsOverviewModel = i;\n });\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/news/news-by-tag.js\n// module id = 954\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar outletProductFiltersComponent = exports.outletProductFiltersComponent = {\n template: require('./outlet-product-filters.html'),\n bindings: {\n paging: '=',\n changeFilters: '&',\n filternavFolder: '&',\n filterCategories: '<'\n },\n controllerAs: 'vm',\n controller: function controller() {\n 'ngInject';\n\n var vm = this;\n vm.changeFilterCategoryLimit = changeFilterCategoryLimit;\n vm.onChangeFilters = onChangeFilters;\n\n function changeFilterCategoryLimit(category, limit) {\n category.limit = limit;\n }\n\n function onChangeFilters($event) {\n vm.changeFilters({ 'filter': $event.filter, 'category': $event.category });\n }\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/outlet/components/outlet-product-filters.js\n// module id = 955\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar outletProductOverviewComponent = exports.outletProductOverviewComponent = {\n template: require('./outlet-product-overview.html'),\n bindings: {\n model: '<',\n context: '<',\n getProducts: '&',\n parentState: '<',\n filterCategories: '<'\n },\n controllerAs: 'vm',\n controller: [\"$scope\", \"$stateParams\", \"productService\", \"queryStringHelper\", \"$state\", \"Enums\", \"$window\", \"cartService\", \"gettextCatalog\", \"exceptionService\", \"$timeout\", \"Analytics\", \"dialogService\", function controller($scope, $stateParams, productService, queryStringHelper, $state, Enums, $window, cartService, gettextCatalog, exceptionService, $timeout, Analytics, dialogService) {\n 'ngInject';\n\n var vm = this;\n vm.viewMode = window.localStorage.getItem('viewMode') || 'list';\n vm.filternavFolderClass = '';\n vm.changeViewMode = changeViewMode;\n vm.changeItemsPerPage = changeItemsPerPage;\n vm.goToPage = goToPage;\n vm.changeSorting = changeSorting;\n vm.changeFilters = changeFilters;\n vm.clearFilter = clearFilter;\n vm.clearFilters = clearFilters;\n vm.filternavFolder = filternavFolder;\n vm.noItemsMessage = null;\n vm.$onInit = init;\n vm.isMobile = false;\n vm.updateQuantity = updateQuantity;\n vm.onChangeQuantity = onChangeQuantity;\n vm.productsQuantityChanged = false;\n vm.addingProducts = false;\n vm.getProductDiscounts = getProductDiscounts;\n $scope.forms = {};\n\n /* view mode */\n function init() {\n createNoItemsMessage();\n vm.isMobile = $window.innerWidth < 768;\n setPaging();\n\n //update quantity on enter\n angular.element($window).on('keydown', function (event) {\n if (event.which === 13 && vm.addingProducts !== true) {\n vm.updateQuantity();\n }\n });\n }\n\n $scope.$on('$destroy', function () {\n angular.element($window).off('keydown');\n });\n\n function setPaging() {\n vm.model.paging.itemsPerPage = parseInt(window.sessionStorage.getItem('pageSize')) || parseInt($stateParams.pageSize);\n }\n\n function createNoItemsMessage() {\n if (!vm.model.productsAvailableForContext) {\n switch ($state.current.name) {\n case 'seller.discounts' || 'general.discounts':\n vm.noItemsMessage = gettextCatalog.getString('There are currently no discounts available');\n break;\n default:\n vm.noItemsMessage = gettextCatalog.getString('There are currently no products available');\n }\n }\n }\n\n /* change view mode */\n function changeViewMode(viewMode) {\n // set local storage\n window.localStorage.setItem('viewMode', viewMode);\n vm.viewMode = viewMode;\n }\n\n /* change paging */\n function changeItemsPerPage(itemsPerPage) {\n vm.model.isLoading = true;\n vm.model.paging.itemsPerPage = itemsPerPage;\n //cache the paging\n window.sessionStorage.setItem('pageSize', itemsPerPage);\n $state.go('.', { page: 1, pageSize: itemsPerPage });\n }\n\n function goToPage(page) {\n if ($scope.forms.productOverviewForm.$dirty === true) {\n dialogService.unsavedChanges().then(function () {\n vm.isOpen = false;\n vm.model.isLoading = true;\n if (page === 0 || page > vm.model.paging.pageCount) {\n return;\n }\n $state.go('.', { page: page });\n }, function () {\n return false;\n });\n } else {\n vm.isOpen = false;\n vm.model.isLoading = true;\n if (page === 0 || page > vm.model.paging.pageCount) {\n return;\n }\n $state.go('.', { page: page });\n }\n }\n\n /* sorting changed */\n function changeSorting(sortProperty) {\n //set the new sorting\n var sortAscByDefault = sortProperty.defaultSorting === 'asc';\n vm.model.sorting.sortAsc = sortProperty.value === vm.model.sorting.sortProperty ? !vm.model.sorting.sortAsc : sortAscByDefault;\n vm.model.sorting.sortProperty = sortProperty.value;\n\n // put the new properties in local storage\n window.localStorage.setItem($state.current.name + '-sortProperty', sortProperty.value);\n window.localStorage.setItem($state.current.name + '-sortAsc', vm.model.sorting.sortAsc);\n\n //go to the page with the correct sorting\n $state.go('.', {\n page: 1,\n sortProperty: sortProperty.value,\n sortAsc: vm.model.sorting.sortAsc\n });\n }\n\n /* filters changed TODO PUT IN SERVICE */\n function changeFilters(filter, category) {\n\n var categorySearch = category.items.find(function (filterHierarchyCategoryItem) {\n return filterHierarchyCategoryItem.isSelected === true;\n });\n\n //if the same category is selected do nothing\n if (filter.id === categorySearch.id) {\n return;\n }\n\n vm.model.isLoading = true;\n Analytics.trackEvent('Filter', 'setFilterOutletOverview', filter.name, 0, true);\n\n // select or unselect\n filter.isSelected = !filter.isSelected;\n\n //if the category is a link navigate to that page\n if (category.isLink) {\n navigateToPage(filter, category);\n return;\n }\n\n var filterParam = '';\n\n // on select/unselect, select/unselect all the children when the category is a parent\n if (filter.children && filter.children.length && !filter.isSelected) {\n filter.children.forEach(function (child) {\n child.isSelected = false;\n child.children.forEach(function (child) {\n child.isSelected = false;\n });\n });\n } else if (filter.children && filter.children.length && filter.isSelected) {\n filter.children.forEach(function (child) {\n child.isSelected = true;\n child.children.forEach(function (child) {\n child.isSelected = true;\n });\n });\n }\n\n // create the query string\n filterParam = queryStringHelper.getFilterParam(vm.model.filter.filterCategories);\n // navigate to the route with craeted filter params\n $state.go('.', { page: 1, filter: filterParam });\n }\n\n /* clear the filter */\n function clearFilter(filter, category) {\n vm.model.isLoading = true;\n\n if (category.isLink) {\n return;\n }\n\n // when category is hierarchical, don't get isSelected from the items, but set the query string param directly\n var filterParam = '';\n if (!vm.model.filter.isCategoryHierarchical(category.id)) {\n vm.model.filter.clearFilter(category.id, filter.id);\n filterParam = queryStringHelper.getFilterParam(vm.model.filter.filterCategories);\n } else {\n var selectedId = vm.model.filter.getParentIdOfChildCategory(category.id, filter.id);\n filterParam = queryStringHelper.getFilterParam(vm.model.filter.filterCategories, category.id, selectedId);\n }\n\n $state.go('.', { page: 1, filter: filterParam });\n }\n\n /* reset the page when clearing the filters */\n function clearFilters() {\n vm.model.isLoading = true;\n\n $state.go('.', {\n page: 1,\n pageSize: 24,\n sortProperty: '',\n sortAsc: true,\n filter: ''\n });\n }\n\n /* On filter changed, navigate to correct page */\n function navigateToPage(filter) {\n $state.go('general.outlet.category', {\n categoryId: filter.id,\n filter: $stateParams.filter === Enums.otherCategoryType.discountsOnly.id + '_1' ? Enums.otherCategoryType.discountsOnly.id + '_1' : '',\n page: 1,\n noReloadFilter: true\n });\n }\n\n /* toggle visibility sorting or filters */\n function filternavFolder(folderClass) {\n if (folderClass === vm.filternavFolderClass) {\n folderClass = '';\n }\n vm.filternavFolderClass = folderClass;\n }\n\n /* add products to the shoppingcart */\n function updateQuantity() {\n vm.productsQuantityChanged = false;\n vm.addingProducts = true;\n vm.hasError = false;\n\n var productFilterNoPanacee = vm.model.products.filter(function (x) {\n return x.productTypeCode !== 'panacee';\n });\n\n cartService.updateCartOverview(productFilterNoPanacee).then(function (shoppingCartProducts) {\n\n if ($scope.forms.productOverviewForm) {\n $scope.forms.productOverviewForm.$setPristine();\n }\n\n vm.addingProducts = false;\n vm.productsAdded = true;\n vm.addToCartEnabled = true;\n\n vm.model.products.map(function (product) {\n return product = product.getCartFields(product, shoppingCartProducts);\n });\n\n cartService.setAddedProducts([]);\n cartService.addProductToCartAnalytics();\n\n $timeout(function () {\n vm.isOpen = false;\n vm.productsAdded = false;\n }, 5000);\n }).catch(function () {\n vm.addToCartEnabled = false;\n vm.addingProducts = false;\n vm.hasError = true;\n var msg = gettextCatalog.getString('The product quantity could not be updated');\n $timeout(function () {\n vm.hasError = false;\n vm.isOpen = false;\n }, 5000);\n exceptionService.logException(msg);\n });\n }\n\n /* quantity of product changed */\n function onChangeQuantity($event) {\n if ($event) {\n cartService.addProductToAddedProductsList($event);\n }\n\n if (!vm.addingProducts) {\n vm.isOpen = true;\n vm.productsAdded = false;\n vm.productsQuantityChanged = true;\n }\n }\n\n /* Load product discounts when discount is clicked */\n function getProductDiscounts(product) {\n return productService.getProductDiscounts(product.id);\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/outlet/components/outlet-product-overview.js\n// module id = 956\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _angular = require('angular');\n\nvar _angular2 = _interopRequireDefault(_angular);\n\nvar _outletProducts = require('./outlet-products');\n\nvar _outletCategoryOverview = require('./outlet-category-overview');\n\nvar _outletProductOverview = require('./components/outlet-product-overview');\n\nvar _outletProductFilters = require('./components/outlet-product-filters');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _module = _angular2.default.module('app.outlet', []);\n\n_module.config([\"$stateProvider\", \"sortProperties\", function ($stateProvider, sortProperties) {\n $stateProvider.state('general.outlet', {\n url: '/op=op',\n views: {\n 'main@root': {\n component: 'outletCategoryOverview'\n }\n },\n resolve: {\n categories: [\"outletService\", function categories(outletService) {\n return outletService.getCategories().then(function (categories) {\n return categories;\n });\n }],\n textFields: [\"outletService\", function textFields(outletService) {\n return outletService.getTextFields().then(function (textFields) {\n return textFields;\n });\n }]\n },\n ncyBreadcrumb: {\n label: '{{\"Outlet\" | translate}}'\n },\n reloadOnSearch: false,\n data: {\n febelcoCustomer: true\n }\n }).state('general.outlet.category', {\n url: '/category/{categoryId:int}?page&pageSize&sortProperty&sortAsc&filter',\n views: {\n 'main@root': {\n component: 'outletProducts'\n }\n },\n params: {\n page: { value: '1', squash: true, dynamic: true },\n pageSize: { value: window.sessionStorage.getItem('pageSize'), squash: false, dynamic: true },\n sortProperty: { value: sortProperties['Name'].value, squash: true, dynamic: true, array: false },\n sortAsc: { value: (sortProperties['Name'].defaultSorting === 'asc').toString(), squash: true, dynamic: true, array: false },\n filter: { value: '103_1', squash: true, dynamic: true },\n categoryId: { squash: true },\n noReloadFilter: { squash: true }\n },\n resolve: {\n // category: ($stateParams, categoryService) => {\n // return categoryService.getById($stateParams.categoryId);\n // }\n },\n reloadOnSearch: false,\n ncyBreadcrumb: {\n label: '{{$resolve.category.name}}'\n },\n data: {\n febelcoCustomer: true\n }\n });\n}]);\n\n_module.component('outletProducts', _outletProducts.outletProductsComponent);\n_module.component('outletProductOverview', _outletProductOverview.outletProductOverviewComponent);\n_module.component('outletProductFilters', _outletProductFilters.outletProductFiltersComponent);\n_module.component('outletCategoryOverview', _outletCategoryOverview.outletCategoryOverviewComponent);\nexports.default = _module.name;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/outlet/index.js\n// module id = 957\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.outletCategoryOverviewComponent = undefined;\n\nvar _marked = require('marked');\n\nvar _marked2 = _interopRequireDefault(_marked);\n\nvar _markedRenderer = require('./../../common/core/markedRenderer');\n\nvar _markedRenderer2 = _interopRequireDefault(_markedRenderer);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_marked2.default.setOptions({\n renderer: _markedRenderer2.default,\n breaks: false,\n sanitize: true\n});\n\nvar outletCategoryOverviewComponent = exports.outletCategoryOverviewComponent = {\n template: require('./outlet-category-overview.html'),\n bindings: {\n categories: '<',\n textFields: '<'\n },\n controllerAs: 'vm',\n controller: [\"common\", \"gettextCatalog\", \"$state\", \"Analytics\", function controller(common, gettextCatalog, $state, Analytics) {\n 'ngInject';\n\n var vm = this;\n vm.productOverviewModel = null;\n vm.$onInit = init;\n vm.$state = $state;\n vm.language = window.localStorage.getItem('language');\n vm.$onChanges = bindingChanges;\n\n function init() {\n common.setTitle(gettextCatalog.getString('OP=OP'));\n Analytics.trackPage('/' + common.localization.getCurrentLanguage() + '/op=op');\n }\n\n function bindingChanges(changes) {\n if (changes.textFields) {\n if (changes.textFields.currentValue) {\n vm.textFields = Object.assign(changes.textFields.currentValue, {\n topText: (0, _marked2.default)(changes.textFields.currentValue.topText || '')\n });\n } else {\n vm.partnership = changes.partnership.currentValue;\n }\n }\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/outlet/outlet-category-overview.js\n// module id = 958\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar outletProductsComponent = exports.outletProductsComponent = {\n template: require('./outlet-products.html'),\n bindings: {\n parentState: '<',\n categories: '<'\n },\n controllerAs: 'vm',\n controller: [\"$scope\", \"productOverviewService\", \"Enums\", \"common\", \"$stateParams\", \"gettextCatalog\", \"Analytics\", \"$state\", function controller($scope, productOverviewService, Enums, common, $stateParams, gettextCatalog, Analytics, $state) {\n 'ngInject';\n\n var vm = this;\n vm.$onInit = init;\n vm.$state = $state;\n vm.category = null;\n vm.onFilterChange = onFilterChange;\n\n function init() {\n\n vm.category = vm.categories.find(function (category) {\n return category.url === $stateParams.categoryId;\n });\n common.setTitle(gettextCatalog.getString(vm.category.name + ' Products'));\n Analytics.trackPage('/' + common.localization.getCurrentLanguage() + '/op=op/category/' + $stateParams.categoryId, gettextCatalog.getString(vm.category.name));\n\n if (!$stateParams.categoryId) {\n vm.categoryId = 0;\n } else {\n vm.categoryId = $stateParams.categoryId;\n }\n\n if ($stateParams.noReloadFilter) {\n vm.productOverviewModel = productOverviewService.getProductOverviewModel();\n } else {\n vm.productOverviewModel = productOverviewService.init(Enums.searchContext.category.id);\n }\n\n //todo repeating code put in function\n productOverviewService.getOutletProducts($stateParams.noReloadFilter ? false : true, vm.productOverviewModel, 0, $state.params.categoryId).then(function (model) {\n vm.productOverviewModel = model;\n productOverviewService.setProductOverviewModel(vm.productOverviewModel);\n listenForLocationChangeSuccess();\n });\n }\n\n function listenForLocationChangeSuccess() {\n $scope.$on('$locationChangeSuccess', function () {\n productOverviewService.getOutletProducts(false, vm.productOverviewModel, 0, $state.params.categoryId).then(function (model) {\n vm.productOverviewModel = model;\n });\n });\n }\n\n function onFilterChange() {\n productOverviewService.setProductOverviewModel(vm.productOverviewModel);\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/outlet/outlet-products.js\n// module id = 959\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar addProductsToolbar = exports.addProductsToolbar = {\n template: require('./add-products-toolbar.html'),\n bindings: {\n product: '=',\n addingProducts: '<',\n productsQuantityChanged: '<',\n addToCart: '&',\n isOpen: '<',\n productsAdded: '<',\n hasError: '<'\n },\n controllerAs: 'vm',\n controller: function addProductsToolbarController() {\n 'ngInject';\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/product/components/add-products-toolbar.js\n// module id = 960\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar includedProductsInPackComponent = exports.includedProductsInPackComponent = {\n template: require('./included-products-in-pack.html'),\n bindings: {\n product: '<',\n quantityChanged: '&',\n context: '<',\n parentState: '<'\n },\n controllerAs: 'vm',\n controller: [\"common\", \"Analytics\", \"productService\", function includedProductsInPackController(common, Analytics, productService) {\n 'ngInject';\n\n var vm = this;\n vm.productClicked = productClicked;\n vm.changeViewMode = changeViewMode;\n vm.packQuantityChanged = packQuantityChanged;\n vm.getProductDiscounts = getProductDiscounts;\n vm.viewMode = window.localStorage.getItem('viewMode') || 'list';\n\n // buy quantity pack changed\n function packQuantityChanged(product) {\n vm.productsQuantityChanged = true;\n vm.quantityChanged(product);\n }\n\n // save in local storage when viewmode is changed\n function changeViewMode(viewMode) {\n window.localStorage.setItem('viewMode', viewMode);\n vm.viewMode = viewMode;\n }\n\n /*Google Analytics */\n function productClicked() {\n Analytics.addProduct(vm.product.id, vm.product.name, null, vm.product.brand, null, vm.product.price, null, null, null, { dimension1: vm.product.sellerId, dimension2: vm.product.sellerName, dimension3: vm.product.discountId });\n Analytics.productClick('Included product in pack');\n common.log.info('Analysis: product clicked from included product in pack', vm.product.name);\n }\n\n /* Load product discounts when discount is clicked */\n function getProductDiscounts(product) {\n return productService.getProductDiscounts(product.id);\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/product/components/included-products-in-pack.js\n// module id = 961\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar includedProductsInPanaceeComponent = exports.includedProductsInPanaceeComponent = {\n template: require('./included-products-in-panacee.html'),\n bindings: {\n product: '=',\n context: '<',\n quantityChanged: '&',\n parentState: '<'\n },\n controllerAs: 'vm',\n controller: [\"productService\", function controller(productService) {\n 'ngInject';\n\n var vm = this;\n vm.orderByProperty = 'name';\n vm.isOrderByDescending = false;\n vm.setOrder = setOrder;\n vm.panaceeQuantityChanged = panaceeQuantityChanged;\n vm.changeViewMode = changeViewMode;\n vm.getProductDiscounts = getProductDiscounts;\n vm.viewMode = window.localStorage.getItem('viewMode') || 'list';\n\n /* On quantity on changed */\n function panaceeQuantityChanged(product) {\n vm.productsQuantityChanged = true;\n vm.quantityChanged(product);\n }\n\n /* Save in localstorage when viewmode changed */\n function changeViewMode(viewMode) {\n window.localStorage.setItem('viewMode', viewMode);\n vm.viewMode = viewMode;\n }\n\n /* Order the products */\n function setOrder(propName) {\n if (vm.orderByProperty === propName) {\n vm.isOrderByDescending = !vm.isOrderByDescending;\n } else {\n vm.isOrderByDescending = false;\n }\n vm.orderByProperty = propName;\n }\n\n /* Load product discounts when discount is clicked */\n function getProductDiscounts(product) {\n return productService.getProductDiscounts(product.id);\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/product/components/included-products-in-panacee.js\n// module id = 962\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar medipimInfoComponent = exports.medipimInfoComponent = {\n template: require('./medipim-info.html'),\n bindings: {\n medipimData: '<',\n product: '<'\n },\n controllerAs: 'vm'\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/product/components/medipim-info.js\n// module id = 963\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar panaceeOverviewGridItemComponent = exports.panaceeOverviewGridItemComponent = {\n template: require('./panacee-overview-grid-item.html'),\n bindings: {\n product: '=',\n isLast: '=',\n context: '<',\n parentState: '<',\n onChangeQuantity: '&',\n getProductDiscounts: '&'\n },\n controllerAs: 'vm',\n controller: [\"$scope\", \"cartService\", \"common\", \"exceptionService\", \"gettextCatalog\", \"Analytics\", \"$stateParams\", \"$state\", \"productService\", \"authService\", function controller($scope, cartService, common, exceptionService, gettextCatalog, Analytics, $stateParams, $state, productService, authService) {\n 'ngInject';\n\n var vm = this;\n vm.categoryId = $stateParams.id;\n vm.productDiscountsOpen = false;\n vm.productDiscounts = {};\n vm.productDiscountClicked = productDiscountClicked;\n vm.loadProductDiscounts = loadProductDiscounts;\n vm.toggleProductDiscounts = toggleProductDiscounts;\n vm.getDiscountPrice = getDiscountPrice;\n vm.getGrossProfit = getGrossProfit;\n vm.closeProductDiscounts = closeProductDiscounts;\n vm.productClicked = productClicked;\n vm.isFebelcoCustomer = isFebelcoCustomer;\n\n /* Get the discount price */\n function getDiscountPrice() {\n return vm.product.price - vm.product.price * vm.product.discountPct / 100;\n }\n\n /* Get the gross profit */\n function getGrossProfit() {\n return productService.calculateGrossProfitWithoutDiscount(vm.product);\n }\n\n /* google analytics when product clicked */\n function productClicked() {\n Analytics.addProduct(vm.product.id, vm.product.name, '', vm.product.brand, '', vm.product.price, '', '', '', { sellerId: vm.product.sellerId, sellerName: vm.product.sellerName, discountId: vm.product.discountId });\n Analytics.productClick(vm.context);\n Analytics.trackEvent('Product', 'click', vm.product.name);\n common.log.info('Analysis: product clicked', vm.product.name);\n }\n\n /* google analytics when product clicked */\n function productDiscountClicked() {\n // Analytics.addProduct(vm.product.id, vm.product.name, '', vm.product.brand, '', vm.product.price, '', '', '', { dimension1: vm.product.sellerId, dimension2: vm.product.sellerName, dimension3: vm.product.discountId });\n // Analytics.productClick(vm.context);\n Analytics.trackEvent('ProductDiscount', 'click', vm.product.name);\n common.log.info('Analysis: product discount clicked', vm.product.name);\n }\n\n /* load the product discounts */\n function loadProductDiscounts() {\n productDiscountClicked();\n if (vm.product.maxDiscount !== null || vm.product.portalContractTypeCode === 'AGIOS') {\n vm.productDiscountsOpen = true;\n if (Object.keys(vm.productDiscounts).length === 0) {\n vm.productDiscountsLoading = true;\n vm.getProductDiscounts(vm.product).then(function (result) {\n vm.productDiscountsLoading = false;\n vm.productDiscounts = productService.formatProductDiscount(result);\n });\n }\n }\n }\n\n /* open the porduct discounts */\n function toggleProductDiscounts() {\n if (vm.product.maxDiscount !== null || vm.product.portalContractTypeCode === 'AGIOS') {\n if (vm.productDiscountsOpen) {\n closeProductDiscounts();\n } else {\n loadProductDiscounts();\n }\n }\n }\n\n /* close the product discounts */\n function closeProductDiscounts() {\n vm.productDiscountsOpen = false;\n }\n\n function isFebelcoCustomer() {\n return authService.isFebelcoCustomer;\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/product/components/panacee-overview-grid-item.js\n// module id = 964\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar panaceeOverviewGridComponent = exports.panaceeOverviewGridComponent = {\n template: require('./panacee-overview-grid.html'),\n bindings: {\n products: '<',\n errorOccurred: '<',\n context: '<',\n parentState: '<',\n onChangeQuantity: '&',\n orderByProperty: '<',\n filter: '<',\n isOrderByDescending: '<',\n getProductDiscounts: '&',\n searchText: '<',\n totalProductsAmountInPanacee: '<'\n },\n controllerAs: 'vm',\n controller: [\"Analytics\", function panaceeOverviewGridController(Analytics) {\n 'ngInject';\n\n var vm = this;\n vm.$onInit = init;\n vm.getProductDiscountsList = getProductDiscountsList;\n\n function init() {\n angular.forEach(vm.products, function (p) {\n Analytics.addImpression(p.id, p.name, vm.context, p.brand, '', '', '', p.price, { dimension1: p.sellerId, dimension2: p.sellerName, dimension3: p.discountId });\n });\n Analytics.pageView();\n vm.productsWithInternalQuantity = vm.products.filter(function (x) {\n return x.internalQuantity > 1;\n });\n vm.productsWithoutInternalQuantity = vm.products.filter(function (x) {\n return x.internalQuantity === 1 || x.internalQuantity === 0;\n });\n }\n\n /* get the product discounts */\n function getProductDiscountsList(product) {\n return vm.getProductDiscounts({ product: product });\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/product/components/panacee-overview-grid.js\n// module id = 965\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar panaceeOverviewListItemComponent = exports.panaceeOverviewListItemComponent = {\n template: require('./panacee-overview-list-item.html'),\n bindings: {\n product: '=',\n context: '<',\n parentState: '<',\n onChangeQuantity: '&',\n getProductDiscounts: '&'\n },\n controllerAs: 'vm',\n controller: [\"$scope\", \"cartService\", \"common\", \"exceptionService\", \"gettextCatalog\", \"Analytics\", \"$stateParams\", \"$state\", \"productService\", \"authService\", function controller($scope, cartService, common, exceptionService, gettextCatalog, Analytics, $stateParams, $state, productService, authService) {\n 'ngInject';\n\n var vm = this;\n vm.productClicked = productClicked;\n vm.categoryId = $stateParams.id;\n vm.loadProductDiscounts = loadProductDiscounts;\n vm.toggleProductDiscounts = toggleProductDiscounts;\n vm.getGrossProfit = getGrossProfit;\n // vm.getGrossProfitAmount = getGrossProfitAmount;\n vm.productDiscountsOpen = false;\n vm.getDiscountPrice = getDiscountPrice;\n vm.productDiscounts = {};\n vm.closeProductDiscounts = closeProductDiscounts;\n vm.changeQuantity = changeQuantity;\n vm.isFebelcoCustomer = isFebelcoCustomer;\n vm.$onInit = init;\n\n function init() {\n if (vm.product.quantity === 0 && vm.product.minOrderAmount > 0) {\n vm.product.quantity = vm.product.minOrderAmount;\n vm.changeQuantity(vm.product);\n }\n }\n\n function changeQuantity(product) {\n vm.onChangeQuantity({ $event: product });\n }\n\n /* Get the discount price */\n function getDiscountPrice() {\n return vm.product.price - vm.product.price * vm.product.discountPct / 100; //todo put code like this in model or service\n }\n\n /* Get the gross profit */\n function getGrossProfit() {\n return productService.calculateGrossProfitWithoutDiscount(vm.product);\n }\n\n /* google analytics when product clicked */\n function productClicked() {\n Analytics.addProduct(vm.product.id, vm.product.name, '', vm.product.brand, '', vm.product.price, '', '', '', { sellerId: vm.product.sellerId, sellerName: vm.product.sellerName, discountId: vm.product.discountId });\n Analytics.productClick(vm.context);\n Analytics.trackEvent('Product', 'click', vm.product.name);\n common.log.info('Analysis: product clicked', vm.product.name);\n }\n\n /* google analytics when discount clicked */\n function productDiscountClicked() {\n Analytics.trackEvent('ProductDiscount', 'click', vm.product.name);\n common.log.info('Analysis: product discount clicked', vm.product.name);\n }\n\n /* load the product discounts */\n function loadProductDiscounts() {\n productDiscountClicked();\n if (vm.product.maxDiscount !== null || vm.product.portalContractTypeCode === 'AGIOS') {\n vm.productDiscountsOpen = true;\n if (Object.keys(vm.productDiscounts).length === 0) {\n vm.productDiscountsLoading = true;\n vm.getProductDiscounts(vm.product).then(function (result) {\n vm.productDiscountsLoading = false;\n vm.productDiscounts = productService.formatProductDiscount(result);\n });\n }\n }\n }\n\n /* open the product discounts */\n function toggleProductDiscounts() {\n if (vm.product.maxDiscount !== null || vm.product.portalContractTypeCode === 'AGIOS') {\n if (vm.productDiscountsOpen) {\n closeProductDiscounts();\n } else {\n loadProductDiscounts();\n }\n }\n }\n\n /* close the product discounts */\n function closeProductDiscounts() {\n vm.productDiscountsOpen = false;\n }\n\n function isFebelcoCustomer() {\n return authService.isFebelcoCustomer;\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/product/components/panacee-overview-list-item.js\n// module id = 966\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar panaceeOverviewListComponent = exports.panaceeOverviewListComponent = {\n template: require('./panacee-overview-list.html'),\n bindings: {\n products: '<',\n errorOccurred: '<',\n context: '<',\n viewMode: '=',\n parentState: '<',\n onChangeQuantity: '&',\n filter: '<',\n isOrderByDescending: '<',\n getProductDiscounts: '&',\n totalProductsAmountInPanacee: '<',\n orderByProperty: '<',\n searchText: '<'\n },\n controllerAs: 'vm',\n controller: [\"Analytics\", function panaceeOverviewListController(Analytics) {\n 'ngInject';\n\n var vm = this;\n vm.$onInit = init;\n vm.getProductDiscountsList = getProductDiscountsList;\n vm.changeQuantity = changeQuantity;\n\n function init() {\n angular.forEach(vm.products, function (p) {\n Analytics.addImpression(p.id, p.name, vm.context, p.brand, '', '', '', p.price, { sellerId: p.sellerId, sellerName: p.sellerName, discountId: p.discountId });\n });\n\n vm.productsWithInternalQuantity = vm.products.filter(function (x) {\n return x.internalQuantity > 1;\n });\n vm.productsWithoutInternalQuantity = vm.products.filter(function (x) {\n return x.internalQuantity === 1 || x.internalQuantity === 0;\n });\n Analytics.pageView();\n }\n\n function changeQuantity($event) {\n vm.onChangeQuantity({ $event: $event });\n }\n\n /* get the product discounts */\n function getProductDiscountsList(product) {\n return vm.getProductDiscounts({ product: product });\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/product/components/panacee-overview-list.js\n// module id = 967\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar productCertificatesOverviewSearchComponent = exports.productCertificatesOverviewSearchComponent = {\n template: require('./product-certificates-overview-search.html'),\n bindings: {\n searchValue: '=',\n search: '&'\n },\n controllerAs: 'vm',\n controller: function productCertificatesOverviewSearchController() {\n 'ngInject';\n\n var vm = this;\n vm.onSearch = onSearch;\n vm.searchValue;\n\n function onSearch() {\n vm.search({ $event: vm.searchValue });\n }\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/product/components/product-certificates-overview-search.js\n// module id = 968\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.productDetailContentComponent = undefined;\n\nvar _marked = require('marked');\n\nvar _marked2 = _interopRequireDefault(_marked);\n\nvar _markedRenderer = require('./../../../common/core/markedRenderer');\n\nvar _markedRenderer2 = _interopRequireDefault(_markedRenderer);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_marked2.default.setOptions({\n renderer: _markedRenderer2.default,\n breaks: false,\n sanitize: true\n});\n\nvar productDetailContentComponent = exports.productDetailContentComponent = {\n template: require('./product-detail-content.html'),\n bindings: {\n product: '=',\n onChange: '&',\n addToCart: '&',\n parentState: '<'\n },\n controllerAs: 'vm',\n controller: [\"$scope\", \"cartService\", \"productService\", \"Enums\", \"authService\", function controller($scope, cartService, productService, Enums, authService) {\n 'ngInject';\n\n var vm = this;\n vm.onChangeQuantity = onChangeQuantity;\n vm.addToCartEnabled = true;\n vm.$onInit = init;\n vm.checkedStock = false;\n vm.stock = null;\n vm.context = Enums.productContexts['PRODUCTDETAIL'];\n vm.getGrossProfit = getGrossProfit;\n vm.getProductDiscounts = getProductDiscounts;\n vm.addProductToCart = addProductToCart;\n vm.isFebelcoCustomer = isFebelcoCustomer;\n vm.productDiscounts = {};\n $scope.forms = {};\n\n /* On it prepare the marked data */\n function init() {\n if (vm.product.mediPimData) {\n vm.product.mediPimData = Object.assign(vm.product.mediPimData, {\n description: (0, _marked2.default)(vm.product.mediPimData.description || '')\n });\n }\n vm.getProductDiscounts();\n }\n\n /* get the product discounts */\n function getProductDiscounts() {\n vm.productDiscounts = vm.product.productDiscounts;\n\n // productService.getProductDiscounts(vm.product.id).then(x => {\n // vm.productDiscounts = productService.formatProductDiscount(x);\n // });\n }\n\n /* On change: update the product totals */\n function onChangeQuantity() {\n // vm.product.updateTotals();\n vm.onChange();\n }\n\n /* Calculate the gross profit */\n function getGrossProfit() {\n return productService.calculateGrossProfitWithoutDiscount(vm.product);\n }\n\n // function getGrossProfitAmount(){\n // return productService.calculateGrossProfitAmount(vm.product);\n // }\n\n function addProductToCart() {\n $scope.forms.productOverviewForm.$setPristine();\n vm.addToCart();\n }\n\n function isFebelcoCustomer() {\n return authService.isFebelcoCustomer;\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/product/components/product-detail-content.js\n// module id = 969\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar productDiscountsComponent = exports.productDiscountsComponent = {\n template: require('./product-discounts.html'),\n bindings: {\n close: '&',\n context: '<',\n portalContractTypeCode: '<',\n isLoading: '<',\n parentState: '<',\n productDiscounts: '<',\n parentProductType: '<',\n activeDiscounts: '<',\n totalPriceDiscountIds: '<'\n },\n controllerAs: 'vm',\n controller: [\"common\", \"discountTypeNames\", function controller(common, discountTypeNames) {\n 'ngInject';\n\n var vm = this;\n vm.getDiscountType = getDiscountType;\n vm.isActiveDiscount = isActiveDiscount;\n vm.isTotalPriceDiscountId = isTotalPriceDiscountId;\n vm.counter = getCounter;\n\n function getDiscountType(discountType) {\n return discountTypeNames[discountType].clientValue;\n }\n function getCounter() {\n return;\n }\n function isActiveDiscount(productDiscount) {\n var idSearch = vm.activeDiscounts.find(function (activeDiscountId) {\n return productDiscount.discountId === activeDiscountId;\n });\n return idSearch ? 'product-discount is-active' : 'product-discount';\n }\n\n function isTotalPriceDiscountId(productDiscount) {\n var idSearch = vm.totalPriceDiscountIds.find(function (totalPriceDiscountId) {\n return productDiscount.discountId === totalPriceDiscountId;\n });\n return idSearch ? 'product-discount is-active' : 'product-discount';\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/product/components/product-discounts.js\n// module id = 970\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar productFiltersComponent = exports.productFiltersComponent = {\n template: require('./product-filters.html'),\n bindings: {\n filter: '<',\n paging: '=',\n changeFilters: '&',\n filternavFolder: '&'\n },\n controllerAs: 'vm',\n controller: function controller() {\n 'ngInject';\n\n var vm = this;\n vm.changeFilterCategoryLimit = changeFilterCategoryLimit;\n vm.onChangeFilters = onChangeFilters;\n vm.expandFilters = expandFilters;\n vm.getFilterCategories = getFilterCategories;\n\n function getFilterCategories() {\n vm.expandFilters();\n return vm.filter.filterCategories;\n }\n\n function changeFilterCategoryLimit(category, limit) {\n category.limit = limit;\n }\n\n function onChangeFilters($event) {\n vm.changeFilters({ 'filter': $event.filter, 'category': $event.category });\n }\n function expandFilters() {\n var _this = this;\n\n if (!vm.filter.isAutoExpanded) {\n vm.filter.isAutoExpanded = true;\n vm.filter.filterCategories.forEach(function (category) {\n for (var i = category.items.length - 1; i >= 0; i--) {\n if (category.items[i].isSelected && i + 1 > category.limit) {\n _this.changeFilterCategoryLimit(category, 9999);\n break;\n }\n }\n });\n }\n }\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/product/components/product-filters.js\n// module id = 971\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar productImageComponent = exports.productImageComponent = {\n //todo gewoon product doorgeven?\n template: require('./product-img.html'),\n bindings: {\n productId: '<',\n image: '<',\n imageSize: '@',\n discount: '<',\n message: '<',\n productClicked: '&',\n navigateToProductDetailPage: '&',\n parentState: '<',\n portalContractTypeCode: '<',\n counterStatus: '<',\n counter: '<',\n maxDiscount: '<',\n discountClicked: '&',\n addLink: '<'\n },\n controllerAs: 'vm'\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/product/components/product-img.js\n// module id = 972\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.productInfoBoxComponent = undefined;\n\nvar _marked = require('marked');\n\nvar _marked2 = _interopRequireDefault(_marked);\n\nvar _markedRenderer = require('./../../../common/core/markedRenderer');\n\nvar _markedRenderer2 = _interopRequireDefault(_markedRenderer);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_marked2.default.setOptions({\n renderer: _markedRenderer2.default,\n breaks: false,\n sanitize: true\n});\n\nvar productInfoBoxComponent = exports.productInfoBoxComponent = {\n template: require('./product-info-box.html'),\n bindings: {\n title: '@',\n text: '<'\n },\n controllerAs: 'vm',\n controller: function controller() {\n 'ngInject';\n\n var vm = this;\n vm.$onInit = init;\n\n function init() {\n if (vm.text) {\n vm.text = (0, _marked2.default)(vm.text || '');\n }\n }\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/product/components/product-info-box.js\n// module id = 973\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.productInfoComponent = undefined;\n\nvar _marked = require('marked');\n\nvar _marked2 = _interopRequireDefault(_marked);\n\nvar _markedRenderer = require('./../../../common/core/markedRenderer');\n\nvar _markedRenderer2 = _interopRequireDefault(_markedRenderer);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_marked2.default.setOptions({\n renderer: _markedRenderer2.default,\n breaks: false,\n sanitize: true\n});\n\nvar productInfoComponent = exports.productInfoComponent = {\n template: require('./product-info.html'),\n bindings: {\n product: '<'\n },\n controllerAs: 'vm',\n controller: [\"lodash\", \"certificatesService\", function controller(lodash, certificatesService) {\n 'ngInject';\n\n var vm = this;\n vm.hasNotices = hasNotices;\n vm.searchValue = '';\n vm.batchNumberSearch = batchNumberSearch;\n vm.searchByBatchNumber = searchByBatchNumber;\n vm.getCoaUrl = getCoaUrl;\n vm.getMargin = getMargin;\n vm.$onInit = init;\n\n function hasNotices() {\n return vm.product.mediPimData ? vm.product.mediPimData.faggPublicNotice || vm.product.mediPimData.faggSpecialNotice || vm.product.mediPimData.pharmaPublicNotice || vm.product.mediPimData.pharmaSpecialNotice || vm.product.mediPimData.laboPublicNotice || vm.product.mediPimData.laboSpecialNotice : false;\n }\n\n function init() {\n if (vm.product.mediPimData) {\n vm.appstores = lodash.filter(vm.product.mediPimData.media, function (i) {\n return i.type === 1;\n });\n vm.leaflets = lodash.filter(vm.product.mediPimData.media, function (i) {\n return i.type === 2;\n });\n vm.videos = lodash.filter(vm.product.mediPimData.media, function (i) {\n return i.type === 3;\n });\n vm.websites = lodash.filter(vm.product.mediPimData.media, function (i) {\n return i.type === 4;\n });\n }\n }\n\n function searchByBatchNumber(event) {\n vm.searchValue = event;\n }\n\n function batchNumberSearch(item) {\n if (vm.searchValue === '' || item.batchNumber && item.batchNumber.toLowerCase().indexOf(vm.searchValue) !== -1) {\n return true;\n }\n return false;\n }\n\n function getCoaUrl(id) {\n return certificatesService.getCoaUrl(id);\n }\n\n function getMargin(size) {\n return { \"margin-left\": +2 * (size - 1) + \"em\" };\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/product/components/product-info.js\n// module id = 974\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar productOverviewGridItemComponent = exports.productOverviewGridItemComponent = {\n template: require('./product-overview-grid-item.html'),\n bindings: {\n product: '=',\n isLast: '=',\n context: '<',\n parentState: '<',\n onChangeQuantity: '&',\n getProductDiscounts: '&'\n },\n controllerAs: 'vm',\n controller: [\"$scope\", \"cartService\", \"common\", \"exceptionService\", \"gettextCatalog\", \"Analytics\", \"$stateParams\", \"$state\", \"productService\", \"authService\", function controller($scope, cartService, common, exceptionService, gettextCatalog, Analytics, $stateParams, $state, productService, authService) {\n 'ngInject';\n\n var vm = this;\n vm.categoryId = $stateParams.id;\n vm.productDiscountsOpen = false;\n vm.productDiscounts = {};\n vm.productDiscountClicked = productDiscountClicked;\n vm.loadProductDiscounts = loadProductDiscounts;\n vm.toggleProductDiscounts = toggleProductDiscounts;\n vm.getDiscountPrice = getDiscountPrice;\n vm.getGrossProfit = getGrossProfit;\n vm.closeProductDiscounts = closeProductDiscounts;\n vm.productClicked = productClicked;\n vm.isFebelcoCustomer = isFebelcoCustomer;\n vm.counter = vm.product.counter;\n vm.soldOut = false;\n\n /* Get the discount price */\n function getDiscountPrice() {\n return vm.product.price - vm.product.price * vm.product.discountPct / 100;\n }\n\n /* Get the gross profit */\n function getGrossProfit() {\n return productService.calculateGrossProfitWithoutDiscount(vm.product);\n }\n\n /* google analytics when product clicked */\n function productClicked() {\n Analytics.addProduct(vm.product.id, vm.product.name, '', vm.product.brand, '', vm.product.price, '', '', '', { sellerId: vm.product.sellerId, sellerName: vm.product.sellerName, discountId: vm.product.discountId });\n Analytics.productClick(vm.context);\n Analytics.trackEvent('Product', 'click', vm.product.name);\n common.log.info('Analysis: product clicked', vm.product.name);\n }\n\n /* google analytics when product clicked */\n function productDiscountClicked() {\n // Analytics.addProduct(vm.product.id, vm.product.name, '', vm.product.brand, '', vm.product.price, '', '', '', { dimension1: vm.product.sellerId, dimension2: vm.product.sellerName, dimension3: vm.product.discountId });\n // Analytics.productClick(vm.context);\n Analytics.trackEvent('ProductDiscount', 'click', vm.product.name);\n common.log.info('Analysis: product discount clicked', vm.product.name);\n }\n\n /* load the product discounts */\n function loadProductDiscounts() {\n productDiscountClicked();\n if (vm.product.maxDiscount !== null || vm.product.portalContractTypeCode === 'AGIOS') {\n vm.productDiscountsOpen = true;\n if (Object.keys(vm.productDiscounts).length === 0) {\n vm.productDiscountsLoading = true;\n\n //todo get the resolved discounts object from the parent and not the promise (bad practice)\n vm.getProductDiscounts(vm.product).then(function (result) {\n vm.productDiscountsLoading = false;\n vm.productDiscounts = productService.formatProductDiscount(result);\n });\n }\n }\n }\n\n /* open the product discounts */\n function toggleProductDiscounts() {\n if (vm.product.maxDiscount !== null || vm.product.portalContractTypeCode === 'AGIOS') {\n if (vm.productDiscountsOpen) {\n closeProductDiscounts();\n } else {\n loadProductDiscounts();\n }\n }\n }\n\n /* close the product discounts */\n function closeProductDiscounts() {\n vm.productDiscountsOpen = false;\n }\n\n function isFebelcoCustomer() {\n return authService.isFebelcoCustomer;\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/product/components/product-overview-grid-item.js\n// module id = 975\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar productOverviewGridComponent = exports.productOverviewGridComponent = {\n template: require('./product-overview-grid.html'),\n bindings: {\n products: '<',\n errorOccurred: '<',\n context: '<',\n parentState: '<',\n onChangeQuantity: '&',\n orderByProperty: '<',\n filter: '<',\n isOrderByDescending: '<',\n getProductDiscounts: '&',\n searchText: '<'\n },\n controllerAs: 'vm',\n controller: function productOverviewGridController() {\n 'ngInject';\n\n var vm = this;\n vm.$onInit = init;\n vm.getProductDiscountsList = getProductDiscountsList;\n\n function init() {}\n // angular.forEach(vm.products, (p) => {\n // Analytics.addImpression(p.id, p.name, vm.context, p.brand, '', '', '', p.price, { dimension1: p.sellerId, dimension2: p.sellerName, dimension3: p.discountId });\n // });\n // Analytics.pageView(); \n\n\n /* get the product discounts */\n function getProductDiscountsList(product) {\n return vm.getProductDiscounts({ product: product });\n }\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/product/components/product-overview-grid.js\n// module id = 976\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar productOverviewListItemComponent = exports.productOverviewListItemComponent = {\n template: require('./product-overview-list-item.html'),\n bindings: {\n product: '=',\n context: '<',\n parentState: '<',\n onChangeQuantity: '&',\n getProductDiscounts: '&'\n },\n controllerAs: 'vm',\n controller: [\"$scope\", \"cartService\", \"common\", \"exceptionService\", \"gettextCatalog\", \"Analytics\", \"$stateParams\", \"$state\", \"productService\", \"authService\", function controller($scope, cartService, common, exceptionService, gettextCatalog, Analytics, $stateParams, $state, productService, authService) {\n 'ngInject';\n\n var vm = this;\n vm.productClicked = productClicked;\n vm.categoryId = $stateParams.id;\n vm.loadProductDiscounts = loadProductDiscounts;\n vm.toggleProductDiscounts = toggleProductDiscounts;\n vm.getGrossProfit = getGrossProfit;\n vm.productDiscountsOpen = false;\n vm.getDiscountPrice = getDiscountPrice;\n vm.productDiscounts = {};\n vm.closeProductDiscounts = closeProductDiscounts;\n vm.changeQuantity = changeQuantity;\n vm.isFebelcoCustomer = isFebelcoCustomer;\n\n vm.soldOut = false;\n\n function changeQuantity(product) {\n vm.onChangeQuantity({ $event: product });\n }\n\n // TODO put in product model\n /* Get the discount price */\n function getDiscountPrice() {\n return vm.product.price - vm.product.price * vm.product.discountPct / 100;\n }\n\n /* Get the gross profit */\n function getGrossProfit() {\n return productService.calculateGrossProfitWithoutDiscount(vm.product);\n }\n\n /* google analytics when product clicked */\n function productClicked() {\n Analytics.addProduct(vm.product.id, vm.product.name, '', vm.product.brand, '', vm.product.price, '', '', '', { sellerId: vm.product.sellerId, sellerName: vm.product.sellerName, discountId: vm.product.discountId });\n Analytics.productClick(vm.context);\n Analytics.trackEvent('Product', 'click', vm.product.name);\n common.log.info('Analysis: product clicked', vm.product.name);\n }\n\n /* google analytics when discount clicked */\n function productDiscountClicked() {\n Analytics.trackEvent('ProductDiscount', 'click', vm.product.name);\n common.log.info('Analysis: product discount clicked', vm.product.name);\n }\n\n /* load the product discounts */\n function loadProductDiscounts() {\n productDiscountClicked();\n if (vm.product.maxDiscount !== null || vm.product.portalContractTypeCode === 'AGIOS') {\n vm.productDiscountsOpen = true;\n if (Object.keys(vm.productDiscounts).length === 0) {\n vm.productDiscountsLoading = true;\n vm.getProductDiscounts(vm.product).then(function (result) {\n vm.productDiscountsLoading = false;\n vm.productDiscounts = productService.formatProductDiscount(result);\n });\n }\n }\n }\n\n /* open the product discounts */\n function toggleProductDiscounts() {\n if (vm.product.maxDiscount !== null || vm.product.portalContractTypeCode === 'AGIOS') {\n if (vm.productDiscountsOpen) {\n closeProductDiscounts();\n } else {\n loadProductDiscounts();\n }\n }\n }\n\n /* close the product discounts */\n function closeProductDiscounts() {\n vm.productDiscountsOpen = false;\n }\n\n function isFebelcoCustomer() {\n return authService.isFebelcoCustomer;\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/product/components/product-overview-list-item.js\n// module id = 977\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar productOverviewListComponent = exports.productOverviewListComponent = {\n template: require('./product-overview-list.html'),\n bindings: {\n products: '<',\n errorOccurred: '<',\n context: '<',\n viewMode: '=',\n parentState: '<',\n onChangeQuantity: '&',\n filter: '<',\n isOrderByDescending: '<',\n getProductDiscounts: '&',\n searchText: '<'\n },\n controllerAs: 'vm',\n controller: function productOverviewListController() {\n 'ngInject';\n\n var vm = this;\n vm.$onInit = init;\n vm.getProductDiscountsList = getProductDiscountsList;\n vm.changeQuantity = changeQuantity;\n\n function init() {\n // angular.forEach(vm.products, (p) => { \n // Analytics.addImpression(p.id, p.name, vm.context, p.brand, '', '', '', p.price, { sellerId: p.sellerId, sellerName: p.sellerName, discountId: p.discountId });\n // });\n vm.productsWithInternalQuantity = vm.products.filter(function (x) {\n return x.internalQuantity > 1;\n });\n vm.productsWithoutInternalQuantity = vm.products.filter(function (x) {\n return x.internalQuantity === 1;\n });\n // Analytics.pageView();\n }\n\n function changeQuantity($event) {\n vm.onChangeQuantity({ $event: $event });\n }\n\n /* get the product discounts */\n function getProductDiscountsList(product) {\n return vm.getProductDiscounts({ product: product });\n }\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/product/components/product-overview-list.js\n// module id = 978\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar productOverviewToolbarComponent = exports.productOverviewToolbarComponent = {\n template: require('./product-overview-toolbar.html'),\n bindings: {\n paging: '=',\n sorting: '=',\n viewMode: '=',\n placement: '@',\n changeItemsPerPage: '&',\n goToPage: '&',\n changeSorting: '&',\n changeViewMode: '&'\n },\n controllerAs: 'vm',\n controller: [\"$scope\", function controller($scope) {\n 'ngInject';\n\n var vm = this;\n vm.pagecountList = [24, 48, 72, 96, 120];\n vm.$onInit = init;\n\n /* view mode */\n function init() {\n $scope.$watch('vm.paging.itemsPerPage', function (newValue, oldValue) {\n if (!angular.equals(newValue, oldValue)) {\n vm.changeItemsPerPage({ itemsPerPage: vm.paging.itemsPerPage });\n }\n });\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/product/components/product-overview-toolbar.js\n// module id = 979\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar productOverviewComponent = exports.productOverviewComponent = {\n template: require('./product-overview.html'),\n bindings: {\n model: '<',\n context: '<',\n getProducts: '&',\n onFilterChange: '&',\n parentState: '<'\n },\n controllerAs: 'vm',\n controller: [\"$scope\", \"$stateParams\", \"productService\", \"queryStringHelper\", \"$state\", \"Enums\", \"$window\", \"cartService\", \"gettextCatalog\", \"exceptionService\", \"$timeout\", \"Analytics\", \"dialogService\", \"authService\", function controller($scope, $stateParams, productService, queryStringHelper, $state, Enums, $window, cartService, gettextCatalog, exceptionService, $timeout, Analytics, dialogService, authService) {\n 'ngInject';\n\n var vm = this;\n vm.viewMode = window.localStorage.getItem('viewMode') || 'list';\n vm.filternavFolderClass = '';\n vm.changeViewMode = changeViewMode;\n vm.changeItemsPerPage = changeItemsPerPage;\n vm.goToPage = goToPage;\n vm.changeSorting = changeSorting;\n vm.changeFilters = changeFilters;\n vm.clearFilter = clearFilter;\n vm.clearFilters = clearFilters;\n vm.filternavFolder = filternavFolder;\n vm.noItemsMessage = null;\n vm.$onInit = init;\n vm.isMobile = false;\n vm.updateQuantity = updateQuantity;\n vm.onChangeQuantity = onChangeQuantity;\n vm.productsQuantityChanged = false;\n vm.addingProducts = false;\n vm.getProductDiscounts = getProductDiscounts;\n $scope.forms = {};\n\n /* view mode */\n function init() {\n\n createNoItemsMessage();\n vm.isMobile = $window.innerWidth < 768;\n setPaging();\n\n //update quantity on enter\n if (authService.isBuyer) {\n angular.element($window).on('keydown', function (event) {\n if (event.which === 13 && vm.addingProducts !== true) {\n vm.updateQuantity();\n }\n });\n }\n }\n if (authService.isBuyer) {\n $scope.$on('$destroy', function () {\n angular.element($window).off('keydown');\n });\n }\n\n function setPaging() {\n vm.model.paging.itemsPerPage = parseInt(window.sessionStorage.getItem('pageSize')) || parseInt($stateParams.pageSize);\n }\n\n function createNoItemsMessage() {\n if (!vm.model.productsAvailableForContext) {\n switch ($state.current.name) {\n case 'seller.discounts' || 'general.discounts':\n vm.noItemsMessage = gettextCatalog.getString('There are currently no discounts available');\n break;\n default:\n vm.noItemsMessage = gettextCatalog.getString('There are currently no products available');\n }\n }\n }\n\n /* change view mode */\n function changeViewMode(viewMode) {\n // set local storage\n window.localStorage.setItem('viewMode', viewMode);\n vm.viewMode = viewMode;\n }\n\n /* change paging */\n function changeItemsPerPage(itemsPerPage) {\n vm.model.isLoading = true;\n vm.model.paging.itemsPerPage = itemsPerPage;\n\n //caching\n window.sessionStorage.setItem('pageSize', itemsPerPage);\n $state.go('.', { page: 1, pageSize: itemsPerPage });\n }\n\n function goToPage(page) {\n if (page !== vm.model.paging.page && page > 0) {\n if ($scope.forms.productOverviewForm.$dirty === true) {\n dialogService.unsavedChanges().then(function () {\n vm.isOpen = false;\n vm.model.isLoading = true;\n if (page === 0 || page > vm.model.paging.pageCount) {\n return;\n }\n $state.go('.', { page: page });\n }, function () {\n return false;\n });\n } else {\n vm.isOpen = false;\n vm.model.isLoading = true;\n if (page === 0 || page > vm.model.paging.pageCount) {\n return;\n }\n $state.go('.', { page: page });\n }\n }\n }\n\n /* sorting changed */\n function changeSorting(sortProperty) {\n //set the new sorting\n var sortAscByDefault = sortProperty.defaultSorting === 'asc';\n vm.model.sorting.sortAsc = sortProperty.value === vm.model.sorting.sortProperty ? !vm.model.sorting.sortAsc : sortAscByDefault;\n vm.model.sorting.sortProperty = sortProperty.value;\n\n // put the new properties in local storage\n window.localStorage.setItem($state.current.name + '-sortProperty', sortProperty.value);\n window.localStorage.setItem($state.current.name + '-sortAsc', vm.model.sorting.sortAsc);\n\n //go to the page with the correct sorting\n $state.go('.', {\n page: 1,\n sortProperty: sortProperty.value,\n sortAsc: vm.model.sorting.sortAsc\n });\n }\n\n /* filters changed */\n function changeFilters(filter, category) {\n vm.model.isLoading = true;\n Analytics.trackEvent('Filter', 'setFilterProductOverview', filter.name, 0, true);\n\n vm.onFilterChange();\n\n // select or unselect\n if (category.id === Enums.categoryFilterType.customCategory.id && $stateParams.filter.indexOf('10_0') !== -1) {\n filter.isSelected = true;\n } else {\n filter.isSelected = !filter.isSelected;\n }\n\n //if the category is a link navigate to that page\n if (category.isLink) {\n navigateToPage(filter, category);\n return;\n }\n\n // on select/unselect, select/unselect all the children when the category is a parent\n if (filter.children && filter.children.length && !filter.isSelected) {\n filter.children.forEach(function (child) {\n child.isSelected = false;\n child.children.forEach(function (child) {\n child.isSelected = false;\n });\n });\n } else if (filter.children && filter.children.length && filter.isSelected) {\n filter.children.forEach(function (child) {\n child.isSelected = true;\n child.children.forEach(function (child) {\n child.isSelected = true;\n });\n });\n }\n\n // create the query string\n var filterParam = queryStringHelper.getFilterParam(vm.model.filter.filterCategories);\n\n // navigate to the route with craeted filter params\n $state.go('.', { page: 1, filter: filterParam });\n }\n\n /* clear the filter */\n function clearFilter(filter, category) {\n vm.model.isLoading = true;\n\n if (category.isLink) {\n return;\n }\n\n // when category is hierarchical, don't get isSelected from the items, but set the query string param directly\n var filterParam = '';\n if (!vm.model.filter.isCategoryHierarchical(category.id)) {\n vm.model.filter.clearFilter(category.id, filter.id);\n filterParam = queryStringHelper.getFilterParam(vm.model.filter.filterCategories);\n } else {\n var selectedId = vm.model.filter.getParentIdOfChildCategory(category.id, filter.id);\n filterParam = queryStringHelper.getFilterParam(vm.model.filter.filterCategories, category.id, selectedId);\n }\n\n $state.go('.', { page: 1, filter: filterParam });\n }\n\n /* reset the page when clearing the filters */\n function clearFilters() {\n vm.model.isLoading = true;\n\n $state.go('.', {\n page: 1,\n pageSize: 24,\n sortProperty: '',\n sortAsc: true,\n filter: ''\n });\n }\n\n /* On filter changed, navigate to correct page */\n function navigateToPage(filter, category) {\n if ($state.current.name === 'seller.products' || $state.current.name === 'seller.products.category') {\n $state.go('seller.products.category', {\n categoryId: filter.id,\n filter: $stateParams.filter === Enums.otherCategoryType.discountsOnly.id + '_1' ? Enums.otherCategoryType.discountsOnly.id + '_1' : '',\n page: 1,\n noReloadFilter: true\n });\n } else if (category.id === Enums.categoryFilterType.customCategory.id) {\n if ($stateParams.filter === '10_0') {\n vm.model.isLoading = false;\n } else {\n $state.go('general.discounts', {\n filter: '10_0',\n page: 1,\n noReloadFilter: true\n });\n }\n } else {\n if (category.id === Enums.otherCategoryType.discountType.id) {\n if ($state.current.name === 'general.discounts.discounttype') {\n $state.go('^.discounttype', {\n id: filter.id,\n filter: '',\n page: 1,\n noReloadFilter: true\n\n });\n } else {\n $state.go('.discounttype', {\n id: filter.id,\n filter: '',\n page: 1,\n noReloadFilter: true\n });\n }\n } else {\n $state.go('general.products.category', {\n categoryId: filter.id,\n filter: $stateParams.filter === Enums.otherCategoryType.discountsOnly.id + '_1' ? Enums.otherCategoryType.discountsOnly.id + '_1' : '',\n page: 1,\n noReloadFilter: true\n });\n }\n }\n }\n\n /* toggle visibility sorting or filters */\n function filternavFolder(folderClass) {\n if (folderClass === vm.filternavFolderClass) {\n folderClass = '';\n }\n vm.filternavFolderClass = folderClass;\n }\n\n /* add products to the shoppingcart */\n function updateQuantity() {\n vm.productsQuantityChanged = false;\n vm.addingProducts = true;\n vm.hasError = false;\n\n var productFilterNoPanacee = vm.model.products.filter(function (x) {\n return x.productTypeCode !== 'panacee';\n });\n\n cartService.updateCartOverview(productFilterNoPanacee).then(function (shoppingCartProducts) {\n\n if ($scope.forms.productOverviewForm) {\n $scope.forms.productOverviewForm.$setPristine();\n }\n\n vm.addingProducts = false;\n vm.productsAdded = true;\n vm.addToCartEnabled = true;\n\n vm.model.products.map(function (product) {\n product.getCartFields(product, shoppingCartProducts);\n });\n\n cartService.setAddedProducts([]);\n cartService.addProductToCartAnalytics();\n\n $timeout(function () {\n vm.isOpen = false;\n vm.productsAdded = false;\n }, 5000);\n }).catch(function () {\n vm.addToCartEnabled = false;\n vm.addingProducts = false;\n vm.hasError = true;\n var msg = gettextCatalog.getString('The product quantity could not be updated');\n $timeout(function () {\n vm.hasError = false;\n vm.isOpen = false;\n }, 5000);\n exceptionService.logException(msg);\n });\n }\n\n /* quantity of product changed */\n function onChangeQuantity($event) {\n if ($event) {\n cartService.addProductToAddedProductsList($event);\n }\n\n if (!vm.addingProducts) {\n vm.isOpen = true;\n vm.productsAdded = false;\n vm.productsQuantityChanged = true;\n }\n }\n\n /* Load product discounts when discount is clicked */\n function getProductDiscounts(product) {\n return productService.getProductDiscounts(product.id);\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/product/components/product-overview.js\n// module id = 980\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar relatedProductsComponent = exports.relatedProductsComponent = {\n template: require('./related-products.html'),\n bindings: {\n product: '<'\n },\n controllerAs: 'vm'\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/product/components/related-products.js\n// module id = 981\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar selectedFiltersComponent = exports.selectedFiltersComponent = {\n template: require('./selected-filters.html'),\n bindings: {\n selectedFilters: '=',\n clearFilters: '&',\n clearFilter: '&'\n },\n controllerAs: 'vm'\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/product/components/selected-filters.js\n// module id = 982\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar stockResponseComponent = exports.stockResponseComponent = {\n template: require('./stock-response.html'),\n bindings: {\n product: '=',\n checkStock: '&',\n stockOverview: '<'\n },\n controllerAs: 'vm'\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/product/components/stock-response.js\n// module id = 983\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar productDetailComponent = exports.productDetailComponent = {\n template: require('./detail.html'),\n bindings: {\n product: '<',\n parentState: '<'\n },\n controllerAs: 'vm',\n controller: [\"$scope\", \"$state\", \"common\", \"newsService\", \"Analytics\", \"productService\", \"StockOverview\", \"cartService\", \"gettextCatalog\", \"exceptionService\", \"$timeout\", \"$window\", \"ProductTypes\", \"authService\", \"$stateParams\", \"certificatesService\", function controller($scope, $state, common, newsService, Analytics, productService, StockOverview, cartService, gettextCatalog, exceptionService, $timeout, $window, ProductTypes, authService, $stateParams, certificatesService) {\n 'ngInject';\n\n var vm = this;\n vm.newsitems = null;\n vm.topNewsitems = null;\n vm.shortNewsitems = null;\n vm.medipimDataLoading = false;\n vm.isEmptyObject = isEmptyObject;\n vm.$onInit = init;\n vm.updateTotals = updateTotals;\n vm.checkStock = checkStock;\n vm.addToCart = addToCart;\n vm.isFebelcoCustomer = isFebelcoCustomer;\n vm.loadMedipimData = loadMedipimData;\n vm.loadIcoreData = loadIcoreData;\n $scope.forms = {};\n\n function init() {\n\n common.setTitle(vm.product.displayName);\n Analytics.trackPage('/' + common.localization.getCurrentLanguage() + '/products/' + vm.product.id, vm.product.displayName);\n if (vm.product.type === 'single') {\n loadMedipimData();\n }\n loadIcoreData();\n //update quantity on enter\n if (authService.isBuyer) {\n angular.element($window).on('keydown', function (event) {\n if (event.which === 13 && vm.addingProducts !== true && vm.productsQuantityChanged) {\n vm.addToCart();\n }\n });\n\n $scope.$on('$destroy', function () {\n angular.element($window).off('keydown');\n });\n }\n\n vm.topNewsitems = vm.product.topNewsitems;\n\n vm.mainImage = vm.product.image;\n\n Analytics.addProduct(vm.product.id, vm.product.displayName, vm.product.type, vm.product.brand, '', vm.product.price, vm.product.quantity, '', '', {\n sellerId: vm.product.sellerId,\n sellerName: vm.product.sellerName,\n discountId: vm.product.discountId\n });\n\n Analytics.trackDetail();\n }\n\n function isEmptyObject(o) {\n if (o) {\n return Object.keys(o).every(function (x) {\n return o[x] === '' || o[x] === null || o[x] === false || o[x] === 0 || o[x] === undefined;\n });\n } else {\n return true;\n }\n }\n\n function loadMedipimData() {\n vm.medipimDataLoading = true;\n productService.getProductMedipimdata($stateParams.productId).then(function (medipimData) {\n vm.medipimDataLoading = false;\n vm.product.mediPimData = medipimData;\n });\n }\n\n function loadIcoreData() {\n var search = {\n identification: vm.product.nationalNumber,\n isExpired: false\n };\n certificatesService.searchCertificates(search).then(function (response) {\n vm.product.certificates = response.results;\n });\n }\n\n function updateTotals() {\n vm.isOpen = true;\n vm.productsAdded = false;\n vm.productsQuantityChanged = true;\n if (vm.product.type === ProductTypes.panacee.clientValue) {\n vm.product.updateTotals();\n }\n }\n\n function checkStock() {\n vm.stockOverview = StockOverview.create();\n vm.stockOverview.isLoading = true;\n var quantity = vm.product.quantity === 0 ? 1 : vm.product.quantity;\n productService.getProductStock(vm.stockOverview, vm.product.nationalNumber, quantity).then(function (model) {\n vm.stockOverview.hasloaded = true;\n vm.stockOverview.isLoading = false;\n vm.stockOverview = model;\n });\n }\n\n function addToCart() {\n\n vm.productsQuantityChanged = false;\n vm.addingProducts = true;\n vm.hasError = false;\n\n cartService.addProduct(vm.product).then(function (shoppingCartProducts) {\n\n if ($scope.forms.productOverviewForm) {\n $scope.forms.productOverviewForm.$setPristine();\n }\n\n //update the discount values after add\n vm.product = vm.product.getCartFields(vm.product, shoppingCartProducts);\n vm.productsAdded = true;\n vm.addToCartEnabled = true;\n vm.addingProducts = false;\n\n $timeout(function () {\n vm.isOpen = false;\n }, 5000);\n }).catch(function () {\n\n vm.addToCartEnabled = false;\n vm.addingProducts = false;\n vm.hasError = true;\n\n var msg = gettextCatalog.getString('The product could not be added to your shopping cart');\n exceptionService.logException(msg);\n\n $timeout(function () {\n vm.hasError = false;\n vm.isOpen = false;\n }, 5000);\n });\n }\n\n function isFebelcoCustomer() {\n return authService.isFebelcoCustomer;\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/product/detail.js\n// module id = 984\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _angular = require('angular');\n\nvar _angular2 = _interopRequireDefault(_angular);\n\nvar _detail = require('./detail');\n\nvar _news = require('./news');\n\nvar _includedProductsInPack = require('./components/included-products-in-pack');\n\nvar _includedProductsInPanacee = require('./components/included-products-in-panacee');\n\nvar _productDetailContent = require('./components/product-detail-content');\n\nvar _productImg = require('./components/product-img');\n\nvar _productInfo = require('./components/product-info');\n\nvar _productInfoBox = require('./components/product-info-box');\n\nvar _relatedProducts = require('./components/related-products');\n\nvar _productDiscounts = require('./components/product-discounts');\n\nvar _productFilters = require('./components/product-filters');\n\nvar _productOverview = require('./components/product-overview');\n\nvar _productOverviewToolbar = require('./components/product-overview-toolbar');\n\nvar _productOverviewGrid = require('./components/product-overview-grid');\n\nvar _productOverviewGridItem = require('./components/product-overview-grid-item');\n\nvar _panaceeOverviewGrid = require('./components/panacee-overview-grid');\n\nvar _panaceeOverviewGridItem = require('./components/panacee-overview-grid-item');\n\nvar _productOverviewList = require('./components/product-overview-list');\n\nvar _productOverviewListItem = require('./components/product-overview-list-item');\n\nvar _panaceeOverviewList = require('./components/panacee-overview-list');\n\nvar _panaceeOverviewListItem = require('./components/panacee-overview-list-item');\n\nvar _selectedFilters = require('./components/selected-filters');\n\nvar _stockResponse = require('./components/stock-response');\n\nvar _addProductsToolbar = require('./components/add-products-toolbar');\n\nvar _medipimInfo = require('./components/medipim-info');\n\nvar _productCertificatesOverviewSearch = require('./components/product-certificates-overview-search');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _module = _angular2.default.module('app.product', []).config([\"$stateProvider\", function ($stateProvider) {\n 'ngInject';\n\n $stateProvider.state('master.product-news', {\n url: '/products/{id:int}/news?page&categoryId&searchValue',\n views: {\n 'main@root': {\n component: 'productNews'\n }\n },\n resolve: {\n product: [\"$stateParams\", \"productService\", function product($stateParams, productService) {\n return productService.get($stateParams.id);\n }]\n },\n reloadOnSearch: false,\n params: {\n page: { value: '1', squash: true },\n categoryId: { value: '0', squash: true },\n searchValue: { value: '', squash: true }\n }\n }).state('seller.product-news', {\n url: '/products/{id:int}/news?page&categoryId&searchValue',\n views: {\n 'main@root': {\n component: 'productNews'\n }\n },\n resolve: {\n product: [\"$stateParams\", \"productService\", function product($stateParams, productService) {\n return productService.get($stateParams.id);\n }]\n },\n reloadOnSearch: false,\n params: {\n page: { value: '1', squash: true },\n categoryId: { value: '0', squash: true },\n searchValue: { value: '', squash: true }\n }\n }).state('general.products.product', {\n url: '/{productId:int}',\n views: {\n 'main@root': {\n component: 'product'\n }\n },\n resolve: {\n product: [\"$stateParams\", \"productService\", \"$state\", function product($stateParams, productService, $state) {\n return productService.get($stateParams.productId).then(function (result) {\n if (result.type === 'RENTAL') {\n $state.go('seller.rentProductDetail', { sellerId: result.sellerId, productId: result.id }, { reload: true });\n } else {\n return result;\n }\n });\n }]\n },\n reloadOnSearch: false,\n params: {\n productId: {\n value: null,\n squash: true\n },\n loadingOverlay: true\n },\n ncyBreadcrumb: {\n label: '{{$resolve.product.displayName}}'\n },\n data: {\n febelcoCustomer: false\n },\n title: function title($resolve) {\n return $resolve.product.displayName;\n }\n });\n}]).component('product', _detail.productDetailComponent).component('productNews', _news.productNewsComponent).component('includedProductsInPack', _includedProductsInPack.includedProductsInPackComponent).component('includedProductsInPanacee', _includedProductsInPanacee.includedProductsInPanaceeComponent).component('productDetailContent', _productDetailContent.productDetailContentComponent).component('productImg', _productImg.productImageComponent).component('productInfo', _productInfo.productInfoComponent).component('productInfoBox', _productInfoBox.productInfoBoxComponent).component('relatedProducts', _relatedProducts.relatedProductsComponent).component('productFilters', _productFilters.productFiltersComponent).component('productDiscounts', _productDiscounts.productDiscountsComponent).component('productOverview', _productOverview.productOverviewComponent).component('productOverviewToolbar', _productOverviewToolbar.productOverviewToolbarComponent).component('productOverviewGrid', _productOverviewGrid.productOverviewGridComponent).component('productOverviewGridItem', _productOverviewGridItem.productOverviewGridItemComponent).component('panaceeOverviewGrid', _panaceeOverviewGrid.panaceeOverviewGridComponent).component('panaceeOverviewGridItem', _panaceeOverviewGridItem.panaceeOverviewGridItemComponent).component('productOverviewList', _productOverviewList.productOverviewListComponent).component('productOverviewListItem', _productOverviewListItem.productOverviewListItemComponent).component('panaceeOverviewList', _panaceeOverviewList.panaceeOverviewListComponent).component('panaceeOverviewListItem', _panaceeOverviewListItem.panaceeOverviewListItemComponent).component('selectedFilters', _selectedFilters.selectedFiltersComponent).component('stockResponse', _stockResponse.stockResponseComponent).component('addProductsToolbar', _addProductsToolbar.addProductsToolbar).component('medipimInfo', _medipimInfo.medipimInfoComponent).component('productCertificatesOverviewSearch', _productCertificatesOverviewSearch.productCertificatesOverviewSearchComponent);\n\nexports.default = _module.name;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/product/index.js\n// module id = 985\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar productNewsComponent = exports.productNewsComponent = {\n template: require('./news.html'),\n bindings: {\n product: '<'\n },\n controllerAs: 'vm',\n controller: [\"$scope\", \"common\", \"newsOverviewService\", \"Enums\", \"gettextCatalog\", function productNewsController($scope, common, newsOverviewService, Enums, gettextCatalog) {\n 'ngInject';\n\n var vm = this;\n vm.newsOverviewModel = null;\n vm.$onInit = init;\n\n function init() {\n common.navigationMenu.setProductsActive();\n common.setTitle(gettextCatalog.getString('News for ') + vm.product.name);\n newsOverviewService.handleGetNews($scope, Enums.newsContext.product.id, { productId: vm.product.id }).then(function (i) {\n return vm.newsOverviewModel = i;\n });\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/product/news.js\n// module id = 986\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar rentProductImageComponent = exports.rentProductImageComponent = {\n //todo gewoon product doorgeven?\n template: require('./rent-product-img.html'),\n bindings: {\n productId: '<',\n sellerId: '<',\n image: '<',\n imageSize: '@',\n discount: '<',\n message: '<',\n productClicked: '&',\n navigateToProductDetailPage: '&',\n parentState: '<',\n addLink: '<',\n productType: '<'\n },\n controllerAs: 'vm'\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/rental/components/rent-product-img.js\n// module id = 987\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar rentProductOverviewGridItemComponent = exports.rentProductOverviewGridItemComponent = {\n template: require('./rent-product-overview-grid-item.html'),\n bindings: {\n product: '<'\n },\n controllerAs: 'vm'\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/rental/components/rent-product-overview-grid-item.js\n// module id = 988\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar rentProductOverviewGridComponent = exports.rentProductOverviewGridComponent = {\n template: require('./rent-product-overview-grid.html'),\n bindings: {\n products: '<',\n mode: '<'\n },\n controllerAs: 'vm'\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/rental/components/rent-product-overview-grid.js\n// module id = 989\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.rentalCheckoutDeliveryInfoComponent = undefined;\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar rentalCheckoutDeliveryInfoComponent = exports.rentalCheckoutDeliveryInfoComponent = {\n template: require('./rental-checkout-delivery-info.html'),\n bindings: {\n rentalProduct: '<',\n deliveryInfo: '<',\n contactInfo: '<',\n onContactInfoChange: '&',\n onDeliveryInfoChange: '&',\n onFormChange: '&',\n onCityChange: '&',\n formReference: '<'\n },\n controllerAs: 'vm',\n controller: [\"rentalProductsService\", \"$timeout\", function controller(rentalProductsService, $timeout) {\n 'ngInject';\n\n var vm = this;\n vm.$onInit = init;\n vm.changeTelephoneNumber = changeTelephoneNumber;\n vm.changeContactPerson = changeContactPerson;\n vm.changeCity = changeCity;\n vm.changeBox = changeBox;\n vm.changeHouseNumber = changeHouseNumber;\n vm.changeStreetName = changeStreetName;\n vm.checkForBackSpace = checkForBackSpace;\n vm.changeRemark = changeRemark;\n vm.changeDate = changeDate;\n vm.searchStreet = searchStreet;\n vm.searchCities = searchCities;\n vm.formchange = formchange;\n vm.citySearchString = vm.deliveryInfo.cityName ? vm.deliveryInfo.cityName : '';\n vm.streetSearchString = vm.deliveryInfo.streetName ? vm.deliveryInfo.streetName : '';\n\n function init() {\n var minDate;\n if (vm.rentalProduct.deliveryByExternalPartner) {\n if ((0, _moment2.default)().isoWeekday() === 5 || (0, _moment2.default)().isoWeekday() === 6) {\n minDate = (0, _moment2.default)().add(3, 'days');\n } else {\n minDate = (0, _moment2.default)().add(2, 'days');\n }\n } else {\n minDate = (0, _moment2.default)().add(1, 'days');\n }\n vm.fromDate = minDate.toISOString();\n vm.maxDate = (0, _moment2.default)().add(1, 'months').toISOString();\n vm.deliveryInfo.deliveryDate ? null : vm.deliveryInfo.deliveryDate = minDate; //if there is no deliveryDate, set a default\n }\n\n $timeout(function () {\n vm.formchange(); //hack to trigger validation when going to the previous page\n });\n\n function searchCities(query) {\n vm.deliveryInfo.postalLocalityId = 0;\n vm.deliveryInfo.cityName = '';\n vm.deliveryInfo.postalCode = '';\n vm.streetSearchString = '';\n vm.deliveryInfo.streetName = '';\n vm.deliveryInfo.streetId = 0;\n vm.formchange();\n return rentalProductsService.searchCities(query);\n }\n\n function searchStreet(query) {\n vm.deliveryInfo.streetName = '';\n vm.deliveryInfo.streetId = 0;\n vm.formchange();\n return rentalProductsService.searchStreet(query, vm.deliveryInfo.postalLocalityId);\n }\n\n function formchange() {\n vm.onFormChange();\n }\n\n function changeDate($event) {\n vm.deliveryInfo.deliveryDate = $event;\n this.onDeliveryInfoChange({ $event: vm.deliveryInfo });\n vm.formchange();\n }\n\n function changeCity(item) {\n vm.deliveryInfo.postalLocalityId = item.id;\n vm.deliveryInfo.cityName = item.name;\n vm.deliveryInfo.postalCode = item.postalCode;\n this.onDeliveryInfoChange({ $event: vm.deliveryInfo });\n vm.formchange();\n }\n\n function checkForBackSpace(event) {\n if (event.keyCode === 8) {\n vm.deliveryInfo.streetId = 0;\n }\n vm.formchange();\n }\n\n function changeStreetName(item) {\n vm.deliveryInfo.streetName = item.name;\n vm.deliveryInfo.streetId = item.id;\n this.onDeliveryInfoChange({ $event: vm.deliveryInfo });\n vm.formchange();\n }\n\n function changeBox(deliveryInfo) {\n this.onDeliveryInfoChange({ $event: deliveryInfo });\n vm.formchange();\n }\n\n function changeHouseNumber(deliveryInfo) {\n this.onDeliveryInfoChange({ $event: deliveryInfo });\n vm.formchange();\n }\n\n function changeRemark(deliveryInfo) {\n this.onDeliveryInfoChange({ $event: deliveryInfo });\n vm.formchange();\n }\n\n function changeContactPerson(contactInfo) {\n this.onContactInfoChange({ $event: contactInfo });\n vm.formchange();\n }\n\n function changeTelephoneNumber(contactInfo) {\n this.onContactInfoChange({ $event: contactInfo });\n vm.formchange();\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/rental/components/rental-checkout-delivery-info.js\n// module id = 990\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar rentalCheckoutProductInfoComponent = exports.rentalCheckoutProductInfoComponent = {\n template: require('./rental-checkout-product-info.html'),\n bindings: {\n rentalProduct: '<'\n },\n controllerAs: 'vm'\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/rental/components/rental-checkout-product-info.js\n// module id = 991\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.rentalWizardButton = rentalWizardButton;\n/*@ngInject*/\n\nfunction rentalWizardButton() {\n return {\n restrict: 'A',\n replace: false,\n require: '^rentalWizard',\n link: function link($scope, $element, $attrs, wizard) {\n var action;\n\n if ($attrs.wzNext !== undefined) {\n action = 'next';\n } else if ($attrs.wzPrevious !== undefined) {\n action = 'previous';\n } else if ($attrs.wzFinish !== undefined) {\n action = 'finish';\n } else if ($attrs.wzCancel !== undefined) {\n action = 'cancel';\n }\n\n $element.on('click', function (e) {\n if ($attrs.wzValid !== 'false') {\n e.preventDefault();\n $scope.$apply(function () {\n wizard[action]();\n });\n }\n return;\n });\n }\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/rental/components/rental-checkout-wizard/rental-wizard-button.js\n// module id = 992\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar rentalWizardMenuComponent = exports.rentalWizardMenuComponent = {\n template: require('./rental-wizard-menu.html'),\n bindings: {\n steps: '<',\n activeStep: '<'\n },\n controllerAs: 'vm'\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/rental/components/rental-checkout-wizard/rental-wizard-menu.js\n// module id = 993\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar rentalWizardStepComponent = exports.rentalWizardStepComponent = {\n template: require('./rental-wizard-step.html'),\n controllerAs: 'vmWizardStep',\n bindings: {\n showStep: '<',\n menuLabel: '<',\n isValid: '<'\n },\n require: {\n wizard: '^rentalWizard'\n },\n transclude: true,\n controller: function controller() {\n 'ngInject';\n\n var vm = this;\n vm.$onInit = init;\n vm.isActive = false;\n vm.setIsActive = setIsActive;\n\n function init() {\n if (vm.showStep !== false) {\n vm.wizard.registerStep(vm);\n vm.wizard.registerMenuStep(vm.menuLabel);\n }\n }\n\n function setIsActive() {\n vm.isActive ? vm.isActive = false : vm.isActive = true;\n }\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/rental/components/rental-checkout-wizard/rental-wizard-step.js\n// module id = 994\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar rentalWizardComponent = exports.rentalWizardComponent = {\n transclude: true,\n template: require('./rental-wizard.html'),\n controllerAs: 'vmWizard',\n bindings: {\n onFinish: '&',\n onCancel: '&'\n },\n controller: function controller() {\n 'ngInject';\n\n var vm = this;\n vm.next = next;\n vm.previous = previous;\n vm.registerStep = registerStep;\n vm.finish = finish;\n vm.cancel = cancel;\n vm.registerMenuStep = registerMenuStep;\n vm.steps = [];\n vm.activeStepIndex = 0;\n vm.$onInit = init;\n vm.menuSteps = [];\n\n function init() {\n // vm.steps[0].isActive = true;\n }\n\n function registerStep(step) {\n if (vm.steps.length === 0) {\n vm.steps.push(step);\n vm.steps[0].setIsActive();\n } else {\n vm.steps.push(step);\n }\n }\n\n function registerMenuStep(step) {\n vm.menuSteps.push(step);\n }\n\n function next(callback) {\n if (vm.steps.length) {\n vm.activeStepIndex += 1;\n vm.steps[vm.activeStepIndex - 1].setIsActive(); //hide previous step \n vm.steps[vm.activeStepIndex].setIsActive(); //show next step\n }\n\n if (angular.isFunction(callback)) {\n callback();\n }\n }\n\n function previous() {\n if (vm.steps.length) {\n vm.activeStepIndex -= 1;\n vm.steps[vm.activeStepIndex + 1].setIsActive(); // hide previous step\n vm.steps[vm.activeStepIndex].setIsActive(); // show next step\n }\n }\n\n function finish() {\n vm.onFinish();\n }\n\n function cancel() {\n vm.onCancel();\n }\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/rental/components/rental-checkout-wizard/rental-wizard.js\n// module id = 995\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar rentalProductGridItemComponent = exports.rentalProductGridItemComponent = {\n template: require('./rental-product-grid-item.html'),\n bindings: {\n rentalProduct: '<'\n },\n controllerAs: 'vm',\n controller: [\"$stateParams\", function controller($stateParams) {\n 'ngInject';\n\n var vm = this;\n vm.onOrderedChanged = onOrderedChanged;\n vm.quantityChanged = quantityChanged;\n vm.sellerId = 0;\n vm.$onInit = init;\n\n function init() {\n vm.sellerId = $stateParams.sellerId;\n }\n\n function onOrderedChanged() {\n vm.rentalProduct.order ? vm.rentalProduct.quantity = 1 : vm.rentalProduct.quantity = 0;\n }\n\n function quantityChanged() {\n vm.rentalProduct.quantity > 0 ? vm.rentalProduct.order = true : vm.rentalProduct.order = false;\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/rental/components/rental-product-grid-item.js\n// module id = 996\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar rentalProductGridComponent = exports.rentalProductGridComponent = {\n template: require('./rental-product-grid.html'),\n bindings: {\n rentalProducts: '<'\n },\n controllerAs: 'vm'\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/rental/components/rental-product-grid.js\n// module id = 997\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar rentalProductTableComponent = exports.rentalProductTableComponent = {\n template: require('./rental-product-table.html'),\n bindings: {\n rentalProducts: '<'\n },\n controllerAs: 'vm',\n controller: function controller() {\n 'ngInject';\n\n var vm = this;\n vm.$onInit = init;\n\n function init() {\n vm.filteredRentalProducts = vm.rentalProducts.filter(function (p) {\n return p.productType === 'RENTAL';\n });\n vm.filteredPortalProducts = vm.rentalProducts.filter(function (p) {\n return p.productType === 'PORTALPRODUCT';\n });\n }\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/rental/components/rental-product-table.js\n// module id = 998\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _angular = require('angular');\n\nvar _angular2 = _interopRequireDefault(_angular);\n\nvar _rentalCheckout = require('./rental-checkout');\n\nvar _rentalCheckoutStepOne = require('./rental-checkout-step-one');\n\nvar _rentalCheckoutStepTwo = require('./rental-checkout-step-two');\n\nvar _rentalCheckoutStepThree = require('./rental-checkout-step-three');\n\nvar _rentalCheckoutProductInfo = require('./components/rental-checkout-product-info');\n\nvar _rentalCheckoutDeliveryInfo = require('./components/rental-checkout-delivery-info');\n\nvar _rentalProductGrid = require('./components/rental-product-grid');\n\nvar _rentalProductGridItem = require('./components/rental-product-grid-item');\n\nvar _rentalProductTable = require('./components/rental-product-table');\n\nvar _rentalWizard = require('./components/rental-checkout-wizard/rental-wizard');\n\nvar _rentalWizardMenu = require('./components/rental-checkout-wizard/rental-wizard-menu');\n\nvar _rentalWizardStep = require('./components/rental-checkout-wizard/rental-wizard-step');\n\nvar _rentalWizardButton = require('./components/rental-checkout-wizard/rental-wizard-button');\n\nvar _rentProductOverviewGrid = require('./components/rent-product-overview-grid');\n\nvar _rentProductOverviewGridItem = require('./components/rent-product-overview-grid-item');\n\nvar _rentProductImg = require('./components/rent-product-img');\n\nrequire('angular-messages');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _module = _angular2.default.module('app.rental', ['ngMessages']);\n\n_module.config([\"$stateProvider\", function ($stateProvider) {\n $stateProvider.state('rentalCheckout', {\n parent: 'seller.rentProductDetail',\n url: '/rentalCheckout',\n views: {\n 'main@root': {\n component: 'rentalCheckout'\n },\n 'header@root': '',\n 'aside@root': '',\n 'menu@root': ''\n },\n resolve: {\n rentalProduct: [\"rentalProductsService\", \"$stateParams\", function rentalProduct(rentalProductsService, $stateParams) {\n return rentalProductsService.getRentalProductById($stateParams.productId).then(function (rentalProduct) {\n return rentalProduct;\n });\n }],\n wizardMenuSteps: [\"Enums\", \"gettextCatalog\", function wizardMenuSteps(Enums, gettextCatalog) {\n var menu = JSON.parse(JSON.stringify(Enums.rentalCheckoutMenuSteps));\n return menu.map(function (obj) {\n obj.value = gettextCatalog.getString(obj.value);\n return obj;\n });\n }],\n deliveryInfo: [\"DeliveryInfoRentalProduct\", function deliveryInfo(DeliveryInfoRentalProduct) {\n return DeliveryInfoRentalProduct.create({});\n }],\n contactInfo: [\"ContactInfoRentalProduct\", function contactInfo(ContactInfoRentalProduct) {\n return ContactInfoRentalProduct.create({});\n }],\n rentedProductsOrder: [\"RentalProductsOrder\", function rentedProductsOrder(RentalProductsOrder) {\n return RentalProductsOrder.create({});\n }]\n },\n params: {\n productId: {\n value: null,\n squash: true\n },\n sellerId: {\n value: null,\n squash: true\n }\n },\n data: {\n febelcoCustomer: true\n },\n ncyBreadcrumb: {\n label: '{{\"Uw huuraanvraag\" | translate }}'\n }\n });\n}]);\n\n_module.component('rentalCheckout', _rentalCheckout.rentalCheckoutComponent).component('rentalCheckoutStepOne', _rentalCheckoutStepOne.rentalCheckoutStepOneComponent).component('rentalCheckoutStepTwo', _rentalCheckoutStepTwo.rentalCheckoutStepTwoComponent).component('rentalCheckoutStepThree', _rentalCheckoutStepThree.rentalCheckoutStepThreeComponent).component('rentalCheckoutProductInfo', _rentalCheckoutProductInfo.rentalCheckoutProductInfoComponent).component('rentalCheckoutDeliveryInfo', _rentalCheckoutDeliveryInfo.rentalCheckoutDeliveryInfoComponent).component('rentalProductGrid', _rentalProductGrid.rentalProductGridComponent).component('rentalProductGridItem', _rentalProductGridItem.rentalProductGridItemComponent).component('rentalProductTable', _rentalProductTable.rentalProductTableComponent).component('rentalWizard', _rentalWizard.rentalWizardComponent).component('rentalWizardStep', _rentalWizardStep.rentalWizardStepComponent).component('rentalWizardMenu', _rentalWizardMenu.rentalWizardMenuComponent).component('rentProductOverviewGrid', _rentProductOverviewGrid.rentProductOverviewGridComponent).component('rentProductOverviewGridItem', _rentProductOverviewGridItem.rentProductOverviewGridItemComponent).component('rentProductImg', _rentProductImg.rentProductImageComponent).directive('wzNext', _rentalWizardButton.rentalWizardButton).directive('wzPrevious', _rentalWizardButton.rentalWizardButton).directive('wzFinish', _rentalWizardButton.rentalWizardButton).directive('wzCancel', _rentalWizardButton.rentalWizardButton);\n\nexports.default = _module.name;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/rental/index.js\n// module id = 999\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar rentalCheckoutStepOneComponent = exports.rentalCheckoutStepOneComponent = {\n template: require('./rental-checkout-step-one.html'),\n bindings: {\n rentalProduct: '<',\n deliveryInfo: '<',\n contactInfo: '<',\n onDeliveryInfoChange: '&',\n onContactInfoChange: '&',\n onProductsRentedSucces: '&',\n onFormValidChange: '&'\n },\n controllerAs: 'vm',\n controller: [\"rentalProductsService\", function controller(rentalProductsService) {\n 'ngInject';\n\n var vm = this;\n vm.deliveryInfoChange = deliveryInfoChange;\n vm.contactInfoChange = contactInfoChange;\n vm.confirmOrder = confirmOrder;\n vm.onFormChange = onFormChange;\n vm.isFormValid = false;\n\n function deliveryInfoChange($event) {\n vm.onDeliveryInfoChange({\n $event: $event\n });\n }\n\n function contactInfoChange($event) {\n vm.onContactInfoChange({\n $event: $event\n });\n }\n\n function confirmOrder() {\n if (vm.checkoutForm.$valid && vm.isFormValid) {\n rentalProductsService.orderRentedProducts(vm.rentalProduct, null, null, vm.contactInfo, vm.deliveryInfo).then(function (result) {\n vm.onProductsRentedSucces({\n $event: result\n });\n });\n }\n }\n\n function onFormChange() {\n vm.isFormValid = checkFormValid();\n }\n\n function checkFormValid() {\n return vm.checkoutForm.dpicker.$valid && vm.checkoutForm.$valid && vm.deliveryInfo.postalLocalityId !== 0 && vm.deliveryInfo.streetId !== 0;\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/rental/rental-checkout-step-one.js\n// module id = 1000\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar rentalCheckoutStepThreeComponent = exports.rentalCheckoutStepThreeComponent = {\n template: require('./rental-checkout-step-three.html'),\n bindings: {\n rentedProductsOrder: '<'\n },\n controllerAs: 'vm'\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/rental/rental-checkout-step-three.js\n// module id = 1001\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar rentalCheckoutStepTwoComponent = exports.rentalCheckoutStepTwoComponent = {\n template: require('./rental-checkout-step-two.html'),\n bindings: {\n rentalProduct: '<',\n deliveryInfo: '<',\n contactInfo: '<',\n onProductsRentedSucces: '&'\n },\n controllerAs: 'vm',\n controller: [\"rentalProductsService\", \"Enums\", function controller(rentalProductsService, Enums) {\n 'ngInject';\n\n var vm = this;\n vm.$onInit = init;\n vm.confirmOrder = confirmOrder;\n vm.recommendedRentalProducts;\n vm.recommendedPortalProducts;\n vm.suggestedRentalProducts;\n vm.suggestedPortalProducts;\n\n function init() {\n filterRelatedProducts();\n }\n\n function filterRelatedProducts() {\n vm.recommendedRentalProducts = vm.rentalProduct.relatedRentalProducts.filter(function (p) {\n return p.relationTypeCode === Enums.rentalProductRelationTypeCodes.RECOM.value && p.productTypeCode === 'RENTAL';\n });\n vm.recommendedPortalProducts = vm.rentalProduct.relatedRentalProducts.filter(function (p) {\n return p.relationTypeCode === Enums.rentalProductRelationTypeCodes.RECOM.value && p.productTypeCode === 'PORTALPRODUCT';\n });\n vm.suggestedRentalProducts = vm.rentalProduct.relatedRentalProducts.filter(function (p) {\n return p.relationTypeCode === Enums.rentalProductRelationTypeCodes.INTER.value && p.productTypeCode === 'RENTAL';\n });\n vm.suggestedPortalProducts = vm.rentalProduct.relatedRentalProducts.filter(function (p) {\n return p.relationTypeCode === Enums.rentalProductRelationTypeCodes.INTER.value && p.productTypeCode === 'PORTALPRODUCT';\n });\n }\n\n function confirmOrder() {\n rentalProductsService.orderRentedProducts(vm.rentalProduct, [].concat(vm.recommendedRentalProducts, vm.recommendedPortalProducts), [].concat(vm.suggestedRentalProducts, vm.suggestedPortalProducts), vm.contactInfo, vm.deliveryInfo).then(function (result) {\n vm.onProductsRentedSucces({\n $event: result\n });\n });\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/rental/rental-checkout-step-two.js\n// module id = 1002\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar rentalCheckoutComponent = exports.rentalCheckoutComponent = {\n template: require('./rental-checkout.html'),\n bindings: {\n rentalProduct: '<',\n deliveryInfo: '<',\n contactInfo: '<',\n sellerId: '<',\n wizardMenuSteps: '<',\n rentedProductsOrder: '<'\n },\n controllerAs: 'vm',\n controller: [\"$state\", \"common\", \"gettextCatalog\", \"Analytics\", function controller($state, common, gettextCatalog, Analytics) {\n 'ngInject';\n\n var vm = this;\n vm.$onInit = init;\n vm.wizardActiveStepIndex = 0;\n vm.rentedProducts = [];\n vm.wizardFinished = wizardFinished;\n vm.wizardCanceled = wizardCanceled;\n vm.hasRelatedProducts = hasRelatedProducts;\n vm.deliveryInfoChanged = deliveryInfoChanged;\n vm.contactInfoChanged = contactInfoChanged;\n vm.onProductsRentedSucces = onProductsRentedSucces;\n vm.stepOneFormValidChange = stepOneFormValidChange;\n vm.stepOneFormValid = false;\n\n function init() {\n common.setTitle(gettextCatalog.getString('Uw huuraanvraag'));\n Analytics.trackPage('/' + common.localization.getCurrentLanguage() + '/rentalProduct/' + vm.rentalProduct, gettextCatalog.getString('Uw huuraanvraag'));\n }\n\n function wizardFinished() {\n $state.go('seller.home', {\n sellerId: $state.params.sellerId\n });\n }\n\n function wizardCanceled() {\n $state.go('seller.rentProductOverview', {\n sellerId: $state.params.sellerId\n });\n }\n\n function hasRelatedProducts() {\n return vm.rentalProduct.relatedRentalProducts.length > 0;\n }\n\n function deliveryInfoChanged($event) {\n vm.deliveryInfo = $event;\n }\n\n function contactInfoChanged($event) {\n vm.contactInfo = $event;\n }\n\n function onProductsRentedSucces($event) {\n vm.rentedProductsOrder = $event;\n }\n\n function stepOneFormValidChange($event) {\n vm.stepOneFormValid = $event.isFormValid;\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/rental/rental-checkout.js\n// module id = 1003\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _angular = require('angular');\n\nvar _angular2 = _interopRequireDefault(_angular);\n\nvar _reservationCampaign = require('./reservation-campaign');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _module = _angular2.default.module('app.reservationCampaign', []).config([\"$stateProvider\", function ($stateProvider) {\n 'ngInject';\n\n $stateProvider.state('general.reservations', {\n url: '/reservations/{code:string}',\n views: {\n 'main@root': {\n component: 'reservationCampaign'\n }\n },\n params: {},\n ncyBreadcrumb: {\n label: '{{$resolve.campaign.campaign.name}}'\n },\n resolve: {\n campaign: [\"reservationCampaignService\", \"$stateParams\", function campaign(reservationCampaignService, $stateParams) {\n return reservationCampaignService.getReservationCampaign($stateParams.code);\n }]\n }\n });\n}]).component('reservationCampaign', _reservationCampaign.reservationCampaignComponent);\n\nexports.default = _module.name;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/reservation-campaign/index.js\n// module id = 1004\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar reservationCampaignComponent = exports.reservationCampaignComponent = {\n template: require('./reservation-campaign.html'),\n bindings: {\n campaign: '<'\n },\n controllerAs: 'vm',\n controller: [\"common\", \"gettextCatalog\", \"reservationCampaignService\", \"Analytics\", \"toastr\", function reservationCampaignController(common, gettextCatalog, reservationCampaignService, Analytics, toastr) {\n 'ngInject';\n\n var vm = this;\n vm.$onInit = init;\n vm.saveAmounts = saveAmounts;\n\n function init() {\n common.setTitle(vm.campaign.campaign.code);\n vm.displayUnits = vm.campaign.reservations.every(function (reservation) {\n return reservation.unit;\n }) ? false : true;\n Analytics.trackPage('/' + common.localization.getCurrentLanguage() + '/reservations', vm.campaign.campaign.code);\n }\n\n function saveAmounts() {\n if (validateLines()) {\n reservationCampaignService.setReservationCampaign(vm.campaign.campaign.code, vm.campaign.reservations).then(function (response) {\n vm.campaign = response;\n toastr.success(gettextCatalog.getString('_reservationCampaigns.reservationConfirmed'), '', {\n progressBar: true,\n timeOut: 5000,\n extendedTimeOut: 1000,\n closeButton: true\n });\n });\n }\n }\n\n function validateLines() {\n var valid = true;\n vm.campaign.reservations.forEach(function (product) {\n if (product.limit && product.limit < product.amount) {\n product.limitReached = gettextCatalog.getString('_reservationCampaigns.limitReached', { limit: product.limit });\n valid = false;\n }\n });\n return valid;\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/reservation-campaign/reservation-campaign.js\n// module id = 1005\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _angular = require('angular');\n\nvar _angular2 = _interopRequireDefault(_angular);\n\nvar _search = require('./search');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _module = _angular2.default.module('app.search', []);\n\n_module.config([\"$stateProvider\", \"sortProperties\", function ($stateProvider, sortProperties) {\n $stateProvider.state('search', {\n parent: 'general',\n url: '/search/:searchValue?page&pageSize&sortProperty&sortAsc&filter',\n views: {\n 'main@root': {\n component: 'search'\n }\n },\n reloadOnSearch: false,\n params: {\n page: {\n value: '1',\n squash: true\n },\n pageSize: {\n value: '24',\n squash: true\n },\n sortProperty: {\n value: sortProperties['Name'].value,\n squash: true\n },\n sortAsc: {\n value: (sortProperties['Name'].defaultSorting === 'asc').toString(),\n squash: true\n },\n filter: {\n value: '',\n squash: true\n }\n },\n ncyBreadcrumb: {\n label: '{{\"Search\" | translate}}'\n }\n });\n}]);\n\n_module.component('search', _search.searchComponent);\n\nexports.default = _module.name;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/search/index.js\n// module id = 1006\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar searchComponent = exports.searchComponent = {\n template: require('./search.html'),\n controllerAs: 'vm',\n bindings: {\n parentState: '<'\n },\n controller: [\"$stateParams\", \"$scope\", \"productOverviewService\", \"Enums\", \"common\", \"gettextCatalog\", \"Analytics\", function controller($stateParams, $scope, productOverviewService, Enums, common, gettextCatalog, Analytics) {\n 'ngInject';\n\n var vm = this;\n vm.searchValue = $stateParams.searchValue;\n vm.productOverviewModel = null;\n vm.$onInit = init;\n\n function init() {\n common.navigationMenu.clearActiveMenu();\n common.setTitle(gettextCatalog.getString('Search') + ' ' + vm.searchValue);\n Analytics.trackPage('/' + common.localization.getCurrentLanguage() + '/search/' + vm.searchValue, 'Search ' + vm.searchValue);\n\n vm.productOverviewModel = productOverviewService.init(Enums.searchContext.search.id);\n productOverviewService.getProductsBySearchValue(true, vm.productOverviewModel, vm.searchValue).then(function (model) {\n vm.productOverviewModel = model;\n listenForLocationChangeSuccess();\n });\n }\n\n function listenForLocationChangeSuccess() {\n $scope.$on('$locationChangeSuccess', function () {\n productOverviewService.getProductsBySearchValue(false, vm.productOverviewModel, vm.searchValue).then(function (model) {\n vm.productOverviewModel = model;\n });\n });\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/search/search.js\n// module id = 1007\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.sellerAboutComponent = undefined;\n\nvar _marked = require('marked');\n\nvar _marked2 = _interopRequireDefault(_marked);\n\nvar _markedRenderer = require('./../../common/core/markedRenderer');\n\nvar _markedRenderer2 = _interopRequireDefault(_markedRenderer);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_marked2.default.setOptions({\n renderer: _markedRenderer2.default,\n breaks: false,\n sanitize: true\n});\n\nvar sellerAboutComponent = exports.sellerAboutComponent = {\n template: require('./about.html'),\n bindings: {\n seller: '<',\n sellerAbout: '<'\n },\n controllerAs: 'vm',\n controller: [\"$rootScope\", \"$state\", \"common\", \"$scope\", \"Enums\", \"gettextCatalog\", \"Analytics\", function controller($rootScope, $state, common, $scope, Enums, gettextCatalog, Analytics) {\n 'ngInject';\n\n var vm = this;\n vm.$onInit = init;\n vm.bannerTextAlignmentClasses = Enums.bannerTextAlignmentClasses;\n vm.$onChanges = bindingChanges;\n\n function init() {\n\n if (!vm.seller) {\n $state.go('error');\n }\n\n common.setTitle(gettextCatalog.getString('More info about ') + vm.seller.name);\n Analytics.trackPage('/' + common.localization.getCurrentLanguage() + '/' + vm.seller.id + '/about', vm.seller.name + ' ' + gettextCatalog.getString('about'));\n }\n\n vm.heroSliderSettings = {\n autoplay: true,\n autoplaySpeed: 6000,\n dots: true,\n draggable: false,\n arrows: true,\n slidesToShow: 1,\n slidesToScroll: 1,\n infinite: true,\n responsive: [{\n breakpoint: 576,\n settings: {\n dots: true,\n arrows: false\n }\n }]\n };\n\n vm.gallerySliderSettings = {\n autoplay: false,\n dots: true,\n arrows: false,\n slidesToShow: 4,\n slidesToScroll: 4,\n infinite: false,\n variableWidth: false,\n responsive: [{\n breakpoint: 992,\n settings: {\n slidesToShow: 3,\n slidesToScroll: 3\n }\n }, {\n breakpoint: 576,\n settings: {\n slidesToShow: 2,\n slidesToScroll: 2\n }\n }]\n };\n\n function bindingChanges(changes) {\n if (changes.sellerAbout) {\n if (changes.sellerAbout.currentValue) {\n vm.sellerAbout = Object.assign(changes.sellerAbout.currentValue, {\n content: (0, _marked2.default)(changes.sellerAbout.currentValue.content || ''),\n logosContent: (0, _marked2.default)(changes.sellerAbout.currentValue.logosContent || '')\n });\n } else {\n vm.sellerAbout = changes.sellerAbout.currentValue;\n }\n }\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/seller/about.js\n// module id = 1008\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar contactBlockComponent = exports.contactBlockComponent = {\n template: require('./contact-block.html'),\n bindings: {\n contactInformation: '<',\n sellerName: '<',\n sellerAddress: '<',\n logo: '<'\n },\n controllerAs: 'vm'\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/seller/components/contact-block.js\n// module id = 1009\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.heroSliderComponent = undefined;\n\nvar _marked = require('marked');\n\nvar _marked2 = _interopRequireDefault(_marked);\n\nvar _markedRenderer = require('./../../../common/core/markedRenderer');\n\nvar _markedRenderer2 = _interopRequireDefault(_markedRenderer);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_marked2.default.setOptions({\n renderer: _markedRenderer2.default,\n breaks: true,\n sanitize: true\n});\n\nvar heroSliderComponent = exports.heroSliderComponent = {\n template: require('./hero-slider.html'),\n bindings: {\n banners: '<',\n settings: '<'\n },\n controllerAs: 'vm',\n controller: [\"Enums\", function heroSliderController(Enums) {\n 'ngInject';\n\n var vm = this;\n vm.$onChanges = bindingChanges;\n\n vm.bannerTextAlignmentClasses = Enums.bannerTextAlignmentClasses;\n\n function bindingChanges(changes) {\n if (changes.banners) {\n changes.banners.currentValue.forEach(function (banner, index) {\n vm.banners[index].content = banner.content ? (0, _marked2.default)(changes.banners.currentValue[index].content || '') : null;\n vm.banners[index].title = banner.title ? (0, _marked2.default)(changes.banners.currentValue[index].title || '') : null;\n });\n }\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/seller/components/hero-slider.js\n// module id = 1010\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar sellerMenuComponent = exports.sellerMenuComponent = {\n template: require('./menu.html'),\n bindings: {\n seller: '<',\n sellerModules: '<',\n numberOfContracts: '<'\n },\n controllerAs: 'vm',\n controller: [\"common\", \"$element\", function controller(common, $element) {\n 'ngInject';\n\n var vm = this;\n vm.sellerNavIsOpen = false;\n vm.toggleSellerNav = toggleSellerNav;\n vm.hideSellerNav = hideSellerNav;\n vm.moduleEnabled = moduleEnabled;\n vm.isNotFebelcoPartner = true;\n vm.$onInit = init;\n function init() {\n $element.on('click', 'a:not(.site-seller-header-toggle)', function () {\n vm.hideSellerNav();\n });\n vm.isNotFebelcoPartner = vm.seller.code !== 'FPA';\n }\n\n function toggleSellerNav() {\n vm.sellerNavIsOpen = !vm.sellerNavIsOpen;\n }\n\n function hideSellerNav() {\n vm.sellerNavIsOpen = false;\n }\n\n function moduleEnabled(module) {\n // Dirty, dirty hack for Febelco Partner!\n if (module === 'PRODUCT' && vm.seller && vm.seller.img && vm.seller.img.indexOf('FPA') === 0) {\n return false;\n }\n return (vm.sellerModules || []).indexOf(module) >= 0;\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/seller/components/menu.js\n// module id = 1011\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar partnershipGridComponent = exports.partnershipGridComponent = {\n template: require('./partnership-grid.html'),\n bindings: {\n partnerships: '<',\n errorOccurred: '<',\n viewMode: '@'\n },\n controllerAs: 'vm'\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/seller/components/partnership-grid.js\n// module id = 1012\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar partnershipTileComponent = exports.partnershipTileComponent = {\n template: require('./partnership-tile.html'),\n bindings: {\n partnership: '<'\n },\n controllerAs: 'vm'\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/seller/components/partnership-tile.js\n// module id = 1013\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar sellerTotalPriceDiscountsComponent = exports.sellerTotalPriceDiscountsComponent = {\n template: require('./seller-total-price-discounts.html'),\n bindings: {\n discounts: '<'\n },\n controllerAs: 'vm'\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/seller/components/seller-total-price-discounts.js\n// module id = 1014\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.sellerContactComponent = undefined;\n\nvar _marked = require('marked');\n\nvar _marked2 = _interopRequireDefault(_marked);\n\nvar _markedRenderer = require('./../../common/core/markedRenderer');\n\nvar _markedRenderer2 = _interopRequireDefault(_markedRenderer);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_marked2.default.setOptions({\n renderer: _markedRenderer2.default,\n breaks: false,\n sanitize: true\n});\nvar sellerContactComponent = exports.sellerContactComponent = {\n template: require('./contact.html'),\n bindings: {\n seller: '<',\n sellerContact: '<'\n },\n controllerAs: 'vm',\n controller: [\"$state\", \"common\", \"gettextCatalog\", \"Analytics\", function controller($state, common, gettextCatalog, Analytics) {\n 'ngInject';\n\n var vm = this;\n vm.$onChanges = bindingChanges;\n vm.$onInit = init;\n\n function init() {\n\n if (!vm.seller) {\n $state.go('error');\n }\n\n common.setTitle(gettextCatalog.getString('Contact ') + vm.seller.name);\n Analytics.trackPage('/' + common.localization.getCurrentLanguage() + '/' + vm.seller.id + '/contact', vm.seller.name + ' ' + gettextCatalog.getString('contact'));\n }\n\n function bindingChanges(changes) {\n if (changes.sellerContact) {\n if (changes.sellerContact.currentValue) {\n vm.sellerContact = Object.assign(changes.sellerContact.currentValue, {\n moreInfoContent: (0, _marked2.default)(changes.sellerContact.currentValue.moreInfoContent || '')\n });\n } else {\n vm.sellerContact = changes.sellerContact.currentValue;\n }\n }\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/seller/contact.js\n// module id = 1015\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.sellerContractOverviewComponent = undefined;\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar sellerContractOverviewComponent = exports.sellerContractOverviewComponent = {\n template: require('./contract-overview.html'),\n bindings: {\n contracts: '<',\n seller: '<'\n\n },\n controllerAs: 'vm',\n controller: [\"common\", \"gettextCatalog\", \"Analytics\", function contractsOverviewController(common, gettextCatalog, Analytics) {\n 'ngInject';\n\n var vm = this;\n vm.$onInit = init;\n vm.sortBy = sortBy;\n vm.reverse = false;\n vm.propertyName = 'name';\n vm.checkYearsApart = checkYearsApart;\n\n function init() {\n common.navigationMenu.clearActiveMenu();\n\n common.setTitle(vm.seller.name + ' ' + gettextCatalog.getString('contracts'));\n Analytics.trackPage('/' + common.localization.getCurrentLanguage() + '/' + vm.seller.id + '/contract', vm.seller.name + ' ' + gettextCatalog.getString('contract'));\n }\n\n function sortBy(propertyName) {\n vm.reverse = vm.propertyName === propertyName ? !vm.reverse : false;\n vm.propertyName = propertyName;\n }\n\n function checkYearsApart(contract) {\n return (0, _moment2.default)(contract.endDate).format('YYYY') - (0, _moment2.default)(contract.startDate).format('YYYY') > 10 ? true : false;\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/seller/contract-overview.js\n// module id = 1016\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar sellerContractComponent = exports.sellerContractComponent = {\n template: require('./contract.html'),\n bindings: {\n contract: '<',\n seller: '<'\n },\n controllerAs: 'vm',\n controller: [\"$state\", \"common\", \"Analytics\", function controller($state, common, Analytics) {\n 'ngInject';\n\n var vm = this;\n vm.$onInit = init;\n\n function init() {\n if (!vm.seller) {\n $state.go('error');\n }\n\n common.setTitle(vm.contract.title);\n Analytics.trackPage('/' + common.localization.getCurrentLanguage() + '/account/contract/' + vm.contract.id, vm.contract.title);\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/seller/contract.js\n// module id = 1017\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.sellerDetailComponent = undefined;\n\nvar _marked = require('marked');\n\nvar _marked2 = _interopRequireDefault(_marked);\n\nvar _markedRenderer = require('./../../common/core/markedRenderer');\n\nvar _markedRenderer2 = _interopRequireDefault(_markedRenderer);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_marked2.default.setOptions({\n renderer: _markedRenderer2.default,\n breaks: false,\n sanitize: true\n});\n\nvar sellerDetailComponent = exports.sellerDetailComponent = {\n template: require('./detail.html'),\n bindings: {\n seller: '<',\n parentState: '<',\n sellerModules: '<',\n rentalProductsCategories: '<'\n },\n controllerAs: 'vm',\n controller: [\"$scope\", \"newsService\", \"sellerService\", \"productOverviewService\", \"partnershipsService\", \"Enums\", \"common\", \"Analytics\", \"$state\", \"lodash\", \"cartService\", \"$timeout\", \"gettextCatalog\", \"exceptionService\", \"productService\", \"$window\", \"authService\", function controller($scope, newsService, sellerService, productOverviewService, partnershipsService, Enums, common, Analytics, $state, lodash, cartService, $timeout, gettextCatalog, exceptionService, productService, $window, authService) {\n 'ngInject';\n\n var vm = this;\n vm.discountsModel = null;\n vm.productsModel = null;\n vm.errorOccurredInDiscountOverview = false;\n vm.newsitems = null;\n vm.initSlider = null;\n vm.addToCart = addToCart;\n vm.sellerBanners = null;\n vm.sellerContent = null;\n vm.errorOccurredInProductOverview = false;\n vm.scrollTo = scrollTo;\n vm.$onInit = init;\n vm.myContacts = [];\n vm.otherContacts = [];\n vm.partnershipsModel = null;\n vm.partnerships = [];\n vm.$onChanges = bindingChanges;\n vm.productQuantityChanged = productQuantityChanged;\n vm.getProductDiscounts = getProductDiscounts;\n vm.moduleEnabled = moduleEnabled;\n\n function init() {\n\n //no seller found redirect to error page\n if (!vm.seller) {\n $state.go('error');\n }\n\n //update quantity on enter\n if (authService.isBuyer) {\n angular.element($window).on('keydown', function (event) {\n if (event.which === 13 && vm.addingProducts !== true) {\n vm.addToCart();\n }\n });\n\n $scope.$on('$destroy', function () {\n angular.element($window).off('keydown');\n });\n }\n\n common.navigationMenu.setSellersActive();\n common.setTitle(vm.seller.name);\n Analytics.trackPage('/' + common.localization.getCurrentLanguage() + '/' + vm.seller.id, vm.seller.name);\n\n vm.bannerTextAlignmentClasses = Enums.bannerTextAlignmentClasses;\n\n /* load seller Details */\n sellerService.getBySellerId(vm.seller.id).then(function (sellerContent) {\n vm.sellerContent = sellerContent;\n if (vm.sellerContent.sellerEmployees) {\n vm.myContacts = lodash.filter(vm.sellerContent.sellerEmployees, function (i) {\n return i.isMyRepresentative === true;\n });\n vm.otherContacts = lodash.filter(vm.sellerContent.sellerEmployees, function (i) {\n return i.isMyRepresentative === false;\n });\n }\n });\n\n /* load seller total price disounts*/\n sellerService.getSellerTotalPriceDiscounts(vm.seller.id).then(function (totalPriceDiscounts) {\n vm.totalPriceDiscounts = totalPriceDiscounts;\n });\n\n /* load news */\n newsService.getNewsForSellerPage(vm.seller.id).then(function (m) {\n vm.newsitems = m;\n });\n\n /* load banners */\n sellerService.getSellerBanners(vm.seller.id).then(function (banners) {\n vm.sellerBanners = banners;\n angular.forEach(vm.sellerBanners, function (banner) {\n Analytics.addPromo(banner.id, banner.name, banner.sequenceNr, '');\n });\n // Analytics.pageView(); // causes double pageview tracking, location is shop.profficina.be\n });\n\n /* load products and discounts */\n vm.discountsModel = productOverviewService.init(Enums.searchContext.seller.id);\n vm.productsModel = productOverviewService.init(Enums.searchContext.seller.id);\n vm.discountsModel.isLoadingInitial = true;\n vm.productsModel.isLoadingInitial = true;\n\n sellerService.getSellerProductsAndDiscounts(vm.seller.id, vm.productsModel, vm.discountsModel).then(function (model) {\n vm.productsModel.isLoadingInitial = false;\n vm.discountsModel.isLoadingInitial = false;\n vm.productsModel = model.productsModel;\n vm.discountsModel = model.discountsModel;\n vm.errorOccurredInDiscountOverview = model.discountsModel.errorOccurred;\n });\n\n /* load partnerships */\n vm.partnershipsModel = partnershipsService.init();\n partnershipsService.getAll(vm.partnershipsModel, {\n skip: 0,\n take: 4,\n sellerId: vm.seller.id\n }, 1).then(function (model) {\n vm.partnershipsModel = model;\n vm.partnerships = model.partnerships;\n vm.errorOccurredInPartnershipOverview = model.errorOccurred;\n });\n\n // todo put in service\n /* slider settings */\n vm.heroSliderSettings = {\n autoplay: true,\n autoplaySpeed: 6000,\n draggable: false,\n dots: true,\n arrows: true,\n slidesToShow: 1,\n slidesToScroll: 1,\n infinite: true,\n responsive: [{\n breakpoint: 576,\n settings: {\n dots: true,\n arrows: false\n }\n }]\n };\n\n /* settings for the product slider */\n vm.productSliderSettings = {\n dots: true,\n arrows: false,\n slidesToShow: 5,\n slidesToScroll: 5,\n touchMove: false,\n responsive: [{\n breakpoint: 1199,\n settings: {\n slidesToShow: 4,\n slidesToScroll: 4\n }\n }, {\n breakpoint: 991,\n settings: {\n slidesToShow: 3,\n slidesToScroll: 3\n }\n }, {\n breakpoint: 767,\n settings: {\n slidesToShow: 2,\n slidesToScroll: 2\n }\n }, {\n breakpoint: 575,\n settings: {\n slidesToShow: 1,\n slidesToScroll: 1\n }\n }]\n };\n\n /* settings for the news slider */\n vm.newsSliderSettings = {\n dots: true,\n arrows: false,\n slidesToShow: 4,\n slidesToScroll: 4,\n touchMove: false,\n responsive: [{\n breakpoint: 1199,\n settings: {\n slidesToShow: 3,\n slidesToScroll: 3\n }\n }, {\n breakpoint: 991,\n settings: {\n slidesToShow: 2,\n slidesToScroll: 2\n }\n }, {\n breakpoint: 767,\n settings: {\n slidesToShow: 2,\n slidesToScroll: 2\n }\n }, {\n breakpoint: 575,\n settings: {\n slidesToShow: 1,\n slidesToScroll: 1\n }\n }]\n };\n\n /* settings for the benifit slider */\n vm.partnershipSliderSettings = {\n dots: true,\n arrows: false,\n slidesToShow: 3,\n slidesToScroll: 3,\n touchMove: false,\n responsive: [{\n breakpoint: 1199,\n settings: {\n slidesToShow: 2,\n slidesToScroll: 2\n }\n }, {\n breakpoint: 767,\n settings: {\n slidesToShow: 1,\n slidesToScroll: 1\n }\n }]\n };\n }\n\n function bindingChanges(changes) {\n if (changes.sellerBanners) {\n if (changes.sellerBanners.currentValue) {\n // vm.sellerPublic = Object.assign(changes.sellerPublic.currentValue, {\n // content: marked(changes.sellerPublic.currentValue.content || ''),\n // contactContent: marked(changes.sellerPublic.currentValue.contactContent || '')\n // });\n } else {\n vm.sellerPublic = changes.sellerPublic.currentValue;\n }\n }\n }\n\n /* product quanitity changed open toolbar */\n function productQuantityChanged() {\n vm.productsQuantityChanged = true;\n vm.productsAdded = false;\n vm.isOpen = true;\n }\n\n /* add product to cart */\n function addToCart() {\n vm.productsQuantityChanged = false;\n vm.addingProducts = true;\n vm.hasError = false;\n var addProducts = vm.discountsModel.products.concat(vm.productsModel.products);\n\n cartService.updateCartOverview(addProducts).then(function (result) {\n\n vm.addingProducts = false;\n vm.productsAdded = true;\n vm.addToCartEnabled = true;\n $scope.forms.productOverviewForm.$setPristine();\n var shoppingCartProducts = result;\n\n vm.discountsModel.products.map(function (discount) {\n return discount = discount.getCartFields(discount, shoppingCartProducts);\n });\n\n vm.productsModel.products.map(function (product) {\n return product = product.getCartFields(product, shoppingCartProducts);\n });\n\n $timeout(function () {\n vm.productsAdded = false;\n vm.isOpen = false;\n }, 5000);\n }).catch(function () {\n vm.addToCartEnabled = false;\n vm.addingProducts = false;\n var msg = gettextCatalog.getString('The product quantity could not be updated');\n exceptionService.logException(msg);\n vm.hasError = true;\n $timeout(function () {\n vm.hasError = false;\n vm.isOpen = false;\n }, 5000);\n });\n }\n\n /* Load product discounts when discount is clicked */\n function getProductDiscounts(product) {\n return productService.getProductDiscounts(product.id);\n }\n\n function moduleEnabled(module) {\n return (vm.sellerModules || []).indexOf(module) >= 0;\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/seller/detail.js\n// module id = 1018\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar sellerDiscountsComponent = exports.sellerDiscountsComponent = {\n template: require('./discounts.html'),\n bindings: {\n seller: '<',\n parentState: '<'\n },\n controllerAs: 'vm',\n controller: [\"$scope\", \"$state\", \"productOverviewService\", \"Enums\", \"common\", \"sellerService\", \"gettextCatalog\", \"Analytics\", function controller($scope, $state, productOverviewService, Enums, common, sellerService, gettextCatalog, Analytics) {\n 'ngInject';\n\n var vm = this;\n vm.productOverviewModel = null;\n vm.$onInit = init;\n\n function init() {\n\n if (!vm.seller) {\n $state.go('error');\n }\n\n common.navigationMenu.setSellersActive();\n common.setTitle(vm.seller.name + ' ' + gettextCatalog.getString('discounts'));\n Analytics.trackPage('/' + common.localization.getCurrentLanguage() + '/' + vm.seller.id + '/discounts', vm.seller.name + ' ' + gettextCatalog.getString('discounts'));\n\n vm.productOverviewModel = productOverviewService.init(Enums.searchContext.seller.id);\n\n // sellerService.getSellerTotalPriceDiscounts(vm.seller.id)\n // .then((totalPriceDiscounts) => {\n // vm.totalPriceDiscounts = totalPriceDiscounts;\n // });\n\n productOverviewService.getSellerDiscounts(true, vm.productOverviewModel, vm.seller.id).then(function (model) {\n vm.productOverviewModel = model;\n listenForLocationChangeSuccess();\n });\n }\n\n function listenForLocationChangeSuccess() {\n $scope.$on('$locationChangeSuccess', function () {\n productOverviewService.getSellerDiscounts(false, vm.productOverviewModel, vm.seller.id).then(function (model) {\n vm.productOverviewModel = model;\n document.body.scrollTop = document.documentElement.scrollTop = 0;\n }).catch(function () {\n $state.go('error', {}, {\n location: false\n });\n });\n });\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/seller/discounts.js\n// module id = 1019\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.sellerDocumentLibraryComponent = undefined;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _marked = require('marked');\n\nvar _marked2 = _interopRequireDefault(_marked);\n\nvar _markedRenderer = require('./../../common/core/markedRenderer');\n\nvar _markedRenderer2 = _interopRequireDefault(_markedRenderer);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_marked2.default.setOptions({\n renderer: _markedRenderer2.default,\n breaks: false,\n sanitize: true\n});\n\nvar sellerDocumentLibraryComponent = exports.sellerDocumentLibraryComponent = {\n template: require('./documentLibrary.html'),\n bindings: {\n documentCategories: '<',\n faq: '<'\n },\n controllerAs: 'vm',\n controller: [\"config\", \"authService\", function controller(config, authService) {\n 'ngInject';\n\n var vm = this;\n vm.$onInit = init;\n vm.visibleDocumentCategories;\n vm.downloadFile = downloadFile;\n\n function init() {\n vm.faq = vm.faq || [];\n\n for (var i = 0; i < vm.faq.length; i++) {\n vm.faq[i] = Object.assign(vm.faq[i], {\n answer: (0, _marked2.default)(vm.faq[i].answer || '')\n });\n }\n\n vm.documentCategories = vm.documentCategories || [];\n\n vm.visibleDocumentCategories = _lodash2.default.map(vm.documentCategories, function (c) {\n var filteredDocuments = _lodash2.default.filter(c.documents, function (i) {\n return i.visible;\n });\n c.documents = filteredDocuments;\n return c;\n });\n }\n\n function downloadFile(documentId, documentTitle) {\n var url = config.webApiBaseUrl + 'sellers/DownloadFile/' + documentId + '?access_token=' + authService.accessToken;\n var link = document.createElement('a');\n link.download = documentTitle;\n link.href = url;\n link.target = \"_blank\";\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/seller/documentLibrary.js\n// module id = 1020\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _documentLibrary = require('./documentLibrary');\n\nvar _menu = require('./components/menu');\n\nvar _overview = require('./overview');\n\nvar _detail = require('./detail');\n\nvar _products = require('./products');\n\nvar _discounts = require('./discounts');\n\nvar _news = require('./news');\n\nvar _about = require('./about');\n\nvar _partnerships = require('./partnerships');\n\nvar _partnershipDetail = require('./partnership-detail');\n\nvar _contact = require('./contact');\n\nvar _contract = require('./contract');\n\nvar _contractOverview = require('./contract-overview');\n\nvar _sellercategory = require('./sellercategory');\n\nvar _public = require('./public');\n\nvar _rentProductOverview = require('./rent-product-overview');\n\nvar _partnershipGrid = require('./components/partnership-grid');\n\nvar _partnershipTile = require('./components/partnership-tile');\n\nvar _contactBlock = require('./components/contact-block');\n\nvar _heroSlider = require('./components/hero-slider');\n\nvar _rentProductDetail = require('./rent-product-detail');\n\nvar _sellerTotalPriceDiscounts = require('./components/seller-total-price-discounts');\n\n//import angular from 'angular';\nvar _module = angular.module('app.seller', []).config([\"$stateProvider\", \"sortProperties\", function ($stateProvider, sortProperties) {\n 'ngInject';\n\n $stateProvider.state('seller', {\n url: '/{sellerId:int}',\n parent: 'master',\n views: {\n 'menu@root': {\n template: ''\n },\n 'submenu@root': {\n component: 'sellerMenu'\n }\n },\n resolve: {\n navigationData: [\"sellerService\", \"$q\", function navigationData(sellerService, $q) {\n var promises = [];\n promises.push(sellerService.getAll());\n\n return $q.all(promises).then(function (results) {\n return {\n sellers: results[0]\n };\n });\n }],\n numberOfContracts: [\"$stateParams\", \"contractService\", \"authService\", function numberOfContracts($stateParams, contractService, authService) {\n if (authService.isBuyer) {\n return contractService.getNumberOfContracts($stateParams.sellerId);\n } else {\n return null;\n }\n }],\n seller: [\"$stateParams\", \"sellerService\", function seller($stateParams, sellerService) {\n return sellerService.getById($stateParams.sellerId);\n }],\n sellerModules: [\"$stateParams\", \"sellerService\", function sellerModules($stateParams, sellerService) {\n return sellerService.getModules($stateParams.sellerId);\n }],\n parentState: [\"$state\", function parentState($state) {\n return $state.get('seller');\n }]\n },\n ncyBreadcrumb: {\n label: '{{$resolve.seller.name}}'\n },\n redirectTo: 'seller.home'\n }).state('seller.home', {\n url: '',\n views: {\n 'main@root': {\n component: 'seller'\n }\n },\n resolve: {\n rentalProductsCategories: [\"$stateParams\", \"rentalProductsService\", function rentalProductsCategories($stateParams, rentalProductsService) {\n return rentalProductsService.getRentalProductCategories($stateParams.sellerId).then(function (result) {\n return result;\n });\n }]\n },\n ncyBreadcrumb: {\n skip: true\n }\n }).state('sellers', {\n parent: 'general',\n url: '/sellers',\n views: {\n 'main@root': {\n component: 'sellerOverview'\n }\n },\n resolve: {\n sellers: [\"sellerService\", function sellers(sellerService) {\n var data = sellerService.getAll();\n return data;\n }]\n },\n params: {\n breadcrumbName: ''\n },\n ncyBreadcrumb: {\n label: '{{\"Sellers\" | translate}}'\n }\n }).state('seller.products', {\n url: '/products?page&pageSize&sortProperty&sortAsc&filter',\n views: {\n 'main@root': {\n component: 'sellerProducts'\n }\n },\n params: {\n page: {\n value: '1',\n squash: true,\n dynamic: true\n },\n pageSize: {\n squash: true,\n dynamic: true\n },\n sortProperty: {\n value: sortProperties['Name'].value,\n squash: true,\n dynamic: true,\n array: false\n },\n sortAsc: {\n value: (sortProperties['Name'].defaultSorting === 'asc').toString(),\n squash: true,\n dynamic: true,\n array: false\n },\n filter: {\n value: '',\n squash: true,\n dynamic: true\n },\n noReloadFilter: {\n squash: true\n }\n },\n ncyBreadcrumb: {\n label: '{{\"Products\" | translate}}'\n },\n resolve: {\n // totalPriceDiscounts: function($stateParams, sellerService) {\n // return sellerService.getSellerTotalPriceDiscounts($stateParams.sellerId);\n // }\n }\n }).state('seller.products.category', {\n url: '/category/{categoryId:int}',\n views: {\n 'main@root': {\n component: 'sellerProducts'\n }\n },\n params: {\n page: {\n value: '1',\n squash: true,\n dynamic: true\n },\n pageSize: {\n value: window.localStorage.getItem('pageSize'),\n squash: false,\n dynamic: true\n },\n sortProperty: {\n value: sortProperties['Name'].value,\n squash: true,\n dynamic: true,\n array: false\n },\n sortAsc: {\n value: (sortProperties['Name'].defaultSorting === 'asc').toString(),\n squash: true,\n dynamic: true,\n array: false\n },\n filter: {\n value: '',\n squash: true,\n dynamic: true\n },\n categoryId: {\n squash: true\n }\n },\n reloadOnSearch: true,\n resolve: {\n // category: function($stateParams, categoryService) {\n // return categoryService.getById($stateParams.categoryId);\n // }\n },\n ncyBreadcrumb: {\n label: '{{$resolve.category.name}}'\n }\n }).state('seller.products.product', {\n url: '/{productId:int}',\n views: {\n 'main@root': {\n component: 'product'\n }\n },\n resolve: {\n product: [\"$stateParams\", \"productService\", \"$state\", function product($stateParams, productService, $state) {\n return productService.get($stateParams.productId).then(function (result) {\n if (result.type === 'RENTAL') {\n $state.go('seller.rentProductDetail', { sellerId: result.sellerId, productId: result.id }, { reload: true });\n } else {\n return result;\n }\n });\n }]\n },\n reloadOnSearch: false,\n params: {\n // productId: {\n // value: null,\n // squash: true\n // },\n loadingOverlay: true\n },\n ncyBreadcrumb: {\n label: '{{$resolve.product.displayName}}'\n }\n }).state('seller.discounts', {\n url: '/discounts?page&pageSize&sortProperty&sortAsc&filter',\n views: {\n 'main@root': {\n component: 'sellerDiscounts'\n }\n },\n reloadOnSearch: false,\n params: {\n page: {\n value: '1',\n squash: true\n },\n pageSize: {\n value: window.localStorage.getItem('pageSize'),\n squash: false\n },\n sortProperty: {\n value: sortProperties['DiscountDate'].value,\n squash: true\n },\n sortAsc: {\n value: (sortProperties['DiscountDate'].defaultSorting === 'asc').toString(),\n squash: true\n },\n filter: {\n value: '',\n squash: true\n }\n },\n ncyBreadcrumb: {\n label: '{{\"Discounts\" | translate}}'\n },\n onEnter: [\"$transition$\", \"$state\", \"sellerModules\", function onEnter($transition$, $state, sellerModules) {\n if (sellerModules.indexOf('DISCOUNT') >= 0) {\n return true;\n }\n $state.go('seller.home', $transition$.params('to'));\n return false;\n }]\n }).state('seller.partnerships', {\n url: '/partnerships?page',\n views: {\n 'main@root': {\n component: 'sellerPartnerships'\n }\n },\n reloadOnSearch: false,\n params: {\n page: {\n value: '1',\n squash: true\n }\n },\n ncyBreadcrumb: {\n label: '{{\"Partnerships\" | translate}}'\n },\n resolve: {\n partnershipModel: [\"$stateParams\", \"partnershipsService\", function partnershipModel($stateParams, partnershipsService) {\n var searchRequest = {\n skip: 0,\n take: 50,\n sellerId: $stateParams.sellerId,\n title: null\n };\n return partnershipsService.getAll(partnershipsService.init(), searchRequest, 1);\n }]\n },\n onEnter: [\"$transition$\", \"$state\", \"sellerModules\", function onEnter($transition$, $state, sellerModules) {\n if (sellerModules.indexOf('BENEFIT') >= 0) {\n return true;\n }\n $state.go('seller.home', $transition$.params('to'));\n return false;\n }]\n }).state('seller.partnerships.partnership', {\n url: '/{id:int}',\n views: {\n 'main@root': {\n component: 'partnershipDetail'\n }\n },\n reloadOnSearch: false,\n params: {},\n ncyBreadcrumb: {\n label: '{{$resolve.partnership.title}}'\n },\n resolve: {\n partnership: [\"$stateParams\", \"partnershipsService\", function partnership($stateParams, partnershipsService) {\n return partnershipsService.getById($stateParams.id);\n }]\n }\n }).state('seller.about', {\n url: '/about',\n views: {\n 'main@root': {\n component: 'sellerAbout'\n }\n },\n reloadOnSearch: false,\n params: {},\n ncyBreadcrumb: {\n label: '{{\"Over\" | translate}} {{$resolve.seller.name | translate}}'\n },\n resolve: {\n sellerAbout: [\"$stateParams\", \"sellerService\", function sellerAbout($stateParams, sellerService) {\n return sellerService.getSellerAbout($stateParams.sellerId);\n }]\n }\n }).state('seller.contact', {\n url: '/contact',\n views: {\n 'main@root': {\n component: 'sellerContact'\n }\n },\n reloadOnSearch: false,\n params: {},\n ncyBreadcrumb: {\n label: '{{\"Contact\" | translate}}'\n },\n resolve: {\n sellerContact: [\"$stateParams\", \"sellerService\", function sellerContact($stateParams, sellerService) {\n return sellerService.getSellerContact($stateParams.sellerId);\n }]\n }\n }).state('seller.contract', {\n url: '/contract',\n onEnter: [\"$state\", \"$stateParams\", \"sellerService\", function onEnter($state, $stateParams, sellerService) {\n sellerService.getSellerContracts($stateParams.sellerId).then(function (result) {\n if (result.length === 1 && result[0].contracts.length === 1) {\n return $state.go('seller.contractDetail', {\n id: result[0].contracts[0].id,\n result: result[0].contracts\n });\n } else {\n return $state.go('seller.contractList', {\n results: result\n });\n }\n });\n }]\n }).state('seller.contractDetail', {\n url: '/contract/{id:int}',\n views: {\n 'main@root': {\n component: 'contractDetail'\n }\n },\n reloadOnSearch: false,\n params: {},\n ncyBreadcrumb: {\n label: '{{$resolve.contract.name}}'\n },\n resolve: {\n contract: [\"$stateParams\", \"sellerService\", function contract($stateParams, sellerService) {\n return sellerService.getSellerContract($stateParams.sellerId, $stateParams.id);\n }]\n }\n }).state('seller.contractList', {\n url: '/contract',\n views: {\n 'main@root': {\n component: 'sellerContractOverview'\n }\n },\n reloadOnSearch: false,\n params: {},\n ncyBreadcrumb: {\n label: '{{\"Contracts\" | translate}}'\n },\n resolve: {\n contracts: [\"sellerService\", \"$stateParams\", function contracts(sellerService, $stateParams) {\n return sellerService.getSellerContracts($stateParams.sellerId);\n }]\n }\n }).state('seller.public', {\n url: '/public',\n views: {\n 'main@root': {\n component: 'sellerPublic'\n },\n 'menu@root': {\n template: ''\n },\n 'submenu@root': {\n component: undefined\n }\n },\n reloadOnSearch: false,\n params: {},\n ncyBreadcrumb: {\n skip: true\n },\n resolve: {\n sellerPublic: [\"$stateParams\", \"sellerService\", function sellerPublic($stateParams, sellerService) {\n return sellerService.getSellerPublic($stateParams.sellerId);\n }]\n }\n }).state('seller.news', {\n url: '/news?page&categoryId&searchValue',\n views: {\n 'main@root': {\n component: 'sellerNews'\n }\n },\n resolve: {\n seller: [\"$stateParams\", \"sellerService\", function seller($stateParams, sellerService) {\n return sellerService.getById($stateParams.sellerId);\n }]\n },\n reloadOnSearch: false,\n params: {\n page: {\n value: '1',\n squash: true\n },\n categoryId: {\n value: '0',\n squash: true\n },\n searchValue: {\n value: '',\n squash: true\n }\n },\n ncyBreadcrumb: {\n label: '{{\"News\" | translate}}'\n },\n onEnter: [\"$transition$\", \"$state\", \"sellerModules\", function onEnter($transition$, $state, sellerModules) {\n if (sellerModules.indexOf('NEWS') >= 0) {\n return true;\n }\n $state.go('seller.home', $transition$.params('to'));\n return false;\n }]\n }).state('seller.news.newsitem', {\n url: '/{newsItemId:int}',\n views: {\n 'main@root': {\n component: 'news'\n }\n },\n resolve: {\n newsdetail: [\"$stateParams\", \"newsService\", function newsdetail($stateParams, newsService) {\n return newsService.getById($stateParams.newsItemId).then(function (newsdetail) {\n return newsdetail;\n });\n }]\n },\n ncyBreadcrumb: {\n label: '{{$resolve.newsdetail.title | translate}}'\n }\n }).state('seller.doclib', {\n url: '/documentLibrary',\n views: {\n 'main@root': {\n component: 'sellerDocumentLibrary'\n }\n },\n resolve: {\n documentCategories: [\"$stateParams\", \"documentLibraryService\", function documentCategories($stateParams, documentLibraryService) {\n return documentLibraryService.getLibraryDocumentCategories($stateParams.sellerId).then(function (documentCategories) {\n return documentCategories;\n });\n }],\n faq: [\"$stateParams\", \"documentLibraryService\", function faq($stateParams, documentLibraryService) {\n return documentLibraryService.getLibraryQuestions($stateParams.sellerId).then(function (questions) {\n return questions;\n });\n }]\n },\n ncyBreadcrumb: {\n label: '{{\"Document library\"| translate}}'\n }\n }).state('seller.rentProductOverview', {\n url: '/rentAProductOverview?{categoryId:int}',\n views: {\n 'main@root': {\n component: 'rentProductOverview'\n }\n },\n resolve: {\n rentalProductsCategories: [\"$stateParams\", \"rentalProductsService\", function rentalProductsCategories($stateParams, rentalProductsService) {\n return rentalProductsService.getRentalProductCategories($stateParams.sellerId).then(function (result) {\n return result;\n });\n }]\n },\n params: {\n categoryId: {\n value: 0,\n squash: true\n }\n },\n ncyBreadcrumb: {\n label: '{{\"All Rental products\"| translate}}'\n }\n }).state('seller.rentProductDetail', {\n url: '/rentalProduct/{productId:int}',\n views: {\n 'main@root': {\n component: 'rentProductDetail'\n }\n },\n resolve: {\n product: [\"$stateParams\", \"rentalProductsService\", function product($stateParams, rentalProductsService) {\n return rentalProductsService.getRentalProductById($stateParams.productId).then(function (rentalProduct) {\n return rentalProduct;\n });\n }]\n },\n ncyBreadcrumb: {\n label: '{{$resolve.product.name}}'\n }\n });\n}]).component('sellerDocumentLibrary', _documentLibrary.sellerDocumentLibraryComponent).component('sellerMenu', _menu.sellerMenuComponent).component('sellerOverview', _overview.sellersOverviewComponent).component('seller', _detail.sellerDetailComponent).component('sellerProducts', _products.sellerProductsComponent).component('sellerDiscounts', _discounts.sellerDiscountsComponent).component('sellerNews', _news.sellerNewsComponent).component('sellerAbout', _about.sellerAboutComponent).component('sellerPartnerships', _partnerships.sellerPartnershipsComponent).component('sellerContact', _contact.sellerContactComponent).component('sellerContract', _contract.sellerContractComponent).component('sellerCategory', _sellercategory.sellerCategoryComponent).component('sellerPublic', _public.sellerPublicComponent).component('partnershipDetail', _partnershipDetail.sellerPartnershipDetailComponent).component('partnershipGrid', _partnershipGrid.partnershipGridComponent).component('partnershipTile', _partnershipTile.partnershipTileComponent).component('contactBlock', _contactBlock.contactBlockComponent).component('heroSlider', _heroSlider.heroSliderComponent).component('rentProductOverview', _rentProductOverview.rentProductOverviewComponent).component('sellerTotalPriceDiscounts', _sellerTotalPriceDiscounts.sellerTotalPriceDiscountsComponent).component('sellerContractOverview', _contractOverview.sellerContractOverviewComponent).component('rentProductDetail', _rentProductDetail.rentProductDetailComponent);\n\nexports.default = _module.name;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/seller/index.js\n// module id = 1021\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar sellerNewsComponent = exports.sellerNewsComponent = {\n template: require('./news.html'),\n bindings: {\n seller: '<',\n parentState: '<'\n },\n controllerAs: 'vm',\n controller: [\"$scope\", \"common\", \"newsOverviewService\", \"Enums\", \"gettextCatalog\", \"$state\", \"Analytics\", function sellerNewsController($scope, common, newsOverviewService, Enums, gettextCatalog, $state, Analytics) {\n 'ngInject';\n\n var vm = this;\n vm.newsOverviewModel = null;\n vm.$onInit = init;\n vm.itemsPerPageChanged = itemsPerPageChanged;\n\n function init() {\n\n if (!vm.seller) {\n $state.go('error');\n }\n\n common.navigationMenu.setSellersActive();\n common.setTitle(gettextCatalog.getString('News for ') + vm.seller.name);\n\n Analytics.trackPage('/' + common.localization.getCurrentLanguage() + '/' + vm.seller.id + '/news', vm.seller.name + ' ' + gettextCatalog.getString('news'));\n\n handleGetNews(12); //default page size is 12 todo put enums\n }\n\n function itemsPerPageChanged(itemsPerPage) {\n handleGetNews(itemsPerPage);\n }\n\n function handleGetNews(itemsPerPage) {\n newsOverviewService.handleGetNews($scope, Enums.newsContext.seller.id, { sellerId: vm.seller.id }, itemsPerPage).then(function (i) {\n return vm.newsOverviewModel = i;\n });\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/seller/news.js\n// module id = 1022\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar sellersOverviewComponent = exports.sellersOverviewComponent = {\n template: require('./overview.html'),\n bindings: {\n sellers: '<'\n },\n controllerAs: 'vm',\n controller: [\"common\", \"gettextCatalog\", \"Analytics\", function controller(common, gettextCatalog, Analytics) {\n 'ngInject';\n\n var vm = this;\n vm.$onInit = init;\n\n function init() {\n common.navigationMenu.setSellersActive();\n common.setTitle(gettextCatalog.getString('Sellers'));\n Analytics.trackPage('/' + common.localization.getCurrentLanguage() + '/sellers', gettextCatalog.getString('Sellers'));\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/seller/overview.js\n// module id = 1023\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.sellerPartnershipDetailComponent = undefined;\n\nvar _marked = require('marked');\n\nvar _marked2 = _interopRequireDefault(_marked);\n\nvar _markedRenderer = require('./../../common/core/markedRenderer');\n\nvar _markedRenderer2 = _interopRequireDefault(_markedRenderer);\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_marked2.default.setOptions({\n renderer: _markedRenderer2.default,\n breaks: false,\n sanitize: true\n});\n\nvar sellerPartnershipDetailComponent = exports.sellerPartnershipDetailComponent = {\n template: require('./partnership-detail.html'),\n bindings: {\n seller: '<',\n partnership: '<'\n },\n controllerAs: 'vm',\n controller: [\"$rootScope\", \"$state\", \"common\", \"gettextCatalog\", \"Analytics\", \"partnershipsService\", function sellerPartnershipDetailController($rootScope, $state, common, gettextCatalog, Analytics, partnershipsService) {\n 'ngInject';\n\n var vm = this;\n vm.$onInit = init;\n vm.$onChanges = bindingChanges;\n vm.context = 'partnership';\n vm.checkYearsApart = checkYearsApart;\n vm.moment = _moment2.default;\n\n function init() {\n if (!vm.seller) {\n $state.go('error');\n }\n\n vm.gallerySliderSettings = partnershipsService.getGallerySliderSettings();\n common.setTitle(gettextCatalog.getString(vm.partnership.title));\n Analytics.trackPage('/' + common.localization.getCurrentLanguage() + '/' + vm.seller.id + '/partnerships/' + vm.partnership.id, vm.partnership.title);\n }\n\n function checkYearsApart(contract) {\n return (0, _moment2.default)(contract.endDate).format('YYYY') - (0, _moment2.default)(contract.startDate).format('YYYY') > 10 ? true : false;\n }\n\n function bindingChanges(changes) {\n if (changes.partnership) {\n if (changes.partnership.currentValue) {\n vm.partnership = Object.assign(changes.partnership.currentValue, {\n summary: (0, _marked2.default)(changes.partnership.currentValue.summary || ''),\n content: (0, _marked2.default)(changes.partnership.currentValue.content || ''),\n callToActionContent: (0, _marked2.default)(changes.partnership.currentValue.callToActionContent || '')\n });\n } else {\n vm.partnership = changes.partnership.currentValue;\n }\n }\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/seller/partnership-detail.js\n// module id = 1024\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.sellerPartnershipsComponent = undefined;\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar sellerPartnershipsComponent = exports.sellerPartnershipsComponent = {\n template: require('./partnerships.html'),\n bindings: {\n seller: '<',\n partnershipModel: '<'\n },\n controllerAs: 'vm',\n controller: [\"common\", \"$state\", \"partnershipsService\", \"gettextCatalog\", \"exceptionService\", \"Analytics\", function newsOverviewController(common, $state, partnershipsService, gettextCatalog, exceptionService, Analytics) {\n 'ngInject';\n\n var vm = this;\n vm.pagecountList = [12, 24, 36];\n vm.goToPage = goToPage;\n // vm.paging = null;\n vm.isLoading = false;\n vm.changeItemsPerPage = changeItemsPerPage;\n vm.searchPartnerships = searchPartnerships;\n vm.searchValue = null;\n vm.clear = clear;\n vm.$onInit = init;\n vm.partnerships = [];\n\n function init() {\n if (!vm.seller) {\n $state.go('error');\n }\n\n common.setTitle(vm.seller.name + ' ' + gettextCatalog.getString('partnerships'));\n Analytics.trackPage('/' + common.localization.getCurrentLanguage() + '/' + vm.seller.id + '/partnerships', vm.seller.name + ' ' + gettextCatalog.getString('partnerships'));\n updateFarmaPartnerShips();\n }\n\n /* Clear searches */\n function clear() {\n vm.searchValue = null;\n handleGetPartnerships({\n take: 50\n }, 1);\n }\n\n /* Search partnerships */\n function searchPartnerships() {\n handleGetPartnerships({\n take: 50,\n title: vm.searchValue\n }, 1);\n }\n\n /* navigate to page */\n function goToPage(page) {\n if (page === 0 || page > vm.partnershipModel.paging.pageCount) {\n return;\n }\n handleGetPartnerships({\n take: 50\n }, page);\n }\n\n /* Change amount of items per page */\n function changeItemsPerPage(_ref) {\n var itemsPerPage = _ref.itemsPerPage;\n\n $state.go('.', {\n page: 1\n });\n handleGetPartnerships({\n take: itemsPerPage\n }, 1);\n }\n\n /* Load partnerships */\n function handleGetPartnerships(searchRequest, page) {\n searchRequest.sellerId = vm.seller.id;\n\n partnershipsService.getAll(partnershipsService.init(searchRequest.take), searchRequest, page).then(function (result) {\n vm.isLoading = false;\n vm.partnershipModel = result;\n updateFarmaPartnerShips();\n }).catch(function () {\n var msg = gettextCatalog.getString('The partnerships could not be retrieved');\n exceptionService.logException(msg);\n }).finally(function () {\n return vm.isLoading = false;\n });\n }\n\n function updateFarmaPartnerShips() {\n var test = _lodash2.default.orderBy(vm.partnershipModel.partnerships, ['typePriority', 'priority']);\n vm.partnerships = _lodash2.default.groupBy(test, 'typeName');\n }\n }]\n\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/seller/partnerships.js\n// module id = 1025\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar sellerProductsComponent = exports.sellerProductsComponent = {\n template: require('./products.html'),\n bindings: {\n seller: '<',\n parentState: '<',\n totalPriceDiscounts: '<'\n },\n controllerAs: 'vm',\n controller: [\"$scope\", \"$state\", \"productOverviewService\", \"Enums\", \"common\", \"sellerService\", \"gettextCatalog\", \"Analytics\", \"$stateParams\", function controller($scope, $state, productOverviewService, Enums, common, sellerService, gettextCatalog, Analytics, $stateParams) {\n 'ngInject';\n\n var vm = this;\n vm.productOverviewModel = null;\n vm.$onInit = init;\n vm.onFilterChange = onFilterChange;\n\n function init() {\n\n if (!vm.seller) {\n $state.go('error');\n }\n\n common.navigationMenu.setSellersActive();\n common.setTitle(vm.seller.name + ' ' + gettextCatalog.getString('products'));\n Analytics.trackPage('/' + common.localization.getCurrentLanguage() + '/' + vm.seller.id + '/products', vm.seller.name + ' ' + gettextCatalog.getString('products'));\n\n loadProducts();\n }\n\n function loadProducts() {\n //load the products after init\n if ($stateParams.noReloadFilter) {\n vm.productOverviewModel = productOverviewService.getProductOverviewModel();\n } else {\n vm.productOverviewModel = productOverviewService.init(Enums.searchContext.category.id);\n }\n\n productOverviewService.getSellerProducts($stateParams.noReloadFilter ? false : true, vm.productOverviewModel, vm.seller.id, $state.params.categoryId).then(function (model) {\n vm.productOverviewModel = model;\n listenForLocationChangeSuccess();\n model.filter.flatListsOfCategories.find(function (cl) {\n var category = cl.list.find(function (c) {\n return c.id === $state.params.categoryId;\n });\n if (category) {\n return $state.current.ncyBreadcrumbLabel = category.name;\n }\n return null;\n });\n });\n }\n\n function listenForLocationChangeSuccess() {\n $scope.$on('$locationChangeSuccess', function () {\n productOverviewService.getSellerProducts(false, vm.productOverviewModel, vm.seller.id, $state.params.categoryId).then(function (model) {\n vm.productOverviewModel = model;\n document.body.scrollTop = document.documentElement.scrollTop = 0;\n }).catch(function () {\n $state.go('error', {}, {\n location: false\n });\n });\n });\n }\n\n function onFilterChange() {\n productOverviewService.setProductOverviewModel(vm.productOverviewModel);\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/seller/products.js\n// module id = 1026\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.sellerPublicComponent = undefined;\n\nvar _marked = require('marked');\n\nvar _marked2 = _interopRequireDefault(_marked);\n\nvar _markedRenderer = require('./../../common/core/markedRenderer');\n\nvar _markedRenderer2 = _interopRequireDefault(_markedRenderer);\n\nvar _lodash = require('lodash');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_marked2.default.setOptions({\n renderer: _markedRenderer2.default,\n breaks: false,\n sanitize: true\n});\nvar sellerPublicComponent = exports.sellerPublicComponent = {\n template: require('./public.html'),\n bindings: {\n seller: '<',\n sellerPublic: '<'\n },\n controllerAs: 'vm',\n controller: [\"$rootScope\", \"Enums\", \"$state\", \"common\", \"Analytics\", \"gettextCatalog\", function controller($rootScope, Enums, $state, common, Analytics, gettextCatalog) {\n 'ngInject';\n\n var vm = this;\n vm.$onChanges = bindingChanges;\n vm.$onInit = init;\n vm.bannerTextAlignmentClasses = Enums.bannerTextAlignmentClasses;\n vm.sellerLogos = [];\n\n //todo put in service/enum\n vm.heroSliderSettings = {\n autoplay: true,\n autoplaySpeed: 6000,\n dots: true,\n draggable: false,\n arrows: true,\n slidesToShow: 1,\n slidesToScroll: 1,\n infinite: true,\n responsive: [{\n breakpoint: 576,\n settings: {\n dots: true,\n arrows: false\n }\n }]\n };\n\n function init() {\n if (!vm.seller) {\n $state.go('error');\n }\n\n common.setTitle(vm.seller.name);\n Analytics.trackPage('/' + common.localization.getCurrentLanguage() + '/' + vm.seller.id + '/public', vm.seller.name + ' ' + gettextCatalog.getString('public'));\n vm.sellerLogos = _lodash2.default.groupBy(_lodash2.default.orderBy(vm.sellerPublic.sellerLogos, ['partnershipType', 'priority']), 'partnershipTypeName');\n }\n\n function bindingChanges(changes) {\n if (changes.sellerPublic) {\n if (changes.sellerPublic.currentValue) {\n vm.sellerPublic = Object.assign(changes.sellerPublic.currentValue, {\n content: (0, _marked2.default)(changes.sellerPublic.currentValue.content || ''),\n contactContent: (0, _marked2.default)(changes.sellerPublic.currentValue.contactContent || '')\n });\n } else {\n vm.sellerPublic = changes.sellerPublic.currentValue;\n }\n }\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/seller/public.js\n// module id = 1027\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar rentProductDetailComponent = exports.rentProductDetailComponent = {\n template: require('./rent-product-detail.html'),\n bindings: {\n product: '<'\n },\n controllerAs: 'vm',\n controller: [\"Enums\", \"rentalProductsService\", \"$stateParams\", function controller(Enums, rentalProductsService, $stateParams) {\n 'ngInject';\n\n var vm = this;\n vm.$onInit = init;\n vm.medipimData = null;\n vm.medipimDataLoading = false;\n vm.isEmptyObject = isEmptyObject;\n vm.recommendedRentalProducts = [];\n vm.recommendedPortalProducts = [];\n vm.suggestedRentalProducts = [];\n vm.suggestedPortalProducts = [];\n\n function init() {\n filterRelatedProducts();\n loadMedipimData();\n vm.attachments = vm.product.attachments;\n }\n\n function loadMedipimData() {\n vm.medipimDataLoading = true;\n rentalProductsService.getRentalProductMedipimdata($stateParams.productId).then(function (medipimData) {\n vm.medipimDataLoading = false;\n vm.medipimData = medipimData;\n });\n }\n\n function filterRelatedProducts() {\n vm.recommendedRentalProducts = vm.product.relatedRentalProducts.filter(function (p) {\n return p.relationTypeCode === Enums.rentalProductRelationTypeCodes.RECOM.value && p.productTypeCode === 'RENTAL';\n });\n vm.recommendedPortalProducts = vm.product.relatedRentalProducts.filter(function (p) {\n return p.relationTypeCode === Enums.rentalProductRelationTypeCodes.RECOM.value && p.productTypeCode === 'PORTALPRODUCT';\n });\n vm.suggestedRentalProducts = vm.product.relatedRentalProducts.filter(function (p) {\n return p.relationTypeCode === Enums.rentalProductRelationTypeCodes.INTER.value && p.productTypeCode === 'RENTAL';\n });\n vm.suggestedPortalProducts = vm.product.relatedRentalProducts.filter(function (p) {\n return p.relationTypeCode === Enums.rentalProductRelationTypeCodes.INTER.value && p.productTypeCode === 'PORTALPRODUCT';\n });\n }\n\n function isEmptyObject(o) {\n if (o) {\n return Object.keys(o).every(function (x) {\n return o[x] === '' || o[x] === null || o[x] === false || o[x] === 0 || o[x] === undefined;\n });\n } else {\n return true;\n }\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/seller/rent-product-detail.js\n// module id = 1028\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar rentProductOverviewComponent = exports.rentProductOverviewComponent = {\n template: require('./rent-product-overview.html'),\n bindings: {\n rentalProductsCategories: '<',\n seller: '<'\n },\n controllerAs: 'vm',\n controller: [\"rentalProductsService\", \"$stateParams\", function controller(rentalProductsService, $stateParams) {\n 'ngInject';\n\n var vm = this;\n vm.$onInit = init;\n vm.rentalProductsOverview = null;\n\n function init() {\n loadProducts();\n vm.activeCategory = vm.rentalProductsCategories.find(function (cat) {\n return cat.id === $stateParams.categoryId.toString();\n });\n }\n\n function loadProducts() {\n vm.rentalProductsOverview = rentalProductsService.init();\n rentalProductsService.getRentalProducts($stateParams.sellerId, $stateParams.categoryId, vm.rentalProductsOverview).then(function (model) {\n vm.rentalProductsOverview = model;\n });\n }\n\n //but in const\n // vm.banners = [\n // {\n // 'media': {\n // 'type': 'IMAGE',\n // 'path': 'TGZ\\\\images\\\\64e64e25-0f32-401c-bd0c-348db1d57e55.jpeg',\n // 'thumbnailPath': 'TGZ\\\\images\\\\64e64e25-0f32-401c-bd0c-348db1d57e55.jpeg',\n // 'description': 'Mobiliteit zonder zorgen',\n // 'priority': null\n // },\n // 'title': '',\n // 'content': null,\n // 'link': null,\n // 'priority': 1,\n // 'textAlignment': 0,\n // 'backgroundColor': null,\n // 'darkTextColor': false,\n // 'name': '',\n // 'id': null\n // }\n // ];\n\n //put in const\n // vm.heroSliderSettings = { \n // autoplay: true,\n // autoplaySpeed: 6000,\n // dots: true,\n // draggable: false,\n // arrows: true,\n // slidesToShow: 1, \n // slidesToScroll: 1,\n // infinite: true,\n // responsive: [ \n // {\n // breakpoint: 576,\n // settings: {\n // dots: true, \n // arrows: false\n // }\n // }\n // ]\n // };\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/seller/rent-product-overview.js\n// module id = 1029\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar sellerCategoryComponent = exports.sellerCategoryComponent = {\n template: require('./sellercategory.html'),\n bindings: {\n sellerCategory: '<'\n },\n controllerAs: 'vm',\n controller: [\"$scope\", \"$state\", \"$stateParams\", \"productOverviewService\", \"Enums\", \"common\", function controller($scope, $state, $stateParams, productOverviewService, Enums, common) {\n 'ngInject';\n\n var vm = this;\n vm.productOverviewModel = null;\n vm.$onInit = init;\n\n var categoryId = parseInt($stateParams.categoryId);\n\n function init() {\n common.navigationMenu.setSellersActive();\n common.setTitle(vm.sellerCategory.categories[vm.sellerCategory.categories.length - 1].name);\n\n vm.productOverviewModel = productOverviewService.init(Enums.searchContext.seller.id);\n productOverviewService.getProductsBySellerCategory(true, vm.productOverviewModel, vm.sellerCategory.id, categoryId).then(function (model) {\n vm.productOverviewModel = model;\n listenForLocationChangeSuccess();\n });\n }\n\n function listenForLocationChangeSuccess() {\n $scope.$on('$locationChangeSuccess', function () {\n productOverviewService.getProductsBySellerCategory(false, vm.productOverviewModel, vm.sellerCategory.id, categoryId).then(function (model) {\n vm.productOverviewModel = model;\n document.body.scrollTop = document.documentElement.scrollTop = 0;\n }).catch(function () {\n $state.go('error', {}, {\n location: false\n });\n });\n });\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/seller/sellercategory.js\n// module id = 1030\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _angular = require('angular');\n\nvar _angular2 = _interopRequireDefault(_angular);\n\nvar _vaccines = require('./vaccines');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _module = _angular2.default.module('app.vaccines', []).config([\"$stateProvider\", function ($stateProvider) {\n 'ngInject';\n\n $stateProvider.state('general.vaccines', {\n url: '/flu-vaccines',\n views: {\n 'main@root': {\n component: 'vaccines'\n }\n },\n params: {},\n ncyBreadcrumb: {\n label: '{{\"Flu vaccines\" | translate}}'\n },\n resolve: {\n vaccines: [\"vaccinesService\", function vaccines(vaccinesService) {\n return vaccinesService.getVaccines();\n }]\n }\n });\n}]).component('vaccines', _vaccines.vaccinesComponent);\n\nexports.default = _module.name;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/vaccines/index.js\n// module id = 1031\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar vaccinesComponent = exports.vaccinesComponent = {\n template: require('./vaccines.html'),\n bindings: {\n vaccines: '<'\n },\n controllerAs: 'vm',\n controller: [\"$scope\", \"common\", \"newsOverviewService\", \"Enums\", \"gettextCatalog\", \"vaccinesService\", \"Analytics\", \"toastr\", function vaccinesController($scope, common, newsOverviewService, Enums, gettextCatalog, vaccinesService, Analytics, toastr) {\n 'ngInject';\n\n var vm = this;\n vm.$onInit = init;\n vm.saveVaccinesOrder = saveVaccinesOrder;\n vm.isActiveDiscount = isActiveDiscount;\n vm.getBannerImage = getBannerImage;\n vm.hasVaccinesOrdered = hasVaccinesOrdered;\n vm.getBannerImageEnded = getBannerImageEnded;\n vm.canOrder = canOrder;\n vm.anyReservationsMade = false;\n vm.allReservationsMade = false;\n vm.unModifiedVaccines = [];\n vm.reservationCanBeMade = false;\n\n function init() {\n common.setTitle(gettextCatalog.getString('My reservations'));\n Analytics.trackPage('/' + common.localization.getCurrentLanguage() + '/account/myReservations', gettextCatalog.getString('My reservations'));\n vm.unModifiedVaccines = deepCopy(vm.vaccines);\n vm.anyReservationsMade = vaccinesService.vaccinsCanOrder(vm.unModifiedVaccines);\n vm.allReservationsMade = vaccinesService.allReservationsMade(vm.unModifiedVaccines);\n vm.reservationCanBeMade = vaccinesService.canOrderVaccin();\n }\n\n function hasVaccinesOrdered() {\n return !!vm.unModifiedVaccines.find(function (v) {\n return v.amount > 0;\n });\n }\n\n function canOrder(vaccin) {\n var res = vaccinesService.canOrderVaccin(vm.unModifiedVaccines.find(function (v) {\n return v.productNumber === vaccin.productNumber;\n }));\n if (vaccin.productNumber === '4307617' && vm.vaccines.influvacReadOnly) {\n return false;\n }\n return res;\n }\n\n function saveVaccinesOrder() {\n vaccinesService.setVaccinReservation(vm.vaccines).then(function () {\n\n vm.unModifiedVaccines = deepCopy(vm.vaccines);\n vm.anyReservationsMade = vaccinesService.vaccinsCanOrder(vm.unModifiedVaccines);\n vm.allReservationsMade = vaccinesService.allReservationsMade(vm.unModifiedVaccines);\n\n toastr.success(gettextCatalog.getString('Your reservation has been confirmed.'), '', {\n progressBar: true,\n timeOut: 5000,\n extendedTimeOut: 1000,\n closeButton: true\n });\n });\n }\n\n function isActiveDiscount(vaccine, discount) {\n var nextDiscount = null;\n vaccine.discounts.forEach(function (e) {\n if (vaccine.amount >= e.amount) {\n nextDiscount = e;\n }\n });\n return nextDiscount && nextDiscount.amount === discount.amount ? 'bg-info-light' : '';\n }\n\n function getBannerImage() {\n var currentLanguage = common.localization.getCurrentLanguage();\n\n if (currentLanguage === 'nl') {\n return '/Common/griepvaccin-nl.png';\n } else if (currentLanguage === 'fr') {\n return '/Common/griepvaccin-fr.png';\n }\n }\n\n function getBannerImageEnded() {\n var currentLanguage = common.localization.getCurrentLanguage();\n\n if (currentLanguage === 'nl') {\n return '/Common/griepvaccin-no-text.png';\n } else if (currentLanguage === 'fr') {\n return '/Common/griepvaccin-no-text.png';\n }\n }\n\n function deepCopy(o) {\n var copy = o,\n k;\n\n if (o && (typeof o === 'undefined' ? 'undefined' : _typeof(o)) === 'object') {\n copy = Object.prototype.toString.call(o) === '[object Array]' ? [] : {};\n for (k in o) {\n copy[k] = deepCopy(o[k]);\n }\n }\n\n return copy;\n }\n }]\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./features/vaccines/vaccines.js\n// module id = 1032\n// module chunks = 0","module.exports = profficinaConfig;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"profficinaConfig\"\n// module id = 1034\n// module chunks = 0","'use strict';\n\nrequire('jquery');\n\nvar _angular = require('angular');\n\nvar _angular2 = _interopRequireDefault(_angular);\n\nrequire('angular-animate');\n\nvar _security = require('./blocks/security');\n\nvar _security2 = _interopRequireDefault(_security);\n\nvar _common = require('./common');\n\nvar _common2 = _interopRequireDefault(_common);\n\nvar _features = require('./features');\n\nvar _features2 = _interopRequireDefault(_features);\n\nvar _app = require('./app.component');\n\nvar _logDecorator = require('./logDecorator');\n\nvar _trackJs = require('trackJs');\n\nvar _trackJs2 = _interopRequireDefault(_trackJs);\n\nvar _visualizer = require('@uirouter/visualizer');\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nrequire('ng-dialog');\n\nrequire('jquery-menu-aim');\n\nrequire('./assets/js/IEViewportFix.js');\n\nrequire('./assets/js/polyfill-starts-with.js');\n\nrequire('./assets/js/slick.min.js');\n\nrequire('angular-google-analytics');\n\nrequire('ng-smooth-scroll');\n\nrequire('angular-breadcrumb');\n\nrequire('angular-sanitize');\n\nrequire('./assets/scss/styles.scss');\n\nrequire('@uirouter/angularjs/release/stateEvents');\n\nrequire('@fancyapps/fancybox');\n\nrequire('ng-file-upload');\n\nrequire('bootstrap');\n\nrequire('bootstrap-3-typeahead');\n\nrequire('eonasdan-bootstrap-datetimepicker');\n\nrequire('angular-cookie-law/dist/angular-cookie-law');\n\nrequire('angular-messages');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar appModule = _angular2.default.module('app', ['ui.router.state.events', _security2.default, _common2.default, _features2.default, 'ngAnimate', 'smoothScroll', 'ncy-angular-breadcrumb', 'ngSanitize', 'ngFileUpload', 'angular-cookie-law', 'ngMessages']); /*jshint esversion: 6 */\n\n\nappModule.config(_logDecorator.logDecorator);\nappModule.component('appComponent', _app.appComponent);\n\n//config the breadcrumb template\nappModule.config([\"$breadcrumbProvider\", function ($breadcrumbProvider) {\n $breadcrumbProvider.setOptions({\n template: ''\n });\n}]);\n\nappModule.config([\"$stateProvider\", function ($stateProvider) {\n // Master template\n $stateProvider.state('root', {\n url: '',\n abstract: true,\n component: 'appComponent'\n\n // template: appTemplate /*,\n // data: {\n // public: true\n // }*/\n }).state('language', {\n parent: 'root',\n url: '/{language}',\n abstract: true,\n params: {\n language: {\n value: '',\n squash: true\n }\n },\n onEnter: [\"$state\", \"$stateParams\", \"localizer\", \"common\", \"$location\", function onEnter($state, $stateParams, localizer, common, $location) {\n if ($stateParams.language && common.localization.isLanguageSupported($stateParams.language)) {\n //set the locale in moment\n _moment2.default.locale($stateParams.language);\n localizer.init($stateParams.language);\n return true;\n }\n var language = window.localStorage.getItem('language') ? window.localStorage.getItem('language') : common.localization.getDefaultLanguage();\n if (!common.localization.isLanguageSupported(language)) {\n language = common.localization.getDefaultLanguage();\n }\n\n // Current fallback if no language is provided for a route with only something after the '/'\n if ($stateParams.language) {\n return $location.url('/' + language + $state.href($state.transition.$to().name, $state.transition.params('to')));\n }\n\n return $state.target($state.transition.$to().name, Object.assign({}, $state.transition.params('to'), {\n language: language\n }));\n }]\n }).state('master', {\n url: '',\n parent: 'language',\n views: {\n 'header@root': {\n component: 'siteHeader'\n },\n 'footer@root': {\n component: 'siteFooter'\n }\n },\n data: {\n public: false\n },\n redirectTo: 'home',\n ncyBreadcrumb: {\n label: '{{\"Home\" | translate}}'\n }\n });\n}]);\n\nappModule.config([\"$locationProvider\", \"$httpProvider\", \"$urlRouterProvider\", function ($locationProvider, $httpProvider, $urlRouterProvider) {\n $locationProvider.html5Mode(true);\n\n $httpProvider.defaults.headers.common['x-accept-language'] = 'nl';\n $httpProvider.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';\n\n //initialize get if not there\n if (!$httpProvider.defaults.headers.get) {\n $httpProvider.defaults.headers.get = {};\n }\n\n // http://stackoverflow.com/questions/16098430/angular-ie-caching-issue-for-http\n //disable IE ajax request caching\n $httpProvider.defaults.headers.get['If-Modified-Since'] = 'Mon, 26 Jul 1997 05:00:00 GMT';\n // extra\n $httpProvider.defaults.headers.get['Cache-Control'] = 'no-cache';\n $httpProvider.defaults.headers.get['Pragma'] = 'no-cache';\n\n $httpProvider.interceptors.push('httpInterceptorLanguage');\n $httpProvider.interceptors.push('httpInterceptorErrors');\n $httpProvider.interceptors.push('httpInterceptorAuthorization');\n\n $urlRouterProvider.otherwise(function ($injector) {\n var $state = $injector.get('$state');\n $state.go('home');\n });\n}]);\n\nappModule.config([\"authServiceProvider\", function (authServiceProvider) {\n authServiceProvider.configure(profficinaConfig.authentication);\n}]);\n\nappModule.config([\"toastrConfig\", function (toastrConfig) {\n _angular2.default.extend(toastrConfig, {\n positionClass: 'toast-top-center',\n closeButton: true,\n closeHtml: ''\n });\n}]);\n\nappModule.config([\"AnalyticsProvider\", function (AnalyticsProvider) {\n // https://www.npmjs.com/package/angular-google-analytics\n\n var tracker = profficinaConfig.googleAnalytics.isEnabled ? profficinaConfig.googleAnalytics.tracker : '';\n AnalyticsProvider.setAccount({\n tracker: tracker,\n trackEvent: true,\n trackEcommerce: true\n })\n // Use ga.js (classic) instead of analytics.js (universal)\n // By default, universal analytics is used, unless this is called with a falsey value.\n .useAnalytics(true)\n // Use ga.js (classic) instead of analytics.js (universal)\n // By default, universal analytics is used, unless this is called with a falsey value.\n .trackPages(false)\n // Track all URL query params (default is false).\n //.trackUrlParams(true)\n\n // Ignore first page view (default is false).\n // Helpful when using hashes and whenever your bounce rate looks obscenely low.\n //.ignoreFirstPageLoad(true)\n\n // RegEx to scrub location before sending to analytics.\n // Internally replaces all matching segments with an empty string.\n //.setRemoveRegExp(/\\/\\d+?$/)\n // Enable enhanced e-commerce module (ec.js)\n // Universal Analytics only\n .useECommerce(true, true)\n // Change the default page event name.\n // Helpful when using ui-router, which fires $stateChangeSuccess instead of $routeChangeSuccess.\n .setPageEvent('$stateChangeSuccess')\n // Set Currency. Default is 'USD'. Use ISO currency codes.\n .setCurrency('EUR');\n}]);\n\nappModule.run([\"$rootScope\", \"$state\", \"$location\", \"$window\", \"Analytics\", \"$transitions\", \"$stateParams\", \"authService\", \"toastr\", \"$injector\", \"common\", \"tmhDynamicLocaleCache\", \"$uiRouter\", \"$timeout\", \"userService\", function ($rootScope, $state, $location, $window, Analytics, $transitions, $stateParams, authService, toastr, $injector, common, tmhDynamicLocaleCache, $uiRouter, $timeout, userService) {\n require('angular-i18n/angular-locale_nl');\n tmhDynamicLocaleCache.put('nl', getInjectedLocale());\n\n require('angular-i18n/angular-locale_fr');\n tmhDynamicLocaleCache.put('fr', getInjectedLocale());\n\n //$window.ga('create', 'UA-44932554-4', 'auto');\n\n $rootScope.$on('$stateChangeStart', function (event, toState /*, toParams*/) {\n\n if (\n /*$location.absUrl().indexOf('localhost') < 0 && */\n $location.protocol() !== 'https') {\n event.preventDefault();\n $window.location.href = $location.absUrl().replace('http', 'https');\n return;\n }\n //show the overlay if loadingoverlay is true\n $rootScope.overlayVisible = toState.params && toState.params.loadingOverlay;\n });\n\n $rootScope.$on('$stateChangeSuccess', function (event, toState, toParams, fromState, fromParams) {\n\n //if there is an error with the cart go to the error menu\n if ($rootScope.isShoppingCartInvalid === true) {\n $state.go('carterror');\n }\n\n $state.previous = fromState;\n $state.fromParams = fromParams;\n\n $rootScope.overlayVisible = false;\n document.body.scrollTop = document.documentElement.scrollTop = 0;\n $rootScope.$emit('close-menu');\n });\n\n $rootScope.$on('$stateChangeError', function (event, toState, toParams, fromState, fromParams, error) {\n\n $rootScope.overlayVisible = false;\n if (error === 'handled') {\n return;\n }\n // we pass the language param here, because otherwise it is undefined in the master controller\n event.preventDefault();\n common.log.error(error);\n $state.get('error').error = error;\n\n if (toState.name === 'general.products.product') {\n return $state.go('error-product', {\n language: toParams.language\n });\n } else {\n return $state.go('error', {\n language: toParams.language\n });\n }\n });\n\n $rootScope.getDocument = function (documentPath, context) {\n var location = void 0;\n\n switch (context) {\n case 'DOCUMENTLIBRARY':\n location = 'file/tgz/documents/';\n break;\n default:\n location = 'media/';\n }\n\n return documentPath ? common.config.imageBaseUrl + location + documentPath : undefined;\n };\n\n $rootScope.getBlackFridayImageUrl = function () {\n var currentLanguage = common.localization.getCurrentLanguage();\n\n if (currentLanguage === 'nl') {\n return 'assets/img/blackfriday-is-here-nl-2019.jpg';\n } else if (currentLanguage === 'fr') {\n return 'assets/img/blackfriday-is-here-fr-2019.jpg';\n }\n };\n\n $rootScope.getBeforeBlackFridayImageUrl = function () {\n var currentLanguage = common.localization.getCurrentLanguage();\n\n if (currentLanguage === 'nl') {\n return 'assets/img/blackfriday-is-coming-nl-2019.jpg';\n } else if (currentLanguage === 'fr') {\n return 'assets/img/blackfriday-is-coming-fr-2019.jpg';\n }\n };\n\n $rootScope.getImage = function (src, size) {\n\n if (src) {\n src = src.replace('#', '');\n switch (size) {\n case 'Original':\n return common.config.imageBaseUrl + 'images/original/' + src;\n case 'Showcase':\n return common.config.imageBaseUrl + 'images/showcase/' + src;\n case 'PartnershipThumb':\n return common.config.imageBaseUrl + 'images/partnership/thumb/' + src;\n case 'Featured':\n return common.config.imageBaseUrl + 'images/featured/' + src;\n case 'FeaturedS':\n return common.config.imageBaseUrl + 'images/featured/s/' + src;\n case 'GalleryS':\n return common.config.imageBaseUrl + 'images/gallery/s/' + src;\n case 'GalleryM':\n return common.config.imageBaseUrl + 'images/gallery/m/' + src;\n case 'GalleryL':\n return common.config.imageBaseUrl + 'images/gallery/l/' + src;\n case 'GalleryThumb':\n return common.config.imageBaseUrl + 'images/gallery/thumb/' + src;\n case 'HeroS':\n return common.config.imageBaseUrl + 'images/hero/s/' + src;\n case 'HeroM':\n return common.config.imageBaseUrl + 'images/hero/m/' + src;\n case 'HeroL':\n return common.config.imageBaseUrl + 'images/hero/l/' + src;\n case 'Logo':\n return common.config.imageBaseUrl + 'images/logo/' + src;\n case 'LogoMenu':\n return common.config.imageBaseUrl + 'images/logo/menu/' + src;\n case 'NewsThumb':\n return common.config.imageBaseUrl + 'images/news/thumb/' + src;\n case 'NewsThumbS':\n return common.config.imageBaseUrl + 'images/news/thumb/s/' + src;\n case 'PersonThumb':\n return common.config.imageBaseUrl + 'images/person/thumb/' + src;\n case 'Product':\n return common.config.imageBaseUrl + 'images/product/' + src;\n case 'ProductThumb':\n return common.config.imageBaseUrl + 'images/product/thumb/' + src;\n case 'OutletCategoryBig':\n return common.config.imageBaseUrl + 'images/outletBig/' + src;\n case 'OutletCategorySmall':\n return common.config.imageBaseUrl + 'images/outletSmall/' + src;\n }\n }\n };\n\n authService.init();\n $state.defaultErrorHandler(function () {});\n\n // Handler for authentication\n $transitions.onBefore({\n to: function to(state) {\n return !state.data || !state.data.public;\n }\n }, function (transition) {\n var redirectUrl = transition.to().name === 'login' ? '/' : transition.router.stateService.href(transition.to().name, transition.params('to'), true);\n var language = transition.params('to').language;\n\n if (!authService.isAuthenticated) {\n return authService.signIn(redirectUrl, null, language).then(function () {\n if (authService.isBuyer && !authService.user.SAUK && !authService.user.BuyerID) {\n $state.go('login', {\n redirectLocation: redirectUrl,\n language: transition.params('to').language\n });\n return false;\n }\n if (authService.isSeller) {\n if (!authService.user.SAUK) {\n $state.go('login', {\n redirectLocation: redirectUrl,\n language: transition.params('to').language\n });\n return false;\n }\n if (!authService.user.BuyerID) {\n $state.go('login', {\n redirectLocation: redirectUrl,\n language: transition.params('to').language,\n selectedSauk: authService.user.SAUK\n });\n return false;\n }\n }\n return true;\n }, function () {\n return false;\n });\n //authService.signIn(common.location.url());\n //return false;\n } else if (!authService.user.SAUK && !authService.user.BuyerID && !(transition.to().data && transition.to().data.noTenant)) {\n $state.go('login', {\n redirectLocation: redirectUrl,\n language: transition.params('to').language\n });\n return false;\n }\n return true;\n });\n\n //handler for authorization\n $transitions.onBefore({\n to: function to(state) {\n return state.data && state.data.febelcoCustomer;\n }\n }, function () {\n if (authService.isFebelcoCustomer) {\n return true;\n } else {\n $state.go('error');\n return false;\n }\n });\n\n //handler for seller authorization\n $transitions.onBefore({}, function (transition) {\n if (authService.isSeller) {\n if (transition.to().name === 'home') {\n $state.go('seller.home', {\n sellerId: authService.user.SellerID\n });\n return false;\n }\n if (transition.to().name !== 'login' && transition.to().name !== 'master' && transition.to().name !== 'unauthorized' && transition.to().name !== 'error' && transition.to().name.indexOf('seller') !== 0) {\n $state.go('unauthorized');\n return false;\n }\n if (transition.to().name.indexOf('seller') === 0 && transition.params('to').sellerId !== parseInt(authService.user.SellerID, 10)) {\n $state.go('unauthorized');\n return false;\n }\n }\n return true;\n });\n\n // set the default filter values\n $transitions.onBefore({}, function () {\n if (!window.sessionStorage.getItem('pageSize')) {\n window.sessionStorage.setItem('pageSize', '24');\n }\n return true;\n });\n\n $transitions.onEnter({\n to: 'seller.**'\n }, function (transition) {\n var toState = transition.$to();\n if (toState.name === 'seller.public') {\n return true;\n }\n if (authService.hasClaim('SellerID', transition.params('to').sellerId)) {\n return true;\n }\n $state.go('seller.public', transition.params('to'));\n return false;\n });\n $transitions.onEnter({\n to: 'general.news.newsitem'\n }, function (transition) {\n var tokens = transition.getResolveTokens();\n var promise = transition.injector().getAsync(tokens.find(function (t) {\n return t === 'newsdetail';\n }));\n if (!(!authService.isFebelcoCustomer && promise && promise.$$state.value && promise.$$state.value.isVipSeller)) {\n return true;\n }\n $state.go('seller.home', {\n sellerId: promise.$$state.value.sellerId\n });\n return false;\n });\n $transitions.onEnter({\n to: 'general.products.**'\n }, function (transition) {\n var tokens = transition.getResolveTokens();\n if (!authService.isFebelcoCustomer) {\n var promise = transition.injector().getAsync(tokens.find(function (t) {\n return t === 'product';\n }));\n if (!(!authService.isFebelcoCustomer && promise && promise.$$state.value && promise.$$state.value.isVipSeller)) {\n return true;\n }\n $state.go('seller.home', {\n sellerId: promise.$$state.value.sellerId\n });\n } else {\n return true;\n }\n });\n authService.addUserLoadedEvent(function (user) {\n if (!authService.customUserInfo.tenants) {\n var tenantService = $injector.get('tenantService');\n if (authService.hasClaim('ShopAdmin')) {\n if (authService.hasClaim('BuyerID')) {\n userService.getCurrentTenant().then(function (tenant) {\n authService.customUserInfo = Object.assign(authService.customUserInfo || {}, {\n tenants: [tenant]\n });\n });\n }\n } else {\n tenantService.getAll().then(function (tenants) {\n authService.customUserInfo = Object.assign(authService.customUserInfo || {}, {\n tenants: tenants\n });\n });\n }\n }\n\n $timeout(function () {\n notifyTenantChange(user);\n }, 1000);\n\n _trackJs2.default.configure({\n userId: user.profile.sub\n });\n Analytics.set('&uid', user.profile.sub);\n });\n\n function notifyTenantChange(user) {\n var currentTenant = window.sessionStorage.getItem('currentTenant');\n var currentBuyer = window.sessionStorage.getItem('currentBuyer');\n if (currentTenant && currentBuyer && (user.profile.IsBuyer && currentTenant !== user.profile.SAUK && currentTenant !== user.profile.BuyerID || user.profile.IsSeller && currentTenant !== user.profile.SAUK || currentBuyer !== user.profile.BuyerID)) {\n if (!authService.customUserInfo || !authService.customUserInfo.tenants || !authService.customUserInfo.tenants.length) {\n $timeout(function () {\n notifyTenantChange(user);\n }, 1000);\n return;\n } else {\n var tenants = authService.customUserInfo.tenants;\n var activeTenant = tenants && tenants.find(function (t) {\n return !!t.secondaryAppUserKey && t.secondaryAppUserKey === user.profile.SAUK || !!t.id && t.id === parseInt(user.profile.BuyerID, 10);\n });\n if (authService.isBuyer && activeTenant || authService.isSeller && activeTenant && activeTenant.name) {\n var gettextCatalog = $injector.get('gettextCatalog');\n toastr.success(gettextCatalog.getString('You are now logged in with pharmacy') + ': ' + activeTenant.name + ' - ' + activeTenant.apbNumber, '', {\n progressBar: true,\n timeOut: 30000,\n extendedTimeOut: 1000,\n closeButton: true\n });\n }\n }\n }\n currentTenant = user.profile.SAUK || user.profile.BuyerID;\n currentBuyer = user.profile.BuyerID;\n window.sessionStorage.setItem('currentTenant', currentTenant);\n window.sessionStorage.setItem('currentBuyer', currentBuyer);\n }\n\n authService.addUserSignedOut(function (user) {\n // redirect to login\n var redirectUrl = window.location.href.indexOf('login') ? '/' : window.location.href;\n authService.signIn(redirectUrl, user ? {\n tenant: user.profile.SAUK || user.profile.BuyerID\n } : undefined);\n });\n\n if (common.config.enableStateVisualizer) {\n $uiRouter.plugin(_visualizer.Visualizer);\n }\n}]);\n\nfunction getInjectedLocale() {\n var localInjector = _angular2.default.injector(['ngLocale']);\n return localInjector.get('$locale');\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app.js\n// module id = 1035\n// module chunks = 0"],"sourceRoot":""}