@emeraldemperaur/vector-sigma 1.4.45 → 1.4.47
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/README.md +20 -11
- package/lib/index.cjs +201 -58
- package/lib/index.esm.js +201 -59
- package/lib/types/components/dropdown/countrydropdown.d.ts +103 -0
- package/lib/types/components/dropdown/dropdown.d.ts +1 -1
- package/lib/types/components/file/file.d.ts +1 -1
- package/lib/types/components/file/filemultiple.d.ts +1 -1
- package/lib/types/index.d.ts +1 -0
- package/lib/types/teletraan1.d.ts +3 -1
- package/lib/types/tests/builds/orion.test.d.ts +1 -0
- package/lib/types/tests/builds/pax.test.d.ts +1 -0
- package/lib/types/tests/components/components.countryselect.test.d.ts +1 -0
- package/lib/types/utils/voltaire.d.ts +2 -0
- package/lib/types/vectorSigma.d.ts +10 -0
- package/package.json +1 -1
- package/lib/types/tests/orion.test.d.ts +0 -0
- package/lib/types/tests/pax.test.d.ts +0 -0
package/README.md
CHANGED
|
@@ -343,25 +343,34 @@ import { useVectorSigma } from './hooks/useVectorSigma';
|
|
|
343
343
|
|
|
344
344
|
<li><strong>🎨Theming Extensibilty</strong></br>
|
|
345
345
|
<p align="justify">Customizable to fit seamlessly into an existing design system and allow developer control of the visual layer through standard CSS patterns.</p>
|
|
346
|
+
<p>Radix UI <code>theme</code> {} passed into the <code>transfrom()</code> or <code>render()</code> method(s) as an <code>options</code> attribute can be leveraged to cleverly align the returned xForm style and appearance with an extant application design system.</p>
|
|
346
347
|
|
|
347
348
|
```javascript
|
|
348
|
-
import
|
|
349
|
+
import React from 'react';
|
|
350
|
+
import { VectorSigma } from './VectorSigma';
|
|
349
351
|
|
|
350
|
-
const
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
352
|
+
const xForm97 = new VectorSigma(apiJSONData);
|
|
353
|
+
|
|
354
|
+
return xForm97.render({
|
|
355
|
+
displayMode: 'codex',
|
|
356
|
+
// www.radix-ui.com/themes/docs/components/theme
|
|
357
|
+
theme: {
|
|
358
|
+
appearance: 'dark',
|
|
359
|
+
accentColor: 'yellow',
|
|
360
|
+
grayColor: 'slate',
|
|
361
|
+
radius: 'none',
|
|
362
|
+
scaling: '100%'
|
|
363
|
+
},
|
|
364
|
+
onSubmit: async (values, actions, instance) => {
|
|
365
|
+
console.log(values);
|
|
366
|
+
}
|
|
367
|
+
});
|
|
359
368
|
```
|
|
360
369
|
</li>
|
|
361
370
|
|
|
362
371
|
<li><strong>🧩Exported UI Components</strong></br>
|
|
363
372
|
<p align="justify">Explicitly exported reusable form UI components with material, outline and neumorphic design variants from package entry point <code>src/index.ts</code> to enable developer-friendly use as lightweight ARIA compliant component library.</p>
|
|
364
|
-
<p><em>Container, Row, Column, Theme, Accordion, AccordionItem, Codex, CodexItem, CodexControls, AvatarInput, ButtonInput, CheckboxGroupInput, ConditionalTrigger, DatePicker, DateRangePicker, DateTimePicker, Dropdown, File, FileMultiple, FlagIcon, Icon, Image, Input, PasswordInput, PhoneInput, CreditCardInput, CurrencyInput, StockInput, RadioGroupInput, OptionSelect, MultipleSelect, RangeSlider, SliderInput, Toggle, SectionTitle, Teletraan1 (Render Matrix)</em></p>
|
|
373
|
+
<p><em>Container, Row, Column, Theme, Accordion, AccordionItem, Codex, CodexItem, CodexControls, AvatarInput, ButtonInput, CheckboxGroupInput, ConditionalTrigger, DatePicker, DateRangePicker, DateTimePicker, Dropdown, CountrySelect, File, FileMultiple, FlagIcon, Icon, Image, Input, PasswordInput, PhoneInput, CreditCardInput, CurrencyInput, StockInput, RadioGroupInput, OptionSelect, MultipleSelect, RangeSlider, SliderInput, Toggle, SectionTitle, Teletraan1 (Render Matrix)</em></p>
|
|
365
374
|
|
|
366
375
|
```javascript
|
|
367
376
|
import { Container, Column, Row, CheckboxGroup, Dropdown, File, RangeSlider }
|
package/lib/index.cjs
CHANGED
|
@@ -31804,13 +31804,11 @@ const File$1 = (_a) => {
|
|
|
31804
31804
|
width: '100%',
|
|
31805
31805
|
position: 'relative',
|
|
31806
31806
|
overflow: 'hidden',
|
|
31807
|
+
boxSizing: 'border-box',
|
|
31807
31808
|
};
|
|
31808
31809
|
const materialTrigger = Object.assign(Object.assign({}, baseTriggerStyle), { backgroundColor: 'var(--color-surface)', boxShadow: hasError ? 'inset 0 0 0 1px var(--red-9)' : '0 2px 5px rgba(0,0,0,0.1)' });
|
|
31809
31810
|
const outlineTrigger = Object.assign(Object.assign({}, baseTriggerStyle), { backgroundColor: 'transparent', border: hasError ? '2px dashed var(--red-9)' : '2px dashed var(--gray-8)' });
|
|
31810
|
-
const neumorphicTrigger = Object.assign(Object.assign(Object.assign({}, baseTriggerStyle), { backgroundColor: 'var(--neu-bg)', color: hasError ? 'var(--red-9)' : 'var(--neu-text)',
|
|
31811
|
-
// Empty: (Dropzone effect)
|
|
31812
|
-
// Selected: (Card effect)
|
|
31813
|
-
boxShadow: !selectedFile
|
|
31811
|
+
const neumorphicTrigger = Object.assign(Object.assign(Object.assign({}, baseTriggerStyle), { backgroundColor: 'var(--neu-bg)', color: hasError ? 'var(--red-9)' : 'var(--neu-text)', boxShadow: !selectedFile
|
|
31814
31812
|
? 'inset 3px 3px 6px var(--neu-shadow-dark), inset -3px -3px 6px var(--neu-shadow-light)'
|
|
31815
31813
|
: '6px 6px 12px var(--neu-shadow-dark), -6px -6px 12px var(--neu-shadow-light)', border: 'none' }), neuVars);
|
|
31816
31814
|
const activeStyle = inputtype === 'fileinput-neumorphic' ? neumorphicTrigger :
|
|
@@ -31827,11 +31825,11 @@ const File$1 = (_a) => {
|
|
|
31827
31825
|
} }, !selectedFile ? (
|
|
31828
31826
|
// --- EMPTY STATE RENDER ---
|
|
31829
31827
|
React.createElement(p$5, { align: "center", gap: "3", style: { width: '100%', color: 'var(--gray-10)' } },
|
|
31830
|
-
React.createElement(p$8, { style: { padding: 8, borderRadius: '50%', backgroundColor: 'var(--gray-3)' } },
|
|
31828
|
+
React.createElement(p$8, { style: { padding: 8, borderRadius: '50%', backgroundColor: 'var(--gray-3)', flexShrink: 0 } },
|
|
31831
31829
|
React.createElement(Icon, { name: 'upload', width: "18", height: "18" })),
|
|
31832
|
-
React.createElement(p$5, { direction: "column" },
|
|
31833
|
-
React.createElement(p$d, { size: "2", weight: "bold", color: "gray" }, "Upload File"),
|
|
31834
|
-
React.createElement(p$d, { size: "1", color: "gray" }, "Supports PDF, Images, Excel, JSON...")))) : (
|
|
31830
|
+
React.createElement(p$5, { direction: "column", style: { minWidth: 0, flex: 1 } },
|
|
31831
|
+
React.createElement(p$d, { size: "2", weight: "bold", color: "gray", style: { whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis' } }, "Upload File"),
|
|
31832
|
+
React.createElement(p$d, { size: "1", color: "gray", style: { whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis' } }, "Supports PDF, Images, Excel, JSON...")))) : (
|
|
31835
31833
|
// --- SELECTED STATE RENDER ---
|
|
31836
31834
|
React.createElement(p$5, { align: "center", gap: "4", style: { width: '100%' } },
|
|
31837
31835
|
preview && previewUrl ? (React.createElement(i$9, { ratio: 1, style: { width: 48, height: 48, borderRadius: 6, overflow: 'hidden', flexShrink: 0 } },
|
|
@@ -31841,24 +31839,19 @@ const File$1 = (_a) => {
|
|
|
31841
31839
|
backgroundColor: 'var(--accent-3)', color: 'var(--accent-9)',
|
|
31842
31840
|
borderRadius: 6, flexShrink: 0
|
|
31843
31841
|
} }, getFileIcon$1(selectedFile.type, selectedFile.name))),
|
|
31844
|
-
React.createElement(p$5, { direction: "column", style: { flexGrow: 1, overflow: 'hidden' } },
|
|
31842
|
+
React.createElement(p$5, { direction: "column", style: { flexGrow: 1, minWidth: 0, overflow: 'hidden' } },
|
|
31845
31843
|
React.createElement(p$d, { size: "2", weight: "bold", style: { whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis' } }, selectedFile.name),
|
|
31846
31844
|
React.createElement(p$5, { gap: "2", align: "center" },
|
|
31847
31845
|
React.createElement(p$d, { size: "1", color: "gray" }, formatBytes(selectedFile.size)),
|
|
31848
31846
|
React.createElement(e$a, { size: "1", color: "gray", variant: "soft" }, (_b = selectedFile.name.split('.').pop()) === null || _b === void 0 ? void 0 : _b.toUpperCase()))),
|
|
31849
31847
|
React.createElement(o$5, { size: "1", variant: "ghost", color: "red", onClick: handleClear, style: { borderRadius: '50%', padding: 4 } },
|
|
31850
31848
|
React.createElement(Icon, { name: 'close', width: "16", height: "16" }))))),
|
|
31851
|
-
React.createElement("div",
|
|
31852
|
-
React.createElement(p$d, { id: `${alias}InputLabel`, as: "label", size: "2", weight: "bold", htmlFor: inputId }, inputLabel),
|
|
31853
|
-
"
|
|
31854
|
-
|
|
31855
|
-
|
|
31856
|
-
|
|
31857
|
-
React.createElement("a", { href: hintUrl || "", target: "_blank", rel: "noopener noreferrer" },
|
|
31858
|
-
React.createElement(Icon, { name: "questionmarkcircled", height: "16", width: "16", style: { cursor: 'pointer', color: 'gray' } })))) : null,
|
|
31859
|
-
hasError ?
|
|
31860
|
-
React.createElement(React.Fragment, null,
|
|
31861
|
-
React.createElement("p", { id: errorId, className: 'core-input-label-error' }, errorText || (typeof fieldError === 'string' ? fieldError : "Required field"))) : null))));
|
|
31849
|
+
React.createElement("div", { style: { marginTop: 4, display: 'flex', alignItems: 'center', gap: 6 } },
|
|
31850
|
+
inputLabel && (React.createElement(p$d, { id: `${alias}InputLabel`, as: "label", size: "2", weight: "bold", htmlFor: inputId }, inputLabel)),
|
|
31851
|
+
isHinted && (React.createElement(e, { content: hintText || "No hint available", align: "start", sideOffset: 5, className: "core-input-tooltip" },
|
|
31852
|
+
React.createElement("a", { href: hintUrl || "", target: "_blank", rel: "noopener noreferrer", style: { display: 'flex' } },
|
|
31853
|
+
React.createElement(Icon, { name: "questionmarkcircled", height: "16", width: "16", style: { cursor: 'pointer', color: 'gray' } })))),
|
|
31854
|
+
hasError && (React.createElement(p$d, { id: errorId, size: "1", color: "red", className: 'core-input-label-error' }, errorText || (typeof fieldError === 'string' ? fieldError : `Required field`)))))));
|
|
31862
31855
|
};
|
|
31863
31856
|
|
|
31864
31857
|
const getFileIcon = (fileOrUrl) => {
|
|
@@ -31961,20 +31954,21 @@ const FileMultiple = (_a) => {
|
|
|
31961
31954
|
const isNeumorphic = inputtype === 'filemultiple-neumorphic';
|
|
31962
31955
|
return (React.createElement(Column, { span: width, newLine: newRow },
|
|
31963
31956
|
React.createElement(p$5, { direction: "column", gap: "2", className: className, style: Object.assign({ width: '100%' }, style) },
|
|
31964
|
-
React.createElement(p$8, { onClick: () => { var _a; return !readOnly && ((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.click()); }, p: "4", style: Object.assign(Object.assign({}, styles[inputtype]), { cursor: readOnly ? 'default' : 'pointer', transition: 'all 0.2s', borderColor: hasError ? 'var(--red-9)' : (
|
|
31957
|
+
React.createElement(p$8, { onClick: () => { var _a; return !readOnly && ((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.click()); }, p: "4", style: Object.assign(Object.assign({}, styles[inputtype]), { cursor: readOnly ? 'default' : 'pointer', transition: 'all 0.2s', borderColor: hasError ? 'var(--red-9)' : (inputtype === 'filemultiple-material' ? 'var(--accent-9)' : 'var(--gray-a8)'), position: 'relative', opacity: readOnly ? 0.7 : 1, boxSizing: 'border-box', width: '100%', overflow: 'hidden' }) },
|
|
31965
31958
|
React.createElement(p$5, { align: "center", gap: "4" },
|
|
31966
31959
|
React.createElement(p$8, { style: {
|
|
31967
31960
|
background: isNeumorphic ? '#e0e0e0' : 'var(--accent-3)',
|
|
31968
31961
|
borderRadius: '50%',
|
|
31969
31962
|
padding: '10px',
|
|
31970
|
-
boxShadow: isNeumorphic ? 'inset 3px 3px 6px #b8b9be, inset -3px -3px 6px #ffffff' : 'none'
|
|
31963
|
+
boxShadow: isNeumorphic ? 'inset 3px 3px 6px #b8b9be, inset -3px -3px 6px #ffffff' : 'none',
|
|
31964
|
+
flexShrink: 0
|
|
31971
31965
|
} },
|
|
31972
31966
|
React.createElement(Icon, { name: 'upload', width: "20", height: "20", color: isNeumorphic ? '#555' : 'var(--accent-9)' })),
|
|
31973
|
-
React.createElement(p$5, { direction: "column" },
|
|
31974
|
-
React.createElement(p$d, { weight: "bold", style: { color: isNeumorphic ? '#444' : 'inherit' } }, currentFiles.length > 0
|
|
31967
|
+
React.createElement(p$5, { direction: "column", style: { minWidth: 0, flex: 1 } },
|
|
31968
|
+
React.createElement(p$d, { weight: "bold", style: { color: isNeumorphic ? '#444' : 'inherit', whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis' } }, currentFiles.length > 0
|
|
31975
31969
|
? `${currentFiles.length} file${currentFiles.length !== 1 ? 's' : ''} selected`
|
|
31976
31970
|
: (placeholder || "Choose files...")),
|
|
31977
|
-
React.createElement(p$d, { size: "1", color: "gray", style: { opacity: 0.8 } }, "PDF, Images, Office Docs, JSON, ZIP"))),
|
|
31971
|
+
React.createElement(p$d, { size: "1", color: "gray", style: { opacity: 0.8, whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis' } }, "PDF, Images, Office Docs, JSON, ZIP"))),
|
|
31978
31972
|
React.createElement("input", { id: inputId, ref: inputRef, name: alias, type: "file", multiple: true, accept: ACCEPTED_EXTENSIONS, onChange: handleFileChange, disabled: readOnly, style: { display: 'none' }, "aria-describedby": hasError ? errorId : undefined })),
|
|
31979
31973
|
preview && currentFiles.length > 0 && (React.createElement(o$6, { columns: "repeat(auto-fill, minmax(220px, 1fr))", gap: "3", mt: "1" }, currentFiles.map((file, index) => {
|
|
31980
31974
|
let previewUrl = null;
|
|
@@ -32003,7 +31997,8 @@ const FileMultiple = (_a) => {
|
|
|
32003
31997
|
background: 'var(--gray-a3)',
|
|
32004
31998
|
display: 'flex',
|
|
32005
31999
|
alignItems: 'center',
|
|
32006
|
-
justifyContent: 'center'
|
|
32000
|
+
justifyContent: 'center',
|
|
32001
|
+
flexShrink: 0
|
|
32007
32002
|
} }, previewUrl && (fileName.match(/\.(jpeg|jpg|png|gif|webp)$/i) || (file instanceof File && file.type.startsWith('image/'))) ? (React.createElement("img", { src: previewUrl, alt: "preview", style: { width: '100%', height: '100%', objectFit: 'cover' } })) : (getFileIcon(file))),
|
|
32008
32003
|
React.createElement(p$5, { direction: "column", style: { flex: 1, overflow: 'hidden' } },
|
|
32009
32004
|
React.createElement(p$d, { size: "1", weight: "bold", style: { whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis', color: isNeumorphic ? '#444' : 'inherit' } }, fileName),
|
|
@@ -32014,13 +32009,12 @@ const FileMultiple = (_a) => {
|
|
|
32014
32009
|
} },
|
|
32015
32010
|
React.createElement(Icon, { name: 'close' }))))));
|
|
32016
32011
|
}))),
|
|
32017
|
-
React.createElement("div",
|
|
32012
|
+
React.createElement("div", { style: { marginTop: 4, display: 'flex', alignItems: 'center', gap: 6 } },
|
|
32018
32013
|
inputLabel && (React.createElement(p$d, { id: `${alias}InputLabel`, as: "label", size: "2", weight: "bold", htmlFor: inputId }, inputLabel)),
|
|
32019
|
-
"
|
|
32020
|
-
|
|
32021
|
-
|
|
32022
|
-
|
|
32023
|
-
hasError && (React.createElement(p$d, { id: errorId, size: "1", color: "red", style: { display: 'block', marginTop: 2 } }, typeof fieldError === 'string' ? (errorText || fieldError) : 'Invalid file selection'))))));
|
|
32014
|
+
isHinted && (React.createElement(e, { content: hintText || "No hint available", align: "start", sideOffset: 5, className: "core-input-tooltip" },
|
|
32015
|
+
React.createElement("a", { href: hintUrl || "", target: "_blank", rel: "noopener noreferrer", style: { display: 'flex' } },
|
|
32016
|
+
React.createElement(Icon, { name: "questionmarkcircled", height: "16", width: "16", style: { cursor: 'pointer', color: 'gray' } })))),
|
|
32017
|
+
hasError && (React.createElement(p$d, { id: errorId, size: "1", color: "red", className: 'core-input-label-error' }, errorText || (typeof fieldError === 'string' ? fieldError : `Required field`)))))));
|
|
32024
32018
|
};
|
|
32025
32019
|
|
|
32026
32020
|
const getStyles = (design, layout) => {
|
|
@@ -32055,9 +32049,9 @@ const getStyles = (design, layout) => {
|
|
|
32055
32049
|
const ImageOutput = ({ id, src, alt = "Image", design = 'outline', layout = 'normal', aspectratio = 16 / 9, height, width = '100%', className, style, onClick, }) => {
|
|
32056
32050
|
const containerStyles = getStyles(design, layout);
|
|
32057
32051
|
const iconColor = design === 'neumorphic' ? '#555' : 'var(--gray-9)';
|
|
32058
|
-
const content = (React.createElement(p$8, { className: className, style: Object.assign(Object.assign(Object.assign({}, containerStyles), { width, height: height || '
|
|
32059
|
-
width: '
|
|
32060
|
-
height: '
|
|
32052
|
+
const content = (React.createElement(p$8, { className: className, style: Object.assign(Object.assign(Object.assign({}, containerStyles), { width: '100%', height: height || '100%' }), style), onClick: onClick }, src ? (React.createElement("img", { id: String(id), src: src, alt: alt, style: {
|
|
32053
|
+
width: '100%',
|
|
32054
|
+
height: '100%',
|
|
32061
32055
|
objectFit: 'cover',
|
|
32062
32056
|
display: 'block',
|
|
32063
32057
|
} })) : (React.createElement(p$5, { align: "center", justify: "center", style: {
|
|
@@ -32069,11 +32063,7 @@ const ImageOutput = ({ id, src, alt = "Image", design = 'outline', layout = 'nor
|
|
|
32069
32063
|
React.createElement(p$5, { direction: "column", align: "center", gap: "2" },
|
|
32070
32064
|
React.createElement(Icon, { name: 'image', width: "32", height: "32", color: iconColor, style: { opacity: 0.5 } }),
|
|
32071
32065
|
React.createElement(p$d, { size: "1", color: "gray" }, "No Image"))))));
|
|
32072
|
-
|
|
32073
|
-
return content;
|
|
32074
|
-
}
|
|
32075
|
-
return (React.createElement(p$8, { style: { width } },
|
|
32076
|
-
React.createElement(i$9, { ratio: aspectratio }, content)));
|
|
32066
|
+
return (React.createElement(p$8, { style: { width, maxWidth: 500, maxHeight: 500 } }, height ? (content) : (React.createElement(i$9, { ratio: aspectratio }, content))));
|
|
32077
32067
|
};
|
|
32078
32068
|
|
|
32079
32069
|
const Input$1 = (_a) => {
|
|
@@ -39690,7 +39680,7 @@ function _arrayLikeToArray$3(arr, len) { if (len == null || len > arr.length) le
|
|
|
39690
39680
|
function _extends$8() { _extends$8 = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$8.apply(this, arguments); }
|
|
39691
39681
|
function _objectWithoutProperties$8(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose$8(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; }
|
|
39692
39682
|
function _objectWithoutPropertiesLoose$8(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; }
|
|
39693
|
-
function CountrySelect(_ref) {
|
|
39683
|
+
function CountrySelect$1(_ref) {
|
|
39694
39684
|
var value = _ref.value,
|
|
39695
39685
|
onChange = _ref.onChange,
|
|
39696
39686
|
options = _ref.options,
|
|
@@ -39724,7 +39714,7 @@ function CountrySelect(_ref) {
|
|
|
39724
39714
|
}, label);
|
|
39725
39715
|
}));
|
|
39726
39716
|
}
|
|
39727
|
-
CountrySelect.propTypes = {
|
|
39717
|
+
CountrySelect$1.propTypes = {
|
|
39728
39718
|
/**
|
|
39729
39719
|
* A two-letter country code.
|
|
39730
39720
|
* Example: "US", "RU", etc.
|
|
@@ -39769,7 +39759,7 @@ function CountrySelectWithIcon(_ref3) {
|
|
|
39769
39759
|
}, [options, value]);
|
|
39770
39760
|
return /*#__PURE__*/React.createElement("div", {
|
|
39771
39761
|
className: "PhoneInputCountry"
|
|
39772
|
-
}, /*#__PURE__*/React.createElement(CountrySelect, _extends$8({}, rest, {
|
|
39762
|
+
}, /*#__PURE__*/React.createElement(CountrySelect$1, _extends$8({}, rest, {
|
|
39773
39763
|
value: value,
|
|
39774
39764
|
options: options,
|
|
39775
39765
|
className: classNames('PhoneInputCountrySelect', className)
|
|
@@ -55533,7 +55523,6 @@ const CreditCardInput = (_a) => {
|
|
|
55533
55523
|
React.createElement("div", { style: { display: 'flex', alignItems: 'center' } }, getCardIcon())),
|
|
55534
55524
|
React.createElement("div", { style: { marginTop: 4, display: 'flex', alignItems: 'center', gap: 6 } },
|
|
55535
55525
|
inputLabel && (React.createElement(p$d, { id: `${alias}InputLabel`, as: "label", size: "2", weight: "bold", htmlFor: `${alias}FormInput` }, inputLabel)),
|
|
55536
|
-
"\u00A0",
|
|
55537
55526
|
isHinted && (React.createElement(e, { content: hintText || "No hint available", align: "start", sideOffset: 5, className: "core-input-tooltip" },
|
|
55538
55527
|
React.createElement("a", { href: hintUrl || "", target: "_blank", rel: "noopener noreferrer", style: { display: 'flex' } },
|
|
55539
55528
|
React.createElement(Icon, { name: "questionmarkcircled", height: "16", width: "16", style: { cursor: 'pointer', color: 'gray' } })))),
|
|
@@ -55688,8 +55677,8 @@ const CurrencyInput = (_a) => {
|
|
|
55688
55677
|
textAlign: 'right',
|
|
55689
55678
|
width: '100%'
|
|
55690
55679
|
}, inputMode: "decimal", autoComplete: "off" }))),
|
|
55691
|
-
React.createElement("div",
|
|
55692
|
-
React.createElement(p$d, { id: `${alias}InputLabel`, as: "label", size: "2", weight: "bold", htmlFor: `${alias}FormInput` }, inputLabel),
|
|
55680
|
+
React.createElement("div", { style: { marginTop: 4, display: 'flex', alignItems: 'center', gap: 6 } },
|
|
55681
|
+
inputLabel && (React.createElement(p$d, { id: `${alias}InputLabel`, as: "label", size: "2", weight: "bold", htmlFor: `${alias}FormInput` }, inputLabel)),
|
|
55693
55682
|
isHinted && (React.createElement(e, { content: hintText || "No hint available", align: "start", sideOffset: 5, className: "core-input-tooltip" },
|
|
55694
55683
|
React.createElement("a", { href: hintUrl || "", target: "_blank", rel: "noopener noreferrer", style: { display: 'flex' } },
|
|
55695
55684
|
React.createElement(Icon, { name: "questionmarkcircled", height: "16", width: "16", style: { cursor: 'pointer', color: 'gray' } })))),
|
|
@@ -55769,12 +55758,12 @@ const StockInput = (_a) => {
|
|
|
55769
55758
|
fontWeight: 500,
|
|
55770
55759
|
fontFamily: 'var(--default-font-family)',
|
|
55771
55760
|
}, inputMode: "decimal", autoComplete: "off" }))),
|
|
55772
|
-
React.createElement("div",
|
|
55761
|
+
React.createElement("div", { style: { marginTop: 4, display: 'flex', alignItems: 'center', gap: 6 } },
|
|
55773
55762
|
inputLabel && (React.createElement(p$d, { id: `${alias}InputLabel`, as: "label", size: "2", weight: "bold", htmlFor: `${alias}FormInput` }, inputLabel)),
|
|
55774
55763
|
isHinted && (React.createElement(e, { content: hintText || "No hint available", align: "start", sideOffset: 5, className: "core-input-tooltip" },
|
|
55775
55764
|
React.createElement("a", { href: hintUrl || "", target: "_blank", rel: "noopener noreferrer", style: { display: 'flex' } },
|
|
55776
55765
|
React.createElement(Icon, { name: "questionmarkcircled", height: "16", width: "16", style: { cursor: 'pointer', color: 'gray' } })))),
|
|
55777
|
-
hasError && (React.createElement(
|
|
55766
|
+
hasError && (React.createElement(p$d, { id: errorId, size: "1", color: "red", className: 'core-input-label-error' }, errorText || (typeof fieldError === 'string' ? fieldError : `Required field`)))))));
|
|
55778
55767
|
};
|
|
55779
55768
|
|
|
55780
55769
|
const RadioGroupInput = (_a) => {
|
|
@@ -56187,9 +56176,8 @@ const SliderInput = (_a) => {
|
|
|
56187
56176
|
}, onValueCommit: () => {
|
|
56188
56177
|
setFieldTouched(alias, true, false);
|
|
56189
56178
|
}, className: inputtype === 'slider-neumorphic' ? 'neu-slider' : inputtype === 'slider-outline' ? 'outline-slider' : '', style: neuVars }),
|
|
56190
|
-
React.createElement("div",
|
|
56191
|
-
React.createElement(p$d, { id: labelId, as: "div", size: "2", weight: "bold" }, inputLabel),
|
|
56192
|
-
"\u00A0",
|
|
56179
|
+
React.createElement("div", { style: { marginTop: 4, display: 'flex', alignItems: 'center', gap: 6 } },
|
|
56180
|
+
inputLabel && (React.createElement(p$d, { id: labelId, as: "div", size: "2", weight: "bold" }, inputLabel)),
|
|
56193
56181
|
isHinted ?
|
|
56194
56182
|
React.createElement(React.Fragment, null,
|
|
56195
56183
|
React.createElement(e, { content: hintText || "No hint available", align: "start", sideOffset: 5, className: "core-input-tooltip" },
|
|
@@ -56259,8 +56247,8 @@ const RangeSlider = (_a) => {
|
|
|
56259
56247
|
React.createElement(s, { name: alias, id: `${alias}FormInput`, disabled: readOnly, "aria-labelledby": labelId, min: minvalue, max: maxvalue, step: stepvalue, minStepsBetweenThumbs: minStepsBetweenThumbs, value: sliderValue, onValueChange: (val) => {
|
|
56260
56248
|
setFieldValue(alias, isRange ? val : val[0]);
|
|
56261
56249
|
}, onValueCommit: () => setFieldTouched(alias, true, false), className: inputtype === 'range-neumorphic' ? 'neu-slider' : inputtype === 'range-outline' ? 'outline-slider' : '', style: neuVars }),
|
|
56262
|
-
React.createElement("div",
|
|
56263
|
-
React.createElement(p$d, { id: labelId, as: "div", size: "2", weight: "bold", style: { display: 'inline' } }, inputLabel),
|
|
56250
|
+
React.createElement("div", { style: { marginTop: 4, display: 'flex', alignItems: 'center', gap: 6 } },
|
|
56251
|
+
inputLabel && (React.createElement(p$d, { id: labelId, as: "div", size: "2", weight: "bold", style: { display: 'inline' } }, inputLabel)),
|
|
56264
56252
|
isHinted && (React.createElement(React.Fragment, null,
|
|
56265
56253
|
React.createElement(e, { content: hintText || "No hint available", align: "start", sideOffset: 5, className: "core-input-tooltip" },
|
|
56266
56254
|
React.createElement("a", { href: hintUrl || "", target: "_blank", rel: "noopener noreferrer" },
|
|
@@ -56863,6 +56851,9 @@ const datePickerInputType = ["datepicker", "datepickerinput", "datepicker-input"
|
|
|
56863
56851
|
const dateRangePickerInputType = ["daterangepicker", "daterangepickerinput", "daterangepicker-input", "input-daterangepicker", "inputdaterangepicker"];
|
|
56864
56852
|
const dateTimePickerInputType = ["datetimepicker", "datetimepickerinput", "datetimepicker-input", "input-datetimepicker", "inputdatetimepicker"];
|
|
56865
56853
|
const dropdownInputType = ["dropdown", "dropdowninput", "dropdown-input", "input-dropdown", "inputdropdown"];
|
|
56854
|
+
const countrydropdownInputType = ["countrydropdown", "countrydropdowninput", "countrydropdown-input", "input-countrydropdown", "inputcountrydropdown",
|
|
56855
|
+
"countryselect", "countryselect-input", "countryselectinput", "input-countryselect"];
|
|
56856
|
+
const countrymultiselectInputType = ["countrymultiselect", "countrymultiselectinput", "countrymultiselect-input", "input-countrymultiselect", "inputcountrymultiselect"];
|
|
56866
56857
|
const fileInputType = ["file", "fileinput", "file-input", "input-file", "inputfile"];
|
|
56867
56858
|
const fileMultipleInputType = ["filemultiple", "filemultipleinput", "filemultiple-input", "input-filemultiple", "inputfilemultiple"];
|
|
56868
56859
|
const imageOutputType = ["image", "imageoutput", "image-output", "output-image", "outputimage"];
|
|
@@ -57012,6 +57003,151 @@ const DateTimePicker = ({ alias, inputLabel, inputtype = 'datetimepicker-outline
|
|
|
57012
57003
|
hasError && (React.createElement(p$d, { size: "1", color: "red", style: { display: 'block' } }, errorText || (typeof fieldError === 'string' ? fieldError : "Required field")))))));
|
|
57013
57004
|
};
|
|
57014
57005
|
|
|
57006
|
+
const CountrySelect = (_a) => {
|
|
57007
|
+
var _b;
|
|
57008
|
+
var { inputtype = 'countryselect-outline', alias, readOnly, width, inputLabel, placeholder = 'Select Country...', newRow, isHinted, hintText, hintUrl, errorText, displayFlag = true, multiselect = false, enableSearch = false, style, className, formikContext } = _a; __rest$1(_a, ["inputtype", "alias", "readOnly", "width", "inputLabel", "placeholder", "newRow", "isHinted", "hintText", "hintUrl", "errorText", "displayFlag", "multiselect", "enableSearch", "style", "className", "formikContext"]);
|
|
57009
|
+
const defaultFormikContext = formik.useFormikContext();
|
|
57010
|
+
const activeContext = formikContext || defaultFormikContext;
|
|
57011
|
+
if (!activeContext) {
|
|
57012
|
+
console.error(`CountryDropdown '${alias}' must be used within a Formik provider.`);
|
|
57013
|
+
return null;
|
|
57014
|
+
}
|
|
57015
|
+
const { values, touched, errors, setFieldValue, setFieldTouched } = activeContext;
|
|
57016
|
+
const fieldValue = formik.getIn(values, alias);
|
|
57017
|
+
const fieldTouched = formik.getIn(touched, alias);
|
|
57018
|
+
const fieldError = formik.getIn(errors, alias);
|
|
57019
|
+
const selectedValues = React.useMemo(() => {
|
|
57020
|
+
if (multiselect)
|
|
57021
|
+
return Array.isArray(fieldValue) ? fieldValue : [];
|
|
57022
|
+
return fieldValue ? [String(fieldValue)] : [];
|
|
57023
|
+
}, [fieldValue, multiselect]);
|
|
57024
|
+
const hasError = Boolean(fieldTouched && fieldError);
|
|
57025
|
+
const triggerRef = React.useRef(null);
|
|
57026
|
+
const [neuVars, setNeuVars] = React.useState({});
|
|
57027
|
+
const [isOpen, setIsOpen] = React.useState(false);
|
|
57028
|
+
const [searchQuery, setSearchQuery] = React.useState("");
|
|
57029
|
+
const errorId = `${alias}-error`;
|
|
57030
|
+
const allCountries = React.useMemo(() => {
|
|
57031
|
+
return getCountries().map(c => ({ value: c, label: en[c] }));
|
|
57032
|
+
}, []);
|
|
57033
|
+
const filteredCountries = React.useMemo(() => {
|
|
57034
|
+
if (!enableSearch || !searchQuery)
|
|
57035
|
+
return allCountries;
|
|
57036
|
+
const lowerSearch = searchQuery.toLowerCase();
|
|
57037
|
+
return allCountries.filter(c => c.label.toLowerCase().includes(lowerSearch));
|
|
57038
|
+
}, [allCountries, searchQuery, enableSearch]);
|
|
57039
|
+
const handleSelection = (countryCode) => {
|
|
57040
|
+
if (multiselect) {
|
|
57041
|
+
const newValues = selectedValues.includes(countryCode)
|
|
57042
|
+
? selectedValues.filter((v) => v !== countryCode)
|
|
57043
|
+
: [...selectedValues, countryCode];
|
|
57044
|
+
setFieldValue(alias, newValues);
|
|
57045
|
+
}
|
|
57046
|
+
else {
|
|
57047
|
+
setFieldValue(alias, countryCode);
|
|
57048
|
+
setIsOpen(false);
|
|
57049
|
+
}
|
|
57050
|
+
setTimeout(() => setFieldTouched(alias, true, false), 0);
|
|
57051
|
+
};
|
|
57052
|
+
const displayLabel = React.useMemo(() => {
|
|
57053
|
+
if (selectedValues.length === 0)
|
|
57054
|
+
return placeholder;
|
|
57055
|
+
if (!multiselect) {
|
|
57056
|
+
const c = allCountries.find(x => x.value === selectedValues[0]);
|
|
57057
|
+
return c ? c.label : selectedValues[0];
|
|
57058
|
+
}
|
|
57059
|
+
if (selectedValues.length <= 2) {
|
|
57060
|
+
return selectedValues.map(v => { var _a; return ((_a = allCountries.find(x => x.value === v)) === null || _a === void 0 ? void 0 : _a.label) || v; }).join(', ');
|
|
57061
|
+
}
|
|
57062
|
+
return `${selectedValues.length} countries selected`;
|
|
57063
|
+
}, [selectedValues, multiselect, allCountries, placeholder]);
|
|
57064
|
+
React.useEffect(() => {
|
|
57065
|
+
if (inputtype === 'countryselect-neumorphic' && triggerRef.current) {
|
|
57066
|
+
const parentBg = getNearestParentBackground(triggerRef.current.parentElement);
|
|
57067
|
+
setNeuVars({
|
|
57068
|
+
'--neu-bg': parentBg,
|
|
57069
|
+
'--neu-shadow-dark': adjustColor(parentBg, -30),
|
|
57070
|
+
'--neu-shadow-light': adjustColor(parentBg, 30),
|
|
57071
|
+
'--neu-text': 'var(--gray-12)',
|
|
57072
|
+
'--neu-error': 'var(--red-9)',
|
|
57073
|
+
});
|
|
57074
|
+
}
|
|
57075
|
+
}, [inputtype]);
|
|
57076
|
+
React.useEffect(() => {
|
|
57077
|
+
if (!isOpen)
|
|
57078
|
+
setSearchQuery("");
|
|
57079
|
+
}, [isOpen]);
|
|
57080
|
+
// --- STYLES ---
|
|
57081
|
+
const baseTrigger = {
|
|
57082
|
+
display: 'flex',
|
|
57083
|
+
alignItems: 'center',
|
|
57084
|
+
justifyContent: 'space-between',
|
|
57085
|
+
width: '100%',
|
|
57086
|
+
cursor: readOnly ? 'default' : 'pointer',
|
|
57087
|
+
textAlign: 'left',
|
|
57088
|
+
padding: '0 12px',
|
|
57089
|
+
fontSize: 'var(--font-size-2)',
|
|
57090
|
+
fontFamily: 'var(--default-font-family)',
|
|
57091
|
+
whiteSpace: 'nowrap',
|
|
57092
|
+
overflow: 'hidden',
|
|
57093
|
+
boxSizing: 'border-box',
|
|
57094
|
+
opacity: readOnly ? 0.7 : 1,
|
|
57095
|
+
};
|
|
57096
|
+
const materialTrigger = Object.assign(Object.assign({}, baseTrigger), { backgroundColor: 'var(--color-surface)', border: hasError ? '1px solid var(--red-9)' : 'none', boxShadow: '0 2px 5px rgba(0,0,0,0.1)', borderRadius: '4px', height: '32px', fontWeight: 500 });
|
|
57097
|
+
const outlineTrigger = Object.assign(Object.assign({}, baseTrigger), { backgroundColor: 'transparent', border: hasError ? '2px solid var(--red-9)' : '2px solid var(--gray-7)', borderRadius: '4px', height: '32px', fontWeight: 600 });
|
|
57098
|
+
const neumorphicTrigger = Object.assign(Object.assign({}, baseTrigger), { backgroundColor: 'var(--neu-bg)', color: hasError ? 'var(--neu-error)' : 'var(--neu-text)', border: 'none', borderRadius: '12px', height: '40px', fontWeight: 600, boxShadow: isOpen
|
|
57099
|
+
? 'inset 6px 6px 12px var(--neu-shadow-dark), inset -6px -6px 12px var(--neu-shadow-light)'
|
|
57100
|
+
: '6px 6px 12px var(--neu-shadow-dark), -6px -6px 12px var(--neu-shadow-light)', transition: 'all 0.2s ease' });
|
|
57101
|
+
const activeTrigger = inputtype === 'countryselect-material' ? materialTrigger :
|
|
57102
|
+
inputtype === 'countryselect-outline' ? outlineTrigger : Object.assign(Object.assign({}, neumorphicTrigger), neuVars);
|
|
57103
|
+
return (React.createElement(Column, { span: width, newLine: newRow },
|
|
57104
|
+
React.createElement(p$5, { direction: "column", gap: "2", style: { width: '100%' } },
|
|
57105
|
+
React.createElement(P$1, { open: isOpen, onOpenChange: (open) => {
|
|
57106
|
+
if (readOnly)
|
|
57107
|
+
return;
|
|
57108
|
+
setIsOpen(open);
|
|
57109
|
+
if (!open)
|
|
57110
|
+
setFieldTouched(alias, true, false);
|
|
57111
|
+
} },
|
|
57112
|
+
React.createElement(s$1, null,
|
|
57113
|
+
React.createElement("button", { id: `${alias}FormInput`, type: "button", ref: triggerRef, className: className, style: Object.assign(Object.assign({}, activeTrigger), style), "aria-describedby": `${alias}InputLabel`, disabled: readOnly },
|
|
57114
|
+
React.createElement(p$5, { align: "center", gap: "2", style: { minWidth: 0, flex: 1 } },
|
|
57115
|
+
!multiselect && displayFlag && selectedValues.length === 1 && (React.createElement(FlagIcon, { country: selectedValues[0] })),
|
|
57116
|
+
React.createElement("span", { style: {
|
|
57117
|
+
overflow: 'hidden',
|
|
57118
|
+
textOverflow: 'ellipsis',
|
|
57119
|
+
whiteSpace: 'nowrap',
|
|
57120
|
+
color: selectedValues.length === 0 ? 'var(--gray-8)' : 'inherit'
|
|
57121
|
+
} }, displayLabel)),
|
|
57122
|
+
React.createElement(Icon, { name: 'chevrondown', style: { flexShrink: 0, opacity: 0.5, marginLeft: 8 } }))),
|
|
57123
|
+
React.createElement(i$3, { align: "start", sideOffset: 5, style: Object.assign({ width: ((_b = triggerRef.current) === null || _b === void 0 ? void 0 : _b.offsetWidth) || 240, padding: 0, overflow: 'hidden', backgroundColor: inputtype === 'countryselect-neumorphic' ? 'var(--neu-bg)' : 'var(--color-panel-solid)' }, neuVars) },
|
|
57124
|
+
enableSearch && (React.createElement(p$8, { p: "2", style: { borderBottom: inputtype === 'countryselect-neumorphic' ? 'none' : '1px solid var(--gray-6)' } },
|
|
57125
|
+
React.createElement(u, { placeholder: "Search countries...", value: searchQuery, onChange: (e) => setSearchQuery(e.target.value), variant: inputtype === 'countryselect-neumorphic' ? 'soft' : 'surface' },
|
|
57126
|
+
React.createElement(c, null,
|
|
57127
|
+
React.createElement(Icon, { name: "magnifyingglass", height: "14", width: "14", style: { opacity: 0.5 } }))))),
|
|
57128
|
+
React.createElement(c$1, { type: "auto", scrollbars: "vertical", style: { maxHeight: 250 } },
|
|
57129
|
+
React.createElement(p$8, { p: "2" },
|
|
57130
|
+
React.createElement(p$5, { direction: "column", gap: "1" }, filteredCountries.length === 0 ? (React.createElement(p$d, { size: "2", color: "gray", align: "center", style: { padding: '16px 0' } }, "No countries found.")) : (filteredCountries.map((country) => {
|
|
57131
|
+
const isSelected = selectedValues.includes(country.value);
|
|
57132
|
+
return (React.createElement(p$5, { key: country.value, align: "center", gap: "3", onClick: () => handleSelection(country.value), style: {
|
|
57133
|
+
padding: '8px',
|
|
57134
|
+
cursor: 'pointer',
|
|
57135
|
+
borderRadius: '4px',
|
|
57136
|
+
backgroundColor: isSelected ? 'var(--accent-a3)' : 'transparent',
|
|
57137
|
+
transition: 'background-color 0.1s'
|
|
57138
|
+
} },
|
|
57139
|
+
multiselect && (React.createElement(c$2, { checked: isSelected, style: { pointerEvents: 'none' } })),
|
|
57140
|
+
displayFlag && (React.createElement(FlagIcon, { country: country.value })),
|
|
57141
|
+
React.createElement(p$d, { size: "2", style: { whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis' } }, country.label)));
|
|
57142
|
+
}))))))),
|
|
57143
|
+
React.createElement("div", { style: { marginTop: 4, display: 'flex', alignItems: 'center', gap: 6 } },
|
|
57144
|
+
inputLabel && (React.createElement(p$d, { id: `${alias}InputLabel`, as: "label", size: "2", weight: "bold", htmlFor: `${alias}FormInput` }, inputLabel)),
|
|
57145
|
+
isHinted && (React.createElement(e, { content: hintText || "No hint available", align: "start", sideOffset: 5, className: "core-input-tooltip" },
|
|
57146
|
+
React.createElement("a", { href: hintUrl || "", target: "_blank", rel: "noopener noreferrer", style: { display: 'flex' } },
|
|
57147
|
+
React.createElement(Icon, { name: "questionmarkcircled", height: "16", width: "16", style: { cursor: 'pointer', color: 'gray' } })))),
|
|
57148
|
+
hasError && (React.createElement(p$d, { id: errorId, size: "1", color: "red", className: 'core-input-label-error' }, errorText || (typeof fieldError === 'string' ? fieldError : `Required field`)))))));
|
|
57149
|
+
};
|
|
57150
|
+
|
|
57015
57151
|
const Teletraan1 = ({ xFormModel, readOnlyMode = false, displayMode = 'codice', brandColor = "#000000", onPrev, onNext, onFinish }) => {
|
|
57016
57152
|
const [dualToggled, setDualToggled] = React.useState(false);
|
|
57017
57153
|
const [neuVars] = React.useState({
|
|
@@ -57058,6 +57194,10 @@ const Teletraan1 = ({ xFormModel, readOnlyMode = false, displayMode = 'codice',
|
|
|
57058
57194
|
return React.createElement(DateTimePicker, Object.assign({}, layoutProps, { placeholder: inputPlaceholder }));
|
|
57059
57195
|
case dropdownInputType.includes(normalizedType):
|
|
57060
57196
|
return React.createElement(Dropdown, Object.assign({}, layoutProps, { placeholder: inputPlaceholder, inputOptions: inputOptions || [InputOptionsPlaceholder] }));
|
|
57197
|
+
case countrydropdownInputType.includes(normalizedType):
|
|
57198
|
+
return React.createElement(CountrySelect, Object.assign({ displayFlag: true, enableSearch: true }, layoutProps, { placeholder: inputPlaceholder }));
|
|
57199
|
+
case countrymultiselectInputType.includes(normalizedType):
|
|
57200
|
+
return React.createElement(CountrySelect, Object.assign({ displayFlag: true, enableSearch: true, multiselect: true }, layoutProps, { placeholder: inputPlaceholder }));
|
|
57061
57201
|
case fileInputType.includes(normalizedType):
|
|
57062
57202
|
return React.createElement(File$1, Object.assign({}, layoutProps, { preview: true }));
|
|
57063
57203
|
case fileMultipleInputType.includes(normalizedType):
|
|
@@ -57129,7 +57269,7 @@ const Teletraan1 = ({ xFormModel, readOnlyMode = false, displayMode = 'codice',
|
|
|
57129
57269
|
case 'codex':
|
|
57130
57270
|
return (React.createElement(Codex, { brandColor: brandColor }, xFormModel.model.map((formsection, index, array) => (React.createElement(CodexItem, { key: formsection.sectionId, stepId: String(formsection.sectionId), title: formsection.title, subtitleDescription: formsection.subtitle ? formsection.subtitle : undefined, icon: React.createElement(Icon, { name: formsection.icon || "fontfamily" }) },
|
|
57131
57271
|
React.createElement(Row, { key: formsection.sectionId }, renderQueries(formsection.queries)),
|
|
57132
|
-
React.createElement(CodexControls, { prevStepId: index > 0 ? String(array[index - 1].sectionId) : undefined, nextStepId: index < array.length - 1 ? String(array[index + 1].sectionId) : undefined, onPrev: onPrev, onNext: onNext, onFinish: onFinish }))))));
|
|
57272
|
+
React.createElement(CodexControls, { prevStepId: index > 0 ? String(array[index - 1].sectionId) : undefined, nextStepId: index < array.length - 1 ? String(array[index + 1].sectionId) : undefined, onPrev: onPrev, onNext: onNext, onFinish: () => onFinish }))))));
|
|
57133
57273
|
case 'codice':
|
|
57134
57274
|
default:
|
|
57135
57275
|
return (React.createElement(React.Fragment, { key: xFormModel.uuid }, xFormModel.model.map((formsection) => (React.createElement(React.Fragment, { key: formsection.sectionId || crypto.randomUUID() },
|
|
@@ -57213,14 +57353,15 @@ class VectorSigma {
|
|
|
57213
57353
|
"checkbox", "checkboxes", "checkboxinput", "chechbox-input", "input-checkbox", "inputcheckbox", "checkboxgroup-input",
|
|
57214
57354
|
"filemultiple", "filemultipleinput", "filemultiple-input", "input-filemultiple", "inputfilemultiple",
|
|
57215
57355
|
"selectmultiple", "selectmultipleinput", "selectmultiple-input", "input-selectmultiple", "inputselectmultiple",
|
|
57216
|
-
"
|
|
57356
|
+
"countrymultiselect", "countrymultiselectinput", "countrymultiselect-input", "input-countrymultiselect", "inputcountrymultiselect",
|
|
57357
|
+
"range", "rangeslider", "rangeinput", "rangesliderinput", "rangeslider-input", "range-input", "input-rangeslider", "inputrangeslider",
|
|
57358
|
+
"slider", "sliderinput", "slider-input", "input-slider", "inputslider"
|
|
57217
57359
|
];
|
|
57218
57360
|
const booleanTypes = [
|
|
57219
57361
|
"toggle", "switch", "toggleinput", "toggle-input", "input-toggle", "inputtoggle",
|
|
57220
57362
|
"conditionaltoggle", "conditionalcheckbox", "conditional-toggle", "conditional-checkbox"
|
|
57221
57363
|
];
|
|
57222
57364
|
const numberTypes = [
|
|
57223
|
-
"slider", "sliderinput", "slider-input", "input-slider", "inputslider",
|
|
57224
57365
|
"currency", "currencyinput", "currency-input", "input-currency", "inputcurrency",
|
|
57225
57366
|
"stock", "stockinput", "stock-input", "input-stock", "inputstock"
|
|
57226
57367
|
];
|
|
@@ -57442,7 +57583,8 @@ class VectorSigma {
|
|
|
57442
57583
|
const sanitizedData = normalizeXForm(this.formObject);
|
|
57443
57584
|
const { initialValues, validationSchema } = this.buildFormikConfig(sanitizedData);
|
|
57444
57585
|
const isCodexMode = (options === null || options === void 0 ? void 0 : options.displayMode) === 'codex';
|
|
57445
|
-
|
|
57586
|
+
const themeConfig = Object.assign({ appearance: 'inherit', accentColor: 'blue', radius: 'medium' }, options === null || options === void 0 ? void 0 : options.theme);
|
|
57587
|
+
return (React.createElement(R, Object.assign({}, themeConfig),
|
|
57446
57588
|
React.createElement(formik.Formik, { initialValues: initialValues, validationSchema: validationSchema, onSubmit: (values, actions) => __awaiter(this, void 0, void 0, function* () {
|
|
57447
57589
|
try {
|
|
57448
57590
|
this.statusCode = 2;
|
|
@@ -57453,7 +57595,7 @@ class VectorSigma {
|
|
|
57453
57595
|
yield options.onSubmit(values, actions, this);
|
|
57454
57596
|
}
|
|
57455
57597
|
if (options === null || options === void 0 ? void 0 : options.onFinish) {
|
|
57456
|
-
options.onFinish();
|
|
57598
|
+
options.onFinish(values, actions, this);
|
|
57457
57599
|
}
|
|
57458
57600
|
}
|
|
57459
57601
|
catch (error) {
|
|
@@ -57640,6 +57782,7 @@ exports.CodexItem = CodexItem;
|
|
|
57640
57782
|
exports.Column = Column;
|
|
57641
57783
|
exports.ConditionalTrigger = ConditionalTrigger;
|
|
57642
57784
|
exports.Container = Container;
|
|
57785
|
+
exports.CountrySelect = CountrySelect;
|
|
57643
57786
|
exports.CreditCardInput = CreditCardInput;
|
|
57644
57787
|
exports.CurrencyInput = CurrencyInput;
|
|
57645
57788
|
exports.DatePicker = DatePicker;
|
package/lib/index.esm.js
CHANGED
|
@@ -31783,13 +31783,11 @@ const File$1 = (_a) => {
|
|
|
31783
31783
|
width: '100%',
|
|
31784
31784
|
position: 'relative',
|
|
31785
31785
|
overflow: 'hidden',
|
|
31786
|
+
boxSizing: 'border-box',
|
|
31786
31787
|
};
|
|
31787
31788
|
const materialTrigger = Object.assign(Object.assign({}, baseTriggerStyle), { backgroundColor: 'var(--color-surface)', boxShadow: hasError ? 'inset 0 0 0 1px var(--red-9)' : '0 2px 5px rgba(0,0,0,0.1)' });
|
|
31788
31789
|
const outlineTrigger = Object.assign(Object.assign({}, baseTriggerStyle), { backgroundColor: 'transparent', border: hasError ? '2px dashed var(--red-9)' : '2px dashed var(--gray-8)' });
|
|
31789
|
-
const neumorphicTrigger = Object.assign(Object.assign(Object.assign({}, baseTriggerStyle), { backgroundColor: 'var(--neu-bg)', color: hasError ? 'var(--red-9)' : 'var(--neu-text)',
|
|
31790
|
-
// Empty: (Dropzone effect)
|
|
31791
|
-
// Selected: (Card effect)
|
|
31792
|
-
boxShadow: !selectedFile
|
|
31790
|
+
const neumorphicTrigger = Object.assign(Object.assign(Object.assign({}, baseTriggerStyle), { backgroundColor: 'var(--neu-bg)', color: hasError ? 'var(--red-9)' : 'var(--neu-text)', boxShadow: !selectedFile
|
|
31793
31791
|
? 'inset 3px 3px 6px var(--neu-shadow-dark), inset -3px -3px 6px var(--neu-shadow-light)'
|
|
31794
31792
|
: '6px 6px 12px var(--neu-shadow-dark), -6px -6px 12px var(--neu-shadow-light)', border: 'none' }), neuVars);
|
|
31795
31793
|
const activeStyle = inputtype === 'fileinput-neumorphic' ? neumorphicTrigger :
|
|
@@ -31806,11 +31804,11 @@ const File$1 = (_a) => {
|
|
|
31806
31804
|
} }, !selectedFile ? (
|
|
31807
31805
|
// --- EMPTY STATE RENDER ---
|
|
31808
31806
|
React__default.createElement(p$5, { align: "center", gap: "3", style: { width: '100%', color: 'var(--gray-10)' } },
|
|
31809
|
-
React__default.createElement(p$8, { style: { padding: 8, borderRadius: '50%', backgroundColor: 'var(--gray-3)' } },
|
|
31807
|
+
React__default.createElement(p$8, { style: { padding: 8, borderRadius: '50%', backgroundColor: 'var(--gray-3)', flexShrink: 0 } },
|
|
31810
31808
|
React__default.createElement(Icon, { name: 'upload', width: "18", height: "18" })),
|
|
31811
|
-
React__default.createElement(p$5, { direction: "column" },
|
|
31812
|
-
React__default.createElement(p$d, { size: "2", weight: "bold", color: "gray" }, "Upload File"),
|
|
31813
|
-
React__default.createElement(p$d, { size: "1", color: "gray" }, "Supports PDF, Images, Excel, JSON...")))) : (
|
|
31809
|
+
React__default.createElement(p$5, { direction: "column", style: { minWidth: 0, flex: 1 } },
|
|
31810
|
+
React__default.createElement(p$d, { size: "2", weight: "bold", color: "gray", style: { whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis' } }, "Upload File"),
|
|
31811
|
+
React__default.createElement(p$d, { size: "1", color: "gray", style: { whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis' } }, "Supports PDF, Images, Excel, JSON...")))) : (
|
|
31814
31812
|
// --- SELECTED STATE RENDER ---
|
|
31815
31813
|
React__default.createElement(p$5, { align: "center", gap: "4", style: { width: '100%' } },
|
|
31816
31814
|
preview && previewUrl ? (React__default.createElement(i$9, { ratio: 1, style: { width: 48, height: 48, borderRadius: 6, overflow: 'hidden', flexShrink: 0 } },
|
|
@@ -31820,24 +31818,19 @@ const File$1 = (_a) => {
|
|
|
31820
31818
|
backgroundColor: 'var(--accent-3)', color: 'var(--accent-9)',
|
|
31821
31819
|
borderRadius: 6, flexShrink: 0
|
|
31822
31820
|
} }, getFileIcon$1(selectedFile.type, selectedFile.name))),
|
|
31823
|
-
React__default.createElement(p$5, { direction: "column", style: { flexGrow: 1, overflow: 'hidden' } },
|
|
31821
|
+
React__default.createElement(p$5, { direction: "column", style: { flexGrow: 1, minWidth: 0, overflow: 'hidden' } },
|
|
31824
31822
|
React__default.createElement(p$d, { size: "2", weight: "bold", style: { whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis' } }, selectedFile.name),
|
|
31825
31823
|
React__default.createElement(p$5, { gap: "2", align: "center" },
|
|
31826
31824
|
React__default.createElement(p$d, { size: "1", color: "gray" }, formatBytes(selectedFile.size)),
|
|
31827
31825
|
React__default.createElement(e$a, { size: "1", color: "gray", variant: "soft" }, (_b = selectedFile.name.split('.').pop()) === null || _b === void 0 ? void 0 : _b.toUpperCase()))),
|
|
31828
31826
|
React__default.createElement(o$5, { size: "1", variant: "ghost", color: "red", onClick: handleClear, style: { borderRadius: '50%', padding: 4 } },
|
|
31829
31827
|
React__default.createElement(Icon, { name: 'close', width: "16", height: "16" }))))),
|
|
31830
|
-
React__default.createElement("div",
|
|
31831
|
-
React__default.createElement(p$d, { id: `${alias}InputLabel`, as: "label", size: "2", weight: "bold", htmlFor: inputId }, inputLabel),
|
|
31832
|
-
"
|
|
31833
|
-
|
|
31834
|
-
|
|
31835
|
-
|
|
31836
|
-
React__default.createElement("a", { href: hintUrl || "", target: "_blank", rel: "noopener noreferrer" },
|
|
31837
|
-
React__default.createElement(Icon, { name: "questionmarkcircled", height: "16", width: "16", style: { cursor: 'pointer', color: 'gray' } })))) : null,
|
|
31838
|
-
hasError ?
|
|
31839
|
-
React__default.createElement(React__default.Fragment, null,
|
|
31840
|
-
React__default.createElement("p", { id: errorId, className: 'core-input-label-error' }, errorText || (typeof fieldError === 'string' ? fieldError : "Required field"))) : null))));
|
|
31828
|
+
React__default.createElement("div", { style: { marginTop: 4, display: 'flex', alignItems: 'center', gap: 6 } },
|
|
31829
|
+
inputLabel && (React__default.createElement(p$d, { id: `${alias}InputLabel`, as: "label", size: "2", weight: "bold", htmlFor: inputId }, inputLabel)),
|
|
31830
|
+
isHinted && (React__default.createElement(e, { content: hintText || "No hint available", align: "start", sideOffset: 5, className: "core-input-tooltip" },
|
|
31831
|
+
React__default.createElement("a", { href: hintUrl || "", target: "_blank", rel: "noopener noreferrer", style: { display: 'flex' } },
|
|
31832
|
+
React__default.createElement(Icon, { name: "questionmarkcircled", height: "16", width: "16", style: { cursor: 'pointer', color: 'gray' } })))),
|
|
31833
|
+
hasError && (React__default.createElement(p$d, { id: errorId, size: "1", color: "red", className: 'core-input-label-error' }, errorText || (typeof fieldError === 'string' ? fieldError : `Required field`)))))));
|
|
31841
31834
|
};
|
|
31842
31835
|
|
|
31843
31836
|
const getFileIcon = (fileOrUrl) => {
|
|
@@ -31940,20 +31933,21 @@ const FileMultiple = (_a) => {
|
|
|
31940
31933
|
const isNeumorphic = inputtype === 'filemultiple-neumorphic';
|
|
31941
31934
|
return (React__default.createElement(Column, { span: width, newLine: newRow },
|
|
31942
31935
|
React__default.createElement(p$5, { direction: "column", gap: "2", className: className, style: Object.assign({ width: '100%' }, style) },
|
|
31943
|
-
React__default.createElement(p$8, { onClick: () => { var _a; return !readOnly && ((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.click()); }, p: "4", style: Object.assign(Object.assign({}, styles[inputtype]), { cursor: readOnly ? 'default' : 'pointer', transition: 'all 0.2s', borderColor: hasError ? 'var(--red-9)' : (
|
|
31936
|
+
React__default.createElement(p$8, { onClick: () => { var _a; return !readOnly && ((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.click()); }, p: "4", style: Object.assign(Object.assign({}, styles[inputtype]), { cursor: readOnly ? 'default' : 'pointer', transition: 'all 0.2s', borderColor: hasError ? 'var(--red-9)' : (inputtype === 'filemultiple-material' ? 'var(--accent-9)' : 'var(--gray-a8)'), position: 'relative', opacity: readOnly ? 0.7 : 1, boxSizing: 'border-box', width: '100%', overflow: 'hidden' }) },
|
|
31944
31937
|
React__default.createElement(p$5, { align: "center", gap: "4" },
|
|
31945
31938
|
React__default.createElement(p$8, { style: {
|
|
31946
31939
|
background: isNeumorphic ? '#e0e0e0' : 'var(--accent-3)',
|
|
31947
31940
|
borderRadius: '50%',
|
|
31948
31941
|
padding: '10px',
|
|
31949
|
-
boxShadow: isNeumorphic ? 'inset 3px 3px 6px #b8b9be, inset -3px -3px 6px #ffffff' : 'none'
|
|
31942
|
+
boxShadow: isNeumorphic ? 'inset 3px 3px 6px #b8b9be, inset -3px -3px 6px #ffffff' : 'none',
|
|
31943
|
+
flexShrink: 0
|
|
31950
31944
|
} },
|
|
31951
31945
|
React__default.createElement(Icon, { name: 'upload', width: "20", height: "20", color: isNeumorphic ? '#555' : 'var(--accent-9)' })),
|
|
31952
|
-
React__default.createElement(p$5, { direction: "column" },
|
|
31953
|
-
React__default.createElement(p$d, { weight: "bold", style: { color: isNeumorphic ? '#444' : 'inherit' } }, currentFiles.length > 0
|
|
31946
|
+
React__default.createElement(p$5, { direction: "column", style: { minWidth: 0, flex: 1 } },
|
|
31947
|
+
React__default.createElement(p$d, { weight: "bold", style: { color: isNeumorphic ? '#444' : 'inherit', whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis' } }, currentFiles.length > 0
|
|
31954
31948
|
? `${currentFiles.length} file${currentFiles.length !== 1 ? 's' : ''} selected`
|
|
31955
31949
|
: (placeholder || "Choose files...")),
|
|
31956
|
-
React__default.createElement(p$d, { size: "1", color: "gray", style: { opacity: 0.8 } }, "PDF, Images, Office Docs, JSON, ZIP"))),
|
|
31950
|
+
React__default.createElement(p$d, { size: "1", color: "gray", style: { opacity: 0.8, whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis' } }, "PDF, Images, Office Docs, JSON, ZIP"))),
|
|
31957
31951
|
React__default.createElement("input", { id: inputId, ref: inputRef, name: alias, type: "file", multiple: true, accept: ACCEPTED_EXTENSIONS, onChange: handleFileChange, disabled: readOnly, style: { display: 'none' }, "aria-describedby": hasError ? errorId : undefined })),
|
|
31958
31952
|
preview && currentFiles.length > 0 && (React__default.createElement(o$6, { columns: "repeat(auto-fill, minmax(220px, 1fr))", gap: "3", mt: "1" }, currentFiles.map((file, index) => {
|
|
31959
31953
|
let previewUrl = null;
|
|
@@ -31982,7 +31976,8 @@ const FileMultiple = (_a) => {
|
|
|
31982
31976
|
background: 'var(--gray-a3)',
|
|
31983
31977
|
display: 'flex',
|
|
31984
31978
|
alignItems: 'center',
|
|
31985
|
-
justifyContent: 'center'
|
|
31979
|
+
justifyContent: 'center',
|
|
31980
|
+
flexShrink: 0
|
|
31986
31981
|
} }, previewUrl && (fileName.match(/\.(jpeg|jpg|png|gif|webp)$/i) || (file instanceof File && file.type.startsWith('image/'))) ? (React__default.createElement("img", { src: previewUrl, alt: "preview", style: { width: '100%', height: '100%', objectFit: 'cover' } })) : (getFileIcon(file))),
|
|
31987
31982
|
React__default.createElement(p$5, { direction: "column", style: { flex: 1, overflow: 'hidden' } },
|
|
31988
31983
|
React__default.createElement(p$d, { size: "1", weight: "bold", style: { whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis', color: isNeumorphic ? '#444' : 'inherit' } }, fileName),
|
|
@@ -31993,13 +31988,12 @@ const FileMultiple = (_a) => {
|
|
|
31993
31988
|
} },
|
|
31994
31989
|
React__default.createElement(Icon, { name: 'close' }))))));
|
|
31995
31990
|
}))),
|
|
31996
|
-
React__default.createElement("div",
|
|
31991
|
+
React__default.createElement("div", { style: { marginTop: 4, display: 'flex', alignItems: 'center', gap: 6 } },
|
|
31997
31992
|
inputLabel && (React__default.createElement(p$d, { id: `${alias}InputLabel`, as: "label", size: "2", weight: "bold", htmlFor: inputId }, inputLabel)),
|
|
31998
|
-
"
|
|
31999
|
-
|
|
32000
|
-
|
|
32001
|
-
|
|
32002
|
-
hasError && (React__default.createElement(p$d, { id: errorId, size: "1", color: "red", style: { display: 'block', marginTop: 2 } }, typeof fieldError === 'string' ? (errorText || fieldError) : 'Invalid file selection'))))));
|
|
31993
|
+
isHinted && (React__default.createElement(e, { content: hintText || "No hint available", align: "start", sideOffset: 5, className: "core-input-tooltip" },
|
|
31994
|
+
React__default.createElement("a", { href: hintUrl || "", target: "_blank", rel: "noopener noreferrer", style: { display: 'flex' } },
|
|
31995
|
+
React__default.createElement(Icon, { name: "questionmarkcircled", height: "16", width: "16", style: { cursor: 'pointer', color: 'gray' } })))),
|
|
31996
|
+
hasError && (React__default.createElement(p$d, { id: errorId, size: "1", color: "red", className: 'core-input-label-error' }, errorText || (typeof fieldError === 'string' ? fieldError : `Required field`)))))));
|
|
32003
31997
|
};
|
|
32004
31998
|
|
|
32005
31999
|
const getStyles = (design, layout) => {
|
|
@@ -32034,9 +32028,9 @@ const getStyles = (design, layout) => {
|
|
|
32034
32028
|
const ImageOutput = ({ id, src, alt = "Image", design = 'outline', layout = 'normal', aspectratio = 16 / 9, height, width = '100%', className, style, onClick, }) => {
|
|
32035
32029
|
const containerStyles = getStyles(design, layout);
|
|
32036
32030
|
const iconColor = design === 'neumorphic' ? '#555' : 'var(--gray-9)';
|
|
32037
|
-
const content = (React__default.createElement(p$8, { className: className, style: Object.assign(Object.assign(Object.assign({}, containerStyles), { width, height: height || '
|
|
32038
|
-
width: '
|
|
32039
|
-
height: '
|
|
32031
|
+
const content = (React__default.createElement(p$8, { className: className, style: Object.assign(Object.assign(Object.assign({}, containerStyles), { width: '100%', height: height || '100%' }), style), onClick: onClick }, src ? (React__default.createElement("img", { id: String(id), src: src, alt: alt, style: {
|
|
32032
|
+
width: '100%',
|
|
32033
|
+
height: '100%',
|
|
32040
32034
|
objectFit: 'cover',
|
|
32041
32035
|
display: 'block',
|
|
32042
32036
|
} })) : (React__default.createElement(p$5, { align: "center", justify: "center", style: {
|
|
@@ -32048,11 +32042,7 @@ const ImageOutput = ({ id, src, alt = "Image", design = 'outline', layout = 'nor
|
|
|
32048
32042
|
React__default.createElement(p$5, { direction: "column", align: "center", gap: "2" },
|
|
32049
32043
|
React__default.createElement(Icon, { name: 'image', width: "32", height: "32", color: iconColor, style: { opacity: 0.5 } }),
|
|
32050
32044
|
React__default.createElement(p$d, { size: "1", color: "gray" }, "No Image"))))));
|
|
32051
|
-
|
|
32052
|
-
return content;
|
|
32053
|
-
}
|
|
32054
|
-
return (React__default.createElement(p$8, { style: { width } },
|
|
32055
|
-
React__default.createElement(i$9, { ratio: aspectratio }, content)));
|
|
32045
|
+
return (React__default.createElement(p$8, { style: { width, maxWidth: 500, maxHeight: 500 } }, height ? (content) : (React__default.createElement(i$9, { ratio: aspectratio }, content))));
|
|
32056
32046
|
};
|
|
32057
32047
|
|
|
32058
32048
|
const Input$1 = (_a) => {
|
|
@@ -39669,7 +39659,7 @@ function _arrayLikeToArray$3(arr, len) { if (len == null || len > arr.length) le
|
|
|
39669
39659
|
function _extends$8() { _extends$8 = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$8.apply(this, arguments); }
|
|
39670
39660
|
function _objectWithoutProperties$8(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose$8(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; }
|
|
39671
39661
|
function _objectWithoutPropertiesLoose$8(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; }
|
|
39672
|
-
function CountrySelect(_ref) {
|
|
39662
|
+
function CountrySelect$1(_ref) {
|
|
39673
39663
|
var value = _ref.value,
|
|
39674
39664
|
onChange = _ref.onChange,
|
|
39675
39665
|
options = _ref.options,
|
|
@@ -39703,7 +39693,7 @@ function CountrySelect(_ref) {
|
|
|
39703
39693
|
}, label);
|
|
39704
39694
|
}));
|
|
39705
39695
|
}
|
|
39706
|
-
CountrySelect.propTypes = {
|
|
39696
|
+
CountrySelect$1.propTypes = {
|
|
39707
39697
|
/**
|
|
39708
39698
|
* A two-letter country code.
|
|
39709
39699
|
* Example: "US", "RU", etc.
|
|
@@ -39748,7 +39738,7 @@ function CountrySelectWithIcon(_ref3) {
|
|
|
39748
39738
|
}, [options, value]);
|
|
39749
39739
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
39750
39740
|
className: "PhoneInputCountry"
|
|
39751
|
-
}, /*#__PURE__*/React__default.createElement(CountrySelect, _extends$8({}, rest, {
|
|
39741
|
+
}, /*#__PURE__*/React__default.createElement(CountrySelect$1, _extends$8({}, rest, {
|
|
39752
39742
|
value: value,
|
|
39753
39743
|
options: options,
|
|
39754
39744
|
className: classNames('PhoneInputCountrySelect', className)
|
|
@@ -55512,7 +55502,6 @@ const CreditCardInput = (_a) => {
|
|
|
55512
55502
|
React__default.createElement("div", { style: { display: 'flex', alignItems: 'center' } }, getCardIcon())),
|
|
55513
55503
|
React__default.createElement("div", { style: { marginTop: 4, display: 'flex', alignItems: 'center', gap: 6 } },
|
|
55514
55504
|
inputLabel && (React__default.createElement(p$d, { id: `${alias}InputLabel`, as: "label", size: "2", weight: "bold", htmlFor: `${alias}FormInput` }, inputLabel)),
|
|
55515
|
-
"\u00A0",
|
|
55516
55505
|
isHinted && (React__default.createElement(e, { content: hintText || "No hint available", align: "start", sideOffset: 5, className: "core-input-tooltip" },
|
|
55517
55506
|
React__default.createElement("a", { href: hintUrl || "", target: "_blank", rel: "noopener noreferrer", style: { display: 'flex' } },
|
|
55518
55507
|
React__default.createElement(Icon, { name: "questionmarkcircled", height: "16", width: "16", style: { cursor: 'pointer', color: 'gray' } })))),
|
|
@@ -55667,8 +55656,8 @@ const CurrencyInput = (_a) => {
|
|
|
55667
55656
|
textAlign: 'right',
|
|
55668
55657
|
width: '100%'
|
|
55669
55658
|
}, inputMode: "decimal", autoComplete: "off" }))),
|
|
55670
|
-
React__default.createElement("div",
|
|
55671
|
-
React__default.createElement(p$d, { id: `${alias}InputLabel`, as: "label", size: "2", weight: "bold", htmlFor: `${alias}FormInput` }, inputLabel),
|
|
55659
|
+
React__default.createElement("div", { style: { marginTop: 4, display: 'flex', alignItems: 'center', gap: 6 } },
|
|
55660
|
+
inputLabel && (React__default.createElement(p$d, { id: `${alias}InputLabel`, as: "label", size: "2", weight: "bold", htmlFor: `${alias}FormInput` }, inputLabel)),
|
|
55672
55661
|
isHinted && (React__default.createElement(e, { content: hintText || "No hint available", align: "start", sideOffset: 5, className: "core-input-tooltip" },
|
|
55673
55662
|
React__default.createElement("a", { href: hintUrl || "", target: "_blank", rel: "noopener noreferrer", style: { display: 'flex' } },
|
|
55674
55663
|
React__default.createElement(Icon, { name: "questionmarkcircled", height: "16", width: "16", style: { cursor: 'pointer', color: 'gray' } })))),
|
|
@@ -55748,12 +55737,12 @@ const StockInput = (_a) => {
|
|
|
55748
55737
|
fontWeight: 500,
|
|
55749
55738
|
fontFamily: 'var(--default-font-family)',
|
|
55750
55739
|
}, inputMode: "decimal", autoComplete: "off" }))),
|
|
55751
|
-
React__default.createElement("div",
|
|
55740
|
+
React__default.createElement("div", { style: { marginTop: 4, display: 'flex', alignItems: 'center', gap: 6 } },
|
|
55752
55741
|
inputLabel && (React__default.createElement(p$d, { id: `${alias}InputLabel`, as: "label", size: "2", weight: "bold", htmlFor: `${alias}FormInput` }, inputLabel)),
|
|
55753
55742
|
isHinted && (React__default.createElement(e, { content: hintText || "No hint available", align: "start", sideOffset: 5, className: "core-input-tooltip" },
|
|
55754
55743
|
React__default.createElement("a", { href: hintUrl || "", target: "_blank", rel: "noopener noreferrer", style: { display: 'flex' } },
|
|
55755
55744
|
React__default.createElement(Icon, { name: "questionmarkcircled", height: "16", width: "16", style: { cursor: 'pointer', color: 'gray' } })))),
|
|
55756
|
-
hasError && (React__default.createElement(
|
|
55745
|
+
hasError && (React__default.createElement(p$d, { id: errorId, size: "1", color: "red", className: 'core-input-label-error' }, errorText || (typeof fieldError === 'string' ? fieldError : `Required field`)))))));
|
|
55757
55746
|
};
|
|
55758
55747
|
|
|
55759
55748
|
const RadioGroupInput = (_a) => {
|
|
@@ -56166,9 +56155,8 @@ const SliderInput = (_a) => {
|
|
|
56166
56155
|
}, onValueCommit: () => {
|
|
56167
56156
|
setFieldTouched(alias, true, false);
|
|
56168
56157
|
}, className: inputtype === 'slider-neumorphic' ? 'neu-slider' : inputtype === 'slider-outline' ? 'outline-slider' : '', style: neuVars }),
|
|
56169
|
-
React__default.createElement("div",
|
|
56170
|
-
React__default.createElement(p$d, { id: labelId, as: "div", size: "2", weight: "bold" }, inputLabel),
|
|
56171
|
-
"\u00A0",
|
|
56158
|
+
React__default.createElement("div", { style: { marginTop: 4, display: 'flex', alignItems: 'center', gap: 6 } },
|
|
56159
|
+
inputLabel && (React__default.createElement(p$d, { id: labelId, as: "div", size: "2", weight: "bold" }, inputLabel)),
|
|
56172
56160
|
isHinted ?
|
|
56173
56161
|
React__default.createElement(React__default.Fragment, null,
|
|
56174
56162
|
React__default.createElement(e, { content: hintText || "No hint available", align: "start", sideOffset: 5, className: "core-input-tooltip" },
|
|
@@ -56238,8 +56226,8 @@ const RangeSlider = (_a) => {
|
|
|
56238
56226
|
React__default.createElement(s, { name: alias, id: `${alias}FormInput`, disabled: readOnly, "aria-labelledby": labelId, min: minvalue, max: maxvalue, step: stepvalue, minStepsBetweenThumbs: minStepsBetweenThumbs, value: sliderValue, onValueChange: (val) => {
|
|
56239
56227
|
setFieldValue(alias, isRange ? val : val[0]);
|
|
56240
56228
|
}, onValueCommit: () => setFieldTouched(alias, true, false), className: inputtype === 'range-neumorphic' ? 'neu-slider' : inputtype === 'range-outline' ? 'outline-slider' : '', style: neuVars }),
|
|
56241
|
-
React__default.createElement("div",
|
|
56242
|
-
React__default.createElement(p$d, { id: labelId, as: "div", size: "2", weight: "bold", style: { display: 'inline' } }, inputLabel),
|
|
56229
|
+
React__default.createElement("div", { style: { marginTop: 4, display: 'flex', alignItems: 'center', gap: 6 } },
|
|
56230
|
+
inputLabel && (React__default.createElement(p$d, { id: labelId, as: "div", size: "2", weight: "bold", style: { display: 'inline' } }, inputLabel)),
|
|
56243
56231
|
isHinted && (React__default.createElement(React__default.Fragment, null,
|
|
56244
56232
|
React__default.createElement(e, { content: hintText || "No hint available", align: "start", sideOffset: 5, className: "core-input-tooltip" },
|
|
56245
56233
|
React__default.createElement("a", { href: hintUrl || "", target: "_blank", rel: "noopener noreferrer" },
|
|
@@ -56842,6 +56830,9 @@ const datePickerInputType = ["datepicker", "datepickerinput", "datepicker-input"
|
|
|
56842
56830
|
const dateRangePickerInputType = ["daterangepicker", "daterangepickerinput", "daterangepicker-input", "input-daterangepicker", "inputdaterangepicker"];
|
|
56843
56831
|
const dateTimePickerInputType = ["datetimepicker", "datetimepickerinput", "datetimepicker-input", "input-datetimepicker", "inputdatetimepicker"];
|
|
56844
56832
|
const dropdownInputType = ["dropdown", "dropdowninput", "dropdown-input", "input-dropdown", "inputdropdown"];
|
|
56833
|
+
const countrydropdownInputType = ["countrydropdown", "countrydropdowninput", "countrydropdown-input", "input-countrydropdown", "inputcountrydropdown",
|
|
56834
|
+
"countryselect", "countryselect-input", "countryselectinput", "input-countryselect"];
|
|
56835
|
+
const countrymultiselectInputType = ["countrymultiselect", "countrymultiselectinput", "countrymultiselect-input", "input-countrymultiselect", "inputcountrymultiselect"];
|
|
56845
56836
|
const fileInputType = ["file", "fileinput", "file-input", "input-file", "inputfile"];
|
|
56846
56837
|
const fileMultipleInputType = ["filemultiple", "filemultipleinput", "filemultiple-input", "input-filemultiple", "inputfilemultiple"];
|
|
56847
56838
|
const imageOutputType = ["image", "imageoutput", "image-output", "output-image", "outputimage"];
|
|
@@ -56991,6 +56982,151 @@ const DateTimePicker = ({ alias, inputLabel, inputtype = 'datetimepicker-outline
|
|
|
56991
56982
|
hasError && (React__default.createElement(p$d, { size: "1", color: "red", style: { display: 'block' } }, errorText || (typeof fieldError === 'string' ? fieldError : "Required field")))))));
|
|
56992
56983
|
};
|
|
56993
56984
|
|
|
56985
|
+
const CountrySelect = (_a) => {
|
|
56986
|
+
var _b;
|
|
56987
|
+
var { inputtype = 'countryselect-outline', alias, readOnly, width, inputLabel, placeholder = 'Select Country...', newRow, isHinted, hintText, hintUrl, errorText, displayFlag = true, multiselect = false, enableSearch = false, style, className, formikContext } = _a; __rest$1(_a, ["inputtype", "alias", "readOnly", "width", "inputLabel", "placeholder", "newRow", "isHinted", "hintText", "hintUrl", "errorText", "displayFlag", "multiselect", "enableSearch", "style", "className", "formikContext"]);
|
|
56988
|
+
const defaultFormikContext = useFormikContext();
|
|
56989
|
+
const activeContext = formikContext || defaultFormikContext;
|
|
56990
|
+
if (!activeContext) {
|
|
56991
|
+
console.error(`CountryDropdown '${alias}' must be used within a Formik provider.`);
|
|
56992
|
+
return null;
|
|
56993
|
+
}
|
|
56994
|
+
const { values, touched, errors, setFieldValue, setFieldTouched } = activeContext;
|
|
56995
|
+
const fieldValue = getIn(values, alias);
|
|
56996
|
+
const fieldTouched = getIn(touched, alias);
|
|
56997
|
+
const fieldError = getIn(errors, alias);
|
|
56998
|
+
const selectedValues = useMemo(() => {
|
|
56999
|
+
if (multiselect)
|
|
57000
|
+
return Array.isArray(fieldValue) ? fieldValue : [];
|
|
57001
|
+
return fieldValue ? [String(fieldValue)] : [];
|
|
57002
|
+
}, [fieldValue, multiselect]);
|
|
57003
|
+
const hasError = Boolean(fieldTouched && fieldError);
|
|
57004
|
+
const triggerRef = useRef(null);
|
|
57005
|
+
const [neuVars, setNeuVars] = useState({});
|
|
57006
|
+
const [isOpen, setIsOpen] = useState(false);
|
|
57007
|
+
const [searchQuery, setSearchQuery] = useState("");
|
|
57008
|
+
const errorId = `${alias}-error`;
|
|
57009
|
+
const allCountries = useMemo(() => {
|
|
57010
|
+
return getCountries().map(c => ({ value: c, label: en[c] }));
|
|
57011
|
+
}, []);
|
|
57012
|
+
const filteredCountries = useMemo(() => {
|
|
57013
|
+
if (!enableSearch || !searchQuery)
|
|
57014
|
+
return allCountries;
|
|
57015
|
+
const lowerSearch = searchQuery.toLowerCase();
|
|
57016
|
+
return allCountries.filter(c => c.label.toLowerCase().includes(lowerSearch));
|
|
57017
|
+
}, [allCountries, searchQuery, enableSearch]);
|
|
57018
|
+
const handleSelection = (countryCode) => {
|
|
57019
|
+
if (multiselect) {
|
|
57020
|
+
const newValues = selectedValues.includes(countryCode)
|
|
57021
|
+
? selectedValues.filter((v) => v !== countryCode)
|
|
57022
|
+
: [...selectedValues, countryCode];
|
|
57023
|
+
setFieldValue(alias, newValues);
|
|
57024
|
+
}
|
|
57025
|
+
else {
|
|
57026
|
+
setFieldValue(alias, countryCode);
|
|
57027
|
+
setIsOpen(false);
|
|
57028
|
+
}
|
|
57029
|
+
setTimeout(() => setFieldTouched(alias, true, false), 0);
|
|
57030
|
+
};
|
|
57031
|
+
const displayLabel = useMemo(() => {
|
|
57032
|
+
if (selectedValues.length === 0)
|
|
57033
|
+
return placeholder;
|
|
57034
|
+
if (!multiselect) {
|
|
57035
|
+
const c = allCountries.find(x => x.value === selectedValues[0]);
|
|
57036
|
+
return c ? c.label : selectedValues[0];
|
|
57037
|
+
}
|
|
57038
|
+
if (selectedValues.length <= 2) {
|
|
57039
|
+
return selectedValues.map(v => { var _a; return ((_a = allCountries.find(x => x.value === v)) === null || _a === void 0 ? void 0 : _a.label) || v; }).join(', ');
|
|
57040
|
+
}
|
|
57041
|
+
return `${selectedValues.length} countries selected`;
|
|
57042
|
+
}, [selectedValues, multiselect, allCountries, placeholder]);
|
|
57043
|
+
useEffect(() => {
|
|
57044
|
+
if (inputtype === 'countryselect-neumorphic' && triggerRef.current) {
|
|
57045
|
+
const parentBg = getNearestParentBackground(triggerRef.current.parentElement);
|
|
57046
|
+
setNeuVars({
|
|
57047
|
+
'--neu-bg': parentBg,
|
|
57048
|
+
'--neu-shadow-dark': adjustColor(parentBg, -30),
|
|
57049
|
+
'--neu-shadow-light': adjustColor(parentBg, 30),
|
|
57050
|
+
'--neu-text': 'var(--gray-12)',
|
|
57051
|
+
'--neu-error': 'var(--red-9)',
|
|
57052
|
+
});
|
|
57053
|
+
}
|
|
57054
|
+
}, [inputtype]);
|
|
57055
|
+
useEffect(() => {
|
|
57056
|
+
if (!isOpen)
|
|
57057
|
+
setSearchQuery("");
|
|
57058
|
+
}, [isOpen]);
|
|
57059
|
+
// --- STYLES ---
|
|
57060
|
+
const baseTrigger = {
|
|
57061
|
+
display: 'flex',
|
|
57062
|
+
alignItems: 'center',
|
|
57063
|
+
justifyContent: 'space-between',
|
|
57064
|
+
width: '100%',
|
|
57065
|
+
cursor: readOnly ? 'default' : 'pointer',
|
|
57066
|
+
textAlign: 'left',
|
|
57067
|
+
padding: '0 12px',
|
|
57068
|
+
fontSize: 'var(--font-size-2)',
|
|
57069
|
+
fontFamily: 'var(--default-font-family)',
|
|
57070
|
+
whiteSpace: 'nowrap',
|
|
57071
|
+
overflow: 'hidden',
|
|
57072
|
+
boxSizing: 'border-box',
|
|
57073
|
+
opacity: readOnly ? 0.7 : 1,
|
|
57074
|
+
};
|
|
57075
|
+
const materialTrigger = Object.assign(Object.assign({}, baseTrigger), { backgroundColor: 'var(--color-surface)', border: hasError ? '1px solid var(--red-9)' : 'none', boxShadow: '0 2px 5px rgba(0,0,0,0.1)', borderRadius: '4px', height: '32px', fontWeight: 500 });
|
|
57076
|
+
const outlineTrigger = Object.assign(Object.assign({}, baseTrigger), { backgroundColor: 'transparent', border: hasError ? '2px solid var(--red-9)' : '2px solid var(--gray-7)', borderRadius: '4px', height: '32px', fontWeight: 600 });
|
|
57077
|
+
const neumorphicTrigger = Object.assign(Object.assign({}, baseTrigger), { backgroundColor: 'var(--neu-bg)', color: hasError ? 'var(--neu-error)' : 'var(--neu-text)', border: 'none', borderRadius: '12px', height: '40px', fontWeight: 600, boxShadow: isOpen
|
|
57078
|
+
? 'inset 6px 6px 12px var(--neu-shadow-dark), inset -6px -6px 12px var(--neu-shadow-light)'
|
|
57079
|
+
: '6px 6px 12px var(--neu-shadow-dark), -6px -6px 12px var(--neu-shadow-light)', transition: 'all 0.2s ease' });
|
|
57080
|
+
const activeTrigger = inputtype === 'countryselect-material' ? materialTrigger :
|
|
57081
|
+
inputtype === 'countryselect-outline' ? outlineTrigger : Object.assign(Object.assign({}, neumorphicTrigger), neuVars);
|
|
57082
|
+
return (React__default.createElement(Column, { span: width, newLine: newRow },
|
|
57083
|
+
React__default.createElement(p$5, { direction: "column", gap: "2", style: { width: '100%' } },
|
|
57084
|
+
React__default.createElement(P$1, { open: isOpen, onOpenChange: (open) => {
|
|
57085
|
+
if (readOnly)
|
|
57086
|
+
return;
|
|
57087
|
+
setIsOpen(open);
|
|
57088
|
+
if (!open)
|
|
57089
|
+
setFieldTouched(alias, true, false);
|
|
57090
|
+
} },
|
|
57091
|
+
React__default.createElement(s$1, null,
|
|
57092
|
+
React__default.createElement("button", { id: `${alias}FormInput`, type: "button", ref: triggerRef, className: className, style: Object.assign(Object.assign({}, activeTrigger), style), "aria-describedby": `${alias}InputLabel`, disabled: readOnly },
|
|
57093
|
+
React__default.createElement(p$5, { align: "center", gap: "2", style: { minWidth: 0, flex: 1 } },
|
|
57094
|
+
!multiselect && displayFlag && selectedValues.length === 1 && (React__default.createElement(FlagIcon, { country: selectedValues[0] })),
|
|
57095
|
+
React__default.createElement("span", { style: {
|
|
57096
|
+
overflow: 'hidden',
|
|
57097
|
+
textOverflow: 'ellipsis',
|
|
57098
|
+
whiteSpace: 'nowrap',
|
|
57099
|
+
color: selectedValues.length === 0 ? 'var(--gray-8)' : 'inherit'
|
|
57100
|
+
} }, displayLabel)),
|
|
57101
|
+
React__default.createElement(Icon, { name: 'chevrondown', style: { flexShrink: 0, opacity: 0.5, marginLeft: 8 } }))),
|
|
57102
|
+
React__default.createElement(i$3, { align: "start", sideOffset: 5, style: Object.assign({ width: ((_b = triggerRef.current) === null || _b === void 0 ? void 0 : _b.offsetWidth) || 240, padding: 0, overflow: 'hidden', backgroundColor: inputtype === 'countryselect-neumorphic' ? 'var(--neu-bg)' : 'var(--color-panel-solid)' }, neuVars) },
|
|
57103
|
+
enableSearch && (React__default.createElement(p$8, { p: "2", style: { borderBottom: inputtype === 'countryselect-neumorphic' ? 'none' : '1px solid var(--gray-6)' } },
|
|
57104
|
+
React__default.createElement(u, { placeholder: "Search countries...", value: searchQuery, onChange: (e) => setSearchQuery(e.target.value), variant: inputtype === 'countryselect-neumorphic' ? 'soft' : 'surface' },
|
|
57105
|
+
React__default.createElement(c, null,
|
|
57106
|
+
React__default.createElement(Icon, { name: "magnifyingglass", height: "14", width: "14", style: { opacity: 0.5 } }))))),
|
|
57107
|
+
React__default.createElement(c$1, { type: "auto", scrollbars: "vertical", style: { maxHeight: 250 } },
|
|
57108
|
+
React__default.createElement(p$8, { p: "2" },
|
|
57109
|
+
React__default.createElement(p$5, { direction: "column", gap: "1" }, filteredCountries.length === 0 ? (React__default.createElement(p$d, { size: "2", color: "gray", align: "center", style: { padding: '16px 0' } }, "No countries found.")) : (filteredCountries.map((country) => {
|
|
57110
|
+
const isSelected = selectedValues.includes(country.value);
|
|
57111
|
+
return (React__default.createElement(p$5, { key: country.value, align: "center", gap: "3", onClick: () => handleSelection(country.value), style: {
|
|
57112
|
+
padding: '8px',
|
|
57113
|
+
cursor: 'pointer',
|
|
57114
|
+
borderRadius: '4px',
|
|
57115
|
+
backgroundColor: isSelected ? 'var(--accent-a3)' : 'transparent',
|
|
57116
|
+
transition: 'background-color 0.1s'
|
|
57117
|
+
} },
|
|
57118
|
+
multiselect && (React__default.createElement(c$2, { checked: isSelected, style: { pointerEvents: 'none' } })),
|
|
57119
|
+
displayFlag && (React__default.createElement(FlagIcon, { country: country.value })),
|
|
57120
|
+
React__default.createElement(p$d, { size: "2", style: { whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis' } }, country.label)));
|
|
57121
|
+
}))))))),
|
|
57122
|
+
React__default.createElement("div", { style: { marginTop: 4, display: 'flex', alignItems: 'center', gap: 6 } },
|
|
57123
|
+
inputLabel && (React__default.createElement(p$d, { id: `${alias}InputLabel`, as: "label", size: "2", weight: "bold", htmlFor: `${alias}FormInput` }, inputLabel)),
|
|
57124
|
+
isHinted && (React__default.createElement(e, { content: hintText || "No hint available", align: "start", sideOffset: 5, className: "core-input-tooltip" },
|
|
57125
|
+
React__default.createElement("a", { href: hintUrl || "", target: "_blank", rel: "noopener noreferrer", style: { display: 'flex' } },
|
|
57126
|
+
React__default.createElement(Icon, { name: "questionmarkcircled", height: "16", width: "16", style: { cursor: 'pointer', color: 'gray' } })))),
|
|
57127
|
+
hasError && (React__default.createElement(p$d, { id: errorId, size: "1", color: "red", className: 'core-input-label-error' }, errorText || (typeof fieldError === 'string' ? fieldError : `Required field`)))))));
|
|
57128
|
+
};
|
|
57129
|
+
|
|
56994
57130
|
const Teletraan1 = ({ xFormModel, readOnlyMode = false, displayMode = 'codice', brandColor = "#000000", onPrev, onNext, onFinish }) => {
|
|
56995
57131
|
const [dualToggled, setDualToggled] = useState(false);
|
|
56996
57132
|
const [neuVars] = useState({
|
|
@@ -57037,6 +57173,10 @@ const Teletraan1 = ({ xFormModel, readOnlyMode = false, displayMode = 'codice',
|
|
|
57037
57173
|
return React__default.createElement(DateTimePicker, Object.assign({}, layoutProps, { placeholder: inputPlaceholder }));
|
|
57038
57174
|
case dropdownInputType.includes(normalizedType):
|
|
57039
57175
|
return React__default.createElement(Dropdown, Object.assign({}, layoutProps, { placeholder: inputPlaceholder, inputOptions: inputOptions || [InputOptionsPlaceholder] }));
|
|
57176
|
+
case countrydropdownInputType.includes(normalizedType):
|
|
57177
|
+
return React__default.createElement(CountrySelect, Object.assign({ displayFlag: true, enableSearch: true }, layoutProps, { placeholder: inputPlaceholder }));
|
|
57178
|
+
case countrymultiselectInputType.includes(normalizedType):
|
|
57179
|
+
return React__default.createElement(CountrySelect, Object.assign({ displayFlag: true, enableSearch: true, multiselect: true }, layoutProps, { placeholder: inputPlaceholder }));
|
|
57040
57180
|
case fileInputType.includes(normalizedType):
|
|
57041
57181
|
return React__default.createElement(File$1, Object.assign({}, layoutProps, { preview: true }));
|
|
57042
57182
|
case fileMultipleInputType.includes(normalizedType):
|
|
@@ -57108,7 +57248,7 @@ const Teletraan1 = ({ xFormModel, readOnlyMode = false, displayMode = 'codice',
|
|
|
57108
57248
|
case 'codex':
|
|
57109
57249
|
return (React__default.createElement(Codex, { brandColor: brandColor }, xFormModel.model.map((formsection, index, array) => (React__default.createElement(CodexItem, { key: formsection.sectionId, stepId: String(formsection.sectionId), title: formsection.title, subtitleDescription: formsection.subtitle ? formsection.subtitle : undefined, icon: React__default.createElement(Icon, { name: formsection.icon || "fontfamily" }) },
|
|
57110
57250
|
React__default.createElement(Row, { key: formsection.sectionId }, renderQueries(formsection.queries)),
|
|
57111
|
-
React__default.createElement(CodexControls, { prevStepId: index > 0 ? String(array[index - 1].sectionId) : undefined, nextStepId: index < array.length - 1 ? String(array[index + 1].sectionId) : undefined, onPrev: onPrev, onNext: onNext, onFinish: onFinish }))))));
|
|
57251
|
+
React__default.createElement(CodexControls, { prevStepId: index > 0 ? String(array[index - 1].sectionId) : undefined, nextStepId: index < array.length - 1 ? String(array[index + 1].sectionId) : undefined, onPrev: onPrev, onNext: onNext, onFinish: () => onFinish }))))));
|
|
57112
57252
|
case 'codice':
|
|
57113
57253
|
default:
|
|
57114
57254
|
return (React__default.createElement(React__default.Fragment, { key: xFormModel.uuid }, xFormModel.model.map((formsection) => (React__default.createElement(React__default.Fragment, { key: formsection.sectionId || crypto.randomUUID() },
|
|
@@ -57192,14 +57332,15 @@ class VectorSigma {
|
|
|
57192
57332
|
"checkbox", "checkboxes", "checkboxinput", "chechbox-input", "input-checkbox", "inputcheckbox", "checkboxgroup-input",
|
|
57193
57333
|
"filemultiple", "filemultipleinput", "filemultiple-input", "input-filemultiple", "inputfilemultiple",
|
|
57194
57334
|
"selectmultiple", "selectmultipleinput", "selectmultiple-input", "input-selectmultiple", "inputselectmultiple",
|
|
57195
|
-
"
|
|
57335
|
+
"countrymultiselect", "countrymultiselectinput", "countrymultiselect-input", "input-countrymultiselect", "inputcountrymultiselect",
|
|
57336
|
+
"range", "rangeslider", "rangeinput", "rangesliderinput", "rangeslider-input", "range-input", "input-rangeslider", "inputrangeslider",
|
|
57337
|
+
"slider", "sliderinput", "slider-input", "input-slider", "inputslider"
|
|
57196
57338
|
];
|
|
57197
57339
|
const booleanTypes = [
|
|
57198
57340
|
"toggle", "switch", "toggleinput", "toggle-input", "input-toggle", "inputtoggle",
|
|
57199
57341
|
"conditionaltoggle", "conditionalcheckbox", "conditional-toggle", "conditional-checkbox"
|
|
57200
57342
|
];
|
|
57201
57343
|
const numberTypes = [
|
|
57202
|
-
"slider", "sliderinput", "slider-input", "input-slider", "inputslider",
|
|
57203
57344
|
"currency", "currencyinput", "currency-input", "input-currency", "inputcurrency",
|
|
57204
57345
|
"stock", "stockinput", "stock-input", "input-stock", "inputstock"
|
|
57205
57346
|
];
|
|
@@ -57421,7 +57562,8 @@ class VectorSigma {
|
|
|
57421
57562
|
const sanitizedData = normalizeXForm(this.formObject);
|
|
57422
57563
|
const { initialValues, validationSchema } = this.buildFormikConfig(sanitizedData);
|
|
57423
57564
|
const isCodexMode = (options === null || options === void 0 ? void 0 : options.displayMode) === 'codex';
|
|
57424
|
-
|
|
57565
|
+
const themeConfig = Object.assign({ appearance: 'inherit', accentColor: 'blue', radius: 'medium' }, options === null || options === void 0 ? void 0 : options.theme);
|
|
57566
|
+
return (React__default.createElement(R, Object.assign({}, themeConfig),
|
|
57425
57567
|
React__default.createElement(Formik, { initialValues: initialValues, validationSchema: validationSchema, onSubmit: (values, actions) => __awaiter(this, void 0, void 0, function* () {
|
|
57426
57568
|
try {
|
|
57427
57569
|
this.statusCode = 2;
|
|
@@ -57432,7 +57574,7 @@ class VectorSigma {
|
|
|
57432
57574
|
yield options.onSubmit(values, actions, this);
|
|
57433
57575
|
}
|
|
57434
57576
|
if (options === null || options === void 0 ? void 0 : options.onFinish) {
|
|
57435
|
-
options.onFinish();
|
|
57577
|
+
options.onFinish(values, actions, this);
|
|
57436
57578
|
}
|
|
57437
57579
|
}
|
|
57438
57580
|
catch (error) {
|
|
@@ -57607,4 +57749,4 @@ const parseUuidFormat = (input) => {
|
|
|
57607
57749
|
return numbers;
|
|
57608
57750
|
};
|
|
57609
57751
|
|
|
57610
|
-
export { Accordion, AccordionItem, AvatarInput, ButtonInput, CURRENCIES, CheckboxGroupInput, Codex, CodexControls, CodexItem, Column, ConditionalTrigger, Container, CreditCardInput, CurrencyInput, DatePicker, DateRangePicker, DateTimePicker, Dropdown, File$1 as File, FileMultiple, FlagIcon, Icon, ImageOutput, Input$1 as Input, InputOptionSchema, MultipleSelect, OptionSelect, PasswordInput, PhoneInput, QuerySchema, RadioGroupInput, RangeSlider, Row, SectionSchema, SectionTitle, SliderInput, StockInput, Teletraan1, R as Theme, N as ThemePanel, Toggle, UUIDInput, VectorSigma, XFormSchema, normalizeXForm, parseUuidFormat, primeMatrix, useStepper };
|
|
57752
|
+
export { Accordion, AccordionItem, AvatarInput, ButtonInput, CURRENCIES, CheckboxGroupInput, Codex, CodexControls, CodexItem, Column, ConditionalTrigger, Container, CountrySelect, CreditCardInput, CurrencyInput, DatePicker, DateRangePicker, DateTimePicker, Dropdown, File$1 as File, FileMultiple, FlagIcon, Icon, ImageOutput, Input$1 as Input, InputOptionSchema, MultipleSelect, OptionSelect, PasswordInput, PhoneInput, QuerySchema, RadioGroupInput, RangeSlider, Row, SectionSchema, SectionTitle, SliderInput, StockInput, Teletraan1, R as Theme, N as ThemePanel, Toggle, UUIDInput, VectorSigma, XFormSchema, normalizeXForm, parseUuidFormat, primeMatrix, useStepper };
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import React, { ReactNode } from 'react';
|
|
2
|
+
import { FormikContextType } from 'formik';
|
|
3
|
+
import '../../styles/main.scss';
|
|
4
|
+
export type CountrySelectDesign = 'countryselect' | 'countryselect-material' | 'countryselect-outline' | 'countryselect-neumorphic';
|
|
5
|
+
export interface CountryDropdownProps {
|
|
6
|
+
/**
|
|
7
|
+
* * The required unique identifier for the CountrySelect input field.
|
|
8
|
+
* * @example alias="citizenshipCountries"
|
|
9
|
+
*/
|
|
10
|
+
alias: string;
|
|
11
|
+
/**
|
|
12
|
+
* * The design variation of the CountrySelect input.
|
|
13
|
+
* Default: 'countryselect-outline'
|
|
14
|
+
* Variants: 'countryselect', 'countryselect-outline', 'countryselect-material', 'countryselect-neumorphic'.
|
|
15
|
+
*/
|
|
16
|
+
inputtype?: CountrySelectDesign & {};
|
|
17
|
+
/**
|
|
18
|
+
* * The optional input label or description.
|
|
19
|
+
*/
|
|
20
|
+
inputLabel?: string;
|
|
21
|
+
/**
|
|
22
|
+
* * The required viewport column width for the CountrySelect input field.
|
|
23
|
+
* i.e. 1 - 12
|
|
24
|
+
* * @example
|
|
25
|
+
* width={5}
|
|
26
|
+
*/
|
|
27
|
+
width: number;
|
|
28
|
+
/**
|
|
29
|
+
* * Option to render CountrySelect input field on new row.
|
|
30
|
+
* * @example
|
|
31
|
+
* newRow
|
|
32
|
+
*/
|
|
33
|
+
newRow?: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* * Option to force set the default value for a CountrySelect input field.
|
|
36
|
+
* * @example
|
|
37
|
+
* placeholder="Select a country"
|
|
38
|
+
*/
|
|
39
|
+
placeholder?: string;
|
|
40
|
+
/**
|
|
41
|
+
* * Option to disable edits for CountrySelect input field.
|
|
42
|
+
* * @example
|
|
43
|
+
* readOnly
|
|
44
|
+
*/
|
|
45
|
+
readOnly?: boolean;
|
|
46
|
+
/**
|
|
47
|
+
* * Option to enable a hint for CountrySelect input field.
|
|
48
|
+
* * @example
|
|
49
|
+
* isHinted
|
|
50
|
+
*/
|
|
51
|
+
isHinted?: boolean;
|
|
52
|
+
/**
|
|
53
|
+
* * Option to specify hint text for CountrySelect input field.
|
|
54
|
+
* * @example
|
|
55
|
+
* hintText="This is a hint for a VΣ CountrySelect"
|
|
56
|
+
*/
|
|
57
|
+
hintText?: string;
|
|
58
|
+
/**
|
|
59
|
+
* * Option to specify a hint url reference or resource for CountrySelect input field.
|
|
60
|
+
* * @example
|
|
61
|
+
* hintUrl="https://www.mekaegwim.ca"
|
|
62
|
+
*/
|
|
63
|
+
hintUrl?: string;
|
|
64
|
+
/**
|
|
65
|
+
* * Option to specify the isRequired error text for the CountrySelect input field.
|
|
66
|
+
* * @example
|
|
67
|
+
* errorText="Country selection is required"
|
|
68
|
+
*/
|
|
69
|
+
errorText?: ReactNode | string | null;
|
|
70
|
+
/**
|
|
71
|
+
* * Option to specify the .scss class selector for the CountrySelect input field.
|
|
72
|
+
* * @example
|
|
73
|
+
* className="teletraan-1-countryselect"
|
|
74
|
+
*/
|
|
75
|
+
className?: string;
|
|
76
|
+
/**
|
|
77
|
+
* * Option to inject custom CSS for the CountrySelect input field.
|
|
78
|
+
* * @example
|
|
79
|
+
* style={{ color: "#000000" }}
|
|
80
|
+
*/
|
|
81
|
+
style?: React.CSSProperties;
|
|
82
|
+
/**
|
|
83
|
+
* Optional explicit Formik context. Useful when bypassing duplicate
|
|
84
|
+
* context issues in monorepos or bundled npm packages.
|
|
85
|
+
*/
|
|
86
|
+
formikContext?: FormikContextType<any>;
|
|
87
|
+
/**
|
|
88
|
+
* * Option to render the country flag icon next to the country name.
|
|
89
|
+
* Default: true
|
|
90
|
+
*/
|
|
91
|
+
displayFlag?: boolean;
|
|
92
|
+
/**
|
|
93
|
+
* * Option to allow multiple country selections and return an array of country codes.
|
|
94
|
+
* Default: false
|
|
95
|
+
*/
|
|
96
|
+
multiselect?: boolean;
|
|
97
|
+
/**
|
|
98
|
+
* * Option to enable search bar inside the CountrySelect to filter countries.
|
|
99
|
+
* Default: false
|
|
100
|
+
*/
|
|
101
|
+
enableSearch?: boolean;
|
|
102
|
+
}
|
|
103
|
+
export declare const CountrySelect: ({ inputtype, alias, readOnly, width, inputLabel, placeholder, newRow, isHinted, hintText, hintUrl, errorText, displayFlag, multiselect, enableSearch, style, className, formikContext, ...props }: CountryDropdownProps) => React.JSX.Element | null;
|
|
@@ -98,7 +98,7 @@ export interface xDropDownProps {
|
|
|
98
98
|
*/
|
|
99
99
|
className?: string;
|
|
100
100
|
/**
|
|
101
|
-
* * Option to inject custom CSS the Dropdown input field.
|
|
101
|
+
* * Option to inject custom CSS for the Dropdown input field.
|
|
102
102
|
* * @example
|
|
103
103
|
* style={{ color: "#000000" }}
|
|
104
104
|
*/
|
|
@@ -80,7 +80,7 @@ export interface FileInputProps {
|
|
|
80
80
|
*/
|
|
81
81
|
errorText?: ReactNode | string | null;
|
|
82
82
|
/**
|
|
83
|
-
* * Option to inject custom CSS the File input field.
|
|
83
|
+
* * Option to inject custom CSS for the File input field.
|
|
84
84
|
* * @example
|
|
85
85
|
* style={{ color: "#000000" }}
|
|
86
86
|
*/
|
|
@@ -86,7 +86,7 @@ export interface FileMultipleInputProps {
|
|
|
86
86
|
*/
|
|
87
87
|
className?: string;
|
|
88
88
|
/**
|
|
89
|
-
* * Option to inject custom CSS the FileMultiple input field.
|
|
89
|
+
* * Option to inject custom CSS for the FileMultiple input field.
|
|
90
90
|
* * @example
|
|
91
91
|
* style={{ color: "#000000" }}
|
|
92
92
|
*/
|
package/lib/types/index.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ export * from './components/datepicker/datepicker';
|
|
|
9
9
|
export * from './components/daterangepicker/daterangepicker';
|
|
10
10
|
export * from './components/datetimepicker/datetimepicker';
|
|
11
11
|
export * from './components/dropdown/dropdown';
|
|
12
|
+
export * from './components/dropdown/countrydropdown';
|
|
12
13
|
export * from './components/file/file';
|
|
13
14
|
export * from './components/file/filemultiple';
|
|
14
15
|
export * from './components/icons/icons';
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { XFormType } from 'utils/voltron';
|
|
3
|
+
import { FormikHelpers } from 'formik';
|
|
4
|
+
import { VectorSigma } from 'vectorSigma';
|
|
3
5
|
export type teletraan1Display = 'accordion' | 'codice' | 'codex' | 'dual';
|
|
4
6
|
export interface Teletraan1Props {
|
|
5
7
|
/**
|
|
@@ -49,6 +51,6 @@ export interface Teletraan1Props {
|
|
|
49
51
|
* * @example
|
|
50
52
|
* onFinish={console.log("Teletraan-1 Codex :: onFinish()")}
|
|
51
53
|
*/
|
|
52
|
-
onFinish?: () => void
|
|
54
|
+
onFinish?: (values: any, actions: FormikHelpers<any>, instance: VectorSigma<any>) => void | Promise<any>;
|
|
53
55
|
}
|
|
54
56
|
export declare const Teletraan1: ({ xFormModel, readOnlyMode, displayMode, brandColor, onPrev, onNext, onFinish }: Teletraan1Props) => React.JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -6,6 +6,8 @@ export declare const datePickerInputType: string[];
|
|
|
6
6
|
export declare const dateRangePickerInputType: string[];
|
|
7
7
|
export declare const dateTimePickerInputType: string[];
|
|
8
8
|
export declare const dropdownInputType: string[];
|
|
9
|
+
export declare const countrydropdownInputType: string[];
|
|
10
|
+
export declare const countrymultiselectInputType: string[];
|
|
9
11
|
export declare const fileInputType: string[];
|
|
10
12
|
export declare const fileMultipleInputType: string[];
|
|
11
13
|
export declare const imageOutputType: string[];
|
|
@@ -2,6 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import { XFormType, XFormQuery, SectionSchema } from './utils/voltron';
|
|
3
3
|
import { Teletraan1Props } from './teletraan1';
|
|
4
4
|
import { z } from "zod";
|
|
5
|
+
import { ThemeProps } from '@radix-ui/themes';
|
|
5
6
|
import { FormikHelpers } from 'formik';
|
|
6
7
|
import './styles/main.scss';
|
|
7
8
|
export interface VectorSigmaRenderProps<T extends Record<string, any> = Record<string, any>> extends Omit<Teletraan1Props, 'xFormModel'> {
|
|
@@ -20,6 +21,15 @@ export interface VectorSigmaRenderProps<T extends Record<string, any> = Record<s
|
|
|
20
21
|
}}
|
|
21
22
|
*/
|
|
22
23
|
onSubmit?: (values: T, actions: FormikHelpers<T>, instance: VectorSigma<T>) => void | Promise<any>;
|
|
24
|
+
/**
|
|
25
|
+
* * Optional Radix UI Theme configuration.
|
|
26
|
+
* Enables developer theming extensibility to align xForm appearance with an extant application design system.
|
|
27
|
+
*
|
|
28
|
+
* https://www.radix-ui.com/themes/docs/components/theme
|
|
29
|
+
* @example
|
|
30
|
+
* theme={{ appearance: 'dark', accentColor: 'ruby', radius: 'large' }}
|
|
31
|
+
*/
|
|
32
|
+
theme?: Omit<ThemeProps, 'children'>;
|
|
23
33
|
}
|
|
24
34
|
export declare class VectorSigma<T extends Record<string, any> = Record<string, any>> {
|
|
25
35
|
isValid: boolean;
|
package/package.json
CHANGED
|
File without changes
|
|
File without changes
|