reactive-bulma 2.10.0 → 2.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/dist/cjs/index.js +159 -38
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/components/molecules/InputControl/index.d.ts +4 -0
- package/dist/cjs/types/components/molecules/PanelBlock/index.d.ts +4 -0
- package/dist/cjs/types/components/molecules/PanelTabs/index.d.ts +4 -0
- package/dist/cjs/types/components/molecules/index.d.ts +3 -0
- package/dist/cjs/types/components/organisms/FormField/index.d.ts +4 -0
- package/dist/cjs/types/components/organisms/Panel/index.d.ts +4 -0
- package/dist/cjs/types/components/organisms/index.d.ts +2 -0
- package/dist/cjs/types/functions/generators.d.ts +4 -0
- package/dist/cjs/types/functions/parsers.d.ts +0 -8
- package/dist/cjs/types/functions/tests/generators.test.d.ts +1 -0
- package/dist/cjs/types/index.d.ts +1 -0
- package/dist/cjs/types/interfaces/atomProps.d.ts +22 -16
- package/dist/cjs/types/interfaces/commonProps.d.ts +1 -1
- package/dist/cjs/types/interfaces/functionProps.d.ts +5 -0
- package/dist/cjs/types/interfaces/moleculeProps.d.ts +48 -9
- package/dist/cjs/types/interfaces/organismProps.d.ts +29 -0
- package/dist/cjs/types/types/domTypes.d.ts +3 -2
- package/dist/cjs/types/types/styleTypes.d.ts +5 -3
- package/dist/esm/index.js +155 -39
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/components/molecules/InputControl/index.d.ts +4 -0
- package/dist/esm/types/components/molecules/PanelBlock/index.d.ts +4 -0
- package/dist/esm/types/components/molecules/PanelTabs/index.d.ts +4 -0
- package/dist/esm/types/components/molecules/index.d.ts +3 -0
- package/dist/esm/types/components/organisms/FormField/index.d.ts +4 -0
- package/dist/esm/types/components/organisms/Panel/index.d.ts +4 -0
- package/dist/esm/types/components/organisms/index.d.ts +2 -0
- package/dist/esm/types/functions/generators.d.ts +4 -0
- package/dist/esm/types/functions/parsers.d.ts +0 -8
- package/dist/esm/types/functions/tests/generators.test.d.ts +1 -0
- package/dist/esm/types/index.d.ts +1 -0
- package/dist/esm/types/interfaces/atomProps.d.ts +22 -16
- package/dist/esm/types/interfaces/commonProps.d.ts +1 -1
- package/dist/esm/types/interfaces/functionProps.d.ts +5 -0
- package/dist/esm/types/interfaces/moleculeProps.d.ts +48 -9
- package/dist/esm/types/interfaces/organismProps.d.ts +29 -0
- package/dist/esm/types/types/domTypes.d.ts +3 -2
- package/dist/esm/types/types/styleTypes.d.ts +5 -3
- package/dist/index.d.ts +110 -26
- package/package.json +11 -11
package/dist/esm/index.js
CHANGED
@@ -2859,13 +2859,6 @@ const parseTestId = (config) => {
|
|
2859
2859
|
}
|
2860
2860
|
return `test-${config.tag}${fixedClassString.replace(/ /gm, (_a = config.separator) !== null && _a !== void 0 ? _a : '')}`;
|
2861
2861
|
};
|
2862
|
-
const parseKey = (max = 5000, min = 1) => {
|
2863
|
-
max = Math.floor(max);
|
2864
|
-
min = Math.ceil(min);
|
2865
|
-
const secureRandomNumbers = new Uint32Array(1);
|
2866
|
-
window.crypto.getRandomValues(secureRandomNumbers);
|
2867
|
-
return Math.floor(secureRandomNumbers[0] * (max - min) + min).toString();
|
2868
|
-
};
|
2869
2862
|
|
2870
2863
|
const Button = ({ testId = null, cssClasses = null, style = null, type = 'button', text = null, isDisabled = false, color = null, isLightColor = false, isInvertedColor = false, isOutlined = false, isRounded = false, isLoading = false, isStatic = false, isSelected = false, size = null, onClick = null }) => {
|
2871
2864
|
const buttonClasses = parseClasses([
|
@@ -2985,11 +2978,12 @@ const generateIconContainer = (icon, color) => {
|
|
2985
2978
|
});
|
2986
2979
|
return (React.createElement("span", { "data-testid": containerTestId, className: containerClasses }, icon));
|
2987
2980
|
};
|
2988
|
-
const Icon = ({ testId = null, containerTestId = null, cssClasses = null, containerCssClasses = null, style = null, containerStyle = null, iconLabel, text = null, color = null, size = null, colorMode = null, isSpinning = false }) => {
|
2981
|
+
const Icon = ({ testId = null, containerTestId = null, cssClasses = null, containerCssClasses = null, style = null, containerStyle = null, iconLabel, text = null, color = null, size = null, colorMode = null, isSpinning = false, position = null }) => {
|
2989
2982
|
const iconContainerClasses = parseClasses([
|
2990
2983
|
'icon',
|
2991
2984
|
color,
|
2992
2985
|
size,
|
2986
|
+
position,
|
2993
2987
|
containerCssClasses
|
2994
2988
|
]);
|
2995
2989
|
const iconClasses = parseClasses([
|
@@ -3022,7 +3016,7 @@ const Icon = ({ testId = null, containerTestId = null, cssClasses = null, contai
|
|
3022
3016
|
return text ? generateIconContainer(iconComponent, color) : iconComponent;
|
3023
3017
|
};
|
3024
3018
|
|
3025
|
-
const Input = ({ testId = null, cssClasses = null, style = null, type, text = null, isDisabled = false, isReadonly = false, color = null, size = null, isRounded = null, isHovered = null, isFocused = null, onClick = null, onChange = null }) => {
|
3019
|
+
const Input = ({ testId = null, cssClasses = null, style = null, type, text = null, placeholder = null, isDisabled = false, isReadonly = false, color = null, size = null, isRounded = null, isHovered = null, isFocused = null, onClick = null, onChange = null }) => {
|
3026
3020
|
const inputClasses = parseClasses([
|
3027
3021
|
'input',
|
3028
3022
|
color,
|
@@ -3036,7 +3030,7 @@ const Input = ({ testId = null, cssClasses = null, style = null, type, text = nu
|
|
3036
3030
|
tag: 'input',
|
3037
3031
|
parsedClasses: inputClasses
|
3038
3032
|
});
|
3039
|
-
return (React.createElement("input", { "data-testid": inputTestId, type: type, defaultValue: text !== null && text !== void 0 ? text : undefined, disabled: isDisabled, readOnly: isReadonly, className: inputClasses, style: style !== null && style !== void 0 ? style : undefined, onClick: onClick !== null && onClick !== void 0 ? onClick : undefined, onChange: onChange !== null && onChange !== void 0 ? onChange : undefined }));
|
3033
|
+
return (React.createElement("input", { "data-testid": inputTestId, type: type, placeholder: placeholder !== null && placeholder !== void 0 ? placeholder : undefined, defaultValue: text !== null && text !== void 0 ? text : undefined, disabled: isDisabled, readOnly: isReadonly, className: inputClasses, style: style !== null && style !== void 0 ? style : undefined, onClick: onClick !== null && onClick !== void 0 ? onClick : undefined, onChange: onChange !== null && onChange !== void 0 ? onChange : undefined }));
|
3040
3034
|
};
|
3041
3035
|
|
3042
3036
|
const TextArea = ({ testId = null, cssClasses = null, style = null, text = null, cols = null, rows = null, isDisabled = false, isReadonly = false, isFixedSize = false, color = null, size = null, isHovered = null, isFocused = null, onClick = null, onChange = null }) => {
|
@@ -3156,7 +3150,7 @@ const CheckBox = ({ testId = null, containerTestId = null, cssClasses = null, co
|
|
3156
3150
|
content));
|
3157
3151
|
};
|
3158
3152
|
|
3159
|
-
//
|
3153
|
+
// FUNCTIONS
|
3160
3154
|
const renderRadioButton = (config, index) => {
|
3161
3155
|
const { testId = null, label, name, isChecked = false, isDisabled = false, style = null, onChange } = config;
|
3162
3156
|
const radioButtonTestId = testId !== null && testId !== void 0 ? testId : `test-radio-button-item-${index}`;
|
@@ -3249,7 +3243,7 @@ const MenuItem = ({ testId = null, cssClasses = null, style = null, text, isActi
|
|
3249
3243
|
return (React.createElement("a", { "data-testid": menuItemTestId, className: menuItemClasses, style: style !== null && style !== void 0 ? style : undefined, "aria-hidden": 'true', onClick: onClick !== null && onClick !== void 0 ? onClick : undefined }, text));
|
3250
3244
|
};
|
3251
3245
|
|
3252
|
-
const Image = ({ testId = null, containerTestId = null, cssClasses = null, containerCssClasses = null, style = null, containerStyle = null, src, fixedSize = 'is-1by1', isRounded = false }) => {
|
3246
|
+
const Image = ({ testId = null, containerTestId = null, cssClasses = null, containerCssClasses = null, style = null, containerStyle = null, src, alt = null, fixedSize = 'is-1by1', isRounded = false }) => {
|
3253
3247
|
const imageContainerClasses = parseClasses([
|
3254
3248
|
'image',
|
3255
3249
|
fixedSize,
|
@@ -3262,7 +3256,7 @@ const Image = ({ testId = null, containerTestId = null, cssClasses = null, conta
|
|
3262
3256
|
const imageContainerTestId = containerTestId !== null && containerTestId !== void 0 ? containerTestId : parseTestId({ tag: 'image', parsedClasses: imageContainerClasses });
|
3263
3257
|
const imageTestId = testId !== null && testId !== void 0 ? testId : `${imageContainerTestId}-img`;
|
3264
3258
|
return (React.createElement("figure", { "data-testid": imageContainerTestId, className: imageContainerClasses, style: containerStyle !== null && containerStyle !== void 0 ? containerStyle : undefined },
|
3265
|
-
React.createElement("img", { "data-testid": imageTestId, className: imageClasses, style: style !== null && style !== void 0 ? style : undefined, src: src })));
|
3259
|
+
React.createElement("img", { "data-testid": imageTestId, className: imageClasses, style: style !== null && style !== void 0 ? style : undefined, src: src, alt: alt !== null && alt !== void 0 ? alt : undefined })));
|
3266
3260
|
};
|
3267
3261
|
|
3268
3262
|
const PaginationItem = ({ testId = null, cssClasses = null, style = null, text, labelText = 'Page', currentLabelText = 'Go to page', isSelected = null, onClick = null }) => {
|
@@ -3280,20 +3274,22 @@ const PaginationItem = ({ testId = null, cssClasses = null, style = null, text,
|
|
3280
3274
|
};
|
3281
3275
|
|
3282
3276
|
const TabItem = ({ testId = null, containerTestId = null, cssClasses = null, containerCssClasses = null, style = null, containerStyle = null, icon = null, text, onClick = null }) => {
|
3283
|
-
const tabItemContainerClasses = parseClasses([
|
3284
|
-
'tabItem-container',
|
3285
|
-
null,
|
3286
|
-
containerCssClasses
|
3287
|
-
]);
|
3288
|
-
const tabItemClasses = parseClasses(['tabItem', cssClasses]);
|
3289
3277
|
const tabItemContainerTestId = containerTestId !== null && containerTestId !== void 0 ? containerTestId : parseTestId({
|
3290
|
-
tag: '
|
3291
|
-
parsedClasses:
|
3278
|
+
tag: 'tab-item-container',
|
3279
|
+
parsedClasses: containerCssClasses !== null && containerCssClasses !== void 0 ? containerCssClasses : ''
|
3292
3280
|
});
|
3293
|
-
const tabItemTestId = testId !== null && testId !== void 0 ? testId : parseTestId({ tag: '
|
3294
|
-
return (React.createElement("a", { "data-testid": tabItemContainerTestId, className:
|
3281
|
+
const tabItemTestId = testId !== null && testId !== void 0 ? testId : parseTestId({ tag: 'tab-item', parsedClasses: cssClasses !== null && cssClasses !== void 0 ? cssClasses : '' });
|
3282
|
+
return (React.createElement("a", { "data-testid": tabItemContainerTestId, className: containerCssClasses !== null && containerCssClasses !== void 0 ? containerCssClasses : undefined, style: containerStyle !== null && containerStyle !== void 0 ? containerStyle : undefined, "aria-hidden": 'true', onClick: onClick !== null && onClick !== void 0 ? onClick : undefined },
|
3295
3283
|
icon ? React.createElement(Icon, Object.assign({}, icon)) : null,
|
3296
|
-
React.createElement("span", { "data-testid": tabItemTestId, className:
|
3284
|
+
React.createElement("span", { "data-testid": tabItemTestId, className: cssClasses !== null && cssClasses !== void 0 ? cssClasses : undefined, style: style !== null && style !== void 0 ? style : undefined }, text)));
|
3285
|
+
};
|
3286
|
+
|
3287
|
+
const generateKey = (max = 5000, min = 1) => {
|
3288
|
+
max = Math.floor(max);
|
3289
|
+
min = Math.ceil(min);
|
3290
|
+
const secureRandomNumbers = new Uint32Array(1);
|
3291
|
+
window.crypto.getRandomValues(secureRandomNumbers);
|
3292
|
+
return Math.floor(secureRandomNumbers[0] * (max - min) + min).toString();
|
3297
3293
|
};
|
3298
3294
|
|
3299
3295
|
const ButtonGroup = ({ testId = null, cssClasses = null, style = null, buttonList, isAttached = false, position = 'left' }) => {
|
@@ -3322,7 +3318,7 @@ const ButtonGroup = ({ testId = null, cssClasses = null, style = null, buttonLis
|
|
3322
3318
|
const shouldApplyColor = (hasSelectedButton && currentButtonItem.isSelected) ||
|
3323
3319
|
!hasSelectedButton;
|
3324
3320
|
const buttonConfig = Object.assign(Object.assign({}, currentButtonItem), { color: shouldApplyColor ? currentButtonItem.color : undefined });
|
3325
|
-
return (React.createElement(Button, Object.assign({ key: `button-group-item-${
|
3321
|
+
return (React.createElement(Button, Object.assign({ key: `button-group-item-${generateKey()}` }, buttonConfig)));
|
3326
3322
|
})));
|
3327
3323
|
};
|
3328
3324
|
|
@@ -3350,7 +3346,7 @@ const ColumnGroup = ({ testId = null, cssClasses = null, style = null, listOfCol
|
|
3350
3346
|
tag: 'columns',
|
3351
3347
|
parsedClasses: columnGroupClasses
|
3352
3348
|
});
|
3353
|
-
return (React.createElement("section", { "data-testid": columnGroupTestId, className: columnGroupClasses, style: style !== null && style !== void 0 ? style : undefined }, listOfColumns.map(columnItemConfig => (React.createElement(Column, Object.assign({ key: `column-group-item-${
|
3349
|
+
return (React.createElement("section", { "data-testid": columnGroupTestId, className: columnGroupClasses, style: style !== null && style !== void 0 ? style : undefined }, listOfColumns.map(columnItemConfig => (React.createElement(Column, Object.assign({ key: `column-group-item-${generateKey()}` }, columnItemConfig))))));
|
3354
3350
|
};
|
3355
3351
|
|
3356
3352
|
const Notification = ({ testId = null, cssClasses = null, style = null, children = null, deleteButton = null, color = null, isLightColor = null }) => {
|
@@ -3392,14 +3388,14 @@ const Breadcrumbs = ({ testId = 'breadcrumbs', containerTestId = null, cssClasse
|
|
3392
3388
|
]
|
3393
3389
|
});
|
3394
3390
|
return (React.createElement("nav", { "data-testid": breadcrumbsContainerTestId, className: breadcrumbsContainerClasses, style: containerStyle !== null && containerStyle !== void 0 ? containerStyle : undefined },
|
3395
|
-
React.createElement("ul", { "data-testid": testId, className: cssClasses !== null && cssClasses !== void 0 ? cssClasses : undefined, style: style !== null && style !== void 0 ? style : undefined }, items.map(itemConfig => (React.createElement(BreadcrumbItem, Object.assign({ key: `breadcrumb-item-${
|
3391
|
+
React.createElement("ul", { "data-testid": testId, className: cssClasses !== null && cssClasses !== void 0 ? cssClasses : undefined, style: style !== null && style !== void 0 ? style : undefined }, items.map(itemConfig => (React.createElement(BreadcrumbItem, Object.assign({ key: `breadcrumb-item-${generateKey()}` }, itemConfig)))))));
|
3396
3392
|
};
|
3397
3393
|
|
3398
3394
|
const renderDropdownMenu = (items) => (React.createElement("section", { className: 'dropdown-content' }, items.map((dropdownItemConfig, i) => {
|
3399
3395
|
const isFirstItemInMenu = items.length > 1 && i === 0;
|
3400
|
-
return isFirstItemInMenu ? (React.createElement(DropdownItem, Object.assign({ key: `dropdown-item-${
|
3401
|
-
React.createElement(DropdownItem, { key: `dropdown-item-${
|
3402
|
-
React.createElement(DropdownItem, Object.assign({ key: `dropdown-item-${
|
3396
|
+
return isFirstItemInMenu ? (React.createElement(DropdownItem, Object.assign({ key: `dropdown-item-${generateKey()}` }, dropdownItemConfig))) : (React.createElement("section", { key: `dropdown-item-${generateKey()}-section` },
|
3397
|
+
React.createElement(DropdownItem, { key: `dropdown-item-${generateKey()}-divider`, type: 'divider', itemText: 'divider' }),
|
3398
|
+
React.createElement(DropdownItem, Object.assign({ key: `dropdown-item-${generateKey()}` }, dropdownItemConfig))));
|
3403
3399
|
})));
|
3404
3400
|
const Dropdown = ({ testId = null, cssClasses = null, style = null, inputText, dropdownPointer = 'dropdown-menu', listOfItems }) => {
|
3405
3401
|
const [isMenuActive, setIsMenuActive] = reactExports.useState(false);
|
@@ -3431,12 +3427,12 @@ const MenuList = ({ testId = null, cssClasses = null, style = null, itemList })
|
|
3431
3427
|
const menuListTestId = testId !== null && testId !== void 0 ? testId : parseTestId({ tag: 'menu-list', parsedClasses: menuListClasses });
|
3432
3428
|
return (React.createElement("ul", { "data-testid": menuListTestId, className: menuListClasses, style: style !== null && style !== void 0 ? style : undefined }, itemList.map(item => {
|
3433
3429
|
if ('subListTitle' in item) {
|
3434
|
-
return (React.createElement("li", { key: `sub-list-menu-item-${
|
3430
|
+
return (React.createElement("li", { key: `sub-list-menu-item-${generateKey()}` },
|
3435
3431
|
React.createElement(MenuItem, Object.assign({}, item.subListTitle)),
|
3436
|
-
React.createElement("ul", null, item.subItems.map(subItem => (React.createElement(MenuItem, Object.assign({ key: `sub-list-menu-sub-item-${
|
3432
|
+
React.createElement("ul", null, item.subItems.map(subItem => (React.createElement(MenuItem, Object.assign({ key: `sub-list-menu-sub-item-${generateKey()}` }, subItem)))))));
|
3437
3433
|
}
|
3438
3434
|
else {
|
3439
|
-
return (React.createElement(MenuItem, Object.assign({ key: `sub-list-item-${
|
3435
|
+
return (React.createElement(MenuItem, Object.assign({ key: `sub-list-item-${generateKey()}` }, item)));
|
3440
3436
|
}
|
3441
3437
|
})));
|
3442
3438
|
};
|
@@ -3444,9 +3440,9 @@ const MenuList = ({ testId = null, cssClasses = null, style = null, itemList })
|
|
3444
3440
|
const Menu = ({ testId = null, cssClasses = null, style = null, menuSections }) => {
|
3445
3441
|
const menuClasses = parseClasses(['menu', cssClasses]);
|
3446
3442
|
const menuTestId = testId !== null && testId !== void 0 ? testId : parseTestId({ tag: 'menu', parsedClasses: menuClasses });
|
3447
|
-
return (React.createElement("aside", { "data-testid": menuTestId, className: menuClasses, style: style !== null && style !== void 0 ? style : undefined }, menuSections.map(section => (React.createElement(React.Fragment, { key: `section-${
|
3448
|
-
React.createElement("p", { key: `section-label-${
|
3449
|
-
React.createElement(MenuList, { key: `section-menu-list-${
|
3443
|
+
return (React.createElement("aside", { "data-testid": menuTestId, className: menuClasses, style: style !== null && style !== void 0 ? style : undefined }, menuSections.map(section => (React.createElement(React.Fragment, { key: `section-${generateKey()}` },
|
3444
|
+
React.createElement("p", { key: `section-label-${generateKey()}`, className: 'menu-label' }, section.label),
|
3445
|
+
React.createElement(MenuList, { key: `section-menu-list-${generateKey()}`, itemList: section.itemList }))))));
|
3450
3446
|
};
|
3451
3447
|
|
3452
3448
|
const renderEllipsis = (hasEllipsis) => hasEllipsis ? (React.createElement("li", null,
|
@@ -3471,7 +3467,7 @@ const renderPages = (pages, hasEllipsis, ellipsisItems) => {
|
|
3471
3467
|
}
|
3472
3468
|
if (!hasEllipsis ||
|
3473
3469
|
(pageIndex > ellipsisItems && pageIndex < lastEllipsisItemIndex)) {
|
3474
|
-
return (React.createElement(PaginationItem, Object.assign({ key: `pagination-item-${
|
3470
|
+
return (React.createElement(PaginationItem, Object.assign({ key: `pagination-item-${generateKey()}` }, pageItem)));
|
3475
3471
|
}
|
3476
3472
|
if (pageIndex === --length) {
|
3477
3473
|
return (React.createElement(React.Fragment, { key: `last-pagination-item` },
|
@@ -3543,8 +3539,128 @@ const Tabs = ({ testId = null, cssClasses = null, style = null, tabs, alignment
|
|
3543
3539
|
]);
|
3544
3540
|
const tabsTestId = testId !== null && testId !== void 0 ? testId : parseTestId({ tag: 'tabs', parsedClasses: tabsClasses });
|
3545
3541
|
return (React.createElement("section", { "data-testid": tabsTestId, className: tabsClasses, style: style !== null && style !== void 0 ? style : undefined },
|
3546
|
-
React.createElement("ul", null, tabs.map(tabConfig => (React.createElement("li", { key: `tab-item-${
|
3542
|
+
React.createElement("ul", null, tabs.map(tabConfig => (React.createElement("li", { key: `tab-item-${generateKey()}`, className: tabConfig.isActive ? 'is-active' : undefined }, React.createElement(TabItem, Object.assign({}, tabConfig))))))));
|
3543
|
+
};
|
3544
|
+
|
3545
|
+
const renderIcon = (iconConfig) => iconConfig ? React.createElement(Icon, Object.assign({}, iconConfig)) : null;
|
3546
|
+
const InputControl = ({ testId = null, cssClasses = null, style = null, inputConfig, leftIcon = null, rightIcon = null, size = null, isLoading = null, isExpanded = null }) => {
|
3547
|
+
const inputControlClasses = parseClasses([
|
3548
|
+
'control',
|
3549
|
+
size,
|
3550
|
+
leftIcon ? 'has-icons-left' : null,
|
3551
|
+
rightIcon ? 'has-icons-right' : null,
|
3552
|
+
isLoading ? 'is-loading' : null,
|
3553
|
+
isExpanded ? 'is-expanded' : null,
|
3554
|
+
cssClasses
|
3555
|
+
]);
|
3556
|
+
const inputControlTestId = testId !== null && testId !== void 0 ? testId : parseTestId({
|
3557
|
+
tag: 'control',
|
3558
|
+
parsedClasses: inputControlClasses,
|
3559
|
+
rules: [
|
3560
|
+
{
|
3561
|
+
regExp: /has-|is-/gm,
|
3562
|
+
replacer: '-'
|
3563
|
+
},
|
3564
|
+
{
|
3565
|
+
regExp: /control/gm,
|
3566
|
+
replacer: ''
|
3567
|
+
}
|
3568
|
+
]
|
3569
|
+
});
|
3570
|
+
const reflectedInputConfig = Object.assign(Object.assign({}, inputConfig), { size: size !== null && size !== void 0 ? size : inputConfig === null || inputConfig === void 0 ? void 0 : inputConfig.size });
|
3571
|
+
return (React.createElement("section", { "data-testid": inputControlTestId, className: inputControlClasses, style: style !== null && style !== void 0 ? style : undefined },
|
3572
|
+
React.createElement(Input, Object.assign({}, reflectedInputConfig)),
|
3573
|
+
renderIcon(leftIcon ? Object.assign(Object.assign({}, leftIcon), { position: 'is-left' }) : undefined),
|
3574
|
+
renderIcon(rightIcon ? Object.assign(Object.assign({}, rightIcon), { position: 'is-right' }) : undefined)));
|
3575
|
+
};
|
3576
|
+
|
3577
|
+
const convertConfigToComponent = ({ type, props }, testId, cssClasses, style, blockText) => {
|
3578
|
+
switch (type) {
|
3579
|
+
case 'icon': {
|
3580
|
+
const panelBlockIconClasses = parseClasses(['panel-icon', cssClasses]);
|
3581
|
+
const panelBlockIconTestId = testId !== null && testId !== void 0 ? testId : parseTestId({ tag: 'panel-icon', parsedClasses: panelBlockIconClasses });
|
3582
|
+
return (React.createElement(React.Fragment, null,
|
3583
|
+
React.createElement("span", { "data-testid": panelBlockIconTestId, className: panelBlockIconClasses, style: style !== null && style !== void 0 ? style : undefined },
|
3584
|
+
React.createElement(Icon, Object.assign({}, props))),
|
3585
|
+
blockText));
|
3586
|
+
}
|
3587
|
+
case 'control':
|
3588
|
+
return React.createElement(InputControl, Object.assign({}, props));
|
3589
|
+
case 'button':
|
3590
|
+
return React.createElement(Button, Object.assign({}, props));
|
3591
|
+
}
|
3592
|
+
};
|
3593
|
+
const PanelBlock = ({ testId = null, containerTestId = null, cssClasses = null, containerCssClasses = null, style = null, containerStyle = null, config, blockText = null, isActive = false, onClick }) => {
|
3594
|
+
const panelBlockLinkClasses = parseClasses([
|
3595
|
+
'panel-block',
|
3596
|
+
isActive ? 'is-active' : null,
|
3597
|
+
containerCssClasses
|
3598
|
+
]);
|
3599
|
+
const panelBlockLinkTestId = containerTestId !== null && containerTestId !== void 0 ? containerTestId : parseTestId({ tag: 'panel-block', parsedClasses: panelBlockLinkClasses });
|
3600
|
+
return (React.createElement("a", { "data-testid": panelBlockLinkTestId, className: panelBlockLinkClasses, style: containerStyle !== null && containerStyle !== void 0 ? containerStyle : undefined, "aria-hidden": 'true', onClick: onClick !== null && onClick !== void 0 ? onClick : undefined }, convertConfigToComponent(config, testId, cssClasses, style, blockText)));
|
3601
|
+
};
|
3602
|
+
|
3603
|
+
const PanelTabs = ({ testId = null, cssClasses = null, style = null, tabList }) => {
|
3604
|
+
const panelTabsClasses = parseClasses(['panel-tabs', cssClasses]);
|
3605
|
+
const panelTabsTestId = testId !== null && testId !== void 0 ? testId : parseTestId({ tag: 'panel-tabs', parsedClasses: panelTabsClasses });
|
3606
|
+
return (React.createElement("section", { "data-testid": panelTabsTestId, className: panelTabsClasses, style: style !== null && style !== void 0 ? style : undefined }, tabList.map(tabItem => {
|
3607
|
+
var _a;
|
3608
|
+
return (React.createElement("a", { key: `tab-item-${generateKey()}`, className: tabItem.isActive ? 'is-active' : undefined, "aria-hidden": 'true', onClick: (_a = tabItem.onClick) !== null && _a !== void 0 ? _a : undefined }, tabItem.text));
|
3609
|
+
})));
|
3610
|
+
};
|
3611
|
+
|
3612
|
+
const renderFieldLabel = (labelText) => labelText ? (React.createElement("label", { "data-testid": 'test-form-field-label', className: 'label' }, labelText)) : null;
|
3613
|
+
const renderFieldBody = (inputControlConfig, isGrouped) => {
|
3614
|
+
if (isGrouped) {
|
3615
|
+
return Array.isArray(inputControlConfig) ? (inputControlConfig.map((_singleConfig, i) => (React.createElement(InputControl, Object.assign({ key: `grouped-input-control-${generateKey()}`, testId: `test-grouped-input-control-${i}` }, _singleConfig))))) : (React.createElement(InputControl, Object.assign({}, inputControlConfig)));
|
3616
|
+
}
|
3617
|
+
else {
|
3618
|
+
return Array.isArray(inputControlConfig) ? (React.createElement(InputControl, Object.assign({}, inputControlConfig[0]))) : (React.createElement(InputControl, Object.assign({}, inputControlConfig)));
|
3619
|
+
}
|
3620
|
+
};
|
3621
|
+
const renderFieldHelper = (helperConfig) => {
|
3622
|
+
if (!helperConfig)
|
3623
|
+
return null;
|
3624
|
+
const fieldHelperClasses = parseClasses(['help', helperConfig.color]);
|
3625
|
+
const fieldHelperTestId = parseTestId({
|
3626
|
+
tag: 'form-field-help',
|
3627
|
+
parsedClasses: fieldHelperClasses,
|
3628
|
+
rules: [{ regExp: /help|is/gm, replacer: '' }]
|
3629
|
+
});
|
3630
|
+
return (React.createElement("p", { "data-testid": fieldHelperTestId, className: fieldHelperClasses }, helperConfig.text));
|
3631
|
+
};
|
3632
|
+
const FormField = ({ testId = null, cssClasses = null, style = null, labelText = null, inputControlConfig, helperConfig = null, isHorizontal = false, isGrouped = false }) => {
|
3633
|
+
var _a;
|
3634
|
+
const formFieldClasses = parseClasses([
|
3635
|
+
'field',
|
3636
|
+
isHorizontal ? 'is-horizontal' : null,
|
3637
|
+
isGrouped ? 'is-grouped' : null,
|
3638
|
+
cssClasses
|
3639
|
+
]);
|
3640
|
+
const formFieldTestId = testId !== null && testId !== void 0 ? testId : parseTestId({ tag: 'field', parsedClasses: formFieldClasses });
|
3641
|
+
if (!isGrouped &&
|
3642
|
+
((_a = inputControlConfig === null || inputControlConfig === void 0 ? void 0 : inputControlConfig.inputConfig) === null || _a === void 0 ? void 0 : _a.color) &&
|
3643
|
+
helperConfig) {
|
3644
|
+
helperConfig = Object.assign(Object.assign({}, helperConfig), { color: inputControlConfig.inputConfig.color });
|
3645
|
+
}
|
3646
|
+
return (React.createElement("section", { "data-testid": formFieldTestId, className: formFieldClasses, style: style !== null && style !== void 0 ? style : undefined },
|
3647
|
+
isHorizontal ? (React.createElement("section", { className: 'field-label' }, renderFieldLabel(labelText))) : (renderFieldLabel(labelText)),
|
3648
|
+
isHorizontal ? (React.createElement("section", { className: 'field-body' },
|
3649
|
+
renderFieldBody(inputControlConfig, isGrouped),
|
3650
|
+
renderFieldHelper(helperConfig))) : (React.createElement(React.Fragment, null,
|
3651
|
+
renderFieldBody(inputControlConfig, isGrouped),
|
3652
|
+
renderFieldHelper(helperConfig)))));
|
3653
|
+
};
|
3654
|
+
|
3655
|
+
const generateHeader = (headerText) => (React.createElement("p", { className: 'panel-heading' }, headerText));
|
3656
|
+
const Panel = ({ testId = null, cssClasses = null, style = null, headerText, panelTabs = null, blockList, color = null }) => {
|
3657
|
+
const panelClasses = parseClasses(['panel', color, cssClasses]);
|
3658
|
+
const panelTestId = testId !== null && testId !== void 0 ? testId : parseTestId({ tag: 'panel', parsedClasses: panelClasses });
|
3659
|
+
return (React.createElement("article", { "data-testid": panelTestId, className: panelClasses, style: style !== null && style !== void 0 ? style : undefined },
|
3660
|
+
generateHeader(headerText),
|
3661
|
+
panelTabs ? React.createElement(PanelTabs, Object.assign({}, panelTabs)) : null,
|
3662
|
+
blockList.map(blockConfig => (React.createElement(PanelBlock, Object.assign({ key: `panel-block-item-${generateKey()}` }, blockConfig))))));
|
3547
3663
|
};
|
3548
3664
|
|
3549
|
-
export { Block, Box, BreadcrumbItem, Breadcrumbs, Button, ButtonGroup, CheckBox as Checkbox, Column, ColumnGroup, Delete, Dropdown, DropdownItem, DropdownTrigger, File, Icon, Image, Input, Menu, MenuItem, MenuList, Message, Modal, Notification, Pagination, PaginationItem, ProgressBar, RadioButton, Select, TabItem, Tabs, Tag, TextArea, Title };
|
3665
|
+
export { Block, Box, BreadcrumbItem, Breadcrumbs, Button, ButtonGroup, CheckBox as Checkbox, Column, ColumnGroup, Delete, Dropdown, DropdownItem, DropdownTrigger, File, FormField, Icon, Image, Input, InputControl, Menu, MenuItem, MenuList, Message, Modal, Notification, Pagination, PaginationItem, Panel, PanelBlock, PanelTabs, ProgressBar, RadioButton, Select, TabItem, Tabs, Tag, TextArea, Title };
|
3550
3666
|
//# sourceMappingURL=index.js.map
|