@daoyi/nmtl-ui 2.0.1-beta.14 → 2.0.1-beta.141

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 (112) hide show
  1. package/README.md +45 -45
  2. package/lib/components/Autocomplete-e40d7145.js +494 -0
  3. package/lib/components/Autocomplete.js +20 -1
  4. package/lib/components/Avatar.js +59 -1
  5. package/lib/components/BackTop.js +124 -1
  6. package/lib/components/BarChart.js +764 -1
  7. package/lib/components/Breadcrumbs.js +146 -1
  8. package/lib/components/Button-8cf35bc0.js +114 -0
  9. package/lib/components/Button.js +7 -1
  10. package/lib/components/Carousel.js +4654 -1
  11. package/lib/components/Checkbox.js +37 -1
  12. package/lib/components/CollapseContent.js +235 -1
  13. package/lib/components/ContactModal-af7fa280.js +12295 -0
  14. package/lib/components/ContactModal.js +24 -3
  15. package/lib/components/Drawer-b770014f.js +247 -0
  16. package/lib/components/Drawer.js +18 -1
  17. package/lib/components/Dropdown.js +134 -1
  18. package/lib/components/Empty-48685dd0.js +46 -0
  19. package/lib/components/Empty.js +5 -1
  20. package/lib/components/ExportButton.js +128 -1
  21. package/lib/components/ExtraTools-c46c1965.js +3676 -0
  22. package/lib/components/ExtraTools.js +11 -22
  23. package/lib/components/Filter.js +821 -12
  24. package/lib/components/Footer.js +317 -1
  25. package/lib/components/ForwardLink-2905563c.js +184 -0
  26. package/lib/components/ForwardLink.js +10 -0
  27. package/lib/components/Header.js +267 -1
  28. package/lib/components/Image.js +61 -1
  29. package/lib/components/Input.js +89 -1
  30. package/lib/components/InputMethod.js +33937 -10
  31. package/lib/components/KeywordSearch-4e621ded.js +156 -0
  32. package/lib/components/KeywordSearch.js +22 -1
  33. package/lib/components/KeywordTicker.js +224 -1
  34. package/lib/components/Keywords.js +383 -1
  35. package/lib/components/Loading.js +32 -1
  36. package/lib/components/MUITheme.js +2657 -1
  37. package/lib/components/Modal-aa77d4d8.js +171 -0
  38. package/lib/components/Modal.js +11 -1
  39. package/lib/components/MoreButton-0b5aaef3.js +148 -0
  40. package/lib/components/MoreButton.js +8 -1
  41. package/lib/components/Pagination.js +3702 -0
  42. package/lib/components/Radio.js +83 -1
  43. package/lib/components/SNA.js +1755 -22
  44. package/lib/components/SegmentedControl-804da0a6.js +113 -0
  45. package/lib/components/SegmentedControl.js +11 -0
  46. package/lib/components/Select-979f7e73.js +189 -0
  47. package/lib/components/Select.js +14 -1
  48. package/lib/components/Spin-07679812.js +79 -0
  49. package/lib/components/Spin.js +7 -1
  50. package/lib/components/Table.js +51 -1
  51. package/lib/components/Tooltip-bbbaa9c7.js +70 -0
  52. package/lib/components/Tooltip.js +7 -1
  53. package/lib/components/_commonjsHelpers-70de2c37.js +28 -0
  54. package/lib/components/_rollupPluginBabelHelpers-a52356f6.js +142 -0
  55. package/lib/components/createSvgIcon-370e163a.js +576 -0
  56. package/lib/components/dataExport-a9e3fae1.js +91 -0
  57. package/lib/components/debounce-127da66c.js +355 -0
  58. package/lib/components/defaultTheme-c5dd0f64.js +1661 -0
  59. package/lib/components/globalConfig.js +474 -0
  60. package/lib/components/hoist-non-react-statics.cjs-3f408ad2.js +105 -0
  61. package/lib/components/index-c33afcb5.js +61 -0
  62. package/lib/components/index-ff95f719.js +481 -0
  63. package/lib/components/isObjectLike-e111475d.js +190 -0
  64. package/lib/components/style-inject.es-1f59c1d0.js +28 -1
  65. package/lib/components/toConsumableArray-c268c112.js +19 -0
  66. package/lib/components/transform-849a452c.js +5475 -0
  67. package/lib/components/useTheme-98b6cf17.js +11 -0
  68. package/lib/components/withTheme-3486f38b.js +6 -0
  69. package/lib/configs/config.selector.js +151 -0
  70. package/lib/configs/index.d.ts +1 -0
  71. package/lib/configs/index.js +1 -0
  72. package/lib/index.d.ts +6 -1
  73. package/lib/index.js +6 -1
  74. package/lib/utils/_rollupPluginBabelHelpers-9802e640.js +121 -0
  75. package/lib/utils/arrayMerge.js +4953 -1
  76. package/lib/utils/chunkArray.js +15 -1
  77. package/lib/utils/convert2HtmlEntities.js +57 -1
  78. package/lib/utils/domToImage.js +802 -1
  79. package/lib/utils/downloadGephi.js +106 -1
  80. package/lib/utils/exportXlsx.js +221 -1
  81. package/lib/utils/historyAppendSearch.js +502 -1
  82. package/lib/utils/index.d.ts +2 -0
  83. package/lib/utils/index.js +2 -0
  84. package/lib/utils/isDevelopMode.js +5 -1
  85. package/lib/utils/newWindowHint-72ebfe3b.js +53 -0
  86. package/lib/utils/parseYMD.js +36 -1
  87. package/lib/utils/prepareTimelineData.js +100 -0
  88. package/lib/utils/removeDuplicateItem.js +11 -1
  89. package/lib/utils/sendEmail.js +39 -1
  90. package/lib/utils/snaDefine-6a2bcd94.js +5 -0
  91. package/lib/utils/snaDefine.js +1 -1
  92. package/lib/utils/snaPreProcess.js +84 -1
  93. package/lib/utils/syncTimelineA11y.js +327 -0
  94. package/package.json +141 -128
  95. package/lib/components/Empty-54b79907.js +0 -1
  96. package/lib/components/KeywordSearch-5a393f12.js +0 -1
  97. package/lib/components/Select-f2441b83.js +0 -1
  98. package/lib/components/_rollupPluginBabelHelpers-1b8c042f.js +0 -1
  99. package/lib/components/_rollupPluginBabelHelpers-ec4e2a53.js +0 -1
  100. package/lib/components/createSvgIcon-62b64929.js +0 -1
  101. package/lib/components/createSvgIcon-e24792d4.js +0 -1
  102. package/lib/components/createTheme-7fffa109.js +0 -1
  103. package/lib/components/dataExport-9fccd4f0.js +0 -1
  104. package/lib/components/debounce-c993109b.js +0 -1
  105. package/lib/components/hoist-non-react-statics.cjs-d6a9befd.js +0 -1
  106. package/lib/components/index-11391ca3.js +0 -7
  107. package/lib/components/index-b2745105.js +0 -7
  108. package/lib/components/isObjectLike-2f1983fe.js +0 -1
  109. package/lib/components/style-inject.es-c875d022.js +0 -1
  110. package/lib/components/transform-95ae0119.js +0 -1
  111. package/lib/utils/_commonjsHelpers-e2cda605.js +0 -1
  112. package/lib/utils/_rollupPluginBabelHelpers-928a52ce.js +0 -1
@@ -0,0 +1,171 @@
1
+ import React__default, { useRef } from 'react';
2
+ import { c as classNames } from './index-c33afcb5.js';
3
+ import PropTypes from 'prop-types';
4
+ import { Dialog, DialogTitle, IconButton, DialogContent, DialogActions, CircularProgress } from '@material-ui/core';
5
+ import { CloseSharp } from '@material-ui/icons';
6
+ import { B as Button } from './Button-8cf35bc0.js';
7
+ import { S as Spin } from './Spin-07679812.js';
8
+ import { getIntl } from './globalConfig';
9
+ import { s as styleInject } from './style-inject.es-1f59c1d0.js';
10
+
11
+ var css_248z = ".modal__title h2 {\n display: flex;\n align-items: center;\n}\n.modal__title__text {\n flex: 1;\n font-size: 1rem;\n padding: 8px 0;\n color: inherit;\n}\n.modal__title__close {\n cursor: pointer;\n color: inherit;\n}\n.modal--transparent .MuiPaper-root {\n background: transparent !important;\n box-shadow: none;\n}\n.modal--transparent .modal__title {\n background: transparent !important;\n}";
12
+ styleInject(css_248z);
13
+
14
+ /* 每個 Modal 實例需要唯一 id,才能把標題和 role="dialog" 綁起來 */
15
+ var modalSeq = 0;
16
+
17
+ /* WCAG 2.4.3 對話框關閉後,焦點要回到開啟它的按鈕。MUI Dialog 會還給「開啟當下」的那個 DOM 元素,
18
+ 但開啟期間若頁面資料才回來、版面重排,觸發按鈕會被換成新的元素(例:主站版本頁「我要補充資料」
19
+ 依有無書影放在不同位置),舊元素已不在頁面上,焦點就掉回 body。
20
+ 因此開啟時記下觸發元素的特徵,關閉後若舊元素已脫離頁面,找特徵相同且看得到的元素補還焦點。 */
21
+ var describeTrigger = function describeTrigger(el) {
22
+ if (!el || el === document.body || el === document.documentElement) return null;
23
+ return {
24
+ el: el,
25
+ tag: el.tagName,
26
+ label: el.getAttribute('aria-label'),
27
+ text: (el.textContent || '').trim()
28
+ };
29
+ };
30
+ var findTrigger = function findTrigger(trigger) {
31
+ if (!trigger) return null;
32
+ if (trigger.el.isConnected) return trigger.el;
33
+ var candidates = Array.from(document.getElementsByTagName(trigger.tag));
34
+ return candidates.find(function (el) {
35
+ return el.offsetParent !== null && el.getAttribute('aria-label') === trigger.label && (el.textContent || '').trim() === trigger.text;
36
+ }) || null;
37
+ };
38
+ var Modal = function Modal(props) {
39
+ var className = props.className,
40
+ title = props.title,
41
+ children = props.children,
42
+ footer = props.footer,
43
+ cancelText = props.cancelText,
44
+ okText = props.okText,
45
+ visible = props.visible,
46
+ onOk = props.onOk,
47
+ onCancel = props.onCancel;
48
+ var closable = props.closable,
49
+ loading = props.loading,
50
+ fullWidth = props.fullWidth,
51
+ transparent = props.transparent;
52
+ var endIcon = loading && /*#__PURE__*/React__default.createElement(CircularProgress, {
53
+ size: 14
54
+ });
55
+
56
+ /* WCAG 4.1.2 對話框需有可及名稱。MUI Dialog 只把 aria-labelledby 轉給
57
+ role="dialog" 的那層 Paper;aria-label 會被歸進 ...other 掛到外層 Modal
58
+ 容器上,讀屏開啟時等於沒名字,故改用 aria-labelledby 指向標題文字。 */
59
+ var titleIdRef = useRef(null);
60
+ if (!titleIdRef.current) {
61
+ modalSeq += 1;
62
+ titleIdRef.current = "nmtl-modal-".concat(modalSeq, "-title");
63
+ }
64
+ var titleId = titleIdRef.current;
65
+
66
+ /* 在 render 階段(MUI 把焦點移進對話框之前)記下觸發元素 */
67
+ var triggerRef = useRef(null);
68
+ var wasVisibleRef = useRef(false);
69
+ if (visible && !wasVisibleRef.current && typeof document !== 'undefined') {
70
+ triggerRef.current = describeTrigger(document.activeElement);
71
+ }
72
+ wasVisibleRef.current = Boolean(visible);
73
+
74
+ /* onExited 觸發時對話框還沒卸載、焦點仍在對話框內;等下一輪卸載後再判斷焦點是否掉回 body */
75
+ var restoreFocus = function restoreFocus() {
76
+ setTimeout(function () {
77
+ var active = document.activeElement;
78
+ /* MUI 已成功還原(焦點不在 body)就不動 */
79
+ if (active && active !== document.body) return;
80
+ var target = findTrigger(triggerRef.current);
81
+ if (target) target.focus();
82
+ }, 0);
83
+ };
84
+ return /*#__PURE__*/React__default.createElement(Dialog, {
85
+ className: classNames('modal', {
86
+ 'modal--transparent': transparent
87
+ }, className),
88
+ fullWidth: fullWidth,
89
+ open: visible || false,
90
+ onClose: function onClose() {
91
+ return closable && onCancel();
92
+ },
93
+ "aria-labelledby": title ? titleId : undefined,
94
+ TransitionProps: {
95
+ onExited: restoreFocus
96
+ }
97
+ }, /*#__PURE__*/React__default.createElement(DialogTitle, {
98
+ className: "modal__title"
99
+ }, /*#__PURE__*/React__default.createElement("span", {
100
+ id: titleId,
101
+ className: "modal__title__text"
102
+ }, title), closable && /*#__PURE__*/React__default.createElement(IconButton, {
103
+ autoFocus: true,
104
+ "aria-label": getIntl().formatMessage({
105
+ id: 'aria.modal.close'
106
+ }),
107
+ onClick: onCancel
108
+ }, /*#__PURE__*/React__default.createElement(CloseSharp, {
109
+ className: "modal__title__close",
110
+ "aria-hidden": "true"
111
+ }))), /*#__PURE__*/React__default.createElement(DialogContent, null, /*#__PURE__*/React__default.createElement(Spin, {
112
+ spinning: loading
113
+ }, children)), footer !== null && /*#__PURE__*/React__default.createElement(DialogActions, null, footer === undefined && (cancelText || okText) ? /*#__PURE__*/React__default.createElement(React__default.Fragment, null, cancelText && /*#__PURE__*/React__default.createElement(Button, {
114
+ onClick: onCancel,
115
+ color: "default",
116
+ endIcon: endIcon,
117
+ disabled: loading
118
+ }, cancelText), okText && /*#__PURE__*/React__default.createElement(Button, {
119
+ onClick: onOk,
120
+ color: "primary",
121
+ endIcon: endIcon,
122
+ disabled: loading
123
+ }, okText)) : footer));
124
+ };
125
+ Modal.defaultProps = {
126
+ className: undefined,
127
+ loading: undefined,
128
+ transparent: undefined,
129
+ closable: true,
130
+ title: undefined,
131
+ children: undefined,
132
+ fullWidth: undefined,
133
+ footer: undefined,
134
+ cancelText: 'Cancel',
135
+ okText: 'Ok',
136
+ visible: undefined,
137
+ onOk: function onOk() {},
138
+ onCancel: function onCancel() {}
139
+ };
140
+
141
+ /* Write props detail information and 'npm run updateStory' will help you generate stories's argTypes */
142
+ Modal.propTypes = {
143
+ /** Css Name */
144
+ className: PropTypes.string,
145
+ /** 是否正在載入中 */
146
+ loading: PropTypes.bool,
147
+ /** 是否正透明模式 */
148
+ transparent: PropTypes.bool,
149
+ /** 是否可以取消關閉(含close icon) */
150
+ closable: PropTypes.bool,
151
+ /** Modal Title */
152
+ title: PropTypes.node,
153
+ /** Modal 內容 */
154
+ children: PropTypes.node,
155
+ /** 版面是否滿版 */
156
+ fullWidth: PropTypes.bool,
157
+ /** Footer */
158
+ footer: PropTypes.node,
159
+ /** 取消文字 */
160
+ cancelText: PropTypes.string,
161
+ /** 確認文字 */
162
+ okText: PropTypes.string,
163
+ /** 是否出現 */
164
+ visible: PropTypes.bool,
165
+ /** 完成的callback */
166
+ onOk: PropTypes.func,
167
+ /** 關閉Modal */
168
+ onCancel: PropTypes.func
169
+ };
170
+
171
+ export { Modal as M };
@@ -1 +1,11 @@
1
- import e from"react";import{c as n}from"./index-b2745105.js";import t from"prop-types";import{Dialog as o,DialogTitle as l,IconButton as a,DialogContent as r,DialogActions as i,CircularProgress as c}from"@material-ui/core";import{CloseSharp as s}from"@material-ui/icons";import m from"./Button.js";import d from"./Spin.js";import{s as p}from"./style-inject.es-1f59c1d0.js";p(".modal__title h2 {\n display: flex;\n align-items: center; }\n\n.modal__title__text {\n flex: 1;\n font-size: 16px;\n padding: 8px 0;\n color: white; }\n\n.modal__title__close {\n cursor: pointer;\n color: white; }\n\n.modal--transparent .MuiPaper-root {\n background: transparent !important;\n box-shadow: none; }\n\n.modal--transparent .modal__title {\n background: transparent !important; }\n");var f=function(t){var p=t.className,f=t.title,u=t.children,_=t.footer,b=t.cancelText,x=t.okText,v=t.visible,g=t.onOk,k=t.onCancel,E=t.closable,h=t.loading,C=t.fullWidth,N=t.transparent,T=h&&e.createElement(c,{size:14});return e.createElement(o,{className:n("modal",{"modal--transparent":N},p),fullWidth:C,open:v||!1,onClose:function(){return E&&k()}},e.createElement(l,{className:"modal__title"},e.createElement("span",{className:"modal__title__text"},f),E&&e.createElement(a,{onClick:k},e.createElement(s,{className:"modal__title__close"}))),e.createElement(r,null,e.createElement(d,{spinning:h},u)),null!==_&&e.createElement(i,null,void 0===_&&(b||x)?e.createElement(e.Fragment,null,b&&e.createElement(m,{onClick:k,color:"default",endIcon:T,disabled:h},b),x&&e.createElement(m,{onClick:g,color:"primary",endIcon:T,disabled:h,autoFocus:!0},x)):_))};f.defaultProps={className:void 0,loading:void 0,transparent:void 0,closable:!0,title:void 0,children:void 0,fullWidth:void 0,footer:void 0,cancelText:"Cancel",okText:"Ok",visible:void 0,onOk:function(){},onCancel:function(){}},f.propTypes={className:t.string,loading:t.bool,transparent:t.bool,closable:t.bool,title:t.node,children:t.node,fullWidth:t.bool,footer:t.node,cancelText:t.string,okText:t.string,visible:t.bool,onOk:t.func,onCancel:t.func};export{f as default};
1
+ export { M as default } from './Modal-aa77d4d8.js';
2
+ import 'react';
3
+ import './index-c33afcb5.js';
4
+ import 'prop-types';
5
+ import '@material-ui/core';
6
+ import '@material-ui/icons';
7
+ import './Button-8cf35bc0.js';
8
+ import './_rollupPluginBabelHelpers-a52356f6.js';
9
+ import './style-inject.es-1f59c1d0.js';
10
+ import './Spin-07679812.js';
11
+ import './globalConfig';
@@ -0,0 +1,148 @@
1
+ import { a as _slicedToArray } from './_rollupPluginBabelHelpers-a52356f6.js';
2
+ import React__default, { useState } from 'react';
3
+ import PropTypes from 'prop-types';
4
+ import { c as classNames } from './index-c33afcb5.js';
5
+ import { ExpandLess, ExpandMore } from '@material-ui/icons';
6
+ import { getIntl } from './globalConfig';
7
+ import { s as styleInject } from './style-inject.es-1f59c1d0.js';
8
+
9
+ var css_248z = ".moreButton {\n width: -moz-fit-content;\n width: fit-content;\n display: flex;\n align-items: center;\n position: relative;\n margin: 1rem 0rem;\n border-radius: 8px;\n padding: 1rem 2.5rem;\n -webkit-user-select: none;\n user-select: none;\n cursor: pointer;\n}\n.moreButton__mask {\n transition: all 0.3s ease-in-out;\n position: absolute;\n left: 0;\n top: 0;\n border-radius: 8px;\n width: 100%;\n height: 100%;\n opacity: 0;\n}\n.moreButton:hover .moreButton__mask {\n opacity: 1;\n}\n.moreButton--shadow {\n transition: all 0.3s ease-in-out;\n border: 3px solid #ffffff;\n position: relative;\n left: 0px;\n top: 0px;\n}\n.moreButton--shadow:hover {\n box-shadow: initial !important;\n left: 3px;\n top: 3px;\n}\n.moreButton--small {\n border: 0;\n padding: 0;\n left: 0px !important;\n top: 0px !important;\n background: transparent !important;\n box-shadow: initial !important;\n}\n.moreButton--small .moreButton__mask {\n opacity: 0 !important;\n}\n.moreButton__icon {\n display: flex;\n z-index: 1;\n}\n.moreButton__icon--small {\n font-size: 1.5rem;\n border-radius: 45px;\n color: white !important;\n}\n.moreButton__text {\n z-index: 1;\n font-size: 1.5rem;\n line-height: 1.5rem;\n transition: color 0.3s ease-in-out;\n}\n.moreButton__text--small {\n margin-left: 0.75rem;\n font-size: 1.5rem;\n color: #0c2a4d;\n}\n.moreButton__text--small:hover {\n text-decoration: underline;\n}";
10
+ styleInject(css_248z);
11
+
12
+ var MoreButton = function MoreButton(props) {
13
+ var primaryColor = props.primaryColor,
14
+ secondaryColor = props.secondaryColor,
15
+ shadowColor = props.shadowColor;
16
+ var small = props.small,
17
+ enableShadow = props.enableShadow,
18
+ customExpandIcon = props.customExpandIcon;
19
+ var expand = props.expand,
20
+ setExpand = props.setExpand,
21
+ onClick = props.onClick,
22
+ formatMessage = props.formatMessage;
23
+ /* WCAG 4.1.3 點選後結果在原頁面更新,需播報(實測回饋 R9) */
24
+ var _useState = useState(''),
25
+ _useState2 = _slicedToArray(_useState, 2),
26
+ liveMessage = _useState2[0],
27
+ setLiveMessage = _useState2[1];
28
+ var smallIcon = expand ? /*#__PURE__*/React__default.createElement(ExpandLess, {
29
+ className: "moreButton__icon--small",
30
+ style: {
31
+ background: shadowColor || primaryColor
32
+ }
33
+ }) : /*#__PURE__*/React__default.createElement(ExpandMore, {
34
+ className: "moreButton__icon--small",
35
+ style: {
36
+ background: shadowColor || primaryColor
37
+ }
38
+ });
39
+ var smallMessage = expand ? 'common.show.less' : 'common.show.more';
40
+ var message = small ? smallMessage : 'common.watch.more';
41
+ var largeIcon = customExpandIcon && /*#__PURE__*/React__default.createElement("img", {
42
+ src: customExpandIcon,
43
+ alt: "",
44
+ "aria-hidden": "true"
45
+ });
46
+ var icon = small ? smallIcon : largeIcon;
47
+ var handleAction = function handleAction() {
48
+ setExpand(!expand);
49
+ onClick();
50
+ setLiveMessage(getIntl().formatMessage({
51
+ id: expand ? 'aria.moreButton.collapsed' : 'aria.moreButton.loaded'
52
+ }));
53
+ setTimeout(function () {
54
+ return setLiveMessage('');
55
+ }, 3000);
56
+ };
57
+ var messageText = formatMessage ? formatMessage({
58
+ id: message
59
+ }) : message;
60
+ return (
61
+ /*#__PURE__*/
62
+ /* WCAG 2.1.1/4.1.2 看更多為互動元件:role="button" + tabIndex + 鍵盤操作,
63
+ 報讀補「點選後載入更多結果」預先提示、aria-expanded 表達展開狀態 */
64
+ React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("div", {
65
+ "aria-live": "polite",
66
+ "aria-atomic": "true",
67
+ role: "status",
68
+ className: "visually-hidden"
69
+ }, liveMessage), /*#__PURE__*/React__default.createElement("div", {
70
+ className: classNames('moreButton', {
71
+ 'moreButton--shadow': enableShadow
72
+ }, {
73
+ 'moreButton--small': small
74
+ }),
75
+ role: "button",
76
+ tabIndex: 0,
77
+ "aria-expanded": expand,
78
+ "aria-label": "".concat(messageText).concat(getIntl().formatMessage({
79
+ id: expand ? 'aria.moreButton.hintCollapse' : 'aria.moreButton.hint'
80
+ })),
81
+ style: {
82
+ color: shadowColor || 'white',
83
+ background: primaryColor,
84
+ boxShadow: enableShadow ? "3px 3px 0 0 ".concat(shadowColor) : undefined
85
+ },
86
+ onClick: handleAction,
87
+ onKeyDown: function onKeyDown(event) {
88
+ if (event.key === 'Enter' || event.key === ' ') {
89
+ event.preventDefault();
90
+ handleAction();
91
+ }
92
+ }
93
+ }, !enableShadow && /*#__PURE__*/React__default.createElement("div", {
94
+ className: "moreButton__mask",
95
+ style: {
96
+ background: secondaryColor
97
+ }
98
+ }), /*#__PURE__*/React__default.createElement("div", {
99
+ className: "moreButton__icon"
100
+ }, icon), /*#__PURE__*/React__default.createElement("div", {
101
+ className: classNames('moreButton__text', {
102
+ 'moreButton__text--small': small
103
+ }),
104
+ style: {
105
+ color: small ? shadowColor || primaryColor : undefined,
106
+ marginLeft: icon ? '0.5rem' : undefined
107
+ }
108
+ }, messageText)))
109
+ );
110
+ };
111
+ MoreButton.defaultProps = {
112
+ primaryColor: '#271702',
113
+ // default為文學網站的主色系
114
+ secondaryColor: '#aa8859',
115
+ // default為文學網站的次色系
116
+ shadowColor: undefined,
117
+ small: false,
118
+ enableShadow: false,
119
+ expand: false,
120
+ customExpandIcon: undefined,
121
+ formatMessage: undefined,
122
+ setExpand: function setExpand() {},
123
+ onClick: function onClick() {}
124
+ };
125
+ MoreButton.propTypes = {
126
+ /** 按鈕主色系顏色 */
127
+ primaryColor: PropTypes.string,
128
+ /** 按鈕次色系顏色 */
129
+ secondaryColor: PropTypes.string,
130
+ /** 按鈕影子顏色 */
131
+ shadowColor: PropTypes.string,
132
+ /** 展開是否為小圖示 */
133
+ small: PropTypes.bool,
134
+ /** 是否啟動陰影模式 */
135
+ enableShadow: PropTypes.bool,
136
+ /** 客製化自己的大圖標 */
137
+ customExpandIcon: PropTypes.node,
138
+ /** 是否展開(僅有在small=true作動) */
139
+ expand: PropTypes.bool,
140
+ /** 語系翻譯的formateMessag(useIntl) */
141
+ formatMessage: PropTypes.func,
142
+ /** 設定是否展開 */
143
+ setExpand: PropTypes.func,
144
+ /** 點擊的callback */
145
+ onClick: PropTypes.func
146
+ };
147
+
148
+ export { MoreButton as M };
@@ -1 +1,8 @@
1
- import o from"react";import n from"prop-types";import{c as t}from"./index-11391ca3.js";import{ExpandLess as e,ExpandMore as r}from"@material-ui/icons";import{s as a}from"./style-inject.es-c875d022.js";a(".moreButton {\n width: -moz-fit-content;\n width: fit-content;\n display: flex;\n align-items: center;\n position: relative;\n margin: 1rem 0rem;\n border-radius: 8px;\n padding: 1rem 2.5rem;\n -webkit-user-select: none;\n user-select: none;\n cursor: pointer; }\n .moreButton__mask {\n transition: all 0.3s ease-in-out;\n position: absolute;\n left: 0;\n top: 0;\n border-radius: 8px;\n width: 100%;\n height: 100%;\n opacity: 0; }\n .moreButton:hover .moreButton__mask {\n opacity: 1; }\n .moreButton--shadow {\n transition: all 0.3s ease-in-out;\n border: 3px solid #ffffff;\n position: relative;\n left: 0px;\n top: 0px; }\n .moreButton--shadow:hover {\n box-shadow: initial !important;\n left: 3px;\n top: 3px; }\n .moreButton--small {\n border: 0;\n padding: 0;\n left: 0px !important;\n top: 0px !important;\n background: transparent !important;\n box-shadow: initial !important; }\n .moreButton--small .moreButton__mask {\n opacity: 0 !important; }\n .moreButton__icon {\n display: flex;\n z-index: 1; }\n .moreButton__icon--small {\n font-size: 1.5rem;\n border-radius: 45px;\n color: white !important; }\n .moreButton__text {\n z-index: 1;\n font-size: 1.5rem;\n line-height: 1.5rem;\n transition: color 0.3s ease-in-out; }\n .moreButton__text--small {\n margin-left: 0.75rem;\n font-size: 1.5rem;\n color: #0c2a4d; }\n .moreButton__text--small:hover {\n text-decoration: underline; }\n");const s=n=>{const{primaryColor:a,secondaryColor:s,shadowColor:m}=n,{small:i,enableShadow:l,customExpandIcon:c}=n,{expand:d,setExpand:p,onClick:u,formatMessage:x}=n,f=i?d?"common.show.less":"common.show.more":"common.watch.more",_=i?d?o.createElement(e,{className:"moreButton__icon--small",style:{background:m||a}}):o.createElement(r,{className:"moreButton__icon--small",style:{background:m||a}}):c&&o.createElement("img",{src:c,alt:"more"});return o.createElement("div",{className:t("moreButton",{"moreButton--shadow":l},{"moreButton--small":i}),style:{color:m||"white",background:a,boxShadow:l?`3px 3px 0 0 ${m}`:void 0},onClick:()=>{p(!d),u()}},!l&&o.createElement("div",{className:"moreButton__mask",style:{background:s}}),o.createElement("div",{className:"moreButton__icon"},_),o.createElement("div",{className:t("moreButton__text",{"moreButton__text--small":i}),style:{color:i?m||a:void 0,marginLeft:_?"0.5rem":void 0}},x?x({id:f}):f))};s.defaultProps={primaryColor:"#271702",secondaryColor:"#aa8859",shadowColor:void 0,small:!1,enableShadow:!1,expand:!1,customExpandIcon:void 0,formatMessage:void 0,setExpand:()=>{},onClick:()=>{}},s.propTypes={primaryColor:n.string,secondaryColor:n.string,shadowColor:n.string,small:n.bool,enableShadow:n.bool,customExpandIcon:n.node,expand:n.bool,formatMessage:n.func,setExpand:n.func,onClick:n.func};export{s as default};
1
+ export { M as default } from './MoreButton-0b5aaef3.js';
2
+ import './_rollupPluginBabelHelpers-a52356f6.js';
3
+ import 'react';
4
+ import 'prop-types';
5
+ import './index-c33afcb5.js';
6
+ import '@material-ui/icons';
7
+ import './globalConfig';
8
+ import './style-inject.es-1f59c1d0.js';