amotify 0.2.252 → 0.2.254
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/demo/next/package.json +1 -1
- package/dist/atoms/index.d.ts +1 -1
- package/dist/atoms/index.js +1 -1
- package/dist/fn/Input/Parts copy.d.ts +25 -0
- package/dist/fn/Input/Parts copy.js +1 -0
- package/dist/fn/Input/core.js +1 -1
- package/dist/fn/Input/fn.d.ts +14 -0
- package/dist/fn/Input/fn.js +1 -0
- package/dist/fn/Input/index.d.ts +8 -0
- package/dist/fn/Input/index.js +1 -1
- package/dist/fn/Sheet.d.ts +26 -47
- package/dist/fn/Sheet.js +1 -1
- package/package.json +1 -1
package/demo/next/package.json
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"scripts": {
|
|
6
6
|
"start": "run-p clean dev:next",
|
|
7
7
|
"clean": "rimraf .next serverDist",
|
|
8
|
-
"dev:next": "NODE_OPTIONS=\"--max-old-space-size=8192\" NEXT_TURBOPACK_TRACING=
|
|
8
|
+
"dev:next": "NODE_OPTIONS=\"--max-old-space-size=8192\" NEXT_TURBOPACK_TRACING=0 next dev --turbopack -p 8000"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"cross-env": "^7.0.3",
|
package/dist/atoms/index.d.ts
CHANGED
|
@@ -40,7 +40,7 @@ declare namespace CacheRender {
|
|
|
40
40
|
type Props<T> = {
|
|
41
41
|
params: T;
|
|
42
42
|
children: ReactElement;
|
|
43
|
-
|
|
43
|
+
forceRender?: (prev: Readonly<T>, next: Readonly<T>) => boolean;
|
|
44
44
|
};
|
|
45
45
|
type Component<T> = (props: Props<T>) => React.ReactElement | null;
|
|
46
46
|
}
|
package/dist/atoms/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as t,c as
|
|
1
|
+
import{b as t,c as n}from"../chunk-C5N2D3ZX.js";import{jsx as o}from"react/jsx-runtime";export*from"./Box";import l from"react";import p from"./Box";const m=e=>o(p,n(t({},e),{htmlTag:"span"})),c=e=>o(p,n(t({},e),{htmlTag:"p"})),r=e=>o(p,n(t({flexType:"row",flexWrap:!0,display:"flex"},e),{freeCSS:t({wordBreak:"break-word"},e.freeCSS)})),x=e=>o(p,t({width:1,flexSizing:"none"},e)),f=e=>o(p,t({flexSizing:0},e)),u=e=>o(r,t({flexType:"col",gap:1},e)),s=l.memo(e=>e.children,(e,a)=>e.forceRender?!e.forceRender(e.params,a.params):!1);export*from"./FAI";export*from"./Img";export*from"./Logo";export*from"./Placeholder";export*from"./Card";export*from"./Grid";export{s as CacheRender,u as Column,r as Flex,x as FlexBr,f as FlexMargin,c as P,m as Span};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { StyleTags, ReactElement } from '../../@declares';
|
|
3
|
+
import { Span } from '../../atoms';
|
|
4
|
+
import { InputTypes } from '.';
|
|
5
|
+
export declare namespace Parts {
|
|
6
|
+
type RequiredSign = React.FC<Span.Input>;
|
|
7
|
+
type RequiredShortSign = React.FC<Span.Input>;
|
|
8
|
+
type OmitSign = React.FC<Span.Input>;
|
|
9
|
+
type LeftIndicator = React.FC<Input>;
|
|
10
|
+
type RightIndicator = React.FC<Input>;
|
|
11
|
+
type LeftIcon = React.FC<Input>;
|
|
12
|
+
type RightIcon = React.FC<Input>;
|
|
13
|
+
type Input = StyleTags.States & {
|
|
14
|
+
tone?: InputTypes.BoxTone;
|
|
15
|
+
className?: string;
|
|
16
|
+
children: ReactElement;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
export declare const RequiredSign: React.FC<Span.Input>;
|
|
20
|
+
export declare const RequiredShortSign: React.FC<Span.Input>;
|
|
21
|
+
export declare const OmitSign: React.FC<Span.Input>;
|
|
22
|
+
export declare const LeftIndicator: React.FC<Parts.Input>;
|
|
23
|
+
export declare const RightIndicator: React.FC<Parts.Input>;
|
|
24
|
+
export declare const RightIcon: React.FC<Parts.Input>;
|
|
25
|
+
export declare const LeftIcon: React.FC<Parts.Input>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{b as e,c as n,d as p}from"../../chunk-C5N2D3ZX.js";import{jsx as i}from"react/jsx-runtime";import{Box as s,Span as u}from"../../atoms";const c=t=>{if(t||(t="border"),t=="plain")return{};let r={flexSizing:"none",padding:1,borderRadius:"2.tone.secondary",backgroundColor:"cloud"};return t=="border"?r=n(e({},r),{border:!0}):t=="cloud"?r=n(e({},r),{border:"1.thin"}):t=="bottomBorder"&&(r=n(e({},r),{borderRadius:0,borderBottom:!0})),r},d={position:"absolute",flexCenter:!0,fontColor:"theme",fontSize:"1.mini",backgroundColor:"inherit",top:"50%",freeCSS:{pointerEvents:"none",transform:"translateY(-50%)"}},I=t=>i(u,e({children:"\u5FC5\u9808",fontColor:"white",fontSize:"0.xs",padding:["1/4","1/3"],backgroundColor:"nega",borderRadius:"3.tone.tertiary"},t)),b=t=>i(u,e({children:"*",fontColor:"nega",padding:["1/4","1/3"],borderRadius:"3.tone.tertiary"},t)),h=t=>i(u,e({children:"\u7701\u7565\u53EF",fontColor:"white",fontSize:"0.xs",padding:["1/4","1/3"],borderRadius:"3.tone.tertiary",backgroundColor:"layer.6"},t)),x=t=>{let o=t,{tone:r}=o,a=p(o,["tone"]);return i(s,e(n(e({},c(r)),{borderTopRightRadius:"2/3",borderBottomRightRadius:"2/3"}),a))},m=t=>{let o=t,{tone:r}=o,a=p(o,["tone"]);return i(s,e(n(e({},c(r)),{borderTopLeftRadius:"2/3",borderBottomLeftRadius:"2/3"}),a))},y=t=>{let o=t,{tone:r="border"}=o,a=p(o,["tone"]);return i(s,n(e(n(e({},d),{right:1}),a),{freeCSS:e(e({},d.freeCSS),a.freeCSS)}))},F=t=>{let o=t,{tone:r="border"}=o,a=p(o,["tone"]);return i(s,n(e(n(e({},d),{left:1}),a),{freeCSS:e(e({},d.freeCSS),a.freeCSS)}))};export{F as LeftIcon,x as LeftIndicator,h as OmitSign,b as RequiredShortSign,I as RequiredSign,y as RightIcon,m as RightIndicator};
|
package/dist/fn/Input/core.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as n,c as
|
|
1
|
+
import{b as n,c as l,e as R}from"../../chunk-C5N2D3ZX.js";import{jsx as m,jsxs as C}from"react/jsx-runtime";import{useState as _,useEffect as g}from"react";import c,{UUID as y,useStore as S}from"jmini";import{$$fromRoot as x}from"../../@utils";import{InputClasses as T}from"../../@styles/componentClasses";import{Box as D,Flex as k,FAI as v,Column as B}from"../../atoms";import{Row as b,Literal as E}from"../../mols";import{Button as F}from"../Button";import V from"../Tooltips";const Z=t=>{let[i]=_(t.componentId||y(12));t=n({},t),t.states=l(n({enableFormSubmit:!0,status_id:y(),override:"never",form:"",id:y(),"aria-label":"Input-"+i},t.states),{componentId:i});let{children:a}=t;return m(a,n({},t.states))},tt=t=>{let{children:i,val_status:a,states:e}=t,{leftIcon:r,wrapStyles:p}=e,s=a.notice||[];return e.checkValidationAtFirst||a.eventType=="init"&&(s=[]),C(b.Center,l(n({position:"relative",verticalAlign:"unset",gap:0},p),{className:T("Wrapper"),"data-notice-uid":a.componentId,children:[m(h.Notice,{notice:s,val_status:a}),e.leftIndicator,C(k,{position:"relative",flexSizing:"auto",children:[i,r,m(h.RightIcon,n({},t)),m(h.ClearButton,n({},t))]}),e.rightIndicator]}))},h={ClearButton:t=>!t.states.clearButton||!t.val_status.dataValue?null:m(F.Normal,{ssSphere:2,flexCenter:!0,fontColor:"5.translucent",ssEffectsOnActive:["ripple.theme"],position:"absolute",right:1,top:"50%",freeCSS:{zIndex:3,transform:"translateY(-50%)"},onClick:()=>{t.set_status(i=>l(n({},i),{dataValue:"",formatValue:"",eventType:"update",eventID:y(12),isInspected:!1}))},children:m(v.X,{})}),RightIcon:t=>t.states.clearButton&&t.val_status.dataValue?null:t.states.rightIcon,Notice:t=>{let{notice:i,val_status:a}=t,{componentId:e}=a,r="NoticeTimer-"+e,p="NoticeTimerClose-"+e,s="notice-tips-"+e;return g(()=>{c.interval.once(()=>{if(!(i!=null&&i.length)){V.close(s);return}V.open({tipsID:s,parent:`[data-notice-uid="${e}"]`,gravityPoint:24,padding:[1,0],closeAtParentBlur:!1,content:C(V.Body,{padding:["1/2","2/3"],fontSize:"1.mini",position:"relative",children:[m(D,{position:"absolute",unitHeight:1,unitWidth:1,right:1,backgroundColor:"dark",freeCSS:{zIndex:1,transform:"rotate(45deg)",top:-6}}),m(B,{backgroundColor:"inherit",gap:"1/3",position:"relative",freeCSS:{zIndex:2},children:i.map((o,u)=>{let{type:f,label:d}=o,I=f=="invalid"?v.Exclamation:f=="warn"?v.Exclamation:v.Check;return C(b.Left,{gap:0,borderRadius:"2.tone.secondary",children:[m(I,{flexCenter:!0,fontSize:"2.normal",fontColor:{invalid:"nega",warn:"warn",valid:"posi"}[f]}),m(E.Supplement,{fontSize:"0.xs",fontColor:"white",children:d})]},u+"-"+c.Stringify(o))})})]})})},350,r),c.interval.once(()=>{V.close(s)},6e3,p)},[i]),null}},w={DefaultStatus:(t,i)=>({componentId:t,dataValue:i,eventType:"init",eventID:y(12)}),CommonEffects:function(t){let{type:i,states:a,val_status:e,set_status:r,SystemValidation:p}=t;a=n({},a);let{componentId:s}=e;g(()=>(S.update({[`input_alias:id:${a.id}`]:{componentId:s},[`input_alias:name:${a.name}`]:{componentId:s},[s]:{ResolveRefresh:null,remoteUpdate:o=>{r(u=>l(n({},u),{isInspected:!1,isValidated:!1,dataValue:o,formatValue:o,eventType:"update",eventID:y(12)}))},Refresh:()=>new Promise((o,u)=>{S.get(s).ResolveRefresh=o,r(f=>l(n({},f),{isInspected:!1,eventType:"refresh",eventID:y(12)}))})}}),()=>{S.delete(s)}),[]),g(()=>{w.ValidationCheck({val_status:e,set_status:r,SystemValidation:p,states:a})},[e.eventID,e.dataValue]),c.scope(()=>{let{override:o}=a;if(o=="never"||o=="beforeModified"&&!["init","override"].includes(e.eventType)||e.isComposing)return;let u=S.get(e.componentId);if(!u)return;if(c.is.equal(a.value,e.dataValue)){u.status_id=a.status_id;return}let f=c.SortifyObject(a.value),d=c.SortifyObject(e.dataValue);if(f&&d&&c.is.equal(f,d)){u.status_id=a.status_id;return}a.status_id!=u.status_id&&(e.eventType=="update"&&!e.isInspected||r(I=>l(n(l(n({},I),{dataValue:a.value}),t.ExtraOverrideStates&&t.ExtraOverrideStates()),{eventType:"override",eventID:y(12),isInspected:!1,isValidated:!1})))});{let{componentId:o,eventType:u,dataValue:f}=e,d=f;i=="autocomplete.single"||i=="list.radio"?d=d[0]:a.isChecker&&(d=!!d[0]),g(()=>(c.scope(()=>{if(a.form=a.form||"testForm",a.name&&a.form&&S.update({[["form-data",a.form].join("-")]:{[a.name]:{componentId:o,type:i,value:d,validation:e.isValidated}}}),!e.isInspected||u!="refresh")return;let I=S.get(o);I&&I.ResolveRefresh&&I.ResolveRefresh(null)}),()=>{S.update({[["form-data",a.form].join("-")]:{[a.name]:null}})}),[e]),g(()=>{a.onUserAction&&a.onUserAction(d,{eventType:u,componentId:o,isInspected:!!e.isInspected,isValidated:!!e.isValidated,isComposing:!!e.isComposing,isFocusing:!!e.isFocusing})},[e]),g(()=>{e.isInspected&&u=="update"&&(a.onUpdateValue&&a.onUpdateValue(d,{eventType:u,componentId:o,isValidated:!!e.isValidated,isComposing:!!e.isComposing,isFocusing:!!e.isFocusing}),e.isValidated&&a.onUpdateValidValue&&a.onUpdateValidValue(d,{eventType:u,componentId:o,isValidated:!!e.isValidated,isComposing:!!e.isComposing,isFocusing:!!e.isFocusing}))},[e.isValidated,e.isInspected,e.dataValue])}},ValidationCheck:t=>{let{states:i}=t;if(t.val_status.isInspected)return;let a="ValidationTimer-"+t.val_status.componentId;c.interval.abort(a),t.set_status(s=>l(n({},s),{isInspected:!1,isValidated:!1}));let e=t.SystemValidation({value:t.val_status.dataValue,states:i});if(!e.ok){t.set_status(s=>l(n({},s),{isInspected:!0,isValidated:!!e.ok,notice:e.notice||[]}));return}let r=e.notice||[];const p=()=>R(void 0,null,function*(){if(!i.onValidate)return;let s=yield i.onValidate(t.val_status.dataValue,t.val_status.eventType,t.val_status);t.set_status(o=>l(n({},o),{isInspected:!0,isValidated:!!s.ok,notice:[...r,...s.notice||[]]}))});if(i.onValidate){if(t.val_status.eventType=="refresh"){p();return}c.interval.once(p,i.onValidateDelay||500,a);return}t.set_status(s=>l(n({},s),{eventID:y(12),isInspected:!0,isValidated:!0,notice:r}))},SubmitForm:(t,i)=>{let a=!1;if(!i)return a;let e=x(`[data-form-submit-button="${i}"]`)[0];if(!e)return a;let r=e.dataset.sdfike||"",p=t.key,s=t.ctrlKey||t.metaKey;return c.scope(()=>{r.includes("enter")&&(p!="Enter"||t.nativeEvent.isComposing||(t==null?void 0:t.keyCode)==229)||((p=="Enter"&&(r.includes("enter")||r.includes("auxEnter")&&s)||p==" "&&r.includes("space"))&&(e.click(),t.preventDefault()),a=!0)}),a},isShowValidation:(t,i)=>{let a=t.isValidated;return!i&&t.eventType=="init"?!0:a}},et=function(t){t=n({tone:"border"},t);let i=c.scope(()=>{if(t.tone=="plain")return{};let e={padding:1,transition:"middle",flexSizing:"auto",boxShadow:"0.min"};return t.tone=="border"?e=l(n({},e),{border:!0,borderRadius:"2.tone.secondary",backgroundColor:"layer.1"}):t.tone=="cloud"?e=l(n({},e),{border:"1.thin",borderRadius:"2.tone.secondary",backgroundColor:"cloud"}):t.tone=="bottomBorder"&&(e=l(n({},e),{borderRadius:0,border:"unset",borderBottom:!0,backgroundColor:"cloud"})),e});return l(n(n(n(n(n(n({fontColor:"2.normal"},i),!!t.rightIcon&&{paddingRight:3}),!!t.leftIcon&&{paddingLeft:3}),!!t.leftIndicator&&{borderTopLeftRadius:"2/3",borderBottomLeftRadius:"2/3",marginLeft:"1/4"}),!!t.rightIndicator&&{borderTopRightRadius:"2/3",borderBottomRightRadius:"2/3",marginRight:"1/4"}),t),{freeCSS:n({letterSpacing:"1px",resize:"none"},t.freeCSS),className:[T("Input"),t.className].join(" ")})};export{tt as BoxWrapper,w as CoreEffects,et as DefaultBoxishStyles,Z as OptionalInputWrapper};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { Span } from '../../atoms';
|
|
3
|
+
declare namespace fn {
|
|
4
|
+
type RequiredSign = React.FC<Span.Input>;
|
|
5
|
+
type Methods = {
|
|
6
|
+
remoteUpdate(value: any, opt: {
|
|
7
|
+
componentId?: string;
|
|
8
|
+
name?: string;
|
|
9
|
+
id?: string;
|
|
10
|
+
}): void;
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
declare const fn: fn.Methods;
|
|
14
|
+
export { fn, fn as default };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"../../chunk-C5N2D3ZX.js";import d,{useStore as i}from"jmini";const r={remoteUpdate:(m,e)=>{let n=(e==null?void 0:e.componentId)||"";d.scope(()=>{if(n)return;let a="";e!=null&&e.id&&(a=`input_alias:id:${e.id}`),e!=null&&e.name&&(a=`input_alias:name:${e.name}`),n=i.get(a).componentId||""});let t=i.get(n||"");t&&t.remoteUpdate&&t.remoteUpdate(m)}};export{r as default,r as fn};
|
package/dist/fn/Input/index.d.ts
CHANGED
|
@@ -23,6 +23,12 @@ export declare namespace InputTypes {
|
|
|
23
23
|
form?: string;
|
|
24
24
|
status_id?: string;
|
|
25
25
|
componentId?: string;
|
|
26
|
+
/**
|
|
27
|
+
*
|
|
28
|
+
* 'never' as default, means validation will be triggered at user action, and only when value is changed in Input Component.
|
|
29
|
+
* force: [Deprecated] 2026/03
|
|
30
|
+
* beforeModified: [Deprecated] 2026/03
|
|
31
|
+
*/
|
|
26
32
|
override?: 'force' | 'beforeModified' | 'never';
|
|
27
33
|
required?: boolean;
|
|
28
34
|
enableFormSubmit?: boolean;
|
|
@@ -87,6 +93,7 @@ export declare namespace InputTypes {
|
|
|
87
93
|
}
|
|
88
94
|
import * as _Parts from './Parts';
|
|
89
95
|
export * from './Parts';
|
|
96
|
+
import _fn from './fn';
|
|
90
97
|
import _Plain from './Plain';
|
|
91
98
|
import _Hidden from './Hidden';
|
|
92
99
|
import _TextField from './TextField';
|
|
@@ -106,6 +113,7 @@ import _Segmented from './Segmented';
|
|
|
106
113
|
import _Color from './Color';
|
|
107
114
|
import _CollectForm from './CollectForm';
|
|
108
115
|
declare namespace Input {
|
|
116
|
+
export import fn = _fn;
|
|
109
117
|
export import Plain = _Plain;
|
|
110
118
|
export import Hidden = _Hidden;
|
|
111
119
|
export import TextField = _TextField;
|
package/dist/fn/Input/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import"../../chunk-C5N2D3ZX.js";import*as o from"./Parts";export*from"./Parts";import i from"./
|
|
1
|
+
import"../../chunk-C5N2D3ZX.js";import*as o from"./Parts";export*from"./Parts";import i from"./fn";import a from"./Plain";import p from"./Hidden";import m from"./TextField";import n from"./Contenteditable";import l from"./DigitCharacters";import d from"./Time";import s from"./Time/Selector";import c from"./Select";import x from"./Autocomplete";import*as r from"./List";import y from"./Search";import f from"./Filer";import T from"./Slider";import g from"./Switch";import b from"./Checker";import S from"./Segmented";import V from"./Color";import h from"./CollectForm";var t;(e=>(e.fn=i,e.Plain=a,e.Hidden=p,e.TextField=m,e.Contenteditable=n,e.DigitCharacters=l,e.Time=d,e.TimeSelector=s,e.Select=c,e.Autocomplete=x,e.List=r.List,e.Radio=r.Radio,e.Checkbox=r.Checkbox,e.Checker=b,e.Search=y,e.Filer=f,e.Slider=T,e.Switch=g,e.Segmented=S,e.Color=V,e.LeftIcon=o.LeftIcon,e.RightIcon=o.RightIcon,e.LeftIndicator=o.LeftIndicator,e.RightIndicator=o.RightIndicator,e.RequiredSign=o.RequiredSign,e.RequiredShortSign=o.RequiredShortSign,e.OmitSign=o.OmitSign,e.CollectForm=h))(t||(t={}));export{t as Input,t as default};
|
package/dist/fn/Sheet.d.ts
CHANGED
|
@@ -3,19 +3,19 @@ import { StyleTags, ReactElement } from '../@declares';
|
|
|
3
3
|
import React from 'react';
|
|
4
4
|
import { Box } from '../atoms';
|
|
5
5
|
declare namespace Sheet {
|
|
6
|
+
type Type = 'topLeft' | 'topCenter' | 'topRight' | 'middleLeft' | 'middleCenter' | 'middleRight' | 'bottomLeft' | 'bottomCenter' | 'bottomRight' | 'drawer.left' | 'drawer.right' | 'drawer.bottom' | 'custom';
|
|
7
|
+
type Sizes = 'S' | 'R' | 'L' | '2L' | '3L' | 'MAX';
|
|
6
8
|
type Methods = {
|
|
7
9
|
Wrapper(): React.JSX.Element;
|
|
8
|
-
Element<
|
|
9
|
-
type:
|
|
10
|
+
Element<P = any>(p: Omit<Input<P>, 'content'> & {
|
|
11
|
+
type: Type;
|
|
10
12
|
isOpen: boolean;
|
|
11
13
|
children: ReactElement;
|
|
12
14
|
}): React.JSX.Element;
|
|
13
|
-
image(params: Omit<
|
|
14
|
-
open<
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
size: Sizes;
|
|
18
|
-
}): void;
|
|
15
|
+
image(params: Omit<Input, 'content'>, src: string | string[]): void;
|
|
16
|
+
open<P = any>(type: Type, params: Input<P>, defaultOpen?: boolean | 'inherit'): void;
|
|
17
|
+
modifyProps(sheetID: string, props: any): void;
|
|
18
|
+
resize(sheetID: string, size: Sizes): void;
|
|
19
19
|
customSheet: {
|
|
20
20
|
reposition(sheetID: string): void;
|
|
21
21
|
};
|
|
@@ -24,11 +24,12 @@ declare namespace Sheet {
|
|
|
24
24
|
closeAll(pageTransit?: boolean): void;
|
|
25
25
|
Body: React.FC<Box.DefaultInput>;
|
|
26
26
|
};
|
|
27
|
-
type
|
|
28
|
-
type?:
|
|
27
|
+
type Input<P = any> = {
|
|
28
|
+
type?: Type;
|
|
29
|
+
props?: P;
|
|
29
30
|
sheetID?: string;
|
|
30
31
|
size?: Sizes;
|
|
31
|
-
content: Content
|
|
32
|
+
content: Content<P>;
|
|
32
33
|
sheetGroups?: string | string[];
|
|
33
34
|
backgroundEffect?: boolean;
|
|
34
35
|
overwrap?: boolean;
|
|
@@ -37,42 +38,21 @@ declare namespace Sheet {
|
|
|
37
38
|
wrapperClassName?: string;
|
|
38
39
|
onOpen?(): void;
|
|
39
40
|
onClose?(): void;
|
|
41
|
+
/**
|
|
42
|
+
* optional for type:custom
|
|
43
|
+
*/
|
|
44
|
+
resize?: boolean;
|
|
45
|
+
nextToCursor?: boolean;
|
|
46
|
+
gravityPoint?: number;
|
|
47
|
+
event?: any;
|
|
48
|
+
parent?: $$.Args;
|
|
49
|
+
/**
|
|
50
|
+
* optional for type:drawer.bottom
|
|
51
|
+
*/
|
|
52
|
+
sizeChanged?(size: Sizes): void;
|
|
53
|
+
baseStyles?: StyleTags.States;
|
|
40
54
|
} & StyleTags.BasicElement & CloseOptions;
|
|
41
|
-
type
|
|
42
|
-
type TypesInput = {
|
|
43
|
-
'topLeft': UniInput;
|
|
44
|
-
'topCenter': UniInput;
|
|
45
|
-
'topRight': UniInput;
|
|
46
|
-
'middleLeft': UniInput;
|
|
47
|
-
'middleCenter': UniInput;
|
|
48
|
-
'middleRight': UniInput;
|
|
49
|
-
'bottomLeft': UniInput;
|
|
50
|
-
'bottomCenter': UniInput;
|
|
51
|
-
'bottomRight': UniInput;
|
|
52
|
-
'drawer.left': UniInput;
|
|
53
|
-
'drawer.right': UniInput;
|
|
54
|
-
'drawer.bottom': Input.Bottom;
|
|
55
|
-
'custom': Input.Custom;
|
|
56
|
-
};
|
|
57
|
-
namespace Input {
|
|
58
|
-
type Custom = UniInput & {
|
|
59
|
-
resize?: boolean;
|
|
60
|
-
nextToCursor?: boolean;
|
|
61
|
-
gravityPoint?: number;
|
|
62
|
-
} & ({
|
|
63
|
-
event: any;
|
|
64
|
-
parent?: $$.Args;
|
|
65
|
-
} | {
|
|
66
|
-
event?: any;
|
|
67
|
-
parent: $$.Args;
|
|
68
|
-
});
|
|
69
|
-
type Bottom = UniInput & {
|
|
70
|
-
sizeChanged?(size: Sizes): void;
|
|
71
|
-
baseStyles?: StyleTags.States;
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
type Sizes = 'S' | 'R' | 'L' | '2L' | '3L' | 'MAX';
|
|
75
|
-
type Content = ReactElement | (() => React.JSX.Element);
|
|
55
|
+
type Content<T = any> = ReactElement | ((props: T) => React.JSX.Element);
|
|
76
56
|
type CloseOptions = {
|
|
77
57
|
closeAtPageTransit?: boolean;
|
|
78
58
|
closeAtEscapeKeyDown?: boolean;
|
|
@@ -80,7 +60,6 @@ declare namespace Sheet {
|
|
|
80
60
|
closeAtParentBlur?: boolean;
|
|
81
61
|
closeAtSwipeDown?: boolean;
|
|
82
62
|
};
|
|
83
|
-
type Type = 'topLeft' | 'topCenter' | 'topRight' | 'middleLeft' | 'middleCenter' | 'middleRight' | 'bottomLeft' | 'bottomCenter' | 'bottomRight' | 'drawer.left' | 'drawer.right' | 'drawer.bottom' | 'custom';
|
|
84
63
|
type CoreProps = {
|
|
85
64
|
sheetID: string;
|
|
86
65
|
isOpen: boolean;
|
package/dist/fn/Sheet.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as m,c as w,d as W}from"../chunk-C5N2D3ZX.js";import{Fragment as ae,jsx as u,jsxs as F}from"react/jsx-runtime";import d,{UUID as Z,Time as le,useStore as D}from"jmini";import{useState as L,useEffect as H,useRef as pe}from"react";import{$$fromRoot as K,Config as G}from"../@utils";import{Box as A,Flex as ue,Img as he,FAI as re,Column as oe,Grid as ce,CacheRender as de}from"../atoms";import{Row as se}from"../mols";import{Button as ie}from"./Button";import{SheetClasses as g}from"../@styles/componentClasses";import fe from"./Plate";const y={currentIndex:0,openQueue:{},getSessionStates:()=>{let t=D.get("sessionStates-"+G.get().sessionUID);return t||null},getnew_sheetstates:t=>{var h;let e=w(m({sheetGroups:t.sheetGroups||[],backgroundEffect:!0,overwrap:t.type=="custom",hold_state:!1,closeAtPageTransit:!0,closeAtEscapeKeyDown:!0,closeAtAroundClick:t.type=="custom"},t),{sheetID:t.sheetID||Z(),isOpen:!0,created_at:le()});if(e.type=="custom"){let i=e;i.parent=i.parent||((h=i==null?void 0:i.event)==null?void 0:h.currentTarget),e=i}return e},Wrapper:()=>{let[t,e]=L([]),h={val_sheets:t,set_sheets:e},i="sessionStates-"+G.get().sessionUID;return D.set({[i]:h}),H(()=>{let c="Sheet-"+G.get().sessionUID;D.set({[c]:{add:(r,n)=>{let a=D.get(c);if(!a)return;let s=y.getnew_sheetstates(r);if(y.openQueue[s.sheetID])return;if(y.openQueue[s.sheetID]=!0,n!="inherit"&&(s.isOpen=n!=null?n:!0),!!a.find(s.sheetID)){e(C=>{let R=[...C],T=R.findIndex(N=>N.sheetID==s.sheetID);return T==-1||(R[T]=s),R}),delete y.openQueue[s.sheetID];return}e(C=>[s,...C])},find:r=>{let n=y.getSessionStates();if(!n)return null;let{val_sheets:a}=n;return a.find(s=>s.sheetID==r)}}}),d(G.get().appRoot).removeEvent(["SheetEvent.keyUp","SheetEvent.Click"]).addEvent({eventType:"keyup",eventID:"SheetEvent.keyUp",callback:function(r){let{key:n,metaKey:a}=r;if(n=="Escape"||n==","&&a){let s=y.getSessionStates();if(!s)return;let{val_sheets:I}=s,C=I.filter(T=>T.isOpen);if(!C.length)return;let R=C.reduce((T,N)=>T.created_at.value>N.created_at.value?T:N);E.close(R.sheetID,n)}}}).addEvent({eventType:"click",eventID:"SheetEvent.Click",callback:function(r){let n=y.getSessionStates();if(!n)return;let{val_sheets:a}=n,s=r.target;if(!s||s!=null&&s.closest("."+g("CustomSheet")))return;let I=a.filter(C=>C.type=="custom");I.length&&I.forEach(C=>{let{parent:R}=C;if(!C.closeAtAroundClick)return;let T=K(R)[0];R!==s&&T!==s&&(d(T).find(s).length||E.close(C.sheetID))})}})},[]),u(ae,{children:t.map(c=>u(de,{params:c,propsAreEqual:(r,n)=>r.isOpen==n.isOpen,children:u(y.Core,w(m({},h),{val_sheet:c,patch_sheet:r=>{e(n=>{let a=[...n],s=a.findIndex(I=>I.sheetID==c.sheetID);return s!=-1&&(a[s]=m(m({},a[s]),r)),a})},delete_sheet:()=>{e(r=>[...r.filter(n=>n.sheetID!=c.sheetID)])}}))},c.sheetID))})},sheetCategory:t=>t=="custom"?"custom":t.startsWith("drawer")?"drawer":"normal",sheetPosition:t=>t=="drawer.left"?"left":t=="drawer.right"?"right":t=="drawer.bottom"?"bottom":"",Core:t=>{let{val_sheet:e,patch_sheet:h}=t,[i,c]=L(y.currentIndex+2),[r]=L(Z()),n=e.type!="custom"&&!e.overwrap;H(()=>{y.currentIndex++,d.scope(()=>{if(!e.closeAtParentBlur)return;let s=d(e.parent);s[0]&&s.addEvent({eventID:"SheetClosation-"+e.sheetID,eventType:"mouseout",callback:()=>{s.removeEvent("SheetClosation-"+e.sheetID),h({isOpen:!1})}})}),D.set({[e.sheetID]:{resize:s=>{if(e.type=="drawer.bottom"){let I=D.get(r);I&&I.resize&&I.resize(s)}else(e.type.includes("normal")||e.type.includes("drawer"))&&h({size:s})},close:s=>{h({isOpen:!1})},open:()=>{h({isOpen:!0})}}})},[]),H(()=>{d.scope(()=>{let s=K("#"+r);if(e.isOpen){e.hold_state&&c(y.currentIndex+1),s.await(10).removeClass(g("Hide")).await(10).addClass(g("Open")).callback(()=>{delete y.openQueue[e.sheetID],e.onOpen&&e.onOpen()});return}s.await(10).removeClass(g("Open")).await(251).addClass(g("Hide")).callback(()=>{if(e.onClose&&e.onClose(),n&&G.get().browserIs!="safari"&&d(G.get().appRoot).focus(),e.hold_state)return h({isOpen:!1});t.delete_sheet()})})},[e.isOpen]);let a=y.Types[{topLeft:"Normal",topCenter:"Normal",topRight:"Normal",middleLeft:"Normal",middleCenter:"Normal",middleRight:"Normal",bottomLeft:"Normal",bottomCenter:"Normal",bottomRight:"Normal","drawer.left":"Edge","drawer.right":"Edge","drawer.bottom":"Bottom",custom:"Custom"}[e.type]];return u(A,{className:["AMOTIFY_be",g("Wrap"),g("Tcate_"+y.sheetCategory(e.type)),g("Tpos_"+y.sheetPosition(e.type)),g("isMainSheet_"+n),e.wrapperClassName||""].join(" "),width:1,ssAbsoluteCovered:!0,position:"fixed",freeCSS:{zIndex:i},id:r,children:F(oe,{className:g("Content"),gap:0,height:"viewHeight",overflow:"auto",transition:"middle",children:[!!n&&u(A,{className:g("TapSensor"),position:"sticky",top:0,height:0,width:1,flexSizing:"none",children:u(A,{backgroundColor:"trans",height:"viewHeight",position:"absolute",top:0,width:1,className:g("TapContent"),onClick:s=>{var C;((C=e.closeAtAroundClick)==null||C)&&E.close(e.sheetID)}})}),u(a,m({componentId:r},e))]})},r)},Types:{Normal:t=>{let k=t,{sheetID:e,sheetGroups:h,bodyScrolls:i,content:c,className:r="",type:n,size:a="R",freeCSS:s,onOpen:I,onClose:C,closeAtAroundClick:R,closeAtEscapeKeyDown:T,closeAtPageTransit:N,closeAtParentBlur:J,closeAtSwipeDown:Y,hold_state:q,overwrap:ee,isOpen:te,backgroundEffect:X,wrapperClassName:j}=k,U=W(k,["sheetID","sheetGroups","bodyScrolls","content","className","type","size","freeCSS","onOpen","onClose","closeAtAroundClick","closeAtEscapeKeyDown","closeAtPageTransit","closeAtParentBlur","closeAtSwipeDown","hold_state","overwrap","isOpen","backgroundEffect","wrapperClassName"]),x={},v=[];return n.match(/top/)?(v.push("top"),x.marginBottom="auto"):n.match(/middle/)?(v.push("center"),x.marginTop="auto",x.marginBottom="auto"):n.match(/bottom/)&&(v.push("bottom"),x.marginTop="auto"),n.match(/left/i)?(v.push("left"),x.marginRight="auto"):n.match(/center/i)?(v.push("center"),x.marginLeft="auto",x.marginRight="auto"):n.match(/right/i)&&(v.push("right"),x.marginLeft="auto"),u(A,w(m(m({className:[g("BB"),r].join(" "),padding:1,transition:"short",opacity:"trans"},U),x),{freeCSS:m({width:{S:"26rem",R:"36rem",L:"44rem","2L":"60rem","3L":"72rem",MAX:"100%"}[a],maxWidth:"96vw",transformOrigin:v.join(" ")},s),children:d.is.function(c)?u(c,{}):c}))},Edge:t=>{let U=t,{sheetID:e,sheetGroups:h,bodyScrolls:i,type:c,content:r,className:n="",size:a="R",onOpen:s,onClose:I,closeAtAroundClick:C,closeAtEscapeKeyDown:R,closeAtPageTransit:T,closeAtParentBlur:N,closeAtSwipeDown:J,hold_state:Y,overwrap:q,isOpen:ee,backgroundEffect:te,wrapperClassName:X}=U,j=W(U,["sheetID","sheetGroups","bodyScrolls","type","content","className","size","onOpen","onClose","closeAtAroundClick","closeAtEscapeKeyDown","closeAtPageTransit","closeAtParentBlur","closeAtSwipeDown","hold_state","overwrap","isOpen","backgroundEffect","wrapperClassName"]);return u(A,w(m(w(m({className:[g("BB"),n].join(" ")},c=="drawer.right"?{marginLeft:"auto"}:c=="drawer.left"?{marginRight:"auto"}:{}),{opacity:"trans",transition:"short",position:"relative",backgroundColor:"layer.1",flexSizing:"none",minHeight:"viewHeight",boxShadow:"3.remark"}),j),{freeCSS:m({width:{S:"20rem",R:"27rem",L:"32rem","2L":"40rem","3L":"58rem",MAX:"100vw"}[a],maxWidth:"96vw"},j.freeCSS),children:d.is.function(r)?u(r,{}):r}))},Bottom:t=>{let $=t,{componentId:e,sheetID:h,sheetGroups:i,bodyScrolls:c,content:r,size:n="R",sizeChanged:a,baseStyles:s,onOpen:I,onClose:C,closeAtAroundClick:R,closeAtEscapeKeyDown:T,closeAtPageTransit:N,closeAtParentBlur:J,closeAtSwipeDown:Y=!0,hold_state:q,overwrap:ee,isOpen:te,backgroundEffect:X,wrapperClassName:j}=$,U=W($,["componentId","sheetID","sheetGroups","bodyScrolls","content","size","sizeChanged","baseStyles","onOpen","onClose","closeAtAroundClick","closeAtEscapeKeyDown","closeAtPageTransit","closeAtParentBlur","closeAtSwipeDown","hold_state","overwrap","isOpen","backgroundEffect","wrapperClassName"]),x=d.getScreenSize(),v=[0,.2,.6,.95],k={ZERO:0,S:1,R:2,L:3,"2L":3,"3L":3,MAX:3},[M,Q]=L(n),[b,_]=L({process:!1,processStart:0,originY:0,originValue:0,viewHeight:0,value:v[k[n]]});D.update({[e]:{val_edit:b,resize:S=>{let f=v[k[S]];_(p=>w(m({},p),{value:f})),Q(S)}}});const B={Start:S=>{d(document).addEvent({eventID:"BottomSheetMouseMove",eventType:"mousemove",callback:B.Move,options:{passive:!1}}).addEvent({eventID:"BottomSheetTouchMove",eventType:"touchmove",callback:B.Move,options:{passive:!1}}).addEvent({eventID:"BottomSheetMouseUp",eventType:"mouseup",callback:B.End}).addEvent({eventID:"BottomSheetTouchEnd",eventType:"touchend",callback:B.End});let f=d.getCursor(S),p=w(m({},b),{process:!0,processStart:new Date().getTime(),originY:f.y,originValue:b.value,viewHeight:d.getScreenSize().height});D.update({[e]:{val_edit:p}}),_(p)},Move:S=>{var O;let f=(O=D.get(e))==null?void 0:O.val_edit;if(!f.process)return;let z=(d.getCursor(S).y-f.originY)/f.viewHeight,o=f.originValue-z;if(o>.95)o=.95+(o-.95)*.5;else if(o<.2){let P=.2-o;P-=.1,o=.1+(.1-P)*.5}return _(w(m({},f),{value:o})),S.preventDefault(),S.stopPropagation(),!1},End:S=>{var o;let f=(o=D.get(e))==null?void 0:o.val_edit;if(!f.process)return;d(document).removeEvent(["BottomSheetMouseMove","BottomSheetTouchMove","BottomSheetMouseUp","BottomSheetTouchEnd"]);let p=0;if(f.value<.1||(f.value<.5?p=1:f.value>.75?p=3:p=2),new Date().getTime()-f.processStart<300){let O=d.getCursor(S).y-f.originY;if(Math.abs(O)>=20){let P=+(O<0)*2-1;p+=P,p=Math.min(Math.max(p,0),v.length-1)}}p==0&&(Y||(p=1)),Q(["ZERO","S","R","L"][p]),_(w(m({},f),{value:v[p],process:!1}))}},V=pe(!1);return H(()=>{V.current?M=="ZERO"?Y&&E.close(h):setTimeout(()=>{t.sizeChanged&&t.sizeChanged(M)},250):V.current=!0},[M]),u(A,{className:g("BB"),margin:[0,"auto"],marginTop:"auto",opacity:"trans",width:1,transition:"long",freeCSS:m({maxWidth:12*60,height:x.height*b.value},b.process?{transition:"0s"}:{}),children:F(oe,w(m({gap:0,flexSizing:"none",borderTopLeftRadius:"1.tone.primary",borderTopRightRadius:"1.tone.primary",borderBottom:"unset",boxShadow:"3.remark",position:"relative",overflow:"hidden",height:1},s),{children:[F(se.Separate,{padding:1,backgroundColor:"layer.1",position:"relative",freeCSS:{userSelect:"none"},children:[u(A,{ssSphere:2.5}),u(se.Center,{onPointerDown:B.Start,flexSizing:0,padding:"2/3",ssPushable:!0,isRounded:!0,freeCSS:{cursor:"grab",userSelect:"none"},children:u(A,{unitWidth:6,unitHeight:"1/2",backgroundColor:"layer.4",isRounded:!0,className:g("DragBar")})}),u(ie.Sub,{color:"cloud",ssSphere:2.5,onClick:()=>{E.close(h)},children:u(re.X,{})})]}),u(A,w(m({backgroundColor:"layer.1",flexSizing:0,overflow:"auto"},U),{children:d.is.function(r)?u(r,{}):r}))]}))})},Custom:t=>{let $=t,{sheetID:e,sheetGroups:h,bodyScrolls:i,event:c,parent:r,nextToCursor:n,gravityPoint:a=22,content:s,closeAtAroundClick:I,closeAtEscapeKeyDown:C,closeAtPageTransit:R,closeAtParentBlur:T,closeAtSwipeDown:N,hold_state:J,onOpen:Y,onClose:q,overwrap:ee,isOpen:te,resize:X,backgroundEffect:j,wrapperClassName:U}=$,x=W($,["sheetID","sheetGroups","bodyScrolls","event","parent","nextToCursor","gravityPoint","content","closeAtAroundClick","closeAtEscapeKeyDown","closeAtPageTransit","closeAtParentBlur","closeAtSwipeDown","hold_state","onOpen","onClose","overwrap","isOpen","resize","backgroundEffect","wrapperClassName"]),[v]=L(Z()),k=d.is.element(r)||d.is.jmini(r)?d(r):K(r),M='[data-sheet-id="'+v+'"]',Q='[data-sheet-content="'+v+'"]';a=a;let b=a%5||5,_=Math.ceil(a/5);const B={Init:()=>{if(n&&c){let l=d.getScreenSize(),ne=d.getCursor(c);return{top:ne.y-l.pageYOffset,left:ne.x-l.pageXOffset}}let S={};if(!k||!k[0])return S;let{top:f,right:p,bottom:z,left:o,height:O,width:P}=k.position();return[1,2].includes(b)?S.left=o:b==3?S.left=o+P/2:[4,5].includes(b)&&(S.left=p),a<=10?S.top=f:a<=15?S.top=f+O/2:a<=25&&(S.top=z),S},Adjust:()=>{let S=K(M).position(),f=K(Q).position(),p=k.position(),z=d.getScreenSize(),o={};for(let l in f)o[l]=f[l];if(d.scope(()=>{if(t.nextToCursor)return;let l=0;_==1?l=p.top-o.bottom:_==2?l=p.top-o.top:_==3?l=p.top-o.top+(p.height-o.height)/2:_==4?l=p.bottom-o.bottom:_==5&&(l=p.bottom-o.top),o.top+=l,o.bottom+=l}),d.scope(()=>{if(t.nextToCursor)return;let l=0;b==1?l=p.left-o.right:b==2?l=p.left-o.left:b==3?l=p.left-o.left+(p.width-o.width)/2:b==4?l=p.right-o.right:b==5&&(l=p.right-o.left),o.left+=l,o.right+=l}),o.top<0){let l=-o.top;o.top+=l,o.bottom+=l}if(o.bottom>z.height){let l=o.bottom-z.height;o.top-=l,o.bottom-=l}if(o.left<0){let l=-o.left;o.left+=l,o.right+=l}if(o.right>z.width){let l=o.right-z.width;o.left-=l,o.right-=l}let O=o.top-f.top,P=o.left-f.left;d(M).css({top:S.top+O+"px",left:S.left+P+"px"})}};let[V]=L(B.Init());return H(()=>{K(M).await(10).addClass(g("Open")).await(200).callback(()=>{(X==null||X)&&B.Adjust()}),D.update({["customSheet-"+t.sheetID]:{reposition:()=>{B.Adjust()}}})},[]),k[0]?u(A,{className:[g("BB"),g("CustomSheet")].join(" "),"data-sheet-id":v,transition:"long",position:"absolute",width:0,height:0,opacity:"trans",flexCenter:!0,freeCSS:V,children:u(ue,{position:"absolute",className:[g("GPT"),g("GPT_"+a),g("Col_"+b),g("Row_"+_)].join(" "),children:u(A,w(m({"data-sheet-content":v,flexSizing:"none",maxHeight:"viewHeight"},x),{freeCSS:m({maxWidth:"98vw"},x.freeCSS),children:d.is.function(s)?u(s,{}):s}))})}):null}}},E={Wrapper:()=>u(y.Wrapper,{}),Element:t=>{let c=t,{isOpen:e,children:h}=c,i=W(c,["isOpen","children"]);return H(()=>{if(e){E.open(t.type,w(m({},i),{content:h}));return}i.sheetID&&E.close(i.sheetID)},[e]),u(ae,{})},image:(t,e)=>{let h=t.sheetID||Z(),r=t,{type:i}=r,c=W(r,["type"]);E.open(i||"topCenter",w(m({size:"MAX"},c),{sheetID:h,freeCSS:{maxWidth:"100vw"},content:()=>{let[n]=L(d.flatArray(e));return u(fe,{children:F(oe,{children:[u(se.Right,{children:F(ie.Sub.S,{color:"cloud",isRounded:!0,onClick:()=>{E.close(h)},children:[u(re.X,{})," \u9589\u3058\u308B"]})}),u(ce.Layout,{gap:1,gridTemplateColumns:"repeat(3,1fr)",gridTemplateRows:"repeat(2,auto)",gridChildTemplates:[["span 3",0],["span 2","span 2"],[0,0],[0,0],[0,"span 2"],["span 2",0],[0,0],[0,0]],children:n.map((a,s)=>u(he,{ssCardBox:!0,position:"relative",flexCenter:!0,src:a},s))})]})})}}))},open:(t,e,h)=>{e.sheetID=(e.sheetID||"").replace(/\./g,"-"),e.type=t;let i=D.get("Sheet-"+G.get().sessionUID);i&&i.add(e,h)},resize:t=>{t.sheetID=(t.sheetID||"").replace(/\./g,"-");let e=D.get(t.sheetID);e&&e.resize&&e.resize(t.size)},customSheet:{reposition:t=>{let e=D.get("customSheet-"+t);e&&e.reposition&&e.reposition()}},close:function(t,e,h){let i=y.getSessionStates();if(!i)return;let{val_sheets:c}=i;t=t==null?void 0:t.replace(/\./g,"-");let r=c.find(a=>a.sheetID==t);if(!r||e=="Escape"&&!r.closeAtEscapeKeyDown)return;let n=D.get(r.sheetID);n&&n.close&&n.close(h)},closeGroup:t=>{let e=y.getSessionStates();if(!e)return;let{val_sheets:h}=e;t=(t||"").replace(/\./g,"-");for(let i of h)i.sheetGroups&&i.sheetGroups==t&&E.close(i.sheetID)},closeAll:t=>{let e=y.getSessionStates();if(!e)return;let{val_sheets:h}=e;for(let i of h)t&&!i.closeAtPageTransit||E.close(i.sheetID,"pageTransit",!0)},Body:t=>u(A,m({className:g("BaseBody"),backgroundColor:"layer.1",borderRadius:"1.tone.primary",position:"relative",boxShadow:"3.remark",transition:"long"},t))};export{E as Sheet,E as default};
|
|
1
|
+
import{b as h,c as D,d as G}from"../chunk-C5N2D3ZX.js";import{Fragment as pe,jsx as c,jsxs as V}from"react/jsx-runtime";import u,{UUID as J,Time as ce,useStore as w}from"jmini";import{useState as M,useEffect as j,useRef as ue}from"react";import{$$fromRoot as U,Config as X}from"../@utils";import{Box as A,Flex as he,Img as fe,FAI as ae,Column as re,Grid as de,CacheRender as me}from"../atoms";import{Row as ne}from"../mols";import{Button as le}from"./Button";import{SheetClasses as g}from"../@styles/componentClasses";import ge from"./Plate";const v={currentIndex:0,openQueue:{},getSessionStates:()=>{let t=w.get("sessionStates-"+X.get().sessionUID);return t||null},getnew_sheetstates:t=>{var a;let e=D(h({sheetGroups:t.sheetGroups||[],backgroundEffect:!0,overwrap:t.type=="custom",hold_state:!1,closeAtPageTransit:!0,closeAtEscapeKeyDown:!0,closeAtAroundClick:t.type=="custom"},t),{sheetID:t.sheetID||J(),isOpen:!0,created_at:ce()});return e.type=="custom"&&(e.parent=e.parent||((a=e.event)==null?void 0:a.currentTarget)),e},Wrapper:()=>{let[t,e]=M([]),a={val_sheets:t,set_sheets:e},f="sessionStates-"+X.get().sessionUID;return w.set({[f]:a}),j(()=>{let d="Sheet-"+X.get().sessionUID;w.set({[d]:{add:(n,r)=>{let i=w.get(d);if(!i)return;let s=v.getnew_sheetstates(n);if(v.openQueue[s.sheetID])return;if(v.openQueue[s.sheetID]=!0,r!="inherit"&&(s.isOpen=r!=null?r:!0),!!i.find(s.sheetID)){e(y=>{let E=[...y],T=E.findIndex(L=>L.sheetID==s.sheetID);return T==-1||(E[T]=s),E}),delete v.openQueue[s.sheetID];return}e(y=>[s,...y])},find:n=>{let r=v.getSessionStates();if(!r)return null;let{val_sheets:i}=r;return i.find(s=>s.sheetID==n)}}}),u(X.get().appRoot).removeEvent(["SheetEvent.keyUp","SheetEvent.Click"]).addEvent({eventType:"keyup",eventID:"SheetEvent.keyUp",callback:function(n){let{key:r,metaKey:i}=n;if(r=="Escape"||r==","&&i){let s=v.getSessionStates();if(!s)return;let{val_sheets:C}=s,y=C.filter(T=>T.isOpen);if(!y.length)return;let E=y.reduce((T,L)=>T.created_at.value>L.created_at.value?T:L);x.close(E.sheetID,r)}}}).addEvent({eventType:"click",eventID:"SheetEvent.Click",callback:function(n){let r=v.getSessionStates();if(!r)return;let{val_sheets:i}=r,s=n.target;if(!s||s!=null&&s.closest("."+g("CustomSheet")))return;let C=i.filter(y=>y.type=="custom");C.length&&C.forEach(y=>{let{parent:E}=y;if(!y.closeAtAroundClick)return;let T=U(E)[0];E!==s&&T!==s&&(u(T).find(s).length||x.close(y.sheetID))})}})},[]),c(pe,{children:t.map(d=>c(me,{params:d,forceRender:(n,r)=>n.isOpen!=r.isOpen||n.size!=r.size||!u.is.equal(u.SortifyObject(n.props||""),u.SortifyObject(r.props||"")),children:c(v.Core,D(h({},a),{val_sheet:d,patch_sheet:n=>{e(r=>{let i=[...r],s=i.findIndex(C=>C.sheetID==d.sheetID);return s!=-1&&(i[s]=h(h({},i[s]),n)),i})},delete_sheet:()=>{e(n=>[...n.filter(r=>r.sheetID!=d.sheetID)])}}))},d.sheetID))})},sheetCategory:t=>t=="custom"?"custom":t.startsWith("drawer")?"drawer":"normal",sheetPosition:t=>t=="drawer.left"?"left":t=="drawer.right"?"right":t=="drawer.bottom"?"bottom":"",Core:t=>{let{val_sheet:e,patch_sheet:a}=t,[f,d]=M(v.currentIndex+2),[n]=M(J()),r=e.type!="custom"&&!e.overwrap;j(()=>{v.currentIndex++,u.scope(()=>{if(!e.closeAtParentBlur)return;let s=u(e.parent);s[0]&&s.addEvent({eventID:"SheetClosation-"+e.sheetID,eventType:"mouseout",callback:()=>{s.removeEvent("SheetClosation-"+e.sheetID),a({isOpen:!1})}})}),w.set({[e.sheetID]:{modifyProps:s=>{setTimeout(()=>{a({props:s})},10)},resize:s=>{if(e.type=="drawer.bottom"){let C=w.get(n);C&&C.resize&&C.resize(s);return}a({size:s})},close:s=>{a({isOpen:!1})},open:()=>{a({isOpen:!0})}}})},[]),j(()=>{u.scope(()=>{let s=U("#"+n);if(e.isOpen){e.hold_state&&d(v.currentIndex+1),s.await(10).removeClass(g("Hide")).await(10).addClass(g("Open")).callback(()=>{delete v.openQueue[e.sheetID],e.onOpen&&e.onOpen()});return}s.await(10).removeClass(g("Open")).await(251).addClass(g("Hide")).callback(()=>{if(e.onClose&&e.onClose(),r&&X.get().browserIs!="safari"&&u(X.get().appRoot).focus(),e.hold_state)return a({isOpen:!1});t.delete_sheet()})})},[e.isOpen]);let i=v.Types[{topLeft:"Normal",topCenter:"Normal",topRight:"Normal",middleLeft:"Normal",middleCenter:"Normal",middleRight:"Normal",bottomLeft:"Normal",bottomCenter:"Normal",bottomRight:"Normal","drawer.left":"Edge","drawer.right":"Edge","drawer.bottom":"Bottom",custom:"Custom"}[e.type]];return c(A,{className:["AMOTIFY_be",g("Wrap"),g("Tcate_"+v.sheetCategory(e.type)),g("Tpos_"+v.sheetPosition(e.type)),g("isMainSheet_"+r),e.wrapperClassName||""].join(" "),width:1,ssAbsoluteCovered:!0,position:"fixed",freeCSS:{zIndex:f},id:n,children:V(re,{className:g("Content"),gap:0,height:"viewHeight",overflow:"auto",transition:"middle",children:[!!r&&c(A,{className:g("TapSensor"),position:"sticky",top:0,height:0,width:1,flexSizing:"none",children:c(A,{backgroundColor:"trans",height:"viewHeight",position:"absolute",top:0,width:1,className:g("TapContent"),onClick:s=>{var y;((y=e.closeAtAroundClick)==null||y)&&x.close(e.sheetID)}})}),c(i,h({componentId:n},e))]})},n)},Types:{Normal:t=>{let k=t,{sheetID:e,sheetGroups:a,bodyScrolls:f,props:d,content:n,className:r="",type:i,size:s="R",freeCSS:C,onOpen:y,onClose:E,closeAtAroundClick:T,closeAtEscapeKeyDown:L,closeAtPageTransit:q,closeAtParentBlur:ee,closeAtSwipeDown:Y,hold_state:te,overwrap:oe,isOpen:se,backgroundEffect:H,wrapperClassName:F}=k,K=G(k,["sheetID","sheetGroups","bodyScrolls","props","content","className","type","size","freeCSS","onOpen","onClose","closeAtAroundClick","closeAtEscapeKeyDown","closeAtPageTransit","closeAtParentBlur","closeAtSwipeDown","hold_state","overwrap","isOpen","backgroundEffect","wrapperClassName"]),_=u.is.function(n)?c(n,h({},d)):n,R={},b=[];return i.match(/top/)?(b.push("top"),R.marginBottom="auto"):i.match(/middle/)?(b.push("center"),R.marginTop="auto",R.marginBottom="auto"):i.match(/bottom/)&&(b.push("bottom"),R.marginTop="auto"),i.match(/left/i)?(b.push("left"),R.marginRight="auto"):i.match(/center/i)?(b.push("center"),R.marginLeft="auto",R.marginRight="auto"):i.match(/right/i)&&(b.push("right"),R.marginLeft="auto"),c(A,D(h(h({className:[g("BB"),r].join(" "),padding:1,transition:"short",opacity:"trans"},K),R),{freeCSS:h({width:{S:"26rem",R:"36rem",L:"44rem","2L":"60rem","3L":"72rem",MAX:"100%"}[s],maxWidth:"96vw",transformOrigin:b.join(" ")},C),children:_}))},Edge:t=>{let _=t,{sheetID:e,sheetGroups:a,bodyScrolls:f,type:d,props:n,content:r,className:i="",size:s="R",onOpen:C,onClose:y,closeAtAroundClick:E,closeAtEscapeKeyDown:T,closeAtPageTransit:L,closeAtParentBlur:q,closeAtSwipeDown:ee,hold_state:Y,overwrap:te,isOpen:oe,backgroundEffect:se,wrapperClassName:H}=_,F=G(_,["sheetID","sheetGroups","bodyScrolls","type","props","content","className","size","onOpen","onClose","closeAtAroundClick","closeAtEscapeKeyDown","closeAtPageTransit","closeAtParentBlur","closeAtSwipeDown","hold_state","overwrap","isOpen","backgroundEffect","wrapperClassName"]),K=u.is.function(r)?c(r,h({},n)):r;return c(A,D(h(D(h({className:[g("BB"),i].join(" ")},d=="drawer.right"?{marginLeft:"auto"}:d=="drawer.left"?{marginRight:"auto"}:{}),{opacity:"trans",transition:"short",position:"relative",backgroundColor:"layer.1",flexSizing:"none",minHeight:"viewHeight",boxShadow:"3.remark"}),F),{freeCSS:h({width:{S:"20rem",R:"27rem",L:"32rem","2L":"40rem","3L":"58rem",MAX:"100vw"}[s],maxWidth:"96vw"},F.freeCSS),children:K}))},Bottom:t=>{let Q=t,{componentId:e,sheetID:a,sheetGroups:f,bodyScrolls:d,props:n,content:r,size:i="R",sizeChanged:s,baseStyles:C,onOpen:y,onClose:E,closeAtAroundClick:T,closeAtEscapeKeyDown:L,closeAtPageTransit:q,closeAtParentBlur:ee,closeAtSwipeDown:Y=!0,hold_state:te,overwrap:oe,isOpen:se,backgroundEffect:H,wrapperClassName:F}=Q,K=G(Q,["componentId","sheetID","sheetGroups","bodyScrolls","props","content","size","sizeChanged","baseStyles","onOpen","onClose","closeAtAroundClick","closeAtEscapeKeyDown","closeAtPageTransit","closeAtParentBlur","closeAtSwipeDown","hold_state","overwrap","isOpen","backgroundEffect","wrapperClassName"]),_=u.is.function(r)?c(r,h({},n)):r,R=u.getScreenSize(),b=[0,.2,.6,.95],k={ZERO:0,S:1,R:2,L:3,"2L":3,"3L":3,MAX:3},[W,$]=M(i),[I,P]=M({process:!1,processStart:0,originY:0,originValue:0,viewHeight:0,value:b[k[i]]});w.update({[e]:{val_edit:I,resize:S=>{let m=b[k[S]];P(p=>D(h({},p),{value:m})),$(S)}}});const B={Start:S=>{u(document).addEvent({eventID:"BottomSheetMouseMove",eventType:"mousemove",callback:B.Move,options:{passive:!1}}).addEvent({eventID:"BottomSheetTouchMove",eventType:"touchmove",callback:B.Move,options:{passive:!1}}).addEvent({eventID:"BottomSheetMouseUp",eventType:"mouseup",callback:B.End}).addEvent({eventID:"BottomSheetTouchEnd",eventType:"touchend",callback:B.End});let m=u.getCursor(S),p=D(h({},I),{process:!0,processStart:new Date().getTime(),originY:m.y,originValue:I.value,viewHeight:u.getScreenSize().height});w.update({[e]:{val_edit:p}}),P(p)},Move:S=>{var O;let m=(O=w.get(e))==null?void 0:O.val_edit;if(!m.process)return;let z=(u.getCursor(S).y-m.originY)/m.viewHeight,o=m.originValue-z;if(o>.95)o=.95+(o-.95)*.5;else if(o<.2){let N=.2-o;N-=.1,o=.1+(.1-N)*.5}return P(D(h({},m),{value:o})),S.preventDefault(),S.stopPropagation(),!1},End:S=>{var o;let m=(o=w.get(e))==null?void 0:o.val_edit;if(!m.process)return;u(document).removeEvent(["BottomSheetMouseMove","BottomSheetTouchMove","BottomSheetMouseUp","BottomSheetTouchEnd"]);let p=0;if(m.value<.1||(m.value<.5?p=1:m.value>.75?p=3:p=2),new Date().getTime()-m.processStart<300){let O=u.getCursor(S).y-m.originY;if(Math.abs(O)>=20){let N=+(O<0)*2-1;p+=N,p=Math.min(Math.max(p,0),b.length-1)}}p==0&&(Y||(p=1)),$(["ZERO","S","R","L"][p]),P(D(h({},m),{value:b[p],process:!1}))}},Z=ue(!1);return j(()=>{Z.current?W=="ZERO"?Y&&x.close(a):setTimeout(()=>{t.sizeChanged&&t.sizeChanged(W)},250):Z.current=!0},[W]),c(A,{className:g("BB"),margin:[0,"auto"],marginTop:"auto",opacity:"trans",width:1,transition:"long",freeCSS:h({maxWidth:12*60,height:R.height*I.value},I.process?{transition:"0s"}:{}),children:V(re,D(h({gap:0,flexSizing:"none",borderTopLeftRadius:"1.tone.primary",borderTopRightRadius:"1.tone.primary",borderBottom:"unset",boxShadow:"3.remark",position:"relative",overflow:"hidden",height:1},C),{children:[V(ne.Separate,{padding:1,backgroundColor:"layer.1",position:"relative",freeCSS:{userSelect:"none"},children:[c(A,{ssSphere:2.5}),c(ne.Center,{onPointerDown:B.Start,flexSizing:0,padding:"2/3",ssPushable:!0,isRounded:!0,freeCSS:{cursor:"grab",userSelect:"none"},children:c(A,{unitWidth:6,unitHeight:"1/2",backgroundColor:"layer.4",isRounded:!0,className:g("DragBar")})}),c(le.Sub,{color:"cloud",ssSphere:2.5,onClick:()=>{x.close(a)},children:c(ae.X,{})})]}),c(A,D(h({backgroundColor:"layer.1",flexSizing:0,overflow:"auto"},K),{children:_}))]}))})},Custom:t=>{let Q=t,{sheetID:e,sheetGroups:a,bodyScrolls:f,event:d,parent:n,nextToCursor:r,gravityPoint:i=22,props:s,content:C,closeAtAroundClick:y,closeAtEscapeKeyDown:E,closeAtPageTransit:T,closeAtParentBlur:L,closeAtSwipeDown:q,hold_state:ee,onOpen:Y,onClose:te,overwrap:oe,isOpen:se,resize:H,backgroundEffect:F,wrapperClassName:K}=Q,_=G(Q,["sheetID","sheetGroups","bodyScrolls","event","parent","nextToCursor","gravityPoint","props","content","closeAtAroundClick","closeAtEscapeKeyDown","closeAtPageTransit","closeAtParentBlur","closeAtSwipeDown","hold_state","onOpen","onClose","overwrap","isOpen","resize","backgroundEffect","wrapperClassName"]),R=u.is.function(C)?c(C,h({},s)):C,[b]=M(J()),k=u.is.element(n)||u.is.jmini(n)?u(n):U(n),W='[data-sheet-id="'+b+'"]',$='[data-sheet-content="'+b+'"]';i=i;let I=i%5||5,P=Math.ceil(i/5);const B={Init:()=>{if(r&&d){let l=u.getScreenSize(),ie=u.getCursor(d);return{top:ie.y-l.pageYOffset,left:ie.x-l.pageXOffset}}let S={};if(!k||!k[0])return S;let{top:m,right:p,bottom:z,left:o,height:O,width:N}=k.position();return[1,2].includes(I)?S.left=o:I==3?S.left=o+N/2:[4,5].includes(I)&&(S.left=p),i<=10?S.top=m:i<=15?S.top=m+O/2:i<=25&&(S.top=z),S},Adjust:()=>{let S=U(W).position(),m=U($).position(),p=k.position(),z=u.getScreenSize(),o={};for(let l in m)o[l]=m[l];if(u.scope(()=>{if(t.nextToCursor)return;let l=0;P==1?l=p.top-o.bottom:P==2?l=p.top-o.top:P==3?l=p.top-o.top+(p.height-o.height)/2:P==4?l=p.bottom-o.bottom:P==5&&(l=p.bottom-o.top),o.top+=l,o.bottom+=l}),u.scope(()=>{if(t.nextToCursor)return;let l=0;I==1?l=p.left-o.right:I==2?l=p.left-o.left:I==3?l=p.left-o.left+(p.width-o.width)/2:I==4?l=p.right-o.right:I==5&&(l=p.right-o.left),o.left+=l,o.right+=l}),o.top<0){let l=-o.top;o.top+=l,o.bottom+=l}if(o.bottom>z.height){let l=o.bottom-z.height;o.top-=l,o.bottom-=l}if(o.left<0){let l=-o.left;o.left+=l,o.right+=l}if(o.right>z.width){let l=o.right-z.width;o.left-=l,o.right-=l}let O=o.top-m.top,N=o.left-m.left;u(W).css({top:S.top+O+"px",left:S.left+N+"px"})}};let[Z]=M(B.Init());return j(()=>{U(W).await(10).addClass(g("Open")).await(200).callback(()=>{(H==null||H)&&B.Adjust()}),w.update({["customSheet-"+t.sheetID]:{reposition:()=>{B.Adjust()}}})},[]),k[0]?c(A,{className:[g("BB"),g("CustomSheet")].join(" "),"data-sheet-id":b,transition:"long",position:"absolute",width:0,height:0,opacity:"trans",flexCenter:!0,freeCSS:Z,children:c(he,{position:"absolute",className:[g("GPT"),g("GPT_"+i),g("Col_"+I),g("Row_"+P)].join(" "),children:c(A,D(h({"data-sheet-content":b,flexSizing:"none",maxHeight:"viewHeight"},_),{freeCSS:h({maxWidth:"98vw"},_.freeCSS),children:R}))})}):null}}},x={Wrapper:()=>c(v.Wrapper,{}),Element:t=>{let d=t,{isOpen:e,children:a}=d,f=G(d,["isOpen","children"]);return j(()=>{if(e){x.open(t.type,D(h({},f),{content:a}));return}f.sheetID&&x.close(f.sheetID)},[e,f.props||""]),c(pe,{})},image:(t,e)=>{let a=t.sheetID||J(),n=t,{type:f}=n,d=G(n,["type"]);x.open(f||"topCenter",D(h({size:"MAX"},d),{sheetID:a,freeCSS:{maxWidth:"100vw"},content:()=>{let[r]=M(u.flatArray(e));return c(ge,{children:V(re,{children:[c(ne.Right,{children:V(le.Sub.S,{color:"cloud",isRounded:!0,onClick:()=>{x.close(a)},children:[c(ae.X,{})," \u9589\u3058\u308B"]})}),c(de.Layout,{gap:1,gridTemplateColumns:"repeat(3,1fr)",gridTemplateRows:"repeat(2,auto)",gridChildTemplates:[["span 3",0],["span 2","span 2"],[0,0],[0,0],[0,"span 2"],["span 2",0],[0,0],[0,0]],children:r.map((i,s)=>c(fe,{ssCardBox:!0,position:"relative",flexCenter:!0,src:i},s))})]})})}}))},open:(t,e,a)=>{e.sheetID=(e.sheetID||"").replace(/\./g,"-"),e.type=t;let f=w.get("Sheet-"+X.get().sessionUID);f&&f.add(e,a)},modifyProps:(t,e)=>{t=(t||"").replace(/\./g,"-");let a=w.get(t);a&&a.modifyProps&&a.modifyProps(e)},resize:(t,e)=>{t=(t||"").replace(/\./g,"-");let a=w.get(t);a&&a.resize&&a.resize(e)},customSheet:{reposition:t=>{let e=w.get("customSheet-"+t);e&&e.reposition&&e.reposition()}},close:function(t,e,a){let f=v.getSessionStates();if(!f)return;let{val_sheets:d}=f;t=t==null?void 0:t.replace(/\./g,"-");let n=d.find(i=>i.sheetID==t);if(!n||e=="Escape"&&!n.closeAtEscapeKeyDown)return;let r=w.get(n.sheetID);r&&r.close&&r.close(a)},closeGroup:t=>{let e=v.getSessionStates();if(!e)return;let{val_sheets:a}=e;t=(t||"").replace(/\./g,"-");for(let f of a)f.sheetGroups&&f.sheetGroups==t&&x.close(f.sheetID)},closeAll:t=>{let e=v.getSessionStates();if(!e)return;let{val_sheets:a}=e;for(let f of a)t&&!f.closeAtPageTransit||x.close(f.sheetID,"pageTransit",!0)},Body:t=>c(A,h({className:g("BaseBody"),backgroundColor:"layer.1",borderRadius:"1.tone.primary",position:"relative",boxShadow:"3.remark",transition:"long"},t))};export{x as Sheet,x as default};
|