{"version":3,"sources":["constructor.js","layout.js","element.js","string.js","submitter.js","Cookies.js","LocalStorage.js","Modal.js","Page.js","Utility.js","control_button.js","control_checkbox.js","control_confirmationpopover.js","control_datepicker.js","control_daterangepicker.js","control_form.js","control_imagefile.js","control_number.js","control_select.js","control_tags.js","control_text.js","control_textarea.js","control_toggle.js","codeEditor.js","datatables.js","enableControls.js","enablePopovers.js","enableTooltips.js","fdAjax.js","init.js"],"names":["FD","window","Page","$","me","child","getAfterControlEvent","data","getViewProps","init","jQuery","App","initBeforeLoad","addClass","initAfterLoad","removeClass","initSidebars","revertBottomMenus","find","children","hover","$this","this","filter","outerHeight","length","offset","top","document","body","clientHeight","hasClass","on","e","preventDefault","toggleClass","css","$sidebar","parents","bodyElem","initNavigations","each","has","not","$target","$navSidebarMini","parent","slideUp","slideDown","siblings","off","stopPropagation","tab","initComponents","tooltip","is","setTimeout","popover","initCardActions","$cardCollapsedClass","block","closest","message","overlayCSS","backgroundColor","opacity","cursor","box-shadow","border","padding","unblock","nextAll","hide","slideToggle","duration","start","complete","remove","cardFullscreen","attr","removeAttr","initDropdownSubmenu","initHeaderElementsToggle","initCore","addEventListener","Element","prototype","matches","msMatchesSelector","webkitMatchesSelector","s","el","call","parentElement","parentNode","nodeType","String","endsWith","search","this_len","undefined","substring","startsWith","rawPos","pos","includes","RegExp","TypeError","indexOf","lastBtn","target","canditates","activeElement","i","candidate","form","submitter","querySelector","Cookies","get","key","allCookies","cookie","split","current","trim","set","value","days","date","Date","setTime","getTime","expires","toUTCString","LocalStorage","storageIsSupported","localStorage","setItem","removeItem","error","checkLocalStorageIsSupported","getItem","Modal","defaultModalOptions","onShow","onShown","onHide","onHidden","options","modal","modalLock","showModal","html","modalOptions","result","callbackBeforeShow","forceOpen","locked","extend","$modal","enableControls","control_textarea","focus","dirtyForms","last","fdAjax","ajaxOptions","currentCallback","callback","hideModal","isOpen","openModal","xhr","Utility","stopLadda","responseText","notify","Notify","progressBar","Mprogress","comingSoon","info","dismissAllNotifications","copy","navigator","clipboard","writeText","then","alert","createLadda","$button","append","Ladda","create","startLadda","$laddaButton","control_form","element","add","ladda","prop","stop","toggleSiblingsDisplay","toggleChildrenDisplay","openUrl","open","blockUI","elem","unblockUI","getControlValuesByContainer","container","fldList","ctrlAR","val","fldName","name","pop","controlType","id","text","onFailure","jqXhR","status","getResponseHeader","resetForm","resetSequence","itemSelector","index","updateSequance","replace","removeSequenceItem","addSequenceItem","templateSelector","insertBeforeSelector","sequenceItemSelector","dataFdValue","inputDataFdValueSelector","item","clone","insertBefore","redirect","url","location","dataAjaxRedirect","pingServer","pingUrl","isloader","onPingRestored","keyCodes","widget","parentid","disabled","stoppropagation","startladda","startLoading","_laddaInstance","stopLoading","toggleLoading","toggle","_create","_setEvents","_handleSubmit","event","self","which","_setOption","group","uniform","checked","update","refresh","click","confirmcallback","confirmclass","confirmlabel","cancelcallback","cancelclass","cancellabel","passthrough","_createPopover","popoverHTML","title","sanitize","trigger","push","confirmcallback_RAW","cancelcallback_RAW","content","join","_popoverEventsAreSet","that","doAjaxPost","mindate","maxdate","format","formatsubmit","formatmoment","hiddenName","disabledays","allowclear","selectYears","selectMonths","alignright","lastValue","pickadate","skipHandleSubmit","datepickerOptions","disable","formatSubmit","clear","onSet","context","highlight","select","min","max","_datepickerInstance","next","attributes","datepicker","moment","validate","currentElements","valid","type","usetime","predefinedranges","allownull","_defaultDatepickerOptions","applyClass","cancelClass","autoApply","timePicker","singleDatePicker","locale","_formatCode","minDate","maxDate","autoUpdateInput","parentEl","ranges","Today","Yesterday","subtract","Last 7 Days","Last 30 Days","This Month","startOf","endOf","Last Month","daterangepicker","_handleBlur","_handleKeyup","_handleHideDatepicker","_getValue","_handleApplyDatepicker","startDate","endDate","onchange","changecallback","dirtyformsmessage","dirtyformstitle","validator","unobtrusive","parse","settings","ignore","focusInvalid","bind","errorList","numberOfInvalids","scrollTo","parseInt","scrollTop","appendTo","dirtyFormOptions","dialog","fieldSelector","helpers","isDirty","$node","_handleChange","$input","submit","_triggerElement","originalEvent","setClean","_handleReset","control_toggle","control_imagefile","documentElement","first","successList","showErrors","reset","$self","inputsAreValid","$validationElement","wrapAll","unwrap","rebuildValidate","unobtrusiveValidation","rules","elname","elrules","args","messages","rulename","serialize","popTriggerElement","triggerElement","getTriggerElement","div","originalFix","isAdvancedUpload","createElement","isMobile","fix","apply","arguments","clipboardData","currentSelection","eventsWired","choosefiletext","choosefileclass","choosefileicon","takepicturetext","takepictureclass","takepictureicon","unsupportedfiletypetext","unsupportedfilesizetext","maxsize","removetext","removecssclass","removeicon","filenamecssclass","imagecssclass","urlcssclass","mobilecssclass","enablepreview","previewplacemnt","advancedupload","dragdroptitle","copypastetitle","forbidden","uploadbutton","uploadbuttontext","uploadbuttonclass","uploadicon","uploadmessage","autoupload","initial","_createUiElements","_tryLoadUrl","_remove","skipCallback","parentID","files","isRemove","$previewImage","$previewIcon","$removeButton","$uploadButton","$buttonGroup","$dropZoneTitle","$copyPasteTitle","$fileNameLabel","$removeUrl","$fileList","$fileListItem","_setValue","urlOrInputFile","fileElement","_showSelectionControls","tmpImg","Image","onload","_previewUrl","src","$container","insertAfter","$dropZone","$pictureButton","$browseButton","$uploadmessage","fdSetValue","isUploading","dataTransfer","_handleImagePaste","prev","_clearInputFile","isValid","tooltipText","fileItem","icon","toLowerCase","input","stopProccessing","idx","rejectFilter","invalidFileType","accept","test","acceptFilter","validFileType","validFileSize","size","isValidPreview","reader","FileReader","readAsDataURL","indexOfExtension","lastIndexOf","_formatBytes","bytes","decimals","dm","Math","floor","log","parseFloat","pow","toFixed","_setUploading","startUpload","stopUpload","precision","Number","_validate","_handleFocus","_handleKeypress","fromCharCode","match","_handlePaste","pastedText","getData","newValue","placeholder","allowsearch","dropdownautowidth","unselectedvalue","minimuminputlength","dropdownParent","provider","ajaxbuilder","namespace","cascadeparentid","cascadeprovider","cascadeajaxbuilder","allowcustom","templateresultcallback","templateselectioncallback","escapemarkupcallback","_this","fieldset","ev","currentTarget","delay","minlength","select2Options","minimumInputLength","dropdownAutoWidth","allowClear","tags","$wrapper","$element","className","wrapper","templateSelection","escapeMarkup","minimumResultsForSearch","Infinity","ajax","dataType","initiallyDisabled","fdUnselect","_unselect","fdResetSelectedItem","_resetSelectedItem","_createCascadeEffect","select2","_applyOptionStyles","parentValue","getJSON","items","_loadSelectItems","sourceUrl","results","Array","timestamp","newOptions","selectedAttr","selected","itemToSelectAfterCascade","cssClass","bgColor","$select2","_handleOpen","_handleClose","param","callbackparam","JSON","blur","_destroy","updateOption","option","control_select","newOption","Option","rendertofield","multiple","language","inputTooShort","createSearchChoice","term","localeCompare","createTag","params","page","jsonItems","selectItems","json","stringify","iskeyup","iskeyupdelay","maxlength","repeat","clearTimeout","_keyupTimer","autoresize","resize","autosize","style","overflowY","_resize","height","computed","getComputedStyle","getPropertyValue","scrollHeight","enable","_enable","_switcheryInstance","switcher","_disable","Switchery","changeTo","_changeSwitchery","_refresh","destroy","fn","codeEditor","ace","theme","readonly","mode","editor","edit","setTheme","setReadOnly","session","setMode","searchDelayTimeout","dataTable","Api","register","milliseconds","table","nTableWrapper","draw","enableControl","$elem","specified","attributeName","parts","control","console","formQueue","x","enableTooltips","enablePopovers","onTooltipClicked","change","$selectParent","ajaxOutstanding","ajaxScheduled","defaults","ishtml","loadingButton","loadingButtonStyle","contentType","contentTypeHelper","cache","processData","cancelprevious","preventResubmit","preventSubmit","cleanupAfterAjax","laddaButton","end","handleAjax","ajaxCall","async","FormData","beforeSend","done","success","fail","textStatus","errorThrown","dataError","errorStatus","errorMsg","ajaxObj","readyState","abort","splice","handleAjaxQueue","opts","isNaN","timeout","handleAjaxSchedule","$pageHeader","sidebarOffset","lostConnection","propHooks","events","originalBind","onAnchorClick","autoWidth","dom","buttons","button","emptyTable","searchPlaceholder","lengthMenu","paginate","previous","fixedHeader","headerOffset","paging","responsive","details","Constructor","_enforceFocus","bsBreakpoints","currentbreakpoint","getCurrentBreakpoint","setSidebarSticky","unstickSidebar","breakpoint","tables","visible","api","columns","adjust","handleStickySiderbar","close","$selection","one","Intl","DateTimeFormat","resolvedOptions","timeZone","sendPing","Constant","appVersion","stick_in_parent","offset_top","setDefaults"],"mappings":"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","file":"FDJavaScript.min.js","sourcesContent":["/* ========================================================================\r\n * FD\r\n * ========================================================================\r\n*/\r\nvar FD = (function (w) {\r\n return {};\r\n}(window));\r\n\r\n\r\n/* ========================================================================\r\n * initialize the page\r\n * ========================================================================\r\n*/\r\nFD.Page = (function ($, me) {\r\n 'use strict';\r\n\r\n var child = me.Page || {};\r\n\r\n\r\n // after control event \r\n child.getAfterControlEvent = function (data) { };\r\n\r\n\r\n // get view props\r\n child.getViewProps = function () { };\r\n\r\n\r\n // init\r\n child.init = function () { };\r\n\r\n return child;\r\n}(jQuery, FD));\r\n","/* ------------------------------------------------------------------------------\r\n *\r\n * # Template JS core\r\n *\r\n * Includes minimum required JS code for proper template functioning\r\n *\r\n * ---------------------------------------------------------------------------- */\r\n\r\n\r\n// Setup module\r\n// ------------------------------\r\n\r\nvar App = function () {\r\n\r\n\r\n //\r\n // Setup module components\r\n //\r\n\r\n // Transitions\r\n // -------------------------\r\n\r\n // Disable all transitions\r\n var _transitionsDisabled = function () {\r\n $('body').addClass('no-transitions');\r\n };\r\n\r\n // Enable all transitions\r\n var _transitionsEnabled = function () {\r\n $('body').removeClass('no-transitions');\r\n };\r\n\r\n\r\n // Sidebars\r\n // -------------------------\r\n\r\n //\r\n // On desktop\r\n //\r\n\r\n // Resize main sidebar\r\n var _sidebarMainResize = function () {\r\n\r\n // Flip 2nd level if menu overflows\r\n // bottom edge of browser window\r\n var revertBottomMenus = function () {\r\n $('.sidebar-main').find('.nav-sidebar').children('.nav-item-submenu').hover(function () {\r\n var totalHeight = 0,\r\n $this = $(this),\r\n navSubmenuClass = 'nav-group-sub',\r\n navSubmenuReversedClass = 'nav-item-submenu-reversed';\r\n\r\n totalHeight += $this.find('.' + navSubmenuClass).filter(':visible').outerHeight();\r\n if ($this.children('.' + navSubmenuClass).length) {\r\n if (($this.children('.' + navSubmenuClass).offset().top + $this.find('.' + navSubmenuClass).filter(':visible').outerHeight()) > document.body.clientHeight) {\r\n $this.addClass(navSubmenuReversedClass)\r\n }\r\n else {\r\n $this.removeClass(navSubmenuReversedClass)\r\n }\r\n }\r\n });\r\n }\r\n\r\n // If sidebar is resized by default\r\n if ($('body').hasClass('sidebar-xs')) {\r\n revertBottomMenus();\r\n }\r\n\r\n // Toggle min sidebar class\r\n $('.sidebar-main-toggle').on('click', function (e) {\r\n e.preventDefault();\r\n\r\n $('body').toggleClass('sidebar-xs').removeClass('sidebar-mobile-main');\r\n revertBottomMenus();\r\n });\r\n };\r\n\r\n // Toggle main sidebar\r\n var _sidebarMainToggle = function () {\r\n $(document).on('click', '.sidebar-main-hide', function (e) {\r\n e.preventDefault();\r\n $('body').toggleClass('sidebar-main-hidden');\r\n });\r\n };\r\n\r\n // Toggle secondary sidebar\r\n var _sidebarSecondaryToggle = function () {\r\n $(document).on('click', '.sidebar-secondary-toggle', function (e) {\r\n e.preventDefault();\r\n $('body').toggleClass('sidebar-secondary-hidden');\r\n });\r\n };\r\n\r\n\r\n // Show right, resize main\r\n var _sidebarRightMainToggle = function () {\r\n $(document).on('click', '.sidebar-right-main-toggle', function (e) {\r\n e.preventDefault();\r\n\r\n // Right sidebar visibility\r\n $('body').toggleClass('sidebar-right-visible');\r\n\r\n // If visible\r\n if ($('body').hasClass('sidebar-right-visible')) {\r\n\r\n // Make main sidebar mini\r\n $('body').addClass('sidebar-xs');\r\n\r\n // Hide children lists if they are opened, since sliding animation adds inline CSS\r\n $('.sidebar-main .nav-sidebar').children('.nav-item').children('.nav-group-sub').css('display', '');\r\n }\r\n else {\r\n $('body').removeClass('sidebar-xs');\r\n }\r\n });\r\n };\r\n\r\n // Show right, hide main\r\n var _sidebarRightMainHide = function () {\r\n $(document).on('click', '.sidebar-right-main-hide', function (e) {\r\n e.preventDefault();\r\n\r\n // Opposite sidebar visibility\r\n $('body').toggleClass('sidebar-right-visible');\r\n\r\n // If visible\r\n if ($('body').hasClass('sidebar-right-visible')) {\r\n $('body').addClass('sidebar-main-hidden');\r\n }\r\n else {\r\n $('body').removeClass('sidebar-main-hidden');\r\n }\r\n });\r\n };\r\n\r\n // Toggle right sidebar\r\n var _sidebarRightToggle = function () {\r\n $(document).on('click', '.sidebar-right-toggle', function (e) {\r\n e.preventDefault();\r\n\r\n $('body').toggleClass('sidebar-right-visible');\r\n });\r\n };\r\n\r\n // Show right, hide secondary\r\n var _sidebarRightSecondaryToggle = function () {\r\n $(document).on('click', '.sidebar-right-secondary-toggle', function (e) {\r\n e.preventDefault();\r\n\r\n // Opposite sidebar visibility\r\n $('body').toggleClass('sidebar-right-visible');\r\n\r\n // If visible\r\n if ($('body').hasClass('sidebar-right-visible')) {\r\n $('body').addClass('sidebar-secondary-hidden');\r\n }\r\n else {\r\n $('body').removeClass('sidebar-secondary-hidden');\r\n }\r\n });\r\n };\r\n\r\n\r\n // Toggle content sidebar\r\n var _sidebarComponentToggle = function () {\r\n $(document).on('click', '.sidebar-component-toggle', function (e) {\r\n e.preventDefault();\r\n $('body').toggleClass('sidebar-component-hidden');\r\n });\r\n };\r\n\r\n\r\n //\r\n // On mobile\r\n //\r\n\r\n // Expand sidebar to full screen on mobile\r\n var _sidebarMobileFullscreen = function () {\r\n $('.sidebar-mobile-expand').on('click', function (e) {\r\n e.preventDefault();\r\n var $sidebar = $(this).parents('.sidebar'),\r\n sidebarFullscreenClass = 'sidebar-fullscreen'\r\n\r\n if (!$sidebar.hasClass(sidebarFullscreenClass)) {\r\n $sidebar.addClass(sidebarFullscreenClass);\r\n }\r\n else {\r\n $sidebar.removeClass(sidebarFullscreenClass);\r\n }\r\n });\r\n };\r\n\r\n // Toggle main sidebar on mobile\r\n var _sidebarMobileMainToggle = function () {\r\n $('.sidebar-mobile-main-toggle').on('click', function (e) {\r\n var bodyElem = $('body');\r\n e.preventDefault();\r\n bodyElem.toggleClass('sidebar-mobile-main').removeClass('sidebar-mobile-secondary sidebar-mobile-right');\r\n\r\n if ($('.sidebar-main').hasClass('sidebar-fullscreen')) {\r\n $('.sidebar-main').removeClass('sidebar-fullscreen');\r\n }\r\n });\r\n };\r\n\r\n // Toggle secondary sidebar on mobile\r\n var _sidebarMobileSecondaryToggle = function () {\r\n $('.sidebar-mobile-secondary-toggle').on('click', function (e) {\r\n e.preventDefault();\r\n $('body').toggleClass('sidebar-mobile-secondary').removeClass('sidebar-mobile-main sidebar-mobile-right');\r\n\r\n // Fullscreen mode\r\n if ($('.sidebar-secondary').hasClass('sidebar-fullscreen')) {\r\n $('.sidebar-secondary').removeClass('sidebar-fullscreen');\r\n }\r\n });\r\n };\r\n\r\n // Toggle right sidebar on mobile\r\n var _sidebarMobileRightToggle = function () {\r\n $('.sidebar-mobile-right-toggle').on('click', function (e) {\r\n e.preventDefault();\r\n $('body').toggleClass('sidebar-mobile-right').removeClass('sidebar-mobile-main sidebar-mobile-secondary');\r\n\r\n // Hide sidebar if in fullscreen mode on mobile\r\n if ($('.sidebar-right').hasClass('sidebar-fullscreen')) {\r\n $('.sidebar-right').removeClass('sidebar-fullscreen');\r\n }\r\n });\r\n };\r\n\r\n // Toggle component sidebar on mobile\r\n var _sidebarMobileComponentToggle = function () {\r\n $('.sidebar-mobile-component-toggle').on('click', function (e) {\r\n e.preventDefault();\r\n $('body').toggleClass('sidebar-mobile-component');\r\n });\r\n };\r\n\r\n\r\n // Navigations\r\n // -------------------------\r\n\r\n // Sidebar navigation\r\n var _navigationSidebar = function () {\r\n\r\n // Define default class names and options\r\n var navClass = 'nav-sidebar',\r\n navItemClass = 'nav-item',\r\n navItemOpenClass = 'nav-item-open',\r\n navLinkClass = 'nav-link',\r\n navSubmenuClass = 'nav-group-sub',\r\n navSlidingSpeed = 250;\r\n\r\n // Configure collapsible functionality\r\n $('.' + navClass).each(function () {\r\n $(this).find('.' + navItemClass).has('.' + navSubmenuClass).children('.' + navItemClass + ' > ' + '.' + navLinkClass).not('.disabled').on('click', function (e) {\r\n e.preventDefault();\r\n\r\n // Simplify stuff\r\n var $target = $(this),\r\n $navSidebarMini = $('.sidebar-xs').not('.sidebar-mobile-main').find('.sidebar-main .' + navClass).children('.' + navItemClass);\r\n\r\n // Collapsible\r\n if ($target.parent('.' + navItemClass).hasClass(navItemOpenClass)) {\r\n $target.parent('.' + navItemClass).not($navSidebarMini).removeClass(navItemOpenClass).children('.' + navSubmenuClass).slideUp(navSlidingSpeed);\r\n }\r\n else {\r\n $target.parent('.' + navItemClass).not($navSidebarMini).addClass(navItemOpenClass).children('.' + navSubmenuClass).slideDown(navSlidingSpeed);\r\n }\r\n\r\n // Accordion\r\n if ($target.parents('.' + navClass).data('nav-type') == 'accordion') {\r\n $target.parent('.' + navItemClass).not($navSidebarMini).siblings(':has(.' + navSubmenuClass + ')').removeClass(navItemOpenClass).children('.' + navSubmenuClass).slideUp(navSlidingSpeed);\r\n }\r\n });\r\n });\r\n\r\n // Disable click in disabled navigation items\r\n $(document).on('click', '.' + navClass + ' .disabled', function (e) {\r\n e.preventDefault();\r\n });\r\n\r\n // Scrollspy navigation\r\n $('.nav-scrollspy').find('.' + navItemClass).has('.' + navSubmenuClass).children('.' + navItemClass + ' > ' + '.' + navLinkClass).off('click');\r\n };\r\n\r\n // Navbar navigation\r\n var _navigationNavbar = function () {\r\n\r\n // Prevent dropdown from closing on click\r\n $(document).on('click', '.dropdown-content', function (e) {\r\n e.stopPropagation();\r\n });\r\n\r\n // Disabled links\r\n $('.navbar-nav .disabled a, .nav-item-levels .disabled').on('click', function (e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n });\r\n\r\n // Show tabs inside dropdowns\r\n $('.dropdown-content a[data-toggle=\"tab\"]').on('click', function (e) {\r\n $(this).tab('show');\r\n });\r\n };\r\n\r\n\r\n // Components\r\n // -------------------------\r\n\r\n // Tooltip\r\n var _componentTooltip = function () {\r\n\r\n // Initialize\r\n $('[data-popup=\"tooltip\"]').tooltip();\r\n\r\n // Demo tooltips, remove in production\r\n var demoTooltipSelector = '[data-popup=\"tooltip-demo\"]';\r\n if ($(demoTooltipSelector).is(':visible')) {\r\n $(demoTooltipSelector).tooltip('show');\r\n setTimeout(function () {\r\n $(demoTooltipSelector).tooltip('hide');\r\n }, 2000);\r\n }\r\n };\r\n\r\n // Popover\r\n var _componentPopover = function () {\r\n $('[data-popup=\"popover\"]').popover();\r\n };\r\n\r\n // Slinky\r\n var _componentSlinky = function () {\r\n return;\r\n if (!$().slinky) {\r\n console.warn('Warning - slinky.min.js is not loaded.');\r\n return;\r\n };\r\n\r\n // Attach drill down menu to menu list with child levels\r\n $('.nav-item-levels').one('shown.bs.dropdown', function () {\r\n $('.dropdown-item-group').each(function () {\r\n $(this).slinky({\r\n title: true,\r\n speed: 200\r\n });\r\n });\r\n });\r\n };\r\n\r\n\r\n // Card actions\r\n // -------------------------\r\n\r\n // Reload card (uses BlockUI extension)\r\n var _cardActionReload = function () {\r\n $('.card [data-action=reload]:not(.disabled)').on('click', function (e) {\r\n e.preventDefault();\r\n var $target = $(this),\r\n block = $target.closest('.card');\r\n\r\n // Block card\r\n $(block).block({\r\n message: '',\r\n overlayCSS: {\r\n backgroundColor: '#fff',\r\n opacity: 0.8,\r\n cursor: 'wait',\r\n 'box-shadow': '0 0 0 1px #ddd'\r\n },\r\n css: {\r\n border: 0,\r\n padding: 0,\r\n backgroundColor: 'none'\r\n }\r\n });\r\n\r\n // For demo purposes\r\n window.setTimeout(function () {\r\n $(block).unblock();\r\n }, 2000);\r\n });\r\n };\r\n\r\n // Collapse card\r\n var _cardActionCollapse = function () {\r\n var $cardCollapsedClass = $('.card-collapsed');\r\n\r\n // Hide if collapsed by default\r\n $cardCollapsedClass.children('.card-header').nextAll().hide();\r\n\r\n // Rotate icon if collapsed by default\r\n $cardCollapsedClass.find('[data-action=collapse]').addClass('rotate-180');\r\n\r\n // Collapse on click\r\n $('.card [data-action=collapse]:not(.disabled)').on('click', function (e) {\r\n var $target = $(this),\r\n slidingSpeed = 150;\r\n\r\n e.preventDefault();\r\n $target.parents('.card').toggleClass('card-collapsed');\r\n $target.toggleClass('rotate-180');\r\n $target.closest('.card').children('.card-header').nextAll().slideToggle(slidingSpeed);\r\n });\r\n };\r\n\r\n // Remove card\r\n var _cardActionRemove = function () {\r\n $('.card [data-action=remove]').on('click', function (e) {\r\n e.preventDefault();\r\n var $target = $(this),\r\n slidingSpeed = 150;\r\n\r\n // If not disabled\r\n if (!$target.hasClass('disabled')) {\r\n $target.closest('.card').slideUp({\r\n duration: slidingSpeed,\r\n start: function () {\r\n $target.addClass('d-block');\r\n },\r\n complete: function () {\r\n $target.remove();\r\n }\r\n });\r\n }\r\n });\r\n };\r\n\r\n // Card fullscreen mode\r\n var _cardActionFullscreen = function () {\r\n $('.card [data-action=fullscreen]').on('click', function (e) {\r\n e.preventDefault();\r\n\r\n // Define vars\r\n var $target = $(this),\r\n cardFullscreen = $target.closest('.card'),\r\n overflowHiddenClass = 'overflow-hidden',\r\n collapsedClass = 'collapsed-in-fullscreen',\r\n fullscreenAttr = 'data-fullscreen';\r\n\r\n // Toggle classes on card\r\n cardFullscreen.toggleClass('fixed-top h-100 rounded-0');\r\n\r\n // Configure\r\n if (!cardFullscreen.hasClass('fixed-top')) {\r\n $target.removeAttr(fullscreenAttr);\r\n cardFullscreen.children('.' + collapsedClass).removeClass('show');\r\n $('body').removeClass(overflowHiddenClass);\r\n $target.siblings('[data-action=move], [data-action=remove], [data-action=collapse]').removeClass('d-none');\r\n }\r\n else {\r\n $target.attr(fullscreenAttr, 'active');\r\n cardFullscreen.removeAttr('style').children('.collapse:not(.show)').addClass('show ' + collapsedClass);\r\n $('body').addClass(overflowHiddenClass);\r\n $target.siblings('[data-action=move], [data-action=remove], [data-action=collapse]').addClass('d-none');\r\n }\r\n });\r\n };\r\n\r\n\r\n // Misc\r\n // -------------------------\r\n\r\n // Dropdown submenus. Trigger on click\r\n var _dropdownSubmenu = function () {\r\n\r\n // All parent levels require .dropdown-toggle class\r\n $('.dropdown-menu').find('.dropdown-submenu').not('.disabled').find('.dropdown-toggle').on('click', function (e) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n\r\n // Remove \"show\" class in all siblings\r\n $(this).parent().siblings().removeClass('show').find('.show').removeClass('show');\r\n\r\n // Toggle submenu\r\n $(this).parent().toggleClass('show').children('.dropdown-menu').toggleClass('show');\r\n\r\n // Hide all levels when parent dropdown is closed\r\n $(this).parents('.show').on('hidden.bs.dropdown', function (e) {\r\n $('.dropdown-submenu .show, .dropdown-submenu.show').removeClass('show');\r\n });\r\n });\r\n };\r\n\r\n // Header elements toggler\r\n var _headerElements = function () {\r\n\r\n // Toggle visible state of header elements\r\n $('.header-elements-toggle').on('click', function (e) {\r\n e.preventDefault();\r\n $(this).parents('[class*=header-elements-]').find('.header-elements').toggleClass('d-none');\r\n });\r\n\r\n // Toggle visible state of footer elements\r\n $('.footer-elements-toggle').on('click', function (e) {\r\n e.preventDefault();\r\n $(this).parents('.card-footer').find('.footer-elements').toggleClass('d-none');\r\n });\r\n };\r\n\r\n\r\n //\r\n // Return objects assigned to module\r\n //\r\n\r\n return {\r\n\r\n // Disable transitions before page is fully loaded\r\n initBeforeLoad: function () {\r\n _transitionsDisabled();\r\n },\r\n\r\n // Enable transitions when page is fully loaded\r\n initAfterLoad: function () {\r\n _transitionsEnabled();\r\n },\r\n\r\n // Initialize all sidebars\r\n initSidebars: function () {\r\n\r\n // On desktop\r\n _sidebarMainResize();\r\n _sidebarMainToggle();\r\n _sidebarSecondaryToggle();\r\n _sidebarRightMainToggle();\r\n _sidebarRightMainHide();\r\n _sidebarRightToggle();\r\n _sidebarRightSecondaryToggle();\r\n _sidebarComponentToggle();\r\n\r\n // On mobile\r\n _sidebarMobileFullscreen();\r\n _sidebarMobileMainToggle();\r\n _sidebarMobileSecondaryToggle();\r\n _sidebarMobileRightToggle();\r\n _sidebarMobileComponentToggle();\r\n },\r\n\r\n // Initialize all navigations\r\n initNavigations: function () {\r\n _navigationSidebar();\r\n _navigationNavbar();\r\n },\r\n\r\n // Initialize all components\r\n initComponents: function () {\r\n _componentTooltip();\r\n _componentPopover();\r\n _componentSlinky();\r\n },\r\n\r\n // Initialize all card actions\r\n initCardActions: function () {\r\n _cardActionReload();\r\n _cardActionCollapse();\r\n _cardActionRemove();\r\n _cardActionFullscreen();\r\n },\r\n\r\n // Dropdown submenu\r\n initDropdownSubmenu: function () {\r\n _dropdownSubmenu();\r\n },\r\n\r\n initHeaderElementsToggle: function () {\r\n _headerElements();\r\n },\r\n\r\n // Initialize core\r\n initCore: function () {\r\n App.initSidebars();\r\n App.initNavigations();\r\n App.initComponents();\r\n App.initCardActions();\r\n App.initDropdownSubmenu();\r\n App.initHeaderElementsToggle();\r\n }\r\n }\r\n}();\r\n\r\n\r\n// Initialize module\r\n// ------------------------------\r\n\r\n// When content is loaded\r\ndocument.addEventListener('DOMContentLoaded', function () {\r\n App.initBeforeLoad();\r\n App.initCore();\r\n});\r\n\r\n// When page is fully loaded\r\nwindow.addEventListener('load', function () {\r\n App.initAfterLoad();\r\n});\r\n","if (!Element.prototype.matches) {\r\n Element.prototype.matches = Element.prototype.msMatchesSelector ||\r\n Element.prototype.webkitMatchesSelector;\r\n}\r\n\r\nif (!Element.prototype.closest) {\r\n Element.prototype.closest = function(s) {\r\n var el = this;\r\n\r\n do {\r\n if (Element.prototype.matches.call(el, s)) return el;\r\n el = el.parentElement || el.parentNode;\r\n } while (el !== null && el.nodeType === 1);\r\n return null;\r\n };\r\n}","if (!String.prototype.endsWith) {\r\n\tString.prototype.endsWith = function (search, this_len) {\r\n\t\tif (this_len === undefined || this_len > this.length) {\r\n\t\t\tthis_len = this.length;\r\n\t\t}\r\n\t\treturn this.substring(this_len - search.length, this_len) === search;\r\n\t};\r\n}\r\nif (!String.prototype.startsWith) {\r\n\tString.prototype.startsWith = function (search, rawPos) {\r\n\t\tvar pos = rawPos > 0 ? rawPos | 0 : 0;\r\n\t\treturn this.substring(pos, pos + search.length) === search;\r\n\t};\r\n}\r\nif (!String.prototype.includes) {\r\n\tString.prototype.includes = function (search, start) {\r\n\t\t'use strict';\r\n\r\n\t\tif (search instanceof RegExp) {\r\n\t\t\tthrow TypeError('first argument must not be a RegExp');\r\n\t\t}\r\n\t\tif (start === undefined) { start = 0; }\r\n\t\treturn this.indexOf(search, start) !== -1;\r\n\t};\r\n}","// polyfill for browsers not supporting submitter event\r\n!function () {\r\n let lastBtn = null;\r\n document.addEventListener('click', function (e) {\r\n if (!e.target.closest) {\r\n return;\r\n }\r\n lastBtn = e.target.closest('button, input[type=submit]');\r\n }, true);\r\n document.addEventListener('submit', function (e) {\r\n if ('submitter' in e) {\r\n return;\r\n }\r\n const canditates = [document.activeElement, lastBtn];\r\n for (var i = 0; i < canditates.length; i++) {\r\n var candidate = canditates[i];\r\n if (!candidate || !candidate.form || !candidate.matches('button, input[type=button], input[type=submit], input[type=image]')) {\r\n continue;\r\n }\r\n e.submitter = candidate;\r\n return;\r\n }\r\n e.submitter = e.target.querySelector('button, input[type=button], input[type=submit], input[type=image]');\r\n }, true);\r\n}();","FD.Cookies = (function ($, me) {\r\n 'use strict';\r\n\r\n me.Cookies = me.Cookies || {};\r\n\r\n /* ========================================================================\r\n * Private Variables\r\n * ========================================================================\r\n */\r\n\r\n\r\n /* ========================================================================\r\n * Private Methods\r\n * ========================================================================\r\n */\r\n\r\n\r\n /* ========================================================================\r\n * Public Methods\r\n * ========================================================================\r\n */\r\n\r\n\r\n me.Cookies.get = function (key) {\r\n key += '=';\r\n const allCookies = document.cookie.split(';');\r\n for (let i = 0; i < allCookies.length; i++) {\r\n let current = allCookies[i].trim();\r\n if (current.indexOf(key) === 0) {\r\n return current.substring(key.length, current.length);\r\n }\r\n }\r\n return null;\r\n };\r\n\r\n\r\n me.Cookies.set = function (key, value, days) {\r\n let date = new Date();\r\n days = days || 31;\r\n date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);\r\n const expires = \"; expires=\" + date.toUTCString();\r\n document.cookie = key + \"=\" + value + expires + \"; path=/\";\r\n };\r\n\r\n\r\n /* ========================================================================\r\n * return\r\n * ========================================================================\r\n */\r\n return me.Cookies;\r\n}(jQuery, FD));","FD.LocalStorage = (function ($, me) {\r\n 'use strict';\r\n\r\n me.LocalStorage = me.LocalStorage || {};\r\n\r\n /* ========================================================================\r\n * Private Variables\r\n * ========================================================================\r\n */\r\n\r\n const storageIsSupported = checkLocalStorageIsSupported();\r\n\r\n\r\n /* ========================================================================\r\n * Private Methods\r\n * ========================================================================\r\n */\r\n\r\n\r\n function checkLocalStorageIsSupported() {\r\n const test = 'test';\r\n try {\r\n localStorage.setItem(test, test);\r\n localStorage.removeItem(test);\r\n return true;\r\n } catch (error) {\r\n return false;\r\n }\r\n }\r\n\r\n\r\n /* ========================================================================\r\n * Public Methods\r\n * ========================================================================\r\n */\r\n\r\n\r\n me.LocalStorage.set = function (key, value) {\r\n if (storageIsSupported) {\r\n localStorage.setItem(key, value);\r\n }\r\n };\r\n\r\n\r\n me.LocalStorage.get = function (key) {\r\n return storageIsSupported ? localStorage.getItem(key) : null;\r\n };\r\n\r\n\r\n me.LocalStorage.remove = function (key) {\r\n if (storageIsSupported) {\r\n localStorage.removeItem(key);\r\n }\r\n };\r\n\r\n\r\n /* ========================================================================\r\n * return\r\n * ========================================================================\r\n */\r\n return me.LocalStorage;\r\n}(jQuery, FD));","FD.Modal = (function ($, me) {\r\n 'use strict';\r\n\r\n me.Modal = me.Modal || {};\r\n\r\n /* ========================================================================\r\n * Private Variables\r\n * ========================================================================\r\n */\r\n\r\n const defaultModalOptions = {\r\n onShow: function () { },\r\n onShown: function () { },\r\n onHide: function () { },\r\n onHidden: function () { },\r\n options: \"show\",\r\n modal: '#FD_MODAL'\r\n };\r\n let modalLock = false;\r\n\r\n /* ========================================================================\r\n * Private Methods\r\n * ========================================================================\r\n */\r\n\r\n function showModal(html, modalOptions, result, callbackBeforeShow, forceOpen) {\r\n let locked = modalLock;\r\n if (locked && !forceOpen) {\r\n return null;\r\n }\r\n modalLock = true;\r\n modalOptions = $.extend({}, defaultModalOptions, modalOptions);\r\n\r\n const $modal = $(modalOptions.modal)\r\n .html(html)\r\n .enableControls()\r\n .on('show.bs.modal', function () {\r\n if (modalOptions.onShow) {\r\n modalOptions.onShow($modal, result);\r\n }\r\n $modal.off('show.bs.modal');\r\n })\r\n .on('shown.bs.modal', function () {\r\n if ($(\".modal:visible\").length > 1) {\r\n $(\".modal:visible\").not($modal).addClass('modal-disabled');\r\n }\r\n $('[data-fd-control=\"textarea\"]', $modal).control_textarea('resize');\r\n $('[autofocus]', $modal).focus();\r\n\r\n if (modalOptions.onShown) {\r\n modalOptions.onShown($modal, result);\r\n }\r\n $modal.off('shown.bs.modal');\r\n })\r\n .on('hide.bs.modal', function () {\r\n $('form', $modal).dirtyForms('setClean');\r\n\r\n if (modalOptions.onHide) {\r\n modalOptions.onHide($modal, result);\r\n }\r\n $modal.off('hide.bs.modal');\r\n })\r\n .on('hidden.bs.modal', function () {\r\n if ($(\".modal:visible\").length > 0) {\r\n $(\".modal:visible\").not($modal).last().removeClass('modal-disabled');\r\n $('body').addClass('modal-open');\r\n } else {\r\n modalLock = false; // release lock before onHidden in order to open another modal on callback if wanted\r\n }\r\n if (modalOptions.onHidden) {\r\n modalOptions.onHidden($modal, result);\r\n }\r\n $modal.off('hidden.bs.modal');\r\n });\r\n if (callbackBeforeShow) {\r\n callbackBeforeShow(result, $modal);\r\n }\r\n\r\n if (locked && !forceOpen) {\r\n return $modal;\r\n }\r\n return modalOptions.options ? $modal.modal(modalOptions.options) : $modal.modal(\"show\");\r\n }\r\n\r\n /* ========================================================================\r\n * Public Methods\r\n * ========================================================================\r\n */\r\n\r\n me.Modal.fdAjax = function (ajaxOptions, modalOptions, forceOpen) {\r\n if (modalLock) {\r\n return;\r\n }\r\n modalLock = true;\r\n\r\n const currentCallback = ajaxOptions.callback;\r\n ajaxOptions.callback = function (result) {\r\n if (result.data) {\r\n modalLock = false;\r\n showModal(result.data, modalOptions, result, currentCallback, forceOpen);\r\n } else {\r\n modalLock = false; // release lock before onHidden in order to open another modal on callback if wanted\r\n if (currentCallback) {\r\n currentCallback(result);\r\n }\r\n }\r\n };\r\n\r\n $.fdAjax(ajaxOptions);\r\n };\r\n\r\n me.Modal.showModal = function (html, modalOptions, forceOpen) {\r\n showModal(html, modalOptions, null, null, forceOpen);\r\n };\r\n\r\n me.Modal.hideModal = function () {\r\n if (me.Modal.isOpen()) {\r\n $(this).closest('.modal').modal('hide');\r\n }\r\n };\r\n\r\n me.Modal.isOpen = function () {\r\n return modalLock;\r\n };\r\n\r\n me.Modal.openModal = function (xhr) {\r\n me.Utility.stopLadda.call(this);\r\n me.Modal.showModal(xhr.responseText);\r\n };\r\n\r\n /* ========================================================================\r\n * return\r\n * ========================================================================\r\n */\r\n return me.Modal;\r\n}(jQuery, FD));","FD.Page = (function ($, me) {\r\n 'use strict';\r\n\r\n me.Page = me.Page || {};\r\n\r\n /* ========================================================================\r\n * Private Variables\r\n * ========================================================================\r\n */\r\n\r\n\r\n /* ========================================================================\r\n * Private Methods\r\n * ========================================================================\r\n */\r\n\r\n\r\n /* ========================================================================\r\n * Public Methods\r\n * ========================================================================\r\n */\r\n\r\n\r\n /* ========================================================================\r\n * return\r\n * ========================================================================\r\n */\r\n return me.Page;\r\n}(jQuery, FD));","/* global ace, Ladda, Mprogress */\r\nFD.Utility = (function ($, me) {\r\n 'use strict';\r\n\r\n const notify = new Notify();\r\n const progressBar = new Mprogress();\r\n me.Utility = me.Utility || {};\r\n\r\n /* ========================================================================\r\n * Private Variables\r\n * ========================================================================\r\n */\r\n\r\n\r\n /* ========================================================================\r\n * Private Methods\r\n * ========================================================================\r\n */\r\n\r\n\r\n /* ========================================================================\r\n * Public Methods\r\n * ========================================================================\r\n */\r\n\r\n me.Utility.comingSoon = function () {\r\n const message = \"This functionality is coming soon :)\";\r\n notify.info(message, null, null, { dismissAllNotifications: true });\r\n };\r\n\r\n me.Utility.copy = function (data) {\r\n if (!navigator.clipboard) {\r\n notify.alert(\"Your browser doesn't support the automatic copy to clipboard functionality.\");\r\n return;\r\n }\r\n\r\n navigator.clipboard.writeText(data.value).then(function () {\r\n notify.info(\"Copied to clipboard.\");\r\n }, function (error) {\r\n notify.alert(\"Failed to copy to clipboard: \" + error);\r\n });\r\n };\r\n\r\n me.Utility.createLadda = function ($button) {\r\n if (!$button.hasClass(\"ladda-button\")) {\r\n $button.addClass('ladda-button').attr('data-style', 'expand-right').append('');\r\n }\r\n\r\n // start Ladda and save to data\r\n return Ladda.create($button[0]);\r\n };\r\n\r\n me.Utility.startLadda = function () {\r\n let $laddaButton = $();\r\n\r\n if ($(this).is(\"[data-fd-control=form]\")) {\r\n $laddaButton = $(this).control_form(\"popTriggerElement\"); // if we are using an FD form control, the trigger element is what we want\r\n } else if (this.element && this.element.is(\"[data-fd-control=form]\")) {\r\n if (this.element.control_form(\"valid\")) {\r\n $laddaButton = this.element.control_form(\"popTriggerElement\"); // if we are using an FD form control, the trigger element is what we want\r\n }\r\n } else {\r\n $laddaButton = $(\"[type=submit]:visible,button:not([type]):visible\", this) // find any submit buttons with the \"this\" as the parent context\r\n .add($(this).filter(\"a,button\")); // add this if it is an anchor or a button\r\n }\r\n\r\n if (!$laddaButton.length) {\r\n return null; // invalid \"this\"\r\n }\r\n\r\n // create and start Ladda\r\n const ladda = me.Utility.createLadda($laddaButton).start();\r\n $laddaButton.data(\"fd-ladda\", ladda);\r\n return ladda;\r\n };\r\n\r\n me.Utility.stopLadda = function () {\r\n const $laddaButton = $(\".ladda-button\", this) // find all Laddas from the context of \"this\"\r\n .add($(this).filter(\".ladda-button\")); // include this in case it is an anchor or button \r\n\r\n $laddaButton.each(function () {\r\n const ladda = $(this).data(\"fd-ladda\");\r\n if (ladda) {\r\n $(this).prop(\"disabled\", false);\r\n ladda.stop();\r\n }\r\n });\r\n };\r\n\r\n me.Utility.toggleSiblingsDisplay = function () {\r\n $(this).siblings().add(this).toggleClass(\"d-none\");\r\n };\r\n\r\n me.Utility.toggleChildrenDisplay = function () {\r\n $(this).children().toggleClass(\"d-none\");\r\n };\r\n\r\n me.Utility.openUrl = function (data) {\r\n window.open(data.value, \"_blank\");\r\n };\r\n\r\n me.Utility.blockUI = function (elem) {\r\n if (elem) {\r\n $(elem).block({\r\n message: '',\r\n overlayCSS: {\r\n backgroundColor: '#fff',\r\n opacity: 0.8,\r\n cursor: 'wait'\r\n },\r\n css: {\r\n border: 0,\r\n padding: 0,\r\n backgroundColor: 'transparent'\r\n }\r\n });\r\n } else {\r\n $.blockUI({\r\n message: '',\r\n overlayCSS: {\r\n backgroundColor: '#fff',\r\n opacity: 0.8,\r\n cursor: 'wait'\r\n },\r\n css: {\r\n border: 0,\r\n padding: 0,\r\n backgroundColor: 'transparent'\r\n }\r\n });\r\n }\r\n };\r\n\r\n me.Utility.unblockUI = function (elem) {\r\n if (elem) {\r\n $(elem).unblock();\r\n } else {\r\n $.unblockUI();\r\n }\r\n };\r\n\r\n me.Utility.getControlValuesByContainer = function (container) {\r\n const fldList = container ? $(container).find(':input,[data-name]') : $(':input,[data-name]');\r\n var ctrlAR = {};\r\n\r\n fldList.each(function () {\r\n var elem = $(this);\r\n var fldName = (elem.data('name') ? elem.data('name') : this.name).split('.').pop();\r\n var controlType = elem.data('fd-control');\r\n var val;\r\n\r\n if (controlType === 'select') {\r\n val = elem.val();\r\n } else if (controlType === 'number') {\r\n val = elem.val();\r\n } else if (controlType === 'checkbox' || controlType === 'toggle') {\r\n val = elem.is(':checked');\r\n } else if (controlType === 'datepicker') {\r\n if (elem.data(\"type\") === 'range') {\r\n val = elem.val().split('-');\r\n if (val.length > 0) {\r\n ctrlAR[fldName + \"Start\"] = val[0].trim();\r\n ctrlAR[fldName + \"End\"] = val[1].trim();\r\n return;\r\n }\r\n }\r\n val = elem.val();\r\n } else if (elem.hasClass(\"btn-group\") && elem.data(\"toggle\") === \"buttons\") {\r\n val = $(\"label.btn-primary.active\", elem).children()[0].id;\r\n } else if (controlType === 'button') {\r\n return;\r\n } else if (elem.is(':not(:input)')) {\r\n val = elem.text().trim();\r\n } else {\r\n if (elem.data('value')) {\r\n val = elem.data('value');\r\n } else {\r\n val = elem.val();\r\n }\r\n }\r\n\r\n ctrlAR[fldName] = val;\r\n });\r\n\r\n return ctrlAR;\r\n };\r\n\r\n me.Utility.onFailure = function (jqXhR) {\r\n me.Utility.stopLadda.call(this); // in case ladda is running\r\n\r\n switch (jqXhR.status) {\r\n case 400:\r\n notify.alert(jqXhR.getResponseHeader('error-message'));\r\n break;\r\n case 401:\r\n notify.alert(\"Unauthorized. Please refresh this page.\");\r\n break;\r\n default:\r\n notify.alert(\"An error has occurred. Please try to hard refresh your page.\");\r\n break;\r\n }\r\n };\r\n\r\n me.Utility.enableControls = function () {\r\n var self = $($(this).data(\"ajaxUpdate\"));\r\n self.enableControls();\r\n };\r\n\r\n me.Utility.resetForm = function () {\r\n $(this).control_form('reset');\r\n };\r\n\r\n me.Utility.resetSequence = function (itemSelector) {\r\n let index = 0;\r\n $(this).children(itemSelector).each(function () {\r\n $('[name],[data-valmsg-for]', this).each(function () {\r\n updateSequance($(this), \"name\");\r\n updateSequance($(this), \"data-valmsg-for\");\r\n });\r\n index++;\r\n });\r\n\r\n function updateSequance($this, name) {\r\n if ($this.is('[' + name + ']')) {\r\n $this.attr(name, $this.attr(name).replace(/\\[\\d*\\]/, '[' + index + ']'));\r\n }\r\n }\r\n };\r\n\r\n me.Utility.removeSequenceItem = function (itemSelector) {\r\n let parent = $(this).closest(itemSelector).parent();\r\n $(this).popover('dispose');\r\n $(this).closest(\"form\").addClass(\"dirty\");\r\n $(this).closest(itemSelector).remove();\r\n\r\n me.Utility.resetSequence.call(parent, itemSelector);\r\n };\r\n\r\n me.Utility.addSequenceItem = function (templateSelector, insertBeforeSelector, sequenceItemSelector, dataFdValue, inputDataFdValueSelector) {\r\n const item = $(templateSelector)\r\n .clone()\r\n .attr('data-fd-value', dataFdValue)\r\n .removeAttr('id')\r\n .insertBefore(insertBeforeSelector)\r\n .removeClass('d-none')\r\n .enableControls();\r\n item.find(inputDataFdValueSelector).prop(\"disabled\", false).val(dataFdValue); // if this is a sequence item, there should be a hidden input for form to post the sequence\r\n item.closest(\"form\").addClass(\"dirty\"); // the form should be marked as dirty\r\n me.Utility.resetSequence.call(item.parent(), sequenceItemSelector);\r\n return item; // return the item for any other page specific updates\r\n };\r\n\r\n me.Utility.redirect = function (url) {\r\n progressBar.start();\r\n // persist state and clean dirty form\r\n $(\".d-clean-none:visible\").removeClass(\"d-clean-none\");\r\n $(\".d-dirty-none:not(:visible)\").addClass(\"d-none\");\r\n $(\"form\").dirtyForms(\"setClean\").removeClass('force-dirty');\r\n\r\n window.location = url;\r\n };\r\n\r\n me.Utility.dataAjaxRedirect = function (xhr, data) {\r\n progressBar.start();\r\n me.Utility.startLadda.call(this);\r\n me.Utility.redirect(data.url);\r\n };\r\n\r\n me.Utility.pingServer = function (callback) {\r\n $.fdAjax({\r\n url: me.Utility.pingUrl,\r\n isloader: false,\r\n callback: callback\r\n });\r\n };\r\n\r\n me.Utility.onPingRestored = function () {\r\n // stub for when / if we want to implement global code to handle when ping is restored/recovered\r\n return true;\r\n };\r\n\r\n /* ========================================================================\r\n * return\r\n * ========================================================================\r\n */\r\n return me.Utility;\r\n}(jQuery, FD));","/* global Ladda */\r\n(function ($) {\r\n 'use strict';\r\n const keyCodes = {\r\n Enter: 13\r\n };\r\n $.widget(\"fd.control_button\", {\r\n options: {\r\n parentid: null,\r\n value: null,\r\n disabled: false,\r\n stoppropagation: false,\r\n startladda: false,\r\n callback: function () {}\r\n },\r\n startLoading: function () {\r\n if (!this._laddaInstance) {\r\n this.element.addClass('ladda-button').attr('data-style', 'expand-right').append('');\r\n }\r\n this._laddaInstance = Ladda.create(this.element[0]);\r\n this._laddaInstance.start();\r\n },\r\n stopLoading: function () {\r\n if (this._laddaInstance) {\r\n this._laddaInstance.stop();\r\n }\r\n },\r\n toggleLoading: function () {\r\n if (this._laddaInstance) {\r\n this._laddaInstance.toggle();\r\n } else {\r\n this.startLoading();\r\n }\r\n },\r\n _create: function () {\r\n if (!this.options.parentid) {\r\n this.options.parentid = this.element.closest('[data-fd-parentid]').data('fd-parentid');\r\n }\r\n this._setEvents();\r\n },\r\n _handleSubmit: function (event) {\r\n if (!this.options.disabled) {\r\n if (this.options.startladda) {\r\n this.startLoading();\r\n }\r\n this.options.callback.call(this, { parentid: this.options.parentid, value: this.options.value }, event);\r\n }\r\n },\r\n _laddaInstance: null,\r\n _setEvents: function () {\r\n const self = this;\r\n this.element.off('click.fdcontrol keydown.fdcontrol')\r\n .on('click.fdcontrol', function (event) {\r\n self._handleSubmit(event);\r\n if (self.options.stoppropagation) {\r\n event.stopPropagation();\r\n }\r\n })\r\n .on('keydown.fdcontrol', function (event) {\r\n if (event.which === keyCodes.Enter) {\r\n self._handleSubmit(event);\r\n if (self.options.stoppropagation) {\r\n event.stopPropagation();\r\n }\r\n }\r\n });\r\n },\r\n _setOption: function (key, value) {\r\n this.options[key] = value;\r\n }\r\n });\r\n}(jQuery));","(function ($) {\r\n 'use strict';\r\n $.widget(\"fd.control_checkbox\", {\r\n options: {\r\n parentid: null,\r\n callback: function () { },\r\n group: null\r\n },\r\n _create: function () {\r\n if (!this.options.parentid) {\r\n this.options.parentid = this.element.closest('[data-fd-parentid]').data('fd-parentid');\r\n }\r\n this.element.removeClass('d-none').removeAttr('data-fouc').uniform();\r\n this.element.val(this.element[0].checked ? 'true' : 'false');\r\n this._setEvents();\r\n },\r\n _handleSubmit: function (event) {\r\n const self = event.data;\r\n // Fix to post true/false instead of on/off for c# models.\r\n self.element.val(self.element[0].checked ? 'true' : 'false');\r\n // Fix for radio groups that have different name's OptionList[0].Selected\r\n if (self.element.attr('type') === 'radio' && self.options.group) {\r\n $.uniform.update(self.element.closest('form').find('[data-fd-group=\"' + self.options.group + '\"]').not(self.element).prop('checked', false));\r\n }\r\n self.options.callback.call(self, { parentid: self.options.parentid, value: self.element[0].checked }, event);\r\n },\r\n _setEvents: function () {\r\n this.element.off('change.fdcontrol').on('change.fdcontrol', null, this, this._handleSubmit);\r\n },\r\n _setOption: function (key, value) {\r\n this.options[key] = value;\r\n },\r\n refresh: function () {\r\n $.uniform.update(this.element);\r\n },\r\n update: function (value) {\r\n const checked = this.element.is(\":checked\");\r\n if (checked !== value) {\r\n this.element.click();\r\n } \r\n }\r\n });\r\n}(jQuery));","(function ($) {\r\n 'use strict';\r\n const confirmPopoverButton = \"FD_CONFIRM_POPOVER_BUTTON\";\r\n $.widget(\"fd.control_confirmationpopover\", {\r\n options: {\r\n confirmcallback: null,\r\n confirmclass: 'btn-primary',\r\n confirmlabel: 'Yes',\r\n cancelcallback: null,\r\n cancelclass: 'btn-link',\r\n cancellabel: 'Cancel',\r\n message: 'Are you sure?',\r\n container: 'body',\r\n parentid: null,\r\n passthrough: null\r\n },\r\n _create: function () {\r\n if (!this.options.parentid) {\r\n this.options.parentid = this.element.closest('[data-fd-parentid]').data('fd-parentid');\r\n }\r\n if (this.element.attr('tabindex') === undefined) { // Dismiss on next click doesn't work without tabindex value\r\n this.element.attr('tabindex', 0);\r\n }\r\n\r\n this._createPopover();\r\n },\r\n _createPopover: function () {\r\n if (this.element.popover) {\r\n this.element.popover('dispose');\r\n }\r\n const popoverHTML = [],\r\n options = {\r\n container: this.options.container,\r\n title: this.options.message,\r\n html: true,\r\n sanitize: false,\r\n trigger: 'manual'\r\n };\r\n\r\n // confirm button\r\n popoverHTML.push(\"\");\r\n\r\n // cancel button\r\n if (this.options.cancelcallback) {\r\n popoverHTML.push(\"\");\r\n } else {\r\n popoverHTML.push(\"\");\r\n }\r\n\r\n options.content = popoverHTML.join('');\r\n this.element.popover(options);\r\n this._setEvents();\r\n },\r\n _popoverEventsAreSet: false,\r\n _setEvents: function () {\r\n var that = this;\r\n this.element.off('click.fdcontrol shown.bs.popover hidden.bs.popover').on('click.fdcontrol', function (event, doAjaxPost) {\r\n if (doAjaxPost) {\r\n return;\r\n }\r\n\r\n if ($(\"#\" + confirmPopoverButton).length) {\r\n return false; // only allow one popover open at a time\r\n }\r\n\r\n if (that.options.parentid != that.element.closest('[data-fd-parentid]').data('fd-parentid')) {\r\n that.options.parentid = that.element.closest('[data-fd-parentid]').data('fd-parentid');\r\n that._createPopover();\r\n }\r\n\r\n that.element.popover('show');\r\n that.element.addClass('fd-opacity-50');\r\n return false;\r\n }).on('shown.bs.popover', function () {\r\n $(window).click(function () {\r\n that.element.popover('hide');\r\n $(window).off('click');\r\n });\r\n\r\n $('.popover').enableControls().off('click').on('click', function (event) {\r\n if (!$(event.target).is('button')) {\r\n event.stopPropagation();\r\n }\r\n\r\n // Trigger a new click on the original link to automaticaly run data-ajax code.\r\n if (that.element.is('[data-ajax=true]') && $(event.target).closest('button').is('#FD_CONFIRM_POPOVER_BUTTON')) {\r\n that.element.trigger('click', true);\r\n }\r\n });\r\n }).on('hidden.bs.popover', function () {\r\n that.element.removeClass('fd-opacity-50');\r\n });\r\n },\r\n _setOption: function (key, value) {\r\n this.options[key] = value;\r\n if (key === 'parentid' || key === 'passthrough') {\r\n this._createPopover();\r\n }\r\n }\r\n });\r\n}(jQuery));","(function ($) {\r\n 'use strict';\r\n $.widget(\"fd.control_datepicker\", {\r\n options: {\r\n parentid: null,\r\n callback: function () { },\r\n mindate: null,\r\n maxdate: null,\r\n format: 'mmmm d, yyyy',\r\n formatsubmit: 'yyyy-mm-dd',\r\n formatmoment: 'YYYY-MM-DD',\r\n hiddenName: true,\r\n disabledays: [], // Array of days of the week, numbered 1 - 7.\r\n allowclear: true,\r\n container: null,\r\n selectYears: true,\r\n selectMonths: true,\r\n alignright: false\r\n },\r\n _create: function () {\r\n const that = this;\r\n let lastValue;\r\n let pickadate;\r\n let skipHandleSubmit = false;\r\n\r\n if (!this.options.parentid) {\r\n this.options.parentid = this.element.closest('[data-fd-parentid]').data('fd-parentid');\r\n }\r\n const datepickerOptions = {\r\n disable: this.options.disabledays,\r\n format: this.options.format,\r\n formatSubmit: this.options.formatsubmit,\r\n hiddenName: this.options.hiddenName,\r\n clear: this.options.allowclear ? 'Clear' : '',\r\n selectYears: this.options.selectYears,\r\n selectMonths: this.options.selectMonths,\r\n onSet: function (context) {\r\n if (context.highlight) {\r\n return; // control is just setting the highlight option, not setting any values\r\n }\r\n\r\n if ((context.clear !== undefined || context.select !== undefined && !context.select) && !that.options.allowclear) {\r\n skipHandleSubmit = true;\r\n pickadate.set('select', lastValue);\r\n } else if (skipHandleSubmit) {\r\n skipHandleSubmit = false;\r\n } else {\r\n lastValue = context.select;\r\n that._handleSubmit(this, context);\r\n }\r\n }\r\n };\r\n if (this.options.mindate) {\r\n datepickerOptions.min = new Date(this.options.mindate);\r\n }\r\n if (this.options.maxdate) {\r\n datepickerOptions.max = new Date(this.options.maxdate);\r\n }\r\n if (this.options.container) {\r\n datepickerOptions.container = this.options.container;\r\n }\r\n\r\n this._datepickerInstance = this.element.pickadate(datepickerOptions);\r\n if (this.options.alignright) {\r\n this.element.next().find(\".picker__holder\").css(\"right\", 0);\r\n }\r\n pickadate = this._datepickerInstance.data().pickadate;\r\n lastValue = pickadate.get();\r\n \r\n const target = this.element.parent().find('[type=hidden]');\r\n target.attr('class', this.element.attr('class'));\r\n this.element.addClass('ignore-validators');\r\n\r\n const attributes = this.element[0].attributes;\r\n for (let i = 0; i < attributes.length; i++) {\r\n if (attributes[i].name.startsWith('data-val')) {\r\n target.attr(attributes[i].name, attributes[i].value);\r\n }\r\n }\r\n\r\n // don't tab to the pickadate buttons\r\n (this.options.container ? $(this.options.container) : $(this.element).next()).find('button').attr('tabindex', -1);\r\n },\r\n _handleSubmit: function (datepicker, context) {\r\n this.options.callback.call(this, {\r\n parentid: this.options.parentid,\r\n value: context.select ? moment(context.select).format(this.options.formatmoment) : null // If select isn't defined, they pressed the clear button\r\n }, datepicker);\r\n if (this.element.closest('form').validate().currentElements.length > 0) {\r\n this.element.parent().find('[type=hidden]').valid();\r\n }\r\n },\r\n _datepickerInstance: null,\r\n _setOption: function (key, value) {\r\n this.options[key] = value;\r\n }\r\n });\r\n}(jQuery));","/* global moment */\r\n(function ($) {\r\n 'use strict';\r\n const keyCodes = {\r\n Backspace: 8,\r\n Tab: 9,\r\n Enter: 13,\r\n Esc: 27,\r\n Delete: 46\r\n };\r\n $.widget(\"fd.control_daterangepicker\", {\r\n options: {\r\n parentid: null,\r\n callback: function () { },\r\n mindate: null,\r\n maxdate: null,\r\n type: 'single',\r\n usetime: false,\r\n predefinedranges: null,\r\n allownull: false\r\n },\r\n _defaultDatepickerOptions: {\r\n applyClass: 'bg-slate-600',\r\n cancelClass: 'btn-light',\r\n autoApply: false\r\n },\r\n _create: function () {\r\n if (!this.options.parentid) {\r\n this.options.parentid = this.element.closest('[data-fd-parentid]').data('fd-parentid');\r\n }\r\n const datepickerOptions = $.extend({}, this._defaultDatepickerOptions, {\r\n timePicker: this.options.usetime,\r\n singleDatePicker: this.options.type === 'single' || false,\r\n locale: {\r\n format: this._formatCode()\r\n },\r\n minDate: this.options.mindate || null,\r\n maxDate: this.options.maxdate || null,\r\n autoUpdateInput: !this.options.allownull,\r\n parentEl: this.element.parent()\r\n });\r\n if (this.options.predefinedranges) {\r\n datepickerOptions.ranges = {\r\n 'Today': [moment(), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Last 7 Days': [moment().subtract(6, 'days'), moment()],\r\n 'Last 30 Days': [moment().subtract(29, 'days'), moment()],\r\n 'This Month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')]\r\n };\r\n }\r\n this.element.daterangepicker(datepickerOptions);\r\n this._setEvents();\r\n },\r\n _handleBlur: function (event) {\r\n const self = event.data;\r\n if (self.options.allownull && !self.element.val().trim()) {\r\n self._handleSubmit(null, event);\r\n }\r\n },\r\n _handleKeyup: function (event) {\r\n const self = event.data;\r\n if (event.which === keyCodes.Enter) {\r\n self._handleSubmit(null, event);\r\n }\r\n },\r\n _handleHideDatepicker: function (event, datepicker) {\r\n const self = event.data;\r\n if (!self.options.autoUpdateInput) {\r\n self.element.val(self._getValue(datepicker));\r\n }\r\n self._handleSubmit(datepicker, event);\r\n },\r\n _handleApplyDatepicker: function (event, datepicker) {\r\n const self = event.data;\r\n if (!self.options.autoUpdateInput) {\r\n self.element.val(self._getValue(datepicker));\r\n }\r\n self._handleSubmit(datepicker, event);\r\n },\r\n _handleSubmit: function (datepicker, event) {\r\n if (datepicker) {\r\n this.options.callback.call(this, {\r\n parentid: this.options.parentid,\r\n value: this._getValue(datepicker),\r\n startDate: datepicker.startDate.format(this._formatCode()),\r\n endDate: datepicker.endDate.format(this._formatCode())\r\n }, event);\r\n } else {\r\n this.options.callback.call(this, { parentid: this.options.parentid }, event);\r\n }\r\n },\r\n _setEvents: function () {\r\n this.element.off('blur.fdcontrol, keyup.fdcontrol, hide.daterangepicker, apply.daterangepicker')\r\n .on('blur.fdcontrol', null, this, this._handleBlur)\r\n .on('keyup.fdcontrol', null, this, this._handleKeyup)\r\n .on('hide.daterangepicker', null, this, this._handleHideDatepicker)\r\n .on('apply.daterangepicker', null, this, this._handleApplyDatepicker);\r\n },\r\n _setOption: function (key, value) {\r\n this.options[key] = value;\r\n },\r\n _formatCode: function () {\r\n return this.options.usetime ? \"MM/DD/YYYY h:mm a\" : \"MM/DD/YYYY\";\r\n },\r\n _getValue: function (datepicker) {\r\n if (this.options.type === 'single') {\r\n return datepicker.startDate.format(this._formatCode());\r\n }\r\n\r\n return datepicker.startDate.format(this._formatCode()) + '-' + datepicker.endDate.format(this._formatCode());\r\n }\r\n });\r\n}(jQuery));","/* global Ladda */\r\n(function ($) {\r\n 'use strict';\r\n $.widget(\"fd.control_form\", {\r\n options: {\r\n parentid: null,\r\n callback: function () { },\r\n onchange: true, // If true, the form will submit on any :input change (input, textarea, button, or select)\r\n changecallback: null, // If no change callback is provided, control will automatically pass to the submit callback\r\n dirtyformsmessage: 'You have unsaved changes that may be lost if you leave this page. Are you sure you wish to proceed?',\r\n dirtyformstitle: 'Unsaved Changes'\r\n },\r\n _create: function () {\r\n if (!this.options.parentid) {\r\n this.options.parentid = this.element.closest('[data-fd-parentid]').data('fd-parentid');\r\n }\r\n if (this.element.is('form')) {\r\n $.validator.unobtrusive.parse(this.element);\r\n const validator = this.element.data(\"validator\");\r\n if (validator) {\r\n validator.settings.ignore = \".select2-search__field,.ignore-validators\";\r\n validator.settings.focusInvalid = false;\r\n }\r\n // Custom scrolling on invalid form to support header overlay and hidden elements.\r\n $(\"form\").bind(\"invalid-form.validate\", function (event, validator) {\r\n let target = $(validator.errorList[0].element).is('.picker__input') ?\r\n $(validator.errorList[0].element).siblings('input').closest(\":visible\")\r\n : $(validator.errorList[0].element).closest(\":visible\");\r\n\r\n if (!validator.numberOfInvalids()) {\r\n return;\r\n }\r\n\r\n const controlOffset = 35;\r\n const scrollTo = target.offset().top\r\n - parseInt($('.page-content').css('padding-top'))\r\n - parseInt($('body').css('padding-top'))\r\n - controlOffset;\r\n if ($('html,body').scrollTop() > scrollTo) {\r\n $('html,body').scrollTop(scrollTo);\r\n }\r\n target.focus();\r\n });\r\n\r\n this.form = this.element;\r\n } else {\r\n this.form = $(\"
\").appendTo(this.element);\r\n }\r\n\r\n const dirtyFormOptions = {\r\n message: this.options.dirtyformsmessage,\r\n dialog: {\r\n title: this.options.dirtyformstitle\r\n },\r\n fieldSelector: \"input:not([type='button'],[type='image'],[type='submit'],[type='reset'],[type='search']),select,textarea\",\r\n helpers: [\r\n {\r\n isDirty: function ($node, index) {\r\n if ($node.is('form')) {\r\n return $node.hasClass('force-dirty');\r\n }\r\n }\r\n }\r\n ]\r\n };\r\n\r\n this.form.dirtyForms(dirtyFormOptions);\r\n\r\n this._setEvents();\r\n },\r\n _handleChange: function (event) {\r\n event.stopPropagation();\r\n const form = event.data;\r\n const $input = $(this);\r\n\r\n if ($input.is(\":focus\")) {\r\n $input.off('blur').on('blur', null, event.data, form._handleChange);\r\n return; // don't fire change event until the input loses focus\r\n }\r\n\r\n if (form.options.onchange) {\r\n if (form.options.changecallback && typeof (form.options.changecallback) === 'function') {\r\n form.options.changecallback.call(form, { parentid: form.options.parentid, elem: $input }, event);\r\n }\r\n form.element.submit();\r\n }\r\n if (!form.element.is('form')) {\r\n form.form.addClass('dirty');\r\n }\r\n },\r\n _handleSubmit: function (event) {\r\n const self = event.data;\r\n if (self._triggerElement === undefined) {\r\n self._triggerElement = event.originalEvent ? $(event.originalEvent.submitter) : null;\r\n }\r\n self.options.callback.call(self, { parentid: self.options.parentid }, event);\r\n\r\n // An unobtrusive form will post on its own so don't cancel the event.\r\n if (!self.element.data('ajax')) {\r\n event.stopPropagation();\r\n }\r\n // Ignore dirty bit if this is submiting as a standard form.\r\n if (!self.element.data('ajax') && self.element.attr('action')) {\r\n self.setClean();\r\n }\r\n },\r\n _handleReset: function (event) {\r\n const self = event.data;\r\n setTimeout(function () {\r\n $('[data-fd-control=toggle]', self.element).control_toggle('destroy').control_toggle();\r\n $('[data-fd-control=select]', self.element).trigger('change');\r\n $('[data-fd-control=imagefile]', self.element).control_imagefile('reset');\r\n if (!(\"ontouchstart\" in document.documentElement)) {\r\n $(\"input:visible,textarea:visible,select:visible\", self.element).first().focus();\r\n }\r\n\r\n // Clear current errors.\r\n const validator = self.element.validate();\r\n $(\":input\", self.element).each(function () {\r\n validator.successList.push(this);\r\n });\r\n validator.showErrors();\r\n validator.resetForm();\r\n validator.reset();\r\n }, 1);\r\n },\r\n _setEvents: function () {\r\n const $self = this.element;\r\n $self.off('submit.fdcontrol reset.fdcontrol')\r\n .on('submit.fdcontrol', null, this, this._handleSubmit)\r\n .on('reset.fdcontrol', null, this, this._handleReset);\r\n\r\n if (this.options.onchange || !$self.is('form')) {\r\n $self.off('change.fdformcontrol')\r\n .on('change.fdformcontrol', ':input', this, this._handleChange);\r\n }\r\n },\r\n _setOption: function (key, value) {\r\n this.options[key] = value;\r\n },\r\n setClean: function () {\r\n this.form.removeClass('dirty force-dirty').dirtyForms('setClean');\r\n },\r\n valid: function () {\r\n const $self = this.element;\r\n\r\n if (this.element.is('form')) {\r\n return this.element.valid();\r\n }\r\n\r\n let inputsAreValid = true;\r\n this.element.find('[name][name!=\"\"]:input').filter(function () {\r\n return $(this).closest('[data-fd-control=form]')[0] === $self[0];\r\n }).each(function () {\r\n const $input = $(this);\r\n const $validationElement = $input.add($input.next('[data-valmsg-for]'));\r\n $.validator.unobtrusive.parse($validationElement.wrapAll('').parent().first());\r\n inputsAreValid = $input.parent().valid() && inputsAreValid;\r\n $validationElement.unwrap();\r\n });\r\n return inputsAreValid;\r\n },\r\n rebuildValidate: function () {\r\n $.validator.unobtrusive.parse(this.element);\r\n\r\n var unobtrusiveValidation = this.element.data('unobtrusiveValidation');\r\n var validator = this.element.validate();\r\n\r\n $.each(unobtrusiveValidation.options.rules, function (elname, elrules) {\r\n if (validator.settings.rules[elname] === undefined) {\r\n var args = {};\r\n $.extend(args, elrules);\r\n args.messages = unobtrusiveValidation.options.messages[elname];\r\n $(\"[name='\" + elname + \"']\").rules(\"add\", args);\r\n } else {\r\n $.each(elrules, function (rulename, data) {\r\n if (validator.settings.rules[elname][rulename] === undefined) {\r\n var args = {};\r\n args[rulename] = data;\r\n args.messages = unobtrusiveValidation.options.messages[elname][rulename];\r\n $(\"[name='\" + elname + \"']\").rules(\"add\", args);\r\n }\r\n });\r\n }\r\n });\r\n },\r\n serialize: function () {\r\n const $self = this.element;\r\n\r\n if (this.element.is('form')) {\r\n return this.element.serialize();\r\n }\r\n\r\n return this.element.find('[name][name!=\"\"]:input').filter(function () {\r\n return $(this).closest('[data-fd-control=form]')[0] === $self[0];\r\n }).serialize();\r\n },\r\n reset: function () {\r\n // This will reset the controlls of a form to the default page-load state. If called on a non-form it will rest all child forms but not affect input's not contained in a form.\r\n if (!this.element.is('form')) {\r\n $(\"form[data-fd-control=form]\", this.element).control_form('reset');\r\n } else {\r\n this.element.trigger(\"reset\");\r\n }\r\n },\r\n popTriggerElement: function () {\r\n const triggerElement = this.getTriggerElement();\r\n this._triggerElement = undefined;\r\n return triggerElement;\r\n },\r\n getTriggerElement: function () {\r\n return this._triggerElement || $();\r\n }\r\n });\r\n}(jQuery));","(function ($) {\r\n 'use strict';\r\n const isAdvancedUpload = function () {\r\n var div = document.createElement('div');\r\n return (('draggable' in div) || ('ondragstart' in div && 'ondrop' in div)) && 'FormData' in window && 'FileReader' in window;\r\n }();\r\n const isMobile = function () {\r\n return \"ontouchstart\" in document.documentElement;\r\n }();\r\n $.event.fix = (function (originalFix) {\r\n return function (event) {\r\n event = originalFix.apply(this, arguments);\r\n if (event.type.indexOf(\"copy\") === 0 || event.type.indexOf(\"paste\") === 0) {\r\n event.clipboardData = event.originalEvent.clipboardData;\r\n }\r\n return event;\r\n };\r\n })($.event.fix);\r\n\r\n var eventsWired = false;\r\n var currentSelection;\r\n\r\n $.widget(\"fd.control_imagefile\", {\r\n options: {\r\n callback: function () { }, // on remove, returning false will override remove functionality. Otherwise this is in addition to removing or selecting a file\r\n choosefiletext: 'Choose File',\r\n choosefileclass: 'btn btn-info',\r\n choosefileicon: \"\",\r\n takepicturetext: 'Take Picture',\r\n takepictureclass: 'btn btn-info',\r\n takepictureicon: \"\",\r\n unsupportedfiletypetext: 'Unsupported File Type', // supported file types are indicated by the accept attribute\r\n unsupportedfilesizetext: 'Unsupported File Size',\r\n maxsize: 29360128, // default 28 MB (this is the default max file upload size, approximately, for asp.net core)\r\n removetext: 'Remove',\r\n removecssclass: 'btn btn-danger',\r\n removeicon: \"\",\r\n filenamecssclass: 'file-caption-info',\r\n imagecssclass: 'file-thumbnail my-2',\r\n urlcssclass: 'fd-margin-top-10',\r\n mobilecssclass: \"fas fa-cloud-upload-alt\",\r\n enablepreview: true,\r\n previewplacemnt: 'above', // above, below\r\n advancedupload: true,\r\n dragdroptitle: 'Drag & drop files here …',\r\n copypastetitle: 'or click here and press [Ctrl-V].',\r\n forbidden: \"application/x-msdownload,*.bat,*.cmd,*.scr,*.bash\",\r\n uploadbutton: false,\r\n uploadbuttontext: 'Upload File(s)',\r\n uploadbuttonclass: 'btn btn-success',\r\n uploadicon: \"\",\r\n uploadmessage: 'Files are uploading',\r\n autoupload: false\r\n },\r\n initial: function (value) {\r\n if (value === undefined) {\r\n return this.options.initial;\r\n }\r\n\r\n this.options.initial = value;\r\n this.element.data('initial', value).attr('data-initial', value);\r\n return this;\r\n },\r\n _create: function () {\r\n var self = this;\r\n if (!this.options.parentid) {\r\n this.options.parentid = this.element.closest('[data-fd-parentid]').data('fd-parentid');\r\n }\r\n\r\n this._createUiElements();\r\n this._tryLoadUrl(this.element.attr('value'));\r\n this._setEvents();\r\n },\r\n _remove: function (event, skipCallback) {\r\n // Note that element[0].files will still existing in this callback.\r\n if (!skipCallback && !this.options.uploadbutton && this.options.callback.call(this, { parentID: this.options.parentid, value: this.element.attr('multiple') ? this.element[0].files : this.element[0].files[0], isRemove: true }, event) === false) {\r\n return false;\r\n }\r\n\r\n this.$previewImage.addClass('d-none');\r\n this.$previewIcon.addClass('d-none');\r\n this.$removeButton.addClass('d-none');\r\n if (this.options.uploadbutton) {\r\n this.$uploadButton.addClass('d-none');\r\n }\r\n this.$buttonGroup.toggleClass('btn-group', this.$buttonGroup.children(':visible').length > 1);\r\n if (this.options.advancedupload && isAdvancedUpload) {\r\n this.$dropZoneTitle.removeClass('d-none');\r\n if (!isMobile) {\r\n this.$copyPasteTitle.removeClass('d-none');\r\n }\r\n }\r\n this.$fileNameLabel.text('');\r\n this.element[0].value = '';\r\n this.element.trigger('change');\r\n if (!skipCallback) {\r\n this.element.valid();\r\n }\r\n if (!this.options.enablepreview && this.url) {\r\n this.$fileNameLabel.removeClass('d-none');\r\n }\r\n if (this.element.data('val')) {\r\n this.element.rules('add', 'required');\r\n }\r\n if (this.element.attr('value')) {\r\n this.$removeUrl.val(true);\r\n }\r\n if (this.element.attr('multiple')) {\r\n this.$fileList.children().not(this.$fileListItem).remove();\r\n }\r\n\r\n return false;\r\n },\r\n _setValue: function (urlOrInputFile) {\r\n if (urlOrInputFile && urlOrInputFile.files && urlOrInputFile.files[0]) {\r\n var fileElement = urlOrInputFile.files[0];\r\n this._showSelectionControls(fileElement.name, this.$fileListItem);\r\n } else {\r\n this._tryLoadUrl(urlOrInputFile);\r\n this.reset();\r\n }\r\n },\r\n reset: function () {\r\n this._remove(null, true);\r\n },\r\n _tryLoadUrl: function (url) {\r\n if (!url) {\r\n return;\r\n }\r\n\r\n const name = url.startsWith(\"data\") ? \"\" : url.split('/').pop();\r\n\r\n try { \r\n this.$fileNameLabel.text(name).removeClass(\"d-none\");\r\n this._showSelectionControls(name, this.$fileListItem);\r\n this.element.rules('remove', 'required');\r\n } catch (e) { } \r\n\r\n var self = this;\r\n var tmpImg = new Image();\r\n tmpImg.onload = function () {\r\n self._previewUrl(url, true, name, self.$fileListItem);\r\n };\r\n tmpImg.src = url;\r\n },\r\n _createUiElements: function () {\r\n\r\n this.$container = $('').insertAfter(this.element);\r\n this.$dropZone = $('').appendTo(this.$container);\r\n this.$dropZoneTitle = $('