pyegeria 5.3.3.12__py3-none-any.whl → 5.3.3.13__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. pyegeria/__init__.py +2 -1
  2. pyegeria/commands/tech/list_information_supply_chains.py +10 -7
  3. pyegeria/commands/tech/work/mermaid_graphs/Clinical Trial Subject Onboarding.html +135 -0
  4. pyegeria/commands/tech/work/mermaid_graphs/{Clinical Trial Treatment Validation.mmd → Clinical Trial Treatment Validation.html } +127 -41
  5. pyegeria/commands/tech/work/mermaid_graphs/Employee Expense Payment.html +126 -0
  6. pyegeria/commands/tech/work/mermaid_graphs/New Drug Product Information Distribution.html +141 -0
  7. pyegeria/commands/tech/work/mermaid_graphs/New Employee Onboarding.html +138 -0
  8. pyegeria/commands/tech/work/mermaid_graphs/Personalized Treatment Ordering.html +143 -0
  9. pyegeria/commands/tech/work/mermaid_graphs/{Physical Inventory Tracking.mmd → Physical Inventory Tracking.html } +114 -28
  10. pyegeria/commands/tech/work/mermaid_graphs/{Sustainability Reporting.mmd → Sustainability Reporting.html } +112 -26
  11. pyegeria/commands/tech/work/mermaid_graphs/{{displayName}}.html +115 -0
  12. pyegeria/mermaid_utilities.py +277 -72
  13. {pyegeria-5.3.3.12.dist-info → pyegeria-5.3.3.13.dist-info}/METADATA +1 -1
  14. {pyegeria-5.3.3.12.dist-info → pyegeria-5.3.3.13.dist-info}/RECORD +19 -94
  15. pyegeria/.DS_Store +0 -0
  16. pyegeria/commands/.DS_Store +0 -0
  17. pyegeria/commands/__pycache__/__init__.cpython-312.pyc +0 -0
  18. pyegeria/commands/__pycache__/server_status_widget.cpython-312-pytest-7.4.4.pyc +0 -0
  19. pyegeria/commands/cat/__pycache__/__init__.cpython-312.pyc +0 -0
  20. pyegeria/commands/cat/__pycache__/get_asset_graph.cpython-312.pyc +0 -0
  21. pyegeria/commands/cat/__pycache__/get_collection.cpython-312.pyc +0 -0
  22. pyegeria/commands/cat/__pycache__/get_project_dependencies.cpython-312.pyc +0 -0
  23. pyegeria/commands/cat/__pycache__/get_project_structure.cpython-312.pyc +0 -0
  24. pyegeria/commands/cat/__pycache__/get_tech_type_elements.cpython-312.pyc +0 -0
  25. pyegeria/commands/cat/__pycache__/glossary_actions.cpython-312.pyc +0 -0
  26. pyegeria/commands/cat/__pycache__/list_assets.cpython-312.pyc +0 -0
  27. pyegeria/commands/cat/__pycache__/list_cert_types.cpython-312.pyc +0 -0
  28. pyegeria/commands/cat/__pycache__/list_collections.cpython-312.pyc +0 -0
  29. pyegeria/commands/cat/__pycache__/list_deployed_catalogs.cpython-312.pyc +0 -0
  30. pyegeria/commands/cat/__pycache__/list_deployed_database_schemas.cpython-312.pyc +0 -0
  31. pyegeria/commands/cat/__pycache__/list_deployed_databases.cpython-312.pyc +0 -0
  32. pyegeria/commands/cat/__pycache__/list_glossaries.cpython-312.pyc +0 -0
  33. pyegeria/commands/cat/__pycache__/list_projects.cpython-312.pyc +0 -0
  34. pyegeria/commands/cat/__pycache__/list_servers_deployed_imp.cpython-312.pyc +0 -0
  35. pyegeria/commands/cat/__pycache__/list_tech_type_elements.cpython-312.pyc +0 -0
  36. pyegeria/commands/cat/__pycache__/list_tech_types.cpython-312.pyc +0 -0
  37. pyegeria/commands/cat/__pycache__/list_terms.cpython-312.pyc +0 -0
  38. pyegeria/commands/cat/__pycache__/list_todos.cpython-312.pyc +0 -0
  39. pyegeria/commands/cat/__pycache__/list_user_ids.cpython-312.pyc +0 -0
  40. pyegeria/commands/cli/__pycache__/__init__.cpython-312.pyc +0 -0
  41. pyegeria/commands/cli/__pycache__/egeria_login_tui.cpython-312.pyc +0 -0
  42. pyegeria/commands/cli/__pycache__/egeria_ops.cpython-312.pyc +0 -0
  43. pyegeria/commands/cli/__pycache__/ops_config.cpython-312.pyc +0 -0
  44. pyegeria/commands/doc/.DS_Store +0 -0
  45. pyegeria/commands/doc/Visual Command Reference/.DS_Store +0 -0
  46. pyegeria/commands/doc/Visual Command Reference/cat/.DS_Store +0 -0
  47. pyegeria/commands/doc/Visual Command Reference/cat/show/.DS_Store +0 -0
  48. pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/.DS_Store +0 -0
  49. pyegeria/commands/doc/glossary/.DS_Store +0 -0
  50. pyegeria/commands/doc/glossary/images/.DS_Store +0 -0
  51. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/.DS_Store +0 -0
  52. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/.DS_Store +0 -0
  53. pyegeria/commands/my/__pycache__/__init__.cpython-312.pyc +0 -0
  54. pyegeria/commands/my/__pycache__/list_my_profile.cpython-312.pyc +0 -0
  55. pyegeria/commands/my/__pycache__/list_my_roles.cpython-312.pyc +0 -0
  56. pyegeria/commands/my/__pycache__/monitor_my_todos.cpython-312.pyc +0 -0
  57. pyegeria/commands/my/__pycache__/monitor_open_todos.cpython-312.pyc +0 -0
  58. pyegeria/commands/my/__pycache__/todo_actions.cpython-312.pyc +0 -0
  59. pyegeria/commands/ops/__pycache__/__init__.cpython-312.pyc +0 -0
  60. pyegeria/commands/ops/__pycache__/gov_server_actions.cpython-312.pyc +0 -0
  61. pyegeria/commands/ops/__pycache__/list_archives.cpython-312.pyc +0 -0
  62. pyegeria/commands/ops/__pycache__/list_catalog_targets.cpython-312.pyc +0 -0
  63. pyegeria/commands/ops/__pycache__/load_archive.cpython-312.pyc +0 -0
  64. pyegeria/commands/ops/__pycache__/monitor_engine_activity.cpython-312.pyc +0 -0
  65. pyegeria/commands/ops/__pycache__/monitor_engine_activity_c.cpython-312.pyc +0 -0
  66. pyegeria/commands/ops/__pycache__/monitor_gov_eng_status.cpython-312.pyc +0 -0
  67. pyegeria/commands/ops/__pycache__/monitor_integ_daemon_status.cpython-312.pyc +0 -0
  68. pyegeria/commands/ops/__pycache__/monitor_platform_status.cpython-312.pyc +0 -0
  69. pyegeria/commands/ops/__pycache__/monitor_server_startup.cpython-312.pyc +0 -0
  70. pyegeria/commands/ops/__pycache__/monitor_server_status.cpython-312.pyc +0 -0
  71. pyegeria/commands/ops/__pycache__/refresh_integration_daemon.cpython-312.pyc +0 -0
  72. pyegeria/commands/ops/__pycache__/restart_integration_daemon.cpython-312.pyc +0 -0
  73. pyegeria/commands/ops/__pycache__/table_integ_daemon_status.cpython-312.pyc +0 -0
  74. pyegeria/commands/tech/__pycache__/__init__.cpython-312.pyc +0 -0
  75. pyegeria/commands/tech/__pycache__/get_element_info.cpython-312.pyc +0 -0
  76. pyegeria/commands/tech/__pycache__/get_guid_info.cpython-312.pyc +0 -0
  77. pyegeria/commands/tech/__pycache__/get_tech_details.cpython-312.pyc +0 -0
  78. pyegeria/commands/tech/__pycache__/get_tech_type_template.cpython-312.pyc +0 -0
  79. pyegeria/commands/tech/__pycache__/list_anchored_elements.cpython-312.pyc +0 -0
  80. pyegeria/commands/tech/__pycache__/list_asset_types.cpython-312.pyc +0 -0
  81. pyegeria/commands/tech/__pycache__/list_elements_by_property_value.cpython-312.pyc +0 -0
  82. pyegeria/commands/tech/__pycache__/list_elements_for_classification.cpython-312.pyc +0 -0
  83. pyegeria/commands/tech/__pycache__/list_gov_action_processes.cpython-312.pyc +0 -0
  84. pyegeria/commands/tech/__pycache__/list_registered_services.cpython-312.pyc +0 -0
  85. pyegeria/commands/tech/__pycache__/list_related_specification.cpython-312.pyc +0 -0
  86. pyegeria/commands/tech/__pycache__/list_relationship_types.cpython-312.pyc +0 -0
  87. pyegeria/commands/tech/__pycache__/list_relationships.cpython-312.pyc +0 -0
  88. pyegeria/commands/tech/__pycache__/list_tech_templates.cpython-312.pyc +0 -0
  89. pyegeria/commands/tech/__pycache__/list_valid_metadata_values.cpython-312.pyc +0 -0
  90. pyegeria/commands/tech/work/mermaid_graphs/Clinical Trial Subject Onboarding.mmd +0 -49
  91. pyegeria/commands/tech/work/mermaid_graphs/Employee Expense Payment.mmd +0 -40
  92. pyegeria/commands/tech/work/mermaid_graphs/New Drug Product Information Distribution.mmd +0 -55
  93. pyegeria/commands/tech/work/mermaid_graphs/New Employee Onboarding.mmd +0 -52
  94. pyegeria/commands/tech/work/mermaid_graphs/Personalized Treatment Ordering.mmd +0 -57
  95. pyegeria/commands/tech/work/mermaid_graphs/{{displayName}}.mmd +0 -29
  96. /pyegeria/commands/tech/{list_isolution_blueprints.py → list_solution_blueprints.py} +0 -0
  97. /pyegeria/commands/tech/{list_isolution_blueprints2.py → list_solution_blueprints2.py} +0 -0
  98. {pyegeria-5.3.3.12.dist-info → pyegeria-5.3.3.13.dist-info}/LICENSE +0 -0
  99. {pyegeria-5.3.3.12.dist-info → pyegeria-5.3.3.13.dist-info}/WHEEL +0 -0
  100. {pyegeria-5.3.3.12.dist-info → pyegeria-5.3.3.13.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,138 @@
1
+
2
+ <html>
3
+ <head>
4
+ <style type="text/css">
5
+ #mySvgId {
6
+ width: 100%;
7
+ height: 100%;
8
+ overflow: hidden;
9
+ border: 1px solid #ccc;
10
+ position: relative;
11
+ margin-bottom: 10px;
12
+ }
13
+ svg {
14
+ cursor: grab;
15
+ }
16
+
17
+ </style>
18
+ </head>
19
+
20
+ <body>
21
+ <div id="graphDiv"></div>
22
+ <script src="https://bumbu.me/svg-pan-zoom/dist/svg-pan-zoom.min.js"></script>
23
+ <script type="module">
24
+ import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.esm.min.mjs';
25
+
26
+ mermaid.initialize({startOnLoad: false});
27
+ await mermaid.run({
28
+ querySelector: '.mermaid',
29
+ postRenderCallback: (id) => {
30
+ const container = document.getElementById("diagram-container");
31
+ const svgElement = container.querySelector("svg");
32
+
33
+ // Initialize Panzoom
34
+ const panzoomInstance = Panzoom(svgElement, {
35
+ maxScale: 5,
36
+ minScale: 0.5,
37
+ step: 0.1,
38
+ });
39
+
40
+ // Add mouse wheel zoom
41
+ container.addEventListener("wheel", (event) => {
42
+ panzoomInstance.zoomWithWheel(event);
43
+ });
44
+ }
45
+ });
46
+
47
+
48
+ const drawDiagram = async function () {
49
+ const element = document.querySelector('#graphDiv');
50
+ const graphDefinition = `
51
+ flowchart TD
52
+ %%{init: {"flowchart": {"htmlLabels": false}} }%%
53
+
54
+ 022009d9-53cb-4469-afeb-16ee81d8f9bc@{ shape: flip-tri, label: "*Information Supply Chain*
55
+ **New Employee Onboarding**"}
56
+ 6dce4c2f-29bd-44f0-a968-9084fc331b78@{ shape: text, label: "*Description*
57
+ **Adding information about a new employee to all appropriate systems and directories.**"}
58
+ 022009d9-53cb-4469-afeb-16ee81d8f9bc~~~6dce4c2f-29bd-44f0-a968-9084fc331b78
59
+ cde7bdad-bf9e-48b2-8a39-00e8c871f023@{ shape: text, label: "*Purpose*
60
+ **Ensure a new employee is productive and engaged in a timely manner.**"}
61
+ 6dce4c2f-29bd-44f0-a968-9084fc331b78~~~cde7bdad-bf9e-48b2-8a39-00e8c871f023
62
+ 88c42780-6fb1-49e2-a584-8af90cdc7728@{ shape: rounded, label: "*Software Server*
63
+ **System:coco-hrim**"}
64
+ ae0c7768-c01e-4bd1-8a47-fbacfccf2f63@{ shape: rounded, label: "*Software Server*
65
+ **System:Netherlands payroll**"}
66
+ 88c42780-6fb1-49e2-a584-8af90cdc7728-->|"payment authorization [Data Flow]"|ae0c7768-c01e-4bd1-8a47-fbacfccf2f63
67
+ a47906f0-67f0-46ed-890d-85cb049ffa60@{ shape: rounded, label: "*Software Server*
68
+ **System:cocopages**"}
69
+ 88c42780-6fb1-49e2-a584-8af90cdc7728-->|"employee directory [Data Flow]"|a47906f0-67f0-46ed-890d-85cb049ffa60
70
+ 35bef6c5-25d7-47b1-91db-f9bce0238612@{ shape: rounded, label: "*Software Server*
71
+ **System:Canadian payroll**"}
72
+ 88c42780-6fb1-49e2-a584-8af90cdc7728-->|"payment authorization [Data Flow]"|35bef6c5-25d7-47b1-91db-f9bce0238612
73
+ 12c9d1a4-2a5d-4e7c-a640-97f206270425@{ shape: rounded, label: "*Software Server*
74
+ **System:UK payroll**"}
75
+ 88c42780-6fb1-49e2-a584-8af90cdc7728-->|"payment authorization [Data Flow]"|12c9d1a4-2a5d-4e7c-a640-97f206270425
76
+ style 022009d9-53cb-4469-afeb-16ee81d8f9bc color:#FFFFFF, fill:#004563, stroke:#b7c0c7
77
+ style 6dce4c2f-29bd-44f0-a968-9084fc331b78 color:#000000, fill:#F9F7ED, stroke:#b7c0c7
78
+ style cde7bdad-bf9e-48b2-8a39-00e8c871f023 color:#000000, fill:#F9F7ED, stroke:#b7c0c7
79
+ style ae0c7768-c01e-4bd1-8a47-fbacfccf2f63 color:#000000, fill:#e0ab18, stroke:#004563
80
+ style 88c42780-6fb1-49e2-a584-8af90cdc7728 color:#000000, fill:#e0ab18, stroke:#004563
81
+ style 12c9d1a4-2a5d-4e7c-a640-97f206270425 color:#000000, fill:#e0ab18, stroke:#004563
82
+ style a47906f0-67f0-46ed-890d-85cb049ffa60 color:#000000, fill:#e0ab18, stroke:#004563
83
+ style 35bef6c5-25d7-47b1-91db-f9bce0238612 color:#000000, fill:#e0ab18, stroke:#004563`;
84
+ const {svg} = await mermaid.render('mySvgId', graphDefinition);
85
+ element.innerHTML = svg.replace(/( )*max-width:( 0-9\.)*px;/i, '');
86
+
87
+ var doPan = false;
88
+ var eventsHandler;
89
+ var panZoom;
90
+ var mousepos;
91
+
92
+ eventsHandler = {
93
+ haltEventListeners: ['mousedown', 'mousemove', 'mouseup']
94
+
95
+ , mouseDownHandler: function (ev) {
96
+ if (event.target.className == "[object SVGAnimatedString]") {
97
+ doPan = true;
98
+ mousepos = {x: ev.clientX, y: ev.clientY}
99
+ }
100
+ ;
101
+ }
102
+
103
+ , mouseMoveHandler: function (ev) {
104
+ if (doPan) {
105
+ panZoom.panBy({x: ev.clientX - mousepos.x, y: ev.clientY - mousepos.y});
106
+ mousepos = {x: ev.clientX, y: ev.clientY};
107
+ window.getSelection().removeAllRanges();
108
+ }
109
+ }
110
+
111
+ , mouseUpHandler: function (ev) {
112
+ doPan = false;
113
+ }
114
+
115
+ , init: function (options) {
116
+ options.svgElement.addEventListener('mousedown', this.mouseDownHandler, false);
117
+ options.svgElement.addEventListener('mousemove', this.mouseMoveHandler, false);
118
+ options.svgElement.addEventListener('mouseup', this.mouseUpHandler, false);
119
+ }
120
+
121
+ , destroy: function (options) {
122
+ options.svgElement.removeEventListener('mousedown', this.mouseDownHandler, false);
123
+ options.svgElement.removeEventListener('mousemove', this.mouseMoveHandler, false);
124
+ options.svgElement.removeEventListener('mouseup', this.mouseUpHandler, false);
125
+ }
126
+ }
127
+ panZoom = svgPanZoom('#mySvgId', {
128
+ zoomEnabled: true
129
+ , controlIconsEnabled: true
130
+ , fit: 1
131
+ , center: 1
132
+ , customEventsHandler: eventsHandler
133
+ })
134
+ };
135
+ await drawDiagram();
136
+ </script>
137
+ </body>
138
+
@@ -0,0 +1,143 @@
1
+
2
+ <html>
3
+ <head>
4
+ <style type="text/css">
5
+ #mySvgId {
6
+ width: 100%;
7
+ height: 100%;
8
+ overflow: hidden;
9
+ border: 1px solid #ccc;
10
+ position: relative;
11
+ margin-bottom: 10px;
12
+ }
13
+ svg {
14
+ cursor: grab;
15
+ }
16
+
17
+ </style>
18
+ </head>
19
+
20
+ <body>
21
+ <div id="graphDiv"></div>
22
+ <script src="https://bumbu.me/svg-pan-zoom/dist/svg-pan-zoom.min.js"></script>
23
+ <script type="module">
24
+ import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.esm.min.mjs';
25
+
26
+ mermaid.initialize({startOnLoad: false});
27
+ await mermaid.run({
28
+ querySelector: '.mermaid',
29
+ postRenderCallback: (id) => {
30
+ const container = document.getElementById("diagram-container");
31
+ const svgElement = container.querySelector("svg");
32
+
33
+ // Initialize Panzoom
34
+ const panzoomInstance = Panzoom(svgElement, {
35
+ maxScale: 5,
36
+ minScale: 0.5,
37
+ step: 0.1,
38
+ });
39
+
40
+ // Add mouse wheel zoom
41
+ container.addEventListener("wheel", (event) => {
42
+ panzoomInstance.zoomWithWheel(event);
43
+ });
44
+ }
45
+ });
46
+
47
+
48
+ const drawDiagram = async function () {
49
+ const element = document.querySelector('#graphDiv');
50
+ const graphDefinition = `
51
+ flowchart TD
52
+ %%{init: {"flowchart": {"htmlLabels": false}} }%%
53
+
54
+ adbae740-57a3-41b8-a722-266b895794e6@{ shape: flip-tri, label: "*Information Supply Chain*
55
+ **Personalized Treatment Ordering**"}
56
+ 6b6468b9-c34c-4c1e-9159-69e8ae7486da@{ shape: text, label: "*Description*
57
+ **Delivering information about a new personalized medicine order so that it fulfilled and invoiced.**"}
58
+ adbae740-57a3-41b8-a722-266b895794e6~~~6b6468b9-c34c-4c1e-9159-69e8ae7486da
59
+ 016a9f2a-66ac-4890-83c6-22b0aa870787@{ shape: text, label: "*Purpose*
60
+ **Ensuring orders are fulfilled effectively.**"}
61
+ 6b6468b9-c34c-4c1e-9159-69e8ae7486da~~~016a9f2a-66ac-4890-83c6-22b0aa870787
62
+ bdf60c10-e8f8-4b49-9f92-e0c6a40b0d7b@{ shape: rounded, label: "*Software Server*
63
+ **System:ed-mfg-control**"}
64
+ 25e2e56d-2e2f-4f6f-a1ed-019dd76d589a@{ shape: rounded, label: "*Software Server*
65
+ **System:manufacturing-planning**"}
66
+ bdf60c10-e8f8-4b49-9f92-e0c6a40b0d7b-->|"manufacturing complete [Data Flow]"|25e2e56d-2e2f-4f6f-a1ed-019dd76d589a
67
+ c24e9ea0-171a-46d8-a5d8-3fedcfe97aa4@{ shape: rounded, label: "*Software Server*
68
+ **System:MFCTRL9482**"}
69
+ c24e9ea0-171a-46d8-a5d8-3fedcfe97aa4-->|"manufacturing complete [Data Flow]"|25e2e56d-2e2f-4f6f-a1ed-019dd76d589a
70
+ 0f59833f-8a8a-488b-808a-9ea24618bb6c@{ shape: rounded, label: "*Software Server*
71
+ **System:winch-mfg-control**"}
72
+ 0f59833f-8a8a-488b-808a-9ea24618bb6c-->|"manufacturing complete [Data Flow]"|25e2e56d-2e2f-4f6f-a1ed-019dd76d589a
73
+ a2e43afa-386a-4acd-ba1d-7773b368c34a@{ shape: rounded, label: "*Software Server*
74
+ **System:globalCRM**"}
75
+ 11071e76-23a8-4f3d-bd07-3b9aa9781bda@{ shape: rounded, label: "*Software Server*
76
+ **System:coco-ledgers**"}
77
+ a2e43afa-386a-4acd-ba1d-7773b368c34a-->|"new sales [Data Flow]"|11071e76-23a8-4f3d-bd07-3b9aa9781bda
78
+ a2e43afa-386a-4acd-ba1d-7773b368c34a-->|"new orders [Data Flow]"|25e2e56d-2e2f-4f6f-a1ed-019dd76d589a
79
+ 25e2e56d-2e2f-4f6f-a1ed-019dd76d589a-->|"manufacturing request [Data Flow]"|c24e9ea0-171a-46d8-a5d8-3fedcfe97aa4
80
+ style c24e9ea0-171a-46d8-a5d8-3fedcfe97aa4 color:#000000, fill:#e0ab18, stroke:#004563
81
+ style a2e43afa-386a-4acd-ba1d-7773b368c34a color:#000000, fill:#e0ab18, stroke:#004563
82
+ style adbae740-57a3-41b8-a722-266b895794e6 color:#FFFFFF, fill:#004563, stroke:#b7c0c7
83
+ style bdf60c10-e8f8-4b49-9f92-e0c6a40b0d7b color:#000000, fill:#e0ab18, stroke:#004563
84
+ style 11071e76-23a8-4f3d-bd07-3b9aa9781bda color:#000000, fill:#e0ab18, stroke:#004563
85
+ style 016a9f2a-66ac-4890-83c6-22b0aa870787 color:#000000, fill:#F9F7ED, stroke:#b7c0c7
86
+ style 0f59833f-8a8a-488b-808a-9ea24618bb6c color:#000000, fill:#e0ab18, stroke:#004563
87
+ style 25e2e56d-2e2f-4f6f-a1ed-019dd76d589a color:#000000, fill:#e0ab18, stroke:#004563
88
+ style 6b6468b9-c34c-4c1e-9159-69e8ae7486da color:#000000, fill:#F9F7ED, stroke:#b7c0c7`;
89
+ const {svg} = await mermaid.render('mySvgId', graphDefinition);
90
+ element.innerHTML = svg.replace(/( )*max-width:( 0-9\.)*px;/i, '');
91
+
92
+ var doPan = false;
93
+ var eventsHandler;
94
+ var panZoom;
95
+ var mousepos;
96
+
97
+ eventsHandler = {
98
+ haltEventListeners: ['mousedown', 'mousemove', 'mouseup']
99
+
100
+ , mouseDownHandler: function (ev) {
101
+ if (event.target.className == "[object SVGAnimatedString]") {
102
+ doPan = true;
103
+ mousepos = {x: ev.clientX, y: ev.clientY}
104
+ }
105
+ ;
106
+ }
107
+
108
+ , mouseMoveHandler: function (ev) {
109
+ if (doPan) {
110
+ panZoom.panBy({x: ev.clientX - mousepos.x, y: ev.clientY - mousepos.y});
111
+ mousepos = {x: ev.clientX, y: ev.clientY};
112
+ window.getSelection().removeAllRanges();
113
+ }
114
+ }
115
+
116
+ , mouseUpHandler: function (ev) {
117
+ doPan = false;
118
+ }
119
+
120
+ , init: function (options) {
121
+ options.svgElement.addEventListener('mousedown', this.mouseDownHandler, false);
122
+ options.svgElement.addEventListener('mousemove', this.mouseMoveHandler, false);
123
+ options.svgElement.addEventListener('mouseup', this.mouseUpHandler, false);
124
+ }
125
+
126
+ , destroy: function (options) {
127
+ options.svgElement.removeEventListener('mousedown', this.mouseDownHandler, false);
128
+ options.svgElement.removeEventListener('mousemove', this.mouseMoveHandler, false);
129
+ options.svgElement.removeEventListener('mouseup', this.mouseUpHandler, false);
130
+ }
131
+ }
132
+ panZoom = svgPanZoom('#mySvgId', {
133
+ zoomEnabled: true
134
+ , controlIconsEnabled: true
135
+ , fit: 1
136
+ , center: 1
137
+ , customEventsHandler: eventsHandler
138
+ })
139
+ };
140
+ await drawDiagram();
141
+ </script>
142
+ </body>
143
+
@@ -1,28 +1,67 @@
1
1
 
2
- <!DOCTYPE html>
3
- <html>
4
- <head>
5
- <script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js"></script>
6
- </head>
7
- <body>
8
- <div class="mermaid">
9
- ---
10
- title: Information Supply Chain - Physical Inventory Tracking [7480a3b1-8d6c-4062-ae59-f3b81e146ed0]
11
- ---
12
- flowchart TD
2
+ <html>
3
+ <head>
4
+ <style type="text/css">
5
+ #mySvgId {
6
+ width: 100%;
7
+ height: 100%;
8
+ overflow: hidden;
9
+ border: 1px solid #ccc;
10
+ position: relative;
11
+ margin-bottom: 10px;
12
+ }
13
+ svg {
14
+ cursor: grab;
15
+ }
16
+
17
+ </style>
18
+ </head>
19
+
20
+ <body>
21
+ <div id="graphDiv"></div>
22
+ <script src="https://bumbu.me/svg-pan-zoom/dist/svg-pan-zoom.min.js"></script>
23
+ <script type="module">
24
+ import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.esm.min.mjs';
25
+
26
+ mermaid.initialize({startOnLoad: false});
27
+ await mermaid.run({
28
+ querySelector: '.mermaid',
29
+ postRenderCallback: (id) => {
30
+ const container = document.getElementById("diagram-container");
31
+ const svgElement = container.querySelector("svg");
32
+
33
+ // Initialize Panzoom
34
+ const panzoomInstance = Panzoom(svgElement, {
35
+ maxScale: 5,
36
+ minScale: 0.5,
37
+ step: 0.1,
38
+ });
39
+
40
+ // Add mouse wheel zoom
41
+ container.addEventListener("wheel", (event) => {
42
+ panzoomInstance.zoomWithWheel(event);
43
+ });
44
+ }
45
+ });
46
+
47
+
48
+ const drawDiagram = async function () {
49
+ const element = document.querySelector('#graphDiv');
50
+ const graphDefinition = `
51
+ flowchart TD
13
52
  %%{init: {"flowchart": {"htmlLabels": false}} }%%
14
53
 
15
54
  7480a3b1-8d6c-4062-ae59-f3b81e146ed0@{ shape: flip-tri, label: "*Information Supply Chain*
16
55
  **Physical Inventory Tracking**"}
17
- f19268f1-b2aa-425b-a8e2-a0c94935d7e0@{ shape: text, label: "*Description*
56
+ 4eee01b9-66f1-435e-8924-09235062413e@{ shape: text, label: "*Description*
18
57
  **Managing information take tracks physical goods from suppliers, to depot and manufacturing.**"}
19
- 7480a3b1-8d6c-4062-ae59-f3b81e146ed0~~~f19268f1-b2aa-425b-a8e2-a0c94935d7e0
20
- c65f691e-804b-4882-a6b0-bb70cbe9f3bd@{ shape: text, label: "*Purpose*
58
+ 7480a3b1-8d6c-4062-ae59-f3b81e146ed0~~~4eee01b9-66f1-435e-8924-09235062413e
59
+ 12ee0351-e01a-4312-a5ff-a2d2a721e92d@{ shape: text, label: "*Purpose*
21
60
  **Ensuring effective management of physical inventory.**"}
22
- f19268f1-b2aa-425b-a8e2-a0c94935d7e0~~~c65f691e-804b-4882-a6b0-bb70cbe9f3bd
23
- e5d0634d-e50c-425f-ac81-1e1d96b729b6@{ shape: text, label: "*Purpose*
61
+ 4eee01b9-66f1-435e-8924-09235062413e~~~12ee0351-e01a-4312-a5ff-a2d2a721e92d
62
+ 85423a2d-f935-46cd-8be1-2eb4f4239f22@{ shape: text, label: "*Purpose*
24
63
  **Ensuring hazardous materials are properly identified, reported and managed.**"}
25
- c65f691e-804b-4882-a6b0-bb70cbe9f3bd~~~e5d0634d-e50c-425f-ac81-1e1d96b729b6
64
+ 12ee0351-e01a-4312-a5ff-a2d2a721e92d~~~85423a2d-f935-46cd-8be1-2eb4f4239f22
26
65
  db144477-e6cb-4fd1-9521-4a577de9af04@{ shape: rounded, label: "*Software Server*
27
66
  **System:procurement03**"}
28
67
  11071e76-23a8-4f3d-bd07-3b9aa9781bda@{ shape: rounded, label: "*Software Server*
@@ -70,23 +109,70 @@ c24e9ea0-171a-46d8-a5d8-3fedcfe97aa4-->|"goods produced [Data Flow]"|9e29ee1f-01
70
109
  style a5abdf72-0e5f-4366-8072-fac3bbb41ea6 color:#000000, fill:#e0ab18, stroke:#004563
71
110
  style c24e9ea0-171a-46d8-a5d8-3fedcfe97aa4 color:#000000, fill:#e0ab18, stroke:#004563
72
111
  style bdf60c10-e8f8-4b49-9f92-e0c6a40b0d7b color:#000000, fill:#e0ab18, stroke:#004563
73
- style f19268f1-b2aa-425b-a8e2-a0c94935d7e0 color:#000000, fill:#F9F7ED, stroke:#b7c0c7
74
112
  style 9e29ee1f-01d3-482c-9d1b-8b3f36ce62d2 color:#000000, fill:#e0ab18, stroke:#004563
75
113
  style 7480a3b1-8d6c-4062-ae59-f3b81e146ed0 color:#FFFFFF, fill:#004563, stroke:#b7c0c7
76
114
  style db144477-e6cb-4fd1-9521-4a577de9af04 color:#000000, fill:#e0ab18, stroke:#004563
77
115
  style 11071e76-23a8-4f3d-bd07-3b9aa9781bda color:#000000, fill:#e0ab18, stroke:#004563
78
116
  style cbe8c0bb-0e27-4d2a-825f-f017ee939028 color:#000000, fill:#e0ab18, stroke:#004563
117
+ style 12ee0351-e01a-4312-a5ff-a2d2a721e92d color:#000000, fill:#F9F7ED, stroke:#b7c0c7
79
118
  style 25e2e56d-2e2f-4f6f-a1ed-019dd76d589a color:#000000, fill:#e0ab18, stroke:#004563
80
- style e5d0634d-e50c-425f-ac81-1e1d96b729b6 color:#000000, fill:#F9F7ED, stroke:#b7c0c7
81
- style c65f691e-804b-4882-a6b0-bb70cbe9f3bd color:#000000, fill:#F9F7ED, stroke:#b7c0c7
82
119
  style 467dd9a0-89d6-4796-a058-c079bf54b6c7 color:#000000, fill:#e0ab18, stroke:#004563
83
120
  style 23fb5e33-11c9-4eb6-91d6-f2e873f8da68 color:#000000, fill:#e0ab18, stroke:#004563
121
+ style 4eee01b9-66f1-435e-8924-09235062413e color:#000000, fill:#F9F7ED, stroke:#b7c0c7
84
122
  style 0f59833f-8a8a-488b-808a-9ea24618bb6c color:#000000, fill:#e0ab18, stroke:#004563
85
-
86
- </div>
87
-
88
- <script>
89
- mermaid.initialize({startOnLoad:true});
90
- </script>
91
- </body>
92
- </html>
123
+ style 85423a2d-f935-46cd-8be1-2eb4f4239f22 color:#000000, fill:#F9F7ED, stroke:#b7c0c7`;
124
+ const {svg} = await mermaid.render('mySvgId', graphDefinition);
125
+ element.innerHTML = svg.replace(/( )*max-width:( 0-9\.)*px;/i, '');
126
+
127
+ var doPan = false;
128
+ var eventsHandler;
129
+ var panZoom;
130
+ var mousepos;
131
+
132
+ eventsHandler = {
133
+ haltEventListeners: ['mousedown', 'mousemove', 'mouseup']
134
+
135
+ , mouseDownHandler: function (ev) {
136
+ if (event.target.className == "[object SVGAnimatedString]") {
137
+ doPan = true;
138
+ mousepos = {x: ev.clientX, y: ev.clientY}
139
+ }
140
+ ;
141
+ }
142
+
143
+ , mouseMoveHandler: function (ev) {
144
+ if (doPan) {
145
+ panZoom.panBy({x: ev.clientX - mousepos.x, y: ev.clientY - mousepos.y});
146
+ mousepos = {x: ev.clientX, y: ev.clientY};
147
+ window.getSelection().removeAllRanges();
148
+ }
149
+ }
150
+
151
+ , mouseUpHandler: function (ev) {
152
+ doPan = false;
153
+ }
154
+
155
+ , init: function (options) {
156
+ options.svgElement.addEventListener('mousedown', this.mouseDownHandler, false);
157
+ options.svgElement.addEventListener('mousemove', this.mouseMoveHandler, false);
158
+ options.svgElement.addEventListener('mouseup', this.mouseUpHandler, false);
159
+ }
160
+
161
+ , destroy: function (options) {
162
+ options.svgElement.removeEventListener('mousedown', this.mouseDownHandler, false);
163
+ options.svgElement.removeEventListener('mousemove', this.mouseMoveHandler, false);
164
+ options.svgElement.removeEventListener('mouseup', this.mouseUpHandler, false);
165
+ }
166
+ }
167
+ panZoom = svgPanZoom('#mySvgId', {
168
+ zoomEnabled: true
169
+ , controlIconsEnabled: true
170
+ , fit: 1
171
+ , center: 1
172
+ , customEventsHandler: eventsHandler
173
+ })
174
+ };
175
+ await drawDiagram();
176
+ </script>
177
+ </body>
178
+
@@ -1,25 +1,64 @@
1
1
 
2
- <!DOCTYPE html>
3
- <html>
4
- <head>
5
- <script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js"></script>
6
- </head>
7
- <body>
8
- <div class="mermaid">
9
- ---
10
- title: Information Supply Chain - Sustainability Reporting [dd15b286-a38d-4f03-8625-aaded8596048]
11
- ---
12
- flowchart TD
2
+ <html>
3
+ <head>
4
+ <style type="text/css">
5
+ #mySvgId {
6
+ width: 100%;
7
+ height: 100%;
8
+ overflow: hidden;
9
+ border: 1px solid #ccc;
10
+ position: relative;
11
+ margin-bottom: 10px;
12
+ }
13
+ svg {
14
+ cursor: grab;
15
+ }
16
+
17
+ </style>
18
+ </head>
19
+
20
+ <body>
21
+ <div id="graphDiv"></div>
22
+ <script src="https://bumbu.me/svg-pan-zoom/dist/svg-pan-zoom.min.js"></script>
23
+ <script type="module">
24
+ import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.esm.min.mjs';
25
+
26
+ mermaid.initialize({startOnLoad: false});
27
+ await mermaid.run({
28
+ querySelector: '.mermaid',
29
+ postRenderCallback: (id) => {
30
+ const container = document.getElementById("diagram-container");
31
+ const svgElement = container.querySelector("svg");
32
+
33
+ // Initialize Panzoom
34
+ const panzoomInstance = Panzoom(svgElement, {
35
+ maxScale: 5,
36
+ minScale: 0.5,
37
+ step: 0.1,
38
+ });
39
+
40
+ // Add mouse wheel zoom
41
+ container.addEventListener("wheel", (event) => {
42
+ panzoomInstance.zoomWithWheel(event);
43
+ });
44
+ }
45
+ });
46
+
47
+
48
+ const drawDiagram = async function () {
49
+ const element = document.querySelector('#graphDiv');
50
+ const graphDefinition = `
51
+ flowchart TD
13
52
  %%{init: {"flowchart": {"htmlLabels": false}} }%%
14
53
 
15
54
  dd15b286-a38d-4f03-8625-aaded8596048@{ shape: flip-tri, label: "*Information Supply Chain*
16
55
  **Sustainability Reporting**"}
17
- 7f68bd61-bb98-4b99-9366-0340cfa8f15d@{ shape: text, label: "*Description*
56
+ 81fb3cc9-6bdb-4961-80e6-df61df658d14@{ shape: text, label: "*Description*
18
57
  **Delivering information to the sustainability reporting tools.**"}
19
- dd15b286-a38d-4f03-8625-aaded8596048~~~7f68bd61-bb98-4b99-9366-0340cfa8f15d
20
- 0343a86a-43ea-4805-ad74-616e628ea756@{ shape: text, label: "*Purpose*
58
+ dd15b286-a38d-4f03-8625-aaded8596048~~~81fb3cc9-6bdb-4961-80e6-df61df658d14
59
+ 3cd22769-b940-4154-a3d3-f78546a03301@{ shape: text, label: "*Purpose*
21
60
  **Ensuring sustainability reporting is accurate.**"}
22
- 7f68bd61-bb98-4b99-9366-0340cfa8f15d~~~0343a86a-43ea-4805-ad74-616e628ea756
61
+ 81fb3cc9-6bdb-4961-80e6-df61df658d14~~~3cd22769-b940-4154-a3d3-f78546a03301
23
62
  af07dc2b-ae07-442b-9b06-43d4ef52138a@{ shape: hex, label: "*Information Supply Chain Segment*
24
63
  **Sustainability Report Delivery**"}
25
64
  a491accc-aaaa-455b-893e-b6f7b0bf0afb@{ shape: hex, label: "*Information Supply Chain Segment*
@@ -89,6 +128,7 @@ style dd15b286-a38d-4f03-8625-aaded8596048 color:#FFFFFF, fill:#004563, stroke:#
89
128
  style ad8eab54-c2f7-494d-82d0-bf5985e5a58d color:#000000, fill:#e0ab18, stroke:#004563
90
129
  style 9e29ee1f-01d3-482c-9d1b-8b3f36ce62d2 color:#000000, fill:#e0ab18, stroke:#004563
91
130
  style 11071e76-23a8-4f3d-bd07-3b9aa9781bda color:#000000, fill:#e0ab18, stroke:#004563
131
+ style 81fb3cc9-6bdb-4961-80e6-df61df658d14 color:#000000, fill:#F9F7ED, stroke:#b7c0c7
92
132
  style 8a578f0d-f7ae-4255-b4a5-236241fa5449 color:#000000, fill:#e0ab18, stroke:#004563
93
133
  style fc55ef2d-a88d-44ee-94cb-3fca9b9af8b4 color:#FFFFFF, fill:#838cc7, stroke:#3079ab
94
134
  style 25fd5be7-692d-4752-9dc7-30068a7d665e color:#FFFFFF, fill:#838cc7, stroke:#3079ab
@@ -97,21 +137,67 @@ style 06edd666-06fd-43ef-b7bd-22e2651c334f color:#FFFFFF, fill:#838cc7, stroke:#
97
137
  style 02cdce9a-7630-479a-90de-fd7698d098f1 color:#FFFFFF, fill:#838cc7, stroke:#3079ab
98
138
  style af07dc2b-ae07-442b-9b06-43d4ef52138a color:#004563, fill:#b7c0c7, stroke:#004563
99
139
  style 047691ac-8628-472d-aca0-82bedc947ef4 color:#000000, fill:#e0ab18, stroke:#004563
100
- style 0343a86a-43ea-4805-ad74-616e628ea756 color:#000000, fill:#F9F7ED, stroke:#b7c0c7
101
140
  style d50a6f1f-49d2-47c3-a55e-5844464bd26f color:#FFFFFF, fill:#838cc7, stroke:#3079ab
102
- style 7f68bd61-bb98-4b99-9366-0340cfa8f15d color:#000000, fill:#F9F7ED, stroke:#b7c0c7
103
141
  style 6e786315-ae54-445b-b516-f3c1f0e5f289 color:#000000, fill:#e0ab18, stroke:#004563
104
142
  style 467dd9a0-89d6-4796-a058-c079bf54b6c7 color:#000000, fill:#e0ab18, stroke:#004563
105
143
  style 50768e61-43b6-4241-96a3-4c413582ec1f color:#FFFFFF, fill:#838cc7, stroke:#3079ab
144
+ style 3cd22769-b940-4154-a3d3-f78546a03301 color:#000000, fill:#F9F7ED, stroke:#b7c0c7
106
145
  style a491accc-aaaa-455b-893e-b6f7b0bf0afb color:#004563, fill:#b7c0c7, stroke:#004563
107
146
  style 5a2927f3-eed6-4509-bceb-2c29aa415090 color:#000000, fill:#e0ab18, stroke:#004563
108
147
  style 2c0f5a4e-bb02-4081-a80e-3072ca99a1aa color:#FFFFFF, fill:#838cc7, stroke:#3079ab
109
- style 9fb47e51-4121-495d-be31-f766a1f70856 color:#004563, fill:#b7c0c7, stroke:#004563
110
-
111
- </div>
112
-
113
- <script>
114
- mermaid.initialize({startOnLoad:true});
115
- </script>
116
- </body>
117
- </html>
148
+ style 9fb47e51-4121-495d-be31-f766a1f70856 color:#004563, fill:#b7c0c7, stroke:#004563`;
149
+ const {svg} = await mermaid.render('mySvgId', graphDefinition);
150
+ element.innerHTML = svg.replace(/( )*max-width:( 0-9\.)*px;/i, '');
151
+
152
+ var doPan = false;
153
+ var eventsHandler;
154
+ var panZoom;
155
+ var mousepos;
156
+
157
+ eventsHandler = {
158
+ haltEventListeners: ['mousedown', 'mousemove', 'mouseup']
159
+
160
+ , mouseDownHandler: function (ev) {
161
+ if (event.target.className == "[object SVGAnimatedString]") {
162
+ doPan = true;
163
+ mousepos = {x: ev.clientX, y: ev.clientY}
164
+ }
165
+ ;
166
+ }
167
+
168
+ , mouseMoveHandler: function (ev) {
169
+ if (doPan) {
170
+ panZoom.panBy({x: ev.clientX - mousepos.x, y: ev.clientY - mousepos.y});
171
+ mousepos = {x: ev.clientX, y: ev.clientY};
172
+ window.getSelection().removeAllRanges();
173
+ }
174
+ }
175
+
176
+ , mouseUpHandler: function (ev) {
177
+ doPan = false;
178
+ }
179
+
180
+ , init: function (options) {
181
+ options.svgElement.addEventListener('mousedown', this.mouseDownHandler, false);
182
+ options.svgElement.addEventListener('mousemove', this.mouseMoveHandler, false);
183
+ options.svgElement.addEventListener('mouseup', this.mouseUpHandler, false);
184
+ }
185
+
186
+ , destroy: function (options) {
187
+ options.svgElement.removeEventListener('mousedown', this.mouseDownHandler, false);
188
+ options.svgElement.removeEventListener('mousemove', this.mouseMoveHandler, false);
189
+ options.svgElement.removeEventListener('mouseup', this.mouseUpHandler, false);
190
+ }
191
+ }
192
+ panZoom = svgPanZoom('#mySvgId', {
193
+ zoomEnabled: true
194
+ , controlIconsEnabled: true
195
+ , fit: 1
196
+ , center: 1
197
+ , customEventsHandler: eventsHandler
198
+ })
199
+ };
200
+ await drawDiagram();
201
+ </script>
202
+ </body>
203
+