@oneblink/apps-react 5.6.0 → 5.6.1-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/CustomAccordion.d.ts +3 -3
- package/dist/components/Lists.d.ts +1 -1
- package/dist/components/renderer/Modal.js +21 -8
- package/dist/components/renderer/Modal.js.map +1 -1
- package/dist/hooks/useFlatpickr.js +4 -1
- package/dist/hooks/useFlatpickr.js.map +1 -1
- package/package.json +1 -1
@@ -12,10 +12,10 @@ export declare const CustomAccordion: import("@emotion/styled").StyledComponent<
|
|
12
12
|
children?: import("react").ReactElement<any, any> | undefined;
|
13
13
|
}> | undefined;
|
14
14
|
TransitionProps?: import("@mui/material/transitions").TransitionProps | undefined;
|
15
|
-
} & Omit<import("@mui/material").PaperOwnProps, "
|
15
|
+
} & Omit<import("@mui/material").PaperOwnProps, "classes" | "onChange"> & import("@mui/material/OverridableComponent").CommonProps & Omit<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof import("react").HTMLAttributes<HTMLDivElement>> & {
|
16
16
|
ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
|
17
|
-
}, "children" | "
|
17
|
+
}, "children" | keyof import("@mui/material/OverridableComponent").CommonProps | "sx" | "onChange" | "elevation" | "disabled" | "variant" | "disableGutters" | "square" | "defaultExpanded" | "expanded" | "TransitionComponent" | "TransitionProps"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
|
18
18
|
export declare const CustomAccordionSummary: import("@emotion/styled").StyledComponent<import("@mui/material").AccordionSummaryOwnProps & Omit<import("@mui/material").ButtonBaseOwnProps, "classes"> & import("@mui/material/OverridableComponent").CommonProps & Omit<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof import("react").HTMLAttributes<HTMLDivElement>> & {
|
19
19
|
ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
|
20
|
-
}, "className" | "style" | "children" | "
|
20
|
+
}, "className" | "style" | "children" | "classes" | "sx" | "tabIndex" | "disabled" | "action" | "centerRipple" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "onFocusVisible" | "TouchRippleProps" | "touchRippleRef" | "expandIcon"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
|
21
21
|
export declare const CustomAccordionDetails: import("@emotion/styled").StyledComponent<import("@mui/material").AccordionDetailsProps & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
|
@@ -11,5 +11,5 @@ type ListProps = {
|
|
11
11
|
};
|
12
12
|
export declare const ListItem: import("@emotion/styled").StyledComponent<Omit<import("@mui/material").TypographyOwnProps & import("@mui/material/OverridableComponent").CommonProps & Omit<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "key" | keyof React.HTMLAttributes<HTMLSpanElement>> & {
|
13
13
|
ref?: ((instance: HTMLSpanElement | null) => void) | React.RefObject<HTMLSpanElement> | null | undefined;
|
14
|
-
}, "className" | "p" | "style" | "children" | "
|
14
|
+
}, "className" | "p" | "style" | "children" | "classes" | "sx" | "color" | "height" | "width" | "display" | "fontFamily" | "fontSize" | "fontStyle" | "fontWeight" | "letterSpacing" | "order" | "overflow" | "visibility" | "align" | "top" | "right" | "bottom" | "left" | "border" | "borderTop" | "borderRight" | "borderBottom" | "borderLeft" | "borderColor" | "borderRadius" | "displayPrint" | "textOverflow" | "whiteSpace" | "flexBasis" | "flexDirection" | "flexWrap" | "justifyContent" | "alignItems" | "alignContent" | "flex" | "flexGrow" | "flexShrink" | "alignSelf" | "justifyItems" | "justifySelf" | "gap" | "columnGap" | "rowGap" | "gridColumn" | "gridRow" | "gridAutoFlow" | "gridAutoColumns" | "gridAutoRows" | "gridTemplateColumns" | "gridTemplateRows" | "gridTemplateAreas" | "gridArea" | "bgcolor" | "zIndex" | "position" | "boxShadow" | "maxWidth" | "minWidth" | "maxHeight" | "minHeight" | "boxSizing" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "my" | "pt" | "pr" | "pb" | "pl" | "px" | "py" | "margin" | "marginTop" | "marginRight" | "marginBottom" | "marginLeft" | "marginX" | "marginY" | "marginInline" | "marginInlineStart" | "marginInlineEnd" | "marginBlock" | "marginBlockStart" | "marginBlockEnd" | "padding" | "paddingTop" | "paddingRight" | "paddingBottom" | "paddingLeft" | "paddingX" | "paddingY" | "paddingInline" | "paddingInlineStart" | "paddingInlineEnd" | "paddingBlock" | "paddingBlockStart" | "paddingBlockEnd" | "typography" | "lineHeight" | "textAlign" | "textTransform" | "gutterBottom" | "noWrap" | "paragraph" | "variant" | "variantMapping">, "ref"> & import("@mui/system").MUIStyledCommonProps<Theme> & ListProps, {}, {}>;
|
15
15
|
export {};
|
@@ -1,15 +1,28 @@
|
|
1
1
|
import * as React from 'react';
|
2
2
|
import clsx from 'clsx';
|
3
|
+
import { Fade, Modal as MuiModal } from '@mui/material';
|
3
4
|
function Modal({ isOpen, title, children, className, cardClassName, titleClassName, bodyClassName, actions, }) {
|
4
|
-
|
5
|
+
const modalContentRef = React.useRef(null);
|
6
|
+
return (React.createElement(MuiModal, { className: clsx('modal ob-modal', className, {
|
5
7
|
'is-active': isOpen,
|
6
|
-
})
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
8
|
+
}), open: isOpen, slots: {
|
9
|
+
backdrop: () => React.createElement("div", { className: "modal-background-faded" }),
|
10
|
+
}, onTransitionEnter: () => {
|
11
|
+
// set the initial focused element
|
12
|
+
const modalContentElement = modalContentRef.current;
|
13
|
+
if (modalContentElement) {
|
14
|
+
const primaryControls = modalContentElement.querySelectorAll('.ob-button.is-primary');
|
15
|
+
if (primaryControls[0] instanceof HTMLElement) {
|
16
|
+
primaryControls[0].focus();
|
17
|
+
}
|
18
|
+
}
|
19
|
+
} },
|
20
|
+
React.createElement(Fade, { in: isOpen },
|
21
|
+
React.createElement("div", { className: clsx('modal-card', cardClassName), ref: modalContentRef },
|
22
|
+
title && (React.createElement("header", { className: "modal-card-head" },
|
23
|
+
React.createElement("p", { className: clsx('modal-card-title', titleClassName) }, title))),
|
24
|
+
React.createElement("section", { className: clsx('modal-card-body', bodyClassName) }, children),
|
25
|
+
actions && React.createElement("footer", { className: "modal-card-foot" }, actions)))));
|
13
26
|
}
|
14
27
|
export default React.memo(Modal);
|
15
28
|
//# sourceMappingURL=Modal.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Modal.js","sourceRoot":"","sources":["../../../src/components/renderer/Modal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,IAAI,MAAM,MAAM,CAAA;
|
1
|
+
{"version":3,"file":"Modal.js","sourceRoot":"","sources":["../../../src/components/renderer/Modal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,IAAI,EAAE,KAAK,IAAI,QAAQ,EAAE,MAAM,eAAe,CAAA;AAavD,SAAS,KAAK,CAAC,EACb,MAAM,EACN,KAAK,EACL,QAAQ,EACR,SAAS,EACT,aAAa,EACb,cAAc,EACd,aAAa,EACb,OAAO,GACD;IACN,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAiB,IAAI,CAAC,CAAA;IAE1D,OAAO,CACL,oBAAC,QAAQ,IACP,SAAS,EAAE,IAAI,CAAC,gBAAgB,EAAE,SAAS,EAAE;YAC3C,WAAW,EAAE,MAAM;SACpB,CAAC,EACF,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE;YACL,QAAQ,EAAE,GAAG,EAAE,CAAC,6BAAK,SAAS,EAAC,wBAAwB,GAAO;SAC/D,EACD,iBAAiB,EAAE,GAAG,EAAE;YACtB,kCAAkC;YAClC,MAAM,mBAAmB,GAAG,eAAe,CAAC,OAAO,CAAA;YACnD,IAAI,mBAAmB,EAAE;gBACvB,MAAM,eAAe,GAAG,mBAAmB,CAAC,gBAAgB,CAC1D,uBAAuB,CACxB,CAAA;gBACD,IAAI,eAAe,CAAC,CAAC,CAAC,YAAY,WAAW,EAAE;oBAC7C,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAA;iBAC3B;aACF;QACH,CAAC;QAED,oBAAC,IAAI,IAAC,EAAE,EAAE,MAAM;YACd,6BACE,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,EAC5C,GAAG,EAAE,eAAe;gBAEnB,KAAK,IAAI,CACR,gCAAQ,SAAS,EAAC,iBAAiB;oBACjC,2BAAG,SAAS,EAAE,IAAI,CAAC,kBAAkB,EAAE,cAAc,CAAC,IACnD,KAAK,CACJ,CACG,CACV;gBACD,iCAAS,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,aAAa,CAAC,IACvD,QAAQ,CACD;gBACT,OAAO,IAAI,gCAAQ,SAAS,EAAC,iBAAiB,IAAE,OAAO,CAAU,CAC9D,CACD,CACE,CACZ,CAAA;AACH,CAAC;AAED,eAAe,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA","sourcesContent":["import * as React from 'react'\nimport clsx from 'clsx'\nimport { Fade, Modal as MuiModal } from '@mui/material'\n\ntype Props = {\n isOpen: boolean\n title?: string\n children: React.ReactNode\n actions: React.ReactNode | null\n className?: string\n cardClassName?: string\n titleClassName?: string\n bodyClassName?: string\n}\n\nfunction Modal({\n isOpen,\n title,\n children,\n className,\n cardClassName,\n titleClassName,\n bodyClassName,\n actions,\n}: Props) {\n const modalContentRef = React.useRef<HTMLDivElement>(null)\n\n return (\n <MuiModal\n className={clsx('modal ob-modal', className, {\n 'is-active': isOpen,\n })}\n open={isOpen}\n slots={{\n backdrop: () => <div className=\"modal-background-faded\"></div>,\n }}\n onTransitionEnter={() => {\n // set the initial focused element\n const modalContentElement = modalContentRef.current\n if (modalContentElement) {\n const primaryControls = modalContentElement.querySelectorAll(\n '.ob-button.is-primary',\n )\n if (primaryControls[0] instanceof HTMLElement) {\n primaryControls[0].focus()\n }\n }\n }}\n >\n <Fade in={isOpen}>\n <div\n className={clsx('modal-card', cardClassName)}\n ref={modalContentRef}\n >\n {title && (\n <header className=\"modal-card-head\">\n <p className={clsx('modal-card-title', titleClassName)}>\n {title}\n </p>\n </header>\n )}\n <section className={clsx('modal-card-body', bodyClassName)}>\n {children}\n </section>\n {actions && <footer className=\"modal-card-foot\">{actions}</footer>}\n </div>\n </Fade>\n </MuiModal>\n )\n}\n\nexport default React.memo(Modal)\n"]}
|
@@ -40,8 +40,11 @@ export default function useFlatpickr({ id, value, onChange, dateOnly, label, },
|
|
40
40
|
// trigger the onChange event:
|
41
41
|
// https://github.com/flatpickr/flatpickr/issues/1957
|
42
42
|
if (fpOpts.enableTime) {
|
43
|
-
newVp.set('onClose', (selectedDates) => {
|
43
|
+
newVp.set('onClose', (selectedDates, currentDateString, self) => {
|
44
44
|
onChange(getDateValue(selectedDates === null || selectedDates === void 0 ? void 0 : selectedDates[0], dateOnly));
|
45
|
+
if (typeof fpOpts.onClose === 'function') {
|
46
|
+
fpOpts.onClose(selectedDates, currentDateString, self);
|
47
|
+
}
|
45
48
|
});
|
46
49
|
}
|
47
50
|
vpRef.current = newVp;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useFlatpickr.js","sourceRoot":"","sources":["../../src/hooks/useFlatpickr.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,SAAS,MAAM,WAAW,CAAA;AAGjC,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAC5D,OAAO,gBAAgB,MAAM,2BAA2B,CAAA;AAIxD,MAAM,YAAY,GAAG,CACnB,IAAsB,EACtB,QAA6B,EAC7B,EAAE;IACF,IAAI,CAAC,IAAI;QAAE,OAAM;IACjB,IAAI,QAAQ,EAAE;QACZ,OAAO,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;KAC3C;IACD,OAAO,IAAI,CAAC,WAAW,EAAE,CAAA;AAC3B,CAAC,CAAA;AAED,MAAM,CAAC,OAAO,UAAU,YAAY,CAClC,EACE,EAAE,EACF,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,KAAK,GAON,EACD,MAAwB,EACxB,WAA4C;IAE5C,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAA;IACxC,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAA2B,IAAI,CAAC,CAAA;IAE1D,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,OAAO,GAAqB;YAChC,GAAG,MAAM;YACT,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,WAAW,CAAC,OAAO,IAAI,SAAS;YAC1C,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;gBACpB,IAAI,KAAK,EAAE;oBACT,EAAE,CAAC,QAAS,CAAC,YAAY,CAAC,YAAY,EAAE,KAAK,CAAC,CAAA;iBAC/C;YACH,CAAC;YACD,UAAU,EAAE,CAAC,IAAsB,EAAE,MAAc,EAAE,EAAE;gBACrD,IAAI,IAAI,EAAE;oBACR,OAAO,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;iBAC1C;gBACD,OAAO,EAAE,CAAA;YACX,CAAC;SACF,CAAA;QACD,8DAA8D;QAC9D,MAAM,KAAK,GAAsB,IAAK,SAAiB,CACrD,QAAQ,aAAa,WAAW,EAAE,IAAI,EACtC,OAAO,CACR,CAAA;QACD,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,aAAqB,EAAE,EAAE;YAC9C,QAAQ,CAAC,YAAY,CAAC,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAA;QACtD,CAAC,CAAC,CAAA;QACF,0DAA0D;QAC1D,sDAAsD;QACtD,8BAA8B;QAC9B,qDAAqD;QACrD,IAAI,MAAM,CAAC,UAAU,EAAE;YACrB,KAAK,CAAC,GAAG,
|
1
|
+
{"version":3,"file":"useFlatpickr.js","sourceRoot":"","sources":["../../src/hooks/useFlatpickr.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport Flatpickr from 'flatpickr'\nimport { Options as FlatpickrOptions } from 'flatpickr/dist/types/options'\nimport { Instance as FlatpickrInstance } from 'flatpickr/dist/types/instance'\nimport { Sentry, localisationService } from '@oneblink/apps'\nimport useFlatpickrGuid from '../hooks/useFlatpickrGuid'\n\nexport { FlatpickrOptions }\n\nconst getDateValue = (\n date: Date | undefined,\n dateOnly: boolean | undefined,\n) => {\n if (!date) return\n if (dateOnly) {\n return Flatpickr.formatDate(date, 'Y-m-d')\n }\n return date.toISOString()\n}\n\nexport default function useFlatpickr(\n {\n id,\n value,\n onChange,\n dateOnly,\n label,\n }: {\n id: string\n value: unknown | undefined\n onChange: (value: string | undefined) => void\n dateOnly?: boolean\n label?: string\n },\n fpOpts: FlatpickrOptions,\n htmlElement: { current: HTMLElement | null },\n) {\n const flatpickrGuid = useFlatpickrGuid()\n const vpRef = React.useRef<FlatpickrInstance | null>(null)\n\n React.useEffect(() => {\n const options: FlatpickrOptions = {\n ...fpOpts,\n static: true,\n appendTo: htmlElement.current || undefined,\n onReady: (a, b, fp) => {\n if (label) {\n fp.altInput!.setAttribute('aria-label', label)\n }\n },\n formatDate: (date: Date | undefined, format: string) => {\n if (date) {\n return Flatpickr.formatDate(date, format)\n }\n return ''\n },\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const newVp: FlatpickrInstance = new (Flatpickr as any)(\n `[id=\"${flatpickrGuid}\"] [id=\"${id}\"]`,\n options,\n )\n newVp.set('onChange', (selectedDates: Date[]) => {\n onChange(getDateValue(selectedDates?.[0], dateOnly))\n })\n // Have to update the value in an onClose event if time is\n // enabled as changing the AM/PM via keyboard does not\n // trigger the onChange event:\n // https://github.com/flatpickr/flatpickr/issues/1957\n if (fpOpts.enableTime) {\n newVp.set(\n 'onClose',\n (\n selectedDates: Date[],\n currentDateString: string,\n self: FlatpickrInstance,\n ) => {\n onChange(getDateValue(selectedDates?.[0], dateOnly))\n if (typeof fpOpts.onClose === 'function') {\n fpOpts.onClose(selectedDates, currentDateString, self)\n }\n },\n )\n }\n vpRef.current = newVp\n return () => {\n // destroy the flatpickr instance when the dom element is removed\n vpRef.current = null\n if (newVp.destroy) {\n newVp.destroy()\n }\n }\n }, [dateOnly, flatpickrGuid, fpOpts, htmlElement, id, label, onChange])\n\n // Sync value with flatpickr when value is changed outside of component\n React.useEffect(() => {\n const vp = vpRef.current\n\n if (vp && vp.selectedDates) {\n const selectedDate = vp.selectedDates[0]\n if (!value && selectedDate) {\n try {\n vp.clear(false)\n } catch (error) {\n Sentry.captureException(new Error('Error clearing value'))\n }\n } else if (\n value &&\n typeof value === 'string' &&\n (!selectedDate || getDateValue(selectedDate, dateOnly) !== value)\n ) {\n try {\n const date = localisationService.generateDate({\n daysOffset: undefined,\n value,\n dateOnly: !!dateOnly,\n })\n if (date) {\n vp.setDate(date, false)\n }\n } catch (error) {\n Sentry.captureException(new Error(`Error setting date: ${value}`))\n }\n }\n }\n }, [dateOnly, value])\n\n const onBlur = React.useCallback(\n (e: React.FocusEvent<HTMLInputElement, Element>) => {\n if (e.target.value) {\n try {\n const date = Flatpickr.parseDate(e.target.value, fpOpts.dateFormat)\n if (date) {\n const newValue = getDateValue(date, dateOnly)\n onChange(newValue)\n return\n }\n } catch (e) {\n console.warn('Could not parse date on blur event', id, e)\n }\n }\n onChange(undefined)\n },\n [dateOnly, fpOpts.dateFormat, id, onChange],\n )\n\n return {\n onBlur,\n }\n}\n"]}
|
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "@oneblink/apps-react",
|
3
3
|
"description": "Helper functions for OneBlink apps in ReactJS.",
|
4
|
-
"version": "5.6.
|
4
|
+
"version": "5.6.1-beta.2",
|
5
5
|
"author": "OneBlink <developers@oneblink.io> (https://oneblink.io)",
|
6
6
|
"bugs": {
|
7
7
|
"url": "https://github.com/oneblink/apps-react/issues"
|