@laerdal/life-react-components 6.0.9-dev.1 → 6.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/InputFields/RichTextField.cjs +3 -19
- package/dist/InputFields/RichTextField.cjs.map +1 -1
- package/dist/InputFields/RichTextField.js +3 -19
- package/dist/InputFields/RichTextField.js.map +1 -1
- package/dist/Modals/ModalContainer.cjs +3 -0
- package/dist/Modals/ModalContainer.cjs.map +1 -1
- package/dist/Modals/ModalContainer.d.ts +1 -0
- package/dist/Modals/ModalContainer.js +3 -0
- package/dist/Modals/ModalContainer.js.map +1 -1
- package/dist/Modals/ModalDialog.cjs +7 -1
- package/dist/Modals/ModalDialog.cjs.map +1 -1
- package/dist/Modals/ModalDialog.d.ts +2 -0
- package/dist/Modals/ModalDialog.js +7 -1
- package/dist/Modals/ModalDialog.js.map +1 -1
- package/dist/Table/Table.cjs +3 -9
- package/dist/Table/Table.cjs.map +1 -1
- package/dist/Table/Table.js +3 -9
- package/dist/Table/Table.js.map +1 -1
- package/package.json +1 -1
|
@@ -26,8 +26,7 @@ const RichTextFieldContainer = exports.RichTextFieldContainer = _styledComponent
|
|
|
26
26
|
.quill {
|
|
27
27
|
width: 100%;
|
|
28
28
|
margin-bottom: 4px;
|
|
29
|
-
overflow:
|
|
30
|
-
position: relative;
|
|
29
|
+
overflow: hidden;
|
|
31
30
|
|
|
32
31
|
box-shadow: inset 0 0 0 1px ${props => _styles.COLORS.generateToken({
|
|
33
32
|
componentType: 'border',
|
|
@@ -104,20 +103,6 @@ const RichTextFieldContainer = exports.RichTextFieldContainer = _styledComponent
|
|
|
104
103
|
componentType: 'border',
|
|
105
104
|
defaultVariant: 'subtle'
|
|
106
105
|
}, 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;
|
|
121
106
|
}
|
|
122
107
|
|
|
123
108
|
.quill.valid .ql-toolbar,
|
|
@@ -134,7 +119,7 @@ const RichTextFieldContainer = exports.RichTextFieldContainer = _styledComponent
|
|
|
134
119
|
|
|
135
120
|
.ql-container.ql-snow {
|
|
136
121
|
border: none;
|
|
137
|
-
overflow-y:
|
|
122
|
+
overflow-y: hidden;
|
|
138
123
|
padding: 8px;
|
|
139
124
|
}
|
|
140
125
|
|
|
@@ -150,13 +135,12 @@ const RichTextFieldContainer = exports.RichTextFieldContainer = _styledComponent
|
|
|
150
135
|
|
|
151
136
|
.quill {
|
|
152
137
|
flex: none;
|
|
153
|
-
overflow:
|
|
138
|
+
overflow: initial;
|
|
154
139
|
}
|
|
155
140
|
|
|
156
141
|
.ql-container {
|
|
157
142
|
flex: none;
|
|
158
143
|
resize: vertical;
|
|
159
|
-
overflow-y: hidden;
|
|
160
144
|
}
|
|
161
145
|
|
|
162
146
|
.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: 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":[]}
|
|
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":[]}
|
|
@@ -17,8 +17,7 @@ export const RichTextFieldContainer = styled.div`
|
|
|
17
17
|
.quill {
|
|
18
18
|
width: 100%;
|
|
19
19
|
margin-bottom: 4px;
|
|
20
|
-
overflow:
|
|
21
|
-
position: relative;
|
|
20
|
+
overflow: hidden;
|
|
22
21
|
|
|
23
22
|
box-shadow: inset 0 0 0 1px ${props => COLORS.generateToken({
|
|
24
23
|
componentType: 'border',
|
|
@@ -95,20 +94,6 @@ export const RichTextFieldContainer = styled.div`
|
|
|
95
94
|
componentType: 'border',
|
|
96
95
|
defaultVariant: 'subtle'
|
|
97
96
|
}, 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;
|
|
112
97
|
}
|
|
113
98
|
|
|
114
99
|
.quill.valid .ql-toolbar,
|
|
@@ -125,7 +110,7 @@ export const RichTextFieldContainer = styled.div`
|
|
|
125
110
|
|
|
126
111
|
.ql-container.ql-snow {
|
|
127
112
|
border: none;
|
|
128
|
-
overflow-y:
|
|
113
|
+
overflow-y: hidden;
|
|
129
114
|
padding: 8px;
|
|
130
115
|
}
|
|
131
116
|
|
|
@@ -141,13 +126,12 @@ export const RichTextFieldContainer = styled.div`
|
|
|
141
126
|
|
|
142
127
|
.quill {
|
|
143
128
|
flex: none;
|
|
144
|
-
overflow:
|
|
129
|
+
overflow: initial;
|
|
145
130
|
}
|
|
146
131
|
|
|
147
132
|
.ql-container {
|
|
148
133
|
flex: none;
|
|
149
134
|
resize: vertical;
|
|
150
|
-
overflow-y: hidden;
|
|
151
135
|
}
|
|
152
136
|
|
|
153
137
|
.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: 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":[]}
|
|
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":[]}
|
|
@@ -119,6 +119,7 @@ class ModalContainer extends React.Component {
|
|
|
119
119
|
render() {
|
|
120
120
|
const {
|
|
121
121
|
id,
|
|
122
|
+
className,
|
|
122
123
|
showModal,
|
|
123
124
|
closeModal,
|
|
124
125
|
children,
|
|
@@ -158,6 +159,7 @@ class ModalContainer extends React.Component {
|
|
|
158
159
|
onRequestClose: () => closeModal(),
|
|
159
160
|
shouldCloseOnOverlayClick: shouldCloseOnOverlayClick,
|
|
160
161
|
style: styles,
|
|
162
|
+
className: className,
|
|
161
163
|
children: children
|
|
162
164
|
});
|
|
163
165
|
}
|
|
@@ -193,6 +195,7 @@ class ModalContainer extends React.Component {
|
|
|
193
195
|
}
|
|
194
196
|
(0, _defineProperty2.default)(ModalContainer, "propTypes", {
|
|
195
197
|
id: _propTypes.default.string,
|
|
198
|
+
className: _propTypes.default.string,
|
|
196
199
|
showModal: _propTypes.default.bool.isRequired,
|
|
197
200
|
closeModal: _propTypes.default.func.isRequired,
|
|
198
201
|
children: _propTypes.default.any.isRequired,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModalContainer.cjs","names":["React","_interopRequireWildcard","require","_reactModal","_interopRequireDefault","_styles","_styledComponents","_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","ModalContainerStyles","content","top","left","right","bottom","marginRight","width","height","borderRadius","boxSizing","margin","overflow","boxShadow","BOXSHADOWS","BOXSHADOW_L3","modalTransitions","Z_INDEXES","backdrop","modal","ModalContainer","Component","componentDidMount","ReactModal","defaultStyles","overlay","backgroundColor","document","querySelector","head","getElementsByTagName","style","createElement","setAttribute","appendChild","createTextNode","props","showModal","preventScroll","window","scrollY","getSnapshotBeforeUpdate","prevProps","prevState","scroll","componentDidUpdate","snapshot","resetScroll","componentWillUnmount","render","id","closeModal","children","padding","minWidth","maxWidth","zIndex","parseInt","shouldCloseOnOverlayClick","zIndexValue","Math","min","max","toast","stylesConfiguration","assign","background","COLORS","generateToken","componentType","defaultVariant","context","theme","styles","setAppElement","jsx","isOpen","closeTimeoutMS","onRequestClose","offset","openInstances","setState","body","position","state","scrollTo","_propTypes","string","bool","isRequired","func","any","number","ThemeContext","_default","exports"],"sources":["../../src/Modals/ModalContainer.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport ReactModal from 'react-modal';\r\nimport {BOXSHADOWS, COLORS} from '../styles';\r\nimport {Z_INDEXES} from '../styles';\r\nimport styled, {keyframes, ThemeContext} from 'styled-components';\r\n\r\nconst ModalContainerStyles = {\r\n content: {\r\n top: 'auto',\r\n left: 'auto',\r\n right: 'auto',\r\n bottom: 'auto',\r\n marginRight: '-50%',\r\n width: '640px',\r\n height: '320px',\r\n borderRadius: '8px',\r\n boxSizing: 'border-box' as any,\r\n margin: 0,\r\n overflow: 'auto',\r\n boxShadow: BOXSHADOWS.BOXSHADOW_L3,\r\n },\r\n};\r\n\r\n//override modal classes to define the animations\r\nconst modalTransitions = `\r\n\r\n@keyframes modalOpenAnimation {\r\n from{\r\n transform: scale(1.1, 1.1);\r\n }\r\n to {\r\n transform: scale(1, 1);\r\n }\r\n}\r\n\r\n.ReactModal__Overlay {\r\n opacity: 0;\r\n z-index: ${Z_INDEXES.backdrop};\r\n display:flex;\r\n justify-content: center;\r\n align-items: center;\r\n}\r\n\r\n.ReactModal__Overlay--after-open {\r\n opacity: 1;\r\n transition: opacity 150ms cubic-bezier(0.22, 0.61, 0.35, 1);\r\n}\r\n\r\n.ReactModal__Content{\r\n z-index: ${Z_INDEXES.modal};\r\n opacity:0;\r\n transition: opacity 150ms cubic-bezier(0.22, 0.61, 0.35, 1);\r\n}\r\n\r\n.ReactModal__Content--after-open{\r\n opacity: 1;\r\n animation: modalOpenAnimation 150ms ease-in-out;\r\n}\r\n\r\n.ReactModal__Overlay--before-close {\r\n opacity: 0;\r\n transition: opacity 120ms linear;\r\n}\r\n\r\n.ReactModal__Content--before-close{\r\n opacity: 0;\r\n transform: scale(1.1, 1.1);\r\n transition: transform 120ms ease-in-out, opacity 120ms cubic-bezier(0.55, 0.05, 0.67, 0.19);\r\n}\r\n`;\r\n\r\n\r\ntype ModalContainerProps = {\r\n id?: string;\r\n showModal: boolean;\r\n closeModal: () => void;\r\n children: any;\r\n height?: any;\r\n width?: any;\r\n overflow?: string;\r\n padding?: string;\r\n minWidth?: string;\r\n maxWidth?: string;\r\n zIndex?: number;\r\n shouldCloseOnOverlayClick?: boolean;\r\n};\r\n\r\ntype ModalContainerState = {\r\n scroll: number;\r\n};\r\n\r\nclass ModalContainer extends React.Component<ModalContainerProps, ModalContainerState> {\r\n private static openInstances = 0;\r\n\r\n static contextType = ThemeContext;\r\n declare context: React.ContextType<typeof ThemeContext>;\r\n\r\n componentDidMount() {\r\n if (ReactModal.defaultStyles.overlay) {\r\n ReactModal.defaultStyles.overlay.backgroundColor = 'rgba(0,0,0,0.5)';\r\n }\r\n\r\n //append style node to override modal transition classes\r\n if (!document.querySelector('[modal-custom-styling=\"active\"]')) {\r\n const head = document.head || document.getElementsByTagName('head')[0];\r\n const style = document.createElement('style');\r\n style.setAttribute('modal-custom-styling', 'active');\r\n head.appendChild(style);\r\n style.appendChild(document.createTextNode(modalTransitions));\r\n }\r\n\r\n if (this.props.showModal) {\r\n this.preventScroll(window.scrollY);\r\n }\r\n }\r\n\r\n getSnapshotBeforeUpdate(prevProps: Readonly<ModalContainerProps>, prevState: Readonly<ModalContainerState>): { scroll: number } {\r\n return {scroll: window.scrollY};\r\n }\r\n\r\n componentDidUpdate(prevProps: Readonly<ModalContainerProps>, prevState: Readonly<ModalContainerState>, snapshot?: { scroll: number }) {\r\n if (this.props.showModal && !prevProps.showModal) {\r\n this.preventScroll(snapshot!.scroll);\r\n }\r\n if (!this.props.showModal && prevProps.showModal) {\r\n this.resetScroll();\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n if (this.props.showModal) {\r\n this.resetScroll();\r\n }\r\n }\r\n\r\n render() {\r\n const {\r\n id,\r\n showModal,\r\n closeModal,\r\n children,\r\n height = 'auto',\r\n width = 'auto',\r\n overflow = 'visible',\r\n padding,\r\n minWidth = '',\r\n maxWidth = '',\r\n zIndex = parseInt(Z_INDEXES.modal),\r\n shouldCloseOnOverlayClick = true\r\n } = this.props;\r\n\r\n // should be at least z-index of modal and below z-index of toast\r\n const zIndexValue = Math.min(Math.max(zIndex, +Z_INDEXES.modal), +Z_INDEXES.toast - 1);\r\n const stylesConfiguration = Object.assign({...ModalContainerStyles.content}, {\r\n height,\r\n width,\r\n padding,\r\n overflow,\r\n minWidth,\r\n maxWidth,\r\n zIndex: zIndexValue,\r\n background: COLORS.generateToken({componentType:'bg-surface', defaultVariant:'default'}, this.context!.theme)\r\n });\r\n const styles = {content: stylesConfiguration};\r\n\r\n ReactModal.setAppElement('body');\r\n return (\r\n <ReactModal id={id}\r\n isOpen={showModal}\r\n closeTimeoutMS={120}\r\n onRequestClose={() => closeModal()}\r\n shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}\r\n style={styles}>\r\n {children}\r\n </ReactModal>\r\n );\r\n }\r\n\r\n private preventScroll(offset: number) {\r\n if (!ModalContainer.openInstances) {\r\n this.setState({scroll: offset});\r\n document.body.style.position = 'fixed';\r\n document.body.style.left = `0px`;\r\n document.body.style.right = `0px`;\r\n document.body.style.top = `-${offset}px`;\r\n }\r\n ModalContainer.openInstances++\r\n }\r\n\r\n private resetScroll() {\r\n ModalContainer.openInstances--;\r\n if (!ModalContainer.openInstances) {\r\n //@ts-ignore\r\n document.body.style.position = null;\r\n //@ts-ignore\r\n document.body.style.left = null;\r\n //@ts-ignore\r\n document.body.style.top = null;\r\n //@ts-ignore\r\n document.body.style.right = null;\r\n this.state.scroll && window.scrollTo(0, this.state.scroll);\r\n this.setState({scroll: 0});\r\n }\r\n }\r\n}\r\n\r\nexport default ModalContainer;"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ModalContainer.cjs","names":["React","_interopRequireWildcard","require","_reactModal","_interopRequireDefault","_styles","_styledComponents","_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","ModalContainerStyles","content","top","left","right","bottom","marginRight","width","height","borderRadius","boxSizing","margin","overflow","boxShadow","BOXSHADOWS","BOXSHADOW_L3","modalTransitions","Z_INDEXES","backdrop","modal","ModalContainer","Component","componentDidMount","ReactModal","defaultStyles","overlay","backgroundColor","document","querySelector","head","getElementsByTagName","style","createElement","setAttribute","appendChild","createTextNode","props","showModal","preventScroll","window","scrollY","getSnapshotBeforeUpdate","prevProps","prevState","scroll","componentDidUpdate","snapshot","resetScroll","componentWillUnmount","render","id","className","closeModal","children","padding","minWidth","maxWidth","zIndex","parseInt","shouldCloseOnOverlayClick","zIndexValue","Math","min","max","toast","stylesConfiguration","assign","background","COLORS","generateToken","componentType","defaultVariant","context","theme","styles","setAppElement","jsx","isOpen","closeTimeoutMS","onRequestClose","offset","openInstances","setState","body","position","state","scrollTo","_propTypes","string","bool","isRequired","func","any","number","ThemeContext","_default","exports"],"sources":["../../src/Modals/ModalContainer.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport ReactModal from 'react-modal';\r\nimport {BOXSHADOWS, COLORS} from '../styles';\r\nimport {Z_INDEXES} from '../styles';\r\nimport styled, {keyframes, ThemeContext} from 'styled-components';\r\n\r\nconst ModalContainerStyles = {\r\n content: {\r\n top: 'auto',\r\n left: 'auto',\r\n right: 'auto',\r\n bottom: 'auto',\r\n marginRight: '-50%',\r\n width: '640px',\r\n height: '320px',\r\n borderRadius: '8px',\r\n boxSizing: 'border-box' as any,\r\n margin: 0,\r\n overflow: 'auto',\r\n boxShadow: BOXSHADOWS.BOXSHADOW_L3,\r\n },\r\n};\r\n\r\n//override modal classes to define the animations\r\nconst modalTransitions = `\r\n\r\n@keyframes modalOpenAnimation {\r\n from{\r\n transform: scale(1.1, 1.1);\r\n }\r\n to {\r\n transform: scale(1, 1);\r\n }\r\n}\r\n\r\n.ReactModal__Overlay {\r\n opacity: 0;\r\n z-index: ${Z_INDEXES.backdrop};\r\n display:flex;\r\n justify-content: center;\r\n align-items: center;\r\n}\r\n\r\n.ReactModal__Overlay--after-open {\r\n opacity: 1;\r\n transition: opacity 150ms cubic-bezier(0.22, 0.61, 0.35, 1);\r\n}\r\n\r\n.ReactModal__Content{\r\n z-index: ${Z_INDEXES.modal};\r\n opacity:0;\r\n transition: opacity 150ms cubic-bezier(0.22, 0.61, 0.35, 1);\r\n}\r\n\r\n.ReactModal__Content--after-open{\r\n opacity: 1;\r\n animation: modalOpenAnimation 150ms ease-in-out;\r\n}\r\n\r\n.ReactModal__Overlay--before-close {\r\n opacity: 0;\r\n transition: opacity 120ms linear;\r\n}\r\n\r\n.ReactModal__Content--before-close{\r\n opacity: 0;\r\n transform: scale(1.1, 1.1);\r\n transition: transform 120ms ease-in-out, opacity 120ms cubic-bezier(0.55, 0.05, 0.67, 0.19);\r\n}\r\n`;\r\n\r\n\r\ntype ModalContainerProps = {\r\n id?: string;\r\n className?: string;\r\n showModal: boolean;\r\n closeModal: () => void;\r\n children: any;\r\n height?: any;\r\n width?: any;\r\n overflow?: string;\r\n padding?: string;\r\n minWidth?: string;\r\n maxWidth?: string;\r\n zIndex?: number;\r\n shouldCloseOnOverlayClick?: boolean;\r\n};\r\n\r\ntype ModalContainerState = {\r\n scroll: number;\r\n};\r\n\r\nclass ModalContainer extends React.Component<ModalContainerProps, ModalContainerState> {\r\n private static openInstances = 0;\r\n\r\n static contextType = ThemeContext;\r\n declare context: React.ContextType<typeof ThemeContext>;\r\n\r\n componentDidMount() {\r\n if (ReactModal.defaultStyles.overlay) {\r\n ReactModal.defaultStyles.overlay.backgroundColor = 'rgba(0,0,0,0.5)';\r\n }\r\n\r\n //append style node to override modal transition classes\r\n if (!document.querySelector('[modal-custom-styling=\"active\"]')) {\r\n const head = document.head || document.getElementsByTagName('head')[0];\r\n const style = document.createElement('style');\r\n style.setAttribute('modal-custom-styling', 'active');\r\n head.appendChild(style);\r\n style.appendChild(document.createTextNode(modalTransitions));\r\n }\r\n\r\n if (this.props.showModal) {\r\n this.preventScroll(window.scrollY);\r\n }\r\n }\r\n\r\n getSnapshotBeforeUpdate(prevProps: Readonly<ModalContainerProps>, prevState: Readonly<ModalContainerState>): { scroll: number } {\r\n return {scroll: window.scrollY};\r\n }\r\n\r\n componentDidUpdate(prevProps: Readonly<ModalContainerProps>, prevState: Readonly<ModalContainerState>, snapshot?: { scroll: number }) {\r\n if (this.props.showModal && !prevProps.showModal) {\r\n this.preventScroll(snapshot!.scroll);\r\n }\r\n if (!this.props.showModal && prevProps.showModal) {\r\n this.resetScroll();\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n if (this.props.showModal) {\r\n this.resetScroll();\r\n }\r\n }\r\n\r\n render() {\r\n const {\r\n id,\r\n className,\r\n showModal,\r\n closeModal,\r\n children,\r\n height = 'auto',\r\n width = 'auto',\r\n overflow = 'visible',\r\n padding,\r\n minWidth = '',\r\n maxWidth = '',\r\n zIndex = parseInt(Z_INDEXES.modal),\r\n shouldCloseOnOverlayClick = true\r\n } = this.props;\r\n\r\n // should be at least z-index of modal and below z-index of toast\r\n const zIndexValue = Math.min(Math.max(zIndex, +Z_INDEXES.modal), +Z_INDEXES.toast - 1);\r\n const stylesConfiguration = Object.assign({...ModalContainerStyles.content}, {\r\n height,\r\n width,\r\n padding,\r\n overflow,\r\n minWidth,\r\n maxWidth,\r\n zIndex: zIndexValue,\r\n background: COLORS.generateToken({componentType:'bg-surface', defaultVariant:'default'}, this.context!.theme)\r\n });\r\n const styles = {content: stylesConfiguration};\r\n\r\n ReactModal.setAppElement('body');\r\n return (\r\n <ReactModal id={id}\r\n isOpen={showModal}\r\n closeTimeoutMS={120}\r\n onRequestClose={() => closeModal()}\r\n shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}\r\n style={styles}\r\n className={className}>\r\n {children}\r\n </ReactModal>\r\n );\r\n }\r\n\r\n private preventScroll(offset: number) {\r\n if (!ModalContainer.openInstances) {\r\n this.setState({scroll: offset});\r\n document.body.style.position = 'fixed';\r\n document.body.style.left = `0px`;\r\n document.body.style.right = `0px`;\r\n document.body.style.top = `-${offset}px`;\r\n }\r\n ModalContainer.openInstances++\r\n }\r\n\r\n private resetScroll() {\r\n ModalContainer.openInstances--;\r\n if (!ModalContainer.openInstances) {\r\n //@ts-ignore\r\n document.body.style.position = null;\r\n //@ts-ignore\r\n document.body.style.left = null;\r\n //@ts-ignore\r\n document.body.style.top = null;\r\n //@ts-ignore\r\n document.body.style.right = null;\r\n this.state.scroll && window.scrollTo(0, this.state.scroll);\r\n this.setState({scroll: 0});\r\n }\r\n }\r\n}\r\n\r\nexport default ModalContainer;"],"mappings":"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","ignoreList":[]}
|
|
@@ -111,6 +111,7 @@ class ModalContainer extends React.Component {
|
|
|
111
111
|
render() {
|
|
112
112
|
const {
|
|
113
113
|
id,
|
|
114
|
+
className,
|
|
114
115
|
showModal,
|
|
115
116
|
closeModal,
|
|
116
117
|
children,
|
|
@@ -150,6 +151,7 @@ class ModalContainer extends React.Component {
|
|
|
150
151
|
onRequestClose: () => closeModal(),
|
|
151
152
|
shouldCloseOnOverlayClick: shouldCloseOnOverlayClick,
|
|
152
153
|
style: styles,
|
|
154
|
+
className: className,
|
|
153
155
|
children: children
|
|
154
156
|
});
|
|
155
157
|
}
|
|
@@ -185,6 +187,7 @@ class ModalContainer extends React.Component {
|
|
|
185
187
|
}
|
|
186
188
|
_defineProperty(ModalContainer, "propTypes", {
|
|
187
189
|
id: _pt.string,
|
|
190
|
+
className: _pt.string,
|
|
188
191
|
showModal: _pt.bool.isRequired,
|
|
189
192
|
closeModal: _pt.func.isRequired,
|
|
190
193
|
children: _pt.any.isRequired,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModalContainer.js","names":["React","ReactModal","BOXSHADOWS","COLORS","Z_INDEXES","ThemeContext","jsx","_jsx","ModalContainerStyles","content","top","left","right","bottom","marginRight","width","height","borderRadius","boxSizing","margin","overflow","boxShadow","BOXSHADOW_L3","modalTransitions","backdrop","modal","ModalContainer","Component","componentDidMount","defaultStyles","overlay","backgroundColor","document","querySelector","head","getElementsByTagName","style","createElement","setAttribute","appendChild","createTextNode","props","showModal","preventScroll","window","scrollY","getSnapshotBeforeUpdate","prevProps","prevState","scroll","componentDidUpdate","snapshot","resetScroll","componentWillUnmount","render","id","closeModal","children","padding","minWidth","maxWidth","zIndex","parseInt","shouldCloseOnOverlayClick","zIndexValue","Math","min","max","toast","stylesConfiguration","Object","assign","_objectSpread","background","generateToken","componentType","defaultVariant","context","theme","styles","setAppElement","isOpen","closeTimeoutMS","onRequestClose","offset","openInstances","setState","body","position","state","scrollTo","_defineProperty","_pt","string","bool","isRequired","func","any","number"],"sources":["../../src/Modals/ModalContainer.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport ReactModal from 'react-modal';\r\nimport {BOXSHADOWS, COLORS} from '../styles';\r\nimport {Z_INDEXES} from '../styles';\r\nimport styled, {keyframes, ThemeContext} from 'styled-components';\r\n\r\nconst ModalContainerStyles = {\r\n content: {\r\n top: 'auto',\r\n left: 'auto',\r\n right: 'auto',\r\n bottom: 'auto',\r\n marginRight: '-50%',\r\n width: '640px',\r\n height: '320px',\r\n borderRadius: '8px',\r\n boxSizing: 'border-box' as any,\r\n margin: 0,\r\n overflow: 'auto',\r\n boxShadow: BOXSHADOWS.BOXSHADOW_L3,\r\n },\r\n};\r\n\r\n//override modal classes to define the animations\r\nconst modalTransitions = `\r\n\r\n@keyframes modalOpenAnimation {\r\n from{\r\n transform: scale(1.1, 1.1);\r\n }\r\n to {\r\n transform: scale(1, 1);\r\n }\r\n}\r\n\r\n.ReactModal__Overlay {\r\n opacity: 0;\r\n z-index: ${Z_INDEXES.backdrop};\r\n display:flex;\r\n justify-content: center;\r\n align-items: center;\r\n}\r\n\r\n.ReactModal__Overlay--after-open {\r\n opacity: 1;\r\n transition: opacity 150ms cubic-bezier(0.22, 0.61, 0.35, 1);\r\n}\r\n\r\n.ReactModal__Content{\r\n z-index: ${Z_INDEXES.modal};\r\n opacity:0;\r\n transition: opacity 150ms cubic-bezier(0.22, 0.61, 0.35, 1);\r\n}\r\n\r\n.ReactModal__Content--after-open{\r\n opacity: 1;\r\n animation: modalOpenAnimation 150ms ease-in-out;\r\n}\r\n\r\n.ReactModal__Overlay--before-close {\r\n opacity: 0;\r\n transition: opacity 120ms linear;\r\n}\r\n\r\n.ReactModal__Content--before-close{\r\n opacity: 0;\r\n transform: scale(1.1, 1.1);\r\n transition: transform 120ms ease-in-out, opacity 120ms cubic-bezier(0.55, 0.05, 0.67, 0.19);\r\n}\r\n`;\r\n\r\n\r\ntype ModalContainerProps = {\r\n id?: string;\r\n showModal: boolean;\r\n closeModal: () => void;\r\n children: any;\r\n height?: any;\r\n width?: any;\r\n overflow?: string;\r\n padding?: string;\r\n minWidth?: string;\r\n maxWidth?: string;\r\n zIndex?: number;\r\n shouldCloseOnOverlayClick?: boolean;\r\n};\r\n\r\ntype ModalContainerState = {\r\n scroll: number;\r\n};\r\n\r\nclass ModalContainer extends React.Component<ModalContainerProps, ModalContainerState> {\r\n private static openInstances = 0;\r\n\r\n static contextType = ThemeContext;\r\n declare context: React.ContextType<typeof ThemeContext>;\r\n\r\n componentDidMount() {\r\n if (ReactModal.defaultStyles.overlay) {\r\n ReactModal.defaultStyles.overlay.backgroundColor = 'rgba(0,0,0,0.5)';\r\n }\r\n\r\n //append style node to override modal transition classes\r\n if (!document.querySelector('[modal-custom-styling=\"active\"]')) {\r\n const head = document.head || document.getElementsByTagName('head')[0];\r\n const style = document.createElement('style');\r\n style.setAttribute('modal-custom-styling', 'active');\r\n head.appendChild(style);\r\n style.appendChild(document.createTextNode(modalTransitions));\r\n }\r\n\r\n if (this.props.showModal) {\r\n this.preventScroll(window.scrollY);\r\n }\r\n }\r\n\r\n getSnapshotBeforeUpdate(prevProps: Readonly<ModalContainerProps>, prevState: Readonly<ModalContainerState>): { scroll: number } {\r\n return {scroll: window.scrollY};\r\n }\r\n\r\n componentDidUpdate(prevProps: Readonly<ModalContainerProps>, prevState: Readonly<ModalContainerState>, snapshot?: { scroll: number }) {\r\n if (this.props.showModal && !prevProps.showModal) {\r\n this.preventScroll(snapshot!.scroll);\r\n }\r\n if (!this.props.showModal && prevProps.showModal) {\r\n this.resetScroll();\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n if (this.props.showModal) {\r\n this.resetScroll();\r\n }\r\n }\r\n\r\n render() {\r\n const {\r\n id,\r\n showModal,\r\n closeModal,\r\n children,\r\n height = 'auto',\r\n width = 'auto',\r\n overflow = 'visible',\r\n padding,\r\n minWidth = '',\r\n maxWidth = '',\r\n zIndex = parseInt(Z_INDEXES.modal),\r\n shouldCloseOnOverlayClick = true\r\n } = this.props;\r\n\r\n // should be at least z-index of modal and below z-index of toast\r\n const zIndexValue = Math.min(Math.max(zIndex, +Z_INDEXES.modal), +Z_INDEXES.toast - 1);\r\n const stylesConfiguration = Object.assign({...ModalContainerStyles.content}, {\r\n height,\r\n width,\r\n padding,\r\n overflow,\r\n minWidth,\r\n maxWidth,\r\n zIndex: zIndexValue,\r\n background: COLORS.generateToken({componentType:'bg-surface', defaultVariant:'default'}, this.context!.theme)\r\n });\r\n const styles = {content: stylesConfiguration};\r\n\r\n ReactModal.setAppElement('body');\r\n return (\r\n <ReactModal id={id}\r\n isOpen={showModal}\r\n closeTimeoutMS={120}\r\n onRequestClose={() => closeModal()}\r\n shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}\r\n style={styles}>\r\n {children}\r\n </ReactModal>\r\n );\r\n }\r\n\r\n private preventScroll(offset: number) {\r\n if (!ModalContainer.openInstances) {\r\n this.setState({scroll: offset});\r\n document.body.style.position = 'fixed';\r\n document.body.style.left = `0px`;\r\n document.body.style.right = `0px`;\r\n document.body.style.top = `-${offset}px`;\r\n }\r\n ModalContainer.openInstances++\r\n }\r\n\r\n private resetScroll() {\r\n ModalContainer.openInstances--;\r\n if (!ModalContainer.openInstances) {\r\n //@ts-ignore\r\n document.body.style.position = null;\r\n //@ts-ignore\r\n document.body.style.left = null;\r\n //@ts-ignore\r\n document.body.style.top = null;\r\n //@ts-ignore\r\n document.body.style.right = null;\r\n this.state.scroll && window.scrollTo(0, this.state.scroll);\r\n this.setState({scroll: 0});\r\n }\r\n }\r\n}\r\n\r\nexport default ModalContainer;"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ModalContainer.js","names":["React","ReactModal","BOXSHADOWS","COLORS","Z_INDEXES","ThemeContext","jsx","_jsx","ModalContainerStyles","content","top","left","right","bottom","marginRight","width","height","borderRadius","boxSizing","margin","overflow","boxShadow","BOXSHADOW_L3","modalTransitions","backdrop","modal","ModalContainer","Component","componentDidMount","defaultStyles","overlay","backgroundColor","document","querySelector","head","getElementsByTagName","style","createElement","setAttribute","appendChild","createTextNode","props","showModal","preventScroll","window","scrollY","getSnapshotBeforeUpdate","prevProps","prevState","scroll","componentDidUpdate","snapshot","resetScroll","componentWillUnmount","render","id","className","closeModal","children","padding","minWidth","maxWidth","zIndex","parseInt","shouldCloseOnOverlayClick","zIndexValue","Math","min","max","toast","stylesConfiguration","Object","assign","_objectSpread","background","generateToken","componentType","defaultVariant","context","theme","styles","setAppElement","isOpen","closeTimeoutMS","onRequestClose","offset","openInstances","setState","body","position","state","scrollTo","_defineProperty","_pt","string","bool","isRequired","func","any","number"],"sources":["../../src/Modals/ModalContainer.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport ReactModal from 'react-modal';\r\nimport {BOXSHADOWS, COLORS} from '../styles';\r\nimport {Z_INDEXES} from '../styles';\r\nimport styled, {keyframes, ThemeContext} from 'styled-components';\r\n\r\nconst ModalContainerStyles = {\r\n content: {\r\n top: 'auto',\r\n left: 'auto',\r\n right: 'auto',\r\n bottom: 'auto',\r\n marginRight: '-50%',\r\n width: '640px',\r\n height: '320px',\r\n borderRadius: '8px',\r\n boxSizing: 'border-box' as any,\r\n margin: 0,\r\n overflow: 'auto',\r\n boxShadow: BOXSHADOWS.BOXSHADOW_L3,\r\n },\r\n};\r\n\r\n//override modal classes to define the animations\r\nconst modalTransitions = `\r\n\r\n@keyframes modalOpenAnimation {\r\n from{\r\n transform: scale(1.1, 1.1);\r\n }\r\n to {\r\n transform: scale(1, 1);\r\n }\r\n}\r\n\r\n.ReactModal__Overlay {\r\n opacity: 0;\r\n z-index: ${Z_INDEXES.backdrop};\r\n display:flex;\r\n justify-content: center;\r\n align-items: center;\r\n}\r\n\r\n.ReactModal__Overlay--after-open {\r\n opacity: 1;\r\n transition: opacity 150ms cubic-bezier(0.22, 0.61, 0.35, 1);\r\n}\r\n\r\n.ReactModal__Content{\r\n z-index: ${Z_INDEXES.modal};\r\n opacity:0;\r\n transition: opacity 150ms cubic-bezier(0.22, 0.61, 0.35, 1);\r\n}\r\n\r\n.ReactModal__Content--after-open{\r\n opacity: 1;\r\n animation: modalOpenAnimation 150ms ease-in-out;\r\n}\r\n\r\n.ReactModal__Overlay--before-close {\r\n opacity: 0;\r\n transition: opacity 120ms linear;\r\n}\r\n\r\n.ReactModal__Content--before-close{\r\n opacity: 0;\r\n transform: scale(1.1, 1.1);\r\n transition: transform 120ms ease-in-out, opacity 120ms cubic-bezier(0.55, 0.05, 0.67, 0.19);\r\n}\r\n`;\r\n\r\n\r\ntype ModalContainerProps = {\r\n id?: string;\r\n className?: string;\r\n showModal: boolean;\r\n closeModal: () => void;\r\n children: any;\r\n height?: any;\r\n width?: any;\r\n overflow?: string;\r\n padding?: string;\r\n minWidth?: string;\r\n maxWidth?: string;\r\n zIndex?: number;\r\n shouldCloseOnOverlayClick?: boolean;\r\n};\r\n\r\ntype ModalContainerState = {\r\n scroll: number;\r\n};\r\n\r\nclass ModalContainer extends React.Component<ModalContainerProps, ModalContainerState> {\r\n private static openInstances = 0;\r\n\r\n static contextType = ThemeContext;\r\n declare context: React.ContextType<typeof ThemeContext>;\r\n\r\n componentDidMount() {\r\n if (ReactModal.defaultStyles.overlay) {\r\n ReactModal.defaultStyles.overlay.backgroundColor = 'rgba(0,0,0,0.5)';\r\n }\r\n\r\n //append style node to override modal transition classes\r\n if (!document.querySelector('[modal-custom-styling=\"active\"]')) {\r\n const head = document.head || document.getElementsByTagName('head')[0];\r\n const style = document.createElement('style');\r\n style.setAttribute('modal-custom-styling', 'active');\r\n head.appendChild(style);\r\n style.appendChild(document.createTextNode(modalTransitions));\r\n }\r\n\r\n if (this.props.showModal) {\r\n this.preventScroll(window.scrollY);\r\n }\r\n }\r\n\r\n getSnapshotBeforeUpdate(prevProps: Readonly<ModalContainerProps>, prevState: Readonly<ModalContainerState>): { scroll: number } {\r\n return {scroll: window.scrollY};\r\n }\r\n\r\n componentDidUpdate(prevProps: Readonly<ModalContainerProps>, prevState: Readonly<ModalContainerState>, snapshot?: { scroll: number }) {\r\n if (this.props.showModal && !prevProps.showModal) {\r\n this.preventScroll(snapshot!.scroll);\r\n }\r\n if (!this.props.showModal && prevProps.showModal) {\r\n this.resetScroll();\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n if (this.props.showModal) {\r\n this.resetScroll();\r\n }\r\n }\r\n\r\n render() {\r\n const {\r\n id,\r\n className,\r\n showModal,\r\n closeModal,\r\n children,\r\n height = 'auto',\r\n width = 'auto',\r\n overflow = 'visible',\r\n padding,\r\n minWidth = '',\r\n maxWidth = '',\r\n zIndex = parseInt(Z_INDEXES.modal),\r\n shouldCloseOnOverlayClick = true\r\n } = this.props;\r\n\r\n // should be at least z-index of modal and below z-index of toast\r\n const zIndexValue = Math.min(Math.max(zIndex, +Z_INDEXES.modal), +Z_INDEXES.toast - 1);\r\n const stylesConfiguration = Object.assign({...ModalContainerStyles.content}, {\r\n height,\r\n width,\r\n padding,\r\n overflow,\r\n minWidth,\r\n maxWidth,\r\n zIndex: zIndexValue,\r\n background: COLORS.generateToken({componentType:'bg-surface', defaultVariant:'default'}, this.context!.theme)\r\n });\r\n const styles = {content: stylesConfiguration};\r\n\r\n ReactModal.setAppElement('body');\r\n return (\r\n <ReactModal id={id}\r\n isOpen={showModal}\r\n closeTimeoutMS={120}\r\n onRequestClose={() => closeModal()}\r\n shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}\r\n style={styles}\r\n className={className}>\r\n {children}\r\n </ReactModal>\r\n );\r\n }\r\n\r\n private preventScroll(offset: number) {\r\n if (!ModalContainer.openInstances) {\r\n this.setState({scroll: offset});\r\n document.body.style.position = 'fixed';\r\n document.body.style.left = `0px`;\r\n document.body.style.right = `0px`;\r\n document.body.style.top = `-${offset}px`;\r\n }\r\n ModalContainer.openInstances++\r\n }\r\n\r\n private resetScroll() {\r\n ModalContainer.openInstances--;\r\n if (!ModalContainer.openInstances) {\r\n //@ts-ignore\r\n document.body.style.position = null;\r\n //@ts-ignore\r\n document.body.style.left = null;\r\n //@ts-ignore\r\n document.body.style.top = null;\r\n //@ts-ignore\r\n document.body.style.right = null;\r\n this.state.scroll && window.scrollTo(0, this.state.scroll);\r\n this.setState({scroll: 0});\r\n }\r\n }\r\n}\r\n\r\nexport default ModalContainer;"],"mappings":"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","ignoreList":[]}
|
|
@@ -41,7 +41,9 @@ const ModalDialog = _ref => {
|
|
|
41
41
|
contentOverflow,
|
|
42
42
|
hideCloseButton,
|
|
43
43
|
width,
|
|
44
|
-
hasContentBorders
|
|
44
|
+
hasContentBorders,
|
|
45
|
+
className,
|
|
46
|
+
id
|
|
45
47
|
} = _ref;
|
|
46
48
|
const theme = (0, _styledComponents.useTheme)();
|
|
47
49
|
const getMinWidth = () => {
|
|
@@ -262,6 +264,8 @@ const ModalDialog = _ref => {
|
|
|
262
264
|
}
|
|
263
265
|
};
|
|
264
266
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ModalContainer.default, {
|
|
267
|
+
className: className,
|
|
268
|
+
id: id,
|
|
265
269
|
showModal: isModalOpen,
|
|
266
270
|
closeModal: closeAction,
|
|
267
271
|
minWidth: getMinWidth(),
|
|
@@ -344,6 +348,8 @@ ModalDialog.propTypes = {
|
|
|
344
348
|
buttons: _propTypes.default.array,
|
|
345
349
|
tooltip: _propTypes.default.string,
|
|
346
350
|
backButton: _propTypes.default.func,
|
|
351
|
+
className: _propTypes.default.string,
|
|
352
|
+
id: _propTypes.default.string,
|
|
347
353
|
closeAction: _propTypes.default.func.isRequired,
|
|
348
354
|
hideCloseButton: _propTypes.default.bool,
|
|
349
355
|
submitAction: _propTypes.default.func.isRequired,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModalDialog.cjs","names":["_react","_interopRequireDefault","require","_Button","_icons","_styles","_types","_ModalContainer","_ModalStyles","_ModalNote","_Tooltips","_","_styledComponents","_jsxRuntime","ModalDialog","_ref","size","isModalOpen","title","topImage","topImageWithFallbacksProps","topImageGrayscale","buttons","leftFooterAction","backButton","closeAction","submitAction","tooltip","children","note","shouldCloseOnOverlayClick","state","icon","zIndex","contentOverflow","hideCloseButton","width","hasContentBorders","theme","useTheme","getMinWidth","Size","Small","Large","Medium","getMaxWidth","getImageHeight","getMarginBottom","getPadding","getMaxHeight","ModalTitle","jsx","ComponentM","textStyle","ComponentTextStyle","Bold","ComponentL","ComponentXL","ModalTootip","ModalHoverModifier","TooltipWrapper","delay","XSmall","align","position","withArrow","label","IconButton","variant","shape","action","SystemIcons","Help","color","COLORS","generateToken","componentType","defaultVariant","ModalCloseButton","onClick","CloseButtonWrapper","$hasImage","$size","borderRadius","Close","ModalBackButton","BackButtonWrapper","ArrowLineLeft","getLeftActionIconElement","React","cloneElement","LeftFooterAction","text","actionType","disabled","button","TextButton","id","type","loading","style","order","marginRight","jsxs","HyperLink","className","href","e","preventDefault","default","showModal","closeModal","minWidth","maxWidth","height","padding","Column","onSubmit","display","flexDirection","maxHeight","StyledModalHeader","$height","$marginBottom","ImageContainer","ImageOverlay","src","alt","ImageWithFallbacks","loader","fallbacks","ModalHeaderActionsWithImage","$hasBackButton","ModalTitleSection","FlexContainer","ModalHeaderActions","ModalBody","$overflow","$hasContentBorders","ModalNote","ModalFooter","map","b","i","exports","propTypes","_propTypes","bool","isRequired","node","oneOfType","string","any","array","func","number","_default"],"sources":["../../src/Modals/ModalDialog.tsx"],"sourcesContent":["import React from 'react';\r\nimport { TextButton, IconButton } from '../Button';\r\nimport { SystemIcons } from '../icons';\r\nimport { COLORS, ComponentL, ComponentM, ComponentTextStyle, ComponentXL } from '../styles';\r\nimport { Size } from '../types';\r\nimport ModalContainer from './ModalContainer';\r\nimport {\r\n BackButtonWrapper,\r\n CloseButtonWrapper,\r\n Column,\r\n FlexContainer,\r\n ModalBody,\r\n ModalFooter,\r\n ModalHeaderActions,\r\n ModalHeaderActionsWithImage,\r\n ModalTitleSection,\r\n StyledModalHeader,\r\n ModalHoverModifier,\r\n ImageOverlay,\r\n ImageContainer,\r\n} from './ModalStyles';\r\n\r\nimport { ModalNote } from './ModalNote';\r\nimport { TooltipWrapper } from '../Tooltips';\r\nimport { ButtonAction, LeftFooterAction, LeftFooterButton, LeftFooterHyperlink } from './ModalTypes';\r\nimport { HyperLink, ImageWithFallbacks } from '..';\r\nimport { ImageWithFallbacksProps } from '../Image/ImageWithFallbacks';\r\nimport { useTheme } from 'styled-components';\r\n\r\nexport interface ModalDialogProps {\r\n /** Optional. Size of the modal. Defaults to 'medium' */\r\n size?: Size.Small | Size.Medium | Size.Large;\r\n /** Required. Current state of the modal. */\r\n isModalOpen: boolean;\r\n /** Optional. Content of the ModalDialog. */\r\n children?: React.ReactNode;\r\n /** Optional. Title of the ModalDialog. */\r\n title?: string | React.ReactNode;\r\n /** Optional. Content of the image to be shown in the header of the modal. */\r\n topImage?: any;\r\n /** Optional. Serves same purpose as 'topImage' except adds support for fallback options. Has higher priority than 'topImage'. */\r\n topImageWithFallbacksProps?: ImageWithFallbacksProps;\r\n /** Optional. If flag is set then overlay is added that converts image to grey color. */\r\n topImageGrayscale?: boolean;\r\n /** Optional. Collection of Buttons that will be shown in the footer on the right side of the ModalDialog. */\r\n buttons?: ButtonAction[];\r\n /** Optional. Left footer action that will be shown on the left side of the footer of ModalDialog. Can be a hyperlink, button or a note. */\r\n leftFooterAction?: LeftFooterAction;\r\n /** Optional. Tooltip that will be shown */\r\n tooltip?: string;\r\n /** */\r\n backButton?: () => void;\r\n closeAction: () => void;\r\n hideCloseButton?: boolean;\r\n submitAction: (event?: React.FormEvent<HTMLFormElement> | undefined) => void;\r\n note?: string | React.ReactNode;\r\n state?: string;\r\n icon?: React.ReactNode;\r\n zIndex?: number;\r\n contentOverflow?: string;\r\n width?: string;\r\n hasContentBorders?: boolean;\r\n shouldCloseOnOverlayClick?: boolean;\r\n}\r\n\r\nexport const ModalDialog: React.FunctionComponent<ModalDialogProps> = ({\r\n size,\r\n isModalOpen,\r\n title,\r\n topImage,\r\n topImageWithFallbacksProps,\r\n topImageGrayscale,\r\n buttons,\r\n leftFooterAction,\r\n backButton,\r\n closeAction,\r\n submitAction,\r\n tooltip,\r\n children,\r\n note,\r\n shouldCloseOnOverlayClick,\r\n state,\r\n icon,\r\n zIndex,\r\n contentOverflow,\r\n hideCloseButton,\r\n width,\r\n hasContentBorders,\r\n}) => {\r\n\r\n const theme = useTheme();\r\n const getMinWidth = () => {\r\n switch (size) {\r\n case Size.Small:\r\n return '320px';\r\n case Size.Large:\r\n return '640px';\r\n case Size.Medium:\r\n default:\r\n return '480px';\r\n }\r\n };\r\n\r\n const getMaxWidth = () => {\r\n switch (size) {\r\n case Size.Small:\r\n return '480px';\r\n case Size.Large:\r\n return '720px';\r\n case Size.Medium:\r\n default:\r\n return '640px';\r\n }\r\n };\r\n\r\n const getImageHeight = () => {\r\n switch (size) {\r\n case Size.Small:\r\n return 160;\r\n case Size.Medium:\r\n return 200;\r\n case Size.Large:\r\n return 240;\r\n default:\r\n return 200;\r\n }\r\n };\r\n\r\n const getMarginBottom = () => {\r\n switch (size) {\r\n case Size.Small:\r\n return '16px';\r\n case Size.Medium:\r\n return '24px';\r\n case Size.Large:\r\n return '32px';\r\n default:\r\n return '24px';\r\n }\r\n };\r\n\r\n const getPadding = () => {\r\n switch (size) {\r\n case Size.Small:\r\n return '16px 16px 8px';\r\n case Size.Medium:\r\n return '24px 24px 20px';\r\n case Size.Large:\r\n return '32px';\r\n default:\r\n return '24px 24px 16px';\r\n }\r\n };\r\n\r\n const getMaxHeight = () => {\r\n switch (size) {\r\n case Size.Small:\r\n return 'calc(100vh - 56px)';\r\n case Size.Medium:\r\n return 'calc(100vh - 76px)';\r\n case Size.Large:\r\n return 'calc(100vh - 96px)';\r\n default:\r\n return 'calc(100vh - 72px)';\r\n }\r\n };\r\n\r\n const ModalTitle = (title: string | React.ReactNode, size?: Size) => {\r\n if (typeof title === 'string') {\r\n switch (size) {\r\n case Size.Small:\r\n return <ComponentM textStyle={ComponentTextStyle.Bold}>{title}</ComponentM>;\r\n case Size.Medium:\r\n return <ComponentL textStyle={ComponentTextStyle.Bold}>{title}</ComponentL>;\r\n case Size.Large:\r\n return <ComponentXL textStyle={ComponentTextStyle.Bold}>{title}</ComponentXL>;\r\n default:\r\n return <ComponentL textStyle={ComponentTextStyle.Bold}>{title}</ComponentL>;\r\n }\r\n } else {\r\n return title;\r\n }\r\n };\r\n\r\n const ModalTootip = (tooltip: string) => {\r\n return (\r\n <ModalHoverModifier>\r\n <TooltipWrapper delay=\"0s\" size={Size.XSmall} align=\"center\" position=\"top\" withArrow={false} label={tooltip}>\r\n <IconButton variant=\"secondary\" shape=\"circular\" action={() => {}}>\r\n <SystemIcons.Help size=\"24px\" color={COLORS.generateToken({componentType:'icon', defaultVariant:'subtle'}, theme)} />\r\n </IconButton>\r\n </TooltipWrapper>\r\n </ModalHoverModifier>\r\n );\r\n };\r\n\r\n const ModalCloseButton = (onClick: any) => {\r\n return (\r\n <CloseButtonWrapper $hasImage={!!topImage || !!topImageWithFallbacksProps} $size={size}>\r\n <IconButton variant=\"secondary\" shape=\"circular\" action={() => onClick()} borderRadius={48}>\r\n <SystemIcons.Close size=\"24px\" color={COLORS.generateToken({componentType:'icon', defaultVariant:'subtle'}, theme)} />\r\n </IconButton>\r\n </CloseButtonWrapper>\r\n );\r\n };\r\n\r\n const ModalBackButton = () => {\r\n if (backButton) {\r\n return (\r\n <BackButtonWrapper $hasImage={!!topImage || !!topImageWithFallbacksProps} $size={size}>\r\n <IconButton variant=\"secondary\" shape=\"circular\" action={() => backButton()} borderRadius={48}>\r\n <SystemIcons.ArrowLineLeft size=\"24px\" color={COLORS.generateToken({componentType:'icon', defaultVariant:'subtle'}, theme)} />\r\n </IconButton>\r\n </BackButtonWrapper>\r\n );\r\n }\r\n };\r\n\r\n const getLeftActionIconElement = (icon: React.ReactNode) => {\r\n return React.cloneElement(icon as React.ReactElement<any>, { size: size === Size.Small ? '20px' : size === Size.Large ? '28px' : '24px' });\r\n };\r\n\r\n const LeftFooterAction = (leftFooterAction: LeftFooterAction) => {\r\n const { text, actionType, disabled, icon, action } = leftFooterAction;\r\n switch (actionType) {\r\n case 'button':\r\n const button = leftFooterAction as LeftFooterButton;\r\n return (\r\n <TextButton\r\n id={'left-action-button'}\r\n type={button?.type}\r\n disabled={disabled}\r\n loading={button?.loading}\r\n icon={icon}\r\n size={size}\r\n onClick={action}\r\n variant={button?.variant ?? 'secondary'}\r\n style={{ order: -1, marginRight: 'auto' }}>\r\n {button?.children ?? button?.text}\r\n </TextButton>\r\n );\r\n case 'hyperlink':\r\n return (\r\n <HyperLink\r\n id=\"left-action-hyperlink\"\r\n className=\"footer-action\"\r\n href={(leftFooterAction as LeftFooterHyperlink).href}\r\n disabled={disabled}\r\n variant=\"default\"\r\n onClick={(e) => {\r\n if (action) {\r\n e.preventDefault();\r\n action(e);\r\n }\r\n }}>\r\n {text}\r\n {icon && getLeftActionIconElement(icon)}\r\n </HyperLink>\r\n );\r\n case 'note':\r\n return (\r\n <div className=\"footer-action note\">\r\n {icon && getLeftActionIconElement(icon)}\r\n <span>{text}</span>\r\n </div>\r\n );\r\n }\r\n };\r\n\r\n return (\r\n <ModalContainer\r\n showModal={isModalOpen}\r\n closeModal={closeAction}\r\n minWidth={getMinWidth()}\r\n shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}\r\n maxWidth={getMaxWidth()}\r\n height=\"auto\"\r\n padding={getPadding()}\r\n zIndex={zIndex}\r\n width={width}>\r\n <Column>\r\n <form onSubmit={submitAction} style={{ display: 'flex', flexDirection: 'column', maxHeight: getMaxHeight() }}>\r\n {(topImage || topImageWithFallbacksProps) && (\r\n <StyledModalHeader $size={size} $height={getImageHeight()} $marginBottom={getMarginBottom()}>\r\n <ImageContainer $height={getImageHeight()}>\r\n {topImageGrayscale && <ImageOverlay $height={getImageHeight()} />}\r\n {topImage && <img src={topImage} alt=\"Modal top\" />}\r\n {!topImage && topImageWithFallbacksProps && (\r\n <ImageWithFallbacks\r\n loader={topImageWithFallbacksProps.loader}\r\n alt={topImageWithFallbacksProps.alt}\r\n fallbacks={topImageWithFallbacksProps.fallbacks}\r\n src={topImageWithFallbacksProps.src}\r\n />\r\n )}\r\n </ImageContainer>\r\n <ModalHeaderActionsWithImage $hasBackButton={!!backButton}>\r\n {ModalBackButton()}\r\n {!hideCloseButton && ModalCloseButton(closeAction)}\r\n </ModalHeaderActionsWithImage>\r\n </StyledModalHeader>\r\n )}\r\n <ModalTitleSection>\r\n <FlexContainer>\r\n {!(topImage || topImageWithFallbacksProps) && ModalBackButton()}\r\n {title && ModalTitle(title, size)}\r\n </FlexContainer>\r\n {(tooltip || !(topImage || topImageWithFallbacksProps)) && (\r\n <ModalHeaderActions>\r\n {tooltip && ModalTootip(tooltip)}\r\n {!(topImage || topImageWithFallbacksProps || hideCloseButton) && ModalCloseButton(closeAction)}\r\n </ModalHeaderActions>\r\n )}\r\n </ModalTitleSection>\r\n\r\n <ModalBody $size={size} $overflow={contentOverflow} $hasContentBorders={hasContentBorders}>\r\n {children}\r\n </ModalBody>\r\n\r\n {note && <ModalNote note={note} state={state} size={size} icon={icon} />}\r\n\r\n <ModalFooter $size={size}>\r\n {leftFooterAction && LeftFooterAction(leftFooterAction)}\r\n {buttons?.map((b, i) => (\r\n <TextButton key={b.id || i} icon={b.icon} id={b.id} disabled={b.disabled} loading={b.loading} size={size} onClick={b.action} type={b.type} variant={b.variant}>\r\n {b.children ?? b.text}\r\n </TextButton>\r\n ))}\r\n </ModalFooter>\r\n </form>\r\n </Column>\r\n </ModalContainer>\r\n );\r\n};\r\n\r\nexport default ModalDialog;\r\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ModalDialog.cjs","names":["_react","_interopRequireDefault","require","_Button","_icons","_styles","_types","_ModalContainer","_ModalStyles","_ModalNote","_Tooltips","_","_styledComponents","_jsxRuntime","ModalDialog","_ref","size","isModalOpen","title","topImage","topImageWithFallbacksProps","topImageGrayscale","buttons","leftFooterAction","backButton","closeAction","submitAction","tooltip","children","note","shouldCloseOnOverlayClick","state","icon","zIndex","contentOverflow","hideCloseButton","width","hasContentBorders","className","id","theme","useTheme","getMinWidth","Size","Small","Large","Medium","getMaxWidth","getImageHeight","getMarginBottom","getPadding","getMaxHeight","ModalTitle","jsx","ComponentM","textStyle","ComponentTextStyle","Bold","ComponentL","ComponentXL","ModalTootip","ModalHoverModifier","TooltipWrapper","delay","XSmall","align","position","withArrow","label","IconButton","variant","shape","action","SystemIcons","Help","color","COLORS","generateToken","componentType","defaultVariant","ModalCloseButton","onClick","CloseButtonWrapper","$hasImage","$size","borderRadius","Close","ModalBackButton","BackButtonWrapper","ArrowLineLeft","getLeftActionIconElement","React","cloneElement","LeftFooterAction","text","actionType","disabled","button","TextButton","type","loading","style","order","marginRight","jsxs","HyperLink","href","e","preventDefault","default","showModal","closeModal","minWidth","maxWidth","height","padding","Column","onSubmit","display","flexDirection","maxHeight","StyledModalHeader","$height","$marginBottom","ImageContainer","ImageOverlay","src","alt","ImageWithFallbacks","loader","fallbacks","ModalHeaderActionsWithImage","$hasBackButton","ModalTitleSection","FlexContainer","ModalHeaderActions","ModalBody","$overflow","$hasContentBorders","ModalNote","ModalFooter","map","b","i","exports","propTypes","_propTypes","bool","isRequired","node","oneOfType","string","any","array","func","number","_default"],"sources":["../../src/Modals/ModalDialog.tsx"],"sourcesContent":["import React from 'react';\r\nimport { TextButton, IconButton } from '../Button';\r\nimport { SystemIcons } from '../icons';\r\nimport { COLORS, ComponentL, ComponentM, ComponentTextStyle, ComponentXL } from '../styles';\r\nimport { Size } from '../types';\r\nimport ModalContainer from './ModalContainer';\r\nimport {\r\n BackButtonWrapper,\r\n CloseButtonWrapper,\r\n Column,\r\n FlexContainer,\r\n ModalBody,\r\n ModalFooter,\r\n ModalHeaderActions,\r\n ModalHeaderActionsWithImage,\r\n ModalTitleSection,\r\n StyledModalHeader,\r\n ModalHoverModifier,\r\n ImageOverlay,\r\n ImageContainer,\r\n} from './ModalStyles';\r\n\r\nimport { ModalNote } from './ModalNote';\r\nimport { TooltipWrapper } from '../Tooltips';\r\nimport { ButtonAction, LeftFooterAction, LeftFooterButton, LeftFooterHyperlink } from './ModalTypes';\r\nimport { HyperLink, ImageWithFallbacks } from '..';\r\nimport { ImageWithFallbacksProps } from '../Image/ImageWithFallbacks';\r\nimport { useTheme } from 'styled-components';\r\n\r\nexport interface ModalDialogProps {\r\n /** Optional. Size of the modal. Defaults to 'medium' */\r\n size?: Size.Small | Size.Medium | Size.Large;\r\n /** Required. Current state of the modal. */\r\n isModalOpen: boolean;\r\n /** Optional. Content of the ModalDialog. */\r\n children?: React.ReactNode;\r\n /** Optional. Title of the ModalDialog. */\r\n title?: string | React.ReactNode;\r\n /** Optional. Content of the image to be shown in the header of the modal. */\r\n topImage?: any;\r\n /** Optional. Serves same purpose as 'topImage' except adds support for fallback options. Has higher priority than 'topImage'. */\r\n topImageWithFallbacksProps?: ImageWithFallbacksProps;\r\n /** Optional. If flag is set then overlay is added that converts image to grey color. */\r\n topImageGrayscale?: boolean;\r\n /** Optional. Collection of Buttons that will be shown in the footer on the right side of the ModalDialog. */\r\n buttons?: ButtonAction[];\r\n /** Optional. Left footer action that will be shown on the left side of the footer of ModalDialog. Can be a hyperlink, button or a note. */\r\n leftFooterAction?: LeftFooterAction;\r\n /** Optional. Tooltip that will be shown */\r\n tooltip?: string;\r\n /** */\r\n backButton?: () => void;\r\n className?: string;\r\n id?: string;\r\n closeAction: () => void;\r\n hideCloseButton?: boolean;\r\n submitAction: (event?: React.FormEvent<HTMLFormElement> | undefined) => void;\r\n note?: string | React.ReactNode;\r\n state?: string;\r\n icon?: React.ReactNode;\r\n zIndex?: number;\r\n contentOverflow?: string;\r\n width?: string;\r\n hasContentBorders?: boolean;\r\n shouldCloseOnOverlayClick?: boolean;\r\n}\r\n\r\nexport const ModalDialog: React.FunctionComponent<ModalDialogProps> = ({\r\n size,\r\n isModalOpen,\r\n title,\r\n topImage,\r\n topImageWithFallbacksProps,\r\n topImageGrayscale,\r\n buttons,\r\n leftFooterAction,\r\n backButton,\r\n closeAction,\r\n submitAction,\r\n tooltip,\r\n children,\r\n note,\r\n shouldCloseOnOverlayClick,\r\n state,\r\n icon,\r\n zIndex,\r\n contentOverflow,\r\n hideCloseButton,\r\n width,\r\n hasContentBorders,\r\n className,\r\n id,\r\n}) => {\r\n\r\n const theme = useTheme();\r\n const getMinWidth = () => {\r\n switch (size) {\r\n case Size.Small:\r\n return '320px';\r\n case Size.Large:\r\n return '640px';\r\n case Size.Medium:\r\n default:\r\n return '480px';\r\n }\r\n };\r\n\r\n const getMaxWidth = () => {\r\n switch (size) {\r\n case Size.Small:\r\n return '480px';\r\n case Size.Large:\r\n return '720px';\r\n case Size.Medium:\r\n default:\r\n return '640px';\r\n }\r\n };\r\n\r\n const getImageHeight = () => {\r\n switch (size) {\r\n case Size.Small:\r\n return 160;\r\n case Size.Medium:\r\n return 200;\r\n case Size.Large:\r\n return 240;\r\n default:\r\n return 200;\r\n }\r\n };\r\n\r\n const getMarginBottom = () => {\r\n switch (size) {\r\n case Size.Small:\r\n return '16px';\r\n case Size.Medium:\r\n return '24px';\r\n case Size.Large:\r\n return '32px';\r\n default:\r\n return '24px';\r\n }\r\n };\r\n\r\n const getPadding = () => {\r\n switch (size) {\r\n case Size.Small:\r\n return '16px 16px 8px';\r\n case Size.Medium:\r\n return '24px 24px 20px';\r\n case Size.Large:\r\n return '32px';\r\n default:\r\n return '24px 24px 16px';\r\n }\r\n };\r\n\r\n const getMaxHeight = () => {\r\n switch (size) {\r\n case Size.Small:\r\n return 'calc(100vh - 56px)';\r\n case Size.Medium:\r\n return 'calc(100vh - 76px)';\r\n case Size.Large:\r\n return 'calc(100vh - 96px)';\r\n default:\r\n return 'calc(100vh - 72px)';\r\n }\r\n };\r\n\r\n const ModalTitle = (title: string | React.ReactNode, size?: Size) => {\r\n if (typeof title === 'string') {\r\n switch (size) {\r\n case Size.Small:\r\n return <ComponentM textStyle={ComponentTextStyle.Bold}>{title}</ComponentM>;\r\n case Size.Medium:\r\n return <ComponentL textStyle={ComponentTextStyle.Bold}>{title}</ComponentL>;\r\n case Size.Large:\r\n return <ComponentXL textStyle={ComponentTextStyle.Bold}>{title}</ComponentXL>;\r\n default:\r\n return <ComponentL textStyle={ComponentTextStyle.Bold}>{title}</ComponentL>;\r\n }\r\n } else {\r\n return title;\r\n }\r\n };\r\n\r\n const ModalTootip = (tooltip: string) => {\r\n return (\r\n <ModalHoverModifier>\r\n <TooltipWrapper delay=\"0s\" size={Size.XSmall} align=\"center\" position=\"top\" withArrow={false} label={tooltip}>\r\n <IconButton variant=\"secondary\" shape=\"circular\" action={() => {}}>\r\n <SystemIcons.Help size=\"24px\" color={COLORS.generateToken({componentType:'icon', defaultVariant:'subtle'}, theme)} />\r\n </IconButton>\r\n </TooltipWrapper>\r\n </ModalHoverModifier>\r\n );\r\n };\r\n\r\n const ModalCloseButton = (onClick: any) => {\r\n return (\r\n <CloseButtonWrapper $hasImage={!!topImage || !!topImageWithFallbacksProps} $size={size}>\r\n <IconButton variant=\"secondary\" shape=\"circular\" action={() => onClick()} borderRadius={48}>\r\n <SystemIcons.Close size=\"24px\" color={COLORS.generateToken({componentType:'icon', defaultVariant:'subtle'}, theme)} />\r\n </IconButton>\r\n </CloseButtonWrapper>\r\n );\r\n };\r\n\r\n const ModalBackButton = () => {\r\n if (backButton) {\r\n return (\r\n <BackButtonWrapper $hasImage={!!topImage || !!topImageWithFallbacksProps} $size={size}>\r\n <IconButton variant=\"secondary\" shape=\"circular\" action={() => backButton()} borderRadius={48}>\r\n <SystemIcons.ArrowLineLeft size=\"24px\" color={COLORS.generateToken({componentType:'icon', defaultVariant:'subtle'}, theme)} />\r\n </IconButton>\r\n </BackButtonWrapper>\r\n );\r\n }\r\n };\r\n\r\n const getLeftActionIconElement = (icon: React.ReactNode) => {\r\n return React.cloneElement(icon as React.ReactElement<any>, { size: size === Size.Small ? '20px' : size === Size.Large ? '28px' : '24px' });\r\n };\r\n\r\n const LeftFooterAction = (leftFooterAction: LeftFooterAction) => {\r\n const { text, actionType, disabled, icon, action } = leftFooterAction;\r\n switch (actionType) {\r\n case 'button':\r\n const button = leftFooterAction as LeftFooterButton;\r\n return (\r\n <TextButton\r\n id={'left-action-button'}\r\n type={button?.type}\r\n disabled={disabled}\r\n loading={button?.loading}\r\n icon={icon}\r\n size={size}\r\n onClick={action}\r\n variant={button?.variant ?? 'secondary'}\r\n style={{ order: -1, marginRight: 'auto' }}>\r\n {button?.children ?? button?.text}\r\n </TextButton>\r\n );\r\n case 'hyperlink':\r\n return (\r\n <HyperLink\r\n id=\"left-action-hyperlink\"\r\n className=\"footer-action\"\r\n href={(leftFooterAction as LeftFooterHyperlink).href}\r\n disabled={disabled}\r\n variant=\"default\"\r\n onClick={(e) => {\r\n if (action) {\r\n e.preventDefault();\r\n action(e);\r\n }\r\n }}>\r\n {text}\r\n {icon && getLeftActionIconElement(icon)}\r\n </HyperLink>\r\n );\r\n case 'note':\r\n return (\r\n <div className=\"footer-action note\">\r\n {icon && getLeftActionIconElement(icon)}\r\n <span>{text}</span>\r\n </div>\r\n );\r\n }\r\n };\r\n\r\n return (\r\n <ModalContainer\r\n className={className}\r\n id={id}\r\n showModal={isModalOpen}\r\n closeModal={closeAction}\r\n minWidth={getMinWidth()}\r\n shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}\r\n maxWidth={getMaxWidth()}\r\n height=\"auto\"\r\n padding={getPadding()}\r\n zIndex={zIndex}\r\n width={width}>\r\n <Column>\r\n <form onSubmit={submitAction} style={{ display: 'flex', flexDirection: 'column', maxHeight: getMaxHeight() }}>\r\n {(topImage || topImageWithFallbacksProps) && (\r\n <StyledModalHeader $size={size} $height={getImageHeight()} $marginBottom={getMarginBottom()}>\r\n <ImageContainer $height={getImageHeight()}>\r\n {topImageGrayscale && <ImageOverlay $height={getImageHeight()} />}\r\n {topImage && <img src={topImage} alt=\"Modal top\" />}\r\n {!topImage && topImageWithFallbacksProps && (\r\n <ImageWithFallbacks\r\n loader={topImageWithFallbacksProps.loader}\r\n alt={topImageWithFallbacksProps.alt}\r\n fallbacks={topImageWithFallbacksProps.fallbacks}\r\n src={topImageWithFallbacksProps.src}\r\n />\r\n )}\r\n </ImageContainer>\r\n <ModalHeaderActionsWithImage $hasBackButton={!!backButton}>\r\n {ModalBackButton()}\r\n {!hideCloseButton && ModalCloseButton(closeAction)}\r\n </ModalHeaderActionsWithImage>\r\n </StyledModalHeader>\r\n )}\r\n <ModalTitleSection>\r\n <FlexContainer>\r\n {!(topImage || topImageWithFallbacksProps) && ModalBackButton()}\r\n {title && ModalTitle(title, size)}\r\n </FlexContainer>\r\n {(tooltip || !(topImage || topImageWithFallbacksProps)) && (\r\n <ModalHeaderActions>\r\n {tooltip && ModalTootip(tooltip)}\r\n {!(topImage || topImageWithFallbacksProps || hideCloseButton) && ModalCloseButton(closeAction)}\r\n </ModalHeaderActions>\r\n )}\r\n </ModalTitleSection>\r\n\r\n <ModalBody $size={size} $overflow={contentOverflow} $hasContentBorders={hasContentBorders}>\r\n {children}\r\n </ModalBody>\r\n\r\n {note && <ModalNote note={note} state={state} size={size} icon={icon} />}\r\n\r\n <ModalFooter $size={size}>\r\n {leftFooterAction && LeftFooterAction(leftFooterAction)}\r\n {buttons?.map((b, i) => (\r\n <TextButton key={b.id || i} icon={b.icon} id={b.id} disabled={b.disabled} loading={b.loading} size={size} onClick={b.action} type={b.type} variant={b.variant}>\r\n {b.children ?? b.text}\r\n </TextButton>\r\n ))}\r\n </ModalFooter>\r\n </form>\r\n </Column>\r\n </ModalContainer>\r\n );\r\n};\r\n\r\nexport default ModalDialog;\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -25,6 +25,8 @@ export interface ModalDialogProps {
|
|
|
25
25
|
tooltip?: string;
|
|
26
26
|
/** */
|
|
27
27
|
backButton?: () => void;
|
|
28
|
+
className?: string;
|
|
29
|
+
id?: string;
|
|
28
30
|
closeAction: () => void;
|
|
29
31
|
hideCloseButton?: boolean;
|
|
30
32
|
submitAction: (event?: React.FormEvent<HTMLFormElement> | undefined) => void;
|
|
@@ -34,7 +34,9 @@ export const ModalDialog = _ref => {
|
|
|
34
34
|
contentOverflow,
|
|
35
35
|
hideCloseButton,
|
|
36
36
|
width,
|
|
37
|
-
hasContentBorders
|
|
37
|
+
hasContentBorders,
|
|
38
|
+
className,
|
|
39
|
+
id
|
|
38
40
|
} = _ref;
|
|
39
41
|
const theme = useTheme();
|
|
40
42
|
const getMinWidth = () => {
|
|
@@ -255,6 +257,8 @@ export const ModalDialog = _ref => {
|
|
|
255
257
|
}
|
|
256
258
|
};
|
|
257
259
|
return /*#__PURE__*/_jsx(ModalContainer, {
|
|
260
|
+
className: className,
|
|
261
|
+
id: id,
|
|
258
262
|
showModal: isModalOpen,
|
|
259
263
|
closeModal: closeAction,
|
|
260
264
|
minWidth: getMinWidth(),
|
|
@@ -336,6 +340,8 @@ ModalDialog.propTypes = {
|
|
|
336
340
|
buttons: _pt.array,
|
|
337
341
|
tooltip: _pt.string,
|
|
338
342
|
backButton: _pt.func,
|
|
343
|
+
className: _pt.string,
|
|
344
|
+
id: _pt.string,
|
|
339
345
|
closeAction: _pt.func.isRequired,
|
|
340
346
|
hideCloseButton: _pt.bool,
|
|
341
347
|
submitAction: _pt.func.isRequired,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModalDialog.js","names":["React","TextButton","IconButton","SystemIcons","COLORS","ComponentL","ComponentM","ComponentTextStyle","ComponentXL","Size","ModalContainer","BackButtonWrapper","CloseButtonWrapper","Column","FlexContainer","ModalBody","ModalFooter","ModalHeaderActions","ModalHeaderActionsWithImage","ModalTitleSection","StyledModalHeader","ModalHoverModifier","ImageOverlay","ImageContainer","ModalNote","TooltipWrapper","HyperLink","ImageWithFallbacks","useTheme","jsx","_jsx","jsxs","_jsxs","ModalDialog","_ref","size","isModalOpen","title","topImage","topImageWithFallbacksProps","topImageGrayscale","buttons","leftFooterAction","backButton","closeAction","submitAction","tooltip","children","note","shouldCloseOnOverlayClick","state","icon","zIndex","contentOverflow","hideCloseButton","width","hasContentBorders","theme","getMinWidth","Small","Large","Medium","getMaxWidth","getImageHeight","getMarginBottom","getPadding","getMaxHeight","ModalTitle","textStyle","Bold","ModalTootip","delay","XSmall","align","position","withArrow","label","variant","shape","action","Help","color","generateToken","componentType","defaultVariant","ModalCloseButton","onClick","$hasImage","$size","borderRadius","Close","ModalBackButton","ArrowLineLeft","getLeftActionIconElement","cloneElement","LeftFooterAction","text","actionType","disabled","button","id","type","loading","style","order","marginRight","className","href","e","preventDefault","showModal","closeModal","minWidth","maxWidth","height","padding","onSubmit","display","flexDirection","maxHeight","$height","$marginBottom","src","alt","loader","fallbacks","$hasBackButton","$overflow","$hasContentBorders","map","b","i","propTypes","_pt","bool","isRequired","node","oneOfType","string","any","array","func","number"],"sources":["../../src/Modals/ModalDialog.tsx"],"sourcesContent":["import React from 'react';\r\nimport { TextButton, IconButton } from '../Button';\r\nimport { SystemIcons } from '../icons';\r\nimport { COLORS, ComponentL, ComponentM, ComponentTextStyle, ComponentXL } from '../styles';\r\nimport { Size } from '../types';\r\nimport ModalContainer from './ModalContainer';\r\nimport {\r\n BackButtonWrapper,\r\n CloseButtonWrapper,\r\n Column,\r\n FlexContainer,\r\n ModalBody,\r\n ModalFooter,\r\n ModalHeaderActions,\r\n ModalHeaderActionsWithImage,\r\n ModalTitleSection,\r\n StyledModalHeader,\r\n ModalHoverModifier,\r\n ImageOverlay,\r\n ImageContainer,\r\n} from './ModalStyles';\r\n\r\nimport { ModalNote } from './ModalNote';\r\nimport { TooltipWrapper } from '../Tooltips';\r\nimport { ButtonAction, LeftFooterAction, LeftFooterButton, LeftFooterHyperlink } from './ModalTypes';\r\nimport { HyperLink, ImageWithFallbacks } from '..';\r\nimport { ImageWithFallbacksProps } from '../Image/ImageWithFallbacks';\r\nimport { useTheme } from 'styled-components';\r\n\r\nexport interface ModalDialogProps {\r\n /** Optional. Size of the modal. Defaults to 'medium' */\r\n size?: Size.Small | Size.Medium | Size.Large;\r\n /** Required. Current state of the modal. */\r\n isModalOpen: boolean;\r\n /** Optional. Content of the ModalDialog. */\r\n children?: React.ReactNode;\r\n /** Optional. Title of the ModalDialog. */\r\n title?: string | React.ReactNode;\r\n /** Optional. Content of the image to be shown in the header of the modal. */\r\n topImage?: any;\r\n /** Optional. Serves same purpose as 'topImage' except adds support for fallback options. Has higher priority than 'topImage'. */\r\n topImageWithFallbacksProps?: ImageWithFallbacksProps;\r\n /** Optional. If flag is set then overlay is added that converts image to grey color. */\r\n topImageGrayscale?: boolean;\r\n /** Optional. Collection of Buttons that will be shown in the footer on the right side of the ModalDialog. */\r\n buttons?: ButtonAction[];\r\n /** Optional. Left footer action that will be shown on the left side of the footer of ModalDialog. Can be a hyperlink, button or a note. */\r\n leftFooterAction?: LeftFooterAction;\r\n /** Optional. Tooltip that will be shown */\r\n tooltip?: string;\r\n /** */\r\n backButton?: () => void;\r\n closeAction: () => void;\r\n hideCloseButton?: boolean;\r\n submitAction: (event?: React.FormEvent<HTMLFormElement> | undefined) => void;\r\n note?: string | React.ReactNode;\r\n state?: string;\r\n icon?: React.ReactNode;\r\n zIndex?: number;\r\n contentOverflow?: string;\r\n width?: string;\r\n hasContentBorders?: boolean;\r\n shouldCloseOnOverlayClick?: boolean;\r\n}\r\n\r\nexport const ModalDialog: React.FunctionComponent<ModalDialogProps> = ({\r\n size,\r\n isModalOpen,\r\n title,\r\n topImage,\r\n topImageWithFallbacksProps,\r\n topImageGrayscale,\r\n buttons,\r\n leftFooterAction,\r\n backButton,\r\n closeAction,\r\n submitAction,\r\n tooltip,\r\n children,\r\n note,\r\n shouldCloseOnOverlayClick,\r\n state,\r\n icon,\r\n zIndex,\r\n contentOverflow,\r\n hideCloseButton,\r\n width,\r\n hasContentBorders,\r\n}) => {\r\n\r\n const theme = useTheme();\r\n const getMinWidth = () => {\r\n switch (size) {\r\n case Size.Small:\r\n return '320px';\r\n case Size.Large:\r\n return '640px';\r\n case Size.Medium:\r\n default:\r\n return '480px';\r\n }\r\n };\r\n\r\n const getMaxWidth = () => {\r\n switch (size) {\r\n case Size.Small:\r\n return '480px';\r\n case Size.Large:\r\n return '720px';\r\n case Size.Medium:\r\n default:\r\n return '640px';\r\n }\r\n };\r\n\r\n const getImageHeight = () => {\r\n switch (size) {\r\n case Size.Small:\r\n return 160;\r\n case Size.Medium:\r\n return 200;\r\n case Size.Large:\r\n return 240;\r\n default:\r\n return 200;\r\n }\r\n };\r\n\r\n const getMarginBottom = () => {\r\n switch (size) {\r\n case Size.Small:\r\n return '16px';\r\n case Size.Medium:\r\n return '24px';\r\n case Size.Large:\r\n return '32px';\r\n default:\r\n return '24px';\r\n }\r\n };\r\n\r\n const getPadding = () => {\r\n switch (size) {\r\n case Size.Small:\r\n return '16px 16px 8px';\r\n case Size.Medium:\r\n return '24px 24px 20px';\r\n case Size.Large:\r\n return '32px';\r\n default:\r\n return '24px 24px 16px';\r\n }\r\n };\r\n\r\n const getMaxHeight = () => {\r\n switch (size) {\r\n case Size.Small:\r\n return 'calc(100vh - 56px)';\r\n case Size.Medium:\r\n return 'calc(100vh - 76px)';\r\n case Size.Large:\r\n return 'calc(100vh - 96px)';\r\n default:\r\n return 'calc(100vh - 72px)';\r\n }\r\n };\r\n\r\n const ModalTitle = (title: string | React.ReactNode, size?: Size) => {\r\n if (typeof title === 'string') {\r\n switch (size) {\r\n case Size.Small:\r\n return <ComponentM textStyle={ComponentTextStyle.Bold}>{title}</ComponentM>;\r\n case Size.Medium:\r\n return <ComponentL textStyle={ComponentTextStyle.Bold}>{title}</ComponentL>;\r\n case Size.Large:\r\n return <ComponentXL textStyle={ComponentTextStyle.Bold}>{title}</ComponentXL>;\r\n default:\r\n return <ComponentL textStyle={ComponentTextStyle.Bold}>{title}</ComponentL>;\r\n }\r\n } else {\r\n return title;\r\n }\r\n };\r\n\r\n const ModalTootip = (tooltip: string) => {\r\n return (\r\n <ModalHoverModifier>\r\n <TooltipWrapper delay=\"0s\" size={Size.XSmall} align=\"center\" position=\"top\" withArrow={false} label={tooltip}>\r\n <IconButton variant=\"secondary\" shape=\"circular\" action={() => {}}>\r\n <SystemIcons.Help size=\"24px\" color={COLORS.generateToken({componentType:'icon', defaultVariant:'subtle'}, theme)} />\r\n </IconButton>\r\n </TooltipWrapper>\r\n </ModalHoverModifier>\r\n );\r\n };\r\n\r\n const ModalCloseButton = (onClick: any) => {\r\n return (\r\n <CloseButtonWrapper $hasImage={!!topImage || !!topImageWithFallbacksProps} $size={size}>\r\n <IconButton variant=\"secondary\" shape=\"circular\" action={() => onClick()} borderRadius={48}>\r\n <SystemIcons.Close size=\"24px\" color={COLORS.generateToken({componentType:'icon', defaultVariant:'subtle'}, theme)} />\r\n </IconButton>\r\n </CloseButtonWrapper>\r\n );\r\n };\r\n\r\n const ModalBackButton = () => {\r\n if (backButton) {\r\n return (\r\n <BackButtonWrapper $hasImage={!!topImage || !!topImageWithFallbacksProps} $size={size}>\r\n <IconButton variant=\"secondary\" shape=\"circular\" action={() => backButton()} borderRadius={48}>\r\n <SystemIcons.ArrowLineLeft size=\"24px\" color={COLORS.generateToken({componentType:'icon', defaultVariant:'subtle'}, theme)} />\r\n </IconButton>\r\n </BackButtonWrapper>\r\n );\r\n }\r\n };\r\n\r\n const getLeftActionIconElement = (icon: React.ReactNode) => {\r\n return React.cloneElement(icon as React.ReactElement<any>, { size: size === Size.Small ? '20px' : size === Size.Large ? '28px' : '24px' });\r\n };\r\n\r\n const LeftFooterAction = (leftFooterAction: LeftFooterAction) => {\r\n const { text, actionType, disabled, icon, action } = leftFooterAction;\r\n switch (actionType) {\r\n case 'button':\r\n const button = leftFooterAction as LeftFooterButton;\r\n return (\r\n <TextButton\r\n id={'left-action-button'}\r\n type={button?.type}\r\n disabled={disabled}\r\n loading={button?.loading}\r\n icon={icon}\r\n size={size}\r\n onClick={action}\r\n variant={button?.variant ?? 'secondary'}\r\n style={{ order: -1, marginRight: 'auto' }}>\r\n {button?.children ?? button?.text}\r\n </TextButton>\r\n );\r\n case 'hyperlink':\r\n return (\r\n <HyperLink\r\n id=\"left-action-hyperlink\"\r\n className=\"footer-action\"\r\n href={(leftFooterAction as LeftFooterHyperlink).href}\r\n disabled={disabled}\r\n variant=\"default\"\r\n onClick={(e) => {\r\n if (action) {\r\n e.preventDefault();\r\n action(e);\r\n }\r\n }}>\r\n {text}\r\n {icon && getLeftActionIconElement(icon)}\r\n </HyperLink>\r\n );\r\n case 'note':\r\n return (\r\n <div className=\"footer-action note\">\r\n {icon && getLeftActionIconElement(icon)}\r\n <span>{text}</span>\r\n </div>\r\n );\r\n }\r\n };\r\n\r\n return (\r\n <ModalContainer\r\n showModal={isModalOpen}\r\n closeModal={closeAction}\r\n minWidth={getMinWidth()}\r\n shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}\r\n maxWidth={getMaxWidth()}\r\n height=\"auto\"\r\n padding={getPadding()}\r\n zIndex={zIndex}\r\n width={width}>\r\n <Column>\r\n <form onSubmit={submitAction} style={{ display: 'flex', flexDirection: 'column', maxHeight: getMaxHeight() }}>\r\n {(topImage || topImageWithFallbacksProps) && (\r\n <StyledModalHeader $size={size} $height={getImageHeight()} $marginBottom={getMarginBottom()}>\r\n <ImageContainer $height={getImageHeight()}>\r\n {topImageGrayscale && <ImageOverlay $height={getImageHeight()} />}\r\n {topImage && <img src={topImage} alt=\"Modal top\" />}\r\n {!topImage && topImageWithFallbacksProps && (\r\n <ImageWithFallbacks\r\n loader={topImageWithFallbacksProps.loader}\r\n alt={topImageWithFallbacksProps.alt}\r\n fallbacks={topImageWithFallbacksProps.fallbacks}\r\n src={topImageWithFallbacksProps.src}\r\n />\r\n )}\r\n </ImageContainer>\r\n <ModalHeaderActionsWithImage $hasBackButton={!!backButton}>\r\n {ModalBackButton()}\r\n {!hideCloseButton && ModalCloseButton(closeAction)}\r\n </ModalHeaderActionsWithImage>\r\n </StyledModalHeader>\r\n )}\r\n <ModalTitleSection>\r\n <FlexContainer>\r\n {!(topImage || topImageWithFallbacksProps) && ModalBackButton()}\r\n {title && ModalTitle(title, size)}\r\n </FlexContainer>\r\n {(tooltip || !(topImage || topImageWithFallbacksProps)) && (\r\n <ModalHeaderActions>\r\n {tooltip && ModalTootip(tooltip)}\r\n {!(topImage || topImageWithFallbacksProps || hideCloseButton) && ModalCloseButton(closeAction)}\r\n </ModalHeaderActions>\r\n )}\r\n </ModalTitleSection>\r\n\r\n <ModalBody $size={size} $overflow={contentOverflow} $hasContentBorders={hasContentBorders}>\r\n {children}\r\n </ModalBody>\r\n\r\n {note && <ModalNote note={note} state={state} size={size} icon={icon} />}\r\n\r\n <ModalFooter $size={size}>\r\n {leftFooterAction && LeftFooterAction(leftFooterAction)}\r\n {buttons?.map((b, i) => (\r\n <TextButton key={b.id || i} icon={b.icon} id={b.id} disabled={b.disabled} loading={b.loading} size={size} onClick={b.action} type={b.type} variant={b.variant}>\r\n {b.children ?? b.text}\r\n </TextButton>\r\n ))}\r\n </ModalFooter>\r\n </form>\r\n </Column>\r\n </ModalContainer>\r\n );\r\n};\r\n\r\nexport default ModalDialog;\r\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ModalDialog.js","names":["React","TextButton","IconButton","SystemIcons","COLORS","ComponentL","ComponentM","ComponentTextStyle","ComponentXL","Size","ModalContainer","BackButtonWrapper","CloseButtonWrapper","Column","FlexContainer","ModalBody","ModalFooter","ModalHeaderActions","ModalHeaderActionsWithImage","ModalTitleSection","StyledModalHeader","ModalHoverModifier","ImageOverlay","ImageContainer","ModalNote","TooltipWrapper","HyperLink","ImageWithFallbacks","useTheme","jsx","_jsx","jsxs","_jsxs","ModalDialog","_ref","size","isModalOpen","title","topImage","topImageWithFallbacksProps","topImageGrayscale","buttons","leftFooterAction","backButton","closeAction","submitAction","tooltip","children","note","shouldCloseOnOverlayClick","state","icon","zIndex","contentOverflow","hideCloseButton","width","hasContentBorders","className","id","theme","getMinWidth","Small","Large","Medium","getMaxWidth","getImageHeight","getMarginBottom","getPadding","getMaxHeight","ModalTitle","textStyle","Bold","ModalTootip","delay","XSmall","align","position","withArrow","label","variant","shape","action","Help","color","generateToken","componentType","defaultVariant","ModalCloseButton","onClick","$hasImage","$size","borderRadius","Close","ModalBackButton","ArrowLineLeft","getLeftActionIconElement","cloneElement","LeftFooterAction","text","actionType","disabled","button","type","loading","style","order","marginRight","href","e","preventDefault","showModal","closeModal","minWidth","maxWidth","height","padding","onSubmit","display","flexDirection","maxHeight","$height","$marginBottom","src","alt","loader","fallbacks","$hasBackButton","$overflow","$hasContentBorders","map","b","i","propTypes","_pt","bool","isRequired","node","oneOfType","string","any","array","func","number"],"sources":["../../src/Modals/ModalDialog.tsx"],"sourcesContent":["import React from 'react';\r\nimport { TextButton, IconButton } from '../Button';\r\nimport { SystemIcons } from '../icons';\r\nimport { COLORS, ComponentL, ComponentM, ComponentTextStyle, ComponentXL } from '../styles';\r\nimport { Size } from '../types';\r\nimport ModalContainer from './ModalContainer';\r\nimport {\r\n BackButtonWrapper,\r\n CloseButtonWrapper,\r\n Column,\r\n FlexContainer,\r\n ModalBody,\r\n ModalFooter,\r\n ModalHeaderActions,\r\n ModalHeaderActionsWithImage,\r\n ModalTitleSection,\r\n StyledModalHeader,\r\n ModalHoverModifier,\r\n ImageOverlay,\r\n ImageContainer,\r\n} from './ModalStyles';\r\n\r\nimport { ModalNote } from './ModalNote';\r\nimport { TooltipWrapper } from '../Tooltips';\r\nimport { ButtonAction, LeftFooterAction, LeftFooterButton, LeftFooterHyperlink } from './ModalTypes';\r\nimport { HyperLink, ImageWithFallbacks } from '..';\r\nimport { ImageWithFallbacksProps } from '../Image/ImageWithFallbacks';\r\nimport { useTheme } from 'styled-components';\r\n\r\nexport interface ModalDialogProps {\r\n /** Optional. Size of the modal. Defaults to 'medium' */\r\n size?: Size.Small | Size.Medium | Size.Large;\r\n /** Required. Current state of the modal. */\r\n isModalOpen: boolean;\r\n /** Optional. Content of the ModalDialog. */\r\n children?: React.ReactNode;\r\n /** Optional. Title of the ModalDialog. */\r\n title?: string | React.ReactNode;\r\n /** Optional. Content of the image to be shown in the header of the modal. */\r\n topImage?: any;\r\n /** Optional. Serves same purpose as 'topImage' except adds support for fallback options. Has higher priority than 'topImage'. */\r\n topImageWithFallbacksProps?: ImageWithFallbacksProps;\r\n /** Optional. If flag is set then overlay is added that converts image to grey color. */\r\n topImageGrayscale?: boolean;\r\n /** Optional. Collection of Buttons that will be shown in the footer on the right side of the ModalDialog. */\r\n buttons?: ButtonAction[];\r\n /** Optional. Left footer action that will be shown on the left side of the footer of ModalDialog. Can be a hyperlink, button or a note. */\r\n leftFooterAction?: LeftFooterAction;\r\n /** Optional. Tooltip that will be shown */\r\n tooltip?: string;\r\n /** */\r\n backButton?: () => void;\r\n className?: string;\r\n id?: string;\r\n closeAction: () => void;\r\n hideCloseButton?: boolean;\r\n submitAction: (event?: React.FormEvent<HTMLFormElement> | undefined) => void;\r\n note?: string | React.ReactNode;\r\n state?: string;\r\n icon?: React.ReactNode;\r\n zIndex?: number;\r\n contentOverflow?: string;\r\n width?: string;\r\n hasContentBorders?: boolean;\r\n shouldCloseOnOverlayClick?: boolean;\r\n}\r\n\r\nexport const ModalDialog: React.FunctionComponent<ModalDialogProps> = ({\r\n size,\r\n isModalOpen,\r\n title,\r\n topImage,\r\n topImageWithFallbacksProps,\r\n topImageGrayscale,\r\n buttons,\r\n leftFooterAction,\r\n backButton,\r\n closeAction,\r\n submitAction,\r\n tooltip,\r\n children,\r\n note,\r\n shouldCloseOnOverlayClick,\r\n state,\r\n icon,\r\n zIndex,\r\n contentOverflow,\r\n hideCloseButton,\r\n width,\r\n hasContentBorders,\r\n className,\r\n id,\r\n}) => {\r\n\r\n const theme = useTheme();\r\n const getMinWidth = () => {\r\n switch (size) {\r\n case Size.Small:\r\n return '320px';\r\n case Size.Large:\r\n return '640px';\r\n case Size.Medium:\r\n default:\r\n return '480px';\r\n }\r\n };\r\n\r\n const getMaxWidth = () => {\r\n switch (size) {\r\n case Size.Small:\r\n return '480px';\r\n case Size.Large:\r\n return '720px';\r\n case Size.Medium:\r\n default:\r\n return '640px';\r\n }\r\n };\r\n\r\n const getImageHeight = () => {\r\n switch (size) {\r\n case Size.Small:\r\n return 160;\r\n case Size.Medium:\r\n return 200;\r\n case Size.Large:\r\n return 240;\r\n default:\r\n return 200;\r\n }\r\n };\r\n\r\n const getMarginBottom = () => {\r\n switch (size) {\r\n case Size.Small:\r\n return '16px';\r\n case Size.Medium:\r\n return '24px';\r\n case Size.Large:\r\n return '32px';\r\n default:\r\n return '24px';\r\n }\r\n };\r\n\r\n const getPadding = () => {\r\n switch (size) {\r\n case Size.Small:\r\n return '16px 16px 8px';\r\n case Size.Medium:\r\n return '24px 24px 20px';\r\n case Size.Large:\r\n return '32px';\r\n default:\r\n return '24px 24px 16px';\r\n }\r\n };\r\n\r\n const getMaxHeight = () => {\r\n switch (size) {\r\n case Size.Small:\r\n return 'calc(100vh - 56px)';\r\n case Size.Medium:\r\n return 'calc(100vh - 76px)';\r\n case Size.Large:\r\n return 'calc(100vh - 96px)';\r\n default:\r\n return 'calc(100vh - 72px)';\r\n }\r\n };\r\n\r\n const ModalTitle = (title: string | React.ReactNode, size?: Size) => {\r\n if (typeof title === 'string') {\r\n switch (size) {\r\n case Size.Small:\r\n return <ComponentM textStyle={ComponentTextStyle.Bold}>{title}</ComponentM>;\r\n case Size.Medium:\r\n return <ComponentL textStyle={ComponentTextStyle.Bold}>{title}</ComponentL>;\r\n case Size.Large:\r\n return <ComponentXL textStyle={ComponentTextStyle.Bold}>{title}</ComponentXL>;\r\n default:\r\n return <ComponentL textStyle={ComponentTextStyle.Bold}>{title}</ComponentL>;\r\n }\r\n } else {\r\n return title;\r\n }\r\n };\r\n\r\n const ModalTootip = (tooltip: string) => {\r\n return (\r\n <ModalHoverModifier>\r\n <TooltipWrapper delay=\"0s\" size={Size.XSmall} align=\"center\" position=\"top\" withArrow={false} label={tooltip}>\r\n <IconButton variant=\"secondary\" shape=\"circular\" action={() => {}}>\r\n <SystemIcons.Help size=\"24px\" color={COLORS.generateToken({componentType:'icon', defaultVariant:'subtle'}, theme)} />\r\n </IconButton>\r\n </TooltipWrapper>\r\n </ModalHoverModifier>\r\n );\r\n };\r\n\r\n const ModalCloseButton = (onClick: any) => {\r\n return (\r\n <CloseButtonWrapper $hasImage={!!topImage || !!topImageWithFallbacksProps} $size={size}>\r\n <IconButton variant=\"secondary\" shape=\"circular\" action={() => onClick()} borderRadius={48}>\r\n <SystemIcons.Close size=\"24px\" color={COLORS.generateToken({componentType:'icon', defaultVariant:'subtle'}, theme)} />\r\n </IconButton>\r\n </CloseButtonWrapper>\r\n );\r\n };\r\n\r\n const ModalBackButton = () => {\r\n if (backButton) {\r\n return (\r\n <BackButtonWrapper $hasImage={!!topImage || !!topImageWithFallbacksProps} $size={size}>\r\n <IconButton variant=\"secondary\" shape=\"circular\" action={() => backButton()} borderRadius={48}>\r\n <SystemIcons.ArrowLineLeft size=\"24px\" color={COLORS.generateToken({componentType:'icon', defaultVariant:'subtle'}, theme)} />\r\n </IconButton>\r\n </BackButtonWrapper>\r\n );\r\n }\r\n };\r\n\r\n const getLeftActionIconElement = (icon: React.ReactNode) => {\r\n return React.cloneElement(icon as React.ReactElement<any>, { size: size === Size.Small ? '20px' : size === Size.Large ? '28px' : '24px' });\r\n };\r\n\r\n const LeftFooterAction = (leftFooterAction: LeftFooterAction) => {\r\n const { text, actionType, disabled, icon, action } = leftFooterAction;\r\n switch (actionType) {\r\n case 'button':\r\n const button = leftFooterAction as LeftFooterButton;\r\n return (\r\n <TextButton\r\n id={'left-action-button'}\r\n type={button?.type}\r\n disabled={disabled}\r\n loading={button?.loading}\r\n icon={icon}\r\n size={size}\r\n onClick={action}\r\n variant={button?.variant ?? 'secondary'}\r\n style={{ order: -1, marginRight: 'auto' }}>\r\n {button?.children ?? button?.text}\r\n </TextButton>\r\n );\r\n case 'hyperlink':\r\n return (\r\n <HyperLink\r\n id=\"left-action-hyperlink\"\r\n className=\"footer-action\"\r\n href={(leftFooterAction as LeftFooterHyperlink).href}\r\n disabled={disabled}\r\n variant=\"default\"\r\n onClick={(e) => {\r\n if (action) {\r\n e.preventDefault();\r\n action(e);\r\n }\r\n }}>\r\n {text}\r\n {icon && getLeftActionIconElement(icon)}\r\n </HyperLink>\r\n );\r\n case 'note':\r\n return (\r\n <div className=\"footer-action note\">\r\n {icon && getLeftActionIconElement(icon)}\r\n <span>{text}</span>\r\n </div>\r\n );\r\n }\r\n };\r\n\r\n return (\r\n <ModalContainer\r\n className={className}\r\n id={id}\r\n showModal={isModalOpen}\r\n closeModal={closeAction}\r\n minWidth={getMinWidth()}\r\n shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}\r\n maxWidth={getMaxWidth()}\r\n height=\"auto\"\r\n padding={getPadding()}\r\n zIndex={zIndex}\r\n width={width}>\r\n <Column>\r\n <form onSubmit={submitAction} style={{ display: 'flex', flexDirection: 'column', maxHeight: getMaxHeight() }}>\r\n {(topImage || topImageWithFallbacksProps) && (\r\n <StyledModalHeader $size={size} $height={getImageHeight()} $marginBottom={getMarginBottom()}>\r\n <ImageContainer $height={getImageHeight()}>\r\n {topImageGrayscale && <ImageOverlay $height={getImageHeight()} />}\r\n {topImage && <img src={topImage} alt=\"Modal top\" />}\r\n {!topImage && topImageWithFallbacksProps && (\r\n <ImageWithFallbacks\r\n loader={topImageWithFallbacksProps.loader}\r\n alt={topImageWithFallbacksProps.alt}\r\n fallbacks={topImageWithFallbacksProps.fallbacks}\r\n src={topImageWithFallbacksProps.src}\r\n />\r\n )}\r\n </ImageContainer>\r\n <ModalHeaderActionsWithImage $hasBackButton={!!backButton}>\r\n {ModalBackButton()}\r\n {!hideCloseButton && ModalCloseButton(closeAction)}\r\n </ModalHeaderActionsWithImage>\r\n </StyledModalHeader>\r\n )}\r\n <ModalTitleSection>\r\n <FlexContainer>\r\n {!(topImage || topImageWithFallbacksProps) && ModalBackButton()}\r\n {title && ModalTitle(title, size)}\r\n </FlexContainer>\r\n {(tooltip || !(topImage || topImageWithFallbacksProps)) && (\r\n <ModalHeaderActions>\r\n {tooltip && ModalTootip(tooltip)}\r\n {!(topImage || topImageWithFallbacksProps || hideCloseButton) && ModalCloseButton(closeAction)}\r\n </ModalHeaderActions>\r\n )}\r\n </ModalTitleSection>\r\n\r\n <ModalBody $size={size} $overflow={contentOverflow} $hasContentBorders={hasContentBorders}>\r\n {children}\r\n </ModalBody>\r\n\r\n {note && <ModalNote note={note} state={state} size={size} icon={icon} />}\r\n\r\n <ModalFooter $size={size}>\r\n {leftFooterAction && LeftFooterAction(leftFooterAction)}\r\n {buttons?.map((b, i) => (\r\n <TextButton key={b.id || i} icon={b.icon} id={b.id} disabled={b.disabled} loading={b.loading} size={size} onClick={b.action} type={b.type} variant={b.variant}>\r\n {b.children ?? b.text}\r\n </TextButton>\r\n ))}\r\n </ModalFooter>\r\n </form>\r\n </Column>\r\n </ModalContainer>\r\n );\r\n};\r\n\r\nexport default ModalDialog;\r\n"],"mappings":"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","ignoreList":[]}
|
package/dist/Table/Table.cjs
CHANGED
|
@@ -290,21 +290,15 @@ const Table = props => {
|
|
|
290
290
|
const currentList = currentPageRows.map(row => keyExpr ? row[keyExpr] : row);
|
|
291
291
|
switch (selectAllState) {
|
|
292
292
|
case 'all':
|
|
293
|
-
|
|
294
|
-
setSelected(all);
|
|
295
|
-
props.onSelectionChange && props.onSelectionChange(all);
|
|
293
|
+
setSelected([...selected].filter(item => !currentList.includes(item)));
|
|
296
294
|
setSelectAllState('none');
|
|
297
295
|
break;
|
|
298
296
|
case 'none':
|
|
299
|
-
|
|
300
|
-
setSelected(none);
|
|
301
|
-
props.onSelectionChange && props.onSelectionChange(none);
|
|
297
|
+
setSelected([...selected, ...currentList]);
|
|
302
298
|
setSelectAllState('all');
|
|
303
299
|
break;
|
|
304
300
|
case 'some':
|
|
305
|
-
|
|
306
|
-
setSelected(some);
|
|
307
|
-
props.onSelectionChange && props.onSelectionChange(some);
|
|
301
|
+
setSelected([...selected, ...currentList.filter(item => !selected.includes(item))]);
|
|
308
302
|
setSelectAllState('all');
|
|
309
303
|
break;
|
|
310
304
|
}
|
package/dist/Table/Table.cjs.map
CHANGED
|
@@ -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","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":[]}
|
|
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":[]}
|
package/dist/Table/Table.js
CHANGED
|
@@ -289,21 +289,15 @@ const Table = props => {
|
|
|
289
289
|
const currentList = currentPageRows.map(row => keyExpr ? row[keyExpr] : row);
|
|
290
290
|
switch (selectAllState) {
|
|
291
291
|
case 'all':
|
|
292
|
-
|
|
293
|
-
setSelected(all);
|
|
294
|
-
props.onSelectionChange && props.onSelectionChange(all);
|
|
292
|
+
setSelected([...selected].filter(item => !currentList.includes(item)));
|
|
295
293
|
setSelectAllState('none');
|
|
296
294
|
break;
|
|
297
295
|
case 'none':
|
|
298
|
-
|
|
299
|
-
setSelected(none);
|
|
300
|
-
props.onSelectionChange && props.onSelectionChange(none);
|
|
296
|
+
setSelected([...selected, ...currentList]);
|
|
301
297
|
setSelectAllState('all');
|
|
302
298
|
break;
|
|
303
299
|
case 'some':
|
|
304
|
-
|
|
305
|
-
setSelected(some);
|
|
306
|
-
props.onSelectionChange && props.onSelectionChange(some);
|
|
300
|
+
setSelected([...selected, ...currentList.filter(item => !selected.includes(item))]);
|
|
307
301
|
setSelectAllState('all');
|
|
308
302
|
break;
|
|
309
303
|
}
|
package/dist/Table/Table.js.map
CHANGED
|
@@ -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","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":[]}
|
|
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":[]}
|