{"version":3,"sources":["webpack:///./src/components/flight/FlightNotFound.vue?e663","webpack:///src/components/flight/FlightNotFound.vue","webpack:///./src/components/flight/FlightNotFound.vue?e33b","webpack:///./src/components/flight/FlightNotFound.vue","webpack:///./src/components/flight/FlightSort.vue?59d6","webpack:///src/components/flight/FlightSort.vue","webpack:///./src/components/flight/FlightSort.vue?099f","webpack:///./src/components/flight/FlightSort.vue","webpack:///./src/components/flight/FlightSort.vue?5dca","webpack:///./node_modules/ion-rangeslider/js/ion.rangeSlider.js","webpack:///./src/views/flight/FlightAvailList.vue?9b3b","webpack:///./src/views/flight/FlightAvailList.vue?bf91","webpack:///./src/components/shared/FlightItinerary.vue?c8b1","webpack:///src/components/shared/FlightItinerary.vue","webpack:///./src/components/shared/FlightItinerary.vue?cbbe","webpack:///./src/components/shared/FlightItinerary.vue","webpack:///src/views/flight/FlightAvailList.vue","webpack:///./src/views/flight/FlightAvailList.vue?81e4","webpack:///./src/views/flight/FlightAvailList.vue","webpack:///./src/components/flight/FlightNotFound.vue?c2f4","webpack:///./src/components/PdkRange.vue?48d8","webpack:///src/components/PdkRange.vue","webpack:///./src/components/PdkRange.vue?3843","webpack:///./src/components/PdkRange.vue","webpack:///(webpack)/buildin/amd-options.js","webpack:///./src/components/flight/FlightAvail.vue?632c","webpack:///src/components/flight/FlightAvail.vue","webpack:///./src/components/flight/FlightAvail.vue?1f08","webpack:///./src/components/flight/FlightAvail.vue","webpack:///./src/components/PdkRange.vue?6521","webpack:///./node_modules/core-js/internals/inherit-if-required.js","webpack:///./src/components/shared/AirlineFilter.vue?70ac","webpack:///src/components/shared/AirlineFilter.vue","webpack:///./src/components/shared/AirlineFilter.vue?5271","webpack:///./src/components/shared/AirlineFilter.vue","webpack:///./src/components/shared/AirlineFilter.vue?2b03","webpack:///./node_modules/core-js/modules/es.number.constructor.js","webpack:///./src/utils/date.js","webpack:///./src/components/shared/FlightItinerary.vue?4049","webpack:///./src/components/flight/FlightAvail.vue?7645"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","attrs","_m","withoutChangeDate","on","$event","onAction","_v","_e","staticRenderFns","staticStyle","name","props","data","methods","typeCode","type","$emit","component","sortyBy","open","message","factory","jQuery","exports","document","window","navigator","$","undefined","plugin_count","is_old_ie","v","n","userAgent","r","search","exec","toString","split","addClass","Function","prototype","bind","that","target","slice","TypeError","args","call","arguments","bound","F","self","result","apply","concat","Object","Array","indexOf","searchElement","fromIndex","k","O","len","length","Math","abs","Infinity","max","base_html","single_html","double_html","disable_html","IonRangeSlider","input","options","VERSION","current_plugin","calc_count","update_tm","old_from","old_to","old_min_interval","raf_id","dragging","force_redraw","no_diapason","has_tab_index","is_key","is_update","is_start","is_finish","is_active","is_resize","is_click","$cache","win","body","cont","rs","min","from","to","single","bar","line","s_single","s_from","s_to","shad_single","shad_from","shad_to","edge","grid","grid_labels","coords","x_gap","x_pointer","w_rs","w_rs_old","w_handle","p_gap","p_gap_left","p_gap_right","p_step","p_pointer","p_handle","p_single_fake","p_single_real","p_from_fake","p_from_real","p_to_fake","p_to_real","p_bar_x","p_bar_w","grid_gap","big_num","big","big_w","big_p","big_x","labels","w_min","w_max","w_from","w_to","w_single","p_min","p_max","p_from_left","p_to_left","p_single_left","config","config_from_data","prop","$inp","val","skin","step","min_interval","max_interval","drag_interval","values","p_values","from_fixed","from_min","from_max","from_shadow","to_fixed","to_min","to_max","to_shadow","prettify_enabled","prettify_separator","prettify","force_edges","keyboard","grid_margin","grid_num","grid_snap","hide_min_max","hide_from_to","prefix","postfix","max_postfix","decorate_both","values_separator","input_values_separator","disable","block","extra_classes","scope","onStart","onChange","onFinish","onUpdate","nodeName","console","warn","hasOwnProperty","extend","update_check","validate","slider","from_percent","from_value","to_percent","to_value","init","convertToPercent","toggleInput","append","setMinMax","calc","callOnUpdate","callOnStart","updateScene","container_html","before","prev","html","find","style","visibility","setTopHandler","display","appendGrid","appendDisableMask","disabled","removeDisableMask","bindEvents","cursor","changeLevel","toFixed","removeClass","remove","off","cancelAnimationFrame","pointerMove","pointerUp","pointerClick","pointerFocus","pointerDown","key","e","x","$handle","offset","left","width","preventDefault","pageX","originalEvent","touches","restoreOriginalMinInterval","contains","callOnFinish","button","setTempMinInterval","calcPointerPercent","trigger","altKey","ctrlKey","shiftKey","metaKey","which","moveByKey","right","p","decorate","min_pretty","_prettify","max_pretty","outerWidth","interval","update","calcHandlePercent","handle_x","getHandleX","chooseHandle","w","f","t","checkDiapason","convertToFakePercent","convertToRealPercent","calcWithStep","checkMinInterval","checkMaxInterval","real_x","full","half","new_from","new_to","convertToValue","from_pretty","to_pretty","calcMinMax","calcLabels","isNaN","fake","real","m_point","checkEdges","clearTimeout","drawHandles","requestAnimationFrame","setTimeout","drawLabels","calcGridMargin","calcGridLabels","drawShadow","writeToInput","callOnChange","text_single","text_from","text_to","values_num","single_left","to_left","o","c","is_from_min","is_from_max","is_to_min","is_to_max","toggleClass","removeProp","value","no_min","percent","diapason","one_percent","min_length","max_length","min_decimals","max_decimals","avg_decimals","number","string","rounded","round","p_current","p_next","current","next","p_num","num","replace","i","vl","push","original","decorated","updateFrom","updateTo","updateResult","z","local_small_max","small_p","total","small_max","small_w","ceil","cacheGridLabels","$label","label","start","finish","calcGridCollision","Number","POSITIVE_INFINITY","marginLeft","next_i","reset","destroy","fn","ionRangeSlider","each","lastTime","vendors","callback","element","currTime","Date","getTime","timeToCall","id","onModalCloseClicked","itinerary","onChangePriceRange","onStartPriceRange","airlines","timeArray","onChangeTimeRange","onNotFoundAction","isNotFoundResult","sortFlightBy","_l","flight","index","_s","itienary","originCity","destinationCity","departureDateTime","adultQty","infantQty","childQty","components","PdkFlightAvail","PdkRangeSlider","PdkFlightSort","PdkAirlineFilter","PdkFlightItinerary","PdkFlightNotFound","mounted","getAvailFligh","payLoad","computed","$store","getters","hasError","error","hideMinMax","vm","fromValue","fromPrecent","fromPretty","toValue","toPrecent","toPretty","module","__webpack_amd_options__","selectedItems","flightNumber","availableFlight","airLineTitle","departureTime","arrivalTime","departureDateTimeShamsiText","totalAdultFare","totalAdultProvideFare","_f","remainedCapacity","class","active","toggleAccordionState","origin","destination","departureTerminal","arrivalTerminal","airCraft","maxAllowedCargo","rateClass","ticketType","totalChildProvideFare","totalInfantProvideFare","selectedFlight","onSelect","event","isObject","setPrototypeOf","$this","dummy","Wrapper","NewTarget","NewTargetPrototype","constructor","item","airLineName","selectAirline","getLogoUrl","airLineLogo","DESCRIPTORS","global","isForced","redefine","has","classof","inheritIfRequired","toPrimitive","fails","create","getOwnPropertyNames","getOwnPropertyDescriptor","defineProperty","trim","NUMBER","NativeNumber","NumberPrototype","BROKEN_CLASSOF","toNumber","argument","first","third","radix","maxCode","digits","code","it","charCodeAt","NaN","parseInt","NumberWrapper","valueOf","keys","j","ConvertToPersian","gregorianDate","moment","isValid","momentjalaali","format","ConvertToGregorian","shamsiDate","ConvertToGregorianDashFormat","AddPersian","el","date","add"],"mappings":"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","file":"js/chunk-898a67a8.284b05cc.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"box_style_4\"},[_c('img',{staticClass:\"notfound-logo\",attrs:{\"src\":\"/img/travel.png\"}}),_vm._m(0),(_vm.withoutChangeDate == true)?_c('div',{staticClass:\"btn btn-change-search\"},[_c('button',{staticClass:\"col-6 btn btn-secondary\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.onAction(2)}}},[_vm._v(\"تغییر جستجو\")])]):_vm._e(),(_vm.withoutChangeDate == false)?_c('div',{staticClass:\"btn-grp btn-group\",attrs:{\"role\":\"group\"}},[_c('button',{staticClass:\"col-4 btn btn-primary\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.onAction(1)}}},[_vm._v(\"روز قبل\")]),_c('button',{staticClass:\"col-6 btn btn-secondary\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.onAction(2)}}},[_vm._v(\"تغییر جستجو\")]),_c('button',{staticClass:\"col-4 btn btn-primary\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.onAction(3)}}},[_vm._v(\"روز بعد\")])]):_vm._e(),_vm._m(1)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h4',{staticClass:\"mt20\"},[_vm._v(\" متاسفیم، برای جستجوی شما پروازی \"),_c('span',[_vm._v(\"یافت نشد.\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('small',{staticStyle:{\"display\":\"block\"}},[_vm._v(\"جهت اطلاعات بیشتر می توانید به با شماره \"),_c('span',{staticStyle:{\"display\":\"inline-block\"}},[_vm._v(\"021-44631360-5 \")]),_vm._v(\" تماس حاصل نمایید.\")])}]\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FlightNotFound.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FlightNotFound.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FlightNotFound.vue?vue&type=template&id=15bdc1e4&\"\nimport script from \"./FlightNotFound.vue?vue&type=script&lang=js&\"\nexport * from \"./FlightNotFound.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FlightNotFound.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"tools\"}},[_c('div',{staticClass:\"pd0 col btn-group\"},[_c('button',{staticClass:\"the-icons btn btn-light border-left\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.sortyBy(0)}}},[_c('i',{staticClass:\"icon-sort\"}),_vm._v(\" قیمت \")]),_c('button',{staticClass:\"the-icons btn btn-light\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.sortyBy(1)}}},[_c('i',{staticClass:\"icon-sort\"}),_vm._v(\" زمان پرواز \")]),_c('button',{staticClass:\"the-icons btn btn-light border-right\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.sortyBy(2)}}},[_c('i',{staticClass:\"icon-sort\"}),_vm._v(\" ظرفیت \")]),_c('button',{staticClass:\"the-icons btn btn-light border-right\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.sortyBy(3)}}},[_c('i',{staticClass:\"icon-sort\"}),_vm._v(\" نوع پرواز \")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FlightSort.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FlightSort.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FlightSort.vue?vue&type=template&id=69e115ff&\"\nimport script from \"./FlightSort.vue?vue&type=script&lang=js&\"\nexport * from \"./FlightSort.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FlightSort.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FlightSort.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FlightSort.vue?vue&type=style&index=0&lang=css&\"","// Ion.RangeSlider\n// version 2.3.1 Build: 382\n// © Denis Ineshin, 2019\n// https://github.com/IonDen\n//\n// Project page: http://ionden.com/a/plugins/ion.rangeSlider/en.html\n// GitHub page: https://github.com/IonDen/ion.rangeSlider\n//\n// Released under MIT licence:\n// http://ionden.com/a/plugins/licence-en.html\n// =====================================================================================================================\n\n;(function(factory) {\n if ((typeof jQuery === 'undefined' || !jQuery) && typeof define === \"function\" && define.amd) {\n define([\"jquery\"], function (jQuery) {\n return factory(jQuery, document, window, navigator);\n });\n } else if ((typeof jQuery === 'undefined' || !jQuery) && typeof exports === \"object\") {\n factory(require(\"jquery\"), document, window, navigator);\n } else {\n factory(jQuery, document, window, navigator);\n }\n} (function ($, document, window, navigator, undefined) {\n \"use strict\";\n\n // =================================================================================================================\n // Service\n\n var plugin_count = 0;\n\n // IE8 fix\n var is_old_ie = (function () {\n var n = navigator.userAgent,\n r = /msie\\s\\d+/i,\n v;\n if (n.search(r) > 0) {\n v = r.exec(n).toString();\n v = v.split(\" \")[1];\n if (v < 9) {\n $(\"html\").addClass(\"lt-ie9\");\n return true;\n }\n }\n return false;\n } ());\n if (!Function.prototype.bind) {\n Function.prototype.bind = function bind(that) {\n\n var target = this;\n var slice = [].slice;\n\n if (typeof target != \"function\") {\n throw new TypeError();\n }\n\n var args = slice.call(arguments, 1),\n bound = function () {\n\n if (this instanceof bound) {\n\n var F = function(){};\n F.prototype = target.prototype;\n var self = new F();\n\n var result = target.apply(\n self,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return self;\n\n } else {\n\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n\n }\n\n };\n\n return bound;\n };\n }\n if (!Array.prototype.indexOf) {\n Array.prototype.indexOf = function(searchElement, fromIndex) {\n var k;\n if (this == null) {\n throw new TypeError('\"this\" is null or not defined');\n }\n var O = Object(this);\n var len = O.length >>> 0;\n if (len === 0) {\n return -1;\n }\n var n = +fromIndex || 0;\n if (Math.abs(n) === Infinity) {\n n = 0;\n }\n if (n >= len) {\n return -1;\n }\n k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);\n while (k < len) {\n if (k in O && O[k] === searchElement) {\n return k;\n }\n k++;\n }\n return -1;\n };\n }\n\n\n\n // =================================================================================================================\n // Template\n\n var base_html =\n '' +\n '' +\n '01' +\n '000' +\n '' +\n '';\n\n var single_html =\n '' +\n '' +\n '';\n\n var double_html =\n '' +\n '' +\n '' +\n '' +\n '';\n\n var disable_html =\n '';\n\n\n\n // =================================================================================================================\n // Core\n\n /**\n * Main plugin constructor\n *\n * @param input {Object} link to base input element\n * @param options {Object} slider config\n * @param plugin_count {Number}\n * @constructor\n */\n var IonRangeSlider = function (input, options, plugin_count) {\n this.VERSION = \"2.3.1\";\n this.input = input;\n this.plugin_count = plugin_count;\n this.current_plugin = 0;\n this.calc_count = 0;\n this.update_tm = 0;\n this.old_from = 0;\n this.old_to = 0;\n this.old_min_interval = null;\n this.raf_id = null;\n this.dragging = false;\n this.force_redraw = false;\n this.no_diapason = false;\n this.has_tab_index = true;\n this.is_key = false;\n this.is_update = false;\n this.is_start = true;\n this.is_finish = false;\n this.is_active = false;\n this.is_resize = false;\n this.is_click = false;\n\n options = options || {};\n\n // cache for links to all DOM elements\n this.$cache = {\n win: $(window),\n body: $(document.body),\n input: $(input),\n cont: null,\n rs: null,\n min: null,\n max: null,\n from: null,\n to: null,\n single: null,\n bar: null,\n line: null,\n s_single: null,\n s_from: null,\n s_to: null,\n shad_single: null,\n shad_from: null,\n shad_to: null,\n edge: null,\n grid: null,\n grid_labels: []\n };\n\n // storage for measure variables\n this.coords = {\n // left\n x_gap: 0,\n x_pointer: 0,\n\n // width\n w_rs: 0,\n w_rs_old: 0,\n w_handle: 0,\n\n // percents\n p_gap: 0,\n p_gap_left: 0,\n p_gap_right: 0,\n p_step: 0,\n p_pointer: 0,\n p_handle: 0,\n p_single_fake: 0,\n p_single_real: 0,\n p_from_fake: 0,\n p_from_real: 0,\n p_to_fake: 0,\n p_to_real: 0,\n p_bar_x: 0,\n p_bar_w: 0,\n\n // grid\n grid_gap: 0,\n big_num: 0,\n big: [],\n big_w: [],\n big_p: [],\n big_x: []\n };\n\n // storage for labels measure variables\n this.labels = {\n // width\n w_min: 0,\n w_max: 0,\n w_from: 0,\n w_to: 0,\n w_single: 0,\n\n // percents\n p_min: 0,\n p_max: 0,\n p_from_fake: 0,\n p_from_left: 0,\n p_to_fake: 0,\n p_to_left: 0,\n p_single_fake: 0,\n p_single_left: 0\n };\n\n\n\n /**\n * get and validate config\n */\n var $inp = this.$cache.input,\n val = $inp.prop(\"value\"),\n config, config_from_data, prop;\n\n // default config\n config = {\n skin: \"flat\",\n type: \"single\",\n\n min: 10,\n max: 100,\n from: null,\n to: null,\n step: 1,\n\n min_interval: 0,\n max_interval: 0,\n drag_interval: false,\n\n values: [],\n p_values: [],\n\n from_fixed: false,\n from_min: null,\n from_max: null,\n from_shadow: false,\n\n to_fixed: false,\n to_min: null,\n to_max: null,\n to_shadow: false,\n\n prettify_enabled: true,\n prettify_separator: \" \",\n prettify: null,\n\n force_edges: false,\n\n keyboard: true,\n\n grid: false,\n grid_margin: true,\n grid_num: 4,\n grid_snap: false,\n\n hide_min_max: false,\n hide_from_to: false,\n\n prefix: \"\",\n postfix: \"\",\n max_postfix: \"\",\n decorate_both: true,\n values_separator: \" — \",\n\n input_values_separator: \";\",\n\n disable: false,\n block: false,\n\n extra_classes: \"\",\n\n scope: null,\n onStart: null,\n onChange: null,\n onFinish: null,\n onUpdate: null\n };\n\n\n // check if base element is input\n if ($inp[0].nodeName !== \"INPUT\") {\n console && console.warn && console.warn(\"Base element should be !\", $inp[0]);\n }\n\n\n // config from data-attributes extends js config\n config_from_data = {\n skin: $inp.data(\"skin\"),\n type: $inp.data(\"type\"),\n\n min: $inp.data(\"min\"),\n max: $inp.data(\"max\"),\n from: $inp.data(\"from\"),\n to: $inp.data(\"to\"),\n step: $inp.data(\"step\"),\n\n min_interval: $inp.data(\"minInterval\"),\n max_interval: $inp.data(\"maxInterval\"),\n drag_interval: $inp.data(\"dragInterval\"),\n\n values: $inp.data(\"values\"),\n\n from_fixed: $inp.data(\"fromFixed\"),\n from_min: $inp.data(\"fromMin\"),\n from_max: $inp.data(\"fromMax\"),\n from_shadow: $inp.data(\"fromShadow\"),\n\n to_fixed: $inp.data(\"toFixed\"),\n to_min: $inp.data(\"toMin\"),\n to_max: $inp.data(\"toMax\"),\n to_shadow: $inp.data(\"toShadow\"),\n\n prettify_enabled: $inp.data(\"prettifyEnabled\"),\n prettify_separator: $inp.data(\"prettifySeparator\"),\n\n force_edges: $inp.data(\"forceEdges\"),\n\n keyboard: $inp.data(\"keyboard\"),\n\n grid: $inp.data(\"grid\"),\n grid_margin: $inp.data(\"gridMargin\"),\n grid_num: $inp.data(\"gridNum\"),\n grid_snap: $inp.data(\"gridSnap\"),\n\n hide_min_max: $inp.data(\"hideMinMax\"),\n hide_from_to: $inp.data(\"hideFromTo\"),\n\n prefix: $inp.data(\"prefix\"),\n postfix: $inp.data(\"postfix\"),\n max_postfix: $inp.data(\"maxPostfix\"),\n decorate_both: $inp.data(\"decorateBoth\"),\n values_separator: $inp.data(\"valuesSeparator\"),\n\n input_values_separator: $inp.data(\"inputValuesSeparator\"),\n\n disable: $inp.data(\"disable\"),\n block: $inp.data(\"block\"),\n\n extra_classes: $inp.data(\"extraClasses\"),\n };\n config_from_data.values = config_from_data.values && config_from_data.values.split(\",\");\n\n for (prop in config_from_data) {\n if (config_from_data.hasOwnProperty(prop)) {\n if (config_from_data[prop] === undefined || config_from_data[prop] === \"\") {\n delete config_from_data[prop];\n }\n }\n }\n\n\n // input value extends default config\n if (val !== undefined && val !== \"\") {\n val = val.split(config_from_data.input_values_separator || options.input_values_separator || \";\");\n\n if (val[0] && val[0] == +val[0]) {\n val[0] = +val[0];\n }\n if (val[1] && val[1] == +val[1]) {\n val[1] = +val[1];\n }\n\n if (options && options.values && options.values.length) {\n config.from = val[0] && options.values.indexOf(val[0]);\n config.to = val[1] && options.values.indexOf(val[1]);\n } else {\n config.from = val[0] && +val[0];\n config.to = val[1] && +val[1];\n }\n }\n\n\n\n // js config extends default config\n $.extend(config, options);\n\n\n // data config extends config\n $.extend(config, config_from_data);\n this.options = config;\n\n\n\n // validate config, to be sure that all data types are correct\n this.update_check = {};\n this.validate();\n\n\n\n // default result object, returned to callbacks\n this.result = {\n input: this.$cache.input,\n slider: null,\n\n min: this.options.min,\n max: this.options.max,\n\n from: this.options.from,\n from_percent: 0,\n from_value: null,\n\n to: this.options.to,\n to_percent: 0,\n to_value: null\n };\n\n\n\n this.init();\n };\n\n IonRangeSlider.prototype = {\n\n /**\n * Starts or updates the plugin instance\n *\n * @param [is_update] {boolean}\n */\n init: function (is_update) {\n this.no_diapason = false;\n this.coords.p_step = this.convertToPercent(this.options.step, true);\n\n this.target = \"base\";\n\n this.toggleInput();\n this.append();\n this.setMinMax();\n\n if (is_update) {\n this.force_redraw = true;\n this.calc(true);\n\n // callbacks called\n this.callOnUpdate();\n } else {\n this.force_redraw = true;\n this.calc(true);\n\n // callbacks called\n this.callOnStart();\n }\n\n this.updateScene();\n },\n\n /**\n * Appends slider template to a DOM\n */\n append: function () {\n var container_html = '';\n this.$cache.input.before(container_html);\n this.$cache.input.prop(\"readonly\", true);\n this.$cache.cont = this.$cache.input.prev();\n this.result.slider = this.$cache.cont;\n\n this.$cache.cont.html(base_html);\n this.$cache.rs = this.$cache.cont.find(\".irs\");\n this.$cache.min = this.$cache.cont.find(\".irs-min\");\n this.$cache.max = this.$cache.cont.find(\".irs-max\");\n this.$cache.from = this.$cache.cont.find(\".irs-from\");\n this.$cache.to = this.$cache.cont.find(\".irs-to\");\n this.$cache.single = this.$cache.cont.find(\".irs-single\");\n this.$cache.line = this.$cache.cont.find(\".irs-line\");\n this.$cache.grid = this.$cache.cont.find(\".irs-grid\");\n\n if (this.options.type === \"single\") {\n this.$cache.cont.append(single_html);\n this.$cache.bar = this.$cache.cont.find(\".irs-bar\");\n this.$cache.edge = this.$cache.cont.find(\".irs-bar-edge\");\n this.$cache.s_single = this.$cache.cont.find(\".single\");\n this.$cache.from[0].style.visibility = \"hidden\";\n this.$cache.to[0].style.visibility = \"hidden\";\n this.$cache.shad_single = this.$cache.cont.find(\".shadow-single\");\n } else {\n this.$cache.cont.append(double_html);\n this.$cache.bar = this.$cache.cont.find(\".irs-bar\");\n this.$cache.s_from = this.$cache.cont.find(\".from\");\n this.$cache.s_to = this.$cache.cont.find(\".to\");\n this.$cache.shad_from = this.$cache.cont.find(\".shadow-from\");\n this.$cache.shad_to = this.$cache.cont.find(\".shadow-to\");\n\n this.setTopHandler();\n }\n\n if (this.options.hide_from_to) {\n this.$cache.from[0].style.display = \"none\";\n this.$cache.to[0].style.display = \"none\";\n this.$cache.single[0].style.display = \"none\";\n }\n\n this.appendGrid();\n\n if (this.options.disable) {\n this.appendDisableMask();\n this.$cache.input[0].disabled = true;\n } else {\n this.$cache.input[0].disabled = false;\n this.removeDisableMask();\n this.bindEvents();\n }\n\n // block only if not disabled\n if (!this.options.disable) {\n if (this.options.block) {\n this.appendDisableMask();\n } else {\n this.removeDisableMask();\n }\n }\n\n if (this.options.drag_interval) {\n this.$cache.bar[0].style.cursor = \"ew-resize\";\n }\n },\n\n /**\n * Determine which handler has a priority\n * works only for double slider type\n */\n setTopHandler: function () {\n var min = this.options.min,\n max = this.options.max,\n from = this.options.from,\n to = this.options.to;\n\n if (from > min && to === max) {\n this.$cache.s_from.addClass(\"type_last\");\n } else if (to < max) {\n this.$cache.s_to.addClass(\"type_last\");\n }\n },\n\n /**\n * Determine which handles was clicked last\n * and which handler should have hover effect\n *\n * @param target {String}\n */\n changeLevel: function (target) {\n switch (target) {\n case \"single\":\n this.coords.p_gap = this.toFixed(this.coords.p_pointer - this.coords.p_single_fake);\n this.$cache.s_single.addClass(\"state_hover\");\n break;\n case \"from\":\n this.coords.p_gap = this.toFixed(this.coords.p_pointer - this.coords.p_from_fake);\n this.$cache.s_from.addClass(\"state_hover\");\n this.$cache.s_from.addClass(\"type_last\");\n this.$cache.s_to.removeClass(\"type_last\");\n break;\n case \"to\":\n this.coords.p_gap = this.toFixed(this.coords.p_pointer - this.coords.p_to_fake);\n this.$cache.s_to.addClass(\"state_hover\");\n this.$cache.s_to.addClass(\"type_last\");\n this.$cache.s_from.removeClass(\"type_last\");\n break;\n case \"both\":\n this.coords.p_gap_left = this.toFixed(this.coords.p_pointer - this.coords.p_from_fake);\n this.coords.p_gap_right = this.toFixed(this.coords.p_to_fake - this.coords.p_pointer);\n this.$cache.s_to.removeClass(\"type_last\");\n this.$cache.s_from.removeClass(\"type_last\");\n break;\n }\n },\n\n /**\n * Then slider is disabled\n * appends extra layer with opacity\n */\n appendDisableMask: function () {\n this.$cache.cont.append(disable_html);\n this.$cache.cont.addClass(\"irs-disabled\");\n },\n\n /**\n * Then slider is not disabled\n * remove disable mask\n */\n removeDisableMask: function () {\n this.$cache.cont.remove(\".irs-disable-mask\");\n this.$cache.cont.removeClass(\"irs-disabled\");\n },\n\n /**\n * Remove slider instance\n * and unbind all events\n */\n remove: function () {\n this.$cache.cont.remove();\n this.$cache.cont = null;\n\n this.$cache.line.off(\"keydown.irs_\" + this.plugin_count);\n\n this.$cache.body.off(\"touchmove.irs_\" + this.plugin_count);\n this.$cache.body.off(\"mousemove.irs_\" + this.plugin_count);\n\n this.$cache.win.off(\"touchend.irs_\" + this.plugin_count);\n this.$cache.win.off(\"mouseup.irs_\" + this.plugin_count);\n\n if (is_old_ie) {\n this.$cache.body.off(\"mouseup.irs_\" + this.plugin_count);\n this.$cache.body.off(\"mouseleave.irs_\" + this.plugin_count);\n }\n\n this.$cache.grid_labels = [];\n this.coords.big = [];\n this.coords.big_w = [];\n this.coords.big_p = [];\n this.coords.big_x = [];\n\n cancelAnimationFrame(this.raf_id);\n },\n\n /**\n * bind all slider events\n */\n bindEvents: function () {\n if (this.no_diapason) {\n return;\n }\n\n this.$cache.body.on(\"touchmove.irs_\" + this.plugin_count, this.pointerMove.bind(this));\n this.$cache.body.on(\"mousemove.irs_\" + this.plugin_count, this.pointerMove.bind(this));\n\n this.$cache.win.on(\"touchend.irs_\" + this.plugin_count, this.pointerUp.bind(this));\n this.$cache.win.on(\"mouseup.irs_\" + this.plugin_count, this.pointerUp.bind(this));\n\n this.$cache.line.on(\"touchstart.irs_\" + this.plugin_count, this.pointerClick.bind(this, \"click\"));\n this.$cache.line.on(\"mousedown.irs_\" + this.plugin_count, this.pointerClick.bind(this, \"click\"));\n\n this.$cache.line.on(\"focus.irs_\" + this.plugin_count, this.pointerFocus.bind(this));\n\n if (this.options.drag_interval && this.options.type === \"double\") {\n this.$cache.bar.on(\"touchstart.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"both\"));\n this.$cache.bar.on(\"mousedown.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"both\"));\n } else {\n this.$cache.bar.on(\"touchstart.irs_\" + this.plugin_count, this.pointerClick.bind(this, \"click\"));\n this.$cache.bar.on(\"mousedown.irs_\" + this.plugin_count, this.pointerClick.bind(this, \"click\"));\n }\n\n if (this.options.type === \"single\") {\n this.$cache.single.on(\"touchstart.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"single\"));\n this.$cache.s_single.on(\"touchstart.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"single\"));\n this.$cache.shad_single.on(\"touchstart.irs_\" + this.plugin_count, this.pointerClick.bind(this, \"click\"));\n\n this.$cache.single.on(\"mousedown.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"single\"));\n this.$cache.s_single.on(\"mousedown.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"single\"));\n this.$cache.edge.on(\"mousedown.irs_\" + this.plugin_count, this.pointerClick.bind(this, \"click\"));\n this.$cache.shad_single.on(\"mousedown.irs_\" + this.plugin_count, this.pointerClick.bind(this, \"click\"));\n } else {\n this.$cache.single.on(\"touchstart.irs_\" + this.plugin_count, this.pointerDown.bind(this, null));\n this.$cache.single.on(\"mousedown.irs_\" + this.plugin_count, this.pointerDown.bind(this, null));\n\n this.$cache.from.on(\"touchstart.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"from\"));\n this.$cache.s_from.on(\"touchstart.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"from\"));\n this.$cache.to.on(\"touchstart.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"to\"));\n this.$cache.s_to.on(\"touchstart.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"to\"));\n this.$cache.shad_from.on(\"touchstart.irs_\" + this.plugin_count, this.pointerClick.bind(this, \"click\"));\n this.$cache.shad_to.on(\"touchstart.irs_\" + this.plugin_count, this.pointerClick.bind(this, \"click\"));\n\n this.$cache.from.on(\"mousedown.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"from\"));\n this.$cache.s_from.on(\"mousedown.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"from\"));\n this.$cache.to.on(\"mousedown.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"to\"));\n this.$cache.s_to.on(\"mousedown.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"to\"));\n this.$cache.shad_from.on(\"mousedown.irs_\" + this.plugin_count, this.pointerClick.bind(this, \"click\"));\n this.$cache.shad_to.on(\"mousedown.irs_\" + this.plugin_count, this.pointerClick.bind(this, \"click\"));\n }\n\n if (this.options.keyboard) {\n this.$cache.line.on(\"keydown.irs_\" + this.plugin_count, this.key.bind(this, \"keyboard\"));\n }\n\n if (is_old_ie) {\n this.$cache.body.on(\"mouseup.irs_\" + this.plugin_count, this.pointerUp.bind(this));\n this.$cache.body.on(\"mouseleave.irs_\" + this.plugin_count, this.pointerUp.bind(this));\n }\n },\n\n /**\n * Focus with tabIndex\n *\n * @param e {Object} event object\n */\n pointerFocus: function (e) {\n if (!this.target) {\n var x;\n var $handle;\n\n if (this.options.type === \"single\") {\n $handle = this.$cache.single;\n } else {\n $handle = this.$cache.from;\n }\n\n x = $handle.offset().left;\n x += ($handle.width() / 2) - 1;\n\n this.pointerClick(\"single\", {preventDefault: function () {}, pageX: x});\n }\n },\n\n /**\n * Mousemove or touchmove\n * only for handlers\n *\n * @param e {Object} event object\n */\n pointerMove: function (e) {\n if (!this.dragging) {\n return;\n }\n\n var x = e.pageX || e.originalEvent.touches && e.originalEvent.touches[0].pageX;\n this.coords.x_pointer = x - this.coords.x_gap;\n\n this.calc();\n },\n\n /**\n * Mouseup or touchend\n * only for handlers\n *\n * @param e {Object} event object\n */\n pointerUp: function (e) {\n if (this.current_plugin !== this.plugin_count) {\n return;\n }\n\n if (this.is_active) {\n this.is_active = false;\n } else {\n return;\n }\n\n this.$cache.cont.find(\".state_hover\").removeClass(\"state_hover\");\n\n this.force_redraw = true;\n\n if (is_old_ie) {\n $(\"*\").prop(\"unselectable\", false);\n }\n\n this.updateScene();\n this.restoreOriginalMinInterval();\n\n // callbacks call\n if ($.contains(this.$cache.cont[0], e.target) || this.dragging) {\n this.callOnFinish();\n }\n\n this.dragging = false;\n },\n\n /**\n * Mousedown or touchstart\n * only for handlers\n *\n * @param target {String|null}\n * @param e {Object} event object\n */\n pointerDown: function (target, e) {\n e.preventDefault();\n var x = e.pageX || e.originalEvent.touches && e.originalEvent.touches[0].pageX;\n if (e.button === 2) {\n return;\n }\n\n if (target === \"both\") {\n this.setTempMinInterval();\n }\n\n if (!target) {\n target = this.target || \"from\";\n }\n\n this.current_plugin = this.plugin_count;\n this.target = target;\n\n this.is_active = true;\n this.dragging = true;\n\n this.coords.x_gap = this.$cache.rs.offset().left;\n this.coords.x_pointer = x - this.coords.x_gap;\n\n this.calcPointerPercent();\n this.changeLevel(target);\n\n if (is_old_ie) {\n $(\"*\").prop(\"unselectable\", true);\n }\n\n this.$cache.line.trigger(\"focus\");\n\n this.updateScene();\n },\n\n /**\n * Mousedown or touchstart\n * for other slider elements, like diapason line\n *\n * @param target {String}\n * @param e {Object} event object\n */\n pointerClick: function (target, e) {\n e.preventDefault();\n var x = e.pageX || e.originalEvent.touches && e.originalEvent.touches[0].pageX;\n if (e.button === 2) {\n return;\n }\n\n this.current_plugin = this.plugin_count;\n this.target = target;\n\n this.is_click = true;\n this.coords.x_gap = this.$cache.rs.offset().left;\n this.coords.x_pointer = +(x - this.coords.x_gap).toFixed();\n\n this.force_redraw = true;\n this.calc();\n\n this.$cache.line.trigger(\"focus\");\n },\n\n /**\n * Keyborard controls for focused slider\n *\n * @param target {String}\n * @param e {Object} event object\n * @returns {boolean|undefined}\n */\n key: function (target, e) {\n if (this.current_plugin !== this.plugin_count || e.altKey || e.ctrlKey || e.shiftKey || e.metaKey) {\n return;\n }\n\n switch (e.which) {\n case 83: // W\n case 65: // A\n case 40: // DOWN\n case 37: // LEFT\n e.preventDefault();\n this.moveByKey(false);\n break;\n\n case 87: // S\n case 68: // D\n case 38: // UP\n case 39: // RIGHT\n e.preventDefault();\n this.moveByKey(true);\n break;\n }\n\n return true;\n },\n\n /**\n * Move by key\n *\n * @param right {boolean} direction to move\n */\n moveByKey: function (right) {\n var p = this.coords.p_pointer;\n var p_step = (this.options.max - this.options.min) / 100;\n p_step = this.options.step / p_step;\n\n if (right) {\n p += p_step;\n } else {\n p -= p_step;\n }\n\n this.coords.x_pointer = this.toFixed(this.coords.w_rs / 100 * p);\n this.is_key = true;\n this.calc();\n },\n\n /**\n * Set visibility and content\n * of Min and Max labels\n */\n setMinMax: function () {\n if (!this.options) {\n return;\n }\n\n if (this.options.hide_min_max) {\n this.$cache.min[0].style.display = \"none\";\n this.$cache.max[0].style.display = \"none\";\n return;\n }\n\n if (this.options.values.length) {\n this.$cache.min.html(this.decorate(this.options.p_values[this.options.min]));\n this.$cache.max.html(this.decorate(this.options.p_values[this.options.max]));\n } else {\n var min_pretty = this._prettify(this.options.min);\n var max_pretty = this._prettify(this.options.max);\n\n this.result.min_pretty = min_pretty;\n this.result.max_pretty = max_pretty;\n\n this.$cache.min.html(this.decorate(min_pretty, this.options.min));\n this.$cache.max.html(this.decorate(max_pretty, this.options.max));\n }\n\n this.labels.w_min = this.$cache.min.outerWidth(false);\n this.labels.w_max = this.$cache.max.outerWidth(false);\n },\n\n /**\n * Then dragging interval, prevent interval collapsing\n * using min_interval option\n */\n setTempMinInterval: function () {\n var interval = this.result.to - this.result.from;\n\n if (this.old_min_interval === null) {\n this.old_min_interval = this.options.min_interval;\n }\n\n this.options.min_interval = interval;\n },\n\n /**\n * Restore min_interval option to original\n */\n restoreOriginalMinInterval: function () {\n if (this.old_min_interval !== null) {\n this.options.min_interval = this.old_min_interval;\n this.old_min_interval = null;\n }\n },\n\n\n\n // =============================================================================================================\n // Calculations\n\n /**\n * All calculations and measures start here\n *\n * @param update {boolean=}\n */\n calc: function (update) {\n if (!this.options) {\n return;\n }\n\n this.calc_count++;\n\n if (this.calc_count === 10 || update) {\n this.calc_count = 0;\n this.coords.w_rs = this.$cache.rs.outerWidth(false);\n\n this.calcHandlePercent();\n }\n\n if (!this.coords.w_rs) {\n return;\n }\n\n this.calcPointerPercent();\n var handle_x = this.getHandleX();\n\n\n if (this.target === \"both\") {\n this.coords.p_gap = 0;\n handle_x = this.getHandleX();\n }\n\n if (this.target === \"click\") {\n this.coords.p_gap = this.coords.p_handle / 2;\n handle_x = this.getHandleX();\n\n if (this.options.drag_interval) {\n this.target = \"both_one\";\n } else {\n this.target = this.chooseHandle(handle_x);\n }\n }\n\n switch (this.target) {\n case \"base\":\n var w = (this.options.max - this.options.min) / 100,\n f = (this.result.from - this.options.min) / w,\n t = (this.result.to - this.options.min) / w;\n\n this.coords.p_single_real = this.toFixed(f);\n this.coords.p_from_real = this.toFixed(f);\n this.coords.p_to_real = this.toFixed(t);\n\n this.coords.p_single_real = this.checkDiapason(this.coords.p_single_real, this.options.from_min, this.options.from_max);\n this.coords.p_from_real = this.checkDiapason(this.coords.p_from_real, this.options.from_min, this.options.from_max);\n this.coords.p_to_real = this.checkDiapason(this.coords.p_to_real, this.options.to_min, this.options.to_max);\n\n this.coords.p_single_fake = this.convertToFakePercent(this.coords.p_single_real);\n this.coords.p_from_fake = this.convertToFakePercent(this.coords.p_from_real);\n this.coords.p_to_fake = this.convertToFakePercent(this.coords.p_to_real);\n\n this.target = null;\n\n break;\n\n case \"single\":\n if (this.options.from_fixed) {\n break;\n }\n\n this.coords.p_single_real = this.convertToRealPercent(handle_x);\n this.coords.p_single_real = this.calcWithStep(this.coords.p_single_real);\n this.coords.p_single_real = this.checkDiapason(this.coords.p_single_real, this.options.from_min, this.options.from_max);\n\n this.coords.p_single_fake = this.convertToFakePercent(this.coords.p_single_real);\n\n break;\n\n case \"from\":\n if (this.options.from_fixed) {\n break;\n }\n\n this.coords.p_from_real = this.convertToRealPercent(handle_x);\n this.coords.p_from_real = this.calcWithStep(this.coords.p_from_real);\n if (this.coords.p_from_real > this.coords.p_to_real) {\n this.coords.p_from_real = this.coords.p_to_real;\n }\n this.coords.p_from_real = this.checkDiapason(this.coords.p_from_real, this.options.from_min, this.options.from_max);\n this.coords.p_from_real = this.checkMinInterval(this.coords.p_from_real, this.coords.p_to_real, \"from\");\n this.coords.p_from_real = this.checkMaxInterval(this.coords.p_from_real, this.coords.p_to_real, \"from\");\n\n this.coords.p_from_fake = this.convertToFakePercent(this.coords.p_from_real);\n\n break;\n\n case \"to\":\n if (this.options.to_fixed) {\n break;\n }\n\n this.coords.p_to_real = this.convertToRealPercent(handle_x);\n this.coords.p_to_real = this.calcWithStep(this.coords.p_to_real);\n if (this.coords.p_to_real < this.coords.p_from_real) {\n this.coords.p_to_real = this.coords.p_from_real;\n }\n this.coords.p_to_real = this.checkDiapason(this.coords.p_to_real, this.options.to_min, this.options.to_max);\n this.coords.p_to_real = this.checkMinInterval(this.coords.p_to_real, this.coords.p_from_real, \"to\");\n this.coords.p_to_real = this.checkMaxInterval(this.coords.p_to_real, this.coords.p_from_real, \"to\");\n\n this.coords.p_to_fake = this.convertToFakePercent(this.coords.p_to_real);\n\n break;\n\n case \"both\":\n if (this.options.from_fixed || this.options.to_fixed) {\n break;\n }\n\n handle_x = this.toFixed(handle_x + (this.coords.p_handle * 0.001));\n\n this.coords.p_from_real = this.convertToRealPercent(handle_x) - this.coords.p_gap_left;\n this.coords.p_from_real = this.calcWithStep(this.coords.p_from_real);\n this.coords.p_from_real = this.checkDiapason(this.coords.p_from_real, this.options.from_min, this.options.from_max);\n this.coords.p_from_real = this.checkMinInterval(this.coords.p_from_real, this.coords.p_to_real, \"from\");\n this.coords.p_from_fake = this.convertToFakePercent(this.coords.p_from_real);\n\n this.coords.p_to_real = this.convertToRealPercent(handle_x) + this.coords.p_gap_right;\n this.coords.p_to_real = this.calcWithStep(this.coords.p_to_real);\n this.coords.p_to_real = this.checkDiapason(this.coords.p_to_real, this.options.to_min, this.options.to_max);\n this.coords.p_to_real = this.checkMinInterval(this.coords.p_to_real, this.coords.p_from_real, \"to\");\n this.coords.p_to_fake = this.convertToFakePercent(this.coords.p_to_real);\n\n break;\n\n case \"both_one\":\n if (this.options.from_fixed || this.options.to_fixed) {\n break;\n }\n\n var real_x = this.convertToRealPercent(handle_x),\n from = this.result.from_percent,\n to = this.result.to_percent,\n full = to - from,\n half = full / 2,\n new_from = real_x - half,\n new_to = real_x + half;\n\n if (new_from < 0) {\n new_from = 0;\n new_to = new_from + full;\n }\n\n if (new_to > 100) {\n new_to = 100;\n new_from = new_to - full;\n }\n\n this.coords.p_from_real = this.calcWithStep(new_from);\n this.coords.p_from_real = this.checkDiapason(this.coords.p_from_real, this.options.from_min, this.options.from_max);\n this.coords.p_from_fake = this.convertToFakePercent(this.coords.p_from_real);\n\n this.coords.p_to_real = this.calcWithStep(new_to);\n this.coords.p_to_real = this.checkDiapason(this.coords.p_to_real, this.options.to_min, this.options.to_max);\n this.coords.p_to_fake = this.convertToFakePercent(this.coords.p_to_real);\n\n break;\n }\n\n if (this.options.type === \"single\") {\n this.coords.p_bar_x = (this.coords.p_handle / 2);\n this.coords.p_bar_w = this.coords.p_single_fake;\n\n this.result.from_percent = this.coords.p_single_real;\n this.result.from = this.convertToValue(this.coords.p_single_real);\n this.result.from_pretty = this._prettify(this.result.from);\n\n if (this.options.values.length) {\n this.result.from_value = this.options.values[this.result.from];\n }\n } else {\n this.coords.p_bar_x = this.toFixed(this.coords.p_from_fake + (this.coords.p_handle / 2));\n this.coords.p_bar_w = this.toFixed(this.coords.p_to_fake - this.coords.p_from_fake);\n\n this.result.from_percent = this.coords.p_from_real;\n this.result.from = this.convertToValue(this.coords.p_from_real);\n this.result.from_pretty = this._prettify(this.result.from);\n this.result.to_percent = this.coords.p_to_real;\n this.result.to = this.convertToValue(this.coords.p_to_real);\n this.result.to_pretty = this._prettify(this.result.to);\n\n if (this.options.values.length) {\n this.result.from_value = this.options.values[this.result.from];\n this.result.to_value = this.options.values[this.result.to];\n }\n }\n\n this.calcMinMax();\n this.calcLabels();\n },\n\n\n /**\n * calculates pointer X in percent\n */\n calcPointerPercent: function () {\n if (!this.coords.w_rs) {\n this.coords.p_pointer = 0;\n return;\n }\n\n if (this.coords.x_pointer < 0 || isNaN(this.coords.x_pointer) ) {\n this.coords.x_pointer = 0;\n } else if (this.coords.x_pointer > this.coords.w_rs) {\n this.coords.x_pointer = this.coords.w_rs;\n }\n\n this.coords.p_pointer = this.toFixed(this.coords.x_pointer / this.coords.w_rs * 100);\n },\n\n convertToRealPercent: function (fake) {\n var full = 100 - this.coords.p_handle;\n return fake / full * 100;\n },\n\n convertToFakePercent: function (real) {\n var full = 100 - this.coords.p_handle;\n return real / 100 * full;\n },\n\n getHandleX: function () {\n var max = 100 - this.coords.p_handle,\n x = this.toFixed(this.coords.p_pointer - this.coords.p_gap);\n\n if (x < 0) {\n x = 0;\n } else if (x > max) {\n x = max;\n }\n\n return x;\n },\n\n calcHandlePercent: function () {\n if (this.options.type === \"single\") {\n this.coords.w_handle = this.$cache.s_single.outerWidth(false);\n } else {\n this.coords.w_handle = this.$cache.s_from.outerWidth(false);\n }\n\n this.coords.p_handle = this.toFixed(this.coords.w_handle / this.coords.w_rs * 100);\n },\n\n /**\n * Find closest handle to pointer click\n *\n * @param real_x {Number}\n * @returns {String}\n */\n chooseHandle: function (real_x) {\n if (this.options.type === \"single\") {\n return \"single\";\n } else {\n var m_point = this.coords.p_from_real + ((this.coords.p_to_real - this.coords.p_from_real) / 2);\n if (real_x >= m_point) {\n return this.options.to_fixed ? \"from\" : \"to\";\n } else {\n return this.options.from_fixed ? \"to\" : \"from\";\n }\n }\n },\n\n /**\n * Measure Min and Max labels width in percent\n */\n calcMinMax: function () {\n if (!this.coords.w_rs) {\n return;\n }\n\n this.labels.p_min = this.labels.w_min / this.coords.w_rs * 100;\n this.labels.p_max = this.labels.w_max / this.coords.w_rs * 100;\n },\n\n /**\n * Measure labels width and X in percent\n */\n calcLabels: function () {\n if (!this.coords.w_rs || this.options.hide_from_to) {\n return;\n }\n\n if (this.options.type === \"single\") {\n\n this.labels.w_single = this.$cache.single.outerWidth(false);\n this.labels.p_single_fake = this.labels.w_single / this.coords.w_rs * 100;\n this.labels.p_single_left = this.coords.p_single_fake + (this.coords.p_handle / 2) - (this.labels.p_single_fake / 2);\n this.labels.p_single_left = this.checkEdges(this.labels.p_single_left, this.labels.p_single_fake);\n\n } else {\n\n this.labels.w_from = this.$cache.from.outerWidth(false);\n this.labels.p_from_fake = this.labels.w_from / this.coords.w_rs * 100;\n this.labels.p_from_left = this.coords.p_from_fake + (this.coords.p_handle / 2) - (this.labels.p_from_fake / 2);\n this.labels.p_from_left = this.toFixed(this.labels.p_from_left);\n this.labels.p_from_left = this.checkEdges(this.labels.p_from_left, this.labels.p_from_fake);\n\n this.labels.w_to = this.$cache.to.outerWidth(false);\n this.labels.p_to_fake = this.labels.w_to / this.coords.w_rs * 100;\n this.labels.p_to_left = this.coords.p_to_fake + (this.coords.p_handle / 2) - (this.labels.p_to_fake / 2);\n this.labels.p_to_left = this.toFixed(this.labels.p_to_left);\n this.labels.p_to_left = this.checkEdges(this.labels.p_to_left, this.labels.p_to_fake);\n\n this.labels.w_single = this.$cache.single.outerWidth(false);\n this.labels.p_single_fake = this.labels.w_single / this.coords.w_rs * 100;\n this.labels.p_single_left = ((this.labels.p_from_left + this.labels.p_to_left + this.labels.p_to_fake) / 2) - (this.labels.p_single_fake / 2);\n this.labels.p_single_left = this.toFixed(this.labels.p_single_left);\n this.labels.p_single_left = this.checkEdges(this.labels.p_single_left, this.labels.p_single_fake);\n\n }\n },\n\n\n\n // =============================================================================================================\n // Drawings\n\n /**\n * Main function called in request animation frame\n * to update everything\n */\n updateScene: function () {\n if (this.raf_id) {\n cancelAnimationFrame(this.raf_id);\n this.raf_id = null;\n }\n\n clearTimeout(this.update_tm);\n this.update_tm = null;\n\n if (!this.options) {\n return;\n }\n\n this.drawHandles();\n\n if (this.is_active) {\n this.raf_id = requestAnimationFrame(this.updateScene.bind(this));\n } else {\n this.update_tm = setTimeout(this.updateScene.bind(this), 300);\n }\n },\n\n /**\n * Draw handles\n */\n drawHandles: function () {\n this.coords.w_rs = this.$cache.rs.outerWidth(false);\n\n if (!this.coords.w_rs) {\n return;\n }\n\n if (this.coords.w_rs !== this.coords.w_rs_old) {\n this.target = \"base\";\n this.is_resize = true;\n }\n\n if (this.coords.w_rs !== this.coords.w_rs_old || this.force_redraw) {\n this.setMinMax();\n this.calc(true);\n this.drawLabels();\n if (this.options.grid) {\n this.calcGridMargin();\n this.calcGridLabels();\n }\n this.force_redraw = true;\n this.coords.w_rs_old = this.coords.w_rs;\n this.drawShadow();\n }\n\n if (!this.coords.w_rs) {\n return;\n }\n\n if (!this.dragging && !this.force_redraw && !this.is_key) {\n return;\n }\n\n if (this.old_from !== this.result.from || this.old_to !== this.result.to || this.force_redraw || this.is_key) {\n\n this.drawLabels();\n\n this.$cache.bar[0].style.left = this.coords.p_bar_x + \"%\";\n this.$cache.bar[0].style.width = this.coords.p_bar_w + \"%\";\n\n if (this.options.type === \"single\") {\n this.$cache.bar[0].style.left = 0;\n this.$cache.bar[0].style.width = this.coords.p_bar_w + this.coords.p_bar_x + \"%\";\n\n this.$cache.s_single[0].style.left = this.coords.p_single_fake + \"%\";\n\n this.$cache.single[0].style.left = this.labels.p_single_left + \"%\";\n } else {\n this.$cache.s_from[0].style.left = this.coords.p_from_fake + \"%\";\n this.$cache.s_to[0].style.left = this.coords.p_to_fake + \"%\";\n\n if (this.old_from !== this.result.from || this.force_redraw) {\n this.$cache.from[0].style.left = this.labels.p_from_left + \"%\";\n }\n if (this.old_to !== this.result.to || this.force_redraw) {\n this.$cache.to[0].style.left = this.labels.p_to_left + \"%\";\n }\n\n this.$cache.single[0].style.left = this.labels.p_single_left + \"%\";\n }\n\n this.writeToInput();\n\n if ((this.old_from !== this.result.from || this.old_to !== this.result.to) && !this.is_start) {\n this.$cache.input.trigger(\"change\");\n this.$cache.input.trigger(\"input\");\n }\n\n this.old_from = this.result.from;\n this.old_to = this.result.to;\n\n // callbacks call\n if (!this.is_resize && !this.is_update && !this.is_start && !this.is_finish) {\n this.callOnChange();\n }\n if (this.is_key || this.is_click) {\n this.is_key = false;\n this.is_click = false;\n this.callOnFinish();\n }\n\n this.is_update = false;\n this.is_resize = false;\n this.is_finish = false;\n }\n\n this.is_start = false;\n this.is_key = false;\n this.is_click = false;\n this.force_redraw = false;\n },\n\n /**\n * Draw labels\n * measure labels collisions\n * collapse close labels\n */\n drawLabels: function () {\n if (!this.options) {\n return;\n }\n\n var values_num = this.options.values.length;\n var p_values = this.options.p_values;\n var text_single;\n var text_from;\n var text_to;\n var from_pretty;\n var to_pretty;\n\n if (this.options.hide_from_to) {\n return;\n }\n\n if (this.options.type === \"single\") {\n\n if (values_num) {\n text_single = this.decorate(p_values[this.result.from]);\n this.$cache.single.html(text_single);\n } else {\n from_pretty = this._prettify(this.result.from);\n\n text_single = this.decorate(from_pretty, this.result.from);\n this.$cache.single.html(text_single);\n }\n\n this.calcLabels();\n\n if (this.labels.p_single_left < this.labels.p_min + 1) {\n this.$cache.min[0].style.visibility = \"hidden\";\n } else {\n this.$cache.min[0].style.visibility = \"visible\";\n }\n\n if (this.labels.p_single_left + this.labels.p_single_fake > 100 - this.labels.p_max - 1) {\n this.$cache.max[0].style.visibility = \"hidden\";\n } else {\n this.$cache.max[0].style.visibility = \"visible\";\n }\n\n } else {\n\n if (values_num) {\n\n if (this.options.decorate_both) {\n text_single = this.decorate(p_values[this.result.from]);\n text_single += this.options.values_separator;\n text_single += this.decorate(p_values[this.result.to]);\n } else {\n text_single = this.decorate(p_values[this.result.from] + this.options.values_separator + p_values[this.result.to]);\n }\n text_from = this.decorate(p_values[this.result.from]);\n text_to = this.decorate(p_values[this.result.to]);\n\n this.$cache.single.html(text_single);\n this.$cache.from.html(text_from);\n this.$cache.to.html(text_to);\n\n } else {\n from_pretty = this._prettify(this.result.from);\n to_pretty = this._prettify(this.result.to);\n\n if (this.options.decorate_both) {\n text_single = this.decorate(from_pretty, this.result.from);\n text_single += this.options.values_separator;\n text_single += this.decorate(to_pretty, this.result.to);\n } else {\n text_single = this.decorate(from_pretty + this.options.values_separator + to_pretty, this.result.to);\n }\n text_from = this.decorate(from_pretty, this.result.from);\n text_to = this.decorate(to_pretty, this.result.to);\n\n this.$cache.single.html(text_single);\n this.$cache.from.html(text_from);\n this.$cache.to.html(text_to);\n\n }\n\n this.calcLabels();\n\n var min = Math.min(this.labels.p_single_left, this.labels.p_from_left),\n single_left = this.labels.p_single_left + this.labels.p_single_fake,\n to_left = this.labels.p_to_left + this.labels.p_to_fake,\n max = Math.max(single_left, to_left);\n\n if (this.labels.p_from_left + this.labels.p_from_fake >= this.labels.p_to_left) {\n this.$cache.from[0].style.visibility = \"hidden\";\n this.$cache.to[0].style.visibility = \"hidden\";\n this.$cache.single[0].style.visibility = \"visible\";\n\n if (this.result.from === this.result.to) {\n if (this.target === \"from\") {\n this.$cache.from[0].style.visibility = \"visible\";\n } else if (this.target === \"to\") {\n this.$cache.to[0].style.visibility = \"visible\";\n } else if (!this.target) {\n this.$cache.from[0].style.visibility = \"visible\";\n }\n this.$cache.single[0].style.visibility = \"hidden\";\n max = to_left;\n } else {\n this.$cache.from[0].style.visibility = \"hidden\";\n this.$cache.to[0].style.visibility = \"hidden\";\n this.$cache.single[0].style.visibility = \"visible\";\n max = Math.max(single_left, to_left);\n }\n } else {\n this.$cache.from[0].style.visibility = \"visible\";\n this.$cache.to[0].style.visibility = \"visible\";\n this.$cache.single[0].style.visibility = \"hidden\";\n }\n\n if (min < this.labels.p_min + 1) {\n this.$cache.min[0].style.visibility = \"hidden\";\n } else {\n this.$cache.min[0].style.visibility = \"visible\";\n }\n\n if (max > 100 - this.labels.p_max - 1) {\n this.$cache.max[0].style.visibility = \"hidden\";\n } else {\n this.$cache.max[0].style.visibility = \"visible\";\n }\n\n }\n },\n\n /**\n * Draw shadow intervals\n */\n drawShadow: function () {\n var o = this.options,\n c = this.$cache,\n\n is_from_min = typeof o.from_min === \"number\" && !isNaN(o.from_min),\n is_from_max = typeof o.from_max === \"number\" && !isNaN(o.from_max),\n is_to_min = typeof o.to_min === \"number\" && !isNaN(o.to_min),\n is_to_max = typeof o.to_max === \"number\" && !isNaN(o.to_max),\n\n from_min,\n from_max,\n to_min,\n to_max;\n\n if (o.type === \"single\") {\n if (o.from_shadow && (is_from_min || is_from_max)) {\n from_min = this.convertToPercent(is_from_min ? o.from_min : o.min);\n from_max = this.convertToPercent(is_from_max ? o.from_max : o.max) - from_min;\n from_min = this.toFixed(from_min - (this.coords.p_handle / 100 * from_min));\n from_max = this.toFixed(from_max - (this.coords.p_handle / 100 * from_max));\n from_min = from_min + (this.coords.p_handle / 2);\n\n c.shad_single[0].style.display = \"block\";\n c.shad_single[0].style.left = from_min + \"%\";\n c.shad_single[0].style.width = from_max + \"%\";\n } else {\n c.shad_single[0].style.display = \"none\";\n }\n } else {\n if (o.from_shadow && (is_from_min || is_from_max)) {\n from_min = this.convertToPercent(is_from_min ? o.from_min : o.min);\n from_max = this.convertToPercent(is_from_max ? o.from_max : o.max) - from_min;\n from_min = this.toFixed(from_min - (this.coords.p_handle / 100 * from_min));\n from_max = this.toFixed(from_max - (this.coords.p_handle / 100 * from_max));\n from_min = from_min + (this.coords.p_handle / 2);\n\n c.shad_from[0].style.display = \"block\";\n c.shad_from[0].style.left = from_min + \"%\";\n c.shad_from[0].style.width = from_max + \"%\";\n } else {\n c.shad_from[0].style.display = \"none\";\n }\n\n if (o.to_shadow && (is_to_min || is_to_max)) {\n to_min = this.convertToPercent(is_to_min ? o.to_min : o.min);\n to_max = this.convertToPercent(is_to_max ? o.to_max : o.max) - to_min;\n to_min = this.toFixed(to_min - (this.coords.p_handle / 100 * to_min));\n to_max = this.toFixed(to_max - (this.coords.p_handle / 100 * to_max));\n to_min = to_min + (this.coords.p_handle / 2);\n\n c.shad_to[0].style.display = \"block\";\n c.shad_to[0].style.left = to_min + \"%\";\n c.shad_to[0].style.width = to_max + \"%\";\n } else {\n c.shad_to[0].style.display = \"none\";\n }\n }\n },\n\n\n\n /**\n * Write values to input element\n */\n writeToInput: function () {\n if (this.options.type === \"single\") {\n if (this.options.values.length) {\n this.$cache.input.prop(\"value\", this.result.from_value);\n } else {\n this.$cache.input.prop(\"value\", this.result.from);\n }\n this.$cache.input.data(\"from\", this.result.from);\n } else {\n if (this.options.values.length) {\n this.$cache.input.prop(\"value\", this.result.from_value + this.options.input_values_separator + this.result.to_value);\n } else {\n this.$cache.input.prop(\"value\", this.result.from + this.options.input_values_separator + this.result.to);\n }\n this.$cache.input.data(\"from\", this.result.from);\n this.$cache.input.data(\"to\", this.result.to);\n }\n },\n\n\n\n // =============================================================================================================\n // Callbacks\n\n callOnStart: function () {\n this.writeToInput();\n\n if (this.options.onStart && typeof this.options.onStart === \"function\") {\n if (this.options.scope) {\n this.options.onStart.call(this.options.scope, this.result);\n } else {\n this.options.onStart(this.result);\n }\n }\n },\n callOnChange: function () {\n this.writeToInput();\n\n if (this.options.onChange && typeof this.options.onChange === \"function\") {\n if (this.options.scope) {\n this.options.onChange.call(this.options.scope, this.result);\n } else {\n this.options.onChange(this.result);\n }\n }\n },\n callOnFinish: function () {\n this.writeToInput();\n\n if (this.options.onFinish && typeof this.options.onFinish === \"function\") {\n if (this.options.scope) {\n this.options.onFinish.call(this.options.scope, this.result);\n } else {\n this.options.onFinish(this.result);\n }\n }\n },\n callOnUpdate: function () {\n this.writeToInput();\n\n if (this.options.onUpdate && typeof this.options.onUpdate === \"function\") {\n if (this.options.scope) {\n this.options.onUpdate.call(this.options.scope, this.result);\n } else {\n this.options.onUpdate(this.result);\n }\n }\n },\n\n\n\n\n // =============================================================================================================\n // Service methods\n\n toggleInput: function () {\n this.$cache.input.toggleClass(\"irs-hidden-input\");\n\n if (this.has_tab_index) {\n this.$cache.input.prop(\"tabindex\", -1);\n } else {\n this.$cache.input.removeProp(\"tabindex\");\n }\n\n this.has_tab_index = !this.has_tab_index;\n },\n\n /**\n * Convert real value to percent\n *\n * @param value {Number} X in real\n * @param no_min {boolean=} don't use min value\n * @returns {Number} X in percent\n */\n convertToPercent: function (value, no_min) {\n var diapason = this.options.max - this.options.min,\n one_percent = diapason / 100,\n val, percent;\n\n if (!diapason) {\n this.no_diapason = true;\n return 0;\n }\n\n if (no_min) {\n val = value;\n } else {\n val = value - this.options.min;\n }\n\n percent = val / one_percent;\n\n return this.toFixed(percent);\n },\n\n /**\n * Convert percent to real values\n *\n * @param percent {Number} X in percent\n * @returns {Number} X in real\n */\n convertToValue: function (percent) {\n var min = this.options.min,\n max = this.options.max,\n min_decimals = min.toString().split(\".\")[1],\n max_decimals = max.toString().split(\".\")[1],\n min_length, max_length,\n avg_decimals = 0,\n abs = 0;\n\n if (percent === 0) {\n return this.options.min;\n }\n if (percent === 100) {\n return this.options.max;\n }\n\n\n if (min_decimals) {\n min_length = min_decimals.length;\n avg_decimals = min_length;\n }\n if (max_decimals) {\n max_length = max_decimals.length;\n avg_decimals = max_length;\n }\n if (min_length && max_length) {\n avg_decimals = (min_length >= max_length) ? min_length : max_length;\n }\n\n if (min < 0) {\n abs = Math.abs(min);\n min = +(min + abs).toFixed(avg_decimals);\n max = +(max + abs).toFixed(avg_decimals);\n }\n\n var number = ((max - min) / 100 * percent) + min,\n string = this.options.step.toString().split(\".\")[1],\n result;\n\n if (string) {\n number = +number.toFixed(string.length);\n } else {\n number = number / this.options.step;\n number = number * this.options.step;\n\n number = +number.toFixed(0);\n }\n\n if (abs) {\n number -= abs;\n }\n\n if (string) {\n result = +number.toFixed(string.length);\n } else {\n result = this.toFixed(number);\n }\n\n if (result < this.options.min) {\n result = this.options.min;\n } else if (result > this.options.max) {\n result = this.options.max;\n }\n\n return result;\n },\n\n /**\n * Round percent value with step\n *\n * @param percent {Number}\n * @returns percent {Number} rounded\n */\n calcWithStep: function (percent) {\n var rounded = Math.round(percent / this.coords.p_step) * this.coords.p_step;\n\n if (rounded > 100) {\n rounded = 100;\n }\n if (percent === 100) {\n rounded = 100;\n }\n\n return this.toFixed(rounded);\n },\n\n checkMinInterval: function (p_current, p_next, type) {\n var o = this.options,\n current,\n next;\n\n if (!o.min_interval) {\n return p_current;\n }\n\n current = this.convertToValue(p_current);\n next = this.convertToValue(p_next);\n\n if (type === \"from\") {\n\n if (next - current < o.min_interval) {\n current = next - o.min_interval;\n }\n\n } else {\n\n if (current - next < o.min_interval) {\n current = next + o.min_interval;\n }\n\n }\n\n return this.convertToPercent(current);\n },\n\n checkMaxInterval: function (p_current, p_next, type) {\n var o = this.options,\n current,\n next;\n\n if (!o.max_interval) {\n return p_current;\n }\n\n current = this.convertToValue(p_current);\n next = this.convertToValue(p_next);\n\n if (type === \"from\") {\n\n if (next - current > o.max_interval) {\n current = next - o.max_interval;\n }\n\n } else {\n\n if (current - next > o.max_interval) {\n current = next + o.max_interval;\n }\n\n }\n\n return this.convertToPercent(current);\n },\n\n checkDiapason: function (p_num, min, max) {\n var num = this.convertToValue(p_num),\n o = this.options;\n\n if (typeof min !== \"number\") {\n min = o.min;\n }\n\n if (typeof max !== \"number\") {\n max = o.max;\n }\n\n if (num < min) {\n num = min;\n }\n\n if (num > max) {\n num = max;\n }\n\n return this.convertToPercent(num);\n },\n\n toFixed: function (num) {\n num = num.toFixed(20);\n return +num;\n },\n\n _prettify: function (num) {\n if (!this.options.prettify_enabled) {\n return num;\n }\n\n if (this.options.prettify && typeof this.options.prettify === \"function\") {\n return this.options.prettify(num);\n } else {\n return this.prettify(num);\n }\n },\n\n prettify: function (num) {\n var n = num.toString();\n return n.replace(/(\\d{1,3}(?=(?:\\d\\d\\d)+(?!\\d)))/g, \"$1\" + this.options.prettify_separator);\n },\n\n checkEdges: function (left, width) {\n if (!this.options.force_edges) {\n return this.toFixed(left);\n }\n\n if (left < 0) {\n left = 0;\n } else if (left > 100 - width) {\n left = 100 - width;\n }\n\n return this.toFixed(left);\n },\n\n validate: function () {\n var o = this.options,\n r = this.result,\n v = o.values,\n vl = v.length,\n value,\n i;\n\n if (typeof o.min === \"string\") o.min = +o.min;\n if (typeof o.max === \"string\") o.max = +o.max;\n if (typeof o.from === \"string\") o.from = +o.from;\n if (typeof o.to === \"string\") o.to = +o.to;\n if (typeof o.step === \"string\") o.step = +o.step;\n\n if (typeof o.from_min === \"string\") o.from_min = +o.from_min;\n if (typeof o.from_max === \"string\") o.from_max = +o.from_max;\n if (typeof o.to_min === \"string\") o.to_min = +o.to_min;\n if (typeof o.to_max === \"string\") o.to_max = +o.to_max;\n\n if (typeof o.grid_num === \"string\") o.grid_num = +o.grid_num;\n\n if (o.max < o.min) {\n o.max = o.min;\n }\n\n if (vl) {\n o.p_values = [];\n o.min = 0;\n o.max = vl - 1;\n o.step = 1;\n o.grid_num = o.max;\n o.grid_snap = true;\n\n for (i = 0; i < vl; i++) {\n value = +v[i];\n\n if (!isNaN(value)) {\n v[i] = value;\n value = this._prettify(value);\n } else {\n value = v[i];\n }\n\n o.p_values.push(value);\n }\n }\n\n if (typeof o.from !== \"number\" || isNaN(o.from)) {\n o.from = o.min;\n }\n\n if (typeof o.to !== \"number\" || isNaN(o.to)) {\n o.to = o.max;\n }\n\n if (o.type === \"single\") {\n\n if (o.from < o.min) o.from = o.min;\n if (o.from > o.max) o.from = o.max;\n\n } else {\n\n if (o.from < o.min) o.from = o.min;\n if (o.from > o.max) o.from = o.max;\n\n if (o.to < o.min) o.to = o.min;\n if (o.to > o.max) o.to = o.max;\n\n if (this.update_check.from) {\n\n if (this.update_check.from !== o.from) {\n if (o.from > o.to) o.from = o.to;\n }\n if (this.update_check.to !== o.to) {\n if (o.to < o.from) o.to = o.from;\n }\n\n }\n\n if (o.from > o.to) o.from = o.to;\n if (o.to < o.from) o.to = o.from;\n\n }\n\n if (typeof o.step !== \"number\" || isNaN(o.step) || !o.step || o.step < 0) {\n o.step = 1;\n }\n\n if (typeof o.from_min === \"number\" && o.from < o.from_min) {\n o.from = o.from_min;\n }\n\n if (typeof o.from_max === \"number\" && o.from > o.from_max) {\n o.from = o.from_max;\n }\n\n if (typeof o.to_min === \"number\" && o.to < o.to_min) {\n o.to = o.to_min;\n }\n\n if (typeof o.to_max === \"number\" && o.from > o.to_max) {\n o.to = o.to_max;\n }\n\n if (r) {\n if (r.min !== o.min) {\n r.min = o.min;\n }\n\n if (r.max !== o.max) {\n r.max = o.max;\n }\n\n if (r.from < r.min || r.from > r.max) {\n r.from = o.from;\n }\n\n if (r.to < r.min || r.to > r.max) {\n r.to = o.to;\n }\n }\n\n if (typeof o.min_interval !== \"number\" || isNaN(o.min_interval) || !o.min_interval || o.min_interval < 0) {\n o.min_interval = 0;\n }\n\n if (typeof o.max_interval !== \"number\" || isNaN(o.max_interval) || !o.max_interval || o.max_interval < 0) {\n o.max_interval = 0;\n }\n\n if (o.min_interval && o.min_interval > o.max - o.min) {\n o.min_interval = o.max - o.min;\n }\n\n if (o.max_interval && o.max_interval > o.max - o.min) {\n o.max_interval = o.max - o.min;\n }\n },\n\n decorate: function (num, original) {\n var decorated = \"\",\n o = this.options;\n\n if (o.prefix) {\n decorated += o.prefix;\n }\n\n decorated += num;\n\n if (o.max_postfix) {\n if (o.values.length && num === o.p_values[o.max]) {\n decorated += o.max_postfix;\n if (o.postfix) {\n decorated += \" \";\n }\n } else if (original === o.max) {\n decorated += o.max_postfix;\n if (o.postfix) {\n decorated += \" \";\n }\n }\n }\n\n if (o.postfix) {\n decorated += o.postfix;\n }\n\n return decorated;\n },\n\n updateFrom: function () {\n this.result.from = this.options.from;\n this.result.from_percent = this.convertToPercent(this.result.from);\n this.result.from_pretty = this._prettify(this.result.from);\n if (this.options.values) {\n this.result.from_value = this.options.values[this.result.from];\n }\n },\n\n updateTo: function () {\n this.result.to = this.options.to;\n this.result.to_percent = this.convertToPercent(this.result.to);\n this.result.to_pretty = this._prettify(this.result.to);\n if (this.options.values) {\n this.result.to_value = this.options.values[this.result.to];\n }\n },\n\n updateResult: function () {\n this.result.min = this.options.min;\n this.result.max = this.options.max;\n this.updateFrom();\n this.updateTo();\n },\n\n\n // =============================================================================================================\n // Grid\n\n appendGrid: function () {\n if (!this.options.grid) {\n return;\n }\n\n var o = this.options,\n i, z,\n\n total = o.max - o.min,\n big_num = o.grid_num,\n big_p = 0,\n big_w = 0,\n\n small_max = 4,\n local_small_max,\n small_p,\n small_w = 0,\n\n result,\n html = '';\n\n\n\n this.calcGridMargin();\n\n if (o.grid_snap) {\n big_num = total / o.step;\n }\n\n if (big_num > 50) big_num = 50;\n big_p = this.toFixed(100 / big_num);\n\n if (big_num > 4) {\n small_max = 3;\n }\n if (big_num > 7) {\n small_max = 2;\n }\n if (big_num > 14) {\n small_max = 1;\n }\n if (big_num > 28) {\n small_max = 0;\n }\n\n for (i = 0; i < big_num + 1; i++) {\n local_small_max = small_max;\n\n big_w = this.toFixed(big_p * i);\n\n if (big_w > 100) {\n big_w = 100;\n }\n this.coords.big[i] = big_w;\n\n small_p = (big_w - (big_p * (i - 1))) / (local_small_max + 1);\n\n for (z = 1; z <= local_small_max; z++) {\n if (big_w === 0) {\n break;\n }\n\n small_w = this.toFixed(big_w - (small_p * z));\n\n html += '';\n }\n\n html += '';\n\n result = this.convertToValue(big_w);\n if (o.values.length) {\n result = o.p_values[result];\n } else {\n result = this._prettify(result);\n }\n\n html += '' + result + '';\n }\n this.coords.big_num = Math.ceil(big_num + 1);\n\n\n\n this.$cache.cont.addClass(\"irs-with-grid\");\n this.$cache.grid.html(html);\n this.cacheGridLabels();\n },\n\n cacheGridLabels: function () {\n var $label, i,\n num = this.coords.big_num;\n\n for (i = 0; i < num; i++) {\n $label = this.$cache.grid.find(\".js-grid-text-\" + i);\n this.$cache.grid_labels.push($label);\n }\n\n this.calcGridLabels();\n },\n\n calcGridLabels: function () {\n var i, label, start = [], finish = [],\n num = this.coords.big_num;\n\n for (i = 0; i < num; i++) {\n this.coords.big_w[i] = this.$cache.grid_labels[i].outerWidth(false);\n this.coords.big_p[i] = this.toFixed(this.coords.big_w[i] / this.coords.w_rs * 100);\n this.coords.big_x[i] = this.toFixed(this.coords.big_p[i] / 2);\n\n start[i] = this.toFixed(this.coords.big[i] - this.coords.big_x[i]);\n finish[i] = this.toFixed(start[i] + this.coords.big_p[i]);\n }\n\n if (this.options.force_edges) {\n if (start[0] < -this.coords.grid_gap) {\n start[0] = -this.coords.grid_gap;\n finish[0] = this.toFixed(start[0] + this.coords.big_p[0]);\n\n this.coords.big_x[0] = this.coords.grid_gap;\n }\n\n if (finish[num - 1] > 100 + this.coords.grid_gap) {\n finish[num - 1] = 100 + this.coords.grid_gap;\n start[num - 1] = this.toFixed(finish[num - 1] - this.coords.big_p[num - 1]);\n\n this.coords.big_x[num - 1] = this.toFixed(this.coords.big_p[num - 1] - this.coords.grid_gap);\n }\n }\n\n this.calcGridCollision(2, start, finish);\n this.calcGridCollision(4, start, finish);\n\n for (i = 0; i < num; i++) {\n label = this.$cache.grid_labels[i][0];\n\n if (this.coords.big_x[i] !== Number.POSITIVE_INFINITY) {\n label.style.marginLeft = -this.coords.big_x[i] + \"%\";\n }\n }\n },\n\n // Collisions Calc Beta\n // TODO: Refactor then have plenty of time\n calcGridCollision: function (step, start, finish) {\n var i, next_i, label,\n num = this.coords.big_num;\n\n for (i = 0; i < num; i += step) {\n next_i = i + (step / 2);\n if (next_i >= num) {\n break;\n }\n\n label = this.$cache.grid_labels[next_i][0];\n\n if (finish[i] <= start[next_i]) {\n label.style.visibility = \"visible\";\n } else {\n label.style.visibility = \"hidden\";\n }\n }\n },\n\n calcGridMargin: function () {\n if (!this.options.grid_margin) {\n return;\n }\n\n this.coords.w_rs = this.$cache.rs.outerWidth(false);\n if (!this.coords.w_rs) {\n return;\n }\n\n if (this.options.type === \"single\") {\n this.coords.w_handle = this.$cache.s_single.outerWidth(false);\n } else {\n this.coords.w_handle = this.$cache.s_from.outerWidth(false);\n }\n this.coords.p_handle = this.toFixed(this.coords.w_handle / this.coords.w_rs * 100);\n this.coords.grid_gap = this.toFixed((this.coords.p_handle / 2) - 0.1);\n\n this.$cache.grid[0].style.width = this.toFixed(100 - this.coords.p_handle) + \"%\";\n this.$cache.grid[0].style.left = this.coords.grid_gap + \"%\";\n },\n\n\n\n // =============================================================================================================\n // Public methods\n\n update: function (options) {\n if (!this.input) {\n return;\n }\n\n this.is_update = true;\n\n this.options.from = this.result.from;\n this.options.to = this.result.to;\n this.update_check.from = this.result.from;\n this.update_check.to = this.result.to;\n\n this.options = $.extend(this.options, options);\n this.validate();\n this.updateResult(options);\n\n this.toggleInput();\n this.remove();\n this.init(true);\n },\n\n reset: function () {\n if (!this.input) {\n return;\n }\n\n this.updateResult();\n this.update();\n },\n\n destroy: function () {\n if (!this.input) {\n return;\n }\n\n this.toggleInput();\n this.$cache.input.prop(\"readonly\", false);\n $.data(this.input, \"ionRangeSlider\", null);\n\n this.remove();\n this.input = null;\n this.options = null;\n }\n };\n\n $.fn.ionRangeSlider = function (options) {\n return this.each(function() {\n if (!$.data(this, \"ionRangeSlider\")) {\n $.data(this, \"ionRangeSlider\", new IonRangeSlider(this, options, plugin_count++));\n }\n });\n };\n\n\n\n // =================================================================================================================\n // http://paulirish.com/2011/requestanimationframe-for-smart-animating/\n // http://my.opera.com/emoller/blog/2011/12/20/requestanimationframe-for-smart-er-animating\n\n // requestAnimationFrame polyfill by Erik Möller. fixes from Paul Irish and Tino Zijdel\n\n // MIT license\n\n (function() {\n var lastTime = 0;\n var vendors = ['ms', 'moz', 'webkit', 'o'];\n for(var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {\n window.requestAnimationFrame = window[vendors[x]+'RequestAnimationFrame'];\n window.cancelAnimationFrame = window[vendors[x]+'CancelAnimationFrame']\n || window[vendors[x]+'CancelRequestAnimationFrame'];\n }\n\n if (!window.requestAnimationFrame)\n window.requestAnimationFrame = function(callback, element) {\n var currTime = new Date().getTime();\n var timeToCall = Math.max(0, 16 - (currTime - lastTime));\n var id = window.setTimeout(function() { callback(currTime + timeToCall); },\n timeToCall);\n lastTime = currTime + timeToCall;\n return id;\n };\n\n if (!window.cancelAnimationFrame)\n window.cancelAnimationFrame = function(id) {\n clearTimeout(id);\n };\n }());\n\n}));\n","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FlightAvailList.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FlightAvailList.vue?vue&type=style&index=0&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.hasError)?_c('error-modal',{attrs:{\"title\":\"ظاهراً مشکلی پیش آمده است. مجدداً تلاش نمائید.\",\"buttonTitle\":\"تلاش مجدد\"},on:{\"buttonClicked\":_vm.onModalCloseClicked}}):_vm._e(),_c('div',{staticClass:\"container-fluid margin_60\"},[_c('div',{staticClass:\"row\"},[_c('aside',{staticClass:\"col-lg-3\"},[_c('PdkFlightItinerary',{attrs:{\"itienary\":_vm.itinerary}}),_c('div',{attrs:{\"id\":\"filters_col\"}},[_vm._m(0),_c('div',{staticClass:\"collapse shwo show\",attrs:{\"id\":\"collapseFilters\"}},[_c('PdkRangeSlider',{attrs:{\"type\":\"double\",\"min\":20,\"max\":10000000,\"from\":0,\"to\":10000000,\"step\":10000},on:{\"onChange\":_vm.onChangePriceRange,\"onStart\":_vm.onStartPriceRange}}),_c('hr'),_c('div',{staticClass:\"filter_type\"},[_vm._m(1),_c('PdkAirlineFilter',{attrs:{\"airlines\":_vm.airlines}})],1),_c('div',{staticClass:\"filter_type\"},[_c('hr'),_vm._m(2),_c('ul',[_c('li',[_c('pdk-ckeckbox',{staticClass:\"checkBox\",attrs:{\"type\":\"checkbox\",\"name\":\"airline\",\"value\":\"12\",\"title\":\"اکونومی\"}})],1),_c('li',[_c('pdk-ckeckbox',{staticClass:\"checkBox\",attrs:{\"type\":\"checkbox\",\"name\":\"airline\",\"value\":\"12\",\"title\":\"بیزینس\"}})],1)])]),_c('hr'),_c('div',{staticClass:\"filter_type\"},[_vm._m(3),_c('PdkRangeSlider',{attrs:{\"type\":\"double\",\"values\":_vm.timeArray},on:{\"onChange\":_vm.onChangeTimeRange}})],1)],1)]),_vm._m(4)],1),_c('div',{staticClass:\"col-lg-9\"},[(_vm.isNotFoundResult)?_c('PdkFlightNotFound',{on:{\"notFoundAction\":_vm.onNotFoundAction}}):_vm._e(),(_vm.isNotFoundResult == false)?_c('div',[_c('PdkFlightSort',{on:{\"sortBy\":_vm.sortFlightBy}}),_vm._l((_vm.filteredAvailFlights),function(flight,index){return _c('div',{key:index},[_c('PdkFlightAvail',{attrs:{\"availableFlight\":flight}})],1)}),_c('hr'),_vm._m(5)],2):_vm._e()],1)])])],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('a',{staticClass:\"title-tools\",attrs:{\"data-toggle\":\"collapse\",\"href\":\"#collapseFilters\",\"aria-expanded\":\"false\",\"aria-controls\":\"collapseFilters\",\"id\":\"filters_col_bt\"}},[_c('i',{staticClass:\"icon icon-money\"}),_vm._v(\"فیلتر قیمت بلیط \")])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('a',{staticClass:\"title-tools\",attrs:{\"data-toggle\":\"collapse\",\"href\":\"#collapseFilters\",\"aria-expanded\":\"false\",\"aria-controls\":\"collapseFilters\",\"id\":\"filters_col_bt\"}},[_c('i',{staticClass:\"icon icon-plane filter-icon\"}),_vm._v(\"فیلتر خطوط هواپیمایی \")])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('a',{staticClass:\"title-tools\",attrs:{\"data-toggle\":\"collapse\",\"href\":\"#collapseFilters\",\"aria-expanded\":\"false\",\"aria-controls\":\"collapseFilters\",\"id\":\"filters_col_bt\"}},[_c('i',{staticClass:\"icon icon-ticket-2 filter-icon\"}),_vm._v(\"فیلتر نوع بلیط \")])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('a',{staticClass:\"title-tools\",attrs:{\"data-toggle\":\"collapse\",\"href\":\"#collapseFilters\",\"aria-expanded\":\"false\",\"aria-controls\":\"collapseFilters\",\"id\":\"filters_col_bt\"}},[_c('i',{staticClass:\"icon icon-back-in-time filter-icon\"}),_vm._v(\"فیلتر زمان پرواز \")])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"box_style_2\"},[_c('i',{staticClass:\"icon_set_1_icon-57\"}),_c('h4',[_vm._v(\" به کمک \"),_c('span',[_vm._v(\"نیاز دارید؟\")])]),_c('a',{staticClass:\"phone\",attrs:{\"href\":\"tel://02144631360\"}},[_vm._v(\"021-44631360-5\")]),_c('a',{staticClass:\"phone\",attrs:{\"href\":\"tel://02144631360\"}},[_vm._v(\"09045425792\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('nav',{attrs:{\"aria-label\":\"Page navigation\"}},[_c('ul',{staticClass:\"pagination justify-content-center\"},[_c('li',{staticClass:\"page-item\"},[_c('a',{staticClass:\"page-link\",attrs:{\"href\":\"#\",\"aria-label\":\"Previous\"}},[_c('span',{attrs:{\"aria-hidden\":\"true\"}},[_vm._v(\"«\")]),_c('span',{staticClass:\"sr-only\"},[_vm._v(\"Previous\")])])]),_c('li',{staticClass:\"page-item active\"},[_c('span',{staticClass:\"page-link\"},[_vm._v(\" 1 \"),_c('span',{staticClass:\"sr-only\"},[_vm._v(\"(current)\")])])]),_c('li',{staticClass:\"page-item\"},[_c('a',{staticClass:\"page-link\",attrs:{\"href\":\"#\"}},[_vm._v(\"2\")])]),_c('li',{staticClass:\"page-item\"},[_c('a',{staticClass:\"page-link\",attrs:{\"href\":\"#\"}},[_vm._v(\"3\")])]),_c('li',{staticClass:\"page-item\"},[_c('a',{staticClass:\"page-link\",attrs:{\"href\":\"#\",\"aria-label\":\"Next\"}},[_c('span',{attrs:{\"aria-hidden\":\"true\"}},[_vm._v(\"»\")]),_c('span',{staticClass:\"sr-only\"},[_vm._v(\"Next\")])])])])])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"itinerary row\"},[_c('div',[_vm._v(_vm._s(_vm.itienary.originCity))]),_c('i',{staticClass:\"itinerary-icon icon-flight-1\"}),_c('div',[_vm._v(_vm._s(_vm.itienary.destinationCity))])]),_c('div',{staticClass:\"itinerary row\"},[_c('div',[_vm._v(\"تاریخ پرواز :\")]),_c('div',{staticClass:\"title-value\"},[_vm._v(_vm._s(_vm.itienary.departureDateTime))])]),_c('div',{staticClass:\"itinerary row\"},[_c('div',[_vm._v(\"تعداد مسافر :\")]),_c('div',{staticClass:\"title-value\"},[_vm._v(_vm._s(_vm.itienary.adultQty+_vm.itienary.infantQty+_vm.itienary.childQty))])]),_c('hr'),_c('a',{staticClass:\"btn_full_outline\",attrs:{\"href\":\"invoice.html\",\"target\":\"_blank\"}},[_vm._v(\"تغییر جستجو\")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FlightItinerary.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FlightItinerary.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FlightItinerary.vue?vue&type=template&id=2b17f455&\"\nimport script from \"./FlightItinerary.vue?vue&type=script&lang=js&\"\nexport * from \"./FlightItinerary.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FlightItinerary.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FlightAvailList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FlightAvailList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FlightAvailList.vue?vue&type=template&id=0c347df2&\"\nimport script from \"./FlightAvailList.vue?vue&type=script&lang=js&\"\nexport * from \"./FlightAvailList.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FlightAvailList.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FlightNotFound.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FlightNotFound.vue?vue&type=style&index=0&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('input')}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdkRange.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdkRange.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PdkRange.vue?vue&type=template&id=47b0d194&\"\nimport script from \"./PdkRange.vue?vue&type=script&lang=js&\"\nexport * from \"./PdkRange.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PdkRange.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"strip_all_tour_list wow fadeIn\",staticStyle:{\"position\":\"relative\",\"overflow\":\"hidden\",\"visibility\":\"visible\",\"animation-delay\":\"0.1s\",\"animation-name\":\"fadeIn\"},attrs:{\"data-wow-delay\":\"0.1s\"}},[(_vm.selectedItems.flightNumber === _vm.availableFlight.flightNumber)?_c('div',{staticClass:\"ribbon text-center\"}):_vm._e(),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"mb-10 pt-10 col-lg-2 col-md-2\"},[_c('div',{staticClass:\"custom-img-list img_list\"},[_c('img',{staticClass:\"custom-img\",attrs:{\"src\":\"/img/zagros.png\",\"alt\":\"Image\"}}),_c('div',{staticClass:\"custom-short_info short_info\"},[_vm._v(_vm._s(_vm.availableFlight.airLineTitle))])])]),_c('div',{staticClass:\"pt-10 col-lg-8 col-md-8\"},[_c('div',{staticClass:\"row custom_tour_list_desc tour_list_desc\"},[_c('div',{staticClass:\"location-title mb-10 pt-10 col-2\"},[_c('div',{staticClass:\"mb-10\"},[_vm._v(_vm._s(_vm.availableFlight.originCity))]),_c('div',[_vm._v(_vm._s(_vm.availableFlight.departureTime))])]),_vm._m(0),_c('div',{staticClass:\"location-title pt-10 col-2\"},[_c('div',{staticClass:\"mb-10\"},[_vm._v(_vm._s(_vm.availableFlight.destinationCity))]),_c('div',[_vm._v(_vm._s(_vm.availableFlight.arrivalTime))])])]),_c('div',{staticClass:\"flight-time\"},[_vm._v(_vm._s(_vm.availableFlight.departureDateTimeShamsiText)+\" - \"+_vm._s(_vm.availableFlight.departureTime)+\" \")])]),_c('div',{staticClass:\"pt-10 col-lg-2\"},[_c('div',{staticClass:\"custom-price_list price_list\"},[_c('div',[(_vm.showPrice)?_c('div',[(_vm.availableFlight.totalAdultFare < _vm.availableFlight.totalAdultProvideFare)?_c('div',[_c('span',{staticClass:\"normal_price_list\"},[_vm._v(_vm._s(_vm._f(\"numFormat\")(_vm.availableFlight.totalAdultProvideFare)))]),_c('label',[_vm._v(_vm._s(_vm._f(\"numFormat\")(_vm.availableFlight.totalAdultFare)))])]):_vm._e(),(_vm.availableFlight.totalAdultFare >= _vm.availableFlight.totalAdultProvideFare)?_c('div',[_c('label',[_vm._v(_vm._s(_vm._f(\"numFormat\")(_vm.availableFlight.totalAdultFare)))])]):_vm._e()]):_vm._e(),_c('p',[(_vm.selectedItems.flightNumber !== _vm.availableFlight.flightNumber)?_c('button',{staticClass:\"btn btn-primary btn-block mt-2\",on:{\"click\":function($event){return _vm.$emit('selected', _vm.availableFlight)}}},[_vm._v(\"انتخاب\")]):_vm._e(),(_vm.selectedItems.flightNumber === _vm.availableFlight.flightNumber)?_c('label',{staticClass:\"selected-label\"},[_vm._v(\"انتخاب شده\")]):_vm._e()]),(_vm.availableFlight.remainedCapacity < 5000)?_c('label',{staticClass:\"capacity-low\",attrs:{\"fxFlex\":\"\"}},[_vm._v(_vm._s(_vm.availableFlight.remainedCapacity))]):_vm._e(),(_vm.availableFlight.remainedCapacity > 5000)?_c('label',{staticClass:\"capacity-full\",attrs:{\"fxFlex\":\"\"}},[_vm._v(\"موجود\")]):_vm._e()])])]),_c('div',{staticClass:\"accordion\",class:{ active: _vm.open }},[(_vm.selectedItems.flightNumber === _vm.availableFlight.flightNumber)?_c('button',{attrs:{\"id\":\"selected-detail\"},on:{\"click\":_vm.toggleAccordionState}},[_vm._v(\" جزئیات بیشتر \"),_c('div',{staticClass:\"arrow-icon\"},[_vm._v(\"v\")])]):_vm._e(),(_vm.selectedItems.flightNumber !== _vm.availableFlight.flightNumber)?_c('button',{attrs:{\"id\":\"flight-detail\"},on:{\"click\":_vm.toggleAccordionState}},[_vm._v(\" جزئیات بیشتر \"),_c('div',{staticClass:\"arrow-icon\"},[_vm._v(\"v\")])]):_vm._e(),_c('div',{staticClass:\"accordion-content row\"},[_c('div',{staticClass:\"col-4\"},[_c('label',[_vm._v(\"شماره پرواز :\")]),_c('span',{staticClass:\"detail-color\"},[_vm._v(_vm._s(_vm.availableFlight.flightNumber))])]),_c('div',{staticClass:\"col-4\"},[_c('label',[_vm._v(\"فرودگاه مبدا :\")]),_c('span',{staticClass:\"detail-color\"},[_vm._v(_vm._s(_vm.availableFlight.origin))])]),_c('div',{staticClass:\"col-4\"},[_c('label',[_vm._v(\"فرودگاه مقصد :\")]),_c('span',{staticClass:\"detail-color\"},[_vm._v(_vm._s(_vm.availableFlight.destination))])]),_c('div',{staticClass:\"col-4\"},[_c('label',[_vm._v(\"پرواز از ترمینال :\")]),_c('span',{staticClass:\"detail-color\"},[_vm._v(_vm._s(_vm.availableFlight.departureTerminal))])]),_c('div',{staticClass:\"col-4\"},[_c('label',[_vm._v(\"پرواز به ترمینال :\")]),_c('span',{staticClass:\"detail-color\"},[_vm._v(_vm._s(_vm.availableFlight.arrivalTerminal))])]),_c('div',{staticClass:\"col-4\"},[_c('label',[_vm._v(\"نوع هواپیما :\")]),_c('span',{staticClass:\"detail-color\"},[_vm._v(_vm._s(_vm.availableFlight.airCraft))])]),_c('div',{staticClass:\"col-4\"},[_c('label',[_vm._v(\"مقدار بار مجاز :\")]),_c('span',{staticClass:\"detail-color\"},[_vm._v(_vm._s(_vm.availableFlight.maxAllowedCargo))])]),_c('div',{staticClass:\"col-4\"},[_c('label',[_vm._v(\"کلاس نرخی :\")]),_c('span',{staticClass:\"detail-color\"},[_vm._v(_vm._s(_vm.availableFlight.rateClass))])]),_c('div',{staticClass:\"col-4\"},[_c('label',[_vm._v(\"نوع بلیط :\")]),_c('span',{staticClass:\"detail-color\"},[_vm._v(_vm._s(_vm.availableFlight.ticketType))])]),(_vm.showPrice)?_c('div',{staticClass:\"col-4\"},[_c('label',[_vm._v(\"قیمت بزرگسال :\")]),_c('span',{staticClass:\"detail-color\"},[_vm._v(_vm._s(_vm._f(\"numFormat\")(_vm.availableFlight.totalAdultProvideFare)))])]):_vm._e(),(_vm.showPrice)?_c('div',{staticClass:\"col-4\"},[_c('label',[_vm._v(\"قیمت کودک :\")]),_c('span',{staticClass:\"detail-color\"},[_vm._v(_vm._s(_vm._f(\"numFormat\")(_vm.availableFlight.totalChildProvideFare)))])]):_vm._e(),(_vm.showPrice)?_c('div',{staticClass:\"col-4\"},[_c('label',[_vm._v(\"قیمت نوزاد :\")]),_c('span',{staticClass:\"detail-color\"},[_vm._v(_vm._s(_vm._f(\"numFormat\")(_vm.availableFlight.totalInfantProvideFare)))])]):_vm._e()])])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"pt-10 col-8\"},[_c('div',{staticClass:\"plane-line\"},[_c('div',{staticClass:\"plane\"})])])}]\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FlightAvail.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FlightAvail.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FlightAvail.vue?vue&type=template&id=7feeef35&\"\nimport script from \"./FlightAvail.vue?vue&type=script&lang=js&\"\nexport * from \"./FlightAvail.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FlightAvail.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdkRange.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdkRange.vue?vue&type=style&index=0&lang=css&\"","var isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n typeof (NewTarget = dummy.constructor) == 'function' &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.airlines!=null)?_c('div',_vm._l((_vm.airlines),function(item,index){return _c('div',{key:index,staticStyle:{\"position\":\"relative\"}},[_c('pdk-ckeckbox',{staticClass:\"checkBox\",attrs:{\"type\":\"checkbox\",\"name\":'selection' + index,\"value\":item.airLineName},on:{\"change\":_vm.selectAirline}},[_c('img',{staticClass:\"mb8 airlins-logo\",attrs:{\"src\":_vm.getLogoUrl(item[0].airLineLogo)}}),_vm._v(\" \"+_vm._s(item[0].airLineTitle)+\" \")])],1)}),0):_c('div',[_vm._m(0)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"the-icons\",staticStyle:{\"text-align\":\"right\",\"margin-top\":\"5px\",\"margin-right\":\"2px\"}},[_c('i',{staticClass:\"icon-spin6 animate-spin\"})])}]\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AirlineFilter.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AirlineFilter.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AirlineFilter.vue?vue&type=template&id=335ba4fe&\"\nimport script from \"./AirlineFilter.vue?vue&type=script&lang=js&\"\nexport * from \"./AirlineFilter.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AirlineFilter.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AirlineFilter.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AirlineFilter.vue?vue&type=style&index=0&lang=css&\"","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof-raw');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar create = require('../internals/object-create');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\n\n// Opera ~12 has broken Object#toString\nvar BROKEN_CLASSOF = classof(create(NumberPrototype)) == NUMBER;\n\n// `ToNumber` abstract operation\n// https://tc39.github.io/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, false);\n var first, third, radix, maxCode, digits, length, index, code;\n if (typeof it == 'string' && it.length > 2) {\n it = trim(it);\n first = it.charCodeAt(0);\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i\n default: return +it;\n }\n digits = it.slice(2);\n length = digits.length;\n for (index = 0; index < length; index++) {\n code = digits.charCodeAt(index);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\n// `Number` constructor\n// https://tc39.github.io/ecma262/#sec-number-constructor\nif (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {\n var NumberWrapper = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var dummy = this;\n return dummy instanceof NumberWrapper\n // check on 1..constructor(foo) case\n && (BROKEN_CLASSOF ? fails(function () { NumberPrototype.valueOf.call(dummy); }) : classof(dummy) != NUMBER)\n ? inheritIfRequired(new NativeNumber(toNumber(it)), dummy, NumberWrapper) : toNumber(it);\n };\n for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES2015 (in case, if modules with ES2015 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(NativeNumber, key = keys[j]) && !has(NumberWrapper, key)) {\n defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));\n }\n }\n NumberWrapper.prototype = NumberPrototype;\n NumberPrototype.constructor = NumberWrapper;\n redefine(global, NUMBER, NumberWrapper);\n}\n","import moment from \"moment\";\r\nimport momentjalaali from \"moment-jalaali\";\r\nexport const ConvertToPersian = function (gregorianDate) {\r\n if (moment(gregorianDate).isValid())\r\n return momentjalaali(gregorianDate).format(\"jYYYY/jMM/jDD\");\r\n\r\n throw \"date is invalid\"\r\n}\r\n\r\nexport const ConvertToGregorian = function (shamsiDate) {\r\n if (momentjalaali(shamsiDate, 'jYYYY/jMM/jDD').isValid())\r\n return momentjalaali(shamsiDate, \"jYYYY/jMM/jDD\").format(\"YYYY/MM/DD\");\r\n\r\n throw \"date is invalid\";\r\n}\r\nexport const ConvertToGregorianDashFormat = function (shamsiDate) {\r\n if (momentjalaali(shamsiDate, 'jYYYY/jMM/jDD').isValid())\r\n return momentjalaali(shamsiDate, \"jYYYY/jMM/jDD\").format(\"YYYY-MM-DD\");\r\n\r\n throw \"date is invalid\";\r\n}\r\n\r\nexport const AddPersian = function (shamsiDate, element, value) {\r\n // element :day , month , year\r\n var el = \"unknown\"\r\n switch (element) {\r\n case 'day':\r\n el = 'day'\r\n break;\r\n case 'month':\r\n el = 'jMonth'\r\n break;\r\n case 'year':\r\n el = 'jYear'\r\n break;\r\n default:\r\n break;\r\n }\r\n if (momentjalaali(shamsiDate, 'jYYYY/jMM/jDD').isValid()) {\r\n var date = momentjalaali(shamsiDate, \"jYYYY/jMM/jDD\");\r\n return date.add(value, el).format(\"jYYYY/jMM/jDD\");\r\n }\r\n\r\n\r\n throw \"date is invalid\";\r\n}\r\n\r\n\r\nexport default {\r\n ConvertToPersian,\r\n ConvertToGregorian,\r\n AddPersian,\r\n ConvertToGregorianDashFormat\r\n}","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FlightItinerary.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FlightItinerary.vue?vue&type=style&index=0&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FlightAvail.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FlightAvail.vue?vue&type=style&index=0&lang=css&\""],"sourceRoot":""}