Liferay.Loader.define("fragment-web@3.0.53/js/FragmentCollectionsViewDefaultEventHandler.es", ['module', 'exports', 'require', 'frontend-js-web', 'frontend-js-metal-web$metal-state'], function (module, exports, require) {
  var define = undefined;
  var global = window;
  {
    Object.defineProperty(exports, "__esModule", {
      value: true
    });
    exports.default = void 0;

    var _frontendJsWeb = require("frontend-js-web");

    var _metalState = require("frontend-js-metal-web$metal-state");

    function _typeof(obj) {
      "@babel/helpers - typeof";
      if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
        _typeof = function _typeof(obj) {
          return typeof obj;
        };
      } else {
        _typeof = function _typeof(obj) {
          return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
        };
      }return _typeof(obj);
    }

    function _classCallCheck(instance, Constructor) {
      if (!(instance instanceof Constructor)) {
        throw new TypeError("Cannot call a class as a function");
      }
    }

    function _defineProperties(target, props) {
      for (var i = 0; i < props.length; i++) {
        var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if ("value" in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);
      }
    }

    function _createClass(Constructor, protoProps, staticProps) {
      if (protoProps) _defineProperties(Constructor.prototype, protoProps);if (staticProps) _defineProperties(Constructor, staticProps);return Constructor;
    }

    function _possibleConstructorReturn(self, call) {
      if (call && (_typeof(call) === "object" || typeof call === "function")) {
        return call;
      }return _assertThisInitialized(self);
    }

    function _assertThisInitialized(self) {
      if (self === void 0) {
        throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
      }return self;
    }

    function _getPrototypeOf(o) {
      _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
        return o.__proto__ || Object.getPrototypeOf(o);
      };return _getPrototypeOf(o);
    }

    function _inherits(subClass, superClass) {
      if (typeof superClass !== "function" && superClass !== null) {
        throw new TypeError("Super expression must either be null or a function");
      }subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });if (superClass) _setPrototypeOf(subClass, superClass);
    }

    function _setPrototypeOf(o, p) {
      _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
        o.__proto__ = p;return o;
      };return _setPrototypeOf(o, p);
    }

    /**
     * @class FragmentCollectionsViewDefaultEventHandler
     */
    var FragmentCollectionsViewDefaultEventHandler = /*#__PURE__*/function (_DefaultEventHandler) {
      _inherits(FragmentCollectionsViewDefaultEventHandler, _DefaultEventHandler);

      function FragmentCollectionsViewDefaultEventHandler() {
        _classCallCheck(this, FragmentCollectionsViewDefaultEventHandler);

        return _possibleConstructorReturn(this, _getPrototypeOf(FragmentCollectionsViewDefaultEventHandler).apply(this, arguments));
      }

      _createClass(FragmentCollectionsViewDefaultEventHandler, [{
        key: "deleteCollections",

        /**
         * Opens an item selector to remove selected collections
         * @private
         * @review
         */
        value: function deleteCollections() {
          var _this = this;

          this._openFragmentCollectionsItemSelector(Liferay.Language.get('delete'), Liferay.Language.get('delete-collection'), this.viewDeleteFragmentCollectionsURL, function (selectedItems) {
            var fragmentCollectionsForm = document.getElementById(_this.ns('fragmentCollectionsFm'));

            if (confirm(Liferay.Language.get('are-you-sure-you-want-to-delete-the-selected-entries'))) {
              selectedItems.forEach(function (item) {
                fragmentCollectionsForm.appendChild(item.cloneNode(true));
              });
            }

            submitForm(fragmentCollectionsForm, _this.deleteFragmentCollectionURL);
          });
        }
        /**
         * Opens an item selector to export selected collections
         * @private
         * @review
         */

      }, {
        key: "exportCollections",
        value: function exportCollections() {
          var _this2 = this;

          var processed = false;

          this._openFragmentCollectionsItemSelector(Liferay.Language.get('export'), Liferay.Language.get('export-collection'), this.viewExportFragmentCollectionsURL, function (selectedItems) {
            var fragmentCollectionsForm = document.getElementById(_this2.ns('fragmentCollectionsFm'));
            selectedItems.forEach(function (item) {
              fragmentCollectionsForm.appendChild(item.cloneNode(true));
            });
            submitForm(fragmentCollectionsForm, _this2.exportFragmentCollectionsURL);
            processed = true;
          }, function () {
            if (processed) {
              Liferay.Util.openToast({
                message: Liferay.Language.get('your-request-processed-successfully'),
                toastProps: {
                  autoClose: 5000
                },
                type: 'success'
              });
            }
          });
        }
        /**
         * Opens an item selector to select some fragment collections.
         * @param {string} dialogButtonLabel
         * @param {string} dialogTitle
         * @param {string} dialogURL
         * @param {function} callback Callback executed when some items have been
         *  selected. They will be sent as parameters to this callback
         * @private
         * @review
         */

      }, {
        key: "_openFragmentCollectionsItemSelector",
        value: function _openFragmentCollectionsItemSelector(dialogButtonLabel, dialogTitle, dialogURL, callback, onClose) {
          (0, _frontendJsWeb.openSelectionModal)({
            buttonAddLabel: dialogButtonLabel,
            multiple: true,
            onClose: onClose,
            onSelect: function onSelect(selectedItem) {
              if (selectedItem) {
                callback(selectedItem);
              }
            },
            selectEventName: this.ns('selectCollections'),
            title: dialogTitle,
            url: dialogURL
          });
        }
        /**
         * Opens an iframe dialog with an fragment collection import form
         * @private
         * @review
         */

      }, {
        key: "openImportView",
        value: function openImportView() {
          (0, _frontendJsWeb.openModal)({
            buttons: [{
              displayType: 'secondary',
              label: Liferay.Language.get('cancel'),
              type: 'cancel'
            }, {
              label: Liferay.Language.get('import'),
              type: 'submit'
            }],
            id: this.ns('openImportView'),
            onClose: function onClose() {
              window.location.reload();
            },
            title: Liferay.Language.get('import'),
            url: this.viewImportURL
          });
        }
      }]);

      return FragmentCollectionsViewDefaultEventHandler;
    }(_frontendJsWeb.DefaultEventHandler);

    FragmentCollectionsViewDefaultEventHandler.STATE = {
      /**
       * @default undefined
       * @instance
       * @memberof FragmentCollectionsViewDefaultEventHandler
       * @review
       * @type {string}
       */
      deleteFragmentCollectionURL: _metalState.Config.string().required(),

      /**
       * @default undefined
       * @instance
       * @memberof FragmentCollectionsViewDefaultEventHandler
       * @review
       * @type {string}
       */
      exportFragmentCollectionsURL: _metalState.Config.string().required(),

      /**
       * @default undefined
       * @instance
       * @memberof FragmentCollectionsViewDefaultEventHandler
       * @review
       * @type {string}
       */
      viewDeleteFragmentCollectionsURL: _metalState.Config.string().required(),

      /**
       * @default undefined
       * @instance
       * @memberof FragmentCollectionsViewDefaultEventHandler
       * @review
       * @type {string}
       */
      viewExportFragmentCollectionsURL: _metalState.Config.string().required(),

      /**
       * @default undefined
       * @instance
       * @memberof FragmentCollectionsViewDefaultEventHandler
       * @review
       * @type {string}
       */
      viewImportURL: _metalState.Config.string().required()
    };
    var _default = FragmentCollectionsViewDefaultEventHandler;
    exports.default = _default;
    //# sourceMappingURL=FragmentCollectionsViewDefaultEventHandler.es.js.map
  }
});
//# sourceMappingURL=FragmentCollectionsViewDefaultEventHandler.es.js.map