import template from "./ImagePreviewGroup.html"; angular .module("esNgAntd") .directive("esImagePreviewGroup", function (esNgAntd) { return { controllerAs: "esImagePreviewGroup", restrict: "E", transclude: true, replace: true, scope: { preview: "=", }, template: template, controller: function ($scope, $element, $attrs) { this.getContext = function () { return $scope; }; $scope.state = { current: 0, visible: false, src: null, childrens: [], }; $scope.addChildren = function (children) { $scope.state.childrens.push(children); return $scope.state.childrens.length - 1; }; $scope.setCurrent = function (value) { $scope.state.current = value; if ( typeof $scope.preview === "object" && typeof $scope.preview.onCurrentChange === "function" ) { $scope.preview.onCurrentChange(value); } }; $scope.setVisible = function (value) { $scope.state.visible = value; if ( typeof $scope.preview === "object" && typeof $scope.preview.onVisibleChange === "function" ) { $scope.preview.onVisibleChange(value); } }; $scope.handleOpen = function (index) { $scope.setCurrent(index); $scope.state.src = $scope.state.childrens[index].state.src; $scope.setVisible(true); }; $scope.handleClose = function () { $scope.setVisible(false); }; $scope.handlePrev = function () { $scope.setCurrent( $scope.state.current > 0 ? $scope.state.current - 1 : 0 ); $scope.state.src = $scope.state.childrens[$scope.state.current].state.src; }; $scope.handleNext = function () { $scope.setCurrent( $scope.state.current < $scope.state.childrens.length - 1 ? $scope.state.current + 1 : $scope.state.childrens.length - 1 ); $scope.state.src = $scope.state.childrens[$scope.state.current].state.src; }; $scope.handlePreview = function () { let className; if ($attrs.class) { className = ` ${$attrs.class}`; } esNgAntd.createLayer( `