<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">!function(global, $) {
    'use strict';

    function ConcretePageSelector($element, options) {
        'use strict';
        var my = this,
            options = $.extend({
                'chooseText': ccmi18n_sitemap.choosePage,
                'loadingText': ccmi18n_sitemap.loadingText,
                'inputName': 'cID',
                'cID': 0
            }, options);

        my.$element = $element;
        my.options = options;
        my._chooseTemplate = _.template(my.chooseTemplate, {'options': my.options});
        my._loadingTemplate = _.template(my.loadingTemplate, {'options': my.options});
        my._pageLoadedTemplate = _.template(my.pageLoadedTemplate);
        my._pageMenuTemplate = _.template(ConcretePageAjaxSearchMenu.get());

        my.$element.append(my._chooseTemplate);
        my.$element.on('click', 'a[data-page-selector-link=choose]', function(e) {
            e.preventDefault();
            ConcretePageAjaxSearch.launchDialog(function(data) {
                my.loadPage(data.cID);
            });
        });

        if (my.options.cID) {
            my.loadPage(my.options.cID);
        }
    }

    ConcretePageSelector.prototype = {


        chooseTemplate: '&lt;div class="ccm-page-selector"&gt;' +
            '&lt;input type="hidden" name="&lt;%=options.inputName%&gt;" value="0" /&gt;&lt;a href="#" data-page-selector-link="choose"&gt;&lt;%=options.chooseText%&gt;&lt;/a&gt;&lt;/div&gt;',
        loadingTemplate: '&lt;div class="ccm-page-selector"&gt;&lt;div class="ccm-page-selector-choose"&gt;&lt;i class="fa fa-spin fa-spinner"&gt;&lt;/i&gt; &lt;%=options.loadingText%&gt;&lt;/div&gt;&lt;/div&gt;',
        pageLoadedTemplate: '&lt;div class="ccm-page-selector"&gt;&lt;div class="ccm-page-selector-page-selected"&gt;' +
            '&lt;input type="hidden" name="&lt;%=inputName%&gt;" value="&lt;%=page.cID%&gt;" /&gt;' +
            '&lt;a data-page-selector-action="clear" href="#" class="ccm-page-selector-clear"&gt;&lt;i class="fa fa-close"&gt;&lt;/i&gt;&lt;/a&gt;' +
            '&lt;div class="ccm-page-selector-page-selected-title"&gt;&lt;%=page.name%&gt;&lt;/div&gt;' +
            '&lt;/div&gt;&lt;/div&gt;',

        loadPage: function(cID) {
            var my = this;
            my.$element.html(my._loadingTemplate);
            ConcretePageAjaxSearch.getPageDetails(cID, function(r) {
                var page = r.pages[0];
                my.$element.html(my._pageLoadedTemplate({'inputName': my.options.inputName, 'page': page}));
                my.$element.on('click', 'a[data-page-selector-action=clear]', function(e) {
                    e.preventDefault();
                    my.$element.html(my._chooseTemplate);
                });
            });
        }
    }

    // jQuery Plugin
    $.fn.concretePageSelector = function(options) {
        return $.each($(this), function(i, obj) {
            new ConcretePageSelector($(this), options);
        });
    }

    global.ConcretePageSelector = ConcretePageSelector;

}(this, $);
</pre></body></html>