neko-ui 1.5.3 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/avatar/index.d.ts +1 -1
- package/es/avatar-group/index.d.ts +1 -1
- package/es/avatar-group/index.js +1 -1
- package/es/button/index.d.ts +1 -1
- package/es/button/style.d.ts +1 -1
- package/es/capture-screen/index.js +1 -1
- package/es/checkbox/index.d.ts +3 -2
- package/es/checkbox/index.js +1 -1
- package/es/color-palette/index.js +1 -1
- package/es/color-picker/index.d.ts +2 -1
- package/es/color-picker/index.js +1 -1
- package/es/dropdown/index.d.ts +15 -0
- package/es/dropdown/index.js +1 -0
- package/es/dropdown/style.d.ts +9 -0
- package/es/dropdown/style.js +49 -0
- package/es/get-options/index.d.ts +24 -0
- package/es/get-options/index.js +1 -0
- package/es/index.d.ts +6 -1
- package/es/index.js +1 -1
- package/es/input/index.d.ts +3 -3
- package/es/input/index.js +1 -1
- package/es/input-number/index.d.ts +1 -1
- package/es/input-number/index.js +1 -1
- package/es/loading/index.d.ts +9 -0
- package/es/loading/index.js +1 -0
- package/es/loading/style.d.ts +5 -0
- package/es/loading/style.js +50 -0
- package/es/popover/index.d.ts +21 -0
- package/es/popover/index.js +1 -0
- package/es/popover/style.d.ts +9 -0
- package/es/{tooltip → popover}/style.js +35 -21
- package/es/radio/index.d.ts +6 -8
- package/es/radio/index.js +1 -1
- package/es/segmented/index.d.ts +3 -2
- package/es/segmented/index.js +1 -1
- package/es/select/index.d.ts +11 -0
- package/es/select/index.js +1 -0
- package/es/select/style.d.ts +3 -0
- package/es/select/style.js +11 -0
- package/es/tooltip/index.d.ts +2 -12
- package/es/tooltip/index.js +1 -1
- package/lib/avatar/index.d.ts +1 -1
- package/lib/avatar-group/index.d.ts +1 -1
- package/lib/avatar-group/index.js +1 -1
- package/lib/button/index.d.ts +1 -1
- package/lib/button/style.d.ts +1 -1
- package/lib/capture-screen/index.js +1 -1
- package/lib/checkbox/index.d.ts +3 -2
- package/lib/checkbox/index.js +1 -1
- package/lib/color-palette/index.js +1 -1
- package/lib/color-picker/index.d.ts +2 -1
- package/lib/color-picker/index.js +1 -1
- package/lib/dropdown/index.d.ts +15 -0
- package/lib/dropdown/index.js +1 -0
- package/lib/dropdown/style.d.ts +9 -0
- package/lib/dropdown/style.js +1 -0
- package/lib/get-options/index.d.ts +24 -0
- package/lib/get-options/index.js +1 -0
- package/lib/index.d.ts +6 -1
- package/lib/index.js +1 -1
- package/lib/input/index.d.ts +3 -3
- package/lib/input/index.js +1 -1
- package/lib/input-number/index.d.ts +1 -1
- package/lib/input-number/index.js +1 -1
- package/lib/loading/index.d.ts +9 -0
- package/lib/loading/index.js +1 -0
- package/lib/loading/style.d.ts +5 -0
- package/lib/loading/style.js +1 -0
- package/lib/popover/index.d.ts +21 -0
- package/lib/popover/index.js +1 -0
- package/lib/popover/style.d.ts +9 -0
- package/lib/popover/style.js +1 -0
- package/lib/radio/index.d.ts +6 -8
- package/lib/radio/index.js +1 -1
- package/lib/segmented/index.d.ts +3 -2
- package/lib/segmented/index.js +1 -1
- package/lib/select/index.d.ts +11 -0
- package/lib/select/index.js +1 -0
- package/lib/select/style.d.ts +3 -0
- package/lib/select/style.js +1 -0
- package/lib/tooltip/index.d.ts +2 -12
- package/lib/tooltip/index.js +1 -1
- package/package.json +1 -1
- package/es/tooltip/style.d.ts +0 -8
- package/lib/tooltip/style.d.ts +0 -8
- package/lib/tooltip/style.js +0 -1
package/es/avatar/index.d.ts
CHANGED
package/es/avatar-group/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _object_spread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};var ownKeys=Object.keys(source);if(typeof Object.getOwnPropertySymbols==="function"){ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))}ownKeys.forEach(function(key){_define_property(target,key,source[key])})}return target}import React,{useMemo}from"react";import{cls}from"./style";import{cx}from"../emotion";import
|
|
1
|
+
function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _object_spread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};var ownKeys=Object.keys(source);if(typeof Object.getOwnPropertySymbols==="function"){ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))}ownKeys.forEach(function(key){_define_property(target,key,source[key])})}return target}import React,{useMemo}from"react";import{cls}from"./style";import Avatar from"../avatar";import{cx}from"../emotion";import Popover from"../popover";const AvatarGroup=props=>{const showAvatar=useMemo(()=>props.data.slice(0,props.maxCount),[props.data,props.maxCount]);const more=useMemo(()=>props.data.length-(props.maxCount||props.data.length),[props.data.length,props.maxCount]);return React.createElement("div",{className:cx(cls.group,props.className)},showAvatar.map((a,i)=>React.createElement(Avatar,_object_spread({key:`${i}-${a.src}`,size:props.size},a))),more>0?React.createElement(Popover,{arrow:true,trigger:"click",content:React.createElement("div",{className:cls.more},props.data.slice(-more).map((a,i)=>React.createElement(Avatar,_object_spread({key:`${i}-${a.src}`,size:props.size},a))))},React.createElement(Avatar,{size:props.size,username:`+${more}`})):null)};export default AvatarGroup;
|
package/es/button/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { type ButtonType } from './style';
|
|
3
|
-
import type { ComponentSize } from '../';
|
|
3
|
+
import type { ComponentSize } from '../index';
|
|
4
4
|
export type { ButtonType } from './style';
|
|
5
5
|
export interface ButtonProps extends React.HTMLAttributes<HTMLButtonElement> {
|
|
6
6
|
/** 按钮类型 */
|
package/es/button/style.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value}catch(error){reject(error);return}if(info.done){resolve(value)}else{Promise.resolve(value).then(_next,_throw)}}function _async_to_generator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(undefined)})}}function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _object_spread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};var ownKeys=Object.keys(source);if(typeof Object.getOwnPropertySymbols==="function"){ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))}ownKeys.forEach(function(key){_define_property(target,key,source[key])})}return target}function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly){symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable})}keys.push.apply(keys,symbols)}return keys}function _object_spread_props(target,source){source=source!=null?source:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(target,Object.getOwnPropertyDescriptors(source))}else{ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key))})}return target}function _object_without_properties(source,excluded){if(source==null)return{};var target=_object_without_properties_loose(source,excluded);var key,i;if(Object.getOwnPropertySymbols){var sourceSymbolKeys=Object.getOwnPropertySymbols(source);for(i=0;i<sourceSymbolKeys.length;i++){key=sourceSymbolKeys[i];if(excluded.indexOf(key)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(source,key))continue;target[key]=source[key]}}return target}function _object_without_properties_loose(source,excluded){if(source==null)return{};var target={};var sourceKeys=Object.keys(source);var key,i;for(i=0;i<sourceKeys.length;i++){key=sourceKeys[i];if(excluded.indexOf(key)>=0)continue;target[key]=source[key]}return target}import React,{useCallback,useEffect,useMemo,useRef,useState}from"react";import{downloadBlob,isObject}from"@moneko/common";import{cls}from"./style";import
|
|
1
|
+
function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value}catch(error){reject(error);return}if(info.done){resolve(value)}else{Promise.resolve(value).then(_next,_throw)}}function _async_to_generator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(undefined)})}}function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _object_spread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};var ownKeys=Object.keys(source);if(typeof Object.getOwnPropertySymbols==="function"){ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))}ownKeys.forEach(function(key){_define_property(target,key,source[key])})}return target}function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly){symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable})}keys.push.apply(keys,symbols)}return keys}function _object_spread_props(target,source){source=source!=null?source:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(target,Object.getOwnPropertyDescriptors(source))}else{ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key))})}return target}function _object_without_properties(source,excluded){if(source==null)return{};var target=_object_without_properties_loose(source,excluded);var key,i;if(Object.getOwnPropertySymbols){var sourceSymbolKeys=Object.getOwnPropertySymbols(source);for(i=0;i<sourceSymbolKeys.length;i++){key=sourceSymbolKeys[i];if(excluded.indexOf(key)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(source,key))continue;target[key]=source[key]}}return target}function _object_without_properties_loose(source,excluded){if(source==null)return{};var target={};var sourceKeys=Object.keys(source);var key,i;for(i=0;i<sourceKeys.length;i++){key=sourceKeys[i];if(excluded.indexOf(key)>=0)continue;target[key]=source[key]}return target}import React,{useCallback,useEffect,useMemo,useRef,useState}from"react";import{downloadBlob,isObject}from"@moneko/common";import{cls}from"./style";import Button from"../button";import{cx}from"../emotion";const displayMediaOptions={video:true,audio:{echoCancellation:true,noiseSuppression:true,sampleRate:44100}};const btnStatusDic={inactive:"primary",paused:"warning",recording:"success"};const CaptureScreen=_param=>{var{options=displayMediaOptions,preview,controls,recorder,captureScreenText="捕获屏幕",stopCaptureText="停止捕获",startRecorderText="开始录制",stopRecorderText="停止录制",pausedRecorderText="暂停录制",recorderingText="录制中",onRecorderError=null,onStopRecorder,onStartRecorder,onStopCapture,onStartCapture,onRecorderDataAvailable,onErrorCapture,onSaveRecorder,className}=_param,props=_object_without_properties(_param,["options","preview","controls","recorder","captureScreenText","stopCaptureText","startRecorderText","stopRecorderText","pausedRecorderText","recorderingText","onRecorderError","onStopRecorder","onStartRecorder","onStopCapture","onStartCapture","onRecorderDataAvailable","onErrorCapture","onSaveRecorder","className"]);const videoElem=useRef(null);const mediaRecorderRef=useRef(null);const mediaStreamRef=useRef(null);const chunks=useRef([]);const recorderRef=useRef(recorder);const[mediaRecorder,setMediaRecorder]=useState(null);const[mediaStream,setMediaStream]=useState(null);const[recordState,setRecordState]=useState("inactive");const handleStartRecorder=useCallback(()=>{if(mediaRecorderRef.current){onStartRecorder===null||onStartRecorder===void 0?void 0:onStartRecorder(mediaRecorderRef.current.state);switch(mediaRecorderRef.current.state){case"inactive":mediaRecorderRef.current.start();break;case"paused":mediaRecorderRef.current.resume();break;case"recording":default:mediaRecorderRef.current.pause();break}setRecordState(mediaRecorderRef.current.state)}},[onStartRecorder]);const handleRecorderDataAvailable=useCallback(e=>{var _chunks_current;(_chunks_current=chunks.current)===null||_chunks_current===void 0?void 0:_chunks_current.push(e.data);onRecorderDataAvailable===null||onRecorderDataAvailable===void 0?void 0:onRecorderDataAvailable(e)},[onRecorderDataAvailable]);const stopRecorder=useCallback(()=>{if(mediaRecorderRef.current){if(mediaRecorderRef.current.state!=="inactive"){mediaRecorderRef.current.stop()}setRecordState(mediaRecorderRef.current.state)}onStopRecorder===null||onStopRecorder===void 0?void 0:onStopRecorder()},[onStopRecorder]);const handleSaveRecorder=useCallback(()=>{var _chunks_current,_chunks_current1;if(!((_chunks_current=chunks.current)===null||_chunks_current===void 0?void 0:_chunks_current.length))return;const{current}=recorderRef;const blob=new Blob(chunks.current,{type:"video/webm"});const name=isObject(current)?current===null||current===void 0?void 0:current.filename:new Date().toISOString();const fileName=name+".webm";(_chunks_current1=chunks.current)===null||_chunks_current1===void 0?void 0:_chunks_current1.splice(0);if(onSaveRecorder){onSaveRecorder(blob,fileName)}else{downloadBlob(blob,fileName)}},[onSaveRecorder]);const stopCapture=useCallback(()=>{stopRecorder();if(mediaStreamRef.current){const tracks=mediaStreamRef.current.getTracks();tracks===null||tracks===void 0?void 0:tracks.forEach(track=>track.stop());setMediaStream(null)}onStopCapture===null||onStopCapture===void 0?void 0:onStopCapture()},[onStopCapture,stopRecorder]);const startCapture=useCallback(_async_to_generator(function*(){stopCapture();try{const stream=yield navigator.mediaDevices.getDisplayMedia(_object_spread({},displayMediaOptions,options));if(stream){stream.addEventListener("inactive",stopCapture,false);setMediaStream(stream)}onStartCapture===null||onStartCapture===void 0?void 0:onStartCapture(stream)}catch(err){onErrorCapture===null||onErrorCapture===void 0?void 0:onErrorCapture(err)}}),[onErrorCapture,onStartCapture,options,stopCapture]);useEffect(()=>{Object.assign(recorderRef,{current:recorder})},[recorder]);useEffect(()=>{Object.assign(mediaRecorderRef,{current:mediaRecorder})},[mediaRecorder]);useEffect(()=>{Object.assign(mediaStreamRef,{current:mediaStream});if(preview&&(videoElem===null||videoElem===void 0?void 0:videoElem.current)&&mediaStream){videoElem.current.srcObject=mediaStream}},[mediaStream,preview]);useEffect(()=>{if(mediaStream===null||mediaStream===void 0?void 0:mediaStream.active){const recorderInstance=new MediaRecorder(mediaStream);recorderInstance.onstop=handleSaveRecorder;recorderInstance.onerror=onRecorderError;recorderInstance.ondataavailable=handleRecorderDataAvailable;setMediaRecorder(recorderInstance)}else{setMediaRecorder(null)}},[handleRecorderDataAvailable,handleSaveRecorder,mediaStream,onRecorderError]);useEffect(()=>{const getMediaRecorderRef=()=>mediaRecorderRef.current;const getMediaStreamRef=()=>mediaStreamRef.current;return()=>{const _mediaRecorderRef=getMediaRecorderRef();if((_mediaRecorderRef===null||_mediaRecorderRef===void 0?void 0:_mediaRecorderRef.state)!=="inactive"){_mediaRecorderRef===null||_mediaRecorderRef===void 0?void 0:_mediaRecorderRef.stop()}const streamRef=getMediaStreamRef();if(streamRef){const tracks=streamRef.getTracks();tracks===null||tracks===void 0?void 0:tracks.forEach(track=>track.stop())}}},[]);const recorderText=useMemo(()=>({paused:pausedRecorderText,recording:recorderingText,inactive:startRecorderText})[recordState],[pausedRecorderText,recordState,recorderingText,startRecorderText]);return React.createElement("div",_object_spread_props(_object_spread({},props),{className:cx(cls.captureScreen,className)}),React.createElement("div",{className:cls.controller},React.createElement(Button,{onClick:startCapture,className:cls.btn},captureScreenText),mediaStream&&React.createElement(React.Fragment,null,React.createElement(Button,{type:"error",onClick:stopCapture,className:cls.btn},stopCaptureText),recorder&&React.createElement("div",{className:cls.record},React.createElement(Button,{type:btnStatusDic[recordState],onClick:handleStartRecorder,className:cls.btn},recorderText),recordState!=="inactive"&&React.createElement(Button,{type:"error",onClick:stopRecorder,className:cls.btn},stopRecorderText)))),preview&&mediaStream?React.createElement("div",{className:cls.view},React.createElement("span",{className:cx(recordState==="recording"&&cls.recording,recordState==="paused"&&cls.paused)}),React.createElement("video",{ref:videoElem,autoPlay:true,controls:!!(mediaStream&&controls)})):null)};export default CaptureScreen;
|
package/es/checkbox/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type
|
|
3
|
-
export interface CheckboxOption extends
|
|
2
|
+
import { type FieldNames, type BaseOption } from '../get-options';
|
|
3
|
+
export interface CheckboxOption extends BaseOption {
|
|
4
4
|
indeterminate?: boolean;
|
|
5
5
|
}
|
|
6
6
|
export interface CheckboxProps {
|
|
@@ -12,6 +12,7 @@ export interface CheckboxProps {
|
|
|
12
12
|
options: (CheckboxOption | string)[];
|
|
13
13
|
onChange?: (val: string[]) => void;
|
|
14
14
|
layout?: 'vertical' | 'horizontal';
|
|
15
|
+
fieldNames?: Partial<FieldNames>;
|
|
15
16
|
}
|
|
16
17
|
declare const Checkbox: React.FC<CheckboxProps>;
|
|
17
18
|
export default Checkbox;
|
package/es/checkbox/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _object_spread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};var ownKeys=Object.keys(source);if(typeof Object.getOwnPropertySymbols==="function"){ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))}ownKeys.forEach(function(key){_define_property(target,key,source[key])})}return target}function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly){symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable})}keys.push.apply(keys,symbols)}return keys}function _object_spread_props(target,source){source=source!=null?source:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(target,Object.getOwnPropertyDescriptors(source))}else{ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key))})}return target}function _object_without_properties(source,excluded){if(source==null)return{};var target=_object_without_properties_loose(source,excluded);var key,i;if(Object.getOwnPropertySymbols){var sourceSymbolKeys=Object.getOwnPropertySymbols(source);for(i=0;i<sourceSymbolKeys.length;i++){key=sourceSymbolKeys[i];if(excluded.indexOf(key)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(source,key))continue;target[key]=source[key]}}return target}function _object_without_properties_loose(source,excluded){if(source==null)return{};var target={};var sourceKeys=Object.keys(source);var key,i;for(i=0;i<sourceKeys.length;i++){key=sourceKeys[i];if(excluded.indexOf(key)>=0)continue;target[key]=source[key]}return target}import React,{useEffect,useRef}from"react";import{isFunction}from"@moneko/common";import sso from"shared-store-object";import{cls}from"./style";import{cx}from"../emotion";const Checkbox=_param=>{var{layout="horizontal",className,name,style,disabled,options,value=[],onChange}=_param,props=_object_without_properties(_param,["layout","className","name","style","disabled","options","value","onChange"]);const state=useRef(sso({value,options:[],disabled,all:[],checkedAll:false,onChange(item){if(!state.current.disabled&&!item.disabled){const isIndeterminate="indeterminate"in item;let newVal=isIndeterminate?[]:[...state.current.value];if(isIndeterminate){if(!state.current.checkedAll){newVal=state.current.all}}else{const idx=newVal.indexOf(
|
|
1
|
+
function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _object_spread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};var ownKeys=Object.keys(source);if(typeof Object.getOwnPropertySymbols==="function"){ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))}ownKeys.forEach(function(key){_define_property(target,key,source[key])})}return target}function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly){symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable})}keys.push.apply(keys,symbols)}return keys}function _object_spread_props(target,source){source=source!=null?source:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(target,Object.getOwnPropertyDescriptors(source))}else{ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key))})}return target}function _object_without_properties(source,excluded){if(source==null)return{};var target=_object_without_properties_loose(source,excluded);var key,i;if(Object.getOwnPropertySymbols){var sourceSymbolKeys=Object.getOwnPropertySymbols(source);for(i=0;i<sourceSymbolKeys.length;i++){key=sourceSymbolKeys[i];if(excluded.indexOf(key)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(source,key))continue;target[key]=source[key]}}return target}function _object_without_properties_loose(source,excluded){if(source==null)return{};var target={};var sourceKeys=Object.keys(source);var key,i;for(i=0;i<sourceKeys.length;i++){key=sourceKeys[i];if(excluded.indexOf(key)>=0)continue;target[key]=source[key]}return target}import React,{useEffect,useRef}from"react";import{isFunction}from"@moneko/common";import sso from"shared-store-object";import{cls}from"./style";import{cx}from"../emotion";import getOptions,{defaultFieldNames}from"../get-options";const Checkbox=_param=>{var{layout="horizontal",className,name,style,disabled,options,value=[],onChange,fieldNames}=_param,props=_object_without_properties(_param,["layout","className","name","style","disabled","options","value","onChange","fieldNames"]);const state=useRef(sso({value,options:[],disabled,all:[],checkedAll:false,fieldNames:_object_spread({},defaultFieldNames,fieldNames),onChange(item){if(!state.current.disabled&&!item.disabled){const isIndeterminate="indeterminate"in item;let newVal=isIndeterminate?[]:[...state.current.value];const val=item[state.current.fieldNames.value];if(isIndeterminate){if(!state.current.checkedAll){newVal=state.current.all}}else{const idx=newVal.indexOf(val);if(idx!==-1){newVal.splice(idx,1)}else{newVal.push(val)}}if(isFunction(onChange)){onChange(newVal)}else{state.current.value=newVal}}},onKeyUpCapture(key,item){if(key==="Enter"){state.current.onChange(item)}}}));const{value:val,options:opts,disabled:disable,all,checkedAll,fieldNames:fieldName}=state.current;useEffect(()=>{state.current.disabled=disabled},[disabled]);useEffect(()=>{state.current.value=value},[value]);useEffect(()=>{state.current("fieldNames",prev=>_object_spread({},prev,fieldNames))},[fieldNames]);useEffect(()=>{state.current.options=getOptions(options,state.current.fieldNames)},[options]);useEffect(()=>{const allVal=[];opts.forEach(item=>{if(!("indeterminate"in item)&&typeof item[state.current.fieldNames.value]!=="undefined"){allVal.push(item[state.current.fieldNames.value])}});state.current.all=allVal},[opts]);useEffect(()=>{let checked=true;for(let i=0,len=all.length;i<len;i++){if(!value.includes(all[i])){checked=false}}state.current.checkedAll=checked},[all,value]);useEffect(()=>{const _state=state.current;return()=>{_state()}},[]);return React.createElement("section",_object_spread_props(_object_spread({},props),{className:cx(cls.box,layout&&cls[layout],className),style:style}),opts===null||opts===void 0?void 0:opts.map((item,i)=>{const readOnly=disable||item.disabled;const handleChange=()=>state.current.onChange(item);const isIndeterminate="indeterminate"in item;const realVal=item[fieldName.value];const realLabel=item[fieldName.label];const checked=isIndeterminate?checkedAll:val.includes(realVal);return React.createElement("label",{key:`${realVal}-${i}`,className:cx(cls.label,item.className),tabIndex:readOnly?-1:0,onKeyUpCapture:({key})=>state.current.onKeyUpCapture(key,item),onClickCapture:handleChange,"aria-disabled":readOnly,"data-disabled":readOnly,style:item.style},React.createElement("input",{ref:el=>{if(el&&isIndeterminate){el.indeterminate=item.indeterminate}},className:cls.checkbox,type:"checkbox",name:name,value:realVal,disabled:readOnly,checked:checked,onChange:handleChange}),realLabel)}))};export default Checkbox;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _object_spread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};var ownKeys=Object.keys(source);if(typeof Object.getOwnPropertySymbols==="function"){ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))}ownKeys.forEach(function(key){_define_property(target,key,source[key])})}return target}function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly){symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable})}keys.push.apply(keys,symbols)}return keys}function _object_spread_props(target,source){source=source!=null?source:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(target,Object.getOwnPropertyDescriptors(source))}else{ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key))})}return target}function _object_without_properties(source,excluded){if(source==null)return{};var target=_object_without_properties_loose(source,excluded);var key,i;if(Object.getOwnPropertySymbols){var sourceSymbolKeys=Object.getOwnPropertySymbols(source);for(i=0;i<sourceSymbolKeys.length;i++){key=sourceSymbolKeys[i];if(excluded.indexOf(key)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(source,key))continue;target[key]=source[key]}}return target}function _object_without_properties_loose(source,excluded){if(source==null)return{};var target={};var sourceKeys=Object.keys(source);var key,i;for(i=0;i<sourceKeys.length;i++){key=sourceKeys[i];if(excluded.indexOf(key)>=0)continue;target[key]=source[key]}return target}import React,{useEffect,useRef}from"react";import{colorParse,passiveSupported,setClipboard,throttle}from"@moneko/common";import sso from"shared-store-object";import{cls}from"./style";import{cx}from"../emotion";import
|
|
1
|
+
function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _object_spread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};var ownKeys=Object.keys(source);if(typeof Object.getOwnPropertySymbols==="function"){ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))}ownKeys.forEach(function(key){_define_property(target,key,source[key])})}return target}function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly){symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable})}keys.push.apply(keys,symbols)}return keys}function _object_spread_props(target,source){source=source!=null?source:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(target,Object.getOwnPropertyDescriptors(source))}else{ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key))})}return target}function _object_without_properties(source,excluded){if(source==null)return{};var target=_object_without_properties_loose(source,excluded);var key,i;if(Object.getOwnPropertySymbols){var sourceSymbolKeys=Object.getOwnPropertySymbols(source);for(i=0;i<sourceSymbolKeys.length;i++){key=sourceSymbolKeys[i];if(excluded.indexOf(key)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(source,key))continue;target[key]=source[key]}}return target}function _object_without_properties_loose(source,excluded){if(source==null)return{};var target={};var sourceKeys=Object.keys(source);var key,i;for(i=0;i<sourceKeys.length;i++){key=sourceKeys[i];if(excluded.indexOf(key)>=0)continue;target[key]=source[key]}return target}import React,{useEffect,useRef}from"react";import{colorParse,passiveSupported,setClipboard,throttle}from"@moneko/common";import sso from"shared-store-object";import{cls}from"./style";import{cx}from"../emotion";import Input from"../input";import InputNumber from"../input-number";const material=["#f44336","#E91E63","#9C27B0","#673AB7","#3F51B5","#2196F3","#00BCD4","#009688","#4CAF50","#CDDC39","#FF9800","#795548","#607D8B"];function formatterOpacity(v){return v?Number((v*100).toFixed()):v}function parseOpacity(v){let _val=v;if(typeof v==="string"){_val=v.replace(/[^\d]/g,"")}return _val/100}const opt={hexa:{get:"toHexa",next:"rgba",max:[255,255,255,1]},rgba:{get:"toRgba",next:"hsla",max:[255,255,255,1]},hsla:{get:"toHsla",next:"hexa",max:[360,100,100,1]}};const ColorPalette=_param=>{var{className,defaultValue="#5794ff",value,onChange}=_param,props=_object_without_properties(_param,["className","defaultValue","value","onChange"]);const picker=useRef(null);const store=useRef(sso(_object_spread_props(_object_spread({},colorParse(value||defaultValue)),{drag:false,timer:null,hexa:value||defaultValue,handleHexa(v){store.current.hexa=v},handleAlphaRange(e){store.current.setAlpha(Number(e.target.value))},setAlpha(alpha){const next=[...store.current.value];next[3]=alpha||0;store.current.value=next},setHue(e){const next=[...store.current.value];next[0]=Number(e.target.value);store.current.value=next},setColor(c=defaultValue){if(store.current.isColor(c)&&store.current[opt[store.current.type].get]().toString()!==c){const next=colorParse(c);store.current.type=next.type;store.current.value=next.value}},changeColor(ev){if(picker.current){const next=[...store.current.value];const{x,y,width,height}=picker.current.getBoundingClientRect();next[1]=Math.floor(Math.min(Math.max(0,(ev.clientX-x)/width*100),100));next[2]=Math.floor(100-Math.min(Math.max(0,(ev.clientY-y)/height*100),100));store.current.value=next}},handleChange(i,v){if(typeof v==="number"){if(i===3&&store.current.type!=="cmyk"){store.current.setAlpha(v||0)}else{const old=store.current[opt[store.current.type].get]();old[i]=v||0;store.current.value=colorParse(old.toString()).value}}},mouseDown(e){store.current.drag=true;store.current.changeColor(e)},mouseMove(e){if(store.current.drag){store.current.changeColor(e)}},mouseUp(){store.current.drag=false},switch(){store.current.type=opt[store.current.type].next},copy(e){setClipboard(store.current.color.toString(),e.target)},eyeDropper(){if(window.EyeDropper){new window.EyeDropper().open().then(res=>{if(res){store.current.setColor(res.sRGBHex)}}).catch(()=>{});return}}}),{color(){store.current.setValue(store.current.value);return store.current[opt[store.current.type].get]()},style(){return{"--c":store.current.toRgbaString(),"--h":store.current.value[0],"--s":store.current.value[1],"--v":store.current.value[2],"--a":store.current.value[3]}}}));const{type,value:hsva,color,style,hexa}=store.current;useEffect(()=>{throttle(store.current.setColor,4)(value)},[defaultValue,value]);useEffect(()=>{onChange===null||onChange===void 0?void 0:onChange(color.toString())},[onChange,color]);useEffect(()=>{if(store.current.timer){clearTimeout(store.current.timer)}if(type==="hexa"){store.current.hexa=store.current.toHexaString()}},[type,hsva]);useEffect(()=>{const _store=store.current;window.addEventListener("mousemove",_store.mouseMove,passiveSupported);window.addEventListener("mouseup",_store.mouseUp,passiveSupported);return()=>{if(_store.timer){clearTimeout(_store.timer)}window.removeEventListener("mousemove",_store.mouseMove,passiveSupported);window.removeEventListener("mouseup",_store.mouseUp,passiveSupported);_store()}},[]);return React.createElement("div",_object_spread_props(_object_spread({},props),{className:cx(cls.palette,className),style:style}),React.createElement("div",{ref:picker,className:cls.picker,onMouseDown:store.current.mouseDown}),React.createElement("div",{className:cls.chooser},React.createElement("div",{className:cls.range},React.createElement("input",{className:cx(cls.slider,cls.hue,type==="cmyk"&&cls.cmykHue),min:"0",max:"360",type:"range",value:hsva[0],onChange:store.current.setHue}),type!=="cmyk"?React.createElement("input",{className:cx(cls.slider,cls.opacity),min:"0",max:"1",step:"0.01",type:"range",value:hsva[3],onChange:store.current.handleAlphaRange}):null),React.createElement("div",{className:cls.preview,onClick:store.current.copy})),React.createElement("div",{className:cls.form},type==="hexa"?React.createElement(Input,{className:cls.input,name:"hex",size:"small",value:hexa,onChange:store.current.handleHexa,onBlur:e=>{store.current.setColor(e.target.value)},onKeyUp:e=>{if(e.key==="Enter"&&typeof hexa==="string"){store.current.setColor(hexa)}}}):color.map((n,i)=>{const isAlpha=i===3&&type!=="cmyk";return React.createElement(InputNumber,{key:type+i,size:"small",className:cls.input,value:n,max:opt[type].max[i],min:0,step:isAlpha?.01:1,formatter:isAlpha?formatterOpacity:null,parser:isAlpha?parseOpacity:null,onChange:v=>store.current.handleChange(i,v)})}),React.createElement("div",{className:cls.switch,onClick:store.current.switch},type)),React.createElement("div",{className:cls.color},window.EyeDropper&&React.createElement("i",{style:{"--c":"transparent"},onClickCapture:store.current.eyeDropper}),material.map(c=>React.createElement("i",{key:c,style:{"--c":c},onClick:()=>{store.current.setColor(c)}}))))};export default ColorPalette;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { type ColorPaletteProps
|
|
2
|
+
import { type ColorPaletteProps } from '../color-palette';
|
|
3
|
+
import type { ComponentSize } from '../index';
|
|
3
4
|
export interface ColorPickerProps extends ColorPaletteProps {
|
|
4
5
|
destroyInactive?: boolean;
|
|
5
6
|
popupClassName?: string;
|
package/es/color-picker/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _object_spread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};var ownKeys=Object.keys(source);if(typeof Object.getOwnPropertySymbols==="function"){ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))}ownKeys.forEach(function(key){_define_property(target,key,source[key])})}return target}function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly){symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable})}keys.push.apply(keys,symbols)}return keys}function _object_spread_props(target,source){source=source!=null?source:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(target,Object.getOwnPropertyDescriptors(source))}else{ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key))})}return target}function _object_without_properties(source,excluded){if(source==null)return{};var target=_object_without_properties_loose(source,excluded);var key,i;if(Object.getOwnPropertySymbols){var sourceSymbolKeys=Object.getOwnPropertySymbols(source);for(i=0;i<sourceSymbolKeys.length;i++){key=sourceSymbolKeys[i];if(excluded.indexOf(key)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(source,key))continue;target[key]=source[key]}}return target}function _object_without_properties_loose(source,excluded){if(source==null)return{};var target={};var sourceKeys=Object.keys(source);var key,i;for(i=0;i<sourceKeys.length;i++){key=sourceKeys[i];if(excluded.indexOf(key)>=0)continue;target[key]=source[key]}return target}import React,{useCallback,useEffect,useState}from"react";import{cls}from"./style";import{cx}from"../emotion";import
|
|
1
|
+
function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _object_spread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};var ownKeys=Object.keys(source);if(typeof Object.getOwnPropertySymbols==="function"){ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))}ownKeys.forEach(function(key){_define_property(target,key,source[key])})}return target}function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly){symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable})}keys.push.apply(keys,symbols)}return keys}function _object_spread_props(target,source){source=source!=null?source:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(target,Object.getOwnPropertyDescriptors(source))}else{ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key))})}return target}function _object_without_properties(source,excluded){if(source==null)return{};var target=_object_without_properties_loose(source,excluded);var key,i;if(Object.getOwnPropertySymbols){var sourceSymbolKeys=Object.getOwnPropertySymbols(source);for(i=0;i<sourceSymbolKeys.length;i++){key=sourceSymbolKeys[i];if(excluded.indexOf(key)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(source,key))continue;target[key]=source[key]}}return target}function _object_without_properties_loose(source,excluded){if(source==null)return{};var target={};var sourceKeys=Object.keys(source);var key,i;for(i=0;i<sourceKeys.length;i++){key=sourceKeys[i];if(excluded.indexOf(key)>=0)continue;target[key]=source[key]}return target}import React,{useCallback,useEffect,useState}from"react";import{cls}from"./style";import ColorPalette from"../color-palette";import{cx}from"../emotion";import Popover from"../popover";const ColorPicker=_param=>{var{destroyInactive=true,popupClassName,className,style,size,value,defaultValue="#fff",onChange}=_param,props=_object_without_properties(_param,["destroyInactive","popupClassName","className","style","size","value","defaultValue","onChange"]);const[val,setVal]=useState(value||defaultValue);const handleChange=useCallback(v=>{setVal(v)},[]);useEffect(()=>{return onChange===null||onChange===void 0?void 0:onChange(val||defaultValue)},[defaultValue,onChange,val]);return React.createElement(Popover,_object_spread_props(_object_spread({},props),{arrow:true,trigger:"click",content:React.createElement(ColorPalette,{value:val,onChange:handleChange}),destroyInactive:destroyInactive,popupClassName:cx(cls.picker,popupClassName),className:cx(cls.trigger,size&&cls[size],className),style:_object_spread_props(_object_spread({},style),{"--c":val})}),null)};export default ColorPicker;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type FieldNames, type BaseOption } from '../get-options';
|
|
3
|
+
import { type PopoverProps } from '../popover';
|
|
4
|
+
export interface DropdownOption extends BaseOption {
|
|
5
|
+
options?: DropdownOption[];
|
|
6
|
+
}
|
|
7
|
+
export interface DropdownProps extends PopoverProps {
|
|
8
|
+
options: (DropdownOption | string)[];
|
|
9
|
+
onChange?(val: string | number, item: DropdownOption): void;
|
|
10
|
+
value?: string | number;
|
|
11
|
+
selectable?: boolean;
|
|
12
|
+
fieldNames?: Partial<FieldNames>;
|
|
13
|
+
}
|
|
14
|
+
declare const Dropdown: React.FC<DropdownProps>;
|
|
15
|
+
export default Dropdown;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _object_spread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};var ownKeys=Object.keys(source);if(typeof Object.getOwnPropertySymbols==="function"){ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))}ownKeys.forEach(function(key){_define_property(target,key,source[key])})}return target}function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly){symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable})}keys.push.apply(keys,symbols)}return keys}function _object_spread_props(target,source){source=source!=null?source:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(target,Object.getOwnPropertyDescriptors(source))}else{ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key))})}return target}function _object_without_properties(source,excluded){if(source==null)return{};var target=_object_without_properties_loose(source,excluded);var key,i;if(Object.getOwnPropertySymbols){var sourceSymbolKeys=Object.getOwnPropertySymbols(source);for(i=0;i<sourceSymbolKeys.length;i++){key=sourceSymbolKeys[i];if(excluded.indexOf(key)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(source,key))continue;target[key]=source[key]}}return target}function _object_without_properties_loose(source,excluded){if(source==null)return{};var target={};var sourceKeys=Object.keys(source);var key,i;for(i=0;i<sourceKeys.length;i++){key=sourceKeys[i];if(excluded.indexOf(key)>=0)continue;target[key]=source[key]}return target}import React,{useEffect,useRef}from"react";import{isFunction}from"@moneko/common";import sso from"shared-store-object";import{cls}from"./style";import{cx}from"../emotion";import getOptions,{defaultFieldNames}from"../get-options";import Popover from"../popover";const Dropdown=_param=>{var{options,children,open=null,selectable,value,onChange,onOpenChange,disabled,fieldNames,className,popupClassName}=_param,props=_object_without_properties(_param,["options","children","open","selectable","value","onChange","onOpenChange","disabled","fieldNames","className","popupClassName"]);const state=useRef(sso({open,options:[],disabled,selectable,fieldNames:_object_spread({},defaultFieldNames,fieldNames),value,change(item){if(!item.disabled&&!state.current.disabled){if(isFunction(onChange)){onChange(item[state.current.fieldNames.value],item)}else{state.current.value=item[state.current.fieldNames.value]}state.current.openChange(false)}},openChange(next){if(isFunction(onOpenChange)){onOpenChange(next)}else{state.current.open=next}},renderMenu(list,option){const{options:optionsKey,label,value:valueKey}=option.fieldNames;return list.map((item,i)=>{if(Array.isArray(item[optionsKey])){return React.createElement(React.Fragment,{key:`${item[valueKey]}-${i}`},React.createElement("div",{className:cx(cls.group,item.className),style:item.style},item.icon&&React.createElement("span",{className:cls.icon},item.icon),item[label]),state.current.renderMenu(item[optionsKey],option))}return React.createElement("div",{key:`${item[valueKey]}-${i}`,className:cx(cls.item,item.className,item.danger&&cls.danger,option.selectable&&option.activeKey===item[valueKey]&&cls.active),"aria-disabled":option.disabled||item.disabled,onClick:e=>{e.preventDefault();e.stopPropagation();state.current.change(item)},style:item.style},item.icon&&React.createElement("span",{className:cls.icon},item.icon),item[label])})}}));const{open:show,options:list,disabled:disable,value:activeKey,selectable:isSelectable,fieldNames:fieldName}=state.current;useEffect(()=>{state.current.open=open},[open]);useEffect(()=>{state.current.selectable=selectable},[selectable]);useEffect(()=>{state.current.value=value},[value]);useEffect(()=>{state.current.disabled=disabled},[disabled]);useEffect(()=>{state.current("fieldNames",prev=>_object_spread({},prev,fieldNames))},[fieldNames]);useEffect(()=>{state.current.options=getOptions(options,state.current.fieldNames)},[options]);useEffect(()=>{const _state=state.current;return()=>{_state()}},[]);return React.createElement(Popover,_object_spread_props(_object_spread({},props),{className:cx(cls.dropdown,className),popupClassName:cx(cls.portal,popupClassName),open:show,onOpenChange:state.current.openChange,disabled:disabled,content:state.current.renderMenu(list,{disabled:disable,fieldNames:fieldName,selectable:isSelectable,activeKey})}),children)};export default Dropdown;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import{injectGlobal}from"../emotion";import prefixCls from"../prefix-cls";export const cls={dropdown:prefixCls("dropdown"),portal:prefixCls("dropdown-portal"),item:prefixCls("dropdown-item"),group:prefixCls("dropdown-group"),danger:prefixCls("dropdown-danger"),active:prefixCls("dropdown-active"),icon:prefixCls("dropdown-icon")};injectGlobal`
|
|
2
|
+
.${cls.dropdown} {
|
|
3
|
+
box-sizing: border-box;
|
|
4
|
+
}
|
|
5
|
+
.${cls.portal} {
|
|
6
|
+
box-sizing: border-box;
|
|
7
|
+
}
|
|
8
|
+
.${cls.icon} {
|
|
9
|
+
font-size: 14px;
|
|
10
|
+
margin-inline-end: 6px;
|
|
11
|
+
}
|
|
12
|
+
.${cls.item}, .${cls.group} {
|
|
13
|
+
border-radius: calc(var(--border-radius) / 1.5);
|
|
14
|
+
transition: 0.2s background-color ease, 0.2s color ease;
|
|
15
|
+
cursor: pointer;
|
|
16
|
+
box-sizing: border-box;
|
|
17
|
+
line-height: 1.57;
|
|
18
|
+
}
|
|
19
|
+
.${cls.item} {
|
|
20
|
+
padding: 5px 12px;
|
|
21
|
+
color: var(--text-color);
|
|
22
|
+
|
|
23
|
+
&:hover:not(&[aria-disabled]:not([aria-disabled='false'])) {
|
|
24
|
+
&:not(.${cls.active},.${cls.danger}) {
|
|
25
|
+
background-color: var(--disable-bg);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
&[aria-disabled]:not([aria-disabled='false']) {
|
|
30
|
+
cursor: not-allowed;
|
|
31
|
+
color: var(--disable-color);
|
|
32
|
+
}
|
|
33
|
+
&.${cls.active} {
|
|
34
|
+
background-color: var(--primary-selection);
|
|
35
|
+
}
|
|
36
|
+
&.${cls.danger} {
|
|
37
|
+
color: var(--error-color);
|
|
38
|
+
&.${cls.active}, &:hover {
|
|
39
|
+
color: #fff;
|
|
40
|
+
background-color: var(--error-color);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
.${cls.group} {
|
|
45
|
+
padding: 5px;
|
|
46
|
+
font-size: 12px;
|
|
47
|
+
color: var(--text-secondary);
|
|
48
|
+
}
|
|
49
|
+
`;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export type BaseOption = {
|
|
3
|
+
icon?: React.ReactNode;
|
|
4
|
+
value?: string;
|
|
5
|
+
label?: React.ReactNode;
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
className?: string;
|
|
8
|
+
style?: React.CSSProperties;
|
|
9
|
+
danger?: boolean;
|
|
10
|
+
options?: BaseOption[];
|
|
11
|
+
[key: string]: any;
|
|
12
|
+
};
|
|
13
|
+
export type FieldNames = {
|
|
14
|
+
label: string;
|
|
15
|
+
value: string;
|
|
16
|
+
options: string;
|
|
17
|
+
};
|
|
18
|
+
export declare const defaultFieldNames: {
|
|
19
|
+
label: string;
|
|
20
|
+
value: string;
|
|
21
|
+
options: string;
|
|
22
|
+
};
|
|
23
|
+
declare function getOptions<T extends BaseOption = BaseOption>(list: (T | string)[], fieldNames?: Partial<FieldNames>): BaseOption[];
|
|
24
|
+
export default getOptions;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _object_spread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};var ownKeys=Object.keys(source);if(typeof Object.getOwnPropertySymbols==="function"){ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))}ownKeys.forEach(function(key){_define_property(target,key,source[key])})}return target}function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly){symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable})}keys.push.apply(keys,symbols)}return keys}function _object_spread_props(target,source){source=source!=null?source:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(target,Object.getOwnPropertyDescriptors(source))}else{ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key))})}return target}export const defaultFieldNames={label:"label",value:"value",options:"options"};function getOptions(list,fieldNames){return list.map(item=>{const{options,label,value}=_object_spread({},defaultFieldNames,fieldNames);if(typeof item==="string"){return{[label]:item,[value]:item}}if(Array.isArray(item[options])){return _object_spread_props(_object_spread({},item),{[options]:getOptions(item[options],fieldNames)})}return _object_spread_props(_object_spread({},item),{[label]:typeof item[label]==="undefined"?item[value]:item[label]})})}export default getOptions;
|
package/es/index.d.ts
CHANGED
|
@@ -15,17 +15,22 @@ export { default as InputNumber, type InputNumberProps } from './input-number';
|
|
|
15
15
|
export { default as Radio, type RadioProps, type RadioOption } from './radio';
|
|
16
16
|
export { default as Checkbox, type CheckboxProps, type CheckboxOption } from './checkbox';
|
|
17
17
|
export { default as Segmented, type SegmentedProps, type SegmentedOption } from './segmented';
|
|
18
|
-
export { default as Tooltip, type TooltipProps
|
|
18
|
+
export { default as Tooltip, type TooltipProps } from './tooltip';
|
|
19
19
|
export { default as ColorPalette, type ColorPaletteProps } from './color-palette';
|
|
20
20
|
export { default as ColorPicker, type ColorPickerProps } from './color-picker';
|
|
21
21
|
export { default as Skeleton } from './skeleton';
|
|
22
|
+
export { default as Dropdown, type DropdownProps } from './dropdown';
|
|
23
|
+
export { default as Popover, type PopoverProps, type TriggerOption } from './popover';
|
|
24
|
+
export { default as Select, type SelectProps } from './select';
|
|
22
25
|
export { default as CodeBlock, type CodeBlockProps } from './code-block';
|
|
23
26
|
export { default as Photo, type PhotoProps, type ImageData } from './photo';
|
|
24
27
|
export { default as Carousel, type CarouselProps } from './carousel';
|
|
25
28
|
export { default as Portal, type PortalProps } from './portal';
|
|
26
29
|
export { default as Typography, type TypographyProps } from './typography';
|
|
27
30
|
export { default as Switch, type SwitchProps } from './switch';
|
|
31
|
+
export { default as Loading, type LoadingProps } from './loading';
|
|
28
32
|
export { default as prefixCls, setPrefixCls } from './prefix-cls';
|
|
29
33
|
export { default as highlight } from './highlight';
|
|
30
34
|
export { default as Prism } from './prism';
|
|
35
|
+
export { default as getOptions, defaultFieldNames, type FieldNames, type BaseOption, } from './get-options';
|
|
31
36
|
export type ComponentSize = 'small' | 'normal' | 'large';
|
package/es/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export*from"./emotion";export{default as Markdown,getMarkedImgList,markdownUtil}from"./markdown";export{default as BackTop}from"./back-top";export{default as Tree}from"./tree";export{default as fromSchema}from"./from-schema";export{default as HighlightText,strToHighlight,RegExp_HighLight}from"./highlight-text";export{default as colorScheme,generateTheme}from"./color-scheme";export{default as Avatar}from"./avatar";export{default as AvatarGroup}from"./avatar-group";export{default as CaptureScreen}from"./capture-screen";export{default as WaveCircle}from"./wave-circle";export{default as Button}from"./button";export{default as Input}from"./input";export{default as InputNumber}from"./input-number";export{default as Radio}from"./radio";export{default as Checkbox}from"./checkbox";export{default as Segmented}from"./segmented";export{default as Tooltip}from"./tooltip";export{default as ColorPalette}from"./color-palette";export{default as ColorPicker}from"./color-picker";export{default as Skeleton}from"./skeleton";export{default as CodeBlock}from"./code-block";export{default as Photo}from"./photo";export{default as Carousel}from"./carousel";export{default as Portal}from"./portal";export{default as Typography}from"./typography";export{default as Switch}from"./switch";export{default as prefixCls,setPrefixCls}from"./prefix-cls";export{default as highlight}from"./highlight";export{default as Prism}from"./prism";
|
|
1
|
+
export*from"./emotion";export{default as Markdown,getMarkedImgList,markdownUtil}from"./markdown";export{default as BackTop}from"./back-top";export{default as Tree}from"./tree";export{default as fromSchema}from"./from-schema";export{default as HighlightText,strToHighlight,RegExp_HighLight}from"./highlight-text";export{default as colorScheme,generateTheme}from"./color-scheme";export{default as Avatar}from"./avatar";export{default as AvatarGroup}from"./avatar-group";export{default as CaptureScreen}from"./capture-screen";export{default as WaveCircle}from"./wave-circle";export{default as Button}from"./button";export{default as Input}from"./input";export{default as InputNumber}from"./input-number";export{default as Radio}from"./radio";export{default as Checkbox}from"./checkbox";export{default as Segmented}from"./segmented";export{default as Tooltip}from"./tooltip";export{default as ColorPalette}from"./color-palette";export{default as ColorPicker}from"./color-picker";export{default as Skeleton}from"./skeleton";export{default as Dropdown}from"./dropdown";export{default as Popover}from"./popover";export{default as Select}from"./select";export{default as CodeBlock}from"./code-block";export{default as Photo}from"./photo";export{default as Carousel}from"./carousel";export{default as Portal}from"./portal";export{default as Typography}from"./typography";export{default as Switch}from"./switch";export{default as Loading}from"./loading";export{default as prefixCls,setPrefixCls}from"./prefix-cls";export{default as highlight}from"./highlight";export{default as Prism}from"./prism";export{default as getOptions,defaultFieldNames}from"./get-options";
|
package/es/input/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import type { ComponentSize } from '../index';
|
|
3
3
|
export interface InputProps<T = string | number | undefined> extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'prefix' | 'size' | 'onChange' | 'value' | 'type'> {
|
|
4
4
|
className?: string;
|
|
5
5
|
suffix?: React.ReactNode;
|
|
@@ -14,5 +14,5 @@ export interface InputProps<T = string | number | undefined> extends Omit<React.
|
|
|
14
14
|
formatter?: ((value?: T) => T) | null;
|
|
15
15
|
parser?: null | ((value?: T) => T);
|
|
16
16
|
}
|
|
17
|
-
declare const
|
|
18
|
-
export default
|
|
17
|
+
declare const _default: React.ForwardRefExoticComponent<InputProps<string | number> & React.RefAttributes<HTMLInputElement>>;
|
|
18
|
+
export default _default;
|
package/es/input/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _object_spread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};var ownKeys=Object.keys(source);if(typeof Object.getOwnPropertySymbols==="function"){ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))}ownKeys.forEach(function(key){_define_property(target,key,source[key])})}return target}function _object_without_properties(source,excluded){if(source==null)return{};var target=_object_without_properties_loose(source,excluded);var key,i;if(Object.getOwnPropertySymbols){var sourceSymbolKeys=Object.getOwnPropertySymbols(source);for(i=0;i<sourceSymbolKeys.length;i++){key=sourceSymbolKeys[i];if(excluded.indexOf(key)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(source,key))continue;target[key]=source[key]}}return target}function _object_without_properties_loose(source,excluded){if(source==null)return{};var target={};var sourceKeys=Object.keys(source);var key,i;for(i=0;i<sourceKeys.length;i++){key=sourceKeys[i];if(excluded.indexOf(key)>=0)continue;target[key]=source[key]}return target}import React,{useCallback,useEffect,useRef,useState}from"react";import{cls}from"./style";import{cx}from"../emotion";const Input=_param=>{var{className,suffix,prefix,value,size,type="text",status,disabled,formatter,parser,onChange,label,placeholder=" "}=_param,prpos=_object_without_properties(_param,["className","suffix","prefix","value","size","type","status","disabled","formatter","parser","onChange","label","placeholder"]);var _ref_current;const ref=useRef(null);const[x,setX]=useState(`${(_ref_current=ref.current)===null||_ref_current===void 0?void 0:_ref_current.offsetLeft}px`);const getValue=useCallback(val=>{return formatter?formatter===null||formatter===void 0?void 0:formatter(val):val},[formatter]);const parserValue=useCallback(val=>{if(parser){return parser(val)}else if(type==="number"&&typeof val==="string"){const num=val.replace(/[^\d]/g,"");return num.length?parseFloat(num):undefined}return val},[parser,type]);const handleChange=useCallback(e=>{onChange===null||onChange===void 0?void 0:onChange(parserValue(e.target.value))},[onChange,parserValue]);useEffect(()=>{var _ref_current;setX(`${(_ref_current=ref.current)===null||_ref_current===void 0?void 0:_ref_current.offsetLeft}px`)},[]);return React.createElement("fieldset",{className:cx(cls.fieldset,size&&cls[size],status&&cls[status],className),disabled:disabled},prefix?React.createElement("span",{className:cls.prefix},prefix):null,React.createElement("input",_object_spread({ref:ref,type:type,value:getValue(value),className:cls.input,onChange:handleChange,placeholder:placeholder},prpos)),label&&React.createElement("label",{className:cls.label,style:{"--x":x}},label),suffix?React.createElement("span",{className:cls.suffix},suffix):null)};export default Input;
|
|
1
|
+
function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _object_spread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};var ownKeys=Object.keys(source);if(typeof Object.getOwnPropertySymbols==="function"){ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))}ownKeys.forEach(function(key){_define_property(target,key,source[key])})}return target}function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly){symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable})}keys.push.apply(keys,symbols)}return keys}function _object_spread_props(target,source){source=source!=null?source:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(target,Object.getOwnPropertyDescriptors(source))}else{ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key))})}return target}function _object_without_properties(source,excluded){if(source==null)return{};var target=_object_without_properties_loose(source,excluded);var key,i;if(Object.getOwnPropertySymbols){var sourceSymbolKeys=Object.getOwnPropertySymbols(source);for(i=0;i<sourceSymbolKeys.length;i++){key=sourceSymbolKeys[i];if(excluded.indexOf(key)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(source,key))continue;target[key]=source[key]}}return target}function _object_without_properties_loose(source,excluded){if(source==null)return{};var target={};var sourceKeys=Object.keys(source);var key,i;for(i=0;i<sourceKeys.length;i++){key=sourceKeys[i];if(excluded.indexOf(key)>=0)continue;target[key]=source[key]}return target}import React,{useCallback,useEffect,useImperativeHandle,useRef,useState}from"react";import{cls}from"./style";import{cx}from"../emotion";const Input=_param=>{var{className,suffix,prefix,value,size,type="text",status,disabled,formatter,parser,onChange,label,placeholder=" ",myRef}=_param,prpos=_object_without_properties(_param,["className","suffix","prefix","value","size","type","status","disabled","formatter","parser","onChange","label","placeholder","myRef"]);var _ref_current;const ref=useRef(null);const[x,setX]=useState(`${(_ref_current=ref.current)===null||_ref_current===void 0?void 0:_ref_current.offsetLeft}px`);useImperativeHandle(myRef,()=>ref.current);const getValue=useCallback(val=>{return formatter?formatter===null||formatter===void 0?void 0:formatter(val):val},[formatter]);const parserValue=useCallback(val=>{if(parser){return parser(val)}else if(type==="number"&&typeof val==="string"){const num=val.replace(/[^\d]/g,"");return num.length?parseFloat(num):undefined}return val},[parser,type]);const handleChange=useCallback(e=>{onChange===null||onChange===void 0?void 0:onChange(parserValue(e.target.value))},[onChange,parserValue]);useEffect(()=>{var _ref_current;setX(`${(_ref_current=ref.current)===null||_ref_current===void 0?void 0:_ref_current.offsetLeft}px`)},[]);return React.createElement("fieldset",{className:cx(cls.fieldset,size&&cls[size],status&&cls[status],className),disabled:disabled},prefix?React.createElement("span",{className:cls.prefix},prefix):null,React.createElement("input",_object_spread({ref:ref,type:type,value:getValue(value),className:cls.input,onChange:handleChange,placeholder:placeholder},prpos)),label&&React.createElement("label",{className:cls.label,style:{"--x":x}},label),suffix?React.createElement("span",{className:cls.suffix},suffix):null)};export default React.forwardRef((props,ref)=>React.createElement(Input,_object_spread_props(_object_spread({},props),{myRef:ref})));
|
package/es/input-number/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _object_spread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};var ownKeys=Object.keys(source);if(typeof Object.getOwnPropertySymbols==="function"){ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))}ownKeys.forEach(function(key){_define_property(target,key,source[key])})}return target}function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly){symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable})}keys.push.apply(keys,symbols)}return keys}function _object_spread_props(target,source){source=source!=null?source:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(target,Object.getOwnPropertyDescriptors(source))}else{ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key))})}return target}function _object_without_properties(source,excluded){if(source==null)return{};var target=_object_without_properties_loose(source,excluded);var key,i;if(Object.getOwnPropertySymbols){var sourceSymbolKeys=Object.getOwnPropertySymbols(source);for(i=0;i<sourceSymbolKeys.length;i++){key=sourceSymbolKeys[i];if(excluded.indexOf(key)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(source,key))continue;target[key]=source[key]}}return target}function _object_without_properties_loose(source,excluded){if(source==null)return{};var target={};var sourceKeys=Object.keys(source);var key,i;for(i=0;i<sourceKeys.length;i++){key=sourceKeys[i];if(excluded.indexOf(key)>=0)continue;target[key]=source[key]}return target}import React,{useEffect,useRef}from"react";import{passiveSupported}from"@moneko/common";import sso from"shared-store-object";import{cls}from"./style";import{cx}from"../emotion";import
|
|
1
|
+
function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _object_spread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};var ownKeys=Object.keys(source);if(typeof Object.getOwnPropertySymbols==="function"){ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))}ownKeys.forEach(function(key){_define_property(target,key,source[key])})}return target}function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly){symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable})}keys.push.apply(keys,symbols)}return keys}function _object_spread_props(target,source){source=source!=null?source:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(target,Object.getOwnPropertyDescriptors(source))}else{ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key))})}return target}function _object_without_properties(source,excluded){if(source==null)return{};var target=_object_without_properties_loose(source,excluded);var key,i;if(Object.getOwnPropertySymbols){var sourceSymbolKeys=Object.getOwnPropertySymbols(source);for(i=0;i<sourceSymbolKeys.length;i++){key=sourceSymbolKeys[i];if(excluded.indexOf(key)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(source,key))continue;target[key]=source[key]}}return target}function _object_without_properties_loose(source,excluded){if(source==null)return{};var target={};var sourceKeys=Object.keys(source);var key,i;for(i=0;i<sourceKeys.length;i++){key=sourceKeys[i];if(excluded.indexOf(key)>=0)continue;target[key]=source[key]}return target}import React,{useEffect,useRef}from"react";import{passiveSupported}from"@moneko/common";import sso from"shared-store-object";import{cls}from"./style";import{cx}from"../emotion";import Input from"../input";const InputNumber=_param=>{var{value,min=Number.MIN_SAFE_INTEGER,max=Number.MAX_SAFE_INTEGER,step=1,formatter,parser,onChange,onMouseDown,onKeyDown,precision=2,className}=_param,prpos=_object_without_properties(_param,["value","min","max","step","formatter","parser","onChange","onMouseDown","onKeyDown","precision","className"]);const state=useRef(sso({move:false,value,precision,step,min,max,mouseUp(){state.current.move=false},mouseMove({movementX,movementY}){const _val=state.current.value;const val=typeof _val==="number"&&!isNaN(_val)?_val:0;state.current.change(Number(Number(val+(movementX-movementY)*state.current.step).toFixed(state.current.precision)))},mouseDown(e){state.current.move=true;onMouseDown===null||onMouseDown===void 0?void 0:onMouseDown(e)},keyDown(e){if(e.key==="ArrowUp"){state.current.mouseMove({movementX:0,movementY:-1})}else if(e.key==="ArrowDown"){state.current.mouseMove({movementX:0,movementY:1})}onKeyDown===null||onKeyDown===void 0?void 0:onKeyDown(e)},change(val){let _val=typeof val==="string"?parseFloat(val):val;if(isNaN(_val)){_val=""}if(typeof _val!=="undefined"){if(_val<state.current.min)_val=state.current.min;if(_val>state.current.max)_val=state.current.max}if(state.current.value!==_val){state.current.value=_val;onChange===null||onChange===void 0?void 0:onChange(_val)}}}));const{move}=state.current;useEffect(()=>{state.current.value=value},[value]);useEffect(()=>{state.current.precision=precision},[precision]);useEffect(()=>{state.current.step=step},[step]);useEffect(()=>{state.current.min=min},[min]);useEffect(()=>{state.current.max=max},[max]);useEffect(()=>{const _state=state.current;if(move){document.body.addEventListener("mousemove",_state.mouseMove,passiveSupported)}return()=>{document.body.removeEventListener("mousemove",_state.mouseMove,passiveSupported)}},[move]);useEffect(()=>{const _state=state.current;document.body.addEventListener("mouseup",_state.mouseUp,passiveSupported);return()=>{document.body.removeEventListener("mouseup",_state.mouseUp,passiveSupported);_state()}},[]);return React.createElement(Input,_object_spread_props(_object_spread({},prpos),{className:cx(cls.number,className),value:value,max:max,min:min,onChange:state.current.change,onMouseDown:state.current.mouseDown,onKeyDown:state.current.keyDown,parser:parser,formatter:formatter}))};export default InputNumber;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import React from"react";import{cls}from"./style";import{cx}from"..";const Loading=({loading,children,style,className})=>{return React.createElement("div",{className:cx(cls.box,loading&&cls.loading,className),style:style},React.createElement("div",{className:cls.content},children))};export default Loading;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import{injectGlobal}from"../emotion";import prefixCls from"../prefix-cls";export const cls={box:prefixCls("loading-box"),content:prefixCls("loading-content"),loading:prefixCls("loading")};injectGlobal`
|
|
2
|
+
.${cls.box} {
|
|
3
|
+
position: relative;
|
|
4
|
+
box-sizing: border-box;
|
|
5
|
+
}
|
|
6
|
+
.${cls.content} {
|
|
7
|
+
opacity: 1;
|
|
8
|
+
transition: opacity 0.3s;
|
|
9
|
+
}
|
|
10
|
+
.${cls.loading} {
|
|
11
|
+
.${cls.content} {
|
|
12
|
+
opacity: 0.3;
|
|
13
|
+
pointer-events: none;
|
|
14
|
+
user-select: none;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
&::before {
|
|
18
|
+
position: absolute;
|
|
19
|
+
display: flex;
|
|
20
|
+
justify-content: center;
|
|
21
|
+
align-items: center;
|
|
22
|
+
margin: auto;
|
|
23
|
+
border-style: solid;
|
|
24
|
+
border-width: 1px 0;
|
|
25
|
+
border-color: var(--text-secondary);
|
|
26
|
+
border-radius: 16px;
|
|
27
|
+
font-size: large;
|
|
28
|
+
text-align: center;
|
|
29
|
+
inline-size: 32px;
|
|
30
|
+
block-size: 32px;
|
|
31
|
+
inset-block-start: 0;
|
|
32
|
+
inset-block-end: 0;
|
|
33
|
+
inset-inline-start: 0;
|
|
34
|
+
inset-inline-end: 0;
|
|
35
|
+
box-sizing: border-box;
|
|
36
|
+
content: '✲';
|
|
37
|
+
animation: loading-rotate-effect 1s infinite;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
@keyframes loading-rotate-effect {
|
|
42
|
+
0% {
|
|
43
|
+
transform: rotate(0deg);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
100% {
|
|
47
|
+
transform: rotate(360deg);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
`;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export type TriggerOption = 'hover' | 'click' | 'contextMenu' | 'none';
|
|
3
|
+
export interface PopoverProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title' | 'content' | 'value' | 'onChange'> {
|
|
4
|
+
children: React.ReactNode;
|
|
5
|
+
content: React.ReactNode;
|
|
6
|
+
/** 挂载到指定的元素,值为一个返回对应 DOM 元素 默认 document.body */
|
|
7
|
+
getPopupContainer?: (node?: HTMLElement | null) => HTMLElement;
|
|
8
|
+
/** 触发行为,可使用数组设置多个触发行为 */
|
|
9
|
+
trigger?: TriggerOption | TriggerOption[];
|
|
10
|
+
open?: boolean | null;
|
|
11
|
+
onOpenChange?(open: boolean | null): void;
|
|
12
|
+
popupClassName?: string;
|
|
13
|
+
popupStyle?: React.CSSProperties;
|
|
14
|
+
/** 关闭后是否销毁 */
|
|
15
|
+
destroyInactive?: boolean;
|
|
16
|
+
disabled?: boolean;
|
|
17
|
+
arrow?: boolean;
|
|
18
|
+
placement?: 'bottomLeft' | 'bottom' | 'bottomRight' | 'topLeft' | 'top' | 'topRight';
|
|
19
|
+
}
|
|
20
|
+
declare const Popover: React.FC<PopoverProps>;
|
|
21
|
+
export default Popover;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _object_spread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};var ownKeys=Object.keys(source);if(typeof Object.getOwnPropertySymbols==="function"){ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))}ownKeys.forEach(function(key){_define_property(target,key,source[key])})}return target}function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly){symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable})}keys.push.apply(keys,symbols)}return keys}function _object_spread_props(target,source){source=source!=null?source:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(target,Object.getOwnPropertyDescriptors(source))}else{ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key))})}return target}function _object_without_properties(source,excluded){if(source==null)return{};var target=_object_without_properties_loose(source,excluded);var key,i;if(Object.getOwnPropertySymbols){var sourceSymbolKeys=Object.getOwnPropertySymbols(source);for(i=0;i<sourceSymbolKeys.length;i++){key=sourceSymbolKeys[i];if(excluded.indexOf(key)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(source,key))continue;target[key]=source[key]}}return target}function _object_without_properties_loose(source,excluded){if(source==null)return{};var target={};var sourceKeys=Object.keys(source);var key,i;for(i=0;i<sourceKeys.length;i++){key=sourceKeys[i];if(excluded.indexOf(key)>=0)continue;target[key]=source[key]}return target}import React,{useEffect,useMemo,useRef}from"react";import{getMaxZindex,isString,isFunction,passiveSupported}from"@moneko/common";import sso from"shared-store-object";import{cls}from"./style";import{cx}from"../emotion";import Portal from"../portal";const Popover=_param=>{var{className,popupClassName,popupStyle,getPopupContainer,children,content,trigger="hover",open=null,destroyInactive=true,onOpenChange,disabled,placement,arrow}=_param,props=_object_without_properties(_param,["className","popupClassName","popupStyle","getPopupContainer","children","content","trigger","open","destroyInactive","onOpenChange","disabled","placement","arrow"]);const ref=useRef(null);const childRef=useRef(null);const state=useRef(sso({show:open,closeTimer:null,up:false,posi:{left:-9999,top:-9999,x:"0px"},trigger,disabled,arrow,placement,exit(){if(state.current.show===false){state.current.show=null}},close(e){e.preventDefault();e.stopPropagation();if(state.current.closeTimer){clearTimeout(state.current.closeTimer);state.current.closeTimer=null}state.current.closeTimer=setTimeout(()=>{if(state.current.closeTimer){clearTimeout(state.current.closeTimer);state.current.closeTimer=null}if(state.current.show){state.current.openChange(false)}},state.current.trigger==="hover"?300:0)},open(e){e.preventDefault();e.stopPropagation();if(state.current.closeTimer){clearTimeout(state.current.closeTimer);state.current.closeTimer=null}if(state.current.trigger==="contextMenu"&&e.type==="contextmenu"){var _ref_current;state.current.posi=_object_spread_props(_object_spread({},state.current.posi),{left:e.clientX,top:e.clientY,x:-(((_ref_current=ref.current)===null||_ref_current===void 0?void 0:_ref_current.getBoundingClientRect().width)||0)/2+16+"px"})}state.current.openChange(true)},openChange(next){if(!state.current.disabled){if(isFunction(onOpenChange)){onOpenChange(next)}else{state.current.show=next}}},showPortal(e){if(!state.current.show||!ref.current||!childRef.current||!e&&state.current.trigger==="contextMenu"){return}if((e===null||e===void 0?void 0:e.type)==="scroll"&&state.current.trigger==="contextMenu"){state.current.openChange(false);return}const elRect=childRef.current.getBoundingClientRect();const portalRect=ref.current.getBoundingClientRect();const offsetX=portalRect.width/2-elRect.width/2;const margin=window.innerHeight-elRect.bottom;let _isBottom=true;const arrowHeight=state.current.arrow?8:4;const _posi={left:-9999,top:-9999,x:"0px"};switch(state.current.placement){case"bottomLeft":_posi.left=elRect.left;_posi.x=-portalRect.width/2+16+"px";_isBottom=true;break;case"bottom":_posi.left=Math.abs(offsetX>elRect.left?elRect.left:elRect.left-offsetX);_posi.x=-(_posi.left-elRect.left+offsetX)+"px";_isBottom=true;break;case"bottomRight":_posi.left=elRect.right-portalRect.width;_posi.x=portalRect.width/2-16+"px";_isBottom=true;break;case"topLeft":_posi.left=elRect.left;_posi.x=-portalRect.width/2+16+"px";_isBottom=false;break;case"top":_posi.left=Math.abs(offsetX>elRect.left?elRect.left:elRect.left-offsetX);_posi.x=-(_posi.left-elRect.left+offsetX)+"px";_isBottom=false;break;case"topRight":_posi.left=elRect.right-portalRect.width;_posi.x=portalRect.width/2-16+"px";_isBottom=false;break;default:_posi.left=Math.abs(offsetX>elRect.left?elRect.left:elRect.left-offsetX);_posi.x=-(_posi.left-elRect.left+offsetX)+"px";_isBottom=margin>ref.current.offsetHeight*.8&&margin>elRect.top;break}if(_isBottom){_posi.top=elRect.bottom+arrowHeight}else{_posi.top=elRect.top-ref.current.offsetHeight-arrowHeight}state.current.posi=_posi;state.current.up=!_isBottom}}));const{show,posi,up,arrow:showArrow,trigger:triggerType}=state.current;const container=useMemo(()=>{if(isFunction(getPopupContainer)){return getPopupContainer(childRef.current)}return document.body},[getPopupContainer]);const childrenProps=useMemo(()=>{const _props={};const openEvent={click:"onClick",hover:"onMouseOver",contextMenu:"onContextMenu",none:null};const closeEvent={hover:"onMouseOut",click:null,contextMenu:null,none:null};const triggers=isString(triggerType)?[triggerType]:triggerType;for(let i=0,len=triggers.length;i<len;i++){const openFn=openEvent[triggers[i]];const closeFn=closeEvent[triggers[i]];Object.assign(_props,openFn&&{[openFn]:state.current.open},closeFn&&{[closeFn]:state.current.close})}return _props},[triggerType]);const style=useMemo(()=>{return _object_spread_props(_object_spread({},popupStyle),{left:posi.left,top:posi.top,"--x":posi.x,zIndex:getMaxZindex().toString()})},[popupStyle,posi]);useEffect(()=>{state.current.show=open},[open]);useEffect(()=>{state.current.trigger=trigger},[trigger]);useEffect(()=>{state.current.arrow=arrow},[arrow]);useEffect(()=>{state.current.disabled=disabled},[disabled]);useEffect(()=>{state.current.placement=placement},[placement]);useEffect(()=>{state.current.showPortal()},[show]);useEffect(()=>{const _state=state.current;if(_state.trigger!=="none"){document.documentElement.addEventListener("click",_state.close,false)}window.addEventListener("scroll",_state.showPortal,passiveSupported);return()=>{if(_state.closeTimer){clearTimeout(_state.closeTimer)}if(_state.trigger!=="none"){document.documentElement.removeEventListener("click",_state.close,false)}window.removeEventListener("scroll",_state.showPortal,passiveSupported);_state()}},[]);return React.createElement(React.Fragment,null,(show!==null||!destroyInactive)&&React.createElement(Portal,{container:container},React.createElement("div",_object_spread_props(_object_spread({},childrenProps),{ref:ref,onAnimationEnd:state.current.exit,className:cx(cls.portal,showArrow&&cls.arrow,show?up?cls.inUp:cls.inDown:up?cls.outUp:cls.outDown,popupClassName),style:style}),content)),React.createElement("span",_object_spread_props(_object_spread({},props,childrenProps),{className:cx(cls.popover,className),ref:childRef}),children))};export default Popover;
|