pds-dev-kit-web-test 0.0.3 → 0.0.6

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 (175) hide show
  1. package/dist/index.d.ts +2 -2
  2. package/dist/index.js +5 -3
  3. package/dist/src/common/assets/icons/fill/CheckboxOn.d.ts +1 -1
  4. package/dist/src/common/assets/icons/fill/CheckboxOn.js +24 -2
  5. package/dist/src/common/assets/icons/fill/index.d.ts +1 -1
  6. package/dist/src/common/assets/icons/line/Clip.d.ts +4 -0
  7. package/dist/src/common/assets/icons/line/Clip.js +36 -0
  8. package/dist/src/common/assets/icons/line/Internal.d.ts +4 -0
  9. package/dist/src/common/assets/icons/line/Internal.js +36 -0
  10. package/dist/src/common/assets/icons/line/index.d.ts +2 -0
  11. package/dist/src/common/assets/icons/line/index.js +4 -0
  12. package/dist/src/common/components/Navigations/ContextTextLabelNav.js +2 -2
  13. package/dist/src/common/components/Navigations/NavLink.js +3 -1
  14. package/dist/src/common/components/Navigations/TextLabelNav.d.ts +2 -1
  15. package/dist/src/common/components/Navigations/TextLabelNav.js +3 -3
  16. package/dist/src/common/components/Navigations/index.d.ts +2 -0
  17. package/dist/src/common/components/Navigations/index.js +5 -1
  18. package/dist/src/common/decorators/withFormProvider.js +4 -1
  19. package/dist/src/common/hooks/index.d.ts +1 -0
  20. package/dist/src/common/hooks/index.js +3 -1
  21. package/dist/src/common/hooks/useDetectOverflow.js +1 -1
  22. package/dist/src/common/hooks/usePrevious.d.ts +2 -0
  23. package/dist/src/common/hooks/usePrevious.js +11 -0
  24. package/dist/src/common/styles/ToneTest/ToneTest.d.ts +3 -0
  25. package/dist/src/common/styles/ToneTest/ToneTest.js +397 -0
  26. package/dist/src/common/styles/ToneTest/index.d.ts +1 -0
  27. package/dist/src/common/styles/ToneTest/index.js +8 -0
  28. package/dist/src/common/styles/colorSet/PaletteColor_Dark.json +6 -1
  29. package/dist/src/common/styles/colorSet/PaletteColor_light.json +6 -1
  30. package/dist/src/common/styles/colorSet/SemanticColor.json +6 -5
  31. package/dist/src/common/styles/colorSet/UIColor.json +19 -4
  32. package/dist/src/common/styles/colorSet/index.d.ts +85 -59
  33. package/dist/src/common/styles/colorSet/index.js +2 -2
  34. package/dist/src/common/styles/colorSet/ui-type.d.ts +15 -0
  35. package/dist/src/common/styles/theme.d.ts +2 -0
  36. package/dist/src/common/styles/theme.js +3 -1
  37. package/dist/src/common/types/components.d.ts +1 -1
  38. package/dist/src/desktop/common/components/TextFieldBase/TextFieldBase.d.ts +2 -1
  39. package/dist/src/desktop/common/components/TextFieldBase/TextFieldBase.js +20 -5
  40. package/dist/src/desktop/components/AdminList/BulkActionBar.js +3 -3
  41. package/dist/src/desktop/components/AdminList/HeaderRow.js +1 -1
  42. package/dist/src/desktop/components/AdminListItem/AdminListItem.js +21 -22
  43. package/dist/src/desktop/components/BasicList/BasicList.d.ts +3 -3
  44. package/dist/src/desktop/components/BasicListItem/BasicListItem.d.ts +4 -1
  45. package/dist/src/desktop/components/BasicListItem/BasicListItem.js +5 -5
  46. package/dist/src/desktop/components/Chip/Chip.js +22 -25
  47. package/dist/src/desktop/components/ContextMenu/ContextMenu.js +1 -1
  48. package/dist/src/desktop/components/ContextMenuItem/ContextMenuItem.js +2 -2
  49. package/dist/src/desktop/components/DesktopAlertDialog/DesktopAlertDialog.d.ts +1 -1
  50. package/dist/src/desktop/components/DesktopAlertDialog/DesktopAlertDialog.js +1 -1
  51. package/dist/src/desktop/components/DesktopTabBar/DesktopTabBar.js +4 -4
  52. package/dist/src/desktop/components/Dropdown/Dropdown.d.ts +3 -2
  53. package/dist/src/desktop/components/Dropdown/Dropdown.js +14 -6
  54. package/dist/src/desktop/components/DynamicDesktopNavBar/DynamicDesktopNavBar.d.ts +8 -4
  55. package/dist/src/desktop/components/DynamicDesktopNavBar/DynamicDesktopNavBar.js +32 -10
  56. package/dist/src/desktop/components/DynamicDesktopNavBar/blocks/PrimaryMenu.js +1 -1
  57. package/dist/src/desktop/components/DynamicDesktopNavBar/blocks/SecondaryMenu.js +1 -1
  58. package/dist/src/desktop/components/DynamicDesktopNavBar/components/ContextMenuNavs/ContextMenuItemNav.js +6 -2
  59. package/dist/src/desktop/components/DynamicDesktopNavBar/components/ContextMenuNavs/ContextMenuNavs.js +19 -5
  60. package/dist/src/desktop/components/DynamicDesktopNavBar/components/IconNav.d.ts +2 -1
  61. package/dist/src/desktop/components/DynamicDesktopNavBar/components/IconNav.js +2 -2
  62. package/dist/src/desktop/components/DynamicDesktopNavBar/components/LogoNav.js +1 -1
  63. package/dist/src/desktop/components/DynamicDesktopNavBar/components/MenuItemNav/MenuItemNav.d.ts +2 -1
  64. package/dist/src/desktop/components/DynamicDesktopNavBar/components/MenuItemNav/MenuItemNav.js +15 -7
  65. package/dist/src/desktop/components/DynamicDesktopNavBar/components/MenuItemNav/components/DisplayOnlyMenuItemNav.d.ts +12 -0
  66. package/dist/src/desktop/components/DynamicDesktopNavBar/components/MenuItemNav/components/DisplayOnlyMenuItemNav.js +31 -0
  67. package/dist/src/desktop/components/DynamicDesktopNavBar/components/MenuItemNav/components/InternalLinkMenuItemNav.d.ts +13 -0
  68. package/dist/src/desktop/components/DynamicDesktopNavBar/components/MenuItemNav/components/InternalLinkMenuItemNav.js +65 -0
  69. package/dist/src/desktop/components/DynamicDesktopNavBar/components/MenuItemNav/components/PAppMenuItemNav.d.ts +3 -1
  70. package/dist/src/desktop/components/DynamicDesktopNavBar/components/MenuItemNav/components/PAppMenuItemNav.js +10 -8
  71. package/dist/src/desktop/components/DynamicDesktopNavBar/components/MenuItemNav/components/WebMenuItemNav.d.ts +3 -1
  72. package/dist/src/desktop/components/DynamicDesktopNavBar/components/MenuItemNav/components/WebMenuItemNav.js +5 -5
  73. package/dist/src/desktop/components/DynamicDesktopNavBar/index.d.ts +1 -0
  74. package/dist/src/desktop/components/DynamicDesktopNavBar/index.js +3 -1
  75. package/dist/src/desktop/components/DynamicDesktopNavBar/reducer.d.ts +16 -0
  76. package/dist/src/desktop/components/DynamicDesktopNavBar/reducer.js +23 -0
  77. package/dist/src/desktop/components/DynamicDesktopNavBar/templates/{MenuDesignTemplates.d.ts → DynamicDesktopNavBarTemplates.d.ts} +17 -6
  78. package/dist/src/desktop/components/DynamicDesktopNavBar/templates/{MenuDesignTemplates.js → DynamicDesktopNavBarTemplates.js} +10 -10
  79. package/dist/src/desktop/components/DynamicDesktopNavBar/templates/constants.d.ts +15 -4
  80. package/dist/src/desktop/components/DynamicDesktopNavBar/templates/constants.js +22 -11
  81. package/dist/src/desktop/components/DynamicDesktopNavBar/templates/index.d.ts +1 -1
  82. package/dist/src/desktop/components/DynamicDesktopNavBar/templates/index.js +3 -3
  83. package/dist/src/desktop/components/DynamicDesktopNavBar/types.d.ts +4 -2
  84. package/dist/src/desktop/components/EditApplyTextField/EditApplyTextField.js +46 -23
  85. package/dist/src/desktop/components/FilterBar/FilterBar.d.ts +1 -1
  86. package/dist/src/desktop/components/FloatingActionButton/FloatingActionButton.js +1 -1
  87. package/dist/src/desktop/components/HorizontalFormGroup/HorizontalFormGroup.js +5 -3
  88. package/dist/src/desktop/components/IconButton/IconButton.js +3 -8
  89. package/dist/src/desktop/components/ImageSlide/ImageSlide.js +1 -1
  90. package/dist/src/desktop/components/MainButton/MainButton.js +17 -5
  91. package/dist/src/desktop/components/ReactionButton/ReactionButton.js +1 -1
  92. package/dist/src/desktop/components/Select/Select.d.ts +7 -6
  93. package/dist/src/desktop/components/Select/Select.js +13 -14
  94. package/dist/src/desktop/components/StatusBlock/StatusBlock.js +3 -3
  95. package/dist/src/desktop/components/TextButton/TextButton.d.ts +1 -1
  96. package/dist/src/desktop/components/TextButton/TextButton.js +12 -7
  97. package/dist/src/desktop/components/TextField/TextField.js +1 -3
  98. package/dist/src/desktop/components/TextLabel/TextLabel.js +2 -4
  99. package/dist/src/desktop/components/UploadIconButton/UploadIconButton.js +3 -8
  100. package/dist/src/desktop/components/UploadMainButton/UploadMainButton.js +3 -3
  101. package/dist/src/desktop/components/UploadTextButton/UploadTextButton.d.ts +1 -1
  102. package/dist/src/desktop/components/UploadTextButton/UploadTextButton.js +2 -1
  103. package/dist/src/desktop/components/UserDesktopNavBar/UserDesktopNavBar.d.ts +1 -1
  104. package/dist/src/desktop/components/UserDesktopSideTab/UserDesktopSideTab.d.ts +8 -0
  105. package/dist/src/desktop/components/UserDesktopSideTab/UserDesktopSideTab.js +36 -0
  106. package/dist/src/desktop/components/UserDesktopSideTab/index.d.ts +1 -0
  107. package/dist/src/desktop/components/UserDesktopSideTab/index.js +8 -0
  108. package/dist/src/desktop/components/UserDesktopTabBar/UserDesktopTabBar.js +3 -3
  109. package/dist/src/desktop/components/index.d.ts +3 -4
  110. package/dist/src/desktop/components/index.js +4 -5
  111. package/dist/src/desktop/index.d.ts +4 -2
  112. package/dist/src/desktop/index.js +9 -4
  113. package/dist/src/desktop/layout/LayoutWT/Containers/ContentsContainer/ContentsContainer.d.ts +1 -1
  114. package/dist/src/desktop/layout/LayoutWT/Containers/ContentsContainer/ContentsContainer.js +2 -1
  115. package/dist/src/desktop/layout/LayoutWT/Containers/ContentsContainer/variation/WTS.d.ts +1 -1
  116. package/dist/src/desktop/layout/LayoutWT/Containers/ContentsContainer/variation/WTS.js +29 -5
  117. package/dist/src/desktop/layout/LayoutWT/ContainersBox/ContainersBox.d.ts +1 -1
  118. package/dist/src/desktop/layout/LayoutWT/ContainersBox/ContainersBox.js +8 -4
  119. package/dist/src/desktop/{components → panels}/DesktopBasicModal/DesktopBasicModal.d.ts +0 -0
  120. package/dist/src/desktop/{components → panels}/DesktopBasicModal/DesktopBasicModal.js +6 -7
  121. package/dist/src/desktop/{components → panels}/DesktopBasicModal/index.d.ts +0 -0
  122. package/dist/src/desktop/{components → panels}/DesktopBasicModal/index.js +0 -0
  123. package/dist/src/desktop/{components → panels}/DesktopHeadlessModal/DesktopHeadlessModal.d.ts +3 -3
  124. package/dist/src/desktop/{components → panels}/DesktopHeadlessModal/DesktopHeadlessModal.js +3 -3
  125. package/dist/src/desktop/{components → panels}/DesktopHeadlessModal/index.d.ts +0 -0
  126. package/dist/src/desktop/{components → panels}/DesktopHeadlessModal/index.js +0 -0
  127. package/dist/src/desktop/panels/index.d.ts +3 -0
  128. package/dist/src/desktop/panels/index.js +7 -0
  129. package/dist/src/hybrid/components/Divider/Divider.js +12 -9
  130. package/dist/src/hybrid/components/Icon/Icon.js +3 -2
  131. package/dist/src/hybrid/components/Switch/Switch.d.ts +2 -2
  132. package/dist/src/hybrid/components/Switch/Switch.js +7 -33
  133. package/dist/src/mobile/common/components/TextFieldBase/TextFieldBase.js +1 -1
  134. package/dist/src/mobile/components/BasicList/BasicList.d.ts +3 -3
  135. package/dist/src/mobile/components/BasicListItem/BasicListItem.d.ts +4 -1
  136. package/dist/src/mobile/components/BasicListItem/BasicListItem.js +5 -5
  137. package/dist/src/mobile/components/Card/Card.js +1 -1
  138. package/dist/src/mobile/components/Chip/Chip.js +22 -25
  139. package/dist/src/mobile/components/ContextMenu/ContextMenu.js +1 -1
  140. package/dist/src/mobile/components/ContextMenuItem/ContextMenuItem.js +2 -2
  141. package/dist/src/mobile/components/Dropdown/Dropdown.d.ts +2 -1
  142. package/dist/src/mobile/components/Dropdown/Dropdown.js +16 -8
  143. package/dist/src/mobile/components/HorizontalFormGroup/HorizontalFormGroup.js +5 -3
  144. package/dist/src/mobile/components/IconButton/IconButton.js +3 -8
  145. package/dist/src/mobile/components/ImageSlide/ImageSlide.js +1 -1
  146. package/dist/src/mobile/components/MainButton/MainButton.js +19 -16
  147. package/dist/src/mobile/components/MobileAlertDialog/MobileAlertDialog.d.ts +1 -1
  148. package/dist/src/mobile/components/MobileAlertDialog/MobileAlertDialog.js +2 -2
  149. package/dist/src/mobile/components/MobileTabBar/MobileTabBar.d.ts +3 -1
  150. package/dist/src/mobile/components/MobileTabBar/MobileTabBar.js +23 -9
  151. package/dist/src/mobile/components/Radio/Radio.js +1 -1
  152. package/dist/src/mobile/components/ReactionButton/ReactionButton.js +2 -5
  153. package/dist/src/mobile/components/Select/Select.d.ts +7 -6
  154. package/dist/src/mobile/components/Select/Select.js +12 -13
  155. package/dist/src/mobile/components/StatusBlock/StatusBlock.js +3 -3
  156. package/dist/src/mobile/components/TextButton/TextButton.d.ts +1 -1
  157. package/dist/src/mobile/components/TextButton/TextButton.js +8 -8
  158. package/dist/src/mobile/components/TextField/TextField.js +1 -3
  159. package/dist/src/mobile/components/TextLabel/TextLabel.js +2 -4
  160. package/dist/src/mobile/components/UploadIconButton/UploadIconButton.js +3 -8
  161. package/dist/src/mobile/components/UploadMainButton/UploadMainButton.js +5 -11
  162. package/dist/src/mobile/components/UploadTextButton/UploadTextButton.d.ts +1 -1
  163. package/dist/src/mobile/components/UploadTextButton/UploadTextButton.js +2 -1
  164. package/dist/src/mobile/components/index.d.ts +1 -2
  165. package/dist/src/mobile/components/index.js +1 -3
  166. package/dist/src/mobile/index.d.ts +4 -2
  167. package/dist/src/mobile/index.js +4 -2
  168. package/dist/src/mobile/{components → panels}/MobileBasicModal/MobileBasicModal.d.ts +0 -0
  169. package/dist/src/mobile/{components → panels}/MobileBasicModal/MobileBasicModal.js +6 -9
  170. package/dist/src/mobile/{components → panels}/MobileBasicModal/index.d.ts +0 -0
  171. package/dist/src/mobile/{components → panels}/MobileBasicModal/index.js +0 -0
  172. package/dist/src/mobile/panels/index.d.ts +2 -0
  173. package/dist/src/mobile/panels/index.js +5 -0
  174. package/package.json +1 -1
  175. package/release-note.md +2 -10
@@ -31,14 +31,19 @@ var ContextMenuItem_1 = require("../ContextMenuItem");
31
31
  var TextLabel_1 = require("../TextLabel");
32
32
  // TODO: selectionMode의 multi 기능 구현 추가 필요
33
33
  function Dropdown(_a) {
34
- var _b = _a.colorTheme, colorTheme = _b === void 0 ? 'none' : _b, defaultValue = _a.defaultValue, hintText = _a.hintText, _c = _a.maxHeightItemNumber, maxHeightItemNumber = _c === void 0 ? 5 : _c, _d = _a.responsiveMode, responsiveMode = _d === void 0 ? 'none' : _d, _e = _a.selectionMode, selectionMode = _e === void 0 ? 'single' : _e, _f = _a.size, size = _f === void 0 ? 'large' : _f, _g = _a.state, state = _g === void 0 ? 'normal' : _g, valueArray = _a.valueArray, onChange = _a.onChange;
34
+ var _b = _a.colorTheme, colorTheme = _b === void 0 ? 'none' : _b, value = _a.value, defaultValue = _a.defaultValue, hintText = _a.hintText, _c = _a.maxHeightItemNumber, maxHeightItemNumber = _c === void 0 ? 5 : _c, _d = _a.responsiveMode, responsiveMode = _d === void 0 ? 'none' : _d, _e = _a.selectionMode, selectionMode = _e === void 0 ? 'single' : _e, _f = _a.size, size = _f === void 0 ? 'large' : _f, _g = _a.state, state = _g === void 0 ? 'normal' : _g, valueArray = _a.valueArray, onChange = _a.onChange;
35
35
  var _h = (0, react_1.useState)(false), isFocused = _h[0], setIsFocused = _h[1];
36
- var _j = (0, react_1.useState)(defaultValue), selectedOption = _j[0], setSelectedOption = _j[1];
36
+ var _j = (0, react_1.useState)(defaultValue), selectedValue = _j[0], setSelectedValue = _j[1];
37
37
  (0, react_1.useEffect)(function () {
38
38
  if (defaultValue) {
39
- setSelectedOption(defaultValue);
39
+ setSelectedValue(defaultValue);
40
40
  }
41
41
  }, [defaultValue]);
42
+ (0, react_1.useEffect)(function () {
43
+ if (value) {
44
+ setSelectedValue(value);
45
+ }
46
+ }, [value]);
42
47
  var handleClick = function () {
43
48
  if (state === 'disabled' || state === 'read_only') {
44
49
  return;
@@ -51,8 +56,10 @@ function Dropdown(_a) {
51
56
  }
52
57
  };
53
58
  var handleClickOption = function (option) {
54
- setSelectedOption(option);
55
59
  setIsFocused(false);
60
+ if (!value) {
61
+ setSelectedValue(option);
62
+ }
56
63
  if (onChange) {
57
64
  onChange(option);
58
65
  }
@@ -140,11 +147,12 @@ function Dropdown(_a) {
140
147
  return (react_1.default.createElement(S_Dropdown, { className: "container", size: size, tabIndex: 0, onBlur: handleBlur, responsiveMode: responsiveMode },
141
148
  react_1.default.createElement(S_Select, { size: size, onClick: handleClick, isFocused: isFocused, state: state, colorTheme: colorTheme, responsiveMode: responsiveMode },
142
149
  react_1.default.createElement(S_TextLabel, null,
143
- react_1.default.createElement(TextLabel_1.TextLabel, { text: (selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.text) || hintText, styleTheme: "form2Regular", singleLineMode: "use", colorTheme: getTextColorTheme(), colorOverride: getTextColorOverride() })),
150
+ react_1.default.createElement(TextLabel_1.TextLabel, { text: (selectedValue === null || selectedValue === void 0 ? void 0 : selectedValue.text) || hintText, styleTheme: "form2Regular", singleLineMode: "use", colorTheme: getTextColorTheme(), colorOverride: getTextColorOverride() })),
144
151
  react_1.default.createElement(hybrid_1.Icon, { size: 16, fillType: "line", iconName: isFocused ? 'ic_arrow_up' : 'ic_arrow_down', colorKey: getIconColorKey() }),
145
152
  react_1.default.createElement(hybrid_1.Spacing, { size: "spacing_d", spacingType: "width" })),
146
153
  isFocused && (react_1.default.createElement(S_ContextMenuWrapper, null,
147
- react_1.default.createElement(ContextMenu_1.ContextMenu, { autoWidthMode: "use", maxHeight: maxHeight }, valueArray.map(function (el) { return (react_1.default.createElement(ContextMenuItem_1.ContextMenuItem, { key: el.value, option: el, size: size, isSelected: el.value === (selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.value), onClick: handleClickOption, state: el.state })); }))))));
154
+ react_1.default.createElement(ContextMenu_1.ContextMenu, { autoWidthMode: "use", maxHeight: maxHeight }, valueArray.map(function (el) { return (react_1.default.createElement(react_1.Fragment, { key: el.value },
155
+ react_1.default.createElement(ContextMenuItem_1.ContextMenuItem, { option: el, size: size, isSelected: (selectedValue === null || selectedValue === void 0 ? void 0 : selectedValue.value) === el.value, onClick: handleClickOption, state: el.state }))); }))))));
148
156
  }
149
157
  var S_TextLabel = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n flex: 1;\n padding-left: ", ";\n padding-right: ", ";\n"], ["\n flex: 1;\n padding-left: ", ";\n padding-right: ", ";\n"])), function (_a) {
150
158
  var theme = _a.theme;
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import { BrandLogo, UserProfile } from './blocks';
3
- import { DynamicDesktopTemplateType } from './templates/types';
3
+ import { ActiveModeTypes } from './reducer';
4
+ import { TemplateNamesType } from './templates';
4
5
  import { ParsedNode } from './types';
5
6
  declare type BrandLogo = {
6
7
  src: string;
@@ -17,11 +18,14 @@ export declare type Props = {
17
18
  userProfile: UserProfile;
18
19
  primaryMenus: ParsedNode[];
19
20
  secondaryMenus: ParsedNode[] | null;
20
- template: DynamicDesktopTemplateType;
21
+ template: TemplateNamesType;
21
22
  basePath: string;
22
23
  };
23
- export declare const BasePathContext: React.Context<{
24
+ declare type ContextProp = {
24
25
  basePath: string;
25
- }>;
26
+ activeMode: ActiveModeTypes;
27
+ handleClickInternalMenuItemNav: (url: string) => void;
28
+ };
29
+ export declare const BasePathContext: React.Context<ContextProp>;
26
30
  declare function DynamicDesktopNavBar({ isPreview, template, brandLogo, primaryMenus, secondaryMenus, userProfile, basePath }: Props): JSX.Element;
27
31
  export default DynamicDesktopNavBar;
@@ -31,23 +31,45 @@ var react_1 = __importStar(require("react"));
31
31
  var react_router_dom_1 = require("react-router-dom");
32
32
  var styled_components_1 = __importDefault(require("styled-components"));
33
33
  var BoxLayout_1 = require("../../../common/components/BoxLayout");
34
+ var hooks_1 = require("../../../common/hooks");
34
35
  var blocks_1 = require("./blocks");
36
+ var reducer_1 = __importStar(require("./reducer"));
37
+ var templates_1 = require("./templates");
35
38
  exports.BasePathContext = (0, react_1.createContext)({
36
- basePath: ''
39
+ basePath: '',
40
+ activeMode: 'BY_URL',
41
+ handleClickInternalMenuItemNav: function () {
42
+ // NOTE: noop function
43
+ return;
44
+ }
37
45
  });
38
46
  function DynamicDesktopNavBar(_a) {
39
47
  var _b = _a.isPreview, isPreview = _b === void 0 ? false : _b, template = _a.template, brandLogo = _a.brandLogo, primaryMenus = _a.primaryMenus, secondaryMenus = _a.secondaryMenus, userProfile = _a.userProfile, basePath = _a.basePath;
40
- var gridStyle = template.gridStyle, gridTemplate = template.gridTemplate, showSecondaryMenu = template.showSecondaryMenu, primaryMenuOptions = template.primaryMenuOptions, secondaryMenuOptions = template.secondaryMenuOptions, userProfileOptions = template.userProfileOptions;
48
+ var _c = templates_1.DynamicDesktopNavBarTemplates.getTemplate(template), gridStyle = _c.gridStyle, gridTemplate = _c.gridTemplate, showSecondaryMenu = _c.showSecondaryMenu, primaryMenuOptions = _c.primaryMenuOptions, secondaryMenuOptions = _c.secondaryMenuOptions, userProfileOptions = _c.userProfileOptions;
49
+ var _d = (0, react_1.useReducer)(reducer_1.default, reducer_1.defaultValue), state = _d[0], dispatch = _d[1];
50
+ var location = (0, react_router_dom_1.useLocation)();
51
+ var prevLocation = (0, hooks_1.usePrevious)(location.pathname + location.search);
52
+ (0, react_1.useEffect)(function () {
53
+ var currentLocation = location.pathname + location.search;
54
+ if (currentLocation === state.clickedURL) {
55
+ return;
56
+ }
57
+ if (currentLocation !== prevLocation) {
58
+ dispatch({ type: 'URL_CHANGED' });
59
+ }
60
+ }, [location.pathname, location.search]);
41
61
  var slicedPrimaryMenus = (0, react_1.useMemo)(function () { return primaryMenus === null || primaryMenus === void 0 ? void 0 : primaryMenus.slice(0, primaryMenuOptions.maxLength); }, [primaryMenus, primaryMenuOptions]);
42
62
  var slicedSecondaryMenus = (0, react_1.useMemo)(function () { var _a; return (_a = secondaryMenus === null || secondaryMenus === void 0 ? void 0 : secondaryMenus.slice(0, secondaryMenuOptions.maxLength)) !== null && _a !== void 0 ? _a : []; }, [secondaryMenus, secondaryMenuOptions]);
43
- return (react_1.default.createElement(exports.BasePathContext.Provider, { value: { basePath: basePath } },
44
- react_1.default.createElement(react_router_dom_1.BrowserRouter, { basename: basePath },
45
- react_1.default.createElement(S_DynamicDesktopNavBar, { isPreview: isPreview },
46
- react_1.default.createElement(S_Grid, { className: "DynamicDesktopNavBarGrid", gridTemplate: gridTemplate, style: gridStyle },
47
- react_1.default.createElement(blocks_1.BrandLogo, { to: brandLogo.href, logoSrc: brandLogo.src, fallbackText: brandLogo.text }),
48
- react_1.default.createElement(blocks_1.PrimaryMenu, { menus: slicedPrimaryMenus, showMenuAsIcon: primaryMenuOptions.showMenuAsIcon, style: primaryMenuOptions.style }),
49
- showSecondaryMenu && (react_1.default.createElement(blocks_1.SecondaryMenu, { menus: slicedSecondaryMenus, showMenuAsIcon: secondaryMenuOptions.showMenuAsIcon, style: secondaryMenuOptions.style })),
50
- react_1.default.createElement(blocks_1.UserProfile, { src: userProfile.src, to: userProfile.href, style: userProfileOptions.style }))))));
63
+ function handleClickInternalMenuItemNav(url) {
64
+ dispatch({ type: 'INTERNAL_CLICKED', payload: { clickedURL: url } });
65
+ }
66
+ return (react_1.default.createElement(exports.BasePathContext.Provider, { value: { basePath: basePath, activeMode: state.mode, handleClickInternalMenuItemNav: handleClickInternalMenuItemNav } },
67
+ react_1.default.createElement(S_DynamicDesktopNavBar, { isPreview: isPreview },
68
+ react_1.default.createElement(S_Grid, { className: "DynamicDesktopNavBarGrid", gridTemplate: gridTemplate, style: gridStyle },
69
+ react_1.default.createElement(blocks_1.BrandLogo, { to: brandLogo.href, logoSrc: brandLogo.src, fallbackText: brandLogo.text }),
70
+ react_1.default.createElement(blocks_1.PrimaryMenu, { menus: slicedPrimaryMenus, showMenuAsIcon: primaryMenuOptions.showMenuAsIcon, style: primaryMenuOptions.style }),
71
+ showSecondaryMenu && (react_1.default.createElement(blocks_1.SecondaryMenu, { menus: slicedSecondaryMenus, showMenuAsIcon: secondaryMenuOptions.showMenuAsIcon, style: secondaryMenuOptions.style })),
72
+ react_1.default.createElement(blocks_1.UserProfile, { src: userProfile.src, to: userProfile.href, style: userProfileOptions.style })))));
51
73
  }
52
74
  var S_Grid = (0, styled_components_1.default)(BoxLayout_1.Grid)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n align-items: center;\n justify-items: center;\n gap: 24px;\n padding-left: ", ";\n padding-right: ", ";\n"], ["\n align-items: center;\n justify-items: center;\n gap: 24px;\n padding-left: ", ";\n padding-right: ", ";\n"])), function (_a) {
53
75
  var theme = _a.theme;
@@ -80,7 +80,7 @@ function PrimaryMenu(_a) {
80
80
  isOverflow && !isScrollBoxStart && (react_1.default.createElement(S_LeftButtonWrapper, null,
81
81
  react_1.default.createElement(S_ButtonWrapper, null,
82
82
  react_1.default.createElement(__1.D_IconButton, { fillType: "fill", baseSize: "medium", baseColorKey: "ui_menu_background", iconName: "ic_arrow_left", iconFillType: "line", iconColorKey: "ui_cpnt_button_icon_default", shapeType: "circular", iconSize: 20, onClick: onClickLeftButton })))),
83
- react_1.default.createElement(S_Main_PrimaryMenu, { onScroll: function () { return trigger(); }, ref: primaryCallbackRef }, menus.map(function (menu, index) { return (react_1.default.createElement(MenuItemNav_1.MenuItemNav, { key: index, menu: menu, showMenuAsIcon: showMenuAsIcon })); })),
83
+ react_1.default.createElement(S_Main_PrimaryMenu, { onScroll: function () { return trigger(); }, ref: primaryCallbackRef }, menus.map(function (menu, index) { return (react_1.default.createElement(MenuItemNav_1.MenuItemNav, { index: index, key: index, menu: menu, showMenuAsIcon: showMenuAsIcon })); })),
84
84
  isOverflow && !isScrollBoxEnd && (react_1.default.createElement(S_RightButtonWrapper, null,
85
85
  react_1.default.createElement(S_ButtonWrapper, null,
86
86
  react_1.default.createElement(__1.D_IconButton, { fillType: "fill", baseSize: "medium", baseColorKey: "ui_menu_background", iconName: "ic_arrow_right", iconFillType: "line", iconColorKey: "ui_cpnt_button_icon_default", shapeType: "circular", iconSize: 20, onClick: onClickRightButton }))))));
@@ -12,7 +12,7 @@ var styled_components_1 = __importDefault(require("styled-components"));
12
12
  var MenuItemNav_1 = require("../components/MenuItemNav");
13
13
  function SecondaryMenu(_a) {
14
14
  var menus = _a.menus, showMenuAsIcon = _a.showMenuAsIcon, style = _a.style;
15
- return (react_1.default.createElement(S_Main_SecondaryMenu, { style: style }, menus.map(function (menu, index) { return (react_1.default.createElement(MenuItemNav_1.MenuItemNav, { key: index, menu: menu, showMenuAsIcon: showMenuAsIcon })); })));
15
+ return (react_1.default.createElement(S_Main_SecondaryMenu, { style: style }, menus.map(function (menu, index) { return (react_1.default.createElement(MenuItemNav_1.MenuItemNav, { index: index, key: index, menu: menu, showMenuAsIcon: showMenuAsIcon })); })));
16
16
  }
17
17
  var S_Main_SecondaryMenu = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n grid-area: SECONDARY_MENU;\n"], ["\n display: flex;\n grid-area: SECONDARY_MENU;\n"])));
18
18
  exports.default = SecondaryMenu;
@@ -39,13 +39,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
39
39
  Object.defineProperty(exports, "__esModule", { value: true });
40
40
  var react_1 = __importDefault(require("react"));
41
41
  var styled_components_1 = __importStar(require("styled-components"));
42
+ var DisplayOnlyMenuItemNav_1 = __importDefault(require("../MenuItemNav/components/DisplayOnlyMenuItemNav"));
43
+ var InternalLinkMenuItemNav_1 = __importDefault(require("../MenuItemNav/components/InternalLinkMenuItemNav"));
42
44
  var PAppMenuItemNav_1 = __importDefault(require("../MenuItemNav/components/PAppMenuItemNav"));
43
45
  var WebMenuItemNav_1 = __importDefault(require("../MenuItemNav/components/WebMenuItemNav"));
44
46
  function ContextMenuItemNavBox(_a) {
45
47
  var menu = _a.menu;
46
48
  return (react_1.default.createElement(S_ContextMenuItem, { size: "small" },
47
- menu.menuItemType === 'NAV_P_APP' && menu.pAppCode && (react_1.default.createElement(PAppMenuItemNav_1.default, { menu: __assign(__assign({}, menu), { pAppCode: menu.pAppCode }) })),
48
- menu.menuItemType === 'WEB_LINK' && menu.conversionLinkSrc && (react_1.default.createElement(WebMenuItemNav_1.default, { menu: __assign(__assign({}, menu), { conversionLinkSrc: menu.conversionLinkSrc }) }))));
49
+ menu.menuItemType === 'NAV_P_APP' && menu.pAppCode && (react_1.default.createElement(PAppMenuItemNav_1.default, { menu: __assign(__assign({}, menu), { pAppCode: menu.pAppCode }), isContextMenu: true })),
50
+ menu.menuItemType === 'WEB_LINK' && menu.conversionLinkSrc && (react_1.default.createElement(WebMenuItemNav_1.default, { openNewTab: true, isContextMenu: true, menu: __assign(__assign({}, menu), { conversionLinkSrc: menu.conversionLinkSrc }) })),
51
+ menu.menuItemType === 'INTERNAL_LINK' && menu.conversionLinkSrc && (react_1.default.createElement(InternalLinkMenuItemNav_1.default, { isContextMenu: true, menu: __assign(__assign({}, menu), { conversionLinkSrc: menu.conversionLinkSrc }) })),
52
+ menu.menuItemType === 'DISPLAY_ONLY' && (react_1.default.createElement(DisplayOnlyMenuItemNav_1.default, { menu: __assign(__assign({}, menu), { conversionLinkSrc: '' }) }))));
49
53
  }
50
54
  var large = (0, styled_components_1.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n height: 48px;\n padding: 0 ", ";\n"], ["\n height: 48px;\n padding: 0 ", ";\n"])), function (_a) {
51
55
  var theme = _a.theme;
@@ -31,17 +31,31 @@ var styled_components_1 = __importDefault(require("styled-components"));
31
31
  var ContextMenu_1 = require("../../../ContextMenu");
32
32
  function ContextMenuNavs(_a) {
33
33
  var parentRef = _a.parentRef, children = _a.children;
34
- var contextRef = (0, react_1.useRef)(null);
35
- var _b = (0, react_1.useState)({ top: 0, left: 0 }), position = _b[0], setPosition = _b[1];
34
+ var _b = (0, react_1.useState)(null), contextRef = _b[0], setContextRef = _b[1];
35
+ var contextCallbackRef = (0, react_1.useCallback)(function (node) {
36
+ if (!node) {
37
+ return;
38
+ }
39
+ setContextRef(node);
40
+ }, []);
41
+ var _c = (0, react_1.useState)({ top: 0, left: 0 }), position = _c[0], setPosition = _c[1];
36
42
  (0, react_1.useLayoutEffect)(function () {
37
43
  if (!parentRef.current) {
38
44
  return;
39
45
  }
40
46
  var PARENT_HEIGHT = 48;
41
47
  var _a = parentRef.current.getBoundingClientRect(), top = _a.top, left = _a.left;
42
- setPosition({ top: top + PARENT_HEIGHT, left: left });
43
- }, [parentRef]);
44
- return (react_1.default.createElement(S_AbsoluteWrapper, { ref: contextRef, style: { top: position.top, left: position.left } },
48
+ if (!contextRef) {
49
+ setPosition({ top: top + PARENT_HEIGHT, left: left });
50
+ return;
51
+ }
52
+ var contextBound = contextRef.getBoundingClientRect();
53
+ if (contextRef.getBoundingClientRect().right > window.innerWidth) {
54
+ setPosition({ top: top + PARENT_HEIGHT, left: window.innerWidth - contextBound.width });
55
+ return;
56
+ }
57
+ }, [parentRef, contextRef]);
58
+ return (react_1.default.createElement(S_AbsoluteWrapper, { ref: contextCallbackRef, style: { top: position.top, left: position.left } },
45
59
  react_1.default.createElement(ContextMenu_1.ContextMenu, null, children)));
46
60
  }
47
61
  var S_AbsoluteWrapper = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n position: fixed;\n\n /* NOTE: contents layer */\n z-index: 90;\n"], ["\n position: fixed;\n\n /* NOTE: contents layer */\n z-index: 90;\n"])));
@@ -3,6 +3,7 @@ import { PDSIconType } from '../../../../common';
3
3
  declare type Props = {
4
4
  to: string;
5
5
  iconName: PDSIconType;
6
+ openNewTab: boolean;
6
7
  };
7
- declare function IconNav({ to, iconName }: Props): JSX.Element;
8
+ declare function IconNav({ to, iconName, openNewTab }: Props): JSX.Element;
8
9
  export default IconNav;
@@ -7,8 +7,8 @@ var react_1 = __importDefault(require("react"));
7
7
  var __1 = require("../../..");
8
8
  var Navigations_1 = require("../../../../common/components/Navigations");
9
9
  function IconNav(_a) {
10
- var to = _a.to, iconName = _a.iconName;
11
- return (react_1.default.createElement(Navigations_1.NavLink, { to: to },
10
+ var to = _a.to, iconName = _a.iconName, openNewTab = _a.openNewTab;
11
+ return (react_1.default.createElement(Navigations_1.NavLink, { to: to, openNewTab: openNewTab },
12
12
  react_1.default.createElement(__1.D_IconButton, { fillType: "fill", baseSize: "large", baseColorKey: "ui_cpnt_button_fill_base_transparent", iconName: iconName, iconFillType: "line", iconColorKey: "ui_menu_primarymenu_main", shapeType: "rectangle", iconSize: 24 })));
13
13
  }
14
14
  exports.default = IconNav;
@@ -17,6 +17,6 @@ function LogoNav(_a) {
17
17
  react_1.default.createElement(S_Box, null, logoSrc ? (react_1.default.createElement(S_Logo, { src: logoSrc })) : (react_1.default.createElement(__1.D_TextLabel, { text: fallbackText, styleTheme: "headingBold", ellipsisMode: "use", lineLimit: 1 })))));
18
18
  }
19
19
  var S_Box = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n height: 48px;\n width: 180px;\n display: flex;\n align-items: center;\n"], ["\n height: 48px;\n width: 180px;\n display: flex;\n align-items: center;\n"])));
20
- var S_Logo = styled_components_1.default.img(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n max-height: 100%;\n object-fit: contain;\n object-position: left;\n"], ["\n max-height: 100%;\n object-fit: contain;\n object-position: left;\n"])));
20
+ var S_Logo = styled_components_1.default.img(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n max-height: 100%;\n max-width: 100%;\n object-fit: contain;\n object-position: left;\n"], ["\n max-height: 100%;\n max-width: 100%;\n object-fit: contain;\n object-position: left;\n"])));
21
21
  exports.default = LogoNav;
22
22
  var templateObject_1, templateObject_2;
@@ -3,6 +3,7 @@ import { ParsedNode } from '../../types';
3
3
  declare type Props = {
4
4
  menu: ParsedNode;
5
5
  showMenuAsIcon: boolean;
6
+ index: number;
6
7
  };
7
- declare function MenuItemNav({ menu, showMenuAsIcon }: Props): JSX.Element;
8
+ declare function MenuItemNav({ menu, showMenuAsIcon, index }: Props): JSX.Element;
8
9
  export default MenuItemNav;
@@ -41,11 +41,13 @@ var react_1 = __importStar(require("react"));
41
41
  var styled_components_1 = __importDefault(require("styled-components"));
42
42
  var hybrid_1 = require("../../../../../hybrid");
43
43
  var ContextMenuNavs_1 = require("../ContextMenuNavs");
44
+ var DisplayOnlyMenuItemNav_1 = __importDefault(require("./components/DisplayOnlyMenuItemNav"));
45
+ var InternalLinkMenuItemNav_1 = __importDefault(require("./components/InternalLinkMenuItemNav"));
44
46
  var PAppMenuItemNav_1 = __importDefault(require("./components/PAppMenuItemNav"));
45
47
  var WebMenuItemNav_1 = __importDefault(require("./components/WebMenuItemNav"));
46
48
  // NOTE: 서버에서 itemType으로 enum값이 잘 오면 아래 불필요한 케이스/default 간소화
47
49
  function MenuItemNav(_a) {
48
- var menu = _a.menu, showMenuAsIcon = _a.showMenuAsIcon;
50
+ var menu = _a.menu, showMenuAsIcon = _a.showMenuAsIcon, index = _a.index;
49
51
  var ref = (0, react_1.useRef)(null);
50
52
  var _b = (0, react_1.useState)(false), isContextOpen = _b[0], setIsContextOpen = _b[1];
51
53
  var handleMouseOver = (0, react_1.useCallback)(function () {
@@ -54,12 +56,18 @@ function MenuItemNav(_a) {
54
56
  var handleMouseOut = (0, react_1.useCallback)(function () {
55
57
  setIsContextOpen(false);
56
58
  }, []);
57
- return (react_1.default.createElement(S_Box, { ref: ref, onMouseOver: handleMouseOver, onMouseLeave: handleMouseOut, onWheel: handleMouseOut, showMenuAsIcon: showMenuAsIcon },
58
- menu.menuItemType === 'NAV_P_APP' && menu.pAppCode && (react_1.default.createElement(PAppMenuItemNav_1.default, { menu: __assign(__assign({}, menu), { pAppCode: menu.pAppCode }), showMenuAsIcon: showMenuAsIcon })),
59
- menu.menuItemType === 'WEB_LINK' && menu.conversionLinkSrc && (react_1.default.createElement(WebMenuItemNav_1.default, { menu: __assign(__assign({}, menu), { conversionLinkSrc: menu.conversionLinkSrc }), showMenuAsIcon: showMenuAsIcon })),
60
- showMenuAsIcon ? (react_1.default.createElement(hybrid_1.Spacing, { spacingType: "width", size: "spacing_b" })) : (react_1.default.createElement(hybrid_1.Spacing, { spacingType: "width", size: "spacing_f" })),
61
- isContextOpen && menu.parsedNodes.length > 0 && (react_1.default.createElement(ContextMenuNavs_1.ContextMenuNavs, { parentRef: ref }, menu.parsedNodes.map(function (nav, index) { return (react_1.default.createElement(ContextMenuNavs_1.ContextMenuItemNav, { key: index, menu: nav })); })))));
59
+ return (react_1.default.createElement(react_1.default.Fragment, null,
60
+ react_1.default.createElement(S_Box, { ref: ref, onMouseOver: handleMouseOver, onMouseLeave: handleMouseOut, onWheel: handleMouseOut, showMenuAsIcon: showMenuAsIcon, type: menu.menuItemType },
61
+ menu.menuItemType === 'NAV_P_APP' && menu.pAppCode && (react_1.default.createElement(PAppMenuItemNav_1.default, { menu: __assign(__assign({}, menu), { pAppCode: menu.pAppCode }), showMenuAsIcon: showMenuAsIcon })),
62
+ menu.menuItemType === 'WEB_LINK' && menu.conversionLinkSrc && (react_1.default.createElement(WebMenuItemNav_1.default, { openNewTab: true, menu: __assign(__assign({}, menu), { conversionLinkSrc: menu.conversionLinkSrc }), showMenuAsIcon: showMenuAsIcon })),
63
+ menu.menuItemType === 'INTERNAL_LINK' && menu.conversionLinkSrc && (react_1.default.createElement(InternalLinkMenuItemNav_1.default, { index: index, menu: __assign(__assign({}, menu), { conversionLinkSrc: menu.conversionLinkSrc }), showMenuAsIcon: showMenuAsIcon })),
64
+ menu.menuItemType === 'DISPLAY_ONLY' && (react_1.default.createElement(DisplayOnlyMenuItemNav_1.default, { menu: __assign(__assign({}, menu), { conversionLinkSrc: '' }), showMenuAsIcon: showMenuAsIcon })),
65
+ isContextOpen && menu.parsedNodes.length > 0 && (react_1.default.createElement(ContextMenuNavs_1.ContextMenuNavs, { parentRef: ref }, menu.parsedNodes.map(function (nav, index) { return (react_1.default.createElement(ContextMenuNavs_1.ContextMenuItemNav, { key: index, menu: nav })); })))),
66
+ showMenuAsIcon ? (react_1.default.createElement(hybrid_1.Spacing, { spacingType: "width", size: "spacing_b" })) : (react_1.default.createElement(hybrid_1.Spacing, { spacingType: "width", size: "spacing_f" }))));
62
67
  }
63
- var S_Box = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n align-items: center;\n cursor: pointer;\n display: flex;\n"], ["\n align-items: center;\n cursor: pointer;\n display: flex;\n"])));
68
+ var S_Box = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n align-items: center;\n cursor: ", ";\n display: flex;\n"], ["\n align-items: center;\n cursor: ", ";\n display: flex;\n"])), function (_a) {
69
+ var type = _a.type;
70
+ return (type === 'DISPLAY_ONLY' ? 'default' : 'pointer');
71
+ });
64
72
  exports.default = MenuItemNav;
65
73
  var templateObject_1;
@@ -0,0 +1,12 @@
1
+ /// <reference types="react" />
2
+ import { ParsedNode } from '../../../types';
3
+ declare type WithRequired<T, K extends keyof T> = T & {
4
+ [P in K]-?: T[P];
5
+ };
6
+ declare type Props = {
7
+ menu: WithRequired<ParsedNode, 'conversionLinkSrc'>;
8
+ showMenuAsIcon?: boolean;
9
+ isContextMenu?: boolean;
10
+ };
11
+ declare function DisplayOnlyMenuItemNav({ menu, showMenuAsIcon, isContextMenu }: Props): JSX.Element;
12
+ export default DisplayOnlyMenuItemNav;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
3
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
4
+ return cooked;
5
+ };
6
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ var react_1 = __importDefault(require("react"));
11
+ var styled_components_1 = __importDefault(require("styled-components"));
12
+ var Navigations_1 = require("../../../../../../common/components/Navigations");
13
+ var IconNav_1 = __importDefault(require("../../IconNav"));
14
+ var ImageIconNav_1 = __importDefault(require("../../ImageIconNav"));
15
+ function DisplayOnlyMenuItemNav(_a) {
16
+ var menu = _a.menu, showMenuAsIcon = _a.showMenuAsIcon, isContextMenu = _a.isContextMenu;
17
+ if (showMenuAsIcon) {
18
+ if (menu.iconSrc) {
19
+ return (react_1.default.createElement(DeactivateLinkBox, null,
20
+ react_1.default.createElement(ImageIconNav_1.default, { to: menu.conversionLinkSrc, iconSrc: menu.iconSrc, openNewTab: false })));
21
+ }
22
+ if (menu.iconName) {
23
+ return (react_1.default.createElement(DeactivateLinkBox, null,
24
+ react_1.default.createElement(IconNav_1.default, { to: menu.conversionLinkSrc, iconName: menu.iconName, openNewTab: false })));
25
+ }
26
+ }
27
+ return (react_1.default.createElement(DeactivateLinkBox, null, isContextMenu ? (react_1.default.createElement(Navigations_1.ContextTextLabelNav, { preventLineChange: true, openNewTab: false, to: menu.conversionLinkSrc, text: menu.name })) : (react_1.default.createElement(Navigations_1.TextLabelNav, { preventLineChange: true, openNewTab: false, to: menu.conversionLinkSrc, text: menu.name }))));
28
+ }
29
+ var DeactivateLinkBox = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n pointer-events: none;\n width: max-content;\n"], ["\n pointer-events: none;\n width: max-content;\n"])));
30
+ exports.default = DisplayOnlyMenuItemNav;
31
+ var templateObject_1;
@@ -0,0 +1,13 @@
1
+ /// <reference types="react" />
2
+ import { ParsedNode } from '../../../types';
3
+ declare type WithRequired<T, K extends keyof T> = T & {
4
+ [P in K]-?: T[P];
5
+ };
6
+ declare type Props = {
7
+ menu: WithRequired<ParsedNode, 'conversionLinkSrc'>;
8
+ showMenuAsIcon?: boolean;
9
+ isContextMenu?: boolean;
10
+ index?: number;
11
+ };
12
+ declare function InternalLinkMenuItemNav({ menu, showMenuAsIcon, isContextMenu, index }: Props): JSX.Element;
13
+ export default InternalLinkMenuItemNav;
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __importDefault = (this && this.__importDefault) || function (mod) {
22
+ return (mod && mod.__esModule) ? mod : { "default": mod };
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ var react_1 = __importStar(require("react"));
26
+ var react_router_dom_1 = require("react-router-dom");
27
+ var Navigations_1 = require("../../../../../../common/components/Navigations");
28
+ var DynamicDesktopNavBar_1 = require("../../../DynamicDesktopNavBar");
29
+ var IconNav_1 = __importDefault(require("../../IconNav"));
30
+ var ImageIconNav_1 = __importDefault(require("../../ImageIconNav"));
31
+ function InternalLinkMenuItemNav(_a) {
32
+ var menu = _a.menu, showMenuAsIcon = _a.showMenuAsIcon, isContextMenu = _a.isContextMenu, index = _a.index;
33
+ var location = (0, react_router_dom_1.useLocation)();
34
+ var _b = (0, react_1.useContext)(DynamicDesktopNavBar_1.BasePathContext), basePath = _b.basePath, activeMode = _b.activeMode, handleClickInternalMenuItemNav = _b.handleClickInternalMenuItemNav;
35
+ var _c = getInternalLink(basePath, menu.conversionLinkSrc), internalPath = _c.internalPath, pathname = _c.pathname, search = _c.search;
36
+ var isActive = (0, react_1.useMemo)(function () {
37
+ if (activeMode === 'BY_URL') {
38
+ return false;
39
+ }
40
+ if (pathname + search === location.pathname + location.search) {
41
+ return true;
42
+ }
43
+ return false;
44
+ }, [activeMode, location]);
45
+ var onClickNav = function () {
46
+ handleClickInternalMenuItemNav(internalPath);
47
+ };
48
+ if (showMenuAsIcon) {
49
+ if (menu.iconSrc) {
50
+ return react_1.default.createElement(ImageIconNav_1.default, { to: internalPath, iconSrc: menu.iconSrc, openNewTab: false });
51
+ }
52
+ if (menu.iconName) {
53
+ return react_1.default.createElement(IconNav_1.default, { to: internalPath, iconName: menu.iconName, openNewTab: false });
54
+ }
55
+ }
56
+ return isContextMenu ? (react_1.default.createElement(Navigations_1.ContextTextLabelNav, { isActive: isActive, preventLineChange: true, openNewTab: false, to: internalPath, text: menu.name })) : (react_1.default.createElement(Navigations_1.TextLabelNav, { onClick: onClickNav, isActive: isActive, preventLineChange: true, openNewTab: false, to: internalPath, text: menu.name }));
57
+ }
58
+ function getInternalLink(basePath, url) {
59
+ var _a = new URL(url), pathname = _a.pathname, search = _a.search;
60
+ var splitPath = pathname.split(basePath).pop();
61
+ var PAPP_CODE_INDEX = 1;
62
+ var pAppCode = splitPath === null || splitPath === void 0 ? void 0 : splitPath.split('/')[PAPP_CODE_INDEX];
63
+ return { internalPath: basePath + splitPath + search, pAppCode: pAppCode, pathname: pathname, search: search };
64
+ }
65
+ exports.default = InternalLinkMenuItemNav;
@@ -6,6 +6,8 @@ declare type WithRequired<T, K extends keyof T> = T & {
6
6
  declare type Props = {
7
7
  menu: WithRequired<ParsedNode, 'pAppCode'>;
8
8
  showMenuAsIcon?: boolean;
9
+ isContextMenu?: boolean;
10
+ index?: number;
9
11
  };
10
- declare function PAppMenuItemNav({ menu, showMenuAsIcon }: Props): JSX.Element;
12
+ declare function PAppMenuItemNav({ menu, showMenuAsIcon, isContextMenu, index }: Props): JSX.Element;
11
13
  export default PAppMenuItemNav;
@@ -24,26 +24,28 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
24
24
  Object.defineProperty(exports, "__esModule", { value: true });
25
25
  var react_1 = __importStar(require("react"));
26
26
  var react_router_dom_1 = require("react-router-dom");
27
- var TextLabelNav_1 = __importDefault(require("../../../../../../common/components/Navigations/TextLabelNav"));
27
+ var Navigations_1 = require("../../../../../../common/components/Navigations");
28
28
  var DynamicDesktopNavBar_1 = require("../../../DynamicDesktopNavBar");
29
29
  var IconNav_1 = __importDefault(require("../../IconNav"));
30
30
  var ImageIconNav_1 = __importDefault(require("../../ImageIconNav"));
31
31
  function PAppMenuItemNav(_a) {
32
- var menu = _a.menu, showMenuAsIcon = _a.showMenuAsIcon;
33
- var basePath = (0, react_1.useContext)(DynamicDesktopNavBar_1.BasePathContext).basePath;
34
- var match = (0, react_router_dom_1.useRouteMatch)("" + basePath);
32
+ var menu = _a.menu, showMenuAsIcon = _a.showMenuAsIcon, _b = _a.isContextMenu, isContextMenu = _b === void 0 ? false : _b, index = _a.index;
33
+ var _c = (0, react_1.useContext)(DynamicDesktopNavBar_1.BasePathContext), basePath = _c.basePath, activeMode = _c.activeMode;
35
34
  var activeMatch = (0, react_router_dom_1.useRouteMatch)(basePath + "/:activeKey");
36
35
  var isActive = (0, react_1.useMemo)(function () {
36
+ if (activeMode === 'BY_CLICK') {
37
+ return false;
38
+ }
37
39
  return (activeMatch === null || activeMatch === void 0 ? void 0 : activeMatch.params.activeKey) === menu.pAppCode;
38
- }, [match, activeMatch]);
40
+ }, [activeMode, menu, activeMatch]);
39
41
  if (showMenuAsIcon) {
40
42
  if (menu.iconSrc) {
41
- return react_1.default.createElement(ImageIconNav_1.default, { to: "/" + menu.pAppCode, iconSrc: menu.iconSrc, openNewTab: false });
43
+ return (react_1.default.createElement(ImageIconNav_1.default, { to: basePath + "/" + menu.pAppCode, iconSrc: menu.iconSrc, openNewTab: false }));
42
44
  }
43
45
  if (menu.iconName) {
44
- return react_1.default.createElement(IconNav_1.default, { to: "/" + menu.pAppCode, iconName: menu.iconName });
46
+ return (react_1.default.createElement(IconNav_1.default, { to: basePath + "/" + menu.pAppCode, iconName: menu.iconName, openNewTab: false }));
45
47
  }
46
48
  }
47
- return (react_1.default.createElement(TextLabelNav_1.default, { isActive: isActive, preventLineChange: true, openNewTab: false, to: "/" + menu.pAppCode, text: menu.name }));
49
+ return isContextMenu ? (react_1.default.createElement(Navigations_1.ContextTextLabelNav, { isActive: isActive, preventLineChange: true, openNewTab: false, to: basePath + "/" + menu.pAppCode, text: menu.name })) : (react_1.default.createElement(Navigations_1.TextLabelNav, { isActive: isActive, preventLineChange: true, openNewTab: false, to: basePath + "/" + menu.pAppCode, text: menu.name }));
48
50
  }
49
51
  exports.default = PAppMenuItemNav;
@@ -6,6 +6,8 @@ declare type WithRequired<T, K extends keyof T> = T & {
6
6
  declare type Props = {
7
7
  menu: WithRequired<ParsedNode, 'conversionLinkSrc'>;
8
8
  showMenuAsIcon?: boolean;
9
+ isContextMenu?: boolean;
10
+ openNewTab: boolean;
9
11
  };
10
- declare function WebMenuItemNav({ menu, showMenuAsIcon }: Props): JSX.Element;
12
+ declare function WebMenuItemNav({ menu, showMenuAsIcon, isContextMenu, openNewTab }: Props): JSX.Element;
11
13
  export default WebMenuItemNav;
@@ -4,19 +4,19 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  var react_1 = __importDefault(require("react"));
7
- var TextLabelNav_1 = __importDefault(require("../../../../../../common/components/Navigations/TextLabelNav"));
7
+ var Navigations_1 = require("../../../../../../common/components/Navigations");
8
8
  var IconNav_1 = __importDefault(require("../../IconNav"));
9
9
  var ImageIconNav_1 = __importDefault(require("../../ImageIconNav"));
10
10
  function WebMenuItemNav(_a) {
11
- var menu = _a.menu, showMenuAsIcon = _a.showMenuAsIcon;
11
+ var menu = _a.menu, showMenuAsIcon = _a.showMenuAsIcon, isContextMenu = _a.isContextMenu, openNewTab = _a.openNewTab;
12
12
  if (showMenuAsIcon) {
13
13
  if (menu.iconSrc) {
14
- return react_1.default.createElement(ImageIconNav_1.default, { to: menu.conversionLinkSrc, iconSrc: menu.iconSrc, openNewTab: true });
14
+ return (react_1.default.createElement(ImageIconNav_1.default, { to: menu.conversionLinkSrc, iconSrc: menu.iconSrc, openNewTab: openNewTab }));
15
15
  }
16
16
  if (menu.iconName) {
17
- return react_1.default.createElement(IconNav_1.default, { to: "/" + menu.pAppCode, iconName: menu.iconName });
17
+ return (react_1.default.createElement(IconNav_1.default, { to: menu.conversionLinkSrc, iconName: menu.iconName, openNewTab: openNewTab }));
18
18
  }
19
19
  }
20
- return react_1.default.createElement(TextLabelNav_1.default, { preventLineChange: true, openNewTab: true, to: menu.conversionLinkSrc, text: menu.name });
20
+ return isContextMenu ? (react_1.default.createElement(Navigations_1.ContextTextLabelNav, { preventLineChange: true, openNewTab: openNewTab, to: menu.conversionLinkSrc, text: menu.name })) : (react_1.default.createElement(Navigations_1.TextLabelNav, { preventLineChange: true, openNewTab: openNewTab, to: menu.conversionLinkSrc, text: menu.name }));
21
21
  }
22
22
  exports.default = WebMenuItemNav;
@@ -1 +1,2 @@
1
1
  export { default as DynamicDesktopNavBar } from './DynamicDesktopNavBar';
2
+ export { DynamicDesktopNavBarTemplates } from './templates';
@@ -3,6 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.DynamicDesktopNavBar = void 0;
6
+ exports.DynamicDesktopNavBarTemplates = exports.DynamicDesktopNavBar = void 0;
7
7
  var DynamicDesktopNavBar_1 = require("./DynamicDesktopNavBar");
8
8
  Object.defineProperty(exports, "DynamicDesktopNavBar", { enumerable: true, get: function () { return __importDefault(DynamicDesktopNavBar_1).default; } });
9
+ var templates_1 = require("./templates");
10
+ Object.defineProperty(exports, "DynamicDesktopNavBarTemplates", { enumerable: true, get: function () { return templates_1.DynamicDesktopNavBarTemplates; } });
@@ -0,0 +1,16 @@
1
+ export declare type ActiveModeTypes = 'BY_URL' | 'BY_CLICK';
2
+ declare type ActionType = {
3
+ type: 'INTERNAL_CLICKED';
4
+ payload: {
5
+ clickedURL: string;
6
+ };
7
+ } | {
8
+ type: 'URL_CHANGED';
9
+ };
10
+ declare type DefaultValueState = {
11
+ mode: ActiveModeTypes;
12
+ clickedURL: string;
13
+ };
14
+ export declare const defaultValue: DefaultValueState;
15
+ export default function reducer(state: DefaultValueState, action: ActionType): DefaultValueState;
16
+ export {};
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defaultValue = void 0;
4
+ exports.defaultValue = { mode: 'BY_URL', clickedURL: '' };
5
+ function reducer(state, action) {
6
+ switch (action.type) {
7
+ case 'INTERNAL_CLICKED': {
8
+ return {
9
+ mode: 'BY_CLICK',
10
+ clickedURL: action.payload.clickedURL
11
+ };
12
+ }
13
+ case 'URL_CHANGED': {
14
+ return {
15
+ mode: 'BY_URL',
16
+ clickedURL: ''
17
+ };
18
+ }
19
+ default:
20
+ return exports.defaultValue;
21
+ }
22
+ }
23
+ exports.default = reducer;