@diplodoc/client 3.11.0 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/build/client/app-a0838f915fcfe0db.js +2 -0
  3. package/build/client/app-a0838f915fcfe0db.js.map +1 -0
  4. package/build/client/manifest.json +8 -8
  5. package/build/client/search-7dc3bfe50645287d.js +2 -0
  6. package/build/client/search-7dc3bfe50645287d.js.map +1 -0
  7. package/build/client/{vendor-9aa0609c11103fb0.rtl.css → vendor-4e1799a17201afc3.rtl.css} +2 -2
  8. package/build/client/{vendor-bc3eb63ddaa9dd73.js → vendor-6e21eae2c11cd197.js} +4 -4
  9. package/build/client/vendor-6e21eae2c11cd197.js.map +1 -0
  10. package/build/client/{vendor-5c42c2d82fe19c6e.css → vendor-fe111bf380adc637.css} +3 -3
  11. package/build/client/vendor-fe111bf380adc637.css.map +1 -0
  12. package/build/components/App/Page.d.ts +2 -9
  13. package/build/components/App/index.d.ts +1 -1
  14. package/build/components/App/useAvailableLangs.d.ts +3 -0
  15. package/build/components/ConstructorPage/useNavigation.d.ts +3 -1
  16. package/build/components/HeaderControls/index.d.ts +2 -1
  17. package/build/server/app.js +99 -90
  18. package/build/server/app.js.map +1 -1
  19. package/build/server/vendor.js +48 -68
  20. package/build/server/vendor.js.map +1 -1
  21. package/package.json +2 -2
  22. package/rspack/config.ts +1 -1
  23. package/rspack/rtl-css.ts +10 -23
  24. package/build/client/app-9912bc5fc2ea22c6.js +0 -2
  25. package/build/client/app-9912bc5fc2ea22c6.js.map +0 -1
  26. package/build/client/search-c72f8c6ef62ff42a.js +0 -2
  27. package/build/client/search-c72f8c6ef62ff42a.js.map +0 -1
  28. package/build/client/vendor-5c42c2d82fe19c6e.css.map +0 -1
  29. package/build/client/vendor-bc3eb63ddaa9dd73.js.map +0 -1
@@ -2197,27 +2197,41 @@ var constants = __webpack_require__(53816);
2197
2197
 
2198
2198
 
2199
2199
 
2200
+
2200
2201
  var LangControl_b = (0,lib["default"])("dc-lang-control");
2201
2202
  var LangControl_LIST_ITEM_HEIGHT = 36;
2202
2203
  var LangControl = (props) => {
2203
2204
  const { t } = (0,useTranslation/* .useTranslation */.$)("controls");
2204
2205
  const { controlClassName, controlSize, isVerticalView, popupPosition } = (0,react.useContext)(ControlsLayout/* .ControlsLayoutContext */.q);
2205
- const { lang, langs = constants/* .DEFAULT_LANGS */.rc, onChangeLang } = props;
2206
+ const { lang, langs = constants/* .DEFAULT_LANGS */.rc, availableLangs, onChangeLang } = props;
2206
2207
  const controlRef = (0,react.useRef)(null);
2208
+ const isLangDisabled = (0,react.useCallback)(
2209
+ (lang2) => {
2210
+ return Boolean((availableLangs == null ? void 0 : availableLangs.length) && !availableLangs.includes(lang2));
2211
+ },
2212
+ [availableLangs]
2213
+ );
2207
2214
  const popupState = (0,usePopupState/* .usePopupState */.o)();
2208
2215
  const langItems = (0,react.useMemo)(() => {
2209
2216
  const preparedLangs = langs.map((code) => {
2210
2217
  const langData = langs_default().where("1", code);
2218
+ const lang2 = (langData == null ? void 0 : langData["1"]) || models/* .Lang.En */.Uo.En;
2219
+ const disabled = isLangDisabled(lang2);
2211
2220
  return langData ? {
2212
2221
  text: langData.local,
2213
- value: langData["1"]
2222
+ value: lang2,
2223
+ disabled
2214
2224
  } : void 0;
2215
2225
  }).filter(Boolean);
2216
2226
  return preparedLangs.length ? preparedLangs : constants/* .LEGACY_LANG_ITEMS */.Yl;
2217
- }, [langs]);
2218
- const renderItem = (0,react.useCallback)((item) => {
2219
- return /* @__PURE__ */ react.createElement("button", { className: LangControl_b("list-item") }, item.text);
2220
- }, []);
2227
+ }, [langs, isLangDisabled]);
2228
+ const renderItem = (0,react.useCallback)(
2229
+ (item) => {
2230
+ const disabled = isLangDisabled(item.value);
2231
+ return /* @__PURE__ */ react.createElement("button", { className: LangControl_b("list-item", { disabled }), disabled }, item.text);
2232
+ },
2233
+ [isLangDisabled]
2234
+ );
2221
2235
  const onItemClick = (0,react.useCallback)(
2222
2236
  (item) => {
2223
2237
  onChangeLang(item.value);
@@ -2487,7 +2501,8 @@ var ControlsList = (props) => {
2487
2501
  vcsType,
2488
2502
  isLiked,
2489
2503
  isDisliked,
2490
- isHiddenFeedback
2504
+ isHiddenFeedback,
2505
+ availableLangs = []
2491
2506
  } = props;
2492
2507
  const withFullscreenControl = Boolean(onChangeFullScreen);
2493
2508
  const withSettingsControl = Boolean(
@@ -2530,6 +2545,7 @@ var ControlsList = (props) => {
2530
2545
  key: "lang-control",
2531
2546
  lang,
2532
2547
  langs,
2548
+ availableLangs,
2533
2549
  onChangeLang
2534
2550
  }
2535
2551
  ),
@@ -5326,11 +5342,17 @@ var MobileControlSheet = (0,react.memo)(
5326
5342
  onItemClick,
5327
5343
  isVisible,
5328
5344
  onClose,
5329
- selectedItemIndex
5345
+ selectedItemIndex,
5346
+ availableLangs
5330
5347
  }) => {
5331
5348
  const renderItem = (0,react.useCallback)(
5332
- (item) => /* @__PURE__ */ react.createElement("button", { className: b("list-item") }, item.text),
5333
- []
5349
+ (item) => {
5350
+ const disabled = Boolean(
5351
+ (availableLangs == null ? void 0 : availableLangs.length) && !availableLangs.includes(item.value)
5352
+ );
5353
+ return /* @__PURE__ */ react.createElement("button", { className: b("list-item", { disabled }), disabled }, item.text);
5354
+ },
5355
+ [availableLangs]
5334
5356
  );
5335
5357
  return /* @__PURE__ */ react.createElement(Sheet, { title, className: b(), visible: isVisible, onClose }, /* @__PURE__ */ react.createElement(
5336
5358
  List/* .List */.a,
@@ -5373,6 +5395,7 @@ var MobileControl = (0,react.memo)(
5373
5395
  selectedItem,
5374
5396
  selectedItemIndex,
5375
5397
  displayItems,
5398
+ availableLangs,
5376
5399
  onChangeValue
5377
5400
  }) => {
5378
5401
  const labelText = (0,react.useMemo)(
@@ -5396,7 +5419,8 @@ var MobileControl = (0,react.memo)(
5396
5419
  onItemClick,
5397
5420
  isVisible: sheetIsVisible,
5398
5421
  onClose: onSheetClose,
5399
- selectedItemIndex
5422
+ selectedItemIndex,
5423
+ availableLangs
5400
5424
  }
5401
5425
  ), /* @__PURE__ */ react.createElement(
5402
5426
  Button/* .Button */.z,
@@ -5432,7 +5456,7 @@ var MobileControl_default = MobileControl;
5432
5456
 
5433
5457
 
5434
5458
  var MobileControls_b = (0,lib["default"])("dc-mobile-controls");
5435
- var useLangControl = (t, lang, langs, onChangeLang) => {
5459
+ var useLangControl = (t, lang, availableLangs, langs, onChangeLang) => {
5436
5460
  const langItems = (0,react.useMemo)(() => {
5437
5461
  const preparedLangs = (langs != null ? langs : constants/* .DEFAULT_LANGS */.rc).map((code) => {
5438
5462
  const langData = langs_default().where("1", code);
@@ -5453,6 +5477,7 @@ var useLangControl = (t, lang, langs, onChangeLang) => {
5453
5477
  selectedItem: lang,
5454
5478
  selectedItemIndex,
5455
5479
  displayItems: langItems,
5480
+ availableLangs,
5456
5481
  onChangeValue: onChangeLang
5457
5482
  }
5458
5483
  );
@@ -5495,8 +5520,8 @@ var useThemeControl = (t, theme, onChangeTheme) => {
5495
5520
  };
5496
5521
  var MobileControls = (0,react.memo)(({ controlSize, userSettings }) => {
5497
5522
  const { t } = (0,useTranslation/* .useTranslation */.$)("controls");
5498
- const { onChangeLang, lang, langs, onChangeTheme, theme } = userSettings;
5499
- const langControl = useLangControl(t, lang != null ? lang : esm_models/* .Lang.En */.Uo.En, langs, onChangeLang);
5523
+ const { onChangeLang, lang, langs, availableLangs = [], onChangeTheme, theme } = userSettings;
5524
+ const langControl = useLangControl(t, lang != null ? lang : esm_models/* .Lang.En */.Uo.En, availableLangs, langs, onChangeLang);
5500
5525
  const themeControl = useThemeControl(t, theme != null ? theme : esm_models/* .Theme.Light */.Q2.Light, onChangeTheme);
5501
5526
  if (!onChangeTheme && !onChangeLang) {
5502
5527
  return null;
@@ -11982,7 +12007,9 @@ var DocPage = class extends react.Component {
11982
12007
  onMiniTocItemClick,
11983
12008
  legacyToc,
11984
12009
  notification,
11985
- notificationCb
12010
+ notificationCb,
12011
+ availableLangs = [],
12012
+ beforeSubNavigationContent
11986
12013
  } = this.props;
11987
12014
  const hideBurger = typeof headerHeight !== "undefined" && headerHeight > 0;
11988
12015
  const modes = {
@@ -11995,6 +12022,7 @@ var DocPage = class extends react.Component {
11995
12022
  lang,
11996
12023
  userSettings: {
11997
12024
  langs,
12025
+ availableLangs,
11998
12026
  onChangeLang,
11999
12027
  theme,
12000
12028
  onChangeTheme
@@ -12026,6 +12054,7 @@ var DocPage = class extends react.Component {
12026
12054
  className: DocPage_b("aside"),
12027
12055
  key: getStateKey(this.showMiniToc, wideFormat, singlePage)
12028
12056
  },
12057
+ beforeSubNavigationContent,
12029
12058
  /* @__PURE__ */ react.createElement(
12030
12059
  SubNavigation_default,
12031
12060
  {
@@ -12274,7 +12303,8 @@ var DocPage = class extends react.Component {
12274
12303
  isDisliked,
12275
12304
  hideControls,
12276
12305
  hideEditControl,
12277
- hideFeedbackControls
12306
+ hideFeedbackControls,
12307
+ availableLangs = []
12278
12308
  } = this.props;
12279
12309
  if (hideControls) {
12280
12310
  return null;
@@ -12304,7 +12334,8 @@ var DocPage = class extends react.Component {
12304
12334
  onSendFeedback,
12305
12335
  onSubscribe,
12306
12336
  hideEditControl: hideEditControl || fullScreen || !this.isEditable(),
12307
- hideFeedbackControls
12337
+ hideFeedbackControls,
12338
+ availableLangs
12308
12339
  }
12309
12340
  )));
12310
12341
  }
@@ -191707,57 +191738,6 @@ function _object_spread_props(target, source) {
191707
191738
 
191708
191739
 
191709
191740
 
191710
- }),
191711
- 98848: (function (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
191712
- "use strict";
191713
-
191714
- // EXPORTS
191715
- __webpack_require__.d(__webpack_exports__, {
191716
- _: () => (/* binding */ _object_without_properties)
191717
- });
191718
-
191719
- ;// CONCATENATED MODULE: ./node_modules/@swc/helpers/esm/_object_without_properties_loose.js
191720
- function _object_without_properties_loose(source, excluded) {
191721
- if (source == null) return {};
191722
-
191723
- var target = {};
191724
- var sourceKeys = Object.keys(source);
191725
- var key, i;
191726
-
191727
- for (i = 0; i < sourceKeys.length; i++) {
191728
- key = sourceKeys[i];
191729
- if (excluded.indexOf(key) >= 0) continue;
191730
- target[key] = source[key];
191731
- }
191732
-
191733
- return target;
191734
- }
191735
-
191736
-
191737
- ;// CONCATENATED MODULE: ./node_modules/@swc/helpers/esm/_object_without_properties.js
191738
-
191739
-
191740
- function _object_without_properties(source, excluded) {
191741
- if (source == null) return {};
191742
-
191743
- var target = _object_without_properties_loose(source, excluded);
191744
- var key, i;
191745
-
191746
- if (Object.getOwnPropertySymbols) {
191747
- var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
191748
- for (i = 0; i < sourceSymbolKeys.length; i++) {
191749
- key = sourceSymbolKeys[i];
191750
- if (excluded.indexOf(key) >= 0) continue;
191751
- if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
191752
- target[key] = source[key];
191753
- }
191754
- }
191755
-
191756
- return target;
191757
- }
191758
-
191759
-
191760
-
191761
191741
  }),
191762
191742
  24460: (function (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
191763
191743
  "use strict";