@teambit/lanes.ui.inputs.lane-selector 0.0.107 → 0.0.109

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 (40) hide show
  1. package/dist/index.d.ts +1 -1
  2. package/dist/index.js +2 -1
  3. package/dist/index.js.map +1 -1
  4. package/dist/lane-grouped-menu-item.d.ts +6 -3
  5. package/dist/lane-grouped-menu-item.js +7 -4
  6. package/dist/lane-grouped-menu-item.js.map +1 -1
  7. package/dist/lane-grouped-menu-item.module.scss +19 -2
  8. package/dist/lane-menu-item.d.ts +6 -3
  9. package/dist/lane-menu-item.js +31 -40
  10. package/dist/lane-menu-item.js.map +1 -1
  11. package/dist/lane-menu-item.module.scss +79 -4
  12. package/dist/lane-placeholder.module.scss +2 -3
  13. package/dist/lane-selector-list.d.ts +6 -0
  14. package/dist/lane-selector-list.js +97 -0
  15. package/dist/lane-selector-list.js.map +1 -0
  16. package/dist/lane-selector-list.module.scss +15 -0
  17. package/dist/lane-selector.d.ts +17 -3
  18. package/dist/lane-selector.js +126 -34
  19. package/dist/lane-selector.js.map +1 -1
  20. package/dist/lane-selector.module.scss +45 -4
  21. package/index.ts +1 -1
  22. package/lane-grouped-menu-item.module.scss +19 -2
  23. package/lane-grouped-menu-item.tsx +13 -5
  24. package/lane-menu-item.module.scss +79 -4
  25. package/lane-menu-item.tsx +53 -25
  26. package/lane-placeholder.module.scss +2 -3
  27. package/lane-selector-list.module.scss +15 -0
  28. package/lane-selector-list.tsx +108 -0
  29. package/lane-selector.module.scss +45 -4
  30. package/lane-selector.tsx +205 -73
  31. package/package-tar/teambit-lanes.ui.inputs.lane-selector-0.0.109.tgz +0 -0
  32. package/package.json +15 -8
  33. package/dist/lane-search.d.ts +0 -6
  34. package/dist/lane-search.js +0 -47
  35. package/dist/lane-search.js.map +0 -1
  36. package/dist/lane-search.module.scss +0 -9
  37. package/lane-search.module.scss +0 -9
  38. package/lane-search.tsx +0 -31
  39. package/package-tar/teambit-lanes.ui.inputs.lane-selector-0.0.107.tgz +0 -0
  40. /package/dist/{preview-1678982624699.js → preview-1679542267429.js} +0 -0
package/dist/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- export { LaneSelector, LaneSelectorProps } from './lane-selector';
1
+ export { LaneSelector, LaneSelectorProps, LaneSelectorSortBy } from './lane-selector';
2
2
  export { LaneMenuItem, LaneMenuItemProps } from './lane-menu-item';
3
3
  export { LanePlaceholder, LanePlaceholderProps } from './lane-placeholder';
package/dist/index.js CHANGED
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LanePlaceholder = exports.LaneMenuItem = exports.LaneSelector = void 0;
3
+ exports.LanePlaceholder = exports.LaneMenuItem = exports.LaneSelectorSortBy = exports.LaneSelector = void 0;
4
4
  var lane_selector_1 = require("./lane-selector");
5
5
  Object.defineProperty(exports, "LaneSelector", { enumerable: true, get: function () { return lane_selector_1.LaneSelector; } });
6
+ Object.defineProperty(exports, "LaneSelectorSortBy", { enumerable: true, get: function () { return lane_selector_1.LaneSelectorSortBy; } });
6
7
  var lane_menu_item_1 = require("./lane-menu-item");
7
8
  Object.defineProperty(exports, "LaneMenuItem", { enumerable: true, get: function () { return lane_menu_item_1.LaneMenuItem; } });
8
9
  var lane_placeholder_1 = require("./lane-placeholder");
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;AAAA,iDAAkE;AAAzD,6GAAA,YAAY,OAAA;AACrB,mDAAmE;AAA1D,8GAAA,YAAY,OAAA;AACrB,uDAA2E;AAAlE,mHAAA,eAAe,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;AAAA,iDAAsF;AAA7E,6GAAA,YAAY,OAAA;AAAqB,mHAAA,kBAAkB,OAAA;AAC5D,mDAAmE;AAA1D,8GAAA,YAAY,OAAA;AACrB,uDAA2E;AAAlE,mHAAA,eAAe,OAAA"}
@@ -1,10 +1,13 @@
1
- import { HTMLAttributes } from 'react';
1
+ import React, { HTMLAttributes } from 'react';
2
2
  import { LaneId } from '@teambit/lane-id';
3
+ import { LaneModel } from '@teambit/lanes.ui.models.lanes-model';
3
4
  export declare type LaneGroupedMenuItemProps = {
4
5
  selected?: LaneId;
5
- current: LaneId[];
6
+ current: LaneModel[];
6
7
  scope: string;
7
8
  getHref?: (laneId: LaneId) => string;
8
9
  onLaneSelected?: (laneId: LaneId) => void;
10
+ icon?: React.ReactNode;
11
+ timestamp?: (lane: LaneModel) => Date | undefined;
9
12
  } & HTMLAttributes<HTMLDivElement>;
10
- export declare function LaneGroupedMenuItem({ selected, current, className, scope, getHref, onLaneSelected, ...rest }: LaneGroupedMenuItemProps): JSX.Element;
13
+ export declare function LaneGroupedMenuItem({ selected, current, className, scope, timestamp, icon, getHref, onLaneSelected, ...rest }: LaneGroupedMenuItemProps): JSX.Element;
@@ -16,21 +16,24 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.LaneGroupedMenuItem = void 0;
18
18
  const react_1 = __importDefault(require("react"));
19
+ const evangelist_elements_icon_1 = require("@teambit/evangelist.elements.icon");
19
20
  const classnames_1 = __importDefault(require("classnames"));
20
21
  const lane_menu_item_1 = require("./lane-menu-item");
21
22
  const lane_grouped_menu_item_module_scss_1 = __importDefault(require("./lane-grouped-menu-item.module.scss"));
22
23
  function LaneGroupedMenuItem(_a) {
23
- var { selected, current, className, scope, getHref, onLaneSelected } = _a, rest = __rest(_a, ["selected", "current", "className", "scope", "getHref", "onLaneSelected"]);
24
+ var { selected, current, className, scope, timestamp, icon = react_1.default.createElement(evangelist_elements_icon_1.Icon, { className: lane_grouped_menu_item_module_scss_1.default.defaultScopeIcon, of: "collection-full" }), getHref, onLaneSelected } = _a, rest = __rest(_a, ["selected", "current", "className", "scope", "timestamp", "icon", "getHref", "onLaneSelected"]);
24
25
  if (current.length === 0)
25
26
  return null;
26
- if (current.length === 1 && current[0].isDefault()) {
27
+ if (current.length === 1 && current[0].id.isDefault()) {
27
28
  const defaultLane = current[0];
28
29
  return (react_1.default.createElement(lane_menu_item_1.LaneMenuItem, { key: defaultLane.toString(), onLaneSelected: onLaneSelected, getHref: getHref, selected: selected, current: defaultLane }));
29
30
  }
30
31
  const onClickStopPropagation = (e) => e.stopPropagation();
31
32
  return (react_1.default.createElement("div", Object.assign({ className: (0, classnames_1.default)(lane_grouped_menu_item_module_scss_1.default.groupedMenuItem, className) }, rest),
32
- react_1.default.createElement("div", { onClick: onClickStopPropagation, className: lane_grouped_menu_item_module_scss_1.default.scope }, scope),
33
- current.map((lane) => (react_1.default.createElement(lane_menu_item_1.LaneMenuItem, { key: lane.toString(), onLaneSelected: onLaneSelected, getHref: getHref, selected: selected, current: lane })))));
33
+ react_1.default.createElement("div", { onClick: onClickStopPropagation, className: lane_grouped_menu_item_module_scss_1.default.scope },
34
+ react_1.default.createElement("div", { className: lane_grouped_menu_item_module_scss_1.default.scopeIcon }, icon),
35
+ react_1.default.createElement("div", { className: lane_grouped_menu_item_module_scss_1.default.scopeName }, scope)),
36
+ current.map((lane) => (react_1.default.createElement(lane_menu_item_1.LaneMenuItem, { key: lane.id.toString(), onLaneSelected: onLaneSelected, getHref: getHref, selected: selected, current: lane, timestamp: timestamp === null || timestamp === void 0 ? void 0 : timestamp(lane) })))));
34
37
  }
35
38
  exports.LaneGroupedMenuItem = LaneGroupedMenuItem;
36
39
  //# sourceMappingURL=lane-grouped-menu-item.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lane-grouped-menu-item.js","sourceRoot":"","sources":["../lane-grouped-menu-item.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,kDAA8C;AAE9C,4DAAoC;AACpC,qDAAgD;AAEhD,8GAA0D;AAU1D,SAAgB,mBAAmB,CAAC,EAQT;QARS,EAClC,QAAQ,EACR,OAAO,EACP,SAAS,EACT,KAAK,EACL,OAAO,EACP,cAAc,OAEW,EADtB,IAAI,cAP2B,0EAQnC,CADQ;IAEP,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEtC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE;QAClD,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAW,CAAC;QACzC,OAAO,CACL,8BAAC,6BAAY,IACX,GAAG,EAAE,WAAW,CAAC,QAAQ,EAAE,EAC3B,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,WAAW,GACpB,CACH,CAAC;KACH;IAED,MAAM,sBAAsB,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;IAE1D,OAAO,CACL,qDAAK,SAAS,EAAE,IAAA,oBAAU,EAAC,4CAAM,CAAC,eAAe,EAAE,SAAS,CAAC,IAAM,IAAI;QACrE,uCAAK,OAAO,EAAE,sBAAsB,EAAE,SAAS,EAAE,4CAAM,CAAC,KAAK,IAC1D,KAAK,CACF;QACL,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACrB,8BAAC,6BAAY,IACX,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,EACpB,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,IAAI,GACb,CACH,CAAC,CACE,CACP,CAAC;AACJ,CAAC;AA1CD,kDA0CC"}
1
+ {"version":3,"file":"lane-grouped-menu-item.js","sourceRoot":"","sources":["../lane-grouped-menu-item.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,kDAA8C;AAC9C,gFAAyD;AAEzD,4DAAoC;AAEpC,qDAAgD;AAEhD,8GAA0D;AAY1D,SAAgB,mBAAmB,CAAC,EAUT;QAVS,EAClC,QAAQ,EACR,OAAO,EACP,SAAS,EACT,KAAK,EACL,SAAS,EACT,IAAI,GAAG,8BAAC,+BAAI,IAAC,SAAS,EAAE,4CAAM,CAAC,gBAAgB,EAAE,EAAE,EAAC,iBAAiB,GAAG,EACxE,OAAO,EACP,cAAc,OAEW,EADtB,IAAI,cAT2B,+FAUnC,CADQ;IAEP,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEtC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE;QACrD,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAC/B,OAAO,CACL,8BAAC,6BAAY,IACX,GAAG,EAAE,WAAW,CAAC,QAAQ,EAAE,EAC3B,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,WAAW,GACpB,CACH,CAAC;KACH;IAED,MAAM,sBAAsB,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;IAE1D,OAAO,CACL,qDAAK,SAAS,EAAE,IAAA,oBAAU,EAAC,4CAAM,CAAC,eAAe,EAAE,SAAS,CAAC,IAAM,IAAI;QACrE,uCAAK,OAAO,EAAE,sBAAsB,EAAE,SAAS,EAAE,4CAAM,CAAC,KAAK;YAC3D,uCAAK,SAAS,EAAE,4CAAM,CAAC,SAAS,IAAG,IAAI,CAAO;YAC9C,uCAAK,SAAS,EAAE,4CAAM,CAAC,SAAS,IAAG,KAAK,CAAO,CAC3C;QACL,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACrB,8BAAC,6BAAY,IACX,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,EACvB,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,IAAI,EACb,SAAS,EAAE,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAG,IAAI,CAAC,GAC5B,CACH,CAAC,CACE,CACP,CAAC;AACJ,CAAC;AA9CD,kDA8CC"}
@@ -1,10 +1,27 @@
1
1
  .groupedMenuItem {
2
2
  display: flex;
3
3
  flex-direction: column;
4
- min-width: 120px;
4
+ // min-width: 120px;
5
5
  }
6
6
 
7
7
  .scope {
8
8
  padding: 8px 16px;
9
- font-weight: 700;
9
+ color: var(--on-surface-medium-color, #707279);
10
+ display: flex;
11
+ gap: 8px;
12
+ }
13
+
14
+ .scopeIcon {
15
+ display: flex;
16
+
17
+ > img {
18
+ height: 16px;
19
+ width: 16px;
20
+ }
21
+ }
22
+
23
+ .defaultScopeIcon {
24
+ height: 16px;
25
+ width: 16px;
26
+ padding: 0px 2px;
10
27
  }
@@ -1,9 +1,12 @@
1
- import { HTMLAttributes } from 'react';
1
+ import React, { HTMLAttributes } from 'react';
2
2
  import { LaneId } from '@teambit/lane-id';
3
+ import { LaneModel } from '@teambit/lanes.ui.models.lanes-model';
3
4
  export declare type LaneMenuItemProps = {
4
5
  selected?: LaneId;
5
- current: LaneId;
6
+ current: LaneModel;
6
7
  getHref?: (laneId: LaneId) => string;
7
8
  onLaneSelected?: (laneId: LaneId) => void;
9
+ icon?: React.ReactNode;
10
+ timestamp?: Date;
8
11
  } & HTMLAttributes<HTMLDivElement>;
9
- export declare function LaneMenuItem({ selected, current, className, onLaneSelected, getHref, ...rest }: LaneMenuItemProps): JSX.Element;
12
+ export declare function LaneMenuItem({ selected, current, className, onLaneSelected, getHref, icon, timestamp, ...rest }: LaneMenuItemProps): JSX.Element;
@@ -1,27 +1,4 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
2
  var __rest = (this && this.__rest) || function (s, e) {
26
3
  var t = {};
27
4
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
@@ -38,27 +15,41 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
38
15
  };
39
16
  Object.defineProperty(exports, "__esModule", { value: true });
40
17
  exports.LaneMenuItem = void 0;
41
- const react_1 = __importStar(require("react"));
18
+ const react_1 = __importDefault(require("react"));
19
+ const classnames_1 = __importDefault(require("classnames"));
42
20
  const lanes_ui_models_lanes_model_1 = require("@teambit/lanes.ui.models.lanes-model");
43
- const design_ui_pill_label_1 = require("@teambit/design.ui.pill-label");
44
21
  const design_ui_surfaces_menu_link_item_1 = require("@teambit/design.ui.surfaces.menu.link-item");
22
+ const design_ui_avatar_1 = require("@teambit/design.ui.avatar");
23
+ const design_ui_time_ago_1 = require("@teambit/design.ui.time-ago");
45
24
  const lane_menu_item_module_scss_1 = __importDefault(require("./lane-menu-item.module.scss"));
46
25
  function LaneMenuItem(_a) {
47
- var { selected, current, className, onLaneSelected, getHref = lanes_ui_models_lanes_model_1.LanesModel.getLaneUrl } = _a, rest = __rest(_a, ["selected", "current", "className", "onLaneSelected", "getHref"]);
48
- const isCurrent = (selected === null || selected === void 0 ? void 0 : selected.toString()) === current.toString();
49
- const currentVersionRef = (0, react_1.useRef)(null);
50
- (0, react_1.useEffect)(() => {
51
- var _a;
52
- if (isCurrent) {
53
- (_a = currentVersionRef.current) === null || _a === void 0 ? void 0 : _a.scrollIntoView({ block: 'nearest', behavior: 'smooth' });
54
- }
55
- }, [isCurrent]);
56
- const href = getHref(current);
57
- return (react_1.default.createElement("div", Object.assign({}, rest, { className: className, ref: currentVersionRef }),
58
- react_1.default.createElement(design_ui_surfaces_menu_link_item_1.MenuLinkItem, { active: isCurrent, href: href, className: lane_menu_item_module_scss_1.default.menuItem, onClick: onLaneSelected && (() => onLaneSelected(current)) },
59
- react_1.default.createElement("div", { className: lane_menu_item_module_scss_1.default.laneName }, current.name),
60
- current.isDefault() && (react_1.default.createElement(design_ui_pill_label_1.PillLabel, { className: lane_menu_item_module_scss_1.default.defaultLanePill },
61
- react_1.default.createElement("span", null, "default"))))));
26
+ var _b;
27
+ var { selected, current, className, onLaneSelected, getHref = lanes_ui_models_lanes_model_1.LanesModel.getLaneUrl, icon, timestamp } = _a, rest = __rest(_a, ["selected", "current", "className", "onLaneSelected", "getHref", "icon", "timestamp"]);
28
+ const isCurrent = (selected === null || selected === void 0 ? void 0 : selected.toString()) === current.id.toString();
29
+ const isDefaultLane = current.id.isDefault();
30
+ const iconWithDefault = icon || (isDefaultLane ? react_1.default.createElement("img", { src: "https://static.bit.cloud/bit-icons/changed-components.svg" }) : undefined);
31
+ const href = getHref(current.id);
32
+ const onClick = () => {
33
+ onLaneSelected === null || onLaneSelected === void 0 ? void 0 : onLaneSelected(current.id);
34
+ };
35
+ const laneDescription = current.description || current.id.name;
36
+ const laneName = current.id.name;
37
+ const user = current.updatedBy || current.createdBy;
38
+ const avatar = iconWithDefault || (react_1.default.createElement(design_ui_avatar_1.UserAvatar, { size: 24, account: {
39
+ name: (_b = user === null || user === void 0 ? void 0 : user.name) === null || _b === void 0 ? void 0 : _b.split(' ')[0],
40
+ displayName: user === null || user === void 0 ? void 0 : user.name,
41
+ profileImage: user === null || user === void 0 ? void 0 : user.profileImage,
42
+ } }));
43
+ return (react_1.default.createElement("div", Object.assign({}, rest, { className: (0, classnames_1.default)(className, lane_menu_item_module_scss_1.default.laneMenuItemContainer) }),
44
+ react_1.default.createElement(design_ui_surfaces_menu_link_item_1.MenuLinkItem, { active: isCurrent, href: href, className: lane_menu_item_module_scss_1.default.menuItem, onClick: onClick },
45
+ react_1.default.createElement("div", { className: lane_menu_item_module_scss_1.default.laneContainer },
46
+ react_1.default.createElement("div", { className: (0, classnames_1.default)(lane_menu_item_module_scss_1.default.left, isDefaultLane && lane_menu_item_module_scss_1.default.mainLane) },
47
+ react_1.default.createElement("div", { className: (0, classnames_1.default)(lane_menu_item_module_scss_1.default.icon, isDefaultLane && !icon && lane_menu_item_module_scss_1.default.defaultMainLaneIcon) }, avatar),
48
+ react_1.default.createElement("div", { className: lane_menu_item_module_scss_1.default.laneInfo },
49
+ react_1.default.createElement("div", { className: (0, classnames_1.default)(lane_menu_item_module_scss_1.default.laneDescription) }, laneDescription),
50
+ !isDefaultLane && react_1.default.createElement("div", { className: lane_menu_item_module_scss_1.default.laneName }, laneName))),
51
+ react_1.default.createElement("div", { className: lane_menu_item_module_scss_1.default.right }, timestamp && (react_1.default.createElement("div", { className: lane_menu_item_module_scss_1.default.timeStamp },
52
+ react_1.default.createElement(design_ui_time_ago_1.TimeAgo, { date: timestamp === null || timestamp === void 0 ? void 0 : timestamp.toString() }))))))));
62
53
  }
63
54
  exports.LaneMenuItem = LaneMenuItem;
64
55
  //# sourceMappingURL=lane-menu-item.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lane-menu-item.js","sourceRoot":"","sources":["../lane-menu-item.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAiE;AAEjE,sFAAkE;AAClE,wEAA0D;AAC1D,kGAA0E;AAE1E,8FAAkD;AASlD,SAAgB,YAAY,CAAC,EAOT;QAPS,EAC3B,QAAQ,EACR,OAAO,EACP,SAAS,EACT,cAAc,EACd,OAAO,GAAG,wCAAU,CAAC,UAAU,OAEb,EADf,IAAI,cANoB,iEAO5B,CADQ;IAEP,MAAM,SAAS,GAAG,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,EAAE,MAAK,OAAO,CAAC,QAAQ,EAAE,CAAC;IAE9D,MAAM,iBAAiB,GAAG,IAAA,cAAM,EAAiB,IAAI,CAAC,CAAC;IACvD,IAAA,iBAAS,EAAC,GAAG,EAAE;;QACb,IAAI,SAAS,EAAE;YACb,MAAA,iBAAiB,CAAC,OAAO,0CAAE,cAAc,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;SACrF;IACH,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE9B,OAAO,CACL,uDAAS,IAAI,IAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,iBAAiB;QACzD,8BAAC,gDAAY,IACX,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,oCAAM,CAAC,QAAQ,EAC1B,OAAO,EAAE,cAAc,IAAI,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YAE1D,uCAAK,SAAS,EAAE,oCAAM,CAAC,QAAQ,IAAG,OAAO,CAAC,IAAI,CAAO;YACpD,OAAO,CAAC,SAAS,EAAE,IAAI,CACtB,8BAAC,gCAAS,IAAC,SAAS,EAAE,oCAAM,CAAC,eAAe;gBAC1C,sDAAoB,CACV,CACb,CACY,CACX,CACP,CAAC;AACJ,CAAC;AApCD,oCAoCC"}
1
+ {"version":3,"file":"lane-menu-item.js","sourceRoot":"","sources":["../lane-menu-item.tsx"],"names":[],"mappings":"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"}
@@ -1,13 +1,88 @@
1
1
  .menuItem {
2
2
  display: flex;
3
+ width: 100%;
4
+ box-sizing: border-box;
5
+ min-height: 50px;
3
6
  flex-direction: row;
4
7
  padding: 8px 16px;
5
8
  cursor: pointer;
9
+ // border-bottom: 1px solid var(--bit-border-color-lightest, #ededed);
10
+ }
11
+
12
+ .laneMenuItemContainer {
13
+ display: flex;
14
+ width: 100%;
15
+
16
+ &.selected {
17
+ background-color: var(--surface-active-color, #dcd8f9);
18
+ }
19
+ }
20
+
21
+ .laneContainer {
22
+ display: flex;
6
23
  justify-content: space-between;
7
- border-bottom: 1px solid var(--bit-border-color-lightest, #ededed);
24
+ gap: 4px;
25
+ width: 100%;
26
+
27
+ .left {
28
+ display: flex;
29
+ align-items: flex-start;
30
+ gap: 8px;
31
+ width: 100%;
32
+ flex: 2;
33
+
34
+ &.mainLane {
35
+ align-items: center;
36
+ }
37
+
38
+ .laneInfo {
39
+ display: flex;
40
+ flex-direction: column;
41
+ gap: 4px;
42
+ }
43
+
44
+ .laneDescription {
45
+ font-weight: 700;
46
+ font-size: var(--bit-p-xs, '14px');
47
+ }
48
+
49
+ .laneName {
50
+ font-weight: 400;
51
+ font-size: var(--bit-p-xxs, '12px');
52
+ background: var(--surface-neutral-hover-color, #f7f7f7);
53
+ border-radius: 4px;
54
+ width: fit-content;
55
+ padding: 2px 4px;
56
+ }
57
+ }
58
+
59
+ .right {
60
+ display: flex;
61
+ text-align: right;
62
+ flex: 1;
63
+ align-items: flex-end;
64
+ justify-content: flex-end;
65
+
66
+ .timeStamp {
67
+ > span {
68
+ font-size: var(--bit-p-xxs, '12px');
69
+ }
70
+ font-size: var(--bit-p-xxs, '12px');
71
+ // @todo replace with var
72
+ color: #9598a1;
73
+ }
74
+ }
8
75
  }
9
76
 
10
- .defaultLanePill {
11
- font-size: var(--bit-p-xxs, 12px);
12
- text-transform: lowercase;
77
+ .icon {
78
+ display: flex;
79
+
80
+ > img {
81
+ height: 16px;
82
+ width: 16px;
83
+ }
84
+
85
+ &.defaultMainLaneIcon {
86
+ padding: 0px 4px;
87
+ }
13
88
  }
@@ -3,11 +3,10 @@
3
3
  align-items: center;
4
4
  padding: 4px 8px 4px 4px;
5
5
  line-height: var(--bit-p-md, 16px);
6
- // font-size: var(--bit-p-md, 16px);
7
6
  border-radius: 6px;
8
7
  font-size: 14px;
9
- border: 1px solid var(--bit-border-color-light, #cccfd4);
10
- background-color: var(--bit-border-color-lightest, #ededed);
8
+ border: 1px solid var(--border-medium-color, #ededed);
9
+ background-color: var(--surface-neutral-hover-color, #f7f7f7);
11
10
  &.disabled {
12
11
  border: unset;
13
12
  }
@@ -0,0 +1,6 @@
1
+ import { HTMLAttributes } from 'react';
2
+ import { LaneSelectorProps } from './lane-selector';
3
+ export declare type LaneSelectorListProps = {
4
+ search?: string;
5
+ } & LaneSelectorProps & HTMLAttributes<HTMLDivElement>;
6
+ export declare function LaneSelectorList({ selectedLaneId, mainLane, nonMainLanes, className, groupByScope, getHref, onLaneSelected, search, mainIcon, scopeIconLookup, sortBy, sortOptions, scopeIcon, ...rest }: LaneSelectorListProps): JSX.Element;
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __rest = (this && this.__rest) || function (s, e) {
26
+ var t = {};
27
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
28
+ t[p] = s[p];
29
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
30
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
31
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
32
+ t[p[i]] = s[p[i]];
33
+ }
34
+ return t;
35
+ };
36
+ var __importDefault = (this && this.__importDefault) || function (mod) {
37
+ return (mod && mod.__esModule) ? mod : { "default": mod };
38
+ };
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.LaneSelectorList = void 0;
41
+ const react_1 = __importStar(require("react"));
42
+ const classnames_1 = __importDefault(require("classnames"));
43
+ const lodash_1 = require("lodash");
44
+ const lanes_ui_models_lanes_model_1 = require("@teambit/lanes.ui.models.lanes-model");
45
+ const lane_selector_1 = require("./lane-selector");
46
+ // import { LaneGroupedMenuItem } from './lane-grouped-menu-item';
47
+ const lane_menu_item_1 = require("./lane-menu-item");
48
+ const lane_selector_list_module_scss_1 = __importDefault(require("./lane-selector-list.module.scss"));
49
+ const lane_grouped_menu_item_1 = require("./lane-grouped-menu-item");
50
+ function LaneSelectorList(_a) {
51
+ var { selectedLaneId, mainLane, nonMainLanes, className, groupByScope, getHref, onLaneSelected, search = '', mainIcon, scopeIconLookup, sortBy, sortOptions,
52
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
53
+ scopeIcon } = _a, rest = __rest(_a, ["selectedLaneId", "mainLane", "nonMainLanes", "className", "groupByScope", "getHref", "onLaneSelected", "search", "mainIcon", "scopeIconLookup", "sortBy", "sortOptions", "scopeIcon"]);
54
+ const selectedNonMainLane = (!!selectedLaneId && nonMainLanes.find((nonMainLane) => nonMainLane.id.isEqual(selectedLaneId))) || undefined;
55
+ const laneDropdownItems = (0, react_1.useMemo)(() => {
56
+ var _a;
57
+ if (nonMainLanes.length === 0)
58
+ return [];
59
+ const lanesToRenderFn = () => {
60
+ const mainLaneToRender = search === '' || (mainLane === null || mainLane === void 0 ? void 0 : mainLane.id.name.toLowerCase().includes(search.toLowerCase())) ? mainLane : undefined;
61
+ if (selectedNonMainLane) {
62
+ const nonMainLanesWithoutSelected = nonMainLanes.filter((nonMainLane) => !nonMainLane.id.isEqual(selectedNonMainLane.id));
63
+ return (0, lodash_1.compact)([selectedNonMainLane, mainLaneToRender, ...nonMainLanesWithoutSelected]);
64
+ }
65
+ return (0, lodash_1.compact)([mainLaneToRender, ...nonMainLanes]);
66
+ };
67
+ if (groupByScope) {
68
+ const groupedNonMainLanes = lanes_ui_models_lanes_model_1.LanesModel.groupLanesByScope(nonMainLanes);
69
+ if (selectedNonMainLane) {
70
+ const groupedSelected = (_a = groupedNonMainLanes.get(selectedNonMainLane.id.scope)) !== null && _a !== void 0 ? _a : [];
71
+ groupedNonMainLanes.delete(selectedNonMainLane.id.scope);
72
+ const grouped = [
73
+ [selectedNonMainLane.id.scope, groupedSelected],
74
+ ['', (mainLane && [mainLane]) || []],
75
+ ...groupedNonMainLanes.entries(),
76
+ ];
77
+ return grouped;
78
+ }
79
+ const grouped = [
80
+ ['', (mainLane && [mainLane]) || []],
81
+ ...groupedNonMainLanes.entries(),
82
+ ];
83
+ return grouped;
84
+ }
85
+ const lanesToRender = lanesToRenderFn();
86
+ return lanesToRender;
87
+ }, [selectedLaneId === null || selectedLaneId === void 0 ? void 0 : selectedLaneId.toString(), nonMainLanes.length, search, sortBy, groupByScope]);
88
+ return (react_1.default.createElement("div", Object.assign({}, rest, { className: (0, classnames_1.default)(className, lane_selector_list_module_scss_1.default.laneSelectorList) }),
89
+ groupByScope &&
90
+ laneDropdownItems.map(([scope, lanesByScope], index) => {
91
+ return (react_1.default.createElement(lane_grouped_menu_item_1.LaneGroupedMenuItem, { key: `${scope !== null && scope !== void 0 ? scope : 'main'}-${index}`, onLaneSelected: onLaneSelected, getHref: getHref, scope: scope, selected: selectedLaneId, current: lanesByScope, icon: scopeIconLookup === null || scopeIconLookup === void 0 ? void 0 : scopeIconLookup.get(scope), timestamp: (lane) => (sortOptions === null || sortOptions === void 0 ? void 0 : sortOptions.includes(lane_selector_1.LaneSelectorSortBy.UPDATED)) ? lane.updatedAt : lane.createdAt }));
92
+ }),
93
+ !groupByScope &&
94
+ laneDropdownItems.map((lane, index) => (react_1.default.createElement(lane_menu_item_1.LaneMenuItem, { onLaneSelected: onLaneSelected, key: `${lane.id.toString()}-${index}`, getHref: getHref, selected: selectedLaneId, current: lane, timestamp: (sortOptions === null || sortOptions === void 0 ? void 0 : sortOptions.includes(lane_selector_1.LaneSelectorSortBy.UPDATED)) ? lane.updatedAt : lane.createdAt, icon: (lane.id.isDefault() && mainIcon) || undefined })))));
95
+ }
96
+ exports.LaneSelectorList = LaneSelectorList;
97
+ //# sourceMappingURL=lane-selector-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lane-selector-list.js","sourceRoot":"","sources":["../lane-selector-list.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ .laneSelectorList {
2
+ display: flex;
3
+ flex-direction: column;
4
+ overflow: auto;
5
+ width: 350px;
6
+ max-height: 50vh;
7
+ }
8
+
9
+ .mainIcon {
10
+ > img {
11
+ height: 16px;
12
+ width: 16px;
13
+ padding: 0px 2px;
14
+ }
15
+ }
@@ -1,10 +1,24 @@
1
- import { HTMLAttributes } from 'react';
1
+ import React, { HTMLAttributes } from 'react';
2
2
  import { LaneId } from '@teambit/lane-id';
3
+ import { LaneModel } from '@teambit/lanes.ui.models.lanes-model';
3
4
  export declare type LaneSelectorProps = {
4
- lanes: Array<LaneId>;
5
+ nonMainLanes: Array<LaneModel>;
6
+ mainLane?: LaneModel;
5
7
  selectedLaneId?: LaneId;
6
8
  groupByScope?: boolean;
7
9
  getHref?: (laneId: LaneId) => string;
8
10
  onLaneSelected?: (laneId: LaneId) => void;
11
+ mainIcon?: React.ReactNode;
12
+ scopeIcon?: (scopeName: string) => React.ReactNode;
13
+ sortBy?: LaneSelectorSortBy;
14
+ sortOptions?: LaneSelectorSortBy[];
15
+ scopeIconLookup?: Map<string, React.ReactNode>;
9
16
  } & HTMLAttributes<HTMLDivElement>;
10
- export declare function LaneSelector({ className, lanes, selectedLaneId, groupByScope, getHref, onLaneSelected, ...rest }: LaneSelectorProps): JSX.Element;
17
+ export declare type GroupedLaneDropdownItem = [scope: string, lanes: LaneModel[]];
18
+ export declare type LaneDropdownItems = Array<LaneModel> | Array<GroupedLaneDropdownItem>;
19
+ export declare enum LaneSelectorSortBy {
20
+ UPDATED = "UPDATED",
21
+ CREATED = "CREATED",
22
+ ALPHABETICAL = "ALPHABETICAL"
23
+ }
24
+ export declare function LaneSelector(props: LaneSelectorProps): JSX.Element;