@mirai/ui 1.0.212 → 1.0.214

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.
@@ -18,6 +18,11 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
18
18
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
19
19
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20
20
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
21
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
22
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
23
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
24
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
25
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
21
26
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
22
27
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
23
28
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
@@ -112,10 +117,13 @@ var Modal = function Modal(_ref) {
112
117
  }, /*#__PURE__*/_react.default.createElement(_primitives.Icon, {
113
118
  value: isDesktop || title !== undefined ? _primitives.ICON.CLOSE : _primitives.ICON.EXPAND_MORE,
114
119
  className: _ModalModule.default.icon
115
- }))), children && /*#__PURE__*/_react.default.createElement(_primitives.View, {
116
- role: "modal-content",
117
- wide: true
118
- }, children))), document.body);
120
+ }))), _react.default.Children.map(children, function (child, index) {
121
+ return !child || child === null ? null : /*#__PURE__*/_react.default.cloneElement(child, _objectSpread(_objectSpread({
122
+ key: index
123
+ }, child.props), {}, {
124
+ role: 'modal-content'
125
+ }));
126
+ }))), document.body);
119
127
  };
120
128
  exports.Modal = Modal;
121
129
  Modal.propTypes = {
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.js","names":["Modal","blur","children","fit","overflow","portal","preventDefault","title","visible","onBack","onClose","onOverflow","others","useDevice","isDesktop","height","ref","useRef","useState","dataset","setDataset","useEffect","document","body","miraiModal","undefined","handleOverflow","event","target","current","contains","renderer","IS_JEST","jsx","ReactDOM","createPortal","testId","role","styles","style","container","modal","calcWidth","className","header","ICON","LEFT","icon","left","right","button","CLOSE","EXPAND_MORE","propTypes","PropTypes","bool","node","string","func"],"sources":["../../../src/components/Modal/Modal.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\nimport ReactDOM from 'react-dom';\n\nimport { Button } from '../../components';\nimport { IS_JEST, styles } from '../../helpers';\nimport { useDevice } from '../../hooks';\nimport { Icon, ICON, Pressable, Text, View } from '../../primitives';\nimport style from './Modal.module.css';\n\nconst Modal = ({\n blur = false,\n children,\n fit = false,\n overflow = true,\n portal = false,\n preventDefault = true,\n title,\n visible,\n onBack,\n onClose,\n onOverflow,\n ...others\n}) => {\n const { isDesktop, height } = useDevice();\n const ref = useRef();\n\n const [dataset, setDataset] = useState();\n\n useEffect(() => {\n if (visible && !dataset) {\n setDataset(true);\n document.body.dataset.miraiModal = true;\n }\n\n return () => {\n if (visible && dataset) {\n setDataset(undefined);\n delete document.body.dataset.miraiModal;\n }\n };\n }, [dataset, visible]);\n\n const handleOverflow = (event) => {\n const { target } = event;\n onOverflow && !ref.current?.contains(target) && onOverflow(event);\n };\n\n const renderer = IS_JEST || !portal ? (jsx) => jsx : ReactDOM.createPortal;\n\n const { testId } = others;\n\n return renderer(\n <Pressable\n preventDefault={preventDefault}\n role={others.role ? `${others.role}-overflow` : 'modal-overflow'}\n onPress={visible && overflow ? handleOverflow : undefined}\n className={styles(\n style.container,\n overflow && style.overflow,\n overflow && blur && style.blur,\n visible && style.visible,\n onOverflow && style.onOverflow,\n )}\n style={{ height }}\n testId={testId ? `${testId}-overflow` : undefined}\n >\n <View\n {...others}\n fit\n ref={ref}\n role={others.role || 'modal'}\n className={styles(style.modal, !fit && style.calcWidth, visible && style.visible, others.className)}\n >\n {(title || onBack || onClose) && (\n <View forceRow className={style.header}>\n {onBack && (\n <Button transparent small squared onPress={onBack} testId={testId ? `${testId}-button-back` : undefined}>\n <Icon value={ICON.LEFT} className={style.icon} />\n </Button>\n )}\n {title && (\n <Text headline className={styles(style.title, !onBack && style.left, !onClose && style.right)}>\n {title}\n </Text>\n )}\n {onClose && (\n <Button\n transparent\n small\n squared\n onPress={onClose}\n testId={testId ? `${testId}-button-close` : undefined}\n className={style.button}\n >\n <Icon value={isDesktop || title !== undefined ? ICON.CLOSE : ICON.EXPAND_MORE} className={style.icon} />\n </Button>\n )}\n </View>\n )}\n {children && (\n <View role=\"modal-content\" wide>\n {children}\n </View>\n )}\n </View>\n </Pressable>,\n document.body,\n );\n};\n\nModal.propTypes = {\n blur: PropTypes.bool,\n children: PropTypes.node,\n fit: PropTypes.bool,\n overflow: PropTypes.bool,\n portal: PropTypes.bool,\n preventDefault: PropTypes.bool,\n title: PropTypes.string,\n visible: PropTypes.bool,\n onBack: PropTypes.func,\n onClose: PropTypes.func,\n onOverflow: PropTypes.func,\n};\n\nexport { Modal };\n"],"mappings":"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"}
1
+ {"version":3,"file":"Modal.js","names":["Modal","blur","children","fit","overflow","portal","preventDefault","title","visible","onBack","onClose","onOverflow","others","useDevice","isDesktop","height","ref","useRef","useState","dataset","setDataset","useEffect","document","body","miraiModal","undefined","handleOverflow","event","target","current","contains","renderer","IS_JEST","jsx","ReactDOM","createPortal","testId","role","styles","style","container","modal","calcWidth","className","header","ICON","LEFT","icon","left","right","button","CLOSE","EXPAND_MORE","React","Children","map","child","index","cloneElement","key","props","propTypes","PropTypes","bool","node","string","func"],"sources":["../../../src/components/Modal/Modal.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\nimport ReactDOM from 'react-dom';\n\nimport { Button } from '../../components';\nimport { IS_JEST, styles } from '../../helpers';\nimport { useDevice } from '../../hooks';\nimport { Icon, ICON, Pressable, Text, View } from '../../primitives';\nimport style from './Modal.module.css';\n\nconst Modal = ({\n blur = false,\n children,\n fit = false,\n overflow = true,\n portal = false,\n preventDefault = true,\n title,\n visible,\n onBack,\n onClose,\n onOverflow,\n ...others\n}) => {\n const { isDesktop, height } = useDevice();\n const ref = useRef();\n\n const [dataset, setDataset] = useState();\n\n useEffect(() => {\n if (visible && !dataset) {\n setDataset(true);\n document.body.dataset.miraiModal = true;\n }\n\n return () => {\n if (visible && dataset) {\n setDataset(undefined);\n delete document.body.dataset.miraiModal;\n }\n };\n }, [dataset, visible]);\n\n const handleOverflow = (event) => {\n const { target } = event;\n onOverflow && !ref.current?.contains(target) && onOverflow(event);\n };\n\n const renderer = IS_JEST || !portal ? (jsx) => jsx : ReactDOM.createPortal;\n\n const { testId } = others;\n\n return renderer(\n <Pressable\n preventDefault={preventDefault}\n role={others.role ? `${others.role}-overflow` : 'modal-overflow'}\n onPress={visible && overflow ? handleOverflow : undefined}\n className={styles(\n style.container,\n overflow && style.overflow,\n overflow && blur && style.blur,\n visible && style.visible,\n onOverflow && style.onOverflow,\n )}\n style={{ height }}\n testId={testId ? `${testId}-overflow` : undefined}\n >\n <View\n {...others}\n fit\n ref={ref}\n role={others.role || 'modal'}\n className={styles(style.modal, !fit && style.calcWidth, visible && style.visible, others.className)}\n >\n {(title || onBack || onClose) && (\n <View forceRow className={style.header}>\n {onBack && (\n <Button transparent small squared onPress={onBack} testId={testId ? `${testId}-button-back` : undefined}>\n <Icon value={ICON.LEFT} className={style.icon} />\n </Button>\n )}\n {title && (\n <Text headline className={styles(style.title, !onBack && style.left, !onClose && style.right)}>\n {title}\n </Text>\n )}\n {onClose && (\n <Button\n transparent\n small\n squared\n onPress={onClose}\n testId={testId ? `${testId}-button-close` : undefined}\n className={style.button}\n >\n <Icon value={isDesktop || title !== undefined ? ICON.CLOSE : ICON.EXPAND_MORE} className={style.icon} />\n </Button>\n )}\n </View>\n )}\n\n {React.Children.map(children, (child, index) =>\n !child || child === null\n ? null\n : React.cloneElement(child, { key: index, ...child.props, role: 'modal-content' }),\n )}\n </View>\n </Pressable>,\n document.body,\n );\n};\n\nModal.propTypes = {\n blur: PropTypes.bool,\n children: PropTypes.node,\n fit: PropTypes.bool,\n overflow: PropTypes.bool,\n portal: PropTypes.bool,\n preventDefault: PropTypes.bool,\n title: PropTypes.string,\n visible: PropTypes.bool,\n onBack: PropTypes.func,\n onClose: PropTypes.func,\n onOverflow: PropTypes.func,\n};\n\nexport { Modal };\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAAuC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEvC,IAAMA,KAAK,GAAG,SAARA,KAAK,OAaL;EAAA,qBAZJC,IAAI;IAAJA,IAAI,0BAAG,KAAK;IACZC,QAAQ,QAARA,QAAQ;IAAA,gBACRC,GAAG;IAAHA,GAAG,yBAAG,KAAK;IAAA,qBACXC,QAAQ;IAARA,QAAQ,8BAAG,IAAI;IAAA,mBACfC,MAAM;IAANA,MAAM,4BAAG,KAAK;IAAA,2BACdC,cAAc;IAAdA,cAAc,oCAAG,IAAI;IACrBC,KAAK,QAALA,KAAK;IACLC,OAAO,QAAPA,OAAO;IACPC,MAAM,QAANA,MAAM;IACNC,OAAO,QAAPA,OAAO;IACPC,UAAU,QAAVA,UAAU;IACPC,MAAM;EAET,iBAA8B,IAAAC,gBAAS,GAAE;IAAjCC,SAAS,cAATA,SAAS;IAAEC,MAAM,cAANA,MAAM;EACzB,IAAMC,GAAG,GAAG,IAAAC,aAAM,GAAE;EAEpB,gBAA8B,IAAAC,eAAQ,GAAE;IAAA;IAAjCC,OAAO;IAAEC,UAAU;EAE1B,IAAAC,gBAAS,EAAC,YAAM;IACd,IAAIb,OAAO,IAAI,CAACW,OAAO,EAAE;MACvBC,UAAU,CAAC,IAAI,CAAC;MAChBE,QAAQ,CAACC,IAAI,CAACJ,OAAO,CAACK,UAAU,GAAG,IAAI;IACzC;IAEA,OAAO,YAAM;MACX,IAAIhB,OAAO,IAAIW,OAAO,EAAE;QACtBC,UAAU,CAACK,SAAS,CAAC;QACrB,OAAOH,QAAQ,CAACC,IAAI,CAACJ,OAAO,CAACK,UAAU;MACzC;IACF,CAAC;EACH,CAAC,EAAE,CAACL,OAAO,EAAEX,OAAO,CAAC,CAAC;EAEtB,IAAMkB,cAAc,GAAG,SAAjBA,cAAc,CAAIC,KAAK,EAAK;IAAA;IAChC,IAAQC,MAAM,GAAKD,KAAK,CAAhBC,MAAM;IACdjB,UAAU,IAAI,kBAACK,GAAG,CAACa,OAAO,yCAAX,aAAaC,QAAQ,CAACF,MAAM,CAAC,KAAIjB,UAAU,CAACgB,KAAK,CAAC;EACnE,CAAC;EAED,IAAMI,QAAQ,GAAGC,gBAAO,IAAI,CAAC3B,MAAM,GAAG,UAAC4B,GAAG;IAAA,OAAKA,GAAG;EAAA,IAAGC,iBAAQ,CAACC,YAAY;EAE1E,IAAQC,MAAM,GAAKxB,MAAM,CAAjBwB,MAAM;EAEd,OAAOL,QAAQ,eACb,6BAAC,qBAAS;IACR,cAAc,EAAEzB,cAAe;IAC/B,IAAI,EAAEM,MAAM,CAACyB,IAAI,aAAMzB,MAAM,CAACyB,IAAI,iBAAc,gBAAiB;IACjE,OAAO,EAAE7B,OAAO,IAAIJ,QAAQ,GAAGsB,cAAc,GAAGD,SAAU;IAC1D,SAAS,EAAE,IAAAa,eAAM,EACfC,oBAAK,CAACC,SAAS,EACfpC,QAAQ,IAAImC,oBAAK,CAACnC,QAAQ,EAC1BA,QAAQ,IAAIH,IAAI,IAAIsC,oBAAK,CAACtC,IAAI,EAC9BO,OAAO,IAAI+B,oBAAK,CAAC/B,OAAO,EACxBG,UAAU,IAAI4B,oBAAK,CAAC5B,UAAU,CAC9B;IACF,KAAK,EAAE;MAAEI,MAAM,EAANA;IAAO,CAAE;IAClB,MAAM,EAAEqB,MAAM,aAAMA,MAAM,iBAAcX;EAAU,gBAElD,6BAAC,gBAAI,eACCb,MAAM;IACV,GAAG;IACH,GAAG,EAAEI,GAAI;IACT,IAAI,EAAEJ,MAAM,CAACyB,IAAI,IAAI,OAAQ;IAC7B,SAAS,EAAE,IAAAC,eAAM,EAACC,oBAAK,CAACE,KAAK,EAAE,CAACtC,GAAG,IAAIoC,oBAAK,CAACG,SAAS,EAAElC,OAAO,IAAI+B,oBAAK,CAAC/B,OAAO,EAAEI,MAAM,CAAC+B,SAAS;EAAE,IAEnG,CAACpC,KAAK,IAAIE,MAAM,IAAIC,OAAO,kBAC1B,6BAAC,gBAAI;IAAC,QAAQ;IAAC,SAAS,EAAE6B,oBAAK,CAACK;EAAO,GACpCnC,MAAM,iBACL,6BAAC,kBAAM;IAAC,WAAW;IAAC,KAAK;IAAC,OAAO;IAAC,OAAO,EAAEA,MAAO;IAAC,MAAM,EAAE2B,MAAM,aAAMA,MAAM,oBAAiBX;EAAU,gBACtG,6BAAC,gBAAI;IAAC,KAAK,EAAEoB,gBAAI,CAACC,IAAK;IAAC,SAAS,EAAEP,oBAAK,CAACQ;EAAK,EAAG,CAEpD,EACAxC,KAAK,iBACJ,6BAAC,gBAAI;IAAC,QAAQ;IAAC,SAAS,EAAE,IAAA+B,eAAM,EAACC,oBAAK,CAAChC,KAAK,EAAE,CAACE,MAAM,IAAI8B,oBAAK,CAACS,IAAI,EAAE,CAACtC,OAAO,IAAI6B,oBAAK,CAACU,KAAK;EAAE,GAC3F1C,KAAK,CAET,EACAG,OAAO,iBACN,6BAAC,kBAAM;IACL,WAAW;IACX,KAAK;IACL,OAAO;IACP,OAAO,EAAEA,OAAQ;IACjB,MAAM,EAAE0B,MAAM,aAAMA,MAAM,qBAAkBX,SAAU;IACtD,SAAS,EAAEc,oBAAK,CAACW;EAAO,gBAExB,6BAAC,gBAAI;IAAC,KAAK,EAAEpC,SAAS,IAAIP,KAAK,KAAKkB,SAAS,GAAGoB,gBAAI,CAACM,KAAK,GAAGN,gBAAI,CAACO,WAAY;IAAC,SAAS,EAAEb,oBAAK,CAACQ;EAAK,EAAG,CAE3G,CAEJ,EAEAM,cAAK,CAACC,QAAQ,CAACC,GAAG,CAACrD,QAAQ,EAAE,UAACsD,KAAK,EAAEC,KAAK;IAAA,OACzC,CAACD,KAAK,IAAIA,KAAK,KAAK,IAAI,GACpB,IAAI,gBACJH,cAAK,CAACK,YAAY,CAACF,KAAK;MAAIG,GAAG,EAAEF;IAAK,GAAKD,KAAK,CAACI,KAAK;MAAEvB,IAAI,EAAE;IAAe,GAAG;EAAA,EACrF,CACI,CACG,EACZf,QAAQ,CAACC,IAAI,CACd;AACH,CAAC;AAAC;AAEFvB,KAAK,CAAC6D,SAAS,GAAG;EAChB5D,IAAI,EAAE6D,kBAAS,CAACC,IAAI;EACpB7D,QAAQ,EAAE4D,kBAAS,CAACE,IAAI;EACxB7D,GAAG,EAAE2D,kBAAS,CAACC,IAAI;EACnB3D,QAAQ,EAAE0D,kBAAS,CAACC,IAAI;EACxB1D,MAAM,EAAEyD,kBAAS,CAACC,IAAI;EACtBzD,cAAc,EAAEwD,kBAAS,CAACC,IAAI;EAC9BxD,KAAK,EAAEuD,kBAAS,CAACG,MAAM;EACvBzD,OAAO,EAAEsD,kBAAS,CAACC,IAAI;EACvBtD,MAAM,EAAEqD,kBAAS,CAACI,IAAI;EACtBxD,OAAO,EAAEoD,kBAAS,CAACI,IAAI;EACvBvD,UAAU,EAAEmD,kBAAS,CAACI;AACxB,CAAC"}
@@ -82,13 +82,11 @@ exports[`component:<Modal> prop:children 1`] = `
82
82
  <div
83
83
  class="view fit modal calcWidth"
84
84
  >
85
- <div
86
- class="view wide"
85
+ <span
86
+ role="modal-content"
87
87
  >
88
- <span>
89
- children
90
- </span>
91
- </div>
88
+ children
89
+ </span>
92
90
  </div>
93
91
  </div>
94
92
  </DocumentFragment>
@@ -95,7 +95,12 @@ var ColumnFilter = function ColumnFilter(_ref) {
95
95
  var handleCancel = function handleCancel() {
96
96
  setVisible(false);
97
97
  };
98
- var handleSubmit = function handleSubmit(event) {
98
+ var handleKeyDown = function handleKeyDown() {
99
+ var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
100
+ if (event.key === 'Enter') handleSubmit(event);
101
+ };
102
+ var handleSubmit = function handleSubmit() {
103
+ var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
99
104
  event.preventDefault();
100
105
  setVisible(false);
101
106
  onSubmit(_objectSpread({
@@ -136,6 +141,7 @@ var ColumnFilter = function ColumnFilter(_ref) {
136
141
  max: max
137
142
  }));
138
143
  },
144
+ onKeyDown: handleKeyDown,
139
145
  className: _TableModule.default.input
140
146
  })) : type === 'boolean' ? /*#__PURE__*/_react.default.createElement(_InputOption.InputOption, {
141
147
  name: "search",
@@ -176,6 +182,7 @@ var ColumnFilter = function ColumnFilter(_ref) {
176
182
  value: value
177
183
  });
178
184
  },
185
+ onKeyDown: handleKeyDown,
179
186
  className: _TableModule.default.input
180
187
  }),
181
188
  divider: true
@@ -1 +1 @@
1
- {"version":3,"file":"Table.ColumnFilter.js","names":["DEFAULT_FORM","max","undefined","min","value","values","ColumnFilter","field","l10n","actionCancel","actionSubmit","labelMax","labelMin","schema","visible","propVisible","onFocus","onSubmit","others","useState","form","setForm","setVisible","label","options","type","useEffect","handlePress","event","preventDefault","handleCancel","handleSubmit","testId","children","divider","style","items","input","SWITCH","Object","entries","map","parsedValue","isNaN","parseFloat","includes","active","filter","item","keys","length","styles","menuFilter","className","position","ICON","FILTER","icon","disabled","displayName","propTypes","PropTypes","string","isRequired","L10N_SHAPE","shape","bool","func"],"sources":["../../../src/components/Table/Table.ColumnFilter.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { styles } from '../../helpers';\nimport { Icon, ICON, Pressable, Text, View } from '../../primitives';\nimport { Button } from '../Button';\nimport { InputOption, SWITCH } from '../InputOption';\nimport { InputText } from '../InputText';\nimport { Menu } from '../Menu';\nimport { L10N_SHAPE } from './Table.constants';\nimport style from './Table.module.css';\n\nconst DEFAULT_FORM = { max: undefined, min: undefined, value: undefined, values: [] };\n\nconst ColumnFilter = ({\n field,\n l10n: { actionCancel = '$Cancel', actionSubmit = '$Submit', labelMax = '$max', labelMin = '$min' } = {},\n schema = {},\n visible: propVisible = false,\n onFocus = () => {},\n onSubmit = () => {},\n ...others\n}) => {\n const [form, setForm] = useState({ ...DEFAULT_FORM });\n const [visible, setVisible] = useState(propVisible);\n const { label, options = [], type = 'text' } = schema[field] || {};\n\n useEffect(() => {\n setVisible(propVisible);\n }, [propVisible]);\n\n useEffect(() => {\n setForm({ ...DEFAULT_FORM, value: type === 'boolean' ? 'false' : undefined });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [visible]);\n\n const handlePress = (event) => {\n event.preventDefault();\n setVisible(!visible);\n onFocus(!visible ? field : undefined);\n };\n\n const handleCancel = () => {\n setVisible(false);\n };\n\n const handleSubmit = (event) => {\n event.preventDefault();\n setVisible(false);\n onSubmit({ field, type, ...form }, event);\n };\n\n const { testId } = others;\n\n return (\n <Menu\n {...others}\n options={[\n {\n children: (\n <Text bold small>\n {label || field}\n </Text>\n ),\n divider: true,\n },\n {\n children:\n type === 'number' ? (\n <View row className={style.items}>\n <InputText\n label={labelMin}\n name=\"min\"\n type=\"number\"\n value={form.min}\n onChange={(min) => setForm({ ...form, min })}\n className={style.input}\n />\n <InputText\n label={labelMax}\n name=\"max\"\n type=\"number\"\n value={form.max}\n onChange={(max) => setForm({ ...form, max })}\n className={style.input}\n />\n </View>\n ) : type === 'boolean' ? (\n <InputOption\n name=\"search\"\n type={SWITCH}\n checked={form.value === 'true'}\n onChange={(value) => setForm({ value: value ? 'true' : 'false' })}\n className={style.input}\n />\n ) : type === 'options' ? (\n <View wide>\n {Object.entries(options).map(([value, label]) => {\n const parsedValue = isNaN(value) ? value : parseFloat(value);\n\n return (\n <InputOption\n name={value}\n key={value}\n label={label}\n checked={form.values.includes(parsedValue) || false}\n onChange={(active) =>\n setForm({\n values: active\n ? [...form.values, parsedValue]\n : form.values.filter((item) => item !== parsedValue),\n })\n }\n />\n );\n })}\n </View>\n ) : (\n <InputText\n name=\"search\"\n type=\"search\"\n value={form.value}\n onChange={(value) => setForm({ value })}\n className={style.input}\n />\n ),\n divider: true,\n },\n {\n children: (\n <View row wide className={style.items}>\n <Button secondary wide onPress={handleCancel}>\n {actionCancel}\n </Button>\n <Button\n disabled={\n type !== 'boolean' && !form.value && !form.min && !form.max && !Object.keys(form.values || {}).length\n }\n wide\n onPress={handleSubmit}\n testId={testId ? `${testId}-submit` : undefined}\n >\n {actionSubmit}\n </Button>\n </View>\n ),\n },\n ]}\n bottom\n centered\n visible={visible}\n className={styles(style.menuFilter, others.className)}\n >\n <Pressable onPress={handlePress} style={{ position: 'relative' }}>\n <Icon value={ICON.FILTER} className={styles(style.icon, !visible && style.disabled)} />\n </Pressable>\n </Menu>\n );\n};\n\nColumnFilter.displayName = 'Component:Table:ColumnFilter';\n\nColumnFilter.propTypes = {\n field: PropTypes.string.isRequired,\n l10n: L10N_SHAPE,\n schema: PropTypes.shape({}).isRequired,\n visible: PropTypes.bool,\n onFocus: PropTypes.func.isRequired,\n onSubmit: PropTypes.func.isRequired,\n};\n\nexport { ColumnFilter };\n"],"mappings":"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"}
1
+ {"version":3,"file":"Table.ColumnFilter.js","names":["DEFAULT_FORM","max","undefined","min","value","values","ColumnFilter","field","l10n","actionCancel","actionSubmit","labelMax","labelMin","schema","visible","propVisible","onFocus","onSubmit","others","useState","form","setForm","setVisible","label","options","type","useEffect","handlePress","event","preventDefault","handleCancel","handleKeyDown","key","handleSubmit","testId","children","divider","style","items","input","SWITCH","Object","entries","map","parsedValue","isNaN","parseFloat","includes","active","filter","item","keys","length","styles","menuFilter","className","position","ICON","FILTER","icon","disabled","displayName","propTypes","PropTypes","string","isRequired","L10N_SHAPE","shape","bool","func"],"sources":["../../../src/components/Table/Table.ColumnFilter.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { styles } from '../../helpers';\nimport { Icon, ICON, Pressable, Text, View } from '../../primitives';\nimport { Button } from '../Button';\nimport { InputOption, SWITCH } from '../InputOption';\nimport { InputText } from '../InputText';\nimport { Menu } from '../Menu';\nimport { L10N_SHAPE } from './Table.constants';\nimport style from './Table.module.css';\n\nconst DEFAULT_FORM = { max: undefined, min: undefined, value: undefined, values: [] };\n\nconst ColumnFilter = ({\n field,\n l10n: { actionCancel = '$Cancel', actionSubmit = '$Submit', labelMax = '$max', labelMin = '$min' } = {},\n schema = {},\n visible: propVisible = false,\n onFocus = () => {},\n onSubmit = () => {},\n ...others\n}) => {\n const [form, setForm] = useState({ ...DEFAULT_FORM });\n const [visible, setVisible] = useState(propVisible);\n const { label, options = [], type = 'text' } = schema[field] || {};\n\n useEffect(() => {\n setVisible(propVisible);\n }, [propVisible]);\n\n useEffect(() => {\n setForm({ ...DEFAULT_FORM, value: type === 'boolean' ? 'false' : undefined });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [visible]);\n\n const handlePress = (event) => {\n event.preventDefault();\n setVisible(!visible);\n onFocus(!visible ? field : undefined);\n };\n\n const handleCancel = () => {\n setVisible(false);\n };\n\n const handleKeyDown = (event = {}) => {\n if (event.key === 'Enter') handleSubmit(event);\n };\n\n const handleSubmit = (event = {}) => {\n event.preventDefault();\n setVisible(false);\n onSubmit({ field, type, ...form }, event);\n };\n\n const { testId } = others;\n\n return (\n <Menu\n {...others}\n options={[\n {\n children: (\n <Text bold small>\n {label || field}\n </Text>\n ),\n divider: true,\n },\n {\n children:\n type === 'number' ? (\n <View row className={style.items}>\n <InputText\n label={labelMin}\n name=\"min\"\n type=\"number\"\n value={form.min}\n onChange={(min) => setForm({ ...form, min })}\n className={style.input}\n />\n <InputText\n label={labelMax}\n name=\"max\"\n type=\"number\"\n value={form.max}\n onChange={(max) => setForm({ ...form, max })}\n onKeyDown={handleKeyDown}\n className={style.input}\n />\n </View>\n ) : type === 'boolean' ? (\n <InputOption\n name=\"search\"\n type={SWITCH}\n checked={form.value === 'true'}\n onChange={(value) => setForm({ value: value ? 'true' : 'false' })}\n className={style.input}\n />\n ) : type === 'options' ? (\n <View wide>\n {Object.entries(options).map(([value, label]) => {\n const parsedValue = isNaN(value) ? value : parseFloat(value);\n\n return (\n <InputOption\n name={value}\n key={value}\n label={label}\n checked={form.values.includes(parsedValue) || false}\n onChange={(active) =>\n setForm({\n values: active\n ? [...form.values, parsedValue]\n : form.values.filter((item) => item !== parsedValue),\n })\n }\n />\n );\n })}\n </View>\n ) : (\n <InputText\n name=\"search\"\n type=\"search\"\n value={form.value}\n onChange={(value) => setForm({ value })}\n onKeyDown={handleKeyDown}\n className={style.input}\n />\n ),\n divider: true,\n },\n {\n children: (\n <View row wide className={style.items}>\n <Button secondary wide onPress={handleCancel}>\n {actionCancel}\n </Button>\n <Button\n disabled={\n type !== 'boolean' && !form.value && !form.min && !form.max && !Object.keys(form.values || {}).length\n }\n wide\n onPress={handleSubmit}\n testId={testId ? `${testId}-submit` : undefined}\n >\n {actionSubmit}\n </Button>\n </View>\n ),\n },\n ]}\n bottom\n centered\n visible={visible}\n className={styles(style.menuFilter, others.className)}\n >\n <Pressable onPress={handlePress} style={{ position: 'relative' }}>\n <Icon value={ICON.FILTER} className={styles(style.icon, !visible && style.disabled)} />\n </Pressable>\n </Menu>\n );\n};\n\nColumnFilter.displayName = 'Component:Table:ColumnFilter';\n\nColumnFilter.propTypes = {\n field: PropTypes.string.isRequired,\n l10n: L10N_SHAPE,\n schema: PropTypes.shape({}).isRequired,\n visible: PropTypes.bool,\n onFocus: PropTypes.func.isRequired,\n onSubmit: PropTypes.func.isRequired,\n};\n\nexport { ColumnFilter };\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mirai/ui",
3
- "version": "1.0.212",
3
+ "version": "1.0.214",
4
4
  "repository": "git@gitlab.com:miraicorp/dev/frontend/ui.git",
5
5
  "author": "JΛVI <hello@soyjavi.com>",
6
6
  "license": "MIT",