@diplodoc/client 4.1.4 → 4.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.
@@ -2197,7 +2197,6 @@ var constants = __webpack_require__(53816);
2197
2197
 
2198
2198
 
2199
2199
 
2200
-
2201
2200
  var LangControl_b = (0,lib["default"])("dc-lang-control");
2202
2201
  var LangControl_LIST_ITEM_HEIGHT = 36;
2203
2202
  var LangControl = (props) => {
@@ -2214,31 +2213,58 @@ var LangControl = (props) => {
2214
2213
  const popupState = (0,usePopupState/* .usePopupState */.o)();
2215
2214
  const langItems = (0,react.useMemo)(() => {
2216
2215
  const preparedLangs = langs.map((code) => {
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);
2216
+ let lang2;
2217
+ let tld;
2218
+ let href;
2219
+ if (typeof code === "string") {
2220
+ lang2 = code;
2221
+ } else {
2222
+ lang2 = code.lang;
2223
+ tld = code.tld;
2224
+ href = code.href;
2225
+ }
2226
+ const locale = lang2.split("-")[0];
2227
+ const langData = langs_default().where("1", locale);
2228
+ const disabled = isLangDisabled(lang2) && !href;
2229
+ const regionNames = new Intl.DisplayNames([lang2], { type: "region" });
2230
+ const country = tld ? regionNames.of(tld.toUpperCase()) : void 0;
2220
2231
  return langData ? {
2221
2232
  text: langData.local,
2233
+ country,
2222
2234
  value: lang2,
2223
- disabled
2235
+ disabled,
2236
+ options: {
2237
+ tld,
2238
+ href
2239
+ }
2224
2240
  } : void 0;
2225
2241
  }).filter(Boolean);
2226
2242
  return preparedLangs.length ? preparedLangs : constants/* .LEGACY_LANG_ITEMS */.Yl;
2227
2243
  }, [langs, isLangDisabled]);
2228
2244
  const renderItem = (0,react.useCallback)(
2229
2245
  (item) => {
2230
- const disabled = isLangDisabled(item.value);
2231
- return /* @__PURE__ */ react.createElement("button", { className: LangControl_b("list-item", { disabled }), disabled }, item.text);
2246
+ const { tld, href } = item.options || {};
2247
+ const disabled = isLangDisabled(item.value) && !href;
2248
+ const country = item.country;
2249
+ return /* @__PURE__ */ react.createElement(
2250
+ "button",
2251
+ {
2252
+ className: LangControl_b("list-item", { disabled, tld: Boolean(tld) }),
2253
+ disabled
2254
+ },
2255
+ item.text,
2256
+ tld && country && /* @__PURE__ */ react.createElement("span", null, country)
2257
+ );
2232
2258
  },
2233
2259
  [isLangDisabled]
2234
2260
  );
2235
2261
  const onItemClick = (0,react.useCallback)(
2236
2262
  (item) => {
2237
- onChangeLang(item.value);
2263
+ const options = item.options;
2264
+ onChangeLang(item.value, options);
2238
2265
  },
2239
2266
  [onChangeLang]
2240
2267
  );
2241
- const itemsHeight = LangControl_LIST_ITEM_HEIGHT * langItems.length;
2242
2268
  const selectedItemIndex = langItems.findIndex(({ value }) => value === lang);
2243
2269
  const onOpenChange = (0,react.useCallback)(
2244
2270
  (opened) => {
@@ -2273,8 +2299,8 @@ var LangControl = (props) => {
2273
2299
  items: langItems,
2274
2300
  onItemClick,
2275
2301
  selectedItemIndex,
2276
- itemHeight: LangControl_LIST_ITEM_HEIGHT,
2277
- itemsHeight,
2302
+ itemHeight: (items) => (0,utils/* .getItemHeight */.up)(LangControl_LIST_ITEM_HEIGHT, items),
2303
+ itemsHeight: (items) => (0,utils/* .getItemsHeight */.Ww)(LangControl_LIST_ITEM_HEIGHT, items),
2278
2304
  renderItem
2279
2305
  }
2280
2306
  )
@@ -5353,6 +5379,8 @@ const Sheet = ({ children, onClose, visible, id, title, className, contentClassN
5353
5379
 
5354
5380
  // EXTERNAL MODULE: ./node_modules/@gravity-ui/uikit/build/esm/components/List/List.js + 43 modules
5355
5381
  var List = __webpack_require__(11383);
5382
+ // EXTERNAL MODULE: ./node_modules/@diplodoc/components/build/esm/utils/index.js + 63 modules
5383
+ var utils = __webpack_require__(20935);
5356
5384
  ;// CONCATENATED MODULE: ./node_modules/@diplodoc/components/build/esm/components/MobileControls/MobileControlSheet/MobileControlSheet.css
5357
5385
 
5358
5386
  ;// CONCATENATED MODULE: ./node_modules/@diplodoc/components/build/esm/components/MobileControls/MobileControlSheet/MobileControlSheet.js
@@ -5361,6 +5389,7 @@ var List = __webpack_require__(11383);
5361
5389
 
5362
5390
 
5363
5391
 
5392
+
5364
5393
  var LIST_ITEM_HEIGHT = 44;
5365
5394
  var b = (0,lib["default"])("dc-mobile-control-sheet");
5366
5395
  var MobileControlSheet = (0,react.memo)(
@@ -5375,10 +5404,20 @@ var MobileControlSheet = (0,react.memo)(
5375
5404
  }) => {
5376
5405
  const renderItem = (0,react.useCallback)(
5377
5406
  (item) => {
5407
+ const { tld, href } = item.options || {};
5378
5408
  const disabled = Boolean(
5379
5409
  (availableLangs == null ? void 0 : availableLangs.length) && !availableLangs.includes(item.value)
5410
+ ) && !href;
5411
+ const country = item.country;
5412
+ return /* @__PURE__ */ react.createElement(
5413
+ "button",
5414
+ {
5415
+ className: b("list-item", { disabled, tld: Boolean(tld) }),
5416
+ disabled
5417
+ },
5418
+ item.text,
5419
+ tld && country && /* @__PURE__ */ react.createElement("span", null, country)
5380
5420
  );
5381
- return /* @__PURE__ */ react.createElement("button", { className: b("list-item", { disabled }), disabled }, item.text);
5382
5421
  },
5383
5422
  [availableLangs]
5384
5423
  );
@@ -5389,9 +5428,9 @@ var MobileControlSheet = (0,react.memo)(
5389
5428
  className: b("list"),
5390
5429
  filterable: false,
5391
5430
  items,
5392
- onItemClick: (item) => onItemClick(item.value),
5393
- itemHeight: LIST_ITEM_HEIGHT,
5394
- itemsHeight: LIST_ITEM_HEIGHT * items.length,
5431
+ onItemClick: (item) => onItemClick(item.value, item.options),
5432
+ itemHeight: (items2) => (0,utils/* .getItemHeight */.up)(LIST_ITEM_HEIGHT, items2),
5433
+ itemsHeight: (items2) => (0,utils/* .getItemsHeight */.Ww)(LIST_ITEM_HEIGHT, items2),
5395
5434
  renderItem,
5396
5435
  selectedItemIndex
5397
5436
  }
@@ -5437,7 +5476,7 @@ var MobileControl = (0,react.memo)(
5437
5476
  const [sheetIsVisible, setSheetIsVisible] = (0,react.useState)(false);
5438
5477
  const onSheetOpen = () => setSheetIsVisible(true);
5439
5478
  const onSheetClose = () => setSheetIsVisible(false);
5440
- const onItemClick = onChangeValue ? (value) => onChangeValue(value) : () => {
5479
+ const onItemClick = onChangeValue ? (value, options) => onChangeValue(value, options) : () => {
5441
5480
  };
5442
5481
  return /* @__PURE__ */ react.createElement("div", { key: name, className: MobileControl_b() }, /* @__PURE__ */ react.createElement(
5443
5482
  MobileControlSheet_default,
@@ -5487,10 +5526,28 @@ var MobileControls_b = (0,lib["default"])("dc-mobile-controls");
5487
5526
  var useLangControl = (t, lang, availableLangs, langs, onChangeLang) => {
5488
5527
  const langItems = (0,react.useMemo)(() => {
5489
5528
  const preparedLangs = (langs != null ? langs : constants/* .DEFAULT_LANGS */.rc).map((code) => {
5490
- const langData = langs_default().where("1", code);
5529
+ let lang2;
5530
+ let tld;
5531
+ let href;
5532
+ if (typeof code === "string") {
5533
+ lang2 = code;
5534
+ } else {
5535
+ lang2 = code.lang;
5536
+ tld = code.tld;
5537
+ href = code.href;
5538
+ }
5539
+ const locale = lang2.split("-")[0];
5540
+ const langData = langs_default().where("1", locale);
5541
+ const regionNames = new Intl.DisplayNames([lang2], { type: "region" });
5542
+ const country = tld ? regionNames.of(tld.toUpperCase()) : void 0;
5491
5543
  return langData ? {
5492
5544
  text: langData.local,
5493
- value: langData["1"]
5545
+ country,
5546
+ value: lang2,
5547
+ options: {
5548
+ tld,
5549
+ href
5550
+ }
5494
5551
  } : void 0;
5495
5552
  }).filter(Boolean);
5496
5553
  return preparedLangs.length ? preparedLangs : constants/* .LEGACY_LANG_ITEMS */.Yl;
@@ -9249,9 +9306,11 @@ __webpack_require__.d(__webpack_exports__, {
9249
9306
  sq: () => (/* binding */ callSafe),
9250
9307
  Uz: () => (/* binding */ isContributor),
9251
9308
  dA: () => (/* binding */ getRandomKey),
9252
- op: () => (/* binding */ getPopupPosition),
9253
9309
  C2: () => (/* binding */ getPageType),
9310
+ op: () => (/* binding */ getPopupPosition),
9254
9311
  N7: () => (/* binding */ getPageByType),
9312
+ Ww: () => (/* binding */ getItemsHeight),
9313
+ up: () => (/* binding */ getItemHeight),
9255
9314
  $2: () => (/* binding */ isExternalHref),
9256
9315
  K8: () => (/* binding */ normalizeHash),
9257
9316
  AH: () => (/* binding */ normalizePath),
@@ -9565,13 +9624,14 @@ var Notification = ({ notification, notificationCb }) => {
9565
9624
  if (!notification || !showNotification) {
9566
9625
  return null;
9567
9626
  }
9568
- const { title = "", content = "", type = "" } = notification;
9627
+ const { title = "", content = "", type = "", permanent } = notification;
9569
9628
  const isNoteTypeCorrect = ["info", "tip", "warning", "alert"].includes(type.toLowerCase());
9570
- return /* @__PURE__ */ react.createElement("div", { className: bNote("wrapper") }, /* @__PURE__ */ react.createElement("div", { className: bNote({}, isNoteTypeCorrect ? `dc-accent-${type}` : bNote("template")) }, title && /* @__PURE__ */ react.createElement("p", { className: bNote("title") }, title), /* @__PURE__ */ react.createElement(
9629
+ return /* @__PURE__ */ react.createElement("div", { className: bNote("wrapper") }, /* @__PURE__ */ react.createElement("div", { className: bNote({}, isNoteTypeCorrect ? `dc-accent-${type}` : bNote("template")) }, title && /* @__PURE__ */ react.createElement("p", { className: bNote("title") }, title), !permanent && /* @__PURE__ */ react.createElement(
9571
9630
  Button/* .Button */.z,
9572
9631
  {
9573
9632
  view: "flat",
9574
9633
  className: bNote("xmark"),
9634
+ style: { position: "absolute" },
9575
9635
  onClick: () => {
9576
9636
  if (notificationCb) {
9577
9637
  notificationCb();
@@ -12457,6 +12517,15 @@ function getPageType({
12457
12517
  }
12458
12518
  return models/* .DocumentType.Base */.n_.Base;
12459
12519
  }
12520
+ function getItemHeight(baseItemHeight, item) {
12521
+ var _a;
12522
+ const tld = (_a = item.options) == null ? void 0 : _a.tld;
12523
+ const tldItemHeight = tld ? 16 : 0;
12524
+ return baseItemHeight + tldItemHeight;
12525
+ }
12526
+ function getItemsHeight(baseItemHeight, items) {
12527
+ return items.reduce((total, item) => total + getItemHeight(baseItemHeight, item), 0);
12528
+ }
12460
12529
 
12461
12530
  //# sourceMappingURL=index.js.map
12462
12531