@revolist/revogrid 4.4.0-next.2 → 4.4.0-next.21

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.
Files changed (243) hide show
  1. package/custom-element/columnService.js +1 -1
  2. package/custom-element/consts.js +2 -1
  3. package/custom-element/consts.js.map +1 -1
  4. package/custom-element/localScrollService.js +1 -1
  5. package/custom-element/localScrollService.js.map +1 -1
  6. package/custom-element/revo-grid.js +163 -97
  7. package/custom-element/revo-grid.js.map +1 -1
  8. package/custom-element/revogr-clipboard.js +24 -5
  9. package/custom-element/revogr-clipboard.js.map +1 -1
  10. package/custom-element/revogr-edit2.js +12 -6
  11. package/custom-element/revogr-edit2.js.map +1 -1
  12. package/custom-element/revogr-focus2.js +1 -1
  13. package/custom-element/revogr-focus2.js.map +1 -1
  14. package/custom-element/revogr-header2.js +25 -11
  15. package/custom-element/revogr-header2.js.map +1 -1
  16. package/custom-element/revogr-overlay-selection2.js +99 -32
  17. package/custom-element/revogr-overlay-selection2.js.map +1 -1
  18. package/custom-element/revogr-row-headers2.js +1 -2
  19. package/custom-element/revogr-row-headers2.js.map +1 -1
  20. package/custom-element/revogr-viewport-scroll2.js +39 -6
  21. package/custom-element/revogr-viewport-scroll2.js.map +1 -1
  22. package/dist/cjs/{debounce-525dd66c.js → debounce-f50730b6.js} +1 -38
  23. package/dist/cjs/debounce-f50730b6.js.map +1 -0
  24. package/dist/cjs/dispatcher-20520c70.js +21 -0
  25. package/dist/cjs/dispatcher-20520c70.js.map +1 -0
  26. package/dist/cjs/events-030618fc.js +459 -0
  27. package/dist/cjs/events-030618fc.js.map +1 -0
  28. package/dist/cjs/filter.button-6badec7a.js +44 -0
  29. package/dist/cjs/filter.button-6badec7a.js.map +1 -0
  30. package/dist/cjs/{index-aad39b7b.js → index-ee2ef5ae.js} +96 -36
  31. package/dist/cjs/index-ee2ef5ae.js.map +1 -0
  32. package/dist/cjs/index-effc94b9.js +3944 -0
  33. package/dist/cjs/index-effc94b9.js.map +1 -0
  34. package/dist/cjs/isString-3dde8d95.js +38 -0
  35. package/dist/cjs/isString-3dde8d95.js.map +1 -0
  36. package/dist/cjs/keyCodes.utils-d665ebed.js +271 -0
  37. package/dist/cjs/keyCodes.utils-d665ebed.js.map +1 -0
  38. package/dist/cjs/loader.cjs.js +3 -3
  39. package/dist/cjs/loader.cjs.js.map +1 -1
  40. package/dist/cjs/localScrollService-a81823c5.js +403 -0
  41. package/dist/cjs/localScrollService-a81823c5.js.map +1 -0
  42. package/dist/cjs/revo-grid.cjs.entry.js +3858 -0
  43. package/dist/cjs/revo-grid.cjs.entry.js.map +1 -0
  44. package/dist/cjs/revo-grid.cjs.js +3 -3
  45. package/dist/cjs/revo-grid.cjs.js.map +1 -1
  46. package/dist/cjs/revogr-clipboard.cjs.entry.js +24 -6
  47. package/dist/cjs/revogr-clipboard.cjs.entry.js.map +1 -1
  48. package/dist/cjs/revogr-data_3.cjs.entry.js +1138 -0
  49. package/dist/cjs/revogr-data_3.cjs.entry.js.map +1 -0
  50. package/dist/cjs/revogr-edit_2.cjs.entry.js +325 -0
  51. package/dist/cjs/revogr-edit_2.cjs.entry.js.map +1 -0
  52. package/dist/cjs/revogr-filter-panel.cjs.entry.js +6 -5
  53. package/dist/cjs/revogr-filter-panel.cjs.entry.js.map +1 -1
  54. package/dist/cjs/revogr-focus_5.cjs.entry.js +1231 -0
  55. package/dist/cjs/revogr-focus_5.cjs.entry.js.map +1 -0
  56. package/dist/cjs/{revo-grid_11.cjs.entry.js → viewport.helpers-70ccec8f.js} +13978 -25269
  57. package/dist/cjs/viewport.helpers-70ccec8f.js.map +1 -0
  58. package/dist/collection/collection-manifest.json +1 -1
  59. package/dist/collection/components/clipboard/revogr-clipboard.d.ts +6 -2
  60. package/dist/collection/components/clipboard/revogr-clipboard.js +46 -5
  61. package/dist/collection/components/clipboard/revogr-clipboard.js.map +1 -1
  62. package/dist/collection/components/header/headerCellRenderer.d.ts +2 -1
  63. package/dist/collection/components/header/headerCellRenderer.js +1 -1
  64. package/dist/collection/components/header/headerCellRenderer.js.map +1 -1
  65. package/dist/collection/components/header/headerRenderer.d.ts +2 -2
  66. package/dist/collection/components/header/headerRenderer.js +1 -1
  67. package/dist/collection/components/header/headerRenderer.js.map +1 -1
  68. package/dist/collection/components/header/revogr-header.d.ts +15 -1
  69. package/dist/collection/components/header/revogr-header.js +34 -8
  70. package/dist/collection/components/header/revogr-header.js.map +1 -1
  71. package/dist/collection/components/overlay/autofill.service.d.ts +7 -3
  72. package/dist/collection/components/overlay/autofill.service.js +32 -12
  73. package/dist/collection/components/overlay/autofill.service.js.map +1 -1
  74. package/dist/collection/components/overlay/clipboard.service.d.ts +1 -1
  75. package/dist/collection/components/overlay/clipboard.service.js +2 -2
  76. package/dist/collection/components/overlay/clipboard.service.js.map +1 -1
  77. package/dist/collection/components/overlay/keyboard.service.js +2 -6
  78. package/dist/collection/components/overlay/keyboard.service.js.map +1 -1
  79. package/dist/collection/components/overlay/revogr-edit.d.ts +8 -0
  80. package/dist/collection/components/overlay/revogr-edit.js +34 -9
  81. package/dist/collection/components/overlay/revogr-edit.js.map +1 -1
  82. package/dist/collection/components/overlay/revogr-overlay-selection.d.ts +32 -10
  83. package/dist/collection/components/overlay/revogr-overlay-selection.js +80 -12
  84. package/dist/collection/components/overlay/revogr-overlay-selection.js.map +1 -1
  85. package/dist/collection/components/overlay/revogr-overlay-style.css +71 -4
  86. package/dist/collection/components/revoGrid/revo-grid.d.ts +15 -4
  87. package/dist/collection/components/revoGrid/revo-grid.js +60 -19
  88. package/dist/collection/components/revoGrid/revo-grid.js.map +1 -1
  89. package/dist/collection/components/revoGrid/viewport.scrolling.service.d.ts +6 -2
  90. package/dist/collection/components/revoGrid/viewport.scrolling.service.js +26 -4
  91. package/dist/collection/components/revoGrid/viewport.scrolling.service.js.map +1 -1
  92. package/dist/collection/components/revoGrid/viewport.section.d.ts +3 -2
  93. package/dist/collection/components/revoGrid/viewport.section.js +8 -4
  94. package/dist/collection/components/revoGrid/viewport.section.js.map +1 -1
  95. package/dist/collection/components/revoGrid/viewport.service.d.ts +4 -0
  96. package/dist/collection/components/revoGrid/viewport.service.js +15 -3
  97. package/dist/collection/components/revoGrid/viewport.service.js.map +1 -1
  98. package/dist/collection/components/rowHeaders/revogr-row-headers.js.map +1 -1
  99. package/dist/collection/components/scroll/revogr-viewport-scroll-style.css +3 -0
  100. package/dist/collection/components/scroll/revogr-viewport-scroll.d.ts +16 -5
  101. package/dist/collection/components/scroll/revogr-viewport-scroll.js +64 -9
  102. package/dist/collection/components/scroll/revogr-viewport-scroll.js.map +1 -1
  103. package/dist/collection/components/selectionFocus/revogr-focus-style.css +1 -1
  104. package/dist/collection/components.d.ts +110 -6
  105. package/dist/collection/interfaces.d.ts +4 -1
  106. package/dist/collection/plugins/groupingColumn/columnGroupsRenderer.d.ts +3 -2
  107. package/dist/collection/plugins/groupingColumn/columnGroupsRenderer.js +2 -2
  108. package/dist/collection/plugins/groupingColumn/columnGroupsRenderer.js.map +1 -1
  109. package/dist/collection/plugins/groupingColumn/headerGroupRenderer.d.ts +2 -2
  110. package/dist/collection/plugins/groupingColumn/headerGroupRenderer.js +1 -1
  111. package/dist/collection/plugins/groupingColumn/headerGroupRenderer.js.map +1 -1
  112. package/dist/collection/plugins/sorting/sorting.plugin.d.ts +21 -13
  113. package/dist/collection/plugins/sorting/sorting.plugin.js +77 -70
  114. package/dist/collection/plugins/sorting/sorting.plugin.js.map +1 -1
  115. package/dist/collection/serve/controller.js +183 -0
  116. package/dist/collection/services/localScrollService.js +1 -1
  117. package/dist/collection/services/localScrollService.js.map +1 -1
  118. package/dist/collection/services/resizable.directive.d.ts +8 -7
  119. package/dist/collection/services/resizable.directive.js +13 -36
  120. package/dist/collection/services/resizable.directive.js.map +1 -1
  121. package/dist/collection/services/resizable.element.d.ts +4 -0
  122. package/dist/collection/services/resizable.element.js +39 -0
  123. package/dist/collection/services/resizable.element.js.map +1 -0
  124. package/dist/collection/stencil-public-runtime.d.ts +1 -0
  125. package/dist/collection/store/viewPort/viewport.store.js +0 -1
  126. package/dist/collection/store/viewPort/viewport.store.js.map +1 -1
  127. package/dist/collection/utils/consts.d.ts +1 -0
  128. package/dist/collection/utils/consts.js +1 -0
  129. package/dist/collection/utils/consts.js.map +1 -1
  130. package/dist/collection/utils/events.d.ts +2 -1
  131. package/dist/collection/utils/events.js +18 -2
  132. package/dist/collection/utils/events.js.map +1 -1
  133. package/dist/collection/utils/mobile.d.ts +1 -0
  134. package/dist/collection/utils/mobile.js +7 -0
  135. package/dist/collection/utils/mobile.js.map +1 -0
  136. package/dist/esm/{debounce-301fd4d2.js → debounce-820b5a8b.js} +2 -34
  137. package/dist/esm/debounce-820b5a8b.js.map +1 -0
  138. package/dist/esm/dispatcher-9e9c0233.js +19 -0
  139. package/dist/esm/dispatcher-9e9c0233.js.map +1 -0
  140. package/dist/esm/events-31272e5e.js +454 -0
  141. package/dist/esm/events-31272e5e.js.map +1 -0
  142. package/dist/esm/filter.button-21ce90ef.js +38 -0
  143. package/dist/esm/filter.button-21ce90ef.js.map +1 -0
  144. package/dist/esm/{index-5e90b19b.js → index-05947c5f.js} +97 -37
  145. package/dist/esm/index-05947c5f.js.map +1 -0
  146. package/dist/esm/index-728bf6e3.js +3889 -0
  147. package/dist/esm/index-728bf6e3.js.map +1 -0
  148. package/dist/esm/isString-d539060a.js +36 -0
  149. package/dist/esm/isString-d539060a.js.map +1 -0
  150. package/dist/esm/keyCodes.utils-c0064460.js +265 -0
  151. package/dist/esm/keyCodes.utils-c0064460.js.map +1 -0
  152. package/dist/esm/loader.js +4 -4
  153. package/dist/esm/loader.js.map +1 -1
  154. package/dist/esm/localScrollService-884d8952.js +400 -0
  155. package/dist/esm/localScrollService-884d8952.js.map +1 -0
  156. package/dist/esm/revo-grid.entry.js +3854 -0
  157. package/dist/esm/revo-grid.entry.js.map +1 -0
  158. package/dist/esm/revo-grid.js +4 -4
  159. package/dist/esm/revo-grid.js.map +1 -1
  160. package/dist/esm/revogr-clipboard.entry.js +24 -6
  161. package/dist/esm/revogr-clipboard.entry.js.map +1 -1
  162. package/dist/esm/revogr-data_3.entry.js +1132 -0
  163. package/dist/esm/revogr-data_3.entry.js.map +1 -0
  164. package/dist/esm/revogr-edit_2.entry.js +320 -0
  165. package/dist/esm/revogr-edit_2.entry.js.map +1 -0
  166. package/dist/esm/revogr-filter-panel.entry.js +3 -2
  167. package/dist/esm/revogr-filter-panel.entry.js.map +1 -1
  168. package/dist/esm/revogr-focus_5.entry.js +1223 -0
  169. package/dist/esm/revogr-focus_5.entry.js.map +1 -0
  170. package/dist/esm/{revo-grid_11.entry.js → viewport.helpers-c08e729e.js} +13790 -25093
  171. package/dist/esm/viewport.helpers-c08e729e.js.map +1 -0
  172. package/dist/revo-grid/debounce-820b5a8b.js +5 -0
  173. package/dist/revo-grid/debounce-820b5a8b.js.map +1 -0
  174. package/dist/revo-grid/dispatcher-9e9c0233.js +5 -0
  175. package/dist/revo-grid/dispatcher-9e9c0233.js.map +1 -0
  176. package/dist/revo-grid/events-31272e5e.js +5 -0
  177. package/dist/revo-grid/events-31272e5e.js.map +1 -0
  178. package/dist/revo-grid/filter.button-21ce90ef.js +5 -0
  179. package/dist/revo-grid/filter.button-21ce90ef.js.map +1 -0
  180. package/dist/revo-grid/index-05947c5f.js +6 -0
  181. package/dist/revo-grid/index-05947c5f.js.map +1 -0
  182. package/dist/revo-grid/index-728bf6e3.js +5 -0
  183. package/dist/revo-grid/index-728bf6e3.js.map +1 -0
  184. package/dist/revo-grid/isString-d539060a.js +5 -0
  185. package/dist/revo-grid/isString-d539060a.js.map +1 -0
  186. package/dist/revo-grid/keyCodes.utils-c0064460.js +5 -0
  187. package/dist/revo-grid/keyCodes.utils-c0064460.js.map +1 -0
  188. package/dist/revo-grid/localScrollService-884d8952.js +5 -0
  189. package/dist/revo-grid/localScrollService-884d8952.js.map +1 -0
  190. package/dist/revo-grid/revo-grid.entry.js +5 -0
  191. package/dist/revo-grid/revo-grid.entry.js.map +1 -0
  192. package/dist/revo-grid/revo-grid.esm.js +1 -1
  193. package/dist/revo-grid/revo-grid.esm.js.map +1 -1
  194. package/dist/revo-grid/revogr-clipboard.entry.js +1 -1
  195. package/dist/revo-grid/revogr-clipboard.entry.js.map +1 -1
  196. package/dist/revo-grid/revogr-data_3.entry.js +5 -0
  197. package/dist/revo-grid/revogr-data_3.entry.js.map +1 -0
  198. package/dist/revo-grid/revogr-edit_2.entry.js +5 -0
  199. package/dist/revo-grid/revogr-edit_2.entry.js.map +1 -0
  200. package/dist/revo-grid/revogr-filter-panel.entry.js +1 -1
  201. package/dist/revo-grid/revogr-filter-panel.entry.js.map +1 -1
  202. package/dist/revo-grid/revogr-focus_5.entry.js +5 -0
  203. package/dist/revo-grid/revogr-focus_5.entry.js.map +1 -0
  204. package/dist/revo-grid/viewport.helpers-c08e729e.js +5 -0
  205. package/dist/revo-grid/viewport.helpers-c08e729e.js.map +1 -0
  206. package/dist/types/components/clipboard/revogr-clipboard.d.ts +6 -2
  207. package/dist/types/components/header/headerCellRenderer.d.ts +2 -1
  208. package/dist/types/components/header/headerRenderer.d.ts +2 -2
  209. package/dist/types/components/header/revogr-header.d.ts +15 -1
  210. package/dist/types/components/overlay/autofill.service.d.ts +7 -3
  211. package/dist/types/components/overlay/clipboard.service.d.ts +1 -1
  212. package/dist/types/components/overlay/revogr-edit.d.ts +8 -0
  213. package/dist/types/components/overlay/revogr-overlay-selection.d.ts +32 -10
  214. package/dist/types/components/revoGrid/revo-grid.d.ts +15 -4
  215. package/dist/types/components/revoGrid/viewport.scrolling.service.d.ts +6 -2
  216. package/dist/types/components/revoGrid/viewport.section.d.ts +3 -2
  217. package/dist/types/components/revoGrid/viewport.service.d.ts +4 -0
  218. package/dist/types/components/scroll/revogr-viewport-scroll.d.ts +16 -5
  219. package/dist/types/components.d.ts +110 -6
  220. package/dist/types/interfaces.d.ts +4 -1
  221. package/dist/types/plugins/groupingColumn/columnGroupsRenderer.d.ts +3 -2
  222. package/dist/types/plugins/groupingColumn/headerGroupRenderer.d.ts +2 -2
  223. package/dist/types/plugins/sorting/sorting.plugin.d.ts +21 -13
  224. package/dist/types/services/resizable.directive.d.ts +8 -7
  225. package/dist/types/services/resizable.element.d.ts +4 -0
  226. package/dist/types/stencil-public-runtime.d.ts +1 -0
  227. package/dist/types/utils/consts.d.ts +1 -0
  228. package/dist/types/utils/events.d.ts +2 -1
  229. package/dist/types/utils/mobile.d.ts +1 -0
  230. package/package.json +4 -3
  231. package/dist/cjs/debounce-525dd66c.js.map +0 -1
  232. package/dist/cjs/index-aad39b7b.js.map +0 -1
  233. package/dist/cjs/revo-grid_11.cjs.entry.js.map +0 -1
  234. package/dist/esm/debounce-301fd4d2.js.map +0 -1
  235. package/dist/esm/index-5e90b19b.js.map +0 -1
  236. package/dist/esm/revo-grid_11.entry.js.map +0 -1
  237. package/dist/revo-grid/debounce-301fd4d2.js +0 -5
  238. package/dist/revo-grid/debounce-301fd4d2.js.map +0 -1
  239. package/dist/revo-grid/index-5e90b19b.js +0 -6
  240. package/dist/revo-grid/index-5e90b19b.js.map +0 -1
  241. package/dist/revo-grid/revo-grid_11.entry.js +0 -5
  242. package/dist/revo-grid/revo-grid_11.entry.js.map +0 -1
  243. /package/dist/collection/{utilsExternal/generate-data.js → serve/data.js} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getCurrentCell","x","y","el","rows","cols","top","left","height","width","getBoundingClientRect","cellY","cellX","rgRow","getItemByPosition","rgCol","itemIndex","getCoordinate","range","focus","changes","isMulti","updateCoordinate","c","start","end","x1","y1","point","isAfterLast","lastCell","isBeforeFirst","styleByCellProps","styles","getCell","dimensionRow","dimensionCol","getItemByIndex","bottom","right","getElStyle","revogrFocusStyleCss","RevogrFocus","changed","e","scrollIntoView","block","inline","model","getSourceItem","this","dataStore","column","colData","afterFocus","emit","componentDidRender","currentFocus","selectionStore","get","render","editCell","data","event","beforeFocusRender","Object","assign","rowType","colType","defaultPrevented","detail","style","state","extra","focusTemplate","h","Host","class","FOCUS_CLASS","SelectionStoreService","constructor","store","config","edited","focused","ranged","changeRange","cell","getRange","isEditInput","closest","EDIT_INPUT_WR","DIRECTION_CODES","codesLetter","TAB","ARROW_UP","ARROW_DOWN","ARROW_LEFT","ARROW_RIGHT","KeyboardService","sv","ctrlDown","async","canRange","isCtrlKey","keyCode","navigator","platform","selectionStoreService","code","ESCAPE","cancelEdit","isClear","clearCell","keyChangeSelection","isEnterKey","applyEdit","isCopy","isCut","isPaste","internalPaste","isAll","selectAll","isLetterKey","key","preventDefault","changeDirectionKey","timeout","RESIZE_INTERVAL","keyPositionChange","eData","getData","focusNext","keyUp","X","C","V","A","shiftKey","includes","AutoFillType","AutoFillService","autoFillType","autoFillInitial","autoFillStart","autoFillLast","renderAutofill","selectionFocus","handlerStyle","CELL_HANDLER_CLASS","MOBILE_CLASS","onMouseDown","autoFillHandler","onTouchStart","type","autoFill","target","Element","selectionStart","isAutoFill","selectionMouseMove","onMouseMoveAutofill","debounce","doAutofillMouseMove","getFocus","getFromEvent","current","isSame","setTempRange","area","selection","clearAutoFillSelection","stopApply","newRange","clearRangeDataApply","applyRangeWithData","applyRangeOnly","onRangeApply","models","rowIndex","parseInt","stopRange","rangeDataApply","columnService","applyRangeData","setRange","oldRange","rangeData","newData","mapping","getRangeData","columns","selectionChanged","rangeCopy","ClipboardService","renderClipboard","readonly","onCopyRegion","onCopy","onClearRegion","rangeClear","ref","clipboard","onPasteRegion","onPaste","getRegion","canCopyEvent","beforeCopy","doCopy","isEditing","getTransformedDataToApply","canPaste","beforePaste","rangeApply","revogrOverlayStyleCss","OverlaySelection","keyboardService","autoFillService","clipboardService","revogrEdit","onMouseMove","onMouseUp","onCellDrag","_a","orderEditor","dragStart","onKeyUp","onKeyDown","keyDown","selectionServiceSet","s","triggerRangeEvent","doFocus","r","f","next","val","doEdit","cancel","closeEdit","createAutoFillService","createClipboardService","beforeRangeDataApply","types","internalSelectionChanged","beforeRangeCopyApply","internalRangeDataApply","columnServiceSet","destroy","ColumnService","d","undefined","copyRangeArray","rangeClipboardCopy","internalCopy","rangeClipboardPaste","connectedCallback","disconnectedCallback","renderRange","SELECTION_BORDER_CLASS","isMobileDevice","renderEditCell","getCellData","editable","getSaveData","renderEvent","beforeEditRender","onCellEdit","saveEv","beforeCellSave","cellEdit","preventFocus","onCloseEdit","saveOnClose","applyChangesOnClose","editor","getCellEditor","editors","additionalData","els","push","useClipboard","canDrag","parent","element","onInternalRowDragStart","onRowDragStart","mobile","onDblClick","onElementMouseDown","name","beforeFocusCell","evData","applyEvent","applyFocus","focusCell","beforeApplyRange","getRangeTransformedToProps","beforeSetRange","touch","verifyTouchTarget","touches","canEdit","setEdit","dataToSave","internalCellEdit","canFocus","KeyboardEvent","isRangeSingleCell","getRangeStaticData","prop","text","isReadOnly","RowHeaderRender","__","i","RevogrRowHeaders","dataViews","viewport","ViewportStore","totalLength","dataPorts","itemCount","length","DataStore","updateData","cellTemplate","rowHeaderColumn","viewData","rowClass","viewportCol","colSize","calculateRowHeaderSize","setViewport","realCount","virtualSize","items","size","uiid","viewportScroll","UUID","contentHeight","contentWidth","minWidth","elementToScroll","onScrollViewport","scrollViewport","viewportHeader","headerProp","canResize","ROW_HEADER_TYPE","slot","HEADER_SLOT","revogrScrollStyleCss","RevogrScrollVirtual","scrollSize","isAutoHide","autoHideTimeout","dimension","scrollService","setScroll","delta","coordinate","scrollLeft","scrollTop","minHeight","clientHeight","clientWidth","LocalScrollService","beforeScroll","scrollVirtual","afterScroll","clearTimeout","componentWillLoad","getScrollbarWidth","document","setParams","contentSize","dimensionStore","clientSize","viewportStore","onScroll","autoHide","scroll","setTimeout","sizeType","extContentSize","vsize","getVirtualContentSize","revogrTempRangeStyleCss","onChange","throttle","doChange","directionY","derectionX","directionClass","TMP_SELECTION_BG_CLASS","hidden"],"sources":["./src/components/overlay/selection.utils.ts","./src/components/selectionFocus/revogr-focus-style.scss?tag=revogr-focus","./src/components/selectionFocus/revogr-focus.tsx","./src/store/selection/selection.store.service.ts","./src/components/overlay/editors/edit.utils.ts","./src/components/overlay/keyboard.service.ts","./src/components/overlay/autofill.service.tsx","./src/components/overlay/clipboard.service.tsx","./src/components/overlay/revogr-overlay-style.scss?tag=revogr-overlay-selection","./src/components/overlay/revogr-overlay-selection.tsx","./src/components/rowHeaders/row-header-render.tsx","./src/components/rowHeaders/revogr-row-headers.tsx","./src/components/scrollable/revogr-scroll-style.scss?tag=revogr-scroll-virtual","./src/components/scrollable/revogr-scroll-virtual.tsx","./src/components/selectionTempRange/revogr-temp-range-style.scss?tag=revogr-temp-range","./src/components/selectionTempRange/revogr-temp-range.tsx"],"sourcesContent":["import { getItemByIndex, getItemByPosition } from '../../store/dimension/dimension.helpers';\nimport { Selection, RevoGrid } from '../../interfaces';\nimport Cell = Selection.Cell;\n\nexport type EventData = {\n el: HTMLElement;\n rows: RevoGrid.DimensionSettingsState;\n cols: RevoGrid.DimensionSettingsState;\n lastCell: Selection.Cell;\n};\n\n/** Calculate cell based on x, y position */\nexport function getCurrentCell({ x, y }: Cell, { el, rows, cols }: EventData): Cell {\n const { top, left, height, width } = el.getBoundingClientRect();\n let cellY = y - top;\n\n // limit to element height\n\n if (cellY >= height) {\n cellY = height - 1;\n }\n let cellX = x - left;\n // limit to element width\n if (cellX >= width) {\n cellX = width - 1;\n }\n const rgRow = getItemByPosition(rows, cellY);\n const rgCol = getItemByPosition(cols, cellX);\n // before first\n if (rgCol.itemIndex < 0) {\n rgCol.itemIndex = 0;\n }\n // before first\n if (rgRow.itemIndex < 0) {\n rgRow.itemIndex = 0;\n }\n return { x: rgCol.itemIndex, y: rgRow.itemIndex };\n}\n\nexport function getCoordinate(range: Selection.RangeArea, focus: Cell, changes: Partial<Cell>, isMulti = false) {\n const updateCoordinate = (c: keyof Cell) => {\n const start = { x: range.x, y: range.y };\n const end = isMulti ? { x: range.x1, y: range.y1 } : start;\n const point = end[c] > focus[c] ? end : start;\n point[c] += changes[c];\n return { start, end };\n };\n\n if (changes.x) {\n return updateCoordinate('x');\n }\n if (changes.y) {\n return updateCoordinate('y');\n }\n return null;\n}\n\n/** check if out of range */\nexport function isAfterLast({ x, y }: Cell, { lastCell }: EventData) {\n return x >= lastCell.x || y >= lastCell.y;\n}\n\n/** check if out of range */\nexport function isBeforeFirst({ x, y }: Cell) {\n return x < 0 || y < 0;\n}\n\n/** Compare cells, only 1 coordinate difference is possible */\n// export function getDirectionCoordinate(initial: Cell, last: Cell): Partial<Cell> | null {\n// const c: (keyof Cell)[] = ['x', 'y'];\n// for (let k of c) {\n// if (initial[k] !== last[k]) {\n// return { [k]: 1 };\n// }\n// }\n// return null;\n// }\n\n// export function getLargestAxis(initial: Cell, last: Cell): Partial<Cell> | null {\n// const cell: Partial<Cell> = {};\n// const c: (keyof Cell)[] = ['x', 'y'];\n// for (let k of c) {\n// cell[k] = Math.abs(initial[k] - last[k]);\n// }\n// if (cell.x > cell.y) {\n// return { x: 1 };\n// }\n// if (cell.y > cell.x) {\n// return { y: 1 };\n// }\n// return null;\n// }\n\nfunction styleByCellProps(styles: { [key: string]: number }): Selection.RangeAreaCss {\n return {\n left: `${styles.left}px`,\n top: `${styles.top}px`,\n width: `${styles.width}px`,\n height: `${styles.height}px`,\n };\n}\n\nexport function getCell({ x, y, x1, y1 }: Selection.RangeArea, dimensionRow: RevoGrid.DimensionSettingsState, dimensionCol: RevoGrid.DimensionSettingsState) {\n const top = getItemByIndex(dimensionRow, y).start;\n const left = getItemByIndex(dimensionCol, x).start;\n const bottom = getItemByIndex(dimensionRow, y1).end;\n const right = getItemByIndex(dimensionCol, x1).end;\n\n return {\n left,\n right,\n top,\n bottom,\n width: right - left,\n height: bottom - top,\n };\n}\n\nexport function getElStyle(range: Selection.RangeArea, dimensionRow: RevoGrid.DimensionSettingsState, dimensionCol: RevoGrid.DimensionSettingsState): Selection.RangeAreaCss {\n const styles = getCell(range, dimensionRow, dimensionCol);\n return styleByCellProps(styles);\n}\n","revogr-focus.focused-cell {\n @include selection(1px);\n\n position: absolute;\n pointer-events: none;\n z-index: 9;\n display: block !important;\n}\n","import { Component, Prop, h, Host, Event, Element, EventEmitter } from '@stencil/core';\nimport { FocusRenderEvent, Observable, RevoGrid, Selection } from '../../interfaces';\nimport { FOCUS_CLASS } from '../../utils/consts';\nimport { ColumnSource, RowSource } from '../data/columnService';\nimport { getElStyle } from '../overlay/selection.utils';\nimport { getSourceItem } from '../../store/dataSource/data.store';\n\n@Component({\n tag: 'revogr-focus',\n styleUrl: 'revogr-focus-style.scss',\n})\nexport class RevogrFocus {\n @Element() el: HTMLElement;\n\n /** Dynamic stores */\n @Prop() selectionStore!: Observable<Selection.SelectionStoreState>;\n @Prop() dimensionRow!: Observable<RevoGrid.DimensionSettingsState>;\n @Prop() dimensionCol!: Observable<RevoGrid.DimensionSettingsState>;\n @Prop() dataStore!: RowSource;\n @Prop() colData!: ColumnSource;\n @Prop() colType!: RevoGrid.DimensionCols;\n @Prop() rowType!: RevoGrid.DimensionRows;\n\n @Prop() focusTemplate: RevoGrid.FocusTemplateFunc | null = null;\n @Event({ eventName: 'before-focus-render' }) beforeFocusRender: EventEmitter<FocusRenderEvent>;\n /**\n * Used to setup properties after focus was rendered\n */\n @Event({ eventName: 'afterfocus' }) afterFocus: EventEmitter<{\n model: any;\n column: RevoGrid.ColumnRegular;\n }>;\n\n private changed(e: HTMLElement, focus: Selection.Cell): void {\n e?.scrollIntoView({\n block: 'nearest',\n inline: 'nearest',\n });\n const model = getSourceItem(this.dataStore, focus.y);\n const column = getSourceItem(this.colData, focus.x);\n this.afterFocus.emit({\n model,\n column\n });\n }\n\n componentDidRender(): void {\n const currentFocus = this.selectionStore.get('focus');\n currentFocus && this.el && this.changed(this.el, currentFocus);\n }\n\n render() {\n const editCell = this.selectionStore.get('edit');\n if (editCell) {\n return;\n }\n const data = this.selectionStore.get('focus');\n if (data) {\n const event = this.beforeFocusRender.emit({\n range: {\n ...data,\n x1: data.x,\n y1: data.y,\n },\n rowType: this.rowType,\n colType: this.colType,\n });\n if (event.defaultPrevented) {\n return;\n }\n const { detail } = event;\n const style = getElStyle(\n detail.range,\n this.dimensionRow.state,\n this.dimensionCol.state,\n );\n const extra = this.focusTemplate && this.focusTemplate(h, detail);\n return <Host class={FOCUS_CLASS} style={style}>{ extra }</Host>;\n }\n }\n}\n","import { Edition, Observable, Selection } from '../../interfaces';\nimport { getRange } from './selection.helpers';\nimport Cell = Selection.Cell;\nimport Range = Selection.RangeArea;\n\ninterface Config {\n changeRange(range: Range): boolean;\n focus(focus: Cell, end: Cell): boolean;\n}\n\nexport default class SelectionStoreService {\n constructor(public store: Observable<Selection.SelectionStoreState>, private config: Config) {\n this.store = store;\n }\n\n get edited(): Edition.EditCellStore | null {\n return this.store.get('edit');\n }\n\n get focused(): Cell | null {\n return this.store.get('focus');\n }\n\n get ranged(): Range | null {\n return this.store.get('range');\n }\n\n changeRange(range: Range) {\n return this.config.changeRange(range);\n }\n\n focus(cell?: Cell, isMulti = false) {\n if (!cell) {\n return false;\n }\n let end: Cell = cell;\n\n // range edit\n if (isMulti) {\n let start: Cell | null = this.store.get('focus');\n if (start) {\n return this.config.changeRange(getRange(start, end));\n }\n }\n\n // single focus\n return this.config.focus(cell, end);\n }\n}\n","import { EDIT_INPUT_WR } from '../../../utils/consts';\n\n// is edit input\nexport function isEditInput(el?: HTMLElement) {\n return !!el?.closest(`.${EDIT_INPUT_WR}`);\n}\n","import { Observable, Selection } from '../../interfaces';\nimport { getRange } from '../../store/selection/selection.helpers';\nimport SelectionStoreService from '../../store/selection/selection.store.service';\nimport { codesLetter } from '../../utils/keyCodes';\nimport { isClear, isCtrlKey, isEnterKey, isLetterKey } from '../../utils/keyCodes.utils';\nimport { timeout } from '../../utils';\nimport { EventData, getCoordinate, isAfterLast, isBeforeFirst } from './selection.utils';\nimport { RESIZE_INTERVAL } from '../../utils/consts';\n\ntype Config = {\n selectionStoreService: SelectionStoreService;\n selectionStore: Observable<Selection.SelectionStoreState>;\n\n applyEdit(val?: any): void;\n cancelEdit(): void;\n clearCell(): void;\n focusNext(focus: Selection.Cell, next: Partial<Selection.Cell>): boolean;\n getData(): any;\n internalPaste(): void;\n range(range: Selection.RangeArea): boolean;\n selectAll(): void;\n};\n\nconst DIRECTION_CODES: string[] = [\n codesLetter.TAB,\n codesLetter.ARROW_UP,\n codesLetter.ARROW_DOWN,\n codesLetter.ARROW_LEFT,\n codesLetter.ARROW_RIGHT,\n];\nexport class KeyboardService {\n private ctrlDown = false;\n\n constructor(private sv: Config) {}\n\n async keyDown(e: KeyboardEvent, canRange: boolean) {\n if (isCtrlKey(e.keyCode, navigator.platform)) {\n this.ctrlDown = true;\n }\n\n\n // IF EDIT MODE\n if (this.sv.selectionStoreService.edited) {\n switch (e.code) {\n case codesLetter.ESCAPE:\n this.sv.cancelEdit();\n break;\n }\n return;\n }\n\n // IF NOT EDIT MODE\n\n // pressed clear key\n if (this.sv.selectionStoreService.ranged && isClear(e.code)) {\n this.sv.clearCell();\n return;\n }\n\n // below works with focus only\n if (!this.sv.selectionStoreService.focused) {\n return;\n }\n\n // tab key means same as arrow right\n if (codesLetter.TAB === e.code) {\n this.keyChangeSelection(e, canRange);\n return;\n }\n\n // pressed enter\n if (isEnterKey(e.code)) {\n this.sv.applyEdit();\n return;\n }\n\n // copy operation\n if (this.isCopy(e)) {\n return;\n }\n\n // cut operation\n if (this.isCut(e)) {\n return;\n }\n\n // paste operation\n if (this.isPaste(e)) {\n this.sv.internalPaste();\n return;\n }\n\n // select all\n if (this.isAll(e)) {\n if (canRange) {\n this.selectAll(e);\n }\n return;\n }\n\n // pressed letter key\n if (isLetterKey(e.keyCode)) {\n this.sv.applyEdit(e.key);\n return;\n }\n\n // pressed arrow, change selection position\n if (await this.keyChangeSelection(e, canRange)) {\n return;\n }\n }\n\n private selectAll(e: KeyboardEvent) {\n const range = this.sv.selectionStore.get('range');\n const focus = this.sv.selectionStore.get('focus');\n // if no range or focus - do nothing\n if (!range || !focus) {\n return;\n }\n e.preventDefault();\n this.sv.selectAll();\n }\n\n async keyChangeSelection(e: KeyboardEvent, canRange: boolean) {\n const data = this.changeDirectionKey(e, canRange);\n if (!data) {\n return false;\n }\n\n // this interval needed for several cases\n // grid could be resized before next click\n // at this case to avoid screen jump we use this interval\n await timeout(RESIZE_INTERVAL + 30);\n\n const range = this.sv.selectionStore.get('range');\n const focus = this.sv.selectionStore.get('focus');\n return this.keyPositionChange(data.changes, range, focus, data.isMulti);\n }\n\n keyPositionChange(\n changes: Partial<Selection.Cell>,\n range?: Selection.RangeArea,\n focus?: Selection.Cell,\n isMulti = false\n ) {\n if (!range || !focus) {\n return false;\n }\n const data = getCoordinate(range, focus, changes, isMulti);\n if (!data) {\n return false;\n }\n if (isMulti) {\n const eData: EventData = this.sv.getData();\n if (isAfterLast(data.end, eData) || isBeforeFirst(data.start)) {\n return false;\n }\n const range = getRange(data.start, data.end);\n return this.sv.range(range);\n }\n return this.sv.focusNext(data.start, changes);\n }\n\n keyUp(e: KeyboardEvent): void {\n if (isCtrlKey(e.keyCode, navigator.platform)) {\n this.ctrlDown = false;\n }\n }\n isCut(e: KeyboardEvent): boolean {\n return this.ctrlDown && e.code == codesLetter.X;\n }\n isCopy(e: KeyboardEvent): boolean {\n return this.ctrlDown && e.code == codesLetter.C;\n }\n isPaste(e: KeyboardEvent): boolean {\n return this.ctrlDown && e.code == codesLetter.V;\n }\n isAll(e: KeyboardEvent): boolean {\n return this.ctrlDown && e.code == codesLetter.A;\n }\n /** Monitor key direction changes */\n changeDirectionKey(e: KeyboardEvent, canRange: boolean): { changes: Partial<Selection.Cell>; isMulti?: boolean } | void {\n const isMulti = canRange && e.shiftKey;\n if (DIRECTION_CODES.includes(e.code)) {\n e.preventDefault();\n }\n switch (e.code) {\n case codesLetter.ARROW_UP:\n return { changes: { y: -1 }, isMulti };\n case codesLetter.ARROW_DOWN:\n return { changes: { y: 1 }, isMulti };\n case codesLetter.ARROW_LEFT:\n return { changes: { x: -1 }, isMulti };\n case codesLetter.TAB:\n case codesLetter.ARROW_RIGHT:\n return { changes: { x: 1 }, isMulti };\n }\n }\n}\n","import debounce from 'lodash/debounce';\nimport { DebouncedFunc } from 'lodash';\n\nimport { h } from '@stencil/core';\nimport { CELL_HANDLER_CLASS, MOBILE_CLASS } from '../../utils/consts';\nimport { Observable, Selection, RevoGrid, Edition } from '../../interfaces';\nimport { EventData, getCell, getCurrentCell, isAfterLast } from './selection.utils';\nimport { getRange } from '../../store/selection/selection.helpers';\nimport SelectionStoreService from '../../store/selection/selection.store.service';\nimport ColumnService from '../data/columnService';\nimport { DataSourceState, getSourceItem } from '../../store/dataSource/data.store';\nimport { getFromEvent } from '../../utils/events';\n\ntype Config = {\n selectionStoreService: SelectionStoreService;\n dimensionRow: Observable<RevoGrid.DimensionSettingsState>;\n dimensionCol: Observable<RevoGrid.DimensionSettingsState>;\n columnService: ColumnService;\n dataStore: Observable<DataSourceState<RevoGrid.DataType, RevoGrid.DimensionRows>>;\n\n setTempRange(e: Selection.TempRange | null): Event;\n selectionChanged(e: Selection.ChangedRange): Event;\n rangeCopy(e: Selection.ChangedRange): Event;\n rangeDataApply(e: Edition.BeforeRangeSaveDataDetails): CustomEvent;\n setRange(e: Selection.RangeArea): boolean;\n clearRangeDataApply(e: {\n range: Selection.RangeArea\n }): CustomEvent<{\n range: Selection.RangeArea\n }>;\n\n getData(): any;\n};\n\nenum AutoFillType {\n selection = 'Selection',\n autoFill = 'AutoFill',\n}\n\nexport class AutoFillService {\n private autoFillType: AutoFillType | null = null;\n private autoFillInitial: Selection.Cell | null = null;\n private autoFillStart: Selection.Cell | null = null;\n private autoFillLast: Selection.Cell | null = null;\n\n private onMouseMoveAutofill: DebouncedFunc<(e: MouseEvent | TouchEvent, data: EventData) => void>;\n\n constructor(private sv: Config) {}\n\n /**\n * Render autofill box\n * @param range\n * @param selectionFocus\n */\n renderAutofill(range: Selection.RangeArea, selectionFocus: Selection.Cell) {\n let handlerStyle;\n if (range) {\n handlerStyle = getCell(range, this.sv.dimensionRow.state, this.sv.dimensionCol.state);\n } else {\n handlerStyle = getCell(\n {\n ...selectionFocus,\n x1: selectionFocus.x,\n y1: selectionFocus.y,\n },\n this.sv.dimensionRow.state,\n this.sv.dimensionCol.state,\n );\n }\n return (\n <div\n class={{\n [CELL_HANDLER_CLASS]: true,\n [MOBILE_CLASS]: true,\n }}\n style={{ left: `${handlerStyle.right}px`, top: `${handlerStyle.bottom}px` }}\n onMouseDown={(e: MouseEvent) => this.autoFillHandler(e)}\n onTouchStart={(e: TouchEvent) => this.autoFillHandler(e)}\n />\n );\n }\n\n private autoFillHandler(e: MouseEvent | TouchEvent, type = AutoFillType.autoFill) {\n let target: Element | null = null;\n if (e.target instanceof Element) {\n target = e.target;\n }\n if (!target) {\n return;\n }\n this.selectionStart(target, this.sv.getData(), type);\n e.preventDefault();\n }\n\n get isAutoFill() {\n return !!this.autoFillType;\n }\n\n /** Process mouse move events */\n selectionMouseMove(e: MouseEvent | TouchEvent) {\n // initiate mouse move debounce if not present\n if (!this.onMouseMoveAutofill) {\n this.onMouseMoveAutofill = debounce((e: MouseEvent | TouchEvent, data: EventData) => this.doAutofillMouseMove(e, data), 5);\n }\n if (this.isAutoFill) {\n this.onMouseMoveAutofill(e, this.sv.getData());\n }\n }\n\n private getFocus() {\n let focus = this.sv.selectionStoreService.focused;\n const range = this.sv.selectionStoreService.ranged;\n // there was an issue that it was taking last cell from range but focus was out\n if (!focus && range) {\n focus = { x: range.x, y: range.y };\n }\n return focus || null;\n }\n\n /**\n * Autofill logic:\n * on mouse move apply based on previous direction (if present)\n */\n private doAutofillMouseMove(event: MouseEvent | TouchEvent, data: EventData) {\n // if no initial - not started\n if (!this.autoFillInitial) {\n return;\n }\n const x = getFromEvent(event, 'clientX', MOBILE_CLASS);\n const y = getFromEvent(event, 'clientY', MOBILE_CLASS);\n // skip touch\n if (x === null || y === null) {\n return;\n }\n const current = getCurrentCell({ x, y }, data);\n\n // first time or direction equal to start(same as first time)\n if (!this.autoFillLast) {\n if (!this.autoFillLast) {\n this.autoFillLast = this.autoFillStart;\n }\n }\n\n // check if not the latest, if latest - do nothing\n if (isAfterLast(current, data)) {\n return;\n }\n this.autoFillLast = current;\n\n const isSame = current.x === this.autoFillInitial.x && current.y === this.autoFillInitial.y;\n // if same as initial - clear\n if (isSame) {\n this.sv.setTempRange(null);\n } else {\n this.sv.setTempRange({\n area: getRange(this.autoFillInitial, this.autoFillLast),\n type: this.autoFillType,\n });\n }\n }\n\n /**\n * Range selection started\n * Mode @param type:\n * Can be triggered from MouseDown selection on element\n * Or can be triggered on corner square drag\n */\n selectionStart(target: Element, data: EventData, type = AutoFillType.selection) {\n /** Get cell by autofill element */\n const { top, left } = target.getBoundingClientRect();\n this.autoFillInitial = this.getFocus();\n this.autoFillType = type;\n this.autoFillStart = getCurrentCell({ x: left, y: top }, data);\n }\n\n /**\n * Clear current range selection\n * on mouse up and mouse leave events\n */ \n clearAutoFillSelection() {\n // Apply autofill values on mouse up if present\n if (this.autoFillInitial) {\n // Get latest\n this.autoFillInitial = this.getFocus();\n\n // Apply range data if present\n if (this.autoFillType === AutoFillType.autoFill) {\n const range = getRange(this.autoFillInitial, this.autoFillLast);\n if (range) {\n const {\n defaultPrevented: stopApply,\n detail: { range: newRange }\n } = this.sv.clearRangeDataApply({\n range,\n });\n if (!stopApply) {\n this.applyRangeWithData(newRange);\n } else {\n // if prevented - clear temp range\n this.sv.setTempRange(null);\n }\n }\n } else {\n this.applyRangeOnly(this.autoFillInitial, this.autoFillLast);\n }\n }\n\n this.autoFillType = null;\n this.autoFillInitial = null;\n this.autoFillLast = null;\n this.autoFillStart = null;\n }\n\n /** Trigger range apply events and handle responses */\n onRangeApply(data: RevoGrid.DataLookup, range: Selection.RangeArea): void {\n const models: RevoGrid.DataLookup = {};\n for (let rowIndex in data) {\n models[rowIndex] = getSourceItem(this.sv.dataStore, parseInt(rowIndex, 10));\n }\n const {\n defaultPrevented: stopRange,\n detail,\n } = this.sv.rangeDataApply({\n data,\n models,\n type: this.sv.dataStore.get('type'),\n });\n if (!stopRange) {\n this.sv.columnService.applyRangeData(detail.data);\n }\n this.sv.setRange(range);\n }\n\n /** Apply range and copy data during range application */\n private applyRangeWithData(newRange: Selection.RangeArea) {\n const oldRange = this.sv.selectionStoreService.ranged;\n const rangeData: Selection.ChangedRange = {\n type: this.sv.dataStore.get('type'),\n newData: {},\n mapping: {},\n newRange,\n oldRange,\n };\n const { mapping, changed } = this.sv.columnService.getRangeData(rangeData, this.sv.columnService.columns);\n rangeData.newData = changed;\n rangeData.mapping = mapping;\n let e = this.sv.selectionChanged(rangeData);\n\n // if default prevented - clear range\n if (e.defaultPrevented) {\n this.sv.setTempRange(null);\n return;\n }\n\n e = this.sv.rangeCopy(rangeData);\n if (e.defaultPrevented) {\n this.sv.setRange(newRange);\n return;\n }\n this.onRangeApply(rangeData.newData, newRange);\n }\n\n /**\n * Update range selection only,\n * no data change (mouse selection)\n */\n private applyRangeOnly(start?: Selection.Cell, end?: Selection.Cell) {\n // no changes to apply\n if (!start || !end) {\n return;\n }\n\n const newRange = getRange(start, end);\n this.sv.setRange(newRange);\n }\n}\n","import { h } from '@stencil/core';\nimport SelectionStoreService from '../../store/selection/selection.store.service';\nimport { Observable, RevoGrid, Selection } from '../../interfaces';\nimport { getRange } from '../../store/selection/selection.helpers';\nimport ColumnService from '../data/columnService';\nimport { DataSourceState } from '../../store/dataSource/data.store';\n\ntype Config = {\n selectionStoreService: SelectionStoreService;\n columnService: ColumnService;\n dataStore: Observable<DataSourceState<RevoGrid.DataType, RevoGrid.DimensionRows>>;\n rangeApply(data: RevoGrid.DataLookup, range: Selection.RangeArea): void;\n rangeCopy(range: Selection.RangeArea): any;\n rangeClear(): void;\n beforeCopy(range: Selection.RangeArea): CustomEvent;\n beforePaste(data: RevoGrid.DataLookup, range: Selection.RangeArea): CustomEvent;\n};\n\nexport class ClipboardService {\n private clipboard: HTMLRevogrClipboardElement;\n constructor(private sv: Config) {}\n\n renderClipboard(readonly = false) {\n return <revogr-clipboard\n readonly={readonly}\n onCopyRegion={e => this.onCopy(e.detail)}\n onClearRegion={() => this.sv.rangeClear()}\n ref={e => (this.clipboard = e)}\n onPasteRegion={e => this.onPaste(e.detail)} />;\n }\n private getRegion() {\n const focus = this.sv.selectionStoreService.focused;\n let range = this.sv.selectionStoreService.ranged;\n if (!range) {\n range = getRange(focus, focus);\n }\n return range;\n }\n private onCopy(e: DataTransfer) {\n const range = this.getRegion();\n const canCopyEvent = this.sv.beforeCopy(range);\n if (canCopyEvent.defaultPrevented) {\n return false;\n }\n const data = this.sv.rangeCopy(range);\n this.clipboard.doCopy(e, data);\n return true;\n }\n\n private onPaste(data: string[][]) {\n const focus = this.sv.selectionStoreService.focused;\n const isEditing = this.sv.selectionStoreService.edited !== null;\n if (!focus || isEditing) {\n return;\n }\n let { changed, range } = this.sv.columnService.getTransformedDataToApply(focus, data);\n const { defaultPrevented: canPaste } = this.sv.beforePaste(changed, range);\n if (canPaste) {\n return;\n }\n this.sv.rangeApply(changed, range);\n }\n}\n","@mixin autofill-handle($handler-size: 14px, $icon-size: 10px) {\n .autofill-handle {\n position: absolute;\n width: $handler-size;\n height: $handler-size;\n margin-left: -$handler-size + 1;\n margin-top: -$handler-size + 1;\n z-index: 10;\n cursor: crosshair;\n\n &::before {\n content: '';\n position: absolute;\n right: 0;\n bottom: 0;\n width: $icon-size;\n height: $icon-size;\n background: $selection-border;\n border: 1px solid white;\n box-sizing: border-box;\n }\n }\n}\n\nrevogr-overlay-selection {\n display: block;\n position: relative;\n width: 100%;\n\n\n @include autofill-handle;\n\n &.mobile {\n @include autofill-handle(30px, 12px);\n }\n\n .selection-border-range {\n position: absolute;\n pointer-events: none;\n z-index: 9;\n\n .range-handlers {\n height: 100%;\n background-color: transparent;\n width: calc(50% + (50% / 2));\n max-width: 50px;\n min-width: 20px;\n left: 50%;\n transform: translateX(-50%);\n position: absolute;\n\n $btn-size: 20px;\n $handler-w: 15px;\n $handler-h: 5px;\n \n > span {\n pointer-events: auto;\n height: $btn-size;\n width: $btn-size;\n position: absolute;\n left: 50%;\n transform: translateX(-50%);\n\n\n &:before, &:after {\n position: absolute;\n border-radius: 5px;\n width: $handler-w;\n height: $handler-h;\n left: 50%;\n transform: translateX(-50%);\n background-color: rgba(black, 20%);\n }\n &:first-child {\n top: -($handler-h + 2px);\n &:before{\n content: '';\n top: 0;\n }\n }\n &:last-child {\n bottom: -($handler-h + 2px);\n &:after{\n content: '';\n bottom: 0;\n }\n }\n }\n }\n @include selection();\n }\n\n revogr-edit {\n z-index: 10;\n }\n}\n","import { Component, Event, EventEmitter, h, Host, Listen, Prop, VNode, Element, Watch } from '@stencil/core';\n\nimport { AllDimensionType, ApplyFocusEvent, FocusRenderEvent, Edition, Observable, RevoGrid, Selection, DragStartEvent } from '../../interfaces';\nimport ColumnService from '../data/columnService';\nimport SelectionStoreService from '../../store/selection/selection.store.service';\nimport { codesLetter } from '../../utils/keyCodes';\nimport { MOBILE_CLASS, SELECTION_BORDER_CLASS } from '../../utils/consts';\nimport { DataSourceState } from '../../store/dataSource/data.store';\nimport { isRangeSingleCell } from '../../store/selection/selection.helpers';\nimport { getCurrentCell, getElStyle } from './selection.utils';\nimport { isEditInput } from './editors/edit.utils';\nimport { KeyboardService } from './keyboard.service';\nimport { AutoFillService } from './autofill.service';\nimport { ClipboardService } from './clipboard.service';\nimport { getFromEvent, verifyTouchTarget } from '../../utils/events';\n\n@Component({\n tag: 'revogr-overlay-selection',\n styleUrl: 'revogr-overlay-style.scss',\n})\nexport class OverlaySelection {\n\n @Element() element: HTMLElement;\n\n // --------------------------------------------------------------------------\n //\n // Properties\n //\n // --------------------------------------------------------------------------\n\n /**\n * If readonly mode enables\n */\n @Prop() readonly: boolean;\n /**\n * Range selection mode\n */\n @Prop() range: boolean;\n /**\n * Enable revogr-order-editor component (read more in revogr-order-editor component)\n * Allows D&D\n */\n @Prop() canDrag: boolean;\n\n /**\n * Enable revogr-clipboard component (read more in revogr-clipboard component)\n * Allows copy/paste\n */\n @Prop() useClipboard: boolean;\n\n // --------------------------------------------------------------------------\n //\n // Dynamic stores\n //\n // --------------------------------------------------------------------------\n @Prop() selectionStore: Observable<Selection.SelectionStoreState>;\n @Prop() dimensionRow: Observable<RevoGrid.DimensionSettingsState>;\n @Prop() dimensionCol: Observable<RevoGrid.DimensionSettingsState>;\n\n // --------------------------------------------------------------------------\n //\n // Static stores, not expected to change during component lifetime\n //\n // --------------------------------------------------------------------------\n\n /**\n * Row data store\n */\n @Prop() dataStore: Observable<DataSourceState<RevoGrid.DataType, RevoGrid.DimensionRows>>;\n\n /**\n * Column data store\n */\n @Prop() colData: Observable<DataSourceState<RevoGrid.ColumnRegular, RevoGrid.DimensionCols>>;\n /**\n * Last cell position\n */\n @Prop() lastCell: Selection.Cell;\n /**\n * Custom editors register\n */\n @Prop() editors: Edition.Editors;\n /**\n * If true applys changes when cell closes if not Escape\n */\n @Prop() applyChangesOnClose: boolean = false;\n /**\n * Additional data to pass to renderer\n */\n @Prop() additionalData: any;\n\n /**\n * Is mobile view mode\n */\n @Prop() isMobileDevice: boolean;\n\n // --------------------------------------------------------------------------\n //\n // Events\n //\n // --------------------------------------------------------------------------\n\n /**\n * Before clipboard copy happened\n */\n @Event({ cancelable: true }) internalCopy: EventEmitter;\n /**\n * Before paste happened\n */\n @Event({ cancelable: true }) internalPaste: EventEmitter;\n\n @Event({ cancelable: true }) internalCellEdit: EventEmitter<Edition.BeforeSaveDataDetails>;\n @Event({ cancelable: true }) beforeFocusCell: EventEmitter<Edition.BeforeSaveDataDetails>;\n\n /**\n * Set edit cell\n */\n @Event() setEdit: EventEmitter<Edition.BeforeEdit>;\n @Event({ eventName: 'before-apply-range' }) beforeApplyRange: EventEmitter<FocusRenderEvent>;\n @Event({ eventName: 'before-set-range' }) beforeSetRange: EventEmitter;\n @Event({ eventName: 'before-edit-render' }) beforeEditRender: EventEmitter<FocusRenderEvent>;\n @Event() setRange: EventEmitter<Selection.RangeArea & { type: RevoGrid.MultiDimensionType }>;\n @Event({ eventName: 'selectall' }) selectAll: EventEmitter;\n /**\n * Used for editors support when close requested\n */\n @Event() cancelEdit: EventEmitter;\n @Event() setTempRange: EventEmitter<Selection.TempRange | null>;\n\n @Event() applyFocus: EventEmitter<FocusRenderEvent>;\n @Event() focusCell: EventEmitter<ApplyFocusEvent>;\n /** Range data apply */\n @Event() beforeRangeDataApply: EventEmitter<FocusRenderEvent>;\n /** Selection range changed */\n @Event({ cancelable: true }) internalSelectionChanged: EventEmitter<Selection.ChangedRange>;\n /** Selection range changed */\n @Event({ cancelable: true, bubbles: true }) beforeRangeCopyApply: EventEmitter<Selection.ChangedRange>;\n\n /** Range data apply */\n @Event({ cancelable: true }) internalRangeDataApply: EventEmitter<Edition.BeforeRangeSaveDataDetails>;\n /** Range copy */\n @Event({ cancelable: true }) rangeClipboardCopy: EventEmitter;\n @Event({ cancelable: true }) rangeClipboardPaste: EventEmitter;\n\n protected columnService: ColumnService;\n\n protected selectionStoreService: SelectionStoreService;\n private keyboardService: KeyboardService | null = null;\n private autoFillService: AutoFillService | null = null;\n private clipboardService: ClipboardService | null = null;\n private orderEditor: HTMLRevogrOrderEditorElement;\n private revogrEdit: HTMLRevogrEditElement | null = null;\n /**\n * Runs before cell save\n * Can be used to override or cancel original save\n */\n @Event({ eventName: 'before-cell-save', cancelable: true }) beforeCellSave: EventEmitter;\n // --------------------------------------------------------------------------\n //\n // Listeners\n //\n // --------------------------------------------------------------------------\n @Listen('touchmove', { target: 'document' })\n @Listen('mousemove', { target: 'document' })\n onMouseMove(e: MouseEvent | TouchEvent) {\n if (this.selectionStoreService.focused) {\n this.autoFillService.selectionMouseMove(e);\n }\n }\n\n\n /** Action finished inside of the document */\n /** Pointer left document, clear any active operation */\n @Listen('touchend', { target: 'document' })\n @Listen('mouseup', { target: 'document' })\n @Listen('mouseleave', { target: 'document' })\n onMouseUp() {\n this.autoFillService.clearAutoFillSelection();\n }\n\n /** Row drag started */\n @Listen('dragStartCell') onCellDrag(e: CustomEvent<DragStartEvent>) {\n this.orderEditor?.dragStart(e.detail);\n }\n\n /** Get keyboard down from element */\n @Listen('keyup', { target: 'document' }) onKeyUp(e: KeyboardEvent) {\n this.keyboardService?.keyUp(e);\n }\n\n /** Get keyboard down from element */\n @Listen('keydown', { target: 'document' }) onKeyDown(e: KeyboardEvent) {\n if (e.defaultPrevented) {\n return;\n }\n this.keyboardService?.keyDown(e, this.range);\n }\n\n // selection & keyboard\n @Watch('selectionStore') selectionServiceSet(s: Observable<Selection.SelectionStoreState>) {\n this.selectionStoreService = new SelectionStoreService(s, {\n changeRange: range => this.triggerRangeEvent(range),\n focus: (focus, end) => this.doFocus(focus, end),\n });\n\n this.keyboardService = new KeyboardService({\n selectionStoreService: this.selectionStoreService,\n selectionStore: s,\n range: r => this.selectionStoreService.changeRange(r),\n focusNext: (f, next) => this.doFocus(f, f, next),\n applyEdit: val => {\n if (this.readonly) {\n return;\n }\n this.doEdit(val);\n },\n cancelEdit: async () => {\n await this.revogrEdit.cancel();\n this.closeEdit();\n },\n clearCell: () => !this.readonly && this.clearCell(),\n internalPaste: () => !this.readonly && this.internalPaste.emit(),\n getData: () => this.getData(),\n selectAll: () => this.selectAll.emit(),\n });\n this.createAutoFillService();\n this.createClipboardService();\n }\n // autofill\n @Watch('dimensionRow')\n @Watch('dimensionCol')\n createAutoFillService() {\n this.autoFillService = new AutoFillService({\n selectionStoreService: this.selectionStoreService,\n dimensionRow: this.dimensionRow,\n dimensionCol: this.dimensionCol,\n columnService: this.columnService,\n dataStore: this.dataStore,\n\n clearRangeDataApply: e =>\n this.beforeRangeDataApply.emit({\n ...e,\n ...this.types,\n }),\n setTempRange: e => this.setTempRange.emit(e),\n selectionChanged: e => this.internalSelectionChanged.emit(e),\n rangeCopy: e => this.beforeRangeCopyApply.emit(e),\n rangeDataApply: e => this.internalRangeDataApply.emit(e),\n\n setRange: e => this.triggerRangeEvent(e),\n getData: () => this.getData(),\n });\n }\n\n // columns\n @Watch('dataStore')\n @Watch('colData')\n columnServiceSet() {\n this.columnService?.destroy();\n this.columnService = new ColumnService(this.dataStore, this.colData);\n this.createAutoFillService();\n this.createClipboardService();\n }\n\n // clipboard\n createClipboardService() {\n this.clipboardService = new ClipboardService({\n selectionStoreService: this.selectionStoreService,\n columnService: this.columnService,\n dataStore: this.dataStore,\n rangeApply: (d, r) => this.autoFillService.onRangeApply(d, r),\n rangeCopy: range => {\n if (!range) {\n return undefined;\n }\n const { data, mapping } = this.columnService.copyRangeArray(range, this.dataStore);\n const event = this.rangeClipboardCopy.emit({\n range,\n data,\n mapping,\n ...this.types,\n });\n if (event.defaultPrevented) {\n return undefined;\n }\n return event.detail.data;\n },\n rangeClear: () => !this.readonly && this.clearCell(),\n beforeCopy: range => this.internalCopy.emit(range),\n beforePaste: (data, range) => {\n return this.rangeClipboardPaste.emit({\n data,\n range,\n ...this.types,\n });\n },\n });\n }\n\n connectedCallback() {\n this.columnServiceSet();\n this.selectionServiceSet(this.selectionStore);\n }\n\n disconnectedCallback() {\n this.columnService?.destroy();\n }\n\n private renderRange(range: Selection.RangeArea) {\n const style = getElStyle(range, this.dimensionRow.state, this.dimensionCol.state);\n return [\n <div class={SELECTION_BORDER_CLASS} style={style}>\n {this.isMobileDevice && <div class=\"range-handlers\"><span class={MOBILE_CLASS}></span><span class={MOBILE_CLASS}></span></div>}\n </div>\n ];\n }\n\n private renderEditCell() {\n // if can edit\n const editCell = this.selectionStore.get('edit');\n if (this.readonly || !editCell) {\n return null;\n }\n const val = editCell.val || this.columnService.getCellData(editCell.y, editCell.x);\n const editable = {\n ...editCell,\n ...this.columnService.getSaveData(editCell.y, editCell.x, val),\n };\n const renderEvent = this.beforeEditRender.emit({\n range: {\n ...editCell,\n x1: editCell.x,\n y1: editCell.y,\n },\n ...this.types,\n });\n if (renderEvent.defaultPrevented) {\n return null;\n }\n\n const {\n detail: { range },\n } = renderEvent;\n const style = getElStyle(range, this.dimensionRow.state, this.dimensionCol.state);\n return (\n <revogr-edit\n ref={el => {\n this.revogrEdit = el;\n }}\n onCellEdit={e => {\n const saveEv = this.beforeCellSave.emit(e.detail);\n if (!saveEv.defaultPrevented) {\n this.cellEdit(saveEv.detail);\n }\n\n // if not clear navigate to next cell after edit\n if (!saveEv.detail.preventFocus) {\n this.focusNext();\n }\n }}\n onCloseEdit={e => this.closeEdit(e)}\n editCell={editable}\n saveOnClose={this.applyChangesOnClose}\n column={this.columnService.columns[editCell.x]}\n editor={this.columnService.getCellEditor(editCell.y, editCell.x, this.editors)}\n additionalData={this.additionalData}\n style={style}\n />\n );\n }\n\n render() {\n const els: VNode[] = [];\n const editCell = this.renderEditCell();\n if (editCell) {\n els.push(editCell);\n } else {\n const range = this.selectionStoreService.ranged;\n const selectionFocus = this.selectionStoreService.focused;\n if ((range || selectionFocus) && this.useClipboard) {\n els.push(this.clipboardService.renderClipboard(this.readonly));\n }\n\n if (range) {\n els.push(...this.renderRange(range));\n }\n if (selectionFocus && !this.readonly && this.range) {\n els.push(this.autoFillService.renderAutofill(range, selectionFocus));\n }\n if (this.canDrag) {\n els.push(\n <revogr-order-editor\n ref={e => (this.orderEditor = e)}\n dataStore={this.dataStore}\n dimensionRow={this.dimensionRow}\n dimensionCol={this.dimensionCol}\n parent={this.element}\n onInternalRowDragStart={e => this.onRowDragStart(e)}\n />,\n );\n }\n }\n return (\n <Host\n class={{ mobile: this.isMobileDevice }}\n // run edit on dblclick\n onDblClick={(e: MouseEvent) => {\n // if dblclick prevented outside edit will not start\n if (!e.defaultPrevented) {\n this.doEdit();\n }\n }}\n onMouseDown={(e: MouseEvent) => this.onElementMouseDown(e)}\n onTouchStart={(e: TouchEvent) => this.onElementMouseDown(e, true)}>\n {els}\n <slot name=\"data\" />\n </Host>\n );\n }\n\n private doFocus(focus: Selection.Cell, end: Selection.Cell, next?: Partial<Selection.Cell>) {\n const { defaultPrevented } = this.beforeFocusCell.emit(this.columnService.getSaveData(focus.y, focus.x));\n if (defaultPrevented) {\n return false;\n }\n const evData = {\n range: {\n ...focus,\n x1: end.x,\n y1: end.y,\n },\n next,\n ...this.types,\n };\n const applyEvent = this.applyFocus.emit(evData);\n if (applyEvent.defaultPrevented) {\n return false;\n }\n const { range } = applyEvent.detail;\n return !this.focusCell.emit({\n focus: {\n x: range.x,\n y: range.y,\n },\n end: {\n x: range.x1,\n y: range.y1,\n },\n ...applyEvent.detail,\n }).defaultPrevented;\n }\n\n private triggerRangeEvent(range: Selection.RangeArea) {\n const type = this.types.rowType;\n const applyEvent = this.beforeApplyRange.emit({\n range: { ...range },\n ...this.types,\n });\n if (applyEvent.defaultPrevented) {\n return false;\n }\n const data = this.columnService.getRangeTransformedToProps(applyEvent.detail.range, this.dataStore);\n let e = this.beforeSetRange.emit(data);\n e = this.setRange.emit({ ...applyEvent.detail.range, type });\n if (e.defaultPrevented) {\n return false;\n }\n return !e.defaultPrevented;\n }\n\n protected onElementMouseDown(e: MouseEvent | TouchEvent, touch = false) {\n // Ignore focus if clicked input\n if (isEditInput(e.target as HTMLElement | undefined)) {\n return;\n }\n const data = this.getData();\n if (e.defaultPrevented) {\n return;\n }\n const x = getFromEvent(e, 'clientX');\n const y = getFromEvent(e, 'clientY');\n // skip touch\n if (x === null || y === null) {\n return;\n }\n // Regular cell click\n const focusCell = getCurrentCell({ x, y }, data);\n this.selectionStoreService.focus(focusCell, this.range && e.shiftKey);\n\n // Initiate autofill selection\n if (this.range) {\n this.autoFillService.selectionStart(e.target as HTMLElement, data);\n if (!touch) {\n e.preventDefault();\n } else if (verifyTouchTarget((e as TouchEvent).touches[0], MOBILE_CLASS)) {\n e.preventDefault();\n }\n }\n }\n\n /** \n * Start cell editing\n */\n protected doEdit(val = '') {\n if (this.canEdit()) {\n const editCell = this.selectionStore.get('focus');\n const data = this.columnService.getSaveData(editCell.y, editCell.x);\n this.setEdit?.emit({\n ...data,\n val,\n });\n }\n }\n\n /**\n * Close editor event triggered\n * @param details - if requires focus next\n */\n private closeEdit(e?: CustomEvent<boolean>) {\n this.cancelEdit.emit();\n if (e?.detail) {\n this.focusNext();\n }\n }\n\n /** Edit finished, close cell and save */\n protected cellEdit(e: Edition.SaveDataDetails) {\n const dataToSave = this.columnService.getSaveData(e.rgRow, e.rgCol, e.val);\n this.internalCellEdit.emit(dataToSave);\n }\n\n private async focusNext() {\n const canFocus = await this.keyboardService.keyChangeSelection(\n new KeyboardEvent('keydown', {\n code: codesLetter.ARROW_DOWN,\n }),\n this.range,\n );\n if (!canFocus) {\n this.closeEdit();\n }\n }\n\n protected clearCell() {\n if (this.selectionStoreService.ranged && !isRangeSingleCell(this.selectionStoreService.ranged)) {\n const data = this.columnService.getRangeStaticData(this.selectionStoreService.ranged, '');\n this.autoFillService.onRangeApply(data, this.selectionStoreService.ranged);\n } else if (this.canEdit()) {\n const focused = this.selectionStoreService.focused;\n const cell = this.columnService.getSaveData(focused.y, focused.x);\n this.cellEdit({\n rgRow: focused.y,\n rgCol: focused.x,\n val: '',\n type: cell.type,\n prop: cell.prop,\n });\n }\n }\n\n private onRowDragStart({ detail }: CustomEvent<{ cell: Selection.Cell; text: string }>) {\n detail.text = this.columnService.getCellData(detail.cell.y, detail.cell.x);\n }\n\n /** Check if edit possible */\n protected canEdit() {\n if (this.readonly) {\n return false;\n }\n const editCell = this.selectionStoreService.focused;\n return editCell && !this.columnService?.isReadOnly(editCell.y, editCell.x);\n }\n\n get types(): AllDimensionType {\n return {\n rowType: this.dataStore.get('type'),\n colType: this.columnService.type,\n };\n }\n\n /** Collect data from element */\n protected getData() {\n return {\n el: this.element,\n rows: this.dimensionRow.state,\n cols: this.dimensionCol.state,\n lastCell: this.lastCell,\n };\n }\n}\n","import { VNode } from '@stencil/core';\nimport { RevoGrid } from '../../interfaces';\n\ntype HeaderRender = {\n (start: number): (h: RevoGrid.HyperFunc<VNode>, e: { rowIndex: number }) => number;\n};\nexport const RowHeaderRender: HeaderRender = s => (__, { rowIndex: i }) => s + i;\n","import { h, Host } from '@stencil/core';\nimport { Component, Prop, Event, EventEmitter } from '@stencil/core';\nimport { RevoGrid } from '../../interfaces';\nimport DataStore from '../../store/dataSource/data.store';\nimport ViewportStore from '../../store/viewPort/viewport.store';\nimport { ROW_HEADER_TYPE, UUID } from '../../utils/consts';\nimport { ElementScroll } from '../revoGrid/viewport.scrolling.service';\nimport { ViewportData } from '../revoGrid/viewport.interfaces';\nimport { RowHeaderRender } from './row-header-render';\nimport { calculateRowHeaderSize } from '../../utils/row-header-utils';\nimport { HEADER_SLOT } from '../revoGrid/viewport.helpers';\nimport { JSX } from '../..';\n\n/**\n * Row headers component\n * Visible on the left side of the table\n */\n\n@Component({ tag: 'revogr-row-headers' })\nexport class RevogrRowHeaders {\n @Prop() height: number;\n\n @Prop() dataPorts: ViewportData[];\n @Prop() headerProp: Record<string, any>;\n @Prop() uiid: string;\n @Prop() rowClass: string;\n\n @Prop() resize: boolean;\n @Prop() rowHeaderColumn: RevoGrid.RowHeaders;\n /** Additional data to pass to renderer */\n @Prop() additionalData: any;\n\n @Event({ bubbles: false }) scrollViewport: EventEmitter<RevoGrid.ViewPortScrollEvent>;\n @Event({ bubbles: false }) elementToScroll: EventEmitter<ElementScroll>;\n\n render() {\n const dataViews: HTMLElement[] = [];\n const viewport = new ViewportStore('colPinStart');\n\n /** render viewports rows */\n let totalLength = 1;\n for (let data of this.dataPorts) {\n const itemCount = data.dataStore.get('items').length;\n // initiate row data\n const dataStore = new DataStore<RevoGrid.DataType, RevoGrid.DimensionRows>(data.type);\n dataStore.updateData(data.dataStore.get('source'));\n // initiate column data\n const colData = new DataStore<RevoGrid.ColumnRegular, RevoGrid.DimensionCols>('colPinStart');\n const column = {\n cellTemplate: RowHeaderRender(totalLength),\n ...this.rowHeaderColumn,\n };\n colData.updateData([column]);\n\n const viewData = {\n ...data,\n rowClass: this.rowClass,\n dataStore: dataStore.store,\n colData: colData.store,\n viewportCol: viewport.store,\n readonly: true,\n range: false,\n };\n dataViews.push(<revogr-data {...viewData} />);\n totalLength += itemCount;\n }\n\n const colSize = calculateRowHeaderSize(totalLength, this.rowHeaderColumn);\n viewport.setViewport({\n realCount: 1,\n virtualSize: 0,\n items: [\n {\n size: colSize,\n start: 0,\n end: colSize,\n itemIndex: 0,\n },\n ],\n });\n\n const parent = `${this.uiid}-rowHeaders`;\n const viewportScroll = {\n [UUID]: parent,\n contentHeight: this.height,\n contentWidth: 0,\n style: { minWidth: `${colSize}px` },\n ref: (el: ElementScroll) => this.elementToScroll.emit(el),\n onScrollViewport: (e: CustomEvent) => this.scrollViewport.emit(e.detail),\n };\n const viewportHeader: JSX.RevogrHeader & { slot: string } = {\n ...this.headerProp,\n colData: typeof this.rowHeaderColumn === 'object' ? [this.rowHeaderColumn] : [],\n viewportCol: viewport.store,\n canResize: false,\n type: ROW_HEADER_TYPE,\n parent,\n slot: HEADER_SLOT,\n };\n return (\n <Host class={ { [ROW_HEADER_TYPE]: true } } key={ROW_HEADER_TYPE}>\n <revogr-viewport-scroll {...viewportScroll}>\n <revogr-header {...viewportHeader} />\n {dataViews}\n </revogr-viewport-scroll>\n </Host>\n );\n }\n}\n","revogr-scroll-virtual {\n &[auto-hide] {\n position: absolute;\n z-index: 100;\n\n &.vertical {\n right: 0;\n top: 0;\n\n &:hover {\n min-width: 20px;\n }\n }\n\n &.horizontal {\n bottom: 0;\n left: 0;\n\n &:hover {\n min-height: 20px;\n }\n }\n }\n\n &.vertical {\n overflow-y: auto;\n overflow-x: hidden;\n height: 100%;\n\n > div {\n width: 1px;\n }\n }\n\n &.horizontal {\n overflow-x: auto;\n overflow-y: hidden;\n width: 100%;\n\n > div {\n height: 1px;\n }\n }\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Method, Prop } from '@stencil/core';\nimport LocalScrollService from '../../services/localScrollService';\nimport { Observable, RevoGrid } from '../../interfaces';\nimport { getScrollbarWidth } from '../../utils';\n\n@Component({\n tag: 'revogr-scroll-virtual',\n styleUrl: 'revogr-scroll-style.scss',\n})\nexport class RevogrScrollVirtual {\n private scrollSize: number = 0;\n private isAutoHide: boolean = false;\n private autoHideTimeout: number = 0;\n private scrollService: LocalScrollService;\n\n @Element() element: HTMLElement;\n\n @Prop() dimension: RevoGrid.DimensionType = 'rgRow';\n @Prop() viewportStore: Observable<RevoGrid.ViewportState>;\n @Prop() dimensionStore: Observable<RevoGrid.DimensionSettingsState>;\n\n @Event() scrollVirtual: EventEmitter<RevoGrid.ViewPortScrollEvent>;\n\n @Method()\n async setScroll(e: RevoGrid.ViewPortScrollEvent): Promise<void> {\n if (this.dimension !== e.dimension) {\n return;\n }\n this.scrollService?.setScroll(e);\n }\n\n // update on delta in case we don't know existing position or external change\n @Method()\n async changeScroll(e: RevoGrid.ViewPortScrollEvent): Promise<RevoGrid.ViewPortScrollEvent> {\n if (e.delta) {\n switch (e.dimension) {\n case 'rgCol':\n e.coordinate = this.element.scrollLeft + e.delta;\n break;\n case 'rgRow':\n e.coordinate = this.element.scrollTop + e.delta;\n break;\n }\n this.setScroll(e);\n }\n return e;\n }\n\n set size(s: number) {\n if (this.dimension === 'rgRow') {\n this.element.style.minWidth = `${s}px`;\n return;\n }\n this.element.style.minHeight = `${s}px`;\n }\n\n get size(): number {\n if (this.dimension === 'rgRow') {\n return this.element.clientHeight;\n }\n return this.element.clientWidth;\n }\n\n connectedCallback(): void {\n this.scrollService = new LocalScrollService({\n beforeScroll: e => this.scrollVirtual.emit(e),\n afterScroll: e => {\n const type = e.dimension === 'rgRow' ? 'scrollTop' : 'scrollLeft';\n this.element[type] = e.coordinate;\n },\n });\n }\n\n disconnectedCallback(): void {\n clearTimeout(this.autoHideTimeout);\n }\n\n componentWillLoad(): void {\n this.scrollSize = getScrollbarWidth(document);\n this.isAutoHide = !this.scrollSize;\n }\n\n componentDidRender(): void {\n const type = this.dimension === 'rgRow' ? 'scrollHeight' : 'scrollWidth';\n if (this.element[type] > this.size) {\n this.size = this.scrollSize;\n } else {\n this.size = 0;\n }\n this.scrollService.setParams(\n {\n contentSize: this.dimensionStore.get('realSize'),\n clientSize: this.size,\n virtualSize: this.viewportStore.get('virtualSize'),\n },\n this.dimension,\n );\n }\n\n onScroll(e: MouseEvent): void {\n let type: 'scrollLeft' | 'scrollTop' = 'scrollLeft';\n if (this.dimension === 'rgRow') {\n type = 'scrollTop';\n }\n if (this.isAutoHide) {\n this.size = 20;\n this.autoHideTimeout = this.autoHide(this.autoHideTimeout);\n }\n const target: HTMLElement = e.target as HTMLElement;\n this.scrollService?.scroll(target[type] || 0, this.dimension);\n }\n\n autoHide(timeout?: number): number {\n clearTimeout(timeout);\n return (setTimeout(() => {\n this.size = 0;\n }, 6000) as unknown) as number;\n }\n\n render() {\n const sizeType = this.dimension === 'rgRow' ? 'height' : 'width';\n return (\n <Host {...{ 'auto-hide': this.isAutoHide }} onScroll={(e: MouseEvent) => this.onScroll(e)}>\n <div style={{ [sizeType]: `${this.extContentSize(this.viewportStore.get('virtualSize'), this.dimensionStore.get('realSize'))}px` }} />\n </Host>\n );\n }\n\n private extContentSize(vsize: number, contentSize: number): number {\n return LocalScrollService.getVirtualContentSize(contentSize, this.size, vsize);\n }\n}\n",".temp-bg-range {\n display: block !important;\n position: absolute;\n pointer-events: none;\n z-index: 9;\n border: 1px solid rgb(255, 94, 0);\n box-sizing: border-box;\n\n &.Selection {\n border: 1px dashed gray;\n }\n\n > div {\n width: 1px;\n height: 1px;\n position: absolute;\n\n &.top {\n top: -1px;\n }\n\n &.bottom {\n bottom: -1px;\n }\n\n &.left {\n left: -1px;\n }\n\n &.right {\n right: -1px;\n }\n }\n}\n","import { Component, Prop, h, Host } from '@stencil/core';\nimport { throttle } from 'lodash';\nimport { Observable, RevoGrid, Selection } from '../../interfaces';\nimport { TMP_SELECTION_BG_CLASS } from '../../utils/consts';\nimport { getElStyle } from '../overlay/selection.utils';\n\n/**\n * Temporary range selection\n */\n@Component({\n tag: 'revogr-temp-range',\n styleUrl: 'revogr-temp-range-style.scss',\n})\nexport class RevogrFocus {\n el: HTMLElement;\n\n // --------------------------------------------------------------------------\n //\n // Dynamic stores\n //\n // --------------------------------------------------------------------------\n\n /**\n * Selection store, shows current selection and focus\n */\n @Prop() selectionStore: Observable<Selection.SelectionStoreState>;\n\n /**\n * Dimension row store\n */\n @Prop() dimensionRow: Observable<RevoGrid.DimensionSettingsState>;\n /**\n * Dimension column store\n */\n @Prop() dimensionCol: Observable<RevoGrid.DimensionSettingsState>;\n private readonly onChange = throttle((e: HTMLElement) => this.doChange(e), 300);\n\n private doChange(e: HTMLElement): void {\n e?.scrollIntoView({\n block: 'nearest',\n inline: 'nearest',\n });\n }\n\n componentDidRender(): void {\n if (this.el) {\n this.onChange(this.el);\n }\n }\n\n render() {\n const data = this.selectionStore.get('tempRange');\n const type = this.selectionStore.get('tempRangeType');\n if (!data) {\n return;\n }\n let directionY = 'bottom';\n let derectionX = 'right';\n const range = this.getRange();\n if (!range) {\n return;\n }\n if (data.y < range.y) {\n directionY = 'top';\n }\n if (data.x < range.x) {\n derectionX = 'left';\n }\n const directionClass = `${derectionX} ${directionY}`;\n const style = getElStyle(data, this.dimensionRow.state, this.dimensionCol.state);\n return (\n <Host\n class={{\n [TMP_SELECTION_BG_CLASS]: true,\n [type || '']: true,\n }}\n style={style}\n hidden={false}\n >\n <div class={directionClass} ref={(e: HTMLElement) => (this.el = e)} />\n </Host>\n );\n }\n\n private getRange(): Selection.RangeArea | null {\n const range = this.selectionStore.get('range');\n if (range) {\n return range;\n }\n const focus = this.selectionStore.get('focus');\n if (!focus) {\n return null;\n }\n return {\n ...focus,\n x1: focus.x,\n y1: focus.y,\n };\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /*!
2
+ * Built by Revolist
3
+ */
4
+ import{c as n,h as r}from"./debounce-820b5a8b.js";import{G as t,j as u,l as e}from"./index-728bf6e3.js";var i=n((function(n,t){(function(){var u;var e="4.17.21";var i=200;var f="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",o="Expected a function",a="Invalid `variable` option passed into `_.template`";var c="__lodash_hash_undefined__";var l=500;var s="__lodash_placeholder__";var v=1,h=2,w=4;var p=1,y=2;var d=1,b=2,g=4,_=8,x=16,m=32,j=64,A=128,R=256,$=512;var E=30,k="...";var S=800,I=16;var C=1,U=2,O=3;var M=1/0,T=9007199254740991,F=17976931348623157e292,D=0/0;var L=4294967295,z=L-1,N=L>>>1;var W=[["ary",A],["bind",d],["bindKey",b],["curry",_],["curryRight",x],["flip",$],["partial",m],["partialRight",j],["rearg",R]];var Z="[object Arguments]",G="[object Array]",B="[object AsyncFunction]",P="[object Boolean]",q="[object Date]",H="[object DOMException]",J="[object Error]",V="[object Function]",Y="[object GeneratorFunction]",K="[object Map]",X="[object Number]",Q="[object Null]",nn="[object Object]",rn="[object Promise]",tn="[object Proxy]",un="[object RegExp]",en="[object Set]",fn="[object String]",on="[object Symbol]",an="[object Undefined]",cn="[object WeakMap]",ln="[object WeakSet]";var sn="[object ArrayBuffer]",vn="[object DataView]",hn="[object Float32Array]",wn="[object Float64Array]",pn="[object Int8Array]",yn="[object Int16Array]",dn="[object Int32Array]",bn="[object Uint8Array]",gn="[object Uint8ClampedArray]",_n="[object Uint16Array]",xn="[object Uint32Array]";var mn=/\b__p \+= '';/g,jn=/\b(__p \+=) '' \+/g,An=/(__e\(.*?\)|\b__t\)) \+\n'';/g;var Rn=/&(?:amp|lt|gt|quot|#39);/g,$n=/[&<>"']/g,En=RegExp(Rn.source),kn=RegExp($n.source);var Sn=/<%-([\s\S]+?)%>/g,In=/<%([\s\S]+?)%>/g,Cn=/<%=([\s\S]+?)%>/g;var Un=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,On=/^\w*$/,Mn=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;var Tn=/[\\^$.*+?()[\]{}|]/g,Fn=RegExp(Tn.source);var Dn=/^\s+/;var Ln=/\s/;var zn=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Nn=/\{\n\/\* \[wrapped with (.+)\] \*/,Wn=/,? & /;var Zn=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;var Gn=/[()=,{}\[\]\/\s]/;var Bn=/\\(\\)?/g;var Pn=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g;var qn=/\w*$/;var Hn=/^[-+]0x[0-9a-f]+$/i;var Jn=/^0b[01]+$/i;var Vn=/^\[object .+?Constructor\]$/;var Yn=/^0o[0-7]+$/i;var Kn=/^(?:0|[1-9]\d*)$/;var Xn=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g;var Qn=/($^)/;var nr=/['\n\r\u2028\u2029\\]/g;var rr="\\ud800-\\udfff",tr="\\u0300-\\u036f",ur="\\ufe20-\\ufe2f",er="\\u20d0-\\u20ff",ir=tr+ur+er,fr="\\u2700-\\u27bf",or="a-z\\xdf-\\xf6\\xf8-\\xff",ar="\\xac\\xb1\\xd7\\xf7",cr="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",lr="\\u2000-\\u206f",sr=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",vr="A-Z\\xc0-\\xd6\\xd8-\\xde",hr="\\ufe0e\\ufe0f",wr=ar+cr+lr+sr;var pr="['’]",yr="["+rr+"]",dr="["+wr+"]",br="["+ir+"]",gr="\\d+",_r="["+fr+"]",xr="["+or+"]",mr="[^"+rr+wr+gr+fr+or+vr+"]",jr="\\ud83c[\\udffb-\\udfff]",Ar="(?:"+br+"|"+jr+")",Rr="[^"+rr+"]",$r="(?:\\ud83c[\\udde6-\\uddff]){2}",Er="[\\ud800-\\udbff][\\udc00-\\udfff]",kr="["+vr+"]",Sr="\\u200d";var Ir="(?:"+xr+"|"+mr+")",Cr="(?:"+kr+"|"+mr+")",Ur="(?:"+pr+"(?:d|ll|m|re|s|t|ve))?",Or="(?:"+pr+"(?:D|LL|M|RE|S|T|VE))?",Mr=Ar+"?",Tr="["+hr+"]?",Fr="(?:"+Sr+"(?:"+[Rr,$r,Er].join("|")+")"+Tr+Mr+")*",Dr="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Lr="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",zr=Tr+Mr+Fr,Nr="(?:"+[_r,$r,Er].join("|")+")"+zr,Wr="(?:"+[Rr+br+"?",br,$r,Er,yr].join("|")+")";var Zr=RegExp(pr,"g");var Gr=RegExp(br,"g");var Br=RegExp(jr+"(?="+jr+")|"+Wr+zr,"g");var Pr=RegExp([kr+"?"+xr+"+"+Ur+"(?="+[dr,kr,"$"].join("|")+")",Cr+"+"+Or+"(?="+[dr,kr+Ir,"$"].join("|")+")",kr+"?"+Ir+"+"+Ur,kr+"+"+Or,Lr,Dr,gr,Nr].join("|"),"g");var qr=RegExp("["+Sr+rr+ir+hr+"]");var Hr=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;var Jr=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"];var Vr=-1;var Yr={};Yr[hn]=Yr[wn]=Yr[pn]=Yr[yn]=Yr[dn]=Yr[bn]=Yr[gn]=Yr[_n]=Yr[xn]=true;Yr[Z]=Yr[G]=Yr[sn]=Yr[P]=Yr[vn]=Yr[q]=Yr[J]=Yr[V]=Yr[K]=Yr[X]=Yr[nn]=Yr[un]=Yr[en]=Yr[fn]=Yr[cn]=false;var Kr={};Kr[Z]=Kr[G]=Kr[sn]=Kr[vn]=Kr[P]=Kr[q]=Kr[hn]=Kr[wn]=Kr[pn]=Kr[yn]=Kr[dn]=Kr[K]=Kr[X]=Kr[nn]=Kr[un]=Kr[en]=Kr[fn]=Kr[on]=Kr[bn]=Kr[gn]=Kr[_n]=Kr[xn]=true;Kr[J]=Kr[V]=Kr[cn]=false;var Xr={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"};var Qr={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};var nt={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"};var rt={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"};var tt=parseFloat,ut=parseInt;var et=typeof r=="object"&&r&&r.Object===Object&&r;var it=typeof self=="object"&&self&&self.Object===Object&&self;var ft=et||it||Function("return this")();var ot=t&&!t.nodeType&&t;var at=ot&&"object"=="object"&&n&&!n.nodeType&&n;var ct=at&&at.exports===ot;var lt=ct&&et.process;var st=function(){try{var n=at&&at.require&&at.require("util").types;if(n){return n}return lt&&lt.binding&&lt.binding("util")}catch(n){}}();var vt=st&&st.isArrayBuffer,ht=st&&st.isDate,wt=st&&st.isMap,pt=st&&st.isRegExp,yt=st&&st.isSet,dt=st&&st.isTypedArray;function bt(n,r,t){switch(t.length){case 0:return n.call(r);case 1:return n.call(r,t[0]);case 2:return n.call(r,t[0],t[1]);case 3:return n.call(r,t[0],t[1],t[2])}return n.apply(r,t)}function gt(n,r,t,u){var e=-1,i=n==null?0:n.length;while(++e<i){var f=n[e];r(u,f,t(f),n)}return u}function _t(n,r){var t=-1,u=n==null?0:n.length;while(++t<u){if(r(n[t],t,n)===false){break}}return n}function xt(n,r){var t=n==null?0:n.length;while(t--){if(r(n[t],t,n)===false){break}}return n}function mt(n,r){var t=-1,u=n==null?0:n.length;while(++t<u){if(!r(n[t],t,n)){return false}}return true}function jt(n,r){var t=-1,u=n==null?0:n.length,e=0,i=[];while(++t<u){var f=n[t];if(r(f,t,n)){i[e++]=f}}return i}function At(n,r){var t=n==null?0:n.length;return!!t&&Ft(n,r,0)>-1}function Rt(n,r,t){var u=-1,e=n==null?0:n.length;while(++u<e){if(t(r,n[u])){return true}}return false}function $t(n,r){var t=-1,u=n==null?0:n.length,e=Array(u);while(++t<u){e[t]=r(n[t],t,n)}return e}function Et(n,r){var t=-1,u=r.length,e=n.length;while(++t<u){n[e+t]=r[t]}return n}function kt(n,r,t,u){var e=-1,i=n==null?0:n.length;if(u&&i){t=n[++e]}while(++e<i){t=r(t,n[e],e,n)}return t}function St(n,r,t,u){var e=n==null?0:n.length;if(u&&e){t=n[--e]}while(e--){t=r(t,n[e],e,n)}return t}function It(n,r){var t=-1,u=n==null?0:n.length;while(++t<u){if(r(n[t],t,n)){return true}}return false}var Ct=Nt("length");function Ut(n){return n.split("")}function Ot(n){return n.match(Zn)||[]}function Mt(n,r,t){var u;t(n,(function(n,t,e){if(r(n,t,e)){u=t;return false}}));return u}function Tt(n,r,t,u){var e=n.length,i=t+(u?1:-1);while(u?i--:++i<e){if(r(n[i],i,n)){return i}}return-1}function Ft(n,r,t){return r===r?vu(n,r,t):Tt(n,Lt,t)}function Dt(n,r,t,u){var e=t-1,i=n.length;while(++e<i){if(u(n[e],r)){return e}}return-1}function Lt(n){return n!==n}function zt(n,r){var t=n==null?0:n.length;return t?Bt(n,r)/t:D}function Nt(n){return function(r){return r==null?u:r[n]}}function Wt(n){return function(r){return n==null?u:n[r]}}function Zt(n,r,t,u,e){e(n,(function(n,e,i){t=u?(u=false,n):r(t,n,e,i)}));return t}function Gt(n,r){var t=n.length;n.sort(r);while(t--){n[t]=n[t].value}return n}function Bt(n,r){var t,e=-1,i=n.length;while(++e<i){var f=r(n[e]);if(f!==u){t=t===u?f:t+f}}return t}function Pt(n,r){var t=-1,u=Array(n);while(++t<n){u[t]=r(t)}return u}function qt(n,r){return $t(r,(function(r){return[r,n[r]]}))}function Ht(n){return n?n.slice(0,yu(n)+1).replace(Dn,""):n}function Jt(n){return function(r){return n(r)}}function Vt(n,r){return $t(r,(function(r){return n[r]}))}function Yt(n,r){return n.has(r)}function Kt(n,r){var t=-1,u=n.length;while(++t<u&&Ft(r,n[t],0)>-1){}return t}function Xt(n,r){var t=n.length;while(t--&&Ft(r,n[t],0)>-1){}return t}function Qt(n,r){var t=n.length,u=0;while(t--){if(n[t]===r){++u}}return u}var nu=Wt(Xr);var ru=Wt(Qr);function tu(n){return"\\"+rt[n]}function uu(n,r){return n==null?u:n[r]}function eu(n){return qr.test(n)}function iu(n){return Hr.test(n)}function fu(n){var r,t=[];while(!(r=n.next()).done){t.push(r.value)}return t}function ou(n){var r=-1,t=Array(n.size);n.forEach((function(n,u){t[++r]=[u,n]}));return t}function au(n,r){return function(t){return n(r(t))}}function cu(n,r){var t=-1,u=n.length,e=0,i=[];while(++t<u){var f=n[t];if(f===r||f===s){n[t]=s;i[e++]=t}}return i}function lu(n){var r=-1,t=Array(n.size);n.forEach((function(n){t[++r]=n}));return t}function su(n){var r=-1,t=Array(n.size);n.forEach((function(n){t[++r]=[n,n]}));return t}function vu(n,r,t){var u=t-1,e=n.length;while(++u<e){if(n[u]===r){return u}}return-1}function hu(n,r,t){var u=t+1;while(u--){if(n[u]===r){return u}}return u}function wu(n){return eu(n)?bu(n):Ct(n)}function pu(n){return eu(n)?gu(n):Ut(n)}function yu(n){var r=n.length;while(r--&&Ln.test(n.charAt(r))){}return r}var du=Wt(nt);function bu(n){var r=Br.lastIndex=0;while(Br.test(n)){++r}return r}function gu(n){return n.match(Br)||[]}function _u(n){return n.match(Pr)||[]}var xu=function n(r){r=r==null?ft:mu.defaults(ft.Object(),r,mu.pick(ft,Jr));var t=r.Array,Ln=r.Date,Zn=r.Error,rr=r.Function,tr=r.Math,ur=r.Object,er=r.RegExp,ir=r.String,fr=r.TypeError;var or=t.prototype,ar=rr.prototype,cr=ur.prototype;var lr=r["__core-js_shared__"];var sr=ar.toString;var vr=cr.hasOwnProperty;var hr=0;var wr=function(){var n=/[^.]+$/.exec(lr&&lr.keys&&lr.keys.IE_PROTO||"");return n?"Symbol(src)_1."+n:""}();var pr=cr.toString;var yr=sr.call(ur);var dr=ft._;var br=er("^"+sr.call(vr).replace(Tn,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");var gr=ct?r.Buffer:u,_r=r.Symbol,xr=r.Uint8Array,mr=gr?gr.allocUnsafe:u,jr=au(ur.getPrototypeOf,ur),Ar=ur.create,Rr=cr.propertyIsEnumerable,$r=or.splice,Er=_r?_r.isConcatSpreadable:u,kr=_r?_r.iterator:u,Sr=_r?_r.toStringTag:u;var Ir=function(){try{var n=Hf(ur,"defineProperty");n({},"",{});return n}catch(n){}}();var Cr=r.clearTimeout!==ft.clearTimeout&&r.clearTimeout,Ur=Ln&&Ln.now!==ft.Date.now&&Ln.now,Or=r.setTimeout!==ft.setTimeout&&r.setTimeout;var Mr=tr.ceil,Tr=tr.floor,Fr=ur.getOwnPropertySymbols,Dr=gr?gr.isBuffer:u,Lr=r.isFinite,zr=or.join,Nr=au(ur.keys,ur),Wr=tr.max,Br=tr.min,Pr=Ln.now,qr=r.parseInt,Hr=tr.random,Xr=or.reverse;var Qr=Hf(r,"DataView"),nt=Hf(r,"Map"),rt=Hf(r,"Promise"),et=Hf(r,"Set"),it=Hf(r,"WeakMap"),ot=Hf(ur,"create");var at=it&&new it;var lt={};var st=Oo(Qr),Ct=Oo(nt),Ut=Oo(rt),Wt=Oo(et),vu=Oo(it);var bu=_r?_r.prototype:u,gu=bu?bu.valueOf:u,xu=bu?bu.toString:u;function ju(n){if($l(n)&&!cl(n)&&!(n instanceof Eu)){if(n instanceof $u){return n}if(vr.call(n,"__wrapped__")){return To(n)}}return new $u(n)}var Au=function(){function n(){}return function(r){if(!Rl(r)){return{}}if(Ar){return Ar(r)}n.prototype=r;var t=new n;n.prototype=u;return t}}();function Ru(){}function $u(n,r){this.__wrapped__=n;this.__actions__=[];this.__chain__=!!r;this.__index__=0;this.__values__=u}ju.templateSettings={escape:Sn,evaluate:In,interpolate:Cn,variable:"",imports:{_:ju}};ju.prototype=Ru.prototype;ju.prototype.constructor=ju;$u.prototype=Au(Ru.prototype);$u.prototype.constructor=$u;function Eu(n){this.__wrapped__=n;this.__actions__=[];this.__dir__=1;this.__filtered__=false;this.__iteratees__=[];this.__takeCount__=L;this.__views__=[]}function ku(){var n=new Eu(this.__wrapped__);n.__actions__=uf(this.__actions__);n.__dir__=this.__dir__;n.__filtered__=this.__filtered__;n.__iteratees__=uf(this.__iteratees__);n.__takeCount__=this.__takeCount__;n.__views__=uf(this.__views__);return n}function Su(){if(this.__filtered__){var n=new Eu(this);n.__dir__=-1;n.__filtered__=true}else{n=this.clone();n.__dir__*=-1}return n}function Iu(){var n=this.__wrapped__.value(),r=this.__dir__,t=cl(n),u=r<0,e=t?n.length:0,i=Xf(0,e,this.__views__),f=i.start,o=i.end,a=o-f,c=u?o:f-1,l=this.__iteratees__,s=l.length,v=0,h=Br(a,this.__takeCount__);if(!t||!u&&e==a&&h==a){return Li(n,this.__actions__)}var w=[];n:while(a--&&v<h){c+=r;var p=-1,y=n[c];while(++p<s){var d=l[p],b=d.iteratee,g=d.type,_=b(y);if(g==U){y=_}else if(!_){if(g==C){continue n}else{break n}}}w[v++]=y}return w}Eu.prototype=Au(Ru.prototype);Eu.prototype.constructor=Eu;function Cu(n){var r=-1,t=n==null?0:n.length;this.clear();while(++r<t){var u=n[r];this.set(u[0],u[1])}}function Uu(){this.__data__=ot?ot(null):{};this.size=0}function Ou(n){var r=this.has(n)&&delete this.__data__[n];this.size-=r?1:0;return r}function Mu(n){var r=this.__data__;if(ot){var t=r[n];return t===c?u:t}return vr.call(r,n)?r[n]:u}function Tu(n){var r=this.__data__;return ot?r[n]!==u:vr.call(r,n)}function Fu(n,r){var t=this.__data__;this.size+=this.has(n)?0:1;t[n]=ot&&r===u?c:r;return this}Cu.prototype.clear=Uu;Cu.prototype["delete"]=Ou;Cu.prototype.get=Mu;Cu.prototype.has=Tu;Cu.prototype.set=Fu;function Du(n){var r=-1,t=n==null?0:n.length;this.clear();while(++r<t){var u=n[r];this.set(u[0],u[1])}}function Lu(){this.__data__=[];this.size=0}function zu(n){var r=this.__data__,t=le(r,n);if(t<0){return false}var u=r.length-1;if(t==u){r.pop()}else{$r.call(r,t,1)}--this.size;return true}function Nu(n){var r=this.__data__,t=le(r,n);return t<0?u:r[t][1]}function Wu(n){return le(this.__data__,n)>-1}function Zu(n,r){var t=this.__data__,u=le(t,n);if(u<0){++this.size;t.push([n,r])}else{t[u][1]=r}return this}Du.prototype.clear=Lu;Du.prototype["delete"]=zu;Du.prototype.get=Nu;Du.prototype.has=Wu;Du.prototype.set=Zu;function Gu(n){var r=-1,t=n==null?0:n.length;this.clear();while(++r<t){var u=n[r];this.set(u[0],u[1])}}function Bu(){this.size=0;this.__data__={hash:new Cu,map:new(nt||Du),string:new Cu}}function Pu(n){var r=Pf(this,n)["delete"](n);this.size-=r?1:0;return r}function qu(n){return Pf(this,n).get(n)}function Hu(n){return Pf(this,n).has(n)}function Ju(n,r){var t=Pf(this,n),u=t.size;t.set(n,r);this.size+=t.size==u?0:1;return this}Gu.prototype.clear=Bu;Gu.prototype["delete"]=Pu;Gu.prototype.get=qu;Gu.prototype.has=Hu;Gu.prototype.set=Ju;function Vu(n){var r=-1,t=n==null?0:n.length;this.__data__=new Gu;while(++r<t){this.add(n[r])}}function Yu(n){this.__data__.set(n,c);return this}function Ku(n){return this.__data__.has(n)}Vu.prototype.add=Vu.prototype.push=Yu;Vu.prototype.has=Ku;function Xu(n){var r=this.__data__=new Du(n);this.size=r.size}function Qu(){this.__data__=new Du;this.size=0}function ne(n){var r=this.__data__,t=r["delete"](n);this.size=r.size;return t}function re(n){return this.__data__.get(n)}function te(n){return this.__data__.has(n)}function ue(n,r){var t=this.__data__;if(t instanceof Du){var u=t.__data__;if(!nt||u.length<i-1){u.push([n,r]);this.size=++t.size;return this}t=this.__data__=new Gu(u)}t.set(n,r);this.size=t.size;return this}Xu.prototype.clear=Qu;Xu.prototype["delete"]=ne;Xu.prototype.get=re;Xu.prototype.has=te;Xu.prototype.set=ue;function ee(n,r){var t=cl(n),u=!t&&al(n),e=!t&&!u&&wl(n),i=!t&&!u&&!e&&Wl(n),f=t||u||e||i,o=f?Pt(n.length,ir):[],a=o.length;for(var c in n){if((r||vr.call(n,c))&&!(f&&(c=="length"||e&&(c=="offset"||c=="parent")||i&&(c=="buffer"||c=="byteLength"||c=="byteOffset")||fo(c,a)))){o.push(c)}}return o}function ie(n){var r=n.length;return r?n[di(0,r-1)]:u}function fe(n,r){return Io(uf(n),ye(r,0,n.length))}function oe(n){return Io(uf(n))}function ae(n,r,t){if(t!==u&&!il(n[r],t)||t===u&&!(r in n)){we(n,r,t)}}function ce(n,r,t){var e=n[r];if(!(vr.call(n,r)&&il(e,t))||t===u&&!(r in n)){we(n,r,t)}}function le(n,r){var t=n.length;while(t--){if(il(n[t][0],r)){return t}}return-1}function se(n,r,t,u){me(n,(function(n,e,i){r(u,n,t(n),i)}));return u}function ve(n,r){return n&&ef(r,js(r),n)}function he(n,r){return n&&ef(r,As(r),n)}function we(n,r,t){if(r=="__proto__"&&Ir){Ir(n,r,{configurable:true,enumerable:true,value:t,writable:true})}else{n[r]=t}}function pe(n,r){var e=-1,i=r.length,f=t(i),o=n==null;while(++e<i){f[e]=o?u:ds(n,r[e])}return f}function ye(n,r,t){if(n===n){if(t!==u){n=n<=t?n:t}if(r!==u){n=n>=r?n:r}}return n}function de(n,r,t,e,i,f){var o,a=r&v,c=r&h,l=r&w;if(t){o=i?t(n,e,i,f):t(n)}if(o!==u){return o}if(!Rl(n)){return n}var s=cl(n);if(s){o=ro(n);if(!a){return uf(n,o)}}else{var p=Kf(n),y=p==V||p==Y;if(wl(n)){return Hi(n,a)}if(p==nn||p==Z||y&&!i){o=c||y?{}:to(n);if(!a){return c?of(n,he(o,n)):ff(n,ve(o,n))}}else{if(!Kr[p]){return i?n:{}}o=uo(n,p,a)}}f||(f=new Xu);var d=f.get(n);if(d){return d}f.set(n,o);if(Ll(n)){n.forEach((function(u){o.add(de(u,r,t,u,n,f))}))}else if(El(n)){n.forEach((function(u,e){o.set(e,de(u,r,t,e,n,f))}))}var b=l?c?Nf:zf:c?As:js;var g=s?u:b(n);_t(g||n,(function(u,e){if(g){e=u;u=n[e]}ce(o,e,de(u,r,t,e,n,f))}));return o}function be(n){var r=js(n);return function(t){return ge(t,n,r)}}function ge(n,r,t){var e=t.length;if(n==null){return!e}n=ur(n);while(e--){var i=t[e],f=r[i],o=n[i];if(o===u&&!(i in n)||!f(o)){return false}}return true}function _e(n,r,t){if(typeof n!="function"){throw new fr(o)}return $o((function(){n.apply(u,t)}),r)}function xe(n,r,t,u){var e=-1,f=At,o=true,a=n.length,c=[],l=r.length;if(!a){return c}if(t){r=$t(r,Jt(t))}if(u){f=Rt;o=false}else if(r.length>=i){f=Yt;o=false;r=new Vu(r)}n:while(++e<a){var s=n[e],v=t==null?s:t(s);s=u||s!==0?s:0;if(o&&v===v){var h=l;while(h--){if(r[h]===v){continue n}}c.push(s)}else if(!f(r,v,u)){c.push(s)}}return c}var me=lf(Ce);var je=lf(Ue,true);function Ae(n,r){var t=true;me(n,(function(n,u,e){t=!!r(n,u,e);return t}));return t}function Re(n,r,t){var e=-1,i=n.length;while(++e<i){var f=n[e],o=r(f);if(o!=null&&(a===u?o===o&&!Nl(o):t(o,a))){var a=o,c=f}}return c}function $e(n,r,t,e){var i=n.length;t=Vl(t);if(t<0){t=-t>i?0:i+t}e=e===u||e>i?i:Vl(e);if(e<0){e+=i}e=t>e?0:Yl(e);while(t<e){n[t++]=r}return n}function Ee(n,r){var t=[];me(n,(function(n,u,e){if(r(n,u,e)){t.push(n)}}));return t}function ke(n,r,t,u,e){var i=-1,f=n.length;t||(t=io);e||(e=[]);while(++i<f){var o=n[i];if(r>0&&t(o)){if(r>1){ke(o,r-1,t,u,e)}else{Et(e,o)}}else if(!u){e[e.length]=o}}return e}var Se=sf();var Ie=sf(true);function Ce(n,r){return n&&Se(n,r,js)}function Ue(n,r){return n&&Ie(n,r,js)}function Oe(n,r){return jt(r,(function(r){return ml(n[r])}))}function Me(n,r){r=Gi(r,n);var t=0,e=r.length;while(n!=null&&t<e){n=n[Uo(r[t++])]}return t&&t==e?n:u}function Te(n,r,t){var u=r(n);return cl(n)?u:Et(u,t(n))}function Fe(n){if(n==null){return n===u?an:Q}return Sr&&Sr in ur(n)?Jf(n):_o(n)}function De(n,r){return n>r}function Le(n,r){return n!=null&&vr.call(n,r)}function ze(n,r){return n!=null&&r in ur(n)}function Ne(n,r,t){return n>=Br(r,t)&&n<Wr(r,t)}function We(n,r,e){var i=e?Rt:At,f=n[0].length,o=n.length,a=o,c=t(o),l=Infinity,s=[];while(a--){var v=n[a];if(a&&r){v=$t(v,Jt(r))}l=Br(v.length,l);c[a]=!e&&(r||f>=120&&v.length>=120)?new Vu(a&&v):u}v=n[0];var h=-1,w=c[0];n:while(++h<f&&s.length<l){var p=v[h],y=r?r(p):p;p=e||p!==0?p:0;if(!(w?Yt(w,y):i(s,y,e))){a=o;while(--a){var d=c[a];if(!(d?Yt(d,y):i(n[a],y,e))){continue n}}if(w){w.push(y)}s.push(p)}}return s}function Ze(n,r,t,u){Ce(n,(function(n,e,i){r(u,t(n),e,i)}));return u}function Ge(n,r,t){r=Gi(r,n);n=mo(n,r);var e=n==null?n:n[Uo(fa(r))];return e==null?u:bt(e,n,t)}function Be(n){return $l(n)&&Fe(n)==Z}function Pe(n){return $l(n)&&Fe(n)==sn}function qe(n){return $l(n)&&Fe(n)==q}function He(n,r,t,u,e){if(n===r){return true}if(n==null||r==null||!$l(n)&&!$l(r)){return n!==n&&r!==r}return Je(n,r,t,u,He,e)}function Je(n,r,t,u,e,i){var f=cl(n),o=cl(r),a=f?G:Kf(n),c=o?G:Kf(r);a=a==Z?nn:a;c=c==Z?nn:c;var l=a==nn,s=c==nn,v=a==c;if(v&&wl(n)){if(!wl(r)){return false}f=true;l=false}if(v&&!l){i||(i=new Xu);return f||Wl(n)?Tf(n,r,t,u,e,i):Ff(n,r,a,t,u,e,i)}if(!(t&p)){var h=l&&vr.call(n,"__wrapped__"),w=s&&vr.call(r,"__wrapped__");if(h||w){var y=h?n.value():n,d=w?r.value():r;i||(i=new Xu);return e(y,d,t,u,i)}}if(!v){return false}i||(i=new Xu);return Df(n,r,t,u,e,i)}function Ve(n){return $l(n)&&Kf(n)==K}function Ye(n,r,t,e){var i=t.length,f=i,o=!e;if(n==null){return!f}n=ur(n);while(i--){var a=t[i];if(o&&a[2]?a[1]!==n[a[0]]:!(a[0]in n)){return false}}while(++i<f){a=t[i];var c=a[0],l=n[c],s=a[1];if(o&&a[2]){if(l===u&&!(c in n)){return false}}else{var v=new Xu;if(e){var h=e(l,s,c,n,r,v)}if(!(h===u?He(s,l,p|y,e,v):h)){return false}}}return true}function Ke(n){if(!Rl(n)||so(n)){return false}var r=ml(n)?br:Vn;return r.test(Oo(n))}function Xe(n){return $l(n)&&Fe(n)==un}function Qe(n){return $l(n)&&Kf(n)==en}function ni(n){return $l(n)&&Al(n.length)&&!!Yr[Fe(n)]}function ri(n){if(typeof n=="function"){return n}if(n==null){return Cv}if(typeof n=="object"){return cl(n)?oi(n[0],n[1]):fi(n)}return Bv(n)}function ti(n){if(!ho(n)){return Nr(n)}var r=[];for(var t in ur(n)){if(vr.call(n,t)&&t!="constructor"){r.push(t)}}return r}function ui(n){if(!Rl(n)){return go(n)}var r=ho(n),t=[];for(var u in n){if(!(u=="constructor"&&(r||!vr.call(n,u)))){t.push(u)}}return t}function ei(n,r){return n<r}function ii(n,r){var u=-1,e=sl(n)?t(n.length):[];me(n,(function(n,t,i){e[++u]=r(n,t,i)}));return e}function fi(n){var r=qf(n);if(r.length==1&&r[0][2]){return po(r[0][0],r[0][1])}return function(t){return t===n||Ye(t,n,r)}}function oi(n,r){if(ao(n)&&wo(r)){return po(Uo(n),r)}return function(t){var e=ds(t,n);return e===u&&e===r?gs(t,n):He(r,e,p|y)}}function ai(n,r,t,e,i){if(n===r){return}Se(r,(function(f,o){i||(i=new Xu);if(Rl(f)){ci(n,r,o,t,ai,e,i)}else{var a=e?e(Ao(n,o),f,o+"",n,r,i):u;if(a===u){a=f}ae(n,o,a)}}),As)}function ci(n,r,t,e,i,f,o){var a=Ao(n,t),c=Ao(r,t),l=o.get(c);if(l){ae(n,t,l);return}var s=f?f(a,c,t+"",n,r,o):u;var v=s===u;if(v){var h=cl(c),w=!h&&wl(c),p=!h&&!w&&Wl(c);s=c;if(h||w||p){if(cl(a)){s=a}else if(vl(a)){s=uf(a)}else if(w){v=false;s=Hi(c,true)}else if(p){v=false;s=Xi(c,true)}else{s=[]}}else if(Tl(c)||al(c)){s=a;if(al(a)){s=Xl(a)}else if(!Rl(a)||ml(a)){s=to(c)}}else{v=false}}if(v){o.set(c,s);i(s,c,e,f,o);o["delete"](c)}ae(n,t,s)}function li(n,r){var t=n.length;if(!t){return}r+=r<0?t:0;return fo(r,t)?n[r]:u}function si(n,r,t){if(r.length){r=$t(r,(function(n){if(cl(n)){return function(r){return Me(r,n.length===1?n[0]:n)}}return n}))}else{r=[Cv]}var u=-1;r=$t(r,Jt(Bf()));var e=ii(n,(function(n,t,e){var i=$t(r,(function(r){return r(n)}));return{criteria:i,index:++u,value:n}}));return Gt(e,(function(n,r){return nf(n,r,t)}))}function vi(n,r){return hi(n,r,(function(r,t){return gs(n,t)}))}function hi(n,r,t){var u=-1,e=r.length,i={};while(++u<e){var f=r[u],o=Me(n,f);if(t(o,f)){ji(i,Gi(f,n),o)}}return i}function wi(n){return function(r){return Me(r,n)}}function pi(n,r,t,u){var e=u?Dt:Ft,i=-1,f=r.length,o=n;if(n===r){r=uf(r)}if(t){o=$t(n,Jt(t))}while(++i<f){var a=0,c=r[i],l=t?t(c):c;while((a=e(o,l,a,u))>-1){if(o!==n){$r.call(o,a,1)}$r.call(n,a,1)}}return n}function yi(n,r){var t=n?r.length:0,u=t-1;while(t--){var e=r[t];if(t==u||e!==i){var i=e;if(fo(e)){$r.call(n,e,1)}else{Ti(n,e)}}}return n}function di(n,r){return n+Tr(Hr()*(r-n+1))}function bi(n,r,u,e){var i=-1,f=Wr(Mr((r-n)/(u||1)),0),o=t(f);while(f--){o[e?f:++i]=n;n+=u}return o}function gi(n,r){var t="";if(!n||r<1||r>T){return t}do{if(r%2){t+=n}r=Tr(r/2);if(r){n+=n}}while(r);return t}function _i(n,r){return Eo(xo(n,r,Cv),n+"")}function xi(n){return ie(Zs(n))}function mi(n,r){var t=Zs(n);return Io(t,ye(r,0,t.length))}function ji(n,r,t,e){if(!Rl(n)){return n}r=Gi(r,n);var i=-1,f=r.length,o=f-1,a=n;while(a!=null&&++i<f){var c=Uo(r[i]),l=t;if(c==="__proto__"||c==="constructor"||c==="prototype"){return n}if(i!=o){var s=a[c];l=e?e(s,c,a):u;if(l===u){l=Rl(s)?s:fo(r[i+1])?[]:{}}}ce(a,c,l);a=a[c]}return n}var Ai=!at?Cv:function(n,r){at.set(n,r);return n};var Ri=!Ir?Cv:function(n,r){return Ir(n,"toString",{configurable:true,enumerable:false,value:Ev(r),writable:true})};function $i(n){return Io(Zs(n))}function Ei(n,r,u){var e=-1,i=n.length;if(r<0){r=-r>i?0:i+r}u=u>i?i:u;if(u<0){u+=i}i=r>u?0:u-r>>>0;r>>>=0;var f=t(i);while(++e<i){f[e]=n[e+r]}return f}function ki(n,r){var t;me(n,(function(n,u,e){t=r(n,u,e);return!t}));return!!t}function Si(n,r,t){var u=0,e=n==null?u:n.length;if(typeof r=="number"&&r===r&&e<=N){while(u<e){var i=u+e>>>1,f=n[i];if(f!==null&&!Nl(f)&&(t?f<=r:f<r)){u=i+1}else{e=i}}return e}return Ii(n,r,Cv,t)}function Ii(n,r,t,e){var i=0,f=n==null?0:n.length;if(f===0){return 0}r=t(r);var o=r!==r,a=r===null,c=Nl(r),l=r===u;while(i<f){var s=Tr((i+f)/2),v=t(n[s]),h=v!==u,w=v===null,p=v===v,y=Nl(v);if(o){var d=e||p}else if(l){d=p&&(e||h)}else if(a){d=p&&h&&(e||!w)}else if(c){d=p&&h&&!w&&(e||!y)}else if(w||y){d=false}else{d=e?v<=r:v<r}if(d){i=s+1}else{f=s}}return Br(f,z)}function Ci(n,r){var t=-1,u=n.length,e=0,i=[];while(++t<u){var f=n[t],o=r?r(f):f;if(!t||!il(o,a)){var a=o;i[e++]=f===0?0:f}}return i}function Ui(n){if(typeof n=="number"){return n}if(Nl(n)){return D}return+n}function Oi(n){if(typeof n=="string"){return n}if(cl(n)){return $t(n,Oi)+""}if(Nl(n)){return xu?xu.call(n):""}var r=n+"";return r=="0"&&1/n==-M?"-0":r}function Mi(n,r,t){var u=-1,e=At,f=n.length,o=true,a=[],c=a;if(t){o=false;e=Rt}else if(f>=i){var l=r?null:Sf(n);if(l){return lu(l)}o=false;e=Yt;c=new Vu}else{c=r?[]:a}n:while(++u<f){var s=n[u],v=r?r(s):s;s=t||s!==0?s:0;if(o&&v===v){var h=c.length;while(h--){if(c[h]===v){continue n}}if(r){c.push(v)}a.push(s)}else if(!e(c,v,t)){if(c!==a){c.push(v)}a.push(s)}}return a}function Ti(n,r){r=Gi(r,n);n=mo(n,r);return n==null||delete n[Uo(fa(r))]}function Fi(n,r,t,u){return ji(n,r,t(Me(n,r)),u)}function Di(n,r,t,u){var e=n.length,i=u?e:-1;while((u?i--:++i<e)&&r(n[i],i,n)){}return t?Ei(n,u?0:i,u?i+1:e):Ei(n,u?i+1:0,u?e:i)}function Li(n,r){var t=n;if(t instanceof Eu){t=t.value()}return kt(r,(function(n,r){return r.func.apply(r.thisArg,Et([n],r.args))}),t)}function zi(n,r,u){var e=n.length;if(e<2){return e?Mi(n[0]):[]}var i=-1,f=t(e);while(++i<e){var o=n[i],a=-1;while(++a<e){if(a!=i){f[i]=xe(f[i]||o,n[a],r,u)}}}return Mi(ke(f,1),r,u)}function Ni(n,r,t){var e=-1,i=n.length,f=r.length,o={};while(++e<i){var a=e<f?r[e]:u;t(o,n[e],a)}return o}function Wi(n){return vl(n)?n:[]}function Zi(n){return typeof n=="function"?n:Cv}function Gi(n,r){if(cl(n)){return n}return ao(n,r)?[n]:Co(ns(n))}var Bi=_i;function Pi(n,r,t){var e=n.length;t=t===u?e:t;return!r&&t>=e?n:Ei(n,r,t)}var qi=Cr||function(n){return ft.clearTimeout(n)};function Hi(n,r){if(r){return n.slice()}var t=n.length,u=mr?mr(t):new n.constructor(t);n.copy(u);return u}function Ji(n){var r=new n.constructor(n.byteLength);new xr(r).set(new xr(n));return r}function Vi(n,r){var t=r?Ji(n.buffer):n.buffer;return new n.constructor(t,n.byteOffset,n.byteLength)}function Yi(n){var r=new n.constructor(n.source,qn.exec(n));r.lastIndex=n.lastIndex;return r}function Ki(n){return gu?ur(gu.call(n)):{}}function Xi(n,r){var t=r?Ji(n.buffer):n.buffer;return new n.constructor(t,n.byteOffset,n.length)}function Qi(n,r){if(n!==r){var t=n!==u,e=n===null,i=n===n,f=Nl(n);var o=r!==u,a=r===null,c=r===r,l=Nl(r);if(!a&&!l&&!f&&n>r||f&&o&&c&&!a&&!l||e&&o&&c||!t&&c||!i){return 1}if(!e&&!f&&!l&&n<r||l&&t&&i&&!e&&!f||a&&t&&i||!o&&i||!c){return-1}}return 0}function nf(n,r,t){var u=-1,e=n.criteria,i=r.criteria,f=e.length,o=t.length;while(++u<f){var a=Qi(e[u],i[u]);if(a){if(u>=o){return a}var c=t[u];return a*(c=="desc"?-1:1)}}return n.index-r.index}function rf(n,r,u,e){var i=-1,f=n.length,o=u.length,a=-1,c=r.length,l=Wr(f-o,0),s=t(c+l),v=!e;while(++a<c){s[a]=r[a]}while(++i<o){if(v||i<f){s[u[i]]=n[i]}}while(l--){s[a++]=n[i++]}return s}function tf(n,r,u,e){var i=-1,f=n.length,o=-1,a=u.length,c=-1,l=r.length,s=Wr(f-a,0),v=t(s+l),h=!e;while(++i<s){v[i]=n[i]}var w=i;while(++c<l){v[w+c]=r[c]}while(++o<a){if(h||i<f){v[w+u[o]]=n[i++]}}return v}function uf(n,r){var u=-1,e=n.length;r||(r=t(e));while(++u<e){r[u]=n[u]}return r}function ef(n,r,t,e){var i=!t;t||(t={});var f=-1,o=r.length;while(++f<o){var a=r[f];var c=e?e(t[a],n[a],a,t,n):u;if(c===u){c=n[a]}if(i){we(t,a,c)}else{ce(t,a,c)}}return t}function ff(n,r){return ef(n,Vf(n),r)}function of(n,r){return ef(n,Yf(n),r)}function af(n,r){return function(t,u){var e=cl(t)?gt:se,i=r?r():{};return e(t,n,Bf(u,2),i)}}function cf(n){return _i((function(r,t){var e=-1,i=t.length,f=i>1?t[i-1]:u,o=i>2?t[2]:u;f=n.length>3&&typeof f=="function"?(i--,f):u;if(o&&oo(t[0],t[1],o)){f=i<3?u:f;i=1}r=ur(r);while(++e<i){var a=t[e];if(a){n(r,a,e,f)}}return r}))}function lf(n,r){return function(t,u){if(t==null){return t}if(!sl(t)){return n(t,u)}var e=t.length,i=r?e:-1,f=ur(t);while(r?i--:++i<e){if(u(f[i],i,f)===false){break}}return t}}function sf(n){return function(r,t,u){var e=-1,i=ur(r),f=u(r),o=f.length;while(o--){var a=f[n?o:++e];if(t(i[a],a,i)===false){break}}return r}}function vf(n,r,t){var u=r&d,e=pf(n);function i(){var r=this&&this!==ft&&this instanceof i?e:n;return r.apply(u?t:this,arguments)}return i}function hf(n){return function(r){r=ns(r);var t=eu(r)?pu(r):u;var e=t?t[0]:r.charAt(0);var i=t?Pi(t,1).join(""):r.slice(1);return e[n]()+i}}function wf(n){return function(r){return kt(mv(Vs(r).replace(Zr,"")),n,"")}}function pf(n){return function(){var r=arguments;switch(r.length){case 0:return new n;case 1:return new n(r[0]);case 2:return new n(r[0],r[1]);case 3:return new n(r[0],r[1],r[2]);case 4:return new n(r[0],r[1],r[2],r[3]);case 5:return new n(r[0],r[1],r[2],r[3],r[4]);case 6:return new n(r[0],r[1],r[2],r[3],r[4],r[5]);case 7:return new n(r[0],r[1],r[2],r[3],r[4],r[5],r[6])}var t=Au(n.prototype),u=n.apply(t,r);return Rl(u)?u:t}}function yf(n,r,e){var i=pf(n);function f(){var o=arguments.length,a=t(o),c=o,l=Gf(f);while(c--){a[c]=arguments[c]}var s=o<3&&a[0]!==l&&a[o-1]!==l?[]:cu(a,l);o-=s.length;if(o<e){return Ef(n,r,gf,f.placeholder,u,a,s,u,u,e-o)}var v=this&&this!==ft&&this instanceof f?i:n;return bt(v,this,a)}return f}function df(n){return function(r,t,e){var i=ur(r);if(!sl(r)){var f=Bf(t,3);r=js(r);t=function(n){return f(i[n],n,i)}}var o=n(r,t,e);return o>-1?i[f?r[o]:o]:u}}function bf(n){return Lf((function(r){var t=r.length,e=t,i=$u.prototype.thru;if(n){r.reverse()}while(e--){var f=r[e];if(typeof f!="function"){throw new fr(o)}if(i&&!a&&Zf(f)=="wrapper"){var a=new $u([],true)}}e=a?e:t;while(++e<t){f=r[e];var c=Zf(f),l=c=="wrapper"?Wf(f):u;if(l&&lo(l[0])&&l[1]==(A|_|m|R)&&!l[4].length&&l[9]==1){a=a[Zf(l[0])].apply(a,l[3])}else{a=f.length==1&&lo(f)?a[c]():a.thru(f)}}return function(){var n=arguments,u=n[0];if(a&&n.length==1&&cl(u)){return a.plant(u).value()}var e=0,i=t?r[e].apply(this,n):u;while(++e<t){i=r[e].call(this,i)}return i}}))}function gf(n,r,e,i,f,o,a,c,l,s){var v=r&A,h=r&d,w=r&b,p=r&(_|x),y=r&$,g=w?u:pf(n);function m(){var u=arguments.length,d=t(u),b=u;while(b--){d[b]=arguments[b]}if(p){var _=Gf(m),x=Qt(d,_)}if(i){d=rf(d,i,f,p)}if(o){d=tf(d,o,a,p)}u-=x;if(p&&u<s){var j=cu(d,_);return Ef(n,r,gf,m.placeholder,e,d,j,c,l,s-u)}var A=h?e:this,R=w?A[n]:n;u=d.length;if(c){d=jo(d,c)}else if(y&&u>1){d.reverse()}if(v&&l<u){d.length=l}if(this&&this!==ft&&this instanceof m){R=g||pf(R)}return R.apply(A,d)}return m}function _f(n,r){return function(t,u){return Ze(t,n,r(u),{})}}function xf(n,r){return function(t,e){var i;if(t===u&&e===u){return r}if(t!==u){i=t}if(e!==u){if(i===u){return e}if(typeof t=="string"||typeof e=="string"){t=Oi(t);e=Oi(e)}else{t=Ui(t);e=Ui(e)}i=n(t,e)}return i}}function mf(n){return Lf((function(r){r=$t(r,Jt(Bf()));return _i((function(t){var u=this;return n(r,(function(n){return bt(n,u,t)}))}))}))}function jf(n,r){r=r===u?" ":Oi(r);var t=r.length;if(t<2){return t?gi(r,n):r}var e=gi(r,Mr(n/wu(r)));return eu(r)?Pi(pu(e),0,n).join(""):e.slice(0,n)}function Af(n,r,u,e){var i=r&d,f=pf(n);function o(){var r=-1,a=arguments.length,c=-1,l=e.length,s=t(l+a),v=this&&this!==ft&&this instanceof o?f:n;while(++c<l){s[c]=e[c]}while(a--){s[c++]=arguments[++r]}return bt(v,i?u:this,s)}return o}function Rf(n){return function(r,t,e){if(e&&typeof e!="number"&&oo(r,t,e)){t=e=u}r=Jl(r);if(t===u){t=r;r=0}else{t=Jl(t)}e=e===u?r<t?1:-1:Jl(e);return bi(r,t,e,n)}}function $f(n){return function(r,t){if(!(typeof r=="string"&&typeof t=="string")){r=Kl(r);t=Kl(t)}return n(r,t)}}function Ef(n,r,t,e,i,f,o,a,c,l){var s=r&_,v=s?o:u,h=s?u:o,w=s?f:u,p=s?u:f;r|=s?m:j;r&=~(s?j:m);if(!(r&g)){r&=~(d|b)}var y=[n,r,i,w,v,p,h,a,c,l];var x=t.apply(u,y);if(lo(n)){Ro(x,y)}x.placeholder=e;return ko(x,n,r)}function kf(n){var r=tr[n];return function(n,t){n=Kl(n);t=t==null?0:Br(Vl(t),292);if(t&&Lr(n)){var u=(ns(n)+"e").split("e"),e=r(u[0]+"e"+(+u[1]+t));u=(ns(e)+"e").split("e");return+(u[0]+"e"+(+u[1]-t))}return r(n)}}var Sf=!(et&&1/lu(new et([,-0]))[1]==M)?zv:function(n){return new et(n)};function If(n){return function(r){var t=Kf(r);if(t==K){return ou(r)}if(t==en){return su(r)}return qt(r,n(r))}}function Cf(n,r,t,e,i,f,a,c){var l=r&b;if(!l&&typeof n!="function"){throw new fr(o)}var s=e?e.length:0;if(!s){r&=~(m|j);e=i=u}a=a===u?a:Wr(Vl(a),0);c=c===u?c:Vl(c);s-=i?i.length:0;if(r&j){var v=e,h=i;e=i=u}var w=l?u:Wf(n);var p=[n,r,t,e,i,v,h,f,a,c];if(w){bo(p,w)}n=p[0];r=p[1];t=p[2];e=p[3];i=p[4];c=p[9]=p[9]===u?l?0:n.length:Wr(p[9]-s,0);if(!c&&r&(_|x)){r&=~(_|x)}if(!r||r==d){var y=vf(n,r,t)}else if(r==_||r==x){y=yf(n,r,c)}else if((r==m||r==(d|m))&&!i.length){y=Af(n,r,t,e)}else{y=gf.apply(u,p)}var g=w?Ai:Ro;return ko(g(y,p),n,r)}function Uf(n,r,t,e){if(n===u||il(n,cr[t])&&!vr.call(e,t)){return r}return n}function Of(n,r,t,e,i,f){if(Rl(n)&&Rl(r)){f.set(r,n);ai(n,r,u,Of,f);f["delete"](r)}return n}function Mf(n){return Tl(n)?u:n}function Tf(n,r,t,e,i,f){var o=t&p,a=n.length,c=r.length;if(a!=c&&!(o&&c>a)){return false}var l=f.get(n);var s=f.get(r);if(l&&s){return l==r&&s==n}var v=-1,h=true,w=t&y?new Vu:u;f.set(n,r);f.set(r,n);while(++v<a){var d=n[v],b=r[v];if(e){var g=o?e(b,d,v,r,n,f):e(d,b,v,n,r,f)}if(g!==u){if(g){continue}h=false;break}if(w){if(!It(r,(function(n,r){if(!Yt(w,r)&&(d===n||i(d,n,t,e,f))){return w.push(r)}}))){h=false;break}}else if(!(d===b||i(d,b,t,e,f))){h=false;break}}f["delete"](n);f["delete"](r);return h}function Ff(n,r,t,u,e,i,f){switch(t){case vn:if(n.byteLength!=r.byteLength||n.byteOffset!=r.byteOffset){return false}n=n.buffer;r=r.buffer;case sn:if(n.byteLength!=r.byteLength||!i(new xr(n),new xr(r))){return false}return true;case P:case q:case X:return il(+n,+r);case J:return n.name==r.name&&n.message==r.message;case un:case fn:return n==r+"";case K:var o=ou;case en:var a=u&p;o||(o=lu);if(n.size!=r.size&&!a){return false}var c=f.get(n);if(c){return c==r}u|=y;f.set(n,r);var l=Tf(o(n),o(r),u,e,i,f);f["delete"](n);return l;case on:if(gu){return gu.call(n)==gu.call(r)}}return false}function Df(n,r,t,e,i,f){var o=t&p,a=zf(n),c=a.length,l=zf(r),s=l.length;if(c!=s&&!o){return false}var v=c;while(v--){var h=a[v];if(!(o?h in r:vr.call(r,h))){return false}}var w=f.get(n);var y=f.get(r);if(w&&y){return w==r&&y==n}var d=true;f.set(n,r);f.set(r,n);var b=o;while(++v<c){h=a[v];var g=n[h],_=r[h];if(e){var x=o?e(_,g,h,r,n,f):e(g,_,h,n,r,f)}if(!(x===u?g===_||i(g,_,t,e,f):x)){d=false;break}b||(b=h=="constructor")}if(d&&!b){var m=n.constructor,j=r.constructor;if(m!=j&&("constructor"in n&&"constructor"in r)&&!(typeof m=="function"&&m instanceof m&&typeof j=="function"&&j instanceof j)){d=false}}f["delete"](n);f["delete"](r);return d}function Lf(n){return Eo(xo(n,u,Vo),n+"")}function zf(n){return Te(n,js,Vf)}function Nf(n){return Te(n,As,Yf)}var Wf=!at?zv:function(n){return at.get(n)};function Zf(n){var r=n.name+"",t=lt[r],u=vr.call(lt,r)?t.length:0;while(u--){var e=t[u],i=e.func;if(i==null||i==n){return e.name}}return r}function Gf(n){var r=vr.call(ju,"placeholder")?ju:n;return r.placeholder}function Bf(){var n=ju.iteratee||Uv;n=n===Uv?ri:n;return arguments.length?n(arguments[0],arguments[1]):n}function Pf(n,r){var t=n.__data__;return co(r)?t[typeof r=="string"?"string":"hash"]:t.map}function qf(n){var r=js(n),t=r.length;while(t--){var u=r[t],e=n[u];r[t]=[u,e,wo(e)]}return r}function Hf(n,r){var t=uu(n,r);return Ke(t)?t:u}function Jf(n){var r=vr.call(n,Sr),t=n[Sr];try{n[Sr]=u;var e=true}catch(n){}var i=pr.call(n);if(e){if(r){n[Sr]=t}else{delete n[Sr]}}return i}var Vf=!Fr?Jv:function(n){if(n==null){return[]}n=ur(n);return jt(Fr(n),(function(r){return Rr.call(n,r)}))};var Yf=!Fr?Jv:function(n){var r=[];while(n){Et(r,Vf(n));n=jr(n)}return r};var Kf=Fe;if(Qr&&Kf(new Qr(new ArrayBuffer(1)))!=vn||nt&&Kf(new nt)!=K||rt&&Kf(rt.resolve())!=rn||et&&Kf(new et)!=en||it&&Kf(new it)!=cn){Kf=function(n){var r=Fe(n),t=r==nn?n.constructor:u,e=t?Oo(t):"";if(e){switch(e){case st:return vn;case Ct:return K;case Ut:return rn;case Wt:return en;case vu:return cn}}return r}}function Xf(n,r,t){var u=-1,e=t.length;while(++u<e){var i=t[u],f=i.size;switch(i.type){case"drop":n+=f;break;case"dropRight":r-=f;break;case"take":r=Br(r,n+f);break;case"takeRight":n=Wr(n,r-f);break}}return{start:n,end:r}}function Qf(n){var r=n.match(Nn);return r?r[1].split(Wn):[]}function no(n,r,t){r=Gi(r,n);var u=-1,e=r.length,i=false;while(++u<e){var f=Uo(r[u]);if(!(i=n!=null&&t(n,f))){break}n=n[f]}if(i||++u!=e){return i}e=n==null?0:n.length;return!!e&&Al(e)&&fo(f,e)&&(cl(n)||al(n))}function ro(n){var r=n.length,t=new n.constructor(r);if(r&&typeof n[0]=="string"&&vr.call(n,"index")){t.index=n.index;t.input=n.input}return t}function to(n){return typeof n.constructor=="function"&&!ho(n)?Au(jr(n)):{}}function uo(n,r,t){var u=n.constructor;switch(r){case sn:return Ji(n);case P:case q:return new u(+n);case vn:return Vi(n,t);case hn:case wn:case pn:case yn:case dn:case bn:case gn:case _n:case xn:return Xi(n,t);case K:return new u;case X:case fn:return new u(n);case un:return Yi(n);case en:return new u;case on:return Ki(n)}}function eo(n,r){var t=r.length;if(!t){return n}var u=t-1;r[u]=(t>1?"& ":"")+r[u];r=r.join(t>2?", ":" ");return n.replace(zn,"{\n/* [wrapped with "+r+"] */\n")}function io(n){return cl(n)||al(n)||!!(Er&&n&&n[Er])}function fo(n,r){var t=typeof n;r=r==null?T:r;return!!r&&(t=="number"||t!="symbol"&&Kn.test(n))&&(n>-1&&n%1==0&&n<r)}function oo(n,r,t){if(!Rl(t)){return false}var u=typeof r;if(u=="number"?sl(t)&&fo(r,t.length):u=="string"&&r in t){return il(t[r],n)}return false}function ao(n,r){if(cl(n)){return false}var t=typeof n;if(t=="number"||t=="symbol"||t=="boolean"||n==null||Nl(n)){return true}return On.test(n)||!Un.test(n)||r!=null&&n in ur(r)}function co(n){var r=typeof n;return r=="string"||r=="number"||r=="symbol"||r=="boolean"?n!=="__proto__":n===null}function lo(n){var r=Zf(n),t=ju[r];if(typeof t!="function"||!(r in Eu.prototype)){return false}if(n===t){return true}var u=Wf(t);return!!u&&n===u[0]}function so(n){return!!wr&&wr in n}var vo=lr?ml:Vv;function ho(n){var r=n&&n.constructor,t=typeof r=="function"&&r.prototype||cr;return n===t}function wo(n){return n===n&&!Rl(n)}function po(n,r){return function(t){if(t==null){return false}return t[n]===r&&(r!==u||n in ur(t))}}function yo(n){var r=Wc(n,(function(n){if(t.size===l){t.clear()}return n}));var t=r.cache;return r}function bo(n,r){var t=n[1],u=r[1],e=t|u,i=e<(d|b|A);var f=u==A&&t==_||u==A&&t==R&&n[7].length<=r[8]||u==(A|R)&&r[7].length<=r[8]&&t==_;if(!(i||f)){return n}if(u&d){n[2]=r[2];e|=t&d?0:g}var o=r[3];if(o){var a=n[3];n[3]=a?rf(a,o,r[4]):o;n[4]=a?cu(n[3],s):r[4]}o=r[5];if(o){a=n[5];n[5]=a?tf(a,o,r[6]):o;n[6]=a?cu(n[5],s):r[6]}o=r[7];if(o){n[7]=o}if(u&A){n[8]=n[8]==null?r[8]:Br(n[8],r[8])}if(n[9]==null){n[9]=r[9]}n[0]=r[0];n[1]=e;return n}function go(n){var r=[];if(n!=null){for(var t in ur(n)){r.push(t)}}return r}function _o(n){return pr.call(n)}function xo(n,r,e){r=Wr(r===u?n.length-1:r,0);return function(){var u=arguments,i=-1,f=Wr(u.length-r,0),o=t(f);while(++i<f){o[i]=u[r+i]}i=-1;var a=t(r+1);while(++i<r){a[i]=u[i]}a[r]=e(o);return bt(n,this,a)}}function mo(n,r){return r.length<2?n:Me(n,Ei(r,0,-1))}function jo(n,r){var t=n.length,e=Br(r.length,t),i=uf(n);while(e--){var f=r[e];n[e]=fo(f,t)?i[f]:u}return n}function Ao(n,r){if(r==="constructor"&&typeof n[r]==="function"){return}if(r=="__proto__"){return}return n[r]}var Ro=So(Ai);var $o=Or||function(n,r){return ft.setTimeout(n,r)};var Eo=So(Ri);function ko(n,r,t){var u=r+"";return Eo(n,eo(u,Mo(Qf(u),t)))}function So(n){var r=0,t=0;return function(){var e=Pr(),i=I-(e-t);t=e;if(i>0){if(++r>=S){return arguments[0]}}else{r=0}return n.apply(u,arguments)}}function Io(n,r){var t=-1,e=n.length,i=e-1;r=r===u?e:r;while(++t<r){var f=di(t,i),o=n[f];n[f]=n[t];n[t]=o}n.length=r;return n}var Co=yo((function(n){var r=[];if(n.charCodeAt(0)===46){r.push("")}n.replace(Mn,(function(n,t,u,e){r.push(u?e.replace(Bn,"$1"):t||n)}));return r}));function Uo(n){if(typeof n=="string"||Nl(n)){return n}var r=n+"";return r=="0"&&1/n==-M?"-0":r}function Oo(n){if(n!=null){try{return sr.call(n)}catch(n){}try{return n+""}catch(n){}}return""}function Mo(n,r){_t(W,(function(t){var u="_."+t[0];if(r&t[1]&&!At(n,u)){n.push(u)}}));return n.sort()}function To(n){if(n instanceof Eu){return n.clone()}var r=new $u(n.__wrapped__,n.__chain__);r.__actions__=uf(n.__actions__);r.__index__=n.__index__;r.__values__=n.__values__;return r}function Fo(n,r,e){if(e?oo(n,r,e):r===u){r=1}else{r=Wr(Vl(r),0)}var i=n==null?0:n.length;if(!i||r<1){return[]}var f=0,o=0,a=t(Mr(i/r));while(f<i){a[o++]=Ei(n,f,f+=r)}return a}function Do(n){var r=-1,t=n==null?0:n.length,u=0,e=[];while(++r<t){var i=n[r];if(i){e[u++]=i}}return e}function Lo(){var n=arguments.length;if(!n){return[]}var r=t(n-1),u=arguments[0],e=n;while(e--){r[e-1]=arguments[e]}return Et(cl(u)?uf(u):[u],ke(r,1))}var zo=_i((function(n,r){return vl(n)?xe(n,ke(r,1,vl,true)):[]}));var No=_i((function(n,r){var t=fa(r);if(vl(t)){t=u}return vl(n)?xe(n,ke(r,1,vl,true),Bf(t,2)):[]}));var Wo=_i((function(n,r){var t=fa(r);if(vl(t)){t=u}return vl(n)?xe(n,ke(r,1,vl,true),u,t):[]}));function Zo(n,r,t){var e=n==null?0:n.length;if(!e){return[]}r=t||r===u?1:Vl(r);return Ei(n,r<0?0:r,e)}function Go(n,r,t){var e=n==null?0:n.length;if(!e){return[]}r=t||r===u?1:Vl(r);r=e-r;return Ei(n,0,r<0?0:r)}function Bo(n,r){return n&&n.length?Di(n,Bf(r,3),true,true):[]}function Po(n,r){return n&&n.length?Di(n,Bf(r,3),true):[]}function qo(n,r,t,u){var e=n==null?0:n.length;if(!e){return[]}if(t&&typeof t!="number"&&oo(n,r,t)){t=0;u=e}return $e(n,r,t,u)}function Ho(n,r,t){var u=n==null?0:n.length;if(!u){return-1}var e=t==null?0:Vl(t);if(e<0){e=Wr(u+e,0)}return Tt(n,Bf(r,3),e)}function Jo(n,r,t){var e=n==null?0:n.length;if(!e){return-1}var i=e-1;if(t!==u){i=Vl(t);i=t<0?Wr(e+i,0):Br(i,e-1)}return Tt(n,Bf(r,3),i,true)}function Vo(n){var r=n==null?0:n.length;return r?ke(n,1):[]}function Yo(n){var r=n==null?0:n.length;return r?ke(n,M):[]}function Ko(n,r){var t=n==null?0:n.length;if(!t){return[]}r=r===u?1:Vl(r);return ke(n,r)}function Xo(n){var r=-1,t=n==null?0:n.length,u={};while(++r<t){var e=n[r];u[e[0]]=e[1]}return u}function Qo(n){return n&&n.length?n[0]:u}function na(n,r,t){var u=n==null?0:n.length;if(!u){return-1}var e=t==null?0:Vl(t);if(e<0){e=Wr(u+e,0)}return Ft(n,r,e)}function ra(n){var r=n==null?0:n.length;return r?Ei(n,0,-1):[]}var ta=_i((function(n){var r=$t(n,Wi);return r.length&&r[0]===n[0]?We(r):[]}));var ua=_i((function(n){var r=fa(n),t=$t(n,Wi);if(r===fa(t)){r=u}else{t.pop()}return t.length&&t[0]===n[0]?We(t,Bf(r,2)):[]}));var ea=_i((function(n){var r=fa(n),t=$t(n,Wi);r=typeof r=="function"?r:u;if(r){t.pop()}return t.length&&t[0]===n[0]?We(t,u,r):[]}));function ia(n,r){return n==null?"":zr.call(n,r)}function fa(n){var r=n==null?0:n.length;return r?n[r-1]:u}function oa(n,r,t){var e=n==null?0:n.length;if(!e){return-1}var i=e;if(t!==u){i=Vl(t);i=i<0?Wr(e+i,0):Br(i,e-1)}return r===r?hu(n,r,i):Tt(n,Lt,i,true)}function aa(n,r){return n&&n.length?li(n,Vl(r)):u}var ca=_i(la);function la(n,r){return n&&n.length&&r&&r.length?pi(n,r):n}function sa(n,r,t){return n&&n.length&&r&&r.length?pi(n,r,Bf(t,2)):n}function va(n,r,t){return n&&n.length&&r&&r.length?pi(n,r,u,t):n}var ha=Lf((function(n,r){var t=n==null?0:n.length,u=pe(n,r);yi(n,$t(r,(function(n){return fo(n,t)?+n:n})).sort(Qi));return u}));function wa(n,r){var t=[];if(!(n&&n.length)){return t}var u=-1,e=[],i=n.length;r=Bf(r,3);while(++u<i){var f=n[u];if(r(f,u,n)){t.push(f);e.push(u)}}yi(n,e);return t}function pa(n){return n==null?n:Xr.call(n)}function ya(n,r,t){var e=n==null?0:n.length;if(!e){return[]}if(t&&typeof t!="number"&&oo(n,r,t)){r=0;t=e}else{r=r==null?0:Vl(r);t=t===u?e:Vl(t)}return Ei(n,r,t)}function da(n,r){return Si(n,r)}function ba(n,r,t){return Ii(n,r,Bf(t,2))}function ga(n,r){var t=n==null?0:n.length;if(t){var u=Si(n,r);if(u<t&&il(n[u],r)){return u}}return-1}function _a(n,r){return Si(n,r,true)}function xa(n,r,t){return Ii(n,r,Bf(t,2),true)}function ma(n,r){var t=n==null?0:n.length;if(t){var u=Si(n,r,true)-1;if(il(n[u],r)){return u}}return-1}function ja(n){return n&&n.length?Ci(n):[]}function Aa(n,r){return n&&n.length?Ci(n,Bf(r,2)):[]}function Ra(n){var r=n==null?0:n.length;return r?Ei(n,1,r):[]}function $a(n,r,t){if(!(n&&n.length)){return[]}r=t||r===u?1:Vl(r);return Ei(n,0,r<0?0:r)}function Ea(n,r,t){var e=n==null?0:n.length;if(!e){return[]}r=t||r===u?1:Vl(r);r=e-r;return Ei(n,r<0?0:r,e)}function ka(n,r){return n&&n.length?Di(n,Bf(r,3),false,true):[]}function Sa(n,r){return n&&n.length?Di(n,Bf(r,3)):[]}var Ia=_i((function(n){return Mi(ke(n,1,vl,true))}));var Ca=_i((function(n){var r=fa(n);if(vl(r)){r=u}return Mi(ke(n,1,vl,true),Bf(r,2))}));var Ua=_i((function(n){var r=fa(n);r=typeof r=="function"?r:u;return Mi(ke(n,1,vl,true),u,r)}));function Oa(n){return n&&n.length?Mi(n):[]}function Ma(n,r){return n&&n.length?Mi(n,Bf(r,2)):[]}function Ta(n,r){r=typeof r=="function"?r:u;return n&&n.length?Mi(n,u,r):[]}function Fa(n){if(!(n&&n.length)){return[]}var r=0;n=jt(n,(function(n){if(vl(n)){r=Wr(n.length,r);return true}}));return Pt(r,(function(r){return $t(n,Nt(r))}))}function Da(n,r){if(!(n&&n.length)){return[]}var t=Fa(n);if(r==null){return t}return $t(t,(function(n){return bt(r,u,n)}))}var La=_i((function(n,r){return vl(n)?xe(n,r):[]}));var za=_i((function(n){return zi(jt(n,vl))}));var Na=_i((function(n){var r=fa(n);if(vl(r)){r=u}return zi(jt(n,vl),Bf(r,2))}));var Wa=_i((function(n){var r=fa(n);r=typeof r=="function"?r:u;return zi(jt(n,vl),u,r)}));var Za=_i(Fa);function Ga(n,r){return Ni(n||[],r||[],ce)}function Ba(n,r){return Ni(n||[],r||[],ji)}var Pa=_i((function(n){var r=n.length,t=r>1?n[r-1]:u;t=typeof t=="function"?(n.pop(),t):u;return Da(n,t)}));function qa(n){var r=ju(n);r.__chain__=true;return r}function Ha(n,r){r(n);return n}function Ja(n,r){return r(n)}var Va=Lf((function(n){var r=n.length,t=r?n[0]:0,e=this.__wrapped__,i=function(r){return pe(r,n)};if(r>1||this.__actions__.length||!(e instanceof Eu)||!fo(t)){return this.thru(i)}e=e.slice(t,+t+(r?1:0));e.__actions__.push({func:Ja,args:[i],thisArg:u});return new $u(e,this.__chain__).thru((function(n){if(r&&!n.length){n.push(u)}return n}))}));function Ya(){return qa(this)}function Ka(){return new $u(this.value(),this.__chain__)}function Xa(){if(this.__values__===u){this.__values__=Hl(this.value())}var n=this.__index__>=this.__values__.length,r=n?u:this.__values__[this.__index__++];return{done:n,value:r}}function Qa(){return this}function nc(n){var r,t=this;while(t instanceof Ru){var e=To(t);e.__index__=0;e.__values__=u;if(r){i.__wrapped__=e}else{r=e}var i=e;t=t.__wrapped__}i.__wrapped__=n;return r}function rc(){var n=this.__wrapped__;if(n instanceof Eu){var r=n;if(this.__actions__.length){r=new Eu(this)}r=r.reverse();r.__actions__.push({func:Ja,args:[pa],thisArg:u});return new $u(r,this.__chain__)}return this.thru(pa)}function tc(){return Li(this.__wrapped__,this.__actions__)}var uc=af((function(n,r,t){if(vr.call(n,t)){++n[t]}else{we(n,t,1)}}));function ec(n,r,t){var e=cl(n)?mt:Ae;if(t&&oo(n,r,t)){r=u}return e(n,Bf(r,3))}function ic(n,r){var t=cl(n)?jt:Ee;return t(n,Bf(r,3))}var fc=df(Ho);var oc=df(Jo);function ac(n,r){return ke(dc(n,r),1)}function cc(n,r){return ke(dc(n,r),M)}function lc(n,r,t){t=t===u?1:Vl(t);return ke(dc(n,r),t)}function sc(n,r){var t=cl(n)?_t:me;return t(n,Bf(r,3))}function vc(n,r){var t=cl(n)?xt:je;return t(n,Bf(r,3))}var hc=af((function(n,r,t){if(vr.call(n,t)){n[t].push(r)}else{we(n,t,[r])}}));function wc(n,r,t,u){n=sl(n)?n:Zs(n);t=t&&!u?Vl(t):0;var e=n.length;if(t<0){t=Wr(e+t,0)}return zl(n)?t<=e&&n.indexOf(r,t)>-1:!!e&&Ft(n,r,t)>-1}var pc=_i((function(n,r,u){var e=-1,i=typeof r=="function",f=sl(n)?t(n.length):[];me(n,(function(n){f[++e]=i?bt(r,n,u):Ge(n,r,u)}));return f}));var yc=af((function(n,r,t){we(n,t,r)}));function dc(n,r){var t=cl(n)?$t:ii;return t(n,Bf(r,3))}function bc(n,r,t,e){if(n==null){return[]}if(!cl(r)){r=r==null?[]:[r]}t=e?u:t;if(!cl(t)){t=t==null?[]:[t]}return si(n,r,t)}var gc=af((function(n,r,t){n[t?0:1].push(r)}),(function(){return[[],[]]}));function _c(n,r,t){var u=cl(n)?kt:Zt,e=arguments.length<3;return u(n,Bf(r,4),t,e,me)}function xc(n,r,t){var u=cl(n)?St:Zt,e=arguments.length<3;return u(n,Bf(r,4),t,e,je)}function mc(n,r){var t=cl(n)?jt:Ee;return t(n,Zc(Bf(r,3)))}function jc(n){var r=cl(n)?ie:xi;return r(n)}function Ac(n,r,t){if(t?oo(n,r,t):r===u){r=1}else{r=Vl(r)}var e=cl(n)?fe:mi;return e(n,r)}function Rc(n){var r=cl(n)?oe:$i;return r(n)}function $c(n){if(n==null){return 0}if(sl(n)){return zl(n)?wu(n):n.length}var r=Kf(n);if(r==K||r==en){return n.size}return ti(n).length}function Ec(n,r,t){var e=cl(n)?It:ki;if(t&&oo(n,r,t)){r=u}return e(n,Bf(r,3))}var kc=_i((function(n,r){if(n==null){return[]}var t=r.length;if(t>1&&oo(n,r[0],r[1])){r=[]}else if(t>2&&oo(r[0],r[1],r[2])){r=[r[0]]}return si(n,ke(r,1),[])}));var Sc=Ur||function(){return ft.Date.now()};function Ic(n,r){if(typeof r!="function"){throw new fr(o)}n=Vl(n);return function(){if(--n<1){return r.apply(this,arguments)}}}function Cc(n,r,t){r=t?u:r;r=n&&r==null?n.length:r;return Cf(n,A,u,u,u,u,r)}function Uc(n,r){var t;if(typeof r!="function"){throw new fr(o)}n=Vl(n);return function(){if(--n>0){t=r.apply(this,arguments)}if(n<=1){r=u}return t}}var Oc=_i((function(n,r,t){var u=d;if(t.length){var e=cu(t,Gf(Oc));u|=m}return Cf(n,u,r,t,e)}));var Mc=_i((function(n,r,t){var u=d|b;if(t.length){var e=cu(t,Gf(Mc));u|=m}return Cf(r,u,n,t,e)}));function Tc(n,r,t){r=t?u:r;var e=Cf(n,_,u,u,u,u,u,r);e.placeholder=Tc.placeholder;return e}function Fc(n,r,t){r=t?u:r;var e=Cf(n,x,u,u,u,u,u,r);e.placeholder=Fc.placeholder;return e}function Dc(n,r,t){var e,i,f,a,c,l,s=0,v=false,h=false,w=true;if(typeof n!="function"){throw new fr(o)}r=Kl(r)||0;if(Rl(t)){v=!!t.leading;h="maxWait"in t;f=h?Wr(Kl(t.maxWait)||0,r):f;w="trailing"in t?!!t.trailing:w}function p(r){var t=e,f=i;e=i=u;s=r;a=n.apply(f,t);return a}function y(n){s=n;c=$o(g,r);return v?p(n):a}function d(n){var t=n-l,u=n-s,e=r-t;return h?Br(e,f-u):e}function b(n){var t=n-l,e=n-s;return l===u||t>=r||t<0||h&&e>=f}function g(){var n=Sc();if(b(n)){return _(n)}c=$o(g,d(n))}function _(n){c=u;if(w&&e){return p(n)}e=i=u;return a}function x(){if(c!==u){qi(c)}s=0;e=l=i=c=u}function m(){return c===u?a:_(Sc())}function j(){var n=Sc(),t=b(n);e=arguments;i=this;l=n;if(t){if(c===u){return y(l)}if(h){qi(c);c=$o(g,r);return p(l)}}if(c===u){c=$o(g,r)}return a}j.cancel=x;j.flush=m;return j}var Lc=_i((function(n,r){return _e(n,1,r)}));var zc=_i((function(n,r,t){return _e(n,Kl(r)||0,t)}));function Nc(n){return Cf(n,$)}function Wc(n,r){if(typeof n!="function"||r!=null&&typeof r!="function"){throw new fr(o)}var t=function(){var u=arguments,e=r?r.apply(this,u):u[0],i=t.cache;if(i.has(e)){return i.get(e)}var f=n.apply(this,u);t.cache=i.set(e,f)||i;return f};t.cache=new(Wc.Cache||Gu);return t}Wc.Cache=Gu;function Zc(n){if(typeof n!="function"){throw new fr(o)}return function(){var r=arguments;switch(r.length){case 0:return!n.call(this);case 1:return!n.call(this,r[0]);case 2:return!n.call(this,r[0],r[1]);case 3:return!n.call(this,r[0],r[1],r[2])}return!n.apply(this,r)}}function Gc(n){return Uc(2,n)}var Bc=Bi((function(n,r){r=r.length==1&&cl(r[0])?$t(r[0],Jt(Bf())):$t(ke(r,1),Jt(Bf()));var t=r.length;return _i((function(u){var e=-1,i=Br(u.length,t);while(++e<i){u[e]=r[e].call(this,u[e])}return bt(n,this,u)}))}));var Pc=_i((function(n,r){var t=cu(r,Gf(Pc));return Cf(n,m,u,r,t)}));var qc=_i((function(n,r){var t=cu(r,Gf(qc));return Cf(n,j,u,r,t)}));var Hc=Lf((function(n,r){return Cf(n,R,u,u,u,r)}));function Jc(n,r){if(typeof n!="function"){throw new fr(o)}r=r===u?r:Vl(r);return _i(n,r)}function Vc(n,r){if(typeof n!="function"){throw new fr(o)}r=r==null?0:Wr(Vl(r),0);return _i((function(t){var u=t[r],e=Pi(t,0,r);if(u){Et(e,u)}return bt(n,this,e)}))}function Yc(n,r,t){var u=true,e=true;if(typeof n!="function"){throw new fr(o)}if(Rl(t)){u="leading"in t?!!t.leading:u;e="trailing"in t?!!t.trailing:e}return Dc(n,r,{leading:u,maxWait:r,trailing:e})}function Kc(n){return Cc(n,1)}function Xc(n,r){return Pc(Zi(r),n)}function Qc(){if(!arguments.length){return[]}var n=arguments[0];return cl(n)?n:[n]}function nl(n){return de(n,w)}function rl(n,r){r=typeof r=="function"?r:u;return de(n,w,r)}function tl(n){return de(n,v|w)}function ul(n,r){r=typeof r=="function"?r:u;return de(n,v|w,r)}function el(n,r){return r==null||ge(n,r,js(r))}function il(n,r){return n===r||n!==n&&r!==r}var fl=$f(De);var ol=$f((function(n,r){return n>=r}));var al=Be(function(){return arguments}())?Be:function(n){return $l(n)&&vr.call(n,"callee")&&!Rr.call(n,"callee")};var cl=t.isArray;var ll=vt?Jt(vt):Pe;function sl(n){return n!=null&&Al(n.length)&&!ml(n)}function vl(n){return $l(n)&&sl(n)}function hl(n){return n===true||n===false||$l(n)&&Fe(n)==P}var wl=Dr||Vv;var pl=ht?Jt(ht):qe;function yl(n){return $l(n)&&n.nodeType===1&&!Tl(n)}function dl(n){if(n==null){return true}if(sl(n)&&(cl(n)||typeof n=="string"||typeof n.splice=="function"||wl(n)||Wl(n)||al(n))){return!n.length}var r=Kf(n);if(r==K||r==en){return!n.size}if(ho(n)){return!ti(n).length}for(var t in n){if(vr.call(n,t)){return false}}return true}function bl(n,r){return He(n,r)}function gl(n,r,t){t=typeof t=="function"?t:u;var e=t?t(n,r):u;return e===u?He(n,r,u,t):!!e}function _l(n){if(!$l(n)){return false}var r=Fe(n);return r==J||r==H||typeof n.message=="string"&&typeof n.name=="string"&&!Tl(n)}function xl(n){return typeof n=="number"&&Lr(n)}function ml(n){if(!Rl(n)){return false}var r=Fe(n);return r==V||r==Y||r==B||r==tn}function jl(n){return typeof n=="number"&&n==Vl(n)}function Al(n){return typeof n=="number"&&n>-1&&n%1==0&&n<=T}function Rl(n){var r=typeof n;return n!=null&&(r=="object"||r=="function")}function $l(n){return n!=null&&typeof n=="object"}var El=wt?Jt(wt):Ve;function kl(n,r){return n===r||Ye(n,r,qf(r))}function Sl(n,r,t){t=typeof t=="function"?t:u;return Ye(n,r,qf(r),t)}function Il(n){return Ml(n)&&n!=+n}function Cl(n){if(vo(n)){throw new Zn(f)}return Ke(n)}function Ul(n){return n===null}function Ol(n){return n==null}function Ml(n){return typeof n=="number"||$l(n)&&Fe(n)==X}function Tl(n){if(!$l(n)||Fe(n)!=nn){return false}var r=jr(n);if(r===null){return true}var t=vr.call(r,"constructor")&&r.constructor;return typeof t=="function"&&t instanceof t&&sr.call(t)==yr}var Fl=pt?Jt(pt):Xe;function Dl(n){return jl(n)&&n>=-T&&n<=T}var Ll=yt?Jt(yt):Qe;function zl(n){return typeof n=="string"||!cl(n)&&$l(n)&&Fe(n)==fn}function Nl(n){return typeof n=="symbol"||$l(n)&&Fe(n)==on}var Wl=dt?Jt(dt):ni;function Zl(n){return n===u}function Gl(n){return $l(n)&&Kf(n)==cn}function Bl(n){return $l(n)&&Fe(n)==ln}var Pl=$f(ei);var ql=$f((function(n,r){return n<=r}));function Hl(n){if(!n){return[]}if(sl(n)){return zl(n)?pu(n):uf(n)}if(kr&&n[kr]){return fu(n[kr]())}var r=Kf(n),t=r==K?ou:r==en?lu:Zs;return t(n)}function Jl(n){if(!n){return n===0?n:0}n=Kl(n);if(n===M||n===-M){var r=n<0?-1:1;return r*F}return n===n?n:0}function Vl(n){var r=Jl(n),t=r%1;return r===r?t?r-t:r:0}function Yl(n){return n?ye(Vl(n),0,L):0}function Kl(n){if(typeof n=="number"){return n}if(Nl(n)){return D}if(Rl(n)){var r=typeof n.valueOf=="function"?n.valueOf():n;n=Rl(r)?r+"":r}if(typeof n!="string"){return n===0?n:+n}n=Ht(n);var t=Jn.test(n);return t||Yn.test(n)?ut(n.slice(2),t?2:8):Hn.test(n)?D:+n}function Xl(n){return ef(n,As(n))}function Ql(n){return n?ye(Vl(n),-T,T):n===0?n:0}function ns(n){return n==null?"":Oi(n)}var rs=cf((function(n,r){if(ho(r)||sl(r)){ef(r,js(r),n);return}for(var t in r){if(vr.call(r,t)){ce(n,t,r[t])}}}));var ts=cf((function(n,r){ef(r,As(r),n)}));var us=cf((function(n,r,t,u){ef(r,As(r),n,u)}));var es=cf((function(n,r,t,u){ef(r,js(r),n,u)}));var is=Lf(pe);function fs(n,r){var t=Au(n);return r==null?t:ve(t,r)}var os=_i((function(n,r){n=ur(n);var t=-1;var e=r.length;var i=e>2?r[2]:u;if(i&&oo(r[0],r[1],i)){e=1}while(++t<e){var f=r[t];var o=As(f);var a=-1;var c=o.length;while(++a<c){var l=o[a];var s=n[l];if(s===u||il(s,cr[l])&&!vr.call(n,l)){n[l]=f[l]}}}return n}));var as=_i((function(n){n.push(u,Of);return bt(ks,u,n)}));function cs(n,r){return Mt(n,Bf(r,3),Ce)}function ls(n,r){return Mt(n,Bf(r,3),Ue)}function ss(n,r){return n==null?n:Se(n,Bf(r,3),As)}function vs(n,r){return n==null?n:Ie(n,Bf(r,3),As)}function hs(n,r){return n&&Ce(n,Bf(r,3))}function ws(n,r){return n&&Ue(n,Bf(r,3))}function ps(n){return n==null?[]:Oe(n,js(n))}function ys(n){return n==null?[]:Oe(n,As(n))}function ds(n,r,t){var e=n==null?u:Me(n,r);return e===u?t:e}function bs(n,r){return n!=null&&no(n,r,Le)}function gs(n,r){return n!=null&&no(n,r,ze)}var _s=_f((function(n,r,t){if(r!=null&&typeof r.toString!="function"){r=pr.call(r)}n[r]=t}),Ev(Cv));var xs=_f((function(n,r,t){if(r!=null&&typeof r.toString!="function"){r=pr.call(r)}if(vr.call(n,r)){n[r].push(t)}else{n[r]=[t]}}),Bf);var ms=_i(Ge);function js(n){return sl(n)?ee(n):ti(n)}function As(n){return sl(n)?ee(n,true):ui(n)}function Rs(n,r){var t={};r=Bf(r,3);Ce(n,(function(n,u,e){we(t,r(n,u,e),n)}));return t}function $s(n,r){var t={};r=Bf(r,3);Ce(n,(function(n,u,e){we(t,u,r(n,u,e))}));return t}var Es=cf((function(n,r,t){ai(n,r,t)}));var ks=cf((function(n,r,t,u){ai(n,r,t,u)}));var Ss=Lf((function(n,r){var t={};if(n==null){return t}var u=false;r=$t(r,(function(r){r=Gi(r,n);u||(u=r.length>1);return r}));ef(n,Nf(n),t);if(u){t=de(t,v|h|w,Mf)}var e=r.length;while(e--){Ti(t,r[e])}return t}));function Is(n,r){return Us(n,Zc(Bf(r)))}var Cs=Lf((function(n,r){return n==null?{}:vi(n,r)}));function Us(n,r){if(n==null){return{}}var t=$t(Nf(n),(function(n){return[n]}));r=Bf(r);return hi(n,t,(function(n,t){return r(n,t[0])}))}function Os(n,r,t){r=Gi(r,n);var e=-1,i=r.length;if(!i){i=1;n=u}while(++e<i){var f=n==null?u:n[Uo(r[e])];if(f===u){e=i;f=t}n=ml(f)?f.call(n):f}return n}function Ms(n,r,t){return n==null?n:ji(n,r,t)}function Ts(n,r,t,e){e=typeof e=="function"?e:u;return n==null?n:ji(n,r,t,e)}var Fs=If(js);var Ds=If(As);function Ls(n,r,t){var u=cl(n),e=u||wl(n)||Wl(n);r=Bf(r,4);if(t==null){var i=n&&n.constructor;if(e){t=u?new i:[]}else if(Rl(n)){t=ml(i)?Au(jr(n)):{}}else{t={}}}(e?_t:Ce)(n,(function(n,u,e){return r(t,n,u,e)}));return t}function zs(n,r){return n==null?true:Ti(n,r)}function Ns(n,r,t){return n==null?n:Fi(n,r,Zi(t))}function Ws(n,r,t,e){e=typeof e=="function"?e:u;return n==null?n:Fi(n,r,Zi(t),e)}function Zs(n){return n==null?[]:Vt(n,js(n))}function Gs(n){return n==null?[]:Vt(n,As(n))}function Bs(n,r,t){if(t===u){t=r;r=u}if(t!==u){t=Kl(t);t=t===t?t:0}if(r!==u){r=Kl(r);r=r===r?r:0}return ye(Kl(n),r,t)}function Ps(n,r,t){r=Jl(r);if(t===u){t=r;r=0}else{t=Jl(t)}n=Kl(n);return Ne(n,r,t)}function qs(n,r,t){if(t&&typeof t!="boolean"&&oo(n,r,t)){r=t=u}if(t===u){if(typeof r=="boolean"){t=r;r=u}else if(typeof n=="boolean"){t=n;n=u}}if(n===u&&r===u){n=0;r=1}else{n=Jl(n);if(r===u){r=n;n=0}else{r=Jl(r)}}if(n>r){var e=n;n=r;r=e}if(t||n%1||r%1){var i=Hr();return Br(n+i*(r-n+tt("1e-"+((i+"").length-1))),r)}return di(n,r)}var Hs=wf((function(n,r,t){r=r.toLowerCase();return n+(t?Js(r):r)}));function Js(n){return xv(ns(n).toLowerCase())}function Vs(n){n=ns(n);return n&&n.replace(Xn,nu).replace(Gr,"")}function Ys(n,r,t){n=ns(n);r=Oi(r);var e=n.length;t=t===u?e:ye(Vl(t),0,e);var i=t;t-=r.length;return t>=0&&n.slice(t,i)==r}function Ks(n){n=ns(n);return n&&kn.test(n)?n.replace($n,ru):n}function Xs(n){n=ns(n);return n&&Fn.test(n)?n.replace(Tn,"\\$&"):n}var Qs=wf((function(n,r,t){return n+(t?"-":"")+r.toLowerCase()}));var nv=wf((function(n,r,t){return n+(t?" ":"")+r.toLowerCase()}));var rv=hf("toLowerCase");function tv(n,r,t){n=ns(n);r=Vl(r);var u=r?wu(n):0;if(!r||u>=r){return n}var e=(r-u)/2;return jf(Tr(e),t)+n+jf(Mr(e),t)}function uv(n,r,t){n=ns(n);r=Vl(r);var u=r?wu(n):0;return r&&u<r?n+jf(r-u,t):n}function ev(n,r,t){n=ns(n);r=Vl(r);var u=r?wu(n):0;return r&&u<r?jf(r-u,t)+n:n}function iv(n,r,t){if(t||r==null){r=0}else if(r){r=+r}return qr(ns(n).replace(Dn,""),r||0)}function fv(n,r,t){if(t?oo(n,r,t):r===u){r=1}else{r=Vl(r)}return gi(ns(n),r)}function ov(){var n=arguments,r=ns(n[0]);return n.length<3?r:r.replace(n[1],n[2])}var av=wf((function(n,r,t){return n+(t?"_":"")+r.toLowerCase()}));function cv(n,r,t){if(t&&typeof t!="number"&&oo(n,r,t)){r=t=u}t=t===u?L:t>>>0;if(!t){return[]}n=ns(n);if(n&&(typeof r=="string"||r!=null&&!Fl(r))){r=Oi(r);if(!r&&eu(n)){return Pi(pu(n),0,t)}}return n.split(r,t)}var lv=wf((function(n,r,t){return n+(t?" ":"")+xv(r)}));function sv(n,r,t){n=ns(n);t=t==null?0:ye(Vl(t),0,n.length);r=Oi(r);return n.slice(t,t+r.length)==r}function vv(n,r,t){var e=ju.templateSettings;if(t&&oo(n,r,t)){r=u}n=ns(n);r=us({},r,e,Uf);var i=us({},r.imports,e.imports,Uf),f=js(i),o=Vt(i,f);var c,l,s=0,v=r.interpolate||Qn,h="__p += '";var w=er((r.escape||Qn).source+"|"+v.source+"|"+(v===Cn?Pn:Qn).source+"|"+(r.evaluate||Qn).source+"|$","g");var p="//# sourceURL="+(vr.call(r,"sourceURL")?(r.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++Vr+"]")+"\n";n.replace(w,(function(r,t,u,e,i,f){u||(u=e);h+=n.slice(s,f).replace(nr,tu);if(t){c=true;h+="' +\n__e("+t+") +\n'"}if(i){l=true;h+="';\n"+i+";\n__p += '"}if(u){h+="' +\n((__t = ("+u+")) == null ? '' : __t) +\n'"}s=f+r.length;return r}));h+="';\n";var y=vr.call(r,"variable")&&r.variable;if(!y){h="with (obj) {\n"+h+"\n}\n"}else if(Gn.test(y)){throw new Zn(a)}h=(l?h.replace(mn,""):h).replace(jn,"$1").replace(An,"$1;");h="function("+(y||"obj")+") {\n"+(y?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(c?", __e = _.escape":"")+(l?", __j = Array.prototype.join;\n"+"function print() { __p += __j.call(arguments, '') }\n":";\n")+h+"return __p\n}";var d=jv((function(){return rr(f,p+"return "+h).apply(u,o)}));d.source=h;if(_l(d)){throw d}return d}function hv(n){return ns(n).toLowerCase()}function wv(n){return ns(n).toUpperCase()}function pv(n,r,t){n=ns(n);if(n&&(t||r===u)){return Ht(n)}if(!n||!(r=Oi(r))){return n}var e=pu(n),i=pu(r),f=Kt(e,i),o=Xt(e,i)+1;return Pi(e,f,o).join("")}function yv(n,r,t){n=ns(n);if(n&&(t||r===u)){return n.slice(0,yu(n)+1)}if(!n||!(r=Oi(r))){return n}var e=pu(n),i=Xt(e,pu(r))+1;return Pi(e,0,i).join("")}function dv(n,r,t){n=ns(n);if(n&&(t||r===u)){return n.replace(Dn,"")}if(!n||!(r=Oi(r))){return n}var e=pu(n),i=Kt(e,pu(r));return Pi(e,i).join("")}function bv(n,r){var t=E,e=k;if(Rl(r)){var i="separator"in r?r.separator:i;t="length"in r?Vl(r.length):t;e="omission"in r?Oi(r.omission):e}n=ns(n);var f=n.length;if(eu(n)){var o=pu(n);f=o.length}if(t>=f){return n}var a=t-wu(e);if(a<1){return e}var c=o?Pi(o,0,a).join(""):n.slice(0,a);if(i===u){return c+e}if(o){a+=c.length-a}if(Fl(i)){if(n.slice(a).search(i)){var l,s=c;if(!i.global){i=er(i.source,ns(qn.exec(i))+"g")}i.lastIndex=0;while(l=i.exec(s)){var v=l.index}c=c.slice(0,v===u?a:v)}}else if(n.indexOf(Oi(i),a)!=a){var h=c.lastIndexOf(i);if(h>-1){c=c.slice(0,h)}}return c+e}function gv(n){n=ns(n);return n&&En.test(n)?n.replace(Rn,du):n}var _v=wf((function(n,r,t){return n+(t?" ":"")+r.toUpperCase()}));var xv=hf("toUpperCase");function mv(n,r,t){n=ns(n);r=t?u:r;if(r===u){return iu(n)?_u(n):Ot(n)}return n.match(r)||[]}var jv=_i((function(n,r){try{return bt(n,u,r)}catch(n){return _l(n)?n:new Zn(n)}}));var Av=Lf((function(n,r){_t(r,(function(r){r=Uo(r);we(n,r,Oc(n[r],n))}));return n}));function Rv(n){var r=n==null?0:n.length,t=Bf();n=!r?[]:$t(n,(function(n){if(typeof n[1]!="function"){throw new fr(o)}return[t(n[0]),n[1]]}));return _i((function(t){var u=-1;while(++u<r){var e=n[u];if(bt(e[0],this,t)){return bt(e[1],this,t)}}}))}function $v(n){return be(de(n,v))}function Ev(n){return function(){return n}}function kv(n,r){return n==null||n!==n?r:n}var Sv=bf();var Iv=bf(true);function Cv(n){return n}function Uv(n){return ri(typeof n=="function"?n:de(n,v))}function Ov(n){return fi(de(n,v))}function Mv(n,r){return oi(n,de(r,v))}var Tv=_i((function(n,r){return function(t){return Ge(t,n,r)}}));var Fv=_i((function(n,r){return function(t){return Ge(n,t,r)}}));function Dv(n,r,t){var u=js(r),e=Oe(r,u);if(t==null&&!(Rl(r)&&(e.length||!u.length))){t=r;r=n;n=this;e=Oe(r,js(r))}var i=!(Rl(t)&&"chain"in t)||!!t.chain,f=ml(n);_t(e,(function(t){var u=r[t];n[t]=u;if(f){n.prototype[t]=function(){var r=this.__chain__;if(i||r){var t=n(this.__wrapped__),e=t.__actions__=uf(this.__actions__);e.push({func:u,args:arguments,thisArg:n});t.__chain__=r;return t}return u.apply(n,Et([this.value()],arguments))}}}));return n}function Lv(){if(ft._===this){ft._=dr}return this}function zv(){}function Nv(n){n=Vl(n);return _i((function(r){return li(r,n)}))}var Wv=mf($t);var Zv=mf(mt);var Gv=mf(It);function Bv(n){return ao(n)?Nt(Uo(n)):wi(n)}function Pv(n){return function(r){return n==null?u:Me(n,r)}}var qv=Rf();var Hv=Rf(true);function Jv(){return[]}function Vv(){return false}function Yv(){return{}}function Kv(){return""}function Xv(){return true}function Qv(n,r){n=Vl(n);if(n<1||n>T){return[]}var t=L,u=Br(n,L);r=Bf(r);n-=L;var e=Pt(u,r);while(++t<n){r(t)}return e}function nh(n){if(cl(n)){return $t(n,Uo)}return Nl(n)?[n]:uf(Co(ns(n)))}function rh(n){var r=++hr;return ns(n)+r}var th=xf((function(n,r){return n+r}),0);var uh=kf("ceil");var eh=xf((function(n,r){return n/r}),1);var ih=kf("floor");function fh(n){return n&&n.length?Re(n,Cv,De):u}function oh(n,r){return n&&n.length?Re(n,Bf(r,2),De):u}function ah(n){return zt(n,Cv)}function ch(n,r){return zt(n,Bf(r,2))}function lh(n){return n&&n.length?Re(n,Cv,ei):u}function sh(n,r){return n&&n.length?Re(n,Bf(r,2),ei):u}var vh=xf((function(n,r){return n*r}),1);var hh=kf("round");var wh=xf((function(n,r){return n-r}),0);function ph(n){return n&&n.length?Bt(n,Cv):0}function yh(n,r){return n&&n.length?Bt(n,Bf(r,2)):0}ju.after=Ic;ju.ary=Cc;ju.assign=rs;ju.assignIn=ts;ju.assignInWith=us;ju.assignWith=es;ju.at=is;ju.before=Uc;ju.bind=Oc;ju.bindAll=Av;ju.bindKey=Mc;ju.castArray=Qc;ju.chain=qa;ju.chunk=Fo;ju.compact=Do;ju.concat=Lo;ju.cond=Rv;ju.conforms=$v;ju.constant=Ev;ju.countBy=uc;ju.create=fs;ju.curry=Tc;ju.curryRight=Fc;ju.debounce=Dc;ju.defaults=os;ju.defaultsDeep=as;ju.defer=Lc;ju.delay=zc;ju.difference=zo;ju.differenceBy=No;ju.differenceWith=Wo;ju.drop=Zo;ju.dropRight=Go;ju.dropRightWhile=Bo;ju.dropWhile=Po;ju.fill=qo;ju.filter=ic;ju.flatMap=ac;ju.flatMapDeep=cc;ju.flatMapDepth=lc;ju.flatten=Vo;ju.flattenDeep=Yo;ju.flattenDepth=Ko;ju.flip=Nc;ju.flow=Sv;ju.flowRight=Iv;ju.fromPairs=Xo;ju.functions=ps;ju.functionsIn=ys;ju.groupBy=hc;ju.initial=ra;ju.intersection=ta;ju.intersectionBy=ua;ju.intersectionWith=ea;ju.invert=_s;ju.invertBy=xs;ju.invokeMap=pc;ju.iteratee=Uv;ju.keyBy=yc;ju.keys=js;ju.keysIn=As;ju.map=dc;ju.mapKeys=Rs;ju.mapValues=$s;ju.matches=Ov;ju.matchesProperty=Mv;ju.memoize=Wc;ju.merge=Es;ju.mergeWith=ks;ju.method=Tv;ju.methodOf=Fv;ju.mixin=Dv;ju.negate=Zc;ju.nthArg=Nv;ju.omit=Ss;ju.omitBy=Is;ju.once=Gc;ju.orderBy=bc;ju.over=Wv;ju.overArgs=Bc;ju.overEvery=Zv;ju.overSome=Gv;ju.partial=Pc;ju.partialRight=qc;ju.partition=gc;ju.pick=Cs;ju.pickBy=Us;ju.property=Bv;ju.propertyOf=Pv;ju.pull=ca;ju.pullAll=la;ju.pullAllBy=sa;ju.pullAllWith=va;ju.pullAt=ha;ju.range=qv;ju.rangeRight=Hv;ju.rearg=Hc;ju.reject=mc;ju.remove=wa;ju.rest=Jc;ju.reverse=pa;ju.sampleSize=Ac;ju.set=Ms;ju.setWith=Ts;ju.shuffle=Rc;ju.slice=ya;ju.sortBy=kc;ju.sortedUniq=ja;ju.sortedUniqBy=Aa;ju.split=cv;ju.spread=Vc;ju.tail=Ra;ju.take=$a;ju.takeRight=Ea;ju.takeRightWhile=ka;ju.takeWhile=Sa;ju.tap=Ha;ju.throttle=Yc;ju.thru=Ja;ju.toArray=Hl;ju.toPairs=Fs;ju.toPairsIn=Ds;ju.toPath=nh;ju.toPlainObject=Xl;ju.transform=Ls;ju.unary=Kc;ju.union=Ia;ju.unionBy=Ca;ju.unionWith=Ua;ju.uniq=Oa;ju.uniqBy=Ma;ju.uniqWith=Ta;ju.unset=zs;ju.unzip=Fa;ju.unzipWith=Da;ju.update=Ns;ju.updateWith=Ws;ju.values=Zs;ju.valuesIn=Gs;ju.without=La;ju.words=mv;ju.wrap=Xc;ju.xor=za;ju.xorBy=Na;ju.xorWith=Wa;ju.zip=Za;ju.zipObject=Ga;ju.zipObjectDeep=Ba;ju.zipWith=Pa;ju.entries=Fs;ju.entriesIn=Ds;ju.extend=ts;ju.extendWith=us;Dv(ju,ju);ju.add=th;ju.attempt=jv;ju.camelCase=Hs;ju.capitalize=Js;ju.ceil=uh;ju.clamp=Bs;ju.clone=nl;ju.cloneDeep=tl;ju.cloneDeepWith=ul;ju.cloneWith=rl;ju.conformsTo=el;ju.deburr=Vs;ju.defaultTo=kv;ju.divide=eh;ju.endsWith=Ys;ju.eq=il;ju.escape=Ks;ju.escapeRegExp=Xs;ju.every=ec;ju.find=fc;ju.findIndex=Ho;ju.findKey=cs;ju.findLast=oc;ju.findLastIndex=Jo;ju.findLastKey=ls;ju.floor=ih;ju.forEach=sc;ju.forEachRight=vc;ju.forIn=ss;ju.forInRight=vs;ju.forOwn=hs;ju.forOwnRight=ws;ju.get=ds;ju.gt=fl;ju.gte=ol;ju.has=bs;ju.hasIn=gs;ju.head=Qo;ju.identity=Cv;ju.includes=wc;ju.indexOf=na;ju.inRange=Ps;ju.invoke=ms;ju.isArguments=al;ju.isArray=cl;ju.isArrayBuffer=ll;ju.isArrayLike=sl;ju.isArrayLikeObject=vl;ju.isBoolean=hl;ju.isBuffer=wl;ju.isDate=pl;ju.isElement=yl;ju.isEmpty=dl;ju.isEqual=bl;ju.isEqualWith=gl;ju.isError=_l;ju.isFinite=xl;ju.isFunction=ml;ju.isInteger=jl;ju.isLength=Al;ju.isMap=El;ju.isMatch=kl;ju.isMatchWith=Sl;ju.isNaN=Il;ju.isNative=Cl;ju.isNil=Ol;ju.isNull=Ul;ju.isNumber=Ml;ju.isObject=Rl;ju.isObjectLike=$l;ju.isPlainObject=Tl;ju.isRegExp=Fl;ju.isSafeInteger=Dl;ju.isSet=Ll;ju.isString=zl;ju.isSymbol=Nl;ju.isTypedArray=Wl;ju.isUndefined=Zl;ju.isWeakMap=Gl;ju.isWeakSet=Bl;ju.join=ia;ju.kebabCase=Qs;ju.last=fa;ju.lastIndexOf=oa;ju.lowerCase=nv;ju.lowerFirst=rv;ju.lt=Pl;ju.lte=ql;ju.max=fh;ju.maxBy=oh;ju.mean=ah;ju.meanBy=ch;ju.min=lh;ju.minBy=sh;ju.stubArray=Jv;ju.stubFalse=Vv;ju.stubObject=Yv;ju.stubString=Kv;ju.stubTrue=Xv;ju.multiply=vh;ju.nth=aa;ju.noConflict=Lv;ju.noop=zv;ju.now=Sc;ju.pad=tv;ju.padEnd=uv;ju.padStart=ev;ju.parseInt=iv;ju.random=qs;ju.reduce=_c;ju.reduceRight=xc;ju.repeat=fv;ju.replace=ov;ju.result=Os;ju.round=hh;ju.runInContext=n;ju.sample=jc;ju.size=$c;ju.snakeCase=av;ju.some=Ec;ju.sortedIndex=da;ju.sortedIndexBy=ba;ju.sortedIndexOf=ga;ju.sortedLastIndex=_a;ju.sortedLastIndexBy=xa;ju.sortedLastIndexOf=ma;ju.startCase=lv;ju.startsWith=sv;ju.subtract=wh;ju.sum=ph;ju.sumBy=yh;ju.template=vv;ju.times=Qv;ju.toFinite=Jl;ju.toInteger=Vl;ju.toLength=Yl;ju.toLower=hv;ju.toNumber=Kl;ju.toSafeInteger=Ql;ju.toString=ns;ju.toUpper=wv;ju.trim=pv;ju.trimEnd=yv;ju.trimStart=dv;ju.truncate=bv;ju.unescape=gv;ju.uniqueId=rh;ju.upperCase=_v;ju.upperFirst=xv;ju.each=sc;ju.eachRight=vc;ju.first=Qo;Dv(ju,function(){var n={};Ce(ju,(function(r,t){if(!vr.call(ju.prototype,t)){n[t]=r}}));return n}(),{chain:false});ju.VERSION=e;_t(["bind","bindKey","curry","curryRight","partial","partialRight"],(function(n){ju[n].placeholder=ju}));_t(["drop","take"],(function(n,r){Eu.prototype[n]=function(t){t=t===u?1:Wr(Vl(t),0);var e=this.__filtered__&&!r?new Eu(this):this.clone();if(e.__filtered__){e.__takeCount__=Br(t,e.__takeCount__)}else{e.__views__.push({size:Br(t,L),type:n+(e.__dir__<0?"Right":"")})}return e};Eu.prototype[n+"Right"]=function(r){return this.reverse()[n](r).reverse()}}));_t(["filter","map","takeWhile"],(function(n,r){var t=r+1,u=t==C||t==O;Eu.prototype[n]=function(n){var r=this.clone();r.__iteratees__.push({iteratee:Bf(n,3),type:t});r.__filtered__=r.__filtered__||u;return r}}));_t(["head","last"],(function(n,r){var t="take"+(r?"Right":"");Eu.prototype[n]=function(){return this[t](1).value()[0]}}));_t(["initial","tail"],(function(n,r){var t="drop"+(r?"":"Right");Eu.prototype[n]=function(){return this.__filtered__?new Eu(this):this[t](1)}}));Eu.prototype.compact=function(){return this.filter(Cv)};Eu.prototype.find=function(n){return this.filter(n).head()};Eu.prototype.findLast=function(n){return this.reverse().find(n)};Eu.prototype.invokeMap=_i((function(n,r){if(typeof n=="function"){return new Eu(this)}return this.map((function(t){return Ge(t,n,r)}))}));Eu.prototype.reject=function(n){return this.filter(Zc(Bf(n)))};Eu.prototype.slice=function(n,r){n=Vl(n);var t=this;if(t.__filtered__&&(n>0||r<0)){return new Eu(t)}if(n<0){t=t.takeRight(-n)}else if(n){t=t.drop(n)}if(r!==u){r=Vl(r);t=r<0?t.dropRight(-r):t.take(r-n)}return t};Eu.prototype.takeRightWhile=function(n){return this.reverse().takeWhile(n).reverse()};Eu.prototype.toArray=function(){return this.take(L)};Ce(Eu.prototype,(function(n,r){var t=/^(?:filter|find|map|reject)|While$/.test(r),e=/^(?:head|last)$/.test(r),i=ju[e?"take"+(r=="last"?"Right":""):r],f=e||/^find/.test(r);if(!i){return}ju.prototype[r]=function(){var r=this.__wrapped__,o=e?[1]:arguments,a=r instanceof Eu,c=o[0],l=a||cl(r);var s=function(n){var r=i.apply(ju,Et([n],o));return e&&v?r[0]:r};if(l&&t&&typeof c=="function"&&c.length!=1){a=l=false}var v=this.__chain__,h=!!this.__actions__.length,w=f&&!v,p=a&&!h;if(!f&&l){r=p?r:new Eu(this);var y=n.apply(r,o);y.__actions__.push({func:Ja,args:[s],thisArg:u});return new $u(y,v)}if(w&&p){return n.apply(this,o)}y=this.thru(s);return w?e?y.value()[0]:y.value():y}}));_t(["pop","push","shift","sort","splice","unshift"],(function(n){var r=or[n],t=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",u=/^(?:pop|shift)$/.test(n);ju.prototype[n]=function(){var n=arguments;if(u&&!this.__chain__){var e=this.value();return r.apply(cl(e)?e:[],n)}return this[t]((function(t){return r.apply(cl(t)?t:[],n)}))}}));Ce(Eu.prototype,(function(n,r){var t=ju[r];if(t){var u=t.name+"";if(!vr.call(lt,u)){lt[u]=[]}lt[u].push({name:r,func:t})}}));lt[gf(u,b).name]=[{name:"wrapper",func:u}];Eu.prototype.clone=ku;Eu.prototype.reverse=Su;Eu.prototype.value=Iu;ju.prototype.at=Va;ju.prototype.chain=Ya;ju.prototype.commit=Ka;ju.prototype.next=Xa;ju.prototype.plant=nc;ju.prototype.reverse=rc;ju.prototype.toJSON=ju.prototype.valueOf=ju.prototype.value=tc;ju.prototype.first=ju.prototype.head;if(kr){ju.prototype[kr]=Qa}return ju};var mu=xu();if(at){(at.exports=mu)._=mu;ot._=mu}else{ft._=mu}}).call(r)}));const f=`${t}-depth`;const o=`${t}-name`;const a=`${t}-id`;const c=`${t}-value`;const l=`${t}-column`;const s=`${t}-expanded`;const v=`${t}-original-index`;const h=`group-expand`;const w=`groupExpandClick`;const p="rgRow";function y(n,r,{prevExpanded:t,expandedAll:u}){const e=new Map;n.forEach(((n,t)=>{const u=r.map((r=>n[r]||null));const i=u.pop();let f=e;u.forEach((n=>{if(!f.has(n)){f.set(n,new Map)}f=f.get(n)}));if(!f.has(i)){f.set(i,[])}n[v]=t;const o=f.get(i);o.push(n)}));let i=-1;const l=r.length;const h={};const w={};const p={};const y=[];function d(n,r,e){const l=r.length;n.forEach(((n,b)=>{const g=[...r,b];const _=g.join(",");const x=e&&(!!u||!!(t===null||t===void 0?void 0:t[_]));y.push({[o]:b,[f]:l,[a]:JSON.stringify(g),[c]:_,[s]:x});i+=1;if(!x&&l){h[i]=true}if(Array.isArray(n)){n.forEach((n=>{i+=1;if(!x){h[i]=true}w[n[v]]=i;const r=g.map(((n,r)=>g.slice(0,r+1).join(",")));r.forEach((n=>{if(!p[n]){p[n]=[]}p[n].push(i)}))}));y.push(...n)}else{d(n,g,x)}}))}d(e,[],true);return{sourceWithGroups:y,depth:l,trimmed:h,oldNewIndexMap:w,childrenByGroup:p}}function d(n){return n&&n[o]}function b(n){return n&&typeof n[o]!=="undefined"}function g(n){return n&&typeof n[l]!=="undefined"}function _(n,r){const t=n.length;let u=0;for(;u<t;u++){if(n[u]!==r[u]){return u}}return u}function x(n){const r=JSON.parse(n);if(!Array.isArray(r)){return null}return r}function m(n,r,t){const u=x(t[a]);if(!u){return false}const e=_(n,u);return r[f]<e}function j(n){return n===I}function A(n,r){const t={};let u=["x","y"];for(let r of u){if(n[r]<0){t[r]=n[r];return t}}for(let e of u){if(n[e]>=r[e]){t[e]=n[e]-r[e];return t}}return null}function R(n,r){const t=Object.assign({},n);let u=["x","y"];for(let r of u){if(n[r]<0){t[r]=0}}for(let e of u){if(n[e]>=r[e]){t[e]=r[e]-1}}return t}function $(n,r){return n&&r?{x:Math.min(n.x,r.x),y:Math.min(n.y,r.y),x1:Math.max(n.x,r.x),y1:Math.max(n.y,r.y)}:null}function E(n){return n.x===n.x1&&n.y===n.y1}function k(){return{range:null,tempRange:null,tempRangeType:null,focus:null,edit:null,lastCell:null}}class S{constructor(){this.unsubscribe=[];this.store=u(k());this.store.on("set",((n,r)=>{if(n==="tempRange"&&!r){this.store.set("tempRangeType",null)}}))}onChange(n,r){this.unsubscribe.push(this.store.onChange(n,r))}clearFocus(){e(this.store,{focus:null,range:null,edit:null,tempRange:null})}setFocus(n,r){if(!r){e(this.store,{focus:n})}else{e(this.store,{focus:n,range:$(n,r),edit:null,tempRange:null})}}setTempArea(n){e(this.store,{tempRange:n===null||n===void 0?void 0:n.area,tempRangeType:n===null||n===void 0?void 0:n.type,edit:null})}clearTemp(){e(this.store,{tempRange:null})}setRangeArea(n){e(this.store,{range:n,edit:null,tempRange:null})}setRange(n,r){this.setRangeArea($(n,r))}setLastCell(n){e(this.store,{lastCell:n})}setEdit(n){const r=this.store.get("focus");if(r&&typeof n==="string"){e(this.store,{edit:{x:r.x,y:r.y,val:n}});return}e(this.store,{edit:null})}dispose(){this.unsubscribe.forEach((n=>n()));this.store.dispose()}}const I=-1;class C{constructor(){this.dirty=false;this.stores={};this.columnStores={};this.rowStores={};this.storesByType={};this.storesXToType={};this.storesYToType={};this.sections=[]}get focusedStore(){var n;for(let r in this.stores){for(let t in this.stores[r]){const u=(n=this.stores[r][t])===null||n===void 0?void 0:n.store.get("focus");if(u){return{entity:this.stores[r][t],cell:u,position:{x:parseInt(t,10),y:parseInt(r,10)}}}}}return null}get edit(){var n;return(n=this.focusedStore)===null||n===void 0?void 0:n.entity.store.get("edit")}get focused(){var n;return(n=this.focusedStore)===null||n===void 0?void 0:n.entity.store.get("focus")}get selectedRange(){var n;return(n=this.focusedStore)===null||n===void 0?void 0:n.entity.store.get("range")}registerSection(n){if(!n){this.sections.length=0;this.dirty=true;return}if(this.sections.indexOf(n)===-1){this.sections.push(n)}}beforeUpdate(){if(this.dirty){for(let n in this.stores){for(let r in this.stores[n]){this.stores[n][r].dispose()}}this.dirty=false}}registerColumn(n,r){if(j(n)){return new S}if(this.columnStores[n]){return this.columnStores[n]}this.columnStores[n]=new S;this.storesByType[r]=n;this.storesXToType[n]=r;return this.columnStores[n]}registerRow(n,r){if(j(n)){return new S}if(this.rowStores[n]){return this.rowStores[n]}this.rowStores[n]=new S;this.storesByType[r]=n;this.storesYToType[n]=r;return this.rowStores[n]}register({x:n,y:r}){var t,u;if(j(n)||j(r)){return new S}if(!this.stores[r]){this.stores[r]={}}if(this.stores[r][n]){return this.stores[r][n]}this.stores[r][n]=new S;(t=this.stores[r][n])===null||t===void 0?void 0:t.onChange("range",(t=>{this.columnStores[n].setRangeArea(t);this.rowStores[r].setRangeArea(t)}));(u=this.stores[r][n])===null||u===void 0?void 0:u.store.on("dispose",(()=>this.destroy(n,r)));return this.stores[r][n]}destroy(n,r){var t,u;(t=this.columnStores[n])===null||t===void 0?void 0:t.dispose();(u=this.rowStores[r])===null||u===void 0?void 0:u.dispose();delete this.rowStores[r];delete this.columnStores[n];if(this.storesXToType[n]){const r=this.storesXToType[n];delete this.storesXToType[n];delete this.storesByType[r]}if(this.storesYToType[r]){const n=this.storesYToType[r];delete this.storesYToType[r];delete this.storesByType[n]}if(this.stores[r]){delete this.stores[r][n]}if(!Object.keys(this.stores[r]||{}).length){delete this.stores[r]}}setEditByCell(n,r){this.focusByCell(n,r,r);this.setEdit("")}focusByCell(n,r,t){const u=this.stores[n.y][n.x];this.focus(u,{focus:r,end:t})}focus(n,{focus:r,end:t}){let u;for(let r in this.stores){for(let t in this.stores[r]){const e=this.stores[r][t];if(e!==n){e.clearFocus()}else{u={x:parseInt(t,10),y:parseInt(r,10)}}}}if(!u){return null}const e=n.store.get("lastCell");const i=A(r,e);let f;if(i){for(let n in i){let r=n;let t;switch(r){case"x":t=this.getXStores(u.y);break;case"y":t=this.getYStores(u.x);break}if(i[r]>=0){f=t[++u[r]]}else{f=t[--u[r]];const n=f===null||f===void 0?void 0:f.store.get("lastCell");if(n){i[r]=n[r]+i[r]}}}}if(f){let n=Object.assign(Object.assign({},r),i);this.focus(f,{focus:n,end:n});return null}r=R(r,e);t=R(t,e);n.setFocus(r,t);return r}clearAll(){var n;for(let r in this.stores){for(let t in this.stores[r]){(n=this.stores[r][t])===null||n===void 0?void 0:n.clearFocus()}}}setEdit(n){if(!this.focusedStore){return}this.focusedStore.entity.setEdit(n)}selectAll(){for(let n in this.stores){for(let r in this.stores[n]){const t=this.stores[n][r];if(!t){continue}const u=t.store.get("lastCell");t.setRange({x:0,y:0},{x:u.x-1,y:u.y-1})}}}getXStores(n){return this.stores[n]}getYStores(n){const r={};for(let t in this.stores){r[t]=this.stores[t][n]}return r}}const U="header";const O="footer";const M="content";const T="data";function F(n,r){return{x:n.viewports[n.colType].store.get("realCount"),y:n.viewports[r].store.get("realCount")}}export{M as C,T as D,I as E,O as F,s as G,U as H,c as P,C as S,x as a,m as b,f as c,a as d,p as e,l as f,d as g,w as h,b as i,y as j,g as k,i as l,F as m,$ as n,E as o,h as p,o as q};
5
+ //# sourceMappingURL=viewport.helpers-c08e729e.js.map