single-scripture-rcl 3.2.2 → 3.2.4

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,28 @@
1
- import "core-js/modules/es.array.concat.js";
1
+ import "core-js/modules/es.array.is-array.js";
2
+ import "core-js/modules/es.parse-float.js";
3
+
4
+ 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; }
5
+
6
+ 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; }
7
+
8
+ 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; }
9
+
10
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
11
+
12
+ 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."); }
13
+
14
+ 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); }
15
+
16
+ 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; }
17
+
18
+ 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; }
19
+
20
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
21
+
2
22
  import * as React from 'react';
23
+ import useDeepCompareEffect from 'use-deep-compare-effect';
3
24
  import { VerseObjects } from 'scripture-resources-rcl';
25
+ import { UsfmFileConversionHelpers } from 'word-aligner-rcl';
4
26
  import { ScriptureReference, VerseObjectsType } from '../../types';
5
27
  import { getResourceMessage } from '../../utils';
6
28
  import { Container, Content } from './styled';
@@ -17,6 +39,12 @@ var MessageStyle = {
17
39
  fontFamily: 'Noto Sans',
18
40
  fontWeight: 'bold'
19
41
  };
42
+ var TextAreaStyle = {
43
+ height: '60%',
44
+ width: '100%',
45
+ minWidth: '220px',
46
+ fontSize: '16px'
47
+ };
20
48
 
21
49
  function ScripturePane(_ref) {
22
50
  var reference = _ref.reference,
@@ -31,7 +59,16 @@ function ScripturePane(_ref) {
31
59
  isNT = _ref.isNT,
32
60
  fontSize = _ref.fontSize,
33
61
  getLexiconData = _ref.getLexiconData,
34
- translate = _ref.translate;
62
+ translate = _ref.translate,
63
+ editing = _ref.editing,
64
+ setEditing = _ref.setEditing,
65
+ setVerseChanged = _ref.setVerseChanged;
66
+
67
+ var _React$useState = React.useState(null),
68
+ _React$useState2 = _slicedToArray(_React$useState, 2),
69
+ initialVerseText = _React$useState2[0],
70
+ setInitialVerseText = _React$useState2[1];
71
+
35
72
  var resourceMsg = getResourceMessage(resourceStatus, server, resourceLink, isNT);
36
73
  var chapter = reference.chapter,
37
74
  verse = reference.verse;
@@ -43,7 +80,37 @@ function ScripturePane(_ref) {
43
80
  contentStyle = contentStyle || {
44
81
  fontFamily: 'Noto Sans',
45
82
  fontSize: '100%'
46
- };
83
+ }; // dynamically adjust font size
84
+
85
+ var calculatedFontSize = React.useMemo(function () {
86
+ return parseFloat(TextAreaStyle.fontSize) * fontSize / 100 + 'px';
87
+ }, [fontSize]);
88
+
89
+ var textAreaStyle = _objectSpread(_objectSpread(_objectSpread({}, contentStyle), TextAreaStyle), {}, {
90
+ fontSize: calculatedFontSize
91
+ });
92
+
93
+ useDeepCompareEffect(function () {
94
+ var verseText = UsfmFileConversionHelpers.getUsfmForVerseContent({
95
+ verseObjects: verseObjects
96
+ });
97
+ setInitialVerseText(verseText);
98
+ }, [{
99
+ verseObjects: verseObjects
100
+ }]);
101
+
102
+ function onTextChange(event) {
103
+ var _event$target;
104
+
105
+ var newText = event === null || event === void 0 ? void 0 : (_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.value;
106
+ var changed = newText !== initialVerseText;
107
+ setVerseChanged(changed, newText, initialVerseText);
108
+ }
109
+
110
+ function onBlur(event) {
111
+ setEditing(false);
112
+ }
113
+
47
114
  return /*#__PURE__*/React.createElement(Container, {
48
115
  style: {
49
116
  direction: direction,
@@ -62,10 +129,18 @@ function ScripturePane(_ref) {
62
129
  }, " ", resourceMsg, " ")) : /*#__PURE__*/React.createElement(Content, null, /*#__PURE__*/React.createElement("span", {
63
130
  style: refStyle
64
131
  }, " ", chapter, ":", verse, "\xA0"), /*#__PURE__*/React.createElement("span", {
65
- style: contentStyle
66
- }, /*#__PURE__*/React.createElement(VerseObjects, {
67
- verseKey: "".concat(reference.chapter, ":").concat(reference.verse),
68
- verseObjects: verseObjects || [],
132
+ style: contentStyle,
133
+ onClick: function onClick() {
134
+ setEditing && setEditing(true);
135
+ }
136
+ }, editing ? /*#__PURE__*/React.createElement("textarea", {
137
+ defaultValue: initialVerseText,
138
+ onChange: onTextChange,
139
+ onBlur: onBlur,
140
+ style: textAreaStyle,
141
+ autoFocus: true
142
+ }) : /*#__PURE__*/React.createElement(VerseObjects, {
143
+ verseObjects: verseObjects,
69
144
  disableWordPopover: disableWordPopover,
70
145
  getLexiconData: getLexiconData,
71
146
  translate: translate
@@ -76,4 +151,4 @@ ScripturePane.defaultProps = {
76
151
  verseObjects: []
77
152
  };
78
153
  export default ScripturePane;
79
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1NjcmlwdHVyZVBhbmUvU2NyaXB0dXJlUGFuZS50c3giXSwibmFtZXMiOlsiUmVhY3QiLCJWZXJzZU9iamVjdHMiLCJTY3JpcHR1cmVSZWZlcmVuY2UiLCJWZXJzZU9iamVjdHNUeXBlIiwiZ2V0UmVzb3VyY2VNZXNzYWdlIiwiQ29udGFpbmVyIiwiQ29udGVudCIsIk1lc3NhZ2VTdHlsZSIsImRpcmVjdGlvbiIsIndoaXRlU3BhY2UiLCJsaW5lSGVpZ2h0IiwiZGlzcGxheSIsImp1c3RpZnlDb250ZW50IiwiYWxpZ25JdGVtcyIsImhlaWdodCIsIndpZHRoIiwiZm9udFNpemUiLCJmb250RmFtaWx5IiwiZm9udFdlaWdodCIsIlNjcmlwdHVyZVBhbmUiLCJyZWZlcmVuY2UiLCJyZWZTdHlsZSIsImNvbnRlbnRTdHlsZSIsInZlcnNlT2JqZWN0cyIsImRpc2FibGVXb3JkUG9wb3ZlciIsInJlc291cmNlU3RhdHVzIiwicmVzb3VyY2VMaW5rIiwic2VydmVyIiwiaXNOVCIsImdldExleGljb25EYXRhIiwidHJhbnNsYXRlIiwicmVzb3VyY2VNc2ciLCJjaGFwdGVyIiwidmVyc2UiLCJkZWZhdWx0UHJvcHMiXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEtBQUtBLEtBQVosTUFBdUIsT0FBdkI7QUFDQSxTQUFTQyxZQUFULFFBQTZCLHlCQUE3QjtBQUNBLFNBQVNDLGtCQUFULEVBQTZCQyxnQkFBN0IsUUFBcUQsYUFBckQ7QUFDQSxTQUFTQyxrQkFBVCxRQUFtQyxhQUFuQztBQUNBLFNBQVNDLFNBQVQsRUFBb0JDLE9BQXBCLFFBQW1DLFVBQW5DO0FBK0JBLElBQU1DLFlBQVksR0FBRztBQUNuQkMsRUFBQUEsU0FBUyxFQUFFLEtBRFE7QUFFbkJDLEVBQUFBLFVBQVUsRUFBRSxVQUZPO0FBR25CQyxFQUFBQSxVQUFVLEVBQUUsUUFITztBQUluQkMsRUFBQUEsT0FBTyxFQUFFLE1BSlU7QUFLbkJDLEVBQUFBLGNBQWMsRUFBRSxRQUxHO0FBTW5CQyxFQUFBQSxVQUFVLEVBQUUsUUFOTztBQU9uQkMsRUFBQUEsTUFBTSxFQUFFLE1BUFc7QUFRbkJDLEVBQUFBLEtBQUssRUFBRSxNQVJZO0FBU25CQyxFQUFBQSxRQUFRLEVBQUUsTUFUUztBQVVuQkMsRUFBQUEsVUFBVSxFQUFFLFdBVk87QUFXbkJDLEVBQUFBLFVBQVUsRUFBRTtBQVhPLENBQXJCOztBQWVBLFNBQVNDLGFBQVQsT0FjVztBQUFBLE1BYlRDLFNBYVMsUUFiVEEsU0FhUztBQUFBLE1BWlRDLFFBWVMsUUFaVEEsUUFZUztBQUFBLE1BWFRiLFNBV1MsUUFYVEEsU0FXUztBQUFBLE1BVlRjLFlBVVMsUUFWVEEsWUFVUztBQUFBLE1BVFRDLFlBU1MsUUFUVEEsWUFTUztBQUFBLE1BUlRDLGtCQVFTLFFBUlRBLGtCQVFTO0FBQUEsTUFQVEMsY0FPUyxRQVBUQSxjQU9TO0FBQUEsTUFOVEMsWUFNUyxRQU5UQSxZQU1TO0FBQUEsTUFMVEMsTUFLUyxRQUxUQSxNQUtTO0FBQUEsTUFKVEMsSUFJUyxRQUpUQSxJQUlTO0FBQUEsTUFIVFosUUFHUyxRQUhUQSxRQUdTO0FBQUEsTUFGVGEsY0FFUyxRQUZUQSxjQUVTO0FBQUEsTUFEVEMsU0FDUyxRQURUQSxTQUNTO0FBQ1QsTUFBTUMsV0FBVyxHQUFHM0Isa0JBQWtCLENBQUNxQixjQUFELEVBQWlCRSxNQUFqQixFQUF5QkQsWUFBekIsRUFBdUNFLElBQXZDLENBQXRDO0FBRFMsTUFFREksT0FGQyxHQUVrQlosU0FGbEIsQ0FFRFksT0FGQztBQUFBLE1BRVFDLEtBRlIsR0FFa0JiLFNBRmxCLENBRVFhLEtBRlI7QUFHVHpCLEVBQUFBLFNBQVMsR0FBR0EsU0FBUyxJQUFJLEtBQXpCO0FBRUFhLEVBQUFBLFFBQVEsR0FBR0EsUUFBUSxJQUFJO0FBQ3JCSixJQUFBQSxVQUFVLEVBQUUsV0FEUztBQUVyQkQsSUFBQUEsUUFBUSxFQUFFO0FBRlcsR0FBdkI7QUFLQU0sRUFBQUEsWUFBWSxHQUFHQSxZQUFZLElBQUk7QUFDN0JMLElBQUFBLFVBQVUsRUFBRSxXQURpQjtBQUU3QkQsSUFBQUEsUUFBUSxFQUFFO0FBRm1CLEdBQS9CO0FBS0Esc0JBQ0Usb0JBQUMsU0FBRDtBQUFXLElBQUEsS0FBSyxFQUFFO0FBQUVSLE1BQUFBLFNBQVMsRUFBVEEsU0FBRjtBQUFhTyxNQUFBQSxLQUFLLEVBQUUsTUFBcEI7QUFBNEJELE1BQUFBLE1BQU0sRUFBRTtBQUFwQztBQUFsQixLQUNHaUIsV0FBVztBQUFBO0FBQ1Y7QUFDQTtBQUFLLElBQUEsS0FBSyxFQUFFeEI7QUFBWixrQkFDRTtBQUFLLElBQUEsS0FBSyxFQUFFO0FBQUVTLE1BQUFBLFFBQVEsWUFBS0EsUUFBTDtBQUFWO0FBQVosVUFBNENlLFdBQTVDLE1BREYsQ0FGVSxnQkFNVixvQkFBQyxPQUFELHFCQUNFO0FBQU0sSUFBQSxLQUFLLEVBQUVWO0FBQWIsVUFBeUJXLE9BQXpCLE9BQW1DQyxLQUFuQyxTQURGLGVBRUU7QUFBTSxJQUFBLEtBQUssRUFBRVg7QUFBYixrQkFDRSxvQkFBQyxZQUFEO0FBQ0UsSUFBQSxRQUFRLFlBQUtGLFNBQVMsQ0FBQ1ksT0FBZixjQUEwQlosU0FBUyxDQUFDYSxLQUFwQyxDQURWO0FBRUUsSUFBQSxZQUFZLEVBQUVWLFlBQVksSUFBSSxFQUZoQztBQUdFLElBQUEsa0JBQWtCLEVBQUVDLGtCQUh0QjtBQUlFLElBQUEsY0FBYyxFQUFFSyxjQUpsQjtBQUtFLElBQUEsU0FBUyxFQUFFQztBQUxiLElBREYsQ0FGRixDQVBKLENBREY7QUF1QkQ7O0FBRURYLGFBQWEsQ0FBQ2UsWUFBZCxHQUE2QjtBQUFFWCxFQUFBQSxZQUFZLEVBQUU7QUFBaEIsQ0FBN0I7QUFFQSxlQUFlSixhQUFmIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBWZXJzZU9iamVjdHMgfSBmcm9tICdzY3JpcHR1cmUtcmVzb3VyY2VzLXJjbCdcbmltcG9ydCB7IFNjcmlwdHVyZVJlZmVyZW5jZSwgVmVyc2VPYmplY3RzVHlwZSB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHsgZ2V0UmVzb3VyY2VNZXNzYWdlIH0gZnJvbSAnLi4vLi4vdXRpbHMnXG5pbXBvcnQgeyBDb250YWluZXIsIENvbnRlbnQgfSBmcm9tICcuL3N0eWxlZCdcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgLyoqIGN1cnJlbnQgcmVmZXJlbmNlICoqL1xuICByZWZlcmVuY2U6IFNjcmlwdHVyZVJlZmVyZW5jZTtcbiAgLyoqIG9wdGlvbmFsIHN0eWxlcyB0byB1c2UgZm9yIHJlZmVyZW5jZSAqKi9cbiAgcmVmU3R5bGU6IGFueTtcbiAgLyoqIG9wdGlvbmFsIHN0eWxlcyB0byB1c2UgZm9yIGNvbnRlbnQgKiovXG4gIGNvbnRlbnRTdHlsZTogYW55O1xuICAvKiogbGFuZ3VhZ2UgZGlyZWN0aW9uIHRvIHVzZSAqKi9cbiAgZGlyZWN0aW9uOiBzdHJpbmd8dW5kZWZpbmVkO1xuICAvKiogdmVyc2VPYmplY3RzICoqL1xuICB2ZXJzZU9iamVjdHM6IFZlcnNlT2JqZWN0c1R5cGV8dW5kZWZpbmVkO1xuICAvKiogaWYgdHJ1ZSB0aGVuIGRvIG5vdCBkaXNwbGF5IGxleGljb24gcG9wb3ZlciBvbiBob3ZlciAqKi9cbiAgZGlzYWJsZVdvcmRQb3BvdmVyOiBib29sZWFufHVuZGVmaW5lZDtcbiAgLyoqIG9iamVjdCB0aGF0IGNvbnRhaW5zIHJlc291cmNlIGxvYWRpbmcgc3RhdHVzIG9yIGZldGNoaW5nIGVycm9ycyAqL1xuICByZXNvdXJjZVN0YXR1czogb2JqZWN0fHVuZGVmaW5lZDtcbiAgLyoqIHJlc291cmNlIHRoYXQgd2FzIGxvYWRlZCAqL1xuICByZXNvdXJjZUxpbms6IHN0cmluZ3x1bmRlZmluZWQ7XG4gIC8qKiBzZXJ2ZXIgKi9cbiAgc2VydmVyOiBzdHJpbmd8dW5kZWZpbmVkO1xuICAvKiogdHJ1ZSBpZiBicm93c2luZyBOVCAqL1xuICBpc05UOiBib29sZWFuO1xuICAvKiogZm9udCBzaXplIGZvciBtZXNzYWdlcyAqL1xuICBmb250U2l6ZTogbnVtYmVyO1xuICAvKiogZnVuY3Rpb24gdG8gZ2V0IGxhdGVzdCBsZXhpY29uIGRhdGEgKi9cbiAgZ2V0TGV4aWNvbkRhdGE6IEZ1bmN0aW9uO1xuICAvKiogb3B0aW9uYWwgZnVuY3Rpb24gZm9yIGxvY2FsaXphdGlvbiAqL1xuICB0cmFuc2xhdGU6IEZ1bmN0aW9uO1xufVxuXG5jb25zdCBNZXNzYWdlU3R5bGUgPSB7XG4gIGRpcmVjdGlvbjogJ2x0cicsXG4gIHdoaXRlU3BhY2U6ICdwcmUtd3JhcCcsXG4gIGxpbmVIZWlnaHQ6ICdub3JtYWwnLFxuICBkaXNwbGF5OiAnZmxleCcsXG4gIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gIGhlaWdodDogJzEwMCUnLFxuICB3aWR0aDogJzEwMCUnLFxuICBmb250U2l6ZTogJzE2cHgnLFxuICBmb250RmFtaWx5OiAnTm90byBTYW5zJyxcbiAgZm9udFdlaWdodDogJ2JvbGQnLFxufVxuXG5cbmZ1bmN0aW9uIFNjcmlwdHVyZVBhbmUoe1xuICByZWZlcmVuY2UsXG4gIHJlZlN0eWxlLFxuICBkaXJlY3Rpb24sXG4gIGNvbnRlbnRTdHlsZSxcbiAgdmVyc2VPYmplY3RzLFxuICBkaXNhYmxlV29yZFBvcG92ZXIsXG4gIHJlc291cmNlU3RhdHVzLFxuICByZXNvdXJjZUxpbmssXG4gIHNlcnZlcixcbiAgaXNOVCxcbiAgZm9udFNpemUsXG4gIGdldExleGljb25EYXRhLFxuICB0cmFuc2xhdGUsXG59IDogUHJvcHMpIHtcbiAgY29uc3QgcmVzb3VyY2VNc2cgPSBnZXRSZXNvdXJjZU1lc3NhZ2UocmVzb3VyY2VTdGF0dXMsIHNlcnZlciwgcmVzb3VyY2VMaW5rLCBpc05UKVxuICBjb25zdCB7IGNoYXB0ZXIsIHZlcnNlIH0gPSByZWZlcmVuY2VcbiAgZGlyZWN0aW9uID0gZGlyZWN0aW9uIHx8ICdsdHInXG5cbiAgcmVmU3R5bGUgPSByZWZTdHlsZSB8fCB7XG4gICAgZm9udEZhbWlseTogJ05vdG8gU2FucycsXG4gICAgZm9udFNpemU6ICc5MCUnLFxuICB9XG5cbiAgY29udGVudFN0eWxlID0gY29udGVudFN0eWxlIHx8IHtcbiAgICBmb250RmFtaWx5OiAnTm90byBTYW5zJyxcbiAgICBmb250U2l6ZTogJzEwMCUnLFxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8Q29udGFpbmVyIHN0eWxlPXt7IGRpcmVjdGlvbiwgd2lkdGg6ICcxMDAlJywgaGVpZ2h0OiAnMTAwJScgfX0+XG4gICAgICB7cmVzb3VyY2VNc2cgP1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIDxkaXYgc3R5bGU9e01lc3NhZ2VTdHlsZX0+XG4gICAgICAgICAgPGRpdiBzdHlsZT17eyBmb250U2l6ZTogYCR7Zm9udFNpemV9JWAgfX0+IHtyZXNvdXJjZU1zZ30gPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA6XG4gICAgICAgIDxDb250ZW50PlxuICAgICAgICAgIDxzcGFuIHN0eWxlPXtyZWZTdHlsZX0+IHtjaGFwdGVyfTp7dmVyc2V9Jm5ic3A7PC9zcGFuPlxuICAgICAgICAgIDxzcGFuIHN0eWxlPXtjb250ZW50U3R5bGV9PlxuICAgICAgICAgICAgPFZlcnNlT2JqZWN0c1xuICAgICAgICAgICAgICB2ZXJzZUtleT17YCR7cmVmZXJlbmNlLmNoYXB0ZXJ9OiR7cmVmZXJlbmNlLnZlcnNlfWB9XG4gICAgICAgICAgICAgIHZlcnNlT2JqZWN0cz17dmVyc2VPYmplY3RzIHx8IFtdfVxuICAgICAgICAgICAgICBkaXNhYmxlV29yZFBvcG92ZXI9e2Rpc2FibGVXb3JkUG9wb3Zlcn1cbiAgICAgICAgICAgICAgZ2V0TGV4aWNvbkRhdGE9e2dldExleGljb25EYXRhfVxuICAgICAgICAgICAgICB0cmFuc2xhdGU9e3RyYW5zbGF0ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L0NvbnRlbnQ+XG4gICAgICB9XG4gICAgPC9Db250YWluZXI+XG4gIClcbn1cblxuU2NyaXB0dXJlUGFuZS5kZWZhdWx0UHJvcHMgPSB7IHZlcnNlT2JqZWN0czogW10gfVxuXG5leHBvcnQgZGVmYXVsdCBTY3JpcHR1cmVQYW5lXG4iXX0=
154
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1NjcmlwdHVyZVBhbmUvU2NyaXB0dXJlUGFuZS50c3giXSwibmFtZXMiOlsiUmVhY3QiLCJ1c2VEZWVwQ29tcGFyZUVmZmVjdCIsIlZlcnNlT2JqZWN0cyIsIlVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMiLCJTY3JpcHR1cmVSZWZlcmVuY2UiLCJWZXJzZU9iamVjdHNUeXBlIiwiZ2V0UmVzb3VyY2VNZXNzYWdlIiwiQ29udGFpbmVyIiwiQ29udGVudCIsIk1lc3NhZ2VTdHlsZSIsImRpcmVjdGlvbiIsIndoaXRlU3BhY2UiLCJsaW5lSGVpZ2h0IiwiZGlzcGxheSIsImp1c3RpZnlDb250ZW50IiwiYWxpZ25JdGVtcyIsImhlaWdodCIsIndpZHRoIiwiZm9udFNpemUiLCJmb250RmFtaWx5IiwiZm9udFdlaWdodCIsIlRleHRBcmVhU3R5bGUiLCJtaW5XaWR0aCIsIlNjcmlwdHVyZVBhbmUiLCJyZWZlcmVuY2UiLCJyZWZTdHlsZSIsImNvbnRlbnRTdHlsZSIsInZlcnNlT2JqZWN0cyIsImRpc2FibGVXb3JkUG9wb3ZlciIsInJlc291cmNlU3RhdHVzIiwicmVzb3VyY2VMaW5rIiwic2VydmVyIiwiaXNOVCIsImdldExleGljb25EYXRhIiwidHJhbnNsYXRlIiwiZWRpdGluZyIsInNldEVkaXRpbmciLCJzZXRWZXJzZUNoYW5nZWQiLCJ1c2VTdGF0ZSIsImluaXRpYWxWZXJzZVRleHQiLCJzZXRJbml0aWFsVmVyc2VUZXh0IiwicmVzb3VyY2VNc2ciLCJjaGFwdGVyIiwidmVyc2UiLCJjYWxjdWxhdGVkRm9udFNpemUiLCJ1c2VNZW1vIiwicGFyc2VGbG9hdCIsInRleHRBcmVhU3R5bGUiLCJ2ZXJzZVRleHQiLCJnZXRVc2ZtRm9yVmVyc2VDb250ZW50Iiwib25UZXh0Q2hhbmdlIiwiZXZlbnQiLCJuZXdUZXh0IiwidGFyZ2V0IiwidmFsdWUiLCJjaGFuZ2VkIiwib25CbHVyIiwiZGVmYXVsdFByb3BzIl0sIm1h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QUVTLE1BQUFBLFFBQVEsWUFBS0EsUUFBTDtBQUFWO0FBQVosVUFBNEN1QixXQUE1QyxNQURGLENBRlUsZ0JBTVYsb0JBQUMsT0FBRCxxQkFDRTtBQUFNLElBQUEsS0FBSyxFQUFFaEI7QUFBYixVQUF5QmlCLE9BQXpCLE9BQW1DQyxLQUFuQyxTQURGLGVBRUU7QUFBTSxJQUFBLEtBQUssRUFBRWpCLFlBQWI7QUFBMkIsSUFBQSxPQUFPLEVBQUUsbUJBQU07QUFDeENVLE1BQUFBLFVBQVUsSUFBSUEsVUFBVSxDQUFDLElBQUQsQ0FBeEI7QUFDRDtBQUZELEtBSUdELE9BQU8sZ0JBQ047QUFDRSxJQUFBLFlBQVksRUFBRUksZ0JBRGhCO0FBRUUsSUFBQSxRQUFRLEVBQUVXLFlBRlo7QUFHRSxJQUFBLE1BQU0sRUFBRU0sTUFIVjtBQUlFLElBQUEsS0FBSyxFQUFFVCxhQUpUO0FBS0UsSUFBQSxTQUFTO0FBTFgsSUFETSxnQkFTTixvQkFBQyxZQUFEO0FBQ0UsSUFBQSxZQUFZLEVBQUVwQixZQURoQjtBQUVFLElBQUEsa0JBQWtCLEVBQUVDLGtCQUZ0QjtBQUdFLElBQUEsY0FBYyxFQUFFSyxjQUhsQjtBQUlFLElBQUEsU0FBUyxFQUFFQztBQUpiLElBYkosQ0FGRixDQVBKLENBREY7QUFtQ0Q7O0FBRURYLGFBQWEsQ0FBQ2tDLFlBQWQsR0FBNkI7QUFBRTlCLEVBQUFBLFlBQVksRUFBRTtBQUFoQixDQUE3QjtBQUVBLGVBQWVKLGFBQWYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB1c2VEZWVwQ29tcGFyZUVmZmVjdCBmcm9tICd1c2UtZGVlcC1jb21wYXJlLWVmZmVjdCdcbmltcG9ydCB7IFZlcnNlT2JqZWN0cyB9IGZyb20gJ3NjcmlwdHVyZS1yZXNvdXJjZXMtcmNsJ1xuaW1wb3J0IHsgVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycyB9IGZyb20gJ3dvcmQtYWxpZ25lci1yY2wnXG5pbXBvcnQgeyBTY3JpcHR1cmVSZWZlcmVuY2UsIFZlcnNlT2JqZWN0c1R5cGUgfSBmcm9tICcuLi8uLi90eXBlcydcbmltcG9ydCB7IGdldFJlc291cmNlTWVzc2FnZSB9IGZyb20gJy4uLy4uL3V0aWxzJ1xuaW1wb3J0IHsgQ29udGFpbmVyLCBDb250ZW50IH0gZnJvbSAnLi9zdHlsZWQnXG5cbmludGVyZmFjZSBQcm9wcyB7XG4gIC8qKiBjdXJyZW50IHJlZmVyZW5jZSAqKi9cbiAgcmVmZXJlbmNlOiBTY3JpcHR1cmVSZWZlcmVuY2U7XG4gIC8qKiBvcHRpb25hbCBzdHlsZXMgdG8gdXNlIGZvciByZWZlcmVuY2UgKiovXG4gIHJlZlN0eWxlOiBhbnk7XG4gIC8qKiBvcHRpb25hbCBzdHlsZXMgdG8gdXNlIGZvciBjb250ZW50ICoqL1xuICBjb250ZW50U3R5bGU6IGFueTtcbiAgLyoqIGxhbmd1YWdlIGRpcmVjdGlvbiB0byB1c2UgKiovXG4gIGRpcmVjdGlvbjogc3RyaW5nfHVuZGVmaW5lZDtcbiAgLyoqIHZlcnNlT2JqZWN0cyAqKi9cbiAgdmVyc2VPYmplY3RzOiBWZXJzZU9iamVjdHNUeXBlfHVuZGVmaW5lZDtcbiAgLyoqIGlmIHRydWUgdGhlbiBkbyBub3QgZGlzcGxheSBsZXhpY29uIHBvcG92ZXIgb24gaG92ZXIgKiovXG4gIGRpc2FibGVXb3JkUG9wb3ZlcjogYm9vbGVhbnx1bmRlZmluZWQ7XG4gIC8qKiBvYmplY3QgdGhhdCBjb250YWlucyByZXNvdXJjZSBsb2FkaW5nIHN0YXR1cyBvciBmZXRjaGluZyBlcnJvcnMgKi9cbiAgcmVzb3VyY2VTdGF0dXM6IG9iamVjdHx1bmRlZmluZWQ7XG4gIC8qKiByZXNvdXJjZSB0aGF0IHdhcyBsb2FkZWQgKi9cbiAgcmVzb3VyY2VMaW5rOiBzdHJpbmd8dW5kZWZpbmVkO1xuICAvKiogc2VydmVyICovXG4gIHNlcnZlcjogc3RyaW5nfHVuZGVmaW5lZDtcbiAgLyoqIHRydWUgaWYgYnJvd3NpbmcgTlQgKi9cbiAgaXNOVDogYm9vbGVhbjtcbiAgLyoqIGZvbnQgc2l6ZSBmb3IgbWVzc2FnZXMgKi9cbiAgZm9udFNpemU6IG51bWJlcjtcbiAgLyoqIGZ1bmN0aW9uIHRvIGdldCBsYXRlc3QgbGV4aWNvbiBkYXRhICovXG4gIGdldExleGljb25EYXRhOiBGdW5jdGlvbjtcbiAgLyoqIG9wdGlvbmFsIGZ1bmN0aW9uIGZvciBsb2NhbGl6YXRpb24gKi9cbiAgdHJhbnNsYXRlOiBGdW5jdGlvbjtcbiAgLyoqIHRydWUgaWYgaW4gZWRpdCBtb2RlICovXG4gIGVkaXRpbmc6IGJvb2xlYW47XG4gIC8qKiBjYWxsYmFjayB0byBzZXQgZWRpdCBtb2RlICovXG4gIHNldEVkaXRpbmc6IEZ1bmN0aW9uO1xuICAvKiogY2FsbGJhY2sgdG8gc2V0IHRoYXQgdmVyc2UgaGFzIGNoYW5nZWQgKi9cbiAgc2V0VmVyc2VDaGFuZ2VkOiBGdW5jdGlvbjtcbn1cblxuY29uc3QgTWVzc2FnZVN0eWxlID0ge1xuICBkaXJlY3Rpb246ICdsdHInLFxuICB3aGl0ZVNwYWNlOiAncHJlLXdyYXAnLFxuICBsaW5lSGVpZ2h0OiAnbm9ybWFsJyxcbiAgZGlzcGxheTogJ2ZsZXgnLFxuICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICBoZWlnaHQ6ICcxMDAlJyxcbiAgd2lkdGg6ICcxMDAlJyxcbiAgZm9udFNpemU6ICcxNnB4JyxcbiAgZm9udEZhbWlseTogJ05vdG8gU2FucycsXG4gIGZvbnRXZWlnaHQ6ICdib2xkJyxcbn1cblxuY29uc3QgVGV4dEFyZWFTdHlsZSA9IHtcbiAgaGVpZ2h0OiAnNjAlJyxcbiAgd2lkdGg6ICcxMDAlJyxcbiAgbWluV2lkdGg6ICcyMjBweCcsXG4gIGZvbnRTaXplOiAnMTZweCcsXG59XG5cbmZ1bmN0aW9uIFNjcmlwdHVyZVBhbmUoe1xuICByZWZlcmVuY2UsXG4gIHJlZlN0eWxlLFxuICBkaXJlY3Rpb24sXG4gIGNvbnRlbnRTdHlsZSxcbiAgdmVyc2VPYmplY3RzLFxuICBkaXNhYmxlV29yZFBvcG92ZXIsXG4gIHJlc291cmNlU3RhdHVzLFxuICByZXNvdXJjZUxpbmssXG4gIHNlcnZlcixcbiAgaXNOVCxcbiAgZm9udFNpemUsXG4gIGdldExleGljb25EYXRhLFxuICB0cmFuc2xhdGUsXG4gIGVkaXRpbmcsXG4gIHNldEVkaXRpbmcsXG4gIHNldFZlcnNlQ2hhbmdlZCxcbn0gOiBQcm9wcykge1xuICBjb25zdCBbaW5pdGlhbFZlcnNlVGV4dCwgc2V0SW5pdGlhbFZlcnNlVGV4dF0gPSBSZWFjdC51c2VTdGF0ZShudWxsKVxuICBjb25zdCByZXNvdXJjZU1zZyA9IGdldFJlc291cmNlTWVzc2FnZShyZXNvdXJjZVN0YXR1cywgc2VydmVyLCByZXNvdXJjZUxpbmssIGlzTlQpXG4gIGNvbnN0IHsgY2hhcHRlciwgdmVyc2UgfSA9IHJlZmVyZW5jZVxuICBkaXJlY3Rpb24gPSBkaXJlY3Rpb24gfHwgJ2x0cidcblxuICByZWZTdHlsZSA9IHJlZlN0eWxlIHx8IHtcbiAgICBmb250RmFtaWx5OiAnTm90byBTYW5zJyxcbiAgICBmb250U2l6ZTogJzkwJScsXG4gIH1cblxuICBjb250ZW50U3R5bGUgPSBjb250ZW50U3R5bGUgfHwge1xuICAgIGZvbnRGYW1pbHk6ICdOb3RvIFNhbnMnLFxuICAgIGZvbnRTaXplOiAnMTAwJScsXG4gIH1cblxuICAvLyBkeW5hbWljYWxseSBhZGp1c3QgZm9udCBzaXplXG4gIGNvbnN0IGNhbGN1bGF0ZWRGb250U2l6ZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gKFxuICAgIHBhcnNlRmxvYXQoVGV4dEFyZWFTdHlsZS5mb250U2l6ZSkgKiBmb250U2l6ZSAvIDEwMCArICdweCdcbiAgKSwgW2ZvbnRTaXplXSlcblxuICBjb25zdCB0ZXh0QXJlYVN0eWxlID0ge1xuICAgIC4uLmNvbnRlbnRTdHlsZSxcbiAgICAuLi5UZXh0QXJlYVN0eWxlLFxuICAgIGZvbnRTaXplOiBjYWxjdWxhdGVkRm9udFNpemUsXG4gIH1cblxuICB1c2VEZWVwQ29tcGFyZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgdmVyc2VUZXh0ID0gVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycy5nZXRVc2ZtRm9yVmVyc2VDb250ZW50KHsgdmVyc2VPYmplY3RzIH0pXG4gICAgc2V0SW5pdGlhbFZlcnNlVGV4dCh2ZXJzZVRleHQpXG4gIH0sIFt7IHZlcnNlT2JqZWN0cyB9XSlcblxuICBmdW5jdGlvbiBvblRleHRDaGFuZ2UoZXZlbnQ6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxUZXh0QXJlYUVsZW1lbnQ+KSB7XG4gICAgY29uc3QgbmV3VGV4dCA9IGV2ZW50Py50YXJnZXQ/LnZhbHVlXG4gICAgY29uc3QgY2hhbmdlZCA9IG5ld1RleHQgIT09IGluaXRpYWxWZXJzZVRleHRcbiAgICBzZXRWZXJzZUNoYW5nZWQoY2hhbmdlZCwgbmV3VGV4dCwgaW5pdGlhbFZlcnNlVGV4dClcbiAgfVxuXG4gIGZ1bmN0aW9uIG9uQmx1cihldmVudDogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTFRleHRBcmVhRWxlbWVudD4pIHtcbiAgICBzZXRFZGl0aW5nKGZhbHNlKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8Q29udGFpbmVyIHN0eWxlPXt7IGRpcmVjdGlvbiwgd2lkdGg6ICcxMDAlJywgaGVpZ2h0OiAnMTAwJScgfX0+XG4gICAgICB7cmVzb3VyY2VNc2cgP1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIDxkaXYgc3R5bGU9e01lc3NhZ2VTdHlsZX0+XG4gICAgICAgICAgPGRpdiBzdHlsZT17eyBmb250U2l6ZTogYCR7Zm9udFNpemV9JWAgfX0+IHtyZXNvdXJjZU1zZ30gPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA6XG4gICAgICAgIDxDb250ZW50PlxuICAgICAgICAgIDxzcGFuIHN0eWxlPXtyZWZTdHlsZX0+IHtjaGFwdGVyfTp7dmVyc2V9Jm5ic3A7PC9zcGFuPlxuICAgICAgICAgIDxzcGFuIHN0eWxlPXtjb250ZW50U3R5bGV9IG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIHNldEVkaXRpbmcgJiYgc2V0RWRpdGluZyh0cnVlKVxuICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2VkaXRpbmcgP1xuICAgICAgICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU9e2luaXRpYWxWZXJzZVRleHR9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9e29uVGV4dENoYW5nZX1cbiAgICAgICAgICAgICAgICBvbkJsdXI9e29uQmx1cn1cbiAgICAgICAgICAgICAgICBzdHlsZT17dGV4dEFyZWFTdHlsZX1cbiAgICAgICAgICAgICAgICBhdXRvRm9jdXNcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgOlxuICAgICAgICAgICAgICA8VmVyc2VPYmplY3RzXG4gICAgICAgICAgICAgICAgdmVyc2VPYmplY3RzPXt2ZXJzZU9iamVjdHN9XG4gICAgICAgICAgICAgICAgZGlzYWJsZVdvcmRQb3BvdmVyPXtkaXNhYmxlV29yZFBvcG92ZXJ9XG4gICAgICAgICAgICAgICAgZ2V0TGV4aWNvbkRhdGE9e2dldExleGljb25EYXRhfVxuICAgICAgICAgICAgICAgIHRyYW5zbGF0ZT17dHJhbnNsYXRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9Db250ZW50PlxuICAgICAgfVxuICAgIDwvQ29udGFpbmVyPlxuICApXG59XG5cblNjcmlwdHVyZVBhbmUuZGVmYXVsdFByb3BzID0geyB2ZXJzZU9iamVjdHM6IFtdIH1cblxuZXhwb3J0IGRlZmF1bHQgU2NyaXB0dXJlUGFuZVxuIl19
@@ -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,9 +21,10 @@ 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';
27
+ import { getVerses } from 'bible-reference-range';
21
28
  import { getResourceLink } from '../utils';
22
29
  import { ServerConfig, ScriptureResource, ScriptureReference } from '../types';
23
30
  import { parseResourceManifest } from './parseResourceManifest';
@@ -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,6 +129,65 @@ 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
+ if (verse.verseObjects) {
141
+ var verseObjects_ = core.occurrenceInjectVerseObjects(verse.verseObjects);
142
+ verse.verseObjects = verseObjects_;
143
+ }
144
+
145
+ return verse;
146
+ });
147
+ }
148
+
149
+ return verses;
150
+ }
151
+
152
+ return null;
153
+ }
154
+
155
+ function updateVerse(chapter, verse, verseData) {
156
+ if (bookObjects) {
157
+ var bookObjects_ = _objectSpread({}, bookObjects); // shallow copy
158
+
159
+
160
+ if (bookObjects_ !== null && bookObjects_ !== void 0 && bookObjects_.chapters) {
161
+ bookObjects_.chapters = _objectSpread({}, bookObjects_.chapters); // shallow copy chapters
162
+
163
+ if (bookObjects_.chapters[chapter]) {
164
+ bookObjects_.chapters[chapter] = _objectSpread({}, bookObjects_.chapters[chapter]); // shallow copy verses
165
+
166
+ bookObjects_.chapters[chapter][verse] = verseData;
167
+ setBookObjects(bookObjects_);
168
+ return bookObjects_;
169
+ }
170
+ }
171
+ }
172
+
173
+ return null;
174
+ }
175
+
176
+ useEffect(function () {
177
+ if (bookObjects) {
178
+ var _ref5 = "".concat(reference.chapter, ":").concat(reference.verse);
179
+
180
+ var _versesForRef = getVersesForRef(_ref5, bookObjects);
181
+
182
+ setVersesForRef(_versesForRef);
183
+ } else {
184
+ setVersesForRef(null);
185
+ }
186
+ }, [bookObjects]);
187
+ useEffect(function () {
188
+ setBookObjects(content);
189
+ }, [content]);
190
+
103
191
  if (languageId === 'el-x-koine' || languageId === 'hbo') {
104
192
  verseObjects = core.occurrenceInjectVerseObjects(verseObjects);
105
193
  }
@@ -111,8 +199,14 @@ export function useScripture(_ref) {
111
199
  resourceLink: resourceLink,
112
200
  matchedVerse: matchedVerse,
113
201
  verseObjects: verseObjects,
202
+ bookObjects: bookObjects,
114
203
  resourceStatus: resourceStatus,
115
- fetchResponse: fetchResponse
204
+ fetchResponse: fetchResponse,
205
+ setBookObjects: setBookObjects,
206
+ getVersesForRef: getVersesForRef,
207
+ versesForRef: versesForRef,
208
+ updateVerse: updateVerse,
209
+ reloadResource: reloadResource
116
210
  };
117
211
  }
118
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2VTY3JpcHR1cmUudHN4Il0sIm5hbWVzIjpbInVzZUVmZmVjdCIsInVzZVN0YXRlIiwiY29yZSIsInVzZVJzcmMiLCJDT05URU5UX05PVF9GT1VORF9FUlJPUiIsIkVSUk9SX1NUQVRFIiwiSU5JVElBTElaRURfU1RBVEUiLCJJTlZBTElEX01BTklGRVNUX0VSUk9SIiwiTE9BRElOR19TVEFURSIsIk1BTklGRVNUX05PVF9MT0FERURfRVJST1IiLCJTQ1JJUFRVUkVfTk9UX0xPQURFRF9FUlJPUiIsImdldFJlc291cmNlTGluayIsIlNlcnZlckNvbmZpZyIsIlNjcmlwdHVyZVJlc291cmNlIiwiU2NyaXB0dXJlUmVmZXJlbmNlIiwicGFyc2VSZXNvdXJjZU1hbmlmZXN0IiwidXNlU2NyaXB0dXJlIiwiY29uZmlnIiwicmVmZXJlbmNlIiwicmVzb3VyY2VfIiwicmVzb3VyY2UiLCJyZXNvdXJjZUxpbmtfIiwicmVzb3VyY2VMaW5rIiwiaW5pdGlhbGl6ZWQiLCJzZXRJbml0aWFsaXplZCIsIm93bmVyIiwibGFuZ3VhZ2VJZCIsInByb2plY3RJZCIsImJyYW5jaCIsInJlZiIsInJlZl8iLCJyZXNvdXJjZUlkIiwib3B0aW9ucyIsImdldEJpYmxlSnNvbiIsInN0YXRlIiwiYmlibGVKc29uIiwibWF0Y2hlZFZlcnNlIiwiY29udGVudCIsImxvYWRpbmdSZXNvdXJjZSIsImxvYWRpbmdDb250ZW50IiwiZmV0Y2hSZXNwb25zZSIsInRpdGxlIiwidmVyc2lvbiIsInZlcnNlT2JqZWN0cyIsImxvYWRpbmciLCJjb250ZW50Tm90Rm91bmRFcnJvciIsInNjcmlwdHVyZU5vdExvYWRlZEVycm9yIiwibWFuaWZlc3ROb3RGb3VuZEVycm9yIiwibWFuaWZlc3QiLCJpbnZhbGlkTWFuaWZlc3RFcnJvciIsImVycm9yIiwicmVzb3VyY2VTdGF0dXMiLCJvY2N1cnJlbmNlSW5qZWN0VmVyc2VPYmplY3RzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7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QUEsWUFBWSxFQUFaQSxZQUxLO0FBTUxPLElBQUFBLFlBQVksRUFBWkEsWUFOSztBQU9MUSxJQUFBQSxjQUFjLEVBQWRBLGNBUEs7QUFRTFgsSUFBQUEsYUFBYSxFQUFiQTtBQVJLLEdBQVA7QUFVRCIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1pZ25vcmVcbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIGNvcmUsXG4gIHVzZVJzcmMsXG59IGZyb20gJ3NjcmlwdHVyZS1yZXNvdXJjZXMtcmNsJ1xuaW1wb3J0IHtcbiAgQ09OVEVOVF9OT1RfRk9VTkRfRVJST1IsXG4gIEVSUk9SX1NUQVRFLFxuICBJTklUSUFMSVpFRF9TVEFURSxcbiAgSU5WQUxJRF9NQU5JRkVTVF9FUlJPUixcbiAgTE9BRElOR19TVEFURSxcbiAgTUFOSUZFU1RfTk9UX0xPQURFRF9FUlJPUixcbiAgU0NSSVBUVVJFX05PVF9MT0FERURfRVJST1IsXG59IGZyb20gJ3RyYW5zbGF0aW9uLWhlbHBzLXJjbCdcbmltcG9ydCB7IGdldFJlc291cmNlTGluayB9IGZyb20gJy4uL3V0aWxzJ1xuaW1wb3J0IHtcbiAgU2VydmVyQ29uZmlnLFxuICBTY3JpcHR1cmVSZXNvdXJjZSxcbiAgU2NyaXB0dXJlUmVmZXJlbmNlLFxufSBmcm9tICcuLi90eXBlcydcbmltcG9ydCB7IHBhcnNlUmVzb3VyY2VNYW5pZmVzdCB9IGZyb20gJy4vcGFyc2VSZXNvdXJjZU1hbmlmZXN0J1xuXG5pbnRlcmZhY2UgUHJvcHMge1xuICAvKiogcmVmZXJlbmNlIGZvciBzY3JpcHR1cmUgKiovXG4gIHJlZmVyZW5jZTogU2NyaXB0dXJlUmVmZXJlbmNlO1xuICAvKiogd2hlcmUgdG8gZ2V0IGRhdGEgKiovXG4gIGNvbmZpZzogU2VydmVyQ29uZmlnO1xuICAvKiogb3B0aW9uYWwgZGlyZWN0IHBhdGggdG8gYmlibGUgcmVzb3VyY2UsIGluIGZvcm1hdCAke293bmVyfS8ke2xhbmd1YWdlSWR9LyR7cHJvamVjdElkfS8ke2JyYW5jaH0gKiovXG4gIHJlc291cmNlTGluazogc3RyaW5nfHVuZGVmaW5lZDtcbiAgLyoqIG9wdGlvbmFsIHJlc291cmNlIG9iamVjdCB0byB1c2UgdG8gYnVpbGQgcmVzb3VyY2VMaW5rICoqL1xuICByZXNvdXJjZTogU2NyaXB0dXJlUmVzb3VyY2V8dW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlU2NyaXB0dXJlKHtcbiAgY29uZmlnLFxuICByZWZlcmVuY2UsXG4gIHJlc291cmNlOiByZXNvdXJjZV8sXG4gIHJlc291cmNlTGluazogcmVzb3VyY2VMaW5rXyxcbn0gOiBQcm9wcykge1xuICBjb25zdCBbaW5pdGlhbGl6ZWQsIHNldEluaXRpYWxpemVkXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBsZXQgcmVzb3VyY2VMaW5rID0gcmVzb3VyY2VMaW5rX1xuXG4gIGlmICghcmVzb3VyY2VMaW5rXyAmJiByZXNvdXJjZV8pIHtcbiAgICBjb25zdCB7XG4gICAgICBvd25lcixcbiAgICAgIGxhbmd1YWdlSWQsXG4gICAgICBwcm9qZWN0SWQsXG4gICAgICBicmFuY2ggPSAnbWFzdGVyJyxcbiAgICAgIHJlZiA9IG51bGwsXG4gICAgfSA9IHJlc291cmNlXyB8fCB7fVxuICAgIGNvbnN0IHJlZl8gPSByZWYgfHwgYnJhbmNoXG4gICAgcmVzb3VyY2VMaW5rID0gZ2V0UmVzb3VyY2VMaW5rKHtcbiAgICAgIG93bmVyLFxuICAgICAgbGFuZ3VhZ2VJZCxcbiAgICAgIHJlc291cmNlSWQ6IHByb2plY3RJZCxcbiAgICAgIHJlZjogcmVmXyxcbiAgICB9KVxuICB9XG5cbiAgY29uc3Qgb3B0aW9ucyA9IHsgZ2V0QmlibGVKc29uOiB0cnVlIH1cblxuICBjb25zdCB7XG4gICAgc3RhdGU6IHtcbiAgICAgIGJpYmxlSnNvbixcbiAgICAgIG1hdGNoZWRWZXJzZSxcbiAgICAgIHJlc291cmNlLFxuICAgICAgY29udGVudCxcbiAgICAgIGxvYWRpbmdSZXNvdXJjZSxcbiAgICAgIGxvYWRpbmdDb250ZW50LFxuICAgICAgZmV0Y2hSZXNwb25zZSxcbiAgICB9LFxuICB9ID0gdXNlUnNyYyh7XG4gICAgY29uZmlnLCByZWZlcmVuY2UsIHJlc291cmNlTGluaywgb3B0aW9ucyxcbiAgfSlcblxuICBjb25zdCB7IHRpdGxlLCB2ZXJzaW9uIH0gPSBwYXJzZVJlc291cmNlTWFuaWZlc3QocmVzb3VyY2UpXG4gIGxldCB7IHZlcnNlT2JqZWN0cyB9ID0gYmlibGVKc29uIHx8IHt9XG4gIGNvbnN0IHsgbGFuZ3VhZ2VJZCB9ID0gcmVzb3VyY2VfIHx8IHt9XG4gIGNvbnN0IGxvYWRpbmcgPSBsb2FkaW5nUmVzb3VyY2UgfHwgbG9hZGluZ0NvbnRlbnRcbiAgY29uc3QgY29udGVudE5vdEZvdW5kRXJyb3IgPSAhY29udGVudFxuICBjb25zdCBzY3JpcHR1cmVOb3RMb2FkZWRFcnJvciA9ICFiaWJsZUpzb25cbiAgY29uc3QgbWFuaWZlc3ROb3RGb3VuZEVycm9yID0gIXJlc291cmNlPy5tYW5pZmVzdFxuICBjb25zdCBpbnZhbGlkTWFuaWZlc3RFcnJvciA9ICF0aXRsZSB8fCAhdmVyc2lvbiB8fCAhbGFuZ3VhZ2VJZFxuICBjb25zdCBlcnJvciA9IGluaXRpYWxpemVkICYmICFsb2FkaW5nICYmXG4gICAgKGNvbnRlbnROb3RGb3VuZEVycm9yIHx8IHNjcmlwdHVyZU5vdExvYWRlZEVycm9yIHx8IG1hbmlmZXN0Tm90Rm91bmRFcnJvciB8fCBpbnZhbGlkTWFuaWZlc3RFcnJvcilcbiAgY29uc3QgcmVzb3VyY2VTdGF0dXMgPSB7XG4gICAgW0xPQURJTkdfU1RBVEVdOiBsb2FkaW5nLFxuICAgIFtDT05URU5UX05PVF9GT1VORF9FUlJPUl06IGNvbnRlbnROb3RGb3VuZEVycm9yLFxuICAgIFtTQ1JJUFRVUkVfTk9UX0xPQURFRF9FUlJPUl06IHNjcmlwdHVyZU5vdExvYWRlZEVycm9yLFxuICAgIFtNQU5JRkVTVF9OT1RfTE9BREVEX0VSUk9SXTogbWFuaWZlc3ROb3RGb3VuZEVycm9yLFxuICAgIFtJTlZBTElEX01BTklGRVNUX0VSUk9SXTogaW52YWxpZE1hbmlmZXN0RXJyb3IsXG4gICAgW0VSUk9SX1NUQVRFXTogZXJyb3IsXG4gICAgW0lOSVRJQUxJWkVEX1NUQVRFXTogaW5pdGlhbGl6ZWQsXG4gIH1cblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghaW5pdGlhbGl6ZWQpIHtcbiAgICAgIGlmIChsb2FkaW5nKSB7IC8vIG9uY2UgZmlyc3QgbG9hZCBoYXMgYmVndW4sIHdlIGFyZSBpbml0aWFsaXplZFxuICAgICAgICBzZXRJbml0aWFsaXplZCh0cnVlKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2xvYWRpbmddKVxuXG4gIGlmIChsYW5ndWFnZUlkID09PSAnZWwteC1rb2luZScgfHwgbGFuZ3VhZ2VJZCA9PT0gJ2hibycpIHtcbiAgICB2ZXJzZU9iamVjdHMgPSBjb3JlLm9jY3VycmVuY2VJbmplY3RWZXJzZU9iamVjdHModmVyc2VPYmplY3RzKVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB0aXRsZSxcbiAgICB2ZXJzaW9uLFxuICAgIHJlZmVyZW5jZSxcbiAgICByZXNvdXJjZUxpbmssXG4gICAgbWF0Y2hlZFZlcnNlLFxuICAgIHZlcnNlT2JqZWN0cyxcbiAgICByZXNvdXJjZVN0YXR1cyxcbiAgICBmZXRjaFJlc3BvbnNlLFxuICB9XG59XG4iXX0=
212
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2VTY3JpcHR1cmUudHN4Il0sIm5hbWVzIjpbInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VTdGF0ZSIsImNvcmUiLCJ1c2VSc3JjIiwiQ09OVEVOVF9OT1RfRk9VTkRfRVJST1IiLCJFUlJPUl9TVEFURSIsIklOSVRJQUxJWkVEX1NUQVRFIiwiSU5WQUxJRF9NQU5JRkVTVF9FUlJPUiIsIkxPQURJTkdfU1RBVEUiLCJNQU5JRkVTVF9OT1RfTE9BREVEX0VSUk9SIiwiU0NSSVBUVVJFX05PVF9MT0FERURfRVJST1IiLCJnZXRWZXJzZXMiLCJnZXRSZXNvdXJjZUxpbmsiLCJTZXJ2ZXJDb25maWciLCJTY3JpcHR1cmVSZXNvdXJjZSIsIlNjcmlwdHVyZVJlZmVyZW5jZSIsInBhcnNlUmVzb3VyY2VNYW5pZmVzdCIsInVzZVNjcmlwdHVyZSIsImNvbmZpZyIsInJlZmVyZW5jZSIsInJlc291cmNlXyIsInJlc291cmNlIiwicmVzb3VyY2VMaW5rXyIsInJlc291cmNlTGluayIsIndob2xlQm9vayIsImluaXRpYWxpemVkIiwic2V0SW5pdGlhbGl6ZWQiLCJib29rT2JqZWN0cyIsInNldEJvb2tPYmplY3RzIiwidmVyc2VzRm9yUmVmIiwic2V0VmVyc2VzRm9yUmVmIiwib3duZXIiLCJsYW5ndWFnZUlkIiwicHJvamVjdElkIiwiYnJhbmNoIiwicmVmIiwicmVmXyIsInJlc291cmNlSWQiLCJvcHRpb25zIiwiZ2V0QmlibGVKc29uIiwiYm9va1JlZiIsImNoYXB0ZXIiLCJzdGF0ZSIsImJpYmxlSnNvbiIsIm1hdGNoZWRWZXJzZSIsImNvbnRlbnQiLCJsb2FkaW5nUmVzb3VyY2UiLCJsb2FkaW5nQ29udGVudCIsImZldGNoUmVzcG9uc2UiLCJyZWxvYWRSZXNvdXJjZSIsImFjdGlvbnMiLCJ0aXRsZSIsInZlcnNpb24iLCJ2ZXJzZU9iamVjdHMiLCJsb2FkaW5nIiwiY29udGVudE5vdEZvdW5kRXJyb3IiLCJzY3JpcHR1cmVOb3RMb2FkZWRFcnJvciIsIm1hbmlmZXN0Tm90Rm91bmRFcnJvciIsIm1hbmlmZXN0IiwiaW52YWxpZE1hbmlmZXN0RXJyb3IiLCJlcnJvciIsInJlc291cmNlU3RhdHVzIiwiZ2V0VmVyc2VzRm9yUmVmIiwiY29udGVudF8iLCJ2ZXJzZXMiLCJjaGFwdGVycyIsIm1hcCIsInZlcnNlIiwidmVyc2VPYmplY3RzXyIsIm9jY3VycmVuY2VJbmplY3RWZXJzZU9iamVjdHMiLCJ1cGRhdGVWZXJzZSIsInZlcnNlRGF0YSIsImJvb2tPYmplY3RzXyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0EsU0FBU0EsU0FBVCxFQUFvQkMsT0FBcEIsRUFBNkJDLFFBQTdCLFFBQTZDLE9BQTdDO0FBQ0EsU0FDRUMsSUFERixFQUVFQyxPQUZGLFFBR08seUJBSFA7QUFJQSxTQUNFQyx1QkFERixFQUVFQyxXQUZGLEVBR0VDLGlCQUhGLEVBSUVDLHNCQUpGLEVBS0VDLGFBTEYsRUFNRUMseUJBTkYsRUFPRUMsMEJBUEYsUUFRTyx1QkFSUDtBQVNBLFNBQVNDLFNBQVQsUUFBMEIsdUJBQTFCO0FBQ0EsU0FBU0MsZUFBVCxRQUFnQyxVQUFoQztBQUNBLFNBQ0VDLFlBREYsRUFFRUMsaUJBRkYsRUFHRUMsa0JBSEYsUUFJTyxVQUpQO0FBS0EsU0FBU0MscUJBQVQsUUFBc0MseUJBQXRDO0FBZUEsT0FBTyxTQUFTQyxZQUFULE9BTUk7QUFBQTs7QUFBQSxNQUxUQyxNQUtTLFFBTFRBLE1BS1M7QUFBQSxNQUpUQyxTQUlTLFFBSlRBLFNBSVM7QUFBQSxNQUhDQyxTQUdELFFBSFRDLFFBR1M7QUFBQSxNQUZLQyxhQUVMLFFBRlRDLFlBRVM7QUFBQSw0QkFEVEMsU0FDUztBQUFBLE1BRFRBLFNBQ1MsK0JBREcsS0FDSDs7QUFBQSxrQkFDNkJ2QixRQUFRLENBQUMsS0FBRCxDQURyQztBQUFBO0FBQUEsTUFDRndCLFdBREU7QUFBQSxNQUNXQyxjQURYOztBQUFBLG1CQUU2QnpCLFFBQVEsQ0FBQyxJQUFE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QUFDRCxhQUFELENBQWY7QUFDRCxLQUpELE1BSU87QUFDTEMsTUFBQUEsZUFBZSxDQUFDLElBQUQsQ0FBZjtBQUNEO0FBQ0YsR0FSUSxFQVFOLENBQUNILFdBQUQsQ0FSTSxDQUFUO0FBVUE1QixFQUFBQSxTQUFTLENBQUMsWUFBTTtBQUNkNkIsSUFBQUEsY0FBYyxDQUFDaUIsT0FBRCxDQUFkO0FBQ0QsR0FGUSxFQUVOLENBQUNBLE9BQUQsQ0FGTSxDQUFUOztBQUlBLE1BQUliLFVBQVUsS0FBSyxZQUFmLElBQStCQSxVQUFVLEtBQUssS0FBbEQsRUFBeUQ7QUFDdkRxQixJQUFBQSxZQUFZLEdBQUduRCxJQUFJLENBQUNtRSw0QkFBTCxDQUFrQ2hCLFlBQWxDLENBQWY7QUFDRDs7QUFFRCxTQUFPO0FBQ0xGLElBQUFBLEtBQUssRUFBTEEsS0FESztBQUVMQyxJQUFBQSxPQUFPLEVBQVBBLE9BRks7QUFHTGpDLElBQUFBLFNBQVMsRUFBVEEsU0FISztBQUlMSSxJQUFBQSxZQUFZLEVBQVpBLFlBSks7QUFLTHFCLElBQUFBLFlBQVksRUFBWkEsWUFMSztBQU1MUyxJQUFBQSxZQUFZLEVBQVpBLFlBTks7QUFPTDFCLElBQUFBLFdBQVcsRUFBWEEsV0FQSztBQVFMa0MsSUFBQUEsY0FBYyxFQUFkQSxjQVJLO0FBU0xiLElBQUFBLGFBQWEsRUFBYkEsYUFUSztBQVVMcEIsSUFBQUEsY0FBYyxFQUFkQSxjQVZLO0FBV0xrQyxJQUFBQSxlQUFlLEVBQWZBLGVBWEs7QUFZTGpDLElBQUFBLFlBQVksRUFBWkEsWUFaSztBQWFMeUMsSUFBQUEsV0FBVyxFQUFYQSxXQWJLO0FBY0xyQixJQUFBQSxjQUFjLEVBQWRBO0FBZEssR0FBUDtBQWdCRCIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1pZ25vcmVcbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIGNvcmUsXG4gIHVzZVJzcmMsXG59IGZyb20gJ3NjcmlwdHVyZS1yZXNvdXJjZXMtcmNsJ1xuaW1wb3J0IHtcbiAgQ09OVEVOVF9OT1RfRk9VTkRfRVJST1IsXG4gIEVSUk9SX1NUQVRFLFxuICBJTklUSUFMSVpFRF9TVEFURSxcbiAgSU5WQUxJRF9NQU5JRkVTVF9FUlJPUixcbiAgTE9BRElOR19TVEFURSxcbiAgTUFOSUZFU1RfTk9UX0xPQURFRF9FUlJPUixcbiAgU0NSSVBUVVJFX05PVF9MT0FERURfRVJST1IsXG59IGZyb20gJ3RyYW5zbGF0aW9uLWhlbHBzLXJjbCdcbmltcG9ydCB7IGdldFZlcnNlcyB9IGZyb20gJ2JpYmxlLXJlZmVyZW5jZS1yYW5nZSdcbmltcG9ydCB7IGdldFJlc291cmNlTGluayB9IGZyb20gJy4uL3V0aWxzJ1xuaW1wb3J0IHtcbiAgU2VydmVyQ29uZmlnLFxuICBTY3JpcHR1cmVSZXNvdXJjZSxcbiAgU2NyaXB0dXJlUmVmZXJlbmNlLFxufSBmcm9tICcuLi90eXBlcydcbmltcG9ydCB7IHBhcnNlUmVzb3VyY2VNYW5pZmVzdCB9IGZyb20gJy4vcGFyc2VSZXNvdXJjZU1hbmlmZXN0J1xuXG5pbnRlcmZhY2UgUHJvcHMge1xuICAvKiogcmVmZXJlbmNlIGZvciBzY3JpcHR1cmUgKiovXG4gIHJlZmVyZW5jZTogU2NyaXB0dXJlUmVmZXJlbmNlO1xuICAvKiogd2hlcmUgdG8gZ2V0IGRhdGEgKiovXG4gIGNvbmZpZzogU2VydmVyQ29uZmlnO1xuICAvKiogb3B0aW9uYWwgZGlyZWN0IHBhdGggdG8gYmlibGUgcmVzb3VyY2UsIGluIGZvcm1hdCAke293bmVyfS8ke2xhbmd1YWdlSWR9LyR7cHJvamVjdElkfS8ke2JyYW5jaH0gKiovXG4gIHJlc291cmNlTGluazogc3RyaW5nfHVuZGVmaW5lZDtcbiAgLyoqIG9wdGlvbmFsIHJlc291cmNlIG9iamVjdCB0byB1c2UgdG8gYnVpbGQgcmVzb3VyY2VMaW5rICoqL1xuICByZXNvdXJjZTogU2NyaXB0dXJlUmVzb3VyY2V8dW5kZWZpbmVkO1xuICAvKiogaWYgdHJ1ZSB0aGVuIGZldGNoIHRoZSBlbnRpcmUgYm9vayAqL1xuICB3aG9sZUJvb2s6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VTY3JpcHR1cmUoe1xuICBjb25maWcsXG4gIHJlZmVyZW5jZSxcbiAgcmVzb3VyY2U6IHJlc291cmNlXyxcbiAgcmVzb3VyY2VMaW5rOiByZXNvdXJjZUxpbmtfLFxuICB3aG9sZUJvb2sgPSBmYWxzZSxcbn0gOiBQcm9wcykge1xuICBjb25zdCBbaW5pdGlhbGl6ZWQsIHNldEluaXRpYWxpemVkXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbYm9va09iamVjdHMsIHNldEJvb2tPYmplY3RzXSA9IHVzZVN0YXRlKG51bGwpXG4gIGNvbnN0IFt2ZXJzZXNGb3JSZWYsIHNldFZlcnNlc0ZvclJlZl0gPSB1c2VTdGF0ZShudWxsKVxuICBsZXQgcmVzb3VyY2VMaW5rID0gcmVzb3VyY2VMaW5rX1xuXG4gIGlmICghcmVzb3VyY2VMaW5rXyAmJiByZXNvdXJjZV8pIHtcbiAgICBjb25zdCB7XG4gICAgICBvd25lcixcbiAgICAgIGxhbmd1YWdlSWQsXG4gICAgICBwcm9qZWN0SWQsXG4gICAgICBicmFuY2ggPSAnbWFzdGVyJyxcbiAgICAgIHJlZiA9IG51bGwsXG4gICAgfSA9IHJlc291cmNlXyB8fCB7fVxuICAgIGNvbnN0IHJlZl8gPSByZWYgfHwgYnJhbmNoXG4gICAgcmVzb3VyY2VMaW5rID0gZ2V0UmVzb3VyY2VMaW5rKHtcbiAgICAgIG93bmVyLFxuICAgICAgbGFuZ3VhZ2VJZCxcbiAgICAgIHJlc291cmNlSWQ6IHByb2plY3RJZCxcbiAgICAgIHJlZjogcmVmXyxcbiAgICB9KVxuICB9XG5cbiAgY29uc3Qgb3B0aW9ucyA9IHsgZ2V0QmlibGVKc29uOiB0cnVlIH1cbiAgY29uc3QgYm9va1JlZiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IGJvb2tSZWYgPSB7IC4uLnJlZmVyZW5jZSB9XG5cbiAgICBpZiAod2hvbGVCb29rKSB7XG4gICAgICBkZWxldGUgYm9va1JlZi5jaGFwdGVyIC8vIHJlbW92ZSB0aGUgY2hhcHRlciBzbyB0aGUgd2hvbGUgYm9vayBpcyBmZXRjaGVkXG4gICAgfVxuICAgIHJldHVybiBib29rUmVmXG4gIH0sIFtyZWZlcmVuY2UsIHdob2xlQm9va10pXG5cbiAgY29uc3Qge1xuICAgIHN0YXRlOiB7XG4gICAgICBiaWJsZUpzb24sXG4gICAgICBtYXRjaGVkVmVyc2UsXG4gICAgICByZXNvdXJjZSxcbiAgICAgIGNvbnRlbnQsXG4gICAgICBsb2FkaW5nUmVzb3VyY2UsXG4gICAgICBsb2FkaW5nQ29udGVudCxcbiAgICAgIGZldGNoUmVzcG9uc2UsXG4gICAgfSxcbiAgICBhY3Rpb25zOiB7IHJlbG9hZFJlc291cmNlIH0sXG4gIH0gPSB1c2VSc3JjKHtcbiAgICBjb25maWcsIHJlZmVyZW5jZTogYm9va1JlZiwgcmVzb3VyY2VMaW5rLCBvcHRpb25zLFxuICB9KVxuXG4gIGNvbnN0IHsgdGl0bGUsIHZlcnNpb24gfSA9IHBhcnNlUmVzb3VyY2VNYW5pZmVzdChyZXNvdXJjZSlcbiAgbGV0IHsgdmVyc2VPYmplY3RzIH0gPSBiaWJsZUpzb24gfHwge31cbiAgY29uc3QgeyBsYW5ndWFnZUlkIH0gPSByZXNvdXJjZV8gfHwge31cbiAgY29uc3QgbG9hZGluZyA9IGxvYWRpbmdSZXNvdXJjZSB8fCBsb2FkaW5nQ29udGVudFxuICBjb25zdCBjb250ZW50Tm90Rm91bmRFcnJvciA9ICFjb250ZW50XG4gIGNvbnN0IHNjcmlwdHVyZU5vdExvYWRlZEVycm9yID0gIWJpYmxlSnNvblxuICBjb25zdCBtYW5pZmVzdE5vdEZvdW5kRXJyb3IgPSAhcmVzb3VyY2U/Lm1hbmlmZXN0XG4gIGNvbnN0IGludmFsaWRNYW5pZmVzdEVycm9yID0gIXRpdGxlIHx8ICF2ZXJzaW9uIHx8ICFsYW5ndWFnZUlkXG4gIGNvbnN0IGVycm9yID0gaW5pdGlhbGl6ZWQgJiYgIWxvYWRpbmcgJiZcbiAgICAoY29udGVudE5vdEZvdW5kRXJyb3IgfHwgc2NyaXB0dXJlTm90TG9hZGVkRXJyb3IgfHwgbWFuaWZlc3ROb3RGb3VuZEVycm9yIHx8IGludmFsaWRNYW5pZmVzdEVycm9yKVxuICBjb25zdCByZXNvdXJjZVN0YXR1cyA9IHtcbiAgICBbTE9BRElOR19TVEFURV06IGxvYWRpbmcsXG4gICAgW0NPTlRFTlRfTk9UX0ZPVU5EX0VSUk9SXTogY29udGVudE5vdEZvdW5kRXJyb3IsXG4gICAgW1NDUklQVFVSRV9OT1RfTE9BREVEX0VSUk9SXTogc2NyaXB0dXJlTm90TG9hZGVkRXJyb3IsXG4gICAgW01BTklGRVNUX05PVF9MT0FERURfRVJST1JdOiBtYW5pZmVzdE5vdEZvdW5kRXJyb3IsXG4gICAgW0lOVkFMSURfTUFOSUZFU1RfRVJST1JdOiBpbnZhbGlkTWFuaWZlc3RFcnJvcixcbiAgICBbRVJST1JfU1RBVEVdOiBlcnJvcixcbiAgICBbSU5JVElBTElaRURfU1RBVEVdOiBpbml0aWFsaXplZCxcbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFpbml0aWFsaXplZCkge1xuICAgICAgaWYgKGxvYWRpbmcpIHsgLy8gb25jZSBmaXJzdCBsb2FkIGhhcyBiZWd1biwgd2UgYXJlIGluaXRpYWxpemVkXG4gICAgICAgIHNldEluaXRpYWxpemVkKHRydWUpXG4gICAgICB9XG4gICAgfVxuICB9LCBbbG9hZGluZ10pXG5cbiAgZnVuY3Rpb24gZ2V0VmVyc2VzRm9yUmVmKHJlZiwgY29udGVudF8gPSBib29rT2JqZWN0cykge1xuICAgIGlmIChjb250ZW50Xykge1xuICAgICAgbGV0IHZlcnNlcyA9IGdldFZlcnNlcyhjb250ZW50Xy5jaGFwdGVycywgcmVmKVxuXG4gICAgICBpZiAobGFuZ3VhZ2VJZCA9PT0gJ2VsLXgta29pbmUnIHx8IGxhbmd1YWdlSWQgPT09ICdoYm8nKSB7XG4gICAgICAgIHZlcnNlcyA9IHZlcnNlcy5tYXAodmVyc2UgPT4ge1xuICAgICAgICAgIGlmICh2ZXJzZS52ZXJzZU9iamVjdHMpIHtcbiAgICAgICAgICAgIGNvbnN0IHZlcnNlT2JqZWN0c18gPSBjb3JlLm9jY3VycmVuY2VJbmplY3RWZXJzZU9iamVjdHModmVyc2UudmVyc2VPYmplY3RzKVxuICAgICAgICAgICAgdmVyc2UudmVyc2VPYmplY3RzID0gdmVyc2VPYmplY3RzX1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdmVyc2VcbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHZlcnNlc1xuICAgIH1cbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgZnVuY3Rpb24gdXBkYXRlVmVyc2UoY2hhcHRlciwgdmVyc2UsIHZlcnNlRGF0YSkge1xuICAgIGlmIChib29rT2JqZWN0cykge1xuICAgICAgY29uc3QgYm9va09iamVjdHNfID0geyAuLi5ib29rT2JqZWN0cyB9IC8vIHNoYWxsb3cgY29weVxuXG4gICAgICBpZiAoYm9va09iamVjdHNfPy5jaGFwdGVycykge1xuICAgICAgICBib29rT2JqZWN0c18uY2hhcHRlcnMgPSB7IC4uLmJvb2tPYmplY3RzXy5jaGFwdGVycyB9IC8vIHNoYWxsb3cgY29weSBjaGFwdGVyc1xuXG4gICAgICAgIGlmIChib29rT2JqZWN0c18uY2hhcHRlcnNbY2hhcHRlcl0pIHtcbiAgICAgICAgICBib29rT2JqZWN0c18uY2hhcHRlcnNbY2hhcHRlcl0gPSB7IC4uLmJvb2tPYmplY3RzXy5jaGFwdGVyc1tjaGFwdGVyXSB9IC8vIHNoYWxsb3cgY29weSB2ZXJzZXNcbiAgICAgICAgICBib29rT2JqZWN0c18uY2hhcHRlcnNbY2hhcHRlcl1bdmVyc2VdID0gdmVyc2VEYXRhXG4gICAgICAgICAgc2V0Qm9va09iamVjdHMoYm9va09iamVjdHNfKVxuICAgICAgICAgIHJldHVybiBib29rT2JqZWN0c19cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoYm9va09iamVjdHMpIHtcbiAgICAgIGNvbnN0IHJlZiA9IGAke3JlZmVyZW5jZS5jaGFwdGVyfToke3JlZmVyZW5jZS52ZXJzZX1gXG4gICAgICBjb25zdCB2ZXJzZXNGb3JSZWYgPSBnZXRWZXJzZXNGb3JSZWYocmVmLCBib29rT2JqZWN0cylcbiAgICAgIHNldFZlcnNlc0ZvclJlZih2ZXJzZXNGb3JSZWYpXG4gICAgfSBlbHNlIHtcbiAgICAgIHNldFZlcnNlc0ZvclJlZihudWxsKVxuICAgIH1cbiAgfSwgW2Jvb2tPYmplY3RzXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldEJvb2tPYmplY3RzKGNvbnRlbnQpXG4gIH0sIFtjb250ZW50XSlcblxuICBpZiAobGFuZ3VhZ2VJZCA9PT0gJ2VsLXgta29pbmUnIHx8IGxhbmd1YWdlSWQgPT09ICdoYm8nKSB7XG4gICAgdmVyc2VPYmplY3RzID0gY29yZS5vY2N1cnJlbmNlSW5qZWN0VmVyc2VPYmplY3RzKHZlcnNlT2JqZWN0cylcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgdGl0bGUsXG4gICAgdmVyc2lvbixcbiAgICByZWZlcmVuY2UsXG4gICAgcmVzb3VyY2VMaW5rLFxuICAgIG1hdGNoZWRWZXJzZSxcbiAgICB2ZXJzZU9iamVjdHMsXG4gICAgYm9va09iamVjdHMsXG4gICAgcmVzb3VyY2VTdGF0dXMsXG4gICAgZmV0Y2hSZXNwb25zZSxcbiAgICBzZXRCb29rT2JqZWN0cyxcbiAgICBnZXRWZXJzZXNGb3JSZWYsXG4gICAgdmVyc2VzRm9yUmVmLFxuICAgIHVwZGF0ZVZlcnNlLFxuICAgIHJlbG9hZFJlc291cmNlLFxuICB9XG59XG4iXX0=