@pinkpixel/marzipan 1.1.0 → 1.1.2

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 (130) hide show
  1. package/README.md +72 -37
  2. package/dist/_basePickBy-D4kyG5Tu.js +152 -0
  3. package/dist/_basePickBy-D4kyG5Tu.js.map +1 -0
  4. package/dist/_baseUniq-s5uZhHMt.js +615 -0
  5. package/dist/_baseUniq-s5uZhHMt.js.map +1 -0
  6. package/dist/arc-Cd2Fw3V6.js +84 -0
  7. package/dist/arc-Cd2Fw3V6.js.map +1 -0
  8. package/dist/architectureDiagram-VXUJARFQ-ylT61Lln.js +4663 -0
  9. package/dist/architectureDiagram-VXUJARFQ-ylT61Lln.js.map +1 -0
  10. package/dist/blockDiagram-VD42YOAC-CoIxLSyQ.js +2257 -0
  11. package/dist/blockDiagram-VD42YOAC-CoIxLSyQ.js.map +1 -0
  12. package/dist/c4Diagram-YG6GDRKO-CsQimMM6.js +1581 -0
  13. package/dist/c4Diagram-YG6GDRKO-CsQimMM6.js.map +1 -0
  14. package/dist/channel-0tZUlnqz.js +6 -0
  15. package/dist/channel-0tZUlnqz.js.map +1 -0
  16. package/dist/chunk-4BX2VUAB-DVkBhLxy.js +9 -0
  17. package/dist/chunk-4BX2VUAB-DVkBhLxy.js.map +1 -0
  18. package/dist/chunk-55IACEB6-CVQcegI-.js +9 -0
  19. package/dist/chunk-55IACEB6-CVQcegI-.js.map +1 -0
  20. package/dist/chunk-B4BG7PRW-DPUTNckV.js +1376 -0
  21. package/dist/chunk-B4BG7PRW-DPUTNckV.js.map +1 -0
  22. package/dist/chunk-DI55MBZ5-F7DI2N9R.js +1371 -0
  23. package/dist/chunk-DI55MBZ5-F7DI2N9R.js.map +1 -0
  24. package/dist/chunk-FMBD7UC4-C3wNpU7V.js +20 -0
  25. package/dist/chunk-FMBD7UC4-C3wNpU7V.js.map +1 -0
  26. package/dist/chunk-QN33PNHL-BOdqrixJ.js +20 -0
  27. package/dist/chunk-QN33PNHL-BOdqrixJ.js.map +1 -0
  28. package/dist/chunk-QZHKN3VN-BFPNdgmW.js +16 -0
  29. package/dist/chunk-QZHKN3VN-BFPNdgmW.js.map +1 -0
  30. package/dist/chunk-TZMSLE5B-BZuxNW58.js +65 -0
  31. package/dist/chunk-TZMSLE5B-BZuxNW58.js.map +1 -0
  32. package/dist/classDiagram-2ON5EDUG-CiRjpBEe.js +17 -0
  33. package/dist/classDiagram-2ON5EDUG-CiRjpBEe.js.map +1 -0
  34. package/dist/classDiagram-v2-WZHVMYZB-CiRjpBEe.js +17 -0
  35. package/dist/classDiagram-v2-WZHVMYZB-CiRjpBEe.js.map +1 -0
  36. package/dist/clone-Bm_onhkP.js +9 -0
  37. package/dist/clone-Bm_onhkP.js.map +1 -0
  38. package/dist/cose-bilkent-S5V4N54A-D9xMKgKB.js +2609 -0
  39. package/dist/cose-bilkent-S5V4N54A-D9xMKgKB.js.map +1 -0
  40. package/dist/dagre-6UL2VRFP-BhIQJjaK.js +445 -0
  41. package/dist/dagre-6UL2VRFP-BhIQJjaK.js.map +1 -0
  42. package/dist/diagram-PSM6KHXK-h4YEzD1S.js +532 -0
  43. package/dist/diagram-PSM6KHXK-h4YEzD1S.js.map +1 -0
  44. package/dist/diagram-QEK2KX5R-spuV0akZ.js +218 -0
  45. package/dist/diagram-QEK2KX5R-spuV0akZ.js.map +1 -0
  46. package/dist/diagram-S2PKOQOG-CQx-wsyw.js +143 -0
  47. package/dist/diagram-S2PKOQOG-CQx-wsyw.js.map +1 -0
  48. package/dist/erDiagram-Q2GNP2WA-Cqkjjf2a.js +842 -0
  49. package/dist/erDiagram-Q2GNP2WA-Cqkjjf2a.js.map +1 -0
  50. package/dist/flowDiagram-NV44I4VS-mCXE9u9b.js +1621 -0
  51. package/dist/flowDiagram-NV44I4VS-mCXE9u9b.js.map +1 -0
  52. package/dist/ganttDiagram-JELNMOA3-Bz1GBIHE.js +2671 -0
  53. package/dist/ganttDiagram-JELNMOA3-Bz1GBIHE.js.map +1 -0
  54. package/dist/gitGraphDiagram-V2S2FVAM-Be01Oq15.js +700 -0
  55. package/dist/gitGraphDiagram-V2S2FVAM-Be01Oq15.js.map +1 -0
  56. package/dist/graph-DVWVTM7e.js +248 -0
  57. package/dist/graph-DVWVTM7e.js.map +1 -0
  58. package/dist/index-kKw24iiA.js +34 -0
  59. package/dist/index-kKw24iiA.js.map +1 -0
  60. package/dist/index.d.ts +0 -11
  61. package/dist/index.d.ts.map +1 -1
  62. package/dist/index.js +270 -277
  63. package/dist/index.js.map +1 -1
  64. package/dist/infoDiagram-HS3SLOUP-joTtnw9j.js +25 -0
  65. package/dist/infoDiagram-HS3SLOUP-joTtnw9j.js.map +1 -0
  66. package/dist/journeyDiagram-XKPGCS4Q-CMVu7VEd.js +835 -0
  67. package/dist/journeyDiagram-XKPGCS4Q-CMVu7VEd.js.map +1 -0
  68. package/dist/kanban-definition-3W4ZIXB7-CfanK5Eg.js +720 -0
  69. package/dist/kanban-definition-3W4ZIXB7-CfanK5Eg.js.map +1 -0
  70. package/dist/katex-Cj93GM5Y.js +11605 -0
  71. package/dist/katex-Cj93GM5Y.js.map +1 -0
  72. package/dist/layout-BC8VSiQq.js +1336 -0
  73. package/dist/layout-BC8VSiQq.js.map +1 -0
  74. package/dist/linear-GV5CIa17.js +260 -0
  75. package/dist/linear-GV5CIa17.js.map +1 -0
  76. package/dist/marzipan.d.ts +1 -2
  77. package/dist/marzipan.d.ts.map +1 -1
  78. package/dist/marzipan.js +1 -19
  79. package/dist/marzipan.js.map +1 -1
  80. package/dist/mermaid.core-cSWK5aGH.js +15302 -0
  81. package/dist/mermaid.core-cSWK5aGH.js.map +1 -0
  82. package/dist/mindmap-definition-VGOIOE7T-Vu_RTZar.js +785 -0
  83. package/dist/mindmap-definition-VGOIOE7T-Vu_RTZar.js.map +1 -0
  84. package/dist/parser.d.ts.map +1 -1
  85. package/dist/parser.js +6 -5
  86. package/dist/parser.js.map +1 -1
  87. package/dist/pieDiagram-ADFJNKIX-BUcd1l-6.js +162 -0
  88. package/dist/pieDiagram-ADFJNKIX-BUcd1l-6.js.map +1 -0
  89. package/dist/plugins/accentSwatchPlugin.d.ts +1 -1
  90. package/dist/plugins/accentSwatchPlugin.d.ts.map +1 -1
  91. package/dist/plugins/accentSwatchPlugin.js +162 -81
  92. package/dist/plugins/accentSwatchPlugin.js.map +1 -1
  93. package/dist/plugins/block-handles.d.ts +10 -2
  94. package/dist/plugins/block-handles.d.ts.map +1 -1
  95. package/dist/plugins/block-handles.js +77 -51
  96. package/dist/plugins/block-handles.js.map +1 -1
  97. package/dist/plugins/index.d.ts +0 -2
  98. package/dist/plugins/index.d.ts.map +1 -1
  99. package/dist/plugins/index.js +27 -29
  100. package/dist/plugins/index.js.map +1 -1
  101. package/dist/plugins/mermaidPlugin.js +1 -1
  102. package/dist/plugins/tinyHighlight.d.ts.map +1 -1
  103. package/dist/plugins/tinyHighlight.js +34 -22
  104. package/dist/plugins/tinyHighlight.js.map +1 -1
  105. package/dist/quadrantDiagram-AYHSOK5B-B1ekOH99.js +1023 -0
  106. package/dist/quadrantDiagram-AYHSOK5B-B1ekOH99.js.map +1 -0
  107. package/dist/requirementDiagram-UZGBJVZJ-BNcVcwNf.js +851 -0
  108. package/dist/requirementDiagram-UZGBJVZJ-BNcVcwNf.js.map +1 -0
  109. package/dist/sankeyDiagram-TZEHDZUN-BpHcdj5K.js +811 -0
  110. package/dist/sankeyDiagram-TZEHDZUN-BpHcdj5K.js.map +1 -0
  111. package/dist/sequenceDiagram-WL72ISMW-D5UyNvsv.js +2512 -0
  112. package/dist/sequenceDiagram-WL72ISMW-D5UyNvsv.js.map +1 -0
  113. package/dist/stateDiagram-FKZM4ZOC-C8DBscXu.js +264 -0
  114. package/dist/stateDiagram-FKZM4ZOC-C8DBscXu.js.map +1 -0
  115. package/dist/stateDiagram-v2-4FDKWEC3-CHqwUDPY.js +17 -0
  116. package/dist/stateDiagram-v2-4FDKWEC3-CHqwUDPY.js.map +1 -0
  117. package/dist/timeline-definition-IT6M3QCI-Dtg0oJbr.js +796 -0
  118. package/dist/timeline-definition-IT6M3QCI-Dtg0oJbr.js.map +1 -0
  119. package/dist/treemap-GDKQZRPO-rbQo3Em-.js +17926 -0
  120. package/dist/treemap-GDKQZRPO-rbQo3Em-.js.map +1 -0
  121. package/dist/xychartDiagram-PRI3JC2R-uNpgYSnV.js +1341 -0
  122. package/dist/xychartDiagram-PRI3JC2R-uNpgYSnV.js.map +1 -0
  123. package/docs/.vitepress/config.ts +1 -1
  124. package/docs/README.md +6 -8
  125. package/docs/TABLE_OF_CONTENTS.md +4 -1
  126. package/docs/api.md +262 -202
  127. package/docs/index.md +22 -19
  128. package/docs/plugins.md +27 -23
  129. package/package.json +1 -1
  130. package/docs/block-handles.md +0 -325
package/README.md CHANGED
@@ -20,60 +20,66 @@
20
20
 
21
21
  ## 🍰 What’s in the repo?
22
22
 
23
- | Package | Description |
24
- |---------|-------------|
25
- | **`@pinkpixel/marzipan`** | Core editor library located in `src/` (bundled to `dist/`). Ships the actions toolkit and plugin exports by default. |
26
- | **`@pinkpixel/marzipan/plugins/*`** | Individual plugin entry points compiled from `src/plugins`. Import only the helpers you need. |
27
- | **`bakeshop-demo/`** | React playground showcasing toolbar presets, actions, plugins, and theming workflows. |
23
+ | Package | Description |
24
+ | ----------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
25
+ | **`@pinkpixel/marzipan`** | Core editor library located in `src/` (bundled to `dist/`). Ships the actions toolkit and plugin exports by default. |
26
+ | **`@pinkpixel/marzipan/plugins/*`** | Individual plugin entry points compiled from `src/plugins`. Import only the helpers you need. |
27
+ | **`bakeshop-demo/`** | React playground showcasing toolbar presets, actions, plugins, and theming workflows. |
28
28
 
29
29
  ## 🚀 Quick Start
30
30
 
31
31
  ### 1. Install
32
+
32
33
  ```bash
33
34
  npm install @pinkpixel/marzipan
34
35
  ```
35
36
 
36
37
  ### 2. Create an editor
38
+
37
39
  ```ts
38
- import { Marzipan } from '@pinkpixel/marzipan';
40
+ import { Marzipan } from "@pinkpixel/marzipan";
39
41
 
40
- const [editor] = new Marzipan('#my-textarea', {
42
+ const [editor] = new Marzipan("#my-textarea", {
41
43
  toolbar: true,
42
- theme: 'cave',
44
+ theme: "cave",
43
45
  smartLists: true,
44
46
  });
45
47
  ```
46
48
 
47
49
  ### 3. Use the bundled actions
50
+
48
51
  ```ts
49
- import { actions } from '@pinkpixel/marzipan';
52
+ import { actions } from "@pinkpixel/marzipan";
50
53
 
51
54
  // Toggle bold formatting using our zero-dependency action suite
52
- const textarea = document.querySelector('textarea')!;
55
+ const textarea = document.querySelector("textarea")!;
53
56
  actions.toggleBold(textarea);
54
57
  ```
55
58
 
56
59
  ### 4. Opt into a plugin
60
+
57
61
  ```ts
58
- import { tablePlugin } from '@pinkpixel/marzipan/plugins/tablePlugin';
62
+ import { tablePlugin } from "@pinkpixel/marzipan/plugins/tablePlugin";
59
63
 
60
- new Marzipan('#editor', {
64
+ new Marzipan("#editor", {
61
65
  plugins: [tablePlugin()],
62
66
  });
63
67
  ```
64
68
 
65
69
  ### 5. Try the Bakeshop playground
70
+
66
71
  ```bash
67
72
  cd bakeshop-demo
68
73
  npm install
69
74
  npm run dev
70
75
  ```
76
+
71
77
  Visit `http://localhost:5173` to explore every panel, plugin, and action in a live environment.
72
78
 
73
79
  ## 🧩 Bundled Plugins
74
80
 
75
81
  The `src/plugins` directory publishes directly to consumers. Available helpers include:
76
- - `BlockHandlesPlugin` – interactive block manipulation with visual handles, context menus, and keyboard shortcuts.
82
+
77
83
  - `tablePlugin`, `tableGridPlugin`, `tableGeneratorPlugin` – interactive table authoring.
78
84
  - `tinyHighlightPlugin` – lightweight syntax highlighting for fenced code blocks (ships `tinyHighlightStyles`).
79
85
  - `accentSwatchPlugin` – synced accent palette picker.
@@ -81,38 +87,39 @@ The `src/plugins` directory publishes directly to consumers. Available helpers i
81
87
  - `mermaidPlugin`, `mermaidExternalPlugin` – diagram rendering via ESM or CDN.
82
88
 
83
89
  Import only what you need:
90
+
84
91
  ```ts
85
- import { mermaidPlugin } from '@pinkpixel/marzipan/plugins/mermaidPlugin';
92
+ import { mermaidPlugin } from "@pinkpixel/marzipan/plugins/mermaidPlugin";
86
93
  ```
87
94
 
88
95
  ## 🎬 Bundled Actions
89
96
 
90
97
  The `src/actions` module ships a zero-dependency markdown formatting toolkit. All actions accept an `HTMLTextAreaElement`:
91
98
 
92
- | Action | Description |
93
- |--------|-------------|
94
- | `toggleBold` | Toggle `**bold**` |
95
- | `toggleItalic` | Toggle `_italic_` |
96
- | `toggleCode` | Toggle `` `code` `` |
97
- | `toggleStrikethrough` | Toggle `~~strikethrough~~` or `~text~` |
98
- | `insertHorizontalRule` | Insert `---` divider |
99
- | `insertLink` | Insert `[text](url)` |
100
- | `toggleBulletList` | Toggle bullet list |
101
- | `toggleNumberedList` | Toggle numbered list |
102
- | `toggleTaskList` | Toggle task list (`- [ ]`) |
103
- | `toggleQuote` | Toggle `> blockquote` |
104
- | `insertHeader(level)` | Insert `#` through `######` |
105
- | `toggleH1` / `toggleH2` / `toggleH3` | Toggle specific heading level |
106
- | `applyCustomFormat` | Apply a custom format rule |
99
+ | Action | Description |
100
+ | ------------------------------------ | -------------------------------------- |
101
+ | `toggleBold` | Toggle `**bold**` |
102
+ | `toggleItalic` | Toggle `_italic_` |
103
+ | `toggleCode` | Toggle `` `code` `` |
104
+ | `toggleStrikethrough` | Toggle `~~strikethrough~~` or `~text~` |
105
+ | `insertHorizontalRule` | Insert `---` divider |
106
+ | `insertLink` | Insert `[text](url)` |
107
+ | `toggleBulletList` | Toggle bullet list |
108
+ | `toggleNumberedList` | Toggle numbered list |
109
+ | `toggleTaskList` | Toggle task list (`- [ ]`) |
110
+ | `toggleQuote` | Toggle `> blockquote` |
111
+ | `insertHeader(level)` | Insert `#` through `######` |
112
+ | `toggleH1` / `toggleH2` / `toggleH3` | Toggle specific heading level |
113
+ | `applyCustomFormat` | Apply a custom format rule |
107
114
 
108
115
  ## 📚 Documentation
109
116
 
110
117
  All guides live in `/docs`:
118
+
111
119
  - `docs/README.md` – orientation & navigation.
112
120
  - `docs/quick-start.md` – install, instantiate, and wire up actions/plugins.
113
121
  - `docs/api.md` – class API, action helpers, TypeScript signatures.
114
122
  - `docs/plugins.md` – plugin catalogue, configuration, and bundling tips.
115
- - `docs/block-handles.md` – Block Handles Plugin guide.
116
123
  - `docs/types.d.ts` – generated type definitions.
117
124
 
118
125
  The new [CHANGELOG](CHANGELOG.md) tracks releases and major documentation updates.
@@ -125,16 +132,44 @@ Read [OVERVIEW.md](OVERVIEW.md) for architecture, tooling, and roadmap context,
125
132
 
126
133
  Run these from the repository root:
127
134
 
128
- | Script | Purpose |
129
- |--------|---------|
130
- | `npm run dev` | Library build in watch mode |
131
- | `npm run build` | Type check then bundle to `dist/` |
132
- | `npm run typecheck` | Strict TypeScript validation |
133
- | `npm run lint` | ESLint flat config |
134
- | `npm run prettier` | Format source and docs |
135
+ | Script | Purpose |
136
+ | ------------------- | --------------------------------- |
137
+ | `npm run dev` | Library build in watch mode |
138
+ | `npm run build` | Type check then bundle to `dist/` |
139
+ | `npm run typecheck` | Strict TypeScript validation |
140
+ | `npm run lint` | ESLint flat config |
141
+ | `npm run prettier` | Format source and docs |
135
142
 
136
143
  The Bakeshop has its own scripts inside `bakeshop-demo/` (`dev`, `build`, `preview`, `lint`, `typecheck`).
137
144
 
145
+ ## 🚀 Deployment
146
+
147
+ ### Docs Site → `marzipan.pinkpixel.dev`
148
+
149
+ The docs are built with [VitePress](https://vitepress.dev) and deployed to **Cloudflare Pages** (project: `marzipan-docs`).
150
+
151
+ ```bash
152
+ # 1. Build the VitePress site (outputs to docs-site/)
153
+ npm run docs:build
154
+
155
+ # 2. Deploy to Cloudflare Pages
156
+ wrangler pages deploy docs-site --project-name marzipan-docs
157
+ ```
158
+
159
+ ### Bakeshop Demo → `bakeshop.pinkpixel.dev`
160
+
161
+ The interactive playground is a Vite + React app deployed to **Cloudflare Pages** (project: `marzipan-bakeshop`).
162
+
163
+ ```bash
164
+ # 1. Build the main library first
165
+ npm run build
166
+
167
+ # 2. Build and deploy the demo
168
+ cd bakeshop-demo
169
+ npm run build
170
+ wrangler pages deploy dist --project-name marzipan-bakeshop
171
+ ```
172
+
138
173
  ## 🤝 Contributing
139
174
 
140
175
  Pull requests are welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) for the development workflow, coding standards, and Node.js requirements (20+).
@@ -0,0 +1,152 @@
1
+ import { e as x, c as O, g as m, k as P, h as p, j as w, l as c, m as A, n as I, t as N, o as E } from "./_baseUniq-s5uZhHMt.js";
2
+ import { aR as g, ar as F, aS as M, aT as T, aU as _, aV as l, aW as $, aX as B, aY as S, aZ as y } from "./mermaid.core-cSWK5aGH.js";
3
+ var R = /\s/;
4
+ function G(n) {
5
+ for (var r = n.length; r-- && R.test(n.charAt(r)); )
6
+ ;
7
+ return r;
8
+ }
9
+ var H = /^\s+/;
10
+ function L(n) {
11
+ return n && n.slice(0, G(n) + 1).replace(H, "");
12
+ }
13
+ var o = NaN, W = /^[-+]0x[0-9a-f]+$/i, X = /^0b[01]+$/i, Y = /^0o[0-7]+$/i, q = parseInt;
14
+ function z(n) {
15
+ if (typeof n == "number")
16
+ return n;
17
+ if (x(n))
18
+ return o;
19
+ if (g(n)) {
20
+ var r = typeof n.valueOf == "function" ? n.valueOf() : n;
21
+ n = g(r) ? r + "" : r;
22
+ }
23
+ if (typeof n != "string")
24
+ return n === 0 ? n : +n;
25
+ n = L(n);
26
+ var t = X.test(n);
27
+ return t || Y.test(n) ? q(n.slice(2), t ? 2 : 8) : W.test(n) ? o : +n;
28
+ }
29
+ var v = 1 / 0, C = 17976931348623157e292;
30
+ function K(n) {
31
+ if (!n)
32
+ return n === 0 ? n : 0;
33
+ if (n = z(n), n === v || n === -v) {
34
+ var r = n < 0 ? -1 : 1;
35
+ return r * C;
36
+ }
37
+ return n === n ? n : 0;
38
+ }
39
+ function U(n) {
40
+ var r = K(n), t = r % 1;
41
+ return r === r ? t ? r - t : r : 0;
42
+ }
43
+ function fn(n) {
44
+ var r = n == null ? 0 : n.length;
45
+ return r ? O(n) : [];
46
+ }
47
+ var b = Object.prototype, Z = b.hasOwnProperty, dn = F(function(n, r) {
48
+ n = Object(n);
49
+ var t = -1, i = r.length, a = i > 2 ? r[2] : void 0;
50
+ for (a && M(r[0], r[1], a) && (i = 1); ++t < i; )
51
+ for (var f = r[t], e = T(f), s = -1, d = e.length; ++s < d; ) {
52
+ var u = e[s], h = n[u];
53
+ (h === void 0 || _(h, b[u]) && !Z.call(n, u)) && (n[u] = f[u]);
54
+ }
55
+ return n;
56
+ });
57
+ function un(n) {
58
+ var r = n == null ? 0 : n.length;
59
+ return r ? n[r - 1] : void 0;
60
+ }
61
+ function D(n) {
62
+ return function(r, t, i) {
63
+ var a = Object(r);
64
+ if (!l(r)) {
65
+ var f = m(t);
66
+ r = P(r), t = function(s) {
67
+ return f(a[s], s, a);
68
+ };
69
+ }
70
+ var e = n(r, t, i);
71
+ return e > -1 ? a[f ? r[e] : e] : void 0;
72
+ };
73
+ }
74
+ var J = Math.max;
75
+ function Q(n, r, t) {
76
+ var i = n == null ? 0 : n.length;
77
+ if (!i)
78
+ return -1;
79
+ var a = t == null ? 0 : U(t);
80
+ return a < 0 && (a = J(i + a, 0)), p(n, m(r), a);
81
+ }
82
+ var hn = D(Q);
83
+ function V(n, r) {
84
+ var t = -1, i = l(n) ? Array(n.length) : [];
85
+ return w(n, function(a, f, e) {
86
+ i[++t] = r(a, f, e);
87
+ }), i;
88
+ }
89
+ function gn(n, r) {
90
+ var t = $(n) ? c : V;
91
+ return t(n, m(r));
92
+ }
93
+ var j = Object.prototype, k = j.hasOwnProperty;
94
+ function nn(n, r) {
95
+ return n != null && k.call(n, r);
96
+ }
97
+ function mn(n, r) {
98
+ return n != null && A(n, r, nn);
99
+ }
100
+ function rn(n, r) {
101
+ return n < r;
102
+ }
103
+ function tn(n, r, t) {
104
+ for (var i = -1, a = n.length; ++i < a; ) {
105
+ var f = n[i], e = r(f);
106
+ if (e != null && (s === void 0 ? e === e && !x(e) : t(e, s)))
107
+ var s = e, d = f;
108
+ }
109
+ return d;
110
+ }
111
+ function on(n) {
112
+ return n && n.length ? tn(n, B, rn) : void 0;
113
+ }
114
+ function an(n, r, t, i) {
115
+ if (!g(n))
116
+ return n;
117
+ r = I(r, n);
118
+ for (var a = -1, f = r.length, e = f - 1, s = n; s != null && ++a < f; ) {
119
+ var d = N(r[a]), u = t;
120
+ if (d === "__proto__" || d === "constructor" || d === "prototype")
121
+ return n;
122
+ if (a != e) {
123
+ var h = s[d];
124
+ u = void 0, u === void 0 && (u = g(h) ? h : S(r[a + 1]) ? [] : {});
125
+ }
126
+ y(s, d, u), s = s[d];
127
+ }
128
+ return n;
129
+ }
130
+ function vn(n, r, t) {
131
+ for (var i = -1, a = r.length, f = {}; ++i < a; ) {
132
+ var e = r[i], s = E(n, e);
133
+ t(s, e) && an(f, I(e, n), s);
134
+ }
135
+ return f;
136
+ }
137
+ export {
138
+ rn as a,
139
+ tn as b,
140
+ V as c,
141
+ vn as d,
142
+ on as e,
143
+ fn as f,
144
+ hn as g,
145
+ mn as h,
146
+ dn as i,
147
+ U as j,
148
+ un as l,
149
+ gn as m,
150
+ K as t
151
+ };
152
+ //# sourceMappingURL=_basePickBy-D4kyG5Tu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_basePickBy-D4kyG5Tu.js","sources":["../node_modules/lodash-es/_trimmedEndIndex.js","../node_modules/lodash-es/_baseTrim.js","../node_modules/lodash-es/toNumber.js","../node_modules/lodash-es/toFinite.js","../node_modules/lodash-es/toInteger.js","../node_modules/lodash-es/flatten.js","../node_modules/lodash-es/defaults.js","../node_modules/lodash-es/last.js","../node_modules/lodash-es/_createFind.js","../node_modules/lodash-es/findIndex.js","../node_modules/lodash-es/find.js","../node_modules/lodash-es/_baseMap.js","../node_modules/lodash-es/map.js","../node_modules/lodash-es/_baseHas.js","../node_modules/lodash-es/has.js","../node_modules/lodash-es/_baseLt.js","../node_modules/lodash-es/_baseExtremum.js","../node_modules/lodash-es/min.js","../node_modules/lodash-es/_baseSet.js","../node_modules/lodash-es/_basePickBy.js"],"sourcesContent":["/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nexport default trimmedEndIndex;\n","import trimmedEndIndex from './_trimmedEndIndex.js';\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nexport default baseTrim;\n","import baseTrim from './_baseTrim.js';\nimport isObject from './isObject.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nexport default toNumber;\n","import toNumber from './toNumber.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nexport default toFinite;\n","import toFinite from './toFinite.js';\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nexport default toInteger;\n","import baseFlatten from './_baseFlatten.js';\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n}\n\nexport default flatten;\n","import baseRest from './_baseRest.js';\nimport eq from './eq.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport keysIn from './keysIn.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns own and inherited enumerable string keyed properties of source\n * objects to the destination object for all destination properties that\n * resolve to `undefined`. Source objects are applied from left to right.\n * Once a property is set, additional values of the same property are ignored.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaultsDeep\n * @example\n *\n * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\nvar defaults = baseRest(function(object, sources) {\n object = Object(object);\n\n var index = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n length = 1;\n }\n\n while (++index < length) {\n var source = sources[index];\n var props = keysIn(source);\n var propsIndex = -1;\n var propsLength = props.length;\n\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n\n if (value === undefined ||\n (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n object[key] = source[key];\n }\n }\n }\n\n return object;\n});\n\nexport default defaults;\n","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nexport default last;\n","import baseIteratee from './_baseIteratee.js';\nimport isArrayLike from './isArrayLike.js';\nimport keys from './keys.js';\n\n/**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\nfunction createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = baseIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n}\n\nexport default createFind;\n","import baseFindIndex from './_baseFindIndex.js';\nimport baseIteratee from './_baseIteratee.js';\nimport toInteger from './toInteger.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\nfunction findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index);\n}\n\nexport default findIndex;\n","import createFind from './_createFind.js';\nimport findIndex from './findIndex.js';\n\n/**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\nvar find = createFind(findIndex);\n\nexport default find;\n","import baseEach from './_baseEach.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nexport default baseMap;\n","import arrayMap from './_arrayMap.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseMap from './_baseMap.js';\nimport isArray from './isArray.js';\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nexport default map;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n}\n\nexport default baseHas;\n","import baseHas from './_baseHas.js';\nimport hasPath from './_hasPath.js';\n\n/**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\nfunction has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n}\n\nexport default has;\n","/**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\nfunction baseLt(value, other) {\n return value < other;\n}\n\nexport default baseLt;\n","import isSymbol from './isSymbol.js';\n\n/**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\nfunction baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n}\n\nexport default baseExtremum;\n","import baseExtremum from './_baseExtremum.js';\nimport baseLt from './_baseLt.js';\nimport identity from './identity.js';\n\n/**\n * Computes the minimum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * _.min([4, 2, 8, 6]);\n * // => 2\n *\n * _.min([]);\n * // => undefined\n */\nfunction min(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseLt)\n : undefined;\n}\n\nexport default min;\n","import assignValue from './_assignValue.js';\nimport castPath from './_castPath.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\nfunction baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n}\n\nexport default baseSet;\n","import baseGet from './_baseGet.js';\nimport baseSet from './_baseSet.js';\nimport castPath from './_castPath.js';\n\n/**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\nfunction basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n}\n\nexport default basePickBy;\n"],"names":["reWhitespace","trimmedEndIndex","string","index","reTrimStart","baseTrim","NAN","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","toNumber","value","isSymbol","isObject","other","isBinary","INFINITY","MAX_INTEGER","toFinite","sign","toInteger","result","remainder","flatten","array","length","baseFlatten","objectProto","hasOwnProperty","defaults","baseRest","object","sources","guard","isIterateeCall","source","props","keysIn","propsIndex","propsLength","key","eq","last","createFind","findIndexFunc","collection","predicate","fromIndex","iterable","isArrayLike","iteratee","baseIteratee","keys","nativeMax","findIndex","baseFindIndex","find","baseMap","baseEach","map","func","isArray","arrayMap","baseHas","has","path","hasPath","baseLt","baseExtremum","comparator","current","computed","min","identity","baseSet","customizer","castPath","lastIndex","nested","toKey","newValue","objValue","isIndex","assignValue","basePickBy","paths","baseGet"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]}