@directus/app 9.7.0 → 9.7.1

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 (323) hide show
  1. package/dist/assets/{@directus_extensions-sdk.2337631a.entry.js → @directus_extensions-sdk.cdb2e8d9.entry.js} +1 -1
  2. package/dist/assets/{active-line.6699d1d4.js → active-line.6375d8ad.js} +1 -1
  3. package/dist/assets/{activity-log.22054141.js → activity-log.de8d5bc0.js} +1 -1
  4. package/dist/assets/{activity.8c430e94.js → activity.3a289d00.js} +1 -1
  5. package/dist/assets/{apl.7775d50b.js → apl.1708cb28.js} +1 -1
  6. package/dist/assets/{asciiarmor.5e2beed1.js → asciiarmor.e2285682.js} +1 -1
  7. package/dist/assets/{asn.1.d025eb38.js → asn.1.fe12a5dc.js} +1 -1
  8. package/dist/assets/{asterisk.c4708b9e.js → asterisk.44d442de.js} +1 -1
  9. package/dist/assets/{authentication.f05edf0f.js → authentication.fa5f5fbf.js} +1 -1
  10. package/dist/assets/{autorefresh.55a3f0da.js → autorefresh.f0e90988.js} +1 -1
  11. package/dist/assets/{aws.9b80a703.js → aws.2ea60aef.js} +1 -1
  12. package/dist/assets/{backing-directus.c1723485.js → backing-directus.d243249f.js} +1 -1
  13. package/dist/assets/bg-BG.bc55bc91.js +2 -0
  14. package/dist/assets/{brainfuck.70365580.js → brainfuck.ad35519f.js} +1 -1
  15. package/dist/assets/{cli.fc9c4fe3.js → cli.363cb692.js} +1 -1
  16. package/dist/assets/{cli.d6690abf.js → cli.762d4191.js} +1 -1
  17. package/dist/assets/{clike.3e9dee98.js → clike.5b5b5e72.js} +1 -1
  18. package/dist/assets/{clojure.ce130fa7.js → clojure.252cb52a.js} +1 -1
  19. package/dist/assets/{cloudron.6e7dd837.js → cloudron.fb83901b.js} +1 -1
  20. package/dist/assets/{cmake.fab973de.js → cmake.ec70f2a6.js} +1 -1
  21. package/dist/assets/{cobol.7a64bbbe.js → cobol.4ab4edec.js} +1 -1
  22. package/dist/assets/{codebase-overview.fd823572.js → codebase-overview.58ee046d.js} +1 -1
  23. package/dist/assets/{coffeescript.9d4b8f5f.js → coffeescript.e9fb6ceb.js} +1 -1
  24. package/dist/assets/{collections.8af56d21.js → collections.bc720d33.js} +1 -1
  25. package/dist/assets/{commonlisp.5428daad.js → commonlisp.fb62c5ad.js} +1 -1
  26. package/dist/assets/{config-options.f925fec1.js → config-options.1dc0d5ed.js} +1 -1
  27. package/dist/assets/{content-collections.6ba530d0.js → content-collections.84a369f0.js} +1 -1
  28. package/dist/assets/{content-items.646094ea.js → content-items.284eff30.js} +1 -1
  29. package/dist/assets/{content.b15cd000.js → content.8f45d29b.js} +1 -1
  30. package/dist/assets/{creating-extensions.91c8f8ab.js → creating-extensions.f95a89af.js} +1 -1
  31. package/dist/assets/{crystal.75b4be8e.js → crystal.c3fd0f99.js} +1 -1
  32. package/dist/assets/{css.f630d758.js → css.bce2e857.js} +1 -1
  33. package/dist/assets/{cypher.eb908369.js → cypher.240e0449.js} +1 -1
  34. package/dist/assets/{d.2ca3ff68.js → d.3b7d124d.js} +1 -1
  35. package/dist/assets/{dart.74222142.js → dart.87d21eb3.js} +1 -1
  36. package/dist/assets/{data-model.f7fcb9d7.js → data-model.c1aabf84.js} +1 -1
  37. package/dist/assets/de-DE.15c2e3e1.js +1 -0
  38. package/dist/assets/{diff.62bebf2e.js → diff.0485c08c.js} +1 -1
  39. package/dist/assets/digitalocean-app-platform.2a64aa2b.js +3 -0
  40. package/dist/assets/{displays.a8cb30df.js → displays.b69d4a64.js} +1 -1
  41. package/dist/assets/{django.4a919dce.js → django.c5439874.js} +1 -1
  42. package/dist/assets/{docker.7709b030.js → docker.10363ed7.js} +1 -1
  43. package/dist/assets/{dockerfile.45a795cd.js → dockerfile.09928133.js} +1 -1
  44. package/dist/assets/{documentation.50eb6684.js → documentation.03c2bbdf.js} +1 -1
  45. package/dist/assets/{dtd.e849d54b.js → dtd.2cbc993e.js} +1 -1
  46. package/dist/assets/{dylan.9bddc9f7.js → dylan.1c4709a8.js} +1 -1
  47. package/dist/assets/{ebnf.38e716c6.js → ebnf.4eace14d.js} +1 -1
  48. package/dist/assets/{ecl.81e3d74e.js → ecl.86ab1d92.js} +1 -1
  49. package/dist/assets/{eiffel.c99e3e69.js → eiffel.d65fb100.js} +1 -1
  50. package/dist/assets/{elm.2039c837.js → elm.ba340dcd.js} +1 -1
  51. package/dist/assets/{email-templates.dcdc7831.js → email-templates.5d338a5d.js} +1 -1
  52. package/dist/assets/en-CA.aa96bcad.js +1 -0
  53. package/dist/assets/en-GB.5c2f476e.js +1 -0
  54. package/dist/assets/{endpoints.7c9a686c.js → endpoints.dc405b01.js} +1 -1
  55. package/dist/assets/{erlang.b4ea5ae2.js → erlang.6d8de3ae.js} +1 -1
  56. package/dist/assets/{extensions.a926868d.js → extensions.46c0c4d5.js} +1 -1
  57. package/dist/assets/{factor.ec067b03.js → factor.3a8a4e9e.js} +1 -1
  58. package/dist/assets/{faq.099805d8.js → faq.f30d939a.js} +1 -1
  59. package/dist/assets/{fcl.d64b77e4.js → fcl.40019ca5.js} +1 -1
  60. package/dist/assets/{fields.d3d4b155.js → fields.a57e7d83.js} +1 -1
  61. package/dist/assets/{file-library.d1612880.js → file-library.bc27695e.js} +1 -1
  62. package/dist/assets/{files.b0d7fda4.js → files.7a74d1e5.js} +1 -1
  63. package/dist/assets/{filter-rules.8a621a85.js → filter-rules.883e19c8.js} +1 -1
  64. package/dist/assets/{filters.6a5b112f.js → filters.f6249cf7.js} +1 -1
  65. package/dist/assets/{folders.5baf146b.js → folders.de1fb384.js} +1 -1
  66. package/dist/assets/{forth.af979d85.js → forth.9eeae1ad.js} +1 -1
  67. package/dist/assets/{fortran.ec9dff42.js → fortran.2f0c1e58.js} +1 -1
  68. package/dist/assets/fr-CA.f9ad557e.js +1 -0
  69. package/dist/assets/{gas.e92cddf0.js → gas.c7c58752.js} +1 -1
  70. package/dist/assets/{gcp.8f8fc1fa.js → gcp.840b8fd1.js} +1 -1
  71. package/dist/assets/{gfm.16df016c.js → gfm.89f8b0da.js} +1 -1
  72. package/dist/assets/{gherkin.bcaa97fb.js → gherkin.0a58b297.js} +1 -1
  73. package/dist/assets/{github-ci.e9b192ca.js → github-ci.6ee6ced1.js} +2 -2
  74. package/dist/assets/{glossary.fc7f9bc9.js → glossary.351c390e.js} +1 -1
  75. package/dist/assets/{go.f0f402de.js → go.cffa3b2e.js} +1 -1
  76. package/dist/assets/{groovy.3e813dc1.js → groovy.3cb854bc.js} +1 -1
  77. package/dist/assets/{haml.dd21ea02.js → haml.11c77bc4.js} +1 -1
  78. package/dist/assets/{handlebars.00325274.js → handlebars.9ae7286e.js} +1 -1
  79. package/dist/assets/{haskell-literate.89ac509a.js → haskell-literate.65e44262.js} +1 -1
  80. package/dist/assets/{haskell.0b50e3c4.js → haskell.e1faad6e.js} +1 -1
  81. package/dist/assets/{haxe.70694597.js → haxe.bb82fb6d.js} +1 -1
  82. package/dist/assets/{hooks.0145a3bd.js → hooks.481ce879.js} +1 -1
  83. package/dist/assets/{htmlembedded.ff1b7ddb.js → htmlembedded.72e58237.js} +1 -1
  84. package/dist/assets/htmlmixed.73a6225e.js +1 -0
  85. package/dist/assets/{http.89caf601.js → http.b18b22e3.js} +1 -1
  86. package/dist/assets/{idl.9b5e4cad.js → idl.6596cd41.js} +1 -1
  87. package/dist/assets/{iis.40c66643.js → iis.4ebc99ef.js} +2 -2
  88. package/dist/assets/{index.1b050638.js → index.0286776b.js} +1 -1
  89. package/dist/assets/{index.548ad5db.js → index.0e7739e5.js} +1 -1
  90. package/dist/assets/{index.b917f2e8.js → index.0fe387ed.js} +1 -1
  91. package/dist/assets/{index.5e62ad71.js → index.1044f1b9.js} +1 -1
  92. package/dist/assets/{index.041df172.js → index.1242a7ae.js} +1 -1
  93. package/dist/assets/{index.da489414.js → index.13c42333.js} +1 -1
  94. package/dist/assets/{index.7a2c04d6.js → index.15d25a9a.js} +1 -1
  95. package/dist/assets/{index.7f69c41b.js → index.1980416e.js} +1 -1
  96. package/dist/assets/{index.8f5c464b.js → index.1d9d2719.js} +1 -1
  97. package/dist/assets/{index.e981a8c0.js → index.1da570e0.js} +1 -1
  98. package/dist/assets/{index.a74d5392.js → index.1f9b2432.js} +1 -1
  99. package/dist/assets/{index.66bdbbb9.js → index.204221af.js} +1 -1
  100. package/dist/assets/{index.6d5fb415.js → index.20df85c5.js} +1 -1
  101. package/dist/assets/{index.995d747a.js → index.22fbda34.js} +1 -1
  102. package/dist/assets/{index.b9b1c925.js → index.243d5e7b.js} +1 -1
  103. package/dist/assets/index.262f690c.entry.js +542 -0
  104. package/dist/assets/{index.097853f8.js → index.26dab856.js} +1 -1
  105. package/dist/assets/{index.c43800ac.js → index.286b115e.js} +1 -1
  106. package/dist/assets/{index.b3443003.js → index.290accca.js} +1 -1
  107. package/dist/assets/{index.932d2697.js → index.2b95062f.js} +1 -1
  108. package/dist/assets/{index.a5aaff63.js → index.33336da1.js} +1 -1
  109. package/dist/assets/{index.4ff778a9.js → index.33dd62e3.js} +1 -1
  110. package/dist/assets/{index.a4957bf2.js → index.35e56ebe.js} +1 -1
  111. package/dist/assets/{index.54e5beb6.js → index.38cc4e96.js} +1 -1
  112. package/dist/assets/{index.a890db0a.js → index.3a3927a1.js} +1 -1
  113. package/dist/assets/{index.a4ba49e2.js → index.3d9abe2a.js} +1 -1
  114. package/dist/assets/{index.63004979.js → index.451644b7.js} +1 -1
  115. package/dist/assets/{index.541dd63b.js → index.4b3944b1.js} +1 -1
  116. package/dist/assets/{index.7c53a0fb.js → index.4f1c9e2c.js} +1 -1
  117. package/dist/assets/{index.6e0139ff.js → index.4f95210a.js} +1 -1
  118. package/dist/assets/{index.8164fb75.js → index.5306b116.js} +1 -1
  119. package/dist/assets/{index.a1662cc9.js → index.530e8e3d.js} +1 -1
  120. package/dist/assets/{index.6a59ef10.js → index.56390c1c.js} +1 -1
  121. package/dist/assets/{index.62e7e8b6.js → index.598d0a93.js} +1 -1
  122. package/dist/assets/{index.e58fb4ca.js → index.5aa4c214.js} +1 -1
  123. package/dist/assets/{index.66fe04cd.js → index.5d9e83b8.js} +1 -1
  124. package/dist/assets/{index.fd3546d2.js → index.5e4442c6.js} +1 -1
  125. package/dist/assets/{index.964d1c61.js → index.66e1b7f7.js} +1 -1
  126. package/dist/assets/{index.f5c1b36c.js → index.674e631d.js} +1 -1
  127. package/dist/assets/{index.eb9266b6.js → index.7110f06c.js} +1 -1
  128. package/dist/assets/{index.46f67576.js → index.72267c6b.js} +1 -1
  129. package/dist/assets/{index.c2d63958.js → index.781c12a9.js} +1 -1
  130. package/dist/assets/{index.a98f3f41.js → index.7ac0116c.js} +1 -1
  131. package/dist/assets/{index.e638432f.js → index.7c0a7bfe.js} +1 -1
  132. package/dist/assets/{index.f8010139.js → index.7c617be3.js} +1 -1
  133. package/dist/assets/{index.67ff908a.js → index.80ed1eef.js} +1 -1
  134. package/dist/assets/{index.b308ebfd.js → index.81a41182.js} +1 -1
  135. package/dist/assets/{index.0ab24219.js → index.858628e0.js} +1 -1
  136. package/dist/assets/{index.7fb3a6c7.js → index.8c95f791.js} +1 -1
  137. package/dist/assets/{index.3e96c8d9.js → index.8ce7a16f.js} +1 -1
  138. package/dist/assets/{index.e42e1497.js → index.9033efd4.js} +1 -1
  139. package/dist/assets/{index.a6b09209.js → index.966c8297.js} +1 -1
  140. package/dist/assets/{index.66422446.js → index.96811e72.js} +1 -1
  141. package/dist/assets/{index.76a7d8c0.js → index.9718529e.js} +1 -1
  142. package/dist/assets/{index.b0f1559f.js → index.97725763.js} +1 -1
  143. package/dist/assets/{index.4396317f.js → index.a0a7b403.js} +1 -1
  144. package/dist/assets/{index.4f7ab11c.js → index.a11c3487.js} +1 -1
  145. package/dist/assets/{index.c5407073.js → index.a2ad3c46.js} +1 -1
  146. package/dist/assets/{index.97148b30.js → index.a685b380.js} +1 -1
  147. package/dist/assets/{index.0cd9d9b7.js → index.a7239a95.js} +1 -1
  148. package/dist/assets/{index.0628e8bd.js → index.a842af3c.js} +1 -1
  149. package/dist/assets/{index.59078669.js → index.b63d3efb.js} +1 -1
  150. package/dist/assets/{index.b560747b.js → index.b9d60646.js} +1 -1
  151. package/dist/assets/{index.ecb8cbfe.js → index.bebee43c.js} +1 -1
  152. package/dist/assets/{index.6d7f4e6d.js → index.bfd9be8b.js} +1 -1
  153. package/dist/assets/{index.2a7526a7.js → index.c0dc6448.js} +1 -1
  154. package/dist/assets/{index.ec02e1a8.js → index.c32660ce.js} +1 -1
  155. package/dist/assets/{index.1e66a9ec.js → index.c48ea2dd.js} +1 -1
  156. package/dist/assets/{index.902d1387.js → index.c50bcd37.js} +1 -1
  157. package/dist/assets/{index.2a3e5b79.js → index.cc86593a.js} +1 -1
  158. package/dist/assets/{index.477b71be.js → index.d04651a5.js} +1 -1
  159. package/dist/assets/{index.6d9ec5c6.js → index.d196ee40.js} +1 -1
  160. package/dist/assets/index.d6716446.css +1 -0
  161. package/dist/assets/{index.1266cd27.js → index.d8e33291.js} +1 -1
  162. package/dist/assets/{index.fa3d01c6.js → index.e25325da.js} +1 -1
  163. package/dist/assets/{index.ed3b1798.js → index.e568b9e3.js} +1 -1
  164. package/dist/assets/{index.982ed1da.js → index.e5aa4fb4.js} +1 -1
  165. package/dist/assets/index.e61d2e51.js +26 -0
  166. package/dist/assets/{index.0ca9a796.js → index.eb479801.js} +1 -1
  167. package/dist/assets/{index.202f3d05.js → index.ed3eb336.js} +1 -1
  168. package/dist/assets/{index.643526b8.js → index.ed8bef08.js} +1 -1
  169. package/dist/assets/{index.3b3f6323.js → index.edbb286b.js} +1 -1
  170. package/dist/assets/{index.a837d852.js → index.f6b60290.js} +1 -1
  171. package/dist/assets/{input-rich-text-html.2c73599b.js → input-rich-text-html.c9156531.js} +1 -1
  172. package/dist/assets/{insights.0c264b98.js → insights.bb71b59c.js} +1 -1
  173. package/dist/assets/{installation.922b399f.js → installation.69c6e8b3.js} +1 -1
  174. package/dist/assets/{interfaces.6a856f56.js → interfaces.1651e5d5.js} +1 -1
  175. package/dist/assets/{introduction.74d56187.js → introduction.590e4eba.js} +1 -1
  176. package/dist/assets/{introduction.3be9176c.js → introduction.a63d87df.js} +1 -1
  177. package/dist/assets/{introduction.4bd801ef.js → introduction.f7647fc1.js} +1 -1
  178. package/dist/assets/{introduction.527bed5f.js → introduction.fff52202.js} +1 -1
  179. package/dist/assets/{items.15f19b41.js → items.76a09b87.js} +1 -1
  180. package/dist/assets/{javascript-hint.85fe04bc.js → javascript-hint.36fc2c99.js} +1 -1
  181. package/dist/assets/{javascript.6df53894.js → javascript.03e76510.js} +1 -1
  182. package/dist/assets/{jinja2.e8b68774.js → jinja2.fd7fe523.js} +1 -1
  183. package/dist/assets/{jsx.b60e0b30.js → jsx.dd4c1cd5.js} +1 -1
  184. package/dist/assets/{julia.f22a76b4.js → julia.4255f0a0.js} +1 -1
  185. package/dist/assets/{layouts.e9d0662e.js → layouts.30c8a1e1.js} +1 -1
  186. package/dist/assets/{livescript.4491b18d.js → livescript.23fa45b9.js} +1 -1
  187. package/dist/assets/{localization.fd9d3ced.js → localization.341816ac.js} +1 -1
  188. package/dist/assets/{lua.a1149722.js → lua.c66dd609.js} +1 -1
  189. package/dist/assets/{manual.cbc801ad.js → manual.dc5b3116.js} +1 -1
  190. package/dist/assets/{mark-selection.76435845.js → mark-selection.8d87324c.js} +1 -1
  191. package/dist/assets/{match-highlighter.b956d6f5.js → match-highlighter.4899e3b1.js} +1 -1
  192. package/dist/assets/{mathematica.a4a9ec16.js → mathematica.ddf4b03a.js} +1 -1
  193. package/dist/assets/{mbox.01d57c38.js → mbox.7efd7aae.js} +1 -1
  194. package/dist/assets/{migrations.18341e47.js → migrations.5769e3a6.js} +2 -2
  195. package/dist/assets/{mirc.a547c0ce.js → mirc.5519309e.js} +1 -1
  196. package/dist/assets/{mllike.7d6bc859.js → mllike.4fba1c9f.js} +1 -1
  197. package/dist/assets/{modelica.f4947669.js → modelica.d5785180.js} +1 -1
  198. package/dist/assets/{modules.6f758e4f.js → modules.79942055.js} +1 -1
  199. package/dist/assets/{mscgen.720142b6.js → mscgen.d1084fac.js} +1 -1
  200. package/dist/assets/{multiplex.04dbee0d.js → multiplex.997f0efa.js} +1 -1
  201. package/dist/assets/{mumps.fec4f954.js → mumps.45d27bdc.js} +1 -1
  202. package/dist/assets/{nginx.7539be81.js → nginx.f2329a2e.js} +1 -1
  203. package/dist/assets/{notifications.41663018.js → notifications.684fcdb3.js} +1 -1
  204. package/dist/assets/{nsis.f65a3a36.js → nsis.7671fe5a.js} +1 -1
  205. package/dist/assets/{ntriples.4062190c.js → ntriples.1ef293c5.js} +1 -1
  206. package/dist/assets/{octave.727eba6c.js → octave.1e6f25b7.js} +1 -1
  207. package/dist/assets/{overlay.992bb21f.js → overlay.d53bab44.js} +1 -1
  208. package/dist/assets/{overview.2ee9fc7c.js → overview.27b05ee2.js} +1 -1
  209. package/dist/assets/{overview.8efdff51.js → overview.aaebfd46.js} +1 -1
  210. package/dist/assets/{oz.db891ae9.js → oz.80d1ccf6.js} +1 -1
  211. package/dist/assets/{panels.f7de183c.js → panels.5df101f1.js} +1 -1
  212. package/dist/assets/{pascal.c4ab202f.js → pascal.cf8a9c43.js} +1 -1
  213. package/dist/assets/{pegjs.6fc0ee07.js → pegjs.564a1721.js} +1 -1
  214. package/dist/assets/{perl.e231799e.js → perl.90f6ad1e.js} +1 -1
  215. package/dist/assets/{permissions.264879f9.js → permissions.3fecdff8.js} +4 -4
  216. package/dist/assets/{php.452d2ae6.js → php.fa8c9bb5.js} +1 -1
  217. package/dist/assets/{pig.75deee74.js → pig.4b3e46fe.js} +1 -1
  218. package/dist/assets/{pinia.dbc55615.entry.js → pinia.1b52d3f3.entry.js} +1 -1
  219. package/dist/assets/pl-PL.802b9560.js +1 -0
  220. package/dist/assets/{plesk.a0981648.js → plesk.98782a18.js} +1 -1
  221. package/dist/assets/{powershell.69dd2c72.js → powershell.5bdeb681.js} +1 -1
  222. package/dist/assets/{presets-bookmarks.1530d971.js → presets-bookmarks.e8a7bd44.js} +1 -1
  223. package/dist/assets/{presets.80f5e858.js → presets.517e5211.js} +1 -1
  224. package/dist/assets/{project-settings.2c9e864e.js → project-settings.36e7f38f.js} +1 -1
  225. package/dist/assets/{properties.c3e318ad.js → properties.b9725bf0.js} +1 -1
  226. package/dist/assets/{protobuf.2150de0e.js → protobuf.e8913b71.js} +1 -1
  227. package/dist/assets/{pug.b2ff6b0f.js → pug.e47e51d9.js} +1 -1
  228. package/dist/assets/{puppet.1d462dc8.js → puppet.02d0c537.js} +1 -1
  229. package/dist/assets/{python.dce994e2.js → python.5a331182.js} +1 -1
  230. package/dist/assets/{q.bf8f610c.js → q.7abd2e98.js} +1 -1
  231. package/dist/assets/{query.92eb12f1.js → query.dd50494a.js} +1 -1
  232. package/dist/assets/{quickstart.1f445650.js → quickstart.2a30696e.js} +1 -1
  233. package/dist/assets/{r.b447ab61.js → r.559aca48.js} +1 -1
  234. package/dist/assets/{relations.0d8e12f7.js → relations.f34c0891.js} +1 -1
  235. package/dist/assets/{relationships.7bab6750.js → relationships.4db828d3.js} +1 -1
  236. package/dist/assets/{revisions.9348dc1c.js → revisions.2eacaa0e.js} +1 -1
  237. package/dist/assets/{roles.231416c7.js → roles.c8bc1e38.js} +7 -7
  238. package/dist/assets/{rpm.f4abf330.js → rpm.cf2624a1.js} +1 -1
  239. package/dist/assets/{rst.5697007e.js → rst.74a6e7f4.js} +1 -1
  240. package/dist/assets/{ruby.69583d0f.js → ruby.57e7ca16.js} +1 -1
  241. package/dist/assets/{running-locally.7e946754.js → running-locally.3f08151c.js} +1 -1
  242. package/dist/assets/{rust.0a9779c7.js → rust.603cb7a9.js} +1 -1
  243. package/dist/assets/{sas.ed18a9d8.js → sas.02fe3105.js} +1 -1
  244. package/dist/assets/{sass.bb0431ec.js → sass.58d3cfe8.js} +1 -1
  245. package/dist/assets/{scheme.d302b72a.js → scheme.23303e45.js} +1 -1
  246. package/dist/assets/{sdk.50580642.js → sdk.7feea4dd.js} +1 -1
  247. package/dist/assets/{security.79ae2a57.js → security.2b004c67.js} +1 -1
  248. package/dist/assets/{server.fadb1767.js → server.64c51953.js} +1 -1
  249. package/dist/assets/settings.16945599.js +1 -0
  250. package/dist/assets/{settings.dbd7dc00.js → settings.1f41229b.js} +1 -1
  251. package/dist/assets/{shell.a98c5df7.js → shell.861e6b20.js} +1 -1
  252. package/dist/assets/{show-hint.82972b3b.js → show-hint.33e4b0da.js} +1 -1
  253. package/dist/assets/{sieve.2a4b8b32.js → sieve.9f4137de.js} +1 -1
  254. package/dist/assets/{simple.4d388fb2.js → simple.1a88b993.js} +1 -1
  255. package/dist/assets/{slim.4c69adbc.js → slim.35fbe920.js} +1 -1
  256. package/dist/assets/{smalltalk.dcf26835.js → smalltalk.6cdc0be6.js} +1 -1
  257. package/dist/assets/{smarty.fa1c7fdc.js → smarty.a83da96d.js} +1 -1
  258. package/dist/assets/{solr.19c19a86.js → solr.38cb5333.js} +1 -1
  259. package/dist/assets/{soy.50b5b6b0.js → soy.d1dad77c.js} +1 -1
  260. package/dist/assets/{sparql.d48c3147.js → sparql.8e0b9834.js} +1 -1
  261. package/dist/assets/{spreadsheet.b5c59ea4.js → spreadsheet.a9f547e6.js} +1 -1
  262. package/dist/assets/{sql.a0697343.js → sql.0eddf5fb.js} +1 -1
  263. package/dist/assets/{sso.8a97bee3.js → sso.a0d3be3d.js} +2 -2
  264. package/dist/assets/{stex.90b916aa.js → stex.84414277.js} +1 -1
  265. package/dist/assets/{stylus.ebfabd1e.js → stylus.3ed8b40a.js} +1 -1
  266. package/dist/assets/{support.ef8b3e6f.js → support.c48dbfbf.js} +1 -1
  267. package/dist/assets/{swift.d438815e.js → swift.9e36a6bc.js} +1 -1
  268. package/dist/assets/{tcl.21f82383.js → tcl.1387f30d.js} +1 -1
  269. package/dist/assets/{textile.55314c2b.js → textile.6b4f4a09.js} +1 -1
  270. package/dist/assets/{themes.e36c3621.js → themes.1726a995.js} +1 -1
  271. package/dist/assets/{tiddlywiki.ef965bfa.js → tiddlywiki.9fd95c86.js} +1 -1
  272. package/dist/assets/{tiki.85b9e632.js → tiki.1c3be72c.js} +1 -1
  273. package/dist/assets/{toml.f1a6752b.js → toml.d8ce69ac.js} +1 -1
  274. package/dist/assets/{tornado.0ccb5d7b.js → tornado.4122acd7.js} +1 -1
  275. package/dist/assets/{translations.cbf49b08.js → translations.50d38679.js} +1 -1
  276. package/dist/assets/{troff.7aef1c50.js → troff.923cc50a.js} +1 -1
  277. package/dist/assets/{ttcn-cfg.e4f6b5a8.js → ttcn-cfg.c46d638e.js} +1 -1
  278. package/dist/assets/{ttcn.ff893952.js → ttcn.bc12e52c.js} +1 -1
  279. package/dist/assets/{turtle.7ae8406c.js → turtle.907013ed.js} +1 -1
  280. package/dist/assets/{twig.e1e35aed.js → twig.2616faf3.js} +1 -1
  281. package/dist/assets/ubuntu.47e4ed9d.js +11 -0
  282. package/dist/assets/{upgrades-migrations.fef45684.js → upgrades-migrations.f46e3e27.js} +1 -1
  283. package/dist/assets/{use-sync.c3bd7fae.js → use-sync.33f9b39d.js} +1 -1
  284. package/dist/assets/{user-directory.dd69d11f.js → user-directory.dd6f9e40.js} +1 -1
  285. package/dist/assets/{users-roles-permissions.84c3d85a.js → users-roles-permissions.cb571c73.js} +1 -1
  286. package/dist/assets/{users.e8dc25da.js → users.dabef07a.js} +1 -1
  287. package/dist/assets/{utilities.85f4e01c.js → utilities.46a0f632.js} +1 -1
  288. package/dist/assets/{vb.5097b30b.js → vb.245fd092.js} +1 -1
  289. package/dist/assets/{vbscript.d846d94b.js → vbscript.b8912ba1.js} +1 -1
  290. package/dist/assets/{velocity.d5b05c86.js → velocity.239a0928.js} +1 -1
  291. package/dist/assets/{vendor.32937068.js → vendor.a27160c3.js} +1 -1
  292. package/dist/assets/{verilog.5dacce20.js → verilog.27cb4562.js} +1 -1
  293. package/dist/assets/{vhdl.0939b1d2.js → vhdl.d0516a44.js} +1 -1
  294. package/dist/assets/{vue-i18n.dac36308.entry.js → vue-i18n.569004d7.entry.js} +1 -1
  295. package/dist/assets/{vue-router.81a8d739.entry.js → vue-router.a70f1b0a.entry.js} +1 -1
  296. package/dist/assets/{vue.5b9edc33.js → vue.5c82b9b9.js} +1 -1
  297. package/dist/assets/{vue.5073c0a4.entry.js → vue.a5867151.entry.js} +1 -1
  298. package/dist/assets/{wast.7c42f4e1.js → wast.f00b2de6.js} +1 -1
  299. package/dist/assets/{webhooks.75cbebd1.js → webhooks.ca623606.js} +1 -1
  300. package/dist/assets/{webhooks.e8a8da30.js → webhooks.e456ff27.js} +1 -1
  301. package/dist/assets/{webidl.c0830ceb.js → webidl.02e956cd.js} +1 -1
  302. package/dist/assets/{xquery.61a87c2d.js → xquery.4d6fc924.js} +1 -1
  303. package/dist/assets/{yacas.085c1388.js → yacas.3411c4ff.js} +1 -1
  304. package/dist/assets/{yaml-frontmatter.27df0d99.js → yaml-frontmatter.180c6ff5.js} +1 -1
  305. package/dist/assets/{yaml.ae2e6559.js → yaml.694821cc.js} +1 -1
  306. package/dist/assets/{z80.61db2f81.js → z80.e52b0a7b.js} +1 -1
  307. package/dist/assets/zh-CN.8e195137.js +1 -0
  308. package/dist/index.html +4 -4
  309. package/package.json +6 -6
  310. package/dist/assets/bg-BG.396b2faa.js +0 -2
  311. package/dist/assets/de-DE.924c4f0c.js +0 -1
  312. package/dist/assets/digitalocean-app-platform.540a6b04.js +0 -3
  313. package/dist/assets/en-CA.36509acf.js +0 -1
  314. package/dist/assets/en-GB.426d1575.js +0 -1
  315. package/dist/assets/fr-CA.4275731a.js +0 -1
  316. package/dist/assets/htmlmixed.c336d32d.js +0 -1
  317. package/dist/assets/index.23b9c348.js +0 -26
  318. package/dist/assets/index.32751ec3.css +0 -1
  319. package/dist/assets/index.efa579c8.entry.js +0 -531
  320. package/dist/assets/pl-PL.2fd6f24d.js +0 -1
  321. package/dist/assets/settings.962b566d.js +0 -1
  322. package/dist/assets/ubuntu.dd0d797a.js +0 -11
  323. package/dist/assets/zh-CN.7e52130c.js +0 -1
@@ -1 +1 @@
1
- import{r as o,p as d,q as u,w as t,z as e,t as n,S as l}from"./vendor.32937068.js";const h={class:"markdown-body"},c=e("blockquote",null,[e("p",null,[l("Insights is a Module in Directus that allows rapid, no-code buildout of analytics dashboards. Regardless of your use-case "),e("em",null,"(be it business intelligence, user progress tracking, web traffic conversions, or whatever!)"),l(" you will be able to setup key data metrics in just a few clicks.")])],-1),p=e("video",{autoplay:"",muted:"",loop:"",controls:""},[e("source",{src:"https://cdn.directus.io/docs/v9/app-guide/insights/insights-20220216A/insights-dashboards-20220216A.mp4",type:"video/mp4"})],-1),g=e("p",null,[e("div",{class:"table-of-contents"},[e("ul",null,[e("li",null,[e("a",{href:"#how-it-works"},"How it Works")]),e("li",null,[e("a",{href:"#dashboards-overview"},"Dashboards Overview")]),e("li",null,[e("a",{href:"#create%2C-edit%2C-and-delete-dashboards"},"Create, Edit, and Delete Dashboards")]),e("li",null,[e("a",{href:"#panels-overview"},"Panels Overview")]),e("li",null,[e("a",{href:"#panel-header-options"},"Panel Header Options")]),e("li",null,[e("a",{href:"#labels"},"Labels")]),e("li",null,[e("a",{href:"#lists"},"Lists")]),e("li",null,[e("a",{href:"#metrics"},"Metrics")]),e("li",null,[e("a",{href:"#time-series"},"Time Series")]),e("li",null,[e("a",{href:"#extensibility-options"},"Extensibility Options")])])])],-1),m=e("h2",{id:"how-it-works"},[l("How it Works "),e("a",{class:"header-anchor",href:"#how-it-works"},"#")],-1),b=e("p",null,"First, create a Dashboard, then fill the Dashboard with Panels. Each Panel provides some unique type of analytics insight.",-1),f=e("video",{autoplay:"",muted:"",loop:"",controls:""},[e("source",{src:"https://cdn.directus.io/docs/v9/app-guide/insights/insights-20220216A/insights-how-it-works-20220216A_1.mp4",type:"video/mp4"})],-1),_=e("ol",null,[e("li",null,[l("Click the \u201CCreate Dashboard\u201D action button "),e("span",{mi:"",btn:""},"add"),l(" in the page header.")]),e("li",null,"Fill in the dashboard name, icon and note."),e("li",null,"Click \u201CSave\u201D."),e("li",null,"Click the edit icon in the page header."),e("li",null,[l("Hit the \u201CCreate Panel\u201D "),e("span",{mi:"",btn:""},"add"),l(" in the page header.")]),e("li",null,[l("Select a Panel type. "),e("a",{href:"#panels-overview"},"Learn More about panel types.")]),e("li",null,"Adjust the Panel Options to customize the analytics metric.")],-1),y=e("h2",{id:"dashboards-overview"},[l("Dashboards Overview "),e("a",{class:"header-anchor",href:"#dashboards-overview"},"#")],-1),v=l("Each Directus Dashboard provides a drag-and-drop canvas where you can create and arrange different Panels to easily build out customized analytics. The Dashboard area automatically expands as you add more and more Panels. In theory, a Dashboard area can expand infinitely large\u2026 but in practice, users will probably only want to build Dashboards as large as the screen they will be viewing on. You are able to create as many Dashboards as you need. Additionally, the Dashboard view, edit, and create permissions are "),w=l("fully configurable"),S=l(" by User Role."),x=e("p",null,[e("img",{src:"https://cdn.directus.io/docs/v9/app-guide/insights/insights-20220216A/dashboards-overview-20220216A.webp",alt:"Dashboard Grid Area"})],-1),D=e("h2",{id:"create%2C-edit%2C-and-delete-dashboards"},[l("Create, Edit, and Delete Dashboards "),e("a",{class:"header-anchor",href:"#create%2C-edit%2C-and-delete-dashboards"},"#")],-1),A=e("p",null,[e("img",{src:"https://cdn.directus.io/docs/v9/app-guide/insights/insights-20220216A/create-edit-delete-dashboards-20220216A.webp",alt:"How to Add, Edit and Delete Dashboards in Directus Insights"})],-1),C=e("ol",null,[e("li",null,[l("Click the "),e("span",{mi:"",btn:""},"add"),l(" icon in the page header to create a new Dashboard.")]),e("li",null,"Click the item option to edit or delete a Dashboard.")],-1),F=e("h2",{id:"panels-overview"},[l("Panels Overview "),e("a",{class:"header-anchor",href:"#panels-overview"},"#")],-1),P=e("p",null,"Panels are the building-blocks we add onto Insights dashboards to create, save and display data analytics. There are 4 types of Panels.",-1),k=e("p",null,[e("img",{src:"https://cdn.directus.io/docs/v9/app-guide/insights/insights-20220216A/panels-overview-20220216A.webp",alt:"Directus Dashboard Panels"})],-1),I=e("ol",null,[e("li",null,[e("strong",null,"Label"),l(" \u2013 Displays simple header text to describe other groups of panels. Doesn\u2019t actually provide data analysis.")]),e("li",null,[e("strong",null,"List"),l(" \u2013 Sortable, filterable list of items within a collection.")]),e("li",null,[e("strong",null,"Metric"),l(" \u2013 Sortable, filterable single-number metrics like sum, average, minimum and maximum, or first and last.")]),e("li",null,[e("strong",null,"Time Series"),l(" \u2013 Graph to display how metrics change over time. Provides same sorting, filtering and aggregation features seen in the list and metric panels.")])],-1),L=e("h2",{id:"panel-header-options"},[l("Panel Header Options "),e("a",{class:"header-anchor",href:"#panel-header-options"},"#")],-1),M=e("p",null,"All 4 panel types let you set custom text to provide quick and clear context about what a Panel represents. Panel Header options are exactly the same for all four Panel types. Headers are also totally optional and can be hidden.",-1),O=e("p",null,[e("img",{src:"https://cdn.directus.io/docs/v9/app-guide/insights/insights-20220216A/panel-header-options-20220216A.webp",alt:"Panel Header Options"})],-1),T=e("ul",null,[e("li",null,[e("strong",null,"Visible"),l(" \u2013 Determines if the header is visible or not.")]),e("li",null,[e("strong",null,"Name"),l(" \u2013 Sets a name in the header area.")]),e("li",null,[e("strong",null,"Icon"),l(" \u2013 Sets a small icon by the name.")]),e("li",null,[e("strong",null,"Color"),l(" \u2013 Sets a color for the icon.")]),e("li",null,[e("strong",null,"Note"),l(" \u2013 Sets a short description of the icon.")])],-1),H=e("h2",{id:"labels"},[l("Labels "),e("a",{class:"header-anchor",href:"#labels"},"#")],-1),E=e("p",null,[l("As the name implies, this panel simply allows you to "),e("em",null,"label"),l(" a group of other panels. Labels do not provide analytics. Labels simply help visually group the other panels ("),e("em",null,"which do provide analytics"),l(") and give context to your dashboard.")],-1),V=e("h3",{id:"label-panel-options"},[l("Label Panel Options "),e("a",{class:"header-anchor",href:"#label-panel-options"},"#")],-1),q=e("p",null,[e("img",{src:"https://cdn.directus.io/docs/v9/app-guide/insights/insights-20220216A/label-panel-options-20220216A.webp",alt:"Label Panel Options"})],-1),z=e("ul",null,[e("li",null,[e("strong",null,"Label"),l(" \u2013 Sets the label text.")]),e("li",null,[e("strong",null,"Color"),l(" \u2013 Sets the label text color.")])],-1),G=e("h2",{id:"lists"},[l("Lists "),e("a",{class:"header-anchor",href:"#lists"},"#")],-1),W=e("p",null,[l("List panels display some number of Items from a Collection, "),e("em",null,"as a list!"),l(" These Items displayed can be filtered by other criteria as well. So for example, you could show your top 5 selling products, 3 worst performing sales regions, 10 students with the highest GPA "),e("em",null,"that are also"),l(" in intramural sports, or create any other kind of ranked and/or filtered list that could be generated from your dataset.")],-1),N=e("h3",{id:"list-panel-options"},[l("List Panel Options "),e("a",{class:"header-anchor",href:"#list-panel-options"},"#")],-1),j=e("p",null,[e("img",{src:"https://cdn.directus.io/docs/v9/app-guide/insights/insights-20220216A/list-panel-options-20220216A.webp",alt:"List Panel Options"})],-1),B=e("ul",null,[e("li",null,[e("strong",null,"Collection"),l(" \u2013 Selects the Collection to rank.")]),e("li",null,[e("strong",null,"Limit"),l(" \u2013 Limits the number of Items that will appear in the Dashboard.")]),e("li",null,[e("strong",null,"Sort Field"),l(" \u2013 Sets the Collection Field you wish to order results by.")]),e("li",null,[e("strong",null,"Sort Direction"),l(" \u2013 Sets Items to display in ascending or descending order.")]),e("li",null,[e("strong",null,"Display Template"),l(" \u2013 Defines how List Items will be represented. Allows use of Field Item values as well as custom text.")]),e("li",null,[e("strong",null,"Filter"),l(" \u2013 Sets filters to only consider and rank Items that meet some criteria.")])],-1),R=e("h2",{id:"metrics"},[l("Metrics "),e("a",{class:"header-anchor",href:"#metrics"},"#")],-1),Y=e("p",null,"Metrics Panels allow you to aggregate all Items in a Field down to a single value.",-1),X=e("h3",{id:"metrics-panel-options"},[l("Metrics Panel Options "),e("a",{class:"header-anchor",href:"#metrics-panel-options"},"#")],-1),U=e("p",null,[e("img",{src:"https://cdn.directus.io/docs/v9/app-guide/insights/insights-20220216A/metric-panel-options-20220216A.webp",alt:"Metrics Panel Options"})],-1),J=e("ul",null,[e("li",null,[e("strong",null,"Collection"),l(" \u2013 Selects the Collection.")]),e("li",null,[e("strong",null,"Field"),l(" \u2013 Selects the Field to run aggregate function on.")]),e("li",null,[e("strong",null,"Aggregate Function"),l(" \u2013 Selects the type of aggregate to perform.")]),e("li",null,[e("strong",null,"Sort Field"),l(" \u2013 Sets the collection field you wish to order results by.")]),e("li",null,[e("strong",null,"Filter"),l(" \u2013 Sets filters to only run metrics on Items that meet some criteria.")])],-1),K=e("h3",{id:"more-on-aggregate-functions"},[l("More on Aggregate Functions "),e("a",{class:"header-anchor",href:"#more-on-aggregate-functions"},"#")],-1),Q=e("p",null,"Generally speaking, aggregate functions take a list of values and returns one single value.",-1),Z=e("ul",null,[e("li",null,[e("strong",null,"Count"),l(" \u2013 Counts the number of Items in a Field.")]),e("li",null,[e("strong",null,"Count (Distinct)"),l(" \u2013 Counts the number of "),e("em",null,"unique"),l(" Items in a field.")]),e("li",null,[e("strong",null,"Average"),l(" \u2013 Averages values of all Items in a Field.")]),e("li",null,[e("strong",null,"Average (Distinct)"),l(" \u2013 Averages values of all "),e("em",null,"unique"),l(" Items in a Field.")]),e("li",null,[e("strong",null,"Sum"),l(" \u2013 Sums the values of all Items in a Field.")]),e("li",null,[e("strong",null,"Sum (Distinct)"),l(" \u2013 Sums the values of all "),e("em",null,"unique"),l(" Items in a Field.")]),e("li",null,[e("strong",null,"Minimum"),l(" \u2013 Selects the lowest valued Item in a Field.")]),e("li",null,[e("strong",null,"Maximum"),l(" \u2013 Selects the highest valued Item in a Field.")]),e("li",null,[e("strong",null,"First"),l(" \u2013 Selects the first Item out of all Items in a Field.")]),e("li",null,[e("strong",null,"Last"),l(" \u2013 Selects the last Item out of all Items in a Field.")])],-1),$=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"First, Last, Minimum and Maximum"),e("p",null,"First, Last, Minimum and Maximum are not aggregates in the purely mathematical sense of the word. However, they are placed in this panel option because they return one single Item.")],-1),ee=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"Why are some Fields grayed out?"),e("p",null,[l("Certain Fields cannot be used with certain aggregate functions. For example, you cannot use the average function on Fields that store text, because text cannot be averaged. When there is a conflict between panel options, Fields will be grayed out and unselectable in the "),e("code",null,"field dropdown list"),l(".")])],-1),le=e("h3",{id:"style-and-format-options"},[l("Style and Format Options "),e("a",{class:"header-anchor",href:"#style-and-format-options"},"#")],-1),te=e("ul",null,[e("li",null,[e("strong",null,"Abbreviate Value"),l(" \u2013 Abbreviates large numbers with a letter "),e("em",null,"(e.g. 2,000 = 2k)"),l(".")]),e("li",null,[e("strong",null,"Decimals"),l(" \u2013 Changes the number of decimals displayed.")]),e("li",null,[e("strong",null,"Prefix"),l(" \u2013 Adds text before the aggregate metric.")]),e("li",null,[e("strong",null,"Suffix"),l(" \u2013 Adds text after the aggregate metric.")]),e("li",null,[e("strong",null,"Conditional Styles"),l(" \u2013 Changes color of number displayed if it is "),e("code",null,">"),l(", "),e("code",null,">="),l(", "),e("code",null,"<"),l(", "),e("code",null,"<="),l(", "),e("code",null,"=="),l(", or "),e("code",null,"!="),l(" to some defined value.")])],-1),se=e("h2",{id:"time-series"},[l("Time Series "),e("a",{class:"header-anchor",href:"#time-series"},"#")],-1),ne=e("p",null,"The Time Series Panel allows you to build graphs and see how data changes over time.",-1),ie=e("div",{class:"warning hint"},[e("div",{class:"hint-title"},"Time-oriented metrics only"),e("p",null,"In order to use this Panel, your Collection will need a datetime Field.")],-1),oe=e("p",null,[e("img",{src:"https://cdn.directus.io/docs/v9/app-guide/insights/insights-20220216A/time-series-panel-options-20220216A.webp",alt:"Time Series Panel Options"})],-1),ae=e("ul",null,[e("li",null,[e("strong",null,"Collection"),l(" \u2013 Selects the Collection you want to analyze.")]),e("li",null,[e("strong",null,"Color"),l(" \u2013 Sets color of your graph curve.")]),e("li",null,[e("strong",null,"Group Aggregation"),l(" \u2013 Selects the type of aggregation to perform. "),e("a",{href:"#more-on-aggregate-functions"},"Learn more.")]),e("li",null,[e("strong",null,"Group Precision"),l(" \u2013 Sets the time interval to aggregate by "),e("em",null,"(days, weeks, months, etc.)"),l(".")]),e("li",null,[e("strong",null,"Date Field"),l(" \u2013 Selects the datetime Field used along the x-axis.")]),e("li",null,[e("strong",null,"Date Range"),l(" \u2013 Selects the time range from which data should be displayed.")]),e("li",null,[e("strong",null,"Value Field"),l(" \u2013 Sets the Field you wish to aggregate.")]),e("li",null,[e("strong",null,"Value Decimals"),l(" \u2013 Changes the number of decimals displayed on the y-axis.")]),e("li",null,[e("strong",null,"Min Value"),l(" \u2013 Sets minimum value displayed on y-axis.")]),e("li",null,[e("strong",null,"Max Value"),l(" \u2013 Sets maximum value displayed on y-axis.")]),e("li",null,[e("strong",null,"Curve Type"),l(" \u2013 Sets curve to be shown as smooth, straight or stepline.")]),e("li",null,[e("strong",null,"Fill Type"),l(" \u2013 Sets fill type under curve to gradient, solid, or none.")]),e("li",null,[e("strong",null,"Filter"),l(" \u2013 Allows filtering of Items considered for analysis based on logical conditions.")]),e("li",null,[e("strong",null,"Show X-axis"),l(" \u2013 Toggles display of time along X-axis.")]),e("li",null,[e("strong",null,"Show Y-axis"),l(" \u2013 Toggles display of numeric values along Y-axis.")])],-1),re=e("h2",{id:"extensibility-options"},[l("Extensibility Options "),e("a",{class:"header-anchor",href:"#extensibility-options"},"#")],-1),de=e("p",null,"Teams that need highly advanced or specialized analytics options are able to extend, customize and modify this module as needed. Here are some great resources to get started down that track.",-1),ue=l("Extensions > Modules"),he=l("Extentions > Panels"),be={setup(ce,{expose:a}){const i={title:"Insights",modularExtension:!1};return a({frontmatter:i}),(pe,ge)=>{const s=o("router-link"),r=o("DocsWrapper");return d(),u(r,{frontmatter:i},{default:t(()=>[e("div",h,[c,p,g,m,b,f,_,y,e("p",null,[v,n(s,{to:"/docs/configuration/users-roles-permissions/#configuring-permissions"},{default:t(()=>[w]),_:1}),S]),x,D,A,C,F,P,k,I,L,M,O,T,H,E,V,q,z,G,W,N,j,B,R,Y,X,U,J,K,Q,Z,$,ee,le,te,se,ne,ie,oe,ae,re,de,e("ul",null,[e("li",null,[n(s,{to:"/docs/extensions/modules"},{default:t(()=>[ue]),_:1})]),e("li",null,[n(s,{to:"/docs/extensions/panels"},{default:t(()=>[he]),_:1})])])])]),_:1})}}};export{be as default};
1
+ import{p as o,q as d,t as u,w as t,z as e,v as n,S as l}from"./vendor.a27160c3.js";const h={class:"markdown-body"},c=e("blockquote",null,[e("p",null,[l("Insights is a Module in Directus that allows rapid, no-code buildout of analytics dashboards. Regardless of your use-case "),e("em",null,"(be it business intelligence, user progress tracking, web traffic conversions, or whatever!)"),l(" you will be able to setup key data metrics in just a few clicks.")])],-1),p=e("video",{autoplay:"",muted:"",loop:"",controls:""},[e("source",{src:"https://cdn.directus.io/docs/v9/app-guide/insights/insights-20220216A/insights-dashboards-20220216A.mp4",type:"video/mp4"})],-1),g=e("p",null,[e("div",{class:"table-of-contents"},[e("ul",null,[e("li",null,[e("a",{href:"#how-it-works"},"How it Works")]),e("li",null,[e("a",{href:"#dashboards-overview"},"Dashboards Overview")]),e("li",null,[e("a",{href:"#create%2C-edit%2C-and-delete-dashboards"},"Create, Edit, and Delete Dashboards")]),e("li",null,[e("a",{href:"#panels-overview"},"Panels Overview")]),e("li",null,[e("a",{href:"#panel-header-options"},"Panel Header Options")]),e("li",null,[e("a",{href:"#labels"},"Labels")]),e("li",null,[e("a",{href:"#lists"},"Lists")]),e("li",null,[e("a",{href:"#metrics"},"Metrics")]),e("li",null,[e("a",{href:"#time-series"},"Time Series")]),e("li",null,[e("a",{href:"#extensibility-options"},"Extensibility Options")])])])],-1),m=e("h2",{id:"how-it-works"},[l("How it Works "),e("a",{class:"header-anchor",href:"#how-it-works"},"#")],-1),b=e("p",null,"First, create a Dashboard, then fill the Dashboard with Panels. Each Panel provides some unique type of analytics insight.",-1),f=e("video",{autoplay:"",muted:"",loop:"",controls:""},[e("source",{src:"https://cdn.directus.io/docs/v9/app-guide/insights/insights-20220216A/insights-how-it-works-20220216A_1.mp4",type:"video/mp4"})],-1),_=e("ol",null,[e("li",null,[l("Click the \u201CCreate Dashboard\u201D action button "),e("span",{mi:"",btn:""},"add"),l(" in the page header.")]),e("li",null,"Fill in the dashboard name, icon and note."),e("li",null,"Click \u201CSave\u201D."),e("li",null,"Click the edit icon in the page header."),e("li",null,[l("Hit the \u201CCreate Panel\u201D "),e("span",{mi:"",btn:""},"add"),l(" in the page header.")]),e("li",null,[l("Select a Panel type. "),e("a",{href:"#panels-overview"},"Learn More about panel types.")]),e("li",null,"Adjust the Panel Options to customize the analytics metric.")],-1),y=e("h2",{id:"dashboards-overview"},[l("Dashboards Overview "),e("a",{class:"header-anchor",href:"#dashboards-overview"},"#")],-1),v=l("Each Directus Dashboard provides a drag-and-drop canvas where you can create and arrange different Panels to easily build out customized analytics. The Dashboard area automatically expands as you add more and more Panels. In theory, a Dashboard area can expand infinitely large\u2026 but in practice, users will probably only want to build Dashboards as large as the screen they will be viewing on. You are able to create as many Dashboards as you need. Additionally, the Dashboard view, edit, and create permissions are "),w=l("fully configurable"),S=l(" by User Role."),x=e("p",null,[e("img",{src:"https://cdn.directus.io/docs/v9/app-guide/insights/insights-20220216A/dashboards-overview-20220216A.webp",alt:"Dashboard Grid Area"})],-1),D=e("h2",{id:"create%2C-edit%2C-and-delete-dashboards"},[l("Create, Edit, and Delete Dashboards "),e("a",{class:"header-anchor",href:"#create%2C-edit%2C-and-delete-dashboards"},"#")],-1),A=e("p",null,[e("img",{src:"https://cdn.directus.io/docs/v9/app-guide/insights/insights-20220216A/create-edit-delete-dashboards-20220216A.webp",alt:"How to Add, Edit and Delete Dashboards in Directus Insights"})],-1),C=e("ol",null,[e("li",null,[l("Click the "),e("span",{mi:"",btn:""},"add"),l(" icon in the page header to create a new Dashboard.")]),e("li",null,"Click the item option to edit or delete a Dashboard.")],-1),F=e("h2",{id:"panels-overview"},[l("Panels Overview "),e("a",{class:"header-anchor",href:"#panels-overview"},"#")],-1),P=e("p",null,"Panels are the building-blocks we add onto Insights dashboards to create, save and display data analytics. There are 4 types of Panels.",-1),k=e("p",null,[e("img",{src:"https://cdn.directus.io/docs/v9/app-guide/insights/insights-20220216A/panels-overview-20220216A.webp",alt:"Directus Dashboard Panels"})],-1),I=e("ol",null,[e("li",null,[e("strong",null,"Label"),l(" \u2013 Displays simple header text to describe other groups of panels. Doesn\u2019t actually provide data analysis.")]),e("li",null,[e("strong",null,"List"),l(" \u2013 Sortable, filterable list of items within a collection.")]),e("li",null,[e("strong",null,"Metric"),l(" \u2013 Sortable, filterable single-number metrics like sum, average, minimum and maximum, or first and last.")]),e("li",null,[e("strong",null,"Time Series"),l(" \u2013 Graph to display how metrics change over time. Provides same sorting, filtering and aggregation features seen in the list and metric panels.")])],-1),L=e("h2",{id:"panel-header-options"},[l("Panel Header Options "),e("a",{class:"header-anchor",href:"#panel-header-options"},"#")],-1),M=e("p",null,"All 4 panel types let you set custom text to provide quick and clear context about what a Panel represents. Panel Header options are exactly the same for all four Panel types. Headers are also totally optional and can be hidden.",-1),O=e("p",null,[e("img",{src:"https://cdn.directus.io/docs/v9/app-guide/insights/insights-20220216A/panel-header-options-20220216A.webp",alt:"Panel Header Options"})],-1),T=e("ul",null,[e("li",null,[e("strong",null,"Visible"),l(" \u2013 Determines if the header is visible or not.")]),e("li",null,[e("strong",null,"Name"),l(" \u2013 Sets a name in the header area.")]),e("li",null,[e("strong",null,"Icon"),l(" \u2013 Sets a small icon by the name.")]),e("li",null,[e("strong",null,"Color"),l(" \u2013 Sets a color for the icon.")]),e("li",null,[e("strong",null,"Note"),l(" \u2013 Sets a short description of the icon.")])],-1),H=e("h2",{id:"labels"},[l("Labels "),e("a",{class:"header-anchor",href:"#labels"},"#")],-1),E=e("p",null,[l("As the name implies, this panel simply allows you to "),e("em",null,"label"),l(" a group of other panels. Labels do not provide analytics. Labels simply help visually group the other panels ("),e("em",null,"which do provide analytics"),l(") and give context to your dashboard.")],-1),V=e("h3",{id:"label-panel-options"},[l("Label Panel Options "),e("a",{class:"header-anchor",href:"#label-panel-options"},"#")],-1),q=e("p",null,[e("img",{src:"https://cdn.directus.io/docs/v9/app-guide/insights/insights-20220216A/label-panel-options-20220216A.webp",alt:"Label Panel Options"})],-1),z=e("ul",null,[e("li",null,[e("strong",null,"Label"),l(" \u2013 Sets the label text.")]),e("li",null,[e("strong",null,"Color"),l(" \u2013 Sets the label text color.")])],-1),G=e("h2",{id:"lists"},[l("Lists "),e("a",{class:"header-anchor",href:"#lists"},"#")],-1),W=e("p",null,[l("List panels display some number of Items from a Collection, "),e("em",null,"as a list!"),l(" These Items displayed can be filtered by other criteria as well. So for example, you could show your top 5 selling products, 3 worst performing sales regions, 10 students with the highest GPA "),e("em",null,"that are also"),l(" in intramural sports, or create any other kind of ranked and/or filtered list that could be generated from your dataset.")],-1),N=e("h3",{id:"list-panel-options"},[l("List Panel Options "),e("a",{class:"header-anchor",href:"#list-panel-options"},"#")],-1),j=e("p",null,[e("img",{src:"https://cdn.directus.io/docs/v9/app-guide/insights/insights-20220216A/list-panel-options-20220216A.webp",alt:"List Panel Options"})],-1),B=e("ul",null,[e("li",null,[e("strong",null,"Collection"),l(" \u2013 Selects the Collection to rank.")]),e("li",null,[e("strong",null,"Limit"),l(" \u2013 Limits the number of Items that will appear in the Dashboard.")]),e("li",null,[e("strong",null,"Sort Field"),l(" \u2013 Sets the Collection Field you wish to order results by.")]),e("li",null,[e("strong",null,"Sort Direction"),l(" \u2013 Sets Items to display in ascending or descending order.")]),e("li",null,[e("strong",null,"Display Template"),l(" \u2013 Defines how List Items will be represented. Allows use of Field Item values as well as custom text.")]),e("li",null,[e("strong",null,"Filter"),l(" \u2013 Sets filters to only consider and rank Items that meet some criteria.")])],-1),R=e("h2",{id:"metrics"},[l("Metrics "),e("a",{class:"header-anchor",href:"#metrics"},"#")],-1),Y=e("p",null,"Metrics Panels allow you to aggregate all Items in a Field down to a single value.",-1),X=e("h3",{id:"metrics-panel-options"},[l("Metrics Panel Options "),e("a",{class:"header-anchor",href:"#metrics-panel-options"},"#")],-1),U=e("p",null,[e("img",{src:"https://cdn.directus.io/docs/v9/app-guide/insights/insights-20220216A/metric-panel-options-20220216A.webp",alt:"Metrics Panel Options"})],-1),J=e("ul",null,[e("li",null,[e("strong",null,"Collection"),l(" \u2013 Selects the Collection.")]),e("li",null,[e("strong",null,"Field"),l(" \u2013 Selects the Field to run aggregate function on.")]),e("li",null,[e("strong",null,"Aggregate Function"),l(" \u2013 Selects the type of aggregate to perform.")]),e("li",null,[e("strong",null,"Sort Field"),l(" \u2013 Sets the collection field you wish to order results by.")]),e("li",null,[e("strong",null,"Filter"),l(" \u2013 Sets filters to only run metrics on Items that meet some criteria.")])],-1),K=e("h3",{id:"more-on-aggregate-functions"},[l("More on Aggregate Functions "),e("a",{class:"header-anchor",href:"#more-on-aggregate-functions"},"#")],-1),Q=e("p",null,"Generally speaking, aggregate functions take a list of values and returns one single value.",-1),Z=e("ul",null,[e("li",null,[e("strong",null,"Count"),l(" \u2013 Counts the number of Items in a Field.")]),e("li",null,[e("strong",null,"Count (Distinct)"),l(" \u2013 Counts the number of "),e("em",null,"unique"),l(" Items in a field.")]),e("li",null,[e("strong",null,"Average"),l(" \u2013 Averages values of all Items in a Field.")]),e("li",null,[e("strong",null,"Average (Distinct)"),l(" \u2013 Averages values of all "),e("em",null,"unique"),l(" Items in a Field.")]),e("li",null,[e("strong",null,"Sum"),l(" \u2013 Sums the values of all Items in a Field.")]),e("li",null,[e("strong",null,"Sum (Distinct)"),l(" \u2013 Sums the values of all "),e("em",null,"unique"),l(" Items in a Field.")]),e("li",null,[e("strong",null,"Minimum"),l(" \u2013 Selects the lowest valued Item in a Field.")]),e("li",null,[e("strong",null,"Maximum"),l(" \u2013 Selects the highest valued Item in a Field.")]),e("li",null,[e("strong",null,"First"),l(" \u2013 Selects the first Item out of all Items in a Field.")]),e("li",null,[e("strong",null,"Last"),l(" \u2013 Selects the last Item out of all Items in a Field.")])],-1),$=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"First, Last, Minimum and Maximum"),e("p",null,"First, Last, Minimum and Maximum are not aggregates in the purely mathematical sense of the word. However, they are placed in this panel option because they return one single Item.")],-1),ee=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"Why are some Fields grayed out?"),e("p",null,[l("Certain Fields cannot be used with certain aggregate functions. For example, you cannot use the average function on Fields that store text, because text cannot be averaged. When there is a conflict between panel options, Fields will be grayed out and unselectable in the "),e("code",null,"field dropdown list"),l(".")])],-1),le=e("h3",{id:"style-and-format-options"},[l("Style and Format Options "),e("a",{class:"header-anchor",href:"#style-and-format-options"},"#")],-1),te=e("ul",null,[e("li",null,[e("strong",null,"Abbreviate Value"),l(" \u2013 Abbreviates large numbers with a letter "),e("em",null,"(e.g. 2,000 = 2k)"),l(".")]),e("li",null,[e("strong",null,"Decimals"),l(" \u2013 Changes the number of decimals displayed.")]),e("li",null,[e("strong",null,"Prefix"),l(" \u2013 Adds text before the aggregate metric.")]),e("li",null,[e("strong",null,"Suffix"),l(" \u2013 Adds text after the aggregate metric.")]),e("li",null,[e("strong",null,"Conditional Styles"),l(" \u2013 Changes color of number displayed if it is "),e("code",null,">"),l(", "),e("code",null,">="),l(", "),e("code",null,"<"),l(", "),e("code",null,"<="),l(", "),e("code",null,"=="),l(", or "),e("code",null,"!="),l(" to some defined value.")])],-1),se=e("h2",{id:"time-series"},[l("Time Series "),e("a",{class:"header-anchor",href:"#time-series"},"#")],-1),ne=e("p",null,"The Time Series Panel allows you to build graphs and see how data changes over time.",-1),ie=e("div",{class:"warning hint"},[e("div",{class:"hint-title"},"Time-oriented metrics only"),e("p",null,"In order to use this Panel, your Collection will need a datetime Field.")],-1),oe=e("p",null,[e("img",{src:"https://cdn.directus.io/docs/v9/app-guide/insights/insights-20220216A/time-series-panel-options-20220216A.webp",alt:"Time Series Panel Options"})],-1),ae=e("ul",null,[e("li",null,[e("strong",null,"Collection"),l(" \u2013 Selects the Collection you want to analyze.")]),e("li",null,[e("strong",null,"Color"),l(" \u2013 Sets color of your graph curve.")]),e("li",null,[e("strong",null,"Group Aggregation"),l(" \u2013 Selects the type of aggregation to perform. "),e("a",{href:"#more-on-aggregate-functions"},"Learn more.")]),e("li",null,[e("strong",null,"Group Precision"),l(" \u2013 Sets the time interval to aggregate by "),e("em",null,"(days, weeks, months, etc.)"),l(".")]),e("li",null,[e("strong",null,"Date Field"),l(" \u2013 Selects the datetime Field used along the x-axis.")]),e("li",null,[e("strong",null,"Date Range"),l(" \u2013 Selects the time range from which data should be displayed.")]),e("li",null,[e("strong",null,"Value Field"),l(" \u2013 Sets the Field you wish to aggregate.")]),e("li",null,[e("strong",null,"Value Decimals"),l(" \u2013 Changes the number of decimals displayed on the y-axis.")]),e("li",null,[e("strong",null,"Min Value"),l(" \u2013 Sets minimum value displayed on y-axis.")]),e("li",null,[e("strong",null,"Max Value"),l(" \u2013 Sets maximum value displayed on y-axis.")]),e("li",null,[e("strong",null,"Curve Type"),l(" \u2013 Sets curve to be shown as smooth, straight or stepline.")]),e("li",null,[e("strong",null,"Fill Type"),l(" \u2013 Sets fill type under curve to gradient, solid, or none.")]),e("li",null,[e("strong",null,"Filter"),l(" \u2013 Allows filtering of Items considered for analysis based on logical conditions.")]),e("li",null,[e("strong",null,"Show X-axis"),l(" \u2013 Toggles display of time along X-axis.")]),e("li",null,[e("strong",null,"Show Y-axis"),l(" \u2013 Toggles display of numeric values along Y-axis.")])],-1),re=e("h2",{id:"extensibility-options"},[l("Extensibility Options "),e("a",{class:"header-anchor",href:"#extensibility-options"},"#")],-1),de=e("p",null,"Teams that need highly advanced or specialized analytics options are able to extend, customize and modify this module as needed. Here are some great resources to get started down that track.",-1),ue=l("Extensions > Modules"),he=l("Extentions > Panels"),be={setup(ce,{expose:a}){const i={title:"Insights",modularExtension:!1};return a({frontmatter:i}),(pe,ge)=>{const s=o("router-link"),r=o("DocsWrapper");return d(),u(r,{frontmatter:i},{default:t(()=>[e("div",h,[c,p,g,m,b,f,_,y,e("p",null,[v,n(s,{to:"/docs/configuration/users-roles-permissions/#configuring-permissions"},{default:t(()=>[w]),_:1}),S]),x,D,A,C,F,P,k,I,L,M,O,T,H,E,V,q,z,G,W,N,j,B,R,Y,X,U,J,K,Q,Z,$,ee,le,te,se,ne,ie,oe,ae,re,de,e("ul",null,[e("li",null,[n(s,{to:"/docs/extensions/modules"},{default:t(()=>[ue]),_:1})]),e("li",null,[n(s,{to:"/docs/extensions/panels"},{default:t(()=>[he]),_:1})])])])]),_:1})}}};export{be as default};
@@ -1 +1 @@
1
- import{r as i,p as d,q as c,w as o,z as e,t as s,S as t}from"./vendor.32937068.js";const u={class:"markdown-body"},h=e("blockquote",null,[e("p",null,"Directus can be installed in many different ways and on several different stacks. You can choose between local, self-hosted on-premises, or our managed Cloud solution.")],-1),p=e("p",null,"While our CLI is the recommended method for self-hosting, you can use whichever of these self-hosted options best suits your needs. These methods offer a high level of customization and are ideal for intermediate developers.",-1),_=t("Command Line Interface (CLI)"),f=t("Docker"),m=t("Manually"),g={class:"tip hint"},k=e("div",{class:"hint-title"},"Development Environment",-1),y=t("To work on the Directus Core source code, please follow our "),b=t("Contributing Guide"),w=t("."),v=e("h2",{id:"deployment-guides"},[t("Deployment Guides "),e("a",{class:"header-anchor",href:"#deployment-guides"},"#")],-1),C=e("p",null,"The following guides will walk you through the self-hosted installation process for specific third-party platforms. These options are only recommended for developers familiar with these services and comfortable with more advanced setup. While Directus is always completely free, you will likely need to pay for these services.",-1),D=t("Generic Ubuntu"),I=t("Internet Information Services (IIS)"),F=t("Amazon AWS"),S=t("Google Cloud Platform"),T=t("DigitalOcean App Platform"),W=t("Shared Hosting with Plesk"),x=e("li",null,[e("a",{href:"https://docs.cleavr.io/guides/directus",target:"_blank",rel:"noopener noreferrer"},"Cleavr.io")],-1),L=e("h2",{id:"one-click-installs"},[t("One-Click Installs "),e("a",{class:"header-anchor",href:"#one-click-installs"},"#")],-1),j=e("p",null,"If you would like to completely avoid the manual installation process, the following self-hosted one-click apps will handle the heavy-lifting for you. While Directus is always completely free, you will likely need to pay for these services.",-1),z=t("Cloudron"),A=e("li",null,[e("a",{href:"https://marketplace.digitalocean.com/apps/directus?action=deploy&refcode=4c0b6062c16e",target:"_blank",rel:"noopener noreferrer"},"DigitalOcean")],-1),G=e("li",null,[e("a",{href:"https://heroku.com/deploy?template=https://github.com/directus-community/heroku-template",target:"_blank",rel:"noopener noreferrer"},"Heroku")],-1),O=e("li",null,[e("a",{href:"https://console.platform.sh/projects/create-project?template=https%3A%2F%2Fraw.githubusercontent.com%2Fplatformsh%2Ftemplate-builder%2Fmaster%2Ftemplates%2Fdirectus%2F.platform.template.yaml",target:"_blank",rel:"noopener noreferrer"},"Platform.sh")],-1),P=e("li",null,[e("a",{href:"https://deploy.zeet.co/?url=https://github.com/directus-community/heroku-template",target:"_blank",rel:"noopener noreferrer"},"Zeet")],-1),q=e("h2",{id:"directus-cloud"},[t("Directus Cloud "),e("a",{class:"header-anchor",href:"#directus-cloud"},"#")],-1),B=e("p",null,"In addition to the self-hosted options above, you can also choose to create Directus projects using our official Managed Cloud Service. This is the easiest way to get up-and-running with Directus \u2014 even for non-technical users. Unique features include dedicated hardware, automatic updates, automatic backups, usage-based pricing, and more.",-1),E=e("ul",null,[e("li",null,[e("a",{href:"http://directus.cloud/",target:"_blank",rel:"noopener noreferrer"},"Directus Cloud Dashboard")]),e("li",null,[e("a",{href:"https://directus.io/on-demand-cloud/",target:"_blank",rel:"noopener noreferrer"},"Learn more about On-Demand Cloud")]),e("li",null,[e("a",{href:"https://directus.io/enterprise-cloud/",target:"_blank",rel:"noopener noreferrer"},"Learn more about Enterprise Cloud")])],-1),U={setup(N,{expose:a}){const n={title:"Installation",modularExtension:!1};return a({frontmatter:n}),(V,H)=>{const l=i("router-link"),r=i("DocsWrapper");return d(),c(r,{frontmatter:n},{default:o(()=>[e("div",u,[h,p,e("ul",null,[e("li",null,[s(l,{to:"/docs/getting-started/installation/cli/"},{default:o(()=>[_]),_:1})]),e("li",null,[s(l,{to:"/docs/getting-started/installation/docker/"},{default:o(()=>[f]),_:1})]),e("li",null,[s(l,{to:"/docs/getting-started/installation/manual/"},{default:o(()=>[m]),_:1})])]),e("div",g,[k,e("p",null,[y,s(l,{to:"/docs/contributing/introduction"},{default:o(()=>[b]),_:1}),w])]),v,C,e("ul",null,[e("li",null,[s(l,{to:"/docs/getting-started/installation/ubuntu/"},{default:o(()=>[D]),_:1})]),e("li",null,[s(l,{to:"/docs/getting-started/installation/iis"},{default:o(()=>[I]),_:1})]),e("li",null,[s(l,{to:"/docs/getting-started/installation/aws"},{default:o(()=>[F]),_:1})]),e("li",null,[s(l,{to:"/docs/getting-started/installation/gcp"},{default:o(()=>[S]),_:1})]),e("li",null,[s(l,{to:"/docs/getting-started/installation/digitalocean-app-platform"},{default:o(()=>[T]),_:1})]),e("li",null,[s(l,{to:"/docs/getting-started/installation/plesk"},{default:o(()=>[W]),_:1})]),x]),L,j,e("ul",null,[e("li",null,[s(l,{to:"/docs/getting-started/installation/cloudron"},{default:o(()=>[z]),_:1})]),A,G,O,P]),q,B,E])]),_:1})}}};export{U as default};
1
+ import{p as i,q as c,t as d,w as o,z as e,v as s,S as t}from"./vendor.a27160c3.js";const u={class:"markdown-body"},h=e("blockquote",null,[e("p",null,"Directus can be installed in many different ways and on several different stacks. You can choose between local, self-hosted on-premises, or our managed Cloud solution.")],-1),p=e("p",null,"While our CLI is the recommended method for self-hosting, you can use whichever of these self-hosted options best suits your needs. These methods offer a high level of customization and are ideal for intermediate developers.",-1),_=t("Command Line Interface (CLI)"),f=t("Docker"),m=t("Manually"),g={class:"tip hint"},k=e("div",{class:"hint-title"},"Development Environment",-1),y=t("To work on the Directus Core source code, please follow our "),b=t("Contributing Guide"),w=t("."),v=e("h2",{id:"deployment-guides"},[t("Deployment Guides "),e("a",{class:"header-anchor",href:"#deployment-guides"},"#")],-1),C=e("p",null,"The following guides will walk you through the self-hosted installation process for specific third-party platforms. These options are only recommended for developers familiar with these services and comfortable with more advanced setup. While Directus is always completely free, you will likely need to pay for these services.",-1),D=t("Generic Ubuntu"),I=t("Internet Information Services (IIS)"),F=t("Amazon AWS"),S=t("Google Cloud Platform"),T=t("DigitalOcean App Platform"),W=t("Shared Hosting with Plesk"),x=e("li",null,[e("a",{href:"https://docs.cleavr.io/guides/directus",target:"_blank",rel:"noopener noreferrer"},"Cleavr.io")],-1),L=e("h2",{id:"one-click-installs"},[t("One-Click Installs "),e("a",{class:"header-anchor",href:"#one-click-installs"},"#")],-1),j=e("p",null,"If you would like to completely avoid the manual installation process, the following self-hosted one-click apps will handle the heavy-lifting for you. While Directus is always completely free, you will likely need to pay for these services.",-1),z=t("Cloudron"),A=e("li",null,[e("a",{href:"https://marketplace.digitalocean.com/apps/directus?action=deploy&refcode=4c0b6062c16e",target:"_blank",rel:"noopener noreferrer"},"DigitalOcean")],-1),G=e("li",null,[e("a",{href:"https://heroku.com/deploy?template=https://github.com/directus-community/heroku-template",target:"_blank",rel:"noopener noreferrer"},"Heroku")],-1),O=e("li",null,[e("a",{href:"https://console.platform.sh/projects/create-project?template=https%3A%2F%2Fraw.githubusercontent.com%2Fplatformsh%2Ftemplate-builder%2Fmaster%2Ftemplates%2Fdirectus%2F.platform.template.yaml",target:"_blank",rel:"noopener noreferrer"},"Platform.sh")],-1),P=e("li",null,[e("a",{href:"https://deploy.zeet.co/?url=https://github.com/directus-community/heroku-template",target:"_blank",rel:"noopener noreferrer"},"Zeet")],-1),q=e("h2",{id:"directus-cloud"},[t("Directus Cloud "),e("a",{class:"header-anchor",href:"#directus-cloud"},"#")],-1),B=e("p",null,"In addition to the self-hosted options above, you can also choose to create Directus projects using our official Managed Cloud Service. This is the easiest way to get up-and-running with Directus \u2014 even for non-technical users. Unique features include dedicated hardware, automatic updates, automatic backups, usage-based pricing, and more.",-1),E=e("ul",null,[e("li",null,[e("a",{href:"http://directus.cloud/",target:"_blank",rel:"noopener noreferrer"},"Directus Cloud Dashboard")]),e("li",null,[e("a",{href:"https://directus.io/on-demand-cloud/",target:"_blank",rel:"noopener noreferrer"},"Learn more about On-Demand Cloud")]),e("li",null,[e("a",{href:"https://directus.io/enterprise-cloud/",target:"_blank",rel:"noopener noreferrer"},"Learn more about Enterprise Cloud")])],-1),U={setup(N,{expose:a}){const n={title:"Installation",modularExtension:!1};return a({frontmatter:n}),(V,H)=>{const l=i("router-link"),r=i("DocsWrapper");return c(),d(r,{frontmatter:n},{default:o(()=>[e("div",u,[h,p,e("ul",null,[e("li",null,[s(l,{to:"/docs/getting-started/installation/cli/"},{default:o(()=>[_]),_:1})]),e("li",null,[s(l,{to:"/docs/getting-started/installation/docker/"},{default:o(()=>[f]),_:1})]),e("li",null,[s(l,{to:"/docs/getting-started/installation/manual/"},{default:o(()=>[m]),_:1})])]),e("div",g,[k,e("p",null,[y,s(l,{to:"/docs/contributing/introduction"},{default:o(()=>[b]),_:1}),w])]),v,C,e("ul",null,[e("li",null,[s(l,{to:"/docs/getting-started/installation/ubuntu/"},{default:o(()=>[D]),_:1})]),e("li",null,[s(l,{to:"/docs/getting-started/installation/iis"},{default:o(()=>[I]),_:1})]),e("li",null,[s(l,{to:"/docs/getting-started/installation/aws"},{default:o(()=>[F]),_:1})]),e("li",null,[s(l,{to:"/docs/getting-started/installation/gcp"},{default:o(()=>[S]),_:1})]),e("li",null,[s(l,{to:"/docs/getting-started/installation/digitalocean-app-platform"},{default:o(()=>[T]),_:1})]),e("li",null,[s(l,{to:"/docs/getting-started/installation/plesk"},{default:o(()=>[W]),_:1})]),x]),L,j,e("ul",null,[e("li",null,[s(l,{to:"/docs/getting-started/installation/cloudron"},{default:o(()=>[z]),_:1})]),A,G,O,P]),q,B,E])]),_:1})}}};export{U as default};
@@ -1,4 +1,4 @@
1
- import{r as a,p as r,q as d,w as n,z as e,t as o,S as t}from"./vendor.32937068.js";const h={class:"markdown-body"},u=t("Custom Interfaces allow you to create new ways of viewing or interacting with field data on the Item Detail page. "),p=t("Learn more about Interfaces"),f=t("."),_=e("h2",{id:"extension-entrypoint"},[t("Extension Entrypoint "),e("a",{class:"header-anchor",href:"#extension-entrypoint"},"#")],-1),m=e("p",null,[t("The entrypoint of your interface is the "),e("code",null,"index"),t(" file inside the "),e("code",null,"src/"),t(" folder of your extension package. It exports a configuration object with options to configure the behavior of your interface. When loading your interface, this object is imported by the Directus host.")],-1),y=e("p",null,"Example of an entrypoint:",-1),g=e("pre",null,[e("code",{class:"language-js"},[e("span",{class:"hljs-keyword"},"import"),t(" InterfaceComponent "),e("span",{class:"hljs-keyword"},"from"),t(),e("span",{class:"hljs-string"},"'./interface.vue'"),t(`;
1
+ import{p as a,q as r,t as d,w as n,z as e,v as o,S as t}from"./vendor.a27160c3.js";const h={class:"markdown-body"},u=t("Custom Interfaces allow you to create new ways of viewing or interacting with field data on the Item Detail page. "),p=t("Learn more about Interfaces"),f=t("."),_=e("h2",{id:"extension-entrypoint"},[t("Extension Entrypoint "),e("a",{class:"header-anchor",href:"#extension-entrypoint"},"#")],-1),m=e("p",null,[t("The entrypoint of your interface is the "),e("code",null,"index"),t(" file inside the "),e("code",null,"src/"),t(" folder of your extension package. It exports a configuration object with options to configure the behavior of your interface. When loading your interface, this object is imported by the Directus host.")],-1),y=e("p",null,"Example of an entrypoint:",-1),g=e("pre",null,[e("code",{class:"language-js"},[e("span",{class:"hljs-keyword"},"import"),t(" InterfaceComponent "),e("span",{class:"hljs-keyword"},"from"),t(),e("span",{class:"hljs-string"},"'./interface.vue'"),t(`;
2
2
 
3
3
  `),e("span",{class:"hljs-keyword"},"export"),t(),e("span",{class:"hljs-keyword"},"default"),t(` {
4
4
  `),e("span",{class:"hljs-attr"},"id"),t(": "),e("span",{class:"hljs-string"},"'custom'"),t(`,
@@ -1 +1 @@
1
- import{r as a,p as c,q as _,w as s,z as t,t as n,S as e}from"./vendor.32937068.js";const h={class:"markdown-body"},r=t("blockquote",null,[t("p",null,"In addition to being highly customizable, Directus has been architected to be completely modular and extensible. This ensures you will never hit a hard feature ceiling within the platform.")],-1),u=t("h2",{id:"extension-sdk"},[e("Extension SDK "),t("a",{class:"header-anchor",href:"#extension-sdk"},"#")],-1),p=e("The easiest way to start creating extensions is to use the "),x=e("Extensions SDK"),f=e("."),m=t("h2",{id:"app-extensions"},[e("App Extensions "),t("a",{class:"header-anchor",href:"#app-extensions"},"#")],-1),w=t("p",null,"Allow creating custom experiences within the Directus App.",-1),C=e("Modules"),g=e(" \u2014 Created with Vue.js"),j=e("Layouts"),k=e(" \u2014 Created with Vue.js"),y=e("Interfaces"),E=e(" \u2014 Created with Vue.js"),S=e("Displays"),V=e(" \u2014 Created with Vue.js"),b=e("Panels"),v=e(" \u2014 Created with Vue.js"),D=e("Themes"),N=e(" \u2014 Created with custom CSS"),A=t("h2",{id:"api-extensions"},[e("API Extensions "),t("a",{class:"header-anchor",href:"#api-extensions"},"#")],-1),T=t("p",null,"Allow extending and customizing the data pipeline and platform logic.",-1),q=e("Endpoints"),z=e(" \u2014 Created with JavaScript / Node.js"),B=e("Hooks"),I=e(" \u2014 Created with JavaScript / Node.js"),J=e("Email Templates"),K=e(" \u2014 Created with Liquid.js"),L=e("Migrations"),M=e(" \u2014 Created with JavaScript / Node.js"),G={setup(P,{expose:l}){const i={title:"Extensions",modularExtension:!1};return l({frontmatter:i}),(W,H)=>{const o=a("router-link"),d=a("DocsWrapper");return c(),_(d,{frontmatter:i},{default:s(()=>[t("div",h,[r,u,t("p",null,[p,n(o,{to:"/docs/extensions/creating-extensions/"},{default:s(()=>[x]),_:1}),f]),m,w,t("ul",null,[t("li",null,[n(o,{to:"/docs/extensions/modules/"},{default:s(()=>[C]),_:1}),g]),t("li",null,[n(o,{to:"/docs/extensions/layouts/"},{default:s(()=>[j]),_:1}),k]),t("li",null,[n(o,{to:"/docs/extensions/interfaces/"},{default:s(()=>[y]),_:1}),E]),t("li",null,[n(o,{to:"/docs/extensions/displays/"},{default:s(()=>[S]),_:1}),V]),t("li",null,[n(o,{to:"/docs/extensions/panels/"},{default:s(()=>[b]),_:1}),v]),t("li",null,[n(o,{to:"/docs/extensions/themes/"},{default:s(()=>[D]),_:1}),N])]),A,T,t("ul",null,[t("li",null,[n(o,{to:"/docs/extensions/endpoints/"},{default:s(()=>[q]),_:1}),z]),t("li",null,[n(o,{to:"/docs/extensions/hooks/"},{default:s(()=>[B]),_:1}),I]),t("li",null,[n(o,{to:"/docs/extensions/email-templates/"},{default:s(()=>[J]),_:1}),K]),t("li",null,[n(o,{to:"/docs/extensions/migrations/"},{default:s(()=>[L]),_:1}),M])])])]),_:1})}}};export{G as default};
1
+ import{p as a,q as c,t as _,w as s,z as t,v as n,S as e}from"./vendor.a27160c3.js";const h={class:"markdown-body"},r=t("blockquote",null,[t("p",null,"In addition to being highly customizable, Directus has been architected to be completely modular and extensible. This ensures you will never hit a hard feature ceiling within the platform.")],-1),u=t("h2",{id:"extension-sdk"},[e("Extension SDK "),t("a",{class:"header-anchor",href:"#extension-sdk"},"#")],-1),p=e("The easiest way to start creating extensions is to use the "),x=e("Extensions SDK"),f=e("."),m=t("h2",{id:"app-extensions"},[e("App Extensions "),t("a",{class:"header-anchor",href:"#app-extensions"},"#")],-1),w=t("p",null,"Allow creating custom experiences within the Directus App.",-1),C=e("Modules"),g=e(" \u2014 Created with Vue.js"),j=e("Layouts"),k=e(" \u2014 Created with Vue.js"),y=e("Interfaces"),v=e(" \u2014 Created with Vue.js"),E=e("Displays"),S=e(" \u2014 Created with Vue.js"),V=e("Panels"),b=e(" \u2014 Created with Vue.js"),D=e("Themes"),N=e(" \u2014 Created with custom CSS"),A=t("h2",{id:"api-extensions"},[e("API Extensions "),t("a",{class:"header-anchor",href:"#api-extensions"},"#")],-1),T=t("p",null,"Allow extending and customizing the data pipeline and platform logic.",-1),q=e("Endpoints"),z=e(" \u2014 Created with JavaScript / Node.js"),B=e("Hooks"),I=e(" \u2014 Created with JavaScript / Node.js"),J=e("Email Templates"),K=e(" \u2014 Created with Liquid.js"),L=e("Migrations"),M=e(" \u2014 Created with JavaScript / Node.js"),G={setup(P,{expose:l}){const i={title:"Extensions",modularExtension:!1};return l({frontmatter:i}),(W,H)=>{const o=a("router-link"),d=a("DocsWrapper");return c(),_(d,{frontmatter:i},{default:s(()=>[t("div",h,[r,u,t("p",null,[p,n(o,{to:"/docs/extensions/creating-extensions/"},{default:s(()=>[x]),_:1}),f]),m,w,t("ul",null,[t("li",null,[n(o,{to:"/docs/extensions/modules/"},{default:s(()=>[C]),_:1}),g]),t("li",null,[n(o,{to:"/docs/extensions/layouts/"},{default:s(()=>[j]),_:1}),k]),t("li",null,[n(o,{to:"/docs/extensions/interfaces/"},{default:s(()=>[y]),_:1}),v]),t("li",null,[n(o,{to:"/docs/extensions/displays/"},{default:s(()=>[E]),_:1}),S]),t("li",null,[n(o,{to:"/docs/extensions/panels/"},{default:s(()=>[V]),_:1}),b]),t("li",null,[n(o,{to:"/docs/extensions/themes/"},{default:s(()=>[D]),_:1}),N])]),A,T,t("ul",null,[t("li",null,[n(o,{to:"/docs/extensions/endpoints/"},{default:s(()=>[q]),_:1}),z]),t("li",null,[n(o,{to:"/docs/extensions/hooks/"},{default:s(()=>[B]),_:1}),I]),t("li",null,[n(o,{to:"/docs/extensions/email-templates/"},{default:s(()=>[J]),_:1}),K]),t("li",null,[n(o,{to:"/docs/extensions/migrations/"},{default:s(()=>[L]),_:1}),M])])])]),_:1})}}};export{G as default};
@@ -1 +1 @@
1
- import{r as a,p as u,q as d,w as o,z as e,t as s,S as t}from"./vendor.32937068.js";const c={class:"markdown-body"},h=e("blockquote",null,[e("p",null,"These Docs will help you get up-and-running quickly, guide you through advanced features, and explain the core concepts that make Directus so unique.")],-1),p=e("h2",{id:"what-is-directus%3F"},[t("What is Directus? "),e("a",{class:"header-anchor",href:"#what-is-directus%3F"},"#")],-1),g=e("p",null,[e("strong",null,"Directus is an Open Data Platform built to democratize the database."),t(" Its no-code app is safe and intuitive enough to make data accessible to everyone, while still providing the granular configuration and technical tools required by power-users and data scientists. For developers, a data connection toolkit provides a dynamic REST+GraphQL API, JavaScript SDK, and options for authorization, caching, and more.")],-1),f=e("p",null,[t("Written entirely in JavaScript (primarily "),e("a",{href:"https://nodejs.dev",target:"_blank",rel:"noopener noreferrer"},"Node.js"),t(" and "),e("a",{href:"https://vuejs.org",target:"_blank",rel:"noopener noreferrer"},"Vue.js"),t("), Directus is completely open-source, modular, and extensible, allowing it to be fully tailored to the requirements of any project. Below are the key features of the platform:")],-1),m=e("ul",null,[e("li",null,[e("strong",null,"No-Code App for anyone to manage data")]),e("li",null,[e("strong",null,"Data Connection Toolkit with REST & GraphQL")]),e("li",null,[e("strong",null,"Supports Any SQL Database")]),e("li",null,[e("strong",null,"Authorization & Caching")]),e("li",null,[e("strong",null,"Completely Free & Open Source")])],-1),_=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"What's in a name?"),e("p",null,[t("\u201CDirectus\u201D ("),e("a",{href:"http://audio.pronouncekiwi.com/Salli/Directus",target:"_blank",rel:"noopener noreferrer"},"duh REKT iss"),t(") is Latin for: "),e("em",null,"laid straight, arranged in lines"),t(". The broadest goal of our platform is to present data in a simple, orderly, and intuitive way.")])],-1),y=e("h2",{id:"use-cases"},[t("Use Cases "),e("a",{class:"header-anchor",href:"#use-cases"},"#")],-1),b=e("p",null,"As flexible as the database itself, Directus can power any data-driven project. Below are some examples of common ways the platform is used:",-1),w=e("ul",null,[e("li",null,[e("strong",null,"Headless CMS"),t(" \u2014 Whether you\u2019re building on JAMstack, server-side (SSR), static websites (SSG), etc \u2014 Open Data Platforms offer a modern and flexible way to manage every omnichannel digital experience.")]),e("li",null,[e("strong",null,"Apps, Games & IoT"),t(" \u2014 A powerful data backbone for any software or smart device, including: native or hybrid apps, VR/AR, customer kiosks, installations, microcontrollers, digital signage, and even smart appliances.")]),e("li",null,[e("strong",null,"No-Code App Builder"),t(" \u2014 Ditch the spreadsheet. Now anyone can create beautiful custom apps for managing customers, projects, inventory, knowledgebases, task lists, marketing, or anything else\u2026 all with zero code.")]),e("li",null,[e("strong",null,"Back-Office & BI Tools"),t(" \u2014 Gain insights into company KPIs and enable no-code exploration of business data. Coalesce previously siloed department data to give your team meaningful and actionable analytics.")]),e("li",null,[e("strong",null,"Digital Asset Management"),t(" \u2014 Aggregate all of your digital files in one place for improved organization, searchability, delivery, and integration with other datasets, all while enabling on-the-fly file transformations.")]),e("li",null,[e("strong",null,"Raw Data Visualization"),t(" \u2014 Establish a \u201Csingle source of truth\u201D for all of your disparate data while enabling non-technical users to build custom dashboards that generate meaningful insights from complex datasets.")])],-1),v=e("h2",{id:"core-principles"},[t("Core Principles "),e("a",{class:"header-anchor",href:"#core-principles"},"#")],-1),k=e("p",null,"Directus is a simple solution for complex problems, with a data-first approach guided by the following core principles:",-1),D=e("ul",null,[e("li",null,[e("strong",null,"Pure"),t(" \u2014 No predefined or proprietary schema, with all system metadata stored separately")]),e("li",null,[e("strong",null,"Open"),t(" \u2014 Public and transparent codebase with no obfuscated or cloud-only code")]),e("li",null,[e("strong",null,"Portable"),t(" \u2014 Database can be exported or migrated at any time with no vendor lock-in")]),e("li",null,[e("strong",null,"Limitless"),t(" \u2014 No artificial limitations or paywalls on users, roles, languages, collections, or items")]),e("li",null,[e("strong",null,"Extensible"),t(" \u2014 Every aspect of the platform is modular to avoid any hard feature ceilings")]),e("li",null,[e("strong",null,"Unopinionated"),t(" \u2014 Choose your stack, database, and architecture; self-hosted or on cloud")])],-1),x=e("h2",{id:"database-mirroring"},[t("Database Mirroring "),e("a",{class:"header-anchor",href:"#database-mirroring"},"#")],-1),A=e("p",null,[e("strong",null,[t("Directus is installed as a "),e("em",null,"layer"),t(" on top of your new or existing SQL database, with its App and API dynamically \u201Cmirroring\u201D your actual schema and content in real-time.")]),t(" This approach is similar to how technical database clients (like "),e("em",null,"phpMyAdmin"),t(") work, however Directus provides an experience that is safe, intuitive, and powerful enough for anyone\u2026 even the most non-technical users.")],-1),S=t("To keep things simple, Directus uses friendlier names for database terms, including "),C=t("Project"),T=t(" (database), "),P=t("Collection"),I=t(" (table), "),E=t("Field"),j=t(" (column), "),L=t("Item"),M=t(" (record), and "),q=t("Type"),z=t(" (datatype)."),N=e("p",null,"Database mirroring has many unique advantages:",-1),O=e("ul",null,[e("li",null,"Control over your pure SQL database schema, tailored to your exact requirements"),e("li",null,"Significant performance improvements through optimizations and indexing"),e("li",null,"Complete transparency, portability, and security for your data"),e("li",null,"Direct database access and the full power of raw/complex SQL queries"),e("li",null,"Allows importing existing databases, unaltered and without any migrations")],-1),W=e("p",null,"Other platforms typically use a predefined or proprietary \u201Cone-size-fits-all\u201D data model to store your content (have you ever peeked behind the curtain of a WordPress installation? Yikes!). That is not the case with Directus. Directus gives you direct access to your pure and unaltered data. That means you have the option to bypass the Directus middleware (API, SDK, App) and connect to your data with proper SQL queries. This effectively removes all bottlenecks, latency overhead, and proprietary access limitations.",-1),B=e("h2",{id:"modular-%26-extensible"},[t("Modular & Extensible "),e("a",{class:"header-anchor",href:"#modular-%26-extensible"},"#")],-1),G=e("p",null,"What makes Directus so flexible is that it has been designed from the ground up with complete extensibility, helping avoid a feature ceiling. In addition to offering our software\u2019s codebase as open-source, we\u2019ve included the following extension types in the platform\u2019s App and API.",-1),V=t("Displays"),Q=t(" \u2014 A small inline preview of a field\u2019s value"),R=t("Email Templates"),F=t(" \u2014 Custom structure and formatting for emails"),H=t("Endpoints"),K=t(" \u2014 Custom registered API endpoints"),J=t("Hooks"),U=t(" \u2014 Event and interval hooks for triggering custom logic"),Y=t("Interfaces"),X=t(" \u2014 How you view or interact with a field and its value"),Z=t("Layouts"),$=t(" \u2014 How you browse, view or interact with a set of Items in a Collection"),ee=t("Migrations"),te=t(" \u2014 Custom migrations for tracking project schema and content updates"),oe=t("Modules"),ne=t(" \u2014 The highest and broadest level of organization within the App"),se=t("Panels"),re=t(" \u2014 A way to view dashboard data within the Insights Module"),ae=t("Themes"),le=t(" \u2014 Whitelabeling through App Themes and Custom CSS"),ie=e("h2",{id:"the-directus-ecosystem"},[t("The Directus Ecosystem "),e("a",{class:"header-anchor",href:"#the-directus-ecosystem"},"#")],-1),ue=e("ul",null,[e("li",null,[e("strong",null,[e("a",{href:"https://github.com/directus/directus",target:"_blank",rel:"noopener noreferrer"},"GitHub")]),t(" \u2014 The open-source repository and version control")]),e("li",null,[e("strong",null,[e("a",{href:"https://www.npmjs.com/package/directus",target:"_blank",rel:"noopener noreferrer"},"NPM Package")]),t(" \u2014 The official Directus node package")]),e("li",null,[e("strong",null,[e("a",{href:"https://hub.docker.com/r/directus/directus",target:"_blank",rel:"noopener noreferrer"},"Docker Image")]),t(" \u2014 The official Directus docker image")]),e("li",null,[e("strong",null,[e("a",{href:"https://docs.directus.io",target:"_blank",rel:"noopener noreferrer"},"Documentation")]),t(" \u2014 Docs for the most recent version of our platform")]),e("li",null,[e("strong",null,[e("a",{href:"https://directus.cloud",target:"_blank",rel:"noopener noreferrer"},"On-Demand Cloud")]),t(" \u2014 Our self-service managed solution (multitenant)")]),e("li",null,[e("strong",null,[e("a",{href:"https://directus.cloud",target:"_blank",rel:"noopener noreferrer"},"Enterprise Cloud")]),t(" \u2014 Our tailored managed solution (single tenant)")]),e("li",null,[e("strong",null,[e("a",{href:"https://directus.cloud/docs",target:"_blank",rel:"noopener noreferrer"},"Cloud Documentation")]),t(" \u2014 Docs for the managed cloud dashboard")]),e("li",null,[e("strong",null,[e("a",{href:"https://directus.cloud/docs#creating-a-private-demo",target:"_blank",rel:"noopener noreferrer"},"Private Demos")]),t(" \u2014 Instructions on creating a free cloud demo")]),e("li",null,[e("strong",null,[e("a",{href:"https://status.directus.cloud",target:"_blank",rel:"noopener noreferrer"},"System Status")]),t(" \u2014 Up-to-date information on our various cloud systems")]),e("li",null,[e("strong",null,[e("a",{href:"https://directus.io",target:"_blank",rel:"noopener noreferrer"},"Website")]),t(" \u2014 General information, resources, and team info")]),e("li",null,[e("strong",null,[e("a",{href:"https://twitter.com/directus",target:"_blank",rel:"noopener noreferrer"},"Twitter")]),t(" \u2014 The latest product info and sneak-peeks")]),e("li",null,[e("strong",null,[e("a",{href:"https://www.youtube.com/c/DirectusVideos",target:"_blank",rel:"noopener noreferrer"},"Videos")]),t(" \u2014 Our YouTube channel with video tutorials and feature overviews")]),e("li",null,[e("strong",null,[e("a",{href:"https://directus.chat",target:"_blank",rel:"noopener noreferrer"},"Discord")]),t(" \u2014 A growing community of 4K+ developers")]),e("li",null,[e("strong",null,[e("a",{href:"https://locales.directus.io/",target:"_blank",rel:"noopener noreferrer"},"Crowdin")]),t(" \u2014 Service for managing the App\u2019s many language translations")]),e("li",null,[e("strong",null,[e("a",{href:"https://directus.market/",target:"_blank",rel:"noopener noreferrer"},"Marketplace")]),t(" \u2014 Coming in 2021, will offer a unified portal for platform extensions")]),e("li",null,[e("strong",null,[e("a",{href:"https://github.com/directus-community/awesome-directus",target:"_blank",rel:"noopener noreferrer"},"Awesome List")]),t(" \u2014 A list of awesome things related to Directus")])],-1),ge={setup(de,{expose:l}){const r={title:"Getting Started",modularExtension:!1};return l({frontmatter:r}),(ce,he)=>{const n=a("router-link"),i=a("DocsWrapper");return u(),d(i,{frontmatter:r},{default:o(()=>[e("div",c,[h,p,g,f,m,_,y,b,w,v,k,D,x,A,e("p",null,[S,s(n,{to:"/docs/getting-started/glossary/#projects"},{default:o(()=>[C]),_:1}),T,s(n,{to:"/docs/getting-started/glossary/#collections"},{default:o(()=>[P]),_:1}),I,s(n,{to:"/docs/getting-started/glossary/#fields"},{default:o(()=>[E]),_:1}),j,s(n,{to:"/docs/getting-started/glossary/#items"},{default:o(()=>[L]),_:1}),M,s(n,{to:"/docs/getting-started/glossary/#types"},{default:o(()=>[q]),_:1}),z]),N,O,W,B,G,e("ul",null,[e("li",null,[e("strong",null,[s(n,{to:"/docs/extensions/displays/"},{default:o(()=>[V]),_:1})]),Q]),e("li",null,[e("strong",null,[s(n,{to:"/docs/extensions/email-templates/"},{default:o(()=>[R]),_:1})]),F]),e("li",null,[e("strong",null,[s(n,{to:"/docs/extensions/endpoints/"},{default:o(()=>[H]),_:1})]),K]),e("li",null,[e("strong",null,[s(n,{to:"/docs/extensions/hooks/"},{default:o(()=>[J]),_:1})]),U]),e("li",null,[e("strong",null,[s(n,{to:"/docs/extensions/interfaces/"},{default:o(()=>[Y]),_:1})]),X]),e("li",null,[e("strong",null,[s(n,{to:"/docs/extensions/layouts/"},{default:o(()=>[Z]),_:1})]),$]),e("li",null,[e("strong",null,[s(n,{to:"/docs/extensions/migrations/"},{default:o(()=>[ee]),_:1})]),te]),e("li",null,[e("strong",null,[s(n,{to:"/docs/extensions/modules/"},{default:o(()=>[oe]),_:1})]),ne]),e("li",null,[e("strong",null,[s(n,{to:"/docs/extensions/panels/"},{default:o(()=>[se]),_:1})]),re]),e("li",null,[e("strong",null,[s(n,{to:"/docs/extensions/themes/"},{default:o(()=>[ae]),_:1})]),le])]),ie,ue])]),_:1})}}};export{ge as default};
1
+ import{p as a,q as u,t as d,w as o,z as e,v as s,S as t}from"./vendor.a27160c3.js";const c={class:"markdown-body"},h=e("blockquote",null,[e("p",null,"These Docs will help you get up-and-running quickly, guide you through advanced features, and explain the core concepts that make Directus so unique.")],-1),p=e("h2",{id:"what-is-directus%3F"},[t("What is Directus? "),e("a",{class:"header-anchor",href:"#what-is-directus%3F"},"#")],-1),g=e("p",null,[e("strong",null,"Directus is an Open Data Platform built to democratize the database."),t(" Its no-code app is safe and intuitive enough to make data accessible to everyone, while still providing the granular configuration and technical tools required by power-users and data scientists. For developers, a data connection toolkit provides a dynamic REST+GraphQL API, JavaScript SDK, and options for authorization, caching, and more.")],-1),f=e("p",null,[t("Written entirely in JavaScript (primarily "),e("a",{href:"https://nodejs.dev",target:"_blank",rel:"noopener noreferrer"},"Node.js"),t(" and "),e("a",{href:"https://vuejs.org",target:"_blank",rel:"noopener noreferrer"},"Vue.js"),t("), Directus is completely open-source, modular, and extensible, allowing it to be fully tailored to the requirements of any project. Below are the key features of the platform:")],-1),m=e("ul",null,[e("li",null,[e("strong",null,"No-Code App for anyone to manage data")]),e("li",null,[e("strong",null,"Data Connection Toolkit with REST & GraphQL")]),e("li",null,[e("strong",null,"Supports Any SQL Database")]),e("li",null,[e("strong",null,"Authorization & Caching")]),e("li",null,[e("strong",null,"Completely Free & Open Source")])],-1),_=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"What's in a name?"),e("p",null,[t("\u201CDirectus\u201D ("),e("a",{href:"http://audio.pronouncekiwi.com/Salli/Directus",target:"_blank",rel:"noopener noreferrer"},"duh REKT iss"),t(") is Latin for: "),e("em",null,"laid straight, arranged in lines"),t(". The broadest goal of our platform is to present data in a simple, orderly, and intuitive way.")])],-1),y=e("h2",{id:"use-cases"},[t("Use Cases "),e("a",{class:"header-anchor",href:"#use-cases"},"#")],-1),b=e("p",null,"As flexible as the database itself, Directus can power any data-driven project. Below are some examples of common ways the platform is used:",-1),w=e("ul",null,[e("li",null,[e("strong",null,"Headless CMS"),t(" \u2014 Whether you\u2019re building on JAMstack, server-side (SSR), static websites (SSG), etc \u2014 Open Data Platforms offer a modern and flexible way to manage every omnichannel digital experience.")]),e("li",null,[e("strong",null,"Apps, Games & IoT"),t(" \u2014 A powerful data backbone for any software or smart device, including: native or hybrid apps, VR/AR, customer kiosks, installations, microcontrollers, digital signage, and even smart appliances.")]),e("li",null,[e("strong",null,"No-Code App Builder"),t(" \u2014 Ditch the spreadsheet. Now anyone can create beautiful custom apps for managing customers, projects, inventory, knowledgebases, task lists, marketing, or anything else\u2026 all with zero code.")]),e("li",null,[e("strong",null,"Back-Office & BI Tools"),t(" \u2014 Gain insights into company KPIs and enable no-code exploration of business data. Coalesce previously siloed department data to give your team meaningful and actionable analytics.")]),e("li",null,[e("strong",null,"Digital Asset Management"),t(" \u2014 Aggregate all of your digital files in one place for improved organization, searchability, delivery, and integration with other datasets, all while enabling on-the-fly file transformations.")]),e("li",null,[e("strong",null,"Raw Data Visualization"),t(" \u2014 Establish a \u201Csingle source of truth\u201D for all of your disparate data while enabling non-technical users to build custom dashboards that generate meaningful insights from complex datasets.")])],-1),v=e("h2",{id:"core-principles"},[t("Core Principles "),e("a",{class:"header-anchor",href:"#core-principles"},"#")],-1),k=e("p",null,"Directus is a simple solution for complex problems, with a data-first approach guided by the following core principles:",-1),D=e("ul",null,[e("li",null,[e("strong",null,"Pure"),t(" \u2014 No predefined or proprietary schema, with all system metadata stored separately")]),e("li",null,[e("strong",null,"Open"),t(" \u2014 Public and transparent codebase with no obfuscated or cloud-only code")]),e("li",null,[e("strong",null,"Portable"),t(" \u2014 Database can be exported or migrated at any time with no vendor lock-in")]),e("li",null,[e("strong",null,"Limitless"),t(" \u2014 No artificial limitations or paywalls on users, roles, languages, collections, or items")]),e("li",null,[e("strong",null,"Extensible"),t(" \u2014 Every aspect of the platform is modular to avoid any hard feature ceilings")]),e("li",null,[e("strong",null,"Unopinionated"),t(" \u2014 Choose your stack, database, and architecture; self-hosted or on cloud")])],-1),x=e("h2",{id:"database-mirroring"},[t("Database Mirroring "),e("a",{class:"header-anchor",href:"#database-mirroring"},"#")],-1),A=e("p",null,[e("strong",null,[t("Directus is installed as a "),e("em",null,"layer"),t(" on top of your new or existing SQL database, with its App and API dynamically \u201Cmirroring\u201D your actual schema and content in real-time.")]),t(" This approach is similar to how technical database clients (like "),e("em",null,"phpMyAdmin"),t(") work, however Directus provides an experience that is safe, intuitive, and powerful enough for anyone\u2026 even the most non-technical users.")],-1),S=t("To keep things simple, Directus uses friendlier names for database terms, including "),C=t("Project"),T=t(" (database), "),P=t("Collection"),I=t(" (table), "),E=t("Field"),j=t(" (column), "),L=t("Item"),M=t(" (record), and "),q=t("Type"),z=t(" (datatype)."),N=e("p",null,"Database mirroring has many unique advantages:",-1),O=e("ul",null,[e("li",null,"Control over your pure SQL database schema, tailored to your exact requirements"),e("li",null,"Significant performance improvements through optimizations and indexing"),e("li",null,"Complete transparency, portability, and security for your data"),e("li",null,"Direct database access and the full power of raw/complex SQL queries"),e("li",null,"Allows importing existing databases, unaltered and without any migrations")],-1),W=e("p",null,"Other platforms typically use a predefined or proprietary \u201Cone-size-fits-all\u201D data model to store your content (have you ever peeked behind the curtain of a WordPress installation? Yikes!). That is not the case with Directus. Directus gives you direct access to your pure and unaltered data. That means you have the option to bypass the Directus middleware (API, SDK, App) and connect to your data with proper SQL queries. This effectively removes all bottlenecks, latency overhead, and proprietary access limitations.",-1),B=e("h2",{id:"modular-%26-extensible"},[t("Modular & Extensible "),e("a",{class:"header-anchor",href:"#modular-%26-extensible"},"#")],-1),G=e("p",null,"What makes Directus so flexible is that it has been designed from the ground up with complete extensibility, helping avoid a feature ceiling. In addition to offering our software\u2019s codebase as open-source, we\u2019ve included the following extension types in the platform\u2019s App and API.",-1),V=t("Displays"),Q=t(" \u2014 A small inline preview of a field\u2019s value"),R=t("Email Templates"),F=t(" \u2014 Custom structure and formatting for emails"),H=t("Endpoints"),K=t(" \u2014 Custom registered API endpoints"),J=t("Hooks"),U=t(" \u2014 Event and interval hooks for triggering custom logic"),Y=t("Interfaces"),X=t(" \u2014 How you view or interact with a field and its value"),Z=t("Layouts"),$=t(" \u2014 How you browse, view or interact with a set of Items in a Collection"),ee=t("Migrations"),te=t(" \u2014 Custom migrations for tracking project schema and content updates"),oe=t("Modules"),ne=t(" \u2014 The highest and broadest level of organization within the App"),se=t("Panels"),re=t(" \u2014 A way to view dashboard data within the Insights Module"),ae=t("Themes"),le=t(" \u2014 Whitelabeling through App Themes and Custom CSS"),ie=e("h2",{id:"the-directus-ecosystem"},[t("The Directus Ecosystem "),e("a",{class:"header-anchor",href:"#the-directus-ecosystem"},"#")],-1),ue=e("ul",null,[e("li",null,[e("strong",null,[e("a",{href:"https://github.com/directus/directus",target:"_blank",rel:"noopener noreferrer"},"GitHub")]),t(" \u2014 The open-source repository and version control")]),e("li",null,[e("strong",null,[e("a",{href:"https://www.npmjs.com/package/directus",target:"_blank",rel:"noopener noreferrer"},"NPM Package")]),t(" \u2014 The official Directus node package")]),e("li",null,[e("strong",null,[e("a",{href:"https://hub.docker.com/r/directus/directus",target:"_blank",rel:"noopener noreferrer"},"Docker Image")]),t(" \u2014 The official Directus docker image")]),e("li",null,[e("strong",null,[e("a",{href:"https://docs.directus.io",target:"_blank",rel:"noopener noreferrer"},"Documentation")]),t(" \u2014 Docs for the most recent version of our platform")]),e("li",null,[e("strong",null,[e("a",{href:"https://directus.cloud",target:"_blank",rel:"noopener noreferrer"},"On-Demand Cloud")]),t(" \u2014 Our self-service managed solution (multitenant)")]),e("li",null,[e("strong",null,[e("a",{href:"https://directus.cloud",target:"_blank",rel:"noopener noreferrer"},"Enterprise Cloud")]),t(" \u2014 Our tailored managed solution (single tenant)")]),e("li",null,[e("strong",null,[e("a",{href:"https://directus.cloud/docs",target:"_blank",rel:"noopener noreferrer"},"Cloud Documentation")]),t(" \u2014 Docs for the managed cloud dashboard")]),e("li",null,[e("strong",null,[e("a",{href:"https://directus.cloud/docs#creating-a-private-demo",target:"_blank",rel:"noopener noreferrer"},"Private Demos")]),t(" \u2014 Instructions on creating a free cloud demo")]),e("li",null,[e("strong",null,[e("a",{href:"https://status.directus.cloud",target:"_blank",rel:"noopener noreferrer"},"System Status")]),t(" \u2014 Up-to-date information on our various cloud systems")]),e("li",null,[e("strong",null,[e("a",{href:"https://directus.io",target:"_blank",rel:"noopener noreferrer"},"Website")]),t(" \u2014 General information, resources, and team info")]),e("li",null,[e("strong",null,[e("a",{href:"https://twitter.com/directus",target:"_blank",rel:"noopener noreferrer"},"Twitter")]),t(" \u2014 The latest product info and sneak-peeks")]),e("li",null,[e("strong",null,[e("a",{href:"https://www.youtube.com/c/DirectusVideos",target:"_blank",rel:"noopener noreferrer"},"Videos")]),t(" \u2014 Our YouTube channel with video tutorials and feature overviews")]),e("li",null,[e("strong",null,[e("a",{href:"https://directus.chat",target:"_blank",rel:"noopener noreferrer"},"Discord")]),t(" \u2014 A growing community of 4K+ developers")]),e("li",null,[e("strong",null,[e("a",{href:"https://locales.directus.io/",target:"_blank",rel:"noopener noreferrer"},"Crowdin")]),t(" \u2014 Service for managing the App\u2019s many language translations")]),e("li",null,[e("strong",null,[e("a",{href:"https://directus.market/",target:"_blank",rel:"noopener noreferrer"},"Marketplace")]),t(" \u2014 Coming in 2021, will offer a unified portal for platform extensions")]),e("li",null,[e("strong",null,[e("a",{href:"https://github.com/directus-community/awesome-directus",target:"_blank",rel:"noopener noreferrer"},"Awesome List")]),t(" \u2014 A list of awesome things related to Directus")])],-1),ge={setup(de,{expose:l}){const r={title:"Getting Started",modularExtension:!1};return l({frontmatter:r}),(ce,he)=>{const n=a("router-link"),i=a("DocsWrapper");return u(),d(i,{frontmatter:r},{default:o(()=>[e("div",c,[h,p,g,f,m,_,y,b,w,v,k,D,x,A,e("p",null,[S,s(n,{to:"/docs/getting-started/glossary/#projects"},{default:o(()=>[C]),_:1}),T,s(n,{to:"/docs/getting-started/glossary/#collections"},{default:o(()=>[P]),_:1}),I,s(n,{to:"/docs/getting-started/glossary/#fields"},{default:o(()=>[E]),_:1}),j,s(n,{to:"/docs/getting-started/glossary/#items"},{default:o(()=>[L]),_:1}),M,s(n,{to:"/docs/getting-started/glossary/#types"},{default:o(()=>[q]),_:1}),z]),N,O,W,B,G,e("ul",null,[e("li",null,[e("strong",null,[s(n,{to:"/docs/extensions/displays/"},{default:o(()=>[V]),_:1})]),Q]),e("li",null,[e("strong",null,[s(n,{to:"/docs/extensions/email-templates/"},{default:o(()=>[R]),_:1})]),F]),e("li",null,[e("strong",null,[s(n,{to:"/docs/extensions/endpoints/"},{default:o(()=>[H]),_:1})]),K]),e("li",null,[e("strong",null,[s(n,{to:"/docs/extensions/hooks/"},{default:o(()=>[J]),_:1})]),U]),e("li",null,[e("strong",null,[s(n,{to:"/docs/extensions/interfaces/"},{default:o(()=>[Y]),_:1})]),X]),e("li",null,[e("strong",null,[s(n,{to:"/docs/extensions/layouts/"},{default:o(()=>[Z]),_:1})]),$]),e("li",null,[e("strong",null,[s(n,{to:"/docs/extensions/migrations/"},{default:o(()=>[ee]),_:1})]),te]),e("li",null,[e("strong",null,[s(n,{to:"/docs/extensions/modules/"},{default:o(()=>[oe]),_:1})]),ne]),e("li",null,[e("strong",null,[s(n,{to:"/docs/extensions/panels/"},{default:o(()=>[se]),_:1})]),re]),e("li",null,[e("strong",null,[s(n,{to:"/docs/extensions/themes/"},{default:o(()=>[ae]),_:1})]),le])]),ie,ue])]),_:1})}}};export{ge as default};
@@ -1,4 +1,4 @@
1
- import{r as o,p as d,q as h,w as n,z as t,t as a,S as e}from"./vendor.32937068.js";const c={class:"markdown-body"},u=t("blockquote",null,[t("p",null,"Directus offers both a RESTful and GraphQL API to manage the data in the database. The API has predictable resource-oriented URLs, relies on standard HTTP status codes, and uses JSON for input and output.")],-1),p=t("p",null,[t("div",{class:"table-of-contents"},[t("ul",null,[t("li",null,[t("a",{href:"#dynamic-api"},"Dynamic API")]),t("li",null,[t("a",{href:"#rest-vs.-graphql"},"REST vs. GraphQL")]),t("li",null,[t("a",{href:"#authentication"},"Authentication")]),t("li",null,[t("a",{href:"#relational-data"},"Relational Data")]),t("li",null,[t("a",{href:"#search-http-method"},"SEARCH HTTP Method")]),t("li",null,[t("a",{href:"#system-data-in-graphql"},"System data in GraphQL")]),t("li",null,[t("a",{href:"#error-codes"},"Error Codes")])])])],-1),_=t("h2",{id:"dynamic-api"},[e("Dynamic API "),t("a",{class:"header-anchor",href:"#dynamic-api"},"#")],-1),f=e("The platform\u2019s API uses "),m=e("Database Mirroring"),y=e(" to dynamically generate REST endpoints and a GraphQL schema based on the connected database\u2019s architecture. Since these endpoints return data based on your specific schema and configured permissions, the input/output of the API differs greatly for individual installations."),g=t("h2",{id:"rest-vs.-graphql"},[e("REST vs. GraphQL "),t("a",{class:"header-anchor",href:"#rest-vs.-graphql"},"#")],-1),b=t("p",null,[t("strong",null,"There is no difference in the functionality available between the REST and GraphQL endpoints."),e(" The functionality available in both is mapped to the same set of core services, meaning that you don\u2019t lose any performance or capabilities by choosing one or the other.")],-1),w=t("p",null,"Which one you choose is ultimately up to you.",-1),T=t("h2",{id:"authentication"},[e("Authentication "),t("a",{class:"header-anchor",href:"#authentication"},"#")],-1),j=e("By default, all data in the system is off-limits for unauthenticated users. To gain access to protected data, you must "),v=e("include an access token with every request"),E=e(", or "),A=e("configure permissions for the public role"),k=e("."),I=t("p",null,"Useful references:",-1),D=e("Authenticating into the API"),P=e("Login endpoint reference"),S=t("h2",{id:"relational-data"},[e("Relational Data "),t("a",{class:"header-anchor",href:"#relational-data"},"#")],-1),q=e("Directus only retrieves the fields in your items that explicitly have been requested. Relational data can be retrieved nested by using "),R=e("the "),L=t("code",null,"fields",-1),x=e(" parameter"),C=e(" in REST, or regular nested queries in GraphQL. This allows you to retrieve the author of your article included in the articles data, or fetch related log entry points for your app\u2019s analytics data for example."),H=t("h3",{id:"creating-%2F-updating-%2F-deleting"},[e("Creating / Updating / Deleting "),t("a",{class:"header-anchor",href:"#creating-%2F-updating-%2F-deleting"},"#")],-1),O=t("p",null,"Similarly to fetching, relational content can be modified deeply as well.",-1),N=t("h4",{id:"many-to-one"},[e("Many-to-One "),t("a",{class:"header-anchor",href:"#many-to-one"},"#")],-1),M=t("p",null,"Many-to-One relationships are fairly straightforward to manage relationally. You can simply submit the changes you want as an object under the relational key in your collection. For example, if you wanted to create a new featured article on your page, you could submit:",-1),U=t("pre",null,[t("code",{class:"language-json"},[e(`{
1
+ import{p as o,q as d,t as h,w as n,z as t,v as a,S as e}from"./vendor.a27160c3.js";const c={class:"markdown-body"},u=t("blockquote",null,[t("p",null,"Directus offers both a RESTful and GraphQL API to manage the data in the database. The API has predictable resource-oriented URLs, relies on standard HTTP status codes, and uses JSON for input and output.")],-1),p=t("p",null,[t("div",{class:"table-of-contents"},[t("ul",null,[t("li",null,[t("a",{href:"#dynamic-api"},"Dynamic API")]),t("li",null,[t("a",{href:"#rest-vs.-graphql"},"REST vs. GraphQL")]),t("li",null,[t("a",{href:"#authentication"},"Authentication")]),t("li",null,[t("a",{href:"#relational-data"},"Relational Data")]),t("li",null,[t("a",{href:"#search-http-method"},"SEARCH HTTP Method")]),t("li",null,[t("a",{href:"#system-data-in-graphql"},"System data in GraphQL")]),t("li",null,[t("a",{href:"#error-codes"},"Error Codes")])])])],-1),_=t("h2",{id:"dynamic-api"},[e("Dynamic API "),t("a",{class:"header-anchor",href:"#dynamic-api"},"#")],-1),f=e("The platform\u2019s API uses "),m=e("Database Mirroring"),y=e(" to dynamically generate REST endpoints and a GraphQL schema based on the connected database\u2019s architecture. Since these endpoints return data based on your specific schema and configured permissions, the input/output of the API differs greatly for individual installations."),g=t("h2",{id:"rest-vs.-graphql"},[e("REST vs. GraphQL "),t("a",{class:"header-anchor",href:"#rest-vs.-graphql"},"#")],-1),b=t("p",null,[t("strong",null,"There is no difference in the functionality available between the REST and GraphQL endpoints."),e(" The functionality available in both is mapped to the same set of core services, meaning that you don\u2019t lose any performance or capabilities by choosing one or the other.")],-1),w=t("p",null,"Which one you choose is ultimately up to you.",-1),T=t("h2",{id:"authentication"},[e("Authentication "),t("a",{class:"header-anchor",href:"#authentication"},"#")],-1),j=e("By default, all data in the system is off-limits for unauthenticated users. To gain access to protected data, you must "),v=e("include an access token with every request"),E=e(", or "),A=e("configure permissions for the public role"),k=e("."),I=t("p",null,"Useful references:",-1),D=e("Authenticating into the API"),P=e("Login endpoint reference"),S=t("h2",{id:"relational-data"},[e("Relational Data "),t("a",{class:"header-anchor",href:"#relational-data"},"#")],-1),q=e("Directus only retrieves the fields in your items that explicitly have been requested. Relational data can be retrieved nested by using "),R=e("the "),L=t("code",null,"fields",-1),x=e(" parameter"),C=e(" in REST, or regular nested queries in GraphQL. This allows you to retrieve the author of your article included in the articles data, or fetch related log entry points for your app\u2019s analytics data for example."),H=t("h3",{id:"creating-%2F-updating-%2F-deleting"},[e("Creating / Updating / Deleting "),t("a",{class:"header-anchor",href:"#creating-%2F-updating-%2F-deleting"},"#")],-1),O=t("p",null,"Similarly to fetching, relational content can be modified deeply as well.",-1),N=t("h4",{id:"many-to-one"},[e("Many-to-One "),t("a",{class:"header-anchor",href:"#many-to-one"},"#")],-1),M=t("p",null,"Many-to-One relationships are fairly straightforward to manage relationally. You can simply submit the changes you want as an object under the relational key in your collection. For example, if you wanted to create a new featured article on your page, you could submit:",-1),U=t("pre",null,[t("code",{class:"language-json"},[e(`{
2
2
  `),t("span",{class:"hljs-attr"},'"featured_article"'),e(`: {
3
3
  `),t("span",{class:"hljs-attr"},'"title"'),e(": "),t("span",{class:"hljs-string"},'"This is my new article!"'),e(`
4
4
  }
@@ -1,4 +1,4 @@
1
- import{r as n,p as l,q as c,w as o,z as e,t as i,S as t}from"./vendor.32937068.js";const h={class:"markdown-body"},d=e("blockquote",null,[e("p",null,[t("Our team truly appreciates every single contributor, community member, GitHub star, pull-request, bug report, and feature request. Keeping Directus completely free and open-source is our way of saying: "),e("strong",null,"Thank you!")])],-1),p=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"We're here to help!"),e("p",null,[t("If you have "),e("em",null,"any"),t(" questions along your contributor journey, please feel free to come chat with us on our "),e("a",{href:"https://directus.chat",target:"_blank",rel:"noopener noreferrer"},"Discord Community"),t(".")])],-1),f=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"Technical Contributor Docs"),e("p",null,[t("Technical documentation for contributing to the core codebase is located on the main "),e("code",null,"directus/directus"),e("a",{href:"https://github.com/directus/directus/wiki",target:"_blank",rel:"noopener noreferrer"},"GitHub repository\u2019s Wiki"),t(".")])],-1),_=e("h2",{id:"code-of-conduct"},[t("Code of Conduct "),e("a",{class:"header-anchor",href:"#code-of-conduct"},"#")],-1),g=e("p",null,[e("strong",null,[t("The Directus "),e("a",{href:"https://github.com/directus/directus/blob/main/code_of_conduct.md",target:"_blank",rel:"noopener noreferrer"},"Code of Conduct"),t(" is one of the ways we put our values into practice. We expect all of our staff, contractors and contributors to know and follow this code.")])],-1),m=e("p",null,[e("strong",null,"Our contributors and maintainers work extremely hard to build Directus as premium open-source software. Please be respectful of those efforts throughout our ecosystem. Trolling, harassing, insulting, or other unacceptable behavior by participants will not be tolerated.")],-1),b=e("p",null,"In the interest of fostering an open and welcoming environment, we as pledge to make participation in our project and community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.",-1),y=e("p",null,"Examples of behavior that contributes to creating a positive environment include:",-1),w=e("ul",null,[e("li",null,"Using welcoming and inclusive language"),e("li",null,"Being respectful of differing viewpoints and experiences"),e("li",null,"Gracefully accepting constructive criticism"),e("li",null,"Focusing on what is best for the community"),e("li",null,"Showing empathy towards other community members")],-1),v=e("p",null,[e("strong",null,[t("Before continuing, please take a moment to read our full "),e("a",{href:"https://github.com/directus/directus/blob/main/contributing.md",target:"_blank",rel:"noopener noreferrer"},"Code of Conduct"),t(".")])],-1),k=e("h2",{id:"wait-%E2%80%94-before-you-begin"},[t("Wait \u2014 Before you Begin "),e("a",{class:"header-anchor",href:"#wait-%E2%80%94-before-you-begin"},"#")],-1),q=t("When contributing to this repository, it is important to first discuss the change you wish to make with the owners of this repository. This can be done via "),x=e("a",{href:"https://github.com/directus/directus/issues",target:"_blank",rel:"noopener noreferrer"},"GitHub Issue",-1),D=t(", "),C=e("a",{href:"https://github.com/directus/directus/discussions",target:"_blank",rel:"noopener noreferrer"},"GitHub Discussions",-1),R=t(", "),F=e("a",{href:"https://directus.chat",target:"_blank",rel:"noopener noreferrer"},"Discord",-1),T=t(", "),B=t("email"),W=t(", or any other method."),Y=e("p",null,"Following this rule will help avoid wasted time caused by multiple people working on the same issue or writing code that will not be merged.",-1),G=e("h2",{id:"feature-requests"},[t("Feature Requests "),e("a",{class:"header-anchor",href:"#feature-requests"},"#")],-1),H=e("p",null,[t("Feature requests are a great way to let our team know what should be prioritized next. You can "),e("a",{href:"https://github.com/directus/directus/discussions/new",target:"_blank",rel:"noopener noreferrer"},"submit a new feature request"),t(" or "),e("a",{href:"https://github.com/directus/directus/discussions",target:"_blank",rel:"noopener noreferrer"},"vote on existing submissions"),t(" via GitHub Discussions.")],-1),S=e("div",{class:"warning hint"},[e("div",{class:"hint-title"},"The 80/20 Rule"),e("p",null,"To keep the Directus codebase as clean and simple as possible, we will only consider approving features that we feel at least 80% of our user-base will find valuable. If your feature request falls within the 20% range, it is considered an edge-case and should be implemented as an extension.")],-1),A=e("h2",{id:"rfcs"},[t("RFCs "),e("a",{class:"header-anchor",href:"#rfcs"},"#")],-1),I=e("p",null,[t("Some Directus features/fixes may require additional design, strategy, and/or discussion before beginning work. For these notable pull-requests, you should first submit an RFC (Request For Comments) to our core team via "),e("a",{href:"https://directus.chat",target:"_blank",rel:"noopener noreferrer"},"Discord"),t(". This process is relatively informal, but ensures proper alignment, and helps avoid squandered development time by contributors.")],-1),N=e("h2",{id:"bug-reporting"},[t("Bug Reporting "),e("a",{class:"header-anchor",href:"#bug-reporting"},"#")],-1),E=e("p",null,[t("Reporting any bugs you come across is an invaluable part of helping keep Directus stable. After confirming a similar issue doesn\u2019t already exist, you can "),e("a",{href:"https://github.com/directus/directus/issues/new",target:"_blank",rel:"noopener noreferrer"},"submit a bug report"),t(" via GitHub Issues. Please ensure the following for all submissions:")],-1),O=e("li",null,"You are experiencing an actual bug, not a configuration issue",-1),P=e("li",null,"You are using the official (pre-built) version of directus and not a fork",-1),V=e("li",null,"You are not asking a question or requesting a new feature",-1),j=e("li",null,"You have checked that no similar issue (or discussion) already exists",-1),z=e("li",null,"You have entered a clear and concise title",-1),U=e("li",null,"You have followed the issue template, with stack details and steps to reproduce",-1),K=t("You have already completed all "),L=t("troubleshooting steps"),M=e("h2",{id:"reporting-security-vulnerabilities"},[t("Reporting Security Vulnerabilities "),e("a",{class:"header-anchor",href:"#reporting-security-vulnerabilities"},"#")],-1),J=t("If you believe you have discovered a security issue within a Directus product or service, please reach out to us directly over email: "),Q=t("security@directus.io"),X=t(". We will then open a "),Z=e("a",{href:"https://github.com/directus/directus/security/advisories",target:"_blank",rel:"noopener noreferrer"},"GitHub Security Advisory",-1),$=t(" for tracking the fix."),ee=e("p",null,"We value the members of the independent security research community who find security vulnerabilities and work with our team so that proper fixes can be issued to users. Our policy is to credit all researchers in the fix\u2019s release notes. In order to receive credit, security researchers must follow responsible disclosure practices, including:",-1),te=e("ul",null,[e("li",null,"They do not publish the vulnerability prior to the Directus team releasing a fix for it"),e("li",null,"They do not divulge exact details of the issue, eg: through exploits or proof-of-concepts")],-1),oe=e("h2",{id:"submitting-a-pull-request"},[t("Submitting a Pull-Request "),e("a",{class:"header-anchor",href:"#submitting-a-pull-request"},"#")],-1),se=e("h3",{id:"1.-submit-an-rfc-(if-needed)"},[t("1. Submit an RFC (if needed) "),e("a",{class:"header-anchor",href:"#1.-submit-an-rfc-(if-needed)"},"#")],-1),ie=e("p",null,[t("Please read our docs on the "),e("a",{href:"#rfcs"},"RFC process"),t(".")],-1),re=e("h3",{id:"2.-update-relevant-docs"},[t("2. Update relevant docs "),e("a",{class:"header-anchor",href:"#2.-update-relevant-docs"},"#")],-1),ne=e("p",null,"Before submitting any pull-requests, ensure that any relevant documentation (included in this same repo) is updated.",-1),ae=e("h3",{id:"3.-push-your-changes"},[t("3. Push your changes "),e("a",{class:"header-anchor",href:"#3.-push-your-changes"},"#")],-1),ue=e("pre",null,[e("code",{class:"language-bash"},`git push -u origin YOUR-BRANCH-NAME
1
+ import{p as n,q as l,t as c,w as o,z as e,v as i,S as t}from"./vendor.a27160c3.js";const h={class:"markdown-body"},d=e("blockquote",null,[e("p",null,[t("Our team truly appreciates every single contributor, community member, GitHub star, pull-request, bug report, and feature request. Keeping Directus completely free and open-source is our way of saying: "),e("strong",null,"Thank you!")])],-1),p=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"We're here to help!"),e("p",null,[t("If you have "),e("em",null,"any"),t(" questions along your contributor journey, please feel free to come chat with us on our "),e("a",{href:"https://directus.chat",target:"_blank",rel:"noopener noreferrer"},"Discord Community"),t(".")])],-1),f=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"Technical Contributor Docs"),e("p",null,[t("Technical documentation for contributing to the core codebase is located on the main "),e("code",null,"directus/directus"),e("a",{href:"https://github.com/directus/directus/wiki",target:"_blank",rel:"noopener noreferrer"},"GitHub repository\u2019s Wiki"),t(".")])],-1),_=e("h2",{id:"code-of-conduct"},[t("Code of Conduct "),e("a",{class:"header-anchor",href:"#code-of-conduct"},"#")],-1),g=e("p",null,[e("strong",null,[t("The Directus "),e("a",{href:"https://github.com/directus/directus/blob/main/code_of_conduct.md",target:"_blank",rel:"noopener noreferrer"},"Code of Conduct"),t(" is one of the ways we put our values into practice. We expect all of our staff, contractors and contributors to know and follow this code.")])],-1),m=e("p",null,[e("strong",null,"Our contributors and maintainers work extremely hard to build Directus as premium open-source software. Please be respectful of those efforts throughout our ecosystem. Trolling, harassing, insulting, or other unacceptable behavior by participants will not be tolerated.")],-1),b=e("p",null,"In the interest of fostering an open and welcoming environment, we as pledge to make participation in our project and community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.",-1),y=e("p",null,"Examples of behavior that contributes to creating a positive environment include:",-1),w=e("ul",null,[e("li",null,"Using welcoming and inclusive language"),e("li",null,"Being respectful of differing viewpoints and experiences"),e("li",null,"Gracefully accepting constructive criticism"),e("li",null,"Focusing on what is best for the community"),e("li",null,"Showing empathy towards other community members")],-1),v=e("p",null,[e("strong",null,[t("Before continuing, please take a moment to read our full "),e("a",{href:"https://github.com/directus/directus/blob/main/contributing.md",target:"_blank",rel:"noopener noreferrer"},"Code of Conduct"),t(".")])],-1),k=e("h2",{id:"wait-%E2%80%94-before-you-begin"},[t("Wait \u2014 Before you Begin "),e("a",{class:"header-anchor",href:"#wait-%E2%80%94-before-you-begin"},"#")],-1),q=t("When contributing to this repository, it is important to first discuss the change you wish to make with the owners of this repository. This can be done via "),x=e("a",{href:"https://github.com/directus/directus/issues",target:"_blank",rel:"noopener noreferrer"},"GitHub Issue",-1),D=t(", "),C=e("a",{href:"https://github.com/directus/directus/discussions",target:"_blank",rel:"noopener noreferrer"},"GitHub Discussions",-1),R=t(", "),F=e("a",{href:"https://directus.chat",target:"_blank",rel:"noopener noreferrer"},"Discord",-1),T=t(", "),B=t("email"),W=t(", or any other method."),Y=e("p",null,"Following this rule will help avoid wasted time caused by multiple people working on the same issue or writing code that will not be merged.",-1),G=e("h2",{id:"feature-requests"},[t("Feature Requests "),e("a",{class:"header-anchor",href:"#feature-requests"},"#")],-1),H=e("p",null,[t("Feature requests are a great way to let our team know what should be prioritized next. You can "),e("a",{href:"https://github.com/directus/directus/discussions/new",target:"_blank",rel:"noopener noreferrer"},"submit a new feature request"),t(" or "),e("a",{href:"https://github.com/directus/directus/discussions",target:"_blank",rel:"noopener noreferrer"},"vote on existing submissions"),t(" via GitHub Discussions.")],-1),S=e("div",{class:"warning hint"},[e("div",{class:"hint-title"},"The 80/20 Rule"),e("p",null,"To keep the Directus codebase as clean and simple as possible, we will only consider approving features that we feel at least 80% of our user-base will find valuable. If your feature request falls within the 20% range, it is considered an edge-case and should be implemented as an extension.")],-1),A=e("h2",{id:"rfcs"},[t("RFCs "),e("a",{class:"header-anchor",href:"#rfcs"},"#")],-1),I=e("p",null,[t("Some Directus features/fixes may require additional design, strategy, and/or discussion before beginning work. For these notable pull-requests, you should first submit an RFC (Request For Comments) to our core team via "),e("a",{href:"https://directus.chat",target:"_blank",rel:"noopener noreferrer"},"Discord"),t(". This process is relatively informal, but ensures proper alignment, and helps avoid squandered development time by contributors.")],-1),N=e("h2",{id:"bug-reporting"},[t("Bug Reporting "),e("a",{class:"header-anchor",href:"#bug-reporting"},"#")],-1),E=e("p",null,[t("Reporting any bugs you come across is an invaluable part of helping keep Directus stable. After confirming a similar issue doesn\u2019t already exist, you can "),e("a",{href:"https://github.com/directus/directus/issues/new",target:"_blank",rel:"noopener noreferrer"},"submit a bug report"),t(" via GitHub Issues. Please ensure the following for all submissions:")],-1),O=e("li",null,"You are experiencing an actual bug, not a configuration issue",-1),P=e("li",null,"You are using the official (pre-built) version of directus and not a fork",-1),V=e("li",null,"You are not asking a question or requesting a new feature",-1),j=e("li",null,"You have checked that no similar issue (or discussion) already exists",-1),z=e("li",null,"You have entered a clear and concise title",-1),U=e("li",null,"You have followed the issue template, with stack details and steps to reproduce",-1),K=t("You have already completed all "),L=t("troubleshooting steps"),M=e("h2",{id:"reporting-security-vulnerabilities"},[t("Reporting Security Vulnerabilities "),e("a",{class:"header-anchor",href:"#reporting-security-vulnerabilities"},"#")],-1),J=t("If you believe you have discovered a security issue within a Directus product or service, please reach out to us directly over email: "),Q=t("security@directus.io"),X=t(". We will then open a "),Z=e("a",{href:"https://github.com/directus/directus/security/advisories",target:"_blank",rel:"noopener noreferrer"},"GitHub Security Advisory",-1),$=t(" for tracking the fix."),ee=e("p",null,"We value the members of the independent security research community who find security vulnerabilities and work with our team so that proper fixes can be issued to users. Our policy is to credit all researchers in the fix\u2019s release notes. In order to receive credit, security researchers must follow responsible disclosure practices, including:",-1),te=e("ul",null,[e("li",null,"They do not publish the vulnerability prior to the Directus team releasing a fix for it"),e("li",null,"They do not divulge exact details of the issue, eg: through exploits or proof-of-concepts")],-1),oe=e("h2",{id:"submitting-a-pull-request"},[t("Submitting a Pull-Request "),e("a",{class:"header-anchor",href:"#submitting-a-pull-request"},"#")],-1),se=e("h3",{id:"1.-submit-an-rfc-(if-needed)"},[t("1. Submit an RFC (if needed) "),e("a",{class:"header-anchor",href:"#1.-submit-an-rfc-(if-needed)"},"#")],-1),ie=e("p",null,[t("Please read our docs on the "),e("a",{href:"#rfcs"},"RFC process"),t(".")],-1),re=e("h3",{id:"2.-update-relevant-docs"},[t("2. Update relevant docs "),e("a",{class:"header-anchor",href:"#2.-update-relevant-docs"},"#")],-1),ne=e("p",null,"Before submitting any pull-requests, ensure that any relevant documentation (included in this same repo) is updated.",-1),ae=e("h3",{id:"3.-push-your-changes"},[t("3. Push your changes "),e("a",{class:"header-anchor",href:"#3.-push-your-changes"},"#")],-1),ue=e("pre",null,[e("code",{class:"language-bash"},`git push -u origin YOUR-BRANCH-NAME
2
2
  `)],-1),le=e("h3",{id:"submit-a-pull-request"},[t("Submit a pull-request "),e("a",{class:"header-anchor",href:"#submit-a-pull-request"},"#")],-1),ce=e("p",null,"Once you push the changes to your repo, the \u201CCompare & pull request\u201D button will appear in GitHub. Click it and you\u2019ll be taken to a screen where you can fill in the appropriate details. Finally, open the pull request by clicking the \u201CCreate pull request\u201D button.",-1),he=e("p",null,"Now our core staff will review your contribution and either merge it, or request that you to make changes.",-1),de=e("h2",{id:"syncing-your-fork-with-directus"},[t("Syncing Your Fork with Directus "),e("a",{class:"header-anchor",href:"#syncing-your-fork-with-directus"},"#")],-1),pe=e("p",null,"After you have submitted your pull requests, you would need to sync your fork with Directus to pull all the latest commits before you continue to contribute.",-1),fe=e("h3",{id:"1.-add-directus-as-a-remote"},[t("1. Add Directus as a Remote "),e("a",{class:"header-anchor",href:"#1.-add-directus-as-a-remote"},"#")],-1),_e=e("p",null,"While your fork is your main remote or origin, you will add Directus as the upstream, which generally refers to the original repo that you have forked.",-1),ge=e("pre",null,[e("code",{class:"language-bash"},`git remote add upstream git@github.com:directus/directus.git
3
3
  `)],-1),me=e("h3",{id:"2.-fetch-the-latest-changes"},[t("2. Fetch the Latest Changes "),e("a",{class:"header-anchor",href:"#2.-fetch-the-latest-changes"},"#")],-1),be=e("p",null,[t("Depending on your setup, you will need to get the latest commits from the "),e("code",null,"main"),t(" branch of Directus by doing a pull, reset, rebase or fetch.")],-1),ye=e("pre",null,[e("code",{class:"language-bash"},`git pull upstream main
4
4
  `)],-1),we=e("p",null,"At this point you are ready to continue working on Directus, with the latest commits included!",-1),ve=e("div",{class:"tip hint"},[e("p",null,"Before you begin or resume development, be sure to always sync, if you are going to submit a pull request with your changes!")],-1),Ce={setup(ke,{expose:a}){const r={title:"Contributing",modularExtension:!1};return a({frontmatter:r}),(qe,xe)=>{const s=n("router-link"),u=n("DocsWrapper");return l(),c(u,{frontmatter:r},{default:o(()=>[e("div",h,[d,p,f,_,g,m,b,y,w,v,k,e("p",null,[q,x,D,C,R,F,T,i(s,{to:"/docsmailto:info@directus.io"},{default:o(()=>[B]),_:1}),W]),Y,G,H,S,A,I,N,E,e("ul",null,[O,P,V,j,z,U,e("li",null,[K,i(s,{to:"/docs/getting-started/support#troubleshooting-steps"},{default:o(()=>[L]),_:1})])]),M,e("p",null,[J,i(s,{to:"/docsmailto:security@directus.io"},{default:o(()=>[Q]),_:1}),X,Z,$]),ee,te,oe,se,ie,re,ne,ae,ue,le,ce,he,de,pe,fe,_e,ge,me,be,ye,we,ve])]),_:1})}}};export{Ce as default};
@@ -1,4 +1,4 @@
1
- import{r,p as c,q as h,w as s,z as e,t as l,S as t}from"./vendor.32937068.js";const d={class:"markdown-body"},u={class:"two-up"},p={class:"left"},_=t("Items are individual pieces of data in your database. They can be anything, from articles, to IoT status checks. "),m=t("Learn more about Items"),f=t("."),g=e("div",{class:"right"},[e("p",null,[e("div",{class:"table-of-contents"},[e("ul",null,[e("li",null,[e("a",{href:"#the-item-object"},"The Item Object")]),e("li",null,[e("a",{href:"#get-items"},"Get Items")]),e("li",null,[e("a",{href:"#get-item-by-id"},"Get Item by ID")]),e("li",null,[e("a",{href:"#create-an-item"},"Create an Item")]),e("li",null,[e("a",{href:"#create-multiple-items"},"Create Multiple Items")]),e("li",null,[e("a",{href:"#update-an-item"},"Update an Item")]),e("li",null,[e("a",{href:"#update-multiple-items"},"Update Multiple Items")]),e("li",null,[e("a",{href:"#delete-an-item"},"Delete an Item")]),e("li",null,[e("a",{href:"#delete-multiple-items"},"Delete Multiple Items")])])])])],-1),y=e("hr",null,null,-1),b=e("h2",{id:"the-item-object"},[t("The Item Object "),e("a",{class:"header-anchor",href:"#the-item-object"},"#")],-1),j=e("div",{class:"two-up"},[e("div",{class:"left"},[e("p",null,[t("Items don\u2019t have a pre-defined schema. The format depends completely on how you configured your collections and fields in Directus. For the sake of documentation, we\u2019ll use a fictional articles collection with the following fields: "),e("code",null,"id"),t(", "),e("code",null,"status"),t(", "),e("code",null,"title"),t(", "),e("code",null,"body"),t(", "),e("code",null,"featured_image"),t(", and "),e("code",null,"author"),t(".")])]),e("div",{class:"right"},[e("pre",null,[e("code",{class:"language-json"},[t(`{
1
+ import{p as r,q as c,t as h,w as s,z as e,v as l,S as t}from"./vendor.a27160c3.js";const d={class:"markdown-body"},u={class:"two-up"},p={class:"left"},_=t("Items are individual pieces of data in your database. They can be anything, from articles, to IoT status checks. "),m=t("Learn more about Items"),f=t("."),g=e("div",{class:"right"},[e("p",null,[e("div",{class:"table-of-contents"},[e("ul",null,[e("li",null,[e("a",{href:"#the-item-object"},"The Item Object")]),e("li",null,[e("a",{href:"#get-items"},"Get Items")]),e("li",null,[e("a",{href:"#get-item-by-id"},"Get Item by ID")]),e("li",null,[e("a",{href:"#create-an-item"},"Create an Item")]),e("li",null,[e("a",{href:"#create-multiple-items"},"Create Multiple Items")]),e("li",null,[e("a",{href:"#update-an-item"},"Update an Item")]),e("li",null,[e("a",{href:"#update-multiple-items"},"Update Multiple Items")]),e("li",null,[e("a",{href:"#delete-an-item"},"Delete an Item")]),e("li",null,[e("a",{href:"#delete-multiple-items"},"Delete Multiple Items")])])])])],-1),y=e("hr",null,null,-1),b=e("h2",{id:"the-item-object"},[t("The Item Object "),e("a",{class:"header-anchor",href:"#the-item-object"},"#")],-1),j=e("div",{class:"two-up"},[e("div",{class:"left"},[e("p",null,[t("Items don\u2019t have a pre-defined schema. The format depends completely on how you configured your collections and fields in Directus. For the sake of documentation, we\u2019ll use a fictional articles collection with the following fields: "),e("code",null,"id"),t(", "),e("code",null,"status"),t(", "),e("code",null,"title"),t(", "),e("code",null,"body"),t(", "),e("code",null,"featured_image"),t(", and "),e("code",null,"author"),t(".")])]),e("div",{class:"right"},[e("pre",null,[e("code",{class:"language-json"},[t(`{
2
2
  `),e("span",{class:"hljs-attr"},'"id"'),t(": "),e("span",{class:"hljs-number"},"1"),t(`,
3
3
  `),e("span",{class:"hljs-attr"},'"status"'),t(": "),e("span",{class:"hljs-string"},'"published"'),t(`,
4
4
  `),e("span",{class:"hljs-attr"},'"title"'),t(": "),e("span",{class:"hljs-string"},'"Hello, world!"'),t(`,
@@ -1 +1 @@
1
- import{bN as I}from"./vendor.32937068.js";function T(h,m){return m.forEach(function(l){l&&typeof l!="string"&&!Array.isArray(l)&&Object.keys(l).forEach(function(p){if(p!=="default"&&!(p in h)){var y=Object.getOwnPropertyDescriptor(l,p);Object.defineProperty(h,p,y.get?y:{enumerable:!0,get:function(){return l[p]}})}})}),Object.freeze(Object.defineProperty(h,Symbol.toStringTag,{value:"Module"}))}var O={exports:{}};(function(h,m){(function(l){l(I.exports)})(function(l){var p=l.Pos;function y(e,n){for(var t=0,r=e.length;t<r;++t)n(e[t])}function x(e,n){if(!Array.prototype.indexOf){for(var t=e.length;t--;)if(e[t]===n)return!0;return!1}return e.indexOf(n)!=-1}function w(e,n,t,r){var a=e.getCursor(),i=t(e,a);if(!/\b(?:string|comment)\b/.test(i.type)){var c=l.innerMode(e.getMode(),i.state);if(c.mode.helperType!=="json"){i.state=c.state,/^[\w$_]*$/.test(i.string)?i.end>a.ch&&(i.end=a.ch,i.string=i.string.slice(0,a.ch-i.start)):i={start:a.ch,end:a.ch,string:"",state:i.state,type:i.string=="."?"property":null};for(var s=i;s.type=="property";){if(s=t(e,p(a.line,s.start)),s.string!=".")return;if(s=t(e,p(a.line,s.start)),!d)var d=[];d.push(s)}return{list:N(i,d,n,r),from:p(a.line,i.start),to:p(a.line,i.end)}}}}function P(e,n){return w(e,$,function(t,r){return t.getTokenAt(r)},n)}l.registerHelper("hint","javascript",P);function A(e,n){var t=e.getTokenAt(n);return n.ch==t.start+1&&t.string.charAt(0)=="."?(t.end=t.start,t.string=".",t.type="property"):/^\.[\w$_]*$/.test(t.string)&&(t.type="property",t.start++,t.string=t.string.replace(/\./,"")),t}function _(e,n){return w(e,S,A,n)}l.registerHelper("hint","coffeescript",_);var j="charAt charCodeAt indexOf lastIndexOf substring substr slice trim trimLeft trimRight toUpperCase toLowerCase split concat match replace search".split(" "),C="length concat join splice push pop shift unshift slice reverse sort indexOf lastIndexOf every some filter forEach map reduce reduceRight ".split(" "),H="prototype apply call bind".split(" "),$="break case catch class const continue debugger default delete do else export extends false finally for function if in import instanceof new null return super switch this throw true try typeof var void while with yield".split(" "),S="and break catch class continue delete do else extends false finally for if in instanceof isnt new no not null of off on or return switch then throw true try typeof until void while with yes".split(" ");function E(e,n){if(!Object.getOwnPropertyNames||!Object.getPrototypeOf)for(var t in e)n(t);else for(var r=e;r;r=Object.getPrototypeOf(r))Object.getOwnPropertyNames(r).forEach(n)}function N(e,n,t,r){var a=[],i=e.string,c=r&&r.globalScope||window;function s(g){g.lastIndexOf(i,0)==0&&!x(a,g)&&a.push(g)}function d(g){typeof g=="string"?y(j,s):g instanceof Array?y(C,s):g instanceof Function&&y(H,s),E(g,s)}if(n&&n.length){var u=n.pop(),o;for(u.type&&u.type.indexOf("variable")===0?(r&&r.additionalContext&&(o=r.additionalContext[u.string]),(!r||r.useGlobalScope!==!1)&&(o=o||c[u.string])):u.type=="string"?o="":u.type=="atom"?o=1:u.type=="function"&&(c.jQuery!=null&&(u.string=="$"||u.string=="jQuery")&&typeof c.jQuery=="function"?o=c.jQuery():c._!=null&&u.string=="_"&&typeof c._=="function"&&(o=c._()));o!=null&&n.length;)o=o[n.pop().string];o!=null&&d(o)}else{for(var f=e.state.localVars;f;f=f.next)s(f.name);for(var v=e.state.context;v;v=v.prev)for(var f=v.vars;f;f=f.next)s(f.name);for(var f=e.state.globalVars;f;f=f.next)s(f.name);if(r&&r.additionalContext!=null)for(var Q in r.additionalContext)s(Q);(!r||r.useGlobalScope!==!1)&&d(c),y(t,s)}return a}})})();var b=O.exports,K=T({__proto__:null,default:b},[O.exports]);export{K as j};
1
+ import{bN as I}from"./vendor.a27160c3.js";function T(h,m){return m.forEach(function(l){l&&typeof l!="string"&&!Array.isArray(l)&&Object.keys(l).forEach(function(p){if(p!=="default"&&!(p in h)){var y=Object.getOwnPropertyDescriptor(l,p);Object.defineProperty(h,p,y.get?y:{enumerable:!0,get:function(){return l[p]}})}})}),Object.freeze(Object.defineProperty(h,Symbol.toStringTag,{value:"Module"}))}var O={exports:{}};(function(h,m){(function(l){l(I.exports)})(function(l){var p=l.Pos;function y(e,n){for(var t=0,r=e.length;t<r;++t)n(e[t])}function x(e,n){if(!Array.prototype.indexOf){for(var t=e.length;t--;)if(e[t]===n)return!0;return!1}return e.indexOf(n)!=-1}function w(e,n,t,r){var s=e.getCursor(),i=t(e,s);if(!/\b(?:string|comment)\b/.test(i.type)){var c=l.innerMode(e.getMode(),i.state);if(c.mode.helperType!=="json"){i.state=c.state,/^[\w$_]*$/.test(i.string)?i.end>s.ch&&(i.end=s.ch,i.string=i.string.slice(0,s.ch-i.start)):i={start:s.ch,end:s.ch,string:"",state:i.state,type:i.string=="."?"property":null};for(var a=i;a.type=="property";){if(a=t(e,p(s.line,a.start)),a.string!=".")return;if(a=t(e,p(s.line,a.start)),!d)var d=[];d.push(a)}return{list:N(i,d,n,r),from:p(s.line,i.start),to:p(s.line,i.end)}}}}function P(e,n){return w(e,$,function(t,r){return t.getTokenAt(r)},n)}l.registerHelper("hint","javascript",P);function A(e,n){var t=e.getTokenAt(n);return n.ch==t.start+1&&t.string.charAt(0)=="."?(t.end=t.start,t.string=".",t.type="property"):/^\.[\w$_]*$/.test(t.string)&&(t.type="property",t.start++,t.string=t.string.replace(/\./,"")),t}function _(e,n){return w(e,S,A,n)}l.registerHelper("hint","coffeescript",_);var j="charAt charCodeAt indexOf lastIndexOf substring substr slice trim trimLeft trimRight toUpperCase toLowerCase split concat match replace search".split(" "),C="length concat join splice push pop shift unshift slice reverse sort indexOf lastIndexOf every some filter forEach map reduce reduceRight ".split(" "),H="prototype apply call bind".split(" "),$="break case catch class const continue debugger default delete do else export extends false finally for function if in import instanceof new null return super switch this throw true try typeof var void while with yield".split(" "),S="and break catch class continue delete do else extends false finally for if in instanceof isnt new no not null of off on or return switch then throw true try typeof until void while with yes".split(" ");function E(e,n){if(!Object.getOwnPropertyNames||!Object.getPrototypeOf)for(var t in e)n(t);else for(var r=e;r;r=Object.getPrototypeOf(r))Object.getOwnPropertyNames(r).forEach(n)}function N(e,n,t,r){var s=[],i=e.string,c=r&&r.globalScope||window;function a(g){g.lastIndexOf(i,0)==0&&!x(s,g)&&s.push(g)}function d(g){typeof g=="string"?y(j,a):g instanceof Array?y(C,a):g instanceof Function&&y(H,a),E(g,a)}if(n&&n.length){var u=n.pop(),o;for(u.type&&u.type.indexOf("variable")===0?(r&&r.additionalContext&&(o=r.additionalContext[u.string]),(!r||r.useGlobalScope!==!1)&&(o=o||c[u.string])):u.type=="string"?o="":u.type=="atom"?o=1:u.type=="function"&&(c.jQuery!=null&&(u.string=="$"||u.string=="jQuery")&&typeof c.jQuery=="function"?o=c.jQuery():c._!=null&&u.string=="_"&&typeof c._=="function"&&(o=c._()));o!=null&&n.length;)o=o[n.pop().string];o!=null&&d(o)}else{for(var f=e.state.localVars;f;f=f.next)a(f.name);for(var v=e.state.context;v;v=v.prev)for(var f=v.vars;f;f=f.next)a(f.name);for(var f=e.state.globalVars;f;f=f.next)a(f.name);if(r&&r.additionalContext!=null)for(var Q in r.additionalContext)a(Q);(!r||r.useGlobalScope!==!1)&&d(c),y(t,a)}return s}})})();var b=O.exports,K=T({__proto__:null,default:b},[O.exports]);export{K as j};
@@ -1 +1 @@
1
- import{bN as he}from"./vendor.32937068.js";function ve(Y,hr){return hr.forEach(function(k){k&&typeof k!="string"&&!Array.isArray(k)&&Object.keys(k).forEach(function(_){if(_!=="default"&&!(_ in Y)){var x=Object.getOwnPropertyDescriptor(k,_);Object.defineProperty(Y,_,x.get?x:{enumerable:!0,get:function(){return k[_]}})}})}),Object.freeze(Object.defineProperty(Y,Symbol.toStringTag,{value:"Module"}))}var Fr={exports:{}};(function(Y,hr){(function(k){k(he.exports)})(function(k){k.defineMode("javascript",function(_,x){var q=_.indentUnit,vr=x.statementIndent,Z=x.jsonld,z=x.json||Z,xr=x.trackScope!==!1,p=x.typescript,C=x.wordCharacters||/[\w$\xa1-\uffff]/,gr=function(){function r(g){return{type:g,style:"keyword"}}var e=r("keyword a"),t=r("keyword b"),f=r("keyword c"),u=r("keyword d"),l=r("operator"),m={type:"atom",style:"atom"};return{if:r("if"),while:e,with:e,else:t,do:t,try:t,finally:t,return:u,break:u,continue:u,new:r("new"),delete:f,void:f,throw:f,debugger:r("debugger"),var:r("var"),const:r("var"),let:r("var"),function:r("function"),catch:r("catch"),for:r("for"),switch:r("switch"),case:r("case"),default:r("default"),in:l,typeof:l,instanceof:l,true:m,false:m,null:m,undefined:m,NaN:m,Infinity:m,this:r("this"),class:r("class"),super:r("atom"),yield:f,export:r("export"),import:r("import"),extends:f,await:f}}(),yr=/[+\-*&%=<>!?|~^@]/,Dr=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;function Jr(r){for(var e=!1,t,f=!1;(t=r.next())!=null;){if(!e){if(t=="/"&&!f)return;t=="["?f=!0:f&&t=="]"&&(f=!1)}e=!e&&t=="\\"}}var R,rr;function w(r,e,t){return R=r,rr=t,e}function M(r,e){var t=r.next();if(t=='"'||t=="'")return e.tokenize=Lr(t),e.tokenize(r,e);if(t=="."&&r.match(/^\d[\d_]*(?:[eE][+\-]?[\d_]+)?/))return w("number","number");if(t=="."&&r.match(".."))return w("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(t))return w(t);if(t=="="&&r.eat(">"))return w("=>","operator");if(t=="0"&&r.match(/^(?:x[\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/))return w("number","number");if(/\d/.test(t))return r.match(/^[\d_]*(?:n|(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)?/),w("number","number");if(t=="/")return r.eat("*")?(e.tokenize=er,er(r,e)):r.eat("/")?(r.skipToEnd(),w("comment","comment")):Pr(r,e,1)?(Jr(r),r.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/),w("regexp","string-2")):(r.eat("="),w("operator","operator",r.current()));if(t=="`")return e.tokenize=U,U(r,e);if(t=="#"&&r.peek()=="!")return r.skipToEnd(),w("meta","meta");if(t=="#"&&r.eatWhile(C))return w("variable","property");if(t=="<"&&r.match("!--")||t=="-"&&r.match("->")&&!/\S/.test(r.string.slice(0,r.start)))return r.skipToEnd(),w("comment","comment");if(yr.test(t))return(t!=">"||!e.lexical||e.lexical.type!=">")&&(r.eat("=")?(t=="!"||t=="=")&&r.eat("="):/[<>*+\-|&?]/.test(t)&&(r.eat(t),t==">"&&r.eat(t))),t=="?"&&r.eat(".")?w("."):w("operator","operator",r.current());if(C.test(t)){r.eatWhile(C);var f=r.current();if(e.lastType!="."){if(gr.propertyIsEnumerable(f)){var u=gr[f];return w(u.type,u.style,f)}if(f=="async"&&r.match(/^(\s|\/\*([^*]|\*(?!\/))*?\*\/)*[\[\(\w]/,!1))return w("async","keyword",f)}return w("variable","variable",f)}}function Lr(r){return function(e,t){var f=!1,u;if(Z&&e.peek()=="@"&&e.match(Dr))return t.tokenize=M,w("jsonld-keyword","meta");for(;(u=e.next())!=null&&!(u==r&&!f);)f=!f&&u=="\\";return f||(t.tokenize=M),w("string","string")}}function er(r,e){for(var t=!1,f;f=r.next();){if(f=="/"&&t){e.tokenize=M;break}t=f=="*"}return w("comment","comment")}function U(r,e){for(var t=!1,f;(f=r.next())!=null;){if(!t&&(f=="`"||f=="$"&&r.eat("{"))){e.tokenize=M;break}t=!t&&f=="\\"}return w("quasi","string-2",r.current())}var Qr="([{}])";function sr(r,e){e.fatArrowAt&&(e.fatArrowAt=null);var t=r.string.indexOf("=>",r.start);if(!(t<0)){if(p){var f=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(r.string.slice(r.start,t));f&&(t=f.index)}for(var u=0,l=!1,m=t-1;m>=0;--m){var g=r.string.charAt(m),T=Qr.indexOf(g);if(T>=0&&T<3){if(!u){++m;break}if(--u==0){g=="("&&(l=!0);break}}else if(T>=3&&T<6)++u;else if(C.test(g))l=!0;else if(/["'\/`]/.test(g))for(;;--m){if(m==0)return;var we=r.string.charAt(m-1);if(we==g&&r.string.charAt(m-2)!="\\"){m--;break}}else if(l&&!u){++m;break}}l&&!u&&(e.fatArrowAt=m)}}var Rr={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,import:!0,"jsonld-keyword":!0};function jr(r,e,t,f,u,l){this.indented=r,this.column=e,this.type=t,this.prev=u,this.info=l,f!=null&&(this.align=f)}function Ur(r,e){if(!xr)return!1;for(var t=r.localVars;t;t=t.next)if(t.name==e)return!0;for(var f=r.context;f;f=f.prev)for(var t=f.vars;t;t=t.next)if(t.name==e)return!0}function Er(r,e,t,f,u){var l=r.cc;for(i.state=r,i.stream=u,i.marked=null,i.cc=l,i.style=e,r.lexical.hasOwnProperty("align")||(r.lexical.align=!0);;){var m=l.length?l.pop():z?b:h;if(m(t,f)){for(;l.length&&l[l.length-1].lex;)l.pop()();return i.marked?i.marked:t=="variable"&&Ur(r,f)?"variable-2":e}}}var i={state:null,column:null,marked:null,cc:null};function o(){for(var r=arguments.length-1;r>=0;r--)i.cc.push(arguments[r])}function n(){return o.apply(null,arguments),!0}function cr(r,e){for(var t=e;t;t=t.next)if(t.name==r)return!0;return!1}function B(r){var e=i.state;if(i.marked="def",!!xr){if(e.context){if(e.lexical.info=="var"&&e.context&&e.context.block){var t=Tr(r,e.context);if(t!=null){e.context=t;return}}else if(!cr(r,e.localVars)){e.localVars=new K(r,e.localVars);return}}x.globalVars&&!cr(r,e.globalVars)&&(e.globalVars=new K(r,e.globalVars))}}function Tr(r,e){if(e)if(e.block){var t=Tr(r,e.prev);return t?t==e.prev?e:new W(t,e.vars,!0):null}else return cr(r,e.vars)?e:new W(e.prev,new K(r,e.vars),!1);else return null}function nr(r){return r=="public"||r=="private"||r=="protected"||r=="abstract"||r=="readonly"}function W(r,e,t){this.prev=r,this.vars=e,this.block=t}function K(r,e){this.name=r,this.next=e}var Wr=new K("this",new K("arguments",null));function P(){i.state.context=new W(i.state.context,i.state.localVars,!1),i.state.localVars=Wr}function lr(){i.state.context=new W(i.state.context,i.state.localVars,!0),i.state.localVars=null}function j(){i.state.localVars=i.state.context.vars,i.state.context=i.state.context.prev}j.lex=!0;function s(r,e){var t=function(){var f=i.state,u=f.indented;if(f.lexical.type=="stat")u=f.lexical.indented;else for(var l=f.lexical;l&&l.type==")"&&l.align;l=l.prev)u=l.indented;f.lexical=new jr(u,i.stream.column(),r,null,f.lexical,e)};return t.lex=!0,t}function a(){var r=i.state;r.lexical.prev&&(r.lexical.type==")"&&(r.indented=r.lexical.indented),r.lexical=r.lexical.prev)}a.lex=!0;function c(r){function e(t){return t==r?n():r==";"||t=="}"||t==")"||t=="]"?o():n(e)}return e}function h(r,e){return r=="var"?n(s("vardef",e),br,c(";"),a):r=="keyword a"?n(s("form"),dr,h,a):r=="keyword b"?n(s("form"),h,a):r=="keyword d"?i.stream.match(/^\s*$/,!1)?n():n(s("stat"),F,c(";"),a):r=="debugger"?n(c(";")):r=="{"?n(s("}"),lr,fr,a,j):r==";"?n():r=="if"?(i.state.lexical.info=="else"&&i.state.cc[i.state.cc.length-1]==a&&i.state.cc.pop()(),n(s("form"),dr,h,a,zr)):r=="function"?n(S):r=="for"?n(s("form"),lr,Mr,h,j,a):r=="class"||p&&e=="interface"?(i.marked="keyword",n(s("form",r=="class"?r:e),$r,a)):r=="variable"?p&&e=="declare"?(i.marked="keyword",n(h)):p&&(e=="module"||e=="enum"||e=="type")&&i.stream.match(/^\s*\w/,!1)?(i.marked="keyword",e=="enum"?n(Br):e=="type"?n(Or,c("operator"),d,c(";")):n(s("form"),E,c("{"),s("}"),fr,a,a)):p&&e=="namespace"?(i.marked="keyword",n(s("form"),b,h,a)):p&&e=="abstract"?(i.marked="keyword",n(h)):n(s("stat"),Zr):r=="switch"?n(s("form"),dr,c("{"),s("}","switch"),lr,fr,a,a,j):r=="case"?n(b,c(":")):r=="default"?n(c(":")):r=="catch"?n(s("form"),P,Kr,h,a,j):r=="export"?n(s("stat"),le,a):r=="import"?n(s("stat"),de,a):r=="async"?n(h):e=="@"?n(b,h):o(s("stat"),b,c(";"),a)}function Kr(r){if(r=="(")return n(N,c(")"))}function b(r,e){return Ar(r,e,!1)}function y(r,e){return Ar(r,e,!0)}function dr(r){return r!="("?o():n(s(")"),F,c(")"),a)}function Ar(r,e,t){if(i.state.fatArrowAt==i.stream.start){var f=t?Ir:Vr;if(r=="(")return n(P,s(")"),v(N,")"),a,c("=>"),f,j);if(r=="variable")return o(P,E,c("=>"),f,j)}var u=t?D:O;return Rr.hasOwnProperty(r)?n(u):r=="function"?n(S,u):r=="class"||p&&e=="interface"?(i.marked="keyword",n(s("form"),ce,a)):r=="keyword c"||r=="async"?n(t?y:b):r=="("?n(s(")"),F,c(")"),a,u):r=="operator"||r=="spread"?n(t?y:b):r=="["?n(s("]"),pe,a,u):r=="{"?H(ir,"}",null,u):r=="quasi"?o(tr,u):r=="new"?n(Gr(t)):n()}function F(r){return r.match(/[;\}\)\],]/)?o():o(b)}function O(r,e){return r==","?n(F):D(r,e,!1)}function D(r,e,t){var f=t==!1?O:D,u=t==!1?b:y;if(r=="=>")return n(P,t?Ir:Vr,j);if(r=="operator")return/\+\+|--/.test(e)||p&&e=="!"?n(f):p&&e=="<"&&i.stream.match(/^([^<>]|<[^<>]*>)*>\s*\(/,!1)?n(s(">"),v(d,">"),a,f):e=="?"?n(b,c(":"),u):n(u);if(r=="quasi")return o(tr,f);if(r!=";"){if(r=="(")return H(y,")","call",f);if(r==".")return n(Cr,f);if(r=="[")return n(s("]"),F,c("]"),a,f);if(p&&e=="as")return i.marked="keyword",n(d,f);if(r=="regexp")return i.state.lastType=i.marked="operator",i.stream.backUp(i.stream.pos-i.stream.start-1),n(u)}}function tr(r,e){return r!="quasi"?o():e.slice(e.length-2)!="${"?n(tr):n(F,Hr)}function Hr(r){if(r=="}")return i.marked="string-2",i.state.tokenize=U,n(tr)}function Vr(r){return sr(i.stream,i.state),o(r=="{"?h:b)}function Ir(r){return sr(i.stream,i.state),o(r=="{"?h:y)}function Gr(r){return function(e){return e=="."?n(r?Yr:Xr):e=="variable"&&p?n(fe,r?D:O):o(r?y:b)}}function Xr(r,e){if(e=="target")return i.marked="keyword",n(O)}function Yr(r,e){if(e=="target")return i.marked="keyword",n(D)}function Zr(r){return r==":"?n(a,h):o(O,c(";"),a)}function Cr(r){if(r=="variable")return i.marked="property",n()}function ir(r,e){if(r=="async")return i.marked="property",n(ir);if(r=="variable"||i.style=="keyword"){if(i.marked="property",e=="get"||e=="set")return n(re);var t;return p&&i.state.fatArrowAt==i.stream.start&&(t=i.stream.match(/^\s*:\s*/,!1))&&(i.state.fatArrowAt=i.stream.pos+t[0].length),n($)}else{if(r=="number"||r=="string")return i.marked=Z?"property":i.style+" property",n($);if(r=="jsonld-keyword")return n($);if(p&&nr(e))return i.marked="keyword",n(ir);if(r=="[")return n(b,J,c("]"),$);if(r=="spread")return n(y,$);if(e=="*")return i.marked="keyword",n(ir);if(r==":")return o($)}}function re(r){return r!="variable"?o($):(i.marked="property",n(S))}function $(r){if(r==":")return n(y);if(r=="(")return o(S)}function v(r,e,t){function f(u,l){if(t?t.indexOf(u)>-1:u==","){var m=i.state.lexical;return m.info=="call"&&(m.pos=(m.pos||0)+1),n(function(g,T){return g==e||T==e?o():o(r)},f)}return u==e||l==e?n():t&&t.indexOf(";")>-1?o(r):n(c(e))}return function(u,l){return u==e||l==e?n():o(r,f)}}function H(r,e,t){for(var f=3;f<arguments.length;f++)i.cc.push(arguments[f]);return n(s(e,t),v(r,e),a)}function fr(r){return r=="}"?n():o(h,fr)}function J(r,e){if(p){if(r==":")return n(d);if(e=="?")return n(J)}}function ee(r,e){if(p&&(r==":"||e=="in"))return n(d)}function Sr(r){if(p&&r==":")return i.stream.match(/^\s*\w+\s+is\b/,!1)?n(b,ne,d):n(d)}function ne(r,e){if(e=="is")return i.marked="keyword",n()}function d(r,e){if(e=="keyof"||e=="typeof"||e=="infer"||e=="readonly")return i.marked="keyword",n(e=="typeof"?y:d);if(r=="variable"||e=="void")return i.marked="type",n(A);if(e=="|"||e=="&")return n(d);if(r=="string"||r=="number"||r=="atom")return n(A);if(r=="[")return n(s("]"),v(d,"]",","),a,A);if(r=="{")return n(s("}"),mr,a,A);if(r=="(")return n(v(kr,")"),te,A);if(r=="<")return n(v(d,">"),d);if(r=="quasi")return o(pr,A)}function te(r){if(r=="=>")return n(d)}function mr(r){return r.match(/[\}\)\]]/)?n():r==","||r==";"?n(mr):o(G,mr)}function G(r,e){if(r=="variable"||i.style=="keyword")return i.marked="property",n(G);if(e=="?"||r=="number"||r=="string")return n(G);if(r==":")return n(d);if(r=="[")return n(c("variable"),ee,c("]"),G);if(r=="(")return o(Q,G);if(!r.match(/[;\}\)\],]/))return n()}function pr(r,e){return r!="quasi"?o():e.slice(e.length-2)!="${"?n(pr):n(d,ie)}function ie(r){if(r=="}")return i.marked="string-2",i.state.tokenize=U,n(pr)}function kr(r,e){return r=="variable"&&i.stream.match(/^\s*[?:]/,!1)||e=="?"?n(kr):r==":"?n(d):r=="spread"?n(kr):o(d)}function A(r,e){if(e=="<")return n(s(">"),v(d,">"),a,A);if(e=="|"||r=="."||e=="&")return n(d);if(r=="[")return n(d,c("]"),A);if(e=="extends"||e=="implements")return i.marked="keyword",n(d);if(e=="?")return n(d,c(":"),d)}function fe(r,e){if(e=="<")return n(s(">"),v(d,">"),a,A)}function ar(){return o(d,ae)}function ae(r,e){if(e=="=")return n(d)}function br(r,e){return e=="enum"?(i.marked="keyword",n(Br)):o(E,J,I,oe)}function E(r,e){if(p&&nr(e))return i.marked="keyword",n(E);if(r=="variable")return B(e),n();if(r=="spread")return n(E);if(r=="[")return H(ue,"]");if(r=="{")return H(_r,"}")}function _r(r,e){return r=="variable"&&!i.stream.match(/^\s*:/,!1)?(B(e),n(I)):(r=="variable"&&(i.marked="property"),r=="spread"?n(E):r=="}"?o():r=="["?n(b,c("]"),c(":"),_r):n(c(":"),E,I))}function ue(){return o(E,I)}function I(r,e){if(e=="=")return n(y)}function oe(r){if(r==",")return n(br)}function zr(r,e){if(r=="keyword b"&&e=="else")return n(s("form","else"),h,a)}function Mr(r,e){if(e=="await")return n(Mr);if(r=="(")return n(s(")"),se,a)}function se(r){return r=="var"?n(br,L):r=="variable"?n(L):o(L)}function L(r,e){return r==")"?n():r==";"?n(L):e=="in"||e=="of"?(i.marked="keyword",n(b,L)):o(b,L)}function S(r,e){if(e=="*")return i.marked="keyword",n(S);if(r=="variable")return B(e),n(S);if(r=="(")return n(P,s(")"),v(N,")"),a,Sr,h,j);if(p&&e=="<")return n(s(">"),v(ar,">"),a,S)}function Q(r,e){if(e=="*")return i.marked="keyword",n(Q);if(r=="variable")return B(e),n(Q);if(r=="(")return n(P,s(")"),v(N,")"),a,Sr,j);if(p&&e=="<")return n(s(">"),v(ar,">"),a,Q)}function Or(r,e){if(r=="keyword"||r=="variable")return i.marked="type",n(Or);if(e=="<")return n(s(">"),v(ar,">"),a)}function N(r,e){return e=="@"&&n(b,N),r=="spread"?n(N):p&&nr(e)?(i.marked="keyword",n(N)):p&&r=="this"?n(J,I):o(E,J,I)}function ce(r,e){return r=="variable"?$r(r,e):ur(r,e)}function $r(r,e){if(r=="variable")return B(e),n(ur)}function ur(r,e){if(e=="<")return n(s(">"),v(ar,">"),a,ur);if(e=="extends"||e=="implements"||p&&r==",")return e=="implements"&&(i.marked="keyword"),n(p?d:b,ur);if(r=="{")return n(s("}"),V,a)}function V(r,e){if(r=="async"||r=="variable"&&(e=="static"||e=="get"||e=="set"||p&&nr(e))&&i.stream.match(/^\s+[\w$\xa1-\uffff]/,!1))return i.marked="keyword",n(V);if(r=="variable"||i.style=="keyword")return i.marked="property",n(X,V);if(r=="number"||r=="string")return n(X,V);if(r=="[")return n(b,J,c("]"),X,V);if(e=="*")return i.marked="keyword",n(V);if(p&&r=="(")return o(Q,V);if(r==";"||r==",")return n(V);if(r=="}")return n();if(e=="@")return n(b,V)}function X(r,e){if(e=="!"||e=="?")return n(X);if(r==":")return n(d,I);if(e=="=")return n(y);var t=i.state.lexical.prev,f=t&&t.info=="interface";return o(f?Q:S)}function le(r,e){return e=="*"?(i.marked="keyword",n(wr,c(";"))):e=="default"?(i.marked="keyword",n(b,c(";"))):r=="{"?n(v(Nr,"}"),wr,c(";")):o(h)}function Nr(r,e){if(e=="as")return i.marked="keyword",n(c("variable"));if(r=="variable")return o(y,Nr)}function de(r){return r=="string"?n():r=="("?o(b):r=="."?o(O):o(or,qr,wr)}function or(r,e){return r=="{"?H(or,"}"):(r=="variable"&&B(e),e=="*"&&(i.marked="keyword"),n(me))}function qr(r){if(r==",")return n(or,qr)}function me(r,e){if(e=="as")return i.marked="keyword",n(or)}function wr(r,e){if(e=="from")return i.marked="keyword",n(b)}function pe(r){return r=="]"?n():o(v(y,"]"))}function Br(){return o(s("form"),E,c("{"),s("}"),v(ke,"}"),a,a)}function ke(){return o(E,I)}function be(r,e){return r.lastType=="operator"||r.lastType==","||yr.test(e.charAt(0))||/[,.]/.test(e.charAt(0))}function Pr(r,e,t){return e.tokenize==M&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(e.lastType)||e.lastType=="quasi"&&/\{\s*$/.test(r.string.slice(0,r.pos-(t||0)))}return{startState:function(r){var e={tokenize:M,lastType:"sof",cc:[],lexical:new jr((r||0)-q,0,"block",!1),localVars:x.localVars,context:x.localVars&&new W(null,null,!1),indented:r||0};return x.globalVars&&typeof x.globalVars=="object"&&(e.globalVars=x.globalVars),e},token:function(r,e){if(r.sol()&&(e.lexical.hasOwnProperty("align")||(e.lexical.align=!1),e.indented=r.indentation(),sr(r,e)),e.tokenize!=er&&r.eatSpace())return null;var t=e.tokenize(r,e);return R=="comment"?t:(e.lastType=R=="operator"&&(rr=="++"||rr=="--")?"incdec":R,Er(e,t,R,rr,r))},indent:function(r,e){if(r.tokenize==er||r.tokenize==U)return k.Pass;if(r.tokenize!=M)return 0;var t=e&&e.charAt(0),f=r.lexical,u;if(!/^\s*else\b/.test(e))for(var l=r.cc.length-1;l>=0;--l){var m=r.cc[l];if(m==a)f=f.prev;else if(m!=zr&&m!=j)break}for(;(f.type=="stat"||f.type=="form")&&(t=="}"||(u=r.cc[r.cc.length-1])&&(u==O||u==D)&&!/^[,\.=+\-*:?[\(]/.test(e));)f=f.prev;vr&&f.type==")"&&f.prev.type=="stat"&&(f=f.prev);var g=f.type,T=t==g;return g=="vardef"?f.indented+(r.lastType=="operator"||r.lastType==","?f.info.length+1:0):g=="form"&&t=="{"?f.indented:g=="form"?f.indented+q:g=="stat"?f.indented+(be(r,e)?vr||q:0):f.info=="switch"&&!T&&x.doubleIndentSwitch!=!1?f.indented+(/^(?:case|default)\b/.test(e)?q:2*q):f.align?f.column+(T?0:1):f.indented+(T?0:q)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:z?null:"/*",blockCommentEnd:z?null:"*/",blockCommentContinue:z?null:" * ",lineComment:z?null:"//",fold:"brace",closeBrackets:"()[]{}''\"\"``",helperType:z?"json":"javascript",jsonldMode:Z,jsonMode:z,expressionAllowed:Pr,skipExpression:function(r){Er(r,"atom","atom","true",new k.StringStream("",2,null))}}}),k.registerHelper("wordChars","javascript",/[\w$]/),k.defineMIME("text/javascript","javascript"),k.defineMIME("text/ecmascript","javascript"),k.defineMIME("application/javascript","javascript"),k.defineMIME("application/x-javascript","javascript"),k.defineMIME("application/ecmascript","javascript"),k.defineMIME("application/json",{name:"javascript",json:!0}),k.defineMIME("application/x-json",{name:"javascript",json:!0}),k.defineMIME("application/manifest+json",{name:"javascript",json:!0}),k.defineMIME("application/ld+json",{name:"javascript",jsonld:!0}),k.defineMIME("text/typescript",{name:"javascript",typescript:!0}),k.defineMIME("application/typescript",{name:"javascript",typescript:!0})})})();var xe=Fr.exports,ye=ve({__proto__:null,default:xe},[Fr.exports]);export{Fr as a,ye as j};
1
+ import{bN as he}from"./vendor.a27160c3.js";function ve(Y,hr){return hr.forEach(function(k){k&&typeof k!="string"&&!Array.isArray(k)&&Object.keys(k).forEach(function(_){if(_!=="default"&&!(_ in Y)){var x=Object.getOwnPropertyDescriptor(k,_);Object.defineProperty(Y,_,x.get?x:{enumerable:!0,get:function(){return k[_]}})}})}),Object.freeze(Object.defineProperty(Y,Symbol.toStringTag,{value:"Module"}))}var Fr={exports:{}};(function(Y,hr){(function(k){k(he.exports)})(function(k){k.defineMode("javascript",function(_,x){var q=_.indentUnit,vr=x.statementIndent,Z=x.jsonld,z=x.json||Z,xr=x.trackScope!==!1,p=x.typescript,C=x.wordCharacters||/[\w$\xa1-\uffff]/,gr=function(){function r(g){return{type:g,style:"keyword"}}var e=r("keyword a"),t=r("keyword b"),f=r("keyword c"),u=r("keyword d"),l=r("operator"),m={type:"atom",style:"atom"};return{if:r("if"),while:e,with:e,else:t,do:t,try:t,finally:t,return:u,break:u,continue:u,new:r("new"),delete:f,void:f,throw:f,debugger:r("debugger"),var:r("var"),const:r("var"),let:r("var"),function:r("function"),catch:r("catch"),for:r("for"),switch:r("switch"),case:r("case"),default:r("default"),in:l,typeof:l,instanceof:l,true:m,false:m,null:m,undefined:m,NaN:m,Infinity:m,this:r("this"),class:r("class"),super:r("atom"),yield:f,export:r("export"),import:r("import"),extends:f,await:f}}(),yr=/[+\-*&%=<>!?|~^@]/,Dr=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;function Jr(r){for(var e=!1,t,f=!1;(t=r.next())!=null;){if(!e){if(t=="/"&&!f)return;t=="["?f=!0:f&&t=="]"&&(f=!1)}e=!e&&t=="\\"}}var R,rr;function w(r,e,t){return R=r,rr=t,e}function M(r,e){var t=r.next();if(t=='"'||t=="'")return e.tokenize=Lr(t),e.tokenize(r,e);if(t=="."&&r.match(/^\d[\d_]*(?:[eE][+\-]?[\d_]+)?/))return w("number","number");if(t=="."&&r.match(".."))return w("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(t))return w(t);if(t=="="&&r.eat(">"))return w("=>","operator");if(t=="0"&&r.match(/^(?:x[\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/))return w("number","number");if(/\d/.test(t))return r.match(/^[\d_]*(?:n|(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)?/),w("number","number");if(t=="/")return r.eat("*")?(e.tokenize=er,er(r,e)):r.eat("/")?(r.skipToEnd(),w("comment","comment")):Pr(r,e,1)?(Jr(r),r.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/),w("regexp","string-2")):(r.eat("="),w("operator","operator",r.current()));if(t=="`")return e.tokenize=U,U(r,e);if(t=="#"&&r.peek()=="!")return r.skipToEnd(),w("meta","meta");if(t=="#"&&r.eatWhile(C))return w("variable","property");if(t=="<"&&r.match("!--")||t=="-"&&r.match("->")&&!/\S/.test(r.string.slice(0,r.start)))return r.skipToEnd(),w("comment","comment");if(yr.test(t))return(t!=">"||!e.lexical||e.lexical.type!=">")&&(r.eat("=")?(t=="!"||t=="=")&&r.eat("="):/[<>*+\-|&?]/.test(t)&&(r.eat(t),t==">"&&r.eat(t))),t=="?"&&r.eat(".")?w("."):w("operator","operator",r.current());if(C.test(t)){r.eatWhile(C);var f=r.current();if(e.lastType!="."){if(gr.propertyIsEnumerable(f)){var u=gr[f];return w(u.type,u.style,f)}if(f=="async"&&r.match(/^(\s|\/\*([^*]|\*(?!\/))*?\*\/)*[\[\(\w]/,!1))return w("async","keyword",f)}return w("variable","variable",f)}}function Lr(r){return function(e,t){var f=!1,u;if(Z&&e.peek()=="@"&&e.match(Dr))return t.tokenize=M,w("jsonld-keyword","meta");for(;(u=e.next())!=null&&!(u==r&&!f);)f=!f&&u=="\\";return f||(t.tokenize=M),w("string","string")}}function er(r,e){for(var t=!1,f;f=r.next();){if(f=="/"&&t){e.tokenize=M;break}t=f=="*"}return w("comment","comment")}function U(r,e){for(var t=!1,f;(f=r.next())!=null;){if(!t&&(f=="`"||f=="$"&&r.eat("{"))){e.tokenize=M;break}t=!t&&f=="\\"}return w("quasi","string-2",r.current())}var Qr="([{}])";function sr(r,e){e.fatArrowAt&&(e.fatArrowAt=null);var t=r.string.indexOf("=>",r.start);if(!(t<0)){if(p){var f=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(r.string.slice(r.start,t));f&&(t=f.index)}for(var u=0,l=!1,m=t-1;m>=0;--m){var g=r.string.charAt(m),T=Qr.indexOf(g);if(T>=0&&T<3){if(!u){++m;break}if(--u==0){g=="("&&(l=!0);break}}else if(T>=3&&T<6)++u;else if(C.test(g))l=!0;else if(/["'\/`]/.test(g))for(;;--m){if(m==0)return;var we=r.string.charAt(m-1);if(we==g&&r.string.charAt(m-2)!="\\"){m--;break}}else if(l&&!u){++m;break}}l&&!u&&(e.fatArrowAt=m)}}var Rr={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,import:!0,"jsonld-keyword":!0};function jr(r,e,t,f,u,l){this.indented=r,this.column=e,this.type=t,this.prev=u,this.info=l,f!=null&&(this.align=f)}function Ur(r,e){if(!xr)return!1;for(var t=r.localVars;t;t=t.next)if(t.name==e)return!0;for(var f=r.context;f;f=f.prev)for(var t=f.vars;t;t=t.next)if(t.name==e)return!0}function Er(r,e,t,f,u){var l=r.cc;for(i.state=r,i.stream=u,i.marked=null,i.cc=l,i.style=e,r.lexical.hasOwnProperty("align")||(r.lexical.align=!0);;){var m=l.length?l.pop():z?b:h;if(m(t,f)){for(;l.length&&l[l.length-1].lex;)l.pop()();return i.marked?i.marked:t=="variable"&&Ur(r,f)?"variable-2":e}}}var i={state:null,column:null,marked:null,cc:null};function o(){for(var r=arguments.length-1;r>=0;r--)i.cc.push(arguments[r])}function n(){return o.apply(null,arguments),!0}function cr(r,e){for(var t=e;t;t=t.next)if(t.name==r)return!0;return!1}function B(r){var e=i.state;if(i.marked="def",!!xr){if(e.context){if(e.lexical.info=="var"&&e.context&&e.context.block){var t=Tr(r,e.context);if(t!=null){e.context=t;return}}else if(!cr(r,e.localVars)){e.localVars=new K(r,e.localVars);return}}x.globalVars&&!cr(r,e.globalVars)&&(e.globalVars=new K(r,e.globalVars))}}function Tr(r,e){if(e)if(e.block){var t=Tr(r,e.prev);return t?t==e.prev?e:new W(t,e.vars,!0):null}else return cr(r,e.vars)?e:new W(e.prev,new K(r,e.vars),!1);else return null}function nr(r){return r=="public"||r=="private"||r=="protected"||r=="abstract"||r=="readonly"}function W(r,e,t){this.prev=r,this.vars=e,this.block=t}function K(r,e){this.name=r,this.next=e}var Wr=new K("this",new K("arguments",null));function P(){i.state.context=new W(i.state.context,i.state.localVars,!1),i.state.localVars=Wr}function lr(){i.state.context=new W(i.state.context,i.state.localVars,!0),i.state.localVars=null}function j(){i.state.localVars=i.state.context.vars,i.state.context=i.state.context.prev}j.lex=!0;function s(r,e){var t=function(){var f=i.state,u=f.indented;if(f.lexical.type=="stat")u=f.lexical.indented;else for(var l=f.lexical;l&&l.type==")"&&l.align;l=l.prev)u=l.indented;f.lexical=new jr(u,i.stream.column(),r,null,f.lexical,e)};return t.lex=!0,t}function a(){var r=i.state;r.lexical.prev&&(r.lexical.type==")"&&(r.indented=r.lexical.indented),r.lexical=r.lexical.prev)}a.lex=!0;function c(r){function e(t){return t==r?n():r==";"||t=="}"||t==")"||t=="]"?o():n(e)}return e}function h(r,e){return r=="var"?n(s("vardef",e),br,c(";"),a):r=="keyword a"?n(s("form"),dr,h,a):r=="keyword b"?n(s("form"),h,a):r=="keyword d"?i.stream.match(/^\s*$/,!1)?n():n(s("stat"),F,c(";"),a):r=="debugger"?n(c(";")):r=="{"?n(s("}"),lr,fr,a,j):r==";"?n():r=="if"?(i.state.lexical.info=="else"&&i.state.cc[i.state.cc.length-1]==a&&i.state.cc.pop()(),n(s("form"),dr,h,a,zr)):r=="function"?n(S):r=="for"?n(s("form"),lr,Mr,h,j,a):r=="class"||p&&e=="interface"?(i.marked="keyword",n(s("form",r=="class"?r:e),$r,a)):r=="variable"?p&&e=="declare"?(i.marked="keyword",n(h)):p&&(e=="module"||e=="enum"||e=="type")&&i.stream.match(/^\s*\w/,!1)?(i.marked="keyword",e=="enum"?n(Br):e=="type"?n(Or,c("operator"),d,c(";")):n(s("form"),E,c("{"),s("}"),fr,a,a)):p&&e=="namespace"?(i.marked="keyword",n(s("form"),b,h,a)):p&&e=="abstract"?(i.marked="keyword",n(h)):n(s("stat"),Zr):r=="switch"?n(s("form"),dr,c("{"),s("}","switch"),lr,fr,a,a,j):r=="case"?n(b,c(":")):r=="default"?n(c(":")):r=="catch"?n(s("form"),P,Kr,h,a,j):r=="export"?n(s("stat"),le,a):r=="import"?n(s("stat"),de,a):r=="async"?n(h):e=="@"?n(b,h):o(s("stat"),b,c(";"),a)}function Kr(r){if(r=="(")return n(N,c(")"))}function b(r,e){return Ar(r,e,!1)}function y(r,e){return Ar(r,e,!0)}function dr(r){return r!="("?o():n(s(")"),F,c(")"),a)}function Ar(r,e,t){if(i.state.fatArrowAt==i.stream.start){var f=t?Ir:Vr;if(r=="(")return n(P,s(")"),v(N,")"),a,c("=>"),f,j);if(r=="variable")return o(P,E,c("=>"),f,j)}var u=t?D:O;return Rr.hasOwnProperty(r)?n(u):r=="function"?n(S,u):r=="class"||p&&e=="interface"?(i.marked="keyword",n(s("form"),ce,a)):r=="keyword c"||r=="async"?n(t?y:b):r=="("?n(s(")"),F,c(")"),a,u):r=="operator"||r=="spread"?n(t?y:b):r=="["?n(s("]"),pe,a,u):r=="{"?H(ir,"}",null,u):r=="quasi"?o(tr,u):r=="new"?n(Gr(t)):n()}function F(r){return r.match(/[;\}\)\],]/)?o():o(b)}function O(r,e){return r==","?n(F):D(r,e,!1)}function D(r,e,t){var f=t==!1?O:D,u=t==!1?b:y;if(r=="=>")return n(P,t?Ir:Vr,j);if(r=="operator")return/\+\+|--/.test(e)||p&&e=="!"?n(f):p&&e=="<"&&i.stream.match(/^([^<>]|<[^<>]*>)*>\s*\(/,!1)?n(s(">"),v(d,">"),a,f):e=="?"?n(b,c(":"),u):n(u);if(r=="quasi")return o(tr,f);if(r!=";"){if(r=="(")return H(y,")","call",f);if(r==".")return n(Cr,f);if(r=="[")return n(s("]"),F,c("]"),a,f);if(p&&e=="as")return i.marked="keyword",n(d,f);if(r=="regexp")return i.state.lastType=i.marked="operator",i.stream.backUp(i.stream.pos-i.stream.start-1),n(u)}}function tr(r,e){return r!="quasi"?o():e.slice(e.length-2)!="${"?n(tr):n(F,Hr)}function Hr(r){if(r=="}")return i.marked="string-2",i.state.tokenize=U,n(tr)}function Vr(r){return sr(i.stream,i.state),o(r=="{"?h:b)}function Ir(r){return sr(i.stream,i.state),o(r=="{"?h:y)}function Gr(r){return function(e){return e=="."?n(r?Yr:Xr):e=="variable"&&p?n(fe,r?D:O):o(r?y:b)}}function Xr(r,e){if(e=="target")return i.marked="keyword",n(O)}function Yr(r,e){if(e=="target")return i.marked="keyword",n(D)}function Zr(r){return r==":"?n(a,h):o(O,c(";"),a)}function Cr(r){if(r=="variable")return i.marked="property",n()}function ir(r,e){if(r=="async")return i.marked="property",n(ir);if(r=="variable"||i.style=="keyword"){if(i.marked="property",e=="get"||e=="set")return n(re);var t;return p&&i.state.fatArrowAt==i.stream.start&&(t=i.stream.match(/^\s*:\s*/,!1))&&(i.state.fatArrowAt=i.stream.pos+t[0].length),n($)}else{if(r=="number"||r=="string")return i.marked=Z?"property":i.style+" property",n($);if(r=="jsonld-keyword")return n($);if(p&&nr(e))return i.marked="keyword",n(ir);if(r=="[")return n(b,J,c("]"),$);if(r=="spread")return n(y,$);if(e=="*")return i.marked="keyword",n(ir);if(r==":")return o($)}}function re(r){return r!="variable"?o($):(i.marked="property",n(S))}function $(r){if(r==":")return n(y);if(r=="(")return o(S)}function v(r,e,t){function f(u,l){if(t?t.indexOf(u)>-1:u==","){var m=i.state.lexical;return m.info=="call"&&(m.pos=(m.pos||0)+1),n(function(g,T){return g==e||T==e?o():o(r)},f)}return u==e||l==e?n():t&&t.indexOf(";")>-1?o(r):n(c(e))}return function(u,l){return u==e||l==e?n():o(r,f)}}function H(r,e,t){for(var f=3;f<arguments.length;f++)i.cc.push(arguments[f]);return n(s(e,t),v(r,e),a)}function fr(r){return r=="}"?n():o(h,fr)}function J(r,e){if(p){if(r==":")return n(d);if(e=="?")return n(J)}}function ee(r,e){if(p&&(r==":"||e=="in"))return n(d)}function Sr(r){if(p&&r==":")return i.stream.match(/^\s*\w+\s+is\b/,!1)?n(b,ne,d):n(d)}function ne(r,e){if(e=="is")return i.marked="keyword",n()}function d(r,e){if(e=="keyof"||e=="typeof"||e=="infer"||e=="readonly")return i.marked="keyword",n(e=="typeof"?y:d);if(r=="variable"||e=="void")return i.marked="type",n(A);if(e=="|"||e=="&")return n(d);if(r=="string"||r=="number"||r=="atom")return n(A);if(r=="[")return n(s("]"),v(d,"]",","),a,A);if(r=="{")return n(s("}"),mr,a,A);if(r=="(")return n(v(kr,")"),te,A);if(r=="<")return n(v(d,">"),d);if(r=="quasi")return o(pr,A)}function te(r){if(r=="=>")return n(d)}function mr(r){return r.match(/[\}\)\]]/)?n():r==","||r==";"?n(mr):o(G,mr)}function G(r,e){if(r=="variable"||i.style=="keyword")return i.marked="property",n(G);if(e=="?"||r=="number"||r=="string")return n(G);if(r==":")return n(d);if(r=="[")return n(c("variable"),ee,c("]"),G);if(r=="(")return o(Q,G);if(!r.match(/[;\}\)\],]/))return n()}function pr(r,e){return r!="quasi"?o():e.slice(e.length-2)!="${"?n(pr):n(d,ie)}function ie(r){if(r=="}")return i.marked="string-2",i.state.tokenize=U,n(pr)}function kr(r,e){return r=="variable"&&i.stream.match(/^\s*[?:]/,!1)||e=="?"?n(kr):r==":"?n(d):r=="spread"?n(kr):o(d)}function A(r,e){if(e=="<")return n(s(">"),v(d,">"),a,A);if(e=="|"||r=="."||e=="&")return n(d);if(r=="[")return n(d,c("]"),A);if(e=="extends"||e=="implements")return i.marked="keyword",n(d);if(e=="?")return n(d,c(":"),d)}function fe(r,e){if(e=="<")return n(s(">"),v(d,">"),a,A)}function ar(){return o(d,ae)}function ae(r,e){if(e=="=")return n(d)}function br(r,e){return e=="enum"?(i.marked="keyword",n(Br)):o(E,J,I,oe)}function E(r,e){if(p&&nr(e))return i.marked="keyword",n(E);if(r=="variable")return B(e),n();if(r=="spread")return n(E);if(r=="[")return H(ue,"]");if(r=="{")return H(_r,"}")}function _r(r,e){return r=="variable"&&!i.stream.match(/^\s*:/,!1)?(B(e),n(I)):(r=="variable"&&(i.marked="property"),r=="spread"?n(E):r=="}"?o():r=="["?n(b,c("]"),c(":"),_r):n(c(":"),E,I))}function ue(){return o(E,I)}function I(r,e){if(e=="=")return n(y)}function oe(r){if(r==",")return n(br)}function zr(r,e){if(r=="keyword b"&&e=="else")return n(s("form","else"),h,a)}function Mr(r,e){if(e=="await")return n(Mr);if(r=="(")return n(s(")"),se,a)}function se(r){return r=="var"?n(br,L):r=="variable"?n(L):o(L)}function L(r,e){return r==")"?n():r==";"?n(L):e=="in"||e=="of"?(i.marked="keyword",n(b,L)):o(b,L)}function S(r,e){if(e=="*")return i.marked="keyword",n(S);if(r=="variable")return B(e),n(S);if(r=="(")return n(P,s(")"),v(N,")"),a,Sr,h,j);if(p&&e=="<")return n(s(">"),v(ar,">"),a,S)}function Q(r,e){if(e=="*")return i.marked="keyword",n(Q);if(r=="variable")return B(e),n(Q);if(r=="(")return n(P,s(")"),v(N,")"),a,Sr,j);if(p&&e=="<")return n(s(">"),v(ar,">"),a,Q)}function Or(r,e){if(r=="keyword"||r=="variable")return i.marked="type",n(Or);if(e=="<")return n(s(">"),v(ar,">"),a)}function N(r,e){return e=="@"&&n(b,N),r=="spread"?n(N):p&&nr(e)?(i.marked="keyword",n(N)):p&&r=="this"?n(J,I):o(E,J,I)}function ce(r,e){return r=="variable"?$r(r,e):ur(r,e)}function $r(r,e){if(r=="variable")return B(e),n(ur)}function ur(r,e){if(e=="<")return n(s(">"),v(ar,">"),a,ur);if(e=="extends"||e=="implements"||p&&r==",")return e=="implements"&&(i.marked="keyword"),n(p?d:b,ur);if(r=="{")return n(s("}"),V,a)}function V(r,e){if(r=="async"||r=="variable"&&(e=="static"||e=="get"||e=="set"||p&&nr(e))&&i.stream.match(/^\s+[\w$\xa1-\uffff]/,!1))return i.marked="keyword",n(V);if(r=="variable"||i.style=="keyword")return i.marked="property",n(X,V);if(r=="number"||r=="string")return n(X,V);if(r=="[")return n(b,J,c("]"),X,V);if(e=="*")return i.marked="keyword",n(V);if(p&&r=="(")return o(Q,V);if(r==";"||r==",")return n(V);if(r=="}")return n();if(e=="@")return n(b,V)}function X(r,e){if(e=="!"||e=="?")return n(X);if(r==":")return n(d,I);if(e=="=")return n(y);var t=i.state.lexical.prev,f=t&&t.info=="interface";return o(f?Q:S)}function le(r,e){return e=="*"?(i.marked="keyword",n(wr,c(";"))):e=="default"?(i.marked="keyword",n(b,c(";"))):r=="{"?n(v(Nr,"}"),wr,c(";")):o(h)}function Nr(r,e){if(e=="as")return i.marked="keyword",n(c("variable"));if(r=="variable")return o(y,Nr)}function de(r){return r=="string"?n():r=="("?o(b):r=="."?o(O):o(or,qr,wr)}function or(r,e){return r=="{"?H(or,"}"):(r=="variable"&&B(e),e=="*"&&(i.marked="keyword"),n(me))}function qr(r){if(r==",")return n(or,qr)}function me(r,e){if(e=="as")return i.marked="keyword",n(or)}function wr(r,e){if(e=="from")return i.marked="keyword",n(b)}function pe(r){return r=="]"?n():o(v(y,"]"))}function Br(){return o(s("form"),E,c("{"),s("}"),v(ke,"}"),a,a)}function ke(){return o(E,I)}function be(r,e){return r.lastType=="operator"||r.lastType==","||yr.test(e.charAt(0))||/[,.]/.test(e.charAt(0))}function Pr(r,e,t){return e.tokenize==M&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(e.lastType)||e.lastType=="quasi"&&/\{\s*$/.test(r.string.slice(0,r.pos-(t||0)))}return{startState:function(r){var e={tokenize:M,lastType:"sof",cc:[],lexical:new jr((r||0)-q,0,"block",!1),localVars:x.localVars,context:x.localVars&&new W(null,null,!1),indented:r||0};return x.globalVars&&typeof x.globalVars=="object"&&(e.globalVars=x.globalVars),e},token:function(r,e){if(r.sol()&&(e.lexical.hasOwnProperty("align")||(e.lexical.align=!1),e.indented=r.indentation(),sr(r,e)),e.tokenize!=er&&r.eatSpace())return null;var t=e.tokenize(r,e);return R=="comment"?t:(e.lastType=R=="operator"&&(rr=="++"||rr=="--")?"incdec":R,Er(e,t,R,rr,r))},indent:function(r,e){if(r.tokenize==er||r.tokenize==U)return k.Pass;if(r.tokenize!=M)return 0;var t=e&&e.charAt(0),f=r.lexical,u;if(!/^\s*else\b/.test(e))for(var l=r.cc.length-1;l>=0;--l){var m=r.cc[l];if(m==a)f=f.prev;else if(m!=zr&&m!=j)break}for(;(f.type=="stat"||f.type=="form")&&(t=="}"||(u=r.cc[r.cc.length-1])&&(u==O||u==D)&&!/^[,\.=+\-*:?[\(]/.test(e));)f=f.prev;vr&&f.type==")"&&f.prev.type=="stat"&&(f=f.prev);var g=f.type,T=t==g;return g=="vardef"?f.indented+(r.lastType=="operator"||r.lastType==","?f.info.length+1:0):g=="form"&&t=="{"?f.indented:g=="form"?f.indented+q:g=="stat"?f.indented+(be(r,e)?vr||q:0):f.info=="switch"&&!T&&x.doubleIndentSwitch!=!1?f.indented+(/^(?:case|default)\b/.test(e)?q:2*q):f.align?f.column+(T?0:1):f.indented+(T?0:q)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:z?null:"/*",blockCommentEnd:z?null:"*/",blockCommentContinue:z?null:" * ",lineComment:z?null:"//",fold:"brace",closeBrackets:"()[]{}''\"\"``",helperType:z?"json":"javascript",jsonldMode:Z,jsonMode:z,expressionAllowed:Pr,skipExpression:function(r){Er(r,"atom","atom","true",new k.StringStream("",2,null))}}}),k.registerHelper("wordChars","javascript",/[\w$]/),k.defineMIME("text/javascript","javascript"),k.defineMIME("text/ecmascript","javascript"),k.defineMIME("application/javascript","javascript"),k.defineMIME("application/x-javascript","javascript"),k.defineMIME("application/ecmascript","javascript"),k.defineMIME("application/json",{name:"javascript",json:!0}),k.defineMIME("application/x-json",{name:"javascript",json:!0}),k.defineMIME("application/manifest+json",{name:"javascript",json:!0}),k.defineMIME("application/ld+json",{name:"javascript",jsonld:!0}),k.defineMIME("text/typescript",{name:"javascript",typescript:!0}),k.defineMIME("application/typescript",{name:"javascript",typescript:!0})})})();var xe=Fr.exports,ye=ve({__proto__:null,default:xe},[Fr.exports]);export{Fr as a,ye as j};
@@ -1 +1 @@
1
- import{bN as p}from"./vendor.32937068.js";function b(f,u){return u.forEach(function(i){i&&typeof i!="string"&&!Array.isArray(i)&&Object.keys(i).forEach(function(o){if(o!=="default"&&!(o in f)){var l=Object.getOwnPropertyDescriptor(i,o);Object.defineProperty(f,o,l.get?l:{enumerable:!0,get:function(){return i[o]}})}})}),Object.freeze(Object.defineProperty(f,Symbol.toStringTag,{value:"Module"}))}var a={exports:{}};(function(f,u){(function(i){i(p.exports)})(function(i){i.defineMode("jinja2",function(){var o=["and","as","block","endblock","by","cycle","debug","else","elif","extends","filter","endfilter","firstof","for","endfor","if","endif","ifchanged","endifchanged","ifequal","endifequal","ifnotequal","endifnotequal","in","include","load","not","now","or","parsed","regroup","reversed","spaceless","endspaceless","ssi","templatetag","openblock","closeblock","openvariable","closevariable","openbrace","closebrace","opencomment","closecomment","widthratio","url","with","endwith","get_current_language","trans","endtrans","noop","blocktrans","endblocktrans","get_available_languages","get_current_language_bidi","plural"],l=/^[+\-*&%=<>!?|~^]/,g=/^[:\[\(\{]/,t=["true","false"],c=/^(\d[+\-\*\/])?\d+(\.\d+)?/;o=new RegExp("(("+o.join(")|(")+"))\\b"),t=new RegExp("(("+t.join(")|(")+"))\\b");function d(e,n){var r=e.peek();if(n.incomment)return e.skipTo("#}")?(e.eatWhile(/\#|}/),n.incomment=!1):e.skipToEnd(),"comment";if(n.intag){if(n.operator){if(n.operator=!1,e.match(t))return"atom";if(e.match(c))return"number"}if(n.sign){if(n.sign=!1,e.match(t))return"atom";if(e.match(c))return"number"}if(n.instring)return r==n.instring&&(n.instring=!1),e.next(),"string";if(r=="'"||r=='"')return n.instring=r,e.next(),"string";if(e.match(n.intag+"}")||e.eat("-")&&e.match(n.intag+"}"))return n.intag=!1,"tag";if(e.match(l))return n.operator=!0,"operator";if(e.match(g))n.sign=!0;else if(e.eat(" ")||e.sol()){if(e.match(o))return"keyword";if(e.match(t))return"atom";if(e.match(c))return"number";e.sol()&&e.next()}else e.next();return"variable"}else if(e.eat("{")){if(e.eat("#"))return n.incomment=!0,e.skipTo("#}")?(e.eatWhile(/\#|}/),n.incomment=!1):e.skipToEnd(),"comment";if(r=e.eat(/\{|%/))return n.intag=r,r=="{"&&(n.intag="}"),e.eat("-"),"tag"}e.next()}return{startState:function(){return{tokenize:d}},token:function(e,n){return n.tokenize(e,n)},blockCommentStart:"{#",blockCommentEnd:"#}"}}),i.defineMIME("text/jinja2","jinja2")})})();var s=a.exports,j=b({__proto__:null,default:s},[a.exports]);export{j};
1
+ import{bN as p}from"./vendor.a27160c3.js";function b(f,u){return u.forEach(function(i){i&&typeof i!="string"&&!Array.isArray(i)&&Object.keys(i).forEach(function(o){if(o!=="default"&&!(o in f)){var l=Object.getOwnPropertyDescriptor(i,o);Object.defineProperty(f,o,l.get?l:{enumerable:!0,get:function(){return i[o]}})}})}),Object.freeze(Object.defineProperty(f,Symbol.toStringTag,{value:"Module"}))}var a={exports:{}};(function(f,u){(function(i){i(p.exports)})(function(i){i.defineMode("jinja2",function(){var o=["and","as","block","endblock","by","cycle","debug","else","elif","extends","filter","endfilter","firstof","for","endfor","if","endif","ifchanged","endifchanged","ifequal","endifequal","ifnotequal","endifnotequal","in","include","load","not","now","or","parsed","regroup","reversed","spaceless","endspaceless","ssi","templatetag","openblock","closeblock","openvariable","closevariable","openbrace","closebrace","opencomment","closecomment","widthratio","url","with","endwith","get_current_language","trans","endtrans","noop","blocktrans","endblocktrans","get_available_languages","get_current_language_bidi","plural"],l=/^[+\-*&%=<>!?|~^]/,g=/^[:\[\(\{]/,t=["true","false"],c=/^(\d[+\-\*\/])?\d+(\.\d+)?/;o=new RegExp("(("+o.join(")|(")+"))\\b"),t=new RegExp("(("+t.join(")|(")+"))\\b");function d(e,n){var r=e.peek();if(n.incomment)return e.skipTo("#}")?(e.eatWhile(/\#|}/),n.incomment=!1):e.skipToEnd(),"comment";if(n.intag){if(n.operator){if(n.operator=!1,e.match(t))return"atom";if(e.match(c))return"number"}if(n.sign){if(n.sign=!1,e.match(t))return"atom";if(e.match(c))return"number"}if(n.instring)return r==n.instring&&(n.instring=!1),e.next(),"string";if(r=="'"||r=='"')return n.instring=r,e.next(),"string";if(e.match(n.intag+"}")||e.eat("-")&&e.match(n.intag+"}"))return n.intag=!1,"tag";if(e.match(l))return n.operator=!0,"operator";if(e.match(g))n.sign=!0;else if(e.eat(" ")||e.sol()){if(e.match(o))return"keyword";if(e.match(t))return"atom";if(e.match(c))return"number";e.sol()&&e.next()}else e.next();return"variable"}else if(e.eat("{")){if(e.eat("#"))return n.incomment=!0,e.skipTo("#}")?(e.eatWhile(/\#|}/),n.incomment=!1):e.skipToEnd(),"comment";if(r=e.eat(/\{|%/))return n.intag=r,r=="{"&&(n.intag="}"),e.eat("-"),"tag"}e.next()}return{startState:function(){return{tokenize:d}},token:function(e,n){return n.tokenize(e,n)},blockCommentStart:"{#",blockCommentEnd:"#}"}}),i.defineMIME("text/jinja2","jinja2")})})();var s=a.exports,j=b({__proto__:null,default:s},[a.exports]);export{j};
@@ -1 +1 @@
1
- import{bN as k,bP as w}from"./vendor.32937068.js";import{a as O}from"./javascript.6df53894.js";function S(l,h){return h.forEach(function(r){r&&typeof r!="string"&&!Array.isArray(r)&&Object.keys(r).forEach(function(a){if(a!=="default"&&!(a in l)){var f=Object.getOwnPropertyDescriptor(r,a);Object.defineProperty(l,a,f.get?f:{enumerable:!0,get:function(){return r[a]}})}})}),Object.freeze(Object.defineProperty(l,Symbol.toStringTag,{value:"Module"}))}var m={exports:{}};(function(l,h){(function(r){r(k.exports,w.exports,O.exports)})(function(r){function a(i,c,s,o){this.state=i,this.mode=c,this.depth=s,this.prev=o}function f(i){return new a(r.copyState(i.mode,i.state),i.mode,i.depth,i.prev&&f(i.prev))}r.defineMode("jsx",function(i,c){var s=r.getMode(i,{name:"xml",allowMissing:!0,multilineTagIndentPastTag:!1,allowMissingTagName:!0}),o=r.getMode(i,c&&c.base||"javascript");function j(t){var n=t.tagName;t.tagName=null;var e=s.indent(t,"","");return t.tagName=n,e}function b(t,n){return n.context.mode==s?x(t,n,n.context):y(t,n,n.context)}function x(t,n,e){if(e.depth==2)return t.match(/^.*?\*\//)?e.depth=1:t.skipToEnd(),"comment";if(t.peek()=="{"){s.skipAttribute(e.state);var u=j(e.state),p=e.state.context;if(p&&t.match(/^[^>]*>\s*$/,!1)){for(;p.prev&&!p.startOfLine;)p=p.prev;p.startOfLine?u-=i.indentUnit:e.prev.state.lexical&&(u=e.prev.state.lexical.indented)}else e.depth==1&&(u+=i.indentUnit);return n.context=new a(r.startState(o,u),o,0,n.context),null}if(e.depth==1){if(t.peek()=="<")return s.skipAttribute(e.state),n.context=new a(r.startState(s,j(e.state)),s,0,n.context),null;if(t.match("//"))return t.skipToEnd(),"comment";if(t.match("/*"))return e.depth=2,b(t,n)}var v=s.token(t,e.state),d=t.current(),g;return/\btag\b/.test(v)?/>$/.test(d)?e.state.context?e.depth=0:n.context=n.context.prev:/^</.test(d)&&(e.depth=1):!v&&(g=d.indexOf("{"))>-1&&t.backUp(d.length-g),v}function y(t,n,e){if(t.peek()=="<"&&o.expressionAllowed(t,e.state))return n.context=new a(r.startState(s,o.indent(e.state,"","")),s,0,n.context),o.skipExpression(e.state),null;var u=o.token(t,e.state);if(!u&&e.depth!=null){var p=t.current();p=="{"?e.depth++:p=="}"&&--e.depth==0&&(n.context=n.context.prev)}return u}return{startState:function(){return{context:new a(r.startState(o),o)}},copyState:function(t){return{context:f(t.context)}},token:b,indent:function(t,n,e){return t.context.mode.indent(t.context.state,n,e)},innerMode:function(t){return t.context}}},"xml","javascript"),r.defineMIME("text/jsx","jsx"),r.defineMIME("text/typescript-jsx",{name:"jsx",base:{name:"javascript",typescript:!0}})})})();var T=m.exports,A=S({__proto__:null,default:T},[m.exports]);export{A as j};
1
+ import{bN as k,bP as w}from"./vendor.a27160c3.js";import{a as O}from"./javascript.03e76510.js";function S(l,h){return h.forEach(function(r){r&&typeof r!="string"&&!Array.isArray(r)&&Object.keys(r).forEach(function(a){if(a!=="default"&&!(a in l)){var f=Object.getOwnPropertyDescriptor(r,a);Object.defineProperty(l,a,f.get?f:{enumerable:!0,get:function(){return r[a]}})}})}),Object.freeze(Object.defineProperty(l,Symbol.toStringTag,{value:"Module"}))}var m={exports:{}};(function(l,h){(function(r){r(k.exports,w.exports,O.exports)})(function(r){function a(i,c,s,o){this.state=i,this.mode=c,this.depth=s,this.prev=o}function f(i){return new a(r.copyState(i.mode,i.state),i.mode,i.depth,i.prev&&f(i.prev))}r.defineMode("jsx",function(i,c){var s=r.getMode(i,{name:"xml",allowMissing:!0,multilineTagIndentPastTag:!1,allowMissingTagName:!0}),o=r.getMode(i,c&&c.base||"javascript");function j(t){var n=t.tagName;t.tagName=null;var e=s.indent(t,"","");return t.tagName=n,e}function b(t,n){return n.context.mode==s?x(t,n,n.context):y(t,n,n.context)}function x(t,n,e){if(e.depth==2)return t.match(/^.*?\*\//)?e.depth=1:t.skipToEnd(),"comment";if(t.peek()=="{"){s.skipAttribute(e.state);var u=j(e.state),p=e.state.context;if(p&&t.match(/^[^>]*>\s*$/,!1)){for(;p.prev&&!p.startOfLine;)p=p.prev;p.startOfLine?u-=i.indentUnit:e.prev.state.lexical&&(u=e.prev.state.lexical.indented)}else e.depth==1&&(u+=i.indentUnit);return n.context=new a(r.startState(o,u),o,0,n.context),null}if(e.depth==1){if(t.peek()=="<")return s.skipAttribute(e.state),n.context=new a(r.startState(s,j(e.state)),s,0,n.context),null;if(t.match("//"))return t.skipToEnd(),"comment";if(t.match("/*"))return e.depth=2,b(t,n)}var v=s.token(t,e.state),d=t.current(),g;return/\btag\b/.test(v)?/>$/.test(d)?e.state.context?e.depth=0:n.context=n.context.prev:/^</.test(d)&&(e.depth=1):!v&&(g=d.indexOf("{"))>-1&&t.backUp(d.length-g),v}function y(t,n,e){if(t.peek()=="<"&&o.expressionAllowed(t,e.state))return n.context=new a(r.startState(s,o.indent(e.state,"","")),s,0,n.context),o.skipExpression(e.state),null;var u=o.token(t,e.state);if(!u&&e.depth!=null){var p=t.current();p=="{"?e.depth++:p=="}"&&--e.depth==0&&(n.context=n.context.prev)}return u}return{startState:function(){return{context:new a(r.startState(o),o)}},copyState:function(t){return{context:f(t.context)}},token:b,indent:function(t,n,e){return t.context.mode.indent(t.context.state,n,e)},innerMode:function(t){return t.context}}},"xml","javascript"),r.defineMIME("text/jsx","jsx"),r.defineMIME("text/typescript-jsx",{name:"jsx",base:{name:"javascript",typescript:!0}})})})();var T=m.exports,A=S({__proto__:null,default:T},[m.exports]);export{A as j};