@laerdal/life-react-components 1.1.2-dev.11 → 1.1.2-dev.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/dist/esm/Breadcrumb/Breadcrumb.js +88 -48
  2. package/dist/esm/Breadcrumb/Breadcrumb.js.map +1 -1
  3. package/dist/esm/Button/Button.js +1 -40
  4. package/dist/esm/Button/Button.js.map +1 -1
  5. package/dist/esm/Button/Iconbutton.js +2 -6
  6. package/dist/esm/Button/Iconbutton.js.map +1 -1
  7. package/dist/esm/Button/index.js +0 -1
  8. package/dist/esm/Button/index.js.map +1 -1
  9. package/dist/esm/Dropdown/CommonStyling.js +0 -5
  10. package/dist/esm/Dropdown/CommonStyling.js.map +1 -1
  11. package/dist/esm/Dropdown/DropdownButton.js +8 -18
  12. package/dist/esm/Dropdown/DropdownButton.js.map +1 -1
  13. package/dist/esm/Dropdown/DropdownContent.js +8 -23
  14. package/dist/esm/Dropdown/DropdownContent.js.map +1 -1
  15. package/dist/esm/List/ListRow.js +1 -1
  16. package/dist/esm/List/ListRow.js.map +1 -1
  17. package/dist/esm/Table/Table.js +1 -1
  18. package/dist/esm/Table/Table.js.map +1 -1
  19. package/dist/esm/types.js +1 -0
  20. package/dist/esm/types.js.map +1 -1
  21. package/dist/js/Breadcrumb/Breadcrumb.d.ts +5 -2
  22. package/dist/js/Breadcrumb/Breadcrumb.js +78 -35
  23. package/dist/js/Breadcrumb/Breadcrumb.js.map +1 -1
  24. package/dist/js/Button/Button.d.ts +1 -1
  25. package/dist/js/Button/Button.js +2 -22
  26. package/dist/js/Button/Button.js.map +1 -1
  27. package/dist/js/Button/Iconbutton.js +2 -2
  28. package/dist/js/Button/Iconbutton.js.map +1 -1
  29. package/dist/js/Button/index.d.ts +0 -1
  30. package/dist/js/Button/index.js +0 -8
  31. package/dist/js/Button/index.js.map +1 -1
  32. package/dist/js/Dropdown/CommonStyling.js +2 -2
  33. package/dist/js/Dropdown/CommonStyling.js.map +1 -1
  34. package/dist/js/Dropdown/DropdownButton.js +9 -17
  35. package/dist/js/Dropdown/DropdownButton.js.map +1 -1
  36. package/dist/js/Dropdown/DropdownContent.js +12 -31
  37. package/dist/js/Dropdown/DropdownContent.js.map +1 -1
  38. package/dist/js/List/ListRow.js +1 -1
  39. package/dist/js/List/ListRow.js.map +1 -1
  40. package/dist/js/Table/Table.js +1 -1
  41. package/dist/js/Table/Table.js.map +1 -1
  42. package/dist/js/types.d.ts +1 -0
  43. package/dist/js/types.js +1 -0
  44. package/dist/js/types.js.map +1 -1
  45. package/dist/umd/Breadcrumb/Breadcrumb.js +90 -50
  46. package/dist/umd/Breadcrumb/Breadcrumb.js.map +1 -1
  47. package/dist/umd/Button/Button.js +1 -40
  48. package/dist/umd/Button/Button.js.map +1 -1
  49. package/dist/umd/Button/Iconbutton.js +2 -6
  50. package/dist/umd/Button/Iconbutton.js.map +1 -1
  51. package/dist/umd/Button/index.js +4 -10
  52. package/dist/umd/Button/index.js.map +1 -1
  53. package/dist/umd/Dropdown/CommonStyling.js +0 -5
  54. package/dist/umd/Dropdown/CommonStyling.js.map +1 -1
  55. package/dist/umd/Dropdown/DropdownButton.js +8 -18
  56. package/dist/umd/Dropdown/DropdownButton.js.map +1 -1
  57. package/dist/umd/Dropdown/DropdownContent.js +8 -23
  58. package/dist/umd/Dropdown/DropdownContent.js.map +1 -1
  59. package/dist/umd/List/ListRow.js +1 -1
  60. package/dist/umd/List/ListRow.js.map +1 -1
  61. package/dist/umd/Table/Table.js +1 -1
  62. package/dist/umd/Table/Table.js.map +1 -1
  63. package/dist/umd/types.js +1 -0
  64. package/dist/umd/types.js.map +1 -1
  65. package/package.json +1 -1
  66. package/dist/esm/Button/Anchor.js +0 -76
  67. package/dist/esm/Button/Anchor.js.map +0 -1
  68. package/dist/js/Button/Anchor.d.ts +0 -7
  69. package/dist/js/Button/Anchor.js +0 -66
  70. package/dist/js/Button/Anchor.js.map +0 -1
  71. package/dist/umd/Button/Anchor.js +0 -201
  72. package/dist/umd/Button/Anchor.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/Dropdown/DropdownButton.tsx"],"names":["Wrapper","styled","div","DropdownButton","itemsType","actionLabel","multiSelect","scrollable","pinTopItem","maxHeight","React","buttonRef","handleValueSelect","values","onClick","handleKeyDown","e","setFocused","document","renderIconButton","event","setDropdownOpen","disabled","action","onValueUpdate","items"],"mappings":"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","sourcesContent":["/**\n * Import React libraries.\n */\nimport * as React from 'react';\n\n/**\n * Import custom components.\n */\nimport { IconButton } from '../Button';\nimport DropdownContent from './DropdownContent';\nimport styled from 'styled-components';\n\n/**\n * Import custom types.\n */\nimport { DropdownButtonProps } from './DropdownButtonTypes';\n\nconst Wrapper = styled.div`\n position: relative;\n display: inline-block;\n`;\n\nconst DropdownButton = ({ \n items, \n icon, \n disabled,\n onClick,\n itemsType = 'normal',\n action,\n actionLabel = '',\n width,\n size,\n alignLeft,\n multiSelect = false,\n scrollable = false,\n pinTopItem = false,\n maxHeight }: DropdownButtonProps) => {\n // Globally used variables within the view.\n const [dropdownOpen, setDropdownOpen] = React.useState<boolean>(false);\n const [selectedValues, setSelectedValues] = React.useState<string[]>([]);\n const [focused, setFocused] = React.useState<number | null>(null);\n const buttonRef = React.useRef<HTMLButtonElement>(null);\n\n const handleValueSelect = (values: string[]) => {\n // Do all required actions\n onClick(values);\n };\n\n \n const handleKeyDown = (e: any) => {\n if (buttonRef?.current && buttonRef.current.contains(e.target)) {\n if (e.keyCode === 13 || e.keyCode === 40 || e.keyCode === 32) {\n if(!dropdownOpen)\n setFocused(0);\n \n if(e.keyCode != 40)\n {\n e.preventDefault();\n buttonRef?.current.click();//setDropdownOpen(!dropdownOpen);\n }\n }\n }\n };\n\n React.useEffect(() => {\n document.addEventListener('keydown', handleKeyDown);\n return () => {\n document.removeEventListener('keydown', handleKeyDown); \n };\n });\n\n /**\n * Renders Icon Button dropdown menu.\n * @returns HTML View for the Icon button dropdown menu.\n */\n const renderIconButton = () => {\n return (\n <IconButton ref={buttonRef} variant=\"secondary\" shape=\"circular\" action={(event: any) => \n {\n if(!event) { //if no event details passed, then this means that user pressed 'enter'\n if(!dropdownOpen)\n setFocused(0);\n }\n setDropdownOpen(!dropdownOpen);\n }} disabled={disabled}>\n {icon}\n </IconButton>\n );\n };\n\n return (\n <Wrapper>\n {renderIconButton()}\n <DropdownContent\n customizationProps={{\n itemsType: itemsType,\n action: action ?? (() => {}),\n actionLabel: actionLabel,\n onValueUpdate: handleValueSelect,\n multiSelect: multiSelect,\n scrollable: scrollable,\n pinTopItem: pinTopItem,\n maxHeight: maxHeight,\n items: items\n }}\n focused={focused}\n setFocused={setFocused}\n size={size}\n width={width}\n alignLeft={alignLeft}\n isOpen={dropdownOpen}\n setIsOpen={setDropdownOpen}\n hideOnClickOutside={true}\n filter=''\n selectedValues={itemsType == 'normal' ? [] : selectedValues}\n setSelectedValues={setSelectedValues}\n messageOnNoResults='No results'\n isButton={true}\n id='dropdown-content'\n />\n </Wrapper>\n );\n};\n\nexport default DropdownButton;\n"],"file":"DropdownButton.js"}
1
+ {"version":3,"sources":["../../../src/Dropdown/DropdownButton.tsx"],"names":["Wrapper","styled","div","DropdownButton","itemsType","actionLabel","multiSelect","scrollable","pinTopItem","maxHeight","React","buttonRef","handleValueSelect","values","onClick","handleKeyPress","e","setDropdownOpen","document","renderIconButton","disabled","action","onValueUpdate","items"],"mappings":";;;;;;;;;;;;;;;;;;;MAGA,K;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAHA;AACA;AACA;;AAGA;AACA;AACA;;AAKA;AACA;AACA;AAGA,QAAMA,OAAO,GAAGC,2BAAOC,GAAI;AAC3B;AACA;AAFA,CAAA;;AAKA,QAAMC,cAAc,GAAG,CAAC;AAAA,IAAA,KAAA;AAAA,IAAA,IAAA;AAAA,IAAA,QAAA;AAAA,IAAA,OAAA;AAKtBC,IAAAA,SAAS,GALa,QAAA;AAAA,IAAA,MAAA;AAOtBC,IAAAA,WAAW,GAPW,EAAA;AAAA,IAAA,KAAA;AAAA,IAAA,IAAA;AAAA,IAAA,SAAA;AAWtBC,IAAAA,WAAW,GAXW,KAAA;AAYtBC,IAAAA,UAAU,GAZY,KAAA;AAatBC,IAAAA,UAAU,GAbY,KAAA;AActBC,IAAAA;AAdsB,GAAD,KAcgB;AACrC;AACA,UAAM,CAAA,YAAA,EAAA,eAAA,IAAkCC,KAAK,CAALA,QAAAA,CAAxC,KAAwCA,CAAxC;AACA,UAAM,CAAA,cAAA,EAAA,iBAAA,IAAsCA,KAAK,CAALA,QAAAA,CAA5C,EAA4CA,CAA5C;AACA,UAAM,CAAA,OAAA,EAAA,UAAA,IAAwBA,KAAK,CAALA,QAAAA,CAA9B,IAA8BA,CAA9B;AACA,UAAMC,SAAS,GAAGD,KAAK,CAALA,MAAAA,CAAlB,IAAkBA,CAAlB;;AAEA,UAAME,iBAAiB,GAAIC,MAAD,IAAsB;AAC9C;AACAC,MAAAA,OAAO,CAAPA,MAAO,CAAPA;AAFF,KAAA;;AAMA,UAAMC,cAAc,GAAIC,CAAD,IAAY;AACjC,UAAIL,SAAS,EAATA,OAAAA,IAAsBA,SAAS,CAATA,OAAAA,CAAAA,QAAAA,CAA2BK,CAAC,CAAtD,MAA0BL,CAA1B,EAAgE;AAC9D,YAAIK,CAAC,CAADA,OAAAA,KAAJ,EAAA,EAAsB;AACpBC,UAAAA,eAAe,CAAC,CAAhBA,YAAe,CAAfA;AADF,SAAA,MAGO,IAAID,CAAC,CAADA,OAAAA,KAAJ,EAAA,EAAsB;AAC3BC,UAAAA,eAAe,CAAC,CAAhBA,YAAe,CAAfA;AACD;AACF;AARH,KAAA;;AAWAP,IAAAA,KAAK,CAALA,SAAAA,CAAgB,MAAM;AACpBQ,MAAAA,QAAQ,CAARA,gBAAAA,CAAAA,UAAAA,EAAAA,cAAAA;AACA,aAAO,MAAM;AACXA,QAAAA,QAAQ,CAARA,mBAAAA,CAAAA,UAAAA,EAAAA,cAAAA;AADF,OAAA;AAFFR,KAAAA;AAOA;AACF;AACA;AACA;;AACE,UAAMS,gBAAgB,GAAG,MAAM;AAC7B,aAAA,aACE,KAAA,CAAA,aAAA,CAAA,kBAAA,EAAA;AAAY,QAAA,GAAG,EAAf,SAAA;AAA4B,QAAA,OAAO,EAAnC,WAAA;AAAgD,QAAA,KAAK,EAArD,UAAA;AAAiE,QAAA,MAAM,EAAE,MAAMF,eAAe,CAAC,CAA/F,YAA8F,CAA9F;AAA+G,QAAA,QAAQ,EAAEG;AAAzH,OAAA,EADF,IACE,CADF;AADF,KAAA;;AAQA,WAAA,aACE,KAAA,CAAA,aAAA,CAAA,OAAA,EAAA,IAAA,EACGD,gBADH,EAAA,EAAA,aAEE,KAAA,CAAA,aAAA,CAAA,yBAAA,EAAA;AACE,MAAA,kBAAkB,EAAE;AAClBf,QAAAA,SAAS,EADS,SAAA;AAElBiB,QAAAA,MAAM,EAAEA,MAAM,KAAK,MAAM,CAFP,CAEJ,CAFI;AAGlBhB,QAAAA,WAAW,EAHO,WAAA;AAIlBiB,QAAAA,aAAa,EAJK,iBAAA;AAKlBhB,QAAAA,WAAW,EALO,WAAA;AAMlBC,QAAAA,UAAU,EANQ,UAAA;AAOlBC,QAAAA,UAAU,EAPQ,UAAA;AAQlBC,QAAAA,SAAS,EARS,SAAA;AASlBc,QAAAA,KAAK,EAAEA;AATW,OADtB;AAYE,MAAA,OAAO,EAZT,OAAA;AAaE,MAAA,UAAU,EAbZ,UAAA;AAcE,MAAA,IAAI,EAdN,IAAA;AAeE,MAAA,KAAK,EAfP,KAAA;AAgBE,MAAA,SAAS,EAhBX,SAAA;AAiBE,MAAA,MAAM,EAjBR,YAAA;AAkBE,MAAA,SAAS,EAlBX,eAAA;AAmBE,MAAA,kBAAkB,EAnBpB,IAAA;AAoBE,MAAA,MAAM,EApBR,EAAA;AAqBE,MAAA,cAAc,EAAEnB,SAAS,IAATA,QAAAA,GAAAA,EAAAA,GArBlB,cAAA;AAsBE,MAAA,iBAAiB,EAtBnB,iBAAA;AAuBE,MAAA,kBAAkB,EAvBpB,YAAA;AAwBE,MAAA,QAAQ,EAxBV,IAAA;AAyBE,MAAA,EAAE,EAAC;AAzBL,KAAA,CAFF,CADF;AAzDF,GAAA;;oBA2FA,c","sourcesContent":["/**\n * Import React libraries.\n */\nimport * as React from 'react';\n\n/**\n * Import custom components.\n */\nimport { IconButton } from '../Button';\nimport DropdownContent from './DropdownContent';\nimport styled from 'styled-components';\n\n/**\n * Import custom types.\n */\nimport { DropdownButtonProps } from './DropdownButtonTypes';\n\nconst Wrapper = styled.div`\n position: relative;\n display: inline-block;\n`;\n\nconst DropdownButton = ({ \n items, \n icon, \n disabled,\n onClick,\n itemsType = 'normal',\n action,\n actionLabel = '',\n width,\n size,\n alignLeft,\n multiSelect = false,\n scrollable = false,\n pinTopItem = false,\n maxHeight }: DropdownButtonProps) => {\n // Globally used variables within the view.\n const [dropdownOpen, setDropdownOpen] = React.useState<boolean>(false);\n const [selectedValues, setSelectedValues] = React.useState<string[]>([]);\n const [focused, setFocused] = React.useState<number | null>(null);\n const buttonRef = React.useRef<HTMLButtonElement>(null);\n\n const handleValueSelect = (values: string[]) => {\n // Do all required actions\n onClick(values);\n };\n\n \n const handleKeyPress = (e: any) => {\n if (buttonRef?.current && buttonRef.current.contains(e.target)) {\n if (e.keyCode === 13) {\n setDropdownOpen(!dropdownOpen);\n \n } else if (e.keyCode === 40) {\n setDropdownOpen(!dropdownOpen);\n }\n }\n };\n\n React.useEffect(() => {\n document.addEventListener('keypress', handleKeyPress);\n return () => {\n document.removeEventListener('keypress', handleKeyPress);\n };\n });\n\n /**\n * Renders Icon Button dropdown menu.\n * @returns HTML View for the Icon button dropdown menu.\n */\n const renderIconButton = () => {\n return (\n <IconButton ref={buttonRef} variant=\"secondary\" shape=\"circular\" action={() => setDropdownOpen(!dropdownOpen)} disabled={disabled}>\n {icon}\n </IconButton>\n );\n };\n\n return (\n <Wrapper>\n {renderIconButton()}\n <DropdownContent\n customizationProps={{\n itemsType: itemsType,\n action: action ?? (() => {}),\n actionLabel: actionLabel,\n onValueUpdate: handleValueSelect,\n multiSelect: multiSelect,\n scrollable: scrollable,\n pinTopItem: pinTopItem,\n maxHeight: maxHeight,\n items: items\n }}\n focused={focused}\n setFocused={setFocused}\n size={size}\n width={width}\n alignLeft={alignLeft}\n isOpen={dropdownOpen}\n setIsOpen={setDropdownOpen}\n hideOnClickOutside={true}\n filter=''\n selectedValues={itemsType == 'normal' ? [] : selectedValues}\n setSelectedValues={setSelectedValues}\n messageOnNoResults='No results'\n isButton={true}\n id='dropdown-content'\n />\n </Wrapper>\n );\n};\n\nexport default DropdownButton;\n"],"file":"DropdownButton.js"}
@@ -168,11 +168,6 @@
168
168
  }
169
169
  };
170
170
 
171
- const getFilteredItems = () => {
172
- const filtrationString = (filter ?? '').toUpperCase();
173
- return customizationProps.items.filter(x => x?.value?.toUpperCase().includes(filtrationString) || x?.displayLabel?.toUpperCase().includes(filtrationString));
174
- };
175
-
176
171
  const handleKeyDown = e => {
177
172
  if (isOpen) {
178
173
  if (e.keyCode === 38) {
@@ -180,15 +175,7 @@
180
175
  var focusedNow = focused;
181
176
 
182
177
  if (focusedNow !== undefined && focusedNow !== null && focusedNow > 0) {
183
- const filtered = getFilteredItems();
184
-
185
- for (let i = focusedNow - 1; i > 0; i--) {
186
- if (!filtered[i - 1]?.disabled) {
187
- focusedNow = i;
188
- break;
189
- }
190
- }
191
-
178
+ focusedNow -= 1;
192
179
  setNewFocusedElement(focusedNow);
193
180
  }
194
181
  } else if (e.keyCode === 40) {
@@ -196,16 +183,9 @@
196
183
  var focusedNow = focused;
197
184
 
198
185
  if (focusedNow !== undefined && focusedNow !== null) {
199
- const filtered = getFilteredItems();
200
-
201
- for (let i = focusedNow + 1; i <= filtered.length; i++) {
202
- if (!filtered[i - 1]?.disabled) {
203
- focusedNow = i;
204
- break;
205
- }
206
- }
186
+ focusedNow++;
207
187
  } else {
208
- focusedNow = haveTopItem() ? 0 : 1;
188
+ focusedNow = 0;
209
189
  }
210
190
 
211
191
  setNewFocusedElement(focusedNow);
@@ -267,6 +247,11 @@
267
247
  if (itemsListRef.current) itemsListRef.current.scrollTop = scrollPosition.current ?? 0;
268
248
  }, [selectedValues]);
269
249
 
250
+ const getFilteredItems = () => {
251
+ const filtrationString = (filter ?? '').toUpperCase();
252
+ return customizationProps.items.filter(x => x?.value?.toUpperCase().includes(filtrationString) || x?.displayLabel?.toUpperCase().includes(filtrationString));
253
+ };
254
+
270
255
  const getCorrectRef = ref => {
271
256
  switch (customizationProps.itemsType) {
272
257
  case 'normal':
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/Dropdown/DropdownContent.tsx"],"names":["DDContainer","styled","div","COLORS","white","props","neutral_100","Size","ListContainer","neutral_600","neutral_500","ItemsContainer","TopItemContainer","neutral_200","ActionButtonContainer","MAX_MENU_HEIGHT","AVG_OPTION_HEIGHT","value","displayLabel","noteLabel","suggestion","showDividerAbove","disabled","icon","itemsType","scrollable","multiSelect","maxHeight","actionLabel","action","pinTopItem","onValueUpdate","items","isButton","customizationProps","alignLeft","isOpen","setIsOpen","id","filter","width","hideOnClickOutside","selectedValues","setSelectedValues","messageOnNoResults","focused","setFocused","DropdownContent","React","dropdownContentRef","size","itemsListRef","determineDropUp","options","node","windowHeight","window","menuHeight","Math","instOffsetWithMenu","setIsUp","setNewFocusedElement","index","newFocusedElement","elRefs","getFilteredItems","filtrationString","x","handleKeyDown","e","focusedNow","filtered","i","haveTopItem","document","handleClickOutside","scrollPosition","handleScroll","useLayoutEffect","getCorrectRef","ref","arrLength","setElRefs","Array","getSuggestions","focusThis","getTopItem","visibleItems","allSelected","y","showTopItem","suggestions","selected","newValues","fontSize","getElements","number","item","newValue","isUp"],"mappings":"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","sourcesContent":["import React, { useLayoutEffect, useMemo, createRef } from 'react';\nimport styled, { css } from 'styled-components';\nimport { CommonInteractionStyling } from '../common';\nimport Button from '../Button/Button';\nimport { Size } from '../types';\nimport { ButtonDropdownContentStyling, DropdownButton } from './CommonStyling';\nimport { BREAKPOINTS, COLORS } from '../styles';\nimport { Checkbox, RadioButton } from '../InputFields';\n\nexport const DDContainer = styled.div<{ isButton: boolean; width?: string; alignLeft?: boolean; size?: Size; scrollable?: boolean; maxHeight?: string }>`\n display: none;\n position: absolute;\n background-color: ${COLORS.white};\n \n width: ${props => props.width ? props.width : '100%'};\n z-index: 1;\n margin: ${props => (props.isButton ? '-4px' : '4px 0px')};\n\n &.show {\n display: flex;\n flex-direction: column;\n justify-content: center;\n }\n\n &.up {\n top: auto;\n bottom: 100%;\n }\n\n ${props => (props.alignLeft ? 'left: 0px;' : '')}\n\n ${props => (props.isButton ? ButtonDropdownContentStyling : '')};\n\n border: 1px solid ${COLORS.neutral_100};\n box-sizing: border-box;\n box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.15);\n padding-top: 4px;\n padding-right: 0px;\n padding-bottom: 4px;\n padding-left: 0px;\n\n min-width: ${props => (props.size == Size.Large ? '320px' : props.size == Size.Medium ? '280px' : '240px')};\n border-radius: ${props => (props.size == Size.Large ? '10px' : props.size == Size.Medium ? '8px' : '6px')};\n\n max-height: ${props => (!props.scrollable ? 'auto' : props.maxHeight ? props.maxHeight : props.size == Size.Large ? '320px' : props.size == Size.Medium ? '280px' : '240px')};\n`;\n\nconst ListContainer = styled.div<{ scrollable?: boolean, size? : Size, itemsType?: string }>`\n ${props => (props.scrollable ? 'overflow-y: scroll;' : '')}\n ${props => (props.itemsType != 'normal' ? 'margin-left: 4px;' : '')}\n\n div {\n padding-top: ${props => props.size == Size.Large ? '8px' : props.size == Size.Medium ? '4px' : '0px' };\n padding-bottom: ${props => props.size == Size.Large ? '8px' : props.size == Size.Medium ? '4px' : '0px' };\n }\n\n /* width */\n ::-webkit-scrollbar {\n width: 4px;\n margin: 0 6px;\n cursor: pointer;\n }\n\n /* Track */\n ::-webkit-scrollbar-track {\n background: ${COLORS.neutral_100};\n border-radius: 8px;\n }\n\n /* Handle */\n ::-webkit-scrollbar-thumb {\n background: ${COLORS.neutral_600};\n border-radius: 8px;\n }\n\n /* Handle on hover */\n ::-webkit-scrollbar-thumb:hover {\n background: ${COLORS.neutral_500};\n }\n`;\n\nconst ItemsContainer = styled.div`\n`;\n\n\nconst TopItemContainer = styled.div`\n border-bottom-style: solid;\n border-bottom-color: ${COLORS.neutral_200};\n border-bottom-width: 1px;\n margin-right: 22px; \n`;\n\nconst ActionButtonContainer = styled.div`\n border-top-style: solid;\n border-top-color: ${COLORS.neutral_200};\n border-top-width: 1px;\n padding: 0px 16px 4px 16px;\n\n button {\n width: 100%;\n }\n`;\n\nconst MAX_MENU_HEIGHT = 240;\nconst AVG_OPTION_HEIGHT = 48;\n\nexport interface DropdownItem {\n value: string;\n displayLabel?: string;\n noteLabel?: string;\n suggestion?: boolean;\n showDividerAbove?: boolean;\n disabled?: boolean;\n icon?: React.ReactNode;\n}\n\nexport interface DropdownCustomizationProps {\n itemsType?: 'radio' | 'checkbox' | 'normal';\n scrollable?: boolean;\n multiSelect?: boolean;\n maxHeight?: string;\n actionLabel?: string;\n action: () => void;\n pinTopItem?: boolean;\n onValueUpdate: (values: string[]) => void;\n items: DropdownItem[];\n}\n\nexport interface DropdownProps {\n isButton: boolean;\n customizationProps: DropdownCustomizationProps;\n alignLeft?: boolean;\n isOpen: boolean;\n setIsOpen: (open: boolean) => void;\n size?: Size;\n id: string;\n filter: string;\n width?: string;\n hideOnClickOutside: boolean;\n selectedValues: string[];\n setSelectedValues: (val: string[]) => void;\n messageOnNoResults: string;\n focused: number | null;\n setFocused: (focused: number | null) => void;\n}\n\nconst DropdownContent: React.FunctionComponent<DropdownProps> = ({\n id,\n customizationProps,\n alignLeft,\n isButton,\n size,\n isOpen,\n hideOnClickOutside,\n width,\n setIsOpen,\n filter,\n focused, \n setFocused,\n selectedValues,\n setSelectedValues,\n messageOnNoResults\n}) => {\n const [isUp, setIsUp] = React.useState<boolean>(false);\n const dropdownContentRef = React.useRef<HTMLDivElement>(null);\n\n if(!customizationProps.itemsType) customizationProps.itemsType = 'normal';\n if(!size) size = Size.Small;\n\n const itemsListRef = React.useRef<HTMLDivElement>(null);\n\n const determineDropUp = () => {\n const options = customizationProps.items;\n const node = dropdownContentRef.current;\n\n if (!node) return;\n\n const windowHeight = window.innerHeight;\n const menuHeight = Math.min(MAX_MENU_HEIGHT, options.length * AVG_OPTION_HEIGHT);\n const instOffsetWithMenu = node.getBoundingClientRect().top + menuHeight;\n setIsUp(instOffsetWithMenu >= windowHeight);\n };\n\n const setNewFocusedElement = (index: number) => {\n const newFocusedElement = elRefs[index];\n if (newFocusedElement) {\n setFocused(index);\n newFocusedElement?.current?.focus();\n }\n };\n \n const getFilteredItems = () => {\n const filtrationString = (filter ?? '').toUpperCase();\n return customizationProps.items.\n filter(x => x?.value?.toUpperCase().includes(filtrationString) || x?.displayLabel?.toUpperCase().includes(filtrationString));\n };\n \n const handleKeyDown = (e: any) => {\n if (isOpen) {\n if (e.keyCode === 38) {\n e.preventDefault();\n var focusedNow = focused;\n if (focusedNow !== undefined && focusedNow !== null && focusedNow > 0) {\n const filtered = getFilteredItems();\n for(let i = focusedNow - 1; i > 0; i--) {\n if(!filtered[i - 1]?.disabled) {\n focusedNow = i;\n break;\n }\n }\n setNewFocusedElement(focusedNow);\n }\n } else if (e.keyCode === 40) {\n e.preventDefault();\n var focusedNow = focused;\n if (focusedNow !== undefined && focusedNow !== null) {\n const filtered = getFilteredItems();\n for(let i = focusedNow + 1; i <= filtered.length; i++) {\n if(!filtered[i - 1]?.disabled) {\n focusedNow = i;\n break;\n }\n }\n } else {\n focusedNow = haveTopItem() ? 0 : 1;\n }\n setNewFocusedElement(focusedNow);\n } else if (e.keyCode === 9) {\n e.preventDefault();\n var focusedNow = focused;\n if (focusedNow !== undefined && focusedNow !== null) {\n focusedNow++;\n const newFocusedElement = document.getElementById(`${id}_${focusedNow}`);\n if (!newFocusedElement) {\n setNewFocusedElement(0);\n } else {\n setNewFocusedElement(focusedNow);\n }\n } else {\n setFocused(null);\n }\n } else if (e.keyCode === 27) {\n setIsOpen(false);\n setFocused(null);\n\n //TODO: add onEscapehandler\n /*\n if (!list.includes(input)) {\n setInput('');\n setPlaceholderSearch(placeholder || '');\n }\n styledFieldRef.current?.focus(); */\n }\n }\n };\n\n const handleClickOutside = (e: any) => {\n if (hideOnClickOutside && dropdownContentRef?.current && !dropdownContentRef.current.contains(e.target) && !elRefs.some(x => x?.current?.contains(e.target))) {\n if (isOpen) {\n setIsOpen(false);\n setFocused(null);\n }\n }\n };\n\n React.useEffect(() => {\n document.addEventListener('keydown', handleKeyDown);\n document.addEventListener('click', handleClickOutside);\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n document.removeEventListener('click', handleClickOutside);\n };\n });\n\n const scrollPosition = React.useRef<number | undefined>(0); \n const handleScroll = () => {\n scrollPosition.current = itemsListRef.current?.scrollTop;\n }\n useLayoutEffect(() => {\n if (itemsListRef.current) itemsListRef.current.scrollTop = scrollPosition.current ?? 0;\n }, [selectedValues]);\n\n\n const getCorrectRef = (ref: React.RefObject<HTMLElement>): React.RefObject<HTMLElement> => {\n switch(customizationProps.itemsType)\n {\n case 'normal':\n return ref as React.RefObject<HTMLButtonElement> || createRef<HTMLButtonElement>();\n default:\n return ref as React.RefObject<HTMLDivElement> || createRef<HTMLDivElement>();\n }\n }\n\n const arrLength = getFilteredItems().length;\n const [elRefs, setElRefs] = React.useState<React.RefObject<HTMLElement>[]>([]);\n\n React.useEffect(() => {\n setElRefs(elRefs => \n Array(arrLength + 1).fill(null)\n .map((_, i) => getCorrectRef(elRefs[i])));\n }, [isOpen, arrLength, selectedValues]);\n \n React.useEffect(() => {\n determineDropUp();\n }, [isOpen]);\n\n\n const haveTopItem = () => {\n if (customizationProps.itemsType == 'radio' && selectedValues && selectedValues?.length > 0) return true;\n else if (customizationProps.itemsType == 'checkbox' && (customizationProps.multiSelect || selectedValues?.length > 0)) return true;\n else if (customizationProps.itemsType == 'normal' && getSuggestions()?.length > 0) return true;\n return false;\n };\n \n const getSuggestions = () => {\n return getFilteredItems().filter(x => x.suggestion);\n }\n\n React.useLayoutEffect(() => {\n if (isOpen && (focused || focused == 0)) {\n const focusThis = focused == 0 && !haveTopItem() ? 1 : focused;\n if(focusThis != focused)\n setFocused(focusThis);\n const newFocusedElement = elRefs[focusThis];\n newFocusedElement?.current?.focus();\n }\n else\n setFocused(null); //if the dropdown is closed, we don't to keep saved the focused item\n }, [isOpen]);\n\n \n\n const getTopItem = () => {\n if (!customizationProps.pinTopItem) return;\n const visibleItems = getFilteredItems();\n const allSelected = selectedValues?.filter(x => visibleItems.some(y => y.value == x)).length == visibleItems.length;\n let showTopItem = false;\n const suggestions = getSuggestions();\n\n if (customizationProps.itemsType == 'radio' && selectedValues && selectedValues?.length > 0) showTopItem = true;\n else if (customizationProps.itemsType == 'checkbox' && (customizationProps.multiSelect || selectedValues?.length > 0)) showTopItem = true;\n else if (customizationProps.itemsType == 'normal' && suggestions.length > 0) showTopItem = true;\n\n if (!showTopItem) return;\n \n return (\n <TopItemContainer>\n {customizationProps.itemsType == 'radio' && (\n <RadioButton\n ref={elRefs[0] as React.RefObject<HTMLDivElement>}\n iconPointerEventsTransparent={true}\n select={() => {}} size={size} id={`${id}_topitem`} label={selectedValues[0]} selected={true} />\n )}\n {customizationProps.itemsType == 'checkbox' && (\n <Checkbox\n ref={elRefs[0] as React.RefObject<HTMLDivElement>}\n select={(selected: boolean) => {\n if (!customizationProps.multiSelect) return;\n\n const newValues = selected ? visibleItems.map(x => x.value) : [];\n setSelectedValues(newValues);\n customizationProps.onValueUpdate && customizationProps.onValueUpdate(newValues);\n }}\n iconPointerEventsTransparent={true}\n semiSelected={customizationProps.multiSelect && !allSelected && selectedValues?.length > 0}\n size={size}\n id={`${id}_checkbox_selectall`}\n label={customizationProps.multiSelect ? 'Select all' : selectedValues[0]}\n selected={!customizationProps.multiSelect || allSelected}\n />\n )}\n {customizationProps.itemsType == 'normal' && (\n <>\n {suggestions.map(x => \n <DropdownButton ref={elRefs[0] as React.RefObject<HTMLButtonElement>} type=\"button\" id={`${id}_topitem`}\n onClick={(e: any) => {\n customizationProps.onValueUpdate([x.value]);\n setSelectedValues([x.value]);\n setIsOpen(false);\n setFocused(null);\n }}>\n <div className=\"item-content\">\n {x?.icon && <div className=\"item-icon\">{x?.icon}</div>}\n <div className=\"item-label\">\n {x?.displayLabel ?? x?.value}\n {x?.noteLabel && <div style={{fontSize: '12px'}}>{x.noteLabel}</div>}\n </div>\n </div>\n </DropdownButton>)}\n </>\n )}\n </TopItemContainer>\n );\n };\n\n const getElements = () => {\n if (getFilteredItems().length === 0) {\n return (\n <ItemsContainer>\n <DropdownButton disabled>\n <span>{messageOnNoResults}</span>\n </DropdownButton>\n </ItemsContainer>\n );\n }\n let number = 0;\n return (\n <ItemsContainer>\n {getFilteredItems().filter(x => x && (customizationProps.itemsType != 'normal' || !x.suggestion)).map(item => {\n return (\n <>\n {customizationProps.itemsType == 'radio' && (\n <RadioButton\n select={(selected: boolean) => {\n if (!selected) return;\n customizationProps.onValueUpdate && customizationProps.onValueUpdate([item.value]);\n setSelectedValues([item.value]);\n }}\n ref={elRefs[number + 1] as React.RefObject<HTMLDivElement>}\n size={size}\n iconPointerEventsTransparent={true}\n disabled={item?.disabled}\n key={`key_${id}_${number++}`}\n id={`${id}_${number + 1}`}\n label={item.value}\n selected={selectedValues?.includes(item.value)}\n />\n )}\n {customizationProps.itemsType == 'checkbox' && (\n <Checkbox\n select={(selected: boolean) => {\n let newValue: string[] = [];\n if (customizationProps.multiSelect) {\n if (selected) newValue = [...selectedValues, item.value];\n else newValue = selectedValues.filter(x => x != item.value);\n } else newValue = selected ? [item.value] : [];\n\n setSelectedValues(newValue);\n customizationProps.onValueUpdate(newValue);\n }}\n iconPointerEventsTransparent={true}\n disabled={item?.disabled} \n ref={elRefs[number + 1] as React.RefObject<HTMLDivElement>}\n size={size}\n key={`key_${id}_${number++}`}\n id={`${id}_${number + 1}`}\n label={item.value}\n selected={selectedValues?.includes(item.value)}\n />\n )}\n {(customizationProps.itemsType == 'normal' || !customizationProps.itemsType) && (\n <DropdownButton\n type=\"button\"\n size={size}\n disabled={item?.disabled}\n ref={elRefs[number + 1] as React.RefObject<HTMLButtonElement>}\n onClick={(e: any) => {\n customizationProps.onValueUpdate([item.value]);\n setSelectedValues([item.value]);\n setIsOpen(false);\n setFocused(null);\n }}\n className={ (item.showDividerAbove ? 'show-divider-above' : '') + ' ' + (selectedValues?.includes(item.value) ? 'active' : '')}\n key={`key_${id}_${number++}`}\n id={`${id}_${number + 1}`}>\n {item.showDividerAbove && <div className=\"divider\"/>}\n <div className=\"item-content\">\n {item.icon && <div className=\"item-icon\">{item.icon}</div>}\n <div className=\"item-label\">\n {item.displayLabel ?? item.value}\n {item.noteLabel && <div style={{fontSize: '12px'}}>{item.noteLabel}</div>}\n </div>\n </div>\n </DropdownButton>\n )}\n </>\n );\n })}\n </ItemsContainer>\n );\n };\n\n return <DDContainer\n ref={dropdownContentRef}\n size={size}\n width={width}\n isButton={isButton}\n alignLeft={alignLeft}\n scrollable={customizationProps.scrollable}\n maxHeight={customizationProps.maxHeight}\n className={[isOpen && 'show', isUp && 'up'].filter(e => !!e).join(' ')}>\n <ListContainer size={size} itemsType={customizationProps.itemsType} onScroll={handleScroll} ref={itemsListRef} scrollable={customizationProps.scrollable}>\n {customizationProps.pinTopItem && getTopItem()}\n {getElements()}\n </ListContainer>\n {customizationProps.action && customizationProps.actionLabel && (\n <ActionButtonContainer>\n <Button width=\"100%\" variant=\"primary\" size={size} onClick={() => customizationProps.action()}>\n {customizationProps.actionLabel}\n </Button>\n </ActionButtonContainer>\n )}\n </DDContainer>;\n /* ),\n {\n handleClickOutside: () => () => {\n if (isOpen) {\n setIsOpen(false);\n setFocused(null);\n }\n },\n },\n );\n\n return <Wrapped />; */\n};\n\nexport default DropdownContent;\n"],"file":"DropdownContent.js"}
1
+ {"version":3,"sources":["../../../src/Dropdown/DropdownContent.tsx"],"names":["DDContainer","styled","div","COLORS","white","props","neutral_100","Size","ListContainer","neutral_600","neutral_500","ItemsContainer","TopItemContainer","neutral_200","ActionButtonContainer","MAX_MENU_HEIGHT","AVG_OPTION_HEIGHT","value","displayLabel","noteLabel","suggestion","showDividerAbove","disabled","icon","itemsType","scrollable","multiSelect","maxHeight","actionLabel","action","pinTopItem","onValueUpdate","items","isButton","customizationProps","alignLeft","isOpen","setIsOpen","id","filter","width","hideOnClickOutside","selectedValues","setSelectedValues","messageOnNoResults","focused","setFocused","DropdownContent","React","dropdownContentRef","size","itemsListRef","determineDropUp","options","node","windowHeight","window","menuHeight","Math","instOffsetWithMenu","setIsUp","setNewFocusedElement","index","newFocusedElement","elRefs","handleKeyDown","e","focusedNow","document","handleClickOutside","x","scrollPosition","handleScroll","useLayoutEffect","getFilteredItems","filtrationString","getCorrectRef","ref","arrLength","setElRefs","Array","haveTopItem","getSuggestions","focusThis","getTopItem","visibleItems","allSelected","y","showTopItem","suggestions","selected","newValues","fontSize","getElements","number","item","newValue","isUp"],"mappings":"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","sourcesContent":["import React, { useLayoutEffect, useMemo, createRef } from 'react';\nimport styled, { css } from 'styled-components';\nimport { CommonInteractionStyling } from '../common';\nimport Button from '../Button/Button';\nimport { Size } from '../types';\nimport { ButtonDropdownContentStyling, DropdownButton } from './CommonStyling';\nimport { BREAKPOINTS, COLORS } from '../styles';\nimport { Checkbox, RadioButton } from '../InputFields';\n\nexport const DDContainer = styled.div<{ isButton: boolean; width?: string; alignLeft?: boolean; size?: Size; scrollable?: boolean; maxHeight?: string }>`\n display: none;\n position: absolute;\n background-color: ${COLORS.white};\n \n width: ${props => props.width ? props.width : '100%'};\n z-index: 1;\n margin: ${props => (props.isButton ? '-4px' : '4px 0px')};\n\n &.show {\n display: flex;\n flex-direction: column;\n justify-content: center;\n }\n\n &.up {\n top: auto;\n bottom: 100%;\n }\n\n ${props => (props.alignLeft ? 'left: 0px;' : '')}\n\n ${props => (props.isButton ? ButtonDropdownContentStyling : '')};\n\n border: 1px solid ${COLORS.neutral_100};\n box-sizing: border-box;\n box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.15);\n padding-top: 4px;\n padding-right: 0px;\n padding-bottom: 4px;\n padding-left: 0px;\n\n min-width: ${props => (props.size == Size.Large ? '320px' : props.size == Size.Medium ? '280px' : '240px')};\n border-radius: ${props => (props.size == Size.Large ? '10px' : props.size == Size.Medium ? '8px' : '6px')};\n\n max-height: ${props => (!props.scrollable ? 'auto' : props.maxHeight ? props.maxHeight : props.size == Size.Large ? '320px' : props.size == Size.Medium ? '280px' : '240px')};\n`;\n\nconst ListContainer = styled.div<{ scrollable?: boolean, size? : Size, itemsType?: string }>`\n ${props => (props.scrollable ? 'overflow-y: scroll;' : '')}\n ${props => (props.itemsType != 'normal' ? 'margin-left: 4px;' : '')}\n\n div {\n padding-top: ${props => props.size == Size.Large ? '8px' : props.size == Size.Medium ? '4px' : '0px' };\n padding-bottom: ${props => props.size == Size.Large ? '8px' : props.size == Size.Medium ? '4px' : '0px' };\n }\n\n /* width */\n ::-webkit-scrollbar {\n width: 4px;\n margin: 0 6px;\n cursor: pointer;\n }\n\n /* Track */\n ::-webkit-scrollbar-track {\n background: ${COLORS.neutral_100};\n border-radius: 8px;\n }\n\n /* Handle */\n ::-webkit-scrollbar-thumb {\n background: ${COLORS.neutral_600};\n border-radius: 8px;\n }\n\n /* Handle on hover */\n ::-webkit-scrollbar-thumb:hover {\n background: ${COLORS.neutral_500};\n }\n`;\n\nconst ItemsContainer = styled.div`\n`;\n\n\nconst TopItemContainer = styled.div`\n border-bottom-style: solid;\n border-bottom-color: ${COLORS.neutral_200};\n border-bottom-width: 1px;\n margin-right: 22px; \n`;\n\nconst ActionButtonContainer = styled.div`\n border-top-style: solid;\n border-top-color: ${COLORS.neutral_200};\n border-top-width: 1px;\n padding: 0px 16px 4px 16px;\n\n button {\n width: 100%;\n }\n`;\n\nconst MAX_MENU_HEIGHT = 240;\nconst AVG_OPTION_HEIGHT = 48;\n\nexport interface DropdownItem {\n value: string;\n displayLabel?: string;\n noteLabel?: string;\n suggestion?: boolean;\n showDividerAbove?: boolean;\n disabled?: boolean;\n icon?: React.ReactNode;\n}\n\nexport interface DropdownCustomizationProps {\n itemsType?: 'radio' | 'checkbox' | 'normal';\n scrollable?: boolean;\n multiSelect?: boolean;\n maxHeight?: string;\n actionLabel?: string;\n action: () => void;\n pinTopItem?: boolean;\n onValueUpdate: (values: string[]) => void;\n items: DropdownItem[];\n}\n\nexport interface DropdownProps {\n isButton: boolean;\n customizationProps: DropdownCustomizationProps;\n alignLeft?: boolean;\n isOpen: boolean;\n setIsOpen: (open: boolean) => void;\n size?: Size;\n id: string;\n filter: string;\n width?: string;\n hideOnClickOutside: boolean;\n selectedValues: string[];\n setSelectedValues: (val: string[]) => void;\n messageOnNoResults: string;\n focused: number | null;\n setFocused: (focused: number | null) => void;\n}\n\nconst DropdownContent: React.FunctionComponent<DropdownProps> = ({\n id,\n customizationProps,\n alignLeft,\n isButton,\n size,\n isOpen,\n hideOnClickOutside,\n width,\n setIsOpen,\n filter,\n focused, \n setFocused,\n selectedValues,\n setSelectedValues,\n messageOnNoResults\n}) => {\n const [isUp, setIsUp] = React.useState<boolean>(false);\n const dropdownContentRef = React.useRef<HTMLDivElement>(null);\n\n if(!customizationProps.itemsType) customizationProps.itemsType = 'normal';\n if(!size) size = Size.Small;\n\n const itemsListRef = React.useRef<HTMLDivElement>(null);\n\n const determineDropUp = () => {\n const options = customizationProps.items;\n const node = dropdownContentRef.current;\n\n if (!node) return;\n\n const windowHeight = window.innerHeight;\n const menuHeight = Math.min(MAX_MENU_HEIGHT, options.length * AVG_OPTION_HEIGHT);\n const instOffsetWithMenu = node.getBoundingClientRect().top + menuHeight;\n setIsUp(instOffsetWithMenu >= windowHeight);\n };\n\n const setNewFocusedElement = (index: number) => {\n const newFocusedElement = elRefs[index];\n if (newFocusedElement) {\n setFocused(index);\n newFocusedElement?.current?.focus();\n }\n };\n \n const handleKeyDown = (e: any) => {\n if (isOpen) {\n if (e.keyCode === 38) {\n e.preventDefault();\n var focusedNow = focused;\n if (focusedNow !== undefined && focusedNow !== null && focusedNow > 0) {\n focusedNow -= 1;\n setNewFocusedElement(focusedNow);\n }\n } else if (e.keyCode === 40) {\n e.preventDefault();\n var focusedNow = focused;\n if (focusedNow !== undefined && focusedNow !== null) {\n focusedNow++;\n } else {\n focusedNow = 0;\n }\n setNewFocusedElement(focusedNow);\n } else if (e.keyCode === 9) {\n e.preventDefault();\n var focusedNow = focused;\n if (focusedNow !== undefined && focusedNow !== null) {\n focusedNow++;\n const newFocusedElement = document.getElementById(`${id}_${focusedNow}`);\n if (!newFocusedElement) {\n setNewFocusedElement(0);\n } else {\n setNewFocusedElement(focusedNow);\n }\n } else {\n setFocused(null);\n }\n } else if (e.keyCode === 27) {\n setIsOpen(false);\n setFocused(null);\n\n //TODO: add onEscapehandler\n /*\n if (!list.includes(input)) {\n setInput('');\n setPlaceholderSearch(placeholder || '');\n }\n styledFieldRef.current?.focus(); */\n }\n }\n };\n\n const handleClickOutside = (e: any) => {\n if (hideOnClickOutside && dropdownContentRef?.current && !dropdownContentRef.current.contains(e.target) && !elRefs.some(x => x?.current?.contains(e.target))) {\n if (isOpen) {\n setIsOpen(false);\n setFocused(null);\n }\n }\n };\n\n React.useEffect(() => {\n document.addEventListener('keydown', handleKeyDown);\n document.addEventListener('click', handleClickOutside);\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n document.removeEventListener('click', handleClickOutside);\n };\n });\n\n const scrollPosition = React.useRef<number | undefined>(0); \n const handleScroll = () => {\n scrollPosition.current = itemsListRef.current?.scrollTop;\n }\n useLayoutEffect(() => {\n if (itemsListRef.current) itemsListRef.current.scrollTop = scrollPosition.current ?? 0;\n }, [selectedValues]);\n\n const getFilteredItems = () => {\n const filtrationString = (filter ?? '').toUpperCase();\n return customizationProps.items.\n filter(x => x?.value?.toUpperCase().includes(filtrationString) || x?.displayLabel?.toUpperCase().includes(filtrationString));\n };\n\n const getCorrectRef = (ref: React.RefObject<HTMLElement>): React.RefObject<HTMLElement> => {\n switch(customizationProps.itemsType)\n {\n case 'normal':\n return ref as React.RefObject<HTMLButtonElement> || createRef<HTMLButtonElement>();\n default:\n return ref as React.RefObject<HTMLDivElement> || createRef<HTMLDivElement>();\n }\n }\n\n const arrLength = getFilteredItems().length;\n const [elRefs, setElRefs] = React.useState<React.RefObject<HTMLElement>[]>([]);\n\n React.useEffect(() => {\n setElRefs(elRefs => \n Array(arrLength + 1).fill(null)\n .map((_, i) => getCorrectRef(elRefs[i])));\n }, [isOpen, arrLength, selectedValues]);\n \n React.useEffect(() => {\n determineDropUp();\n }, [isOpen]);\n\n\n const haveTopItem = () => {\n if (customizationProps.itemsType == 'radio' && selectedValues && selectedValues?.length > 0) return true;\n else if (customizationProps.itemsType == 'checkbox' && (customizationProps.multiSelect || selectedValues?.length > 0)) return true;\n else if (customizationProps.itemsType == 'normal' && getSuggestions()?.length > 0) return true;\n return false;\n };\n \n const getSuggestions = () => {\n return getFilteredItems().filter(x => x.suggestion);\n }\n\n React.useLayoutEffect(() => {\n if (isOpen && (focused || focused == 0)) {\n const focusThis = focused == 0 && !haveTopItem() ? 1 : focused;\n if(focusThis != focused)\n setFocused(focusThis);\n const newFocusedElement = elRefs[focusThis];\n newFocusedElement?.current?.focus();\n }\n else\n setFocused(null); //if the dropdown is closed, we don't to keep saved the focused item\n }, [isOpen]);\n\n \n\n const getTopItem = () => {\n if (!customizationProps.pinTopItem) return;\n const visibleItems = getFilteredItems();\n const allSelected = selectedValues?.filter(x => visibleItems.some(y => y.value == x)).length == visibleItems.length;\n let showTopItem = false;\n const suggestions = getSuggestions();\n\n if (customizationProps.itemsType == 'radio' && selectedValues && selectedValues?.length > 0) showTopItem = true;\n else if (customizationProps.itemsType == 'checkbox' && (customizationProps.multiSelect || selectedValues?.length > 0)) showTopItem = true;\n else if (customizationProps.itemsType == 'normal' && suggestions.length > 0) showTopItem = true;\n\n if (!showTopItem) return;\n \n return (\n <TopItemContainer>\n {customizationProps.itemsType == 'radio' && (\n <RadioButton\n ref={elRefs[0] as React.RefObject<HTMLDivElement>}\n iconPointerEventsTransparent={true}\n select={() => {}} size={size} id={`${id}_topitem`} label={selectedValues[0]} selected={true} />\n )}\n {customizationProps.itemsType == 'checkbox' && (\n <Checkbox\n ref={elRefs[0] as React.RefObject<HTMLDivElement>}\n select={(selected: boolean) => {\n if (!customizationProps.multiSelect) return;\n\n const newValues = selected ? visibleItems.map(x => x.value) : [];\n setSelectedValues(newValues);\n customizationProps.onValueUpdate && customizationProps.onValueUpdate(newValues);\n }}\n iconPointerEventsTransparent={true}\n semiSelected={customizationProps.multiSelect && !allSelected && selectedValues?.length > 0}\n size={size}\n id={`${id}_checkbox_selectall`}\n label={customizationProps.multiSelect ? 'Select all' : selectedValues[0]}\n selected={!customizationProps.multiSelect || allSelected}\n />\n )}\n {customizationProps.itemsType == 'normal' && (\n <>\n {suggestions.map(x => \n <DropdownButton ref={elRefs[0] as React.RefObject<HTMLButtonElement>} type=\"button\" id={`${id}_topitem`}\n onClick={(e: any) => {\n customizationProps.onValueUpdate([x.value]);\n setSelectedValues([x.value]);\n setIsOpen(false);\n setFocused(null);\n }}>\n <div className=\"item-content\">\n {x?.icon && <div className=\"item-icon\">{x?.icon}</div>}\n <div className=\"item-label\">\n {x?.displayLabel ?? x?.value}\n {x?.noteLabel && <div style={{fontSize: '12px'}}>{x.noteLabel}</div>}\n </div>\n </div>\n </DropdownButton>)}\n </>\n )}\n </TopItemContainer>\n );\n };\n\n const getElements = () => {\n if (getFilteredItems().length === 0) {\n return (\n <ItemsContainer>\n <DropdownButton disabled>\n <span>{messageOnNoResults}</span>\n </DropdownButton>\n </ItemsContainer>\n );\n }\n let number = 0;\n return (\n <ItemsContainer>\n {getFilteredItems().filter(x => x && (customizationProps.itemsType != 'normal' || !x.suggestion)).map(item => {\n return (\n <>\n {customizationProps.itemsType == 'radio' && (\n <RadioButton\n select={(selected: boolean) => {\n if (!selected) return;\n customizationProps.onValueUpdate && customizationProps.onValueUpdate([item.value]);\n setSelectedValues([item.value]);\n }}\n ref={elRefs[number + 1] as React.RefObject<HTMLDivElement>}\n size={size}\n iconPointerEventsTransparent={true}\n disabled={item?.disabled}\n key={`key_${id}_${number++}`}\n id={`${id}_${number + 1}`}\n label={item.value}\n selected={selectedValues?.includes(item.value)}\n />\n )}\n {customizationProps.itemsType == 'checkbox' && (\n <Checkbox\n select={(selected: boolean) => {\n let newValue: string[] = [];\n if (customizationProps.multiSelect) {\n if (selected) newValue = [...selectedValues, item.value];\n else newValue = selectedValues.filter(x => x != item.value);\n } else newValue = selected ? [item.value] : [];\n\n setSelectedValues(newValue);\n customizationProps.onValueUpdate(newValue);\n }}\n iconPointerEventsTransparent={true}\n disabled={item?.disabled} \n ref={elRefs[number + 1] as React.RefObject<HTMLDivElement>}\n size={size}\n key={`key_${id}_${number++}`}\n id={`${id}_${number + 1}`}\n label={item.value}\n selected={selectedValues?.includes(item.value)}\n />\n )}\n {(customizationProps.itemsType == 'normal' || !customizationProps.itemsType) && (\n <DropdownButton\n type=\"button\"\n size={size}\n disabled={item?.disabled}\n ref={elRefs[number + 1] as React.RefObject<HTMLButtonElement>}\n onClick={(e: any) => {\n customizationProps.onValueUpdate([item.value]);\n setSelectedValues([item.value]);\n setIsOpen(false);\n setFocused(null);\n }}\n className={ (item.showDividerAbove ? 'show-divider-above' : '') + ' ' + (selectedValues?.includes(item.value) ? 'active' : '')}\n key={`key_${id}_${number++}`}\n id={`${id}_${number + 1}`}>\n {item.showDividerAbove && <div className=\"divider\"/>}\n <div className=\"item-content\">\n {item.icon && <div className=\"item-icon\">{item.icon}</div>}\n <div className=\"item-label\">\n {item.displayLabel ?? item.value}\n {item.noteLabel && <div style={{fontSize: '12px'}}>{item.noteLabel}</div>}\n </div>\n </div>\n </DropdownButton>\n )}\n </>\n );\n })}\n </ItemsContainer>\n );\n };\n\n return <DDContainer\n ref={dropdownContentRef}\n size={size}\n width={width}\n isButton={isButton}\n alignLeft={alignLeft}\n scrollable={customizationProps.scrollable}\n maxHeight={customizationProps.maxHeight}\n className={[isOpen && 'show', isUp && 'up'].filter(e => !!e).join(' ')}>\n <ListContainer size={size} itemsType={customizationProps.itemsType} onScroll={handleScroll} ref={itemsListRef} scrollable={customizationProps.scrollable}>\n {customizationProps.pinTopItem && getTopItem()}\n {getElements()}\n </ListContainer>\n {customizationProps.action && customizationProps.actionLabel && (\n <ActionButtonContainer>\n <Button width=\"100%\" variant=\"primary\" size={size} onClick={() => customizationProps.action()}>\n {customizationProps.actionLabel}\n </Button>\n </ActionButtonContainer>\n )}\n </DDContainer>;\n /* ),\n {\n handleClickOutside: () => () => {\n if (isOpen) {\n setIsOpen(false);\n setFocused(null);\n }\n },\n },\n );\n\n return <Wrapped />; */\n};\n\nexport default DropdownContent;\n"],"file":"DropdownContent.js"}
@@ -175,7 +175,7 @@
175
175
  }, mainInfo)), /*#__PURE__*/React.createElement(ButtonWrapper, {
176
176
  className: "user-actions"
177
177
  }, /*#__PURE__*/React.createElement(UserDropdownButton, {
178
- variant: "text",
178
+ variant: "tertiary",
179
179
  onClick: () => {
180
180
  setDropdownActive(true);
181
181
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/List/ListRow.tsx"],"names":["EditRow","styled","div","props","COLORS","neutral_20","neutral_100","LeftSection","ComponentSStyling","ComponentTextStyle","MainInfo","ButtonWrapper","UserDropdownButton","white","StyledMoreVertical","primary_20","primary_100","key","Icon","mainInfo","dropdownOptions","disableDifferentBackgroundforEvenNumbers","ListRow","color","React","setDropdownActive","neutral_500","dropdownActive"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport styled from 'styled-components';\nimport {Button} from '../Button';\nimport {MoreVertical} from '../icons/systemicons/SystemIcons';\nimport {COLORS, ComponentTextStyle} from '../styles';\nimport {ListRowDropdownOption} from '../types';\n\nimport ListRowDropdown from './ListRowDropdown';\nimport {ComponentSStyling} from '../styles/typography';\n\nconst EditRow = styled.div<{ disableDifferentBackgroundforEvenNumbers?: boolean }>`\n display: flex;\n justify-content: space-between;\n padding: 8px 12px;\n align-items: center;\n\n &:nth-child(even) {\n background-color: ${props => (props.disableDifferentBackgroundforEvenNumbers ? 'inherit' : COLORS.neutral_20)};\n }\n\n .user-actions {\n display: flex;\n position: relative;\n align-items: center;\n }\n\n .somePaddingForAlignment {\n padding: 0 3px 0 0;\n }\n\n &.active {\n background-color: ${COLORS.neutral_100};\n }\n`;\n\nconst LeftSection = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n\n ${ComponentSStyling(ComponentTextStyle.Regular, 'inherit')}\n\n svg {\n margin-right: 12px;\n }\n`;\n\nconst MainInfo = styled.div`\n margin: auto 1em auto 0;\n display: flex;\n flex-direction: column;\n`;\n\nconst ButtonWrapper = styled.div`\n outline: none;\n`;\n\nconst UserDropdownButton = styled(Button)`\n display: flex;\n text-decoration: none;\n outline: none;\n div {\n outline: none;\n }\n &:focus > div {\n box-shadow: 0px 0px 8px #2e7fa1, 0px 4px 12px rgba(46, 127, 161, 0.25);\n border-radius: 4px;\n outline: none;\n background: ${COLORS.white};\n }\n`;\n\nconst StyledMoreVertical = styled(MoreVertical)`\n padding: 8px 8px;\n outline: none;\n &:hover {\n background: ${COLORS.primary_20};\n border-radius: 4px;\n }\n &:active {\n background: ${COLORS.primary_100};\n border-radius: 4px;\n }\n`;\n\ntype Props = {\n key?: string;\n Icon?: any;\n mainInfo: any;\n dropdownOptions: ListRowDropdownOption[];\n disableDifferentBackgroundforEvenNumbers?: boolean;\n};\n\nconst ListRow: React.FunctionComponent<Props> = ({ key, Icon, mainInfo, dropdownOptions, disableDifferentBackgroundforEvenNumbers }: Props) => {\n const color = COLORS.black;\n const [dropdownActive, setDropdownActive] = React.useState<Boolean>(false);\n\n return (\n <EditRow key={key} disableDifferentBackgroundforEvenNumbers={disableDifferentBackgroundforEvenNumbers}>\n <LeftSection color={color} data-hj-suppress>\n {Icon && <Icon size=\"22px\" color={color} className=\"somePaddingForAlignment\" />}\n <MainInfo data-hj-suppress>{mainInfo}</MainInfo>\n </LeftSection>\n\n <ButtonWrapper className=\"user-actions\">\n <UserDropdownButton\n variant=\"text\"\n onClick={() => {\n setDropdownActive(true);\n }}>\n <div tabIndex={-1}>\n <StyledMoreVertical size=\"22px\" color={COLORS.neutral_500} />\n </div>\n </UserDropdownButton>\n {dropdownActive && <ListRowDropdown closeDropdown={() => setDropdownActive(false)} options={dropdownOptions} />}\n </ButtonWrapper>\n </EditRow>\n );\n};\n\nexport default ListRow;\n"],"file":"ListRow.js"}
1
+ {"version":3,"sources":["../../../src/List/ListRow.tsx"],"names":["EditRow","styled","div","props","COLORS","neutral_20","neutral_100","LeftSection","ComponentSStyling","ComponentTextStyle","MainInfo","ButtonWrapper","UserDropdownButton","white","StyledMoreVertical","primary_20","primary_100","key","Icon","mainInfo","dropdownOptions","disableDifferentBackgroundforEvenNumbers","ListRow","color","React","setDropdownActive","neutral_500","dropdownActive"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport styled from 'styled-components';\nimport {Button} from '../Button';\nimport {MoreVertical} from '../icons/systemicons/SystemIcons';\nimport {COLORS, ComponentTextStyle} from '../styles';\nimport {ListRowDropdownOption} from '../types';\n\nimport ListRowDropdown from './ListRowDropdown';\nimport {ComponentSStyling} from '../styles/typography';\n\nconst EditRow = styled.div<{ disableDifferentBackgroundforEvenNumbers?: boolean }>`\n display: flex;\n justify-content: space-between;\n padding: 8px 12px;\n align-items: center;\n\n &:nth-child(even) {\n background-color: ${props => (props.disableDifferentBackgroundforEvenNumbers ? 'inherit' : COLORS.neutral_20)};\n }\n\n .user-actions {\n display: flex;\n position: relative;\n align-items: center;\n }\n\n .somePaddingForAlignment {\n padding: 0 3px 0 0;\n }\n\n &.active {\n background-color: ${COLORS.neutral_100};\n }\n`;\n\nconst LeftSection = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n\n ${ComponentSStyling(ComponentTextStyle.Regular, 'inherit')}\n\n svg {\n margin-right: 12px;\n }\n`;\n\nconst MainInfo = styled.div`\n margin: auto 1em auto 0;\n display: flex;\n flex-direction: column;\n`;\n\nconst ButtonWrapper = styled.div`\n outline: none;\n`;\n\nconst UserDropdownButton = styled(Button)`\n display: flex;\n text-decoration: none;\n outline: none;\n div {\n outline: none;\n }\n &:focus > div {\n box-shadow: 0px 0px 8px #2e7fa1, 0px 4px 12px rgba(46, 127, 161, 0.25);\n border-radius: 4px;\n outline: none;\n background: ${COLORS.white};\n }\n`;\n\nconst StyledMoreVertical = styled(MoreVertical)`\n padding: 8px 8px;\n outline: none;\n &:hover {\n background: ${COLORS.primary_20};\n border-radius: 4px;\n }\n &:active {\n background: ${COLORS.primary_100};\n border-radius: 4px;\n }\n`;\n\ntype Props = {\n key?: string;\n Icon?: any;\n mainInfo: any;\n dropdownOptions: ListRowDropdownOption[];\n disableDifferentBackgroundforEvenNumbers?: boolean;\n};\n\nconst ListRow: React.FunctionComponent<Props> = ({ key, Icon, mainInfo, dropdownOptions, disableDifferentBackgroundforEvenNumbers }: Props) => {\n const color = COLORS.black;\n const [dropdownActive, setDropdownActive] = React.useState<Boolean>(false);\n\n return (\n <EditRow key={key} disableDifferentBackgroundforEvenNumbers={disableDifferentBackgroundforEvenNumbers}>\n <LeftSection color={color} data-hj-suppress>\n {Icon && <Icon size=\"22px\" color={color} className=\"somePaddingForAlignment\" />}\n <MainInfo data-hj-suppress>{mainInfo}</MainInfo>\n </LeftSection>\n\n <ButtonWrapper className=\"user-actions\">\n <UserDropdownButton\n variant=\"tertiary\"\n onClick={() => {\n setDropdownActive(true);\n }}>\n <div tabIndex={-1}>\n <StyledMoreVertical size=\"22px\" color={COLORS.neutral_500} />\n </div>\n </UserDropdownButton>\n {dropdownActive && <ListRowDropdown closeDropdown={() => setDropdownActive(false)} options={dropdownOptions} />}\n </ButtonWrapper>\n </EditRow>\n );\n};\n\nexport default ListRow;\n"],"file":"ListRow.js"}
@@ -390,7 +390,7 @@
390
390
  title: column.shortenText && row[column.key]
391
391
  }, column.isLink && row[column.key] ? /*#__PURE__*/React.createElement(_index3.Button, {
392
392
  size: _types.Size.Small,
393
- variant: "text",
393
+ variant: "tertiary",
394
394
  onClick: event => onLinkClick(row, column.key, event),
395
395
  style: column.colorFn && {
396
396
  color: column.colorFn(row, column.key)
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/Table/Table.tsx"],"names":["Table","showLoadingIndicator","React","tmpFilteredRows","filterAndSortRows","setFilteredRows","setTotal","rowsFrom","currentPage","rowsTo","setFrom","setTo","setCurrentPageRows","pagination","setCurrentPage","setRowsPerPage","row","matchFilterCriteria","column","columns","sortingColumn","setSortedDirection","setSortedColumn","a","b","sortTableColumn","tmpColumn","remotePagination","triggerSortingChange","previousPage","previousPageClick","nextPage","nextPageClick","filteredRows","changeRowsPerPage","value","rowsPerPageChange","parseInt","renderHeader","title","length","COLORS","neutral_600","width","justify","onLinkClick","event","linkClick","onIconClick","iconClick","onRowClick","selectedText","window","rowClick","renderBody","currentPageRows","index","key","color","maxWidth","Size","size","className","renderFooter","rowsPerPageValues","rowsPerPage","total","from","to"],"mappings":"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","sourcesContent":["/**\n * Import React libraries.\n */\nimport * as React from 'react';\n\n/**\n * Import custom components.\n */\nimport { MoreVertical, ChevronRight, ChevronLeft, ArrowLineDown, ArrowLineUp } from '../icons/systemicons/SystemIcons';\nimport { SystemIcons as icons } from '../icons/index';\nimport { DropdownFilter } from '../Dropdown/index';\nimport { IconButton, Button } from '../Button/index';\nimport { Size } from '../types'\n\n/**\n * Import custom styles.\n */\nimport { COLORS } from '../styles';\nimport { TableHeaderRowCol, TableColumnHeaderCol, TableContainer, TableDataCol, TableDataRow, TableFooterCol, TableWrapper, TableLoadingIndicator } from './TableStyles';\n\n/**\n * Import custom types.\n */\nimport { TableProps, TableColumn, TableSortingDirection } from './TableTypes';\nimport { LoadingIndicator } from '../LoadingIndicator';\n\nconst Table: React.FunctionComponent<TableProps> = ({\n rowClick,\n linkClick,\n iconClick,\n previousPageClick,\n nextPageClick,\n rowsPerPageChange,\n triggerSortingChange,\n title,\n columns,\n rows,\n remotePagination,\n pagination,\n showLoadingIndicator,\n}: TableProps) => {\n // States used within the component\n const [rowsPerPage, setRowsPerPage] = React.useState<number>(10);\n const [filteredRows, setFilteredRows] = React.useState<any[]>([]);\n const [currentPageRows, setCurrentPageRows] = React.useState<any[]>([]);\n const [currentPage, setCurrentPage] = React.useState<number>(1);\n const [sortedColumn, setSortedColumn] = React.useState<string>('');\n const [sortedDirection, setSortedDirection] = React.useState<TableSortingDirection>('asc');\n const [from, setFrom] = React.useState<number>();\n const [to, setTo] = React.useState<number>();\n const [total, setTotal] = React.useState<number>();\n\n /**\n * Takes care of local pagination.\n * Works only in case remote pagination is not defined or is set to false.\n */\n React.useEffect(() => {\n if (!remotePagination) {\n // Let's retrieve temporary filtered rows and update globally filtered rows\n const tmpFilteredRows = filterAndSortRows();\n setFilteredRows(tmpFilteredRows);\n setTotal(tmpFilteredRows.length);\n\n // Assign rows from and rows to\n const rowsFrom = (currentPage - 1) * rowsPerPage;\n const rowsTo = rowsFrom + rowsPerPage >= tmpFilteredRows.length ? tmpFilteredRows.length : rowsFrom + rowsPerPage;\n\n // Set from and to values\n setFrom(rowsFrom + 1);\n setTo(rowsTo);\n\n // Filter out the rows\n setCurrentPageRows(tmpFilteredRows.slice(rowsFrom, rowsTo));\n }\n }, [rowsPerPage, rows, currentPage, columns, sortedColumn, sortedDirection, remotePagination]);\n\n /**\n * Takes care of remote pagination.\n * Works only in case remote pagination is set to true.\n */\n React.useEffect(() => {\n if (remotePagination) {\n setCurrentPageRows(rows);\n\n // Let's assign pagination values\n setFrom(pagination?.from);\n setTo(pagination?.to);\n setTotal(pagination?.total);\n setCurrentPage(pagination?.currentPage!);\n setRowsPerPage(pagination?.rowsPerPage!);\n }\n }, [remotePagination, pagination, rows]);\n\n /**\n * Filters out a rows by specific column filters and sorts them if any sorting is set.\n * @returns Filtered and sorted rows.\n */\n const filterAndSortRows = (): any[] => {\n let tmpFilteredRows = rows.filter((row) => {\n // Let's start with matched filter criteria\n let matchFilterCriteria = true;\n\n // Let's go through columns\n for (const column of columns) {\n // Let's check if filter value is specified for the column\n // And if it doesn't match the current row column value\n // Then let's update match filter criteria to failed\n if (column.filterValue && row[column.key].toLowerCase().indexOf(column.filterValue.toLowerCase()) === -1) {\n matchFilterCriteria = false;\n }\n }\n\n // Let's return row only in case match filter criteria succeeds\n if (matchFilterCriteria) {\n return row;\n }\n });\n\n // Let's apply sorting if needed\n if (columns.some((column) => column.sortingDirection)) {\n // Let's find the sorting column\n const sortingColumn = columns.find((column) => column.sortingDirection)!;\n\n // Update sorted column data\n setSortedDirection(sortingColumn.sortingDirection!);\n setSortedColumn(sortingColumn.key!);\n\n // Let's sort the rows\n tmpFilteredRows.sort((a, b) => {\n if (a[sortingColumn.key] > b[sortingColumn.key]) {\n return sortingColumn.sortingDirection === 'asc' ? 1 : -1;\n } else if (a[sortingColumn.key] < b[sortingColumn.key]) {\n return sortingColumn.sortingDirection === 'asc' ? -1 : 1;\n } else {\n return 0;\n }\n });\n }\n\n // Let's return filtered rows\n return tmpFilteredRows;\n };\n\n /**\n * Applies a specific sorting to a column.\n * If no sorting exists, then applies ascending initially\n * @param column - Column to which sorting should be applied.\n */\n const sortTableColumn = (column: TableColumn): void => {\n // Let's remove any active sorting\n columns = columns.map((tmpColumn: TableColumn) => {\n // Let's apply new sorting\n // Let's check if it is the column for which we have to apply sorting\n if (column.key === tmpColumn.key && tmpColumn.sortable) {\n // Let's check if sorting is not defined\n // If so, let's toggle the sorting direction\n if (tmpColumn.sortingDirection !== undefined) {\n if (tmpColumn.sortingDirection === 'asc') {\n tmpColumn.sortingDirection = 'desc';\n\n // Update sorted column and direction\n setSortedColumn(column.key);\n setSortedDirection('desc');\n\n // Let's trigger remote sorting trigger function\n if (remotePagination && triggerSortingChange) {\n triggerSortingChange(column.key, 'desc');\n }\n } else {\n tmpColumn.sortingDirection = 'asc';\n\n // Update sorted column and direction\n setSortedColumn(column.key);\n setSortedDirection('asc');\n\n // Let's trigger remote sorting trigger function\n if (remotePagination && triggerSortingChange) {\n triggerSortingChange(column.key, 'asc');\n }\n }\n } else {\n // Let's apply the initial sorting\n tmpColumn.sortingDirection = 'asc';\n\n // Update sorted column and direction\n setSortedColumn(column.key);\n setSortedDirection('asc');\n\n // Let's trigger remote sorting trigger function\n if (remotePagination && triggerSortingChange) {\n triggerSortingChange(column.key, 'asc');\n }\n }\n } else if (tmpColumn.sortingDirection !== undefined) {\n // Let's remove sorting\n tmpColumn.sortingDirection = undefined;\n }\n\n return tmpColumn;\n });\n };\n\n /**\n * Navigates user back to the previous page and updates the current table page.\n */\n const previousPage = () => {\n if (remotePagination) {\n // Let's inform parent component about page change\n if (previousPageClick) {\n previousPageClick();\n }\n } else {\n // Let's change the page within the component\n setCurrentPage(currentPage > 1 ? currentPage - 1 : 1);\n }\n };\n\n /**\n * Navigates user to the next page and updates the current table page.\n */\n const nextPage = () => {\n if (remotePagination) {\n // Let's inform parent component about page change\n if (nextPageClick) {\n nextPageClick();\n }\n } else {\n // Let's change the page within the component\n setCurrentPage(currentPage * rowsPerPage >= filteredRows.length ? currentPage : currentPage + 1);\n }\n };\n\n /**\n * Updates the rows per page value and refreshes the table content accordingly.\n * @param value - Newly selected rows per page value.\n */\n const changeRowsPerPage = (value: string) => {\n // Let's check if we are using remote pagination\n if (remotePagination) {\n // Inform parent component about rows per page change\n if (rowsPerPageChange) {\n rowsPerPageChange(parseInt(value));\n }\n } else {\n // Let's reset current page to 1\n setCurrentPage(1);\n }\n\n // Let's set rows per page\n setRowsPerPage(parseInt(value));\n };\n\n /**\n * Renders the table header.\n */\n const renderHeader = () => {\n return (\n <thead>\n {title && (\n <tr data-testid=\"TestTableHeaderRow\">\n <TableHeaderRowCol colSpan={columns.length}>\n <div>\n {title}\n <MoreVertical size=\"18px\" color={COLORS.neutral_600} />\n </div>\n </TableHeaderRowCol>\n </tr>\n )}\n <tr data-testid=\"TestTableColumnHeaderRow\">\n {columns.map((column: TableColumn) => (\n <TableColumnHeaderCol\n onClick={() => sortTableColumn(column)}\n key={column.key}\n style={{ width: column.width }}\n className={`${column.sortable ? 'sortable' : ''} ${!title ? 'no-border' : ''} ${column.justify ? `justify-${column.justify}` : ''}`}>\n {column.name}\n\n {column.sortingDirection === 'asc' ? <ArrowLineUp size=\"20px\" /> : column.sortingDirection === 'desc' ? <ArrowLineDown size=\"20px\" /> : ''}\n </TableColumnHeaderCol>\n ))}\n </tr>\n </thead>\n );\n };\n\n /**\n * Function which is called when a mouse click happens on a link to pass data to the parent component.\n * @param row - Row in which the link is located.\n * @param key - Key of the column for which the link is set.\n * @param event - Click event handler.\n */\n const onLinkClick = (row: any, key: string, event: React.MouseEvent) => {\n if (linkClick) {\n event.stopPropagation();\n\n linkClick(row, key);\n }\n };\n\n /**\n * Function which is called when a mouse click happens on an icon to pass data to the parent component.\n * @param row - Row in which the icon is located.\n * @param key - Key of the column for which the icon is set.\n * @param event - Click event handler.\n */\n const onIconClick = (row: any, key: string, event: React.MouseEvent<HTMLButtonElement>) => {\n if (iconClick) {\n event.stopPropagation();\n\n iconClick(row, key);\n }\n };\n\n /**\n * Function which is called when a mouse click happens on a row to pass data to the parent component.\n * @param row - Row in which the link is located.\n */\n const onRowClick = (row: any): void => {\n const selectedText = window?.getSelection()?.toString();\n\n // Let's trigger row click only if we haven't selected any text and action exists\n if (selectedText?.length === 0 && rowClick) {\n rowClick(row);\n }\n };\n\n /**\n * Renders the table body.\n */\n const renderBody = () => {\n return (\n <tbody>\n {currentPageRows.length > 0 ? (\n currentPageRows.map((row: any, index: number) => (\n <TableDataRow key={`row_${index}`} onClick={() => onRowClick(row)} data-testid=\"TestTableDataRow\">\n {columns.map((column: TableColumn) => (\n <TableDataCol\n key={`row_${index}_${column.key}`}\n style={column.colorFn ? { color: column.colorFn(row, column.key), maxWidth: column.width } : { maxWidth: column.width }}\n className={`${column.shortenText && `truncate-text`} ${column.justify ? `justify-${column.justify}` : ''} `}\n title={column.shortenText && row[column.key]}>\n {column.isLink && row[column.key] ? (\n <Button\n size={Size.Small}\n variant=\"text\"\n onClick={(event) => onLinkClick(row, column.key, event)}\n style={column.colorFn && { color: column.colorFn(row, column.key) }}>\n {row[column.key]}\n </Button>\n ) : column.isIcon && column.icon ? (\n <IconButton variant=\"secondary\" shape=\"circular\" useTransparentBackground={true} action={(event) => onIconClick(row, column.key, event!)}>\n {icons[column.icon!]({ size: '24', className: 'icon' })}\n </IconButton>\n ) : column.customContent ? (\n column.customContent(row, column.key)\n ) : (\n row[column.key]\n )}\n </TableDataCol>\n ))}\n </TableDataRow>\n ))\n ) : (\n <TableDataRow className=\"no-rows\" data-testid=\"TestTableNoDataRow\">\n <TableDataCol colSpan={columns.length} className=\"center\">\n There are no rows to display\n </TableDataCol>\n </TableDataRow>\n )}\n </tbody>\n );\n };\n\n /**\n * Renders the table footer.\n */\n const renderFooter = () => {\n // Define local values used within the footer\n const rowsPerPageValues = ['10', '20', '50', '100'];\n\n return (\n <tfoot>\n <tr>\n <TableFooterCol colSpan={columns.length} data-testid=\"TestTableFooterRow\">\n <div>\n <span>Rows per page: </span>\n <DropdownFilter\n id=\"rows-per-page\"\n list={rowsPerPageValues}\n disableSorting={true}\n onSelect={(value) => changeRowsPerPage(value)}\n initalValue={rowsPerPage.toString()}\n isButton={true}\n />\n <span className=\"current-page-info\">\n {total === 0 ? 0 : from}-{to} of {total}\n </span>\n <div className=\"controls\">\n <IconButton variant=\"secondary\" shape=\"circular\" action={() => previousPage()} disabled={from === 1}>\n <ChevronLeft size=\"24\" color={COLORS.neutral_600} />\n </IconButton>\n <IconButton variant=\"secondary\" shape=\"circular\" action={() => nextPage()} disabled={to === total}>\n <ChevronRight size=\"24\" color={COLORS.neutral_600} />\n </IconButton>\n </div>\n </div>\n </TableFooterCol>\n </tr>\n </tfoot>\n );\n };\n\n /**\n * Return Table component.\n */\n return (\n <TableWrapper>\n <TableContainer cellPadding=\"0\" cellSpacing=\"0\" data-testid=\"TestTable\">\n {renderHeader()}\n {renderBody()}\n {renderFooter()}\n </TableContainer>\n {showLoadingIndicator && (\n <TableLoadingIndicator>\n <LoadingIndicator size=\"medium\" color=\"#ffffff\"></LoadingIndicator>\n </TableLoadingIndicator>\n )}\n </TableWrapper>\n );\n};\n\nexport default Table;\n"],"file":"Table.js"}
1
+ {"version":3,"sources":["../../../src/Table/Table.tsx"],"names":["Table","showLoadingIndicator","React","tmpFilteredRows","filterAndSortRows","setFilteredRows","setTotal","rowsFrom","currentPage","rowsTo","setFrom","setTo","setCurrentPageRows","pagination","setCurrentPage","setRowsPerPage","row","matchFilterCriteria","column","columns","sortingColumn","setSortedDirection","setSortedColumn","a","b","sortTableColumn","tmpColumn","remotePagination","triggerSortingChange","previousPage","previousPageClick","nextPage","nextPageClick","filteredRows","changeRowsPerPage","value","rowsPerPageChange","parseInt","renderHeader","title","length","COLORS","neutral_600","width","justify","onLinkClick","event","linkClick","onIconClick","iconClick","onRowClick","selectedText","window","rowClick","renderBody","currentPageRows","index","key","color","maxWidth","Size","size","className","renderFooter","rowsPerPageValues","rowsPerPage","total","from","to"],"mappings":"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","sourcesContent":["/**\n * Import React libraries.\n */\nimport * as React from 'react';\n\n/**\n * Import custom components.\n */\nimport { MoreVertical, ChevronRight, ChevronLeft, ArrowLineDown, ArrowLineUp } from '../icons/systemicons/SystemIcons';\nimport { SystemIcons as icons } from '../icons/index';\nimport { DropdownFilter } from '../Dropdown/index';\nimport { IconButton, Button } from '../Button/index';\nimport { Size } from '../types'\n\n/**\n * Import custom styles.\n */\nimport { COLORS } from '../styles';\nimport { TableHeaderRowCol, TableColumnHeaderCol, TableContainer, TableDataCol, TableDataRow, TableFooterCol, TableWrapper, TableLoadingIndicator } from './TableStyles';\n\n/**\n * Import custom types.\n */\nimport { TableProps, TableColumn, TableSortingDirection } from './TableTypes';\nimport { LoadingIndicator } from '../LoadingIndicator';\n\nconst Table: React.FunctionComponent<TableProps> = ({\n rowClick,\n linkClick,\n iconClick,\n previousPageClick,\n nextPageClick,\n rowsPerPageChange,\n triggerSortingChange,\n title,\n columns,\n rows,\n remotePagination,\n pagination,\n showLoadingIndicator,\n}: TableProps) => {\n // States used within the component\n const [rowsPerPage, setRowsPerPage] = React.useState<number>(10);\n const [filteredRows, setFilteredRows] = React.useState<any[]>([]);\n const [currentPageRows, setCurrentPageRows] = React.useState<any[]>([]);\n const [currentPage, setCurrentPage] = React.useState<number>(1);\n const [sortedColumn, setSortedColumn] = React.useState<string>('');\n const [sortedDirection, setSortedDirection] = React.useState<TableSortingDirection>('asc');\n const [from, setFrom] = React.useState<number>();\n const [to, setTo] = React.useState<number>();\n const [total, setTotal] = React.useState<number>();\n\n /**\n * Takes care of local pagination.\n * Works only in case remote pagination is not defined or is set to false.\n */\n React.useEffect(() => {\n if (!remotePagination) {\n // Let's retrieve temporary filtered rows and update globally filtered rows\n const tmpFilteredRows = filterAndSortRows();\n setFilteredRows(tmpFilteredRows);\n setTotal(tmpFilteredRows.length);\n\n // Assign rows from and rows to\n const rowsFrom = (currentPage - 1) * rowsPerPage;\n const rowsTo = rowsFrom + rowsPerPage >= tmpFilteredRows.length ? tmpFilteredRows.length : rowsFrom + rowsPerPage;\n\n // Set from and to values\n setFrom(rowsFrom + 1);\n setTo(rowsTo);\n\n // Filter out the rows\n setCurrentPageRows(tmpFilteredRows.slice(rowsFrom, rowsTo));\n }\n }, [rowsPerPage, rows, currentPage, columns, sortedColumn, sortedDirection, remotePagination]);\n\n /**\n * Takes care of remote pagination.\n * Works only in case remote pagination is set to true.\n */\n React.useEffect(() => {\n if (remotePagination) {\n setCurrentPageRows(rows);\n\n // Let's assign pagination values\n setFrom(pagination?.from);\n setTo(pagination?.to);\n setTotal(pagination?.total);\n setCurrentPage(pagination?.currentPage!);\n setRowsPerPage(pagination?.rowsPerPage!);\n }\n }, [remotePagination, pagination, rows]);\n\n /**\n * Filters out a rows by specific column filters and sorts them if any sorting is set.\n * @returns Filtered and sorted rows.\n */\n const filterAndSortRows = (): any[] => {\n let tmpFilteredRows = rows.filter((row) => {\n // Let's start with matched filter criteria\n let matchFilterCriteria = true;\n\n // Let's go through columns\n for (const column of columns) {\n // Let's check if filter value is specified for the column\n // And if it doesn't match the current row column value\n // Then let's update match filter criteria to failed\n if (column.filterValue && row[column.key].toLowerCase().indexOf(column.filterValue.toLowerCase()) === -1) {\n matchFilterCriteria = false;\n }\n }\n\n // Let's return row only in case match filter criteria succeeds\n if (matchFilterCriteria) {\n return row;\n }\n });\n\n // Let's apply sorting if needed\n if (columns.some((column) => column.sortingDirection)) {\n // Let's find the sorting column\n const sortingColumn = columns.find((column) => column.sortingDirection)!;\n\n // Update sorted column data\n setSortedDirection(sortingColumn.sortingDirection!);\n setSortedColumn(sortingColumn.key!);\n\n // Let's sort the rows\n tmpFilteredRows.sort((a, b) => {\n if (a[sortingColumn.key] > b[sortingColumn.key]) {\n return sortingColumn.sortingDirection === 'asc' ? 1 : -1;\n } else if (a[sortingColumn.key] < b[sortingColumn.key]) {\n return sortingColumn.sortingDirection === 'asc' ? -1 : 1;\n } else {\n return 0;\n }\n });\n }\n\n // Let's return filtered rows\n return tmpFilteredRows;\n };\n\n /**\n * Applies a specific sorting to a column.\n * If no sorting exists, then applies ascending initially\n * @param column - Column to which sorting should be applied.\n */\n const sortTableColumn = (column: TableColumn): void => {\n // Let's remove any active sorting\n columns = columns.map((tmpColumn: TableColumn) => {\n // Let's apply new sorting\n // Let's check if it is the column for which we have to apply sorting\n if (column.key === tmpColumn.key && tmpColumn.sortable) {\n // Let's check if sorting is not defined\n // If so, let's toggle the sorting direction\n if (tmpColumn.sortingDirection !== undefined) {\n if (tmpColumn.sortingDirection === 'asc') {\n tmpColumn.sortingDirection = 'desc';\n\n // Update sorted column and direction\n setSortedColumn(column.key);\n setSortedDirection('desc');\n\n // Let's trigger remote sorting trigger function\n if (remotePagination && triggerSortingChange) {\n triggerSortingChange(column.key, 'desc');\n }\n } else {\n tmpColumn.sortingDirection = 'asc';\n\n // Update sorted column and direction\n setSortedColumn(column.key);\n setSortedDirection('asc');\n\n // Let's trigger remote sorting trigger function\n if (remotePagination && triggerSortingChange) {\n triggerSortingChange(column.key, 'asc');\n }\n }\n } else {\n // Let's apply the initial sorting\n tmpColumn.sortingDirection = 'asc';\n\n // Update sorted column and direction\n setSortedColumn(column.key);\n setSortedDirection('asc');\n\n // Let's trigger remote sorting trigger function\n if (remotePagination && triggerSortingChange) {\n triggerSortingChange(column.key, 'asc');\n }\n }\n } else if (tmpColumn.sortingDirection !== undefined) {\n // Let's remove sorting\n tmpColumn.sortingDirection = undefined;\n }\n\n return tmpColumn;\n });\n };\n\n /**\n * Navigates user back to the previous page and updates the current table page.\n */\n const previousPage = () => {\n if (remotePagination) {\n // Let's inform parent component about page change\n if (previousPageClick) {\n previousPageClick();\n }\n } else {\n // Let's change the page within the component\n setCurrentPage(currentPage > 1 ? currentPage - 1 : 1);\n }\n };\n\n /**\n * Navigates user to the next page and updates the current table page.\n */\n const nextPage = () => {\n if (remotePagination) {\n // Let's inform parent component about page change\n if (nextPageClick) {\n nextPageClick();\n }\n } else {\n // Let's change the page within the component\n setCurrentPage(currentPage * rowsPerPage >= filteredRows.length ? currentPage : currentPage + 1);\n }\n };\n\n /**\n * Updates the rows per page value and refreshes the table content accordingly.\n * @param value - Newly selected rows per page value.\n */\n const changeRowsPerPage = (value: string) => {\n // Let's check if we are using remote pagination\n if (remotePagination) {\n // Inform parent component about rows per page change\n if (rowsPerPageChange) {\n rowsPerPageChange(parseInt(value));\n }\n } else {\n // Let's reset current page to 1\n setCurrentPage(1);\n }\n\n // Let's set rows per page\n setRowsPerPage(parseInt(value));\n };\n\n /**\n * Renders the table header.\n */\n const renderHeader = () => {\n return (\n <thead>\n {title && (\n <tr data-testid=\"TestTableHeaderRow\">\n <TableHeaderRowCol colSpan={columns.length}>\n <div>\n {title}\n <MoreVertical size=\"18px\" color={COLORS.neutral_600} />\n </div>\n </TableHeaderRowCol>\n </tr>\n )}\n <tr data-testid=\"TestTableColumnHeaderRow\">\n {columns.map((column: TableColumn) => (\n <TableColumnHeaderCol\n onClick={() => sortTableColumn(column)}\n key={column.key}\n style={{ width: column.width }}\n className={`${column.sortable ? 'sortable' : ''} ${!title ? 'no-border' : ''} ${column.justify ? `justify-${column.justify}` : ''}`}>\n {column.name}\n\n {column.sortingDirection === 'asc' ? <ArrowLineUp size=\"20px\" /> : column.sortingDirection === 'desc' ? <ArrowLineDown size=\"20px\" /> : ''}\n </TableColumnHeaderCol>\n ))}\n </tr>\n </thead>\n );\n };\n\n /**\n * Function which is called when a mouse click happens on a link to pass data to the parent component.\n * @param row - Row in which the link is located.\n * @param key - Key of the column for which the link is set.\n * @param event - Click event handler.\n */\n const onLinkClick = (row: any, key: string, event: React.MouseEvent) => {\n if (linkClick) {\n event.stopPropagation();\n\n linkClick(row, key);\n }\n };\n\n /**\n * Function which is called when a mouse click happens on an icon to pass data to the parent component.\n * @param row - Row in which the icon is located.\n * @param key - Key of the column for which the icon is set.\n * @param event - Click event handler.\n */\n const onIconClick = (row: any, key: string, event: React.MouseEvent<HTMLButtonElement>) => {\n if (iconClick) {\n event.stopPropagation();\n\n iconClick(row, key);\n }\n };\n\n /**\n * Function which is called when a mouse click happens on a row to pass data to the parent component.\n * @param row - Row in which the link is located.\n */\n const onRowClick = (row: any): void => {\n const selectedText = window?.getSelection()?.toString();\n\n // Let's trigger row click only if we haven't selected any text and action exists\n if (selectedText?.length === 0 && rowClick) {\n rowClick(row);\n }\n };\n\n /**\n * Renders the table body.\n */\n const renderBody = () => {\n return (\n <tbody>\n {currentPageRows.length > 0 ? (\n currentPageRows.map((row: any, index: number) => (\n <TableDataRow key={`row_${index}`} onClick={() => onRowClick(row)} data-testid=\"TestTableDataRow\">\n {columns.map((column: TableColumn) => (\n <TableDataCol\n key={`row_${index}_${column.key}`}\n style={column.colorFn ? { color: column.colorFn(row, column.key), maxWidth: column.width } : { maxWidth: column.width }}\n className={`${column.shortenText && `truncate-text`} ${column.justify ? `justify-${column.justify}` : ''} `}\n title={column.shortenText && row[column.key]}>\n {column.isLink && row[column.key] ? (\n <Button\n size={Size.Small}\n variant=\"tertiary\"\n onClick={(event) => onLinkClick(row, column.key, event)}\n style={column.colorFn && { color: column.colorFn(row, column.key) }}>\n {row[column.key]}\n </Button>\n ) : column.isIcon && column.icon ? (\n <IconButton variant=\"secondary\" shape=\"circular\" useTransparentBackground={true} action={(event) => onIconClick(row, column.key, event!)}>\n {icons[column.icon!]({ size: '24', className: 'icon' })}\n </IconButton>\n ) : column.customContent ? (\n column.customContent(row, column.key)\n ) : (\n row[column.key]\n )}\n </TableDataCol>\n ))}\n </TableDataRow>\n ))\n ) : (\n <TableDataRow className=\"no-rows\" data-testid=\"TestTableNoDataRow\">\n <TableDataCol colSpan={columns.length} className=\"center\">\n There are no rows to display\n </TableDataCol>\n </TableDataRow>\n )}\n </tbody>\n );\n };\n\n /**\n * Renders the table footer.\n */\n const renderFooter = () => {\n // Define local values used within the footer\n const rowsPerPageValues = ['10', '20', '50', '100'];\n\n return (\n <tfoot>\n <tr>\n <TableFooterCol colSpan={columns.length} data-testid=\"TestTableFooterRow\">\n <div>\n <span>Rows per page: </span>\n <DropdownFilter\n id=\"rows-per-page\"\n list={rowsPerPageValues}\n disableSorting={true}\n onSelect={(value) => changeRowsPerPage(value)}\n initalValue={rowsPerPage.toString()}\n isButton={true}\n />\n <span className=\"current-page-info\">\n {total === 0 ? 0 : from}-{to} of {total}\n </span>\n <div className=\"controls\">\n <IconButton variant=\"secondary\" shape=\"circular\" action={() => previousPage()} disabled={from === 1}>\n <ChevronLeft size=\"24\" color={COLORS.neutral_600} />\n </IconButton>\n <IconButton variant=\"secondary\" shape=\"circular\" action={() => nextPage()} disabled={to === total}>\n <ChevronRight size=\"24\" color={COLORS.neutral_600} />\n </IconButton>\n </div>\n </div>\n </TableFooterCol>\n </tr>\n </tfoot>\n );\n };\n\n /**\n * Return Table component.\n */\n return (\n <TableWrapper>\n <TableContainer cellPadding=\"0\" cellSpacing=\"0\" data-testid=\"TestTable\">\n {renderHeader()}\n {renderBody()}\n {renderFooter()}\n </TableContainer>\n {showLoadingIndicator && (\n <TableLoadingIndicator>\n <LoadingIndicator size=\"medium\" color=\"#ffffff\"></LoadingIndicator>\n </TableLoadingIndicator>\n )}\n </TableWrapper>\n );\n};\n\nexport default Table;\n"],"file":"Table.js"}
package/dist/umd/types.js CHANGED
@@ -19,6 +19,7 @@
19
19
  let Size = exports.Size = undefined;
20
20
 
21
21
  (function (Size) {
22
+ Size["XSmall"] = "xsmall";
22
23
  Size["Small"] = "small";
23
24
  Size["Medium"] = "medium";
24
25
  Size["Large"] = "large";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/types.ts"],"names":["Size","ToastColor","ToastActionType","ToastPosition","ToastEntryDirection"],"mappings":";;;;;;;;;;;;;;;;;;AAOA,MAAYA,IAAZ,WAAYA,IAAZ,YAAA;;aAAYA,I;AAAAA,IAAAA,I,SAAAA,G,OAAAA;AAAAA,IAAAA,I,UAAAA,G,QAAAA;AAAAA,IAAAA,I,SAAAA,G,OAAAA;KAAAA,I,aAAAA,I,GAAAA,I;;AA6BZ,MAAYC,UAAZ,WAAYA,UAAZ,YAAA;;aAAYA,U;AAAAA,IAAAA,U,CAAAA,U,SAAAA,G,EAAAA,G,OAAAA;AAAAA,IAAAA,U,CAAAA,U,SAAAA,G,EAAAA,G,OAAAA;AAAAA,IAAAA,U,CAAAA,U,QAAAA,G,EAAAA,G,MAAAA;AAAAA,IAAAA,U,CAAAA,U,SAAAA,G,EAAAA,G,OAAAA;AAAAA,IAAAA,U,CAAAA,U,UAAAA,G,EAAAA,G,QAAAA;AAAAA,IAAAA,U,CAAAA,U,OAAAA,G,EAAAA,G,KAAAA;KAAAA,U,aAAAA,U,GAAAA,U;;AASZ,MAAYC,eAAZ,WAAYA,eAAZ,YAAA;;aAAYA,e;AAAAA,IAAAA,e,CAAAA,e,WAAAA,G,EAAAA,G,SAAAA;AAAAA,IAAAA,e,CAAAA,e,aAAAA,G,EAAAA,G,WAAAA;KAAAA,e,aAAAA,e,GAAAA,e;;AAKZ,MAAYC,aAAZ,WAAYA,aAAZ,YAAA;;aAAYA,a;AAAAA,IAAAA,a,CAAAA,a,WAAAA,G,EAAAA,G,SAAAA;AAAAA,IAAAA,a,CAAAA,a,aAAAA,G,EAAAA,G,WAAAA;AAAAA,IAAAA,a,CAAAA,a,YAAAA,G,EAAAA,G,UAAAA;AAAAA,IAAAA,a,CAAAA,a,cAAAA,G,EAAAA,G,YAAAA;AAAAA,IAAAA,a,CAAAA,a,gBAAAA,G,EAAAA,G,cAAAA;AAAAA,IAAAA,a,CAAAA,a,eAAAA,G,EAAAA,G,aAAAA;KAAAA,a,aAAAA,a,GAAAA,a;;AASZ,MAAYC,mBAAZ,WAAYA,mBAAZ,YAAA;;aAAYA,mB;AAAAA,IAAAA,mB,CAAAA,mB,OAAAA,G,EAAAA,G,KAAAA;AAAAA,IAAAA,mB,CAAAA,mB,UAAAA,G,EAAAA,G,QAAAA;AAAAA,IAAAA,mB,CAAAA,mB,QAAAA,G,EAAAA,G,MAAAA;AAAAA,IAAAA,mB,CAAAA,mB,SAAAA,G,EAAAA,G,OAAAA;KAAAA,mB,aAAAA,mB,GAAAA,mB","sourcesContent":["export interface Product {\n id: string;\n name: string;\n type: string;\n image: string;\n}\n\nexport enum Size {\n Small = 'small',\n Medium = 'medium',\n Large = 'large'\n}\n\nexport interface NavOption {\n label: string;\n to: string;\n disabled?: boolean;\n exact?: boolean;\n onClick?: () => void;\n}\n\nexport interface NavButton {\n label: string;\n action: any;\n disabled?: boolean;\n}\n\nexport interface ActionOptions {\n search?: () => void;\n apps?: () => void;\n language?: () => void;\n notification?: () => void;\n settings?: () => void;\n user?: () => void;\n}\n\nexport enum ToastColor {\n BLACK,\n WHITE,\n BLUE,\n GREEN,\n ORANGE,\n RED,\n}\n\nexport enum ToastActionType{\n PRIMARY,\n SECONDARY\n}\n\nexport enum ToastPosition {\n TOPLEFT,\n TOPMIDDLE,\n TOPRIGHT,\n BOTTOMLEFT,\n BOTTOMMIDDLE,\n BOTTOMRIGHT,\n}\n\nexport enum ToastEntryDirection{\n TOP,\n BOTTOM,\n LEFT,\n RIGHT\n}\n\nexport interface SwitcherNavItem {\n label: string;\n url: string;\n disabled?: boolean;\n Icon?: any;\n as?: any;\n testId?: string;\n}\n\nexport interface UserMenuItem {\n label: string;\n to: string;\n icon: any;\n isExternal?: boolean;\n onClick?: () => void;\n}\n\nexport interface ListRowDropdownOption {\n key?: string;\n label: string;\n action: any;\n}\n\nexport interface NavLink {\n label: string;\n to: string;\n target?: string;\n}\n\nexport interface NavSection {\n header: string;\n links: NavLink[];\n}\n\nexport interface NavOptions {\n sections: NavSection[];\n}\n"],"file":"types.js"}
1
+ {"version":3,"sources":["../../src/types.ts"],"names":["Size","ToastColor","ToastActionType","ToastPosition","ToastEntryDirection"],"mappings":";;;;;;;;;;;;;;;;;;AAOA,MAAYA,IAAZ,WAAYA,IAAZ,YAAA;;aAAYA,I;AAAAA,IAAAA,I,UAAAA,G,QAAAA;AAAAA,IAAAA,I,SAAAA,G,OAAAA;AAAAA,IAAAA,I,UAAAA,G,QAAAA;AAAAA,IAAAA,I,SAAAA,G,OAAAA;KAAAA,I,aAAAA,I,GAAAA,I;;AA8BZ,MAAYC,UAAZ,WAAYA,UAAZ,YAAA;;aAAYA,U;AAAAA,IAAAA,U,CAAAA,U,SAAAA,G,EAAAA,G,OAAAA;AAAAA,IAAAA,U,CAAAA,U,SAAAA,G,EAAAA,G,OAAAA;AAAAA,IAAAA,U,CAAAA,U,QAAAA,G,EAAAA,G,MAAAA;AAAAA,IAAAA,U,CAAAA,U,SAAAA,G,EAAAA,G,OAAAA;AAAAA,IAAAA,U,CAAAA,U,UAAAA,G,EAAAA,G,QAAAA;AAAAA,IAAAA,U,CAAAA,U,OAAAA,G,EAAAA,G,KAAAA;KAAAA,U,aAAAA,U,GAAAA,U;;AASZ,MAAYC,eAAZ,WAAYA,eAAZ,YAAA;;aAAYA,e;AAAAA,IAAAA,e,CAAAA,e,WAAAA,G,EAAAA,G,SAAAA;AAAAA,IAAAA,e,CAAAA,e,aAAAA,G,EAAAA,G,WAAAA;KAAAA,e,aAAAA,e,GAAAA,e;;AAKZ,MAAYC,aAAZ,WAAYA,aAAZ,YAAA;;aAAYA,a;AAAAA,IAAAA,a,CAAAA,a,WAAAA,G,EAAAA,G,SAAAA;AAAAA,IAAAA,a,CAAAA,a,aAAAA,G,EAAAA,G,WAAAA;AAAAA,IAAAA,a,CAAAA,a,YAAAA,G,EAAAA,G,UAAAA;AAAAA,IAAAA,a,CAAAA,a,cAAAA,G,EAAAA,G,YAAAA;AAAAA,IAAAA,a,CAAAA,a,gBAAAA,G,EAAAA,G,cAAAA;AAAAA,IAAAA,a,CAAAA,a,eAAAA,G,EAAAA,G,aAAAA;KAAAA,a,aAAAA,a,GAAAA,a;;AASZ,MAAYC,mBAAZ,WAAYA,mBAAZ,YAAA;;aAAYA,mB;AAAAA,IAAAA,mB,CAAAA,mB,OAAAA,G,EAAAA,G,KAAAA;AAAAA,IAAAA,mB,CAAAA,mB,UAAAA,G,EAAAA,G,QAAAA;AAAAA,IAAAA,mB,CAAAA,mB,QAAAA,G,EAAAA,G,MAAAA;AAAAA,IAAAA,mB,CAAAA,mB,SAAAA,G,EAAAA,G,OAAAA;KAAAA,mB,aAAAA,mB,GAAAA,mB","sourcesContent":["export interface Product {\n id: string;\n name: string;\n type: string;\n image: string;\n}\n\nexport enum Size {\n XSmall = 'xsmall',\n Small = 'small',\n Medium = 'medium',\n Large = 'large'\n}\n\nexport interface NavOption {\n label: string;\n to: string;\n disabled?: boolean;\n exact?: boolean;\n onClick?: () => void;\n}\n\nexport interface NavButton {\n label: string;\n action: any;\n disabled?: boolean;\n}\n\nexport interface ActionOptions {\n search?: () => void;\n apps?: () => void;\n language?: () => void;\n notification?: () => void;\n settings?: () => void;\n user?: () => void;\n}\n\nexport enum ToastColor {\n BLACK,\n WHITE,\n BLUE,\n GREEN,\n ORANGE,\n RED,\n}\n\nexport enum ToastActionType{\n PRIMARY,\n SECONDARY\n}\n\nexport enum ToastPosition {\n TOPLEFT,\n TOPMIDDLE,\n TOPRIGHT,\n BOTTOMLEFT,\n BOTTOMMIDDLE,\n BOTTOMRIGHT,\n}\n\nexport enum ToastEntryDirection{\n TOP,\n BOTTOM,\n LEFT,\n RIGHT\n}\n\nexport interface SwitcherNavItem {\n label: string;\n url: string;\n disabled?: boolean;\n Icon?: any;\n as?: any;\n testId?: string;\n}\n\nexport interface UserMenuItem {\n label: string;\n to: string;\n icon: any;\n isExternal?: boolean;\n onClick?: () => void;\n}\n\nexport interface ListRowDropdownOption {\n key?: string;\n label: string;\n action: any;\n}\n\nexport interface NavLink {\n label: string;\n to: string;\n target?: string;\n}\n\nexport interface NavSection {\n header: string;\n links: NavLink[];\n}\n\nexport interface NavOptions {\n sections: NavSection[];\n}\n"],"file":"types.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@laerdal/life-react-components",
3
- "version": "1.1.2-dev.11",
3
+ "version": "1.1.2-dev.15",
4
4
  "private": false,
5
5
  "author": "Thomas Kalve <thomas.kalve@laerdal.com>",
6
6
  "contributors": [
@@ -1,76 +0,0 @@
1
- import _pt from "prop-types";
2
- const _excluded = ["children", "size", "href", "target"];
3
-
4
- function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
5
-
6
- function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
7
-
8
- function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
9
-
10
- import * as React from 'react';
11
- import styled from 'styled-components';
12
- import { COLORS } from '../styles';
13
-
14
- const Anchor = _ref => {
15
- let {
16
- children,
17
- size = 'small',
18
- href = '#',
19
- target = '_blank'
20
- } = _ref,
21
- props = _objectWithoutProperties(_ref, _excluded);
22
-
23
- return /*#__PURE__*/React.createElement(AnchorTag, _extends({
24
- size: size,
25
- href: href,
26
- target: target
27
- }, props), children);
28
- };
29
-
30
- Anchor.propTypes = {
31
- size: _pt.oneOf(['small', 'medium', 'large', 'xsmall', 'xlarge']).isRequired,
32
- href: _pt.string
33
- };
34
- const AnchorTag = styled.a`
35
- color: ${COLORS.primary_500};
36
- background-color: transparent;
37
- padding: 0;
38
- border: none;
39
- max-width:max-content;
40
- text-decoration: none;
41
- font-size: ${props => props.size === 'large' ? '20px' : props.size === 'small' ? '16px' : props.size === 'xsmall' ? '14px' : props.size === 'xlarge' ? '24px' : '18px'};
42
- line-height: ${props => props.size === 'large' ? '32px' : props.size === 'small' ? '24px' : props.size === 'xsmall' ? '20px' : props.size === 'xlarge' ? '36px' : '28px'};
43
- font-weight: bold;
44
- font-family: inherit;
45
- cursor: pointer;
46
- outline:none;
47
- &:visited,
48
- &.vistied-state {
49
- color: ${COLORS.accent1_500};
50
- background: transparent;
51
- text-decoration: none;
52
- }
53
- &:hover,
54
- &.hover-state {
55
- color: ${COLORS.primary_600};
56
- text-decoration: underline;
57
- }
58
- &:focus,
59
- &.focus-state {
60
- background-color: ${COLORS.white};
61
- text-decoration: underline;
62
- box-shadow: 0px 4px 12px ${COLORS.focus_25}, 0px 0px 8px ${COLORS.focus} !important;
63
- outline:none;
64
- color: ${COLORS.primary_500};
65
- }
66
- &:active,
67
- &.active-state {
68
- color: ${COLORS.primary_700};
69
- background: transparent;
70
- text-decoration: underline;
71
- background-color:unset !important;
72
- box-shadow: unset !important;
73
- }
74
- `;
75
- export default Anchor;
76
- //# sourceMappingURL=Anchor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/Button/Anchor.tsx"],"names":["React","styled","COLORS","Anchor","children","size","href","target","props","AnchorTag","a","primary_500","accent1_500","primary_600","white","focus_25","focus","primary_700"],"mappings":";;;;;;;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,OAAOC,MAAP,MAAmB,mBAAnB;AACA,SAAQC,MAAR,QAAqB,WAArB;;AAOA,MAAMC,MAA4C,GAAG,QAAuE;AAAA,MAAtE;AAAEC,IAAAA,QAAF;AAAYC,IAAAA,IAAI,GAAG,OAAnB;AAA4BC,IAAAA,IAAI,GAAC,GAAjC;AAAsCC,IAAAA,MAAM,GAAC;AAA7C,GAAsE;AAAA,MAAXC,KAAW;;AAC1H,sBACI,oBAAC,SAAD;AAAW,IAAA,IAAI,EAAEH,IAAjB;AAAuB,IAAA,IAAI,EAAEC,IAA7B;AAAmC,IAAA,MAAM,EAAEC;AAA3C,KAAuDC,KAAvD,GACKJ,QADL,CADJ;AAKD,CAND;;;AAJIC,EAAAA,I,aAAO,O,EAAU,Q,EAAW,O,EAAU,Q,EAAW,Q;AACjDC,EAAAA,I;;AAWJ,MAAMG,SAAS,GAAGR,MAAM,CAACS,CAAe;AACxC,WAAWR,MAAM,CAACS,WAAY;AAC9B;AACA;AACA;AACA;AACA;AACA,eAAeH,KAAK,IAAKA,KAAK,CAACH,IAAN,KAAe,OAAf,GAAyB,MAAzB,GAAkCG,KAAK,CAACH,IAAN,KAAe,OAAf,GAAyB,MAAzB,GAAkCG,KAAK,CAACH,IAAN,KAAe,QAAf,GAA0B,MAA1B,GAAmCG,KAAK,CAACH,IAAN,KAAe,QAAf,GAA0B,MAA1B,GAAmC,MAAQ;AAC3K,iBAAiBG,KAAK,IAAKA,KAAK,CAACH,IAAN,KAAe,OAAf,GAAyB,MAAzB,GAAkCG,KAAK,CAACH,IAAN,KAAe,OAAf,GAAyB,MAAzB,GAAkCG,KAAK,CAACH,IAAN,KAAe,QAAf,GAA0B,MAA1B,GAAmCG,KAAK,CAACH,IAAN,KAAe,QAAf,GAA0B,MAA1B,GAAmC,MAAQ;AAC7K;AACA;AACA;AACA;AACA;AACA;AACA,aAAcH,MAAM,CAACU,WAAa;AAClC;AACA;AACA;AACA;AACA;AACA,aAAaV,MAAM,CAACW,WAAY;AAChC;AACA;AACA;AACA;AACA,wBAAwBX,MAAM,CAACY,KAAM;AACrC;AACA,+BAA+BZ,MAAM,CAACa,QAAS,iBAAgBb,MAAM,CAACc,KAAM;AAC5E;AACA,aAAad,MAAM,CAACS,WAAY;AAChC;AACA;AACA;AACA,aAAcT,MAAM,CAACe,WAAa;AAClC;AACA;AACA;AACA;AACA;AACA,CAxCA;AA0CA,eAAed,MAAf","sourcesContent":["import * as React from 'react';\nimport styled from 'styled-components';\nimport {COLORS} from '../styles';\n\ninterface AnchorProps extends React.AnchorHTMLAttributes<HTMLAnchorElement>{\n size : 'small' | 'medium' | 'large' | 'xsmall' | 'xlarge';\n href?: string;\n}\n\nconst Anchor: React.FunctionComponent<AnchorProps> = ({ children, size = 'small', href='#', target='_blank' , ...props}) => {\n return (\n <AnchorTag size={size} href={href} target={target} {...props}>\n {children}\n </AnchorTag>\n )\n}\n\nconst AnchorTag = styled.a<AnchorProps>`\n color: ${COLORS.primary_500};\n background-color: transparent;\n padding: 0;\n border: none;\n max-width:max-content; \n text-decoration: none;\n font-size: ${props => (props.size === 'large' ? '20px' : props.size === 'small' ? '16px' : props.size === 'xsmall' ? '14px' : props.size === 'xlarge' ? '24px' : '18px')};\n line-height: ${props => (props.size === 'large' ? '32px' : props.size === 'small' ? '24px' : props.size === 'xsmall' ? '20px' : props.size === 'xlarge' ? '36px' : '28px')};\n font-weight: bold;\n font-family: inherit;\n cursor: pointer;\n outline:none;\n &:visited,\n &.vistied-state {\n color: ${ COLORS.accent1_500 };\n background: transparent;\n text-decoration: none;\n }\n &:hover, \n &.hover-state {\n color: ${COLORS.primary_600};\n text-decoration: underline;\n }\n &:focus,\n &.focus-state {\n background-color: ${COLORS.white};\n text-decoration: underline;\n box-shadow: 0px 4px 12px ${COLORS.focus_25}, 0px 0px 8px ${COLORS.focus} !important;\n outline:none;\n color: ${COLORS.primary_500};\n }\n &:active,\n &.active-state {\n color: ${ COLORS.primary_700 };\n background: transparent;\n text-decoration: underline;\n background-color:unset !important;\n box-shadow: unset !important;\n } \n`;\n\nexport default Anchor;"],"file":"Anchor.js"}
@@ -1,7 +0,0 @@
1
- import * as React from 'react';
2
- interface AnchorProps extends React.AnchorHTMLAttributes<HTMLAnchorElement> {
3
- size: 'small' | 'medium' | 'large' | 'xsmall' | 'xlarge';
4
- href?: string;
5
- }
6
- declare const Anchor: React.FunctionComponent<AnchorProps>;
7
- export default Anchor;