isomorfeus-preact 10.5.0 → 10.5.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1080) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +29 -0
  3. data/lib/isomorfeus/preact/config.rb +19 -35
  4. data/lib/isomorfeus/preact/imports.rb +30 -0
  5. data/lib/isomorfeus/preact_view_helper.rb +34 -42
  6. data/lib/isomorfeus-preact.rb +6 -4
  7. data/lib/lucid_app/context.rb +9 -9
  8. data/lib/preact/version.rb +1 -1
  9. data/node_modules/.bin/loose-envify +12 -0
  10. data/node_modules/.bin/loose-envify.cmd +17 -0
  11. data/node_modules/.bin/loose-envify.ps1 +28 -0
  12. data/node_modules/.package-lock.json +278 -0
  13. data/node_modules/@babel/runtime/LICENSE +22 -0
  14. data/node_modules/@babel/runtime/README.md +19 -0
  15. data/node_modules/@babel/runtime/helpers/AsyncGenerator.js +99 -0
  16. data/node_modules/@babel/runtime/helpers/AwaitValue.js +6 -0
  17. data/node_modules/@babel/runtime/helpers/applyDecoratedDescriptor.js +31 -0
  18. data/node_modules/@babel/runtime/helpers/arrayLikeToArray.js +12 -0
  19. data/node_modules/@babel/runtime/helpers/arrayWithHoles.js +6 -0
  20. data/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js +8 -0
  21. data/node_modules/@babel/runtime/helpers/assertThisInitialized.js +10 -0
  22. data/node_modules/@babel/runtime/helpers/asyncGeneratorDelegate.js +57 -0
  23. data/node_modules/@babel/runtime/helpers/asyncIterator.js +16 -0
  24. data/node_modules/@babel/runtime/helpers/asyncToGenerator.js +38 -0
  25. data/node_modules/@babel/runtime/helpers/awaitAsyncGenerator.js +8 -0
  26. data/node_modules/@babel/runtime/helpers/checkPrivateRedeclaration.js +8 -0
  27. data/node_modules/@babel/runtime/helpers/classApplyDescriptorDestructureSet.js +23 -0
  28. data/node_modules/@babel/runtime/helpers/classApplyDescriptorGet.js +10 -0
  29. data/node_modules/@babel/runtime/helpers/classApplyDescriptorSet.js +14 -0
  30. data/node_modules/@babel/runtime/helpers/classCallCheck.js +8 -0
  31. data/node_modules/@babel/runtime/helpers/classCheckPrivateStaticAccess.js +8 -0
  32. data/node_modules/@babel/runtime/helpers/classCheckPrivateStaticFieldDescriptor.js +8 -0
  33. data/node_modules/@babel/runtime/helpers/classExtractFieldDescriptor.js +10 -0
  34. data/node_modules/@babel/runtime/helpers/classNameTDZError.js +6 -0
  35. data/node_modules/@babel/runtime/helpers/classPrivateFieldDestructureSet.js +11 -0
  36. data/node_modules/@babel/runtime/helpers/classPrivateFieldGet.js +11 -0
  37. data/node_modules/@babel/runtime/helpers/classPrivateFieldInitSpec.js +9 -0
  38. data/node_modules/@babel/runtime/helpers/classPrivateFieldLooseBase.js +10 -0
  39. data/node_modules/@babel/runtime/helpers/classPrivateFieldLooseKey.js +8 -0
  40. data/node_modules/@babel/runtime/helpers/classPrivateFieldSet.js +12 -0
  41. data/node_modules/@babel/runtime/helpers/classPrivateMethodGet.js +10 -0
  42. data/node_modules/@babel/runtime/helpers/classPrivateMethodInitSpec.js +9 -0
  43. data/node_modules/@babel/runtime/helpers/classPrivateMethodSet.js +6 -0
  44. data/node_modules/@babel/runtime/helpers/classStaticPrivateFieldDestructureSet.js +14 -0
  45. data/node_modules/@babel/runtime/helpers/classStaticPrivateFieldSpecGet.js +14 -0
  46. data/node_modules/@babel/runtime/helpers/classStaticPrivateFieldSpecSet.js +15 -0
  47. data/node_modules/@babel/runtime/helpers/classStaticPrivateMethodGet.js +9 -0
  48. data/node_modules/@babel/runtime/helpers/classStaticPrivateMethodSet.js +6 -0
  49. data/node_modules/@babel/runtime/helpers/construct.js +26 -0
  50. data/node_modules/@babel/runtime/helpers/createClass.js +18 -0
  51. data/node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js +61 -0
  52. data/node_modules/@babel/runtime/helpers/createForOfIteratorHelperLoose.js +25 -0
  53. data/node_modules/@babel/runtime/helpers/createSuper.js +25 -0
  54. data/node_modules/@babel/runtime/helpers/decorate.js +401 -0
  55. data/node_modules/@babel/runtime/helpers/defaults.js +17 -0
  56. data/node_modules/@babel/runtime/helpers/defineEnumerableProperties.js +25 -0
  57. data/node_modules/@babel/runtime/helpers/defineProperty.js +17 -0
  58. data/node_modules/@babel/runtime/helpers/esm/AsyncGenerator.js +95 -0
  59. data/node_modules/@babel/runtime/helpers/esm/AwaitValue.js +3 -0
  60. data/node_modules/@babel/runtime/helpers/esm/applyDecoratedDescriptor.js +28 -0
  61. data/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js +9 -0
  62. data/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js +3 -0
  63. data/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js +4 -0
  64. data/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js +7 -0
  65. data/node_modules/@babel/runtime/helpers/esm/asyncGeneratorDelegate.js +54 -0
  66. data/node_modules/@babel/runtime/helpers/esm/asyncIterator.js +13 -0
  67. data/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js +35 -0
  68. data/node_modules/@babel/runtime/helpers/esm/awaitAsyncGenerator.js +4 -0
  69. data/node_modules/@babel/runtime/helpers/esm/checkPrivateRedeclaration.js +5 -0
  70. data/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorDestructureSet.js +20 -0
  71. data/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorGet.js +7 -0
  72. data/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorSet.js +11 -0
  73. data/node_modules/@babel/runtime/helpers/esm/classCallCheck.js +5 -0
  74. data/node_modules/@babel/runtime/helpers/esm/classCheckPrivateStaticAccess.js +5 -0
  75. data/node_modules/@babel/runtime/helpers/esm/classCheckPrivateStaticFieldDescriptor.js +5 -0
  76. data/node_modules/@babel/runtime/helpers/esm/classExtractFieldDescriptor.js +7 -0
  77. data/node_modules/@babel/runtime/helpers/esm/classNameTDZError.js +3 -0
  78. data/node_modules/@babel/runtime/helpers/esm/classPrivateFieldDestructureSet.js +6 -0
  79. data/node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet.js +6 -0
  80. data/node_modules/@babel/runtime/helpers/esm/classPrivateFieldInitSpec.js +5 -0
  81. data/node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseBase.js +7 -0
  82. data/node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseKey.js +4 -0
  83. data/node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet.js +7 -0
  84. data/node_modules/@babel/runtime/helpers/esm/classPrivateMethodGet.js +7 -0
  85. data/node_modules/@babel/runtime/helpers/esm/classPrivateMethodInitSpec.js +5 -0
  86. data/node_modules/@babel/runtime/helpers/esm/classPrivateMethodSet.js +3 -0
  87. data/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldDestructureSet.js +8 -0
  88. data/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldSpecGet.js +8 -0
  89. data/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldSpecSet.js +9 -0
  90. data/node_modules/@babel/runtime/helpers/esm/classStaticPrivateMethodGet.js +5 -0
  91. data/node_modules/@babel/runtime/helpers/esm/classStaticPrivateMethodSet.js +3 -0
  92. data/node_modules/@babel/runtime/helpers/esm/construct.js +18 -0
  93. data/node_modules/@babel/runtime/helpers/esm/createClass.js +15 -0
  94. data/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js +57 -0
  95. data/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelperLoose.js +21 -0
  96. data/node_modules/@babel/runtime/helpers/esm/createSuper.js +19 -0
  97. data/node_modules/@babel/runtime/helpers/esm/decorate.js +396 -0
  98. data/node_modules/@babel/runtime/helpers/esm/defaults.js +14 -0
  99. data/node_modules/@babel/runtime/helpers/esm/defineEnumerableProperties.js +22 -0
  100. data/node_modules/@babel/runtime/helpers/esm/defineProperty.js +14 -0
  101. data/node_modules/@babel/runtime/helpers/esm/extends.js +17 -0
  102. data/node_modules/@babel/runtime/helpers/esm/get.js +20 -0
  103. data/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js +6 -0
  104. data/node_modules/@babel/runtime/helpers/esm/inherits.js +15 -0
  105. data/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js +6 -0
  106. data/node_modules/@babel/runtime/helpers/esm/initializerDefineProperty.js +9 -0
  107. data/node_modules/@babel/runtime/helpers/esm/initializerWarningHelper.js +3 -0
  108. data/node_modules/@babel/runtime/helpers/esm/instanceof.js +7 -0
  109. data/node_modules/@babel/runtime/helpers/esm/interopRequireDefault.js +5 -0
  110. data/node_modules/@babel/runtime/helpers/esm/interopRequireWildcard.js +51 -0
  111. data/node_modules/@babel/runtime/helpers/esm/isNativeFunction.js +3 -0
  112. data/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js +12 -0
  113. data/node_modules/@babel/runtime/helpers/esm/iterableToArray.js +3 -0
  114. data/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js +29 -0
  115. data/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimitLoose.js +14 -0
  116. data/node_modules/@babel/runtime/helpers/esm/jsx.js +46 -0
  117. data/node_modules/@babel/runtime/helpers/esm/maybeArrayLike.js +9 -0
  118. data/node_modules/@babel/runtime/helpers/esm/newArrowCheck.js +5 -0
  119. data/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js +3 -0
  120. data/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js +3 -0
  121. data/node_modules/@babel/runtime/helpers/esm/objectDestructuringEmpty.js +3 -0
  122. data/node_modules/@babel/runtime/helpers/esm/objectSpread.js +19 -0
  123. data/node_modules/@babel/runtime/helpers/esm/objectSpread2.js +39 -0
  124. data/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js +19 -0
  125. data/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js +14 -0
  126. data/node_modules/@babel/runtime/helpers/esm/package.json +3 -0
  127. data/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js +11 -0
  128. data/node_modules/@babel/runtime/helpers/esm/readOnlyError.js +3 -0
  129. data/node_modules/@babel/runtime/helpers/esm/set.js +51 -0
  130. data/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js +8 -0
  131. data/node_modules/@babel/runtime/helpers/esm/skipFirstGeneratorNext.js +7 -0
  132. data/node_modules/@babel/runtime/helpers/esm/slicedToArray.js +7 -0
  133. data/node_modules/@babel/runtime/helpers/esm/slicedToArrayLoose.js +7 -0
  134. data/node_modules/@babel/runtime/helpers/esm/superPropBase.js +9 -0
  135. data/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js +11 -0
  136. data/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteralLoose.js +8 -0
  137. data/node_modules/@babel/runtime/helpers/esm/tdz.js +3 -0
  138. data/node_modules/@babel/runtime/helpers/esm/temporalRef.js +5 -0
  139. data/node_modules/@babel/runtime/helpers/esm/temporalUndefined.js +1 -0
  140. data/node_modules/@babel/runtime/helpers/esm/toArray.js +7 -0
  141. data/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js +7 -0
  142. data/node_modules/@babel/runtime/helpers/esm/toPrimitive.js +13 -0
  143. data/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js +6 -0
  144. data/node_modules/@babel/runtime/helpers/esm/typeof.js +15 -0
  145. data/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js +9 -0
  146. data/node_modules/@babel/runtime/helpers/esm/wrapAsyncGenerator.js +6 -0
  147. data/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js +37 -0
  148. data/node_modules/@babel/runtime/helpers/esm/wrapRegExp.js +65 -0
  149. data/node_modules/@babel/runtime/helpers/esm/writeOnlyError.js +3 -0
  150. data/node_modules/@babel/runtime/helpers/extends.js +21 -0
  151. data/node_modules/@babel/runtime/helpers/get.js +27 -0
  152. data/node_modules/@babel/runtime/helpers/getPrototypeOf.js +10 -0
  153. data/node_modules/@babel/runtime/helpers/inherits.js +19 -0
  154. data/node_modules/@babel/runtime/helpers/inheritsLoose.js +10 -0
  155. data/node_modules/@babel/runtime/helpers/initializerDefineProperty.js +12 -0
  156. data/node_modules/@babel/runtime/helpers/initializerWarningHelper.js +6 -0
  157. data/node_modules/@babel/runtime/helpers/instanceof.js +10 -0
  158. data/node_modules/@babel/runtime/helpers/interopRequireDefault.js +8 -0
  159. data/node_modules/@babel/runtime/helpers/interopRequireWildcard.js +54 -0
  160. data/node_modules/@babel/runtime/helpers/isNativeFunction.js +6 -0
  161. data/node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js +15 -0
  162. data/node_modules/@babel/runtime/helpers/iterableToArray.js +6 -0
  163. data/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js +32 -0
  164. data/node_modules/@babel/runtime/helpers/iterableToArrayLimitLoose.js +17 -0
  165. data/node_modules/@babel/runtime/helpers/jsx.js +50 -0
  166. data/node_modules/@babel/runtime/helpers/maybeArrayLike.js +13 -0
  167. data/node_modules/@babel/runtime/helpers/newArrowCheck.js +8 -0
  168. data/node_modules/@babel/runtime/helpers/nonIterableRest.js +6 -0
  169. data/node_modules/@babel/runtime/helpers/nonIterableSpread.js +6 -0
  170. data/node_modules/@babel/runtime/helpers/objectDestructuringEmpty.js +6 -0
  171. data/node_modules/@babel/runtime/helpers/objectSpread.js +23 -0
  172. data/node_modules/@babel/runtime/helpers/objectSpread2.js +42 -0
  173. data/node_modules/@babel/runtime/helpers/objectWithoutProperties.js +23 -0
  174. data/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js +17 -0
  175. data/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js +16 -0
  176. data/node_modules/@babel/runtime/helpers/readOnlyError.js +6 -0
  177. data/node_modules/@babel/runtime/helpers/set.js +55 -0
  178. data/node_modules/@babel/runtime/helpers/setPrototypeOf.js +12 -0
  179. data/node_modules/@babel/runtime/helpers/skipFirstGeneratorNext.js +10 -0
  180. data/node_modules/@babel/runtime/helpers/slicedToArray.js +14 -0
  181. data/node_modules/@babel/runtime/helpers/slicedToArrayLoose.js +14 -0
  182. data/node_modules/@babel/runtime/helpers/superPropBase.js +13 -0
  183. data/node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js +14 -0
  184. data/node_modules/@babel/runtime/helpers/taggedTemplateLiteralLoose.js +11 -0
  185. data/node_modules/@babel/runtime/helpers/tdz.js +6 -0
  186. data/node_modules/@babel/runtime/helpers/temporalRef.js +10 -0
  187. data/node_modules/@babel/runtime/helpers/temporalUndefined.js +4 -0
  188. data/node_modules/@babel/runtime/helpers/toArray.js +14 -0
  189. data/node_modules/@babel/runtime/helpers/toConsumableArray.js +14 -0
  190. data/node_modules/@babel/runtime/helpers/toPrimitive.js +17 -0
  191. data/node_modules/@babel/runtime/helpers/toPropertyKey.js +11 -0
  192. data/node_modules/@babel/runtime/helpers/typeof.js +22 -0
  193. data/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js +13 -0
  194. data/node_modules/@babel/runtime/helpers/wrapAsyncGenerator.js +10 -0
  195. data/node_modules/@babel/runtime/helpers/wrapNativeSuper.js +45 -0
  196. data/node_modules/@babel/runtime/helpers/wrapRegExp.js +72 -0
  197. data/node_modules/@babel/runtime/helpers/writeOnlyError.js +6 -0
  198. data/node_modules/@babel/runtime/package.json +848 -0
  199. data/node_modules/@babel/runtime/regenerator/index.js +1 -0
  200. data/node_modules/css-in-js-utils/Changelog.md +16 -0
  201. data/node_modules/css-in-js-utils/LICENSE +21 -0
  202. data/node_modules/css-in-js-utils/README.md +241 -0
  203. data/node_modules/css-in-js-utils/lib/__tests__/assignStyle-test.js +117 -0
  204. data/node_modules/css-in-js-utils/lib/__tests__/camelCaseProperty-test.js +15 -0
  205. data/node_modules/css-in-js-utils/lib/__tests__/cssifyDeclaration-test.js +15 -0
  206. data/node_modules/css-in-js-utils/lib/__tests__/cssifyObject-test.js +31 -0
  207. data/node_modules/css-in-js-utils/lib/__tests__/isPrefixedProperty-test.js +19 -0
  208. data/node_modules/css-in-js-utils/lib/__tests__/isPrefixedValue-test.js +19 -0
  209. data/node_modules/css-in-js-utils/lib/__tests__/isUnitlessProperty-test.js +43 -0
  210. data/node_modules/css-in-js-utils/lib/__tests__/normalizeProperty-test.js +21 -0
  211. data/node_modules/css-in-js-utils/lib/__tests__/resolveArrayValue-test.js +17 -0
  212. data/node_modules/css-in-js-utils/lib/__tests__/unprefixProperty-test.js +19 -0
  213. data/node_modules/css-in-js-utils/lib/__tests__/unprefixValue-test.js +20 -0
  214. data/node_modules/css-in-js-utils/lib/assignStyle.js +37 -0
  215. data/node_modules/css-in-js-utils/lib/camelCaseProperty.js +15 -0
  216. data/node_modules/css-in-js-utils/lib/cssifyDeclaration.js +17 -0
  217. data/node_modules/css-in-js-utils/lib/cssifyObject.js +34 -0
  218. data/node_modules/css-in-js-utils/lib/hyphenateProperty.js +17 -0
  219. data/node_modules/css-in-js-utils/lib/index.js +71 -0
  220. data/node_modules/css-in-js-utils/lib/isPrefixedProperty.js +12 -0
  221. data/node_modules/css-in-js-utils/lib/isPrefixedValue.js +12 -0
  222. data/node_modules/css-in-js-utils/lib/isUnitlessProperty.js +64 -0
  223. data/node_modules/css-in-js-utils/lib/normalizeProperty.js +21 -0
  224. data/node_modules/css-in-js-utils/lib/resolveArrayValue.js +19 -0
  225. data/node_modules/css-in-js-utils/lib/unprefixProperty.js +13 -0
  226. data/node_modules/css-in-js-utils/lib/unprefixValue.js +16 -0
  227. data/node_modules/css-in-js-utils/package.json +56 -0
  228. data/node_modules/css-tree/CHANGELOG.md +590 -0
  229. data/node_modules/css-tree/LICENSE +19 -0
  230. data/node_modules/css-tree/README.md +130 -0
  231. data/node_modules/css-tree/data/index.js +103 -0
  232. data/node_modules/css-tree/data/patch.json +721 -0
  233. data/node_modules/css-tree/dist/csstree.js +12606 -0
  234. data/node_modules/css-tree/dist/csstree.min.js +1 -0
  235. data/node_modules/css-tree/lib/common/List.js +576 -0
  236. data/node_modules/css-tree/lib/common/OffsetToLocation.js +91 -0
  237. data/node_modules/css-tree/lib/common/SyntaxError.js +82 -0
  238. data/node_modules/css-tree/lib/common/TokenStream.js +219 -0
  239. data/node_modules/css-tree/lib/common/adopt-buffer.js +10 -0
  240. data/node_modules/css-tree/lib/convertor/create.js +28 -0
  241. data/node_modules/css-tree/lib/convertor/index.js +3 -0
  242. data/node_modules/css-tree/lib/definition-syntax/SyntaxError.js +14 -0
  243. data/node_modules/css-tree/lib/definition-syntax/generate.js +129 -0
  244. data/node_modules/css-tree/lib/definition-syntax/index.js +6 -0
  245. data/node_modules/css-tree/lib/definition-syntax/parse.js +568 -0
  246. data/node_modules/css-tree/lib/definition-syntax/tokenizer.js +55 -0
  247. data/node_modules/css-tree/lib/definition-syntax/walk.js +52 -0
  248. data/node_modules/css-tree/lib/generator/create.js +66 -0
  249. data/node_modules/css-tree/lib/generator/index.js +4 -0
  250. data/node_modules/css-tree/lib/generator/sourceMap.js +95 -0
  251. data/node_modules/css-tree/lib/index.js +1 -0
  252. data/node_modules/css-tree/lib/lexer/Lexer.js +466 -0
  253. data/node_modules/css-tree/lib/lexer/error.js +127 -0
  254. data/node_modules/css-tree/lib/lexer/generic-an-plus-b.js +236 -0
  255. data/node_modules/css-tree/lib/lexer/generic-urange.js +159 -0
  256. data/node_modules/css-tree/lib/lexer/generic.js +585 -0
  257. data/node_modules/css-tree/lib/lexer/index.js +3 -0
  258. data/node_modules/css-tree/lib/lexer/match-graph.js +455 -0
  259. data/node_modules/css-tree/lib/lexer/match.js +639 -0
  260. data/node_modules/css-tree/lib/lexer/prepare-tokens.js +73 -0
  261. data/node_modules/css-tree/lib/lexer/search.js +65 -0
  262. data/node_modules/css-tree/lib/lexer/structure.js +163 -0
  263. data/node_modules/css-tree/lib/lexer/trace.js +79 -0
  264. data/node_modules/css-tree/lib/parser/create.js +304 -0
  265. data/node_modules/css-tree/lib/parser/index.js +4 -0
  266. data/node_modules/css-tree/lib/parser/sequence.js +54 -0
  267. data/node_modules/css-tree/lib/syntax/atrule/font-face.js +8 -0
  268. data/node_modules/css-tree/lib/syntax/atrule/import.js +40 -0
  269. data/node_modules/css-tree/lib/syntax/atrule/index.js +7 -0
  270. data/node_modules/css-tree/lib/syntax/atrule/media.js +12 -0
  271. data/node_modules/css-tree/lib/syntax/atrule/page.js +12 -0
  272. data/node_modules/css-tree/lib/syntax/atrule/supports.js +89 -0
  273. data/node_modules/css-tree/lib/syntax/config/lexer.js +9 -0
  274. data/node_modules/css-tree/lib/syntax/config/mix.js +140 -0
  275. data/node_modules/css-tree/lib/syntax/config/parser.js +25 -0
  276. data/node_modules/css-tree/lib/syntax/config/walker.js +3 -0
  277. data/node_modules/css-tree/lib/syntax/create.js +77 -0
  278. data/node_modules/css-tree/lib/syntax/function/expression.js +7 -0
  279. data/node_modules/css-tree/lib/syntax/function/var.js +43 -0
  280. data/node_modules/css-tree/lib/syntax/index.js +21 -0
  281. data/node_modules/css-tree/lib/syntax/node/AnPlusB.js +297 -0
  282. data/node_modules/css-tree/lib/syntax/node/Atrule.js +107 -0
  283. data/node_modules/css-tree/lib/syntax/node/AtrulePrelude.js +51 -0
  284. data/node_modules/css-tree/lib/syntax/node/AttributeSelector.js +165 -0
  285. data/node_modules/css-tree/lib/syntax/node/Block.js +91 -0
  286. data/node_modules/css-tree/lib/syntax/node/Brackets.js +34 -0
  287. data/node_modules/css-tree/lib/syntax/node/CDC.js +19 -0
  288. data/node_modules/css-tree/lib/syntax/node/CDO.js +19 -0
  289. data/node_modules/css-tree/lib/syntax/node/ClassSelector.js +29 -0
  290. data/node_modules/css-tree/lib/syntax/node/Combinator.js +55 -0
  291. data/node_modules/css-tree/lib/syntax/node/Comment.js +36 -0
  292. data/node_modules/css-tree/lib/syntax/node/Declaration.js +169 -0
  293. data/node_modules/css-tree/lib/syntax/node/DeclarationList.js +49 -0
  294. data/node_modules/css-tree/lib/syntax/node/Dimension.js +29 -0
  295. data/node_modules/css-tree/lib/syntax/node/Function.js +40 -0
  296. data/node_modules/css-tree/lib/syntax/node/Hash.js +26 -0
  297. data/node_modules/css-tree/lib/syntax/node/IdSelector.js +27 -0
  298. data/node_modules/css-tree/lib/syntax/node/Identifier.js +20 -0
  299. data/node_modules/css-tree/lib/syntax/node/MediaFeature.js +76 -0
  300. data/node_modules/css-tree/lib/syntax/node/MediaQuery.js +68 -0
  301. data/node_modules/css-tree/lib/syntax/node/MediaQueryList.js +36 -0
  302. data/node_modules/css-tree/lib/syntax/node/Nth.js +51 -0
  303. data/node_modules/css-tree/lib/syntax/node/Number.js +18 -0
  304. data/node_modules/css-tree/lib/syntax/node/Operator.js +21 -0
  305. data/node_modules/css-tree/lib/syntax/node/Parentheses.js +34 -0
  306. data/node_modules/css-tree/lib/syntax/node/Percentage.js +27 -0
  307. data/node_modules/css-tree/lib/syntax/node/PseudoClassSelector.js +61 -0
  308. data/node_modules/css-tree/lib/syntax/node/PseudoElementSelector.js +62 -0
  309. data/node_modules/css-tree/lib/syntax/node/Ratio.js +66 -0
  310. data/node_modules/css-tree/lib/syntax/node/Raw.js +87 -0
  311. data/node_modules/css-tree/lib/syntax/node/Rule.js +54 -0
  312. data/node_modules/css-tree/lib/syntax/node/Selector.js +32 -0
  313. data/node_modules/css-tree/lib/syntax/node/SelectorList.js +39 -0
  314. data/node_modules/css-tree/lib/syntax/node/String.js +18 -0
  315. data/node_modules/css-tree/lib/syntax/node/StyleSheet.js +81 -0
  316. data/node_modules/css-tree/lib/syntax/node/TypeSelector.js +53 -0
  317. data/node_modules/css-tree/lib/syntax/node/UnicodeRange.js +173 -0
  318. data/node_modules/css-tree/lib/syntax/node/Url.js +69 -0
  319. data/node_modules/css-tree/lib/syntax/node/Value.js +19 -0
  320. data/node_modules/css-tree/lib/syntax/node/WhiteSpace.js +26 -0
  321. data/node_modules/css-tree/lib/syntax/node/index.js +42 -0
  322. data/node_modules/css-tree/lib/syntax/pseudo/common/nth.js +9 -0
  323. data/node_modules/css-tree/lib/syntax/pseudo/common/nthWithOfClause.js +9 -0
  324. data/node_modules/css-tree/lib/syntax/pseudo/common/selectorList.js +7 -0
  325. data/node_modules/css-tree/lib/syntax/pseudo/dir.js +7 -0
  326. data/node_modules/css-tree/lib/syntax/pseudo/has.js +7 -0
  327. data/node_modules/css-tree/lib/syntax/pseudo/index.js +12 -0
  328. data/node_modules/css-tree/lib/syntax/pseudo/lang.js +7 -0
  329. data/node_modules/css-tree/lib/syntax/pseudo/matches.js +1 -0
  330. data/node_modules/css-tree/lib/syntax/pseudo/not.js +1 -0
  331. data/node_modules/css-tree/lib/syntax/pseudo/nth-child.js +1 -0
  332. data/node_modules/css-tree/lib/syntax/pseudo/nth-last-child.js +1 -0
  333. data/node_modules/css-tree/lib/syntax/pseudo/nth-last-of-type.js +1 -0
  334. data/node_modules/css-tree/lib/syntax/pseudo/nth-of-type.js +1 -0
  335. data/node_modules/css-tree/lib/syntax/pseudo/slotted.js +7 -0
  336. data/node_modules/css-tree/lib/syntax/scope/atrulePrelude.js +3 -0
  337. data/node_modules/css-tree/lib/syntax/scope/default.js +87 -0
  338. data/node_modules/css-tree/lib/syntax/scope/index.js +5 -0
  339. data/node_modules/css-tree/lib/syntax/scope/selector.js +80 -0
  340. data/node_modules/css-tree/lib/syntax/scope/value.js +5 -0
  341. data/node_modules/css-tree/lib/tokenizer/char-code-definitions.js +249 -0
  342. data/node_modules/css-tree/lib/tokenizer/const.js +40 -0
  343. data/node_modules/css-tree/lib/tokenizer/index.js +591 -0
  344. data/node_modules/css-tree/lib/tokenizer/utils.js +243 -0
  345. data/node_modules/css-tree/lib/utils/clone.js +21 -0
  346. data/node_modules/css-tree/lib/utils/createCustomError.js +17 -0
  347. data/node_modules/css-tree/lib/utils/names.js +104 -0
  348. data/node_modules/css-tree/lib/walker/create.js +284 -0
  349. data/node_modules/css-tree/lib/walker/index.js +4 -0
  350. data/node_modules/css-tree/package.json +60 -0
  351. data/node_modules/csstype/LICENSE +19 -0
  352. data/node_modules/csstype/README.md +273 -0
  353. data/node_modules/csstype/index.d.ts +20553 -0
  354. data/node_modules/csstype/index.js.flow +6278 -0
  355. data/node_modules/csstype/package.json +62 -0
  356. data/node_modules/error-stack-parser/CHANGELOG.md +53 -0
  357. data/node_modules/error-stack-parser/LICENSE +19 -0
  358. data/node_modules/error-stack-parser/README.md +44 -0
  359. data/node_modules/error-stack-parser/dist/error-stack-parser.js +202 -0
  360. data/node_modules/error-stack-parser/dist/error-stack-parser.min.js +2 -0
  361. data/node_modules/error-stack-parser/dist/error-stack-parser.min.js.map +1 -0
  362. data/node_modules/error-stack-parser/error-stack-parser.d.ts +66 -0
  363. data/node_modules/error-stack-parser/error-stack-parser.js +202 -0
  364. data/node_modules/error-stack-parser/package.json +63 -0
  365. data/node_modules/fastest-stable-stringify/.eslintrc.yml +26 -0
  366. data/node_modules/fastest-stable-stringify/.travis.yml +7 -0
  367. data/node_modules/fastest-stable-stringify/LICENSE +18 -0
  368. data/node_modules/fastest-stable-stringify/README.md +44 -0
  369. data/node_modules/fastest-stable-stringify/benchmark/index.js +32 -0
  370. data/node_modules/fastest-stable-stringify/benchmark/test.json +215 -0
  371. data/node_modules/fastest-stable-stringify/example/key_cmp.js +7 -0
  372. data/node_modules/fastest-stable-stringify/example/nested.js +3 -0
  373. data/node_modules/fastest-stable-stringify/example/str.js +3 -0
  374. data/node_modules/fastest-stable-stringify/example/value_cmp.js +7 -0
  375. data/node_modules/fastest-stable-stringify/index.js +60 -0
  376. data/node_modules/fastest-stable-stringify/package.json +54 -0
  377. data/node_modules/fastest-stable-stringify/test/bench.js +20 -0
  378. data/node_modules/fastest-stable-stringify/test/nested.js +24 -0
  379. data/node_modules/fastest-stable-stringify/test/str.js +52 -0
  380. data/node_modules/fastest-stable-stringify/test/to-json.js +22 -0
  381. data/node_modules/hyphenate-style-name/LICENSE +28 -0
  382. data/node_modules/hyphenate-style-name/README.md +28 -0
  383. data/node_modules/hyphenate-style-name/index.cjs.js +21 -0
  384. data/node_modules/hyphenate-style-name/index.js +19 -0
  385. data/node_modules/hyphenate-style-name/package.json +42 -0
  386. data/node_modules/inline-style-prefixer/CHANGELOG.md +195 -0
  387. data/node_modules/inline-style-prefixer/LICENSE +22 -0
  388. data/node_modules/inline-style-prefixer/README.md +100 -0
  389. data/node_modules/inline-style-prefixer/es/createPrefixer.js +47 -0
  390. data/node_modules/inline-style-prefixer/es/data.js +12 -0
  391. data/node_modules/inline-style-prefixer/es/generator/generatePluginList.js +21 -0
  392. data/node_modules/inline-style-prefixer/es/generator/generatePrefixMap.js +75 -0
  393. data/node_modules/inline-style-prefixer/es/generator/index.js +69 -0
  394. data/node_modules/inline-style-prefixer/es/generator/maps/pluginMap.js +108 -0
  395. data/node_modules/inline-style-prefixer/es/generator/maps/propertyMap.js +38 -0
  396. data/node_modules/inline-style-prefixer/es/index.js +26 -0
  397. data/node_modules/inline-style-prefixer/es/plugins/backgroundClip.js +7 -0
  398. data/node_modules/inline-style-prefixer/es/plugins/calc.js +11 -0
  399. data/node_modules/inline-style-prefixer/es/plugins/crossFade.js +12 -0
  400. data/node_modules/inline-style-prefixer/es/plugins/cursor.js +16 -0
  401. data/node_modules/inline-style-prefixer/es/plugins/filter.js +12 -0
  402. data/node_modules/inline-style-prefixer/es/plugins/flex.js +10 -0
  403. data/node_modules/inline-style-prefixer/es/plugins/flexboxIE.js +67 -0
  404. data/node_modules/inline-style-prefixer/es/plugins/flexboxOld.js +33 -0
  405. data/node_modules/inline-style-prefixer/es/plugins/gradient.js +14 -0
  406. data/node_modules/inline-style-prefixer/es/plugins/grid.js +129 -0
  407. data/node_modules/inline-style-prefixer/es/plugins/imageSet.js +12 -0
  408. data/node_modules/inline-style-prefixer/es/plugins/index.js +17 -0
  409. data/node_modules/inline-style-prefixer/es/plugins/logical.js +35 -0
  410. data/node_modules/inline-style-prefixer/es/plugins/position.js +5 -0
  411. data/node_modules/inline-style-prefixer/es/plugins/sizing.js +26 -0
  412. data/node_modules/inline-style-prefixer/es/plugins/transition.js +75 -0
  413. data/node_modules/inline-style-prefixer/es/utils/addNewValuesOnly.js +15 -0
  414. data/node_modules/inline-style-prefixer/es/utils/capitalizeString.js +3 -0
  415. data/node_modules/inline-style-prefixer/es/utils/isObject.js +3 -0
  416. data/node_modules/inline-style-prefixer/es/utils/prefixProperty.js +22 -0
  417. data/node_modules/inline-style-prefixer/es/utils/prefixValue.js +11 -0
  418. data/node_modules/inline-style-prefixer/lib/createPrefixer.js +66 -0
  419. data/node_modules/inline-style-prefixer/lib/data.js +17 -0
  420. data/node_modules/inline-style-prefixer/lib/generator/generatePluginList.js +32 -0
  421. data/node_modules/inline-style-prefixer/lib/generator/generatePrefixMap.js +86 -0
  422. data/node_modules/inline-style-prefixer/lib/generator/index.js +85 -0
  423. data/node_modules/inline-style-prefixer/lib/generator/maps/pluginMap.js +113 -0
  424. data/node_modules/inline-style-prefixer/lib/generator/maps/propertyMap.js +43 -0
  425. data/node_modules/inline-style-prefixer/lib/index.js +78 -0
  426. data/node_modules/inline-style-prefixer/lib/plugins/backgroundClip.js +13 -0
  427. data/node_modules/inline-style-prefixer/lib/plugins/calc.js +21 -0
  428. data/node_modules/inline-style-prefixer/lib/plugins/crossFade.js +22 -0
  429. data/node_modules/inline-style-prefixer/lib/plugins/cursor.js +22 -0
  430. data/node_modules/inline-style-prefixer/lib/plugins/filter.js +22 -0
  431. data/node_modules/inline-style-prefixer/lib/plugins/flex.js +16 -0
  432. data/node_modules/inline-style-prefixer/lib/plugins/flexboxIE.js +73 -0
  433. data/node_modules/inline-style-prefixer/lib/plugins/flexboxOld.js +39 -0
  434. data/node_modules/inline-style-prefixer/lib/plugins/gradient.js +26 -0
  435. data/node_modules/inline-style-prefixer/lib/plugins/grid.js +136 -0
  436. data/node_modules/inline-style-prefixer/lib/plugins/imageSet.js +22 -0
  437. data/node_modules/inline-style-prefixer/lib/plugins/index.js +69 -0
  438. data/node_modules/inline-style-prefixer/lib/plugins/logical.js +41 -0
  439. data/node_modules/inline-style-prefixer/lib/plugins/position.js +11 -0
  440. data/node_modules/inline-style-prefixer/lib/plugins/sizing.js +32 -0
  441. data/node_modules/inline-style-prefixer/lib/plugins/transition.js +92 -0
  442. data/node_modules/inline-style-prefixer/lib/utils/addNewValuesOnly.js +21 -0
  443. data/node_modules/inline-style-prefixer/lib/utils/capitalizeString.js +9 -0
  444. data/node_modules/inline-style-prefixer/lib/utils/isObject.js +9 -0
  445. data/node_modules/inline-style-prefixer/lib/utils/prefixProperty.js +32 -0
  446. data/node_modules/inline-style-prefixer/lib/utils/prefixValue.js +17 -0
  447. data/node_modules/inline-style-prefixer/package.json +79 -0
  448. data/node_modules/isobject/LICENSE +21 -0
  449. data/node_modules/isobject/README.md +122 -0
  450. data/node_modules/isobject/index.d.ts +5 -0
  451. data/node_modules/isobject/index.js +12 -0
  452. data/node_modules/isobject/package.json +74 -0
  453. data/node_modules/js-tokens/CHANGELOG.md +151 -0
  454. data/node_modules/js-tokens/LICENSE +21 -0
  455. data/node_modules/js-tokens/README.md +240 -0
  456. data/node_modules/js-tokens/index.js +23 -0
  457. data/node_modules/js-tokens/package.json +30 -0
  458. data/node_modules/loose-envify/LICENSE +21 -0
  459. data/node_modules/loose-envify/README.md +45 -0
  460. data/node_modules/loose-envify/cli.js +16 -0
  461. data/node_modules/loose-envify/custom.js +4 -0
  462. data/node_modules/loose-envify/index.js +3 -0
  463. data/node_modules/loose-envify/loose-envify.js +36 -0
  464. data/node_modules/loose-envify/package.json +36 -0
  465. data/node_modules/loose-envify/replace.js +65 -0
  466. data/node_modules/mdn-data/LICENSE +116 -0
  467. data/node_modules/mdn-data/README.md +56 -0
  468. data/node_modules/mdn-data/api/index.js +3 -0
  469. data/node_modules/mdn-data/api/inheritance.json +2681 -0
  470. data/node_modules/mdn-data/api/inheritance.schema.json +31 -0
  471. data/node_modules/mdn-data/css/at-rules.json +560 -0
  472. data/node_modules/mdn-data/css/at-rules.schema.json +132 -0
  473. data/node_modules/mdn-data/css/definitions.json +77 -0
  474. data/node_modules/mdn-data/css/index.js +8 -0
  475. data/node_modules/mdn-data/css/properties.json +9163 -0
  476. data/node_modules/mdn-data/css/properties.schema.json +402 -0
  477. data/node_modules/mdn-data/css/selectors.json +927 -0
  478. data/node_modules/mdn-data/css/selectors.schema.json +36 -0
  479. data/node_modules/mdn-data/css/syntaxes.json +761 -0
  480. data/node_modules/mdn-data/css/syntaxes.schema.json +15 -0
  481. data/node_modules/mdn-data/css/types.json +265 -0
  482. data/node_modules/mdn-data/css/types.schema.json +32 -0
  483. data/node_modules/mdn-data/css/units.json +199 -0
  484. data/node_modules/mdn-data/css/units.schema.json +28 -0
  485. data/node_modules/mdn-data/index.js +5 -0
  486. data/node_modules/mdn-data/l10n/css.json +1567 -0
  487. data/node_modules/mdn-data/l10n/index.js +3 -0
  488. data/node_modules/mdn-data/package.json +39 -0
  489. data/node_modules/nano-css/.circleci/config.yml +85 -0
  490. data/node_modules/nano-css/.eslintrc.yml +27 -0
  491. data/node_modules/nano-css/.github/FUNDING.yml +3 -0
  492. data/node_modules/nano-css/.github/workflows/nodejs.yml +23 -0
  493. data/node_modules/nano-css/CHANGELOG.md +362 -0
  494. data/node_modules/nano-css/LICENSE +24 -0
  495. data/node_modules/nano-css/README.md +70 -0
  496. data/node_modules/nano-css/addon/__dev__/warnOnMissingDependencies.js +25 -0
  497. data/node_modules/nano-css/addon/__tests__/__snapshots__/reset.test.js.snap +407 -0
  498. data/node_modules/nano-css/addon/__tests__/__snapshots__/tachyons.test.js.snap +43 -0
  499. data/node_modules/nano-css/addon/__tests__/amp.server.dev.test.js +6 -0
  500. data/node_modules/nano-css/addon/__tests__/amp.server.test.js +223 -0
  501. data/node_modules/nano-css/addon/__tests__/atoms.dev.test.js +5 -0
  502. data/node_modules/nano-css/addon/__tests__/atoms.server.dev.test.js +8 -0
  503. data/node_modules/nano-css/addon/__tests__/atoms.server.test.js +6 -0
  504. data/node_modules/nano-css/addon/__tests__/atoms.test.js +49 -0
  505. data/node_modules/nano-css/addon/__tests__/cssom.server.test.js +12 -0
  506. data/node_modules/nano-css/addon/__tests__/emmet/emmet.dev.test.js +5 -0
  507. data/node_modules/nano-css/addon/__tests__/emmet/emmet.server.dev.test.js +8 -0
  508. data/node_modules/nano-css/addon/__tests__/emmet/emmet.server.test.js +6 -0
  509. data/node_modules/nano-css/addon/__tests__/emmet/emmet.test.js +219 -0
  510. data/node_modules/nano-css/addon/__tests__/env.js +6 -0
  511. data/node_modules/nano-css/addon/__tests__/extract.server.test.js +159 -0
  512. data/node_modules/nano-css/addon/__tests__/index.server.dev.test.js +6 -0
  513. data/node_modules/nano-css/addon/__tests__/index.server.test.js +4 -0
  514. data/node_modules/nano-css/addon/__tests__/index.test.js +257 -0
  515. data/node_modules/nano-css/addon/__tests__/jsx.dev.test.js +5 -0
  516. data/node_modules/nano-css/addon/__tests__/jsx.server.dev.test.js +6 -0
  517. data/node_modules/nano-css/addon/__tests__/jsx.server.test.js +4 -0
  518. data/node_modules/nano-css/addon/__tests__/jsx.test.js +33 -0
  519. data/node_modules/nano-css/addon/__tests__/keyframes.dev.test.js +5 -0
  520. data/node_modules/nano-css/addon/__tests__/keyframes.server.dev.test.js +6 -0
  521. data/node_modules/nano-css/addon/__tests__/keyframes.server.test.js +4 -0
  522. data/node_modules/nano-css/addon/__tests__/keyframes.test.js +131 -0
  523. data/node_modules/nano-css/addon/__tests__/limit.server.test.js +54 -0
  524. data/node_modules/nano-css/addon/__tests__/nesting.test.js +85 -0
  525. data/node_modules/nano-css/addon/__tests__/prefixer.test.js +121 -0
  526. data/node_modules/nano-css/addon/__tests__/put.dev.test.js +5 -0
  527. data/node_modules/nano-css/addon/__tests__/put.server.dev.test.js +6 -0
  528. data/node_modules/nano-css/addon/__tests__/put.server.test.js +4 -0
  529. data/node_modules/nano-css/addon/__tests__/put.test.js +75 -0
  530. data/node_modules/nano-css/addon/__tests__/reset.test.js +38 -0
  531. data/node_modules/nano-css/addon/__tests__/rule.dev.test.js +5 -0
  532. data/node_modules/nano-css/addon/__tests__/rule.server.dev.test.js +7 -0
  533. data/node_modules/nano-css/addon/__tests__/rule.server.test.js +5 -0
  534. data/node_modules/nano-css/addon/__tests__/rule.test.js +57 -0
  535. data/node_modules/nano-css/addon/__tests__/setup.js +7 -0
  536. data/node_modules/nano-css/addon/__tests__/sheet.test.js +74 -0
  537. data/node_modules/nano-css/addon/__tests__/snake.test.js +124 -0
  538. data/node_modules/nano-css/addon/__tests__/tachyons.test.js +45 -0
  539. data/node_modules/nano-css/addon/__tests__/units.dev.test.js +5 -0
  540. data/node_modules/nano-css/addon/__tests__/units.server.dev.test.js +6 -0
  541. data/node_modules/nano-css/addon/__tests__/units.server.test.js +4 -0
  542. data/node_modules/nano-css/addon/__tests__/units.test.js +41 -0
  543. data/node_modules/nano-css/addon/__tests__/validate.dev.test.js +5 -0
  544. data/node_modules/nano-css/addon/__tests__/validate.test.js +69 -0
  545. data/node_modules/nano-css/addon/__tests__/vcssom.server.test.js +14 -0
  546. data/node_modules/nano-css/addon/__tests__/virtual.dev.test.js +5 -0
  547. data/node_modules/nano-css/addon/__tests__/virtual.server.dev.test.js +6 -0
  548. data/node_modules/nano-css/addon/__tests__/virtual.server.test.js +4 -0
  549. data/node_modules/nano-css/addon/__tests__/virtual.test.js +225 -0
  550. data/node_modules/nano-css/addon/amp.d.ts +5 -0
  551. data/node_modules/nano-css/addon/amp.js +156 -0
  552. data/node_modules/nano-css/addon/animate/fadeIn.js +22 -0
  553. data/node_modules/nano-css/addon/animate/fadeInDown.js +25 -0
  554. data/node_modules/nano-css/addon/animate/fadeInScale.js +25 -0
  555. data/node_modules/nano-css/addon/animate/fadeOut.js +23 -0
  556. data/node_modules/nano-css/addon/animate/fadeOutScale.js +21 -0
  557. data/node_modules/nano-css/addon/array.d.ts +5 -0
  558. data/node_modules/nano-css/addon/array.js +33 -0
  559. data/node_modules/nano-css/addon/atoms.d.ts +243 -0
  560. data/node_modules/nano-css/addon/atoms.js +63 -0
  561. data/node_modules/nano-css/addon/cache.d.ts +8 -0
  562. data/node_modules/nano-css/addon/cache.js +17 -0
  563. data/node_modules/nano-css/addon/component.d.ts +7 -0
  564. data/node_modules/nano-css/addon/component.js +26 -0
  565. data/node_modules/nano-css/addon/cssom.d.ts +17 -0
  566. data/node_modules/nano-css/addon/cssom.js +36 -0
  567. data/node_modules/nano-css/addon/decorator.d.ts +7 -0
  568. data/node_modules/nano-css/addon/decorator.js +43 -0
  569. data/node_modules/nano-css/addon/drule.d.ts +8 -0
  570. data/node_modules/nano-css/addon/drule.js +27 -0
  571. data/node_modules/nano-css/addon/dsheet.d.ts +8 -0
  572. data/node_modules/nano-css/addon/dsheet.js +36 -0
  573. data/node_modules/nano-css/addon/emmet.d.ts +614 -0
  574. data/node_modules/nano-css/addon/emmet.js +177 -0
  575. data/node_modules/nano-css/addon/extract.d.ts +5 -0
  576. data/node_modules/nano-css/addon/extract.js +59 -0
  577. data/node_modules/nano-css/addon/global.d.ts +8 -0
  578. data/node_modules/nano-css/addon/global.js +19 -0
  579. data/node_modules/nano-css/addon/googleFont.d.ts +8 -0
  580. data/node_modules/nano-css/addon/googleFont.js +43 -0
  581. data/node_modules/nano-css/addon/hydrate.d.ts +7 -0
  582. data/node_modules/nano-css/addon/hydrate.js +28 -0
  583. data/node_modules/nano-css/addon/hyperstyle.js +27 -0
  584. data/node_modules/nano-css/addon/important.js +38 -0
  585. data/node_modules/nano-css/addon/jsx.js +60 -0
  586. data/node_modules/nano-css/addon/keyframes.d.ts +34 -0
  587. data/node_modules/nano-css/addon/keyframes.js +61 -0
  588. data/node_modules/nano-css/addon/limit.js +26 -0
  589. data/node_modules/nano-css/addon/nesting.js +37 -0
  590. data/node_modules/nano-css/addon/pipe.js +57 -0
  591. data/node_modules/nano-css/addon/prefixer.js +79 -0
  592. data/node_modules/nano-css/addon/ref.js +87 -0
  593. data/node_modules/nano-css/addon/reset/EricMeyer.js +48 -0
  594. data/node_modules/nano-css/addon/reset/EricMeyerCondensed.js +44 -0
  595. data/node_modules/nano-css/addon/reset/Minimalistic.js +16 -0
  596. data/node_modules/nano-css/addon/reset/Minimalistic2.js +17 -0
  597. data/node_modules/nano-css/addon/reset/Minimalistic3.js +18 -0
  598. data/node_modules/nano-css/addon/reset/Normalize.js +83 -0
  599. data/node_modules/nano-css/addon/reset/PoorMan.js +25 -0
  600. data/node_modules/nano-css/addon/reset/ShaunInman.js +42 -0
  601. data/node_modules/nano-css/addon/reset/Siolon.js +34 -0
  602. data/node_modules/nano-css/addon/reset/Tantek.js +31 -0
  603. data/node_modules/nano-css/addon/reset/Tripoli.js +75 -0
  604. data/node_modules/nano-css/addon/reset/Universal.js +23 -0
  605. data/node_modules/nano-css/addon/reset/Yahoo.js +43 -0
  606. data/node_modules/nano-css/addon/reset-font.js +24 -0
  607. data/node_modules/nano-css/addon/rtl.js +15 -0
  608. data/node_modules/nano-css/addon/rule.d.ts +26 -0
  609. data/node_modules/nano-css/addon/rule.js +39 -0
  610. data/node_modules/nano-css/addon/sheet.d.ts +22 -0
  611. data/node_modules/nano-css/addon/sheet.js +45 -0
  612. data/node_modules/nano-css/addon/snake.js +141 -0
  613. data/node_modules/nano-css/addon/sourcemaps.js +96 -0
  614. data/node_modules/nano-css/addon/spread.js +23 -0
  615. data/node_modules/nano-css/addon/stable.js +7 -0
  616. data/node_modules/nano-css/addon/style.js +33 -0
  617. data/node_modules/nano-css/addon/styled.js +161 -0
  618. data/node_modules/nano-css/addon/stylis/plugin-onRule.js +43 -0
  619. data/node_modules/nano-css/addon/stylis.js +28 -0
  620. data/node_modules/nano-css/addon/tachyons.js +215 -0
  621. data/node_modules/nano-css/addon/unitless.js +78 -0
  622. data/node_modules/nano-css/addon/units.d.ts +89 -0
  623. data/node_modules/nano-css/addon/units.js +27 -0
  624. data/node_modules/nano-css/addon/useStyles.js +24 -0
  625. data/node_modules/nano-css/addon/util/cloneElement.js +11 -0
  626. data/node_modules/nano-css/addon/util/transformComponentDynamic.js +50 -0
  627. data/node_modules/nano-css/addon/util/transformComponentStatic.js +26 -0
  628. data/node_modules/nano-css/addon/validate.js +82 -0
  629. data/node_modules/nano-css/addon/vcssom/__tests__/cssToTree.test.js +159 -0
  630. data/node_modules/nano-css/addon/vcssom/cssToTree.d.ts +15 -0
  631. data/node_modules/nano-css/addon/vcssom/cssToTree.js +42 -0
  632. data/node_modules/nano-css/addon/vcssom/removeRule.d.ts +3 -0
  633. data/node_modules/nano-css/addon/vcssom/removeRule.js +15 -0
  634. data/node_modules/nano-css/addon/vcssom.d.ts +72 -0
  635. data/node_modules/nano-css/addon/vcssom.js +97 -0
  636. data/node_modules/nano-css/addon/virtual.js +107 -0
  637. data/node_modules/nano-css/addon/withStyles.js +32 -0
  638. data/node_modules/nano-css/index.d.ts +4 -0
  639. data/node_modules/nano-css/index.js +138 -0
  640. data/node_modules/nano-css/package.json +145 -0
  641. data/node_modules/nano-css/preset/react.js +43 -0
  642. data/node_modules/nano-css/preset/sheet.d.ts +5 -0
  643. data/node_modules/nano-css/preset/sheet.js +27 -0
  644. data/node_modules/nano-css/preset/vdom.js +40 -0
  645. data/node_modules/nano-css/prettier.config.js +13 -0
  646. data/node_modules/nano-css/renovate.json +3 -0
  647. data/node_modules/nano-css/types/common.d.ts +14 -0
  648. data/node_modules/nano-css/types/demo.ts +7 -0
  649. data/node_modules/nano-css/types/nano.d.ts +171 -0
  650. data/node_modules/object-assign/index.js +90 -0
  651. data/node_modules/object-assign/license +21 -0
  652. data/node_modules/object-assign/package.json +42 -0
  653. data/node_modules/object-assign/readme.md +61 -0
  654. data/node_modules/preact/LICENSE +21 -0
  655. data/node_modules/preact/README.md +187 -0
  656. data/node_modules/preact/compat/LICENSE +21 -0
  657. data/node_modules/preact/compat/dist/compat.js +2 -0
  658. data/node_modules/preact/compat/dist/compat.js.map +1 -0
  659. data/node_modules/preact/compat/dist/compat.mjs +2 -0
  660. data/node_modules/preact/compat/dist/compat.mjs.map +1 -0
  661. data/node_modules/preact/compat/dist/compat.modern.js +2 -0
  662. data/node_modules/preact/compat/dist/compat.modern.js.map +1 -0
  663. data/node_modules/preact/compat/dist/compat.module.js +2 -0
  664. data/node_modules/preact/compat/dist/compat.module.js.map +1 -0
  665. data/node_modules/preact/compat/dist/compat.umd.js +2 -0
  666. data/node_modules/preact/compat/dist/compat.umd.js.map +1 -0
  667. data/node_modules/preact/compat/jsx-dev-runtime.js +1 -0
  668. data/node_modules/preact/compat/jsx-dev-runtime.mjs +1 -0
  669. data/node_modules/preact/compat/jsx-runtime.js +1 -0
  670. data/node_modules/preact/compat/jsx-runtime.mjs +1 -0
  671. data/node_modules/preact/compat/package.json +19 -0
  672. data/node_modules/preact/compat/scheduler.js +15 -0
  673. data/node_modules/preact/compat/scheduler.mjs +23 -0
  674. data/node_modules/preact/compat/server.js +15 -0
  675. data/node_modules/preact/compat/server.mjs +4 -0
  676. data/node_modules/preact/compat/src/Children.js +21 -0
  677. data/node_modules/preact/compat/src/PureComponent.js +15 -0
  678. data/node_modules/preact/compat/src/forwardRef.js +51 -0
  679. data/node_modules/preact/compat/src/index.d.ts +140 -0
  680. data/node_modules/preact/compat/src/index.js +187 -0
  681. data/node_modules/preact/compat/src/internal.d.ts +47 -0
  682. data/node_modules/preact/compat/src/memo.js +34 -0
  683. data/node_modules/preact/compat/src/portals.js +80 -0
  684. data/node_modules/preact/compat/src/render.js +219 -0
  685. data/node_modules/preact/compat/src/suspense-list.d.ts +14 -0
  686. data/node_modules/preact/compat/src/suspense-list.js +126 -0
  687. data/node_modules/preact/compat/src/suspense.d.ts +15 -0
  688. data/node_modules/preact/compat/src/suspense.js +270 -0
  689. data/node_modules/preact/compat/src/util.js +28 -0
  690. data/node_modules/preact/compat/test-utils.js +1 -0
  691. data/node_modules/preact/debug/LICENSE +21 -0
  692. data/node_modules/preact/debug/dist/debug.js +2 -0
  693. data/node_modules/preact/debug/dist/debug.js.map +1 -0
  694. data/node_modules/preact/debug/dist/debug.mjs +2 -0
  695. data/node_modules/preact/debug/dist/debug.mjs.map +1 -0
  696. data/node_modules/preact/debug/dist/debug.modern.js +2 -0
  697. data/node_modules/preact/debug/dist/debug.modern.js.map +1 -0
  698. data/node_modules/preact/debug/dist/debug.module.js +2 -0
  699. data/node_modules/preact/debug/dist/debug.module.js.map +1 -0
  700. data/node_modules/preact/debug/dist/debug.umd.js +2 -0
  701. data/node_modules/preact/debug/dist/debug.umd.js.map +1 -0
  702. data/node_modules/preact/debug/package.json +18 -0
  703. data/node_modules/preact/debug/src/check-props.js +54 -0
  704. data/node_modules/preact/debug/src/component-stack.js +146 -0
  705. data/node_modules/preact/debug/src/constants.js +3 -0
  706. data/node_modules/preact/debug/src/debug.js +442 -0
  707. data/node_modules/preact/debug/src/index.js +6 -0
  708. data/node_modules/preact/debug/src/internal.d.ts +82 -0
  709. data/node_modules/preact/debug/src/util.js +11 -0
  710. data/node_modules/preact/devtools/LICENSE +21 -0
  711. data/node_modules/preact/devtools/dist/devtools.js +2 -0
  712. data/node_modules/preact/devtools/dist/devtools.js.map +1 -0
  713. data/node_modules/preact/devtools/dist/devtools.mjs +2 -0
  714. data/node_modules/preact/devtools/dist/devtools.mjs.map +1 -0
  715. data/node_modules/preact/devtools/dist/devtools.modern.js +2 -0
  716. data/node_modules/preact/devtools/dist/devtools.modern.js.map +1 -0
  717. data/node_modules/preact/devtools/dist/devtools.module.js +2 -0
  718. data/node_modules/preact/devtools/dist/devtools.module.js.map +1 -0
  719. data/node_modules/preact/devtools/dist/devtools.umd.js +2 -0
  720. data/node_modules/preact/devtools/dist/devtools.umd.js.map +1 -0
  721. data/node_modules/preact/devtools/package.json +16 -0
  722. data/node_modules/preact/devtools/src/devtools.js +10 -0
  723. data/node_modules/preact/devtools/src/index.d.ts +8 -0
  724. data/node_modules/preact/devtools/src/index.js +15 -0
  725. data/node_modules/preact/dist/preact.js +2 -0
  726. data/node_modules/preact/dist/preact.js.map +1 -0
  727. data/node_modules/preact/dist/preact.min.js +2 -0
  728. data/node_modules/preact/dist/preact.min.js.map +1 -0
  729. data/node_modules/preact/dist/preact.mjs +2 -0
  730. data/node_modules/preact/dist/preact.mjs.map +1 -0
  731. data/node_modules/preact/dist/preact.module.js +2 -0
  732. data/node_modules/preact/dist/preact.module.js.map +1 -0
  733. data/node_modules/preact/dist/preact.umd.js +2 -0
  734. data/node_modules/preact/dist/preact.umd.js.map +1 -0
  735. data/node_modules/preact/hooks/LICENSE +21 -0
  736. data/node_modules/preact/hooks/dist/hooks.js +2 -0
  737. data/node_modules/preact/hooks/dist/hooks.js.map +1 -0
  738. data/node_modules/preact/hooks/dist/hooks.mjs +2 -0
  739. data/node_modules/preact/hooks/dist/hooks.mjs.map +1 -0
  740. data/node_modules/preact/hooks/dist/hooks.modern.js +2 -0
  741. data/node_modules/preact/hooks/dist/hooks.modern.js.map +1 -0
  742. data/node_modules/preact/hooks/dist/hooks.module.js +2 -0
  743. data/node_modules/preact/hooks/dist/hooks.module.js.map +1 -0
  744. data/node_modules/preact/hooks/dist/hooks.umd.js +2 -0
  745. data/node_modules/preact/hooks/dist/hooks.umd.js.map +1 -0
  746. data/node_modules/preact/hooks/package.json +26 -0
  747. data/node_modules/preact/hooks/src/index.d.ts +133 -0
  748. data/node_modules/preact/hooks/src/index.js +386 -0
  749. data/node_modules/preact/hooks/src/internal.d.ts +75 -0
  750. data/node_modules/preact/jsx-runtime/LICENSE +21 -0
  751. data/node_modules/preact/jsx-runtime/dist/jsxRuntime.js +2 -0
  752. data/node_modules/preact/jsx-runtime/dist/jsxRuntime.js.map +1 -0
  753. data/node_modules/preact/jsx-runtime/dist/jsxRuntime.mjs +2 -0
  754. data/node_modules/preact/jsx-runtime/dist/jsxRuntime.modern.js +2 -0
  755. data/node_modules/preact/jsx-runtime/dist/jsxRuntime.modern.js.map +1 -0
  756. data/node_modules/preact/jsx-runtime/dist/jsxRuntime.module.js +2 -0
  757. data/node_modules/preact/jsx-runtime/dist/jsxRuntime.module.js.map +1 -0
  758. data/node_modules/preact/jsx-runtime/dist/jsxRuntime.umd.js +2 -0
  759. data/node_modules/preact/jsx-runtime/dist/jsxRuntime.umd.js.map +1 -0
  760. data/node_modules/preact/jsx-runtime/package.json +19 -0
  761. data/node_modules/preact/jsx-runtime/src/index.d.ts +50 -0
  762. data/node_modules/preact/jsx-runtime/src/index.js +77 -0
  763. data/node_modules/preact/package.json +270 -0
  764. data/node_modules/preact/src/cjs.js +3 -0
  765. data/node_modules/preact/src/clone-element.js +34 -0
  766. data/node_modules/preact/src/component.js +225 -0
  767. data/node_modules/preact/src/constants.js +3 -0
  768. data/node_modules/preact/src/create-context.js +68 -0
  769. data/node_modules/preact/src/create-element.js +97 -0
  770. data/node_modules/preact/src/diff/catch-error.js +38 -0
  771. data/node_modules/preact/src/diff/children.js +347 -0
  772. data/node_modules/preact/src/diff/index.js +514 -0
  773. data/node_modules/preact/src/diff/props.js +158 -0
  774. data/node_modules/preact/src/index.d.ts +310 -0
  775. data/node_modules/preact/src/index.js +13 -0
  776. data/node_modules/preact/src/internal.d.ts +146 -0
  777. data/node_modules/preact/src/jsx.d.ts +962 -0
  778. data/node_modules/preact/src/options.js +16 -0
  779. data/node_modules/preact/src/render.js +75 -0
  780. data/node_modules/preact/src/util.js +27 -0
  781. data/node_modules/preact/test-utils/dist/testUtils.js +2 -0
  782. data/node_modules/preact/test-utils/dist/testUtils.js.map +1 -0
  783. data/node_modules/preact/test-utils/dist/testUtils.mjs +2 -0
  784. data/node_modules/preact/test-utils/dist/testUtils.mjs.map +1 -0
  785. data/node_modules/preact/test-utils/dist/testUtils.modern.js +2 -0
  786. data/node_modules/preact/test-utils/dist/testUtils.modern.js.map +1 -0
  787. data/node_modules/preact/test-utils/dist/testUtils.module.js +2 -0
  788. data/node_modules/preact/test-utils/dist/testUtils.module.js.map +1 -0
  789. data/node_modules/preact/test-utils/dist/testUtils.umd.js +2 -0
  790. data/node_modules/preact/test-utils/dist/testUtils.umd.js.map +1 -0
  791. data/node_modules/preact/test-utils/package.json +19 -0
  792. data/node_modules/preact/test-utils/src/index.d.ts +3 -0
  793. data/node_modules/preact/test-utils/src/index.js +117 -0
  794. data/node_modules/preact-deep-force-update/.babelrc +8 -0
  795. data/node_modules/preact-deep-force-update/.eslintrc +66 -0
  796. data/node_modules/preact-deep-force-update/.npmignore +2 -0
  797. data/node_modules/preact-deep-force-update/.travis.yml +3 -0
  798. data/node_modules/preact-deep-force-update/LICENSE +21 -0
  799. data/node_modules/preact-deep-force-update/README.md +53 -0
  800. data/node_modules/preact-deep-force-update/dist/deep-force-update.js +36 -0
  801. data/node_modules/preact-deep-force-update/dist/deep-force-update.js.map +1 -0
  802. data/node_modules/preact-deep-force-update/dist/deep-force-update.min.js +2 -0
  803. data/node_modules/preact-deep-force-update/dist/deep-force-update.min.js.map +1 -0
  804. data/node_modules/preact-deep-force-update/karma.conf.js +32 -0
  805. data/node_modules/preact-deep-force-update/package.json +80 -0
  806. data/node_modules/preact-deep-force-update/rollup.config.js +17 -0
  807. data/node_modules/preact-deep-force-update/src/index.js +27 -0
  808. data/node_modules/preact-deep-force-update/test/index.js +50 -0
  809. data/node_modules/preact-render-to-string/LICENSE +21 -0
  810. data/node_modules/preact-render-to-string/README.md +102 -0
  811. data/node_modules/preact-render-to-string/dist/commonjs.js +2 -0
  812. data/node_modules/preact-render-to-string/dist/commonjs.js.map +1 -0
  813. data/node_modules/preact-render-to-string/dist/index.d.ts +16 -0
  814. data/node_modules/preact-render-to-string/dist/index.js +1 -0
  815. data/node_modules/preact-render-to-string/dist/index.js.map +1 -0
  816. data/node_modules/preact-render-to-string/dist/index.mjs +2 -0
  817. data/node_modules/preact-render-to-string/dist/index.module.js +2 -0
  818. data/node_modules/preact-render-to-string/dist/index.module.js.map +1 -0
  819. data/node_modules/preact-render-to-string/dist/jsx-entry.js +2 -0
  820. data/node_modules/preact-render-to-string/dist/jsx-entry.js.map +1 -0
  821. data/node_modules/preact-render-to-string/dist/jsx.d.ts +13 -0
  822. data/node_modules/preact-render-to-string/dist/jsx.js +1 -0
  823. data/node_modules/preact-render-to-string/dist/jsx.js.map +1 -0
  824. data/node_modules/preact-render-to-string/dist/jsx.mjs +2 -0
  825. data/node_modules/preact-render-to-string/dist/jsx.modern.js +2 -0
  826. data/node_modules/preact-render-to-string/dist/jsx.modern.js.map +1 -0
  827. data/node_modules/preact-render-to-string/dist/jsx.module.js +2 -0
  828. data/node_modules/preact-render-to-string/dist/jsx.module.js.map +1 -0
  829. data/node_modules/preact-render-to-string/dist/preact-render-to-string-tests.d.ts +1 -0
  830. data/node_modules/preact-render-to-string/jsx.js +1 -0
  831. data/node_modules/preact-render-to-string/package.json +139 -0
  832. data/node_modules/preact-render-to-string/src/index.d.ts +16 -0
  833. data/node_modules/preact-render-to-string/src/index.js +438 -0
  834. data/node_modules/preact-render-to-string/src/jsx.d.ts +13 -0
  835. data/node_modules/preact-render-to-string/src/jsx.js +76 -0
  836. data/node_modules/preact-render-to-string/src/polyfills.js +8 -0
  837. data/node_modules/preact-render-to-string/src/preact-render-to-string-tests.d.ts +1 -0
  838. data/node_modules/preact-render-to-string/src/util.js +78 -0
  839. data/node_modules/preact-render-to-string/typings.json +5 -0
  840. data/node_modules/pretty-format/.npmignore +3 -0
  841. data/node_modules/pretty-format/LICENSE.md +15 -0
  842. data/node_modules/pretty-format/README.md +94 -0
  843. data/node_modules/pretty-format/index.js +343 -0
  844. data/node_modules/pretty-format/package.json +26 -0
  845. data/node_modules/pretty-format/plugins/ReactElement.js +74 -0
  846. data/node_modules/pretty-format/plugins/ReactTestComponent.js +58 -0
  847. data/node_modules/pretty-format/printString.js +7 -0
  848. data/node_modules/react/LICENSE +21 -0
  849. data/node_modules/react/README.md +13 -0
  850. data/node_modules/react/build-info.json +8 -0
  851. data/node_modules/react/cjs/react-jsx-dev-runtime.development.js +1203 -0
  852. data/node_modules/react/cjs/react-jsx-dev-runtime.production.min.js +9 -0
  853. data/node_modules/react/cjs/react-jsx-dev-runtime.profiling.min.js +9 -0
  854. data/node_modules/react/cjs/react-jsx-runtime.development.js +1221 -0
  855. data/node_modules/react/cjs/react-jsx-runtime.production.min.js +10 -0
  856. data/node_modules/react/cjs/react-jsx-runtime.profiling.min.js +10 -0
  857. data/node_modules/react/cjs/react.development.js +2333 -0
  858. data/node_modules/react/cjs/react.production.min.js +23 -0
  859. data/node_modules/react/index.js +7 -0
  860. data/node_modules/react/jsx-dev-runtime.js +7 -0
  861. data/node_modules/react/jsx-runtime.js +7 -0
  862. data/node_modules/react/package.json +39 -0
  863. data/node_modules/react/umd/react.development.js +3357 -0
  864. data/node_modules/react/umd/react.production.min.js +31 -0
  865. data/node_modules/react/umd/react.profiling.min.js +36 -0
  866. data/node_modules/react-dom/LICENSE +21 -0
  867. data/node_modules/react-dom/README.md +54 -0
  868. data/node_modules/react-dom/build-info.json +8 -0
  869. data/node_modules/react-dom/cjs/react-dom-server.browser.development.js +4342 -0
  870. data/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js +51 -0
  871. data/node_modules/react-dom/cjs/react-dom-server.node.development.js +4383 -0
  872. data/node_modules/react-dom/cjs/react-dom-server.node.production.min.js +52 -0
  873. data/node_modules/react-dom/cjs/react-dom-test-utils.development.js +2118 -0
  874. data/node_modules/react-dom/cjs/react-dom-test-utils.production.min.js +43 -0
  875. data/node_modules/react-dom/cjs/react-dom.development.js +26262 -0
  876. data/node_modules/react-dom/cjs/react-dom.production.min.js +297 -0
  877. data/node_modules/react-dom/cjs/react-dom.profiling.min.js +310 -0
  878. data/node_modules/react-dom/index.js +38 -0
  879. data/node_modules/react-dom/package.json +49 -0
  880. data/node_modules/react-dom/profiling.js +38 -0
  881. data/node_modules/react-dom/server.browser.js +7 -0
  882. data/node_modules/react-dom/server.js +3 -0
  883. data/node_modules/react-dom/server.node.js +7 -0
  884. data/node_modules/react-dom/test-utils.js +7 -0
  885. data/node_modules/react-dom/umd/react-dom-server.browser.development.js +4341 -0
  886. data/node_modules/react-dom/umd/react-dom-server.browser.production.min.js +46 -0
  887. data/node_modules/react-dom/umd/react-dom-test-utils.development.js +2136 -0
  888. data/node_modules/react-dom/umd/react-dom-test-utils.production.min.js +35 -0
  889. data/node_modules/react-dom/umd/react-dom.development.js +26292 -0
  890. data/node_modules/react-dom/umd/react-dom.production.min.js +245 -0
  891. data/node_modules/react-dom/umd/react-dom.profiling.min.js +252 -0
  892. data/node_modules/regenerator-runtime/LICENSE +21 -0
  893. data/node_modules/regenerator-runtime/README.md +31 -0
  894. data/node_modules/regenerator-runtime/package.json +19 -0
  895. data/node_modules/regenerator-runtime/path.js +11 -0
  896. data/node_modules/regenerator-runtime/runtime.js +754 -0
  897. data/node_modules/rtl-css-js/CHANGELOG.md +5 -0
  898. data/node_modules/rtl-css-js/LICENSE +20 -0
  899. data/node_modules/rtl-css-js/README.md +205 -0
  900. data/node_modules/rtl-css-js/core/package.json +6 -0
  901. data/node_modules/rtl-css-js/core.d.ts +163 -0
  902. data/node_modules/rtl-css-js/core.esm.d.ts +1 -0
  903. data/node_modules/rtl-css-js/core.esm.js +9 -0
  904. data/node_modules/rtl-css-js/dist/cjs/convert-a10c80e3.js +509 -0
  905. data/node_modules/rtl-css-js/dist/cjs/core.js +30 -0
  906. data/node_modules/rtl-css-js/dist/cjs/index.js +7 -0
  907. data/node_modules/rtl-css-js/dist/esm/convert-09159978.js +487 -0
  908. data/node_modules/rtl-css-js/dist/esm/core.js +1 -0
  909. data/node_modules/rtl-css-js/dist/esm/index.js +5 -0
  910. data/node_modules/rtl-css-js/dist/rtl-css-js.core.umd.js +519 -0
  911. data/node_modules/rtl-css-js/dist/rtl-css-js.core.umd.js.map +1 -0
  912. data/node_modules/rtl-css-js/dist/rtl-css-js.core.umd.min.js +2 -0
  913. data/node_modules/rtl-css-js/dist/rtl-css-js.core.umd.min.js.map +1 -0
  914. data/node_modules/rtl-css-js/dist/rtl-css-js.umd.js +496 -0
  915. data/node_modules/rtl-css-js/dist/rtl-css-js.umd.js.map +1 -0
  916. data/node_modules/rtl-css-js/dist/rtl-css-js.umd.min.js +2 -0
  917. data/node_modules/rtl-css-js/dist/rtl-css-js.umd.min.js.map +1 -0
  918. data/node_modules/rtl-css-js/package.json +66 -0
  919. data/node_modules/rtl-css-js/types.d.ts +8 -0
  920. data/node_modules/scheduler/LICENSE +21 -0
  921. data/node_modules/scheduler/README.md +9 -0
  922. data/node_modules/scheduler/build-info.json +8 -0
  923. data/node_modules/scheduler/cjs/scheduler-tracing.development.js +347 -0
  924. data/node_modules/scheduler/cjs/scheduler-tracing.production.min.js +9 -0
  925. data/node_modules/scheduler/cjs/scheduler-tracing.profiling.min.js +16 -0
  926. data/node_modules/scheduler/cjs/scheduler-unstable_mock.development.js +665 -0
  927. data/node_modules/scheduler/cjs/scheduler-unstable_mock.production.min.js +19 -0
  928. data/node_modules/scheduler/cjs/scheduler-unstable_post_task.development.js +206 -0
  929. data/node_modules/scheduler/cjs/scheduler-unstable_post_task.production.min.js +13 -0
  930. data/node_modules/scheduler/cjs/scheduler.development.js +646 -0
  931. data/node_modules/scheduler/cjs/scheduler.production.min.js +20 -0
  932. data/node_modules/scheduler/index.js +7 -0
  933. data/node_modules/scheduler/package.json +40 -0
  934. data/node_modules/scheduler/tracing-profiling.js +7 -0
  935. data/node_modules/scheduler/tracing.js +7 -0
  936. data/node_modules/scheduler/umd/scheduler-tracing.development.js +80 -0
  937. data/node_modules/scheduler/umd/scheduler-tracing.production.min.js +80 -0
  938. data/node_modules/scheduler/umd/scheduler-tracing.profiling.min.js +80 -0
  939. data/node_modules/scheduler/umd/scheduler-unstable_mock.development.js +664 -0
  940. data/node_modules/scheduler/umd/scheduler-unstable_mock.production.min.js +18 -0
  941. data/node_modules/scheduler/umd/scheduler.development.js +152 -0
  942. data/node_modules/scheduler/umd/scheduler.production.min.js +146 -0
  943. data/node_modules/scheduler/umd/scheduler.profiling.min.js +146 -0
  944. data/node_modules/scheduler/unstable_mock.js +7 -0
  945. data/node_modules/scheduler/unstable_post_task.js +7 -0
  946. data/node_modules/source-map/CHANGELOG.md +301 -0
  947. data/node_modules/source-map/LICENSE +28 -0
  948. data/node_modules/source-map/README.md +742 -0
  949. data/node_modules/source-map/dist/source-map.debug.js +3234 -0
  950. data/node_modules/source-map/dist/source-map.js +3233 -0
  951. data/node_modules/source-map/dist/source-map.min.js +2 -0
  952. data/node_modules/source-map/dist/source-map.min.js.map +1 -0
  953. data/node_modules/source-map/lib/array-set.js +121 -0
  954. data/node_modules/source-map/lib/base64-vlq.js +140 -0
  955. data/node_modules/source-map/lib/base64.js +67 -0
  956. data/node_modules/source-map/lib/binary-search.js +111 -0
  957. data/node_modules/source-map/lib/mapping-list.js +79 -0
  958. data/node_modules/source-map/lib/quick-sort.js +114 -0
  959. data/node_modules/source-map/lib/source-map-consumer.js +1145 -0
  960. data/node_modules/source-map/lib/source-map-generator.js +425 -0
  961. data/node_modules/source-map/lib/source-node.js +413 -0
  962. data/node_modules/source-map/lib/util.js +488 -0
  963. data/node_modules/source-map/package.json +73 -0
  964. data/node_modules/source-map/source-map.d.ts +98 -0
  965. data/node_modules/source-map/source-map.js +8 -0
  966. data/node_modules/sourcemap-codec/CHANGELOG.md +64 -0
  967. data/node_modules/sourcemap-codec/LICENSE +21 -0
  968. data/node_modules/sourcemap-codec/README.md +63 -0
  969. data/node_modules/sourcemap-codec/dist/sourcemap-codec.es.js +124 -0
  970. data/node_modules/sourcemap-codec/dist/sourcemap-codec.es.js.map +1 -0
  971. data/node_modules/sourcemap-codec/dist/sourcemap-codec.umd.js +135 -0
  972. data/node_modules/sourcemap-codec/dist/sourcemap-codec.umd.js.map +1 -0
  973. data/node_modules/sourcemap-codec/dist/types/sourcemap-codec.d.ts +5 -0
  974. data/node_modules/sourcemap-codec/package.json +53 -0
  975. data/node_modules/stack-generator/.eslintrc.yml +32 -0
  976. data/node_modules/stack-generator/CHANGELOG.md +18 -0
  977. data/node_modules/stack-generator/CONTRIBUTING.md +27 -0
  978. data/node_modules/stack-generator/LICENSE +19 -0
  979. data/node_modules/stack-generator/README.md +28 -0
  980. data/node_modules/stack-generator/bower.json +33 -0
  981. data/node_modules/stack-generator/component.json +17 -0
  982. data/node_modules/stack-generator/dist/stack-generator.js +45 -0
  983. data/node_modules/stack-generator/dist/stack-generator.min.js +2 -0
  984. data/node_modules/stack-generator/dist/stack-generator.min.js.map +1 -0
  985. data/node_modules/stack-generator/karma.conf.ci.js +108 -0
  986. data/node_modules/stack-generator/karma.conf.js +26 -0
  987. data/node_modules/stack-generator/package.json +53 -0
  988. data/node_modules/stack-generator/stack-generator.js +45 -0
  989. data/node_modules/stackframe/.eslintrc.yml +29 -0
  990. data/node_modules/stackframe/CHANGELOG.md +39 -0
  991. data/node_modules/stackframe/CONTRIBUTING.md +28 -0
  992. data/node_modules/stackframe/LICENSE +19 -0
  993. data/node_modules/stackframe/README.md +78 -0
  994. data/node_modules/stackframe/bower.json +31 -0
  995. data/node_modules/stackframe/component.json +16 -0
  996. data/node_modules/stackframe/dist/stackframe.js +143 -0
  997. data/node_modules/stackframe/dist/stackframe.min.js +2 -0
  998. data/node_modules/stackframe/dist/stackframe.min.js.map +1 -0
  999. data/node_modules/stackframe/karma.conf.ci.js +105 -0
  1000. data/node_modules/stackframe/karma.conf.js +23 -0
  1001. data/node_modules/stackframe/package.json +51 -0
  1002. data/node_modules/stackframe/stackframe-tests.ts +47 -0
  1003. data/node_modules/stackframe/stackframe.d.ts +74 -0
  1004. data/node_modules/stackframe/stackframe.js +143 -0
  1005. data/node_modules/stacktrace-gps/CHANGELOG.md +60 -0
  1006. data/node_modules/stacktrace-gps/LICENSE +19 -0
  1007. data/node_modules/stacktrace-gps/README.md +89 -0
  1008. data/node_modules/stacktrace-gps/dist/polyfills.js +5 -0
  1009. data/node_modules/stacktrace-gps/dist/stacktrace-gps-with-polyfills.min.js +2 -0
  1010. data/node_modules/stacktrace-gps/dist/stacktrace-gps-with-polyfills.min.js.map +1 -0
  1011. data/node_modules/stacktrace-gps/dist/stacktrace-gps.js +342 -0
  1012. data/node_modules/stacktrace-gps/dist/stacktrace-gps.min.js +2 -0
  1013. data/node_modules/stacktrace-gps/dist/stacktrace-gps.min.js.map +1 -0
  1014. data/node_modules/stacktrace-gps/node_modules/source-map/CHANGELOG.md +301 -0
  1015. data/node_modules/stacktrace-gps/node_modules/source-map/LICENSE +28 -0
  1016. data/node_modules/stacktrace-gps/node_modules/source-map/README.md +729 -0
  1017. data/node_modules/stacktrace-gps/node_modules/source-map/dist/source-map.debug.js +3056 -0
  1018. data/node_modules/stacktrace-gps/node_modules/source-map/dist/source-map.js +3055 -0
  1019. data/node_modules/stacktrace-gps/node_modules/source-map/dist/source-map.min.js +2 -0
  1020. data/node_modules/stacktrace-gps/node_modules/source-map/dist/source-map.min.js.map +1 -0
  1021. data/node_modules/stacktrace-gps/node_modules/source-map/lib/array-set.js +104 -0
  1022. data/node_modules/stacktrace-gps/node_modules/source-map/lib/base64-vlq.js +140 -0
  1023. data/node_modules/stacktrace-gps/node_modules/source-map/lib/base64.js +67 -0
  1024. data/node_modules/stacktrace-gps/node_modules/source-map/lib/binary-search.js +111 -0
  1025. data/node_modules/stacktrace-gps/node_modules/source-map/lib/mapping-list.js +79 -0
  1026. data/node_modules/stacktrace-gps/node_modules/source-map/lib/quick-sort.js +114 -0
  1027. data/node_modules/stacktrace-gps/node_modules/source-map/lib/source-map-consumer.js +1082 -0
  1028. data/node_modules/stacktrace-gps/node_modules/source-map/lib/source-map-generator.js +404 -0
  1029. data/node_modules/stacktrace-gps/node_modules/source-map/lib/source-node.js +407 -0
  1030. data/node_modules/stacktrace-gps/node_modules/source-map/lib/util.js +417 -0
  1031. data/node_modules/stacktrace-gps/node_modules/source-map/package.json +71 -0
  1032. data/node_modules/stacktrace-gps/node_modules/source-map/source-map.js +8 -0
  1033. data/node_modules/stacktrace-gps/package.json +66 -0
  1034. data/node_modules/stacktrace-gps/stacktrace-gps.js +342 -0
  1035. data/node_modules/stacktrace-js/CHANGELOG.md +97 -0
  1036. data/node_modules/stacktrace-js/LICENSE +19 -0
  1037. data/node_modules/stacktrace-js/README.md +186 -0
  1038. data/node_modules/stacktrace-js/dist/stacktrace-with-promises-and-json-polyfills.js +5405 -0
  1039. data/node_modules/stacktrace-js/dist/stacktrace-with-promises-and-json-polyfills.min.js +3 -0
  1040. data/node_modules/stacktrace-js/dist/stacktrace-with-promises-and-json-polyfills.min.js.map +1 -0
  1041. data/node_modules/stacktrace-js/dist/stacktrace.js +3025 -0
  1042. data/node_modules/stacktrace-js/dist/stacktrace.min.js +2 -0
  1043. data/node_modules/stacktrace-js/dist/stacktrace.min.js.map +1 -0
  1044. data/node_modules/stacktrace-js/package.json +82 -0
  1045. data/node_modules/stacktrace-js/stacktrace-js.d.ts +134 -0
  1046. data/node_modules/stacktrace-js/stacktrace.js +227 -0
  1047. data/node_modules/stylis/LICENSE +21 -0
  1048. data/node_modules/stylis/README.md +152 -0
  1049. data/node_modules/stylis/dist/stylis.mjs +2 -0
  1050. data/node_modules/stylis/dist/stylis.mjs.map +1 -0
  1051. data/node_modules/stylis/dist/umd/package.json +1 -0
  1052. data/node_modules/stylis/dist/umd/stylis.js +2 -0
  1053. data/node_modules/stylis/dist/umd/stylis.js.map +1 -0
  1054. data/node_modules/stylis/index.js +7 -0
  1055. data/node_modules/stylis/package.json +164 -0
  1056. data/node_modules/stylis/src/Enum.js +20 -0
  1057. data/node_modules/stylis/src/Middleware.js +107 -0
  1058. data/node_modules/stylis/src/Parser.js +184 -0
  1059. data/node_modules/stylis/src/Prefixer.js +119 -0
  1060. data/node_modules/stylis/src/Serializer.js +34 -0
  1061. data/node_modules/stylis/src/Tokenizer.js +244 -0
  1062. data/node_modules/stylis/src/Utility.js +109 -0
  1063. data/node_modules/wouter-preact/cjs/index.js +180 -0
  1064. data/node_modules/wouter-preact/cjs/matcher.js +72 -0
  1065. data/node_modules/wouter-preact/cjs/package.json +1 -0
  1066. data/node_modules/wouter-preact/cjs/react-deps.js +75 -0
  1067. data/node_modules/wouter-preact/cjs/static-location.js +21 -0
  1068. data/node_modules/wouter-preact/cjs/use-location.js +94 -0
  1069. data/node_modules/wouter-preact/index.d.ts +110 -0
  1070. data/node_modules/wouter-preact/index.js +178 -0
  1071. data/node_modules/wouter-preact/matcher.d.ts +30 -0
  1072. data/node_modules/wouter-preact/matcher.js +66 -0
  1073. data/node_modules/wouter-preact/package.json +33 -0
  1074. data/node_modules/wouter-preact/react-deps.js +15 -0
  1075. data/node_modules/wouter-preact/static-location.d.ts +16 -0
  1076. data/node_modules/wouter-preact/static-location.js +17 -0
  1077. data/node_modules/wouter-preact/use-location.d.ts +43 -0
  1078. data/node_modules/wouter-preact/use-location.js +86 -0
  1079. data/package.json +10 -0
  1080. metadata +1097 -24
@@ -0,0 +1,6 @@
1
+ import { initDebug } from './debug';
2
+ import 'preact/devtools';
3
+
4
+ initDebug();
5
+
6
+ export { resetPropWarnings } from './check-props';
@@ -0,0 +1,82 @@
1
+ import { Component, PreactElement, VNode, Options } from '../../src/internal';
2
+
3
+ export { Component, PreactElement, VNode, Options };
4
+
5
+ export interface DevtoolsInjectOptions {
6
+ /** 1 = DEV, 0 = production */
7
+ bundleType: 1 | 0;
8
+ /** The devtools enable different features for different versions of react */
9
+ version: string;
10
+ /** Informative string, currently unused in the devtools */
11
+ rendererPackageName: string;
12
+ /** Find the root dom node of a vnode */
13
+ findHostInstanceByFiber(vnode: VNode): HTMLElement | null;
14
+ /** Find the closest vnode given a dom node */
15
+ findFiberByHostInstance(instance: HTMLElement): VNode | null;
16
+ }
17
+
18
+ export interface DevtoolsUpdater {
19
+ setState(objOrFn: any): void;
20
+ forceUpdate(): void;
21
+ setInState(path: Array<string | number>, value: any): void;
22
+ setInProps(path: Array<string | number>, value: any): void;
23
+ setInContext(): void;
24
+ }
25
+
26
+ export type NodeType = 'Composite' | 'Native' | 'Wrapper' | 'Text';
27
+
28
+ export interface DevtoolData {
29
+ nodeType: NodeType;
30
+ // Component type
31
+ type: any;
32
+ name: string;
33
+ ref: any;
34
+ key: string | number;
35
+ updater: DevtoolsUpdater | null;
36
+ text: string | number | null;
37
+ state: any;
38
+ props: any;
39
+ children: VNode[] | string | number | null;
40
+ publicInstance: PreactElement | Text | Component;
41
+ memoizedInteractions: any[];
42
+
43
+ actualDuration: number;
44
+ actualStartTime: number;
45
+ treeBaseDuration: number;
46
+ }
47
+
48
+ export type EventType =
49
+ | 'unmount'
50
+ | 'rootCommitted'
51
+ | 'root'
52
+ | 'mount'
53
+ | 'update'
54
+ | 'updateProfileTimes';
55
+
56
+ export interface DevtoolsEvent {
57
+ data?: DevtoolData;
58
+ internalInstance: VNode;
59
+ renderer: string;
60
+ type: EventType;
61
+ }
62
+
63
+ export interface DevtoolsHook {
64
+ _renderers: Record<string, any>;
65
+ _roots: Set<VNode>;
66
+ on(ev: string, listener: () => void): void;
67
+ emit(ev: string, data?: object): void;
68
+ helpers: Record<string, any>;
69
+ getFiberRoots(rendererId: string): Set<any>;
70
+ inject(config: DevtoolsInjectOptions): string;
71
+ onCommitFiberRoot(rendererId: string, root: VNode): void;
72
+ onCommitFiberUnmount(rendererId: string, vnode: VNode): void;
73
+ }
74
+
75
+ export interface DevtoolsWindow extends Window {
76
+ /**
77
+ * If the devtools extension is installed it will inject this object into
78
+ * the dom. This hook handles all communications between preact and the
79
+ * devtools panel.
80
+ */
81
+ __REACT_DEVTOOLS_GLOBAL_HOOK__?: DevtoolsHook;
82
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Assign properties from `props` to `obj`
3
+ * @template O, P The obj and props types
4
+ * @param {O} obj The object to copy properties to
5
+ * @param {P} props The object to copy properties from
6
+ * @returns {O & P}
7
+ */
8
+ export function assign(obj, props) {
9
+ for (let i in props) obj[i] = props[i];
10
+ return /** @type {O & P} */ (obj);
11
+ }
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2015-present Jason Miller
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,2 @@
1
+ var n=require("preact");"undefined"!=typeof window&&window.__PREACT_DEVTOOLS__&&window.__PREACT_DEVTOOLS__.attachPreact("10.5.14",n.options,{Fragment:n.Fragment,Component:n.Component}),exports.addHookName=function(e,o){return n.options.__a&&n.options.__a(o),e};
2
+ //# sourceMappingURL=devtools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devtools.js","sources":["../src/devtools.js","../src/index.js"],"sourcesContent":["import { options, Fragment, Component } from 'preact';\n\nexport function initDevTools() {\n\tif (typeof window != 'undefined' && window.__PREACT_DEVTOOLS__) {\n\t\twindow.__PREACT_DEVTOOLS__.attachPreact('10.5.14', options, {\n\t\t\tFragment,\n\t\t\tComponent\n\t\t});\n\t}\n}\n","import { options } from 'preact';\nimport { initDevTools } from './devtools';\n\ninitDevTools();\n\n/**\n * Display a custom label for a custom hook for the devtools panel\n * @type {<T>(value: T, name: string) => T}\n */\nexport function addHookName(value, name) {\n\tif (options._addHookName) {\n\t\toptions._addHookName(name);\n\t}\n\treturn value;\n}\n"],"names":["window","__PREACT_DEVTOOLS__","attachPreact","options","Fragment","Component","value","name"],"mappings":"wBAGsB,oBAAVA,QAAyBA,OAAOC,qBAC1CD,OAAOC,oBAAoBC,aAAa,UAAWC,UAAS,CAC3DC,SAAAA,WACAC,UAAAA,kCCGI,SAAqBC,EAAOC,UAC9BJ,eACHA,cAAqBI,GAEfD"}
@@ -0,0 +1,2 @@
1
+ import{options as n,Fragment as o,Component as e}from"preact";function t(o,e){return n.__a&&n.__a(e),o}"undefined"!=typeof window&&window.__PREACT_DEVTOOLS__&&window.__PREACT_DEVTOOLS__.attachPreact("10.5.14",n,{Fragment:o,Component:e});export{t as addHookName};
2
+ //# sourceMappingURL=devtools.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devtools.module.js","sources":["../src/devtools.js"],"sourcesContent":["import { options, Fragment, Component } from 'preact';\n\nexport function initDevTools() {\n\tif (typeof window != 'undefined' && window.__PREACT_DEVTOOLS__) {\n\t\twindow.__PREACT_DEVTOOLS__.attachPreact('10.4.1', options, {\n\t\t\tFragment,\n\t\t\tComponent\n\t\t});\n\t}\n}\n"],"names":["window","__PREACT_DEVTOOLS__","attachPreact","options","Fragment","Component"],"mappings":"8DAGsB,oBAAVA,QAAyBA,OAAOC,qBAC1CD,OAAOC,oBAAoBC,aAAa,SAAUC,EAAS,CAC1DC,SAAAA,EACAC,UAAAA"}
@@ -0,0 +1,2 @@
1
+ import{options as n,Fragment as o,Component as e}from"preact";function t(o,e){return n.__a&&n.__a(e),o}"undefined"!=typeof window&&window.__PREACT_DEVTOOLS__&&window.__PREACT_DEVTOOLS__.attachPreact("10.5.13",n,{Fragment:o,Component:e});export{t as addHookName};
2
+ //# sourceMappingURL=devtools.modern.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devtools.modern.js","sources":["../src/index.js","../src/devtools.js"],"sourcesContent":["import { options } from 'preact';\nimport { initDevTools } from './devtools';\n\ninitDevTools();\n\n/**\n * Display a custom label for a custom hook for the devtools panel\n * @type {<T>(value: T, name: string) => T}\n */\nexport function addHookName(value, name) {\n\tif (options._addHookName) {\n\t\toptions._addHookName(name);\n\t}\n\treturn value;\n}\n","import { options, Fragment, Component } from 'preact';\n\nexport function initDevTools() {\n\tif (typeof window != 'undefined' && window.__PREACT_DEVTOOLS__) {\n\t\twindow.__PREACT_DEVTOOLS__.attachPreact('10.5.13', options, {\n\t\t\tFragment,\n\t\t\tComponent\n\t\t});\n\t}\n}\n"],"names":["addHookName","value","name","options","window","__PREACT_DEVTOOLS__","attachPreact","Fragment","Component"],"mappings":"uEASgBA,EAAYC,EAAOC,GAIlC,OAHIC,OACHA,MAAqBD,GAEfD,ECVc,oBAAVG,QAAyBA,OAAOC,qBAC1CD,OAAOC,oBAAoBC,aAAa,UAAWH,EAAS,CAC3DI,SAAAA,EACAC,UAAAA"}
@@ -0,0 +1,2 @@
1
+ import{options as n,Fragment as o,Component as e}from"preact";function t(o,e){return n.__a&&n.__a(e),o}"undefined"!=typeof window&&window.__PREACT_DEVTOOLS__&&window.__PREACT_DEVTOOLS__.attachPreact("10.5.14",n,{Fragment:o,Component:e});export{t as addHookName};
2
+ //# sourceMappingURL=devtools.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devtools.module.js","sources":["../src/index.js","../src/devtools.js"],"sourcesContent":["import { options } from 'preact';\nimport { initDevTools } from './devtools';\n\ninitDevTools();\n\n/**\n * Display a custom label for a custom hook for the devtools panel\n * @type {<T>(value: T, name: string) => T}\n */\nexport function addHookName(value, name) {\n\tif (options._addHookName) {\n\t\toptions._addHookName(name);\n\t}\n\treturn value;\n}\n","import { options, Fragment, Component } from 'preact';\n\nexport function initDevTools() {\n\tif (typeof window != 'undefined' && window.__PREACT_DEVTOOLS__) {\n\t\twindow.__PREACT_DEVTOOLS__.attachPreact('10.5.14', options, {\n\t\t\tFragment,\n\t\t\tComponent\n\t\t});\n\t}\n}\n"],"names":["addHookName","value","name","options","window","__PREACT_DEVTOOLS__","attachPreact","Fragment","Component"],"mappings":"8DASO,SAASA,EAAYC,EAAOC,UAC9BC,OACHA,MAAqBD,GAEfD,ECVc,oBAAVG,QAAyBA,OAAOC,qBAC1CD,OAAOC,oBAAoBC,aAAa,UAAWH,EAAS,CAC3DI,SAAAA,EACAC,UAAAA"}
@@ -0,0 +1,2 @@
1
+ !function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("preact")):"function"==typeof define&&define.amd?define(["exports","preact"],n):n(e.preactDevtools={},e.preact)}(this,function(e,n){"undefined"!=typeof window&&window.__PREACT_DEVTOOLS__&&window.__PREACT_DEVTOOLS__.attachPreact("10.5.14",n.options,{Fragment:n.Fragment,Component:n.Component}),e.addHookName=function(e,o){return n.options.__a&&n.options.__a(o),e}});
2
+ //# sourceMappingURL=devtools.umd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devtools.umd.js","sources":["../src/devtools.js","../src/index.js"],"sourcesContent":["import { options, Fragment, Component } from 'preact';\n\nexport function initDevTools() {\n\tif (typeof window != 'undefined' && window.__PREACT_DEVTOOLS__) {\n\t\twindow.__PREACT_DEVTOOLS__.attachPreact('10.5.14', options, {\n\t\t\tFragment,\n\t\t\tComponent\n\t\t});\n\t}\n}\n","import { options } from 'preact';\nimport { initDevTools } from './devtools';\n\ninitDevTools();\n\n/**\n * Display a custom label for a custom hook for the devtools panel\n * @type {<T>(value: T, name: string) => T}\n */\nexport function addHookName(value, name) {\n\tif (options._addHookName) {\n\t\toptions._addHookName(name);\n\t}\n\treturn value;\n}\n"],"names":["window","__PREACT_DEVTOOLS__","attachPreact","options","Fragment","Component","value","name"],"mappings":"0NAGsB,oBAAVA,QAAyBA,OAAOC,qBAC1CD,OAAOC,oBAAoBC,aAAa,UAAWC,UAAS,CAC3DC,SAAAA,WACAC,UAAAA,4BCGI,SAAqBC,EAAOC,UAC9BJ,eACHA,cAAqBI,GAEfD"}
@@ -0,0 +1,16 @@
1
+ {
2
+ "name": "preact-devtools",
3
+ "amdName": "preactDevtools",
4
+ "version": "1.0.0",
5
+ "private": true,
6
+ "description": "Preact bridge for Preact devtools",
7
+ "main": "dist/devtools.js",
8
+ "module": "dist/devtools.module.js",
9
+ "umd:main": "dist/devtools.umd.js",
10
+ "source": "src/index.js",
11
+ "license": "MIT",
12
+ "types": "src/index.d.ts",
13
+ "peerDependencies": {
14
+ "preact": "^10.0.0"
15
+ }
16
+ }
@@ -0,0 +1,10 @@
1
+ import { options, Fragment, Component } from 'preact';
2
+
3
+ export function initDevTools() {
4
+ if (typeof window != 'undefined' && window.__PREACT_DEVTOOLS__) {
5
+ window.__PREACT_DEVTOOLS__.attachPreact('10.5.14', options, {
6
+ Fragment,
7
+ Component
8
+ });
9
+ }
10
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Customize the displayed name of a useState, useReducer or useRef hook
3
+ * in the devtools panel.
4
+ *
5
+ * @param value Wrapped native hook.
6
+ * @param name Custom name
7
+ */
8
+ export function addHookName<T>(value: T, name: string): T;
@@ -0,0 +1,15 @@
1
+ import { options } from 'preact';
2
+ import { initDevTools } from './devtools';
3
+
4
+ initDevTools();
5
+
6
+ /**
7
+ * Display a custom label for a custom hook for the devtools panel
8
+ * @type {<T>(value: T, name: string) => T}
9
+ */
10
+ export function addHookName(value, name) {
11
+ if (options._addHookName) {
12
+ options._addHookName(name);
13
+ }
14
+ return value;
15
+ }
@@ -0,0 +1,2 @@
1
+ var n,l,u,t,i,o,r,f,e={},c=[],s=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function a(n,l){for(var u in l)n[u]=l[u];return n}function p(n){var l=n.parentNode;l&&l.removeChild(n)}function v(l,u,t){var i,o,r,f={};for(r in u)"key"==r?i=u[r]:"ref"==r?o=u[r]:f[r]=u[r];if(arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):t),"function"==typeof l&&null!=l.defaultProps)for(r in l.defaultProps)void 0===f[r]&&(f[r]=l.defaultProps[r]);return h(l,f,i,o,null)}function h(n,t,i,o,r){var f={type:n,props:t,key:i,ref:o,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==r?++u:r};return null!=l.vnode&&l.vnode(f),f}function y(n){return n.children}function d(n,l){this.props=n,this.context=l}function _(n,l){if(null==l)return n.__?_(n.__,n.__.__k.indexOf(n)+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return"function"==typeof n.type?_(n):null}function k(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return k(n)}}function x(n){(!n.__d&&(n.__d=!0)&&i.push(n)&&!b.__r++||r!==l.debounceRendering)&&((r=l.debounceRendering)||o)(b)}function b(){for(var n;b.__r=i.length;)n=i.sort(function(n,l){return n.__v.__b-l.__v.__b}),i=[],n.some(function(n){var l,u,t,i,o,r;n.__d&&(o=(i=(l=n).__v).__e,(r=l.__P)&&(u=[],(t=a({},i)).__v=i.__v+1,I(r,i,t,l.__n,void 0!==r.ownerSVGElement,null!=i.__h?[o]:null,u,null==o?_(i):o,i.__h),T(u,i),i.__e!=o&&k(i)))})}function m(n,l,u,t,i,o,r,f,s,a){var p,v,d,k,x,b,m,A=t&&t.__k||c,P=A.length;for(u.__k=[],p=0;p<l.length;p++)if(null!=(k=u.__k[p]=null==(k=l[p])||"boolean"==typeof k?null:"string"==typeof k||"number"==typeof k||"bigint"==typeof k?h(null,k,null,null,k):Array.isArray(k)?h(y,{children:k},null,null,null):k.__b>0?h(k.type,k.props,k.key,null,k.__v):k)){if(k.__=u,k.__b=u.__b+1,null===(d=A[p])||d&&k.key==d.key&&k.type===d.type)A[p]=void 0;else for(v=0;v<P;v++){if((d=A[v])&&k.key==d.key&&k.type===d.type){A[v]=void 0;break}d=null}I(n,k,d=d||e,i,o,r,f,s,a),x=k.__e,(v=k.ref)&&d.ref!=v&&(m||(m=[]),d.ref&&m.push(d.ref,null,k),m.push(v,k.__c||x,k)),null!=x?(null==b&&(b=x),"function"==typeof k.type&&null!=k.__k&&k.__k===d.__k?k.__d=s=g(k,s,n):s=w(n,k,d,A,x,s),a||"option"!==u.type?"function"==typeof u.type&&(u.__d=s):n.value=""):s&&d.__e==s&&s.parentNode!=n&&(s=_(d))}for(u.__e=b,p=P;p--;)null!=A[p]&&("function"==typeof u.type&&null!=A[p].__e&&A[p].__e==u.__d&&(u.__d=_(t,p+1)),L(A[p],A[p]));if(m)for(p=0;p<m.length;p++)z(m[p],m[++p],m[++p])}function g(n,l,u){var t,i;for(t=0;t<n.__k.length;t++)(i=n.__k[t])&&(i.__=n,l="function"==typeof i.type?g(i,l,u):w(u,i,i,n.__k,i.__e,l));return l}function w(n,l,u,t,i,o){var r,f,e;if(void 0!==l.__d)r=l.__d,l.__d=void 0;else if(null==u||i!=o||null==i.parentNode)n:if(null==o||o.parentNode!==n)n.appendChild(i),r=null;else{for(f=o,e=0;(f=f.nextSibling)&&e<t.length;e+=2)if(f==i)break n;n.insertBefore(i,o),r=o}return void 0!==r?r:i.nextSibling}function A(n,l,u,t,i){var o;for(o in u)"children"===o||"key"===o||o in l||C(n,o,null,u[o],t);for(o in l)i&&"function"!=typeof l[o]||"children"===o||"key"===o||"value"===o||"checked"===o||u[o]===l[o]||C(n,o,l[o],u[o],t)}function P(n,l,u){"-"===l[0]?n.setProperty(l,u):n[l]=null==u?"":"number"!=typeof u||s.test(l)?u:u+"px"}function C(n,l,u,t,i){var o;n:if("style"===l)if("string"==typeof u)n.style.cssText=u;else{if("string"==typeof t&&(n.style.cssText=t=""),t)for(l in t)u&&l in u||P(n.style,l,"");if(u)for(l in u)t&&u[l]===t[l]||P(n.style,l,u[l])}else if("o"===l[0]&&"n"===l[1])o=l!==(l=l.replace(/Capture$/,"")),l=l.toLowerCase()in n?l.toLowerCase().slice(2):l.slice(2),n.l||(n.l={}),n.l[l+o]=u,u?t||n.addEventListener(l,o?H:$,o):n.removeEventListener(l,o?H:$,o);else if("dangerouslySetInnerHTML"!==l){if(i)l=l.replace(/xlink[H:h]/,"h").replace(/sName$/,"s");else if("href"!==l&&"list"!==l&&"form"!==l&&"tabIndex"!==l&&"download"!==l&&l in n)try{n[l]=null==u?"":u;break n}catch(n){}"function"==typeof u||(null!=u&&(!1!==u||"a"===l[0]&&"r"===l[1])?n.setAttribute(l,u):n.removeAttribute(l))}}function $(n){this.l[n.type+!1](l.event?l.event(n):n)}function H(n){this.l[n.type+!0](l.event?l.event(n):n)}function I(n,u,t,i,o,r,f,e,c){var s,p,v,h,_,k,x,b,g,w,A,P=u.type;if(void 0!==u.constructor)return null;null!=t.__h&&(c=t.__h,e=u.__e=t.__e,u.__h=null,r=[e]),(s=l.__b)&&s(u);try{n:if("function"==typeof P){if(b=u.props,g=(s=P.contextType)&&i[s.__c],w=s?g?g.props.value:s.__:i,t.__c?x=(p=u.__c=t.__c).__=p.__E:("prototype"in P&&P.prototype.render?u.__c=p=new P(b,w):(u.__c=p=new d(b,w),p.constructor=P,p.render=M),g&&g.sub(p),p.props=b,p.state||(p.state={}),p.context=w,p.__n=i,v=p.__d=!0,p.__h=[]),null==p.__s&&(p.__s=p.state),null!=P.getDerivedStateFromProps&&(p.__s==p.state&&(p.__s=a({},p.__s)),a(p.__s,P.getDerivedStateFromProps(b,p.__s))),h=p.props,_=p.state,v)null==P.getDerivedStateFromProps&&null!=p.componentWillMount&&p.componentWillMount(),null!=p.componentDidMount&&p.__h.push(p.componentDidMount);else{if(null==P.getDerivedStateFromProps&&b!==h&&null!=p.componentWillReceiveProps&&p.componentWillReceiveProps(b,w),!p.__e&&null!=p.shouldComponentUpdate&&!1===p.shouldComponentUpdate(b,p.__s,w)||u.__v===t.__v){p.props=b,p.state=p.__s,u.__v!==t.__v&&(p.__d=!1),p.__v=u,u.__e=t.__e,u.__k=t.__k,u.__k.forEach(function(n){n&&(n.__=u)}),p.__h.length&&f.push(p);break n}null!=p.componentWillUpdate&&p.componentWillUpdate(b,p.__s,w),null!=p.componentDidUpdate&&p.__h.push(function(){p.componentDidUpdate(h,_,k)})}p.context=w,p.props=b,p.state=p.__s,(s=l.__r)&&s(u),p.__d=!1,p.__v=u,p.__P=n,s=p.render(p.props,p.state,p.context),p.state=p.__s,null!=p.getChildContext&&(i=a(a({},i),p.getChildContext())),v||null==p.getSnapshotBeforeUpdate||(k=p.getSnapshotBeforeUpdate(h,_)),A=null!=s&&s.type===y&&null==s.key?s.props.children:s,m(n,Array.isArray(A)?A:[A],u,t,i,o,r,f,e,c),p.base=u.__e,u.__h=null,p.__h.length&&f.push(p),x&&(p.__E=p.__=null),p.__e=!1}else null==r&&u.__v===t.__v?(u.__k=t.__k,u.__e=t.__e):u.__e=j(t.__e,u,t,i,o,r,f,c);(s=l.diffed)&&s(u)}catch(n){u.__v=null,(c||null!=r)&&(u.__e=e,u.__h=!!c,r[r.indexOf(e)]=null),l.__e(n,u,t)}}function T(n,u){l.__c&&l.__c(u,n),n.some(function(u){try{n=u.__h,u.__h=[],n.some(function(n){n.call(u)})}catch(n){l.__e(n,u.__v)}})}function j(l,u,t,i,o,r,f,c){var s,a,v,h=t.props,y=u.props,d=u.type,k=0;if("svg"===d&&(o=!0),null!=r)for(;k<r.length;k++)if((s=r[k])&&(s===l||(d?s.localName==d:3==s.nodeType))){l=s,r[k]=null;break}if(null==l){if(null===d)return document.createTextNode(y);l=o?document.createElementNS("http://www.w3.org/2000/svg",d):document.createElement(d,y.is&&y),r=null,c=!1}if(null===d)h===y||c&&l.data===y||(l.data=y);else{if(r=r&&n.call(l.childNodes),a=(h=t.props||e).dangerouslySetInnerHTML,v=y.dangerouslySetInnerHTML,!c){if(null!=r)for(h={},k=0;k<l.attributes.length;k++)h[l.attributes[k].name]=l.attributes[k].value;(v||a)&&(v&&(a&&v.__html==a.__html||v.__html===l.innerHTML)||(l.innerHTML=v&&v.__html||""))}if(A(l,y,h,o,c),v)u.__k=[];else if(k=u.props.children,m(l,Array.isArray(k)?k:[k],u,t,i,o&&"foreignObject"!==d,r,f,r?r[0]:t.__k&&_(t,0),c),null!=r)for(k=r.length;k--;)null!=r[k]&&p(r[k]);c||("value"in y&&void 0!==(k=y.value)&&(k!==l.value||"progress"===d&&!k)&&C(l,"value",k,h.value,!1),"checked"in y&&void 0!==(k=y.checked)&&k!==l.checked&&C(l,"checked",k,h.checked,!1))}return l}function z(n,u,t){try{"function"==typeof n?n(u):n.current=u}catch(n){l.__e(n,t)}}function L(n,u,t){var i,o;if(l.unmount&&l.unmount(n),(i=n.ref)&&(i.current&&i.current!==n.__e||z(i,null,u)),null!=(i=n.__c)){if(i.componentWillUnmount)try{i.componentWillUnmount()}catch(n){l.__e(n,u)}i.base=i.__P=null}if(i=n.__k)for(o=0;o<i.length;o++)i[o]&&L(i[o],u,"function"!=typeof n.type);t||null==n.__e||p(n.__e),n.__e=n.__d=void 0}function M(n,l,u){return this.constructor(n,u)}function N(u,t,i){var o,r,f;l.__&&l.__(u,t),r=(o="function"==typeof i)?null:i&&i.__k||t.__k,f=[],I(t,u=(!o&&i||t).__k=v(y,null,[u]),r||e,e,void 0!==t.ownerSVGElement,!o&&i?[i]:r?null:t.firstChild?n.call(t.childNodes):null,f,!o&&i?i:r?r.__e:t.firstChild,o),T(f,u)}n=c.slice,l={__e:function(n,l){for(var u,t,i;l=l.__;)if((u=l.__c)&&!u.__)try{if((t=u.constructor)&&null!=t.getDerivedStateFromError&&(u.setState(t.getDerivedStateFromError(n)),i=u.__d),null!=u.componentDidCatch&&(u.componentDidCatch(n),i=u.__d),i)return u.__E=u}catch(l){n=l}throw n}},u=0,t=function(n){return null!=n&&void 0===n.constructor},d.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=a({},this.state),"function"==typeof n&&(n=n(a({},u),this.props)),n&&a(u,n),null!=n&&this.__v&&(l&&this.__h.push(l),x(this))},d.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),x(this))},d.prototype.render=y,i=[],o="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,b.__r=0,f=0,exports.render=N,exports.hydrate=function n(l,u){N(l,u,n)},exports.createElement=v,exports.h=v,exports.Fragment=y,exports.createRef=function(){return{current:null}},exports.isValidElement=t,exports.Component=d,exports.cloneElement=function(l,u,t){var i,o,r,f=a({},l.props);for(r in u)"key"==r?i=u[r]:"ref"==r?o=u[r]:f[r]=u[r];return arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):t),h(l.type,f,i||l.key,o||l.ref,null)},exports.createContext=function(n,l){var u={__c:l="__cC"+f++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var u,t;return this.getChildContext||(u=[],(t={})[l]=this,this.getChildContext=function(){return t},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&u.some(x)},this.sub=function(n){u.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u.splice(u.indexOf(n),1),l&&l.call(n)}}),n.children}};return u.Provider.__=u.Consumer.contextType=u},exports.toChildArray=function n(l,u){return u=u||[],null==l||"boolean"==typeof l||(Array.isArray(l)?l.some(function(l){n(l,u)}):u.push(l)),u},exports.options=l;
2
+ //# sourceMappingURL=preact.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preact.js","sources":["../src/constants.js","../src/util.js","../src/options.js","../src/create-element.js","../src/component.js","../src/create-context.js","../src/diff/children.js","../src/diff/props.js","../src/diff/index.js","../src/render.js","../src/diff/catch-error.js","../src/clone-element.js"],"sourcesContent":["export const EMPTY_OBJ = {};\nexport const EMPTY_ARR = [];\nexport const IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;\n","import { EMPTY_ARR } from \"./constants\";\n\n/**\n * Assign properties from `props` to `obj`\n * @template O, P The obj and props types\n * @param {O} obj The object to copy properties to\n * @param {P} props The object to copy properties from\n * @returns {O & P}\n */\nexport function assign(obj, props) {\n\t// @ts-ignore We change the type of `obj` to be `O & P`\n\tfor (let i in props) obj[i] = props[i];\n\treturn /** @type {O & P} */ (obj);\n}\n\n/**\n * Remove a child node from its parent if attached. This is a workaround for\n * IE11 which doesn't support `Element.prototype.remove()`. Using this function\n * is smaller than including a dedicated polyfill.\n * @param {Node} node The node to remove\n */\nexport function removeNode(node) {\n\tlet parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n\nexport const slice = EMPTY_ARR.slice;\n","import { _catchError } from './diff/catch-error';\n\n/**\n * The `option` object can potentially contain callback functions\n * that are called during various stages of our renderer. This is the\n * foundation on which all our addons like `preact/debug`, `preact/compat`,\n * and `preact/hooks` are based on. See the `Options` type in `internal.d.ts`\n * for a full list of available option hooks (most editors/IDEs allow you to\n * ctrl+click or cmd+click on mac the type definition below).\n * @type {import('./internal').Options}\n */\nconst options = {\n\t_catchError\n};\n\nexport default options;\n","import { slice } from './util';\nimport options from './options';\n\nlet vnodeId = 0;\n\n/**\n * Create an virtual node (used for JSX)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * constructor for this virtual node\n * @param {object | null | undefined} [props] The properties of the virtual node\n * @param {Array<import('.').ComponentChildren>} [children] The children of the virtual node\n * @returns {import('./internal').VNode}\n */\nexport function createElement(type, props, children) {\n\tlet normalizedProps = {},\n\t\tkey,\n\t\tref,\n\t\ti;\n\tfor (i in props) {\n\t\tif (i == 'key') key = props[i];\n\t\telse if (i == 'ref') ref = props[i];\n\t\telse normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 2) {\n\t\tnormalizedProps.children =\n\t\t\targuments.length > 3 ? slice.call(arguments, 2) : children;\n\t}\n\n\t// If a Component VNode, check for and apply defaultProps\n\t// Note: type may be undefined in development, must never error here.\n\tif (typeof type == 'function' && type.defaultProps != null) {\n\t\tfor (i in type.defaultProps) {\n\t\t\tif (normalizedProps[i] === undefined) {\n\t\t\t\tnormalizedProps[i] = type.defaultProps[i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn createVNode(type, normalizedProps, key, ref, null);\n}\n\n/**\n * Create a VNode (used internally by Preact)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * Constructor for this virtual node\n * @param {object | string | number | null} props The properties of this virtual node.\n * If this virtual node represents a text node, this is the text of the node (string or number).\n * @param {string | number | null} key The key for this virtual node, used when\n * diffing it against its children\n * @param {import('./internal').VNode[\"ref\"]} ref The ref property that will\n * receive a reference to its created child\n * @returns {import('./internal').VNode}\n */\nexport function createVNode(type, props, key, ref, original) {\n\t// V8 seems to be better at detecting type shapes if the object is allocated from the same call site\n\t// Do not inline into createElement and coerceToVNode!\n\tconst vnode = {\n\t\ttype,\n\t\tprops,\n\t\tkey,\n\t\tref,\n\t\t_children: null,\n\t\t_parent: null,\n\t\t_depth: 0,\n\t\t_dom: null,\n\t\t// _nextDom must be initialized to undefined b/c it will eventually\n\t\t// be set to dom.nextSibling which can return `null` and it is important\n\t\t// to be able to distinguish between an uninitialized _nextDom and\n\t\t// a _nextDom that has been set to `null`\n\t\t_nextDom: undefined,\n\t\t_component: null,\n\t\t_hydrating: null,\n\t\tconstructor: undefined,\n\t\t_original: original == null ? ++vnodeId : original\n\t};\n\n\tif (options.vnode != null) options.vnode(vnode);\n\n\treturn vnode;\n}\n\nexport function createRef() {\n\treturn { current: null };\n}\n\nexport function Fragment(props) {\n\treturn props.children;\n}\n\n/**\n * Check if a the argument is a valid Preact VNode.\n * @param {*} vnode\n * @returns {vnode is import('./internal').VNode}\n */\nexport const isValidElement = vnode =>\n\tvnode != null && vnode.constructor === undefined;\n","import { assign } from './util';\nimport { diff, commitRoot } from './diff/index';\nimport options from './options';\nimport { Fragment } from './create-element';\n\n/**\n * Base Component class. Provides `setState()` and `forceUpdate()`, which\n * trigger rendering\n * @param {object} props The initial component props\n * @param {object} context The initial context from parent components'\n * getChildContext\n */\nexport function Component(props, context) {\n\tthis.props = props;\n\tthis.context = context;\n}\n\n/**\n * Update component state and schedule a re-render.\n * @this {import('./internal').Component}\n * @param {object | ((s: object, p: object) => object)} update A hash of state\n * properties to update with new values or a function that given the current\n * state and props returns a new partial state\n * @param {() => void} [callback] A function to be called once component state is\n * updated\n */\nComponent.prototype.setState = function(update, callback) {\n\t// only clone state when copying to nextState the first time.\n\tlet s;\n\tif (this._nextState != null && this._nextState !== this.state) {\n\t\ts = this._nextState;\n\t} else {\n\t\ts = this._nextState = assign({}, this.state);\n\t}\n\n\tif (typeof update == 'function') {\n\t\t// Some libraries like `immer` mark the current state as readonly,\n\t\t// preventing us from mutating it, so we need to clone it. See #2716\n\t\tupdate = update(assign({}, s), this.props);\n\t}\n\n\tif (update) {\n\t\tassign(s, update);\n\t}\n\n\t// Skip update if updater function returned null\n\tif (update == null) return;\n\n\tif (this._vnode) {\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Immediately perform a synchronous re-render of the component\n * @this {import('./internal').Component}\n * @param {() => void} [callback] A function to be called after component is\n * re-rendered\n */\nComponent.prototype.forceUpdate = function(callback) {\n\tif (this._vnode) {\n\t\t// Set render mode so that we can differentiate where the render request\n\t\t// is coming from. We need this because forceUpdate should never call\n\t\t// shouldComponentUpdate\n\t\tthis._force = true;\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Accepts `props` and `state`, and returns a new Virtual DOM tree to build.\n * Virtual DOM is generally constructed via [JSX](http://jasonformat.com/wtf-is-jsx).\n * @param {object} props Props (eg: JSX attributes) received from parent\n * element/component\n * @param {object} state The component's current state\n * @param {object} context Context object, as returned by the nearest\n * ancestor's `getChildContext()`\n * @returns {import('./index').ComponentChildren | void}\n */\nComponent.prototype.render = Fragment;\n\n/**\n * @param {import('./internal').VNode} vnode\n * @param {number | null} [childIndex]\n */\nexport function getDomSibling(vnode, childIndex) {\n\tif (childIndex == null) {\n\t\t// Use childIndex==null as a signal to resume the search from the vnode's sibling\n\t\treturn vnode._parent\n\t\t\t? getDomSibling(vnode._parent, vnode._parent._children.indexOf(vnode) + 1)\n\t\t\t: null;\n\t}\n\n\tlet sibling;\n\tfor (; childIndex < vnode._children.length; childIndex++) {\n\t\tsibling = vnode._children[childIndex];\n\n\t\tif (sibling != null && sibling._dom != null) {\n\t\t\t// Since updateParentDomPointers keeps _dom pointer correct,\n\t\t\t// we can rely on _dom to tell us if this subtree contains a\n\t\t\t// rendered DOM node, and what the first rendered DOM node is\n\t\t\treturn sibling._dom;\n\t\t}\n\t}\n\n\t// If we get here, we have not found a DOM node in this vnode's children.\n\t// We must resume from this vnode's sibling (in it's parent _children array)\n\t// Only climb up and search the parent if we aren't searching through a DOM\n\t// VNode (meaning we reached the DOM parent of the original vnode that began\n\t// the search)\n\treturn typeof vnode.type == 'function' ? getDomSibling(vnode) : null;\n}\n\n/**\n * Trigger in-place re-rendering of a component.\n * @param {import('./internal').Component} component The component to rerender\n */\nfunction renderComponent(component) {\n\tlet vnode = component._vnode,\n\t\toldDom = vnode._dom,\n\t\tparentDom = component._parentDom;\n\n\tif (parentDom) {\n\t\tlet commitQueue = [];\n\t\tconst oldVNode = assign({}, vnode);\n\t\toldVNode._original = vnode._original + 1;\n\n\t\tdiff(\n\t\t\tparentDom,\n\t\t\tvnode,\n\t\t\toldVNode,\n\t\t\tcomponent._globalContext,\n\t\t\tparentDom.ownerSVGElement !== undefined,\n\t\t\tvnode._hydrating != null ? [oldDom] : null,\n\t\t\tcommitQueue,\n\t\t\toldDom == null ? getDomSibling(vnode) : oldDom,\n\t\t\tvnode._hydrating\n\t\t);\n\t\tcommitRoot(commitQueue, vnode);\n\n\t\tif (vnode._dom != oldDom) {\n\t\t\tupdateParentDomPointers(vnode);\n\t\t}\n\t}\n}\n\n/**\n * @param {import('./internal').VNode} vnode\n */\nfunction updateParentDomPointers(vnode) {\n\tif ((vnode = vnode._parent) != null && vnode._component != null) {\n\t\tvnode._dom = vnode._component.base = null;\n\t\tfor (let i = 0; i < vnode._children.length; i++) {\n\t\t\tlet child = vnode._children[i];\n\t\t\tif (child != null && child._dom != null) {\n\t\t\t\tvnode._dom = vnode._component.base = child._dom;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn updateParentDomPointers(vnode);\n\t}\n}\n\n/**\n * The render queue\n * @type {Array<import('./internal').Component>}\n */\nlet rerenderQueue = [];\n\n/**\n * Asynchronously schedule a callback\n * @type {(cb: () => void) => void}\n */\n/* istanbul ignore next */\n// Note the following line isn't tree-shaken by rollup cuz of rollup/rollup#2566\nconst defer =\n\ttypeof Promise == 'function'\n\t\t? Promise.prototype.then.bind(Promise.resolve())\n\t\t: setTimeout;\n\n/*\n * The value of `Component.debounce` must asynchronously invoke the passed in callback. It is\n * important that contributors to Preact can consistently reason about what calls to `setState`, etc.\n * do, and when their effects will be applied. See the links below for some further reading on designing\n * asynchronous APIs.\n * * [Designing APIs for Asynchrony](https://blog.izs.me/2013/08/designing-apis-for-asynchrony)\n * * [Callbacks synchronous and asynchronous](https://blog.ometer.com/2011/07/24/callbacks-synchronous-and-asynchronous/)\n */\n\nlet prevDebounce;\n\n/**\n * Enqueue a rerender of a component\n * @param {import('./internal').Component} c The component to rerender\n */\nexport function enqueueRender(c) {\n\tif (\n\t\t(!c._dirty &&\n\t\t\t(c._dirty = true) &&\n\t\t\trerenderQueue.push(c) &&\n\t\t\t!process._rerenderCount++) ||\n\t\tprevDebounce !== options.debounceRendering\n\t) {\n\t\tprevDebounce = options.debounceRendering;\n\t\t(prevDebounce || defer)(process);\n\t}\n}\n\n/** Flush the render queue by rerendering all queued components */\nfunction process() {\n\tlet queue;\n\twhile ((process._rerenderCount = rerenderQueue.length)) {\n\t\tqueue = rerenderQueue.sort((a, b) => a._vnode._depth - b._vnode._depth);\n\t\trerenderQueue = [];\n\t\t// Don't update `renderCount` yet. Keep its value non-zero to prevent unnecessary\n\t\t// process() calls from getting scheduled while `queue` is still being consumed.\n\t\tqueue.some(c => {\n\t\t\tif (c._dirty) renderComponent(c);\n\t\t});\n\t}\n}\nprocess._rerenderCount = 0;\n","import { enqueueRender } from './component';\n\nexport let i = 0;\n\nexport function createContext(defaultValue, contextId) {\n\tcontextId = '__cC' + i++;\n\n\tconst context = {\n\t\t_id: contextId,\n\t\t_defaultValue: defaultValue,\n\t\t/** @type {import('./internal').FunctionComponent} */\n\t\tConsumer(props, contextValue) {\n\t\t\t// return props.children(\n\t\t\t// \tcontext[contextId] ? context[contextId].props.value : defaultValue\n\t\t\t// );\n\t\t\treturn props.children(contextValue);\n\t\t},\n\t\t/** @type {import('./internal').FunctionComponent} */\n\t\tProvider(props) {\n\t\t\tif (!this.getChildContext) {\n\t\t\t\tlet subs = [];\n\t\t\t\tlet ctx = {};\n\t\t\t\tctx[contextId] = this;\n\n\t\t\t\tthis.getChildContext = () => ctx;\n\n\t\t\t\tthis.shouldComponentUpdate = function(_props) {\n\t\t\t\t\tif (this.props.value !== _props.value) {\n\t\t\t\t\t\t// I think the forced value propagation here was only needed when `options.debounceRendering` was being bypassed:\n\t\t\t\t\t\t// https://github.com/preactjs/preact/commit/4d339fb803bea09e9f198abf38ca1bf8ea4b7771#diff-54682ce380935a717e41b8bfc54737f6R358\n\t\t\t\t\t\t// In those cases though, even with the value corrected, we're double-rendering all nodes.\n\t\t\t\t\t\t// It might be better to just tell folks not to use force-sync mode.\n\t\t\t\t\t\t// Currently, using `useContext()` in a class component will overwrite its `this.context` value.\n\t\t\t\t\t\t// subs.some(c => {\n\t\t\t\t\t\t// \tc.context = _props.value;\n\t\t\t\t\t\t// \tenqueueRender(c);\n\t\t\t\t\t\t// });\n\n\t\t\t\t\t\t// subs.some(c => {\n\t\t\t\t\t\t// \tc.context[contextId] = _props.value;\n\t\t\t\t\t\t// \tenqueueRender(c);\n\t\t\t\t\t\t// });\n\t\t\t\t\t\tsubs.some(enqueueRender);\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tthis.sub = c => {\n\t\t\t\t\tsubs.push(c);\n\t\t\t\t\tlet old = c.componentWillUnmount;\n\t\t\t\t\tc.componentWillUnmount = () => {\n\t\t\t\t\t\tsubs.splice(subs.indexOf(c), 1);\n\t\t\t\t\t\tif (old) old.call(c);\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn props.children;\n\t\t}\n\t};\n\n\t// Devtools needs access to the context object when it\n\t// encounters a Provider. This is necessary to support\n\t// setting `displayName` on the context object instead\n\t// of on the component itself. See:\n\t// https://reactjs.org/docs/context.html#contextdisplayname\n\n\treturn (context.Provider._contextRef = context.Consumer.contextType = context);\n}\n","import { diff, unmount, applyRef } from './index';\nimport { createVNode, Fragment } from '../create-element';\nimport { EMPTY_OBJ, EMPTY_ARR } from '../constants';\nimport { getDomSibling } from '../component';\n\n/**\n * Diff the children of a virtual node\n * @param {import('../internal').PreactElement} parentDom The DOM element whose\n * children are being diffed\n * @param {import('../internal').ComponentChildren[]} renderResult\n * @param {import('../internal').VNode} newParentVNode The new virtual\n * node whose children should be diff'ed against oldParentVNode\n * @param {import('../internal').VNode} oldParentVNode The old virtual\n * node whose children should be diff'ed against newParentVNode\n * @param {object} globalContext The current context object - modified by getChildContext\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {Array<import('../internal').PreactElement>} excessDomChildren\n * @param {Array<import('../internal').Component>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').PreactElement} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} isHydrating Whether or not we are in hydration\n */\nexport function diffChildren(\n\tparentDom,\n\trenderResult,\n\tnewParentVNode,\n\toldParentVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet i, j, oldVNode, childVNode, newDom, firstChildDom, refs;\n\n\t// This is a compression of oldParentVNode!=null && oldParentVNode != EMPTY_OBJ && oldParentVNode._children || EMPTY_ARR\n\t// as EMPTY_OBJ._children should be `undefined`.\n\tlet oldChildren = (oldParentVNode && oldParentVNode._children) || EMPTY_ARR;\n\n\tlet oldChildrenLength = oldChildren.length;\n\n\tnewParentVNode._children = [];\n\tfor (i = 0; i < renderResult.length; i++) {\n\t\tchildVNode = renderResult[i];\n\n\t\tif (childVNode == null || typeof childVNode == 'boolean') {\n\t\t\tchildVNode = newParentVNode._children[i] = null;\n\t\t}\n\t\t// If this newVNode is being reused (e.g. <div>{reuse}{reuse}</div>) in the same diff,\n\t\t// or we are rendering a component (e.g. setState) copy the oldVNodes so it can have\n\t\t// it's own DOM & etc. pointers\n\t\telse if (\n\t\t\ttypeof childVNode == 'string' ||\n\t\t\ttypeof childVNode == 'number' ||\n\t\t\t// eslint-disable-next-line valid-typeof\n\t\t\ttypeof childVNode == 'bigint'\n\t\t) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tnull,\n\t\t\t\tchildVNode,\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tchildVNode\n\t\t\t);\n\t\t} else if (Array.isArray(childVNode)) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tFragment,\n\t\t\t\t{ children: childVNode },\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tnull\n\t\t\t);\n\t\t} else if (childVNode._depth > 0) {\n\t\t\t// VNode is already in use, clone it. This can happen in the following\n\t\t\t// scenario:\n\t\t\t// const reuse = <div />\n\t\t\t// <div>{reuse}<span />{reuse}</div>\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tchildVNode.type,\n\t\t\t\tchildVNode.props,\n\t\t\t\tchildVNode.key,\n\t\t\t\tnull,\n\t\t\t\tchildVNode._original\n\t\t\t);\n\t\t} else {\n\t\t\tchildVNode = newParentVNode._children[i] = childVNode;\n\t\t}\n\n\t\t// Terser removes the `continue` here and wraps the loop body\n\t\t// in a `if (childVNode) { ... } condition\n\t\tif (childVNode == null) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tchildVNode._parent = newParentVNode;\n\t\tchildVNode._depth = newParentVNode._depth + 1;\n\n\t\t// Check if we find a corresponding element in oldChildren.\n\t\t// If found, delete the array item by setting to `undefined`.\n\t\t// We use `undefined`, as `null` is reserved for empty placeholders\n\t\t// (holes).\n\t\toldVNode = oldChildren[i];\n\n\t\tif (\n\t\t\toldVNode === null ||\n\t\t\t(oldVNode &&\n\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\tchildVNode.type === oldVNode.type)\n\t\t) {\n\t\t\toldChildren[i] = undefined;\n\t\t} else {\n\t\t\t// Either oldVNode === undefined or oldChildrenLength > 0,\n\t\t\t// so after this loop oldVNode == null or oldVNode is a valid value.\n\t\t\tfor (j = 0; j < oldChildrenLength; j++) {\n\t\t\t\toldVNode = oldChildren[j];\n\t\t\t\t// If childVNode is unkeyed, we only match similarly unkeyed nodes, otherwise we match by key.\n\t\t\t\t// We always match by type (in either case).\n\t\t\t\tif (\n\t\t\t\t\toldVNode &&\n\t\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\t\tchildVNode.type === oldVNode.type\n\t\t\t\t) {\n\t\t\t\t\toldChildren[j] = undefined;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\toldVNode = null;\n\t\t\t}\n\t\t}\n\n\t\toldVNode = oldVNode || EMPTY_OBJ;\n\n\t\t// Morph the old element into the new one, but don't append it to the dom yet\n\t\tdiff(\n\t\t\tparentDom,\n\t\t\tchildVNode,\n\t\t\toldVNode,\n\t\t\tglobalContext,\n\t\t\tisSvg,\n\t\t\texcessDomChildren,\n\t\t\tcommitQueue,\n\t\t\toldDom,\n\t\t\tisHydrating\n\t\t);\n\n\t\tnewDom = childVNode._dom;\n\n\t\tif ((j = childVNode.ref) && oldVNode.ref != j) {\n\t\t\tif (!refs) refs = [];\n\t\t\tif (oldVNode.ref) refs.push(oldVNode.ref, null, childVNode);\n\t\t\trefs.push(j, childVNode._component || newDom, childVNode);\n\t\t}\n\n\t\tif (newDom != null) {\n\t\t\tif (firstChildDom == null) {\n\t\t\t\tfirstChildDom = newDom;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\ttypeof childVNode.type == 'function' &&\n\t\t\t\tchildVNode._children != null && // Can be null if childVNode suspended\n\t\t\t\tchildVNode._children === oldVNode._children\n\t\t\t) {\n\t\t\t\tchildVNode._nextDom = oldDom = reorderChildren(\n\t\t\t\t\tchildVNode,\n\t\t\t\t\toldDom,\n\t\t\t\t\tparentDom\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\toldDom = placeChild(\n\t\t\t\t\tparentDom,\n\t\t\t\t\tchildVNode,\n\t\t\t\t\toldVNode,\n\t\t\t\t\toldChildren,\n\t\t\t\t\tnewDom,\n\t\t\t\t\toldDom\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Browsers will infer an option's `value` from `textContent` when\n\t\t\t// no value is present. This essentially bypasses our code to set it\n\t\t\t// later in `diff()`. It works fine in all browsers except for IE11\n\t\t\t// where it breaks setting `select.value`. There it will be always set\n\t\t\t// to an empty string. Re-applying an options value will fix that, so\n\t\t\t// there are probably some internal data structures that aren't\n\t\t\t// updated properly.\n\t\t\t//\n\t\t\t// To fix it we make sure to reset the inferred value, so that our own\n\t\t\t// value check in `diff()` won't be skipped.\n\t\t\tif (!isHydrating && newParentVNode.type === 'option') {\n\t\t\t\t// @ts-ignore We have validated that the type of parentDOM is 'option'\n\t\t\t\t// in the above check\n\t\t\t\tparentDom.value = '';\n\t\t\t} else if (typeof newParentVNode.type == 'function') {\n\t\t\t\t// Because the newParentVNode is Fragment-like, we need to set it's\n\t\t\t\t// _nextDom property to the nextSibling of its last child DOM node.\n\t\t\t\t//\n\t\t\t\t// `oldDom` contains the correct value here because if the last child\n\t\t\t\t// is a Fragment-like, then oldDom has already been set to that child's _nextDom.\n\t\t\t\t// If the last child is a DOM VNode, then oldDom will be set to that DOM\n\t\t\t\t// node's nextSibling.\n\t\t\t\tnewParentVNode._nextDom = oldDom;\n\t\t\t}\n\t\t} else if (\n\t\t\toldDom &&\n\t\t\toldVNode._dom == oldDom &&\n\t\t\toldDom.parentNode != parentDom\n\t\t) {\n\t\t\t// The above condition is to handle null placeholders. See test in placeholder.test.js:\n\t\t\t// `efficiently replace null placeholders in parent rerenders`\n\t\t\toldDom = getDomSibling(oldVNode);\n\t\t}\n\t}\n\n\tnewParentVNode._dom = firstChildDom;\n\n\t// Remove remaining oldChildren if there are any.\n\tfor (i = oldChildrenLength; i--; ) {\n\t\tif (oldChildren[i] != null) {\n\t\t\tif (\n\t\t\t\ttypeof newParentVNode.type == 'function' &&\n\t\t\t\toldChildren[i]._dom != null &&\n\t\t\t\toldChildren[i]._dom == newParentVNode._nextDom\n\t\t\t) {\n\t\t\t\t// If the newParentVNode.__nextDom points to a dom node that is about to\n\t\t\t\t// be unmounted, then get the next sibling of that vnode and set\n\t\t\t\t// _nextDom to it\n\t\t\t\tnewParentVNode._nextDom = getDomSibling(oldParentVNode, i + 1);\n\t\t\t}\n\n\t\t\tunmount(oldChildren[i], oldChildren[i]);\n\t\t}\n\t}\n\n\t// Set refs only after unmount\n\tif (refs) {\n\t\tfor (i = 0; i < refs.length; i++) {\n\t\t\tapplyRef(refs[i], refs[++i], refs[++i]);\n\t\t}\n\t}\n}\n\nfunction reorderChildren(childVNode, oldDom, parentDom) {\n\tfor (let tmp = 0; tmp < childVNode._children.length; tmp++) {\n\t\tlet vnode = childVNode._children[tmp];\n\t\tif (vnode) {\n\t\t\t// We typically enter this code path on sCU bailout, where we copy\n\t\t\t// oldVNode._children to newVNode._children. If that is the case, we need\n\t\t\t// to update the old children's _parent pointer to point to the newVNode\n\t\t\t// (childVNode here).\n\t\t\tvnode._parent = childVNode;\n\n\t\t\tif (typeof vnode.type == 'function') {\n\t\t\t\toldDom = reorderChildren(vnode, oldDom, parentDom);\n\t\t\t} else {\n\t\t\t\toldDom = placeChild(\n\t\t\t\t\tparentDom,\n\t\t\t\t\tvnode,\n\t\t\t\t\tvnode,\n\t\t\t\t\tchildVNode._children,\n\t\t\t\t\tvnode._dom,\n\t\t\t\t\toldDom\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn oldDom;\n}\n\n/**\n * Flatten and loop through the children of a virtual node\n * @param {import('../index').ComponentChildren} children The unflattened\n * children of a virtual node\n * @returns {import('../internal').VNode[]}\n */\nexport function toChildArray(children, out) {\n\tout = out || [];\n\tif (children == null || typeof children == 'boolean') {\n\t} else if (Array.isArray(children)) {\n\t\tchildren.some(child => {\n\t\t\ttoChildArray(child, out);\n\t\t});\n\t} else {\n\t\tout.push(children);\n\t}\n\treturn out;\n}\n\nfunction placeChild(\n\tparentDom,\n\tchildVNode,\n\toldVNode,\n\toldChildren,\n\tnewDom,\n\toldDom\n) {\n\tlet nextDom;\n\tif (childVNode._nextDom !== undefined) {\n\t\t// Only Fragments or components that return Fragment like VNodes will\n\t\t// have a non-undefined _nextDom. Continue the diff from the sibling\n\t\t// of last DOM child of this child VNode\n\t\tnextDom = childVNode._nextDom;\n\n\t\t// Eagerly cleanup _nextDom. We don't need to persist the value because\n\t\t// it is only used by `diffChildren` to determine where to resume the diff after\n\t\t// diffing Components and Fragments. Once we store it the nextDOM local var, we\n\t\t// can clean up the property\n\t\tchildVNode._nextDom = undefined;\n\t} else if (\n\t\toldVNode == null ||\n\t\tnewDom != oldDom ||\n\t\tnewDom.parentNode == null\n\t) {\n\t\touter: if (oldDom == null || oldDom.parentNode !== parentDom) {\n\t\t\tparentDom.appendChild(newDom);\n\t\t\tnextDom = null;\n\t\t} else {\n\t\t\t// `j<oldChildrenLength; j+=2` is an alternative to `j++<oldChildrenLength/2`\n\t\t\tfor (\n\t\t\t\tlet sibDom = oldDom, j = 0;\n\t\t\t\t(sibDom = sibDom.nextSibling) && j < oldChildren.length;\n\t\t\t\tj += 2\n\t\t\t) {\n\t\t\t\tif (sibDom == newDom) {\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t}\n\t\t\tparentDom.insertBefore(newDom, oldDom);\n\t\t\tnextDom = oldDom;\n\t\t}\n\t}\n\n\t// If we have pre-calculated the nextDOM node, use it. Else calculate it now\n\t// Strictly check for `undefined` here cuz `null` is a valid value of `nextDom`.\n\t// See more detail in create-element.js:createVNode\n\tif (nextDom !== undefined) {\n\t\toldDom = nextDom;\n\t} else {\n\t\toldDom = newDom.nextSibling;\n\t}\n\n\treturn oldDom;\n}\n","import { IS_NON_DIMENSIONAL } from '../constants';\nimport options from '../options';\n\n/**\n * Diff the old and new properties of a VNode and apply changes to the DOM node\n * @param {import('../internal').PreactElement} dom The DOM node to apply\n * changes to\n * @param {object} newProps The new props\n * @param {object} oldProps The old props\n * @param {boolean} isSvg Whether or not this node is an SVG node\n * @param {boolean} hydrate Whether or not we are in hydration mode\n */\nexport function diffProps(dom, newProps, oldProps, isSvg, hydrate) {\n\tlet i;\n\n\tfor (i in oldProps) {\n\t\tif (i !== 'children' && i !== 'key' && !(i in newProps)) {\n\t\t\tsetProperty(dom, i, null, oldProps[i], isSvg);\n\t\t}\n\t}\n\n\tfor (i in newProps) {\n\t\tif (\n\t\t\t(!hydrate || typeof newProps[i] == 'function') &&\n\t\t\ti !== 'children' &&\n\t\t\ti !== 'key' &&\n\t\t\ti !== 'value' &&\n\t\t\ti !== 'checked' &&\n\t\t\toldProps[i] !== newProps[i]\n\t\t) {\n\t\t\tsetProperty(dom, i, newProps[i], oldProps[i], isSvg);\n\t\t}\n\t}\n}\n\nfunction setStyle(style, key, value) {\n\tif (key[0] === '-') {\n\t\tstyle.setProperty(key, value);\n\t} else if (value == null) {\n\t\tstyle[key] = '';\n\t} else if (typeof value != 'number' || IS_NON_DIMENSIONAL.test(key)) {\n\t\tstyle[key] = value;\n\t} else {\n\t\tstyle[key] = value + 'px';\n\t}\n}\n\n/**\n * Set a property value on a DOM node\n * @param {import('../internal').PreactElement} dom The DOM node to modify\n * @param {string} name The name of the property to set\n * @param {*} value The value to set the property to\n * @param {*} oldValue The old value the property had\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node or not\n */\nexport function setProperty(dom, name, value, oldValue, isSvg) {\n\tlet useCapture;\n\n\to: if (name === 'style') {\n\t\tif (typeof value == 'string') {\n\t\t\tdom.style.cssText = value;\n\t\t} else {\n\t\t\tif (typeof oldValue == 'string') {\n\t\t\t\tdom.style.cssText = oldValue = '';\n\t\t\t}\n\n\t\t\tif (oldValue) {\n\t\t\t\tfor (name in oldValue) {\n\t\t\t\t\tif (!(value && name in value)) {\n\t\t\t\t\t\tsetStyle(dom.style, name, '');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (value) {\n\t\t\t\tfor (name in value) {\n\t\t\t\t\tif (!oldValue || value[name] !== oldValue[name]) {\n\t\t\t\t\t\tsetStyle(dom.style, name, value[name]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// Benchmark for comparison: https://esbench.com/bench/574c954bdb965b9a00965ac6\n\telse if (name[0] === 'o' && name[1] === 'n') {\n\t\tuseCapture = name !== (name = name.replace(/Capture$/, ''));\n\n\t\t// Infer correct casing for DOM built-in events:\n\t\tif (name.toLowerCase() in dom) name = name.toLowerCase().slice(2);\n\t\telse name = name.slice(2);\n\n\t\tif (!dom._listeners) dom._listeners = {};\n\t\tdom._listeners[name + useCapture] = value;\n\n\t\tif (value) {\n\t\t\tif (!oldValue) {\n\t\t\t\tconst handler = useCapture ? eventProxyCapture : eventProxy;\n\t\t\t\tdom.addEventListener(name, handler, useCapture);\n\t\t\t}\n\t\t} else {\n\t\t\tconst handler = useCapture ? eventProxyCapture : eventProxy;\n\t\t\tdom.removeEventListener(name, handler, useCapture);\n\t\t}\n\t} else if (name !== 'dangerouslySetInnerHTML') {\n\t\tif (isSvg) {\n\t\t\t// Normalize incorrect prop usage for SVG:\n\t\t\t// - xlink:href / xlinkHref --> href (xlink:href was removed from SVG and isn't needed)\n\t\t\t// - className --> class\n\t\t\tname = name.replace(/xlink[H:h]/, 'h').replace(/sName$/, 's');\n\t\t} else if (\n\t\t\tname !== 'href' &&\n\t\t\tname !== 'list' &&\n\t\t\tname !== 'form' &&\n\t\t\t// Default value in browsers is `-1` and an empty string is\n\t\t\t// cast to `0` instead\n\t\t\tname !== 'tabIndex' &&\n\t\t\tname !== 'download' &&\n\t\t\tname in dom\n\t\t) {\n\t\t\ttry {\n\t\t\t\tdom[name] = value == null ? '' : value;\n\t\t\t\t// labelled break is 1b smaller here than a return statement (sorry)\n\t\t\t\tbreak o;\n\t\t\t} catch (e) {}\n\t\t}\n\n\t\t// ARIA-attributes have a different notion of boolean values.\n\t\t// The value `false` is different from the attribute not\n\t\t// existing on the DOM, so we can't remove it. For non-boolean\n\t\t// ARIA-attributes we could treat false as a removal, but the\n\t\t// amount of exceptions would cost us too many bytes. On top of\n\t\t// that other VDOM frameworks also always stringify `false`.\n\n\t\tif (typeof value === 'function') {\n\t\t\t// never serialize functions as attribute values\n\t\t} else if (\n\t\t\tvalue != null &&\n\t\t\t(value !== false || (name[0] === 'a' && name[1] === 'r'))\n\t\t) {\n\t\t\tdom.setAttribute(name, value);\n\t\t} else {\n\t\t\tdom.removeAttribute(name);\n\t\t}\n\t}\n}\n\n/**\n * Proxy an event to hooked event handlers\n * @param {Event} e The event object from the browser\n * @private\n */\nfunction eventProxy(e) {\n\tthis._listeners[e.type + false](options.event ? options.event(e) : e);\n}\n\nfunction eventProxyCapture(e) {\n\tthis._listeners[e.type + true](options.event ? options.event(e) : e);\n}\n","import { EMPTY_OBJ } from '../constants';\nimport { Component, getDomSibling } from '../component';\nimport { Fragment } from '../create-element';\nimport { diffChildren } from './children';\nimport { diffProps, setProperty } from './props';\nimport { assign, removeNode, slice } from '../util';\nimport options from '../options';\n\n/**\n * Diff two virtual nodes and apply proper changes to the DOM\n * @param {import('../internal').PreactElement} parentDom The parent of the DOM element\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object. Modified by getChildContext\n * @param {boolean} isSvg Whether or not this element is an SVG node\n * @param {Array<import('../internal').PreactElement>} excessDomChildren\n * @param {Array<import('../internal').Component>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').PreactElement} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} [isHydrating] Whether or not we are in hydration\n */\nexport function diff(\n\tparentDom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet tmp,\n\t\tnewType = newVNode.type;\n\n\t// When passing through createElement it assigns the object\n\t// constructor as undefined. This to prevent JSON-injection.\n\tif (newVNode.constructor !== undefined) return null;\n\n\t// If the previous diff bailed out, resume creating/hydrating.\n\tif (oldVNode._hydrating != null) {\n\t\tisHydrating = oldVNode._hydrating;\n\t\toldDom = newVNode._dom = oldVNode._dom;\n\t\t// if we resume, we want the tree to be \"unlocked\"\n\t\tnewVNode._hydrating = null;\n\t\texcessDomChildren = [oldDom];\n\t}\n\n\tif ((tmp = options._diff)) tmp(newVNode);\n\n\ttry {\n\t\touter: if (typeof newType == 'function') {\n\t\t\tlet c, isNew, oldProps, oldState, snapshot, clearProcessingException;\n\t\t\tlet newProps = newVNode.props;\n\n\t\t\t// Necessary for createContext api. Setting this property will pass\n\t\t\t// the context value as `this.context` just for this component.\n\t\t\ttmp = newType.contextType;\n\t\t\tlet provider = tmp && globalContext[tmp._id];\n\t\t\tlet componentContext = tmp\n\t\t\t\t? provider\n\t\t\t\t\t? provider.props.value\n\t\t\t\t\t: tmp._defaultValue\n\t\t\t\t: globalContext;\n\n\t\t\t// Get component and set it to `c`\n\t\t\tif (oldVNode._component) {\n\t\t\t\tc = newVNode._component = oldVNode._component;\n\t\t\t\tclearProcessingException = c._processingException = c._pendingError;\n\t\t\t} else {\n\t\t\t\t// Instantiate the new component\n\t\t\t\tif ('prototype' in newType && newType.prototype.render) {\n\t\t\t\t\t// @ts-ignore The check above verifies that newType is suppose to be constructed\n\t\t\t\t\tnewVNode._component = c = new newType(newProps, componentContext); // eslint-disable-line new-cap\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-ignore Trust me, Component implements the interface we want\n\t\t\t\t\tnewVNode._component = c = new Component(newProps, componentContext);\n\t\t\t\t\tc.constructor = newType;\n\t\t\t\t\tc.render = doRender;\n\t\t\t\t}\n\t\t\t\tif (provider) provider.sub(c);\n\n\t\t\t\tc.props = newProps;\n\t\t\t\tif (!c.state) c.state = {};\n\t\t\t\tc.context = componentContext;\n\t\t\t\tc._globalContext = globalContext;\n\t\t\t\tisNew = c._dirty = true;\n\t\t\t\tc._renderCallbacks = [];\n\t\t\t}\n\n\t\t\t// Invoke getDerivedStateFromProps\n\t\t\tif (c._nextState == null) {\n\t\t\t\tc._nextState = c.state;\n\t\t\t}\n\t\t\tif (newType.getDerivedStateFromProps != null) {\n\t\t\t\tif (c._nextState == c.state) {\n\t\t\t\t\tc._nextState = assign({}, c._nextState);\n\t\t\t\t}\n\n\t\t\t\tassign(\n\t\t\t\t\tc._nextState,\n\t\t\t\t\tnewType.getDerivedStateFromProps(newProps, c._nextState)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\toldProps = c.props;\n\t\t\toldState = c.state;\n\n\t\t\t// Invoke pre-render lifecycle methods\n\t\t\tif (isNew) {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tc.componentWillMount != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillMount();\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidMount != null) {\n\t\t\t\t\tc._renderCallbacks.push(c.componentDidMount);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tnewProps !== oldProps &&\n\t\t\t\t\tc.componentWillReceiveProps != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillReceiveProps(newProps, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t(!c._force &&\n\t\t\t\t\t\tc.shouldComponentUpdate != null &&\n\t\t\t\t\t\tc.shouldComponentUpdate(\n\t\t\t\t\t\t\tnewProps,\n\t\t\t\t\t\t\tc._nextState,\n\t\t\t\t\t\t\tcomponentContext\n\t\t\t\t\t\t) === false) ||\n\t\t\t\t\tnewVNode._original === oldVNode._original\n\t\t\t\t) {\n\t\t\t\t\tc.props = newProps;\n\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t\t// More info about this here: https://gist.github.com/JoviDeCroock/bec5f2ce93544d2e6070ef8e0036e4e8\n\t\t\t\t\tif (newVNode._original !== oldVNode._original) c._dirty = false;\n\t\t\t\t\tc._vnode = newVNode;\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t\tnewVNode._children.forEach(vnode => {\n\t\t\t\t\t\tif (vnode) vnode._parent = newVNode;\n\t\t\t\t\t});\n\t\t\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\t\t\tcommitQueue.push(c);\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\n\t\t\t\tif (c.componentWillUpdate != null) {\n\t\t\t\t\tc.componentWillUpdate(newProps, c._nextState, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidUpdate != null) {\n\t\t\t\t\tc._renderCallbacks.push(() => {\n\t\t\t\t\t\tc.componentDidUpdate(oldProps, oldState, snapshot);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tc.context = componentContext;\n\t\t\tc.props = newProps;\n\t\t\tc.state = c._nextState;\n\n\t\t\tif ((tmp = options._render)) tmp(newVNode);\n\n\t\t\tc._dirty = false;\n\t\t\tc._vnode = newVNode;\n\t\t\tc._parentDom = parentDom;\n\n\t\t\ttmp = c.render(c.props, c.state, c.context);\n\n\t\t\t// Handle setState called in render, see #2553\n\t\t\tc.state = c._nextState;\n\n\t\t\tif (c.getChildContext != null) {\n\t\t\t\tglobalContext = assign(assign({}, globalContext), c.getChildContext());\n\t\t\t}\n\n\t\t\tif (!isNew && c.getSnapshotBeforeUpdate != null) {\n\t\t\t\tsnapshot = c.getSnapshotBeforeUpdate(oldProps, oldState);\n\t\t\t}\n\n\t\t\tlet isTopLevelFragment =\n\t\t\t\ttmp != null && tmp.type === Fragment && tmp.key == null;\n\t\t\tlet renderResult = isTopLevelFragment ? tmp.props.children : tmp;\n\n\t\t\tdiffChildren(\n\t\t\t\tparentDom,\n\t\t\t\tArray.isArray(renderResult) ? renderResult : [renderResult],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\toldDom,\n\t\t\t\tisHydrating\n\t\t\t);\n\n\t\t\tc.base = newVNode._dom;\n\n\t\t\t// We successfully rendered this VNode, unset any stored hydration/bailout state:\n\t\t\tnewVNode._hydrating = null;\n\n\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\tcommitQueue.push(c);\n\t\t\t}\n\n\t\t\tif (clearProcessingException) {\n\t\t\t\tc._pendingError = c._processingException = null;\n\t\t\t}\n\n\t\t\tc._force = false;\n\t\t} else if (\n\t\t\texcessDomChildren == null &&\n\t\t\tnewVNode._original === oldVNode._original\n\t\t) {\n\t\t\tnewVNode._children = oldVNode._children;\n\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t} else {\n\t\t\tnewVNode._dom = diffElementNodes(\n\t\t\t\toldVNode._dom,\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\tisHydrating\n\t\t\t);\n\t\t}\n\n\t\tif ((tmp = options.diffed)) tmp(newVNode);\n\t} catch (e) {\n\t\tnewVNode._original = null;\n\t\t// if hydrating or creating initial tree, bailout preserves DOM:\n\t\tif (isHydrating || excessDomChildren != null) {\n\t\t\tnewVNode._dom = oldDom;\n\t\t\tnewVNode._hydrating = !!isHydrating;\n\t\t\texcessDomChildren[excessDomChildren.indexOf(oldDom)] = null;\n\t\t\t// ^ could possibly be simplified to:\n\t\t\t// excessDomChildren.length = 0;\n\t\t}\n\t\toptions._catchError(e, newVNode, oldVNode);\n\t}\n}\n\n/**\n * @param {Array<import('../internal').Component>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').VNode} root\n */\nexport function commitRoot(commitQueue, root) {\n\tif (options._commit) options._commit(root, commitQueue);\n\n\tcommitQueue.some(c => {\n\t\ttry {\n\t\t\t// @ts-ignore Reuse the commitQueue variable here so the type changes\n\t\t\tcommitQueue = c._renderCallbacks;\n\t\t\tc._renderCallbacks = [];\n\t\t\tcommitQueue.some(cb => {\n\t\t\t\t// @ts-ignore See above ts-ignore on commitQueue\n\t\t\t\tcb.call(c);\n\t\t\t});\n\t\t} catch (e) {\n\t\t\toptions._catchError(e, c._vnode);\n\t\t}\n\t});\n}\n\n/**\n * Diff two virtual nodes representing DOM element\n * @param {import('../internal').PreactElement} dom The DOM element representing\n * the virtual nodes being diffed\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {*} excessDomChildren\n * @param {Array<import('../internal').Component>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @returns {import('../internal').PreactElement}\n */\nfunction diffElementNodes(\n\tdom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\tisHydrating\n) {\n\tlet oldProps = oldVNode.props;\n\tlet newProps = newVNode.props;\n\tlet nodeType = newVNode.type;\n\tlet i = 0;\n\n\t// Tracks entering and exiting SVG namespace when descending through the tree.\n\tif (nodeType === 'svg') isSvg = true;\n\n\tif (excessDomChildren != null) {\n\t\tfor (; i < excessDomChildren.length; i++) {\n\t\t\tconst child = excessDomChildren[i];\n\n\t\t\t// if newVNode matches an element in excessDomChildren or the `dom`\n\t\t\t// argument matches an element in excessDomChildren, remove it from\n\t\t\t// excessDomChildren so it isn't later removed in diffChildren\n\t\t\tif (\n\t\t\t\tchild &&\n\t\t\t\t(child === dom ||\n\t\t\t\t\t(nodeType ? child.localName == nodeType : child.nodeType == 3))\n\t\t\t) {\n\t\t\t\tdom = child;\n\t\t\t\texcessDomChildren[i] = null;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (dom == null) {\n\t\tif (nodeType === null) {\n\t\t\t// @ts-ignore createTextNode returns Text, we expect PreactElement\n\t\t\treturn document.createTextNode(newProps);\n\t\t}\n\n\t\tif (isSvg) {\n\t\t\tdom = document.createElementNS(\n\t\t\t\t'http://www.w3.org/2000/svg',\n\t\t\t\t// @ts-ignore We know `newVNode.type` is a string\n\t\t\t\tnodeType\n\t\t\t);\n\t\t} else {\n\t\t\tdom = document.createElement(\n\t\t\t\t// @ts-ignore We know `newVNode.type` is a string\n\t\t\t\tnodeType,\n\t\t\t\tnewProps.is && newProps\n\t\t\t);\n\t\t}\n\n\t\t// we created a new parent, so none of the previously attached children can be reused:\n\t\texcessDomChildren = null;\n\t\t// we are creating a new node, so we can assume this is a new subtree (in case we are hydrating), this deopts the hydrate\n\t\tisHydrating = false;\n\t}\n\n\tif (nodeType === null) {\n\t\t// During hydration, we still have to split merged text from SSR'd HTML.\n\t\tif (oldProps !== newProps && (!isHydrating || dom.data !== newProps)) {\n\t\t\tdom.data = newProps;\n\t\t}\n\t} else {\n\t\t// If excessDomChildren was not null, repopulate it with the current element's children:\n\t\texcessDomChildren = excessDomChildren && slice.call(dom.childNodes);\n\n\t\toldProps = oldVNode.props || EMPTY_OBJ;\n\n\t\tlet oldHtml = oldProps.dangerouslySetInnerHTML;\n\t\tlet newHtml = newProps.dangerouslySetInnerHTML;\n\n\t\t// During hydration, props are not diffed at all (including dangerouslySetInnerHTML)\n\t\t// @TODO we should warn in debug mode when props don't match here.\n\t\tif (!isHydrating) {\n\t\t\t// But, if we are in a situation where we are using existing DOM (e.g. replaceNode)\n\t\t\t// we should read the existing DOM attributes to diff them\n\t\t\tif (excessDomChildren != null) {\n\t\t\t\toldProps = {};\n\t\t\t\tfor (i = 0; i < dom.attributes.length; i++) {\n\t\t\t\t\toldProps[dom.attributes[i].name] = dom.attributes[i].value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (newHtml || oldHtml) {\n\t\t\t\t// Avoid re-applying the same '__html' if it did not changed between re-render\n\t\t\t\tif (\n\t\t\t\t\t!newHtml ||\n\t\t\t\t\t((!oldHtml || newHtml.__html != oldHtml.__html) &&\n\t\t\t\t\t\tnewHtml.__html !== dom.innerHTML)\n\t\t\t\t) {\n\t\t\t\t\tdom.innerHTML = (newHtml && newHtml.__html) || '';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tdiffProps(dom, newProps, oldProps, isSvg, isHydrating);\n\n\t\t// If the new vnode didn't have dangerouslySetInnerHTML, diff its children\n\t\tif (newHtml) {\n\t\t\tnewVNode._children = [];\n\t\t} else {\n\t\t\ti = newVNode.props.children;\n\t\t\tdiffChildren(\n\t\t\t\tdom,\n\t\t\t\tArray.isArray(i) ? i : [i],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg && nodeType !== 'foreignObject',\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\texcessDomChildren\n\t\t\t\t\t? excessDomChildren[0]\n\t\t\t\t\t: oldVNode._children && getDomSibling(oldVNode, 0),\n\t\t\t\tisHydrating\n\t\t\t);\n\n\t\t\t// Remove children that are not part of any vnode.\n\t\t\tif (excessDomChildren != null) {\n\t\t\t\tfor (i = excessDomChildren.length; i--; ) {\n\t\t\t\t\tif (excessDomChildren[i] != null) removeNode(excessDomChildren[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// (as above, don't diff props during hydration)\n\t\tif (!isHydrating) {\n\t\t\tif (\n\t\t\t\t'value' in newProps &&\n\t\t\t\t(i = newProps.value) !== undefined &&\n\t\t\t\t// #2756 For the <progress>-element the initial value is 0,\n\t\t\t\t// despite the attribute not being present. When the attribute\n\t\t\t\t// is missing the progress bar is treated as indeterminate.\n\t\t\t\t// To fix that we'll always update it when it is 0 for progress elements\n\t\t\t\t(i !== dom.value || (nodeType === 'progress' && !i))\n\t\t\t) {\n\t\t\t\tsetProperty(dom, 'value', i, oldProps.value, false);\n\t\t\t}\n\t\t\tif (\n\t\t\t\t'checked' in newProps &&\n\t\t\t\t(i = newProps.checked) !== undefined &&\n\t\t\t\ti !== dom.checked\n\t\t\t) {\n\t\t\t\tsetProperty(dom, 'checked', i, oldProps.checked, false);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn dom;\n}\n\n/**\n * Invoke or update a ref, depending on whether it is a function or object ref.\n * @param {object|function} ref\n * @param {any} value\n * @param {import('../internal').VNode} vnode\n */\nexport function applyRef(ref, value, vnode) {\n\ttry {\n\t\tif (typeof ref == 'function') ref(value);\n\t\telse ref.current = value;\n\t} catch (e) {\n\t\toptions._catchError(e, vnode);\n\t}\n}\n\n/**\n * Unmount a virtual node from the tree and apply DOM changes\n * @param {import('../internal').VNode} vnode The virtual node to unmount\n * @param {import('../internal').VNode} parentVNode The parent of the VNode that\n * initiated the unmount\n * @param {boolean} [skipRemove] Flag that indicates that a parent node of the\n * current element is already detached from the DOM.\n */\nexport function unmount(vnode, parentVNode, skipRemove) {\n\tlet r;\n\tif (options.unmount) options.unmount(vnode);\n\n\tif ((r = vnode.ref)) {\n\t\tif (!r.current || r.current === vnode._dom) applyRef(r, null, parentVNode);\n\t}\n\n\tif ((r = vnode._component) != null) {\n\t\tif (r.componentWillUnmount) {\n\t\t\ttry {\n\t\t\t\tr.componentWillUnmount();\n\t\t\t} catch (e) {\n\t\t\t\toptions._catchError(e, parentVNode);\n\t\t\t}\n\t\t}\n\n\t\tr.base = r._parentDom = null;\n\t}\n\n\tif ((r = vnode._children)) {\n\t\tfor (let i = 0; i < r.length; i++) {\n\t\t\tif (r[i]) {\n\t\t\t\tunmount(r[i], parentVNode, typeof vnode.type != 'function');\n\t\t\t}\n\t\t}\n\t}\n\n\tif (!skipRemove && vnode._dom != null) removeNode(vnode._dom);\n\n\t// Must be set to `undefined` to properly clean up `_nextDom`\n\t// for which `null` is a valid value. See comment in `create-element.js`\n\tvnode._dom = vnode._nextDom = undefined;\n}\n\n/** The `.render()` method for a PFC backing instance. */\nfunction doRender(props, state, context) {\n\treturn this.constructor(props, context);\n}\n","import { EMPTY_OBJ } from './constants';\nimport { commitRoot, diff } from './diff/index';\nimport { createElement, Fragment } from './create-element';\nimport options from './options';\nimport { slice } from './util';\n\n/**\n * Render a Preact virtual node into a DOM element\n * @param {import('./internal').ComponentChild} vnode The virtual node to render\n * @param {import('./internal').PreactElement} parentDom The DOM element to\n * render into\n * @param {import('./internal').PreactElement | object} [replaceNode] Optional: Attempt to re-use an\n * existing DOM tree rooted at `replaceNode`\n */\nexport function render(vnode, parentDom, replaceNode) {\n\tif (options._root) options._root(vnode, parentDom);\n\n\t// We abuse the `replaceNode` parameter in `hydrate()` to signal if we are in\n\t// hydration mode or not by passing the `hydrate` function instead of a DOM\n\t// element..\n\tlet isHydrating = typeof replaceNode === 'function';\n\n\t// To be able to support calling `render()` multiple times on the same\n\t// DOM node, we need to obtain a reference to the previous tree. We do\n\t// this by assigning a new `_children` property to DOM nodes which points\n\t// to the last rendered tree. By default this property is not present, which\n\t// means that we are mounting a new tree for the first time.\n\tlet oldVNode = isHydrating\n\t\t? null\n\t\t: (replaceNode && replaceNode._children) || parentDom._children;\n\n\tvnode = (\n\t\t(!isHydrating && replaceNode) ||\n\t\tparentDom\n\t)._children = createElement(Fragment, null, [vnode]);\n\n\t// List of effects that need to be called after diffing.\n\tlet commitQueue = [];\n\tdiff(\n\t\tparentDom,\n\t\t// Determine the new vnode tree and store it on the DOM element on\n\t\t// our custom `_children` property.\n\t\tvnode,\n\t\toldVNode || EMPTY_OBJ,\n\t\tEMPTY_OBJ,\n\t\tparentDom.ownerSVGElement !== undefined,\n\t\t!isHydrating && replaceNode\n\t\t\t? [replaceNode]\n\t\t\t: oldVNode\n\t\t\t? null\n\t\t\t: parentDom.firstChild\n\t\t\t? slice.call(parentDom.childNodes)\n\t\t\t: null,\n\t\tcommitQueue,\n\t\t!isHydrating && replaceNode\n\t\t\t? replaceNode\n\t\t\t: oldVNode\n\t\t\t? oldVNode._dom\n\t\t\t: parentDom.firstChild,\n\t\tisHydrating\n\t);\n\n\t// Flush all queued effects\n\tcommitRoot(commitQueue, vnode);\n}\n\n/**\n * Update an existing DOM element with data from a Preact virtual node\n * @param {import('./internal').ComponentChild} vnode The virtual node to render\n * @param {import('./internal').PreactElement} parentDom The DOM element to\n * update\n */\nexport function hydrate(vnode, parentDom) {\n\trender(vnode, parentDom, hydrate);\n}\n","/**\n * Find the closest error boundary to a thrown error and call it\n * @param {object} error The thrown value\n * @param {import('../internal').VNode} vnode The vnode that threw\n * the error that was caught (except for unmounting when this parameter\n * is the highest parent that was being unmounted)\n */\nexport function _catchError(error, vnode) {\n\t/** @type {import('../internal').Component} */\n\tlet component, ctor, handled;\n\n\tfor (; (vnode = vnode._parent); ) {\n\t\tif ((component = vnode._component) && !component._processingException) {\n\t\t\ttry {\n\t\t\t\tctor = component.constructor;\n\n\t\t\t\tif (ctor && ctor.getDerivedStateFromError != null) {\n\t\t\t\t\tcomponent.setState(ctor.getDerivedStateFromError(error));\n\t\t\t\t\thandled = component._dirty;\n\t\t\t\t}\n\n\t\t\t\tif (component.componentDidCatch != null) {\n\t\t\t\t\tcomponent.componentDidCatch(error);\n\t\t\t\t\thandled = component._dirty;\n\t\t\t\t}\n\n\t\t\t\t// This is an error boundary. Mark it as having bailed out, and whether it was mid-hydration.\n\t\t\t\tif (handled) {\n\t\t\t\t\treturn (component._pendingError = component);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\terror = e;\n\t\t\t}\n\t\t}\n\t}\n\n\tthrow error;\n}\n","import { assign, slice } from './util';\nimport { createVNode } from './create-element';\n\n/**\n * Clones the given VNode, optionally adding attributes/props and replacing its children.\n * @param {import('./internal').VNode} vnode The virtual DOM element to clone\n * @param {object} props Attributes/props to add when cloning\n * @param {Array<import('./internal').ComponentChildren>} rest Any additional arguments will be used as replacement children.\n * @returns {import('./internal').VNode}\n */\nexport function cloneElement(vnode, props, children) {\n\tlet normalizedProps = assign({}, vnode.props),\n\t\tkey,\n\t\tref,\n\t\ti;\n\tfor (i in props) {\n\t\tif (i == 'key') key = props[i];\n\t\telse if (i == 'ref') ref = props[i];\n\t\telse normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 2) {\n\t\tnormalizedProps.children =\n\t\t\targuments.length > 3 ? slice.call(arguments, 2) : children;\n\t}\n\n\treturn createVNode(\n\t\tvnode.type,\n\t\tnormalizedProps,\n\t\tkey || vnode.key,\n\t\tref || vnode.ref,\n\t\tnull\n\t);\n}\n"],"names":["slice","options","vnodeId","isValidElement","rerenderQueue","defer","prevDebounce","i","EMPTY_OBJ","EMPTY_ARR","IS_NON_DIMENSIONAL","assign","obj","props","removeNode","node","parentNode","removeChild","createElement","type","children","key","ref","normalizedProps","arguments","length","call","defaultProps","undefined","createVNode","original","vnode","constructor","Fragment","Component","context","getDomSibling","childIndex","indexOf","sibling","updateParentDomPointers","child","base","enqueueRender","c","push","process","debounceRendering","queue","sort","a","b","some","component","commitQueue","oldVNode","oldDom","parentDom","diff","ownerSVGElement","commitRoot","diffChildren","renderResult","newParentVNode","oldParentVNode","globalContext","isSvg","excessDomChildren","isHydrating","j","childVNode","newDom","firstChildDom","refs","oldChildren","oldChildrenLength","Array","isArray","reorderChildren","placeChild","value","unmount","applyRef","tmp","nextDom","sibDom","outer","appendChild","nextSibling","insertBefore","diffProps","dom","newProps","oldProps","hydrate","setProperty","setStyle","style","test","name","oldValue","useCapture","o","cssText","replace","toLowerCase","_listeners","addEventListener","eventProxyCapture","eventProxy","removeEventListener","e","setAttribute","removeAttribute","event","newVNode","isNew","oldState","snapshot","clearProcessingException","provider","componentContext","newType","contextType","prototype","render","doRender","sub","state","getDerivedStateFromProps","componentWillMount","componentDidMount","componentWillReceiveProps","shouldComponentUpdate","forEach","componentWillUpdate","componentDidUpdate","getChildContext","getSnapshotBeforeUpdate","diffElementNodes","diffed","root","cb","oldHtml","newHtml","nodeType","localName","document","createTextNode","createElementNS","is","data","childNodes","dangerouslySetInnerHTML","attributes","innerHTML","checked","current","parentVNode","skipRemove","r","componentWillUnmount","this","replaceNode","firstChild","error","ctor","handled","getDerivedStateFromError","setState","componentDidCatch","update","callback","s","forceUpdate","Promise","then","bind","resolve","setTimeout","defaultValue","contextId","Consumer","contextValue","Provider","subs","ctx","_props","old","splice","toChildArray","out"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ !function(){var n,l,u,t,i,o,r,f,e,c={},a=[],s=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function h(n,l){for(var u in l)n[u]=l[u];return n}function v(n){var l=n.parentNode;l&&l.removeChild(n)}function y(l,u,t){var i,o,r,f={};for(r in u)"key"==r?i=u[r]:"ref"==r?o=u[r]:f[r]=u[r];if(arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):t),"function"==typeof l&&null!=l.defaultProps)for(r in l.defaultProps)void 0===f[r]&&(f[r]=l.defaultProps[r]);return d(l,f,i,o,null)}function d(n,t,i,o,r){var f={type:n,props:t,key:i,ref:o,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==r?++u:r};return null!=l.vnode&&l.vnode(f),f}function p(n){return n.children}function _(n,l){this.props=n,this.context=l}function m(n,l){if(null==l)return n.__?m(n.__,n.__.__k.indexOf(n)+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return"function"==typeof n.type?m(n):null}function k(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return k(n)}}function b(n){(!n.__d&&(n.__d=!0)&&i.push(n)&&!g.__r++||r!==l.debounceRendering)&&((r=l.debounceRendering)||o)(g)}function g(){for(var n;g.__r=i.length;)n=i.sort(function(n,l){return n.__v.__b-l.__v.__b}),i=[],n.some(function(n){var l,u,t,i,o,r;n.__d&&(o=(i=(l=n).__v).__e,(r=l.__P)&&(u=[],(t=h({},i)).__v=i.__v+1,I(r,i,t,l.__n,void 0!==r.ownerSVGElement,null!=i.__h?[o]:null,u,null==o?m(i):o,i.__h),T(u,i),i.__e!=o&&k(i)))})}function w(n,l,u,t,i,o,r,f,e,s){var h,v,y,_,k,b,g,w=t&&t.__k||a,A=w.length;for(u.__k=[],h=0;h<l.length;h++)if(null!=(_=u.__k[h]=null==(_=l[h])||"boolean"==typeof _?null:"string"==typeof _||"number"==typeof _||"bigint"==typeof _?d(null,_,null,null,_):Array.isArray(_)?d(p,{children:_},null,null,null):_.__b>0?d(_.type,_.props,_.key,null,_.__v):_)){if(_.__=u,_.__b=u.__b+1,null===(y=w[h])||y&&_.key==y.key&&_.type===y.type)w[h]=void 0;else for(v=0;v<A;v++){if((y=w[v])&&_.key==y.key&&_.type===y.type){w[v]=void 0;break}y=null}I(n,_,y=y||c,i,o,r,f,e,s),k=_.__e,(v=_.ref)&&y.ref!=v&&(g||(g=[]),y.ref&&g.push(y.ref,null,_),g.push(v,_.__c||k,_)),null!=k?(null==b&&(b=k),"function"==typeof _.type&&null!=_.__k&&_.__k===y.__k?_.__d=e=C(_,e,n):e=x(n,_,y,w,k,e),s||"option"!==u.type?"function"==typeof u.type&&(u.__d=e):n.value=""):e&&y.__e==e&&e.parentNode!=n&&(e=m(y))}for(u.__e=b,h=A;h--;)null!=w[h]&&("function"==typeof u.type&&null!=w[h].__e&&w[h].__e==u.__d&&(u.__d=m(t,h+1)),F(w[h],w[h]));if(g)for(h=0;h<g.length;h++)z(g[h],g[++h],g[++h])}function C(n,l,u){var t,i;for(t=0;t<n.__k.length;t++)(i=n.__k[t])&&(i.__=n,l="function"==typeof i.type?C(i,l,u):x(u,i,i,n.__k,i.__e,l));return l}function x(n,l,u,t,i,o){var r,f,e;if(void 0!==l.__d)r=l.__d,l.__d=void 0;else if(null==u||i!=o||null==i.parentNode)n:if(null==o||o.parentNode!==n)n.appendChild(i),r=null;else{for(f=o,e=0;(f=f.nextSibling)&&e<t.length;e+=2)if(f==i)break n;n.insertBefore(i,o),r=o}return void 0!==r?r:i.nextSibling}function A(n,l,u,t,i){var o;for(o in u)"children"===o||"key"===o||o in l||E(n,o,null,u[o],t);for(o in l)i&&"function"!=typeof l[o]||"children"===o||"key"===o||"value"===o||"checked"===o||u[o]===l[o]||E(n,o,l[o],u[o],t)}function P(n,l,u){"-"===l[0]?n.setProperty(l,u):n[l]=null==u?"":"number"!=typeof u||s.test(l)?u:u+"px"}function E(n,l,u,t,i){var o;n:if("style"===l)if("string"==typeof u)n.style.cssText=u;else{if("string"==typeof t&&(n.style.cssText=t=""),t)for(l in t)u&&l in u||P(n.style,l,"");if(u)for(l in u)t&&u[l]===t[l]||P(n.style,l,u[l])}else if("o"===l[0]&&"n"===l[1])o=l!==(l=l.replace(/Capture$/,"")),l=l.toLowerCase()in n?l.toLowerCase().slice(2):l.slice(2),n.l||(n.l={}),n.l[l+o]=u,u?t||n.addEventListener(l,o?H:$,o):n.removeEventListener(l,o?H:$,o);else if("dangerouslySetInnerHTML"!==l){if(i)l=l.replace(/xlink[H:h]/,"h").replace(/sName$/,"s");else if("href"!==l&&"list"!==l&&"form"!==l&&"tabIndex"!==l&&"download"!==l&&l in n)try{n[l]=null==u?"":u;break n}catch(n){}"function"==typeof u||(null!=u&&(!1!==u||"a"===l[0]&&"r"===l[1])?n.setAttribute(l,u):n.removeAttribute(l))}}function $(n){this.l[n.type+!1](l.event?l.event(n):n)}function H(n){this.l[n.type+!0](l.event?l.event(n):n)}function I(n,u,t,i,o,r,f,e,c){var a,s,v,y,d,m,k,b,g,C,x,A=u.type;if(void 0!==u.constructor)return null;null!=t.__h&&(c=t.__h,e=u.__e=t.__e,u.__h=null,r=[e]),(a=l.__b)&&a(u);try{n:if("function"==typeof A){if(b=u.props,g=(a=A.contextType)&&i[a.__c],C=a?g?g.props.value:a.__:i,t.__c?k=(s=u.__c=t.__c).__=s.__E:("prototype"in A&&A.prototype.render?u.__c=s=new A(b,C):(u.__c=s=new _(b,C),s.constructor=A,s.render=L),g&&g.sub(s),s.props=b,s.state||(s.state={}),s.context=C,s.__n=i,v=s.__d=!0,s.__h=[]),null==s.__s&&(s.__s=s.state),null!=A.getDerivedStateFromProps&&(s.__s==s.state&&(s.__s=h({},s.__s)),h(s.__s,A.getDerivedStateFromProps(b,s.__s))),y=s.props,d=s.state,v)null==A.getDerivedStateFromProps&&null!=s.componentWillMount&&s.componentWillMount(),null!=s.componentDidMount&&s.__h.push(s.componentDidMount);else{if(null==A.getDerivedStateFromProps&&b!==y&&null!=s.componentWillReceiveProps&&s.componentWillReceiveProps(b,C),!s.__e&&null!=s.shouldComponentUpdate&&!1===s.shouldComponentUpdate(b,s.__s,C)||u.__v===t.__v){s.props=b,s.state=s.__s,u.__v!==t.__v&&(s.__d=!1),s.__v=u,u.__e=t.__e,u.__k=t.__k,u.__k.forEach(function(n){n&&(n.__=u)}),s.__h.length&&f.push(s);break n}null!=s.componentWillUpdate&&s.componentWillUpdate(b,s.__s,C),null!=s.componentDidUpdate&&s.__h.push(function(){s.componentDidUpdate(y,d,m)})}s.context=C,s.props=b,s.state=s.__s,(a=l.__r)&&a(u),s.__d=!1,s.__v=u,s.__P=n,a=s.render(s.props,s.state,s.context),s.state=s.__s,null!=s.getChildContext&&(i=h(h({},i),s.getChildContext())),v||null==s.getSnapshotBeforeUpdate||(m=s.getSnapshotBeforeUpdate(y,d)),x=null!=a&&a.type===p&&null==a.key?a.props.children:a,w(n,Array.isArray(x)?x:[x],u,t,i,o,r,f,e,c),s.base=u.__e,u.__h=null,s.__h.length&&f.push(s),k&&(s.__E=s.__=null),s.__e=!1}else null==r&&u.__v===t.__v?(u.__k=t.__k,u.__e=t.__e):u.__e=j(t.__e,u,t,i,o,r,f,c);(a=l.diffed)&&a(u)}catch(n){u.__v=null,(c||null!=r)&&(u.__e=e,u.__h=!!c,r[r.indexOf(e)]=null),l.__e(n,u,t)}}function T(n,u){l.__c&&l.__c(u,n),n.some(function(u){try{n=u.__h,u.__h=[],n.some(function(n){n.call(u)})}catch(n){l.__e(n,u.__v)}})}function j(l,u,t,i,o,r,f,e){var a,s,h,y=t.props,d=u.props,p=u.type,_=0;if("svg"===p&&(o=!0),null!=r)for(;_<r.length;_++)if((a=r[_])&&(a===l||(p?a.localName==p:3==a.nodeType))){l=a,r[_]=null;break}if(null==l){if(null===p)return document.createTextNode(d);l=o?document.createElementNS("http://www.w3.org/2000/svg",p):document.createElement(p,d.is&&d),r=null,e=!1}if(null===p)y===d||e&&l.data===d||(l.data=d);else{if(r=r&&n.call(l.childNodes),s=(y=t.props||c).dangerouslySetInnerHTML,h=d.dangerouslySetInnerHTML,!e){if(null!=r)for(y={},_=0;_<l.attributes.length;_++)y[l.attributes[_].name]=l.attributes[_].value;(h||s)&&(h&&(s&&h.__html==s.__html||h.__html===l.innerHTML)||(l.innerHTML=h&&h.__html||""))}if(A(l,d,y,o,e),h)u.__k=[];else if(_=u.props.children,w(l,Array.isArray(_)?_:[_],u,t,i,o&&"foreignObject"!==p,r,f,r?r[0]:t.__k&&m(t,0),e),null!=r)for(_=r.length;_--;)null!=r[_]&&v(r[_]);e||("value"in d&&void 0!==(_=d.value)&&(_!==l.value||"progress"===p&&!_)&&E(l,"value",_,y.value,!1),"checked"in d&&void 0!==(_=d.checked)&&_!==l.checked&&E(l,"checked",_,y.checked,!1))}return l}function z(n,u,t){try{"function"==typeof n?n(u):n.current=u}catch(n){l.__e(n,t)}}function F(n,u,t){var i,o;if(l.unmount&&l.unmount(n),(i=n.ref)&&(i.current&&i.current!==n.__e||z(i,null,u)),null!=(i=n.__c)){if(i.componentWillUnmount)try{i.componentWillUnmount()}catch(n){l.__e(n,u)}i.base=i.__P=null}if(i=n.__k)for(o=0;o<i.length;o++)i[o]&&F(i[o],u,"function"!=typeof n.type);t||null==n.__e||v(n.__e),n.__e=n.__d=void 0}function L(n,l,u){return this.constructor(n,u)}function M(u,t,i){var o,r,f;l.__&&l.__(u,t),r=(o="function"==typeof i)?null:i&&i.__k||t.__k,f=[],I(t,u=(!o&&i||t).__k=y(p,null,[u]),r||c,c,void 0!==t.ownerSVGElement,!o&&i?[i]:r?null:t.firstChild?n.call(t.childNodes):null,f,!o&&i?i:r?r.__e:t.firstChild,o),T(f,u)}n=a.slice,l={__e:function(n,l){for(var u,t,i;l=l.__;)if((u=l.__c)&&!u.__)try{if((t=u.constructor)&&null!=t.getDerivedStateFromError&&(u.setState(t.getDerivedStateFromError(n)),i=u.__d),null!=u.componentDidCatch&&(u.componentDidCatch(n),i=u.__d),i)return u.__E=u}catch(l){n=l}throw n}},u=0,t=function(n){return null!=n&&void 0===n.constructor},_.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=h({},this.state),"function"==typeof n&&(n=n(h({},u),this.props)),n&&h(u,n),null!=n&&this.__v&&(l&&this.__h.push(l),b(this))},_.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),b(this))},_.prototype.render=p,i=[],o="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,g.__r=0,f=0,e={render:M,hydrate:function n(l,u){M(l,u,n)},createElement:y,h:y,Fragment:p,createRef:function(){return{current:null}},isValidElement:t,Component:_,cloneElement:function(l,u,t){var i,o,r,f=h({},l.props);for(r in u)"key"==r?i=u[r]:"ref"==r?o=u[r]:f[r]=u[r];return arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):t),d(l.type,f,i||l.key,o||l.ref,null)},createContext:function(n,l){var u={__c:l="__cC"+f++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var u,t;return this.getChildContext||(u=[],(t={})[l]=this,this.getChildContext=function(){return t},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&u.some(b)},this.sub=function(n){u.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u.splice(u.indexOf(n),1),l&&l.call(n)}}),n.children}};return u.Provider.__=u.Consumer.contextType=u},toChildArray:function n(l,u){return u=u||[],null==l||"boolean"==typeof l||(Array.isArray(l)?l.some(function(l){n(l,u)}):u.push(l)),u},options:l},typeof module<"u"?module.exports=e:self.preact=e}();
2
+ //# sourceMappingURL=preact.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preact.min.js","sources":["../src/util.js","../src/options.js","../src/create-element.js","../src/component.js","../src/create-context.js","../src/constants.js","../src/diff/children.js","../src/diff/props.js","../src/diff/index.js","../src/render.js","../src/diff/catch-error.js","../src/clone-element.js","../src/cjs.js"],"sourcesContent":["import { EMPTY_ARR } from \"./constants\";\n\n/**\n * Assign properties from `props` to `obj`\n * @template O, P The obj and props types\n * @param {O} obj The object to copy properties to\n * @param {P} props The object to copy properties from\n * @returns {O & P}\n */\nexport function assign(obj, props) {\n\t// @ts-ignore We change the type of `obj` to be `O & P`\n\tfor (let i in props) obj[i] = props[i];\n\treturn /** @type {O & P} */ (obj);\n}\n\n/**\n * Remove a child node from its parent if attached. This is a workaround for\n * IE11 which doesn't support `Element.prototype.remove()`. Using this function\n * is smaller than including a dedicated polyfill.\n * @param {Node} node The node to remove\n */\nexport function removeNode(node) {\n\tlet parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n\nexport const slice = EMPTY_ARR.slice;\n","import { _catchError } from './diff/catch-error';\n\n/**\n * The `option` object can potentially contain callback functions\n * that are called during various stages of our renderer. This is the\n * foundation on which all our addons like `preact/debug`, `preact/compat`,\n * and `preact/hooks` are based on. See the `Options` type in `internal.d.ts`\n * for a full list of available option hooks (most editors/IDEs allow you to\n * ctrl+click or cmd+click on mac the type definition below).\n * @type {import('./internal').Options}\n */\nconst options = {\n\t_catchError\n};\n\nexport default options;\n","import { slice } from './util';\nimport options from './options';\n\nlet vnodeId = 0;\n\n/**\n * Create an virtual node (used for JSX)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * constructor for this virtual node\n * @param {object | null | undefined} [props] The properties of the virtual node\n * @param {Array<import('.').ComponentChildren>} [children] The children of the virtual node\n * @returns {import('./internal').VNode}\n */\nexport function createElement(type, props, children) {\n\tlet normalizedProps = {},\n\t\tkey,\n\t\tref,\n\t\ti;\n\tfor (i in props) {\n\t\tif (i == 'key') key = props[i];\n\t\telse if (i == 'ref') ref = props[i];\n\t\telse normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 2) {\n\t\tnormalizedProps.children =\n\t\t\targuments.length > 3 ? slice.call(arguments, 2) : children;\n\t}\n\n\t// If a Component VNode, check for and apply defaultProps\n\t// Note: type may be undefined in development, must never error here.\n\tif (typeof type == 'function' && type.defaultProps != null) {\n\t\tfor (i in type.defaultProps) {\n\t\t\tif (normalizedProps[i] === undefined) {\n\t\t\t\tnormalizedProps[i] = type.defaultProps[i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn createVNode(type, normalizedProps, key, ref, null);\n}\n\n/**\n * Create a VNode (used internally by Preact)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * Constructor for this virtual node\n * @param {object | string | number | null} props The properties of this virtual node.\n * If this virtual node represents a text node, this is the text of the node (string or number).\n * @param {string | number | null} key The key for this virtual node, used when\n * diffing it against its children\n * @param {import('./internal').VNode[\"ref\"]} ref The ref property that will\n * receive a reference to its created child\n * @returns {import('./internal').VNode}\n */\nexport function createVNode(type, props, key, ref, original) {\n\t// V8 seems to be better at detecting type shapes if the object is allocated from the same call site\n\t// Do not inline into createElement and coerceToVNode!\n\tconst vnode = {\n\t\ttype,\n\t\tprops,\n\t\tkey,\n\t\tref,\n\t\t_children: null,\n\t\t_parent: null,\n\t\t_depth: 0,\n\t\t_dom: null,\n\t\t// _nextDom must be initialized to undefined b/c it will eventually\n\t\t// be set to dom.nextSibling which can return `null` and it is important\n\t\t// to be able to distinguish between an uninitialized _nextDom and\n\t\t// a _nextDom that has been set to `null`\n\t\t_nextDom: undefined,\n\t\t_component: null,\n\t\t_hydrating: null,\n\t\tconstructor: undefined,\n\t\t_original: original == null ? ++vnodeId : original\n\t};\n\n\tif (options.vnode != null) options.vnode(vnode);\n\n\treturn vnode;\n}\n\nexport function createRef() {\n\treturn { current: null };\n}\n\nexport function Fragment(props) {\n\treturn props.children;\n}\n\n/**\n * Check if a the argument is a valid Preact VNode.\n * @param {*} vnode\n * @returns {vnode is import('./internal').VNode}\n */\nexport const isValidElement = vnode =>\n\tvnode != null && vnode.constructor === undefined;\n","import { assign } from './util';\nimport { diff, commitRoot } from './diff/index';\nimport options from './options';\nimport { Fragment } from './create-element';\n\n/**\n * Base Component class. Provides `setState()` and `forceUpdate()`, which\n * trigger rendering\n * @param {object} props The initial component props\n * @param {object} context The initial context from parent components'\n * getChildContext\n */\nexport function Component(props, context) {\n\tthis.props = props;\n\tthis.context = context;\n}\n\n/**\n * Update component state and schedule a re-render.\n * @this {import('./internal').Component}\n * @param {object | ((s: object, p: object) => object)} update A hash of state\n * properties to update with new values or a function that given the current\n * state and props returns a new partial state\n * @param {() => void} [callback] A function to be called once component state is\n * updated\n */\nComponent.prototype.setState = function(update, callback) {\n\t// only clone state when copying to nextState the first time.\n\tlet s;\n\tif (this._nextState != null && this._nextState !== this.state) {\n\t\ts = this._nextState;\n\t} else {\n\t\ts = this._nextState = assign({}, this.state);\n\t}\n\n\tif (typeof update == 'function') {\n\t\t// Some libraries like `immer` mark the current state as readonly,\n\t\t// preventing us from mutating it, so we need to clone it. See #2716\n\t\tupdate = update(assign({}, s), this.props);\n\t}\n\n\tif (update) {\n\t\tassign(s, update);\n\t}\n\n\t// Skip update if updater function returned null\n\tif (update == null) return;\n\n\tif (this._vnode) {\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Immediately perform a synchronous re-render of the component\n * @this {import('./internal').Component}\n * @param {() => void} [callback] A function to be called after component is\n * re-rendered\n */\nComponent.prototype.forceUpdate = function(callback) {\n\tif (this._vnode) {\n\t\t// Set render mode so that we can differentiate where the render request\n\t\t// is coming from. We need this because forceUpdate should never call\n\t\t// shouldComponentUpdate\n\t\tthis._force = true;\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Accepts `props` and `state`, and returns a new Virtual DOM tree to build.\n * Virtual DOM is generally constructed via [JSX](http://jasonformat.com/wtf-is-jsx).\n * @param {object} props Props (eg: JSX attributes) received from parent\n * element/component\n * @param {object} state The component's current state\n * @param {object} context Context object, as returned by the nearest\n * ancestor's `getChildContext()`\n * @returns {import('./index').ComponentChildren | void}\n */\nComponent.prototype.render = Fragment;\n\n/**\n * @param {import('./internal').VNode} vnode\n * @param {number | null} [childIndex]\n */\nexport function getDomSibling(vnode, childIndex) {\n\tif (childIndex == null) {\n\t\t// Use childIndex==null as a signal to resume the search from the vnode's sibling\n\t\treturn vnode._parent\n\t\t\t? getDomSibling(vnode._parent, vnode._parent._children.indexOf(vnode) + 1)\n\t\t\t: null;\n\t}\n\n\tlet sibling;\n\tfor (; childIndex < vnode._children.length; childIndex++) {\n\t\tsibling = vnode._children[childIndex];\n\n\t\tif (sibling != null && sibling._dom != null) {\n\t\t\t// Since updateParentDomPointers keeps _dom pointer correct,\n\t\t\t// we can rely on _dom to tell us if this subtree contains a\n\t\t\t// rendered DOM node, and what the first rendered DOM node is\n\t\t\treturn sibling._dom;\n\t\t}\n\t}\n\n\t// If we get here, we have not found a DOM node in this vnode's children.\n\t// We must resume from this vnode's sibling (in it's parent _children array)\n\t// Only climb up and search the parent if we aren't searching through a DOM\n\t// VNode (meaning we reached the DOM parent of the original vnode that began\n\t// the search)\n\treturn typeof vnode.type == 'function' ? getDomSibling(vnode) : null;\n}\n\n/**\n * Trigger in-place re-rendering of a component.\n * @param {import('./internal').Component} component The component to rerender\n */\nfunction renderComponent(component) {\n\tlet vnode = component._vnode,\n\t\toldDom = vnode._dom,\n\t\tparentDom = component._parentDom;\n\n\tif (parentDom) {\n\t\tlet commitQueue = [];\n\t\tconst oldVNode = assign({}, vnode);\n\t\toldVNode._original = vnode._original + 1;\n\n\t\tdiff(\n\t\t\tparentDom,\n\t\t\tvnode,\n\t\t\toldVNode,\n\t\t\tcomponent._globalContext,\n\t\t\tparentDom.ownerSVGElement !== undefined,\n\t\t\tvnode._hydrating != null ? [oldDom] : null,\n\t\t\tcommitQueue,\n\t\t\toldDom == null ? getDomSibling(vnode) : oldDom,\n\t\t\tvnode._hydrating\n\t\t);\n\t\tcommitRoot(commitQueue, vnode);\n\n\t\tif (vnode._dom != oldDom) {\n\t\t\tupdateParentDomPointers(vnode);\n\t\t}\n\t}\n}\n\n/**\n * @param {import('./internal').VNode} vnode\n */\nfunction updateParentDomPointers(vnode) {\n\tif ((vnode = vnode._parent) != null && vnode._component != null) {\n\t\tvnode._dom = vnode._component.base = null;\n\t\tfor (let i = 0; i < vnode._children.length; i++) {\n\t\t\tlet child = vnode._children[i];\n\t\t\tif (child != null && child._dom != null) {\n\t\t\t\tvnode._dom = vnode._component.base = child._dom;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn updateParentDomPointers(vnode);\n\t}\n}\n\n/**\n * The render queue\n * @type {Array<import('./internal').Component>}\n */\nlet rerenderQueue = [];\n\n/**\n * Asynchronously schedule a callback\n * @type {(cb: () => void) => void}\n */\n/* istanbul ignore next */\n// Note the following line isn't tree-shaken by rollup cuz of rollup/rollup#2566\nconst defer =\n\ttypeof Promise == 'function'\n\t\t? Promise.prototype.then.bind(Promise.resolve())\n\t\t: setTimeout;\n\n/*\n * The value of `Component.debounce` must asynchronously invoke the passed in callback. It is\n * important that contributors to Preact can consistently reason about what calls to `setState`, etc.\n * do, and when their effects will be applied. See the links below for some further reading on designing\n * asynchronous APIs.\n * * [Designing APIs for Asynchrony](https://blog.izs.me/2013/08/designing-apis-for-asynchrony)\n * * [Callbacks synchronous and asynchronous](https://blog.ometer.com/2011/07/24/callbacks-synchronous-and-asynchronous/)\n */\n\nlet prevDebounce;\n\n/**\n * Enqueue a rerender of a component\n * @param {import('./internal').Component} c The component to rerender\n */\nexport function enqueueRender(c) {\n\tif (\n\t\t(!c._dirty &&\n\t\t\t(c._dirty = true) &&\n\t\t\trerenderQueue.push(c) &&\n\t\t\t!process._rerenderCount++) ||\n\t\tprevDebounce !== options.debounceRendering\n\t) {\n\t\tprevDebounce = options.debounceRendering;\n\t\t(prevDebounce || defer)(process);\n\t}\n}\n\n/** Flush the render queue by rerendering all queued components */\nfunction process() {\n\tlet queue;\n\twhile ((process._rerenderCount = rerenderQueue.length)) {\n\t\tqueue = rerenderQueue.sort((a, b) => a._vnode._depth - b._vnode._depth);\n\t\trerenderQueue = [];\n\t\t// Don't update `renderCount` yet. Keep its value non-zero to prevent unnecessary\n\t\t// process() calls from getting scheduled while `queue` is still being consumed.\n\t\tqueue.some(c => {\n\t\t\tif (c._dirty) renderComponent(c);\n\t\t});\n\t}\n}\nprocess._rerenderCount = 0;\n","import { enqueueRender } from './component';\n\nexport let i = 0;\n\nexport function createContext(defaultValue, contextId) {\n\tcontextId = '__cC' + i++;\n\n\tconst context = {\n\t\t_id: contextId,\n\t\t_defaultValue: defaultValue,\n\t\t/** @type {import('./internal').FunctionComponent} */\n\t\tConsumer(props, contextValue) {\n\t\t\t// return props.children(\n\t\t\t// \tcontext[contextId] ? context[contextId].props.value : defaultValue\n\t\t\t// );\n\t\t\treturn props.children(contextValue);\n\t\t},\n\t\t/** @type {import('./internal').FunctionComponent} */\n\t\tProvider(props) {\n\t\t\tif (!this.getChildContext) {\n\t\t\t\tlet subs = [];\n\t\t\t\tlet ctx = {};\n\t\t\t\tctx[contextId] = this;\n\n\t\t\t\tthis.getChildContext = () => ctx;\n\n\t\t\t\tthis.shouldComponentUpdate = function(_props) {\n\t\t\t\t\tif (this.props.value !== _props.value) {\n\t\t\t\t\t\t// I think the forced value propagation here was only needed when `options.debounceRendering` was being bypassed:\n\t\t\t\t\t\t// https://github.com/preactjs/preact/commit/4d339fb803bea09e9f198abf38ca1bf8ea4b7771#diff-54682ce380935a717e41b8bfc54737f6R358\n\t\t\t\t\t\t// In those cases though, even with the value corrected, we're double-rendering all nodes.\n\t\t\t\t\t\t// It might be better to just tell folks not to use force-sync mode.\n\t\t\t\t\t\t// Currently, using `useContext()` in a class component will overwrite its `this.context` value.\n\t\t\t\t\t\t// subs.some(c => {\n\t\t\t\t\t\t// \tc.context = _props.value;\n\t\t\t\t\t\t// \tenqueueRender(c);\n\t\t\t\t\t\t// });\n\n\t\t\t\t\t\t// subs.some(c => {\n\t\t\t\t\t\t// \tc.context[contextId] = _props.value;\n\t\t\t\t\t\t// \tenqueueRender(c);\n\t\t\t\t\t\t// });\n\t\t\t\t\t\tsubs.some(enqueueRender);\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tthis.sub = c => {\n\t\t\t\t\tsubs.push(c);\n\t\t\t\t\tlet old = c.componentWillUnmount;\n\t\t\t\t\tc.componentWillUnmount = () => {\n\t\t\t\t\t\tsubs.splice(subs.indexOf(c), 1);\n\t\t\t\t\t\tif (old) old.call(c);\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn props.children;\n\t\t}\n\t};\n\n\t// Devtools needs access to the context object when it\n\t// encounters a Provider. This is necessary to support\n\t// setting `displayName` on the context object instead\n\t// of on the component itself. See:\n\t// https://reactjs.org/docs/context.html#contextdisplayname\n\n\treturn (context.Provider._contextRef = context.Consumer.contextType = context);\n}\n","export const EMPTY_OBJ = {};\nexport const EMPTY_ARR = [];\nexport const IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;\n","import { diff, unmount, applyRef } from './index';\nimport { createVNode, Fragment } from '../create-element';\nimport { EMPTY_OBJ, EMPTY_ARR } from '../constants';\nimport { getDomSibling } from '../component';\n\n/**\n * Diff the children of a virtual node\n * @param {import('../internal').PreactElement} parentDom The DOM element whose\n * children are being diffed\n * @param {import('../internal').ComponentChildren[]} renderResult\n * @param {import('../internal').VNode} newParentVNode The new virtual\n * node whose children should be diff'ed against oldParentVNode\n * @param {import('../internal').VNode} oldParentVNode The old virtual\n * node whose children should be diff'ed against newParentVNode\n * @param {object} globalContext The current context object - modified by getChildContext\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {Array<import('../internal').PreactElement>} excessDomChildren\n * @param {Array<import('../internal').Component>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').PreactElement} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} isHydrating Whether or not we are in hydration\n */\nexport function diffChildren(\n\tparentDom,\n\trenderResult,\n\tnewParentVNode,\n\toldParentVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet i, j, oldVNode, childVNode, newDom, firstChildDom, refs;\n\n\t// This is a compression of oldParentVNode!=null && oldParentVNode != EMPTY_OBJ && oldParentVNode._children || EMPTY_ARR\n\t// as EMPTY_OBJ._children should be `undefined`.\n\tlet oldChildren = (oldParentVNode && oldParentVNode._children) || EMPTY_ARR;\n\n\tlet oldChildrenLength = oldChildren.length;\n\n\tnewParentVNode._children = [];\n\tfor (i = 0; i < renderResult.length; i++) {\n\t\tchildVNode = renderResult[i];\n\n\t\tif (childVNode == null || typeof childVNode == 'boolean') {\n\t\t\tchildVNode = newParentVNode._children[i] = null;\n\t\t}\n\t\t// If this newVNode is being reused (e.g. <div>{reuse}{reuse}</div>) in the same diff,\n\t\t// or we are rendering a component (e.g. setState) copy the oldVNodes so it can have\n\t\t// it's own DOM & etc. pointers\n\t\telse if (\n\t\t\ttypeof childVNode == 'string' ||\n\t\t\ttypeof childVNode == 'number' ||\n\t\t\t// eslint-disable-next-line valid-typeof\n\t\t\ttypeof childVNode == 'bigint'\n\t\t) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tnull,\n\t\t\t\tchildVNode,\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tchildVNode\n\t\t\t);\n\t\t} else if (Array.isArray(childVNode)) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tFragment,\n\t\t\t\t{ children: childVNode },\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tnull\n\t\t\t);\n\t\t} else if (childVNode._depth > 0) {\n\t\t\t// VNode is already in use, clone it. This can happen in the following\n\t\t\t// scenario:\n\t\t\t// const reuse = <div />\n\t\t\t// <div>{reuse}<span />{reuse}</div>\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tchildVNode.type,\n\t\t\t\tchildVNode.props,\n\t\t\t\tchildVNode.key,\n\t\t\t\tnull,\n\t\t\t\tchildVNode._original\n\t\t\t);\n\t\t} else {\n\t\t\tchildVNode = newParentVNode._children[i] = childVNode;\n\t\t}\n\n\t\t// Terser removes the `continue` here and wraps the loop body\n\t\t// in a `if (childVNode) { ... } condition\n\t\tif (childVNode == null) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tchildVNode._parent = newParentVNode;\n\t\tchildVNode._depth = newParentVNode._depth + 1;\n\n\t\t// Check if we find a corresponding element in oldChildren.\n\t\t// If found, delete the array item by setting to `undefined`.\n\t\t// We use `undefined`, as `null` is reserved for empty placeholders\n\t\t// (holes).\n\t\toldVNode = oldChildren[i];\n\n\t\tif (\n\t\t\toldVNode === null ||\n\t\t\t(oldVNode &&\n\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\tchildVNode.type === oldVNode.type)\n\t\t) {\n\t\t\toldChildren[i] = undefined;\n\t\t} else {\n\t\t\t// Either oldVNode === undefined or oldChildrenLength > 0,\n\t\t\t// so after this loop oldVNode == null or oldVNode is a valid value.\n\t\t\tfor (j = 0; j < oldChildrenLength; j++) {\n\t\t\t\toldVNode = oldChildren[j];\n\t\t\t\t// If childVNode is unkeyed, we only match similarly unkeyed nodes, otherwise we match by key.\n\t\t\t\t// We always match by type (in either case).\n\t\t\t\tif (\n\t\t\t\t\toldVNode &&\n\t\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\t\tchildVNode.type === oldVNode.type\n\t\t\t\t) {\n\t\t\t\t\toldChildren[j] = undefined;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\toldVNode = null;\n\t\t\t}\n\t\t}\n\n\t\toldVNode = oldVNode || EMPTY_OBJ;\n\n\t\t// Morph the old element into the new one, but don't append it to the dom yet\n\t\tdiff(\n\t\t\tparentDom,\n\t\t\tchildVNode,\n\t\t\toldVNode,\n\t\t\tglobalContext,\n\t\t\tisSvg,\n\t\t\texcessDomChildren,\n\t\t\tcommitQueue,\n\t\t\toldDom,\n\t\t\tisHydrating\n\t\t);\n\n\t\tnewDom = childVNode._dom;\n\n\t\tif ((j = childVNode.ref) && oldVNode.ref != j) {\n\t\t\tif (!refs) refs = [];\n\t\t\tif (oldVNode.ref) refs.push(oldVNode.ref, null, childVNode);\n\t\t\trefs.push(j, childVNode._component || newDom, childVNode);\n\t\t}\n\n\t\tif (newDom != null) {\n\t\t\tif (firstChildDom == null) {\n\t\t\t\tfirstChildDom = newDom;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\ttypeof childVNode.type == 'function' &&\n\t\t\t\tchildVNode._children != null && // Can be null if childVNode suspended\n\t\t\t\tchildVNode._children === oldVNode._children\n\t\t\t) {\n\t\t\t\tchildVNode._nextDom = oldDom = reorderChildren(\n\t\t\t\t\tchildVNode,\n\t\t\t\t\toldDom,\n\t\t\t\t\tparentDom\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\toldDom = placeChild(\n\t\t\t\t\tparentDom,\n\t\t\t\t\tchildVNode,\n\t\t\t\t\toldVNode,\n\t\t\t\t\toldChildren,\n\t\t\t\t\tnewDom,\n\t\t\t\t\toldDom\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Browsers will infer an option's `value` from `textContent` when\n\t\t\t// no value is present. This essentially bypasses our code to set it\n\t\t\t// later in `diff()`. It works fine in all browsers except for IE11\n\t\t\t// where it breaks setting `select.value`. There it will be always set\n\t\t\t// to an empty string. Re-applying an options value will fix that, so\n\t\t\t// there are probably some internal data structures that aren't\n\t\t\t// updated properly.\n\t\t\t//\n\t\t\t// To fix it we make sure to reset the inferred value, so that our own\n\t\t\t// value check in `diff()` won't be skipped.\n\t\t\tif (!isHydrating && newParentVNode.type === 'option') {\n\t\t\t\t// @ts-ignore We have validated that the type of parentDOM is 'option'\n\t\t\t\t// in the above check\n\t\t\t\tparentDom.value = '';\n\t\t\t} else if (typeof newParentVNode.type == 'function') {\n\t\t\t\t// Because the newParentVNode is Fragment-like, we need to set it's\n\t\t\t\t// _nextDom property to the nextSibling of its last child DOM node.\n\t\t\t\t//\n\t\t\t\t// `oldDom` contains the correct value here because if the last child\n\t\t\t\t// is a Fragment-like, then oldDom has already been set to that child's _nextDom.\n\t\t\t\t// If the last child is a DOM VNode, then oldDom will be set to that DOM\n\t\t\t\t// node's nextSibling.\n\t\t\t\tnewParentVNode._nextDom = oldDom;\n\t\t\t}\n\t\t} else if (\n\t\t\toldDom &&\n\t\t\toldVNode._dom == oldDom &&\n\t\t\toldDom.parentNode != parentDom\n\t\t) {\n\t\t\t// The above condition is to handle null placeholders. See test in placeholder.test.js:\n\t\t\t// `efficiently replace null placeholders in parent rerenders`\n\t\t\toldDom = getDomSibling(oldVNode);\n\t\t}\n\t}\n\n\tnewParentVNode._dom = firstChildDom;\n\n\t// Remove remaining oldChildren if there are any.\n\tfor (i = oldChildrenLength; i--; ) {\n\t\tif (oldChildren[i] != null) {\n\t\t\tif (\n\t\t\t\ttypeof newParentVNode.type == 'function' &&\n\t\t\t\toldChildren[i]._dom != null &&\n\t\t\t\toldChildren[i]._dom == newParentVNode._nextDom\n\t\t\t) {\n\t\t\t\t// If the newParentVNode.__nextDom points to a dom node that is about to\n\t\t\t\t// be unmounted, then get the next sibling of that vnode and set\n\t\t\t\t// _nextDom to it\n\t\t\t\tnewParentVNode._nextDom = getDomSibling(oldParentVNode, i + 1);\n\t\t\t}\n\n\t\t\tunmount(oldChildren[i], oldChildren[i]);\n\t\t}\n\t}\n\n\t// Set refs only after unmount\n\tif (refs) {\n\t\tfor (i = 0; i < refs.length; i++) {\n\t\t\tapplyRef(refs[i], refs[++i], refs[++i]);\n\t\t}\n\t}\n}\n\nfunction reorderChildren(childVNode, oldDom, parentDom) {\n\tfor (let tmp = 0; tmp < childVNode._children.length; tmp++) {\n\t\tlet vnode = childVNode._children[tmp];\n\t\tif (vnode) {\n\t\t\t// We typically enter this code path on sCU bailout, where we copy\n\t\t\t// oldVNode._children to newVNode._children. If that is the case, we need\n\t\t\t// to update the old children's _parent pointer to point to the newVNode\n\t\t\t// (childVNode here).\n\t\t\tvnode._parent = childVNode;\n\n\t\t\tif (typeof vnode.type == 'function') {\n\t\t\t\toldDom = reorderChildren(vnode, oldDom, parentDom);\n\t\t\t} else {\n\t\t\t\toldDom = placeChild(\n\t\t\t\t\tparentDom,\n\t\t\t\t\tvnode,\n\t\t\t\t\tvnode,\n\t\t\t\t\tchildVNode._children,\n\t\t\t\t\tvnode._dom,\n\t\t\t\t\toldDom\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn oldDom;\n}\n\n/**\n * Flatten and loop through the children of a virtual node\n * @param {import('../index').ComponentChildren} children The unflattened\n * children of a virtual node\n * @returns {import('../internal').VNode[]}\n */\nexport function toChildArray(children, out) {\n\tout = out || [];\n\tif (children == null || typeof children == 'boolean') {\n\t} else if (Array.isArray(children)) {\n\t\tchildren.some(child => {\n\t\t\ttoChildArray(child, out);\n\t\t});\n\t} else {\n\t\tout.push(children);\n\t}\n\treturn out;\n}\n\nfunction placeChild(\n\tparentDom,\n\tchildVNode,\n\toldVNode,\n\toldChildren,\n\tnewDom,\n\toldDom\n) {\n\tlet nextDom;\n\tif (childVNode._nextDom !== undefined) {\n\t\t// Only Fragments or components that return Fragment like VNodes will\n\t\t// have a non-undefined _nextDom. Continue the diff from the sibling\n\t\t// of last DOM child of this child VNode\n\t\tnextDom = childVNode._nextDom;\n\n\t\t// Eagerly cleanup _nextDom. We don't need to persist the value because\n\t\t// it is only used by `diffChildren` to determine where to resume the diff after\n\t\t// diffing Components and Fragments. Once we store it the nextDOM local var, we\n\t\t// can clean up the property\n\t\tchildVNode._nextDom = undefined;\n\t} else if (\n\t\toldVNode == null ||\n\t\tnewDom != oldDom ||\n\t\tnewDom.parentNode == null\n\t) {\n\t\touter: if (oldDom == null || oldDom.parentNode !== parentDom) {\n\t\t\tparentDom.appendChild(newDom);\n\t\t\tnextDom = null;\n\t\t} else {\n\t\t\t// `j<oldChildrenLength; j+=2` is an alternative to `j++<oldChildrenLength/2`\n\t\t\tfor (\n\t\t\t\tlet sibDom = oldDom, j = 0;\n\t\t\t\t(sibDom = sibDom.nextSibling) && j < oldChildren.length;\n\t\t\t\tj += 2\n\t\t\t) {\n\t\t\t\tif (sibDom == newDom) {\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t}\n\t\t\tparentDom.insertBefore(newDom, oldDom);\n\t\t\tnextDom = oldDom;\n\t\t}\n\t}\n\n\t// If we have pre-calculated the nextDOM node, use it. Else calculate it now\n\t// Strictly check for `undefined` here cuz `null` is a valid value of `nextDom`.\n\t// See more detail in create-element.js:createVNode\n\tif (nextDom !== undefined) {\n\t\toldDom = nextDom;\n\t} else {\n\t\toldDom = newDom.nextSibling;\n\t}\n\n\treturn oldDom;\n}\n","import { IS_NON_DIMENSIONAL } from '../constants';\nimport options from '../options';\n\n/**\n * Diff the old and new properties of a VNode and apply changes to the DOM node\n * @param {import('../internal').PreactElement} dom The DOM node to apply\n * changes to\n * @param {object} newProps The new props\n * @param {object} oldProps The old props\n * @param {boolean} isSvg Whether or not this node is an SVG node\n * @param {boolean} hydrate Whether or not we are in hydration mode\n */\nexport function diffProps(dom, newProps, oldProps, isSvg, hydrate) {\n\tlet i;\n\n\tfor (i in oldProps) {\n\t\tif (i !== 'children' && i !== 'key' && !(i in newProps)) {\n\t\t\tsetProperty(dom, i, null, oldProps[i], isSvg);\n\t\t}\n\t}\n\n\tfor (i in newProps) {\n\t\tif (\n\t\t\t(!hydrate || typeof newProps[i] == 'function') &&\n\t\t\ti !== 'children' &&\n\t\t\ti !== 'key' &&\n\t\t\ti !== 'value' &&\n\t\t\ti !== 'checked' &&\n\t\t\toldProps[i] !== newProps[i]\n\t\t) {\n\t\t\tsetProperty(dom, i, newProps[i], oldProps[i], isSvg);\n\t\t}\n\t}\n}\n\nfunction setStyle(style, key, value) {\n\tif (key[0] === '-') {\n\t\tstyle.setProperty(key, value);\n\t} else if (value == null) {\n\t\tstyle[key] = '';\n\t} else if (typeof value != 'number' || IS_NON_DIMENSIONAL.test(key)) {\n\t\tstyle[key] = value;\n\t} else {\n\t\tstyle[key] = value + 'px';\n\t}\n}\n\n/**\n * Set a property value on a DOM node\n * @param {import('../internal').PreactElement} dom The DOM node to modify\n * @param {string} name The name of the property to set\n * @param {*} value The value to set the property to\n * @param {*} oldValue The old value the property had\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node or not\n */\nexport function setProperty(dom, name, value, oldValue, isSvg) {\n\tlet useCapture;\n\n\to: if (name === 'style') {\n\t\tif (typeof value == 'string') {\n\t\t\tdom.style.cssText = value;\n\t\t} else {\n\t\t\tif (typeof oldValue == 'string') {\n\t\t\t\tdom.style.cssText = oldValue = '';\n\t\t\t}\n\n\t\t\tif (oldValue) {\n\t\t\t\tfor (name in oldValue) {\n\t\t\t\t\tif (!(value && name in value)) {\n\t\t\t\t\t\tsetStyle(dom.style, name, '');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (value) {\n\t\t\t\tfor (name in value) {\n\t\t\t\t\tif (!oldValue || value[name] !== oldValue[name]) {\n\t\t\t\t\t\tsetStyle(dom.style, name, value[name]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// Benchmark for comparison: https://esbench.com/bench/574c954bdb965b9a00965ac6\n\telse if (name[0] === 'o' && name[1] === 'n') {\n\t\tuseCapture = name !== (name = name.replace(/Capture$/, ''));\n\n\t\t// Infer correct casing for DOM built-in events:\n\t\tif (name.toLowerCase() in dom) name = name.toLowerCase().slice(2);\n\t\telse name = name.slice(2);\n\n\t\tif (!dom._listeners) dom._listeners = {};\n\t\tdom._listeners[name + useCapture] = value;\n\n\t\tif (value) {\n\t\t\tif (!oldValue) {\n\t\t\t\tconst handler = useCapture ? eventProxyCapture : eventProxy;\n\t\t\t\tdom.addEventListener(name, handler, useCapture);\n\t\t\t}\n\t\t} else {\n\t\t\tconst handler = useCapture ? eventProxyCapture : eventProxy;\n\t\t\tdom.removeEventListener(name, handler, useCapture);\n\t\t}\n\t} else if (name !== 'dangerouslySetInnerHTML') {\n\t\tif (isSvg) {\n\t\t\t// Normalize incorrect prop usage for SVG:\n\t\t\t// - xlink:href / xlinkHref --> href (xlink:href was removed from SVG and isn't needed)\n\t\t\t// - className --> class\n\t\t\tname = name.replace(/xlink[H:h]/, 'h').replace(/sName$/, 's');\n\t\t} else if (\n\t\t\tname !== 'href' &&\n\t\t\tname !== 'list' &&\n\t\t\tname !== 'form' &&\n\t\t\t// Default value in browsers is `-1` and an empty string is\n\t\t\t// cast to `0` instead\n\t\t\tname !== 'tabIndex' &&\n\t\t\tname !== 'download' &&\n\t\t\tname in dom\n\t\t) {\n\t\t\ttry {\n\t\t\t\tdom[name] = value == null ? '' : value;\n\t\t\t\t// labelled break is 1b smaller here than a return statement (sorry)\n\t\t\t\tbreak o;\n\t\t\t} catch (e) {}\n\t\t}\n\n\t\t// ARIA-attributes have a different notion of boolean values.\n\t\t// The value `false` is different from the attribute not\n\t\t// existing on the DOM, so we can't remove it. For non-boolean\n\t\t// ARIA-attributes we could treat false as a removal, but the\n\t\t// amount of exceptions would cost us too many bytes. On top of\n\t\t// that other VDOM frameworks also always stringify `false`.\n\n\t\tif (typeof value === 'function') {\n\t\t\t// never serialize functions as attribute values\n\t\t} else if (\n\t\t\tvalue != null &&\n\t\t\t(value !== false || (name[0] === 'a' && name[1] === 'r'))\n\t\t) {\n\t\t\tdom.setAttribute(name, value);\n\t\t} else {\n\t\t\tdom.removeAttribute(name);\n\t\t}\n\t}\n}\n\n/**\n * Proxy an event to hooked event handlers\n * @param {Event} e The event object from the browser\n * @private\n */\nfunction eventProxy(e) {\n\tthis._listeners[e.type + false](options.event ? options.event(e) : e);\n}\n\nfunction eventProxyCapture(e) {\n\tthis._listeners[e.type + true](options.event ? options.event(e) : e);\n}\n","import { EMPTY_OBJ } from '../constants';\nimport { Component, getDomSibling } from '../component';\nimport { Fragment } from '../create-element';\nimport { diffChildren } from './children';\nimport { diffProps, setProperty } from './props';\nimport { assign, removeNode, slice } from '../util';\nimport options from '../options';\n\n/**\n * Diff two virtual nodes and apply proper changes to the DOM\n * @param {import('../internal').PreactElement} parentDom The parent of the DOM element\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object. Modified by getChildContext\n * @param {boolean} isSvg Whether or not this element is an SVG node\n * @param {Array<import('../internal').PreactElement>} excessDomChildren\n * @param {Array<import('../internal').Component>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').PreactElement} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} [isHydrating] Whether or not we are in hydration\n */\nexport function diff(\n\tparentDom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet tmp,\n\t\tnewType = newVNode.type;\n\n\t// When passing through createElement it assigns the object\n\t// constructor as undefined. This to prevent JSON-injection.\n\tif (newVNode.constructor !== undefined) return null;\n\n\t// If the previous diff bailed out, resume creating/hydrating.\n\tif (oldVNode._hydrating != null) {\n\t\tisHydrating = oldVNode._hydrating;\n\t\toldDom = newVNode._dom = oldVNode._dom;\n\t\t// if we resume, we want the tree to be \"unlocked\"\n\t\tnewVNode._hydrating = null;\n\t\texcessDomChildren = [oldDom];\n\t}\n\n\tif ((tmp = options._diff)) tmp(newVNode);\n\n\ttry {\n\t\touter: if (typeof newType == 'function') {\n\t\t\tlet c, isNew, oldProps, oldState, snapshot, clearProcessingException;\n\t\t\tlet newProps = newVNode.props;\n\n\t\t\t// Necessary for createContext api. Setting this property will pass\n\t\t\t// the context value as `this.context` just for this component.\n\t\t\ttmp = newType.contextType;\n\t\t\tlet provider = tmp && globalContext[tmp._id];\n\t\t\tlet componentContext = tmp\n\t\t\t\t? provider\n\t\t\t\t\t? provider.props.value\n\t\t\t\t\t: tmp._defaultValue\n\t\t\t\t: globalContext;\n\n\t\t\t// Get component and set it to `c`\n\t\t\tif (oldVNode._component) {\n\t\t\t\tc = newVNode._component = oldVNode._component;\n\t\t\t\tclearProcessingException = c._processingException = c._pendingError;\n\t\t\t} else {\n\t\t\t\t// Instantiate the new component\n\t\t\t\tif ('prototype' in newType && newType.prototype.render) {\n\t\t\t\t\t// @ts-ignore The check above verifies that newType is suppose to be constructed\n\t\t\t\t\tnewVNode._component = c = new newType(newProps, componentContext); // eslint-disable-line new-cap\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-ignore Trust me, Component implements the interface we want\n\t\t\t\t\tnewVNode._component = c = new Component(newProps, componentContext);\n\t\t\t\t\tc.constructor = newType;\n\t\t\t\t\tc.render = doRender;\n\t\t\t\t}\n\t\t\t\tif (provider) provider.sub(c);\n\n\t\t\t\tc.props = newProps;\n\t\t\t\tif (!c.state) c.state = {};\n\t\t\t\tc.context = componentContext;\n\t\t\t\tc._globalContext = globalContext;\n\t\t\t\tisNew = c._dirty = true;\n\t\t\t\tc._renderCallbacks = [];\n\t\t\t}\n\n\t\t\t// Invoke getDerivedStateFromProps\n\t\t\tif (c._nextState == null) {\n\t\t\t\tc._nextState = c.state;\n\t\t\t}\n\t\t\tif (newType.getDerivedStateFromProps != null) {\n\t\t\t\tif (c._nextState == c.state) {\n\t\t\t\t\tc._nextState = assign({}, c._nextState);\n\t\t\t\t}\n\n\t\t\t\tassign(\n\t\t\t\t\tc._nextState,\n\t\t\t\t\tnewType.getDerivedStateFromProps(newProps, c._nextState)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\toldProps = c.props;\n\t\t\toldState = c.state;\n\n\t\t\t// Invoke pre-render lifecycle methods\n\t\t\tif (isNew) {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tc.componentWillMount != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillMount();\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidMount != null) {\n\t\t\t\t\tc._renderCallbacks.push(c.componentDidMount);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tnewProps !== oldProps &&\n\t\t\t\t\tc.componentWillReceiveProps != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillReceiveProps(newProps, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t(!c._force &&\n\t\t\t\t\t\tc.shouldComponentUpdate != null &&\n\t\t\t\t\t\tc.shouldComponentUpdate(\n\t\t\t\t\t\t\tnewProps,\n\t\t\t\t\t\t\tc._nextState,\n\t\t\t\t\t\t\tcomponentContext\n\t\t\t\t\t\t) === false) ||\n\t\t\t\t\tnewVNode._original === oldVNode._original\n\t\t\t\t) {\n\t\t\t\t\tc.props = newProps;\n\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t\t// More info about this here: https://gist.github.com/JoviDeCroock/bec5f2ce93544d2e6070ef8e0036e4e8\n\t\t\t\t\tif (newVNode._original !== oldVNode._original) c._dirty = false;\n\t\t\t\t\tc._vnode = newVNode;\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t\tnewVNode._children.forEach(vnode => {\n\t\t\t\t\t\tif (vnode) vnode._parent = newVNode;\n\t\t\t\t\t});\n\t\t\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\t\t\tcommitQueue.push(c);\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\n\t\t\t\tif (c.componentWillUpdate != null) {\n\t\t\t\t\tc.componentWillUpdate(newProps, c._nextState, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidUpdate != null) {\n\t\t\t\t\tc._renderCallbacks.push(() => {\n\t\t\t\t\t\tc.componentDidUpdate(oldProps, oldState, snapshot);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tc.context = componentContext;\n\t\t\tc.props = newProps;\n\t\t\tc.state = c._nextState;\n\n\t\t\tif ((tmp = options._render)) tmp(newVNode);\n\n\t\t\tc._dirty = false;\n\t\t\tc._vnode = newVNode;\n\t\t\tc._parentDom = parentDom;\n\n\t\t\ttmp = c.render(c.props, c.state, c.context);\n\n\t\t\t// Handle setState called in render, see #2553\n\t\t\tc.state = c._nextState;\n\n\t\t\tif (c.getChildContext != null) {\n\t\t\t\tglobalContext = assign(assign({}, globalContext), c.getChildContext());\n\t\t\t}\n\n\t\t\tif (!isNew && c.getSnapshotBeforeUpdate != null) {\n\t\t\t\tsnapshot = c.getSnapshotBeforeUpdate(oldProps, oldState);\n\t\t\t}\n\n\t\t\tlet isTopLevelFragment =\n\t\t\t\ttmp != null && tmp.type === Fragment && tmp.key == null;\n\t\t\tlet renderResult = isTopLevelFragment ? tmp.props.children : tmp;\n\n\t\t\tdiffChildren(\n\t\t\t\tparentDom,\n\t\t\t\tArray.isArray(renderResult) ? renderResult : [renderResult],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\toldDom,\n\t\t\t\tisHydrating\n\t\t\t);\n\n\t\t\tc.base = newVNode._dom;\n\n\t\t\t// We successfully rendered this VNode, unset any stored hydration/bailout state:\n\t\t\tnewVNode._hydrating = null;\n\n\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\tcommitQueue.push(c);\n\t\t\t}\n\n\t\t\tif (clearProcessingException) {\n\t\t\t\tc._pendingError = c._processingException = null;\n\t\t\t}\n\n\t\t\tc._force = false;\n\t\t} else if (\n\t\t\texcessDomChildren == null &&\n\t\t\tnewVNode._original === oldVNode._original\n\t\t) {\n\t\t\tnewVNode._children = oldVNode._children;\n\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t} else {\n\t\t\tnewVNode._dom = diffElementNodes(\n\t\t\t\toldVNode._dom,\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\tisHydrating\n\t\t\t);\n\t\t}\n\n\t\tif ((tmp = options.diffed)) tmp(newVNode);\n\t} catch (e) {\n\t\tnewVNode._original = null;\n\t\t// if hydrating or creating initial tree, bailout preserves DOM:\n\t\tif (isHydrating || excessDomChildren != null) {\n\t\t\tnewVNode._dom = oldDom;\n\t\t\tnewVNode._hydrating = !!isHydrating;\n\t\t\texcessDomChildren[excessDomChildren.indexOf(oldDom)] = null;\n\t\t\t// ^ could possibly be simplified to:\n\t\t\t// excessDomChildren.length = 0;\n\t\t}\n\t\toptions._catchError(e, newVNode, oldVNode);\n\t}\n}\n\n/**\n * @param {Array<import('../internal').Component>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').VNode} root\n */\nexport function commitRoot(commitQueue, root) {\n\tif (options._commit) options._commit(root, commitQueue);\n\n\tcommitQueue.some(c => {\n\t\ttry {\n\t\t\t// @ts-ignore Reuse the commitQueue variable here so the type changes\n\t\t\tcommitQueue = c._renderCallbacks;\n\t\t\tc._renderCallbacks = [];\n\t\t\tcommitQueue.some(cb => {\n\t\t\t\t// @ts-ignore See above ts-ignore on commitQueue\n\t\t\t\tcb.call(c);\n\t\t\t});\n\t\t} catch (e) {\n\t\t\toptions._catchError(e, c._vnode);\n\t\t}\n\t});\n}\n\n/**\n * Diff two virtual nodes representing DOM element\n * @param {import('../internal').PreactElement} dom The DOM element representing\n * the virtual nodes being diffed\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {*} excessDomChildren\n * @param {Array<import('../internal').Component>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @returns {import('../internal').PreactElement}\n */\nfunction diffElementNodes(\n\tdom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\tisHydrating\n) {\n\tlet oldProps = oldVNode.props;\n\tlet newProps = newVNode.props;\n\tlet nodeType = newVNode.type;\n\tlet i = 0;\n\n\t// Tracks entering and exiting SVG namespace when descending through the tree.\n\tif (nodeType === 'svg') isSvg = true;\n\n\tif (excessDomChildren != null) {\n\t\tfor (; i < excessDomChildren.length; i++) {\n\t\t\tconst child = excessDomChildren[i];\n\n\t\t\t// if newVNode matches an element in excessDomChildren or the `dom`\n\t\t\t// argument matches an element in excessDomChildren, remove it from\n\t\t\t// excessDomChildren so it isn't later removed in diffChildren\n\t\t\tif (\n\t\t\t\tchild &&\n\t\t\t\t(child === dom ||\n\t\t\t\t\t(nodeType ? child.localName == nodeType : child.nodeType == 3))\n\t\t\t) {\n\t\t\t\tdom = child;\n\t\t\t\texcessDomChildren[i] = null;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (dom == null) {\n\t\tif (nodeType === null) {\n\t\t\t// @ts-ignore createTextNode returns Text, we expect PreactElement\n\t\t\treturn document.createTextNode(newProps);\n\t\t}\n\n\t\tif (isSvg) {\n\t\t\tdom = document.createElementNS(\n\t\t\t\t'http://www.w3.org/2000/svg',\n\t\t\t\t// @ts-ignore We know `newVNode.type` is a string\n\t\t\t\tnodeType\n\t\t\t);\n\t\t} else {\n\t\t\tdom = document.createElement(\n\t\t\t\t// @ts-ignore We know `newVNode.type` is a string\n\t\t\t\tnodeType,\n\t\t\t\tnewProps.is && newProps\n\t\t\t);\n\t\t}\n\n\t\t// we created a new parent, so none of the previously attached children can be reused:\n\t\texcessDomChildren = null;\n\t\t// we are creating a new node, so we can assume this is a new subtree (in case we are hydrating), this deopts the hydrate\n\t\tisHydrating = false;\n\t}\n\n\tif (nodeType === null) {\n\t\t// During hydration, we still have to split merged text from SSR'd HTML.\n\t\tif (oldProps !== newProps && (!isHydrating || dom.data !== newProps)) {\n\t\t\tdom.data = newProps;\n\t\t}\n\t} else {\n\t\t// If excessDomChildren was not null, repopulate it with the current element's children:\n\t\texcessDomChildren = excessDomChildren && slice.call(dom.childNodes);\n\n\t\toldProps = oldVNode.props || EMPTY_OBJ;\n\n\t\tlet oldHtml = oldProps.dangerouslySetInnerHTML;\n\t\tlet newHtml = newProps.dangerouslySetInnerHTML;\n\n\t\t// During hydration, props are not diffed at all (including dangerouslySetInnerHTML)\n\t\t// @TODO we should warn in debug mode when props don't match here.\n\t\tif (!isHydrating) {\n\t\t\t// But, if we are in a situation where we are using existing DOM (e.g. replaceNode)\n\t\t\t// we should read the existing DOM attributes to diff them\n\t\t\tif (excessDomChildren != null) {\n\t\t\t\toldProps = {};\n\t\t\t\tfor (i = 0; i < dom.attributes.length; i++) {\n\t\t\t\t\toldProps[dom.attributes[i].name] = dom.attributes[i].value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (newHtml || oldHtml) {\n\t\t\t\t// Avoid re-applying the same '__html' if it did not changed between re-render\n\t\t\t\tif (\n\t\t\t\t\t!newHtml ||\n\t\t\t\t\t((!oldHtml || newHtml.__html != oldHtml.__html) &&\n\t\t\t\t\t\tnewHtml.__html !== dom.innerHTML)\n\t\t\t\t) {\n\t\t\t\t\tdom.innerHTML = (newHtml && newHtml.__html) || '';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tdiffProps(dom, newProps, oldProps, isSvg, isHydrating);\n\n\t\t// If the new vnode didn't have dangerouslySetInnerHTML, diff its children\n\t\tif (newHtml) {\n\t\t\tnewVNode._children = [];\n\t\t} else {\n\t\t\ti = newVNode.props.children;\n\t\t\tdiffChildren(\n\t\t\t\tdom,\n\t\t\t\tArray.isArray(i) ? i : [i],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg && nodeType !== 'foreignObject',\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\texcessDomChildren\n\t\t\t\t\t? excessDomChildren[0]\n\t\t\t\t\t: oldVNode._children && getDomSibling(oldVNode, 0),\n\t\t\t\tisHydrating\n\t\t\t);\n\n\t\t\t// Remove children that are not part of any vnode.\n\t\t\tif (excessDomChildren != null) {\n\t\t\t\tfor (i = excessDomChildren.length; i--; ) {\n\t\t\t\t\tif (excessDomChildren[i] != null) removeNode(excessDomChildren[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// (as above, don't diff props during hydration)\n\t\tif (!isHydrating) {\n\t\t\tif (\n\t\t\t\t'value' in newProps &&\n\t\t\t\t(i = newProps.value) !== undefined &&\n\t\t\t\t// #2756 For the <progress>-element the initial value is 0,\n\t\t\t\t// despite the attribute not being present. When the attribute\n\t\t\t\t// is missing the progress bar is treated as indeterminate.\n\t\t\t\t// To fix that we'll always update it when it is 0 for progress elements\n\t\t\t\t(i !== dom.value || (nodeType === 'progress' && !i))\n\t\t\t) {\n\t\t\t\tsetProperty(dom, 'value', i, oldProps.value, false);\n\t\t\t}\n\t\t\tif (\n\t\t\t\t'checked' in newProps &&\n\t\t\t\t(i = newProps.checked) !== undefined &&\n\t\t\t\ti !== dom.checked\n\t\t\t) {\n\t\t\t\tsetProperty(dom, 'checked', i, oldProps.checked, false);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn dom;\n}\n\n/**\n * Invoke or update a ref, depending on whether it is a function or object ref.\n * @param {object|function} ref\n * @param {any} value\n * @param {import('../internal').VNode} vnode\n */\nexport function applyRef(ref, value, vnode) {\n\ttry {\n\t\tif (typeof ref == 'function') ref(value);\n\t\telse ref.current = value;\n\t} catch (e) {\n\t\toptions._catchError(e, vnode);\n\t}\n}\n\n/**\n * Unmount a virtual node from the tree and apply DOM changes\n * @param {import('../internal').VNode} vnode The virtual node to unmount\n * @param {import('../internal').VNode} parentVNode The parent of the VNode that\n * initiated the unmount\n * @param {boolean} [skipRemove] Flag that indicates that a parent node of the\n * current element is already detached from the DOM.\n */\nexport function unmount(vnode, parentVNode, skipRemove) {\n\tlet r;\n\tif (options.unmount) options.unmount(vnode);\n\n\tif ((r = vnode.ref)) {\n\t\tif (!r.current || r.current === vnode._dom) applyRef(r, null, parentVNode);\n\t}\n\n\tif ((r = vnode._component) != null) {\n\t\tif (r.componentWillUnmount) {\n\t\t\ttry {\n\t\t\t\tr.componentWillUnmount();\n\t\t\t} catch (e) {\n\t\t\t\toptions._catchError(e, parentVNode);\n\t\t\t}\n\t\t}\n\n\t\tr.base = r._parentDom = null;\n\t}\n\n\tif ((r = vnode._children)) {\n\t\tfor (let i = 0; i < r.length; i++) {\n\t\t\tif (r[i]) {\n\t\t\t\tunmount(r[i], parentVNode, typeof vnode.type != 'function');\n\t\t\t}\n\t\t}\n\t}\n\n\tif (!skipRemove && vnode._dom != null) removeNode(vnode._dom);\n\n\t// Must be set to `undefined` to properly clean up `_nextDom`\n\t// for which `null` is a valid value. See comment in `create-element.js`\n\tvnode._dom = vnode._nextDom = undefined;\n}\n\n/** The `.render()` method for a PFC backing instance. */\nfunction doRender(props, state, context) {\n\treturn this.constructor(props, context);\n}\n","import { EMPTY_OBJ } from './constants';\nimport { commitRoot, diff } from './diff/index';\nimport { createElement, Fragment } from './create-element';\nimport options from './options';\nimport { slice } from './util';\n\n/**\n * Render a Preact virtual node into a DOM element\n * @param {import('./internal').ComponentChild} vnode The virtual node to render\n * @param {import('./internal').PreactElement} parentDom The DOM element to\n * render into\n * @param {import('./internal').PreactElement | object} [replaceNode] Optional: Attempt to re-use an\n * existing DOM tree rooted at `replaceNode`\n */\nexport function render(vnode, parentDom, replaceNode) {\n\tif (options._root) options._root(vnode, parentDom);\n\n\t// We abuse the `replaceNode` parameter in `hydrate()` to signal if we are in\n\t// hydration mode or not by passing the `hydrate` function instead of a DOM\n\t// element..\n\tlet isHydrating = typeof replaceNode === 'function';\n\n\t// To be able to support calling `render()` multiple times on the same\n\t// DOM node, we need to obtain a reference to the previous tree. We do\n\t// this by assigning a new `_children` property to DOM nodes which points\n\t// to the last rendered tree. By default this property is not present, which\n\t// means that we are mounting a new tree for the first time.\n\tlet oldVNode = isHydrating\n\t\t? null\n\t\t: (replaceNode && replaceNode._children) || parentDom._children;\n\n\tvnode = (\n\t\t(!isHydrating && replaceNode) ||\n\t\tparentDom\n\t)._children = createElement(Fragment, null, [vnode]);\n\n\t// List of effects that need to be called after diffing.\n\tlet commitQueue = [];\n\tdiff(\n\t\tparentDom,\n\t\t// Determine the new vnode tree and store it on the DOM element on\n\t\t// our custom `_children` property.\n\t\tvnode,\n\t\toldVNode || EMPTY_OBJ,\n\t\tEMPTY_OBJ,\n\t\tparentDom.ownerSVGElement !== undefined,\n\t\t!isHydrating && replaceNode\n\t\t\t? [replaceNode]\n\t\t\t: oldVNode\n\t\t\t? null\n\t\t\t: parentDom.firstChild\n\t\t\t? slice.call(parentDom.childNodes)\n\t\t\t: null,\n\t\tcommitQueue,\n\t\t!isHydrating && replaceNode\n\t\t\t? replaceNode\n\t\t\t: oldVNode\n\t\t\t? oldVNode._dom\n\t\t\t: parentDom.firstChild,\n\t\tisHydrating\n\t);\n\n\t// Flush all queued effects\n\tcommitRoot(commitQueue, vnode);\n}\n\n/**\n * Update an existing DOM element with data from a Preact virtual node\n * @param {import('./internal').ComponentChild} vnode The virtual node to render\n * @param {import('./internal').PreactElement} parentDom The DOM element to\n * update\n */\nexport function hydrate(vnode, parentDom) {\n\trender(vnode, parentDom, hydrate);\n}\n","/**\n * Find the closest error boundary to a thrown error and call it\n * @param {object} error The thrown value\n * @param {import('../internal').VNode} vnode The vnode that threw\n * the error that was caught (except for unmounting when this parameter\n * is the highest parent that was being unmounted)\n */\nexport function _catchError(error, vnode) {\n\t/** @type {import('../internal').Component} */\n\tlet component, ctor, handled;\n\n\tfor (; (vnode = vnode._parent); ) {\n\t\tif ((component = vnode._component) && !component._processingException) {\n\t\t\ttry {\n\t\t\t\tctor = component.constructor;\n\n\t\t\t\tif (ctor && ctor.getDerivedStateFromError != null) {\n\t\t\t\t\tcomponent.setState(ctor.getDerivedStateFromError(error));\n\t\t\t\t\thandled = component._dirty;\n\t\t\t\t}\n\n\t\t\t\tif (component.componentDidCatch != null) {\n\t\t\t\t\tcomponent.componentDidCatch(error);\n\t\t\t\t\thandled = component._dirty;\n\t\t\t\t}\n\n\t\t\t\t// This is an error boundary. Mark it as having bailed out, and whether it was mid-hydration.\n\t\t\t\tif (handled) {\n\t\t\t\t\treturn (component._pendingError = component);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\terror = e;\n\t\t\t}\n\t\t}\n\t}\n\n\tthrow error;\n}\n","import { assign, slice } from './util';\nimport { createVNode } from './create-element';\n\n/**\n * Clones the given VNode, optionally adding attributes/props and replacing its children.\n * @param {import('./internal').VNode} vnode The virtual DOM element to clone\n * @param {object} props Attributes/props to add when cloning\n * @param {Array<import('./internal').ComponentChildren>} rest Any additional arguments will be used as replacement children.\n * @returns {import('./internal').VNode}\n */\nexport function cloneElement(vnode, props, children) {\n\tlet normalizedProps = assign({}, vnode.props),\n\t\tkey,\n\t\tref,\n\t\ti;\n\tfor (i in props) {\n\t\tif (i == 'key') key = props[i];\n\t\telse if (i == 'ref') ref = props[i];\n\t\telse normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 2) {\n\t\tnormalizedProps.children =\n\t\t\targuments.length > 3 ? slice.call(arguments, 2) : children;\n\t}\n\n\treturn createVNode(\n\t\tvnode.type,\n\t\tnormalizedProps,\n\t\tkey || vnode.key,\n\t\tref || vnode.ref,\n\t\tnull\n\t);\n}\n","import * as preact from './index.js';\nif (typeof module < 'u') module.exports = preact;\nelse self.preact = preact;\n"],"names":["slice","options","vnodeId","isValidElement","rerenderQueue","defer","prevDebounce","i","EMPTY_OBJ","EMPTY_ARR","IS_NON_DIMENSIONAL","assign","obj","props","removeNode","node","parentNode","removeChild","createElement","type","children","key","ref","normalizedProps","arguments","length","call","defaultProps","undefined","createVNode","original","vnode","constructor","Fragment","Component","context","getDomSibling","childIndex","indexOf","sibling","updateParentDomPointers","child","base","enqueueRender","c","push","process","debounceRendering","queue","sort","a","b","some","component","commitQueue","oldVNode","oldDom","parentDom","diff","ownerSVGElement","commitRoot","diffChildren","renderResult","newParentVNode","oldParentVNode","globalContext","isSvg","excessDomChildren","isHydrating","j","childVNode","newDom","firstChildDom","refs","oldChildren","oldChildrenLength","Array","isArray","reorderChildren","placeChild","value","unmount","applyRef","tmp","nextDom","sibDom","outer","appendChild","nextSibling","insertBefore","diffProps","dom","newProps","oldProps","hydrate","setProperty","setStyle","style","test","name","oldValue","useCapture","o","cssText","replace","toLowerCase","_listeners","addEventListener","eventProxyCapture","eventProxy","removeEventListener","e","setAttribute","removeAttribute","event","newVNode","isNew","oldState","snapshot","clearProcessingException","provider","componentContext","newType","contextType","prototype","render","doRender","sub","state","getDerivedStateFromProps","componentWillMount","componentDidMount","componentWillReceiveProps","shouldComponentUpdate","forEach","componentWillUpdate","componentDidUpdate","getChildContext","getSnapshotBeforeUpdate","diffElementNodes","diffed","root","cb","oldHtml","newHtml","nodeType","localName","document","createTextNode","createElementNS","is","data","childNodes","dangerouslySetInnerHTML","attributes","innerHTML","checked","current","parentVNode","skipRemove","r","componentWillUnmount","this","replaceNode","firstChild","error","ctor","handled","getDerivedStateFromError","setState","componentDidCatch","update","callback","s","forceUpdate","Promise","then","bind","resolve","setTimeout","defaultValue","contextId","Consumer","contextValue","Provider","subs","ctx","_props","old","splice","toChildArray","out","module","exports","preact","self"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ var n,l,u,i,t,o,r,f,e={},c=[],s=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function a(n,l){for(var u in l)n[u]=l[u];return n}function h(n){var l=n.parentNode;l&&l.removeChild(n)}function v(l,u,i){var t,o,r,f={};for(r in u)"key"==r?t=u[r]:"ref"==r?o=u[r]:f[r]=u[r];if(arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):i),"function"==typeof l&&null!=l.defaultProps)for(r in l.defaultProps)void 0===f[r]&&(f[r]=l.defaultProps[r]);return y(l,f,t,o,null)}function y(n,i,t,o,r){var f={type:n,props:i,key:t,ref:o,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==r?++u:r};return null!=l.vnode&&l.vnode(f),f}function p(){return{current:null}}function d(n){return n.children}function _(n,l){this.props=n,this.context=l}function k(n,l){if(null==l)return n.__?k(n.__,n.__.__k.indexOf(n)+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return"function"==typeof n.type?k(n):null}function b(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return b(n)}}function m(n){(!n.__d&&(n.__d=!0)&&t.push(n)&&!g.__r++||r!==l.debounceRendering)&&((r=l.debounceRendering)||o)(g)}function g(){for(var n;g.__r=t.length;)n=t.sort(function(n,l){return n.__v.__b-l.__v.__b}),t=[],n.some(function(n){var l,u,i,t,o,r;n.__d&&(o=(t=(l=n).__v).__e,(r=l.__P)&&(u=[],(i=a({},t)).__v=t.__v+1,j(r,t,i,l.__n,void 0!==r.ownerSVGElement,null!=t.__h?[o]:null,u,null==o?k(t):o,t.__h),z(u,t),t.__e!=o&&b(t)))})}function w(n,l,u,i,t,o,r,f,s,a){var h,v,p,_,b,m,g,w=i&&i.__k||c,A=w.length;for(u.__k=[],h=0;h<l.length;h++)if(null!=(_=u.__k[h]=null==(_=l[h])||"boolean"==typeof _?null:"string"==typeof _||"number"==typeof _||"bigint"==typeof _?y(null,_,null,null,_):Array.isArray(_)?y(d,{children:_},null,null,null):_.__b>0?y(_.type,_.props,_.key,null,_.__v):_)){if(_.__=u,_.__b=u.__b+1,null===(p=w[h])||p&&_.key==p.key&&_.type===p.type)w[h]=void 0;else for(v=0;v<A;v++){if((p=w[v])&&_.key==p.key&&_.type===p.type){w[v]=void 0;break}p=null}j(n,_,p=p||e,t,o,r,f,s,a),b=_.__e,(v=_.ref)&&p.ref!=v&&(g||(g=[]),p.ref&&g.push(p.ref,null,_),g.push(v,_.__c||b,_)),null!=b?(null==m&&(m=b),"function"==typeof _.type&&null!=_.__k&&_.__k===p.__k?_.__d=s=x(_,s,n):s=P(n,_,p,w,b,s),a||"option"!==u.type?"function"==typeof u.type&&(u.__d=s):n.value=""):s&&p.__e==s&&s.parentNode!=n&&(s=k(p))}for(u.__e=m,h=A;h--;)null!=w[h]&&("function"==typeof u.type&&null!=w[h].__e&&w[h].__e==u.__d&&(u.__d=k(i,h+1)),N(w[h],w[h]));if(g)for(h=0;h<g.length;h++)M(g[h],g[++h],g[++h])}function x(n,l,u){var i,t;for(i=0;i<n.__k.length;i++)(t=n.__k[i])&&(t.__=n,l="function"==typeof t.type?x(t,l,u):P(u,t,t,n.__k,t.__e,l));return l}function A(n,l){return l=l||[],null==n||"boolean"==typeof n||(Array.isArray(n)?n.some(function(n){A(n,l)}):l.push(n)),l}function P(n,l,u,i,t,o){var r,f,e;if(void 0!==l.__d)r=l.__d,l.__d=void 0;else if(null==u||t!=o||null==t.parentNode)n:if(null==o||o.parentNode!==n)n.appendChild(t),r=null;else{for(f=o,e=0;(f=f.nextSibling)&&e<i.length;e+=2)if(f==t)break n;n.insertBefore(t,o),r=o}return void 0!==r?r:t.nextSibling}function C(n,l,u,i,t){var o;for(o in u)"children"===o||"key"===o||o in l||H(n,o,null,u[o],i);for(o in l)t&&"function"!=typeof l[o]||"children"===o||"key"===o||"value"===o||"checked"===o||u[o]===l[o]||H(n,o,l[o],u[o],i)}function $(n,l,u){"-"===l[0]?n.setProperty(l,u):n[l]=null==u?"":"number"!=typeof u||s.test(l)?u:u+"px"}function H(n,l,u,i,t){var o;n:if("style"===l)if("string"==typeof u)n.style.cssText=u;else{if("string"==typeof i&&(n.style.cssText=i=""),i)for(l in i)u&&l in u||$(n.style,l,"");if(u)for(l in u)i&&u[l]===i[l]||$(n.style,l,u[l])}else if("o"===l[0]&&"n"===l[1])o=l!==(l=l.replace(/Capture$/,"")),l=l.toLowerCase()in n?l.toLowerCase().slice(2):l.slice(2),n.l||(n.l={}),n.l[l+o]=u,u?i||n.addEventListener(l,o?T:I,o):n.removeEventListener(l,o?T:I,o);else if("dangerouslySetInnerHTML"!==l){if(t)l=l.replace(/xlink[H:h]/,"h").replace(/sName$/,"s");else if("href"!==l&&"list"!==l&&"form"!==l&&"tabIndex"!==l&&"download"!==l&&l in n)try{n[l]=null==u?"":u;break n}catch(n){}"function"==typeof u||(null!=u&&(!1!==u||"a"===l[0]&&"r"===l[1])?n.setAttribute(l,u):n.removeAttribute(l))}}function I(n){this.l[n.type+!1](l.event?l.event(n):n)}function T(n){this.l[n.type+!0](l.event?l.event(n):n)}function j(n,u,i,t,o,r,f,e,c){var s,h,v,y,p,k,b,m,g,x,A,P=u.type;if(void 0!==u.constructor)return null;null!=i.__h&&(c=i.__h,e=u.__e=i.__e,u.__h=null,r=[e]),(s=l.__b)&&s(u);try{n:if("function"==typeof P){if(m=u.props,g=(s=P.contextType)&&t[s.__c],x=s?g?g.props.value:s.__:t,i.__c?b=(h=u.__c=i.__c).__=h.__E:("prototype"in P&&P.prototype.render?u.__c=h=new P(m,x):(u.__c=h=new _(m,x),h.constructor=P,h.render=O),g&&g.sub(h),h.props=m,h.state||(h.state={}),h.context=x,h.__n=t,v=h.__d=!0,h.__h=[]),null==h.__s&&(h.__s=h.state),null!=P.getDerivedStateFromProps&&(h.__s==h.state&&(h.__s=a({},h.__s)),a(h.__s,P.getDerivedStateFromProps(m,h.__s))),y=h.props,p=h.state,v)null==P.getDerivedStateFromProps&&null!=h.componentWillMount&&h.componentWillMount(),null!=h.componentDidMount&&h.__h.push(h.componentDidMount);else{if(null==P.getDerivedStateFromProps&&m!==y&&null!=h.componentWillReceiveProps&&h.componentWillReceiveProps(m,x),!h.__e&&null!=h.shouldComponentUpdate&&!1===h.shouldComponentUpdate(m,h.__s,x)||u.__v===i.__v){h.props=m,h.state=h.__s,u.__v!==i.__v&&(h.__d=!1),h.__v=u,u.__e=i.__e,u.__k=i.__k,u.__k.forEach(function(n){n&&(n.__=u)}),h.__h.length&&f.push(h);break n}null!=h.componentWillUpdate&&h.componentWillUpdate(m,h.__s,x),null!=h.componentDidUpdate&&h.__h.push(function(){h.componentDidUpdate(y,p,k)})}h.context=x,h.props=m,h.state=h.__s,(s=l.__r)&&s(u),h.__d=!1,h.__v=u,h.__P=n,s=h.render(h.props,h.state,h.context),h.state=h.__s,null!=h.getChildContext&&(t=a(a({},t),h.getChildContext())),v||null==h.getSnapshotBeforeUpdate||(k=h.getSnapshotBeforeUpdate(y,p)),A=null!=s&&s.type===d&&null==s.key?s.props.children:s,w(n,Array.isArray(A)?A:[A],u,i,t,o,r,f,e,c),h.base=u.__e,u.__h=null,h.__h.length&&f.push(h),b&&(h.__E=h.__=null),h.__e=!1}else null==r&&u.__v===i.__v?(u.__k=i.__k,u.__e=i.__e):u.__e=L(i.__e,u,i,t,o,r,f,c);(s=l.diffed)&&s(u)}catch(n){u.__v=null,(c||null!=r)&&(u.__e=e,u.__h=!!c,r[r.indexOf(e)]=null),l.__e(n,u,i)}}function z(n,u){l.__c&&l.__c(u,n),n.some(function(u){try{n=u.__h,u.__h=[],n.some(function(n){n.call(u)})}catch(n){l.__e(n,u.__v)}})}function L(l,u,i,t,o,r,f,c){var s,a,v,y=i.props,p=u.props,d=u.type,_=0;if("svg"===d&&(o=!0),null!=r)for(;_<r.length;_++)if((s=r[_])&&(s===l||(d?s.localName==d:3==s.nodeType))){l=s,r[_]=null;break}if(null==l){if(null===d)return document.createTextNode(p);l=o?document.createElementNS("http://www.w3.org/2000/svg",d):document.createElement(d,p.is&&p),r=null,c=!1}if(null===d)y===p||c&&l.data===p||(l.data=p);else{if(r=r&&n.call(l.childNodes),a=(y=i.props||e).dangerouslySetInnerHTML,v=p.dangerouslySetInnerHTML,!c){if(null!=r)for(y={},_=0;_<l.attributes.length;_++)y[l.attributes[_].name]=l.attributes[_].value;(v||a)&&(v&&(a&&v.__html==a.__html||v.__html===l.innerHTML)||(l.innerHTML=v&&v.__html||""))}if(C(l,p,y,o,c),v)u.__k=[];else if(_=u.props.children,w(l,Array.isArray(_)?_:[_],u,i,t,o&&"foreignObject"!==d,r,f,r?r[0]:i.__k&&k(i,0),c),null!=r)for(_=r.length;_--;)null!=r[_]&&h(r[_]);c||("value"in p&&void 0!==(_=p.value)&&(_!==l.value||"progress"===d&&!_)&&H(l,"value",_,y.value,!1),"checked"in p&&void 0!==(_=p.checked)&&_!==l.checked&&H(l,"checked",_,y.checked,!1))}return l}function M(n,u,i){try{"function"==typeof n?n(u):n.current=u}catch(n){l.__e(n,i)}}function N(n,u,i){var t,o;if(l.unmount&&l.unmount(n),(t=n.ref)&&(t.current&&t.current!==n.__e||M(t,null,u)),null!=(t=n.__c)){if(t.componentWillUnmount)try{t.componentWillUnmount()}catch(n){l.__e(n,u)}t.base=t.__P=null}if(t=n.__k)for(o=0;o<t.length;o++)t[o]&&N(t[o],u,"function"!=typeof n.type);i||null==n.__e||h(n.__e),n.__e=n.__d=void 0}function O(n,l,u){return this.constructor(n,u)}function S(u,i,t){var o,r,f;l.__&&l.__(u,i),r=(o="function"==typeof t)?null:t&&t.__k||i.__k,f=[],j(i,u=(!o&&t||i).__k=v(d,null,[u]),r||e,e,void 0!==i.ownerSVGElement,!o&&t?[t]:r?null:i.firstChild?n.call(i.childNodes):null,f,!o&&t?t:r?r.__e:i.firstChild,o),z(f,u)}function q(n,l){S(n,l,q)}function B(l,u,i){var t,o,r,f=a({},l.props);for(r in u)"key"==r?t=u[r]:"ref"==r?o=u[r]:f[r]=u[r];return arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):i),y(l.type,f,t||l.key,o||l.ref,null)}function D(n,l){var u={__c:l="__cC"+f++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var u,i;return this.getChildContext||(u=[],(i={})[l]=this,this.getChildContext=function(){return i},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&u.some(m)},this.sub=function(n){u.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u.splice(u.indexOf(n),1),l&&l.call(n)}}),n.children}};return u.Provider.__=u.Consumer.contextType=u}n=c.slice,l={__e:function(n,l){for(var u,i,t;l=l.__;)if((u=l.__c)&&!u.__)try{if((i=u.constructor)&&null!=i.getDerivedStateFromError&&(u.setState(i.getDerivedStateFromError(n)),t=u.__d),null!=u.componentDidCatch&&(u.componentDidCatch(n),t=u.__d),t)return u.__E=u}catch(l){n=l}throw n}},u=0,i=function(n){return null!=n&&void 0===n.constructor},_.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=a({},this.state),"function"==typeof n&&(n=n(a({},u),this.props)),n&&a(u,n),null!=n&&this.__v&&(l&&this.__h.push(l),m(this))},_.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),m(this))},_.prototype.render=d,t=[],o="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,g.__r=0,f=0;export{S as render,q as hydrate,v as createElement,v as h,d as Fragment,p as createRef,i as isValidElement,_ as Component,B as cloneElement,D as createContext,A as toChildArray,l as options};
2
+ //# sourceMappingURL=preact.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preact.module.js","sources":["../src/constants.js","../src/options.js","../src/create-element.js","../src/component.js","../src/render.js","../src/create-context.js","../src/util.js","../src/diff/children.js","../src/diff/props.js","../src/diff/index.js","../src/clone-element.js","../src/diff/catch-error.js"],"sourcesContent":["export const EMPTY_OBJ = {};\nexport const EMPTY_ARR = [];\nexport const IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord/i;\n","import { _catchError } from './diff/catch-error';\n\n/**\n * The `option` object can potentially contain callback functions\n * that are called during various stages of our renderer. This is the\n * foundation on which all our addons like `preact/debug`, `preact/compat`,\n * and `preact/hooks` are based on. See the `Options` type in `internal.d.ts`\n * for a full list of available option hooks (most editors/IDEs allow you to\n * ctrl+click or cmd+click on mac the type definition below).\n * @type {import('./internal').Options}\n */\nconst options = {\n\t_catchError\n};\n\nexport default options;\n","import options from './options';\n\n/**\n * Create an virtual node (used for JSX)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * constructor for this virtual node\n * @param {object | null | undefined} [props] The properties of the virtual node\n * @param {Array<import('.').ComponentChildren>} [children] The children of the virtual node\n * @returns {import('./internal').VNode}\n */\nexport function createElement(type, props, children) {\n\tlet normalizedProps = {},\n\t\ti;\n\tfor (i in props) {\n\t\tif (i !== 'key' && i !== 'ref') normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 3) {\n\t\tchildren = [children];\n\t\t// https://github.com/preactjs/preact/issues/1916\n\t\tfor (i = 3; i < arguments.length; i++) {\n\t\t\tchildren.push(arguments[i]);\n\t\t}\n\t}\n\tif (children != null) {\n\t\tnormalizedProps.children = children;\n\t}\n\n\t// If a Component VNode, check for and apply defaultProps\n\t// Note: type may be undefined in development, must never error here.\n\tif (typeof type == 'function' && type.defaultProps != null) {\n\t\tfor (i in type.defaultProps) {\n\t\t\tif (normalizedProps[i] === undefined) {\n\t\t\t\tnormalizedProps[i] = type.defaultProps[i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn createVNode(\n\t\ttype,\n\t\tnormalizedProps,\n\t\tprops && props.key,\n\t\tprops && props.ref,\n\t\tnull\n\t);\n}\n\n/**\n * Create a VNode (used internally by Preact)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * Constructor for this virtual node\n * @param {object | string | number | null} props The properties of this virtual node.\n * If this virtual node represents a text node, this is the text of the node (string or number).\n * @param {string | number | null} key The key for this virtual node, used when\n * diffing it against its children\n * @param {import('./internal').VNode[\"ref\"]} ref The ref property that will\n * receive a reference to its created child\n * @returns {import('./internal').VNode}\n */\nexport function createVNode(type, props, key, ref, original) {\n\t// V8 seems to be better at detecting type shapes if the object is allocated from the same call site\n\t// Do not inline into createElement and coerceToVNode!\n\tconst vnode = {\n\t\ttype,\n\t\tprops,\n\t\tkey,\n\t\tref,\n\t\t_children: null,\n\t\t_parent: null,\n\t\t_depth: 0,\n\t\t_dom: null,\n\t\t// _nextDom must be initialized to undefined b/c it will eventually\n\t\t// be set to dom.nextSibling which can return `null` and it is important\n\t\t// to be able to distinguish between an uninitialized _nextDom and\n\t\t// a _nextDom that has been set to `null`\n\t\t_nextDom: undefined,\n\t\t_component: null,\n\t\tconstructor: undefined,\n\t\t_original: original\n\t};\n\n\tif (original == null) vnode._original = vnode;\n\tif (options.vnode) options.vnode(vnode);\n\n\treturn vnode;\n}\n\nexport function createRef() {\n\treturn {};\n}\n\nexport function Fragment(props) {\n\treturn props.children;\n}\n\n/**\n * Check if a the argument is a valid Preact VNode.\n * @param {*} vnode\n * @returns {vnode is import('./internal').VNode}\n */\nexport const isValidElement = vnode =>\n\tvnode != null && vnode.constructor === undefined;\n","import { assign } from './util';\nimport { diff, commitRoot } from './diff/index';\nimport options from './options';\nimport { Fragment } from './create-element';\n\n/**\n * Base Component class. Provides `setState()` and `forceUpdate()`, which\n * trigger rendering\n * @param {object} props The initial component props\n * @param {object} context The initial context from parent components'\n * getChildContext\n */\nexport function Component(props, context) {\n\tthis.props = props;\n\tthis.context = context;\n}\n\n/**\n * Update component state and schedule a re-render.\n * @param {object | ((s: object, p: object) => object)} update A hash of state\n * properties to update with new values or a function that given the current\n * state and props returns a new partial state\n * @param {() => void} [callback] A function to be called once component state is\n * updated\n */\nComponent.prototype.setState = function(update, callback) {\n\t// only clone state when copying to nextState the first time.\n\tlet s;\n\tif (this._nextState !== this.state) {\n\t\ts = this._nextState;\n\t} else {\n\t\ts = this._nextState = assign({}, this.state);\n\t}\n\n\tif (typeof update == 'function') {\n\t\tupdate = update(s, this.props);\n\t}\n\n\tif (update) {\n\t\tassign(s, update);\n\t}\n\n\t// Skip update if updater function returned null\n\tif (update == null) return;\n\n\tif (this._vnode) {\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Immediately perform a synchronous re-render of the component\n * @param {() => void} [callback] A function to be called after component is\n * re-rendered\n */\nComponent.prototype.forceUpdate = function(callback) {\n\tif (this._vnode) {\n\t\t// Set render mode so that we can differentiate where the render request\n\t\t// is coming from. We need this because forceUpdate should never call\n\t\t// shouldComponentUpdate\n\t\tthis._force = true;\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Accepts `props` and `state`, and returns a new Virtual DOM tree to build.\n * Virtual DOM is generally constructed via [JSX](http://jasonformat.com/wtf-is-jsx).\n * @param {object} props Props (eg: JSX attributes) received from parent\n * element/component\n * @param {object} state The component's current state\n * @param {object} context Context object, as returned by the nearest\n * ancestor's `getChildContext()`\n * @returns {import('./index').ComponentChildren | void}\n */\nComponent.prototype.render = Fragment;\n\n/**\n * @param {import('./internal').VNode} vnode\n * @param {number | null} [childIndex]\n */\nexport function getDomSibling(vnode, childIndex) {\n\tif (childIndex == null) {\n\t\t// Use childIndex==null as a signal to resume the search from the vnode's sibling\n\t\treturn vnode._parent\n\t\t\t? getDomSibling(vnode._parent, vnode._parent._children.indexOf(vnode) + 1)\n\t\t\t: null;\n\t}\n\n\tlet sibling;\n\tfor (; childIndex < vnode._children.length; childIndex++) {\n\t\tsibling = vnode._children[childIndex];\n\n\t\tif (sibling != null && sibling._dom != null) {\n\t\t\t// Since updateParentDomPointers keeps _dom pointer correct,\n\t\t\t// we can rely on _dom to tell us if this subtree contains a\n\t\t\t// rendered DOM node, and what the first rendered DOM node is\n\t\t\treturn sibling._dom;\n\t\t}\n\t}\n\n\t// If we get here, we have not found a DOM node in this vnode's children.\n\t// We must resume from this vnode's sibling (in it's parent _children array)\n\t// Only climb up and search the parent if we aren't searching through a DOM\n\t// VNode (meaning we reached the DOM parent of the original vnode that began\n\t// the search)\n\treturn typeof vnode.type == 'function' ? getDomSibling(vnode) : null;\n}\n\n/**\n * Trigger in-place re-rendering of a component.\n * @param {import('./internal').Component} component The component to rerender\n */\nfunction renderComponent(component) {\n\tlet vnode = component._vnode,\n\t\toldDom = vnode._dom,\n\t\tparentDom = component._parentDom;\n\n\tif (parentDom) {\n\t\tlet commitQueue = [];\n\t\tconst oldVNode = assign({}, vnode);\n\t\toldVNode._original = oldVNode;\n\n\t\tlet newDom = diff(\n\t\t\tparentDom,\n\t\t\tvnode,\n\t\t\toldVNode,\n\t\t\tcomponent._globalContext,\n\t\t\tparentDom.ownerSVGElement !== undefined,\n\t\t\tnull,\n\t\t\tcommitQueue,\n\t\t\toldDom == null ? getDomSibling(vnode) : oldDom\n\t\t);\n\t\tcommitRoot(commitQueue, vnode);\n\n\t\tif (newDom != oldDom) {\n\t\t\tupdateParentDomPointers(vnode);\n\t\t}\n\t}\n}\n\n/**\n * @param {import('./internal').VNode} vnode\n */\nfunction updateParentDomPointers(vnode) {\n\tif ((vnode = vnode._parent) != null && vnode._component != null) {\n\t\tvnode._dom = vnode._component.base = null;\n\t\tfor (let i = 0; i < vnode._children.length; i++) {\n\t\t\tlet child = vnode._children[i];\n\t\t\tif (child != null && child._dom != null) {\n\t\t\t\tvnode._dom = vnode._component.base = child._dom;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn updateParentDomPointers(vnode);\n\t}\n}\n\n/**\n * The render queue\n * @type {Array<import('./internal').Component>}\n */\nlet rerenderQueue = [];\nlet rerenderCount = 0;\n\n/**\n * Asynchronously schedule a callback\n * @type {(cb: () => void) => void}\n */\n/* istanbul ignore next */\n// Note the following line isn't tree-shaken by rollup cuz of rollup/rollup#2566\nconst defer =\n\ttypeof Promise == 'function'\n\t\t? Promise.prototype.then.bind(Promise.resolve())\n\t\t: setTimeout;\n\n/*\n * The value of `Component.debounce` must asynchronously invoke the passed in callback. It is\n * important that contributors to Preact can consistently reason about what calls to `setState`, etc.\n * do, and when their effects will be applied. See the links below for some further reading on designing\n * asynchronous APIs.\n * * [Designing APIs for Asynchrony](https://blog.izs.me/2013/08/designing-apis-for-asynchrony)\n * * [Callbacks synchronous and asynchronous](https://blog.ometer.com/2011/07/24/callbacks-synchronous-and-asynchronous/)\n */\n\nlet prevDebounce;\n\n/**\n * Enqueue a rerender of a component\n * @param {import('./internal').Component} c The component to rerender\n */\nexport function enqueueRender(c) {\n\tif (\n\t\t(!c._dirty &&\n\t\t\t(c._dirty = true) &&\n\t\t\trerenderQueue.push(c) &&\n\t\t\t!rerenderCount++) ||\n\t\tprevDebounce !== options.debounceRendering\n\t) {\n\t\tprevDebounce = options.debounceRendering;\n\t\t(prevDebounce || defer)(process);\n\t}\n}\n\n/** Flush the render queue by rerendering all queued components */\nfunction process() {\n\tlet queue;\n\twhile ((rerenderCount = rerenderQueue.length)) {\n\t\tqueue = rerenderQueue.sort((a, b) => a._vnode._depth - b._vnode._depth);\n\t\trerenderQueue = [];\n\t\t// Don't update `renderCount` yet. Keep its value non-zero to prevent unnecessary\n\t\t// process() calls from getting scheduled while `queue` is still being consumed.\n\t\tqueue.some(c => {\n\t\t\tif (c._dirty) renderComponent(c);\n\t\t});\n\t}\n}\n","import { EMPTY_OBJ, EMPTY_ARR } from './constants';\nimport { commitRoot, diff } from './diff/index';\nimport { createElement, Fragment } from './create-element';\nimport options from './options';\n\nconst IS_HYDRATE = EMPTY_OBJ;\n\n/**\n * Render a Preact virtual node into a DOM element\n * @param {import('./index').ComponentChild} vnode The virtual node to render\n * @param {import('./internal').PreactElement} parentDom The DOM element to\n * render into\n * @param {Element | Text} [replaceNode] Optional: Attempt to re-use an\n * existing DOM tree rooted at `replaceNode`\n */\nexport function render(vnode, parentDom, replaceNode) {\n\tif (options._root) options._root(vnode, parentDom);\n\n\t// We abuse the `replaceNode` parameter in `hydrate()` to signal if we\n\t// are in hydration mode or not by passing `IS_HYDRATE` instead of a\n\t// DOM element.\n\tlet isHydrating = replaceNode === IS_HYDRATE;\n\n\t// To be able to support calling `render()` multiple times on the same\n\t// DOM node, we need to obtain a reference to the previous tree. We do\n\t// this by assigning a new `_children` property to DOM nodes which points\n\t// to the last rendered tree. By default this property is not present, which\n\t// means that we are mounting a new tree for the first time.\n\tlet oldVNode = isHydrating\n\t\t? null\n\t\t: (replaceNode && replaceNode._children) || parentDom._children;\n\tvnode = createElement(Fragment, null, [vnode]);\n\n\t// List of effects that need to be called after diffing.\n\tlet commitQueue = [];\n\tdiff(\n\t\tparentDom,\n\t\t// Determine the new vnode tree and store it on the DOM element on\n\t\t// our custom `_children` property.\n\t\t((isHydrating ? parentDom : replaceNode || parentDom)._children = vnode),\n\t\toldVNode || EMPTY_OBJ,\n\t\tEMPTY_OBJ,\n\t\tparentDom.ownerSVGElement !== undefined,\n\t\treplaceNode && !isHydrating\n\t\t\t? [replaceNode]\n\t\t\t: oldVNode\n\t\t\t? null\n\t\t\t: EMPTY_ARR.slice.call(parentDom.childNodes),\n\t\tcommitQueue,\n\t\treplaceNode || EMPTY_OBJ,\n\t\tisHydrating\n\t);\n\n\t// Flush all queued effects\n\tcommitRoot(commitQueue, vnode);\n}\n\n/**\n * Update an existing DOM element with data from a Preact virtual node\n * @param {import('./index').ComponentChild} vnode The virtual node to render\n * @param {import('./internal').PreactElement} parentDom The DOM element to\n * update\n */\nexport function hydrate(vnode, parentDom) {\n\trender(vnode, parentDom, IS_HYDRATE);\n}\n","import { enqueueRender } from './component';\n\nexport let i = 0;\n\nexport function createContext(defaultValue) {\n\tconst ctx = {};\n\n\tconst context = {\n\t\t_id: '__cC' + i++,\n\t\t_defaultValue: defaultValue,\n\t\tConsumer(props, context) {\n\t\t\treturn props.children(context);\n\t\t},\n\t\tProvider(props) {\n\t\t\tif (!this.getChildContext) {\n\t\t\t\tconst subs = [];\n\t\t\t\tthis.getChildContext = () => {\n\t\t\t\t\tctx[context._id] = this;\n\t\t\t\t\treturn ctx;\n\t\t\t\t};\n\n\t\t\t\tthis.shouldComponentUpdate = _props => {\n\t\t\t\t\tif (this.props.value !== _props.value) {\n\t\t\t\t\t\tsubs.some(c => {\n\t\t\t\t\t\t\tc.context = _props.value;\n\t\t\t\t\t\t\tenqueueRender(c);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tthis.sub = c => {\n\t\t\t\t\tsubs.push(c);\n\t\t\t\t\tlet old = c.componentWillUnmount;\n\t\t\t\t\tc.componentWillUnmount = () => {\n\t\t\t\t\t\tsubs.splice(subs.indexOf(c), 1);\n\t\t\t\t\t\told && old.call(c);\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn props.children;\n\t\t}\n\t};\n\n\tcontext.Consumer.contextType = context;\n\n\t// Devtools needs access to the context object when it\n\t// encounters a Provider. This is necessary to support\n\t// setting `displayName` on the context object instead\n\t// of on the component itself. See:\n\t// https://reactjs.org/docs/context.html#contextdisplayname\n\tcontext.Provider._contextRef = context;\n\n\treturn context;\n}\n","/**\n * Assign properties from `props` to `obj`\n * @template O, P The obj and props types\n * @param {O} obj The object to copy properties to\n * @param {P} props The object to copy properties from\n * @returns {O & P}\n */\nexport function assign(obj, props) {\n\tfor (let i in props) obj[i] = props[i];\n\treturn /** @type {O & P} */ (obj);\n}\n\n/**\n * Remove a child node from its parent if attached. This is a workaround for\n * IE11 which doesn't support `Element.prototype.remove()`. Using this function\n * is smaller than including a dedicated polyfill.\n * @param {Node} node The node to remove\n */\nexport function removeNode(node) {\n\tlet parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n","import { diff, unmount, applyRef } from './index';\nimport { createVNode } from '../create-element';\nimport { EMPTY_OBJ, EMPTY_ARR } from '../constants';\nimport { removeNode } from '../util';\nimport { getDomSibling } from '../component';\n\n/**\n * Diff the children of a virtual node\n * @param {import('../internal').PreactElement} parentDom The DOM element whose\n * children are being diffed\n * @param {import('../internal').VNode} newParentVNode The new virtual\n * node whose children should be diff'ed against oldParentVNode\n * @param {import('../internal').VNode} oldParentVNode The old virtual\n * node whose children should be diff'ed against newParentVNode\n * @param {object} globalContext The current context object - modified by getChildContext\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {Array<import('../internal').PreactElement>} excessDomChildren\n * @param {Array<import('../internal').Component>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {Node | Text} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} isHydrating Whether or not we are in hydration\n */\nexport function diffChildren(\n\tparentDom,\n\tnewParentVNode,\n\toldParentVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet i, j, oldVNode, newDom, sibDom, firstChildDom, refs;\n\n\t// This is a compression of oldParentVNode!=null && oldParentVNode != EMPTY_OBJ && oldParentVNode._children || EMPTY_ARR\n\t// as EMPTY_OBJ._children should be `undefined`.\n\tlet oldChildren = (oldParentVNode && oldParentVNode._children) || EMPTY_ARR;\n\n\tlet oldChildrenLength = oldChildren.length;\n\n\t// Only in very specific places should this logic be invoked (top level `render` and `diffElementNodes`).\n\t// I'm using `EMPTY_OBJ` to signal when `diffChildren` is invoked in these situations. I can't use `null`\n\t// for this purpose, because `null` is a valid value for `oldDom` which can mean to skip to this logic\n\t// (e.g. if mounting a new tree in which the old DOM should be ignored (usually for Fragments).\n\tif (oldDom == EMPTY_OBJ) {\n\t\tif (excessDomChildren != null) {\n\t\t\toldDom = excessDomChildren[0];\n\t\t} else if (oldChildrenLength) {\n\t\t\toldDom = getDomSibling(oldParentVNode, 0);\n\t\t} else {\n\t\t\toldDom = null;\n\t\t}\n\t}\n\n\ti = 0;\n\tnewParentVNode._children = toChildArray(\n\t\tnewParentVNode._children,\n\t\tchildVNode => {\n\t\t\tif (childVNode != null) {\n\t\t\t\tchildVNode._parent = newParentVNode;\n\t\t\t\tchildVNode._depth = newParentVNode._depth + 1;\n\n\t\t\t\t// Check if we find a corresponding element in oldChildren.\n\t\t\t\t// If found, delete the array item by setting to `undefined`.\n\t\t\t\t// We use `undefined`, as `null` is reserved for empty placeholders\n\t\t\t\t// (holes).\n\t\t\t\toldVNode = oldChildren[i];\n\n\t\t\t\tif (\n\t\t\t\t\toldVNode === null ||\n\t\t\t\t\t(oldVNode &&\n\t\t\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\t\t\tchildVNode.type === oldVNode.type)\n\t\t\t\t) {\n\t\t\t\t\toldChildren[i] = undefined;\n\t\t\t\t} else {\n\t\t\t\t\t// Either oldVNode === undefined or oldChildrenLength > 0,\n\t\t\t\t\t// so after this loop oldVNode == null or oldVNode is a valid value.\n\t\t\t\t\tfor (j = 0; j < oldChildrenLength; j++) {\n\t\t\t\t\t\toldVNode = oldChildren[j];\n\t\t\t\t\t\t// If childVNode is unkeyed, we only match similarly unkeyed nodes, otherwise we match by key.\n\t\t\t\t\t\t// We always match by type (in either case).\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\toldVNode &&\n\t\t\t\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\t\t\t\tchildVNode.type === oldVNode.type\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\toldChildren[j] = undefined;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\toldVNode = null;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\toldVNode = oldVNode || EMPTY_OBJ;\n\n\t\t\t\t// Morph the old element into the new one, but don't append it to the dom yet\n\t\t\t\tnewDom = diff(\n\t\t\t\t\tparentDom,\n\t\t\t\t\tchildVNode,\n\t\t\t\t\toldVNode,\n\t\t\t\t\tglobalContext,\n\t\t\t\t\tisSvg,\n\t\t\t\t\texcessDomChildren,\n\t\t\t\t\tcommitQueue,\n\t\t\t\t\toldDom,\n\t\t\t\t\tisHydrating\n\t\t\t\t);\n\n\t\t\t\tif ((j = childVNode.ref) && oldVNode.ref != j) {\n\t\t\t\t\tif (!refs) refs = [];\n\t\t\t\t\tif (oldVNode.ref) refs.push(oldVNode.ref, null, childVNode);\n\t\t\t\t\trefs.push(j, childVNode._component || newDom, childVNode);\n\t\t\t\t}\n\n\t\t\t\t// Only proceed if the vnode has not been unmounted by `diff()` above.\n\t\t\t\tif (newDom != null) {\n\t\t\t\t\tif (firstChildDom == null) {\n\t\t\t\t\t\tfirstChildDom = newDom;\n\t\t\t\t\t}\n\n\t\t\t\t\tlet nextDom;\n\t\t\t\t\tif (childVNode._nextDom !== undefined) {\n\t\t\t\t\t\t// Only Fragments or components that return Fragment like VNodes will\n\t\t\t\t\t\t// have a non-undefined _nextDom. Continue the diff from the sibling\n\t\t\t\t\t\t// of last DOM child of this child VNode\n\t\t\t\t\t\tnextDom = childVNode._nextDom;\n\n\t\t\t\t\t\t// Eagerly cleanup _nextDom. We don't need to persist the value because\n\t\t\t\t\t\t// it is only used by `diffChildren` to determine where to resume the diff after\n\t\t\t\t\t\t// diffing Components and Fragments. Once we store it the nextDOM local var, we\n\t\t\t\t\t\t// can clean up the property\n\t\t\t\t\t\tchildVNode._nextDom = undefined;\n\t\t\t\t\t} else if (\n\t\t\t\t\t\texcessDomChildren == oldVNode ||\n\t\t\t\t\t\tnewDom != oldDom ||\n\t\t\t\t\t\tnewDom.parentNode == null\n\t\t\t\t\t) {\n\t\t\t\t\t\t// NOTE: excessDomChildren==oldVNode above:\n\t\t\t\t\t\t// This is a compression of excessDomChildren==null && oldVNode==null!\n\t\t\t\t\t\t// The values only have the same type when `null`.\n\n\t\t\t\t\t\touter: if (oldDom == null || oldDom.parentNode !== parentDom) {\n\t\t\t\t\t\t\tparentDom.appendChild(newDom);\n\t\t\t\t\t\t\tnextDom = null;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// `j<oldChildrenLength; j+=2` is an alternative to `j++<oldChildrenLength/2`\n\t\t\t\t\t\t\tfor (\n\t\t\t\t\t\t\t\tsibDom = oldDom, j = 0;\n\t\t\t\t\t\t\t\t(sibDom = sibDom.nextSibling) && j < oldChildrenLength;\n\t\t\t\t\t\t\t\tj += 2\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tif (sibDom == newDom) {\n\t\t\t\t\t\t\t\t\tbreak outer;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tparentDom.insertBefore(newDom, oldDom);\n\t\t\t\t\t\t\tnextDom = oldDom;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Browsers will infer an option's `value` from `textContent` when\n\t\t\t\t\t\t// no value is present. This essentially bypasses our code to set it\n\t\t\t\t\t\t// later in `diff()`. It works fine in all browsers except for IE11\n\t\t\t\t\t\t// where it breaks setting `select.value`. There it will be always set\n\t\t\t\t\t\t// to an empty string. Re-applying an options value will fix that, so\n\t\t\t\t\t\t// there are probably some internal data structures that aren't\n\t\t\t\t\t\t// updated properly.\n\t\t\t\t\t\t//\n\t\t\t\t\t\t// To fix it we make sure to reset the inferred value, so that our own\n\t\t\t\t\t\t// value check in `diff()` won't be skipped.\n\t\t\t\t\t\tif (newParentVNode.type == 'option') {\n\t\t\t\t\t\t\tparentDom.value = '';\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// If we have pre-calculated the nextDOM node, use it. Else calculate it now\n\t\t\t\t\t// Strictly check for `undefined` here cuz `null` is a valid value of `nextDom`.\n\t\t\t\t\t// See more detail in create-element.js:createVNode\n\t\t\t\t\tif (nextDom !== undefined) {\n\t\t\t\t\t\toldDom = nextDom;\n\t\t\t\t\t} else {\n\t\t\t\t\t\toldDom = newDom.nextSibling;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (typeof newParentVNode.type == 'function') {\n\t\t\t\t\t\t// Because the newParentVNode is Fragment-like, we need to set it's\n\t\t\t\t\t\t// _nextDom property to the nextSibling of its last child DOM node.\n\t\t\t\t\t\t//\n\t\t\t\t\t\t// `oldDom` contains the correct value here because if the last child\n\t\t\t\t\t\t// is a Fragment-like, then oldDom has already been set to that child's _nextDom.\n\t\t\t\t\t\t// If the last child is a DOM VNode, then oldDom will be set to that DOM\n\t\t\t\t\t\t// node's nextSibling.\n\n\t\t\t\t\t\tnewParentVNode._nextDom = oldDom;\n\t\t\t\t\t}\n\t\t\t\t} else if (\n\t\t\t\t\toldDom &&\n\t\t\t\t\toldVNode._dom == oldDom &&\n\t\t\t\t\toldDom.parentNode != parentDom\n\t\t\t\t) {\n\t\t\t\t\t// The above condition is to handle null placeholders. See test in placeholder.test.js:\n\t\t\t\t\t// `efficiently replace null placeholders in parent rerenders`\n\t\t\t\t\toldDom = getDomSibling(oldVNode);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ti++;\n\t\t\treturn childVNode;\n\t\t}\n\t);\n\n\tnewParentVNode._dom = firstChildDom;\n\n\t// Remove children that are not part of any vnode.\n\tif (excessDomChildren != null && typeof newParentVNode.type != 'function') {\n\t\tfor (i = excessDomChildren.length; i--; ) {\n\t\t\tif (excessDomChildren[i] != null) removeNode(excessDomChildren[i]);\n\t\t}\n\t}\n\n\t// Remove remaining oldChildren if there are any.\n\tfor (i = oldChildrenLength; i--; ) {\n\t\tif (oldChildren[i] != null) unmount(oldChildren[i], oldChildren[i]);\n\t}\n\n\t// Set refs only after unmount\n\tif (refs) {\n\t\tfor (i = 0; i < refs.length; i++) {\n\t\t\tapplyRef(refs[i], refs[++i], refs[++i]);\n\t\t}\n\t}\n}\n\n/**\n * Flatten and loop through the children of a virtual node\n * @param {import('../index').ComponentChildren} children The unflattened\n * children of a virtual node\n * @param {(vnode: import('../internal').VNode) => import('../internal').VNode} [callback]\n * A function to invoke for each child before it is added to the flattened list.\n * @param {Array<import('../internal').VNode | string | number>} [flattened] An flat array of children to modify\n * @returns {import('../internal').VNode[]}\n */\nexport function toChildArray(children, callback, flattened) {\n\tif (flattened == null) flattened = [];\n\n\tif (children == null || typeof children == 'boolean') {\n\t\tif (callback) flattened.push(callback(null));\n\t} else if (Array.isArray(children)) {\n\t\tfor (let i = 0; i < children.length; i++) {\n\t\t\ttoChildArray(children[i], callback, flattened);\n\t\t}\n\t} else if (!callback) {\n\t\tflattened.push(children);\n\t} else if (typeof children == 'string' || typeof children == 'number') {\n\t\tflattened.push(callback(createVNode(null, children, null, null, children)));\n\t} else if (children._dom != null || children._component != null) {\n\t\tflattened.push(\n\t\t\tcallback(\n\t\t\t\tcreateVNode(\n\t\t\t\t\tchildren.type,\n\t\t\t\t\tchildren.props,\n\t\t\t\t\tchildren.key,\n\t\t\t\t\tnull,\n\t\t\t\t\tchildren._original\n\t\t\t\t)\n\t\t\t)\n\t\t);\n\t} else {\n\t\tflattened.push(callback(children));\n\t}\n\n\treturn flattened;\n}\n","import { IS_NON_DIMENSIONAL } from '../constants';\nimport options from '../options';\n\n/**\n * Diff the old and new properties of a VNode and apply changes to the DOM node\n * @param {import('../internal').PreactElement} dom The DOM node to apply\n * changes to\n * @param {object} newProps The new props\n * @param {object} oldProps The old props\n * @param {boolean} isSvg Whether or not this node is an SVG node\n * @param {boolean} hydrate Whether or not we are in hydration mode\n */\nexport function diffProps(dom, newProps, oldProps, isSvg, hydrate) {\n\tlet i;\n\n\tfor (i in oldProps) {\n\t\tif (i !== 'children' && i !== 'key' && !(i in newProps)) {\n\t\t\tsetProperty(dom, i, null, oldProps[i], isSvg);\n\t\t}\n\t}\n\n\tfor (i in newProps) {\n\t\tif (\n\t\t\t(!hydrate || typeof newProps[i] == 'function') &&\n\t\t\ti !== 'children' &&\n\t\t\ti !== 'key' &&\n\t\t\toldProps[i] !== newProps[i]\n\t\t) {\n\t\t\tsetProperty(dom, i, newProps[i], oldProps[i], isSvg);\n\t\t}\n\t}\n}\n\nfunction setStyle(style, key, value) {\n\tif (key[0] === '-') {\n\t\tstyle.setProperty(key, value);\n\t} else if (\n\t\ttypeof value == 'number' &&\n\t\tIS_NON_DIMENSIONAL.test(key) === false\n\t) {\n\t\tstyle[key] = value + 'px';\n\t} else if (value == null) {\n\t\tstyle[key] = '';\n\t} else {\n\t\tstyle[key] = value;\n\t}\n}\n\n/**\n * Set a property value on a DOM node\n * @param {import('../internal').PreactElement} dom The DOM node to modify\n * @param {string} name The name of the property to set\n * @param {*} value The value to set the property to\n * @param {*} oldValue The old value the property had\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node or not\n */\nfunction setProperty(dom, name, value, oldValue, isSvg) {\n\tlet s, useCapture, nameLower;\n\n\tif (isSvg) {\n\t\tif (name === 'className') {\n\t\t\tname = 'class';\n\t\t}\n\t} else if (name === 'class') {\n\t\tname = 'className';\n\t}\n\n\tif (name === 'style') {\n\t\ts = dom.style;\n\n\t\tif (typeof value == 'string') {\n\t\t\ts.cssText = value;\n\t\t} else {\n\t\t\tif (typeof oldValue == 'string') {\n\t\t\t\ts.cssText = '';\n\t\t\t\toldValue = null;\n\t\t\t}\n\n\t\t\tif (oldValue) {\n\t\t\t\tfor (let i in oldValue) {\n\t\t\t\t\tif (!(value && i in value)) {\n\t\t\t\t\t\tsetStyle(s, i, '');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (value) {\n\t\t\t\tfor (let i in value) {\n\t\t\t\t\tif (!oldValue || value[i] !== oldValue[i]) {\n\t\t\t\t\t\tsetStyle(s, i, value[i]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// Benchmark for comparison: https://esbench.com/bench/574c954bdb965b9a00965ac6\n\telse if (name[0] === 'o' && name[1] === 'n') {\n\t\tuseCapture = name !== (name = name.replace(/Capture$/, ''));\n\t\tnameLower = name.toLowerCase();\n\t\tname = (nameLower in dom ? nameLower : name).slice(2);\n\n\t\tif (value) {\n\t\t\tif (!oldValue) dom.addEventListener(name, eventProxy, useCapture);\n\t\t\t(dom._listeners || (dom._listeners = {}))[name] = value;\n\t\t} else {\n\t\t\tdom.removeEventListener(name, eventProxy, useCapture);\n\t\t}\n\t} else if (\n\t\tname !== 'list' &&\n\t\tname !== 'tagName' &&\n\t\t// HTMLButtonElement.form and HTMLInputElement.form are read-only but can be set using\n\t\t// setAttribute\n\t\tname !== 'form' &&\n\t\tname !== 'type' &&\n\t\tname !== 'size' &&\n\t\t!isSvg &&\n\t\tname in dom\n\t) {\n\t\tdom[name] = value == null ? '' : value;\n\t} else if (typeof value != 'function' && name !== 'dangerouslySetInnerHTML') {\n\t\tif (name !== (name = name.replace(/^xlink:?/, ''))) {\n\t\t\tif (value == null || value === false) {\n\t\t\t\tdom.removeAttributeNS(\n\t\t\t\t\t'http://www.w3.org/1999/xlink',\n\t\t\t\t\tname.toLowerCase()\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tdom.setAttributeNS(\n\t\t\t\t\t'http://www.w3.org/1999/xlink',\n\t\t\t\t\tname.toLowerCase(),\n\t\t\t\t\tvalue\n\t\t\t\t);\n\t\t\t}\n\t\t} else if (\n\t\t\tvalue == null ||\n\t\t\t(value === false &&\n\t\t\t\t// ARIA-attributes have a different notion of boolean values.\n\t\t\t\t// The value `false` is different from the attribute not\n\t\t\t\t// existing on the DOM, so we can't remove it. For non-boolean\n\t\t\t\t// ARIA-attributes we could treat false as a removal, but the\n\t\t\t\t// amount of exceptions would cost us too many bytes. On top of\n\t\t\t\t// that other VDOM frameworks also always stringify `false`.\n\t\t\t\t!/^ar/.test(name))\n\t\t) {\n\t\t\tdom.removeAttribute(name);\n\t\t} else {\n\t\t\tdom.setAttribute(name, value);\n\t\t}\n\t}\n}\n\n/**\n * Proxy an event to hooked event handlers\n * @param {Event} e The event object from the browser\n * @private\n */\nfunction eventProxy(e) {\n\tthis._listeners[e.type](options.event ? options.event(e) : e);\n}\n","import { EMPTY_OBJ, EMPTY_ARR } from '../constants';\nimport { Component } from '../component';\nimport { Fragment } from '../create-element';\nimport { diffChildren } from './children';\nimport { diffProps } from './props';\nimport { assign, removeNode } from '../util';\nimport options from '../options';\n\n/**\n * Diff two virtual nodes and apply proper changes to the DOM\n * @param {import('../internal').PreactElement} parentDom The parent of the DOM element\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object. Modified by getChildContext\n * @param {boolean} isSvg Whether or not this element is an SVG node\n * @param {Array<import('../internal').PreactElement>} excessDomChildren\n * @param {Array<import('../internal').Component>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {Element | Text} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} [isHydrating] Whether or not we are in hydration\n */\nexport function diff(\n\tparentDom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet tmp,\n\t\tnewType = newVNode.type;\n\n\t// When passing through createElement it assigns the object\n\t// constructor as undefined. This to prevent JSON-injection.\n\tif (newVNode.constructor !== undefined) return null;\n\n\tif ((tmp = options._diff)) tmp(newVNode);\n\n\ttry {\n\t\touter: if (typeof newType == 'function') {\n\t\t\tlet c, isNew, oldProps, oldState, snapshot, clearProcessingException;\n\t\t\tlet newProps = newVNode.props;\n\n\t\t\t// Necessary for createContext api. Setting this property will pass\n\t\t\t// the context value as `this.context` just for this component.\n\t\t\ttmp = newType.contextType;\n\t\t\tlet provider = tmp && globalContext[tmp._id];\n\t\t\tlet componentContext = tmp\n\t\t\t\t? provider\n\t\t\t\t\t? provider.props.value\n\t\t\t\t\t: tmp._defaultValue\n\t\t\t\t: globalContext;\n\n\t\t\t// Get component and set it to `c`\n\t\t\tif (oldVNode._component) {\n\t\t\t\tc = newVNode._component = oldVNode._component;\n\t\t\t\tclearProcessingException = c._processingException = c._pendingError;\n\t\t\t} else {\n\t\t\t\t// Instantiate the new component\n\t\t\t\tif ('prototype' in newType && newType.prototype.render) {\n\t\t\t\t\tnewVNode._component = c = new newType(newProps, componentContext); // eslint-disable-line new-cap\n\t\t\t\t} else {\n\t\t\t\t\tnewVNode._component = c = new Component(newProps, componentContext);\n\t\t\t\t\tc.constructor = newType;\n\t\t\t\t\tc.render = doRender;\n\t\t\t\t}\n\t\t\t\tif (provider) provider.sub(c);\n\n\t\t\t\tc.props = newProps;\n\t\t\t\tif (!c.state) c.state = {};\n\t\t\t\tc.context = componentContext;\n\t\t\t\tc._globalContext = globalContext;\n\t\t\t\tisNew = c._dirty = true;\n\t\t\t\tc._renderCallbacks = [];\n\t\t\t}\n\n\t\t\t// Invoke getDerivedStateFromProps\n\t\t\tif (c._nextState == null) {\n\t\t\t\tc._nextState = c.state;\n\t\t\t}\n\t\t\tif (newType.getDerivedStateFromProps != null) {\n\t\t\t\tif (c._nextState == c.state) {\n\t\t\t\t\tc._nextState = assign({}, c._nextState);\n\t\t\t\t}\n\n\t\t\t\tassign(\n\t\t\t\t\tc._nextState,\n\t\t\t\t\tnewType.getDerivedStateFromProps(newProps, c._nextState)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\toldProps = c.props;\n\t\t\toldState = c.state;\n\n\t\t\t// Invoke pre-render lifecycle methods\n\t\t\tif (isNew) {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tc.componentWillMount != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillMount();\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidMount != null) {\n\t\t\t\t\tc._renderCallbacks.push(c.componentDidMount);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tnewProps !== oldProps &&\n\t\t\t\t\tc.componentWillReceiveProps != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillReceiveProps(newProps, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t(!c._force &&\n\t\t\t\t\t\tc.shouldComponentUpdate != null &&\n\t\t\t\t\t\tc.shouldComponentUpdate(\n\t\t\t\t\t\t\tnewProps,\n\t\t\t\t\t\t\tc._nextState,\n\t\t\t\t\t\t\tcomponentContext\n\t\t\t\t\t\t) === false) ||\n\t\t\t\t\t(newVNode._original === oldVNode._original && !c._processingException)\n\t\t\t\t) {\n\t\t\t\t\tc.props = newProps;\n\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t\t// More info about this here: https://gist.github.com/JoviDeCroock/bec5f2ce93544d2e6070ef8e0036e4e8\n\t\t\t\t\tif (newVNode._original !== oldVNode._original) c._dirty = false;\n\t\t\t\t\tc._vnode = newVNode;\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\t\t\tcommitQueue.push(c);\n\t\t\t\t\t}\n\n\t\t\t\t\tfor (tmp = 0; tmp < newVNode._children.length; tmp++) {\n\t\t\t\t\t\tif (newVNode._children[tmp]) {\n\t\t\t\t\t\t\tnewVNode._children[tmp]._parent = newVNode;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\n\t\t\t\tif (c.componentWillUpdate != null) {\n\t\t\t\t\tc.componentWillUpdate(newProps, c._nextState, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidUpdate != null) {\n\t\t\t\t\tc._renderCallbacks.push(() => {\n\t\t\t\t\t\tc.componentDidUpdate(oldProps, oldState, snapshot);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tc.context = componentContext;\n\t\t\tc.props = newProps;\n\t\t\tc.state = c._nextState;\n\n\t\t\tif ((tmp = options._render)) tmp(newVNode);\n\n\t\t\tc._dirty = false;\n\t\t\tc._vnode = newVNode;\n\t\t\tc._parentDom = parentDom;\n\n\t\t\ttmp = c.render(c.props, c.state, c.context);\n\t\t\tlet isTopLevelFragment =\n\t\t\t\ttmp != null && tmp.type == Fragment && tmp.key == null;\n\t\t\tnewVNode._children = isTopLevelFragment\n\t\t\t\t? tmp.props.children\n\t\t\t\t: Array.isArray(tmp)\n\t\t\t\t? tmp\n\t\t\t\t: [tmp];\n\n\t\t\tif (c.getChildContext != null) {\n\t\t\t\tglobalContext = assign(assign({}, globalContext), c.getChildContext());\n\t\t\t}\n\n\t\t\tif (!isNew && c.getSnapshotBeforeUpdate != null) {\n\t\t\t\tsnapshot = c.getSnapshotBeforeUpdate(oldProps, oldState);\n\t\t\t}\n\n\t\t\tdiffChildren(\n\t\t\t\tparentDom,\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\toldDom,\n\t\t\t\tisHydrating\n\t\t\t);\n\n\t\t\tc.base = newVNode._dom;\n\n\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\tcommitQueue.push(c);\n\t\t\t}\n\n\t\t\tif (clearProcessingException) {\n\t\t\t\tc._pendingError = c._processingException = null;\n\t\t\t}\n\n\t\t\tc._force = false;\n\t\t} else if (\n\t\t\texcessDomChildren == null &&\n\t\t\tnewVNode._original === oldVNode._original\n\t\t) {\n\t\t\tnewVNode._children = oldVNode._children;\n\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t} else {\n\t\t\tnewVNode._dom = diffElementNodes(\n\t\t\t\toldVNode._dom,\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\tisHydrating\n\t\t\t);\n\t\t}\n\n\t\tif ((tmp = options.diffed)) tmp(newVNode);\n\t} catch (e) {\n\t\tnewVNode._original = null;\n\t\toptions._catchError(e, newVNode, oldVNode);\n\t}\n\n\treturn newVNode._dom;\n}\n\n/**\n * @param {Array<import('../internal').Component>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').VNode} root\n */\nexport function commitRoot(commitQueue, root) {\n\tif (options._commit) options._commit(root, commitQueue);\n\n\tcommitQueue.some(c => {\n\t\ttry {\n\t\t\tcommitQueue = c._renderCallbacks;\n\t\t\tc._renderCallbacks = [];\n\t\t\tcommitQueue.some(cb => {\n\t\t\t\tcb.call(c);\n\t\t\t});\n\t\t} catch (e) {\n\t\t\toptions._catchError(e, c._vnode);\n\t\t}\n\t});\n}\n\n/**\n * Diff two virtual nodes representing DOM element\n * @param {import('../internal').PreactElement} dom The DOM element representing\n * the virtual nodes being diffed\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {*} excessDomChildren\n * @param {Array<import('../internal').Component>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @returns {import('../internal').PreactElement}\n */\nfunction diffElementNodes(\n\tdom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\tisHydrating\n) {\n\tlet i;\n\tlet oldProps = oldVNode.props;\n\tlet newProps = newVNode.props;\n\n\t// Tracks entering and exiting SVG namespace when descending through the tree.\n\tisSvg = newVNode.type === 'svg' || isSvg;\n\n\tif (excessDomChildren != null) {\n\t\tfor (i = 0; i < excessDomChildren.length; i++) {\n\t\t\tconst child = excessDomChildren[i];\n\n\t\t\t// if newVNode matches an element in excessDomChildren or the `dom`\n\t\t\t// argument matches an element in excessDomChildren, remove it from\n\t\t\t// excessDomChildren so it isn't later removed in diffChildren\n\t\t\tif (\n\t\t\t\tchild != null &&\n\t\t\t\t((newVNode.type === null\n\t\t\t\t\t? child.nodeType === 3\n\t\t\t\t\t: child.localName === newVNode.type) ||\n\t\t\t\t\tdom == child)\n\t\t\t) {\n\t\t\t\tdom = child;\n\t\t\t\texcessDomChildren[i] = null;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (dom == null) {\n\t\tif (newVNode.type === null) {\n\t\t\treturn document.createTextNode(newProps);\n\t\t}\n\n\t\tdom = isSvg\n\t\t\t? document.createElementNS('http://www.w3.org/2000/svg', newVNode.type)\n\t\t\t: document.createElement(\n\t\t\t\t\tnewVNode.type,\n\t\t\t\t\tnewProps.is && { is: newProps.is }\n\t\t\t );\n\t\t// we created a new parent, so none of the previously attached children can be reused:\n\t\texcessDomChildren = null;\n\t\t// we are creating a new node, so we can assume this is a new subtree (in case we are hydrating), this deopts the hydrate\n\t\tisHydrating = false;\n\t}\n\n\tif (newVNode.type === null) {\n\t\tif (oldProps !== newProps && dom.data != newProps) {\n\t\t\tdom.data = newProps;\n\t\t}\n\t} else {\n\t\tif (excessDomChildren != null) {\n\t\t\texcessDomChildren = EMPTY_ARR.slice.call(dom.childNodes);\n\t\t}\n\n\t\toldProps = oldVNode.props || EMPTY_OBJ;\n\n\t\tlet oldHtml = oldProps.dangerouslySetInnerHTML;\n\t\tlet newHtml = newProps.dangerouslySetInnerHTML;\n\n\t\t// During hydration, props are not diffed at all (including dangerouslySetInnerHTML)\n\t\t// @TODO we should warn in debug mode when props don't match here.\n\t\tif (!isHydrating) {\n\t\t\tif (oldProps === EMPTY_OBJ) {\n\t\t\t\toldProps = {};\n\t\t\t\tfor (let i = 0; i < dom.attributes.length; i++) {\n\t\t\t\t\toldProps[dom.attributes[i].name] = dom.attributes[i].value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (newHtml || oldHtml) {\n\t\t\t\t// Avoid re-applying the same '__html' if it did not changed between re-render\n\t\t\t\tif (!newHtml || !oldHtml || newHtml.__html != oldHtml.__html) {\n\t\t\t\t\tdom.innerHTML = (newHtml && newHtml.__html) || '';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tdiffProps(dom, newProps, oldProps, isSvg, isHydrating);\n\n\t\t// If the new vnode didn't have dangerouslySetInnerHTML, diff its children\n\t\tif (newHtml) {\n\t\t\tnewVNode._children = [];\n\t\t}\n\t\telse {\n\t\t\tnewVNode._children = newVNode.props.children;\n\t\t\tdiffChildren(\n\t\t\t\tdom,\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tnewVNode.type === 'foreignObject' ? false : isSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\tEMPTY_OBJ,\n\t\t\t\tisHydrating\n\t\t\t);\n\t\t}\n\n\t\t// (as above, don't diff props during hydration)\n\t\tif (!isHydrating) {\n\t\t\tif (\n\t\t\t\t'value' in newProps &&\n\t\t\t\tnewProps.value !== undefined &&\n\t\t\t\tnewProps.value !== dom.value\n\t\t\t) {\n\t\t\t\tdom.value = newProps.value == null ? '' : newProps.value;\n\t\t\t}\n\t\t\tif (\n\t\t\t\t'checked' in newProps &&\n\t\t\t\tnewProps.checked !== undefined &&\n\t\t\t\tnewProps.checked !== dom.checked\n\t\t\t) {\n\t\t\t\tdom.checked = newProps.checked;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn dom;\n}\n\n/**\n * Invoke or update a ref, depending on whether it is a function or object ref.\n * @param {object|function} ref\n * @param {any} value\n * @param {import('../internal').VNode} vnode\n */\nexport function applyRef(ref, value, vnode) {\n\ttry {\n\t\tif (typeof ref == 'function') ref(value);\n\t\telse ref.current = value;\n\t} catch (e) {\n\t\toptions._catchError(e, vnode);\n\t}\n}\n\n/**\n * Unmount a virtual node from the tree and apply DOM changes\n * @param {import('../internal').VNode} vnode The virtual node to unmount\n * @param {import('../internal').VNode} parentVNode The parent of the VNode that\n * initiated the unmount\n * @param {boolean} [skipRemove] Flag that indicates that a parent node of the\n * current element is already detached from the DOM.\n */\nexport function unmount(vnode, parentVNode, skipRemove) {\n\tlet r;\n\tif (options.unmount) options.unmount(vnode);\n\n\tif ((r = vnode.ref)) {\n\t\tif (!r.current || r.current === vnode._dom) applyRef(r, null, parentVNode);\n\t}\n\n\tlet dom;\n\tif (!skipRemove && typeof vnode.type != 'function') {\n\t\tskipRemove = (dom = vnode._dom) != null;\n\t}\n\n\t// Must be set to `undefined` to properly clean up `_nextDom`\n\t// for which `null` is a valid value. See comment in `create-element.js`\n\tvnode._dom = vnode._nextDom = undefined;\n\n\tif ((r = vnode._component) != null) {\n\t\tif (r.componentWillUnmount) {\n\t\t\ttry {\n\t\t\t\tr.componentWillUnmount();\n\t\t\t} catch (e) {\n\t\t\t\toptions._catchError(e, parentVNode);\n\t\t\t}\n\t\t}\n\n\t\tr.base = r._parentDom = null;\n\t}\n\n\tif ((r = vnode._children)) {\n\t\tfor (let i = 0; i < r.length; i++) {\n\t\t\tif (r[i]) unmount(r[i], parentVNode, skipRemove);\n\t\t}\n\t}\n\n\tif (dom != null) removeNode(dom);\n}\n\n/** The `.render()` method for a PFC backing instance. */\nfunction doRender(props, state, context) {\n\treturn this.constructor(props, context);\n}\n","import { assign } from './util';\nimport { EMPTY_ARR } from './constants';\nimport { createVNode } from './create-element';\n\n/**\n * Clones the given VNode, optionally adding attributes/props and replacing its children.\n * @param {import('./internal').VNode} vnode The virtual DOM element to clone\n * @param {object} props Attributes/props to add when cloning\n * @param {Array<import('./index').ComponentChildren>} rest Any additional arguments will be used as replacement children.\n * @returns {import('./internal').VNode}\n */\nexport function cloneElement(vnode, props) {\n\tprops = assign(assign({}, vnode.props), props);\n\tif (arguments.length > 2) props.children = EMPTY_ARR.slice.call(arguments, 2);\n\tlet normalizedProps = {};\n\tfor (const i in props) {\n\t\tif (i !== 'key' && i !== 'ref') normalizedProps[i] = props[i];\n\t}\n\n\treturn createVNode(\n\t\tvnode.type,\n\t\tnormalizedProps,\n\t\tprops.key || vnode.key,\n\t\tprops.ref || vnode.ref,\n\t\tnull\n\t);\n}\n","import { enqueueRender } from '../component';\n\n/**\n * Find the closest error boundary to a thrown error and call it\n * @param {object} error The thrown value\n * @param {import('../internal').VNode} vnode The vnode that threw\n * the error that was caught (except for unmounting when this parameter\n * is the highest parent that was being unmounted)\n */\nexport function _catchError(error, vnode) {\n\t/** @type {import('../internal').Component} */\n\tlet component, hasCaught;\n\n\tfor (; (vnode = vnode._parent); ) {\n\t\tif ((component = vnode._component) && !component._processingException) {\n\t\t\ttry {\n\t\t\t\tif (\n\t\t\t\t\tcomponent.constructor &&\n\t\t\t\t\tcomponent.constructor.getDerivedStateFromError != null\n\t\t\t\t) {\n\t\t\t\t\thasCaught = true;\n\t\t\t\t\tcomponent.setState(\n\t\t\t\t\t\tcomponent.constructor.getDerivedStateFromError(error)\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tif (component.componentDidCatch != null) {\n\t\t\t\t\thasCaught = true;\n\t\t\t\t\tcomponent.componentDidCatch(error);\n\t\t\t\t}\n\n\t\t\t\tif (hasCaught)\n\t\t\t\t\treturn enqueueRender((component._pendingError = component));\n\t\t\t} catch (e) {\n\t\t\t\terror = e;\n\t\t\t}\n\t\t}\n\t}\n\n\tthrow error;\n}\n"],"names":["options","isValidElement","rerenderQueue","rerenderCount","defer","prevDebounce","IS_HYDRATE","i","EMPTY_OBJ","EMPTY_ARR","IS_NON_DIMENSIONAL","assign","obj","props","removeNode","node","parentNode","removeChild","createElement","type","children","normalizedProps","arguments","length","push","defaultProps","undefined","createVNode","key","ref","original","vnode","_children","_parent","_depth","_dom","_nextDom","_component","constructor","_original","createRef","Fragment","Component","context","getDomSibling","childIndex","indexOf","sibling","updateParentDomPointers","child","base","enqueueRender","c","_dirty","debounceRendering","process","queue","sort","a","b","_vnode","some","component","commitQueue","oldVNode","newDom","oldDom","parentDom","_parentDom","diff","_globalContext","ownerSVGElement","commitRoot","diffChildren","newParentVNode","oldParentVNode","globalContext","isSvg","excessDomChildren","isHydrating","j","sibDom","firstChildDom","refs","oldChildren","oldChildrenLength","toChildArray","childVNode","nextDom","outer","appendChild","nextSibling","insertBefore","value","unmount","applyRef","callback","flattened","Array","isArray","diffProps","dom","newProps","oldProps","hydrate","setProperty","setStyle","style","test","name","oldValue","s","useCapture","nameLower","cssText","replace","toLowerCase","slice","addEventListener","eventProxy","_listeners","removeEventListener","removeAttributeNS","setAttributeNS","removeAttribute","setAttribute","e","event","newVNode","tmp","isNew","oldState","snapshot","clearProcessingException","provider","componentContext","newType","_diff","contextType","_id","_defaultValue","_processingException","_pendingError","prototype","render","doRender","sub","state","_renderCallbacks","_nextState","getDerivedStateFromProps","componentWillMount","componentDidMount","componentWillReceiveProps","_force","shouldComponentUpdate","componentWillUpdate","componentDidUpdate","_render","getChildContext","getSnapshotBeforeUpdate","diffElementNodes","diffed","_catchError","root","_commit","cb","call","oldHtml","newHtml","nodeType","localName","document","createTextNode","createElementNS","is","data","childNodes","dangerouslySetInnerHTML","attributes","__html","innerHTML","checked","current","parentVNode","skipRemove","r","componentWillUnmount","this","replaceNode","_root","cloneElement","createContext","defaultValue","ctx","Consumer","Provider","subs","_this","_props","old","splice","_contextRef","error","hasCaught","getDerivedStateFromError","setState","componentDidCatch","update","forceUpdate","Promise","then","bind","resolve","setTimeout"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ var n,l,u,i,t,o,r,f,e={},c=[],s=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function a(n,l){for(var u in l)n[u]=l[u];return n}function h(n){var l=n.parentNode;l&&l.removeChild(n)}function v(l,u,i){var t,o,r,f={};for(r in u)"key"==r?t=u[r]:"ref"==r?o=u[r]:f[r]=u[r];if(arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):i),"function"==typeof l&&null!=l.defaultProps)for(r in l.defaultProps)void 0===f[r]&&(f[r]=l.defaultProps[r]);return y(l,f,t,o,null)}function y(n,i,t,o,r){var f={type:n,props:i,key:t,ref:o,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==r?++u:r};return null!=l.vnode&&l.vnode(f),f}function p(){return{current:null}}function d(n){return n.children}function _(n,l){this.props=n,this.context=l}function k(n,l){if(null==l)return n.__?k(n.__,n.__.__k.indexOf(n)+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return"function"==typeof n.type?k(n):null}function b(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return b(n)}}function m(n){(!n.__d&&(n.__d=!0)&&t.push(n)&&!g.__r++||r!==l.debounceRendering)&&((r=l.debounceRendering)||o)(g)}function g(){for(var n;g.__r=t.length;)n=t.sort(function(n,l){return n.__v.__b-l.__v.__b}),t=[],n.some(function(n){var l,u,i,t,o,r;n.__d&&(o=(t=(l=n).__v).__e,(r=l.__P)&&(u=[],(i=a({},t)).__v=t.__v+1,j(r,t,i,l.__n,void 0!==r.ownerSVGElement,null!=t.__h?[o]:null,u,null==o?k(t):o,t.__h),z(u,t),t.__e!=o&&b(t)))})}function w(n,l,u,i,t,o,r,f,s,a){var h,v,p,_,b,m,g,w=i&&i.__k||c,A=w.length;for(u.__k=[],h=0;h<l.length;h++)if(null!=(_=u.__k[h]=null==(_=l[h])||"boolean"==typeof _?null:"string"==typeof _||"number"==typeof _||"bigint"==typeof _?y(null,_,null,null,_):Array.isArray(_)?y(d,{children:_},null,null,null):_.__b>0?y(_.type,_.props,_.key,null,_.__v):_)){if(_.__=u,_.__b=u.__b+1,null===(p=w[h])||p&&_.key==p.key&&_.type===p.type)w[h]=void 0;else for(v=0;v<A;v++){if((p=w[v])&&_.key==p.key&&_.type===p.type){w[v]=void 0;break}p=null}j(n,_,p=p||e,t,o,r,f,s,a),b=_.__e,(v=_.ref)&&p.ref!=v&&(g||(g=[]),p.ref&&g.push(p.ref,null,_),g.push(v,_.__c||b,_)),null!=b?(null==m&&(m=b),"function"==typeof _.type&&null!=_.__k&&_.__k===p.__k?_.__d=s=x(_,s,n):s=P(n,_,p,w,b,s),a||"option"!==u.type?"function"==typeof u.type&&(u.__d=s):n.value=""):s&&p.__e==s&&s.parentNode!=n&&(s=k(p))}for(u.__e=m,h=A;h--;)null!=w[h]&&("function"==typeof u.type&&null!=w[h].__e&&w[h].__e==u.__d&&(u.__d=k(i,h+1)),N(w[h],w[h]));if(g)for(h=0;h<g.length;h++)M(g[h],g[++h],g[++h])}function x(n,l,u){var i,t;for(i=0;i<n.__k.length;i++)(t=n.__k[i])&&(t.__=n,l="function"==typeof t.type?x(t,l,u):P(u,t,t,n.__k,t.__e,l));return l}function A(n,l){return l=l||[],null==n||"boolean"==typeof n||(Array.isArray(n)?n.some(function(n){A(n,l)}):l.push(n)),l}function P(n,l,u,i,t,o){var r,f,e;if(void 0!==l.__d)r=l.__d,l.__d=void 0;else if(null==u||t!=o||null==t.parentNode)n:if(null==o||o.parentNode!==n)n.appendChild(t),r=null;else{for(f=o,e=0;(f=f.nextSibling)&&e<i.length;e+=2)if(f==t)break n;n.insertBefore(t,o),r=o}return void 0!==r?r:t.nextSibling}function C(n,l,u,i,t){var o;for(o in u)"children"===o||"key"===o||o in l||H(n,o,null,u[o],i);for(o in l)t&&"function"!=typeof l[o]||"children"===o||"key"===o||"value"===o||"checked"===o||u[o]===l[o]||H(n,o,l[o],u[o],i)}function $(n,l,u){"-"===l[0]?n.setProperty(l,u):n[l]=null==u?"":"number"!=typeof u||s.test(l)?u:u+"px"}function H(n,l,u,i,t){var o;n:if("style"===l)if("string"==typeof u)n.style.cssText=u;else{if("string"==typeof i&&(n.style.cssText=i=""),i)for(l in i)u&&l in u||$(n.style,l,"");if(u)for(l in u)i&&u[l]===i[l]||$(n.style,l,u[l])}else if("o"===l[0]&&"n"===l[1])o=l!==(l=l.replace(/Capture$/,"")),l=l.toLowerCase()in n?l.toLowerCase().slice(2):l.slice(2),n.l||(n.l={}),n.l[l+o]=u,u?i||n.addEventListener(l,o?T:I,o):n.removeEventListener(l,o?T:I,o);else if("dangerouslySetInnerHTML"!==l){if(t)l=l.replace(/xlink[H:h]/,"h").replace(/sName$/,"s");else if("href"!==l&&"list"!==l&&"form"!==l&&"tabIndex"!==l&&"download"!==l&&l in n)try{n[l]=null==u?"":u;break n}catch(n){}"function"==typeof u||(null!=u&&(!1!==u||"a"===l[0]&&"r"===l[1])?n.setAttribute(l,u):n.removeAttribute(l))}}function I(n){this.l[n.type+!1](l.event?l.event(n):n)}function T(n){this.l[n.type+!0](l.event?l.event(n):n)}function j(n,u,i,t,o,r,f,e,c){var s,h,v,y,p,k,b,m,g,x,A,P=u.type;if(void 0!==u.constructor)return null;null!=i.__h&&(c=i.__h,e=u.__e=i.__e,u.__h=null,r=[e]),(s=l.__b)&&s(u);try{n:if("function"==typeof P){if(m=u.props,g=(s=P.contextType)&&t[s.__c],x=s?g?g.props.value:s.__:t,i.__c?b=(h=u.__c=i.__c).__=h.__E:("prototype"in P&&P.prototype.render?u.__c=h=new P(m,x):(u.__c=h=new _(m,x),h.constructor=P,h.render=O),g&&g.sub(h),h.props=m,h.state||(h.state={}),h.context=x,h.__n=t,v=h.__d=!0,h.__h=[]),null==h.__s&&(h.__s=h.state),null!=P.getDerivedStateFromProps&&(h.__s==h.state&&(h.__s=a({},h.__s)),a(h.__s,P.getDerivedStateFromProps(m,h.__s))),y=h.props,p=h.state,v)null==P.getDerivedStateFromProps&&null!=h.componentWillMount&&h.componentWillMount(),null!=h.componentDidMount&&h.__h.push(h.componentDidMount);else{if(null==P.getDerivedStateFromProps&&m!==y&&null!=h.componentWillReceiveProps&&h.componentWillReceiveProps(m,x),!h.__e&&null!=h.shouldComponentUpdate&&!1===h.shouldComponentUpdate(m,h.__s,x)||u.__v===i.__v){h.props=m,h.state=h.__s,u.__v!==i.__v&&(h.__d=!1),h.__v=u,u.__e=i.__e,u.__k=i.__k,u.__k.forEach(function(n){n&&(n.__=u)}),h.__h.length&&f.push(h);break n}null!=h.componentWillUpdate&&h.componentWillUpdate(m,h.__s,x),null!=h.componentDidUpdate&&h.__h.push(function(){h.componentDidUpdate(y,p,k)})}h.context=x,h.props=m,h.state=h.__s,(s=l.__r)&&s(u),h.__d=!1,h.__v=u,h.__P=n,s=h.render(h.props,h.state,h.context),h.state=h.__s,null!=h.getChildContext&&(t=a(a({},t),h.getChildContext())),v||null==h.getSnapshotBeforeUpdate||(k=h.getSnapshotBeforeUpdate(y,p)),A=null!=s&&s.type===d&&null==s.key?s.props.children:s,w(n,Array.isArray(A)?A:[A],u,i,t,o,r,f,e,c),h.base=u.__e,u.__h=null,h.__h.length&&f.push(h),b&&(h.__E=h.__=null),h.__e=!1}else null==r&&u.__v===i.__v?(u.__k=i.__k,u.__e=i.__e):u.__e=L(i.__e,u,i,t,o,r,f,c);(s=l.diffed)&&s(u)}catch(n){u.__v=null,(c||null!=r)&&(u.__e=e,u.__h=!!c,r[r.indexOf(e)]=null),l.__e(n,u,i)}}function z(n,u){l.__c&&l.__c(u,n),n.some(function(u){try{n=u.__h,u.__h=[],n.some(function(n){n.call(u)})}catch(n){l.__e(n,u.__v)}})}function L(l,u,i,t,o,r,f,c){var s,a,v,y=i.props,p=u.props,d=u.type,_=0;if("svg"===d&&(o=!0),null!=r)for(;_<r.length;_++)if((s=r[_])&&(s===l||(d?s.localName==d:3==s.nodeType))){l=s,r[_]=null;break}if(null==l){if(null===d)return document.createTextNode(p);l=o?document.createElementNS("http://www.w3.org/2000/svg",d):document.createElement(d,p.is&&p),r=null,c=!1}if(null===d)y===p||c&&l.data===p||(l.data=p);else{if(r=r&&n.call(l.childNodes),a=(y=i.props||e).dangerouslySetInnerHTML,v=p.dangerouslySetInnerHTML,!c){if(null!=r)for(y={},_=0;_<l.attributes.length;_++)y[l.attributes[_].name]=l.attributes[_].value;(v||a)&&(v&&(a&&v.__html==a.__html||v.__html===l.innerHTML)||(l.innerHTML=v&&v.__html||""))}if(C(l,p,y,o,c),v)u.__k=[];else if(_=u.props.children,w(l,Array.isArray(_)?_:[_],u,i,t,o&&"foreignObject"!==d,r,f,r?r[0]:i.__k&&k(i,0),c),null!=r)for(_=r.length;_--;)null!=r[_]&&h(r[_]);c||("value"in p&&void 0!==(_=p.value)&&(_!==l.value||"progress"===d&&!_)&&H(l,"value",_,y.value,!1),"checked"in p&&void 0!==(_=p.checked)&&_!==l.checked&&H(l,"checked",_,y.checked,!1))}return l}function M(n,u,i){try{"function"==typeof n?n(u):n.current=u}catch(n){l.__e(n,i)}}function N(n,u,i){var t,o;if(l.unmount&&l.unmount(n),(t=n.ref)&&(t.current&&t.current!==n.__e||M(t,null,u)),null!=(t=n.__c)){if(t.componentWillUnmount)try{t.componentWillUnmount()}catch(n){l.__e(n,u)}t.base=t.__P=null}if(t=n.__k)for(o=0;o<t.length;o++)t[o]&&N(t[o],u,"function"!=typeof n.type);i||null==n.__e||h(n.__e),n.__e=n.__d=void 0}function O(n,l,u){return this.constructor(n,u)}function S(u,i,t){var o,r,f;l.__&&l.__(u,i),r=(o="function"==typeof t)?null:t&&t.__k||i.__k,f=[],j(i,u=(!o&&t||i).__k=v(d,null,[u]),r||e,e,void 0!==i.ownerSVGElement,!o&&t?[t]:r?null:i.firstChild?n.call(i.childNodes):null,f,!o&&t?t:r?r.__e:i.firstChild,o),z(f,u)}function q(n,l){S(n,l,q)}function B(l,u,i){var t,o,r,f=a({},l.props);for(r in u)"key"==r?t=u[r]:"ref"==r?o=u[r]:f[r]=u[r];return arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):i),y(l.type,f,t||l.key,o||l.ref,null)}function D(n,l){var u={__c:l="__cC"+f++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var u,i;return this.getChildContext||(u=[],(i={})[l]=this,this.getChildContext=function(){return i},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&u.some(m)},this.sub=function(n){u.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u.splice(u.indexOf(n),1),l&&l.call(n)}}),n.children}};return u.Provider.__=u.Consumer.contextType=u}n=c.slice,l={__e:function(n,l){for(var u,i,t;l=l.__;)if((u=l.__c)&&!u.__)try{if((i=u.constructor)&&null!=i.getDerivedStateFromError&&(u.setState(i.getDerivedStateFromError(n)),t=u.__d),null!=u.componentDidCatch&&(u.componentDidCatch(n),t=u.__d),t)return u.__E=u}catch(l){n=l}throw n}},u=0,i=function(n){return null!=n&&void 0===n.constructor},_.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=a({},this.state),"function"==typeof n&&(n=n(a({},u),this.props)),n&&a(u,n),null!=n&&this.__v&&(l&&this.__h.push(l),m(this))},_.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),m(this))},_.prototype.render=d,t=[],o="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,g.__r=0,f=0;export{S as render,q as hydrate,v as createElement,v as h,d as Fragment,p as createRef,i as isValidElement,_ as Component,B as cloneElement,D as createContext,A as toChildArray,l as options};
2
+ //# sourceMappingURL=preact.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preact.module.js","sources":["../src/constants.js","../src/util.js","../src/options.js","../src/create-element.js","../src/component.js","../src/create-context.js","../src/diff/children.js","../src/diff/props.js","../src/diff/index.js","../src/render.js","../src/clone-element.js","../src/diff/catch-error.js"],"sourcesContent":["export const EMPTY_OBJ = {};\nexport const EMPTY_ARR = [];\nexport const IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;\n","import { EMPTY_ARR } from \"./constants\";\n\n/**\n * Assign properties from `props` to `obj`\n * @template O, P The obj and props types\n * @param {O} obj The object to copy properties to\n * @param {P} props The object to copy properties from\n * @returns {O & P}\n */\nexport function assign(obj, props) {\n\t// @ts-ignore We change the type of `obj` to be `O & P`\n\tfor (let i in props) obj[i] = props[i];\n\treturn /** @type {O & P} */ (obj);\n}\n\n/**\n * Remove a child node from its parent if attached. This is a workaround for\n * IE11 which doesn't support `Element.prototype.remove()`. Using this function\n * is smaller than including a dedicated polyfill.\n * @param {Node} node The node to remove\n */\nexport function removeNode(node) {\n\tlet parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n\nexport const slice = EMPTY_ARR.slice;\n","import { _catchError } from './diff/catch-error';\n\n/**\n * The `option` object can potentially contain callback functions\n * that are called during various stages of our renderer. This is the\n * foundation on which all our addons like `preact/debug`, `preact/compat`,\n * and `preact/hooks` are based on. See the `Options` type in `internal.d.ts`\n * for a full list of available option hooks (most editors/IDEs allow you to\n * ctrl+click or cmd+click on mac the type definition below).\n * @type {import('./internal').Options}\n */\nconst options = {\n\t_catchError\n};\n\nexport default options;\n","import { slice } from './util';\nimport options from './options';\n\nlet vnodeId = 0;\n\n/**\n * Create an virtual node (used for JSX)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * constructor for this virtual node\n * @param {object | null | undefined} [props] The properties of the virtual node\n * @param {Array<import('.').ComponentChildren>} [children] The children of the virtual node\n * @returns {import('./internal').VNode}\n */\nexport function createElement(type, props, children) {\n\tlet normalizedProps = {},\n\t\tkey,\n\t\tref,\n\t\ti;\n\tfor (i in props) {\n\t\tif (i == 'key') key = props[i];\n\t\telse if (i == 'ref') ref = props[i];\n\t\telse normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 2) {\n\t\tnormalizedProps.children =\n\t\t\targuments.length > 3 ? slice.call(arguments, 2) : children;\n\t}\n\n\t// If a Component VNode, check for and apply defaultProps\n\t// Note: type may be undefined in development, must never error here.\n\tif (typeof type == 'function' && type.defaultProps != null) {\n\t\tfor (i in type.defaultProps) {\n\t\t\tif (normalizedProps[i] === undefined) {\n\t\t\t\tnormalizedProps[i] = type.defaultProps[i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn createVNode(type, normalizedProps, key, ref, null);\n}\n\n/**\n * Create a VNode (used internally by Preact)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * Constructor for this virtual node\n * @param {object | string | number | null} props The properties of this virtual node.\n * If this virtual node represents a text node, this is the text of the node (string or number).\n * @param {string | number | null} key The key for this virtual node, used when\n * diffing it against its children\n * @param {import('./internal').VNode[\"ref\"]} ref The ref property that will\n * receive a reference to its created child\n * @returns {import('./internal').VNode}\n */\nexport function createVNode(type, props, key, ref, original) {\n\t// V8 seems to be better at detecting type shapes if the object is allocated from the same call site\n\t// Do not inline into createElement and coerceToVNode!\n\tconst vnode = {\n\t\ttype,\n\t\tprops,\n\t\tkey,\n\t\tref,\n\t\t_children: null,\n\t\t_parent: null,\n\t\t_depth: 0,\n\t\t_dom: null,\n\t\t// _nextDom must be initialized to undefined b/c it will eventually\n\t\t// be set to dom.nextSibling which can return `null` and it is important\n\t\t// to be able to distinguish between an uninitialized _nextDom and\n\t\t// a _nextDom that has been set to `null`\n\t\t_nextDom: undefined,\n\t\t_component: null,\n\t\t_hydrating: null,\n\t\tconstructor: undefined,\n\t\t_original: original == null ? ++vnodeId : original\n\t};\n\n\tif (options.vnode != null) options.vnode(vnode);\n\n\treturn vnode;\n}\n\nexport function createRef() {\n\treturn { current: null };\n}\n\nexport function Fragment(props) {\n\treturn props.children;\n}\n\n/**\n * Check if a the argument is a valid Preact VNode.\n * @param {*} vnode\n * @returns {vnode is import('./internal').VNode}\n */\nexport const isValidElement = vnode =>\n\tvnode != null && vnode.constructor === undefined;\n","import { assign } from './util';\nimport { diff, commitRoot } from './diff/index';\nimport options from './options';\nimport { Fragment } from './create-element';\n\n/**\n * Base Component class. Provides `setState()` and `forceUpdate()`, which\n * trigger rendering\n * @param {object} props The initial component props\n * @param {object} context The initial context from parent components'\n * getChildContext\n */\nexport function Component(props, context) {\n\tthis.props = props;\n\tthis.context = context;\n}\n\n/**\n * Update component state and schedule a re-render.\n * @this {import('./internal').Component}\n * @param {object | ((s: object, p: object) => object)} update A hash of state\n * properties to update with new values or a function that given the current\n * state and props returns a new partial state\n * @param {() => void} [callback] A function to be called once component state is\n * updated\n */\nComponent.prototype.setState = function(update, callback) {\n\t// only clone state when copying to nextState the first time.\n\tlet s;\n\tif (this._nextState != null && this._nextState !== this.state) {\n\t\ts = this._nextState;\n\t} else {\n\t\ts = this._nextState = assign({}, this.state);\n\t}\n\n\tif (typeof update == 'function') {\n\t\t// Some libraries like `immer` mark the current state as readonly,\n\t\t// preventing us from mutating it, so we need to clone it. See #2716\n\t\tupdate = update(assign({}, s), this.props);\n\t}\n\n\tif (update) {\n\t\tassign(s, update);\n\t}\n\n\t// Skip update if updater function returned null\n\tif (update == null) return;\n\n\tif (this._vnode) {\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Immediately perform a synchronous re-render of the component\n * @this {import('./internal').Component}\n * @param {() => void} [callback] A function to be called after component is\n * re-rendered\n */\nComponent.prototype.forceUpdate = function(callback) {\n\tif (this._vnode) {\n\t\t// Set render mode so that we can differentiate where the render request\n\t\t// is coming from. We need this because forceUpdate should never call\n\t\t// shouldComponentUpdate\n\t\tthis._force = true;\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Accepts `props` and `state`, and returns a new Virtual DOM tree to build.\n * Virtual DOM is generally constructed via [JSX](http://jasonformat.com/wtf-is-jsx).\n * @param {object} props Props (eg: JSX attributes) received from parent\n * element/component\n * @param {object} state The component's current state\n * @param {object} context Context object, as returned by the nearest\n * ancestor's `getChildContext()`\n * @returns {import('./index').ComponentChildren | void}\n */\nComponent.prototype.render = Fragment;\n\n/**\n * @param {import('./internal').VNode} vnode\n * @param {number | null} [childIndex]\n */\nexport function getDomSibling(vnode, childIndex) {\n\tif (childIndex == null) {\n\t\t// Use childIndex==null as a signal to resume the search from the vnode's sibling\n\t\treturn vnode._parent\n\t\t\t? getDomSibling(vnode._parent, vnode._parent._children.indexOf(vnode) + 1)\n\t\t\t: null;\n\t}\n\n\tlet sibling;\n\tfor (; childIndex < vnode._children.length; childIndex++) {\n\t\tsibling = vnode._children[childIndex];\n\n\t\tif (sibling != null && sibling._dom != null) {\n\t\t\t// Since updateParentDomPointers keeps _dom pointer correct,\n\t\t\t// we can rely on _dom to tell us if this subtree contains a\n\t\t\t// rendered DOM node, and what the first rendered DOM node is\n\t\t\treturn sibling._dom;\n\t\t}\n\t}\n\n\t// If we get here, we have not found a DOM node in this vnode's children.\n\t// We must resume from this vnode's sibling (in it's parent _children array)\n\t// Only climb up and search the parent if we aren't searching through a DOM\n\t// VNode (meaning we reached the DOM parent of the original vnode that began\n\t// the search)\n\treturn typeof vnode.type == 'function' ? getDomSibling(vnode) : null;\n}\n\n/**\n * Trigger in-place re-rendering of a component.\n * @param {import('./internal').Component} component The component to rerender\n */\nfunction renderComponent(component) {\n\tlet vnode = component._vnode,\n\t\toldDom = vnode._dom,\n\t\tparentDom = component._parentDom;\n\n\tif (parentDom) {\n\t\tlet commitQueue = [];\n\t\tconst oldVNode = assign({}, vnode);\n\t\toldVNode._original = vnode._original + 1;\n\n\t\tdiff(\n\t\t\tparentDom,\n\t\t\tvnode,\n\t\t\toldVNode,\n\t\t\tcomponent._globalContext,\n\t\t\tparentDom.ownerSVGElement !== undefined,\n\t\t\tvnode._hydrating != null ? [oldDom] : null,\n\t\t\tcommitQueue,\n\t\t\toldDom == null ? getDomSibling(vnode) : oldDom,\n\t\t\tvnode._hydrating\n\t\t);\n\t\tcommitRoot(commitQueue, vnode);\n\n\t\tif (vnode._dom != oldDom) {\n\t\t\tupdateParentDomPointers(vnode);\n\t\t}\n\t}\n}\n\n/**\n * @param {import('./internal').VNode} vnode\n */\nfunction updateParentDomPointers(vnode) {\n\tif ((vnode = vnode._parent) != null && vnode._component != null) {\n\t\tvnode._dom = vnode._component.base = null;\n\t\tfor (let i = 0; i < vnode._children.length; i++) {\n\t\t\tlet child = vnode._children[i];\n\t\t\tif (child != null && child._dom != null) {\n\t\t\t\tvnode._dom = vnode._component.base = child._dom;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn updateParentDomPointers(vnode);\n\t}\n}\n\n/**\n * The render queue\n * @type {Array<import('./internal').Component>}\n */\nlet rerenderQueue = [];\n\n/**\n * Asynchronously schedule a callback\n * @type {(cb: () => void) => void}\n */\n/* istanbul ignore next */\n// Note the following line isn't tree-shaken by rollup cuz of rollup/rollup#2566\nconst defer =\n\ttypeof Promise == 'function'\n\t\t? Promise.prototype.then.bind(Promise.resolve())\n\t\t: setTimeout;\n\n/*\n * The value of `Component.debounce` must asynchronously invoke the passed in callback. It is\n * important that contributors to Preact can consistently reason about what calls to `setState`, etc.\n * do, and when their effects will be applied. See the links below for some further reading on designing\n * asynchronous APIs.\n * * [Designing APIs for Asynchrony](https://blog.izs.me/2013/08/designing-apis-for-asynchrony)\n * * [Callbacks synchronous and asynchronous](https://blog.ometer.com/2011/07/24/callbacks-synchronous-and-asynchronous/)\n */\n\nlet prevDebounce;\n\n/**\n * Enqueue a rerender of a component\n * @param {import('./internal').Component} c The component to rerender\n */\nexport function enqueueRender(c) {\n\tif (\n\t\t(!c._dirty &&\n\t\t\t(c._dirty = true) &&\n\t\t\trerenderQueue.push(c) &&\n\t\t\t!process._rerenderCount++) ||\n\t\tprevDebounce !== options.debounceRendering\n\t) {\n\t\tprevDebounce = options.debounceRendering;\n\t\t(prevDebounce || defer)(process);\n\t}\n}\n\n/** Flush the render queue by rerendering all queued components */\nfunction process() {\n\tlet queue;\n\twhile ((process._rerenderCount = rerenderQueue.length)) {\n\t\tqueue = rerenderQueue.sort((a, b) => a._vnode._depth - b._vnode._depth);\n\t\trerenderQueue = [];\n\t\t// Don't update `renderCount` yet. Keep its value non-zero to prevent unnecessary\n\t\t// process() calls from getting scheduled while `queue` is still being consumed.\n\t\tqueue.some(c => {\n\t\t\tif (c._dirty) renderComponent(c);\n\t\t});\n\t}\n}\nprocess._rerenderCount = 0;\n","import { enqueueRender } from './component';\n\nexport let i = 0;\n\nexport function createContext(defaultValue, contextId) {\n\tcontextId = '__cC' + i++;\n\n\tconst context = {\n\t\t_id: contextId,\n\t\t_defaultValue: defaultValue,\n\t\t/** @type {import('./internal').FunctionComponent} */\n\t\tConsumer(props, contextValue) {\n\t\t\t// return props.children(\n\t\t\t// \tcontext[contextId] ? context[contextId].props.value : defaultValue\n\t\t\t// );\n\t\t\treturn props.children(contextValue);\n\t\t},\n\t\t/** @type {import('./internal').FunctionComponent} */\n\t\tProvider(props) {\n\t\t\tif (!this.getChildContext) {\n\t\t\t\tlet subs = [];\n\t\t\t\tlet ctx = {};\n\t\t\t\tctx[contextId] = this;\n\n\t\t\t\tthis.getChildContext = () => ctx;\n\n\t\t\t\tthis.shouldComponentUpdate = function(_props) {\n\t\t\t\t\tif (this.props.value !== _props.value) {\n\t\t\t\t\t\t// I think the forced value propagation here was only needed when `options.debounceRendering` was being bypassed:\n\t\t\t\t\t\t// https://github.com/preactjs/preact/commit/4d339fb803bea09e9f198abf38ca1bf8ea4b7771#diff-54682ce380935a717e41b8bfc54737f6R358\n\t\t\t\t\t\t// In those cases though, even with the value corrected, we're double-rendering all nodes.\n\t\t\t\t\t\t// It might be better to just tell folks not to use force-sync mode.\n\t\t\t\t\t\t// Currently, using `useContext()` in a class component will overwrite its `this.context` value.\n\t\t\t\t\t\t// subs.some(c => {\n\t\t\t\t\t\t// \tc.context = _props.value;\n\t\t\t\t\t\t// \tenqueueRender(c);\n\t\t\t\t\t\t// });\n\n\t\t\t\t\t\t// subs.some(c => {\n\t\t\t\t\t\t// \tc.context[contextId] = _props.value;\n\t\t\t\t\t\t// \tenqueueRender(c);\n\t\t\t\t\t\t// });\n\t\t\t\t\t\tsubs.some(enqueueRender);\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tthis.sub = c => {\n\t\t\t\t\tsubs.push(c);\n\t\t\t\t\tlet old = c.componentWillUnmount;\n\t\t\t\t\tc.componentWillUnmount = () => {\n\t\t\t\t\t\tsubs.splice(subs.indexOf(c), 1);\n\t\t\t\t\t\tif (old) old.call(c);\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn props.children;\n\t\t}\n\t};\n\n\t// Devtools needs access to the context object when it\n\t// encounters a Provider. This is necessary to support\n\t// setting `displayName` on the context object instead\n\t// of on the component itself. See:\n\t// https://reactjs.org/docs/context.html#contextdisplayname\n\n\treturn (context.Provider._contextRef = context.Consumer.contextType = context);\n}\n","import { diff, unmount, applyRef } from './index';\nimport { createVNode, Fragment } from '../create-element';\nimport { EMPTY_OBJ, EMPTY_ARR } from '../constants';\nimport { getDomSibling } from '../component';\n\n/**\n * Diff the children of a virtual node\n * @param {import('../internal').PreactElement} parentDom The DOM element whose\n * children are being diffed\n * @param {import('../internal').ComponentChildren[]} renderResult\n * @param {import('../internal').VNode} newParentVNode The new virtual\n * node whose children should be diff'ed against oldParentVNode\n * @param {import('../internal').VNode} oldParentVNode The old virtual\n * node whose children should be diff'ed against newParentVNode\n * @param {object} globalContext The current context object - modified by getChildContext\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {Array<import('../internal').PreactElement>} excessDomChildren\n * @param {Array<import('../internal').Component>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').PreactElement} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} isHydrating Whether or not we are in hydration\n */\nexport function diffChildren(\n\tparentDom,\n\trenderResult,\n\tnewParentVNode,\n\toldParentVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet i, j, oldVNode, childVNode, newDom, firstChildDom, refs;\n\n\t// This is a compression of oldParentVNode!=null && oldParentVNode != EMPTY_OBJ && oldParentVNode._children || EMPTY_ARR\n\t// as EMPTY_OBJ._children should be `undefined`.\n\tlet oldChildren = (oldParentVNode && oldParentVNode._children) || EMPTY_ARR;\n\n\tlet oldChildrenLength = oldChildren.length;\n\n\tnewParentVNode._children = [];\n\tfor (i = 0; i < renderResult.length; i++) {\n\t\tchildVNode = renderResult[i];\n\n\t\tif (childVNode == null || typeof childVNode == 'boolean') {\n\t\t\tchildVNode = newParentVNode._children[i] = null;\n\t\t}\n\t\t// If this newVNode is being reused (e.g. <div>{reuse}{reuse}</div>) in the same diff,\n\t\t// or we are rendering a component (e.g. setState) copy the oldVNodes so it can have\n\t\t// it's own DOM & etc. pointers\n\t\telse if (\n\t\t\ttypeof childVNode == 'string' ||\n\t\t\ttypeof childVNode == 'number' ||\n\t\t\t// eslint-disable-next-line valid-typeof\n\t\t\ttypeof childVNode == 'bigint'\n\t\t) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tnull,\n\t\t\t\tchildVNode,\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tchildVNode\n\t\t\t);\n\t\t} else if (Array.isArray(childVNode)) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tFragment,\n\t\t\t\t{ children: childVNode },\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tnull\n\t\t\t);\n\t\t} else if (childVNode._depth > 0) {\n\t\t\t// VNode is already in use, clone it. This can happen in the following\n\t\t\t// scenario:\n\t\t\t// const reuse = <div />\n\t\t\t// <div>{reuse}<span />{reuse}</div>\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tchildVNode.type,\n\t\t\t\tchildVNode.props,\n\t\t\t\tchildVNode.key,\n\t\t\t\tnull,\n\t\t\t\tchildVNode._original\n\t\t\t);\n\t\t} else {\n\t\t\tchildVNode = newParentVNode._children[i] = childVNode;\n\t\t}\n\n\t\t// Terser removes the `continue` here and wraps the loop body\n\t\t// in a `if (childVNode) { ... } condition\n\t\tif (childVNode == null) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tchildVNode._parent = newParentVNode;\n\t\tchildVNode._depth = newParentVNode._depth + 1;\n\n\t\t// Check if we find a corresponding element in oldChildren.\n\t\t// If found, delete the array item by setting to `undefined`.\n\t\t// We use `undefined`, as `null` is reserved for empty placeholders\n\t\t// (holes).\n\t\toldVNode = oldChildren[i];\n\n\t\tif (\n\t\t\toldVNode === null ||\n\t\t\t(oldVNode &&\n\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\tchildVNode.type === oldVNode.type)\n\t\t) {\n\t\t\toldChildren[i] = undefined;\n\t\t} else {\n\t\t\t// Either oldVNode === undefined or oldChildrenLength > 0,\n\t\t\t// so after this loop oldVNode == null or oldVNode is a valid value.\n\t\t\tfor (j = 0; j < oldChildrenLength; j++) {\n\t\t\t\toldVNode = oldChildren[j];\n\t\t\t\t// If childVNode is unkeyed, we only match similarly unkeyed nodes, otherwise we match by key.\n\t\t\t\t// We always match by type (in either case).\n\t\t\t\tif (\n\t\t\t\t\toldVNode &&\n\t\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\t\tchildVNode.type === oldVNode.type\n\t\t\t\t) {\n\t\t\t\t\toldChildren[j] = undefined;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\toldVNode = null;\n\t\t\t}\n\t\t}\n\n\t\toldVNode = oldVNode || EMPTY_OBJ;\n\n\t\t// Morph the old element into the new one, but don't append it to the dom yet\n\t\tdiff(\n\t\t\tparentDom,\n\t\t\tchildVNode,\n\t\t\toldVNode,\n\t\t\tglobalContext,\n\t\t\tisSvg,\n\t\t\texcessDomChildren,\n\t\t\tcommitQueue,\n\t\t\toldDom,\n\t\t\tisHydrating\n\t\t);\n\n\t\tnewDom = childVNode._dom;\n\n\t\tif ((j = childVNode.ref) && oldVNode.ref != j) {\n\t\t\tif (!refs) refs = [];\n\t\t\tif (oldVNode.ref) refs.push(oldVNode.ref, null, childVNode);\n\t\t\trefs.push(j, childVNode._component || newDom, childVNode);\n\t\t}\n\n\t\tif (newDom != null) {\n\t\t\tif (firstChildDom == null) {\n\t\t\t\tfirstChildDom = newDom;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\ttypeof childVNode.type == 'function' &&\n\t\t\t\tchildVNode._children != null && // Can be null if childVNode suspended\n\t\t\t\tchildVNode._children === oldVNode._children\n\t\t\t) {\n\t\t\t\tchildVNode._nextDom = oldDom = reorderChildren(\n\t\t\t\t\tchildVNode,\n\t\t\t\t\toldDom,\n\t\t\t\t\tparentDom\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\toldDom = placeChild(\n\t\t\t\t\tparentDom,\n\t\t\t\t\tchildVNode,\n\t\t\t\t\toldVNode,\n\t\t\t\t\toldChildren,\n\t\t\t\t\tnewDom,\n\t\t\t\t\toldDom\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Browsers will infer an option's `value` from `textContent` when\n\t\t\t// no value is present. This essentially bypasses our code to set it\n\t\t\t// later in `diff()`. It works fine in all browsers except for IE11\n\t\t\t// where it breaks setting `select.value`. There it will be always set\n\t\t\t// to an empty string. Re-applying an options value will fix that, so\n\t\t\t// there are probably some internal data structures that aren't\n\t\t\t// updated properly.\n\t\t\t//\n\t\t\t// To fix it we make sure to reset the inferred value, so that our own\n\t\t\t// value check in `diff()` won't be skipped.\n\t\t\tif (!isHydrating && newParentVNode.type === 'option') {\n\t\t\t\t// @ts-ignore We have validated that the type of parentDOM is 'option'\n\t\t\t\t// in the above check\n\t\t\t\tparentDom.value = '';\n\t\t\t} else if (typeof newParentVNode.type == 'function') {\n\t\t\t\t// Because the newParentVNode is Fragment-like, we need to set it's\n\t\t\t\t// _nextDom property to the nextSibling of its last child DOM node.\n\t\t\t\t//\n\t\t\t\t// `oldDom` contains the correct value here because if the last child\n\t\t\t\t// is a Fragment-like, then oldDom has already been set to that child's _nextDom.\n\t\t\t\t// If the last child is a DOM VNode, then oldDom will be set to that DOM\n\t\t\t\t// node's nextSibling.\n\t\t\t\tnewParentVNode._nextDom = oldDom;\n\t\t\t}\n\t\t} else if (\n\t\t\toldDom &&\n\t\t\toldVNode._dom == oldDom &&\n\t\t\toldDom.parentNode != parentDom\n\t\t) {\n\t\t\t// The above condition is to handle null placeholders. See test in placeholder.test.js:\n\t\t\t// `efficiently replace null placeholders in parent rerenders`\n\t\t\toldDom = getDomSibling(oldVNode);\n\t\t}\n\t}\n\n\tnewParentVNode._dom = firstChildDom;\n\n\t// Remove remaining oldChildren if there are any.\n\tfor (i = oldChildrenLength; i--; ) {\n\t\tif (oldChildren[i] != null) {\n\t\t\tif (\n\t\t\t\ttypeof newParentVNode.type == 'function' &&\n\t\t\t\toldChildren[i]._dom != null &&\n\t\t\t\toldChildren[i]._dom == newParentVNode._nextDom\n\t\t\t) {\n\t\t\t\t// If the newParentVNode.__nextDom points to a dom node that is about to\n\t\t\t\t// be unmounted, then get the next sibling of that vnode and set\n\t\t\t\t// _nextDom to it\n\t\t\t\tnewParentVNode._nextDom = getDomSibling(oldParentVNode, i + 1);\n\t\t\t}\n\n\t\t\tunmount(oldChildren[i], oldChildren[i]);\n\t\t}\n\t}\n\n\t// Set refs only after unmount\n\tif (refs) {\n\t\tfor (i = 0; i < refs.length; i++) {\n\t\t\tapplyRef(refs[i], refs[++i], refs[++i]);\n\t\t}\n\t}\n}\n\nfunction reorderChildren(childVNode, oldDom, parentDom) {\n\tfor (let tmp = 0; tmp < childVNode._children.length; tmp++) {\n\t\tlet vnode = childVNode._children[tmp];\n\t\tif (vnode) {\n\t\t\t// We typically enter this code path on sCU bailout, where we copy\n\t\t\t// oldVNode._children to newVNode._children. If that is the case, we need\n\t\t\t// to update the old children's _parent pointer to point to the newVNode\n\t\t\t// (childVNode here).\n\t\t\tvnode._parent = childVNode;\n\n\t\t\tif (typeof vnode.type == 'function') {\n\t\t\t\toldDom = reorderChildren(vnode, oldDom, parentDom);\n\t\t\t} else {\n\t\t\t\toldDom = placeChild(\n\t\t\t\t\tparentDom,\n\t\t\t\t\tvnode,\n\t\t\t\t\tvnode,\n\t\t\t\t\tchildVNode._children,\n\t\t\t\t\tvnode._dom,\n\t\t\t\t\toldDom\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn oldDom;\n}\n\n/**\n * Flatten and loop through the children of a virtual node\n * @param {import('../index').ComponentChildren} children The unflattened\n * children of a virtual node\n * @returns {import('../internal').VNode[]}\n */\nexport function toChildArray(children, out) {\n\tout = out || [];\n\tif (children == null || typeof children == 'boolean') {\n\t} else if (Array.isArray(children)) {\n\t\tchildren.some(child => {\n\t\t\ttoChildArray(child, out);\n\t\t});\n\t} else {\n\t\tout.push(children);\n\t}\n\treturn out;\n}\n\nfunction placeChild(\n\tparentDom,\n\tchildVNode,\n\toldVNode,\n\toldChildren,\n\tnewDom,\n\toldDom\n) {\n\tlet nextDom;\n\tif (childVNode._nextDom !== undefined) {\n\t\t// Only Fragments or components that return Fragment like VNodes will\n\t\t// have a non-undefined _nextDom. Continue the diff from the sibling\n\t\t// of last DOM child of this child VNode\n\t\tnextDom = childVNode._nextDom;\n\n\t\t// Eagerly cleanup _nextDom. We don't need to persist the value because\n\t\t// it is only used by `diffChildren` to determine where to resume the diff after\n\t\t// diffing Components and Fragments. Once we store it the nextDOM local var, we\n\t\t// can clean up the property\n\t\tchildVNode._nextDom = undefined;\n\t} else if (\n\t\toldVNode == null ||\n\t\tnewDom != oldDom ||\n\t\tnewDom.parentNode == null\n\t) {\n\t\touter: if (oldDom == null || oldDom.parentNode !== parentDom) {\n\t\t\tparentDom.appendChild(newDom);\n\t\t\tnextDom = null;\n\t\t} else {\n\t\t\t// `j<oldChildrenLength; j+=2` is an alternative to `j++<oldChildrenLength/2`\n\t\t\tfor (\n\t\t\t\tlet sibDom = oldDom, j = 0;\n\t\t\t\t(sibDom = sibDom.nextSibling) && j < oldChildren.length;\n\t\t\t\tj += 2\n\t\t\t) {\n\t\t\t\tif (sibDom == newDom) {\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t}\n\t\t\tparentDom.insertBefore(newDom, oldDom);\n\t\t\tnextDom = oldDom;\n\t\t}\n\t}\n\n\t// If we have pre-calculated the nextDOM node, use it. Else calculate it now\n\t// Strictly check for `undefined` here cuz `null` is a valid value of `nextDom`.\n\t// See more detail in create-element.js:createVNode\n\tif (nextDom !== undefined) {\n\t\toldDom = nextDom;\n\t} else {\n\t\toldDom = newDom.nextSibling;\n\t}\n\n\treturn oldDom;\n}\n","import { IS_NON_DIMENSIONAL } from '../constants';\nimport options from '../options';\n\n/**\n * Diff the old and new properties of a VNode and apply changes to the DOM node\n * @param {import('../internal').PreactElement} dom The DOM node to apply\n * changes to\n * @param {object} newProps The new props\n * @param {object} oldProps The old props\n * @param {boolean} isSvg Whether or not this node is an SVG node\n * @param {boolean} hydrate Whether or not we are in hydration mode\n */\nexport function diffProps(dom, newProps, oldProps, isSvg, hydrate) {\n\tlet i;\n\n\tfor (i in oldProps) {\n\t\tif (i !== 'children' && i !== 'key' && !(i in newProps)) {\n\t\t\tsetProperty(dom, i, null, oldProps[i], isSvg);\n\t\t}\n\t}\n\n\tfor (i in newProps) {\n\t\tif (\n\t\t\t(!hydrate || typeof newProps[i] == 'function') &&\n\t\t\ti !== 'children' &&\n\t\t\ti !== 'key' &&\n\t\t\ti !== 'value' &&\n\t\t\ti !== 'checked' &&\n\t\t\toldProps[i] !== newProps[i]\n\t\t) {\n\t\t\tsetProperty(dom, i, newProps[i], oldProps[i], isSvg);\n\t\t}\n\t}\n}\n\nfunction setStyle(style, key, value) {\n\tif (key[0] === '-') {\n\t\tstyle.setProperty(key, value);\n\t} else if (value == null) {\n\t\tstyle[key] = '';\n\t} else if (typeof value != 'number' || IS_NON_DIMENSIONAL.test(key)) {\n\t\tstyle[key] = value;\n\t} else {\n\t\tstyle[key] = value + 'px';\n\t}\n}\n\n/**\n * Set a property value on a DOM node\n * @param {import('../internal').PreactElement} dom The DOM node to modify\n * @param {string} name The name of the property to set\n * @param {*} value The value to set the property to\n * @param {*} oldValue The old value the property had\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node or not\n */\nexport function setProperty(dom, name, value, oldValue, isSvg) {\n\tlet useCapture;\n\n\to: if (name === 'style') {\n\t\tif (typeof value == 'string') {\n\t\t\tdom.style.cssText = value;\n\t\t} else {\n\t\t\tif (typeof oldValue == 'string') {\n\t\t\t\tdom.style.cssText = oldValue = '';\n\t\t\t}\n\n\t\t\tif (oldValue) {\n\t\t\t\tfor (name in oldValue) {\n\t\t\t\t\tif (!(value && name in value)) {\n\t\t\t\t\t\tsetStyle(dom.style, name, '');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (value) {\n\t\t\t\tfor (name in value) {\n\t\t\t\t\tif (!oldValue || value[name] !== oldValue[name]) {\n\t\t\t\t\t\tsetStyle(dom.style, name, value[name]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// Benchmark for comparison: https://esbench.com/bench/574c954bdb965b9a00965ac6\n\telse if (name[0] === 'o' && name[1] === 'n') {\n\t\tuseCapture = name !== (name = name.replace(/Capture$/, ''));\n\n\t\t// Infer correct casing for DOM built-in events:\n\t\tif (name.toLowerCase() in dom) name = name.toLowerCase().slice(2);\n\t\telse name = name.slice(2);\n\n\t\tif (!dom._listeners) dom._listeners = {};\n\t\tdom._listeners[name + useCapture] = value;\n\n\t\tif (value) {\n\t\t\tif (!oldValue) {\n\t\t\t\tconst handler = useCapture ? eventProxyCapture : eventProxy;\n\t\t\t\tdom.addEventListener(name, handler, useCapture);\n\t\t\t}\n\t\t} else {\n\t\t\tconst handler = useCapture ? eventProxyCapture : eventProxy;\n\t\t\tdom.removeEventListener(name, handler, useCapture);\n\t\t}\n\t} else if (name !== 'dangerouslySetInnerHTML') {\n\t\tif (isSvg) {\n\t\t\t// Normalize incorrect prop usage for SVG:\n\t\t\t// - xlink:href / xlinkHref --> href (xlink:href was removed from SVG and isn't needed)\n\t\t\t// - className --> class\n\t\t\tname = name.replace(/xlink[H:h]/, 'h').replace(/sName$/, 's');\n\t\t} else if (\n\t\t\tname !== 'href' &&\n\t\t\tname !== 'list' &&\n\t\t\tname !== 'form' &&\n\t\t\t// Default value in browsers is `-1` and an empty string is\n\t\t\t// cast to `0` instead\n\t\t\tname !== 'tabIndex' &&\n\t\t\tname !== 'download' &&\n\t\t\tname in dom\n\t\t) {\n\t\t\ttry {\n\t\t\t\tdom[name] = value == null ? '' : value;\n\t\t\t\t// labelled break is 1b smaller here than a return statement (sorry)\n\t\t\t\tbreak o;\n\t\t\t} catch (e) {}\n\t\t}\n\n\t\t// ARIA-attributes have a different notion of boolean values.\n\t\t// The value `false` is different from the attribute not\n\t\t// existing on the DOM, so we can't remove it. For non-boolean\n\t\t// ARIA-attributes we could treat false as a removal, but the\n\t\t// amount of exceptions would cost us too many bytes. On top of\n\t\t// that other VDOM frameworks also always stringify `false`.\n\n\t\tif (typeof value === 'function') {\n\t\t\t// never serialize functions as attribute values\n\t\t} else if (\n\t\t\tvalue != null &&\n\t\t\t(value !== false || (name[0] === 'a' && name[1] === 'r'))\n\t\t) {\n\t\t\tdom.setAttribute(name, value);\n\t\t} else {\n\t\t\tdom.removeAttribute(name);\n\t\t}\n\t}\n}\n\n/**\n * Proxy an event to hooked event handlers\n * @param {Event} e The event object from the browser\n * @private\n */\nfunction eventProxy(e) {\n\tthis._listeners[e.type + false](options.event ? options.event(e) : e);\n}\n\nfunction eventProxyCapture(e) {\n\tthis._listeners[e.type + true](options.event ? options.event(e) : e);\n}\n","import { EMPTY_OBJ } from '../constants';\nimport { Component, getDomSibling } from '../component';\nimport { Fragment } from '../create-element';\nimport { diffChildren } from './children';\nimport { diffProps, setProperty } from './props';\nimport { assign, removeNode, slice } from '../util';\nimport options from '../options';\n\n/**\n * Diff two virtual nodes and apply proper changes to the DOM\n * @param {import('../internal').PreactElement} parentDom The parent of the DOM element\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object. Modified by getChildContext\n * @param {boolean} isSvg Whether or not this element is an SVG node\n * @param {Array<import('../internal').PreactElement>} excessDomChildren\n * @param {Array<import('../internal').Component>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').PreactElement} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} [isHydrating] Whether or not we are in hydration\n */\nexport function diff(\n\tparentDom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet tmp,\n\t\tnewType = newVNode.type;\n\n\t// When passing through createElement it assigns the object\n\t// constructor as undefined. This to prevent JSON-injection.\n\tif (newVNode.constructor !== undefined) return null;\n\n\t// If the previous diff bailed out, resume creating/hydrating.\n\tif (oldVNode._hydrating != null) {\n\t\tisHydrating = oldVNode._hydrating;\n\t\toldDom = newVNode._dom = oldVNode._dom;\n\t\t// if we resume, we want the tree to be \"unlocked\"\n\t\tnewVNode._hydrating = null;\n\t\texcessDomChildren = [oldDom];\n\t}\n\n\tif ((tmp = options._diff)) tmp(newVNode);\n\n\ttry {\n\t\touter: if (typeof newType == 'function') {\n\t\t\tlet c, isNew, oldProps, oldState, snapshot, clearProcessingException;\n\t\t\tlet newProps = newVNode.props;\n\n\t\t\t// Necessary for createContext api. Setting this property will pass\n\t\t\t// the context value as `this.context` just for this component.\n\t\t\ttmp = newType.contextType;\n\t\t\tlet provider = tmp && globalContext[tmp._id];\n\t\t\tlet componentContext = tmp\n\t\t\t\t? provider\n\t\t\t\t\t? provider.props.value\n\t\t\t\t\t: tmp._defaultValue\n\t\t\t\t: globalContext;\n\n\t\t\t// Get component and set it to `c`\n\t\t\tif (oldVNode._component) {\n\t\t\t\tc = newVNode._component = oldVNode._component;\n\t\t\t\tclearProcessingException = c._processingException = c._pendingError;\n\t\t\t} else {\n\t\t\t\t// Instantiate the new component\n\t\t\t\tif ('prototype' in newType && newType.prototype.render) {\n\t\t\t\t\t// @ts-ignore The check above verifies that newType is suppose to be constructed\n\t\t\t\t\tnewVNode._component = c = new newType(newProps, componentContext); // eslint-disable-line new-cap\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-ignore Trust me, Component implements the interface we want\n\t\t\t\t\tnewVNode._component = c = new Component(newProps, componentContext);\n\t\t\t\t\tc.constructor = newType;\n\t\t\t\t\tc.render = doRender;\n\t\t\t\t}\n\t\t\t\tif (provider) provider.sub(c);\n\n\t\t\t\tc.props = newProps;\n\t\t\t\tif (!c.state) c.state = {};\n\t\t\t\tc.context = componentContext;\n\t\t\t\tc._globalContext = globalContext;\n\t\t\t\tisNew = c._dirty = true;\n\t\t\t\tc._renderCallbacks = [];\n\t\t\t}\n\n\t\t\t// Invoke getDerivedStateFromProps\n\t\t\tif (c._nextState == null) {\n\t\t\t\tc._nextState = c.state;\n\t\t\t}\n\t\t\tif (newType.getDerivedStateFromProps != null) {\n\t\t\t\tif (c._nextState == c.state) {\n\t\t\t\t\tc._nextState = assign({}, c._nextState);\n\t\t\t\t}\n\n\t\t\t\tassign(\n\t\t\t\t\tc._nextState,\n\t\t\t\t\tnewType.getDerivedStateFromProps(newProps, c._nextState)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\toldProps = c.props;\n\t\t\toldState = c.state;\n\n\t\t\t// Invoke pre-render lifecycle methods\n\t\t\tif (isNew) {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tc.componentWillMount != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillMount();\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidMount != null) {\n\t\t\t\t\tc._renderCallbacks.push(c.componentDidMount);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tnewProps !== oldProps &&\n\t\t\t\t\tc.componentWillReceiveProps != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillReceiveProps(newProps, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t(!c._force &&\n\t\t\t\t\t\tc.shouldComponentUpdate != null &&\n\t\t\t\t\t\tc.shouldComponentUpdate(\n\t\t\t\t\t\t\tnewProps,\n\t\t\t\t\t\t\tc._nextState,\n\t\t\t\t\t\t\tcomponentContext\n\t\t\t\t\t\t) === false) ||\n\t\t\t\t\tnewVNode._original === oldVNode._original\n\t\t\t\t) {\n\t\t\t\t\tc.props = newProps;\n\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t\t// More info about this here: https://gist.github.com/JoviDeCroock/bec5f2ce93544d2e6070ef8e0036e4e8\n\t\t\t\t\tif (newVNode._original !== oldVNode._original) c._dirty = false;\n\t\t\t\t\tc._vnode = newVNode;\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t\tnewVNode._children.forEach(vnode => {\n\t\t\t\t\t\tif (vnode) vnode._parent = newVNode;\n\t\t\t\t\t});\n\t\t\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\t\t\tcommitQueue.push(c);\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\n\t\t\t\tif (c.componentWillUpdate != null) {\n\t\t\t\t\tc.componentWillUpdate(newProps, c._nextState, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidUpdate != null) {\n\t\t\t\t\tc._renderCallbacks.push(() => {\n\t\t\t\t\t\tc.componentDidUpdate(oldProps, oldState, snapshot);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tc.context = componentContext;\n\t\t\tc.props = newProps;\n\t\t\tc.state = c._nextState;\n\n\t\t\tif ((tmp = options._render)) tmp(newVNode);\n\n\t\t\tc._dirty = false;\n\t\t\tc._vnode = newVNode;\n\t\t\tc._parentDom = parentDom;\n\n\t\t\ttmp = c.render(c.props, c.state, c.context);\n\n\t\t\t// Handle setState called in render, see #2553\n\t\t\tc.state = c._nextState;\n\n\t\t\tif (c.getChildContext != null) {\n\t\t\t\tglobalContext = assign(assign({}, globalContext), c.getChildContext());\n\t\t\t}\n\n\t\t\tif (!isNew && c.getSnapshotBeforeUpdate != null) {\n\t\t\t\tsnapshot = c.getSnapshotBeforeUpdate(oldProps, oldState);\n\t\t\t}\n\n\t\t\tlet isTopLevelFragment =\n\t\t\t\ttmp != null && tmp.type === Fragment && tmp.key == null;\n\t\t\tlet renderResult = isTopLevelFragment ? tmp.props.children : tmp;\n\n\t\t\tdiffChildren(\n\t\t\t\tparentDom,\n\t\t\t\tArray.isArray(renderResult) ? renderResult : [renderResult],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\toldDom,\n\t\t\t\tisHydrating\n\t\t\t);\n\n\t\t\tc.base = newVNode._dom;\n\n\t\t\t// We successfully rendered this VNode, unset any stored hydration/bailout state:\n\t\t\tnewVNode._hydrating = null;\n\n\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\tcommitQueue.push(c);\n\t\t\t}\n\n\t\t\tif (clearProcessingException) {\n\t\t\t\tc._pendingError = c._processingException = null;\n\t\t\t}\n\n\t\t\tc._force = false;\n\t\t} else if (\n\t\t\texcessDomChildren == null &&\n\t\t\tnewVNode._original === oldVNode._original\n\t\t) {\n\t\t\tnewVNode._children = oldVNode._children;\n\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t} else {\n\t\t\tnewVNode._dom = diffElementNodes(\n\t\t\t\toldVNode._dom,\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\tisHydrating\n\t\t\t);\n\t\t}\n\n\t\tif ((tmp = options.diffed)) tmp(newVNode);\n\t} catch (e) {\n\t\tnewVNode._original = null;\n\t\t// if hydrating or creating initial tree, bailout preserves DOM:\n\t\tif (isHydrating || excessDomChildren != null) {\n\t\t\tnewVNode._dom = oldDom;\n\t\t\tnewVNode._hydrating = !!isHydrating;\n\t\t\texcessDomChildren[excessDomChildren.indexOf(oldDom)] = null;\n\t\t\t// ^ could possibly be simplified to:\n\t\t\t// excessDomChildren.length = 0;\n\t\t}\n\t\toptions._catchError(e, newVNode, oldVNode);\n\t}\n}\n\n/**\n * @param {Array<import('../internal').Component>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').VNode} root\n */\nexport function commitRoot(commitQueue, root) {\n\tif (options._commit) options._commit(root, commitQueue);\n\n\tcommitQueue.some(c => {\n\t\ttry {\n\t\t\t// @ts-ignore Reuse the commitQueue variable here so the type changes\n\t\t\tcommitQueue = c._renderCallbacks;\n\t\t\tc._renderCallbacks = [];\n\t\t\tcommitQueue.some(cb => {\n\t\t\t\t// @ts-ignore See above ts-ignore on commitQueue\n\t\t\t\tcb.call(c);\n\t\t\t});\n\t\t} catch (e) {\n\t\t\toptions._catchError(e, c._vnode);\n\t\t}\n\t});\n}\n\n/**\n * Diff two virtual nodes representing DOM element\n * @param {import('../internal').PreactElement} dom The DOM element representing\n * the virtual nodes being diffed\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {*} excessDomChildren\n * @param {Array<import('../internal').Component>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @returns {import('../internal').PreactElement}\n */\nfunction diffElementNodes(\n\tdom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\tisHydrating\n) {\n\tlet oldProps = oldVNode.props;\n\tlet newProps = newVNode.props;\n\tlet nodeType = newVNode.type;\n\tlet i = 0;\n\n\t// Tracks entering and exiting SVG namespace when descending through the tree.\n\tif (nodeType === 'svg') isSvg = true;\n\n\tif (excessDomChildren != null) {\n\t\tfor (; i < excessDomChildren.length; i++) {\n\t\t\tconst child = excessDomChildren[i];\n\n\t\t\t// if newVNode matches an element in excessDomChildren or the `dom`\n\t\t\t// argument matches an element in excessDomChildren, remove it from\n\t\t\t// excessDomChildren so it isn't later removed in diffChildren\n\t\t\tif (\n\t\t\t\tchild &&\n\t\t\t\t(child === dom ||\n\t\t\t\t\t(nodeType ? child.localName == nodeType : child.nodeType == 3))\n\t\t\t) {\n\t\t\t\tdom = child;\n\t\t\t\texcessDomChildren[i] = null;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (dom == null) {\n\t\tif (nodeType === null) {\n\t\t\t// @ts-ignore createTextNode returns Text, we expect PreactElement\n\t\t\treturn document.createTextNode(newProps);\n\t\t}\n\n\t\tif (isSvg) {\n\t\t\tdom = document.createElementNS(\n\t\t\t\t'http://www.w3.org/2000/svg',\n\t\t\t\t// @ts-ignore We know `newVNode.type` is a string\n\t\t\t\tnodeType\n\t\t\t);\n\t\t} else {\n\t\t\tdom = document.createElement(\n\t\t\t\t// @ts-ignore We know `newVNode.type` is a string\n\t\t\t\tnodeType,\n\t\t\t\tnewProps.is && newProps\n\t\t\t);\n\t\t}\n\n\t\t// we created a new parent, so none of the previously attached children can be reused:\n\t\texcessDomChildren = null;\n\t\t// we are creating a new node, so we can assume this is a new subtree (in case we are hydrating), this deopts the hydrate\n\t\tisHydrating = false;\n\t}\n\n\tif (nodeType === null) {\n\t\t// During hydration, we still have to split merged text from SSR'd HTML.\n\t\tif (oldProps !== newProps && (!isHydrating || dom.data !== newProps)) {\n\t\t\tdom.data = newProps;\n\t\t}\n\t} else {\n\t\t// If excessDomChildren was not null, repopulate it with the current element's children:\n\t\texcessDomChildren = excessDomChildren && slice.call(dom.childNodes);\n\n\t\toldProps = oldVNode.props || EMPTY_OBJ;\n\n\t\tlet oldHtml = oldProps.dangerouslySetInnerHTML;\n\t\tlet newHtml = newProps.dangerouslySetInnerHTML;\n\n\t\t// During hydration, props are not diffed at all (including dangerouslySetInnerHTML)\n\t\t// @TODO we should warn in debug mode when props don't match here.\n\t\tif (!isHydrating) {\n\t\t\t// But, if we are in a situation where we are using existing DOM (e.g. replaceNode)\n\t\t\t// we should read the existing DOM attributes to diff them\n\t\t\tif (excessDomChildren != null) {\n\t\t\t\toldProps = {};\n\t\t\t\tfor (i = 0; i < dom.attributes.length; i++) {\n\t\t\t\t\toldProps[dom.attributes[i].name] = dom.attributes[i].value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (newHtml || oldHtml) {\n\t\t\t\t// Avoid re-applying the same '__html' if it did not changed between re-render\n\t\t\t\tif (\n\t\t\t\t\t!newHtml ||\n\t\t\t\t\t((!oldHtml || newHtml.__html != oldHtml.__html) &&\n\t\t\t\t\t\tnewHtml.__html !== dom.innerHTML)\n\t\t\t\t) {\n\t\t\t\t\tdom.innerHTML = (newHtml && newHtml.__html) || '';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tdiffProps(dom, newProps, oldProps, isSvg, isHydrating);\n\n\t\t// If the new vnode didn't have dangerouslySetInnerHTML, diff its children\n\t\tif (newHtml) {\n\t\t\tnewVNode._children = [];\n\t\t} else {\n\t\t\ti = newVNode.props.children;\n\t\t\tdiffChildren(\n\t\t\t\tdom,\n\t\t\t\tArray.isArray(i) ? i : [i],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg && nodeType !== 'foreignObject',\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\texcessDomChildren\n\t\t\t\t\t? excessDomChildren[0]\n\t\t\t\t\t: oldVNode._children && getDomSibling(oldVNode, 0),\n\t\t\t\tisHydrating\n\t\t\t);\n\n\t\t\t// Remove children that are not part of any vnode.\n\t\t\tif (excessDomChildren != null) {\n\t\t\t\tfor (i = excessDomChildren.length; i--; ) {\n\t\t\t\t\tif (excessDomChildren[i] != null) removeNode(excessDomChildren[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// (as above, don't diff props during hydration)\n\t\tif (!isHydrating) {\n\t\t\tif (\n\t\t\t\t'value' in newProps &&\n\t\t\t\t(i = newProps.value) !== undefined &&\n\t\t\t\t// #2756 For the <progress>-element the initial value is 0,\n\t\t\t\t// despite the attribute not being present. When the attribute\n\t\t\t\t// is missing the progress bar is treated as indeterminate.\n\t\t\t\t// To fix that we'll always update it when it is 0 for progress elements\n\t\t\t\t(i !== dom.value || (nodeType === 'progress' && !i))\n\t\t\t) {\n\t\t\t\tsetProperty(dom, 'value', i, oldProps.value, false);\n\t\t\t}\n\t\t\tif (\n\t\t\t\t'checked' in newProps &&\n\t\t\t\t(i = newProps.checked) !== undefined &&\n\t\t\t\ti !== dom.checked\n\t\t\t) {\n\t\t\t\tsetProperty(dom, 'checked', i, oldProps.checked, false);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn dom;\n}\n\n/**\n * Invoke or update a ref, depending on whether it is a function or object ref.\n * @param {object|function} ref\n * @param {any} value\n * @param {import('../internal').VNode} vnode\n */\nexport function applyRef(ref, value, vnode) {\n\ttry {\n\t\tif (typeof ref == 'function') ref(value);\n\t\telse ref.current = value;\n\t} catch (e) {\n\t\toptions._catchError(e, vnode);\n\t}\n}\n\n/**\n * Unmount a virtual node from the tree and apply DOM changes\n * @param {import('../internal').VNode} vnode The virtual node to unmount\n * @param {import('../internal').VNode} parentVNode The parent of the VNode that\n * initiated the unmount\n * @param {boolean} [skipRemove] Flag that indicates that a parent node of the\n * current element is already detached from the DOM.\n */\nexport function unmount(vnode, parentVNode, skipRemove) {\n\tlet r;\n\tif (options.unmount) options.unmount(vnode);\n\n\tif ((r = vnode.ref)) {\n\t\tif (!r.current || r.current === vnode._dom) applyRef(r, null, parentVNode);\n\t}\n\n\tif ((r = vnode._component) != null) {\n\t\tif (r.componentWillUnmount) {\n\t\t\ttry {\n\t\t\t\tr.componentWillUnmount();\n\t\t\t} catch (e) {\n\t\t\t\toptions._catchError(e, parentVNode);\n\t\t\t}\n\t\t}\n\n\t\tr.base = r._parentDom = null;\n\t}\n\n\tif ((r = vnode._children)) {\n\t\tfor (let i = 0; i < r.length; i++) {\n\t\t\tif (r[i]) {\n\t\t\t\tunmount(r[i], parentVNode, typeof vnode.type != 'function');\n\t\t\t}\n\t\t}\n\t}\n\n\tif (!skipRemove && vnode._dom != null) removeNode(vnode._dom);\n\n\t// Must be set to `undefined` to properly clean up `_nextDom`\n\t// for which `null` is a valid value. See comment in `create-element.js`\n\tvnode._dom = vnode._nextDom = undefined;\n}\n\n/** The `.render()` method for a PFC backing instance. */\nfunction doRender(props, state, context) {\n\treturn this.constructor(props, context);\n}\n","import { EMPTY_OBJ } from './constants';\nimport { commitRoot, diff } from './diff/index';\nimport { createElement, Fragment } from './create-element';\nimport options from './options';\nimport { slice } from './util';\n\n/**\n * Render a Preact virtual node into a DOM element\n * @param {import('./internal').ComponentChild} vnode The virtual node to render\n * @param {import('./internal').PreactElement} parentDom The DOM element to\n * render into\n * @param {import('./internal').PreactElement | object} [replaceNode] Optional: Attempt to re-use an\n * existing DOM tree rooted at `replaceNode`\n */\nexport function render(vnode, parentDom, replaceNode) {\n\tif (options._root) options._root(vnode, parentDom);\n\n\t// We abuse the `replaceNode` parameter in `hydrate()` to signal if we are in\n\t// hydration mode or not by passing the `hydrate` function instead of a DOM\n\t// element..\n\tlet isHydrating = typeof replaceNode === 'function';\n\n\t// To be able to support calling `render()` multiple times on the same\n\t// DOM node, we need to obtain a reference to the previous tree. We do\n\t// this by assigning a new `_children` property to DOM nodes which points\n\t// to the last rendered tree. By default this property is not present, which\n\t// means that we are mounting a new tree for the first time.\n\tlet oldVNode = isHydrating\n\t\t? null\n\t\t: (replaceNode && replaceNode._children) || parentDom._children;\n\n\tvnode = (\n\t\t(!isHydrating && replaceNode) ||\n\t\tparentDom\n\t)._children = createElement(Fragment, null, [vnode]);\n\n\t// List of effects that need to be called after diffing.\n\tlet commitQueue = [];\n\tdiff(\n\t\tparentDom,\n\t\t// Determine the new vnode tree and store it on the DOM element on\n\t\t// our custom `_children` property.\n\t\tvnode,\n\t\toldVNode || EMPTY_OBJ,\n\t\tEMPTY_OBJ,\n\t\tparentDom.ownerSVGElement !== undefined,\n\t\t!isHydrating && replaceNode\n\t\t\t? [replaceNode]\n\t\t\t: oldVNode\n\t\t\t? null\n\t\t\t: parentDom.firstChild\n\t\t\t? slice.call(parentDom.childNodes)\n\t\t\t: null,\n\t\tcommitQueue,\n\t\t!isHydrating && replaceNode\n\t\t\t? replaceNode\n\t\t\t: oldVNode\n\t\t\t? oldVNode._dom\n\t\t\t: parentDom.firstChild,\n\t\tisHydrating\n\t);\n\n\t// Flush all queued effects\n\tcommitRoot(commitQueue, vnode);\n}\n\n/**\n * Update an existing DOM element with data from a Preact virtual node\n * @param {import('./internal').ComponentChild} vnode The virtual node to render\n * @param {import('./internal').PreactElement} parentDom The DOM element to\n * update\n */\nexport function hydrate(vnode, parentDom) {\n\trender(vnode, parentDom, hydrate);\n}\n","import { assign, slice } from './util';\nimport { createVNode } from './create-element';\n\n/**\n * Clones the given VNode, optionally adding attributes/props and replacing its children.\n * @param {import('./internal').VNode} vnode The virtual DOM element to clone\n * @param {object} props Attributes/props to add when cloning\n * @param {Array<import('./internal').ComponentChildren>} rest Any additional arguments will be used as replacement children.\n * @returns {import('./internal').VNode}\n */\nexport function cloneElement(vnode, props, children) {\n\tlet normalizedProps = assign({}, vnode.props),\n\t\tkey,\n\t\tref,\n\t\ti;\n\tfor (i in props) {\n\t\tif (i == 'key') key = props[i];\n\t\telse if (i == 'ref') ref = props[i];\n\t\telse normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 2) {\n\t\tnormalizedProps.children =\n\t\t\targuments.length > 3 ? slice.call(arguments, 2) : children;\n\t}\n\n\treturn createVNode(\n\t\tvnode.type,\n\t\tnormalizedProps,\n\t\tkey || vnode.key,\n\t\tref || vnode.ref,\n\t\tnull\n\t);\n}\n","/**\n * Find the closest error boundary to a thrown error and call it\n * @param {object} error The thrown value\n * @param {import('../internal').VNode} vnode The vnode that threw\n * the error that was caught (except for unmounting when this parameter\n * is the highest parent that was being unmounted)\n */\nexport function _catchError(error, vnode) {\n\t/** @type {import('../internal').Component} */\n\tlet component, ctor, handled;\n\n\tfor (; (vnode = vnode._parent); ) {\n\t\tif ((component = vnode._component) && !component._processingException) {\n\t\t\ttry {\n\t\t\t\tctor = component.constructor;\n\n\t\t\t\tif (ctor && ctor.getDerivedStateFromError != null) {\n\t\t\t\t\tcomponent.setState(ctor.getDerivedStateFromError(error));\n\t\t\t\t\thandled = component._dirty;\n\t\t\t\t}\n\n\t\t\t\tif (component.componentDidCatch != null) {\n\t\t\t\t\tcomponent.componentDidCatch(error);\n\t\t\t\t\thandled = component._dirty;\n\t\t\t\t}\n\n\t\t\t\t// This is an error boundary. Mark it as having bailed out, and whether it was mid-hydration.\n\t\t\t\tif (handled) {\n\t\t\t\t\treturn (component._pendingError = component);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\terror = e;\n\t\t\t}\n\t\t}\n\t}\n\n\tthrow error;\n}\n"],"names":["slice","options","vnodeId","isValidElement","rerenderQueue","defer","prevDebounce","i","EMPTY_OBJ","EMPTY_ARR","IS_NON_DIMENSIONAL","assign","obj","props","removeNode","node","parentNode","removeChild","createElement","type","children","key","ref","normalizedProps","arguments","length","call","defaultProps","undefined","createVNode","original","vnode","constructor","createRef","current","Fragment","Component","context","getDomSibling","childIndex","indexOf","sibling","updateParentDomPointers","child","base","enqueueRender","c","push","process","debounceRendering","queue","sort","a","b","some","component","commitQueue","oldVNode","oldDom","parentDom","diff","ownerSVGElement","commitRoot","diffChildren","renderResult","newParentVNode","oldParentVNode","globalContext","isSvg","excessDomChildren","isHydrating","j","childVNode","newDom","firstChildDom","refs","oldChildren","oldChildrenLength","Array","isArray","reorderChildren","placeChild","value","unmount","applyRef","tmp","toChildArray","out","nextDom","sibDom","outer","appendChild","nextSibling","insertBefore","diffProps","dom","newProps","oldProps","hydrate","setProperty","setStyle","style","test","name","oldValue","useCapture","o","cssText","replace","toLowerCase","_listeners","addEventListener","eventProxyCapture","eventProxy","removeEventListener","e","setAttribute","removeAttribute","event","newVNode","isNew","oldState","snapshot","clearProcessingException","provider","componentContext","newType","contextType","prototype","render","doRender","sub","state","getDerivedStateFromProps","componentWillMount","componentDidMount","componentWillReceiveProps","shouldComponentUpdate","forEach","componentWillUpdate","componentDidUpdate","getChildContext","getSnapshotBeforeUpdate","diffElementNodes","diffed","root","cb","oldHtml","newHtml","nodeType","localName","document","createTextNode","createElementNS","is","data","childNodes","dangerouslySetInnerHTML","attributes","innerHTML","checked","parentVNode","skipRemove","r","componentWillUnmount","this","replaceNode","firstChild","cloneElement","createContext","defaultValue","contextId","Consumer","contextValue","Provider","subs","ctx","_props","old","splice","error","ctor","handled","getDerivedStateFromError","setState","componentDidCatch","update","callback","s","forceUpdate","Promise","then","bind","resolve","setTimeout"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ !function(n,l){"object"==typeof exports&&"undefined"!=typeof module?l(exports):"function"==typeof define&&define.amd?define(["exports"],l):l(n.preact={})}(this,function(n){var l,u,i,t,o,f,r,e,c={},s=[],a=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function h(n,l){for(var u in l)n[u]=l[u];return n}function v(n){var l=n.parentNode;l&&l.removeChild(n)}function y(n,u,i){var t,o,f,r={};for(f in u)"key"==f?t=u[f]:"ref"==f?o=u[f]:r[f]=u[f];if(arguments.length>2&&(r.children=arguments.length>3?l.call(arguments,2):i),"function"==typeof n&&null!=n.defaultProps)for(f in n.defaultProps)void 0===r[f]&&(r[f]=n.defaultProps[f]);return p(n,r,t,o,null)}function p(n,l,t,o,f){var r={type:n,props:l,key:t,ref:o,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==f?++i:f};return null!=u.vnode&&u.vnode(r),r}function d(n){return n.children}function _(n,l){this.props=n,this.context=l}function k(n,l){if(null==l)return n.__?k(n.__,n.__.__k.indexOf(n)+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return"function"==typeof n.type?k(n):null}function b(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return b(n)}}function m(n){(!n.__d&&(n.__d=!0)&&o.push(n)&&!g.__r++||r!==u.debounceRendering)&&((r=u.debounceRendering)||f)(g)}function g(){for(var n;g.__r=o.length;)n=o.sort(function(n,l){return n.__v.__b-l.__v.__b}),o=[],n.some(function(n){var l,u,i,t,o,f;n.__d&&(o=(t=(l=n).__v).__e,(f=l.__P)&&(u=[],(i=h({},t)).__v=t.__v+1,I(f,t,i,l.__n,void 0!==f.ownerSVGElement,null!=t.__h?[o]:null,u,null==o?k(t):o,t.__h),T(u,t),t.__e!=o&&b(t)))})}function w(n,l,u,i,t,o,f,r,e,a){var h,v,y,_,b,m,g,w=i&&i.__k||s,P=w.length;for(u.__k=[],h=0;h<l.length;h++)if(null!=(_=u.__k[h]=null==(_=l[h])||"boolean"==typeof _?null:"string"==typeof _||"number"==typeof _||"bigint"==typeof _?p(null,_,null,null,_):Array.isArray(_)?p(d,{children:_},null,null,null):_.__b>0?p(_.type,_.props,_.key,null,_.__v):_)){if(_.__=u,_.__b=u.__b+1,null===(y=w[h])||y&&_.key==y.key&&_.type===y.type)w[h]=void 0;else for(v=0;v<P;v++){if((y=w[v])&&_.key==y.key&&_.type===y.type){w[v]=void 0;break}y=null}I(n,_,y=y||c,t,o,f,r,e,a),b=_.__e,(v=_.ref)&&y.ref!=v&&(g||(g=[]),y.ref&&g.push(y.ref,null,_),g.push(v,_.__c||b,_)),null!=b?(null==m&&(m=b),"function"==typeof _.type&&null!=_.__k&&_.__k===y.__k?_.__d=e=x(_,e,n):e=A(n,_,y,w,b,e),a||"option"!==u.type?"function"==typeof u.type&&(u.__d=e):n.value=""):e&&y.__e==e&&e.parentNode!=n&&(e=k(y))}for(u.__e=m,h=P;h--;)null!=w[h]&&("function"==typeof u.type&&null!=w[h].__e&&w[h].__e==u.__d&&(u.__d=k(i,h+1)),M(w[h],w[h]));if(g)for(h=0;h<g.length;h++)L(g[h],g[++h],g[++h])}function x(n,l,u){var i,t;for(i=0;i<n.__k.length;i++)(t=n.__k[i])&&(t.__=n,l="function"==typeof t.type?x(t,l,u):A(u,t,t,n.__k,t.__e,l));return l}function A(n,l,u,i,t,o){var f,r,e;if(void 0!==l.__d)f=l.__d,l.__d=void 0;else if(null==u||t!=o||null==t.parentNode)n:if(null==o||o.parentNode!==n)n.appendChild(t),f=null;else{for(r=o,e=0;(r=r.nextSibling)&&e<i.length;e+=2)if(r==t)break n;n.insertBefore(t,o),f=o}return void 0!==f?f:t.nextSibling}function P(n,l,u,i,t){var o;for(o in u)"children"===o||"key"===o||o in l||$(n,o,null,u[o],i);for(o in l)t&&"function"!=typeof l[o]||"children"===o||"key"===o||"value"===o||"checked"===o||u[o]===l[o]||$(n,o,l[o],u[o],i)}function C(n,l,u){"-"===l[0]?n.setProperty(l,u):n[l]=null==u?"":"number"!=typeof u||a.test(l)?u:u+"px"}function $(n,l,u,i,t){var o;n:if("style"===l)if("string"==typeof u)n.style.cssText=u;else{if("string"==typeof i&&(n.style.cssText=i=""),i)for(l in i)u&&l in u||C(n.style,l,"");if(u)for(l in u)i&&u[l]===i[l]||C(n.style,l,u[l])}else if("o"===l[0]&&"n"===l[1])o=l!==(l=l.replace(/Capture$/,"")),l=l.toLowerCase()in n?l.toLowerCase().slice(2):l.slice(2),n.l||(n.l={}),n.l[l+o]=u,u?i||n.addEventListener(l,o?H:j,o):n.removeEventListener(l,o?H:j,o);else if("dangerouslySetInnerHTML"!==l){if(t)l=l.replace(/xlink[H:h]/,"h").replace(/sName$/,"s");else if("href"!==l&&"list"!==l&&"form"!==l&&"tabIndex"!==l&&"download"!==l&&l in n)try{n[l]=null==u?"":u;break n}catch(n){}"function"==typeof u||(null!=u&&(!1!==u||"a"===l[0]&&"r"===l[1])?n.setAttribute(l,u):n.removeAttribute(l))}}function j(n){this.l[n.type+!1](u.event?u.event(n):n)}function H(n){this.l[n.type+!0](u.event?u.event(n):n)}function I(n,l,i,t,o,f,r,e,c){var s,a,v,y,p,k,b,m,g,x,A,P=l.type;if(void 0!==l.constructor)return null;null!=i.__h&&(c=i.__h,e=l.__e=i.__e,l.__h=null,f=[e]),(s=u.__b)&&s(l);try{n:if("function"==typeof P){if(m=l.props,g=(s=P.contextType)&&t[s.__c],x=s?g?g.props.value:s.__:t,i.__c?b=(a=l.__c=i.__c).__=a.__E:("prototype"in P&&P.prototype.render?l.__c=a=new P(m,x):(l.__c=a=new _(m,x),a.constructor=P,a.render=N),g&&g.sub(a),a.props=m,a.state||(a.state={}),a.context=x,a.__n=t,v=a.__d=!0,a.__h=[]),null==a.__s&&(a.__s=a.state),null!=P.getDerivedStateFromProps&&(a.__s==a.state&&(a.__s=h({},a.__s)),h(a.__s,P.getDerivedStateFromProps(m,a.__s))),y=a.props,p=a.state,v)null==P.getDerivedStateFromProps&&null!=a.componentWillMount&&a.componentWillMount(),null!=a.componentDidMount&&a.__h.push(a.componentDidMount);else{if(null==P.getDerivedStateFromProps&&m!==y&&null!=a.componentWillReceiveProps&&a.componentWillReceiveProps(m,x),!a.__e&&null!=a.shouldComponentUpdate&&!1===a.shouldComponentUpdate(m,a.__s,x)||l.__v===i.__v){a.props=m,a.state=a.__s,l.__v!==i.__v&&(a.__d=!1),a.__v=l,l.__e=i.__e,l.__k=i.__k,l.__k.forEach(function(n){n&&(n.__=l)}),a.__h.length&&r.push(a);break n}null!=a.componentWillUpdate&&a.componentWillUpdate(m,a.__s,x),null!=a.componentDidUpdate&&a.__h.push(function(){a.componentDidUpdate(y,p,k)})}a.context=x,a.props=m,a.state=a.__s,(s=u.__r)&&s(l),a.__d=!1,a.__v=l,a.__P=n,s=a.render(a.props,a.state,a.context),a.state=a.__s,null!=a.getChildContext&&(t=h(h({},t),a.getChildContext())),v||null==a.getSnapshotBeforeUpdate||(k=a.getSnapshotBeforeUpdate(y,p)),A=null!=s&&s.type===d&&null==s.key?s.props.children:s,w(n,Array.isArray(A)?A:[A],l,i,t,o,f,r,e,c),a.base=l.__e,l.__h=null,a.__h.length&&r.push(a),b&&(a.__E=a.__=null),a.__e=!1}else null==f&&l.__v===i.__v?(l.__k=i.__k,l.__e=i.__e):l.__e=z(i.__e,l,i,t,o,f,r,c);(s=u.diffed)&&s(l)}catch(n){l.__v=null,(c||null!=f)&&(l.__e=e,l.__h=!!c,f[f.indexOf(e)]=null),u.__e(n,l,i)}}function T(n,l){u.__c&&u.__c(l,n),n.some(function(l){try{n=l.__h,l.__h=[],n.some(function(n){n.call(l)})}catch(n){u.__e(n,l.__v)}})}function z(n,u,i,t,o,f,r,e){var s,a,h,y=i.props,p=u.props,d=u.type,_=0;if("svg"===d&&(o=!0),null!=f)for(;_<f.length;_++)if((s=f[_])&&(s===n||(d?s.localName==d:3==s.nodeType))){n=s,f[_]=null;break}if(null==n){if(null===d)return document.createTextNode(p);n=o?document.createElementNS("http://www.w3.org/2000/svg",d):document.createElement(d,p.is&&p),f=null,e=!1}if(null===d)y===p||e&&n.data===p||(n.data=p);else{if(f=f&&l.call(n.childNodes),a=(y=i.props||c).dangerouslySetInnerHTML,h=p.dangerouslySetInnerHTML,!e){if(null!=f)for(y={},_=0;_<n.attributes.length;_++)y[n.attributes[_].name]=n.attributes[_].value;(h||a)&&(h&&(a&&h.__html==a.__html||h.__html===n.innerHTML)||(n.innerHTML=h&&h.__html||""))}if(P(n,p,y,o,e),h)u.__k=[];else if(_=u.props.children,w(n,Array.isArray(_)?_:[_],u,i,t,o&&"foreignObject"!==d,f,r,f?f[0]:i.__k&&k(i,0),e),null!=f)for(_=f.length;_--;)null!=f[_]&&v(f[_]);e||("value"in p&&void 0!==(_=p.value)&&(_!==n.value||"progress"===d&&!_)&&$(n,"value",_,y.value,!1),"checked"in p&&void 0!==(_=p.checked)&&_!==n.checked&&$(n,"checked",_,y.checked,!1))}return n}function L(n,l,i){try{"function"==typeof n?n(l):n.current=l}catch(n){u.__e(n,i)}}function M(n,l,i){var t,o;if(u.unmount&&u.unmount(n),(t=n.ref)&&(t.current&&t.current!==n.__e||L(t,null,l)),null!=(t=n.__c)){if(t.componentWillUnmount)try{t.componentWillUnmount()}catch(n){u.__e(n,l)}t.base=t.__P=null}if(t=n.__k)for(o=0;o<t.length;o++)t[o]&&M(t[o],l,"function"!=typeof n.type);i||null==n.__e||v(n.__e),n.__e=n.__d=void 0}function N(n,l,u){return this.constructor(n,u)}function O(n,i,t){var o,f,r;u.__&&u.__(n,i),f=(o="function"==typeof t)?null:t&&t.__k||i.__k,r=[],I(i,n=(!o&&t||i).__k=y(d,null,[n]),f||c,c,void 0!==i.ownerSVGElement,!o&&t?[t]:f?null:i.firstChild?l.call(i.childNodes):null,r,!o&&t?t:f?f.__e:i.firstChild,o),T(r,n)}l=s.slice,u={__e:function(n,l){for(var u,i,t;l=l.__;)if((u=l.__c)&&!u.__)try{if((i=u.constructor)&&null!=i.getDerivedStateFromError&&(u.setState(i.getDerivedStateFromError(n)),t=u.__d),null!=u.componentDidCatch&&(u.componentDidCatch(n),t=u.__d),t)return u.__E=u}catch(l){n=l}throw n}},i=0,t=function(n){return null!=n&&void 0===n.constructor},_.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=h({},this.state),"function"==typeof n&&(n=n(h({},u),this.props)),n&&h(u,n),null!=n&&this.__v&&(l&&this.__h.push(l),m(this))},_.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),m(this))},_.prototype.render=d,o=[],f="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,g.__r=0,e=0,n.render=O,n.hydrate=function n(l,u){O(l,u,n)},n.createElement=y,n.h=y,n.Fragment=d,n.createRef=function(){return{current:null}},n.isValidElement=t,n.Component=_,n.cloneElement=function(n,u,i){var t,o,f,r=h({},n.props);for(f in u)"key"==f?t=u[f]:"ref"==f?o=u[f]:r[f]=u[f];return arguments.length>2&&(r.children=arguments.length>3?l.call(arguments,2):i),p(n.type,r,t||n.key,o||n.ref,null)},n.createContext=function(n,l){var u={__c:l="__cC"+e++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var u,i;return this.getChildContext||(u=[],(i={})[l]=this,this.getChildContext=function(){return i},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&u.some(m)},this.sub=function(n){u.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u.splice(u.indexOf(n),1),l&&l.call(n)}}),n.children}};return u.Provider.__=u.Consumer.contextType=u},n.toChildArray=function n(l,u){return u=u||[],null==l||"boolean"==typeof l||(Array.isArray(l)?l.some(function(l){n(l,u)}):u.push(l)),u},n.options=u});
2
+ //# sourceMappingURL=preact.umd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preact.umd.js","sources":["../src/util.js","../src/options.js","../src/create-element.js","../src/component.js","../src/create-context.js","../src/constants.js","../src/diff/children.js","../src/diff/props.js","../src/diff/index.js","../src/render.js","../src/diff/catch-error.js","../src/clone-element.js"],"sourcesContent":["import { EMPTY_ARR } from \"./constants\";\n\n/**\n * Assign properties from `props` to `obj`\n * @template O, P The obj and props types\n * @param {O} obj The object to copy properties to\n * @param {P} props The object to copy properties from\n * @returns {O & P}\n */\nexport function assign(obj, props) {\n\t// @ts-ignore We change the type of `obj` to be `O & P`\n\tfor (let i in props) obj[i] = props[i];\n\treturn /** @type {O & P} */ (obj);\n}\n\n/**\n * Remove a child node from its parent if attached. This is a workaround for\n * IE11 which doesn't support `Element.prototype.remove()`. Using this function\n * is smaller than including a dedicated polyfill.\n * @param {Node} node The node to remove\n */\nexport function removeNode(node) {\n\tlet parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n\nexport const slice = EMPTY_ARR.slice;\n","import { _catchError } from './diff/catch-error';\n\n/**\n * The `option` object can potentially contain callback functions\n * that are called during various stages of our renderer. This is the\n * foundation on which all our addons like `preact/debug`, `preact/compat`,\n * and `preact/hooks` are based on. See the `Options` type in `internal.d.ts`\n * for a full list of available option hooks (most editors/IDEs allow you to\n * ctrl+click or cmd+click on mac the type definition below).\n * @type {import('./internal').Options}\n */\nconst options = {\n\t_catchError\n};\n\nexport default options;\n","import { slice } from './util';\nimport options from './options';\n\nlet vnodeId = 0;\n\n/**\n * Create an virtual node (used for JSX)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * constructor for this virtual node\n * @param {object | null | undefined} [props] The properties of the virtual node\n * @param {Array<import('.').ComponentChildren>} [children] The children of the virtual node\n * @returns {import('./internal').VNode}\n */\nexport function createElement(type, props, children) {\n\tlet normalizedProps = {},\n\t\tkey,\n\t\tref,\n\t\ti;\n\tfor (i in props) {\n\t\tif (i == 'key') key = props[i];\n\t\telse if (i == 'ref') ref = props[i];\n\t\telse normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 2) {\n\t\tnormalizedProps.children =\n\t\t\targuments.length > 3 ? slice.call(arguments, 2) : children;\n\t}\n\n\t// If a Component VNode, check for and apply defaultProps\n\t// Note: type may be undefined in development, must never error here.\n\tif (typeof type == 'function' && type.defaultProps != null) {\n\t\tfor (i in type.defaultProps) {\n\t\t\tif (normalizedProps[i] === undefined) {\n\t\t\t\tnormalizedProps[i] = type.defaultProps[i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn createVNode(type, normalizedProps, key, ref, null);\n}\n\n/**\n * Create a VNode (used internally by Preact)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * Constructor for this virtual node\n * @param {object | string | number | null} props The properties of this virtual node.\n * If this virtual node represents a text node, this is the text of the node (string or number).\n * @param {string | number | null} key The key for this virtual node, used when\n * diffing it against its children\n * @param {import('./internal').VNode[\"ref\"]} ref The ref property that will\n * receive a reference to its created child\n * @returns {import('./internal').VNode}\n */\nexport function createVNode(type, props, key, ref, original) {\n\t// V8 seems to be better at detecting type shapes if the object is allocated from the same call site\n\t// Do not inline into createElement and coerceToVNode!\n\tconst vnode = {\n\t\ttype,\n\t\tprops,\n\t\tkey,\n\t\tref,\n\t\t_children: null,\n\t\t_parent: null,\n\t\t_depth: 0,\n\t\t_dom: null,\n\t\t// _nextDom must be initialized to undefined b/c it will eventually\n\t\t// be set to dom.nextSibling which can return `null` and it is important\n\t\t// to be able to distinguish between an uninitialized _nextDom and\n\t\t// a _nextDom that has been set to `null`\n\t\t_nextDom: undefined,\n\t\t_component: null,\n\t\t_hydrating: null,\n\t\tconstructor: undefined,\n\t\t_original: original == null ? ++vnodeId : original\n\t};\n\n\tif (options.vnode != null) options.vnode(vnode);\n\n\treturn vnode;\n}\n\nexport function createRef() {\n\treturn { current: null };\n}\n\nexport function Fragment(props) {\n\treturn props.children;\n}\n\n/**\n * Check if a the argument is a valid Preact VNode.\n * @param {*} vnode\n * @returns {vnode is import('./internal').VNode}\n */\nexport const isValidElement = vnode =>\n\tvnode != null && vnode.constructor === undefined;\n","import { assign } from './util';\nimport { diff, commitRoot } from './diff/index';\nimport options from './options';\nimport { Fragment } from './create-element';\n\n/**\n * Base Component class. Provides `setState()` and `forceUpdate()`, which\n * trigger rendering\n * @param {object} props The initial component props\n * @param {object} context The initial context from parent components'\n * getChildContext\n */\nexport function Component(props, context) {\n\tthis.props = props;\n\tthis.context = context;\n}\n\n/**\n * Update component state and schedule a re-render.\n * @this {import('./internal').Component}\n * @param {object | ((s: object, p: object) => object)} update A hash of state\n * properties to update with new values or a function that given the current\n * state and props returns a new partial state\n * @param {() => void} [callback] A function to be called once component state is\n * updated\n */\nComponent.prototype.setState = function(update, callback) {\n\t// only clone state when copying to nextState the first time.\n\tlet s;\n\tif (this._nextState != null && this._nextState !== this.state) {\n\t\ts = this._nextState;\n\t} else {\n\t\ts = this._nextState = assign({}, this.state);\n\t}\n\n\tif (typeof update == 'function') {\n\t\t// Some libraries like `immer` mark the current state as readonly,\n\t\t// preventing us from mutating it, so we need to clone it. See #2716\n\t\tupdate = update(assign({}, s), this.props);\n\t}\n\n\tif (update) {\n\t\tassign(s, update);\n\t}\n\n\t// Skip update if updater function returned null\n\tif (update == null) return;\n\n\tif (this._vnode) {\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Immediately perform a synchronous re-render of the component\n * @this {import('./internal').Component}\n * @param {() => void} [callback] A function to be called after component is\n * re-rendered\n */\nComponent.prototype.forceUpdate = function(callback) {\n\tif (this._vnode) {\n\t\t// Set render mode so that we can differentiate where the render request\n\t\t// is coming from. We need this because forceUpdate should never call\n\t\t// shouldComponentUpdate\n\t\tthis._force = true;\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Accepts `props` and `state`, and returns a new Virtual DOM tree to build.\n * Virtual DOM is generally constructed via [JSX](http://jasonformat.com/wtf-is-jsx).\n * @param {object} props Props (eg: JSX attributes) received from parent\n * element/component\n * @param {object} state The component's current state\n * @param {object} context Context object, as returned by the nearest\n * ancestor's `getChildContext()`\n * @returns {import('./index').ComponentChildren | void}\n */\nComponent.prototype.render = Fragment;\n\n/**\n * @param {import('./internal').VNode} vnode\n * @param {number | null} [childIndex]\n */\nexport function getDomSibling(vnode, childIndex) {\n\tif (childIndex == null) {\n\t\t// Use childIndex==null as a signal to resume the search from the vnode's sibling\n\t\treturn vnode._parent\n\t\t\t? getDomSibling(vnode._parent, vnode._parent._children.indexOf(vnode) + 1)\n\t\t\t: null;\n\t}\n\n\tlet sibling;\n\tfor (; childIndex < vnode._children.length; childIndex++) {\n\t\tsibling = vnode._children[childIndex];\n\n\t\tif (sibling != null && sibling._dom != null) {\n\t\t\t// Since updateParentDomPointers keeps _dom pointer correct,\n\t\t\t// we can rely on _dom to tell us if this subtree contains a\n\t\t\t// rendered DOM node, and what the first rendered DOM node is\n\t\t\treturn sibling._dom;\n\t\t}\n\t}\n\n\t// If we get here, we have not found a DOM node in this vnode's children.\n\t// We must resume from this vnode's sibling (in it's parent _children array)\n\t// Only climb up and search the parent if we aren't searching through a DOM\n\t// VNode (meaning we reached the DOM parent of the original vnode that began\n\t// the search)\n\treturn typeof vnode.type == 'function' ? getDomSibling(vnode) : null;\n}\n\n/**\n * Trigger in-place re-rendering of a component.\n * @param {import('./internal').Component} component The component to rerender\n */\nfunction renderComponent(component) {\n\tlet vnode = component._vnode,\n\t\toldDom = vnode._dom,\n\t\tparentDom = component._parentDom;\n\n\tif (parentDom) {\n\t\tlet commitQueue = [];\n\t\tconst oldVNode = assign({}, vnode);\n\t\toldVNode._original = vnode._original + 1;\n\n\t\tdiff(\n\t\t\tparentDom,\n\t\t\tvnode,\n\t\t\toldVNode,\n\t\t\tcomponent._globalContext,\n\t\t\tparentDom.ownerSVGElement !== undefined,\n\t\t\tvnode._hydrating != null ? [oldDom] : null,\n\t\t\tcommitQueue,\n\t\t\toldDom == null ? getDomSibling(vnode) : oldDom,\n\t\t\tvnode._hydrating\n\t\t);\n\t\tcommitRoot(commitQueue, vnode);\n\n\t\tif (vnode._dom != oldDom) {\n\t\t\tupdateParentDomPointers(vnode);\n\t\t}\n\t}\n}\n\n/**\n * @param {import('./internal').VNode} vnode\n */\nfunction updateParentDomPointers(vnode) {\n\tif ((vnode = vnode._parent) != null && vnode._component != null) {\n\t\tvnode._dom = vnode._component.base = null;\n\t\tfor (let i = 0; i < vnode._children.length; i++) {\n\t\t\tlet child = vnode._children[i];\n\t\t\tif (child != null && child._dom != null) {\n\t\t\t\tvnode._dom = vnode._component.base = child._dom;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn updateParentDomPointers(vnode);\n\t}\n}\n\n/**\n * The render queue\n * @type {Array<import('./internal').Component>}\n */\nlet rerenderQueue = [];\n\n/**\n * Asynchronously schedule a callback\n * @type {(cb: () => void) => void}\n */\n/* istanbul ignore next */\n// Note the following line isn't tree-shaken by rollup cuz of rollup/rollup#2566\nconst defer =\n\ttypeof Promise == 'function'\n\t\t? Promise.prototype.then.bind(Promise.resolve())\n\t\t: setTimeout;\n\n/*\n * The value of `Component.debounce` must asynchronously invoke the passed in callback. It is\n * important that contributors to Preact can consistently reason about what calls to `setState`, etc.\n * do, and when their effects will be applied. See the links below for some further reading on designing\n * asynchronous APIs.\n * * [Designing APIs for Asynchrony](https://blog.izs.me/2013/08/designing-apis-for-asynchrony)\n * * [Callbacks synchronous and asynchronous](https://blog.ometer.com/2011/07/24/callbacks-synchronous-and-asynchronous/)\n */\n\nlet prevDebounce;\n\n/**\n * Enqueue a rerender of a component\n * @param {import('./internal').Component} c The component to rerender\n */\nexport function enqueueRender(c) {\n\tif (\n\t\t(!c._dirty &&\n\t\t\t(c._dirty = true) &&\n\t\t\trerenderQueue.push(c) &&\n\t\t\t!process._rerenderCount++) ||\n\t\tprevDebounce !== options.debounceRendering\n\t) {\n\t\tprevDebounce = options.debounceRendering;\n\t\t(prevDebounce || defer)(process);\n\t}\n}\n\n/** Flush the render queue by rerendering all queued components */\nfunction process() {\n\tlet queue;\n\twhile ((process._rerenderCount = rerenderQueue.length)) {\n\t\tqueue = rerenderQueue.sort((a, b) => a._vnode._depth - b._vnode._depth);\n\t\trerenderQueue = [];\n\t\t// Don't update `renderCount` yet. Keep its value non-zero to prevent unnecessary\n\t\t// process() calls from getting scheduled while `queue` is still being consumed.\n\t\tqueue.some(c => {\n\t\t\tif (c._dirty) renderComponent(c);\n\t\t});\n\t}\n}\nprocess._rerenderCount = 0;\n","import { enqueueRender } from './component';\n\nexport let i = 0;\n\nexport function createContext(defaultValue, contextId) {\n\tcontextId = '__cC' + i++;\n\n\tconst context = {\n\t\t_id: contextId,\n\t\t_defaultValue: defaultValue,\n\t\t/** @type {import('./internal').FunctionComponent} */\n\t\tConsumer(props, contextValue) {\n\t\t\t// return props.children(\n\t\t\t// \tcontext[contextId] ? context[contextId].props.value : defaultValue\n\t\t\t// );\n\t\t\treturn props.children(contextValue);\n\t\t},\n\t\t/** @type {import('./internal').FunctionComponent} */\n\t\tProvider(props) {\n\t\t\tif (!this.getChildContext) {\n\t\t\t\tlet subs = [];\n\t\t\t\tlet ctx = {};\n\t\t\t\tctx[contextId] = this;\n\n\t\t\t\tthis.getChildContext = () => ctx;\n\n\t\t\t\tthis.shouldComponentUpdate = function(_props) {\n\t\t\t\t\tif (this.props.value !== _props.value) {\n\t\t\t\t\t\t// I think the forced value propagation here was only needed when `options.debounceRendering` was being bypassed:\n\t\t\t\t\t\t// https://github.com/preactjs/preact/commit/4d339fb803bea09e9f198abf38ca1bf8ea4b7771#diff-54682ce380935a717e41b8bfc54737f6R358\n\t\t\t\t\t\t// In those cases though, even with the value corrected, we're double-rendering all nodes.\n\t\t\t\t\t\t// It might be better to just tell folks not to use force-sync mode.\n\t\t\t\t\t\t// Currently, using `useContext()` in a class component will overwrite its `this.context` value.\n\t\t\t\t\t\t// subs.some(c => {\n\t\t\t\t\t\t// \tc.context = _props.value;\n\t\t\t\t\t\t// \tenqueueRender(c);\n\t\t\t\t\t\t// });\n\n\t\t\t\t\t\t// subs.some(c => {\n\t\t\t\t\t\t// \tc.context[contextId] = _props.value;\n\t\t\t\t\t\t// \tenqueueRender(c);\n\t\t\t\t\t\t// });\n\t\t\t\t\t\tsubs.some(enqueueRender);\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tthis.sub = c => {\n\t\t\t\t\tsubs.push(c);\n\t\t\t\t\tlet old = c.componentWillUnmount;\n\t\t\t\t\tc.componentWillUnmount = () => {\n\t\t\t\t\t\tsubs.splice(subs.indexOf(c), 1);\n\t\t\t\t\t\tif (old) old.call(c);\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn props.children;\n\t\t}\n\t};\n\n\t// Devtools needs access to the context object when it\n\t// encounters a Provider. This is necessary to support\n\t// setting `displayName` on the context object instead\n\t// of on the component itself. See:\n\t// https://reactjs.org/docs/context.html#contextdisplayname\n\n\treturn (context.Provider._contextRef = context.Consumer.contextType = context);\n}\n","export const EMPTY_OBJ = {};\nexport const EMPTY_ARR = [];\nexport const IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;\n","import { diff, unmount, applyRef } from './index';\nimport { createVNode, Fragment } from '../create-element';\nimport { EMPTY_OBJ, EMPTY_ARR } from '../constants';\nimport { getDomSibling } from '../component';\n\n/**\n * Diff the children of a virtual node\n * @param {import('../internal').PreactElement} parentDom The DOM element whose\n * children are being diffed\n * @param {import('../internal').ComponentChildren[]} renderResult\n * @param {import('../internal').VNode} newParentVNode The new virtual\n * node whose children should be diff'ed against oldParentVNode\n * @param {import('../internal').VNode} oldParentVNode The old virtual\n * node whose children should be diff'ed against newParentVNode\n * @param {object} globalContext The current context object - modified by getChildContext\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {Array<import('../internal').PreactElement>} excessDomChildren\n * @param {Array<import('../internal').Component>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').PreactElement} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} isHydrating Whether or not we are in hydration\n */\nexport function diffChildren(\n\tparentDom,\n\trenderResult,\n\tnewParentVNode,\n\toldParentVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet i, j, oldVNode, childVNode, newDom, firstChildDom, refs;\n\n\t// This is a compression of oldParentVNode!=null && oldParentVNode != EMPTY_OBJ && oldParentVNode._children || EMPTY_ARR\n\t// as EMPTY_OBJ._children should be `undefined`.\n\tlet oldChildren = (oldParentVNode && oldParentVNode._children) || EMPTY_ARR;\n\n\tlet oldChildrenLength = oldChildren.length;\n\n\tnewParentVNode._children = [];\n\tfor (i = 0; i < renderResult.length; i++) {\n\t\tchildVNode = renderResult[i];\n\n\t\tif (childVNode == null || typeof childVNode == 'boolean') {\n\t\t\tchildVNode = newParentVNode._children[i] = null;\n\t\t}\n\t\t// If this newVNode is being reused (e.g. <div>{reuse}{reuse}</div>) in the same diff,\n\t\t// or we are rendering a component (e.g. setState) copy the oldVNodes so it can have\n\t\t// it's own DOM & etc. pointers\n\t\telse if (\n\t\t\ttypeof childVNode == 'string' ||\n\t\t\ttypeof childVNode == 'number' ||\n\t\t\t// eslint-disable-next-line valid-typeof\n\t\t\ttypeof childVNode == 'bigint'\n\t\t) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tnull,\n\t\t\t\tchildVNode,\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tchildVNode\n\t\t\t);\n\t\t} else if (Array.isArray(childVNode)) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tFragment,\n\t\t\t\t{ children: childVNode },\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tnull\n\t\t\t);\n\t\t} else if (childVNode._depth > 0) {\n\t\t\t// VNode is already in use, clone it. This can happen in the following\n\t\t\t// scenario:\n\t\t\t// const reuse = <div />\n\t\t\t// <div>{reuse}<span />{reuse}</div>\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tchildVNode.type,\n\t\t\t\tchildVNode.props,\n\t\t\t\tchildVNode.key,\n\t\t\t\tnull,\n\t\t\t\tchildVNode._original\n\t\t\t);\n\t\t} else {\n\t\t\tchildVNode = newParentVNode._children[i] = childVNode;\n\t\t}\n\n\t\t// Terser removes the `continue` here and wraps the loop body\n\t\t// in a `if (childVNode) { ... } condition\n\t\tif (childVNode == null) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tchildVNode._parent = newParentVNode;\n\t\tchildVNode._depth = newParentVNode._depth + 1;\n\n\t\t// Check if we find a corresponding element in oldChildren.\n\t\t// If found, delete the array item by setting to `undefined`.\n\t\t// We use `undefined`, as `null` is reserved for empty placeholders\n\t\t// (holes).\n\t\toldVNode = oldChildren[i];\n\n\t\tif (\n\t\t\toldVNode === null ||\n\t\t\t(oldVNode &&\n\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\tchildVNode.type === oldVNode.type)\n\t\t) {\n\t\t\toldChildren[i] = undefined;\n\t\t} else {\n\t\t\t// Either oldVNode === undefined or oldChildrenLength > 0,\n\t\t\t// so after this loop oldVNode == null or oldVNode is a valid value.\n\t\t\tfor (j = 0; j < oldChildrenLength; j++) {\n\t\t\t\toldVNode = oldChildren[j];\n\t\t\t\t// If childVNode is unkeyed, we only match similarly unkeyed nodes, otherwise we match by key.\n\t\t\t\t// We always match by type (in either case).\n\t\t\t\tif (\n\t\t\t\t\toldVNode &&\n\t\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\t\tchildVNode.type === oldVNode.type\n\t\t\t\t) {\n\t\t\t\t\toldChildren[j] = undefined;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\toldVNode = null;\n\t\t\t}\n\t\t}\n\n\t\toldVNode = oldVNode || EMPTY_OBJ;\n\n\t\t// Morph the old element into the new one, but don't append it to the dom yet\n\t\tdiff(\n\t\t\tparentDom,\n\t\t\tchildVNode,\n\t\t\toldVNode,\n\t\t\tglobalContext,\n\t\t\tisSvg,\n\t\t\texcessDomChildren,\n\t\t\tcommitQueue,\n\t\t\toldDom,\n\t\t\tisHydrating\n\t\t);\n\n\t\tnewDom = childVNode._dom;\n\n\t\tif ((j = childVNode.ref) && oldVNode.ref != j) {\n\t\t\tif (!refs) refs = [];\n\t\t\tif (oldVNode.ref) refs.push(oldVNode.ref, null, childVNode);\n\t\t\trefs.push(j, childVNode._component || newDom, childVNode);\n\t\t}\n\n\t\tif (newDom != null) {\n\t\t\tif (firstChildDom == null) {\n\t\t\t\tfirstChildDom = newDom;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\ttypeof childVNode.type == 'function' &&\n\t\t\t\tchildVNode._children != null && // Can be null if childVNode suspended\n\t\t\t\tchildVNode._children === oldVNode._children\n\t\t\t) {\n\t\t\t\tchildVNode._nextDom = oldDom = reorderChildren(\n\t\t\t\t\tchildVNode,\n\t\t\t\t\toldDom,\n\t\t\t\t\tparentDom\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\toldDom = placeChild(\n\t\t\t\t\tparentDom,\n\t\t\t\t\tchildVNode,\n\t\t\t\t\toldVNode,\n\t\t\t\t\toldChildren,\n\t\t\t\t\tnewDom,\n\t\t\t\t\toldDom\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Browsers will infer an option's `value` from `textContent` when\n\t\t\t// no value is present. This essentially bypasses our code to set it\n\t\t\t// later in `diff()`. It works fine in all browsers except for IE11\n\t\t\t// where it breaks setting `select.value`. There it will be always set\n\t\t\t// to an empty string. Re-applying an options value will fix that, so\n\t\t\t// there are probably some internal data structures that aren't\n\t\t\t// updated properly.\n\t\t\t//\n\t\t\t// To fix it we make sure to reset the inferred value, so that our own\n\t\t\t// value check in `diff()` won't be skipped.\n\t\t\tif (!isHydrating && newParentVNode.type === 'option') {\n\t\t\t\t// @ts-ignore We have validated that the type of parentDOM is 'option'\n\t\t\t\t// in the above check\n\t\t\t\tparentDom.value = '';\n\t\t\t} else if (typeof newParentVNode.type == 'function') {\n\t\t\t\t// Because the newParentVNode is Fragment-like, we need to set it's\n\t\t\t\t// _nextDom property to the nextSibling of its last child DOM node.\n\t\t\t\t//\n\t\t\t\t// `oldDom` contains the correct value here because if the last child\n\t\t\t\t// is a Fragment-like, then oldDom has already been set to that child's _nextDom.\n\t\t\t\t// If the last child is a DOM VNode, then oldDom will be set to that DOM\n\t\t\t\t// node's nextSibling.\n\t\t\t\tnewParentVNode._nextDom = oldDom;\n\t\t\t}\n\t\t} else if (\n\t\t\toldDom &&\n\t\t\toldVNode._dom == oldDom &&\n\t\t\toldDom.parentNode != parentDom\n\t\t) {\n\t\t\t// The above condition is to handle null placeholders. See test in placeholder.test.js:\n\t\t\t// `efficiently replace null placeholders in parent rerenders`\n\t\t\toldDom = getDomSibling(oldVNode);\n\t\t}\n\t}\n\n\tnewParentVNode._dom = firstChildDom;\n\n\t// Remove remaining oldChildren if there are any.\n\tfor (i = oldChildrenLength; i--; ) {\n\t\tif (oldChildren[i] != null) {\n\t\t\tif (\n\t\t\t\ttypeof newParentVNode.type == 'function' &&\n\t\t\t\toldChildren[i]._dom != null &&\n\t\t\t\toldChildren[i]._dom == newParentVNode._nextDom\n\t\t\t) {\n\t\t\t\t// If the newParentVNode.__nextDom points to a dom node that is about to\n\t\t\t\t// be unmounted, then get the next sibling of that vnode and set\n\t\t\t\t// _nextDom to it\n\t\t\t\tnewParentVNode._nextDom = getDomSibling(oldParentVNode, i + 1);\n\t\t\t}\n\n\t\t\tunmount(oldChildren[i], oldChildren[i]);\n\t\t}\n\t}\n\n\t// Set refs only after unmount\n\tif (refs) {\n\t\tfor (i = 0; i < refs.length; i++) {\n\t\t\tapplyRef(refs[i], refs[++i], refs[++i]);\n\t\t}\n\t}\n}\n\nfunction reorderChildren(childVNode, oldDom, parentDom) {\n\tfor (let tmp = 0; tmp < childVNode._children.length; tmp++) {\n\t\tlet vnode = childVNode._children[tmp];\n\t\tif (vnode) {\n\t\t\t// We typically enter this code path on sCU bailout, where we copy\n\t\t\t// oldVNode._children to newVNode._children. If that is the case, we need\n\t\t\t// to update the old children's _parent pointer to point to the newVNode\n\t\t\t// (childVNode here).\n\t\t\tvnode._parent = childVNode;\n\n\t\t\tif (typeof vnode.type == 'function') {\n\t\t\t\toldDom = reorderChildren(vnode, oldDom, parentDom);\n\t\t\t} else {\n\t\t\t\toldDom = placeChild(\n\t\t\t\t\tparentDom,\n\t\t\t\t\tvnode,\n\t\t\t\t\tvnode,\n\t\t\t\t\tchildVNode._children,\n\t\t\t\t\tvnode._dom,\n\t\t\t\t\toldDom\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn oldDom;\n}\n\n/**\n * Flatten and loop through the children of a virtual node\n * @param {import('../index').ComponentChildren} children The unflattened\n * children of a virtual node\n * @returns {import('../internal').VNode[]}\n */\nexport function toChildArray(children, out) {\n\tout = out || [];\n\tif (children == null || typeof children == 'boolean') {\n\t} else if (Array.isArray(children)) {\n\t\tchildren.some(child => {\n\t\t\ttoChildArray(child, out);\n\t\t});\n\t} else {\n\t\tout.push(children);\n\t}\n\treturn out;\n}\n\nfunction placeChild(\n\tparentDom,\n\tchildVNode,\n\toldVNode,\n\toldChildren,\n\tnewDom,\n\toldDom\n) {\n\tlet nextDom;\n\tif (childVNode._nextDom !== undefined) {\n\t\t// Only Fragments or components that return Fragment like VNodes will\n\t\t// have a non-undefined _nextDom. Continue the diff from the sibling\n\t\t// of last DOM child of this child VNode\n\t\tnextDom = childVNode._nextDom;\n\n\t\t// Eagerly cleanup _nextDom. We don't need to persist the value because\n\t\t// it is only used by `diffChildren` to determine where to resume the diff after\n\t\t// diffing Components and Fragments. Once we store it the nextDOM local var, we\n\t\t// can clean up the property\n\t\tchildVNode._nextDom = undefined;\n\t} else if (\n\t\toldVNode == null ||\n\t\tnewDom != oldDom ||\n\t\tnewDom.parentNode == null\n\t) {\n\t\touter: if (oldDom == null || oldDom.parentNode !== parentDom) {\n\t\t\tparentDom.appendChild(newDom);\n\t\t\tnextDom = null;\n\t\t} else {\n\t\t\t// `j<oldChildrenLength; j+=2` is an alternative to `j++<oldChildrenLength/2`\n\t\t\tfor (\n\t\t\t\tlet sibDom = oldDom, j = 0;\n\t\t\t\t(sibDom = sibDom.nextSibling) && j < oldChildren.length;\n\t\t\t\tj += 2\n\t\t\t) {\n\t\t\t\tif (sibDom == newDom) {\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t}\n\t\t\tparentDom.insertBefore(newDom, oldDom);\n\t\t\tnextDom = oldDom;\n\t\t}\n\t}\n\n\t// If we have pre-calculated the nextDOM node, use it. Else calculate it now\n\t// Strictly check for `undefined` here cuz `null` is a valid value of `nextDom`.\n\t// See more detail in create-element.js:createVNode\n\tif (nextDom !== undefined) {\n\t\toldDom = nextDom;\n\t} else {\n\t\toldDom = newDom.nextSibling;\n\t}\n\n\treturn oldDom;\n}\n","import { IS_NON_DIMENSIONAL } from '../constants';\nimport options from '../options';\n\n/**\n * Diff the old and new properties of a VNode and apply changes to the DOM node\n * @param {import('../internal').PreactElement} dom The DOM node to apply\n * changes to\n * @param {object} newProps The new props\n * @param {object} oldProps The old props\n * @param {boolean} isSvg Whether or not this node is an SVG node\n * @param {boolean} hydrate Whether or not we are in hydration mode\n */\nexport function diffProps(dom, newProps, oldProps, isSvg, hydrate) {\n\tlet i;\n\n\tfor (i in oldProps) {\n\t\tif (i !== 'children' && i !== 'key' && !(i in newProps)) {\n\t\t\tsetProperty(dom, i, null, oldProps[i], isSvg);\n\t\t}\n\t}\n\n\tfor (i in newProps) {\n\t\tif (\n\t\t\t(!hydrate || typeof newProps[i] == 'function') &&\n\t\t\ti !== 'children' &&\n\t\t\ti !== 'key' &&\n\t\t\ti !== 'value' &&\n\t\t\ti !== 'checked' &&\n\t\t\toldProps[i] !== newProps[i]\n\t\t) {\n\t\t\tsetProperty(dom, i, newProps[i], oldProps[i], isSvg);\n\t\t}\n\t}\n}\n\nfunction setStyle(style, key, value) {\n\tif (key[0] === '-') {\n\t\tstyle.setProperty(key, value);\n\t} else if (value == null) {\n\t\tstyle[key] = '';\n\t} else if (typeof value != 'number' || IS_NON_DIMENSIONAL.test(key)) {\n\t\tstyle[key] = value;\n\t} else {\n\t\tstyle[key] = value + 'px';\n\t}\n}\n\n/**\n * Set a property value on a DOM node\n * @param {import('../internal').PreactElement} dom The DOM node to modify\n * @param {string} name The name of the property to set\n * @param {*} value The value to set the property to\n * @param {*} oldValue The old value the property had\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node or not\n */\nexport function setProperty(dom, name, value, oldValue, isSvg) {\n\tlet useCapture;\n\n\to: if (name === 'style') {\n\t\tif (typeof value == 'string') {\n\t\t\tdom.style.cssText = value;\n\t\t} else {\n\t\t\tif (typeof oldValue == 'string') {\n\t\t\t\tdom.style.cssText = oldValue = '';\n\t\t\t}\n\n\t\t\tif (oldValue) {\n\t\t\t\tfor (name in oldValue) {\n\t\t\t\t\tif (!(value && name in value)) {\n\t\t\t\t\t\tsetStyle(dom.style, name, '');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (value) {\n\t\t\t\tfor (name in value) {\n\t\t\t\t\tif (!oldValue || value[name] !== oldValue[name]) {\n\t\t\t\t\t\tsetStyle(dom.style, name, value[name]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// Benchmark for comparison: https://esbench.com/bench/574c954bdb965b9a00965ac6\n\telse if (name[0] === 'o' && name[1] === 'n') {\n\t\tuseCapture = name !== (name = name.replace(/Capture$/, ''));\n\n\t\t// Infer correct casing for DOM built-in events:\n\t\tif (name.toLowerCase() in dom) name = name.toLowerCase().slice(2);\n\t\telse name = name.slice(2);\n\n\t\tif (!dom._listeners) dom._listeners = {};\n\t\tdom._listeners[name + useCapture] = value;\n\n\t\tif (value) {\n\t\t\tif (!oldValue) {\n\t\t\t\tconst handler = useCapture ? eventProxyCapture : eventProxy;\n\t\t\t\tdom.addEventListener(name, handler, useCapture);\n\t\t\t}\n\t\t} else {\n\t\t\tconst handler = useCapture ? eventProxyCapture : eventProxy;\n\t\t\tdom.removeEventListener(name, handler, useCapture);\n\t\t}\n\t} else if (name !== 'dangerouslySetInnerHTML') {\n\t\tif (isSvg) {\n\t\t\t// Normalize incorrect prop usage for SVG:\n\t\t\t// - xlink:href / xlinkHref --> href (xlink:href was removed from SVG and isn't needed)\n\t\t\t// - className --> class\n\t\t\tname = name.replace(/xlink[H:h]/, 'h').replace(/sName$/, 's');\n\t\t} else if (\n\t\t\tname !== 'href' &&\n\t\t\tname !== 'list' &&\n\t\t\tname !== 'form' &&\n\t\t\t// Default value in browsers is `-1` and an empty string is\n\t\t\t// cast to `0` instead\n\t\t\tname !== 'tabIndex' &&\n\t\t\tname !== 'download' &&\n\t\t\tname in dom\n\t\t) {\n\t\t\ttry {\n\t\t\t\tdom[name] = value == null ? '' : value;\n\t\t\t\t// labelled break is 1b smaller here than a return statement (sorry)\n\t\t\t\tbreak o;\n\t\t\t} catch (e) {}\n\t\t}\n\n\t\t// ARIA-attributes have a different notion of boolean values.\n\t\t// The value `false` is different from the attribute not\n\t\t// existing on the DOM, so we can't remove it. For non-boolean\n\t\t// ARIA-attributes we could treat false as a removal, but the\n\t\t// amount of exceptions would cost us too many bytes. On top of\n\t\t// that other VDOM frameworks also always stringify `false`.\n\n\t\tif (typeof value === 'function') {\n\t\t\t// never serialize functions as attribute values\n\t\t} else if (\n\t\t\tvalue != null &&\n\t\t\t(value !== false || (name[0] === 'a' && name[1] === 'r'))\n\t\t) {\n\t\t\tdom.setAttribute(name, value);\n\t\t} else {\n\t\t\tdom.removeAttribute(name);\n\t\t}\n\t}\n}\n\n/**\n * Proxy an event to hooked event handlers\n * @param {Event} e The event object from the browser\n * @private\n */\nfunction eventProxy(e) {\n\tthis._listeners[e.type + false](options.event ? options.event(e) : e);\n}\n\nfunction eventProxyCapture(e) {\n\tthis._listeners[e.type + true](options.event ? options.event(e) : e);\n}\n","import { EMPTY_OBJ } from '../constants';\nimport { Component, getDomSibling } from '../component';\nimport { Fragment } from '../create-element';\nimport { diffChildren } from './children';\nimport { diffProps, setProperty } from './props';\nimport { assign, removeNode, slice } from '../util';\nimport options from '../options';\n\n/**\n * Diff two virtual nodes and apply proper changes to the DOM\n * @param {import('../internal').PreactElement} parentDom The parent of the DOM element\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object. Modified by getChildContext\n * @param {boolean} isSvg Whether or not this element is an SVG node\n * @param {Array<import('../internal').PreactElement>} excessDomChildren\n * @param {Array<import('../internal').Component>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').PreactElement} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} [isHydrating] Whether or not we are in hydration\n */\nexport function diff(\n\tparentDom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet tmp,\n\t\tnewType = newVNode.type;\n\n\t// When passing through createElement it assigns the object\n\t// constructor as undefined. This to prevent JSON-injection.\n\tif (newVNode.constructor !== undefined) return null;\n\n\t// If the previous diff bailed out, resume creating/hydrating.\n\tif (oldVNode._hydrating != null) {\n\t\tisHydrating = oldVNode._hydrating;\n\t\toldDom = newVNode._dom = oldVNode._dom;\n\t\t// if we resume, we want the tree to be \"unlocked\"\n\t\tnewVNode._hydrating = null;\n\t\texcessDomChildren = [oldDom];\n\t}\n\n\tif ((tmp = options._diff)) tmp(newVNode);\n\n\ttry {\n\t\touter: if (typeof newType == 'function') {\n\t\t\tlet c, isNew, oldProps, oldState, snapshot, clearProcessingException;\n\t\t\tlet newProps = newVNode.props;\n\n\t\t\t// Necessary for createContext api. Setting this property will pass\n\t\t\t// the context value as `this.context` just for this component.\n\t\t\ttmp = newType.contextType;\n\t\t\tlet provider = tmp && globalContext[tmp._id];\n\t\t\tlet componentContext = tmp\n\t\t\t\t? provider\n\t\t\t\t\t? provider.props.value\n\t\t\t\t\t: tmp._defaultValue\n\t\t\t\t: globalContext;\n\n\t\t\t// Get component and set it to `c`\n\t\t\tif (oldVNode._component) {\n\t\t\t\tc = newVNode._component = oldVNode._component;\n\t\t\t\tclearProcessingException = c._processingException = c._pendingError;\n\t\t\t} else {\n\t\t\t\t// Instantiate the new component\n\t\t\t\tif ('prototype' in newType && newType.prototype.render) {\n\t\t\t\t\t// @ts-ignore The check above verifies that newType is suppose to be constructed\n\t\t\t\t\tnewVNode._component = c = new newType(newProps, componentContext); // eslint-disable-line new-cap\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-ignore Trust me, Component implements the interface we want\n\t\t\t\t\tnewVNode._component = c = new Component(newProps, componentContext);\n\t\t\t\t\tc.constructor = newType;\n\t\t\t\t\tc.render = doRender;\n\t\t\t\t}\n\t\t\t\tif (provider) provider.sub(c);\n\n\t\t\t\tc.props = newProps;\n\t\t\t\tif (!c.state) c.state = {};\n\t\t\t\tc.context = componentContext;\n\t\t\t\tc._globalContext = globalContext;\n\t\t\t\tisNew = c._dirty = true;\n\t\t\t\tc._renderCallbacks = [];\n\t\t\t}\n\n\t\t\t// Invoke getDerivedStateFromProps\n\t\t\tif (c._nextState == null) {\n\t\t\t\tc._nextState = c.state;\n\t\t\t}\n\t\t\tif (newType.getDerivedStateFromProps != null) {\n\t\t\t\tif (c._nextState == c.state) {\n\t\t\t\t\tc._nextState = assign({}, c._nextState);\n\t\t\t\t}\n\n\t\t\t\tassign(\n\t\t\t\t\tc._nextState,\n\t\t\t\t\tnewType.getDerivedStateFromProps(newProps, c._nextState)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\toldProps = c.props;\n\t\t\toldState = c.state;\n\n\t\t\t// Invoke pre-render lifecycle methods\n\t\t\tif (isNew) {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tc.componentWillMount != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillMount();\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidMount != null) {\n\t\t\t\t\tc._renderCallbacks.push(c.componentDidMount);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tnewProps !== oldProps &&\n\t\t\t\t\tc.componentWillReceiveProps != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillReceiveProps(newProps, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t(!c._force &&\n\t\t\t\t\t\tc.shouldComponentUpdate != null &&\n\t\t\t\t\t\tc.shouldComponentUpdate(\n\t\t\t\t\t\t\tnewProps,\n\t\t\t\t\t\t\tc._nextState,\n\t\t\t\t\t\t\tcomponentContext\n\t\t\t\t\t\t) === false) ||\n\t\t\t\t\tnewVNode._original === oldVNode._original\n\t\t\t\t) {\n\t\t\t\t\tc.props = newProps;\n\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t\t// More info about this here: https://gist.github.com/JoviDeCroock/bec5f2ce93544d2e6070ef8e0036e4e8\n\t\t\t\t\tif (newVNode._original !== oldVNode._original) c._dirty = false;\n\t\t\t\t\tc._vnode = newVNode;\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t\tnewVNode._children.forEach(vnode => {\n\t\t\t\t\t\tif (vnode) vnode._parent = newVNode;\n\t\t\t\t\t});\n\t\t\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\t\t\tcommitQueue.push(c);\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\n\t\t\t\tif (c.componentWillUpdate != null) {\n\t\t\t\t\tc.componentWillUpdate(newProps, c._nextState, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidUpdate != null) {\n\t\t\t\t\tc._renderCallbacks.push(() => {\n\t\t\t\t\t\tc.componentDidUpdate(oldProps, oldState, snapshot);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tc.context = componentContext;\n\t\t\tc.props = newProps;\n\t\t\tc.state = c._nextState;\n\n\t\t\tif ((tmp = options._render)) tmp(newVNode);\n\n\t\t\tc._dirty = false;\n\t\t\tc._vnode = newVNode;\n\t\t\tc._parentDom = parentDom;\n\n\t\t\ttmp = c.render(c.props, c.state, c.context);\n\n\t\t\t// Handle setState called in render, see #2553\n\t\t\tc.state = c._nextState;\n\n\t\t\tif (c.getChildContext != null) {\n\t\t\t\tglobalContext = assign(assign({}, globalContext), c.getChildContext());\n\t\t\t}\n\n\t\t\tif (!isNew && c.getSnapshotBeforeUpdate != null) {\n\t\t\t\tsnapshot = c.getSnapshotBeforeUpdate(oldProps, oldState);\n\t\t\t}\n\n\t\t\tlet isTopLevelFragment =\n\t\t\t\ttmp != null && tmp.type === Fragment && tmp.key == null;\n\t\t\tlet renderResult = isTopLevelFragment ? tmp.props.children : tmp;\n\n\t\t\tdiffChildren(\n\t\t\t\tparentDom,\n\t\t\t\tArray.isArray(renderResult) ? renderResult : [renderResult],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\toldDom,\n\t\t\t\tisHydrating\n\t\t\t);\n\n\t\t\tc.base = newVNode._dom;\n\n\t\t\t// We successfully rendered this VNode, unset any stored hydration/bailout state:\n\t\t\tnewVNode._hydrating = null;\n\n\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\tcommitQueue.push(c);\n\t\t\t}\n\n\t\t\tif (clearProcessingException) {\n\t\t\t\tc._pendingError = c._processingException = null;\n\t\t\t}\n\n\t\t\tc._force = false;\n\t\t} else if (\n\t\t\texcessDomChildren == null &&\n\t\t\tnewVNode._original === oldVNode._original\n\t\t) {\n\t\t\tnewVNode._children = oldVNode._children;\n\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t} else {\n\t\t\tnewVNode._dom = diffElementNodes(\n\t\t\t\toldVNode._dom,\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\tisHydrating\n\t\t\t);\n\t\t}\n\n\t\tif ((tmp = options.diffed)) tmp(newVNode);\n\t} catch (e) {\n\t\tnewVNode._original = null;\n\t\t// if hydrating or creating initial tree, bailout preserves DOM:\n\t\tif (isHydrating || excessDomChildren != null) {\n\t\t\tnewVNode._dom = oldDom;\n\t\t\tnewVNode._hydrating = !!isHydrating;\n\t\t\texcessDomChildren[excessDomChildren.indexOf(oldDom)] = null;\n\t\t\t// ^ could possibly be simplified to:\n\t\t\t// excessDomChildren.length = 0;\n\t\t}\n\t\toptions._catchError(e, newVNode, oldVNode);\n\t}\n}\n\n/**\n * @param {Array<import('../internal').Component>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').VNode} root\n */\nexport function commitRoot(commitQueue, root) {\n\tif (options._commit) options._commit(root, commitQueue);\n\n\tcommitQueue.some(c => {\n\t\ttry {\n\t\t\t// @ts-ignore Reuse the commitQueue variable here so the type changes\n\t\t\tcommitQueue = c._renderCallbacks;\n\t\t\tc._renderCallbacks = [];\n\t\t\tcommitQueue.some(cb => {\n\t\t\t\t// @ts-ignore See above ts-ignore on commitQueue\n\t\t\t\tcb.call(c);\n\t\t\t});\n\t\t} catch (e) {\n\t\t\toptions._catchError(e, c._vnode);\n\t\t}\n\t});\n}\n\n/**\n * Diff two virtual nodes representing DOM element\n * @param {import('../internal').PreactElement} dom The DOM element representing\n * the virtual nodes being diffed\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {*} excessDomChildren\n * @param {Array<import('../internal').Component>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @returns {import('../internal').PreactElement}\n */\nfunction diffElementNodes(\n\tdom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\tisHydrating\n) {\n\tlet oldProps = oldVNode.props;\n\tlet newProps = newVNode.props;\n\tlet nodeType = newVNode.type;\n\tlet i = 0;\n\n\t// Tracks entering and exiting SVG namespace when descending through the tree.\n\tif (nodeType === 'svg') isSvg = true;\n\n\tif (excessDomChildren != null) {\n\t\tfor (; i < excessDomChildren.length; i++) {\n\t\t\tconst child = excessDomChildren[i];\n\n\t\t\t// if newVNode matches an element in excessDomChildren or the `dom`\n\t\t\t// argument matches an element in excessDomChildren, remove it from\n\t\t\t// excessDomChildren so it isn't later removed in diffChildren\n\t\t\tif (\n\t\t\t\tchild &&\n\t\t\t\t(child === dom ||\n\t\t\t\t\t(nodeType ? child.localName == nodeType : child.nodeType == 3))\n\t\t\t) {\n\t\t\t\tdom = child;\n\t\t\t\texcessDomChildren[i] = null;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (dom == null) {\n\t\tif (nodeType === null) {\n\t\t\t// @ts-ignore createTextNode returns Text, we expect PreactElement\n\t\t\treturn document.createTextNode(newProps);\n\t\t}\n\n\t\tif (isSvg) {\n\t\t\tdom = document.createElementNS(\n\t\t\t\t'http://www.w3.org/2000/svg',\n\t\t\t\t// @ts-ignore We know `newVNode.type` is a string\n\t\t\t\tnodeType\n\t\t\t);\n\t\t} else {\n\t\t\tdom = document.createElement(\n\t\t\t\t// @ts-ignore We know `newVNode.type` is a string\n\t\t\t\tnodeType,\n\t\t\t\tnewProps.is && newProps\n\t\t\t);\n\t\t}\n\n\t\t// we created a new parent, so none of the previously attached children can be reused:\n\t\texcessDomChildren = null;\n\t\t// we are creating a new node, so we can assume this is a new subtree (in case we are hydrating), this deopts the hydrate\n\t\tisHydrating = false;\n\t}\n\n\tif (nodeType === null) {\n\t\t// During hydration, we still have to split merged text from SSR'd HTML.\n\t\tif (oldProps !== newProps && (!isHydrating || dom.data !== newProps)) {\n\t\t\tdom.data = newProps;\n\t\t}\n\t} else {\n\t\t// If excessDomChildren was not null, repopulate it with the current element's children:\n\t\texcessDomChildren = excessDomChildren && slice.call(dom.childNodes);\n\n\t\toldProps = oldVNode.props || EMPTY_OBJ;\n\n\t\tlet oldHtml = oldProps.dangerouslySetInnerHTML;\n\t\tlet newHtml = newProps.dangerouslySetInnerHTML;\n\n\t\t// During hydration, props are not diffed at all (including dangerouslySetInnerHTML)\n\t\t// @TODO we should warn in debug mode when props don't match here.\n\t\tif (!isHydrating) {\n\t\t\t// But, if we are in a situation where we are using existing DOM (e.g. replaceNode)\n\t\t\t// we should read the existing DOM attributes to diff them\n\t\t\tif (excessDomChildren != null) {\n\t\t\t\toldProps = {};\n\t\t\t\tfor (i = 0; i < dom.attributes.length; i++) {\n\t\t\t\t\toldProps[dom.attributes[i].name] = dom.attributes[i].value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (newHtml || oldHtml) {\n\t\t\t\t// Avoid re-applying the same '__html' if it did not changed between re-render\n\t\t\t\tif (\n\t\t\t\t\t!newHtml ||\n\t\t\t\t\t((!oldHtml || newHtml.__html != oldHtml.__html) &&\n\t\t\t\t\t\tnewHtml.__html !== dom.innerHTML)\n\t\t\t\t) {\n\t\t\t\t\tdom.innerHTML = (newHtml && newHtml.__html) || '';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tdiffProps(dom, newProps, oldProps, isSvg, isHydrating);\n\n\t\t// If the new vnode didn't have dangerouslySetInnerHTML, diff its children\n\t\tif (newHtml) {\n\t\t\tnewVNode._children = [];\n\t\t} else {\n\t\t\ti = newVNode.props.children;\n\t\t\tdiffChildren(\n\t\t\t\tdom,\n\t\t\t\tArray.isArray(i) ? i : [i],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg && nodeType !== 'foreignObject',\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\texcessDomChildren\n\t\t\t\t\t? excessDomChildren[0]\n\t\t\t\t\t: oldVNode._children && getDomSibling(oldVNode, 0),\n\t\t\t\tisHydrating\n\t\t\t);\n\n\t\t\t// Remove children that are not part of any vnode.\n\t\t\tif (excessDomChildren != null) {\n\t\t\t\tfor (i = excessDomChildren.length; i--; ) {\n\t\t\t\t\tif (excessDomChildren[i] != null) removeNode(excessDomChildren[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// (as above, don't diff props during hydration)\n\t\tif (!isHydrating) {\n\t\t\tif (\n\t\t\t\t'value' in newProps &&\n\t\t\t\t(i = newProps.value) !== undefined &&\n\t\t\t\t// #2756 For the <progress>-element the initial value is 0,\n\t\t\t\t// despite the attribute not being present. When the attribute\n\t\t\t\t// is missing the progress bar is treated as indeterminate.\n\t\t\t\t// To fix that we'll always update it when it is 0 for progress elements\n\t\t\t\t(i !== dom.value || (nodeType === 'progress' && !i))\n\t\t\t) {\n\t\t\t\tsetProperty(dom, 'value', i, oldProps.value, false);\n\t\t\t}\n\t\t\tif (\n\t\t\t\t'checked' in newProps &&\n\t\t\t\t(i = newProps.checked) !== undefined &&\n\t\t\t\ti !== dom.checked\n\t\t\t) {\n\t\t\t\tsetProperty(dom, 'checked', i, oldProps.checked, false);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn dom;\n}\n\n/**\n * Invoke or update a ref, depending on whether it is a function or object ref.\n * @param {object|function} ref\n * @param {any} value\n * @param {import('../internal').VNode} vnode\n */\nexport function applyRef(ref, value, vnode) {\n\ttry {\n\t\tif (typeof ref == 'function') ref(value);\n\t\telse ref.current = value;\n\t} catch (e) {\n\t\toptions._catchError(e, vnode);\n\t}\n}\n\n/**\n * Unmount a virtual node from the tree and apply DOM changes\n * @param {import('../internal').VNode} vnode The virtual node to unmount\n * @param {import('../internal').VNode} parentVNode The parent of the VNode that\n * initiated the unmount\n * @param {boolean} [skipRemove] Flag that indicates that a parent node of the\n * current element is already detached from the DOM.\n */\nexport function unmount(vnode, parentVNode, skipRemove) {\n\tlet r;\n\tif (options.unmount) options.unmount(vnode);\n\n\tif ((r = vnode.ref)) {\n\t\tif (!r.current || r.current === vnode._dom) applyRef(r, null, parentVNode);\n\t}\n\n\tif ((r = vnode._component) != null) {\n\t\tif (r.componentWillUnmount) {\n\t\t\ttry {\n\t\t\t\tr.componentWillUnmount();\n\t\t\t} catch (e) {\n\t\t\t\toptions._catchError(e, parentVNode);\n\t\t\t}\n\t\t}\n\n\t\tr.base = r._parentDom = null;\n\t}\n\n\tif ((r = vnode._children)) {\n\t\tfor (let i = 0; i < r.length; i++) {\n\t\t\tif (r[i]) {\n\t\t\t\tunmount(r[i], parentVNode, typeof vnode.type != 'function');\n\t\t\t}\n\t\t}\n\t}\n\n\tif (!skipRemove && vnode._dom != null) removeNode(vnode._dom);\n\n\t// Must be set to `undefined` to properly clean up `_nextDom`\n\t// for which `null` is a valid value. See comment in `create-element.js`\n\tvnode._dom = vnode._nextDom = undefined;\n}\n\n/** The `.render()` method for a PFC backing instance. */\nfunction doRender(props, state, context) {\n\treturn this.constructor(props, context);\n}\n","import { EMPTY_OBJ } from './constants';\nimport { commitRoot, diff } from './diff/index';\nimport { createElement, Fragment } from './create-element';\nimport options from './options';\nimport { slice } from './util';\n\n/**\n * Render a Preact virtual node into a DOM element\n * @param {import('./internal').ComponentChild} vnode The virtual node to render\n * @param {import('./internal').PreactElement} parentDom The DOM element to\n * render into\n * @param {import('./internal').PreactElement | object} [replaceNode] Optional: Attempt to re-use an\n * existing DOM tree rooted at `replaceNode`\n */\nexport function render(vnode, parentDom, replaceNode) {\n\tif (options._root) options._root(vnode, parentDom);\n\n\t// We abuse the `replaceNode` parameter in `hydrate()` to signal if we are in\n\t// hydration mode or not by passing the `hydrate` function instead of a DOM\n\t// element..\n\tlet isHydrating = typeof replaceNode === 'function';\n\n\t// To be able to support calling `render()` multiple times on the same\n\t// DOM node, we need to obtain a reference to the previous tree. We do\n\t// this by assigning a new `_children` property to DOM nodes which points\n\t// to the last rendered tree. By default this property is not present, which\n\t// means that we are mounting a new tree for the first time.\n\tlet oldVNode = isHydrating\n\t\t? null\n\t\t: (replaceNode && replaceNode._children) || parentDom._children;\n\n\tvnode = (\n\t\t(!isHydrating && replaceNode) ||\n\t\tparentDom\n\t)._children = createElement(Fragment, null, [vnode]);\n\n\t// List of effects that need to be called after diffing.\n\tlet commitQueue = [];\n\tdiff(\n\t\tparentDom,\n\t\t// Determine the new vnode tree and store it on the DOM element on\n\t\t// our custom `_children` property.\n\t\tvnode,\n\t\toldVNode || EMPTY_OBJ,\n\t\tEMPTY_OBJ,\n\t\tparentDom.ownerSVGElement !== undefined,\n\t\t!isHydrating && replaceNode\n\t\t\t? [replaceNode]\n\t\t\t: oldVNode\n\t\t\t? null\n\t\t\t: parentDom.firstChild\n\t\t\t? slice.call(parentDom.childNodes)\n\t\t\t: null,\n\t\tcommitQueue,\n\t\t!isHydrating && replaceNode\n\t\t\t? replaceNode\n\t\t\t: oldVNode\n\t\t\t? oldVNode._dom\n\t\t\t: parentDom.firstChild,\n\t\tisHydrating\n\t);\n\n\t// Flush all queued effects\n\tcommitRoot(commitQueue, vnode);\n}\n\n/**\n * Update an existing DOM element with data from a Preact virtual node\n * @param {import('./internal').ComponentChild} vnode The virtual node to render\n * @param {import('./internal').PreactElement} parentDom The DOM element to\n * update\n */\nexport function hydrate(vnode, parentDom) {\n\trender(vnode, parentDom, hydrate);\n}\n","/**\n * Find the closest error boundary to a thrown error and call it\n * @param {object} error The thrown value\n * @param {import('../internal').VNode} vnode The vnode that threw\n * the error that was caught (except for unmounting when this parameter\n * is the highest parent that was being unmounted)\n */\nexport function _catchError(error, vnode) {\n\t/** @type {import('../internal').Component} */\n\tlet component, ctor, handled;\n\n\tfor (; (vnode = vnode._parent); ) {\n\t\tif ((component = vnode._component) && !component._processingException) {\n\t\t\ttry {\n\t\t\t\tctor = component.constructor;\n\n\t\t\t\tif (ctor && ctor.getDerivedStateFromError != null) {\n\t\t\t\t\tcomponent.setState(ctor.getDerivedStateFromError(error));\n\t\t\t\t\thandled = component._dirty;\n\t\t\t\t}\n\n\t\t\t\tif (component.componentDidCatch != null) {\n\t\t\t\t\tcomponent.componentDidCatch(error);\n\t\t\t\t\thandled = component._dirty;\n\t\t\t\t}\n\n\t\t\t\t// This is an error boundary. Mark it as having bailed out, and whether it was mid-hydration.\n\t\t\t\tif (handled) {\n\t\t\t\t\treturn (component._pendingError = component);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\terror = e;\n\t\t\t}\n\t\t}\n\t}\n\n\tthrow error;\n}\n","import { assign, slice } from './util';\nimport { createVNode } from './create-element';\n\n/**\n * Clones the given VNode, optionally adding attributes/props and replacing its children.\n * @param {import('./internal').VNode} vnode The virtual DOM element to clone\n * @param {object} props Attributes/props to add when cloning\n * @param {Array<import('./internal').ComponentChildren>} rest Any additional arguments will be used as replacement children.\n * @returns {import('./internal').VNode}\n */\nexport function cloneElement(vnode, props, children) {\n\tlet normalizedProps = assign({}, vnode.props),\n\t\tkey,\n\t\tref,\n\t\ti;\n\tfor (i in props) {\n\t\tif (i == 'key') key = props[i];\n\t\telse if (i == 'ref') ref = props[i];\n\t\telse normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 2) {\n\t\tnormalizedProps.children =\n\t\t\targuments.length > 3 ? slice.call(arguments, 2) : children;\n\t}\n\n\treturn createVNode(\n\t\tvnode.type,\n\t\tnormalizedProps,\n\t\tkey || vnode.key,\n\t\tref || vnode.ref,\n\t\tnull\n\t);\n}\n"],"names":["slice","options","vnodeId","isValidElement","rerenderQueue","defer","prevDebounce","i","EMPTY_OBJ","EMPTY_ARR","IS_NON_DIMENSIONAL","assign","obj","props","removeNode","node","parentNode","removeChild","createElement","type","children","key","ref","normalizedProps","arguments","length","call","defaultProps","undefined","createVNode","original","vnode","constructor","Fragment","Component","context","getDomSibling","childIndex","indexOf","sibling","updateParentDomPointers","child","base","enqueueRender","c","push","process","debounceRendering","queue","sort","a","b","some","component","commitQueue","oldVNode","oldDom","parentDom","diff","ownerSVGElement","commitRoot","diffChildren","renderResult","newParentVNode","oldParentVNode","globalContext","isSvg","excessDomChildren","isHydrating","j","childVNode","newDom","firstChildDom","refs","oldChildren","oldChildrenLength","Array","isArray","reorderChildren","placeChild","value","unmount","applyRef","tmp","nextDom","sibDom","outer","appendChild","nextSibling","insertBefore","diffProps","dom","newProps","oldProps","hydrate","setProperty","setStyle","style","test","name","oldValue","useCapture","o","cssText","replace","toLowerCase","_listeners","addEventListener","eventProxyCapture","eventProxy","removeEventListener","e","setAttribute","removeAttribute","event","newVNode","isNew","oldState","snapshot","clearProcessingException","provider","componentContext","newType","contextType","prototype","render","doRender","sub","state","getDerivedStateFromProps","componentWillMount","componentDidMount","componentWillReceiveProps","shouldComponentUpdate","forEach","componentWillUpdate","componentDidUpdate","getChildContext","getSnapshotBeforeUpdate","diffElementNodes","diffed","root","cb","oldHtml","newHtml","nodeType","localName","document","createTextNode","createElementNS","is","data","childNodes","dangerouslySetInnerHTML","attributes","innerHTML","checked","current","parentVNode","skipRemove","r","componentWillUnmount","this","replaceNode","firstChild","error","ctor","handled","getDerivedStateFromError","setState","componentDidCatch","update","callback","s","forceUpdate","Promise","then","bind","resolve","setTimeout","defaultValue","contextId","Consumer","contextValue","Provider","subs","ctx","_props","old","splice","toChildArray","out"],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2015-present Jason Miller
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,2 @@
1
+ var n,t,r,o=require("preact"),u=0,i=[],c=o.options.__b,e=o.options.__r,f=o.options.diffed,a=o.options.__c,v=o.options.unmount;function p(n,r){o.options.__h&&o.options.__h(t,n,u||r),u=0;var i=t.__H||(t.__H={__:[],__h:[]});return n>=i.__.length&&i.__.push({}),i.__[n]}function s(n){return u=1,x(A,n)}function x(r,o,u){var i=p(n++,2);return i.t=r,i.__c||(i.__=[u?u(o):A(void 0,o),function(n){var t=i.t(i.__[0],n);i.__[0]!==t&&(i.__=[t,i.__[1]],i.__c.setState({}))}],i.__c=t),i.__}function m(r,u){var i=p(n++,4);!o.options.__s&&q(i.__H,u)&&(i.__=r,i.__H=u,t.__h.push(i))}function l(t,r){var o=p(n++,7);return q(o.__H,r)&&(o.__=t(),o.__H=r,o.__h=t),o.__}function y(){i.forEach(function(n){if(n.__P)try{n.__H.__h.forEach(_),n.__H.__h.forEach(d),n.__H.__h=[]}catch(t){n.__H.__h=[],o.options.__e(t,n.__v)}}),i=[]}o.options.__b=function(n){t=null,c&&c(n)},o.options.__r=function(r){e&&e(r),n=0;var o=(t=r.__c).__H;o&&(o.__h.forEach(_),o.__h.forEach(d),o.__h=[])},o.options.diffed=function(n){f&&f(n);var u=n.__c;u&&u.__H&&u.__H.__h.length&&(1!==i.push(u)&&r===o.options.requestAnimationFrame||((r=o.options.requestAnimationFrame)||function(n){var t,r=function(){clearTimeout(o),h&&cancelAnimationFrame(t),setTimeout(n)},o=setTimeout(r,100);h&&(t=requestAnimationFrame(r))})(y)),t=void 0},o.options.__c=function(n,t){t.some(function(n){try{n.__h.forEach(_),n.__h=n.__h.filter(function(n){return!n.__||d(n)})}catch(r){t.some(function(n){n.__h&&(n.__h=[])}),t=[],o.options.__e(r,n.__v)}}),a&&a(n,t)},o.options.unmount=function(n){v&&v(n);var t=n.__c;if(t&&t.__H)try{t.__H.__.forEach(_)}catch(n){o.options.__e(n,t.__v)}};var h="function"==typeof requestAnimationFrame;function _(n){var r=t;"function"==typeof n.__c&&n.__c(),t=r}function d(n){var r=t;n.__c=n.__(),t=r}function q(n,t){return!n||n.length!==t.length||t.some(function(t,r){return t!==n[r]})}function A(n,t){return"function"==typeof t?t(n):t}exports.useState=s,exports.useReducer=x,exports.useEffect=function(r,u){var i=p(n++,3);!o.options.__s&&q(i.__H,u)&&(i.__=r,i.__H=u,t.__H.__h.push(i))},exports.useLayoutEffect=m,exports.useRef=function(n){return u=5,l(function(){return{current:n}},[])},exports.useImperativeHandle=function(n,t,r){u=6,m(function(){"function"==typeof n?n(t()):n&&(n.current=t())},null==r?r:r.concat(n))},exports.useMemo=l,exports.useCallback=function(n,t){return u=8,l(function(){return n},t)},exports.useContext=function(r){var o=t.context[r.__c],u=p(n++,9);return u.c=r,o?(null==u.__&&(u.__=!0,o.sub(t)),o.props.value):r.__},exports.useDebugValue=function(n,t){o.options.useDebugValue&&o.options.useDebugValue(t?t(n):n)},exports.useErrorBoundary=function(r){var o=p(n++,10),u=s();return o.__=r,t.componentDidCatch||(t.componentDidCatch=function(n){o.__&&o.__(n),u[1](n)}),[u[0],function(){u[1](void 0)}]};
2
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.js","sources":["../src/index.js"],"sourcesContent":["import { options } from 'preact';\n\n/** @type {number} */\nlet currentIndex;\n\n/** @type {import('./internal').Component} */\nlet currentComponent;\n/**\n * Keep track of the previous component so that we can set\n * `currentComponent` to `null` and throw when a hook is invoked\n * outside of render\n * @type {import('./internal').Component}\n */\nlet previousComponent;\n\n/** @type {number} */\nlet currentHook = 0;\n\n/** @type {Array<import('./internal').Component>} */\nlet afterPaintEffects = [];\n\nlet oldBeforeDiff = options._diff;\nlet oldBeforeRender = options._render;\nlet oldAfterDiff = options.diffed;\nlet oldCommit = options._commit;\nlet oldBeforeUnmount = options.unmount;\n\nconst RAF_TIMEOUT = 100;\nlet prevRaf;\n\noptions._diff = vnode => {\n\tcurrentComponent = null;\n\tif (oldBeforeDiff) oldBeforeDiff(vnode);\n};\n\noptions._render = vnode => {\n\tif (oldBeforeRender) oldBeforeRender(vnode);\n\n\tcurrentComponent = vnode._component;\n\tcurrentIndex = 0;\n\n\tconst hooks = currentComponent.__hooks;\n\tif (hooks) {\n\t\thooks._pendingEffects.forEach(invokeCleanup);\n\t\thooks._pendingEffects.forEach(invokeEffect);\n\t\thooks._pendingEffects = [];\n\t}\n};\n\noptions.diffed = vnode => {\n\tif (oldAfterDiff) oldAfterDiff(vnode);\n\n\tconst c = vnode._component;\n\tif (c && c.__hooks && c.__hooks._pendingEffects.length) {\n\t\tafterPaint(afterPaintEffects.push(c));\n\t}\n\tcurrentComponent = previousComponent;\n};\n\noptions._commit = (vnode, commitQueue) => {\n\tcommitQueue.some(component => {\n\t\ttry {\n\t\t\tcomponent._renderCallbacks.forEach(invokeCleanup);\n\t\t\tcomponent._renderCallbacks = component._renderCallbacks.filter(cb =>\n\t\t\t\tcb._value ? invokeEffect(cb) : true\n\t\t\t);\n\t\t} catch (e) {\n\t\t\tcommitQueue.some(c => {\n\t\t\t\tif (c._renderCallbacks) c._renderCallbacks = [];\n\t\t\t});\n\t\t\tcommitQueue = [];\n\t\t\toptions._catchError(e, component._vnode);\n\t\t}\n\t});\n\n\tif (oldCommit) oldCommit(vnode, commitQueue);\n};\n\noptions.unmount = vnode => {\n\tif (oldBeforeUnmount) oldBeforeUnmount(vnode);\n\n\tconst c = vnode._component;\n\tif (c && c.__hooks) {\n\t\ttry {\n\t\t\tc.__hooks._list.forEach(invokeCleanup);\n\t\t} catch (e) {\n\t\t\toptions._catchError(e, c._vnode);\n\t\t}\n\t}\n};\n\n/**\n * Get a hook's state from the currentComponent\n * @param {number} index The index of the hook to get\n * @param {number} type The index of the hook to get\n * @returns {any}\n */\nfunction getHookState(index, type) {\n\tif (options._hook) {\n\t\toptions._hook(currentComponent, index, currentHook || type);\n\t}\n\tcurrentHook = 0;\n\n\t// Largely inspired by:\n\t// * https://github.com/michael-klein/funcy.js/blob/f6be73468e6ec46b0ff5aa3cc4c9baf72a29025a/src/hooks/core_hooks.mjs\n\t// * https://github.com/michael-klein/funcy.js/blob/650beaa58c43c33a74820a3c98b3c7079cf2e333/src/renderer.mjs\n\t// Other implementations to look at:\n\t// * https://codesandbox.io/s/mnox05qp8\n\tconst hooks =\n\t\tcurrentComponent.__hooks ||\n\t\t(currentComponent.__hooks = {\n\t\t\t_list: [],\n\t\t\t_pendingEffects: []\n\t\t});\n\n\tif (index >= hooks._list.length) {\n\t\thooks._list.push({});\n\t}\n\treturn hooks._list[index];\n}\n\n/**\n * @param {import('./index').StateUpdater<any>} [initialState]\n */\nexport function useState(initialState) {\n\tcurrentHook = 1;\n\treturn useReducer(invokeOrReturn, initialState);\n}\n\n/**\n * @param {import('./index').Reducer<any, any>} reducer\n * @param {import('./index').StateUpdater<any>} initialState\n * @param {(initialState: any) => void} [init]\n * @returns {[ any, (state: any) => void ]}\n */\nexport function useReducer(reducer, initialState, init) {\n\t/** @type {import('./internal').ReducerHookState} */\n\tconst hookState = getHookState(currentIndex++, 2);\n\thookState._reducer = reducer;\n\tif (!hookState._component) {\n\t\thookState._value = [\n\t\t\t!init ? invokeOrReturn(undefined, initialState) : init(initialState),\n\n\t\t\taction => {\n\t\t\t\tconst nextValue = hookState._reducer(hookState._value[0], action);\n\t\t\t\tif (hookState._value[0] !== nextValue) {\n\t\t\t\t\thookState._value = [nextValue, hookState._value[1]];\n\t\t\t\t\thookState._component.setState({});\n\t\t\t\t}\n\t\t\t}\n\t\t];\n\n\t\thookState._component = currentComponent;\n\t}\n\n\treturn hookState._value;\n}\n\n/**\n * @param {import('./internal').Effect} callback\n * @param {any[]} args\n */\nexport function useEffect(callback, args) {\n\t/** @type {import('./internal').EffectHookState} */\n\tconst state = getHookState(currentIndex++, 3);\n\tif (!options._skipEffects && argsChanged(state._args, args)) {\n\t\tstate._value = callback;\n\t\tstate._args = args;\n\n\t\tcurrentComponent.__hooks._pendingEffects.push(state);\n\t}\n}\n\n/**\n * @param {import('./internal').Effect} callback\n * @param {any[]} args\n */\nexport function useLayoutEffect(callback, args) {\n\t/** @type {import('./internal').EffectHookState} */\n\tconst state = getHookState(currentIndex++, 4);\n\tif (!options._skipEffects && argsChanged(state._args, args)) {\n\t\tstate._value = callback;\n\t\tstate._args = args;\n\n\t\tcurrentComponent._renderCallbacks.push(state);\n\t}\n}\n\nexport function useRef(initialValue) {\n\tcurrentHook = 5;\n\treturn useMemo(() => ({ current: initialValue }), []);\n}\n\n/**\n * @param {object} ref\n * @param {() => object} createHandle\n * @param {any[]} args\n */\nexport function useImperativeHandle(ref, createHandle, args) {\n\tcurrentHook = 6;\n\tuseLayoutEffect(\n\t\t() => {\n\t\t\tif (typeof ref == 'function') ref(createHandle());\n\t\t\telse if (ref) ref.current = createHandle();\n\t\t},\n\t\targs == null ? args : args.concat(ref)\n\t);\n}\n\n/**\n * @param {() => any} factory\n * @param {any[]} args\n */\nexport function useMemo(factory, args) {\n\t/** @type {import('./internal').MemoHookState} */\n\tconst state = getHookState(currentIndex++, 7);\n\tif (argsChanged(state._args, args)) {\n\t\tstate._value = factory();\n\t\tstate._args = args;\n\t\tstate._factory = factory;\n\t}\n\n\treturn state._value;\n}\n\n/**\n * @param {() => void} callback\n * @param {any[]} args\n */\nexport function useCallback(callback, args) {\n\tcurrentHook = 8;\n\treturn useMemo(() => callback, args);\n}\n\n/**\n * @param {import('./internal').PreactContext} context\n */\nexport function useContext(context) {\n\tconst provider = currentComponent.context[context._id];\n\t// We could skip this call here, but than we'd not call\n\t// `options._hook`. We need to do that in order to make\n\t// the devtools aware of this hook.\n\t/** @type {import('./internal').ContextHookState} */\n\tconst state = getHookState(currentIndex++, 9);\n\t// The devtools needs access to the context object to\n\t// be able to pull of the default value when no provider\n\t// is present in the tree.\n\tstate._context = context;\n\tif (!provider) return context._defaultValue;\n\t// This is probably not safe to convert to \"!\"\n\tif (state._value == null) {\n\t\tstate._value = true;\n\t\tprovider.sub(currentComponent);\n\t}\n\treturn provider.props.value;\n}\n\n/**\n * Display a custom label for a custom hook for the devtools panel\n * @type {<T>(value: T, cb?: (value: T) => string | number) => void}\n */\nexport function useDebugValue(value, formatter) {\n\tif (options.useDebugValue) {\n\t\toptions.useDebugValue(formatter ? formatter(value) : value);\n\t}\n}\n\n/**\n * @param {(error: any) => void} cb\n */\nexport function useErrorBoundary(cb) {\n\t/** @type {import('./internal').ErrorBoundaryHookState} */\n\tconst state = getHookState(currentIndex++, 10);\n\tconst errState = useState();\n\tstate._value = cb;\n\tif (!currentComponent.componentDidCatch) {\n\t\tcurrentComponent.componentDidCatch = err => {\n\t\t\tif (state._value) state._value(err);\n\t\t\terrState[1](err);\n\t\t};\n\t}\n\treturn [\n\t\terrState[0],\n\t\t() => {\n\t\t\terrState[1](undefined);\n\t\t}\n\t];\n}\n\n/**\n * After paint effects consumer.\n */\nfunction flushAfterPaintEffects() {\n\tafterPaintEffects.forEach(component => {\n\t\tif (component._parentDom) {\n\t\t\ttry {\n\t\t\t\tcomponent.__hooks._pendingEffects.forEach(invokeCleanup);\n\t\t\t\tcomponent.__hooks._pendingEffects.forEach(invokeEffect);\n\t\t\t\tcomponent.__hooks._pendingEffects = [];\n\t\t\t} catch (e) {\n\t\t\t\tcomponent.__hooks._pendingEffects = [];\n\t\t\t\toptions._catchError(e, component._vnode);\n\t\t\t}\n\t\t}\n\t});\n\tafterPaintEffects = [];\n}\n\nlet HAS_RAF = typeof requestAnimationFrame == 'function';\n\n/**\n * Schedule a callback to be invoked after the browser has a chance to paint a new frame.\n * Do this by combining requestAnimationFrame (rAF) + setTimeout to invoke a callback after\n * the next browser frame.\n *\n * Also, schedule a timeout in parallel to the the rAF to ensure the callback is invoked\n * even if RAF doesn't fire (for example if the browser tab is not visible)\n *\n * @param {() => void} callback\n */\nfunction afterNextFrame(callback) {\n\tconst done = () => {\n\t\tclearTimeout(timeout);\n\t\tif (HAS_RAF) cancelAnimationFrame(raf);\n\t\tsetTimeout(callback);\n\t};\n\tconst timeout = setTimeout(done, RAF_TIMEOUT);\n\n\tlet raf;\n\tif (HAS_RAF) {\n\t\traf = requestAnimationFrame(done);\n\t}\n}\n\n// Note: if someone used options.debounceRendering = requestAnimationFrame,\n// then effects will ALWAYS run on the NEXT frame instead of the current one, incurring a ~16ms delay.\n// Perhaps this is not such a big deal.\n/**\n * Schedule afterPaintEffects flush after the browser paints\n * @param {number} newQueueLength\n */\nfunction afterPaint(newQueueLength) {\n\tif (newQueueLength === 1 || prevRaf !== options.requestAnimationFrame) {\n\t\tprevRaf = options.requestAnimationFrame;\n\t\t(prevRaf || afterNextFrame)(flushAfterPaintEffects);\n\t}\n}\n\n/**\n * @param {import('./internal').EffectHookState} hook\n */\nfunction invokeCleanup(hook) {\n\t// A hook cleanup can introduce a call to render which creates a new root, this will call options.vnode\n\t// and move the currentComponent away.\n\tconst comp = currentComponent;\n\tif (typeof hook._cleanup == 'function') hook._cleanup();\n\tcurrentComponent = comp;\n}\n\n/**\n * Invoke a Hook's effect\n * @param {import('./internal').EffectHookState} hook\n */\nfunction invokeEffect(hook) {\n\t// A hook call can introduce a call to render which creates a new root, this will call options.vnode\n\t// and move the currentComponent away.\n\tconst comp = currentComponent;\n\thook._cleanup = hook._value();\n\tcurrentComponent = comp;\n}\n\n/**\n * @param {any[]} oldArgs\n * @param {any[]} newArgs\n */\nfunction argsChanged(oldArgs, newArgs) {\n\treturn (\n\t\t!oldArgs ||\n\t\toldArgs.length !== newArgs.length ||\n\t\tnewArgs.some((arg, index) => arg !== oldArgs[index])\n\t);\n}\n\nfunction invokeOrReturn(arg, f) {\n\treturn typeof f == 'function' ? f(arg) : f;\n}\n"],"names":["currentIndex","currentComponent","prevRaf","currentHook","afterPaintEffects","oldBeforeDiff","options","oldBeforeRender","oldAfterDiff","diffed","oldCommit","oldBeforeUnmount","unmount","getHookState","index","type","hooks","length","push","useState","initialState","useReducer","invokeOrReturn","reducer","init","hookState","_reducer","undefined","action","nextValue","setState","useLayoutEffect","callback","args","state","argsChanged","useMemo","factory","flushAfterPaintEffects","forEach","component","invokeCleanup","invokeEffect","e","vnode","c","requestAnimationFrame","raf","done","clearTimeout","timeout","HAS_RAF","cancelAnimationFrame","setTimeout","previousComponent","commitQueue","some","filter","cb","hook","comp","oldArgs","newArgs","arg","f","initialValue","current","ref","createHandle","concat","context","provider","sub","props","value","formatter","useDebugValue","errState","componentDidCatch","err"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{options as n}from"preact";var t,u,r,o=0,i=[],c=n.__b,f=n.__r,e=n.diffed,a=n.__c,v=n.unmount;function m(t,r){n.__h&&n.__h(u,t,o||r),o=0;var i=u.__H||(u.__H={__:[],__h:[]});return t>=i.__.length&&i.__.push({}),i.__[t]}function l(n){return o=1,p(w,n)}function p(n,r,o){var i=m(t++,2);return i.t=n,i.__c||(i.__=[o?o(r):w(void 0,r),function(n){var t=i.t(i.__[0],n);i.__[0]!==t&&(i.__=[t,i.__[1]],i.__c.setState({}))}],i.__c=u),i.__}function y(r,o){var i=m(t++,3);!n.__s&&k(i.__H,o)&&(i.__=r,i.__H=o,u.__H.__h.push(i))}function h(r,o){var i=m(t++,4);!n.__s&&k(i.__H,o)&&(i.__=r,i.__H=o,u.__h.push(i))}function s(n){return o=5,d(function(){return{current:n}},[])}function _(n,t,u){o=6,h(function(){"function"==typeof n?n(t()):n&&(n.current=t())},null==u?u:u.concat(n))}function d(n,u){var r=m(t++,7);return k(r.__H,u)&&(r.__=n(),r.__H=u,r.__h=n),r.__}function A(n,t){return o=8,d(function(){return n},t)}function F(n){var r=u.context[n.__c],o=m(t++,9);return o.c=n,r?(null==o.__&&(o.__=!0,r.sub(u)),r.props.value):n.__}function T(t,u){n.useDebugValue&&n.useDebugValue(u?u(t):t)}function q(n){var r=m(t++,10),o=l();return r.__=n,u.componentDidCatch||(u.componentDidCatch=function(n){r.__&&r.__(n),o[1](n)}),[o[0],function(){o[1](void 0)}]}function x(){i.forEach(function(t){if(t.__P)try{t.__H.__h.forEach(g),t.__H.__h.forEach(j),t.__H.__h=[]}catch(u){t.__H.__h=[],n.__e(u,t.__v)}}),i=[]}n.__b=function(n){u=null,c&&c(n)},n.__r=function(n){f&&f(n),t=0;var r=(u=n.__c).__H;r&&(r.__h.forEach(g),r.__h.forEach(j),r.__h=[])},n.diffed=function(t){e&&e(t);var o=t.__c;o&&o.__H&&o.__H.__h.length&&(1!==i.push(o)&&r===n.requestAnimationFrame||((r=n.requestAnimationFrame)||function(n){var t,u=function(){clearTimeout(r),b&&cancelAnimationFrame(t),setTimeout(n)},r=setTimeout(u,100);b&&(t=requestAnimationFrame(u))})(x)),u=void 0},n.__c=function(t,u){u.some(function(t){try{t.__h.forEach(g),t.__h=t.__h.filter(function(n){return!n.__||j(n)})}catch(r){u.some(function(n){n.__h&&(n.__h=[])}),u=[],n.__e(r,t.__v)}}),a&&a(t,u)},n.unmount=function(t){v&&v(t);var u=t.__c;if(u&&u.__H)try{u.__H.__.forEach(g)}catch(t){n.__e(t,u.__v)}};var b="function"==typeof requestAnimationFrame;function g(n){var t=u;"function"==typeof n.__c&&n.__c(),u=t}function j(n){var t=u;n.__c=n.__(),u=t}function k(n,t){return!n||n.length!==t.length||t.some(function(t,u){return t!==n[u]})}function w(n,t){return"function"==typeof t?t(n):t}export{l as useState,p as useReducer,y as useEffect,h as useLayoutEffect,s as useRef,_ as useImperativeHandle,d as useMemo,A as useCallback,F as useContext,T as useDebugValue,q as useErrorBoundary};
2
+ //# sourceMappingURL=hooks.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.module.js","sources":["../src/index.js"],"sourcesContent":["import { options } from 'preact';\n\n/** @type {number} */\nlet currentIndex;\n\n/** @type {import('./internal').Component} */\nlet currentComponent;\n\n/** @type {Array<import('./internal').Component>} */\nlet afterPaintEffects = [];\n\nlet oldBeforeRender = options._render;\nlet oldAfterDiff = options.diffed;\nlet oldCommit = options._commit;\nlet oldBeforeUnmount = options.unmount;\n\nconst RAF_TIMEOUT = 100;\nlet prevRaf;\n\noptions._render = vnode => {\n\tif (oldBeforeRender) oldBeforeRender(vnode);\n\n\tcurrentComponent = vnode._component;\n\tcurrentIndex = 0;\n\n\tif (currentComponent.__hooks) {\n\t\tcurrentComponent.__hooks._pendingEffects.forEach(invokeCleanup);\n\t\tcurrentComponent.__hooks._pendingEffects.forEach(invokeEffect);\n\t\tcurrentComponent.__hooks._pendingEffects = [];\n\t}\n};\n\noptions.diffed = vnode => {\n\tif (oldAfterDiff) oldAfterDiff(vnode);\n\n\tconst c = vnode._component;\n\tif (!c) return;\n\n\tconst hooks = c.__hooks;\n\tif (hooks) {\n\t\tif (hooks._pendingEffects.length) {\n\t\t\tafterPaint(afterPaintEffects.push(c));\n\t\t}\n\t}\n};\n\noptions._commit = (vnode, commitQueue) => {\n\tcommitQueue.some(component => {\n\t\ttry {\n\t\t\tcomponent._renderCallbacks.forEach(invokeCleanup);\n\t\t\tcomponent._renderCallbacks = component._renderCallbacks.filter(cb =>\n\t\t\t\tcb._value ? invokeEffect(cb) : true\n\t\t\t);\n\t\t} catch (e) {\n\t\t\tcommitQueue.some(c => {\n\t\t\t\tif (c._renderCallbacks) c._renderCallbacks = [];\n\t\t\t});\n\t\t\tcommitQueue = [];\n\t\t\toptions._catchError(e, component._vnode);\n\t\t}\n\t});\n\n\tif (oldCommit) oldCommit(vnode, commitQueue);\n};\n\noptions.unmount = vnode => {\n\tif (oldBeforeUnmount) oldBeforeUnmount(vnode);\n\n\tconst c = vnode._component;\n\tif (!c) return;\n\n\tconst hooks = c.__hooks;\n\tif (hooks) {\n\t\ttry {\n\t\t\thooks._list.forEach(hook => hook._cleanup && hook._cleanup());\n\t\t} catch (e) {\n\t\t\toptions._catchError(e, c._vnode);\n\t\t}\n\t}\n};\n\n/**\n * Get a hook's state from the currentComponent\n * @param {number} index The index of the hook to get\n * @returns {import('./internal').HookState}\n */\nfunction getHookState(index) {\n\tif (options._hook) options._hook(currentComponent);\n\t// Largely inspired by:\n\t// * https://github.com/michael-klein/funcy.js/blob/f6be73468e6ec46b0ff5aa3cc4c9baf72a29025a/src/hooks/core_hooks.mjs\n\t// * https://github.com/michael-klein/funcy.js/blob/650beaa58c43c33a74820a3c98b3c7079cf2e333/src/renderer.mjs\n\t// Other implementations to look at:\n\t// * https://codesandbox.io/s/mnox05qp8\n\tconst hooks =\n\t\tcurrentComponent.__hooks ||\n\t\t(currentComponent.__hooks = { _list: [], _pendingEffects: [] });\n\n\tif (index >= hooks._list.length) {\n\t\thooks._list.push({});\n\t}\n\treturn hooks._list[index];\n}\n\n/**\n * @param {import('./index').StateUpdater<any>} initialState\n */\nexport function useState(initialState) {\n\treturn useReducer(invokeOrReturn, initialState);\n}\n\n/**\n * @param {import('./index').Reducer<any, any>} reducer\n * @param {import('./index').StateUpdater<any>} initialState\n * @param {(initialState: any) => void} [init]\n * @returns {[ any, (state: any) => void ]}\n */\nexport function useReducer(reducer, initialState, init) {\n\t/** @type {import('./internal').ReducerHookState} */\n\tconst hookState = getHookState(currentIndex++);\n\tif (!hookState._component) {\n\t\thookState._component = currentComponent;\n\n\t\thookState._value = [\n\t\t\t!init ? invokeOrReturn(undefined, initialState) : init(initialState),\n\n\t\t\taction => {\n\t\t\t\tconst nextValue = reducer(hookState._value[0], action);\n\t\t\t\tif (hookState._value[0] !== nextValue) {\n\t\t\t\t\thookState._value[0] = nextValue;\n\t\t\t\t\thookState._component.setState({});\n\t\t\t\t}\n\t\t\t}\n\t\t];\n\t}\n\n\treturn hookState._value;\n}\n\n/**\n * @param {import('./internal').Effect} callback\n * @param {any[]} args\n */\nexport function useEffect(callback, args) {\n\t/** @type {import('./internal').EffectHookState} */\n\tconst state = getHookState(currentIndex++);\n\tif (argsChanged(state._args, args)) {\n\t\tstate._value = callback;\n\t\tstate._args = args;\n\n\t\tcurrentComponent.__hooks._pendingEffects.push(state);\n\t}\n}\n\n/**\n * @param {import('./internal').Effect} callback\n * @param {any[]} args\n */\nexport function useLayoutEffect(callback, args) {\n\t/** @type {import('./internal').EffectHookState} */\n\tconst state = getHookState(currentIndex++);\n\tif (argsChanged(state._args, args)) {\n\t\tstate._value = callback;\n\t\tstate._args = args;\n\n\t\tcurrentComponent._renderCallbacks.push(state);\n\t}\n}\n\nexport function useRef(initialValue) {\n\treturn useMemo(() => ({ current: initialValue }), []);\n}\n\n/**\n * @param {object} ref\n * @param {() => object} createHandle\n * @param {any[]} args\n */\nexport function useImperativeHandle(ref, createHandle, args) {\n\tuseLayoutEffect(\n\t\t() => {\n\t\t\tif (typeof ref == 'function') ref(createHandle());\n\t\t\telse if (ref) ref.current = createHandle();\n\t\t},\n\t\targs == null ? args : args.concat(ref)\n\t);\n}\n\n/**\n * @param {() => any} factory\n * @param {any[]} args\n */\nexport function useMemo(factory, args) {\n\t/** @type {import('./internal').MemoHookState} */\n\tconst state = getHookState(currentIndex++);\n\tif (argsChanged(state._args, args)) {\n\t\tstate._args = args;\n\t\tstate._factory = factory;\n\t\treturn (state._value = factory());\n\t}\n\n\treturn state._value;\n}\n\n/**\n * @param {() => void} callback\n * @param {any[]} args\n */\nexport function useCallback(callback, args) {\n\treturn useMemo(() => callback, args);\n}\n\n/**\n * @param {import('./internal').PreactContext} context\n */\nexport function useContext(context) {\n\tconst provider = currentComponent.context[context._id];\n\tif (!provider) return context._defaultValue;\n\tconst state = getHookState(currentIndex++);\n\t// This is probably not safe to convert to \"!\"\n\tif (state._value == null) {\n\t\tstate._value = true;\n\t\tprovider.sub(currentComponent);\n\t}\n\treturn provider.props.value;\n}\n\n/**\n * Display a custom label for a custom hook for the devtools panel\n * @type {<T>(value: T, cb?: (value: T) => string | number) => void}\n */\nexport function useDebugValue(value, formatter) {\n\tif (options.useDebugValue) {\n\t\toptions.useDebugValue(formatter ? formatter(value) : value);\n\t}\n}\n\nexport function useErrorBoundary(cb) {\n\tconst state = getHookState(currentIndex++);\n\tconst errState = useState();\n\tstate._value = cb;\n\tif (!currentComponent.componentDidCatch) {\n\t\tcurrentComponent.componentDidCatch = err => {\n\t\t\tif (state._value) state._value(err);\n\t\t\terrState[1](err);\n\t\t};\n\t}\n\treturn [\n\t\terrState[0],\n\t\t() => {\n\t\t\terrState[1](undefined);\n\t\t}\n\t];\n}\n\n/**\n * After paint effects consumer.\n */\nfunction flushAfterPaintEffects() {\n\tafterPaintEffects.some(component => {\n\t\tif (component._parentDom) {\n\t\t\ttry {\n\t\t\t\tcomponent.__hooks._pendingEffects.forEach(invokeCleanup);\n\t\t\t\tcomponent.__hooks._pendingEffects.forEach(invokeEffect);\n\t\t\t\tcomponent.__hooks._pendingEffects = [];\n\t\t\t} catch (e) {\n\t\t\t\tcomponent.__hooks._pendingEffects = [];\n\t\t\t\toptions._catchError(e, component._vnode);\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t});\n\tafterPaintEffects = [];\n}\n\n/**\n * Schedule a callback to be invoked after the browser has a chance to paint a new frame.\n * Do this by combining requestAnimationFrame (rAF) + setTimeout to invoke a callback after\n * the next browser frame.\n *\n * Also, schedule a timeout in parallel to the the rAF to ensure the callback is invoked\n * even if RAF doesn't fire (for example if the browser tab is not visible)\n *\n * @param {() => void} callback\n */\nfunction afterNextFrame(callback) {\n\tconst done = () => {\n\t\tclearTimeout(timeout);\n\t\tcancelAnimationFrame(raf);\n\t\tsetTimeout(callback);\n\t};\n\tconst timeout = setTimeout(done, RAF_TIMEOUT);\n\n\tlet raf;\n\tif (typeof window != 'undefined') {\n\t\traf = requestAnimationFrame(done);\n\t}\n}\n\n// Note: if someone used options.debounceRendering = requestAnimationFrame,\n// then effects will ALWAYS run on the NEXT frame instead of the current one, incurring a ~16ms delay.\n// Perhaps this is not such a big deal.\n/**\n * Schedule afterPaintEffects flush after the browser paints\n * @param {number} newQueueLength\n */\nfunction afterPaint(newQueueLength) {\n\tif (newQueueLength === 1 || prevRaf !== options.requestAnimationFrame) {\n\t\tprevRaf = options.requestAnimationFrame;\n\t\t(prevRaf || afterNextFrame)(flushAfterPaintEffects);\n\t}\n}\n\n/**\n * @param {import('./internal').EffectHookState} hook\n */\nfunction invokeCleanup(hook) {\n\tif (hook._cleanup) hook._cleanup();\n}\n\n/**\n * Invoke a Hook's effect\n * @param {import('./internal').EffectHookState} hook\n */\nfunction invokeEffect(hook) {\n\tconst result = hook._value();\n\tif (typeof result == 'function') hook._cleanup = result;\n}\n\n/**\n * @param {any[]} oldArgs\n * @param {any[]} newArgs\n */\nfunction argsChanged(oldArgs, newArgs) {\n\treturn !oldArgs || newArgs.some((arg, index) => arg !== oldArgs[index]);\n}\n\nfunction invokeOrReturn(arg, f) {\n\treturn typeof f == 'function' ? f(arg) : f;\n}\n"],"names":["currentIndex","currentComponent","prevRaf","afterPaintEffects","oldBeforeRender","options","_render","oldAfterDiff","diffed","oldCommit","_commit","oldBeforeUnmount","unmount","getHookState","index","_hook","hooks","__hooks","_list","_pendingEffects","length","push","useState","initialState","useReducer","invokeOrReturn","reducer","init","hookState","_component","_value","undefined","action","nextValue","setState","useEffect","callback","args","state","argsChanged","_args","useLayoutEffect","_renderCallbacks","useRef","initialValue","useMemo","current","useImperativeHandle","ref","createHandle","concat","factory","_factory","useCallback","useContext","context","provider","_id","_defaultValue","sub","props","value","useDebugValue","formatter","useErrorBoundary","cb","errState","componentDidCatch","err","flushAfterPaintEffects","some","component","_parentDom","forEach","invokeCleanup","invokeEffect","e","_catchError","_vnode","hook","_cleanup","result","oldArgs","newArgs","arg","f","vnode","c","requestAnimationFrame","raf","done","clearTimeout","timeout","cancelAnimationFrame","setTimeout","window","commitQueue","filter"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{options as n}from"preact";let t,o,c,u=0,i=[],r=n.__b,e=n.__r,f=n.diffed,s=n.__c,l=n.unmount;function a(t,c){n.__h&&n.__h(o,t,u||c),u=0;const i=o.__H||(o.__H={__:[],__h:[]});return t>=i.__.length&&i.__.push({}),i.__[t]}function m(n){return u=1,p(z,n)}function p(n,c,u){const i=a(t++,2);return i.t=n,i.__c||(i.__=[u?u(c):z(void 0,c),n=>{const t=i.t(i.__[0],n);i.__[0]!==t&&(i.__=[t,i.__[1]],i.__c.setState({}))}],i.__c=o),i.__}function y(c,u){const i=a(t++,3);!n.__s&&w(i.__H,u)&&(i.__=c,i.__H=u,o.__H.__h.push(i))}function h(c,u){const i=a(t++,4);!n.__s&&w(i.__H,u)&&(i.__=c,i.__H=u,null==o.__i.__h&&(o.__i.__h=[]),o.__i.__h.push(i))}function _(n){return u=5,v(()=>({current:n}),[])}function d(n,t,o){u=6,h(()=>{"function"==typeof n?n(t()):n&&(n.current=t())},null==o?o:o.concat(n))}function v(n,o){const c=a(t++,7);return w(c.__H,o)&&(c.__=n(),c.__H=o,c.__h=n),c.__}function A(n,t){return u=8,v(()=>n,t)}function F(n){const c=o.context[n.__c],u=a(t++,9);return u.__c=n,c?(null==u.__&&(u.__=!0,c.sub(o)),c.props.value):n.__}function T(t,o){n.useDebugValue&&n.useDebugValue(o?o(t):t)}function q(n){const c=a(t++,10),u=m();return c.__=n,o.componentDidCatch||(o.componentDidCatch=n=>{c.__&&c.__(n),u[1](n)}),[u[0],()=>{u[1](void 0)}]}function x(){i.forEach(t=>{if(2048&~t.__i.__f)try{t.__H.__h.forEach(j),t.__H.__h.forEach(k),t.__H.__h=[]}catch(o){t.__H.__h=[],n.__e(o,t.__i)}}),i=[]}n.__b=(n,t)=>{o=null,r&&r(n,t)},n.__r=n=>{e&&e(n),o=n.__c,t=0;const c=o.__H;c&&(c.__h.forEach(j),c.__h.forEach(k),c.__h=[])},n.diffed=t=>{f&&f(t);const u=t.__c;u&&u.__H&&u.__H.__h.length&&(1!==i.push(u)&&c===n.requestAnimationFrame||(c=n.requestAnimationFrame,(c||g)(x))),o=void 0},n.__c=(t,o)=>{o.some(t=>{try{t.__h.forEach(j),t.__h=t.__h.filter(n=>!n.__||k(n))}catch(c){o.some(n=>{n.__h&&(n.__h=[])}),o=[],n.__e(c,t)}}),s&&s(t,o)},n.unmount=t=>{l&&l(t);const o=t.__c;if(o&&o.__H)try{o.__H.__.forEach(j)}catch(t){n.__e(t,o.__i)}};let b="function"==typeof requestAnimationFrame;function g(n){const t=()=>{clearTimeout(o),b&&cancelAnimationFrame(c),setTimeout(n)},o=setTimeout(t,100);let c;b&&(c=requestAnimationFrame(t))}function j(n){const t=o;"function"==typeof n.__c&&n.__c(),o=t}function k(n){const t=o;n.__c=n.__(),o=t}function w(n,t){return!n||n.length!==t.length||t.some((t,o)=>t!==n[o])}function z(n,t){return"function"==typeof t?t(n):t}export{A as useCallback,F as useContext,T as useDebugValue,y as useEffect,q as useErrorBoundary,d as useImperativeHandle,h as useLayoutEffect,v as useMemo,p as useReducer,_ as useRef,m as useState};
2
+ //# sourceMappingURL=hooks.modern.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.modern.js","sources":["../src/index.js","../../src/constants.js"],"sourcesContent":["import { options } from 'preact';\nimport { MODE_UNMOUNTING } from '../../src/constants';\n\n/** @type {number} */\nlet currentIndex;\n\n/** @type {import('./internal').Component} */\nlet currentComponent;\n/**\n * Keep track of the previous component so that we can set\n * `currentComponent` to `null` and throw when a hook is invoked\n * outside of render\n * @type {import('./internal').Component}\n */\nlet previousComponent;\n\n/** @type {number} */\nlet currentHook = 0;\n\n/** @type {Array<import('./internal').Component>} */\nlet afterPaintEffects = [];\n\nlet oldBeforeDiff = options._diff;\nlet oldBeforeRender = options._render;\nlet oldAfterDiff = options.diffed;\nlet oldCommit = options._commit;\nlet oldBeforeUnmount = options.unmount;\n\nconst RAF_TIMEOUT = 100;\nlet prevRaf;\n\noptions._diff = (internal, vnode) => {\n\tcurrentComponent = null;\n\tif (oldBeforeDiff) oldBeforeDiff(internal, vnode);\n};\n\noptions._render = internal => {\n\tif (oldBeforeRender) oldBeforeRender(internal);\n\n\tcurrentComponent = internal._component;\n\tcurrentIndex = 0;\n\n\tconst hooks = currentComponent.__hooks;\n\tif (hooks) {\n\t\thooks._pendingEffects.forEach(invokeCleanup);\n\t\thooks._pendingEffects.forEach(invokeEffect);\n\t\thooks._pendingEffects = [];\n\t}\n};\n\noptions.diffed = internal => {\n\tif (oldAfterDiff) oldAfterDiff(internal);\n\n\tconst c = internal._component;\n\tif (c && c.__hooks && c.__hooks._pendingEffects.length) {\n\t\tafterPaint(afterPaintEffects.push(c));\n\t}\n\tcurrentComponent = previousComponent;\n};\n\noptions._commit = (internal, commitQueue) => {\n\tcommitQueue.some(internal => {\n\t\ttry {\n\t\t\tinternal._commitCallbacks.forEach(invokeCleanup);\n\t\t\tinternal._commitCallbacks = internal._commitCallbacks.filter(cb =>\n\t\t\t\tcb._value ? invokeEffect(cb) : true\n\t\t\t);\n\t\t} catch (e) {\n\t\t\tcommitQueue.some(i => {\n\t\t\t\tif (i._commitCallbacks) i._commitCallbacks = [];\n\t\t\t});\n\t\t\tcommitQueue = [];\n\t\t\toptions._catchError(e, internal);\n\t\t}\n\t});\n\n\tif (oldCommit) oldCommit(internal, commitQueue);\n};\n\noptions.unmount = internal => {\n\tif (oldBeforeUnmount) oldBeforeUnmount(internal);\n\n\tconst c = internal._component;\n\tif (c && c.__hooks) {\n\t\ttry {\n\t\t\tc.__hooks._list.forEach(invokeCleanup);\n\t\t} catch (e) {\n\t\t\toptions._catchError(e, c._internal);\n\t\t}\n\t}\n};\n\n/**\n * Get a hook's state from the currentComponent\n * @param {number} index The index of the hook to get\n * @param {number} type The index of the hook to get\n * @returns {any}\n */\nfunction getHookState(index, type) {\n\tif (options._hook) {\n\t\toptions._hook(currentComponent, index, currentHook || type);\n\t}\n\tcurrentHook = 0;\n\n\t// Largely inspired by:\n\t// * https://github.com/michael-klein/funcy.js/blob/f6be73468e6ec46b0ff5aa3cc4c9baf72a29025a/src/hooks/core_hooks.mjs\n\t// * https://github.com/michael-klein/funcy.js/blob/650beaa58c43c33a74820a3c98b3c7079cf2e333/src/renderer.mjs\n\t// Other implementations to look at:\n\t// * https://codesandbox.io/s/mnox05qp8\n\tconst hooks =\n\t\tcurrentComponent.__hooks ||\n\t\t(currentComponent.__hooks = {\n\t\t\t_list: [],\n\t\t\t_pendingEffects: []\n\t\t});\n\n\tif (index >= hooks._list.length) {\n\t\thooks._list.push({});\n\t}\n\treturn hooks._list[index];\n}\n\n/**\n * @param {import('./index').StateUpdater<any>} [initialState]\n */\nexport function useState(initialState) {\n\tcurrentHook = 1;\n\treturn useReducer(invokeOrReturn, initialState);\n}\n\n/**\n * @param {import('./index').Reducer<any, any>} reducer\n * @param {import('./index').StateUpdater<any>} initialState\n * @param {(initialState: any) => void} [init]\n * @returns {[ any, (state: any) => void ]}\n */\nexport function useReducer(reducer, initialState, init) {\n\t/** @type {import('./internal').ReducerHookState} */\n\tconst hookState = getHookState(currentIndex++, 2);\n\thookState._reducer = reducer;\n\tif (!hookState._component) {\n\t\thookState._value = [\n\t\t\t!init ? invokeOrReturn(undefined, initialState) : init(initialState),\n\n\t\t\taction => {\n\t\t\t\tconst nextValue = hookState._reducer(hookState._value[0], action);\n\t\t\t\tif (hookState._value[0] !== nextValue) {\n\t\t\t\t\thookState._value = [nextValue, hookState._value[1]];\n\t\t\t\t\thookState._component.setState({});\n\t\t\t\t}\n\t\t\t}\n\t\t];\n\n\t\thookState._component = currentComponent;\n\t}\n\n\treturn hookState._value;\n}\n\n/**\n * @param {import('./internal').Effect} callback\n * @param {any[]} args\n */\nexport function useEffect(callback, args) {\n\t/** @type {import('./internal').EffectHookState} */\n\tconst state = getHookState(currentIndex++, 3);\n\tif (!options._skipEffects && argsChanged(state._args, args)) {\n\t\tstate._value = callback;\n\t\tstate._args = args;\n\n\t\tcurrentComponent.__hooks._pendingEffects.push(state);\n\t}\n}\n\n/**\n * @param {import('./internal').Effect} callback\n * @param {any[]} args\n */\nexport function useLayoutEffect(callback, args) {\n\t/** @type {import('./internal').EffectHookState} */\n\tconst state = getHookState(currentIndex++, 4);\n\tif (!options._skipEffects && argsChanged(state._args, args)) {\n\t\tstate._value = callback;\n\t\tstate._args = args;\n\n\t\tif (currentComponent._internal._commitCallbacks == null) {\n\t\t\tcurrentComponent._internal._commitCallbacks = [];\n\t\t}\n\t\tcurrentComponent._internal._commitCallbacks.push(state);\n\t}\n}\n\nexport function useRef(initialValue) {\n\tcurrentHook = 5;\n\treturn useMemo(() => ({ current: initialValue }), []);\n}\n\n/**\n * @param {object} ref\n * @param {() => object} createHandle\n * @param {any[]} args\n */\nexport function useImperativeHandle(ref, createHandle, args) {\n\tcurrentHook = 6;\n\tuseLayoutEffect(\n\t\t() => {\n\t\t\tif (typeof ref == 'function') ref(createHandle());\n\t\t\telse if (ref) ref.current = createHandle();\n\t\t},\n\t\targs == null ? args : args.concat(ref)\n\t);\n}\n\n/**\n * @param {() => any} factory\n * @param {any[]} args\n */\nexport function useMemo(factory, args) {\n\t/** @type {import('./internal').MemoHookState} */\n\tconst state = getHookState(currentIndex++, 7);\n\tif (argsChanged(state._args, args)) {\n\t\tstate._value = factory();\n\t\tstate._args = args;\n\t\tstate._factory = factory;\n\t}\n\n\treturn state._value;\n}\n\n/**\n * @param {() => void} callback\n * @param {any[]} args\n */\nexport function useCallback(callback, args) {\n\tcurrentHook = 8;\n\treturn useMemo(() => callback, args);\n}\n\n/**\n * @param {import('./internal').PreactContext} context\n */\nexport function useContext(context) {\n\tconst provider = currentComponent.context[context._id];\n\t// We could skip this call here, but than we'd not call\n\t// `options._hook`. We need to do that in order to make\n\t// the devtools aware of this hook.\n\t/** @type {import('./internal').ContextHookState} */\n\tconst state = getHookState(currentIndex++, 9);\n\t// The devtools needs access to the context object to\n\t// be able to pull of the default value when no provider\n\t// is present in the tree.\n\tstate._context = context;\n\tif (!provider) return context._defaultValue;\n\t// This is probably not safe to convert to \"!\"\n\tif (state._value == null) {\n\t\tstate._value = true;\n\t\tprovider.sub(currentComponent);\n\t}\n\treturn provider.props.value;\n}\n\n/**\n * Display a custom label for a custom hook for the devtools panel\n * @type {<T>(value: T, cb?: (value: T) => string | number) => void}\n */\nexport function useDebugValue(value, formatter) {\n\tif (options.useDebugValue) {\n\t\toptions.useDebugValue(formatter ? formatter(value) : value);\n\t}\n}\n\n/**\n * @param {(error: any) => void} cb\n */\nexport function useErrorBoundary(cb) {\n\t/** @type {import('./internal').ErrorBoundaryHookState} */\n\tconst state = getHookState(currentIndex++, 10);\n\tconst errState = useState();\n\tstate._value = cb;\n\tif (!currentComponent.componentDidCatch) {\n\t\tcurrentComponent.componentDidCatch = err => {\n\t\t\tif (state._value) state._value(err);\n\t\t\terrState[1](err);\n\t\t};\n\t}\n\treturn [\n\t\terrState[0],\n\t\t() => {\n\t\t\terrState[1](undefined);\n\t\t}\n\t];\n}\n\n/**\n * After paint effects consumer.\n */\nfunction flushAfterPaintEffects() {\n\tafterPaintEffects.forEach(component => {\n\t\tif (~component._internal._flags & MODE_UNMOUNTING) {\n\t\t\ttry {\n\t\t\t\tcomponent.__hooks._pendingEffects.forEach(invokeCleanup);\n\t\t\t\tcomponent.__hooks._pendingEffects.forEach(invokeEffect);\n\t\t\t\tcomponent.__hooks._pendingEffects = [];\n\t\t\t} catch (e) {\n\t\t\t\tcomponent.__hooks._pendingEffects = [];\n\t\t\t\toptions._catchError(e, component._internal);\n\t\t\t}\n\t\t}\n\t});\n\tafterPaintEffects = [];\n}\n\nlet HAS_RAF = typeof requestAnimationFrame == 'function';\n\n/**\n * Schedule a callback to be invoked after the browser has a chance to paint a new frame.\n * Do this by combining requestAnimationFrame (rAF) + setTimeout to invoke a callback after\n * the next browser frame.\n *\n * Also, schedule a timeout in parallel to the the rAF to ensure the callback is invoked\n * even if RAF doesn't fire (for example if the browser tab is not visible)\n *\n * @param {() => void} callback\n */\nfunction afterNextFrame(callback) {\n\tconst done = () => {\n\t\tclearTimeout(timeout);\n\t\tif (HAS_RAF) cancelAnimationFrame(raf);\n\t\tsetTimeout(callback);\n\t};\n\tconst timeout = setTimeout(done, RAF_TIMEOUT);\n\n\tlet raf;\n\tif (HAS_RAF) {\n\t\traf = requestAnimationFrame(done);\n\t}\n}\n\n// Note: if someone used options.debounceRendering = requestAnimationFrame,\n// then effects will ALWAYS run on the NEXT frame instead of the current one, incurring a ~16ms delay.\n// Perhaps this is not such a big deal.\n/**\n * Schedule afterPaintEffects flush after the browser paints\n * @param {number} newQueueLength\n */\nfunction afterPaint(newQueueLength) {\n\tif (newQueueLength === 1 || prevRaf !== options.requestAnimationFrame) {\n\t\tprevRaf = options.requestAnimationFrame;\n\t\t(prevRaf || afterNextFrame)(flushAfterPaintEffects);\n\t}\n}\n\n/**\n * @param {import('./internal').EffectHookState} hook\n */\nfunction invokeCleanup(hook) {\n\t// A hook cleanup can introduce a call to render which creates a new root, this will call options.vnode\n\t// and move the currentComponent away.\n\tconst comp = currentComponent;\n\tif (typeof hook._cleanup == 'function') hook._cleanup();\n\tcurrentComponent = comp;\n}\n\n/**\n * Invoke a Hook's effect\n * @param {import('./internal').EffectHookState} hook\n */\nfunction invokeEffect(hook) {\n\t// A hook call can introduce a call to render which creates a new root, this will call options.vnode\n\t// and move the currentComponent away.\n\tconst comp = currentComponent;\n\thook._cleanup = hook._value();\n\tcurrentComponent = comp;\n}\n\n/**\n * @param {any[]} oldArgs\n * @param {any[]} newArgs\n */\nfunction argsChanged(oldArgs, newArgs) {\n\treturn (\n\t\t!oldArgs ||\n\t\toldArgs.length !== newArgs.length ||\n\t\tnewArgs.some((arg, index) => arg !== oldArgs[index])\n\t);\n}\n\nfunction invokeOrReturn(arg, f) {\n\treturn typeof f == 'function' ? f(arg) : f;\n}\n","// Internal._flags bitfield constants\nexport const TYPE_TEXT = 1 << 0;\nexport const TYPE_ELEMENT = 1 << 1;\nexport const TYPE_CLASS = 1 << 2;\nexport const TYPE_FUNCTION = 1 << 3;\n/** Signals this internal has a _parentDom prop that should change the parent\n * DOM node of it's children */\nexport const TYPE_ROOT = 1 << 4;\n\n/** Any type of internal representing DOM */\nexport const TYPE_DOM = TYPE_TEXT | TYPE_ELEMENT;\n/** Any type of component */\nexport const TYPE_COMPONENT = TYPE_CLASS | TYPE_FUNCTION | TYPE_ROOT;\n\n// Modes of rendering\n/** Normal hydration that attaches to a DOM tree but does not diff it. */\nexport const MODE_HYDRATE = 1 << 5;\n/** Top level render unspecified behaviour (old replaceNode parameter to render) */\nexport const MODE_MUTATIVE_HYDRATE = 1 << 6;\n/** Signifies this VNode suspended on the previous render */\nexport const MODE_SUSPENDED = 1 << 7;\n/** Signifies this VNode errored on the previous render */\nexport const MODE_ERRORED = 1 << 8;\n/** Signifies an error has been thrown and this component will be attempting to\n * handle & rerender the error on next render. In other words, on the next\n * render of this component, unset this mode and set the MODE_RERENDERING_ERROR.\n * This flag is distinct from MODE_RERENDERING_ERROR so that a component can\n * catch multiple errors thrown by its children in one render pass (see test\n * \"should handle double child throws\").\n */\nexport const MODE_PENDING_ERROR = 1 << 9;\n/** Signifies this Internal is attempting to \"handle\" an error and is\n * rerendering. This mode tracks that a component's last rerender was trying to\n * handle an error. As such, if another error is thrown while a component has\n * this flag set, it should not handle the newly thrown error since it failed to\n * successfully rerender the original error. This prevents error handling\n * infinite render loops */\nexport const MODE_RERENDERING_ERROR = 1 << 10;\n/** Signals this internal has been unmounted */\nexport const MODE_UNMOUNTING = 1 << 11;\n/** This Internal is rendered in an SVG tree */\nexport const MODE_SVG = 1 << 12;\n\n/** Signifies that bailout checks will be bypassed */\nexport const FORCE_UPDATE = 1 << 13;\n/** Signifies that a node needs to be updated */\nexport const DIRTY_BIT = 1 << 14;\n\n/** Reset all mode flags */\nexport const RESET_MODE = ~(\n\tMODE_HYDRATE |\n\tMODE_MUTATIVE_HYDRATE |\n\tMODE_SUSPENDED |\n\tMODE_ERRORED |\n\tMODE_RERENDERING_ERROR |\n\tFORCE_UPDATE\n);\n\n/** Modes a child internal inherits from their parent */\nexport const INHERITED_MODES = MODE_HYDRATE | MODE_MUTATIVE_HYDRATE | MODE_SVG;\n\nexport const EMPTY_ARR = [];\n\nexport const IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;\n"],"names":["currentIndex","currentComponent","prevRaf","currentHook","afterPaintEffects","oldBeforeDiff","options","oldBeforeRender","oldAfterDiff","diffed","oldCommit","oldBeforeUnmount","unmount","getHookState","index","type","hooks","__","__h","length","push","useState","initialState","useReducer","invokeOrReturn","reducer","init","hookState","_reducer","undefined","action","nextValue","setState","useEffect","callback","args","state","argsChanged","useLayoutEffect","useRef","initialValue","useMemo","current","useImperativeHandle","ref","createHandle","concat","factory","useCallback","useContext","context","provider","sub","props","value","useDebugValue","formatter","useErrorBoundary","cb","errState","componentDidCatch","err","flushAfterPaintEffects","forEach","component","invokeCleanup","invokeEffect","e","internal","vnode","c","requestAnimationFrame","afterNextFrame","previousComponent","commitQueue","some","filter","i","HAS_RAF","done","clearTimeout","timeout","cancelAnimationFrame","raf","setTimeout","hook","comp","oldArgs","newArgs","arg","f"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{options as n}from"preact";var t,u,r,o=0,i=[],c=n.__b,f=n.__r,e=n.diffed,a=n.__c,v=n.unmount;function m(t,r){n.__h&&n.__h(u,t,o||r),o=0;var i=u.__H||(u.__H={__:[],__h:[]});return t>=i.__.length&&i.__.push({}),i.__[t]}function l(n){return o=1,p(w,n)}function p(n,r,o){var i=m(t++,2);return i.t=n,i.__c||(i.__=[o?o(r):w(void 0,r),function(n){var t=i.t(i.__[0],n);i.__[0]!==t&&(i.__=[t,i.__[1]],i.__c.setState({}))}],i.__c=u),i.__}function y(r,o){var i=m(t++,3);!n.__s&&k(i.__H,o)&&(i.__=r,i.__H=o,u.__H.__h.push(i))}function h(r,o){var i=m(t++,4);!n.__s&&k(i.__H,o)&&(i.__=r,i.__H=o,u.__h.push(i))}function s(n){return o=5,d(function(){return{current:n}},[])}function _(n,t,u){o=6,h(function(){"function"==typeof n?n(t()):n&&(n.current=t())},null==u?u:u.concat(n))}function d(n,u){var r=m(t++,7);return k(r.__H,u)&&(r.__=n(),r.__H=u,r.__h=n),r.__}function A(n,t){return o=8,d(function(){return n},t)}function F(n){var r=u.context[n.__c],o=m(t++,9);return o.c=n,r?(null==o.__&&(o.__=!0,r.sub(u)),r.props.value):n.__}function T(t,u){n.useDebugValue&&n.useDebugValue(u?u(t):t)}function q(n){var r=m(t++,10),o=l();return r.__=n,u.componentDidCatch||(u.componentDidCatch=function(n){r.__&&r.__(n),o[1](n)}),[o[0],function(){o[1](void 0)}]}function x(){i.forEach(function(t){if(t.__P)try{t.__H.__h.forEach(g),t.__H.__h.forEach(j),t.__H.__h=[]}catch(u){t.__H.__h=[],n.__e(u,t.__v)}}),i=[]}n.__b=function(n){u=null,c&&c(n)},n.__r=function(n){f&&f(n),t=0;var r=(u=n.__c).__H;r&&(r.__h.forEach(g),r.__h.forEach(j),r.__h=[])},n.diffed=function(t){e&&e(t);var o=t.__c;o&&o.__H&&o.__H.__h.length&&(1!==i.push(o)&&r===n.requestAnimationFrame||((r=n.requestAnimationFrame)||function(n){var t,u=function(){clearTimeout(r),b&&cancelAnimationFrame(t),setTimeout(n)},r=setTimeout(u,100);b&&(t=requestAnimationFrame(u))})(x)),u=void 0},n.__c=function(t,u){u.some(function(t){try{t.__h.forEach(g),t.__h=t.__h.filter(function(n){return!n.__||j(n)})}catch(r){u.some(function(n){n.__h&&(n.__h=[])}),u=[],n.__e(r,t.__v)}}),a&&a(t,u)},n.unmount=function(t){v&&v(t);var u=t.__c;if(u&&u.__H)try{u.__H.__.forEach(g)}catch(t){n.__e(t,u.__v)}};var b="function"==typeof requestAnimationFrame;function g(n){var t=u;"function"==typeof n.__c&&n.__c(),u=t}function j(n){var t=u;n.__c=n.__(),u=t}function k(n,t){return!n||n.length!==t.length||t.some(function(t,u){return t!==n[u]})}function w(n,t){return"function"==typeof t?t(n):t}export{l as useState,p as useReducer,y as useEffect,h as useLayoutEffect,s as useRef,_ as useImperativeHandle,d as useMemo,A as useCallback,F as useContext,T as useDebugValue,q as useErrorBoundary};
2
+ //# sourceMappingURL=hooks.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.module.js","sources":["../src/index.js"],"sourcesContent":["import { options } from 'preact';\n\n/** @type {number} */\nlet currentIndex;\n\n/** @type {import('./internal').Component} */\nlet currentComponent;\n/**\n * Keep track of the previous component so that we can set\n * `currentComponent` to `null` and throw when a hook is invoked\n * outside of render\n * @type {import('./internal').Component}\n */\nlet previousComponent;\n\n/** @type {number} */\nlet currentHook = 0;\n\n/** @type {Array<import('./internal').Component>} */\nlet afterPaintEffects = [];\n\nlet oldBeforeDiff = options._diff;\nlet oldBeforeRender = options._render;\nlet oldAfterDiff = options.diffed;\nlet oldCommit = options._commit;\nlet oldBeforeUnmount = options.unmount;\n\nconst RAF_TIMEOUT = 100;\nlet prevRaf;\n\noptions._diff = vnode => {\n\tcurrentComponent = null;\n\tif (oldBeforeDiff) oldBeforeDiff(vnode);\n};\n\noptions._render = vnode => {\n\tif (oldBeforeRender) oldBeforeRender(vnode);\n\n\tcurrentComponent = vnode._component;\n\tcurrentIndex = 0;\n\n\tconst hooks = currentComponent.__hooks;\n\tif (hooks) {\n\t\thooks._pendingEffects.forEach(invokeCleanup);\n\t\thooks._pendingEffects.forEach(invokeEffect);\n\t\thooks._pendingEffects = [];\n\t}\n};\n\noptions.diffed = vnode => {\n\tif (oldAfterDiff) oldAfterDiff(vnode);\n\n\tconst c = vnode._component;\n\tif (c && c.__hooks && c.__hooks._pendingEffects.length) {\n\t\tafterPaint(afterPaintEffects.push(c));\n\t}\n\tcurrentComponent = previousComponent;\n};\n\noptions._commit = (vnode, commitQueue) => {\n\tcommitQueue.some(component => {\n\t\ttry {\n\t\t\tcomponent._renderCallbacks.forEach(invokeCleanup);\n\t\t\tcomponent._renderCallbacks = component._renderCallbacks.filter(cb =>\n\t\t\t\tcb._value ? invokeEffect(cb) : true\n\t\t\t);\n\t\t} catch (e) {\n\t\t\tcommitQueue.some(c => {\n\t\t\t\tif (c._renderCallbacks) c._renderCallbacks = [];\n\t\t\t});\n\t\t\tcommitQueue = [];\n\t\t\toptions._catchError(e, component._vnode);\n\t\t}\n\t});\n\n\tif (oldCommit) oldCommit(vnode, commitQueue);\n};\n\noptions.unmount = vnode => {\n\tif (oldBeforeUnmount) oldBeforeUnmount(vnode);\n\n\tconst c = vnode._component;\n\tif (c && c.__hooks) {\n\t\ttry {\n\t\t\tc.__hooks._list.forEach(invokeCleanup);\n\t\t} catch (e) {\n\t\t\toptions._catchError(e, c._vnode);\n\t\t}\n\t}\n};\n\n/**\n * Get a hook's state from the currentComponent\n * @param {number} index The index of the hook to get\n * @param {number} type The index of the hook to get\n * @returns {any}\n */\nfunction getHookState(index, type) {\n\tif (options._hook) {\n\t\toptions._hook(currentComponent, index, currentHook || type);\n\t}\n\tcurrentHook = 0;\n\n\t// Largely inspired by:\n\t// * https://github.com/michael-klein/funcy.js/blob/f6be73468e6ec46b0ff5aa3cc4c9baf72a29025a/src/hooks/core_hooks.mjs\n\t// * https://github.com/michael-klein/funcy.js/blob/650beaa58c43c33a74820a3c98b3c7079cf2e333/src/renderer.mjs\n\t// Other implementations to look at:\n\t// * https://codesandbox.io/s/mnox05qp8\n\tconst hooks =\n\t\tcurrentComponent.__hooks ||\n\t\t(currentComponent.__hooks = {\n\t\t\t_list: [],\n\t\t\t_pendingEffects: []\n\t\t});\n\n\tif (index >= hooks._list.length) {\n\t\thooks._list.push({});\n\t}\n\treturn hooks._list[index];\n}\n\n/**\n * @param {import('./index').StateUpdater<any>} [initialState]\n */\nexport function useState(initialState) {\n\tcurrentHook = 1;\n\treturn useReducer(invokeOrReturn, initialState);\n}\n\n/**\n * @param {import('./index').Reducer<any, any>} reducer\n * @param {import('./index').StateUpdater<any>} initialState\n * @param {(initialState: any) => void} [init]\n * @returns {[ any, (state: any) => void ]}\n */\nexport function useReducer(reducer, initialState, init) {\n\t/** @type {import('./internal').ReducerHookState} */\n\tconst hookState = getHookState(currentIndex++, 2);\n\thookState._reducer = reducer;\n\tif (!hookState._component) {\n\t\thookState._value = [\n\t\t\t!init ? invokeOrReturn(undefined, initialState) : init(initialState),\n\n\t\t\taction => {\n\t\t\t\tconst nextValue = hookState._reducer(hookState._value[0], action);\n\t\t\t\tif (hookState._value[0] !== nextValue) {\n\t\t\t\t\thookState._value = [nextValue, hookState._value[1]];\n\t\t\t\t\thookState._component.setState({});\n\t\t\t\t}\n\t\t\t}\n\t\t];\n\n\t\thookState._component = currentComponent;\n\t}\n\n\treturn hookState._value;\n}\n\n/**\n * @param {import('./internal').Effect} callback\n * @param {any[]} args\n */\nexport function useEffect(callback, args) {\n\t/** @type {import('./internal').EffectHookState} */\n\tconst state = getHookState(currentIndex++, 3);\n\tif (!options._skipEffects && argsChanged(state._args, args)) {\n\t\tstate._value = callback;\n\t\tstate._args = args;\n\n\t\tcurrentComponent.__hooks._pendingEffects.push(state);\n\t}\n}\n\n/**\n * @param {import('./internal').Effect} callback\n * @param {any[]} args\n */\nexport function useLayoutEffect(callback, args) {\n\t/** @type {import('./internal').EffectHookState} */\n\tconst state = getHookState(currentIndex++, 4);\n\tif (!options._skipEffects && argsChanged(state._args, args)) {\n\t\tstate._value = callback;\n\t\tstate._args = args;\n\n\t\tcurrentComponent._renderCallbacks.push(state);\n\t}\n}\n\nexport function useRef(initialValue) {\n\tcurrentHook = 5;\n\treturn useMemo(() => ({ current: initialValue }), []);\n}\n\n/**\n * @param {object} ref\n * @param {() => object} createHandle\n * @param {any[]} args\n */\nexport function useImperativeHandle(ref, createHandle, args) {\n\tcurrentHook = 6;\n\tuseLayoutEffect(\n\t\t() => {\n\t\t\tif (typeof ref == 'function') ref(createHandle());\n\t\t\telse if (ref) ref.current = createHandle();\n\t\t},\n\t\targs == null ? args : args.concat(ref)\n\t);\n}\n\n/**\n * @param {() => any} factory\n * @param {any[]} args\n */\nexport function useMemo(factory, args) {\n\t/** @type {import('./internal').MemoHookState} */\n\tconst state = getHookState(currentIndex++, 7);\n\tif (argsChanged(state._args, args)) {\n\t\tstate._value = factory();\n\t\tstate._args = args;\n\t\tstate._factory = factory;\n\t}\n\n\treturn state._value;\n}\n\n/**\n * @param {() => void} callback\n * @param {any[]} args\n */\nexport function useCallback(callback, args) {\n\tcurrentHook = 8;\n\treturn useMemo(() => callback, args);\n}\n\n/**\n * @param {import('./internal').PreactContext} context\n */\nexport function useContext(context) {\n\tconst provider = currentComponent.context[context._id];\n\t// We could skip this call here, but than we'd not call\n\t// `options._hook`. We need to do that in order to make\n\t// the devtools aware of this hook.\n\t/** @type {import('./internal').ContextHookState} */\n\tconst state = getHookState(currentIndex++, 9);\n\t// The devtools needs access to the context object to\n\t// be able to pull of the default value when no provider\n\t// is present in the tree.\n\tstate._context = context;\n\tif (!provider) return context._defaultValue;\n\t// This is probably not safe to convert to \"!\"\n\tif (state._value == null) {\n\t\tstate._value = true;\n\t\tprovider.sub(currentComponent);\n\t}\n\treturn provider.props.value;\n}\n\n/**\n * Display a custom label for a custom hook for the devtools panel\n * @type {<T>(value: T, cb?: (value: T) => string | number) => void}\n */\nexport function useDebugValue(value, formatter) {\n\tif (options.useDebugValue) {\n\t\toptions.useDebugValue(formatter ? formatter(value) : value);\n\t}\n}\n\n/**\n * @param {(error: any) => void} cb\n */\nexport function useErrorBoundary(cb) {\n\t/** @type {import('./internal').ErrorBoundaryHookState} */\n\tconst state = getHookState(currentIndex++, 10);\n\tconst errState = useState();\n\tstate._value = cb;\n\tif (!currentComponent.componentDidCatch) {\n\t\tcurrentComponent.componentDidCatch = err => {\n\t\t\tif (state._value) state._value(err);\n\t\t\terrState[1](err);\n\t\t};\n\t}\n\treturn [\n\t\terrState[0],\n\t\t() => {\n\t\t\terrState[1](undefined);\n\t\t}\n\t];\n}\n\n/**\n * After paint effects consumer.\n */\nfunction flushAfterPaintEffects() {\n\tafterPaintEffects.forEach(component => {\n\t\tif (component._parentDom) {\n\t\t\ttry {\n\t\t\t\tcomponent.__hooks._pendingEffects.forEach(invokeCleanup);\n\t\t\t\tcomponent.__hooks._pendingEffects.forEach(invokeEffect);\n\t\t\t\tcomponent.__hooks._pendingEffects = [];\n\t\t\t} catch (e) {\n\t\t\t\tcomponent.__hooks._pendingEffects = [];\n\t\t\t\toptions._catchError(e, component._vnode);\n\t\t\t}\n\t\t}\n\t});\n\tafterPaintEffects = [];\n}\n\nlet HAS_RAF = typeof requestAnimationFrame == 'function';\n\n/**\n * Schedule a callback to be invoked after the browser has a chance to paint a new frame.\n * Do this by combining requestAnimationFrame (rAF) + setTimeout to invoke a callback after\n * the next browser frame.\n *\n * Also, schedule a timeout in parallel to the the rAF to ensure the callback is invoked\n * even if RAF doesn't fire (for example if the browser tab is not visible)\n *\n * @param {() => void} callback\n */\nfunction afterNextFrame(callback) {\n\tconst done = () => {\n\t\tclearTimeout(timeout);\n\t\tif (HAS_RAF) cancelAnimationFrame(raf);\n\t\tsetTimeout(callback);\n\t};\n\tconst timeout = setTimeout(done, RAF_TIMEOUT);\n\n\tlet raf;\n\tif (HAS_RAF) {\n\t\traf = requestAnimationFrame(done);\n\t}\n}\n\n// Note: if someone used options.debounceRendering = requestAnimationFrame,\n// then effects will ALWAYS run on the NEXT frame instead of the current one, incurring a ~16ms delay.\n// Perhaps this is not such a big deal.\n/**\n * Schedule afterPaintEffects flush after the browser paints\n * @param {number} newQueueLength\n */\nfunction afterPaint(newQueueLength) {\n\tif (newQueueLength === 1 || prevRaf !== options.requestAnimationFrame) {\n\t\tprevRaf = options.requestAnimationFrame;\n\t\t(prevRaf || afterNextFrame)(flushAfterPaintEffects);\n\t}\n}\n\n/**\n * @param {import('./internal').EffectHookState} hook\n */\nfunction invokeCleanup(hook) {\n\t// A hook cleanup can introduce a call to render which creates a new root, this will call options.vnode\n\t// and move the currentComponent away.\n\tconst comp = currentComponent;\n\tif (typeof hook._cleanup == 'function') hook._cleanup();\n\tcurrentComponent = comp;\n}\n\n/**\n * Invoke a Hook's effect\n * @param {import('./internal').EffectHookState} hook\n */\nfunction invokeEffect(hook) {\n\t// A hook call can introduce a call to render which creates a new root, this will call options.vnode\n\t// and move the currentComponent away.\n\tconst comp = currentComponent;\n\thook._cleanup = hook._value();\n\tcurrentComponent = comp;\n}\n\n/**\n * @param {any[]} oldArgs\n * @param {any[]} newArgs\n */\nfunction argsChanged(oldArgs, newArgs) {\n\treturn (\n\t\t!oldArgs ||\n\t\toldArgs.length !== newArgs.length ||\n\t\tnewArgs.some((arg, index) => arg !== oldArgs[index])\n\t);\n}\n\nfunction invokeOrReturn(arg, f) {\n\treturn typeof f == 'function' ? f(arg) : f;\n}\n"],"names":["currentIndex","currentComponent","prevRaf","currentHook","afterPaintEffects","oldBeforeDiff","options","oldBeforeRender","oldAfterDiff","diffed","oldCommit","oldBeforeUnmount","unmount","getHookState","index","type","hooks","length","push","useState","initialState","useReducer","invokeOrReturn","reducer","init","hookState","_reducer","undefined","action","nextValue","setState","useEffect","callback","args","state","argsChanged","useLayoutEffect","useRef","initialValue","useMemo","current","useImperativeHandle","ref","createHandle","concat","factory","useCallback","useContext","context","provider","sub","props","value","useDebugValue","formatter","useErrorBoundary","cb","errState","componentDidCatch","err","flushAfterPaintEffects","forEach","component","invokeCleanup","invokeEffect","e","vnode","c","requestAnimationFrame","raf","done","clearTimeout","timeout","HAS_RAF","cancelAnimationFrame","setTimeout","previousComponent","commitQueue","some","filter","hook","comp","oldArgs","newArgs","arg","f"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ !function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("preact")):"function"==typeof define&&define.amd?define(["exports","preact"],t):t(n.preactHooks={},n.preact)}(this,function(n,t){var u,o,i,r=0,c=[],f=t.options.__b,e=t.options.__r,a=t.options.diffed,v=t.options.__c,p=t.options.unmount;function m(n,u){t.options.__h&&t.options.__h(o,n,r||u),r=0;var i=o.__H||(o.__H={__:[],__h:[]});return n>=i.__.length&&i.__.push({}),i.__[n]}function y(n){return r=1,d(F,n)}function d(n,t,i){var r=m(u++,2);return r.t=n,r.__c||(r.__=[i?i(t):F(void 0,t),function(n){var t=r.t(r.__[0],n);r.__[0]!==t&&(r.__=[t,r.__[1]],r.__c.setState({}))}],r.__c=o),r.__}function l(n,i){var r=m(u++,4);!t.options.__s&&A(r.__H,i)&&(r.__=n,r.__H=i,o.__h.push(r))}function s(n,t){var o=m(u++,7);return A(o.__H,t)&&(o.__=n(),o.__H=t,o.__h=n),o.__}function h(){c.forEach(function(n){if(n.__P)try{n.__H.__h.forEach(q),n.__H.__h.forEach(x),n.__H.__h=[]}catch(u){n.__H.__h=[],t.options.__e(u,n.__v)}}),c=[]}t.options.__b=function(n){o=null,f&&f(n)},t.options.__r=function(n){e&&e(n),u=0;var t=(o=n.__c).__H;t&&(t.__h.forEach(q),t.__h.forEach(x),t.__h=[])},t.options.diffed=function(n){a&&a(n);var u=n.__c;u&&u.__H&&u.__H.__h.length&&(1!==c.push(u)&&i===t.options.requestAnimationFrame||((i=t.options.requestAnimationFrame)||function(n){var t,u=function(){clearTimeout(o),_&&cancelAnimationFrame(t),setTimeout(n)},o=setTimeout(u,100);_&&(t=requestAnimationFrame(u))})(h)),o=void 0},t.options.__c=function(n,u){u.some(function(n){try{n.__h.forEach(q),n.__h=n.__h.filter(function(n){return!n.__||x(n)})}catch(o){u.some(function(n){n.__h&&(n.__h=[])}),u=[],t.options.__e(o,n.__v)}}),v&&v(n,u)},t.options.unmount=function(n){p&&p(n);var u=n.__c;if(u&&u.__H)try{u.__H.__.forEach(q)}catch(n){t.options.__e(n,u.__v)}};var _="function"==typeof requestAnimationFrame;function q(n){var t=o;"function"==typeof n.__c&&n.__c(),o=t}function x(n){var t=o;n.__c=n.__(),o=t}function A(n,t){return!n||n.length!==t.length||t.some(function(t,u){return t!==n[u]})}function F(n,t){return"function"==typeof t?t(n):t}n.useState=y,n.useReducer=d,n.useEffect=function(n,i){var r=m(u++,3);!t.options.__s&&A(r.__H,i)&&(r.__=n,r.__H=i,o.__H.__h.push(r))},n.useLayoutEffect=l,n.useRef=function(n){return r=5,s(function(){return{current:n}},[])},n.useImperativeHandle=function(n,t,u){r=6,l(function(){"function"==typeof n?n(t()):n&&(n.current=t())},null==u?u:u.concat(n))},n.useMemo=s,n.useCallback=function(n,t){return r=8,s(function(){return n},t)},n.useContext=function(n){var t=o.context[n.__c],i=m(u++,9);return i.c=n,t?(null==i.__&&(i.__=!0,t.sub(o)),t.props.value):n.__},n.useDebugValue=function(n,u){t.options.useDebugValue&&t.options.useDebugValue(u?u(n):n)},n.useErrorBoundary=function(n){var t=m(u++,10),i=y();return t.__=n,o.componentDidCatch||(o.componentDidCatch=function(n){t.__&&t.__(n),i[1](n)}),[i[0],function(){i[1](void 0)}]}});
2
+ //# sourceMappingURL=hooks.umd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.umd.js","sources":["../src/index.js"],"sourcesContent":["import { options } from 'preact';\n\n/** @type {number} */\nlet currentIndex;\n\n/** @type {import('./internal').Component} */\nlet currentComponent;\n/**\n * Keep track of the previous component so that we can set\n * `currentComponent` to `null` and throw when a hook is invoked\n * outside of render\n * @type {import('./internal').Component}\n */\nlet previousComponent;\n\n/** @type {number} */\nlet currentHook = 0;\n\n/** @type {Array<import('./internal').Component>} */\nlet afterPaintEffects = [];\n\nlet oldBeforeDiff = options._diff;\nlet oldBeforeRender = options._render;\nlet oldAfterDiff = options.diffed;\nlet oldCommit = options._commit;\nlet oldBeforeUnmount = options.unmount;\n\nconst RAF_TIMEOUT = 100;\nlet prevRaf;\n\noptions._diff = vnode => {\n\tcurrentComponent = null;\n\tif (oldBeforeDiff) oldBeforeDiff(vnode);\n};\n\noptions._render = vnode => {\n\tif (oldBeforeRender) oldBeforeRender(vnode);\n\n\tcurrentComponent = vnode._component;\n\tcurrentIndex = 0;\n\n\tconst hooks = currentComponent.__hooks;\n\tif (hooks) {\n\t\thooks._pendingEffects.forEach(invokeCleanup);\n\t\thooks._pendingEffects.forEach(invokeEffect);\n\t\thooks._pendingEffects = [];\n\t}\n};\n\noptions.diffed = vnode => {\n\tif (oldAfterDiff) oldAfterDiff(vnode);\n\n\tconst c = vnode._component;\n\tif (c && c.__hooks && c.__hooks._pendingEffects.length) {\n\t\tafterPaint(afterPaintEffects.push(c));\n\t}\n\tcurrentComponent = previousComponent;\n};\n\noptions._commit = (vnode, commitQueue) => {\n\tcommitQueue.some(component => {\n\t\ttry {\n\t\t\tcomponent._renderCallbacks.forEach(invokeCleanup);\n\t\t\tcomponent._renderCallbacks = component._renderCallbacks.filter(cb =>\n\t\t\t\tcb._value ? invokeEffect(cb) : true\n\t\t\t);\n\t\t} catch (e) {\n\t\t\tcommitQueue.some(c => {\n\t\t\t\tif (c._renderCallbacks) c._renderCallbacks = [];\n\t\t\t});\n\t\t\tcommitQueue = [];\n\t\t\toptions._catchError(e, component._vnode);\n\t\t}\n\t});\n\n\tif (oldCommit) oldCommit(vnode, commitQueue);\n};\n\noptions.unmount = vnode => {\n\tif (oldBeforeUnmount) oldBeforeUnmount(vnode);\n\n\tconst c = vnode._component;\n\tif (c && c.__hooks) {\n\t\ttry {\n\t\t\tc.__hooks._list.forEach(invokeCleanup);\n\t\t} catch (e) {\n\t\t\toptions._catchError(e, c._vnode);\n\t\t}\n\t}\n};\n\n/**\n * Get a hook's state from the currentComponent\n * @param {number} index The index of the hook to get\n * @param {number} type The index of the hook to get\n * @returns {any}\n */\nfunction getHookState(index, type) {\n\tif (options._hook) {\n\t\toptions._hook(currentComponent, index, currentHook || type);\n\t}\n\tcurrentHook = 0;\n\n\t// Largely inspired by:\n\t// * https://github.com/michael-klein/funcy.js/blob/f6be73468e6ec46b0ff5aa3cc4c9baf72a29025a/src/hooks/core_hooks.mjs\n\t// * https://github.com/michael-klein/funcy.js/blob/650beaa58c43c33a74820a3c98b3c7079cf2e333/src/renderer.mjs\n\t// Other implementations to look at:\n\t// * https://codesandbox.io/s/mnox05qp8\n\tconst hooks =\n\t\tcurrentComponent.__hooks ||\n\t\t(currentComponent.__hooks = {\n\t\t\t_list: [],\n\t\t\t_pendingEffects: []\n\t\t});\n\n\tif (index >= hooks._list.length) {\n\t\thooks._list.push({});\n\t}\n\treturn hooks._list[index];\n}\n\n/**\n * @param {import('./index').StateUpdater<any>} [initialState]\n */\nexport function useState(initialState) {\n\tcurrentHook = 1;\n\treturn useReducer(invokeOrReturn, initialState);\n}\n\n/**\n * @param {import('./index').Reducer<any, any>} reducer\n * @param {import('./index').StateUpdater<any>} initialState\n * @param {(initialState: any) => void} [init]\n * @returns {[ any, (state: any) => void ]}\n */\nexport function useReducer(reducer, initialState, init) {\n\t/** @type {import('./internal').ReducerHookState} */\n\tconst hookState = getHookState(currentIndex++, 2);\n\thookState._reducer = reducer;\n\tif (!hookState._component) {\n\t\thookState._value = [\n\t\t\t!init ? invokeOrReturn(undefined, initialState) : init(initialState),\n\n\t\t\taction => {\n\t\t\t\tconst nextValue = hookState._reducer(hookState._value[0], action);\n\t\t\t\tif (hookState._value[0] !== nextValue) {\n\t\t\t\t\thookState._value = [nextValue, hookState._value[1]];\n\t\t\t\t\thookState._component.setState({});\n\t\t\t\t}\n\t\t\t}\n\t\t];\n\n\t\thookState._component = currentComponent;\n\t}\n\n\treturn hookState._value;\n}\n\n/**\n * @param {import('./internal').Effect} callback\n * @param {any[]} args\n */\nexport function useEffect(callback, args) {\n\t/** @type {import('./internal').EffectHookState} */\n\tconst state = getHookState(currentIndex++, 3);\n\tif (!options._skipEffects && argsChanged(state._args, args)) {\n\t\tstate._value = callback;\n\t\tstate._args = args;\n\n\t\tcurrentComponent.__hooks._pendingEffects.push(state);\n\t}\n}\n\n/**\n * @param {import('./internal').Effect} callback\n * @param {any[]} args\n */\nexport function useLayoutEffect(callback, args) {\n\t/** @type {import('./internal').EffectHookState} */\n\tconst state = getHookState(currentIndex++, 4);\n\tif (!options._skipEffects && argsChanged(state._args, args)) {\n\t\tstate._value = callback;\n\t\tstate._args = args;\n\n\t\tcurrentComponent._renderCallbacks.push(state);\n\t}\n}\n\nexport function useRef(initialValue) {\n\tcurrentHook = 5;\n\treturn useMemo(() => ({ current: initialValue }), []);\n}\n\n/**\n * @param {object} ref\n * @param {() => object} createHandle\n * @param {any[]} args\n */\nexport function useImperativeHandle(ref, createHandle, args) {\n\tcurrentHook = 6;\n\tuseLayoutEffect(\n\t\t() => {\n\t\t\tif (typeof ref == 'function') ref(createHandle());\n\t\t\telse if (ref) ref.current = createHandle();\n\t\t},\n\t\targs == null ? args : args.concat(ref)\n\t);\n}\n\n/**\n * @param {() => any} factory\n * @param {any[]} args\n */\nexport function useMemo(factory, args) {\n\t/** @type {import('./internal').MemoHookState} */\n\tconst state = getHookState(currentIndex++, 7);\n\tif (argsChanged(state._args, args)) {\n\t\tstate._value = factory();\n\t\tstate._args = args;\n\t\tstate._factory = factory;\n\t}\n\n\treturn state._value;\n}\n\n/**\n * @param {() => void} callback\n * @param {any[]} args\n */\nexport function useCallback(callback, args) {\n\tcurrentHook = 8;\n\treturn useMemo(() => callback, args);\n}\n\n/**\n * @param {import('./internal').PreactContext} context\n */\nexport function useContext(context) {\n\tconst provider = currentComponent.context[context._id];\n\t// We could skip this call here, but than we'd not call\n\t// `options._hook`. We need to do that in order to make\n\t// the devtools aware of this hook.\n\t/** @type {import('./internal').ContextHookState} */\n\tconst state = getHookState(currentIndex++, 9);\n\t// The devtools needs access to the context object to\n\t// be able to pull of the default value when no provider\n\t// is present in the tree.\n\tstate._context = context;\n\tif (!provider) return context._defaultValue;\n\t// This is probably not safe to convert to \"!\"\n\tif (state._value == null) {\n\t\tstate._value = true;\n\t\tprovider.sub(currentComponent);\n\t}\n\treturn provider.props.value;\n}\n\n/**\n * Display a custom label for a custom hook for the devtools panel\n * @type {<T>(value: T, cb?: (value: T) => string | number) => void}\n */\nexport function useDebugValue(value, formatter) {\n\tif (options.useDebugValue) {\n\t\toptions.useDebugValue(formatter ? formatter(value) : value);\n\t}\n}\n\n/**\n * @param {(error: any) => void} cb\n */\nexport function useErrorBoundary(cb) {\n\t/** @type {import('./internal').ErrorBoundaryHookState} */\n\tconst state = getHookState(currentIndex++, 10);\n\tconst errState = useState();\n\tstate._value = cb;\n\tif (!currentComponent.componentDidCatch) {\n\t\tcurrentComponent.componentDidCatch = err => {\n\t\t\tif (state._value) state._value(err);\n\t\t\terrState[1](err);\n\t\t};\n\t}\n\treturn [\n\t\terrState[0],\n\t\t() => {\n\t\t\terrState[1](undefined);\n\t\t}\n\t];\n}\n\n/**\n * After paint effects consumer.\n */\nfunction flushAfterPaintEffects() {\n\tafterPaintEffects.forEach(component => {\n\t\tif (component._parentDom) {\n\t\t\ttry {\n\t\t\t\tcomponent.__hooks._pendingEffects.forEach(invokeCleanup);\n\t\t\t\tcomponent.__hooks._pendingEffects.forEach(invokeEffect);\n\t\t\t\tcomponent.__hooks._pendingEffects = [];\n\t\t\t} catch (e) {\n\t\t\t\tcomponent.__hooks._pendingEffects = [];\n\t\t\t\toptions._catchError(e, component._vnode);\n\t\t\t}\n\t\t}\n\t});\n\tafterPaintEffects = [];\n}\n\nlet HAS_RAF = typeof requestAnimationFrame == 'function';\n\n/**\n * Schedule a callback to be invoked after the browser has a chance to paint a new frame.\n * Do this by combining requestAnimationFrame (rAF) + setTimeout to invoke a callback after\n * the next browser frame.\n *\n * Also, schedule a timeout in parallel to the the rAF to ensure the callback is invoked\n * even if RAF doesn't fire (for example if the browser tab is not visible)\n *\n * @param {() => void} callback\n */\nfunction afterNextFrame(callback) {\n\tconst done = () => {\n\t\tclearTimeout(timeout);\n\t\tif (HAS_RAF) cancelAnimationFrame(raf);\n\t\tsetTimeout(callback);\n\t};\n\tconst timeout = setTimeout(done, RAF_TIMEOUT);\n\n\tlet raf;\n\tif (HAS_RAF) {\n\t\traf = requestAnimationFrame(done);\n\t}\n}\n\n// Note: if someone used options.debounceRendering = requestAnimationFrame,\n// then effects will ALWAYS run on the NEXT frame instead of the current one, incurring a ~16ms delay.\n// Perhaps this is not such a big deal.\n/**\n * Schedule afterPaintEffects flush after the browser paints\n * @param {number} newQueueLength\n */\nfunction afterPaint(newQueueLength) {\n\tif (newQueueLength === 1 || prevRaf !== options.requestAnimationFrame) {\n\t\tprevRaf = options.requestAnimationFrame;\n\t\t(prevRaf || afterNextFrame)(flushAfterPaintEffects);\n\t}\n}\n\n/**\n * @param {import('./internal').EffectHookState} hook\n */\nfunction invokeCleanup(hook) {\n\t// A hook cleanup can introduce a call to render which creates a new root, this will call options.vnode\n\t// and move the currentComponent away.\n\tconst comp = currentComponent;\n\tif (typeof hook._cleanup == 'function') hook._cleanup();\n\tcurrentComponent = comp;\n}\n\n/**\n * Invoke a Hook's effect\n * @param {import('./internal').EffectHookState} hook\n */\nfunction invokeEffect(hook) {\n\t// A hook call can introduce a call to render which creates a new root, this will call options.vnode\n\t// and move the currentComponent away.\n\tconst comp = currentComponent;\n\thook._cleanup = hook._value();\n\tcurrentComponent = comp;\n}\n\n/**\n * @param {any[]} oldArgs\n * @param {any[]} newArgs\n */\nfunction argsChanged(oldArgs, newArgs) {\n\treturn (\n\t\t!oldArgs ||\n\t\toldArgs.length !== newArgs.length ||\n\t\tnewArgs.some((arg, index) => arg !== oldArgs[index])\n\t);\n}\n\nfunction invokeOrReturn(arg, f) {\n\treturn typeof f == 'function' ? f(arg) : f;\n}\n"],"names":["currentIndex","currentComponent","prevRaf","currentHook","afterPaintEffects","oldBeforeDiff","options","oldBeforeRender","oldAfterDiff","diffed","oldCommit","oldBeforeUnmount","unmount","getHookState","index","type","hooks","length","push","useState","initialState","useReducer","invokeOrReturn","reducer","init","hookState","_reducer","undefined","action","nextValue","setState","useLayoutEffect","callback","args","state","argsChanged","useMemo","factory","flushAfterPaintEffects","forEach","component","invokeCleanup","invokeEffect","e","vnode","c","requestAnimationFrame","raf","done","clearTimeout","timeout","HAS_RAF","cancelAnimationFrame","setTimeout","previousComponent","commitQueue","some","filter","cb","hook","comp","oldArgs","newArgs","arg","f","initialValue","current","ref","createHandle","concat","context","provider","sub","props","value","formatter","useDebugValue","errState","componentDidCatch","err"],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ {
2
+ "name": "preact-hooks",
3
+ "amdName": "preactHooks",
4
+ "version": "0.1.0",
5
+ "private": true,
6
+ "description": "Hook addon for Preact",
7
+ "main": "dist/hooks.js",
8
+ "module": "dist/hooks.module.js",
9
+ "umd:main": "dist/hooks.umd.js",
10
+ "source": "src/index.js",
11
+ "license": "MIT",
12
+ "types": "src/index.d.ts",
13
+ "scripts": {
14
+ "build": "microbundle build --raw",
15
+ "dev": "microbundle watch --raw --format cjs",
16
+ "test": "npm-run-all build --parallel test:karma",
17
+ "test:karma": "karma start test/karma.conf.js --single-run",
18
+ "test:karma:watch": "karma start test/karma.conf.js --no-single-run"
19
+ },
20
+ "peerDependencies": {
21
+ "preact": "^10.0.0"
22
+ },
23
+ "mangle": {
24
+ "regex": "^_"
25
+ }
26
+ }
@@ -0,0 +1,133 @@
1
+ import { PreactContext, Ref as PreactRef, RefObject } from '../..';
2
+
3
+ type Inputs = ReadonlyArray<unknown>;
4
+
5
+ export type StateUpdater<S> = (value: S | ((prevState: S) => S)) => void;
6
+ /**
7
+ * Returns a stateful value, and a function to update it.
8
+ * @param initialState The initial value (or a function that returns the initial value)
9
+ */
10
+ export function useState<S>(initialState: S | (() => S)): [S, StateUpdater<S>];
11
+
12
+ export function useState<S = undefined>(): [
13
+ S | undefined,
14
+ StateUpdater<S | undefined>
15
+ ];
16
+
17
+ export type Reducer<S, A> = (prevState: S, action: A) => S;
18
+ /**
19
+ * An alternative to `useState`.
20
+ *
21
+ * `useReducer` is usually preferable to `useState` when you have complex state logic that involves
22
+ * multiple sub-values. It also lets you optimize performance for components that trigger deep
23
+ * updates because you can pass `dispatch` down instead of callbacks.
24
+ * @param reducer Given the current state and an action, returns the new state
25
+ * @param initialState The initial value to store as state
26
+ */
27
+ export function useReducer<S, A>(
28
+ reducer: Reducer<S, A>,
29
+ initialState: S
30
+ ): [S, (action: A) => void];
31
+
32
+ /**
33
+ * An alternative to `useState`.
34
+ *
35
+ * `useReducer` is usually preferable to `useState` when you have complex state logic that involves
36
+ * multiple sub-values. It also lets you optimize performance for components that trigger deep
37
+ * updates because you can pass `dispatch` down instead of callbacks.
38
+ * @param reducer Given the current state and an action, returns the new state
39
+ * @param initialArg The initial argument to pass to the `init` function
40
+ * @param init A function that, given the `initialArg`, returns the initial value to store as state
41
+ */
42
+ export function useReducer<S, A, I>(
43
+ reducer: Reducer<S, A>,
44
+ initialArg: I,
45
+ init: (arg: I) => S
46
+ ): [S, (action: A) => void];
47
+
48
+ /** @deprecated Use the `Ref` type instead. */
49
+ type PropRef<T> = { current: T };
50
+ type Ref<T> = { current: T };
51
+
52
+ /**
53
+ * `useRef` returns a mutable ref object whose `.current` property is initialized to the passed argument
54
+ * (`initialValue`). The returned object will persist for the full lifetime of the component.
55
+ *
56
+ * Note that `useRef()` is useful for more than the `ref` attribute. It’s handy for keeping any mutable
57
+ * value around similar to how you’d use instance fields in classes.
58
+ *
59
+ * @param initialValue the initial value to store in the ref object
60
+ */
61
+ export function useRef<T>(initialValue: null): RefObject<T>;
62
+ export function useRef<T>(initialValue: T): Ref<T>;
63
+ export function useRef<T>(): Ref<T | undefined>;
64
+
65
+ type EffectCallback = () => void | (() => void);
66
+ /**
67
+ * Accepts a function that contains imperative, possibly effectful code.
68
+ * The effects run after browser paint, without blocking it.
69
+ *
70
+ * @param effect Imperative function that can return a cleanup function
71
+ * @param inputs If present, effect will only activate if the values in the list change (using ===).
72
+ */
73
+ export function useEffect(effect: EffectCallback, inputs?: Inputs): void;
74
+
75
+ type CreateHandle = () => object;
76
+
77
+ /**
78
+ * @param ref The ref that will be mutated
79
+ * @param create The function that will be executed to get the value that will be attached to
80
+ * ref.current
81
+ * @param inputs If present, effect will only activate if the values in the list change (using ===).
82
+ */
83
+ export function useImperativeHandle<T, R extends T>(
84
+ ref: PreactRef<T>,
85
+ create: () => R,
86
+ inputs?: Inputs
87
+ ): void;
88
+
89
+ /**
90
+ * Accepts a function that contains imperative, possibly effectful code.
91
+ * Use this to read layout from the DOM and synchronously re-render.
92
+ * Updates scheduled inside `useLayoutEffect` will be flushed synchronously, after all DOM mutations but before the browser has a chance to paint.
93
+ * Prefer the standard `useEffect` hook when possible to avoid blocking visual updates.
94
+ *
95
+ * @param effect Imperative function that can return a cleanup function
96
+ * @param inputs If present, effect will only activate if the values in the list change (using ===).
97
+ */
98
+ export function useLayoutEffect(effect: EffectCallback, inputs?: Inputs): void;
99
+
100
+ /**
101
+ * Returns a memoized version of the callback that only changes if one of the `inputs`
102
+ * has changed (using ===).
103
+ */
104
+ export function useCallback<T extends Function>(callback: T, inputs: Inputs): T;
105
+
106
+ /**
107
+ * Pass a factory function and an array of inputs.
108
+ * useMemo will only recompute the memoized value when one of the inputs has changed.
109
+ * This optimization helps to avoid expensive calculations on every render.
110
+ * If no array is provided, a new value will be computed whenever a new function instance is passed as the first argument.
111
+ */
112
+ // for `inputs`, allow undefined, but don't make it optional as that is very likely a mistake
113
+ export function useMemo<T>(factory: () => T, inputs: Inputs | undefined): T;
114
+
115
+ /**
116
+ * Returns the current context value, as given by the nearest context provider for the given context.
117
+ * When the provider updates, this Hook will trigger a rerender with the latest context value.
118
+ *
119
+ * @param context The context you want to use
120
+ */
121
+ export function useContext<T>(context: PreactContext<T>): T;
122
+
123
+ /**
124
+ * Customize the displayed value in the devtools panel.
125
+ *
126
+ * @param value Custom hook name or object that is passed to formatter
127
+ * @param formatter Formatter to modify value before sending it to the devtools
128
+ */
129
+ export function useDebugValue<T>(value: T, formatter?: (value: T) => any): void;
130
+
131
+ export function useErrorBoundary(
132
+ callback?: (error: any) => Promise<void> | void
133
+ ): [any, () => void];