@diplodoc/client 3.5.0 → 3.6.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.
@@ -102,20 +102,17 @@ var InterfaceContext = __webpack_require__(6790);
102
102
  var ConsentPopup = __webpack_require__(10178);
103
103
  // EXTERNAL MODULE: ./node_modules/@diplodoc/transform/dist/js/yfm.js
104
104
  var yfm = __webpack_require__(20553);
105
- ;// ./src/components/Search/Search.tsx
106
-
107
- var Search = function Search() {
108
- return /*#__PURE__*/React.createElement("div", null, "Initial");
109
- };
110
- ;// ./src/components/Search/index.ts
111
-
112
- var SearchContext = /*#__PURE__*/(0,react.createContext)(null);
113
- SearchContext.displayName = 'SearchContext';
114
- var SearchProvider = SearchContext.Provider;
115
-
116
- function useSearch() {
117
- return (0,react.useContext)(SearchContext);
118
- }
105
+ // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/asyncToGenerator.js
106
+ var asyncToGenerator = __webpack_require__(29293);
107
+ var asyncToGenerator_default = /*#__PURE__*/__webpack_require__.n(asyncToGenerator);
108
+ // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/slicedToArray.js
109
+ var slicedToArray = __webpack_require__(85715);
110
+ var slicedToArray_default = /*#__PURE__*/__webpack_require__.n(slicedToArray);
111
+ // EXTERNAL MODULE: ./node_modules/@babel/runtime/regenerator/index.js
112
+ var regenerator = __webpack_require__(54756);
113
+ var regenerator_default = /*#__PURE__*/__webpack_require__.n(regenerator);
114
+ // EXTERNAL MODULE: ./node_modules/bem-cn-lite/lib/index.js
115
+ var lib = __webpack_require__(23614);
119
116
  ;// ./src/components/Router/index.ts
120
117
 
121
118
  var RouterContext = /*#__PURE__*/(0,react.createContext)({
@@ -124,132 +121,13 @@ var RouterContext = /*#__PURE__*/(0,react.createContext)({
124
121
  });
125
122
  RouterContext.displayName = 'RouterContext';
126
123
  var RouterProvider = RouterContext.Provider;
127
- function useRouter() {
124
+ function Router_useRouter() {
128
125
  return (0,react.useContext)(RouterContext);
129
126
  }
130
- // EXTERNAL MODULE: ./node_modules/@diplodoc/components/build/esm/utils/index.js + 61 modules
131
- var utils = __webpack_require__(57010);
132
- // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/toConsumableArray.js
133
- var toConsumableArray = __webpack_require__(41132);
134
- var toConsumableArray_default = /*#__PURE__*/__webpack_require__.n(toConsumableArray);
135
- ;// ./src/constants.ts
127
+ ;// ./src/components/index.ts
136
128
 
137
129
 
138
- var HEADER_HEIGHT = 64;
139
- var MOBILE_VIEW_WIDTH_BREAKPOINT = 769;
140
- var DEFAULT_USER_SETTINGS = {
141
- theme: models/* Theme */.Sx.Light,
142
- textSize: models/* TextSizes */.ov.M,
143
- showMiniToc: true,
144
- wideFormat: true,
145
- fullScreen: false
146
- };
147
- var RTL_LANGS = ['ar', 'arc', 'ckb', 'dv', 'fa', 'ha', 'he', 'khw', 'ks', 'ps', 'sd', 'ur', 'uz_AF', 'yi'];
148
- var TextDirection = /*#__PURE__*/function (TextDirection) {
149
- TextDirection["RTL"] = "rtl";
150
- TextDirection["LTR"] = "ltr";
151
- return TextDirection;
152
- }({});
153
- var LINK_KEYS_LEADING_CONFIG = ['href'];
154
- var LINK_KEYS_PAGE_CONSTRUCTOR_CONFIG = ['src', 'url', 'href', 'icon', 'image', 'desktop', 'mobile', 'tablet', 'previewImg', 'image', 'avatar', 'logo', 'light', 'dark'];
155
- var LINK_KEYS = toConsumableArray_default()(new Set([].concat(LINK_KEYS_LEADING_CONFIG, LINK_KEYS_PAGE_CONSTRUCTOR_CONFIG)));
156
- ;// ./src/utils.ts
157
-
158
130
 
159
- function isBrowser() {
160
- return typeof document !== 'undefined';
161
- }
162
- function updateThemeClassName(_ref) {
163
- var theme = _ref.theme;
164
- if (typeof document === 'undefined') {
165
- return;
166
- }
167
- document.querySelectorAll('.g-root').forEach(function (el) {
168
- el.classList.toggle('g-root_theme_light', theme === 'light');
169
- el.classList.toggle('g-root_theme_dark', theme === 'dark');
170
- });
171
- }
172
- function updateRootClassName(states) {
173
- if (!isBrowser()) {
174
- return;
175
- }
176
- document.body.classList.add('g-root');
177
- var toggle = function toggle(name, state) {
178
- return document.body.classList.toggle(name, Boolean(state));
179
- };
180
- Object.keys(states).forEach(function (state) {
181
- switch (state) {
182
- case 'wideFormat':
183
- toggle('dc-root_wide-format', states[state]);
184
- break;
185
- case 'focusSearch':
186
- toggle('dc-root_focused-search', states[state]);
187
- break;
188
- case 'fullScreen':
189
- toggle('dc-root_full-screen', states[state]);
190
- break;
191
- case 'landingPage':
192
- toggle('dc-root_document-page', !states[state]);
193
- toggle('dc-root_landing-page', states[state]);
194
- break;
195
- case 'mobileView':
196
- toggle('mobile', states[state]);
197
- toggle('desktop', !states[state]);
198
- break;
199
- }
200
- });
201
- }
202
- function getDirection(lang) {
203
- var isRTL = RTL_LANGS.includes(lang);
204
- return isRTL ? TextDirection.RTL : TextDirection.LTR;
205
- }
206
- var toBoolean = function toBoolean(str) {
207
- if (typeof str === 'boolean') {
208
- return str;
209
- }
210
- return str ? str === 'true' : false;
211
- };
212
- function getSettings() {
213
- var theme = getSetting('theme');
214
- var textSize = getSetting('textSize');
215
- var showMiniToc = getSetting('showMiniToc');
216
- var wideFormat = getSetting('wideFormat');
217
- var fullScreen = getSetting('fullScreen');
218
- return {
219
- theme: theme,
220
- textSize: textSize,
221
- showMiniToc: toBoolean(showMiniToc),
222
- wideFormat: toBoolean(wideFormat),
223
- fullScreen: toBoolean(fullScreen)
224
- };
225
- }
226
- function getLandingPage(data) {
227
- return (0,utils/* getPageType */.M5)(data) === 'PAGE_CONSTRUCTOR';
228
- }
229
- function getMobileView() {
230
- if (!isBrowser()) {
231
- return false;
232
- }
233
- return document.body.clientWidth < MOBILE_VIEW_WIDTH_BREAKPOINT;
234
- }
235
- function getSetting(name) {
236
- if (!isBrowser()) {
237
- return DEFAULT_USER_SETTINGS[name];
238
- }
239
- try {
240
- return sessionStorage.getItem(name) || DEFAULT_USER_SETTINGS[name];
241
- } catch (_unused) {
242
- return DEFAULT_USER_SETTINGS[name];
243
- }
244
- }
245
- function setSetting(name, value) {
246
- if (!isBrowser()) {
247
- return;
248
- }
249
- try {
250
- sessionStorage.setItem(name, String(value));
251
- } catch (_unused2) {}
252
- }
253
131
  ;// ./src/hooks/useLang.ts
254
132
 
255
133
 
@@ -259,174 +137,20 @@ var LangProvider = LangContext.Provider;
259
137
  function useLang() {
260
138
  return (0,react.useContext)(LangContext);
261
139
  }
262
- // EXTERNAL MODULE: ./src/interceptors/leading-page-links.js
263
- var leading_page_links = __webpack_require__(44186);
264
- // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/objectWithoutProperties.js
265
- var objectWithoutProperties = __webpack_require__(91847);
266
- var objectWithoutProperties_default = /*#__PURE__*/__webpack_require__.n(objectWithoutProperties);
267
- // EXTERNAL MODULE: ./node_modules/@gravity-ui/page-constructor/build/esm/containers/PageConstructor/Provider.js
268
- var Provider = __webpack_require__(47658);
269
- // EXTERNAL MODULE: ./node_modules/@gravity-ui/page-constructor/build/esm/containers/PageConstructor/PageConstructor.js + 10 modules
270
- var PageConstructor = __webpack_require__(95168);
271
- // EXTERNAL MODULE: ./node_modules/bem-cn-lite/lib/index.js
272
- var lib = __webpack_require__(23614);
273
- ;// ./src/components/Layout/index.tsx
274
-
275
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
276
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { defineProperty_default()(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
277
-
278
-
279
-
280
- var b = (0,lib/* default */.A)('Layout');
281
- function Header() {
282
- return null;
283
- }
284
- function Content() {
285
- return null;
286
- }
287
- function Footer() {
288
- return null;
289
- }
290
- var defaults = {
291
- doc: false
292
- };
293
- var Layout = function Layout(props) {
294
- var _defaults$props = _objectSpread(_objectSpread({}, defaults), props),
295
- children = _defaults$props.children,
296
- doc = _defaults$props.doc,
297
- _defaults$props$heade = _defaults$props.headerHeight,
298
- headerHeight = _defaults$props$heade === void 0 ? 0 : _defaults$props$heade;
299
- var header, content, footer;
300
- react.Children.forEach(children, function (child) {
301
- switch (child.type) {
302
- case Header:
303
- header = child.props.children;
304
- break;
305
- case Content:
306
- content = child.props.children;
307
- break;
308
- case Footer:
309
- footer = child.props.children;
310
- break;
311
- }
312
- });
313
- return /*#__PURE__*/react.createElement("div", {
314
- className: b({
315
- 'full-header': headerHeight > 0
316
- })
317
- }, header && /*#__PURE__*/react.createElement("div", {
318
- className: b('header')
319
- }, header), /*#__PURE__*/react.createElement("div", {
320
- className: b('body')
321
- }, content && /*#__PURE__*/react.createElement("div", {
322
- className: b('content')
323
- }, content), footer && /*#__PURE__*/react.createElement("div", {
324
- className: b('footer', {
325
- doc: doc
326
- })
327
- }, footer)));
328
- };
329
- Layout.displayName = 'Layout';
330
- Layout.Header = Header;
331
- Layout.Content = Content;
332
- Layout.Footer = Footer;
333
- // EXTERNAL MODULE: ./node_modules/@gravity-ui/page-constructor/build/esm/grid/Row/Row.js
334
- var Row = __webpack_require__(98058);
335
- // EXTERNAL MODULE: ./node_modules/@gravity-ui/page-constructor/build/esm/grid/Col/Col.js + 1 modules
336
- var Col = __webpack_require__(12445);
337
- // EXTERNAL MODULE: ./node_modules/@gravity-ui/page-constructor/build/esm/context/theme/useTheme.js
338
- var useTheme = __webpack_require__(79568);
339
- // EXTERNAL MODULE: ./node_modules/@gravity-ui/page-constructor/build/esm/utils/theme.js
340
- var utils_theme = __webpack_require__(3259);
341
- // EXTERNAL MODULE: ./node_modules/@gravity-ui/page-constructor/build/esm/components/BackgroundMedia/BackgroundMedia.js + 1 modules
342
- var BackgroundMedia = __webpack_require__(61998);
343
- // EXTERNAL MODULE: ./node_modules/@gravity-ui/page-constructor/build/esm/grid/Grid/Grid.js + 2 modules
344
- var Grid = __webpack_require__(62945);
345
- // EXTERNAL MODULE: ./node_modules/@gravity-ui/page-constructor/build/esm/containers/PageConstructor/components/ConstructorBlocks/ConstructorBlocks.js + 10 modules
346
- var ConstructorBlocks = __webpack_require__(94012);
347
- ;// ./src/components/ConstructorPage/index.tsx
348
-
349
-
350
-
351
- var bPC = (0,lib/* default */.A)('pc-page-constructor');
352
- var bPCRow = (0,lib/* default */.A)('pc-constructor-row');
353
- var ConstructorRow = function ConstructorRow(_ref) {
354
- var children = _ref.children;
355
- return children ? /*#__PURE__*/react.createElement(Row/* Row */.f, {
356
- className: bPCRow()
357
- }, /*#__PURE__*/react.createElement(Col/* Col */.f, null, children)) : null;
358
- };
359
- function ConstructorPage(_ref2) {
360
- var background = _ref2.background,
361
- blocks = _ref2.blocks;
362
- var theme = (0,useTheme/* useTheme */.D)();
363
- var themedBackground = (0,utils_theme/* getThemedValue */.d)(background, theme);
364
- return /*#__PURE__*/react.createElement("div", {
365
- className: bPC('docs')
366
- }, /*#__PURE__*/react.createElement("div", {
367
- className: bPC('wrapper')
368
- }, blocks && themedBackground && /*#__PURE__*/react.createElement(BackgroundMedia/* default */.A, Object.assign({}, themedBackground, {
369
- className: bPC('background')
370
- })), /*#__PURE__*/react.createElement(Grid/* Grid */.x, null, /*#__PURE__*/react.createElement(ConstructorRow, null, /*#__PURE__*/react.createElement(ConstructorBlocks/* ConstructorBlocks */.F, {
371
- items: blocks
372
- })))));
373
- }
374
- ;// ./src/components/ConstructorPage/useContent.tsx
375
-
376
-
377
- var useContent = function useContent(data, CustomPage) {
378
- var type = (0,utils/* getPageType */.M5)(data);
379
- var fullScreen = type === models/* DocumentType */.KG.PageConstructor && 'data' in data && 'fullScreen' in data.data && data.data.fullScreen;
380
- var layout = (0,react.useMemo)(function () {
381
- return fullScreen ? data.data : {
382
- blocks: [{
383
- type: 'page',
384
- resetPaddings: true
385
- }]
386
- };
387
- }, [fullScreen, data]);
388
- var config = (0,react.useMemo)(function () {
389
- return {
390
- custom: {
391
- page: CustomPage
392
- },
393
- layout: layout
394
- };
395
- }, [CustomPage, layout]);
396
- return config;
397
- };
398
- // EXTERNAL MODULE: ./node_modules/@diplodoc/components/build/esm/hooks/useInterface.js
399
- var useInterface = __webpack_require__(40258);
400
- // EXTERNAL MODULE: ./node_modules/@diplodoc/components/build/esm/components/SearchSuggest/index.js + 8 modules
401
- var SearchSuggest = __webpack_require__(9400);
402
- // EXTERNAL MODULE: ./node_modules/@gravity-ui/uikit/build/esm/components/Icon/Icon.js + 3 modules
403
- var Icon = __webpack_require__(29504);
404
- // EXTERNAL MODULE: ./node_modules/@gravity-ui/icons/esm/Magnifier.js
405
- var Magnifier = __webpack_require__(84941);
406
- ;// ./src/components/index.ts
407
-
408
-
409
-
410
- // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/asyncToGenerator.js
411
- var asyncToGenerator = __webpack_require__(29293);
412
- var asyncToGenerator_default = /*#__PURE__*/__webpack_require__.n(asyncToGenerator);
413
140
  // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/classCallCheck.js
414
141
  var classCallCheck = __webpack_require__(17383);
415
142
  var classCallCheck_default = /*#__PURE__*/__webpack_require__.n(classCallCheck);
416
143
  // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/createClass.js
417
144
  var createClass = __webpack_require__(34579);
418
145
  var createClass_default = /*#__PURE__*/__webpack_require__.n(createClass);
419
- // EXTERNAL MODULE: ./node_modules/@babel/runtime/regenerator/index.js
420
- var regenerator = __webpack_require__(54756);
421
- var regenerator_default = /*#__PURE__*/__webpack_require__.n(regenerator);
422
146
  ;// ./src/components/Search/provider/algolia/index.ts
423
147
 
424
148
 
425
149
 
426
150
 
427
151
 
428
- function algolia_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
429
- function algolia_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? algolia_ownKeys(Object(t), !0).forEach(function (r) { defineProperty_default()(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : algolia_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
152
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
153
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { defineProperty_default()(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
430
154
  var AlgoliaProvider = /*#__PURE__*/function () {
431
155
  function AlgoliaProvider(config) {
432
156
  var _this = this;
@@ -434,14 +158,22 @@ var AlgoliaProvider = /*#__PURE__*/function () {
434
158
  defineProperty_default()(this, "worker", void 0);
435
159
  defineProperty_default()(this, "config", void 0);
436
160
  defineProperty_default()(this, "init", function () {
437
- var workerConfig = algolia_objectSpread(algolia_objectSpread({}, _this.config), {}, {
161
+ var workerConfig = _objectSpread(_objectSpread({}, _this.config), {}, {
438
162
  base: _this.base,
439
163
  mark: 'Suggest__Item__Marker'
440
164
  });
441
165
  _this.worker = initWorker(workerConfig);
442
166
  });
443
167
  defineProperty_default()(this, "link", function (query) {
444
- var params = query ? "?query=".concat(encodeURIComponent(query)) : '';
168
+ var page = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
169
+ var searchParams = new URLSearchParams();
170
+ if (query) {
171
+ searchParams.set('query', query);
172
+ }
173
+ if (page > 1) {
174
+ searchParams.set('page', page.toString());
175
+ }
176
+ var params = searchParams.toString() ? "?".concat(searchParams.toString()) : '';
445
177
  var link = "".concat(_this.base, "/").concat(_this.config.link).concat(params);
446
178
  return link;
447
179
  });
@@ -451,20 +183,25 @@ var AlgoliaProvider = /*#__PURE__*/function () {
451
183
  key: "suggest",
452
184
  value: function () {
453
185
  var _suggest = asyncToGenerator_default()(/*#__PURE__*/regenerator_default().mark(function _callee(query) {
454
- var message, results;
186
+ var message;
455
187
  return regenerator_default().wrap(function (_context) {
456
188
  while (1) switch (_context.prev = _context.next) {
457
189
  case 0:
190
+ if (!(!query || query.trim() === '')) {
191
+ _context.next = 1;
192
+ break;
193
+ }
194
+ return _context.abrupt("return", []);
195
+ case 1:
458
196
  message = {
459
197
  type: 'suggest',
460
198
  query: query
461
199
  };
462
- _context.next = 1;
200
+ _context.next = 2;
463
201
  return this.request(message);
464
- case 1:
465
- results = _context.sent;
466
- return _context.abrupt("return", results);
467
202
  case 2:
203
+ return _context.abrupt("return", _context.sent);
204
+ case 3:
468
205
  case "end":
469
206
  return _context.stop();
470
207
  }
@@ -479,20 +216,32 @@ var AlgoliaProvider = /*#__PURE__*/function () {
479
216
  key: "search",
480
217
  value: function () {
481
218
  var _search = asyncToGenerator_default()(/*#__PURE__*/regenerator_default().mark(function _callee2(query) {
482
- var message, results;
219
+ var page,
220
+ count,
221
+ message,
222
+ _args2 = arguments;
483
223
  return regenerator_default().wrap(function (_context2) {
484
224
  while (1) switch (_context2.prev = _context2.next) {
485
225
  case 0:
226
+ page = _args2.length > 1 && _args2[1] !== undefined ? _args2[1] : 1;
227
+ count = _args2.length > 2 && _args2[2] !== undefined ? _args2[2] : 10;
228
+ if (!(!query || query.trim() === '')) {
229
+ _context2.next = 1;
230
+ break;
231
+ }
232
+ return _context2.abrupt("return", []);
233
+ case 1:
486
234
  message = {
487
235
  type: 'search',
488
- query: query
236
+ query: query,
237
+ page: page,
238
+ count: count
489
239
  };
490
- _context2.next = 1;
240
+ _context2.next = 2;
491
241
  return this.request(message);
492
- case 1:
493
- results = _context2.sent;
494
- return _context2.abrupt("return", results);
495
242
  case 2:
243
+ return _context2.abrupt("return", _context2.sent);
244
+ case 3:
496
245
  case "end":
497
246
  return _context2.stop();
498
247
  }
@@ -513,7 +262,7 @@ var AlgoliaProvider = /*#__PURE__*/function () {
513
262
  key: "request",
514
263
  value: function () {
515
264
  var _request2 = asyncToGenerator_default()(/*#__PURE__*/regenerator_default().mark(function _callee3(message) {
516
- var worker, result;
265
+ var worker;
517
266
  return regenerator_default().wrap(function (_context3) {
518
267
  while (1) switch (_context3.prev = _context3.next) {
519
268
  case 0:
@@ -524,8 +273,7 @@ var AlgoliaProvider = /*#__PURE__*/function () {
524
273
  _context3.next = 2;
525
274
  return _request(worker, message);
526
275
  case 2:
527
- result = _context3.sent;
528
- return _context3.abrupt("return", result);
276
+ return _context3.abrupt("return", _context3.sent);
529
277
  case 3:
530
278
  case "end":
531
279
  return _context3.stop();
@@ -592,7 +340,7 @@ function _initWorker() {
592
340
  case 1:
593
341
  worker = _context5.sent;
594
342
  _context5.next = 2;
595
- return _request(worker, algolia_objectSpread(algolia_objectSpread({}, config), {}, {
343
+ return _request(worker, _objectSpread(_objectSpread({}, config), {}, {
596
344
  type: 'init'
597
345
  }));
598
346
  case 2:
@@ -608,17 +356,15 @@ function _initWorker() {
608
356
  function _request(worker, message) {
609
357
  var channel = new MessageChannel();
610
358
  return new Promise(function (resolve, reject) {
611
- channel.port1.onmessage = function (message) {
612
- if (message.data.error) {
613
- // eslint-disable-next-line no-console
614
- console.error(message.data.error);
615
- reject(message.data.error);
359
+ channel.port1.onmessage = function (event) {
360
+ if (event.data.error) {
361
+ reject(event.data.error);
616
362
  } else {
617
- resolve(message.data.result);
363
+ resolve(event.data.result);
618
364
  }
619
365
  };
620
- channel.port1.onmessageerror = function (message) {
621
- reject(message.data.error);
366
+ channel.port1.onmessageerror = function (event) {
367
+ reject(event);
622
368
  };
623
369
  worker.postMessage(message, [channel.port2]);
624
370
  });
@@ -644,10 +390,17 @@ var LocalSearchProvider = /*#__PURE__*/function () {
644
390
  mark: 'Suggest__Item__Marker'
645
391
  }));
646
392
  });
647
- // Temporary disable link to search page
648
- // TODO: Implement search page
649
- defineProperty_default()(this, "link", function () {
650
- return null;
393
+ defineProperty_default()(this, "link", function (query) {
394
+ var page = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
395
+ var searchParams = new URLSearchParams();
396
+ if (query) {
397
+ searchParams.set('query', query);
398
+ }
399
+ if (page > 1) {
400
+ searchParams.set('page', page.toString());
401
+ }
402
+ var params = searchParams.toString() ? "?".concat(searchParams.toString()) : '';
403
+ return "".concat(_this.base, "/").concat(_this.config.link).concat(params);
651
404
  });
652
405
  this.config = config;
653
406
  }
@@ -677,12 +430,19 @@ var LocalSearchProvider = /*#__PURE__*/function () {
677
430
  key: "search",
678
431
  value: function () {
679
432
  var _search = asyncToGenerator_default()(/*#__PURE__*/regenerator_default().mark(function _callee2(query) {
433
+ var page,
434
+ count,
435
+ _args2 = arguments;
680
436
  return regenerator_default().wrap(function (_context2) {
681
437
  while (1) switch (_context2.prev = _context2.next) {
682
438
  case 0:
439
+ page = _args2.length > 1 && _args2[1] !== undefined ? _args2[1] : 1;
440
+ count = _args2.length > 2 && _args2[2] !== undefined ? _args2[2] : 10;
683
441
  return _context2.abrupt("return", this.request({
684
442
  type: 'search',
685
- query: query
443
+ query: query,
444
+ page: page,
445
+ count: count
686
446
  }));
687
447
  case 1:
688
448
  case "end":
@@ -697,14 +457,7 @@ var LocalSearchProvider = /*#__PURE__*/function () {
697
457
  }()
698
458
  }, {
699
459
  key: "base",
700
- get:
701
- // link = (query: string) => {
702
- // const params = query ? `?query=${encodeURIComponent(query)}` : '';
703
- //
704
- // return `${this.base}/${this.config.link}${params}`;
705
- // };
706
-
707
- function get() {
460
+ get: function get() {
708
461
  return window.location.href.split('/').slice(0, -this.config.depth).join('/');
709
462
  }
710
463
  }, {
@@ -774,87 +527,499 @@ function Search_provider_loadWorker() {
774
527
  }));
775
528
  return Search_provider_loadWorker.apply(this, arguments);
776
529
  }
777
- function provider_initWorker(_x4) {
778
- return Search_provider_initWorker.apply(this, arguments);
530
+ function provider_initWorker(_x4) {
531
+ return Search_provider_initWorker.apply(this, arguments);
532
+ }
533
+ function Search_provider_initWorker() {
534
+ Search_provider_initWorker = asyncToGenerator_default()(/*#__PURE__*/regenerator_default().mark(function _callee5(config) {
535
+ var worker;
536
+ return regenerator_default().wrap(function (_context5) {
537
+ while (1) switch (_context5.prev = _context5.next) {
538
+ case 0:
539
+ _context5.next = 1;
540
+ return provider_loadWorker();
541
+ case 1:
542
+ worker = _context5.sent;
543
+ _context5.next = 2;
544
+ return provider_request(worker, provider_objectSpread(provider_objectSpread({}, config), {}, {
545
+ type: 'init'
546
+ }));
547
+ case 2:
548
+ return _context5.abrupt("return", worker);
549
+ case 3:
550
+ case "end":
551
+ return _context5.stop();
552
+ }
553
+ }, _callee5);
554
+ }));
555
+ return Search_provider_initWorker.apply(this, arguments);
556
+ }
557
+ function provider_request(worker, message) {
558
+ var channel = new MessageChannel();
559
+ return new Promise(function (resolve, reject) {
560
+ channel.port1.onmessage = function (message) {
561
+ if (message.data.error) {
562
+ reject(message.data.error);
563
+ } else {
564
+ resolve(message.data.result);
565
+ }
566
+ };
567
+ channel.port1.onmessageerror = function (message) {
568
+ reject(message.data.error);
569
+ };
570
+ worker.postMessage(message, [channel.port2]);
571
+ });
572
+ }
573
+ function createProvider(config) {
574
+ if (!config) {
575
+ return null;
576
+ }
577
+ var _config$provider = config.provider,
578
+ provider = _config$provider === void 0 ? 'local' : _config$provider;
579
+ if (provider === 'algolia') {
580
+ return new AlgoliaProvider(config);
581
+ }
582
+ return new LocalSearchProvider(config);
583
+ }
584
+ var SearchProvider = (/* unused pure expression or super */ null && (LocalSearchProvider));
585
+ ;// ./src/components/Search/useProvider.ts
586
+
587
+ function useProvider_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
588
+ function useProvider_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? useProvider_ownKeys(Object(t), !0).forEach(function (r) { defineProperty_default()(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : useProvider_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
589
+
590
+
591
+
592
+
593
+ function useProvider_useProvider() {
594
+ var lang = useLang();
595
+ var _useContext = (0,react.useContext)(RouterContext),
596
+ _useContext$depth = _useContext.depth,
597
+ depth = _useContext$depth === void 0 ? 0 : _useContext$depth;
598
+ var search = (0,react.useContext)(SearchContext);
599
+ return (0,react.useMemo)(function () {
600
+ if (!search) {
601
+ return null;
602
+ }
603
+ return createProvider(useProvider_objectSpread(useProvider_objectSpread({}, search), {}, {
604
+ depth: depth,
605
+ lang: lang
606
+ }));
607
+ }, [lang, depth, search]);
608
+ }
609
+ ;// ./src/components/Search/Search.tsx
610
+
611
+
612
+
613
+
614
+
615
+
616
+
617
+
618
+
619
+ var b = (0,lib/* default */.A)('Search');
620
+ var ITEMS_PER_PAGE = 10;
621
+ function getUrlParams() {
622
+ var params = new URLSearchParams(window.location.search);
623
+ return {
624
+ query: params.get('query') || '',
625
+ page: Number(params.get('page')) || 1
626
+ };
627
+ }
628
+ function setUrlParams(query, page) {
629
+ var params = new URLSearchParams();
630
+ if (query) params.set('query', query);
631
+ if (page > 1) params.set('page', String(page));
632
+ window.history.pushState({}, '', "?".concat(params.toString()));
633
+ }
634
+ function formatResults(searchResults) {
635
+ if (!Array.isArray(searchResults)) return [];
636
+ return searchResults.map(function (result) {
637
+ var _result$hierarchy, _result$hierarchy2, _result$hierarchy3;
638
+ return {
639
+ title: (result === null || result === void 0 ? void 0 : result.title) || (result === null || result === void 0 || (_result$hierarchy = result.hierarchy) === null || _result$hierarchy === void 0 ? void 0 : _result$hierarchy.lvl0) || (result === null || result === void 0 || (_result$hierarchy2 = result.hierarchy) === null || _result$hierarchy2 === void 0 ? void 0 : _result$hierarchy2.lvl1) || '',
640
+ url: (result === null || result === void 0 ? void 0 : result.url) || (result === null || result === void 0 ? void 0 : result.link) || '#',
641
+ description: (result === null || result === void 0 ? void 0 : result.description) || (result === null || result === void 0 ? void 0 : result.content) || (result === null || result === void 0 ? void 0 : result.text) || '',
642
+ section: (result === null || result === void 0 ? void 0 : result.section) || (result === null || result === void 0 || (_result$hierarchy3 = result.hierarchy) === null || _result$hierarchy3 === void 0 ? void 0 : _result$hierarchy3.lvl1) || ''
643
+ };
644
+ });
645
+ }
646
+ var Search = function Search() {
647
+ var provider = useProvider();
648
+ var router = useRouter();
649
+ var _useState = useState(''),
650
+ _useState2 = _slicedToArray(_useState, 2),
651
+ query = _useState2[0],
652
+ setQuery = _useState2[1];
653
+ var _useState3 = useState(1),
654
+ _useState4 = _slicedToArray(_useState3, 2),
655
+ page = _useState4[0],
656
+ setPage = _useState4[1];
657
+ var _useState5 = useState([]),
658
+ _useState6 = _slicedToArray(_useState5, 2),
659
+ results = _useState6[0],
660
+ setResults = _useState6[1];
661
+ var _useState7 = useState(0),
662
+ _useState8 = _slicedToArray(_useState7, 2),
663
+ total = _useState8[0],
664
+ setTotal = _useState8[1];
665
+ var _useState9 = useState(false),
666
+ _useState0 = _slicedToArray(_useState9, 2),
667
+ loading = _useState0[0],
668
+ setLoading = _useState0[1];
669
+ var providerRef = useRef(null);
670
+ useEffect(function () {
671
+ var _provider$init;
672
+ providerRef.current = provider;
673
+ provider === null || provider === void 0 || (_provider$init = provider.init) === null || _provider$init === void 0 || _provider$init.call(provider);
674
+ }, [provider]);
675
+ useEffect(function () {
676
+ var _getUrlParams = getUrlParams(),
677
+ q = _getUrlParams.query,
678
+ p = _getUrlParams.page;
679
+ setQuery(q);
680
+ setPage(p);
681
+ }, [router]);
682
+ var performSearch = useCallback(/*#__PURE__*/function () {
683
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(searchQuery, currentPage) {
684
+ var _providerRef$current, searchResults, formatted, isLastPage, totalItems, _t;
685
+ return _regeneratorRuntime.wrap(function (_context) {
686
+ while (1) switch (_context.prev = _context.next) {
687
+ case 0:
688
+ setLoading(true);
689
+ _context.prev = 1;
690
+ _context.next = 2;
691
+ return (_providerRef$current = providerRef.current) === null || _providerRef$current === void 0 ? void 0 : _providerRef$current.search(searchQuery, currentPage, ITEMS_PER_PAGE);
692
+ case 2:
693
+ searchResults = _context.sent;
694
+ formatted = formatResults(searchResults !== null && searchResults !== void 0 ? searchResults : []);
695
+ setResults(formatted);
696
+ isLastPage = formatted.length < ITEMS_PER_PAGE;
697
+ totalItems = isLastPage ? (currentPage - 1) * ITEMS_PER_PAGE + formatted.length : currentPage * ITEMS_PER_PAGE + 1;
698
+ setTotal(formatted.length > 0 ? totalItems : 0);
699
+ _context.next = 4;
700
+ break;
701
+ case 3:
702
+ _context.prev = 3;
703
+ _t = _context["catch"](1);
704
+ setResults([]);
705
+ setTotal(0);
706
+ case 4:
707
+ _context.prev = 4;
708
+ setLoading(false);
709
+ return _context.finish(4);
710
+ case 5:
711
+ case "end":
712
+ return _context.stop();
713
+ }
714
+ }, _callee, null, [[1, 3, 4, 5]]);
715
+ }));
716
+ return function (_x, _x2) {
717
+ return _ref.apply(this, arguments);
718
+ };
719
+ }(), []);
720
+ useEffect(function () {
721
+ if (query && providerRef.current) {
722
+ performSearch(query, page);
723
+ } else {
724
+ setResults([]);
725
+ setTotal(0);
726
+ }
727
+ }, [query, page, provider, performSearch]);
728
+ var handlePageChange = useCallback(function (newPage) {
729
+ setUrlParams(query, newPage);
730
+ setPage(newPage);
731
+ }, [query]);
732
+ var handleQueryChange = useCallback(function (newQuery) {
733
+ setUrlParams(newQuery, 1);
734
+ setQuery(newQuery);
735
+ setPage(1);
736
+ }, []);
737
+ return /*#__PURE__*/React.createElement("div", {
738
+ className: b()
739
+ }, /*#__PURE__*/React.createElement(SearchPage, {
740
+ query: query,
741
+ items: results,
742
+ page: page,
743
+ totalItems: total,
744
+ onPageChange: handlePageChange,
745
+ onSubmit: handleQueryChange,
746
+ loading: loading
747
+ }));
748
+ };
749
+ ;// ./src/components/Search/index.ts
750
+
751
+ var SearchContext = /*#__PURE__*/(0,react.createContext)(null);
752
+ SearchContext.displayName = 'SearchContext';
753
+ var Search_SearchProvider = SearchContext.Provider;
754
+
755
+ function useSearch() {
756
+ return (0,react.useContext)(SearchContext);
757
+ }
758
+ // EXTERNAL MODULE: ./node_modules/@diplodoc/components/build/esm/utils/index.js + 61 modules
759
+ var utils = __webpack_require__(57010);
760
+ // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/toConsumableArray.js
761
+ var toConsumableArray = __webpack_require__(41132);
762
+ var toConsumableArray_default = /*#__PURE__*/__webpack_require__.n(toConsumableArray);
763
+ ;// ./src/constants.ts
764
+
765
+
766
+ var HEADER_HEIGHT = 64;
767
+ var MOBILE_VIEW_WIDTH_BREAKPOINT = 769;
768
+ var DEFAULT_USER_SETTINGS = {
769
+ theme: models/* Theme */.Sx.Light,
770
+ textSize: models/* TextSizes */.ov.M,
771
+ showMiniToc: true,
772
+ wideFormat: true,
773
+ fullScreen: false
774
+ };
775
+ var RTL_LANGS = ['ar', 'arc', 'ckb', 'dv', 'fa', 'ha', 'he', 'khw', 'ks', 'ps', 'sd', 'ur', 'uz_AF', 'yi'];
776
+ var TextDirection = /*#__PURE__*/function (TextDirection) {
777
+ TextDirection["RTL"] = "rtl";
778
+ TextDirection["LTR"] = "ltr";
779
+ return TextDirection;
780
+ }({});
781
+ var LINK_KEYS_LEADING_CONFIG = ['href'];
782
+ var LINK_KEYS_PAGE_CONSTRUCTOR_CONFIG = ['src', 'url', 'href', 'icon', 'image', 'desktop', 'mobile', 'tablet', 'previewImg', 'image', 'avatar', 'logo', 'light', 'dark'];
783
+ var LINK_KEYS = toConsumableArray_default()(new Set([].concat(LINK_KEYS_LEADING_CONFIG, LINK_KEYS_PAGE_CONSTRUCTOR_CONFIG)));
784
+ ;// ./src/utils.ts
785
+
786
+
787
+ function isBrowser() {
788
+ return typeof document !== 'undefined';
789
+ }
790
+ function updateThemeClassName(_ref) {
791
+ var theme = _ref.theme;
792
+ if (typeof document === 'undefined') {
793
+ return;
794
+ }
795
+ document.querySelectorAll('.g-root').forEach(function (el) {
796
+ el.classList.toggle('g-root_theme_light', theme === 'light');
797
+ el.classList.toggle('g-root_theme_dark', theme === 'dark');
798
+ });
799
+ }
800
+ function updateRootClassName(states) {
801
+ if (!isBrowser()) {
802
+ return;
803
+ }
804
+ document.body.classList.add('g-root');
805
+ var toggle = function toggle(name, state) {
806
+ return document.body.classList.toggle(name, Boolean(state));
807
+ };
808
+ Object.keys(states).forEach(function (state) {
809
+ switch (state) {
810
+ case 'wideFormat':
811
+ toggle('dc-root_wide-format', states[state]);
812
+ break;
813
+ case 'focusSearch':
814
+ toggle('dc-root_focused-search', states[state]);
815
+ break;
816
+ case 'fullScreen':
817
+ toggle('dc-root_full-screen', states[state]);
818
+ break;
819
+ case 'landingPage':
820
+ toggle('dc-root_document-page', !states[state]);
821
+ toggle('dc-root_landing-page', states[state]);
822
+ break;
823
+ case 'mobileView':
824
+ toggle('mobile', states[state]);
825
+ toggle('desktop', !states[state]);
826
+ break;
827
+ }
828
+ });
829
+ }
830
+ function getDirection(lang) {
831
+ var isRTL = RTL_LANGS.includes(lang);
832
+ return isRTL ? TextDirection.RTL : TextDirection.LTR;
779
833
  }
780
- function Search_provider_initWorker() {
781
- Search_provider_initWorker = asyncToGenerator_default()(/*#__PURE__*/regenerator_default().mark(function _callee5(config) {
782
- var worker;
783
- return regenerator_default().wrap(function (_context5) {
784
- while (1) switch (_context5.prev = _context5.next) {
785
- case 0:
786
- _context5.next = 1;
787
- return provider_loadWorker();
788
- case 1:
789
- worker = _context5.sent;
790
- _context5.next = 2;
791
- return provider_request(worker, provider_objectSpread(provider_objectSpread({}, config), {}, {
792
- type: 'init'
793
- }));
794
- case 2:
795
- return _context5.abrupt("return", worker);
796
- case 3:
797
- case "end":
798
- return _context5.stop();
799
- }
800
- }, _callee5);
801
- }));
802
- return Search_provider_initWorker.apply(this, arguments);
834
+ var toBoolean = function toBoolean(str) {
835
+ if (typeof str === 'boolean') {
836
+ return str;
837
+ }
838
+ return str ? str === 'true' : false;
839
+ };
840
+ function getSettings() {
841
+ var theme = getSetting('theme');
842
+ var textSize = getSetting('textSize');
843
+ var showMiniToc = getSetting('showMiniToc');
844
+ var wideFormat = getSetting('wideFormat');
845
+ var fullScreen = getSetting('fullScreen');
846
+ return {
847
+ theme: theme,
848
+ textSize: textSize,
849
+ showMiniToc: toBoolean(showMiniToc),
850
+ wideFormat: toBoolean(wideFormat),
851
+ fullScreen: toBoolean(fullScreen)
852
+ };
803
853
  }
804
- function provider_request(worker, message) {
805
- var channel = new MessageChannel();
806
- return new Promise(function (resolve, reject) {
807
- channel.port1.onmessage = function (message) {
808
- if (message.data.error) {
809
- // eslint-disable-next-line no-console
810
- console.error(message.data.error);
811
- reject(message.data.error);
812
- } else {
813
- resolve(message.data.result);
814
- }
815
- };
816
- channel.port1.onmessageerror = function (message) {
817
- reject(message.data.error);
818
- };
819
- worker.postMessage(message, [channel.port2]);
820
- });
854
+ function getLandingPage(data) {
855
+ return (0,utils/* getPageType */.M5)(data) === 'PAGE_CONSTRUCTOR';
821
856
  }
822
- function createProvider(config) {
823
- if (!config) {
824
- return null;
857
+ function getMobileView() {
858
+ if (!isBrowser()) {
859
+ return false;
825
860
  }
826
- var _config$provider = config.provider,
827
- provider = _config$provider === void 0 ? 'local' : _config$provider;
828
- if (provider === 'algolia') {
829
- return new AlgoliaProvider(config);
861
+ return document.body.clientWidth < MOBILE_VIEW_WIDTH_BREAKPOINT;
862
+ }
863
+ function getSetting(name) {
864
+ if (!isBrowser()) {
865
+ return DEFAULT_USER_SETTINGS[name];
866
+ }
867
+ try {
868
+ return sessionStorage.getItem(name) || DEFAULT_USER_SETTINGS[name];
869
+ } catch (_unused) {
870
+ return DEFAULT_USER_SETTINGS[name];
830
871
  }
831
- return new LocalSearchProvider(config);
832
872
  }
833
- var provider_SearchProvider = (/* unused pure expression or super */ null && (LocalSearchProvider));
834
- ;// ./src/components/Search/useProvider.ts
835
-
836
- function useProvider_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
837
- function useProvider_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? useProvider_ownKeys(Object(t), !0).forEach(function (r) { defineProperty_default()(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : useProvider_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
873
+ function setSetting(name, value) {
874
+ if (!isBrowser()) {
875
+ return;
876
+ }
877
+ try {
878
+ sessionStorage.setItem(name, String(value));
879
+ } catch (_unused2) {}
880
+ }
881
+ // EXTERNAL MODULE: ./src/interceptors/leading-page-links.js
882
+ var leading_page_links = __webpack_require__(44186);
883
+ // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/objectWithoutProperties.js
884
+ var objectWithoutProperties = __webpack_require__(91847);
885
+ var objectWithoutProperties_default = /*#__PURE__*/__webpack_require__.n(objectWithoutProperties);
886
+ // EXTERNAL MODULE: ./node_modules/@gravity-ui/page-constructor/build/esm/containers/PageConstructor/Provider.js
887
+ var Provider = __webpack_require__(47658);
888
+ // EXTERNAL MODULE: ./node_modules/@gravity-ui/page-constructor/build/esm/containers/PageConstructor/PageConstructor.js + 10 modules
889
+ var PageConstructor = __webpack_require__(95168);
890
+ ;// ./src/components/Layout/index.tsx
838
891
 
892
+ function Layout_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
893
+ function Layout_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? Layout_ownKeys(Object(t), !0).forEach(function (r) { defineProperty_default()(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : Layout_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
839
894
 
840
895
 
841
896
 
842
- function useProvider() {
843
- var lang = useLang();
844
- var _useContext = (0,react.useContext)(RouterContext),
845
- _useContext$depth = _useContext.depth,
846
- depth = _useContext$depth === void 0 ? 0 : _useContext$depth;
847
- var search = (0,react.useContext)(SearchContext);
848
- return (0,react.useMemo)(function () {
849
- if (!search) {
850
- return null;
897
+ var Layout_b = (0,lib/* default */.A)('Layout');
898
+ function Header() {
899
+ return null;
900
+ }
901
+ function Content() {
902
+ return null;
903
+ }
904
+ function Footer() {
905
+ return null;
906
+ }
907
+ var defaults = {
908
+ doc: false
909
+ };
910
+ var Layout = function Layout(props) {
911
+ var _defaults$props = Layout_objectSpread(Layout_objectSpread({}, defaults), props),
912
+ children = _defaults$props.children,
913
+ doc = _defaults$props.doc,
914
+ _defaults$props$heade = _defaults$props.headerHeight,
915
+ headerHeight = _defaults$props$heade === void 0 ? 0 : _defaults$props$heade;
916
+ var header, content, footer;
917
+ react.Children.forEach(children, function (child) {
918
+ switch (child.type) {
919
+ case Header:
920
+ header = child.props.children;
921
+ break;
922
+ case Content:
923
+ content = child.props.children;
924
+ break;
925
+ case Footer:
926
+ footer = child.props.children;
927
+ break;
851
928
  }
852
- return createProvider(useProvider_objectSpread(useProvider_objectSpread({}, search), {}, {
853
- depth: depth,
854
- lang: lang
855
- }));
856
- }, [lang, depth, search]);
929
+ });
930
+ return /*#__PURE__*/react.createElement("div", {
931
+ className: Layout_b({
932
+ 'full-header': headerHeight > 0
933
+ })
934
+ }, header && /*#__PURE__*/react.createElement("div", {
935
+ className: Layout_b('header')
936
+ }, header), /*#__PURE__*/react.createElement("div", {
937
+ className: Layout_b('body')
938
+ }, content && /*#__PURE__*/react.createElement("div", {
939
+ className: Layout_b('content')
940
+ }, content), footer && /*#__PURE__*/react.createElement("div", {
941
+ className: Layout_b('footer', {
942
+ doc: doc
943
+ })
944
+ }, footer)));
945
+ };
946
+ Layout.displayName = 'Layout';
947
+ Layout.Header = Header;
948
+ Layout.Content = Content;
949
+ Layout.Footer = Footer;
950
+ // EXTERNAL MODULE: ./node_modules/@gravity-ui/page-constructor/build/esm/grid/Row/Row.js
951
+ var Row = __webpack_require__(98058);
952
+ // EXTERNAL MODULE: ./node_modules/@gravity-ui/page-constructor/build/esm/grid/Col/Col.js + 1 modules
953
+ var Col = __webpack_require__(12445);
954
+ // EXTERNAL MODULE: ./node_modules/@gravity-ui/page-constructor/build/esm/context/theme/useTheme.js
955
+ var useTheme = __webpack_require__(79568);
956
+ // EXTERNAL MODULE: ./node_modules/@gravity-ui/page-constructor/build/esm/utils/theme.js
957
+ var utils_theme = __webpack_require__(3259);
958
+ // EXTERNAL MODULE: ./node_modules/@gravity-ui/page-constructor/build/esm/components/BackgroundMedia/BackgroundMedia.js + 1 modules
959
+ var BackgroundMedia = __webpack_require__(61998);
960
+ // EXTERNAL MODULE: ./node_modules/@gravity-ui/page-constructor/build/esm/grid/Grid/Grid.js + 2 modules
961
+ var Grid = __webpack_require__(62945);
962
+ // EXTERNAL MODULE: ./node_modules/@gravity-ui/page-constructor/build/esm/containers/PageConstructor/components/ConstructorBlocks/ConstructorBlocks.js + 10 modules
963
+ var ConstructorBlocks = __webpack_require__(94012);
964
+ ;// ./src/components/ConstructorPage/index.tsx
965
+
966
+
967
+
968
+ var bPC = (0,lib/* default */.A)('pc-page-constructor');
969
+ var bPCRow = (0,lib/* default */.A)('pc-constructor-row');
970
+ var ConstructorRow = function ConstructorRow(_ref) {
971
+ var children = _ref.children;
972
+ return children ? /*#__PURE__*/react.createElement(Row/* Row */.f, {
973
+ className: bPCRow()
974
+ }, /*#__PURE__*/react.createElement(Col/* Col */.f, null, children)) : null;
975
+ };
976
+ function ConstructorPage(_ref2) {
977
+ var background = _ref2.background,
978
+ blocks = _ref2.blocks;
979
+ var theme = (0,useTheme/* useTheme */.D)();
980
+ var themedBackground = (0,utils_theme/* getThemedValue */.d)(background, theme);
981
+ return /*#__PURE__*/react.createElement("div", {
982
+ className: bPC('docs')
983
+ }, /*#__PURE__*/react.createElement("div", {
984
+ className: bPC('wrapper')
985
+ }, blocks && themedBackground && /*#__PURE__*/react.createElement(BackgroundMedia/* default */.A, Object.assign({}, themedBackground, {
986
+ className: bPC('background')
987
+ })), /*#__PURE__*/react.createElement(Grid/* Grid */.x, null, /*#__PURE__*/react.createElement(ConstructorRow, null, /*#__PURE__*/react.createElement(ConstructorBlocks/* ConstructorBlocks */.F, {
988
+ items: blocks
989
+ })))));
857
990
  }
991
+ ;// ./src/components/ConstructorPage/useContent.tsx
992
+
993
+
994
+ var useContent = function useContent(data, CustomPage) {
995
+ var type = (0,utils/* getPageType */.M5)(data);
996
+ var fullScreen = type === models/* DocumentType */.KG.PageConstructor && 'data' in data && 'fullScreen' in data.data && data.data.fullScreen;
997
+ var layout = (0,react.useMemo)(function () {
998
+ return fullScreen ? data.data : {
999
+ blocks: [{
1000
+ type: 'page',
1001
+ resetPaddings: true
1002
+ }]
1003
+ };
1004
+ }, [fullScreen, data]);
1005
+ var config = (0,react.useMemo)(function () {
1006
+ return {
1007
+ custom: {
1008
+ page: CustomPage
1009
+ },
1010
+ layout: layout
1011
+ };
1012
+ }, [CustomPage, layout]);
1013
+ return config;
1014
+ };
1015
+ // EXTERNAL MODULE: ./node_modules/@diplodoc/components/build/esm/hooks/useInterface.js
1016
+ var useInterface = __webpack_require__(40258);
1017
+ // EXTERNAL MODULE: ./node_modules/@diplodoc/components/build/esm/components/SearchSuggest/index.js + 8 modules
1018
+ var SearchSuggest = __webpack_require__(9400);
1019
+ // EXTERNAL MODULE: ./node_modules/@gravity-ui/uikit/build/esm/components/Icon/Icon.js + 3 modules
1020
+ var Icon = __webpack_require__(29504);
1021
+ // EXTERNAL MODULE: ./node_modules/@gravity-ui/icons/esm/Magnifier.js
1022
+ var Magnifier = __webpack_require__(84941);
858
1023
  ;// ./src/components/Search/Suggest.tsx
859
1024
 
860
1025
 
@@ -873,7 +1038,7 @@ function SearchButton() {
873
1038
  });
874
1039
  }
875
1040
  function Suggest() {
876
- var provider = useProvider();
1041
+ var provider = useProvider_useProvider();
877
1042
  var suggest = (0,react.useRef)(null);
878
1043
  var isSearchHidden = (0,useInterface/* useInterface */.j)('search');
879
1044
  var onFocus = (0,react.useCallback)(function () {
@@ -983,7 +1148,7 @@ var useNavigation = function useNavigation(data, controls, CustomControls, Custo
983
1148
  var withControls = findItem(rightItems, leftItems, 'controls');
984
1149
  var withSearch = findItem(rightItems, leftItems, 'search');
985
1150
  var search = useSearch();
986
- var router = useRouter();
1151
+ var router = Router_useRouter();
987
1152
  if (search && !withSearch) {
988
1153
  rightItems.unshift({
989
1154
  type: 'search'
@@ -1199,9 +1364,6 @@ function useLangs(_ref) {
1199
1364
  };
1200
1365
  }, [lang, langs, onChangeLang]);
1201
1366
  }
1202
- // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/slicedToArray.js
1203
- var slicedToArray = __webpack_require__(85715);
1204
- var slicedToArray_default = /*#__PURE__*/__webpack_require__.n(slicedToArray);
1205
1367
  ;// ./src/components/App/useSettings.ts
1206
1368
 
1207
1369
 
@@ -1346,7 +1508,7 @@ function App(props) {
1346
1508
  value: lang
1347
1509
  }, /*#__PURE__*/react.createElement(RouterProvider, {
1348
1510
  value: router
1349
- }, /*#__PURE__*/react.createElement(SearchProvider, {
1511
+ }, /*#__PURE__*/react.createElement(Search_SearchProvider, {
1350
1512
  value: search
1351
1513
  }, /*#__PURE__*/react.createElement(InterfaceContext/* InterfaceProvider */.p, {
1352
1514
  "interface": viewerInterface || {}