| 12345678910111213141516171819202122232425262728293031323334353637383940414243 | /*global URLify*/'use strict';{    const $ = django.jQuery;    $.fn.prepopulate = function(dependencies, maxLength, allowUnicode) {        /*            Depends on urlify.js            Populates a selected field with the values of the dependent fields,            URLifies and shortens the string.            dependencies - array of dependent fields ids            maxLength - maximum length of the URLify'd string            allowUnicode - Unicode support of the URLify'd string        */        return this.each(function() {            const prepopulatedField = $(this);            const populate = function() {                // Bail if the field's value has been changed by the user                if (prepopulatedField.data('_changed')) {                    return;                }                const values = [];                $.each(dependencies, function(i, field) {                    field = $(field);                    if (field.val().length > 0) {                        values.push(field.val());                    }                });                prepopulatedField.val(URLify(values.join(' '), maxLength, allowUnicode));            };            prepopulatedField.data('_changed', false);            prepopulatedField.on('change', function() {                prepopulatedField.data('_changed', true);            });            if (!prepopulatedField.val()) {                $(dependencies.join(',')).on('keyup change focus', populate);            }        });    };}
 |