@diplodoc/mermaid-extension 2.1.1 → 2.1.3

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.
@@ -1,12 +1,117 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
1
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
2
- var __commonJS = (cb, mod) => function __require() {
3
- return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __esm = (fn, res) => function __init() {
6
+ return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
4
7
  };
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
5
21
 
6
22
  // src/runtime/zoom.scss
7
- var require_zoom = __commonJS({
8
- "src/runtime/zoom.scss"(exports, module) {
9
- module.exports = {};
23
+ var zoom_exports = {};
24
+ __export(zoom_exports, {
25
+ css: () => css
26
+ });
27
+ var css;
28
+ var init_zoom = __esm({
29
+ "src/runtime/zoom.scss"() {
30
+ "use strict";
31
+ css = `:root {
32
+ --mermaid-zoom-control-size: 20px;
33
+ --mermaid-zoom-control-pad: 5px;
34
+ --mermaid-zoom-control-color: #000;
35
+ }
36
+
37
+ [data-mermaid-zoom-enabled="1"] {
38
+ position: relative;
39
+ }
40
+ [data-mermaid-zoom-enabled="1"] > svg {
41
+ outline: solid 1px var(--mermaid-zoom-control-color);
42
+ }
43
+
44
+ @keyframes mermaid-zoom-menu-controls-fadein {
45
+ from {
46
+ transform: translateY(-100%);
47
+ }
48
+ to {
49
+ transform: translateY(0);
50
+ }
51
+ }
52
+ .mermaid-zoom-menu {
53
+ position: sticky;
54
+ top: 0;
55
+ height: calc(var(--mermaid-zoom-control-size) * 3 + var(--mermaid-zoom-control-pad) * 4);
56
+ overflow: hidden;
57
+ }
58
+ .mermaid-zoom-menu-controls {
59
+ position: absolute;
60
+ right: 0;
61
+ top: 0;
62
+ height: calc(var(--mermaid-zoom-control-size) * 3 + var(--mermaid-zoom-control-pad) * 4);
63
+ width: calc(var(--mermaid-zoom-control-size) * 3 + var(--mermaid-zoom-control-pad) * 4);
64
+ animation: mermaid-zoom-menu-controls-fadein ease 0.2s;
65
+ }
66
+ .mermaid-zoom-menu-control {
67
+ position: absolute;
68
+ width: var(--mermaid-zoom-control-size);
69
+ height: var(--mermaid-zoom-control-size);
70
+ pointer-events: all;
71
+ cursor: pointer;
72
+ transition: all 0.2s;
73
+ }
74
+ .mermaid-zoom-menu-control:hover {
75
+ transform: scale(1.3);
76
+ }
77
+ .mermaid-zoom-menu-control:active {
78
+ transform: scale(1);
79
+ }
80
+ .mermaid-zoom-menu-control[data-action=up] {
81
+ right: calc(var(--mermaid-zoom-control-size) + var(--mermaid-zoom-control-pad) * 2);
82
+ bottom: calc(var(--mermaid-zoom-control-size) * 2 + var(--mermaid-zoom-control-pad) * 3);
83
+ }
84
+ .mermaid-zoom-menu-control[data-action=down] {
85
+ right: calc(var(--mermaid-zoom-control-size) + var(--mermaid-zoom-control-pad) * 2);
86
+ bottom: var(--mermaid-zoom-control-pad);
87
+ }
88
+ .mermaid-zoom-menu-control[data-action=reset] {
89
+ right: calc(var(--mermaid-zoom-control-size) + var(--mermaid-zoom-control-pad) * 2);
90
+ bottom: calc(var(--mermaid-zoom-control-size) + var(--mermaid-zoom-control-pad) * 2);
91
+ }
92
+ .mermaid-zoom-menu-control[data-action=left] {
93
+ right: calc(var(--mermaid-zoom-control-size) * 2 + var(--mermaid-zoom-control-pad) * 3);
94
+ bottom: calc(var(--mermaid-zoom-control-size) + var(--mermaid-zoom-control-pad) * 2);
95
+ }
96
+ .mermaid-zoom-menu-control[data-action=right] {
97
+ right: var(--mermaid-zoom-control-pad);
98
+ bottom: calc(var(--mermaid-zoom-control-size) + var(--mermaid-zoom-control-pad) * 2);
99
+ }
100
+ .mermaid-zoom-menu-control[data-action=zoomout] {
101
+ right: calc(var(--mermaid-zoom-control-size) * 2 + var(--mermaid-zoom-control-pad) * 3);
102
+ bottom: calc(var(--mermaid-zoom-control-size) * 2 + var(--mermaid-zoom-control-pad) * 3);
103
+ }
104
+ .mermaid-zoom-menu-control[data-action=zoomin] {
105
+ right: var(--mermaid-zoom-control-pad);
106
+ bottom: calc(var(--mermaid-zoom-control-size) * 2 + var(--mermaid-zoom-control-pad) * 3);
107
+ }
108
+ .mermaid-zoom-menu-control svg {
109
+ color: var(--mermaid-zoom-control-color);
110
+ width: var(--mermaid-zoom-control-size);
111
+ height: var(--mermaid-zoom-control-size);
112
+ }
113
+ /*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvbWVybWFpZC1leHRlbnNpb24vbWVybWFpZC1leHRlbnNpb24vc3JjL3J1bnRpbWUiLCJzb3VyY2VzIjpbInpvb20uc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7QUFFQTtFQUNJOzs7QUFJUjtFQUNJO0lBQ0k7O0VBR0o7SUFDSTs7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOztBQUdKO0VBQ0k7O0FBR0o7RUFDSTtFQUNBOztBQUtKO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTtFQUNBOztBQUdKO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7O0FBS0o7RUFDSTtFQUNBOztBQUtKO0VBQ0k7RUFDQTtFQUNBIiwic291cmNlc0NvbnRlbnQiOlsiOnJvb3Qge1xuICAgIC0tbWVybWFpZC16b29tLWNvbnRyb2wtc2l6ZTogMjBweDtcbiAgICAtLW1lcm1haWQtem9vbS1jb250cm9sLXBhZDogNXB4O1xuICAgIC0tbWVybWFpZC16b29tLWNvbnRyb2wtY29sb3I6ICMwMDA7XG59XG5cbltkYXRhLW1lcm1haWQtem9vbS1lbmFibGVkPScxJ10ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICYgPiBzdmcge1xuICAgICAgICBvdXRsaW5lOiBzb2xpZCAxcHggdmFyKC0tbWVybWFpZC16b29tLWNvbnRyb2wtY29sb3IpO1xuICAgIH1cbn1cblxuQGtleWZyYW1lcyBtZXJtYWlkLXpvb20tbWVudS1jb250cm9scy1mYWRlaW4ge1xuICAgIGZyb20ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpO1xuICAgIH1cblxuICAgIHRvIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgIH1cbn1cblxuLm1lcm1haWQtem9vbS1tZW51IHtcbiAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgIHRvcDogMDtcbiAgICBoZWlnaHQ6IGNhbGModmFyKC0tbWVybWFpZC16b29tLWNvbnRyb2wtc2l6ZSkgKiAzICsgdmFyKC0tbWVybWFpZC16b29tLWNvbnRyb2wtcGFkKSAqIDQpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAmLWNvbnRyb2xzIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBoZWlnaHQ6IGNhbGModmFyKC0tbWVybWFpZC16b29tLWNvbnRyb2wtc2l6ZSkgKiAzICsgdmFyKC0tbWVybWFpZC16b29tLWNvbnRyb2wtcGFkKSAqIDQpO1xuICAgICAgICB3aWR0aDogY2FsYyh2YXIoLS1tZXJtYWlkLXpvb20tY29udHJvbC1zaXplKSAqIDMgKyB2YXIoLS1tZXJtYWlkLXpvb20tY29udHJvbC1wYWQpICogNCk7XG4gICAgICAgIGFuaW1hdGlvbjogbWVybWFpZC16b29tLW1lbnUtY29udHJvbHMtZmFkZWluIGVhc2UgMC4ycztcbiAgICB9XG5cbiAgICAmLWNvbnRyb2wge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOiB2YXIoLS1tZXJtYWlkLXpvb20tY29udHJvbC1zaXplKTtcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1tZXJtYWlkLXpvb20tY29udHJvbC1zaXplKTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2RhdGEtYWN0aW9uPSd1cCddIHtcbiAgICAgICAgICAgIHJpZ2h0OiBjYWxjKHZhcigtLW1lcm1haWQtem9vbS1jb250cm9sLXNpemUpICsgdmFyKC0tbWVybWFpZC16b29tLWNvbnRyb2wtcGFkKSAqIDIpO1xuICAgICAgICAgICAgYm90dG9tOiBjYWxjKFxuICAgICAgICAgICAgICAgIHZhcigtLW1lcm1haWQtem9vbS1jb250cm9sLXNpemUpICogMiArIHZhcigtLW1lcm1haWQtem9vbS1jb250cm9sLXBhZCkgKiAzXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkYXRhLWFjdGlvbj0nZG93biddIHtcbiAgICAgICAgICAgIHJpZ2h0OiBjYWxjKHZhcigtLW1lcm1haWQtem9vbS1jb250cm9sLXNpemUpICsgdmFyKC0tbWVybWFpZC16b29tLWNvbnRyb2wtcGFkKSAqIDIpO1xuICAgICAgICAgICAgYm90dG9tOiB2YXIoLS1tZXJtYWlkLXpvb20tY29udHJvbC1wYWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkYXRhLWFjdGlvbj0ncmVzZXQnXSB7XG4gICAgICAgICAgICByaWdodDogY2FsYyh2YXIoLS1tZXJtYWlkLXpvb20tY29udHJvbC1zaXplKSArIHZhcigtLW1lcm1haWQtem9vbS1jb250cm9sLXBhZCkgKiAyKTtcbiAgICAgICAgICAgIGJvdHRvbTogY2FsYyh2YXIoLS1tZXJtYWlkLXpvb20tY29udHJvbC1zaXplKSArIHZhcigtLW1lcm1haWQtem9vbS1jb250cm9sLXBhZCkgKiAyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGF0YS1hY3Rpb249J2xlZnQnXSB7XG4gICAgICAgICAgICByaWdodDogY2FsYyh2YXIoLS1tZXJtYWlkLXpvb20tY29udHJvbC1zaXplKSAqIDIgKyB2YXIoLS1tZXJtYWlkLXpvb20tY29udHJvbC1wYWQpICogMyk7XG4gICAgICAgICAgICBib3R0b206IGNhbGModmFyKC0tbWVybWFpZC16b29tLWNvbnRyb2wtc2l6ZSkgKyB2YXIoLS1tZXJtYWlkLXpvb20tY29udHJvbC1wYWQpICogMik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2RhdGEtYWN0aW9uPSdyaWdodCddIHtcbiAgICAgICAgICAgIHJpZ2h0OiB2YXIoLS1tZXJtYWlkLXpvb20tY29udHJvbC1wYWQpO1xuICAgICAgICAgICAgYm90dG9tOiBjYWxjKHZhcigtLW1lcm1haWQtem9vbS1jb250cm9sLXNpemUpICsgdmFyKC0tbWVybWFpZC16b29tLWNvbnRyb2wtcGFkKSAqIDIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkYXRhLWFjdGlvbj0nem9vbW91dCddIHtcbiAgICAgICAgICAgIHJpZ2h0OiBjYWxjKHZhcigtLW1lcm1haWQtem9vbS1jb250cm9sLXNpemUpICogMiArIHZhcigtLW1lcm1haWQtem9vbS1jb250cm9sLXBhZCkgKiAzKTtcbiAgICAgICAgICAgIGJvdHRvbTogY2FsYyhcbiAgICAgICAgICAgICAgICB2YXIoLS1tZXJtYWlkLXpvb20tY29udHJvbC1zaXplKSAqIDIgKyB2YXIoLS1tZXJtYWlkLXpvb20tY29udHJvbC1wYWQpICogM1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGF0YS1hY3Rpb249J3pvb21pbiddIHtcbiAgICAgICAgICAgIHJpZ2h0OiB2YXIoLS1tZXJtYWlkLXpvb20tY29udHJvbC1wYWQpO1xuICAgICAgICAgICAgYm90dG9tOiBjYWxjKFxuICAgICAgICAgICAgICAgIHZhcigtLW1lcm1haWQtem9vbS1jb250cm9sLXNpemUpICogMiArIHZhcigtLW1lcm1haWQtem9vbS1jb250cm9sLXBhZCkgKiAzXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1tZXJtYWlkLXpvb20tY29udHJvbC1jb2xvcik7XG4gICAgICAgICAgICB3aWR0aDogdmFyKC0tbWVybWFpZC16b29tLWNvbnRyb2wtc2l6ZSk7XG4gICAgICAgICAgICBoZWlnaHQ6IHZhcigtLW1lcm1haWQtem9vbS1jb250cm9sLXNpemUpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19 */`;
114
+ document.head.appendChild(document.createElement("style")).appendChild(document.createTextNode(css));
10
115
  }
11
116
  });
12
117
 
@@ -305,7 +410,7 @@ function bindZoomOptions(element, options) {
305
410
  setZoomable(element, "1");
306
411
  if (_options.inlineStyle !== false && !styleInjected) {
307
412
  styleInjected = true;
308
- require_zoom();
413
+ init_zoom();
309
414
  }
310
415
  for (const key of Object.keys(_options)) {
311
416
  set(element.dataset, key, _options[key]);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/runtime/zoom.scss", "../../src/runtime/index.ts", "../../src/runtime/zoom.ts", "../../src/runtime/zoom-control.ts", "../../node_modules/@gravity-ui/icons/svgs/magnifier-plus.svg", "../../node_modules/@gravity-ui/icons/svgs/magnifier-minus.svg", "../../node_modules/@gravity-ui/icons/svgs/caret-up.svg", "../../node_modules/@gravity-ui/icons/svgs/caret-down.svg", "../../node_modules/@gravity-ui/icons/svgs/caret-left.svg", "../../node_modules/@gravity-ui/icons/svgs/caret-right.svg", "../../node_modules/@gravity-ui/icons/svgs/circle.svg"],
4
- "sourcesContent": [":root {\n --mermaid-zoom-control-size: 20px;\n --mermaid-zoom-control-pad: 5px;\n --mermaid-zoom-control-color: #000;\n}\n\n[data-mermaid-zoom-enabled=\"1\"] {\n position: relative;\n}\n[data-mermaid-zoom-enabled=\"1\"] > svg {\n outline: solid 1px var(--mermaid-zoom-control-color);\n}\n\n@keyframes mermaid-zoom-menu-controls-fadein {\n from {\n transform: translateY(-100%);\n }\n to {\n transform: translateY(0);\n }\n}\n.mermaid-zoom-menu {\n position: sticky;\n top: 0;\n height: calc(var(--mermaid-zoom-control-size) * 3 + var(--mermaid-zoom-control-pad) * 4);\n overflow: hidden;\n}\n.mermaid-zoom-menu-controls {\n position: absolute;\n right: 0;\n top: 0;\n height: calc(var(--mermaid-zoom-control-size) * 3 + var(--mermaid-zoom-control-pad) * 4);\n width: calc(var(--mermaid-zoom-control-size) * 3 + var(--mermaid-zoom-control-pad) * 4);\n animation: mermaid-zoom-menu-controls-fadein ease 0.2s;\n}\n.mermaid-zoom-menu-control {\n position: absolute;\n width: var(--mermaid-zoom-control-size);\n height: var(--mermaid-zoom-control-size);\n pointer-events: all;\n cursor: pointer;\n transition: all 0.2s;\n}\n.mermaid-zoom-menu-control:hover {\n transform: scale(1.3);\n}\n.mermaid-zoom-menu-control:active {\n transform: scale(1);\n}\n.mermaid-zoom-menu-control[data-action=up] {\n right: calc(var(--mermaid-zoom-control-size) + var(--mermaid-zoom-control-pad) * 2);\n bottom: calc(var(--mermaid-zoom-control-size) * 2 + var(--mermaid-zoom-control-pad) * 3);\n}\n.mermaid-zoom-menu-control[data-action=down] {\n right: calc(var(--mermaid-zoom-control-size) + var(--mermaid-zoom-control-pad) * 2);\n bottom: var(--mermaid-zoom-control-pad);\n}\n.mermaid-zoom-menu-control[data-action=reset] {\n right: calc(var(--mermaid-zoom-control-size) + var(--mermaid-zoom-control-pad) * 2);\n bottom: calc(var(--mermaid-zoom-control-size) + var(--mermaid-zoom-control-pad) * 2);\n}\n.mermaid-zoom-menu-control[data-action=left] {\n right: calc(var(--mermaid-zoom-control-size) * 2 + var(--mermaid-zoom-control-pad) * 3);\n bottom: calc(var(--mermaid-zoom-control-size) + var(--mermaid-zoom-control-pad) * 2);\n}\n.mermaid-zoom-menu-control[data-action=right] {\n right: var(--mermaid-zoom-control-pad);\n bottom: calc(var(--mermaid-zoom-control-size) + var(--mermaid-zoom-control-pad) * 2);\n}\n.mermaid-zoom-menu-control[data-action=zoomout] {\n right: calc(var(--mermaid-zoom-control-size) * 2 + var(--mermaid-zoom-control-pad) * 3);\n bottom: calc(var(--mermaid-zoom-control-size) * 2 + var(--mermaid-zoom-control-pad) * 3);\n}\n.mermaid-zoom-menu-control[data-action=zoomin] {\n right: var(--mermaid-zoom-control-pad);\n bottom: calc(var(--mermaid-zoom-control-size) * 2 + var(--mermaid-zoom-control-pad) * 3);\n}\n.mermaid-zoom-menu-control svg {\n color: var(--mermaid-zoom-control-color);\n width: var(--mermaid-zoom-control-size);\n height: var(--mermaid-zoom-control-size);\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvbWVybWFpZC1leHRlbnNpb24vbWVybWFpZC1leHRlbnNpb24vc3JjL3J1bnRpbWUiLCJzb3VyY2VzIjpbInpvb20uc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7QUFFQTtFQUNJOzs7QUFJUjtFQUNJO0lBQ0k7O0VBR0o7SUFDSTs7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOztBQUdKO0VBQ0k7O0FBR0o7RUFDSTtFQUNBOztBQUtKO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTtFQUNBOztBQUdKO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7O0FBS0o7RUFDSTtFQUNBOztBQUtKO0VBQ0k7RUFDQTtFQUNBIiwic291cmNlc0NvbnRlbnQiOlsiOnJvb3Qge1xuICAgIC0tbWVybWFpZC16b29tLWNvbnRyb2wtc2l6ZTogMjBweDtcbiAgICAtLW1lcm1haWQtem9vbS1jb250cm9sLXBhZDogNXB4O1xuICAgIC0tbWVybWFpZC16b29tLWNvbnRyb2wtY29sb3I6ICMwMDA7XG59XG5cbltkYXRhLW1lcm1haWQtem9vbS1lbmFibGVkPScxJ10ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICYgPiBzdmcge1xuICAgICAgICBvdXRsaW5lOiBzb2xpZCAxcHggdmFyKC0tbWVybWFpZC16b29tLWNvbnRyb2wtY29sb3IpO1xuICAgIH1cbn1cblxuQGtleWZyYW1lcyBtZXJtYWlkLXpvb20tbWVudS1jb250cm9scy1mYWRlaW4ge1xuICAgIGZyb20ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpO1xuICAgIH1cblxuICAgIHRvIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgIH1cbn1cblxuLm1lcm1haWQtem9vbS1tZW51IHtcbiAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgIHRvcDogMDtcbiAgICBoZWlnaHQ6IGNhbGModmFyKC0tbWVybWFpZC16b29tLWNvbnRyb2wtc2l6ZSkgKiAzICsgdmFyKC0tbWVybWFpZC16b29tLWNvbnRyb2wtcGFkKSAqIDQpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAmLWNvbnRyb2xzIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBoZWlnaHQ6IGNhbGModmFyKC0tbWVybWFpZC16b29tLWNvbnRyb2wtc2l6ZSkgKiAzICsgdmFyKC0tbWVybWFpZC16b29tLWNvbnRyb2wtcGFkKSAqIDQpO1xuICAgICAgICB3aWR0aDogY2FsYyh2YXIoLS1tZXJtYWlkLXpvb20tY29udHJvbC1zaXplKSAqIDMgKyB2YXIoLS1tZXJtYWlkLXpvb20tY29udHJvbC1wYWQpICogNCk7XG4gICAgICAgIGFuaW1hdGlvbjogbWVybWFpZC16b29tLW1lbnUtY29udHJvbHMtZmFkZWluIGVhc2UgMC4ycztcbiAgICB9XG5cbiAgICAmLWNvbnRyb2wge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOiB2YXIoLS1tZXJtYWlkLXpvb20tY29udHJvbC1zaXplKTtcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1tZXJtYWlkLXpvb20tY29udHJvbC1zaXplKTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2RhdGEtYWN0aW9uPSd1cCddIHtcbiAgICAgICAgICAgIHJpZ2h0OiBjYWxjKHZhcigtLW1lcm1haWQtem9vbS1jb250cm9sLXNpemUpICsgdmFyKC0tbWVybWFpZC16b29tLWNvbnRyb2wtcGFkKSAqIDIpO1xuICAgICAgICAgICAgYm90dG9tOiBjYWxjKFxuICAgICAgICAgICAgICAgIHZhcigtLW1lcm1haWQtem9vbS1jb250cm9sLXNpemUpICogMiArIHZhcigtLW1lcm1haWQtem9vbS1jb250cm9sLXBhZCkgKiAzXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkYXRhLWFjdGlvbj0nZG93biddIHtcbiAgICAgICAgICAgIHJpZ2h0OiBjYWxjKHZhcigtLW1lcm1haWQtem9vbS1jb250cm9sLXNpemUpICsgdmFyKC0tbWVybWFpZC16b29tLWNvbnRyb2wtcGFkKSAqIDIpO1xuICAgICAgICAgICAgYm90dG9tOiB2YXIoLS1tZXJtYWlkLXpvb20tY29udHJvbC1wYWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkYXRhLWFjdGlvbj0ncmVzZXQnXSB7XG4gICAgICAgICAgICByaWdodDogY2FsYyh2YXIoLS1tZXJtYWlkLXpvb20tY29udHJvbC1zaXplKSArIHZhcigtLW1lcm1haWQtem9vbS1jb250cm9sLXBhZCkgKiAyKTtcbiAgICAgICAgICAgIGJvdHRvbTogY2FsYyh2YXIoLS1tZXJtYWlkLXpvb20tY29udHJvbC1zaXplKSArIHZhcigtLW1lcm1haWQtem9vbS1jb250cm9sLXBhZCkgKiAyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGF0YS1hY3Rpb249J2xlZnQnXSB7XG4gICAgICAgICAgICByaWdodDogY2FsYyh2YXIoLS1tZXJtYWlkLXpvb20tY29udHJvbC1zaXplKSAqIDIgKyB2YXIoLS1tZXJtYWlkLXpvb20tY29udHJvbC1wYWQpICogMyk7XG4gICAgICAgICAgICBib3R0b206IGNhbGModmFyKC0tbWVybWFpZC16b29tLWNvbnRyb2wtc2l6ZSkgKyB2YXIoLS1tZXJtYWlkLXpvb20tY29udHJvbC1wYWQpICogMik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2RhdGEtYWN0aW9uPSdyaWdodCddIHtcbiAgICAgICAgICAgIHJpZ2h0OiB2YXIoLS1tZXJtYWlkLXpvb20tY29udHJvbC1wYWQpO1xuICAgICAgICAgICAgYm90dG9tOiBjYWxjKHZhcigtLW1lcm1haWQtem9vbS1jb250cm9sLXNpemUpICsgdmFyKC0tbWVybWFpZC16b29tLWNvbnRyb2wtcGFkKSAqIDIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkYXRhLWFjdGlvbj0nem9vbW91dCddIHtcbiAgICAgICAgICAgIHJpZ2h0OiBjYWxjKHZhcigtLW1lcm1haWQtem9vbS1jb250cm9sLXNpemUpICogMiArIHZhcigtLW1lcm1haWQtem9vbS1jb250cm9sLXBhZCkgKiAzKTtcbiAgICAgICAgICAgIGJvdHRvbTogY2FsYyhcbiAgICAgICAgICAgICAgICB2YXIoLS1tZXJtYWlkLXpvb20tY29udHJvbC1zaXplKSAqIDIgKyB2YXIoLS1tZXJtYWlkLXpvb20tY29udHJvbC1wYWQpICogM1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGF0YS1hY3Rpb249J3pvb21pbiddIHtcbiAgICAgICAgICAgIHJpZ2h0OiB2YXIoLS1tZXJtYWlkLXpvb20tY29udHJvbC1wYWQpO1xuICAgICAgICAgICAgYm90dG9tOiBjYWxjKFxuICAgICAgICAgICAgICAgIHZhcigtLW1lcm1haWQtem9vbS1jb250cm9sLXNpemUpICogMiArIHZhcigtLW1lcm1haWQtem9vbS1jb250cm9sLXBhZCkgKiAzXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1tZXJtYWlkLXpvb20tY29udHJvbC1jb2xvcik7XG4gICAgICAgICAgICB3aWR0aDogdmFyKC0tbWVybWFpZC16b29tLWNvbnRyb2wtc2l6ZSk7XG4gICAgICAgICAgICBoZWlnaHQ6IHZhcigtLW1lcm1haWQtem9vbS1jb250cm9sLXNpemUpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19 */", "import type {ExposedAPI, InitConfig} from '../types';\nimport type {MermaidConfig} from 'mermaid';\n\nimport mermaid from 'mermaid';\nimport dedent from 'ts-dedent';\n\nimport {bindZoomOptions, zoomBehavior} from './zoom';\n\nconst DEFAULT_MERMAID_CONFIG: MermaidConfig = {\n startOnLoad: false,\n // To avoid breaking changes after updating to https://github.com/mermaid-js/mermaid/releases/tag/v11.0.0\n gitGraph: {useMaxWidth: false},\n sankey: {useMaxWidth: false},\n theme: 'forest',\n};\n\nmermaid.initialize(DEFAULT_MERMAID_CONFIG);\n\nconst jsonp = (window.mermaidJsonp = window.mermaidJsonp || []);\nconst queue = jsonp.splice(0, jsonp.length);\n\njsonp.push = function (...args) {\n args.forEach((callback) => {\n queue.push(callback);\n unqueue();\n });\n\n return queue.length;\n};\n\nlet processing = false;\n\nfunction unqueue() {\n if (!processing) {\n next();\n }\n}\n\nasync function next(): Promise<void> {\n processing = true;\n\n const callback = queue.shift();\n if (callback) {\n await callback({\n run: async ({querySelector = '.mermaid', nodes, nonce} = {}) => {\n const nodesList: Element[] = Array.from(\n nodes || document.querySelectorAll(querySelector),\n );\n const {zoom = false} = mermaid.mermaidAPI.getConfig() as InitConfig;\n\n for (const element of nodesList) {\n const id = `mermaid-${Date.now()}`;\n const content = decodeURIComponent(element.getAttribute('data-content') || '');\n let dedentedContent = dedent(content);\n\n if (content.replace(/\\n*$/, '').endsWith(' ')) {\n dedentedContent += ' ';\n }\n const text = dedentedContent.trimStart().replace(/<br\\s*\\/?>/gi, '<br/>');\n\n let svg: string, bindFunctions: ((element: Element) => void) | undefined;\n\n try {\n const result = await mermaid.render(id, text, element);\n svg = result.svg;\n bindFunctions = result.bindFunctions;\n } catch {\n continue;\n }\n\n let svgWithNonce = svg;\n if (nonce) {\n svgWithNonce = svgWithNonce.replace(/<style>/g, `<style nonce=\"${nonce}\">`);\n }\n element.innerHTML = svgWithNonce;\n\n if (bindFunctions) {\n bindFunctions(element);\n }\n\n bindZoomOptions(element as HTMLElement, zoom);\n }\n },\n initialize: (config) => {\n mermaid.initialize({\n ...DEFAULT_MERMAID_CONFIG,\n ...(config as MermaidConfig),\n });\n\n const {zoom} = mermaid.mermaidAPI.getConfig() as InitConfig;\n\n document.removeEventListener('click', zoomBehavior);\n if (zoom) {\n document.addEventListener('click', zoomBehavior);\n }\n },\n render: mermaid.render,\n parseError: mermaid.parseError,\n parse: mermaid.parse,\n setParseErrorHandler: mermaid.setParseErrorHandler,\n registerLayoutLoaders: mermaid.registerLayoutLoaders,\n } as ExposedAPI);\n\n return next();\n }\n\n processing = false;\n}\n\nunqueue();\n", "import type {ZoomOptions} from '../types';\n\nimport * as d3 from 'd3';\n\nimport {attachKeyboard, attachMenu} from './zoom-control';\n\nconst DATA_MERMAID_ZOOM = 'mermaidZoom';\n\nfunction datakey(key: string) {\n return key.replace(/^(.)/, (_, $1) => $1.toUpperCase());\n}\n\nfunction set(dataset: DOMStringMap, key: string, value: unknown) {\n dataset[DATA_MERMAID_ZOOM + datakey(key)] = String(value);\n}\n\nfunction get(dataset: DOMStringMap, key: string) {\n return dataset[DATA_MERMAID_ZOOM + datakey(key)];\n}\n\nconst createInteraction = (svg: Element): HTMLElement => {\n const interaction = document.createElement('div');\n const {width, height} = svg.getBoundingClientRect();\n const style = `top: 0; left: 0; width: ${width}px; height: ${height}px; position: absolute; pointer-events: none;`;\n\n interaction.innerHTML = `<div class=\"mermaid-zoom-interaction\" style=\"${style}\"></div>`;\n\n return interaction.firstElementChild as HTMLElement;\n};\n\nconst enableZoom = (element: HTMLElement, options: ZoomOptions) => {\n const svg = element.querySelector('svg') as SVGSVGElement;\n const {maximumScale} = options;\n const dispose: Function[] = [];\n\n const $svg = d3.select<SVGSVGElement, unknown>(svg);\n\n if (!svg.querySelector('g.zoom-layer')) {\n const layer = document.createElementNS('http://www.w3.org/2000/svg', 'g');\n layer.setAttribute('class', 'zoom-layer');\n Array.from(svg.childNodes).forEach((child) => {\n layer.appendChild(child);\n });\n svg.appendChild(layer);\n }\n\n const $inner = $svg.select<SVGGElement>('g.zoom-layer');\n const interaction = createInteraction(svg);\n\n const zoom = d3\n .zoom<SVGSVGElement, unknown>()\n .on('zoom', (event: ZoomEvent) => $inner.attr('transform', String(event.transform)))\n .scaleExtent([1, maximumScale]);\n\n $svg.call(zoom);\n dispose.push(() => $svg.on('.zoom', null));\n\n if (options.resetOnBlur) {\n dispose.push(() => {\n $svg.call(zoom.transform, d3.zoomIdentity);\n });\n }\n\n if (options.showMenu) {\n dispose.push(attachMenu(interaction, $svg, $inner, zoom));\n }\n\n if (options.bindKeys) {\n dispose.push(attachKeyboard($svg, $inner, zoom));\n }\n\n element.appendChild(interaction);\n dispose.push(() => element.removeChild(interaction));\n\n return () => dispose.forEach((action) => action());\n};\n\nfunction getZoomable(element: HTMLElement) {\n return element.closest('[data-mermaid-zoom-allowed=\"1\"]') as HTMLElement | null;\n}\n\nfunction getZoomableSvg(element: HTMLElement) {\n return element.closest('[data-mermaid-zoom-allowed=\"1\"] > svg') as HTMLElement | null;\n}\n\nfunction getActiveSvg(element: HTMLElement) {\n return element.closest('[data-mermaid-zoom-enabled=\"1\"] > svg') as HTMLElement | null;\n}\n\nfunction getActiveInteraction(element: HTMLElement) {\n return element.closest(\n '[data-mermaid-zoom-enabled=\"1\"] > .mermaid-zoom-interaction',\n ) as HTMLElement | null;\n}\n\nfunction setZoomable(element: HTMLElement, value: string) {\n set(element.dataset, 'allowed', value);\n}\n\nfunction isZoomEnabled(element: HTMLElement) {\n return get(element.dataset, 'enabled') === '1';\n}\n\nfunction setZoomEnabled(element: HTMLElement, value: string) {\n set(element.dataset, 'enabled', value);\n}\n\nexport function zoomBehavior(event: Event) {\n const element = getZoomable(event.target as HTMLElement);\n const svg = getZoomableSvg(event.target as HTMLElement);\n\n if (!element || !svg || isZoomEnabled(element as HTMLElement)) {\n return;\n }\n\n setZoomEnabled(element, '1');\n\n const options = getZoomOptions(element);\n const disableZoom = enableZoom(element, options);\n const onOuterClick = (event: Event) => {\n const target = event.target as HTMLElement;\n if (!getActiveSvg(target) && !getActiveInteraction(target)) {\n disableZoom();\n setZoomEnabled(element, '0');\n document.removeEventListener('mousedown', onOuterClick, true);\n }\n };\n\n document.addEventListener('mousedown', onOuterClick, true);\n}\n\nfunction getZoomOptions(element: HTMLElement): ZoomOptions {\n return {\n maximumScale: Number(get(element.dataset, 'maximumScale')),\n resetOnBlur: get(element.dataset, 'resetOnBlur') === 'true',\n showMenu: get(element.dataset, 'showMenu') === 'true',\n bindKeys: get(element.dataset, 'bindKeys') === 'true',\n };\n}\n\nlet styleInjected = false;\nexport function bindZoomOptions(element: HTMLElement, options: Partial<ZoomOptions> | boolean) {\n const _options: ZoomOptions = Object.assign(\n {\n maximumScale: 5,\n resetOnBlur: false,\n showMenu: false,\n bindKeys: false,\n },\n options,\n );\n\n if (options === false) {\n setZoomable(element, '0');\n setZoomEnabled(element, '0');\n return;\n }\n\n setZoomable(element, '1');\n if (_options.inlineStyle !== false && !styleInjected) {\n styleInjected = true;\n require('./zoom.scss');\n }\n\n for (const key of Object.keys(_options)) {\n set(element.dataset, key, _options[key as keyof typeof _options]);\n }\n}\n", "import * as d3 from 'd3';\nimport MagnifierPlusIcon from '@gravity-ui/icons/svgs/magnifier-plus.svg';\nimport MagnifierMinusIcon from '@gravity-ui/icons/svgs/magnifier-minus.svg';\nimport CaretUpIcon from '@gravity-ui/icons/svgs/caret-up.svg';\nimport CaretDownIcon from '@gravity-ui/icons/svgs/caret-down.svg';\nimport CaretLeftIcon from '@gravity-ui/icons/svgs/caret-left.svg';\nimport CaretRightIcon from '@gravity-ui/icons/svgs/caret-right.svg';\nimport CircleIcon from '@gravity-ui/icons/svgs/circle.svg';\n\nconst ZOOM_SPEED = 1;\nconst MOVE_SPEED = 500;\nconst CONTROLS_CLASS = 'mermaid-zoom-menu-control';\nconst CONTROLS: Record<string, Control> = {\n up: ['move up', CaretUpIcon, ['KeyW', 'w'], [0, 0, 1]],\n down: ['move down', CaretDownIcon, ['KeyS', 's'], [0, 0, -1]],\n left: ['move left', CaretLeftIcon, ['KeyA', 'a'], [0, 1, 0]],\n right: ['move right', CaretRightIcon, ['KeyD', 'd'], [0, -1, 0]],\n zoomin: ['zoom in', MagnifierPlusIcon, ['KeyE', 'e'], [1, 0, 0]],\n zoomout: ['zoom out', MagnifierMinusIcon, ['KeyQ', 'q'], [-1, 0, 0]],\n reset: ['reset', CircleIcon, ['KeyR', 'r'], d3.zoomIdentity],\n};\n\ntype Transform = [number, number, number];\ntype Control = [string, string, [string, string], Transform | d3.ZoomTransform];\ntype Action = keyof typeof CONTROLS;\n\nconst raf = () => new Promise((resolve) => requestAnimationFrame(resolve));\nconst sum = (a1: number[], a2: number[]) => a1.map((item, index) => item + a2[index]);\n\nconst transitions = new WeakMap();\nconst transition = ($svg: SVGSelection, $inner: GSelection, zoom: Zoom) => {\n if (transitions.has(zoom)) {\n return transitions.get(zoom);\n }\n\n const actions = new Set<Action>();\n let loop: Promise<void> | null = null;\n\n const iterarte = async () => {\n while (actions.size) {\n const t = Date.now();\n\n let [dk, dx, dy] = [0, 0, 0];\n for (const action of actions) {\n const d = CONTROLS[action][3];\n if (d === d3.zoomIdentity) {\n try {\n await $svg.transition().call(zoom.transform, d3.zoomIdentity).end();\n } catch {}\n } else {\n [dk, dx, dy] = sum([dk, dx, dy], d as Transform);\n }\n }\n\n await raf();\n\n const {k} = d3.zoomTransform($inner.node() as Element);\n const dt = (Date.now() - t) / 1000;\n\n [dk, dx, dy] = [dk * dt * ZOOM_SPEED, dx * dt * MOVE_SPEED, dy * dt * MOVE_SPEED];\n\n if (dx || dy) {\n zoom.translateBy($svg, dx, dy);\n }\n\n if (dk) {\n zoom.scaleTo($svg, k + dk);\n }\n }\n };\n\n transitions.set(zoom, {\n add(action: Action) {\n actions.add(action);\n\n if (!loop) {\n loop = iterarte().finally(() => {\n loop = null;\n });\n }\n },\n\n delete(action: Action) {\n actions.delete(action);\n },\n });\n\n return transitions.get(zoom);\n};\n\nexport const attachKeyboard = ($svg: SVGSelection, $inner: GSelection, zoom: Zoom) => {\n const ts = transition($svg, $inner, zoom);\n\n const keys: Record<string, Action> = Object.keys(CONTROLS).reduce(\n (acc, key) => {\n const control = CONTROLS[key] as Control;\n const bind = control[2][0];\n\n acc[bind] = key;\n\n return acc;\n },\n {} as Record<string, Action>,\n );\n\n const handleKeydown = (event: KeyboardEvent) => {\n if (event.altKey || event.ctrlKey || event.shiftKey || event.metaKey) {\n return;\n }\n\n const action = keys[event.code];\n if (action) {\n event.preventDefault();\n ts.add(action);\n }\n };\n\n const handleKeyup = (event: KeyboardEvent) => {\n const action = keys[event.code];\n if (action) {\n event.preventDefault();\n ts.delete(action);\n }\n };\n\n document.addEventListener('keydown', handleKeydown);\n document.addEventListener('keyup', handleKeyup);\n\n return () => {\n document.removeEventListener('keydown', handleKeydown);\n document.removeEventListener('keyup', handleKeyup);\n };\n};\n\nexport const attachMenu = (\n container: HTMLElement,\n $svg: SVGSelection,\n $inner: GSelection,\n zoom: Zoom,\n) => {\n const ts = transition($svg, $inner, zoom);\n\n const build = document.createElement('div');\n const buttons = Object.keys(CONTROLS)\n .map((key) => [key, ...CONTROLS[key]])\n .reduce(\n (acc, [name, title, icon]) =>\n acc +\n `\n <div class=\"${CONTROLS_CLASS}\" title=\"${title}\" data-action=\"${name}\">\n ${icon}\n </div>`,\n '',\n );\n\n build.innerHTML = `\n <div class=\"mermaid-zoom-menu\">\n <div class=\"mermaid-zoom-menu-controls\">\n ${buttons}\n </div>\n </div>\n `;\n\n const menu = build.firstElementChild as HTMLElement;\n\n let controlActive: Action | null = null;\n const resetTransition = () => {\n ts.delete(controlActive);\n controlActive = null;\n document.removeEventListener('mouseup', resetTransition, true);\n };\n\n const handleControlClick = async (event: MouseEvent) => {\n // Disable external text selection\n if (event.detail > 1) {\n event.preventDefault();\n }\n\n const element = (event.target as HTMLElement).closest('.mermaid-zoom-menu-control');\n\n if (!element) {\n return;\n }\n\n controlActive = (element as HTMLElement).dataset.action as Action;\n ts.add(controlActive as Action);\n document.addEventListener('mouseup', resetTransition, true);\n };\n\n menu.addEventListener('mousedown', handleControlClick);\n container.appendChild(menu);\n\n return () => {\n resetTransition();\n container.removeChild(menu);\n menu.removeEventListener('mousedown', handleControlClick);\n };\n};\n", "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\" viewBox=\"0 0 16 16\"><path fill=\"currentColor\" fill-rule=\"evenodd\" d=\"M6.75 11a4.25 4.25 0 1 0 0-8.5 4.25 4.25 0 0 0 0 8.5m0 1.5a5.73 5.73 0 0 0 3.501-1.188l2.719 2.718a.75.75 0 1 0 1.06-1.06l-2.718-2.719A5.75 5.75 0 1 0 6.75 12.5m.75-7.75a.75.75 0 0 0-1.5 0V6H4.75a.75.75 0 0 0 0 1.5H6v1.25a.75.75 0 0 0 1.5 0V7.5h1.25a.75.75 0 0 0 0-1.5H7.5z\" clip-rule=\"evenodd\"/></svg>", "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\" viewBox=\"0 0 16 16\"><path fill=\"currentColor\" fill-rule=\"evenodd\" d=\"M6.75 11a4.25 4.25 0 1 0 0-8.5 4.25 4.25 0 0 0 0 8.5m0 1.5a5.73 5.73 0 0 0 3.501-1.188l2.719 2.718a.75.75 0 1 0 1.06-1.06l-2.718-2.719A5.75 5.75 0 1 0 6.75 12.5m-2-6.5a.75.75 0 0 0 0 1.5h4a.75.75 0 0 0 0-1.5z\" clip-rule=\"evenodd\"/></svg>", "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\" viewBox=\"0 0 16 16\"><path fill=\"currentColor\" fill-rule=\"evenodd\" d=\"M11.823 9.295a.73.73 0 0 1-.552 1.205H4.729a.73.73 0 0 1-.552-1.205L7.2 5.786a1 1 0 0 1 .757-.347h.084a1 1 0 0 1 .757.347z\" clip-rule=\"evenodd\"/></svg>", "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\" viewBox=\"0 0 16 16\"><path fill=\"currentColor\" fill-rule=\"evenodd\" d=\"M4.177 6.705A.73.73 0 0 1 4.729 5.5h6.542a.73.73 0 0 1 .552 1.205L8.8 10.214a1 1 0 0 1-.757.347h-.084a1 1 0 0 1-.757-.347z\" clip-rule=\"evenodd\"/></svg>", "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\" viewBox=\"0 0 16 16\"><path fill=\"currentColor\" fill-rule=\"evenodd\" d=\"M9.295 4.177a.73.73 0 0 1 1.205.552v6.542a.73.73 0 0 1-1.205.552L5.786 8.8a1 1 0 0 1-.347-.757v-.084a1 1 0 0 1 .347-.757z\" clip-rule=\"evenodd\"/></svg>", "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\" viewBox=\"0 0 16 16\"><path fill=\"currentColor\" fill-rule=\"evenodd\" d=\"M6.705 11.823a.73.73 0 0 1-1.205-.552V4.729a.73.73 0 0 1 1.205-.552L10.214 7.2a1 1 0 0 1 .347.757v.084a1 1 0 0 1-.347.757z\" clip-rule=\"evenodd\"/></svg>", "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\" viewBox=\"0 0 16 16\"><path fill=\"currentColor\" fill-rule=\"evenodd\" d=\"M8 13.5a5.5 5.5 0 1 0 0-11 5.5 5.5 0 0 0 0 11M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14\" clip-rule=\"evenodd\"/></svg>"],
5
- "mappings": "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",
4
+ "sourcesContent": ["const css = `:root {\n --mermaid-zoom-control-size: 20px;\n --mermaid-zoom-control-pad: 5px;\n --mermaid-zoom-control-color: #000;\n}\n\n[data-mermaid-zoom-enabled=\"1\"] {\n position: relative;\n}\n[data-mermaid-zoom-enabled=\"1\"] > svg {\n outline: solid 1px var(--mermaid-zoom-control-color);\n}\n\n@keyframes mermaid-zoom-menu-controls-fadein {\n from {\n transform: translateY(-100%);\n }\n to {\n transform: translateY(0);\n }\n}\n.mermaid-zoom-menu {\n position: sticky;\n top: 0;\n height: calc(var(--mermaid-zoom-control-size) * 3 + var(--mermaid-zoom-control-pad) * 4);\n overflow: hidden;\n}\n.mermaid-zoom-menu-controls {\n position: absolute;\n right: 0;\n top: 0;\n height: calc(var(--mermaid-zoom-control-size) * 3 + var(--mermaid-zoom-control-pad) * 4);\n width: calc(var(--mermaid-zoom-control-size) * 3 + var(--mermaid-zoom-control-pad) * 4);\n animation: mermaid-zoom-menu-controls-fadein ease 0.2s;\n}\n.mermaid-zoom-menu-control {\n position: absolute;\n width: var(--mermaid-zoom-control-size);\n height: var(--mermaid-zoom-control-size);\n pointer-events: all;\n cursor: pointer;\n transition: all 0.2s;\n}\n.mermaid-zoom-menu-control:hover {\n transform: scale(1.3);\n}\n.mermaid-zoom-menu-control:active {\n transform: scale(1);\n}\n.mermaid-zoom-menu-control[data-action=up] {\n right: calc(var(--mermaid-zoom-control-size) + var(--mermaid-zoom-control-pad) * 2);\n bottom: calc(var(--mermaid-zoom-control-size) * 2 + var(--mermaid-zoom-control-pad) * 3);\n}\n.mermaid-zoom-menu-control[data-action=down] {\n right: calc(var(--mermaid-zoom-control-size) + var(--mermaid-zoom-control-pad) * 2);\n bottom: var(--mermaid-zoom-control-pad);\n}\n.mermaid-zoom-menu-control[data-action=reset] {\n right: calc(var(--mermaid-zoom-control-size) + var(--mermaid-zoom-control-pad) * 2);\n bottom: calc(var(--mermaid-zoom-control-size) + var(--mermaid-zoom-control-pad) * 2);\n}\n.mermaid-zoom-menu-control[data-action=left] {\n right: calc(var(--mermaid-zoom-control-size) * 2 + var(--mermaid-zoom-control-pad) * 3);\n bottom: calc(var(--mermaid-zoom-control-size) + var(--mermaid-zoom-control-pad) * 2);\n}\n.mermaid-zoom-menu-control[data-action=right] {\n right: var(--mermaid-zoom-control-pad);\n bottom: calc(var(--mermaid-zoom-control-size) + var(--mermaid-zoom-control-pad) * 2);\n}\n.mermaid-zoom-menu-control[data-action=zoomout] {\n right: calc(var(--mermaid-zoom-control-size) * 2 + var(--mermaid-zoom-control-pad) * 3);\n bottom: calc(var(--mermaid-zoom-control-size) * 2 + var(--mermaid-zoom-control-pad) * 3);\n}\n.mermaid-zoom-menu-control[data-action=zoomin] {\n right: var(--mermaid-zoom-control-pad);\n bottom: calc(var(--mermaid-zoom-control-size) * 2 + var(--mermaid-zoom-control-pad) * 3);\n}\n.mermaid-zoom-menu-control svg {\n color: var(--mermaid-zoom-control-color);\n width: var(--mermaid-zoom-control-size);\n height: var(--mermaid-zoom-control-size);\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvbWVybWFpZC1leHRlbnNpb24vbWVybWFpZC1leHRlbnNpb24vc3JjL3J1bnRpbWUiLCJzb3VyY2VzIjpbInpvb20uc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7QUFFQTtFQUNJOzs7QUFJUjtFQUNJO0lBQ0k7O0VBR0o7SUFDSTs7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOztBQUdKO0VBQ0k7O0FBR0o7RUFDSTtFQUNBOztBQUtKO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTtFQUNBOztBQUdKO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7O0FBS0o7RUFDSTtFQUNBOztBQUtKO0VBQ0k7RUFDQTtFQUNBIiwic291cmNlc0NvbnRlbnQiOlsiOnJvb3Qge1xuICAgIC0tbWVybWFpZC16b29tLWNvbnRyb2wtc2l6ZTogMjBweDtcbiAgICAtLW1lcm1haWQtem9vbS1jb250cm9sLXBhZDogNXB4O1xuICAgIC0tbWVybWFpZC16b29tLWNvbnRyb2wtY29sb3I6ICMwMDA7XG59XG5cbltkYXRhLW1lcm1haWQtem9vbS1lbmFibGVkPScxJ10ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICYgPiBzdmcge1xuICAgICAgICBvdXRsaW5lOiBzb2xpZCAxcHggdmFyKC0tbWVybWFpZC16b29tLWNvbnRyb2wtY29sb3IpO1xuICAgIH1cbn1cblxuQGtleWZyYW1lcyBtZXJtYWlkLXpvb20tbWVudS1jb250cm9scy1mYWRlaW4ge1xuICAgIGZyb20ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpO1xuICAgIH1cblxuICAgIHRvIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgIH1cbn1cblxuLm1lcm1haWQtem9vbS1tZW51IHtcbiAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgIHRvcDogMDtcbiAgICBoZWlnaHQ6IGNhbGModmFyKC0tbWVybWFpZC16b29tLWNvbnRyb2wtc2l6ZSkgKiAzICsgdmFyKC0tbWVybWFpZC16b29tLWNvbnRyb2wtcGFkKSAqIDQpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAmLWNvbnRyb2xzIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBoZWlnaHQ6IGNhbGModmFyKC0tbWVybWFpZC16b29tLWNvbnRyb2wtc2l6ZSkgKiAzICsgdmFyKC0tbWVybWFpZC16b29tLWNvbnRyb2wtcGFkKSAqIDQpO1xuICAgICAgICB3aWR0aDogY2FsYyh2YXIoLS1tZXJtYWlkLXpvb20tY29udHJvbC1zaXplKSAqIDMgKyB2YXIoLS1tZXJtYWlkLXpvb20tY29udHJvbC1wYWQpICogNCk7XG4gICAgICAgIGFuaW1hdGlvbjogbWVybWFpZC16b29tLW1lbnUtY29udHJvbHMtZmFkZWluIGVhc2UgMC4ycztcbiAgICB9XG5cbiAgICAmLWNvbnRyb2wge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOiB2YXIoLS1tZXJtYWlkLXpvb20tY29udHJvbC1zaXplKTtcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1tZXJtYWlkLXpvb20tY29udHJvbC1zaXplKTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2RhdGEtYWN0aW9uPSd1cCddIHtcbiAgICAgICAgICAgIHJpZ2h0OiBjYWxjKHZhcigtLW1lcm1haWQtem9vbS1jb250cm9sLXNpemUpICsgdmFyKC0tbWVybWFpZC16b29tLWNvbnRyb2wtcGFkKSAqIDIpO1xuICAgICAgICAgICAgYm90dG9tOiBjYWxjKFxuICAgICAgICAgICAgICAgIHZhcigtLW1lcm1haWQtem9vbS1jb250cm9sLXNpemUpICogMiArIHZhcigtLW1lcm1haWQtem9vbS1jb250cm9sLXBhZCkgKiAzXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkYXRhLWFjdGlvbj0nZG93biddIHtcbiAgICAgICAgICAgIHJpZ2h0OiBjYWxjKHZhcigtLW1lcm1haWQtem9vbS1jb250cm9sLXNpemUpICsgdmFyKC0tbWVybWFpZC16b29tLWNvbnRyb2wtcGFkKSAqIDIpO1xuICAgICAgICAgICAgYm90dG9tOiB2YXIoLS1tZXJtYWlkLXpvb20tY29udHJvbC1wYWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkYXRhLWFjdGlvbj0ncmVzZXQnXSB7XG4gICAgICAgICAgICByaWdodDogY2FsYyh2YXIoLS1tZXJtYWlkLXpvb20tY29udHJvbC1zaXplKSArIHZhcigtLW1lcm1haWQtem9vbS1jb250cm9sLXBhZCkgKiAyKTtcbiAgICAgICAgICAgIGJvdHRvbTogY2FsYyh2YXIoLS1tZXJtYWlkLXpvb20tY29udHJvbC1zaXplKSArIHZhcigtLW1lcm1haWQtem9vbS1jb250cm9sLXBhZCkgKiAyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGF0YS1hY3Rpb249J2xlZnQnXSB7XG4gICAgICAgICAgICByaWdodDogY2FsYyh2YXIoLS1tZXJtYWlkLXpvb20tY29udHJvbC1zaXplKSAqIDIgKyB2YXIoLS1tZXJtYWlkLXpvb20tY29udHJvbC1wYWQpICogMyk7XG4gICAgICAgICAgICBib3R0b206IGNhbGModmFyKC0tbWVybWFpZC16b29tLWNvbnRyb2wtc2l6ZSkgKyB2YXIoLS1tZXJtYWlkLXpvb20tY29udHJvbC1wYWQpICogMik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2RhdGEtYWN0aW9uPSdyaWdodCddIHtcbiAgICAgICAgICAgIHJpZ2h0OiB2YXIoLS1tZXJtYWlkLXpvb20tY29udHJvbC1wYWQpO1xuICAgICAgICAgICAgYm90dG9tOiBjYWxjKHZhcigtLW1lcm1haWQtem9vbS1jb250cm9sLXNpemUpICsgdmFyKC0tbWVybWFpZC16b29tLWNvbnRyb2wtcGFkKSAqIDIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkYXRhLWFjdGlvbj0nem9vbW91dCddIHtcbiAgICAgICAgICAgIHJpZ2h0OiBjYWxjKHZhcigtLW1lcm1haWQtem9vbS1jb250cm9sLXNpemUpICogMiArIHZhcigtLW1lcm1haWQtem9vbS1jb250cm9sLXBhZCkgKiAzKTtcbiAgICAgICAgICAgIGJvdHRvbTogY2FsYyhcbiAgICAgICAgICAgICAgICB2YXIoLS1tZXJtYWlkLXpvb20tY29udHJvbC1zaXplKSAqIDIgKyB2YXIoLS1tZXJtYWlkLXpvb20tY29udHJvbC1wYWQpICogM1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGF0YS1hY3Rpb249J3pvb21pbiddIHtcbiAgICAgICAgICAgIHJpZ2h0OiB2YXIoLS1tZXJtYWlkLXpvb20tY29udHJvbC1wYWQpO1xuICAgICAgICAgICAgYm90dG9tOiBjYWxjKFxuICAgICAgICAgICAgICAgIHZhcigtLW1lcm1haWQtem9vbS1jb250cm9sLXNpemUpICogMiArIHZhcigtLW1lcm1haWQtem9vbS1jb250cm9sLXBhZCkgKiAzXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1tZXJtYWlkLXpvb20tY29udHJvbC1jb2xvcik7XG4gICAgICAgICAgICB3aWR0aDogdmFyKC0tbWVybWFpZC16b29tLWNvbnRyb2wtc2l6ZSk7XG4gICAgICAgICAgICBoZWlnaHQ6IHZhcigtLW1lcm1haWQtem9vbS1jb250cm9sLXNpemUpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19 */`;\ndocument.head\n .appendChild(document.createElement(\"style\"))\n .appendChild(document.createTextNode(css));\nexport {css};\n", "import type {ExposedAPI, InitConfig} from '../types';\nimport type {MermaidConfig} from 'mermaid';\n\nimport mermaid from 'mermaid';\nimport dedent from 'ts-dedent';\n\nimport {bindZoomOptions, zoomBehavior} from './zoom';\n\nconst DEFAULT_MERMAID_CONFIG: MermaidConfig = {\n startOnLoad: false,\n // To avoid breaking changes after updating to https://github.com/mermaid-js/mermaid/releases/tag/v11.0.0\n gitGraph: {useMaxWidth: false},\n sankey: {useMaxWidth: false},\n theme: 'forest',\n};\n\nmermaid.initialize(DEFAULT_MERMAID_CONFIG);\n\nconst jsonp = (window.mermaidJsonp = window.mermaidJsonp || []);\nconst queue = jsonp.splice(0, jsonp.length);\n\njsonp.push = function (...args) {\n args.forEach((callback) => {\n queue.push(callback);\n unqueue();\n });\n\n return queue.length;\n};\n\nlet processing = false;\n\nfunction unqueue() {\n if (!processing) {\n next();\n }\n}\n\nasync function next(): Promise<void> {\n processing = true;\n\n const callback = queue.shift();\n if (callback) {\n await callback({\n run: async ({querySelector = '.mermaid', nodes, nonce} = {}) => {\n const nodesList: Element[] = Array.from(\n nodes || document.querySelectorAll(querySelector),\n );\n const {zoom = false} = mermaid.mermaidAPI.getConfig() as InitConfig;\n\n for (const element of nodesList) {\n const id = `mermaid-${Date.now()}`;\n const content = decodeURIComponent(element.getAttribute('data-content') || '');\n let dedentedContent = dedent(content);\n\n if (content.replace(/\\n*$/, '').endsWith(' ')) {\n dedentedContent += ' ';\n }\n const text = dedentedContent.trimStart().replace(/<br\\s*\\/?>/gi, '<br/>');\n\n let svg: string, bindFunctions: ((element: Element) => void) | undefined;\n\n try {\n const result = await mermaid.render(id, text, element);\n svg = result.svg;\n bindFunctions = result.bindFunctions;\n } catch {\n continue;\n }\n\n let svgWithNonce = svg;\n if (nonce) {\n svgWithNonce = svgWithNonce.replace(/<style>/g, `<style nonce=\"${nonce}\">`);\n }\n element.innerHTML = svgWithNonce;\n\n if (bindFunctions) {\n bindFunctions(element);\n }\n\n bindZoomOptions(element as HTMLElement, zoom);\n }\n },\n initialize: (config) => {\n mermaid.initialize({\n ...DEFAULT_MERMAID_CONFIG,\n ...(config as MermaidConfig),\n });\n\n const {zoom} = mermaid.mermaidAPI.getConfig() as InitConfig;\n\n document.removeEventListener('click', zoomBehavior);\n if (zoom) {\n document.addEventListener('click', zoomBehavior);\n }\n },\n render: mermaid.render,\n parseError: mermaid.parseError,\n parse: mermaid.parse,\n setParseErrorHandler: mermaid.setParseErrorHandler,\n registerLayoutLoaders: mermaid.registerLayoutLoaders,\n } as ExposedAPI);\n\n return next();\n }\n\n processing = false;\n}\n\nunqueue();\n", "import type {ZoomOptions} from '../types';\n\nimport * as d3 from 'd3';\n\nimport {attachKeyboard, attachMenu} from './zoom-control';\n\nconst DATA_MERMAID_ZOOM = 'mermaidZoom';\n\nfunction datakey(key: string) {\n return key.replace(/^(.)/, (_, $1) => $1.toUpperCase());\n}\n\nfunction set(dataset: DOMStringMap, key: string, value: unknown) {\n dataset[DATA_MERMAID_ZOOM + datakey(key)] = String(value);\n}\n\nfunction get(dataset: DOMStringMap, key: string) {\n return dataset[DATA_MERMAID_ZOOM + datakey(key)];\n}\n\nconst createInteraction = (svg: Element): HTMLElement => {\n const interaction = document.createElement('div');\n const {width, height} = svg.getBoundingClientRect();\n const style = `top: 0; left: 0; width: ${width}px; height: ${height}px; position: absolute; pointer-events: none;`;\n\n interaction.innerHTML = `<div class=\"mermaid-zoom-interaction\" style=\"${style}\"></div>`;\n\n return interaction.firstElementChild as HTMLElement;\n};\n\nconst enableZoom = (element: HTMLElement, options: ZoomOptions) => {\n const svg = element.querySelector('svg') as SVGSVGElement;\n const {maximumScale} = options;\n const dispose: Function[] = [];\n\n const $svg = d3.select<SVGSVGElement, unknown>(svg);\n\n if (!svg.querySelector('g.zoom-layer')) {\n const layer = document.createElementNS('http://www.w3.org/2000/svg', 'g');\n layer.setAttribute('class', 'zoom-layer');\n Array.from(svg.childNodes).forEach((child) => {\n layer.appendChild(child);\n });\n svg.appendChild(layer);\n }\n\n const $inner = $svg.select<SVGGElement>('g.zoom-layer');\n const interaction = createInteraction(svg);\n\n const zoom = d3\n .zoom<SVGSVGElement, unknown>()\n .on('zoom', (event: ZoomEvent) => $inner.attr('transform', String(event.transform)))\n .scaleExtent([1, maximumScale]);\n\n $svg.call(zoom);\n dispose.push(() => $svg.on('.zoom', null));\n\n if (options.resetOnBlur) {\n dispose.push(() => {\n $svg.call(zoom.transform, d3.zoomIdentity);\n });\n }\n\n if (options.showMenu) {\n dispose.push(attachMenu(interaction, $svg, $inner, zoom));\n }\n\n if (options.bindKeys) {\n dispose.push(attachKeyboard($svg, $inner, zoom));\n }\n\n element.appendChild(interaction);\n dispose.push(() => element.removeChild(interaction));\n\n return () => dispose.forEach((action) => action());\n};\n\nfunction getZoomable(element: HTMLElement) {\n return element.closest('[data-mermaid-zoom-allowed=\"1\"]') as HTMLElement | null;\n}\n\nfunction getZoomableSvg(element: HTMLElement) {\n return element.closest('[data-mermaid-zoom-allowed=\"1\"] > svg') as HTMLElement | null;\n}\n\nfunction getActiveSvg(element: HTMLElement) {\n return element.closest('[data-mermaid-zoom-enabled=\"1\"] > svg') as HTMLElement | null;\n}\n\nfunction getActiveInteraction(element: HTMLElement) {\n return element.closest(\n '[data-mermaid-zoom-enabled=\"1\"] > .mermaid-zoom-interaction',\n ) as HTMLElement | null;\n}\n\nfunction setZoomable(element: HTMLElement, value: string) {\n set(element.dataset, 'allowed', value);\n}\n\nfunction isZoomEnabled(element: HTMLElement) {\n return get(element.dataset, 'enabled') === '1';\n}\n\nfunction setZoomEnabled(element: HTMLElement, value: string) {\n set(element.dataset, 'enabled', value);\n}\n\nexport function zoomBehavior(event: Event) {\n const element = getZoomable(event.target as HTMLElement);\n const svg = getZoomableSvg(event.target as HTMLElement);\n\n if (!element || !svg || isZoomEnabled(element as HTMLElement)) {\n return;\n }\n\n setZoomEnabled(element, '1');\n\n const options = getZoomOptions(element);\n const disableZoom = enableZoom(element, options);\n const onOuterClick = (event: Event) => {\n const target = event.target as HTMLElement;\n if (!getActiveSvg(target) && !getActiveInteraction(target)) {\n disableZoom();\n setZoomEnabled(element, '0');\n document.removeEventListener('mousedown', onOuterClick, true);\n }\n };\n\n document.addEventListener('mousedown', onOuterClick, true);\n}\n\nfunction getZoomOptions(element: HTMLElement): ZoomOptions {\n return {\n maximumScale: Number(get(element.dataset, 'maximumScale')),\n resetOnBlur: get(element.dataset, 'resetOnBlur') === 'true',\n showMenu: get(element.dataset, 'showMenu') === 'true',\n bindKeys: get(element.dataset, 'bindKeys') === 'true',\n };\n}\n\nlet styleInjected = false;\nexport function bindZoomOptions(element: HTMLElement, options: Partial<ZoomOptions> | boolean) {\n const _options: ZoomOptions = Object.assign(\n {\n maximumScale: 5,\n resetOnBlur: false,\n showMenu: false,\n bindKeys: false,\n },\n options,\n );\n\n if (options === false) {\n setZoomable(element, '0');\n setZoomEnabled(element, '0');\n return;\n }\n\n setZoomable(element, '1');\n if (_options.inlineStyle !== false && !styleInjected) {\n styleInjected = true;\n require('./zoom.scss');\n }\n\n for (const key of Object.keys(_options)) {\n set(element.dataset, key, _options[key as keyof typeof _options]);\n }\n}\n", "import * as d3 from 'd3';\nimport MagnifierPlusIcon from '@gravity-ui/icons/svgs/magnifier-plus.svg';\nimport MagnifierMinusIcon from '@gravity-ui/icons/svgs/magnifier-minus.svg';\nimport CaretUpIcon from '@gravity-ui/icons/svgs/caret-up.svg';\nimport CaretDownIcon from '@gravity-ui/icons/svgs/caret-down.svg';\nimport CaretLeftIcon from '@gravity-ui/icons/svgs/caret-left.svg';\nimport CaretRightIcon from '@gravity-ui/icons/svgs/caret-right.svg';\nimport CircleIcon from '@gravity-ui/icons/svgs/circle.svg';\n\nconst ZOOM_SPEED = 1;\nconst MOVE_SPEED = 500;\nconst CONTROLS_CLASS = 'mermaid-zoom-menu-control';\nconst CONTROLS: Record<string, Control> = {\n up: ['move up', CaretUpIcon, ['KeyW', 'w'], [0, 0, 1]],\n down: ['move down', CaretDownIcon, ['KeyS', 's'], [0, 0, -1]],\n left: ['move left', CaretLeftIcon, ['KeyA', 'a'], [0, 1, 0]],\n right: ['move right', CaretRightIcon, ['KeyD', 'd'], [0, -1, 0]],\n zoomin: ['zoom in', MagnifierPlusIcon, ['KeyE', 'e'], [1, 0, 0]],\n zoomout: ['zoom out', MagnifierMinusIcon, ['KeyQ', 'q'], [-1, 0, 0]],\n reset: ['reset', CircleIcon, ['KeyR', 'r'], d3.zoomIdentity],\n};\n\ntype Transform = [number, number, number];\ntype Control = [string, string, [string, string], Transform | d3.ZoomTransform];\ntype Action = keyof typeof CONTROLS;\n\nconst raf = () => new Promise((resolve) => requestAnimationFrame(resolve));\nconst sum = (a1: number[], a2: number[]) => a1.map((item, index) => item + a2[index]);\n\nconst transitions = new WeakMap();\nconst transition = ($svg: SVGSelection, $inner: GSelection, zoom: Zoom) => {\n if (transitions.has(zoom)) {\n return transitions.get(zoom);\n }\n\n const actions = new Set<Action>();\n let loop: Promise<void> | null = null;\n\n const iterarte = async () => {\n while (actions.size) {\n const t = Date.now();\n\n let [dk, dx, dy] = [0, 0, 0];\n for (const action of actions) {\n const d = CONTROLS[action][3];\n if (d === d3.zoomIdentity) {\n try {\n await $svg.transition().call(zoom.transform, d3.zoomIdentity).end();\n } catch {}\n } else {\n [dk, dx, dy] = sum([dk, dx, dy], d as Transform);\n }\n }\n\n await raf();\n\n const {k} = d3.zoomTransform($inner.node() as Element);\n const dt = (Date.now() - t) / 1000;\n\n [dk, dx, dy] = [dk * dt * ZOOM_SPEED, dx * dt * MOVE_SPEED, dy * dt * MOVE_SPEED];\n\n if (dx || dy) {\n zoom.translateBy($svg, dx, dy);\n }\n\n if (dk) {\n zoom.scaleTo($svg, k + dk);\n }\n }\n };\n\n transitions.set(zoom, {\n add(action: Action) {\n actions.add(action);\n\n if (!loop) {\n loop = iterarte().finally(() => {\n loop = null;\n });\n }\n },\n\n delete(action: Action) {\n actions.delete(action);\n },\n });\n\n return transitions.get(zoom);\n};\n\nexport const attachKeyboard = ($svg: SVGSelection, $inner: GSelection, zoom: Zoom) => {\n const ts = transition($svg, $inner, zoom);\n\n const keys: Record<string, Action> = Object.keys(CONTROLS).reduce(\n (acc, key) => {\n const control = CONTROLS[key] as Control;\n const bind = control[2][0];\n\n acc[bind] = key;\n\n return acc;\n },\n {} as Record<string, Action>,\n );\n\n const handleKeydown = (event: KeyboardEvent) => {\n if (event.altKey || event.ctrlKey || event.shiftKey || event.metaKey) {\n return;\n }\n\n const action = keys[event.code];\n if (action) {\n event.preventDefault();\n ts.add(action);\n }\n };\n\n const handleKeyup = (event: KeyboardEvent) => {\n const action = keys[event.code];\n if (action) {\n event.preventDefault();\n ts.delete(action);\n }\n };\n\n document.addEventListener('keydown', handleKeydown);\n document.addEventListener('keyup', handleKeyup);\n\n return () => {\n document.removeEventListener('keydown', handleKeydown);\n document.removeEventListener('keyup', handleKeyup);\n };\n};\n\nexport const attachMenu = (\n container: HTMLElement,\n $svg: SVGSelection,\n $inner: GSelection,\n zoom: Zoom,\n) => {\n const ts = transition($svg, $inner, zoom);\n\n const build = document.createElement('div');\n const buttons = Object.keys(CONTROLS)\n .map((key) => [key, ...CONTROLS[key]])\n .reduce(\n (acc, [name, title, icon]) =>\n acc +\n `\n <div class=\"${CONTROLS_CLASS}\" title=\"${title}\" data-action=\"${name}\">\n ${icon}\n </div>`,\n '',\n );\n\n build.innerHTML = `\n <div class=\"mermaid-zoom-menu\">\n <div class=\"mermaid-zoom-menu-controls\">\n ${buttons}\n </div>\n </div>\n `;\n\n const menu = build.firstElementChild as HTMLElement;\n\n let controlActive: Action | null = null;\n const resetTransition = () => {\n ts.delete(controlActive);\n controlActive = null;\n document.removeEventListener('mouseup', resetTransition, true);\n };\n\n const handleControlClick = async (event: MouseEvent) => {\n // Disable external text selection\n if (event.detail > 1) {\n event.preventDefault();\n }\n\n const element = (event.target as HTMLElement).closest('.mermaid-zoom-menu-control');\n\n if (!element) {\n return;\n }\n\n controlActive = (element as HTMLElement).dataset.action as Action;\n ts.add(controlActive as Action);\n document.addEventListener('mouseup', resetTransition, true);\n };\n\n menu.addEventListener('mousedown', handleControlClick);\n container.appendChild(menu);\n\n return () => {\n resetTransition();\n container.removeChild(menu);\n menu.removeEventListener('mousedown', handleControlClick);\n };\n};\n", "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\" viewBox=\"0 0 16 16\"><path fill=\"currentColor\" fill-rule=\"evenodd\" d=\"M6.75 11a4.25 4.25 0 1 0 0-8.5 4.25 4.25 0 0 0 0 8.5m0 1.5a5.73 5.73 0 0 0 3.501-1.188l2.719 2.718a.75.75 0 1 0 1.06-1.06l-2.718-2.719A5.75 5.75 0 1 0 6.75 12.5m.75-7.75a.75.75 0 0 0-1.5 0V6H4.75a.75.75 0 0 0 0 1.5H6v1.25a.75.75 0 0 0 1.5 0V7.5h1.25a.75.75 0 0 0 0-1.5H7.5z\" clip-rule=\"evenodd\"/></svg>", "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\" viewBox=\"0 0 16 16\"><path fill=\"currentColor\" fill-rule=\"evenodd\" d=\"M6.75 11a4.25 4.25 0 1 0 0-8.5 4.25 4.25 0 0 0 0 8.5m0 1.5a5.73 5.73 0 0 0 3.501-1.188l2.719 2.718a.75.75 0 1 0 1.06-1.06l-2.718-2.719A5.75 5.75 0 1 0 6.75 12.5m-2-6.5a.75.75 0 0 0 0 1.5h4a.75.75 0 0 0 0-1.5z\" clip-rule=\"evenodd\"/></svg>", "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\" viewBox=\"0 0 16 16\"><path fill=\"currentColor\" fill-rule=\"evenodd\" d=\"M11.823 9.295a.73.73 0 0 1-.552 1.205H4.729a.73.73 0 0 1-.552-1.205L7.2 5.786a1 1 0 0 1 .757-.347h.084a1 1 0 0 1 .757.347z\" clip-rule=\"evenodd\"/></svg>", "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\" viewBox=\"0 0 16 16\"><path fill=\"currentColor\" fill-rule=\"evenodd\" d=\"M4.177 6.705A.73.73 0 0 1 4.729 5.5h6.542a.73.73 0 0 1 .552 1.205L8.8 10.214a1 1 0 0 1-.757.347h-.084a1 1 0 0 1-.757-.347z\" clip-rule=\"evenodd\"/></svg>", "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\" viewBox=\"0 0 16 16\"><path fill=\"currentColor\" fill-rule=\"evenodd\" d=\"M9.295 4.177a.73.73 0 0 1 1.205.552v6.542a.73.73 0 0 1-1.205.552L5.786 8.8a1 1 0 0 1-.347-.757v-.084a1 1 0 0 1 .347-.757z\" clip-rule=\"evenodd\"/></svg>", "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\" viewBox=\"0 0 16 16\"><path fill=\"currentColor\" fill-rule=\"evenodd\" d=\"M6.705 11.823a.73.73 0 0 1-1.205-.552V4.729a.73.73 0 0 1 1.205-.552L10.214 7.2a1 1 0 0 1 .347.757v.084a1 1 0 0 1-.347.757z\" clip-rule=\"evenodd\"/></svg>", "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\" viewBox=\"0 0 16 16\"><path fill=\"currentColor\" fill-rule=\"evenodd\" d=\"M8 13.5a5.5 5.5 0 1 0 0-11 5.5 5.5 0 0 0 0 11M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14\" clip-rule=\"evenodd\"/></svg>"],
5
+ "mappings": "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",
6
6
  "names": ["d3", "zoom", "zoom", "event", "zoom"]
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@diplodoc/mermaid-extension",
3
- "version": "2.1.1",
3
+ "version": "2.1.3",
4
4
  "description": "Mermaid plugin for Diplodoc transformer and builder",
5
5
  "main": "build/plugin/index.js",
6
6
  "types": "build/plugin/index.d.ts",
@@ -87,12 +87,12 @@
87
87
  "react": "^18.2.0",
88
88
  "typescript": "^5.0.2",
89
89
  "vitest": "^3.2.4",
90
- "@diplodoc/infra": "2.0.2"
90
+ "@diplodoc/infra": "2.0.5"
91
91
  },
92
92
  "dependencies": {
93
93
  "@gravity-ui/icons": "^2.8.1",
94
94
  "d3": "^7.8.5",
95
- "mermaid": "^11.12.2",
95
+ "mermaid": "^11.15.0",
96
96
  "ts-dedent": "^2.2.0"
97
97
  }
98
98
  }
@@ -1,2 +0,0 @@
1
- :root{--mermaid-zoom-control-size: 20px;--mermaid-zoom-control-pad: 5px;--mermaid-zoom-control-color: #000}[data-mermaid-zoom-enabled="1"]{position:relative}[data-mermaid-zoom-enabled="1"]>svg{outline:solid 1px var(--mermaid-zoom-control-color)}@keyframes mermaid-zoom-menu-controls-fadein{0%{transform:translateY(-100%)}to{transform:translateY(0)}}.mermaid-zoom-menu{position:sticky;top:0;height:calc(var(--mermaid-zoom-control-size) * 3 + var(--mermaid-zoom-control-pad) * 4);overflow:hidden}.mermaid-zoom-menu-controls{position:absolute;right:0;top:0;height:calc(var(--mermaid-zoom-control-size) * 3 + var(--mermaid-zoom-control-pad) * 4);width:calc(var(--mermaid-zoom-control-size) * 3 + var(--mermaid-zoom-control-pad) * 4);animation:mermaid-zoom-menu-controls-fadein ease .2s}.mermaid-zoom-menu-control{position:absolute;width:var(--mermaid-zoom-control-size);height:var(--mermaid-zoom-control-size);pointer-events:all;cursor:pointer;transition:all .2s}.mermaid-zoom-menu-control:hover{transform:scale(1.3)}.mermaid-zoom-menu-control:active{transform:scale(1)}.mermaid-zoom-menu-control[data-action=up]{right:calc(var(--mermaid-zoom-control-size) + var(--mermaid-zoom-control-pad) * 2);bottom:calc(var(--mermaid-zoom-control-size) * 2 + var(--mermaid-zoom-control-pad) * 3)}.mermaid-zoom-menu-control[data-action=down]{right:calc(var(--mermaid-zoom-control-size) + var(--mermaid-zoom-control-pad) * 2);bottom:var(--mermaid-zoom-control-pad)}.mermaid-zoom-menu-control[data-action=reset]{right:calc(var(--mermaid-zoom-control-size) + var(--mermaid-zoom-control-pad) * 2);bottom:calc(var(--mermaid-zoom-control-size) + var(--mermaid-zoom-control-pad) * 2)}.mermaid-zoom-menu-control[data-action=left]{right:calc(var(--mermaid-zoom-control-size) * 2 + var(--mermaid-zoom-control-pad) * 3);bottom:calc(var(--mermaid-zoom-control-size) + var(--mermaid-zoom-control-pad) * 2)}.mermaid-zoom-menu-control[data-action=right]{right:var(--mermaid-zoom-control-pad);bottom:calc(var(--mermaid-zoom-control-size) + var(--mermaid-zoom-control-pad) * 2)}.mermaid-zoom-menu-control[data-action=zoomout]{right:calc(var(--mermaid-zoom-control-size) * 2 + var(--mermaid-zoom-control-pad) * 3);bottom:calc(var(--mermaid-zoom-control-size) * 2 + var(--mermaid-zoom-control-pad) * 3)}.mermaid-zoom-menu-control[data-action=zoomin]{right:var(--mermaid-zoom-control-pad);bottom:calc(var(--mermaid-zoom-control-size) * 2 + var(--mermaid-zoom-control-pad) * 3)}.mermaid-zoom-menu-control svg{color:var(--mermaid-zoom-control-color);width:var(--mermaid-zoom-control-size);height:var(--mermaid-zoom-control-size)}
2
- /*# sourceMappingURL=index-node.css.map */
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/zoom.scss"],
4
- "sourcesContent": [":root {\n --mermaid-zoom-control-size: 20px;\n --mermaid-zoom-control-pad: 5px;\n --mermaid-zoom-control-color: #000;\n}\n\n[data-mermaid-zoom-enabled='1'] {\n position: relative;\n\n & > svg {\n outline: solid 1px var(--mermaid-zoom-control-color);\n }\n}\n\n@keyframes mermaid-zoom-menu-controls-fadein {\n from {\n transform: translateY(-100%);\n }\n\n to {\n transform: translateY(0);\n }\n}\n\n.mermaid-zoom-menu {\n position: sticky;\n top: 0;\n height: calc(var(--mermaid-zoom-control-size) * 3 + var(--mermaid-zoom-control-pad) * 4);\n overflow: hidden;\n\n &-controls {\n position: absolute;\n right: 0;\n top: 0;\n height: calc(var(--mermaid-zoom-control-size) * 3 + var(--mermaid-zoom-control-pad) * 4);\n width: calc(var(--mermaid-zoom-control-size) * 3 + var(--mermaid-zoom-control-pad) * 4);\n animation: mermaid-zoom-menu-controls-fadein ease 0.2s;\n }\n\n &-control {\n position: absolute;\n width: var(--mermaid-zoom-control-size);\n height: var(--mermaid-zoom-control-size);\n pointer-events: all;\n cursor: pointer;\n transition: all 0.2s;\n\n &:hover {\n transform: scale(1.3);\n }\n\n &:active {\n transform: scale(1);\n }\n\n &[data-action='up'] {\n right: calc(var(--mermaid-zoom-control-size) + var(--mermaid-zoom-control-pad) * 2);\n bottom: calc(\n var(--mermaid-zoom-control-size) * 2 + var(--mermaid-zoom-control-pad) * 3\n );\n }\n\n &[data-action='down'] {\n right: calc(var(--mermaid-zoom-control-size) + var(--mermaid-zoom-control-pad) * 2);\n bottom: var(--mermaid-zoom-control-pad);\n }\n\n &[data-action='reset'] {\n right: calc(var(--mermaid-zoom-control-size) + var(--mermaid-zoom-control-pad) * 2);\n bottom: calc(var(--mermaid-zoom-control-size) + var(--mermaid-zoom-control-pad) * 2);\n }\n\n &[data-action='left'] {\n right: calc(var(--mermaid-zoom-control-size) * 2 + var(--mermaid-zoom-control-pad) * 3);\n bottom: calc(var(--mermaid-zoom-control-size) + var(--mermaid-zoom-control-pad) * 2);\n }\n\n &[data-action='right'] {\n right: var(--mermaid-zoom-control-pad);\n bottom: calc(var(--mermaid-zoom-control-size) + var(--mermaid-zoom-control-pad) * 2);\n }\n\n &[data-action='zoomout'] {\n right: calc(var(--mermaid-zoom-control-size) * 2 + var(--mermaid-zoom-control-pad) * 3);\n bottom: calc(\n var(--mermaid-zoom-control-size) * 2 + var(--mermaid-zoom-control-pad) * 3\n );\n }\n\n &[data-action='zoomin'] {\n right: var(--mermaid-zoom-control-pad);\n bottom: calc(\n var(--mermaid-zoom-control-size) * 2 + var(--mermaid-zoom-control-pad) * 3\n );\n }\n\n svg {\n color: var(--mermaid-zoom-control-color);\n width: var(--mermaid-zoom-control-size);\n height: var(--mermaid-zoom-control-size);\n }\n }\n}\n"],
5
- "mappings": "AAAA,MACI,6BAAA,KACA,4BAAA,IACA,8BAAA,KAGJ,CAAA,+BACI,SAAA,SAEA,CAAA,8BAAA,CAAA,IACI,QAAA,MAAA,IAAA,IAAA,8BAIR,WAAA,kCACI,GACI,UAAA,WAAA,OAGJ,GACI,UAAA,WAAA,IAIR,CAAA,kBACI,SAAA,OACA,IAAA,EACA,OAAA,KAAA,IAAA,6BAAA,EAAA,EAAA,EAAA,IAAA,4BAAA,EAAA,GACA,SAAA,OAEA,CAAA,2BACI,SAAA,SACA,MAAA,EACA,IAAA,EACA,OAAA,KAAA,IAAA,6BAAA,EAAA,EAAA,EAAA,IAAA,4BAAA,EAAA,GACA,MAAA,KAAA,IAAA,6BAAA,EAAA,EAAA,EAAA,IAAA,4BAAA,EAAA,GACA,UAAA,kCAAA,KAAA,IAGJ,CAAA,0BACI,SAAA,SACA,MAAA,IAAA,6BACA,OAAA,IAAA,6BACA,eAAA,IACA,OAAA,QACA,WAAA,IAAA,IAEA,CARJ,yBAQI,OACI,UAAA,MAAA,KAGJ,CAZJ,yBAYI,QACI,UAAA,MAAA,GAGJ,CAhBJ,yBAgBI,CAAA,gBACI,MAAA,KAAA,IAAA,6BAAA,EAAA,IAAA,4BAAA,EAAA,GACA,OAAA,KAAA,IAAA,6BAAA,EAAA,EAAA,EAAA,IAAA,4BAAA,EAAA,GAKJ,CAvBJ,yBAuBI,CAAA,kBACI,MAAA,KAAA,IAAA,6BAAA,EAAA,IAAA,4BAAA,EAAA,GACA,OAAA,IAAA,4BAGJ,CA5BJ,yBA4BI,CAAA,mBACI,MAAA,KAAA,IAAA,6BAAA,EAAA,IAAA,4BAAA,EAAA,GACA,OAAA,KAAA,IAAA,6BAAA,EAAA,IAAA,4BAAA,EAAA,GAGJ,CAjCJ,yBAiCI,CAAA,kBACI,MAAA,KAAA,IAAA,6BAAA,EAAA,EAAA,EAAA,IAAA,4BAAA,EAAA,GACA,OAAA,KAAA,IAAA,6BAAA,EAAA,IAAA,4BAAA,EAAA,GAGJ,CAtCJ,yBAsCI,CAAA,mBACI,MAAA,IAAA,4BACA,OAAA,KAAA,IAAA,6BAAA,EAAA,IAAA,4BAAA,EAAA,GAGJ,CA3CJ,yBA2CI,CAAA,qBACI,MAAA,KAAA,IAAA,6BAAA,EAAA,EAAA,EAAA,IAAA,4BAAA,EAAA,GACA,OAAA,KAAA,IAAA,6BAAA,EAAA,EAAA,EAAA,IAAA,4BAAA,EAAA,GAKJ,CAlDJ,yBAkDI,CAAA,oBACI,MAAA,IAAA,4BACA,OAAA,KAAA,IAAA,6BAAA,EAAA,EAAA,EAAA,IAAA,4BAAA,EAAA,GAKJ,CAzDJ,0BAyDI,IACI,MAAA,IAAA,8BACA,MAAA,IAAA,6BACA,OAAA,IAAA",
6
- "names": []
7
- }
@@ -1,82 +0,0 @@
1
- /* src/runtime/zoom.scss */
2
- :root {
3
- --mermaid-zoom-control-size: 20px;
4
- --mermaid-zoom-control-pad: 5px;
5
- --mermaid-zoom-control-color: #000;
6
- }
7
- [data-mermaid-zoom-enabled="1"] {
8
- position: relative;
9
- }
10
- [data-mermaid-zoom-enabled="1"] > svg {
11
- outline: solid 1px var(--mermaid-zoom-control-color);
12
- }
13
- @keyframes mermaid-zoom-menu-controls-fadein {
14
- from {
15
- transform: translateY(-100%);
16
- }
17
- to {
18
- transform: translateY(0);
19
- }
20
- }
21
- .mermaid-zoom-menu {
22
- position: sticky;
23
- top: 0;
24
- height: calc(var(--mermaid-zoom-control-size) * 3 + var(--mermaid-zoom-control-pad) * 4);
25
- overflow: hidden;
26
- }
27
- .mermaid-zoom-menu-controls {
28
- position: absolute;
29
- right: 0;
30
- top: 0;
31
- height: calc(var(--mermaid-zoom-control-size) * 3 + var(--mermaid-zoom-control-pad) * 4);
32
- width: calc(var(--mermaid-zoom-control-size) * 3 + var(--mermaid-zoom-control-pad) * 4);
33
- animation: mermaid-zoom-menu-controls-fadein ease 0.2s;
34
- }
35
- .mermaid-zoom-menu-control {
36
- position: absolute;
37
- width: var(--mermaid-zoom-control-size);
38
- height: var(--mermaid-zoom-control-size);
39
- pointer-events: all;
40
- cursor: pointer;
41
- transition: all 0.2s;
42
- }
43
- .mermaid-zoom-menu-control:hover {
44
- transform: scale(1.3);
45
- }
46
- .mermaid-zoom-menu-control:active {
47
- transform: scale(1);
48
- }
49
- .mermaid-zoom-menu-control[data-action=up] {
50
- right: calc(var(--mermaid-zoom-control-size) + var(--mermaid-zoom-control-pad) * 2);
51
- bottom: calc(var(--mermaid-zoom-control-size) * 2 + var(--mermaid-zoom-control-pad) * 3);
52
- }
53
- .mermaid-zoom-menu-control[data-action=down] {
54
- right: calc(var(--mermaid-zoom-control-size) + var(--mermaid-zoom-control-pad) * 2);
55
- bottom: var(--mermaid-zoom-control-pad);
56
- }
57
- .mermaid-zoom-menu-control[data-action=reset] {
58
- right: calc(var(--mermaid-zoom-control-size) + var(--mermaid-zoom-control-pad) * 2);
59
- bottom: calc(var(--mermaid-zoom-control-size) + var(--mermaid-zoom-control-pad) * 2);
60
- }
61
- .mermaid-zoom-menu-control[data-action=left] {
62
- right: calc(var(--mermaid-zoom-control-size) * 2 + var(--mermaid-zoom-control-pad) * 3);
63
- bottom: calc(var(--mermaid-zoom-control-size) + var(--mermaid-zoom-control-pad) * 2);
64
- }
65
- .mermaid-zoom-menu-control[data-action=right] {
66
- right: var(--mermaid-zoom-control-pad);
67
- bottom: calc(var(--mermaid-zoom-control-size) + var(--mermaid-zoom-control-pad) * 2);
68
- }
69
- .mermaid-zoom-menu-control[data-action=zoomout] {
70
- right: calc(var(--mermaid-zoom-control-size) * 2 + var(--mermaid-zoom-control-pad) * 3);
71
- bottom: calc(var(--mermaid-zoom-control-size) * 2 + var(--mermaid-zoom-control-pad) * 3);
72
- }
73
- .mermaid-zoom-menu-control[data-action=zoomin] {
74
- right: var(--mermaid-zoom-control-pad);
75
- bottom: calc(var(--mermaid-zoom-control-size) * 2 + var(--mermaid-zoom-control-pad) * 3);
76
- }
77
- .mermaid-zoom-menu-control svg {
78
- color: var(--mermaid-zoom-control-color);
79
- width: var(--mermaid-zoom-control-size);
80
- height: var(--mermaid-zoom-control-size);
81
- }
82
- /*# sourceMappingURL=index.css.map */
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/zoom.scss"],
4
- "sourcesContent": [":root {\n --mermaid-zoom-control-size: 20px;\n --mermaid-zoom-control-pad: 5px;\n --mermaid-zoom-control-color: #000;\n}\n\n[data-mermaid-zoom-enabled='1'] {\n position: relative;\n\n & > svg {\n outline: solid 1px var(--mermaid-zoom-control-color);\n }\n}\n\n@keyframes mermaid-zoom-menu-controls-fadein {\n from {\n transform: translateY(-100%);\n }\n\n to {\n transform: translateY(0);\n }\n}\n\n.mermaid-zoom-menu {\n position: sticky;\n top: 0;\n height: calc(var(--mermaid-zoom-control-size) * 3 + var(--mermaid-zoom-control-pad) * 4);\n overflow: hidden;\n\n &-controls {\n position: absolute;\n right: 0;\n top: 0;\n height: calc(var(--mermaid-zoom-control-size) * 3 + var(--mermaid-zoom-control-pad) * 4);\n width: calc(var(--mermaid-zoom-control-size) * 3 + var(--mermaid-zoom-control-pad) * 4);\n animation: mermaid-zoom-menu-controls-fadein ease 0.2s;\n }\n\n &-control {\n position: absolute;\n width: var(--mermaid-zoom-control-size);\n height: var(--mermaid-zoom-control-size);\n pointer-events: all;\n cursor: pointer;\n transition: all 0.2s;\n\n &:hover {\n transform: scale(1.3);\n }\n\n &:active {\n transform: scale(1);\n }\n\n &[data-action='up'] {\n right: calc(var(--mermaid-zoom-control-size) + var(--mermaid-zoom-control-pad) * 2);\n bottom: calc(\n var(--mermaid-zoom-control-size) * 2 + var(--mermaid-zoom-control-pad) * 3\n );\n }\n\n &[data-action='down'] {\n right: calc(var(--mermaid-zoom-control-size) + var(--mermaid-zoom-control-pad) * 2);\n bottom: var(--mermaid-zoom-control-pad);\n }\n\n &[data-action='reset'] {\n right: calc(var(--mermaid-zoom-control-size) + var(--mermaid-zoom-control-pad) * 2);\n bottom: calc(var(--mermaid-zoom-control-size) + var(--mermaid-zoom-control-pad) * 2);\n }\n\n &[data-action='left'] {\n right: calc(var(--mermaid-zoom-control-size) * 2 + var(--mermaid-zoom-control-pad) * 3);\n bottom: calc(var(--mermaid-zoom-control-size) + var(--mermaid-zoom-control-pad) * 2);\n }\n\n &[data-action='right'] {\n right: var(--mermaid-zoom-control-pad);\n bottom: calc(var(--mermaid-zoom-control-size) + var(--mermaid-zoom-control-pad) * 2);\n }\n\n &[data-action='zoomout'] {\n right: calc(var(--mermaid-zoom-control-size) * 2 + var(--mermaid-zoom-control-pad) * 3);\n bottom: calc(\n var(--mermaid-zoom-control-size) * 2 + var(--mermaid-zoom-control-pad) * 3\n );\n }\n\n &[data-action='zoomin'] {\n right: var(--mermaid-zoom-control-pad);\n bottom: calc(\n var(--mermaid-zoom-control-size) * 2 + var(--mermaid-zoom-control-pad) * 3\n );\n }\n\n svg {\n color: var(--mermaid-zoom-control-color);\n width: var(--mermaid-zoom-control-size);\n height: var(--mermaid-zoom-control-size);\n }\n }\n}\n"],
5
- "mappings": ";AAAA;AACI,+BAAA;AACA,8BAAA;AACA,gCAAA;;AAGJ,CAAA;AACI,YAAA;;AAEA,CAAA,+BAAA,EAAA;AACI,WAAA,MAAA,IAAA,IAAA;;AAIR,WAAA;AACI;AACI,eAAA,WAAA;;AAGJ;AACI,eAAA,WAAA;;;AAIR,CAAA;AACI,YAAA;AACA,OAAA;AACA,UAAA,KAAA,IAAA,6BAAA,EAAA,EAAA,EAAA,IAAA,4BAAA,EAAA;AACA,YAAA;;AAEA,CAAA;AACI,YAAA;AACA,SAAA;AACA,OAAA;AACA,UAAA,KAAA,IAAA,6BAAA,EAAA,EAAA,EAAA,IAAA,4BAAA,EAAA;AACA,SAAA,KAAA,IAAA,6BAAA,EAAA,EAAA,EAAA,IAAA,4BAAA,EAAA;AACA,aAAA,kCAAA,KAAA;;AAGJ,CAAA;AACI,YAAA;AACA,SAAA,IAAA;AACA,UAAA,IAAA;AACA,kBAAA;AACA,UAAA;AACA,cAAA,IAAA;;AAEA,CARJ,yBAQI;AACI,aAAA,MAAA;;AAGJ,CAZJ,yBAYI;AACI,aAAA,MAAA;;AAGJ,CAhBJ,yBAgBI,CAAA;AACI,SAAA,KAAA,IAAA,6BAAA,EAAA,IAAA,4BAAA,EAAA;AACA,UAAA,KAAA,IAAA,6BAAA,EAAA,EAAA,EAAA,IAAA,4BAAA,EAAA;;AAKJ,CAvBJ,yBAuBI,CAAA;AACI,SAAA,KAAA,IAAA,6BAAA,EAAA,IAAA,4BAAA,EAAA;AACA,UAAA,IAAA;;AAGJ,CA5BJ,yBA4BI,CAAA;AACI,SAAA,KAAA,IAAA,6BAAA,EAAA,IAAA,4BAAA,EAAA;AACA,UAAA,KAAA,IAAA,6BAAA,EAAA,IAAA,4BAAA,EAAA;;AAGJ,CAjCJ,yBAiCI,CAAA;AACI,SAAA,KAAA,IAAA,6BAAA,EAAA,EAAA,EAAA,IAAA,4BAAA,EAAA;AACA,UAAA,KAAA,IAAA,6BAAA,EAAA,IAAA,4BAAA,EAAA;;AAGJ,CAtCJ,yBAsCI,CAAA;AACI,SAAA,IAAA;AACA,UAAA,KAAA,IAAA,6BAAA,EAAA,IAAA,4BAAA,EAAA;;AAGJ,CA3CJ,yBA2CI,CAAA;AACI,SAAA,KAAA,IAAA,6BAAA,EAAA,EAAA,EAAA,IAAA,4BAAA,EAAA;AACA,UAAA,KAAA,IAAA,6BAAA,EAAA,EAAA,EAAA,IAAA,4BAAA,EAAA;;AAKJ,CAlDJ,yBAkDI,CAAA;AACI,SAAA,IAAA;AACA,UAAA,KAAA,IAAA,6BAAA,EAAA,EAAA,EAAA,IAAA,4BAAA,EAAA;;AAKJ,CAzDJ,0BAyDI;AACI,SAAA,IAAA;AACA,SAAA,IAAA;AACA,UAAA,IAAA;;",
6
- "names": []
7
- }