// Metro module 326 (f327). import _objectWithoutProperties from "./_objectWithoutProperties"; import _classCallCheck from "./_classCallCheck"; import _createClass from "./_createClass"; import _possibleConstructorReturn from "./_possibleConstructorReturn"; import _getPrototypeOf from "./_getPrototypeOf"; import _inherits from "./_inherits"; import { PureComponent, useState, useEffect, isValidElement } from "react"; import Module38 from "./Module38"; import * as _elementsThatOverlapOffsets from "./elementsThatOverlapOffsets"; import VirtualizedList from "./VirtualizedList"; let ItemWithSeparator, _excluded; let VirtualizedSectionList; let env341 = {}; env341[15] = function _isNativeReflectConstruct() { let c12244_0; try { c12244_0 = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {})); } catch ($e) {} const _isNativeReflectConstruct2 = function _isNativeReflectConstruct() { return !!c12244_0; }; env341[15] = _isNativeReflectConstruct2; return _isNativeReflectConstruct2(); }; ItemWithSeparator = function ItemWithSeparator(props) { const { LeadingSeparatorComponent, SeparatorComponent, cellKey, prevCellKey, setSelfHighlightCallback, updateHighlightFor, setSelfUpdatePropsCallback, updatePropsFor, item, index, section, inverted } = props; let [highlighted2, c12245_8] = useState(false); let [highlighted, c12245_9] = useState(false); let [props2, c12245_11] = useState({ leadingItem: props.leadingItem, leadingSection: props.leadingSection, section: props.section, trailingItem: props.item, trailingSection: props.trailingSection }); let c12245_10 = props2; const [props3, setState] = useState({ leadingItem: props.item, leadingSection: props.leadingSection, section: props.section, trailingItem: props.trailingItem, trailingSection: props.trailingSection }); let c12245_12 = props3; let c12245_13 = setState; (0, useEffect)(() => { setSelfHighlightCallback(cellKey, c12245_9); setSelfUpdatePropsCallback(cellKey, c12245_13); return () => { setSelfUpdatePropsCallback(cellKey, null); setSelfHighlightCallback(cellKey, null); }; }, [cellKey, setSelfHighlightCallback, setState, setSelfUpdatePropsCallback]); const r60 = props.renderItem({ item, index, section, separators: { highlight: () => { c12245_8(true); c12245_9(true); if (prevCellKey != null) { updateHighlightFor(prevCellKey, true); } }, unhighlight: () => { c12245_8(false); c12245_9(false); if (prevCellKey != null) { updateHighlightFor(prevCellKey, false); } }, updateProps: (a0, a1) => { if (a0 === "leading") { if (LeadingSeparatorComponent != null) { c12245_11({ ...c12245_10, ...a1 }); } else if (prevCellKey != null) { updatePropsFor(prevCellKey, { ...c12245_10, ...a1 }); } } else if (a0 === "trailing" && SeparatorComponent != null) { c12245_13({ ...c12245_12, ...a1 }); } } } }); let r62 = LeadingSeparatorComponent != null && (isValidElement(LeadingSeparatorComponent) ? LeadingSeparatorComponent : ); const r70 = SeparatorComponent != null && (isValidElement(SeparatorComponent) ? SeparatorComponent : ); const r80 = r62 ? r62 : r70; const r85 = [r80 ? inverted === false ? r62 : r70 : null, r60, ,]; let r86 = null; if (r80) { if (inverted === false) { r62 = r70; } r86 = r62; } r85[2] = r86; return <>{r85}; }; _excluded = ["ItemSeparatorComponent", "SectionSeparatorComponent", "renderItem", "renderSectionFooter", "renderSectionHeader", "sections", "stickySectionHeadersEnabled"]; VirtualizedSectionList = function VirtualizedSectionList(...args) { _classCallCheck(this, VirtualizedSectionList); const r10 = [...args]; const r9 = _getPrototypeOf(VirtualizedSectionList); const r27 = _possibleConstructorReturn(this, (0, env341[15])() ? Reflect.construct(r9, r10, _getPrototypeOf(this).constructor) : r9.apply(this, r10)); r27._keyExtractor = (a0, a1) => { const r5 = this._subExtractor(a1); return r5 && r5.key || String(a1); }; r27._convertViewable = (a0) => { let key; Module38(a0.index != null, "Received a broken ViewToken"); const r19 = this._subExtractor(a0.index); if (r19) { const keyExtractor = r19.section.keyExtractor; const r23 = this.props.keyExtractor || _elementsThatOverlapOffsets.keyExtractor; if (keyExtractor != null) { key = keyExtractor(a0.item, r19.index); } else { const item = a0.item; let index = r19.index; if (index == null) { index = 0; } key = r23(item, index); } return { ...a0, index: r19.index, key, section: r19.section }; } return null; }; r27._onViewableItemsChanged = ({ viewableItems, changed }) => { const onViewableItemsChanged = this.props.onViewableItemsChanged; if (onViewableItemsChanged != null) { onViewableItemsChanged({ viewableItems: viewableItems.map(this._convertViewable, this).filter(Boolean), changed: changed.map(this._convertViewable, this).filter(Boolean) }); } }; r27._renderItem = (c28641_0) => ({ item, index }) => { const r5 = this._subExtractor(index); if (r5) { const index2 = r5.index; if (index2 == null) { const section = r5.section; if (r5.header === true) { const renderSectionHeader = this.props.renderSectionHeader; return renderSectionHeader ? renderSectionHeader({ section }) : null; } const renderSectionFooter = this.props.renderSectionFooter; return renderSectionFooter ? renderSectionFooter({ section }) : null; } const renderItem = r5.section.renderItem || this.props.renderItem; const SeparatorComponent2 = this._getSeparatorComponent(index, r5, c28641_0); Module38(renderItem, "no renderItem!"); return ; } return null; }; r27._updatePropsFor = (a0, a1) => { const r5 = this._updatePropsMap[a0]; if (r5 != null) { r5(a1); } }; r27._updateHighlightFor = (a0, a1) => { const r5 = this._updateHighlightMap[a0]; if (r5 != null) { r5(a1); } }; r27._setUpdateHighlightFor = (a0, a1) => { if (a1 != null) { this._updateHighlightMap[a0] = a1; } else { delete this._updateHighlightFor[a0]; } }; r27._setUpdatePropsFor = (a0, a1) => { if (a1 != null) { this._updatePropsMap[a0] = a1; } else { delete this._updatePropsMap[a0]; } }; r27._updateHighlightMap = {}; r27._updatePropsMap = {}; r27._captureRef = (a0) => { this._listRef = a0; }; return r27; }; _inherits(VirtualizedSectionList, PureComponent); export default _createClass(VirtualizedSectionList, [{ key: "scrollToLocation", value: function scrollToLocation(a0) { let sectionIndex; let itemIndex = a0.itemIndex; const r5 = 0 < a0.sectionIndex; let r0 = 0; let index = itemIndex; if (r5) { do { itemIndex = itemIndex + (this.props.getItemCount(this.props.sections[r0].data) + 2); r0 = r0 + 1; sectionIndex = a0.sectionIndex; index = itemIndex; } while (r0 < sectionIndex); } const r24 = a0.viewOffset || 0; if (this._listRef != null) { const _listRef = this._listRef; this._listRef.scrollToIndex({ ...a0, viewOffset: a0.itemIndex > 0 ? this.props.stickySectionHeadersEnabled ? r24 + _listRef.__getListMetrics().getCellMetricsApprox(index - a0.itemIndex, _listRef.props).length : r24 : r24, index }); } } }, { key: "getListRef", value: function getListRef() { return this._listRef; } }, { key: "render", value: function render() { const props = this.props; props.ItemSeparatorComponent; props.SectionSeparatorComponent; props.renderItem; props.renderSectionFooter; props.renderSectionHeader; props.sections; props.stickySectionHeadersEnabled; const rest = _objectWithoutProperties(props, _excluded); const r11 = this.props.ListHeaderComponent ? 1 : 0; const stickyHeaderIndices = this.props.stickySectionHeadersEnabled ? [] : void 0; let r42 = 0; let c23662_0 = 0; for (const section of this.props.sections) { if (stickyHeaderIndices != null) { stickyHeaderIndices.push(r42 + r11); } const r55 = r42 + 2; c23662_0 = r55; const r60 = r55 + this.props.getItemCount(section.data); r42 = r60; c23662_0 = r60; } return this._getItem(this.props, a0, a1)} getItemCount={() => c23662_0} onViewableItemsChanged={this.props.onViewableItemsChanged ? this._onViewableItemsChanged : void 0} ref={this._captureRef} />; } }, { key: "_getItem", value: function _getItem(a0, a1, a2) { if (a1) { let r1 = a2 - 1; const length = a1.length; let r0 = 0; if (0 < length) { while (true) { const r16 = a1[r0]; const data = r16.data; const itemCount = a0.getItemCount(data); const r3 = r0; const r2 = r1; if (r2 !== -1 && r2 !== itemCount) { if (r2 < itemCount) { return a0.getItem(data, r2); } r1 = r2 - (itemCount + 2); r0 = r3 + 1; if (r0 < a1.length) { continue; } break; } return r16; } } return null; } return null; } }, { key: "_subExtractor", value: function _subExtractor(r13) { const props = this.props; const { getItem: getItem2, getItemCount: getItemCount2, keyExtractor, sections } = props; const length = sections.length; let r0 = 0; if (0 < length) { do { const section = sections[r0]; const data = section.data; let key = section.key; const r2 = r0; const r14 = r13; if (!key) { key = String(r2); } const index = r14 - 1; if (!(index >= getItemCount2(data) + 1)) { return index === -1 ? { section, key: key + ":header", index: null, header: true, trailingSection: sections[r2 + 1] } : index === getItemCount2(data) ? { section, key: key + ":footer", index: null, header: false, trailingSection: sections[r2 + 1] } : { section, key: key + ":" + (section.keyExtractor || keyExtractor || _elementsThatOverlapOffsets.keyExtractor)(getItem2(data, index), index), index, leadingItem: getItem2(data, index - 1), leadingSection: sections[r2 - 1], trailingItem: getItem2(data, index + 1), trailingSection: sections[r2 + 1] }; } r13 = index - (getItemCount2(data) + 1); r0 = r2 + 1; } while (r0 < sections.length); } } }, { key: "_getSeparatorComponent", value: function _getSeparatorComponent(a0, a1, a2) { const r8 = a1 ? a1 : this._subExtractor(a0); if (r8) { const r6 = r8.section.ItemSeparatorComponent || this.props.ItemSeparatorComponent; let SectionSeparatorComponent = this.props.SectionSeparatorComponent; const r1 = a2 - 1; const r3 = r8.index === this.props.getItemCount(r8.section.data) - 1; if (!(SectionSeparatorComponent && r3)) { SectionSeparatorComponent = r6 ? r3 ? null : a0 !== r1 ? r6 : null : null; } return SectionSeparatorComponent; } return null; } }]);