@devtron-labs/devtron-fe-common-lib 0.0.42-beta-6 → 0.0.42-beta-7

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.
Files changed (60) hide show
  1. package/dist/Common/Helper.d.ts +1 -13
  2. package/dist/Common/Types.d.ts +1 -0
  3. package/dist/Common/index.d.ts +0 -1
  4. package/dist/index.js +19595 -22330
  5. package/package.json +1 -4
  6. package/src/Common/Helper.tsx +6 -28
  7. package/src/Common/Types.ts +1 -0
  8. package/src/Common/index.ts +0 -1
  9. package/dist/Common/RJSF/Form.d.ts +0 -4
  10. package/dist/Common/RJSF/common/FieldRow.d.ts +0 -6
  11. package/dist/Common/RJSF/common/types.d.ts +0 -8
  12. package/dist/Common/RJSF/config.d.ts +0 -4
  13. package/dist/Common/RJSF/constants.d.ts +0 -7
  14. package/dist/Common/RJSF/index.d.ts +0 -3
  15. package/dist/Common/RJSF/templates/ArrayFieldItemTemplate.d.ts +0 -3
  16. package/dist/Common/RJSF/templates/ArrayFieldTemplate.d.ts +0 -3
  17. package/dist/Common/RJSF/templates/BaseInput.d.ts +0 -3
  18. package/dist/Common/RJSF/templates/ButtonTemplates/AddButton.d.ts +0 -3
  19. package/dist/Common/RJSF/templates/ButtonTemplates/RemoveButton.d.ts +0 -3
  20. package/dist/Common/RJSF/templates/ButtonTemplates/SubmitButton.d.ts +0 -3
  21. package/dist/Common/RJSF/templates/ButtonTemplates/index.d.ts +0 -3
  22. package/dist/Common/RJSF/templates/Description.d.ts +0 -3
  23. package/dist/Common/RJSF/templates/Field.d.ts +0 -3
  24. package/dist/Common/RJSF/templates/FieldErrorTemplate.d.ts +0 -3
  25. package/dist/Common/RJSF/templates/ObjectFieldTemplate.d.ts +0 -3
  26. package/dist/Common/RJSF/templates/TitleField.d.ts +0 -3
  27. package/dist/Common/RJSF/templates/WrapIfAdditionalTemplate.d.ts +0 -3
  28. package/dist/Common/RJSF/templates/index.d.ts +0 -10
  29. package/dist/Common/RJSF/types.d.ts +0 -3
  30. package/dist/Common/RJSF/utils.d.ts +0 -26
  31. package/dist/Common/RJSF/widgets/Checkbox.d.ts +0 -3
  32. package/dist/Common/RJSF/widgets/Select.d.ts +0 -3
  33. package/dist/Common/RJSF/widgets/index.d.ts +0 -2
  34. package/src/Assets/Icon/ic-chevron-down.svg +0 -5
  35. package/src/Common/RJSF/Form.tsx +0 -29
  36. package/src/Common/RJSF/common/FieldRow.tsx +0 -35
  37. package/src/Common/RJSF/common/types.ts +0 -9
  38. package/src/Common/RJSF/config.ts +0 -37
  39. package/src/Common/RJSF/constants.ts +0 -10
  40. package/src/Common/RJSF/index.ts +0 -3
  41. package/src/Common/RJSF/rjsfForm.scss +0 -18
  42. package/src/Common/RJSF/templates/ArrayFieldItemTemplate.tsx +0 -31
  43. package/src/Common/RJSF/templates/ArrayFieldTemplate.tsx +0 -78
  44. package/src/Common/RJSF/templates/BaseInput.tsx +0 -16
  45. package/src/Common/RJSF/templates/ButtonTemplates/AddButton.tsx +0 -18
  46. package/src/Common/RJSF/templates/ButtonTemplates/RemoveButton.tsx +0 -10
  47. package/src/Common/RJSF/templates/ButtonTemplates/SubmitButton.tsx +0 -18
  48. package/src/Common/RJSF/templates/ButtonTemplates/index.ts +0 -3
  49. package/src/Common/RJSF/templates/Description.tsx +0 -12
  50. package/src/Common/RJSF/templates/Field.tsx +0 -30
  51. package/src/Common/RJSF/templates/FieldErrorTemplate.tsx +0 -25
  52. package/src/Common/RJSF/templates/ObjectFieldTemplate.tsx +0 -105
  53. package/src/Common/RJSF/templates/TitleField.tsx +0 -9
  54. package/src/Common/RJSF/templates/WrapIfAdditionalTemplate.tsx +0 -51
  55. package/src/Common/RJSF/templates/index.ts +0 -10
  56. package/src/Common/RJSF/types.ts +0 -4
  57. package/src/Common/RJSF/utils.ts +0 -123
  58. package/src/Common/RJSF/widgets/Checkbox.tsx +0 -44
  59. package/src/Common/RJSF/widgets/Select.tsx +0 -77
  60. package/src/Common/RJSF/widgets/index.ts +0 -2
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devtron-labs/devtron-fe-common-lib",
3
- "version": "0.0.42-beta-6",
3
+ "version": "0.0.42-beta-7",
4
4
  "description": "Supporting common component library",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -41,9 +41,6 @@
41
41
  "@sentry/browser": "^7.31.1"
42
42
  },
43
43
  "peerDependencies": {
44
- "@rjsf/core": "^5.13.3",
45
- "@rjsf/utils": "^5.13.3",
46
- "@rjsf/validator-ajv8": "^5.13.3",
47
44
  "react": "^17.0.2",
48
45
  "react-dom": "^17.0.2",
49
46
  "react-router": "^5.3.0",
@@ -1,12 +1,12 @@
1
- import * as Sentry from '@sentry/browser'
2
- import moment from 'moment'
3
1
  import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'
4
2
  import { useLocation } from 'react-router-dom'
3
+ import moment from 'moment'
5
4
  import { toast } from 'react-toastify'
6
- import { ReactComponent as FormError } from '../Assets/Icon/ic-warning.svg'
7
- import { ERROR_EMPTY_SCREEN, TOKEN_COOKIE_NAME } from './Constants'
5
+ import * as Sentry from '@sentry/browser'
8
6
  import { ServerErrors } from './ServerError'
9
7
  import { toastAccessDenied } from './ToastBody'
8
+ import { ERROR_EMPTY_SCREEN, TOKEN_COOKIE_NAME } from './Constants'
9
+ import { ReactComponent as FormError } from '../Assets/Icon/ic-warning.svg'
10
10
  import { AsyncOptions, AsyncState, UseSearchString } from './Types'
11
11
 
12
12
  toast.configure({
@@ -116,11 +116,11 @@ export function getRandomColor(email: string): string {
116
116
  return colors[sum % colors.length]
117
117
  }
118
118
 
119
- export const getAlphabetIcon = (str: string) => {
119
+ export const getAlphabetIcon = (str: string, intialAlphabetClassName?: string) => {
120
120
  if (!str) return null
121
121
  return (
122
122
  <span
123
- className="alphabet-icon__initial fs-13 icon-dim-20 flex cn-0 mr-8"
123
+ className={`${intialAlphabetClassName} alphabet-icon__initial fs-13 icon-dim-20 flex cn-0 mr-8`}
124
124
  style={{ backgroundColor: getRandomColor(str) }}
125
125
  >
126
126
  {str[0]}
@@ -495,25 +495,3 @@ export const processDeployedTime = (lastDeployed, isArgoInstalled) => {
495
495
  return isArgoInstalled ? '' : 'Not deployed'
496
496
  }
497
497
  }
498
-
499
- /**
500
- * Appends search parameters to the url as a query string
501
- *
502
- * @param url URL to which the search params needs to be added
503
- * @param params Object for the search parameters
504
- */
505
- export const getUrlWithSearchParams = (url: string, params: Record<string | number, any>) => {
506
- const searchParams = new URLSearchParams()
507
- Object.keys(params).forEach((key) => {
508
- if (params[key]) {
509
- searchParams.append(key, params[key])
510
- }
511
- })
512
- const queryString = searchParams.toString()
513
- return url + (queryString ? `?${queryString}` : '')
514
- }
515
-
516
- /**
517
- * Custom exception logger function for logging errors to sentry
518
- */
519
- export const logExceptionToSentry = Sentry.captureException.bind(window)
@@ -79,6 +79,7 @@ export interface TippyCustomizedProps {
79
79
  documentationLink?: string
80
80
  documentationLinkText?: string
81
81
  children: React.ReactElement<any>
82
+ followCursor?: boolean
82
83
  }
83
84
  export interface GenericEmptyStateType {
84
85
  title: ReactNode
@@ -40,4 +40,3 @@ export { default as Grid } from './Grid/Grid'
40
40
  export { default as ClipboardButton } from './ClipboardButton/ClipboardButton'
41
41
  export * from './Hooks'
42
42
  export { AppStatus } from './AppStatus'
43
- export * from './RJSF'
@@ -1,4 +0,0 @@
1
- /// <reference types="react" />
2
- import { FormProps } from './types';
3
- import './rjsfForm.scss';
4
- export declare const RJSFForm: (props: FormProps) => JSX.Element;
@@ -1,6 +0,0 @@
1
- /// <reference types="react" />
2
- import { FieldRowProps } from './types';
3
- import { DO_NOT_SHOW_LABEL } from '../constants';
4
- export declare const FieldRowWithLabel: ({ showLabel, label, required, children, id, shouldAlignCenter, }: Omit<FieldRowProps, "label"> & {
5
- label: FieldRowProps['label'] | typeof DO_NOT_SHOW_LABEL;
6
- }) => JSX.Element;
@@ -1,8 +0,0 @@
1
- import { FieldTemplateProps } from '@rjsf/utils';
2
- export interface FieldRowProps extends Pick<FieldTemplateProps, 'children' | 'label' | 'required' | 'id'> {
3
- showLabel?: boolean;
4
- /**
5
- * @default true
6
- */
7
- shouldAlignCenter?: boolean;
8
- }
@@ -1,4 +0,0 @@
1
- import { RegistryWidgetsType } from '@rjsf/utils';
2
- import { FormProps } from './types';
3
- export declare const widgets: RegistryWidgetsType;
4
- export declare const templates: FormProps['templates'];
@@ -1,7 +0,0 @@
1
- export declare const PLACEHOLDERS: {
2
- SELECT: string;
3
- INPUT: string;
4
- OBJECT_KEY: string;
5
- };
6
- export declare const DEFAULT_FIELD_TITLE = "Key not available";
7
- export declare const DO_NOT_SHOW_LABEL: unique symbol;
@@ -1,3 +0,0 @@
1
- export { RJSFForm } from './Form';
2
- export * from './types';
3
- export { getInferredTypeFromValueType, getRedirectionProps } from './utils';
@@ -1,3 +0,0 @@
1
- /// <reference types="react" />
2
- import { ArrayFieldTemplateItemType } from '@rjsf/utils';
3
- export declare const ArrayFieldItemTemplate: ({ children, className, disabled, hasToolbar, hasRemove, index, onDropIndexClick, readonly, registry, uiSchema, }: ArrayFieldTemplateItemType) => JSX.Element;
@@ -1,3 +0,0 @@
1
- /// <reference types="react" />
2
- import { ArrayFieldTemplateProps } from '@rjsf/utils';
3
- export declare const ArrayFieldTemplate: ({ canAdd, className, disabled, idSchema, uiSchema, items, onAddClick, readonly, registry, required, title, }: ArrayFieldTemplateProps) => JSX.Element;
@@ -1,3 +0,0 @@
1
- /// <reference types="react" />
2
- import { BaseInputTemplateProps } from '@rjsf/utils';
3
- export declare const BaseInput: ({ placeholder, ...props }: BaseInputTemplateProps) => JSX.Element;
@@ -1,3 +0,0 @@
1
- /// <reference types="react" />
2
- import { IconButtonProps } from '@rjsf/utils';
3
- export declare const AddButton: ({ icon, iconType, registry, uiSchema, ...props }: IconButtonProps) => JSX.Element;
@@ -1,3 +0,0 @@
1
- /// <reference types="react" />
2
- import { IconButtonProps } from '@rjsf/utils';
3
- export declare const RemoveButton: ({ icon, iconType, registry, uiSchema, ...props }: IconButtonProps) => JSX.Element;
@@ -1,3 +0,0 @@
1
- /// <reference types="react" />
2
- import { SubmitButtonProps } from '@rjsf/utils';
3
- export declare const SubmitButton: ({ uiSchema }: SubmitButtonProps) => JSX.Element;
@@ -1,3 +0,0 @@
1
- export { AddButton } from './AddButton';
2
- export { RemoveButton } from './RemoveButton';
3
- export { SubmitButton } from './SubmitButton';
@@ -1,3 +0,0 @@
1
- /// <reference types="react" />
2
- import { DescriptionFieldProps } from '@rjsf/utils';
3
- export declare const Description: ({ id, description }: DescriptionFieldProps) => JSX.Element;
@@ -1,3 +0,0 @@
1
- /// <reference types="react" />
2
- import { FieldTemplateProps } from '@rjsf/utils';
3
- export declare const Field: (props: FieldTemplateProps) => JSX.Element;
@@ -1,3 +0,0 @@
1
- /// <reference types="react" />
2
- import { FieldErrorProps } from '@rjsf/utils';
3
- export declare const FieldErrorTemplate: ({ errors, idSchema }: FieldErrorProps) => JSX.Element;
@@ -1,3 +0,0 @@
1
- /// <reference types="react" />
2
- import { ObjectFieldTemplateProps } from '@rjsf/utils';
3
- export declare const ObjectFieldTemplate: (props: ObjectFieldTemplateProps) => JSX.Element;
@@ -1,3 +0,0 @@
1
- /// <reference types="react" />
2
- import { TitleFieldProps } from '@rjsf/utils';
3
- export declare const TitleField: ({ id, title, required }: TitleFieldProps) => JSX.Element;
@@ -1,3 +0,0 @@
1
- /// <reference types="react" />
2
- import { WrapIfAdditionalTemplateProps } from '@rjsf/utils';
3
- export declare const WrapIfAdditionalTemplate: ({ id, disabled, label, onKeyChange, onDropPropertyClick, readonly, schema, children, uiSchema, registry, }: WrapIfAdditionalTemplateProps) => JSX.Element;
@@ -1,10 +0,0 @@
1
- export { ArrayFieldTemplate } from './ArrayFieldTemplate';
2
- export { ArrayFieldItemTemplate } from './ArrayFieldItemTemplate';
3
- export { BaseInput as BaseInputTemplate } from './BaseInput';
4
- export * from './ButtonTemplates';
5
- export { Description as DescriptionFieldTemplate } from './Description';
6
- export { Field as FieldTemplate } from './Field';
7
- export { FieldErrorTemplate } from './FieldErrorTemplate';
8
- export { ObjectFieldTemplate } from './ObjectFieldTemplate';
9
- export { TitleField as TitleFieldTemplate } from './TitleField';
10
- export { WrapIfAdditionalTemplate } from './WrapIfAdditionalTemplate';
@@ -1,3 +0,0 @@
1
- import { ComponentProps } from 'react';
2
- import RJSFForm from '@rjsf/core';
3
- export type FormProps = Omit<ComponentProps<typeof RJSFForm>, 'validator'>;
@@ -1,26 +0,0 @@
1
- /// <reference types="react" />
2
- import { TranslatableString } from '@rjsf/utils';
3
- /**
4
- * Override for the TranslatableString from RJSF
5
- */
6
- export declare const translateString: (stringToTranslate: TranslatableString, params?: string[]) => string;
7
- export declare const getCommonSelectStyle: (styleOverrides?: {}) => {
8
- menuList: (base: any) => any;
9
- control: (base: any, state: any) => any;
10
- option: (base: any, state: any) => any;
11
- dropdownIndicator: (base: any, state: any) => any;
12
- valueContainer: (base: any, state: any) => any;
13
- loadingMessage: (base: any) => any;
14
- noOptionsMessage: (base: any) => any;
15
- multiValue: (base: any, state: any) => any;
16
- };
17
- /**
18
- * Returns the redirection props for a url
19
- */
20
- export declare const getRedirectionProps: (url: string) => import("react").AnchorHTMLAttributes<HTMLAnchorElement> & {
21
- url: string;
22
- };
23
- /**
24
- * Infers the type for json schema from value type
25
- */
26
- export declare const getInferredTypeFromValueType: (value: any) => "string" | "number" | "boolean" | "object" | "array" | "null";
@@ -1,3 +0,0 @@
1
- /// <reference types="react" />
2
- import { WidgetProps } from '@rjsf/utils';
3
- export declare const Checkbox: ({ id, onChange, value, required, disabled, readonly, autofocus, onBlur, onFocus, }: WidgetProps) => JSX.Element;
@@ -1,3 +0,0 @@
1
- /// <reference types="react" />
2
- import { WidgetProps } from '@rjsf/utils';
3
- export declare const Select: (props: WidgetProps) => JSX.Element;
@@ -1,2 +0,0 @@
1
- export { Checkbox as CheckboxWidget } from './Checkbox';
2
- export { Select as SelectWidget } from './Select';
@@ -1,5 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
2
- <g fill="none" fill-rule="evenodd">
3
- <path fill="#999" class="fill-color" fill-rule="nonzero" d="M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6z"/>
4
- </g>
5
- </svg>
@@ -1,29 +0,0 @@
1
- import React from 'react'
2
- import RJSF from '@rjsf/core'
3
- import RJSFValidator from '@rjsf/validator-ajv8'
4
-
5
- import { templates, widgets } from './config'
6
- import { FormProps } from './types'
7
- import { translateString } from './utils'
8
- import './rjsfForm.scss'
9
-
10
- // Need to use this way because the default import was not working as expected
11
- // The default import resolves to an object intead of a function
12
- const Form = (RJSF as any).default as typeof RJSF
13
- const validator = (RJSFValidator as any).default as typeof RJSFValidator
14
-
15
- export const RJSFForm = (props: FormProps) => (
16
- <Form
17
- noHtml5Validate
18
- showErrorList={false}
19
- autoComplete="off"
20
- {...props}
21
- validator={validator}
22
- templates={{
23
- ...templates,
24
- ...props.templates,
25
- }}
26
- widgets={{ ...widgets, ...props.widgets }}
27
- translateString={translateString}
28
- />
29
- )
@@ -1,35 +0,0 @@
1
- import React from 'react'
2
- import { FieldRowProps } from './types'
3
- import { DEFAULT_FIELD_TITLE, DO_NOT_SHOW_LABEL } from '../constants'
4
-
5
- export const FieldRowWithLabel = ({
6
- showLabel,
7
- label,
8
- required,
9
- children,
10
- id,
11
- shouldAlignCenter = true,
12
- }: Omit<FieldRowProps, 'label'> & {
13
- label: FieldRowProps['label'] | typeof DO_NOT_SHOW_LABEL
14
- }) => (
15
- <div
16
- className={
17
- showLabel
18
- ? `display-grid dc__gap-12 rjsf-form-template__field ${shouldAlignCenter ? 'flex-align-center' : ''}`
19
- : ''
20
- }
21
- >
22
- {showLabel && (
23
- <label className="cn-7 fs-13 lh-32 fw-4 flexbox mb-0" htmlFor={id}>
24
- {/* The check is added here intentionally for proper layout for array type field */}
25
- {label !== DO_NOT_SHOW_LABEL && (
26
- <>
27
- <span className="dc__ellipsis-right">{label || DEFAULT_FIELD_TITLE}</span>
28
- {required && <span className="cr-5">&nbsp;*</span>}
29
- </>
30
- )}
31
- </label>
32
- )}
33
- {children}
34
- </div>
35
- )
@@ -1,9 +0,0 @@
1
- import { FieldTemplateProps } from '@rjsf/utils'
2
-
3
- export interface FieldRowProps extends Pick<FieldTemplateProps, 'children' | 'label' | 'required' | 'id'> {
4
- showLabel?: boolean
5
- /**
6
- * @default true
7
- */
8
- shouldAlignCenter?: boolean
9
- }
@@ -1,37 +0,0 @@
1
- import React from 'react'
2
- import { RegistryWidgetsType } from '@rjsf/utils'
3
-
4
- import {
5
- AddButton,
6
- ArrayFieldItemTemplate,
7
- ArrayFieldTemplate,
8
- BaseInputTemplate,
9
- DescriptionFieldTemplate,
10
- FieldTemplate,
11
- FieldErrorTemplate,
12
- ObjectFieldTemplate,
13
- RemoveButton,
14
- SubmitButton,
15
- TitleFieldTemplate,
16
- WrapIfAdditionalTemplate,
17
- } from './templates'
18
- import { CheckboxWidget, SelectWidget } from './widgets'
19
- import { FormProps } from './types'
20
-
21
- export const widgets: RegistryWidgetsType = {
22
- CheckboxWidget,
23
- SelectWidget,
24
- }
25
-
26
- export const templates: FormProps['templates'] = {
27
- ArrayFieldItemTemplate,
28
- ArrayFieldTemplate,
29
- BaseInputTemplate,
30
- ButtonTemplates: { AddButton, RemoveButton, SubmitButton },
31
- DescriptionFieldTemplate,
32
- FieldTemplate,
33
- FieldErrorTemplate,
34
- ObjectFieldTemplate,
35
- TitleFieldTemplate,
36
- WrapIfAdditionalTemplate,
37
- }
@@ -1,10 +0,0 @@
1
- export const PLACEHOLDERS = {
2
- SELECT: 'Please select an option',
3
- INPUT: 'Please enter an input',
4
- OBJECT_KEY: 'Please enter a value for the key',
5
- }
6
-
7
- export const DEFAULT_FIELD_TITLE = 'Key not available'
8
-
9
- // Using symbol to ensure uniqueness across the fields
10
- export const DO_NOT_SHOW_LABEL = Symbol('Do not show label')
@@ -1,3 +0,0 @@
1
- export { RJSFForm } from './Form'
2
- export * from './types'
3
- export { getInferredTypeFromValueType, getRedirectionProps } from './utils'
@@ -1,18 +0,0 @@
1
- .rjsf-form-template {
2
- &__field {
3
- grid-template-columns: 250px 1fr;
4
- }
5
-
6
- &__additional-fields {
7
- grid-template-columns: 1fr 1fr minmax(20px, auto);
8
- }
9
-
10
- &__array-field-item {
11
- grid-template-columns: 1fr auto;
12
-
13
- & > :first-child {
14
- // This is added as the array field itself has a margin bottom
15
- margin: 0;
16
- }
17
- }
18
- }
@@ -1,31 +0,0 @@
1
- import React, { CSSProperties } from 'react'
2
- import { ArrayFieldTemplateItemType } from '@rjsf/utils'
3
-
4
- export const ArrayFieldItemTemplate = ({
5
- children,
6
- className,
7
- disabled,
8
- hasToolbar,
9
- hasRemove,
10
- index,
11
- onDropIndexClick,
12
- readonly,
13
- registry,
14
- uiSchema,
15
- }: ArrayFieldTemplateItemType) => {
16
- const { RemoveButton } = registry.templates.ButtonTemplates
17
-
18
- return (
19
- <div className="display-grid rjsf-form-template__array-field-item flex-align-center dc__gap-8 mb-12">
20
- {children}
21
- {hasToolbar && hasRemove && (
22
- <RemoveButton
23
- disabled={disabled || readonly}
24
- onClick={onDropIndexClick(index)}
25
- uiSchema={uiSchema}
26
- registry={registry}
27
- />
28
- )}
29
- </div>
30
- )
31
- }
@@ -1,78 +0,0 @@
1
- import React from 'react'
2
- import { getTemplate, getUiOptions, ArrayFieldTemplateProps, ArrayFieldTemplateItemType } from '@rjsf/utils'
3
- import { FieldRowWithLabel } from '../common/FieldRow'
4
- import { DO_NOT_SHOW_LABEL } from '../constants'
5
-
6
- const ActionButton = ({ canAdd, onAddClick, disabled, readonly, uiSchema, registry }) => {
7
- const {
8
- ButtonTemplates: { AddButton },
9
- } = registry.templates
10
-
11
- return (
12
- canAdd && (
13
- <AddButton onClick={onAddClick} disabled={disabled || readonly} uiSchema={uiSchema} registry={registry} />
14
- )
15
- )
16
- }
17
-
18
- export const ArrayFieldTemplate = ({
19
- canAdd,
20
- className,
21
- disabled,
22
- idSchema,
23
- uiSchema,
24
- items,
25
- onAddClick,
26
- readonly,
27
- registry,
28
- required,
29
- title,
30
- }: ArrayFieldTemplateProps) => {
31
- const uiOptions = getUiOptions(uiSchema)
32
- const ArrayFieldItemTemplate = getTemplate<'ArrayFieldItemTemplate'>('ArrayFieldItemTemplate', registry, uiOptions)
33
- const label = uiOptions.title || title
34
-
35
- return (
36
- <fieldset className={className} id={idSchema.$id}>
37
- {/* Show the label here in case there are no items, otherwise handled by Field Template */}
38
- {items.length ? (
39
- <>
40
- {items.map(({ key, ...itemProps }: ArrayFieldTemplateItemType, index) => {
41
- // Show the title as the label for the first field
42
- const children = {
43
- ...itemProps.children,
44
- props: {
45
- ...itemProps.children.props,
46
- name: index === 0 ? label : DO_NOT_SHOW_LABEL,
47
- },
48
- }
49
- return (
50
- <ArrayFieldItemTemplate key={key} {...itemProps}>
51
- {children}
52
- </ArrayFieldItemTemplate>
53
- )
54
- })}
55
- <ActionButton
56
- canAdd={canAdd}
57
- onAddClick={onAddClick}
58
- disabled={disabled}
59
- readonly={readonly}
60
- uiSchema={uiSchema}
61
- registry={registry}
62
- />
63
- </>
64
- ) : (
65
- <FieldRowWithLabel label={label} required={required} showLabel id={idSchema.$id}>
66
- <ActionButton
67
- canAdd={canAdd}
68
- onAddClick={onAddClick}
69
- disabled={disabled}
70
- readonly={readonly}
71
- uiSchema={uiSchema}
72
- registry={registry}
73
- />
74
- </FieldRowWithLabel>
75
- )}
76
- </fieldset>
77
- )
78
- }
@@ -1,16 +0,0 @@
1
- import React from 'react'
2
- import { getDefaultRegistry } from '@rjsf/core'
3
- import { BaseInputTemplateProps } from '@rjsf/utils'
4
- import { PLACEHOLDERS } from '../constants'
5
-
6
- const {
7
- templates: { BaseInputTemplate },
8
- } = getDefaultRegistry()
9
-
10
- export const BaseInput = ({ placeholder, ...props }: BaseInputTemplateProps) => (
11
- <BaseInputTemplate
12
- placeholder={placeholder || PLACEHOLDERS.INPUT}
13
- {...props}
14
- className="form__input cn-9 fs-13 lh-20 fw-4"
15
- />
16
- )
@@ -1,18 +0,0 @@
1
- import React from 'react'
2
- import { IconButtonProps } from '@rjsf/utils'
3
-
4
- import { ReactComponent as PlusIcon } from '../../../../Assets/Icon/ic-add.svg'
5
-
6
- export const AddButton = ({ icon, iconType, registry, uiSchema, ...props }: IconButtonProps) => (
7
- <div className="flexbox flex-justify-end">
8
- <button
9
- {...props}
10
- type="button"
11
- className="dc__outline-none-imp p-0 dc__transparent flex dc__gap-4 cursor"
12
- title="Add"
13
- >
14
- <PlusIcon className="icon-dim-16 fcb-5" />
15
- <span className="cb-5 fs-13 lh-20">Add</span>
16
- </button>
17
- </div>
18
- )
@@ -1,10 +0,0 @@
1
- import React from 'react'
2
- import { IconButtonProps } from '@rjsf/utils'
3
-
4
- import { ReactComponent as CrossIcon } from '../../../../Assets/Icon/ic-cross.svg'
5
-
6
- export const RemoveButton = ({ icon, iconType, registry, uiSchema, ...props }: IconButtonProps) => (
7
- <button {...props} type="button" className="dc__outline-none-imp p-0 dc__transparent flex cursor" title="Remove">
8
- <CrossIcon className="icon-dim-16 fcr-5" />
9
- </button>
10
- )
@@ -1,18 +0,0 @@
1
- import React from 'react'
2
- import { getSubmitButtonOptions, SubmitButtonProps } from '@rjsf/utils'
3
-
4
- export const SubmitButton = ({ uiSchema }: SubmitButtonProps) => {
5
- const { submitText, norender, props: submitButtonProps = {} } = getSubmitButtonOptions(uiSchema)
6
-
7
- return norender ? null : (
8
- <div className="flexbox flex-justify-end">
9
- <button
10
- type="submit"
11
- {...submitButtonProps}
12
- className={`cta ${submitButtonProps.className || ''}`}
13
- >
14
- {submitText}
15
- </button>
16
- </div>
17
- )
18
- }
@@ -1,3 +0,0 @@
1
- export { AddButton } from './AddButton'
2
- export { RemoveButton } from './RemoveButton'
3
- export { SubmitButton } from './SubmitButton'
@@ -1,12 +0,0 @@
1
- import React from 'react'
2
- import { DescriptionFieldProps } from '@rjsf/utils'
3
-
4
- import { ReactComponent as Info } from '../../../Assets/Icon/ic-info-filled.svg'
5
-
6
- export const Description = ({ id, description }: DescriptionFieldProps) =>
7
- description && (
8
- <div id={id} className="flex left flex-align-center mt-4 dc__gap-4">
9
- <Info className="icon-dim-16 mw-16 info-icon-n5" />
10
- <span className="cn-7 fs-11 fw-4 dc__ellipsis-right">{description}</span>
11
- </div>
12
- )