File: /var/www/zaklada/html/node_modules/browser-sync-ui/lib/plugins/history/history.client.js
(function (angular) {
    const SECTION_NAME = "history";
    angular
        .module("BrowserSync")
        .controller("HistoryController", [
            "$scope",
            "options",
            "History",
            "pagesConfig",
            historyController
        ]);
    /**
     * @param $scope
     * @param options
     * @param History
     * @param pagesConfig
     */
    function historyController($scope, options, History, pagesConfig) {
        var ctrl       = this;
        ctrl.options = options.bs;
        ctrl.section = pagesConfig[SECTION_NAME];
        ctrl.visited = [];
        ctrl.update  = function (items) {
            ctrl.visited = items;
            $scope.$digest();
        };
        History.get().then(function (items) {
            ctrl.visited = items;
        });
        History.on("change", ctrl.update);
        $scope.$on("$destroy", function () {
            History.off(ctrl.update);
        });
        ctrl.clearVisited = function () {
            History.clear();
        };
    }
    angular
        .module("BrowserSync")
        .directive("historyList", function () {
            return {
                restrict: "E",
                scope: {
                    options: "=",
                    visited: "="
                },
                templateUrl: "history.directive.html",
                controller: ["$scope", "History", "Clients", historyDirective],
                controllerAs: "ctrl"
            };
        });
    /**
     * Controller for the URL sync
     * @param $scope - directive scope
     * @param History
     * @param Clients
     */
    function historyDirective($scope, History, Clients) {
        var ctrl = this;
        ctrl.visited = [];
        ctrl.utils = {};
        ctrl.utils.localUrl = function (path) {
            return [$scope.options.urls.local, path].join("");
        };
        ctrl.updateVisited = function (data) {
            ctrl.visited = data;
            $scope.$digest();
        };
        ctrl.sendAllTo = function (url) {
            url.success = true;
            Clients.sendAllTo(url.path);
            setTimeout(function () {
                url.success = false;
                $scope.$digest();
            }, 1000);
        };
        ctrl.removeVisited = function (item) {
            History.remove(item);
        };
        History.get().then(function (items) {
            ctrl.visited = items;
        });
        History.on("change", ctrl.updateVisited);
        $scope.$on("$destroy", function () {
            History.off(ctrl.updateVisited);
        });
    }
})(angular);