@seamlet/astro 2.0.0 → 2.2.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 +11 -0
- package/README.md +16 -2
- package/components/RequestForm.astro +12 -4
- package/dist/bridge.js +129 -41
- package/dist/{chunk-CTS7Q45A.js → chunk-6MBWE5QT.js} +1 -1
- package/dist/{chunk-XZDRTVJH.js → chunk-CRGGWROR.js} +11 -11
- package/dist/{chunk-PAGIPRTS.js → chunk-M5XOTSSU.js} +116 -29
- package/dist/{chunk-NOAAAA5T.js → chunk-TR7TTMQR.js} +2 -2
- package/dist/cli.js +1 -1
- package/dist/client.js +1 -1
- package/dist/feeds.js +1 -1
- package/dist/index.js +3 -3
- package/dist/preview-requests.js +3 -3
- package/dist/protocol.js +2 -2
- package/dist/{request-sending-WCEHXPWV.js → request-sending-UQEY57Y6.js} +1 -1
- package/dist/routes/media.js +3 -3
- package/dist/schema.d.ts +27 -4
- package/dist/schema.js +11 -1
- package/dist/site.js +2 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 2.2.0
|
|
4
|
+
|
|
5
|
+
- Moving parts: `data-cms-popover` (`POPOVER_ATTRIBUTE`) on a part of the page that moves, or on a marked element, has its fields edited in the editor's popover instead of typed in place, and in the editor the part holds still while the pointer is over it and once one of its fields is chosen: the bridge pauses its CSS animations and transitions and sets `data-cms-held` (`HELD_ATTRIBUTE`), by which a site stops motion it runs with a script. The protocol is the same, so every editor reads it.
|
|
6
|
+
|
|
7
|
+
## 2.1.0
|
|
8
|
+
|
|
9
|
+
- The visitor's consent is a document of its own, as 152-ФЗ asks since 1 September 2025: `privacyConsentFields()` and `privacyConsentTextOf(source)` make it, at `/consent` of the site (`CONSENT_PAGE_PATH`), and the checkbox of `RequestForm.astro` links to it and to the policy («Даю согласие на обработку персональных данных и принимаю политику их обработки»; `consentHref` names another page).
|
|
10
|
+
- `privacyPolicyTextOf` follows the sections Роскомнадзор recommends a policy to have: general provisions, purposes with the data, subjects, ways, terms and erasure of each, legal grounds, the data and whose it is, how it is processed and protected (the commission to Seamlet, storage in Russia, notice of leaks), and how it is corrected, erased and asked about, with the terms of the law.
|
|
11
|
+
|
|
12
|
+
A site with a form adds the page `/consent` (or passes `consentHref`).
|
|
13
|
+
|
|
3
14
|
## 2.0.0
|
|
4
15
|
|
|
5
16
|
- The consent of a form links to the business's own policy, a page of the site (`policyHref`, `/privacy` by default, `PRIVACY_PAGE_PATH`), not to texts kept by the CMS: the business is the operator of its visitors' data, and the CMS only passes requests on. `privacyPolicyFields()` is the policy as content and `privacyPolicyTextOf({ siteTitle, operator, forms })` a template to start it with.
|
package/README.md
CHANGED
|
@@ -373,6 +373,20 @@ A field is edited where it is seen, so the editor opens what hides it when a per
|
|
|
373
373
|
|
|
374
374
|
What was opened stays open while the page is rendered anew after every edit: a part is known again by its `id`, or else by the field marked on it, in it or around it.
|
|
375
375
|
|
|
376
|
+
### Moving parts
|
|
377
|
+
|
|
378
|
+
A text that moves (a marquee, a flipping board, a turning stamp) cannot be typed where it stands, and a moving thing is hard to click. Give such a part, or the marked element itself, the attribute `data-cms-popover` (`POPOVER_ATTRIBUTE`): its fields are edited in the editor's popover, never typed on the page, and in the editor the part holds still while the pointer is over it and once one of its fields is chosen. The bridge pauses the part's CSS animations and transitions itself and sets `data-cms-held` (`HELD_ATTRIBUTE`) on it; motion the site runs with a script stops while that attribute is there. Outside the editor nothing changes.
|
|
379
|
+
|
|
380
|
+
```astro
|
|
381
|
+
---
|
|
382
|
+
import { POPOVER_ATTRIBUTE } from "@seamlet/astro/schema";
|
|
383
|
+
---
|
|
384
|
+
|
|
385
|
+
<div class="marquee" {...{ [POPOVER_ATTRIBUTE]: "" }}>
|
|
386
|
+
<p {...edit("specials", "line")}>{content.specials.line}</p>
|
|
387
|
+
</div>
|
|
388
|
+
```
|
|
389
|
+
|
|
376
390
|
## Requests
|
|
377
391
|
|
|
378
392
|
A visitor sends the business a request from the site: «Обратный звонок», «Рассчитать стоимость», «Бронь столика». The site declares its forms, gives them to `defineSeamletSite` and renders them; the CMS passes every request on by mail to the people who edit the site and keeps nothing once it is delivered.
|
|
@@ -420,9 +434,9 @@ import { estimateForm } from "../forms";
|
|
|
420
434
|
|
|
421
435
|
The fields are `requestText` (a line), `requestLongText` (several lines), `requestPhone`, `requestEmail` and `requestChoice` (one of `options`); each may be `required`, and a text has a `maxLength` (200 for a line, 2000 for several by default). A field's name is a name such as `phone` or `preferredTime`. The form's `title` names its requests in the CMS and in the letters.
|
|
422
436
|
|
|
423
|
-
`RequestForm.astro` renders plain elements with classes (`seamlet-form`, `seamlet-form-field`, `seamlet-form-issue`, `seamlet-form-consent`, `seamlet-form-submit`, `seamlet-form-sent`, `seamlet-form-failed`), which the site styles from around it: `.contacts :global(.seamlet-form-field)`. Its props are the `form`, the words of the button (`submitLabel`), what the visitor reads once the request is sent or could not be (`sentText`, `failedText`), the
|
|
437
|
+
`RequestForm.astro` renders plain elements with classes (`seamlet-form`, `seamlet-form-field`, `seamlet-form-issue`, `seamlet-form-consent`, `seamlet-form-submit`, `seamlet-form-sent`, `seamlet-form-failed`), which the site styles from around it: `.contacts :global(.seamlet-form-field)`. Its props are the `form`, the words of the button (`submitLabel`), what the visitor reads once the request is sent or could not be (`sentText`, `failedText`), the pages of the visitor's consent and of the business's policy the checkbox links to (`consentHref` and `policyHref`, the site's own `/consent` and `/privacy` by default, `CONSENT_PAGE_PATH` and `PRIVACY_PAGE_PATH`) and `instance`, which tells apart two forms of the same id on one page.
|
|
424
438
|
|
|
425
|
-
The visitor consents with a checkbox of its own, never checked beforehand,
|
|
439
|
+
The visitor consents with a checkbox of its own, never checked beforehand, linking to two pages of the site: the consent, a document of its own as 152-ФЗ asks (`/consent` unless `consentHref` names another), and the business's policy (`/privacy` unless `policyHref` names another). The business is the operator of its visitors' data and publishes both; Seamlet only passes a request on by its commission. `privacyConsentFields()` and `privacyPolicyFields()` are the two as content the owner edits, and `privacyConsentTextOf(source)` and `privacyPolicyTextOf(source)` (`source` is `{ siteTitle, operator, forms }`) start them with the business's details and what its forms ask, the policy in the sections Роскомнадзор recommends: put them in the initial content and render each with `RichText` at its page. While the CMS has nobody to mail a site's requests to, it takes none, and the form says it could not send. Without a script the form is posted to the CMS, which answers with a page of its own; with the package's script (on every page, loaded only where a form is) the visitor stays on the page. The script checks what was typed with the code the CMS checks it with (`readRequestValues`), says what to fix under each field and sends the request.
|
|
426
440
|
|
|
427
441
|
The site's own code hears every step from events on the form element, which bubble:
|
|
428
442
|
|
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
// A form of the site's requests as plain elements, which the site styles from around it
|
|
3
3
|
// (`.contacts :global(.seamlet-form-field)`). Without a script it is a form posted to the CMS, and
|
|
4
4
|
// the CMS answers with a page of its own; the package's script sends it in place. The checkbox of
|
|
5
|
-
// consent stands apart from the fields and is never checked beforehand, as the law asks
|
|
6
|
-
//
|
|
5
|
+
// consent stands apart from the fields and is never checked beforehand, as the law asks, and links
|
|
6
|
+
// to the consent and the policy of the business, pages of the site itself.
|
|
7
7
|
import { cmsOrigin, siteId } from "virtual:seamlet/config";
|
|
8
8
|
import {
|
|
9
|
+
CONSENT_PAGE_PATH,
|
|
9
10
|
maxLengthOf,
|
|
10
11
|
PRIVACY_PAGE_PATH,
|
|
11
12
|
REQUEST_CONSENT_KEY,
|
|
@@ -25,6 +26,8 @@ interface Props {
|
|
|
25
26
|
readonly sentText?: string;
|
|
26
27
|
/** What the visitor reads when the request could not be sent. */
|
|
27
28
|
readonly failedText?: string;
|
|
29
|
+
/** Where the visitor's consent is: the site's `/consent` unless it says another page. */
|
|
30
|
+
readonly consentHref?: string;
|
|
28
31
|
/** Where the business's policy is: the site's `/privacy` unless it says another page. */
|
|
29
32
|
readonly policyHref?: string;
|
|
30
33
|
/** Tells two forms of the same id on one page apart, in the ids of their elements. */
|
|
@@ -37,6 +40,7 @@ const {
|
|
|
37
40
|
submitLabel = "Отправить",
|
|
38
41
|
sentText = "Спасибо! Заявка отправлена, мы скоро свяжемся с вами.",
|
|
39
42
|
failedText = "Не получилось отправить заявку. Попробуйте ещё раз чуть позже.",
|
|
43
|
+
consentHref = CONSENT_PAGE_PATH,
|
|
40
44
|
policyHref = PRIVACY_PAGE_PATH,
|
|
41
45
|
instance = form.id,
|
|
42
46
|
class: className,
|
|
@@ -142,9 +146,13 @@ const isLineField = (field: RequestField): field is LineField =>
|
|
|
142
146
|
aria-describedby={issueIdOf(REQUEST_CONSENT_KEY)}
|
|
143
147
|
/>
|
|
144
148
|
<label for={idOf(REQUEST_CONSENT_KEY)}>
|
|
145
|
-
Даю
|
|
149
|
+
Даю{" "}
|
|
150
|
+
<a href={consentHref} target="_blank" rel="noopener">
|
|
151
|
+
согласие на обработку персональных данных
|
|
152
|
+
</a>{" "}
|
|
153
|
+
и принимаю{" "}
|
|
146
154
|
<a href={policyHref} target="_blank" rel="noopener">
|
|
147
|
-
|
|
155
|
+
политику их обработки
|
|
148
156
|
</a>
|
|
149
157
|
</label>
|
|
150
158
|
<p
|
package/dist/bridge.js
CHANGED
|
@@ -18,9 +18,11 @@ import {
|
|
|
18
18
|
shortcutOf,
|
|
19
19
|
toggleList,
|
|
20
20
|
toggleMark
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-CRGGWROR.js";
|
|
22
22
|
import {
|
|
23
23
|
FIELD_PATH_ATTRIBUTE,
|
|
24
|
+
HELD_ATTRIBUTE,
|
|
25
|
+
POPOVER_ATTRIBUTE,
|
|
24
26
|
REVEALED_ATTRIBUTE,
|
|
25
27
|
REVEAL_ATTRIBUTE,
|
|
26
28
|
REVEAL_EVENT,
|
|
@@ -28,34 +30,12 @@ import {
|
|
|
28
30
|
readRichText,
|
|
29
31
|
resolveFieldPath,
|
|
30
32
|
safeHref
|
|
31
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-M5XOTSSU.js";
|
|
32
34
|
|
|
33
|
-
// src/bridge/
|
|
34
|
-
function
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
switch (target.field.kind) {
|
|
38
|
-
case "text":
|
|
39
|
-
return "plain";
|
|
40
|
-
case "richText":
|
|
41
|
-
return "rich";
|
|
42
|
-
case "number":
|
|
43
|
-
case "date":
|
|
44
|
-
case "time":
|
|
45
|
-
case "slug":
|
|
46
|
-
case "image":
|
|
47
|
-
case "file":
|
|
48
|
-
case "link":
|
|
49
|
-
case "url":
|
|
50
|
-
case "toggle":
|
|
51
|
-
case "choice":
|
|
52
|
-
case "choices":
|
|
53
|
-
case "reference":
|
|
54
|
-
case "references":
|
|
55
|
-
case "group":
|
|
56
|
-
case "collection":
|
|
57
|
-
return void 0;
|
|
58
|
-
}
|
|
35
|
+
// src/bridge/dom-nodes.ts
|
|
36
|
+
function asElement(value) {
|
|
37
|
+
const isElement = typeof value === "object" && value !== null && "nodeType" in value && value.nodeType === Node.ELEMENT_NODE;
|
|
38
|
+
return isElement ? value : void 0;
|
|
59
39
|
}
|
|
60
40
|
|
|
61
41
|
// src/bridge/event-listening.ts
|
|
@@ -97,12 +77,6 @@ function listenToAll(listenings) {
|
|
|
97
77
|
};
|
|
98
78
|
}
|
|
99
79
|
|
|
100
|
-
// src/bridge/dom-nodes.ts
|
|
101
|
-
function asElement(value) {
|
|
102
|
-
const isElement = typeof value === "object" && value !== null && "nodeType" in value && value.nodeType === Node.ELEMENT_NODE;
|
|
103
|
-
return isElement ? value : void 0;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
80
|
// src/bridge/page-markers.ts
|
|
107
81
|
var MARKER_SELECTOR = `[${FIELD_PATH_ATTRIBUTE}]`;
|
|
108
82
|
var HTML_NAMESPACE = "http://www.w3.org/1999/xhtml";
|
|
@@ -149,6 +123,115 @@ function isHtmlElement(value) {
|
|
|
149
123
|
return asElement(value)?.namespaceURI === HTML_NAMESPACE;
|
|
150
124
|
}
|
|
151
125
|
|
|
126
|
+
// src/bridge/held-motion.ts
|
|
127
|
+
var POPOVER_SELECTOR = `[${POPOVER_ATTRIBUTE}]`;
|
|
128
|
+
function isEditedInPopover(element) {
|
|
129
|
+
return element.closest(POPOVER_SELECTOR) !== null;
|
|
130
|
+
}
|
|
131
|
+
function holdMotionOnPage(document2) {
|
|
132
|
+
const paused = /* @__PURE__ */ new Map();
|
|
133
|
+
let hovered;
|
|
134
|
+
let chosenPath;
|
|
135
|
+
const chosenPart = () => {
|
|
136
|
+
if (chosenPath === void 0) return void 0;
|
|
137
|
+
const element = findMarkedElement(document2, chosenPath);
|
|
138
|
+
return element?.closest(POPOVER_SELECTOR) ?? void 0;
|
|
139
|
+
};
|
|
140
|
+
const update = () => {
|
|
141
|
+
const parts = /* @__PURE__ */ new Set([hovered, chosenPart()]);
|
|
142
|
+
for (const part of [...paused.keys()]) {
|
|
143
|
+
if (!parts.has(part)) release(part, paused);
|
|
144
|
+
}
|
|
145
|
+
for (const part of parts) {
|
|
146
|
+
if (part !== void 0 && !paused.has(part)) hold(part, paused);
|
|
147
|
+
}
|
|
148
|
+
};
|
|
149
|
+
const stopListening = listenToAll(
|
|
150
|
+
listeningsOf(document2, {
|
|
151
|
+
onPointerOver: (target) => {
|
|
152
|
+
hovered = partAround(target);
|
|
153
|
+
update();
|
|
154
|
+
},
|
|
155
|
+
onPointerLeave: () => {
|
|
156
|
+
hovered = void 0;
|
|
157
|
+
update();
|
|
158
|
+
},
|
|
159
|
+
onClick: (target) => {
|
|
160
|
+
const marked = markedElementAround(target);
|
|
161
|
+
const isMoving = marked !== void 0 && isEditedInPopover(marked.element);
|
|
162
|
+
chosenPath = isMoving ? marked.path : void 0;
|
|
163
|
+
update();
|
|
164
|
+
}
|
|
165
|
+
})
|
|
166
|
+
);
|
|
167
|
+
return {
|
|
168
|
+
holdAgain: update,
|
|
169
|
+
stop: () => {
|
|
170
|
+
stopListening();
|
|
171
|
+
for (const part of [...paused.keys()]) release(part, paused);
|
|
172
|
+
}
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
function listeningsOf(document2, listeners) {
|
|
176
|
+
return [
|
|
177
|
+
onDocument(document2, "mouseover", (event) => {
|
|
178
|
+
listeners.onPointerOver(event.target);
|
|
179
|
+
}),
|
|
180
|
+
onDocument(document2, "click", (event) => {
|
|
181
|
+
listeners.onClick(event.target);
|
|
182
|
+
}),
|
|
183
|
+
onElement(document2.documentElement, "mouseleave", listeners.onPointerLeave)
|
|
184
|
+
];
|
|
185
|
+
}
|
|
186
|
+
function partAround(target) {
|
|
187
|
+
return asElement(target)?.closest(POPOVER_SELECTOR) ?? void 0;
|
|
188
|
+
}
|
|
189
|
+
function hold(part, paused) {
|
|
190
|
+
const running = animationsOf(part).filter(
|
|
191
|
+
(animation) => animation.playState === "running"
|
|
192
|
+
);
|
|
193
|
+
for (const animation of running) animation.pause();
|
|
194
|
+
part.setAttribute(HELD_ATTRIBUTE, "");
|
|
195
|
+
paused.set(part, running);
|
|
196
|
+
}
|
|
197
|
+
function release(part, paused) {
|
|
198
|
+
for (const animation of paused.get(part) ?? []) animation.play();
|
|
199
|
+
part.removeAttribute(HELD_ATTRIBUTE);
|
|
200
|
+
paused.delete(part);
|
|
201
|
+
}
|
|
202
|
+
function animationsOf(part) {
|
|
203
|
+
if (typeof part.getAnimations !== "function") return [];
|
|
204
|
+
return part.getAnimations({ subtree: true });
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
// src/bridge/typed-fields.ts
|
|
208
|
+
function typedKindAt(schema, path) {
|
|
209
|
+
const target = resolveFieldPath(schema, path);
|
|
210
|
+
if (target?.kind !== "field") return void 0;
|
|
211
|
+
switch (target.field.kind) {
|
|
212
|
+
case "text":
|
|
213
|
+
return "plain";
|
|
214
|
+
case "richText":
|
|
215
|
+
return "rich";
|
|
216
|
+
case "number":
|
|
217
|
+
case "date":
|
|
218
|
+
case "time":
|
|
219
|
+
case "slug":
|
|
220
|
+
case "image":
|
|
221
|
+
case "file":
|
|
222
|
+
case "link":
|
|
223
|
+
case "url":
|
|
224
|
+
case "toggle":
|
|
225
|
+
case "choice":
|
|
226
|
+
case "choices":
|
|
227
|
+
case "reference":
|
|
228
|
+
case "references":
|
|
229
|
+
case "group":
|
|
230
|
+
case "collection":
|
|
231
|
+
return void 0;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
|
|
152
235
|
// src/bridge/page-reveals.ts
|
|
153
236
|
var DETAILS_SELECTOR = "details";
|
|
154
237
|
var REVEAL_SELECTOR = `[${REVEAL_ATTRIBUTE}]`;
|
|
@@ -456,20 +539,20 @@ function followPresses(document2, onRelease) {
|
|
|
456
539
|
clearTimeout(releaseTimer);
|
|
457
540
|
isPressed = true;
|
|
458
541
|
};
|
|
459
|
-
const
|
|
542
|
+
const release2 = () => {
|
|
460
543
|
if (!isPressed) return;
|
|
461
544
|
isPressed = false;
|
|
462
545
|
releaseTimer = setTimeout(onRelease, 0);
|
|
463
546
|
};
|
|
464
547
|
const releaseOnMove = (event) => {
|
|
465
|
-
if (event.buttons === 0)
|
|
548
|
+
if (event.buttons === 0) release2();
|
|
466
549
|
};
|
|
467
550
|
const stopListening = listenToAll([
|
|
468
551
|
onDocument(document2, "pointerdown", press),
|
|
469
|
-
onDocument(document2, "pointerup",
|
|
470
|
-
onDocument(document2, "pointercancel",
|
|
552
|
+
onDocument(document2, "pointerup", release2),
|
|
553
|
+
onDocument(document2, "pointercancel", release2),
|
|
471
554
|
onDocument(document2, "pointermove", releaseOnMove),
|
|
472
|
-
...onWindow(view, "blur",
|
|
555
|
+
...onWindow(view, "blur", release2)
|
|
473
556
|
]);
|
|
474
557
|
return {
|
|
475
558
|
isPressed: () => isPressed,
|
|
@@ -990,7 +1073,8 @@ function createPageTyping(options) {
|
|
|
990
1073
|
stop();
|
|
991
1074
|
const { path } = start;
|
|
992
1075
|
const element = findMarkedElement(options.document, path);
|
|
993
|
-
|
|
1076
|
+
const canType = element !== void 0 && !isEditedInPopover(element) && start.canTypeIn(element);
|
|
1077
|
+
if (!canType) {
|
|
994
1078
|
releasePrepared();
|
|
995
1079
|
send({ type: "typing-refused", path });
|
|
996
1080
|
reportIfOver();
|
|
@@ -1096,12 +1180,14 @@ function connectPage(document2, schema, send) {
|
|
|
1096
1180
|
onTypingOver: showHeldPage
|
|
1097
1181
|
});
|
|
1098
1182
|
const presses = followPresses(document2, showHeldPage);
|
|
1183
|
+
const motion = holdMotionOnPage(document2);
|
|
1099
1184
|
const renderer = createPageRenderer({
|
|
1100
1185
|
document: document2,
|
|
1101
1186
|
// Replacing the page under a text being typed would throw the typing away.
|
|
1102
1187
|
canReplacePage: () => !typing.isTyping(),
|
|
1103
1188
|
isPagePressed: presses.isPressed,
|
|
1104
1189
|
onRendered: () => {
|
|
1190
|
+
motion.holdAgain();
|
|
1105
1191
|
layout.reportNow();
|
|
1106
1192
|
send({ type: "rendered" });
|
|
1107
1193
|
},
|
|
@@ -1128,6 +1214,7 @@ function connectPage(document2, schema, send) {
|
|
|
1128
1214
|
typing.stop();
|
|
1129
1215
|
renderer.stop();
|
|
1130
1216
|
presses.stop();
|
|
1217
|
+
motion.stop();
|
|
1131
1218
|
layout.stop();
|
|
1132
1219
|
stopListening();
|
|
1133
1220
|
}
|
|
@@ -1170,7 +1257,8 @@ function clickOn(page, pointer) {
|
|
|
1170
1257
|
return;
|
|
1171
1258
|
}
|
|
1172
1259
|
const kind = typedKindAt(page.schema, pointer.path);
|
|
1173
|
-
|
|
1260
|
+
const canBeTyped = kind !== void 0 && !isEditedInPopover(pointer.element);
|
|
1261
|
+
if (canBeTyped) page.typing.prepare(pointer.element, kind);
|
|
1174
1262
|
page.send({
|
|
1175
1263
|
type: "click",
|
|
1176
1264
|
target: { path: pointer.path, point: pointer.point }
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
readRichText,
|
|
7
7
|
resolveFieldPath,
|
|
8
8
|
safeHref
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-M5XOTSSU.js";
|
|
10
10
|
|
|
11
11
|
// src/bridge/editor-shortcuts.ts
|
|
12
12
|
function shortcutOf(event) {
|
|
@@ -26,6 +26,15 @@ function shortcutOf(event) {
|
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
+
// src/bridge/marked-paths.ts
|
|
30
|
+
function closestMarkedPath(path, isMarked) {
|
|
31
|
+
for (let length = path.length; length > 0; length -= 1) {
|
|
32
|
+
const candidate = formatFieldPath(path.slice(0, length));
|
|
33
|
+
if (isMarked(candidate)) return candidate;
|
|
34
|
+
}
|
|
35
|
+
return void 0;
|
|
36
|
+
}
|
|
37
|
+
|
|
29
38
|
// src/bridge/image-fields.ts
|
|
30
39
|
function imageFieldAt(schema, path) {
|
|
31
40
|
const target = path === void 0 ? void 0 : resolveFieldPath(schema, path);
|
|
@@ -158,15 +167,6 @@ function carriesFiles(event) {
|
|
|
158
167
|
return event.dataTransfer?.types.includes("Files") === true;
|
|
159
168
|
}
|
|
160
169
|
|
|
161
|
-
// src/bridge/marked-paths.ts
|
|
162
|
-
function closestMarkedPath(path, isMarked) {
|
|
163
|
-
for (let length = path.length; length > 0; length -= 1) {
|
|
164
|
-
const candidate = formatFieldPath(path.slice(0, length));
|
|
165
|
-
if (isMarked(candidate)) return candidate;
|
|
166
|
-
}
|
|
167
|
-
return void 0;
|
|
168
|
-
}
|
|
169
|
-
|
|
170
170
|
// src/bridge/rich-text-edits.ts
|
|
171
171
|
function isCollapsed(selection) {
|
|
172
172
|
return selection.start.line === selection.end.line && selection.start.offset === selection.end.offset;
|
|
@@ -674,12 +674,12 @@ function lengthOf2(spans) {
|
|
|
674
674
|
|
|
675
675
|
export {
|
|
676
676
|
shortcutOf,
|
|
677
|
+
closestMarkedPath,
|
|
677
678
|
imageFieldAt,
|
|
678
679
|
PROTOCOL_VERSION,
|
|
679
680
|
readPageMessage,
|
|
680
681
|
readEditorMessage,
|
|
681
682
|
carriesFiles,
|
|
682
|
-
closestMarkedPath,
|
|
683
683
|
isCollapsed,
|
|
684
684
|
formatsAt,
|
|
685
685
|
linkSelectionAt,
|
|
@@ -987,6 +987,10 @@ var REVEAL_ATTRIBUTE = "data-cms-reveal";
|
|
|
987
987
|
var REVEALED_ATTRIBUTE = "data-cms-revealed";
|
|
988
988
|
var REVEAL_EVENT = "cms:reveal";
|
|
989
989
|
|
|
990
|
+
// src/schema/popover-markers.ts
|
|
991
|
+
var POPOVER_ATTRIBUTE = "data-cms-popover";
|
|
992
|
+
var HELD_ATTRIBUTE = "data-cms-held";
|
|
993
|
+
|
|
990
994
|
// src/schema/image-position.ts
|
|
991
995
|
var PERCENT = 100;
|
|
992
996
|
var STEPS_PER_PERCENT = 10;
|
|
@@ -1830,11 +1834,26 @@ function requestsPathOf(siteId) {
|
|
|
1830
1834
|
|
|
1831
1835
|
// src/schema/privacy-policy.ts
|
|
1832
1836
|
var PRIVACY_PAGE_PATH = "/privacy";
|
|
1833
|
-
var
|
|
1837
|
+
var CONSENT_PAGE_PATH = "/consent";
|
|
1834
1838
|
var ANSWER_WORKING_DAYS = 10;
|
|
1839
|
+
var ANSWER_EXTENSION_WORKING_DAYS = 5;
|
|
1840
|
+
var CORRECTION_WORKING_DAYS = 7;
|
|
1841
|
+
var UNLAWFUL_STOP_WORKING_DAYS = 3;
|
|
1842
|
+
var UNLAWFUL_ERASE_WORKING_DAYS = 10;
|
|
1843
|
+
var ERASE_DAYS = 30;
|
|
1835
1844
|
function privacyPolicyFields(options = {}) {
|
|
1845
|
+
return documentFields(
|
|
1846
|
+
options.label ?? "\u041F\u043E\u043B\u0438\u0442\u0438\u043A\u0430 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0438 \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445"
|
|
1847
|
+
);
|
|
1848
|
+
}
|
|
1849
|
+
function privacyConsentFields(options = {}) {
|
|
1850
|
+
return documentFields(
|
|
1851
|
+
options.label ?? "\u0421\u043E\u0433\u043B\u0430\u0441\u0438\u0435 \u043D\u0430 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0443 \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445"
|
|
1852
|
+
);
|
|
1853
|
+
}
|
|
1854
|
+
function documentFields(label) {
|
|
1836
1855
|
return group({
|
|
1837
|
-
label
|
|
1856
|
+
label,
|
|
1838
1857
|
fields: {
|
|
1839
1858
|
title: text({ label: "\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A", maxLength: 120 }),
|
|
1840
1859
|
text: richText({ label: "\u0422\u0435\u043A\u0441\u0442" })
|
|
@@ -1842,34 +1861,97 @@ function privacyPolicyFields(options = {}) {
|
|
|
1842
1861
|
});
|
|
1843
1862
|
}
|
|
1844
1863
|
function privacyPolicyTextOf(source) {
|
|
1864
|
+
const paragraphs = [
|
|
1865
|
+
...generalProvisionsOf(source),
|
|
1866
|
+
...purposesOf(source),
|
|
1867
|
+
...legalGroundsOf(),
|
|
1868
|
+
...dataScopeOf(source),
|
|
1869
|
+
...processingOf(),
|
|
1870
|
+
...subjectRequestsOf(source.operator),
|
|
1871
|
+
...finalProvisions()
|
|
1872
|
+
];
|
|
1873
|
+
return richTextOf(paragraphs.join("\n\n"));
|
|
1874
|
+
}
|
|
1875
|
+
function privacyConsentTextOf(source) {
|
|
1845
1876
|
const { operator, siteTitle } = source;
|
|
1846
|
-
const
|
|
1847
|
-
|
|
1848
|
-
|
|
1849
|
-
|
|
1850
|
-
|
|
1851
|
-
|
|
1852
|
-
|
|
1853
|
-
|
|
1854
|
-
|
|
1855
|
-
|
|
1856
|
-
|
|
1857
|
-
|
|
1858
|
-
|
|
1859
|
-
|
|
1860
|
-
|
|
1861
|
-
|
|
1862
|
-
|
|
1863
|
-
|
|
1864
|
-
|
|
1865
|
-
|
|
1866
|
-
|
|
1867
|
-
|
|
1868
|
-
|
|
1869
|
-
|
|
1870
|
-
|
|
1871
|
-
|
|
1872
|
-
|
|
1877
|
+
const paragraphs = [
|
|
1878
|
+
`\u041E\u0442\u043C\u0435\u0447\u0430\u044F \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u0435 \u0432 \u0444\u043E\u0440\u043C\u0435 \u0437\u0430\u044F\u0432\u043A\u0438 \u043D\u0430 \u0441\u0430\u0439\u0442\u0435 \xAB${siteTitle}\xBB \u0438 \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u044F\u044F \u0437\u0430\u044F\u0432\u043A\u0443, \u044F \u0441\u0432\u043E\u0431\u043E\u0434\u043D\u043E, \u0441\u0432\u043E\u0435\u0439 \u0432\u043E\u043B\u0435\u0439 \u0438 \u0432 \u0441\u0432\u043E\u0451\u043C \u0438\u043D\u0442\u0435\u0440\u0435\u0441\u0435 \u0434\u0430\u044E \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u0435 \u043D\u0430 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0443 \u043C\u043E\u0438\u0445 \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445 \u043D\u0430 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0445 \u0443\u0441\u043B\u043E\u0432\u0438\u044F\u0445.`,
|
|
1879
|
+
`1. \u041E\u043F\u0435\u0440\u0430\u0442\u043E\u0440: ${operatorDetailsOf(operator)}.`,
|
|
1880
|
+
`2. \u0426\u0435\u043B\u044C \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0438: ${PURPOSE}.`,
|
|
1881
|
+
`3. \u041F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435: ${sentDataOf(source.forms)}, \u0430 \u0442\u0430\u043A\u0436\u0435 \u0430\u0434\u0440\u0435\u0441 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B, \u0441 \u043A\u043E\u0442\u043E\u0440\u043E\u0439 \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0430 \u0437\u0430\u044F\u0432\u043A\u0430, \u0438 \u0432\u0440\u0435\u043C\u044F \u0435\u0451 \u043E\u0442\u043F\u0440\u0430\u0432\u043A\u0438.`,
|
|
1882
|
+
`4. \u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044F \u0441 \u0434\u0430\u043D\u043D\u044B\u043C\u0438: ${ACTIONS}. \u041E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0430 \u0441\u043C\u0435\u0448\u0430\u043D\u043D\u0430\u044F, \u0441 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u043C \u0441\u0440\u0435\u0434\u0441\u0442\u0432 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438.`,
|
|
1883
|
+
`5. \u041E\u043F\u0435\u0440\u0430\u0442\u043E\u0440 \u043F\u043E\u0440\u0443\u0447\u0430\u0435\u0442 \u043F\u0440\u0438\u0451\u043C \u0438 \u043F\u0435\u0440\u0435\u0434\u0430\u0447\u0443 \u0437\u0430\u044F\u0432\u043E\u043A ${PROCESSOR}. \u0421\u0435\u0440\u0432\u0438\u0441 \u043F\u0435\u0440\u0435\u0434\u0430\u0451\u0442 \u0437\u0430\u044F\u0432\u043A\u0443 \u041E\u043F\u0435\u0440\u0430\u0442\u043E\u0440\u0443 \u0438 \u043D\u0435 \u0445\u0440\u0430\u043D\u0438\u0442 \u0435\u0451 \u0434\u043E\u043B\u044C\u0448\u0435, \u0447\u0435\u043C \u043D\u0443\u0436\u043D\u043E \u0434\u043B\u044F \u0434\u043E\u0441\u0442\u0430\u0432\u043A\u0438. \u0414\u0430\u043D\u043D\u044B\u0435 \u043D\u0435 \u0440\u0430\u0441\u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u044F\u044E\u0442\u0441\u044F \u0438 \u043D\u0435 \u043F\u0435\u0440\u0435\u0434\u0430\u044E\u0442\u0441\u044F \u0437\u0430 \u043F\u0440\u0435\u0434\u0435\u043B\u044B \u0420\u043E\u0441\u0441\u0438\u0439\u0441\u043A\u043E\u0439 \u0424\u0435\u0434\u0435\u0440\u0430\u0446\u0438\u0438.`,
|
|
1884
|
+
`6. \u0421\u043E\u0433\u043B\u0430\u0441\u0438\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0443\u0435\u0442 \u0434\u043E \u0434\u043E\u0441\u0442\u0438\u0436\u0435\u043D\u0438\u044F \u0446\u0435\u043B\u0438 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0438, \u043D\u043E \u043D\u0435 \u0434\u043E\u043B\u044C\u0448\u0435 \u043E\u0434\u043D\u043E\u0433\u043E \u0433\u043E\u0434\u0430 \u0441\u043E \u0434\u043D\u044F \u043E\u0442\u043F\u0440\u0430\u0432\u043A\u0438 \u0437\u0430\u044F\u0432\u043A\u0438. \u042F \u043C\u043E\u0433\u0443 \u043E\u0442\u043E\u0437\u0432\u0430\u0442\u044C \u0435\u0433\u043E, \u043D\u0430\u043F\u0438\u0441\u0430\u0432 \u041E\u043F\u0435\u0440\u0430\u0442\u043E\u0440\u0443 \u043D\u0430 ${operator.email}; \u0442\u043E\u0433\u0434\u0430 \u041E\u043F\u0435\u0440\u0430\u0442\u043E\u0440 \u043F\u0440\u0435\u043A\u0440\u0430\u0442\u0438\u0442 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0443 \u0438 \u0443\u043D\u0438\u0447\u0442\u043E\u0436\u0438\u0442 \u0434\u0430\u043D\u043D\u044B\u0435 \u0432 \u0442\u0435\u0447\u0435\u043D\u0438\u0435 ${String(ERASE_DAYS)} \u0434\u043D\u0435\u0439, \u0435\u0441\u043B\u0438 \u0438\u043D\u043E\u0435 \u043D\u0435 \u043F\u0440\u0435\u0434\u0443\u0441\u043C\u043E\u0442\u0440\u0435\u043D\u043E \u0437\u0430\u043A\u043E\u043D\u043E\u043C.`,
|
|
1885
|
+
"7. \u041F\u043E\u0440\u044F\u0434\u043E\u043A \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0438 \u043C\u043E\u0438\u0445 \u0434\u0430\u043D\u043D\u044B\u0445 \u0438 \u043C\u043E\u0438 \u043F\u0440\u0430\u0432\u0430 \u043E\u043F\u0438\u0441\u0430\u043D\u044B \u0432 \u043F\u043E\u043B\u0438\u0442\u0438\u043A\u0435 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0438 \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445 \u041E\u043F\u0435\u0440\u0430\u0442\u043E\u0440\u0430, \u043E\u043F\u0443\u0431\u043B\u0438\u043A\u043E\u0432\u0430\u043D\u043D\u043E\u0439 \u043D\u0430 \u044D\u0442\u043E\u043C \u0441\u0430\u0439\u0442\u0435."
|
|
1886
|
+
];
|
|
1887
|
+
return richTextOf(paragraphs.join("\n\n"));
|
|
1888
|
+
}
|
|
1889
|
+
var PURPOSE = "\u0440\u0430\u0441\u0441\u043C\u043E\u0442\u0440\u0435\u043D\u0438\u0435 \u0437\u0430\u044F\u0432\u043A\u0438, \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u043D\u043E\u0439 \u0447\u0435\u0440\u0435\u0437 \u0444\u043E\u0440\u043C\u0443 \u0441\u0430\u0439\u0442\u0430, \u0438 \u0441\u0432\u044F\u0437\u044C \u0441 \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u0435\u043B\u0435\u043C \u043F\u043E \u043D\u0435\u0439";
|
|
1890
|
+
var ACTIONS = "\u0441\u0431\u043E\u0440, \u0437\u0430\u043F\u0438\u0441\u044C, \u0441\u0438\u0441\u0442\u0435\u043C\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044F, \u043D\u0430\u043A\u043E\u043F\u043B\u0435\u043D\u0438\u0435, \u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0435, \u0443\u0442\u043E\u0447\u043D\u0435\u043D\u0438\u0435 (\u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435, \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0435), \u0438\u0437\u0432\u043B\u0435\u0447\u0435\u043D\u0438\u0435, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435, \u043F\u0435\u0440\u0435\u0434\u0430\u0447\u0430 (\u043F\u0440\u0435\u0434\u043E\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435, \u0434\u043E\u0441\u0442\u0443\u043F), \u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435, \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u0435, \u0443\u043D\u0438\u0447\u0442\u043E\u0436\u0435\u043D\u0438\u0435";
|
|
1891
|
+
var PROCESSOR = "\u0441\u0435\u0440\u0432\u0438\u0441\u0443 Seamlet (seamlet.ru), \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u043E\u0431\u0440\u0430\u0431\u0430\u0442\u044B\u0432\u0430\u0435\u0442 \u0434\u0430\u043D\u043D\u044B\u0435 \u043F\u043E \u043F\u043E\u0440\u0443\u0447\u0435\u043D\u0438\u044E \u041E\u043F\u0435\u0440\u0430\u0442\u043E\u0440\u0430 \u0432 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u0447\u0430\u0441\u0442\u044C\u044E 3 \u0441\u0442\u0430\u0442\u044C\u0438 6 \u0424\u0435\u0434\u0435\u0440\u0430\u043B\u044C\u043D\u043E\u0433\u043E \u0437\u0430\u043A\u043E\u043D\u0430 \u2116 152-\u0424\u0417";
|
|
1892
|
+
function operatorDetailsOf(operator) {
|
|
1893
|
+
return `${operator.name}, \u0418\u041D\u041D ${operator.inn}, \u0430\u0434\u0440\u0435\u0441: ${operator.address}, \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u0430\u044F \u043F\u043E\u0447\u0442\u0430: ${operator.email}`;
|
|
1894
|
+
}
|
|
1895
|
+
function generalProvisionsOf({
|
|
1896
|
+
operator,
|
|
1897
|
+
siteTitle
|
|
1898
|
+
}) {
|
|
1899
|
+
return [
|
|
1900
|
+
"1. \u041E\u0431\u0449\u0438\u0435 \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u044F",
|
|
1901
|
+
`1.1. \u041F\u043E\u043B\u0438\u0442\u0438\u043A\u0430 \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442 \u043F\u043E\u0440\u044F\u0434\u043E\u043A \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0438 \u0438 \u043C\u0435\u0440\u044B \u0437\u0430\u0449\u0438\u0442\u044B \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u043E\u0431\u0440\u0430\u0431\u0430\u0442\u044B\u0432\u0430\u0435\u0442 ${operatorDetailsOf(operator)} (\u0434\u0430\u043B\u0435\u0435 \u2014 \u041E\u043F\u0435\u0440\u0430\u0442\u043E\u0440), \u0432 \u0441\u0432\u044F\u0437\u0438 \u0441 \u0440\u0430\u0431\u043E\u0442\u043E\u0439 \u0441\u0430\u0439\u0442\u0430 \xAB${siteTitle}\xBB (\u0434\u0430\u043B\u0435\u0435 \u2014 \u0421\u0430\u0439\u0442).`,
|
|
1902
|
+
"1.2. \u041F\u043E\u043B\u0438\u0442\u0438\u043A\u0430 \u0441\u043E\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0430 \u0432\u043E \u0438\u0441\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0435 \u043F\u0443\u043D\u043A\u0442\u0430 2 \u0447\u0430\u0441\u0442\u0438 1 \u0441\u0442\u0430\u0442\u044C\u0438 18.1 \u0424\u0435\u0434\u0435\u0440\u0430\u043B\u044C\u043D\u043E\u0433\u043E \u0437\u0430\u043A\u043E\u043D\u0430 \u043E\u0442 27.07.2006 \u2116 152-\u0424\u0417 \xAB\u041E \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445\xBB (\u0434\u0430\u043B\u0435\u0435 \u2014 \u0417\u0430\u043A\u043E\u043D) \u0441 \u0443\u0447\u0451\u0442\u043E\u043C \u0440\u0435\u043A\u043E\u043C\u0435\u043D\u0434\u0430\u0446\u0438\u0439 \u0420\u043E\u0441\u043A\u043E\u043C\u043D\u0430\u0434\u0437\u043E\u0440\u0430. \u041F\u043E\u043D\u044F\u0442\u0438\u044F \xAB\u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435\xBB, \xAB\u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0430\xBB, \xAB\u043E\u043F\u0435\u0440\u0430\u0442\u043E\u0440\xBB \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u044E\u0442\u0441\u044F \u0432 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F\u0445 \u0441\u0442\u0430\u0442\u044C\u0438 3 \u0417\u0430\u043A\u043E\u043D\u0430.",
|
|
1903
|
+
"1.3. \u041E\u043F\u0435\u0440\u0430\u0442\u043E\u0440 \u043E\u0431\u044F\u0437\u0430\u043D \u043E\u0431\u0440\u0430\u0431\u0430\u0442\u044B\u0432\u0430\u0442\u044C \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435 \u0437\u0430\u043A\u043E\u043D\u043D\u043E \u0438 \u0441\u043F\u0440\u0430\u0432\u0435\u0434\u043B\u0438\u0432\u043E, \u0442\u043E\u043B\u044C\u043A\u043E \u0432 \u0437\u0430\u044F\u0432\u043B\u0435\u043D\u043D\u044B\u0445 \u0446\u0435\u043B\u044F\u0445 \u0438 \u0432 \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E\u043C \u043E\u0431\u044A\u0451\u043C\u0435, \u043E\u0431\u0435\u0441\u043F\u0435\u0447\u0438\u0432\u0430\u0442\u044C \u0438\u0445 \u043A\u043E\u043D\u0444\u0438\u0434\u0435\u043D\u0446\u0438\u0430\u043B\u044C\u043D\u043E\u0441\u0442\u044C \u0438 \u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E\u0441\u0442\u044C, \u043E\u0442\u0432\u0435\u0447\u0430\u0442\u044C \u043D\u0430 \u043E\u0431\u0440\u0430\u0449\u0435\u043D\u0438\u044F \u0441\u0443\u0431\u044A\u0435\u043A\u0442\u043E\u0432 \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445 \u0438 \u0420\u043E\u0441\u043A\u043E\u043C\u043D\u0430\u0434\u0437\u043E\u0440\u0430 \u0432 \u0441\u0440\u043E\u043A\u0438, \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u043D\u044B\u0435 \u0417\u0430\u043A\u043E\u043D\u043E\u043C.",
|
|
1904
|
+
"1.4. \u0421\u0443\u0431\u044A\u0435\u043A\u0442 \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445 \u0432\u043F\u0440\u0430\u0432\u0435 \u043F\u043E\u043B\u0443\u0447\u0430\u0442\u044C \u0441\u0432\u0435\u0434\u0435\u043D\u0438\u044F \u043E\u0431 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0435 \u0441\u0432\u043E\u0438\u0445 \u0434\u0430\u043D\u043D\u044B\u0445, \u0442\u0440\u0435\u0431\u043E\u0432\u0430\u0442\u044C \u0438\u0445 \u0443\u0442\u043E\u0447\u043D\u0435\u043D\u0438\u044F, \u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u0438\u043B\u0438 \u0443\u043D\u0438\u0447\u0442\u043E\u0436\u0435\u043D\u0438\u044F, \u043E\u0442\u043E\u0437\u0432\u0430\u0442\u044C \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u0435, \u043E\u0431\u0436\u0430\u043B\u043E\u0432\u0430\u0442\u044C \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F \u041E\u043F\u0435\u0440\u0430\u0442\u043E\u0440\u0430 \u0432 \u0420\u043E\u0441\u043A\u043E\u043C\u043D\u0430\u0434\u0437\u043E\u0440\u0435 \u0438\u043B\u0438 \u0432 \u0441\u0443\u0434\u0435.",
|
|
1905
|
+
"1.5. \u041F\u043E\u043B\u0438\u0442\u0438\u043A\u0430 \u043E\u043F\u0443\u0431\u043B\u0438\u043A\u043E\u0432\u0430\u043D\u0430 \u043D\u0430 \u0421\u0430\u0439\u0442\u0435 \u0438 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u0430 \u043B\u044E\u0431\u043E\u043C\u0443 \u0431\u0435\u0437 \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u0439."
|
|
1906
|
+
];
|
|
1907
|
+
}
|
|
1908
|
+
function purposesOf(source) {
|
|
1909
|
+
return [
|
|
1910
|
+
"2. \u0426\u0435\u043B\u0438 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0438 \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445",
|
|
1911
|
+
`2.1. \u0426\u0435\u043B\u044C: ${PURPOSE}.`,
|
|
1912
|
+
`2.2. \u0414\u043B\u044F \u044D\u0442\u043E\u0439 \u0446\u0435\u043B\u0438: \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u0438 \u0434\u0430\u043D\u043D\u044B\u0445 \u2014 \u043E\u0431\u0449\u0438\u0435 \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435; \u043F\u0435\u0440\u0435\u0447\u0435\u043D\u044C \u0434\u0430\u043D\u043D\u044B\u0445 \u2014 ${sentDataOf(source.forms)}, \u0430\u0434\u0440\u0435\u0441 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B, \u0441 \u043A\u043E\u0442\u043E\u0440\u043E\u0439 \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0430 \u0437\u0430\u044F\u0432\u043A\u0430, \u0432\u0440\u0435\u043C\u044F \u0435\u0451 \u043E\u0442\u043F\u0440\u0430\u0432\u043A\u0438; \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u0438 \u0441\u0443\u0431\u044A\u0435\u043A\u0442\u043E\u0432 \u2014 \u043F\u043E\u0441\u0435\u0442\u0438\u0442\u0435\u043B\u0438 \u0421\u0430\u0439\u0442\u0430, \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0432\u0448\u0438\u0435 \u0437\u0430\u044F\u0432\u043A\u0443; \u0441\u043F\u043E\u0441\u043E\u0431 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0438 \u2014 \u0441\u043C\u0435\u0448\u0430\u043D\u043D\u044B\u0439, \u0441 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u043C \u0441\u0440\u0435\u0434\u0441\u0442\u0432 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438; \u0441\u0440\u043E\u043A \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0438 \u0438 \u0445\u0440\u0430\u043D\u0435\u043D\u0438\u044F \u2014 \u0434\u043E \u0434\u043E\u0441\u0442\u0438\u0436\u0435\u043D\u0438\u044F \u0446\u0435\u043B\u0438, \u043D\u043E \u043D\u0435 \u0431\u043E\u043B\u0435\u0435 \u043E\u0434\u043D\u043E\u0433\u043E \u0433\u043E\u0434\u0430 \u0441\u043E \u0434\u043D\u044F \u043E\u0442\u043F\u0440\u0430\u0432\u043A\u0438 \u0437\u0430\u044F\u0432\u043A\u0438; \u043F\u043E\u0440\u044F\u0434\u043E\u043A \u0443\u043D\u0438\u0447\u0442\u043E\u0436\u0435\u043D\u0438\u044F \u2014 \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u0435 \u0437\u0430\u043F\u0438\u0441\u0435\u0439 \u0438 \u043F\u0438\u0441\u0435\u043C \u0441 \u0437\u0430\u044F\u0432\u043A\u043E\u0439 \u0432 \u0442\u0435\u0447\u0435\u043D\u0438\u0435 ${String(ERASE_DAYS)} \u0434\u043D\u0435\u0439 \u043F\u043E\u0441\u043B\u0435 \u0434\u043E\u0441\u0442\u0438\u0436\u0435\u043D\u0438\u044F \u0446\u0435\u043B\u0438, \u0438\u0441\u0442\u0435\u0447\u0435\u043D\u0438\u044F \u0441\u0440\u043E\u043A\u0430 \u0438\u043B\u0438 \u043E\u0442\u0437\u044B\u0432\u0430 \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u044F.`
|
|
1913
|
+
];
|
|
1914
|
+
}
|
|
1915
|
+
function legalGroundsOf() {
|
|
1916
|
+
return [
|
|
1917
|
+
"3. \u041F\u0440\u0430\u0432\u043E\u0432\u044B\u0435 \u043E\u0441\u043D\u043E\u0432\u0430\u043D\u0438\u044F \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0438",
|
|
1918
|
+
"3.1. \u041A\u043E\u043D\u0441\u0442\u0438\u0442\u0443\u0446\u0438\u044F \u0420\u043E\u0441\u0441\u0438\u0439\u0441\u043A\u043E\u0439 \u0424\u0435\u0434\u0435\u0440\u0430\u0446\u0438\u0438, \u0413\u0440\u0430\u0436\u0434\u0430\u043D\u0441\u043A\u0438\u0439 \u043A\u043E\u0434\u0435\u043A\u0441 \u0420\u043E\u0441\u0441\u0438\u0439\u0441\u043A\u043E\u0439 \u0424\u0435\u0434\u0435\u0440\u0430\u0446\u0438\u0438, \u0417\u0430\u043A\u043E\u043D \u0438 \u043F\u0440\u0438\u043D\u044F\u0442\u044B\u0435 \u0432 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u043D\u0438\u043C \u043D\u043E\u0440\u043C\u0430\u0442\u0438\u0432\u043D\u044B\u0435 \u0430\u043A\u0442\u044B.",
|
|
1919
|
+
"3.2. \u0421\u043E\u0433\u043B\u0430\u0441\u0438\u0435 \u0441\u0443\u0431\u044A\u0435\u043A\u0442\u0430 \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445 (\u043F\u0443\u043D\u043A\u0442 1 \u0447\u0430\u0441\u0442\u0438 1 \u0441\u0442\u0430\u0442\u044C\u0438 6 \u0417\u0430\u043A\u043E\u043D\u0430), \u043A\u043E\u0442\u043E\u0440\u043E\u0435 \u043E\u043D \u0434\u0430\u0451\u0442 \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u043E\u0439 \u043E\u0442\u043C\u0435\u0442\u043A\u043E\u0439 \u0432 \u0444\u043E\u0440\u043C\u0435 \u0437\u0430\u044F\u0432\u043A\u0438 \u043F\u0435\u0440\u0435\u0434 \u0435\u0451 \u043E\u0442\u043F\u0440\u0430\u0432\u043A\u043E\u0439. \u0422\u0435\u043A\u0441\u0442 \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u044F \u043E\u043F\u0443\u0431\u043B\u0438\u043A\u043E\u0432\u0430\u043D \u043D\u0430 \u0421\u0430\u0439\u0442\u0435 \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u044B\u043C \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u043E\u043C."
|
|
1920
|
+
];
|
|
1921
|
+
}
|
|
1922
|
+
function dataScopeOf(source) {
|
|
1923
|
+
return [
|
|
1924
|
+
"4. \u041E\u0431\u044A\u0451\u043C \u0438 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u0438 \u043E\u0431\u0440\u0430\u0431\u0430\u0442\u044B\u0432\u0430\u0435\u043C\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445, \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u0438 \u0441\u0443\u0431\u044A\u0435\u043A\u0442\u043E\u0432",
|
|
1925
|
+
`4.1. \u041E\u043F\u0435\u0440\u0430\u0442\u043E\u0440 \u043E\u0431\u0440\u0430\u0431\u0430\u0442\u044B\u0432\u0430\u0435\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u0434\u0430\u043D\u043D\u044B\u0435, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u043F\u043E\u0441\u0435\u0442\u0438\u0442\u0435\u043B\u044C \u0441\u0430\u043C \u0443\u043A\u0430\u0437\u044B\u0432\u0430\u0435\u0442 \u0432 \u0444\u043E\u0440\u043C\u0435 \u0437\u0430\u044F\u0432\u043A\u0438: ${sentDataOf(source.forms)}, \u0430 \u0442\u0430\u043A\u0436\u0435 \u0430\u0434\u0440\u0435\u0441 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B, \u0441 \u043A\u043E\u0442\u043E\u0440\u043E\u0439 \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0430 \u0437\u0430\u044F\u0432\u043A\u0430, \u0438 \u0432\u0440\u0435\u043C\u044F \u0435\u0451 \u043E\u0442\u043F\u0440\u0430\u0432\u043A\u0438.`,
|
|
1926
|
+
"4.2. \u041E\u043F\u0435\u0440\u0430\u0442\u043E\u0440 \u043D\u0435 \u043E\u0431\u0440\u0430\u0431\u0430\u0442\u044B\u0432\u0430\u0435\u0442 \u0441\u043F\u0435\u0446\u0438\u0430\u043B\u044C\u043D\u044B\u0435 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u0438 \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445 \u0438 \u0431\u0438\u043E\u043C\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043A\u0438\u0435 \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435 \u0438 \u043F\u0440\u043E\u0441\u0438\u0442 \u043D\u0435 \u0443\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u0438\u0445 \u0432 \u0437\u0430\u044F\u0432\u043A\u0435.",
|
|
1927
|
+
"4.3. \u0421\u0443\u0431\u044A\u0435\u043A\u0442\u044B \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445 \u2014 \u043F\u043E\u0441\u0435\u0442\u0438\u0442\u0435\u043B\u0438 \u0421\u0430\u0439\u0442\u0430, \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0432\u0448\u0438\u0435 \u0437\u0430\u044F\u0432\u043A\u0443."
|
|
1928
|
+
];
|
|
1929
|
+
}
|
|
1930
|
+
function processingOf() {
|
|
1931
|
+
return [
|
|
1932
|
+
"5. \u041F\u043E\u0440\u044F\u0434\u043E\u043A \u0438 \u0443\u0441\u043B\u043E\u0432\u0438\u044F \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0438",
|
|
1933
|
+
`5.1. \u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044F \u0441 \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u043C\u0438 \u0434\u0430\u043D\u043D\u044B\u043C\u0438: ${ACTIONS}.`,
|
|
1934
|
+
`5.2. \u041E\u043F\u0435\u0440\u0430\u0442\u043E\u0440 \u043F\u043E\u0440\u0443\u0447\u0430\u0435\u0442 \u043F\u0440\u0438\u0451\u043C \u0437\u0430\u044F\u0432\u043E\u043A \u0441 \u0444\u043E\u0440\u043C \u0421\u0430\u0439\u0442\u0430 \u0438 \u0438\u0445 \u043F\u0435\u0440\u0435\u0434\u0430\u0447\u0443 \u041E\u043F\u0435\u0440\u0430\u0442\u043E\u0440\u0443 \u043F\u043E \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0439 \u043F\u043E\u0447\u0442\u0435 ${PROCESSOR}. \u0421\u0435\u0440\u0432\u0438\u0441 \u043E\u0431\u044F\u0437\u0430\u043D \u0441\u043E\u0431\u043B\u044E\u0434\u0430\u0442\u044C \u043A\u043E\u043D\u0444\u0438\u0434\u0435\u043D\u0446\u0438\u0430\u043B\u044C\u043D\u043E\u0441\u0442\u044C \u0434\u0430\u043D\u043D\u044B\u0445, \u043E\u0431\u0435\u0441\u043F\u0435\u0447\u0438\u0432\u0430\u0442\u044C \u0438\u0445 \u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E\u0441\u0442\u044C \u043F\u043E \u0441\u0442\u0430\u0442\u044C\u0435 19 \u0417\u0430\u043A\u043E\u043D\u0430, \u043D\u0435 \u0445\u0440\u0430\u043D\u0438\u0442 \u0437\u0430\u044F\u0432\u043A\u0443 \u0434\u043E\u043B\u044C\u0448\u0435, \u0447\u0435\u043C \u043D\u0443\u0436\u043D\u043E \u0434\u043B\u044F \u0434\u043E\u0441\u0442\u0430\u0432\u043A\u0438, \u0438 \u043D\u0435 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442 \u0434\u0430\u043D\u043D\u044B\u0435 \u0432 \u0441\u0432\u043E\u0438\u0445 \u0446\u0435\u043B\u044F\u0445. \u041E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u0441\u0442\u044C \u043F\u0435\u0440\u0435\u0434 \u0441\u0443\u0431\u044A\u0435\u043A\u0442\u043E\u043C \u0437\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u043D\u0435\u0441\u0451\u0442 \u041E\u043F\u0435\u0440\u0430\u0442\u043E\u0440.`,
|
|
1935
|
+
"5.3. \u0417\u0430\u043F\u0438\u0441\u044C, \u0441\u0438\u0441\u0442\u0435\u043C\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044F, \u043D\u0430\u043A\u043E\u043F\u043B\u0435\u043D\u0438\u0435, \u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0435, \u0443\u0442\u043E\u0447\u043D\u0435\u043D\u0438\u0435 \u0438 \u0438\u0437\u0432\u043B\u0435\u0447\u0435\u043D\u0438\u0435 \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445 \u0433\u0440\u0430\u0436\u0434\u0430\u043D \u0420\u043E\u0441\u0441\u0438\u0439\u0441\u043A\u043E\u0439 \u0424\u0435\u0434\u0435\u0440\u0430\u0446\u0438\u0438 \u0432\u0435\u0434\u0443\u0442\u0441\u044F \u0441 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u043C \u0431\u0430\u0437 \u0434\u0430\u043D\u043D\u044B\u0445, \u043D\u0430\u0445\u043E\u0434\u044F\u0449\u0438\u0445\u0441\u044F \u043D\u0430 \u0442\u0435\u0440\u0440\u0438\u0442\u043E\u0440\u0438\u0438 \u0420\u043E\u0441\u0441\u0438\u0439\u0441\u043A\u043E\u0439 \u0424\u0435\u0434\u0435\u0440\u0430\u0446\u0438\u0438. \u0422\u0440\u0430\u043D\u0441\u0433\u0440\u0430\u043D\u0438\u0447\u043D\u0430\u044F \u043F\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u043D\u0435 \u043E\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043B\u044F\u0435\u0442\u0441\u044F.",
|
|
1936
|
+
"5.4. \u041E\u043F\u0435\u0440\u0430\u0442\u043E\u0440 \u043D\u0435 \u0440\u0430\u0441\u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u044F\u0435\u0442 \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435 \u0438 \u043D\u0435 \u043F\u0435\u0440\u0435\u0434\u0430\u0451\u0442 \u0438\u0445 \u0442\u0440\u0435\u0442\u044C\u0438\u043C \u043B\u0438\u0446\u0430\u043C, \u043A\u0440\u043E\u043C\u0435 \u0441\u043B\u0443\u0447\u0430\u0435\u0432, \u043F\u0440\u0435\u0434\u0443\u0441\u043C\u043E\u0442\u0440\u0435\u043D\u043D\u044B\u0445 \u0437\u0430\u043A\u043E\u043D\u043E\u043C (\u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, \u043F\u043E \u0437\u0430\u043F\u0440\u043E\u0441\u0443 \u0441\u0443\u0434\u0430 \u0438\u043B\u0438 \u0443\u043F\u043E\u043B\u043D\u043E\u043C\u043E\u0447\u0435\u043D\u043D\u044B\u0445 \u043E\u0440\u0433\u0430\u043D\u043E\u0432).",
|
|
1937
|
+
"5.5. \u0414\u043B\u044F \u0437\u0430\u0449\u0438\u0442\u044B \u0434\u0430\u043D\u043D\u044B\u0445 \u041E\u043F\u0435\u0440\u0430\u0442\u043E\u0440 \u043F\u0440\u0438\u043D\u0438\u043C\u0430\u0435\u0442 \u043C\u0435\u0440\u044B \u043F\u043E \u0441\u0442\u0430\u0442\u044C\u044F\u043C 18.1 \u0438 19 \u0417\u0430\u043A\u043E\u043D\u0430: \u043D\u0430\u0437\u043D\u0430\u0447\u0430\u0435\u0442 \u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u0433\u043E \u0437\u0430 \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u044E \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0438, \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0438\u0432\u0430\u0435\u0442 \u0434\u043E\u0441\u0442\u0443\u043F \u043A \u0434\u0430\u043D\u043D\u044B\u043C \u043B\u0438\u0446\u0430\u043C\u0438, \u043A\u043E\u0442\u043E\u0440\u044B\u043C \u043E\u043D \u043D\u0443\u0436\u0435\u043D \u0434\u043B\u044F \u0440\u0430\u0431\u043E\u0442\u044B, \u043F\u0435\u0440\u0435\u0434\u0430\u0451\u0442 \u0434\u0430\u043D\u043D\u044B\u0435 \u043F\u043E \u0437\u0430\u0449\u0438\u0449\u0451\u043D\u043D\u044B\u043C \u043A\u0430\u043D\u0430\u043B\u0430\u043C \u0441\u0432\u044F\u0437\u0438, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u0437\u0430\u0449\u0438\u0442\u044B \u043E\u0442 \u043D\u0435\u0441\u0430\u043D\u043A\u0446\u0438\u043E\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0433\u043E \u0434\u043E\u0441\u0442\u0443\u043F\u0430 \u0438 \u0443\u043D\u0438\u0447\u0442\u043E\u0436\u0430\u0435\u0442 \u0434\u0430\u043D\u043D\u044B\u0435, \u043A\u043E\u0433\u0434\u0430 \u043E\u043D\u0438 \u0431\u043E\u043B\u044C\u0448\u0435 \u043D\u0435 \u043D\u0443\u0436\u043D\u044B.",
|
|
1938
|
+
"5.6. \u041E \u043D\u0435\u043F\u0440\u0430\u0432\u043E\u043C\u0435\u0440\u043D\u043E\u0439 \u0438\u043B\u0438 \u0441\u043B\u0443\u0447\u0430\u0439\u043D\u043E\u0439 \u043F\u0435\u0440\u0435\u0434\u0430\u0447\u0435 \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445, \u043F\u043E\u0432\u043B\u0451\u043A\u0448\u0435\u0439 \u043D\u0430\u0440\u0443\u0448\u0435\u043D\u0438\u0435 \u043F\u0440\u0430\u0432 \u0441\u0443\u0431\u044A\u0435\u043A\u0442\u043E\u0432, \u041E\u043F\u0435\u0440\u0430\u0442\u043E\u0440 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u044F\u0435\u0442 \u0420\u043E\u0441\u043A\u043E\u043C\u043D\u0430\u0434\u0437\u043E\u0440 \u0432 \u0441\u0440\u043E\u043A\u0438, \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u043D\u044B\u0435 \u0447\u0430\u0441\u0442\u044C\u044E 3.1 \u0441\u0442\u0430\u0442\u044C\u0438 21 \u0417\u0430\u043A\u043E\u043D\u0430."
|
|
1939
|
+
];
|
|
1940
|
+
}
|
|
1941
|
+
function subjectRequestsOf(operator) {
|
|
1942
|
+
return [
|
|
1943
|
+
"6. \u0410\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F, \u0438\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435, \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u0435 \u0438 \u0443\u043D\u0438\u0447\u0442\u043E\u0436\u0435\u043D\u0438\u0435 \u0434\u0430\u043D\u043D\u044B\u0445, \u043E\u0442\u0432\u0435\u0442\u044B \u043D\u0430 \u0437\u0430\u043F\u0440\u043E\u0441\u044B",
|
|
1944
|
+
`6.1. \u0417\u0430\u043F\u0440\u043E\u0441 \u043E \u0441\u0432\u043E\u0438\u0445 \u0434\u0430\u043D\u043D\u044B\u0445, \u0442\u0440\u0435\u0431\u043E\u0432\u0430\u043D\u0438\u0435 \u0438\u0445 \u0443\u0442\u043E\u0447\u043D\u0438\u0442\u044C, \u0437\u0430\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0438\u043B\u0438 \u0443\u043D\u0438\u0447\u0442\u043E\u0436\u0438\u0442\u044C, \u0430 \u0442\u0430\u043A\u0436\u0435 \u043E\u0442\u0437\u044B\u0432 \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u044F \u0441\u0443\u0431\u044A\u0435\u043A\u0442 \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u043D\u0430 ${operator.email}. \u0412 \u0437\u0430\u043F\u0440\u043E\u0441\u0435 \u043D\u0443\u0436\u043D\u043E \u0443\u043A\u0430\u0437\u0430\u0442\u044C \u0441\u0432\u0435\u0434\u0435\u043D\u0438\u044F, \u043F\u043E \u043A\u043E\u0442\u043E\u0440\u044B\u043C \u041E\u043F\u0435\u0440\u0430\u0442\u043E\u0440 \u043D\u0430\u0439\u0434\u0451\u0442 \u0437\u0430\u044F\u0432\u043A\u0443 (\u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, \u0442\u0435\u043B\u0435\u0444\u043E\u043D \u0438\u043B\u0438 \u043F\u043E\u0447\u0442\u0443, \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u044B\u0435 \u0432 \u043D\u0435\u0439), \u0438 \u0447\u0442\u043E \u0438\u043C\u0435\u043D\u043D\u043E \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F.`,
|
|
1945
|
+
`6.2. \u041E\u043F\u0435\u0440\u0430\u0442\u043E\u0440 \u043E\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u043D\u0430 \u0437\u0430\u043F\u0440\u043E\u0441 \u0432 \u0442\u0435\u0447\u0435\u043D\u0438\u0435 ${String(ANSWER_WORKING_DAYS)} \u0440\u0430\u0431\u043E\u0447\u0438\u0445 \u0434\u043D\u0435\u0439. \u0421\u0440\u043E\u043A \u043C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C \u043F\u0440\u043E\u0434\u043B\u0451\u043D \u0435\u0449\u0451 \u043D\u0430 ${String(ANSWER_EXTENSION_WORKING_DAYS)} \u0440\u0430\u0431\u043E\u0447\u0438\u0445 \u0434\u043D\u0435\u0439, \u0435\u0441\u043B\u0438 \u041E\u043F\u0435\u0440\u0430\u0442\u043E\u0440 \u043D\u0430\u043F\u0440\u0430\u0432\u0438\u0442 \u043C\u043E\u0442\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0435 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0435.`,
|
|
1946
|
+
`6.3. \u041D\u0435\u0442\u043E\u0447\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435 \u041E\u043F\u0435\u0440\u0430\u0442\u043E\u0440 \u0443\u0442\u043E\u0447\u043D\u044F\u0435\u0442 \u0432 \u0442\u0435\u0447\u0435\u043D\u0438\u0435 ${String(CORRECTION_WORKING_DAYS)} \u0440\u0430\u0431\u043E\u0447\u0438\u0445 \u0434\u043D\u0435\u0439 \u043F\u043E\u0441\u043B\u0435 \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u044F \u0441\u0432\u0435\u0434\u0435\u043D\u0438\u0439 \u043E \u043D\u0435\u0442\u043E\u0447\u043D\u043E\u0441\u0442\u0438. \u041D\u0435\u043F\u0440\u0430\u0432\u043E\u043C\u0435\u0440\u043D\u0443\u044E \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0443 \u041E\u043F\u0435\u0440\u0430\u0442\u043E\u0440 \u043F\u0440\u0435\u043A\u0440\u0430\u0449\u0430\u0435\u0442 \u0432 \u0442\u0435\u0447\u0435\u043D\u0438\u0435 ${String(UNLAWFUL_STOP_WORKING_DAYS)} \u0440\u0430\u0431\u043E\u0447\u0438\u0445 \u0434\u043D\u0435\u0439, \u0430 \u0435\u0441\u043B\u0438 \u0435\u0451 \u043D\u0435\u043B\u044C\u0437\u044F \u0441\u0434\u0435\u043B\u0430\u0442\u044C \u043F\u0440\u0430\u0432\u043E\u043C\u0435\u0440\u043D\u043E\u0439 \u2014 \u0443\u043D\u0438\u0447\u0442\u043E\u0436\u0430\u0435\u0442 \u0434\u0430\u043D\u043D\u044B\u0435 \u0432 \u0442\u0435\u0447\u0435\u043D\u0438\u0435 ${String(UNLAWFUL_ERASE_WORKING_DAYS)} \u0440\u0430\u0431\u043E\u0447\u0438\u0445 \u0434\u043D\u0435\u0439.`,
|
|
1947
|
+
`6.4. \u041F\u0440\u0438 \u0434\u043E\u0441\u0442\u0438\u0436\u0435\u043D\u0438\u0438 \u0446\u0435\u043B\u0438 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0438, \u0438\u0441\u0442\u0435\u0447\u0435\u043D\u0438\u0438 \u0441\u0440\u043E\u043A\u0430 \u0445\u0440\u0430\u043D\u0435\u043D\u0438\u044F \u0438\u043B\u0438 \u043E\u0442\u0437\u044B\u0432\u0435 \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u044F \u041E\u043F\u0435\u0440\u0430\u0442\u043E\u0440 \u043F\u0440\u0435\u043A\u0440\u0430\u0449\u0430\u0435\u0442 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0443 \u0438 \u0443\u043D\u0438\u0447\u0442\u043E\u0436\u0430\u0435\u0442 \u0434\u0430\u043D\u043D\u044B\u0435 \u0432 \u0442\u0435\u0447\u0435\u043D\u0438\u0435 ${String(ERASE_DAYS)} \u0434\u043D\u0435\u0439, \u0435\u0441\u043B\u0438 \u0438\u043D\u043E\u0435 \u043D\u0435 \u043F\u0440\u0435\u0434\u0443\u0441\u043C\u043E\u0442\u0440\u0435\u043D\u043E \u0437\u0430\u043A\u043E\u043D\u043E\u043C.`
|
|
1948
|
+
];
|
|
1949
|
+
}
|
|
1950
|
+
function finalProvisions() {
|
|
1951
|
+
return [
|
|
1952
|
+
"7. \u0417\u0430\u043A\u043B\u044E\u0447\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u044F",
|
|
1953
|
+
"7.1. \u041E\u043F\u0435\u0440\u0430\u0442\u043E\u0440 \u043C\u043E\u0436\u0435\u0442 \u0438\u0437\u043C\u0435\u043D\u044F\u0442\u044C \u041F\u043E\u043B\u0438\u0442\u0438\u043A\u0443. \u041D\u043E\u0432\u0430\u044F \u0440\u0435\u0434\u0430\u043A\u0446\u0438\u044F \u0434\u0435\u0439\u0441\u0442\u0432\u0443\u0435\u0442 \u0441\u043E \u0434\u043D\u044F \u0435\u0451 \u043F\u0443\u0431\u043B\u0438\u043A\u0430\u0446\u0438\u0438 \u043D\u0430 \u0421\u0430\u0439\u0442\u0435."
|
|
1954
|
+
];
|
|
1873
1955
|
}
|
|
1874
1956
|
function sentDataOf(forms) {
|
|
1875
1957
|
const labels = forms.flatMap(
|
|
@@ -1940,6 +2022,8 @@ export {
|
|
|
1940
2022
|
REVEAL_ATTRIBUTE,
|
|
1941
2023
|
REVEALED_ATTRIBUTE,
|
|
1942
2024
|
REVEAL_EVENT,
|
|
2025
|
+
POPOVER_ATTRIBUTE,
|
|
2026
|
+
HELD_ATTRIBUTE,
|
|
1943
2027
|
imagePosition,
|
|
1944
2028
|
ratesField,
|
|
1945
2029
|
estimateOf,
|
|
@@ -1993,8 +2077,11 @@ export {
|
|
|
1993
2077
|
isEmailAddress,
|
|
1994
2078
|
requestsPathOf,
|
|
1995
2079
|
PRIVACY_PAGE_PATH,
|
|
2080
|
+
CONSENT_PAGE_PATH,
|
|
1996
2081
|
privacyPolicyFields,
|
|
2082
|
+
privacyConsentFields,
|
|
1997
2083
|
privacyPolicyTextOf,
|
|
2084
|
+
privacyConsentTextOf,
|
|
1998
2085
|
REQUEST_SEND_EVENT,
|
|
1999
2086
|
REQUEST_SENT_EVENT,
|
|
2000
2087
|
REQUEST_FAILED_EVENT
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
pagePathOf
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-6MBWE5QT.js";
|
|
4
4
|
import {
|
|
5
5
|
FIELD_PATH_SEPARATOR,
|
|
6
6
|
collectionAt,
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
newRecord,
|
|
10
10
|
recordAt,
|
|
11
11
|
recordPageAt
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-M5XOTSSU.js";
|
|
13
13
|
|
|
14
14
|
// src/preview-requests.ts
|
|
15
15
|
var MAX_DRAFT_BYTES = 1024 * 1024;
|
package/dist/cli.js
CHANGED
package/dist/client.js
CHANGED
|
@@ -16,7 +16,7 @@ if (isFramed && isPreview) {
|
|
|
16
16
|
});
|
|
17
17
|
}
|
|
18
18
|
if (document.querySelector(REQUEST_FORM_SELECTOR) !== null) {
|
|
19
|
-
void import("./request-sending-
|
|
19
|
+
void import("./request-sending-UQEY57Y6.js").then(({ connectRequestForms }) => {
|
|
20
20
|
connectRequestForms(document, { isPreview });
|
|
21
21
|
});
|
|
22
22
|
}
|
package/dist/feeds.js
CHANGED
package/dist/index.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
isUploadedFile
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-TR7TTMQR.js";
|
|
4
4
|
import {
|
|
5
5
|
OWN_PHOTOS_PATH
|
|
6
6
|
} from "./chunk-W2LIOR2C.js";
|
|
7
|
-
import "./chunk-
|
|
7
|
+
import "./chunk-6MBWE5QT.js";
|
|
8
8
|
import {
|
|
9
9
|
SITE_CONFIG_FILE,
|
|
10
10
|
SITE_DESCRIPTION_PATH,
|
|
11
11
|
isJsonObject,
|
|
12
12
|
readSiteConfig
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-M5XOTSSU.js";
|
|
14
14
|
import {
|
|
15
15
|
PREVIEW_PATH,
|
|
16
16
|
SITE_MODULE_FILE,
|
package/dist/preview-requests.js
CHANGED
|
@@ -6,9 +6,9 @@ import {
|
|
|
6
6
|
previewContentAt,
|
|
7
7
|
previewHeadersOf,
|
|
8
8
|
readDraft
|
|
9
|
-
} from "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
9
|
+
} from "./chunk-TR7TTMQR.js";
|
|
10
|
+
import "./chunk-6MBWE5QT.js";
|
|
11
|
+
import "./chunk-M5XOTSSU.js";
|
|
12
12
|
export {
|
|
13
13
|
MAX_DRAFT_BYTES,
|
|
14
14
|
isPageAddress,
|
package/dist/protocol.js
CHANGED
package/dist/routes/media.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
isUploadedFile
|
|
3
|
-
} from "../chunk-
|
|
4
|
-
import "../chunk-
|
|
5
|
-
import "../chunk-
|
|
3
|
+
} from "../chunk-TR7TTMQR.js";
|
|
4
|
+
import "../chunk-6MBWE5QT.js";
|
|
5
|
+
import "../chunk-M5XOTSSU.js";
|
|
6
6
|
import {
|
|
7
7
|
uploadedPhotoPath
|
|
8
8
|
} from "../chunk-QCVWHHJC.js";
|
package/dist/schema.d.ts
CHANGED
|
@@ -56,6 +56,14 @@ declare const REVEALED_ATTRIBUTE = "data-cms-revealed";
|
|
|
56
56
|
/** Sent to a revealed part, and bubbling up from it, for a site that shows it with a script. */
|
|
57
57
|
declare const REVEAL_EVENT = "cms:reveal";
|
|
58
58
|
|
|
59
|
+
/** On a part that moves: `<div data-cms-popover>`, or on the marked element itself. */
|
|
60
|
+
declare const POPOVER_ATTRIBUTE = "data-cms-popover";
|
|
61
|
+
/**
|
|
62
|
+
* Set by the bridge on a moving part it holds still. The bridge pauses the part's CSS animations
|
|
63
|
+
* and transitions itself; a site that moves the part with a script stops it while this is set.
|
|
64
|
+
*/
|
|
65
|
+
declare const HELD_ATTRIBUTE = "data-cms-held";
|
|
66
|
+
|
|
59
67
|
/** Where a link leads, as the editor offers it. */
|
|
60
68
|
type LinkTarget = {
|
|
61
69
|
readonly kind: "page";
|
|
@@ -223,11 +231,13 @@ interface PolicyOperator {
|
|
|
223
231
|
interface PolicySource {
|
|
224
232
|
readonly siteTitle: string;
|
|
225
233
|
readonly operator: PolicyOperator;
|
|
226
|
-
/** The site's forms, whose fields the
|
|
234
|
+
/** The site's forms, whose fields the documents name. */
|
|
227
235
|
readonly forms: readonly RequestForm[];
|
|
228
236
|
}
|
|
229
|
-
/** The page of the policy on a site, which a form
|
|
237
|
+
/** The page of the policy on a site, which a form links to unless the site says another. */
|
|
230
238
|
declare const PRIVACY_PAGE_PATH = "/privacy";
|
|
239
|
+
/** The page of the consent on a site, which a form's checkbox links to unless the site says another. */
|
|
240
|
+
declare const CONSENT_PAGE_PATH = "/consent";
|
|
231
241
|
/** The policy as content: its title and its text, which the owner edits like any other text. */
|
|
232
242
|
declare function privacyPolicyFields(options?: {
|
|
233
243
|
readonly label?: string;
|
|
@@ -235,8 +245,21 @@ declare function privacyPolicyFields(options?: {
|
|
|
235
245
|
title: TextField;
|
|
236
246
|
text: RichTextField;
|
|
237
247
|
}>;
|
|
238
|
-
/**
|
|
248
|
+
/** The consent as content: a document of its own, which the owner edits like any other text. */
|
|
249
|
+
declare function privacyConsentFields(options?: {
|
|
250
|
+
readonly label?: string;
|
|
251
|
+
}): GroupField<{
|
|
252
|
+
title: TextField;
|
|
253
|
+
text: RichTextField;
|
|
254
|
+
}>;
|
|
255
|
+
/**
|
|
256
|
+
* A policy to start with, in the sections Роскомнадзор recommends: general provisions, purposes,
|
|
257
|
+
* legal grounds, the data and whose it is, how it is processed, and how it is corrected, erased and
|
|
258
|
+
* asked about.
|
|
259
|
+
*/
|
|
239
260
|
declare function privacyPolicyTextOf(source: PolicySource): RichText;
|
|
261
|
+
/** A consent to start with: what ст. 9 asks a consent to name, as a document of its own. */
|
|
262
|
+
declare function privacyConsentTextOf(source: PolicySource): RichText;
|
|
240
263
|
|
|
241
264
|
/**
|
|
242
265
|
* Before the request is sent, once the form takes what was typed. Cancelable: a site that calls
|
|
@@ -273,4 +296,4 @@ interface RequestFailedDetail {
|
|
|
273
296
|
readonly issues: readonly RequestIssue[];
|
|
274
297
|
}
|
|
275
298
|
|
|
276
|
-
export { CONSENT_REQUIRED_TEXT, CollectionField, type CollectionRecords, Content, ContentOf, type ContentPath, FIELD_PATH_ATTRIBUTE, type FieldMarker, Fields, GroupField, ImageValue, type JsonObject, type LinkKind, type LinkTarget, LinkValue, MAX_SLUG_LENGTH, NumberField, PRIVACY_PAGE_PATH, type PolicyOperator, type PolicySource, RECORD_ID_KEY, REQUEST_CONSENT_KEY, REQUEST_FAILED_EVENT, REQUEST_FORM_KEY, REQUEST_ISSUE_TEXTS, REQUEST_PAGE_KEY, REQUEST_SEND_EVENT, REQUEST_SENT_EVENT, REQUEST_TRAP_KEY, REVEALED_ATTRIBUTE, REVEAL_ATTRIBUTE, REVEAL_EVENT, type Rate, RecordFields, RecordOf, type RequestEntries, type RequestFailedDetail, type RequestFailure, RequestForm, type RequestIssue, type RequestIssueCode, type RequestReading, type RequestSendDetail, type RequestSentDetail, type RequestValue, RichText, RichTextField, SITE_CONFIG_FILE, type SiteConfig, type SiteConfigField, type SiteConfigReading, TextField, collectionAt, collectionFieldAt, editable, estimateOf, findRecord, hrefOf, imagePosition, isConsentGiven, isContentObject, isEmailAddress, isJsonObject, isPhoneNumber, isRecordId, isSiteId, isSlug, isTrapFilled, linkTargetOf, newRecord, privacyPolicyFields, privacyPolicyTextOf, ratesField, readRequestEntries, readRequestValues, readSiteConfig, requestPageOf, requestsPathOf, safeHref, slugFieldOf, slugOf, withRecordIds };
|
|
299
|
+
export { CONSENT_PAGE_PATH, CONSENT_REQUIRED_TEXT, CollectionField, type CollectionRecords, Content, ContentOf, type ContentPath, FIELD_PATH_ATTRIBUTE, type FieldMarker, Fields, GroupField, HELD_ATTRIBUTE, ImageValue, type JsonObject, type LinkKind, type LinkTarget, LinkValue, MAX_SLUG_LENGTH, NumberField, POPOVER_ATTRIBUTE, PRIVACY_PAGE_PATH, type PolicyOperator, type PolicySource, RECORD_ID_KEY, REQUEST_CONSENT_KEY, REQUEST_FAILED_EVENT, REQUEST_FORM_KEY, REQUEST_ISSUE_TEXTS, REQUEST_PAGE_KEY, REQUEST_SEND_EVENT, REQUEST_SENT_EVENT, REQUEST_TRAP_KEY, REVEALED_ATTRIBUTE, REVEAL_ATTRIBUTE, REVEAL_EVENT, type Rate, RecordFields, RecordOf, type RequestEntries, type RequestFailedDetail, type RequestFailure, RequestForm, type RequestIssue, type RequestIssueCode, type RequestReading, type RequestSendDetail, type RequestSentDetail, type RequestValue, RichText, RichTextField, SITE_CONFIG_FILE, type SiteConfig, type SiteConfigField, type SiteConfigReading, TextField, collectionAt, collectionFieldAt, editable, estimateOf, findRecord, hrefOf, imagePosition, isConsentGiven, isContentObject, isEmailAddress, isJsonObject, isPhoneNumber, isRecordId, isSiteId, isSlug, isTrapFilled, linkTargetOf, newRecord, privacyConsentFields, privacyConsentTextOf, privacyPolicyFields, privacyPolicyTextOf, ratesField, readRequestEntries, readRequestValues, readSiteConfig, requestPageOf, requestsPathOf, safeHref, slugFieldOf, slugOf, withRecordIds };
|
package/dist/schema.js
CHANGED
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
|
+
CONSENT_PAGE_PATH,
|
|
2
3
|
CONSENT_REQUIRED_TEXT,
|
|
3
4
|
DEFAULT_LONG_TEXT_LENGTH,
|
|
4
5
|
DEFAULT_TEXT_LENGTH,
|
|
5
6
|
FIELD_PATH_ATTRIBUTE,
|
|
6
7
|
FIELD_PATH_SEPARATOR,
|
|
8
|
+
HELD_ATTRIBUTE,
|
|
7
9
|
HOME_PAGE_PATH,
|
|
8
10
|
MAX_REQUEST_FIELD_LENGTH,
|
|
9
11
|
MAX_SLUG_LENGTH,
|
|
10
12
|
PAGE_PATH_SEPARATOR,
|
|
13
|
+
POPOVER_ATTRIBUTE,
|
|
11
14
|
PRIVACY_PAGE_PATH,
|
|
12
15
|
RECORD_ID_KEY,
|
|
13
16
|
RECORD_PLACEHOLDER,
|
|
@@ -70,6 +73,8 @@ import {
|
|
|
70
73
|
openingHoursField,
|
|
71
74
|
parseContent,
|
|
72
75
|
plainTextOf,
|
|
76
|
+
privacyConsentFields,
|
|
77
|
+
privacyConsentTextOf,
|
|
73
78
|
privacyPolicyFields,
|
|
74
79
|
privacyPolicyTextOf,
|
|
75
80
|
productFields,
|
|
@@ -109,17 +114,20 @@ import {
|
|
|
109
114
|
toggle,
|
|
110
115
|
url,
|
|
111
116
|
withRecordIds
|
|
112
|
-
} from "./chunk-
|
|
117
|
+
} from "./chunk-M5XOTSSU.js";
|
|
113
118
|
export {
|
|
119
|
+
CONSENT_PAGE_PATH,
|
|
114
120
|
CONSENT_REQUIRED_TEXT,
|
|
115
121
|
DEFAULT_LONG_TEXT_LENGTH,
|
|
116
122
|
DEFAULT_TEXT_LENGTH,
|
|
117
123
|
FIELD_PATH_ATTRIBUTE,
|
|
118
124
|
FIELD_PATH_SEPARATOR,
|
|
125
|
+
HELD_ATTRIBUTE,
|
|
119
126
|
HOME_PAGE_PATH,
|
|
120
127
|
MAX_REQUEST_FIELD_LENGTH,
|
|
121
128
|
MAX_SLUG_LENGTH,
|
|
122
129
|
PAGE_PATH_SEPARATOR,
|
|
130
|
+
POPOVER_ATTRIBUTE,
|
|
123
131
|
PRIVACY_PAGE_PATH,
|
|
124
132
|
RECORD_ID_KEY,
|
|
125
133
|
RECORD_PLACEHOLDER,
|
|
@@ -182,6 +190,8 @@ export {
|
|
|
182
190
|
openingHoursField,
|
|
183
191
|
parseContent,
|
|
184
192
|
plainTextOf,
|
|
193
|
+
privacyConsentFields,
|
|
194
|
+
privacyConsentTextOf,
|
|
185
195
|
privacyPolicyFields,
|
|
186
196
|
privacyPolicyTextOf,
|
|
187
197
|
productFields,
|
package/dist/site.js
CHANGED
|
@@ -3,12 +3,12 @@ import {
|
|
|
3
3
|
previewedPageAt,
|
|
4
4
|
renderedPageAt,
|
|
5
5
|
staticPagesOf
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-6MBWE5QT.js";
|
|
7
7
|
import {
|
|
8
8
|
checkSiteDescription,
|
|
9
9
|
formatFieldPath,
|
|
10
10
|
parseContent
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-M5XOTSSU.js";
|
|
12
12
|
import {
|
|
13
13
|
SITE_MODULE_FILE
|
|
14
14
|
} from "./chunk-QCVWHHJC.js";
|
package/package.json
CHANGED