{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./entrypoint.js","webpack:///./src/config.js","webpack:///./src/afiInput.js","webpack:///./ext/tempusdominus-bootstrap-4.js","webpack:///./src/components.js","webpack:///./src/components/autocomplete.js","webpack:///./src/components/bar.js","webpack:///./src/components/carousel.js","webpack:///./src/components/datepicker.js","webpack:///./src/components/datepicker2.js","webpack:///./src/components/renderItem.js","webpack:///./src/components/select.js","webpack:///./src/components/slider.js","webpack:///./src/components/sortable.js","webpack:///./src/components/switch.js","webpack:///./src/components/switch2.js","webpack:///./src/components/stepprogressbar.js","webpack:///./src/coolComponents.js","webpack:///./src/coolComponents/chart.js","webpack:///./src/coolComponents/coolInput.js","webpack:///./src/coolComponents/coolInputDate.js","webpack:///./src/coolComponents/coolInputDate3Inputs.js","webpack:///./src/coolComponents/coolInputRangeDate.js","webpack:///./src/coolComponents/coolInputWithSlider.js","webpack:///./src/coolComponents/coolSelect.js","webpack:///./src/coolComponents/customPopover.js","webpack:///./src/coolComponents/modalDialog.js","webpack:///./src/coolComponents/radioList.js","webpack:///./locales/angular-locale_es-es.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","__webpack_exports__","templatesFolder","gobal","angular","constant","currency","formatter","args","val","modelValue","$modelValue","filter","$filter","config","$attrs","$eval","$config","elem","element","$ngModelCtrl","undefined","$","prop","putError","ctrl","err_empty","nullValue","hasDecimals","removeError","parser","viewValue","$viewValue","num","replace","result","parseFloat","hasError","autoAdjust","min","max","err_min","err_max","isNaN","toFixed","focus","formats","locale","NUMBER_FORMATS","DECIMAL_SEP","re","RegExp","isEmpty","keyDown","$event","params","Number","NEGATIVE_INFINITY","POSITIVE_INFINITY","digit","int","suff","preff","suffix","parseInt","float","fractionSize","decimals","$suffix","tempNum","Math","pow","round","e","keyUp","event","keyCode","preffix","boolean","isUndefined","toString","trim","$locale","amount","symbol","directive","modelFormatConfig","$parse","$window","require","scope","link","attrs","afiInput","parseFuction","funKey","func","extend","$watch","newValue","oldValue","getModelValue","type","this","on","setSelectionRange","length","$parsers","push","$formatters","$isEmpty","forEach","restrict","checkBoxToArray","copy","indexOf","splice","sort","$valid","$setValidity","attr","remove","message","after","keyHelper","smallKeyBoard","which","numberKeyBpoard","shiftKey","functionKeyBoard","navigator","platform","metaKey","ctrlKey","currencyKeyBoard","floatKeyBoard","jQuery","Error","version","fn","jquery","split","moment","_typeof","iterator","obj","constructor","_createClass","defineProperties","target","props","descriptor","configurable","writable","Constructor","protoProps","staticProps","_classCallCheck","instance","TypeError","DateTimePicker","NAME","EVENT_KEY","Selector","DATA_TOGGLE","ClassName","INPUT","Event","CHANGE","BLUR","KEYUP","KEYDOWN","FOCUS","CLICK_DATA_API","UPDATE","ERROR","HIDE","SHOW","DatePickerModes","CLASS_NAME","NAV_FUNCTION","NAV_STEP","KeyMap","up","38","down","40","left","37","right","39","tab","9","escape","27","enter","13","pageUp","33","pageDown","34","shift","16","control","17","space","32","84","delete","46","ViewModes","keyState","keyPressHandled","MinViewModeNumber","Default","timeZone","format","dayViewHeaderFormat","extraFormats","stepping","minDate","maxDate","useCurrent","collapse","defaultDate","disabledDates","enabledDates","icons","time","date","previous","next","today","clear","close","tooltips","selectMonth","prevMonth","nextMonth","selectYear","prevYear","nextYear","selectDecade","prevDecade","nextDecade","prevCentury","nextCentury","pickHour","incrementHour","decrementHour","pickMinute","incrementMinute","decrementMinute","pickSecond","incrementSecond","decrementSecond","togglePeriod","selectTime","selectDate","useStrict","sideBySide","daysOfWeekDisabled","calendarWeeks","viewMode","toolbarPlacement","buttons","showToday","showClear","showClose","widgetPositioning","horizontal","vertical","widgetParent","ignoreReadonly","keepOpen","focusOnShow","inline","keepInvalid","keyBinds","widget","_dates","getMoment","find","is","clone","subtract","add","show","control up","control down","hide","control space","click","debug","allowInputToggle","disabledTimeIntervals","disabledHours","enabledHours","viewDate","allowMultidate","multidateSeparator","options","_options","_getOptions","_element","_datesFormatted","_viewDate","unset","component","use24Hours","actualFormat","parseFormats","currentViewMode","_int","targetInput","data","input","_dataToOptions","_initFormatting","_setValue","_parseInputDate","_update","_fillDate","_fillTime","targetMoment","index","oldDate","outpValue","trigger","_notifyEvent","_hasTimeZone","tz","minutes","seconds","_isValid","_change","parsedDate","stopImmediatePropagation","_isEnabled","granularity","toLowerCase","_hasTime","_hasDate","eData","dataOptions","dateOptions","each","attributeName","charAt","toUpperCase","slice","isSame","_viewUpdate","change","_showMode","dir","_isInDisabledDates","testDate","_isInEnabledDates","_isInDisabledHours","_isInEnabledHours","isValid","isBefore","isAfter","day","found","isBetween","inputDate","parseInputDate","isMoment","_keydown","handler","index2","keyBindKeys","allModifiersPressed","pressedKeys","pressedModifiers","currentKey","stopPropagation","preventDefault","_keyup","_indexGivenDates","givenDatesArray","givenDatesIndexed","self","dDate","keys","_indexGivenHours","givenHoursArray","givenHoursIndexed","formatInput","localeData","longDateFormat","_getLastPickedDate","lastDate","_getLastPickedDateIndex","returnMoment","toggle","_ignoreReadonly","arguments","newOptions","newDate","join","Date","newFormat","newZone","Array","dates","_daysOfWeekDisabled","reduce","previousValue","currentValue","tries","_maxDate","_minDate","_defaultDate","_locale","_stepping","_useCurrent","useCurrentOptions","_collapse","_icons","_tooltips","_useStrict","_sideBySide","_viewMode","_calendarWeeks","_buttons","_keepOpen","_focusOnShow","_inline","_keyBinds","_debug","_allowInputToggle","_keepInvalid","datepickerInput","_datepickerInput","_parseInputDate2","_disabledTimeIntervals","hours","_allowMultidate","_multidateSeparator","set","JQUERY_NO_CONFLICT","verticalModes","horizontalModes","toolbarPlacements","getSelectorFromElement","$element","selector","$selector","test","DATA_KEY","TempusDominusBootstrap4","_DateTimePicker","_this","ReferenceError","_possibleConstructorReturn","_init","subClass","superClass","setPrototypeOf","__proto__","_inherits","hasClass","datepickerButton","_getDatePickerTemplate","headTemplate","append","addClass","contTemplate","_getTimePickerMainTemplate","topRow","middleRow","bottomRow","href","tabindex","title","data-time-component","html","data-action","_getTimePickerTemplate","hoursView","minutesView","secondsView","ret","_getToolbar","row","icon","_getTemplate","template","dateView","timeView","content","toolbar","removeClass","_place","picker","parent","position","offset","children","first","top","height","window","scrollTop","outerHeight","width","outerWidth","css","parents","bottom","_fillDow","currentDate","startOf","text","endOf","_fillMonths","spans","monthsShort","empty","_updateMonths","monthsView","monthsViewHeader","months","eq","year","month","_getStartEndYear","factor","step","startYear","floor","_updateYears","yearsView","yearsViewHeader","yearCaps","endYear","_updateDecades","decadesView","decadesViewHeader","startDecade","endDecade","minDateDecade","maxDateDecade","endDecadeYear","daysView","daysViewHeader","clsName","weekday","week","_fillHours","table","currentHour","hour","_fillMinutes","currentMinute","minute","_fillSeconds","currentSecond","second","timeComponents","_doAction","action","lastPicked","currentTarget","navFnc","_navFnc","closest","_year","_newDate","_newDate2","_newDate3","_newDate4","_newDate5","$this","$link","$parent","expanded","closed","$span","collapseData","transitioning","toggleClass","todaysDate","off","blur","currentMoment","useCurrentGranularity","proxy","destroy","removeData","disable","enable","_toolbarPlacement","_widgetPositioning","_widgetParent","_jQueryHandleThis","me","option","argument","_jQueryInterface","document","$target","noConflict","autocomplete","source","request","response","getData","term","select","item","label","selectEvent","$apply","minLength","match","map","requestSplit","error","Afi","Utilities","removeDiacritics","Value","countSpaces","Key","imgId","_renderItem","open","userAgent","disabled","ul","$li","$img","class","alt","appendTo","configMax","update","clientProductsQuantity","paintLegend2","width2","minFormatted","formatNumber","maxFormatted","valueFormatted","labelLegend1","labelLegend2","before","paintBars","$timeout","id","transclude","controller","$scope","parentScope","num_slides","getSlides","setSlides","nSlid","animateHeight","$on","carouselContainer","carouselControlRight","disableControls","autoSlide","carousel","interval","nextSlide","prevSlide","carouselControlLeft","setSlide","range","templateUrl","parentCtrl","ngModelCtrl","dayMin","monthMin","yearMin","dayMax","yearMax","dateMinArray","dateMaxArray","monthMax","langParam","datepicker","regional","setDefaults","ex","isMobile","useDatepicker","displayCalendarButton","showOn","changeMonth","changeYear","yearRange","getFullYear","beforeShow","inst","setTimeout","buttonImage","pathCalendarButton","buttonImageOnly","buttonText","onSelect","dateText","dateAux","dateObj","dateStr","valueOf","getTimezoneOffset","toISOString","getElementById","$name","dateMax","initialvalue","dateOut","dateInRange","dateMin","dateArray","validateDate","invalidInput","value2","cloneConfig","internalId","_config","viewVal","includes","inputAux","inputValue","transformedInput","paramsDate","$setViewValue","$render","showErrorMsg","validate","errorMsg0","errorMsg1","errorMsg2","mobileInputMask","Inputmask","alias","placeholder","placerholder","showMaskOnHover","flagEditDate","changeEventFunction","changeEvent","dateMoment","datetimepicker","alwaysOpen","focusout","ev","updateEvent","newVal","oldVal","getTime","search","$dirty","ui","gExp","generalizeStrToExp","selectmenu","ngChange","my","at","jquiver","jquiminor","jquimajor","slider","_mouseCapture","normValue","distance","closestHandle","mouseOverHandle","elementSize","elementOffset","x","pageX","y","pageY","_normValueFromMouse","_valueMax","_valueMin","handles","that","values","thisDistance","abs","_lastChangedValue","_start","_mouseSliding","_handleIndex","addBack","_clickOffset","_slide","_animateOff","suffixLiteralDown","optionsFormatter","applyCustomScale","newScaleMax","newScaleStart","paintScale","prefixLiteralDown","showMinMaxLabels","showScale","steps","widthElem","visibility","maxWidth","maxHeight","scaleSteps","widthSubSteps","scaleSubSteps","addScaleNumber","scaleNumber","classes","divScaleNumber","formatScaleNumber","labelFormatterDown","showScaleNumbers","paintAllScaleNumbers","paintValueFunction","widthStep","subSteps","allowOverMax","configMin","maxValue","disapplyCustomScale","stepValue","prefixLiteralUp","suffixLiteralUp","formatValueDown","showValueOnHandler","showDoubleValue","slideEvent","classHandle","removeTabindexHandle","removeAttr","maxAlternate","widthAlternate","limit","widthLimit","showUpDownButtons","slide","stop","stopEvent","literalOffElem","literalOnElem","sortable","handle","opacity","start","end","sortableArray","disableSelection","ngModel","literalOff","addEventListener","crt","cloneNode","style","display","dataTransfer","dropEffect","unbind","switch2OnChange","sw","$$element","getElementsByClassName","sl","rounded","classList","onLabel","leftText","textContent","offLabel","rightText","onValue","offValue","isChecked","defValue","switch","currentStep","totalStepsConfig","disablePrevious","nextStep","prevStep","setStep","number","stateFunction","curStep","isInteger","data2","columnsData","additionalInput","isThereNaNs","eval","createChartFunction","model","minValue","blurEvent","formatFunction","unformatFunction","focusFunction","additionalInfo","disabledInput","helpMsg","suffixVariable","compile","pre","labelPosition","labelposition","idError","errormsg","unit","validUndefined","showHelp","popoverPosition","replaceMinMaxError","changeValue","blurValue","focusCallback","eventParam","focusEvent","focusInput","tmp","str","modelDate","modelDateMin","modelDateMax","allowNull","dirty","formatDate","attrDatetoggle","setDirty","toDate","alwaysopen","userFormat","f","delimiter","exec","len","getDate","oldDateAux","modelStr","clearTimeout","timerChangeEvent","substring","minAge","maxAge","modelDateAux","isSameOrBefore","isSameOrAfter","targetScope","labelDay","labelday","labelMonth","labelmonth","labelYear","labelyear","maxYearValue","dateStrAux","modelDay","modelMonth","modelYear","model2","modelDate2","modelDateMax2","showCalendars","selectedYearsAndMonths","datesStr","date2Aux","getMonthNumberFromName","selectedYear1","selectedYear2","selectedMonth2","selectedMonth1","currentYear","currentMonth","changeFunction","configSld","minValid","maxValid","clickLabelEvent","secondquantity","secondquantitydecimals","secondquantityunit","showAdditionalInfo","modelSlider","maxValueSlider","minValidateValue","maxValidateValue","replaceMinMaxHelp","helpmsg","minValueSlider","clickLabelCallback","indexOfObj","size","tmoutHover","mouseenter","tmout","mouseleave","$compile","compiled","location","body","$modal","contents","$root","list","dynamicLabel","$provide","PLURAL_CATEGORY","DATETIME_FORMATS","AMPMS","DAY","MONTH","SHORTDAY","SHORTMONTH","fullDate","longDate","medium","mediumDate","mediumTime","short","shortDate","shortTime","CURRENCY_SYM","GROUP_SEP","PATTERNS","gSize","lgSize","maxFrac","minFrac","minInt","negPre","negSuf","posPre","posSuf","pluralCat"],"mappings":"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","file":"afi-angularjs-ui-components.min.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","// Punto de entrada para webpack\r\n\r\n// ESTILOS\r\nimport './node_modules/tempusdominus-bootstrap-4/build/css/tempusdominus-bootstrap-4.css'\r\n\r\nimport './src/templates/css/switch2.css'\r\nimport './src/templates/css/customPopover.css'\r\nimport './src/templates/css/datetimepicker.css'\r\nimport './src/templates/css/stepprogressbar.css'\r\n\r\n// COMPONENTES REQUERIDOS\r\nrequire(\"./src/config.js\");\r\n\r\nrequire(\"./src/afiInput\");\r\n\r\nrequire(\"./ext/tempusdominus-bootstrap-4.js\");\r\n\r\nrequire(\"./src/components.js\");\r\nrequire(\"./src/components/autocomplete\");\r\nrequire(\"./src/components/bar\");\r\nrequire(\"./src/components/carousel\");\r\nrequire(\"./src/components/datepicker\");\r\nrequire(\"./src/components/datepicker2\");\r\nrequire(\"./src/components/renderItem\");\r\nrequire(\"./src/components/select\");\r\nrequire(\"./src/components/slider\");\r\nrequire(\"./src/components/sortable\");\r\nrequire(\"./src/components/switch\");\r\nrequire(\"./src/components/switch2\");\r\nrequire(\"./src/components/stepprogressbar\");\r\n\r\nrequire(\"./src/coolComponents.js\");\r\nrequire(\"./src/coolComponents/chart\");\r\nrequire(\"./src/coolComponents/coolInput\");\r\nrequire(\"./src/coolComponents/coolInputDate\");\r\nrequire(\"./src/coolComponents/coolInputDate3Inputs\");\r\nrequire(\"./src/coolComponents/coolInputRangeDate\");\r\nrequire(\"./src/coolComponents/coolInputWithSlider\");\r\nrequire(\"./src/coolComponents/coolSelect\");\r\nrequire(\"./src/coolComponents/customPopover\");\r\nrequire(\"./src/coolComponents/modalDialog\");\r\nrequire(\"./src/coolComponents/radioList\");\r\n\r\nrequire(\"./locales/angular-locale_es-es.js\");","// Configuracion\r\n\r\n// Ruta donde se almacenan los templates (relativa al proyecto)\r\nif (typeof templatesFolder == 'undefined') { \r\n templatesFolder = './node_modules/@symbols-afi-scope/afi-angularjs-ui-components/src/templates/';\r\n}","/***************************************************************************************************************************/\r\n/* EJEMPLOS DE USO */\r\n/* var App = angular.module('App', ['afiInput']); */\r\n/* */\r\n/* */\r\n/* */\r\n/***************************************************************************************************************************/\r\n\r\n'use strict';\r\n\r\n(function (gobal, angular) {\r\n\tangular.module('afiInput', [])\r\n\t\t.constant(\"modelFormatConfig\", {\r\n\t\t\t\"currency\": {\r\n\t\t\t\t\"formatter\": function (args) { //Model to View\r\n\t\t\t\t\tvar modelValue = args.$modelValue,\r\n\t\t\t\t\t\tfilter = args.$filter,\r\n\t\t\t\t\t\tattrs = args.$attrs,\r\n\t\t\t\t\t\t$eval = args.$eval,\r\n\t\t\t\t\t\tconfig = args.$config;\r\n\t\t\t\t\tvar elem = config.element[0];\r\n\r\n\t\t\t\t\tvar ctrl = args.$ngModelCtrl;\r\n\r\n\t\t\t\t\tif (modelValue == undefined) {\r\n\t\t\t\t\t\tif ($(elem).prop('required')) {\r\n\t\t\t\t\t\t\tputError(config.ctrl, elem, config.err_empty);\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t\tmodelValue = config.nullValue;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar val;\r\n\t\t\t\t\tif (config.hasDecimals) {\r\n\t\t\t\t\t\tval = filter(\"currency\")(modelValue);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tval = filter(\"nfcurrency\")(modelValue);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t//Caso nulo\r\n\t\t\t\t\tif ($(elem).prop('required') && modelValue == config.nullValue) {\r\n\t\t\t\t\t\tputError(config.ctrl, elem, config.err_empty);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tremoveError(config.ctrl, elem);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn val;\r\n\t\t\t\t\t//return attrs.prefixed && $eval(attrs.prefixed) ? val : val.substr(1);\r\n\t\t\t\t},\r\n\t\t\t\t\"parser\": function (args) { //View to Model\r\n\t\t\t\t\tvar viewValue = args.$viewValue;\r\n\t\t\t\t\tvar ctrl = args.$ngModelCtrl;\r\n\t\t\t\t\tvar config = args.$config;\r\n\t\t\t\t\tvar elem = config.element[0];\r\n\r\n\t\t\t\t\t//Caso null\r\n\t\t\t\t\tif (!viewValue) {\r\n\t\t\t\t\t\tif ($(elem).prop('required')) {\r\n\t\t\t\t\t\t\tputError(config.ctrl, elem, config.err_empty);\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t\treturn config.nullValue;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar num = viewValue.replace(/[^0-9.]/g, '');\r\n\t\t\t\t\tvar result = parseFloat(num, 10);\r\n\r\n\t\t\t\t\tvar hasError = false;\r\n\r\n\t\t\t\t\t//M�nimos y m�ximos\r\n\t\t\t\t\tif (config.autoAdjust) {\r\n\t\t\t\t\t\tif (result < config.min) {\r\n\t\t\t\t\t\t\tresult = config.min;\r\n\t\t\t\t\t\t} else if (result > config.max) {\r\n\t\t\t\t\t\t\tresult = config.max;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tif (result < config.min) {\r\n\t\t\t\t\t\t\thasError = true;\r\n\t\t\t\t\t\t\tputError(config.ctrl, elem, config.err_min.replace(\"$1\", config.min));\r\n\t\t\t\t\t\t} else if (result > config.max) {\r\n\t\t\t\t\t\t\thasError = true;\r\n\t\t\t\t\t\t\tputError(config.ctrl, elem, config.err_max.replace(\"$1\", config.min));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (!hasError) {\r\n\t\t\t\t\t\tremoveError(config.ctrl, elem);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t//Caso nulo\r\n\t\t\t\t\tif ($(elem).prop('required') && result == config.nullValue) {\r\n\t\t\t\t\t\tputError(config.ctrl, elem, config.err_empty);\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\treturn isNaN(result) ? undefined : parseFloat(result.toFixed(2));\r\n\t\t\t\t},\r\n\t\t\t\t\"focus\": function (args) {\r\n\t\t\t\t\tvar config = args.$config;\r\n\t\t\t\t\tvar elem = config.element[0];\r\n\r\n\t\t\t\t\tvar viewValue = args.$viewValue;\r\n\t\t\t\t\tvar formats = config.locale.NUMBER_FORMATS;\r\n\r\n\t\t\t\t\tvar replace = \"[^0-9\" + formats.DECIMAL_SEP + \"]\";\r\n\t\t\t\t\tvar re = new RegExp(replace, \"g\");\r\n\t\t\t\t\tvar num = viewValue.replace(re, '');\r\n\r\n\t\t\t\t\treplace = \"[\\\\\" + formats.DECIMAL_SEP + \"]\";\r\n\t\t\t\t\tre = new RegExp(replace, \"g\");\r\n\t\t\t\t\tvar result = parseFloat(num.replace(re, '.'));\r\n\r\n\t\t\t\t\treturn isNaN(result) ? undefined : result;\r\n\t\t\t\t},\r\n\t\t\t\t\"isEmpty\": function (args) {\r\n\t\t\t\t\tvar config = args.$config;\r\n\t\t\t\t\tvar elem = config.element[0];\r\n\r\n\t\t\t\t\treturn !args.$modelValue;\r\n\t\t\t\t},\r\n\t\t\t\t\"keyDown\": function (args) {\r\n\t\t\t\t\tvar event = args.$event,\r\n\t\t\t\t\t\tviewValue = args.$viewValue,\r\n\t\t\t\t\t\tmodelValue = args.$modelValue;\r\n\r\n\t\t\t\t\t/*\r\n\t\t\t\t if (!(gobal.keyHelper.smallKeyBoard(event) || gobal.keyHelper.numberKeyBpoard(event) || gobal.keyHelper.functionKeyBoard(event) || gobal.keyHelper.currencyKeyBoard(event, viewValue) || gobal.keyHelper.floatKeyBoard(event, viewValue))) {\r\n\t\t\t\t\t event.stopPropagation();\r\n\t\t\t\t\t event.preventDefault();\r\n\t\t\t\t }\r\n\t\t\t\t\t*/\r\n\t\t\t\t},\r\n\t\t\t\t\"params\": {\r\n\t\t\t\t\tmin: Number.NEGATIVE_INFINITY,\r\n\t\t\t\t\tmax: Number.POSITIVE_INFINITY,\r\n\t\t\t\t\tnullValue: 0,\r\n\t\t\t\t\tautoAdjust: true,\r\n\t\t\t\t\thasDecimals: false\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t\"digit\": {\r\n\t\t\t\t\"formatter\": function (args) {\r\n\t\t\t\t\treturn args.$modelValue;\r\n\t\t\t\t},\r\n\t\t\t\t\"parser\": function (args) {\r\n\t\t\t\t\tvar viewValue = args.$viewValue;\r\n\t\t\t\t\tvar ctrl = args.$ngModelCtrl;\r\n\t\t\t\t\tvar config = args.$config;\r\n\t\t\t\t\tvar elem = config.element[0];\r\n\r\n\t\t\t\t\tvar result = viewValue;\r\n\t\t\t\t\tvar hasError = false;\r\n\r\n\t\t\t\t\t//M�nimos y m�ximos\r\n\t\t\t\t\tif (config.autoAdjust) {\r\n\t\t\t\t\t\tif (result < config.min) {\r\n\t\t\t\t\t\t\tresult = config.min;\r\n\t\t\t\t\t\t} else if (result > config.max) {\r\n\t\t\t\t\t\t\tresult = config.max;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tif (result < config.min) {\r\n\t\t\t\t\t\t\thasError = true;\r\n\t\t\t\t\t\t\tputError(config.ctrl, elem, config.err_min.replace(\"$1\", config.min));\r\n\t\t\t\t\t\t} else if (result > config.max) {\r\n\t\t\t\t\t\t\thasError = true;\r\n\t\t\t\t\t\t\tputError(config.ctrl, elem, config.err_max.replace(\"$1\", config.min));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn result;\r\n\t\t\t\t},\r\n\t\t\t\t\"isEmpty\": function (value) {\r\n\t\t\t\t\treturn !value.$modelValue;\r\n\t\t\t\t},\r\n\t\t\t\t\"keyDown\": function (args) {\r\n\t\t\t\t\tvar event = args.$event;\r\n\t\t\t\t\t/*\r\n\t\t\t\t\tif (!(gobal.keyHelper.smallKeyBoard(event) || gobal.keyHelper.numberKeyBpoard(event) || gobal.keyHelper.functionKeyBoard(event))) {\r\n\t\t\t\t\t\t event.stopPropagation();\r\n\t\t\t\t\t\t event.preventDefault();\r\n\t\t\t\t\t}\r\n\t\t\t\t\t */\r\n\t\t\t\t},\r\n\t\t\t\t\"params\": {\r\n\t\t\t\t\tmin: Number.NEGATIVE_INFINITY,\r\n\t\t\t\t\tmax: Number.POSITIVE_INFINITY,\r\n\t\t\t\t\tnullValue: 0,\r\n\t\t\t\t\tautoAdjust: true,\r\n\t\t\t\t\thasDecimals: false\r\n\t\t\t\t}, \"focus\": function (args) {\r\n\t\t\t\t\tvar config = args.$config;\r\n\t\t\t\t\tvar elem = config.element[0];\r\n\r\n\t\t\t\t\tvar viewValue = args.$viewValue;\r\n\t\t\t\t\tvar formats = config.locale.NUMBER_FORMATS;\r\n\r\n\t\t\t\t\tvar replace = \"[^0-9\" + formats.DECIMAL_SEP + \"]\";\r\n\t\t\t\t\tvar re = new RegExp(replace, \"g\");\r\n\t\t\t\t\tvar num = viewValue.replace(re, '');\r\n\r\n\t\t\t\t\treplace = \"[\\\\\" + formats.DECIMAL_SEP + \"]\";\r\n\t\t\t\t\tre = new RegExp(replace, \"g\");\r\n\t\t\t\t\tvar result = parseFloat(num.replace(re, '.'));\r\n\r\n\t\t\t\t\treturn isNaN(result) ? undefined : result;\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\t\"int\": {\r\n\t\t\t\t\"formatter\": function (args) {\r\n\t\t\t\t\tvar modelValue = args.$modelValue,\r\n\t\t\t\t\t\tfilter = args.$filter;\r\n\r\n\t\t\t\t\tvar config = args.$config;\r\n\r\n\t\t\t\t\tvar suff = \"\", preff = \"\";\r\n\t\t\t\t\tif (modelValue !== undefined) {\r\n\t\t\t\t\t\tsuff = (config.suffix != undefined) ? \" \" + config.suffix : \"\";\r\n\t\t\t\t\t\tpreff = (config.preff != undefined) ? config.preff + \" \" : \"\";\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn preff + filter(\"number\")(modelValue) + suff;\r\n\t\t\t\t},\r\n\t\t\t\t\"parser\": function (args) {\r\n\t\t\t\t\tvar val;\r\n\r\n\t\t\t\t\tif (args.$viewValue != null && !isNaN(args.$viewValue)) {\r\n\t\t\t\t\t\tval = parseInt(args.$viewValue.replace(/[^0-9]/g, ''), 10);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar config = args.$config;\r\n\r\n\t\t\t\t\tif (val < config.min) {\r\n\t\t\t\t\t\tval = config.min;\r\n\t\t\t\t\t} else if (val > config.max) {\r\n\t\t\t\t\t\tval = config.max;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn isNaN(val) ? undefined : val;\r\n\t\t\t\t},\r\n\t\t\t\t\"focus\": function (args) {\r\n\t\t\t\t\tvar config = args.$config;\r\n\t\t\t\t\tvar elem = config.element[0];\r\n\r\n\t\t\t\t\tvar viewValue = args.$viewValue;\r\n\t\t\t\t\tvar formats = config.locale.NUMBER_FORMATS;\r\n\r\n\t\t\t\t\tvar replace = \"[^0-9\" + formats.DECIMAL_SEP + \"]\";\r\n\t\t\t\t\tvar re = new RegExp(replace, \"g\");\r\n\t\t\t\t\tvar num = viewValue.replace(re, '');\r\n\r\n\t\t\t\t\treplace = \"[\\\\\" + formats.DECIMAL_SEP + \"]\";\r\n\t\t\t\t\tre = new RegExp(replace, \"g\");\r\n\t\t\t\t\tvar result = parseFloat(num.replace(re, '.'));\r\n\r\n\t\t\t\t\treturn isNaN(result) ? undefined : result;\r\n\t\t\t\t},\r\n\t\t\t\t\"isEmpty\": function (value) {\r\n\t\t\t\t\treturn !value.$modelValue;\r\n\t\t\t\t},\r\n\t\t\t\t\"keyDown\": function (args) {\r\n\t\t\t\t\tvar event = args.$event;\r\n\r\n\r\n\t\t\t\t},\r\n\t\t\t\t\"params\": {\r\n\t\t\t\t\tmin: Number.NEGATIVE_INFINITY,\r\n\t\t\t\t\tmax: Number.POSITIVE_INFINITY,\r\n\t\t\t\t\tnullValue: 0,\r\n\t\t\t\t\thasDecimals: false,\r\n\t\t\t\t\tsuffix: '',\r\n preff: ''\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t\"float\": {\r\n\t\t\t\t\"formatter\": function (args) {\r\n\t\t\t\t\tvar modelValue = args.$modelValue,\r\n\t\t\t\t\t\tfilter = args.$filter,\r\n\t\t\t\t\t\tconfig = args.$config;\r\n\r\n\t\t\t\t\tvar fractionSize = 2;\r\n\r\n\t\t\t\t\tif (config.decimals != undefined) {\r\n\t\t\t\t\t\tfractionSize = config.decimals;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar suff = \"\", preff = \"\";\r\n\t\t\t\t\tif (modelValue !== undefined) {\r\n\t\t\t\t\t\tsuff = (args.$suffix != undefined) ? \" \" + args.$suffix : ((config.suffix != undefined) ? \" \" + config.suffix : \"\");\r\n\t\t\t\t\t\tpreff = (config.preff != undefined) ? config.preff + \" \" : \"\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn preff + filter(\"number\")(modelValue, fractionSize) + suff;\r\n\t\t\t\t},\r\n\t\t\t\t\"parser\": function (args) {\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\tvar config = args.$config;\r\n\r\n\t\t\t\t\t\tvar viewValue = args.$viewValue.replace(new RegExp(args.$config.locale.NUMBER_FORMATS.DECIMAL_SEP, 'g'), \".\");\r\n\t\t\t\t\t\tvar val = parseFloat(viewValue.replace(/[^0-9-.]/g, '')),\r\n\t\t\t\t\t\t\tENOB = 3,\r\n\t\t\t\t\t\t\ttempNum = Math.pow(10, ENOB);\r\n\r\n\t\t\t\t\t\t//Minimos y maximos\r\n\t\t\t\t\t\tif (val < config.min) {\r\n\t\t\t\t\t\t\tval = config.min;\r\n\t\t\t\t\t\t} else if (val > config.max) {\r\n\t\t\t\t\t\t\tval = config.max;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn isNaN(val) ? config.min : Math.round(val * tempNum) / tempNum;\r\n\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\treturn config.min;\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t\"isEmpty\": function (value) {\r\n\t\t\t\t\treturn !value.$modelValue;\r\n\t\t\t\t},\r\n\t\t\t\t\"focus\": function (args) {\r\n\t\t\t\t\tvar config = args.$config;\r\n\t\t\t\t\tvar elem = config.element[0];\r\n\r\n\t\t\t\t\tvar viewValue = args.$viewValue;\r\n\t\t\t\t\tvar formats = config.locale.NUMBER_FORMATS;\r\n\r\n\t\t\t\t\tvar replace = \"[^0-9-\" + formats.DECIMAL_SEP + \"]\";\r\n\t\t\t\t\tvar re = new RegExp(replace, \"g\");\r\n\t\t\t\t\tvar num = viewValue.replace(re, '');\r\n\r\n\t\t\t\t\t//replace = \"[\\\\\" + formats.DECIMAL_SEP + \"]\";\r\n\t\t\t\t\t//re = new RegExp(replace, \"g\");\r\n\t\t\t\t\t//var result = parseFloat(num.replace(re, '.'));\r\n\r\n\t\t\t\t\t//return isNaN(result) ? undefined : result;\r\n\t\t\t\t\treturn num;\r\n\t\t\t\t},\r\n\t\t\t\t\"keyDown\": function (args) {\r\n\t\t\t\t\tvar event = args.$event,\r\n\t\t\t\t\t\tviewValue = args.$viewValue;\r\n\t\t\t\t},\r\n\t\t\t\t\"keyUp\": function (args) {\r\n\t\t\t\t\tvar event = args.$event,\r\n\t\t\t\t\t\tviewValue = args.$viewValue;\r\n\r\n\t\t\t\t\tif (event.keyCode === 110 || event.keyCode === 190) {\r\n\t\t\t\t\t\targs.$config.element.val(args.$config.element.val().replace(\".\", args.$config.locale.NUMBER_FORMATS.DECIMAL_SEP));\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t\"params\": {\r\n\t\t\t\t\tmin: Number.NEGATIVE_INFINITY,\r\n\t\t\t\t\tmax: Number.POSITIVE_INFINITY,\r\n\t\t\t\t\tdecimals: 2,\r\n\t\t\t\t\tsuffix: '',\r\n\t\t\t\t\tpreffix: ''\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t\"boolean\": {\r\n\t\t\t\t\"formatter\": function (args) {\r\n\t\t\t\t\tvar modelValue = args.$modelValue;\r\n\t\t\t\t\tif (!angular.isUndefined(modelValue)) {\r\n\t\t\t\t\t\treturn modelValue.toString();\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t\"parser\": function (args) {\r\n\t\t\t\t\tvar viewValue = args.$viewValue;\r\n\t\t\t\t\tif (!angular.isUndefined(viewValue)) {\r\n\t\t\t\t\t\treturn viewValue.trim() === \"true\";\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t\"isEmpty\": function (value) {\r\n\t\t\t\t\treturn angular.isUndefined(value);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}).filter('nfcurrency', ['$filter', '$locale', function ($filter, $locale) {\r\n\t\t\tvar currency = $filter('currency'), formats = $locale.NUMBER_FORMATS;\r\n\t\t\treturn function (amount, symbol) {\r\n\t\t\t\tvar value = currency(amount, symbol);\r\n\t\t\t\treturn value.replace(new RegExp('\\\\' + formats.DECIMAL_SEP + '\\\\d{2}'), '')\r\n\t\t\t}\r\n\t\t}])\r\n\t\t.directive(\"afiInput\", [\"modelFormatConfig\", \"$filter\", \"$parse\", \"$window\", \"$locale\",\r\n\t\t\tfunction (modelFormatConfig, $filter, $parse, $window, $locale) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\trequire: 'ngModel',\r\n\t\t\t\t\tscope: {\r\n\t\t\t\t\t\tconfig: \"=\",\r\n\t\t\t\t\t\tsuffix: \"=?\"\r\n\t\t\t\t\t},\r\n\t\t\t\t\tlink: function (scope, element, attrs, ctrl) {\r\n\t\t\t\t\t\tvar config = modelFormatConfig[attrs.afiInput] || {};\r\n\r\n\t\t\t\t\t\tvar parseFuction = function (funKey) {\r\n\t\t\t\t\t\t\tif (attrs[funKey]) {\r\n\t\t\t\t\t\t\t\tvar func = $parse(attrs[funKey]);\r\n\t\t\t\t\t\t\t\treturn (function (args) {\r\n\t\t\t\t\t\t\t\t\treturn func(scope, args);\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn config[funKey];\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\tvar params = $.extend({}, config[\"params\"]); // Configuracion inicial\r\n\r\n\t\t\t\t\t\tfor (var key in scope.config) {\r\n\t\t\t\t\t\t\tif (scope.config.hasOwnProperty(key) && params.hasOwnProperty(key)) {\r\n\t\t\t\t\t\t\t\tparams[key] = scope.config[key];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t\t//Añadimos el type a los parametros (se lee desde el input y no depende del tipo afi-input)\r\n\t\t\t\t\t\tparams[\"type\"] = scope.config[\"type\"];\r\n\r\n\t\t\t\t\t\t//Watch para cambios de configuracion\r\n\t\t\t\t\t\tscope.$watch('config', function (newValue, oldValue) {\r\n\t\t\t\t\t\t\tfor (var key in newValue) {\r\n\t\t\t\t\t\t\t\tif (newValue.hasOwnProperty(key) && params.hasOwnProperty(key)) {\r\n\t\t\t\t\t\t\t\t\tparams[key] = newValue[key];\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t}, true);\r\n\r\n\t\t\t\t\t\t// DEFAULT COMMON PARAMETERS\r\n\t\t\t\t\t\tparams.err_min = \"El valor no puede ser inferior a $1\";\r\n\t\t\t\t\t\tparams.err_max = \"El valor no puede ser superior a $1\";\r\n\t\t\t\t\t\tparams.err_empty = \"\";\r\n\t\t\t\t\t\tparams.element = element;\r\n\t\t\t\t\t\tparams.ctrl = ctrl;\r\n\t\t\t\t\t\tparams.locale = $locale;\r\n\r\n\t\t\t\t\t\tvar formatter = parseFuction(\"formatter\");\r\n\t\t\t\t\t\tvar parser = parseFuction(\"parser\");\r\n\t\t\t\t\t\tvar focus = parseFuction(\"focus\");\r\n\t\t\t\t\t\tvar isEmpty = parseFuction(\"isEmpty\");\r\n\t\t\t\t\t\tvar keyDown = parseFuction(\"keyDown\");\r\n\t\t\t\t\t\tvar keyUp = parseFuction(\"keyUp\");\r\n\t\t\t\t\t\tvar getModelValue = function () {\r\n\t\t\t\t\t\t\treturn ctrl.$modelValue;\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\tif (keyDown) {\r\n\t\t\t\t\t\t\telement.bind(\"blur\", function () {\r\n\t\t\t\t\t\t\t\tif (params.type == undefined) {\r\n\t\t\t\t\t\t\t\t\tthis.type = \"text\";\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telement.val(formatter({\r\n\t\t\t\t\t\t\t\t\t\"$ngModelCtrl\": ctrl,\r\n\t\t\t\t\t\t\t\t\t\"$modelValue\": getModelValue(),\r\n\t\t\t\t\t\t\t\t\t\"$filter\": $filter,\r\n\t\t\t\t\t\t\t\t\t\"$attrs\": attrs,\r\n\t\t\t\t\t\t\t\t\t\"$eval\": scope.$eval,\r\n\t\t\t\t\t\t\t\t\t\"$config\": params,\r\n\t\t\t\t\t\t\t\t\t\"$suffix\": scope.suffix\r\n\t\t\t\t\t\t\t\t}));\r\n\t\t\t\t\t\t\t}).bind(\"keydown\", function (event) {\r\n\t\t\t\t\t\t\t\tkeyDown({\r\n\t\t\t\t\t\t\t\t\t\"$event\": event,\r\n\t\t\t\t\t\t\t\t\t\"$viewValue\": element.val(),\r\n\t\t\t\t\t\t\t\t\t\"$modelValue\": getModelValue(),\r\n\t\t\t\t\t\t\t\t\t\"$attrs\": attrs,\r\n\t\t\t\t\t\t\t\t\t\"$eval\": scope.$eval,\r\n\t\t\t\t\t\t\t\t\t\"$config\": params,\r\n\t\t\t\t\t\t\t\t\t\"$ngModelCtrl\": ctrl\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}).bind(\"keyup\", function (event) {\r\n\t\t\t\t\t\t\t\tkeyUp({\r\n\t\t\t\t\t\t\t\t\t\"$event\": event,\r\n\t\t\t\t\t\t\t\t\t\"$viewValue\": element.val(),\r\n\t\t\t\t\t\t\t\t\t\"$modelValue\": getModelValue(),\r\n\t\t\t\t\t\t\t\t\t\"$attrs\": attrs,\r\n\t\t\t\t\t\t\t\t\t\"$eval\": scope.$eval,\r\n\t\t\t\t\t\t\t\t\t\"$config\": params,\r\n\t\t\t\t\t\t\t\t\t\"$ngModelCtrl\": ctrl\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}).on('focus', function (event) {\r\n\t\t\t\t\t\t\t\telement.val(focus({\r\n\t\t\t\t\t\t\t\t\t\"$event\": event,\r\n\t\t\t\t\t\t\t\t\t\"$viewValue\": element.val(),\r\n\t\t\t\t\t\t\t\t\t\"$modelValue\": getModelValue(),\r\n\t\t\t\t\t\t\t\t\t\"$attrs\": attrs,\r\n\t\t\t\t\t\t\t\t\t\"$eval\": scope.$eval,\r\n\t\t\t\t\t\t\t\t\t\"$config\": params,\r\n\t\t\t\t\t\t\t\t\t\"$ngModelCtrl\": ctrl\r\n\t\t\t\t\t\t\t\t}));\r\n\t\t\t\t\t\t\t\tthis.setSelectionRange(0, this.value.length);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\tctrl.$parsers.push(function (viewValue) {\r\n\t\t\t\t\t\t\treturn parser({\r\n\t\t\t\t\t\t\t\t\"$ngModelCtrl\": ctrl,\r\n\t\t\t\t\t\t\t\t\"$viewValue\": viewValue,\r\n\t\t\t\t\t\t\t\t\"$attrs\": attrs,\r\n\t\t\t\t\t\t\t\t\"$eval\": scope.$eval,\r\n\t\t\t\t\t\t\t\t\"$config\": params\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tctrl.$formatters.push(function (value) {\r\n\t\t\t\t\t\t\treturn formatter({\r\n\t\t\t\t\t\t\t\t\"$ngModelCtrl\": ctrl,\r\n\t\t\t\t\t\t\t\t\"$modelValue\": value,\r\n\t\t\t\t\t\t\t\t\"$filter\": $filter,\r\n\t\t\t\t\t\t\t\t\"$attrs\": attrs,\r\n\t\t\t\t\t\t\t\t\"$eval\": scope.$eval,\r\n\t\t\t\t\t\t\t\t\"$config\": params,\r\n\t\t\t\t\t\t\t\t\"$suffix\": scope.suffix\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tctrl.$isEmpty = function (value) {\r\n\t\t\t\t\t\t\treturn isEmpty({\r\n\t\t\t\t\t\t\t\t\"$ngModelCtrl\": ctrl,\r\n\t\t\t\t\t\t\t\t\"$modelValue\": value,//(value[0] != \" \" ? value : null),\r\n\t\t\t\t\t\t\t\t\"$attrs\": attrs,\r\n\t\t\t\t\t\t\t\t\"$eval\": scope.$eval,\r\n\t\t\t\t\t\t\t\t\"$config\": params\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\tangular.forEach(ctrl.$parsers, function (parser) {\r\n\t\t\t\t\t\t\tparser(ctrl.$viewValue);\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t// Cambiamos el modelValue para que se ejecute el formater y cambien el sufijo por el nuevo\r\n\t\t\t\t\t\tscope.$watch('suffix', function () {\r\n\t\t\t\t\t\t\tctrl.$modelValue = ctrl.$modelValue + \"\";\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t])\r\n\t\t.directive(\"checkBoxToArray\", [\r\n\r\n\t\t\tfunction () {\r\n\t\t\t\treturn {\r\n\t\t\t\t\trestrict: \"A\",\r\n\t\t\t\t\trequire: \"ngModel\",\r\n\t\t\t\t\tlink: function (scope, element, attrs, ctrl) {\r\n\t\t\t\t\t\tvar value = scope.$eval(attrs.checkBoxToArray);\r\n\t\t\t\t\t\tctrl.$parsers.push(function (viewValue) {\r\n\t\t\t\t\t\t\tvar modelValue = ctrl.$modelValue ? angular.copy(ctrl.$modelValue) : [];\r\n\t\t\t\t\t\t\tif (viewValue === true && modelValue.indexOf(value) === -1) {\r\n\t\t\t\t\t\t\t\tmodelValue.push(value);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (viewValue !== true && modelValue.indexOf(value) != -1) {\r\n\t\t\t\t\t\t\t\tmodelValue.splice(modelValue.indexOf(value), 1);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn modelValue.sort();\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tctrl.$formatters.push(function (modelValue) {\r\n\t\t\t\t\t\t\treturn modelValue && modelValue.indexOf(value) != -1;\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tctrl.$isEmpty = function ($modelValue) {\r\n\t\t\t\t\t\t\treturn !$modelValue || $modelValue.length === 0;\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t]);\r\n\r\n\r\n\tvar smallKeyBoard = function (event) {\r\n\t\tvar which = event.which;\r\n\t\treturn (which >= 96 && which <= 105);\r\n\t};\r\n\r\n\tvar numberKeyBpoard = function (event) {\r\n\t\tvar which = event.which;\r\n\t\treturn (which >= 48 && which <= 57) && !event.shiftKey;\r\n\t};\r\n\r\n\tvar functionKeyBoard = function (event) {\r\n\t\tvar which = event.which;\r\n\t\treturn (which <= 40) || (navigator.platform.indexOf(\"Mac\") > -1 && event.metaKey) || (navigator.platform.indexOf(\"Win\") > -1 && event.ctrlKey);\r\n\t};\r\n\r\n\tvar currencyKeyBoard = function (event, viewValue) {\r\n\t\tvar which = event.which;\r\n\t\treturn (viewValue.toString().indexOf('$') === -1 && which === 52 && event.shiftKey);\r\n\t};\r\n\r\n\tvar floatKeyBoard = function (event, viewValue) {\r\n\t\tvar which = event.which;\r\n\t\treturn [188].indexOf(which) != -1 || (which === 190 || which === 110) && viewValue.toString().indexOf('.') === -1;\r\n\t}\r\n\r\n\tvar removeError = function (ctrl, element) {\r\n\t\telement.$valid = true;\r\n\t\tctrl.$setValidity('afiInput', true);\r\n\t\t$(\"#\" + $(element).attr(\"id\") + \"_error\").remove();\r\n\t};\r\n\r\n\tvar putError = function (ctrl, element, message) {\r\n\t\telement.$valid = false;\r\n\t\tctrl.$setValidity('afiInput', false);\r\n\t\t$(\"#\" + $(element).attr(\"id\") + \"_error\").remove();\r\n\t\t$(element).after(\"\" + message + \"\");\r\n\t};\r\n\r\n\tgobal.keyHelper = {\r\n\t\tsmallKeyBoard: smallKeyBoard,\r\n\t\tnumberKeyBpoard: numberKeyBpoard,\r\n\t\tfunctionKeyBoard: functionKeyBoard,\r\n\t\tcurrencyKeyBoard: currencyKeyBoard,\r\n\t\tfloatKeyBoard: floatKeyBoard\r\n\t};\r\n\r\n})(this, angular);","/*@preserve\r\n * Tempus Dominus Bootstrap4 v5.0.1 (https://tempusdominus.github.io/bootstrap-4/)\r\n * Copyright 2016-2018 Jonathan Peterson\r\n * Licensed under MIT (https://github.com/tempusdominus/bootstrap-3/blob/master/LICENSE)\r\n */\r\n\r\nif (typeof jQuery === 'undefined') {\r\n throw new Error('Tempus Dominus Bootstrap4\\'s requires jQuery. jQuery must be included before Tempus Dominus Bootstrap4\\'s JavaScript.');\r\n}\r\n\r\n+function ($) {\r\n var version = $.fn.jquery.split(' ')[0].split('.');\r\n if ((version[0] < 2 && version[1] < 9) || (version[0] === 1 && version[1] === 9 && version[2] < 1) || (version[0] >= 4)) {\r\n throw new Error('Tempus Dominus Bootstrap4\\'s requires at least jQuery v3.0.0 but less than v4.0.0');\r\n }\r\n}(jQuery);\r\n\r\n\r\nif (typeof moment === 'undefined') {\r\n throw new Error('Tempus Dominus Bootstrap4\\'s requires moment.js. Moment.js must be included before Tempus Dominus Bootstrap4\\'s JavaScript.');\r\n}\r\n\r\nvar version = moment.version.split('.')\r\nif ((version[0] <= 2 && version[1] < 17) || (version[0] >= 3)) {\r\n throw new Error('Tempus Dominus Bootstrap4\\'s requires at least moment.js v2.17.0 but less than v3.0.0');\r\n}\r\n\r\n+function () {\r\n\r\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\r\n\r\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\r\n\r\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\r\n\r\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\r\n\r\n// ReSharper disable once InconsistentNaming\r\nvar DateTimePicker = function ($, moment) {\r\n // ReSharper disable InconsistentNaming\r\n var NAME = 'datetimepicker',\r\n DATA_KEY = '' + NAME,\r\n EVENT_KEY = '.' + DATA_KEY,\r\n DATA_API_KEY = '.data-api',\r\n Selector = {\r\n DATA_TOGGLE: '[data-toggle=\"' + DATA_KEY + '\"]'\r\n },\r\n ClassName = {\r\n INPUT: NAME + '-input'\r\n },\r\n Event = {\r\n CHANGE: 'change' + EVENT_KEY,\r\n BLUR: 'blur' + EVENT_KEY,\r\n KEYUP: 'keyup' + EVENT_KEY,\r\n KEYDOWN: 'keydown' + EVENT_KEY,\r\n FOCUS: 'focus' + EVENT_KEY,\r\n CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY,\r\n //emitted\r\n UPDATE: 'update' + EVENT_KEY,\r\n ERROR: 'error' + EVENT_KEY,\r\n HIDE: 'hide' + EVENT_KEY,\r\n SHOW: 'show' + EVENT_KEY\r\n },\r\n DatePickerModes = [{\r\n CLASS_NAME: 'days',\r\n NAV_FUNCTION: 'M',\r\n NAV_STEP: 1\r\n }, {\r\n CLASS_NAME: 'months',\r\n NAV_FUNCTION: 'y',\r\n NAV_STEP: 1\r\n }, {\r\n CLASS_NAME: 'years',\r\n NAV_FUNCTION: 'y',\r\n NAV_STEP: 10\r\n }, {\r\n CLASS_NAME: 'decades',\r\n NAV_FUNCTION: 'y',\r\n NAV_STEP: 100\r\n }],\r\n KeyMap = {\r\n 'up': 38,\r\n 38: 'up',\r\n 'down': 40,\r\n 40: 'down',\r\n 'left': 37,\r\n 37: 'left',\r\n 'right': 39,\r\n 39: 'right',\r\n 'tab': 9,\r\n 9: 'tab',\r\n 'escape': 27,\r\n 27: 'escape',\r\n 'enter': 13,\r\n 13: 'enter',\r\n 'pageUp': 33,\r\n 33: 'pageUp',\r\n 'pageDown': 34,\r\n 34: 'pageDown',\r\n 'shift': 16,\r\n 16: 'shift',\r\n 'control': 17,\r\n 17: 'control',\r\n 'space': 32,\r\n 32: 'space',\r\n 't': 84,\r\n 84: 't',\r\n 'delete': 46,\r\n 46: 'delete'\r\n },\r\n ViewModes = ['times', 'days', 'months', 'years', 'decades'],\r\n keyState = {},\r\n keyPressHandled = {};\r\n\r\n var MinViewModeNumber = 0,\r\n Default = {\r\n timeZone: '',\r\n format: false,\r\n dayViewHeaderFormat: 'MMMM YYYY',\r\n extraFormats: false,\r\n stepping: 1,\r\n minDate: false,\r\n maxDate: false,\r\n useCurrent: true,\r\n collapse: true,\r\n locale: moment.locale(),\r\n defaultDate: false,\r\n disabledDates: false,\r\n enabledDates: false,\r\n icons: {\r\n time: 'fa fa-clock-o',\r\n date: 'fa fa-calendar',\r\n up: 'fa fa-arrow-up',\r\n down: 'fa fa-arrow-down',\r\n previous: 'fa fa-chevron-left',\r\n next: 'fa fa-chevron-right',\r\n today: 'fa fa-calendar-check-o',\r\n clear: 'fa fa-delete',\r\n close: 'fa fa-times'\r\n },\r\n tooltips: {\r\n today: 'Go to today',\r\n clear: 'Clear selection',\r\n close: 'Close the picker',\r\n selectMonth: 'Select Month',\r\n prevMonth: 'Previous Month',\r\n nextMonth: 'Next Month',\r\n selectYear: 'Select Year',\r\n prevYear: 'Previous Year',\r\n nextYear: 'Next Year',\r\n selectDecade: 'Select Decade',\r\n prevDecade: 'Previous Decade',\r\n nextDecade: 'Next Decade',\r\n prevCentury: 'Previous Century',\r\n nextCentury: 'Next Century',\r\n pickHour: 'Pick Hour',\r\n incrementHour: 'Increment Hour',\r\n decrementHour: 'Decrement Hour',\r\n pickMinute: 'Pick Minute',\r\n incrementMinute: 'Increment Minute',\r\n decrementMinute: 'Decrement Minute',\r\n pickSecond: 'Pick Second',\r\n incrementSecond: 'Increment Second',\r\n decrementSecond: 'Decrement Second',\r\n togglePeriod: 'Toggle Period',\r\n selectTime: 'Select Time',\r\n selectDate: 'Select Date'\r\n },\r\n useStrict: false,\r\n sideBySide: false,\r\n daysOfWeekDisabled: false,\r\n calendarWeeks: false,\r\n viewMode: 'days',\r\n toolbarPlacement: 'default',\r\n buttons: {\r\n showToday: false,\r\n showClear: false,\r\n showClose: false\r\n },\r\n widgetPositioning: {\r\n horizontal: 'auto',\r\n vertical: 'auto'\r\n },\r\n widgetParent: null,\r\n ignoreReadonly: false,\r\n keepOpen: false,\r\n focusOnShow: true,\r\n inline: false,\r\n keepInvalid: false,\r\n keyBinds: {\r\n up: function up() {\r\n if (!this.widget) {\r\n return false;\r\n }\r\n var d = this._dates[0] || this.getMoment();\r\n if (this.widget.find('.datepicker').is(':visible')) {\r\n this.date(d.clone().subtract(7, 'd'));\r\n } else {\r\n this.date(d.clone().add(this.stepping(), 'm'));\r\n }\r\n return true;\r\n },\r\n down: function down() {\r\n if (!this.widget) {\r\n this.show();\r\n return false;\r\n }\r\n var d = this._dates[0] || this.getMoment();\r\n if (this.widget.find('.datepicker').is(':visible')) {\r\n this.date(d.clone().add(7, 'd'));\r\n } else {\r\n this.date(d.clone().subtract(this.stepping(), 'm'));\r\n }\r\n return true;\r\n },\r\n 'control up': function controlUp() {\r\n if (!this.widget) {\r\n return false;\r\n }\r\n var d = this._dates[0] || this.getMoment();\r\n if (this.widget.find('.datepicker').is(':visible')) {\r\n this.date(d.clone().subtract(1, 'y'));\r\n } else {\r\n this.date(d.clone().add(1, 'h'));\r\n }\r\n return true;\r\n },\r\n 'control down': function controlDown() {\r\n if (!this.widget) {\r\n return false;\r\n }\r\n var d = this._dates[0] || this.getMoment();\r\n if (this.widget.find('.datepicker').is(':visible')) {\r\n this.date(d.clone().add(1, 'y'));\r\n } else {\r\n this.date(d.clone().subtract(1, 'h'));\r\n }\r\n return true;\r\n },\r\n left: function left() {\r\n if (!this.widget) {\r\n return false;\r\n }\r\n var d = this._dates[0] || this.getMoment();\r\n if (this.widget.find('.datepicker').is(':visible')) {\r\n this.date(d.clone().subtract(1, 'd'));\r\n }\r\n return true;\r\n },\r\n right: function right() {\r\n if (!this.widget) {\r\n return false;\r\n }\r\n var d = this._dates[0] || this.getMoment();\r\n if (this.widget.find('.datepicker').is(':visible')) {\r\n this.date(d.clone().add(1, 'd'));\r\n }\r\n return true;\r\n },\r\n pageUp: function pageUp() {\r\n if (!this.widget) {\r\n return false;\r\n }\r\n var d = this._dates[0] || this.getMoment();\r\n if (this.widget.find('.datepicker').is(':visible')) {\r\n this.date(d.clone().subtract(1, 'M'));\r\n }\r\n return true;\r\n },\r\n pageDown: function pageDown() {\r\n if (!this.widget) {\r\n return false;\r\n }\r\n var d = this._dates[0] || this.getMoment();\r\n if (this.widget.find('.datepicker').is(':visible')) {\r\n this.date(d.clone().add(1, 'M'));\r\n }\r\n return true;\r\n },\r\n enter: function enter() {\r\n if (!this.widget) {\r\n return false;\r\n }\r\n this.hide();\r\n return true;\r\n },\r\n escape: function escape() {\r\n if (!this.widget) {\r\n return false;\r\n }\r\n this.hide();\r\n return true;\r\n },\r\n 'control space': function controlSpace() {\r\n if (!this.widget) {\r\n return false;\r\n }\r\n if (this.widget.find('.timepicker').is(':visible')) {\r\n this.widget.find('.btn[data-action=\"togglePeriod\"]').click();\r\n }\r\n return true;\r\n },\r\n t: function t() {\r\n if (!this.widget) {\r\n return false;\r\n }\r\n this.date(this.getMoment());\r\n return true;\r\n },\r\n 'delete': function _delete() {\r\n if (!this.widget) {\r\n return false;\r\n }\r\n this.clear();\r\n return true;\r\n }\r\n },\r\n debug: false,\r\n allowInputToggle: false,\r\n disabledTimeIntervals: false,\r\n disabledHours: false,\r\n enabledHours: false,\r\n viewDate: false,\r\n allowMultidate: false,\r\n multidateSeparator: ','\r\n };\r\n\r\n // ReSharper restore InconsistentNaming\r\n\r\n // ReSharper disable once DeclarationHides\r\n // ReSharper disable once InconsistentNaming\r\n\r\n var DateTimePicker = function () {\r\n /** @namespace eData.dateOptions */\r\n /** @namespace moment.tz */\r\n\r\n function DateTimePicker(element, options) {\r\n _classCallCheck(this, DateTimePicker);\r\n\r\n this._options = this._getOptions(options);\r\n this._element = element;\r\n this._dates = [];\r\n this._datesFormatted = [];\r\n this._viewDate = null;\r\n this.unset = true;\r\n this.component = false;\r\n this.widget = false;\r\n this.use24Hours = null;\r\n this.actualFormat = null;\r\n this.parseFormats = null;\r\n this.currentViewMode = null;\r\n\r\n this._int();\r\n }\r\n\r\n /**\r\n * @return {string}\r\n */\r\n\r\n\r\n //private\r\n\r\n DateTimePicker.prototype._int = function _int() {\r\n var targetInput = this._element.data('target-input');\r\n if (this._element.is('input')) {\r\n this.input = this._element;\r\n } else if (targetInput !== undefined) {\r\n if (targetInput === 'nearest') {\r\n this.input = this._element.find('input');\r\n } else {\r\n this.input = $(targetInput);\r\n }\r\n }\r\n\r\n this._dates = [];\r\n this._dates[0] = this.getMoment();\r\n this._viewDate = this.getMoment().clone();\r\n\r\n $.extend(true, this._options, this._dataToOptions());\r\n\r\n this.options(this._options);\r\n\r\n this._initFormatting();\r\n\r\n if (this.input !== undefined && this.input.is('input') && this.input.val().trim().length !== 0) {\r\n this._setValue(this._parseInputDate(this.input.val().trim()), 0);\r\n } else if (this._options.defaultDate && this.input !== undefined && this.input.attr('placeholder') === undefined) {\r\n this._setValue(this._options.defaultDate, 0);\r\n }\r\n if (this._options.inline) {\r\n this.show();\r\n }\r\n };\r\n\r\n DateTimePicker.prototype._update = function _update() {\r\n if (!this.widget) {\r\n return;\r\n }\r\n this._fillDate();\r\n this._fillTime();\r\n };\r\n\r\n DateTimePicker.prototype._setValue = function _setValue(targetMoment, index) {\r\n var oldDate = this.unset ? null : this._dates[index];\r\n var outpValue = '';\r\n // case of calling setValue(null or false)\r\n if (!targetMoment) {\r\n if (!this._options.allowMultidate || this._dates.length === 1) {\r\n this.unset = true;\r\n this._dates = [];\r\n this._datesFormatted = [];\r\n } else {\r\n outpValue = this._element.data('date') + ',';\r\n outpValue = outpValue.replace(oldDate.format(this.actualFormat) + ',', '').replace(',,', '').replace(/,\\s*$/, '');\r\n this._dates.splice(index, 1);\r\n this._datesFormatted.splice(index, 1);\r\n }\r\n if (this.input !== undefined) {\r\n this.input.val(outpValue);\r\n this.input.trigger('input');\r\n }\r\n this._element.data('date', outpValue);\r\n this._notifyEvent({\r\n type: DateTimePicker.Event.CHANGE,\r\n date: false,\r\n oldDate: oldDate\r\n });\r\n this._update();\r\n return;\r\n }\r\n\r\n targetMoment = targetMoment.clone().locale(this._options.locale);\r\n\r\n if (this._hasTimeZone()) {\r\n targetMoment.tz(this._options.timeZone);\r\n }\r\n\r\n if (this._options.stepping !== 1) {\r\n targetMoment.minutes(Math.round(targetMoment.minutes() / this._options.stepping) * this._options.stepping).seconds(0);\r\n }\r\n\r\n if (this._isValid(targetMoment)) {\r\n this._dates[index] = targetMoment;\r\n this._datesFormatted[index] = targetMoment.format('YYYY-MM-DD');\r\n this._viewDate = targetMoment.clone();\r\n if (this._options.allowMultidate && this._dates.length > 1) {\r\n for (var i = 0; i < this._dates.length; i++) {\r\n outpValue += '' + this._dates[i].format(this.actualFormat) + this._options.multidateSeparator;\r\n }\r\n outpValue = outpValue.replace(/,\\s*$/, '');\r\n } else {\r\n outpValue = this._dates[index].format(this.actualFormat);\r\n }\r\n if (this.input !== undefined) {\r\n this.input.val(outpValue);\r\n this.input.trigger('input');\r\n }\r\n this._element.data('date', outpValue);\r\n\r\n this.unset = false;\r\n this._update();\r\n this._notifyEvent({\r\n type: DateTimePicker.Event.CHANGE,\r\n date: this._dates[index].clone(),\r\n oldDate: oldDate\r\n });\r\n } else {\r\n if (!this._options.keepInvalid) {\r\n if (this.input !== undefined) {\r\n this.input.val('' + (this.unset ? '' : this._dates[index].format(this.actualFormat)));\r\n this.input.trigger('input');\r\n }\r\n } else {\r\n this._notifyEvent({\r\n type: DateTimePicker.Event.CHANGE,\r\n date: targetMoment,\r\n oldDate: oldDate\r\n });\r\n }\r\n this._notifyEvent({\r\n type: DateTimePicker.Event.ERROR,\r\n date: targetMoment,\r\n oldDate: oldDate\r\n });\r\n }\r\n };\r\n\r\n DateTimePicker.prototype._change = function _change(e) {\r\n var val = $(e.target).val().trim(),\r\n parsedDate = val ? this._parseInputDate(val) : null;\r\n this._setValue(parsedDate);\r\n e.stopImmediatePropagation();\r\n return false;\r\n };\r\n\r\n //noinspection JSMethodCanBeStatic\r\n\r\n\r\n DateTimePicker.prototype._getOptions = function _getOptions(options) {\r\n options = $.extend(true, {}, Default, options);\r\n return options;\r\n };\r\n\r\n DateTimePicker.prototype._hasTimeZone = function _hasTimeZone() {\r\n return moment.tz !== undefined && this._options.timeZone !== undefined && this._options.timeZone !== null && this._options.timeZone !== '';\r\n };\r\n\r\n DateTimePicker.prototype._isEnabled = function _isEnabled(granularity) {\r\n if (typeof granularity !== 'string' || granularity.length > 1) {\r\n throw new TypeError('isEnabled expects a single character string parameter');\r\n }\r\n switch (granularity) {\r\n case 'y':\r\n return this.actualFormat.indexOf('Y') !== -1;\r\n case 'M':\r\n return this.actualFormat.indexOf('M') !== -1;\r\n case 'd':\r\n return this.actualFormat.toLowerCase().indexOf('d') !== -1;\r\n case 'h':\r\n case 'H':\r\n return this.actualFormat.toLowerCase().indexOf('h') !== -1;\r\n case 'm':\r\n return this.actualFormat.indexOf('m') !== -1;\r\n case 's':\r\n return this.actualFormat.indexOf('s') !== -1;\r\n case 'a':\r\n case 'A':\r\n return this.actualFormat.toLowerCase().indexOf('a') !== -1;\r\n default:\r\n return false;\r\n }\r\n };\r\n\r\n DateTimePicker.prototype._hasTime = function _hasTime() {\r\n return this._isEnabled('h') || this._isEnabled('m') || this._isEnabled('s');\r\n };\r\n\r\n DateTimePicker.prototype._hasDate = function _hasDate() {\r\n return this._isEnabled('y') || this._isEnabled('M') || this._isEnabled('d');\r\n };\r\n\r\n DateTimePicker.prototype._dataToOptions = function _dataToOptions() {\r\n var eData = this._element.data();\r\n var dataOptions = {};\r\n\r\n if (eData.dateOptions && eData.dateOptions instanceof Object) {\r\n dataOptions = $.extend(true, dataOptions, eData.dateOptions);\r\n }\r\n\r\n $.each(this._options, function (key) {\r\n var attributeName = 'date' + key.charAt(0).toUpperCase() + key.slice(1); //todo data api key\r\n if (eData[attributeName] !== undefined) {\r\n dataOptions[key] = eData[attributeName];\r\n } else {\r\n delete dataOptions[key];\r\n }\r\n });\r\n return dataOptions;\r\n };\r\n\r\n DateTimePicker.prototype._notifyEvent = function _notifyEvent(e) {\r\n if (e.type === DateTimePicker.Event.CHANGE && e.date && e.date.isSame(e.oldDate) || !e.date && !e.oldDate) {\r\n return;\r\n }\r\n this._element.trigger(e);\r\n };\r\n\r\n DateTimePicker.prototype._viewUpdate = function _viewUpdate(e) {\r\n if (e === 'y') {\r\n e = 'YYYY';\r\n }\r\n this._notifyEvent({\r\n type: DateTimePicker.Event.UPDATE,\r\n change: e,\r\n viewDate: this._viewDate.clone()\r\n });\r\n };\r\n\r\n DateTimePicker.prototype._showMode = function _showMode(dir) {\r\n if (!this.widget) {\r\n return;\r\n }\r\n if (dir) {\r\n this.currentViewMode = Math.max(MinViewModeNumber, Math.min(3, this.currentViewMode + dir));\r\n }\r\n this.widget.find('.datepicker > div').hide().filter('.datepicker-' + DatePickerModes[this.currentViewMode].CLASS_NAME).show();\r\n };\r\n\r\n DateTimePicker.prototype._isInDisabledDates = function _isInDisabledDates(testDate) {\r\n return this._options.disabledDates[testDate.format('YYYY-MM-DD')] === true;\r\n };\r\n\r\n DateTimePicker.prototype._isInEnabledDates = function _isInEnabledDates(testDate) {\r\n return this._options.enabledDates[testDate.format('YYYY-MM-DD')] === true;\r\n };\r\n\r\n DateTimePicker.prototype._isInDisabledHours = function _isInDisabledHours(testDate) {\r\n return this._options.disabledHours[testDate.format('H')] === true;\r\n };\r\n\r\n DateTimePicker.prototype._isInEnabledHours = function _isInEnabledHours(testDate) {\r\n return this._options.enabledHours[testDate.format('H')] === true;\r\n };\r\n\r\n DateTimePicker.prototype._isValid = function _isValid(targetMoment, granularity) {\r\n if (!targetMoment.isValid()) {\r\n return false;\r\n }\r\n if (this._options.disabledDates && granularity === 'd' && this._isInDisabledDates(targetMoment)) {\r\n return false;\r\n }\r\n if (this._options.enabledDates && granularity === 'd' && !this._isInEnabledDates(targetMoment)) {\r\n return false;\r\n }\r\n if (this._options.minDate && targetMoment.isBefore(this._options.minDate, granularity)) {\r\n return false;\r\n }\r\n if (this._options.maxDate && targetMoment.isAfter(this._options.maxDate, granularity)) {\r\n return false;\r\n }\r\n if (this._options.daysOfWeekDisabled && granularity === 'd' && this._options.daysOfWeekDisabled.indexOf(targetMoment.day()) !== -1) {\r\n return false;\r\n }\r\n if (this._options.disabledHours && (granularity === 'h' || granularity === 'm' || granularity === 's') && this._isInDisabledHours(targetMoment)) {\r\n return false;\r\n }\r\n if (this._options.enabledHours && (granularity === 'h' || granularity === 'm' || granularity === 's') && !this._isInEnabledHours(targetMoment)) {\r\n return false;\r\n }\r\n if (this._options.disabledTimeIntervals && (granularity === 'h' || granularity === 'm' || granularity === 's')) {\r\n var found = false;\r\n $.each(this._options.disabledTimeIntervals, function () {\r\n if (targetMoment.isBetween(this[0], this[1])) {\r\n found = true;\r\n return false;\r\n }\r\n });\r\n if (found) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n\r\n DateTimePicker.prototype._parseInputDate = function _parseInputDate(inputDate) {\r\n if (this._options.parseInputDate === undefined) {\r\n if (!moment.isMoment(inputDate)) {\r\n inputDate = this.getMoment(inputDate);\r\n }\r\n } else {\r\n inputDate = this._options.parseInputDate(inputDate);\r\n }\r\n //inputDate.locale(this.options.locale);\r\n return inputDate;\r\n };\r\n\r\n DateTimePicker.prototype._keydown = function _keydown(e) {\r\n var handler = null,\r\n index = void 0,\r\n index2 = void 0,\r\n keyBindKeys = void 0,\r\n allModifiersPressed = void 0;\r\n var pressedKeys = [],\r\n pressedModifiers = {},\r\n currentKey = e.which,\r\n pressed = 'p';\r\n\r\n keyState[currentKey] = pressed;\r\n\r\n for (index in keyState) {\r\n if (keyState.hasOwnProperty(index) && keyState[index] === pressed) {\r\n pressedKeys.push(index);\r\n if (parseInt(index, 10) !== currentKey) {\r\n pressedModifiers[index] = true;\r\n }\r\n }\r\n }\r\n\r\n for (index in this._options.keyBinds) {\r\n if (this._options.keyBinds.hasOwnProperty(index) && typeof this._options.keyBinds[index] === 'function') {\r\n keyBindKeys = index.split(' ');\r\n if (keyBindKeys.length === pressedKeys.length && KeyMap[currentKey] === keyBindKeys[keyBindKeys.length - 1]) {\r\n allModifiersPressed = true;\r\n for (index2 = keyBindKeys.length - 2; index2 >= 0; index2--) {\r\n if (!(KeyMap[keyBindKeys[index2]] in pressedModifiers)) {\r\n allModifiersPressed = false;\r\n break;\r\n }\r\n }\r\n if (allModifiersPressed) {\r\n handler = this._options.keyBinds[index];\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (handler) {\r\n if (handler.call(this)) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n }\r\n }\r\n };\r\n\r\n //noinspection JSMethodCanBeStatic,SpellCheckingInspection\r\n\r\n\r\n DateTimePicker.prototype._keyup = function _keyup(e) {\r\n keyState[e.which] = 'r';\r\n if (keyPressHandled[e.which]) {\r\n keyPressHandled[e.which] = false;\r\n e.stopPropagation();\r\n e.preventDefault();\r\n }\r\n };\r\n\r\n DateTimePicker.prototype._indexGivenDates = function _indexGivenDates(givenDatesArray) {\r\n // Store given enabledDates and disabledDates as keys.\r\n // This way we can check their existence in O(1) time instead of looping through whole array.\r\n // (for example: options.enabledDates['2014-02-27'] === true)\r\n var givenDatesIndexed = {},\r\n self = this;\r\n $.each(givenDatesArray, function () {\r\n var dDate = self._parseInputDate(this);\r\n if (dDate.isValid()) {\r\n givenDatesIndexed[dDate.format('YYYY-MM-DD')] = true;\r\n }\r\n });\r\n return Object.keys(givenDatesIndexed).length ? givenDatesIndexed : false;\r\n };\r\n\r\n DateTimePicker.prototype._indexGivenHours = function _indexGivenHours(givenHoursArray) {\r\n // Store given enabledHours and disabledHours as keys.\r\n // This way we can check their existence in O(1) time instead of looping through whole array.\r\n // (for example: options.enabledHours['2014-02-27'] === true)\r\n var givenHoursIndexed = {};\r\n $.each(givenHoursArray, function () {\r\n givenHoursIndexed[this] = true;\r\n });\r\n return Object.keys(givenHoursIndexed).length ? givenHoursIndexed : false;\r\n };\r\n\r\n DateTimePicker.prototype._initFormatting = function _initFormatting() {\r\n var format = this._options.format || 'L LT',\r\n self = this;\r\n\r\n this.actualFormat = format.replace(/(\\[[^\\[]*])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g, function (formatInput) {\r\n return self._dates[0].localeData().longDateFormat(formatInput) || formatInput; //todo taking the first date should be ok\r\n });\r\n\r\n this.parseFormats = this._options.extraFormats ? this._options.extraFormats.slice() : [];\r\n if (this.parseFormats.indexOf(format) < 0 && this.parseFormats.indexOf(this.actualFormat) < 0) {\r\n this.parseFormats.push(this.actualFormat);\r\n }\r\n\r\n this.use24Hours = this.actualFormat.toLowerCase().indexOf('a') < 1 && this.actualFormat.replace(/\\[.*?]/g, '').indexOf('h') < 1;\r\n\r\n if (this._isEnabled('y')) {\r\n MinViewModeNumber = 2;\r\n }\r\n if (this._isEnabled('M')) {\r\n MinViewModeNumber = 1;\r\n }\r\n if (this._isEnabled('d')) {\r\n MinViewModeNumber = 0;\r\n }\r\n\r\n this.currentViewMode = Math.max(MinViewModeNumber, this.currentViewMode);\r\n\r\n if (!this.unset) {\r\n this._setValue(this._dates[0], 0);\r\n }\r\n };\r\n\r\n /* CAMBIADO A MANO HASTA QUE LO ARREGLE EONASDAN */\r\n DateTimePicker.prototype._getLastPickedDate = function() {\r\n var lastDate = this._dates[this._getLastPickedDateIndex()]; \r\n if(typeof lastDate == \"undefined\" || lastDate == null){ \r\n lastDate = this.getMoment(); \r\n } \r\n return lastDate;\r\n }\r\n /* CAMBIADO A MANO HASTA QUE LO ARREGLE EONASDAN */\r\n\r\n DateTimePicker.prototype._getLastPickedDateIndex = function _getLastPickedDateIndex() {\r\n return this._dates.length - 1;\r\n };\r\n\r\n //public\r\n\r\n\r\n DateTimePicker.prototype.getMoment = function getMoment(d) {\r\n var returnMoment = void 0;\r\n\r\n if (d === undefined || d === null) {\r\n returnMoment = moment(); //TODO should this use format? and locale?\r\n } else if (this._hasTimeZone()) {\r\n // There is a string to parse and a default time zone\r\n // parse with the tz function which takes a default time zone if it is not in the format string\r\n returnMoment = moment.tz(d, this.parseFormats, this._options.locale, this._options.useStrict, this._options.timeZone);\r\n } else {\r\n returnMoment = moment(d, this.parseFormats, this._options.locale, this._options.useStrict);\r\n }\r\n\r\n if (this._hasTimeZone()) {\r\n returnMoment.tz(this._options.timeZone);\r\n }\r\n\r\n return returnMoment;\r\n };\r\n\r\n DateTimePicker.prototype.toggle = function toggle() {\r\n return this.widget ? this.hide() : this.show();\r\n };\r\n\r\n DateTimePicker.prototype.ignoreReadonly = function ignoreReadonly(_ignoreReadonly) {\r\n if (arguments.length === 0) {\r\n return this._options.ignoreReadonly;\r\n }\r\n if (typeof _ignoreReadonly !== 'boolean') {\r\n throw new TypeError('ignoreReadonly () expects a boolean parameter');\r\n }\r\n this._options.ignoreReadonly = _ignoreReadonly;\r\n };\r\n\r\n DateTimePicker.prototype.options = function options(newOptions) {\r\n if (arguments.length === 0) {\r\n return $.extend(true, {}, this._options);\r\n }\r\n\r\n if (!(newOptions instanceof Object)) {\r\n throw new TypeError('options() this.options parameter should be an object');\r\n }\r\n $.extend(true, this._options, newOptions);\r\n var self = this;\r\n $.each(this._options, function (key, value) {\r\n if (self[key] !== undefined) {\r\n self[key](value);\r\n }\r\n });\r\n };\r\n\r\n DateTimePicker.prototype.date = function date(newDate, index) {\r\n index = index || 0;\r\n if (arguments.length === 0) {\r\n if (this.unset) {\r\n return null;\r\n }\r\n if (this._options.allowMultidate) {\r\n return this._dates.join(this._options.multidateSeparator);\r\n } else {\r\n return this._dates[index].clone();\r\n }\r\n }\r\n\r\n if (newDate !== null && typeof newDate !== 'string' && !moment.isMoment(newDate) && !(newDate instanceof Date)) {\r\n throw new TypeError('date() parameter must be one of [null, string, moment or Date]');\r\n }\r\n\r\n this._setValue(newDate === null ? null : this._parseInputDate(newDate), index);\r\n };\r\n\r\n DateTimePicker.prototype.format = function format(newFormat) {\r\n if (arguments.length === 0) {\r\n return this._options.format;\r\n }\r\n\r\n if (typeof newFormat !== 'string' && (typeof newFormat !== 'boolean' || newFormat !== false)) {\r\n throw new TypeError('format() expects a string or boolean:false parameter ' + newFormat);\r\n }\r\n\r\n this._options.format = newFormat;\r\n if (this.actualFormat) {\r\n this._initFormatting(); // reinitialize formatting\r\n }\r\n };\r\n\r\n DateTimePicker.prototype.timeZone = function timeZone(newZone) {\r\n if (arguments.length === 0) {\r\n return this._options.timeZone;\r\n }\r\n\r\n if (typeof newZone !== 'string') {\r\n throw new TypeError('newZone() expects a string parameter');\r\n }\r\n\r\n this._options.timeZone = newZone;\r\n };\r\n\r\n DateTimePicker.prototype.dayViewHeaderFormat = function dayViewHeaderFormat(newFormat) {\r\n if (arguments.length === 0) {\r\n return this._options.dayViewHeaderFormat;\r\n }\r\n\r\n if (typeof newFormat !== 'string') {\r\n throw new TypeError('dayViewHeaderFormat() expects a string parameter');\r\n }\r\n\r\n this._options.dayViewHeaderFormat = newFormat;\r\n };\r\n\r\n DateTimePicker.prototype.extraFormats = function extraFormats(formats) {\r\n if (arguments.length === 0) {\r\n return this._options.extraFormats;\r\n }\r\n\r\n if (formats !== false && !(formats instanceof Array)) {\r\n throw new TypeError('extraFormats() expects an array or false parameter');\r\n }\r\n\r\n this._options.extraFormats = formats;\r\n if (this.parseFormats) {\r\n this._initFormatting(); // reinit formatting\r\n }\r\n };\r\n\r\n DateTimePicker.prototype.disabledDates = function disabledDates(dates) {\r\n if (arguments.length === 0) {\r\n return this._options.disabledDates ? $.extend({}, this._options.disabledDates) : this._options.disabledDates;\r\n }\r\n\r\n if (!dates) {\r\n this._options.disabledDates = false;\r\n this._update();\r\n return true;\r\n }\r\n if (!(dates instanceof Array)) {\r\n throw new TypeError('disabledDates() expects an array parameter');\r\n }\r\n this._options.disabledDates = this._indexGivenDates(dates);\r\n this._options.enabledDates = false;\r\n this._update();\r\n };\r\n\r\n DateTimePicker.prototype.enabledDates = function enabledDates(dates) {\r\n if (arguments.length === 0) {\r\n return this._options.enabledDates ? $.extend({}, this._options.enabledDates) : this._options.enabledDates;\r\n }\r\n\r\n if (!dates) {\r\n this._options.enabledDates = false;\r\n this._update();\r\n return true;\r\n }\r\n if (!(dates instanceof Array)) {\r\n throw new TypeError('enabledDates() expects an array parameter');\r\n }\r\n this._options.enabledDates = this._indexGivenDates(dates);\r\n this._options.disabledDates = false;\r\n this._update();\r\n };\r\n\r\n DateTimePicker.prototype.daysOfWeekDisabled = function daysOfWeekDisabled(_daysOfWeekDisabled) {\r\n if (arguments.length === 0) {\r\n return this._options.daysOfWeekDisabled.splice(0);\r\n }\r\n\r\n if (typeof _daysOfWeekDisabled === 'boolean' && !_daysOfWeekDisabled) {\r\n this._options.daysOfWeekDisabled = false;\r\n this._update();\r\n return true;\r\n }\r\n\r\n if (!(_daysOfWeekDisabled instanceof Array)) {\r\n throw new TypeError('daysOfWeekDisabled() expects an array parameter');\r\n }\r\n this._options.daysOfWeekDisabled = _daysOfWeekDisabled.reduce(function (previousValue, currentValue) {\r\n currentValue = parseInt(currentValue, 10);\r\n if (currentValue > 6 || currentValue < 0 || isNaN(currentValue)) {\r\n return previousValue;\r\n }\r\n if (previousValue.indexOf(currentValue) === -1) {\r\n previousValue.push(currentValue);\r\n }\r\n return previousValue;\r\n }, []).sort();\r\n if (this._options.useCurrent && !this._options.keepInvalid) {\r\n for (var i = 0; i < this._dates.length; i++) {\r\n var tries = 0;\r\n while (!this._isValid(this._dates[i], 'd')) {\r\n this._dates[i].add(1, 'd');\r\n if (tries === 31) {\r\n throw 'Tried 31 times to find a valid date';\r\n }\r\n tries++;\r\n }\r\n this._setValue(this._dates[i], i);\r\n }\r\n }\r\n this._update();\r\n };\r\n\r\n DateTimePicker.prototype.maxDate = function maxDate(_maxDate) {\r\n if (arguments.length === 0) {\r\n return this._options.maxDate ? this._options.maxDate.clone() : this._options.maxDate;\r\n }\r\n\r\n if (typeof _maxDate === 'boolean' && _maxDate === false) {\r\n this._options.maxDate = false;\r\n this._update();\r\n return true;\r\n }\r\n\r\n if (typeof _maxDate === 'string') {\r\n if (_maxDate === 'now' || _maxDate === 'moment') {\r\n _maxDate = this.getMoment();\r\n }\r\n }\r\n\r\n var parsedDate = this._parseInputDate(_maxDate);\r\n\r\n if (!parsedDate.isValid()) {\r\n throw new TypeError('maxDate() Could not parse date parameter: ' + _maxDate);\r\n }\r\n if (this._options.minDate && parsedDate.isBefore(this._options.minDate)) {\r\n throw new TypeError('maxDate() date parameter is before this.options.minDate: ' + parsedDate.format(this.actualFormat));\r\n }\r\n this._options.maxDate = parsedDate;\r\n for (var i = 0; i < this._dates.length; i++) {\r\n if (this._options.useCurrent && !this._options.keepInvalid && this._dates[i].isAfter(_maxDate)) {\r\n this._setValue(this._options.maxDate, i);\r\n }\r\n }\r\n if (this._viewDate.isAfter(parsedDate)) {\r\n this._viewDate = parsedDate.clone().subtract(this._options.stepping, 'm');\r\n }\r\n this._update();\r\n };\r\n\r\n DateTimePicker.prototype.minDate = function minDate(_minDate) {\r\n if (arguments.length === 0) {\r\n return this._options.minDate ? this._options.minDate.clone() : this._options.minDate;\r\n }\r\n\r\n if (typeof _minDate === 'boolean' && _minDate === false) {\r\n this._options.minDate = false;\r\n this._update();\r\n return true;\r\n }\r\n\r\n if (typeof _minDate === 'string') {\r\n if (_minDate === 'now' || _minDate === 'moment') {\r\n _minDate = this.getMoment();\r\n }\r\n }\r\n\r\n var parsedDate = this._parseInputDate(_minDate);\r\n\r\n if (!parsedDate.isValid()) {\r\n throw new TypeError('minDate() Could not parse date parameter: ' + _minDate);\r\n }\r\n if (this._options.maxDate && parsedDate.isAfter(this._options.maxDate)) {\r\n throw new TypeError('minDate() date parameter is after this.options.maxDate: ' + parsedDate.format(this.actualFormat));\r\n }\r\n this._options.minDate = parsedDate;\r\n for (var i = 0; i < this._dates.length; i++) {\r\n if (this._options.useCurrent && !this._options.keepInvalid && this._dates[i].isBefore(_minDate)) {\r\n this._setValue(this._options.minDate, i);\r\n }\r\n }\r\n if (this._viewDate.isBefore(parsedDate)) {\r\n this._viewDate = parsedDate.clone().add(this._options.stepping, 'm');\r\n }\r\n this._update();\r\n };\r\n\r\n DateTimePicker.prototype.defaultDate = function defaultDate(_defaultDate) {\r\n if (arguments.length === 0) {\r\n return this._options.defaultDate ? this._options.defaultDate.clone() : this._options.defaultDate;\r\n }\r\n if (!_defaultDate) {\r\n this._options.defaultDate = false;\r\n return true;\r\n }\r\n\r\n if (typeof _defaultDate === 'string') {\r\n if (_defaultDate === 'now' || _defaultDate === 'moment') {\r\n _defaultDate = this.getMoment();\r\n } else {\r\n _defaultDate = this.getMoment(_defaultDate);\r\n }\r\n }\r\n\r\n var parsedDate = this._parseInputDate(_defaultDate);\r\n if (!parsedDate.isValid()) {\r\n throw new TypeError('defaultDate() Could not parse date parameter: ' + _defaultDate);\r\n }\r\n if (!this._isValid(parsedDate)) {\r\n throw new TypeError('defaultDate() date passed is invalid according to component setup validations');\r\n }\r\n\r\n this._options.defaultDate = parsedDate;\r\n\r\n if (this._options.defaultDate && this._options.inline || this.input !== undefined && this.input.val().trim() === '') {\r\n this._setValue(this._options.defaultDate, 0);\r\n }\r\n };\r\n\r\n DateTimePicker.prototype.locale = function locale(_locale) {\r\n if (arguments.length === 0) {\r\n return this._options.locale;\r\n }\r\n\r\n if (!moment.localeData(_locale)) {\r\n throw new TypeError('locale() locale ' + _locale + ' is not loaded from moment locales!');\r\n }\r\n\r\n this._options.locale = _locale;\r\n\r\n for (var i = 0; i < this._dates.length; i++) {\r\n this._dates[i].locale(this._options.locale);\r\n }\r\n this._viewDate.locale(this._options.locale);\r\n\r\n if (this.actualFormat) {\r\n this._initFormatting(); // reinitialize formatting\r\n }\r\n if (this.widget) {\r\n this.hide();\r\n this.show();\r\n }\r\n };\r\n\r\n DateTimePicker.prototype.stepping = function stepping(_stepping) {\r\n if (arguments.length === 0) {\r\n return this._options.stepping;\r\n }\r\n\r\n _stepping = parseInt(_stepping, 10);\r\n if (isNaN(_stepping) || _stepping < 1) {\r\n _stepping = 1;\r\n }\r\n this._options.stepping = _stepping;\r\n };\r\n\r\n DateTimePicker.prototype.useCurrent = function useCurrent(_useCurrent) {\r\n var useCurrentOptions = ['year', 'month', 'day', 'hour', 'minute'];\r\n if (arguments.length === 0) {\r\n return this._options.useCurrent;\r\n }\r\n\r\n if (typeof _useCurrent !== 'boolean' && typeof _useCurrent !== 'string') {\r\n throw new TypeError('useCurrent() expects a boolean or string parameter');\r\n }\r\n if (typeof _useCurrent === 'string' && useCurrentOptions.indexOf(_useCurrent.toLowerCase()) === -1) {\r\n throw new TypeError('useCurrent() expects a string parameter of ' + useCurrentOptions.join(', '));\r\n }\r\n this._options.useCurrent = _useCurrent;\r\n };\r\n\r\n DateTimePicker.prototype.collapse = function collapse(_collapse) {\r\n if (arguments.length === 0) {\r\n return this._options.collapse;\r\n }\r\n\r\n if (typeof _collapse !== 'boolean') {\r\n throw new TypeError('collapse() expects a boolean parameter');\r\n }\r\n if (this._options.collapse === _collapse) {\r\n return true;\r\n }\r\n this._options.collapse = _collapse;\r\n if (this.widget) {\r\n this.hide();\r\n this.show();\r\n }\r\n };\r\n\r\n DateTimePicker.prototype.icons = function icons(_icons) {\r\n if (arguments.length === 0) {\r\n return $.extend({}, this._options.icons);\r\n }\r\n\r\n if (!(_icons instanceof Object)) {\r\n throw new TypeError('icons() expects parameter to be an Object');\r\n }\r\n\r\n $.extend(this._options.icons, _icons);\r\n\r\n if (this.widget) {\r\n this.hide();\r\n this.show();\r\n }\r\n };\r\n\r\n DateTimePicker.prototype.tooltips = function tooltips(_tooltips) {\r\n if (arguments.length === 0) {\r\n return $.extend({}, this._options.tooltips);\r\n }\r\n\r\n if (!(_tooltips instanceof Object)) {\r\n throw new TypeError('tooltips() expects parameter to be an Object');\r\n }\r\n $.extend(this._options.tooltips, _tooltips);\r\n if (this.widget) {\r\n this.hide();\r\n this.show();\r\n }\r\n };\r\n\r\n DateTimePicker.prototype.useStrict = function useStrict(_useStrict) {\r\n if (arguments.length === 0) {\r\n return this._options.useStrict;\r\n }\r\n\r\n if (typeof _useStrict !== 'boolean') {\r\n throw new TypeError('useStrict() expects a boolean parameter');\r\n }\r\n this._options.useStrict = _useStrict;\r\n };\r\n\r\n DateTimePicker.prototype.sideBySide = function sideBySide(_sideBySide) {\r\n if (arguments.length === 0) {\r\n return this._options.sideBySide;\r\n }\r\n\r\n if (typeof _sideBySide !== 'boolean') {\r\n throw new TypeError('sideBySide() expects a boolean parameter');\r\n }\r\n this._options.sideBySide = _sideBySide;\r\n if (this.widget) {\r\n this.hide();\r\n this.show();\r\n }\r\n };\r\n\r\n DateTimePicker.prototype.viewMode = function viewMode(_viewMode) {\r\n if (arguments.length === 0) {\r\n return this._options.viewMode;\r\n }\r\n\r\n if (typeof _viewMode !== 'string') {\r\n throw new TypeError('viewMode() expects a string parameter');\r\n }\r\n\r\n if (DateTimePicker.ViewModes.indexOf(_viewMode) === -1) {\r\n throw new TypeError('viewMode() parameter must be one of (' + DateTimePicker.ViewModes.join(', ') + ') value');\r\n }\r\n\r\n this._options.viewMode = _viewMode;\r\n this.currentViewMode = Math.max(DateTimePicker.ViewModes.indexOf(_viewMode) - 1, DateTimePicker.MinViewModeNumber);\r\n\r\n this._showMode();\r\n };\r\n\r\n DateTimePicker.prototype.calendarWeeks = function calendarWeeks(_calendarWeeks) {\r\n if (arguments.length === 0) {\r\n return this._options.calendarWeeks;\r\n }\r\n\r\n if (typeof _calendarWeeks !== 'boolean') {\r\n throw new TypeError('calendarWeeks() expects parameter to be a boolean value');\r\n }\r\n\r\n this._options.calendarWeeks = _calendarWeeks;\r\n this._update();\r\n };\r\n\r\n DateTimePicker.prototype.buttons = function buttons(_buttons) {\r\n if (arguments.length === 0) {\r\n return $.extend({}, this._options.buttons);\r\n }\r\n\r\n if (!(_buttons instanceof Object)) {\r\n throw new TypeError('buttons() expects parameter to be an Object');\r\n }\r\n\r\n $.extend(this._options.buttons, _buttons);\r\n\r\n if (typeof this._options.buttons.showToday !== 'boolean') {\r\n throw new TypeError('buttons.showToday expects a boolean parameter');\r\n }\r\n if (typeof this._options.buttons.showClear !== 'boolean') {\r\n throw new TypeError('buttons.showClear expects a boolean parameter');\r\n }\r\n if (typeof this._options.buttons.showClose !== 'boolean') {\r\n throw new TypeError('buttons.showClose expects a boolean parameter');\r\n }\r\n\r\n if (this.widget) {\r\n this.hide();\r\n this.show();\r\n }\r\n };\r\n\r\n DateTimePicker.prototype.keepOpen = function keepOpen(_keepOpen) {\r\n if (arguments.length === 0) {\r\n return this._options.keepOpen;\r\n }\r\n\r\n if (typeof _keepOpen !== 'boolean') {\r\n throw new TypeError('keepOpen() expects a boolean parameter');\r\n }\r\n\r\n this._options.keepOpen = _keepOpen;\r\n };\r\n\r\n DateTimePicker.prototype.focusOnShow = function focusOnShow(_focusOnShow) {\r\n if (arguments.length === 0) {\r\n return this._options.focusOnShow;\r\n }\r\n\r\n if (typeof _focusOnShow !== 'boolean') {\r\n throw new TypeError('focusOnShow() expects a boolean parameter');\r\n }\r\n\r\n this._options.focusOnShow = _focusOnShow;\r\n };\r\n\r\n DateTimePicker.prototype.inline = function inline(_inline) {\r\n if (arguments.length === 0) {\r\n return this._options.inline;\r\n }\r\n\r\n if (typeof _inline !== 'boolean') {\r\n throw new TypeError('inline() expects a boolean parameter');\r\n }\r\n\r\n this._options.inline = _inline;\r\n };\r\n\r\n DateTimePicker.prototype.clear = function clear() {\r\n this._setValue(null); //todo\r\n };\r\n\r\n DateTimePicker.prototype.keyBinds = function keyBinds(_keyBinds) {\r\n if (arguments.length === 0) {\r\n return this._options.keyBinds;\r\n }\r\n\r\n this._options.keyBinds = _keyBinds;\r\n };\r\n\r\n DateTimePicker.prototype.debug = function debug(_debug) {\r\n if (typeof _debug !== 'boolean') {\r\n throw new TypeError('debug() expects a boolean parameter');\r\n }\r\n\r\n this._options.debug = _debug;\r\n };\r\n\r\n DateTimePicker.prototype.allowInputToggle = function allowInputToggle(_allowInputToggle) {\r\n if (arguments.length === 0) {\r\n return this._options.allowInputToggle;\r\n }\r\n\r\n if (typeof _allowInputToggle !== 'boolean') {\r\n throw new TypeError('allowInputToggle() expects a boolean parameter');\r\n }\r\n\r\n this._options.allowInputToggle = _allowInputToggle;\r\n };\r\n\r\n DateTimePicker.prototype.keepInvalid = function keepInvalid(_keepInvalid) {\r\n if (arguments.length === 0) {\r\n return this._options.keepInvalid;\r\n }\r\n\r\n if (typeof _keepInvalid !== 'boolean') {\r\n throw new TypeError('keepInvalid() expects a boolean parameter');\r\n }\r\n this._options.keepInvalid = _keepInvalid;\r\n };\r\n\r\n DateTimePicker.prototype.datepickerInput = function datepickerInput(_datepickerInput) {\r\n if (arguments.length === 0) {\r\n return this._options.datepickerInput;\r\n }\r\n\r\n if (typeof _datepickerInput !== 'string') {\r\n throw new TypeError('datepickerInput() expects a string parameter');\r\n }\r\n\r\n this._options.datepickerInput = _datepickerInput;\r\n };\r\n\r\n DateTimePicker.prototype.parseInputDate = function parseInputDate(_parseInputDate2) {\r\n if (arguments.length === 0) {\r\n return this._options.parseInputDate;\r\n }\r\n\r\n if (typeof _parseInputDate2 !== 'function') {\r\n throw new TypeError('parseInputDate() should be as function');\r\n }\r\n\r\n this._options.parseInputDate = _parseInputDate2;\r\n };\r\n\r\n DateTimePicker.prototype.disabledTimeIntervals = function disabledTimeIntervals(_disabledTimeIntervals) {\r\n if (arguments.length === 0) {\r\n return this._options.disabledTimeIntervals ? $.extend({}, this._options.disabledTimeIntervals) : this._options.disabledTimeIntervals;\r\n }\r\n\r\n if (!_disabledTimeIntervals) {\r\n this._options.disabledTimeIntervals = false;\r\n this._update();\r\n return true;\r\n }\r\n if (!(_disabledTimeIntervals instanceof Array)) {\r\n throw new TypeError('disabledTimeIntervals() expects an array parameter');\r\n }\r\n this._options.disabledTimeIntervals = _disabledTimeIntervals;\r\n this._update();\r\n };\r\n\r\n DateTimePicker.prototype.disabledHours = function disabledHours(hours) {\r\n if (arguments.length === 0) {\r\n return this._options.disabledHours ? $.extend({}, this._options.disabledHours) : this._options.disabledHours;\r\n }\r\n\r\n if (!hours) {\r\n this._options.disabledHours = false;\r\n this._update();\r\n return true;\r\n }\r\n if (!(hours instanceof Array)) {\r\n throw new TypeError('disabledHours() expects an array parameter');\r\n }\r\n this._options.disabledHours = this._indexGivenHours(hours);\r\n this._options.enabledHours = false;\r\n if (this._options.useCurrent && !this._options.keepInvalid) {\r\n for (var i = 0; i < this._dates.length; i++) {\r\n var tries = 0;\r\n while (!this._isValid(this._dates[i], 'h')) {\r\n this._dates[i].add(1, 'h');\r\n if (tries === 24) {\r\n throw 'Tried 24 times to find a valid date';\r\n }\r\n tries++;\r\n }\r\n this._setValue(this._dates[i], i);\r\n }\r\n }\r\n this._update();\r\n };\r\n\r\n DateTimePicker.prototype.enabledHours = function enabledHours(hours) {\r\n if (arguments.length === 0) {\r\n return this._options.enabledHours ? $.extend({}, this._options.enabledHours) : this._options.enabledHours;\r\n }\r\n\r\n if (!hours) {\r\n this._options.enabledHours = false;\r\n this._update();\r\n return true;\r\n }\r\n if (!(hours instanceof Array)) {\r\n throw new TypeError('enabledHours() expects an array parameter');\r\n }\r\n this._options.enabledHours = this._indexGivenHours(hours);\r\n this._options.disabledHours = false;\r\n if (this._options.useCurrent && !this._options.keepInvalid) {\r\n for (var i = 0; i < this._dates.length; i++) {\r\n var tries = 0;\r\n while (!this._isValid(this._dates[i], 'h')) {\r\n this._dates[i].add(1, 'h');\r\n if (tries === 24) {\r\n throw 'Tried 24 times to find a valid date';\r\n }\r\n tries++;\r\n }\r\n this._setValue(this._dates[i], i);\r\n }\r\n }\r\n this._update();\r\n };\r\n\r\n DateTimePicker.prototype.viewDate = function viewDate(newDate) {\r\n if (arguments.length === 0) {\r\n return this._viewDate.clone();\r\n }\r\n\r\n if (!newDate) {\r\n this._viewDate = (this._dates[0] || this.getMoment()).clone();\r\n return true;\r\n }\r\n\r\n if (typeof newDate !== 'string' && !moment.isMoment(newDate) && !(newDate instanceof Date)) {\r\n throw new TypeError('viewDate() parameter must be one of [string, moment or Date]');\r\n }\r\n\r\n this._viewDate = this._parseInputDate(newDate);\r\n this._viewUpdate();\r\n };\r\n\r\n DateTimePicker.prototype.allowMultidate = function allowMultidate(_allowMultidate) {\r\n if (typeof _allowMultidate !== 'boolean') {\r\n throw new TypeError('allowMultidate() expects a boolean parameter');\r\n }\r\n\r\n this._options.allowMultidate = _allowMultidate;\r\n };\r\n\r\n DateTimePicker.prototype.multidateSeparator = function multidateSeparator(_multidateSeparator) {\r\n if (arguments.length === 0) {\r\n return this._options.multidateSeparator;\r\n }\r\n\r\n if (typeof _multidateSeparator !== 'string' || _multidateSeparator.length > 1) {\r\n throw new TypeError('multidateSeparator expects a single character string parameter');\r\n }\r\n\r\n this._options.multidateSeparator = _multidateSeparator;\r\n };\r\n\r\n _createClass(DateTimePicker, null, [{\r\n key: 'NAME',\r\n get: function get() {\r\n return NAME;\r\n }\r\n\r\n /**\r\n * @return {string}\r\n */\r\n\r\n }, {\r\n key: 'DATA_KEY',\r\n get: function get() {\r\n return DATA_KEY;\r\n }\r\n\r\n /**\r\n * @return {string}\r\n */\r\n\r\n }, {\r\n key: 'EVENT_KEY',\r\n get: function get() {\r\n return EVENT_KEY;\r\n }\r\n\r\n /**\r\n * @return {string}\r\n */\r\n\r\n }, {\r\n key: 'DATA_API_KEY',\r\n get: function get() {\r\n return DATA_API_KEY;\r\n }\r\n }, {\r\n key: 'DatePickerModes',\r\n get: function get() {\r\n return DatePickerModes;\r\n }\r\n }, {\r\n key: 'ViewModes',\r\n get: function get() {\r\n return ViewModes;\r\n }\r\n\r\n /**\r\n * @return {number}\r\n */\r\n\r\n }, {\r\n key: 'MinViewModeNumber',\r\n get: function get() {\r\n return MinViewModeNumber;\r\n }\r\n }, {\r\n key: 'Event',\r\n get: function get() {\r\n return Event;\r\n }\r\n }, {\r\n key: 'Selector',\r\n get: function get() {\r\n return Selector;\r\n }\r\n }, {\r\n key: 'Default',\r\n get: function get() {\r\n return Default;\r\n },\r\n set: function set(value) {\r\n Default = value;\r\n }\r\n }, {\r\n key: 'ClassName',\r\n get: function get() {\r\n return ClassName;\r\n }\r\n }]);\r\n\r\n return DateTimePicker;\r\n }();\r\n\r\n return DateTimePicker;\r\n}(jQuery, moment);\r\n\r\n//noinspection JSUnusedGlobalSymbols\r\n/* global DateTimePicker */\r\nvar TempusDominusBootstrap4 = function ($) {\r\n // eslint-disable-line no-unused-vars\r\n // ReSharper disable once InconsistentNaming\r\n var JQUERY_NO_CONFLICT = $.fn[DateTimePicker.NAME],\r\n verticalModes = ['top', 'bottom', 'auto'],\r\n horizontalModes = ['left', 'right', 'auto'],\r\n toolbarPlacements = ['default', 'top', 'bottom'],\r\n getSelectorFromElement = function getSelectorFromElement($element) {\r\n var selector = $element.data('target'),\r\n $selector = void 0;\r\n\r\n if (!selector) {\r\n selector = $element.attr('href') || '';\r\n selector = /^#[a-z]/i.test(selector) ? selector : null;\r\n }\r\n $selector = $(selector);\r\n if ($selector.length === 0) {\r\n return $selector;\r\n }\r\n\r\n if (!$selector.data(DateTimePicker.DATA_KEY)) {\r\n $.extend({}, $selector.data(), $(this).data());\r\n }\r\n\r\n return $selector;\r\n };\r\n\r\n // ReSharper disable once InconsistentNaming\r\n\r\n var TempusDominusBootstrap4 = function (_DateTimePicker) {\r\n _inherits(TempusDominusBootstrap4, _DateTimePicker);\r\n\r\n function TempusDominusBootstrap4(element, options) {\r\n _classCallCheck(this, TempusDominusBootstrap4);\r\n\r\n var _this = _possibleConstructorReturn(this, _DateTimePicker.call(this, element, options));\r\n\r\n _this._init();\r\n return _this;\r\n }\r\n\r\n TempusDominusBootstrap4.prototype._init = function _init() {\r\n if (this._element.hasClass('input-group')) {\r\n var datepickerButton = this._element.find('.datepickerbutton');\r\n if (datepickerButton.length === 0) {\r\n this.component = this._element.find('[data-toggle=\"datetimepicker\"]');\r\n } else {\r\n this.component = datepickerButton;\r\n }\r\n }\r\n };\r\n\r\n TempusDominusBootstrap4.prototype._getDatePickerTemplate = function _getDatePickerTemplate() {\r\n var headTemplate = $('').append($('').append($('').addClass('prev').attr('data-action', 'previous').append($('').addClass(this._options.icons.previous))).append($('').addClass('picker-switch').attr('data-action', 'pickerSwitch').attr('colspan', '' + (this._options.calendarWeeks ? '6' : '5'))).append($('').addClass('next').attr('data-action', 'next').append($('').addClass(this._options.icons.next)))),\r\n contTemplate = $('').append($('').append($('').attr('colspan', '' + (this._options.calendarWeeks ? '8' : '7'))));\r\n\r\n return [$('
').addClass('datepicker-days').append($('').addClass('table table-sm').append(headTemplate).append($(''))), $('
').addClass('datepicker-months').append($('
').addClass('table-condensed').append(headTemplate.clone()).append(contTemplate.clone())), $('
').addClass('datepicker-years').append($('
').addClass('table-condensed').append(headTemplate.clone()).append(contTemplate.clone())), $('
').addClass('datepicker-decades').append($('
').addClass('table-condensed').append(headTemplate.clone()).append(contTemplate.clone()))];\r\n };\r\n\r\n TempusDominusBootstrap4.prototype._getTimePickerMainTemplate = function _getTimePickerMainTemplate() {\r\n var topRow = $(''),\r\n middleRow = $(''),\r\n bottomRow = $('');\r\n\r\n if (this._isEnabled('h')) {\r\n topRow.append($('
').append($('').attr({\r\n href: '#',\r\n tabindex: '-1',\r\n 'title': this._options.tooltips.incrementHour\r\n }).addClass('btn').attr('data-action', 'incrementHours').append($('').addClass(this._options.icons.up))));\r\n middleRow.append($('').append($('').addClass('timepicker-hour').attr({\r\n 'data-time-component': 'hours',\r\n 'title': this._options.tooltips.pickHour\r\n }).attr('data-action', 'showHours')));\r\n bottomRow.append($('').append($('').attr({\r\n href: '#',\r\n tabindex: '-1',\r\n 'title': this._options.tooltips.decrementHour\r\n }).addClass('btn').attr('data-action', 'decrementHours').append($('').addClass(this._options.icons.down))));\r\n }\r\n if (this._isEnabled('m')) {\r\n if (this._isEnabled('h')) {\r\n topRow.append($('').addClass('separator'));\r\n middleRow.append($('').addClass('separator').html(':'));\r\n bottomRow.append($('').addClass('separator'));\r\n }\r\n topRow.append($('').append($('').attr({\r\n href: '#',\r\n tabindex: '-1',\r\n 'title': this._options.tooltips.incrementMinute\r\n }).addClass('btn').attr('data-action', 'incrementMinutes').append($('').addClass(this._options.icons.up))));\r\n middleRow.append($('').append($('').addClass('timepicker-minute').attr({\r\n 'data-time-component': 'minutes',\r\n 'title': this._options.tooltips.pickMinute\r\n }).attr('data-action', 'showMinutes')));\r\n bottomRow.append($('').append($('').attr({\r\n href: '#',\r\n tabindex: '-1',\r\n 'title': this._options.tooltips.decrementMinute\r\n }).addClass('btn').attr('data-action', 'decrementMinutes').append($('').addClass(this._options.icons.down))));\r\n }\r\n if (this._isEnabled('s')) {\r\n if (this._isEnabled('m')) {\r\n topRow.append($('').addClass('separator'));\r\n middleRow.append($('').addClass('separator').html(':'));\r\n bottomRow.append($('').addClass('separator'));\r\n }\r\n topRow.append($('').append($('').attr({\r\n href: '#',\r\n tabindex: '-1',\r\n 'title': this._options.tooltips.incrementSecond\r\n }).addClass('btn').attr('data-action', 'incrementSeconds').append($('').addClass(this._options.icons.up))));\r\n middleRow.append($('').append($('').addClass('timepicker-second').attr({\r\n 'data-time-component': 'seconds',\r\n 'title': this._options.tooltips.pickSecond\r\n }).attr('data-action', 'showSeconds')));\r\n bottomRow.append($('').append($('').attr({\r\n href: '#',\r\n tabindex: '-1',\r\n 'title': this._options.tooltips.decrementSecond\r\n }).addClass('btn').attr('data-action', 'decrementSeconds').append($('').addClass(this._options.icons.down))));\r\n }\r\n\r\n if (!this.use24Hours) {\r\n topRow.append($('').addClass('separator'));\r\n middleRow.append($('').append($('').addClass('separator'));\r\n }\r\n\r\n return $('
').addClass('timepicker-picker').append($('').addClass('table-condensed').append([topRow, middleRow, bottomRow]));\r\n };\r\n\r\n TempusDominusBootstrap4.prototype._getTimePickerTemplate = function _getTimePickerTemplate() {\r\n var hoursView = $('
').addClass('timepicker-hours').append($('
').addClass('table-condensed')),\r\n minutesView = $('
').addClass('timepicker-minutes').append($('
').addClass('table-condensed')),\r\n secondsView = $('
').addClass('timepicker-seconds').append($('
').addClass('table-condensed')),\r\n ret = [this._getTimePickerMainTemplate()];\r\n\r\n if (this._isEnabled('h')) {\r\n ret.push(hoursView);\r\n }\r\n if (this._isEnabled('m')) {\r\n ret.push(minutesView);\r\n }\r\n if (this._isEnabled('s')) {\r\n ret.push(secondsView);\r\n }\r\n\r\n return ret;\r\n };\r\n\r\n TempusDominusBootstrap4.prototype._getToolbar = function _getToolbar() {\r\n var row = [];\r\n if (this._options.buttons.showToday) {\r\n row.push($('
').append($('').attr({\r\n href: '#',\r\n tabindex: '-1',\r\n 'data-action': 'today',\r\n 'title': this._options.tooltips.today\r\n }).append($('').addClass(this._options.icons.today))));\r\n }\r\n if (!this._options.sideBySide && this._hasDate() && this._hasTime()) {\r\n var title = void 0,\r\n icon = void 0;\r\n if (this._options.viewMode === 'times') {\r\n title = this._options.tooltips.selectDate;\r\n icon = this._options.icons.date;\r\n } else {\r\n title = this._options.tooltips.selectTime;\r\n icon = this._options.icons.time;\r\n }\r\n row.push($('').append($('').attr({\r\n href: '#',\r\n tabindex: '-1',\r\n 'data-action': 'togglePicker',\r\n 'title': title\r\n }).append($('').addClass(icon))));\r\n }\r\n if (this._options.buttons.showClear) {\r\n row.push($('').append($('').attr({\r\n href: '#',\r\n tabindex: '-1',\r\n 'data-action': 'clear',\r\n 'title': this._options.tooltips.clear\r\n }).append($('').addClass(this._options.icons.clear))));\r\n }\r\n if (this._options.buttons.showClose) {\r\n row.push($('').append($('').attr({\r\n href: '#',\r\n tabindex: '-1',\r\n 'data-action': 'close',\r\n 'title': this._options.tooltips.close\r\n }).append($('').addClass(this._options.icons.close))));\r\n }\r\n return row.length === 0 ? '' : $('').addClass('table-condensed').append($('').append($('').append(row)));\r\n };\r\n\r\n TempusDominusBootstrap4.prototype._getTemplate = function _getTemplate() {\r\n var template = $('
').addClass('bootstrap-datetimepicker-widget dropdown-menu'),\r\n dateView = $('
').addClass('datepicker').append(this._getDatePickerTemplate()),\r\n timeView = $('
').addClass('timepicker').append(this._getTimePickerTemplate()),\r\n content = $('
    ').addClass('list-unstyled'),\r\n toolbar = $('
  • ').addClass('picker-switch' + (this._options.collapse ? ' accordion-toggle' : '')).append(this._getToolbar());\r\n\r\n if (this._options.inline) {\r\n template.removeClass('dropdown-menu');\r\n }\r\n\r\n if (this.use24Hours) {\r\n template.addClass('usetwentyfour');\r\n }\r\n if (this._isEnabled('s') && !this.use24Hours) {\r\n template.addClass('wider');\r\n }\r\n\r\n if (this._options.sideBySide && this._hasDate() && this._hasTime()) {\r\n template.addClass('timepicker-sbs');\r\n if (this._options.toolbarPlacement === 'top') {\r\n template.append(toolbar);\r\n }\r\n template.append($('
    ').addClass('row').append(dateView.addClass('col-md-6')).append(timeView.addClass('col-md-6')));\r\n if (this._options.toolbarPlacement === 'bottom' || this._options.toolbarPlacement === 'default') {\r\n template.append(toolbar);\r\n }\r\n return template;\r\n }\r\n\r\n if (this._options.toolbarPlacement === 'top') {\r\n content.append(toolbar);\r\n }\r\n if (this._hasDate()) {\r\n content.append($('
  • ').addClass(this._options.collapse && this._hasTime() ? 'collapse' : '').addClass(this._options.collapse && this._hasTime() && this._options.viewMode === 'times' ? '' : 'show').append(dateView));\r\n }\r\n if (this._options.toolbarPlacement === 'default') {\r\n content.append(toolbar);\r\n }\r\n if (this._hasTime()) {\r\n content.append($('
  • ').addClass(this._options.collapse && this._hasDate() ? 'collapse' : '').addClass(this._options.collapse && this._hasDate() && this._options.viewMode === 'times' ? 'show' : '').append(timeView));\r\n }\r\n if (this._options.toolbarPlacement === 'bottom') {\r\n content.append(toolbar);\r\n }\r\n return template.append(content);\r\n };\r\n\r\n TempusDominusBootstrap4.prototype._place = function _place(e) {\r\n var self = e && e.data && e.data.picker || this,\r\n vertical = self._options.widgetPositioning.vertical,\r\n horizontal = self._options.widgetPositioning.horizontal,\r\n parent = void 0;\r\n var position = (self.component && self.component.length ? self.component : self._element).position(),\r\n offset = (self.component && self.component.length ? self.component : self._element).offset();\r\n if (self._options.widgetParent) {\r\n parent = self._options.widgetParent.append(self.widget);\r\n } else if (self._element.is('input')) {\r\n parent = self._element.after(self.widget).parent();\r\n } else if (self._options.inline) {\r\n parent = self._element.append(self.widget);\r\n return;\r\n } else {\r\n parent = self._element;\r\n self._element.children().first().after(self.widget);\r\n }\r\n\r\n // Top and bottom logic\r\n if (vertical === 'auto') {\r\n //noinspection JSValidateTypes\r\n if (offset.top + self.widget.height() * 1.5 >= $(window).height() + $(window).scrollTop() && self.widget.height() + self._element.outerHeight() < offset.top) {\r\n vertical = 'top';\r\n } else {\r\n vertical = 'bottom';\r\n }\r\n }\r\n\r\n // Left and right logic\r\n if (horizontal === 'auto') {\r\n if (parent.width() < offset.left + self.widget.outerWidth() / 2 && offset.left + self.widget.outerWidth() > $(window).width()) {\r\n horizontal = 'right';\r\n } else {\r\n horizontal = 'left';\r\n }\r\n }\r\n\r\n if (vertical === 'top') {\r\n self.widget.addClass('top').removeClass('bottom');\r\n } else {\r\n self.widget.addClass('bottom').removeClass('top');\r\n }\r\n\r\n if (horizontal === 'right') {\r\n self.widget.addClass('float-right');\r\n } else {\r\n self.widget.removeClass('float-right');\r\n }\r\n\r\n // find the first parent element that has a relative css positioning\r\n if (parent.css('position') !== 'relative') {\r\n parent = parent.parents().filter(function () {\r\n return $(this).css('position') === 'relative';\r\n }).first();\r\n }\r\n\r\n if (parent.length === 0) {\r\n throw new Error('datetimepicker component should be placed within a relative positioned container');\r\n }\r\n\r\n self.widget.css({\r\n top: vertical === 'top' ? 'auto' : position.top + self._element.outerHeight() + 'px',\r\n bottom: vertical === 'top' ? parent.outerHeight() - (parent === self._element ? 0 : position.top) + 'px' : 'auto',\r\n left: horizontal === 'left' ? (parent === self._element ? 0 : position.left) + 'px' : 'auto',\r\n right: horizontal === 'left' ? 'auto' : parent.outerWidth() - self._element.outerWidth() - (parent === self._element ? 0 : position.left) + 'px'\r\n });\r\n };\r\n\r\n TempusDominusBootstrap4.prototype._fillDow = function _fillDow() {\r\n var row = $('
'),\r\n currentDate = this._viewDate.clone().startOf('w').startOf('d');\r\n\r\n if (this._options.calendarWeeks === true) {\r\n row.append($('');\r\n if (this._options.calendarWeeks) {\r\n row.append('');\r\n }\r\n html.push(row);\r\n }\r\n clsName = '';\r\n if (currentDate.isBefore(this._viewDate, 'M')) {\r\n clsName += ' old';\r\n }\r\n if (currentDate.isAfter(this._viewDate, 'M')) {\r\n clsName += ' new';\r\n }\r\n if (this._options.allowMultidate) {\r\n var index = this._datesFormatted.indexOf(currentDate.format('YYYY-MM-DD'));\r\n if (index !== -1) {\r\n if (currentDate.isSame(this._datesFormatted[index], 'd') && !this.unset) {\r\n clsName += ' active';\r\n }\r\n }\r\n } else {\r\n if (currentDate.isSame(this._getLastPickedDate(), 'd') && !this.unset) {\r\n clsName += ' active';\r\n }\r\n }\r\n if (!this._isValid(currentDate, 'd')) {\r\n clsName += ' disabled';\r\n }\r\n if (currentDate.isSame(this.getMoment(), 'd')) {\r\n clsName += ' today';\r\n }\r\n if (currentDate.day() === 0 || currentDate.day() === 6) {\r\n clsName += ' weekend';\r\n }\r\n row.append('');\r\n currentDate.add(1, 'd');\r\n }\r\n\r\n daysView.find('tbody').empty().append(html);\r\n\r\n this._updateMonths();\r\n\r\n this._updateYears();\r\n\r\n this._updateDecades();\r\n };\r\n\r\n TempusDominusBootstrap4.prototype._fillHours = function _fillHours() {\r\n var table = this.widget.find('.timepicker-hours table'),\r\n currentHour = this._viewDate.clone().startOf('d'),\r\n html = [];\r\n var row = $('');\r\n\r\n if (this._viewDate.hour() > 11 && !this.use24Hours) {\r\n currentHour.hour(12);\r\n }\r\n while (currentHour.isSame(this._viewDate, 'd') && (this.use24Hours || this._viewDate.hour() < 12 && currentHour.hour() < 12 || this._viewDate.hour() > 11)) {\r\n if (currentHour.hour() % 4 === 0) {\r\n row = $('');\r\n html.push(row);\r\n }\r\n row.append('');\r\n currentHour.add(1, 'h');\r\n }\r\n table.empty().append(html);\r\n };\r\n\r\n TempusDominusBootstrap4.prototype._fillMinutes = function _fillMinutes() {\r\n var table = this.widget.find('.timepicker-minutes table'),\r\n currentMinute = this._viewDate.clone().startOf('h'),\r\n html = [],\r\n step = this._options.stepping === 1 ? 5 : this._options.stepping;\r\n var row = $('');\r\n\r\n while (this._viewDate.isSame(currentMinute, 'h')) {\r\n if (currentMinute.minute() % (step * 4) === 0) {\r\n row = $('');\r\n html.push(row);\r\n }\r\n row.append('');\r\n currentMinute.add(step, 'm');\r\n }\r\n table.empty().append(html);\r\n };\r\n\r\n TempusDominusBootstrap4.prototype._fillSeconds = function _fillSeconds() {\r\n var table = this.widget.find('.timepicker-seconds table'),\r\n currentSecond = this._viewDate.clone().startOf('m'),\r\n html = [];\r\n var row = $('');\r\n\r\n while (this._viewDate.isSame(currentSecond, 'm')) {\r\n if (currentSecond.second() % 20 === 0) {\r\n row = $('');\r\n html.push(row);\r\n }\r\n row.append('');\r\n currentSecond.add(5, 's');\r\n }\r\n\r\n table.empty().append(html);\r\n };\r\n\r\n TempusDominusBootstrap4.prototype._fillTime = function _fillTime() {\r\n var toggle = void 0,\r\n newDate = void 0;\r\n var timeComponents = this.widget.find('.timepicker span[data-time-component]');\r\n\r\n if (!this.use24Hours) {\r\n toggle = this.widget.find('.timepicker [data-action=togglePeriod]');\r\n newDate = this._getLastPickedDate().clone().add(this._getLastPickedDate().hours() >= 12 ? -12 : 12, 'h');\r\n\r\n toggle.text(this._getLastPickedDate().format('A'));\r\n\r\n if (this._isValid(newDate, 'h')) {\r\n toggle.removeClass('disabled');\r\n } else {\r\n toggle.addClass('disabled');\r\n }\r\n }\r\n timeComponents.filter('[data-time-component=hours]').text(this._getLastPickedDate().format('' + (this.use24Hours ? 'HH' : 'hh')));\r\n timeComponents.filter('[data-time-component=minutes]').text(this._getLastPickedDate().format('mm'));\r\n timeComponents.filter('[data-time-component=seconds]').text(this._getLastPickedDate().format('ss'));\r\n\r\n this._fillHours();\r\n this._fillMinutes();\r\n this._fillSeconds();\r\n };\r\n\r\n TempusDominusBootstrap4.prototype._doAction = function _doAction(e, action) {\r\n var lastPicked = this._getLastPickedDate();\r\n if ($(e.currentTarget).is('.disabled')) {\r\n return false;\r\n }\r\n action = action || $(e.currentTarget).data('action');\r\n switch (action) {\r\n case 'next':\r\n {\r\n var navFnc = DateTimePicker.DatePickerModes[this.currentViewMode].NAV_FUNCTION;\r\n this._viewDate.add(DateTimePicker.DatePickerModes[this.currentViewMode].NAV_STEP, navFnc);\r\n this._fillDate();\r\n this._viewUpdate(navFnc);\r\n break;\r\n }\r\n case 'previous':\r\n {\r\n var _navFnc = DateTimePicker.DatePickerModes[this.currentViewMode].NAV_FUNCTION;\r\n this._viewDate.subtract(DateTimePicker.DatePickerModes[this.currentViewMode].NAV_STEP, _navFnc);\r\n this._fillDate();\r\n this._viewUpdate(_navFnc);\r\n break;\r\n }\r\n case 'pickerSwitch':\r\n this._showMode(1);\r\n break;\r\n case 'selectMonth':\r\n {\r\n var month = $(e.target).closest('tbody').find('span').index($(e.target));\r\n this._viewDate.month(month);\r\n if (this.currentViewMode === DateTimePicker.MinViewModeNumber) {\r\n this._setValue(lastPicked.clone().year(this._viewDate.year()).month(this._viewDate.month()), this._getLastPickedDateIndex());\r\n if (!this._options.inline) {\r\n this.hide();\r\n }\r\n } else {\r\n this._showMode(-1);\r\n this._fillDate();\r\n }\r\n this._viewUpdate('M');\r\n break;\r\n }\r\n case 'selectYear':\r\n {\r\n var year = parseInt($(e.target).text(), 10) || 0;\r\n this._viewDate.year(year);\r\n if (this.currentViewMode === DateTimePicker.MinViewModeNumber) {\r\n this._setValue(lastPicked.clone().year(this._viewDate.year()), this._getLastPickedDateIndex());\r\n if (!this._options.inline) {\r\n this.hide();\r\n }\r\n } else {\r\n this._showMode(-1);\r\n this._fillDate();\r\n }\r\n this._viewUpdate('YYYY');\r\n break;\r\n }\r\n case 'selectDecade':\r\n {\r\n var _year = parseInt($(e.target).data('selection'), 10) || 0;\r\n this._viewDate.year(_year);\r\n if (this.currentViewMode === DateTimePicker.MinViewModeNumber) {\r\n this._setValue(lastPicked.clone().year(this._viewDate.year()), this._getLastPickedDateIndex());\r\n if (!this._options.inline) {\r\n this.hide();\r\n }\r\n } else {\r\n this._showMode(-1);\r\n this._fillDate();\r\n }\r\n this._viewUpdate('YYYY');\r\n break;\r\n }\r\n case 'selectDay':\r\n {\r\n var day = this._viewDate.clone();\r\n if ($(e.target).is('.old')) {\r\n day.subtract(1, 'M');\r\n }\r\n if ($(e.target).is('.new')) {\r\n day.add(1, 'M');\r\n }\r\n this._setValue(day.date(parseInt($(e.target).text(), 10)), this._getLastPickedDateIndex());\r\n if (!this._hasTime() && !this._options.keepOpen && !this._options.inline) {\r\n this.hide();\r\n }\r\n break;\r\n }\r\n case 'incrementHours':\r\n {\r\n var newDate = lastPicked.clone().add(1, 'h');\r\n if (this._isValid(newDate, 'h')) {\r\n this._setValue(newDate, this._getLastPickedDateIndex());\r\n }\r\n break;\r\n }\r\n case 'incrementMinutes':\r\n {\r\n var _newDate = lastPicked.clone().add(this._options.stepping, 'm');\r\n if (this._isValid(_newDate, 'm')) {\r\n this._setValue(_newDate, this._getLastPickedDateIndex());\r\n }\r\n break;\r\n }\r\n case 'incrementSeconds':\r\n {\r\n var _newDate2 = lastPicked.clone().add(1, 's');\r\n if (this._isValid(_newDate2, 's')) {\r\n this._setValue(_newDate2, this._getLastPickedDateIndex());\r\n }\r\n break;\r\n }\r\n case 'decrementHours':\r\n {\r\n var _newDate3 = lastPicked.clone().subtract(1, 'h');\r\n if (this._isValid(_newDate3, 'h')) {\r\n this._setValue(_newDate3, this._getLastPickedDateIndex());\r\n }\r\n break;\r\n }\r\n case 'decrementMinutes':\r\n {\r\n var _newDate4 = lastPicked.clone().subtract(this._options.stepping, 'm');\r\n if (this._isValid(_newDate4, 'm')) {\r\n this._setValue(_newDate4, this._getLastPickedDateIndex());\r\n }\r\n break;\r\n }\r\n case 'decrementSeconds':\r\n {\r\n var _newDate5 = lastPicked.clone().subtract(1, 's');\r\n if (this._isValid(_newDate5, 's')) {\r\n this._setValue(_newDate5, this._getLastPickedDateIndex());\r\n }\r\n break;\r\n }\r\n case 'togglePeriod':\r\n {\r\n this._setValue(lastPicked.clone().add(lastPicked.hours() >= 12 ? -12 : 12, 'h'), this._getLastPickedDateIndex());\r\n break;\r\n }\r\n case 'togglePicker':\r\n {\r\n var $this = $(e.target),\r\n $link = $this.closest('a'),\r\n $parent = $this.closest('ul'),\r\n expanded = $parent.find('.show'),\r\n closed = $parent.find('.collapse:not(.show)'),\r\n $span = $this.is('span') ? $this : $this.find('span');\r\n var collapseData = void 0;\r\n\r\n if (expanded && expanded.length) {\r\n collapseData = expanded.data('collapse');\r\n if (collapseData && collapseData.transitioning) {\r\n return true;\r\n }\r\n if (expanded.collapse) {\r\n // if collapse plugin is available through bootstrap.js then use it\r\n expanded.collapse('hide');\r\n closed.collapse('show');\r\n } else {\r\n // otherwise just toggle in class on the two views\r\n expanded.removeClass('show');\r\n closed.addClass('show');\r\n }\r\n $span.toggleClass(this._options.icons.time + ' ' + this._options.icons.date);\r\n\r\n if ($span.hasClass(this._options.icons.date)) {\r\n $link.attr('title', this._options.tooltips.selectDate);\r\n } else {\r\n $link.attr('title', this._options.tooltips.selectTime);\r\n }\r\n }\r\n }\r\n break;\r\n case 'showPicker':\r\n this.widget.find('.timepicker > div:not(.timepicker-picker)').hide();\r\n this.widget.find('.timepicker .timepicker-picker').show();\r\n break;\r\n case 'showHours':\r\n this.widget.find('.timepicker .timepicker-picker').hide();\r\n this.widget.find('.timepicker .timepicker-hours').show();\r\n break;\r\n case 'showMinutes':\r\n this.widget.find('.timepicker .timepicker-picker').hide();\r\n this.widget.find('.timepicker .timepicker-minutes').show();\r\n break;\r\n case 'showSeconds':\r\n this.widget.find('.timepicker .timepicker-picker').hide();\r\n this.widget.find('.timepicker .timepicker-seconds').show();\r\n break;\r\n case 'selectHour':\r\n {\r\n var hour = parseInt($(e.target).text(), 10);\r\n\r\n if (!this.use24Hours) {\r\n if (lastPicked.hours() >= 12) {\r\n if (hour !== 12) {\r\n hour += 12;\r\n }\r\n } else {\r\n if (hour === 12) {\r\n hour = 0;\r\n }\r\n }\r\n }\r\n this._setValue(lastPicked.clone().hours(hour), this._getLastPickedDateIndex());\r\n if (!this._isEnabled('a') && !this._isEnabled('m') && !this._options.keepOpen && !this._options.inline) {\r\n this.hide();\r\n } else {\r\n this._doAction(e, 'showPicker');\r\n }\r\n break;\r\n }\r\n case 'selectMinute':\r\n this._setValue(lastPicked.clone().minutes(parseInt($(e.target).text(), 10)), this._getLastPickedDateIndex());\r\n if (!this._isEnabled('a') && !this._isEnabled('s') && !this._options.keepOpen && !this._options.inline) {\r\n this.hide();\r\n } else {\r\n this._doAction(e, 'showPicker');\r\n }\r\n break;\r\n case 'selectSecond':\r\n this._setValue(lastPicked.clone().seconds(parseInt($(e.target).text(), 10)), this._getLastPickedDateIndex());\r\n if (!this._isEnabled('a') && !this._options.keepOpen && !this._options.inline) {\r\n this.hide();\r\n } else {\r\n this._doAction(e, 'showPicker');\r\n }\r\n break;\r\n case 'clear':\r\n this.clear();\r\n break;\r\n case 'close':\r\n this.hide();\r\n break;\r\n case 'today':\r\n {\r\n var todaysDate = this.getMoment();\r\n if (this._isValid(todaysDate, 'd')) {\r\n this._setValue(todaysDate, this._getLastPickedDateIndex());\r\n }\r\n break;\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n //public\r\n\r\n\r\n TempusDominusBootstrap4.prototype.hide = function hide() {\r\n var transitioning = false;\r\n if (!this.widget) {\r\n return;\r\n }\r\n // Ignore event if in the middle of a picker transition\r\n this.widget.find('.collapse').each(function () {\r\n var collapseData = $(this).data('collapse');\r\n if (collapseData && collapseData.transitioning) {\r\n transitioning = true;\r\n return false;\r\n }\r\n return true;\r\n });\r\n if (transitioning) {\r\n return;\r\n }\r\n if (this.component && this.component.hasClass('btn')) {\r\n this.component.toggleClass('active');\r\n }\r\n this.widget.hide();\r\n\r\n $(window).off('resize', this._place());\r\n this.widget.off('click', '[data-action]');\r\n this.widget.off('mousedown', false);\r\n\r\n this.widget.remove();\r\n this.widget = false;\r\n\r\n this._notifyEvent({\r\n type: DateTimePicker.Event.HIDE,\r\n date: this._getLastPickedDate().clone()\r\n });\r\n\r\n if (this.input !== undefined) {\r\n this.input.blur();\r\n }\r\n\r\n this._viewDate = this._getLastPickedDate().clone();\r\n };\r\n\r\n TempusDominusBootstrap4.prototype.show = function show() {\r\n var currentMoment = void 0;\r\n var useCurrentGranularity = {\r\n 'year': function year(m) {\r\n return m.month(0).date(1).hours(0).seconds(0).minutes(0);\r\n },\r\n 'month': function month(m) {\r\n return m.date(1).hours(0).seconds(0).minutes(0);\r\n },\r\n 'day': function day(m) {\r\n return m.hours(0).seconds(0).minutes(0);\r\n },\r\n 'hour': function hour(m) {\r\n return m.seconds(0).minutes(0);\r\n },\r\n 'minute': function minute(m) {\r\n return m.seconds(0);\r\n }\r\n };\r\n\r\n if (this.input !== undefined) {\r\n if (this.input.prop('disabled') || !this._options.ignoreReadonly && this.input.prop('readonly') || this.widget) {\r\n return;\r\n }\r\n if (this.input.val() !== undefined && this.input.val().trim().length !== 0) {\r\n this._setValue(this._parseInputDate(this.input.val().trim()), 0);\r\n } else if (this.unset && this._options.useCurrent) {\r\n currentMoment = this.getMoment();\r\n if (typeof this._options.useCurrent === 'string') {\r\n currentMoment = useCurrentGranularity[this._options.useCurrent](currentMoment);\r\n }\r\n this._setValue(currentMoment, 0);\r\n }\r\n } else if (this.unset && this._options.useCurrent) {\r\n currentMoment = this.getMoment();\r\n if (typeof this._options.useCurrent === 'string') {\r\n currentMoment = useCurrentGranularity[this._options.useCurrent](currentMoment);\r\n }\r\n this._setValue(currentMoment, 0);\r\n }\r\n\r\n this.widget = this._getTemplate();\r\n\r\n this._fillDow();\r\n this._fillMonths();\r\n\r\n this.widget.find('.timepicker-hours').hide();\r\n this.widget.find('.timepicker-minutes').hide();\r\n this.widget.find('.timepicker-seconds').hide();\r\n\r\n this._update();\r\n this._showMode();\r\n\r\n $(window).on('resize', { picker: this }, this._place);\r\n this.widget.on('click', '[data-action]', $.proxy(this._doAction, this)); // this handles clicks on the widget\r\n this.widget.on('mousedown', false);\r\n\r\n if (this.component && this.component.hasClass('btn')) {\r\n this.component.toggleClass('active');\r\n }\r\n this._place();\r\n this.widget.show();\r\n if (this.input !== undefined && this._options.focusOnShow && !this.input.is(':focus')) {\r\n this.input.focus();\r\n }\r\n\r\n this._notifyEvent({\r\n type: DateTimePicker.Event.SHOW\r\n });\r\n };\r\n\r\n TempusDominusBootstrap4.prototype.destroy = function destroy() {\r\n this.hide();\r\n //todo doc off?\r\n this._element.removeData(DateTimePicker.DATA_KEY);\r\n this._element.removeData('date');\r\n };\r\n\r\n TempusDominusBootstrap4.prototype.disable = function disable() {\r\n this.hide();\r\n if (this.component && this.component.hasClass('btn')) {\r\n this.component.addClass('disabled');\r\n }\r\n if (this.input !== undefined) {\r\n this.input.prop('disabled', true); //todo disable this/comp if input is null\r\n }\r\n };\r\n\r\n TempusDominusBootstrap4.prototype.enable = function enable() {\r\n if (this.component && this.component.hasClass('btn')) {\r\n this.component.removeClass('disabled');\r\n }\r\n if (this.input !== undefined) {\r\n this.input.prop('disabled', false); //todo enable comp/this if input is null\r\n }\r\n };\r\n\r\n TempusDominusBootstrap4.prototype.toolbarPlacement = function toolbarPlacement(_toolbarPlacement) {\r\n if (arguments.length === 0) {\r\n return this._options.toolbarPlacement;\r\n }\r\n\r\n if (typeof _toolbarPlacement !== 'string') {\r\n throw new TypeError('toolbarPlacement() expects a string parameter');\r\n }\r\n if (toolbarPlacements.indexOf(_toolbarPlacement) === -1) {\r\n throw new TypeError('toolbarPlacement() parameter must be one of (' + toolbarPlacements.join(', ') + ') value');\r\n }\r\n this._options.toolbarPlacement = _toolbarPlacement;\r\n\r\n if (this.widget) {\r\n this.hide();\r\n this.show();\r\n }\r\n };\r\n\r\n TempusDominusBootstrap4.prototype.widgetPositioning = function widgetPositioning(_widgetPositioning) {\r\n if (arguments.length === 0) {\r\n return $.extend({}, this._options.widgetPositioning);\r\n }\r\n\r\n if ({}.toString.call(_widgetPositioning) !== '[object Object]') {\r\n throw new TypeError('widgetPositioning() expects an object variable');\r\n }\r\n if (_widgetPositioning.horizontal) {\r\n if (typeof _widgetPositioning.horizontal !== 'string') {\r\n throw new TypeError('widgetPositioning() horizontal variable must be a string');\r\n }\r\n _widgetPositioning.horizontal = _widgetPositioning.horizontal.toLowerCase();\r\n if (horizontalModes.indexOf(_widgetPositioning.horizontal) === -1) {\r\n throw new TypeError('widgetPositioning() expects horizontal parameter to be one of (' + horizontalModes.join(', ') + ')');\r\n }\r\n this._options.widgetPositioning.horizontal = _widgetPositioning.horizontal;\r\n }\r\n if (_widgetPositioning.vertical) {\r\n if (typeof _widgetPositioning.vertical !== 'string') {\r\n throw new TypeError('widgetPositioning() vertical variable must be a string');\r\n }\r\n _widgetPositioning.vertical = _widgetPositioning.vertical.toLowerCase();\r\n if (verticalModes.indexOf(_widgetPositioning.vertical) === -1) {\r\n throw new TypeError('widgetPositioning() expects vertical parameter to be one of (' + verticalModes.join(', ') + ')');\r\n }\r\n this._options.widgetPositioning.vertical = _widgetPositioning.vertical;\r\n }\r\n this._update();\r\n };\r\n\r\n TempusDominusBootstrap4.prototype.widgetParent = function widgetParent(_widgetParent) {\r\n if (arguments.length === 0) {\r\n return this._options.widgetParent;\r\n }\r\n\r\n if (typeof _widgetParent === 'string') {\r\n _widgetParent = $(_widgetParent);\r\n }\r\n\r\n if (_widgetParent !== null && typeof _widgetParent !== 'string' && !(_widgetParent instanceof $)) {\r\n throw new TypeError('widgetParent() expects a string or a jQuery object parameter');\r\n }\r\n\r\n this._options.widgetParent = _widgetParent;\r\n if (this.widget) {\r\n this.hide();\r\n this.show();\r\n }\r\n };\r\n\r\n //static\r\n\r\n\r\n TempusDominusBootstrap4._jQueryHandleThis = function _jQueryHandleThis(me, option, argument) {\r\n var data = $(me).data(DateTimePicker.DATA_KEY);\r\n if ((typeof option === 'undefined' ? 'undefined' : _typeof(option)) === 'object') {\r\n $.extend({}, DateTimePicker.Default, option);\r\n }\r\n\r\n if (!data) {\r\n data = new TempusDominusBootstrap4($(me), option);\r\n $(me).data(DateTimePicker.DATA_KEY, data);\r\n }\r\n\r\n if (typeof option === 'string') {\r\n if (data[option] === undefined) {\r\n throw new Error('No method named \"' + option + '\"');\r\n }\r\n if (argument === undefined) {\r\n return data[option]();\r\n } else {\r\n return data[option](argument);\r\n }\r\n }\r\n };\r\n\r\n TempusDominusBootstrap4._jQueryInterface = function _jQueryInterface(option, argument) {\r\n if (this.length === 1) {\r\n return TempusDominusBootstrap4._jQueryHandleThis(this[0], option, argument);\r\n }\r\n return this.each(function () {\r\n TempusDominusBootstrap4._jQueryHandleThis(this, option, argument);\r\n });\r\n };\r\n\r\n return TempusDominusBootstrap4;\r\n }(DateTimePicker);\r\n\r\n /**\r\n * ------------------------------------------------------------------------\r\n * jQuery\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\n\r\n $(document).on(DateTimePicker.Event.CLICK_DATA_API, DateTimePicker.Selector.DATA_TOGGLE, function () {\r\n var $target = getSelectorFromElement($(this));\r\n if ($target.length === 0) {\r\n return;\r\n }\r\n TempusDominusBootstrap4._jQueryInterface.call($target, 'toggle');\r\n }).on(DateTimePicker.Event.CHANGE, '.' + DateTimePicker.ClassName.INPUT, function (event) {\r\n var $target = getSelectorFromElement($(this));\r\n if ($target.length === 0) {\r\n return;\r\n }\r\n TempusDominusBootstrap4._jQueryInterface.call($target, '_change', event);\r\n }).on(DateTimePicker.Event.BLUR, '.' + DateTimePicker.ClassName.INPUT, function (event) {\r\n var $target = getSelectorFromElement($(this)),\r\n config = $target.data(DateTimePicker.DATA_KEY);\r\n if ($target.length === 0) {\r\n return;\r\n }\r\n if (config._options.debug || window.debug) {\r\n return;\r\n }\r\n TempusDominusBootstrap4._jQueryInterface.call($target, 'hide', event);\r\n }).on(DateTimePicker.Event.KEYDOWN, '.' + DateTimePicker.ClassName.INPUT, function (event) {\r\n var $target = getSelectorFromElement($(this));\r\n if ($target.length === 0) {\r\n return;\r\n }\r\n TempusDominusBootstrap4._jQueryInterface.call($target, '_keydown', event);\r\n }).on(DateTimePicker.Event.KEYUP, '.' + DateTimePicker.ClassName.INPUT, function (event) {\r\n var $target = getSelectorFromElement($(this));\r\n if ($target.length === 0) {\r\n return;\r\n }\r\n TempusDominusBootstrap4._jQueryInterface.call($target, '_keyup', event);\r\n }).on(DateTimePicker.Event.FOCUS, '.' + DateTimePicker.ClassName.INPUT, function (event) {\r\n var $target = getSelectorFromElement($(this)),\r\n config = $target.data(DateTimePicker.DATA_KEY);\r\n if ($target.length === 0) {\r\n return;\r\n }\r\n if (!config._options.allowInputToggle) {\r\n return;\r\n }\r\n TempusDominusBootstrap4._jQueryInterface.call($target, 'show', event);\r\n });\r\n\r\n $.fn[DateTimePicker.NAME] = TempusDominusBootstrap4._jQueryInterface;\r\n $.fn[DateTimePicker.NAME].Constructor = TempusDominusBootstrap4;\r\n $.fn[DateTimePicker.NAME].noConflict = function () {\r\n $.fn[DateTimePicker.NAME] = JQUERY_NO_CONFLICT;\r\n return TempusDominusBootstrap4._jQueryInterface;\r\n };\r\n\r\n return TempusDominusBootstrap4;\r\n}(jQuery);\r\n\r\n}();\r\n","/**\r\n * @ngdoc module\r\n * @name \r\n * @description\r\n * \r\n */\r\nangular.module('afi.components', [\r\n 'afi.components.autocompleteTif',\r\n 'afi.components.barTif',\r\n 'afi.components.carouselTif',\r\n 'afi.components.datepickerTif',\r\n 'afi.components.datepicker2Tif',\r\n 'afi.components.selectTif',\r\n 'afi.components.sliderTif',\r\n 'afi.components.sortableTif',\r\n 'afi.components.switchtif',\r\n 'afi.components.switch2Tif',\r\n 'afi.components.stepprogressbar',\r\n]);","angular.module('afi.components.autocompleteTif', [])\r\n .directive('autocompleteTif', function () {\r\n return {\r\n restrict: 'AE',\r\n scope: {\r\n config: \"=config\",\r\n value: \"=model\"\r\n },\r\n link: function (scope, elem, attrs) {\r\n $(elem).autocomplete({\r\n /*START*/\r\n source: function (request, response) {\r\n if (scope.config != undefined && scope.config.getData != undefined) {\r\n scope.config.getData(request.term, response);\r\n }\r\n },\r\n select: function (e, i) {\r\n scope.value = i.item.label;\r\n\r\n if (scope.config != undefined && scope.config.selectEvent != undefined) {\r\n scope.config.selectEvent(i);\r\n scope.$apply();\r\n }\r\n },\r\n minLength: 0\r\n /*END*/\r\n }).bind('focus', function () { $(this).autocomplete(\"search\"); });\r\n\r\n }\r\n };\r\n })\r\n .directive('autocompleteTifLocal', function () {\r\n return {\r\n restrict: 'AE',\r\n scope: {\r\n config: \"=config\",\r\n value: \"=model\",\r\n data: \"=data\",\r\n match: \"=match\"\r\n },\r\n link: function (scope, elem, attrs) {\r\n $(elem).autocomplete({\r\n /*START*/\r\n source: function (request, response) {\r\n if (scope.config != undefined) {\r\n var matches = $.map(scope.data, function (item) {\r\n var requestSplit = request.term.trim().split(' ');\r\n\r\n var error = false;\r\n for (var i = 0; i < requestSplit.length; i++) {\r\n if (Afi.Utilities.removeDiacritics(item.Value).toUpperCase().indexOf(Afi.Utilities.removeDiacritics(requestSplit[i]).toUpperCase()) === -1) {\r\n error = true;\r\n break;\r\n }\r\n }\r\n\r\n if (!error) {\r\n var countSpaces = requestSplit.length - 1;\r\n var aux = item.Value.split(' ').length - 1;\r\n\r\n if (!(countSpaces <= aux) && countSpaces > 0) {\r\n error = true;\r\n }\r\n }\r\n\r\n\t\t\t\t\t\t\t\t\t\t if (!error) {\r\n\t\t\t\t\t\t\t\t\t\t\t return {\r\n\t\t\t\t\t\t\t\t\t\t\t\t label: item.Value,\r\n\t\t\t\t\t\t\t\t\t\t\t\t val: item.Key,\r\n\t\t\t\t\t\t\t\t\t\t\t\t imgId: item.imgId\r\n }\r\n }\r\n });\r\n\r\n response(matches);\r\n }\r\n },\r\n create: function () {\r\n if (scope.match != undefined) {\r\n $(this).data('ui-autocomplete')._renderItem = scope.match;\r\n }\r\n },\r\n select: function (e, i) {\r\n scope.value = i.item.label;\r\n\r\n if (scope.config != undefined && scope.config.selectEvent != undefined) {\r\n scope.config.selectEvent(i);\r\n scope.$apply();\r\n }\r\n },\r\n open: function (e, i) {\r\n //Solución para que en iOS no haya que hacer doble click en la opción para que se ejecute el evento select\r\n if (navigator.userAgent.match(/(iPod|iPhone|iPad)/)) {\r\n $('.ui-autocomplete').off('menufocus hover mouseover mouseenter');\r\n }\r\n },\r\n minLength: 0,\r\n disabled: true // Para evitar que en IE se abra solo al cargar la pagina\r\n /*END*/\r\n }).bind('focus', function () { $(this).autocomplete(\"option\", \"disabled\", false); $(this).autocomplete(\"search\"); });\r\n\r\n\r\n\t\t\t\t\t// RenderItem: creamos el elemento\r\n\t\t\t\t\t$(elem).data(\"ui-autocomplete\")._renderItem = function (ul, item) {\r\n\r\n\t\t\t\t\t\tvar $li = $('
  • '),\r\n $img = $('');\r\n\r\n\t\t\t\t\t\t$li.attr('data-value', item.label);\r\n\t\t\t\t\t\t$li.append('');\r\n\r\n\t\t\t\t\t\t// Si nos pasan una src, la creamos antes del \r\n\t\t\t\t\t\t// li\r\n\t\t\t\t\t\tif (item.imgId != undefined) {\r\n\t\t\t\t\t\t\t$img.attr({\r\n\t\t\t\t\t\t\t\tclass: item.imgId,\r\n\t\t\t\t\t\t\t\talt: item.label\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t$li.find('a').append($img).append(item.label);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t$li.find('a').append(item.label);\r\n\t\t\t\t\t\t}\t\t\t\r\n\r\n\t\t\t\t\t\treturn $li.appendTo(ul);\r\n\t\t\t\t\t};\r\n\r\n }\r\n };\r\n });","angular.module('afi.components.barTif', [])\r\n .directive('barTif', function () {\r\n return {\r\n restrict: 'AE',\r\n scope: {\r\n config: \"=config\",\r\n value: \"=model\"\r\n },\r\n link: function (scope, elem, attrs) {\r\n scope.$watch('config.max', function (configMax) {\r\n update();\r\n });\r\n scope.$watch('config.clientProductsQuantity', function (clientProductsQuantity) {\r\n paintLegend2();\r\n });\r\n scope.$watch('value', function (value) {\r\n update();\r\n });\r\n\r\n var update = function () {\r\n var value = 0;\r\n if (scope.value < scope.config.min)\r\n value = scope.config.min;\r\n else if (scope.value > scope.config.max)\r\n value = scope.config.max;\r\n else\r\n value = scope.value;\r\n\r\n //Create divs\r\n var width2 = ((value - scope.config.min) / (scope.config.max - scope.config.min)) * $(elem).width();\r\n\r\n if (scope.config.max == 0)\r\n width2 = 0.01;\r\n\r\n var minFormatted = jQuery.formatNumber(scope.config.min, { format: \"#,##0\", locale: \"es\" });\r\n var maxFormatted = jQuery.formatNumber(scope.config.max, { format: \"#,##0\", locale: \"es\" });\r\n var valueFormatted = jQuery.formatNumber(value, { format: \"#,##0 €\", locale: \"es\" });\r\n\r\n $(elem).find(\".bar1\").width(width2);\r\n $(elem).find(\".bar1 .barvalue\").html(valueFormatted);\r\n $(elem).find(\".bar2 .barvalue\").html(valueFormatted);\r\n\r\n if (width2 <= $(elem).find(\".bar1 .barvalue\").width()) {\r\n $(elem).find(\".bar1 .barvalue\").hide();\r\n $(elem).find(\".bar2 .barvalue\").show();\r\n } else {\r\n $(elem).find(\".bar2 .barvalue\").hide();\r\n $(elem).find(\".bar1 .barvalue\").show();\r\n }\r\n\r\n $(\"#\" + $(elem).attr(\"id\") + \"_minValue\").html(minFormatted);\r\n $(\"#\" + $(elem).attr(\"id\") + \"_maxValue\").html(maxFormatted);\r\n\r\n };\r\n\r\n var paintBars = function () {\r\n $(elem).html(\"
    \");\r\n\r\n $(elem).find(\".bar1\").width(0.01);\r\n $(elem).find(\".bar1 .barvalue\").hide();\r\n $(elem).find(\".bar2 .barvalue\").hide();\r\n\r\n var minFormatted = jQuery.formatNumber(scope.config.min, { format: \"#,##0\", locale: \"es\" });\r\n var maxFormatted = jQuery.formatNumber(scope.config.max, { format: \"#,##0\", locale: \"es\" });\r\n\r\n $(\"#\" + $(elem).attr(\"id\")).before(\"
    0
    0
    \");\r\n };\r\n\r\n var paintLegend2 = function () {\r\n //Wealth in client products\r\n if (scope.config.clientProductsQuantity != undefined) {\r\n $(\"#legend1\").remove();\r\n width = Math.floor($(elem).width() - ((scope.config.clientProductsQuantity * ($(elem).width())) / scope.config.max));\r\n\r\n\r\n $(elem).after(\"
    \" + scope.config.labelLegend1 + \"
    \\\r\n\t\t\t\t\t\t\t\t\t\t
    \" + scope.config.labelLegend2 + \"
    \\\r\n\t\t\t\t\t\t\t\t\t\t
    \");\r\n\r\n }\r\n }\r\n\r\n paintBars();\r\n }\r\n };\r\n });","/************************/\r\n/* Model (array of objects [{},{}...])\r\n/* Object params: {\r\n/* id (int/string): identificador unico de diapositiva\r\n/* bgImage (string url): url de imagen de fondo (si se quiere)\r\n/* }\r\n/*\r\n/* Config\r\n/* showIndicators (bool): Mostrar indicadores (uno por diapositiva)\r\n/* showControls (bool): Mostrar controles (izquierda derecha)\r\n/* disableControls (bool): Deshabilitar click controles (botones circulares)\r\n/* autoSlide (bool): Habilita/Deshabilita el desplazamiento automatico\r\n/* \r\n/*\r\n/*************************/\r\n\r\nangular.module('afi.components.carouselTif', [])\r\n .directive('carouselTif', ['$timeout', function ($timeout) {\r\n return {\r\n restrict: 'AE',\r\n scope: {\r\n id: \"=id\",\r\n value: \"=model\",\r\n config: \"=config\"\r\n },\r\n transclude: true,\r\n templateUrl: templatesFolder + 'Carousel.html',\r\n controller: function ($scope, $element) {\r\n\r\n var parentScope = this;\r\n\r\n $scope.num_slides = 0;\r\n this.getSlides = function () {\r\n return $scope.num_slides;\r\n }\r\n this.setSlides = function (nSlid) {\r\n $scope.num_slides = nSlid;\r\n }\r\n\r\n this.animateHeight = function () {\r\n $('.carousel-indicators li', this.element).removeClass('active');\r\n $('.carousel-inner .item', this.element).removeClass('active');\r\n $('.carousel-indicators li', this.element).first().addClass('active');\r\n $('.carousel-inner .item', this.element).first().addClass('active');\r\n\r\n $(\".carousel-control\").click(function (e) {\r\n e.preventDefault();\r\n });\r\n }\r\n\r\n\r\n $scope.$on('animateSlideHeight', function () {\r\n $timeout(function () {\r\n parentScope.animateHeight();\r\n });\r\n });\r\n },\r\n link: function (scope, element, attr, ctrl, transclude) {\r\n\r\n /* CONFIGURATION */\r\n var carouselContainer = element.find(\"[id^='carousel-generic_']\");\r\n var carouselIndicators = element.find(\".carousel-indicators\");\r\n var carouselControlLeft = element.find(\".left.carousel-control\");\r\n var carouselControlRight = element.find(\".right.carousel-control\");\r\n\r\n ctrl.carouselContainer = carouselContainer;\r\n ctrl.element = element;\r\n\r\n carouselControlLeft.attr(\"href\", \"#carousel-generic_\" + scope.id);\r\n carouselControlRight.attr(\"href\", \"#carousel-generic_\" + scope.id);\r\n\r\n if (scope.config.disableControls) {\r\n\r\n }\r\n\r\n if (scope.config.autoSlide == false) {\r\n element.carousel({\r\n interval: false\r\n });\r\n }\r\n\r\n // Bind NEXT and PREV functions\r\n scope.$parent.$parent.nextSlide = function (e) {\r\n carouselControlRight.click();\r\n };\r\n scope.$parent.$parent.prevSlide = function (e) {\r\n carouselControlLeft.click();\r\n }\r\n scope.$parent.$parent.setSlide = function (num) {\r\n element.carousel(num);\r\n }\r\n\r\n scope.num_slides = ctrl.getSlides();\r\n\r\n scope.range = function (n) {\r\n return new Array(n);\r\n };\r\n /* END CONFIGURATION */\r\n\r\n $timeout(function () {\r\n ctrl.animateHeight();\r\n });\r\n }\r\n }\r\n }])\r\n .directive('carouselTifItem', ['$timeout', function ($timeout) {\r\n return {\r\n restrict: 'E',\r\n require: '^?carouselTif',\r\n scope: {\r\n },\r\n transclude: true,\r\n controller: function ($scope, $element) {\r\n },\r\n templateUrl: templatesFolder + 'Carousel-Item.html',\r\n link: function (scope, element, attr, parentCtrl, transclude) {\r\n parentCtrl.setSlides(parentCtrl.getSlides() + 1);\r\n }\r\n }\r\n }]);","angular.module('afi.components.datepickerTif', [])\r\n\t.directive('datepickerTif', function () {\r\n\t\treturn {\r\n\t\t\trequire: 'ngModel',\r\n\t\t\tscope: {\r\n\t\t\t\tvalue: \"=model\",\r\n\t\t\t\tconfig: \"=config\"\r\n\t\t\t},\r\n\t\t\tlink: function (scope, element, attrs, ngModelCtrl) {\r\n\t\t\t\tvar dayMin = 0;\r\n\t\t\t\tvar monthMin = 0;\r\n\t\t\t\tvar yearMin = 0;\r\n\t\t\t\tvar dayMax = 0;\r\n\t\t\t\tvar monthMax = 0;\r\n\t\t\t\tvar yearMax = 0;\r\n\r\n\t\t\t\tif (scope.config.min != undefined && scope.config.min != '') {\r\n\t\t\t\t\tvar dateMinArray = scope.config.min.split('/');\r\n\r\n\t\t\t\t\tif (dateMinArray.length == 3) {\r\n\t\t\t\t\t\tdayMin = (dateMinArray[0].length == 1) ? \"0\" + dateMinArray[0] : dateMinArray[0];\r\n\t\t\t\t\t\tmonthMin = (dateMinArray[1].length == 1) ? \"0\" + dateMinArray[1] : dateMinArray[1];\r\n\t\t\t\t\t\tyearMin = dateMinArray[2];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (scope.config.max != undefined && scope.config.max != '') {\r\n\t\t\t\t\tvar dateMaxArray = scope.config.max.split('/');\r\n\r\n\t\t\t\t\tif (dateMaxArray.length == 3) {\r\n\t\t\t\t\t\tdayMax = (dateMaxArray[0].length == 1) ? \"0\" + dateMaxArray[0] : dateMaxArray[0];\r\n\t\t\t\t\t\tmonthMax = (dateMaxArray[1].length == 1) ? \"0\" + dateMaxArray[1] : dateMaxArray[1];\r\n\t\t\t\t\t\tyearMax = dateMaxArray[2];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/*ADD PARAMETERS DATALAYER*/\r\n\t\t\t\t$(element).attr(\"data-tagtype\", \"textbox\");\r\n\r\n\t\t\t\t/*Set region*/\r\n\t\t\t\ttry {\r\n\t\t\t\t\tif (langParam != undefined && $.datepicker.regional[langParam] != undefined)\r\n\t\t\t\t\t\t$.datepicker.setDefaults($.datepicker.regional[langParam]);\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\t$.datepicker.setDefaults($.datepicker.regional['es']);\r\n\t\t\t\t} catch (ex) {\r\n\t\t\t\t\t$.datepicker.setDefaults($.datepicker.regional['es']);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/*Datepicker*/\r\n\t\t\t\tif (!Afi.Utilities.isMobile() && scope.config.useDatepicker) {\r\n\t\t\t\t\tif (scope.config.displayCalendarButton) {\r\n\t\t\t\t\t\t$(element).datepicker({\r\n\t\t\t\t\t\t\tshowOn: \"button\",\r\n\t\t\t\t\t\t\tchangeMonth: true,\r\n\t\t\t\t\t\t\tchangeYear: true,\r\n\t\t\t\t\t\t\tyearRange: ((yearMin == 0) ? \"1900\" : yearMin) + \":\" + ((yearMax == 0) ? new Date().getFullYear() : yearMax),\r\n\t\t\t\t\t\t\tbeforeShow: function (input, inst) {\r\n\t\t\t\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\t\t\t\t$('.ui-datepicker').css('z-index', 99999999999999);\r\n\t\t\t\t\t\t\t\t}, 0);\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tbuttonImage: scope.config.pathCalendarButton,\r\n\t\t\t\t\t\t\tbuttonImageOnly: true,\r\n\t\t\t\t\t\t\tbuttonText: \"\",\r\n\t\t\t\t\t\t\tminDate: (yearMin == 0) ? new Date(1900, 0, 1) : new Date(yearMin, monthMin - 1, dayMin),\r\n\t\t\t\t\t\t\tmaxDate: (yearMax == 0) ? new Date() : new Date(yearMax, monthMax - 1, dayMax),\r\n\t\t\t\t\t\t\tonSelect: function (dateText) {\r\n\t\t\t\t\t\t\t\tvar dateAux = dateText.split('/');\r\n\t\t\t\t\t\t\t\tvar date = new Date(dateAux[1] + \"/\" + dateAux[0] + \"/\" + dateAux[2]);\r\n\t\t\t\t\t\t\t\tscope.config.dateObj = date;\r\n\t\t\t\t\t\t\t\tscope.config.dateStr = new Date(date.valueOf() - (date.getTimezoneOffset() * 60000)).toISOString();\r\n\t\t\t\t\t\t\t\tscope.value = dateAux[0] + \"/\" + dateAux[1] + \"/\" + dateAux[2];\r\n\t\t\t\t\t\t\t\tscope.$apply();\r\n\t\t\t\t\t\t\t\tif (scope.config.selectEvent != undefined)\r\n\t\t\t\t\t\t\t\t\tscope.config.selectEvent();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$(element).datepicker({\r\n\t\t\t\t\t\t\tchangeMonth: true,\r\n\t\t\t\t\t\t\tchangeYear: true,\r\n\t\t\t\t\t\t\tbeforeShow: function (input, inst) {\r\n\t\t\t\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\t\t\t\t$('.ui-datepicker').css('z-index', 99999999999999);\r\n\t\t\t\t\t\t\t\t}, 0);\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tyearRange: ((yearMin == 0) ? \"1900\" : yearMin) + \":\" + ((yearMax == 0) ? new Date().getFullYear() : yearMax),\r\n\t\t\t\t\t\t\tminDate: (yearMin == 0) ? new Date(1900, 0, 1) : new Date(yearMin, monthMin - 1, dayMin),\r\n\t\t\t\t\t\t\tmaxDate: (yearMax == 0) ? new Date() : new Date(yearMax, monthMax - 1, dayMax),\r\n\t\t\t\t\t\t\tonSelect: function (dateText) {\r\n\t\t\t\t\t\t\t\tvar dateAux = dateText.split('/');\r\n\t\t\t\t\t\t\t\tvar date = new Date(dateAux[1] + \"/\" + dateAux[0] + \"/\" + dateAux[2]);\r\n\t\t\t\t\t\t\t\tscope.config.dateObj = date;\r\n\t\t\t\t\t\t\t\tscope.config.dateStr = new Date(date.valueOf() - (date.getTimezoneOffset() * 60000)).toISOString();\r\n\t\t\t\t\t\t\t\tscope.value = dateAux[0] + \"/\" + dateAux[1] + \"/\" + dateAux[2];\r\n\t\t\t\t\t\t\t\tscope.$apply();\r\n\t\t\t\t\t\t\t\tif (scope.config.selectEvent != undefined)\r\n\t\t\t\t\t\t\t\t\tscope.config.selectEvent();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/*Change type when it is mobile*/\r\n\t\t\t\tif (Afi.Utilities.isMobile() && navigator.userAgent.search(\"Firefox\") == -1) {\r\n\t\t\t\t\tdocument.getElementById(ngModelCtrl.$name).type = \"date\";\r\n\r\n\t\t\t\t\tif (yearMin > 0)\r\n\t\t\t\t\t\t$(element).attr(\"min\", yearMin + \"-\" + monthMin + \"-\" + dayMin);\r\n\r\n\t\t\t\t\tif (yearMax > 0)\r\n\t\t\t\t\t\t$(element).attr(\"max\", yearMax + \"-\" + monthMax + \"-\" + dayMax);\r\n\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (document.getElementById(ngModelCtrl.$name) != null)\r\n\t\t\t\t\t\tdocument.getElementById(ngModelCtrl.$name).type = \"text\";\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//Check if the initial date is between min and max\r\n\t\t\t\tvar dateMin = new Date(monthMin + \"/\" + dayMin + \"/\" + yearMin);\r\n\t\t\t\tvar dateMax = new Date(monthMax + \"/\" + dayMax + \"/\" + yearMax);\r\n\r\n\t\t\t\t/*Set initial value*/\r\n\t\t\t\tif (attrs.initialvalue != undefined && attrs.initialvalue != \"\") {\r\n\t\t\t\t\tvar dateAux = attrs.initialvalue.split('/');\r\n\t\t\t\t\tif (document.getElementById(ngModelCtrl.$name) != undefined && document.getElementById(ngModelCtrl.$name).type == \"date\") {\r\n\t\t\t\t\t\tscope.value = dateAux[2] + \"-\" + dateAux[1] + \"-\" + dateAux[0];\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tscope.value = attrs.initialvalue;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvar date = new Date(dateAux[1] + \"/\" + dateAux[0] + \"/\" + dateAux[2]);\r\n\t\t\t\t\tscope.config.dateObj = date;\r\n\t\t\t\t\tscope.config.dateStr = new Date(date.valueOf() - (date.getTimezoneOffset() * 60000)).toISOString();\r\n\r\n\r\n\t\t\t\t\t//Check if the initial date is between min and max\r\n\t\t\t\t\tvar dateOut = date;\r\n\r\n\t\t\t\t\tdateOut = Afi.Date.dateInRange(date, dateMin, dateMax);\r\n\t\t\t\t\tscope.config.dateObj = dateOut;\r\n\t\t\t\t\tscope.config.dateStr = new Date(dateOut.valueOf() - (dateOut.getTimezoneOffset() * 60000)).toISOString();\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/*Watch ng-model*/\r\n\t\t\t\tscope.$watch('value', function (value) {\r\n\t\t\t\t\tif (value != undefined) {\r\n\t\t\t\t\t\tvar dayMin = 0;\r\n\t\t\t\t\t\tvar monthMin = 0;\r\n\t\t\t\t\t\tvar yearMin = 0;\r\n\t\t\t\t\t\tvar dayMax = 0;\r\n\t\t\t\t\t\tvar monthMax = 0;\r\n\t\t\t\t\t\tvar yearMax = 0;\r\n\r\n\t\t\t\t\t\tif (scope.config.min != undefined && scope.config.min != '') {\r\n\t\t\t\t\t\t\tvar dateMinArray = scope.config.min.split('/');\r\n\r\n\t\t\t\t\t\t\tif (dateMinArray.length == 3) {\r\n\t\t\t\t\t\t\t\tdayMin = (dateMinArray[0].length == 1) ? \"0\" + dateMinArray[0] : dateMinArray[0];\r\n\t\t\t\t\t\t\t\tmonthMin = (dateMinArray[1].length == 1) ? \"0\" + dateMinArray[1] : dateMinArray[1];\r\n\t\t\t\t\t\t\t\tyearMin = dateMinArray[2];\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (scope.config.max != undefined && scope.config.max != '') {\r\n\t\t\t\t\t\t\tvar dateMaxArray = scope.config.max.split('/');\r\n\r\n\t\t\t\t\t\t\tif (dateMaxArray.length == 3) {\r\n\t\t\t\t\t\t\t\tdayMax = (dateMaxArray[0].length == 1) ? \"0\" + dateMaxArray[0] : dateMaxArray[0];\r\n\t\t\t\t\t\t\t\tmonthMax = (dateMaxArray[1].length == 1) ? \"0\" + dateMaxArray[1] : dateMaxArray[1];\r\n\t\t\t\t\t\t\t\tyearMax = dateMaxArray[2];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar dateMin = new Date(monthMin + \"/\" + dayMin + \"/\" + yearMin);\r\n\t\t\t\t\t\tvar dateMax = new Date(monthMax + \"/\" + dayMax + \"/\" + yearMax);\r\n\r\n\t\t\t\t\t\tif (yearMax == 0) {\r\n\t\t\t\t\t\t\tdateMax = new Date();\r\n\t\t\t\t\t\t}\r\n\r\n\r\n\t\t\t\t\t\tif (document.getElementById(ngModelCtrl.$name) != undefined && document.getElementById(ngModelCtrl.$name).type == \"date\") {\r\n\t\t\t\t\t\t\tvar dateArray = value.split('-');\r\n\t\t\t\t\t\t\tif (dateArray.length == 3) {\r\n\t\t\t\t\t\t\t\tvar date = new Date(dateArray[1] + \"/\" + dateArray[2] + \"/\" + dateArray[0]);\r\n\t\t\t\t\t\t\t\tscope.config.dateObj = date;\r\n\t\t\t\t\t\t\t\tscope.config.dateStr = new Date(date.valueOf() - (date.getTimezoneOffset() * 60000)).toISOString();\r\n\r\n\t\t\t\t\t\t\t\tif (!Afi.Date.validateDate(dateArray[2] + \"/\" + dateArray[1] + \"/\" + dateArray[0], 'dd/mm/yyyy'))\r\n\t\t\t\t\t\t\t\t\tscope.config.invalidInput = 1;\r\n\t\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\t\tscope.config.invalidInput = 0;\r\n\r\n\t\t\t\t\t\t\t\t//Check if the date is between min and max\r\n\t\t\t\t\t\t\t\tif (Afi.Date.validateDate(dateArray[2] + \"/\" + dateArray[1] + \"/\" + dateArray[0], 'dd/mm/yyyy')) {\r\n\t\t\t\t\t\t\t\t\tdateOut = date;\r\n\r\n\t\t\t\t\t\t\t\t\tdateOut = Afi.Date.dateInRange(date, dateMin, dateMax);\r\n\t\t\t\t\t\t\t\t\tscope.config.dateObj = dateOut;\r\n\t\t\t\t\t\t\t\t\tscope.config.dateStr = new Date(dateOut.valueOf() - (dateOut.getTimezoneOffset() * 60000)).toISOString();\r\n\r\n\t\t\t\t\t\t\t\t\tif (date != dateOut)\r\n\t\t\t\t\t\t\t\t\t\tscope.config.invalidInput = 2;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tscope.config.invalidInput = 1;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tvar dateAux = value.split('/');\r\n\t\t\t\t\t\t\tif (dateAux.length == 3) {\r\n\t\t\t\t\t\t\t\tvar date = new Date(dateAux[1] + \"/\" + dateAux[0] + \"/\" + dateAux[2]);\r\n\t\t\t\t\t\t\t\tscope.config.dateObj = date;\r\n\t\t\t\t\t\t\t\tscope.config.dateStr = new Date(date.valueOf() - (date.getTimezoneOffset() * 60000)).toISOString();\r\n\r\n\t\t\t\t\t\t\t\tif (!Afi.Date.validateDate(dateAux[0] + \"/\" + dateAux[1] + \"/\" + dateAux[2], 'dd/mm/yyyy'))\r\n\t\t\t\t\t\t\t\t\tscope.config.invalidInput = 1;\r\n\t\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\t\tscope.config.invalidInput = 0;\r\n\r\n\t\t\t\t\t\t\t\t//Check if the date is between min and max\r\n\t\t\t\t\t\t\t\tif (Afi.Date.validateDate(dateAux[0] + \"/\" + dateAux[1] + \"/\" + dateAux[2], 'dd/mm/yyyy')) {\r\n\t\t\t\t\t\t\t\t\tdateOut = date;\r\n\r\n\t\t\t\t\t\t\t\t\tdateOut = Afi.Date.dateInRange(date, dateMin, dateMax);\r\n\t\t\t\t\t\t\t\t\tscope.config.dateObj = dateOut;\r\n\t\t\t\t\t\t\t\t\tscope.config.dateStr = new Date(dateOut.valueOf() - (dateOut.getTimezoneOffset() * 60000)).toISOString();\r\n\r\n\t\t\t\t\t\t\t\t\tif (date != dateOut)\r\n\t\t\t\t\t\t\t\t\t\tscope.config.invalidInput = 2;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tscope.config.invalidInput = 1;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/*Set to invalid*/\r\n\t\t\t\t\t\tif (scope.config.invalidInput > 0) {\r\n\t\t\t\t\t\t\tngModelCtrl.$setValidity('fcsaNumber', false);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tngModelCtrl.$setValidity('fcsaNumber', true);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t};\r\n\t});","angular.module('afi.components.datepicker2Tif', [])\r\n\t.directive('datepicker2Tif', ['$timeout', function ($timeout) {\r\n\t\treturn {\r\n\t\t\trequire: 'ngModel',\r\n\t\t\tscope: {\r\n\t\t\t\tvalue: \"=model\",\r\n\t\t\t\tvalue2: \"=model2\",\r\n\t\t\t\tconfig: \"=config\",\r\n\t\t\t\tcloneConfig: \"=cloneconfig\",\r\n\t\t\t\tinternalId: \"=internalId\"\r\n\t\t\t},\r\n\t\t\tlink: function (scope, element, attrs, ngModelCtrl) {\r\n\t\t\t\tif (scope.cloneConfig == undefined || scope.cloneConfig == false) {\r\n\t\t\t\t\tscope._config = scope.config;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tscope._config = Afi.Utilities.cloneObj(scope.config);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar dayMin = 0;\r\n\t\t\t\tvar monthMin = 0;\r\n\t\t\t\tvar yearMin = 0;\r\n\t\t\t\tvar dayMax = 0;\r\n\t\t\t\tvar monthMax = 0;\r\n\t\t\t\tvar yearMax = 0;\r\n\r\n\t\t\t\tif (scope._config.min != undefined && scope._config.min != '') {\r\n\t\t\t\t\tvar dateMinArray = scope._config.min.split('/');\r\n\r\n\t\t\t\t\tif (dateMinArray.length == 3) {\r\n\t\t\t\t\t\tdayMin = (dateMinArray[0].length == 1) ? \"0\" + dateMinArray[0] : dateMinArray[0];\r\n\t\t\t\t\t\tmonthMin = (dateMinArray[1].length == 1) ? \"0\" + dateMinArray[1] : dateMinArray[1];\r\n\t\t\t\t\t\tyearMin = dateMinArray[2];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (scope._config.max != undefined && scope._config.max != '') {\r\n\t\t\t\t\tvar dateMaxArray = scope._config.max.split('/');\r\n\r\n\t\t\t\t\tif (dateMaxArray.length == 3) {\r\n\t\t\t\t\t\tdayMax = (dateMaxArray[0].length == 1) ? \"0\" + dateMaxArray[0] : dateMaxArray[0];\r\n\t\t\t\t\t\tmonthMax = (dateMaxArray[1].length == 1) ? \"0\" + dateMaxArray[1] : dateMaxArray[1];\r\n\t\t\t\t\t\tyearMax = dateMaxArray[2];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/*ADD PARAMETERS DATALAYER*/\r\n\t\t\t\t$(element).attr(\"data-tagtype\", \"textbox\");\r\n\r\n\t\t\t\t/*Set region*/\r\n\t\t\t\ttry {\r\n\t\t\t\t\tif (langParam != undefined && $.datepicker.regional[langParam] != undefined)\r\n\t\t\t\t\t\t$.datepicker.setDefaults($.datepicker.regional[langParam]);\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\t$.datepicker.setDefaults($.datepicker.regional['es']);\r\n\t\t\t\t} catch (ex) {\r\n\t\t\t\t\t$.datepicker.setDefaults($.datepicker.regional['es']);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/*UPDATE VIEW SAVED IN MODEL*/\r\n\t\t\t\tngModelCtrl.$parsers.unshift(function (viewVal) {\r\n\t\t\t\t\tif (viewVal == undefined) return '';\r\n\r\n\t\t\t\t\tif (Afi.Utilities.isMobile()) {\r\n\t\t\t\t\t\tif (viewVal.includes('-')) {\r\n\t\t\t\t\t\t\tvar inputAux = viewVal.split('-');\r\n\t\t\t\t\t\t\treturn inputAux[2] + '/' + inputAux[1] + '/' + inputAux[0];\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\treturn viewVal;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (scope._config.format == 'MM/YYYY') {\r\n\t\t\t\t\t\treturn \"01/\" + viewVal;\r\n\t\t\t\t\t} else if (scope._config.format == 'YYYY') {\r\n\t\t\t\t\t\treturn \"01/01/\" + viewVal;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\treturn viewVal;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\t/*UPDATE MODEL SAVED IN VIEW*/\r\n\t\t\t\tngModelCtrl.$formatters.push(function (inputValue) {\r\n\t\t\t\t\tif (!inputValue || inputValue === '') {\r\n\t\t\t\t\t\treturn '';\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar inputAux = inputValue.split('/');\r\n\r\n\t\t\t\t\tvar transformedInput = \"\";\r\n\r\n\t\t\t\t\tif (Afi.Utilities.isMobile()) {\r\n\t\t\t\t\t\tvar paramsDate = inputAux.length;\r\n\t\t\t\t\t\tif (paramsDate > 1) {\r\n\r\n\t\t\t\t\t\t\tif (paramsDate == 1) {\r\n\t\t\t\t\t\t\t\ttransformedInput = inputAux[0] + \"-01-01\";\r\n\t\t\t\t\t\t\t} else if (paramsDate == 2) {\r\n\t\t\t\t\t\t\t\ttransformedInput = inputAux[1] + \"-\" + ((inputAux[0].length == 1) ? \"0\" + inputAux[0] : inputAux[0]) + \"-01\";\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\ttransformedInput = inputAux[2] + \"-\" + ((inputAux[1].length == 1) ? \"0\" + inputAux[1] : inputAux[1]) + \"-\" + ((inputAux[0].length == 1) ? \"0\" + inputAux[0] : inputAux[0]);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (transformedInput != inputValue) {\r\n\t\t\t\t\t\t\t\tngModelCtrl.$setViewValue(transformedInput);\r\n\t\t\t\t\t\t\t\tngModelCtrl.$render();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn transformedInput;\r\n\t\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\t\treturn inputValue;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (scope._config.format == 'MM/YYYY') {\r\n\t\t\t\t\t\tif (inputAux[2] !== undefined) {\r\n\t\t\t\t\t\t\ttransformedInput = ((inputAux[1].length == 1) ? \"0\" + inputAux[1] : inputAux[1]) + \"/\" + inputAux[2];\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\ttransformedInput = ((inputAux[0].length == 1) ? \"0\" + inputAux[0] : inputAux[0]) + \"/\" + inputAux[1];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else if (scope._config.format == 'YYYY') {\r\n\t\t\t\t\t\ttransformedInput = inputAux[2];\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tif (inputAux.length === 3) {\r\n\t\t\t\t\t\t\ttransformedInput = ((inputAux[0].length == 1) ? \"0\" + inputAux[0] : inputAux[0]) + \"/\" + ((inputAux[1].length == 1) ? \"0\" + inputAux[1] : inputAux[1]) + \"/\" + inputAux[2];\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (transformedInput != inputValue) {\r\n\t\t\t\t\t\tngModelCtrl.$setViewValue(transformedInput);\r\n\t\t\t\t\t\tngModelCtrl.$render();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn transformedInput;\r\n\t\t\t\t});\r\n\r\n\t\t\t\tvar showErrorMsg = function () {\r\n\t\t\t\t\tif (scope._config.validate != false) {\r\n\t\t\t\t\t\t/*Set to invalid*/\r\n\t\t\t\t\t\tif (scope._config.invalidInput > 0) {\r\n\t\t\t\t\t\t\tngModelCtrl.$setValidity('datepicker2', false);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tngModelCtrl.$setValidity('datepicker2', true);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/*Show Error Message*/\r\n\t\t\t\t\t\tif (scope._config.showErrorMsg) {\r\n\t\t\t\t\t\t\t$(\"#\" + ($(element).attr(\"id\") + \"_error\")).remove();\r\n\t\t\t\t\t\t\tif (scope.value == undefined || scope.value == '') {\r\n\t\t\t\t\t\t\t\t$(element).after(\"\" + scope._config.errorMsg0 + \"\");\r\n\t\t\t\t\t\t\t} else if (scope._config.invalidInput == 1) {\r\n\t\t\t\t\t\t\t\t$(element).after(\"\" + scope._config.errorMsg1 + \"\");\r\n\t\t\t\t\t\t\t} else if (scope._config.invalidInput == 2) {\r\n\t\t\t\t\t\t\t\t$(element).after(\"\" + scope._config.errorMsg2 + \"\");\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/*Datepicker*/\r\n\t\t\t\tif (((!Afi.Utilities.isMobile() && scope._config.format != null) || (scope._config.mobileInputMask && scope._config.format != null)) && !scope._config.useDatepicker) {\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\tvar im = new Inputmask({ alias: 'date', placeholder: scope._config.placerholder, showMaskOnHover: false });\r\n\t\t\t\t\t\tim.mask(element);\r\n\t\t\t\t\t} catch (e) { }\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t\tscope.flagEditDate = true;\r\n\r\n\t\t\t\tchangeEventFunction = function (date, update) {\r\n\t\t\t\t\tif (scope.flagEditDate && update && scope._config.dateObj !== date) {\r\n\t\t\t\t\t\tscope._config.dateObj = date;\r\n\t\t\t\t\t\tscope._config.dateStr = date.format(scope._config.format);\r\n\t\t\t\t\t\tscope.value = scope._config.dateStr;\r\n\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\tif (scope._config.changeEvent) {\r\n\t\t\t\t\t\t\t\tscope._config.changeEvent();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!Afi.Utilities.isMobile() && scope._config.useDatepicker) {\r\n\r\n\t\t\t\t\t/* Create datetimepicker */\r\n\t\t\t\t\tvar date = null;\r\n\t\t\t\t\tvar dateMoment = null;\r\n\t\t\t\t\tif (scope.value !== undefined) {\r\n\t\t\t\t\t\tdate = scope.value;\r\n\r\n\t\t\t\t\t\t/* Pasamos el date a moment. (Siempre viene como string desde las cool directivas) */\r\n\t\t\t\t\t\tdateMoment = moment(date, \"DD/MM/YYYY\");\r\n\t\t\t\t\t}\r\n\r\n\r\n\t\t\t\t\t$(element).datetimepicker({\r\n\t\t\t\t\t\tviewMode: scope._config.viewMode,\r\n\t\t\t\t\t\tformat: scope._config.format,\r\n\t\t\t\t\t\tminDate: scope._config.minDate,\r\n\t\t\t\t\t\tmaxDate: scope._config.maxDate,\r\n\t\t\t\t\t\tlocale: 'es',\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t/* Por defecto el dtp pondria al modelo el valor de maxDate, mejor ponemos el que \r\n\t\t\t\t\t * haya en el modelo pasado, si hay */\r\n\t\t\t\t\t$(element).datetimepicker('date', dateMoment);\r\n\r\n\t\t\t\t\t// Heredero del noHideCalendar, destruimos la funcion hide\r\n\t\t\t\t\tif (scope._config.alwaysOpen === \"true\") {\r\n\t\t\t\t\t\t$(element).data('datetimepicker').hide = function () { };\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Forzar el cerrado cuando se pierda focus\r\n\t\t\t\t\t$(element).focusout(function () {\r\n\t\t\t\t\t\t$(element).datetimepicker(\"hide\");\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t// Ajustamos el data-target dinamicamente (no funciona desde la plantilla html)\r\n\t\t\t\t\t$(element).data(\"target\", \"#\" + scope.internalId + \"_input\");\r\n\r\n\t\t\t\t\t$(element).on(\"change.datetimepicker\", function (e, ev) {\r\n\t\t\t\t\t\tif (ev !== undefined && ev.date.isValid()) {\r\n\t\t\t\t\t\t\tchangeEventFunction(ev.date, true);\r\n\t\t\t\t\t\t} else if (e.date !== undefined) {\r\n\t\t\t\t\t\t\tchangeEventFunction(e.date, true);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tif (scope._config.updateEvent) {\r\n\t\t\t\t\t\t$(element).on(\"update.datetimepicker\", function (e) {\r\n\t\t\t\t\t\t\tif (scope._config.updateEvent) {\r\n\t\t\t\t\t\t\t\tscope._config.updateEvent();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (scope._config.alwaysOpen === \"true\" && $(element).is(\":visible\")) {\r\n\t\t\t\t\t\tsetTimeout(function () { $(element).data(\"datetimepicker\").show(); }, 0);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\r\n\t\t\t\t/*Watch min value*/\r\n\t\t\t\tscope.$watch(\"config.minDate\", function (newVal, oldVal) {\r\n\r\n\t\t\t\t\tif ((newVal != undefined && oldVal == undefined) || (newVal != undefined && newVal.getTime() != oldVal.getTime())) {\r\n\t\t\t\t\t\tscope.flagEditDate = false;\r\n\t\t\t\t\t\tif (scope.cloneConfig == undefined || scope.cloneConfig == false) {\r\n\t\t\t\t\t\t\tscope._config = scope.config;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tscope._config = Afi.Utilities.cloneObj(scope.config);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (!Afi.Utilities.isMobile()) {\r\n\t\t\t\t\t\t\tif (scope._config.useDatepicker) {\r\n\t\t\t\t\t\t\t\tif (scope._config.minDate > scope._config.maxDate) {\r\n\t\t\t\t\t\t\t\t\tscope._config.minDate = scope._config.maxDate;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif ($(element).data(\"datetimepicker\").maxDate() < scope._config.minDate) {\r\n\t\t\t\t\t\t\t\t\t$(element).data(\"datetimepicker\").maxDate(scope._config.minDate);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t$(element).data(\"datetimepicker\").minDate(scope._config.minDate);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tscope.flagEditDate = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\t/*Watch max value*/\r\n\t\t\t\tscope.$watch(\"config.maxDate\", function (newVal, oldVal) {\r\n\r\n\t\t\t\t\tif ((newVal != undefined && oldVal == undefined) || (newVal != undefined && newVal.getTime() != oldVal.getTime())) {\r\n\t\t\t\t\t\tscope.flagEditDate = false;\r\n\t\t\t\t\t\tif (scope.cloneConfig == undefined || scope.cloneConfig == false) {\r\n\t\t\t\t\t\t\tscope._config = scope.config;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tscope._config = Afi.Utilities.cloneObj(scope.config);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (!Afi.Utilities.isMobile()) {\r\n\t\t\t\t\t\t\tif (scope._config.useDatepicker) {\r\n\t\t\t\t\t\t\t\tif (scope._config.maxDate < scope._config.minDate) {\r\n\t\t\t\t\t\t\t\t\tscope._config.maxDate = scope._config.minDate;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif ($(element).data(\"datetimepicker\").minDate() > scope._config.maxDate) {\r\n\t\t\t\t\t\t\t\t\t$(element).data(\"datetimepicker\").minDate(scope._config.maxDate);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t$(element).data(\"datetimepicker\").maxDate(scope._config.maxDate);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tscope.flagEditDate = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\r\n\r\n\t\t\t\t// ERROR, no deja introducir la fecha en el móvil, posible error con el idioma\r\n\t\t\t\t/*Change type when it is mobile*/\r\n\t\t\t\tscope._config.type = element[0].type;\r\n\t\t\t\tif (Afi.Utilities.isMobile() && navigator.userAgent.search(\"Firefox\") == -1) {\r\n\r\n\t\t\t\t\tif (scope._config.mobileInputMask) {\r\n\t\t\t\t\t\telement[0].type = \"tel\";\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\telement[0].type = \"date\";\r\n\t\t\t\t\t\t$(element).val(scope.value);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (yearMin > 0)\r\n\t\t\t\t\t\t$(element).attr(\"min\", yearMin + \"-\" + monthMin + \"-\" + dayMin);\r\n\r\n\t\t\t\t\tif (yearMax > 0)\r\n\t\t\t\t\t\t$(element).attr(\"max\", yearMax + \"-\" + monthMax + \"-\" + dayMax);\r\n\r\n\t\t\t\t} else {\r\n\t\t\t\t\telement[0].type = \"text\";\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//Check if the initial date is between min and max\r\n\t\t\t\tvar dateMin = new Date(monthMin + \"/\" + dayMin + \"/\" + yearMin);\r\n\t\t\t\tvar dateMax = new Date(monthMax + \"/\" + dayMax + \"/\" + yearMax);\r\n\r\n\t\t\t\t/*Set initial value*/\r\n\t\t\t\tif (attrs.initialvalue != undefined && attrs.initialvalue != \"\") {\r\n\t\t\t\t\tvar dateAux = attrs.initialvalue.split('/');\r\n\t\t\t\t\tif (scope._config.type == \"date\") {\r\n\t\t\t\t\t\tscope.value = dateAux[2] + \"-\" + dateAux[1] + \"-\" + dateAux[0];\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tscope.value = attrs.initialvalue;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvar date = new Date(dateAux[1] + \"/\" + dateAux[0] + \"/\" + dateAux[2]);\r\n\t\t\t\t\tscope._config.dateObj = date;\r\n\t\t\t\t\tscope._config.dateStr = new Date(date.valueOf() - (date.getTimezoneOffset() * 60000)).toISOString();\r\n\r\n\r\n\t\t\t\t\t//Check if the initial date is between min and max\r\n\t\t\t\t\tvar dateOut = date;\r\n\r\n\t\t\t\t\tdateOut = Afi.Date.dateInRange(date, dateMin, dateMax);\r\n\t\t\t\t\tscope._config.dateObj = dateOut;\r\n\t\t\t\t\tscope._config.dateStr = new Date(dateOut.valueOf() - (dateOut.getTimezoneOffset() * 60000)).toISOString();\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/*Watch ng-model*/\r\n\t\t\t\tscope.$watch('value', function (value) {\r\n\r\n\t\t\t\t\t/* Si alguien pusiese el valor como vacio, lo quitamos\r\n\t\t\t\t\t * para evitar enviar strings vacios de fechas al servicio. */\r\n\t\t\t\t\tif (value == \"\") {\r\n\t\t\t\t\t\tscope.value = undefined;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (value != undefined) {\r\n\t\t\t\t\t\tvar dayMin = 0;\r\n\t\t\t\t\t\tvar monthMin = 0;\r\n\t\t\t\t\t\tvar yearMin = 0;\r\n\t\t\t\t\t\tvar dayMax = 0;\r\n\t\t\t\t\t\tvar monthMax = 0;\r\n\t\t\t\t\t\tvar yearMax = 0;\r\n\r\n\t\t\t\t\t\tif (scope._config.min != undefined && scope._config.min != '') {\r\n\t\t\t\t\t\t\tvar dateMinArray = scope._config.min.split('/');\r\n\r\n\t\t\t\t\t\t\tif (dateMinArray.length == 3) {\r\n\t\t\t\t\t\t\t\tdayMin = (dateMinArray[0].length == 1) ? \"0\" + dateMinArray[0] : dateMinArray[0];\r\n\t\t\t\t\t\t\t\tmonthMin = (dateMinArray[1].length == 1) ? \"0\" + dateMinArray[1] : dateMinArray[1];\r\n\t\t\t\t\t\t\t\tyearMin = dateMinArray[2];\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (scope._config.max != undefined && scope._config.max != '') {\r\n\t\t\t\t\t\t\tvar dateMaxArray = scope._config.max.split('/');\r\n\r\n\t\t\t\t\t\t\tif (dateMaxArray.length == 3) {\r\n\t\t\t\t\t\t\t\tdayMax = (dateMaxArray[0].length == 1) ? \"0\" + dateMaxArray[0] : dateMaxArray[0];\r\n\t\t\t\t\t\t\t\tmonthMax = (dateMaxArray[1].length == 1) ? \"0\" + dateMaxArray[1] : dateMaxArray[1];\r\n\t\t\t\t\t\t\t\tyearMax = dateMaxArray[2];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar dateMin = new Date(monthMin + \"/\" + dayMin + \"/\" + yearMin);\r\n\t\t\t\t\t\tvar dateMax = new Date(monthMax + \"/\" + dayMax + \"/\" + yearMax);\r\n\r\n\t\t\t\t\t\tif (yearMax == 0) {\r\n\t\t\t\t\t\t\tdateMax = new Date();\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (scope._config.type == \"date\") {\r\n\t\t\t\t\t\t\tvar dateArray = value.split('-');\r\n\t\t\t\t\t\t\t//var newDate = new Date(value);\r\n\t\t\t\t\t\t\tif (dateArray.length == 3) {\r\n\t\t\t\t\t\t\t\tvar date = new Date(dateArray[1] + \"/\" + dateArray[2] + \"/\" + dateArray[0]);\r\n\t\t\t\t\t\t\t\tscope._config.dateObj = date;\r\n\r\n\t\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\t\tscope._config.dateStr = new Date(date.valueOf() - (date.getTimezoneOffset() * 60000)).toISOString();\r\n\t\t\t\t\t\t\t\t} catch (ex) {\r\n\t\t\t\t\t\t\t\t\tscope._config.invalidInput = 1;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (!Afi.Date.validateDate(dateArray[2] + \"/\" + dateArray[1] + \"/\" + dateArray[0], 'dd/mm/yyyy'))\r\n\t\t\t\t\t\t\t\t\tscope._config.invalidInput = 1;\r\n\t\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\t\tscope._config.invalidInput = 0;\r\n\r\n\t\t\t\t\t\t\t\t//Check if the date is between min and max\r\n\t\t\t\t\t\t\t\tif (Afi.Date.validateDate(dateArray[2] + \"/\" + dateArray[1] + \"/\" + dateArray[0], 'dd/mm/yyyy')) {\r\n\t\t\t\t\t\t\t\t\tdateOut = date;\r\n\r\n\t\t\t\t\t\t\t\t\tdateOut = Afi.Date.dateInRange(date, dateMin, dateMax);\r\n\t\t\t\t\t\t\t\t\tscope._config.dateObj = dateOut;\r\n\t\t\t\t\t\t\t\t\tscope._config.dateStr = new Date(dateOut.valueOf() - (dateOut.getTimezoneOffset() * 60000)).toISOString();\r\n\r\n\t\t\t\t\t\t\t\t\tif (date != dateOut)\r\n\t\t\t\t\t\t\t\t\t\tscope._config.invalidInput = 2;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tscope._config.invalidInput = 1;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tvar dateAux = value.split('/');\r\n\t\t\t\t\t\t\tif (dateAux.length == 3) {\r\n\t\t\t\t\t\t\t\tvar date = new Date(dateAux[1] + \"/\" + dateAux[0] + \"/\" + dateAux[2]);\r\n\t\t\t\t\t\t\t\tscope._config.dateObj = date;\r\n\r\n\t\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\t\tscope._config.dateStr = new Date(date.valueOf() - (date.getTimezoneOffset() * 60000)).toISOString();\r\n\t\t\t\t\t\t\t\t} catch (ex) {\r\n\t\t\t\t\t\t\t\t\tscope._config.invalidInput = 1;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (!Afi.Date.validateDate(dateAux[0] + \"/\" + dateAux[1] + \"/\" + dateAux[2], 'dd/mm/yyyy'))\r\n\t\t\t\t\t\t\t\t\tscope._config.invalidInput = 1;\r\n\t\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\t\tscope._config.invalidInput = 0;\r\n\r\n\t\t\t\t\t\t\t\t//Check if the date is between min and max\r\n\t\t\t\t\t\t\t\tif (Afi.Date.validateDate(dateAux[0] + \"/\" + dateAux[1] + \"/\" + dateAux[2], 'dd/mm/yyyy')) {\r\n\t\t\t\t\t\t\t\t\tdateOut = date;\r\n\r\n\t\t\t\t\t\t\t\t\tdateOut = Afi.Date.dateInRange(date, dateMin, dateMax);\r\n\t\t\t\t\t\t\t\t\tscope._config.dateObj = dateOut;\r\n\t\t\t\t\t\t\t\t\tscope._config.dateStr = new Date(dateOut.valueOf() - (dateOut.getTimezoneOffset() * 60000)).toISOString();\r\n\r\n\t\t\t\t\t\t\t\t\tif (date != dateOut)\r\n\t\t\t\t\t\t\t\t\t\tscope._config.invalidInput = 2;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tscope._config.invalidInput = 1;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (scope._config.invalidInput==0) {\r\n\t\t\t\t\t\t\tchangeEventFunction(date, false);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\t$(element).blur(function () {\r\n\t\t\t\t\tshowErrorMsg();\r\n\t\t\t\t});\r\n\r\n\t\t\t\t$(element).focus(function () {\r\n\t\t\t\t\tif (ngModelCtrl.$dirty) {\r\n\t\t\t\t\t\tshowErrorMsg();\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t}\r\n\t}]);","$.ui.autocomplete.prototype._renderItem = function (ul, item) {\r\n\tvar term = this.term.trim();\r\n\tgExp = Afi.Utilities.generalizeStrToExp(term);\r\n\tvar re = new RegExp(gExp, \"gi\");\r\n\tvar t = item.label.replace(re, \"$1\");\r\n\treturn $(\"
  • \")\r\n .data(\"item.autocomplete\", item)\r\n .append(\"\" + t + \"\")\r\n .appendTo(ul);\r\n};\r\n","angular.module('afi.components.selectTif', [])\r\n .directive('selectTif', function () {\r\n return {\r\n restrict: 'AE',\r\n scope: {\r\n config: \"=config\",\r\n value: \"=model\"\r\n },\r\n link: function (scope, elem, attrs) {\r\n $(elem).selectmenu({\r\n create: function (event, data) {\r\n if ($(elem)[0].options.length > 0) {\r\n if (attrs.initialvalue != undefined && attrs.initialvalue != \"\")\r\n $(elem).val(attrs.initialvalue);\r\n else if (scope.value != undefined && scope.value != \"\")\r\n $(elem).val(scope.value);\r\n\r\n $(elem).selectmenu(\"refresh\");\r\n }\r\n\r\n if (scope.value != undefined && scope.value != \"\")\r\n $(\"#retirementAge-button .ui-selectmenu-text\").html(scope.value + \" años\");\r\n\r\n\r\n /*ADD PARAMETERS DATALAYER*/\r\n $(this).attr(\"data-tagtype\", \"combo\");\r\n\r\n },\r\n change: function (event, data) {\r\n scope.value = $(this).val();\r\n scope.$apply(scope.value.ngChange);\r\n if (scope.config != undefined && scope.config.changeEvent != undefined) {\r\n scope.config.changeEvent(event);\r\n //scope.$apply();\r\n }\r\n },\r\n\r\n position: (scope.config != undefined) ? scope.config.position : { my: \"left top\", at: \"left bottom\" }\r\n });\r\n }\r\n };\r\n });","var jquiver = $.ui ? $.ui.version || \"1.5.0\" : '0.0.0';\r\nvar jquimajor = parseInt(jquiver.split('.')[0]);\r\nvar jquiminor = parseInt(jquiver.split('.')[1]);\r\n\r\nif (jquimajor >= 1 && jquiminor >= 11) {\r\n $.widget(\"ui.slider\", $.ui.slider, {\r\n _mouseCapture: function (event) {\r\n var position, normValue, distance, closestHandle, index, allowed, offset, mouseOverHandle,\r\n that = this,\r\n o = this.options;\r\n\r\n if (o.disabled) {\r\n return false;\r\n }\r\n\r\n this.elementSize = {\r\n width: this.element.outerWidth(),\r\n height: this.element.outerHeight()\r\n };\r\n this.elementOffset = this.element.offset();\r\n\r\n position = { x: event.pageX, y: event.pageY };\r\n normValue = this._normValueFromMouse(position);\r\n distance = this._valueMax() - this._valueMin() + 1;\r\n this.handles.each(function (i) {\r\n var value = that.values(i);\r\n if (isNaN(value)) {\r\n value = 0;\r\n }\r\n var thisDistance = Math.abs(normValue - value);\r\n if ((distance > thisDistance) ||\r\n (distance === thisDistance &&\r\n (i === that._lastChangedValue || value === o.min))) {\r\n distance = thisDistance;\r\n closestHandle = $(this);\r\n index = i;\r\n }\r\n });\r\n\r\n allowed = this._start(event, index);\r\n if (allowed === false) {\r\n return false;\r\n }\r\n this._mouseSliding = true;\r\n\r\n this._handleIndex = index;\r\n\r\n closestHandle\r\n .addClass(\"ui-state-active\")\r\n .trigger(\"select\");\r\n\r\n offset = closestHandle.offset();\r\n mouseOverHandle = !$(event.target).parents().addBack().is(\".ui-slider-handle\");\r\n this._clickOffset = mouseOverHandle ? { left: 0, top: 0 } : {\r\n left: event.pageX - offset.left - (closestHandle.width() / 2),\r\n top: event.pageY - offset.top -\r\n (closestHandle.height() / 2) -\r\n (parseInt(closestHandle.css(\"borderTopWidth\"), 10) || 0) -\r\n (parseInt(closestHandle.css(\"borderBottomWidth\"), 10) || 0) +\r\n (parseInt(closestHandle.css(\"marginTop\"), 10) || 0)\r\n };\r\n\r\n if (!this.handles.hasClass(\"ui-state-hover\")) {\r\n this._slide(event, index, normValue);\r\n }\r\n this._animateOff = true;\r\n return true;\r\n }\r\n });\r\n};\r\n\r\nangular.module('afi.components.sliderTif', [])\r\n .directive('sliderTif', function () {\r\n return {\r\n restrict: 'AE',\r\n scope: {\r\n config: \"=config\",\r\n value: \"=model\",\r\n max: \"=max\",\r\n min: \"=min\",\r\n suffixLiteralDown: \"=?\",\r\n step: \"=step\",\r\n cloneConfig: \"=cloneconfig\"\r\n },\r\n\r\n link: function (scope, elem, attrs) {\r\n\r\n if (scope.cloneConfig == undefined || scope.cloneConfig == false) {\r\n scope._config = scope.config;\r\n } else {\r\n scope._config = Afi.Utilities.cloneObj(scope.config);\r\n }\r\n\r\n if (scope._config.optionsFormatter == undefined) {\r\n scope._config.optionsFormatter = { format: '#,##0', locale: 'es' };\r\n }\r\n\r\n if (scope.max != undefined) {\r\n scope.$watch(\"max\", function (newVal) {\r\n scope._config.max = newVal;\r\n });\r\n }\r\n\r\n scope.$watch(\"min\", function (newVal) {\r\n scope._config.min = newVal;\r\n });\r\n\r\n if (scope.step != undefined) {\r\n scope.$watch(\"step\", function (newVal) {\r\n scope._config.step = newVal;\r\n });\r\n }\r\n\r\n var applyCustomScale = function (value) {\r\n if (scope._config.newScaleMax == undefined || scope._config.newScaleMax == \"\" ||\r\n scope._config.newScaleStart == undefined || scope._config.newScaleStart == \"\") {\r\n return value;\r\n }\r\n var factor = (scope._config.newScaleMax - scope._config.newScaleStart) / (scope._config.max - scope._config.newScaleStart);\r\n\r\n if (value > scope._config.newScaleStart) {\r\n return Math.min(scope._config.newScaleMax, scope._config.newScaleStart + ((value - scope._config.newScaleStart) * factor));\r\n }\r\n return value;\r\n };\r\n var disapplyCustomScale = function (value) {\r\n if (scope._config.newScaleMax == undefined || scope._config.newScaleMax == \"\" ||\r\n scope._config.newScaleStart == undefined || scope._config.newScaleStart == \"\") {\r\n return value;\r\n }\r\n var factor = (scope._config.newScaleMax - scope._config.newScaleStart) / (scope._config.max - scope._config.newScaleStart);\r\n\r\n if (value > (scope._config.newScaleStart)) {\r\n return Math.min(scope._config.max, scope._config.newScaleStart + ((value - scope._config.newScaleStart) / factor));\r\n }\r\n return value;\r\n };\r\n var paintScale = function () {\r\n //SCALE - sufijo\r\n var suffixLiteralDown = \"\";\r\n if (scope.suffixLiteralDown != undefined) { // se pasa por binding\r\n suffixLiteralDown = scope.suffixLiteralDown;\r\n } else { // se pasa por configuracion (no es variable)\r\n if (scope._config.suffixLiteralDown != undefined && scope._config.suffixLiteralDown != \"\") {\r\n suffixLiteralDown = scope._config.suffixLiteralDown;\r\n }\r\n }\r\n\r\n // SCALE - prefijo\r\n var prefixLiteralDown = \"\";\r\n var showMinMaxLabels = scope._config.showMinMaxLabels;\r\n var prefixLiteralDownMin = \"mín.:\";\r\n var prefixLiteralDownMax = \"máx.:\";\r\n if (scope._config.prefixLiteralDown != undefined && scope._config.prefixLiteralDown != \"\")\r\n prefixLiteralDown = scope._config.prefixLiteralDown;\r\n\r\n if (scope._config.showScale) {\r\n var subSteps = \"\";\r\n var steps = \"\";\r\n\r\n var widthElem = 0;\r\n if (!$(elem).is(\":visible\")) {\r\n var clone = elem.clone();\r\n clone[0].id = \"auxElem\";\r\n clone.css({\r\n visibility: 'hidden',\r\n width: '',\r\n height: '',\r\n maxWidth: '',\r\n maxHeight: ''\r\n });\r\n $('body').append(clone);\r\n widthElem = clone.outerWidth();\r\n $(\"#auxElem\").remove();\r\n } else {\r\n widthElem = $(elem).width();\r\n }\r\n\r\n var percentageQuit = (scope._config.scaleSteps / widthElem) * 100;\r\n var widthStep = ((100 - percentageQuit) / (scope._config.scaleSteps - 1));\r\n var widthSubSteps = Math.floor(100 / (scope._config.scaleSubSteps + 1));\r\n\r\n for (i = 0; i < scope._config.scaleSubSteps; i++) {\r\n subSteps += \"
    \";\r\n }\r\n\r\n var addScaleNumber = Math.floor((scope._config.max - scope._config.min) / (scope._config.scaleSteps - 1));\r\n var scaleNumber = scope._config.min;\r\n for (i = 0; i < scope._config.scaleSteps - 1; i++) {\r\n scaleNumber += (i == 0) ? 0 : addScaleNumber;\r\n classes = (i == 0) ? \"scaleNumber scaleNumberFirst\" : \"scaleNumber\";\r\n\r\n divScaleNumber = \"\";\r\n\r\n var formatScaleNumber = 0;\r\n if (scope._config.labelFormatterDown != undefined)\r\n formatScaleNumber = scope._config.labelFormatterDown(scaleNumber);\r\n else\r\n formatScaleNumber = jQuery.formatNumber(scaleNumber, scope._config.optionsFormatter);\r\n\r\n if (scope._config.showScaleNumbers) {\r\n if (scope._config.paintAllScaleNumbers || (scope._config.paintAllScaleNumbers == false && i == 0)) {\r\n if (scope._config.paintValueFunction)\r\n divScaleNumber = \"
    \" + scope._config.paintValueFunction(scaleNumber) + \"
    \";\r\n else {\r\n if (showMinMaxLabels)\r\n prefixLiteralDown = prefixLiteralDownMin;\r\n divScaleNumber = \"
    \" + prefixLiteralDown + formatScaleNumber + suffixLiteralDown + \"
    \";\r\n }\r\n\r\n } else {\r\n divScaleNumber = \"\";\r\n }\r\n }\r\n\r\n steps += \"
    \" + subSteps + divScaleNumber + \"
    \";\r\n }\r\n scaleNumber += addScaleNumber;\r\n\r\n scaleNumber = scope._config.max;\r\n\r\n divScaleNumber = \"\";\r\n\r\n var formatScaleNumber = 0;\r\n if (scope._config.labelFormatterDown != undefined)\r\n formatScaleNumber = scope._config.labelFormatterDown(scaleNumber);\r\n else\r\n formatScaleNumber = jQuery.formatNumber(scaleNumber, scope._config.optionsFormatter);\r\n\r\n if (scope._config.showScaleNumbers) {\r\n if (scope._config.paintValueFunction)\r\n divScaleNumber = \"
    \" + scope._config.paintValueFunction(scaleNumber) + \"
    \";\r\n else {\r\n if (showMinMaxLabels)\r\n prefixLiteralDown = prefixLiteralDownMax;\r\n divScaleNumber = \"
    \" + prefixLiteralDown + formatScaleNumber + suffixLiteralDown + \"
    \";\r\n }\r\n }\r\n steps += \"
    \" + divScaleNumber + \"
    \";\r\n\r\n $($(elem)[0]).children(\".divScale\").remove();\r\n $(elem).append(\"
    \" + steps + \"
    \");\r\n }\r\n };\r\n\r\n\r\n scope.$watch('_config.max', function (configMax) {\r\n if (configMax != undefined) {\r\n $(elem).slider({ max: configMax });\r\n if (!scope.config.allowOverMax && scope.value > configMax) {\r\n scope.value = configMax;\r\n }\r\n paintScale();\r\n }\r\n });\r\n\r\n scope.$watch('_config.min', function (configMin) {\r\n if (configMin != undefined) {\r\n $(elem).slider({ min: configMin });\r\n paintScale();\r\n }\r\n });\r\n\r\n scope.$watch('suffixLiteralDown', function (suffixLiteralDown) {\r\n if (suffixLiteralDown != undefined) {\r\n $(elem).slider({ suffixLiteralDown: suffixLiteralDown });\r\n paintScale();\r\n }\r\n });\r\n\r\n\r\n scope.$watch('value', function (value) {\r\n if (value !== undefined) {\r\n // Comprobamos si el slider esta inicializado\r\n if ($(elem).data('ui-slider') == undefined) { $(elem).slider(); }\r\n\r\n var maxValue = $(elem).slider(\"option\", \"max\");\r\n var stepValue = scope._config.step;\r\n var newVal = disapplyCustomScale(value);\r\n\r\n if (scope._config.allowOverMax && newVal > maxValue)\r\n maxValue = newVal;\r\n\r\n if (scope._config.allowFreeValue && newVal % stepValue > 0)\r\n stepValue = 1;\r\n\r\n\r\n\r\n $(elem).slider({ value: newVal, max: maxValue, step: stepValue });\r\n\r\n var prefixLiteralDown = \"\";\r\n if (scope._config.prefixLiteralDown != undefined && scope._config.prefixLiteralDown != \"\")\r\n prefixLiteralDown = scope._config.prefixLiteralDown;\r\n\r\n var prefixLiteralUp = \"\";\r\n if (scope._config.prefixLiteralUp != undefined && scope._config.prefixLiteralUp != \"\")\r\n prefixLiteralUp = scope._config.prefixLiteralUp;\r\n\r\n var suffixLiteralDown = \"\";\r\n if (scope._config.suffixLiteralDown != undefined && scope._config.suffixLiteralDown != \"\")\r\n suffixLiteralDown = scope._config.suffixLiteralDown;\r\n\r\n var suffixLiteralUp = \"\";\r\n if (scope._config.suffixLiteralUp != undefined && scope._config.suffixLiteralUp != \"\")\r\n suffixLiteralUp = scope._config.suffixLiteralUp;\r\n\r\n var formatValueDown = 0;\r\n if (scope._config.labelFormatterDown != undefined)\r\n formatValueDown = scope._config.labelFormatterDown(value);\r\n else\r\n formatValueDown = jQuery.formatNumber(value, scope._config.optionsFormatter);\r\n\r\n //VALUE ON HANDLER\r\n if (scope._config.showValueOnHandler) {\r\n if (scope._config.paintValueFunction)\r\n $($(elem)[0]).children(\".ui-slider-handle\").children(\".labelValueDown\").html(scope._config.paintValueFunction(value));\r\n else\r\n $($(elem)[0]).children(\".ui-slider-handle\").children(\".labelValue\").html(prefixLiteralDown + formatValueDown + suffixLiteralDown);\r\n }\r\n\r\n //DOUBLE VALUE\r\n if (scope._config.showDoubleValue) {\r\n try {\r\n $($(elem)[0]).children(\".ui-slider-handle\").children(\".labelValueUp\").html(prefixLiteralUp + jQuery.formatNumber(scope._config.slideEvent(event), scope._config.optionsFormatter) + suffixLiteralUp);\r\n } catch (e) {\r\n $($(elem)[0]).children(\".ui-slider-handle\").children(\".labelValueUp\").html(prefixLiteralUp + jQuery.formatNumber(scope._config.slideEvent(), scope._config.optionsFormatter) + suffixLiteralUp);\r\n }\r\n if (scope._config.paintValueFunction)\r\n $($(elem)[0]).children(\".ui-slider-handle\").children(\".labelValueDown\").html(scope._config.paintValueFunction(value));\r\n else\r\n $($(elem)[0]).children(\".ui-slider-handle\").children(\".labelValueDown\").html(prefixLiteralDown + formatValueDown + suffixLiteralDown);\r\n }\r\n\r\n //ADITIONAL CLASS IN HANDLE\r\n if (scope._config.classHandle != undefined && scope._config.classHandle != \"\")\r\n $($(elem)[0]).children(\".ui-slider-handle\").addClass(scope._config.classHandle);\r\n\r\n // Posibilidad de eliminar tabindex en el handle del slider\r\n if (scope._config.removeTabindexHandle != undefined && scope._config.removeTabindexHandle == true) {\r\n $($(elem)[0]).children(\".ui-slider-handle\").removeAttr(\"tabindex\");\r\n }\r\n }\r\n });\r\n\r\n $(elem).slider({\r\n range: \"min\",\r\n min: scope._config.min,\r\n max: scope._config.max,\r\n step: (scope._config.step == undefined) ? 1 : scope._config.step,\r\n value: (scope.value != undefined) ? scope.value : scope._config.min,\r\n disabled: !(scope._config.editable),\r\n create: function (event, ui) {\r\n $(this).slider({ value: (scope.value != undefined && scope.value != \"\") ? scope.value : scope._config.min });\r\n if (scope.value == undefined || scope.value == \"\") {\r\n scope.value = scope._config.min;\r\n }\r\n\r\n var prefixLiteralDown = \"\";\r\n if (scope._config.prefixLiteralDown != undefined && scope._config.prefixLiteralDown != \"\")\r\n prefixLiteralDown = scope._config.prefixLiteralDown;\r\n\r\n var prefixLiteralUp = \"\";\r\n if (scope._config.prefixLiteralUp != undefined && scope._config.prefixLiteralUp != \"\")\r\n prefixLiteralUp = scope._config.prefixLiteralUp;\r\n\r\n var suffixLiteralDown = \"\";\r\n if (scope._config.suffixLiteralDown != undefined && scope._config.suffixLiteralDown != \"\")\r\n suffixLiteralDown = scope._config.suffixLiteralDown;\r\n\r\n var suffixLiteralUp = \"\";\r\n if (scope._config.suffixLiteralUp != undefined && scope._config.suffixLiteralUp != \"\")\r\n suffixLiteralUp = scope._config.suffixLiteralUp;\r\n\r\n var formatValueDown = 0;\r\n if (scope._config.labelFormatterDown != undefined)\r\n formatValueDown = scope._config.labelFormatterDown(scope.value);\r\n else\r\n formatValueDown = jQuery.formatNumber(scope.value, scope._config.optionsFormatter);\r\n\r\n paintScale();\r\n\r\n //MAX ALTERNATE\r\n if (scope._config.maxAlternate) {\r\n $(elem).append(\"
    \");\r\n var width = $(elem).width();\r\n var widthAlternate = parseFloat(scope._config.maxAlternate) * width / parseFloat(scope._config.max);\r\n $(elem).children(\".alternateMax\").css(\"width\", widthAlternate * 100 / width + \"%\");\r\n }\r\n\r\n //LIMIT\r\n if (scope._config.limit) {\r\n $(elem).append(\"
    \");\r\n var width = $(elem).width();\r\n var widthLimit = parseFloat(scope._config.limit) * width / parseFloat(scope._config.max);\r\n $(elem).children(\".limit\").css(\"width\", widthLimit * 100 / width + \"%\");\r\n\r\n $(elem).children(\".ui-slider-range\").append(\"
    \");\r\n $(elem).find(\".limitRange\").css(\"width\", widthLimit + \"px\");\r\n }\r\n\r\n //VALUE ON HANDLER\r\n if (scope._config.showValueOnHandler) {\r\n $($(elem)[0]).children(\".ui-slider-handle\").html(\"\");\r\n $($(elem)[0]).children(\".ui-slider-handle\").append(\"\" + prefixLiteralDown + formatValueDown + suffixLiteralDown + \"\");\r\n }\r\n\r\n //DOUBLE VALUE\r\n if (scope._config.showDoubleValue) {\r\n $($(elem)[0]).children(\".ui-slider-handle\").html(\"\");\r\n $($(elem)[0]).children(\".ui-slider-handle\").append(\"\" + prefixLiteralUp + jQuery.formatNumber(scope._config.slideEvent(event), scope._config.optionsFormatter) + suffixLiteralUp + \"
    \");\r\n $($(elem)[0]).children(\".ui-slider-handle\").append(\"\" + prefixLiteralDown + formatValueDown + suffixLiteralDown + \"
    \");\r\n }\r\n\r\n //SHOW UP/DOWN BUTTONS\r\n if (scope._config.showUpDownButtons) {\r\n $(elem).before(\"Bajar\");\r\n $(elem).after(\"Subir\");\r\n }\r\n\r\n /*ADD PARAMETERS DATALAYER*/\r\n $(scope._config.input).attr(\"data-tagtype\", \"textbox\");\r\n $(this).attr(\"data-tagtype\", \"slide\");\r\n },\r\n slide: function (event, ui) {\r\n //ALTERNATE MAX\r\n if (scope._config.maxAlternate) {\r\n if (ui.value > scope._config.maxAlternate) {\r\n ui.value = scope._config.maxAlternate;\r\n\r\n scope.$apply(function () {\r\n scope.value = ui.value;\r\n });\r\n\r\n event.preventDefault();\r\n return;\r\n }\r\n }\r\n\r\n var prefixLiteralDown = \"\";\r\n if (scope._config.prefixLiteralDown != undefined && scope._config.prefixLiteralDown != \"\")\r\n prefixLiteralDown = scope._config.prefixLiteralDown;\r\n\r\n var prefixLiteralUp = \"\";\r\n if (scope._config.prefixLiteralUp != undefined && scope._config.prefixLiteralUp != \"\")\r\n prefixLiteralUp = scope._config.prefixLiteralUp;\r\n\r\n var suffixLiteralDown = \"\";\r\n if (scope._config.suffixLiteralDown != undefined && scope._config.suffixLiteralDown != \"\")\r\n suffixLiteralDown = scope._config.suffixLiteralDown;\r\n\r\n var suffixLiteralUp = \"\";\r\n if (scope._config.suffixLiteralUp != undefined && scope._config.suffixLiteralUp != \"\")\r\n suffixLiteralUp = scope._config.suffixLiteralUp;\r\n\r\n var formatValueDown = 0;\r\n if (scope._config.labelFormatterDown != undefined)\r\n formatValueDown = scope._config.labelFormatterDown(applyCustomScale(ui.value));\r\n else\r\n formatValueDown = jQuery.formatNumber(applyCustomScale(ui.value), scope._config.optionsFormatter);\r\n\r\n //VALUE ON HANDLER\r\n if (scope._config.showValueOnHandler) {\r\n $($(elem)[0]).children(\".ui-slider-handle\").children(\".labelValue\").html(prefixLiteralDown + formatValueDown + suffixLiteralDown);\r\n }\r\n\r\n //DOUBLE VALUE\r\n if (scope._config.showDoubleValue) {\r\n $($(elem)[0]).children(\".ui-slider-handle\").children(\".labelValueUp\").html(prefixLiteralUp + jQuery.formatNumber(scope._config.slideEvent(event), scope._config.optionsFormatter) + suffixLiteralUp);\r\n $($(elem)[0]).children(\".ui-slider-handle\").children(\".labelValueDown\").html(prefixLiteralDown + formatValueDown + suffixLiteralDown);\r\n }\r\n\r\n //CHANGE STYLE SCALE NUMBERS\r\n $($(elem)[0]).children(\".scaleStep\").children(\".scaleNumber\").addClass(\"scaleNumberModifying\");\r\n $($(elem)[0]).children(\".ui-slider-handle\").children(\".labelValueDown\").addClass(\"labelValueDownModifying\");\r\n $($(elem)[0]).children(\".ui-slider-handle\").children(\".triangle_labelDown\").addClass(\"triangle_labelDownModifying\");\r\n\r\n\r\n if ($(elem).slider(\"option\", \"step\") != scope._config.step) {\r\n $(elem).slider({ value: ui.value - (ui.value % scope._config.step), step: scope._config.step });\r\n scope.value = ui.value - (ui.value % scope._config.step);\r\n scope.value = applyCustomScale(scope.value);\r\n return;\r\n }\r\n\r\n scope.$apply(function () {\r\n if (ui.value == scope._config.max) {\r\n scope.value = ui.value;\r\n } else if (ui.value == scope._config.min) {\r\n scope.value = ui.value;\r\n } else {\r\n scope.value = ui.value - (ui.value % $(elem).slider(\"option\", \"step\"));\r\n }\r\n scope.value = applyCustomScale(scope.value);\r\n });\r\n\r\n if (scope._config.slideEvent != undefined)\r\n scope._config.slideEvent(event);\r\n\r\n /*if (scope._config.formatFunction != undefined)\r\n scope.value = scope._config.formatFunction(ui.value);*/\r\n\r\n $($(elem)[0]).children(\".ui-slider-range\").addClass(\"ui-slider-active\");\r\n\r\n },\r\n stop: function (event, ui) {\r\n if (scope._config.input != undefined)\r\n scope._config.input.$dirty = true;\r\n if (scope._config.stopEvent != undefined)\r\n scope._config.stopEvent(event);\r\n scope.$apply(scope.value.ngChange);\r\n\r\n //CHANGE STYLE SCALE NUMBERS\r\n $($(elem)[0]).children(\".scaleStep\").children(\".scaleNumber\").removeClass(\"scaleNumberModifying\");\r\n $($(elem)[0]).children(\".ui-slider-handle\").children(\".labelValueDown\").removeClass(\"labelValueDownModifying\");\r\n $($(elem)[0]).children(\".ui-slider-handle\").children(\".triangle_labelDown\").removeClass(\"triangle_labelDownModifying\");\r\n\r\n $($(elem)[0]).children(\".ui-slider-range\").removeClass(\"ui-slider-active\");\r\n },\r\n change: function (event, ui) {\r\n /*if (scope._config.allowSubMin == false && parseFloat(scope.value) < $(elem).slider(\"option\", \"min\"))\r\n scope.value = $(elem).slider(\"option\", \"min\");*/\r\n\r\n var maxValue = 0;\r\n if (scope._config.newScaleMax == undefined || scope._config.newScaleMax == \"\" ||\r\n scope._config.newScaleStart == undefined || scope._config.newScaleStart == \"\") {\r\n maxValue = $(elem).slider(\"option\", \"max\");\r\n } else {\r\n maxValue = scope._config.newScaleMax;\r\n }\r\n\r\n //ALTERNATE MAX\r\n if (scope._config.maxAlternate) {\r\n maxValue = Math.min(scope._config.maxAlternate, maxValue);\r\n }\r\n\r\n // EDITADO: Antes dentro del if solo era \"scope.value = maxValue;\"\r\n if (scope._config.allowOverMax == false && parseFloat(scope.value) > parseFloat(maxValue)) {\r\n if (scope.max > 0) {\r\n if (scope.value > scope.max) {\r\n scope.value = scope.max;\r\n }\r\n } else {\r\n scope.value = maxValue;\r\n }\r\n }\r\n\r\n if (scope._config.allowOverMax && parseFloat(scope.value) > parseFloat(maxValue)) {\r\n scope._config.max = parseFloat(scope.value);\r\n\r\n var suffixLiteralDown = \"\";\r\n if (scope._config.suffixLiteralDown != undefined && scope._config.suffixLiteralDown != \"\") {\r\n suffixLiteralDown = scope._config.suffixLiteralDown;\r\n }\r\n\r\n $($(elem)[0]).children(\".scaleStep\").children(\".scaleNumberLast\").html(jQuery.formatNumber(scope.value, scope._config.optionsFormatter) + suffixLiteralDown);\r\n\r\n paintScale();\r\n\r\n }\r\n\r\n if (scope._config.literalOffElem != undefined && ui.value == 1) {\r\n scope._config.literalOffElem.addClass(\"switchLiteralOff\");\r\n scope._config.literalOnElem.removeClass(\"switchLiteralOff\");\r\n }\r\n\r\n if (scope._config.literalOnElem != undefined && ui.value == 0) {\r\n scope._config.literalOnElem.addClass(\"switchLiteralOff\");\r\n scope._config.literalOffElem.removeClass(\"switchLiteralOff\");\r\n }\r\n }\r\n });\r\n\r\n\r\n }\r\n };\r\n });","angular.module('afi.components.sortableTif', [])\r\n .directive('sortableTif', function () {\r\n return {\r\n restrict: 'AE',\r\n scope: {\r\n sortableArray: \"=sortablearray\"\r\n },\r\n\r\n link: function (scope, elem, attrs) {\r\n $(elem).sortable({\r\n placeholder: \"ui-state-highlight\",\r\n handle: \".handle\",\r\n opacity: 0.75,\r\n distance: 5,\r\n start: function (event, ui) {\r\n ui.item.data('start', ui.item.index());\r\n },\r\n update: function (event, ui) {\r\n var start = ui.item.data('start');\r\n var end = ui.item.index();\r\n\r\n scope.$apply(function () {\r\n scope.sortableArray.splice(end, 0, scope.sortableArray.splice(start, 1)[0]);\r\n });\r\n }\r\n });\r\n $(elem).disableSelection();\r\n }\r\n };\r\n });","angular.module('afi.components.switchtif', [])\r\n\t.directive('switchtif', function () {\r\n\t\treturn {\r\n\t\t\trequire: 'ngModel',\r\n\t\t\tscope: {\r\n\t\t\t\toptions: \"=switchtif\",\r\n\t\t\t\tconfig: \"=config\",\r\n\t\t\t\tngModel: '=',\r\n\t\t\t\tngChange: '=',\r\n\t\t\t},\r\n\t\t\tlink: function (scope, element, attrs, controller, ngModelCtrl) {\r\n\t\t\t\t$(element).hide();\r\n\r\n\t\t\t\t$(\"#switch_ltOff_\" + $(element)[0].id).remove();\r\n\t\t\t\t$(\"#switch_ltOn_\" + $(element)[0].id).remove();\r\n\t\t\t\t$(\"#divSwitch_\" + $(element)[0].id).remove();\r\n\r\n\t\t\t\t$(element).before(\"
    \" + scope.options.literalOff + \"
    \");\r\n\t\t\t\t$(element).after(\"
    \" + scope.options.literalOn + \"
    \");\r\n\t\t\t\t$(element).before(\"
    \");\r\n\r\n\t\t\t\t/*Set default value*/\r\n\t\t\t\t//scope.ngModel = attrs.initialvalue;\r\n\r\n\t\t\t\t/*ADD PARAMETERS DATALAYER*/\r\n\t\t\t\t$(this).attr(\"data-tagtype\", \"boolean\");\r\n\r\n\t\t\t\tfunction render(isChecked) {\r\n\t\t\t\t\tif (isChecked) {\r\n\t\t\t\t\t\tif ($($(element)[0]).attr(\"disabled\") == \"disabled\")\r\n\t\t\t\t\t\t\t$(\"#divSwitch_\" + $(element)[0].id).attr(\"class\", \"switchOnDisabled\");\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t$(\"#divSwitch_\" + $(element)[0].id).attr(\"class\", \"switchOn\");\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tif ($($(element)[0]).attr(\"disabled\") == \"disabled\")\r\n\t\t\t\t\t\t\t$(\"#divSwitch_\" + $(element)[0].id).attr(\"class\", \"switchOffDisabled\");\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t$(\"#divSwitch_\" + $(element)[0].id).attr(\"class\", \"switchOff\");\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tscope.$watch(\"ngModel\", function (event, value) {\r\n\t\t\t\t\trender(scope.ngModel);\r\n\t\t\t\t\tif (scope.ngChange != undefined)\r\n\t\t\t\t\t\tscope.ngChange(event);\r\n\t\t\t\t});\r\n\r\n\t\t\t\t$(\"#divSwitch_\" + $(element)[0].id).unbind('click');\r\n\t\t\t\t$(\"#divSwitch_\" + $(element)[0].id).bind('click', toggle);\r\n\r\n\t\t\t\t$(\"#divSwitch_\" + $(element)[0].id).unbind('dragend');\r\n\t\t\t\t$(\"#divSwitch_\" + $(element)[0].id).bind('dragend', toggle);\r\n\r\n\t\t\t\t$(\"#divSwitch_\" + $(element)[0].id)[0].addEventListener(\"dragstart\", function (e) {\r\n\t\t\t\t\tvar crt = this.cloneNode(true);\r\n\t\t\t\t\tcrt.style.display = \"none\";\r\n\t\t\t\t\te.dataTransfer.setDragImage(crt, 0, 0);\r\n\t\t\t\t}, false);\r\n\r\n\t\t\t\t$(\"#divSwitch_\" + $(element)[0].id)[0].addEventListener('dragover', function (e) {\r\n\t\t\t\t\tif (e.preventDefault) { e.preventDefault(); }\r\n\t\t\t\t\te.dataTransfer.dropEffect = 'move';\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}, false);\r\n\r\n\r\n\t\t\t\t$(\"#switch_ltOff_\" + $(element)[0].id).unbind('click');\r\n\t\t\t\t$(\"#switch_ltOff_\" + $(element)[0].id).bind('click', function () {\r\n\t\t\t\t\tif ($($(element)[0]).attr(\"disabled\") != \"disabled\") {\r\n\t\t\t\t\t\tscope.$apply(function () {\r\n\t\t\t\t\t\t\tscope.ngModel = false;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\t$(\"#switch_ltOn_\" + $(element)[0].id).unbind('click');\r\n\t\t\t\t$(\"#switch_ltOn_\" + $(element)[0].id).bind('click', function () {\r\n\t\t\t\t\tif ($($(element)[0]).attr(\"disabled\") != \"disabled\") {\r\n\t\t\t\t\t\tscope.$apply(function () {\r\n\t\t\t\t\t\t\tscope.ngModel = true;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tfunction toggle(e) {\r\n\t\t\t\t\tif ($($(element)[0]).attr(\"disabled\") != \"disabled\") {\r\n\t\t\t\t\t\tscope.$apply(function () {\r\n\t\t\t\t\t\t\tscope.ngModel = !scope.ngModel;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t});","/* CONFIG SWITCH2 TIF\r\n$scope.SwConfig1 = {\r\n onLabel: \"op1\",\r\n offLabel: \"op2\",\r\n onValue: \"hola\",\r\n offValue: \"adios\",\r\n //defValue: true\r\n rounded: true\r\n };\r\n*/\r\nangular.module('afi.components.switch2Tif', [])\r\n\t.directive('switch2Tif', function () {\r\n\t\treturn {\r\n\t\t\trestrict: 'AE',\r\n\t\t\trequire: 'ngModel',\r\n\t\t\tscope: {\r\n\t\t\t\tconfig: \"=\",\r\n\t\t\t\tngModel: \"=\",\r\n\t\t\t\tswitch2OnChange: '&', // callback function (e.g. Calculate)\r\n\t\t\t},\r\n\t\t\ttemplateUrl: templatesFolder + 'Switch.html',\r\n\t\t\tlink: function (scope, elem, attrs, ngModel) {\r\n\r\n\t\t\t\t// Elements of this particular link iteration\r\n\t\t\t\tvar sw = attrs.$$element[0].getElementsByClassName(\"switch\")[0];\r\n\t\t\t\tvar sl = attrs.$$element[0].getElementsByClassName(\"sliderSwitch\")[0];\r\n\t\t\t\tvar leftText = attrs.$$element[0].getElementsByClassName(\"leftTextSwitch\")[0];\r\n\t\t\t\tvar rightText = attrs.$$element[0].getElementsByClassName(\"rightTextSwitch\")[0];\r\n\r\n\r\n\t\t\t\t// Elliptical slider\r\n\t\t\t\tif (scope.config.rounded && scope.config.rounded == true) {\r\n\t\t\t\t\tsw.classList += \" round\";\r\n\t\t\t\t\tsl.classList += \" round\";\r\n\t\t\t\t} else {\r\n\t\t\t\t\tsw.classList += \" rect\";\r\n\t\t\t\t\tsl.classList += \" rect\";\r\n\t\t\t\t}\r\n\r\n\r\n\t\t\t\t// Text labels\r\n\t\t\t\tif (scope.config.onLabel) {\r\n\t\t\t\t\tleftText.textContent = scope.config.onLabel;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tleftText.textContent = \"\";\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (scope.config.offLabel) {\r\n\t\t\t\t\trightText.textContent = scope.config.offLabel;\r\n\t\t\t\t} else {\r\n\t\t\t\t\trightText.textContent = \"\";\r\n\t\t\t\t}\r\n\r\n\r\n\t\t\t\t// Model values\r\n\t\t\t\tif (scope.config.onValue && scope.config.offValue) {\r\n\t\t\t\t\tvar on = scope.config.onValue, off = scope.config.offValue;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvar on = true, off = false;\r\n\t\t\t\t}\r\n\r\n\r\n\t\t\t\t// Model\r\n\t\t\t\tscope.isChecked = (scope.config.defValue) ? scope.config.defValue : false; // initial value\r\n\t\t\t\tscope.switch = function () {\r\n\t\t\t\t\tscope.isChecked = !(scope.isChecked);\r\n\t\t\t\t\tscope.ngModel = scope.isChecked ? on : off;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tscope.$watch('ngModel', function (newValue, oldValue) {\r\n\t\t\t\t\tif (newValue !== undefined && newValue !== oldValue) {\r\n\t\t\t\t\t\tscope.isChecked = newValue; // switch values\r\n\t\t\t\t\t\tif (scope.switch2OnChange) scope.switch2OnChange(); // call callback function\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t};\r\n\t});","angular.module('afi.components.stepprogressbar', [])\r\n .directive('stepprogressbar', function () {\r\n \treturn {\r\n \t\trestrict: 'AE',\r\n \t\tscope: {\r\n \t\t\tcurrentStep: \"=model\",\r\n\t\t\t\ttotalStepsConfig: \"=totalStepsConfig\",\r\n\t\t\t\tdisablePrevious: \"=disablePrevious\"\r\n \t\t},\r\n \t\ttemplateUrl: templatesFolder + 'StepProgressBar.html',\r\n \t\tlink: function (scope, element, attr, ctrl, transclude) {\r\n\r\n \t\t\tscope.nextStep = function () {\r\n \t\t\t\tscope.currentStep += 1;\r\n \t\t\t};\r\n\r\n \t\t\tscope.prevStep = function () {\r\n \t\t\t\tscope.currentStep -= 1;\r\n \t\t\t};\r\n\r\n \t\t\tscope.setStep = function (number) {\r\n\t\t\t\t\tscope.currentStep = number;\r\n\t\t\t\t\tif (scope.totalStepsConfig[number].stateFunction) {\r\n\t\t\t\t\t\tvar curStep = scope.totalStepsConfig[number].stateFunction();\r\n\t\t\t\t\t\tif (Number.isInteger(curStep)) {\r\n\t\t\t\t\t\t\tscope.currentStep = curStep;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n \t\t\t};\r\n\r\n \t\t\t\r\n \t\t}\r\n \t}\r\n });","/**\r\n * @ngdoc module\r\n * @name \r\n * @description\r\n * \r\n */\r\nangular.module('afi.coolComponents', [\r\n 'afi.coolComponents.coolInput',\r\n 'afi.coolComponents.coolInputDate',\r\n 'afi.coolComponents.coolInputWithSlider',\r\n 'afi.coolComponents.coolSelect',\r\n 'afi.coolComponents.chart',\r\n 'afi.coolComponents.coolInputDate3Inputs',\r\n 'afi.coolComponents.coolInputRangeDate',\r\n 'afi.coolComponents.modalDialog',\r\n 'afi.coolComponents.radioList',\r\n 'afi.coolComponents.customPopover'\r\n]);","angular.module('afi.coolComponents.chart', [])\r\n\t.directive('chart', ['$timeout', function ($timeout) {\r\n\t\treturn {\r\n\t\t\trestrict: 'AE',\r\n\t\t\tscope: {\r\n\t\t\t\tdata: \"=?\",\r\n\t\t\t\tdata2: \"=?\",\r\n\t\t\t\tcolumnsData: \"=?\",\r\n\t\t\t\tconfig: \"=?\",\r\n\t\t\t\tadditionalInput: \"=?\"\r\n\t\t\t},\r\n\t\t\tlink: function (scope, elem, attrs, ngModel) {\r\n\t\t\t\tscope.$watch(\"data\", function (newValue) {\r\n\r\n\t\t\t\t\tif(!Afi.Utilities.isThereNaNs(newValue)){\r\n\t\t\t\t\t\tif(newValue != undefined){\r\n\t\t\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\t\t\tif (scope.data2 != undefined) {\r\n\t\t\t\t\t\t\t\t\teval(attrs.createChartFunction)(newValue, scope.data2, scope.columnsData, scope.config, elem[0], scope.additionalInput);\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\teval(attrs.createChartFunction)(newValue, scope.columnsData, scope.config, elem[0], scope.additionalInput);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}, 0);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}]);","/**\r\n * @ngdoc directive\r\n * @name coolInput\r\n * @kind function\r\n *\r\n * @description\r\n *\r\n */\r\nangular.module('afi.coolComponents.coolInput', [])\r\n\t.directive('coolInput', ['$filter', function ($filter) {\r\n\t\treturn {\r\n\t\t\trestrict: 'AE',\r\n\t\t\trequire: 'ngModel',\r\n\t\t\tscope: {\r\n\t\t\t\tmodel: \"=ngModel\",\r\n\t\t\t\tminValue: \"=?\",\r\n\t\t\t\tmaxValue: \"=?\",\r\n\t\t\t\tchangeEvent: \"=?\",\r\n\t\t\t\tblurEvent: \"=?\",\r\n\t\t\t\tformatFunction: \"=?\",\r\n\t\t\t\tunformatFunction: \"=?\",\r\n\t\t\t\tfocusFunction: \"=?\",\r\n\t\t\t\tadditionalInfo: \"=?\",\r\n\t\t\t\tdisabledInput: \"=?\",\r\n\t\t\t\thelpMsg: \"@helpmsg\",\r\n\t\t\t\tlabel: \"@label\",\r\n\t\t\t\tsuffixVariable: \"=?\"\r\n\t\t\t},\r\n\t\t\ttemplateUrl: templatesFolder + 'coolInput.html',\r\n\t\t\tcompile: function (scope, elem, attrs, ngModel) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tpre: function (scope, elem, attrs, ngModel) {\r\n\t\t\t\t\t\tscope.id = attrs.id;\r\n\t\t\t\t\t\tscope.type = \"tel\";\r\n\t\t\t\t\t\tscope.labelPosition = attrs.labelposition;\r\n\t\t\t\t\t\tscope.idError = attrs.id + \"_error\";\r\n\t\t\t\t\t\tscope.error = attrs.errormsg;\r\n\t\t\t\t\t\tscope.decimals = parseInt(attrs.decimals);\r\n\t\t\t\t\t\tscope.suffix = (scope.suffixVariable === undefined) ? attrs.suffix : attrs.suffixVariable;\r\n\t\t\t\t\t\tscope.unit = attrs.unit;\r\n\t\t\t\t\t\tscope.validUndefined = true;\r\n\t\t\t\t\t\tscope.elem = elem;\r\n\t\t\t\t\t\tscope.showHelp = (scope.helpMsg != undefined);\r\n\t\t\t\t\t\tscope.showAdditionalInfo = (scope.additionalInfo != undefined);\r\n\t\t\t\t\t\tscope.popoverPosition = (attrs.popoverPosition != undefined) ? attrs.popoverPosition : \"left\";\r\n\r\n\t\t\t\t\t\tscope.replaceMinMaxError = function () {\r\n\t\t\t\t\t\t\tvar minFormatted = 0;\r\n\t\t\t\t\t\t\tvar maxFormatted = 0;\r\n\r\n\t\t\t\t\t\t\tif (scope.formatFunction) {\r\n\t\t\t\t\t\t\t\tminFormatted = scope.formatFunction(scope.minValue);\r\n\t\t\t\t\t\t\t\tmaxFormatted = scope.formatFunction(scope.maxValue);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tminFormatted = $filter('number')(scope.minValue, '0');\r\n\t\t\t\t\t\t\t\tmaxFormatted = $filter('number')(scope.maxValue, '0');\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (attrs.errormsg != undefined) {\r\n\t\t\t\t\t\t\t\tscope.error = attrs.errormsg.replace(\"%min%\", minFormatted).replace(\"%max%\", maxFormatted);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tscope.$watch(\"minValue\", function () {\r\n\t\t\t\t\t\t\tscope.replaceMinMaxError();\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tscope.$watch(\"maxValue\", function () {\r\n\t\t\t\t\t\t\tscope.replaceMinMaxError();\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tscope.validate = function (validUndefined) {\r\n\t\t\t\t\t\t\tif (!scope.elem.is(\":visible\")) {\r\n\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (validUndefined && scope.model == undefined) {\r\n\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (scope.model >= scope.minValue && scope.model <= scope.maxValue) {\r\n\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tscope.$on('validate', function (event, validUndefined) {\r\n\t\t\t\t\t\t\tif (validUndefined.validUndefined == undefined) {\r\n\t\t\t\t\t\t\t\tvalidUndefined.validUndefined = true;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tscope.validUndefined = validUndefined.validUndefined;\r\n\r\n\t\t\t\t\t\t\tevent.targetScope.isValid = event.targetScope.isValid && scope.validate(validUndefined.validUndefined);\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tscope.changeValue = function () {\r\n\t\t\t\t\t\t\tif (scope.changeEvent != undefined) {\r\n\t\t\t\t\t\t\t\tscope.changeEvent();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tscope.blurValue = function () {\r\n\t\t\t\t\t\t\tif (scope.blurEvent != undefined) {\r\n\t\t\t\t\t\t\t\tscope.blurEvent();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tscope.focusCallback = function (eventParam) {\r\n\t\t\t\t\t\t\tif (scope.focusEvent !== undefined) {\r\n\t\t\t\t\t\t\t\tscope.focusEvent(scope, eventParam);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tscope.focusInput();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t\tscope.focusInput = function () {\r\n\t\t\t\t\t\t\tif (scope.formatFunction) {\r\n\t\t\t\t\t\t\t\tangular.element(\"#\" + scope.id + \"_input\").select();\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tvar tmp = angular.element(\"#\" + scope.id + \"_input\");\r\n\t\t\t\t\t\t\t\ttmp.select();\r\n\t\t\t\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\t\t\t\ttmp[0].setSelectionRange(0, tmp[0].value.length);\r\n\t\t\t\t\t\t\t\t}, 100);\r\n\t\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}])\r\n\t.directive('coolInputWithFormat', function () {\r\n\t\treturn {\r\n\t\t\trestrict: 'AE',\r\n\t\t\trequire: 'ngModel',\r\n\t\t\tscope: {\r\n\t\t\t\tmodel: \"=ngModel\",\r\n\t\t\t\tformatFunction: \"=\",\r\n\t\t\t\tunformatFunction: \"=\",\r\n\t\t\t\tsuffix: \"=?\",\r\n focusFunction: \"=?\"\r\n\t\t\t},\r\n\t\t\tlink: function (scope, elem, attrs, ngModel) {\r\n\t\t\t\tif (scope.formatFunction) {\r\n\t\t\t\t\tngModel.$formatters.push(function (number) {\r\n\t\t\t\t\t\treturn scope.formatFunction(number) + \" \" + ((scope.suffix != undefined) ? scope.suffix : \"\");\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tngModel.$parsers.push(function (str) {\r\n\t\t\t\t\t\treturn scope.unformatFunction(str);\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t$(elem).blur(function () {\r\n\t\t\t\t\t\tngModel.$modelValue = scope.formatFunction(scope.model) + \" \" + ((scope.suffix != undefined) ? scope.suffix : \"\");\r\n\t\t\t\t\t\t$(elem).val(function () {\r\n\t\t\t\t\t return scope.formatFunction(scope.model) + \" \" + ((scope.suffix != undefined) ? scope.suffix : \"\");\r\n\t\t\t\t\t });\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tif (scope.focusFunction) {\r\n\t\t\t\t\t $(elem).focus(function () {\r\n\t\t\t\t\t $(elem).val(function () {\r\n\t\t\t\t\t return scope.focusFunction(scope.model);\r\n\t\t\t\t\t })\r\n\t\t\t\t\t \r\n\t\t\t\t\t this.select();\r\n\t\t\t\t\t setTimeout(function () {\r\n\t\t\t\t\t if (this.value !== undefined) {\r\n\t\t\t\t\t this.setSelectionRange(0, this.value.length);\r\n\t\t\t\t\t }\r\n\t\t\t\t\t }, 100);\r\n\t\t\t\t\t });\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t});","/**\r\n * @ngdoc directive\r\n * @name coolInputDate\r\n * @kind function\r\n *\r\n * @description\r\n *\r\n */\r\nangular.module('afi.coolComponents.coolInputDate', ['afi.components.datepicker2Tif'])\r\n\t.directive('coolInputDate', function () {\r\n\t\treturn {\r\n\t\t\trestrict: 'AE',\r\n\t\t\trequire: 'ngModel',\r\n\t\t\tscope: {\r\n\t\t\t\tmodel: \"=ngModel\",\r\n\t\t\t\tmodelDate: \"=?\",\r\n\t\t\t\tmodelDateMin: \"=dateMin\",\r\n\t\t\t\tmodelDateMax: \"=dateMax\",\r\n\t\t\t\tchangeEvent: \"=?\",\r\n\t\t\t\tupdateEvent: \"=?\",\r\n\t\t\t\thelpMsg: \"@helpmsg\",\r\n\t\t\t\tallowNull: \"=?\",\r\n\t\t\t\tviewMode: \"=viewMode\",\r\n\t\t\t\tuseDatepicker: \"=?\",\r\n\t\t\t\tmobileInputMask: \"=?\"\r\n\t\t\t},\r\n\t\t\ttemplateUrl: templatesFolder + 'coolInputDate.html',\r\n\t\t\tcompile: function (scope, elem, attrs, ngModel) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tpre: function (scope, elem, attrs, ngModel) {\r\n\t\t\t\t\t\tscope.id = attrs.id;\r\n\t\t\t\t\t\tscope.type = \"tel\";\r\n\t\t\t\t\t\tscope.label = attrs.label;\r\n\t\t\t\t\t\tscope.idError = attrs.id + \"_error\";\r\n\t\t\t\t\t\tscope.error = attrs.errormsg;\r\n\t\t\t\t\t\tscope.validUndefined = true;\r\n\t\t\t\t\t\tscope.elem = elem;\r\n\t\t\t\t\t\tscope.showHelp = (scope.helpMsg != undefined);\r\n\t\t\t\t\t\tscope.dirty = false;\r\n\t\t\t\t\t\tscope.formatDate = attrs.format;\r\n\t\t\t\t\t\tscope.labelPosition = attrs.labelposition;\r\n\t\t\t\t\t\tscope.popoverPosition = (attrs.popoverPosition != undefined) ? attrs.popoverPosition : \"left\";\r\n\t\t\t\t\t\tscope.placeholder = (attrs.placeholder != undefined) ? attrs.placeholder : \"\" ;\r\n\t\t\t\t\t\tscope.useDatepicker = (scope.useDatepicker != undefined) ? scope.useDatepicker : true;\r\n\t\t\t\t\t\tscope.attrDatetoggle = (scope.useDatepicker) ? \"datetimepicker\" : \"\";\r\n\r\n\t\t\t\t\t\tscope.setDirty = function (dirty) {\r\n\t\t\t\t\t\t\tscope.dirty = dirty;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tscope.blurFunction = function (dirty) {\r\n\t\t\t\t\t\t\tscope.setDirty(false);\r\n\r\n\t\t\t\t\t\t\tif (scope.modelDate === undefined || !scope.validateDate(scope.modelDate.format(\"DD/MM/YYYY\"))) {\r\n\t\t\t\t\t\t\t\tscope.modelDate = scope.modelDateMax;\r\n\t\t\t\t\t\t\t} else if (!scope.validate(false)) {\r\n\t\t\t\t\t\t\t\tif (scope.modelDate < scope.modelDateMin) scope.modelDate = scope.modelDateMin;\r\n\t\t\t\t\t\t\t\telse if (scope.modelDate > scope.modelDateMax) scope.modelDate = scope.modelDateMax;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tvar ev = new Object();\r\n\t\t\t\t\t\t\tev.date = scope.modelDate;\r\n\t\t\t\t\t\t\t$(\"#\" + scope.id + \"_input\").trigger('change.datetimepicker', [ev]);\r\n\r\n\t\t\t\t\t\t\tif (moment(scope.model, \"DD/MM/YYYY\") > scope.modelDateMax) {\r\n scope.modelDate = scope.modelDateMax;\r\n scope.model = scope.modelDateMax.format(\"DD/MM/YYYY\");\r\n }\r\n else if (moment(scope.model, \"DD/MM/YYYY\") < scope.modelDateMin) {\r\n scope.modelDate = scope.modelDateMin;\r\n scope.model = scope.modelDateMin.format(\"DD/MM/YYYY\");\r\n }\r\n\r\n\t\t\t\t\t\t\tscope.setDirty(dirty);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tscope.config = {\r\n\t\t\t\t\t\t\tuseDatepicker: scope.useDatepicker, \r\n\t\t\t\t\t\t\tviewMode: scope.viewMode ? scope.viewMode : 'years',\r\n\t\t\t\t\t\t\tminDate: scope.modelDateMin.toDate(),\r\n\t\t\t\t\t\t\tmaxDate: scope.modelDateMax.toDate(),\r\n\t\t\t\t\t\t\tmin: scope.modelDateMin.format(\"DD/MM/YYYY\"),\r\n\t\t\t\t\t\t\tmax: scope.modelDateMax.format(\"DD/MM/YYYY\"),\r\n\t\t\t\t\t\t\tshowErrorMsg: false,\r\n\t\t\t\t\t\t\tformat: scope.formatDate,\r\n\t\t\t\t\t\t\tplacerholder: scope.formatDate.toLowerCase(),\r\n\t\t\t\t\t\t\tchangeEvent: scope.changeEvent,\r\n\t\t\t\t\t\t\talwaysOpen: attrs.alwaysopen,\r\n\t\t\t\t\t\t\tmobileInputMask: scope.mobileInputMask,\r\n\t\t\t\t\t\t\tupdateEvent: scope.updateEvent\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tscope.validateDate = function (dateStr) {\r\n\t\t\t\t\t\t\tuserFormat = 'dd/mm/yyyy';\r\n\t\t\t\t\t\t\tvar delimiter = /[^mdy]/.exec(userFormat)[0];\r\n\t\t\t\t\t\t\tvar format = userFormat.split(delimiter);\r\n\t\t\t\t\t\t\tvar date = dateStr.split(delimiter);\r\n\r\n\t\t\t\t\t\t\tvar m, d, y, i = 0, len = format.length, f;\r\n\t\t\t\t\t\t\tfor (i; i < len; i++) {\r\n\t\t\t\t\t\t\t\tf = format[i];\r\n\t\t\t\t\t\t\t\tif (/m/.test(f)) m = date[i];\r\n\t\t\t\t\t\t\t\tif (/d/.test(f)) d = date[i];\r\n\t\t\t\t\t\t\t\tif (/y/.test(f)) y = date[i];\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (m > 0 && m < 13 && y && y.length === 4 && d > 0 && d <= (new Date(y, m, 0)).getDate()) {\r\n\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tscope.$watch('model', function (newValue, oldValue) {\r\n\t\t\t\t\t\t\tif (newValue != undefined && newValue != oldValue) {\r\n\t\t\t\t\t\t\t\tvar dateAux = newValue.split('/');\r\n\r\n\t\t\t\t\t\t\t\tif (oldValue == undefined) {\r\n\t\t\t\t\t\t\t\t\toldValue = \"01/01/1900\";\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tvar oldDateAux = oldValue.split('/');\r\n\r\n\t\t\t\t\t\t\t\tif (scope.formatDate === \"DD/MM/YYYY\"\r\n\t\t\t\t\t\t\t\t\t|| (scope.formatDate === \"MM/YYYY\" && (parseInt(dateAux[1]) != parseInt(oldDateAux[1]) || parseInt(dateAux[2]) != parseInt(oldDateAux[2])))\r\n\t\t\t\t\t\t\t\t\t|| (scope.formatDate === \"YYYY\" && parseInt(dateAux[2]) != parseInt(oldDateAux[2]))) {\r\n\r\n\t\t\t\t\t\t\t\t\tif (dateAux.length == 3) {\r\n\t\t\t\t\t\t\t\t\t\tvar day = (dateAux[0].length == 1) ? (\"0\" + dateAux[0].toString()) : dateAux[0].toString();\r\n\t\t\t\t\t\t\t\t\t\tvar month = (dateAux[1].length == 1) ? (\"0\" + dateAux[1]) : dateAux[1];\r\n\r\n\t\t\t\t\t\t\t\t\t\tvar modelStr = day + \"/\" + month + \"/\" + dateAux[2];\r\n\r\n\t\t\t\t\t\t\t\t\t\tif (Afi.Date.validateDate(modelStr)) {\r\n\t\t\t\t\t\t\t\t\t\t\tscope.modelDate = moment(modelStr, \"DD/MM/YYYY\");\r\n\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\tscope.modelDate = undefined;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\tif (Afi.Utilities.isMobile() && scope.changeEvent) {\r\n\t\t\t\t\t\t\t\t\t\t\tclearTimeout(scope.timerChangeEvent);\r\n\t\t\t\t\t\t\t\t\t\t\tscope.timerChangeEvent = setTimeout(function () {\r\n\t\t\t\t\t\t\t\t\t\t\t\tscope.changeEvent();\r\n\t\t\t\t\t\t\t\t\t\t\t}, 1000);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\telse if (dateAux.length == 1 && dateAux[0].length == 8 && !isNaN(dateAux[0])) {\r\n\t\t\t\t\t\t\t\t\t\tvar day = dateAux[0].substring(0, 2);\r\n\t\t\t\t\t\t\t\t\t\tvar month = dateAux[0].substring(2, 4);\r\n\t\t\t\t\t\t\t\t\t\tvar year = dateAux[0].substring(4);\r\n\r\n\t\t\t\t\t\t\t\t\t\tvar modelStr = day + \"/\" + month + \"/\" + year;\r\n\r\n\t\t\t\t\t\t\t\t\t\tif (Afi.Date.validateDate(modelStr)) {\r\n\t\t\t\t\t\t\t\t\t\t\tscope.model = modelStr;\r\n\t\t\t\t\t\t\t\t\t\t\tscope.modelDate = moment(modelStr, \"DD/MM/YYYY\");\r\n\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\tscope.modelDate = undefined;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\tif (Afi.Utilities.isMobile() && scope.changeEvent) {\r\n\t\t\t\t\t\t\t\t\t\t\tclearTimeout(scope.timerChangeEvent);\r\n\t\t\t\t\t\t\t\t\t\t\tscope.timerChangeEvent = setTimeout(function () {\r\n\t\t\t\t\t\t\t\t\t\t\t\tscope.changeEvent();\r\n\t\t\t\t\t\t\t\t\t\t\t}, 1000);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tscope.$watch('modelDateMin', function (newValue, oldValue) {\r\n\t\t\t\t\t\t\tif (newValue != undefined && newValue.format(\"DD/MM/YYYY\") != oldValue.format(\"DD/MM/YYYY\")) {\r\n\t\t\t\t\t\t\t\tscope.config.minDate = newValue.toDate();\r\n\r\n\t\t\t\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\t\t\t\tif (scope.model == undefined) {\r\n\t\t\t\t\t\t\t\t\t\t$(\"#\" + scope.id + \"_input\").val(\"\");\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}, 0);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tscope.$watch('modelDateMax', function (newValue, oldValue) {\r\n\t\t\t\t\t\t\tif (newValue != undefined && newValue.format(\"DD/MM/YYYY\") != oldValue.format(\"DD/MM/YYYY\")) {\r\n\t\t\t\t\t\t\t\tscope.config.maxDate = newValue.toDate();\r\n\r\n\t\t\t\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\t\t\t\tif (scope.model == undefined) {\r\n\t\t\t\t\t\t\t\t\t\t$(\"#\" + scope.id + \"_input\").val(\"\");\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}, 0);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tscope.replaceMinMaxError = function () {\r\n\t\t\t\t\t\t\tmaxAge = moment().subtract(scope.modelDateMin.year(), 'years').year();\r\n\t\t\t\t\t\t\tminAge = moment().subtract(scope.modelDateMax.year(), 'years').year();\r\n\r\n\t\t\t\t\t\t\tif (attrs.errormsg != undefined) {\r\n\t\t\t\t\t\t\t\tscope.error = attrs.errormsg.replace(\"%min%\", minAge).replace(\"%max%\", maxAge);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tscope.validate = function (validUndefined) {\r\n\t\t\t\t\t\t\tif (!scope.elem.is(\":visible\") || scope.dirty) {\r\n\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (scope.model != undefined && scope.modelDate != undefined) {\r\n\r\n\t\t\t\t\t\t\t\tvar modelDateAux = scope.modelDate.clone();\r\n\t\t\t\t\t\t\t\tvar dateMin = scope.modelDateMin.clone();\r\n\t\t\t\t\t\t\t\tvar dateMax = scope.modelDateMax.clone();\r\n\t\t\t\t\t\t\t\tif (scope.formatDate === \"MM/YYYY\" && dateMin != undefined && dateMax != undefined) {\r\n\t\t\t\t\t\t\t\t\tmodelDateAux.set('date', 1);\r\n\t\t\t\t\t\t\t\t\tdateMin.set('date', 1);\r\n\t\t\t\t\t\t\t\t\tdateMax.set('date', 1);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (modelDateAux.isSameOrBefore(dateMax) && modelDateAux.isSameOrAfter(dateMin)) {\r\n\t\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tscope.replaceMinMaxError();\r\n\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} else if (!validUndefined) {\r\n\t\t\t\t\t\t\t\tscope.replaceMinMaxError();\r\n\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tscope.$on('validate', function (event, validUndefined) {\r\n\t\t\t\t\t\t\tif (scope.allowNull) {\r\n\t\t\t\t\t\t\t\tevent.targetScope.isValid = true;\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tif (validUndefined.validUndefined == undefined) {\r\n\t\t\t\t\t\t\t\t\tvalidUndefined.validUndefined = true;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tscope.validUndefined = validUndefined.validUndefined;\r\n\r\n\t\t\t\t\t\t\t\tevent.targetScope.isValid = event.targetScope.isValid && scope.validate(validUndefined.validUndefined);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tscope.focusInput = function () {\r\n\t\t\t\t\t\t\t$(\"#\" + scope.id + \"_input\").focus();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t});","angular.module('afi.coolComponents.coolInputDate3Inputs', [])\r\n\t.directive('coolInputDate3Inputs', function () {\r\n\t\treturn {\r\n\t\t\trestrict: 'AE',\r\n\t\t\trequire: 'ngModel',\r\n\t\t\tscope: {\r\n\t\t\t\tmodel: \"=ngModel\",\r\n\t\t\t\tmodelDate: \"=?\",\r\n\t\t\t\tmodelDateMin: \"=dateMin\",\r\n\t\t\t\tmodelDateMax: \"=dateMax\",\r\n\t\t\t\thelpMsg: \"@helpmsg\",\r\n\t\t\t\tlabel: \"@label\"\r\n\t\t\t},\r\n\t\t\ttemplateUrl: templatesFolder + 'coolInputDate3Inputs.html',\r\n\t\t\tlink: function (scope, elem, attrs, ngModel) {\r\n\t\t\t\tscope.id = attrs.id;\r\n\t\t\t\tscope.type = \"tel\";\r\n\t\t\t\tscope.labelDay = attrs.labelday;\r\n\t\t\t\tscope.labelMonth = attrs.labelmonth;\r\n\t\t\t\tscope.labelYear = attrs.labelyear;\r\n\t\t\t\tscope.idError = attrs.id + \"_error\";\r\n\t\t\t\tscope.error = attrs.errormsg;\r\n\t\t\t\tscope.maxYearValue = new Date().getFullYear();\r\n\t\t\t\tscope.decimals = parseInt(attrs.decimals);\r\n\t\t\t\tscope.validUndefined = true;\r\n\t\t\t\tscope.elem = elem;\r\n\t\t\t\tscope.showHelp = (scope.helpMsg != undefined);\r\n\t\t\t\tscope.popoverPosition = (attrs.popoverPosition != undefined) ? attrs.popoverPosition : \"left\";\r\n\r\n\t\t\t\tif (scope.model != undefined) {\r\n\t\t\t\t\tvar dateStrAux = scope.model.split(\"/\");\r\n\t\t\t\t\tscope.modelDay = dateStrAux[0];\r\n\t\t\t\t\tscope.modelMonth = dateStrAux[1];\r\n\t\t\t\t\tscope.modelYear = dateStrAux[2];\r\n\t\t\t\t}\r\n\r\n\t\t\t\tscope.$watch('modelDay', function (newValue, oldValue) {\r\n\t\t\t\t\tif (scope.modelMonth != undefined && scope.modelYear != undefined) {\r\n\t\t\t\t\t\tvar day = (newValue.toString().length == 1) ? (\"0\" + newValue.toString()) : newValue.toString();\r\n\t\t\t\t\t\tvar month = (scope.modelMonth.toString().length == 1) ? (\"0\" + scope.modelMonth.toString()) : scope.modelMonth.toString();\r\n\r\n\t\t\t\t\t\tscope.model = day + \"/\" + month + \"/\" + scope.modelYear.toString();\r\n\t\t\t\t\t\tscope.modelDate = moment(scope.model, \"DD/MM/YYYY\");\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (newValue != undefined && newValue.toString()[newValue.toString().length - 1] == '/') {\r\n\t\t\t\t\t\tscope.modelDay = oldValue;\r\n\t\t\t\t\t\t$(\"#\" + scope.id + \"_month\").focus();\r\n\t\t\t\t\t} else if (newValue != undefined && newValue.toString().length == 2) {\r\n\t\t\t\t\t\t$(\"#\" + scope.id + \"_month\").focus();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tscope.$watch('modelMonth', function (newValue, oldValue) {\r\n\t\t\t\t\tif (scope.modelDay != undefined && scope.modelYear != undefined) {\r\n\t\t\t\t\t\tvar day = (scope.modelDay.toString().length == 1) ? (\"0\" + scope.modelDay.toString()) : scope.modelDay.toString();\r\n\t\t\t\t\t\tvar month = (newValue.toString().length == 1) ? (\"0\" + newValue.toString()) : newValue.toString();\r\n\r\n\t\t\t\t\t\tscope.model = day + \"/\" + month + \"/\" + scope.modelYear.toString();\r\n\t\t\t\t\t\tscope.modelDate = moment(scope.model, \"DD/MM/YYYY\");\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (newValue != undefined && newValue.toString()[newValue.toString().length - 1] == '/') {\r\n\t\t\t\t\t\tscope.modelMonth = oldValue;\r\n\t\t\t\t\t\t$(\"#\" + scope.id + \"_year\").focus();\r\n\t\t\t\t\t} else if (newValue != undefined && newValue.toString().length == 2) {\r\n\t\t\t\t\t\t$(\"#\" + scope.id + \"_year\").focus();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tscope.$watch('modelYear', function (newValue) {\r\n\t\t\t\t\tif (scope.modelDay != undefined && scope.modelMonth != undefined && newValue != 1900) {\r\n\t\t\t\t\t\tvar day = (scope.modelDay.toString().length == 1) ? (\"0\" + scope.modelDay.toString()) : scope.modelDay.toString();\r\n\t\t\t\t\t\tvar month = (scope.modelMonth.toString().length == 1) ? (\"0\" + scope.modelMonth.toString()) : scope.modelMonth.toString();\r\n\r\n\t\t\t\t\t\tscope.model = day + \"/\" + month + \"/\" + newValue.toString();\r\n\t\t\t\t\t\tscope.modelDate = moment(scope.model, \"DD/MM/YYYY\");\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tscope.validate = function (validUndefined) {\r\n\t\t\t\t\tif (!scope.elem.is(\":visible\")) {\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (scope.modelDay != undefined && scope.modelMonth != undefined && scope.modelYear != undefined && scope.modelDate != undefined) {\r\n\t\t\t\t\t\tif (scope.modelDate.isBefore(scope.modelDateMax) && scope.modelDate.isAfter(scope.modelDateMin)) {\r\n\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else if (!validUndefined) {\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tscope.$on('validate', function (event, validUndefined) {\r\n\t\t\t\t\tif (validUndefined.validUndefined == undefined) {\r\n\t\t\t\t\t\tvalidUndefined.validUndefined = true;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tscope.validUndefined = validUndefined.validUndefined;\r\n\r\n\t\t\t\t\tevent.targetScope.isValid = event.targetScope.isValid && scope.validate(validUndefined.validUndefined);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t});","angular.module('afi.coolComponents.coolInputRangeDate', [])\r\n\t.directive('coolInputRangeDate', ['$timeout', function ($timeout) {\r\n\t\treturn {\r\n\t\t\trestrict: 'AE',\r\n\t\t\trequire: 'ngModel',\r\n\t\t\tscope: {\r\n\t\t\t\tmodel: \"=ngModel\",\r\n\t\t\t\tmodelDate: \"=?\",\r\n\t\t\t\tmodelDateMin: \"=dateMin\",\r\n\t\t\t\tmodelDateMax: \"=dateMax\",\r\n\r\n\t\t\t\tmodel2: \"=ngModel2\",\r\n\t\t\t\tmodelDate2: \"=?\",\r\n\t\t\t\tmodelDateMin2: \"=dateMin2\",\r\n\t\t\t\tmodelDateMax2: \"=dateMax2\",\r\n\r\n\t\t\t\tchangeEvent: \"=?\",\r\n\t\t\t\thelpMsg: \"@helpmsg\",\r\n\t\t\t\tlabel: \"@label\"\r\n\t\t\t},\r\n\t\t\ttemplateUrl: templatesFolder + 'coolInputRangeDate.html',\r\n\t\t\tcompile: function (scope, elem, attrs, ngModel) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tpre: function (scope, elem, attrs, ngModel) {\r\n\t\t\t\t\t\tscope.id = attrs.id;\r\n\t\t\t\t\t\tscope.error = attrs.errormsg;\r\n\t\t\t\t\t\tscope.showHelp = (scope.helpMsg != undefined);\r\n\t\t\t\t\t\tscope.formatDate = attrs.format;\r\n\t\t\t\t\t\tscope.showCalendars = false;\r\n\t\t\t\t\t\tscope.datesStr = \"\";\r\n\t\t\t\t\t\tscope.popoverPosition = (attrs.popoverPosition != undefined) ? attrs.popoverPosition : \"left\";\r\n\r\n\t\t\t\t\t\tscope.toggleCalendars = function () {\r\n\t\t\t\t\t\t\tscope.showCalendars = !scope.showCalendars;\r\n\r\n\t\t\t\t\t\t\tif (scope.showCalendars) {\r\n\t\t\t\t\t\t\t\tscope.selectedYearsAndMonths();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tscope.setDatesStr = function () {\r\n\t\t\t\t\t\t\tscope.datesStr = scope.model + \" - \" + scope.model2;\r\n\r\n\t\t\t\t\t\t\tif (scope.formatDate == \"MM/YYYY\") {\r\n\t\t\t\t\t\t\t\tvar dateAux = scope.model.split('/');\r\n\t\t\t\t\t\t\t\tvar date2Aux = scope.model2.split('/');\r\n\r\n\t\t\t\t\t\t\t\tscope.datesStr = dateAux[1] + \"/\" + dateAux[2] + \" - \" + date2Aux[1] + \"/\" + date2Aux[2];\r\n\t\t\t\t\t\t\t} else if (scope.formatDate == \"YYYY\") {\r\n\t\t\t\t\t\t\t\tvar dateAux = scope.model.split('/');\r\n\t\t\t\t\t\t\t\tvar date2Aux = scope.model2.split('/');\r\n\r\n\t\t\t\t\t\t\t\tscope.datesStr = dateAux[2] + \" - \" + date2Aux[2];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tscope.getMonthNumberFromName = function (name) {\r\n\t\t\t\t\t\t\tswitch (name) {\r\n\t\t\t\t\t\t\t\tcase \"ene.\":\r\n\t\t\t\t\t\t\t\t\treturn 1;\r\n\t\t\t\t\t\t\t\tcase \"feb.\":\r\n\t\t\t\t\t\t\t\t\treturn 2;\r\n\t\t\t\t\t\t\t\tcase \"mar.\":\r\n\t\t\t\t\t\t\t\t\treturn 3;\r\n\t\t\t\t\t\t\t\tcase \"abr.\":\r\n\t\t\t\t\t\t\t\t\treturn 4;\r\n\t\t\t\t\t\t\t\tcase \"may.\":\r\n\t\t\t\t\t\t\t\t\treturn 5;\r\n\t\t\t\t\t\t\t\tcase \"jun.\":\r\n\t\t\t\t\t\t\t\t\treturn 6;\r\n\t\t\t\t\t\t\t\tcase \"jul.\":\r\n\t\t\t\t\t\t\t\t\treturn 7;\r\n\t\t\t\t\t\t\t\tcase \"ago.\":\r\n\t\t\t\t\t\t\t\t\treturn 8;\r\n\t\t\t\t\t\t\t\tcase \"sep.\":\r\n\t\t\t\t\t\t\t\t\treturn 9;\r\n\t\t\t\t\t\t\t\tcase \"oct.\":\r\n\t\t\t\t\t\t\t\t\treturn 10;\r\n\t\t\t\t\t\t\t\tcase \"nov.\":\r\n\t\t\t\t\t\t\t\t\treturn 11;\r\n\t\t\t\t\t\t\t\tcase \"dic.\":\r\n\t\t\t\t\t\t\t\t\treturn 12;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar selectedYear1 = -1;\r\n\t\t\t\t\t\tvar selectedYear2 = -1;\r\n\t\t\t\t\t\tvar selectedMonth1 = -1;\r\n\t\t\t\t\t\tvar selectedMonth2 = -1;\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tscope.selectedYearsAndMonths = function () {\r\n\t\t\t\t\t\t\tselectedYear1 = scope.modelDate.year();\r\n\t\t\t\t\t\t\tselectedMonth1 = scope.modelDate.month() + 1;\r\n\t\t\t\t\t\t\tselectedYear2 = scope.modelDate2.year();\r\n\t\t\t\t\t\t\tselectedMonth2 = scope.modelDate2.month() + 1;\r\n\r\n\t\t\t\t\t\t\t/*Marcar años en el rango*/\r\n\t\t\t\t\t\t\t$(\".cntDateRange .datepicker-years span.year\").each(function () {\r\n\t\t\t\t\t\t\t\tvar currentYear = parseInt($(this).html());\r\n\t\t\t\t\t\t\t\tif (currentYear >= selectedYear1 && currentYear <= selectedYear2) {\r\n\t\t\t\t\t\t\t\t\t$(this).addClass(\"insideRange\");\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t$(this).removeClass(\"insideRange\");\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t$(this).removeClass(\"active\");\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t$($(\".cntDateRange .datepicker-years span.year.insideRange\")[0]).addClass(\"active\");\r\n\t\t\t\t\t\t\t$($(\".cntDateRange .datepicker-years span.year.insideRange\")[$(\".cntDateRange .datepicker-years span.year.insideRange\").length - 1]).addClass(\"active\");\r\n\r\n\t\t\t\t\t\t\t/*Marcar meses en el rango*/\r\n\t\t\t\t\t\t\t$($(\".cntDateRange .datepicker-months\")[0]).find(\"span.month\").each(function () {\r\n\t\t\t\t\t\t\t\tvar currentYear = parseInt($($(\".cntDateRange .datepicker-months\")[0]).find(\".picker-switch\").html());\r\n\t\t\t\t\t\t\t\tvar currentMonth = scope.getMonthNumberFromName($(this).html());\r\n\r\n\t\t\t\t\t\t\t\tif ((currentYear > selectedYear1 && currentYear < selectedYear2)\r\n\t\t\t\t\t\t\t\t\t|| (currentYear === selectedYear1 && currentMonth >= selectedMonth1)\r\n\t\t\t\t\t\t\t\t\t|| (currentYear === selectedYear2 && currentMonth <= selectedMonth2)) {\r\n\t\t\t\t\t\t\t\t\t$(this).addClass(\"insideRange\");\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t$(this).removeClass(\"insideRange\");\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t$(this).removeClass(\"active\");\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t$($(\".cntDateRange .datepicker-months\")[1]).find(\"span.month\").each(function () {\r\n\t\t\t\t\t\t\t\tvar currentYear = parseInt($($(\".datepicker-months\")[1]).find(\".picker-switch\").html());\r\n\t\t\t\t\t\t\t\tvar currentMonth = scope.getMonthNumberFromName($(this).html());\r\n\r\n\t\t\t\t\t\t\t\tif ((currentYear > selectedYear1 && currentYear < selectedYear2)\r\n\t\t\t\t\t\t\t\t\t|| (currentYear === selectedYear1 && currentMonth >= selectedMonth1)\r\n\t\t\t\t\t\t\t\t\t|| (currentYear === selectedYear2 && currentMonth <= selectedMonth2)) {\r\n\t\t\t\t\t\t\t\t\t$(this).addClass(\"insideRange\");\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t$(this).removeClass(\"insideRange\");\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t$(this).removeClass(\"active\");\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t$($($(\".cntDateRange .datepicker-months\")[0]).find(\"span.month.insideRange\")[0]).addClass(\"active\");\r\n\t\t\t\t\t\t\t$($($(\".cntDateRange .datepicker-months\")[1]).find(\"span.month.insideRange\")[$($(\".cntDateRange .datepicker-months\")[1]).find(\"span.month.insideRange\").length - 1]).addClass(\"active\");\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tscope.changeFunction = function () {\r\n\t\t\t\t\t\t\tscope.selectedYearsAndMonths();\r\n\t\t\t\t\t\t\tif (scope.changeEvent != undefined) {\r\n\t\t\t\t\t\t\t\tscope.changeEvent();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tscope.$watch(\"model\", function (newValue) {\r\n\t\t\t\t\t\t\tscope.setDatesStr();\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tscope.$watch(\"model2\", function (newValue) {\r\n\t\t\t\t\t\t\tscope.setDatesStr();\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tscope.$watch(\"modelDate2\", function (newValue) {\r\n\t\t\t\t\t\t\tscope.selectedYearsAndMonths();\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t// Forzar el cerrado del contenedor de calendarios\r\n\t\t\t\t\t\t// cuando se pierda focus\r\n\t\t\t\t\t\t$(elem).focusout(function () {\r\n\t\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t\tscope.showCalendars = false;\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t$(\".cntDateRange\").click(function (e) {\r\n\t\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\t})\r\n\r\n\t\t\t\t\t\tscope.focusInput = function () {\r\n\t\t\t\t\t\t\t$(\"#\" + scope.id + \"_input\").focus();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}]);","angular.module('afi.coolComponents.coolInputWithSlider', ['afi.components.sliderTif'])\r\n\t\t\t\t\t.directive('coolInputWithSlider', ['$filter', '$timeout', function ($filter, $timeout) {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\trestrict: 'AE',\r\n\t\t\t\t\t\t\trequire: 'ngModel',\r\n\t\t\t\t\t\t\tscope: {\r\n\t\t\t\t\t\t\t\tmodel: \"=ngModel\",\r\n\t\t\t\t\t\t\t\tconfigSld: \"=configSld\",\r\n\t\t\t\t\t\t\t\tsuffixLiteralDown: \"=?\",\r\n\t\t\t\t\t\t\t\tminValue: \"=?\",\r\n\t\t\t\t\t\t\t\tmaxValue: \"=?\",\r\n\t\t\t\t\t\t\t\tminValid: \"=?\",\r\n\t\t\t\t\t\t\t\tmaxValid: \"=?\",\r\n\t\t\t\t\t\t\t\tfocusEvent: \"=?\",\r\n\t\t\t\t\t\t\t\tclickLabelEvent: \"=?\",\r\n\t\t\t\t\t\t\t\tformatFunction: \"=?\",\r\n\t\t\t\t\t\t\t\tunformatFunction: \"=?\",\r\n\t\t\t\t\t\t\t\tadditionalInfo: \"=?\",\r\n\t\t\t\t\t\t\t\tdisabledInput: \"=?\",\r\n\t\t\t\t\t\t\t\thelpMsg: \"@helpmsg\",\r\n\t\t\t\t\t\t\t\tsecondquantity: \"=?\",\r\n\t\t\t\t\t\t\t\tsecondquantitydecimals: \"=?\",\r\n\t\t\t\t\t\t\t\tsecondquantityunit: \"=?\",\r\n\t\t\t\t\t\t\t\tsuffixVariable: \"=?\"\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\ttemplateUrl: templatesFolder + 'coolInputWithSlider.html',\r\n\t\t\t\t\t\t\tcompile: function (scope, elem, attrs, ngModel) {\r\n\t\t\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t\t\tpre: function (scope, elem, attrs, ngModel) {\r\n\t\t\t\t\t\t\t\t\t\t/*Input configuration*/\r\n\t\t\t\t\t\t\t\t\t\tscope.id = attrs.id;\r\n\t\t\t\t\t\t\t\t\t\tscope.type = \"text\";\r\n\t\t\t\t\t\t\t\t\t\tscope.label = attrs.label;\r\n\t\t\t\t\t\t\t\t\t\tscope.labelPosition = attrs.labelposition;\r\n\t\t\t\t\t\t\t\t\t\tscope.idError = attrs.id + \"_error\";\r\n\t\t\t\t\t\t\t\t\t\tscope.error = attrs.errormsg;\r\n\t\t\t\t\t\t\t\t\t\tscope.decimals = parseInt(attrs.decimals);\r\n\t\t\t\t\t\t\t\t\t\tscope.unit = attrs.unit;\r\n\t\t\t\t\t\t\t\t\t\tscope.suffix = (scope.suffixVariable === undefined) ? attrs.suffix : scope.suffixVariable;\r\n\t\t\t\t\t\t\t\t\t\tscope.showHelp = (scope.helpMsg != undefined);\r\n\t\t\t\t\t\t\t\t\t\tscope.showAdditionalInfo = (scope.additionalInfo != undefined);\r\n\t\t\t\t\t\t\t\t\t\tscope.popoverPosition = (attrs.popoverPosition != undefined) ? attrs.popoverPosition : \"left\";\r\n\t\t\t\t\t\t\t\t\t\tscope.disabledInput = (scope.disabledInput == undefined) ? false : scope.disabledInput;\r\n\t\t\t\t\t\t\t\t\t\tscope.validUndefined = true;\r\n\t\t\t\t\t\t\t\t\t\tscope.elem = elem;\r\n\t\t\t\t\t\t\t\t\t\tscope.type = attrs.type;\r\n\t\t\t\t\t\t\t\t\t\tscope.modelSlider = scope.model;\r\n\t\t\t\t\t\t\t\t\t\tscope.minValueSlider = scope.minValue;\r\n\t\t\t\t\t\t\t\t\t\tscope.maxValueSlider = scope.maxValue;\r\n\r\n\t\t\t\t\t\t\t\t\t\tscope.replaceMinMaxError = function () {\r\n\t\t\t\t\t\t\t\t\t\t\tvar minFormatted = 0;\r\n\t\t\t\t\t\t\t\t\t\t\tvar maxFormatted = 0;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tvar minValidateValue = scope.minValue;\r\n\t\t\t\t\t\t\t\t\t\t\tvar maxValidateValue = scope.maxValue;\r\n\t\t\t\t\t\t\t\t\t\t\tif (scope.minValid != undefined) minValidateValue = scope.minValid;\r\n\t\t\t\t\t\t\t\t\t\t\tif (scope.maxValid != undefined) maxValidateValue = scope.maxValid;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tminFormatted = $filter('number')(minValidateValue, '0');\r\n\t\t\t\t\t\t\t\t\t\t\tmaxFormatted = $filter('number')(maxValidateValue, '0');\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tif (attrs.errormsg != undefined) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tscope.error = attrs.errormsg.replace(\"%min%\", minFormatted).replace(\"%max%\", maxFormatted);\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\tscope.replaceMinMaxHelp = function () {\r\n\t\t\t\t\t\t\t\t\t\t\tvar minFormatted = 0;\r\n\t\t\t\t\t\t\t\t\t\t\tvar maxFormatted = 0;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tvar minValidateValue = scope.minValue;\r\n\t\t\t\t\t\t\t\t\t\t\tvar maxValidateValue = scope.maxValue;\r\n\t\t\t\t\t\t\t\t\t\t\tif (scope.minValid != undefined) minValidateValue = scope.minValid;\r\n\t\t\t\t\t\t\t\t\t\t\tif (scope.maxValid != undefined) maxValidateValue = scope.maxValid;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tminFormatted = $filter('number')(minValidateValue, '0');\r\n\t\t\t\t\t\t\t\t\t\t\tmaxFormatted = $filter('number')(maxValidateValue, '0');\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tif (scope.helpMsg !== undefined) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tscope.helpMsg = attrs.helpmsg.replace(\"%min%\", minFormatted).replace(\"%max%\", maxFormatted);\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t\t\t\t\tscope.replaceMinMaxHelp();\r\n\t\t\t\t\t\t\t\t\t\t}, 0);\r\n\r\n\t\t\t\t\t\t\t\t\t\tif (scope.formatFunction) {\r\n\t\t\t\t\t\t\t\t\t\t\tscope.configSld.formatFunction = scope.formatFunction;\r\n\t\t\t\t\t\t\t\t\t\t\tscope.configSld.paintValueFunction = scope.formatFunction;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\tscope.$watch(\"disabledInput\", function (newValue) {\r\n\t\t\t\t\t\t\t\t\t\t\tif (newValue != undefined) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t$(\"#\" + scope.id + \"_slider\").slider({ disabled: newValue });\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t\t\t\t\t$(\"#\" + scope.id + \"_slider\").slider({ disabled: scope.disabledInput });\r\n\t\t\t\t\t\t\t\t\t\t}, 0);\r\n\r\n\t\t\t\t\t\t\t\t\t\tscope.$watch(\"minValue\", function (newValue) {\r\n\t\t\t\t\t\t\t\t\t\t\tif (scope.type === \"PERCENTAGE\" && newValue !== undefined && !isNaN(newValue)) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tscope.minValueSlider = newValue * 100;\r\n\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\tscope.minValueSlider = newValue;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tif (scope.model < newValue) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tscope.model = scope.minValue;\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (scope.type === \"PERCENTAGE\") {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tscope.modelSlider = scope.model * 100;\r\n\t\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tscope.modelSlider = scope.model;\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tscope.replaceMinMaxHelp();\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\t\t\tscope.$watch(\"maxValue\", function (newValue) {\r\n\t\t\t\t\t\t\t\t\t\t\tif (scope.type === \"PERCENTAGE\" && newValue !== undefined && !isNaN(newValue)) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tscope.maxValueSlider = newValue * 100;\r\n\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\tscope.maxValueSlider = newValue;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tif (scope.model > newValue) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tscope.model = scope.maxValue;\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (scope.type === \"PERCENTAGE\") {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tscope.modelSlider = scope.model * 100;\r\n\t\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tscope.modelSlider = scope.model;\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tscope.replaceMinMaxHelp();\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\t\t\tscope.validate = function (validUndefined) {\r\n\t\t\t\t\t\t\t\t\t\t\tif (!scope.elem.is(\":visible\")) {\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tif (validUndefined && scope.model === scope.minValue) {\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tvar minValidateValue = scope.minValue;\r\n\t\t\t\t\t\t\t\t\t\t\tvar maxValidateValue = scope.maxValue;\r\n\t\t\t\t\t\t\t\t\t\t\tif (scope.minValid != undefined) minValidateValue = scope.minValid;\r\n\t\t\t\t\t\t\t\t\t\t\tif (scope.maxValid != undefined) maxValidateValue = scope.maxValid;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tif (scope.model >= minValidateValue && scope.model <= maxValidateValue) {\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tscope.replaceMinMaxError();\r\n\t\t\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\tscope.$on('validate', function (event, validUndefined) {\r\n\t\t\t\t\t\t\t\t\t\t\tif (validUndefined.validUndefined == undefined) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tvalidUndefined.validUndefined = true;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tscope.validUndefined = validUndefined.validUndefined;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tevent.targetScope.isValid = event.targetScope.isValid && scope.validate(validUndefined.validUndefined);\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\t\t\tscope.blurEvent = function () {\r\n\t\t\t\t\t\t\t\t\t\t\tif (scope.model === undefined || isNaN(scope.model)) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tscope.model = scope.minValue;\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (scope.type === \"PERCENTAGE\") {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tscope.modelSlider = scope.model * 100;\r\n\t\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tscope.modelSlider = scope.model;\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tscope.configSld.stopEvent();\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\tscope.focusCallback = function (eventParam) {\r\n\t\t\t\t\t\t\t\t\t\t\tif (scope.focusEvent !== undefined) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tscope.focusEvent(scope, eventParam);\r\n\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\tscope.focusInput();\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\tscope.clickLabelCallback = function (eventParam) {\r\n\t\t\t\t\t\t\t\t\t\t\tif (scope.clickLabelEvent !== undefined) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tscope.clickLabelEvent(scope, eventParam);\r\n\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\tscope.focusInput();\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\tscope.focusInput = function () {\r\n\t\t\t\t\t\t\t\t\t\t\tif (scope.formatFunction) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tangular.element(\"#\" + scope.id + \"_input\").select();\r\n\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\tvar tmp = angular.element(\"#\" + scope.id + \"_input1\");\r\n\t\t\t\t\t\t\t\t\t\t\t\ttmp.select();\r\n\t\t\t\t\t\t\t\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\ttmp[0].setSelectionRange(0, tmp[0].value.length);\r\n\t\t\t\t\t\t\t\t\t\t\t\t}, 100);\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\tscope.$watch(\"model\", function (newValue) {\r\n\t\t\t\t\t\t\t\t\t\t\tif (isNaN(newValue)) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tscope.model = scope.minValue;\r\n\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (scope.type === \"PERCENTAGE\") {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tscope.modelSlider = newValue * 100;\r\n\t\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tscope.modelSlider = newValue;\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\t\t\tscope.$watch(\"modelSlider\", function (newValue, oldValue) {\r\n\t\t\t\t\t\t\t\t\t\t\tif (scope.type === \"PERCENTAGE\" && newValue !== oldValue) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tscope.model = newValue / 100;\r\n\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\tscope.model = newValue;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}]);","angular.module('afi.coolComponents.coolSelect', [])\r\n\t.directive('coolSelect', ['$timeout', function ($timeout) {\r\n\t\treturn {\r\n\t\t\trestrict: 'AE',\r\n\t\t\trequire: 'ngModel',\r\n\t\t\tscope: {\r\n\t\t\t\tmodel: \"=ngModel\",\r\n\t\t\t\toptions: \"=?\",\r\n\t\t\t\tchangeEvent: \"=?\",\r\n\t\t\t\tlabel: \"@label\"\r\n\t\t\t},\r\n\t\t\ttemplateUrl: templatesFolder + 'coolSelect.html',\r\n\t\t\tlink: function (scope, elem, attrs, ngModel) {\r\n\t\t\t\tscope.id = attrs.id;\r\n\t\t\t\tscope.labelPosition = attrs.labelposition;\r\n\r\n\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t$(\"#\" + attrs.id + \"_select\").selectmenu({\r\n\t\t\t\t\t\tchange: function (event, data) {\r\n\t\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t\tscope.model = eval($(\"#\" + scope.id + \"_select\").val());\r\n\r\n\t\t\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t\t\tif (scope.changeEvent != undefined) {\r\n\t\t\t\t\t\t\t\t\t\tscope.changeEvent();\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tscope.$watch(\"model\", function (newValue) {\r\n\t\t\t\t\t\tif (newValue != undefined) {\r\n\t\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t\t$(\"#\" + attrs.id + \"_select\").val(newValue.toString());\r\n\t\t\t\t\t\t\t\t$(\"#\" + attrs.id + \"_select\").selectmenu(\"refresh\");\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\tif (scope.options != undefined && scope.options.length > 0 && Afi.Utilities.indexOfObj(scope.options, newValue, \"Key\") === -1) {\r\n\t\t\t\t\t\t\t\tnewValue = scope.options[0].Key;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tscope.$watch(\"options\", function (newValue) {\r\n\t\t\t\t\t\tif (newValue != undefined) {\r\n\t\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t\tif (newValue.length < $(\"#\" + attrs.id + \"_select option\").size()) {\r\n\t\t\t\t\t\t\t\t\t$(\"#\" + attrs.id + \"_select option\")[0].remove();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t$(\"#\" + attrs.id + \"_select\").selectmenu(\"refresh\");\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\tif (newValue != undefined && newValue.length > 0 && Afi.Utilities.indexOfObj(newValue, scope.model, \"Key\") === -1) {\r\n\t\t\t\t\t\t\t\tscope.model = newValue[0].Key;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tif (scope.model != undefined) {\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$(\"#\" + attrs.id + \"_select\").val(scope.model.toString());\r\n\t\t\t\t\t\t\t$(\"#\" + attrs.id + \"_select\").selectmenu(\"refresh\");\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}, 0);\r\n\t\t\t}\r\n\t\t}\r\n\t}]);","angular.module('afi.coolComponents.customPopover', [])\r\n\t.directive('customPopover', function () {\r\n\t\treturn {\r\n\t\t\trestrict: 'AE',\r\n\t\t\tscope: {\r\n\t\t\t\tmessage: \"=?\"\r\n\t\t\t},\r\n\t\t\ttemplateUrl: templatesFolder + 'customPopover.html',\r\n\t\t\tlink: function (scope, elem, attrs) {\r\n\r\n\t\t\t\tif (attrs.position == \"left\") {\r\n\t\t\t\t\telem.children(\".customPopover\").addClass(\"left\");\r\n\t\t\t\t} else if (attrs.position == \"right\") {\r\n\t\t\t\t\telem.children(\".customPopover\").addClass(\"right\");\r\n\t\t\t\t} else if (attrs.position == \"bottom\") {\r\n\t\t\t\t\telem.children(\".customPopover\").addClass(\"bottom\");\r\n\t\t\t\t} else if (attrs.position == \"top\") {\r\n\t\t\t\t\telem.children(\".customPopover\").addClass(\"top\");\r\n\t\t\t\t} else if (attrs.position == \"bottomleft\") {\r\n\t\t\t\t\telem.children(\".customPopover\").addClass(\"bottomleft\");\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar tmoutHover = undefined;\r\n\t\t\t\telem.mouseenter(function (e) {\r\n\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\ttmoutHover = setTimeout(function () {\r\n\t\t\t\t\t\telem.children(\".customPopover\").show();\r\n\t\t\t\t\t}, 300);\r\n\t\t\t\t});\r\n\r\n\t\t\t\tvar tmout = undefined;\r\n\t\t\t\telem.mouseleave(function (e) {\r\n\t\t\t\t\te.stopPropagation();\r\n\r\n\t\t\t\t\tclearTimeout(tmoutHover);\r\n\t\t\t\t\ttmout = setTimeout(function () {\r\n\t\t\t\t\t\telem.children(\".customPopover\").hide();\r\n\t\t\t\t\t}, 100);\r\n\t\t\t\t});\r\n\r\n\t\t\t\telem.children(\".customPopover\").mouseenter(function (e) {\r\n\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\tclearTimeout(tmout);\r\n\t\t\t\t});\r\n\r\n\t\t\t\telem.children(\".customPopover\").mouseleave(function (e) {\r\n\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\telem.children(\".customPopover\").hide();\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t});","/**\r\n * IMPORTANTE: Para abrir el modal desde js:\r\n * $('#Modal').modal('show', $('#IdDelLinkQueAbreElModal')[0]);\r\n * El link debe ser del tipo .\r\n */\r\nangular.module('afi.coolComponents.modalDialog', [])\r\n .directive('modalDialog', ['$compile', '$timeout', function ($compile, $timeout) {\r\n return {\r\n scope: {}, \t// ISOLATED SCOPE: para evitar colisiones si tenemos dos modal-dialog en\r\n // la misma pagina\r\n restrict: 'AE',\r\n link: function (scope, elem, attrs, ngModel) {\r\n\r\n // CREACION CONTENEDOR\r\n // Cogemos el id\r\n scope.id = attrs.target.replace(\"#\", \"\");\r\n scope.label = attrs.label;\r\n\r\n // Si el elemento ya existiese, no lo sobreescribimos (util cuando\r\n // la directiva esta dentro de un ng-if) ni tampoco\r\n // sobrescribimos su evento\r\n if (angular.element('#' + scope.id).length <= 0) {\r\n // Como no queremos que meta el template dentro del boton que llama\r\n // a la directiva, lo anexaremos al body\r\n $.get(templatesFolder + \"modalDialog.html\", function (response) {\r\n // Callback de $.get\r\n $timeout(function () {\r\n compiled = $compile(response)(scope);\r\n \r\n // ¿Estamos en iframe?\r\n var inIframe = (window.location != window.parent.location);\r\n if (inIframe == true) {\r\n $(compiled).filter(\".modal\").addClass(\"inIframe\")\r\n }\r\n\r\n\r\n angular.element(document.body).append(compiled);\r\n });\r\n });\r\n\r\n // EVENTO\r\n // Cargamos la parte del template en proyecto a la parte\r\n // por template de directiva cuando se pinche en el boton\r\n // del modal\r\n $timeout(function () {\r\n $(document).on('show.bs.modal', '#' + scope.id, function (e) {\r\n $('body').find(\"#\" + scope.id + ' ' + '.modal-content').load(e.relatedTarget.href, function (data) {\r\n var $modal = angular.element(document.getElementById(scope.id));\r\n\r\n // Compilamos con rootScope al tener que usar isolated scope\r\n $timeout(function () {\r\n $compile($modal.contents())(scope.$root);\r\n });\r\n });\r\n });\r\n }, 0);\r\n }\r\n\r\n }\r\n }\r\n }]);\r\n","angular.module('afi.coolComponents.radioList', [])\r\n\t.directive('radioList', ['$timeout', function ($timeout) {\r\n\t\treturn {\r\n\t\t\trestrict: 'AE',\r\n\t\t\trequire: 'ngModel',\r\n\t\t\tscope: {\r\n\t\t\t\tmodel: \"=ngModel\",\r\n\t\t\t\tlist: \"=?\",\r\n\t\t\t\tchangeEvent: \"=?\",\r\n\t\t\t\tdynamicLabel: \"=?\"\r\n\t\t\t},\r\n\t\t\ttemplateUrl: templatesFolder + 'radioList.html',\r\n\t\t\tlink: function (scope, elem, attrs, ngModel) {\r\n\t\t\t\tscope.id = attrs.id;\r\n\t\t\t\tscope.label = (scope.dynamicLabel) ? scope.dynamicLabel : attrs.label;\r\n\t\t\t\tscope.popoverPosition = (attrs.popoverPosition != undefined) ? attrs.popoverPosition : \"left\";\r\n\r\n\t\t\t\tscope.$watch('dynamicLabel', function () {\r\n\t\t\t\t\tscope.label = (scope.dynamicLabel) ? scope.dynamicLabel : attrs.label;\r\n\t\t\t\t});\r\n\r\n\t\t\t\tscope.showHelp = function (helpMsg) {\r\n\t\t\t\t\treturn (helpMsg != undefined);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tscope.changeValue = function (value) {\r\n\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\tscope.model = value;\r\n\t\t\t\t\t});\r\n\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\tif (scope.changeEvent != undefined) {\r\n\t\t\t\t\t\t\tscope.changeEvent();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}]);","'use strict';\r\nangular.module(\"ngLocale\", [], [\"$provide\", function ($provide) {\r\n\tvar PLURAL_CATEGORY = { ZERO: \"zero\", ONE: \"one\", TWO: \"two\", FEW: \"few\", MANY: \"many\", OTHER: \"other\" };\r\n\t$provide.value(\"$locale\", {\r\n\t\t\"DATETIME_FORMATS\": {\r\n\t\t\t\"AMPMS\": [\r\n\t\t\t \"a. m.\",\r\n\t\t\t \"p. m.\"\r\n\t\t\t],\r\n\t\t\t\"DAY\": [\r\n\t\t\t \"domingo\",\r\n\t\t\t \"lunes\",\r\n\t\t\t \"martes\",\r\n\t\t\t \"mi\\u00e9rcoles\",\r\n\t\t\t \"jueves\",\r\n\t\t\t \"viernes\",\r\n\t\t\t \"s\\u00e1bado\"\r\n\t\t\t],\r\n\t\t\t\"MONTH\": [\r\n\t\t\t \"enero\",\r\n\t\t\t \"febrero\",\r\n\t\t\t \"marzo\",\r\n\t\t\t \"abril\",\r\n\t\t\t \"mayo\",\r\n\t\t\t \"junio\",\r\n\t\t\t \"julio\",\r\n\t\t\t \"agosto\",\r\n\t\t\t \"septiembre\",\r\n\t\t\t \"octubre\",\r\n\t\t\t \"noviembre\",\r\n\t\t\t \"diciembre\"\r\n\t\t\t],\r\n\t\t\t\"SHORTDAY\": [\r\n\t\t\t \"dom.\",\r\n\t\t\t \"lun.\",\r\n\t\t\t \"mar.\",\r\n\t\t\t \"mi\\u00e9.\",\r\n\t\t\t \"jue.\",\r\n\t\t\t \"vie.\",\r\n\t\t\t \"s\\u00e1b.\"\r\n\t\t\t],\r\n\t\t\t\"SHORTMONTH\": [\r\n\t\t\t \"ene.\",\r\n\t\t\t \"feb.\",\r\n\t\t\t \"mar.\",\r\n\t\t\t \"abr.\",\r\n\t\t\t \"may.\",\r\n\t\t\t \"jun.\",\r\n\t\t\t \"jul.\",\r\n\t\t\t \"ago.\",\r\n\t\t\t \"sept.\",\r\n\t\t\t \"oct.\",\r\n\t\t\t \"nov.\",\r\n\t\t\t \"dic.\"\r\n\t\t\t],\r\n\t\t\t\"fullDate\": \"EEEE, d 'de' MMMM 'de' y\",\r\n\t\t\t\"longDate\": \"d 'de' MMMM 'de' y\",\r\n\t\t\t\"medium\": \"d/M/y H:mm:ss\",\r\n\t\t\t\"mediumDate\": \"d/M/y\",\r\n\t\t\t\"mediumTime\": \"H:mm:ss\",\r\n\t\t\t\"short\": \"d/M/yy H:mm\",\r\n\t\t\t\"shortDate\": \"d/M/yy\",\r\n\t\t\t\"shortTime\": \"H:mm\"\r\n\t\t},\r\n\t\t\"NUMBER_FORMATS\": {\r\n\t\t\t\"CURRENCY_SYM\": \"\\u20ac\",\r\n\t\t\t\"DECIMAL_SEP\": \",\",\r\n\t\t\t\"GROUP_SEP\": \".\",\r\n\t\t\t\"PATTERNS\": [\r\n\t\t\t {\r\n\t\t\t \t\"gSize\": 3,\r\n\t\t\t \t\"lgSize\": 3,\r\n\t\t\t \t\"maxFrac\": 3,\r\n\t\t\t \t\"minFrac\": 0,\r\n\t\t\t \t\"minInt\": 1,\r\n\t\t\t \t\"negPre\": \"-\",\r\n\t\t\t \t\"negSuf\": \"\",\r\n\t\t\t \t\"posPre\": \"\",\r\n\t\t\t \t\"posSuf\": \"\"\r\n\t\t\t },\r\n\t\t\t {\r\n\t\t\t \t\"gSize\": 3,\r\n\t\t\t \t\"lgSize\": 3,\r\n\t\t\t \t\"maxFrac\": 2,\r\n\t\t\t \t\"minFrac\": 2,\r\n\t\t\t \t\"minInt\": 1,\r\n\t\t\t \t\"negPre\": \"-\",\r\n\t\t\t \t\"negSuf\": \"\\u00a0\\u00a4\",\r\n\t\t\t \t\"posPre\": \"\",\r\n\t\t\t \t\"posSuf\": \"\\u00a0\\u00a4\"\r\n\t\t\t }\r\n\t\t\t]\r\n\t\t},\r\n\t\t\"id\": \"es-es\",\r\n\t\t\"pluralCat\": function (n, opt_precision) { if (n == 1) { return PLURAL_CATEGORY.ONE; } return PLURAL_CATEGORY.OTHER; }\r\n\t});\r\n}]);"],"sourceRoot":""}
    ').addClass('cw').text('#'));\r\n }\r\n\r\n while (currentDate.isBefore(this._viewDate.clone().endOf('w'))) {\r\n row.append($('').addClass('dow').text(currentDate.format('dd')));\r\n currentDate.add(1, 'd');\r\n }\r\n this.widget.find('.datepicker-days thead').append(row);\r\n };\r\n\r\n TempusDominusBootstrap4.prototype._fillMonths = function _fillMonths() {\r\n var spans = [],\r\n monthsShort = this._viewDate.clone().startOf('y').startOf('d');\r\n while (monthsShort.isSame(this._viewDate, 'y')) {\r\n spans.push($('').attr('data-action', 'selectMonth').addClass('month').text(monthsShort.format('MMM')));\r\n monthsShort.add(1, 'M');\r\n }\r\n this.widget.find('.datepicker-months td').empty().append(spans);\r\n };\r\n\r\n TempusDominusBootstrap4.prototype._updateMonths = function _updateMonths() {\r\n var monthsView = this.widget.find('.datepicker-months'),\r\n monthsViewHeader = monthsView.find('th'),\r\n months = monthsView.find('tbody').find('span'),\r\n self = this;\r\n\r\n monthsViewHeader.eq(0).find('span').attr('title', this._options.tooltips.prevYear);\r\n monthsViewHeader.eq(1).attr('title', this._options.tooltips.selectYear);\r\n monthsViewHeader.eq(2).find('span').attr('title', this._options.tooltips.nextYear);\r\n\r\n monthsView.find('.disabled').removeClass('disabled');\r\n\r\n if (!this._isValid(this._viewDate.clone().subtract(1, 'y'), 'y')) {\r\n monthsViewHeader.eq(0).addClass('disabled');\r\n }\r\n\r\n monthsViewHeader.eq(1).text(this._viewDate.year());\r\n\r\n if (!this._isValid(this._viewDate.clone().add(1, 'y'), 'y')) {\r\n monthsViewHeader.eq(2).addClass('disabled');\r\n }\r\n\r\n months.removeClass('active');\r\n if (this._getLastPickedDate().isSame(this._viewDate, 'y') && !this.unset) {\r\n months.eq(this._getLastPickedDate().month()).addClass('active');\r\n }\r\n\r\n months.each(function (index) {\r\n if (!self._isValid(self._viewDate.clone().month(index), 'M')) {\r\n $(this).addClass('disabled');\r\n }\r\n });\r\n };\r\n\r\n TempusDominusBootstrap4.prototype._getStartEndYear = function _getStartEndYear(factor, year) {\r\n var step = factor / 10,\r\n startYear = Math.floor(year / factor) * factor,\r\n endYear = startYear + step * 9,\r\n focusValue = Math.floor(year / step) * step;\r\n return [startYear, endYear, focusValue];\r\n };\r\n\r\n TempusDominusBootstrap4.prototype._updateYears = function _updateYears() {\r\n var yearsView = this.widget.find('.datepicker-years'),\r\n yearsViewHeader = yearsView.find('th'),\r\n yearCaps = this._getStartEndYear(10, this._viewDate.year()),\r\n startYear = this._viewDate.clone().year(yearCaps[0]),\r\n endYear = this._viewDate.clone().year(yearCaps[1]);\r\n var html = '';\r\n\r\n yearsViewHeader.eq(0).find('span').attr('title', this._options.tooltips.prevDecade);\r\n yearsViewHeader.eq(1).attr('title', this._options.tooltips.selectDecade);\r\n yearsViewHeader.eq(2).find('span').attr('title', this._options.tooltips.nextDecade);\r\n\r\n yearsView.find('.disabled').removeClass('disabled');\r\n\r\n if (this._options.minDate && this._options.minDate.isAfter(startYear, 'y')) {\r\n yearsViewHeader.eq(0).addClass('disabled');\r\n }\r\n\r\n yearsViewHeader.eq(1).text(startYear.year() + '-' + endYear.year());\r\n\r\n if (this._options.maxDate && this._options.maxDate.isBefore(endYear, 'y')) {\r\n yearsViewHeader.eq(2).addClass('disabled');\r\n }\r\n\r\n html += '' + (startYear.year() - 1) + '';\r\n while (!startYear.isAfter(endYear, 'y')) {\r\n html += '' + startYear.year() + '';\r\n startYear.add(1, 'y');\r\n }\r\n html += '' + startYear.year() + '';\r\n\r\n yearsView.find('td').html(html);\r\n };\r\n\r\n TempusDominusBootstrap4.prototype._updateDecades = function _updateDecades() {\r\n var decadesView = this.widget.find('.datepicker-decades'),\r\n decadesViewHeader = decadesView.find('th'),\r\n yearCaps = this._getStartEndYear(100, this._viewDate.year()),\r\n startDecade = this._viewDate.clone().year(yearCaps[0]),\r\n endDecade = this._viewDate.clone().year(yearCaps[1]);\r\n var minDateDecade = false,\r\n maxDateDecade = false,\r\n endDecadeYear = void 0,\r\n html = '';\r\n\r\n decadesViewHeader.eq(0).find('span').attr('title', this._options.tooltips.prevCentury);\r\n decadesViewHeader.eq(2).find('span').attr('title', this._options.tooltips.nextCentury);\r\n\r\n decadesView.find('.disabled').removeClass('disabled');\r\n\r\n if (startDecade.year() === 0 || this._options.minDate && this._options.minDate.isAfter(startDecade, 'y')) {\r\n decadesViewHeader.eq(0).addClass('disabled');\r\n }\r\n\r\n decadesViewHeader.eq(1).text(startDecade.year() + '-' + endDecade.year());\r\n\r\n if (this._options.maxDate && this._options.maxDate.isBefore(endDecade, 'y')) {\r\n decadesViewHeader.eq(2).addClass('disabled');\r\n }\r\n\r\n if (startDecade.year() - 10 < 0) {\r\n html += ' ';\r\n } else {\r\n html += '' + (startDecade.year() - 10) + '';\r\n }\r\n\r\n while (!startDecade.isAfter(endDecade, 'y')) {\r\n endDecadeYear = startDecade.year() + 11;\r\n minDateDecade = this._options.minDate && this._options.minDate.isAfter(startDecade, 'y') && this._options.minDate.year() <= endDecadeYear;\r\n maxDateDecade = this._options.maxDate && this._options.maxDate.isAfter(startDecade, 'y') && this._options.maxDate.year() <= endDecadeYear;\r\n html += '' + startDecade.year() + '';\r\n startDecade.add(10, 'y');\r\n }\r\n html += '' + startDecade.year() + '';\r\n\r\n decadesView.find('td').html(html);\r\n };\r\n\r\n TempusDominusBootstrap4.prototype._fillDate = function _fillDate() {\r\n var daysView = this.widget.find('.datepicker-days'),\r\n daysViewHeader = daysView.find('th'),\r\n html = [];\r\n var currentDate = void 0,\r\n row = void 0,\r\n clsName = void 0,\r\n i = void 0;\r\n\r\n if (!this._hasDate()) {\r\n return;\r\n }\r\n\r\n daysViewHeader.eq(0).find('span').attr('title', this._options.tooltips.prevMonth);\r\n daysViewHeader.eq(1).attr('title', this._options.tooltips.selectMonth);\r\n daysViewHeader.eq(2).find('span').attr('title', this._options.tooltips.nextMonth);\r\n\r\n daysView.find('.disabled').removeClass('disabled');\r\n daysViewHeader.eq(1).text(this._viewDate.format(this._options.dayViewHeaderFormat));\r\n\r\n if (!this._isValid(this._viewDate.clone().subtract(1, 'M'), 'M')) {\r\n daysViewHeader.eq(0).addClass('disabled');\r\n }\r\n if (!this._isValid(this._viewDate.clone().add(1, 'M'), 'M')) {\r\n daysViewHeader.eq(2).addClass('disabled');\r\n }\r\n\r\n currentDate = this._viewDate.clone().startOf('M').startOf('w').startOf('d');\r\n\r\n for (i = 0; i < 42; i++) {\r\n //always display 42 days (should show 6 weeks)\r\n if (currentDate.weekday() === 0) {\r\n row = $('
    ' + currentDate.week() + '' + currentDate.date() + '
    ' + currentHour.format(this.use24Hours ? 'HH' : 'hh') + '
    ' + currentMinute.format('mm') + '
    ' + currentSecond.format('ss') + '