@eventcatalog/core 0.5.1 → 0.6.0

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 (162) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +6 -6
  3. package/.next/cache/.tsbuildinfo +1 -1
  4. package/.next/cache/config.json +3 -3
  5. package/.next/cache/eslint/.cache_1bay4w0 +1 -1
  6. package/.next/cache/next-server.js.nft.json +1 -1
  7. package/.next/cache/webpack/client-production/0.pack +0 -0
  8. package/.next/cache/webpack/client-production/1.pack +0 -0
  9. package/.next/cache/webpack/client-production/index.pack +0 -0
  10. package/.next/cache/webpack/server-production/0.pack +0 -0
  11. package/.next/cache/webpack/server-production/index.pack +0 -0
  12. package/.next/next-server.js.nft.json +1 -1
  13. package/.next/prerender-manifest.json +1 -1
  14. package/.next/routes-manifest.json +1 -1
  15. package/.next/server/pages/404.html +1 -1
  16. package/.next/server/pages/500.html +1 -1
  17. package/.next/server/pages/domains/Orders/events/OrderComplete/logs.html +1 -1
  18. package/.next/server/pages/domains/Orders/events/OrderComplete.html +2 -2
  19. package/.next/server/pages/domains/Orders/events/OrderComplete.json +1 -1
  20. package/.next/server/pages/domains/Orders/events/OrderConfirmed/logs.html +1 -1
  21. package/.next/server/pages/domains/Orders/events/OrderConfirmed.html +2 -2
  22. package/.next/server/pages/domains/Orders/events/OrderConfirmed.json +1 -1
  23. package/.next/server/pages/domains/Orders/events/OrderRequested/logs.html +1 -1
  24. package/.next/server/pages/domains/Orders/events/OrderRequested.html +2 -2
  25. package/.next/server/pages/domains/Orders/events/OrderRequested.json +1 -1
  26. package/.next/server/pages/domains/Orders/services/Orders Service.html +2 -2
  27. package/.next/server/pages/domains/Orders/services/Orders Service.json +1 -1
  28. package/.next/server/pages/domains/Orders.html +2 -2
  29. package/.next/server/pages/domains/Orders.json +1 -1
  30. package/.next/server/pages/domains/Shopping/events/AddedItemToCart/logs.html +1 -1
  31. package/.next/server/pages/domains/Shopping/events/AddedItemToCart/v/0.0.1.html +2 -2
  32. package/.next/server/pages/domains/Shopping/events/AddedItemToCart/v/0.0.1.json +1 -1
  33. package/.next/server/pages/domains/Shopping/events/AddedItemToCart/v/0.0.2.html +2 -2
  34. package/.next/server/pages/domains/Shopping/events/AddedItemToCart/v/0.0.2.json +1 -1
  35. package/.next/server/pages/domains/Shopping/events/AddedItemToCart.html +2 -2
  36. package/.next/server/pages/domains/Shopping/events/AddedItemToCart.json +1 -1
  37. package/.next/server/pages/domains/Shopping/events/RemovedItemFromCart/logs.html +1 -1
  38. package/.next/server/pages/domains/Shopping/events/RemovedItemFromCart.html +2 -2
  39. package/.next/server/pages/domains/Shopping/events/RemovedItemFromCart.json +1 -1
  40. package/.next/server/pages/domains/Shopping.html +2 -2
  41. package/.next/server/pages/domains/Shopping.json +1 -1
  42. package/.next/server/pages/domains.html +2 -2
  43. package/.next/server/pages/domains.js +197 -32
  44. package/.next/server/pages/domains.json +1 -1
  45. package/.next/server/pages/events/PaymentProcessed/logs.html +1 -1
  46. package/.next/server/pages/events/PaymentProcessed.html +2 -2
  47. package/.next/server/pages/events/PaymentProcessed.json +1 -1
  48. package/.next/server/pages/events/ShipmentDelivered/logs.html +1 -1
  49. package/.next/server/pages/events/ShipmentDelivered.html +2 -2
  50. package/.next/server/pages/events/ShipmentDelivered.json +1 -1
  51. package/.next/server/pages/events/ShipmentDispatched/logs.html +1 -1
  52. package/.next/server/pages/events/ShipmentDispatched.html +2 -2
  53. package/.next/server/pages/events/ShipmentDispatched.json +1 -1
  54. package/.next/server/pages/events/ShipmentPrepared/logs.html +1 -1
  55. package/.next/server/pages/events/ShipmentPrepared.html +2 -2
  56. package/.next/server/pages/events/ShipmentPrepared.json +1 -1
  57. package/.next/server/pages/events.html +2 -2
  58. package/.next/server/pages/events.js +51 -13
  59. package/.next/server/pages/index.html +1 -1
  60. package/.next/server/pages/overview.html +1 -1
  61. package/.next/server/pages/services/Orders Service.html +1 -1
  62. package/.next/server/pages/services/Payment Service.html +2 -2
  63. package/.next/server/pages/services/Payment Service.json +1 -1
  64. package/.next/server/pages/services/Shipping Service.html +2 -2
  65. package/.next/server/pages/services/Shipping Service.json +1 -1
  66. package/.next/server/pages/services.html +2 -2
  67. package/.next/server/pages/services.js +109 -1
  68. package/.next/server/pages/users/dboyne.html +2 -2
  69. package/.next/server/pages/users/mSmith.html +2 -2
  70. package/.next/server/pages/visualiser.html +2 -2
  71. package/.next/static/{XW8NB7ocjPyWYJcp6YWjr → 9YcvZ96FjlpZ8qOEsEiDs}/_buildManifest.js +1 -1
  72. package/.next/static/{XW8NB7ocjPyWYJcp6YWjr → 9YcvZ96FjlpZ8qOEsEiDs}/_middlewareManifest.js +0 -0
  73. package/.next/static/{XW8NB7ocjPyWYJcp6YWjr → 9YcvZ96FjlpZ8qOEsEiDs}/_ssgManifest.js +0 -0
  74. package/.next/static/chunks/pages/domains-3afd8f2e9be47b46.js +1 -0
  75. package/.next/static/chunks/pages/{events-39d0289104437cf0.js → events-381a23cb2fc16a10.js} +1 -1
  76. package/.next/static/chunks/pages/services-d7e2a5e23ebfbaae.js +1 -0
  77. package/.next/trace +72 -72
  78. package/CHANGELOG.md +12 -0
  79. package/out/404/index.html +1 -1
  80. package/out/_next/data/{XW8NB7ocjPyWYJcp6YWjr → 9YcvZ96FjlpZ8qOEsEiDs}/domains/Orders/events/OrderComplete/logs.json +0 -0
  81. package/out/_next/data/{XW8NB7ocjPyWYJcp6YWjr → 9YcvZ96FjlpZ8qOEsEiDs}/domains/Orders/events/OrderComplete.json +1 -1
  82. package/out/_next/data/{XW8NB7ocjPyWYJcp6YWjr → 9YcvZ96FjlpZ8qOEsEiDs}/domains/Orders/events/OrderConfirmed/logs.json +0 -0
  83. package/out/_next/data/{XW8NB7ocjPyWYJcp6YWjr → 9YcvZ96FjlpZ8qOEsEiDs}/domains/Orders/events/OrderConfirmed.json +1 -1
  84. package/out/_next/data/{XW8NB7ocjPyWYJcp6YWjr → 9YcvZ96FjlpZ8qOEsEiDs}/domains/Orders/events/OrderRequested/logs.json +0 -0
  85. package/out/_next/data/{XW8NB7ocjPyWYJcp6YWjr → 9YcvZ96FjlpZ8qOEsEiDs}/domains/Orders/events/OrderRequested.json +1 -1
  86. package/out/_next/data/{XW8NB7ocjPyWYJcp6YWjr → 9YcvZ96FjlpZ8qOEsEiDs}/domains/Orders/services/Orders Service.json +1 -1
  87. package/out/_next/data/{XW8NB7ocjPyWYJcp6YWjr → 9YcvZ96FjlpZ8qOEsEiDs}/domains/Orders.json +1 -1
  88. package/out/_next/data/{XW8NB7ocjPyWYJcp6YWjr → 9YcvZ96FjlpZ8qOEsEiDs}/domains/Shopping/events/AddedItemToCart/logs.json +0 -0
  89. package/out/_next/data/{XW8NB7ocjPyWYJcp6YWjr → 9YcvZ96FjlpZ8qOEsEiDs}/domains/Shopping/events/AddedItemToCart/v/0.0.1.json +1 -1
  90. package/out/_next/data/{XW8NB7ocjPyWYJcp6YWjr → 9YcvZ96FjlpZ8qOEsEiDs}/domains/Shopping/events/AddedItemToCart/v/0.0.2.json +1 -1
  91. package/out/_next/data/{XW8NB7ocjPyWYJcp6YWjr → 9YcvZ96FjlpZ8qOEsEiDs}/domains/Shopping/events/AddedItemToCart.json +1 -1
  92. package/out/_next/data/{XW8NB7ocjPyWYJcp6YWjr → 9YcvZ96FjlpZ8qOEsEiDs}/domains/Shopping/events/RemovedItemFromCart/logs.json +0 -0
  93. package/out/_next/data/{XW8NB7ocjPyWYJcp6YWjr → 9YcvZ96FjlpZ8qOEsEiDs}/domains/Shopping/events/RemovedItemFromCart.json +1 -1
  94. package/out/_next/data/9YcvZ96FjlpZ8qOEsEiDs/domains/Shopping.json +1 -0
  95. package/out/_next/data/9YcvZ96FjlpZ8qOEsEiDs/domains.json +1 -0
  96. package/out/_next/data/{XW8NB7ocjPyWYJcp6YWjr → 9YcvZ96FjlpZ8qOEsEiDs}/events/PaymentProcessed/logs.json +0 -0
  97. package/out/_next/data/{XW8NB7ocjPyWYJcp6YWjr → 9YcvZ96FjlpZ8qOEsEiDs}/events/PaymentProcessed.json +1 -1
  98. package/out/_next/data/{XW8NB7ocjPyWYJcp6YWjr → 9YcvZ96FjlpZ8qOEsEiDs}/events/ShipmentDelivered/logs.json +0 -0
  99. package/out/_next/data/{XW8NB7ocjPyWYJcp6YWjr → 9YcvZ96FjlpZ8qOEsEiDs}/events/ShipmentDelivered.json +1 -1
  100. package/out/_next/data/{XW8NB7ocjPyWYJcp6YWjr → 9YcvZ96FjlpZ8qOEsEiDs}/events/ShipmentDispatched/logs.json +0 -0
  101. package/out/_next/data/{XW8NB7ocjPyWYJcp6YWjr → 9YcvZ96FjlpZ8qOEsEiDs}/events/ShipmentDispatched.json +1 -1
  102. package/out/_next/data/{XW8NB7ocjPyWYJcp6YWjr → 9YcvZ96FjlpZ8qOEsEiDs}/events/ShipmentPrepared/logs.json +0 -0
  103. package/out/_next/data/{XW8NB7ocjPyWYJcp6YWjr → 9YcvZ96FjlpZ8qOEsEiDs}/events/ShipmentPrepared.json +1 -1
  104. package/out/_next/data/{XW8NB7ocjPyWYJcp6YWjr → 9YcvZ96FjlpZ8qOEsEiDs}/events.json +0 -0
  105. package/out/_next/data/{XW8NB7ocjPyWYJcp6YWjr → 9YcvZ96FjlpZ8qOEsEiDs}/overview.json +0 -0
  106. package/out/_next/data/{XW8NB7ocjPyWYJcp6YWjr → 9YcvZ96FjlpZ8qOEsEiDs}/services/Orders Service.json +0 -0
  107. package/out/_next/data/{XW8NB7ocjPyWYJcp6YWjr → 9YcvZ96FjlpZ8qOEsEiDs}/services/Payment Service.json +1 -1
  108. package/out/_next/data/{XW8NB7ocjPyWYJcp6YWjr → 9YcvZ96FjlpZ8qOEsEiDs}/services/Shipping Service.json +1 -1
  109. package/out/_next/data/{XW8NB7ocjPyWYJcp6YWjr → 9YcvZ96FjlpZ8qOEsEiDs}/services.json +0 -0
  110. package/out/_next/data/{XW8NB7ocjPyWYJcp6YWjr → 9YcvZ96FjlpZ8qOEsEiDs}/users/dboyne.json +0 -0
  111. package/out/_next/data/{XW8NB7ocjPyWYJcp6YWjr → 9YcvZ96FjlpZ8qOEsEiDs}/users/mSmith.json +0 -0
  112. package/out/_next/data/{XW8NB7ocjPyWYJcp6YWjr → 9YcvZ96FjlpZ8qOEsEiDs}/visualiser.json +0 -0
  113. package/out/_next/static/{XW8NB7ocjPyWYJcp6YWjr → 9YcvZ96FjlpZ8qOEsEiDs}/_buildManifest.js +1 -1
  114. package/out/_next/static/{XW8NB7ocjPyWYJcp6YWjr → 9YcvZ96FjlpZ8qOEsEiDs}/_middlewareManifest.js +0 -0
  115. package/out/_next/static/{XW8NB7ocjPyWYJcp6YWjr → 9YcvZ96FjlpZ8qOEsEiDs}/_ssgManifest.js +0 -0
  116. package/out/_next/static/chunks/pages/domains-3afd8f2e9be47b46.js +1 -0
  117. package/out/_next/static/chunks/pages/{events-39d0289104437cf0.js → events-381a23cb2fc16a10.js} +1 -1
  118. package/out/_next/static/chunks/pages/services-d7e2a5e23ebfbaae.js +1 -0
  119. package/out/domains/Orders/events/OrderComplete/index.html +2 -2
  120. package/out/domains/Orders/events/OrderComplete/logs/index.html +1 -1
  121. package/out/domains/Orders/events/OrderConfirmed/index.html +2 -2
  122. package/out/domains/Orders/events/OrderConfirmed/logs/index.html +1 -1
  123. package/out/domains/Orders/events/OrderRequested/index.html +2 -2
  124. package/out/domains/Orders/events/OrderRequested/logs/index.html +1 -1
  125. package/out/domains/Orders/index.html +2 -2
  126. package/out/domains/Orders/services/Orders Service/index.html +2 -2
  127. package/out/domains/Shopping/events/AddedItemToCart/index.html +2 -2
  128. package/out/domains/Shopping/events/AddedItemToCart/logs/index.html +1 -1
  129. package/out/domains/Shopping/events/AddedItemToCart/v/0.0.1/index.html +2 -2
  130. package/out/domains/Shopping/events/AddedItemToCart/v/0.0.2/index.html +2 -2
  131. package/out/domains/Shopping/events/RemovedItemFromCart/index.html +2 -2
  132. package/out/domains/Shopping/events/RemovedItemFromCart/logs/index.html +1 -1
  133. package/out/domains/Shopping/index.html +2 -2
  134. package/out/domains/index.html +2 -2
  135. package/out/events/PaymentProcessed/index.html +2 -2
  136. package/out/events/PaymentProcessed/logs/index.html +1 -1
  137. package/out/events/ShipmentDelivered/index.html +2 -2
  138. package/out/events/ShipmentDelivered/logs/index.html +1 -1
  139. package/out/events/ShipmentDispatched/index.html +2 -2
  140. package/out/events/ShipmentDispatched/logs/index.html +1 -1
  141. package/out/events/ShipmentPrepared/index.html +2 -2
  142. package/out/events/ShipmentPrepared/logs/index.html +1 -1
  143. package/out/events/index.html +2 -2
  144. package/out/index.html +1 -1
  145. package/out/overview/index.html +1 -1
  146. package/out/services/Orders Service/index.html +1 -1
  147. package/out/services/Payment Service/index.html +2 -2
  148. package/out/services/Shipping Service/index.html +2 -2
  149. package/out/services/index.html +2 -2
  150. package/out/users/dboyne/index.html +2 -2
  151. package/out/users/mSmith/index.html +2 -2
  152. package/out/visualiser/index.html +2 -2
  153. package/package.json +2 -2
  154. package/pages/domains.tsx +143 -12
  155. package/pages/events.tsx +47 -10
  156. package/pages/services.tsx +86 -2
  157. package/.next/static/chunks/pages/domains-2af48f367109301f.js +0 -1
  158. package/.next/static/chunks/pages/services-26b3d634bb5461b7.js +0 -1
  159. package/out/_next/data/XW8NB7ocjPyWYJcp6YWjr/domains/Shopping.json +0 -1
  160. package/out/_next/data/XW8NB7ocjPyWYJcp6YWjr/domains.json +0 -1
  161. package/out/_next/static/chunks/pages/domains-2af48f367109301f.js +0 -1
  162. package/out/_next/static/chunks/pages/services-26b3d634bb5461b7.js +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eventcatalog/core",
3
- "version": "0.5.1",
3
+ "version": "0.6.0",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -20,7 +20,7 @@
20
20
  "@headlessui/react": "^1.4.2",
21
21
  "@heroicons/react": "^1.0.5",
22
22
  "@mdx-js/react": "^1.6.22",
23
- "@stoplight/json-schema-viewer": "^4.5.0",
23
+ "@stoplight/json-schema-viewer": "4.5.0",
24
24
  "@stoplight/markdown-viewer": "^5.4.2",
25
25
  "@stoplight/mosaic": "^1.15.3",
26
26
  "@stoplight/mosaic-code-viewer": "^1.15.3",
package/pages/domains.tsx CHANGED
@@ -1,17 +1,93 @@
1
1
  import Head from 'next/head';
2
- import { Service, Domain } from '@eventcatalog/types';
2
+ import { Domain } from '@eventcatalog/types';
3
3
 
4
+ import { useState, useCallback, useEffect } from 'react';
5
+ import debounce from 'lodash.debounce';
6
+ import { SearchIcon } from '@heroicons/react/outline';
4
7
  import DomainGrid from '@/components/Grids/DomainGrid';
5
- import { getAllServices } from '@/lib/services';
6
8
  import { useConfig } from '@/hooks/EventCatalog';
7
9
  import { getAllDomains } from '@/lib/domains';
8
10
 
9
11
  export interface PageProps {
10
- services: Service[];
11
12
  domains: Domain[];
12
13
  }
13
14
 
14
15
  export default function Page({ domains }: PageProps) {
16
+ const [domainsToRender, setDomainsToRender] = useState(domains);
17
+ const [searchFilter, setSearchFilter] = useState('');
18
+ const [selectedFilters, setSelectedFilters] = useState({ badges: [] });
19
+
20
+ const filters = [
21
+ {
22
+ id: 'badges',
23
+ name: `Filter by Badges`,
24
+ options: domains.reduce((p, c) => {
25
+ if (!c.badges) {
26
+ return p;
27
+ }
28
+ c.badges.forEach((badge) => {
29
+ const existing = p.map((b) => b.value);
30
+ if (!existing.includes(badge.content)) {
31
+ p.push({
32
+ value: badge.content,
33
+ label: badge.content,
34
+ checked: false,
35
+ });
36
+ }
37
+ });
38
+ return p;
39
+ }, [] as { value: string; label: string; checked: boolean }[]),
40
+ },
41
+ ];
42
+
43
+ const handleFilterSelection = (option, type, event) => {
44
+ console.log(option, type, event);
45
+
46
+ if (event.target.checked) {
47
+ const newFilters = selectedFilters[type].concat([option.value]);
48
+ setSelectedFilters({ ...selectedFilters, [type]: newFilters });
49
+ } else {
50
+ const newFilters = selectedFilters[type].filter((value) => value !== option.value);
51
+ setSelectedFilters({ ...selectedFilters, [type]: newFilters });
52
+ }
53
+ };
54
+
55
+ const getFilteredDomains = (): any => {
56
+ let filteredDomains = domains;
57
+
58
+ if (!selectedFilters.badges && !searchFilter) return domains;
59
+
60
+ if (searchFilter) {
61
+ filteredDomains = filteredDomains.filter((service) => service.name.toLowerCase().includes(searchFilter.toLowerCase()));
62
+ }
63
+
64
+ if (selectedFilters.badges.length > 0) {
65
+ const { badges: badgeFilters } = selectedFilters;
66
+ // @ts-ignore
67
+ filteredDomains = filteredDomains.filter((event) => {
68
+ if (!event.badges) {
69
+ return false;
70
+ }
71
+ return event.badges.filter((badge) => badgeFilters.includes(badge.content)).length !== 0;
72
+ });
73
+ }
74
+
75
+ return filteredDomains;
76
+ };
77
+
78
+ useEffect(() => {
79
+ setDomainsToRender(getFilteredDomains());
80
+ // eslint-disable-next-line react-hooks/exhaustive-deps
81
+ }, [selectedFilters, searchFilter]);
82
+
83
+ const debouncedFilter = useCallback(
84
+ debounce((e) => {
85
+ setSearchFilter(e.target.value);
86
+ }, 500),
87
+ [domainsToRender]
88
+ );
89
+
90
+ const filtersApplied = !!searchFilter || selectedFilters.badges.length > 0;
15
91
  const { title } = useConfig();
16
92
 
17
93
  return (
@@ -26,21 +102,78 @@ export default function Page({ domains }: PageProps) {
26
102
 
27
103
  <section className="pt-6 pb-24">
28
104
  <div className="grid grid-cols-4 gap-x-8 gap-y-10">
105
+ {/* Filters */}
29
106
  <form className="hidden lg:block">
30
107
  <div className="border-b border-gray-200 pb-6">
31
- <h3 className="-my-3 flow-root">
32
- <div className="py-3 bg-white w-full flex items-center justify-between text-sm text-gray-400 hover:text-gray-500">
33
- <span className="font-medium text-gray-900">Features</span>
108
+ <label htmlFor="domain" className="font-bold block text-sm font-medium text-gray-700">
109
+ Search Domains
110
+ </label>
111
+ <div className="mt-1 relative rounded-md shadow-sm">
112
+ <div className="absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none">
113
+ <SearchIcon className="h-5 w-5 text-gray-400" aria-hidden="true" />
34
114
  </div>
35
- </h3>
36
- <div className="mt-4 text-xs text-gray-400">No Filters for Domains</div>
115
+ <input
116
+ type="text"
117
+ name="domain"
118
+ id="domain"
119
+ onChange={debouncedFilter}
120
+ className="focus:ring-gray-500 focus:border-gray-500 block w-full pl-10 sm:text-sm border-gray-300 rounded-md"
121
+ />
122
+ </div>
37
123
  </div>
124
+
125
+ {filters.map((section: any) => {
126
+ if (!section.options.length) return null;
127
+ return (
128
+ <div key={section.id} className="border-b border-gray-200 py-6">
129
+ <h3 className="-my-3 flow-root">
130
+ <div className="py-3 bg-white w-full flex items-center justify-between text-sm text-gray-400 hover:text-gray-500">
131
+ <span className="font-bold font-medium text-gray-900">
132
+ {section.name} ({section.options.length})
133
+ </span>
134
+ </div>
135
+ </h3>
136
+ <div className="pt-6">
137
+ <div className="space-y-4">
138
+ {section.options.map((option, optionIdx) => (
139
+ <div key={option.value} className="flex items-center">
140
+ <input
141
+ id={`filter-${section.id}-${optionIdx}`}
142
+ name={`${section.id}[]`}
143
+ defaultValue={option.value}
144
+ type="checkbox"
145
+ onChange={(event) => handleFilterSelection(option, section.id, event)}
146
+ defaultChecked={option.checked}
147
+ className="h-4 w-4 border-gray-300 rounded text-gray-600 focus:ring-gray-500"
148
+ />
149
+ <label htmlFor={`filter-${section.id}-${optionIdx}`} className="ml-3 text-sm text-gray-600">
150
+ {option.label}
151
+ </label>
152
+ </div>
153
+ ))}
154
+ </div>
155
+ </div>
156
+ </div>
157
+ );
158
+ })}
38
159
  </form>
39
160
 
40
161
  <div className="col-span-4 lg:col-span-3">
41
162
  <div>
42
- <h2 className="text-gray-500 text-xs font-medium uppercase tracking-wide">Domains</h2>
43
- <DomainGrid domains={domains} />
163
+ <h2 className="text-gray-500 text-xs font-medium uppercase tracking-wide">
164
+ {filtersApplied
165
+ ? `Filtered Domains (${domainsToRender.length}/${domains.length})`
166
+ : `All Domains (${domains.length})`}
167
+ </h2>
168
+ <DomainGrid domains={domainsToRender} />
169
+ {domainsToRender.length === 0 && (
170
+ <div className="text-gray-400 flex h-96 justify-center items-center">
171
+ <div>
172
+ <SearchIcon className="w-6 h-6 inline-block mr-1" />
173
+ No domains found.
174
+ </div>
175
+ </div>
176
+ )}
44
177
  </div>
45
178
  </div>
46
179
  </div>
@@ -51,13 +184,11 @@ export default function Page({ domains }: PageProps) {
51
184
  }
52
185
 
53
186
  export async function getStaticProps() {
54
- const services = getAllServices();
55
187
  const allDomains = await getAllDomains();
56
188
  const domains = allDomains.map((item) => item.domain);
57
189
 
58
190
  return {
59
191
  props: {
60
- services,
61
192
  domains,
62
193
  },
63
194
  };
package/pages/events.tsx CHANGED
@@ -27,10 +27,15 @@ export interface PageProps {
27
27
  }
28
28
 
29
29
  export default function Page({ events, services, domains }: PageProps) {
30
+ const [selectedFilters, setSelectedFilters] = useState({ services: [], domains: [], badges: [] });
31
+ const [showMermaidDiagrams, setShowMermaidDiagrams] = useState(false);
32
+ const [eventsToRender, setEventsToRender] = useState(events);
33
+ const [searchFilter, setSearchFilter] = useState('');
34
+
30
35
  const filters = [
31
36
  {
32
37
  id: 'domains',
33
- name: `Filter by Domains (${domains.length})`,
38
+ name: `Filter by Domains`,
34
39
  options: domains.map((domain) => ({
35
40
  value: domain,
36
41
  label: domain,
@@ -39,20 +44,35 @@ export default function Page({ events, services, domains }: PageProps) {
39
44
  },
40
45
  {
41
46
  id: 'services',
42
- name: `Filter by Services (${services.length})`,
47
+ name: `Filter by Services`,
43
48
  options: services.map((service) => ({
44
49
  value: service,
45
50
  label: service,
46
51
  checked: false,
47
52
  })),
48
53
  },
54
+ {
55
+ id: 'badges',
56
+ name: `Filter by Badges`,
57
+ options: events.reduce((p, c) => {
58
+ if (!c.badges) {
59
+ return p;
60
+ }
61
+ c.badges.forEach((badge) => {
62
+ const existing = p.map((b) => b.value);
63
+ if (!existing.includes(badge.content)) {
64
+ p.push({
65
+ value: badge.content,
66
+ label: badge.content,
67
+ checked: false,
68
+ });
69
+ }
70
+ });
71
+ return p;
72
+ }, [] as { value: string; label: string; checked: boolean }[]),
73
+ },
49
74
  ];
50
75
 
51
- const [selectedFilters, setSelectedFilters] = useState({ services: [], domains: [] });
52
- const [showMermaidDiagrams, setShowMermaidDiagrams] = useState(false);
53
- const [eventsToRender, setEventsToRender] = useState(events);
54
- const [searchFilter, setSearchFilter] = useState('');
55
-
56
76
  const handleFilterSelection = (option, type, event) => {
57
77
  console.log(option, type, event);
58
78
 
@@ -66,7 +86,7 @@ export default function Page({ events, services, domains }: PageProps) {
66
86
  };
67
87
 
68
88
  const getFilteredEvents = (): any => {
69
- if (!selectedFilters.services && !searchFilter && !selectedFilters.domains) return events;
89
+ if (!selectedFilters.services && !searchFilter && !selectedFilters.domains && !selectedFilters.badges) return events;
70
90
 
71
91
  let filteredEvents = events;
72
92
 
@@ -90,6 +110,17 @@ export default function Page({ events, services, domains }: PageProps) {
90
110
  });
91
111
  }
92
112
 
113
+ if (selectedFilters.badges.length > 0) {
114
+ const { badges: badgeFilters } = selectedFilters;
115
+ // @ts-ignore
116
+ filteredEvents = filteredEvents.filter((event) => {
117
+ if (!event.badges) {
118
+ return false;
119
+ }
120
+ return event.badges.filter((badge) => badgeFilters.includes(badge.content)).length !== 0;
121
+ });
122
+ }
123
+
93
124
  if (searchFilter) {
94
125
  filteredEvents = filteredEvents.filter((event) => event.name.toLowerCase().includes(searchFilter.toLowerCase()));
95
126
  }
@@ -110,7 +141,11 @@ export default function Page({ events, services, domains }: PageProps) {
110
141
  [eventsToRender]
111
142
  );
112
143
 
113
- const filtersApplied = !!searchFilter || selectedFilters.services.length > 0;
144
+ const filtersApplied =
145
+ !!searchFilter ||
146
+ selectedFilters.services.length > 0 ||
147
+ selectedFilters.domains.length > 0 ||
148
+ selectedFilters.badges.length > 0;
114
149
  const { title } = useConfig();
115
150
 
116
151
  return (
@@ -195,7 +230,9 @@ export default function Page({ events, services, domains }: PageProps) {
195
230
  <div key={section.id} className="border-b border-gray-200 py-6">
196
231
  <h3 className="-my-3 flow-root">
197
232
  <div className="py-3 bg-white w-full flex items-center justify-between text-sm text-gray-400 hover:text-gray-500">
198
- <span className="font-bold font-medium text-gray-900">{section.name}</span>
233
+ <span className="font-bold font-medium text-gray-900">
234
+ {section.name} ({section.options.length})
235
+ </span>
199
236
  </div>
200
237
  </h3>
201
238
  <div className="pt-6">
@@ -26,21 +26,70 @@ export interface PageProps {
26
26
  export default function Page({ services }: PageProps) {
27
27
  const [servicesToRender, setServicesToRender] = useState(services);
28
28
  const [searchFilter, setSearchFilter] = useState('');
29
+ const [selectedFilters, setSelectedFilters] = useState({ badges: [] });
30
+
31
+ const filters = [
32
+ {
33
+ id: 'badges',
34
+ name: `Filter by Badges`,
35
+ options: services.reduce((p, c) => {
36
+ if (!c.badges) {
37
+ return p;
38
+ }
39
+ c.badges.forEach((badge) => {
40
+ const existing = p.map((b) => b.value);
41
+ if (!existing.includes(badge.content)) {
42
+ p.push({
43
+ value: badge.content,
44
+ label: badge.content,
45
+ checked: false,
46
+ });
47
+ }
48
+ });
49
+ return p;
50
+ }, [] as { value: string; label: string; checked: boolean }[]),
51
+ },
52
+ ];
53
+
54
+ const handleFilterSelection = (option, type, event) => {
55
+ console.log(option, type, event);
56
+
57
+ if (event.target.checked) {
58
+ const newFilters = selectedFilters[type].concat([option.value]);
59
+ setSelectedFilters({ ...selectedFilters, [type]: newFilters });
60
+ } else {
61
+ const newFilters = selectedFilters[type].filter((value) => value !== option.value);
62
+ setSelectedFilters({ ...selectedFilters, [type]: newFilters });
63
+ }
64
+ };
29
65
 
30
66
  const getFilteredServices = (): any => {
31
67
  let filteredServices = services;
32
68
 
69
+ if (!selectedFilters.badges && !searchFilter) return services;
70
+
33
71
  if (searchFilter) {
34
72
  filteredServices = filteredServices.filter((service) => service.name.toLowerCase().includes(searchFilter.toLowerCase()));
35
73
  }
36
74
 
75
+ if (selectedFilters.badges.length > 0) {
76
+ const { badges: badgeFilters } = selectedFilters;
77
+ // @ts-ignore
78
+ filteredServices = filteredServices.filter((event) => {
79
+ if (!event.badges) {
80
+ return false;
81
+ }
82
+ return event.badges.filter((badge) => badgeFilters.includes(badge.content)).length !== 0;
83
+ });
84
+ }
85
+
37
86
  return filteredServices;
38
87
  };
39
88
 
40
89
  useEffect(() => {
41
90
  setServicesToRender(getFilteredServices());
42
91
  // eslint-disable-next-line react-hooks/exhaustive-deps
43
- }, [searchFilter]);
92
+ }, [selectedFilters, searchFilter]);
44
93
 
45
94
  const debouncedFilter = useCallback(
46
95
  debounce((e) => {
@@ -49,7 +98,7 @@ export default function Page({ services }: PageProps) {
49
98
  [servicesToRender]
50
99
  );
51
100
 
52
- const filtersApplied = !!searchFilter;
101
+ const filtersApplied = !!searchFilter || selectedFilters.badges.length > 0;
53
102
  const [showMermaidDiagrams, setShowMermaidDiagrams] = useState(false);
54
103
  const { title } = useConfig();
55
104
 
@@ -130,6 +179,41 @@ export default function Page({ services }: PageProps) {
130
179
  </div>
131
180
  </div>
132
181
 
182
+ {filters.map((section: any) => {
183
+ if (!section.options.length) return null;
184
+ return (
185
+ <div key={section.id} className="border-b border-gray-200 py-6">
186
+ <h3 className="-my-3 flow-root">
187
+ <div className="py-3 bg-white w-full flex items-center justify-between text-sm text-gray-400 hover:text-gray-500">
188
+ <span className="font-bold font-medium text-gray-900">
189
+ {section.name} ({section.options.length})
190
+ </span>
191
+ </div>
192
+ </h3>
193
+ <div className="pt-6">
194
+ <div className="space-y-4">
195
+ {section.options.map((option, optionIdx) => (
196
+ <div key={option.value} className="flex items-center">
197
+ <input
198
+ id={`filter-${section.id}-${optionIdx}`}
199
+ name={`${section.id}[]`}
200
+ defaultValue={option.value}
201
+ type="checkbox"
202
+ onChange={(event) => handleFilterSelection(option, section.id, event)}
203
+ defaultChecked={option.checked}
204
+ className="h-4 w-4 border-gray-300 rounded text-gray-600 focus:ring-gray-500"
205
+ />
206
+ <label htmlFor={`filter-${section.id}-${optionIdx}`} className="ml-3 text-sm text-gray-600">
207
+ {option.label}
208
+ </label>
209
+ </div>
210
+ ))}
211
+ </div>
212
+ </div>
213
+ </div>
214
+ );
215
+ })}
216
+
133
217
  <div className="border-b border-gray-200 pb-6">
134
218
  <h3 className="-my-3 flow-root">
135
219
  <div className="py-3 bg-white w-full flex items-center justify-between text-sm text-gray-400 hover:text-gray-500">
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6567],{97028:function(e,s,n){(window.__NEXT_P=window.__NEXT_P||[]).push(["/domains",function(){return n(91770)}])},43854:function(e,s,n){"use strict";var t=n(52322),r=(n(2784),n(39097)),a=n(17962),i=n(46892);s.Z=function(e){var s=e.domains,n=void 0===s?[]:s;return(0,t.jsx)("ul",{className:"mt-3 grid grid-cols-1 gap-5 md:grid-cols-2",children:n.map((function(e){var s;return(0,t.jsx)("li",{className:"flex",children:(0,t.jsx)(r.default,{href:"/domains/".concat(e.name),children:(0,t.jsxs)("a",{className:"flex shadow-sm w-full",children:[(0,t.jsx)("div",{style:{background:(0,i.Z)(e.name)},className:"w-4 rounded-l-md"}),(0,t.jsx)("div",{className:"w-full border-t border-r border-b border-gray-200 bg-white rounded-r-md ",children:(0,t.jsxs)("div",{className:"p-4 text-sm space-y-2 flex flex-col justify-between h-full",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-gray-900 font-bold",children:e.name}),null===(s=e.badges)||void 0===s?void 0:s.map((function(s){return(0,t.jsx)("span",{className:"ml-2 inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-".concat(s.backgroundColor,"-100 text-").concat(s.textColor,"-800"),children:s.content},"".concat(e.name,"-").concat(s.content))})),(0,t.jsx)("div",{className:"text-gray-500 text-xs font-normal mt-2 line-clamp-3",children:e.summary})]}),(0,t.jsxs)("div",{className:"flex space-x-4 text-xs pt-2 relative bottom-0 left-0",children:[(0,t.jsxs)("div",{className:" font-medium text-gray-500",children:[(0,t.jsx)(a.FMB,{className:"h-4 w-4 text-green-400 inline-block mr-2","aria-hidden":"true"}),"Services (",e.services.length,")"]}),(0,t.jsxs)("div",{className:" font-medium text-gray-500",children:[(0,t.jsx)(a.FMB,{className:"h-4 w-4 text-indigo-400 inline-block mr-2","aria-hidden":"true"}),"Events (",e.events.length,")"]})]})]})})]})})},e.name)}))})}},91770:function(e,s,n){"use strict";n.r(s),n.d(s,{__N_SSG:function(){return l},default:function(){return c}});var t=n(52322),r=n(97729),a=n(43854),i=n(55008),l=!0;function c(e){var s=e.domains,n=(0,i.ZR)().title;return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.default,{children:(0,t.jsxs)("title",{children:[n," - All Domains"]})}),(0,t.jsxs)("main",{className:"max-w-7xl mx-auto md:min-h-screen px-4 xl:px-0",children:[(0,t.jsx)("div",{className:"relative z-10 flex items-baseline justify-between pt-8 pb-6 border-b border-gray-200",children:(0,t.jsxs)("h1",{className:"text-2xl font-extrabold tracking-tight text-gray-900",children:["Domains (",s.length,")"]})}),(0,t.jsx)("section",{className:"pt-6 pb-24",children:(0,t.jsxs)("div",{className:"grid grid-cols-4 gap-x-8 gap-y-10",children:[(0,t.jsx)("form",{className:"hidden lg:block",children:(0,t.jsxs)("div",{className:"border-b border-gray-200 pb-6",children:[(0,t.jsx)("h3",{className:"-my-3 flow-root",children:(0,t.jsx)("div",{className:"py-3 bg-white w-full flex items-center justify-between text-sm text-gray-400 hover:text-gray-500",children:(0,t.jsx)("span",{className:"font-medium text-gray-900",children:"Features"})})}),(0,t.jsx)("div",{className:"mt-4 text-xs text-gray-400",children:"No Filters for Domains"})]})}),(0,t.jsx)("div",{className:"col-span-4 lg:col-span-3",children:(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"text-gray-500 text-xs font-medium uppercase tracking-wide",children:"Domains"}),(0,t.jsx)(a.Z,{domains:s})]})})]})})]})]})}},46892:function(e,s,n){"use strict";function t(e){for(var s=0,n=0;n<e.length;n++)s=e.charCodeAt(n)+((s<<5)-s);for(var t="#",r=0;r<3;r++){t+="00".concat((s>>8*r&255).toString(16)).substr(-2)}return t}n.d(s,{Z:function(){return t}})}},function(e){e.O(0,[7962,9774,2888,179],(function(){return s=97028,e(e.s=s);var s}));var s=e.O();_N_E=s}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7054],{17891:function(e,n,t){(window.__NEXT_P=window.__NEXT_P||[]).push(["/services",function(){return t(46378)}])},44938:function(e,n,t){"use strict";var r=t(52322),a=(t(2784),t(39097)),s=t(17962),c=t(4573),i=t(46892);n.Z=function(e){var n=e.services,t=void 0===n?[]:n,o=e.showMermaidDiagrams,l=void 0!==o&&o;return(0,r.jsx)("ul",{className:"mt-3 grid grid-cols-1 gap-5 md:grid-cols-2",children:t.map((function(e){var n,t=e.draft,o=e.domain,d=o?"/domains/".concat(o,"/services/").concat(e.name):"/services/".concat(e.name);return(0,r.jsx)("li",{className:"flex",children:(0,r.jsx)(a.default,{href:d,children:(0,r.jsxs)("a",{className:"flex shadow-sm w-full",children:[(0,r.jsx)("div",{style:{background:(0,i.Z)(e.name)},className:"w-4 rounded-l-md"}),(0,r.jsx)("div",{className:"w-full border-t border-r border-b border-gray-200 bg-white rounded-r-md ",children:(0,r.jsxs)("div",{className:"p-4 text-sm space-y-2 flex flex-col justify-between h-full",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{className:"text-gray-900 font-bold",children:e.name}),null===(n=e.badges)||void 0===n?void 0:n.map((function(n){return(0,r.jsx)("span",{className:"ml-2 inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-".concat(n.backgroundColor,"-100 text-").concat(n.textColor,"-800"),children:n.content},"".concat(e.name,"-").concat(n.content))})),t&&(0,r.jsx)("span",{className:"ml-2 inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-gray-500 text-gray-100",children:"Draft"}),(0,r.jsx)("div",{className:"text-gray-500 text-xs font-normal mt-2 line-clamp-3",children:e.summary})]}),l&&(0,r.jsx)("div",{className:"h-full items-center flex",children:(0,r.jsx)(c.Z,{source:"service",data:e,rootNodeColor:(0,i.Z)(e.name)})}),(0,r.jsxs)("div",{className:"flex space-x-4 text-xs pt-2 relative bottom-0 left-0",children:[(0,r.jsxs)("div",{className:" font-medium text-gray-500",children:[(0,r.jsx)(s.FMB,{className:"h-4 w-4 text-green-400 inline-block mr-2","aria-hidden":"true"}),"Subscribe Events (",e.subscribes.length,")"]}),(0,r.jsxs)("div",{className:" font-medium text-gray-500",children:[(0,r.jsx)(s.FMB,{className:"h-4 w-4 text-indigo-400 inline-block mr-2","aria-hidden":"true"}),"Publish Events (",e.publishes.length,")"]})]})]})})]})})},e.name)}))})}},4573:function(e,n,t){"use strict";t.d(n,{Z:function(){return x}});var r=t(52322),a=t(2784),s=t(14689),c=t(70314),i=(0,c.default)().publicRuntimeConfig,o=(void 0===i?{}:i).basePath,l=void 0===o?"":o,d=function(e){return e.length>"50"?"".concat(e.substring(0,"50"),"..."):e},m=function(e,n,t){var r="/".concat(t?"domains/".concat(t,"/"):"").concat(n,"/").concat(e);return l?"".concat(l).concat(r):r},u=function(e,n,t,r){return"flowchart LR\n\n".concat(n.map((function(n){return"l-".concat(n.id,"[").concat(n.name,"]:::producer--\x3e").concat(e.id,"[").concat(e.name,"]:::event\n")})).join(""),"\nclassDef event stroke:").concat(r,",stroke-width: 4px;\n\nclassDef producer stroke:#75d7b6,stroke-width: 2px;\n\nclassDef consumer stroke:#818cf8,stroke-width: 2px;\n\n").concat(t.map((function(n){return"".concat(e.id,"[").concat(e.name,"]:::event--\x3er-").concat(n.id,"[").concat(n.name,"]:::consumer\n")})).join(""),"\n").concat(n.map((function(e){return"click l-".concat(e.id,' href "').concat(e.link,'" "Go to ').concat(e.name,'" _self\n')})).join(""),"\n").concat(t.map((function(e){return"click r-".concat(e.id,' href "').concat(e.link,'" "Go to ').concat(e.name,'" _self\n')})).join(""),"\nclick ").concat(e.id,' href "').concat(e.link,'" "Go to ').concat(e.name,'" _self\n\n')};s.Z.initialize({startOnLoad:!0,theme:"forest",securityLevel:"loose",flowchart:{useMaxWidth:!1,width:"1000px"},themeCSS:"\n .node {\n filter: drop-shadow( 3px 3px 2px rgba(0, 0, 0, .2))\n }\n .mermaid svg {\n width: 10000px\n }\n .node rect {\n fill: white\n }\n ",fontFamily:"Fira Code",width:"100%"});var x=function(e){var n=e.data,t=e.source,c=void 0===t?"event":t,i=e.rootNodeColor,o=e.charts;if((0,a.useEffect)((function(){s.Z.contentLoaded()}),[]),o)return(0,r.jsx)(r.Fragment,{children:o.map((function(e,n){return(0,r.jsx)("div",{className:"mermaid",children:e},"chart-".concat(n))}))});var l="event"===c?function(e){var n=e.name,t=e.producerNames,r=e.consumerNames,a=e.producers,s=void 0===a?[]:a,c=e.consumers,i=void 0===c?[]:c,o=e.domain,l=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"#2563eb",x=t.map(d).map((function(e){var n;return{id:e.replace(/ /g,"_"),name:e,link:m(e,"services",null===(n=s.find((function(n){return n.name===e})))||void 0===n?void 0:n.domain)}})),f=r.map(d).map((function(e){var n;return{id:e.replace(/ /g,"_"),name:e,link:m(e,"services",null===(n=i.find((function(n){return n.name===e})))||void 0===n?void 0:n.domain)}})),h={id:d(n.replace(/ /g,"_")),name:n,link:m(n,"events",o)};return u(h,x,f,l)}(n,i):function(e){var n=e.publishes,t=e.subscribes,r=e.name,a=e.domain,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"#2563eb",c=t.map((function(e){return{event:e,truncatedName:d(e.name)}})).map((function(e){var n=e.event,t=e.truncatedName;return{id:t.replace(/ /g,"_"),name:t,link:m(n.name,"events",n.domain)}})),i=n.map((function(e){return{event:e,truncatedName:d(e.name)}})).map((function(e){var n=e.event,t=e.truncatedName;return{id:t.replace(/ /g,"_"),name:t,link:m(n.name,"events",n.domain)}})),o={id:d(r.replace(/ /g,"_")),name:r,link:m(r,"services",a)};return u(o,c,i,s)}(n,i);return(0,r.jsx)("div",{className:"mermaid",children:l})}},46378:function(e,n,t){"use strict";t.r(n),t.d(n,{__N_SSG:function(){return h},default:function(){return v}});var r=t(52322),a=t(2784),s=t(97729),c=t(80594),i=t.n(c),o=t(51930),l=t(54643),d=t(61519),m=t(44938),u=t(55008);function x(){for(var e=arguments.length,n=new Array(e),t=0;t<e;t++)n[t]=arguments[t];return n.filter(Boolean).join(" ")}var f=[{name:"Name",href:"#",current:!0},{name:"Version",href:"#",current:!1},{name:"Domains",href:"#",current:!1}],h=!0;function v(e){var n=e.services,t=(0,a.useState)(n),c=t[0],h=t[1],v=(0,a.useState)(""),g=v[0],p=v[1];(0,a.useEffect)((function(){h(function(){var e=n;return g&&(e=e.filter((function(e){return e.name.toLowerCase().includes(g.toLowerCase())}))),e}())}),[g]);var j=(0,a.useCallback)(i()((function(e){p(e.target.value)}),500),[c]),b=!!g,N=(0,a.useState)(!1),y=N[0],w=N[1],k=(0,u.ZR)().title;return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(s.default,{children:(0,r.jsxs)("title",{children:[k," - All Services"]})}),(0,r.jsxs)("main",{className:"max-w-7xl mx-auto md:min-h-screen px-4 xl:px-0",children:[(0,r.jsxs)("div",{className:"relative z-10 flex items-baseline justify-between pt-8 pb-6 border-b border-gray-200",children:[(0,r.jsxs)("h1",{className:"text-2xl font-extrabold tracking-tight text-gray-900",children:["Services (",n.length,")"]}),(0,r.jsx)("div",{className:"flex items-center",children:(0,r.jsxs)(o.v,{as:"div",className:"relative hidden text-left",children:[(0,r.jsx)("div",{children:(0,r.jsxs)(o.v.Button,{className:"group inline-flex justify-center text-sm font-medium text-gray-700 hover:text-gray-900",children:["Sort",(0,r.jsx)(d.v4q,{className:"flex-shrink-0 -mr-1 ml-1 h-5 w-5 text-gray-400 group-hover:text-gray-500","aria-hidden":"true"})]})}),(0,r.jsx)(l.u,{as:a.Fragment,enter:"transition ease-out duration-100",enterFrom:"transform opacity-0 scale-95",enterTo:"transform opacity-100 scale-100",leave:"transition ease-in duration-75",leaveFrom:"transform opacity-100 scale-100",leaveTo:"transform opacity-0 scale-95",children:(0,r.jsx)(o.v.Items,{className:"origin-top-right absolute right-0 mt-2 w-40 rounded-md shadow-2xl bg-white ring-1 ring-black ring-opacity-5 focus:outline-none",children:(0,r.jsx)("div",{className:"py-1",children:f.map((function(e){return(0,r.jsx)(o.v.Item,{children:function(n){var t=n.active;return(0,r.jsx)("a",{href:e.href,className:x(e.current?"font-medium text-gray-900":"text-gray-500",t?"bg-gray-100":"","block px-4 py-2 text-sm"),children:e.name})}},e.name)}))})})})]})})]}),(0,r.jsx)("section",{className:"pt-6 pb-24",children:(0,r.jsxs)("div",{className:"grid grid-cols-4 gap-x-8 gap-y-10",children:[(0,r.jsxs)("form",{className:"hidden lg:block",children:[(0,r.jsxs)("div",{className:"border-b border-gray-200 pb-6",children:[(0,r.jsx)("label",{htmlFor:"service",className:"font-bold block text-sm font-medium text-gray-700",children:"Search Services"}),(0,r.jsxs)("div",{className:"mt-1 relative rounded-md shadow-sm",children:[(0,r.jsx)("div",{className:"absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none",children:(0,r.jsx)(d.W1M,{className:"h-5 w-5 text-gray-400","aria-hidden":"true"})}),(0,r.jsx)("input",{type:"text",name:"service",id:"service",onChange:j,className:"focus:ring-gray-500 focus:border-gray-500 block w-full pl-10 sm:text-sm border-gray-300 rounded-md"})]})]}),(0,r.jsxs)("div",{className:"border-b border-gray-200 pb-6",children:[(0,r.jsx)("h3",{className:"-my-3 flow-root",children:(0,r.jsx)("div",{className:"py-3 bg-white w-full flex items-center justify-between text-sm text-gray-400 hover:text-gray-500",children:(0,r.jsx)("span",{className:"font-medium text-gray-900",children:"Features"})})}),(0,r.jsx)("div",{className:"pt-6",children:(0,r.jsx)("div",{className:"space-y-4",children:(0,r.jsxs)("div",{className:"flex items-center",children:[(0,r.jsx)("input",{id:"show-mermaid",type:"checkbox",onChange:function(e){return w(e.target.checked)},defaultChecked:y,className:"h-4 w-4 border-gray-300 rounded text-gray-600 focus:ring-gray-500"}),(0,r.jsx)("label",{htmlFor:"show-mermaid",className:"ml-3 text-sm text-gray-600",children:"Show Mermaid Diagrams"})]})})})]})]}),(0,r.jsx)("div",{className:"col-span-4 lg:col-span-3",children:(0,r.jsxs)("div",{children:[(0,r.jsx)("h2",{className:"text-gray-500 text-xs font-medium uppercase tracking-wide",children:b?"Filtered Services (".concat(c.length,"/").concat(n.length,")"):"All Services (".concat(n.length,")")}),(0,r.jsx)(m.Z,{services:c,showMermaidDiagrams:y}),0===c.length&&(0,r.jsx)("div",{className:"text-gray-400 flex h-96 justify-center items-center",children:(0,r.jsxs)("div",{children:[(0,r.jsx)(d.W1M,{className:"w-6 h-6 inline-block mr-1"}),"No services found."]})})]})})]})})]})]})}},46892:function(e,n,t){"use strict";function r(e){for(var n=0,t=0;t<e.length;t++)n=e.charCodeAt(t)+((n<<5)-n);for(var r="#",a=0;a<3;a++){r+="00".concat((n>>8*a&255).toString(16)).substr(-2)}return r}t.d(n,{Z:function(){return r}})}},function(e){e.O(0,[7812,1519,7962,6873,9774,2888,179],(function(){return n=17891,e(e.s=n);var n}));var n=e.O();_N_E=n}]);
@@ -1 +0,0 @@
1
- {"pageProps":{"domain":{"name":"Shopping","summary":"Domain for everything shopping\n","owners":["dboyne","mSmith"],"tags":[],"externalLinks":[],"badges":[],"events":[{"name":"AddedItemToCart","version":"0.0.2","summary":"Holds information about what the user added to their shopping cart.\n","domain":"Shopping","producerNames":["Basket Service"],"consumerNames":["Data Lake"],"owners":["dboyne","mSmith"],"externalLinks":[],"badges":[{"content":"New!","backgroundColor":"blue","textColor":"blue"}],"historicVersions":["0.0.2","0.0.1"],"producers":[{"name":"Basket Service"}],"consumers":[{"name":"Data Lake"}]},{"name":"RemovedItemFromCart","version":"0.0.1","summary":"Holds information about what the user removed from their cart.\n","domain":"Shopping","producerNames":["Basket Service"],"consumerNames":["Data Lake"],"owners":["dboyne","mSmith"],"externalLinks":[],"badges":[],"historicVersions":[],"producers":[{"name":"Basket Service"}],"consumers":[{"name":"Data Lake"}]}],"services":[]},"markdown":{"content":"\n<Admonition>Domain for everything to do with Shopping at our business. Before adding any events or services to this domain make sure you contact the domain owners and verify it's the correct place.</Admonition>\n\n### Details\n\nThis domain encapsulates everything in our business that has to do with shopping and users. This might be new items added to our online shop or online cart management.\n\n<NodeGraph title=\"Domain Graph\" />","lastModifiedDate":"2022/10/2","source":{"compiledSource":"var m=Object.defineProperty,c=Object.defineProperties;var u=Object.getOwnPropertyDescriptors;var i=Object.getOwnPropertySymbols;var a=Object.prototype.hasOwnProperty,s=Object.prototype.propertyIsEnumerable;var d=(o,e,n)=>e in o?m(o,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):o[e]=n,r=(o,e)=>{for(var n in e||(e={}))a.call(e,n)&&d(o,n,e[n]);if(i)for(var n of i(e))s.call(e,n)&&d(o,n,e[n]);return o},p=(o,e)=>c(o,u(e));var h=(o,e)=>{var n={};for(var t in o)a.call(o,t)&&e.indexOf(t)<0&&(n[t]=o[t]);if(o!=null&&i)for(var t of i(o))e.indexOf(t)<0&&s.call(o,t)&&(n[t]=o[t]);return n};const makeShortcode=o=>function(n){return console.warn(\"Component \"+o+\" was not imported, exported, or provided by MDXProvider as global scope\"),mdx(\"div\",r({},n))},Admonition=makeShortcode(\"Admonition\"),NodeGraph=makeShortcode(\"NodeGraph\"),layoutProps={},MDXLayout=\"wrapper\";function MDXContent(n){var t=n,{components:o}=t,e=h(t,[\"components\"]);return mdx(MDXLayout,p(r(r({},layoutProps),e),{components:o,mdxType:\"MDXLayout\"}),mdx(Admonition,{mdxType:\"Admonition\"},\"Domain for everything to do with Shopping at our business. Before adding any events or services to this domain make sure you contact the domain owners and verify it's the correct place.\"),mdx(\"h3\",null,\"Details\"),mdx(\"p\",null,\"This domain encapsulates everything in our business that has to do with shopping and users. This might be new items added to our online shop or online cart management.\"),mdx(NodeGraph,{title:\"Domain Graph\",mdxType:\"NodeGraph\"}))}MDXContent.isMDXComponent=!0;\n","scope":{}}}},"__N_SSG":true}
@@ -1 +0,0 @@
1
- {"pageProps":{"services":[{"name":"Orders Service","summary":"Service that handles customer orders\n","domain":"Orders","owners":["dboyne"],"repository":{},"tags":[],"externalLinks":[],"badges":[{"content":"New!","backgroundColor":"blue","textColor":"blue"}],"publishes":[{"name":"OrderComplete","version":"0.0.1","summary":"Event represents when an order has been complete. (Delivered and finished)\n","domain":"Orders","producerNames":["Orders Service"],"consumerNames":["Data Lake"],"owners":["dboyne","mSmith"],"externalLinks":[],"badges":[],"historicVersions":[]},{"name":"OrderConfirmed","version":"0.0.1","summary":"Event represents when an order has been confirmed and ready to be processed (shipped for example)\n","domain":"Orders","producerNames":["Orders Service"],"consumerNames":["Shipping Service"],"owners":["dboyne","mSmith"],"externalLinks":[],"badges":[{"content":"Deprecated","backgroundColor":"red","textColor":"red"}],"historicVersions":[]}],"subscribes":[{"name":"PaymentProcessed","version":"0.0.1","summary":"Holds information about the payment that has been processed.\n","domain":null,"producerNames":["Payment Service"],"consumerNames":["Orders Service"],"owners":["dboyne","mSmith"],"externalLinks":[],"badges":[{"content":"Recently updated!","backgroundColor":"green","textColor":"green"}],"historicVersions":[]}]},{"name":"Payment Service","summary":"Event based application that integrates with Stripe.\n","domain":null,"owners":["dboyne"],"repository":{},"tags":[],"externalLinks":[],"badges":[{"content":"New!","backgroundColor":"blue","textColor":"blue"},{"content":"Payment Process","backgroundColor":"yellow","textColor":"red"}],"publishes":[{"name":"PaymentProcessed","version":"0.0.1","summary":"Holds information about the payment that has been processed.\n","domain":null,"producerNames":["Payment Service"],"consumerNames":["Orders Service"],"owners":["dboyne","mSmith"],"externalLinks":[],"badges":[{"content":"Recently updated!","backgroundColor":"green","textColor":"green"}],"historicVersions":[]}],"subscribes":[{"name":"OrderRequested","version":"0.0.1","summary":"Holds information about the customers order.\n","domain":"Orders","producerNames":["Basket Service"],"consumerNames":["Payment Service"],"owners":["dboyne","mSmith"],"externalLinks":[],"badges":[],"historicVersions":[]}]},{"name":"Shipping Service","summary":"Event based application that handles processing of shipments, preparing them and dispatching them.\n","domain":null,"owners":["dboyne"],"repository":{"language":"JavaScript","url":"https://github.com/boyney123/pretend-shipping-service"},"tags":[],"externalLinks":[],"badges":[],"publishes":[{"name":"ShipmentDelivered","version":"0.0.1","summary":"Event represents when a shipment has been delivered and received.\n","domain":null,"producerNames":["Shipping Service"],"consumerNames":["Order Service","Data Lake"],"owners":["dboyne","mSmith"],"externalLinks":[],"badges":[],"historicVersions":[]},{"name":"ShipmentDispatched","version":"0.0.1","summary":"Event represents when a shipment has been dispatched.\n","domain":null,"producerNames":["Shipping Service"],"consumerNames":["Shipping Service"],"owners":["dboyne","mSmith"],"externalLinks":[],"badges":[],"historicVersions":[]},{"name":"ShipmentPrepared","version":"0.0.1","summary":"Event represents when a shipment has finished being prepared and is ready to be dispatched.\n","domain":null,"producerNames":["Shipping Service"],"consumerNames":["Shipping Service"],"owners":["dboyne","mSmith"],"externalLinks":[],"badges":[],"historicVersions":[]}],"subscribes":[{"name":"OrderConfirmed","version":"0.0.1","summary":"Event represents when an order has been confirmed and ready to be processed (shipped for example)\n","domain":"Orders","producerNames":["Orders Service"],"consumerNames":["Shipping Service"],"owners":["dboyne","mSmith"],"externalLinks":[],"badges":[{"content":"Deprecated","backgroundColor":"red","textColor":"red"}],"historicVersions":[]},{"name":"ShipmentDispatched","version":"0.0.1","summary":"Event represents when a shipment has been dispatched.\n","domain":null,"producerNames":["Shipping Service"],"consumerNames":["Shipping Service"],"owners":["dboyne","mSmith"],"externalLinks":[],"badges":[],"historicVersions":[]},{"name":"ShipmentPrepared","version":"0.0.1","summary":"Event represents when a shipment has finished being prepared and is ready to be dispatched.\n","domain":null,"producerNames":["Shipping Service"],"consumerNames":["Shipping Service"],"owners":["dboyne","mSmith"],"externalLinks":[],"badges":[],"historicVersions":[]}]}],"domains":[{"name":"Orders","summary":"Domain for everything shopping\n","owners":["dboyne","mSmith"],"tags":[],"externalLinks":[],"badges":[{"content":"New!","backgroundColor":"blue","textColor":"blue"}],"events":[{"name":"OrderComplete","version":"0.0.1","summary":"Event represents when an order has been complete. (Delivered and finished)\n","domain":"Orders","producerNames":["Orders Service"],"consumerNames":["Data Lake"],"owners":["dboyne","mSmith"],"externalLinks":[],"badges":[],"historicVersions":[],"producers":[{"name":"Orders Service","summary":"Service that handles customer orders\n","domain":"Orders","owners":["dboyne"],"repository":{},"tags":[],"externalLinks":[],"badges":[{"content":"New!","backgroundColor":"blue","textColor":"blue"}],"publishes":[{"name":"OrderComplete","version":"0.0.1","summary":"Event represents when an order has been complete. (Delivered and finished)\n","domain":"Orders","producerNames":["Orders Service"],"consumerNames":["Data Lake"],"owners":["dboyne","mSmith"],"externalLinks":[],"badges":[],"historicVersions":[]},{"name":"OrderConfirmed","version":"0.0.1","summary":"Event represents when an order has been confirmed and ready to be processed (shipped for example)\n","domain":"Orders","producerNames":["Orders Service"],"consumerNames":["Shipping Service"],"owners":["dboyne","mSmith"],"externalLinks":[],"badges":[{"content":"Deprecated","backgroundColor":"red","textColor":"red"}],"historicVersions":[]}],"subscribes":[{"name":"PaymentProcessed","version":"0.0.1","summary":"Holds information about the payment that has been processed.\n","domain":null,"producerNames":["Payment Service"],"consumerNames":["Orders Service"],"owners":["dboyne","mSmith"],"externalLinks":[],"badges":[{"content":"Recently updated!","backgroundColor":"green","textColor":"green"}],"historicVersions":[]}]}],"consumers":[{"name":"Data Lake"}]},{"name":"OrderConfirmed","version":"0.0.1","summary":"Event represents when an order has been confirmed and ready to be processed (shipped for example)\n","domain":"Orders","producerNames":["Orders Service"],"consumerNames":["Shipping Service"],"owners":["dboyne","mSmith"],"externalLinks":[],"badges":[{"content":"Deprecated","backgroundColor":"red","textColor":"red"}],"historicVersions":[],"producers":[{"name":"Orders Service","summary":"Service that handles customer orders\n","domain":"Orders","owners":["dboyne"],"repository":{},"tags":[],"externalLinks":[],"badges":[{"content":"New!","backgroundColor":"blue","textColor":"blue"}],"publishes":[{"name":"OrderComplete","version":"0.0.1","summary":"Event represents when an order has been complete. (Delivered and finished)\n","domain":"Orders","producerNames":["Orders Service"],"consumerNames":["Data Lake"],"owners":["dboyne","mSmith"],"externalLinks":[],"badges":[],"historicVersions":[]},{"name":"OrderConfirmed","version":"0.0.1","summary":"Event represents when an order has been confirmed and ready to be processed (shipped for example)\n","domain":"Orders","producerNames":["Orders Service"],"consumerNames":["Shipping Service"],"owners":["dboyne","mSmith"],"externalLinks":[],"badges":[{"content":"Deprecated","backgroundColor":"red","textColor":"red"}],"historicVersions":[]}],"subscribes":[{"name":"PaymentProcessed","version":"0.0.1","summary":"Holds information about the payment that has been processed.\n","domain":null,"producerNames":["Payment Service"],"consumerNames":["Orders Service"],"owners":["dboyne","mSmith"],"externalLinks":[],"badges":[{"content":"Recently updated!","backgroundColor":"green","textColor":"green"}],"historicVersions":[]}]}],"consumers":[{"name":"Shipping Service","summary":"Event based application that handles processing of shipments, preparing them and dispatching them.\n","domain":null,"owners":["dboyne"],"repository":{"language":"JavaScript","url":"https://github.com/boyney123/pretend-shipping-service"},"tags":[],"externalLinks":[],"badges":[],"publishes":[{"name":"ShipmentDelivered","version":"0.0.1","summary":"Event represents when a shipment has been delivered and received.\n","domain":null,"producerNames":["Shipping Service"],"consumerNames":["Order Service","Data Lake"],"owners":["dboyne","mSmith"],"externalLinks":[],"badges":[],"historicVersions":[]},{"name":"ShipmentDispatched","version":"0.0.1","summary":"Event represents when a shipment has been dispatched.\n","domain":null,"producerNames":["Shipping Service"],"consumerNames":["Shipping Service"],"owners":["dboyne","mSmith"],"externalLinks":[],"badges":[],"historicVersions":[]},{"name":"ShipmentPrepared","version":"0.0.1","summary":"Event represents when a shipment has finished being prepared and is ready to be dispatched.\n","domain":null,"producerNames":["Shipping Service"],"consumerNames":["Shipping Service"],"owners":["dboyne","mSmith"],"externalLinks":[],"badges":[],"historicVersions":[]}],"subscribes":[{"name":"OrderConfirmed","version":"0.0.1","summary":"Event represents when an order has been confirmed and ready to be processed (shipped for example)\n","domain":"Orders","producerNames":["Orders Service"],"consumerNames":["Shipping Service"],"owners":["dboyne","mSmith"],"externalLinks":[],"badges":[{"content":"Deprecated","backgroundColor":"red","textColor":"red"}],"historicVersions":[]},{"name":"ShipmentDispatched","version":"0.0.1","summary":"Event represents when a shipment has been dispatched.\n","domain":null,"producerNames":["Shipping Service"],"consumerNames":["Shipping Service"],"owners":["dboyne","mSmith"],"externalLinks":[],"badges":[],"historicVersions":[]},{"name":"ShipmentPrepared","version":"0.0.1","summary":"Event represents when a shipment has finished being prepared and is ready to be dispatched.\n","domain":null,"producerNames":["Shipping Service"],"consumerNames":["Shipping Service"],"owners":["dboyne","mSmith"],"externalLinks":[],"badges":[],"historicVersions":[]}]}]},{"name":"OrderRequested","version":"0.0.1","summary":"Holds information about the customers order.\n","domain":"Orders","producerNames":["Basket Service"],"consumerNames":["Payment Service"],"owners":["dboyne","mSmith"],"externalLinks":[],"badges":[],"historicVersions":[],"producers":[{"name":"Basket Service"}],"consumers":[{"name":"Payment Service","summary":"Event based application that integrates with Stripe.\n","domain":null,"owners":["dboyne"],"repository":{},"tags":[],"externalLinks":[],"badges":[{"content":"New!","backgroundColor":"blue","textColor":"blue"},{"content":"Payment Process","backgroundColor":"yellow","textColor":"red"}],"publishes":[{"name":"PaymentProcessed","version":"0.0.1","summary":"Holds information about the payment that has been processed.\n","domain":null,"producerNames":["Payment Service"],"consumerNames":["Orders Service"],"owners":["dboyne","mSmith"],"externalLinks":[],"badges":[{"content":"Recently updated!","backgroundColor":"green","textColor":"green"}],"historicVersions":[]}],"subscribes":[{"name":"OrderRequested","version":"0.0.1","summary":"Holds information about the customers order.\n","domain":"Orders","producerNames":["Basket Service"],"consumerNames":["Payment Service"],"owners":["dboyne","mSmith"],"externalLinks":[],"badges":[],"historicVersions":[]}]}]}],"services":[{"name":"Orders Service","summary":"Service that handles customer orders\n","domain":"Orders","owners":["dboyne"],"repository":{},"tags":[],"externalLinks":[],"badges":[{"content":"New!","backgroundColor":"blue","textColor":"blue"}],"publishes":[{"name":"OrderComplete","version":"0.0.1","summary":"Event represents when an order has been complete. (Delivered and finished)\n","domain":"Orders","producerNames":["Orders Service"],"consumerNames":["Data Lake"],"owners":["dboyne","mSmith"],"externalLinks":[],"badges":[],"historicVersions":[]},{"name":"OrderConfirmed","version":"0.0.1","summary":"Event represents when an order has been confirmed and ready to be processed (shipped for example)\n","domain":"Orders","producerNames":["Orders Service"],"consumerNames":["Shipping Service"],"owners":["dboyne","mSmith"],"externalLinks":[],"badges":[{"content":"Deprecated","backgroundColor":"red","textColor":"red"}],"historicVersions":[]}],"subscribes":[{"name":"PaymentProcessed","version":"0.0.1","summary":"Holds information about the payment that has been processed.\n","domain":null,"producerNames":["Payment Service"],"consumerNames":["Orders Service"],"owners":["dboyne","mSmith"],"externalLinks":[],"badges":[{"content":"Recently updated!","backgroundColor":"green","textColor":"green"}],"historicVersions":[]}]}]},{"name":"Shopping","summary":"Domain for everything shopping\n","owners":["dboyne","mSmith"],"tags":[],"externalLinks":[],"badges":[],"events":[{"name":"AddedItemToCart","version":"0.0.2","summary":"Holds information about what the user added to their shopping cart.\n","domain":"Shopping","producerNames":["Basket Service"],"consumerNames":["Data Lake"],"owners":["dboyne","mSmith"],"externalLinks":[],"badges":[{"content":"New!","backgroundColor":"blue","textColor":"blue"}],"historicVersions":["0.0.2","0.0.1"],"producers":[{"name":"Basket Service"}],"consumers":[{"name":"Data Lake"}]},{"name":"RemovedItemFromCart","version":"0.0.1","summary":"Holds information about what the user removed from their cart.\n","domain":"Shopping","producerNames":["Basket Service"],"consumerNames":["Data Lake"],"owners":["dboyne","mSmith"],"externalLinks":[],"badges":[],"historicVersions":[],"producers":[{"name":"Basket Service"}],"consumers":[{"name":"Data Lake"}]}],"services":[]}]},"__N_SSG":true}
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6567],{97028:function(e,s,n){(window.__NEXT_P=window.__NEXT_P||[]).push(["/domains",function(){return n(91770)}])},43854:function(e,s,n){"use strict";var t=n(52322),r=(n(2784),n(39097)),a=n(17962),i=n(46892);s.Z=function(e){var s=e.domains,n=void 0===s?[]:s;return(0,t.jsx)("ul",{className:"mt-3 grid grid-cols-1 gap-5 md:grid-cols-2",children:n.map((function(e){var s;return(0,t.jsx)("li",{className:"flex",children:(0,t.jsx)(r.default,{href:"/domains/".concat(e.name),children:(0,t.jsxs)("a",{className:"flex shadow-sm w-full",children:[(0,t.jsx)("div",{style:{background:(0,i.Z)(e.name)},className:"w-4 rounded-l-md"}),(0,t.jsx)("div",{className:"w-full border-t border-r border-b border-gray-200 bg-white rounded-r-md ",children:(0,t.jsxs)("div",{className:"p-4 text-sm space-y-2 flex flex-col justify-between h-full",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-gray-900 font-bold",children:e.name}),null===(s=e.badges)||void 0===s?void 0:s.map((function(s){return(0,t.jsx)("span",{className:"ml-2 inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-".concat(s.backgroundColor,"-100 text-").concat(s.textColor,"-800"),children:s.content},"".concat(e.name,"-").concat(s.content))})),(0,t.jsx)("div",{className:"text-gray-500 text-xs font-normal mt-2 line-clamp-3",children:e.summary})]}),(0,t.jsxs)("div",{className:"flex space-x-4 text-xs pt-2 relative bottom-0 left-0",children:[(0,t.jsxs)("div",{className:" font-medium text-gray-500",children:[(0,t.jsx)(a.FMB,{className:"h-4 w-4 text-green-400 inline-block mr-2","aria-hidden":"true"}),"Services (",e.services.length,")"]}),(0,t.jsxs)("div",{className:" font-medium text-gray-500",children:[(0,t.jsx)(a.FMB,{className:"h-4 w-4 text-indigo-400 inline-block mr-2","aria-hidden":"true"}),"Events (",e.events.length,")"]})]})]})})]})})},e.name)}))})}},91770:function(e,s,n){"use strict";n.r(s),n.d(s,{__N_SSG:function(){return l},default:function(){return c}});var t=n(52322),r=n(97729),a=n(43854),i=n(55008),l=!0;function c(e){var s=e.domains,n=(0,i.ZR)().title;return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.default,{children:(0,t.jsxs)("title",{children:[n," - All Domains"]})}),(0,t.jsxs)("main",{className:"max-w-7xl mx-auto md:min-h-screen px-4 xl:px-0",children:[(0,t.jsx)("div",{className:"relative z-10 flex items-baseline justify-between pt-8 pb-6 border-b border-gray-200",children:(0,t.jsxs)("h1",{className:"text-2xl font-extrabold tracking-tight text-gray-900",children:["Domains (",s.length,")"]})}),(0,t.jsx)("section",{className:"pt-6 pb-24",children:(0,t.jsxs)("div",{className:"grid grid-cols-4 gap-x-8 gap-y-10",children:[(0,t.jsx)("form",{className:"hidden lg:block",children:(0,t.jsxs)("div",{className:"border-b border-gray-200 pb-6",children:[(0,t.jsx)("h3",{className:"-my-3 flow-root",children:(0,t.jsx)("div",{className:"py-3 bg-white w-full flex items-center justify-between text-sm text-gray-400 hover:text-gray-500",children:(0,t.jsx)("span",{className:"font-medium text-gray-900",children:"Features"})})}),(0,t.jsx)("div",{className:"mt-4 text-xs text-gray-400",children:"No Filters for Domains"})]})}),(0,t.jsx)("div",{className:"col-span-4 lg:col-span-3",children:(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"text-gray-500 text-xs font-medium uppercase tracking-wide",children:"Domains"}),(0,t.jsx)(a.Z,{domains:s})]})})]})})]})]})}},46892:function(e,s,n){"use strict";function t(e){for(var s=0,n=0;n<e.length;n++)s=e.charCodeAt(n)+((s<<5)-s);for(var t="#",r=0;r<3;r++){t+="00".concat((s>>8*r&255).toString(16)).substr(-2)}return t}n.d(s,{Z:function(){return t}})}},function(e){e.O(0,[7962,9774,2888,179],(function(){return s=97028,e(e.s=s);var s}));var s=e.O();_N_E=s}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7054],{17891:function(e,n,t){(window.__NEXT_P=window.__NEXT_P||[]).push(["/services",function(){return t(46378)}])},44938:function(e,n,t){"use strict";var r=t(52322),a=(t(2784),t(39097)),s=t(17962),c=t(4573),i=t(46892);n.Z=function(e){var n=e.services,t=void 0===n?[]:n,o=e.showMermaidDiagrams,l=void 0!==o&&o;return(0,r.jsx)("ul",{className:"mt-3 grid grid-cols-1 gap-5 md:grid-cols-2",children:t.map((function(e){var n,t=e.draft,o=e.domain,d=o?"/domains/".concat(o,"/services/").concat(e.name):"/services/".concat(e.name);return(0,r.jsx)("li",{className:"flex",children:(0,r.jsx)(a.default,{href:d,children:(0,r.jsxs)("a",{className:"flex shadow-sm w-full",children:[(0,r.jsx)("div",{style:{background:(0,i.Z)(e.name)},className:"w-4 rounded-l-md"}),(0,r.jsx)("div",{className:"w-full border-t border-r border-b border-gray-200 bg-white rounded-r-md ",children:(0,r.jsxs)("div",{className:"p-4 text-sm space-y-2 flex flex-col justify-between h-full",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{className:"text-gray-900 font-bold",children:e.name}),null===(n=e.badges)||void 0===n?void 0:n.map((function(n){return(0,r.jsx)("span",{className:"ml-2 inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-".concat(n.backgroundColor,"-100 text-").concat(n.textColor,"-800"),children:n.content},"".concat(e.name,"-").concat(n.content))})),t&&(0,r.jsx)("span",{className:"ml-2 inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-gray-500 text-gray-100",children:"Draft"}),(0,r.jsx)("div",{className:"text-gray-500 text-xs font-normal mt-2 line-clamp-3",children:e.summary})]}),l&&(0,r.jsx)("div",{className:"h-full items-center flex",children:(0,r.jsx)(c.Z,{source:"service",data:e,rootNodeColor:(0,i.Z)(e.name)})}),(0,r.jsxs)("div",{className:"flex space-x-4 text-xs pt-2 relative bottom-0 left-0",children:[(0,r.jsxs)("div",{className:" font-medium text-gray-500",children:[(0,r.jsx)(s.FMB,{className:"h-4 w-4 text-green-400 inline-block mr-2","aria-hidden":"true"}),"Subscribe Events (",e.subscribes.length,")"]}),(0,r.jsxs)("div",{className:" font-medium text-gray-500",children:[(0,r.jsx)(s.FMB,{className:"h-4 w-4 text-indigo-400 inline-block mr-2","aria-hidden":"true"}),"Publish Events (",e.publishes.length,")"]})]})]})})]})})},e.name)}))})}},4573:function(e,n,t){"use strict";t.d(n,{Z:function(){return x}});var r=t(52322),a=t(2784),s=t(14689),c=t(70314),i=(0,c.default)().publicRuntimeConfig,o=(void 0===i?{}:i).basePath,l=void 0===o?"":o,d=function(e){return e.length>"50"?"".concat(e.substring(0,"50"),"..."):e},m=function(e,n,t){var r="/".concat(t?"domains/".concat(t,"/"):"").concat(n,"/").concat(e);return l?"".concat(l).concat(r):r},u=function(e,n,t,r){return"flowchart LR\n\n".concat(n.map((function(n){return"l-".concat(n.id,"[").concat(n.name,"]:::producer--\x3e").concat(e.id,"[").concat(e.name,"]:::event\n")})).join(""),"\nclassDef event stroke:").concat(r,",stroke-width: 4px;\n\nclassDef producer stroke:#75d7b6,stroke-width: 2px;\n\nclassDef consumer stroke:#818cf8,stroke-width: 2px;\n\n").concat(t.map((function(n){return"".concat(e.id,"[").concat(e.name,"]:::event--\x3er-").concat(n.id,"[").concat(n.name,"]:::consumer\n")})).join(""),"\n").concat(n.map((function(e){return"click l-".concat(e.id,' href "').concat(e.link,'" "Go to ').concat(e.name,'" _self\n')})).join(""),"\n").concat(t.map((function(e){return"click r-".concat(e.id,' href "').concat(e.link,'" "Go to ').concat(e.name,'" _self\n')})).join(""),"\nclick ").concat(e.id,' href "').concat(e.link,'" "Go to ').concat(e.name,'" _self\n\n')};s.Z.initialize({startOnLoad:!0,theme:"forest",securityLevel:"loose",flowchart:{useMaxWidth:!1,width:"1000px"},themeCSS:"\n .node {\n filter: drop-shadow( 3px 3px 2px rgba(0, 0, 0, .2))\n }\n .mermaid svg {\n width: 10000px\n }\n .node rect {\n fill: white\n }\n ",fontFamily:"Fira Code",width:"100%"});var x=function(e){var n=e.data,t=e.source,c=void 0===t?"event":t,i=e.rootNodeColor,o=e.charts;if((0,a.useEffect)((function(){s.Z.contentLoaded()}),[]),o)return(0,r.jsx)(r.Fragment,{children:o.map((function(e,n){return(0,r.jsx)("div",{className:"mermaid",children:e},"chart-".concat(n))}))});var l="event"===c?function(e){var n=e.name,t=e.producerNames,r=e.consumerNames,a=e.producers,s=void 0===a?[]:a,c=e.consumers,i=void 0===c?[]:c,o=e.domain,l=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"#2563eb",x=t.map(d).map((function(e){var n;return{id:e.replace(/ /g,"_"),name:e,link:m(e,"services",null===(n=s.find((function(n){return n.name===e})))||void 0===n?void 0:n.domain)}})),f=r.map(d).map((function(e){var n;return{id:e.replace(/ /g,"_"),name:e,link:m(e,"services",null===(n=i.find((function(n){return n.name===e})))||void 0===n?void 0:n.domain)}})),h={id:d(n.replace(/ /g,"_")),name:n,link:m(n,"events",o)};return u(h,x,f,l)}(n,i):function(e){var n=e.publishes,t=e.subscribes,r=e.name,a=e.domain,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"#2563eb",c=t.map((function(e){return{event:e,truncatedName:d(e.name)}})).map((function(e){var n=e.event,t=e.truncatedName;return{id:t.replace(/ /g,"_"),name:t,link:m(n.name,"events",n.domain)}})),i=n.map((function(e){return{event:e,truncatedName:d(e.name)}})).map((function(e){var n=e.event,t=e.truncatedName;return{id:t.replace(/ /g,"_"),name:t,link:m(n.name,"events",n.domain)}})),o={id:d(r.replace(/ /g,"_")),name:r,link:m(r,"services",a)};return u(o,c,i,s)}(n,i);return(0,r.jsx)("div",{className:"mermaid",children:l})}},46378:function(e,n,t){"use strict";t.r(n),t.d(n,{__N_SSG:function(){return h},default:function(){return v}});var r=t(52322),a=t(2784),s=t(97729),c=t(80594),i=t.n(c),o=t(51930),l=t(54643),d=t(61519),m=t(44938),u=t(55008);function x(){for(var e=arguments.length,n=new Array(e),t=0;t<e;t++)n[t]=arguments[t];return n.filter(Boolean).join(" ")}var f=[{name:"Name",href:"#",current:!0},{name:"Version",href:"#",current:!1},{name:"Domains",href:"#",current:!1}],h=!0;function v(e){var n=e.services,t=(0,a.useState)(n),c=t[0],h=t[1],v=(0,a.useState)(""),g=v[0],p=v[1];(0,a.useEffect)((function(){h(function(){var e=n;return g&&(e=e.filter((function(e){return e.name.toLowerCase().includes(g.toLowerCase())}))),e}())}),[g]);var j=(0,a.useCallback)(i()((function(e){p(e.target.value)}),500),[c]),b=!!g,N=(0,a.useState)(!1),y=N[0],w=N[1],k=(0,u.ZR)().title;return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(s.default,{children:(0,r.jsxs)("title",{children:[k," - All Services"]})}),(0,r.jsxs)("main",{className:"max-w-7xl mx-auto md:min-h-screen px-4 xl:px-0",children:[(0,r.jsxs)("div",{className:"relative z-10 flex items-baseline justify-between pt-8 pb-6 border-b border-gray-200",children:[(0,r.jsxs)("h1",{className:"text-2xl font-extrabold tracking-tight text-gray-900",children:["Services (",n.length,")"]}),(0,r.jsx)("div",{className:"flex items-center",children:(0,r.jsxs)(o.v,{as:"div",className:"relative hidden text-left",children:[(0,r.jsx)("div",{children:(0,r.jsxs)(o.v.Button,{className:"group inline-flex justify-center text-sm font-medium text-gray-700 hover:text-gray-900",children:["Sort",(0,r.jsx)(d.v4q,{className:"flex-shrink-0 -mr-1 ml-1 h-5 w-5 text-gray-400 group-hover:text-gray-500","aria-hidden":"true"})]})}),(0,r.jsx)(l.u,{as:a.Fragment,enter:"transition ease-out duration-100",enterFrom:"transform opacity-0 scale-95",enterTo:"transform opacity-100 scale-100",leave:"transition ease-in duration-75",leaveFrom:"transform opacity-100 scale-100",leaveTo:"transform opacity-0 scale-95",children:(0,r.jsx)(o.v.Items,{className:"origin-top-right absolute right-0 mt-2 w-40 rounded-md shadow-2xl bg-white ring-1 ring-black ring-opacity-5 focus:outline-none",children:(0,r.jsx)("div",{className:"py-1",children:f.map((function(e){return(0,r.jsx)(o.v.Item,{children:function(n){var t=n.active;return(0,r.jsx)("a",{href:e.href,className:x(e.current?"font-medium text-gray-900":"text-gray-500",t?"bg-gray-100":"","block px-4 py-2 text-sm"),children:e.name})}},e.name)}))})})})]})})]}),(0,r.jsx)("section",{className:"pt-6 pb-24",children:(0,r.jsxs)("div",{className:"grid grid-cols-4 gap-x-8 gap-y-10",children:[(0,r.jsxs)("form",{className:"hidden lg:block",children:[(0,r.jsxs)("div",{className:"border-b border-gray-200 pb-6",children:[(0,r.jsx)("label",{htmlFor:"service",className:"font-bold block text-sm font-medium text-gray-700",children:"Search Services"}),(0,r.jsxs)("div",{className:"mt-1 relative rounded-md shadow-sm",children:[(0,r.jsx)("div",{className:"absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none",children:(0,r.jsx)(d.W1M,{className:"h-5 w-5 text-gray-400","aria-hidden":"true"})}),(0,r.jsx)("input",{type:"text",name:"service",id:"service",onChange:j,className:"focus:ring-gray-500 focus:border-gray-500 block w-full pl-10 sm:text-sm border-gray-300 rounded-md"})]})]}),(0,r.jsxs)("div",{className:"border-b border-gray-200 pb-6",children:[(0,r.jsx)("h3",{className:"-my-3 flow-root",children:(0,r.jsx)("div",{className:"py-3 bg-white w-full flex items-center justify-between text-sm text-gray-400 hover:text-gray-500",children:(0,r.jsx)("span",{className:"font-medium text-gray-900",children:"Features"})})}),(0,r.jsx)("div",{className:"pt-6",children:(0,r.jsx)("div",{className:"space-y-4",children:(0,r.jsxs)("div",{className:"flex items-center",children:[(0,r.jsx)("input",{id:"show-mermaid",type:"checkbox",onChange:function(e){return w(e.target.checked)},defaultChecked:y,className:"h-4 w-4 border-gray-300 rounded text-gray-600 focus:ring-gray-500"}),(0,r.jsx)("label",{htmlFor:"show-mermaid",className:"ml-3 text-sm text-gray-600",children:"Show Mermaid Diagrams"})]})})})]})]}),(0,r.jsx)("div",{className:"col-span-4 lg:col-span-3",children:(0,r.jsxs)("div",{children:[(0,r.jsx)("h2",{className:"text-gray-500 text-xs font-medium uppercase tracking-wide",children:b?"Filtered Services (".concat(c.length,"/").concat(n.length,")"):"All Services (".concat(n.length,")")}),(0,r.jsx)(m.Z,{services:c,showMermaidDiagrams:y}),0===c.length&&(0,r.jsx)("div",{className:"text-gray-400 flex h-96 justify-center items-center",children:(0,r.jsxs)("div",{children:[(0,r.jsx)(d.W1M,{className:"w-6 h-6 inline-block mr-1"}),"No services found."]})})]})})]})})]})]})}},46892:function(e,n,t){"use strict";function r(e){for(var n=0,t=0;t<e.length;t++)n=e.charCodeAt(t)+((n<<5)-n);for(var r="#",a=0;a<3;a++){r+="00".concat((n>>8*a&255).toString(16)).substr(-2)}return r}t.d(n,{Z:function(){return r}})}},function(e){e.O(0,[7812,1519,7962,6873,9774,2888,179],(function(){return n=17891,e(e.s=n);var n}));var n=e.O();_N_E=n}]);