'use strict';

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

var _react = require('react');

var _react2 = _interopRequireDefault(_react);

var _partial = require('lodash/partial');

var _partial2 = _interopRequireDefault(_partial);

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

var _Text2 = _interopRequireDefault(_Text);

var _formatMessage = require('../format-message');

var _formatMessage2 = _interopRequireDefault(_formatMessage);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var immutableItemDescription = _react2.default.createElement(
  _Text2.default,
  null,
  _react2.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 = _react2.default.createElement(
  _Text2.default,
  null,
  _react2.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 = _react2.default.createElement(
  _Text2.default,
  null,
  _react2.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 = _react2.default.createElement(
  _Text2.default,
  null,
  _react2.default.createElement(
    'b',
    null,
    'Editing a copy.'
  ),
  '\xA0',
  'Stimulus statistics from this new copy will appear separate from the previous version.'
);

var itemBankEntryEditDescription = _react2.default.createElement(
  _Text2.default,
  null,
  _react2.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 = _react2.default.createElement(
  _Text2.default,
  { 'data-automation': 'sdk-editInBanks-warning' },
  _react2.default.createElement(
    'b',
    null,
    'Banked Stimulus.'
  ),
  '\xA0',
  'Editing of this stimulus must take place within the bank.'
);

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

var archivedBankEntryDescription = _react2.default.createElement(
  _Text2.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] !== undefined ? 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, _partial2.default)(setShouldClone, true),
      defaultActionText: 'Edit a Copy',
      description: immutableDescription,
      disableChildren: true,
      showAlert: true
    });
  }
  return defaultProps;
};

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

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

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

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

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

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

var propsForBankEntryEditPrompt = exports.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
  };
};

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

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

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

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

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