patron-oop 1.45.0 → 1.46.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/patron.cjs +106 -35
  3. package/dist/patron.cjs.map +1 -1
  4. package/dist/patron.d.ts +40 -1
  5. package/dist/patron.js +103 -36
  6. package/dist/patron.js.map +1 -1
  7. package/dist/patron.min.js +1 -1
  8. package/dist/patron.min.mjs +1 -1
  9. package/dist/patron.min.mjs.map +1 -1
  10. package/dist/patron.mjs +103 -36
  11. package/dist/patron.mjs.map +1 -1
  12. package/docs/README.md +3 -0
  13. package/docs/assets/css/base.css +42 -0
  14. package/docs/assets/favicon/android-icon-144x144.png +0 -0
  15. package/docs/assets/favicon/android-icon-192x192.png +0 -0
  16. package/docs/assets/favicon/android-icon-36x36.png +0 -0
  17. package/docs/assets/favicon/android-icon-48x48.png +0 -0
  18. package/docs/assets/favicon/android-icon-72x72.png +0 -0
  19. package/docs/assets/favicon/android-icon-96x96.png +0 -0
  20. package/docs/assets/favicon/apple-icon-114x114.png +0 -0
  21. package/docs/assets/favicon/apple-icon-120x120.png +0 -0
  22. package/docs/assets/favicon/apple-icon-144x144.png +0 -0
  23. package/docs/assets/favicon/apple-icon-152x152.png +0 -0
  24. package/docs/assets/favicon/apple-icon-180x180.png +0 -0
  25. package/docs/assets/favicon/apple-icon-57x57.png +0 -0
  26. package/docs/assets/favicon/apple-icon-60x60.png +0 -0
  27. package/docs/assets/favicon/apple-icon-72x72.png +0 -0
  28. package/docs/assets/favicon/apple-icon-76x76.png +0 -0
  29. package/docs/assets/favicon/apple-icon-precomposed.png +0 -0
  30. package/docs/assets/favicon/apple-icon.png +0 -0
  31. package/docs/assets/favicon/browserconfig.xml +2 -0
  32. package/docs/assets/favicon/favicon-16x16.png +0 -0
  33. package/docs/assets/favicon/favicon-32x32.png +0 -0
  34. package/docs/assets/favicon/favicon-96x96.png +0 -0
  35. package/docs/assets/favicon/favicon.ico +0 -0
  36. package/docs/assets/favicon/manifest.json +41 -0
  37. package/docs/assets/favicon/ms-icon-144x144.png +0 -0
  38. package/docs/assets/favicon/ms-icon-150x150.png +0 -0
  39. package/docs/assets/favicon/ms-icon-310x310.png +0 -0
  40. package/docs/assets/favicon/ms-icon-70x70.png +0 -0
  41. package/docs/assets/img/404.jpg +0 -0
  42. package/docs/assets/img/angular_16.jpg +0 -0
  43. package/docs/assets/img/angular_32.jpg +0 -0
  44. package/docs/assets/img/eo_16.jpg +0 -0
  45. package/docs/assets/img/eo_big.png +0 -0
  46. package/docs/assets/img/github_16.jpg +0 -0
  47. package/docs/assets/img/logo.jpg +0 -0
  48. package/docs/assets/img/philosofy/observable.jpg +0 -0
  49. package/docs/assets/img/philosofy/responsible.jpg +0 -0
  50. package/docs/assets/img/philosofy/result.jpg +0 -0
  51. package/docs/assets/img/philosofy/tell.jpg +0 -0
  52. package/docs/assets/img/react_16.jpg +0 -0
  53. package/docs/assets/img/react_32.jpg +0 -0
  54. package/docs/assets/img/vue_16.jpg +0 -0
  55. package/docs/assets/img/vue_32.jpg +0 -0
  56. package/docs/assets/js/components/linkDynamic.mjs +11 -0
  57. package/docs/assets/js/components/linkReloadable.mjs +13 -0
  58. package/docs/assets/js/entrypoints/compatibility.mjs +31 -0
  59. package/docs/assets/js/entrypoints/components.mjs +2 -0
  60. package/docs/assets/js/entrypoints/examples.mjs +25 -0
  61. package/docs/assets/js/entrypoints/factory.mjs +20 -0
  62. package/docs/assets/js/entrypoints/guest.mjs +61 -0
  63. package/docs/assets/js/entrypoints/index.mjs +110 -0
  64. package/docs/assets/js/entrypoints/integrations.mjs +36 -0
  65. package/docs/assets/js/entrypoints/patron.mjs +46 -0
  66. package/docs/assets/js/entrypoints/source.mjs +76 -0
  67. package/docs/assets/js/entrypoints/terminology.mjs +51 -0
  68. package/docs/assets/js/entrypoints/utils.mjs +61 -0
  69. package/docs/assets/js/lib/StyleFetched.mjs +14 -0
  70. package/docs/assets/js/routing.mjs +110 -0
  71. package/docs/assets/schemes/dip.html +28 -0
  72. package/docs/favicon.ico +0 -0
  73. package/docs/index-dev.html +346 -0
  74. package/docs/index.html +346 -0
  75. package/docs/manifest.json +41 -0
  76. package/docs/pages/404.html +9 -0
  77. package/docs/pages/common/layout.html +17 -0
  78. package/docs/pages/compatibility/dip.html +82 -0
  79. package/docs/pages/compatibility/elegant-objects.html +373 -0
  80. package/docs/pages/compatibility/layout.html +17 -0
  81. package/docs/pages/examples/errors.html +167 -0
  82. package/docs/pages/examples/index.html +10 -0
  83. package/docs/pages/examples.html +41 -0
  84. package/docs/pages/factory/index.html +18 -0
  85. package/docs/pages/factory.html +36 -0
  86. package/docs/pages/guest/guest-applied.html +51 -0
  87. package/docs/pages/guest/guest-cast.html +219 -0
  88. package/docs/pages/guest/guest-disposable.html +147 -0
  89. package/docs/pages/guest/guest-executor-applied.html +65 -0
  90. package/docs/pages/guest/guest-object.html +101 -0
  91. package/docs/pages/guest/guest-pool.html +107 -0
  92. package/docs/pages/guest/guest-sync.html +66 -0
  93. package/docs/pages/guest/index.html +115 -0
  94. package/docs/pages/guest.html +59 -0
  95. package/docs/pages/index.html +72 -0
  96. package/docs/pages/integrations/angular.html +5 -0
  97. package/docs/pages/integrations/layout.html +17 -0
  98. package/docs/pages/integrations/react.html +7 -0
  99. package/docs/pages/integrations/vue.html +102 -0
  100. package/docs/pages/patron/index.html +140 -0
  101. package/docs/pages/patron/patron-applied.html +66 -0
  102. package/docs/pages/patron/patron-executor-applied.html +94 -0
  103. package/docs/pages/patron/patron-once.html +110 -0
  104. package/docs/pages/patron/patron-pool.html +99 -0
  105. package/docs/pages/patron.html +50 -0
  106. package/docs/pages/philosofy.html +210 -0
  107. package/docs/pages/source/index.html +167 -0
  108. package/docs/pages/source/source-active.html +113 -0
  109. package/docs/pages/source/source-all.html +129 -0
  110. package/docs/pages/source/source-applied.html +73 -0
  111. package/docs/pages/source/source-dynamic.html +93 -0
  112. package/docs/pages/source/source-executor-applied.html +64 -0
  113. package/docs/pages/source/source-map.html +192 -0
  114. package/docs/pages/source/source-once.html +73 -0
  115. package/docs/pages/source/source-race.html +171 -0
  116. package/docs/pages/source/source-sequence.html +160 -0
  117. package/docs/pages/source/source-with-pool.html +102 -0
  118. package/docs/pages/source/source.html +167 -0
  119. package/docs/pages/source.html +68 -0
  120. package/docs/pages/terminology/guest.html +14 -0
  121. package/docs/pages/terminology/index.html +6 -0
  122. package/docs/pages/terminology/introduction.html +25 -0
  123. package/docs/pages/terminology/patron.html +10 -0
  124. package/docs/pages/terminology/source.html +55 -0
  125. package/docs/pages/terminology/visitor.html +19 -0
  126. package/docs/pages/terminology.html +53 -0
  127. package/docs/pages/utils/give.html +47 -0
  128. package/docs/pages/utils/index.html +24 -0
  129. package/docs/pages/utils/is-guest-aware.html +22 -0
  130. package/docs/pages/utils/is-guest.html +21 -0
  131. package/docs/pages/utils/is-patron-in-pools.html +53 -0
  132. package/docs/pages/utils/private.html +44 -0
  133. package/docs/pages/utils/remove-patron-from-pools.html +57 -0
  134. package/docs/pages/utils/value.html +47 -0
  135. package/docs/pages/utils.html +61 -0
  136. package/eslint.config.mjs +6 -0
  137. package/package.json +1 -1
  138. package/src/Patron/PatronApplied.ts +22 -0
  139. package/src/Patron/PatronExecutorApplied.ts +25 -0
  140. package/src/index.ts +4 -0
@@ -0,0 +1,346 @@
1
+ <!DOCTYPE html>
2
+ <html lang="ru">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta
6
+ name="viewport"
7
+ content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"
8
+ />
9
+ <meta
10
+ http-equiv="X-UA-Compatible"
11
+ content="ie=edge"
12
+ />
13
+ <title>Идет загрузка...</title>
14
+ <link
15
+ rel="stylesheet"
16
+ href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/atom-one-dark.min.css"
17
+ />
18
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js"></script>
19
+ <script src="//cdnjs.cloudflare.com/ajax/libs/highlightjs-line-numbers.js/2.9.0/highlightjs-line-numbers.min.js"></script>
20
+ <link
21
+ rel="apple-touch-icon"
22
+ sizes="57x57"
23
+ href="./assets/favicon/apple-icon-57x57.png"
24
+ />
25
+ <link
26
+ rel="apple-touch-icon"
27
+ sizes="60x60"
28
+ href="./assets/favicon/apple-icon-60x60.png"
29
+ />
30
+ <link
31
+ rel="apple-touch-icon"
32
+ sizes="72x72"
33
+ href="./assets/favicon/apple-icon-72x72.png"
34
+ />
35
+ <link
36
+ rel="apple-touch-icon"
37
+ sizes="76x76"
38
+ href="./assets/favicon/apple-icon-76x76.png"
39
+ />
40
+ <link
41
+ rel="apple-touch-icon"
42
+ sizes="114x114"
43
+ href="./assets/favicon/apple-icon-114x114.png"
44
+ />
45
+ <link
46
+ rel="apple-touch-icon"
47
+ sizes="120x120"
48
+ href="./assets/favicon/apple-icon-120x120.png"
49
+ />
50
+ <link
51
+ rel="apple-touch-icon"
52
+ sizes="144x144"
53
+ href="./assets/favicon/apple-icon-144x144.png"
54
+ />
55
+ <link
56
+ rel="apple-touch-icon"
57
+ sizes="152x152"
58
+ href="./assets/favicon/apple-icon-152x152.png"
59
+ />
60
+ <link
61
+ rel="apple-touch-icon"
62
+ sizes="180x180"
63
+ href="./assets/favicon/apple-icon-180x180.png"
64
+ />
65
+ <link
66
+ rel="icon"
67
+ type="image/png"
68
+ sizes="192x192"
69
+ href="./assets/favicon/android-icon-192x192.png"
70
+ />
71
+ <link
72
+ rel="icon"
73
+ type="image/png"
74
+ sizes="32x32"
75
+ href="./assets/favicon/favicon-32x32.png"
76
+ />
77
+ <link
78
+ rel="icon"
79
+ type="image/png"
80
+ sizes="96x96"
81
+ href="./assets/favicon/favicon-96x96.png"
82
+ />
83
+ <link
84
+ rel="icon"
85
+ type="image/png"
86
+ sizes="16x16"
87
+ href="./assets/favicon/favicon-16x16.png"
88
+ />
89
+ <link
90
+ rel="manifest"
91
+ href="./manifest.json"
92
+ />
93
+ <meta
94
+ name="msapplication-TileColor"
95
+ content="#ffffff"
96
+ />
97
+ <meta
98
+ name="msapplication-TileImage"
99
+ content="./assets/favicon/ms-icon-144x144.png"
100
+ />
101
+ <meta
102
+ name="theme-color"
103
+ content="#ffffff"
104
+ />
105
+ <link
106
+ rel="stylesheet"
107
+ href="./assets/css/base.css"
108
+ />
109
+ <script type="importmap">
110
+ {
111
+ "imports": {
112
+ "patron-oop": "http://127.0.0.1:5502/dist/patron.min.mjs",
113
+ "patron-web-api": "http://127.0.0.1:5501/dist/patron-web-api.min.mjs",
114
+ "patron-components": "http://127.0.0.1:5500/dist/patron-components.min.mjs"
115
+ }
116
+ }
117
+ </script>
118
+ </head>
119
+
120
+ <body class="flex flex-col h-full global-body body-loading">
121
+ <header class="text-gray-600 body-font">
122
+ <div
123
+ class="container mx-auto flex flex-wrap p-5 flex-col md:flex-row items-center menu"
124
+ >
125
+ <div
126
+ class="flex title-font font-medium items-center text-gray-900 mb-4 md:mb-0"
127
+ >
128
+ <a
129
+ href="/"
130
+ class="ml-3 text-xl flex gap-2 items-center"
131
+ >
132
+ <img
133
+ src="./assets/img/logo.jpg"
134
+ width="40"
135
+ height="44"
136
+ />
137
+ Patron
138
+ </a>
139
+ </div>
140
+ <nav
141
+ class="md:mr-auto md:ml-4 md:py-1 md:pl-4 md:border-l md:border-gray-400 flex flex-wrap items-center text-base justify-center"
142
+ >
143
+ <a
144
+ class="mr-5 hover:text-gray-900"
145
+ href="/philosofy"
146
+ >Философия</a
147
+ >
148
+ <a
149
+ class="mr-5 hover:text-gray-900"
150
+ href="/guest"
151
+ >Guest</a
152
+ >
153
+ <a
154
+ class="mr-5 hover:text-gray-900"
155
+ href="/patron"
156
+ >Patron</a
157
+ >
158
+ <a
159
+ class="mr-5 hover:text-gray-900"
160
+ href="/source"
161
+ >Source</a
162
+ >
163
+ </nav>
164
+ <button
165
+ onclick="location.href='https://github.com/kosukhin/patron'"
166
+ class="inline-flex gap-1 items-center bg-gray-100 border-0 py-1 px-3 focus:outline-none hover:bg-gray-200 rounded text-base mt-4 md:mt-0"
167
+ >
168
+ <img
169
+ src="./assets/img/github_16.jpg"
170
+ width="16"
171
+ height="16"
172
+ />
173
+ GitHub
174
+ <svg
175
+ fill="none"
176
+ stroke="currentColor"
177
+ stroke-linecap="round"
178
+ stroke-linejoin="round"
179
+ stroke-width="2"
180
+ class="w-4 h-4 ml-1"
181
+ viewBox="0 0 24 24"
182
+ >
183
+ <path d="M5 12h14M12 5l7 7-7 7"></path>
184
+ </svg>
185
+ </button>
186
+ </div>
187
+ </header>
188
+ <article class="container mx-auto p-5">
189
+ <div class="loader">
190
+ <div class="w-full flex justify-center">
191
+ <div
192
+ class="inline-block h-8 w-8 animate-spin rounded-full border-4 border-solid border-current border-e-transparent align-[-0.125em] text-indigo-500 motion-reduce:animate-[spin_1.5s_linear_infinite]"
193
+ role="status"
194
+ >
195
+ <span
196
+ class="!absolute !-m-px !h-px !w-px !overflow-hidden !whitespace-nowrap !border-0 !p-0 ![clip:rect(0,0,0,0)]"
197
+ >Loading...</span
198
+ >
199
+ </div>
200
+ </div>
201
+ </div>
202
+ <div class="page-area"></div>
203
+ </article>
204
+ <footer class="text-gray-600 body-font mt-auto">
205
+ <div class="border-t border-gray-200">
206
+ <div class="container px-5 py-8 flex flex-wrap gap-6 mx-auto">
207
+ <div>
208
+ <h6
209
+ class="mb-4 flex flex-wrap justify-center font-semibold uppercase md:justify-start"
210
+ >
211
+ Интеграции
212
+ </h6>
213
+ <div class="flex flex-col gap-2 menu">
214
+ <a
215
+ class="flex gap-1 items-center"
216
+ href="/integrations/vue"
217
+ >
218
+ <img
219
+ src="./assets/img/vue_16.jpg"
220
+ width="16"
221
+ />
222
+ Vue
223
+ </a>
224
+ <a
225
+ class="flex gap-1 items-center"
226
+ href="/integrations/react"
227
+ >
228
+ <img
229
+ src="./assets/img/react_16.jpg"
230
+ width="16"
231
+ />
232
+ React
233
+ </a>
234
+ <a
235
+ class="flex gap-1 items-center"
236
+ href="/integrations/angular"
237
+ >
238
+ <img
239
+ src="./assets/img/angular_16.jpg"
240
+ width="16"
241
+ />
242
+ Angular
243
+ </a>
244
+ </div>
245
+ </div>
246
+ <div>
247
+ <h6
248
+ class="mb-4 flex justify-center font-semibold uppercase md:justify-start"
249
+ >
250
+ Совместимость
251
+ </h6>
252
+ <div class="flex flex-col gap-2 menu">
253
+ <a
254
+ href="/compatibility/elegant-objects"
255
+ class="flex gap-1 items-center"
256
+ >
257
+ <img
258
+ src="./assets/img/eo_16.jpg"
259
+ width="16"
260
+ />
261
+ Elegant Objects
262
+ </a>
263
+ <a
264
+ href="/compatibility/dip"
265
+ class="flex gap-1 items-center"
266
+ >
267
+ DIP
268
+ </a>
269
+ </div>
270
+ </div>
271
+ <div>
272
+ <h6
273
+ class="mb-4 flex justify-center font-semibold uppercase md:justify-start"
274
+ >
275
+ Дополнительно
276
+ </h6>
277
+ <div class="flex flex-col gap-2 menu">
278
+ <div class="flex gap-1 items-center">
279
+ <a href="/utils">Утилиты</a>
280
+ </div>
281
+ <div class="flex gap-1 items-center">
282
+ <a href="/terminology">Термины</a>
283
+ </div>
284
+ <div class="flex gap-1 items-center">
285
+ <a href="/examples">Примеры</a>
286
+ </div>
287
+ </div>
288
+ </div>
289
+ <div>
290
+ <h6 class="mb-4 flex font-semibold uppercase md:justify-start">
291
+ Библиотеки
292
+ </h6>
293
+ <div class="flex flex-col gap-2 menu">
294
+ <div class="flex gap-1 items-center">
295
+ <a
296
+ href="https://kosukhin.github.io/patron-components.site/"
297
+ target="_blank"
298
+ >Patron-Компоненты</a
299
+ >
300
+ </div>
301
+ <div class="flex gap-1 items-center">
302
+ <a
303
+ href="https://kosukhin.github.io/patron-web-api.site/"
304
+ target="_blank"
305
+ >Patron-WEB-API</a
306
+ >
307
+ </div>
308
+ <div class="flex gap-1 items-center">
309
+ <a
310
+ href="https://kosukhin.github.io/patron-web-api.site/"
311
+ target="_blank"
312
+ >Patron Редактор схем</a
313
+ >
314
+ </div>
315
+ </div>
316
+ </div>
317
+ </div>
318
+ </div>
319
+ <div class="bg-gray-100">
320
+ <div
321
+ class="container mx-auto py-4 px-5 flex flex-wrap flex-col sm:flex-row"
322
+ >
323
+ <p class="text-gray-500 text-sm">
324
+ © 2025 Patron —
325
+ <a
326
+ href="https://github.com/kosukhin/patron"
327
+ class="text-gray-600 ml-1"
328
+ target="_blank"
329
+ rel="noopener noreferrer"
330
+ >@patron-oop</a
331
+ >
332
+ </p>
333
+ <span
334
+ class="sm:ml-auto sm:mt-0 mt-2 sm:w-auto w-full sm:text-left text-center text-gray-500 text-sm"
335
+ >
336
+ for responsible objects
337
+ </span>
338
+ </div>
339
+ </div>
340
+ </footer>
341
+ <script
342
+ src="./assets/js/entrypoints/index.mjs"
343
+ type="module"
344
+ ></script>
345
+ </body>
346
+ </html>
@@ -0,0 +1,346 @@
1
+ <!DOCTYPE html>
2
+ <html lang="ru">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta
6
+ name="viewport"
7
+ content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"
8
+ />
9
+ <meta
10
+ http-equiv="X-UA-Compatible"
11
+ content="ie=edge"
12
+ />
13
+ <title>Идет загрузка...</title>
14
+ <link
15
+ rel="stylesheet"
16
+ href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/atom-one-dark.min.css"
17
+ />
18
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js"></script>
19
+ <script src="//cdnjs.cloudflare.com/ajax/libs/highlightjs-line-numbers.js/2.9.0/highlightjs-line-numbers.min.js"></script>
20
+ <link
21
+ rel="apple-touch-icon"
22
+ sizes="57x57"
23
+ href="./assets/favicon/apple-icon-57x57.png"
24
+ />
25
+ <link
26
+ rel="apple-touch-icon"
27
+ sizes="60x60"
28
+ href="./assets/favicon/apple-icon-60x60.png"
29
+ />
30
+ <link
31
+ rel="apple-touch-icon"
32
+ sizes="72x72"
33
+ href="./assets/favicon/apple-icon-72x72.png"
34
+ />
35
+ <link
36
+ rel="apple-touch-icon"
37
+ sizes="76x76"
38
+ href="./assets/favicon/apple-icon-76x76.png"
39
+ />
40
+ <link
41
+ rel="apple-touch-icon"
42
+ sizes="114x114"
43
+ href="./assets/favicon/apple-icon-114x114.png"
44
+ />
45
+ <link
46
+ rel="apple-touch-icon"
47
+ sizes="120x120"
48
+ href="./assets/favicon/apple-icon-120x120.png"
49
+ />
50
+ <link
51
+ rel="apple-touch-icon"
52
+ sizes="144x144"
53
+ href="./assets/favicon/apple-icon-144x144.png"
54
+ />
55
+ <link
56
+ rel="apple-touch-icon"
57
+ sizes="152x152"
58
+ href="./assets/favicon/apple-icon-152x152.png"
59
+ />
60
+ <link
61
+ rel="apple-touch-icon"
62
+ sizes="180x180"
63
+ href="./assets/favicon/apple-icon-180x180.png"
64
+ />
65
+ <link
66
+ rel="icon"
67
+ type="image/png"
68
+ sizes="192x192"
69
+ href="./assets/favicon/android-icon-192x192.png"
70
+ />
71
+ <link
72
+ rel="icon"
73
+ type="image/png"
74
+ sizes="32x32"
75
+ href="./assets/favicon/favicon-32x32.png"
76
+ />
77
+ <link
78
+ rel="icon"
79
+ type="image/png"
80
+ sizes="96x96"
81
+ href="./assets/favicon/favicon-96x96.png"
82
+ />
83
+ <link
84
+ rel="icon"
85
+ type="image/png"
86
+ sizes="16x16"
87
+ href="./assets/favicon/favicon-16x16.png"
88
+ />
89
+ <link
90
+ rel="manifest"
91
+ href="./manifest.json"
92
+ />
93
+ <meta
94
+ name="msapplication-TileColor"
95
+ content="#ffffff"
96
+ />
97
+ <meta
98
+ name="msapplication-TileImage"
99
+ content="./assets/favicon/ms-icon-144x144.png"
100
+ />
101
+ <meta
102
+ name="theme-color"
103
+ content="#ffffff"
104
+ />
105
+ <link
106
+ rel="stylesheet"
107
+ href="./assets/css/base.css"
108
+ />
109
+ <script type="importmap">
110
+ {
111
+ "imports": {
112
+ "patron-oop": "https://cdn.jsdelivr.net/npm/patron-oop@1.45.0/dist/patron.min.mjs",
113
+ "patron-web-api": "https://cdn.jsdelivr.net/npm/patron-web-api/dist/patron-web-api.min.mjs",
114
+ "patron-components": "https://cdn.jsdelivr.net/npm/patron-oop-components@1.18.0/dist/patron-components.min.mjs"
115
+ }
116
+ }
117
+ </script>
118
+ </head>
119
+
120
+ <body class="flex flex-col h-full global-body body-loading">
121
+ <header class="text-gray-600 body-font">
122
+ <div
123
+ class="container mx-auto flex flex-wrap p-5 flex-col md:flex-row items-center menu"
124
+ >
125
+ <div
126
+ class="flex title-font font-medium items-center text-gray-900 mb-4 md:mb-0"
127
+ >
128
+ <a
129
+ href="/"
130
+ class="ml-3 text-xl flex gap-2 items-center"
131
+ >
132
+ <img
133
+ src="./assets/img/logo.jpg"
134
+ width="40"
135
+ height="44"
136
+ />
137
+ Patron
138
+ </a>
139
+ </div>
140
+ <nav
141
+ class="md:mr-auto md:ml-4 md:py-1 md:pl-4 md:border-l md:border-gray-400 flex flex-wrap items-center text-base justify-center"
142
+ >
143
+ <a
144
+ class="mr-5 hover:text-gray-900"
145
+ href="/philosofy"
146
+ >Философия</a
147
+ >
148
+ <a
149
+ class="mr-5 hover:text-gray-900"
150
+ href="/guest"
151
+ >Guest</a
152
+ >
153
+ <a
154
+ class="mr-5 hover:text-gray-900"
155
+ href="/patron"
156
+ >Patron</a
157
+ >
158
+ <a
159
+ class="mr-5 hover:text-gray-900"
160
+ href="/source"
161
+ >Source</a
162
+ >
163
+ </nav>
164
+ <button
165
+ onclick="location.href='https://github.com/kosukhin/patron'"
166
+ class="inline-flex gap-1 items-center bg-gray-100 border-0 py-1 px-3 focus:outline-none hover:bg-gray-200 rounded text-base mt-4 md:mt-0"
167
+ >
168
+ <img
169
+ src="./assets/img/github_16.jpg"
170
+ width="16"
171
+ height="16"
172
+ />
173
+ GitHub
174
+ <svg
175
+ fill="none"
176
+ stroke="currentColor"
177
+ stroke-linecap="round"
178
+ stroke-linejoin="round"
179
+ stroke-width="2"
180
+ class="w-4 h-4 ml-1"
181
+ viewBox="0 0 24 24"
182
+ >
183
+ <path d="M5 12h14M12 5l7 7-7 7"></path>
184
+ </svg>
185
+ </button>
186
+ </div>
187
+ </header>
188
+ <article class="container mx-auto p-5">
189
+ <div class="loader">
190
+ <div class="w-full flex justify-center">
191
+ <div
192
+ class="inline-block h-8 w-8 animate-spin rounded-full border-4 border-solid border-current border-e-transparent align-[-0.125em] text-indigo-500 motion-reduce:animate-[spin_1.5s_linear_infinite]"
193
+ role="status"
194
+ >
195
+ <span
196
+ class="!absolute !-m-px !h-px !w-px !overflow-hidden !whitespace-nowrap !border-0 !p-0 ![clip:rect(0,0,0,0)]"
197
+ >Loading...</span
198
+ >
199
+ </div>
200
+ </div>
201
+ </div>
202
+ <div class="page-area"></div>
203
+ </article>
204
+ <footer class="text-gray-600 body-font mt-auto">
205
+ <div class="border-t border-gray-200">
206
+ <div class="container px-5 py-8 flex flex-wrap gap-6 mx-auto">
207
+ <div>
208
+ <h6
209
+ class="mb-4 flex flex-wrap justify-center font-semibold uppercase md:justify-start"
210
+ >
211
+ Интеграции
212
+ </h6>
213
+ <div class="flex flex-col gap-2 menu">
214
+ <a
215
+ class="flex gap-1 items-center"
216
+ href="/integrations/vue"
217
+ >
218
+ <img
219
+ src="./assets/img/vue_16.jpg"
220
+ width="16"
221
+ />
222
+ Vue
223
+ </a>
224
+ <a
225
+ class="flex gap-1 items-center"
226
+ href="/integrations/react"
227
+ >
228
+ <img
229
+ src="./assets/img/react_16.jpg"
230
+ width="16"
231
+ />
232
+ React
233
+ </a>
234
+ <a
235
+ class="flex gap-1 items-center"
236
+ href="/integrations/angular"
237
+ >
238
+ <img
239
+ src="./assets/img/angular_16.jpg"
240
+ width="16"
241
+ />
242
+ Angular
243
+ </a>
244
+ </div>
245
+ </div>
246
+ <div>
247
+ <h6
248
+ class="mb-4 flex justify-center font-semibold uppercase md:justify-start"
249
+ >
250
+ Совместимость
251
+ </h6>
252
+ <div class="flex flex-col gap-2 menu">
253
+ <a
254
+ href="/compatibility/elegant-objects"
255
+ class="flex gap-1 items-center"
256
+ >
257
+ <img
258
+ src="./assets/img/eo_16.jpg"
259
+ width="16"
260
+ />
261
+ Elegant Objects
262
+ </a>
263
+ <a
264
+ href="/compatibility/dip"
265
+ class="flex gap-1 items-center"
266
+ >
267
+ DIP
268
+ </a>
269
+ </div>
270
+ </div>
271
+ <div>
272
+ <h6
273
+ class="mb-4 flex justify-center font-semibold uppercase md:justify-start"
274
+ >
275
+ Дополнительно
276
+ </h6>
277
+ <div class="flex flex-col gap-2 menu">
278
+ <div class="flex gap-1 items-center">
279
+ <a href="/utils">Утилиты</a>
280
+ </div>
281
+ <div class="flex gap-1 items-center">
282
+ <a href="/terminology">Термины</a>
283
+ </div>
284
+ <div class="flex gap-1 items-center">
285
+ <a href="/examples">Примеры</a>
286
+ </div>
287
+ </div>
288
+ </div>
289
+ <div>
290
+ <h6 class="mb-4 flex font-semibold uppercase md:justify-start">
291
+ Библиотеки
292
+ </h6>
293
+ <div class="flex flex-col gap-2 menu">
294
+ <div class="flex gap-1 items-center">
295
+ <a
296
+ href="https://kosukhin.github.io/patron-components.site/"
297
+ target="_blank"
298
+ >Patron-Компоненты</a
299
+ >
300
+ </div>
301
+ <div class="flex gap-1 items-center">
302
+ <a
303
+ href="https://kosukhin.github.io/patron-web-api.site/"
304
+ target="_blank"
305
+ >Patron-WEB-API</a
306
+ >
307
+ </div>
308
+ <div class="flex gap-1 items-center">
309
+ <a
310
+ href="https://kosukhin.github.io/patron-web-api.site/"
311
+ target="_blank"
312
+ >Patron Редактор схем</a
313
+ >
314
+ </div>
315
+ </div>
316
+ </div>
317
+ </div>
318
+ </div>
319
+ <div class="bg-gray-100">
320
+ <div
321
+ class="container mx-auto py-4 px-5 flex flex-wrap flex-col sm:flex-row"
322
+ >
323
+ <p class="text-gray-500 text-sm">
324
+ © 2025 Patron —
325
+ <a
326
+ href="https://github.com/kosukhin/patron"
327
+ class="text-gray-600 ml-1"
328
+ target="_blank"
329
+ rel="noopener noreferrer"
330
+ >@patron-oop</a
331
+ >
332
+ </p>
333
+ <span
334
+ class="sm:ml-auto sm:mt-0 mt-2 sm:w-auto w-full sm:text-left text-center text-gray-500 text-sm"
335
+ >
336
+ for responsible objects
337
+ </span>
338
+ </div>
339
+ </div>
340
+ </footer>
341
+ <script
342
+ src="./assets/js/entrypoints/index.mjs"
343
+ type="module"
344
+ ></script>
345
+ </body>
346
+ </html>