{"version":3,"file":"js/reorder_labs-5c8c5756791b586860e9.js","mappings":"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","sources":["webpack:///./app/javascript/packs/_form_helpers.js","webpack:///./app/javascript/packs/reorder_labs.js"],"sourcesContent":["const $ = window.$;\nconst bootstrap = window.bootstrap;\nconst toastr = window.toastr;\nconst Pickr = window.Pickr;\n\nimport flatpickr from 'flatpickr';\n\n'use strict';\n\nexport function create_flatpickr( element_selector_array ){\n element_selector_array.forEach( function( el ){\n let $el = $( el ),\n options;\n\n options = {\n allowInvalidPreload: true,\n dateFormat: $el.data( 'dateonly' ) == true ? 'Y-m-d' : 'Y-m-d h:i K',\n enableTime: $el.data( 'dateonly' ) == true ? false : true,\n minDate: $el.data( 'startdate' ) == 'now' ? roundUpto( 15, convertTZ( $el.data( 'timezone' ) ) ) : undefined,\n minuteIncrement: 1,\n mode: $el.data( 'range' ) == true ? 'range' : 'single',\n time_24hr: false,\n wrap: $el.data( 'wrap' ) == true ? true : false,\n onClose: function( selectedDates, dateStr, instance ) {\n if ( ( instance.config.mode == 'range' ) && ( selectedDates.length == 1 ) ) {\n instance.setDate( [ selectedDates[ 0 ], selectedDates[ 0 ] ], true );\n }\n },\n onOpen: function( selectedDates, dateStr, instance ) {\n if ( ( instance.config.minDate ) && ( selectedDates.length == 0 ) ) {\n instance.set( 'minDate', roundUpto( 15, convertTZ( instance.element.dataset.timezone ) ) );\n }\n }\n };\n flatpickr( $el, options );\n } );\n}\n\nexport function roundUpto( minutes, d = new Date() ) {\n let ms = 1000 * 60 * minutes;\n return new Date( Math.ceil( d.getTime() / ms ) * ms );\n}\n\nexport function convertTZ( tzString ) {\n let date = new Date();\n if ( tzString ) {\n return new Date( ( typeof date === \"string\" ? new Date( date ) : date ).toLocaleString( \"en-US\", { timeZone: tzString } ) );\n } else {\n return date;\n }\n}\n\n// searchable dropdowns\nexport function create_searchable_dropdowns( element_selector ){\n var obj, parent;\n obj = {\n width: '100%',\n theme: 'bootstrap5',\n selectionCssClass: 'form-select',\n placeholder: 'Please select',\n matcher: customMatcher,\n };\n\n parent = $( element_selector ).closest( '.modal' );\n\n if( parent.length ){\n obj[ 'dropdownParent' ] = parent;\n }\n $( element_selector ).select2( obj );\n}\n\nfunction customMatcher( params, data ) {\n var match,\n c,\n child,\n matches,\n original,\n term;\n data.parentText = data.parentText || \"\";\n if( $.trim( params.term ) === '' ){\n return data;\n }\n if( data.children && data.children.length > 0 ){\n match = $.extend( true, {}, data );\n for( c = data.children.length - 1; c >= 0; c-- ){\n child = data.children[ c ];\n child.parentText += data.parentText + \" \" + data.text;\n matches = customMatcher( params, child );\n if( matches == null ){\n match.children.splice( c, 1 );\n }\n }\n if( match.children.length > 0 ){\n return match;\n }\n return customMatcher( params, match );\n }\n original = ( data.parentText + ' ' + data.text ).toUpperCase();\n term = params.term.toUpperCase();\n if( original.indexOf( term ) > -1 ){\n return data;\n }\n return null;\n}\n\n// required fields\n// set_required_fields( 'form', [ { id: '#name', display: 'Name', func: function(){ false; } ] );\nexport function set_required_fields( form_selector, required_fields ){\n $( form_selector ).on( 'submit', function( e ){\n let err = false;\n\n $( '.is-invalid', form_selector ).removeClass( 'is-invalid' );\n\n required_fields.forEach( function( field ){\n let ret = field_check( field );\n\n if( ret ){ err = true; }\n } );\n\n if( err ){\n e.preventDefault();\n } else {\n this.submit();\n }\n return !err;\n\n function field_check( field ){\n let $field = $( field.id ),\n err = false,\n func = field.func || default_blank_check;\n\n if ( Array.isArray( func( $field ) ) ){\n if( func( $field )[ 0 ] ){\n toastr.error( func( $field )[ 1 ] );\n $field.addClass( 'is-invalid' );\n\n err = true;\n }\n }\n else{\n if( func( $field ) ){\n toastr.error( field.display + ' is required' );\n $field.addClass( 'is-invalid' );\n\n err = true;\n }\n }\n\n return err;\n }\n\n function default_blank_check( field ){\n return field[ 0 ] && ( field.val() == null || field.val().trim() == '' );\n }\n } );\n}\n\nexport function overlap( element_selector, event_id, event_tz, start_at, end_at, auto_publish_value, auto_publish_type, auto_destroy_value, auto_destroy_type, auto_publish = null, auto_destroy = null ) {\n $( element_selector ).hide();\n $.ajax( {\n method: 'get',\n url: '/admin/events/overlap',\n data: {\n event_id: event_id,\n event_tz: event_tz,\n start_at: start_at,\n end_at: end_at,\n auto_publish_value: auto_publish_value,\n auto_publish_type: auto_publish_type,\n auto_destroy_value: auto_destroy_value,\n auto_destroy_type: auto_destroy_type,\n auto_publish: auto_publish,\n auto_destroy: auto_destroy\n },\n success: function( d ){\n if( d.error ){\n $( element_selector ).show().find( '.overlap-content' ).html( d.message );\n }\n },\n error: function( x ){\n switch ( x.status ) {\n case 401:\n session_timeout_30(); // eslint-disable-line no-undef\n break;\n default:\n toastr.error( x.responseText );\n }\n },\n } );\n}\n\nexport function reset_buttons( selector ) {\n let btn = $( selector )[ 0 ];\n btn.dataset.loading = '';\n btn.disabled = false;\n if( btn.dataset.originalText ) {\n btn.innerText = btn.dataset.originalText;\n }\n}\n\nexport function toast_errors( errors ){\n if( typeof( errors ) == 'object' ){\n for( let i = 0; i < errors.length; i++ ){\n toastr.error( errors[ i ] );\n }\n } else {\n toastr.error( errors );\n }\n}\n\nexport function custom_popover( selector ) {\n let popoverSettings = {\n placement: 'left',\n trigger: 'manual',\n html: true,\n sanitize : false,\n animation: false,\n template: '
'\n };\n $( 'body' ).on( 'mouseenter', selector, function() {\n var _this = this;\n $( _this ).popover( popoverSettings );\n $( _this ).popover( 'show' );\n $( bootstrap.Popover.getInstance( $( this ) ).tip ).on( 'mouseleave', function() {\n setTimeout( function() {\n $( _this ).popover( 'hide' );\n }, 100 );\n } );\n } ).on( 'mouseleave', selector, function() {\n var _this = this;\n $( _this ).popover( popoverSettings );\n setTimeout( function() {\n if ( !$( '.popover:hover' ).length ) {\n if ( !$( _this ).is( ':hover' ) ) {\n $( _this ).popover( 'hide' );\n }\n }\n }, 100 );\n } );\n}\n\nexport function color_pickr( element_selector_array ) {\n element_selector_array.forEach( function( el ){\n\n let $input = $( el ),\n current_color = $input.val(),\n pickr;\n\n if( !$input[ 0 ] ){\n return;\n }\n if ( !current_color && $input.hasClass( \"required\" ) ){\n current_color = Math.floor( Math.random()*16777215 ).toString( 16 ).padStart( 6, '0' );\n }\n\n pickr = new Pickr( {\n el: $input.parent().find( '.pickr' )[ 0 ],\n theme: 'monolith',\n swatches: null,\n defaultRepresentation: 'HEX',\n default: current_color,\n comparison: true,\n lockOpacity: true,\n components: {\n preview: true,\n opacity: false,\n hue: true,\n interaction: {\n hex: true,\n rgba: false,\n hsva: false,\n input: true,\n clear: false,\n cancel: true,\n save: true,\n }\n }\n } )\n .on( 'init' , function( instance ) {\n current_color = getSelectedColor( instance );\n $input.val( current_color ).trigger( 'change' );\n } )\n .on( 'cancel' , function( instance ) {\n current_color = getSelectedColor( instance );\n $input.val( current_color ).trigger( 'change' );\n } )\n .on( 'change' , function( color ) {\n let new_color = color\n .toHEXA()\n .toString();\n $input.val( new_color ).trigger( 'change' );\n } );\n\n function getSelectedColor( instance ){\n let selected_color = '';\n if( current_color ){\n selected_color = instance.getSelectedColor().toHEXA().toString();\n }\n return selected_color;\n }\n\n $input.on( 'focus', function() {\n pickr.show();\n } );\n\n $input.on( 'keyup change', function() {\n $( $input ).parent().find( '.pcr-button' ).css( '--pcr-color', $input.val() );\n } );\n\n } );\n}\n","const $ = window.$;\nconst toastr = window.toastr;\n\nimport { reset_buttons } from 'form_helpers';\n\n\"use strict\";\n\nvar ReorderLabs = {\n init: function() {\n $( '#lab_tree_order' ).jstree( {\n core: {\n animation: 0,\n multiple: false,\n themes: {\n responsive: false,\n stripes: true\n },\n check_callback: true\n },\n plugins: [ 'dnd', 'search', 'types', 'unique' ],\n types: {\n default: {\n max_depth: 2,\n icon: 'fa fa-folder'\n },\n lab: {\n valid_children: [],\n icon: '/img/theme/icons/icon-lab.svg'\n },\n },\n } ).on( 'move_node.jstree', function(){\n $( '.order-by-group .btn.dropdown-toggle' ).val( 'Custom' ).html( 'Custom' );\n } );\n\n $( '#lab_tree_order' ).jstree( true ).open_all();\n\n var timeout = false;\n $( '#lab_tree_search' ).keyup( function() {\n if( timeout ){ clearTimeout( timeout ); }\n timeout = setTimeout( function() {\n var v = $( '#lab_tree_search' ).val();\n $( '#lab_tree_order' ).jstree( true ).search( v );\n }, 250 );\n } );\n\n $( '.action-order-by a' ).on( 'click', function( e ){\n let filterValue = $( this ).attr( 'data-filter-text' );\n if( filterValue == 'Name' ){\n sort( 'name' );\n } else if( filterValue == 'URL' ) {\n sort( 'url' );\n }\n $( this ).parents( '.dropdown' ).find( '.btn' ).html( $( this ).text() );\n $( this ).parents( '.dropdown' ).find( '.btn' ).val( $( this ).data( 'value' ) );\n e.preventDefault();\n } );\n\n function sort( value ) {\n let $tree = $( '#lab_tree_order' ).jstree( true ),\n data = $tree._model.data;\n\n Object.keys( data ).forEach( function( k ){\n let node = $tree.get_node( k ),\n new_order;\n if( node.children.length == 0 ){ return; } // no children, so skip\n\n new_order = node.children.sort( sort_node );\n $( '#lab_tree_order' ).jstree( 'move_node', new_order, node.id, 'last' );\n } );\n\n function sort_node( a, b ){\n let aa = $tree.get_node( a ),\n bb = $tree.get_node( b );\n\n if( aa.type == 'default' && bb.type == 'lab' ){ return -1; }\n if( aa.type == 'lab' && bb.type == 'default' ){ return 1; }\n if( aa.type == 'default' ){\n return ( aa.data.path < bb.data.path ) ? -1 : 1;\n } else { // lab\n if( value == 'name' ){\n return ( aa.text < bb.text ) ? -1 : 1;\n } else { // url\n return ( aa.data.url < bb.data.url ) ? -1 : 1;\n }\n }\n }\n }\n\n $( '#reorder-labs-modal .reorder_btn' ).on( 'click', function( e ){\n let $this = $( this );\n $.ajax( {\n url: '/admin/labs/sort',\n method: 'POST',\n data: { order: $( '#lab_tree_order' ).jstree( true ).get_json() },\n success: function( d ){\n if( d.error ){\n toastr.error( 'Error has occurred while sorting the labs' );\n } else {\n $( '#reorder-labs-modal' ).modal( 'hide' );\n toastr.success( d.message );\n }\n reset_buttons( $this );\n }\n } );\n e.preventDefault();\n } );\n }\n};\n\n$( function(){\n document.addEventListener( 'turbo:frame-render', async e => {\n if ( e.target.id == 'reorder-labs-template' ){\n $( '#reorder-labs-modal' ).modal( {\n focus: false\n } );\n $( '#reorder-labs-modal' ).modal( 'show' );\n ReorderLabs.init();\n }\n } );\n} );\n"],"names":["$","window","bootstrap","toastr","Pickr","create_flatpickr","element_selector_array","forEach","el","options","$el","allowInvalidPreload","dateFormat","data","enableTime","minDate","roundUpto","convertTZ","undefined","minuteIncrement","mode","time_24hr","wrap","onClose","selectedDates","dateStr","instance","config","length","setDate","onOpen","set","element","dataset","timezone","flatpickr","minutes","d","Date","ms","Math","ceil","getTime","tzString","date","toLocaleString","timeZone","create_searchable_dropdowns","element_selector","obj","parent","width","theme","selectionCssClass","placeholder","matcher","customMatcher","closest","select2","params","match","c","child","original","term","parentText","trim","children","extend","text","splice","toUpperCase","indexOf","set_required_fields","form_selector","required_fields","on","e","err","removeClass","field","ret","$field","id","func","default_blank_check","Array","isArray","error","addClass","display","field_check","preventDefault","this","submit","val","overlap","event_id","event_tz","start_at","end_at","auto_publish_value","auto_publish_type","auto_destroy_value","auto_destroy_type","auto_publish","auto_destroy","hide","ajax","method","url","success","show","find","html","message","x","status","session_timeout_30","responseText","reset_buttons","selector","btn","loading","disabled","originalText","innerText","toast_errors","errors","i","custom_popover","popoverSettings","placement","trigger","sanitize","animation","template","_this","popover","Popover","getInstance","tip","setTimeout","is","color_pickr","pickr","$input","current_color","getSelectedColor","selected_color","toHEXA","toString","hasClass","floor","random","padStart","swatches","defaultRepresentation","default","comparison","lockOpacity","components","preview","opacity","hue","interaction","hex","rgba","hsva","input","clear","cancel","save","color","new_color","css","ReorderLabs","jstree","core","multiple","themes","responsive","stripes","check_callback","plugins","types","max_depth","icon","lab","valid_children","open_all","timeout","sort","value","$tree","_model","sort_node","a","b","aa","get_node","bb","type","path","Object","keys","k","new_order","node","keyup","clearTimeout","v","search","filterValue","attr","parents","$this","order","get_json","modal","document","addEventListener","target","focus"],"sourceRoot":""}