linear-react-components-ui 1.1.26-beta.20 → 1.1.26-beta.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/assets/styles/datepicker2.css +1 -1
- package/lib/assets/styles/dialog.css +1 -1
- package/lib/assets/styles/drawers.css +1 -1
- package/lib/assets/styles/gridlayout.css +1 -1
- package/lib/assets/styles/selectfield.css +1 -1
- package/lib/assets/styles/textfield.css +1 -1
- package/lib/assets/styles/tooltip.css +1 -1
- package/lib/dialog/base/index.js +53 -55
- package/lib/dialog/base/index.js.map +1 -1
- package/lib/dialog/form/index.js +56 -55
- package/lib/dialog/form/index.js.map +1 -1
- package/lib/drawer/Drawer.js +7 -7
- package/lib/drawer/Drawer.js.map +1 -1
- package/lib/drawer/index.js +1 -1
- package/lib/drawer/index.js.map +1 -1
- package/lib/form2/types.d.ts +9 -4
- package/lib/form2/useForm/index.js +96 -89
- package/lib/form2/useForm/index.js.map +1 -1
- package/lib/icons/helper.d.ts +12 -0
- package/lib/icons/helper.js +12 -0
- package/lib/icons/helper.js.map +1 -1
- package/lib/inputs/date/index.js +59 -61
- package/lib/inputs/date/index.js.map +1 -1
- package/lib/inputs2/checkboxfield/base.d.ts +27 -0
- package/lib/inputs2/checkboxfield/base.js +100 -0
- package/lib/inputs2/checkboxfield/base.js.map +1 -0
- package/lib/inputs2/checkboxfield/index.d.ts +4 -25
- package/lib/inputs2/checkboxfield/index.js +41 -108
- package/lib/inputs2/checkboxfield/index.js.map +1 -1
- package/lib/inputs2/date/base/index.js +1 -1
- package/lib/inputs2/date/base/index.js.map +1 -1
- package/lib/inputs2/date/datefield/base.d.ts +3 -0
- package/lib/inputs2/date/datefield/base.js +193 -0
- package/lib/inputs2/date/datefield/base.js.map +1 -0
- package/lib/inputs2/date/datefield/calendarbox.js +26 -26
- package/lib/inputs2/date/datefield/calendarbox.js.map +1 -1
- package/lib/inputs2/date/datefield/index.d.ts +2 -1
- package/lib/inputs2/date/datefield/index.js +42 -312
- package/lib/inputs2/date/datefield/index.js.map +1 -1
- package/lib/inputs2/date/datefield/types.d.ts +6 -4
- package/lib/inputs2/date/dateperiodfield/base.d.ts +3 -0
- package/lib/inputs2/date/dateperiodfield/base.js +511 -0
- package/lib/inputs2/date/dateperiodfield/base.js.map +1 -0
- package/lib/inputs2/date/dateperiodfield/calendarbox.js +55 -55
- package/lib/inputs2/date/dateperiodfield/calendarbox.js.map +1 -1
- package/lib/inputs2/date/dateperiodfield/index.d.ts +2 -1
- package/lib/inputs2/date/dateperiodfield/index.js +42 -517
- package/lib/inputs2/date/dateperiodfield/index.js.map +1 -1
- package/lib/inputs2/date/dateperiodfield/types.d.ts +6 -4
- package/lib/inputs2/numberfield/index.js +85 -68
- package/lib/inputs2/numberfield/index.js.map +1 -1
- package/lib/inputs2/radiofield/base.d.ts +3 -0
- package/lib/inputs2/radiofield/base.js +115 -0
- package/lib/inputs2/radiofield/base.js.map +1 -0
- package/lib/inputs2/radiofield/index.d.ts +2 -1
- package/lib/inputs2/radiofield/index.js +41 -108
- package/lib/inputs2/radiofield/index.js.map +1 -1
- package/lib/inputs2/radiofield/types.d.ts +5 -2
- package/lib/inputs2/selectfield/base.d.ts +3 -0
- package/lib/inputs2/selectfield/base.js +411 -0
- package/lib/inputs2/selectfield/base.js.map +1 -0
- package/lib/inputs2/selectfield/index.d.ts +2 -1
- package/lib/inputs2/selectfield/index.js +49 -402
- package/lib/inputs2/selectfield/index.js.map +1 -1
- package/lib/inputs2/selectfield/listbox.js +25 -31
- package/lib/inputs2/selectfield/listbox.js.map +1 -1
- package/lib/inputs2/selectfield/types.d.ts +8 -6
- package/lib/inputs2/selectfield/types.js.map +1 -1
- package/lib/inputs2/textareafield/base.d.ts +23 -0
- package/lib/inputs2/textareafield/base.js +137 -0
- package/lib/inputs2/textareafield/base.js.map +1 -0
- package/lib/inputs2/textareafield/index.d.ts +4 -22
- package/lib/inputs2/textareafield/index.js +45 -130
- package/lib/inputs2/textareafield/index.js.map +1 -1
- package/lib/inputs2/textfield/base.d.ts +23 -0
- package/lib/inputs2/textfield/base.js +107 -0
- package/lib/inputs2/textfield/base.js.map +1 -0
- package/lib/inputs2/textfield/index.d.ts +4 -22
- package/lib/inputs2/textfield/index.js +45 -103
- package/lib/inputs2/textfield/index.js.map +1 -1
- package/lib/tooltip/types.d.ts +4 -1
- package/lib/tooltip/useTooltip.js +68 -86
- package/lib/tooltip/useTooltip.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/lib/inputs2/textfield/index.tsx"],"sourcesContent":["import '../../assets/styles/textfield.scss';\n\nimport { ComponentPropsWithoutRef, forwardRef, Fragment, useRef } from 'react';\nimport _ from 'lodash';\nimport GridCol from '../../gridlayout';\nimport Popover, { PopoverText } from '../../popover';\nimport type { TextAlign } from '../../@types/Align';\nimport type { ColorTheme } from '../../@types/ColorStyles';\nimport type { Position, HintPosition } from '../../@types/Position';\nimport type { OnDenied, PermissionAttr } from '../../@types/PermissionAttr';\nimport { actionsOnPermissionDenied, OPTIONS_ON_DENIED } from '../../permissionValidations';\nimport Hint from '../../hint';\nimport { getSlotsElements, LeftSlot, RightSlot } from '../slot';\nimport { Tooltip } from '../../tooltip';\nimport { ITooltipCommonProps } from '../../tooltip/types';\n\ninterface TextFieldInputProps extends ComponentPropsWithoutRef<'input'>, ITooltipCommonProps {\n hint?: string;\n label?: string;\n errors?: string[];\n gridLayout?: string;\n customClass?: string;\n customClassLabel?: string;\n customClassWrapper?: string;\n customClassInputContainer?: string;\n rounded?: boolean;\n readOnly?: boolean;\n skeletonize?: boolean\n labelUppercase?: boolean;\n textAlign?: TextAlign;\n hintPosition?: HintPosition;\n themePopover?: ColorTheme;\n popoverAlign?: Extract<Position, 'left' | 'right'>;\n permissionAttr?: PermissionAttr;\n onDeniedActions?: OnDenied;\n}\n\nconst options = [\n OPTIONS_ON_DENIED.disabled,\n OPTIONS_ON_DENIED.unvisible,\n OPTIONS_ON_DENIED.readOnly,\n OPTIONS_ON_DENIED.hideContent,\n];\nconst Input = forwardRef<HTMLInputElement, TextFieldInputProps>((props, ref) => {\n const {\n type = 'text', name, label, errors, children, onDeniedActions = undefined, permissionAttr = undefined,\n customClass = '', customClassLabel = '', customClassWrapper = '', customClassInputContainer = '',\n textAlign = 'left', labelUppercase = false, skeletonize = false, hintPosition = 'below', gridLayout = undefined,\n themePopover = 'light', popoverAlign = 'left', tooltip, tooltipPosition, tooltipWidth, hint, ...rest\n } = props;\n const onDenied: OnDenied = onDeniedActions || actionsOnPermissionDenied(options, permissionAttr);\n const { hideContent, unvisible } = onDenied;\n const inputRef = useRef<HTMLInputElement | null>(null);\n\n const hasLabel = !_.isEmpty(props?.label);\n const isReadOnly = Boolean(props.readOnly || onDenied.readOnly);\n const isDisabled = Boolean(props.disabled || onDenied.disabled);\n const hasHintMessages = Boolean(props.hint?.length);\n const hasValidationErrors = Boolean(errors?.length);\n\n const { leftSlotElements, rightSlotElements } = getSlotsElements(children, isDisabled);\n\n const hasLeftSlotElements = Boolean(leftSlotElements?.length);\n const hasRightSlotElements = Boolean(rightSlotElements?.length);\n\n if (unvisible || hideContent) return null;\n\n return (\n <Fragment>\n <GridCol cols={gridLayout}>\n <div\n ref={inputRef}\n className={`text-field-root ${customClassWrapper}`}\n data-state-error={hasValidationErrors}>\n {hasLabel && (\n <span\n className={`root-label ${customClassLabel}`}\n data-state-skeletonize={skeletonize}>\n <label\n className=\"label\"\n title={label}\n htmlFor={name}\n data-state-disabled={isDisabled}\n data-state-read-only={isReadOnly}\n data-state-input-required={props.required}\n data-state-label-uppercase={labelUppercase}>\n {label}\n </label>\n {hint && hintPosition === 'onLabelRight' && !skeletonize && (\n <Popover\n customClass=\"label-popover\"\n theme={themePopover}\n align={popoverAlign}\n iconColor=\"#03bde2\">\n <PopoverText text={hint} />\n </Popover>\n )}\n </span>\n )}\n <div\n data-state-skeletonize={skeletonize}\n className={`container ${customClassInputContainer}`}>\n {(hasLeftSlotElements && !skeletonize) && leftSlotElements}\n <input\n ref={ref}\n id={name}\n type={type}\n readOnly={isReadOnly}\n disabled={isDisabled}\n className={`input ${customClass}`}\n tabIndex={!isReadOnly ? 0 : -1}\n placeholder={rest.placeholder}\n data-state-error={hasValidationErrors}\n data-state-read-only={isReadOnly}\n data-state-text-align={textAlign}\n data-state-skeletonize={skeletonize}\n {...rest} />\n {(hasRightSlotElements && !skeletonize) && rightSlotElements}\n </div>\n {hintPosition === 'below' && (\n <Hint\n customClass=\"hint\"\n description={hint}\n disabled={isDisabled}\n skeletonize={skeletonize}\n visible={hasHintMessages} />\n )}\n {hasValidationErrors && (\n <span\n className=\"error\"\n data-state-skeletonize={skeletonize}\n aria-describedby={String(name).concat('-errors')}>\n {errors?.map((error, index) => (\n <Fragment key={`${index + 1}-${error}`}>\n {error}\n \n </Fragment>\n ))}\n </span>\n )}\n </div>\n </GridCol>\n <Tooltip\n targetRef={inputRef}\n text={tooltip}\n width={tooltipWidth}\n position={tooltipPosition} />\n </Fragment>\n );\n});\n\nInput.displayName = 'TextFieldInput';\n\nexport { Input, LeftSlot, RightSlot };\nexport type { TextFieldInputProps };\n"],"names":["options","OPTIONS_ON_DENIED","disabled","unvisible","readOnly","hideContent","Input","forwardRef","props","ref","$","_c","children","errors","hint","label","name","rest","t0","t1","t10","t11","t12","t13","t2","t3","t4","t5","t6","t7","t8","t9","tooltip","tooltipPosition","tooltipWidth","type","onDeniedActions","permissionAttr","customClass","customClassLabel","customClassWrapper","customClassInputContainer","textAlign","labelUppercase","skeletonize","hintPosition","gridLayout","themePopover","popoverAlign","undefined","t14","actionsOnPermissionDenied","onDenied","inputRef","useRef","t15","_","isEmpty","hasLabel","isReadOnly","Boolean","isDisabled","hasHintMessages","length","hasValidationErrors","t16","getSlotsElements","leftSlotElements","rightSlotElements","hasLeftSlotElements","hasRightSlotElements","t17","t18","required","jsx","Popover","PopoverText","t19","t20","t21","t22","t23","placeholder","t24","t25","jsxs","t26","Hint","t27","String","concat","map","_temp","t28","t29","GridCol","t30","Tooltip","t31","Fragment","displayName","error","index"],"mappings":";;;;;;;;;;;;;AAqCA,MAAMA,KAAU,CACdC,EAAkBC,UAClBD,EAAkBE,WAClBF,EAAkBG,UAClBH,EAAkBI,WAAW,GAEzBC,KAAQC,GAAkD,CAAAC,GAAAC,MAAA;AAAA,QAAAC,IAAAC,GAAAA,EAAA,EAAA;AAAA,MAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC;AAAA,EAAAxB,SAAAF,KAC9D;AAAA,IAAA2B,MAAAjB;AAAAA,IAAAF,MAAAA;AAAAA,IAAAD,OAAAA;AAAAA,IAAAF,QAAAA;AAAAA,IAAAD,UAAAA;AAAAA,IAAAwB,iBAAAjB;AAAAA,IAAAkB,gBAAAb;AAAAA,IAAAc,aAAAb;AAAAA,IAAAc,kBAAAb;AAAAA,IAAAc,oBAAAb;AAAAA,IAAAc,2BAAAb;AAAAA,IAAAc,WAAAb;AAAAA,IAAAc,gBAAAb;AAAAA,IAAAc,aAAAb;AAAAA,IAAAc,cAAAzB;AAAAA,IAAA0B,YAAAzB;AAAAA,IAAA0B,cAAAzB;AAAAA,IAAA0B,cAAAzB;AAAAA,IAAAS,SAAAA;AAAAA,IAAAC,iBAAAA;AAAAA,IAAAC,cAAAA;AAAAA,IAAApB,MAAAA;AAAAA,IAAA,GAAAG;AAAAA,EAAAA,IAKIT,GAAME,OAAAF,GAAAE,OAAAE,GAAAF,OAAAG,GAAAH,OAAAI,GAAAJ,OAAAK,GAAAL,OAAAM,GAAAN,OAAAO,GAAAP,OAAAQ,GAAAR,OAAAS,GAAAT,OAAAU,GAAAV,QAAAW,GAAAX,QAAAY,GAAAZ,QAAAa,GAAAb,QAAAc,GAAAd,QAAAe,GAAAf,QAAAgB,GAAAhB,QAAAiB,GAAAjB,QAAAkB,GAAAlB,QAAAmB,GAAAnB,QAAAoB,GAAApB,QAAAqB,GAAArB,QAAAsB,GAAAtB,QAAAuB,GAAAvB,QAAAwB,MAAAtB,IAAAF,EAAA,CAAA,GAAAG,IAAAH,EAAA,CAAA,GAAAI,IAAAJ,EAAA,CAAA,GAAAK,IAAAL,EAAA,CAAA,GAAAM,IAAAN,EAAA,CAAA,GAAAO,IAAAP,EAAA,CAAA,GAAAQ,IAAAR,EAAA,CAAA,GAAAS,IAAAT,EAAA,CAAA,GAAAU,IAAAV,EAAA,CAAA,GAAAW,IAAAX,EAAA,EAAA,GAAAY,IAAAZ,EAAA,EAAA,GAAAa,IAAAb,EAAA,EAAA,GAAAc,IAAAd,EAAA,EAAA,GAAAe,IAAAf,EAAA,EAAA,GAAAgB,IAAAhB,EAAA,EAAA,GAAAiB,IAAAjB,EAAA,EAAA,GAAAkB,IAAAlB,EAAA,EAAA,GAAAmB,IAAAnB,EAAA,EAAA,GAAAoB,IAAApB,EAAA,EAAA,GAAAqB,IAAArB,EAAA,EAAA,GAAAsB,IAAAtB,EAAA,EAAA,GAAAuB,IAAAvB,EAAA,EAAA,GAAAwB,IAAAxB,EAAA,EAAA;AAJR,QAAAyB,IAAAjB,MAAA+B,SAAA,SAAA/B,GAA8CkB,IAAAjB,MAAA8B,SAAAA,SAAA9B,GAA6BkB,IAAAb,MAAAyB,SAAAA,SAAAzB,GAC3Ec,KAAAb,MAAAwB,SAAA,KAAAxB,GAAkBc,IAAAb,MAAAuB,SAAA,KAAAvB,GAAuBc,KAAAb,MAAAsB,SAAA,KAAAtB,GAAyBc,KAAAb,MAAAqB,SAAA,KAAArB,GAClEc,IAAAb,MAAAoB,SAAA,SAAApB,GAAoBc,IAAAb,MAAAmB,SAAA,KAAAnB,GAAwBc,IAAAb,MAAAkB,SAAA,KAAAlB,GAAqBc,IAAAzB,MAAA6B,SAAA,UAAA7B,GAAwB0B,IAAAzB,MAAA4B,SAAAA,SAAA5B,GACzF0B,IAAAzB,MAAA2B,SAAA,UAAA3B,GAAwB0B,KAAAzB,MAAA0B,SAAA,SAAA1B;AAAqB,MAAA2B;AAAA,EAAAxC,EAAA,EAAA,MAAA0B,KAAA1B,UAAA2B,KAEpBa,IAAAd,KAAmBe,GAA0BnD,IAASqC,CAAc,GAAC3B,QAAA0B,GAAA1B,QAAA2B,GAAA3B,QAAAwC,KAAAA,IAAAxC,EAAA,EAAA;AAAhG,QAAA0C,KAA2BF,GAC3B;AAAA,IAAA7C,aAAAA;AAAAA,IAAAF,WAAAA;AAAAA,EAAAA,IAAmCiD,IACnCC,KAAiBC,GAAgC,IAAI;AAAE,MAAAC;AAAA,EAAA7C,EAAA,EAAA,MAAAF,EAAAO,SAErCwC,IAAAC,GAACC,QAASjD,GAAKO,KAAO,GAACL,EAAA,EAAA,IAAAF,EAAAO,OAAAL,QAAA6C,KAAAA,IAAA7C,EAAA,EAAA;AAAzC,QAAAgD,KAAiB,CAACH,GAClBI,IAAmBC,GAAQpD,EAAKJ,YAAagD,GAAQhD,WACrDyD,IAAmBD,GAAQpD,EAAKN,YAAakD,GAAQlD,WACrD4D,KAAwBF,EAAQpD,EAAKM,MAAaiD,QAClDC,IAA4BJ,EAAQ/C,GAAMkD;AAAU,MAAAE;AAAA,EAAAvD,EAAA,EAAA,MAAAE,KAAAF,UAAAmD,KAEJI,IAAAC,GAAiBtD,GAAUiD,CAAU,GAACnD,QAAAE,GAAAF,QAAAmD,GAAAnD,QAAAuD,KAAAA,IAAAvD,EAAA,EAAA;AAAtF,QAAA;AAAA,IAAAyD,kBAAAA;AAAAA,IAAAC,mBAAAA;AAAAA,EAAAA,IAAgDH,GAEhDI,KAA4BT,EAAQO,IAAgBJ,QACpDO,KAA6BV,EAAQQ,IAAiBL;AAEtD,MAAI5D,MAAAE;AAAwB,WAAS;AAOlB,QAAAkE,KAAA,mBAAmB/B,EAAkB;AAAE,MAAAgC;AAAA,EAAA9D,EAAA,EAAA,MAAA6B,KAAA7B,UAAAgD,MAAAhD,EAAA,EAAA,MAAAI,KAAAJ,EAAA,EAAA,MAAAmC,KAAAnC,EAAA,EAAA,MAAAmD,KAAAnD,EAAA,EAAA,MAAAiD,KAAAjD,EAAA,EAAA,MAAAK,KAAAL,EAAA,EAAA,MAAAiC,KAAAjC,UAAAM,KAAAN,EAAA,EAAA,MAAAsC,MAAAtC,EAAA,EAAA,MAAAF,EAAAiE,YAAA/D,UAAAkC,KAAAlC,EAAA,EAAA,MAAAqC,KAEjDyB,IAAAd,wBACC,QAAA,EACa,WAAA,cAAcnB,CAAgB,IACjBK,0BAAAA,GACxB,UAAA;AAAA,IAAA,gBAAA8B,EAAA,WACY,WAAA,SACH3D,UACEC,SAAAA,GACY6C,uBAAAA,GACCF,wBAAAA,GACK,6BAAAnD,EAAKiE,UACJ9B,8CAE9B;AAAA,IACC7B,KAAQ+B,MAAiB,kBAAzB,CAA4CD,KAC3C,gBAAA8B,EAACC,MACa,aAAA,iBACL5B,UACAC,OAAAA,IACG,WAAA,WACV,4BAAC4B,IAAA,EAAkB9D,MAAAA,GAAI,EAAA,CACzB;AAAA,EAAA,GAEJ,GACDJ,QAAA6B,GAAA7B,QAAAgD,IAAAhD,QAAAI,GAAAJ,QAAAmC,GAAAnC,QAAAmD,GAAAnD,QAAAiD,GAAAjD,QAAAK,GAAAL,QAAAiC,GAAAjC,QAAAM,GAAAN,QAAAsC,IAAAtC,EAAA,EAAA,IAAAF,EAAAiE,UAAA/D,QAAAkC,GAAAlC,QAAAqC,GAAArC,QAAA8D,KAAAA,IAAA9D,EAAA,EAAA;AAGY,QAAAmE,KAAA,aAAapC,EAAyB,IAChDqC,KAACT,MAAA,CAAwBzB,KAAzBuB,IAOYY,KAAA,SAASzC,EAAW,IACrB0C,KAACrB,IAAD,KAAA;AAAoB,MAAAsB;AAAA,EAAAvE,EAAA,EAAA,MAAAsD,KAAAtD,EAAA,EAAA,MAAAmD,KAAAnD,UAAAiD,KAAAjD,EAAA,EAAA,MAAAM,KAAAN,EAAA,EAAA,MAAAD,KAAAC,EAAA,EAAA,MAAAO,KAAAP,EAAA,EAAA,MAAAkC,KAAAlC,UAAAqE,MAAArE,EAAA,EAAA,MAAAsE,MAAAtE,EAAA,EAAA,MAAAgC,KAAAhC,UAAAyB,KAPhC8C,IAAA,gBAAAP,EAAA,SAAA,EACOjE,KAAAA,GACDO,IAAAA,GACEmB,MAAAA,GACIwB,UAAAA,GACAE,UAAAA,GACC,WAAAkB,IACD,UAAAC,IACG,aAAA/D,EAAIiE,aACClB,uBACIL,wBAAAA,GACCjB,yBAAAA,GACCE,0BAAAA,GAAW,GAC/B3B,EAAAA,CAAI,GAAIP,QAAAsD,GAAAtD,QAAAmD,GAAAnD,QAAAiD,GAAAjD,QAAAM,GAAAN,QAAAD,GAAAC,QAAAO,GAAAP,QAAAkC,GAAAlC,QAAAqE,IAAArE,QAAAsE,IAAAtE,QAAAgC,GAAAhC,QAAAyB,GAAAzB,QAAAuE,KAAAA,IAAAvE,EAAA,EAAA;AACb,QAAAyE,KAACb,MAAA,CAAyB1B,KAA1BwB;AAA2D,MAAAgB;AAAA,EAAA1E,EAAA,EAAA,MAAAkC,KAAAlC,EAAA,EAAA,MAAAmE,MAAAnE,EAAA,EAAA,MAAAoE,MAAApE,EAAA,EAAA,MAAAuE,KAAAvE,UAAAyE,MAlB9DC,IAAA,gBAAAC,EAAA,OAAA,EAC0BzC,6BACb,WAAAiC,IACVC,UAAAA;AAAAA,IAAAA;AAAAA,IACDG;AAAAA,IAcCE;AAAAA,EAAAA,GACH,GAAMzE,QAAAkC,GAAAlC,QAAAmE,IAAAnE,QAAAoE,IAAApE,QAAAuE,GAAAvE,QAAAyE,IAAAzE,QAAA0E,KAAAA,IAAA1E,EAAA,EAAA;AAAA,MAAA4E;AAAA,EAAA5E,EAAA,EAAA,MAAAoD,MAAApD,EAAA,EAAA,MAAAI,KAAAJ,EAAA,EAAA,MAAAmC,KAAAnC,EAAA,EAAA,MAAAmD,KAAAnD,UAAAkC,KACL0C,IAAAzC,MAAiB,WAChB,gBAAA6B,EAACa,IAAA,EACa,aAAA,QACCzE,aAAAA,GACH+C,UAAAA,GACGjB,aAAAA,GACJkB,SAAAA,IAAe,GAC3BpD,QAAAoD,IAAApD,QAAAI,GAAAJ,QAAAmC,GAAAnC,QAAAmD,GAAAnD,QAAAkC,GAAAlC,QAAA4E,KAAAA,IAAA5E,EAAA,EAAA;AAAA,MAAA8E;AAAA,EAAA9E,EAAA,EAAA,MAAAG,KAAAH,EAAA,EAAA,MAAAsD,KAAAtD,EAAA,EAAA,MAAAM,KAAAN,UAAAkC,KACA4C,IAAAxB,KACC,gBAAAU,EAAA,QAAA,EACY,WAAA,SACc9B,0BAAAA,GACN,oBAAA6C,OAAOzE,CAAI,EAAC0E,OAAQ,SAAS,GAC9C7E,UAAAA,GAAM8E,IAAMC,EAKZ,GACH,GACDlF,QAAAG,GAAAH,QAAAsD,GAAAtD,QAAAM,GAAAN,QAAAkC,GAAAlC,QAAA8E,KAAAA,IAAA9E,EAAA,EAAA;AAAA,MAAAmF;AAAA,EAAAnF,UAAAsD,KAAAtD,EAAA,EAAA,MAAA6D,MAAA7D,EAAA,EAAA,MAAA8D,KAAA9D,EAAA,EAAA,MAAA0E,KAAA1E,UAAA4E,KAAA5E,EAAA,EAAA,MAAA8E,KArEHK,sBAAA,OAAA,EACOxC,KAAAA,IACM,WAAAkB,IACOP,oBAAAA,GACjBQ,UAAAA;AAAAA,IAAAA;AAAAA,IAyBDY;AAAAA,IAoBCE;AAAAA,IAQAE;AAAAA,EAAAA,GAaH,GAAM9E,QAAAsD,GAAAtD,QAAA6D,IAAA7D,QAAA8D,GAAA9D,QAAA0E,GAAA1E,QAAA4E,GAAA5E,QAAA8E,GAAA9E,QAAAmF,KAAAA,IAAAnF,EAAA,EAAA;AAAA,MAAAoF;AAAA,EAAApF,EAAA,EAAA,MAAAoC,KAAApC,UAAAmF,KAvERC,IAAA,gBAAApB,EAACqB,IAAA,EAAcjD,MAAAA,GACb+C,UAAAA,GAuEF,GAAUnF,QAAAoC,GAAApC,QAAAmF,GAAAnF,QAAAoF,KAAAA,IAAApF,EAAA,EAAA;AAAA,MAAAsF;AAAA,EAAAtF,EAAA,EAAA,MAAAsB,KAAAtB,UAAAuB,KAAAvB,EAAA,EAAA,MAAAwB,KACV8D,IAAA,gBAAAtB,EAACuB,MACY5C,WAAAA,IACLrB,MAAAA,GACCE,OAAAA,GACGD,UAAAA,EAAAA,CAAe,GAAIvB,QAAAsB,GAAAtB,QAAAuB,GAAAvB,QAAAwB,GAAAxB,QAAAsF,KAAAA,IAAAtF,EAAA,EAAA;AAAA,MAAAwF;AAAA,SAAAxF,EAAA,EAAA,MAAAoF,KAAApF,UAAAsF,KA9EjCE,sBAACC,IAAA,EACCL,UAAAA;AAAAA,IAAAA;AAAAA,IAyEAE;AAAAA,EAAAA,GAKF,GAAWtF,QAAAoF,GAAApF,QAAAsF,GAAAtF,QAAAwF,KAAAA,IAAAxF,EAAA,EAAA,GA/EXwF;AA+EW,CAEd;AAED5F,GAAM8F,cAAc;AA5G4C,SAAAR,GAAAS,GAAAC,GAAA;AAAA,2BA0F/CH,IAAA,EACEE,UAAAA;AAAAA,IAAAA;AAAAA,IAAM;AAAA,EAAA,EAAA,GADM,GAAGC,IAAQ,CAAC,IAAID,CAAK,EAGpC;AAAW;"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/lib/inputs2/textfield/index.tsx"],"sourcesContent":["import '../../assets/styles/textfield.scss';\n\nimport React from 'react';\nimport GridCol from '../../gridlayout';\nimport type { OnDenied, PermissionAttr } from '../../@types/PermissionAttr';\nimport { actionsOnPermissionDenied, OPTIONS_ON_DENIED } from '../../permissionValidations';\nimport { LeftSlot, RightSlot } from '../slot';\nimport { InputBase, TextFieldInputBaseProps } from './base';\n\ninterface TextFieldInputProps extends TextFieldInputBaseProps {\n gridLayout?: string;\n permissionAttr?: PermissionAttr;\n onDeniedActions?: OnDenied;\n}\n\nconst options = [\n OPTIONS_ON_DENIED.disabled,\n OPTIONS_ON_DENIED.unvisible,\n OPTIONS_ON_DENIED.readOnly,\n OPTIONS_ON_DENIED.hideContent,\n];\n\nconst Input = React.forwardRef<HTMLInputElement, TextFieldInputProps>((\n {\n onDeniedActions = undefined, permissionAttr = undefined, gridLayout = undefined, readOnly, \n disabled, ...props\n }, ref,\n) => {\n const onDenied: OnDenied = React.useMemo(() => {\n return onDeniedActions || actionsOnPermissionDenied(options, permissionAttr);\n }, [onDeniedActions, permissionAttr]);\n const { hideContent, unvisible } = onDenied;\n const isReadOnly = Boolean(readOnly || onDenied.readOnly);\n const isDisabled = Boolean(disabled || onDenied.disabled);\n const inputProps = { \n readOnly: isReadOnly, disabled: isDisabled, ...props, \n } satisfies TextFieldInputBaseProps;\n\n if (unvisible || hideContent) return null;\n\n if (gridLayout) {\n return (\n <GridCol cols={gridLayout}>\n <InputBase ref={ref} {...inputProps} />\n </GridCol>\n );\n }\n\n return (\n <InputBase ref={ref} {...inputProps} />\n );\n});\n\nInput.displayName = 'TextFieldInput';\n\nexport { Input, LeftSlot, RightSlot };\nexport type { TextFieldInputProps };\n"],"names":["options","OPTIONS_ON_DENIED","disabled","unvisible","readOnly","hideContent","Input","React","forwardRef","t0","ref","$","_c","props","t1","t2","t3","onDeniedActions","permissionAttr","gridLayout","undefined","t4","actionsOnPermissionDenied","onDenied","isReadOnly","Boolean","isDisabled","t5","inputProps","t6","jsx","InputBase","t7","GridCol","displayName"],"mappings":";;;;;;;;AAeA,MAAMA,IAAU,CACdC,EAAkBC,UAClBD,EAAkBE,WAClBF,EAAkBG,UAClBH,EAAkBI,WAAW,GAGzBC,IAAQC,EAAMC,WAAkD,CAAAC,GAAAC,MAAA;AAAA,QAAAC,IAAAC,EAAAA,EAAA,EAAA;AAAA,MAAAV,GAAAW,GAAAT,GAAAU,GAAAC,GAAAC;AAAA,EAAAL,SAAAF,KACpE;AAAA,IAAAQ,iBAAAH;AAAAA,IAAAI,gBAAAH;AAAAA,IAAAI,YAAAH;AAAAA,IAAAZ,UAAAA;AAAAA,IAAAF,UAAAA;AAAAA,IAAA,GAAAW;AAAAA,EAAAA,IAAAJ,GAGCE,OAAAF,GAAAE,OAAAT,GAAAS,OAAAE,GAAAF,OAAAP,GAAAO,OAAAG,GAAAH,OAAAI,GAAAJ,OAAAK,MAAAd,IAAAS,EAAA,CAAA,GAAAE,IAAAF,EAAA,CAAA,GAAAP,IAAAO,EAAA,CAAA,GAAAG,IAAAH,EAAA,CAAA,GAAAI,IAAAJ,EAAA,CAAA,GAAAK,IAAAL,EAAA,CAAA;AAFC,QAAAM,IAAAH,MAAAM,SAAAA,SAAAN,GAA6BI,IAAAH,MAAAK,SAAAA,SAAAL,GAA4BI,IAAAH,MAAAI,SAAAA,SAAAJ;AAAsB,MAAAK;AAAA,EAAAV,EAAA,CAAA,MAAAM,KAAAN,SAAAO,KAKxEG,IAAAJ,KAAmBK,EAA0BtB,GAASkB,CAAc,GAACP,OAAAM,GAAAN,OAAAO,GAAAP,OAAAU,KAAAA,IAAAV,EAAA,CAAA;AAD9E,QAAAY,IACEF,GAEF;AAAA,IAAAhB,aAAAA;AAAAA,IAAAF,WAAAA;AAAAA,EAAAA,IAAmCoB,GACnCC,IAAmBC,GAAQrB,KAAYmB,EAAQnB,WAC/CsB,IAAmBD,GAAQvB,KAAYqB,EAAQrB;AAAW,MAAAyB;AAAA,EAAAhB,EAAA,EAAA,MAAAe,KAAAf,UAAAa,KAAAb,EAAA,EAAA,MAAAE,KACvCc,IAAA;AAAA,IAAAvB,UACPoB;AAAAA,IAAUtB,UAAYwB;AAAAA,IAAU,GAAKb;AAAAA,EAAAA,GAChDF,QAAAe,GAAAf,QAAAa,GAAAb,QAAAE,GAAAF,QAAAgB,KAAAA,IAAAhB,EAAA,EAAA;AAFD,QAAAiB,IAAmBD;AAInB,MAAIxB,KAAAE;AAAwB,WAAS;AAErC,MAAIc,GAAU;AAAA,QAAAU;AAAA,IAAAlB,EAAA,EAAA,MAAAiB,KAAAjB,UAAAD,KAGRmB,IAAA,gBAAAC,EAACC,GAAA,EAAerB,KAAAA,GAAG,GAAMkB,EAAAA,CAAU,GAAIjB,QAAAiB,GAAAjB,QAAAD,GAAAC,QAAAkB,KAAAA,IAAAlB,EAAA,EAAA;AAAA,QAAAqB;AAAA,WAAArB,EAAA,EAAA,MAAAQ,KAAAR,UAAAkB,KADzCG,IAAA,gBAAAF,EAACG,GAAA,EAAcd,MAAAA,GACbU,UAAAA,GACF,GAAUlB,QAAAQ,GAAAR,QAAAkB,GAAAlB,QAAAqB,KAAAA,IAAArB,EAAA,EAAA,GAFVqB;AAAAA,EAEU;AAEb,MAAAH;AAAA,SAAAlB,EAAA,EAAA,MAAAiB,KAAAjB,UAAAD,KAGCmB,IAAA,gBAAAC,EAACC,GAAA,EAAerB,KAAAA,GAAG,GAAMkB,EAAAA,CAAU,GAAIjB,QAAAiB,GAAAjB,QAAAD,GAAAC,QAAAkB,KAAAA,IAAAlB,EAAA,EAAA,GAAvCkB;AAAuC,CAE1C;AAEDvB,EAAM4B,cAAc;"}
|
package/lib/tooltip/types.d.ts
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
import { CSSProperties
|
|
1
|
+
import { CSSProperties } from 'react';
|
|
2
2
|
import { Position } from '../@types/Position';
|
|
3
3
|
type Dimensions = {
|
|
4
4
|
width: number | string;
|
|
5
5
|
height: number;
|
|
6
6
|
};
|
|
7
|
+
interface RefObject<T> extends React.RefObject<T> {
|
|
8
|
+
current: T;
|
|
9
|
+
}
|
|
7
10
|
export interface ITooltipProps {
|
|
8
11
|
targetRef: RefObject<HTMLElement | null>;
|
|
9
12
|
text?: string;
|
|
@@ -1,96 +1,78 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
}, t[0] = D, t[1] = w) : w = t[1];
|
|
19
|
-
const [s, j] = W(w), o = V, P = z(null);
|
|
20
|
-
let g;
|
|
21
|
-
t[2] !== o.current ? (g = (m) => {
|
|
22
|
-
o.current && o.current.contains(m.target) ? u(!0) : u(!1);
|
|
23
|
-
}, t[2] = o.current, t[3] = g) : g = t[3];
|
|
24
|
-
const v = g;
|
|
25
|
-
let b;
|
|
26
|
-
t[4] === Symbol.for("react.memo_cache_sentinel") ? (b = () => {
|
|
1
|
+
import { useState as h, useRef as B, useEffect as p } from "react";
|
|
2
|
+
const C = 40;
|
|
3
|
+
function P({
|
|
4
|
+
targetRef: y,
|
|
5
|
+
text: f,
|
|
6
|
+
width: L = "auto",
|
|
7
|
+
space: l = 0,
|
|
8
|
+
position: b = "bottom",
|
|
9
|
+
errorMessage: v,
|
|
10
|
+
onDeniedText: m
|
|
11
|
+
}) {
|
|
12
|
+
const [a, c] = h(b), [R, S] = h(""), [g, u] = h(!1), [E, O] = h({
|
|
13
|
+
width: L,
|
|
14
|
+
height: C
|
|
15
|
+
}), e = y, r = B(null), T = (i) => {
|
|
16
|
+
e.current && e.current.contains(i.target) ? u(!0) : u(!1);
|
|
17
|
+
}, x = () => {
|
|
27
18
|
u(!1);
|
|
28
|
-
},
|
|
29
|
-
const A = b;
|
|
30
|
-
let x;
|
|
31
|
-
t[5] === Symbol.for("react.memo_cache_sentinel") ? (x = () => {
|
|
19
|
+
}, $ = () => {
|
|
32
20
|
u(!1);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
}), t[6] = f, t[7] = r, t[8] = v, t[9] = o, t[10] = l, t[11] = T) : T = t[11];
|
|
39
|
-
let E;
|
|
40
|
-
t[12] !== f || t[13] !== r || t[14] !== l ? (E = [f, l, r], t[12] = f, t[13] = r, t[14] = l, t[15] = E) : E = t[15], k(T, E);
|
|
41
|
-
let y;
|
|
42
|
-
t[16] !== c || t[17] !== n || t[18] !== o.current || t[19] !== s ? (y = () => {
|
|
43
|
-
if (o.current && P.current) {
|
|
21
|
+
};
|
|
22
|
+
return p(() => ((f || m) && (v ? u(!0) : (u(!1), document.addEventListener("mouseover", T), document.addEventListener("scroll", $, !0), e && e.current && e.current.addEventListener("mouseout", x))), () => {
|
|
23
|
+
(f || m) && (document.removeEventListener("mouseover", T), document.removeEventListener("scroll", $, !0), e && e.current && e.current.removeEventListener("mouseout", x));
|
|
24
|
+
}), [v, f, m]), p(() => {
|
|
25
|
+
if (e.current && r.current) {
|
|
44
26
|
const {
|
|
45
|
-
width:
|
|
46
|
-
height:
|
|
47
|
-
} =
|
|
48
|
-
let
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
case "
|
|
60
|
-
|
|
61
|
-
break
|
|
62
|
-
}
|
|
63
|
-
case "right": {
|
|
64
|
-
window.innerWidth - i.right < d ? a("left") : (e = e + `; top: ${B + window.scrollY - p / 2}px`, e = e + `; left: ${i.left + i.width + 5 + c}px`);
|
|
65
|
-
break t;
|
|
66
|
-
}
|
|
27
|
+
width: i,
|
|
28
|
+
height: s
|
|
29
|
+
} = E, t = e.current.getBoundingClientRect(), w = (t.top + t.bottom) / 2, n = r.current.clientWidth;
|
|
30
|
+
let o = `width: ${typeof i == "string" ? i : `${i}px`}`, d = t.left + t.width / 2 - n / 2;
|
|
31
|
+
switch (d = Math.min(d, document.body.clientWidth - n - l), o += `; left: ${Math.max(l, d)}px`, a) {
|
|
32
|
+
case "top":
|
|
33
|
+
t.top < s ? c("bottom") : o += `; top: ${t.top + window.scrollY - s - l - 5}px`;
|
|
34
|
+
break;
|
|
35
|
+
case "bottom":
|
|
36
|
+
window.innerHeight - t.bottom < s ? c("top") : o += `; top: ${t.top + window.scrollY + t.height + l + 5}px`;
|
|
37
|
+
break;
|
|
38
|
+
case "left":
|
|
39
|
+
t.left < n ? window.innerWidth - t.right < n ? c("bottom") : c("right") : (o += `; top: ${w + window.scrollY - s / 2}px`, o += `; left: ${t.left - n - 6 - l}px`);
|
|
40
|
+
break;
|
|
41
|
+
case "right":
|
|
42
|
+
window.innerWidth - t.right < n ? c("left") : (o += `; top: ${w + window.scrollY - s / 2}px`, o += `; left: ${t.left + t.width + 5 + l}px`);
|
|
43
|
+
break;
|
|
67
44
|
default:
|
|
68
|
-
|
|
45
|
+
o += "";
|
|
69
46
|
}
|
|
70
|
-
|
|
47
|
+
S(o);
|
|
71
48
|
}
|
|
72
|
-
},
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
49
|
+
}, [E, a]), p(() => {
|
|
50
|
+
if (e.current && r.current && g) {
|
|
51
|
+
const i = e.current?.getBoundingClientRect() ?? {
|
|
52
|
+
x: 0,
|
|
53
|
+
width: 0
|
|
54
|
+
}, s = i.x, t = i.width, w = s + t / 2;
|
|
55
|
+
requestAnimationFrame(() => {
|
|
56
|
+
const n = r.current?.getBoundingClientRect() ?? {
|
|
57
|
+
x: 0,
|
|
58
|
+
width: 0
|
|
59
|
+
}, o = n.x, d = n.width, W = o + d / 2, A = (0.5 + Number(((w - W) / d * 100).toFixed(2)) / 100) * 100;
|
|
60
|
+
r.current?.style.setProperty("--arrow-position", `${A}%`);
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
}, [g, r.current, e.current]), p(() => {
|
|
64
|
+
c(b);
|
|
65
|
+
}, [window.scrollY, window.scrollX, window.innerWidth]), {
|
|
66
|
+
text: m || f,
|
|
67
|
+
tooltipRef: r,
|
|
68
|
+
style: R,
|
|
69
|
+
className: a,
|
|
70
|
+
handlerSetDimensions: O,
|
|
71
|
+
tooltipDimensions: E,
|
|
72
|
+
showTooltip: g
|
|
73
|
+
};
|
|
92
74
|
}
|
|
93
75
|
export {
|
|
94
|
-
|
|
76
|
+
P as useTooltip
|
|
95
77
|
};
|
|
96
78
|
//# sourceMappingURL=useTooltip.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTooltip.js","sources":["../../src/lib/tooltip/useTooltip.ts"],"sourcesContent":["import { RefObject, useEffect, useRef, useState } from 'react';\nimport { Position } from '../@types/Position';\n\nconst TOOLTIP_INITIAL_HEIGHT = 40;\n\ninterface UseTooltipProps {\n text?: string;\n width?: number | string;\n space?: number;\n position?: Exclude<Position, 'center'>;\n errorMessage?: string;\n targetRef: RefObject<HTMLElement | null>;\n onDeniedText?: string;\n}\n\nexport function useTooltip({\n targetRef, \n text,\n width: widthProp = 'auto', \n space = 0,\n position: positionProp = 'bottom',\n errorMessage,\n onDeniedText,\n}: UseTooltipProps) {\n const [stateTooltipPosition, setStateTooltipPosition] = useState(positionProp);\n const [tooltipStyle, setTooltipStyle] = useState('');\n const [showTooltip, setShowTooltip] = useState(false);\n const [tooltipDimensions, setTooltipDimensions] = useState({\n width: widthProp,\n height: TOOLTIP_INITIAL_HEIGHT,\n });\n const targetElement = targetRef;\n const tooltipElement = useRef<HTMLElement | null>(null);\n\n const onMouseOver = (e: Event) => {\n if (targetElement.current && targetElement.current.contains(e.target as Node)) {\n setShowTooltip(true);\n } else setShowTooltip(false);\n };\n\n const onMouseOut = () => {\n setShowTooltip(false);\n };\n\n const onAnyScroll = () => {\n setShowTooltip(false);\n };\n\n useEffect(() => {\n if (text || onDeniedText) {\n if (errorMessage) {\n setShowTooltip(true);\n } else {\n setShowTooltip(false);\n document.addEventListener('mouseover', onMouseOver);\n document.addEventListener('scroll', onAnyScroll, true);\n \n if (targetElement && targetElement.current) {\n targetElement.current.addEventListener('mouseout', onMouseOut);\n }\n }\n }\n \n return () => {\n if (text || onDeniedText) {\n document.removeEventListener('mouseover', onMouseOver);\n document.removeEventListener('scroll', onAnyScroll, true);\n \n if (targetElement && targetElement.current) {\n targetElement.current.removeEventListener('mouseout', onMouseOut);\n }\n }\n };\n }, [errorMessage, text, onDeniedText]);\n\n useEffect(() => {\n if (targetElement.current && tooltipElement.current) {\n const { width, height } = tooltipDimensions;\n const targetDimensions = targetElement.current.getBoundingClientRect();\n const targetVerticalCenter = (targetDimensions.top + targetDimensions.bottom) / 2;\n const tooltipClientWidth = tooltipElement.current.clientWidth;\n let style = `width: ${typeof width === 'string' ? width : `${width}px`}`;\n let left = (targetDimensions.left + (targetDimensions.width / 2)) -\n (tooltipClientWidth / 2);\n left = Math.min(left, document.body.clientWidth - tooltipClientWidth - space);\n style += `; left: ${Math.max(space, left)}px`;\n\n switch (stateTooltipPosition) {\n case 'top':\n if (targetDimensions.top < height) {\n setStateTooltipPosition('bottom');\n } else {\n style += `; top: ${targetDimensions.top + window.scrollY - height - space - 5}px`;\n }\n break;\n case 'bottom':\n if (window.innerHeight - targetDimensions.bottom < height) {\n setStateTooltipPosition('top');\n } else {\n style += `; top: ${targetDimensions.top + window.scrollY + targetDimensions.height + space + 5}px`;\n }\n break;\n case 'left':\n if (targetDimensions.left < tooltipClientWidth) {\n if (window.innerWidth - targetDimensions.right < tooltipClientWidth) {\n setStateTooltipPosition('bottom');\n } else {\n setStateTooltipPosition('right');\n }\n } else {\n style += `; top: ${(targetVerticalCenter + window.scrollY) - (height / 2)}px`;\n style += `; left: ${(targetDimensions.left - tooltipClientWidth) - 6 - space}px`;\n }\n break;\n case 'right':\n if (window.innerWidth - targetDimensions.right < tooltipClientWidth) {\n setStateTooltipPosition('left');\n } else {\n style += `; top: ${(targetVerticalCenter + window.scrollY) - (height / 2)}px`;\n style += `; left: ${targetDimensions.left + targetDimensions.width + 5 + space}px`;\n }\n break;\n default:\n style += '';\n }\n setTooltipStyle(style);\n }\n }, [tooltipDimensions, stateTooltipPosition]);\n\n useEffect(() => {\n setStateTooltipPosition(positionProp);\n }, [window.scrollY, window.scrollX, window.innerWidth]);\n\n return {\n text: onDeniedText || text,\n tooltipRef: tooltipElement,\n style: tooltipStyle,\n className: stateTooltipPosition,\n handlerSetDimensions: setTooltipDimensions,\n tooltipDimensions: tooltipDimensions,\n showTooltip,\n };\n}\n"],"names":["TOOLTIP_INITIAL_HEIGHT","useTooltip","t0","$","_c","targetRef","text","width","t1","space","t2","position","t3","errorMessage","onDeniedText","widthProp","undefined","positionProp","stateTooltipPosition","setStateTooltipPosition","useState","tooltipStyle","setTooltipStyle","showTooltip","setShowTooltip","t4","height","tooltipDimensions","setTooltipDimensions","targetElement","tooltipElement","useRef","t5","current","e","contains","target","onMouseOver","t6","Symbol","for","onMouseOut","t7","onAnyScroll","t8","document","addEventListener","removeEventListener","t9","useEffect","t10","targetDimensions","getBoundingClientRect","targetVerticalCenter","top","bottom","tooltipClientWidth","clientWidth","style","left","Math","min","body","max","bb60","window","scrollY","innerHeight","innerWidth","right","t11","t12","t13","scrollX","t14","t15","tooltipRef","className","handlerSetDimensions"],"mappings":";;AAGA,MAAMA,IAAyB;AAYxB,SAAAC,EAAAC,GAAA;AAAA,QAAAC,IAAAC,EAAAA,EAAA,EAAA,GAAoB;AAAA,IAAAC,WAAAA;AAAAA,IAAAC,MAAAA;AAAAA,IAAAC,OAAAC;AAAAA,IAAAC,OAAAC;AAAAA,IAAAC,UAAAC;AAAAA,IAAAC,cAAAA;AAAAA,IAAAC,cAAAA;AAAAA,EAAAA,IAAAZ,GAGlBa,IAAAP,MAAAQ,SAAA,SAAAR,GACPC,IAAAC,MAAAM,SAAA,IAAAN,GACUO,IAAAL,MAAAI,SAAA,WAAAJ,GAIV,CAAAM,GAAAC,CAAA,IAAwDC,EAASH,CAAY,GAC7E,CAAAI,GAAAC,CAAA,IAAwCF,EAAS,EAAE,GACnD,CAAAG,GAAAC,CAAA,IAAsCJ,EAAS,EAAK;AAAE,MAAAK;AAAA,EAAAtB,SAAAY,KACKU,IAAA;AAAA,IAAAlB,OAClDQ;AAAAA,IAASW,QACR1B;AAAAA,EAAAA,GACTG,OAAAY,GAAAZ,OAAAsB,KAAAA,IAAAtB,EAAA,CAAA;AAHD,QAAA,CAAAwB,GAAAC,CAAA,IAAkDR,EAASK,CAG1D,GACDI,IAAsBxB,GACtByB,IAAuBC,EAA2B,IAAI;AAAE,MAAAC;AAAA,EAAA7B,EAAA,CAAA,MAAA0B,EAAAI,WAEpCD,IAAAE,CAAAA,MAAA;AAClB,IAAIL,EAAaI,WAAYJ,EAAaI,QAAQE,SAAUD,EAACE,MAAe,IAC1EZ,EAAe,EAAI,IACdA,EAAe,EAAK;AAAA,EAAE,GAC9BrB,EAAA,CAAA,IAAA0B,EAAAI,SAAA9B,OAAA6B,KAAAA,IAAA7B,EAAA,CAAA;AAJD,QAAAkC,IAAoBL;AAIlB,MAAAM;AAAA,EAAAnC,EAAA,CAAA,MAAAoC,OAAAC,IAAA,2BAAA,KAEiBF,IAAAA,MAAA;AACjBd,IAAAA,EAAe,EAAK;AAAA,EAAC,GACtBrB,OAAAmC,KAAAA,IAAAnC,EAAA,CAAA;AAFD,QAAAsC,IAAmBH;AAEjB,MAAAI;AAAA,EAAAvC,EAAA,CAAA,MAAAoC,OAAAC,IAAA,2BAAA,KAEkBE,IAAAA,MAAA;AAClBlB,IAAAA,EAAe,EAAK;AAAA,EAAC,GACtBrB,OAAAuC,KAAAA,IAAAvC,EAAA,CAAA;AAFD,QAAAwC,IAAoBD;AAElB,MAAAE;AAAA,EAAAzC,EAAA,CAAA,MAAAU,KAAAV,EAAA,CAAA,MAAAW,KAAAX,EAAA,CAAA,MAAAkC,KAAAlC,EAAA,CAAA,MAAA0B,KAAA1B,UAAAG,KAEQsC,IAAAA,QACJtC,KAAAQ,OACED,IACFW,EAAe,EAAI,KAEnBA,EAAe,EAAK,GACpBqB,SAAQC,iBAAkB,aAAaT,CAAW,GAClDQ,SAAQC,iBAAkB,UAAUH,GAAa,EAAI,GAEjDd,KAAiBA,EAAaI,WAChCJ,EAAaI,QAAQa,iBAAkB,YAAYL,CAAU,KAK5D,MAAA;AACL,KAAInC,KAAAQ,OACF+B,SAAQE,oBAAqB,aAAaV,CAAW,GACrDQ,SAAQE,oBAAqB,UAAUJ,GAAa,EAAI,GAEpDd,KAAiBA,EAAaI,WAChCJ,EAAaI,QAAQc,oBAAqB,YAAYN,CAAU;AAAA,EAEnE,IAEJtC,OAAAU,GAAAV,OAAAW,GAAAX,OAAAkC,GAAAlC,OAAA0B,GAAA1B,QAAAG,GAAAH,QAAAyC,KAAAA,IAAAzC,EAAA,EAAA;AAAA,MAAA6C;AAAA,EAAA7C,EAAA,EAAA,MAAAU,KAAAV,UAAAW,KAAAX,EAAA,EAAA,MAAAG,KAAE0C,KAACnC,GAAcP,GAAMQ,CAAY,GAACX,QAAAU,GAAAV,QAAAW,GAAAX,QAAAG,GAAAH,QAAA6C,KAAAA,IAAA7C,EAAA,EAAA,GAzBrC8C,EAAUL,GAyBPI,CAAkC;AAAC,MAAAE;AAAA,EAAA/C,EAAA,EAAA,MAAAM,KAAAN,UAAAe,KAAAf,EAAA,EAAA,MAAA0B,EAAAI,WAAA9B,UAAAwB,KAE5BuB,IAAAA,MAAA;AACR,QAAIrB,EAAaI,WAAYH,EAAcG,SAAQ;AACjD,YAAA;AAAA,QAAA1B,OAAAA;AAAAA,QAAAmB,QAAAA;AAAAA,MAAAA,IAA0BC,GAC1BwB,IAAyBtB,EAAaI,QAAQmB,sBAAAA,GAC9CC,KAA8BF,EAAgBG,MAAOH,EAAgBI,UAAW,GAChFC,IAA2B1B,EAAcG,QAAQwB;AACjD,UAAAC,IAAY,UAAU,OAAOnD,KAAU,WAAjBA,IAAA,GAAuCA,CAAK,IAAI,IACtEoD,IAAYR,EAAgBQ,OAASR,EAAgB5C,QAAS,IACzDiD,IAAqB;AAC1BG,MAAAA,IAAOC,KAAIC,IAAKF,GAAMd,SAAQiB,KAAKL,cAAeD,IAAqB/C,CAAK,GAC5EiD,IAAAA,IAAS,WAAWE,KAAIG,IAAKtD,GAAOkD,CAAI,CAAC;AAAIK,MAAAA,WAErC9C,GAAAA;AAAAA,QAAoB,KACrB,OAAK;AACR,UAAIiC,EAAgBG,MAAO5B,IACzBP,EAAwB,QAAQ,IAEhCuC,IAAAA,IAAS,UAAUP,EAAgBG,MAAOW,OAAMC,UAAWxC,IAASjB,IAAQ,CAAC;AAE/E,gBAAAuD;AAAAA,QAAM;AAAA,QAAA,KACH,UAAQ;AACX,UAAIC,OAAME,cAAehB,EAAgBI,SAAU7B,IACjDP,EAAwB,KAAK,IAE7BuC,IAAAA,IAAS,UAAUP,EAAgBG,MAAOW,OAAMC,UAAWf,EAAgBzB,SAAUjB,IAAQ,CAAC;AAEhG,gBAAAuD;AAAAA,QAAM;AAAA,QAAA,KACH,QAAM;AACT,UAAIb,EAAgBQ,OAAQH,IACtBS,OAAMG,aAAcjB,EAAgBkB,QAASb,IAC/CrC,EAAwB,QAAQ,IAEhCA,EAAwB,OAAO,KAGjCuC,IAAAA,IAAS,UAAWL,IAAuBY,OAAMC,UAAaxC,IAAS,CAAE,MACzEgC,IAAAA,IAAS,WAAYP,EAAgBQ,OAAQH,IAAsB,IAAI/C,CAAK;AAE9E,gBAAAuD;AAAAA,QAAM;AAAA,QAAA,KACH,SAAO;AACV,UAAIC,OAAMG,aAAcjB,EAAgBkB,QAASb,IAC/CrC,EAAwB,MAAM,KAE9BuC,IAAAA,IAAS,UAAWL,IAAuBY,OAAMC,UAAaxC,IAAS,CAAE,MACzEgC,IAAAA,IAAS,WAAWP,EAAgBQ,OAAQR,EAAgB5C,QAAS,IAAIE,CAAK;AAEhF,gBAAAuD;AAAAA,QAAM;AAAA,QAAA;AAENN,UAAAA,IAAAA,IAAS;AAAA,MAAE;AAEfpC,MAAAA,EAAgBoC,CAAK;AAAA,IAAC;AAAA,EACvB,GACFvD,QAAAM,GAAAN,QAAAe,GAAAf,EAAA,EAAA,IAAA0B,EAAAI,SAAA9B,QAAAwB,GAAAxB,QAAA+C,KAAAA,IAAA/C,EAAA,EAAA;AAAA,MAAAmE;AAAA,EAAAnE,EAAA,EAAA,MAAAe,KAAAf,UAAAwB,KAAE2C,IAAA,CAAC3C,GAAmBT,CAAoB,GAACf,QAAAe,GAAAf,QAAAwB,GAAAxB,QAAAmE,KAAAA,IAAAnE,EAAA,EAAA,GApD5C8C,EAAUC,GAoDPoB,CAAyC;AAAC,MAAAC;AAAA,EAAApE,UAAAc,KAEnCsD,IAAAA,MAAA;AACRpD,IAAAA,EAAwBF,CAAY;AAAA,EAAC,GACtCd,QAAAc,GAAAd,QAAAoE,KAAAA,IAAApE,EAAA,EAAA;AAAA,MAAAqE;AAAA,EAAArE,EAAA,EAAA,MAAAoC,OAAAC,IAAA,2BAAA,KAAEgC,IAAA,CAACP,OAAMC,SAAUD,OAAMQ,SAAUR,OAAMG,UAAW,GAACjE,QAAAqE,KAAAA,IAAArE,EAAA,EAAA,GAFtD8C,EAAUsB,GAEPC,CAAmD;AAG9C,QAAAE,IAAA5D,KAAAR;AAAoB,MAAAqE;AAAA,SAAAxE,EAAA,EAAA,MAAAoB,KAAApB,EAAA,EAAA,MAAAe,KAAAf,EAAA,EAAA,MAAAuE,KAAAvE,EAAA,EAAA,MAAAwB,KAAAxB,UAAAkB,KADrBsD,IAAA;AAAA,IAAArE,MACCoE;AAAAA,IAAoBE,YACd9C;AAAAA,IAAc4B,OACnBrC;AAAAA,IAAYwD,WACR3D;AAAAA,IAAoB4D,sBACTlD;AAAAA,IAAoBD,mBAAAA;AAAAA,IAAAJ,aAAAA;AAAAA,EAAAA,GAG3CpB,QAAAoB,GAAApB,QAAAe,GAAAf,QAAAuE,GAAAvE,QAAAwB,GAAAxB,QAAAkB,GAAAlB,QAAAwE,KAAAA,IAAAxE,EAAA,EAAA,GARMwE;AAQN;"}
|
|
1
|
+
{"version":3,"file":"useTooltip.js","sources":["../../src/lib/tooltip/useTooltip.ts"],"sourcesContent":["import { RefObject, useEffect, useRef, useState } from 'react';\nimport { Position } from '../@types/Position';\n\nconst TOOLTIP_INITIAL_HEIGHT = 40;\n\ninterface UseTooltipProps {\n text?: string;\n width?: number | string;\n space?: number;\n position?: Exclude<Position, 'center'>;\n errorMessage?: string;\n targetRef: RefObject<HTMLElement | null>;\n onDeniedText?: string;\n}\n\nexport function useTooltip({\n targetRef, \n text,\n width: widthProp = 'auto', \n space = 0,\n position: positionProp = 'bottom',\n errorMessage,\n onDeniedText,\n}: UseTooltipProps) {\n const [stateTooltipPosition, setStateTooltipPosition] = useState(positionProp);\n const [tooltipStyle, setTooltipStyle] = useState('');\n const [showTooltip, setShowTooltip] = useState(false);\n const [tooltipDimensions, setTooltipDimensions] = useState({\n width: widthProp,\n height: TOOLTIP_INITIAL_HEIGHT,\n });\n const targetElement = targetRef;\n const tooltipElement = useRef<HTMLElement | null>(null);\n\n const onMouseOver = (e: Event) => {\n if (targetElement.current && targetElement.current.contains(e.target as Node)) {\n setShowTooltip(true);\n } else setShowTooltip(false);\n };\n\n const onMouseOut = () => {\n setShowTooltip(false);\n };\n\n const onAnyScroll = () => {\n setShowTooltip(false);\n };\n\n useEffect(() => {\n if (text || onDeniedText) {\n if (errorMessage) {\n setShowTooltip(true);\n } else {\n setShowTooltip(false);\n document.addEventListener('mouseover', onMouseOver);\n document.addEventListener('scroll', onAnyScroll, true);\n \n if (targetElement && targetElement.current) {\n targetElement.current.addEventListener('mouseout', onMouseOut);\n }\n }\n }\n \n return () => {\n if (text || onDeniedText) {\n document.removeEventListener('mouseover', onMouseOver);\n document.removeEventListener('scroll', onAnyScroll, true);\n \n if (targetElement && targetElement.current) {\n targetElement.current.removeEventListener('mouseout', onMouseOut);\n }\n }\n };\n }, [errorMessage, text, onDeniedText]);\n\n useEffect(() => {\n if (targetElement.current && tooltipElement.current) {\n const { width, height } = tooltipDimensions;\n const targetDimensions = targetElement.current.getBoundingClientRect();\n const targetVerticalCenter = (targetDimensions.top + targetDimensions.bottom) / 2;\n const tooltipClientWidth = tooltipElement.current.clientWidth;\n let style = `width: ${typeof width === 'string' ? width : `${width}px`}`;\n let left = (targetDimensions.left + (targetDimensions.width / 2)) -\n (tooltipClientWidth / 2);\n left = Math.min(left, document.body.clientWidth - tooltipClientWidth - space);\n style += `; left: ${Math.max(space, left)}px`;\n\n switch (stateTooltipPosition) {\n case 'top':\n if (targetDimensions.top < height) {\n setStateTooltipPosition('bottom');\n } else {\n style += `; top: ${targetDimensions.top + window.scrollY - height - space - 5}px`;\n }\n break;\n case 'bottom':\n if (window.innerHeight - targetDimensions.bottom < height) {\n setStateTooltipPosition('top');\n } else {\n style += `; top: ${targetDimensions.top + window.scrollY + targetDimensions.height + space + 5}px`;\n }\n break;\n case 'left':\n if (targetDimensions.left < tooltipClientWidth) {\n if (window.innerWidth - targetDimensions.right < tooltipClientWidth) {\n setStateTooltipPosition('bottom');\n } else {\n setStateTooltipPosition('right');\n }\n } else {\n style += `; top: ${(targetVerticalCenter + window.scrollY) - (height / 2)}px`;\n style += `; left: ${(targetDimensions.left - tooltipClientWidth) - 6 - space}px`;\n }\n break;\n case 'right':\n if (window.innerWidth - targetDimensions.right < tooltipClientWidth) {\n setStateTooltipPosition('left');\n } else {\n style += `; top: ${(targetVerticalCenter + window.scrollY) - (height / 2)}px`;\n style += `; left: ${targetDimensions.left + targetDimensions.width + 5 + space}px`;\n }\n break;\n default:\n style += '';\n }\n setTooltipStyle(style);\n }\n }, [tooltipDimensions, stateTooltipPosition]);\n\n useEffect(() => {\n if (targetElement.current && tooltipElement.current && showTooltip) {\n const targetRect = targetElement.current?.getBoundingClientRect() ?? { x: 0, width: 0 };\n const elementHorizontalPosition = targetRect.x;\n const widthElement = targetRect.width;\n const centerOfElement = elementHorizontalPosition + (widthElement / 2);\n\n requestAnimationFrame(() => {\n const tooltipRect = tooltipElement.current?.getBoundingClientRect() ?? { x: 0, width: 0 };\n const tooltipHorizontalPosition = tooltipRect.x;\n const widthTooltip = tooltipRect.width;\n const centerOfTooltip = tooltipHorizontalPosition + (widthTooltip / 2);\n \n const centerDifferenceBetweenElementAndTooltip = Number(\n (((centerOfElement - centerOfTooltip) / widthTooltip) * 100).toFixed(2),\n );\n \n const sumDifference = (0.5 + centerDifferenceBetweenElementAndTooltip / 100) * 100;\n tooltipElement.current?.style.setProperty('--arrow-position', `${sumDifference}%`);\n });\n }\n }, [showTooltip, tooltipElement.current, targetElement.current]);\n\n useEffect(() => {\n setStateTooltipPosition(positionProp);\n }, [window.scrollY, window.scrollX, window.innerWidth]);\n\n return {\n text: onDeniedText || text,\n tooltipRef: tooltipElement,\n style: tooltipStyle,\n className: stateTooltipPosition,\n handlerSetDimensions: setTooltipDimensions,\n tooltipDimensions: tooltipDimensions,\n showTooltip,\n };\n}\n"],"names":["TOOLTIP_INITIAL_HEIGHT","useTooltip","targetRef","text","width","widthProp","space","position","positionProp","errorMessage","onDeniedText","stateTooltipPosition","setStateTooltipPosition","useState","tooltipStyle","setTooltipStyle","showTooltip","setShowTooltip","tooltipDimensions","setTooltipDimensions","height","targetElement","tooltipElement","useRef","onMouseOver","e","current","contains","target","onMouseOut","onAnyScroll","useEffect","document","addEventListener","removeEventListener","targetDimensions","getBoundingClientRect","targetVerticalCenter","top","bottom","tooltipClientWidth","clientWidth","style","left","Math","min","body","max","window","scrollY","innerHeight","innerWidth","right","targetRect","x","elementHorizontalPosition","widthElement","centerOfElement","requestAnimationFrame","tooltipRect","tooltipHorizontalPosition","widthTooltip","centerOfTooltip","sumDifference","Number","toFixed","setProperty","scrollX","tooltipRef","className","handlerSetDimensions"],"mappings":"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"}
|