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.
- package/CHANGELOG.md +12 -0
- package/dist/patron.cjs +106 -35
- package/dist/patron.cjs.map +1 -1
- package/dist/patron.d.ts +40 -1
- package/dist/patron.js +103 -36
- package/dist/patron.js.map +1 -1
- package/dist/patron.min.js +1 -1
- package/dist/patron.min.mjs +1 -1
- package/dist/patron.min.mjs.map +1 -1
- package/dist/patron.mjs +103 -36
- package/dist/patron.mjs.map +1 -1
- package/docs/README.md +3 -0
- package/docs/assets/css/base.css +42 -0
- package/docs/assets/favicon/android-icon-144x144.png +0 -0
- package/docs/assets/favicon/android-icon-192x192.png +0 -0
- package/docs/assets/favicon/android-icon-36x36.png +0 -0
- package/docs/assets/favicon/android-icon-48x48.png +0 -0
- package/docs/assets/favicon/android-icon-72x72.png +0 -0
- package/docs/assets/favicon/android-icon-96x96.png +0 -0
- package/docs/assets/favicon/apple-icon-114x114.png +0 -0
- package/docs/assets/favicon/apple-icon-120x120.png +0 -0
- package/docs/assets/favicon/apple-icon-144x144.png +0 -0
- package/docs/assets/favicon/apple-icon-152x152.png +0 -0
- package/docs/assets/favicon/apple-icon-180x180.png +0 -0
- package/docs/assets/favicon/apple-icon-57x57.png +0 -0
- package/docs/assets/favicon/apple-icon-60x60.png +0 -0
- package/docs/assets/favicon/apple-icon-72x72.png +0 -0
- package/docs/assets/favicon/apple-icon-76x76.png +0 -0
- package/docs/assets/favicon/apple-icon-precomposed.png +0 -0
- package/docs/assets/favicon/apple-icon.png +0 -0
- package/docs/assets/favicon/browserconfig.xml +2 -0
- package/docs/assets/favicon/favicon-16x16.png +0 -0
- package/docs/assets/favicon/favicon-32x32.png +0 -0
- package/docs/assets/favicon/favicon-96x96.png +0 -0
- package/docs/assets/favicon/favicon.ico +0 -0
- package/docs/assets/favicon/manifest.json +41 -0
- package/docs/assets/favicon/ms-icon-144x144.png +0 -0
- package/docs/assets/favicon/ms-icon-150x150.png +0 -0
- package/docs/assets/favicon/ms-icon-310x310.png +0 -0
- package/docs/assets/favicon/ms-icon-70x70.png +0 -0
- package/docs/assets/img/404.jpg +0 -0
- package/docs/assets/img/angular_16.jpg +0 -0
- package/docs/assets/img/angular_32.jpg +0 -0
- package/docs/assets/img/eo_16.jpg +0 -0
- package/docs/assets/img/eo_big.png +0 -0
- package/docs/assets/img/github_16.jpg +0 -0
- package/docs/assets/img/logo.jpg +0 -0
- package/docs/assets/img/philosofy/observable.jpg +0 -0
- package/docs/assets/img/philosofy/responsible.jpg +0 -0
- package/docs/assets/img/philosofy/result.jpg +0 -0
- package/docs/assets/img/philosofy/tell.jpg +0 -0
- package/docs/assets/img/react_16.jpg +0 -0
- package/docs/assets/img/react_32.jpg +0 -0
- package/docs/assets/img/vue_16.jpg +0 -0
- package/docs/assets/img/vue_32.jpg +0 -0
- package/docs/assets/js/components/linkDynamic.mjs +11 -0
- package/docs/assets/js/components/linkReloadable.mjs +13 -0
- package/docs/assets/js/entrypoints/compatibility.mjs +31 -0
- package/docs/assets/js/entrypoints/components.mjs +2 -0
- package/docs/assets/js/entrypoints/examples.mjs +25 -0
- package/docs/assets/js/entrypoints/factory.mjs +20 -0
- package/docs/assets/js/entrypoints/guest.mjs +61 -0
- package/docs/assets/js/entrypoints/index.mjs +110 -0
- package/docs/assets/js/entrypoints/integrations.mjs +36 -0
- package/docs/assets/js/entrypoints/patron.mjs +46 -0
- package/docs/assets/js/entrypoints/source.mjs +76 -0
- package/docs/assets/js/entrypoints/terminology.mjs +51 -0
- package/docs/assets/js/entrypoints/utils.mjs +61 -0
- package/docs/assets/js/lib/StyleFetched.mjs +14 -0
- package/docs/assets/js/routing.mjs +110 -0
- package/docs/assets/schemes/dip.html +28 -0
- package/docs/favicon.ico +0 -0
- package/docs/index-dev.html +346 -0
- package/docs/index.html +346 -0
- package/docs/manifest.json +41 -0
- package/docs/pages/404.html +9 -0
- package/docs/pages/common/layout.html +17 -0
- package/docs/pages/compatibility/dip.html +82 -0
- package/docs/pages/compatibility/elegant-objects.html +373 -0
- package/docs/pages/compatibility/layout.html +17 -0
- package/docs/pages/examples/errors.html +167 -0
- package/docs/pages/examples/index.html +10 -0
- package/docs/pages/examples.html +41 -0
- package/docs/pages/factory/index.html +18 -0
- package/docs/pages/factory.html +36 -0
- package/docs/pages/guest/guest-applied.html +51 -0
- package/docs/pages/guest/guest-cast.html +219 -0
- package/docs/pages/guest/guest-disposable.html +147 -0
- package/docs/pages/guest/guest-executor-applied.html +65 -0
- package/docs/pages/guest/guest-object.html +101 -0
- package/docs/pages/guest/guest-pool.html +107 -0
- package/docs/pages/guest/guest-sync.html +66 -0
- package/docs/pages/guest/index.html +115 -0
- package/docs/pages/guest.html +59 -0
- package/docs/pages/index.html +72 -0
- package/docs/pages/integrations/angular.html +5 -0
- package/docs/pages/integrations/layout.html +17 -0
- package/docs/pages/integrations/react.html +7 -0
- package/docs/pages/integrations/vue.html +102 -0
- package/docs/pages/patron/index.html +140 -0
- package/docs/pages/patron/patron-applied.html +66 -0
- package/docs/pages/patron/patron-executor-applied.html +94 -0
- package/docs/pages/patron/patron-once.html +110 -0
- package/docs/pages/patron/patron-pool.html +99 -0
- package/docs/pages/patron.html +50 -0
- package/docs/pages/philosofy.html +210 -0
- package/docs/pages/source/index.html +167 -0
- package/docs/pages/source/source-active.html +113 -0
- package/docs/pages/source/source-all.html +129 -0
- package/docs/pages/source/source-applied.html +73 -0
- package/docs/pages/source/source-dynamic.html +93 -0
- package/docs/pages/source/source-executor-applied.html +64 -0
- package/docs/pages/source/source-map.html +192 -0
- package/docs/pages/source/source-once.html +73 -0
- package/docs/pages/source/source-race.html +171 -0
- package/docs/pages/source/source-sequence.html +160 -0
- package/docs/pages/source/source-with-pool.html +102 -0
- package/docs/pages/source/source.html +167 -0
- package/docs/pages/source.html +68 -0
- package/docs/pages/terminology/guest.html +14 -0
- package/docs/pages/terminology/index.html +6 -0
- package/docs/pages/terminology/introduction.html +25 -0
- package/docs/pages/terminology/patron.html +10 -0
- package/docs/pages/terminology/source.html +55 -0
- package/docs/pages/terminology/visitor.html +19 -0
- package/docs/pages/terminology.html +53 -0
- package/docs/pages/utils/give.html +47 -0
- package/docs/pages/utils/index.html +24 -0
- package/docs/pages/utils/is-guest-aware.html +22 -0
- package/docs/pages/utils/is-guest.html +21 -0
- package/docs/pages/utils/is-patron-in-pools.html +53 -0
- package/docs/pages/utils/private.html +44 -0
- package/docs/pages/utils/remove-patron-from-pools.html +57 -0
- package/docs/pages/utils/value.html +47 -0
- package/docs/pages/utils.html +61 -0
- package/eslint.config.mjs +6 -0
- package/package.json +1 -1
- package/src/Patron/PatronApplied.ts +22 -0
- package/src/Patron/PatronExecutorApplied.ts +25 -0
- 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>
|
package/docs/index.html
ADDED
@@ -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>
|