| 
					
				 | 
			
			
				@@ -1,129 +0,0 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-// assets/js/widgets/select2.js 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-// pour le widget select2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import  'select2'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//require('./select2-fr.js'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import 'select2/dist/js/i18n/fr.js'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-(function ($) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $.fn.select2entity = function (options) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.each(function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            var request; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // Keep a reference to the element so we can keep the cache local to this instance and so we can 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // fetch config settings since select2 doesn't expose its options to the transport method. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            var $s2 = $(this), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    limit = $s2.data('page-limit') || 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    scroll = $s2.data('scroll'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    prefix = Date.now(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    cache = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            var reqParams = $s2.data('req_params'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (reqParams) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $.each(reqParams, function (key, value) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    $('*[name="' + value + '"]').on('change', function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        $s2.val(null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        $s2.trigger('change'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // Deep-merge the options 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $s2.select2($.extend(true, { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                // Tags support 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                createTag: function (data) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if ($s2.data('tags') && data.term.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        var text = data.term + $s2.data('tags-text'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        return {id: $s2.data('new-tag-prefix') + data.term, text: text}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                ajax: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    url: $s2.data('ajax--url'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    transport: function (params, success, failure) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        // is caching enabled? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if ($s2.data('ajax--cache')) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            // try to make the key unique to make it less likely for a page+q to match a real query 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            var key = prefix + ' page:' + (params.data.page || 1) + ' ' + params.data.q, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    cacheTimeout = $s2.data('ajax--cacheTimeout'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            // no cache entry for 'term' or the cache has timed out? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            if (typeof cache[key] == 'undefined' || (cacheTimeout && Date.now() >= cache[key].time)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                $.ajax(params).fail(failure).done(function (data) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    cache[key] = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        data: data, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        time: cacheTimeout ? Date.now() + cacheTimeout : null 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    success(data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                // return cached data with no ajax request 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                success(cache[key].data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            // no caching enabled. just do the ajax request 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            if (request) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                request.abort(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            request = $.ajax(params).fail(failure).done(success).always(function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                request = undefined; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    data: function (params) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        var ret = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            'q': params.term, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            'field_name': $s2.data('name') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        var reqParams = $s2.data('req_params'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if (reqParams) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            $.each(reqParams, function (key, value) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                ret[key] = $('*[name="' + value + '"]').val() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        // only send the 'page' parameter if scrolling is enabled 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if (scroll) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            ret['page'] = params.page || 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        return ret; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    processResults: function (data, params) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        var results, more = false, response = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        params.page = params.page || 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if ($.isArray(data)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            results = data; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } else if (typeof data == 'object') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            // assume remote result was proper object 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            results = data.results; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            more = data.more; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            // failsafe 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            results = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if (scroll) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            response.pagination = {more: more}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        response.results = results; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        return response; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                placeholder: $s2.data('placeholder'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                minimumInputLength: $s2.data('minimum-input-length'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                language: $s2.data('language'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//            theme: 'bootstrap4', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                tags: $s2.data('tags') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }, options || {})); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-})(jQuery); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-(function ($) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $(document).ready(function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $('.select2entity[data-autostart="true"]').select2entity(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-})(jQuery); 
			 |