django-advanced-report-builder 1.2.9__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (360) hide show
  1. advanced_report_builder/.DS_Store +0 -0
  2. advanced_report_builder/.ruff_cache/.gitignore +2 -0
  3. advanced_report_builder/.ruff_cache/0.11.9/16555798982502606642 +0 -0
  4. advanced_report_builder/.ruff_cache/CACHEDIR.TAG +1 -0
  5. advanced_report_builder/__init__.py +0 -0
  6. advanced_report_builder/admin.py +264 -0
  7. advanced_report_builder/apps.py +7 -0
  8. advanced_report_builder/column_types.py +26 -0
  9. advanced_report_builder/columns.py +296 -0
  10. advanced_report_builder/customise.py +2 -0
  11. advanced_report_builder/data_merge/__init__.py +0 -0
  12. advanced_report_builder/data_merge/utils.py +112 -0
  13. advanced_report_builder/data_merge/widget.py +30 -0
  14. advanced_report_builder/duplicate.py +171 -0
  15. advanced_report_builder/exceptions.py +9 -0
  16. advanced_report_builder/field_types.py +466 -0
  17. advanced_report_builder/field_utils.py +401 -0
  18. advanced_report_builder/filter_query.py +862 -0
  19. advanced_report_builder/form_utils.py +12 -0
  20. advanced_report_builder/generate_series.py +14 -0
  21. advanced_report_builder/globals.py +276 -0
  22. advanced_report_builder/includes.py +72 -0
  23. advanced_report_builder/migrations/0001_initial.py +246 -0
  24. advanced_report_builder/migrations/0002_auto_20220209_1657.py +23 -0
  25. advanced_report_builder/migrations/0003_auto_20220215_1219.py +42 -0
  26. advanced_report_builder/migrations/0004_customreport.py +27 -0
  27. advanced_report_builder/migrations/0005_auto_20220303_0958.py +84 -0
  28. advanced_report_builder/migrations/0006_auto_20220310_1147.py +32 -0
  29. advanced_report_builder/migrations/0007_auto_20220322_1939.py +23 -0
  30. advanced_report_builder/migrations/0008_auto_20220404_1144.py +28 -0
  31. advanced_report_builder/migrations/0009_auto_20230428_1554.py +53 -0
  32. advanced_report_builder/migrations/0010_auto_20230428_2033.py +23 -0
  33. advanced_report_builder/migrations/0011_auto_20230620_1449.py +23 -0
  34. advanced_report_builder/migrations/0012_auto_20230718_1642.py +24 -0
  35. advanced_report_builder/migrations/0013_reportqueryorder.py +30 -0
  36. advanced_report_builder/migrations/0014_auto_20240706_2207.py +24 -0
  37. advanced_report_builder/migrations/0015_report_user_created_report_user_updated.py +26 -0
  38. advanced_report_builder/migrations/0016_calendarreport_dashboardreport_options_and_more.py +74 -0
  39. advanced_report_builder/migrations/0017_alter_barchartreport_options_and_more.py +57 -0
  40. advanced_report_builder/migrations/0018_reportquery_target_target_period_type.py +24 -0
  41. advanced_report_builder/migrations/0019_multicellstyle_and_more.py +107 -0
  42. advanced_report_builder/migrations/0020_alter_multicellstyle_font_size.py +18 -0
  43. advanced_report_builder/migrations/0021_multivalueheldquery_and_more.py +36 -0
  44. advanced_report_builder/migrations/0022_dashboardreport_show_options_report_template_style_and_more.py +44 -0
  45. advanced_report_builder/migrations/0023_rename_colour_target_default_colour_and_more.py +41 -0
  46. advanced_report_builder/migrations/0024_alter_target_period_type.py +18 -0
  47. advanced_report_builder/migrations/__init__.py +0 -0
  48. advanced_report_builder/models.py +954 -0
  49. advanced_report_builder/report_builder.py +28 -0
  50. advanced_report_builder/signals.py +3 -0
  51. advanced_report_builder/static/.DS_Store +0 -0
  52. advanced_report_builder/static/advanced_report_builder/.DS_Store +0 -0
  53. advanced_report_builder/static/advanced_report_builder/chart-js/js/chart.esm.js +10553 -0
  54. advanced_report_builder/static/advanced_report_builder/chart-js/js/chart.js +13190 -0
  55. advanced_report_builder/static/advanced_report_builder/chart-js/js/chart.min.js +13 -0
  56. advanced_report_builder/static/advanced_report_builder/chart-js/js/chartjs-adapter-moment.min.js +8 -0
  57. advanced_report_builder/static/advanced_report_builder/chart-js/js/chartjs-plugin-datalabels.min.js +7 -0
  58. advanced_report_builder/static/advanced_report_builder/chart-js/js/chunks/helpers.segment.js +2499 -0
  59. advanced_report_builder/static/advanced_report_builder/chart-js/js/helpers.esm.js +7 -0
  60. advanced_report_builder/static/advanced_report_builder/d3/js/d3.js +20196 -0
  61. advanced_report_builder/static/advanced_report_builder/d3/js/d3.min.js +2 -0
  62. advanced_report_builder/static/advanced_report_builder/d3-funnel/js/d3-funnel.js +6087 -0
  63. advanced_report_builder/static/advanced_report_builder/d3-funnel/js/d3-funnel.min.js +2 -0
  64. advanced_report_builder/static/advanced_report_builder/dashboard/js/dashboard.js +19 -0
  65. advanced_report_builder/static/advanced_report_builder/dot/js/.gitignore +31 -0
  66. advanced_report_builder/static/advanced_report_builder/dot/js/.travis.yml +9 -0
  67. advanced_report_builder/static/advanced_report_builder/dot/js/LICENSE-DOT.txt +24 -0
  68. advanced_report_builder/static/advanced_report_builder/dot/js/README.md +90 -0
  69. advanced_report_builder/static/advanced_report_builder/dot/js/bin/dot-packer +52 -0
  70. advanced_report_builder/static/advanced_report_builder/dot/js/bower.json +21 -0
  71. advanced_report_builder/static/advanced_report_builder/dot/js/doT.js +141 -0
  72. advanced_report_builder/static/advanced_report_builder/dot/js/doT.min.js +8 -0
  73. advanced_report_builder/static/advanced_report_builder/dot/js/doU.js +56 -0
  74. advanced_report_builder/static/advanced_report_builder/dot/js/index.js +143 -0
  75. advanced_report_builder/static/advanced_report_builder/dot/js/package.json +46 -0
  76. advanced_report_builder/static/advanced_report_builder/fullcalendar/.DS_Store +0 -0
  77. advanced_report_builder/static/advanced_report_builder/fullcalendar/LICENSE.txt +20 -0
  78. advanced_report_builder/static/advanced_report_builder/fullcalendar/README.md +10 -0
  79. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/LICENSE.txt +20 -0
  80. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/README.md +8 -0
  81. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/af.js +30 -0
  82. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/ar-dz.js +31 -0
  83. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/ar-kw.js +31 -0
  84. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/ar-ly.js +31 -0
  85. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/ar-ma.js +31 -0
  86. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/ar-sa.js +31 -0
  87. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/ar-tn.js +31 -0
  88. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/ar.js +31 -0
  89. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/bg.js +31 -0
  90. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/bs.js +32 -0
  91. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/ca.js +30 -0
  92. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/cs.js +32 -0
  93. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/da.js +30 -0
  94. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/de.js +33 -0
  95. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/el.js +30 -0
  96. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/en-au.js +17 -0
  97. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/en-gb.js +17 -0
  98. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/en-nz.js +17 -0
  99. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/es-us.js +30 -0
  100. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/es.js +30 -0
  101. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/et.js +32 -0
  102. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/eu.js +30 -0
  103. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/fa.js +33 -0
  104. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/fi.js +30 -0
  105. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/fr-ca.js +27 -0
  106. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/fr-ch.js +31 -0
  107. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/fr.js +31 -0
  108. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/gl.js +30 -0
  109. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/he.js +27 -0
  110. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/hi.js +32 -0
  111. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/hr.js +32 -0
  112. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/hu.js +30 -0
  113. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/id.js +30 -0
  114. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/is.js +30 -0
  115. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/it.js +32 -0
  116. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/ja.js +28 -0
  117. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/ka.js +32 -0
  118. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/kk.js +32 -0
  119. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/ko.js +26 -0
  120. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/lb.js +30 -0
  121. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/lt.js +30 -0
  122. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/lv.js +32 -0
  123. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/mk.js +28 -0
  124. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/ms.js +32 -0
  125. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/nb.js +30 -0
  126. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/nl.js +30 -0
  127. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/nn.js +30 -0
  128. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/pl.js +30 -0
  129. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/pt-br.js +28 -0
  130. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/pt.js +30 -0
  131. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/ro.js +32 -0
  132. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/ru.js +32 -0
  133. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/sk.js +32 -0
  134. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/sl.js +30 -0
  135. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/sq.js +32 -0
  136. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/sr-cyrl.js +32 -0
  137. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/sr.js +32 -0
  138. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/sv.js +30 -0
  139. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/th.js +25 -0
  140. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/tr.js +30 -0
  141. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/uk.js +32 -0
  142. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/vi.js +32 -0
  143. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/zh-cn.js +33 -0
  144. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales/zh-tw.js +26 -0
  145. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales-all.js +1348 -0
  146. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/locales-all.min.js +1 -0
  147. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/main.css +1052 -0
  148. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/main.d.ts +2730 -0
  149. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/main.esm.js +8558 -0
  150. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/main.js +8717 -0
  151. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/main.min.css +1 -0
  152. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/main.min.js +6 -0
  153. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/core/package.json +30 -0
  154. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/daygrid/LICENSE.txt +20 -0
  155. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/daygrid/README.md +8 -0
  156. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/daygrid/main.css +78 -0
  157. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/daygrid/main.d.ts +310 -0
  158. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/daygrid/main.esm.js +1627 -0
  159. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/daygrid/main.js +1641 -0
  160. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/daygrid/main.min.css +1 -0
  161. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/daygrid/main.min.js +6 -0
  162. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/daygrid/package.json +33 -0
  163. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/fullcalendar-yearview/LICENSE +21 -0
  164. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/fullcalendar-yearview/css/main.css +85 -0
  165. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/fullcalendar-yearview/js/main.js +2018 -0
  166. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/google-calendar/LICENSE.txt +20 -0
  167. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/google-calendar/README.md +8 -0
  168. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/google-calendar/main.d.ts +20 -0
  169. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/google-calendar/main.esm.js +162 -0
  170. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/google-calendar/main.js +170 -0
  171. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/google-calendar/main.min.js +6 -0
  172. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/google-calendar/package.json +33 -0
  173. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/interaction/LICENSE.txt +20 -0
  174. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/interaction/README.md +8 -0
  175. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/interaction/main.d.ts +323 -0
  176. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/interaction/main.esm.js +2132 -0
  177. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/interaction/main.js +2143 -0
  178. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/interaction/main.min.js +6 -0
  179. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/interaction/package.json +33 -0
  180. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/list/LICENSE.txt +20 -0
  181. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/list/README.md +8 -0
  182. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/list/main.css +118 -0
  183. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/list/main.d.ts +33 -0
  184. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/list/main.esm.js +335 -0
  185. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/list/main.js +343 -0
  186. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/list/main.min.css +1 -0
  187. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/list/main.min.js +6 -0
  188. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/list/package.json +33 -0
  189. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/luxon/LICENSE.txt +20 -0
  190. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/luxon/README.md +8 -0
  191. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/luxon/main.d.ts +14 -0
  192. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/luxon/main.esm.js +162 -0
  193. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/luxon/main.js +170 -0
  194. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/luxon/main.min.js +6 -0
  195. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/luxon/package.json +34 -0
  196. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/moment/LICENSE.txt +20 -0
  197. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/moment/README.md +8 -0
  198. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/moment/main.d.ts +14 -0
  199. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/moment/main.esm.js +102 -0
  200. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/moment/main.js +110 -0
  201. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/moment/main.min.js +6 -0
  202. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/moment/package.json +34 -0
  203. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/moment-timezone/LICENSE.txt +20 -0
  204. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/moment-timezone/README.md +8 -0
  205. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/moment-timezone/main.d.ts +11 -0
  206. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/moment-timezone/main.esm.js +58 -0
  207. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/moment-timezone/main.js +64 -0
  208. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/moment-timezone/main.min.js +6 -0
  209. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/moment-timezone/package.json +35 -0
  210. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/rrule/LICENSE.txt +20 -0
  211. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/rrule/README.md +8 -0
  212. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/rrule/main.d.ts +9 -0
  213. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/rrule/main.esm.js +121 -0
  214. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/rrule/main.js +128 -0
  215. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/rrule/main.min.js +6 -0
  216. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/rrule/package.json +34 -0
  217. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/timegrid/LICENSE.txt +20 -0
  218. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/timegrid/README.md +8 -0
  219. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/timegrid/main.css +309 -0
  220. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/timegrid/main.d.ts +220 -0
  221. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/timegrid/main.esm.js +1345 -0
  222. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/timegrid/main.js +1357 -0
  223. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/timegrid/main.min.css +1 -0
  224. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/timegrid/main.min.js +6 -0
  225. advanced_report_builder/static/advanced_report_builder/fullcalendar/packages/timegrid/package.json +36 -0
  226. advanced_report_builder/static/advanced_report_builder/fullcalendar/vendor/rrule.js +3782 -0
  227. advanced_report_builder/static/advanced_report_builder/jquery_extendext/js/jQuery.extendext.js +132 -0
  228. advanced_report_builder/static/advanced_report_builder/jquery_extendext/js/jQuery.extendext.min.js +9 -0
  229. advanced_report_builder/static/advanced_report_builder/moment/locales.js +9769 -0
  230. advanced_report_builder/static/advanced_report_builder/moment/locales.min.js +1 -0
  231. advanced_report_builder/static/advanced_report_builder/moment/moment-with-locales.js +14289 -0
  232. advanced_report_builder/static/advanced_report_builder/moment/moment-with-locales.min.js +1 -0
  233. advanced_report_builder/static/advanced_report_builder/moment/moment.min.js +1 -0
  234. advanced_report_builder/static/advanced_report_builder/query_builder/.DS_Store +0 -0
  235. advanced_report_builder/static/advanced_report_builder/query_builder/css/.DS_Store +0 -0
  236. advanced_report_builder/static/advanced_report_builder/query_builder/css/query-builder.dark.css +173 -0
  237. advanced_report_builder/static/advanced_report_builder/query_builder/css/query-builder.dark.min.css +6 -0
  238. advanced_report_builder/static/advanced_report_builder/query_builder/css/query-builder.default.css +173 -0
  239. advanced_report_builder/static/advanced_report_builder/query_builder/css/query-builder.default.min.css +6 -0
  240. advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.ar.js +80 -0
  241. advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.az.js +79 -0
  242. advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.bg.js +79 -0
  243. advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.cs.js +79 -0
  244. advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.da.js +56 -0
  245. advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.de.js +76 -0
  246. advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.el.js +80 -0
  247. advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.en.js +83 -0
  248. advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.es.js +81 -0
  249. advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.fa-IR.js +79 -0
  250. advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.fr.js +83 -0
  251. advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.he.js +81 -0
  252. advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.it.js +79 -0
  253. advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.nl.js +76 -0
  254. advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.no.js +54 -0
  255. advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.pl.js +80 -0
  256. advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.pt-BR.js +80 -0
  257. advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.pt-PT.js +75 -0
  258. advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.ro.js +54 -0
  259. advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.ru.js +77 -0
  260. advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.sq.js +78 -0
  261. advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.tr.js +82 -0
  262. advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.ua.js +79 -0
  263. advanced_report_builder/static/advanced_report_builder/query_builder/i18n/query-builder.zh-CN.js +80 -0
  264. advanced_report_builder/static/advanced_report_builder/query_builder/js/.DS_Store +0 -0
  265. advanced_report_builder/static/advanced_report_builder/query_builder/js/plugins/.DS_Store +0 -0
  266. advanced_report_builder/static/advanced_report_builder/query_builder/js/plugins/currency/plugin.js +30 -0
  267. advanced_report_builder/static/advanced_report_builder/query_builder/js/query-builder.js +6200 -0
  268. advanced_report_builder/static/advanced_report_builder/query_builder/js/query-builder.min.js +7 -0
  269. advanced_report_builder/static/advanced_report_builder/query_builder/js/query-builder.standalone.js +6477 -0
  270. advanced_report_builder/static/advanced_report_builder/query_builder/js/query-builder.standalone.min.js +7 -0
  271. advanced_report_builder/static/advanced_report_builder/query_builder/scss/.DS_Store +0 -0
  272. advanced_report_builder/static/advanced_report_builder/query_builder/scss/dark.scss +19 -0
  273. advanced_report_builder/static/advanced_report_builder/query_builder/scss/default.scss +186 -0
  274. advanced_report_builder/static/advanced_report_builder/query_builder/scss/plugins/_bt-checkbox.scss +12 -0
  275. advanced_report_builder/static/advanced_report_builder/query_builder/scss/plugins/_bt-tooltip-errors.scss +9 -0
  276. advanced_report_builder/static/advanced_report_builder/query_builder/scss/plugins/_filter-description.scss +21 -0
  277. advanced_report_builder/static/advanced_report_builder/query_builder/scss/plugins/_invert.scss +5 -0
  278. advanced_report_builder/static/advanced_report_builder/query_builder/scss/plugins/_sortable.scss +28 -0
  279. advanced_report_builder/static/advanced_report_builder/query_builder/scss/plugins/bt-tooltip-errors.scss +9 -0
  280. advanced_report_builder/static/advanced_report_builder/query_builder/scss/plugins/filter-description.scss +21 -0
  281. advanced_report_builder/static/advanced_report_builder/query_builder/scss/plugins/invert.scss +5 -0
  282. advanced_report_builder/static/advanced_report_builder/query_builder/scss/plugins/sortable.scss +27 -0
  283. advanced_report_builder/template_types.py +34 -0
  284. advanced_report_builder/templates/advanced_report_builder/calendar/description_modal.html +12 -0
  285. advanced_report_builder/templates/advanced_report_builder/calendar/middle.html +33 -0
  286. advanced_report_builder/templates/advanced_report_builder/calendar/modal.html +10 -0
  287. advanced_report_builder/templates/advanced_report_builder/calendar/report.html +80 -0
  288. advanced_report_builder/templates/advanced_report_builder/charts/bar/middle.html +122 -0
  289. advanced_report_builder/templates/advanced_report_builder/charts/funnel/middle.html +46 -0
  290. advanced_report_builder/templates/advanced_report_builder/charts/funnel/report.html +34 -0
  291. advanced_report_builder/templates/advanced_report_builder/charts/line/middle.html +119 -0
  292. advanced_report_builder/templates/advanced_report_builder/charts/modal.html +12 -0
  293. advanced_report_builder/templates/advanced_report_builder/charts/modal_field.html +13 -0
  294. advanced_report_builder/templates/advanced_report_builder/charts/pie/middle.html +58 -0
  295. advanced_report_builder/templates/advanced_report_builder/charts/report.html +33 -0
  296. advanced_report_builder/templates/advanced_report_builder/data_merge/data_merge.html +144 -0
  297. advanced_report_builder/templates/advanced_report_builder/datatables/fields/modal.html +13 -0
  298. advanced_report_builder/templates/advanced_report_builder/datatables/fields/single_query_builder.html +87 -0
  299. advanced_report_builder/templates/advanced_report_builder/datatables/modal.html +13 -0
  300. advanced_report_builder/templates/advanced_report_builder/datatables/onclick_menu.html +14 -0
  301. advanced_report_builder/templates/advanced_report_builder/datatables/report.html +37 -0
  302. advanced_report_builder/templates/advanced_report_builder/datatables/select_pivot.html +199 -0
  303. advanced_report_builder/templates/advanced_report_builder/error.html +21 -0
  304. advanced_report_builder/templates/advanced_report_builder/extra_query_modal.html +13 -0
  305. advanced_report_builder/templates/advanced_report_builder/kanban/description_modal.html +12 -0
  306. advanced_report_builder/templates/advanced_report_builder/kanban/middle.html +63 -0
  307. advanced_report_builder/templates/advanced_report_builder/kanban/modal.html +10 -0
  308. advanced_report_builder/templates/advanced_report_builder/kanban/report.html +71 -0
  309. advanced_report_builder/templates/advanced_report_builder/multi_values/held_modal.html +14 -0
  310. advanced_report_builder/templates/advanced_report_builder/multi_values/middle.html +61 -0
  311. advanced_report_builder/templates/advanced_report_builder/multi_values/modal.html +15 -0
  312. advanced_report_builder/templates/advanced_report_builder/multi_values/report.html +19 -0
  313. advanced_report_builder/templates/advanced_report_builder/query_builder.html +88 -0
  314. advanced_report_builder/templates/advanced_report_builder/query_modal.html +12 -0
  315. advanced_report_builder/templates/advanced_report_builder/select_column.html +230 -0
  316. advanced_report_builder/templates/advanced_report_builder/single_values/gauge_middle.html +143 -0
  317. advanced_report_builder/templates/advanced_report_builder/single_values/middle.html +63 -0
  318. advanced_report_builder/templates/advanced_report_builder/single_values/modal.html +13 -0
  319. advanced_report_builder/templates/advanced_report_builder/single_values/report.html +56 -0
  320. advanced_report_builder/toggle.py +9 -0
  321. advanced_report_builder/urls.py +237 -0
  322. advanced_report_builder/utils.py +171 -0
  323. advanced_report_builder/variable_date.py +670 -0
  324. advanced_report_builder/view_types.py +27 -0
  325. advanced_report_builder/views/.DS_Store +0 -0
  326. advanced_report_builder/views/__init__.py +0 -0
  327. advanced_report_builder/views/bar_charts.py +746 -0
  328. advanced_report_builder/views/calendar.py +745 -0
  329. advanced_report_builder/views/charts_base.py +625 -0
  330. advanced_report_builder/views/custom.py +147 -0
  331. advanced_report_builder/views/dashboard.py +357 -0
  332. advanced_report_builder/views/datatables/__init__.py +0 -0
  333. advanced_report_builder/views/datatables/datatables.py +151 -0
  334. advanced_report_builder/views/datatables/modal.py +1151 -0
  335. advanced_report_builder/views/datatables/utils.py +701 -0
  336. advanced_report_builder/views/error_pod.py +50 -0
  337. advanced_report_builder/views/funnel_charts.py +289 -0
  338. advanced_report_builder/views/helpers.py +22 -0
  339. advanced_report_builder/views/kanban.py +868 -0
  340. advanced_report_builder/views/line_charts.py +415 -0
  341. advanced_report_builder/views/modals_base.py +213 -0
  342. advanced_report_builder/views/multi_value.py +1160 -0
  343. advanced_report_builder/views/pie_charts.py +290 -0
  344. advanced_report_builder/views/query_modal/__init__.py +0 -0
  345. advanced_report_builder/views/query_modal/mixin.py +161 -0
  346. advanced_report_builder/views/query_modal/modal.py +274 -0
  347. advanced_report_builder/views/report.py +241 -0
  348. advanced_report_builder/views/report_utils_mixin.py +312 -0
  349. advanced_report_builder/views/reports.py +154 -0
  350. advanced_report_builder/views/single_values.py +792 -0
  351. advanced_report_builder/views/targets/__init__.py +0 -0
  352. advanced_report_builder/views/targets/utils.py +251 -0
  353. advanced_report_builder/views/targets/views.py +139 -0
  354. advanced_report_builder/views/value_base.py +198 -0
  355. advanced_report_builder/widgets.py +5 -0
  356. django_advanced_report_builder-1.2.9.dist-info/METADATA +35 -0
  357. django_advanced_report_builder-1.2.9.dist-info/RECORD +360 -0
  358. django_advanced_report_builder-1.2.9.dist-info/WHEEL +5 -0
  359. django_advanced_report_builder-1.2.9.dist-info/licenses/LICENSE +21 -0
  360. django_advanced_report_builder-1.2.9.dist-info/top_level.txt +1 -0
@@ -0,0 +1,2 @@
1
+ /*! d3-funnel - v2.0.1 | 2021 */
2
+ !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.D3Funnel=e():t.D3Funnel=e()}(self,(function(){return function(){var t={745:function(t,e,n){"use strict";n.d(e,{default:function(){return qn}});const r=t=>+t;function i(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t)}return this}const o=Symbol("implicit");var a=function(t){for(var e=t.length/6|0,n=new Array(e),r=0;r<e;)n[r]="#"+t.slice(6*r,6*++r);return n}("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf");function s(){}function u(t){return null==t?s:function(){return this.querySelector(t)}}function l(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}function c(){return[]}function h(t){return null==t?c:function(){return this.querySelectorAll(t)}}function f(t){return function(){return this.matches(t)}}function p(t){return function(e){return e.matches(t)}}var d=Array.prototype.find;function g(){return this.firstElementChild}var v=Array.prototype.filter;function y(){return this.children}function m(t){return new Array(t.length)}function b(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}function w(t){return function(){return t}}function _(t,e,n,r,i,o){for(var a,s=0,u=e.length,l=o.length;s<l;++s)(a=e[s])?(a.__data__=o[s],r[s]=a):n[s]=new b(t,o[s]);for(;s<u;++s)(a=e[s])&&(i[s]=a)}function k(t,e,n,r,i,o,a){var s,u,l,c=new Map,h=e.length,f=o.length,p=new Array(h);for(s=0;s<h;++s)(u=e[s])&&(p[s]=l=a.call(u,u.__data__,s,e)+"",c.has(l)?i[s]=u:c.set(l,u));for(s=0;s<f;++s)l=a.call(t,o[s],s,o)+"",(u=c.get(l))?(r[s]=u,u.__data__=o[s],c.delete(l)):n[s]=new b(t,o[s]);for(s=0;s<h;++s)(u=e[s])&&c.get(p[s])===u&&(i[s]=u)}function x(t){return t.__data__}function A(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}b.prototype={constructor:b,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,e){return this._parent.insertBefore(t,e)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};var E="http://www.w3.org/1999/xhtml",P={svg:"http://www.w3.org/2000/svg",xhtml:E,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function S(t){var e=t+="",n=e.indexOf(":");return n>=0&&"xmlns"!==(e=t.slice(0,n))&&(t=t.slice(n+1)),P.hasOwnProperty(e)?{space:P[e],local:t}:t}function M(t){return function(){this.removeAttribute(t)}}function O(t){return function(){this.removeAttributeNS(t.space,t.local)}}function C(t,e){return function(){this.setAttribute(t,e)}}function N(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function L(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttribute(t):this.setAttribute(t,n)}}function j(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,n)}}function D(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function B(t){return function(){this.style.removeProperty(t)}}function H(t,e,n){return function(){this.style.setProperty(t,e,n)}}function I(t,e,n){return function(){var r=e.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,n)}}function T(t,e){return t.style.getPropertyValue(e)||D(t).getComputedStyle(t,null).getPropertyValue(e)}function z(t){return function(){delete this[t]}}function F(t,e){return function(){this[t]=e}}function R(t,e){return function(){var n=e.apply(this,arguments);null==n?delete this[t]:this[t]=n}}function X(t){return t.trim().split(/^|\s+/)}function q(t){return t.classList||new V(t)}function V(t){this._node=t,this._names=X(t.getAttribute("class")||"")}function Y(t,e){for(var n=q(t),r=-1,i=e.length;++r<i;)n.add(e[r])}function Q(t,e){for(var n=q(t),r=-1,i=e.length;++r<i;)n.remove(e[r])}function $(t){return function(){Y(this,t)}}function G(t){return function(){Q(this,t)}}function W(t,e){return function(){(e.apply(this,arguments)?Y:Q)(this,t)}}function U(){this.textContent=""}function K(t){return function(){this.textContent=t}}function J(t){return function(){var e=t.apply(this,arguments);this.textContent=null==e?"":e}}function Z(){this.innerHTML=""}function tt(t){return function(){this.innerHTML=t}}function et(t){return function(){var e=t.apply(this,arguments);this.innerHTML=null==e?"":e}}function nt(){this.nextSibling&&this.parentNode.appendChild(this)}function rt(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function it(t){return function(){var e=this.ownerDocument,n=this.namespaceURI;return n===E&&e.documentElement.namespaceURI===E?e.createElement(t):e.createElementNS(n,t)}}function ot(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function at(t){var e=S(t);return(e.local?ot:it)(e)}function st(){return null}function ut(){var t=this.parentNode;t&&t.removeChild(this)}function lt(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function ct(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function ht(t){return t.trim().split(/^|\s+/).map((function(t){var e="",n=t.indexOf(".");return n>=0&&(e=t.slice(n+1),t=t.slice(0,n)),{type:t,name:e}}))}function ft(t){return function(){var e=this.__on;if(e){for(var n,r=0,i=-1,o=e.length;r<o;++r)n=e[r],t.type&&n.type!==t.type||n.name!==t.name?e[++i]=n:this.removeEventListener(n.type,n.listener,n.options);++i?e.length=i:delete this.__on}}}function pt(t,e,n){return function(){var r,i=this.__on,o=function(t){return function(e){t.call(this,e,this.__data__)}}(e);if(i)for(var a=0,s=i.length;a<s;++a)if((r=i[a]).type===t.type&&r.name===t.name)return this.removeEventListener(r.type,r.listener,r.options),this.addEventListener(r.type,r.listener=o,r.options=n),void(r.value=e);this.addEventListener(t.type,o,n),r={type:t.type,name:t.name,value:e,listener:o,options:n},i?i.push(r):this.__on=[r]}}function dt(t,e,n){var r=D(t),i=r.CustomEvent;"function"==typeof i?i=new i(e,n):(i=r.document.createEvent("Event"),n?(i.initEvent(e,n.bubbles,n.cancelable),i.detail=n.detail):i.initEvent(e,!1,!1)),t.dispatchEvent(i)}function gt(t,e){return function(){return dt(this,t,e)}}function vt(t,e){return function(){return dt(this,t,e.apply(this,arguments))}}V.prototype={add:function(t){this._names.indexOf(t)<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var yt=[null];function mt(t,e){this._groups=t,this._parents=e}function bt(){return new mt([[document.documentElement]],yt)}mt.prototype=bt.prototype={constructor:mt,select:function(t){"function"!=typeof t&&(t=u(t));for(var e=this._groups,n=e.length,r=new Array(n),i=0;i<n;++i)for(var o,a,s=e[i],l=s.length,c=r[i]=new Array(l),h=0;h<l;++h)(o=s[h])&&(a=t.call(o,o.__data__,h,s))&&("__data__"in o&&(a.__data__=o.__data__),c[h]=a);return new mt(r,this._parents)},selectAll:function(t){t="function"==typeof t?function(t){return function(){var e=t.apply(this,arguments);return null==e?[]:l(e)}}(t):h(t);for(var e=this._groups,n=e.length,r=[],i=[],o=0;o<n;++o)for(var a,s=e[o],u=s.length,c=0;c<u;++c)(a=s[c])&&(r.push(t.call(a,a.__data__,c,s)),i.push(a));return new mt(r,i)},selectChild:function(t){return this.select(null==t?g:function(t){return function(){return d.call(this.children,t)}}("function"==typeof t?t:p(t)))},selectChildren:function(t){return this.selectAll(null==t?y:function(t){return function(){return v.call(this.children,t)}}("function"==typeof t?t:p(t)))},filter:function(t){"function"!=typeof t&&(t=f(t));for(var e=this._groups,n=e.length,r=new Array(n),i=0;i<n;++i)for(var o,a=e[i],s=a.length,u=r[i]=[],l=0;l<s;++l)(o=a[l])&&t.call(o,o.__data__,l,a)&&u.push(o);return new mt(r,this._parents)},data:function(t,e){if(!arguments.length)return Array.from(this,x);var n=e?k:_,r=this._parents,i=this._groups;"function"!=typeof t&&(t=w(t));for(var o=i.length,a=new Array(o),s=new Array(o),u=new Array(o),c=0;c<o;++c){var h=r[c],f=i[c],p=f.length,d=l(t.call(h,h&&h.__data__,c,r)),g=d.length,v=s[c]=new Array(g),y=a[c]=new Array(g),m=u[c]=new Array(p);n(h,f,v,y,m,d,e);for(var b,A,E=0,P=0;E<g;++E)if(b=v[E]){for(E>=P&&(P=E+1);!(A=y[P])&&++P<g;);b._next=A||null}}return(a=new mt(a,r))._enter=s,a._exit=u,a},enter:function(){return new mt(this._enter||this._groups.map(m),this._parents)},exit:function(){return new mt(this._exit||this._groups.map(m),this._parents)},join:function(t,e,n){var r=this.enter(),i=this,o=this.exit();return r="function"==typeof t?t(r):r.append(t+""),null!=e&&(i=e(i)),null==n?o.remove():n(o),r&&i?r.merge(i).order():i},merge:function(t){if(!(t instanceof mt))throw new Error("invalid merge");for(var e=this._groups,n=t._groups,r=e.length,i=n.length,o=Math.min(r,i),a=new Array(r),s=0;s<o;++s)for(var u,l=e[s],c=n[s],h=l.length,f=a[s]=new Array(h),p=0;p<h;++p)(u=l[p]||c[p])&&(f[p]=u);for(;s<r;++s)a[s]=e[s];return new mt(a,this._parents)},selection:function(){return this},order:function(){for(var t=this._groups,e=-1,n=t.length;++e<n;)for(var r,i=t[e],o=i.length-1,a=i[o];--o>=0;)(r=i[o])&&(a&&4^r.compareDocumentPosition(a)&&a.parentNode.insertBefore(r,a),a=r);return this},sort:function(t){function e(e,n){return e&&n?t(e.__data__,n.__data__):!e-!n}t||(t=A);for(var n=this._groups,r=n.length,i=new Array(r),o=0;o<r;++o){for(var a,s=n[o],u=s.length,l=i[o]=new Array(u),c=0;c<u;++c)(a=s[c])&&(l[c]=a);l.sort(e)}return new mt(i,this._parents).order()},call:function(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this},nodes:function(){return Array.from(this)},node:function(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var r=t[e],i=0,o=r.length;i<o;++i){var a=r[i];if(a)return a}return null},size:function(){let t=0;for(const e of this)++t;return t},empty:function(){return!this.node()},each:function(t){for(var e=this._groups,n=0,r=e.length;n<r;++n)for(var i,o=e[n],a=0,s=o.length;a<s;++a)(i=o[a])&&t.call(i,i.__data__,a,o);return this},attr:function(t,e){var n=S(t);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((null==e?n.local?O:M:"function"==typeof e?n.local?j:L:n.local?N:C)(n,e))},style:function(t,e,n){return arguments.length>1?this.each((null==e?B:"function"==typeof e?I:H)(t,e,null==n?"":n)):T(this.node(),t)},property:function(t,e){return arguments.length>1?this.each((null==e?z:"function"==typeof e?R:F)(t,e)):this.node()[t]},classed:function(t,e){var n=X(t+"");if(arguments.length<2){for(var r=q(this.node()),i=-1,o=n.length;++i<o;)if(!r.contains(n[i]))return!1;return!0}return this.each(("function"==typeof e?W:e?$:G)(n,e))},text:function(t){return arguments.length?this.each(null==t?U:("function"==typeof t?J:K)(t)):this.node().textContent},html:function(t){return arguments.length?this.each(null==t?Z:("function"==typeof t?et:tt)(t)):this.node().innerHTML},raise:function(){return this.each(nt)},lower:function(){return this.each(rt)},append:function(t){var e="function"==typeof t?t:at(t);return this.select((function(){return this.appendChild(e.apply(this,arguments))}))},insert:function(t,e){var n="function"==typeof t?t:at(t),r=null==e?st:"function"==typeof e?e:u(e);return this.select((function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)}))},remove:function(){return this.each(ut)},clone:function(t){return this.select(t?ct:lt)},datum:function(t){return arguments.length?this.property("__data__",t):this.node().__data__},on:function(t,e,n){var r,i,o=ht(t+""),a=o.length;if(!(arguments.length<2)){for(s=e?pt:ft,r=0;r<a;++r)this.each(s(o[r],e,n));return this}var s=this.node().__on;if(s)for(var u,l=0,c=s.length;l<c;++l)for(r=0,u=s[l];r<a;++r)if((i=o[r]).type===u.type&&i.name===u.name)return u.value},dispatch:function(t,e){return this.each(("function"==typeof e?vt:gt)(t,e))},[Symbol.iterator]:function*(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var r,i=t[e],o=0,a=i.length;o<a;++o)(r=i[o])&&(yield r)}};var wt=bt;function _t(t){return"string"==typeof t?new mt([[document.querySelector(t)]],[document.documentElement]):new mt([[t]],yt)}var kt={value:()=>{}};function xt(){for(var t,e=0,n=arguments.length,r={};e<n;++e){if(!(t=arguments[e]+"")||t in r||/[\s.]/.test(t))throw new Error("illegal type: "+t);r[t]=[]}return new At(r)}function At(t){this._=t}function Et(t,e){return t.trim().split(/^|\s+/).map((function(t){var n="",r=t.indexOf(".");if(r>=0&&(n=t.slice(r+1),t=t.slice(0,r)),t&&!e.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:n}}))}function Pt(t,e){for(var n,r=0,i=t.length;r<i;++r)if((n=t[r]).name===e)return n.value}function St(t,e,n){for(var r=0,i=t.length;r<i;++r)if(t[r].name===e){t[r]=kt,t=t.slice(0,r).concat(t.slice(r+1));break}return null!=n&&t.push({name:e,value:n}),t}At.prototype=xt.prototype={constructor:At,on:function(t,e){var n,r=this._,i=Et(t+"",r),o=-1,a=i.length;if(!(arguments.length<2)){if(null!=e&&"function"!=typeof e)throw new Error("invalid callback: "+e);for(;++o<a;)if(n=(t=i[o]).type)r[n]=St(r[n],t.name,e);else if(null==e)for(n in r)r[n]=St(r[n],t.name,null);return this}for(;++o<a;)if((n=(t=i[o]).type)&&(n=Pt(r[n],t.name)))return n},copy:function(){var t={},e=this._;for(var n in e)t[n]=e[n].slice();return new At(t)},call:function(t,e){if((n=arguments.length-2)>0)for(var n,r,i=new Array(n),o=0;o<n;++o)i[o]=arguments[o+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(o=0,n=(r=this._[t]).length;o<n;++o)r[o].value.apply(e,i)},apply:function(t,e,n){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var r=this._[t],i=0,o=r.length;i<o;++i)r[i].value.apply(e,n)}};var Mt,Ot,Ct=xt,Nt=0,Lt=0,jt=0,Dt=0,Bt=0,Ht=0,It="object"==typeof performance&&performance.now?performance:Date,Tt="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function zt(){return Bt||(Tt(Ft),Bt=It.now()+Ht)}function Ft(){Bt=0}function Rt(){this._call=this._time=this._next=null}function Xt(t,e,n){var r=new Rt;return r.restart(t,e,n),r}function qt(){Bt=(Dt=It.now())+Ht,Nt=Lt=0;try{!function(){zt(),++Nt;for(var t,e=Mt;e;)(t=Bt-e._time)>=0&&e._call.call(null,t),e=e._next;--Nt}()}finally{Nt=0,function(){for(var t,e,n=Mt,r=1/0;n;)n._call?(r>n._time&&(r=n._time),t=n,n=n._next):(e=n._next,n._next=null,n=t?t._next=e:Mt=e);Ot=t,Yt(r)}(),Bt=0}}function Vt(){var t=It.now(),e=t-Dt;e>1e3&&(Ht-=e,Dt=t)}function Yt(t){Nt||(Lt&&(Lt=clearTimeout(Lt)),t-Bt>24?(t<1/0&&(Lt=setTimeout(qt,t-It.now()-Ht)),jt&&(jt=clearInterval(jt))):(jt||(Dt=It.now(),jt=setInterval(Vt,1e3)),Nt=1,Tt(qt)))}function Qt(t,e,n){var r=new Rt;return e=null==e?0:+e,r.restart((n=>{r.stop(),t(n+e)}),e,n),r}Rt.prototype=Xt.prototype={constructor:Rt,restart:function(t,e,n){if("function"!=typeof t)throw new TypeError("callback is not a function");n=(null==n?zt():+n)+(null==e?0:+e),this._next||Ot===this||(Ot?Ot._next=this:Mt=this,Ot=this),this._call=t,this._time=n,Yt()},stop:function(){this._call&&(this._call=null,this._time=1/0,Yt())}};var $t=Ct("start","end","cancel","interrupt"),Gt=[];function Wt(t,e,n,r,i,o){var a=t.__transition;if(a){if(n in a)return}else t.__transition={};!function(t,e,n){var r,i=t.__transition;function o(u){var l,c,h,f;if(1!==n.state)return s();for(l in i)if((f=i[l]).name===n.name){if(3===f.state)return Qt(o);4===f.state?(f.state=6,f.timer.stop(),f.on.call("interrupt",t,t.__data__,f.index,f.group),delete i[l]):+l<e&&(f.state=6,f.timer.stop(),f.on.call("cancel",t,t.__data__,f.index,f.group),delete i[l])}if(Qt((function(){3===n.state&&(n.state=4,n.timer.restart(a,n.delay,n.time),a(u))})),n.state=2,n.on.call("start",t,t.__data__,n.index,n.group),2===n.state){for(n.state=3,r=new Array(h=n.tween.length),l=0,c=-1;l<h;++l)(f=n.tween[l].value.call(t,t.__data__,n.index,n.group))&&(r[++c]=f);r.length=c+1}}function a(e){for(var i=e<n.duration?n.ease.call(null,e/n.duration):(n.timer.restart(s),n.state=5,1),o=-1,a=r.length;++o<a;)r[o].call(t,i);5===n.state&&(n.on.call("end",t,t.__data__,n.index,n.group),s())}function s(){for(var r in n.state=6,n.timer.stop(),delete i[e],i)return;delete t.__transition}i[e]=n,n.timer=Xt((function(t){n.state=1,n.timer.restart(o,n.delay,n.time),n.delay<=t&&o(t-n.delay)}),0,n.time)}(t,n,{name:e,index:r,group:i,on:$t,tween:Gt,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:0})}function Ut(t,e){var n=Jt(t,e);if(n.state>0)throw new Error("too late; already scheduled");return n}function Kt(t,e){var n=Jt(t,e);if(n.state>3)throw new Error("too late; already running");return n}function Jt(t,e){var n=t.__transition;if(!n||!(n=n[e]))throw new Error("transition not found");return n}function Zt(t,e){return t=+t,e=+e,function(n){return t*(1-n)+e*n}}var te,ee=180/Math.PI,ne={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function re(t,e,n,r,i,o){var a,s,u;return(a=Math.sqrt(t*t+e*e))&&(t/=a,e/=a),(u=t*n+e*r)&&(n-=t*u,r-=e*u),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,u/=s),t*r<e*n&&(t=-t,e=-e,u=-u,a=-a),{translateX:i,translateY:o,rotate:Math.atan2(e,t)*ee,skewX:Math.atan(u)*ee,scaleX:a,scaleY:s}}function ie(t,e,n,r){function i(t){return t.length?t.pop()+" ":""}return function(o,a){var s=[],u=[];return o=t(o),a=t(a),function(t,r,i,o,a,s){if(t!==i||r!==o){var u=a.push("translate(",null,e,null,n);s.push({i:u-4,x:Zt(t,i)},{i:u-2,x:Zt(r,o)})}else(i||o)&&a.push("translate("+i+e+o+n)}(o.translateX,o.translateY,a.translateX,a.translateY,s,u),function(t,e,n,o){t!==e?(t-e>180?e+=360:e-t>180&&(t+=360),o.push({i:n.push(i(n)+"rotate(",null,r)-2,x:Zt(t,e)})):e&&n.push(i(n)+"rotate("+e+r)}(o.rotate,a.rotate,s,u),function(t,e,n,o){t!==e?o.push({i:n.push(i(n)+"skewX(",null,r)-2,x:Zt(t,e)}):e&&n.push(i(n)+"skewX("+e+r)}(o.skewX,a.skewX,s,u),function(t,e,n,r,o,a){if(t!==n||e!==r){var s=o.push(i(o)+"scale(",null,",",null,")");a.push({i:s-4,x:Zt(t,n)},{i:s-2,x:Zt(e,r)})}else 1===n&&1===r||o.push(i(o)+"scale("+n+","+r+")")}(o.scaleX,o.scaleY,a.scaleX,a.scaleY,s,u),o=a=null,function(t){for(var e,n=-1,r=u.length;++n<r;)s[(e=u[n]).i]=e.x(t);return s.join("")}}}var oe=ie((function(t){const e=new("function"==typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?ne:re(e.a,e.b,e.c,e.d,e.e,e.f)}),"px, ","px)","deg)"),ae=ie((function(t){return null==t?ne:(te||(te=document.createElementNS("http://www.w3.org/2000/svg","g")),te.setAttribute("transform",t),(t=te.transform.baseVal.consolidate())?re((t=t.matrix).a,t.b,t.c,t.d,t.e,t.f):ne)}),", ",")",")");function se(t,e){var n,r;return function(){var i=Kt(this,t),o=i.tween;if(o!==n)for(var a=0,s=(r=n=o).length;a<s;++a)if(r[a].name===e){(r=r.slice()).splice(a,1);break}i.tween=r}}function ue(t,e,n){var r,i;if("function"!=typeof n)throw new Error;return function(){var o=Kt(this,t),a=o.tween;if(a!==r){i=(r=a).slice();for(var s={name:e,value:n},u=0,l=i.length;u<l;++u)if(i[u].name===e){i[u]=s;break}u===l&&i.push(s)}o.tween=i}}function le(t,e,n){var r=t._id;return t.each((function(){var t=Kt(this,r);(t.value||(t.value={}))[e]=n.apply(this,arguments)})),function(t){return Jt(t,r).value[e]}}function ce(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function he(t,e){var n=Object.create(t.prototype);for(var r in e)n[r]=e[r];return n}function fe(){}var pe=.7,de=1/pe,ge="\\s*([+-]?\\d+)\\s*",ve="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",ye="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",me=/^#([0-9a-f]{3,8})$/,be=new RegExp("^rgb\\("+[ge,ge,ge]+"\\)$"),we=new RegExp("^rgb\\("+[ye,ye,ye]+"\\)$"),_e=new RegExp("^rgba\\("+[ge,ge,ge,ve]+"\\)$"),ke=new RegExp("^rgba\\("+[ye,ye,ye,ve]+"\\)$"),xe=new RegExp("^hsl\\("+[ve,ye,ye]+"\\)$"),Ae=new RegExp("^hsla\\("+[ve,ye,ye,ve]+"\\)$"),Ee={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function Pe(){return this.rgb().formatHex()}function Se(){return this.rgb().formatRgb()}function Me(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=me.exec(t))?(n=e[1].length,e=parseInt(e[1],16),6===n?Oe(e):3===n?new je(e>>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===n?Ce(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===n?Ce(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=be.exec(t))?new je(e[1],e[2],e[3],1):(e=we.exec(t))?new je(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=_e.exec(t))?Ce(e[1],e[2],e[3],e[4]):(e=ke.exec(t))?Ce(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=xe.exec(t))?Ie(e[1],e[2]/100,e[3]/100,1):(e=Ae.exec(t))?Ie(e[1],e[2]/100,e[3]/100,e[4]):Ee.hasOwnProperty(t)?Oe(Ee[t]):"transparent"===t?new je(NaN,NaN,NaN,0):null}function Oe(t){return new je(t>>16&255,t>>8&255,255&t,1)}function Ce(t,e,n,r){return r<=0&&(t=e=n=NaN),new je(t,e,n,r)}function Ne(t){return t instanceof fe||(t=Me(t)),t?new je((t=t.rgb()).r,t.g,t.b,t.opacity):new je}function Le(t,e,n,r){return 1===arguments.length?Ne(t):new je(t,e,n,null==r?1:r)}function je(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}function De(){return"#"+He(this.r)+He(this.g)+He(this.b)}function Be(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?")":", "+t+")")}function He(t){return((t=Math.max(0,Math.min(255,Math.round(t)||0)))<16?"0":"")+t.toString(16)}function Ie(t,e,n,r){return r<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new ze(t,e,n,r)}function Te(t){if(t instanceof ze)return new ze(t.h,t.s,t.l,t.opacity);if(t instanceof fe||(t=Me(t)),!t)return new ze;if(t instanceof ze)return t;var e=(t=t.rgb()).r/255,n=t.g/255,r=t.b/255,i=Math.min(e,n,r),o=Math.max(e,n,r),a=NaN,s=o-i,u=(o+i)/2;return s?(a=e===o?(n-r)/s+6*(n<r):n===o?(r-e)/s+2:(e-n)/s+4,s/=u<.5?o+i:2-o-i,a*=60):s=u>0&&u<1?0:a,new ze(a,s,u,t.opacity)}function ze(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}function Fe(t,e,n){return 255*(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)}function Re(t,e,n,r,i){var o=t*t,a=o*t;return((1-3*t+3*o-a)*e+(4-6*o+3*a)*n+(1+3*t+3*o-3*a)*r+a*i)/6}ce(fe,Me,{copy:function(t){return Object.assign(new this.constructor,this,t)},displayable:function(){return this.rgb().displayable()},hex:Pe,formatHex:Pe,formatHsl:function(){return Te(this).formatHsl()},formatRgb:Se,toString:Se}),ce(je,Le,he(fe,{brighter:function(t){return t=null==t?de:Math.pow(de,t),new je(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?pe:Math.pow(pe,t),new je(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:De,formatHex:De,formatRgb:Be,toString:Be})),ce(ze,(function(t,e,n,r){return 1===arguments.length?Te(t):new ze(t,e,n,null==r?1:r)}),he(fe,{brighter:function(t){return t=null==t?de:Math.pow(de,t),new ze(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?pe:Math.pow(pe,t),new ze(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*e,i=2*n-r;return new je(Fe(t>=240?t-240:t+120,i,r),Fe(t,i,r),Fe(t<120?t+240:t-120,i,r),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===t?")":", "+t+")")}}));var Xe=t=>()=>t;function qe(t,e){var n=e-t;return n?function(t,e){return function(n){return t+n*e}}(t,n):Xe(isNaN(t)?e:t)}var Ve=function t(e){var n=function(t){return 1==(t=+t)?qe:function(e,n){return n-e?function(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(r){return Math.pow(t+r*e,n)}}(e,n,t):Xe(isNaN(e)?n:e)}}(e);function r(t,e){var r=n((t=Le(t)).r,(e=Le(e)).r),i=n(t.g,e.g),o=n(t.b,e.b),a=qe(t.opacity,e.opacity);return function(e){return t.r=r(e),t.g=i(e),t.b=o(e),t.opacity=a(e),t+""}}return r.gamma=t,r}(1);function Ye(t){return function(e){var n,r,i=e.length,o=new Array(i),a=new Array(i),s=new Array(i);for(n=0;n<i;++n)r=Le(e[n]),o[n]=r.r||0,a[n]=r.g||0,s[n]=r.b||0;return o=t(o),a=t(a),s=t(s),r.opacity=1,function(t){return r.r=o(t),r.g=a(t),r.b=s(t),r+""}}}Ye((function(t){var e=t.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,e-1):Math.floor(n*e),i=t[r],o=t[r+1],a=r>0?t[r-1]:2*i-o,s=r<e-1?t[r+2]:2*o-i;return Re((n-r/e)*e,a,i,o,s)}})),Ye((function(t){var e=t.length;return function(n){var r=Math.floor(((n%=1)<0?++n:n)*e),i=t[(r+e-1)%e],o=t[r%e],a=t[(r+1)%e],s=t[(r+2)%e];return Re((n-r/e)*e,i,o,a,s)}}));var Qe=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,$e=new RegExp(Qe.source,"g");function Ge(t,e){var n,r,i,o=Qe.lastIndex=$e.lastIndex=0,a=-1,s=[],u=[];for(t+="",e+="";(n=Qe.exec(t))&&(r=$e.exec(e));)(i=r.index)>o&&(i=e.slice(o,i),s[a]?s[a]+=i:s[++a]=i),(n=n[0])===(r=r[0])?s[a]?s[a]+=r:s[++a]=r:(s[++a]=null,u.push({i:a,x:Zt(n,r)})),o=$e.lastIndex;return o<e.length&&(i=e.slice(o),s[a]?s[a]+=i:s[++a]=i),s.length<2?u[0]?function(t){return function(e){return t(e)+""}}(u[0].x):function(t){return function(){return t}}(e):(e=u.length,function(t){for(var n,r=0;r<e;++r)s[(n=u[r]).i]=n.x(t);return s.join("")})}function We(t,e){var n;return("number"==typeof e?Zt:e instanceof Me?Ve:(n=Me(e))?(e=n,Ve):Ge)(t,e)}function Ue(t){return function(){this.removeAttribute(t)}}function Ke(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Je(t,e,n){var r,i,o=n+"";return function(){var a=this.getAttribute(t);return a===o?null:a===r?i:i=e(r=a,n)}}function Ze(t,e,n){var r,i,o=n+"";return function(){var a=this.getAttributeNS(t.space,t.local);return a===o?null:a===r?i:i=e(r=a,n)}}function tn(t,e,n){var r,i,o;return function(){var a,s,u=n(this);if(null!=u)return(a=this.getAttribute(t))===(s=u+"")?null:a===r&&s===i?o:(i=s,o=e(r=a,u));this.removeAttribute(t)}}function en(t,e,n){var r,i,o;return function(){var a,s,u=n(this);if(null!=u)return(a=this.getAttributeNS(t.space,t.local))===(s=u+"")?null:a===r&&s===i?o:(i=s,o=e(r=a,u));this.removeAttributeNS(t.space,t.local)}}function nn(t,e){return function(n){this.setAttribute(t,e.call(this,n))}}function rn(t,e){return function(n){this.setAttributeNS(t.space,t.local,e.call(this,n))}}function on(t,e){var n,r;function i(){var i=e.apply(this,arguments);return i!==r&&(n=(r=i)&&rn(t,i)),n}return i._value=e,i}function an(t,e){var n,r;function i(){var i=e.apply(this,arguments);return i!==r&&(n=(r=i)&&nn(t,i)),n}return i._value=e,i}function sn(t,e){return function(){Ut(this,t).delay=+e.apply(this,arguments)}}function un(t,e){return e=+e,function(){Ut(this,t).delay=e}}function ln(t,e){return function(){Kt(this,t).duration=+e.apply(this,arguments)}}function cn(t,e){return e=+e,function(){Kt(this,t).duration=e}}function hn(t,e){if("function"!=typeof e)throw new Error;return function(){Kt(this,t).ease=e}}function fn(t,e,n){var r,i,o=function(t){return(t+"").trim().split(/^|\s+/).every((function(t){var e=t.indexOf(".");return e>=0&&(t=t.slice(0,e)),!t||"start"===t}))}(e)?Ut:Kt;return function(){var a=o(this,t),s=a.on;s!==r&&(i=(r=s).copy()).on(e,n),a.on=i}}var pn=wt.prototype.constructor;function dn(t){return function(){this.style.removeProperty(t)}}function gn(t,e,n){return function(r){this.style.setProperty(t,e.call(this,r),n)}}function vn(t,e,n){var r,i;function o(){var o=e.apply(this,arguments);return o!==i&&(r=(i=o)&&gn(t,o,n)),r}return o._value=e,o}function yn(t){return function(e){this.textContent=t.call(this,e)}}function mn(t){var e,n;function r(){var r=t.apply(this,arguments);return r!==n&&(e=(n=r)&&yn(r)),e}return r._value=t,r}var bn=0;function wn(t,e,n,r){this._groups=t,this._parents=e,this._name=n,this._id=r}function _n(){return++bn}var kn=wt.prototype;wn.prototype=function(t){return wt().transition(t)}.prototype={constructor:wn,select:function(t){var e=this._name,n=this._id;"function"!=typeof t&&(t=u(t));for(var r=this._groups,i=r.length,o=new Array(i),a=0;a<i;++a)for(var s,l,c=r[a],h=c.length,f=o[a]=new Array(h),p=0;p<h;++p)(s=c[p])&&(l=t.call(s,s.__data__,p,c))&&("__data__"in s&&(l.__data__=s.__data__),f[p]=l,Wt(f[p],e,n,p,f,Jt(s,n)));return new wn(o,this._parents,e,n)},selectAll:function(t){var e=this._name,n=this._id;"function"!=typeof t&&(t=h(t));for(var r=this._groups,i=r.length,o=[],a=[],s=0;s<i;++s)for(var u,l=r[s],c=l.length,f=0;f<c;++f)if(u=l[f]){for(var p,d=t.call(u,u.__data__,f,l),g=Jt(u,n),v=0,y=d.length;v<y;++v)(p=d[v])&&Wt(p,e,n,v,d,g);o.push(d),a.push(u)}return new wn(o,a,e,n)},filter:function(t){"function"!=typeof t&&(t=f(t));for(var e=this._groups,n=e.length,r=new Array(n),i=0;i<n;++i)for(var o,a=e[i],s=a.length,u=r[i]=[],l=0;l<s;++l)(o=a[l])&&t.call(o,o.__data__,l,a)&&u.push(o);return new wn(r,this._parents,this._name,this._id)},merge:function(t){if(t._id!==this._id)throw new Error;for(var e=this._groups,n=t._groups,r=e.length,i=n.length,o=Math.min(r,i),a=new Array(r),s=0;s<o;++s)for(var u,l=e[s],c=n[s],h=l.length,f=a[s]=new Array(h),p=0;p<h;++p)(u=l[p]||c[p])&&(f[p]=u);for(;s<r;++s)a[s]=e[s];return new wn(a,this._parents,this._name,this._id)},selection:function(){return new pn(this._groups,this._parents)},transition:function(){for(var t=this._name,e=this._id,n=_n(),r=this._groups,i=r.length,o=0;o<i;++o)for(var a,s=r[o],u=s.length,l=0;l<u;++l)if(a=s[l]){var c=Jt(a,e);Wt(a,t,n,l,s,{time:c.time+c.delay+c.duration,delay:0,duration:c.duration,ease:c.ease})}return new wn(r,this._parents,t,n)},call:kn.call,nodes:kn.nodes,node:kn.node,size:kn.size,empty:kn.empty,each:kn.each,on:function(t,e){var n=this._id;return arguments.length<2?Jt(this.node(),n).on.on(t):this.each(fn(n,t,e))},attr:function(t,e){var n=S(t),r="transform"===n?ae:We;return this.attrTween(t,"function"==typeof e?(n.local?en:tn)(n,r,le(this,"attr."+t,e)):null==e?(n.local?Ke:Ue)(n):(n.local?Ze:Je)(n,r,e))},attrTween:function(t,e){var n="attr."+t;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(null==e)return this.tween(n,null);if("function"!=typeof e)throw new Error;var r=S(t);return this.tween(n,(r.local?on:an)(r,e))},style:function(t,e,n){var r="transform"==(t+="")?oe:We;return null==e?this.styleTween(t,function(t,e){var n,r,i;return function(){var o=T(this,t),a=(this.style.removeProperty(t),T(this,t));return o===a?null:o===n&&a===r?i:i=e(n=o,r=a)}}(t,r)).on("end.style."+t,dn(t)):"function"==typeof e?this.styleTween(t,function(t,e,n){var r,i,o;return function(){var a=T(this,t),s=n(this),u=s+"";return null==s&&(this.style.removeProperty(t),u=s=T(this,t)),a===u?null:a===r&&u===i?o:(i=u,o=e(r=a,s))}}(t,r,le(this,"style."+t,e))).each(function(t,e){var n,r,i,o,a="style."+e,s="end."+a;return function(){var u=Kt(this,t),l=u.on,c=null==u.value[a]?o||(o=dn(e)):void 0;l===n&&i===c||(r=(n=l).copy()).on(s,i=c),u.on=r}}(this._id,t)):this.styleTween(t,function(t,e,n){var r,i,o=n+"";return function(){var a=T(this,t);return a===o?null:a===r?i:i=e(r=a,n)}}(t,r,e),n).on("end.style."+t,null)},styleTween:function(t,e,n){var r="style."+(t+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==e)return this.tween(r,null);if("function"!=typeof e)throw new Error;return this.tween(r,vn(t,e,null==n?"":n))},text:function(t){return this.tween("text","function"==typeof t?function(t){return function(){var e=t(this);this.textContent=null==e?"":e}}(le(this,"text",t)):function(t){return function(){this.textContent=t}}(null==t?"":t+""))},textTween:function(t){var e="text";if(arguments.length<1)return(e=this.tween(e))&&e._value;if(null==t)return this.tween(e,null);if("function"!=typeof t)throw new Error;return this.tween(e,mn(t))},remove:function(){return this.on("end.remove",function(t){return function(){var e=this.parentNode;for(var n in this.__transition)if(+n!==t)return;e&&e.removeChild(this)}}(this._id))},tween:function(t,e){var n=this._id;if(t+="",arguments.length<2){for(var r,i=Jt(this.node(),n).tween,o=0,a=i.length;o<a;++o)if((r=i[o]).name===t)return r.value;return null}return this.each((null==e?se:ue)(n,t,e))},delay:function(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?sn:un)(e,t)):Jt(this.node(),e).delay},duration:function(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?ln:cn)(e,t)):Jt(this.node(),e).duration},ease:function(t){var e=this._id;return arguments.length?this.each(hn(e,t)):Jt(this.node(),e).ease},easeVarying:function(t){if("function"!=typeof t)throw new Error;return this.each(function(t,e){return function(){var n=e.apply(this,arguments);if("function"!=typeof n)throw new Error;Kt(this,t).ease=n}}(this._id,t))},end:function(){var t,e,n=this,r=n._id,i=n.size();return new Promise((function(o,a){var s={value:a},u={value:function(){0==--i&&o()}};n.each((function(){var n=Kt(this,r),i=n.on;i!==t&&((e=(t=i).copy())._.cancel.push(s),e._.interrupt.push(s),e._.end.push(u)),n.on=e})),0===i&&o()}))},[Symbol.iterator]:kn[Symbol.iterator]};var xn={time:null,delay:0,duration:250,ease:function(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}};function An(t,e){for(var n;!(n=t.__transition)||!(n=n[e]);)if(!(t=t.parentNode))throw new Error(`transition ${e} not found`);return n}function En(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}wt.prototype.interrupt=function(t){return this.each((function(){!function(t,e){var n,r,i,o=t.__transition,a=!0;if(o){for(i in e=null==e?null:e+"",o)(n=o[i]).name===e?(r=n.state>2&&n.state<5,n.state=6,n.timer.stop(),n.on.call(r?"interrupt":"cancel",t,t.__data__,n.index,n.group),delete o[i]):a=!1;a&&delete t.__transition}}(this,t)}))},wt.prototype.transition=function(t){var e,n;t instanceof wn?(e=t._id,t=t._name):(e=_n(),(n=xn).time=zt(),t=null==t?null:t+"");for(var r=this._groups,i=r.length,o=0;o<i;++o)for(var a,s=r[o],u=s.length,l=0;l<u;++l)(a=s[l])&&Wt(a,t,e,l,s,n||An(a,e));return new wn(r,this._parents,t,e)};var Pn=function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.hexExpression=/^#([0-9a-f]{3}|[0-9a-f]{6})$/i,this.instanceId=null,this.labelFill=null,this.scale=null}var e,n;return e=t,(n=[{key:"setInstanceId",value:function(t){this.instanceId=t}},{key:"setLabelFill",value:function(t){this.labelFill=t}},{key:"setScale",value:function(t){this.scale=t}},{key:"getBlockFill",value:function(t,e,n){var r=this.getBlockRawFill(t,e);return{raw:r,actual:this.getBlockActualFill(r,e,n)}}},{key:"getBlockRawFill",value:function(t,e){return this.hexExpression.test(t)?t:Array.isArray(this.scale)?this.scale[e]:this.scale(e)}},{key:"getBlockActualFill",value:function(t,e,n){return"solid"===n?t:"url(#".concat(this.getGradientId(e),")")}},{key:"getGradientId",value:function(t){return"".concat(this.instanceId,"-gradient-").concat(t)}},{key:"getLabelColor",value:function(t){return this.hexExpression.test(t)?t:this.labelFill}},{key:"shade",value:function(t,e){var n=this.hexToRgb(t),r=n.R,i=n.G,o=n.B,a=e<0?0:255,s=e<0?-1*e:e,u=16777216+65536*(Math.round((a-r)*s)+r)+256*(Math.round((a-i)*s)+i)+(Math.round((a-o)*s)+o);return"#".concat(u.toString(16).slice(1))}},{key:"hexToRgb",value:function(t){var e=t.slice(1);3===e.length&&(e=this.expandHex(e));var n=parseInt(e,16);return{R:n>>16,G:n>>8&255,B:255&n}}},{key:"expandHex",value:function(t){return t[0]+t[0]+t[1]+t[1]+t[2]+t[2]}}])&&En(e.prototype,n),t}();function Sn(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}var Mn=function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t)}var e,n;return e=t,(n=[{key:"getFormatter",value:function(t){var e=this;return"function"==typeof t?t:function(n,r,i){return e.stringFormatter(n,r,i,t)}}},{key:"format",value:function(t,e){var n=t.label,r=t.value,i=t.formattedValue;return e(n,r,void 0===i?null:i)}},{key:"stringFormatter",value:function(t,e,n,r){var i=n;return null===n&&(i=this.getDefaultFormattedValue(e)),r.split("{l}").join(t).split("{v}").join(e).split("{f}").join(i)}},{key:"getDefaultFormattedValue",value:function(t){return t.toLocaleString()}}])&&Sn(e.prototype,n),t}();function On(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}var Cn=function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t)}var e,n;return e=t,(n=[{key:"plot",value:function(t){var e="";return t.forEach((function(t){e+="".concat(t[0]).concat(t[1],",").concat(t[2]," ")})),e.replace(/ +/g," ").trim()}},{key:"makeCurvedPaths",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=this.makeBezierPoints(t);return e?this.makeBezierPath(n,t.ratio):this.makeBezierPath(n)}},{key:"makeBezierPoints",value:function(t){var e=t.centerX,n=t.prevLeftX,r=t.prevRightX,i=t.prevHeight,o=t.nextLeftX,a=t.nextRightX,s=t.nextHeight,u=t.curveHeight;return{p00:{x:n,y:i},p01:{x:e,y:i+u/2},p02:{x:r,y:i},p10:{x:o,y:s},p11:{x:e,y:s+u},p12:{x:a,y:s}}}},{key:"makeBezierPath",value:function(t){var e=t.p00,n=t.p01,r=t.p02,i=t.p10,o=t.p11,a=t.p12,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,u=this.getQuadraticBezierCurve(e,n,r,s),l=this.getQuadraticBezierCurve(i,o,a,s);return[[u.p0.x,u.p0.y,"M"],[u.p1.x,u.p1.y,"Q"],[u.p2.x,u.p2.y,""],[l.p2.x,l.p2.y,"L"],[l.p2.x,l.p2.y,"M"],[l.p1.x,l.p1.y,"Q"],[l.p0.x,l.p0.y,""],[u.p0.x,u.p0.y,"L"]]}},{key:"getQuadraticBezierCurve",value:function(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;return{p0:t,p1:{x:this.getLinearInterpolation(t,e,r,"x"),y:this.getLinearInterpolation(t,e,r,"y")},p2:{x:this.getQuadraticInterpolation(t,e,n,r,"x"),y:this.getQuadraticInterpolation(t,e,n,r,"y")}}}},{key:"getLinearInterpolation",value:function(t,e,n,r){return t[r]+n*(e[r]-t[r])}},{key:"getQuadraticInterpolation",value:function(t,e,n,r,i){return Math.pow(1-r,2)*t[i]+2*(1-r)*r*e[i]+Math.pow(r,2)*n[i]}},{key:"makeStraightPaths",value:function(t){var e=t.prevLeftX,n=t.prevRightX,r=t.prevHeight,i=t.nextLeftX,o=t.nextRightX,a=t.nextHeight,s=t.ratio,u=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(u){var l=n-e,c=o-i,h=l*(s||0)+e,f=c*(s||0)+i;return[[e,r,"M"],[h=Math.min(h,l),r,"L"],[f=Math.min(f,c),a,"L"],[i,a,"L"],[e,r,"L"]]}return[[e,r,"M"],[n,r,"L"],[o,a,"L"],[i,a,"L"],[e,r,"L"]]}}])&&On(e.prototype,n),t}();function Nn(t){return(Nn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function Ln(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}var jn=function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t)}var e,n;return e=t,n=[{key:"isExtendableObject",value:function(t){return"object"===Nn(t)&&null!==t&&!Array.isArray(t)}},{key:"extend",value:function(e,n){var r={};return Object.keys(e).length>0&&(r=t.extend({},e)),Object.keys(n).forEach((function(i){t.isExtendableObject(n[i])?t.isExtendableObject(e[i])?r[i]=t.extend(e[i],n[i]):r[i]=t.extend({},n[i]):r[i]=n[i]})),r}},{key:"convertLegacyBlock",value:function(e){return{label:e[0],value:t.getRawBlockCount(e),formattedValue:Array.isArray(e[1])?e[1][1]:null,backgroundColor:e[2],labelColor:e[3]}}},{key:"getRawBlockCount",value:function(t){return Array.isArray(t)?Array.isArray(t[1])?t[1][0]:t[1]:t.value}}],null&&Ln(e.prototype,null),n&&Ln(e,n),t}();function Dn(t){return function(t){if(Array.isArray(t))return Hn(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||Bn(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Bn(t,e){if(t){if("string"==typeof t)return Hn(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Hn(t,e):void 0}}function Hn(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}function In(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function Tn(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?In(Object(n),!0).forEach((function(e){Rn(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):In(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function zn(t){return(zn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function Fn(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function Rn(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var Xn=function(){function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.container=_t(e).node(),this.colorizer=new Pn,this.formatter=new Mn,this.navigator=new Cn,this.id=null,this.onMouseOver=this.onMouseOver.bind(this),this.onMouseOut=this.onMouseOut.bind(this)}var e,n;return e=t,(n=[{key:"destroy",value:function(){var t=_t(this.container);t.selectAll("svg").remove(),t.selectAll("*").remove(),t.text("")}},{key:"draw",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.destroy(),this.initialize(t,e),this.drawOntoDom()}},{key:"initialize",value:function(t,e){this.validateData(t);var n=this.getSettings(e);this.id="d3-funnel-".concat(((t=21)=>{let e="",n=crypto.getRandomValues(new Uint8Array(t));for(;t--;){let r=63&n[t];e+=r<36?r.toString(36):r<62?(r-26).toString(36).toUpperCase():r<63?"_":"-"}return e})()),this.labelFormatter=this.formatter.getFormatter(n.label.format),this.tooltipFormatter=this.formatter.getFormatter(n.tooltip.format),this.colorizer.setInstanceId(this.id),this.colorizer.setLabelFill(n.label.fill),this.colorizer.setScale(n.block.fill.scale),this.settings={width:n.chart.width,height:n.chart.height,bottomWidth:n.chart.width*n.chart.bottomWidth,bottomPinch:n.chart.bottomPinch,isInverted:n.chart.inverted,isCurved:n.chart.curve.enabled,curveHeight:n.chart.curve.height,curveShade:n.chart.curve.shade,addValueOverlay:n.block.barOverlay,animation:n.chart.animate,totalCount:n.chart.totalCount,fillType:n.block.fill.type,hoverEffects:n.block.highlight,dynamicHeight:n.block.dynamicHeight,dynamicSlope:n.block.dynamicSlope,minHeight:n.block.minHeight,label:n.label,tooltip:n.tooltip,onBlockClick:n.events.click.block},this.setBlocks(t)}},{key:"validateData",value:function(t){if(!1===Array.isArray(t))throw new Error("Data must be an array.");if(0===t.length)throw new Error("Data array must contain at least one element.");if("object"!==zn(t[0]))throw new Error("Data array elements must be an object.");if(Array.isArray(t[0])&&t[0].length<2||!1===Array.isArray(t[0])&&(void 0===t[0].label||void 0===t[0].value))throw new Error("Data array elements must contain a label and value.")}},{key:"getSettings",value:function(t){var e=this.getContainerDimensions(),n=this.getDefaultSettings(e),r=jn.extend({},n);return(r=jn.extend(r,t)).chart=Tn(Tn({},r.chart),this.castDimensions(r,e)),r}},{key:"getDefaultSettings",value:function(e){var n=t.defaults;return n.chart=Tn(Tn({},n.chart),e),n}},{key:"getContainerDimensions",value:function(){var t={width:parseFloat(_t(this.container).style("width")),height:parseFloat(_t(this.container).style("height"))};return["width","height"].forEach((function(e){0===t[e]&&delete t[e]})),t}},{key:"castDimensions",value:function(e,n){var r=e.chart,i={};return Object.keys(n).forEach((function(e){var o=r[e],a=n[e];/%$/.test(String(o))?i[e]=parseFloat(o)/100*a:i[e]=o<=0?t.defaults.chart[e]:o})),i}},{key:"setBlocks",value:function(t){var e=this.getTotalCount(t);this.blocks=this.standardizeData(t,e)}},{key:"getTotalCount",value:function(t){return null!==this.settings.totalCount?this.settings.totalCount||0:t.reduce((function(t,e){return t+jn.getRawBlockCount(e)}),0)}},{key:"standardizeData",value:function(t,e){var n=this;return t.map((function(r,i){var o=Array.isArray(r)?jn.convertLegacyBlock(r):r,a=e>0?o.value/e||0:1/t.length;return{index:i,ratio:a,value:o.value,height:n.settings.height*a,fill:n.colorizer.getBlockFill(o.backgroundColor,i,n.settings.fillType),label:{enabled:!o.hideLabel,raw:o.label,formatted:n.formatter.format(o,n.labelFormatter),color:n.colorizer.getLabelColor(o.labelColor)},tooltip:{enabled:o.enabled,formatted:n.formatter.format(o,n.tooltipFormatter)}}}))}},{key:"drawOntoDom",value:function(){this.svg=_t(this.container).append("svg").attr("id",this.id).attr("width",this.settings.width).attr("height",this.settings.height);var t,e,n=(t=this.makePaths(),e=2,function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=t&&("undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"]);if(null!=n){var r,i,o=[],a=!0,s=!1;try{for(n=n.call(t);!(a=(r=n.next()).done)&&(o.push(r.value),!e||o.length!==e);a=!0);}catch(t){s=!0,i=t}finally{try{a||null==n.return||n.return()}finally{if(s)throw i}}return o}}(t,e)||Bn(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}());this.blockPaths=n[0],this.overlayPaths=n[1],"gradient"===this.settings.fillType&&this.defineColorGradients(this.svg),this.settings.isCurved&&this.drawTopOval(this.svg,this.blockPaths),this.drawBlock(0)}},{key:"makePaths",value:function(){var t=this,e=(this.settings.width-this.settings.bottomWidth)/2,n=this.settings.width/2,r=[],i=[];this.dx=this.getDx(e),this.dy=this.getDy();var o=this.dx,a=this.dy,s=0,u=this.settings.width,l=0;this.settings.isInverted&&(s=e,u=this.settings.width-e);var c=0,h=0,f=0;this.settings.isCurved&&(l=this.settings.curveHeight/2);var p=this.settings.height;0!==this.settings.minHeight&&(p=this.settings.height-this.settings.minHeight*this.blocks.length);var d=this.settings.height;this.settings.bottomPinch>0&&this.blocks.forEach((function(e,n){var r=p*e.ratio;0!==t.settings.minHeight&&(r+=t.settings.minHeight),t.settings.isCurved&&(r+=t.settings.curveHeight/t.blocks.length),t.settings.isInverted?n<t.settings.bottomPinch&&(d-=r):n>=t.blocks.length-t.settings.bottomPinch&&(d-=r)}));var g=d/e;return this.blocks.forEach((function(e,d){if(t.settings.dynamicHeight&&(a=p*e.ratio,0!==t.settings.minHeight&&(a+=t.settings.minHeight),t.settings.isCurved&&(a-=t.settings.curveHeight/t.blocks.length),c=(l+a)/g,t.settings.isInverted&&(c=(l+a-t.settings.height)/(-1*g)),0===t.settings.bottomWidth&&d===t.blocks.length-1&&(c=t.settings.width/2,t.settings.isInverted&&(c=0)),t.settings.bottomWidth===t.settings.width&&(c=s),!Number.isNaN(c)&&Number.isFinite(c)||(c=0),o=c-s,t.settings.isInverted&&(o=s-c)),t.settings.dynamicSlope&&!t.settings.isInverted){var v=(t.blocks[d+1]?t.blocks[d+1].value:e.value)/e.value;o=(1-v)*(n-s)}t.settings.bottomPinch>0&&(t.settings.isInverted?(t.settings.dynamicHeight||(o=t.dx),o=d<t.settings.bottomPinch?0:o):d>=t.blocks.length-t.settings.bottomPinch&&(o=0)),c=s+o,h=u-o,f=l+a,t.blocks[d].height=a,t.settings.isInverted&&(c=s-o,h=u+o);var y={centerX:n,prevLeftX:s,prevRightX:u,prevHeight:l,nextLeftX:c,nextRightX:h,nextHeight:f,curveHeight:t.settings.curveHeight,ratio:e.ratio};t.settings.isCurved?(r=[].concat(Dn(r),[t.navigator.makeCurvedPaths(y)]),t.settings.addValueOverlay&&(i=[].concat(Dn(i),[t.navigator.makeCurvedPaths(y,!0)]))):(r=[].concat(Dn(r),[t.navigator.makeStraightPaths(y)]),t.settings.addValueOverlay&&(i=[].concat(Dn(i),[t.navigator.makeStraightPaths(y,!0)]))),s=c,u=h,l=f})),[r,i]}},{key:"getDx",value:function(t){return this.settings.bottomPinch>0?t/(this.blocks.length-this.settings.bottomPinch):t/this.blocks.length}},{key:"getDy",value:function(){return this.settings.isCurved?(this.settings.height-this.settings.curveHeight)/this.blocks.length:this.settings.height/this.blocks.length}},{key:"defineColorGradients",value:function(t){var e=this,n=t.append("defs");this.blocks.forEach((function(t,r){var i=t.fill.raw,o=e.colorizer.shade(i,-.2),a=n.append("linearGradient").attr("id",e.colorizer.getGradientId(r));[[0,o],[40,i],[60,i],[100,o]].forEach((function(t){a.append("stop").attr("offset","".concat(t[0],"%")).attr("style","stop-color: ".concat(t[1]))}))}))}},{key:"drawTopOval",value:function(t,e){var n=this.settings.width/2,r=e[0],i=r[1][1]+this.settings.curveHeight/2,o=this.navigator.plot([["M",r[0][0],r[0][1]],["Q",n,i],[" ",r[2][0],r[2][1]],["M",r[2][0],this.settings.curveHeight/2],["Q",n,0],[" ",r[0][0],this.settings.curveHeight/2]]);t.append("path").attr("fill",this.colorizer.shade(this.blocks[0].fill.raw,this.settings.curveShade)).attr("d",o)}},{key:"drawBlock",value:function(t){var e=this;if(t!==this.blocks.length){var n=this.svg.append("g"),i=this.blocks[t],o=this.getBlockPath(n,t);this.attachData(o,i);var a=null,s=i.fill.actual;this.settings.addValueOverlay&&(a=this.getOverlayPath(n,t),this.attachData(a,i),o.node().setAttribute("pathType","background"),a.node().setAttribute("pathType","foreground"),s=this.colorizer.shade(i.fill.raw,.3)),0!==this.settings.animation?o.transition().duration(this.settings.animation).ease(r).attr("fill",s).attr("d",this.getPathDefinition(t)).on("end",(function(){e.drawBlock(t+1)})):(o.attr("fill",s).attr("d",this.getPathDefinition(t)),this.drawBlock(t+1)),this.settings.addValueOverlay&&(o.attr("stroke",this.blocks[t].fill.raw),0!==this.settings.animation?a.transition().duration(this.settings.animation).ease(r).attr("fill",i.fill.actual).attr("d",this.getOverlayPathDefinition(t)):a.attr("fill",i.fill.actual).attr("d",this.getOverlayPathDefinition(t))),this.settings.hoverEffects&&[o,a].forEach((function(t){t&&t.on("mouseover",e.onMouseOver).on("mouseout",e.onMouseOut)})),null!==this.settings.onBlockClick&&[o,a].forEach((function(t){t&&t.style("cursor","pointer").on("click",e.settings.onBlockClick)})),this.settings.tooltip.enabled&&[o,a].forEach((function(t){t&&(t.node().addEventListener("mouseout",(function(){e.tooltip&&(e.container.removeChild(e.tooltip),e.tooltip=null)})),t.node().addEventListener("mousemove",(function(t){e.tooltip||(e.tooltip=document.createElement("div"),e.tooltip.setAttribute("class","d3-funnel-tooltip"),e.container.appendChild(e.tooltip)),e.tooltip.innerText=i.tooltip.formatted;var n=e.tooltip.offsetWidth,r=e.tooltip.offsetHeight+5,o=e.container.getBoundingClientRect().y+window.scrollY,a=t.pageY-r<o?t.pageY+5:t.pageY-r,s=["display: inline-block","position: absolute","left: ".concat(t.pageX-n/2,"px"),"top: ".concat(a,"px"),"border: 1px solid ".concat(i.fill.raw),"background: rgb(255,255,255,0.75)","padding: 5px 15px","color: #000","font-size: 14px","font-weight: bold","text-align: center","cursor: default","pointer-events: none"];e.tooltip.setAttribute("style",s.join(";"))})))})),this.settings.label.enabled&&i.label.enabled&&this.addBlockLabel(n,t)}}},{key:"getBlockPath",value:function(t,e){var n=t.append("path");return 0!==this.settings.animation&&this.addBeforeTransition(n,e,!1),n}},{key:"getOverlayPath",value:function(t,e){var n=t.append("path");return 0!==this.settings.animation&&this.addBeforeTransition(n,e,!0),n}},{key:"addBeforeTransition",value:function(t,e,n){var r,i,o=n?this.overlayPaths[e]:this.blockPaths[e];r=this.settings.isCurved?this.navigator.plot([["M",o[0][0],o[0][1]],["Q",o[1][0],o[1][1]],[" ",o[2][0],o[2][1]],["L",o[2][0],o[2][1]],["M",o[2][0],o[2][1]],["Q",o[1][0],o[1][1]],[" ",o[0][0],o[0][1]]]):this.navigator.plot([["M",o[0][0],o[0][1]],["L",o[1][0],o[1][1]],["L",o[1][0],o[1][1]],["L",o[0][0],o[0][1]]]),i="solid"===this.settings.fillType&&e>0?this.blocks[e-1].fill.actual:this.blocks[e].fill.actual,t.attr("d",r).attr("fill",i)}},{key:"attachData",value:function(t,e){var n=Tn(Tn({},e),{},{node:t.node()});t.data([n])}},{key:"getPathDefinition",value:function(t){var e=[];return this.blockPaths[t].forEach((function(t){e.push([t[2],t[0],t[1]])})),this.navigator.plot(e)}},{key:"getOverlayPathDefinition",value:function(t){var e=[];return this.overlayPaths[t].forEach((function(t){e.push([t[2],t[0],t[1]])})),this.navigator.plot(e)}},{key:"onMouseOver",value:function(t,e){var n=this;Dn(t.target.parentElement.childNodes).forEach((function(t){"path"===t.nodeName.toLowerCase()&&("foreground"===(t.getAttribute("pathType")||"")?_t(t).attr("fill",n.colorizer.shade(e.fill.raw,-.5)):_t(t).attr("fill",n.colorizer.shade(e.fill.raw,-.2)))}))}},{key:"onMouseOut",value:function(t,e){var n=this;Dn(t.target.parentElement.childNodes).forEach((function(t){if("path"===t.nodeName.toLowerCase())if("background"===(t.getAttribute("pathType")||"")){var r=n.colorizer.shade(e.fill.raw,.3);_t(t).attr("fill",r)}else _t(t).attr("fill",e.fill.actual)}))}},{key:"addBlockLabel",value:function(t,e){var n=this.blockPaths[e],r=this.blocks[e].label.formatted,i=this.blocks[e].label.color,o=this.settings.width/2,a=this.getTextY(n),s=t.append("text").attr("x",o).attr("y",a).attr("fill",i).attr("font-size",this.settings.label.fontSize).attr("text-anchor","middle").attr("dominant-baseline","middle").attr("pointer-events","none");null!==this.settings.label.fontFamily&&s.attr("font-family",this.settings.label.fontFamily),this.addLabelLines(s,r,o)}},{key:"addLabelLines",value:function(t,e,n){var r=e.split("\n"),i=-20*(r.length-1)/2;r.forEach((function(e,r){var o=0===r?i:20;t.append("tspan").attr("x",n).attr("dy",o).text(e)}))}},{key:"getTextY",value:function(t){var e=this.settings,n=e.isCurved,r=e.curveHeight;return n?(t[2][1]+t[3][1])/2+1.5*r/this.blocks.length:(t[1][1]+t[2][1])/2}}])&&Fn(e.prototype,n),t}();Rn(Xn,"defaults",{chart:{width:350,height:400,bottomWidth:1/3,bottomPinch:0,inverted:!1,horizontal:!1,animate:0,curve:{enabled:!1,height:20,shade:-.4},totalCount:null},block:{dynamicHeight:!1,dynamicSlope:!1,barOverlay:!1,fill:{scale:function t(){var e=new Map,n=[],r=[],a=o;function s(t){var i=t+"",s=e.get(i);if(!s){if(a!==o)return a;e.set(i,s=n.push(t))}return r[(s-1)%r.length]}return s.domain=function(t){if(!arguments.length)return n.slice();n=[],e=new Map;for(const r of t){const t=r+"";e.has(t)||e.set(t,n.push(r))}return s},s.range=function(t){return arguments.length?(r=Array.from(t),s):r.slice()},s.unknown=function(t){return arguments.length?(a=t,s):a},s.copy=function(){return t(n,r).unknown(a)},i.apply(s,arguments),s}(a).domain(function(t,e,n){t=+t,e=+e,n=(i=arguments.length)<2?(e=t,t=0,1):i<3?1:+n;for(var r=-1,i=0|Math.max(0,Math.ceil((e-t)/n)),o=new Array(i);++r<i;)o[r]=t+r*n;return o}(0,10)),type:"solid"},minHeight:0,highlight:!1},label:{enabled:!0,fontFamily:null,fontSize:"14px",fill:"#fff",format:"{l}: {f}"},tooltip:{enabled:!1,format:"{l}: {f}"},events:{click:{block:null}}});var qn=Xn},579:function(t,e,n){t.exports=n(745).default}},e={};function n(r){var i=e[r];if(void 0!==i)return i.exports;var o=e[r]={exports:{}};return t[r](o,o.exports,n),o.exports}return n.d=function(t,e){for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n(579)}()}));
@@ -0,0 +1,19 @@
1
+ $(document).ready(function () {
2
+ function add_sortable(selector) {
3
+ $(selector).sortable({
4
+ revert: true,
5
+ opacity: 0.5,
6
+ stop: function (evt, ui) {
7
+ let ids = [];
8
+ $(selector + " .dashboard_item").each(function() {
9
+ ids.push($(this).data("id"));
10
+ });
11
+ ajax_helpers.post_json({"data": {"ajax": "change_placement", 'ids': ids}});
12
+ }
13
+ });
14
+ $(selector).disableSelection();
15
+ }
16
+
17
+ add_sortable(".dashboard_top");
18
+ add_sortable(".dashboard_bottom");
19
+ });
@@ -0,0 +1,31 @@
1
+ # Logs
2
+ logs
3
+ *.log
4
+
5
+ # Runtime data
6
+ pids
7
+ *.pid
8
+ *.seed
9
+
10
+ # Directory for instrumented libs generated by jscoverage/JSCover
11
+ lib-cov
12
+
13
+ # Coverage directory used by tools like istanbul
14
+ coverage
15
+ .nyc_output
16
+
17
+ # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
18
+ .grunt
19
+
20
+ # node-waf configuration
21
+ .lock-wscript
22
+
23
+ # Compiled binary addons (http://nodejs.org/api/addons.html)
24
+ build/Release
25
+
26
+ # Dependency directory
27
+ # https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git
28
+ node_modules
29
+
30
+ # MacOS directory info files
31
+ .DS_Store
@@ -0,0 +1,9 @@
1
+ language: node_js
2
+ node_js:
3
+ - "0.10"
4
+ - "0.12"
5
+ - "4"
6
+ - "6"
7
+ - "7"
8
+ after_script:
9
+ - coveralls < coverage/lcov.info
@@ -0,0 +1,24 @@
1
+
2
+ Copyright (c) 2011 Laura Doktorova
3
+
4
+ Software includes portions from jQote2 Copyright (c) 2010 aefxx,
5
+ http://aefxx.com/ licensed under the MIT license.
6
+
7
+ Permission is hereby granted, free of charge, to any person obtaining
8
+ a copy of this software and associated documentation files (the
9
+ "Software"), to deal in the Software without restriction, including
10
+ without limitation the rights to use, copy, modify, merge, publish,
11
+ distribute, sublicense, and/or sell copies of the Software, and to
12
+ permit persons to whom the Software is furnished to do so, subject to
13
+ the following conditions:
14
+
15
+ The above copyright notice and this permission notice shall be
16
+ included in all copies or substantial portions of the Software.
17
+
18
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
19
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
21
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
22
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
23
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
24
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,90 @@
1
+ # doT
2
+
3
+ Created in search of the fastest and concise JavaScript templating function with emphasis on performance under V8 and nodejs. It shows great performance for both nodejs and browsers.
4
+
5
+ doT.js is fast, small and has no dependencies.
6
+
7
+ [![Build Status](https://travis-ci.org/olado/doT.svg?branch=master)](https://travis-ci.org/olado/doT)
8
+ [![npm version](https://badge.fury.io/js/dot.svg)](https://www.npmjs.com/package/dot)
9
+ [![Coverage Status](https://coveralls.io/repos/github/olado/doT/badge.svg?branch=master)](https://coveralls.io/github/olado/doT?branch=master)
10
+
11
+
12
+ ## Features
13
+ custom delimiters
14
+ runtime evaluation
15
+ runtime interpolation
16
+ compile-time evaluation
17
+ partials support
18
+ conditionals support
19
+ array iterators
20
+ encoding
21
+ control whitespace - strip or preserve
22
+ streaming friendly
23
+ use it as logic-less or with logic, it is up to you
24
+
25
+ ## Docs, live playground and samples
26
+
27
+ http://olado.github.com/doT (todo: update docs with new features added in version 1.0.0)
28
+
29
+ ## New in version 1.0.0
30
+
31
+ ####Added parameters support in partials
32
+
33
+ {{##def.macro:param:
34
+ <div>{{=param.foo}}</div>
35
+ #}}
36
+
37
+ {{#def.macro:myvariable}}
38
+
39
+ ####Node module now supports auto-compilation of dot templates from specified path
40
+
41
+ var dots = require("dot").process({ path: "./views"});
42
+
43
+ This will compile .def, .dot, .jst files found under the specified path.
44
+ Details
45
+ * It ignores sub-directories.
46
+ * Template files can have multiple extensions at the same time.
47
+ * Files with .def extension can be included in other files via {{#def.name}}
48
+ * Files with .dot extension are compiled into functions with the same name and
49
+ can be accessed as renderer.filename
50
+ * Files with .jst extension are compiled into .js files. Produced .js file can be
51
+ loaded as a commonJS, AMD module, or just installed into a global variable (default is set to window.render)
52
+ * All inline defines defined in the .jst file are
53
+ compiled into separate functions and are available via _render.filename.definename
54
+
55
+ Basic usage:
56
+ ```
57
+ var dots = require("dot").process({path: "./views"});
58
+ dots.mytemplate({foo:"hello world"});
59
+ ```
60
+ The above snippet will:
61
+ * Compile all templates in views folder (.dot, .def, .jst)
62
+ * Place .js files compiled from .jst templates into the same folder
63
+ These files can be used with require, i.e. require("./views/mytemplate")
64
+ * Return an object with functions compiled from .dot templates as its properties
65
+ * Render mytemplate template
66
+
67
+ ####CLI tool to compile dot templates into js files
68
+
69
+ ./bin/dot-packer -s examples/views -d out/views
70
+
71
+ ## Example for express
72
+ Many people are using doT with express. I added an example of the best way of doing it examples/express:
73
+
74
+ [doT with express](examples/express)
75
+
76
+ ## Notes
77
+ doU.js is here only so that legacy external tests do not break. Use doT.js.
78
+ doT.js with doT.templateSettings.append=false provides the same performance as doU.js.
79
+
80
+ ## Author
81
+ Laura Doktorova [@olado](http://twitter.com/olado)
82
+
83
+ ## License
84
+ doT is licensed under the MIT License. (See LICENSE-DOT)
85
+
86
+ <p align="center">
87
+ <img src="http://olado.github.io/doT/doT-js-100@2x.png" alt="logo by Kevin Kirchner"/>
88
+ </p>
89
+
90
+ Thank you [@KevinKirchner](https://twitter.com/kevinkirchner) for the logo.
@@ -0,0 +1,52 @@
1
+ #!/usr/bin/env node
2
+ /* Continuation of https://github.com/Katahdin/dot-packer */
3
+
4
+ var program = require('commander'),
5
+ dot = require('../');
6
+
7
+ program
8
+ .version('0.0.1')
9
+ .usage('dottojs')
10
+ .option('-s, --source [value]', 'source folder/file path')
11
+ .option('-d, --dest [value]', 'destination folder')
12
+ .option('-g, --global [value]', 'the global variable to install the templates in',"window.render")
13
+ .option('-p, --package [value]', 'if specified, package all templates from destination folder into specified file')
14
+ .parse(process.argv);
15
+
16
+ if (program.dest) mkdirordie(program.dest);
17
+ if (program.package) {
18
+ var li = program.package.lastIndexOf('/');
19
+ if (li>0) mkdirordie(program.package.substring(0, li));
20
+ }
21
+
22
+ function mkdirordie(path) {
23
+ require("mkdirp")(path, function (err) {
24
+ if (err) {
25
+ console.error(err);
26
+ process.exit(1);
27
+ }
28
+ });
29
+ }
30
+
31
+ var render = dot.process({
32
+ path: program.source,
33
+ destination: program.dest,
34
+ global: program.global
35
+ });
36
+
37
+ if (program.package) {
38
+ console.log("Packaging all files into " + program.package);
39
+ var fs = require("fs");
40
+ var files = [];
41
+ var dest = program.dest || './';
42
+ if (dest[dest.length-1] !== '/') dest += '/';
43
+ var sources = fs.readdirSync(dest);
44
+ for(k = 0; k < sources.length; k++) {
45
+ name = sources[k];
46
+ if (/\.js$/.test(name)) {
47
+ files.push(dest + name);
48
+ }
49
+ }
50
+ var result = require("uglify-js").minify(files);
51
+ fs.writeFileSync(program.package, result.code);
52
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "name": "dot",
3
+ "description": "Concise and fast javascript templating compatible with nodejs and other javascript environments",
4
+ "main": "index.js",
5
+ "authors": [
6
+ "Laura Doktorova <ldoktorova@gmail.com>"
7
+ ],
8
+ "license": "MIT",
9
+ "keywords": [
10
+ "template",
11
+ "fast",
12
+ "simple",
13
+ "templating"
14
+ ],
15
+ "homepage": "https://github.com/olado/doT",
16
+ "ignore": [
17
+ "node_modules",
18
+ "bower_components",
19
+ "test"
20
+ ]
21
+ }
@@ -0,0 +1,141 @@
1
+ // doT.js
2
+ // 2011-2014, Laura Doktorova, https://github.com/olado/doT
3
+ // Licensed under the MIT license.
4
+
5
+ (function() {
6
+ "use strict";
7
+
8
+ var doT = {
9
+ version: "1.0.3",
10
+ templateSettings: {
11
+ evaluate: /\{\{([\s\S]+?(\}?)+)\}\}/g,
12
+ interpolate: /\{\{=([\s\S]+?)\}\}/g,
13
+ encode: /\{\{!([\s\S]+?)\}\}/g,
14
+ use: /\{\{#([\s\S]+?)\}\}/g,
15
+ useParams: /(^|[^\w$])def(?:\.|\[[\'\"])([\w$\.]+)(?:[\'\"]\])?\s*\:\s*([\w$\.]+|\"[^\"]+\"|\'[^\']+\'|\{[^\}]+\})/g,
16
+ define: /\{\{##\s*([\w\.$]+)\s*(\:|=)([\s\S]+?)#\}\}/g,
17
+ defineParams:/^\s*([\w$]+):([\s\S]+)/,
18
+ conditional: /\{\{\?(\?)?\s*([\s\S]*?)\s*\}\}/g,
19
+ iterate: /\{\{~\s*(?:\}\}|([\s\S]+?)\s*\:\s*([\w$]+)\s*(?:\:\s*([\w$]+))?\s*\}\})/g,
20
+ varname: "it",
21
+ strip: true,
22
+ append: true,
23
+ selfcontained: false,
24
+ doNotSkipEncoded: false
25
+ },
26
+ template: undefined, //fn, compile template
27
+ compile: undefined, //fn, for express
28
+ log: true
29
+ }, _globals;
30
+
31
+ doT.encodeHTMLSource = function(doNotSkipEncoded) {
32
+ var encodeHTMLRules = { "&": "&#38;", "<": "&#60;", ">": "&#62;", '"': "&#34;", "'": "&#39;", "/": "&#47;" },
33
+ matchHTML = doNotSkipEncoded ? /[&<>"'\/]/g : /&(?!#?\w+;)|<|>|"|'|\//g;
34
+ return function(code) {
35
+ return code ? code.toString().replace(matchHTML, function(m) {return encodeHTMLRules[m] || m;}) : "";
36
+ };
37
+ };
38
+
39
+ _globals = (function(){ return this || (0,eval)("this"); }());
40
+
41
+ if (typeof module !== "undefined" && module.exports) {
42
+ module.exports = doT;
43
+ } else if (typeof define === "function" && define.amd) {
44
+ define(function(){return doT;});
45
+ } else {
46
+ _globals.doT = doT;
47
+ }
48
+
49
+ var startend = {
50
+ append: { start: "'+(", end: ")+'", startencode: "'+encodeHTML(" },
51
+ split: { start: "';out+=(", end: ");out+='", startencode: "';out+=encodeHTML(" }
52
+ }, skip = /$^/;
53
+
54
+ function resolveDefs(c, block, def) {
55
+ return ((typeof block === "string") ? block : block.toString())
56
+ .replace(c.define || skip, function(m, code, assign, value) {
57
+ if (code.indexOf("def.") === 0) {
58
+ code = code.substring(4);
59
+ }
60
+ if (!(code in def)) {
61
+ if (assign === ":") {
62
+ if (c.defineParams) value.replace(c.defineParams, function(m, param, v) {
63
+ def[code] = {arg: param, text: v};
64
+ });
65
+ if (!(code in def)) def[code]= value;
66
+ } else {
67
+ new Function("def", "def['"+code+"']=" + value)(def);
68
+ }
69
+ }
70
+ return "";
71
+ })
72
+ .replace(c.use || skip, function(m, code) {
73
+ if (c.useParams) code = code.replace(c.useParams, function(m, s, d, param) {
74
+ if (def[d] && def[d].arg && param) {
75
+ var rw = (d+":"+param).replace(/'|\\/g, "_");
76
+ def.__exp = def.__exp || {};
77
+ def.__exp[rw] = def[d].text.replace(new RegExp("(^|[^\\w$])" + def[d].arg + "([^\\w$])", "g"), "$1" + param + "$2");
78
+ return s + "def.__exp['"+rw+"']";
79
+ }
80
+ });
81
+ var v = new Function("def", "return " + code)(def);
82
+ return v ? resolveDefs(c, v, def) : v;
83
+ });
84
+ }
85
+
86
+ function unescape(code) {
87
+ return code.replace(/\\('|\\)/g, "$1").replace(/[\r\t\n]/g, " ");
88
+ }
89
+
90
+ doT.template = function(tmpl, c, def) {
91
+ c = c || doT.templateSettings;
92
+ var cse = c.append ? startend.append : startend.split, needhtmlencode, sid = 0, indv,
93
+ str = (c.use || c.define) ? resolveDefs(c, tmpl, def || {}) : tmpl;
94
+
95
+ str = ("var out='" + (c.strip ? str.replace(/(^|\r|\n)\t* +| +\t*(\r|\n|$)/g," ")
96
+ .replace(/\r|\n|\t|\/\*[\s\S]*?\*\//g,""): str)
97
+ .replace(/'|\\/g, "\\$&")
98
+ .replace(c.interpolate || skip, function(m, code) {
99
+ return cse.start + unescape(code) + cse.end;
100
+ })
101
+ .replace(c.encode || skip, function(m, code) {
102
+ needhtmlencode = true;
103
+ return cse.startencode + unescape(code) + cse.end;
104
+ })
105
+ .replace(c.conditional || skip, function(m, elsecase, code) {
106
+ return elsecase ?
107
+ (code ? "';}else if(" + unescape(code) + "){out+='" : "';}else{out+='") :
108
+ (code ? "';if(" + unescape(code) + "){out+='" : "';}out+='");
109
+ })
110
+ .replace(c.iterate || skip, function(m, iterate, vname, iname) {
111
+ if (!iterate) return "';} } out+='";
112
+ sid+=1; indv=iname || "i"+sid; iterate=unescape(iterate);
113
+ return "';var arr"+sid+"="+iterate+";if(arr"+sid+"){var "+vname+","+indv+"=-1,l"+sid+"=arr"+sid+".length-1;while("+indv+"<l"+sid+"){"
114
+ +vname+"=arr"+sid+"["+indv+"+=1];out+='";
115
+ })
116
+ .replace(c.evaluate || skip, function(m, code) {
117
+ return "';" + unescape(code) + "out+='";
118
+ })
119
+ + "';return out;")
120
+ .replace(/\n/g, "\\n").replace(/\t/g, '\\t').replace(/\r/g, "\\r")
121
+ .replace(/(\s|;|\}|^|\{)out\+='';/g, '$1').replace(/\+''/g, "");
122
+ //.replace(/(\s|;|\}|^|\{)out\+=''\+/g,'$1out+=');
123
+
124
+ if (needhtmlencode) {
125
+ if (!c.selfcontained && _globals && !_globals._encodeHTML) _globals._encodeHTML = doT.encodeHTMLSource(c.doNotSkipEncoded);
126
+ str = "var encodeHTML = typeof _encodeHTML !== 'undefined' ? _encodeHTML : ("
127
+ + doT.encodeHTMLSource.toString() + "(" + (c.doNotSkipEncoded || '') + "));"
128
+ + str;
129
+ }
130
+ try {
131
+ return new Function(c.varname, str);
132
+ } catch (e) {
133
+ if (typeof console !== "undefined") console.log("Could not create a template function: " + str);
134
+ throw e;
135
+ }
136
+ };
137
+
138
+ doT.compile = function(tmpl, def) {
139
+ return doT.template(tmpl, null, def);
140
+ };
141
+ }());
@@ -0,0 +1,8 @@
1
+ /* Laura Doktorova https://github.com/olado/doT */
2
+ (function(){function p(b,a,d){return("string"===typeof a?a:a.toString()).replace(b.define||h,function(a,c,e,g){0===c.indexOf("def.")&&(c=c.substring(4));c in d||(":"===e?(b.defineParams&&g.replace(b.defineParams,function(a,b,l){d[c]={arg:b,text:l}}),c in d||(d[c]=g)):(new Function("def","def['"+c+"']="+g))(d));return""}).replace(b.use||h,function(a,c){b.useParams&&(c=c.replace(b.useParams,function(a,b,c,l){if(d[c]&&d[c].arg&&l)return a=(c+":"+l).replace(/'|\\/g,"_"),d.__exp=d.__exp||{},d.__exp[a]=
3
+ d[c].text.replace(new RegExp("(^|[^\\w$])"+d[c].arg+"([^\\w$])","g"),"$1"+l+"$2"),b+"def.__exp['"+a+"']"}));var e=(new Function("def","return "+c))(d);return e?p(b,e,d):e})}function k(b){return b.replace(/\\('|\\)/g,"$1").replace(/[\r\t\n]/g," ")}var f={version:"1.0.3",templateSettings:{evaluate:/\{\{([\s\S]+?(\}?)+)\}\}/g,interpolate:/\{\{=([\s\S]+?)\}\}/g,encode:/\{\{!([\s\S]+?)\}\}/g,use:/\{\{#([\s\S]+?)\}\}/g,useParams:/(^|[^\w$])def(?:\.|\[[\'\"])([\w$\.]+)(?:[\'\"]\])?\s*\:\s*([\w$\.]+|\"[^\"]+\"|\'[^\']+\'|\{[^\}]+\})/g,
4
+ define:/\{\{##\s*([\w\.$]+)\s*(\:|=)([\s\S]+?)#\}\}/g,defineParams:/^\s*([\w$]+):([\s\S]+)/,conditional:/\{\{\?(\?)?\s*([\s\S]*?)\s*\}\}/g,iterate:/\{\{~\s*(?:\}\}|([\s\S]+?)\s*\:\s*([\w$]+)\s*(?:\:\s*([\w$]+))?\s*\}\})/g,varname:"it",strip:!0,append:!0,selfcontained:!1,doNotSkipEncoded:!1},template:void 0,compile:void 0},m;f.encodeHTMLSource=function(b){var a={"&":"&#38;","<":"&#60;",">":"&#62;",'"':"&#34;","'":"&#39;","/":"&#47;"},d=b?/[&<>"'\/]/g:/&(?!#?\w+;)|<|>|"|'|\//g;return function(b){return b?
5
+ b.toString().replace(d,function(b){return a[b]||b}):""}};m=function(){return this||(0,eval)("this")}();"undefined"!==typeof module&&module.exports?module.exports=f:"function"===typeof define&&define.amd?define(function(){return f}):m.doT=f;var r={start:"'+(",end:")+'",startencode:"'+encodeHTML("},s={start:"';out+=(",end:");out+='",startencode:"';out+=encodeHTML("},h=/$^/;f.template=function(b,a,d){a=a||f.templateSettings;var n=a.append?r:s,c,e=0,g;b=a.use||a.define?p(a,b,d||{}):b;b=("var out='"+(a.strip?
6
+ b.replace(/(^|\r|\n)\t* +| +\t*(\r|\n|$)/g," ").replace(/\r|\n|\t|\/\*[\s\S]*?\*\//g,""):b).replace(/'|\\/g,"\\$&").replace(a.interpolate||h,function(b,a){return n.start+k(a)+n.end}).replace(a.encode||h,function(b,a){c=!0;return n.startencode+k(a)+n.end}).replace(a.conditional||h,function(b,a,c){return a?c?"';}else if("+k(c)+"){out+='":"';}else{out+='":c?"';if("+k(c)+"){out+='":"';}out+='"}).replace(a.iterate||h,function(b,a,c,d){if(!a)return"';} } out+='";e+=1;g=d||"i"+e;a=k(a);return"';var arr"+
7
+ e+"="+a+";if(arr"+e+"){var "+c+","+g+"=-1,l"+e+"=arr"+e+".length-1;while("+g+"<l"+e+"){"+c+"=arr"+e+"["+g+"+=1];out+='"}).replace(a.evaluate||h,function(a,b){return"';"+k(b)+"out+='"})+"';return out;").replace(/\n/g,"\\n").replace(/\t/g,"\\t").replace(/\r/g,"\\r").replace(/(\s|;|\}|^|\{)out\+='';/g,"$1").replace(/\+''/g,"");c&&(a.selfcontained||!m||m._encodeHTML||(m._encodeHTML=f.encodeHTMLSource(a.doNotSkipEncoded)),b="var encodeHTML = typeof _encodeHTML !== 'undefined' ? _encodeHTML : ("+f.encodeHTMLSource.toString()+
8
+ "("+(a.doNotSkipEncoded||"")+"));"+b);try{return new Function(a.varname,b)}catch(q){throw"undefined"!==typeof console&&console.log("Could not create a template function: "+b),q;}};f.compile=function(b,a){return f.template(b,null,a)}})();
@@ -0,0 +1,56 @@
1
+ // doU.js
2
+ // (c) 2011, Laura Doktorova
3
+ // https://github.com/olado/doT
4
+ //
5
+ // doU is an extraction and slight modification of an excellent
6
+ // templating function from jQote2.js (jQuery plugin) by aefxx
7
+ // (http://aefxx.com/jquery-plugins/jqote2/).
8
+ //
9
+ // Modifications:
10
+ // 1. nodejs support
11
+ // 2. allow for custom template markers
12
+ // 3. only allow direct invocation of the compiled function
13
+ //
14
+ // Licensed under the MIT license.
15
+
16
+ (function() {
17
+ var doU = { version : '0.1.2' };
18
+
19
+ if (typeof module !== 'undefined' && module.exports) {
20
+ module.exports = doU;
21
+ } else {
22
+ this.doU = doU;
23
+ }
24
+
25
+ doU.templateSettings = {
26
+ begin : '{{',
27
+ end : '}}',
28
+ varname : 'it'
29
+ };
30
+
31
+ doU.template = function(tmpl, conf) {
32
+ conf = conf || doU.templateSettings;
33
+ var str = '', tb = conf.begin, te = conf.end, m, l,
34
+ arr = tmpl.replace(/\s*<!\[CDATA\[\s*|\s*\]\]>\s*|[\r\n\t]|(\/\*[\s\S]*?\*\/)/g, '')
35
+ .split(tb).join(te +'\x1b')
36
+ .split(te);
37
+
38
+ for (m=0,l=arr.length; m < l; m++) {
39
+ str += arr[m].charAt(0) !== '\x1b' ?
40
+ "out+='" + arr[m].replace(/(\\|["'])/g, '\\$1') + "'" : (arr[m].charAt(1) === '=' ?
41
+ ';out+=(' + arr[m].substr(2) + ');' : (arr[m].charAt(1) === '!' ?
42
+ ';out+=(' + arr[m].substr(2) + ").toString().replace(/&(?!\\w+;)/g, '&#38;').split('<').join('&#60;').split('>').join('&#62;').split('" + '"' + "').join('&#34;').split(" + '"' + "'" + '"' + ").join('&#39;').split('/').join('&#x2F;');" : ';' + arr[m].substr(1)));
43
+ }
44
+
45
+ str = ('var out="";'+str+';return out;')
46
+ .split("out+='';").join('')
47
+ .split('var out="";out+=').join('var out=');
48
+
49
+ try {
50
+ return new Function(conf.varname, str);
51
+ } catch (e) {
52
+ if (typeof console !== 'undefined') console.log("Could not create a template function: " + str);
53
+ throw e;
54
+ }
55
+ };
56
+ }());