@laerdal/life-react-components 6.0.8 → 6.0.9-dev.1.full

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.
@@ -26,7 +26,8 @@ const RichTextFieldContainer = exports.RichTextFieldContainer = _styledComponent
26
26
  .quill {
27
27
  width: 100%;
28
28
  margin-bottom: 4px;
29
- overflow: hidden;
29
+ overflow: visible;
30
+ position: relative;
30
31
 
31
32
  box-shadow: inset 0 0 0 1px ${props => _styles.COLORS.generateToken({
32
33
  componentType: 'border',
@@ -103,6 +104,20 @@ const RichTextFieldContainer = exports.RichTextFieldContainer = _styledComponent
103
104
  componentType: 'border',
104
105
  defaultVariant: 'subtle'
105
106
  }, props.theme)};
107
+ position: relative;
108
+ z-index: 1;
109
+ }
110
+
111
+ .ql-tooltip {
112
+ z-index: 1000 !important;
113
+ position: absolute !important;
114
+ left: 0 !important;
115
+ right: auto !important;
116
+ transform: none !important;
117
+ }
118
+
119
+ .ql-tooltip.ql-editing {
120
+ left: 8px !important;
106
121
  }
107
122
 
108
123
  .quill.valid .ql-toolbar,
@@ -119,7 +134,7 @@ const RichTextFieldContainer = exports.RichTextFieldContainer = _styledComponent
119
134
 
120
135
  .ql-container.ql-snow {
121
136
  border: none;
122
- overflow-y: hidden;
137
+ overflow-y: visible;
123
138
  padding: 8px;
124
139
  }
125
140
 
@@ -135,12 +150,13 @@ const RichTextFieldContainer = exports.RichTextFieldContainer = _styledComponent
135
150
 
136
151
  .quill {
137
152
  flex: none;
138
- overflow: initial;
153
+ overflow: visible;
139
154
  }
140
155
 
141
156
  .ql-container {
142
157
  flex: none;
143
158
  resize: vertical;
159
+ overflow-y: hidden;
144
160
  }
145
161
 
146
162
  .ql-editor {
@@ -1 +1 @@
1
- {"version":3,"file":"RichTextField.cjs","names":["_react","_interopRequireDefault","require","_reactQuillNew","_styledComponents","_interopRequireWildcard","_styling","_types","_styles","_systemicons","_jsxRuntime","_excluded","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","RichTextFieldContainer","exports","styled","div","props","COLORS","generateToken","componentType","defaultVariant","theme","state","ComponentSStyling","ComponentTextStyle","Regular","Italic","ComponentMStyling","scrollBarStyling","Size","Small","readOnlyState","RichTextFieldFormats","defaultToolBarOptions","header","RichTextField","React","forwardRef","_ref","ref","readOnly","disabled","validationMessage","note","size","Medium","resizable","modules","formats","rest","_objectWithoutProperties2","useTheme","m","toolbar","f","values","Image","Video","Formula","jsxs","className","children","jsx","ValidationMessage","type","States","Invalid","Valid","CheckMark","color","TechnicalWarning","NoteMessage","icon","message","propTypes","id","_propTypes","string","placeholder","bool","objectOf","any","arrayOf","oneOf","onKeyDown","func","onKeyPress","onKeyUp","value","isRequired","onChange"],"sources":["../../src/InputFields/RichTextField.tsx"],"sourcesContent":["import React from 'react';\r\nimport ReactQuill, { EmitterSource } from \"react-quill-new\";\r\nimport {TextFieldNote} from \"./types\";\r\nimport styled, { useTheme } from \"styled-components\";\r\nimport {NoteMessage, readOnlyState, ValidationMessage} from \"./styling\";\r\nimport {Size, States} from \"../types\";\r\nimport {COLORS, ComponentMStyling, ComponentSStyling, ComponentTextStyle, scrollBarStyling} from \"../styles\";\r\nimport {CheckMark, TechnicalWarning} from \"../icons/systemicons\";\r\nimport 'react-quill-new/dist/quill.snow.css';\r\n\r\nexport const RichTextFieldContainer = styled.div`\r\n .quill {\r\n width: 100%;\r\n margin-bottom: 4px;\r\n overflow: hidden;\r\n\r\n box-shadow: inset 0 0 0 1px ${props => COLORS.generateToken({componentType:'border', defaultVariant:'default'}, props.theme)};\r\n border-radius: 4px;\r\n }\r\n\r\n .quill.valid {\r\n box-shadow: inset 0 0 0 2px ${props => COLORS.generateToken({componentType:'border', defaultVariant:'positive'}, props.theme)};\r\n }\r\n\r\n .quill.invalid {\r\n box-shadow: inset 0 0 0 2px ${props => COLORS.generateToken({componentType:'border', defaultVariant:'critical'}, props.theme)};\r\n }\r\n\r\n .quill:hover {\r\n box-shadow: inset 0 0 0 2px ${props => COLORS.generateToken({componentType:'border', state:'hover'}, props.theme)};\r\n }\r\n\r\n .quill:focus-within {\r\n box-shadow: inset 0 0 0 2px ${props => COLORS.generateToken({componentType:'border', state:'hover'}, props.theme)};\r\n }\r\n\r\n .ql-editor,\r\n .ql-editor p{\r\n ${props => ComponentSStyling(ComponentTextStyle.Regular, COLORS.generateToken({componentType:'text', defaultVariant:'default'}, props.theme))}\r\n }\r\n\r\n .ql-editor.ql-blank::before {\r\n ${props => ComponentSStyling(ComponentTextStyle.Italic, COLORS.generateToken({componentType:'text', defaultVariant:'subtle'}, props.theme))}\r\n }\r\n\r\n &.medium {\r\n .ql-editor,\r\n .ql-editor p{\r\n ${props => ComponentMStyling(ComponentTextStyle.Regular, COLORS.generateToken({componentType:'text', defaultVariant:'default'}, props.theme))}\r\n }\r\n\r\n .ql-editor.ql-blank::before {\r\n ${props => ComponentMStyling(ComponentTextStyle.Italic, COLORS.generateToken({componentType:'text', defaultVariant:'subtle'}, props.theme))}\r\n }\r\n }\r\n\r\n .ql-toolbar.ql-snow {\r\n border: none;\r\n padding: 8px 7px;\r\n margin: 0 1px;\r\n border-bottom: 1px solid ${props => COLORS.generateToken({componentType:'border', defaultVariant:'subtle'}, props.theme)};\r\n }\r\n\r\n .quill.valid .ql-toolbar,\r\n .quill.invalid .ql-toolbar,\r\n .quill:hover .ql-toolbar,\r\n .quill:focus-within .ql-toolbar {\r\n padding: 8px 6px;\r\n margin: 0 2px;\r\n }\r\n\r\n .ql-container {\r\n font-family: unset !important;\r\n }\r\n\r\n .ql-container.ql-snow {\r\n border: none;\r\n overflow-y: hidden;\r\n padding: 8px;\r\n }\r\n\r\n .ql-editor {\r\n padding: 8px;\r\n overflow-y: auto;\r\n\r\n ${scrollBarStyling(Size.Small)}\r\n }\r\n\r\n &.resizable {\r\n height: initial;\r\n\r\n .quill {\r\n flex: none;\r\n overflow: initial;\r\n }\r\n\r\n .ql-container {\r\n flex: none;\r\n resize: vertical;\r\n }\r\n\r\n .ql-editor {\r\n height: 100%;\r\n }\r\n }\r\n\r\n &.readonly {\r\n .quill {\r\n ${readOnlyState}\r\n }\r\n }\r\n\r\n &.disabled {\r\n cursor: not-allowed;\r\n\r\n .quill {\r\n pointer-events: none;\r\n box-shadow: inset 0 0 0 1px ${props => COLORS.generateToken({componentType:'border', state:'disabled'}, props.theme)};\r\n color: ${props => COLORS.generateToken({componentType:'text', state:'disabled'}, props.theme)};\r\n\r\n .ql-editor.ql-blank::before {\r\n color: ${props => COLORS.generateToken({componentType:'text', state:'disabled'}, props.theme)};\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport enum RichTextFieldFormats {\r\n Background = 'background',\r\n Bold = 'bold',\r\n Color = 'color',\r\n Font = 'font',\r\n Code = 'code',\r\n Italic = 'italic',\r\n Link = 'link',\r\n Size = 'size',\r\n Strike = 'strike',\r\n Script = 'script',\r\n Underline = 'underline',\r\n Blockquote = 'blockquote',\r\n Header = 'header',\r\n Indent = 'indent',\r\n List = 'list',\r\n Align = 'align',\r\n Direction = 'direction',\r\n CodeBlock = 'code-block',\r\n Formula = 'formula',\r\n Image = 'image',\r\n Video = 'video'\r\n}\r\n\r\nconst defaultToolBarOptions = [\r\n [{header: [1, 2, 3, false]}],\r\n ['bold', 'italic', 'underline', 'strike'],\r\n [{'list': 'ordered'}, {'list': 'bullet'}],\r\n ['link'],\r\n ['clean']\r\n];\r\n\r\nexport interface RichTextFieldProps {\r\n /**\r\n * Optional. The ID of the rich text field.\r\n */\r\n id?: string;\r\n\r\n /**\r\n * Optional. The CSS class name of the rich text field.\r\n */\r\n className?: string;\r\n\r\n /**\r\n * Optional. The placeholder text to be displayed in the rich text field when it is empty.\r\n */\r\n placeholder?: string;\r\n\r\n /**\r\n * Optional. A boolean indicating whether the rich text field is read-only.\r\n */\r\n readOnly?: boolean;\r\n\r\n /**\r\n * Optional. A boolean indicating whether the rich text field is disabled.\r\n */\r\n disabled?: boolean;\r\n\r\n /**\r\n * Optional. A boolean indicating whether the rich text field is resizable.\r\n */\r\n resizable?: boolean;\r\n\r\n /**\r\n * Optional. An object containing the modules to be used by the rich text field.\r\n */\r\n modules?: Record<string, unknown>;\r\n\r\n /**\r\n * Optional. An array of formats to be used by the rich text field.\r\n */\r\n formats?: RichTextFieldFormats[];\r\n\r\n /**\r\n * Optional. A function to be called when the rich text field gains focus.\r\n */\r\n onFocus?(selection: ReactQuill.Range, source: EmitterSource, editor: ReactQuill.UnprivilegedEditor): void;\r\n\r\n /**\r\n * Optional. A function to be called when the rich text field loses focus.\r\n */\r\n onBlur?(previousSelection: ReactQuill.Range, source: EmitterSource, editor: ReactQuill.UnprivilegedEditor): void;\r\n\r\n /**\r\n * Optional. A function to be called when a keydown event occurs in the rich text field.\r\n */\r\n onKeyDown?: React.EventHandler<any>;\r\n\r\n /**\r\n * Optional. A function to be called when a keypress event occurs in the rich text field.\r\n */\r\n onKeyPress?: React.EventHandler<any>;\r\n\r\n /**\r\n * Optional. A function to be called when a keyup event occurs in the rich text field.\r\n */\r\n onKeyUp?: React.EventHandler<any>;\r\n\r\n /**\r\n * Required. The current value of the rich text field.\r\n */\r\n value: any;\r\n\r\n /**\r\n * Required. A function to be called when the value of the rich text field changes.\r\n */\r\n onChange: (value: any) => void;\r\n\r\n /**\r\n * Optional. The validation message to be displayed when the rich text field is in an error state.\r\n */\r\n validationMessage?: string;\r\n\r\n /**\r\n * Optional. A note to be displayed below the rich text field.\r\n */\r\n note?: TextFieldNote;\r\n\r\n /**\r\n * Optional. The size of the rich text field. Can be 'Small' or 'Medium'.\r\n */\r\n size?: Size.Small | Size.Medium;\r\n\r\n /**\r\n * Optional. The state of the rich text field. Can be 'Invalid' or 'Valid'.\r\n */\r\n state?: States.Invalid | States.Valid;\r\n}\r\n\r\nexport const RichTextField = React.forwardRef<any, RichTextFieldProps>(({\r\n readOnly,\r\n disabled,\r\n validationMessage,\r\n note,\r\n size = Size.Medium,\r\n state,\r\n resizable,\r\n modules,\r\n formats,\r\n ...rest\r\n }: RichTextFieldProps, ref) => {\r\n\r\n const theme = useTheme();\r\n let m = {...(modules ?? {}), toolbar: modules?.toolbar ?? defaultToolBarOptions};\r\n let f = formats ?? Object.values(RichTextFieldFormats).filter(a => a !== RichTextFieldFormats.Image && a !== RichTextFieldFormats.Video && a !== RichTextFieldFormats.Formula);\r\n\r\n return (\r\n <RichTextFieldContainer\r\n className={`${resizable ? 'resizable' : ''} ${size} ${state || ''} ${readOnly ? 'readonly' : ''} ${disabled ? 'disabled' : ''}`}>\r\n <ReactQuill ref={ref}\r\n readOnly={readOnly || disabled}\r\n modules={m}\r\n theme={'snow'}\r\n formats={f}\r\n {...rest}\r\n />\r\n {validationMessage && (\r\n <ValidationMessage className={size || ''} type={state ?? States.Invalid}>\r\n {\r\n state === States.Valid\r\n ? <CheckMark color={COLORS.generateToken({componentType:'text', defaultVariant:'positive'}, theme)}/>\r\n : <TechnicalWarning color={COLORS.generateToken({componentType:'text', defaultVariant:'critical'}, theme)}/>\r\n }\r\n <span>{validationMessage}</span>\r\n </ValidationMessage>\r\n )}\r\n {note && !disabled && (\r\n <NoteMessage className={size}>\r\n {note.icon}\r\n <span>{note.message}</span>\r\n </NoteMessage>\r\n )}\r\n </RichTextFieldContainer>\r\n )\r\n});"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"RichTextField.cjs","names":["_react","_interopRequireDefault","require","_reactQuillNew","_styledComponents","_interopRequireWildcard","_styling","_types","_styles","_systemicons","_jsxRuntime","_excluded","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","RichTextFieldContainer","exports","styled","div","props","COLORS","generateToken","componentType","defaultVariant","theme","state","ComponentSStyling","ComponentTextStyle","Regular","Italic","ComponentMStyling","scrollBarStyling","Size","Small","readOnlyState","RichTextFieldFormats","defaultToolBarOptions","header","RichTextField","React","forwardRef","_ref","ref","readOnly","disabled","validationMessage","note","size","Medium","resizable","modules","formats","rest","_objectWithoutProperties2","useTheme","m","toolbar","f","values","Image","Video","Formula","jsxs","className","children","jsx","ValidationMessage","type","States","Invalid","Valid","CheckMark","color","TechnicalWarning","NoteMessage","icon","message","propTypes","id","_propTypes","string","placeholder","bool","objectOf","any","arrayOf","oneOf","onKeyDown","func","onKeyPress","onKeyUp","value","isRequired","onChange"],"sources":["../../src/InputFields/RichTextField.tsx"],"sourcesContent":["import React from 'react';\r\nimport ReactQuill, { EmitterSource } from \"react-quill-new\";\r\nimport {TextFieldNote} from \"./types\";\r\nimport styled, { useTheme } from \"styled-components\";\r\nimport {NoteMessage, readOnlyState, ValidationMessage} from \"./styling\";\r\nimport {Size, States} from \"../types\";\r\nimport {COLORS, ComponentMStyling, ComponentSStyling, ComponentTextStyle, scrollBarStyling} from \"../styles\";\r\nimport {CheckMark, TechnicalWarning} from \"../icons/systemicons\";\r\nimport 'react-quill-new/dist/quill.snow.css';\r\n\r\nexport const RichTextFieldContainer = styled.div`\r\n .quill {\r\n width: 100%;\r\n margin-bottom: 4px;\r\n overflow: visible;\r\n position: relative;\r\n\r\n box-shadow: inset 0 0 0 1px ${props => COLORS.generateToken({componentType:'border', defaultVariant:'default'}, props.theme)};\r\n border-radius: 4px;\r\n }\r\n\r\n .quill.valid {\r\n box-shadow: inset 0 0 0 2px ${props => COLORS.generateToken({componentType:'border', defaultVariant:'positive'}, props.theme)};\r\n }\r\n\r\n .quill.invalid {\r\n box-shadow: inset 0 0 0 2px ${props => COLORS.generateToken({componentType:'border', defaultVariant:'critical'}, props.theme)};\r\n }\r\n\r\n .quill:hover {\r\n box-shadow: inset 0 0 0 2px ${props => COLORS.generateToken({componentType:'border', state:'hover'}, props.theme)};\r\n }\r\n\r\n .quill:focus-within {\r\n box-shadow: inset 0 0 0 2px ${props => COLORS.generateToken({componentType:'border', state:'hover'}, props.theme)};\r\n }\r\n\r\n .ql-editor,\r\n .ql-editor p{\r\n ${props => ComponentSStyling(ComponentTextStyle.Regular, COLORS.generateToken({componentType:'text', defaultVariant:'default'}, props.theme))}\r\n }\r\n\r\n .ql-editor.ql-blank::before {\r\n ${props => ComponentSStyling(ComponentTextStyle.Italic, COLORS.generateToken({componentType:'text', defaultVariant:'subtle'}, props.theme))}\r\n }\r\n\r\n &.medium {\r\n .ql-editor,\r\n .ql-editor p{\r\n ${props => ComponentMStyling(ComponentTextStyle.Regular, COLORS.generateToken({componentType:'text', defaultVariant:'default'}, props.theme))}\r\n }\r\n\r\n .ql-editor.ql-blank::before {\r\n ${props => ComponentMStyling(ComponentTextStyle.Italic, COLORS.generateToken({componentType:'text', defaultVariant:'subtle'}, props.theme))}\r\n }\r\n }\r\n\r\n .ql-toolbar.ql-snow {\r\n border: none;\r\n padding: 8px 7px;\r\n margin: 0 1px;\r\n border-bottom: 1px solid ${props => COLORS.generateToken({componentType:'border', defaultVariant:'subtle'}, props.theme)};\r\n position: relative;\r\n z-index: 1;\r\n }\r\n\r\n .ql-tooltip {\r\n z-index: 1000 !important;\r\n position: absolute !important;\r\n left: 0 !important;\r\n right: auto !important;\r\n transform: none !important;\r\n }\r\n\r\n .ql-tooltip.ql-editing {\r\n left: 8px !important;\r\n }\r\n\r\n .quill.valid .ql-toolbar,\r\n .quill.invalid .ql-toolbar,\r\n .quill:hover .ql-toolbar,\r\n .quill:focus-within .ql-toolbar {\r\n padding: 8px 6px;\r\n margin: 0 2px;\r\n }\r\n\r\n .ql-container {\r\n font-family: unset !important;\r\n }\r\n\r\n .ql-container.ql-snow {\r\n border: none;\r\n overflow-y: visible;\r\n padding: 8px;\r\n }\r\n\r\n .ql-editor {\r\n padding: 8px;\r\n overflow-y: auto;\r\n\r\n ${scrollBarStyling(Size.Small)}\r\n }\r\n\r\n &.resizable {\r\n height: initial;\r\n\r\n .quill {\r\n flex: none;\r\n overflow: visible;\r\n }\r\n\r\n .ql-container {\r\n flex: none;\r\n resize: vertical;\r\n overflow-y: hidden;\r\n }\r\n\r\n .ql-editor {\r\n height: 100%;\r\n }\r\n }\r\n\r\n &.readonly {\r\n .quill {\r\n ${readOnlyState}\r\n }\r\n }\r\n\r\n &.disabled {\r\n cursor: not-allowed;\r\n\r\n .quill {\r\n pointer-events: none;\r\n box-shadow: inset 0 0 0 1px ${props => COLORS.generateToken({componentType:'border', state:'disabled'}, props.theme)};\r\n color: ${props => COLORS.generateToken({componentType:'text', state:'disabled'}, props.theme)};\r\n\r\n .ql-editor.ql-blank::before {\r\n color: ${props => COLORS.generateToken({componentType:'text', state:'disabled'}, props.theme)};\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport enum RichTextFieldFormats {\r\n Background = 'background',\r\n Bold = 'bold',\r\n Color = 'color',\r\n Font = 'font',\r\n Code = 'code',\r\n Italic = 'italic',\r\n Link = 'link',\r\n Size = 'size',\r\n Strike = 'strike',\r\n Script = 'script',\r\n Underline = 'underline',\r\n Blockquote = 'blockquote',\r\n Header = 'header',\r\n Indent = 'indent',\r\n List = 'list',\r\n Align = 'align',\r\n Direction = 'direction',\r\n CodeBlock = 'code-block',\r\n Formula = 'formula',\r\n Image = 'image',\r\n Video = 'video'\r\n}\r\n\r\nconst defaultToolBarOptions = [\r\n [{header: [1, 2, 3, false]}],\r\n ['bold', 'italic', 'underline', 'strike'],\r\n [{'list': 'ordered'}, {'list': 'bullet'}],\r\n ['link'],\r\n ['clean']\r\n];\r\n\r\nexport interface RichTextFieldProps {\r\n /**\r\n * Optional. The ID of the rich text field.\r\n */\r\n id?: string;\r\n\r\n /**\r\n * Optional. The CSS class name of the rich text field.\r\n */\r\n className?: string;\r\n\r\n /**\r\n * Optional. The placeholder text to be displayed in the rich text field when it is empty.\r\n */\r\n placeholder?: string;\r\n\r\n /**\r\n * Optional. A boolean indicating whether the rich text field is read-only.\r\n */\r\n readOnly?: boolean;\r\n\r\n /**\r\n * Optional. A boolean indicating whether the rich text field is disabled.\r\n */\r\n disabled?: boolean;\r\n\r\n /**\r\n * Optional. A boolean indicating whether the rich text field is resizable.\r\n */\r\n resizable?: boolean;\r\n\r\n /**\r\n * Optional. An object containing the modules to be used by the rich text field.\r\n */\r\n modules?: Record<string, unknown>;\r\n\r\n /**\r\n * Optional. An array of formats to be used by the rich text field.\r\n */\r\n formats?: RichTextFieldFormats[];\r\n\r\n /**\r\n * Optional. A function to be called when the rich text field gains focus.\r\n */\r\n onFocus?(selection: ReactQuill.Range, source: EmitterSource, editor: ReactQuill.UnprivilegedEditor): void;\r\n\r\n /**\r\n * Optional. A function to be called when the rich text field loses focus.\r\n */\r\n onBlur?(previousSelection: ReactQuill.Range, source: EmitterSource, editor: ReactQuill.UnprivilegedEditor): void;\r\n\r\n /**\r\n * Optional. A function to be called when a keydown event occurs in the rich text field.\r\n */\r\n onKeyDown?: React.EventHandler<any>;\r\n\r\n /**\r\n * Optional. A function to be called when a keypress event occurs in the rich text field.\r\n */\r\n onKeyPress?: React.EventHandler<any>;\r\n\r\n /**\r\n * Optional. A function to be called when a keyup event occurs in the rich text field.\r\n */\r\n onKeyUp?: React.EventHandler<any>;\r\n\r\n /**\r\n * Required. The current value of the rich text field.\r\n */\r\n value: any;\r\n\r\n /**\r\n * Required. A function to be called when the value of the rich text field changes.\r\n */\r\n onChange: (value: any) => void;\r\n\r\n /**\r\n * Optional. The validation message to be displayed when the rich text field is in an error state.\r\n */\r\n validationMessage?: string;\r\n\r\n /**\r\n * Optional. A note to be displayed below the rich text field.\r\n */\r\n note?: TextFieldNote;\r\n\r\n /**\r\n * Optional. The size of the rich text field. Can be 'Small' or 'Medium'.\r\n */\r\n size?: Size.Small | Size.Medium;\r\n\r\n /**\r\n * Optional. The state of the rich text field. Can be 'Invalid' or 'Valid'.\r\n */\r\n state?: States.Invalid | States.Valid;\r\n}\r\n\r\nexport const RichTextField = React.forwardRef<any, RichTextFieldProps>(({\r\n readOnly,\r\n disabled,\r\n validationMessage,\r\n note,\r\n size = Size.Medium,\r\n state,\r\n resizable,\r\n modules,\r\n formats,\r\n ...rest\r\n }: RichTextFieldProps, ref) => {\r\n\r\n const theme = useTheme();\r\n let m = {...(modules ?? {}), toolbar: modules?.toolbar ?? defaultToolBarOptions};\r\n let f = formats ?? Object.values(RichTextFieldFormats).filter(a => a !== RichTextFieldFormats.Image && a !== RichTextFieldFormats.Video && a !== RichTextFieldFormats.Formula);\r\n\r\n return (\r\n <RichTextFieldContainer\r\n className={`${resizable ? 'resizable' : ''} ${size} ${state || ''} ${readOnly ? 'readonly' : ''} ${disabled ? 'disabled' : ''}`}>\r\n <ReactQuill ref={ref}\r\n readOnly={readOnly || disabled}\r\n modules={m}\r\n theme={'snow'}\r\n formats={f}\r\n {...rest}\r\n />\r\n {validationMessage && (\r\n <ValidationMessage className={size || ''} type={state ?? States.Invalid}>\r\n {\r\n state === States.Valid\r\n ? <CheckMark color={COLORS.generateToken({componentType:'text', defaultVariant:'positive'}, theme)}/>\r\n : <TechnicalWarning color={COLORS.generateToken({componentType:'text', defaultVariant:'critical'}, theme)}/>\r\n }\r\n <span>{validationMessage}</span>\r\n </ValidationMessage>\r\n )}\r\n {note && !disabled && (\r\n <NoteMessage className={size}>\r\n {note.icon}\r\n <span>{note.message}</span>\r\n </NoteMessage>\r\n )}\r\n </RichTextFieldContainer>\r\n )\r\n});"],"mappings":"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","ignoreList":[]}
@@ -17,7 +17,8 @@ export const RichTextFieldContainer = styled.div`
17
17
  .quill {
18
18
  width: 100%;
19
19
  margin-bottom: 4px;
20
- overflow: hidden;
20
+ overflow: visible;
21
+ position: relative;
21
22
 
22
23
  box-shadow: inset 0 0 0 1px ${props => COLORS.generateToken({
23
24
  componentType: 'border',
@@ -94,6 +95,20 @@ export const RichTextFieldContainer = styled.div`
94
95
  componentType: 'border',
95
96
  defaultVariant: 'subtle'
96
97
  }, props.theme)};
98
+ position: relative;
99
+ z-index: 1;
100
+ }
101
+
102
+ .ql-tooltip {
103
+ z-index: 1000 !important;
104
+ position: absolute !important;
105
+ left: 0 !important;
106
+ right: auto !important;
107
+ transform: none !important;
108
+ }
109
+
110
+ .ql-tooltip.ql-editing {
111
+ left: 8px !important;
97
112
  }
98
113
 
99
114
  .quill.valid .ql-toolbar,
@@ -110,7 +125,7 @@ export const RichTextFieldContainer = styled.div`
110
125
 
111
126
  .ql-container.ql-snow {
112
127
  border: none;
113
- overflow-y: hidden;
128
+ overflow-y: visible;
114
129
  padding: 8px;
115
130
  }
116
131
 
@@ -126,12 +141,13 @@ export const RichTextFieldContainer = styled.div`
126
141
 
127
142
  .quill {
128
143
  flex: none;
129
- overflow: initial;
144
+ overflow: visible;
130
145
  }
131
146
 
132
147
  .ql-container {
133
148
  flex: none;
134
149
  resize: vertical;
150
+ overflow-y: hidden;
135
151
  }
136
152
 
137
153
  .ql-editor {
@@ -1 +1 @@
1
- {"version":3,"file":"RichTextField.js","names":["React","ReactQuill","styled","useTheme","NoteMessage","readOnlyState","ValidationMessage","Size","States","COLORS","ComponentMStyling","ComponentSStyling","ComponentTextStyle","scrollBarStyling","CheckMark","TechnicalWarning","jsx","_jsx","jsxs","_jsxs","RichTextFieldContainer","div","props","generateToken","componentType","defaultVariant","theme","state","Regular","Italic","Small","RichTextFieldFormats","defaultToolBarOptions","header","RichTextField","forwardRef","_ref","ref","readOnly","disabled","validationMessage","note","size","Medium","resizable","modules","formats","rest","_objectWithoutProperties","_excluded","m","_objectSpread","toolbar","f","Object","values","filter","a","Image","Video","Formula","className","children","type","Invalid","Valid","color","icon","message","propTypes","id","_pt","string","placeholder","bool","objectOf","any","arrayOf","oneOf","onKeyDown","func","onKeyPress","onKeyUp","value","isRequired","onChange"],"sources":["../../src/InputFields/RichTextField.tsx"],"sourcesContent":["import React from 'react';\r\nimport ReactQuill, { EmitterSource } from \"react-quill-new\";\r\nimport {TextFieldNote} from \"./types\";\r\nimport styled, { useTheme } from \"styled-components\";\r\nimport {NoteMessage, readOnlyState, ValidationMessage} from \"./styling\";\r\nimport {Size, States} from \"../types\";\r\nimport {COLORS, ComponentMStyling, ComponentSStyling, ComponentTextStyle, scrollBarStyling} from \"../styles\";\r\nimport {CheckMark, TechnicalWarning} from \"../icons/systemicons\";\r\nimport 'react-quill-new/dist/quill.snow.css';\r\n\r\nexport const RichTextFieldContainer = styled.div`\r\n .quill {\r\n width: 100%;\r\n margin-bottom: 4px;\r\n overflow: hidden;\r\n\r\n box-shadow: inset 0 0 0 1px ${props => COLORS.generateToken({componentType:'border', defaultVariant:'default'}, props.theme)};\r\n border-radius: 4px;\r\n }\r\n\r\n .quill.valid {\r\n box-shadow: inset 0 0 0 2px ${props => COLORS.generateToken({componentType:'border', defaultVariant:'positive'}, props.theme)};\r\n }\r\n\r\n .quill.invalid {\r\n box-shadow: inset 0 0 0 2px ${props => COLORS.generateToken({componentType:'border', defaultVariant:'critical'}, props.theme)};\r\n }\r\n\r\n .quill:hover {\r\n box-shadow: inset 0 0 0 2px ${props => COLORS.generateToken({componentType:'border', state:'hover'}, props.theme)};\r\n }\r\n\r\n .quill:focus-within {\r\n box-shadow: inset 0 0 0 2px ${props => COLORS.generateToken({componentType:'border', state:'hover'}, props.theme)};\r\n }\r\n\r\n .ql-editor,\r\n .ql-editor p{\r\n ${props => ComponentSStyling(ComponentTextStyle.Regular, COLORS.generateToken({componentType:'text', defaultVariant:'default'}, props.theme))}\r\n }\r\n\r\n .ql-editor.ql-blank::before {\r\n ${props => ComponentSStyling(ComponentTextStyle.Italic, COLORS.generateToken({componentType:'text', defaultVariant:'subtle'}, props.theme))}\r\n }\r\n\r\n &.medium {\r\n .ql-editor,\r\n .ql-editor p{\r\n ${props => ComponentMStyling(ComponentTextStyle.Regular, COLORS.generateToken({componentType:'text', defaultVariant:'default'}, props.theme))}\r\n }\r\n\r\n .ql-editor.ql-blank::before {\r\n ${props => ComponentMStyling(ComponentTextStyle.Italic, COLORS.generateToken({componentType:'text', defaultVariant:'subtle'}, props.theme))}\r\n }\r\n }\r\n\r\n .ql-toolbar.ql-snow {\r\n border: none;\r\n padding: 8px 7px;\r\n margin: 0 1px;\r\n border-bottom: 1px solid ${props => COLORS.generateToken({componentType:'border', defaultVariant:'subtle'}, props.theme)};\r\n }\r\n\r\n .quill.valid .ql-toolbar,\r\n .quill.invalid .ql-toolbar,\r\n .quill:hover .ql-toolbar,\r\n .quill:focus-within .ql-toolbar {\r\n padding: 8px 6px;\r\n margin: 0 2px;\r\n }\r\n\r\n .ql-container {\r\n font-family: unset !important;\r\n }\r\n\r\n .ql-container.ql-snow {\r\n border: none;\r\n overflow-y: hidden;\r\n padding: 8px;\r\n }\r\n\r\n .ql-editor {\r\n padding: 8px;\r\n overflow-y: auto;\r\n\r\n ${scrollBarStyling(Size.Small)}\r\n }\r\n\r\n &.resizable {\r\n height: initial;\r\n\r\n .quill {\r\n flex: none;\r\n overflow: initial;\r\n }\r\n\r\n .ql-container {\r\n flex: none;\r\n resize: vertical;\r\n }\r\n\r\n .ql-editor {\r\n height: 100%;\r\n }\r\n }\r\n\r\n &.readonly {\r\n .quill {\r\n ${readOnlyState}\r\n }\r\n }\r\n\r\n &.disabled {\r\n cursor: not-allowed;\r\n\r\n .quill {\r\n pointer-events: none;\r\n box-shadow: inset 0 0 0 1px ${props => COLORS.generateToken({componentType:'border', state:'disabled'}, props.theme)};\r\n color: ${props => COLORS.generateToken({componentType:'text', state:'disabled'}, props.theme)};\r\n\r\n .ql-editor.ql-blank::before {\r\n color: ${props => COLORS.generateToken({componentType:'text', state:'disabled'}, props.theme)};\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport enum RichTextFieldFormats {\r\n Background = 'background',\r\n Bold = 'bold',\r\n Color = 'color',\r\n Font = 'font',\r\n Code = 'code',\r\n Italic = 'italic',\r\n Link = 'link',\r\n Size = 'size',\r\n Strike = 'strike',\r\n Script = 'script',\r\n Underline = 'underline',\r\n Blockquote = 'blockquote',\r\n Header = 'header',\r\n Indent = 'indent',\r\n List = 'list',\r\n Align = 'align',\r\n Direction = 'direction',\r\n CodeBlock = 'code-block',\r\n Formula = 'formula',\r\n Image = 'image',\r\n Video = 'video'\r\n}\r\n\r\nconst defaultToolBarOptions = [\r\n [{header: [1, 2, 3, false]}],\r\n ['bold', 'italic', 'underline', 'strike'],\r\n [{'list': 'ordered'}, {'list': 'bullet'}],\r\n ['link'],\r\n ['clean']\r\n];\r\n\r\nexport interface RichTextFieldProps {\r\n /**\r\n * Optional. The ID of the rich text field.\r\n */\r\n id?: string;\r\n\r\n /**\r\n * Optional. The CSS class name of the rich text field.\r\n */\r\n className?: string;\r\n\r\n /**\r\n * Optional. The placeholder text to be displayed in the rich text field when it is empty.\r\n */\r\n placeholder?: string;\r\n\r\n /**\r\n * Optional. A boolean indicating whether the rich text field is read-only.\r\n */\r\n readOnly?: boolean;\r\n\r\n /**\r\n * Optional. A boolean indicating whether the rich text field is disabled.\r\n */\r\n disabled?: boolean;\r\n\r\n /**\r\n * Optional. A boolean indicating whether the rich text field is resizable.\r\n */\r\n resizable?: boolean;\r\n\r\n /**\r\n * Optional. An object containing the modules to be used by the rich text field.\r\n */\r\n modules?: Record<string, unknown>;\r\n\r\n /**\r\n * Optional. An array of formats to be used by the rich text field.\r\n */\r\n formats?: RichTextFieldFormats[];\r\n\r\n /**\r\n * Optional. A function to be called when the rich text field gains focus.\r\n */\r\n onFocus?(selection: ReactQuill.Range, source: EmitterSource, editor: ReactQuill.UnprivilegedEditor): void;\r\n\r\n /**\r\n * Optional. A function to be called when the rich text field loses focus.\r\n */\r\n onBlur?(previousSelection: ReactQuill.Range, source: EmitterSource, editor: ReactQuill.UnprivilegedEditor): void;\r\n\r\n /**\r\n * Optional. A function to be called when a keydown event occurs in the rich text field.\r\n */\r\n onKeyDown?: React.EventHandler<any>;\r\n\r\n /**\r\n * Optional. A function to be called when a keypress event occurs in the rich text field.\r\n */\r\n onKeyPress?: React.EventHandler<any>;\r\n\r\n /**\r\n * Optional. A function to be called when a keyup event occurs in the rich text field.\r\n */\r\n onKeyUp?: React.EventHandler<any>;\r\n\r\n /**\r\n * Required. The current value of the rich text field.\r\n */\r\n value: any;\r\n\r\n /**\r\n * Required. A function to be called when the value of the rich text field changes.\r\n */\r\n onChange: (value: any) => void;\r\n\r\n /**\r\n * Optional. The validation message to be displayed when the rich text field is in an error state.\r\n */\r\n validationMessage?: string;\r\n\r\n /**\r\n * Optional. A note to be displayed below the rich text field.\r\n */\r\n note?: TextFieldNote;\r\n\r\n /**\r\n * Optional. The size of the rich text field. Can be 'Small' or 'Medium'.\r\n */\r\n size?: Size.Small | Size.Medium;\r\n\r\n /**\r\n * Optional. The state of the rich text field. Can be 'Invalid' or 'Valid'.\r\n */\r\n state?: States.Invalid | States.Valid;\r\n}\r\n\r\nexport const RichTextField = React.forwardRef<any, RichTextFieldProps>(({\r\n readOnly,\r\n disabled,\r\n validationMessage,\r\n note,\r\n size = Size.Medium,\r\n state,\r\n resizable,\r\n modules,\r\n formats,\r\n ...rest\r\n }: RichTextFieldProps, ref) => {\r\n\r\n const theme = useTheme();\r\n let m = {...(modules ?? {}), toolbar: modules?.toolbar ?? defaultToolBarOptions};\r\n let f = formats ?? Object.values(RichTextFieldFormats).filter(a => a !== RichTextFieldFormats.Image && a !== RichTextFieldFormats.Video && a !== RichTextFieldFormats.Formula);\r\n\r\n return (\r\n <RichTextFieldContainer\r\n className={`${resizable ? 'resizable' : ''} ${size} ${state || ''} ${readOnly ? 'readonly' : ''} ${disabled ? 'disabled' : ''}`}>\r\n <ReactQuill ref={ref}\r\n readOnly={readOnly || disabled}\r\n modules={m}\r\n theme={'snow'}\r\n formats={f}\r\n {...rest}\r\n />\r\n {validationMessage && (\r\n <ValidationMessage className={size || ''} type={state ?? States.Invalid}>\r\n {\r\n state === States.Valid\r\n ? <CheckMark color={COLORS.generateToken({componentType:'text', defaultVariant:'positive'}, theme)}/>\r\n : <TechnicalWarning color={COLORS.generateToken({componentType:'text', defaultVariant:'critical'}, theme)}/>\r\n }\r\n <span>{validationMessage}</span>\r\n </ValidationMessage>\r\n )}\r\n {note && !disabled && (\r\n <NoteMessage className={size}>\r\n {note.icon}\r\n <span>{note.message}</span>\r\n </NoteMessage>\r\n )}\r\n </RichTextFieldContainer>\r\n )\r\n});"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"RichTextField.js","names":["React","ReactQuill","styled","useTheme","NoteMessage","readOnlyState","ValidationMessage","Size","States","COLORS","ComponentMStyling","ComponentSStyling","ComponentTextStyle","scrollBarStyling","CheckMark","TechnicalWarning","jsx","_jsx","jsxs","_jsxs","RichTextFieldContainer","div","props","generateToken","componentType","defaultVariant","theme","state","Regular","Italic","Small","RichTextFieldFormats","defaultToolBarOptions","header","RichTextField","forwardRef","_ref","ref","readOnly","disabled","validationMessage","note","size","Medium","resizable","modules","formats","rest","_objectWithoutProperties","_excluded","m","_objectSpread","toolbar","f","Object","values","filter","a","Image","Video","Formula","className","children","type","Invalid","Valid","color","icon","message","propTypes","id","_pt","string","placeholder","bool","objectOf","any","arrayOf","oneOf","onKeyDown","func","onKeyPress","onKeyUp","value","isRequired","onChange"],"sources":["../../src/InputFields/RichTextField.tsx"],"sourcesContent":["import React from 'react';\r\nimport ReactQuill, { EmitterSource } from \"react-quill-new\";\r\nimport {TextFieldNote} from \"./types\";\r\nimport styled, { useTheme } from \"styled-components\";\r\nimport {NoteMessage, readOnlyState, ValidationMessage} from \"./styling\";\r\nimport {Size, States} from \"../types\";\r\nimport {COLORS, ComponentMStyling, ComponentSStyling, ComponentTextStyle, scrollBarStyling} from \"../styles\";\r\nimport {CheckMark, TechnicalWarning} from \"../icons/systemicons\";\r\nimport 'react-quill-new/dist/quill.snow.css';\r\n\r\nexport const RichTextFieldContainer = styled.div`\r\n .quill {\r\n width: 100%;\r\n margin-bottom: 4px;\r\n overflow: visible;\r\n position: relative;\r\n\r\n box-shadow: inset 0 0 0 1px ${props => COLORS.generateToken({componentType:'border', defaultVariant:'default'}, props.theme)};\r\n border-radius: 4px;\r\n }\r\n\r\n .quill.valid {\r\n box-shadow: inset 0 0 0 2px ${props => COLORS.generateToken({componentType:'border', defaultVariant:'positive'}, props.theme)};\r\n }\r\n\r\n .quill.invalid {\r\n box-shadow: inset 0 0 0 2px ${props => COLORS.generateToken({componentType:'border', defaultVariant:'critical'}, props.theme)};\r\n }\r\n\r\n .quill:hover {\r\n box-shadow: inset 0 0 0 2px ${props => COLORS.generateToken({componentType:'border', state:'hover'}, props.theme)};\r\n }\r\n\r\n .quill:focus-within {\r\n box-shadow: inset 0 0 0 2px ${props => COLORS.generateToken({componentType:'border', state:'hover'}, props.theme)};\r\n }\r\n\r\n .ql-editor,\r\n .ql-editor p{\r\n ${props => ComponentSStyling(ComponentTextStyle.Regular, COLORS.generateToken({componentType:'text', defaultVariant:'default'}, props.theme))}\r\n }\r\n\r\n .ql-editor.ql-blank::before {\r\n ${props => ComponentSStyling(ComponentTextStyle.Italic, COLORS.generateToken({componentType:'text', defaultVariant:'subtle'}, props.theme))}\r\n }\r\n\r\n &.medium {\r\n .ql-editor,\r\n .ql-editor p{\r\n ${props => ComponentMStyling(ComponentTextStyle.Regular, COLORS.generateToken({componentType:'text', defaultVariant:'default'}, props.theme))}\r\n }\r\n\r\n .ql-editor.ql-blank::before {\r\n ${props => ComponentMStyling(ComponentTextStyle.Italic, COLORS.generateToken({componentType:'text', defaultVariant:'subtle'}, props.theme))}\r\n }\r\n }\r\n\r\n .ql-toolbar.ql-snow {\r\n border: none;\r\n padding: 8px 7px;\r\n margin: 0 1px;\r\n border-bottom: 1px solid ${props => COLORS.generateToken({componentType:'border', defaultVariant:'subtle'}, props.theme)};\r\n position: relative;\r\n z-index: 1;\r\n }\r\n\r\n .ql-tooltip {\r\n z-index: 1000 !important;\r\n position: absolute !important;\r\n left: 0 !important;\r\n right: auto !important;\r\n transform: none !important;\r\n }\r\n\r\n .ql-tooltip.ql-editing {\r\n left: 8px !important;\r\n }\r\n\r\n .quill.valid .ql-toolbar,\r\n .quill.invalid .ql-toolbar,\r\n .quill:hover .ql-toolbar,\r\n .quill:focus-within .ql-toolbar {\r\n padding: 8px 6px;\r\n margin: 0 2px;\r\n }\r\n\r\n .ql-container {\r\n font-family: unset !important;\r\n }\r\n\r\n .ql-container.ql-snow {\r\n border: none;\r\n overflow-y: visible;\r\n padding: 8px;\r\n }\r\n\r\n .ql-editor {\r\n padding: 8px;\r\n overflow-y: auto;\r\n\r\n ${scrollBarStyling(Size.Small)}\r\n }\r\n\r\n &.resizable {\r\n height: initial;\r\n\r\n .quill {\r\n flex: none;\r\n overflow: visible;\r\n }\r\n\r\n .ql-container {\r\n flex: none;\r\n resize: vertical;\r\n overflow-y: hidden;\r\n }\r\n\r\n .ql-editor {\r\n height: 100%;\r\n }\r\n }\r\n\r\n &.readonly {\r\n .quill {\r\n ${readOnlyState}\r\n }\r\n }\r\n\r\n &.disabled {\r\n cursor: not-allowed;\r\n\r\n .quill {\r\n pointer-events: none;\r\n box-shadow: inset 0 0 0 1px ${props => COLORS.generateToken({componentType:'border', state:'disabled'}, props.theme)};\r\n color: ${props => COLORS.generateToken({componentType:'text', state:'disabled'}, props.theme)};\r\n\r\n .ql-editor.ql-blank::before {\r\n color: ${props => COLORS.generateToken({componentType:'text', state:'disabled'}, props.theme)};\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport enum RichTextFieldFormats {\r\n Background = 'background',\r\n Bold = 'bold',\r\n Color = 'color',\r\n Font = 'font',\r\n Code = 'code',\r\n Italic = 'italic',\r\n Link = 'link',\r\n Size = 'size',\r\n Strike = 'strike',\r\n Script = 'script',\r\n Underline = 'underline',\r\n Blockquote = 'blockquote',\r\n Header = 'header',\r\n Indent = 'indent',\r\n List = 'list',\r\n Align = 'align',\r\n Direction = 'direction',\r\n CodeBlock = 'code-block',\r\n Formula = 'formula',\r\n Image = 'image',\r\n Video = 'video'\r\n}\r\n\r\nconst defaultToolBarOptions = [\r\n [{header: [1, 2, 3, false]}],\r\n ['bold', 'italic', 'underline', 'strike'],\r\n [{'list': 'ordered'}, {'list': 'bullet'}],\r\n ['link'],\r\n ['clean']\r\n];\r\n\r\nexport interface RichTextFieldProps {\r\n /**\r\n * Optional. The ID of the rich text field.\r\n */\r\n id?: string;\r\n\r\n /**\r\n * Optional. The CSS class name of the rich text field.\r\n */\r\n className?: string;\r\n\r\n /**\r\n * Optional. The placeholder text to be displayed in the rich text field when it is empty.\r\n */\r\n placeholder?: string;\r\n\r\n /**\r\n * Optional. A boolean indicating whether the rich text field is read-only.\r\n */\r\n readOnly?: boolean;\r\n\r\n /**\r\n * Optional. A boolean indicating whether the rich text field is disabled.\r\n */\r\n disabled?: boolean;\r\n\r\n /**\r\n * Optional. A boolean indicating whether the rich text field is resizable.\r\n */\r\n resizable?: boolean;\r\n\r\n /**\r\n * Optional. An object containing the modules to be used by the rich text field.\r\n */\r\n modules?: Record<string, unknown>;\r\n\r\n /**\r\n * Optional. An array of formats to be used by the rich text field.\r\n */\r\n formats?: RichTextFieldFormats[];\r\n\r\n /**\r\n * Optional. A function to be called when the rich text field gains focus.\r\n */\r\n onFocus?(selection: ReactQuill.Range, source: EmitterSource, editor: ReactQuill.UnprivilegedEditor): void;\r\n\r\n /**\r\n * Optional. A function to be called when the rich text field loses focus.\r\n */\r\n onBlur?(previousSelection: ReactQuill.Range, source: EmitterSource, editor: ReactQuill.UnprivilegedEditor): void;\r\n\r\n /**\r\n * Optional. A function to be called when a keydown event occurs in the rich text field.\r\n */\r\n onKeyDown?: React.EventHandler<any>;\r\n\r\n /**\r\n * Optional. A function to be called when a keypress event occurs in the rich text field.\r\n */\r\n onKeyPress?: React.EventHandler<any>;\r\n\r\n /**\r\n * Optional. A function to be called when a keyup event occurs in the rich text field.\r\n */\r\n onKeyUp?: React.EventHandler<any>;\r\n\r\n /**\r\n * Required. The current value of the rich text field.\r\n */\r\n value: any;\r\n\r\n /**\r\n * Required. A function to be called when the value of the rich text field changes.\r\n */\r\n onChange: (value: any) => void;\r\n\r\n /**\r\n * Optional. The validation message to be displayed when the rich text field is in an error state.\r\n */\r\n validationMessage?: string;\r\n\r\n /**\r\n * Optional. A note to be displayed below the rich text field.\r\n */\r\n note?: TextFieldNote;\r\n\r\n /**\r\n * Optional. The size of the rich text field. Can be 'Small' or 'Medium'.\r\n */\r\n size?: Size.Small | Size.Medium;\r\n\r\n /**\r\n * Optional. The state of the rich text field. Can be 'Invalid' or 'Valid'.\r\n */\r\n state?: States.Invalid | States.Valid;\r\n}\r\n\r\nexport const RichTextField = React.forwardRef<any, RichTextFieldProps>(({\r\n readOnly,\r\n disabled,\r\n validationMessage,\r\n note,\r\n size = Size.Medium,\r\n state,\r\n resizable,\r\n modules,\r\n formats,\r\n ...rest\r\n }: RichTextFieldProps, ref) => {\r\n\r\n const theme = useTheme();\r\n let m = {...(modules ?? {}), toolbar: modules?.toolbar ?? defaultToolBarOptions};\r\n let f = formats ?? Object.values(RichTextFieldFormats).filter(a => a !== RichTextFieldFormats.Image && a !== RichTextFieldFormats.Video && a !== RichTextFieldFormats.Formula);\r\n\r\n return (\r\n <RichTextFieldContainer\r\n className={`${resizable ? 'resizable' : ''} ${size} ${state || ''} ${readOnly ? 'readonly' : ''} ${disabled ? 'disabled' : ''}`}>\r\n <ReactQuill ref={ref}\r\n readOnly={readOnly || disabled}\r\n modules={m}\r\n theme={'snow'}\r\n formats={f}\r\n {...rest}\r\n />\r\n {validationMessage && (\r\n <ValidationMessage className={size || ''} type={state ?? States.Invalid}>\r\n {\r\n state === States.Valid\r\n ? <CheckMark color={COLORS.generateToken({componentType:'text', defaultVariant:'positive'}, theme)}/>\r\n : <TechnicalWarning color={COLORS.generateToken({componentType:'text', defaultVariant:'critical'}, theme)}/>\r\n }\r\n <span>{validationMessage}</span>\r\n </ValidationMessage>\r\n )}\r\n {note && !disabled && (\r\n <NoteMessage className={size}>\r\n {note.icon}\r\n <span>{note.message}</span>\r\n </NoteMessage>\r\n )}\r\n </RichTextFieldContainer>\r\n )\r\n});"],"mappings":"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","ignoreList":[]}
@@ -290,15 +290,21 @@ const Table = props => {
290
290
  const currentList = currentPageRows.map(row => keyExpr ? row[keyExpr] : row);
291
291
  switch (selectAllState) {
292
292
  case 'all':
293
- setSelected([...selected].filter(item => !currentList.includes(item)));
293
+ const all = [...selected].filter(item => !currentList.includes(item));
294
+ setSelected(all);
295
+ props.onSelectionChange && props.onSelectionChange(all);
294
296
  setSelectAllState('none');
295
297
  break;
296
298
  case 'none':
297
- setSelected([...selected, ...currentList]);
299
+ const none = [...selected, ...currentList];
300
+ setSelected(none);
301
+ props.onSelectionChange && props.onSelectionChange(none);
298
302
  setSelectAllState('all');
299
303
  break;
300
304
  case 'some':
301
- setSelected([...selected, ...currentList.filter(item => !selected.includes(item))]);
305
+ const some = [...selected, ...currentList.filter(item => !selected.includes(item))];
306
+ setSelected(some);
307
+ props.onSelectionChange && props.onSelectionChange(some);
302
308
  setSelectAllState('all');
303
309
  break;
304
310
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Table.cjs","names":["React","_interopRequireWildcard","require","_types","_TableStyles","_LoadingIndicator","_TableHeaders","_interopRequireDefault","_TableFooter","_TableBody","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","Table","props","onPreviousPageClick","onNextPageClick","onRowsPerPageChange","onTriggerSortingChange","columns","rows","remoteOperations","pagination","showLoadingIndicator","selectable","multiSelect","keyExpr","sortProps","accordion","collapsed","collapsedRows","rowsPerPageLabel","loaderZIndex","rowsPerPage","setRowsPerPage","useState","filteredRows","setFilteredRows","currentPageRows","setCurrentPageRows","currentPage","setCurrentPage","sort","setSort","from","setFrom","to","setTo","total","setTotal","isCollapsed","setIsCollapsed","selectAllState","setSelectAllState","selected","setSelected","undefined","useEffect","column","direction","allowClearingSort","selectedRows","currentList","map","row","count","item","includes","filterAndSortRows","tmpFilteredRows","matchFilterCriteria","filterValue","key","toLowerCase","indexOf","b","rowsFrom","rowsTo","slice","sortTableColumn","columnKey","sortDirection","previousPage","nextPage","changeRowsPerPage","value","onRowClick","selectedText","window","getSelection","toString","currentSelection","existing","splice","onSelectionChange","onSelectAllClick","jsxs","TableWrapper","className","border","children","jsx","sortByColumn","prevPage","StyledTableSpinner","$zindex","LoadingIndicator","size","Size","Medium","_default","exports"],"sources":["../../src/Table/Table.tsx"],"sourcesContent":["/**\r\n * Import React libraries.\r\n */\r\nimport * as React from 'react';\r\n\r\n/**\r\n * Import custom components.\r\n */\r\nimport {Size} from '../types'\r\n\r\n/**\r\n * Import custom styles.\r\n */\r\nimport {StyledTable, StyledTableSpinner, TableWrapper} from './TableStyles';\r\n\r\n/**\r\n * Import custom types.\r\n */\r\nimport {TableProps, TableColumn, TableSortingDirection, TableSortProps} from './TableTypes';\r\nimport {LoadingIndicator} from '../LoadingIndicator';\r\nimport TableHeader from './TableHeaders';\r\nimport TableFooter from './TableFooter';\r\nimport TableBody from './TableBody';\r\n\r\nconst Table: React.FunctionComponent<TableProps> = (props: TableProps) => {\r\n let {\r\n onPreviousPageClick,\r\n onNextPageClick,\r\n onRowsPerPageChange,\r\n onTriggerSortingChange,\r\n columns,\r\n rows,\r\n remoteOperations,\r\n pagination,\r\n showLoadingIndicator,\r\n selectable,\r\n multiSelect,\r\n keyExpr,\r\n sortProps,\r\n accordion,\r\n collapsed = true,\r\n\r\n collapsedRows,\r\n rowsPerPageLabel,\r\n loaderZIndex\r\n } = props;\r\n\r\n // States used within the component\r\n const [rowsPerPage, setRowsPerPage] = React.useState<number>(10);\r\n const [filteredRows, setFilteredRows] = React.useState<any[]>([]);\r\n const [currentPageRows, setCurrentPageRows] = React.useState<any[]>([]);\r\n const [currentPage, setCurrentPage] = React.useState<number>(1);\r\n const [sort, setSort] = React.useState<TableSortProps | undefined>();\r\n const [from, setFrom] = React.useState<number>();\r\n const [to, setTo] = React.useState<number>();\r\n const [total, setTotal] = React.useState<number>();\r\n\r\n const [isCollapsed, setIsCollapsed] = React.useState(true);\r\n\r\n const [selectAllState, setSelectAllState] = React.useState<'all' | 'some' | 'none'>('none');\r\n\r\n const [selected, setSelected] = React.useState<any | any[]>(multiSelect ? [] : undefined);\r\n\r\n React.useEffect(() => {\r\n setSort({\r\n column: sortProps?.column ?? '', \r\n direction: sortProps?.direction ?? 'asc', \r\n allowClearingSort: sortProps?.allowClearingSort === undefined ? true : sortProps.allowClearingSort\r\n });\r\n }, [sortProps])\r\n\r\n React.useEffect(() => {\r\n setSelected(props.selectedRows || (multiSelect ? [] : undefined))\r\n }, [props.selectedRows, multiSelect])\r\n\r\n /**\r\n * update select all checkbox state\r\n */\r\n React.useEffect(() => {\r\n if (multiSelect) {\r\n const currentList = currentPageRows.map(row => keyExpr ? row[keyExpr] : row);\r\n const count = selected.filter((item: any) => currentList.includes(item)).length;\r\n\r\n setSelectAllState(count === currentList.length ? 'all' : count > 0 ? 'some' : 'none');\r\n }\r\n }, [currentPageRows, multiSelect, selected, keyExpr])\r\n\r\n /**\r\n * Takes care of remote pagination.\r\n * Works only in case remote pagination is set to true.\r\n */\r\n React.useEffect(() => {\r\n if (remoteOperations) {\r\n setCurrentPageRows(rows);\r\n\r\n // Let's assign pagination values\r\n setFrom(pagination?.from);\r\n setTo(pagination?.to);\r\n setTotal(pagination?.total);\r\n setCurrentPage(pagination?.currentPage!);\r\n setRowsPerPage(pagination?.rowsPerPage!);\r\n }\r\n }, [remoteOperations, pagination, rows]);\r\n\r\n /**\r\n * Sets number of rows to display when accordion.\r\n */\r\n React.useEffect(() => {\r\n if (!accordion) return;\r\n\r\n setRowsPerPage(isCollapsed ? collapsedRows || 10 : rows.length);\r\n }, [rows, accordion, collapsedRows, isCollapsed])\r\n\r\n React.useEffect(() => {\r\n if (!accordion) return;\r\n\r\n setIsCollapsed(!!collapsed);\r\n }, [accordion, collapsed])\r\n\r\n /**\r\n * Filters out a rows by specific column filters and sorts them if any sorting is set.\r\n * @returns Filtered and sorted rows.\r\n */\r\n const filterAndSortRows = (): any[] => {\r\n let tmpFilteredRows = rows.filter((row) => {\r\n // Let's start with matched filter criteria\r\n let matchFilterCriteria = true;\r\n\r\n // Let's go through columns\r\n for (const column of columns) {\r\n // Let's check if filter value is specified for the column\r\n // And if it doesn't match the current row column value\r\n // Then let's update match filter criteria to failed\r\n if (column.filterValue && row[column.key].toLowerCase().indexOf(column.filterValue.toLowerCase()) === -1) {\r\n matchFilterCriteria = false;\r\n }\r\n }\r\n\r\n // Let's return row only in case match filter criteria succeeds\r\n if (matchFilterCriteria) {\r\n return row;\r\n }\r\n });\r\n\r\n // Let's apply sorting if needed\r\n if (!!sort?.column && !!sort?.direction) {\r\n // Let's sort the rows\r\n tmpFilteredRows.sort((a, b) => {\r\n if (a[sort.column!] > b[sort.column!]) {\r\n return sort.direction! === 'asc' ? 1 : -1;\r\n } else if (a[sort.column!] < b[sort.column!]) {\r\n return sort.direction! === 'asc' ? -1 : 1;\r\n } else {\r\n return 0;\r\n }\r\n });\r\n }\r\n\r\n // Let's return filtered rows\r\n return tmpFilteredRows;\r\n };\r\n\r\n /**\r\n * Takes care of local pagination.\r\n * Works only in case remote pagination is not defined or is set to false.\r\n */\r\n React.useEffect(() => {\r\n if (!remoteOperations) {\r\n // Let's retrieve temporary filtered rows and update globally filtered rows\r\n const tmpFilteredRows = filterAndSortRows();\r\n setFilteredRows(tmpFilteredRows);\r\n setTotal(tmpFilteredRows.length);\r\n\r\n // Assign rows from and rows to\r\n const rowsFrom = (currentPage - 1) * rowsPerPage;\r\n const rowsTo = rowsFrom + rowsPerPage >= tmpFilteredRows.length ? tmpFilteredRows.length : rowsFrom + rowsPerPage;\r\n\r\n // Set from and to values\r\n setFrom(rowsFrom + 1);\r\n setTo(rowsTo);\r\n\r\n // Filter out the rows\r\n setCurrentPageRows(tmpFilteredRows.slice(rowsFrom, rowsTo));\r\n }\r\n }, [rowsPerPage, rows, currentPage, columns, sort, remoteOperations]);\r\n\r\n\r\n /**\r\n * Applies a specific sorting to a column.\r\n * If no sorting exists, then applies ascending initially\r\n * @param column - Column to which sorting should be applied.\r\n */\r\n const sortTableColumn = (column: TableColumn): void => {\r\n let columnKey = '';\r\n let sortDirection: TableSortingDirection | undefined = undefined;\r\n\r\n if (sort?.column !== column.key) {\r\n columnKey = column.key;\r\n sortDirection = 'asc';\r\n } else {\r\n if (sort?.direction === 'desc' && sort?.allowClearingSort) {\r\n columnKey = '';\r\n sortDirection = undefined;\r\n } else {\r\n columnKey = sort.column;\r\n sortDirection = sort.direction === 'asc' ? 'desc' : 'asc';\r\n }\r\n }\r\n\r\n if(columnKey == '')\r\n setSort({ column: '', direction: 'asc', allowClearingSort: sort?.allowClearingSort});\r\n else\r\n setSort({column: columnKey, direction: sortDirection!, allowClearingSort: sort?.allowClearingSort});\r\n\r\n remoteOperations && onTriggerSortingChange && onTriggerSortingChange(columnKey, sortDirection);\r\n };\r\n\r\n /**\r\n * Navigates user back to the previous page and updates the current table page.\r\n */\r\n const previousPage = () => {\r\n if (remoteOperations) {\r\n // Let's inform parent component about page change\r\n if (onPreviousPageClick) {\r\n onPreviousPageClick();\r\n }\r\n } else {\r\n // Let's change the page within the component\r\n setCurrentPage(currentPage > 1 ? currentPage - 1 : 1);\r\n }\r\n };\r\n\r\n /**\r\n * Navigates user to the next page and updates the current table page.\r\n */\r\n const nextPage = () => {\r\n if (remoteOperations) {\r\n // Let's inform parent component about page change\r\n if (onNextPageClick) {\r\n onNextPageClick();\r\n }\r\n } else {\r\n // Let's change the page within the component\r\n setCurrentPage(currentPage * rowsPerPage >= filteredRows.length ? currentPage : currentPage + 1);\r\n }\r\n };\r\n\r\n /**\r\n * Updates the rows per page value and refreshes the table content accordingly.\r\n * @param value - Newly selected rows per page value.\r\n */\r\n const changeRowsPerPage = (value: number) => {\r\n // Let's check if we are using remote pagination\r\n if (remoteOperations) {\r\n // Inform parent component about rows per page change\r\n if (onRowsPerPageChange) {\r\n onRowsPerPageChange(value);\r\n }\r\n } else {\r\n // Let's reset current page to 1\r\n setCurrentPage(1);\r\n }\r\n\r\n // Let's set rows per page\r\n setRowsPerPage(value);\r\n };\r\n\r\n\r\n /**\r\n * Function which is called when a mouse click happens on a row to pass data to the parent component.\r\n * @param row - Row in which the link is located.\r\n */\r\n const onRowClick = (row: any): void => {\r\n const selectedText = window?.getSelection()?.toString();\r\n\r\n if (selectedText?.length === 0 && selectable) {\r\n const value = keyExpr ? row[keyExpr] : row;\r\n let currentSelection = value;\r\n if (!!multiSelect) {\r\n const existing = selected?.indexOf(value);\r\n if (existing > -1) {\r\n currentSelection = [...selected];\r\n currentSelection.splice(existing, 1);\r\n } else {\r\n currentSelection = [...selected, currentSelection];\r\n }\r\n }\r\n\r\n setSelected(currentSelection)\r\n props.onSelectionChange && props.onSelectionChange(currentSelection);\r\n }\r\n };\r\n\r\n /**\r\n * Function which is called when user clicks checkbox to select or deselect all rows.\r\n */\r\n const onSelectAllClick = () => {\r\n const currentList = currentPageRows.map(row => keyExpr ? row[keyExpr] : row);\r\n\r\n switch (selectAllState) {\r\n case 'all':\r\n setSelected([...selected].filter(item => !currentList.includes(item)));\r\n setSelectAllState('none');\r\n break;\r\n case 'none':\r\n setSelected([...selected, ...currentList]);\r\n setSelectAllState('all');\r\n break;\r\n case 'some':\r\n setSelected([...selected, ...currentList.filter(item => !selected.includes(item))]);\r\n setSelectAllState('all');\r\n break;\r\n }\r\n };\r\n\r\n /**\r\n * Return Table component.\r\n */\r\n return (\r\n <TableWrapper className={props.border ? 'border' : undefined}>\r\n <TableHeader {...props}/>\r\n <TableBody {...props}\r\n currentPageRows={currentPageRows}\r\n selected={selected}\r\n onRowClick={onRowClick}\r\n sortByColumn={sortTableColumn}\r\n onSelectAllClick={onSelectAllClick}\r\n sortProps={sort}\r\n selectAllState={selectAllState}/>\r\n <TableFooter {...props}\r\n onRowsPerPageChange={changeRowsPerPage}\r\n rowsPerPage={rowsPerPage}\r\n setIsCollapsed={setIsCollapsed}\r\n isCollapsed={isCollapsed}\r\n from={from}\r\n to={to}\r\n total={total}\r\n nextPage={nextPage}\r\n prevPage={previousPage}/>\r\n {showLoadingIndicator && (\r\n <StyledTableSpinner $zindex={loaderZIndex}>\r\n <LoadingIndicator size={Size.Medium}/>\r\n </StyledTableSpinner>\r\n )}\r\n </TableWrapper>\r\n );\r\n};\r\n\r\nexport default Table;\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Table.cjs","names":["React","_interopRequireWildcard","require","_types","_TableStyles","_LoadingIndicator","_TableHeaders","_interopRequireDefault","_TableFooter","_TableBody","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","Table","props","onPreviousPageClick","onNextPageClick","onRowsPerPageChange","onTriggerSortingChange","columns","rows","remoteOperations","pagination","showLoadingIndicator","selectable","multiSelect","keyExpr","sortProps","accordion","collapsed","collapsedRows","rowsPerPageLabel","loaderZIndex","rowsPerPage","setRowsPerPage","useState","filteredRows","setFilteredRows","currentPageRows","setCurrentPageRows","currentPage","setCurrentPage","sort","setSort","from","setFrom","to","setTo","total","setTotal","isCollapsed","setIsCollapsed","selectAllState","setSelectAllState","selected","setSelected","undefined","useEffect","column","direction","allowClearingSort","selectedRows","currentList","map","row","count","item","includes","filterAndSortRows","tmpFilteredRows","matchFilterCriteria","filterValue","key","toLowerCase","indexOf","b","rowsFrom","rowsTo","slice","sortTableColumn","columnKey","sortDirection","previousPage","nextPage","changeRowsPerPage","value","onRowClick","selectedText","window","getSelection","toString","currentSelection","existing","splice","onSelectionChange","onSelectAllClick","all","none","some","jsxs","TableWrapper","className","border","children","jsx","sortByColumn","prevPage","StyledTableSpinner","$zindex","LoadingIndicator","size","Size","Medium","_default","exports"],"sources":["../../src/Table/Table.tsx"],"sourcesContent":["/**\r\n * Import React libraries.\r\n */\r\nimport * as React from 'react';\r\n\r\n/**\r\n * Import custom components.\r\n */\r\nimport {Size} from '../types'\r\n\r\n/**\r\n * Import custom styles.\r\n */\r\nimport {StyledTable, StyledTableSpinner, TableWrapper} from './TableStyles';\r\n\r\n/**\r\n * Import custom types.\r\n */\r\nimport {TableProps, TableColumn, TableSortingDirection, TableSortProps} from './TableTypes';\r\nimport {LoadingIndicator} from '../LoadingIndicator';\r\nimport TableHeader from './TableHeaders';\r\nimport TableFooter from './TableFooter';\r\nimport TableBody from './TableBody';\r\n\r\nconst Table: React.FunctionComponent<TableProps> = (props: TableProps) => {\r\n let {\r\n onPreviousPageClick,\r\n onNextPageClick,\r\n onRowsPerPageChange,\r\n onTriggerSortingChange,\r\n columns,\r\n rows,\r\n remoteOperations,\r\n pagination,\r\n showLoadingIndicator,\r\n selectable,\r\n multiSelect,\r\n keyExpr,\r\n sortProps,\r\n accordion,\r\n collapsed = true,\r\n\r\n collapsedRows,\r\n rowsPerPageLabel,\r\n loaderZIndex\r\n } = props;\r\n\r\n // States used within the component\r\n const [rowsPerPage, setRowsPerPage] = React.useState<number>(10);\r\n const [filteredRows, setFilteredRows] = React.useState<any[]>([]);\r\n const [currentPageRows, setCurrentPageRows] = React.useState<any[]>([]);\r\n const [currentPage, setCurrentPage] = React.useState<number>(1);\r\n const [sort, setSort] = React.useState<TableSortProps | undefined>();\r\n const [from, setFrom] = React.useState<number>();\r\n const [to, setTo] = React.useState<number>();\r\n const [total, setTotal] = React.useState<number>();\r\n\r\n const [isCollapsed, setIsCollapsed] = React.useState(true);\r\n\r\n const [selectAllState, setSelectAllState] = React.useState<'all' | 'some' | 'none'>('none');\r\n\r\n const [selected, setSelected] = React.useState<any | any[]>(multiSelect ? [] : undefined);\r\n\r\n React.useEffect(() => {\r\n setSort({\r\n column: sortProps?.column ?? '', \r\n direction: sortProps?.direction ?? 'asc', \r\n allowClearingSort: sortProps?.allowClearingSort === undefined ? true : sortProps.allowClearingSort\r\n });\r\n }, [sortProps])\r\n\r\n React.useEffect(() => {\r\n setSelected(props.selectedRows || (multiSelect ? [] : undefined))\r\n }, [props.selectedRows, multiSelect])\r\n\r\n /**\r\n * update select all checkbox state\r\n */\r\n React.useEffect(() => {\r\n if (multiSelect) {\r\n const currentList = currentPageRows.map(row => keyExpr ? row[keyExpr] : row);\r\n const count = selected.filter((item: any) => currentList.includes(item)).length;\r\n\r\n setSelectAllState(count === currentList.length ? 'all' : count > 0 ? 'some' : 'none');\r\n }\r\n }, [currentPageRows, multiSelect, selected, keyExpr])\r\n\r\n /**\r\n * Takes care of remote pagination.\r\n * Works only in case remote pagination is set to true.\r\n */\r\n React.useEffect(() => {\r\n if (remoteOperations) {\r\n setCurrentPageRows(rows);\r\n\r\n // Let's assign pagination values\r\n setFrom(pagination?.from);\r\n setTo(pagination?.to);\r\n setTotal(pagination?.total);\r\n setCurrentPage(pagination?.currentPage!);\r\n setRowsPerPage(pagination?.rowsPerPage!);\r\n }\r\n }, [remoteOperations, pagination, rows]);\r\n\r\n /**\r\n * Sets number of rows to display when accordion.\r\n */\r\n React.useEffect(() => {\r\n if (!accordion) return;\r\n\r\n setRowsPerPage(isCollapsed ? collapsedRows || 10 : rows.length);\r\n }, [rows, accordion, collapsedRows, isCollapsed])\r\n\r\n React.useEffect(() => {\r\n if (!accordion) return;\r\n\r\n setIsCollapsed(!!collapsed);\r\n }, [accordion, collapsed])\r\n\r\n /**\r\n * Filters out a rows by specific column filters and sorts them if any sorting is set.\r\n * @returns Filtered and sorted rows.\r\n */\r\n const filterAndSortRows = (): any[] => {\r\n let tmpFilteredRows = rows.filter((row) => {\r\n // Let's start with matched filter criteria\r\n let matchFilterCriteria = true;\r\n\r\n // Let's go through columns\r\n for (const column of columns) {\r\n // Let's check if filter value is specified for the column\r\n // And if it doesn't match the current row column value\r\n // Then let's update match filter criteria to failed\r\n if (column.filterValue && row[column.key].toLowerCase().indexOf(column.filterValue.toLowerCase()) === -1) {\r\n matchFilterCriteria = false;\r\n }\r\n }\r\n\r\n // Let's return row only in case match filter criteria succeeds\r\n if (matchFilterCriteria) {\r\n return row;\r\n }\r\n });\r\n\r\n // Let's apply sorting if needed\r\n if (!!sort?.column && !!sort?.direction) {\r\n // Let's sort the rows\r\n tmpFilteredRows.sort((a, b) => {\r\n if (a[sort.column!] > b[sort.column!]) {\r\n return sort.direction! === 'asc' ? 1 : -1;\r\n } else if (a[sort.column!] < b[sort.column!]) {\r\n return sort.direction! === 'asc' ? -1 : 1;\r\n } else {\r\n return 0;\r\n }\r\n });\r\n }\r\n\r\n // Let's return filtered rows\r\n return tmpFilteredRows;\r\n };\r\n\r\n /**\r\n * Takes care of local pagination.\r\n * Works only in case remote pagination is not defined or is set to false.\r\n */\r\n React.useEffect(() => {\r\n if (!remoteOperations) {\r\n // Let's retrieve temporary filtered rows and update globally filtered rows\r\n const tmpFilteredRows = filterAndSortRows();\r\n setFilteredRows(tmpFilteredRows);\r\n setTotal(tmpFilteredRows.length);\r\n\r\n // Assign rows from and rows to\r\n const rowsFrom = (currentPage - 1) * rowsPerPage;\r\n const rowsTo = rowsFrom + rowsPerPage >= tmpFilteredRows.length ? tmpFilteredRows.length : rowsFrom + rowsPerPage;\r\n\r\n // Set from and to values\r\n setFrom(rowsFrom + 1);\r\n setTo(rowsTo);\r\n\r\n // Filter out the rows\r\n setCurrentPageRows(tmpFilteredRows.slice(rowsFrom, rowsTo));\r\n }\r\n }, [rowsPerPage, rows, currentPage, columns, sort, remoteOperations]);\r\n\r\n\r\n /**\r\n * Applies a specific sorting to a column.\r\n * If no sorting exists, then applies ascending initially\r\n * @param column - Column to which sorting should be applied.\r\n */\r\n const sortTableColumn = (column: TableColumn): void => {\r\n let columnKey = '';\r\n let sortDirection: TableSortingDirection | undefined = undefined;\r\n\r\n if (sort?.column !== column.key) {\r\n columnKey = column.key;\r\n sortDirection = 'asc';\r\n } else {\r\n if (sort?.direction === 'desc' && sort?.allowClearingSort) {\r\n columnKey = '';\r\n sortDirection = undefined;\r\n } else {\r\n columnKey = sort.column;\r\n sortDirection = sort.direction === 'asc' ? 'desc' : 'asc';\r\n }\r\n }\r\n\r\n if(columnKey == '')\r\n setSort({ column: '', direction: 'asc', allowClearingSort: sort?.allowClearingSort});\r\n else\r\n setSort({column: columnKey, direction: sortDirection!, allowClearingSort: sort?.allowClearingSort});\r\n\r\n remoteOperations && onTriggerSortingChange && onTriggerSortingChange(columnKey, sortDirection);\r\n };\r\n\r\n /**\r\n * Navigates user back to the previous page and updates the current table page.\r\n */\r\n const previousPage = () => {\r\n if (remoteOperations) {\r\n // Let's inform parent component about page change\r\n if (onPreviousPageClick) {\r\n onPreviousPageClick();\r\n }\r\n } else {\r\n // Let's change the page within the component\r\n setCurrentPage(currentPage > 1 ? currentPage - 1 : 1);\r\n }\r\n };\r\n\r\n /**\r\n * Navigates user to the next page and updates the current table page.\r\n */\r\n const nextPage = () => {\r\n if (remoteOperations) {\r\n // Let's inform parent component about page change\r\n if (onNextPageClick) {\r\n onNextPageClick();\r\n }\r\n } else {\r\n // Let's change the page within the component\r\n setCurrentPage(currentPage * rowsPerPage >= filteredRows.length ? currentPage : currentPage + 1);\r\n }\r\n };\r\n\r\n /**\r\n * Updates the rows per page value and refreshes the table content accordingly.\r\n * @param value - Newly selected rows per page value.\r\n */\r\n const changeRowsPerPage = (value: number) => {\r\n // Let's check if we are using remote pagination\r\n if (remoteOperations) {\r\n // Inform parent component about rows per page change\r\n if (onRowsPerPageChange) {\r\n onRowsPerPageChange(value);\r\n }\r\n } else {\r\n // Let's reset current page to 1\r\n setCurrentPage(1);\r\n }\r\n\r\n // Let's set rows per page\r\n setRowsPerPage(value);\r\n };\r\n\r\n\r\n /**\r\n * Function which is called when a mouse click happens on a row to pass data to the parent component.\r\n * @param row - Row in which the link is located.\r\n */\r\n const onRowClick = (row: any): void => {\r\n const selectedText = window?.getSelection()?.toString();\r\n\r\n if (selectedText?.length === 0 && selectable) {\r\n const value = keyExpr ? row[keyExpr] : row;\r\n let currentSelection = value;\r\n if (!!multiSelect) {\r\n const existing = selected?.indexOf(value);\r\n if (existing > -1) {\r\n currentSelection = [...selected];\r\n currentSelection.splice(existing, 1);\r\n } else {\r\n currentSelection = [...selected, currentSelection];\r\n }\r\n }\r\n\r\n setSelected(currentSelection)\r\n props.onSelectionChange && props.onSelectionChange(currentSelection);\r\n }\r\n };\r\n\r\n /**\r\n * Function which is called when user clicks checkbox to select or deselect all rows.\r\n */\r\n const onSelectAllClick = () => {\r\n const currentList = currentPageRows.map(row => keyExpr ? row[keyExpr] : row);\r\n\r\n switch (selectAllState) {\r\n case 'all':\r\n const all = [...selected].filter(item => !currentList.includes(item));\r\n setSelected(all);\r\n props.onSelectionChange && props.onSelectionChange(all);\r\n setSelectAllState('none');\r\n break;\r\n case 'none':\r\n const none = [...selected, ...currentList]\r\n setSelected(none);\r\n props.onSelectionChange && props.onSelectionChange(none);\r\n setSelectAllState('all');\r\n break;\r\n case 'some':\r\n const some = [...selected, ...currentList.filter(item => !selected.includes(item))];\r\n setSelected(some);\r\n props.onSelectionChange && props.onSelectionChange(some);\r\n setSelectAllState('all');\r\n break;\r\n }\r\n };\r\n\r\n /**\r\n * Return Table component.\r\n */\r\n return (\r\n <TableWrapper className={props.border ? 'border' : undefined}>\r\n <TableHeader {...props}/>\r\n <TableBody {...props}\r\n currentPageRows={currentPageRows}\r\n selected={selected}\r\n onRowClick={onRowClick}\r\n sortByColumn={sortTableColumn}\r\n onSelectAllClick={onSelectAllClick}\r\n sortProps={sort}\r\n selectAllState={selectAllState}/>\r\n <TableFooter {...props}\r\n onRowsPerPageChange={changeRowsPerPage}\r\n rowsPerPage={rowsPerPage}\r\n setIsCollapsed={setIsCollapsed}\r\n isCollapsed={isCollapsed}\r\n from={from}\r\n to={to}\r\n total={total}\r\n nextPage={nextPage}\r\n prevPage={previousPage}/>\r\n {showLoadingIndicator && (\r\n <StyledTableSpinner $zindex={loaderZIndex}>\r\n <LoadingIndicator size={Size.Medium}/>\r\n </StyledTableSpinner>\r\n )}\r\n </TableWrapper>\r\n );\r\n};\r\n\r\nexport default Table;\r\n"],"mappings":"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","ignoreList":[]}
@@ -289,15 +289,21 @@ const Table = props => {
289
289
  const currentList = currentPageRows.map(row => keyExpr ? row[keyExpr] : row);
290
290
  switch (selectAllState) {
291
291
  case 'all':
292
- setSelected([...selected].filter(item => !currentList.includes(item)));
292
+ const all = [...selected].filter(item => !currentList.includes(item));
293
+ setSelected(all);
294
+ props.onSelectionChange && props.onSelectionChange(all);
293
295
  setSelectAllState('none');
294
296
  break;
295
297
  case 'none':
296
- setSelected([...selected, ...currentList]);
298
+ const none = [...selected, ...currentList];
299
+ setSelected(none);
300
+ props.onSelectionChange && props.onSelectionChange(none);
297
301
  setSelectAllState('all');
298
302
  break;
299
303
  case 'some':
300
- setSelected([...selected, ...currentList.filter(item => !selected.includes(item))]);
304
+ const some = [...selected, ...currentList.filter(item => !selected.includes(item))];
305
+ setSelected(some);
306
+ props.onSelectionChange && props.onSelectionChange(some);
301
307
  setSelectAllState('all');
302
308
  break;
303
309
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Table.js","names":["React","Size","StyledTableSpinner","TableWrapper","LoadingIndicator","TableHeader","TableFooter","TableBody","jsx","_jsx","jsxs","_jsxs","Table","props","onPreviousPageClick","onNextPageClick","onRowsPerPageChange","onTriggerSortingChange","columns","rows","remoteOperations","pagination","showLoadingIndicator","selectable","multiSelect","keyExpr","sortProps","accordion","collapsed","collapsedRows","rowsPerPageLabel","loaderZIndex","rowsPerPage","setRowsPerPage","useState","filteredRows","setFilteredRows","currentPageRows","setCurrentPageRows","currentPage","setCurrentPage","sort","setSort","from","setFrom","to","setTo","total","setTotal","isCollapsed","setIsCollapsed","selectAllState","setSelectAllState","selected","setSelected","undefined","useEffect","column","direction","allowClearingSort","selectedRows","currentList","map","row","count","filter","item","includes","length","filterAndSortRows","tmpFilteredRows","matchFilterCriteria","filterValue","key","toLowerCase","indexOf","a","b","rowsFrom","rowsTo","slice","sortTableColumn","columnKey","sortDirection","previousPage","nextPage","changeRowsPerPage","value","onRowClick","selectedText","window","getSelection","toString","currentSelection","existing","splice","onSelectionChange","onSelectAllClick","className","border","children","_objectSpread","sortByColumn","prevPage","$zindex","size","Medium"],"sources":["../../src/Table/Table.tsx"],"sourcesContent":["/**\r\n * Import React libraries.\r\n */\r\nimport * as React from 'react';\r\n\r\n/**\r\n * Import custom components.\r\n */\r\nimport {Size} from '../types'\r\n\r\n/**\r\n * Import custom styles.\r\n */\r\nimport {StyledTable, StyledTableSpinner, TableWrapper} from './TableStyles';\r\n\r\n/**\r\n * Import custom types.\r\n */\r\nimport {TableProps, TableColumn, TableSortingDirection, TableSortProps} from './TableTypes';\r\nimport {LoadingIndicator} from '../LoadingIndicator';\r\nimport TableHeader from './TableHeaders';\r\nimport TableFooter from './TableFooter';\r\nimport TableBody from './TableBody';\r\n\r\nconst Table: React.FunctionComponent<TableProps> = (props: TableProps) => {\r\n let {\r\n onPreviousPageClick,\r\n onNextPageClick,\r\n onRowsPerPageChange,\r\n onTriggerSortingChange,\r\n columns,\r\n rows,\r\n remoteOperations,\r\n pagination,\r\n showLoadingIndicator,\r\n selectable,\r\n multiSelect,\r\n keyExpr,\r\n sortProps,\r\n accordion,\r\n collapsed = true,\r\n\r\n collapsedRows,\r\n rowsPerPageLabel,\r\n loaderZIndex\r\n } = props;\r\n\r\n // States used within the component\r\n const [rowsPerPage, setRowsPerPage] = React.useState<number>(10);\r\n const [filteredRows, setFilteredRows] = React.useState<any[]>([]);\r\n const [currentPageRows, setCurrentPageRows] = React.useState<any[]>([]);\r\n const [currentPage, setCurrentPage] = React.useState<number>(1);\r\n const [sort, setSort] = React.useState<TableSortProps | undefined>();\r\n const [from, setFrom] = React.useState<number>();\r\n const [to, setTo] = React.useState<number>();\r\n const [total, setTotal] = React.useState<number>();\r\n\r\n const [isCollapsed, setIsCollapsed] = React.useState(true);\r\n\r\n const [selectAllState, setSelectAllState] = React.useState<'all' | 'some' | 'none'>('none');\r\n\r\n const [selected, setSelected] = React.useState<any | any[]>(multiSelect ? [] : undefined);\r\n\r\n React.useEffect(() => {\r\n setSort({\r\n column: sortProps?.column ?? '', \r\n direction: sortProps?.direction ?? 'asc', \r\n allowClearingSort: sortProps?.allowClearingSort === undefined ? true : sortProps.allowClearingSort\r\n });\r\n }, [sortProps])\r\n\r\n React.useEffect(() => {\r\n setSelected(props.selectedRows || (multiSelect ? [] : undefined))\r\n }, [props.selectedRows, multiSelect])\r\n\r\n /**\r\n * update select all checkbox state\r\n */\r\n React.useEffect(() => {\r\n if (multiSelect) {\r\n const currentList = currentPageRows.map(row => keyExpr ? row[keyExpr] : row);\r\n const count = selected.filter((item: any) => currentList.includes(item)).length;\r\n\r\n setSelectAllState(count === currentList.length ? 'all' : count > 0 ? 'some' : 'none');\r\n }\r\n }, [currentPageRows, multiSelect, selected, keyExpr])\r\n\r\n /**\r\n * Takes care of remote pagination.\r\n * Works only in case remote pagination is set to true.\r\n */\r\n React.useEffect(() => {\r\n if (remoteOperations) {\r\n setCurrentPageRows(rows);\r\n\r\n // Let's assign pagination values\r\n setFrom(pagination?.from);\r\n setTo(pagination?.to);\r\n setTotal(pagination?.total);\r\n setCurrentPage(pagination?.currentPage!);\r\n setRowsPerPage(pagination?.rowsPerPage!);\r\n }\r\n }, [remoteOperations, pagination, rows]);\r\n\r\n /**\r\n * Sets number of rows to display when accordion.\r\n */\r\n React.useEffect(() => {\r\n if (!accordion) return;\r\n\r\n setRowsPerPage(isCollapsed ? collapsedRows || 10 : rows.length);\r\n }, [rows, accordion, collapsedRows, isCollapsed])\r\n\r\n React.useEffect(() => {\r\n if (!accordion) return;\r\n\r\n setIsCollapsed(!!collapsed);\r\n }, [accordion, collapsed])\r\n\r\n /**\r\n * Filters out a rows by specific column filters and sorts them if any sorting is set.\r\n * @returns Filtered and sorted rows.\r\n */\r\n const filterAndSortRows = (): any[] => {\r\n let tmpFilteredRows = rows.filter((row) => {\r\n // Let's start with matched filter criteria\r\n let matchFilterCriteria = true;\r\n\r\n // Let's go through columns\r\n for (const column of columns) {\r\n // Let's check if filter value is specified for the column\r\n // And if it doesn't match the current row column value\r\n // Then let's update match filter criteria to failed\r\n if (column.filterValue && row[column.key].toLowerCase().indexOf(column.filterValue.toLowerCase()) === -1) {\r\n matchFilterCriteria = false;\r\n }\r\n }\r\n\r\n // Let's return row only in case match filter criteria succeeds\r\n if (matchFilterCriteria) {\r\n return row;\r\n }\r\n });\r\n\r\n // Let's apply sorting if needed\r\n if (!!sort?.column && !!sort?.direction) {\r\n // Let's sort the rows\r\n tmpFilteredRows.sort((a, b) => {\r\n if (a[sort.column!] > b[sort.column!]) {\r\n return sort.direction! === 'asc' ? 1 : -1;\r\n } else if (a[sort.column!] < b[sort.column!]) {\r\n return sort.direction! === 'asc' ? -1 : 1;\r\n } else {\r\n return 0;\r\n }\r\n });\r\n }\r\n\r\n // Let's return filtered rows\r\n return tmpFilteredRows;\r\n };\r\n\r\n /**\r\n * Takes care of local pagination.\r\n * Works only in case remote pagination is not defined or is set to false.\r\n */\r\n React.useEffect(() => {\r\n if (!remoteOperations) {\r\n // Let's retrieve temporary filtered rows and update globally filtered rows\r\n const tmpFilteredRows = filterAndSortRows();\r\n setFilteredRows(tmpFilteredRows);\r\n setTotal(tmpFilteredRows.length);\r\n\r\n // Assign rows from and rows to\r\n const rowsFrom = (currentPage - 1) * rowsPerPage;\r\n const rowsTo = rowsFrom + rowsPerPage >= tmpFilteredRows.length ? tmpFilteredRows.length : rowsFrom + rowsPerPage;\r\n\r\n // Set from and to values\r\n setFrom(rowsFrom + 1);\r\n setTo(rowsTo);\r\n\r\n // Filter out the rows\r\n setCurrentPageRows(tmpFilteredRows.slice(rowsFrom, rowsTo));\r\n }\r\n }, [rowsPerPage, rows, currentPage, columns, sort, remoteOperations]);\r\n\r\n\r\n /**\r\n * Applies a specific sorting to a column.\r\n * If no sorting exists, then applies ascending initially\r\n * @param column - Column to which sorting should be applied.\r\n */\r\n const sortTableColumn = (column: TableColumn): void => {\r\n let columnKey = '';\r\n let sortDirection: TableSortingDirection | undefined = undefined;\r\n\r\n if (sort?.column !== column.key) {\r\n columnKey = column.key;\r\n sortDirection = 'asc';\r\n } else {\r\n if (sort?.direction === 'desc' && sort?.allowClearingSort) {\r\n columnKey = '';\r\n sortDirection = undefined;\r\n } else {\r\n columnKey = sort.column;\r\n sortDirection = sort.direction === 'asc' ? 'desc' : 'asc';\r\n }\r\n }\r\n\r\n if(columnKey == '')\r\n setSort({ column: '', direction: 'asc', allowClearingSort: sort?.allowClearingSort});\r\n else\r\n setSort({column: columnKey, direction: sortDirection!, allowClearingSort: sort?.allowClearingSort});\r\n\r\n remoteOperations && onTriggerSortingChange && onTriggerSortingChange(columnKey, sortDirection);\r\n };\r\n\r\n /**\r\n * Navigates user back to the previous page and updates the current table page.\r\n */\r\n const previousPage = () => {\r\n if (remoteOperations) {\r\n // Let's inform parent component about page change\r\n if (onPreviousPageClick) {\r\n onPreviousPageClick();\r\n }\r\n } else {\r\n // Let's change the page within the component\r\n setCurrentPage(currentPage > 1 ? currentPage - 1 : 1);\r\n }\r\n };\r\n\r\n /**\r\n * Navigates user to the next page and updates the current table page.\r\n */\r\n const nextPage = () => {\r\n if (remoteOperations) {\r\n // Let's inform parent component about page change\r\n if (onNextPageClick) {\r\n onNextPageClick();\r\n }\r\n } else {\r\n // Let's change the page within the component\r\n setCurrentPage(currentPage * rowsPerPage >= filteredRows.length ? currentPage : currentPage + 1);\r\n }\r\n };\r\n\r\n /**\r\n * Updates the rows per page value and refreshes the table content accordingly.\r\n * @param value - Newly selected rows per page value.\r\n */\r\n const changeRowsPerPage = (value: number) => {\r\n // Let's check if we are using remote pagination\r\n if (remoteOperations) {\r\n // Inform parent component about rows per page change\r\n if (onRowsPerPageChange) {\r\n onRowsPerPageChange(value);\r\n }\r\n } else {\r\n // Let's reset current page to 1\r\n setCurrentPage(1);\r\n }\r\n\r\n // Let's set rows per page\r\n setRowsPerPage(value);\r\n };\r\n\r\n\r\n /**\r\n * Function which is called when a mouse click happens on a row to pass data to the parent component.\r\n * @param row - Row in which the link is located.\r\n */\r\n const onRowClick = (row: any): void => {\r\n const selectedText = window?.getSelection()?.toString();\r\n\r\n if (selectedText?.length === 0 && selectable) {\r\n const value = keyExpr ? row[keyExpr] : row;\r\n let currentSelection = value;\r\n if (!!multiSelect) {\r\n const existing = selected?.indexOf(value);\r\n if (existing > -1) {\r\n currentSelection = [...selected];\r\n currentSelection.splice(existing, 1);\r\n } else {\r\n currentSelection = [...selected, currentSelection];\r\n }\r\n }\r\n\r\n setSelected(currentSelection)\r\n props.onSelectionChange && props.onSelectionChange(currentSelection);\r\n }\r\n };\r\n\r\n /**\r\n * Function which is called when user clicks checkbox to select or deselect all rows.\r\n */\r\n const onSelectAllClick = () => {\r\n const currentList = currentPageRows.map(row => keyExpr ? row[keyExpr] : row);\r\n\r\n switch (selectAllState) {\r\n case 'all':\r\n setSelected([...selected].filter(item => !currentList.includes(item)));\r\n setSelectAllState('none');\r\n break;\r\n case 'none':\r\n setSelected([...selected, ...currentList]);\r\n setSelectAllState('all');\r\n break;\r\n case 'some':\r\n setSelected([...selected, ...currentList.filter(item => !selected.includes(item))]);\r\n setSelectAllState('all');\r\n break;\r\n }\r\n };\r\n\r\n /**\r\n * Return Table component.\r\n */\r\n return (\r\n <TableWrapper className={props.border ? 'border' : undefined}>\r\n <TableHeader {...props}/>\r\n <TableBody {...props}\r\n currentPageRows={currentPageRows}\r\n selected={selected}\r\n onRowClick={onRowClick}\r\n sortByColumn={sortTableColumn}\r\n onSelectAllClick={onSelectAllClick}\r\n sortProps={sort}\r\n selectAllState={selectAllState}/>\r\n <TableFooter {...props}\r\n onRowsPerPageChange={changeRowsPerPage}\r\n rowsPerPage={rowsPerPage}\r\n setIsCollapsed={setIsCollapsed}\r\n isCollapsed={isCollapsed}\r\n from={from}\r\n to={to}\r\n total={total}\r\n nextPage={nextPage}\r\n prevPage={previousPage}/>\r\n {showLoadingIndicator && (\r\n <StyledTableSpinner $zindex={loaderZIndex}>\r\n <LoadingIndicator size={Size.Medium}/>\r\n </StyledTableSpinner>\r\n )}\r\n </TableWrapper>\r\n );\r\n};\r\n\r\nexport default Table;\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Table.js","names":["React","Size","StyledTableSpinner","TableWrapper","LoadingIndicator","TableHeader","TableFooter","TableBody","jsx","_jsx","jsxs","_jsxs","Table","props","onPreviousPageClick","onNextPageClick","onRowsPerPageChange","onTriggerSortingChange","columns","rows","remoteOperations","pagination","showLoadingIndicator","selectable","multiSelect","keyExpr","sortProps","accordion","collapsed","collapsedRows","rowsPerPageLabel","loaderZIndex","rowsPerPage","setRowsPerPage","useState","filteredRows","setFilteredRows","currentPageRows","setCurrentPageRows","currentPage","setCurrentPage","sort","setSort","from","setFrom","to","setTo","total","setTotal","isCollapsed","setIsCollapsed","selectAllState","setSelectAllState","selected","setSelected","undefined","useEffect","column","direction","allowClearingSort","selectedRows","currentList","map","row","count","filter","item","includes","length","filterAndSortRows","tmpFilteredRows","matchFilterCriteria","filterValue","key","toLowerCase","indexOf","a","b","rowsFrom","rowsTo","slice","sortTableColumn","columnKey","sortDirection","previousPage","nextPage","changeRowsPerPage","value","onRowClick","selectedText","window","getSelection","toString","currentSelection","existing","splice","onSelectionChange","onSelectAllClick","all","none","some","className","border","children","_objectSpread","sortByColumn","prevPage","$zindex","size","Medium"],"sources":["../../src/Table/Table.tsx"],"sourcesContent":["/**\r\n * Import React libraries.\r\n */\r\nimport * as React from 'react';\r\n\r\n/**\r\n * Import custom components.\r\n */\r\nimport {Size} from '../types'\r\n\r\n/**\r\n * Import custom styles.\r\n */\r\nimport {StyledTable, StyledTableSpinner, TableWrapper} from './TableStyles';\r\n\r\n/**\r\n * Import custom types.\r\n */\r\nimport {TableProps, TableColumn, TableSortingDirection, TableSortProps} from './TableTypes';\r\nimport {LoadingIndicator} from '../LoadingIndicator';\r\nimport TableHeader from './TableHeaders';\r\nimport TableFooter from './TableFooter';\r\nimport TableBody from './TableBody';\r\n\r\nconst Table: React.FunctionComponent<TableProps> = (props: TableProps) => {\r\n let {\r\n onPreviousPageClick,\r\n onNextPageClick,\r\n onRowsPerPageChange,\r\n onTriggerSortingChange,\r\n columns,\r\n rows,\r\n remoteOperations,\r\n pagination,\r\n showLoadingIndicator,\r\n selectable,\r\n multiSelect,\r\n keyExpr,\r\n sortProps,\r\n accordion,\r\n collapsed = true,\r\n\r\n collapsedRows,\r\n rowsPerPageLabel,\r\n loaderZIndex\r\n } = props;\r\n\r\n // States used within the component\r\n const [rowsPerPage, setRowsPerPage] = React.useState<number>(10);\r\n const [filteredRows, setFilteredRows] = React.useState<any[]>([]);\r\n const [currentPageRows, setCurrentPageRows] = React.useState<any[]>([]);\r\n const [currentPage, setCurrentPage] = React.useState<number>(1);\r\n const [sort, setSort] = React.useState<TableSortProps | undefined>();\r\n const [from, setFrom] = React.useState<number>();\r\n const [to, setTo] = React.useState<number>();\r\n const [total, setTotal] = React.useState<number>();\r\n\r\n const [isCollapsed, setIsCollapsed] = React.useState(true);\r\n\r\n const [selectAllState, setSelectAllState] = React.useState<'all' | 'some' | 'none'>('none');\r\n\r\n const [selected, setSelected] = React.useState<any | any[]>(multiSelect ? [] : undefined);\r\n\r\n React.useEffect(() => {\r\n setSort({\r\n column: sortProps?.column ?? '', \r\n direction: sortProps?.direction ?? 'asc', \r\n allowClearingSort: sortProps?.allowClearingSort === undefined ? true : sortProps.allowClearingSort\r\n });\r\n }, [sortProps])\r\n\r\n React.useEffect(() => {\r\n setSelected(props.selectedRows || (multiSelect ? [] : undefined))\r\n }, [props.selectedRows, multiSelect])\r\n\r\n /**\r\n * update select all checkbox state\r\n */\r\n React.useEffect(() => {\r\n if (multiSelect) {\r\n const currentList = currentPageRows.map(row => keyExpr ? row[keyExpr] : row);\r\n const count = selected.filter((item: any) => currentList.includes(item)).length;\r\n\r\n setSelectAllState(count === currentList.length ? 'all' : count > 0 ? 'some' : 'none');\r\n }\r\n }, [currentPageRows, multiSelect, selected, keyExpr])\r\n\r\n /**\r\n * Takes care of remote pagination.\r\n * Works only in case remote pagination is set to true.\r\n */\r\n React.useEffect(() => {\r\n if (remoteOperations) {\r\n setCurrentPageRows(rows);\r\n\r\n // Let's assign pagination values\r\n setFrom(pagination?.from);\r\n setTo(pagination?.to);\r\n setTotal(pagination?.total);\r\n setCurrentPage(pagination?.currentPage!);\r\n setRowsPerPage(pagination?.rowsPerPage!);\r\n }\r\n }, [remoteOperations, pagination, rows]);\r\n\r\n /**\r\n * Sets number of rows to display when accordion.\r\n */\r\n React.useEffect(() => {\r\n if (!accordion) return;\r\n\r\n setRowsPerPage(isCollapsed ? collapsedRows || 10 : rows.length);\r\n }, [rows, accordion, collapsedRows, isCollapsed])\r\n\r\n React.useEffect(() => {\r\n if (!accordion) return;\r\n\r\n setIsCollapsed(!!collapsed);\r\n }, [accordion, collapsed])\r\n\r\n /**\r\n * Filters out a rows by specific column filters and sorts them if any sorting is set.\r\n * @returns Filtered and sorted rows.\r\n */\r\n const filterAndSortRows = (): any[] => {\r\n let tmpFilteredRows = rows.filter((row) => {\r\n // Let's start with matched filter criteria\r\n let matchFilterCriteria = true;\r\n\r\n // Let's go through columns\r\n for (const column of columns) {\r\n // Let's check if filter value is specified for the column\r\n // And if it doesn't match the current row column value\r\n // Then let's update match filter criteria to failed\r\n if (column.filterValue && row[column.key].toLowerCase().indexOf(column.filterValue.toLowerCase()) === -1) {\r\n matchFilterCriteria = false;\r\n }\r\n }\r\n\r\n // Let's return row only in case match filter criteria succeeds\r\n if (matchFilterCriteria) {\r\n return row;\r\n }\r\n });\r\n\r\n // Let's apply sorting if needed\r\n if (!!sort?.column && !!sort?.direction) {\r\n // Let's sort the rows\r\n tmpFilteredRows.sort((a, b) => {\r\n if (a[sort.column!] > b[sort.column!]) {\r\n return sort.direction! === 'asc' ? 1 : -1;\r\n } else if (a[sort.column!] < b[sort.column!]) {\r\n return sort.direction! === 'asc' ? -1 : 1;\r\n } else {\r\n return 0;\r\n }\r\n });\r\n }\r\n\r\n // Let's return filtered rows\r\n return tmpFilteredRows;\r\n };\r\n\r\n /**\r\n * Takes care of local pagination.\r\n * Works only in case remote pagination is not defined or is set to false.\r\n */\r\n React.useEffect(() => {\r\n if (!remoteOperations) {\r\n // Let's retrieve temporary filtered rows and update globally filtered rows\r\n const tmpFilteredRows = filterAndSortRows();\r\n setFilteredRows(tmpFilteredRows);\r\n setTotal(tmpFilteredRows.length);\r\n\r\n // Assign rows from and rows to\r\n const rowsFrom = (currentPage - 1) * rowsPerPage;\r\n const rowsTo = rowsFrom + rowsPerPage >= tmpFilteredRows.length ? tmpFilteredRows.length : rowsFrom + rowsPerPage;\r\n\r\n // Set from and to values\r\n setFrom(rowsFrom + 1);\r\n setTo(rowsTo);\r\n\r\n // Filter out the rows\r\n setCurrentPageRows(tmpFilteredRows.slice(rowsFrom, rowsTo));\r\n }\r\n }, [rowsPerPage, rows, currentPage, columns, sort, remoteOperations]);\r\n\r\n\r\n /**\r\n * Applies a specific sorting to a column.\r\n * If no sorting exists, then applies ascending initially\r\n * @param column - Column to which sorting should be applied.\r\n */\r\n const sortTableColumn = (column: TableColumn): void => {\r\n let columnKey = '';\r\n let sortDirection: TableSortingDirection | undefined = undefined;\r\n\r\n if (sort?.column !== column.key) {\r\n columnKey = column.key;\r\n sortDirection = 'asc';\r\n } else {\r\n if (sort?.direction === 'desc' && sort?.allowClearingSort) {\r\n columnKey = '';\r\n sortDirection = undefined;\r\n } else {\r\n columnKey = sort.column;\r\n sortDirection = sort.direction === 'asc' ? 'desc' : 'asc';\r\n }\r\n }\r\n\r\n if(columnKey == '')\r\n setSort({ column: '', direction: 'asc', allowClearingSort: sort?.allowClearingSort});\r\n else\r\n setSort({column: columnKey, direction: sortDirection!, allowClearingSort: sort?.allowClearingSort});\r\n\r\n remoteOperations && onTriggerSortingChange && onTriggerSortingChange(columnKey, sortDirection);\r\n };\r\n\r\n /**\r\n * Navigates user back to the previous page and updates the current table page.\r\n */\r\n const previousPage = () => {\r\n if (remoteOperations) {\r\n // Let's inform parent component about page change\r\n if (onPreviousPageClick) {\r\n onPreviousPageClick();\r\n }\r\n } else {\r\n // Let's change the page within the component\r\n setCurrentPage(currentPage > 1 ? currentPage - 1 : 1);\r\n }\r\n };\r\n\r\n /**\r\n * Navigates user to the next page and updates the current table page.\r\n */\r\n const nextPage = () => {\r\n if (remoteOperations) {\r\n // Let's inform parent component about page change\r\n if (onNextPageClick) {\r\n onNextPageClick();\r\n }\r\n } else {\r\n // Let's change the page within the component\r\n setCurrentPage(currentPage * rowsPerPage >= filteredRows.length ? currentPage : currentPage + 1);\r\n }\r\n };\r\n\r\n /**\r\n * Updates the rows per page value and refreshes the table content accordingly.\r\n * @param value - Newly selected rows per page value.\r\n */\r\n const changeRowsPerPage = (value: number) => {\r\n // Let's check if we are using remote pagination\r\n if (remoteOperations) {\r\n // Inform parent component about rows per page change\r\n if (onRowsPerPageChange) {\r\n onRowsPerPageChange(value);\r\n }\r\n } else {\r\n // Let's reset current page to 1\r\n setCurrentPage(1);\r\n }\r\n\r\n // Let's set rows per page\r\n setRowsPerPage(value);\r\n };\r\n\r\n\r\n /**\r\n * Function which is called when a mouse click happens on a row to pass data to the parent component.\r\n * @param row - Row in which the link is located.\r\n */\r\n const onRowClick = (row: any): void => {\r\n const selectedText = window?.getSelection()?.toString();\r\n\r\n if (selectedText?.length === 0 && selectable) {\r\n const value = keyExpr ? row[keyExpr] : row;\r\n let currentSelection = value;\r\n if (!!multiSelect) {\r\n const existing = selected?.indexOf(value);\r\n if (existing > -1) {\r\n currentSelection = [...selected];\r\n currentSelection.splice(existing, 1);\r\n } else {\r\n currentSelection = [...selected, currentSelection];\r\n }\r\n }\r\n\r\n setSelected(currentSelection)\r\n props.onSelectionChange && props.onSelectionChange(currentSelection);\r\n }\r\n };\r\n\r\n /**\r\n * Function which is called when user clicks checkbox to select or deselect all rows.\r\n */\r\n const onSelectAllClick = () => {\r\n const currentList = currentPageRows.map(row => keyExpr ? row[keyExpr] : row);\r\n\r\n switch (selectAllState) {\r\n case 'all':\r\n const all = [...selected].filter(item => !currentList.includes(item));\r\n setSelected(all);\r\n props.onSelectionChange && props.onSelectionChange(all);\r\n setSelectAllState('none');\r\n break;\r\n case 'none':\r\n const none = [...selected, ...currentList]\r\n setSelected(none);\r\n props.onSelectionChange && props.onSelectionChange(none);\r\n setSelectAllState('all');\r\n break;\r\n case 'some':\r\n const some = [...selected, ...currentList.filter(item => !selected.includes(item))];\r\n setSelected(some);\r\n props.onSelectionChange && props.onSelectionChange(some);\r\n setSelectAllState('all');\r\n break;\r\n }\r\n };\r\n\r\n /**\r\n * Return Table component.\r\n */\r\n return (\r\n <TableWrapper className={props.border ? 'border' : undefined}>\r\n <TableHeader {...props}/>\r\n <TableBody {...props}\r\n currentPageRows={currentPageRows}\r\n selected={selected}\r\n onRowClick={onRowClick}\r\n sortByColumn={sortTableColumn}\r\n onSelectAllClick={onSelectAllClick}\r\n sortProps={sort}\r\n selectAllState={selectAllState}/>\r\n <TableFooter {...props}\r\n onRowsPerPageChange={changeRowsPerPage}\r\n rowsPerPage={rowsPerPage}\r\n setIsCollapsed={setIsCollapsed}\r\n isCollapsed={isCollapsed}\r\n from={from}\r\n to={to}\r\n total={total}\r\n nextPage={nextPage}\r\n prevPage={previousPage}/>\r\n {showLoadingIndicator && (\r\n <StyledTableSpinner $zindex={loaderZIndex}>\r\n <LoadingIndicator size={Size.Medium}/>\r\n </StyledTableSpinner>\r\n )}\r\n </TableWrapper>\r\n );\r\n};\r\n\r\nexport default Table;\r\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,150 +1,154 @@
1
1
  {
2
- "name": "@laerdal/life-react-components",
3
- "version": "6.0.8",
4
- "private": false,
5
- "author": "Erik Martirosyan <erik.martirosyan@laerdal.com>",
6
- "contributors": [],
7
- "description": "Laerdal LIFE component library for React.",
8
- "keywords": [],
9
- "license": "UNLICENSED",
10
- "repository": {
11
- "type": "git",
12
- "url": "https://github.com/Laerdal-Medical/dcs-life-react-js"
13
- },
14
- "main": "dist/index.cjs",
15
- "module": "dist/index.js",
16
- "types": "dist/index.d.ts",
17
- "exports": {
18
- ".": {
19
- "require": "./dist/index.cjs",
20
- "import": "./dist/index.js",
21
- "types": "./dist/index.d.ts"
22
- }
23
- },
24
- "sideEffects": false,
25
- "files": [
26
- "dist"
27
- ],
28
- "scripts": {
29
- "bump": "yarn version --patch",
30
- "build": "yarn extract-design-tokens && yarn build:babel:esm && yarn build:babel:cjs && tsc --emitDeclarationOnly --declaration --declarationDir dist && node scripts/copyTS.cjs",
31
- "extract-design-tokens": "node scripts/extractDesignTokens.js",
32
- "build:babel:esm": "cross-env BABEL_ENV=esm babel --source-maps --extensions \".js,.ts,.tsx\" src --out-dir dist --out-file-extension .js --copy-files",
33
- "build:babel:cjs": "cross-env BABEL_ENV=cjs babel --source-maps --extensions \".js,.ts,.tsx\" src --out-dir dist --out-file-extension .cjs --copy-files",
34
- "clean": "rimraf dist",
35
- "develop": "yarn build:babel:esm --skip-initial-build --watch --verbose",
36
- "test": "jest src/",
37
- "test:coverage": "jest --collectCoverage src/",
38
- "test-watch": "jest --watch",
39
- "storybook": "storybook dev -p 6006",
40
- "build-storybook": "storybook build"
41
- },
42
- "eslintConfig": {
43
- "extends": [
44
- "react-app",
45
- "plugin:storybook/recommended"
46
- ]
47
- },
48
- "browserslist": {
49
- "production": [
50
- ">0.2%",
51
- "not dead",
52
- "not op_mini all"
53
- ],
54
- "development": [
55
- "last 1 chrome version",
56
- "last 1 firefox version",
57
- "last 1 safari version"
58
- ]
59
- },
60
- "omlet": {
61
- "exports": {
62
- ".": "src/index.ts"
63
- }
64
- },
65
- "dependencies": {
66
- "@babel/plugin-transform-typescript": "^7.28.0",
67
- "@laerdal/figma-svg": "^5.2.2",
68
- "@types/node": "^18.0.6",
69
- "animated-scroll-to": "^2.3.0",
70
- "dayjs": "^1.11.5",
71
- "nanoid": "3.3.11",
72
- "react": "^19.0.0",
73
- "react-datepicker": "^8.4.0",
74
- "react-dom": "^19.0.0",
75
- "react-inlinesvg": "^4.2.0",
76
- "react-modal": "^3.16.0",
77
- "react-quill-new": "^3.6.0",
78
- "react-resize-detector": "^12.0.0",
79
- "rooks": "8.4.0",
80
- "styled-components": "^6.1.13",
81
- "typescript": "^5.1.2"
82
- },
83
- "devDependencies": {
84
- "@babel/cli": "^7.22.0",
85
- "@babel/plugin-proposal-class-properties": "^7.18.6",
86
- "@babel/plugin-proposal-decorators": "^7.27.1",
87
- "@babel/plugin-proposal-export-default-from": "^7.22.0",
88
- "@babel/plugin-proposal-numeric-separator": "^7.18.6",
89
- "@babel/plugin-proposal-object-rest-spread": "^7.18.6",
90
- "@babel/plugin-transform-runtime": "^7.22.0",
91
- "@babel/preset-env": "^7.22.0",
92
- "@babel/preset-react": "^7.22.0",
93
- "@babel/preset-typescript": "^7.27.0",
94
- "@babel/runtime": "^7.22.0",
95
- "@chromatic-com/storybook": "1.4.0",
96
- "@laerdal-medical/life-design-tokens": "^1.5.1-beta",
97
- "@laerdal/life-react-components": "5.1.0",
98
- "@laerdal/navigation": "^3.2.0",
99
- "@storybook/addon-essentials": "^8.1.3",
100
- "@storybook/addon-interactions": "^8.1.3",
101
- "@storybook/addon-links": "^8.1.3",
102
- "@storybook/addon-onboarding": "^8.1.3",
103
- "@storybook/addon-webpack5-compiler-swc": "1.0.2",
104
- "@storybook/addons": "^7.6.17",
105
- "@storybook/blocks": "^8.1.3",
106
- "@storybook/react": "^8.1.3",
107
- "@storybook/react-webpack5": "^8.1.3",
108
- "@storybook/test": "^8.1.3",
109
- "@testing-library/dom": "^10.4.0",
110
- "@testing-library/jest-dom": "^6.5.0",
111
- "@testing-library/react": "^16.0.1",
112
- "@testing-library/user-event": "^14.5.2",
113
- "@types/jest": "^29.5.12",
114
- "@types/react": "^19.1.2",
115
- "@types/react-datepicker": "^4.4.2",
116
- "@types/react-dom": "^18.3.0",
117
- "@types/react-modal": "^3.13.1",
118
- "babel-plugin-inline-react-svg": "^2.0.1",
119
- "babel-plugin-typescript-to-proptypes": "^2.0.0",
120
- "concurrently": "^5.2.0",
121
- "cross-env": "^7.0.3",
122
- "css-loader": "^7.1.2",
123
- "eslint-plugin-storybook": "^0.8.0",
124
- "history": "^5.3.0",
125
- "jest": "^29.7.0",
126
- "jest-environment-jsdom": "^29.7.0",
127
- "jest-styled-components": "^7.2.0",
128
- "jest-svg-transformer": "^1.0.0",
129
- "react-router": "^6.0.0",
130
- "react-share": "^5.1.0",
131
- "regenerator-runtime": "^0.13.9",
132
- "storybook": "^8.1.3",
133
- "storybook-addon-themes": "^6.1.0",
134
- "style-loader": "^4.0.0",
135
- "ts-jest": "^29.2.5",
136
- "webpack": "^5.99.9",
137
- "webpack-cli": "^6.0.1",
138
- "webpack-dev-server": "^5.2.1"
139
- },
140
- "peerDependencies": {
141
- "@babel/core": "^7.0.0",
142
- "react": "^19",
143
- "react-dom": "^19"
144
- },
145
- "resolutions": {
146
- "nwsapi": "2.2.9",
147
- "date-fns": "2.24.0",
148
- "@types/react": "19.1.2"
149
- }
2
+ "name": "@laerdal/life-react-components",
3
+ "version": "6.0.9-dev.1.full",
4
+ "private": false,
5
+ "author": "Erik Martirosyan \u003cerik.martirosyan@laerdal.com\u003e",
6
+ "contributors": [
7
+
8
+ ],
9
+ "description": "Laerdal LIFE component library for React.",
10
+ "keywords": [
11
+
12
+ ],
13
+ "license": "UNLICENSED",
14
+ "repository": {
15
+ "type": "git",
16
+ "url": "https://github.com/Laerdal-Medical/dcs-life-react-js"
17
+ },
18
+ "main": "dist/index.cjs",
19
+ "module": "dist/index.js",
20
+ "types": "dist/index.d.ts",
21
+ "exports": {
22
+ ".": {
23
+ "require": "./dist/index.cjs",
24
+ "import": "./dist/index.js",
25
+ "types": "./dist/index.d.ts"
26
+ }
27
+ },
28
+ "sideEffects": false,
29
+ "files": [
30
+ "dist"
31
+ ],
32
+ "scripts": {
33
+ "bump": "yarn version --patch",
34
+ "build": "yarn extract-design-tokens \u0026\u0026 yarn build:babel:esm \u0026\u0026 yarn build:babel:cjs \u0026\u0026 tsc --emitDeclarationOnly --declaration --declarationDir dist \u0026\u0026 node scripts/copyTS.cjs",
35
+ "extract-design-tokens": "node scripts/extractDesignTokens.js",
36
+ "build:babel:esm": "cross-env BABEL_ENV=esm babel --source-maps --extensions \".js,.ts,.tsx\" src --out-dir dist --out-file-extension .js --copy-files",
37
+ "build:babel:cjs": "cross-env BABEL_ENV=cjs babel --source-maps --extensions \".js,.ts,.tsx\" src --out-dir dist --out-file-extension .cjs --copy-files",
38
+ "clean": "rimraf dist",
39
+ "develop": "yarn build:babel:esm --skip-initial-build --watch --verbose",
40
+ "test": "jest src/",
41
+ "test:coverage": "jest --collectCoverage src/",
42
+ "test-watch": "jest --watch",
43
+ "storybook": "storybook dev -p 6006",
44
+ "build-storybook": "storybook build"
45
+ },
46
+ "eslintConfig": {
47
+ "extends": [
48
+ "react-app",
49
+ "plugin:storybook/recommended"
50
+ ]
51
+ },
52
+ "browserslist": {
53
+ "production": [
54
+ "\u003e0.2%",
55
+ "not dead",
56
+ "not op_mini all"
57
+ ],
58
+ "development": [
59
+ "last 1 chrome version",
60
+ "last 1 firefox version",
61
+ "last 1 safari version"
62
+ ]
63
+ },
64
+ "omlet": {
65
+ "exports": {
66
+ ".": "src/index.ts"
67
+ }
68
+ },
69
+ "dependencies": {
70
+ "@babel/plugin-transform-typescript": "^7.28.0",
71
+ "@laerdal/figma-svg": "^5.2.2",
72
+ "@types/node": "^18.0.6",
73
+ "animated-scroll-to": "^2.3.0",
74
+ "dayjs": "^1.11.5",
75
+ "nanoid": "3.3.11",
76
+ "react": "^19.0.0",
77
+ "react-datepicker": "^8.4.0",
78
+ "react-dom": "^19.0.0",
79
+ "react-inlinesvg": "^4.2.0",
80
+ "react-modal": "^3.16.0",
81
+ "react-quill-new": "^3.6.0",
82
+ "react-resize-detector": "^12.0.0",
83
+ "rooks": "8.4.0",
84
+ "styled-components": "^6.1.13",
85
+ "typescript": "^5.1.2"
86
+ },
87
+ "devDependencies": {
88
+ "@babel/cli": "^7.22.0",
89
+ "@babel/plugin-proposal-class-properties": "^7.18.6",
90
+ "@babel/plugin-proposal-decorators": "^7.27.1",
91
+ "@babel/plugin-proposal-export-default-from": "^7.22.0",
92
+ "@babel/plugin-proposal-numeric-separator": "^7.18.6",
93
+ "@babel/plugin-proposal-object-rest-spread": "^7.18.6",
94
+ "@babel/plugin-transform-runtime": "^7.22.0",
95
+ "@babel/preset-env": "^7.22.0",
96
+ "@babel/preset-react": "^7.22.0",
97
+ "@babel/preset-typescript": "^7.27.0",
98
+ "@babel/runtime": "^7.22.0",
99
+ "@chromatic-com/storybook": "1.4.0",
100
+ "@laerdal-medical/life-design-tokens": "^1.5.1-beta",
101
+ "@laerdal/life-react-components": "5.1.0",
102
+ "@laerdal/navigation": "^3.2.0",
103
+ "@storybook/addon-essentials": "^8.1.3",
104
+ "@storybook/addon-interactions": "^8.1.3",
105
+ "@storybook/addon-links": "^8.1.3",
106
+ "@storybook/addon-onboarding": "^8.1.3",
107
+ "@storybook/addon-webpack5-compiler-swc": "1.0.2",
108
+ "@storybook/addons": "^7.6.17",
109
+ "@storybook/blocks": "^8.1.3",
110
+ "@storybook/react": "^8.1.3",
111
+ "@storybook/react-webpack5": "^8.1.3",
112
+ "@storybook/test": "^8.1.3",
113
+ "@testing-library/dom": "^10.4.0",
114
+ "@testing-library/jest-dom": "^6.5.0",
115
+ "@testing-library/react": "^16.0.1",
116
+ "@testing-library/user-event": "^14.5.2",
117
+ "@types/jest": "^29.5.12",
118
+ "@types/react": "^19.1.2",
119
+ "@types/react-datepicker": "^4.4.2",
120
+ "@types/react-dom": "^18.3.0",
121
+ "@types/react-modal": "^3.13.1",
122
+ "babel-plugin-inline-react-svg": "^2.0.1",
123
+ "babel-plugin-typescript-to-proptypes": "^2.0.0",
124
+ "concurrently": "^5.2.0",
125
+ "cross-env": "^7.0.3",
126
+ "css-loader": "^7.1.2",
127
+ "eslint-plugin-storybook": "^0.8.0",
128
+ "history": "^5.3.0",
129
+ "jest": "^29.7.0",
130
+ "jest-environment-jsdom": "^29.7.0",
131
+ "jest-styled-components": "^7.2.0",
132
+ "jest-svg-transformer": "^1.0.0",
133
+ "react-router": "^6.0.0",
134
+ "react-share": "^5.1.0",
135
+ "regenerator-runtime": "^0.13.9",
136
+ "storybook": "^8.1.3",
137
+ "storybook-addon-themes": "^6.1.0",
138
+ "style-loader": "^4.0.0",
139
+ "ts-jest": "^29.2.5",
140
+ "webpack": "^5.99.9",
141
+ "webpack-cli": "^6.0.1",
142
+ "webpack-dev-server": "^5.2.1"
143
+ },
144
+ "peerDependencies": {
145
+ "@babel/core": "^7.0.0",
146
+ "react": "^19",
147
+ "react-dom": "^19"
148
+ },
149
+ "resolutions": {
150
+ "nwsapi": "2.2.9",
151
+ "date-fns": "2.24.0",
152
+ "@types/react": "19.1.2"
153
+ }
150
154
  }