powell-react 0.0.31 → 0.0.33
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/dist/index.cjs.js +348 -2072
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.cjs11.js +18 -0
- package/dist/index.cjs11.js.map +1 -0
- package/dist/index.cjs12.js +123 -0
- package/dist/index.cjs12.js.map +1 -0
- package/dist/index.cjs13.js +120 -0
- package/dist/index.cjs13.js.map +1 -0
- package/dist/index.cjs14.js +16 -0
- package/dist/index.cjs14.js.map +1 -0
- package/dist/index.cjs15.js +8 -0
- package/dist/index.cjs15.js.map +1 -0
- package/dist/index.cjs16.js +29 -0
- package/dist/index.cjs16.js.map +1 -0
- package/dist/index.cjs17.js +1330 -0
- package/dist/index.cjs17.js.map +1 -0
- package/dist/index.cjs18.js +8 -0
- package/dist/index.cjs18.js.map +1 -0
- package/dist/index.cjs19.js +8 -0
- package/dist/index.cjs19.js.map +1 -0
- package/dist/index.cjs2.js +167 -0
- package/dist/index.cjs2.js.map +1 -0
- package/dist/index.cjs20.js +26 -0
- package/dist/index.cjs20.js.map +1 -0
- package/dist/index.cjs3.js +10 -0
- package/dist/index.cjs3.js.map +1 -0
- package/dist/index.cjs4.js +18 -0
- package/dist/index.cjs4.js.map +1 -0
- package/dist/index.cjs5.js +144 -0
- package/dist/index.cjs5.js.map +1 -0
- package/dist/index.cjs6.js +55 -0
- package/dist/index.cjs6.js.map +1 -0
- package/dist/index.cjs7.js +128 -0
- package/dist/index.cjs7.js.map +1 -0
- package/dist/index.cjs8.js +201 -0
- package/dist/index.cjs8.js.map +1 -0
- package/dist/index.cjs9.js +63 -0
- package/dist/index.cjs9.js.map +1 -0
- package/dist/index.es.js +9 -1744
- package/dist/index.es.js.map +1 -1
- package/dist/index.es11.js +14 -0
- package/dist/index.es11.js.map +1 -0
- package/dist/index.es12.js +119 -0
- package/dist/index.es12.js.map +1 -0
- package/dist/index.es13.js +118 -0
- package/dist/index.es13.js.map +1 -0
- package/dist/index.es14.js +11 -0
- package/dist/index.es14.js.map +1 -0
- package/dist/index.es15.js +4 -0
- package/dist/index.es15.js.map +1 -0
- package/dist/index.es16.js +25 -0
- package/dist/index.es16.js.map +1 -0
- package/dist/index.es17.js +1326 -0
- package/dist/index.es17.js.map +1 -0
- package/dist/index.es18.js +4 -0
- package/dist/index.es18.js.map +1 -0
- package/dist/index.es19.js +4 -0
- package/dist/index.es19.js.map +1 -0
- package/dist/index.es2.js +163 -0
- package/dist/index.es2.js.map +1 -0
- package/dist/index.es20.js +22 -0
- package/dist/index.es20.js.map +1 -0
- package/dist/index.es3.js +6 -0
- package/dist/index.es3.js.map +1 -0
- package/dist/index.es4.js +14 -0
- package/dist/index.es4.js.map +1 -0
- package/dist/index.es5.js +140 -0
- package/dist/index.es5.js.map +1 -0
- package/dist/index.es6.js +51 -0
- package/dist/index.es6.js.map +1 -0
- package/dist/index.es7.js +123 -0
- package/dist/index.es7.js.map +1 -0
- package/dist/index.es8.js +196 -0
- package/dist/index.es8.js.map +1 -0
- package/dist/index.es9.js +59 -0
- package/dist/index.es9.js.map +1 -0
- package/package.json +5 -2
@@ -0,0 +1,55 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
4
|
+
|
5
|
+
const usePowellConfig = require('./index.cjs8.js');
|
6
|
+
|
7
|
+
const splitProps = (props, groups) => {
|
8
|
+
const result = {};
|
9
|
+
const rest = {};
|
10
|
+
const assigned = {};
|
11
|
+
const restEligible = {};
|
12
|
+
for (const groupName in groups) {
|
13
|
+
for (const descriptor of groups[groupName]) {
|
14
|
+
const key = typeof descriptor === "string" ? descriptor : descriptor.key;
|
15
|
+
const alias = typeof descriptor === "string" ? void 0 : descriptor.alias;
|
16
|
+
const defaultValue = typeof descriptor === "string" ? void 0 : descriptor.defaultValue;
|
17
|
+
const keepInRest = typeof descriptor === "string" ? false : descriptor.keepInRest ?? false;
|
18
|
+
if (!result[groupName]) {
|
19
|
+
result[groupName] = {};
|
20
|
+
}
|
21
|
+
const value = key in props ? props[key] : typeof defaultValue === "function" ? defaultValue() : defaultValue;
|
22
|
+
result[groupName][alias ?? key] = value;
|
23
|
+
assigned[key] = true;
|
24
|
+
if (keepInRest) {
|
25
|
+
restEligible[key] = true;
|
26
|
+
}
|
27
|
+
}
|
28
|
+
}
|
29
|
+
for (const key in props) {
|
30
|
+
const typedKey = key;
|
31
|
+
if (!assigned[typedKey] || restEligible[typedKey]) {
|
32
|
+
rest[typedKey] = props[typedKey];
|
33
|
+
}
|
34
|
+
}
|
35
|
+
result.rest = rest;
|
36
|
+
return result;
|
37
|
+
};
|
38
|
+
const useApplyConfig = (props, options) => {
|
39
|
+
const [config] = usePowellConfig.usePowellConfig();
|
40
|
+
const { sizable = true, isFixLabel = false, groups = {} } = options;
|
41
|
+
const result = {
|
42
|
+
...props,
|
43
|
+
rtl: props.rtl ?? config.rtl,
|
44
|
+
showRequiredStar: props.showRequiredStar ?? config.showRequiredStar,
|
45
|
+
labelPosition: props.labelPosition ?? (isFixLabel ? config.fixLabelPosition : config.labelPosition),
|
46
|
+
..."variant" in props ? { variant: props.variant ?? config.inputStyle } : {}
|
47
|
+
};
|
48
|
+
if (sizable) {
|
49
|
+
result.inputSize = props.inputSize ?? config.inputSize;
|
50
|
+
}
|
51
|
+
return splitProps(result, groups);
|
52
|
+
};
|
53
|
+
|
54
|
+
exports.useApplyConfig = useApplyConfig;
|
55
|
+
//# sourceMappingURL=index.cjs6.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.cjs6.js","sources":["../src/powell/hooks/useApplyConfig.ts"],"sourcesContent":["import {usePowellConfig} from \"@powell/hooks/usePowellConfig\";\r\nimport {PowellConfig, SafeAny} from \"@powell/models\";\r\n\r\ninterface ApplyConfigOptions<T> {\r\n isFixLabel: boolean;\r\n sizable: boolean;\r\n groups: Record<string, PropDescriptor<T>[]>\r\n}\r\n\r\ninterface CommonConfigProps {\r\n rtl?: PowellConfig[\"rtl\"];\r\n showRequiredStar?: PowellConfig[\"showRequiredStar\"];\r\n labelPosition?: PowellConfig[\"labelPosition\"];\r\n inputSize?: PowellConfig[\"inputSize\"];\r\n variant?: PowellConfig[\"inputStyle\"];\r\n}\r\n\r\ntype PropDescriptor<T> =\r\n | keyof T & string\r\n | {\r\n key: keyof T & string;\r\n alias?: string;\r\n defaultValue?: T[keyof T] | (() => T[keyof T]);\r\n keepInRest?: boolean;\r\n};\r\n\r\nconst splitProps = <T extends Record<string, SafeAny>>(props: T, groups: Record<string, PropDescriptor<T>[]>) => {\r\n const result: Record<string, SafeAny> = {};\r\n const rest: Partial<T> = {};\r\n const assigned: Partial<Record<keyof T, boolean>> = {};\r\n const restEligible: Partial<Record<keyof T, boolean>> = {};\r\n\r\n for (const groupName in groups) {\r\n for (const descriptor of groups[groupName]) {\r\n const key = typeof descriptor === 'string' ? descriptor : descriptor.key;\r\n const alias = typeof descriptor === 'string' ? undefined : descriptor.alias;\r\n const defaultValue = typeof descriptor === 'string' ? undefined : descriptor.defaultValue;\r\n const keepInRest = typeof descriptor === 'string' ? false : descriptor.keepInRest ?? false;\r\n\r\n if (!result[groupName]) {\r\n result[groupName] = {};\r\n }\r\n\r\n const value = key in props ? props[key] : typeof defaultValue === 'function' ? (defaultValue as SafeAny)() : defaultValue;\r\n result[groupName][alias ?? key] = value;\r\n\r\n assigned[key] = true;\r\n if (keepInRest) {\r\n restEligible[key] = true;\r\n }\r\n }\r\n }\r\n\r\n for (const key in props) {\r\n const typedKey = key as keyof T;\r\n if (!assigned[typedKey] || restEligible[typedKey]) {\r\n rest[typedKey] = props[typedKey];\r\n }\r\n }\r\n\r\n result.rest = rest;\r\n return result as Record<string, Partial<T>> & {rest: Partial<T>};\r\n}\r\n\r\nexport const useApplyConfig = <T extends CommonConfigProps>(props: T, options: ApplyConfigOptions<T>) => {\r\n const [config] = usePowellConfig();\r\n const {sizable = true, isFixLabel = false, groups = {}} = options;\r\n\r\n const result = {\r\n ...props,\r\n rtl: props.rtl ?? config.rtl,\r\n showRequiredStar: props.showRequiredStar ?? config.showRequiredStar,\r\n labelPosition: props.labelPosition ?? (isFixLabel ? config.fixLabelPosition : config.labelPosition),\r\n ...('variant' in props ? {variant: props.variant ?? config.inputStyle} : {}),\r\n }\r\n\r\n if (sizable) {\r\n result.inputSize = props.inputSize ?? config.inputSize;\r\n }\r\n\r\n return splitProps<T>(result, groups);\r\n}\r\n"],"names":["usePowellConfig"],"mappings":";;;;;;AA0BA,MAAM,UAAA,GAAa,CAAoC,KAAA,EAAU,MAAgD,KAAA;AAC/G,EAAA,MAAM,SAAkC,EAAC;AACzC,EAAA,MAAM,OAAmB,EAAC;AAC1B,EAAA,MAAM,WAA8C,EAAC;AACrD,EAAA,MAAM,eAAkD,EAAC;AAEzD,EAAA,KAAA,MAAW,aAAa,MAAQ,EAAA;AAC9B,IAAW,KAAA,MAAA,UAAA,IAAc,MAAO,CAAA,SAAS,CAAG,EAAA;AAC1C,MAAA,MAAM,GAAM,GAAA,OAAO,UAAe,KAAA,QAAA,GAAW,aAAa,UAAW,CAAA,GAAA;AACrE,MAAA,MAAM,KAAQ,GAAA,OAAO,UAAe,KAAA,QAAA,GAAW,SAAY,UAAW,CAAA,KAAA;AACtE,MAAA,MAAM,YAAe,GAAA,OAAO,UAAe,KAAA,QAAA,GAAW,SAAY,UAAW,CAAA,YAAA;AAC7E,MAAA,MAAM,aAAa,OAAO,UAAA,KAAe,QAAW,GAAA,KAAA,GAAQ,WAAW,UAAc,IAAA,KAAA;AAErF,MAAI,IAAA,CAAC,MAAO,CAAA,SAAS,CAAG,EAAA;AACtB,QAAO,MAAA,CAAA,SAAS,IAAI,EAAC;AAAA;AAGvB,MAAM,MAAA,KAAA,GAAQ,GAAO,IAAA,KAAA,GAAQ,KAAM,CAAA,GAAG,IAAI,OAAO,YAAA,KAAiB,UAAc,GAAA,YAAA,EAA6B,GAAA,YAAA;AAC7G,MAAA,MAAA,CAAO,SAAS,CAAA,CAAE,KAAS,IAAA,GAAG,CAAI,GAAA,KAAA;AAElC,MAAA,QAAA,CAAS,GAAG,CAAI,GAAA,IAAA;AAChB,MAAA,IAAI,UAAY,EAAA;AACd,QAAA,YAAA,CAAa,GAAG,CAAI,GAAA,IAAA;AAAA;AACtB;AACF;AAGF,EAAA,KAAA,MAAW,OAAO,KAAO,EAAA;AACvB,IAAA,MAAM,QAAW,GAAA,GAAA;AACjB,IAAA,IAAI,CAAC,QAAS,CAAA,QAAQ,CAAK,IAAA,YAAA,CAAa,QAAQ,CAAG,EAAA;AACjD,MAAK,IAAA,CAAA,QAAQ,CAAI,GAAA,KAAA,CAAM,QAAQ,CAAA;AAAA;AACjC;AAGF,EAAA,MAAA,CAAO,IAAO,GAAA,IAAA;AACd,EAAO,OAAA,MAAA;AACT,CAAA;AAEa,MAAA,cAAA,GAAiB,CAA8B,KAAA,EAAU,OAAmC,KAAA;AACvG,EAAM,MAAA,CAAC,MAAM,CAAA,GAAIA,+BAAgB,EAAA;AACjC,EAAM,MAAA,EAAC,UAAU,IAAM,EAAA,UAAA,GAAa,OAAO,MAAS,GAAA,IAAM,GAAA,OAAA;AAE1D,EAAA,MAAM,MAAS,GAAA;AAAA,IACb,GAAG,KAAA;AAAA,IACH,GAAA,EAAK,KAAM,CAAA,GAAA,IAAO,MAAO,CAAA,GAAA;AAAA,IACzB,gBAAA,EAAkB,KAAM,CAAA,gBAAA,IAAoB,MAAO,CAAA,gBAAA;AAAA,IACnD,eAAe,KAAM,CAAA,aAAA,KAAkB,UAAa,GAAA,MAAA,CAAO,mBAAmB,MAAO,CAAA,aAAA,CAAA;AAAA,IACrF,GAAI,SAAa,IAAA,KAAA,GAAQ,EAAC,OAAA,EAAS,MAAM,OAAW,IAAA,MAAA,CAAO,UAAU,EAAA,GAAI;AAAC,GAC5E;AAEA,EAAA,IAAI,OAAS,EAAA;AACX,IAAO,MAAA,CAAA,SAAA,GAAY,KAAM,CAAA,SAAA,IAAa,MAAO,CAAA,SAAA;AAAA;AAG/C,EAAO,OAAA,UAAA,CAAc,QAAQ,MAAM,CAAA;AACrC;;;;"}
|
@@ -0,0 +1,128 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
4
|
+
|
5
|
+
const require$$0 = require('react');
|
6
|
+
require('./index.cjs13.js');
|
7
|
+
const FormContext = require('./index.cjs14.js');
|
8
|
+
const formik = require('formik');
|
9
|
+
require('yup');
|
10
|
+
require('./index.cjs11.js');
|
11
|
+
require('primereact/autocomplete');
|
12
|
+
require('primereact/calendar');
|
13
|
+
require('primereact/cascadeselect');
|
14
|
+
require('primereact/checkbox');
|
15
|
+
require('primereact/chips');
|
16
|
+
require('primereact/colorpicker');
|
17
|
+
require('primereact/dropdown');
|
18
|
+
require('primereact/editor');
|
19
|
+
require('primereact/floatlabel');
|
20
|
+
require('primereact/inputicon');
|
21
|
+
require('primereact/iconfield');
|
22
|
+
require('primereact/inputmask');
|
23
|
+
require('primereact/inputswitch');
|
24
|
+
require('primereact/inputnumber');
|
25
|
+
require('primereact/inputotp');
|
26
|
+
require('primereact/inputtext');
|
27
|
+
require('primereact/inputtextarea');
|
28
|
+
require('primereact/knob');
|
29
|
+
require('primereact/listbox');
|
30
|
+
require('primereact/mention');
|
31
|
+
require('primereact/multiselect');
|
32
|
+
require('primereact/multistatecheckbox');
|
33
|
+
require('primereact/password');
|
34
|
+
require('primereact/radiobutton');
|
35
|
+
require('primereact/rating');
|
36
|
+
require('primereact/selectbutton');
|
37
|
+
require('primereact/slider');
|
38
|
+
require('primereact/treeselect');
|
39
|
+
require('primereact/tristatecheckbox');
|
40
|
+
require('primereact/togglebutton');
|
41
|
+
require('primereact/button');
|
42
|
+
require('primereact/speeddial');
|
43
|
+
require('primereact/splitbutton');
|
44
|
+
require('primereact/datatable');
|
45
|
+
require('primereact/dataview');
|
46
|
+
require('primereact/datascroller');
|
47
|
+
require('primereact/orderlist');
|
48
|
+
require('primereact/organizationchart');
|
49
|
+
require('primereact/paginator');
|
50
|
+
require('primereact/picklist');
|
51
|
+
require('primereact/tree');
|
52
|
+
require('primereact/treetable');
|
53
|
+
require('primereact/timeline');
|
54
|
+
require('primereact/virtualscroller');
|
55
|
+
require('primereact/accordion');
|
56
|
+
require('primereact/card');
|
57
|
+
require('primereact/deferredcontent');
|
58
|
+
require('primereact/divider');
|
59
|
+
require('primereact/fieldset');
|
60
|
+
require('primereact/panel');
|
61
|
+
require('primereact/scrollpanel');
|
62
|
+
require('primereact/splitter');
|
63
|
+
require('primereact/stepper');
|
64
|
+
require('primereact/tabview');
|
65
|
+
require('primereact/toolbar');
|
66
|
+
require('primereact/confirmdialog');
|
67
|
+
require('primereact/confirmpopup');
|
68
|
+
require('primereact/dialog');
|
69
|
+
require('primereact/overlaypanel');
|
70
|
+
require('primereact/sidebar');
|
71
|
+
require('primereact/tooltip');
|
72
|
+
require('primereact/fileupload');
|
73
|
+
require('primereact/breadcrumb');
|
74
|
+
require('primereact/contextmenu');
|
75
|
+
require('primereact/dock');
|
76
|
+
require('primereact/megamenu');
|
77
|
+
require('primereact/menu');
|
78
|
+
require('primereact/menubar');
|
79
|
+
require('primereact/panelmenu');
|
80
|
+
require('primereact/steps');
|
81
|
+
require('primereact/tabmenu');
|
82
|
+
require('primereact/tieredmenu');
|
83
|
+
require('primereact/message');
|
84
|
+
require('primereact/messages');
|
85
|
+
require('primereact/toast');
|
86
|
+
require('primereact/carousel');
|
87
|
+
require('primereact/galleria');
|
88
|
+
require('primereact/image');
|
89
|
+
require('primereact/avatar');
|
90
|
+
require('primereact/badge');
|
91
|
+
require('primereact/blockui');
|
92
|
+
require('primereact/chip');
|
93
|
+
require('primereact/inplace');
|
94
|
+
require('primereact/metergroup');
|
95
|
+
require('primereact/scrolltop');
|
96
|
+
require('primereact/skeleton');
|
97
|
+
require('primereact/progressbar');
|
98
|
+
require('primereact/progressspinner');
|
99
|
+
require('primereact/ripple');
|
100
|
+
require('primereact/styleclass');
|
101
|
+
require('primereact/tag');
|
102
|
+
require('primereact/terminal');
|
103
|
+
require('primereact/api');
|
104
|
+
require('primereact/utils');
|
105
|
+
|
106
|
+
const useFormContext = () => {
|
107
|
+
const context = require$$0.useContext(FormContext.FormContext);
|
108
|
+
const formikContext = useSafeFormikContext();
|
109
|
+
if (!context || !formikContext) {
|
110
|
+
return null;
|
111
|
+
}
|
112
|
+
return { ...context, ...formikContext };
|
113
|
+
};
|
114
|
+
function useSafeFormikContext() {
|
115
|
+
const context = require$$0.useContext(formik.FormikContext);
|
116
|
+
try {
|
117
|
+
if (context) {
|
118
|
+
return formik.useFormikContext();
|
119
|
+
}
|
120
|
+
return void 0;
|
121
|
+
} catch {
|
122
|
+
return void 0;
|
123
|
+
}
|
124
|
+
}
|
125
|
+
|
126
|
+
exports.useFormContext = useFormContext;
|
127
|
+
exports.useSafeFormikContext = useSafeFormikContext;
|
128
|
+
//# sourceMappingURL=index.cjs7.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.cjs7.js","sources":["../src/powell/hooks/useFormContext.ts"],"sourcesContent":["import {useContext} from \"react\";\r\nimport {FormContext} from \"@powell/components/FormContainer\";\r\nimport {$FormikConfig, $FormikContext, $FormikContextType, $FormikValues, $useFormikContext} from \"@powell/api\";\r\nimport {SafeAny} from \"@powell/models\";\r\n\r\nexport const useFormContext = () => {\r\n const context = useContext(FormContext) as $FormikConfig<$FormikValues>;\r\n const formikContext = useSafeFormikContext();\r\n\r\n if (!context || !formikContext) {\r\n return null;\r\n }\r\n\r\n return {...context, ...formikContext} as $FormikContextType<$FormikValues>;\r\n};\r\n\r\nexport function useSafeFormikContext<T = SafeAny>() {\r\n const context = useContext($FormikContext);\r\n try {\r\n if (context) {\r\n return $useFormikContext<T>();\r\n }\r\n return undefined;\r\n } catch {\r\n return undefined;\r\n }\r\n}\r\n"],"names":["useContext","FormContext","$FormikContext","$useFormikContext"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKO,MAAM,iBAAiB,MAAM;AAClC,EAAM,MAAA,OAAA,GAAUA,sBAAWC,uBAAW,CAAA;AACtC,EAAA,MAAM,gBAAgB,oBAAqB,EAAA;AAE3C,EAAI,IAAA,CAAC,OAAW,IAAA,CAAC,aAAe,EAAA;AAC9B,IAAO,OAAA,IAAA;AAAA;AAGT,EAAA,OAAO,EAAC,GAAG,OAAS,EAAA,GAAG,aAAa,EAAA;AACtC;AAEO,SAAS,oBAAoC,GAAA;AAClD,EAAM,MAAA,OAAA,GAAUD,sBAAWE,oBAAc,CAAA;AACzC,EAAI,IAAA;AACF,IAAA,IAAI,OAAS,EAAA;AACX,MAAA,OAAOC,uBAAqB,EAAA;AAAA;AAE9B,IAAO,OAAA,KAAA,CAAA;AAAA,GACD,CAAA,MAAA;AACN,IAAO,OAAA,MAAA;AAAA;AAEX;;;;;"}
|
@@ -0,0 +1,201 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
4
|
+
|
5
|
+
const configService = require('./index.cjs3.js');
|
6
|
+
require('formik');
|
7
|
+
require('yup');
|
8
|
+
require('./index.cjs11.js');
|
9
|
+
const require$$0 = require('react');
|
10
|
+
require('./index.cjs13.js');
|
11
|
+
require('./index.cjs14.js');
|
12
|
+
require('primereact/autocomplete');
|
13
|
+
require('primereact/calendar');
|
14
|
+
require('primereact/cascadeselect');
|
15
|
+
require('primereact/checkbox');
|
16
|
+
require('primereact/chips');
|
17
|
+
require('primereact/colorpicker');
|
18
|
+
require('primereact/dropdown');
|
19
|
+
require('primereact/editor');
|
20
|
+
require('primereact/floatlabel');
|
21
|
+
require('primereact/inputicon');
|
22
|
+
require('primereact/iconfield');
|
23
|
+
require('primereact/inputmask');
|
24
|
+
require('primereact/inputswitch');
|
25
|
+
require('primereact/inputnumber');
|
26
|
+
require('primereact/inputotp');
|
27
|
+
require('primereact/inputtext');
|
28
|
+
require('primereact/inputtextarea');
|
29
|
+
require('primereact/knob');
|
30
|
+
require('primereact/listbox');
|
31
|
+
require('primereact/mention');
|
32
|
+
require('primereact/multiselect');
|
33
|
+
require('primereact/multistatecheckbox');
|
34
|
+
require('primereact/password');
|
35
|
+
require('primereact/radiobutton');
|
36
|
+
require('primereact/rating');
|
37
|
+
require('primereact/selectbutton');
|
38
|
+
require('primereact/slider');
|
39
|
+
require('primereact/treeselect');
|
40
|
+
require('primereact/tristatecheckbox');
|
41
|
+
require('primereact/togglebutton');
|
42
|
+
require('primereact/button');
|
43
|
+
require('primereact/speeddial');
|
44
|
+
require('primereact/splitbutton');
|
45
|
+
require('primereact/datatable');
|
46
|
+
require('primereact/dataview');
|
47
|
+
require('primereact/datascroller');
|
48
|
+
require('primereact/orderlist');
|
49
|
+
require('primereact/organizationchart');
|
50
|
+
require('primereact/paginator');
|
51
|
+
require('primereact/picklist');
|
52
|
+
require('primereact/tree');
|
53
|
+
require('primereact/treetable');
|
54
|
+
require('primereact/timeline');
|
55
|
+
require('primereact/virtualscroller');
|
56
|
+
require('primereact/accordion');
|
57
|
+
require('primereact/card');
|
58
|
+
require('primereact/deferredcontent');
|
59
|
+
require('primereact/divider');
|
60
|
+
require('primereact/fieldset');
|
61
|
+
require('primereact/panel');
|
62
|
+
require('primereact/scrollpanel');
|
63
|
+
require('primereact/splitter');
|
64
|
+
require('primereact/stepper');
|
65
|
+
require('primereact/tabview');
|
66
|
+
require('primereact/toolbar');
|
67
|
+
require('primereact/confirmdialog');
|
68
|
+
require('primereact/confirmpopup');
|
69
|
+
require('primereact/dialog');
|
70
|
+
require('primereact/overlaypanel');
|
71
|
+
require('primereact/sidebar');
|
72
|
+
require('primereact/tooltip');
|
73
|
+
require('primereact/fileupload');
|
74
|
+
require('primereact/breadcrumb');
|
75
|
+
require('primereact/contextmenu');
|
76
|
+
require('primereact/dock');
|
77
|
+
require('primereact/megamenu');
|
78
|
+
require('primereact/menu');
|
79
|
+
require('primereact/menubar');
|
80
|
+
require('primereact/panelmenu');
|
81
|
+
require('primereact/steps');
|
82
|
+
require('primereact/tabmenu');
|
83
|
+
require('primereact/tieredmenu');
|
84
|
+
require('primereact/message');
|
85
|
+
require('primereact/messages');
|
86
|
+
require('primereact/toast');
|
87
|
+
require('primereact/carousel');
|
88
|
+
require('primereact/galleria');
|
89
|
+
require('primereact/image');
|
90
|
+
require('primereact/avatar');
|
91
|
+
require('primereact/badge');
|
92
|
+
require('primereact/blockui');
|
93
|
+
require('primereact/chip');
|
94
|
+
require('primereact/inplace');
|
95
|
+
require('primereact/metergroup');
|
96
|
+
require('primereact/scrolltop');
|
97
|
+
require('primereact/skeleton');
|
98
|
+
require('primereact/progressbar');
|
99
|
+
require('primereact/progressspinner');
|
100
|
+
require('primereact/ripple');
|
101
|
+
require('primereact/styleclass');
|
102
|
+
require('primereact/tag');
|
103
|
+
require('primereact/terminal');
|
104
|
+
const api = require('primereact/api');
|
105
|
+
require('primereact/utils');
|
106
|
+
|
107
|
+
const usePowellConfig = () => {
|
108
|
+
const [powellConfig, setPowellConfig] = configService.configService.use();
|
109
|
+
const {
|
110
|
+
setPt,
|
111
|
+
setFilterMatchModeOptions,
|
112
|
+
setLocale,
|
113
|
+
setNonce,
|
114
|
+
setHideOverlaysOnDocumentScrolling,
|
115
|
+
setRipple,
|
116
|
+
setCssTransition,
|
117
|
+
setStyleContainer,
|
118
|
+
setInputStyle,
|
119
|
+
setNullSortOrder,
|
120
|
+
setZIndex,
|
121
|
+
setAutoZIndex,
|
122
|
+
setAppendTo,
|
123
|
+
changeTheme,
|
124
|
+
...restPrimeConfig
|
125
|
+
} = require$$0.useContext(api.PrimeReactContext);
|
126
|
+
const configAction = {
|
127
|
+
pt: setPt,
|
128
|
+
filterMatchModeOptions: setFilterMatchModeOptions,
|
129
|
+
locale: setLocale,
|
130
|
+
nonce: setNonce,
|
131
|
+
hideOverlaysOnDocumentScrolling: setHideOverlaysOnDocumentScrolling,
|
132
|
+
ripple: setRipple,
|
133
|
+
cssTransition: setCssTransition,
|
134
|
+
styleContainer: setStyleContainer,
|
135
|
+
inputStyle: setInputStyle,
|
136
|
+
nullSortOrder: setNullSortOrder,
|
137
|
+
zIndex: setZIndex,
|
138
|
+
autoZIndex: setAutoZIndex,
|
139
|
+
appendTo: setAppendTo,
|
140
|
+
theme: (v) => changeTheme?.(powellConfig.theme, v.theme, "powell-theme-link")
|
141
|
+
};
|
142
|
+
const updateConfig = (c) => {
|
143
|
+
for (const key in c) {
|
144
|
+
if (key in configAction) {
|
145
|
+
configAction[key]?.(c);
|
146
|
+
}
|
147
|
+
applyConfigToDom({ ...c, injectDirectionToRoot: powellConfig.injectDirectionToRoot });
|
148
|
+
setPowellConfig((prev) => ({ ...prev, ...c }));
|
149
|
+
}
|
150
|
+
};
|
151
|
+
return [{ ...powellConfig, ...restPrimeConfig }, updateConfig];
|
152
|
+
};
|
153
|
+
const applyConfigToDom = (config) => {
|
154
|
+
handleBodyClasses(config);
|
155
|
+
if ("rtl" in config && config.injectDirectionToRoot) {
|
156
|
+
document.documentElement.setAttribute("dir", config.rtl ? "rtl" : "ltr");
|
157
|
+
} else {
|
158
|
+
document.documentElement.removeAttribute("dir");
|
159
|
+
}
|
160
|
+
};
|
161
|
+
const kebabCase = (str) => str.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
|
162
|
+
const handleBodyClasses = (config) => {
|
163
|
+
const specialBodyClassRules = {
|
164
|
+
ripple: [
|
165
|
+
{
|
166
|
+
condition: (v) => v === false,
|
167
|
+
className: "p-ripple-disabled"
|
168
|
+
}
|
169
|
+
],
|
170
|
+
inputStyle: [
|
171
|
+
{
|
172
|
+
condition: (v) => v === "filled",
|
173
|
+
className: "p-input-filled"
|
174
|
+
}
|
175
|
+
]
|
176
|
+
};
|
177
|
+
for (const key in config) {
|
178
|
+
const value = config[key];
|
179
|
+
if (value === void 0) continue;
|
180
|
+
const rules = specialBodyClassRules[key];
|
181
|
+
if (rules && rules.length) {
|
182
|
+
for (const rule of rules) {
|
183
|
+
const shouldApply = rule.condition(value);
|
184
|
+
document.body.classList.toggle(rule.className, shouldApply);
|
185
|
+
}
|
186
|
+
} else {
|
187
|
+
const prefix = `powell-${kebabCase(key)}-`;
|
188
|
+
document.body.classList.forEach((cls) => {
|
189
|
+
if (cls.startsWith(prefix)) {
|
190
|
+
document.body.classList.remove(cls);
|
191
|
+
}
|
192
|
+
});
|
193
|
+
const finalValue = typeof value === "boolean" ? value ? "enabled" : "disabled" : value;
|
194
|
+
document.body.classList.add(`${prefix}${finalValue}`);
|
195
|
+
}
|
196
|
+
}
|
197
|
+
};
|
198
|
+
|
199
|
+
exports.applyConfigToDom = applyConfigToDom;
|
200
|
+
exports.usePowellConfig = usePowellConfig;
|
201
|
+
//# sourceMappingURL=index.cjs8.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.cjs8.js","sources":["../src/powell/hooks/usePowellConfig.ts"],"sourcesContent":["import {$PrimeReactContext, configService} from \"@powell/api\";\r\nimport {Dispatch, SetStateAction, useContext} from \"react\";\r\nimport {PowellConfig, SafeAny} from \"@powell/models\";\r\n\r\ntype BodyClassRule = {\r\n condition: (value: SafeAny) => boolean;\r\n className: string;\r\n};\r\n\r\nexport const usePowellConfig = () => {\r\n const [powellConfig, setPowellConfig] = configService.use();\r\n const {\r\n setPt,\r\n setFilterMatchModeOptions,\r\n setLocale,\r\n setNonce,\r\n setHideOverlaysOnDocumentScrolling,\r\n setRipple,\r\n setCssTransition,\r\n setStyleContainer,\r\n setInputStyle,\r\n setNullSortOrder,\r\n setZIndex,\r\n setAutoZIndex,\r\n setAppendTo,\r\n changeTheme,\r\n ...restPrimeConfig\r\n } = useContext($PrimeReactContext);\r\n\r\n const configAction: Partial<Record<keyof PowellConfig, Dispatch<SetStateAction<SafeAny>>>> = {\r\n pt: setPt,\r\n filterMatchModeOptions: setFilterMatchModeOptions,\r\n locale: setLocale,\r\n nonce: setNonce,\r\n hideOverlaysOnDocumentScrolling: setHideOverlaysOnDocumentScrolling,\r\n ripple: setRipple,\r\n cssTransition: setCssTransition,\r\n styleContainer: setStyleContainer,\r\n inputStyle: setInputStyle,\r\n nullSortOrder: setNullSortOrder,\r\n zIndex: setZIndex,\r\n autoZIndex: setAutoZIndex,\r\n appendTo: setAppendTo,\r\n theme: (v: PowellConfig) => changeTheme?.(powellConfig.theme, v.theme!, 'powell-theme-link')\r\n }\r\n const updateConfig = (c: Partial<PowellConfig>) => {\r\n for (const key in c) {\r\n if (key in configAction) {\r\n configAction[key as keyof PowellConfig]?.(c);\r\n }\r\n applyConfigToDom({...c, injectDirectionToRoot: powellConfig.injectDirectionToRoot});\r\n setPowellConfig(prev => ({...prev, ...c}));\r\n }\r\n }\r\n return [{...powellConfig, ...restPrimeConfig}, updateConfig] as [config: PowellConfig, (c: Partial<PowellConfig>) => any];\r\n}\r\n\r\nexport const applyConfigToDom = (config: PowellConfig) => {\r\n handleBodyClasses(config);\r\n if ('rtl' in config && config.injectDirectionToRoot) {\r\n document.documentElement.setAttribute('dir', config.rtl ? 'rtl' : 'ltr');\r\n } else {\r\n document.documentElement.removeAttribute('dir');\r\n }\r\n}\r\n\r\nconst kebabCase = (str: string) => str.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();\r\n\r\nconst handleBodyClasses = (config: PowellConfig) => {\r\n const specialBodyClassRules: Partial<Record<keyof PowellConfig, BodyClassRule[]>> = {\r\n ripple: [\r\n {\r\n condition: (v) => v === false,\r\n className: 'p-ripple-disabled',\r\n },\r\n ],\r\n inputStyle: [\r\n {\r\n condition: (v) => v === 'filled',\r\n className: 'p-input-filled',\r\n },\r\n ],\r\n };\r\n\r\n for (const key in config) {\r\n const value = config[key as keyof PowellConfig];\r\n if (value === undefined) continue;\r\n\r\n const rules = specialBodyClassRules[key as keyof PowellConfig];\r\n\r\n if (rules && rules.length) {\r\n for (const rule of rules) {\r\n const shouldApply = rule.condition(value);\r\n document.body.classList.toggle(rule.className, shouldApply);\r\n }\r\n } else {\r\n const prefix = `powell-${kebabCase(key)}-`;\r\n document.body.classList.forEach((cls) => {\r\n if (cls.startsWith(prefix)) {\r\n document.body.classList.remove(cls);\r\n }\r\n });\r\n const finalValue = typeof value === 'boolean' ? (value ? 'enabled' : 'disabled') : value;\r\n document.body.classList.add(`${prefix}${finalValue}`);\r\n }\r\n }\r\n};\r\n\r\n"],"names":["configService","useContext","$PrimeReactContext"],"mappings":"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"}
|
@@ -0,0 +1,63 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
4
|
+
|
5
|
+
const require$$0 = require('react');
|
6
|
+
|
7
|
+
const useIsomorphicLayoutEffect = typeof window !== "undefined" || typeof document !== "undefined" ? require$$0.useLayoutEffect : require$$0.useEffect;
|
8
|
+
const equ = (a, b) => a === b;
|
9
|
+
const FR = {};
|
10
|
+
function useComparator(v, c = equ) {
|
11
|
+
const f = require$$0.useRef(FR);
|
12
|
+
let nv = f.current;
|
13
|
+
useIsomorphicLayoutEffect(() => {
|
14
|
+
f.current = nv;
|
15
|
+
});
|
16
|
+
if (f.current === FR || !c(v, f.current)) {
|
17
|
+
nv = v;
|
18
|
+
}
|
19
|
+
return nv;
|
20
|
+
}
|
21
|
+
function globalState(initialValue, options) {
|
22
|
+
let sb = [];
|
23
|
+
let v = initialValue;
|
24
|
+
function set(newValue, callback) {
|
25
|
+
const pv = v;
|
26
|
+
v = newValue instanceof Function ? newValue(v) : newValue;
|
27
|
+
setTimeout(() => {
|
28
|
+
sb.forEach((c) => c(v, pv));
|
29
|
+
callback?.(v, pv);
|
30
|
+
options?.onSet?.(v, pv);
|
31
|
+
});
|
32
|
+
}
|
33
|
+
function subscribe(subscriber) {
|
34
|
+
sb.push(subscriber);
|
35
|
+
return () => {
|
36
|
+
sb = sb.filter((f) => f !== subscriber);
|
37
|
+
};
|
38
|
+
}
|
39
|
+
function useSubscription(subscriber) {
|
40
|
+
useIsomorphicLayoutEffect(() => subscribe(subscriber), [subscriber]);
|
41
|
+
}
|
42
|
+
function use() {
|
43
|
+
const [l, s] = require$$0.useState(v);
|
44
|
+
useSubscription(s);
|
45
|
+
return [l, set];
|
46
|
+
}
|
47
|
+
function useSelector(selector, comparator = equ) {
|
48
|
+
const [rv] = use();
|
49
|
+
return useComparator(selector(rv), comparator);
|
50
|
+
}
|
51
|
+
return {
|
52
|
+
use,
|
53
|
+
useSelector,
|
54
|
+
useValue: () => use()[0],
|
55
|
+
get: () => v,
|
56
|
+
set,
|
57
|
+
reset: () => set(initialValue),
|
58
|
+
subscribe
|
59
|
+
};
|
60
|
+
}
|
61
|
+
|
62
|
+
exports.globalState = globalState;
|
63
|
+
//# sourceMappingURL=index.cjs9.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.cjs9.js","sources":["../src/powell/utils/globalState.ts"],"sourcesContent":["import {SetStateAction, useEffect, useLayoutEffect, useRef, useState} from \"react\";\r\n\r\ntype Set<T> = (newState: SetStateAction<T>, callback?: (newState: T) => void) => void;\r\n\r\ntype UseSelector<T> = <TSelected = unknown>(selector: (state: T) => TSelected, equalityFn?: Comparator<TSelected>) => TSelected;\r\n\r\nexport interface StateWithValue<T> {\r\n use: () => [T, Set<T>];\r\n useValue: () => T;\r\n get: () => T;\r\n useSelector: UseSelector<T>;\r\n set: Set<T>;\r\n reset: () => void;\r\n subscribe(subscriber: SubscriberFunc<T>): () => void;\r\n}\r\n\r\ntype SubscriberFunc<T> = (newState: T, previousState: T) => void;\r\n\r\ninterface Options<T> {\r\n onSet?: SubscriberFunc<T>;\r\n}\r\n\r\ntype Comparator<TSelected = unknown> = (a: TSelected, b: TSelected) => boolean;\r\n\r\nconst useIsomorphicLayoutEffect =\r\n typeof window !== \"undefined\" || typeof document !== \"undefined\"\r\n ? useLayoutEffect\r\n : useEffect;\r\n\r\nconst equ: Comparator = (a, b) => a === b;\r\n\r\nconst FR = {};\r\n\r\nfunction useComparator<T>(v: T, c: Comparator<T> = equ): T {\r\n const f = useRef(FR as T);\r\n let nv = f.current;\r\n\r\n useIsomorphicLayoutEffect(() => {\r\n f.current = nv;\r\n });\r\n\r\n if (f.current === FR || !c(v, f.current)) {\r\n nv = v;\r\n }\r\n\r\n return nv;\r\n}\r\n\r\nexport function globalState<T>(initialValue: T, options?: Options<T>): StateWithValue<T> {\r\n let sb: SubscriberFunc<T>[] = [];\r\n\r\n let v: T = initialValue;\r\n\r\n function set(newValue: SetStateAction<T>, callback?: SubscriberFunc<T>) {\r\n const pv = v;\r\n v = newValue instanceof Function ? newValue(v) : newValue;\r\n\r\n setTimeout(() => {\r\n sb.forEach((c) => c(v, pv));\r\n callback?.(v, pv);\r\n options?.onSet?.(v, pv);\r\n });\r\n }\r\n\r\n function subscribe(subscriber: SubscriberFunc<T>): () => void {\r\n sb.push(subscriber);\r\n return () => {\r\n sb = sb.filter((f) => f !== subscriber);\r\n };\r\n }\r\n\r\n function useSubscription(subscriber: SubscriberFunc<T>) {\r\n useIsomorphicLayoutEffect(() => subscribe(subscriber), [subscriber]);\r\n }\r\n\r\n function use(): [T, Set<T>] {\r\n const [l, s] = useState<T>(v);\r\n useSubscription(s);\r\n return [l, set];\r\n }\r\n\r\n function useSelector<TSelected = unknown>(selector: (state: T) => TSelected, comparator: Comparator<TSelected> = equ): TSelected {\r\n const [rv] = use();\r\n return useComparator(selector(rv), comparator);\r\n }\r\n\r\n return {\r\n use,\r\n useSelector,\r\n useValue: () => use()[0],\r\n get: () => v,\r\n set,\r\n reset: () => set(initialValue),\r\n subscribe,\r\n };\r\n}\r\n"],"names":["useLayoutEffect","useEffect","useRef","useState"],"mappings":";;;;;;AAwBA,MAAM,4BACF,OAAO,MAAA,KAAW,eAAe,OAAO,QAAA,KAAa,cAC/CA,0BACA,GAAAC,oBAAA;AAEV,MAAM,GAAkB,GAAA,CAAC,CAAG,EAAA,CAAA,KAAM,CAAM,KAAA,CAAA;AAExC,MAAM,KAAK,EAAC;AAEZ,SAAS,aAAA,CAAiB,CAAM,EAAA,CAAA,GAAmB,GAAQ,EAAA;AACzD,EAAM,MAAA,CAAA,GAAIC,kBAAO,EAAO,CAAA;AACxB,EAAA,IAAI,KAAK,CAAE,CAAA,OAAA;AAEX,EAAA,yBAAA,CAA0B,MAAM;AAC9B,IAAA,CAAA,CAAE,OAAU,GAAA,EAAA;AAAA,GACb,CAAA;AAED,EAAI,IAAA,CAAA,CAAE,YAAY,EAAM,IAAA,CAAC,EAAE,CAAG,EAAA,CAAA,CAAE,OAAO,CAAG,EAAA;AACxC,IAAK,EAAA,GAAA,CAAA;AAAA;AAGP,EAAO,OAAA,EAAA;AACT;AAEgB,SAAA,WAAA,CAAe,cAAiB,OAAyC,EAAA;AACvF,EAAA,IAAI,KAA0B,EAAC;AAE/B,EAAA,IAAI,CAAO,GAAA,YAAA;AAEX,EAAS,SAAA,GAAA,CAAI,UAA6B,QAA8B,EAAA;AACtE,IAAA,MAAM,EAAK,GAAA,CAAA;AACX,IAAA,CAAA,GAAI,QAAoB,YAAA,QAAA,GAAW,QAAS,CAAA,CAAC,CAAI,GAAA,QAAA;AAEjD,IAAA,UAAA,CAAW,MAAM;AACf,MAAA,EAAA,CAAG,QAAQ,CAAC,CAAA,KAAM,CAAE,CAAA,CAAA,EAAG,EAAE,CAAC,CAAA;AAC1B,MAAA,QAAA,GAAW,GAAG,EAAE,CAAA;AAChB,MAAS,OAAA,EAAA,KAAA,GAAQ,GAAG,EAAE,CAAA;AAAA,KACvB,CAAA;AAAA;AAGH,EAAA,SAAS,UAAU,UAA2C,EAAA;AAC5D,IAAA,EAAA,CAAG,KAAK,UAAU,CAAA;AAClB,IAAA,OAAO,MAAM;AACX,MAAA,EAAA,GAAK,EAAG,CAAA,MAAA,CAAO,CAAC,CAAA,KAAM,MAAM,UAAU,CAAA;AAAA,KACxC;AAAA;AAGF,EAAA,SAAS,gBAAgB,UAA+B,EAAA;AACtD,IAAA,yBAAA,CAA0B,MAAM,SAAU,CAAA,UAAU,CAAG,EAAA,CAAC,UAAU,CAAC,CAAA;AAAA;AAGrE,EAAA,SAAS,GAAmB,GAAA;AAC1B,IAAA,MAAM,CAAC,CAAA,EAAG,CAAC,CAAA,GAAIC,oBAAY,CAAC,CAAA;AAC5B,IAAA,eAAA,CAAgB,CAAC,CAAA;AACjB,IAAO,OAAA,CAAC,GAAG,GAAG,CAAA;AAAA;AAGhB,EAAS,SAAA,WAAA,CAAiC,QAAmC,EAAA,UAAA,GAAoC,GAAgB,EAAA;AAC/H,IAAM,MAAA,CAAC,EAAE,CAAA,GAAI,GAAI,EAAA;AACjB,IAAA,OAAO,aAAc,CAAA,QAAA,CAAS,EAAE,CAAA,EAAG,UAAU,CAAA;AAAA;AAG/C,EAAO,OAAA;AAAA,IACL,GAAA;AAAA,IACA,WAAA;AAAA,IACA,QAAU,EAAA,MAAM,GAAI,EAAA,CAAE,CAAC,CAAA;AAAA,IACvB,KAAK,MAAM,CAAA;AAAA,IACX,GAAA;AAAA,IACA,KAAA,EAAO,MAAM,GAAA,CAAI,YAAY,CAAA;AAAA,IAC7B;AAAA,GACF;AACF;;;;"}
|