@directus/app 9.12.0 → 9.12.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 (622) hide show
  1. package/dist/assets/@directus_extensions-sdk.9a1812c6.entry.js +1 -0
  2. package/dist/assets/accounts.08433099.js +1 -0
  3. package/dist/assets/active-line.b42e95d2.js +1 -0
  4. package/dist/assets/activity-log.fd558c9b.js +1 -0
  5. package/dist/assets/activity.0def80ca.js +80 -0
  6. package/dist/assets/apl.a10fee96.js +1 -0
  7. package/dist/assets/asciiarmor.3440160d.js +1 -0
  8. package/dist/assets/asn.1.bdf78f70.js +1 -0
  9. package/dist/assets/asterisk.88ae33f0.js +1 -0
  10. package/dist/assets/authentication.a6f04750.js +73 -0
  11. package/dist/assets/autorefresh.fa8b7b34.js +1 -0
  12. package/dist/assets/aws.3b1c64af.js +1 -0
  13. package/dist/assets/backing-directus.1ed89e33.js +1 -0
  14. package/dist/assets/brainfuck.af40cbfc.js +1 -0
  15. package/dist/assets/cli.5153aa86.js +4 -0
  16. package/dist/assets/cli.e8e2526b.js +19 -0
  17. package/dist/assets/clike.75f55953.js +1 -0
  18. package/dist/assets/clojure.f44f8182.js +1 -0
  19. package/dist/assets/cloudron.53c430b8.js +1 -0
  20. package/dist/assets/cmake.dc51a5f4.js +1 -0
  21. package/dist/assets/cobol.bd572fbc.js +1 -0
  22. package/dist/assets/codebase-overview.e9df94fc.js +1 -0
  23. package/dist/assets/coffeescript.903da3d2.js +1 -0
  24. package/dist/assets/collections.1c745e99.css +1 -0
  25. package/dist/assets/collections.2453db3a.js +106 -0
  26. package/dist/assets/collections.aa896b3f.js +2 -0
  27. package/dist/assets/commonlisp.0c024da5.js +1 -0
  28. package/dist/assets/config-options.b1233b4b.js +138 -0
  29. package/dist/assets/content.1b1e95cf.js +1 -0
  30. package/dist/assets/creating-extensions.bfd7c57c.js +11 -0
  31. package/dist/assets/crystal.80f7e1ba.js +1 -0
  32. package/dist/assets/css.eb89b9da.js +1 -0
  33. package/dist/assets/cypher.f649c40f.js +4 -0
  34. package/dist/assets/d.3e286089.js +1 -0
  35. package/dist/assets/dart.5b9bb9bb.js +1 -0
  36. package/dist/assets/data-model.0e360572.js +1 -0
  37. package/dist/assets/data-sharing.da96e52e.js +1 -0
  38. package/dist/assets/de-at.a1f7dd1d.js +1 -1
  39. package/dist/assets/de.a8c4aad1.js +1 -1
  40. package/dist/assets/diff.c63eafa7.js +1 -0
  41. package/dist/assets/digitalocean-app-platform.3412cb40.js +3 -0
  42. package/dist/assets/display-templates.915c0c5b.js +1 -0
  43. package/dist/assets/displays.99989c6d.js +49 -0
  44. package/dist/assets/django.3a6905fc.js +1 -0
  45. package/dist/assets/{docker.e74fbe37.js → docker.e1bb4205.js} +5 -5
  46. package/dist/assets/dockerfile.a9f614c8.js +1 -0
  47. package/dist/assets/documentation.788d4998.js +1 -0
  48. package/dist/assets/dtd.5b2d40ab.js +1 -0
  49. package/dist/assets/dylan.744cd79f.js +1 -0
  50. package/dist/assets/ebnf.6637a8f6.js +1 -0
  51. package/dist/assets/ecl.cdabfae6.js +1 -0
  52. package/dist/assets/eiffel.60b61e7f.js +1 -0
  53. package/dist/assets/elm.74b68fc8.js +1 -0
  54. package/dist/assets/email-templates.1f5ac335.js +2 -0
  55. package/dist/assets/endpoints.aaac7c81.js +27 -0
  56. package/dist/assets/erlang.d6cd5265.js +1 -0
  57. package/dist/assets/es-MX.956444f4.js +1 -0
  58. package/dist/assets/extensions.34c12005.js +12 -0
  59. package/dist/assets/factor.965cfdad.js +1 -0
  60. package/dist/assets/faq.89e68608.js +2 -0
  61. package/dist/assets/fcl.e515f605.js +1 -0
  62. package/dist/assets/fields.54985585.js +135 -0
  63. package/dist/assets/file-library.3e651030.js +1 -0
  64. package/dist/assets/files.064d5a35.js +187 -0
  65. package/dist/assets/filter-rules.e442e006.js +76 -0
  66. package/dist/assets/filters.3db1b044.js +1 -0
  67. package/dist/assets/{folders.5102c9ea.js → folders.0024d3d3.js} +20 -20
  68. package/dist/assets/forth.c62ab807.js +1 -0
  69. package/dist/assets/fortran.c0e428c5.js +1 -0
  70. package/dist/assets/gas.fd59e425.js +1 -0
  71. package/dist/assets/gcp.627205b5.js +60 -0
  72. package/dist/assets/gfm.8125a8e6.js +1 -0
  73. package/dist/assets/gherkin.c9a9f9d2.js +1 -0
  74. package/dist/assets/github-ci.abd39dcc.js +2 -0
  75. package/dist/assets/glossary.75ca2027.js +1 -0
  76. package/dist/assets/glossary.bf083fb1.js +1 -0
  77. package/dist/assets/go.31390264.js +1 -0
  78. package/dist/assets/groovy.c940d48b.js +1 -0
  79. package/dist/assets/haml.1a456af6.js +1 -0
  80. package/dist/assets/handlebars.d3c0e9e6.js +1 -0
  81. package/dist/assets/haskell-literate.06d0d330.js +1 -0
  82. package/dist/assets/haskell.f83a5b48.js +1 -0
  83. package/dist/assets/haxe.cf38bc86.js +1 -0
  84. package/dist/assets/hooks.eda18b02.js +60 -0
  85. package/dist/assets/htmlembedded.4765ab1f.js +1 -0
  86. package/dist/assets/htmlmixed.a4506ee0.js +1 -0
  87. package/dist/assets/http.cf2042b8.js +1 -0
  88. package/dist/assets/idl.2b562d7a.js +1 -0
  89. package/dist/assets/{iis.fc6aa5dd.js → iis.109e5a8a.js} +2 -2
  90. package/dist/assets/import-export.3da878a4.js +2 -0
  91. package/dist/assets/index.009353d9.js +1 -0
  92. package/dist/assets/index.05e20b6f.js +1 -0
  93. package/dist/assets/index.064c96df.js +1 -0
  94. package/dist/assets/index.08e6475d.js +1 -0
  95. package/dist/assets/index.0a4e8fad.js +1 -0
  96. package/dist/assets/index.131b4ee8.js +1 -0
  97. package/dist/assets/index.17ad666d.js +1 -0
  98. package/dist/assets/index.1a186179.js +1 -0
  99. package/dist/assets/index.1b3cf886.js +1 -1
  100. package/dist/assets/index.1d927fd3.js +1 -0
  101. package/dist/assets/index.1e0212f9.js +1 -0
  102. package/dist/assets/index.27da0362.js +1 -0
  103. package/dist/assets/index.2ff40292.js +1 -0
  104. package/dist/assets/index.35fb04b2.js +1 -0
  105. package/dist/assets/index.3acd783e.js +1 -0
  106. package/dist/assets/index.3c7e729b.js +1 -0
  107. package/dist/assets/index.40c42250.css +1 -0
  108. package/dist/assets/index.44b36a96.js +1 -0
  109. package/dist/assets/index.44c7ed90.js +1 -0
  110. package/dist/assets/index.4533ce42.js +1 -0
  111. package/dist/assets/index.48fd0edb.js +1 -0
  112. package/dist/assets/index.491a4003.js +1 -0
  113. package/dist/assets/index.4de2df6a.js +1 -0
  114. package/dist/assets/index.4ff10039.js +1 -0
  115. package/dist/assets/index.515f0cb5.js +1 -0
  116. package/dist/assets/index.5312378b.js +1 -0
  117. package/dist/assets/index.540a1c0d.js +1 -0
  118. package/dist/assets/index.5490bf54.js +1 -0
  119. package/dist/assets/index.54a49224.js +1 -0
  120. package/dist/assets/index.55f6227c.js +1 -0
  121. package/dist/assets/index.5d10078c.js +1 -0
  122. package/dist/assets/index.5e2cb31c.js +1 -0
  123. package/dist/assets/index.629b6c38.js +1 -0
  124. package/dist/assets/index.6687eb7d.js +1 -0
  125. package/dist/assets/index.6752521e.js +1 -0
  126. package/dist/assets/index.691d9c7a.js +1 -0
  127. package/dist/assets/index.70f6f88a.entry.js +3406 -0
  128. package/dist/assets/index.71e28483.js +1 -0
  129. package/dist/assets/index.734cf408.js +1 -0
  130. package/dist/assets/index.76212e14.js +1 -0
  131. package/dist/assets/index.788544c8.js +1 -0
  132. package/dist/assets/index.859a78cb.js +1 -0
  133. package/dist/assets/index.8c9bb9d2.js +1 -0
  134. package/dist/assets/index.8f901e72.js +1 -0
  135. package/dist/assets/index.90aad19e.js +1 -0
  136. package/dist/assets/index.921bf39b.js +1 -0
  137. package/dist/assets/index.9b23cd7f.js +1 -0
  138. package/dist/assets/index.9b42e31d.js +26 -0
  139. package/dist/assets/index.9fbcba2f.js +1 -0
  140. package/dist/assets/index.a0bc3d71.js +1 -0
  141. package/dist/assets/index.a40a776b.js +1 -0
  142. package/dist/assets/index.a9473e05.js +1 -0
  143. package/dist/assets/index.ae9b035a.js +1 -0
  144. package/dist/assets/index.b09321f5.js +1 -0
  145. package/dist/assets/index.b635a926.js +1 -0
  146. package/dist/assets/index.b871b7a5.js +1 -0
  147. package/dist/assets/index.b8baec6c.js +1 -0
  148. package/dist/assets/index.b955a1be.js +1 -0
  149. package/dist/assets/index.bb82940a.js +1 -0
  150. package/dist/assets/index.bbf0131f.js +1 -0
  151. package/dist/assets/index.bc32829f.js +1 -0
  152. package/dist/assets/index.bc3296ff.js +1 -0
  153. package/dist/assets/index.c219c9fd.js +1 -0
  154. package/dist/assets/index.c54243ff.js +1 -0
  155. package/dist/assets/index.c6ea1824.js +1 -0
  156. package/dist/assets/index.c91867d3.js +1 -0
  157. package/dist/assets/index.d911a640.js +1 -0
  158. package/dist/assets/index.db01bb54.js +1 -0
  159. package/dist/assets/index.ddbad0a0.js +1 -0
  160. package/dist/assets/index.e39c7e76.js +1 -0
  161. package/dist/assets/index.e7e17448.js +1 -0
  162. package/dist/assets/index.e9099679.js +1 -0
  163. package/dist/assets/index.e9faa1b7.js +1 -0
  164. package/dist/assets/index.ea326829.js +1 -0
  165. package/dist/assets/index.f334ad18.js +1 -0
  166. package/dist/assets/index.f5a62bca.js +1 -0
  167. package/dist/assets/index.f6a5906f.js +1 -0
  168. package/dist/assets/index.f6d90b7c.js +1 -0
  169. package/dist/assets/index.f715fb2c.js +1 -0
  170. package/dist/assets/index.f80921e7.js +1 -0
  171. package/dist/assets/index.fc7b1181.js +1 -0
  172. package/dist/assets/index.fd2a5a74.js +1 -0
  173. package/dist/assets/index.ff5502c6.js +1 -0
  174. package/dist/assets/index.ff5a189a.js +1 -0
  175. package/dist/assets/{input-rich-text-html.4dd91dd7.js → input-rich-text-html.1550fe06.js} +32 -32
  176. package/dist/assets/{input-rich-text-html.ef9358cf.css → input-rich-text-html.2d85a8a3.css} +1 -1
  177. package/dist/assets/insights.c8ed7c1c.js +1 -0
  178. package/dist/assets/installation.78c6d9f6.js +1 -0
  179. package/dist/assets/interfaces.9e145c45.js +46 -0
  180. package/dist/assets/introduction.2e6f5c1d.js +90 -0
  181. package/dist/assets/introduction.78a2a844.js +4 -0
  182. package/dist/assets/introduction.7c5efc8a.js +1 -0
  183. package/dist/assets/introduction.d5621d79.js +1 -0
  184. package/dist/assets/{items.4e295453.js → items.4205dfa0.js} +27 -27
  185. package/dist/assets/items.64ed9295.js +1 -0
  186. package/dist/assets/javascript-hint.29e9b67f.js +1 -0
  187. package/dist/assets/javascript.d2db845f.js +1 -0
  188. package/dist/assets/jinja2.f97723a0.js +1 -0
  189. package/dist/assets/jsx.3f2b01c1.js +1 -0
  190. package/dist/assets/julia.fa920089.js +1 -0
  191. package/dist/assets/layouts.3c14b583.js +54 -0
  192. package/dist/assets/layouts.ca8afd39.js +1 -0
  193. package/dist/assets/livescript.2ec2e5ab.js +1 -0
  194. package/dist/assets/localization.374b7427.js +1 -0
  195. package/dist/assets/lua.5e0c8497.js +1 -0
  196. package/dist/assets/manual.ab601c95.js +10 -0
  197. package/dist/assets/mark-selection.54726b3f.js +1 -0
  198. package/dist/assets/match-highlighter.218123e7.js +1 -0
  199. package/dist/assets/mathematica.df44764c.js +1 -0
  200. package/dist/assets/mbox.491dfb6c.js +1 -0
  201. package/dist/assets/migrations.8989fedc.js +19 -0
  202. package/dist/assets/mirc.a9dca563.js +1 -0
  203. package/dist/assets/mllike.0a469a43.js +1 -0
  204. package/dist/assets/modelica.306697a8.js +1 -0
  205. package/dist/assets/modules.17c944d1.js +69 -0
  206. package/dist/assets/mscgen.a45d586b.js +1 -0
  207. package/dist/assets/multiplex.26e09ed5.js +3 -0
  208. package/dist/assets/mumps.ae29c70e.js +1 -0
  209. package/dist/assets/nginx.52e6bfcd.js +1 -0
  210. package/dist/assets/notifications.33c688c9.js +153 -0
  211. package/dist/assets/nsis.5869c4bd.js +1 -0
  212. package/dist/assets/ntriples.c7dd54df.js +1 -0
  213. package/dist/assets/octave.ef49cef7.js +1 -0
  214. package/dist/assets/overlay.9a3d0cba.js +1 -0
  215. package/dist/assets/overview.3436365c.js +1 -0
  216. package/dist/assets/overview.623fafba.js +1 -0
  217. package/dist/assets/overview.dbebe94a.js +1 -0
  218. package/dist/assets/oz.6a13c27c.js +1 -0
  219. package/dist/assets/panels.385b173a.js +65 -0
  220. package/dist/assets/pascal.77947c82.js +1 -0
  221. package/dist/assets/pegjs.fb3674fc.js +1 -0
  222. package/dist/assets/perl.bd20c5e2.js +1 -0
  223. package/dist/assets/{permissions.c754088f.js → permissions.f84f8d42.js} +19 -19
  224. package/dist/assets/php.f7000a8d.js +1 -0
  225. package/dist/assets/pig.7044156f.js +1 -0
  226. package/dist/assets/pinia.256cc3da.entry.js +5 -0
  227. package/dist/assets/pl-PL.22d5965f.js +1 -0
  228. package/dist/assets/plesk.f7e3d5ef.js +27 -0
  229. package/dist/assets/powershell.d6251d29.js +1 -0
  230. package/dist/assets/presets-bookmarks.1b8ec70c.js +1 -0
  231. package/dist/assets/{presets.21984d83.js → presets.b1e8b6c1.js} +20 -20
  232. package/dist/assets/project-settings.d32669a9.js +1 -0
  233. package/dist/assets/projects.b0451bed.js +1 -0
  234. package/dist/assets/properties.21d46a91.js +1 -0
  235. package/dist/assets/protobuf.0595884b.js +1 -0
  236. package/dist/assets/pug.02047604.js +1 -0
  237. package/dist/assets/puppet.7c07ba75.js +1 -0
  238. package/dist/assets/python.fe6c7a24.js +1 -0
  239. package/dist/assets/q.bfdf1988.js +1 -0
  240. package/dist/assets/query.dbe0b56d.js +152 -0
  241. package/dist/assets/quickstart.01824cc9.js +9 -0
  242. package/dist/assets/quickstart.4d7c7736.js +20 -0
  243. package/dist/assets/r.d6b5ac21.js +1 -0
  244. package/dist/assets/relations.d29aa86d.js +115 -0
  245. package/dist/assets/relationships.c9c5db8a.js +55 -0
  246. package/dist/assets/revisions.2898106e.js +40 -0
  247. package/dist/assets/{roles.aa9ecdfc.js → roles.9fec37da.js} +21 -21
  248. package/dist/assets/rpm.92483469.js +1 -0
  249. package/dist/assets/rst.b2603799.js +1 -0
  250. package/dist/assets/ruby.0246dbd5.js +1 -0
  251. package/dist/assets/running-locally.811d0dcc.js +26 -0
  252. package/dist/assets/runtime-core.esm-bundler.b1f35d24.js +4 -0
  253. package/dist/assets/rust.dd8abd8d.js +1 -0
  254. package/dist/assets/sas.d26b2302.js +1 -0
  255. package/dist/assets/sass.a791aa27.js +1 -0
  256. package/dist/assets/scheme.ef2b1440.js +1 -0
  257. package/dist/assets/{sdk.c37a5fba.js → sdk.12cd7974.js} +48 -48
  258. package/dist/assets/security.8e2a8a41.js +1 -0
  259. package/dist/assets/{server.a0eeaade.js → server.9f12ae3e.js} +12 -12
  260. package/dist/assets/settings.149d1dff.js +1 -0
  261. package/dist/assets/settings.28abc1f0.js +51 -0
  262. package/dist/assets/shell.2f3bc735.js +1 -0
  263. package/dist/assets/show-hint.6fa4d537.js +1 -0
  264. package/dist/assets/sieve.99fca314.js +1 -0
  265. package/dist/assets/simple.0e90a38e.js +1 -0
  266. package/dist/assets/slim.92d997b6.js +1 -0
  267. package/dist/assets/smalltalk.a9b3ffec.js +1 -0
  268. package/dist/assets/smarty.c54a652c.js +1 -0
  269. package/dist/assets/solr.1356a877.js +1 -0
  270. package/dist/assets/soy.e1b19eef.js +1 -0
  271. package/dist/assets/sparql.1335f7a5.js +1 -0
  272. package/dist/assets/spreadsheet.e9096343.js +1 -0
  273. package/dist/assets/sql.ac45a460.js +1 -0
  274. package/dist/assets/{sso-examples.6c849325.js → sso-examples.b52061be.js} +12 -12
  275. package/dist/assets/sso.64b2717b.js +22 -0
  276. package/dist/assets/stex.fb7fd990.js +1 -0
  277. package/dist/assets/stylus.d0281b2a.js +1 -0
  278. package/dist/assets/support.94e3734b.js +1 -0
  279. package/dist/assets/swift.a9fd2d64.js +1 -0
  280. package/dist/assets/tcl.8f7bdfb5.js +1 -0
  281. package/dist/assets/teams.9ff14f8f.js +1 -0
  282. package/dist/assets/textile.ae199003.js +1 -0
  283. package/dist/assets/themes.df7ec485.js +5 -0
  284. package/dist/assets/tiddlywiki.52caa0ed.js +1 -0
  285. package/dist/assets/tiki.831b9315.js +1 -0
  286. package/dist/assets/toml.6f660b6b.js +1 -0
  287. package/dist/assets/tornado.01563722.js +1 -0
  288. package/dist/assets/translations.5191ab7c.js +1 -0
  289. package/dist/assets/troff.f5f797f2.js +1 -0
  290. package/dist/assets/ttcn-cfg.a6927435.js +1 -0
  291. package/dist/assets/ttcn.24c6b925.js +1 -0
  292. package/dist/assets/turtle.d0e831a8.js +1 -0
  293. package/dist/assets/twig.d5e90842.js +1 -0
  294. package/dist/assets/ubuntu.f4c21886.js +11 -0
  295. package/dist/assets/upgrades-migrations.15498a47.js +1 -0
  296. package/dist/assets/use-sync.ded22f96.js +28 -0
  297. package/dist/assets/user-directory.47c8beb2.js +1 -0
  298. package/dist/assets/users-roles-permissions.005388fa.js +1 -0
  299. package/dist/assets/users.84251ab9.js +252 -0
  300. package/dist/assets/{utilities.b9c2a9d8.js → utilities.26e6a9e8.js} +12 -12
  301. package/dist/assets/vb.bb33c7a5.js +1 -0
  302. package/dist/assets/vbscript.d8f8d95e.js +1 -0
  303. package/dist/assets/velocity.26721ec5.js +1 -0
  304. package/dist/assets/verilog.24512a86.js +1 -0
  305. package/dist/assets/vhdl.6e64552d.js +1 -0
  306. package/dist/assets/vue-i18n.ecb0af35.entry.js +31 -0
  307. package/dist/assets/vue-router.8987d576.entry.js +5 -0
  308. package/dist/assets/vue.1f4d921a.entry.js +1 -0
  309. package/dist/assets/vue.4450af40.js +1 -0
  310. package/dist/assets/vue.runtime.esm-bundler.ac4ff7af.js +1 -0
  311. package/dist/assets/wast.79f64b4c.js +1 -0
  312. package/dist/assets/{webhooks.1a2e06f9.js → webhooks.4eeecb7d.js} +20 -20
  313. package/dist/assets/webhooks.61b11e7d.js +1 -0
  314. package/dist/assets/webidl.860cea4e.js +1 -0
  315. package/dist/assets/xquery.23f4fa34.js +1 -0
  316. package/dist/assets/yacas.0d60e6b0.js +1 -0
  317. package/dist/assets/yaml-frontmatter.70ea956b.js +1 -0
  318. package/dist/assets/yaml.9d5c3ac9.js +1 -0
  319. package/dist/assets/z80.527b7cb8.js +1 -0
  320. package/dist/index.html +8 -5
  321. package/package.json +20 -20
  322. package/dist/assets/@directus_extensions-sdk.1c0f07ca.entry.js +0 -1
  323. package/dist/assets/accounts.edeb6689.js +0 -1
  324. package/dist/assets/active-line.0636efc2.js +0 -1
  325. package/dist/assets/activity-log.ccf294c8.js +0 -1
  326. package/dist/assets/activity.499754f1.js +0 -80
  327. package/dist/assets/apl.7a44de96.js +0 -1
  328. package/dist/assets/asciiarmor.5c853147.js +0 -1
  329. package/dist/assets/asn.1.6b4c88d3.js +0 -1
  330. package/dist/assets/asterisk.8e49b2d4.js +0 -1
  331. package/dist/assets/authentication.b275d277.js +0 -73
  332. package/dist/assets/autorefresh.a124d3d5.js +0 -1
  333. package/dist/assets/aws.58f13022.js +0 -1
  334. package/dist/assets/backing-directus.b130191d.js +0 -1
  335. package/dist/assets/brainfuck.40978cfa.js +0 -1
  336. package/dist/assets/cli.0b1af962.js +0 -4
  337. package/dist/assets/cli.7f7160a6.js +0 -19
  338. package/dist/assets/clike.00b06ab7.js +0 -1
  339. package/dist/assets/clojure.10c02a8f.js +0 -1
  340. package/dist/assets/cloudron.48238a4e.js +0 -1
  341. package/dist/assets/cmake.d18a828d.js +0 -1
  342. package/dist/assets/cobol.4a07e81a.js +0 -1
  343. package/dist/assets/codebase-overview.c751de28.js +0 -1
  344. package/dist/assets/coffeescript.299e7b17.js +0 -1
  345. package/dist/assets/collections.8d532d78.js +0 -106
  346. package/dist/assets/collections.fe434f3d.js +0 -2
  347. package/dist/assets/commonlisp.5d3e08ca.js +0 -1
  348. package/dist/assets/config-options.0cd2f84e.js +0 -138
  349. package/dist/assets/content.07663d5f.js +0 -1
  350. package/dist/assets/creating-extensions.a48d5b6f.js +0 -11
  351. package/dist/assets/crystal.e8ccc500.js +0 -1
  352. package/dist/assets/css.e214430c.js +0 -1
  353. package/dist/assets/cypher.93c35226.js +0 -4
  354. package/dist/assets/d.45452c03.js +0 -1
  355. package/dist/assets/dart.6fca9dfe.js +0 -1
  356. package/dist/assets/data-model.5b650232.js +0 -1
  357. package/dist/assets/data-sharing.4ba1e153.js +0 -1
  358. package/dist/assets/diff.7a671810.js +0 -1
  359. package/dist/assets/digitalocean-app-platform.a3805812.js +0 -3
  360. package/dist/assets/display-templates.ef1705ab.js +0 -1
  361. package/dist/assets/displays.29c9a9ab.js +0 -49
  362. package/dist/assets/django.70792d4e.js +0 -1
  363. package/dist/assets/dockerfile.4d9813c1.js +0 -1
  364. package/dist/assets/documentation.74a793e9.js +0 -1
  365. package/dist/assets/dtd.2b6ca795.js +0 -1
  366. package/dist/assets/dylan.bf03afb2.js +0 -1
  367. package/dist/assets/ebnf.f0b8dcf5.js +0 -1
  368. package/dist/assets/ecl.fb54f12a.js +0 -1
  369. package/dist/assets/eiffel.aa01c1cf.js +0 -1
  370. package/dist/assets/elm.7007e9b9.js +0 -1
  371. package/dist/assets/email-templates.ef4839b6.js +0 -2
  372. package/dist/assets/endpoints.84b6faf9.js +0 -27
  373. package/dist/assets/erlang.801fa573.js +0 -1
  374. package/dist/assets/es-MX.6a8efcab.js +0 -1
  375. package/dist/assets/extensions.f89cb4f9.js +0 -12
  376. package/dist/assets/factor.f3fd82cf.js +0 -1
  377. package/dist/assets/faq.5f488978.js +0 -2
  378. package/dist/assets/fcl.ccf78194.js +0 -1
  379. package/dist/assets/fields.f711b1ce.js +0 -135
  380. package/dist/assets/file-library.30569134.js +0 -1
  381. package/dist/assets/files.8a404c59.js +0 -187
  382. package/dist/assets/filter-rules.79bac758.js +0 -76
  383. package/dist/assets/filters.efeb8b64.js +0 -1
  384. package/dist/assets/forth.3c037035.js +0 -1
  385. package/dist/assets/fortran.b05b78ad.js +0 -1
  386. package/dist/assets/gas.c36c196e.js +0 -1
  387. package/dist/assets/gcp.b10d08b2.js +0 -60
  388. package/dist/assets/gfm.4af9c8c0.js +0 -1
  389. package/dist/assets/gherkin.102ec9b3.js +0 -1
  390. package/dist/assets/github-ci.b23bdb51.js +0 -2
  391. package/dist/assets/glossary.08aaa09a.js +0 -1
  392. package/dist/assets/glossary.2618dbcd.js +0 -1
  393. package/dist/assets/go.319184dc.js +0 -1
  394. package/dist/assets/groovy.219a3f40.js +0 -1
  395. package/dist/assets/haml.c2cec3e9.js +0 -1
  396. package/dist/assets/handlebars.c1ae3040.js +0 -1
  397. package/dist/assets/haskell-literate.34e39e13.js +0 -1
  398. package/dist/assets/haskell.cb6719a1.js +0 -1
  399. package/dist/assets/haxe.d5e820fa.js +0 -1
  400. package/dist/assets/hooks.d0a9236e.js +0 -60
  401. package/dist/assets/htmlembedded.b86f1a8b.js +0 -1
  402. package/dist/assets/htmlmixed.9027b596.js +0 -1
  403. package/dist/assets/http.dddc47fa.js +0 -1
  404. package/dist/assets/idl.c0519b30.js +0 -1
  405. package/dist/assets/import-export.3bcbaa5a.js +0 -2
  406. package/dist/assets/index.008f8280.js +0 -1
  407. package/dist/assets/index.02e0a0ac.js +0 -1
  408. package/dist/assets/index.08c47c7e.js +0 -1
  409. package/dist/assets/index.09f9fbcc.js +0 -1
  410. package/dist/assets/index.0aa19433.js +0 -1
  411. package/dist/assets/index.113f40e2.js +0 -1
  412. package/dist/assets/index.121f2a8c.js +0 -1
  413. package/dist/assets/index.15d64410.js +0 -1
  414. package/dist/assets/index.1913d925.js +0 -1
  415. package/dist/assets/index.1cdf4945.js +0 -1
  416. package/dist/assets/index.1ee7fd69.js +0 -1
  417. package/dist/assets/index.25ba1dd6.js +0 -1
  418. package/dist/assets/index.25c51012.js +0 -1
  419. package/dist/assets/index.27dda6e3.js +0 -26
  420. package/dist/assets/index.2a4455f2.js +0 -1
  421. package/dist/assets/index.2bc6ec6e.js +0 -1
  422. package/dist/assets/index.2d56f924.js +0 -1
  423. package/dist/assets/index.35fd1f62.js +0 -1
  424. package/dist/assets/index.36b203bd.js +0 -1
  425. package/dist/assets/index.39c20f1a.js +0 -1
  426. package/dist/assets/index.3f0e45c1.js +0 -1
  427. package/dist/assets/index.3fa2dd41.js +0 -1
  428. package/dist/assets/index.48964803.js +0 -1
  429. package/dist/assets/index.4ad01be0.js +0 -1
  430. package/dist/assets/index.511997cb.js +0 -1
  431. package/dist/assets/index.53f3d9fa.js +0 -1
  432. package/dist/assets/index.5679f5a7.js +0 -1
  433. package/dist/assets/index.57fe3e27.js +0 -1
  434. package/dist/assets/index.591b77a6.js +0 -1
  435. package/dist/assets/index.5add30a0.js +0 -1
  436. package/dist/assets/index.5e03ed98.js +0 -1
  437. package/dist/assets/index.685be3df.js +0 -1
  438. package/dist/assets/index.6868b6d6.js +0 -1
  439. package/dist/assets/index.6ad356db.js +0 -1
  440. package/dist/assets/index.6c408ae4.entry.js +0 -547
  441. package/dist/assets/index.6ddc4fdc.js +0 -1
  442. package/dist/assets/index.6fe5d0b3.js +0 -1
  443. package/dist/assets/index.713eb83a.js +0 -1
  444. package/dist/assets/index.75c64623.js +0 -1
  445. package/dist/assets/index.7aed9a74.js +0 -1
  446. package/dist/assets/index.7c788990.js +0 -1
  447. package/dist/assets/index.8287e0f2.js +0 -1
  448. package/dist/assets/index.86d0c122.js +0 -1
  449. package/dist/assets/index.8701e013.js +0 -1
  450. package/dist/assets/index.876e2150.js +0 -1
  451. package/dist/assets/index.87f07d63.js +0 -1
  452. package/dist/assets/index.8a9126c0.js +0 -1
  453. package/dist/assets/index.9020f7f8.js +0 -1
  454. package/dist/assets/index.95a38652.js +0 -1
  455. package/dist/assets/index.967c699a.js +0 -1
  456. package/dist/assets/index.9c19b896.js +0 -1
  457. package/dist/assets/index.9d085155.js +0 -1
  458. package/dist/assets/index.9d19e89b.css +0 -1
  459. package/dist/assets/index.a2dcf3d3.js +0 -1
  460. package/dist/assets/index.a33e3a0f.js +0 -1
  461. package/dist/assets/index.a3994e3e.js +0 -1
  462. package/dist/assets/index.a4a0cf79.js +0 -1
  463. package/dist/assets/index.a9130ef3.js +0 -1
  464. package/dist/assets/index.a92db738.js +0 -1
  465. package/dist/assets/index.a939892c.js +0 -1
  466. package/dist/assets/index.aaef5d37.js +0 -1
  467. package/dist/assets/index.b94caa53.js +0 -1
  468. package/dist/assets/index.be817c86.js +0 -1
  469. package/dist/assets/index.bea565ce.js +0 -1
  470. package/dist/assets/index.beaf92cf.js +0 -1
  471. package/dist/assets/index.c1202cf2.js +0 -1
  472. package/dist/assets/index.c3b8bf08.js +0 -1
  473. package/dist/assets/index.c64d544a.js +0 -1
  474. package/dist/assets/index.caf0f908.js +0 -1
  475. package/dist/assets/index.cbab03d1.js +0 -1
  476. package/dist/assets/index.cc9ba44d.js +0 -1
  477. package/dist/assets/index.ce185aa0.js +0 -1
  478. package/dist/assets/index.d1676f89.js +0 -1
  479. package/dist/assets/index.da1ac686.js +0 -1
  480. package/dist/assets/index.df9b999e.js +0 -1
  481. package/dist/assets/index.e4754ab9.js +0 -1
  482. package/dist/assets/index.e629cf0e.js +0 -1
  483. package/dist/assets/index.e6be0eb0.js +0 -1
  484. package/dist/assets/index.ec867eba.js +0 -1
  485. package/dist/assets/index.f0af50e7.js +0 -1
  486. package/dist/assets/index.f54461df.js +0 -1
  487. package/dist/assets/index.f7d9fffc.js +0 -1
  488. package/dist/assets/index.fad2fd5d.js +0 -1
  489. package/dist/assets/insights.36c270c0.js +0 -1
  490. package/dist/assets/installation.16ae0771.js +0 -1
  491. package/dist/assets/interfaces.b5cebf09.js +0 -46
  492. package/dist/assets/introduction.04bbf522.js +0 -90
  493. package/dist/assets/introduction.1cc62f08.js +0 -1
  494. package/dist/assets/introduction.33560106.js +0 -4
  495. package/dist/assets/introduction.70bf2d81.js +0 -1
  496. package/dist/assets/items.83b34697.js +0 -1
  497. package/dist/assets/javascript-hint.620ad47b.js +0 -1
  498. package/dist/assets/javascript.22a42c19.js +0 -1
  499. package/dist/assets/jinja2.0b1cb0bb.js +0 -1
  500. package/dist/assets/jsx.248607cc.js +0 -1
  501. package/dist/assets/julia.2162bdbd.js +0 -1
  502. package/dist/assets/layouts.4f3cc3e7.js +0 -54
  503. package/dist/assets/layouts.7ced46fd.js +0 -1
  504. package/dist/assets/livescript.3ddfeda6.js +0 -1
  505. package/dist/assets/localization.e9668093.js +0 -1
  506. package/dist/assets/lua.a305cd56.js +0 -1
  507. package/dist/assets/manual.0e28cbc4.js +0 -10
  508. package/dist/assets/mark-selection.7b5a6fc9.js +0 -1
  509. package/dist/assets/match-highlighter.873d12a5.js +0 -1
  510. package/dist/assets/mathematica.01c3553a.js +0 -1
  511. package/dist/assets/mbox.22a8b245.js +0 -1
  512. package/dist/assets/migrations.7147c537.js +0 -19
  513. package/dist/assets/mirc.fa73561d.js +0 -1
  514. package/dist/assets/mllike.4c54ebfa.js +0 -1
  515. package/dist/assets/modelica.07339979.js +0 -1
  516. package/dist/assets/modules.bfb7199d.js +0 -69
  517. package/dist/assets/mscgen.686cc266.js +0 -1
  518. package/dist/assets/multiplex.a88458b2.js +0 -3
  519. package/dist/assets/mumps.003d0d45.js +0 -1
  520. package/dist/assets/nginx.dcba875a.js +0 -1
  521. package/dist/assets/notifications.78fe69c9.js +0 -153
  522. package/dist/assets/nsis.a2c211d0.js +0 -1
  523. package/dist/assets/ntriples.4e06baf8.js +0 -1
  524. package/dist/assets/octave.c6583f11.js +0 -1
  525. package/dist/assets/overlay.742dc1cd.js +0 -1
  526. package/dist/assets/overview.28df1146.js +0 -1
  527. package/dist/assets/overview.508f215d.js +0 -1
  528. package/dist/assets/overview.97626817.js +0 -1
  529. package/dist/assets/oz.afa3546c.js +0 -1
  530. package/dist/assets/panels.89c0ed45.js +0 -65
  531. package/dist/assets/pascal.8941c2f2.js +0 -1
  532. package/dist/assets/pegjs.3aee5930.js +0 -1
  533. package/dist/assets/perl.3625c222.js +0 -1
  534. package/dist/assets/php.4cdaa752.js +0 -1
  535. package/dist/assets/pig.21fe63de.js +0 -1
  536. package/dist/assets/pinia.70349f0e.entry.js +0 -1
  537. package/dist/assets/pl-PL.5a1f6a70.js +0 -1
  538. package/dist/assets/plesk.af9c7c77.js +0 -27
  539. package/dist/assets/powershell.cfe96af1.js +0 -1
  540. package/dist/assets/presets-bookmarks.e7d33809.js +0 -1
  541. package/dist/assets/project-settings.d98ebcb5.js +0 -1
  542. package/dist/assets/projects.06f11c9e.js +0 -1
  543. package/dist/assets/properties.90e293bc.js +0 -1
  544. package/dist/assets/protobuf.19a9e9b8.js +0 -1
  545. package/dist/assets/pug.8fdd6886.js +0 -1
  546. package/dist/assets/puppet.6dfeb6da.js +0 -1
  547. package/dist/assets/python.e0245f5c.js +0 -1
  548. package/dist/assets/q.d3d8a6a4.js +0 -1
  549. package/dist/assets/query.8828d31d.js +0 -152
  550. package/dist/assets/quickstart.26991a56.js +0 -9
  551. package/dist/assets/quickstart.60decafe.js +0 -20
  552. package/dist/assets/r.09038281.js +0 -1
  553. package/dist/assets/relations.29fed98c.js +0 -115
  554. package/dist/assets/relationships.9b51c50f.js +0 -55
  555. package/dist/assets/revisions.0f19e955.js +0 -40
  556. package/dist/assets/rpm.881b5f64.js +0 -1
  557. package/dist/assets/rst.b571a0d9.js +0 -1
  558. package/dist/assets/ruby.83d0f6e3.js +0 -1
  559. package/dist/assets/running-locally.261a8137.js +0 -26
  560. package/dist/assets/rust.8eb02a00.js +0 -1
  561. package/dist/assets/sas.1c3e0687.js +0 -1
  562. package/dist/assets/sass.76cf8437.js +0 -1
  563. package/dist/assets/scheme.4fa8c610.js +0 -1
  564. package/dist/assets/security.ed33172c.js +0 -1
  565. package/dist/assets/settings.d5f90d4f.js +0 -51
  566. package/dist/assets/settings.fd4e15aa.js +0 -1
  567. package/dist/assets/shell.c82f9c19.js +0 -1
  568. package/dist/assets/show-hint.40044b34.js +0 -1
  569. package/dist/assets/sieve.55ac0753.js +0 -1
  570. package/dist/assets/simple.96f65f94.js +0 -1
  571. package/dist/assets/slim.e70a287c.js +0 -1
  572. package/dist/assets/smalltalk.d09dc24d.js +0 -1
  573. package/dist/assets/smarty.8ea9900c.js +0 -1
  574. package/dist/assets/solr.a026a0e6.js +0 -1
  575. package/dist/assets/soy.5034b90a.js +0 -1
  576. package/dist/assets/sparql.756dd255.js +0 -1
  577. package/dist/assets/spreadsheet.ec5c0c2e.js +0 -1
  578. package/dist/assets/sql.ec917110.js +0 -1
  579. package/dist/assets/sso.9920cf75.js +0 -22
  580. package/dist/assets/stex.d0b9833b.js +0 -1
  581. package/dist/assets/stylus.8b561261.js +0 -1
  582. package/dist/assets/support.b7301715.js +0 -1
  583. package/dist/assets/swift.1654ac84.js +0 -1
  584. package/dist/assets/tcl.b39e3c47.js +0 -1
  585. package/dist/assets/teams.7d07ab3c.js +0 -1
  586. package/dist/assets/textile.f922c3fe.js +0 -1
  587. package/dist/assets/themes.a5e50284.js +0 -5
  588. package/dist/assets/tiddlywiki.cb8704a6.js +0 -1
  589. package/dist/assets/tiki.088d0dec.js +0 -1
  590. package/dist/assets/toml.4bc9ea0d.js +0 -1
  591. package/dist/assets/tornado.b19655d1.js +0 -1
  592. package/dist/assets/translations.cd3858e6.js +0 -1
  593. package/dist/assets/troff.3a27423f.js +0 -1
  594. package/dist/assets/ttcn-cfg.66931016.js +0 -1
  595. package/dist/assets/ttcn.4b670503.js +0 -1
  596. package/dist/assets/turtle.8a998017.js +0 -1
  597. package/dist/assets/twig.2e58d76f.js +0 -1
  598. package/dist/assets/ubuntu.b8abc8f2.js +0 -11
  599. package/dist/assets/upgrades-migrations.5d6e809a.js +0 -1
  600. package/dist/assets/use-sync.18016d01.js +0 -1
  601. package/dist/assets/user-directory.370a7f49.js +0 -1
  602. package/dist/assets/users-roles-permissions.7f9a42f3.js +0 -1
  603. package/dist/assets/users.b4781411.js +0 -252
  604. package/dist/assets/vb.f5e6afca.js +0 -1
  605. package/dist/assets/vbscript.c44059f4.js +0 -1
  606. package/dist/assets/velocity.99ae445e.js +0 -1
  607. package/dist/assets/vendor.9387af12.css +0 -1
  608. package/dist/assets/vendor.f6090249.js +0 -2939
  609. package/dist/assets/verilog.75ff9f03.js +0 -1
  610. package/dist/assets/vhdl.e0f4e9d6.js +0 -1
  611. package/dist/assets/vue-i18n.4c1cb94b.entry.js +0 -1
  612. package/dist/assets/vue-router.d21957c3.entry.js +0 -1
  613. package/dist/assets/vue.a6974133.js +0 -1
  614. package/dist/assets/vue.deaebe46.entry.js +0 -1
  615. package/dist/assets/wast.9a32ecc0.js +0 -1
  616. package/dist/assets/webhooks.8a69b405.js +0 -1
  617. package/dist/assets/webidl.c677ed4a.js +0 -1
  618. package/dist/assets/xquery.766f7ffc.js +0 -1
  619. package/dist/assets/yacas.4cab11b4.js +0 -1
  620. package/dist/assets/yaml-frontmatter.3fc182ba.js +0 -1
  621. package/dist/assets/yaml.14967251.js +0 -1
  622. package/dist/assets/z80.ea9cb3dc.js +0 -1
@@ -1,90 +0,0 @@
1
- import{w as o,y as d,z as h,A as n,E as t,C as a,W as e}from"./vendor.f6090249.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),P=e("Authenticating into the API"),D=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"),N=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."),O=t("h3",{id:"creating-%2F-updating-%2F-deleting"},[e("Creating / Updating / Deleting "),t("a",{class:"header-anchor",href:"#creating-%2F-updating-%2F-deleting"},"#")],-1),C=t("p",null,"Similarly to fetching, relational content can be modified deeply as well.",-1),H=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
- `),t("span",{class:"hljs-attr"},'"featured_article"'),e(`: {
3
- `),t("span",{class:"hljs-attr"},'"title"'),e(": "),t("span",{class:"hljs-string"},'"This is my new article!"'),e(`
4
- }
5
- }
6
- `)])],-1),G=t("p",null,[e("This will create a new record in the related collection, and save its primary key in the "),t("code",null,"featured_article"),e(" field for this item. To update an existing item, simply provide the primary key with the updates, and Directus will treat it as an update instead of a creation:")],-1),V=t("pre",null,[t("code",{class:"language-json"},[e(`{
7
- `),t("span",{class:"hljs-attr"},'"featured_article"'),e(`: {
8
- `),t("span",{class:"hljs-attr"},'"id"'),e(": "),t("span",{class:"hljs-number"},"15"),e(`,
9
- `),t("span",{class:"hljs-attr"},'"title"'),e(": "),t("span",{class:"hljs-string"},'"This is an updated title for my article!"'),e(`
10
- }
11
- }
12
- `)])],-1),F=t("p",null,"Seeing that the Many-to-One relationship stores the foreign key on the field itself, removing the item can be done by nullifying the field:",-1),Q=t("pre",null,[t("code",{class:"language-json"},[e(`{
13
- `),t("span",{class:"hljs-attr"},'"featured_article"'),e(": "),t("span",{class:"hljs-literal"},"null"),e(`
14
- }
15
- `)])],-1),B=t("h4",{id:"one-to-many-(%2F-many-to-many)"},[e("One-to-Many (/ Many-to-Many) "),t("a",{class:"header-anchor",href:"#one-to-many-(%2F-many-to-many)"},"#")],-1),W=t("p",null,"One-to-Many, and therefore Many-to-Many and Many-to-Any, relationships can be updated in one of two ways:",-1),Y=t("p",null,[t("strong",null,"Basic")],-1),z=t("p",null,[e("The API will return one-to-many fields as an array of nested keys or items (based on the "),t("code",null,"fields"),e(" parameter). You can use this same structure to select what the related items are:")],-1),K=t("pre",null,[t("code",{class:"language-json"},[e(`{
16
- `),t("span",{class:"hljs-attr"},'"children"'),e(": ["),t("span",{class:"hljs-number"},"2"),e(", "),t("span",{class:"hljs-number"},"7"),e(", "),t("span",{class:"hljs-number"},"149"),e(`]
17
- }
18
- `)])],-1),X=t("p",null,"You can also provide an object instead of a primary key in order to create new items nested on the fly, or an object with a primary key included to update an existing item:",-1),J=t("pre",null,[t("code",{class:"language-json"},[e(`{
19
- `),t("span",{class:"hljs-attr"},'"children"'),e(`: [
20
- `),t("span",{class:"hljs-number"},"2"),e(", "),t("span",{class:"hljs-comment"},"// assign existing item 2 to be a child of the current item"),e(`
21
- {
22
- `),t("span",{class:"hljs-attr"},'"name"'),e(": "),t("span",{class:"hljs-string"},'"A new nested item"'),e(`
23
- },
24
- {
25
- `),t("span",{class:"hljs-attr"},'"id"'),e(": "),t("span",{class:"hljs-number"},"149"),e(`,
26
- `),t("span",{class:"hljs-attr"},'"name"'),e(": "),t("span",{class:"hljs-string"},'"Assign and update existing item 149"'),e(`
27
- }
28
- ]
29
- }
30
- `)])],-1),Z=t("p",null,"To remove items from this relationship, simply omit them from the array:",-1),$=t("pre",null,[t("code",{class:"language-json"},[e(`{
31
- `),t("span",{class:"hljs-attr"},'"children"'),e(": ["),t("span",{class:"hljs-number"},"2"),e(", "),t("span",{class:"hljs-number"},"149"),e(`]
32
- }
33
- `)])],-1),tt=t("p",null,"This method of updating a one-to-many is very useful for smaller relational datasets.",-1),et=t("p",null,[t("strong",null,"\u201CDetailed\u201D")],-1),nt=t("p",null,"Alternatively, you can provide an object detailing the changes as follows:",-1),st=t("pre",null,[t("code",{class:"language-json"},[e(`{
34
- `),t("span",{class:"hljs-attr"},'"children"'),e(`: {
35
- `),t("span",{class:"hljs-attr"},'"create"'),e(": [{ "),t("span",{class:"hljs-attr"},'"name"'),e(": "),t("span",{class:"hljs-string"},'"A new nested item"'),e(` }],
36
- `),t("span",{class:"hljs-attr"},'"update"'),e(": [{ "),t("span",{class:"hljs-attr"},'"id"'),e(": "),t("span",{class:"hljs-number"},"149"),e(", "),t("span",{class:"hljs-attr"},'"name"'),e(": "),t("span",{class:"hljs-string"},'"A new nested item"'),e(` }],
37
- `),t("span",{class:"hljs-attr"},'"delete"'),e(": ["),t("span",{class:"hljs-number"},"7"),e(`]
38
- }
39
- }
40
- `)])],-1),at=t("p",null,"This is useful if you need to have more tightly control on staged changes, or when you\u2019re working with a big relational dataset.",-1),lt=t("h4",{id:"many-to-any-(union-types)"},[e("Many-to-Any (Union Types) "),t("a",{class:"header-anchor",href:"#many-to-any-(union-types)"},"#")],-1),ot=t("p",null,"Many-to-Any fields work very similar to a \u201Cregular\u201D many-to-many, with the exception that the related field can pull in the fields from any of the related collections, for example:",-1),rt=t("pre",null,[t("code",{class:"language-json"},[e(`{
41
- `),t("span",{class:"hljs-attr"},'"sections"'),e(`: [
42
- {
43
- `),t("span",{class:"hljs-attr"},'"collection"'),e(": "),t("span",{class:"hljs-string"},'"headings"'),e(`,
44
- `),t("span",{class:"hljs-attr"},'"item"'),e(`: {
45
- `),t("span",{class:"hljs-comment"},"/* headings fields */"),e(`
46
- }
47
- },
48
- {
49
- `),t("span",{class:"hljs-attr"},'"collection"'),e(": "),t("span",{class:"hljs-string"},'"paragraphs"'),e(`,
50
- `),t("span",{class:"hljs-attr"},'"item"'),e(`: {
51
- `),t("span",{class:"hljs-comment"},"/* paragraphs fields */"),e(`
52
- }
53
- }
54
- ]
55
- }
56
- `)])],-1),it=t("h5",{id:"rest-api"},[e("REST API "),t("a",{class:"header-anchor",href:"#rest-api"},"#")],-1),dt=t("p",null,[e("To scope the fields that are returned per collection type, you can use the "),t("code",null,"<field>:<scope>"),e(" syntax in the fields parameter as follows:")],-1),ht=t("pre",null,[t("code",null,`GET /items/pages
57
- ?fields[]=sections.item:headings.id
58
- &fields[]=sections.item:headings.title
59
- &fields[]=sections.item:paragraphs.body
60
- &fields[]=sections.item:paragraphs.background_color
61
- `)],-1),ct=t("h5",{id:"graphql"},[e("GraphQL "),t("a",{class:"header-anchor",href:"#graphql"},"#")],-1),ut=t("p",null,"In GraphQL, you can use nested fragments on the Union Type to select the fields:",-1),pt=t("pre",null,[t("code",{class:"language-graphql"},[t("span",{class:"hljs-keyword"},"query"),e(` {
62
- pages {
63
- sections {
64
- item {
65
- `),t("span",{class:"hljs-keyword"},"..."),e(),t("span",{class:"hljs-keyword"},"on"),e(` headings {
66
- id
67
- title
68
- }
69
-
70
- `),t("span",{class:"hljs-keyword"},"..."),e(),t("span",{class:"hljs-keyword"},"on"),e(` paragraphs {
71
- body
72
- background_color
73
- }
74
- }
75
- }
76
- }
77
- }
78
- `)])],-1),_t=t("div",{class:"tip hint"},[t("div",{class:"hint-title"},"Updating"),t("p",null,"Updating records in a many-to-any is identical to the other relationship types.")],-1),ft=t("h2",{id:"search-http-method"},[e("SEARCH HTTP Method "),t("a",{class:"header-anchor",href:"#search-http-method"},"#")],-1),mt=t("p",null,"When using the REST API to read multiple items by (very) advanced filters, you might run into the issue where the URL simply can\u2019t hold enough data to include the full query structure. In those cases, you can use the SEARCH http method as a drop-in replacement for GET, where you\u2019re allowed to put the query into the request body as follows:",-1),yt=t("p",null,[t("strong",null,"Before:")],-1),gt=t("pre",null,[t("code",null,`GET /items/articles?filter[title][_eq]=Hello World
79
- `)],-1),bt=t("p",null,[t("strong",null,"After:")],-1),wt=t("pre",null,[t("code",{class:"language-json"},`SEARCH /items/articles
80
-
81
- {
82
- "query": {
83
- "filter": {
84
- "title": {
85
- "_eq": "Hello World"
86
- }
87
- }
88
- }
89
- }
90
- `)],-1),Tt=t("p",null,[e("There\u2019s a lot of discussion around whether or not to put a body in a GET request, to use POSTs to create search queries, or to rely on a different method altogether. As of right now, we\u2019ve chosen "),t("a",{href:"https://datatracker.ietf.org/doc/draft-ietf-httpbis-safe-method-w-body/",target:"_blank",rel:"noopener noreferrer"},[e("to align with IETF\u2019s "),t("em",null,"HTTP SEARCH Method"),e(" specification")]),e(". While we recognize this is still a draft spec, the SEARCH method has been used extensively before in the WebDAV world ("),t("a",{href:"https://tools.ietf.org/html/rfc5323",target:"_blank",rel:"noopener noreferrer"},"spec"),e("), and compared to the other available options, it feels like the \u201Ccleanest\u201D and most correct to handle this moving forward. As with everything else, if you have any ideas, opinions, or concerns, "),t("a",{href:"https://github.com/directus/directus/discussions/new",target:"_blank",rel:"noopener noreferrer"},"we\u2019d love to hear your thoughts"),e(".")],-1),jt=t("p",null,"Useful reading:",-1),vt=t("ul",null,[t("li",null,[t("a",{href:"https://datatracker.ietf.org/doc/draft-ietf-httpbis-safe-method-w-body/",target:"_blank",rel:"noopener noreferrer"},[t("em",null,"HTTP SEARCH Method"),e(" (IETF, 2021)")])]),t("li",null,[t("a",{href:"https://httptoolkit.tech/blog/http-search-method/",target:"_blank",rel:"noopener noreferrer"},[t("em",null,"Defining a new HTTP method: HTTP SEARCH"),e(" (Tim Perry, 2021)")])]),t("li",null,[t("a",{href:"https://stackoverflow.com/questions/978061/http-get-with-request-body",target:"_blank",rel:"noopener noreferrer"},[t("em",null,"HTTP GET with request body"),e(" (StackOverflow, 2009 and ongoing)")])]),t("li",null,[t("a",{href:"https://www.elastic.co/guide/en/elasticsearch/guide/current/_empty_search.html",target:"_blank",rel:"noopener noreferrer"},[t("em",null,"Elastic Search GET body usage"),e(" (elastic, n.d.)")])]),t("li",null,[t("a",{href:"https://evertpot.com/dropbox-post-api/",target:"_blank",rel:"noopener noreferrer"},[t("em",null,"Dropbox starts using POST, and why this is poor API design."),e(" (Evert Pot, 2015)")])])],-1),Et=t("h2",{id:"system-data-in-graphql"},[e("System data in GraphQL "),t("a",{class:"header-anchor",href:"#system-data-in-graphql"},"#")],-1),At=t("p",null,[e("Due to restrictions in GraphQL itself, it\u2019s impossible to properly scope/namespace system functionality from regular data access. In order to prevent any naming conflicts between user-created and system data, we\u2019ve scoped the access of the two into separate endpoints for user and system data respectively: "),t("code",null,"/graphql"),e(" and "),t("code",null,"/graphql/system"),e(". Both endpoints share the same underlying schema, so "),t("strong",null,"nested relations will work as expected"),e(" regardless if they \u201Ccross over\u201D between user and system data. The only difference in the two endpoints are the root query and mutation fields available.")],-1),kt=t("h2",{id:"error-codes"},[e("Error Codes "),t("a",{class:"header-anchor",href:"#error-codes"},"#")],-1),It=t("p",null,"Below are the global error codes used within Directus, and what they mean.",-1),Pt=t("table",null,[t("thead",null,[t("tr",null,[t("th",null,"Error Code"),t("th",null,"HTTP Status"),t("th",null,"Description")])]),t("tbody",null,[t("tr",null,[t("td",null,[t("code",null,"FAILED_VALIDATION")]),t("td",null,"400"),t("td",null,"Validation for this particular item failed")]),t("tr",null,[t("td",null,[t("code",null,"FORBIDDEN")]),t("td",null,"403"),t("td",null,"You are not allowed to do the current action")]),t("tr",null,[t("td",null,[t("code",null,"INVALID_TOKEN")]),t("td",null,"403"),t("td",null,"Provided token is invalid")]),t("tr",null,[t("td",null,[t("code",null,"TOKEN_EXPIRED")]),t("td",null,"401"),t("td",null,"Provided token is valid but has expired")]),t("tr",null,[t("td",null,[t("code",null,"INVALID_CREDENTIALS")]),t("td",null,"401"),t("td",null,"Username / password or access token is wrong")]),t("tr",null,[t("td",null,[t("code",null,"INVALID_IP")]),t("td",null,"401"),t("td",null,"Your IP address isn\u2019t allow-listed to be used with this user")]),t("tr",null,[t("td",null,[t("code",null,"INVALID_OTP")]),t("td",null,"401"),t("td",null,"Wrong OTP was provided")]),t("tr",null,[t("td",null,[t("code",null,"INVALID_PAYLOAD")]),t("td",null,"400"),t("td",null,"Provided payload is invalid")]),t("tr",null,[t("td",null,[t("code",null,"INVALID_QUERY")]),t("td",null,"400"),t("td",null,"The requested query parameters can not be used")]),t("tr",null,[t("td",null,[t("code",null,"UNSUPPORTED_MEDIA_TYPE")]),t("td",null,"415"),t("td",null,[e("Provided payload format or "),t("code",null,"Content-Type"),e(" header is unsupported")])]),t("tr",null,[t("td",null,[t("code",null,"REQUESTS_EXCEEDED")]),t("td",null,"429"),t("td",null,"Hit the rate limit")]),t("tr",null,[t("td",null,[t("code",null,"ROUTE_NOT_FOUND")]),t("td",null,"404"),t("td",null,"Endpoint does not exist")]),t("tr",null,[t("td",null,[t("code",null,"SERVICE_UNAVAILABLE")]),t("td",null,"503"),t("td",null,"Could not use external service")]),t("tr",null,[t("td",null,[t("code",null,"UNPROCESSABLE_ENTITY")]),t("td",null,"422"),t("td",null,"You tried doing something illegal")])])],-1),Dt=t("div",{class:"warning hint"},[t("div",{class:"hint-title"},"Security"),t("p",null,[e("To prevent leaking which items exist, all actions for non-existing items will return a "),t("code",null,"FORBIDDEN"),e(" error.")])],-1),xt={setup(St,{expose:r}){const l={title:"API Reference",modularExtension:!1};return r({frontmatter:l}),(qt,Rt)=>{const s=o("router-link"),i=o("DocsWrapper");return d(),h(i,{frontmatter:l},{default:n(()=>[t("div",c,[u,p,_,t("p",null,[f,a(s,{to:"/docs/getting-started/introduction/#database-mirroring"},{default:n(()=>[m]),_:1}),y]),g,b,w,T,t("p",null,[j,a(s,{to:"/docs/reference/authentication/#access-tokens"},{default:n(()=>[v]),_:1}),E,a(s,{to:"/docs/getting-started/quickstart/#_6-set-role-public-permissions"},{default:n(()=>[A]),_:1}),k]),I,t("ul",null,[t("li",null,[a(s,{to:"/docs/reference/authentication/"},{default:n(()=>[P]),_:1})]),t("li",null,[a(s,{to:"/docs/reference/authentication/#login"},{default:n(()=>[D]),_:1})])]),S,t("p",null,[q,a(s,{to:"/docs/reference/query/#fields"},{default:n(()=>[R,L,x]),_:1}),N]),O,C,H,M,U,G,V,F,Q,B,W,Y,z,K,X,J,Z,$,tt,et,nt,st,at,lt,ot,rt,it,dt,ht,ct,ut,pt,_t,ft,mt,yt,gt,bt,wt,Tt,jt,vt,Et,At,kt,It,Pt,Dt])]),_:1})}}};export{xt as default};
@@ -1 +0,0 @@
1
- import{w as a,y as c,z as _,A as s,E as t,C as n,W as e}from"./vendor.f6090249.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"),V=e("Displays"),b=e(" \u2014 Created with Vue.js"),v=e("Panels"),D=e(" \u2014 Created with Vue.js"),S=e("Themes"),A=e(" \u2014 Created with custom CSS"),N=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),z=e("Endpoints"),B=e(" \u2014 Created with JavaScript / Node.js"),I=e("Hooks"),J=e(" \u2014 Created with JavaScript / Node.js"),W=e("Email Templates"),q=e(" \u2014 Created with Liquid.js"),K=e("Migrations"),L=e(" \u2014 Created with JavaScript / Node.js"),G={setup(M,{expose:l}){const i={title:"Extensions",modularExtension:!1};return l({frontmatter:i}),(P,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(()=>[V]),_:1}),b]),t("li",null,[n(o,{to:"/docs/extensions/panels/"},{default:s(()=>[v]),_:1}),D]),t("li",null,[n(o,{to:"/docs/extensions/themes/"},{default:s(()=>[S]),_:1}),A])]),N,T,t("ul",null,[t("li",null,[n(o,{to:"/docs/extensions/endpoints/"},{default:s(()=>[z]),_:1}),B]),t("li",null,[n(o,{to:"/docs/extensions/hooks/"},{default:s(()=>[I]),_:1}),J]),t("li",null,[n(o,{to:"/docs/extensions/email-templates/"},{default:s(()=>[W]),_:1}),q]),t("li",null,[n(o,{to:"/docs/extensions/migrations/"},{default:s(()=>[K]),_:1}),L])])])]),_:1})}}};export{G as default};
@@ -1,4 +0,0 @@
1
- import{w as n,y as l,z as c,A as o,E as e,C as i,W as t}from"./vendor.f6090249.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),A=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),S=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),E=e("h2",{id:"bug-reporting"},[t("Bug Reporting "),e("a",{class:"header-anchor",href:"#bug-reporting"},"#")],-1),N=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
- `)],-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
- `)],-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
- `)],-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,A,S,I,E,N,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 +0,0 @@
1
- import{w as a,y as u,z as d,A as o,E as e,C as s,W as t}from"./vendor.f6090249.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),C=t("To keep things simple, Directus uses friendlier names for database terms, including "),S=t("Project"),T=t(" (database), "),P=t("Collection"),I=t(" (table), "),E=t("Field"),j=t(" (column), "),L=t("Item"),M=t(" (record), and "),W=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),q=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,[C,s(n,{to:"/docs/getting-started/glossary/#projects"},{default:o(()=>[S]),_: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(()=>[W]),_:1}),z]),N,O,q,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 +0,0 @@
1
- import{w as s,y as d,z as r,A as n,E as e,C as o,W as t}from"./vendor.f6090249.js";const h={class:"markdown-body"},m=e("blockquote",null,[e("p",null,"The Item Page is a tailored form for managing Items and their Field values. This page also includes options for archiving, reverting, and commenting on the Item.")],-1),u=e("p",null,[e("div",{class:"table-of-contents"},[e("ul",null,[e("li",null,[e("a",{href:"#create-an-item"},"Create an Item")]),e("li",null,[e("a",{href:"#edit-an-item"},"Edit an Item")]),e("li",null,[e("a",{href:"#archive-an-item"},"Archive an Item")]),e("li",null,[e("a",{href:"#revert-an-item"},"Revert an Item")]),e("li",null,[e("a",{href:"#comment-on-an-item"},"Comment on an Item")]),e("li",null,[e("a",{href:"#delete-an-item"},"Delete an Item")])])])],-1),p={class:"tip hint"},_=e("div",{class:"hint-title"},"Programmatically Manage Items",-1),v=t("This page shows you how to manage Items within the no-code app. However, Items can also be "),g=t("managed"),f=t(" programmatically via the API."),I=e("h2",{id:"create-an-item"},[t("Create an Item "),e("a",{class:"header-anchor",href:"#create-an-item"},"#")],-1),w=e("video",{autoplay:"",muted:"",loop:"",controls:"",title:"Create an Item"},[e("source",{src:"https://cdn.directus.io/docs/v9/app-guide/content/content-items/content-items-20220415A/create-an-item-20220415A.mp4",type:"video/mp4"})],-1),C=e("p",null,"To create an Item, follow the steps below.",-1),y=e("ol",null,[e("li",null,"Navigate to the Content Module and select the desired Collection."),e("li",null,[t("Click "),e("span",{mi:"",btn:""},"add"),t(" in the Page Header and the Item Page will open.")]),e("li",null,"Fill in Item details as desired."),e("li",null,[t("Click "),e("span",{mi:"",btn:""},"check"),t(" in the Page Header.")])],-1),b=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"Singletons"),e("p",null,"If the Collection is configured as a Singleton in the data model settings, then the App will skip step two above and automatically open the Item Page.")],-1),k=e("h2",{id:"edit-an-item"},[t("Edit an Item "),e("a",{class:"header-anchor",href:"#edit-an-item"},"#")],-1),A=e("video",{autoplay:"",muted:"",loop:"",controls:"",title:"Edit an Item"},[e("source",{src:"https://cdn.directus.io/docs/v9/app-guide/content/content-items/content-items-20220415A/edit-an-item-20220415A.mp4",type:"video/mp4"})],-1),P=e("p",null,"To edit an Item\u2019s Field Values, follow the steps below.",-1),S=e("ol",null,[e("li",null,"Navigate to the Content Module and select the desired Collection."),e("li",null,"Click on the desired Item. The Item Page will open."),e("li",null,"Update Item details as desired."),e("li",null,[t("Click "),e("span",{mi:"",btn:""},"check"),t(" in the header.")])],-1),T=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"Other Save Options"),e("p",null,[t("To the right of the primary Save button, there is a "),e("span",{mi:"",icon:""},"more_vert"),t(" menu which contains the following alternate save options:")]),e("p",null,[e("span",{mi:"",icon:""},"check"),t(" Save and Stay (\u2318S)"),e("br"),e("span",{mi:"",icon:""},"add"),t(" Save and Create New (\u2318\u21E7S)"),e("br"),e("span",{mi:"",icon:""},"done_all"),t(" Save as Copy"),e("br"),e("span",{mi:"",icon:""},"undo"),t(" Discard all Changes")])],-1),M=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"Singletons"),e("p",null,"If the Collection is configured as a \u201CSingleton\u201D in Data Model Settings, then the App will skip step two above and automatically open the Item Page.")],-1),D=e("h2",{id:"archive-an-item"},[t("Archive an Item "),e("a",{class:"header-anchor",href:"#archive-an-item"},"#")],-1),N=e("video",{autoplay:"",muted:"",loop:"",controls:"",title:"Archive an Item"},[e("source",{src:"https://cdn.directus.io/docs/v9/app-guide/content/content-items/content-items-20220415A/archive-an-item-20220415A.mp4",type:"video/mp4"})],-1),R=t("To archive an Item, follow the steps below. "),x=t("Learn More"),E=e("ol",null,[e("li",null,"Navigate to the Content Module and select the desired Collection."),e("li",null,"Select the desired Item. The Item Page will open."),e("li",null,[t("Click "),e("span",{mi:"",btn:"",warn:""},"archive"),t(" located in the header and a popup will appear.")]),e("li",null,[t("Click "),e("strong",null,"\u201CArchive\u201D"),t(" to confirm the action.")])],-1),F=e("div",{class:"warning hint"},[e("div",{class:"hint-title"},"Requires Configuration"),e("p",null,"Requires an archive Field to be configured within the Collection\u2019s data model settings.")],-1),V=e("h2",{id:"revert-an-item"},[t("Revert an Item "),e("a",{class:"header-anchor",href:"#revert-an-item"},"#")],-1),H=e("video",{autoplay:"",muted:"",loop:"",controls:"",title:"Revert an Item"},[e("source",{src:"https://cdn.directus.io/docs/v9/app-guide/content/content-items/content-items-20220415A/revert-an-item-20220415A.mp4",type:"video/mp4"})],-1),q=t("As you update Field Values on Items, Directus saves these "),B=t("Revisions"),W=t(", and they can be compared side-by-side to the current state. To revert an Item, follow the steps below."),z=e("ol",null,[e("li",null,"Navigate to the Content Module and select the desired Collection."),e("li",null,"Select the desired Item. The Item Page will open."),e("li",null,[t("Click "),e("strong",null,"\u201CRevisions\u201D"),t(" in the page sidebar.")]),e("li",null,"Click on the revision you wish to preview and a side menu will appear."),e("li",null,[t("Go to "),e("strong",null,"\u201CRevisions Made\u201D"),t(" in the side menu and view the revision differences.")]),e("li",null,[t("Click "),e("span",{mi:"",btn:"",muted:""},"restore"),t(" to revert the Item\u2019s values and return to the Item Page.")]),e("li",null,[t("Click "),e("span",{mi:"",btn:""},"check"),t(" to confirm and exit to the Collection Page.")])],-1),O=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"Revision Preview"),e("p",null,[t("You will also see a "),e("strong",null,"\u201CRevision Preview\u201D"),t(" button in the side menu navigation, which will let you preview all the Item\u2019s values for that revision.")])],-1),U={class:"tip hint"},Y=t("Items can also be reverted "),j=t("programmatically via the API"),G=t("."),L=e("h2",{id:"comment-on-an-item"},[t("Comment on an Item "),e("a",{class:"header-anchor",href:"#comment-on-an-item"},"#")],-1),J=e("video",{autoplay:"",muted:"",loop:"",controls:"",title:"Comment on an Item"},[e("source",{src:"https://cdn.directus.io/docs/v9/app-guide/content/content-items/content-items-20220415A/comment-on-an-item-20220415A.mp4",type:"video/mp4"})],-1),K=e("p",null,"Comments, a collaborative tool, are left on an Item in the sidebar and remain there for you and other team-members to refer to. To create a comment, follow the steps below.",-1),Q=e("ol",null,[e("li",null,"Navigate to the Content Module and select the desired Collection."),e("li",null,"Select the desired Item. The Item Page will open."),e("li",null,[t("Click "),e("strong",null,"\u201CComments\u201D"),t(" in the page sidebar.")]),e("li",null,"Type your message into the input box."),e("li",null,[t("Click the "),e("strong",null,"\u201CSubmit\u201D"),t(" button.")])],-1),X=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"Mentions"),e("p",null,[t("You can also search and mention any User by typing the "),e("strong",null,"\u201C@\u201D"),t(" symbol along with their name or email to send an in-app notification as well as an email directing to your comment.")])],-1),Z=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"Edit and Delete Comments"),e("p",null,[t("Each comment displays the time it was created in its upper right-hand corner. Hover over this and the "),e("span",{mi:"",icon:""},"more_horiz"),t(" menu will appear. Click this menu to "),e("span",{mi:"",icon:""},"edit"),t(" edit or "),e("span",{mi:"",icon:""},"delete"),t(" delete the comment.")])],-1),$=e("h2",{id:"delete-an-item"},[t("Delete an Item "),e("a",{class:"header-anchor",href:"#delete-an-item"},"#")],-1),ee=e("video",{autoplay:"",muted:"",loop:"",controls:"",title:"Comment on an Item"},[e("source",{src:"https://cdn.directus.io/docs/v9/app-guide/content/content-items/content-items-20220415A/delete-an-item-20220415A.mp4",type:"video/mp4"})],-1),te=e("p",null,"To delete an Item, follow the steps below.",-1),ne=e("ol",null,[e("li",null,"Navigate to the Content Module and select the desired Collection."),e("li",null,"Select the desired Item. The Item Page will open."),e("li",null,[t("Click "),e("span",{mi:"",btn:"",dngr:""},"delete"),t(" located in the header and a popup will appear.")]),e("li",null,[t("Click "),e("strong",null,"\u201CDelete\u201D"),t(" to confirm the action.")])],-1),ie=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"Soft-Delete"),e("p",null,[t("If you wish to remove an Item from view or use without fully deleting it, you may consider "),e("a",{href:"#archive-an-item"},"archiving the Item"),t(" instead.")])],-1),ce={setup(oe,{expose:a}){const l={title:"Item Page",modularExtension:!1};return a({frontmatter:l}),(le,se)=>{const i=s("router-link"),c=s("DocsWrapper");return d(),r(c,{frontmatter:l},{default:n(()=>[e("div",h,[m,u,e("div",p,[_,e("p",null,[v,o(i,{to:"/docs/reference/items/"},{default:n(()=>[g]),_:1}),f])]),I,w,C,y,b,k,A,P,S,T,M,D,N,e("p",null,[R,o(i,{to:"/docs/configuration/data-model/#archive"},{default:n(()=>[x]),_:1})]),E,F,V,H,e("p",null,[q,o(i,{to:"/docs/getting-started/glossary/#revisions"},{default:n(()=>[B]),_:1}),W]),z,O,e("div",U,[e("p",null,[Y,o(i,{to:"/docs/reference/system/revisions/"},{default:n(()=>[j]),_:1}),G])]),L,J,K,Q,X,Z,$,ee,te,ne,ie])]),_:1})}}};export{ce as default};
@@ -1 +0,0 @@
1
- import{bW as N}from"./vendor.f6090249.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(N.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:Q(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 Q(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 I in r.additionalContext)s(I);(!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 +0,0 @@
1
- import{bW as he}from"./vendor.f6090249.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 N=_.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=/[+\-*&%=<>!?|~^@]/,Wr=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;function Dr(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 Q,rr;function w(r,e,t){return Q=r,rr=t,e}function M(r,e){var t=r.next();if(t=='"'||t=="'")return e.tokenize=Jr(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)?(Dr(r),r.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/),w("regexp","string-2")):(r.eat("="),w("operator","operator",r.current()));if(t=="`")return e.tokenize=R,R(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 Jr(r){return function(e,t){var f=!1,u;if(Z&&e.peek()=="@"&&e.match(Wr))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 R(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 Lr="([{}])";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=Lr.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 Qr={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 Rr(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"&&Rr(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 U(t,e.vars,!0):null}else return cr(r,e.vars)?e:new U(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 U(r,e,t){this.prev=r,this.vars=e,this.block=t}function K(r,e){this.name=r,this.next=e}var Ur=new K("this",new K("arguments",null));function P(){i.state.context=new U(i.state.context,i.state.localVars,!1),i.state.localVars=Ur}function lr(){i.state.context=new U(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(q,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(q,")"),a,c("=>"),f,j);if(r=="variable")return o(P,E,c("=>"),f,j)}var u=t?W:O;return Qr.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):W(r,e,!1)}function W(r,e,t){var f=t==!1?O:W,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=R,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?W: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(W)}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,D,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 D(r,e){if(p){if(r==":")return n(d);if(e=="?")return n(D)}}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(L,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=R,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,D,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,J):r=="variable"?n(J):o(J)}function J(r,e){return r==")"?n():r==";"?n(J):e=="in"||e=="of"?(i.marked="keyword",n(b,J)):o(b,J)}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(q,")"),a,Sr,h,j);if(p&&e=="<")return n(s(">"),v(ar,">"),a,S)}function L(r,e){if(e=="*")return i.marked="keyword",n(L);if(r=="variable")return B(e),n(L);if(r=="(")return n(P,s(")"),v(q,")"),a,Sr,j);if(p&&e=="<")return n(s(">"),v(ar,">"),a,L)}function Or(r,e){if(r=="keyword"||r=="variable")return i.marked="type",n(Or);if(e=="<")return n(s(">"),v(ar,">"),a)}function q(r,e){return e=="@"&&n(b,q),r=="spread"?n(q):p&&nr(e)?(i.marked="keyword",n(q)):p&&r=="this"?n(D,I):o(E,D,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,D,c("]"),X,V);if(e=="*")return i.marked="keyword",n(V);if(p&&r=="(")return o(L,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?L:S)}function le(r,e){return e=="*"?(i.marked="keyword",n(wr,c(";"))):e=="default"?(i.marked="keyword",n(b,c(";"))):r=="{"?n(v(qr,"}"),wr,c(";")):o(h)}function qr(r,e){if(e=="as")return i.marked="keyword",n(c("variable"));if(r=="variable")return o(y,qr)}function de(r){return r=="string"?n():r=="("?o(b):r=="."?o(O):o(or,Nr,wr)}function or(r,e){return r=="{"?H(or,"}"):(r=="variable"&&B(e),e=="*"&&(i.marked="keyword"),n(me))}function Nr(r){if(r==",")return n(or,Nr)}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)-N,0,"block",!1),localVars:x.localVars,context:x.localVars&&new U(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 Q=="comment"?t:(e.lastType=Q=="operator"&&(rr=="++"||rr=="--")?"incdec":Q,Er(e,t,Q,rr,r))},indent:function(r,e){if(r.tokenize==er||r.tokenize==R)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==W)&&!/^[,\.=+\-*:?[\(]/.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+N:g=="stat"?f.indented+(be(r,e)?vr||N:0):f.info=="switch"&&!T&&x.doubleIndentSwitch!=!1?f.indented+(/^(?:case|default)\b/.test(e)?N:2*N):f.align?f.column+(T?0:1):f.indented+(T?0:N)},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 +0,0 @@
1
- import{bW as p}from"./vendor.f6090249.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 +0,0 @@
1
- import{bW as k,bY as w}from"./vendor.f6090249.js";import{a as O}from"./javascript.22a42c19.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 +0,0 @@
1
- import{bW as H}from"./vendor.f6090249.js";function J(p,h){return h.forEach(function(o){o&&typeof o!="string"&&!Array.isArray(o)&&Object.keys(o).forEach(function(t){if(t!=="default"&&!(t in p)){var l=Object.getOwnPropertyDescriptor(o,t);Object.defineProperty(p,t,l.get?l:{enumerable:!0,get:function(){return o[t]}})}})}),Object.freeze(Object.defineProperty(p,Symbol.toStringTag,{value:"Module"}))}var k={exports:{}};(function(p,h){(function(o){o(H.exports)})(function(o){o.defineMode("julia",function(t,l){function u(n,e,i){return typeof i=="undefined"&&(i=""),typeof e=="undefined"&&(e="\\b"),new RegExp("^"+i+"(("+n.join(")|(")+"))"+e)}var g="\\\\[0-7]{1,3}",m="\\\\x[A-Fa-f0-9]{1,2}",y=`\\\\[abefnrtv0%?'"\\\\]`,x="([^\\u0027\\u005C\\uD800-\\uDFFF]|[\\uD800-\\uDFFF][\\uDC00-\\uDFFF])",s=["[<>]:","[<>=]=","<<=?",">>>?=?","=>","--?>","<--[->]?","\\/\\/","\\.{2,3}","[\\.\\\\%*+\\-<>!\\/^|&]=?","\\?","\\$","~",":"],z=l.operators||u(["[<>]:","[<>=]=","<<=?",">>>?=?","=>","--?>","<--[->]?","\\/\\/","[\\\\%*+\\-<>!\\/^|&\\u00F7\\u22BB]=?","\\?","\\$","~",":","\\u00D7","\\u2208","\\u2209","\\u220B","\\u220C","\\u2218","\\u221A","\\u221B","\\u2229","\\u222A","\\u2260","\\u2264","\\u2265","\\u2286","\\u2288","\\u228A","\\u22C5","\\b(in|isa)\\b(?!.?\\()"],""),E=l.delimiters||/^[;,()[\]{}]/,_=l.identifiers||/^[_A-Za-z\u00A1-\u2217\u2219-\uFFFF][\w\u00A1-\u2217\u2219-\uFFFF]*!*/,A=u([g,m,y,x],"'"),j=["begin","function","type","struct","immutable","let","macro","for","while","quote","if","else","elseif","try","finally","catch","do"],w=["end","else","elseif","catch","finally"],d=["if","else","elseif","while","for","begin","let","end","do","try","catch","finally","return","break","continue","global","local","const","export","import","importall","using","function","where","macro","module","baremodule","struct","type","mutable","immutable","quote","typealias","abstract","primitive","bitstype"],v=["true","false","nothing","NaN","Inf"];o.registerHelper("hintWords","julia",d.concat(v));var C=u(j),D=u(w),P=u(d),T=u(v),O=/^@[_A-Za-z\u00A1-\uFFFF][\w\u00A1-\uFFFF]*!*/,S=/^:[_A-Za-z\u00A1-\uFFFF][\w\u00A1-\uFFFF]*!*/,B=/^(`|([_A-Za-z\u00A1-\uFFFF]*"("")?))/,$=u(s,"","@"),G=u(s,"",":");function F(n){return n.nestedArrays>0}function I(n){return n.nestedGenerators>0}function b(n,e){return typeof e=="undefined"&&(e=0),n.scopes.length<=e?null:n.scopes[n.scopes.length-(e+1)]}function a(n,e){if(n.match("#=",!1))return e.tokenize=N,e.tokenize(n,e);var i=e.leavingExpr;if(n.sol()&&(i=!1),e.leavingExpr=!1,i&&n.match(/^'+/))return"operator";if(n.match(/\.{4,}/))return"error";if(n.match(/\.{1,3}/))return"operator";if(n.eatSpace())return null;var r=n.peek();if(r==="#")return n.skipToEnd(),"comment";if(r==="["&&(e.scopes.push("["),e.nestedArrays++),r==="("&&(e.scopes.push("("),e.nestedGenerators++),F(e)&&r==="]"){for(;e.scopes.length&&b(e)!=="[";)e.scopes.pop();e.scopes.pop(),e.nestedArrays--,e.leavingExpr=!0}if(I(e)&&r===")"){for(;e.scopes.length&&b(e)!=="(";)e.scopes.pop();e.scopes.pop(),e.nestedGenerators--,e.leavingExpr=!0}if(F(e)){if(e.lastToken=="end"&&n.match(":"))return"operator";if(n.match("end"))return"number"}var f;if((f=n.match(C,!1))&&e.scopes.push(f[0]),n.match(D,!1)&&e.scopes.pop(),n.match(/^::(?![:\$])/))return e.tokenize=Z,e.tokenize(n,e);if(!i&&(n.match(S)||n.match(G)))return"builtin";if(n.match(z))return"operator";if(n.match(/^\.?\d/,!1)){var M=RegExp(/^im\b/),c=!1;if(n.match(/^0x\.[0-9a-f_]+p[\+\-]?[_\d]+/i)&&(c=!0),n.match(/^0x[0-9a-f_]+/i)&&(c=!0),n.match(/^0b[01_]+/i)&&(c=!0),n.match(/^0o[0-7_]+/i)&&(c=!0),n.match(/^(?:(?:\d[_\d]*)?\.(?!\.)(?:\d[_\d]*)?|\d[_\d]*\.(?!\.)(?:\d[_\d]*))?([Eef][\+\-]?[_\d]+)?/i)&&(c=!0),n.match(/^\d[_\d]*(e[\+\-]?\d+)?/i)&&(c=!0),c)return n.match(M),e.leavingExpr=!0,"number"}if(n.match("'"))return e.tokenize=R,e.tokenize(n,e);if(n.match(B))return e.tokenize=W(n.current()),e.tokenize(n,e);if(n.match(O)||n.match($))return"meta";if(n.match(E))return null;if(n.match(P))return"keyword";if(n.match(T))return"builtin";var U=e.isDefinition||e.lastToken=="function"||e.lastToken=="macro"||e.lastToken=="type"||e.lastToken=="struct"||e.lastToken=="immutable";return n.match(_)?U?n.peek()==="."?(e.isDefinition=!0,"variable"):(e.isDefinition=!1,"def"):(e.leavingExpr=!0,"variable"):(n.next(),"error")}function Z(n,e){return n.match(/.*?(?=[,;{}()=\s]|$)/),n.match("{")?e.nestedParameters++:n.match("}")&&e.nestedParameters>0&&e.nestedParameters--,e.nestedParameters>0?n.match(/.*?(?={|})/)||n.next():e.nestedParameters==0&&(e.tokenize=a),"builtin"}function N(n,e){return n.match("#=")&&e.nestedComments++,n.match(/.*?(?=(#=|=#))/)||n.skipToEnd(),n.match("=#")&&(e.nestedComments--,e.nestedComments==0&&(e.tokenize=a)),"comment"}function R(n,e){var i=!1,r;if(n.match(A))i=!0;else if(r=n.match(/\\u([a-f0-9]{1,4})(?=')/i)){var f=parseInt(r[1],16);(f<=55295||f>=57344)&&(i=!0,n.next())}else if(r=n.match(/\\U([A-Fa-f0-9]{5,8})(?=')/)){var f=parseInt(r[1],16);f<=1114111&&(i=!0,n.next())}return i?(e.leavingExpr=!0,e.tokenize=a,"string"):(n.match(/^[^']+(?=')/)||n.skipToEnd(),n.match("'")&&(e.tokenize=a),"error")}function W(n){n.substr(-3)==='"""'?n='"""':n.substr(-1)==='"'&&(n='"');function e(i,r){if(i.eat("\\"))i.next();else{if(i.match(n))return r.tokenize=a,r.leavingExpr=!0,"string";i.eat(/[`"]/)}return i.eatWhile(/[^\\`"]/),"string"}return e}var q={startState:function(){return{tokenize:a,scopes:[],lastToken:null,leavingExpr:!1,isDefinition:!1,nestedArrays:0,nestedComments:0,nestedGenerators:0,nestedParameters:0,firstParenPos:-1}},token:function(n,e){var i=e.tokenize(n,e),r=n.current();return r&&i&&(e.lastToken=r),i},indent:function(n,e){var i=0;return(e==="]"||e===")"||/^end\b/.test(e)||/^else/.test(e)||/^catch\b/.test(e)||/^elseif\b/.test(e)||/^finally/.test(e))&&(i=-1),(n.scopes.length+i)*t.indentUnit},electricInput:/\b(end|else|catch|finally)\b/,blockCommentStart:"#=",blockCommentEnd:"=#",lineComment:"#",closeBrackets:'()[]{}""',fold:"indent"};return q}),o.defineMIME("text/x-julia","julia")})})();var K=k.exports,V=J({__proto__:null,default:K},[k.exports]);export{V as j};
@@ -1,54 +0,0 @@
1
- import{w as l,y as r,z as u,A as s,E as e,C as a,W as t}from"./vendor.f6090249.js";const d={class:"markdown-body"},p=t("Custom Layouts allow for building new ways to view or interact with Items via the Collection Detail pages. "),h=t("Learn more about Layouts"),y=t("."),m=e("h2",{id:"extension-entrypoint"},[t("Extension Entrypoint "),e("a",{class:"header-anchor",href:"#extension-entrypoint"},"#")],-1),_=e("p",null,[t("The entrypoint of your layout 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 layout. When loading your layout, this object is imported by the Directus host.")],-1),f=e("p",null,"Example of an entrypoint:",-1),b=e("pre",null,[e("code",{class:"language-js"},[e("span",{class:"hljs-keyword"},"import"),t(" { ref } "),e("span",{class:"hljs-keyword"},"from"),t(),e("span",{class:"hljs-string"},"'vue'"),t(`;
2
- `),e("span",{class:"hljs-keyword"},"import"),t(" LayoutComponent "),e("span",{class:"hljs-keyword"},"from"),t(),e("span",{class:"hljs-string"},"'./layout.vue'"),t(`;
3
-
4
- `),e("span",{class:"hljs-keyword"},"export"),t(),e("span",{class:"hljs-keyword"},"default"),t(` {
5
- `),e("span",{class:"hljs-attr"},"id"),t(": "),e("span",{class:"hljs-string"},"'custom'"),t(`,
6
- `),e("span",{class:"hljs-attr"},"name"),t(": "),e("span",{class:"hljs-string"},"'Custom'"),t(`,
7
- `),e("span",{class:"hljs-attr"},"icon"),t(": "),e("span",{class:"hljs-string"},"'box'"),t(`,
8
- `),e("span",{class:"hljs-attr"},"component"),t(`: LayoutComponent,
9
- `),e("span",{class:"hljs-attr"},"slots"),t(`: {
10
- `),e("span",{class:"hljs-attr"},"options"),t(": "),e("span",{class:"hljs-function"},"() =>"),t(),e("span",{class:"hljs-literal"},"null"),t(`,
11
- `),e("span",{class:"hljs-attr"},"sidebar"),t(": "),e("span",{class:"hljs-function"},"() =>"),t(),e("span",{class:"hljs-literal"},"null"),t(`,
12
- `),e("span",{class:"hljs-attr"},"actions"),t(": "),e("span",{class:"hljs-function"},"() =>"),t(),e("span",{class:"hljs-literal"},"null"),t(`,
13
- },
14
- `),e("span",{class:"hljs-function"},[e("span",{class:"hljs-title"},"setup"),t("("),e("span",{class:"hljs-params"}),t(")")]),t(` {
15
- `),e("span",{class:"hljs-keyword"},"const"),t(" name = ref("),e("span",{class:"hljs-string"},"'Custom Layout'"),t(`);
16
-
17
- `),e("span",{class:"hljs-keyword"},"return"),t(` { name };
18
- },
19
- };
20
- `)])],-1),j=e("h4",{id:"available-options"},[t("Available Options "),e("a",{class:"header-anchor",href:"#available-options"},"#")],-1),g=e("li",null,[e("code",null,"id"),t(" \u2014 The unique key for this layout. It is good practice to scope proprietary layouts with an author prefix.")],-1),v=e("li",null,[e("code",null,"name"),t(" \u2014 The human-readable name for this layout.")],-1),w=e("code",null,"icon",-1),k=t(" \u2014 An icon name from the "),x=t("material icon set"),A=t(", or the extended list of Directus custom icons."),T=e("li",null,[e("code",null,"component"),t(" \u2014 A reference to your layout component.")],-1),C=e("li",null,[e("code",null,"slots"),t(" \u2014 Additional components to be added by your layout. "),e("ul",null,[e("li",null,[e("code",null,"options"),t(" \u2014 A reference to an options component.")]),e("li",null,[e("code",null,"sidebar"),t(" \u2014 A reference to a sidebar component.")]),e("li",null,[e("code",null,"actions"),t(" \u2014 A reference to an actions component.")])])],-1),I=e("li",null,[e("code",null,"setup"),t(" \u2014 A function to setup reactive state to be shared by the layout component and the other components. It receives a "),e("code",null,"props"),t(" object as the first parameter and a "),e("code",null,"context"),t(" object containing an "),e("code",null,"emit()"),t(" function as the second parameter.")],-1),S=e("h2",{id:"layout-component"},[t("Layout Component "),e("a",{class:"header-anchor",href:"#layout-component"},"#")],-1),V=e("p",null,"The layout component is the part of your extension that will be rendered by the Directus App whenever your layout should be used to show the items of a collection. This layout component has to be Vue component. The most straightforward way to write a Vue component is to use the Vue Single File Component syntax.",-1),D=e("p",null,"Example of a layout component using the Vue SFC syntax:",-1),L=e("pre",null,[e("code",{class:"language-vue"},`<template>
21
- <div>
22
- <p>Name: {{ name }}</p>
23
- <p>Collection: {{ collection }}</p>
24
- </div>
25
- </template>
26
-
27
- <script>
28
- export default {
29
- inheritAttrs: false,
30
- props: {
31
- collection: {
32
- type: String,
33
- required: true,
34
- },
35
- name: {
36
- type: String,
37
- required: true,
38
- },
39
- },
40
- };
41
- <\/script>
42
- `)],-1),q=e("p",null,[t("In addition to some pre-defined props, the component receives the state defined inside the "),e("code",null,"setup()"),t(" function as individual props. Besides some pre-defined emits, the component also provides emits for every property returned by the "),e("code",null,"setup()"),t(" function. Those emits are prefixed by "),e("code",null,"update:"),t(".")],-1),E=e("p",null,"These props and emits are available in all components associated with your layout.",-1),P=e("h4",{id:"available-props"},[t("Available Props "),e("a",{class:"header-anchor",href:"#available-props"},"#")],-1),O=e("ul",null,[e("li",null,[e("code",null,"collection"),t(" \u2014 The current collection\u2019s name.")]),e("li",null,[e("code",null,"selection"),t(" \u2014 Any currently selected items.")]),e("li",null,[e("code",null,"layoutOptions"),t(" \u2014 The user\u2019s currently saved layout options.")]),e("li",null,[e("code",null,"layoutQuery"),t(" \u2014 The user\u2019s layout query parameters. (eg: sort, limit, etc)")]),e("li",null,[e("code",null,"filter"),t(" \u2014 The combined active filter.")]),e("li",null,[e("code",null,"filterUser"),t(" \u2014 The user\u2019s currently active filter.")]),e("li",null,[e("code",null,"filterSystem"),t(" \u2014 The system\u2019s currently active filter.")]),e("li",null,[e("code",null,"search"),t(" \u2014 The user\u2019s current search query.")]),e("li",null,[e("code",null,"selectMode"),t(" \u2014 A boolean that indicates if the layout should be in select mode.")]),e("li",null,[e("code",null,"readonly"),t(" \u2014 A boolean that indicates if the layout should be in readonly mode.")]),e("li",null,[e("code",null,"resetPreset"),t(" \u2014 A function to reset the preset.")])],-1),B=e("h4",{id:"available-emits"},[t("Available Emits "),e("a",{class:"header-anchor",href:"#available-emits"},"#")],-1),N=e("ul",null,[e("li",null,[e("code",null,"update:selection"),t(" \u2014 Update the currently selected items.")]),e("li",null,[e("code",null,"update:layoutOptions"),t(" \u2014 Update the user\u2019s currently saved layout options.")]),e("li",null,[e("code",null,"update:layoutQuery"),t(" \u2014 Update the user\u2019s layout query parameters.")])],-1),U=e("p",null,"Other than this simple API to communicate with the Directus App and the system to share state between components, the layout component is a blank canvas, allowing you to create anything you need.",-1),W=e("p",null,[t("The "),e("code",null,"@directus/extensions-sdk"),t(" package provides some useful composables to help with creating layouts:")],-1),z=e("ul",null,[e("li",null,[e("code",null,"useSync()"),t(" \u2014 This function can be used to synchronize a writable ref with a prop and a corresponding emit.")]),e("li",null,[e("code",null,"useCollection()"),t(" \u2014 This function can be used to receive information about a collection.")]),e("li",null,[e("code",null,"useItems()"),t(" \u2014 This function can be used to fetch items from the API.")])],-1),F=e("div",{class:"warning hint"},[e("div",{class:"hint-title"},"Vue Version"),e("p",null,"The Directus App uses Vue 3. There might be 3rd party libraries that aren\u2019t yet compatible with Vue 3.")],-1),Q=e("h2",{id:"accessing-internal-systems"},[t("Accessing Internal Systems "),e("a",{class:"header-anchor",href:"#accessing-internal-systems"},"#")],-1),M=e("p",null,[t("To access internal systems like the API or the stores, you can use the "),e("code",null,"useApi()"),t(" and "),e("code",null,"useStores()"),t(" composables exported by the "),e("code",null,"@directus/extensions-sdk"),t(" package. They can be used inside a "),e("code",null,"setup()"),t(" function like this:")],-1),G=e("pre",null,[e("code",{class:"language-js"},[e("span",{class:"hljs-keyword"},"import"),t(" { useApi, useStores } "),e("span",{class:"hljs-keyword"},"from"),t(),e("span",{class:"hljs-string"},"'@directus/extensions-sdk'"),t(`;
43
-
44
- `),e("span",{class:"hljs-keyword"},"export"),t(),e("span",{class:"hljs-keyword"},"default"),t(` {
45
- `),e("span",{class:"hljs-function"},[e("span",{class:"hljs-title"},"setup"),t("("),e("span",{class:"hljs-params"}),t(")")]),t(` {
46
- `),e("span",{class:"hljs-keyword"},"const"),t(` api = useApi();
47
-
48
- `),e("span",{class:"hljs-keyword"},"const"),t(` { useCollectionsStore } = useStores();
49
- `),e("span",{class:"hljs-keyword"},"const"),t(` collectionsStore = useCollectionsStore();
50
-
51
- `),e("span",{class:"hljs-comment"},"// ..."),t(`
52
- },
53
- };
54
- `)])],-1),H=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"Vue Options API"),e("p",null,[t("If you prefer to use the Vue Options API, you can inject the "),e("code",null,"api"),t(" and "),e("code",null,"stores"),t(" properties directly.")])],-1),Y={setup(J,{expose:i}){const n={title:"Custom Layouts",modularExtension:!0};return i({frontmatter:n}),(K,R)=>{const o=l("router-link"),c=l("DocsWrapper");return r(),u(c,{frontmatter:n},{default:s(()=>[e("div",d,[e("blockquote",null,[e("p",null,[p,a(o,{to:"/docs/getting-started/glossary/#layouts"},{default:s(()=>[h]),_:1}),y])]),m,_,f,b,j,e("ul",null,[g,v,e("li",null,[w,k,a(o,{to:"/docs/getting-started/glossary/#material-icons"},{default:s(()=>[x]),_:1}),A]),T,C,I]),S,V,D,L,q,E,P,O,B,N,U,W,z,F,Q,M,G,H])]),_:1})}}};export{Y as default};
@@ -1 +0,0 @@
1
- import{w as s,y as r,z as d,A as l,E as e,C as n,W as t}from"./vendor.f6090249.js";const c={class:"markdown-body"},h=e("blockquote",null,[e("p",null,"Layouts are customized displays for viewing and interacting with the Items in a Collection. This makes working with some general category of data model, such as map locations or calendar events, a more human-friendly experience.")],-1),p=e("p",null,[e("div",{class:"table-of-contents"},[e("ul",null,[e("li",null,[e("a",{href:"#what's-a-layout%3F"},"What's a Layout?")]),e("li",null,[e("a",{href:"#how-it-works"},"How it Works")]),e("li",null,[e("a",{href:"#table-layout"},"Table Layout")]),e("li",null,[e("a",{href:"#card-layout"},"Card Layout")]),e("li",null,[e("a",{href:"#calendar-layout"},"Calendar Layout")]),e("li",null,[e("a",{href:"#map-layout"},"Map Layout")]),e("li",null,[e("a",{href:"#kanban-layout-%5Bcloud-exclusive%5D"},"Kanban Layout [Cloud Exclusive]")])])])],-1),g=e("h2",{id:"what%E2%80%99s-a-layout%3F"},[t("What\u2019s a Layout? "),e("a",{class:"header-anchor",href:"#what%E2%80%99s-a-layout%3F"},"#")],-1),m=e("video",{autoplay:"",muted:"",loop:"",controls:"",title:"Layouts Montage"},[e("source",{src:"https://cdn.directus.io/docs/v9/app-guide/layouts/layouts-20220415A/layouts-montage-20220419A.mp4",type:"video/mp4"})],-1),y=e("p",null,[t("Data models vary drastically in shape and purpose, from eCommerce platforms to IoT fleets and everything in between. While your Directus Project data may be stored in Collections "),e("em",null,"(i.e. SQL data tables)"),t(", this table representation is not always the most human-friendly way to interact with information. Layouts provide more human-friendly, intuitive displays to view and interact with Items in a Collection.")],-1),_=t("The following sections detail the Layouts managed and supported by the Directus Team. Keep in mind that Directus is open-source, modular and extensible. You are free to create any Layout you need on self-hosted and Enterprise Cloud Projects. Additionally, Directus Cloud is always adding more Layouts to its "),f=t("Cloud Exclusive Extensions"),b=t(", so check back often to stay up-to-date with the latest and greatest. Additionally, you can join the community on "),C=e("a",{href:"https://discord.com/invite/directus",target:"_blank",rel:"noopener noreferrer"},"Discord",-1),w=t(" and "),L=e("a",{href:"https://github.com/directus/directus/discussions",target:"_blank",rel:"noopener noreferrer"},"GitHub",-1),v=t(" to find thousands of engineers guiding development of the Directus platform."),k=e("h2",{id:"how-it-works"},[t("How it Works "),e("a",{class:"header-anchor",href:"#how-it-works"},"#")],-1),I=e("video",{autoplay:"",muted:"",loop:"",controls:"",title:"Adjust Item Layouts"},[e("source",{src:"https://cdn.directus.io/docs/v9/app-guide/layouts/layouts-20220415A/adjust-page-layout-20220415A.mp4",type:"video/mp4"})],-1),S=e("p",null,"To adjust an Item\u2019s Layout, follow the steps below.",-1),T=e("ol",null,[e("li",null,"Navigate to the Content Module and select the desired Collection."),e("li",null,[t("In the page Sidebar, click "),e("strong",null,"\u201CLayout Options\u201D"),t(".")]),e("li",null,"Choose the desired Layout you want to use."),e("li",null,"Customize the Layout as desired.")],-1),F=e("h3",{id:"customization-controls"},[t("Customization Controls "),e("a",{class:"header-anchor",href:"#customization-controls"},"#")],-1),A=e("p",null,"Customization controls can be found in the following three locations.",-1),x=e("ul",null,[e("li",null,[e("strong",null,"Layout Options"),t(" \u2014 Located in the Sidebar.")]),e("li",null,[e("strong",null,"Subheader"),t(" \u2014 Located just below the Page Header and above the Page Area.")]),e("li",null,[e("strong",null,"Page Area"),t(" \u2014 The center of the webpage, which displays all Items.")])],-1),D=e("p",null,"These controls typically fall into three general categories.",-1),P=e("ul",null,[e("li",null,[e("p",null,[e("strong",null,"Styling and Formatting"),e("br"),t(" These are additional customizations to the way a Layout displays such as the size of each Item, how images are cropped, etc.")])]),e("li",null,[e("p",null,[e("strong",null,"Field Values Displayed"),e("br"),t(" Most Layouts allow you to choose which Field Value(s) are used to represent each Item on the Collection Page. For example, with blog posts, it may be ideal to have the hero image, blog title, date, author, etc.")])]),e("li",null,[e("p",null,[e("strong",null,"Manual and Automatic Sorting"),e("br"),t(" Certain Layouts may allow sorting Items by value in ascending and descending order, drag-and-drop repositioning of Items, etc.")])])],-1),M=e("h3",{id:"key-takeaways"},[t("Key Takeaways "),e("a",{class:"header-anchor",href:"#key-takeaways"},"#")],-1),z=e("p",null,"As you go through Layouts, it may be helpful to keep the following points in mind.",-1),j=e("ul",null,[e("li",null,[e("p",null,[e("strong",null,"Layouts will not be universally usable for all Collections."),e("br"),t(" Layouts are tailored to work with specific data-models. For example, in order to work properly, the Map Layout requires the Collection have a Map Field configured and the Calendar Layout requires the Collection have a datetime Field configured.")])]),e("li",null,[e("p",null,[e("strong",null,"Controls are different for each Layout."),e("br"),t(" Each Layout presents data differently, so certain customizations may not be functional with certain Layouts. For example, the Map Layout displays each Item as a pin on a map, so this Layout has no controls for sorting.")])]),e("li",null,[e("p",null,[e("strong",null,"Controls for a Layout may be in different locations."),e("br"),t(" Depending on the Layout, the same control may be under Layout Options in the sidebar, the subheader, or on the Page Area "),e("em",null,"(and Items themselves)"),t(". For example, the Table Layout lets you set the Field Values displayed in the subheader while the Card Layout lets you set Field Values displayed in the Layout Options menu.")])])],-1),O=e("h2",{id:"table-layout"},[t("Table Layout "),e("a",{class:"header-anchor",href:"#table-layout"},"#")],-1),E=e("p",null,[e("img",{src:"https://cdn.directus.io/docs/v9/app-guide/layouts/layouts-20220415A/table-layout.webp",alt:"Table Layout"})],-1),W=e("p",null,"This Layout supports all forms of data, as it directly reflects how data is stored in a Collection. This is the default Layout used in the Content Module. It includes the following controls.",-1),B=e("p",null,[e("strong",null,"Layout Options")],-1),q=e("ul",null,[e("li",null,[e("strong",null,"Spacing"),t(" \u2014 Adjust the vertical space a row takes up.")])],-1),R=e("p",null,[e("strong",null,"Subheader")],-1),N=e("ul",null,[e("li",null,[e("strong",null,"Adjust Column Width"),t(" \u2014 Click and drag the column divider to resize as desired.")]),e("li",null,[e("strong",null,"Add Field"),t(" \u2014 Select "),e("span",{mi:"",icon:""},"add"),t(" in the page subheader and select the desired Field(s).")]),e("li",null,[e("strong",null,"Remove Field"),t(" \u2014 Select "),e("span",{mi:"",icon:""},"arrow_drop_down"),t(" in the column title and click "),e("strong",null,"\u201CHide Field\u201D"),t(".")]),e("li",null,[e("strong",null,"Sort Items by Column"),t(" \u2014 Select "),e("span",{mi:"",icon:""},"arrow_drop_down"),t(" in the column title and sort ascending or descending.")]),e("li",null,[e("strong",null,"Set Text Alignment"),t(" \u2014 Select "),e("span",{mi:"",icon:""},"arrow_drop_down"),t(" in the column title and set left, right, or center.")]),e("li",null,[e("strong",null,"Toggle & Reorder Columns"),t(" \u2014 Click the column header, then drag-and-drop as desired.")]),e("li",null,[e("strong",null,"Select All"),t(" \u2014 Click "),e("span",{mi:"",icon:""},"check_box_outline_blank"),t(" in the selection column header.")])],-1),V=e("p",null,[e("strong",null,"Page Area")],-1),K=e("ul",null,[e("li",null,[e("strong",null,"Select Item(s)"),t(" \u2014 Click "),e("span",{mi:"",icon:""},"check_box_outline_blank"),t(" in the selection column for the desired Item(s).")]),e("li",null,[e("strong",null,"Manually Sort Items"),t(" \u2014 Toggle "),e("span",{mi:"",icon:""},"sort"),t(" in the configured Sort column to drag and drop "),e("span",{mi:"",icon:""},"drag_handle"),t(" Items.")])],-1),G=e("div",{class:"warning hint"},[e("div",{class:"hint-title"},"Manual Sorting Requires Configuration"),e("p",null,"Only available if a Sort column has been configured in the Collection\u2019s Data Model Settings.")],-1),H=e("h2",{id:"card-layout"},[t("Card Layout "),e("a",{class:"header-anchor",href:"#card-layout"},"#")],-1),U=e("p",null,[e("img",{src:"https://cdn.directus.io/docs/v9/app-guide/layouts/layouts-20220415A/card-layout-20220416A.webp",alt:"Card Layout"})],-1),Y=t("This tiled Layout is ideal for Collections that prioritize an image "),Z=e("em",null,"(e.g. a user or blog post)",-1),J=t(". This is the default for both the "),Q=t("User Directory"),X=t(" and "),$=t("File Library"),ee=t(". It includes the following controls."),te=e("p",null,[e("strong",null,"Layout Options")],-1),le=e("ul",null,[e("li",null,[e("strong",null,"Image Source"),t(" \u2014 Set the Field used as the display image.")]),e("li",null,[e("strong",null,"Title"),t(" \u2014 Set a mix of Field values and text to use as a title.")]),e("li",null,[e("strong",null,"Subtitle"),t(" \u2014 Set a mix of Field values and text to use as a subtitle.")]),e("li",null,[e("strong",null,"Image Fit"),t(" \u2014 Set how an image fits inside the Card.")]),e("li",null,[e("strong",null,"Fallback Icon"),t(" \u2014 Set a default icon to display when an Item has no image.")])],-1),oe=e("p",null,[e("strong",null,"Subheader")],-1),ne=e("ul",null,[e("li",null,[e("strong",null,"Card Size"),t(" \u2014 Toggle the Card size as it appears in the Page Area.")]),e("li",null,[e("strong",null,"Sort Field"),t(" \u2014 Click to select the Field you wish to sort by from the dropdown menu.")]),e("li",null,[e("strong",null,"Sort Direction"),t(" \u2014 Toggle ascending and descending sort directions.")]),e("li",null,[e("strong",null,"Select All"),t(" \u2014 Click "),e("strong",null,[t("\u201C"),e("span",{mi:"",icon:""},"check_circle"),t(" Select All\u201D")]),t(" in the selection column header.")])],-1),ae=e("p",null,[e("strong",null,"Page Area")],-1),se=e("ul",null,[e("li",null,[e("strong",null,"Select Item(s)"),t(" \u2014 Click "),e("span",{mi:"",icon:""},"radio_button_unchecked"),t(" in the selection column for the desired Item(s).")]),e("li",null,[e("strong",null,"Adjust Time"),t(" \u2014 Click and drag an Item to change its time.")])],-1),ie=e("h2",{id:"calendar-layout"},[t("Calendar Layout "),e("a",{class:"header-anchor",href:"#calendar-layout"},"#")],-1),ue=e("p",null,[e("img",{src:"https://cdn.directus.io/docs/v9/app-guide/layouts/layouts-20220415A/calendar-layout-20220416A.webp",alt:"Calendar Layout"})],-1),re=e("p",null,[t("This Layout is ideal for Collections with time-oriented data "),e("em",null,"(e.g. events and appointments)"),t(". It includes the following controls.")],-1),de=e("p",null,[e("strong",null,"Layout Options")],-1),ce=e("ul",null,[e("li",null,[e("strong",null,"Display Template"),t(" \u2014 Set a mix of Field values and text to represent Items on the calendar.")]),e("li",null,[e("strong",null,"Start Date Field"),t(" \u2014 Choose Field to determine each Item\u2019s beginning time on the calendar.")]),e("li",null,[e("strong",null,"End Date Field"),t(" \u2014 Choose Field to determine each Item\u2019s ending time on the calendar.")])],-1),he=e("p",null,[e("strong",null,"Subheader")],-1),pe=e("ul",null,[e("li",null,[e("strong",null,"Toggle Month and Year"),t(" \u2014 Move across time using the chevrons in the subheader.")]),e("li",null,[e("strong",null,"Today"),t(" \u2014 Click to jump to the current date on the calendar.")]),e("li",null,[e("strong",null,"Month Week Day List"),t(" \u2014 Adjust the time interval used to display Items in the Page Area.")])],-1),ge=e("p",null,[e("strong",null,"Page Area")],-1),me=e("ul",null,[e("li",null,[e("strong",null,"Select Item"),t(" \u2014 Click an Item on the calendar to open its Item Page.")])],-1),ye=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"Configuration Requirements"),e("p",null,[t("To use this Layout, the Collection will need at least one datetime Field to set a start time, but ideally two "),e("em",null,"(to set a start and end time)"),t(".")])],-1),_e=e("h2",{id:"map-layout"},[t("Map Layout "),e("a",{class:"header-anchor",href:"#map-layout"},"#")],-1),fe=e("p",null,[e("img",{src:"https://cdn.directus.io/docs/v9/app-guide/layouts/layouts-20220415A/map-layout-20220416A.webp",alt:"Map Layout"})],-1),be=e("p",null,"This Layout is ideal for Collections that emphasize geospatial data. It provides a world map, with Items displayed as points, lines, and other geometry. The following options are available:",-1),Ce=e("p",null,[e("strong",null,"Layout Options")],-1),we=e("ul",null,[e("li",null,[e("strong",null,"Basemap"),t(" \u2014 Choose the map provider used for the Collection.")]),e("li",null,[e("strong",null,"Geospatial Field"),t(" \u2014 Select the geospatial field type to display on screen: "),e("ul",null,[e("li",null,[e("strong",null,"Map JSON Point"),t(" \u2014 Supports latitude-longitude based, single-point locations.")]),e("li",null,[e("strong",null,"Map Geometry"),t(" \u2014 Supports geometric areas such as lines and polygons.")])])]),e("li",null,[e("strong",null,"Display Template"),t(" \u2014 Choose the Fields displayed when hovering over an Item on the map.")]),e("li",null,[e("strong",null,"Cluster Nearby Data"),t(" \u2014 Toggle whether or not nearby Items get clustered into a single pin.")])],-1),Le=e("p",null,[e("strong",null,"Subheader"),e("br"),e("em",null,"There is no Subheader on the Map Layout.")],-1),ve=e("p",null,[e("strong",null,"Page Area")],-1),ke=e("ul",null,[e("li",null,[e("strong",null,"Zoom"),t(" \u2014 Click "),e("span",{mi:"",icon:""},"add"),t(" and "),e("span",{mi:"",icon:""},"remove"),t(" in the upper left hand corner of the Page Area to zoom in and out.")]),e("li",null,[e("strong",null,"Zoom to my Location"),t(" \u2014 Click "),e("span",{mi:"",icon:""},"my_location"),t(" to zoom into your current location on the map.")]),e("li",null,[e("strong",null,"Reframe"),t(" \u2014 Click the square in the upper left-hand corner to resize and reframe the map area.")]),e("li",null,[e("strong",null,"Select Item"),t(" \u2014 Click a single Item to enter its Item Page.")]),e("li",null,[e("strong",null,"Select Items"),t(" \u2014 Click and drag to select multiple Items at once, opening the Item Page.")])],-1),Ie=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"Configuration Requirements"),e("p",null,"To use this Layout, the Collection must have a Map Field configured.")],-1),Se=e("h2",{id:"kanban-layout-%5Bcloud-exclusive%5D"},[t("Kanban Layout [Cloud Exclusive] "),e("a",{class:"header-anchor",href:"#kanban-layout-%5Bcloud-exclusive%5D"},"#")],-1),Te=e("p",null,[e("img",{src:"https://cdn.directus.io/docs/v9/app-guide/layouts/layouts-20220415A/kanban-layout-20220416A.webp",alt:"Kanban Layout"})],-1),Fe=e("p",null,[t("This Layout is ideal for Collections that serve as project management tools or to-do lists, where each Item represents a task, because it groups Items onto columns according to their status "),e("em",null,"(e.g. \u201CNot Started\u201D, \u201CIn Progress\u201D, \u201CUnder Review\u201D, \u201CComplete\u201D, or any other status defined)"),t(". The following controls are available.")],-1),Ae=e("p",null,[e("strong",null,"Layout Options")],-1),xe=e("ul",null,[e("li",null,[e("strong",null,"Group By"),t(" \u2014 Select the Field used to define Item status. See below for details.")]),e("li",null,[e("strong",null,"Card Title"),t(" \u2014 Choose a Field to serve as a title on each Item.")]),e("li",null,[e("strong",null,"Card Text"),t(" \u2014 Choose a Field to display additional text on each Item.")])],-1),De=e("p",null,[e("strong",null,"Layout Options > Advanced")],-1),Pe=e("ul",null,[e("li",null,[e("strong",null,"Card Tags"),t(" \u2014 Choose a Tag Field to be displayed on the Item.")]),e("li",null,[e("strong",null,"Card Date"),t(" \u2014 Choose a Datetime Field to be displayed on each Item.")]),e("li",null,[e("strong",null,"Card Image"),t(" \u2014 Choose an Image Field to be displayed on each Item.")]),e("li",null,[e("strong",null,"Card Image Fit"),t(" \u2014 Toggle whether the image fit is cropped.")]),e("li",null,[e("strong",null,"Card User"),t(" \u2014 Choose the User Created Field to display their avatar in the bottom right corner.")]),e("li",null,[e("strong",null,"Show Ungrouped"),t(" \u2014 Toggle display of a column containing Items with no assigned status.")])],-1),Me=e("p",null,[e("strong",null,"Subheader"),e("br"),e("em",null,"There is no Subheader for the Kanban Layout.")],-1),ze=e("p",null,[e("strong",null,"Page Area")],-1),je=e("ul",null,[e("li",null,[e("strong",null,"Create Task and Assign Status"),t(" \u2014 Click "),e("span",{mi:"",icon:""},"add"),t(" in a status column and the Item Page will open.")]),e("li",null,[e("strong",null,"Sort Panels"),t(" \u2014 Drag and drop Items to reposition or change task status.")]),e("li",null,[e("strong",null,"Add Status Panel"),t(" \u2014 Click "),e("span",{mi:"",icon:""},"add_box"),t(" and add a group name (i.e. new status column).")]),e("li",null,[e("strong",null,"Edit or Delete Status Column"),t(" \u2014 Click "),e("span",{mi:"",icon:""},"more_horiz"),t(" and then click "),e("span",{mi:"",icon:""},"edit"),t(" to edit or "),e("span",{mi:"",icon:""},"delete"),t(" to delete.")])],-1),Oe=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"Configuration Requirements"),e("p",null,[t("To make this Layout work, you will need to configure an appropriate status Field on the Collection, then identify this Field under "),e("strong",null,"\u201CGroup By\u201D"),t(" in the Layout Options menu.")])],-1),Re={setup(Ee,{expose:i}){const a={title:"Layouts",modularExtension:!1};return i({frontmatter:a}),(We,Be)=>{const o=s("router-link"),u=s("DocsWrapper");return r(),d(u,{frontmatter:a},{default:l(()=>[e("div",c,[h,p,g,m,y,e("p",null,[_,n(o,{to:"/docs/cloud/glossary/#extensions"},{default:l(()=>[f]),_:1}),b,C,w,L,v]),k,I,S,T,F,A,x,D,P,M,z,j,O,E,W,B,q,R,N,V,K,G,H,U,e("p",null,[Y,Z,J,n(o,{to:"/docs/app/user-directory/"},{default:l(()=>[Q]),_:1}),X,n(o,{to:"/docs/app/file-library/"},{default:l(()=>[$]),_:1}),ee]),te,le,oe,ne,ae,se,ie,ue,re,de,ce,he,pe,ge,me,ye,_e,fe,be,Ce,we,Le,ve,ke,Ie,Se,Te,Fe,Ae,xe,De,Pe,Me,ze,je,Oe])]),_:1})}}};export{Re as default};
@@ -1 +0,0 @@
1
- import{bW as b}from"./vendor.f6090249.js";function E(s,y){return y.forEach(function(n){n&&typeof n!="string"&&!Array.isArray(n)&&Object.keys(n).forEach(function(r){if(r!=="default"&&!(r in s)){var l=Object.getOwnPropertyDescriptor(n,r);Object.defineProperty(s,r,l.get?l:{enumerable:!0,get:function(){return n[r]}})}})}),Object.freeze(Object.defineProperty(s,Symbol.toStringTag,{value:"Module"}))}var v={exports:{}};(function(s,y){(function(n){n(b.exports)})(function(n){n.defineMode("livescript",function(){var w=function(e,t){var a=t.next||"start";if(a){t.next=t.next;var f=x[a];if(f.splice){for(var p=0;p<f.length;++p){var o=f[p];if(o.regex&&e.match(o.regex))return t.next=o.next||t.next,o.token}return e.next(),"error"}if(e.match(o=x[a]))return o.regex&&e.match(o.regex)?(t.next=o.next,o.token):(e.next(),"error")}return e.next(),"error"},h={startState:function(){return{next:"start",lastToken:{style:null,indent:0,content:""}}},token:function(e,t){for(;e.pos==e.start;)var a=w(e,t);return t.lastToken={style:a,indent:e.indentation(),content:e.current()},a.replace(/\./g," ")},indent:function(e){var t=e.lastToken.indent;return e.lastToken.content.match(l)&&(t+=2),t}};return h});var r="(?![\\d\\s])[$\\w\\xAA-\\uFFDC](?:(?!\\s)[$\\w\\xAA-\\uFFDC]|-[A-Za-z])*",l=RegExp("(?:[({[=:]|[-~]>|\\b(?:e(?:lse|xport)|d(?:o|efault)|t(?:ry|hen)|finally|import(?:\\s*all)?|const|var|let|new|catch(?:\\s*"+r+")?))\\s*$"),i="(?![$\\w]|-[A-Za-z]|\\s*:(?![:=]))",g={token:"string",regex:".+"},x={start:[{token:"comment.doc",regex:"/\\*",next:"comment"},{token:"comment",regex:"#.*"},{token:"keyword",regex:"(?:t(?:h(?:is|row|en)|ry|ypeof!?)|c(?:on(?:tinue|st)|a(?:se|tch)|lass)|i(?:n(?:stanceof)?|mp(?:ort(?:\\s+all)?|lements)|[fs])|d(?:e(?:fault|lete|bugger)|o)|f(?:or(?:\\s+own)?|inally|unction)|s(?:uper|witch)|e(?:lse|x(?:tends|port)|val)|a(?:nd|rguments)|n(?:ew|ot)|un(?:less|til)|w(?:hile|ith)|o[fr]|return|break|let|var|loop)"+i},{token:"constant.language",regex:"(?:true|false|yes|no|on|off|null|void|undefined)"+i},{token:"invalid.illegal",regex:"(?:p(?:ackage|r(?:ivate|otected)|ublic)|i(?:mplements|nterface)|enum|static|yield)"+i},{token:"language.support.class",regex:"(?:R(?:e(?:gExp|ferenceError)|angeError)|S(?:tring|yntaxError)|E(?:rror|valError)|Array|Boolean|Date|Function|Number|Object|TypeError|URIError)"+i},{token:"language.support.function",regex:"(?:is(?:NaN|Finite)|parse(?:Int|Float)|Math|JSON|(?:en|de)codeURI(?:Component)?)"+i},{token:"variable.language",regex:"(?:t(?:hat|il|o)|f(?:rom|allthrough)|it|by|e)"+i},{token:"identifier",regex:r+"\\s*:(?![:=])"},{token:"variable",regex:r},{token:"keyword.operator",regex:"(?:\\.{3}|\\s+\\?)"},{token:"keyword.variable",regex:"(?:@+|::|\\.\\.)",next:"key"},{token:"keyword.operator",regex:"\\.\\s*",next:"key"},{token:"string",regex:"\\\\\\S[^\\s,;)}\\]]*"},{token:"string.doc",regex:"'''",next:"qdoc"},{token:"string.doc",regex:'"""',next:"qqdoc"},{token:"string",regex:"'",next:"qstring"},{token:"string",regex:'"',next:"qqstring"},{token:"string",regex:"`",next:"js"},{token:"string",regex:"<\\[",next:"words"},{token:"string.regex",regex:"//",next:"heregex"},{token:"string.regex",regex:"\\/(?:[^[\\/\\n\\\\]*(?:(?:\\\\.|\\[[^\\]\\n\\\\]*(?:\\\\.[^\\]\\n\\\\]*)*\\])[^[\\/\\n\\\\]*)*)\\/[gimy$]{0,4}",next:"key"},{token:"constant.numeric",regex:"(?:0x[\\da-fA-F][\\da-fA-F_]*|(?:[2-9]|[12]\\d|3[0-6])r[\\da-zA-Z][\\da-zA-Z_]*|(?:\\d[\\d_]*(?:\\.\\d[\\d_]*)?|\\.\\d[\\d_]*)(?:e[+-]?\\d[\\d_]*)?[\\w$]*)"},{token:"lparen",regex:"[({[]"},{token:"rparen",regex:"[)}\\]]",next:"key"},{token:"keyword.operator",regex:"\\S+"},{token:"text",regex:"\\s+"}],heregex:[{token:"string.regex",regex:".*?//[gimy$?]{0,4}",next:"start"},{token:"string.regex",regex:"\\s*#{"},{token:"comment.regex",regex:"\\s+(?:#.*)?"},{token:"string.regex",regex:"\\S+"}],key:[{token:"keyword.operator",regex:"[.?@!]+"},{token:"identifier",regex:r,next:"start"},{token:"text",regex:"",next:"start"}],comment:[{token:"comment.doc",regex:".*?\\*/",next:"start"},{token:"comment.doc",regex:".+"}],qdoc:[{token:"string",regex:".*?'''",next:"key"},g],qqdoc:[{token:"string",regex:'.*?"""',next:"key"},g],qstring:[{token:"string",regex:"[^\\\\']*(?:\\\\.[^\\\\']*)*'",next:"key"},g],qqstring:[{token:"string",regex:'[^\\\\"]*(?:\\\\.[^\\\\"]*)*"',next:"key"},g],js:[{token:"string",regex:"[^\\\\`]*(?:\\\\.[^\\\\`]*)*`",next:"key"},g],words:[{token:"string",regex:".*?\\]>",next:"key"},g]};for(var d in x){var c=x[d];if(c.splice)for(var k=0,m=c.length;k<m;++k){var u=c[k];typeof u.regex=="string"&&(x[d][k].regex=new RegExp("^"+u.regex))}else typeof u.regex=="string"&&(x[d].regex=new RegExp("^"+c.regex))}n.defineMIME("text/x-livescript","livescript")})})();var A=v.exports,_=E({__proto__:null,default:A},[v.exports]);export{_ as l};
@@ -1 +0,0 @@
1
- import{w as n,y as s,z as l,A as c,E as a,W as o}from"./vendor.f6090249.js";const p=a("div",{class:"markdown-body"},[a("blockquote",null,[a("p",null,"TK")]),a("h2",{id:"content-translations"},[o("Content Translations "),a("a",{class:"header-anchor",href:"#content-translations"},"#")]),a("h2",{id:"multilingual-app-%26-locales"},[o("Multilingual App & Locales "),a("a",{class:"header-anchor",href:"#multilingual-app-%26-locales"},"#")]),a("h2",{id:"iconography"},[o("Iconography "),a("a",{class:"header-anchor",href:"#iconography"},"#")]),a("h2",{id:"rtl-support"},[o("RTL Support "),a("a",{class:"header-anchor",href:"#rtl-support"},"#")])],-1),f={setup(i,{expose:e}){const t={title:"Localization",modularExtension:!1};return e({frontmatter:t}),(h,d)=>{const r=n("DocsWrapper");return s(),l(r,{frontmatter:t},{default:c(()=>[p]),_:1})}}};export{f as default};
@@ -1 +0,0 @@
1
- import{bW as j}from"./vendor.f6090249.js";function O(u,f){return f.forEach(function(i){i&&typeof i!="string"&&!Array.isArray(i)&&Object.keys(i).forEach(function(o){if(o!=="default"&&!(o in u)){var s=Object.getOwnPropertyDescriptor(i,o);Object.defineProperty(u,o,s.get?s:{enumerable:!0,get:function(){return i[o]}})}})}),Object.freeze(Object.defineProperty(u,Symbol.toStringTag,{value:"Module"}))}var m={exports:{}};(function(u,f){(function(i){i(j.exports)})(function(i){i.defineMode("lua",function(o,s){var h=o.indentUnit;function b(e){return new RegExp("^(?:"+e.join("|")+")","i")}function l(e){return new RegExp("^(?:"+e.join("|")+")$","i")}var v=l(s.specials||[]),k=l(["_G","_VERSION","assert","collectgarbage","dofile","error","getfenv","getmetatable","ipairs","load","loadfile","loadstring","module","next","pairs","pcall","print","rawequal","rawget","rawset","require","select","setfenv","setmetatable","tonumber","tostring","type","unpack","xpcall","coroutine.create","coroutine.resume","coroutine.running","coroutine.status","coroutine.wrap","coroutine.yield","debug.debug","debug.getfenv","debug.gethook","debug.getinfo","debug.getlocal","debug.getmetatable","debug.getregistry","debug.getupvalue","debug.setfenv","debug.sethook","debug.setlocal","debug.setmetatable","debug.setupvalue","debug.traceback","close","flush","lines","read","seek","setvbuf","write","io.close","io.flush","io.input","io.lines","io.open","io.output","io.popen","io.read","io.stderr","io.stdin","io.stdout","io.tmpfile","io.type","io.write","math.abs","math.acos","math.asin","math.atan","math.atan2","math.ceil","math.cos","math.cosh","math.deg","math.exp","math.floor","math.fmod","math.frexp","math.huge","math.ldexp","math.log","math.log10","math.max","math.min","math.modf","math.pi","math.pow","math.rad","math.random","math.randomseed","math.sin","math.sinh","math.sqrt","math.tan","math.tanh","os.clock","os.date","os.difftime","os.execute","os.exit","os.getenv","os.remove","os.rename","os.setlocale","os.time","os.tmpname","package.cpath","package.loaded","package.loaders","package.loadlib","package.path","package.preload","package.seeall","string.byte","string.char","string.dump","string.find","string.format","string.gmatch","string.gsub","string.len","string.lower","string.match","string.rep","string.reverse","string.sub","string.upper","table.concat","table.insert","table.maxn","table.remove","table.sort"]),x=l(["and","break","elseif","false","nil","not","or","return","true","function","end","if","then","else","do","while","repeat","until","for","in","local"]),w=l(["function","if","repeat","do","\\(","{"]),y=l(["end","until","\\)","}"]),E=b(["end","until","\\)","}","else","elseif"]);function g(e){for(var n=0;e.eat("=");)++n;return e.eat("["),n}function d(e,n){var t=e.next();return t=="-"&&e.eat("-")?e.eat("[")&&e.eat("[")?(n.cur=p(g(e),"comment"))(e,n):(e.skipToEnd(),"comment"):t=='"'||t=="'"?(n.cur=_(t))(e,n):t=="["&&/[\[=]/.test(e.peek())?(n.cur=p(g(e),"string"))(e,n):/\d/.test(t)?(e.eatWhile(/[\w.%]/),"number"):/[\w_]/.test(t)?(e.eatWhile(/[\w\\\-_.]/),"variable"):null}function p(e,n){return function(t,r){for(var a=null,c;(c=t.next())!=null;)if(a==null)c=="]"&&(a=0);else if(c=="=")++a;else if(c=="]"&&a==e){r.cur=d;break}else a=null;return n}}function _(e){return function(n,t){for(var r=!1,a;(a=n.next())!=null&&!(a==e&&!r);)r=!r&&a=="\\";return r||(t.cur=d),"string"}}return{startState:function(e){return{basecol:e||0,indentDepth:0,cur:d}},token:function(e,n){if(e.eatSpace())return null;var t=n.cur(e,n),r=e.current();return t=="variable"&&(x.test(r)?t="keyword":k.test(r)?t="builtin":v.test(r)&&(t="variable-2")),t!="comment"&&t!="string"&&(w.test(r)?++n.indentDepth:y.test(r)&&--n.indentDepth),t},indent:function(e,n){var t=E.test(n);return e.basecol+h*(e.indentDepth-(t?1:0))},electricInput:/^\s*(?:end|until|else|\)|\})$/,lineComment:"--",blockCommentStart:"--[[",blockCommentEnd:"]]"}}),i.defineMIME("text/x-lua","lua")})})();var S=m.exports,R=O({__proto__:null,default:S},[m.exports]);export{R as l};
@@ -1,10 +0,0 @@
1
- import{w as l,y as r,z as d,A as e,E as t,C as n,W as o}from"./vendor.f6090249.js";const _={class:"markdown-body"},h={class:"tip hint"},u=t("div",{class:"hint-title"},"Automation",-1),p=o("We\u2019ve created a little CLI tool you can run that does this process automatically. For more info, check the doc on "),f=o("installing through the CLI"),m=o("."),g=t("h2",{id:"1.-setup-a-project-folder"},[o("1. Setup a Project Folder "),t("a",{class:"header-anchor",href:"#1.-setup-a-project-folder"},"#")],-1),v=t("p",null,[o("Create a new directory, and add a "),t("code",null,"package.json"),o(" by running the following command.")],-1),y=t("pre",null,[t("code",{class:"language-bash"},`npm init -y
2
- `)],-1),k=o("We recommend aliasing the "),b=t("code",null,"start",-1),C=o(" script to Directus\u2019 start for easier deployments to services like "),j=o("AWS"),w=o(", "),D=o("Google Cloud Platform"),W=o(" or "),x=o("DigitalOcean App Platform"),A=o("."),F=t("pre",null,[t("code",{class:"language-json"},`{
3
- ...
4
- "scripts": {
5
- "start": "directus start"
6
- }
7
- ...
8
- }
9
- `)],-1),I=t("h2",{id:"2.-install-directus"},[o("2. Install Directus "),t("a",{class:"header-anchor",href:"#2.-install-directus"},"#")],-1),S=t("pre",null,[t("code",{class:"language-bash"},`npm install directus
10
- `)],-1),V=t("h2",{id:"3.-setup-a-configuration-file"},[o("3. Setup a Configuration File "),t("a",{class:"header-anchor",href:"#3.-setup-a-configuration-file"},"#")],-1),B=t("p",null,[o("Finally, you\u2019ll need to setup your "),t("code",null,".env"),o(" file, or configure the environment variables through other means, such as Docker, etc.")],-1),E=o("See "),N=o("Environment Variables"),P=o(" for all available variables."),O={setup(L,{expose:i}){const a={title:"Installing Manually",modularExtension:!1};return i({frontmatter:a}),(z,G)=>{const s=l("router-link"),c=l("DocsWrapper");return r(),d(c,{frontmatter:a},{default:e(()=>[t("div",_,[t("div",h,[u,t("p",null,[p,n(s,{to:"/docs/self-hosted/installation/cli/"},{default:e(()=>[f]),_:1}),m])]),g,v,y,t("p",null,[k,b,C,n(s,{to:"/docs/self-hosted/installation/aws/"},{default:e(()=>[j]),_:1}),w,n(s,{to:"/docs/self-hosted/installation/gcp"},{default:e(()=>[D]),_:1}),W,n(s,{to:"/docs/self-hosted/installation/digitalocean-app-platform/"},{default:e(()=>[x]),_:1}),A]),F,I,S,V,B,t("p",null,[E,n(s,{to:"/docs/configuration/config-options/#general"},{default:e(()=>[N]),_:1}),P])])]),_:1})}}};export{O as default};
@@ -1 +0,0 @@
1
- import{bW as _}from"./vendor.f6090249.js";function A(c,h){return h.forEach(function(o){o&&typeof o!="string"&&!Array.isArray(o)&&Object.keys(o).forEach(function(l){if(l!=="default"&&!(l in c)){var u=Object.getOwnPropertyDescriptor(o,l);Object.defineProperty(c,l,u.get?u:{enumerable:!0,get:function(){return o[l]}})}})}),Object.freeze(Object.defineProperty(c,Symbol.toStringTag,{value:"Module"}))}var x={exports:{}};(function(c,h){(function(o){o(_.exports)})(function(o){o.defineOption("styleSelectedText",!1,function(e,t,r){var n=r&&r!=o.Init;t&&!n?(e.state.markedSelection=[],e.state.markedSelectionStyle=typeof t=="string"?t:"CodeMirror-selectedtext",g(e),e.on("cursorActivity",l),e.on("change",u)):!t&&n&&(e.off("cursorActivity",l),e.off("change",u),v(e),e.state.markedSelection=e.state.markedSelectionStyle=null)});function l(e){e.state.markedSelection&&e.operation(function(){O(e)})}function u(e){e.state.markedSelection&&e.state.markedSelection.length&&e.operation(function(){v(e)})}var p=8,y=o.Pos,f=o.cmpPos;function s(e,t,r,n){if(f(t,r)!=0)for(var a=e.state.markedSelection,i=e.state.markedSelectionStyle,S=t.line;;){var j=S==t.line?t:y(S,0),d=S+p,k=d>=r.line,P=k?r:y(d,0),b=e.markText(j,P,{className:i});if(n==null?a.push(b):a.splice(n++,0,b),k)break;S=d}}function v(e){for(var t=e.state.markedSelection,r=0;r<t.length;++r)t[r].clear();t.length=0}function g(e){v(e);for(var t=e.listSelections(),r=0;r<t.length;r++)s(e,t[r].from(),t[r].to())}function O(e){if(!e.somethingSelected())return v(e);if(e.listSelections().length>1)return g(e);var t=e.getCursor("start"),r=e.getCursor("end"),n=e.state.markedSelection;if(!n.length)return s(e,t,r);var a=n[0].find(),i=n[n.length-1].find();if(!a||!i||r.line-t.line<=p||f(t,i.to)>=0||f(r,a.from)<=0)return g(e);for(;f(t,a.from)>0;)n.shift().clear(),a=n[0].find();for(f(t,a.from)<0&&(a.to.line-t.line<p?(n.shift().clear(),s(e,t,a.to,0)):s(e,t,a.from,0));f(r,i.to)<0;)n.pop().clear(),i=n[n.length-1].find();f(r,i.to)>0&&(r.line-i.from.line<p?(n.pop().clear(),s(e,i.from,r)):s(e,i.to,r))}})})();var w=x.exports,E=A({__proto__:null,default:w},[x.exports]);export{E as m};
@@ -1 +0,0 @@
1
- import{bW as S,bX as $}from"./vendor.f6090249.js";function j(h,v){return v.forEach(function(a){a&&typeof a!="string"&&!Array.isArray(a)&&Object.keys(a).forEach(function(l){if(l!=="default"&&!(l in h)){var c=Object.getOwnPropertyDescriptor(a,l);Object.defineProperty(h,l,c.get?c:{enumerable:!0,get:function(){return a[l]}})}})}),Object.freeze(Object.defineProperty(h,Symbol.toStringTag,{value:"Module"}))}var A={exports:{}};(function(h,v){(function(a){a(S.exports,$.exports)})(function(a){var l={style:"matchhighlight",minChars:2,delay:100,wordsOnly:!1,annotateScrollbar:!1,showToken:!1,trim:!0};function c(t){this.options={};for(var e in l)this.options[e]=(t&&t.hasOwnProperty(e)?t:l)[e];this.overlay=this.timeout=null,this.matchesonscroll=null,this.active=!1}a.defineOption("highlightSelectionMatches",!1,function(t,e,i){if(i&&i!=a.Init&&(O(t),clearTimeout(t.state.matchHighlighter.timeout),t.state.matchHighlighter=null,t.off("cursorActivity",p),t.off("focus",y)),e){var r=t.state.matchHighlighter=new c(e);t.hasFocus()?(r.active=!0,d(t)):t.on("focus",y),t.on("cursorActivity",p)}});function p(t){var e=t.state.matchHighlighter;(e.active||t.hasFocus())&&b(t,e)}function y(t){var e=t.state.matchHighlighter;e.active||(e.active=!0,b(t,e))}function b(t,e){clearTimeout(e.timeout),e.timeout=setTimeout(function(){d(t)},e.options.delay)}function w(t,e,i,r){var o=t.state.matchHighlighter;if(t.addOverlay(o.overlay=x(e,i,r)),o.options.annotateScrollbar&&t.showMatchesOnScrollbar){var n=i?new RegExp((/\w/.test(e.charAt(0))?"\\b":"")+e.replace(/[\\\[.+*?(){|^$]/g,"\\$&")+(/\w/.test(e.charAt(e.length-1))?"\\b":"")):e;o.matchesonscroll=t.showMatchesOnScrollbar(n,!1,{className:"CodeMirror-selection-highlight-scrollbar"})}}function O(t){var e=t.state.matchHighlighter;e.overlay&&(t.removeOverlay(e.overlay),e.overlay=null,e.matchesonscroll&&(e.matchesonscroll.clear(),e.matchesonscroll=null))}function d(t){t.operation(function(){var e=t.state.matchHighlighter;if(O(t),!t.somethingSelected()&&e.options.showToken){for(var i=e.options.showToken===!0?/[\w$]/:e.options.showToken,r=t.getCursor(),o=t.getLine(r.line),n=r.ch,s=n;n&&i.test(o.charAt(n-1));)--n;for(;s<o.length&&i.test(o.charAt(s));)++s;n<s&&w(t,o.slice(n,s),i,e.options.style);return}var u=t.getCursor("from"),g=t.getCursor("to");if(u.line==g.line&&!(e.options.wordsOnly&&!H(t,u,g))){var f=t.getRange(u,g);e.options.trim&&(f=f.replace(/^\s+|\s+$/g,"")),f.length>=e.options.minChars&&w(t,f,!1,e.options.style)}})}function H(t,e,i){var r=t.getRange(e,i);if(r.match(/^\w+$/)!==null){if(e.ch>0){var o={line:e.line,ch:e.ch-1},n=t.getRange(o,e);if(n.match(/\W/)===null)return!1}if(i.ch<t.getLine(e.line).length){var o={line:i.line,ch:i.ch+1},n=t.getRange(i,o);if(n.match(/\W/)===null)return!1}return!0}else return!1}function T(t,e){return(!t.start||!e.test(t.string.charAt(t.start-1)))&&(t.pos==t.string.length||!e.test(t.string.charAt(t.pos)))}function x(t,e,i){return{token:function(r){if(r.match(t)&&(!e||T(r,e)))return i;r.next(),r.skipTo(t.charAt(0))||r.skipToEnd()}}}})})();var k=A.exports,M=j({__proto__:null,default:k},[A.exports]);export{M as m};