"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.propsForBankEntryUnauthorizedEdit = exports.propsForStimulusBankEntryEditPrompt = exports.propsForItemBankEntryEditPrompt = exports.propsForBankEntryEditPrompt = exports.propsForBankEntryVersioningWrapper = exports.propsForStimulusVersioningWrapper = exports.propsForItemVersioningWrapper = void 0;

var _react = _interopRequireDefault(require("react"));

var _partial = _interopRequireDefault(require("lodash/partial"));

var _Text = _interopRequireDefault(require("@instructure/ui-elements/lib/components/Text"));

var _formatMessage = _interopRequireDefault(require("@instructure/quiz-i18n/lib/format-message"));

var immutableItemDescription = _react.default.createElement(_Text.default, null, _react.default.createElement("b", null, "Some students have already submitted answers for this item!"), "\xA0", "You can apply your edits to a copy of this item which will only be seen by students that have not taken the assessment.");

var itemCopyDescription = _react.default.createElement(_Text.default, null, _react.default.createElement("b", null, "Editing a copy."), "\xA0", "Item statistics from this new copy will appear separate from the previous version of this question.");

var immutableStimulusDescription = _react.default.createElement(_Text.default, null, _react.default.createElement("b", null, "Some students have already submitted answers for this stimulus!"), "\xA0", "You can apply your edits to a copy of this stimulus which will only be seen by students that have not taken the assessment. Attached items will be copied as well.");

var stimulusCopyDescription = _react.default.createElement(_Text.default, null, _react.default.createElement("b", null, "Editing a copy."), "\xA0", "Stimulus statistics from this new copy will appear separate from the previous version.");

var itemBankEntryEditDescription = _react.default.createElement(_Text.default, null, _react.default.createElement("b", null, "Banked Item."), "\xA0", "Some options and the points value can be changed here but editing must take place within the bank.");

var stimulusBankEntryEditDescription = _react.default.createElement(_Text.default, {
  "data-automation": "sdk-editInBanks-warning"
}, _react.default.createElement("b", null, "Banked Stimulus."), "\xA0", "Editing of this stimulus must take place within the bank.");

var bankEntryUnauthorizedEditDescription = _react.default.createElement(_Text.default, null, _react.default.createElement("b", null, "Banked Item."), "\xA0", "You are not authorized to edit this item.");

var archivedBankEntryDescription = _react.default.createElement(_Text.default, null, "This item has been deleted from the item bank. Students will still see it on future attempts. To edit, make a copy of the item.");

var propsForVersioningWrapper = function propsForVersioningWrapper(copyDescription, immutableDescription, isImmutable, shouldClone, setShouldClone, switchOffEditing, isEditing) {
  var alertType = arguments.length > 7 && arguments[7] !== void 0 ? arguments[7] : 'warning';
  var defaultProps = {
    disableChildren: false,
    showAlert: false
  };
  if (!isEditing) return {
    showAlert: false
  };

  if (isImmutable && shouldClone) {
    Object.assign(defaultProps, {
      description: copyDescription,
      hideActions: true,
      showAlert: true
    });
  } else if (isImmutable) {
    Object.assign(defaultProps, {
      alertType: alertType,
      cancelActionCallback: switchOffEditing,
      defaultActionCallback: (0, _partial.default)(setShouldClone, true),
      defaultActionText: "Edit a Copy",
      description: immutableDescription,
      disableChildren: true,
      showAlert: true
    });
  }

  return defaultProps;
};

var propsForItemVersioningWrapper = function propsForItemVersioningWrapper() {
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
    args[_key] = arguments[_key];
  }

  return propsForVersioningWrapper.apply(void 0, [itemCopyDescription, immutableItemDescription].concat(args));
};

exports.propsForItemVersioningWrapper = propsForItemVersioningWrapper;

var propsForStimulusVersioningWrapper = function propsForStimulusVersioningWrapper() {
  for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
    args[_key2] = arguments[_key2];
  }

  return propsForVersioningWrapper.apply(void 0, [stimulusCopyDescription, immutableStimulusDescription].concat(args));
};

exports.propsForStimulusVersioningWrapper = propsForStimulusVersioningWrapper;

var propsForBankEntryVersioningWrapper = function propsForBankEntryVersioningWrapper() {
  for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
    args[_key3] = arguments[_key3];
  }

  return propsForVersioningWrapper.apply(void 0, [itemCopyDescription, archivedBankEntryDescription].concat(args));
};

exports.propsForBankEntryVersioningWrapper = propsForBankEntryVersioningWrapper;

var propsForBankEntryEditPrompt = function propsForBankEntryEditPrompt(isEditing, switchOffEditing, defaultActionCallback, description) {
  if (!isEditing) return {
    showAlert: false
  };
  return {
    cancelActionCallback: switchOffEditing,
    disableChildren: true,
    description: description,
    defaultActionCallback: defaultActionCallback,
    defaultActionText: "Edit in Bank",
    showAlert: true
  };
};

exports.propsForBankEntryEditPrompt = propsForBankEntryEditPrompt;

var propsForItemBankEntryEditPrompt = function propsForItemBankEntryEditPrompt() {
  for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
    args[_key4] = arguments[_key4];
  }

  return propsForBankEntryEditPrompt.apply(void 0, args.concat([itemBankEntryEditDescription]));
};

exports.propsForItemBankEntryEditPrompt = propsForItemBankEntryEditPrompt;

var propsForStimulusBankEntryEditPrompt = function propsForStimulusBankEntryEditPrompt() {
  for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
    args[_key5] = arguments[_key5];
  }

  return propsForBankEntryEditPrompt.apply(void 0, args.concat([stimulusBankEntryEditDescription]));
};

exports.propsForStimulusBankEntryEditPrompt = propsForStimulusBankEntryEditPrompt;

var propsForBankEntryUnauthorizedEdit = function propsForBankEntryUnauthorizedEdit(isEditing) {
  if (!isEditing) return {
    showAlert: false
  };
  return {
    alertType: 'warning',
    disableChildren: true,
    description: bankEntryUnauthorizedEditDescription,
    hideActions: true,
    showAlert: true
  };
};

exports.propsForBankEntryUnauthorizedEdit = propsForBankEntryUnauthorizedEdit;