single-scripture-rcl 3.2.5 → 3.3.0-beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,29 @@
1
1
  import "core-js/modules/es.array.concat.js";
2
+ import "core-js/modules/es.array.is-array.js";
3
+ import "core-js/modules/es.parse-float.js";
4
+
5
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
6
+
7
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
8
+
9
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
10
+
11
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
12
+
13
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
14
+
15
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
16
+
17
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
18
+
19
+ function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
20
+
21
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
22
+
2
23
  import * as React from 'react';
24
+ import useDeepCompareEffect from 'use-deep-compare-effect';
3
25
  import { VerseObjects } from 'scripture-resources-rcl';
26
+ import { UsfmFileConversionHelpers } from 'word-aligner-rcl';
4
27
  import { ScriptureReference, VerseObjectsType } from '../../types';
5
28
  import { getResourceMessage } from '../../utils';
6
29
  import { Container, Content } from './styled';
@@ -17,6 +40,12 @@ var MessageStyle = {
17
40
  fontFamily: 'Noto Sans',
18
41
  fontWeight: 'bold'
19
42
  };
43
+ var TextAreaStyle = {
44
+ height: '60%',
45
+ width: '100%',
46
+ minWidth: '220px',
47
+ fontSize: '16px'
48
+ };
20
49
 
21
50
  function ScripturePane(_ref) {
22
51
  var reference = _ref.reference,
@@ -31,7 +60,16 @@ function ScripturePane(_ref) {
31
60
  isNT = _ref.isNT,
32
61
  fontSize = _ref.fontSize,
33
62
  getLexiconData = _ref.getLexiconData,
34
- translate = _ref.translate;
63
+ translate = _ref.translate,
64
+ editing = _ref.editing,
65
+ setEditing = _ref.setEditing,
66
+ setVerseChanged = _ref.setVerseChanged;
67
+
68
+ var _React$useState = React.useState(null),
69
+ _React$useState2 = _slicedToArray(_React$useState, 2),
70
+ initialVerseText = _React$useState2[0],
71
+ setInitialVerseText = _React$useState2[1];
72
+
35
73
  var resourceMsg = getResourceMessage(resourceStatus, server, resourceLink, isNT);
36
74
  var chapter = reference.chapter,
37
75
  verse = reference.verse;
@@ -43,7 +81,37 @@ function ScripturePane(_ref) {
43
81
  contentStyle = contentStyle || {
44
82
  fontFamily: 'Noto Sans',
45
83
  fontSize: '100%'
46
- };
84
+ }; // dynamically adjust font size
85
+
86
+ var calculatedFontSize = React.useMemo(function () {
87
+ return parseFloat(TextAreaStyle.fontSize) * fontSize / 100 + 'px';
88
+ }, [fontSize]);
89
+
90
+ var textAreaStyle = _objectSpread(_objectSpread(_objectSpread({}, contentStyle), TextAreaStyle), {}, {
91
+ fontSize: calculatedFontSize
92
+ });
93
+
94
+ useDeepCompareEffect(function () {
95
+ var verseText = UsfmFileConversionHelpers.getUsfmForVerseContent({
96
+ verseObjects: verseObjects
97
+ });
98
+ setInitialVerseText(verseText);
99
+ }, [{
100
+ verseObjects: verseObjects
101
+ }]);
102
+
103
+ function onTextChange(event) {
104
+ var _event$target;
105
+
106
+ var newText = event === null || event === void 0 ? void 0 : (_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.value;
107
+ var changed = newText !== initialVerseText;
108
+ setVerseChanged(changed, newText, initialVerseText);
109
+ }
110
+
111
+ function onBlur(event) {
112
+ setEditing(false);
113
+ }
114
+
47
115
  return /*#__PURE__*/React.createElement(Container, {
48
116
  style: {
49
117
  direction: direction,
@@ -62,8 +130,17 @@ function ScripturePane(_ref) {
62
130
  }, " ", resourceMsg, " ")) : /*#__PURE__*/React.createElement(Content, null, /*#__PURE__*/React.createElement("span", {
63
131
  style: refStyle
64
132
  }, " ", chapter, ":", verse, "\xA0"), /*#__PURE__*/React.createElement("span", {
65
- style: contentStyle
66
- }, /*#__PURE__*/React.createElement(VerseObjects, {
133
+ style: contentStyle,
134
+ onClick: function onClick() {
135
+ setEditing && setEditing(true);
136
+ }
137
+ }, editing ? /*#__PURE__*/React.createElement("textarea", {
138
+ defaultValue: initialVerseText,
139
+ onChange: onTextChange,
140
+ onBlur: onBlur,
141
+ style: textAreaStyle,
142
+ autoFocus: true
143
+ }) : /*#__PURE__*/React.createElement(VerseObjects, {
67
144
  verseKey: "".concat(reference.chapter, ":").concat(reference.verse),
68
145
  verseObjects: verseObjects || [],
69
146
  disableWordPopover: disableWordPopover,
@@ -76,4 +153,4 @@ ScripturePane.defaultProps = {
76
153
  verseObjects: []
77
154
  };
78
155
  export default ScripturePane;
79
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1NjcmlwdHVyZVBhbmUvU2NyaXB0dXJlUGFuZS50c3giXSwibmFtZXMiOlsiUmVhY3QiLCJWZXJzZU9iamVjdHMiLCJTY3JpcHR1cmVSZWZlcmVuY2UiLCJWZXJzZU9iamVjdHNUeXBlIiwiZ2V0UmVzb3VyY2VNZXNzYWdlIiwiQ29udGFpbmVyIiwiQ29udGVudCIsIk1lc3NhZ2VTdHlsZSIsImRpcmVjdGlvbiIsIndoaXRlU3BhY2UiLCJsaW5lSGVpZ2h0IiwiZGlzcGxheSIsImp1c3RpZnlDb250ZW50IiwiYWxpZ25JdGVtcyIsImhlaWdodCIsIndpZHRoIiwiZm9udFNpemUiLCJmb250RmFtaWx5IiwiZm9udFdlaWdodCIsIlNjcmlwdHVyZVBhbmUiLCJyZWZlcmVuY2UiLCJyZWZTdHlsZSIsImNvbnRlbnRTdHlsZSIsInZlcnNlT2JqZWN0cyIsImRpc2FibGVXb3JkUG9wb3ZlciIsInJlc291cmNlU3RhdHVzIiwicmVzb3VyY2VMaW5rIiwic2VydmVyIiwiaXNOVCIsImdldExleGljb25EYXRhIiwidHJhbnNsYXRlIiwicmVzb3VyY2VNc2ciLCJjaGFwdGVyIiwidmVyc2UiLCJkZWZhdWx0UHJvcHMiXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEtBQUtBLEtBQVosTUFBdUIsT0FBdkI7QUFDQSxTQUFTQyxZQUFULFFBQTZCLHlCQUE3QjtBQUNBLFNBQVNDLGtCQUFULEVBQTZCQyxnQkFBN0IsUUFBcUQsYUFBckQ7QUFDQSxTQUFTQyxrQkFBVCxRQUFtQyxhQUFuQztBQUNBLFNBQVNDLFNBQVQsRUFBb0JDLE9BQXBCLFFBQW1DLFVBQW5DO0FBK0JBLElBQU1DLFlBQVksR0FBRztBQUNuQkMsRUFBQUEsU0FBUyxFQUFFLEtBRFE7QUFFbkJDLEVBQUFBLFVBQVUsRUFBRSxVQUZPO0FBR25CQyxFQUFBQSxVQUFVLEVBQUUsUUFITztBQUluQkMsRUFBQUEsT0FBTyxFQUFFLE1BSlU7QUFLbkJDLEVBQUFBLGNBQWMsRUFBRSxRQUxHO0FBTW5CQyxFQUFBQSxVQUFVLEVBQUUsUUFOTztBQU9uQkMsRUFBQUEsTUFBTSxFQUFFLE1BUFc7QUFRbkJDLEVBQUFBLEtBQUssRUFBRSxNQVJZO0FBU25CQyxFQUFBQSxRQUFRLEVBQUUsTUFUUztBQVVuQkMsRUFBQUEsVUFBVSxFQUFFLFdBVk87QUFXbkJDLEVBQUFBLFVBQVUsRUFBRTtBQVhPLENBQXJCOztBQWVBLFNBQVNDLGFBQVQsT0FjVztBQUFBLE1BYlRDLFNBYVMsUUFiVEEsU0FhUztBQUFBLE1BWlRDLFFBWVMsUUFaVEEsUUFZUztBQUFBLE1BWFRiLFNBV1MsUUFYVEEsU0FXUztBQUFBLE1BVlRjLFlBVVMsUUFWVEEsWUFVUztBQUFBLE1BVFRDLFlBU1MsUUFUVEEsWUFTUztBQUFBLE1BUlRDLGtCQVFTLFFBUlRBLGtCQVFTO0FBQUEsTUFQVEMsY0FPUyxRQVBUQSxjQU9TO0FBQUEsTUFOVEMsWUFNUyxRQU5UQSxZQU1TO0FBQUEsTUFMVEMsTUFLUyxRQUxUQSxNQUtTO0FBQUEsTUFKVEMsSUFJUyxRQUpUQSxJQUlTO0FBQUEsTUFIVFosUUFHUyxRQUhUQSxRQUdTO0FBQUEsTUFGVGEsY0FFUyxRQUZUQSxjQUVTO0FBQUEsTUFEVEMsU0FDUyxRQURUQSxTQUNTO0FBQ1QsTUFBTUMsV0FBVyxHQUFHM0Isa0JBQWtCLENBQUNxQixjQUFELEVBQWlCRSxNQUFqQixFQUF5QkQsWUFBekIsRUFBdUNFLElBQXZDLENBQXRDO0FBRFMsTUFFREksT0FGQyxHQUVrQlosU0FGbEIsQ0FFRFksT0FGQztBQUFBLE1BRVFDLEtBRlIsR0FFa0JiLFNBRmxCLENBRVFhLEtBRlI7QUFHVHpCLEVBQUFBLFNBQVMsR0FBR0EsU0FBUyxJQUFJLEtBQXpCO0FBRUFhLEVBQUFBLFFBQVEsR0FBR0EsUUFBUSxJQUFJO0FBQ3JCSixJQUFBQSxVQUFVLEVBQUUsV0FEUztBQUVyQkQsSUFBQUEsUUFBUSxFQUFFO0FBRlcsR0FBdkI7QUFLQU0sRUFBQUEsWUFBWSxHQUFHQSxZQUFZLElBQUk7QUFDN0JMLElBQUFBLFVBQVUsRUFBRSxXQURpQjtBQUU3QkQsSUFBQUEsUUFBUSxFQUFFO0FBRm1CLEdBQS9CO0FBS0Esc0JBQ0Usb0JBQUMsU0FBRDtBQUFXLElBQUEsS0FBSyxFQUFFO0FBQUVSLE1BQUFBLFNBQVMsRUFBVEEsU0FBRjtBQUFhTyxNQUFBQSxLQUFLLEVBQUUsTUFBcEI7QUFBNEJELE1BQUFBLE1BQU0sRUFBRTtBQUFwQztBQUFsQixLQUNHaUIsV0FBVztBQUFBO0FBQ1Y7QUFDQTtBQUFLLElBQUEsS0FBSyxFQUFFeEI7QUFBWixrQkFDRTtBQUFLLElBQUEsS0FBSyxFQUFFO0FBQUVTLE1BQUFBLFFBQVEsWUFBS0EsUUFBTDtBQUFWO0FBQVosVUFBNENlLFdBQTVDLE1BREYsQ0FGVSxnQkFNVixvQkFBQyxPQUFELHFCQUNFO0FBQU0sSUFBQSxLQUFLLEVBQUVWO0FBQWIsVUFBeUJXLE9BQXpCLE9BQW1DQyxLQUFuQyxTQURGLGVBRUU7QUFBTSxJQUFBLEtBQUssRUFBRVg7QUFBYixrQkFDRSxvQkFBQyxZQUFEO0FBQ0UsSUFBQSxRQUFRLFlBQUtGLFNBQVMsQ0FBQ1ksT0FBZixjQUEwQlosU0FBUyxDQUFDYSxLQUFwQyxDQURWO0FBRUUsSUFBQSxZQUFZLEVBQUVWLFlBQVksSUFBSSxFQUZoQztBQUdFLElBQUEsa0JBQWtCLEVBQUVDLGtCQUh0QjtBQUlFLElBQUEsY0FBYyxFQUFFSyxjQUpsQjtBQUtFLElBQUEsU0FBUyxFQUFFQztBQUxiLElBREYsQ0FGRixDQVBKLENBREY7QUF1QkQ7O0FBRURYLGFBQWEsQ0FBQ2UsWUFBZCxHQUE2QjtBQUFFWCxFQUFBQSxZQUFZLEVBQUU7QUFBaEIsQ0FBN0I7QUFFQSxlQUFlSixhQUFmIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBWZXJzZU9iamVjdHMgfSBmcm9tICdzY3JpcHR1cmUtcmVzb3VyY2VzLXJjbCdcbmltcG9ydCB7IFNjcmlwdHVyZVJlZmVyZW5jZSwgVmVyc2VPYmplY3RzVHlwZSB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHsgZ2V0UmVzb3VyY2VNZXNzYWdlIH0gZnJvbSAnLi4vLi4vdXRpbHMnXG5pbXBvcnQgeyBDb250YWluZXIsIENvbnRlbnQgfSBmcm9tICcuL3N0eWxlZCdcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgLyoqIGN1cnJlbnQgcmVmZXJlbmNlICoqL1xuICByZWZlcmVuY2U6IFNjcmlwdHVyZVJlZmVyZW5jZTtcbiAgLyoqIG9wdGlvbmFsIHN0eWxlcyB0byB1c2UgZm9yIHJlZmVyZW5jZSAqKi9cbiAgcmVmU3R5bGU6IGFueTtcbiAgLyoqIG9wdGlvbmFsIHN0eWxlcyB0byB1c2UgZm9yIGNvbnRlbnQgKiovXG4gIGNvbnRlbnRTdHlsZTogYW55O1xuICAvKiogbGFuZ3VhZ2UgZGlyZWN0aW9uIHRvIHVzZSAqKi9cbiAgZGlyZWN0aW9uOiBzdHJpbmd8dW5kZWZpbmVkO1xuICAvKiogdmVyc2VPYmplY3RzICoqL1xuICB2ZXJzZU9iamVjdHM6IFZlcnNlT2JqZWN0c1R5cGV8dW5kZWZpbmVkO1xuICAvKiogaWYgdHJ1ZSB0aGVuIGRvIG5vdCBkaXNwbGF5IGxleGljb24gcG9wb3ZlciBvbiBob3ZlciAqKi9cbiAgZGlzYWJsZVdvcmRQb3BvdmVyOiBib29sZWFufHVuZGVmaW5lZDtcbiAgLyoqIG9iamVjdCB0aGF0IGNvbnRhaW5zIHJlc291cmNlIGxvYWRpbmcgc3RhdHVzIG9yIGZldGNoaW5nIGVycm9ycyAqL1xuICByZXNvdXJjZVN0YXR1czogb2JqZWN0fHVuZGVmaW5lZDtcbiAgLyoqIHJlc291cmNlIHRoYXQgd2FzIGxvYWRlZCAqL1xuICByZXNvdXJjZUxpbms6IHN0cmluZ3x1bmRlZmluZWQ7XG4gIC8qKiBzZXJ2ZXIgKi9cbiAgc2VydmVyOiBzdHJpbmd8dW5kZWZpbmVkO1xuICAvKiogdHJ1ZSBpZiBicm93c2luZyBOVCAqL1xuICBpc05UOiBib29sZWFuO1xuICAvKiogZm9udCBzaXplIGZvciBtZXNzYWdlcyAqL1xuICBmb250U2l6ZTogbnVtYmVyO1xuICAvKiogZnVuY3Rpb24gdG8gZ2V0IGxhdGVzdCBsZXhpY29uIGRhdGEgKi9cbiAgZ2V0TGV4aWNvbkRhdGE6IEZ1bmN0aW9uO1xuICAvKiogb3B0aW9uYWwgZnVuY3Rpb24gZm9yIGxvY2FsaXphdGlvbiAqL1xuICB0cmFuc2xhdGU6IEZ1bmN0aW9uO1xufVxuXG5jb25zdCBNZXNzYWdlU3R5bGUgPSB7XG4gIGRpcmVjdGlvbjogJ2x0cicsXG4gIHdoaXRlU3BhY2U6ICdwcmUtd3JhcCcsXG4gIGxpbmVIZWlnaHQ6ICdub3JtYWwnLFxuICBkaXNwbGF5OiAnZmxleCcsXG4gIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gIGhlaWdodDogJzEwMCUnLFxuICB3aWR0aDogJzEwMCUnLFxuICBmb250U2l6ZTogJzE2cHgnLFxuICBmb250RmFtaWx5OiAnTm90byBTYW5zJyxcbiAgZm9udFdlaWdodDogJ2JvbGQnLFxufVxuXG5cbmZ1bmN0aW9uIFNjcmlwdHVyZVBhbmUoe1xuICByZWZlcmVuY2UsXG4gIHJlZlN0eWxlLFxuICBkaXJlY3Rpb24sXG4gIGNvbnRlbnRTdHlsZSxcbiAgdmVyc2VPYmplY3RzLFxuICBkaXNhYmxlV29yZFBvcG92ZXIsXG4gIHJlc291cmNlU3RhdHVzLFxuICByZXNvdXJjZUxpbmssXG4gIHNlcnZlcixcbiAgaXNOVCxcbiAgZm9udFNpemUsXG4gIGdldExleGljb25EYXRhLFxuICB0cmFuc2xhdGUsXG59IDogUHJvcHMpIHtcbiAgY29uc3QgcmVzb3VyY2VNc2cgPSBnZXRSZXNvdXJjZU1lc3NhZ2UocmVzb3VyY2VTdGF0dXMsIHNlcnZlciwgcmVzb3VyY2VMaW5rLCBpc05UKVxuICBjb25zdCB7IGNoYXB0ZXIsIHZlcnNlIH0gPSByZWZlcmVuY2VcbiAgZGlyZWN0aW9uID0gZGlyZWN0aW9uIHx8ICdsdHInXG5cbiAgcmVmU3R5bGUgPSByZWZTdHlsZSB8fCB7XG4gICAgZm9udEZhbWlseTogJ05vdG8gU2FucycsXG4gICAgZm9udFNpemU6ICc5MCUnLFxuICB9XG5cbiAgY29udGVudFN0eWxlID0gY29udGVudFN0eWxlIHx8IHtcbiAgICBmb250RmFtaWx5OiAnTm90byBTYW5zJyxcbiAgICBmb250U2l6ZTogJzEwMCUnLFxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8Q29udGFpbmVyIHN0eWxlPXt7IGRpcmVjdGlvbiwgd2lkdGg6ICcxMDAlJywgaGVpZ2h0OiAnMTAwJScgfX0+XG4gICAgICB7cmVzb3VyY2VNc2cgP1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIDxkaXYgc3R5bGU9e01lc3NhZ2VTdHlsZX0+XG4gICAgICAgICAgPGRpdiBzdHlsZT17eyBmb250U2l6ZTogYCR7Zm9udFNpemV9JWAgfX0+IHtyZXNvdXJjZU1zZ30gPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA6XG4gICAgICAgIDxDb250ZW50PlxuICAgICAgICAgIDxzcGFuIHN0eWxlPXtyZWZTdHlsZX0+IHtjaGFwdGVyfTp7dmVyc2V9Jm5ic3A7PC9zcGFuPlxuICAgICAgICAgIDxzcGFuIHN0eWxlPXtjb250ZW50U3R5bGV9PlxuICAgICAgICAgICAgPFZlcnNlT2JqZWN0c1xuICAgICAgICAgICAgICB2ZXJzZUtleT17YCR7cmVmZXJlbmNlLmNoYXB0ZXJ9OiR7cmVmZXJlbmNlLnZlcnNlfWB9XG4gICAgICAgICAgICAgIHZlcnNlT2JqZWN0cz17dmVyc2VPYmplY3RzIHx8IFtdfVxuICAgICAgICAgICAgICBkaXNhYmxlV29yZFBvcG92ZXI9e2Rpc2FibGVXb3JkUG9wb3Zlcn1cbiAgICAgICAgICAgICAgZ2V0TGV4aWNvbkRhdGE9e2dldExleGljb25EYXRhfVxuICAgICAgICAgICAgICB0cmFuc2xhdGU9e3RyYW5zbGF0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L0NvbnRlbnQ+XG4gICAgICB9XG4gICAgPC9Db250YWluZXI+XG4gIClcbn1cblxuU2NyaXB0dXJlUGFuZS5kZWZhdWx0UHJvcHMgPSB7IHZlcnNlT2JqZWN0czogW10gfVxuXG5leHBvcnQgZGVmYXVsdCBTY3JpcHR1cmVQYW5lXG4iXX0=
156
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1NjcmlwdHVyZVBhbmUvU2NyaXB0dXJlUGFuZS50c3giXSwibmFtZXMiOlsiUmVhY3QiLCJ1c2VEZWVwQ29tcGFyZUVmZmVjdCIsIlZlcnNlT2JqZWN0cyIsIlVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMiLCJTY3JpcHR1cmVSZWZlcmVuY2UiLCJWZXJzZU9iamVjdHNUeXBlIiwiZ2V0UmVzb3VyY2VNZXNzYWdlIiwiQ29udGFpbmVyIiwiQ29udGVudCIsIk1lc3NhZ2VTdHlsZSIsImRpcmVjdGlvbiIsIndoaXRlU3BhY2UiLCJsaW5lSGVpZ2h0IiwiZGlzcGxheSIsImp1c3RpZnlDb250ZW50IiwiYWxpZ25JdGVtcyIsImhlaWdodCIsIndpZHRoIiwiZm9udFNpemUiLCJmb250RmFtaWx5IiwiZm9udFdlaWdodCIsIlRleHRBcmVhU3R5bGUiLCJtaW5XaWR0aCIsIlNjcmlwdHVyZVBhbmUiLCJyZWZlcmVuY2UiLCJyZWZTdHlsZSIsImNvbnRlbnRTdHlsZSIsInZlcnNlT2JqZWN0cyIsImRpc2FibGVXb3JkUG9wb3ZlciIsInJlc291cmNlU3RhdHVzIiwicmVzb3VyY2VMaW5rIiwic2VydmVyIiwiaXNOVCIsImdldExleGljb25EYXRhIiwidHJhbnNsYXRlIiwiZWRpdGluZyIsInNldEVkaXRpbmciLCJzZXRWZXJzZUNoYW5nZWQiLCJ1c2VTdGF0ZSIsImluaXRpYWxWZXJzZVRleHQiLCJzZXRJbml0aWFsVmVyc2VUZXh0IiwicmVzb3VyY2VNc2ciLCJjaGFwdGVyIiwidmVyc2UiLCJjYWxjdWxhdGVkRm9udFNpemUiLCJ1c2VNZW1vIiwicGFyc2VGbG9hdCIsInRleHRBcmVhU3R5bGUiLCJ2ZXJzZVRleHQiLCJnZXRVc2ZtRm9yVmVyc2VDb250ZW50Iiwib25UZXh0Q2hhbmdlIiwiZXZlbnQiLCJuZXdUZXh0IiwidGFyZ2V0IiwidmFsdWUiLCJjaGFuZ2VkIiwib25CbHVyIiwiZGVmYXVsdFByb3BzIl0sIm1h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QUFFUyxNQUFBQSxRQUFRLFlBQUtBLFFBQUw7QUFBVjtBQUFaLFVBQTRDdUIsV0FBNUMsTUFERixDQUZVLGdCQU1WLG9CQUFDLE9BQUQscUJBQ0U7QUFBTSxJQUFBLEtBQUssRUFBRWhCO0FBQWIsVUFBeUJpQixPQUF6QixPQUFtQ0MsS0FBbkMsU0FERixlQUVFO0FBQU0sSUFBQSxLQUFLLEVBQUVqQixZQUFiO0FBQTJCLElBQUEsT0FBTyxFQUFFLG1CQUFNO0FBQ3hDVSxNQUFBQSxVQUFVLElBQUlBLFVBQVUsQ0FBQyxJQUFELENBQXhCO0FBQ0Q7QUFGRCxLQUlHRCxPQUFPLGdCQUNOO0FBQ0UsSUFBQSxZQUFZLEVBQUVJLGdCQURoQjtBQUVFLElBQUEsUUFBUSxFQUFFVyxZQUZaO0FBR0UsSUFBQSxNQUFNLEVBQUVNLE1BSFY7QUFJRSxJQUFBLEtBQUssRUFBRVQsYUFKVDtBQUtFLElBQUEsU0FBUztBQUxYLElBRE0sZ0JBU04sb0JBQUMsWUFBRDtBQUNFLElBQUEsUUFBUSxZQUFLdkIsU0FBUyxDQUFDa0IsT0FBZixjQUEwQmxCLFNBQVMsQ0FBQ21CLEtBQXBDLENBRFY7QUFFRSxJQUFBLFlBQVksRUFBRWhCLFlBQVksSUFBSSxFQUZoQztBQUdFLElBQUEsa0JBQWtCLEVBQUVDLGtCQUh0QjtBQUlFLElBQUEsY0FBYyxFQUFFSyxjQUpsQjtBQUtFLElBQUEsU0FBUyxFQUFFQztBQUxiLElBYkosQ0FGRixDQVBKLENBREY7QUFvQ0Q7O0FBRURYLGFBQWEsQ0FBQ2tDLFlBQWQsR0FBNkI7QUFBRTlCLEVBQUFBLFlBQVksRUFBRTtBQUFoQixDQUE3QjtBQUVBLGVBQWVKLGFBQWYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB1c2VEZWVwQ29tcGFyZUVmZmVjdCBmcm9tICd1c2UtZGVlcC1jb21wYXJlLWVmZmVjdCdcbmltcG9ydCB7IFZlcnNlT2JqZWN0cyB9IGZyb20gJ3NjcmlwdHVyZS1yZXNvdXJjZXMtcmNsJ1xuaW1wb3J0IHsgVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycyB9IGZyb20gJ3dvcmQtYWxpZ25lci1yY2wnXG5pbXBvcnQgeyBTY3JpcHR1cmVSZWZlcmVuY2UsIFZlcnNlT2JqZWN0c1R5cGUgfSBmcm9tICcuLi8uLi90eXBlcydcbmltcG9ydCB7IGdldFJlc291cmNlTWVzc2FnZSB9IGZyb20gJy4uLy4uL3V0aWxzJ1xuaW1wb3J0IHsgQ29udGFpbmVyLCBDb250ZW50IH0gZnJvbSAnLi9zdHlsZWQnXG5cbmludGVyZmFjZSBQcm9wcyB7XG4gIC8qKiBjdXJyZW50IHJlZmVyZW5jZSAqKi9cbiAgcmVmZXJlbmNlOiBTY3JpcHR1cmVSZWZlcmVuY2U7XG4gIC8qKiBvcHRpb25hbCBzdHlsZXMgdG8gdXNlIGZvciByZWZlcmVuY2UgKiovXG4gIHJlZlN0eWxlOiBhbnk7XG4gIC8qKiBvcHRpb25hbCBzdHlsZXMgdG8gdXNlIGZvciBjb250ZW50ICoqL1xuICBjb250ZW50U3R5bGU6IGFueTtcbiAgLyoqIGxhbmd1YWdlIGRpcmVjdGlvbiB0byB1c2UgKiovXG4gIGRpcmVjdGlvbjogc3RyaW5nfHVuZGVmaW5lZDtcbiAgLyoqIHZlcnNlT2JqZWN0cyAqKi9cbiAgdmVyc2VPYmplY3RzOiBWZXJzZU9iamVjdHNUeXBlfHVuZGVmaW5lZDtcbiAgLyoqIGlmIHRydWUgdGhlbiBkbyBub3QgZGlzcGxheSBsZXhpY29uIHBvcG92ZXIgb24gaG92ZXIgKiovXG4gIGRpc2FibGVXb3JkUG9wb3ZlcjogYm9vbGVhbnx1bmRlZmluZWQ7XG4gIC8qKiBvYmplY3QgdGhhdCBjb250YWlucyByZXNvdXJjZSBsb2FkaW5nIHN0YXR1cyBvciBmZXRjaGluZyBlcnJvcnMgKi9cbiAgcmVzb3VyY2VTdGF0dXM6IG9iamVjdHx1bmRlZmluZWQ7XG4gIC8qKiByZXNvdXJjZSB0aGF0IHdhcyBsb2FkZWQgKi9cbiAgcmVzb3VyY2VMaW5rOiBzdHJpbmd8dW5kZWZpbmVkO1xuICAvKiogc2VydmVyICovXG4gIHNlcnZlcjogc3RyaW5nfHVuZGVmaW5lZDtcbiAgLyoqIHRydWUgaWYgYnJvd3NpbmcgTlQgKi9cbiAgaXNOVDogYm9vbGVhbjtcbiAgLyoqIGZvbnQgc2l6ZSBmb3IgbWVzc2FnZXMgKi9cbiAgZm9udFNpemU6IG51bWJlcjtcbiAgLyoqIGZ1bmN0aW9uIHRvIGdldCBsYXRlc3QgbGV4aWNvbiBkYXRhICovXG4gIGdldExleGljb25EYXRhOiBGdW5jdGlvbjtcbiAgLyoqIG9wdGlvbmFsIGZ1bmN0aW9uIGZvciBsb2NhbGl6YXRpb24gKi9cbiAgdHJhbnNsYXRlOiBGdW5jdGlvbjtcbiAgLyoqIHRydWUgaWYgaW4gZWRpdCBtb2RlICovXG4gIGVkaXRpbmc6IGJvb2xlYW47XG4gIC8qKiBjYWxsYmFjayB0byBzZXQgZWRpdCBtb2RlICovXG4gIHNldEVkaXRpbmc6IEZ1bmN0aW9uO1xuICAvKiogY2FsbGJhY2sgdG8gc2V0IHRoYXQgdmVyc2UgaGFzIGNoYW5nZWQgKi9cbiAgc2V0VmVyc2VDaGFuZ2VkOiBGdW5jdGlvbjtcbn1cblxuY29uc3QgTWVzc2FnZVN0eWxlID0ge1xuICBkaXJlY3Rpb246ICdsdHInLFxuICB3aGl0ZVNwYWNlOiAncHJlLXdyYXAnLFxuICBsaW5lSGVpZ2h0OiAnbm9ybWFsJyxcbiAgZGlzcGxheTogJ2ZsZXgnLFxuICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICBoZWlnaHQ6ICcxMDAlJyxcbiAgd2lkdGg6ICcxMDAlJyxcbiAgZm9udFNpemU6ICcxNnB4JyxcbiAgZm9udEZhbWlseTogJ05vdG8gU2FucycsXG4gIGZvbnRXZWlnaHQ6ICdib2xkJyxcbn1cblxuY29uc3QgVGV4dEFyZWFTdHlsZSA9IHtcbiAgaGVpZ2h0OiAnNjAlJyxcbiAgd2lkdGg6ICcxMDAlJyxcbiAgbWluV2lkdGg6ICcyMjBweCcsXG4gIGZvbnRTaXplOiAnMTZweCcsXG59XG5cbmZ1bmN0aW9uIFNjcmlwdHVyZVBhbmUoe1xuICByZWZlcmVuY2UsXG4gIHJlZlN0eWxlLFxuICBkaXJlY3Rpb24sXG4gIGNvbnRlbnRTdHlsZSxcbiAgdmVyc2VPYmplY3RzLFxuICBkaXNhYmxlV29yZFBvcG92ZXIsXG4gIHJlc291cmNlU3RhdHVzLFxuICByZXNvdXJjZUxpbmssXG4gIHNlcnZlcixcbiAgaXNOVCxcbiAgZm9udFNpemUsXG4gIGdldExleGljb25EYXRhLFxuICB0cmFuc2xhdGUsXG4gIGVkaXRpbmcsXG4gIHNldEVkaXRpbmcsXG4gIHNldFZlcnNlQ2hhbmdlZCxcbn0gOiBQcm9wcykge1xuICBjb25zdCBbaW5pdGlhbFZlcnNlVGV4dCwgc2V0SW5pdGlhbFZlcnNlVGV4dF0gPSBSZWFjdC51c2VTdGF0ZShudWxsKVxuICBjb25zdCByZXNvdXJjZU1zZyA9IGdldFJlc291cmNlTWVzc2FnZShyZXNvdXJjZVN0YXR1cywgc2VydmVyLCByZXNvdXJjZUxpbmssIGlzTlQpXG4gIGNvbnN0IHsgY2hhcHRlciwgdmVyc2UgfSA9IHJlZmVyZW5jZVxuICBkaXJlY3Rpb24gPSBkaXJlY3Rpb24gfHwgJ2x0cidcblxuICByZWZTdHlsZSA9IHJlZlN0eWxlIHx8IHtcbiAgICBmb250RmFtaWx5OiAnTm90byBTYW5zJyxcbiAgICBmb250U2l6ZTogJzkwJScsXG4gIH1cblxuICBjb250ZW50U3R5bGUgPSBjb250ZW50U3R5bGUgfHwge1xuICAgIGZvbnRGYW1pbHk6ICdOb3RvIFNhbnMnLFxuICAgIGZvbnRTaXplOiAnMTAwJScsXG4gIH1cblxuICAvLyBkeW5hbWljYWxseSBhZGp1c3QgZm9udCBzaXplXG4gIGNvbnN0IGNhbGN1bGF0ZWRGb250U2l6ZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gKFxuICAgIHBhcnNlRmxvYXQoVGV4dEFyZWFTdHlsZS5mb250U2l6ZSkgKiBmb250U2l6ZSAvIDEwMCArICdweCdcbiAgKSwgW2ZvbnRTaXplXSlcblxuICBjb25zdCB0ZXh0QXJlYVN0eWxlID0ge1xuICAgIC4uLmNvbnRlbnRTdHlsZSxcbiAgICAuLi5UZXh0QXJlYVN0eWxlLFxuICAgIGZvbnRTaXplOiBjYWxjdWxhdGVkRm9udFNpemUsXG4gIH1cblxuICB1c2VEZWVwQ29tcGFyZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgdmVyc2VUZXh0ID0gVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycy5nZXRVc2ZtRm9yVmVyc2VDb250ZW50KHsgdmVyc2VPYmplY3RzIH0pXG4gICAgc2V0SW5pdGlhbFZlcnNlVGV4dCh2ZXJzZVRleHQpXG4gIH0sIFt7IHZlcnNlT2JqZWN0cyB9XSlcblxuICBmdW5jdGlvbiBvblRleHRDaGFuZ2UoZXZlbnQ6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxUZXh0QXJlYUVsZW1lbnQ+KSB7XG4gICAgY29uc3QgbmV3VGV4dCA9IGV2ZW50Py50YXJnZXQ/LnZhbHVlXG4gICAgY29uc3QgY2hhbmdlZCA9IG5ld1RleHQgIT09IGluaXRpYWxWZXJzZVRleHRcbiAgICBzZXRWZXJzZUNoYW5nZWQoY2hhbmdlZCwgbmV3VGV4dCwgaW5pdGlhbFZlcnNlVGV4dClcbiAgfVxuXG4gIGZ1bmN0aW9uIG9uQmx1cihldmVudDogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTFRleHRBcmVhRWxlbWVudD4pIHtcbiAgICBzZXRFZGl0aW5nKGZhbHNlKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8Q29udGFpbmVyIHN0eWxlPXt7IGRpcmVjdGlvbiwgd2lkdGg6ICcxMDAlJywgaGVpZ2h0OiAnMTAwJScgfX0+XG4gICAgICB7cmVzb3VyY2VNc2cgP1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIDxkaXYgc3R5bGU9e01lc3NhZ2VTdHlsZX0+XG4gICAgICAgICAgPGRpdiBzdHlsZT17eyBmb250U2l6ZTogYCR7Zm9udFNpemV9JWAgfX0+IHtyZXNvdXJjZU1zZ30gPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA6XG4gICAgICAgIDxDb250ZW50PlxuICAgICAgICAgIDxzcGFuIHN0eWxlPXtyZWZTdHlsZX0+IHtjaGFwdGVyfTp7dmVyc2V9Jm5ic3A7PC9zcGFuPlxuICAgICAgICAgIDxzcGFuIHN0eWxlPXtjb250ZW50U3R5bGV9IG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIHNldEVkaXRpbmcgJiYgc2V0RWRpdGluZyh0cnVlKVxuICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2VkaXRpbmcgP1xuICAgICAgICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU9e2luaXRpYWxWZXJzZVRleHR9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9e29uVGV4dENoYW5nZX1cbiAgICAgICAgICAgICAgICBvbkJsdXI9e29uQmx1cn1cbiAgICAgICAgICAgICAgICBzdHlsZT17dGV4dEFyZWFTdHlsZX1cbiAgICAgICAgICAgICAgICBhdXRvRm9jdXNcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgOlxuICAgICAgICAgICAgICA8VmVyc2VPYmplY3RzXG4gICAgICAgICAgICAgICAgdmVyc2VLZXk9e2Ake3JlZmVyZW5jZS5jaGFwdGVyfToke3JlZmVyZW5jZS52ZXJzZX1gfVxuICAgICAgICAgICAgICAgIHZlcnNlT2JqZWN0cz17dmVyc2VPYmplY3RzIHx8IFtdfVxuICAgICAgICAgICAgICAgIGRpc2FibGVXb3JkUG9wb3Zlcj17ZGlzYWJsZVdvcmRQb3BvdmVyfVxuICAgICAgICAgICAgICAgIGdldExleGljb25EYXRhPXtnZXRMZXhpY29uRGF0YX1cbiAgICAgICAgICAgICAgICB0cmFuc2xhdGU9e3RyYW5zbGF0ZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvQ29udGVudD5cbiAgICAgIH1cbiAgICA8L0NvbnRhaW5lcj5cbiAgKVxufVxuXG5TY3JpcHR1cmVQYW5lLmRlZmF1bHRQcm9wcyA9IHsgdmVyc2VPYmplY3RzOiBbXSB9XG5cbmV4cG9ydCBkZWZhdWx0IFNjcmlwdHVyZVBhbmVcbiJdfQ==
@@ -1,4 +1,10 @@
1
+ import "core-js/modules/es.array.concat.js";
1
2
  import "core-js/modules/es.array.is-array.js";
3
+ import "core-js/modules/es.array.map.js";
4
+
5
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
6
+
7
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
2
8
 
3
9
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
4
10
 
@@ -15,10 +21,11 @@ function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(
15
21
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
16
22
 
17
23
  // @ts-ignore
18
- import { useEffect, useState } from 'react';
24
+ import { useEffect, useMemo, useState } from 'react';
19
25
  import { core, useRsrc } from 'scripture-resources-rcl';
20
26
  import { CONTENT_NOT_FOUND_ERROR, ERROR_STATE, INITIALIZED_STATE, INVALID_MANIFEST_ERROR, LOADING_STATE, MANIFEST_NOT_LOADED_ERROR, SCRIPTURE_NOT_LOADED_ERROR } from 'translation-helps-rcl';
21
- import { getResourceLink } from '../utils';
27
+ import { getVerses } from 'bible-reference-range';
28
+ import { cleanupVerseObjects, getResourceLink } from '../utils/ScriptureSettings';
22
29
  import { ServerConfig, ScriptureResource, ScriptureReference } from '../types';
23
30
  import { parseResourceManifest } from './parseResourceManifest';
24
31
  export function useScripture(_ref) {
@@ -27,13 +34,25 @@ export function useScripture(_ref) {
27
34
  var config = _ref.config,
28
35
  reference = _ref.reference,
29
36
  resource_ = _ref.resource,
30
- resourceLink_ = _ref.resourceLink;
37
+ resourceLink_ = _ref.resourceLink,
38
+ _ref$wholeBook = _ref.wholeBook,
39
+ wholeBook = _ref$wholeBook === void 0 ? false : _ref$wholeBook;
31
40
 
32
41
  var _useState = useState(false),
33
42
  _useState2 = _slicedToArray(_useState, 2),
34
43
  initialized = _useState2[0],
35
44
  setInitialized = _useState2[1];
36
45
 
46
+ var _useState3 = useState(null),
47
+ _useState4 = _slicedToArray(_useState3, 2),
48
+ bookObjects = _useState4[0],
49
+ setBookObjects = _useState4[1];
50
+
51
+ var _useState5 = useState(null),
52
+ _useState6 = _slicedToArray(_useState5, 2),
53
+ versesForRef = _useState6[0],
54
+ setVersesForRef = _useState6[1];
55
+
37
56
  var resourceLink = resourceLink_;
38
57
 
39
58
  if (!resourceLink_ && resource_) {
@@ -58,10 +77,19 @@ export function useScripture(_ref) {
58
77
  var options = {
59
78
  getBibleJson: true
60
79
  };
80
+ var bookRef = useMemo(function () {
81
+ var bookRef = _objectSpread({}, reference);
82
+
83
+ if (wholeBook) {
84
+ delete bookRef.chapter; // remove the chapter so the whole book is fetched
85
+ }
86
+
87
+ return bookRef;
88
+ }, [reference, wholeBook]);
61
89
 
62
90
  var _useRsrc = useRsrc({
63
91
  config: config,
64
- reference: reference,
92
+ reference: bookRef,
65
93
  resourceLink: resourceLink,
66
94
  options: options
67
95
  }),
@@ -72,7 +100,8 @@ export function useScripture(_ref) {
72
100
  content = _useRsrc$state.content,
73
101
  loadingResource = _useRsrc$state.loadingResource,
74
102
  loadingContent = _useRsrc$state.loadingContent,
75
- fetchResponse = _useRsrc$state.fetchResponse;
103
+ fetchResponse = _useRsrc$state.fetchResponse,
104
+ reloadResource = _useRsrc.actions.reloadResource;
76
105
 
77
106
  var _parseResourceManifes = parseResourceManifest(resource),
78
107
  title = _parseResourceManifes.title,
@@ -100,8 +129,71 @@ export function useScripture(_ref) {
100
129
  }
101
130
  }, [loading]);
102
131
 
132
+ function getVersesForRef(ref) {
133
+ var content_ = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : bookObjects;
134
+
135
+ if (content_) {
136
+ var verses = getVerses(content_.chapters, ref);
137
+
138
+ if (languageId === 'el-x-koine' || languageId === 'hbo') {
139
+ verses = verses.map(function (verse) {
140
+ var _verse$verseData;
141
+
142
+ if (verse !== null && verse !== void 0 && (_verse$verseData = verse.verseData) !== null && _verse$verseData !== void 0 && _verse$verseData.verseObjects) {
143
+ var verseObjects_ = core.occurrenceInjectVerseObjects(verse.verseData.verseObjects);
144
+ verseObjects_ = cleanupVerseObjects(verseObjects_);
145
+ verse.verseData.verseObjects = verseObjects_;
146
+ }
147
+
148
+ return verse;
149
+ });
150
+ }
151
+
152
+ return verses;
153
+ }
154
+
155
+ return null;
156
+ }
157
+
158
+ function updateVerse(chapter, verse, verseData) {
159
+ if (bookObjects) {
160
+ var bookObjects_ = _objectSpread({}, bookObjects); // shallow copy
161
+
162
+
163
+ if (bookObjects_ !== null && bookObjects_ !== void 0 && bookObjects_.chapters) {
164
+ bookObjects_.chapters = _objectSpread({}, bookObjects_.chapters); // shallow copy chapters
165
+
166
+ if (bookObjects_.chapters[chapter]) {
167
+ bookObjects_.chapters[chapter] = _objectSpread({}, bookObjects_.chapters[chapter]); // shallow copy verses
168
+
169
+ bookObjects_.chapters[chapter][verse] = verseData;
170
+ setBookObjects(bookObjects_);
171
+ return bookObjects_;
172
+ }
173
+ }
174
+ }
175
+
176
+ return null;
177
+ }
178
+
179
+ useEffect(function () {
180
+ if (bookObjects) {
181
+ var _ref5 = "".concat(reference.chapter, ":").concat(reference.verse);
182
+
183
+ var _versesForRef = getVersesForRef(_ref5, bookObjects);
184
+
185
+ setVersesForRef(_versesForRef);
186
+ } else {
187
+ setVersesForRef(null);
188
+ }
189
+ }, [bookObjects]);
190
+ useEffect(function () {
191
+ setBookObjects(content);
192
+ }, [content]);
193
+
103
194
  if (languageId === 'el-x-koine' || languageId === 'hbo') {
104
195
  verseObjects = core.occurrenceInjectVerseObjects(verseObjects);
196
+ verseObjects = cleanupVerseObjects(verseObjects);
105
197
  }
106
198
 
107
199
  return {
@@ -111,8 +203,14 @@ export function useScripture(_ref) {
111
203
  resourceLink: resourceLink,
112
204
  matchedVerse: matchedVerse,
113
205
  verseObjects: verseObjects,
206
+ bookObjects: bookObjects,
114
207
  resourceStatus: resourceStatus,
115
- fetchResponse: fetchResponse
208
+ fetchResponse: fetchResponse,
209
+ setBookObjects: setBookObjects,
210
+ getVersesForRef: getVersesForRef,
211
+ versesForRef: versesForRef,
212
+ updateVerse: updateVerse,
213
+ reloadResource: reloadResource
116
214
  };
117
215
  }
118
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2VTY3JpcHR1cmUudHN4Il0sIm5hbWVzIjpbInVzZUVmZmVjdCIsInVzZVN0YXRlIiwiY29yZSIsInVzZVJzcmMiLCJDT05URU5UX05PVF9GT1VORF9FUlJPUiIsIkVSUk9SX1NUQVRFIiwiSU5JVElBTElaRURfU1RBVEUiLCJJTlZBTElEX01BTklGRVNUX0VSUk9SIiwiTE9BRElOR19TVEFURSIsIk1BTklGRVNUX05PVF9MT0FERURfRVJST1IiLCJTQ1JJUFRVUkVfTk9UX0xPQURFRF9FUlJPUiIsImdldFJlc291cmNlTGluayIsIlNlcnZlckNvbmZpZyIsIlNjcmlwdHVyZVJlc291cmNlIiwiU2NyaXB0dXJlUmVmZXJlbmNlIiwicGFyc2VSZXNvdXJjZU1hbmlmZXN0IiwidXNlU2NyaXB0dXJlIiwiY29uZmlnIiwicmVmZXJlbmNlIiwicmVzb3VyY2VfIiwicmVzb3VyY2UiLCJyZXNvdXJjZUxpbmtfIiwicmVzb3VyY2VMaW5rIiwiaW5pdGlhbGl6ZWQiLCJzZXRJbml0aWFsaXplZCIsIm93bmVyIiwibGFuZ3VhZ2VJZCIsInByb2plY3RJZCIsImJyYW5jaCIsInJlZiIsInJlZl8iLCJyZXNvdXJjZUlkIiwib3B0aW9ucyIsImdldEJpYmxlSnNvbiIsInN0YXRlIiwiYmlibGVKc29uIiwibWF0Y2hlZFZlcnNlIiwiY29udGVudCIsImxvYWRpbmdSZXNvdXJjZSIsImxvYWRpbmdDb250ZW50IiwiZmV0Y2hSZXNwb25zZSIsInRpdGxlIiwidmVyc2lvbiIsInZlcnNlT2JqZWN0cyIsImxvYWRpbmciLCJjb250ZW50Tm90Rm91bmRFcnJvciIsInNjcmlwdHVyZU5vdExvYWRlZEVycm9yIiwibWFuaWZlc3ROb3RGb3VuZEVycm9yIiwibWFuaWZlc3QiLCJpbnZhbGlkTWFuaWZlc3RFcnJvciIsImVycm9yIiwicmVzb3VyY2VTdGF0dXMiLCJvY2N1cnJlbmNlSW5qZWN0VmVyc2VPYmplY3RzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7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QUEsWUFBWSxFQUFaQSxZQUxLO0FBTUxPLElBQUFBLFlBQVksRUFBWkEsWUFOSztBQU9MUSxJQUFBQSxjQUFjLEVBQWRBLGNBUEs7QUFRTFgsSUFBQUEsYUFBYSxFQUFiQTtBQVJLLEdBQVA7QUFVRCIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1pZ25vcmVcbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIGNvcmUsXG4gIHVzZVJzcmMsXG59IGZyb20gJ3NjcmlwdHVyZS1yZXNvdXJjZXMtcmNsJ1xuaW1wb3J0IHtcbiAgQ09OVEVOVF9OT1RfRk9VTkRfRVJST1IsXG4gIEVSUk9SX1NUQVRFLFxuICBJTklUSUFMSVpFRF9TVEFURSxcbiAgSU5WQUxJRF9NQU5JRkVTVF9FUlJPUixcbiAgTE9BRElOR19TVEFURSxcbiAgTUFOSUZFU1RfTk9UX0xPQURFRF9FUlJPUixcbiAgU0NSSVBUVVJFX05PVF9MT0FERURfRVJST1IsXG59IGZyb20gJ3RyYW5zbGF0aW9uLWhlbHBzLXJjbCdcbmltcG9ydCB7IGdldFJlc291cmNlTGluayB9IGZyb20gJy4uL3V0aWxzJ1xuaW1wb3J0IHtcbiAgU2VydmVyQ29uZmlnLFxuICBTY3JpcHR1cmVSZXNvdXJjZSxcbiAgU2NyaXB0dXJlUmVmZXJlbmNlLFxufSBmcm9tICcuLi90eXBlcydcbmltcG9ydCB7IHBhcnNlUmVzb3VyY2VNYW5pZmVzdCB9IGZyb20gJy4vcGFyc2VSZXNvdXJjZU1hbmlmZXN0J1xuXG5pbnRlcmZhY2UgUHJvcHMge1xuICAvKiogcmVmZXJlbmNlIGZvciBzY3JpcHR1cmUgKiovXG4gIHJlZmVyZW5jZTogU2NyaXB0dXJlUmVmZXJlbmNlO1xuICAvKiogd2hlcmUgdG8gZ2V0IGRhdGEgKiovXG4gIGNvbmZpZzogU2VydmVyQ29uZmlnO1xuICAvKiogb3B0aW9uYWwgZGlyZWN0IHBhdGggdG8gYmlibGUgcmVzb3VyY2UsIGluIGZvcm1hdCAke293bmVyfS8ke2xhbmd1YWdlSWR9LyR7cHJvamVjdElkfS8ke2JyYW5jaH0gKiovXG4gIHJlc291cmNlTGluazogc3RyaW5nfHVuZGVmaW5lZDtcbiAgLyoqIG9wdGlvbmFsIHJlc291cmNlIG9iamVjdCB0byB1c2UgdG8gYnVpbGQgcmVzb3VyY2VMaW5rICoqL1xuICByZXNvdXJjZTogU2NyaXB0dXJlUmVzb3VyY2V8dW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlU2NyaXB0dXJlKHtcbiAgY29uZmlnLFxuICByZWZlcmVuY2UsXG4gIHJlc291cmNlOiByZXNvdXJjZV8sXG4gIHJlc291cmNlTGluazogcmVzb3VyY2VMaW5rXyxcbn0gOiBQcm9wcykge1xuICBjb25zdCBbaW5pdGlhbGl6ZWQsIHNldEluaXRpYWxpemVkXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBsZXQgcmVzb3VyY2VMaW5rID0gcmVzb3VyY2VMaW5rX1xuXG4gIGlmICghcmVzb3VyY2VMaW5rXyAmJiByZXNvdXJjZV8pIHtcbiAgICBjb25zdCB7XG4gICAgICBvd25lcixcbiAgICAgIGxhbmd1YWdlSWQsXG4gICAgICBwcm9qZWN0SWQsXG4gICAgICBicmFuY2ggPSAnbWFzdGVyJyxcbiAgICAgIHJlZiA9IG51bGwsXG4gICAgfSA9IHJlc291cmNlXyB8fCB7fVxuICAgIGNvbnN0IHJlZl8gPSByZWYgfHwgYnJhbmNoXG4gICAgcmVzb3VyY2VMaW5rID0gZ2V0UmVzb3VyY2VMaW5rKHtcbiAgICAgIG93bmVyLFxuICAgICAgbGFuZ3VhZ2VJZCxcbiAgICAgIHJlc291cmNlSWQ6IHByb2plY3RJZCxcbiAgICAgIHJlZjogcmVmXyxcbiAgICB9KVxuICB9XG5cbiAgY29uc3Qgb3B0aW9ucyA9IHsgZ2V0QmlibGVKc29uOiB0cnVlIH1cblxuICBjb25zdCB7XG4gICAgc3RhdGU6IHtcbiAgICAgIGJpYmxlSnNvbixcbiAgICAgIG1hdGNoZWRWZXJzZSxcbiAgICAgIHJlc291cmNlLFxuICAgICAgY29udGVudCxcbiAgICAgIGxvYWRpbmdSZXNvdXJjZSxcbiAgICAgIGxvYWRpbmdDb250ZW50LFxuICAgICAgZmV0Y2hSZXNwb25zZSxcbiAgICB9LFxuICB9ID0gdXNlUnNyYyh7XG4gICAgY29uZmlnLCByZWZlcmVuY2UsIHJlc291cmNlTGluaywgb3B0aW9ucyxcbiAgfSlcblxuICBjb25zdCB7IHRpdGxlLCB2ZXJzaW9uIH0gPSBwYXJzZVJlc291cmNlTWFuaWZlc3QocmVzb3VyY2UpXG4gIGxldCB7IHZlcnNlT2JqZWN0cyB9ID0gYmlibGVKc29uIHx8IHt9XG4gIGNvbnN0IHsgbGFuZ3VhZ2VJZCB9ID0gcmVzb3VyY2VfIHx8IHt9XG4gIGNvbnN0IGxvYWRpbmcgPSBsb2FkaW5nUmVzb3VyY2UgfHwgbG9hZGluZ0NvbnRlbnRcbiAgY29uc3QgY29udGVudE5vdEZvdW5kRXJyb3IgPSAhY29udGVudFxuICBjb25zdCBzY3JpcHR1cmVOb3RMb2FkZWRFcnJvciA9ICFiaWJsZUpzb25cbiAgY29uc3QgbWFuaWZlc3ROb3RGb3VuZEVycm9yID0gIXJlc291cmNlPy5tYW5pZmVzdFxuICBjb25zdCBpbnZhbGlkTWFuaWZlc3RFcnJvciA9ICF0aXRsZSB8fCAhdmVyc2lvbiB8fCAhbGFuZ3VhZ2VJZFxuICBjb25zdCBlcnJvciA9IGluaXRpYWxpemVkICYmICFsb2FkaW5nICYmXG4gICAgKGNvbnRlbnROb3RGb3VuZEVycm9yIHx8IHNjcmlwdHVyZU5vdExvYWRlZEVycm9yIHx8IG1hbmlmZXN0Tm90Rm91bmRFcnJvciB8fCBpbnZhbGlkTWFuaWZlc3RFcnJvcilcbiAgY29uc3QgcmVzb3VyY2VTdGF0dXMgPSB7XG4gICAgW0xPQURJTkdfU1RBVEVdOiBsb2FkaW5nLFxuICAgIFtDT05URU5UX05PVF9GT1VORF9FUlJPUl06IGNvbnRlbnROb3RGb3VuZEVycm9yLFxuICAgIFtTQ1JJUFRVUkVfTk9UX0xPQURFRF9FUlJPUl06IHNjcmlwdHVyZU5vdExvYWRlZEVycm9yLFxuICAgIFtNQU5JRkVTVF9OT1RfTE9BREVEX0VSUk9SXTogbWFuaWZlc3ROb3RGb3VuZEVycm9yLFxuICAgIFtJTlZBTElEX01BTklGRVNUX0VSUk9SXTogaW52YWxpZE1hbmlmZXN0RXJyb3IsXG4gICAgW0VSUk9SX1NUQVRFXTogZXJyb3IsXG4gICAgW0lOSVRJQUxJWkVEX1NUQVRFXTogaW5pdGlhbGl6ZWQsXG4gIH1cblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghaW5pdGlhbGl6ZWQpIHtcbiAgICAgIGlmIChsb2FkaW5nKSB7IC8vIG9uY2UgZmlyc3QgbG9hZCBoYXMgYmVndW4sIHdlIGFyZSBpbml0aWFsaXplZFxuICAgICAgICBzZXRJbml0aWFsaXplZCh0cnVlKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2xvYWRpbmddKVxuXG4gIGlmIChsYW5ndWFnZUlkID09PSAnZWwteC1rb2luZScgfHwgbGFuZ3VhZ2VJZCA9PT0gJ2hibycpIHtcbiAgICB2ZXJzZU9iamVjdHMgPSBjb3JlLm9jY3VycmVuY2VJbmplY3RWZXJzZU9iamVjdHModmVyc2VPYmplY3RzKVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB0aXRsZSxcbiAgICB2ZXJzaW9uLFxuICAgIHJlZmVyZW5jZSxcbiAgICByZXNvdXJjZUxpbmssXG4gICAgbWF0Y2hlZFZlcnNlLFxuICAgIHZlcnNlT2JqZWN0cyxcbiAgICByZXNvdXJjZVN0YXR1cyxcbiAgICBmZXRjaFJlc3BvbnNlLFxuICB9XG59XG4iXX0=
216
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2VTY3JpcHR1cmUudHN4Il0sIm5hbWVzIjpbInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VTdGF0ZSIsImNvcmUiLCJ1c2VSc3JjIiwiQ09OVEVOVF9OT1RfRk9VTkRfRVJST1IiLCJFUlJPUl9TVEFURSIsIklOSVRJQUxJWkVEX1NUQVRFIiwiSU5WQUxJRF9NQU5JRkVTVF9FUlJPUiIsIkxPQURJTkdfU1RBVEUiLCJNQU5JRkVTVF9OT1RfTE9BREVEX0VSUk9SIiwiU0NSSVBUVVJFX05PVF9MT0FERURfRVJST1IiLCJnZXRWZXJzZXMiLCJjbGVhbnVwVmVyc2VPYmplY3RzIiwiZ2V0UmVzb3VyY2VMaW5rIiwiU2VydmVyQ29uZmlnIiwiU2NyaXB0dXJlUmVzb3VyY2UiLCJTY3JpcHR1cmVSZWZlcmVuY2UiLCJwYXJzZVJlc291cmNlTWFuaWZlc3QiLCJ1c2VTY3JpcHR1cmUiLCJjb25maWciLCJyZWZlcmVuY2UiLCJyZXNvdXJjZV8iLCJyZXNvdXJjZSIsInJlc291cmNlTGlua18iLCJyZXNvdXJjZUxpbmsiLCJ3aG9sZUJvb2siLCJpbml0aWFsaXplZCIsInNldEluaXRpYWxpemVkIiwiYm9va09iamVjdHMiLCJzZXRCb29rT2JqZWN0cyIsInZlcnNlc0ZvclJlZiIsInNldFZlcnNlc0ZvclJlZiIsIm93bmVyIiwibGFuZ3VhZ2VJZCIsInByb2plY3RJZCIsImJyYW5jaCIsInJlZiIsInJlZl8iLCJyZXNvdXJjZUlkIiwib3B0aW9ucyIsImdldEJpYmxlSnNvbiIsImJvb2tSZWYiLCJjaGFwdGVyIiwic3RhdGUiLCJiaWJsZUpzb24iLCJtYXRjaGVkVmVyc2UiLCJjb250ZW50IiwibG9hZGluZ1Jlc291cmNlIiwibG9hZGluZ0NvbnRlbnQiLCJmZXRjaFJlc3BvbnNlIiwicmVsb2FkUmVzb3VyY2UiLCJhY3Rpb25zIiwidGl0bGUiLCJ2ZXJzaW9uIiwidmVyc2VPYmplY3RzIiwibG9hZGluZyIsImNvbnRlbnROb3RGb3VuZEVycm9yIiwic2NyaXB0dXJlTm90TG9hZGVkRXJyb3IiLCJtYW5pZmVzdE5vdEZvdW5kRXJyb3IiLCJtYW5pZmVzdCIsImludmFsaWRNYW5pZmVzdEVycm9yIiwiZXJyb3IiLCJyZXNvdXJjZVN0YXR1cyIsImdldFZlcnNlc0ZvclJlZiIsImNvbnRlbnRfIiwidmVyc2VzIiwiY2hhcHRlcnMiLCJtYXAiLCJ2ZXJzZSIsInZlcnNlRGF0YSIsInZlcnNlT2JqZWN0c18iLCJvY2N1cnJlbmNlSW5qZWN0VmVyc2VPYmplY3RzIiwidXBkYXRlVmVyc2UiLCJib29rT2JqZWN0c18iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBLFNBQVNBLFNBQVQsRUFBb0JDLE9BQXBCLEVBQTZCQyxRQUE3QixRQUE2QyxPQUE3QztBQUNBLFNBQ0VDLElBREYsRUFFRUMsT0FGRixRQUdPLHlCQUhQO0FBSUEsU0FDRUMsdUJBREYsRUFFRUMsV0FGRixFQUdFQyxpQkFIRixFQUlFQyxzQkFKRixFQUtFQyxhQUxGLEVBTUVDLHlCQU5GLEVBT0VDLDBCQVBGLFFBUU8sdUJBUlA7QUFTQSxTQUFTQyxTQUFULFFBQTBCLHVCQUExQjtBQUNBLFNBQVNDLG1CQUFULEVBQThCQyxlQUE5QixRQUFxRCw0QkFBckQ7QUFDQSxTQUNFQyxZQURGLEVBRUVDLGlCQUZGLEVBR0VDLGtCQUhGLFFBSU8sVUFKUDtBQUtBLFNBQVNDLHFCQUFULFFBQXNDLHlCQUF0QztBQWVBLE9BQU8sU0FBU0MsWUFBVCxPQU1JO0FBQUE7O0FBQUEsTUFMVEMsTUFLUyxRQUxUQSxNQUtTO0FBQUEsTUFKVEMsU0FJUyxRQUpUQSxTQUlTO0FBQUEsTUFIQ0MsU0FHRCxRQUhUQyxRQUdTO0FBQUEsTUFGS0MsYUFFTCxRQUZUQyxZQUVTO0FBQUEsNEJBRFRDLFNBQ1M7QUFBQSxNQURUQSxTQUNTLCtCQURHLEtBQ0g7O0FBQUEsa0JBQzZCeEIsUUFBUSxDQUFDLEtBQUQsQ0FEckM7QUFBQTtBQUFBLE1BQ0Z5QixXQURFO0FBQUEsTUFD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SUFBQUEsV0FBVyxFQUFYQSxXQWJLO0FBY0x0QixJQUFBQSxjQUFjLEVBQWRBO0FBZEssR0FBUDtBQWdCRCIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1pZ25vcmVcbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIGNvcmUsXG4gIHVzZVJzcmMsXG59IGZyb20gJ3NjcmlwdHVyZS1yZXNvdXJjZXMtcmNsJ1xuaW1wb3J0IHtcbiAgQ09OVEVOVF9OT1RfRk9VTkRfRVJST1IsXG4gIEVSUk9SX1NUQVRFLFxuICBJTklUSUFMSVpFRF9TVEFURSxcbiAgSU5WQUxJRF9NQU5JRkVTVF9FUlJPUixcbiAgTE9BRElOR19TVEFURSxcbiAgTUFOSUZFU1RfTk9UX0xPQURFRF9FUlJPUixcbiAgU0NSSVBUVVJFX05PVF9MT0FERURfRVJST1IsXG59IGZyb20gJ3RyYW5zbGF0aW9uLWhlbHBzLXJjbCdcbmltcG9ydCB7IGdldFZlcnNlcyB9IGZyb20gJ2JpYmxlLXJlZmVyZW5jZS1yYW5nZSdcbmltcG9ydCB7IGNsZWFudXBWZXJzZU9iamVjdHMsIGdldFJlc291cmNlTGluayB9IGZyb20gJy4uL3V0aWxzL1NjcmlwdHVyZVNldHRpbmdzJ1xuaW1wb3J0IHtcbiAgU2VydmVyQ29uZmlnLFxuICBTY3JpcHR1cmVSZXNvdXJjZSxcbiAgU2NyaXB0dXJlUmVmZXJlbmNlLFxufSBmcm9tICcuLi90eXBlcydcbmltcG9ydCB7IHBhcnNlUmVzb3VyY2VNYW5pZmVzdCB9IGZyb20gJy4vcGFyc2VSZXNvdXJjZU1hbmlmZXN0J1xuXG5pbnRlcmZhY2UgUHJvcHMge1xuICAvKiogcmVmZXJlbmNlIGZvciBzY3JpcHR1cmUgKiovXG4gIHJlZmVyZW5jZTogU2NyaXB0dXJlUmVmZXJlbmNlO1xuICAvKiogd2hlcmUgdG8gZ2V0IGRhdGEgKiovXG4gIGNvbmZpZzogU2VydmVyQ29uZmlnO1xuICAvKiogb3B0aW9uYWwgZGlyZWN0IHBhdGggdG8gYmlibGUgcmVzb3VyY2UsIGluIGZvcm1hdCAke293bmVyfS8ke2xhbmd1YWdlSWR9LyR7cHJvamVjdElkfS8ke2JyYW5jaH0gKiovXG4gIHJlc291cmNlTGluazogc3RyaW5nfHVuZGVmaW5lZDtcbiAgLyoqIG9wdGlvbmFsIHJlc291cmNlIG9iamVjdCB0byB1c2UgdG8gYnVpbGQgcmVzb3VyY2VMaW5rICoqL1xuICByZXNvdXJjZTogU2NyaXB0dXJlUmVzb3VyY2V8dW5kZWZpbmVkO1xuICAvKiogaWYgdHJ1ZSB0aGVuIGZldGNoIHRoZSBlbnRpcmUgYm9vayAqL1xuICB3aG9sZUJvb2s6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VTY3JpcHR1cmUoe1xuICBjb25maWcsXG4gIHJlZmVyZW5jZSxcbiAgcmVzb3VyY2U6IHJlc291cmNlXyxcbiAgcmVzb3VyY2VMaW5rOiByZXNvdXJjZUxpbmtfLFxuICB3aG9sZUJvb2sgPSBmYWxzZSxcbn0gOiBQcm9wcykge1xuICBjb25zdCBbaW5pdGlhbGl6ZWQsIHNldEluaXRpYWxpemVkXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbYm9va09iamVjdHMsIHNldEJvb2tPYmplY3RzXSA9IHVzZVN0YXRlKG51bGwpXG4gIGNvbnN0IFt2ZXJzZXNGb3JSZWYsIHNldFZlcnNlc0ZvclJlZl0gPSB1c2VTdGF0ZShudWxsKVxuICBsZXQgcmVzb3VyY2VMaW5rID0gcmVzb3VyY2VMaW5rX1xuXG4gIGlmICghcmVzb3VyY2VMaW5rXyAmJiByZXNvdXJjZV8pIHtcbiAgICBjb25zdCB7XG4gICAgICBvd25lcixcbiAgICAgIGxhbmd1YWdlSWQsXG4gICAgICBwcm9qZWN0SWQsXG4gICAgICBicmFuY2ggPSAnbWFzdGVyJyxcbiAgICAgIHJlZiA9IG51bGwsXG4gICAgfSA9IHJlc291cmNlXyB8fCB7fVxuICAgIGNvbnN0IHJlZl8gPSByZWYgfHwgYnJhbmNoXG4gICAgcmVzb3VyY2VMaW5rID0gZ2V0UmVzb3VyY2VMaW5rKHtcbiAgICAgIG93bmVyLFxuICAgICAgbGFuZ3VhZ2VJZCxcbiAgICAgIHJlc291cmNlSWQ6IHByb2plY3RJZCxcbiAgICAgIHJlZjogcmVmXyxcbiAgICB9KVxuICB9XG5cbiAgY29uc3Qgb3B0aW9ucyA9IHsgZ2V0QmlibGVKc29uOiB0cnVlIH1cbiAgY29uc3QgYm9va1JlZiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IGJvb2tSZWYgPSB7IC4uLnJlZmVyZW5jZSB9XG5cbiAgICBpZiAod2hvbGVCb29rKSB7XG4gICAgICBkZWxldGUgYm9va1JlZi5jaGFwdGVyIC8vIHJlbW92ZSB0aGUgY2hhcHRlciBzbyB0aGUgd2hvbGUgYm9vayBpcyBmZXRjaGVkXG4gICAgfVxuICAgIHJldHVybiBib29rUmVmXG4gIH0sIFtyZWZlcmVuY2UsIHdob2xlQm9va10pXG5cbiAgY29uc3Qge1xuICAgIHN0YXRlOiB7XG4gICAgICBiaWJsZUpzb24sXG4gICAgICBtYXRjaGVkVmVyc2UsXG4gICAgICByZXNvdXJjZSxcbiAgICAgIGNvbnRlbnQsXG4gICAgICBsb2FkaW5nUmVzb3VyY2UsXG4gICAgICBsb2FkaW5nQ29udGVudCxcbiAgICAgIGZldGNoUmVzcG9uc2UsXG4gICAgfSxcbiAgICBhY3Rpb25zOiB7IHJlbG9hZFJlc291cmNlIH0sXG4gIH0gPSB1c2VSc3JjKHtcbiAgICBjb25maWcsIHJlZmVyZW5jZTogYm9va1JlZiwgcmVzb3VyY2VMaW5rLCBvcHRpb25zLFxuICB9KVxuXG4gIGNvbnN0IHsgdGl0bGUsIHZlcnNpb24gfSA9IHBhcnNlUmVzb3VyY2VNYW5pZmVzdChyZXNvdXJjZSlcbiAgbGV0IHsgdmVyc2VPYmplY3RzIH0gPSBiaWJsZUpzb24gfHwge31cbiAgY29uc3QgeyBsYW5ndWFnZUlkIH0gPSByZXNvdXJjZV8gfHwge31cbiAgY29uc3QgbG9hZGluZyA9IGxvYWRpbmdSZXNvdXJjZSB8fCBsb2FkaW5nQ29udGVudFxuICBjb25zdCBjb250ZW50Tm90Rm91bmRFcnJvciA9ICFjb250ZW50XG4gIGNvbnN0IHNjcmlwdHVyZU5vdExvYWRlZEVycm9yID0gIWJpYmxlSnNvblxuICBjb25zdCBtYW5pZmVzdE5vdEZvdW5kRXJyb3IgPSAhcmVzb3VyY2U/Lm1hbmlmZXN0XG4gIGNvbnN0IGludmFsaWRNYW5pZmVzdEVycm9yID0gIXRpdGxlIHx8ICF2ZXJzaW9uIHx8ICFsYW5ndWFnZUlkXG4gIGNvbnN0IGVycm9yID0gaW5pdGlhbGl6ZWQgJiYgIWxvYWRpbmcgJiZcbiAgICAoY29udGVudE5vdEZvdW5kRXJyb3IgfHwgc2NyaXB0dXJlTm90TG9hZGVkRXJyb3IgfHwgbWFuaWZlc3ROb3RGb3VuZEVycm9yIHx8IGludmFsaWRNYW5pZmVzdEVycm9yKVxuICBjb25zdCByZXNvdXJjZVN0YXR1cyA9IHtcbiAgICBbTE9BRElOR19TVEFURV06IGxvYWRpbmcsXG4gICAgW0NPTlRFTlRfTk9UX0ZPVU5EX0VSUk9SXTogY29udGVudE5vdEZvdW5kRXJyb3IsXG4gICAgW1NDUklQVFVSRV9OT1RfTE9BREVEX0VSUk9SXTogc2NyaXB0dXJlTm90TG9hZGVkRXJyb3IsXG4gICAgW01BTklGRVNUX05PVF9MT0FERURfRVJST1JdOiBtYW5pZmVzdE5vdEZvdW5kRXJyb3IsXG4gICAgW0lOVkFMSURfTUFOSUZFU1RfRVJST1JdOiBpbnZhbGlkTWFuaWZlc3RFcnJvcixcbiAgICBbRVJST1JfU1RBVEVdOiBlcnJvcixcbiAgICBbSU5JVElBTElaRURfU1RBVEVdOiBpbml0aWFsaXplZCxcbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFpbml0aWFsaXplZCkge1xuICAgICAgaWYgKGxvYWRpbmcpIHsgLy8gb25jZSBmaXJzdCBsb2FkIGhhcyBiZWd1biwgd2UgYXJlIGluaXRpYWxpemVkXG4gICAgICAgIHNldEluaXRpYWxpemVkKHRydWUpXG4gICAgICB9XG4gICAgfVxuICB9LCBbbG9hZGluZ10pXG5cbiAgZnVuY3Rpb24gZ2V0VmVyc2VzRm9yUmVmKHJlZiwgY29udGVudF8gPSBib29rT2JqZWN0cykge1xuICAgIGlmIChjb250ZW50Xykge1xuICAgICAgbGV0IHZlcnNlcyA9IGdldFZlcnNlcyhjb250ZW50Xy5jaGFwdGVycywgcmVmKVxuXG4gICAgICBpZiAobGFuZ3VhZ2VJZCA9PT0gJ2VsLXgta29pbmUnIHx8IGxhbmd1YWdlSWQgPT09ICdoYm8nKSB7XG4gICAgICAgIHZlcnNlcyA9IHZlcnNlcy5tYXAodmVyc2UgPT4ge1xuICAgICAgICAgIGlmICggdmVyc2U/LnZlcnNlRGF0YT8udmVyc2VPYmplY3RzKSB7XG4gICAgICAgICAgICBsZXQgdmVyc2VPYmplY3RzXyA9IGNvcmUub2NjdXJyZW5jZUluamVjdFZlcnNlT2JqZWN0cyggdmVyc2UudmVyc2VEYXRhLnZlcnNlT2JqZWN0cylcbiAgICAgICAgICAgIHZlcnNlT2JqZWN0c18gPSBjbGVhbnVwVmVyc2VPYmplY3RzKHZlcnNlT2JqZWN0c18pXG4gICAgICAgICAgICB2ZXJzZS52ZXJzZURhdGEudmVyc2VPYmplY3RzID0gdmVyc2VPYmplY3RzX1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdmVyc2VcbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHZlcnNlc1xuICAgIH1cbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgZnVuY3Rpb24gdXBkYXRlVmVyc2UoY2hhcHRlciwgdmVyc2UsIHZlcnNlRGF0YSkge1xuICAgIGlmIChib29rT2JqZWN0cykge1xuICAgICAgY29uc3QgYm9va09iamVjdHNfID0geyAuLi5ib29rT2JqZWN0cyB9IC8vIHNoYWxsb3cgY29weVxuXG4gICAgICBpZiAoYm9va09iamVjdHNfPy5jaGFwdGVycykge1xuICAgICAgICBib29rT2JqZWN0c18uY2hhcHRlcnMgPSB7IC4uLmJvb2tPYmplY3RzXy5jaGFwdGVycyB9IC8vIHNoYWxsb3cgY29weSBjaGFwdGVyc1xuXG4gICAgICAgIGlmIChib29rT2JqZWN0c18uY2hhcHRlcnNbY2hhcHRlcl0pIHtcbiAgICAgICAgICBib29rT2JqZWN0c18uY2hhcHRlcnNbY2hhcHRlcl0gPSB7IC4uLmJvb2tPYmplY3RzXy5jaGFwdGVyc1tjaGFwdGVyXSB9IC8vIHNoYWxsb3cgY29weSB2ZXJzZXNcbiAgICAgICAgICBib29rT2JqZWN0c18uY2hhcHRlcnNbY2hhcHRlcl1bdmVyc2VdID0gdmVyc2VEYXRhXG4gICAgICAgICAgc2V0Qm9va09iamVjdHMoYm9va09iamVjdHNfKVxuICAgICAgICAgIHJldHVybiBib29rT2JqZWN0c19cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoYm9va09iamVjdHMpIHtcbiAgICAgIGNvbnN0IHJlZiA9IGAke3JlZmVyZW5jZS5jaGFwdGVyfToke3JlZmVyZW5jZS52ZXJzZX1gXG4gICAgICBjb25zdCB2ZXJzZXNGb3JSZWYgPSBnZXRWZXJzZXNGb3JSZWYocmVmLCBib29rT2JqZWN0cylcbiAgICAgIHNldFZlcnNlc0ZvclJlZih2ZXJzZXNGb3JSZWYpXG4gICAgfSBlbHNlIHtcbiAgICAgIHNldFZlcnNlc0ZvclJlZihudWxsKVxuICAgIH1cbiAgfSwgW2Jvb2tPYmplY3RzXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldEJvb2tPYmplY3RzKGNvbnRlbnQpXG4gIH0sIFtjb250ZW50XSlcblxuICBpZiAobGFuZ3VhZ2VJZCA9PT0gJ2VsLXgta29pbmUnIHx8IGxhbmd1YWdlSWQgPT09ICdoYm8nKSB7XG4gICAgdmVyc2VPYmplY3RzID0gY29yZS5vY2N1cnJlbmNlSW5qZWN0VmVyc2VPYmplY3RzKHZlcnNlT2JqZWN0cylcbiAgICB2ZXJzZU9iamVjdHMgPSBjbGVhbnVwVmVyc2VPYmplY3RzKHZlcnNlT2JqZWN0cylcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgdGl0bGUsXG4gICAgdmVyc2lvbixcbiAgICByZWZlcmVuY2UsXG4gICAgcmVzb3VyY2VMaW5rLFxuICAgIG1hdGNoZWRWZXJzZSxcbiAgICB2ZXJzZU9iamVjdHMsXG4gICAgYm9va09iamVjdHMsXG4gICAgcmVzb3VyY2VTdGF0dXMsXG4gICAgZmV0Y2hSZXNwb25zZSxcbiAgICBzZXRCb29rT2JqZWN0cyxcbiAgICBnZXRWZXJzZXNGb3JSZWYsXG4gICAgdmVyc2VzRm9yUmVmLFxuICAgIHVwZGF0ZVZlcnNlLFxuICAgIHJlbG9hZFJlc291cmNlLFxuICB9XG59XG4iXX0=