django-handyhelpers 0.3.19__py3-none-any.whl → 0.3.35__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (572) hide show
  1. {django_handyhelpers-0.3.19.dist-info → django_handyhelpers-0.3.35.dist-info}/METADATA +16 -6
  2. {django_handyhelpers-0.3.19.dist-info → django_handyhelpers-0.3.35.dist-info}/RECORD +563 -76
  3. {django_handyhelpers-0.3.19.dist-info → django_handyhelpers-0.3.35.dist-info}/WHEEL +1 -1
  4. handyhelpers/__init__.py +6 -6
  5. handyhelpers/forms.py +9 -1
  6. handyhelpers/mixins/form_mixins.py +61 -0
  7. handyhelpers/mixins/model_mixins.py +21 -0
  8. handyhelpers/mixins/serializer_mixins.py +35 -0
  9. handyhelpers/mixins/view_mixins.py +5 -2
  10. handyhelpers/serializers.py +23 -3
  11. handyhelpers/static/handyhelpers/css/table_sortable.css +17 -0
  12. handyhelpers/static/handyhelpers/js/sidebar.js +8 -4
  13. handyhelpers/static/handyhelpers/js/table_sortable.js +119 -0
  14. handyhelpers/static/node_modules/.bin/acorn +4 -0
  15. handyhelpers/static/node_modules/.bin/css-b64-images +13 -0
  16. handyhelpers/static/node_modules/.bin/esbuild +0 -0
  17. handyhelpers/static/node_modules/.bin/html-minifier-terser +308 -0
  18. handyhelpers/static/node_modules/.bin/minify +98 -0
  19. handyhelpers/static/node_modules/.bin/terser +21 -0
  20. handyhelpers/static/node_modules/.bin/uglifyjs +624 -0
  21. handyhelpers/static/node_modules/.package-lock.json +750 -0
  22. handyhelpers/static/node_modules/@esbuild/linux-x64/README.md +3 -0
  23. handyhelpers/static/node_modules/@esbuild/linux-x64/bin/esbuild +0 -0
  24. handyhelpers/static/node_modules/@esbuild/linux-x64/package.json +20 -0
  25. handyhelpers/static/node_modules/@jridgewell/gen-mapping/LICENSE +19 -0
  26. handyhelpers/static/node_modules/@jridgewell/gen-mapping/README.md +227 -0
  27. handyhelpers/static/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.mjs +230 -0
  28. handyhelpers/static/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.mjs.map +1 -0
  29. handyhelpers/static/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js +246 -0
  30. handyhelpers/static/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js.map +1 -0
  31. handyhelpers/static/node_modules/@jridgewell/gen-mapping/dist/types/gen-mapping.d.ts +88 -0
  32. handyhelpers/static/node_modules/@jridgewell/gen-mapping/dist/types/sourcemap-segment.d.ts +12 -0
  33. handyhelpers/static/node_modules/@jridgewell/gen-mapping/dist/types/types.d.ts +36 -0
  34. handyhelpers/static/node_modules/@jridgewell/gen-mapping/package.json +76 -0
  35. handyhelpers/static/node_modules/@jridgewell/resolve-uri/LICENSE +19 -0
  36. handyhelpers/static/node_modules/@jridgewell/resolve-uri/README.md +40 -0
  37. handyhelpers/static/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.mjs +232 -0
  38. handyhelpers/static/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.mjs.map +1 -0
  39. handyhelpers/static/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js +240 -0
  40. handyhelpers/static/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js.map +1 -0
  41. handyhelpers/static/node_modules/@jridgewell/resolve-uri/dist/types/resolve-uri.d.ts +4 -0
  42. handyhelpers/static/node_modules/@jridgewell/resolve-uri/package.json +69 -0
  43. handyhelpers/static/node_modules/@jridgewell/set-array/LICENSE +19 -0
  44. handyhelpers/static/node_modules/@jridgewell/set-array/README.md +37 -0
  45. handyhelpers/static/node_modules/@jridgewell/set-array/dist/set-array.mjs +69 -0
  46. handyhelpers/static/node_modules/@jridgewell/set-array/dist/set-array.mjs.map +1 -0
  47. handyhelpers/static/node_modules/@jridgewell/set-array/dist/set-array.umd.js +83 -0
  48. handyhelpers/static/node_modules/@jridgewell/set-array/dist/set-array.umd.js.map +1 -0
  49. handyhelpers/static/node_modules/@jridgewell/set-array/dist/types/set-array.d.ts +32 -0
  50. handyhelpers/static/node_modules/@jridgewell/set-array/package.json +65 -0
  51. handyhelpers/static/node_modules/@jridgewell/source-map/LICENSE +19 -0
  52. handyhelpers/static/node_modules/@jridgewell/source-map/README.md +184 -0
  53. handyhelpers/static/node_modules/@jridgewell/source-map/dist/source-map.cjs +95 -0
  54. handyhelpers/static/node_modules/@jridgewell/source-map/dist/source-map.cjs.map +1 -0
  55. handyhelpers/static/node_modules/@jridgewell/source-map/dist/source-map.mjs +90 -0
  56. handyhelpers/static/node_modules/@jridgewell/source-map/dist/source-map.mjs.map +1 -0
  57. handyhelpers/static/node_modules/@jridgewell/source-map/dist/source-map.umd.js +1242 -0
  58. handyhelpers/static/node_modules/@jridgewell/source-map/dist/source-map.umd.js.map +1 -0
  59. handyhelpers/static/node_modules/@jridgewell/source-map/dist/types/source-map.d.ts +35 -0
  60. handyhelpers/static/node_modules/@jridgewell/source-map/package.json +71 -0
  61. handyhelpers/static/node_modules/@jridgewell/sourcemap-codec/LICENSE +21 -0
  62. handyhelpers/static/node_modules/@jridgewell/sourcemap-codec/README.md +264 -0
  63. handyhelpers/static/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs +424 -0
  64. handyhelpers/static/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs.map +1 -0
  65. handyhelpers/static/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js +439 -0
  66. handyhelpers/static/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js.map +1 -0
  67. handyhelpers/static/node_modules/@jridgewell/sourcemap-codec/dist/types/scopes.d.ts +49 -0
  68. handyhelpers/static/node_modules/@jridgewell/sourcemap-codec/dist/types/sourcemap-codec.d.ts +8 -0
  69. handyhelpers/static/node_modules/@jridgewell/sourcemap-codec/dist/types/strings.d.ts +15 -0
  70. handyhelpers/static/node_modules/@jridgewell/sourcemap-codec/dist/types/vlq.d.ts +6 -0
  71. handyhelpers/static/node_modules/@jridgewell/sourcemap-codec/package.json +75 -0
  72. handyhelpers/static/node_modules/@jridgewell/trace-mapping/LICENSE +19 -0
  73. handyhelpers/static/node_modules/@jridgewell/trace-mapping/README.md +257 -0
  74. handyhelpers/static/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.mjs +580 -0
  75. handyhelpers/static/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.mjs.map +1 -0
  76. handyhelpers/static/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js +600 -0
  77. handyhelpers/static/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js.map +1 -0
  78. handyhelpers/static/node_modules/@jridgewell/trace-mapping/dist/types/any-map.d.ts +8 -0
  79. handyhelpers/static/node_modules/@jridgewell/trace-mapping/dist/types/binary-search.d.ts +32 -0
  80. handyhelpers/static/node_modules/@jridgewell/trace-mapping/dist/types/by-source.d.ts +7 -0
  81. handyhelpers/static/node_modules/@jridgewell/trace-mapping/dist/types/resolve.d.ts +1 -0
  82. handyhelpers/static/node_modules/@jridgewell/trace-mapping/dist/types/sort.d.ts +2 -0
  83. handyhelpers/static/node_modules/@jridgewell/trace-mapping/dist/types/sourcemap-segment.d.ts +16 -0
  84. handyhelpers/static/node_modules/@jridgewell/trace-mapping/dist/types/strip-filename.d.ts +4 -0
  85. handyhelpers/static/node_modules/@jridgewell/trace-mapping/dist/types/trace-mapping.d.ts +79 -0
  86. handyhelpers/static/node_modules/@jridgewell/trace-mapping/dist/types/types.d.ts +99 -0
  87. handyhelpers/static/node_modules/@jridgewell/trace-mapping/package.json +77 -0
  88. handyhelpers/static/node_modules/@popperjs/core/dist/cjs/enums.js +1 -1
  89. handyhelpers/static/node_modules/@popperjs/core/dist/cjs/popper-base.js +12 -170
  90. handyhelpers/static/node_modules/@popperjs/core/dist/cjs/popper-base.js.map +1 -1
  91. handyhelpers/static/node_modules/@popperjs/core/dist/cjs/popper-lite.js +14 -184
  92. handyhelpers/static/node_modules/@popperjs/core/dist/cjs/popper-lite.js.map +1 -1
  93. handyhelpers/static/node_modules/@popperjs/core/dist/cjs/popper.js +14 -197
  94. handyhelpers/static/node_modules/@popperjs/core/dist/cjs/popper.js.map +1 -1
  95. handyhelpers/static/node_modules/@popperjs/core/dist/esm/createPopper.js +6 -66
  96. handyhelpers/static/node_modules/@popperjs/core/dist/esm/modifiers/arrow.js +1 -12
  97. handyhelpers/static/node_modules/@popperjs/core/dist/esm/modifiers/computeStyles.js +2 -14
  98. handyhelpers/static/node_modules/@popperjs/core/dist/esm/utils/computeAutoPlacement.js +0 -4
  99. handyhelpers/static/node_modules/@popperjs/core/dist/esm/utils/userAgent.js +1 -1
  100. handyhelpers/static/node_modules/@popperjs/core/dist/umd/enums.js +1 -1
  101. handyhelpers/static/node_modules/@popperjs/core/dist/umd/enums.min.js +1 -1
  102. handyhelpers/static/node_modules/@popperjs/core/dist/umd/popper-base.js +12 -170
  103. handyhelpers/static/node_modules/@popperjs/core/dist/umd/popper-base.js.map +1 -1
  104. handyhelpers/static/node_modules/@popperjs/core/dist/umd/popper-base.min.js +2 -2
  105. handyhelpers/static/node_modules/@popperjs/core/dist/umd/popper-base.min.js.map +1 -1
  106. handyhelpers/static/node_modules/@popperjs/core/dist/umd/popper-lite.js +14 -184
  107. handyhelpers/static/node_modules/@popperjs/core/dist/umd/popper-lite.js.map +1 -1
  108. handyhelpers/static/node_modules/@popperjs/core/dist/umd/popper-lite.min.js +2 -2
  109. handyhelpers/static/node_modules/@popperjs/core/dist/umd/popper-lite.min.js.map +1 -1
  110. handyhelpers/static/node_modules/@popperjs/core/dist/umd/popper.js +14 -197
  111. handyhelpers/static/node_modules/@popperjs/core/dist/umd/popper.js.map +1 -1
  112. handyhelpers/static/node_modules/@popperjs/core/dist/umd/popper.min.js +2 -2
  113. handyhelpers/static/node_modules/@popperjs/core/dist/umd/popper.min.js.map +1 -1
  114. handyhelpers/static/node_modules/@popperjs/core/lib/createPopper.js +6 -66
  115. handyhelpers/static/node_modules/@popperjs/core/lib/createPopper.js.flow +2 -80
  116. handyhelpers/static/node_modules/@popperjs/core/lib/modifiers/arrow.js +1 -12
  117. handyhelpers/static/node_modules/@popperjs/core/lib/modifiers/arrow.js.flow +0 -22
  118. handyhelpers/static/node_modules/@popperjs/core/lib/modifiers/computeStyles.js +2 -14
  119. handyhelpers/static/node_modules/@popperjs/core/lib/modifiers/computeStyles.js.flow +3 -33
  120. handyhelpers/static/node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js +0 -4
  121. handyhelpers/static/node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js.flow +0 -12
  122. handyhelpers/static/node_modules/@popperjs/core/lib/utils/userAgent.js +1 -1
  123. handyhelpers/static/node_modules/@popperjs/core/lib/utils/userAgent.js.flow +1 -1
  124. handyhelpers/static/node_modules/@popperjs/core/package.json +1 -1
  125. handyhelpers/static/node_modules/@putout/minify/LICENSE +21 -0
  126. handyhelpers/static/node_modules/@putout/minify/README.md +110 -0
  127. handyhelpers/static/node_modules/@putout/minify/bundle/minify.min.js +52 -0
  128. handyhelpers/static/node_modules/@putout/minify/package.json +112 -0
  129. handyhelpers/static/node_modules/@swc/core/Visitor.d.ts +218 -0
  130. handyhelpers/static/node_modules/@swc/core/Visitor.js +1407 -0
  131. handyhelpers/static/node_modules/@swc/core/binding.d.ts +56 -0
  132. handyhelpers/static/node_modules/@swc/core/binding.js +351 -0
  133. handyhelpers/static/node_modules/@swc/core/index.d.ts +118 -0
  134. handyhelpers/static/node_modules/@swc/core/index.js +439 -0
  135. handyhelpers/static/node_modules/@swc/core/package.json +114 -0
  136. handyhelpers/static/node_modules/@swc/core/postinstall.js +148 -0
  137. handyhelpers/static/node_modules/@swc/core/spack.d.ts +51 -0
  138. handyhelpers/static/node_modules/@swc/core/spack.js +87 -0
  139. handyhelpers/static/node_modules/@swc/core/util.d.ts +1 -0
  140. handyhelpers/static/node_modules/@swc/core/util.js +104 -0
  141. handyhelpers/static/node_modules/@swc/core-linux-x64-gnu/README.md +3 -0
  142. handyhelpers/static/node_modules/@swc/core-linux-x64-gnu/package.json +45 -0
  143. handyhelpers/static/node_modules/@swc/core-linux-x64-gnu/swc.linux-x64-gnu.node +0 -0
  144. handyhelpers/static/node_modules/@swc/counter/CHANGELOG.md +7 -0
  145. handyhelpers/static/node_modules/@swc/counter/README.md +7 -0
  146. handyhelpers/static/node_modules/@swc/counter/index.js +1 -0
  147. handyhelpers/static/node_modules/@swc/counter/package.json +27 -0
  148. handyhelpers/static/node_modules/@swc/types/LICENSE +201 -0
  149. handyhelpers/static/node_modules/@swc/types/README.md +4 -0
  150. handyhelpers/static/node_modules/@swc/types/assumptions.d.ts +92 -0
  151. handyhelpers/static/node_modules/@swc/types/assumptions.js +2 -0
  152. handyhelpers/static/node_modules/@swc/types/index.d.ts +1977 -0
  153. handyhelpers/static/node_modules/@swc/types/index.js +2 -0
  154. handyhelpers/static/node_modules/@swc/types/package.json +39 -0
  155. handyhelpers/static/node_modules/acorn/CHANGELOG.md +928 -0
  156. handyhelpers/static/node_modules/acorn/LICENSE +21 -0
  157. handyhelpers/static/node_modules/acorn/README.md +282 -0
  158. handyhelpers/static/node_modules/acorn/bin/acorn +4 -0
  159. handyhelpers/static/node_modules/acorn/dist/acorn.d.mts +866 -0
  160. handyhelpers/static/node_modules/acorn/dist/acorn.d.ts +866 -0
  161. handyhelpers/static/node_modules/acorn/dist/acorn.js +6174 -0
  162. handyhelpers/static/node_modules/acorn/dist/acorn.mjs +6145 -0
  163. handyhelpers/static/node_modules/acorn/dist/bin.js +90 -0
  164. handyhelpers/static/node_modules/acorn/package.json +50 -0
  165. handyhelpers/static/node_modules/buffer-from/LICENSE +21 -0
  166. handyhelpers/static/node_modules/buffer-from/index.js +72 -0
  167. handyhelpers/static/node_modules/buffer-from/package.json +19 -0
  168. handyhelpers/static/node_modules/buffer-from/readme.md +69 -0
  169. handyhelpers/static/node_modules/camel-case/LICENSE +21 -0
  170. handyhelpers/static/node_modules/camel-case/README.md +47 -0
  171. handyhelpers/static/node_modules/camel-case/dist/index.d.ts +5 -0
  172. handyhelpers/static/node_modules/camel-case/dist/index.js +23 -0
  173. handyhelpers/static/node_modules/camel-case/dist/index.js.map +1 -0
  174. handyhelpers/static/node_modules/camel-case/dist/index.spec.d.ts +1 -0
  175. handyhelpers/static/node_modules/camel-case/dist/index.spec.js +26 -0
  176. handyhelpers/static/node_modules/camel-case/dist/index.spec.js.map +1 -0
  177. handyhelpers/static/node_modules/camel-case/dist.es2015/index.d.ts +5 -0
  178. handyhelpers/static/node_modules/camel-case/dist.es2015/index.js +17 -0
  179. handyhelpers/static/node_modules/camel-case/dist.es2015/index.js.map +1 -0
  180. handyhelpers/static/node_modules/camel-case/dist.es2015/index.spec.d.ts +1 -0
  181. handyhelpers/static/node_modules/camel-case/dist.es2015/index.spec.js +24 -0
  182. handyhelpers/static/node_modules/camel-case/dist.es2015/index.spec.js.map +1 -0
  183. handyhelpers/static/node_modules/camel-case/package.json +89 -0
  184. handyhelpers/static/node_modules/clean-css/History.md +1504 -0
  185. handyhelpers/static/node_modules/clean-css/LICENSE +19 -0
  186. handyhelpers/static/node_modules/clean-css/README.md +987 -0
  187. handyhelpers/static/node_modules/clean-css/index.js +1 -0
  188. handyhelpers/static/node_modules/clean-css/package.json +48 -0
  189. handyhelpers/static/node_modules/commander/LICENSE +22 -0
  190. handyhelpers/static/node_modules/commander/Readme.md +1134 -0
  191. handyhelpers/static/node_modules/commander/esm.mjs +16 -0
  192. handyhelpers/static/node_modules/commander/index.js +27 -0
  193. handyhelpers/static/node_modules/commander/package-support.json +16 -0
  194. handyhelpers/static/node_modules/commander/package.json +80 -0
  195. handyhelpers/static/node_modules/commander/typings/index.d.ts +889 -0
  196. handyhelpers/static/node_modules/css-b64-images/.npmignore +15 -0
  197. handyhelpers/static/node_modules/css-b64-images/.travis.yml +5 -0
  198. handyhelpers/static/node_modules/css-b64-images/README.md +78 -0
  199. handyhelpers/static/node_modules/css-b64-images/bin/css-b64-images +13 -0
  200. handyhelpers/static/node_modules/css-b64-images/draft.png +0 -0
  201. handyhelpers/static/node_modules/css-b64-images/draft.xcf +0 -0
  202. handyhelpers/static/node_modules/css-b64-images/package.json +30 -0
  203. handyhelpers/static/node_modules/css-b64-images/test/css-b64-images-test.js +38 -0
  204. handyhelpers/static/node_modules/css-b64-images/test/fixture/css/style.css +52 -0
  205. handyhelpers/static/node_modules/css-b64-images/test/fixture/fonts/callunasansregular-webfont.eot +0 -0
  206. handyhelpers/static/node_modules/css-b64-images/test/fixture/fonts/callunasansregular-webfont.svg +248 -0
  207. handyhelpers/static/node_modules/css-b64-images/test/fixture/fonts/callunasansregular-webfont.ttf +0 -0
  208. handyhelpers/static/node_modules/css-b64-images/test/fixture/fonts/callunasansregular-webfont.woff +0 -0
  209. handyhelpers/static/node_modules/css-b64-images/test/fixture/fonts/maven_pro_medium-webfont.eot +0 -0
  210. handyhelpers/static/node_modules/css-b64-images/test/fixture/fonts/maven_pro_medium-webfont.svg +245 -0
  211. handyhelpers/static/node_modules/css-b64-images/test/fixture/fonts/maven_pro_medium-webfont.ttf +0 -0
  212. handyhelpers/static/node_modules/css-b64-images/test/fixture/fonts/maven_pro_medium-webfont.woff +0 -0
  213. handyhelpers/static/node_modules/css-b64-images/test/fixture/img/background-pattern.gif +0 -0
  214. handyhelpers/static/node_modules/css-b64-images/test/fixture/img/dots.svg +6 -0
  215. handyhelpers/static/node_modules/css-b64-images/test/fixture/img/mixit-banner.png +0 -0
  216. handyhelpers/static/node_modules/debug/LICENSE +20 -0
  217. handyhelpers/static/node_modules/debug/README.md +481 -0
  218. handyhelpers/static/node_modules/debug/package.json +65 -0
  219. handyhelpers/static/node_modules/debug/src/browser.js +272 -0
  220. handyhelpers/static/node_modules/debug/src/common.js +292 -0
  221. handyhelpers/static/node_modules/debug/src/index.js +10 -0
  222. handyhelpers/static/node_modules/debug/src/node.js +263 -0
  223. handyhelpers/static/node_modules/dot-case/LICENSE +21 -0
  224. handyhelpers/static/node_modules/dot-case/README.md +37 -0
  225. handyhelpers/static/node_modules/dot-case/dist/index.d.ts +3 -0
  226. handyhelpers/static/node_modules/dot-case/dist/index.js +11 -0
  227. handyhelpers/static/node_modules/dot-case/dist/index.js.map +1 -0
  228. handyhelpers/static/node_modules/dot-case/dist/index.spec.d.ts +1 -0
  229. handyhelpers/static/node_modules/dot-case/dist/index.spec.js +26 -0
  230. handyhelpers/static/node_modules/dot-case/dist/index.spec.js.map +1 -0
  231. handyhelpers/static/node_modules/dot-case/dist.es2015/index.d.ts +3 -0
  232. handyhelpers/static/node_modules/dot-case/dist.es2015/index.js +7 -0
  233. handyhelpers/static/node_modules/dot-case/dist.es2015/index.js.map +1 -0
  234. handyhelpers/static/node_modules/dot-case/dist.es2015/index.spec.d.ts +1 -0
  235. handyhelpers/static/node_modules/dot-case/dist.es2015/index.spec.js +24 -0
  236. handyhelpers/static/node_modules/dot-case/dist.es2015/index.spec.js.map +1 -0
  237. handyhelpers/static/node_modules/dot-case/package.json +89 -0
  238. handyhelpers/static/node_modules/entities/LICENSE +11 -0
  239. handyhelpers/static/node_modules/entities/package.json +90 -0
  240. handyhelpers/static/node_modules/entities/readme.md +122 -0
  241. handyhelpers/static/node_modules/esbuild/LICENSE.md +21 -0
  242. handyhelpers/static/node_modules/esbuild/README.md +3 -0
  243. handyhelpers/static/node_modules/esbuild/bin/esbuild +0 -0
  244. handyhelpers/static/node_modules/esbuild/install.js +286 -0
  245. handyhelpers/static/node_modules/esbuild/package.json +47 -0
  246. handyhelpers/static/node_modules/find-up/index.d.ts +247 -0
  247. handyhelpers/static/node_modules/find-up/index.js +107 -0
  248. handyhelpers/static/node_modules/find-up/license +9 -0
  249. handyhelpers/static/node_modules/find-up/package.json +61 -0
  250. handyhelpers/static/node_modules/find-up/readme.md +160 -0
  251. handyhelpers/static/node_modules/fun-effects/LICENSE +674 -0
  252. handyhelpers/static/node_modules/fun-effects/README.md +10 -0
  253. handyhelpers/static/node_modules/fun-effects/dist/css/background_icons.min.css +1 -0
  254. handyhelpers/static/node_modules/fun-effects/dist/css/blur_group.min.css +1 -0
  255. handyhelpers/static/node_modules/fun-effects/dist/css/fades.min.css +1 -0
  256. handyhelpers/static/node_modules/fun-effects/dist/css/marquee.min.css +1 -0
  257. handyhelpers/static/node_modules/fun-effects/dist/css/scroller.min.css +1 -0
  258. handyhelpers/static/node_modules/fun-effects/dist/index.js +15 -0
  259. handyhelpers/static/node_modules/fun-effects/dist/js/background_icons.min.js +1 -0
  260. handyhelpers/static/node_modules/fun-effects/dist/js/marquee.min.js +1 -0
  261. handyhelpers/static/node_modules/fun-effects/dist/js/scroller.min.js +1 -0
  262. handyhelpers/static/node_modules/fun-effects/package.json +39 -0
  263. handyhelpers/static/node_modules/fun-effects/src/css/background_icons.css +39 -0
  264. handyhelpers/static/node_modules/fun-effects/src/css/blur_group.css +22 -0
  265. handyhelpers/static/node_modules/fun-effects/src/css/fades.css +94 -0
  266. handyhelpers/static/node_modules/fun-effects/src/css/marquee.css +45 -0
  267. handyhelpers/static/node_modules/fun-effects/src/css/scroller.css +144 -0
  268. handyhelpers/static/node_modules/fun-effects/src/index.js +15 -0
  269. handyhelpers/static/node_modules/fun-effects/src/js/background_icons.js +101 -0
  270. handyhelpers/static/node_modules/fun-effects/src/js/marquee.js +81 -0
  271. handyhelpers/static/node_modules/fun-effects/src/js/scroller.js +37 -0
  272. handyhelpers/static/node_modules/html-minifier-terser/LICENSE +22 -0
  273. handyhelpers/static/node_modules/html-minifier-terser/README.md +168 -0
  274. handyhelpers/static/node_modules/html-minifier-terser/cli.js +308 -0
  275. handyhelpers/static/node_modules/html-minifier-terser/dist/htmlminifier.cjs +1857 -0
  276. handyhelpers/static/node_modules/html-minifier-terser/dist/htmlminifier.esm.bundle.js +57509 -0
  277. handyhelpers/static/node_modules/html-minifier-terser/dist/htmlminifier.umd.bundle.js +57520 -0
  278. handyhelpers/static/node_modules/html-minifier-terser/dist/htmlminifier.umd.bundle.min.js +9 -0
  279. handyhelpers/static/node_modules/html-minifier-terser/package.json +105 -0
  280. handyhelpers/static/node_modules/html-minifier-terser/src/htmlminifier.js +1366 -0
  281. handyhelpers/static/node_modules/html-minifier-terser/src/htmlparser.js +565 -0
  282. handyhelpers/static/node_modules/html-minifier-terser/src/tokenchain.js +68 -0
  283. handyhelpers/static/node_modules/html-minifier-terser/src/utils.js +11 -0
  284. handyhelpers/static/node_modules/jju/LICENSE +21 -0
  285. handyhelpers/static/node_modules/jju/Makefile +20 -0
  286. handyhelpers/static/node_modules/jju/README.md +249 -0
  287. handyhelpers/static/node_modules/jju/index.js +32 -0
  288. handyhelpers/static/node_modules/jju/package.json +34 -0
  289. handyhelpers/static/node_modules/jju/package.yaml +36 -0
  290. handyhelpers/static/node_modules/locate-path/index.d.ts +92 -0
  291. handyhelpers/static/node_modules/locate-path/index.js +77 -0
  292. handyhelpers/static/node_modules/locate-path/license +9 -0
  293. handyhelpers/static/node_modules/locate-path/package.json +48 -0
  294. handyhelpers/static/node_modules/locate-path/readme.md +123 -0
  295. handyhelpers/static/node_modules/lower-case/LICENSE +21 -0
  296. handyhelpers/static/node_modules/lower-case/README.md +35 -0
  297. handyhelpers/static/node_modules/lower-case/dist/index.d.ts +8 -0
  298. handyhelpers/static/node_modules/lower-case/dist/index.js +53 -0
  299. handyhelpers/static/node_modules/lower-case/dist/index.js.map +1 -0
  300. handyhelpers/static/node_modules/lower-case/dist/index.spec.d.ts +1 -0
  301. handyhelpers/static/node_modules/lower-case/dist/index.spec.js +36 -0
  302. handyhelpers/static/node_modules/lower-case/dist/index.spec.js.map +1 -0
  303. handyhelpers/static/node_modules/lower-case/dist.es2015/index.d.ts +8 -0
  304. handyhelpers/static/node_modules/lower-case/dist.es2015/index.js +48 -0
  305. handyhelpers/static/node_modules/lower-case/dist.es2015/index.js.map +1 -0
  306. handyhelpers/static/node_modules/lower-case/dist.es2015/index.spec.d.ts +1 -0
  307. handyhelpers/static/node_modules/lower-case/dist.es2015/index.spec.js +34 -0
  308. handyhelpers/static/node_modules/lower-case/dist.es2015/index.spec.js.map +1 -0
  309. handyhelpers/static/node_modules/lower-case/package.json +87 -0
  310. handyhelpers/static/node_modules/minify/ChangeLog +1307 -0
  311. handyhelpers/static/node_modules/minify/LICENSE +22 -0
  312. handyhelpers/static/node_modules/minify/README.md +177 -0
  313. handyhelpers/static/node_modules/minify/bin/minify.js +98 -0
  314. handyhelpers/static/node_modules/minify/deno.json +5 -0
  315. handyhelpers/static/node_modules/minify/help.json +8 -0
  316. handyhelpers/static/node_modules/minify/package.json +65 -0
  317. handyhelpers/static/node_modules/ms/index.js +162 -0
  318. handyhelpers/static/node_modules/ms/license.md +21 -0
  319. handyhelpers/static/node_modules/ms/package.json +38 -0
  320. handyhelpers/static/node_modules/ms/readme.md +59 -0
  321. handyhelpers/static/node_modules/no-case/LICENSE +21 -0
  322. handyhelpers/static/node_modules/no-case/README.md +37 -0
  323. handyhelpers/static/node_modules/no-case/dist/index.d.ts +10 -0
  324. handyhelpers/static/node_modules/no-case/dist/index.js +35 -0
  325. handyhelpers/static/node_modules/no-case/dist/index.js.map +1 -0
  326. handyhelpers/static/node_modules/no-case/dist/index.spec.d.ts +1 -0
  327. handyhelpers/static/node_modules/no-case/dist/index.spec.js +59 -0
  328. handyhelpers/static/node_modules/no-case/dist/index.spec.js.map +1 -0
  329. handyhelpers/static/node_modules/no-case/dist.es2015/index.d.ts +10 -0
  330. handyhelpers/static/node_modules/no-case/dist.es2015/index.js +31 -0
  331. handyhelpers/static/node_modules/no-case/dist.es2015/index.js.map +1 -0
  332. handyhelpers/static/node_modules/no-case/dist.es2015/index.spec.d.ts +1 -0
  333. handyhelpers/static/node_modules/no-case/dist.es2015/index.spec.js +57 -0
  334. handyhelpers/static/node_modules/no-case/dist.es2015/index.spec.js.map +1 -0
  335. handyhelpers/static/node_modules/no-case/package.json +85 -0
  336. handyhelpers/static/node_modules/p-limit/index.d.ts +40 -0
  337. handyhelpers/static/node_modules/p-limit/index.js +68 -0
  338. handyhelpers/static/node_modules/p-limit/license +9 -0
  339. handyhelpers/static/node_modules/p-limit/package.json +54 -0
  340. handyhelpers/static/node_modules/p-limit/readme.md +99 -0
  341. handyhelpers/static/node_modules/p-locate/index.d.ts +49 -0
  342. handyhelpers/static/node_modules/p-locate/index.js +48 -0
  343. handyhelpers/static/node_modules/p-locate/license +9 -0
  344. handyhelpers/static/node_modules/p-locate/package.json +56 -0
  345. handyhelpers/static/node_modules/p-locate/readme.md +91 -0
  346. handyhelpers/static/node_modules/param-case/LICENSE +21 -0
  347. handyhelpers/static/node_modules/param-case/README.md +37 -0
  348. handyhelpers/static/node_modules/param-case/dist/index.d.ts +3 -0
  349. handyhelpers/static/node_modules/param-case/dist/index.js +11 -0
  350. handyhelpers/static/node_modules/param-case/dist/index.js.map +1 -0
  351. handyhelpers/static/node_modules/param-case/dist/index.spec.d.ts +1 -0
  352. handyhelpers/static/node_modules/param-case/dist/index.spec.js +24 -0
  353. handyhelpers/static/node_modules/param-case/dist/index.spec.js.map +1 -0
  354. handyhelpers/static/node_modules/param-case/dist.es2015/index.d.ts +3 -0
  355. handyhelpers/static/node_modules/param-case/dist.es2015/index.js +7 -0
  356. handyhelpers/static/node_modules/param-case/dist.es2015/index.js.map +1 -0
  357. handyhelpers/static/node_modules/param-case/dist.es2015/index.spec.d.ts +1 -0
  358. handyhelpers/static/node_modules/param-case/dist.es2015/index.spec.js +22 -0
  359. handyhelpers/static/node_modules/param-case/dist.es2015/index.spec.js.map +1 -0
  360. handyhelpers/static/node_modules/param-case/package.json +91 -0
  361. handyhelpers/static/node_modules/pascal-case/LICENSE +21 -0
  362. handyhelpers/static/node_modules/pascal-case/README.md +47 -0
  363. handyhelpers/static/node_modules/pascal-case/dist/index.d.ts +5 -0
  364. handyhelpers/static/node_modules/pascal-case/dist/index.js +24 -0
  365. handyhelpers/static/node_modules/pascal-case/dist/index.js.map +1 -0
  366. handyhelpers/static/node_modules/pascal-case/dist/index.spec.d.ts +1 -0
  367. handyhelpers/static/node_modules/pascal-case/dist/index.spec.js +25 -0
  368. handyhelpers/static/node_modules/pascal-case/dist/index.spec.js.map +1 -0
  369. handyhelpers/static/node_modules/pascal-case/dist.es2015/index.d.ts +5 -0
  370. handyhelpers/static/node_modules/pascal-case/dist.es2015/index.js +18 -0
  371. handyhelpers/static/node_modules/pascal-case/dist.es2015/index.js.map +1 -0
  372. handyhelpers/static/node_modules/pascal-case/dist.es2015/index.spec.d.ts +1 -0
  373. handyhelpers/static/node_modules/pascal-case/dist.es2015/index.spec.js +23 -0
  374. handyhelpers/static/node_modules/pascal-case/dist.es2015/index.spec.js.map +1 -0
  375. handyhelpers/static/node_modules/pascal-case/package.json +90 -0
  376. handyhelpers/static/node_modules/path-exists/index.d.ts +31 -0
  377. handyhelpers/static/node_modules/path-exists/index.js +19 -0
  378. handyhelpers/static/node_modules/path-exists/license +9 -0
  379. handyhelpers/static/node_modules/path-exists/package.json +41 -0
  380. handyhelpers/static/node_modules/path-exists/readme.md +52 -0
  381. handyhelpers/static/node_modules/readjson/ChangeLog +110 -0
  382. handyhelpers/static/node_modules/readjson/LICENSE +21 -0
  383. handyhelpers/static/node_modules/readjson/README.md +36 -0
  384. handyhelpers/static/node_modules/readjson/package.json +46 -0
  385. handyhelpers/static/node_modules/relateurl/README.md +159 -0
  386. handyhelpers/static/node_modules/relateurl/license +21 -0
  387. handyhelpers/static/node_modules/relateurl/package.json +46 -0
  388. handyhelpers/static/node_modules/simport/ChangeLog +77 -0
  389. handyhelpers/static/node_modules/simport/LICENSE +21 -0
  390. handyhelpers/static/node_modules/simport/README.md +81 -0
  391. handyhelpers/static/node_modules/simport/fixture/context.js +3 -0
  392. handyhelpers/static/node_modules/simport/fixture/default-frozen-function.mjs +2 -0
  393. handyhelpers/static/node_modules/simport/fixture/default-frozen-object.mjs +2 -0
  394. handyhelpers/static/node_modules/simport/package.json +65 -0
  395. handyhelpers/static/node_modules/simport/simport.js +84 -0
  396. handyhelpers/static/node_modules/simport/simport.mjs +22 -0
  397. handyhelpers/static/node_modules/source-map/CHANGELOG.md +301 -0
  398. handyhelpers/static/node_modules/source-map/LICENSE +28 -0
  399. handyhelpers/static/node_modules/source-map/README.md +742 -0
  400. handyhelpers/static/node_modules/source-map/dist/source-map.debug.js +3234 -0
  401. handyhelpers/static/node_modules/source-map/dist/source-map.js +3233 -0
  402. handyhelpers/static/node_modules/source-map/dist/source-map.min.js +2 -0
  403. handyhelpers/static/node_modules/source-map/dist/source-map.min.js.map +1 -0
  404. handyhelpers/static/node_modules/source-map/package.json +73 -0
  405. handyhelpers/static/node_modules/source-map/source-map.d.ts +98 -0
  406. handyhelpers/static/node_modules/source-map/source-map.js +8 -0
  407. handyhelpers/static/node_modules/source-map-support/LICENSE.md +21 -0
  408. handyhelpers/static/node_modules/source-map-support/README.md +284 -0
  409. handyhelpers/static/node_modules/source-map-support/browser-source-map-support.js +114 -0
  410. handyhelpers/static/node_modules/source-map-support/package.json +31 -0
  411. handyhelpers/static/node_modules/source-map-support/register-hook-require.js +1 -0
  412. handyhelpers/static/node_modules/source-map-support/register.js +1 -0
  413. handyhelpers/static/node_modules/source-map-support/source-map-support.js +625 -0
  414. handyhelpers/static/node_modules/terser/CHANGELOG.md +783 -0
  415. handyhelpers/static/node_modules/terser/LICENSE +27 -0
  416. handyhelpers/static/node_modules/terser/PATRONS.md +15 -0
  417. handyhelpers/static/node_modules/terser/README.md +1421 -0
  418. handyhelpers/static/node_modules/terser/bin/package.json +10 -0
  419. handyhelpers/static/node_modules/terser/bin/terser +21 -0
  420. handyhelpers/static/node_modules/terser/bin/uglifyjs +10 -0
  421. handyhelpers/static/node_modules/terser/dist/.gitkeep +0 -0
  422. handyhelpers/static/node_modules/terser/dist/bundle.min.js +32962 -0
  423. handyhelpers/static/node_modules/terser/dist/package.json +10 -0
  424. handyhelpers/static/node_modules/terser/main.js +27 -0
  425. handyhelpers/static/node_modules/terser/node_modules/commander/CHANGELOG.md +419 -0
  426. handyhelpers/static/node_modules/terser/node_modules/commander/LICENSE +22 -0
  427. handyhelpers/static/node_modules/terser/node_modules/commander/Readme.md +428 -0
  428. handyhelpers/static/node_modules/terser/node_modules/commander/index.js +1224 -0
  429. handyhelpers/static/node_modules/terser/node_modules/commander/package.json +38 -0
  430. handyhelpers/static/node_modules/terser/node_modules/commander/typings/index.d.ts +310 -0
  431. handyhelpers/static/node_modules/terser/package.json +153 -0
  432. handyhelpers/static/node_modules/terser/tools/domprops.js +9026 -0
  433. handyhelpers/static/node_modules/terser/tools/exit.cjs +7 -0
  434. handyhelpers/static/node_modules/terser/tools/props.html +68 -0
  435. handyhelpers/static/node_modules/terser/tools/terser.d.ts +216 -0
  436. handyhelpers/static/node_modules/tippy.js/LICENSE +21 -0
  437. handyhelpers/static/node_modules/tippy.js/README.md +63 -0
  438. handyhelpers/static/node_modules/tippy.js/animations/perspective-extreme.css +1 -0
  439. handyhelpers/static/node_modules/tippy.js/animations/perspective-subtle.css +1 -0
  440. handyhelpers/static/node_modules/tippy.js/animations/perspective.css +1 -0
  441. handyhelpers/static/node_modules/tippy.js/animations/scale-extreme.css +1 -0
  442. handyhelpers/static/node_modules/tippy.js/animations/scale-subtle.css +1 -0
  443. handyhelpers/static/node_modules/tippy.js/animations/scale.css +1 -0
  444. handyhelpers/static/node_modules/tippy.js/animations/shift-away-extreme.css +1 -0
  445. handyhelpers/static/node_modules/tippy.js/animations/shift-away-subtle.css +1 -0
  446. handyhelpers/static/node_modules/tippy.js/animations/shift-away.css +1 -0
  447. handyhelpers/static/node_modules/tippy.js/animations/shift-toward-extreme.css +1 -0
  448. handyhelpers/static/node_modules/tippy.js/animations/shift-toward-subtle.css +1 -0
  449. handyhelpers/static/node_modules/tippy.js/animations/shift-toward.css +1 -0
  450. handyhelpers/static/node_modules/tippy.js/dist/backdrop.css +1 -0
  451. handyhelpers/static/node_modules/tippy.js/dist/border.css +1 -0
  452. handyhelpers/static/node_modules/tippy.js/dist/svg-arrow.css +1 -0
  453. handyhelpers/static/node_modules/tippy.js/dist/tippy-bundle.umd.js +2516 -0
  454. handyhelpers/static/node_modules/tippy.js/dist/tippy-bundle.umd.js.map +1 -0
  455. handyhelpers/static/node_modules/tippy.js/dist/tippy-bundle.umd.min.js +2 -0
  456. handyhelpers/static/node_modules/tippy.js/dist/tippy-bundle.umd.min.js.map +1 -0
  457. handyhelpers/static/node_modules/tippy.js/dist/tippy.cjs.js +2497 -0
  458. handyhelpers/static/node_modules/tippy.js/dist/tippy.cjs.js.map +1 -0
  459. handyhelpers/static/node_modules/tippy.js/dist/tippy.css +1 -0
  460. handyhelpers/static/node_modules/tippy.js/dist/tippy.esm.js +2486 -0
  461. handyhelpers/static/node_modules/tippy.js/dist/tippy.esm.js.map +1 -0
  462. handyhelpers/static/node_modules/tippy.js/dist/tippy.umd.js +2496 -0
  463. handyhelpers/static/node_modules/tippy.js/dist/tippy.umd.js.map +1 -0
  464. handyhelpers/static/node_modules/tippy.js/dist/tippy.umd.min.js +2 -0
  465. handyhelpers/static/node_modules/tippy.js/dist/tippy.umd.min.js.map +1 -0
  466. handyhelpers/static/node_modules/tippy.js/headless/dist/tippy-headless.cjs.js +2388 -0
  467. handyhelpers/static/node_modules/tippy.js/headless/dist/tippy-headless.cjs.js.map +1 -0
  468. handyhelpers/static/node_modules/tippy.js/headless/dist/tippy-headless.esm.js +2377 -0
  469. handyhelpers/static/node_modules/tippy.js/headless/dist/tippy-headless.esm.js.map +1 -0
  470. handyhelpers/static/node_modules/tippy.js/headless/dist/tippy-headless.umd.js +2382 -0
  471. handyhelpers/static/node_modules/tippy.js/headless/dist/tippy-headless.umd.js.map +1 -0
  472. handyhelpers/static/node_modules/tippy.js/headless/dist/tippy-headless.umd.min.js +2 -0
  473. handyhelpers/static/node_modules/tippy.js/headless/dist/tippy-headless.umd.min.js.map +1 -0
  474. handyhelpers/static/node_modules/tippy.js/headless/package.json +16 -0
  475. handyhelpers/static/node_modules/tippy.js/index.d.ts +260 -0
  476. handyhelpers/static/node_modules/tippy.js/package.json +157 -0
  477. handyhelpers/static/node_modules/tippy.js/themes/light-border.css +1 -0
  478. handyhelpers/static/node_modules/tippy.js/themes/light.css +1 -0
  479. handyhelpers/static/node_modules/tippy.js/themes/material.css +1 -0
  480. handyhelpers/static/node_modules/tippy.js/themes/translucent.css +1 -0
  481. handyhelpers/static/node_modules/try-catch/ChangeLog +55 -0
  482. handyhelpers/static/node_modules/try-catch/LICENSE +21 -0
  483. handyhelpers/static/node_modules/try-catch/README.md +38 -0
  484. handyhelpers/static/node_modules/try-catch/package.json +34 -0
  485. handyhelpers/static/node_modules/try-to-catch/ChangeLog +64 -0
  486. handyhelpers/static/node_modules/try-to-catch/LICENSE +21 -0
  487. handyhelpers/static/node_modules/try-to-catch/README.md +74 -0
  488. handyhelpers/static/node_modules/try-to-catch/package.json +47 -0
  489. handyhelpers/static/node_modules/tslib/CopyrightNotice.txt +15 -0
  490. handyhelpers/static/node_modules/tslib/LICENSE.txt +12 -0
  491. handyhelpers/static/node_modules/tslib/README.md +164 -0
  492. handyhelpers/static/node_modules/tslib/SECURITY.md +41 -0
  493. handyhelpers/static/node_modules/tslib/modules/index.d.ts +38 -0
  494. handyhelpers/static/node_modules/tslib/modules/index.js +70 -0
  495. handyhelpers/static/node_modules/tslib/modules/package.json +3 -0
  496. handyhelpers/static/node_modules/tslib/package.json +47 -0
  497. handyhelpers/static/node_modules/tslib/tslib.d.ts +460 -0
  498. handyhelpers/static/node_modules/tslib/tslib.es6.html +1 -0
  499. handyhelpers/static/node_modules/tslib/tslib.es6.js +402 -0
  500. handyhelpers/static/node_modules/tslib/tslib.es6.mjs +401 -0
  501. handyhelpers/static/node_modules/tslib/tslib.html +1 -0
  502. handyhelpers/static/node_modules/tslib/tslib.js +484 -0
  503. handyhelpers/static/node_modules/uglify-js/LICENSE +29 -0
  504. handyhelpers/static/node_modules/uglify-js/README.md +1479 -0
  505. handyhelpers/static/node_modules/uglify-js/bin/uglifyjs +624 -0
  506. handyhelpers/static/node_modules/uglify-js/package.json +56 -0
  507. handyhelpers/static/node_modules/uglify-js/tools/domprops.html +456 -0
  508. handyhelpers/static/node_modules/uglify-js/tools/domprops.json +8327 -0
  509. handyhelpers/static/node_modules/uglify-js/tools/exports.js +8 -0
  510. handyhelpers/static/node_modules/uglify-js/tools/node.js +115 -0
  511. handyhelpers/static/node_modules/uglify-js/tools/tty.js +22 -0
  512. handyhelpers/static/node_modules/unicorn-magic/default.js +14 -0
  513. handyhelpers/static/node_modules/unicorn-magic/index.d.ts +29 -0
  514. handyhelpers/static/node_modules/unicorn-magic/license +9 -0
  515. handyhelpers/static/node_modules/unicorn-magic/node.js +7 -0
  516. handyhelpers/static/node_modules/unicorn-magic/package.json +49 -0
  517. handyhelpers/static/node_modules/unicorn-magic/readme.md +25 -0
  518. handyhelpers/static/node_modules/yocto-queue/index.d.ts +61 -0
  519. handyhelpers/static/node_modules/yocto-queue/index.js +78 -0
  520. handyhelpers/static/node_modules/yocto-queue/license +9 -0
  521. handyhelpers/static/node_modules/yocto-queue/package.json +48 -0
  522. handyhelpers/static/node_modules/yocto-queue/readme.md +70 -0
  523. handyhelpers/static/package.json +3 -1
  524. handyhelpers/static/yarn.lock +393 -20
  525. handyhelpers/templates/handyhelpers/generic/bs5/generic_index.html +5 -8
  526. handyhelpers/templates/handyhelpers/handyhelpers_base_bs5.htm +5 -1
  527. handyhelpers/templates/handyhelpers/handyhelpers_with_sidebar.htm +50 -3
  528. handyhelpers/templates/handyhelpers/htmx/bs5/filter_form/generic_modal_swap.htm +48 -0
  529. handyhelpers/templates/handyhelpers/htmx/bs5/form/form_wrapper.htm +48 -0
  530. handyhelpers/templates/handyhelpers/htmx/bs5/form/inline_form.htm +166 -0
  531. handyhelpers/templates/handyhelpers/htmx/bs5/form/inline_form_disabled.htm +125 -0
  532. handyhelpers/templates/handyhelpers/htmx/bs5/generic_modal_swap.htm +2 -3
  533. handyhelpers/templates/handyhelpers/htmx/bs5/htmx_option_multi_filter_view/content_title.htm +38 -0
  534. handyhelpers/templates/handyhelpers/htmx/bs5/htmx_option_multi_filter_view/controls.htm +21 -0
  535. handyhelpers/templates/handyhelpers/htmx/bs5/htmx_option_multi_filter_view/examples/card.htm +17 -0
  536. handyhelpers/templates/handyhelpers/htmx/bs5/htmx_option_multi_filter_view/examples/list.htm +11 -0
  537. handyhelpers/templates/handyhelpers/htmx/bs5/htmx_option_multi_filter_view/examples/table.htm +21 -0
  538. handyhelpers/templates/handyhelpers/htmx/bs5/htmx_option_multi_filter_view/filter_form_modal_swap.htm +48 -0
  539. handyhelpers/templates/handyhelpers/htmx/bs5/htmx_option_multi_filter_view/full.html +6 -0
  540. handyhelpers/templates/handyhelpers/htmx/bs5/htmx_option_multi_filter_view/wrapper_card.htm +7 -0
  541. handyhelpers/templates/handyhelpers/htmx/bs5/htmx_option_multi_filter_view/wrapper_list.htm +7 -0
  542. handyhelpers/templates/handyhelpers/htmx/bs5/htmx_option_multi_filter_view/wrapper_minimal.htm +7 -0
  543. handyhelpers/templates/handyhelpers/htmx/bs5/htmx_option_multi_filter_view/wrapper_table.htm +18 -0
  544. handyhelpers/templates/handyhelpers/htmx/bs5/index.htm +34 -0
  545. handyhelpers/templates/handyhelpers/partials/calendar.htm +1 -1
  546. handyhelpers/templates/handyhelpers/report/annual_stats.html +6 -0
  547. handyhelpers/templates/handyhelpers/report/annual_stats_content.htm +43 -0
  548. handyhelpers/templates/handyhelpers/report/chartjs/annual_progress_chart.htm +1 -1
  549. handyhelpers/templates/handyhelpers/report/chartjs/annual_progress_content.htm +40 -39
  550. handyhelpers/templates/handyhelpers/report/chartjs/annual_stats.html +25 -36
  551. handyhelpers/templates/handyhelpers/report/chartjs/annual_trends_content.htm +35 -34
  552. handyhelpers/templates/handyhelpers/report/chartjs/day_count_chart.htm +1 -1
  553. handyhelpers/templates/handyhelpers/report/chartjs/month_count_chart.htm +1 -1
  554. handyhelpers/templates/handyhelpers/report/chartjs/week_count_chart.htm +1 -1
  555. handyhelpers/templates/handyhelpers/report/chartjs/year_count_chart.htm +1 -1
  556. handyhelpers/templatetags/form_tags.py +47 -0
  557. handyhelpers/templatetags/htmx_tags.py +21 -0
  558. handyhelpers/views/action.py +3 -1
  559. handyhelpers/views/calendar.py +34 -14
  560. handyhelpers/views/htmx.py +396 -4
  561. handyhelpers/views/report.py +12 -5
  562. handyhelpers/management/commands/generate_admin.py +0 -110
  563. handyhelpers/static/node_modules/@popperjs/core/dist/esm/utils/format.js +0 -9
  564. handyhelpers/static/node_modules/@popperjs/core/dist/esm/utils/validateModifiers.js +0 -81
  565. handyhelpers/static/node_modules/@popperjs/core/lib/utils/format.d.ts +0 -1
  566. handyhelpers/static/node_modules/@popperjs/core/lib/utils/format.js +0 -9
  567. handyhelpers/static/node_modules/@popperjs/core/lib/utils/format.js.flow +0 -5
  568. handyhelpers/static/node_modules/@popperjs/core/lib/utils/validateModifiers.d.ts +0 -1
  569. handyhelpers/static/node_modules/@popperjs/core/lib/utils/validateModifiers.js +0 -81
  570. handyhelpers/static/node_modules/@popperjs/core/lib/utils/validateModifiers.js.flow +0 -151
  571. {django_handyhelpers-0.3.19.dist-info → django_handyhelpers-0.3.35.dist-info}/LICENSE +0 -0
  572. {django_handyhelpers-0.3.19.dist-info → django_handyhelpers-0.3.35.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,624 @@
1
+ #! /usr/bin/env node
2
+ // -*- js -*-
3
+
4
+ "use strict";
5
+
6
+ require("../tools/tty");
7
+
8
+ var fs = require("fs");
9
+ var info = require("../package.json");
10
+ var path = require("path");
11
+ var UglifyJS = require("../tools/node");
12
+
13
+ var skip_keys = [ "cname", "fixed", "in_arg", "inlined", "length_read", "parent_scope", "redef", "scope", "unused" ];
14
+ var truthy_keys = [ "optional", "pure", "terminal", "uses_arguments", "uses_eval", "uses_with" ];
15
+
16
+ var files = {};
17
+ var options = {};
18
+ var short_forms = {
19
+ b: "beautify",
20
+ c: "compress",
21
+ d: "define",
22
+ e: "enclose",
23
+ h: "help",
24
+ m: "mangle",
25
+ o: "output",
26
+ O: "output-opts",
27
+ p: "parse",
28
+ v: "version",
29
+ V: "version",
30
+ };
31
+ var args = process.argv.slice(2);
32
+ var paths = [];
33
+ var output, nameCache;
34
+ var specified = {};
35
+ while (args.length) {
36
+ var arg = args.shift();
37
+ if (arg[0] != "-") {
38
+ paths.push(arg);
39
+ } else if (arg == "--") {
40
+ paths = paths.concat(args);
41
+ break;
42
+ } else if (arg[1] == "-") {
43
+ process_option(arg.slice(2));
44
+ } else [].forEach.call(arg.slice(1), function(letter, index, arg) {
45
+ if (!(letter in short_forms)) fatal("invalid option -" + letter);
46
+ process_option(short_forms[letter], index + 1 < arg.length);
47
+ });
48
+ }
49
+
50
+ function process_option(name, no_value) {
51
+ specified[name] = true;
52
+ switch (name) {
53
+ case "help":
54
+ switch (read_value()) {
55
+ case "ast":
56
+ print(UglifyJS.describe_ast());
57
+ break;
58
+ case "options":
59
+ var text = [];
60
+ var toplevels = [];
61
+ var padding = "";
62
+ var defaults = UglifyJS.default_options();
63
+ for (var name in defaults) {
64
+ var option = defaults[name];
65
+ if (option && typeof option == "object") {
66
+ text.push("--" + ({
67
+ output: "beautify",
68
+ sourceMap: "source-map",
69
+ }[name] || name) + " options:");
70
+ text.push(format_object(option));
71
+ text.push("");
72
+ } else {
73
+ if (padding.length < name.length) padding = Array(name.length + 1).join(" ");
74
+ toplevels.push([ {
75
+ keep_fargs: "keep-fargs",
76
+ keep_fnames: "keep-fnames",
77
+ nameCache: "name-cache",
78
+ }[name] || name, option ]);
79
+ }
80
+ }
81
+ toplevels.forEach(function(tokens) {
82
+ text.push("--" + tokens[0] + padding.slice(tokens[0].length - 2) + tokens[1]);
83
+ });
84
+ print(text.join("\n"));
85
+ break;
86
+ default:
87
+ print([
88
+ "Usage: uglifyjs [files...] [options]",
89
+ "",
90
+ "Options:",
91
+ " -h, --help Print usage information.",
92
+ " `--help options` for details on available options.",
93
+ " -v, -V, --version Print version number.",
94
+ " -p, --parse <options> Specify parser options.",
95
+ " -c, --compress [options] Enable compressor/specify compressor options.",
96
+ " -m, --mangle [options] Mangle names/specify mangler options.",
97
+ " --mangle-props [options] Mangle properties/specify mangler options.",
98
+ " -b, --beautify [options] Beautify output/specify output options.",
99
+ " -O, --output-opts <options> Output options (beautify disabled).",
100
+ " -o, --output <file> Output file (default STDOUT).",
101
+ " --annotations Process and preserve comment annotations.",
102
+ " --no-annotations Ignore and discard comment annotations.",
103
+ " --comments [filter] Preserve copyright comments in the output.",
104
+ " --config-file <file> Read minify() options from JSON file.",
105
+ " -d, --define <expr>[=value] Global definitions.",
106
+ " -e, --enclose [arg[,...][:value[,...]]] Embed everything in a big function, with configurable argument(s) & value(s).",
107
+ " --expression Parse a single expression, rather than a program.",
108
+ " --ie Support non-standard Internet Explorer.",
109
+ " --keep-fargs Do not mangle/drop function arguments.",
110
+ " --keep-fnames Do not mangle/drop function names. Useful for code relying on Function.prototype.name.",
111
+ " --module Process input as ES module (implies --toplevel).",
112
+ " --no-module Process input with improved JavaScript compatibility.",
113
+ " --name-cache <file> File to hold mangled name mappings.",
114
+ " --rename Force symbol expansion.",
115
+ " --no-rename Disable symbol expansion.",
116
+ " --self Build UglifyJS as a library (implies --wrap UglifyJS)",
117
+ " --source-map [options] Enable source map/specify source map options.",
118
+ " --timings Display operations run time on STDERR.",
119
+ " --toplevel Compress and/or mangle variables in toplevel scope.",
120
+ " --v8 Support non-standard Chrome & Node.js.",
121
+ " --validate Perform validation during AST manipulations.",
122
+ " --verbose Print diagnostic messages.",
123
+ " --warn Print warning messages.",
124
+ " --webkit Support non-standard Safari/Webkit.",
125
+ " --wrap <name> Embed everything as a function with “exports” corresponding to “name” globally.",
126
+ "",
127
+ "(internal debug use only)",
128
+ " --in-situ Warning: replaces original source files with minified output.",
129
+ " --reduce-test Reduce a standalone test case (assumes cloned repository).",
130
+ ].join("\n"));
131
+ }
132
+ process.exit();
133
+ case "version":
134
+ print(info.name + " " + info.version);
135
+ process.exit();
136
+ case "config-file":
137
+ var config = JSON.parse(read_file(read_value(true)));
138
+ if (config.mangle && config.mangle.properties && config.mangle.properties.regex) {
139
+ config.mangle.properties.regex = UglifyJS.parse(config.mangle.properties.regex, {
140
+ expression: true,
141
+ }).value;
142
+ }
143
+ for (var key in config) if (!(key in options)) options[key] = config[key];
144
+ break;
145
+ case "compress":
146
+ case "mangle":
147
+ options[name] = parse_js(read_value(), options[name]);
148
+ break;
149
+ case "source-map":
150
+ options.sourceMap = parse_js(read_value(), options.sourceMap);
151
+ break;
152
+ case "enclose":
153
+ options[name] = read_value();
154
+ break;
155
+ case "annotations":
156
+ case "expression":
157
+ case "ie":
158
+ case "ie8":
159
+ case "timings":
160
+ case "toplevel":
161
+ case "v8":
162
+ case "validate":
163
+ case "webkit":
164
+ options[name] = true;
165
+ break;
166
+ case "no-annotations":
167
+ options.annotations = false;
168
+ break;
169
+ case "keep-fargs":
170
+ options.keep_fargs = true;
171
+ break;
172
+ case "keep-fnames":
173
+ options.keep_fnames = true;
174
+ break;
175
+ case "wrap":
176
+ options[name] = read_value(true);
177
+ break;
178
+ case "verbose":
179
+ options.warnings = "verbose";
180
+ break;
181
+ case "warn":
182
+ if (!options.warnings) options.warnings = true;
183
+ break;
184
+ case "beautify":
185
+ options.output = parse_js(read_value(), options.output);
186
+ if (!("beautify" in options.output)) options.output.beautify = true;
187
+ break;
188
+ case "output-opts":
189
+ options.output = parse_js(read_value(true), options.output);
190
+ break;
191
+ case "comments":
192
+ if (typeof options.output != "object") options.output = {};
193
+ options.output.comments = read_value();
194
+ if (options.output.comments === true) options.output.comments = "some";
195
+ break;
196
+ case "define":
197
+ if (typeof options.compress != "object") options.compress = {};
198
+ options.compress.global_defs = parse_js(read_value(true), options.compress.global_defs, "define");
199
+ break;
200
+ case "mangle-props":
201
+ if (typeof options.mangle != "object") options.mangle = {};
202
+ options.mangle.properties = parse_js(read_value(), options.mangle.properties);
203
+ break;
204
+ case "module":
205
+ options.module = true;
206
+ break;
207
+ case "no-module":
208
+ options.module = false;
209
+ break;
210
+ case "name-cache":
211
+ nameCache = read_value(true);
212
+ options.nameCache = JSON.parse(read_file(nameCache, "{}"));
213
+ break;
214
+ case "output":
215
+ output = read_value(true);
216
+ break;
217
+ case "parse":
218
+ options.parse = parse_js(read_value(true), options.parse);
219
+ break;
220
+ case "rename":
221
+ options.rename = true;
222
+ break;
223
+ case "no-rename":
224
+ options.rename = false;
225
+ break;
226
+ case "in-situ":
227
+ case "reduce-test":
228
+ case "self":
229
+ break;
230
+ default:
231
+ fatal("invalid option --" + name);
232
+ }
233
+
234
+ function read_value(required) {
235
+ if (no_value || !args.length || args[0][0] == "-") {
236
+ if (required) fatal("missing option argument for --" + name);
237
+ return true;
238
+ }
239
+ return args.shift();
240
+ }
241
+ }
242
+ if (!output && options.sourceMap && options.sourceMap.url != "inline") fatal("cannot write source map to STDOUT");
243
+ if (specified["beautify"] && specified["output-opts"]) fatal("--beautify cannot be used with --output-opts");
244
+ [ "compress", "mangle" ].forEach(function(name) {
245
+ if (!(name in options)) options[name] = false;
246
+ });
247
+ if (/^ast|spidermonkey$/.test(output)) {
248
+ if (typeof options.output != "object") options.output = {};
249
+ options.output.ast = true;
250
+ options.output.code = false;
251
+ }
252
+ if (options.parse && (options.parse.acorn || options.parse.spidermonkey)
253
+ && options.sourceMap && options.sourceMap.content == "inline") {
254
+ fatal("inline source map only works with built-in parser");
255
+ }
256
+ if (options.warnings) {
257
+ UglifyJS.AST_Node.log_function(print_error, options.warnings == "verbose");
258
+ delete options.warnings;
259
+ }
260
+ var convert_path = function(name) {
261
+ return name;
262
+ };
263
+ if (typeof options.sourceMap == "object" && "base" in options.sourceMap) {
264
+ convert_path = function() {
265
+ var base = options.sourceMap.base;
266
+ delete options.sourceMap.base;
267
+ return function(name) {
268
+ return path.relative(base, name);
269
+ };
270
+ }();
271
+ }
272
+ if (specified["self"]) {
273
+ if (paths.length) UglifyJS.AST_Node.warn("Ignoring input files since --self was passed");
274
+ if (!options.wrap) options.wrap = "UglifyJS";
275
+ paths = UglifyJS.FILES;
276
+ } else if (paths.length) {
277
+ paths = simple_glob(paths);
278
+ }
279
+ if (specified["in-situ"]) {
280
+ if (output && output != "spidermonkey" || specified["reduce-test"] || specified["self"]) {
281
+ fatal("incompatible options specified");
282
+ }
283
+ paths.forEach(function(name) {
284
+ print(name);
285
+ if (/^ast|spidermonkey$/.test(name)) fatal("invalid file name specified");
286
+ files = {};
287
+ files[convert_path(name)] = read_file(name);
288
+ output = name;
289
+ run();
290
+ });
291
+ } else if (paths.length) {
292
+ paths.forEach(function(name) {
293
+ files[convert_path(name)] = read_file(name);
294
+ });
295
+ run();
296
+ } else {
297
+ var timerId = process.stdin.isTTY && process.argv.length < 3 && setTimeout(function() {
298
+ print_error("Waiting for input... (use `--help` to print usage information)");
299
+ }, 1500);
300
+ var chunks = [];
301
+ process.stdin.setEncoding("utf8");
302
+ process.stdin.once("data", function() {
303
+ clearTimeout(timerId);
304
+ }).on("data", process.stdin.isTTY ? function(chunk) {
305
+ // emulate console input termination via Ctrl+D / Ctrl+Z
306
+ var match = /[\x04\x1a]\r?\n?$/.exec(chunk);
307
+ if (match) {
308
+ chunks.push(chunk.slice(0, -match[0].length));
309
+ process.stdin.pause();
310
+ process.stdin.emit("end");
311
+ } else {
312
+ chunks.push(chunk);
313
+ }
314
+ } : function(chunk) {
315
+ chunks.push(chunk);
316
+ }).once("end", function() {
317
+ files = { STDIN: chunks.join("") };
318
+ run();
319
+ });
320
+ process.stdin.resume();
321
+ }
322
+
323
+ function convert_ast(fn) {
324
+ return UglifyJS.AST_Node.from_mozilla_ast(Object.keys(files).reduce(fn, null));
325
+ }
326
+
327
+ function run() {
328
+ var content = options.sourceMap && options.sourceMap.content;
329
+ if (content && content != "inline") {
330
+ UglifyJS.AST_Node.info("Using input source map: {content}", {
331
+ content : content,
332
+ });
333
+ options.sourceMap.content = read_file(content, content);
334
+ }
335
+ try {
336
+ if (options.parse) {
337
+ if (options.parse.acorn) {
338
+ var annotations = Object.create(null);
339
+ files = convert_ast(function(toplevel, name) {
340
+ var content = files[name];
341
+ var list = annotations[name] = [];
342
+ var prev = -1;
343
+ return require("acorn").parse(content, {
344
+ allowHashBang: true,
345
+ ecmaVersion: "latest",
346
+ locations: true,
347
+ onComment: function(block, text, start, end) {
348
+ var match = /[@#]__PURE__/.exec(text);
349
+ if (!match) {
350
+ if (start != prev) return;
351
+ match = [ list[prev] ];
352
+ }
353
+ while (/\s/.test(content[end])) end++;
354
+ list[end] = match[0];
355
+ prev = end;
356
+ },
357
+ preserveParens: true,
358
+ program: toplevel,
359
+ sourceFile: name,
360
+ sourceType: "module",
361
+ });
362
+ });
363
+ files.walk(new UglifyJS.TreeWalker(function(node) {
364
+ if (!(node instanceof UglifyJS.AST_Call)) return;
365
+ var list = annotations[node.start.file];
366
+ var pure = list[node.start.pos];
367
+ if (!pure) {
368
+ var tokens = node.start.parens;
369
+ if (tokens) for (var i = 0; !pure && i < tokens.length; i++) {
370
+ pure = list[tokens[i].pos];
371
+ }
372
+ }
373
+ if (pure) node.pure = pure;
374
+ }));
375
+ } else if (options.parse.spidermonkey) {
376
+ files = convert_ast(function(toplevel, name) {
377
+ var obj = JSON.parse(files[name]);
378
+ if (!toplevel) return obj;
379
+ toplevel.body = toplevel.body.concat(obj.body);
380
+ return toplevel;
381
+ });
382
+ }
383
+ }
384
+ } catch (ex) {
385
+ fatal(ex);
386
+ }
387
+ var result;
388
+ if (specified["reduce-test"]) {
389
+ // load on demand - assumes cloned repository
390
+ var reduce_test = require("../test/reduce");
391
+ if (Object.keys(files).length != 1) fatal("can only test on a single file");
392
+ result = reduce_test(files[Object.keys(files)[0]], options, {
393
+ log: print_error,
394
+ verbose: true,
395
+ });
396
+ } else {
397
+ result = UglifyJS.minify(files, options);
398
+ }
399
+ if (result.error) {
400
+ var ex = result.error;
401
+ if (ex.name == "SyntaxError") {
402
+ print_error("Parse error at " + ex.filename + ":" + ex.line + "," + ex.col);
403
+ var file = files[ex.filename];
404
+ if (file) {
405
+ var col = ex.col;
406
+ var lines = file.split(/\r?\n/);
407
+ var line = lines[ex.line - 1];
408
+ if (!line && !col) {
409
+ line = lines[ex.line - 2];
410
+ col = line.length;
411
+ }
412
+ if (line) {
413
+ var limit = 70;
414
+ if (col > limit) {
415
+ line = line.slice(col - limit);
416
+ col = limit;
417
+ }
418
+ print_error(line.slice(0, 80));
419
+ print_error(line.slice(0, col).replace(/\S/g, " ") + "^");
420
+ }
421
+ }
422
+ } else if (ex.defs) {
423
+ print_error("Supported options:");
424
+ print_error(format_object(ex.defs));
425
+ }
426
+ fatal(ex);
427
+ } else if (output == "ast") {
428
+ if (!options.compress && !options.mangle) {
429
+ var toplevel = result.ast;
430
+ if (!(toplevel instanceof UglifyJS.AST_Toplevel)) {
431
+ if (!(toplevel instanceof UglifyJS.AST_Statement)) toplevel = new UglifyJS.AST_SimpleStatement({
432
+ body: toplevel,
433
+ });
434
+ toplevel = new UglifyJS.AST_Toplevel({
435
+ body: [ toplevel ],
436
+ });
437
+ }
438
+ toplevel.figure_out_scope({});
439
+ }
440
+ print(JSON.stringify(result.ast, function(key, value) {
441
+ if (value) switch (key) {
442
+ case "enclosed":
443
+ return value.length ? value.map(symdef) : undefined;
444
+ case "functions":
445
+ case "globals":
446
+ case "variables":
447
+ return value.size() ? value.map(symdef) : undefined;
448
+ case "thedef":
449
+ return symdef(value);
450
+ }
451
+ if (skip_property(key, value)) return;
452
+ if (value instanceof UglifyJS.AST_Token) return;
453
+ if (value instanceof UglifyJS.Dictionary) return;
454
+ if (value instanceof UglifyJS.AST_Node) {
455
+ var result = {
456
+ _class: "AST_" + value.TYPE
457
+ };
458
+ value.CTOR.PROPS.forEach(function(prop) {
459
+ result[prop] = value[prop];
460
+ });
461
+ return result;
462
+ }
463
+ return value;
464
+ }, 2));
465
+ } else if (output == "spidermonkey") {
466
+ print(JSON.stringify(result.ast.to_mozilla_ast(), null, 2));
467
+ } else if (output) {
468
+ var code;
469
+ if (result.ast) {
470
+ var output_options = {};
471
+ for (var name in UglifyJS.default_options("output")) {
472
+ if (name in options) output_options[name] = options[name];
473
+ }
474
+ for (var name in options.output) {
475
+ if (!/^ast|code$/.test(name)) output_options[name] = options.output[name];
476
+ }
477
+ code = UglifyJS.AST_Node.from_mozilla_ast(result.ast.to_mozilla_ast()).print_to_string(output_options);
478
+ } else {
479
+ code = result.code;
480
+ }
481
+ fs.writeFileSync(output, code);
482
+ if (result.map) fs.writeFileSync(output + ".map", result.map);
483
+ } else {
484
+ print(result.code);
485
+ }
486
+ if (nameCache) fs.writeFileSync(nameCache, JSON.stringify(options.nameCache));
487
+ if (result.timings) for (var phase in result.timings) {
488
+ print_error("- " + phase + ": " + result.timings[phase].toFixed(3) + "s");
489
+ }
490
+ }
491
+
492
+ function fatal(message) {
493
+ if (message instanceof Error) {
494
+ message = message.stack.replace(/^\S*?Error:/, "ERROR:")
495
+ } else {
496
+ message = "ERROR: " + message;
497
+ }
498
+ print_error(message);
499
+ process.exit(1);
500
+ }
501
+
502
+ // A file glob function that only supports "*" and "?" wildcards in the basename.
503
+ // Example: "foo/bar/*baz??.*.js"
504
+ // Argument `paths` must be an array of strings.
505
+ // Returns an array of strings. Garbage in, garbage out.
506
+ function simple_glob(paths) {
507
+ return paths.reduce(function(paths, glob) {
508
+ if (/\*|\?/.test(glob)) {
509
+ var dir = path.dirname(glob);
510
+ try {
511
+ var entries = fs.readdirSync(dir).filter(function(name) {
512
+ try {
513
+ return fs.statSync(path.join(dir, name)).isFile();
514
+ } catch (ex) {
515
+ return false;
516
+ }
517
+ });
518
+ } catch (ex) {}
519
+ if (entries) {
520
+ var pattern = "^" + path.basename(glob)
521
+ .replace(/[.+^$[\]\\(){}]/g, "\\$&")
522
+ .replace(/\*/g, "[^/\\\\]*")
523
+ .replace(/\?/g, "[^/\\\\]") + "$";
524
+ var mod = process.platform === "win32" ? "i" : "";
525
+ var rx = new RegExp(pattern, mod);
526
+ var results = entries.filter(function(name) {
527
+ return rx.test(name);
528
+ }).sort().map(function(name) {
529
+ return path.join(dir, name);
530
+ });
531
+ if (results.length) {
532
+ [].push.apply(paths, results);
533
+ return paths;
534
+ }
535
+ }
536
+ }
537
+ paths.push(glob);
538
+ return paths;
539
+ }, []);
540
+ }
541
+
542
+ function read_file(path, default_value) {
543
+ try {
544
+ return fs.readFileSync(path, "utf8");
545
+ } catch (ex) {
546
+ if (ex.code == "ENOENT" && default_value != null) return default_value;
547
+ fatal(ex);
548
+ }
549
+ }
550
+
551
+ function parse_js(value, options, flag) {
552
+ if (!options || typeof options != "object") options = Object.create(null);
553
+ if (typeof value == "string") try {
554
+ UglifyJS.parse(value, {
555
+ expression: true
556
+ }).walk(new UglifyJS.TreeWalker(function(node) {
557
+ if (node instanceof UglifyJS.AST_Assign) {
558
+ var name = node.left.print_to_string();
559
+ var value = node.right;
560
+ if (flag) {
561
+ options[name] = value;
562
+ } else if (value instanceof UglifyJS.AST_Array) {
563
+ options[name] = value.elements.map(to_string);
564
+ } else {
565
+ options[name] = to_string(value);
566
+ }
567
+ return true;
568
+ }
569
+ if (node instanceof UglifyJS.AST_Symbol || node instanceof UglifyJS.AST_PropAccess) {
570
+ var name = node.print_to_string();
571
+ options[name] = true;
572
+ return true;
573
+ }
574
+ if (!(node instanceof UglifyJS.AST_Sequence)) throw node;
575
+
576
+ function to_string(value) {
577
+ return value instanceof UglifyJS.AST_Constant ? value.value : value.print_to_string({
578
+ quote_keys: true
579
+ });
580
+ }
581
+ }));
582
+ } catch (ex) {
583
+ if (flag) {
584
+ fatal("cannot parse arguments for '" + flag + "': " + value);
585
+ } else {
586
+ options[value] = null;
587
+ }
588
+ }
589
+ return options;
590
+ }
591
+
592
+ function skip_property(key, value) {
593
+ return skip_keys.indexOf(key) >= 0
594
+ // only skip truthy_keys if their value is falsy
595
+ || truthy_keys.indexOf(key) >= 0 && !value;
596
+ }
597
+
598
+ function symdef(def) {
599
+ var ret = (1e6 + def.id) + " " + def.name;
600
+ if (def.mangled_name) ret += " " + def.mangled_name;
601
+ return ret;
602
+ }
603
+
604
+ function format_object(obj) {
605
+ var lines = [];
606
+ var padding = "";
607
+ Object.keys(obj).map(function(name) {
608
+ if (padding.length < name.length) padding = Array(name.length + 1).join(" ");
609
+ return [ name, JSON.stringify(obj[name]) ];
610
+ }).forEach(function(tokens) {
611
+ lines.push(" " + tokens[0] + padding.slice(tokens[0].length - 2) + tokens[1]);
612
+ });
613
+ return lines.join("\n");
614
+ }
615
+
616
+ function print_error(msg) {
617
+ process.stderr.write(msg);
618
+ process.stderr.write("\n");
619
+ }
620
+
621
+ function print(txt) {
622
+ process.stdout.write(txt);
623
+ process.stdout.write("\n");
624
+ }