@oneblink/apps-react 2.5.3-beta.5 → 2.6.0-beta.1
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/PaymentReceipt.d.ts +6 -0
- package/dist/PaymentReceipt.js +149 -0
- package/dist/PaymentReceipt.js.map +1 -0
- package/dist/components/receipts/Receipt.d.ts +9 -0
- package/dist/components/receipts/Receipt.js +8 -0
- package/dist/components/receipts/Receipt.js.map +1 -0
- package/dist/components/receipts/ReceiptButton.d.ts +11 -0
- package/dist/components/receipts/ReceiptButton.js +9 -0
- package/dist/components/receipts/ReceiptButton.js.map +1 -0
- package/dist/components/receipts/ReceiptList.d.ts +11 -0
- package/dist/components/receipts/ReceiptList.js +13 -0
- package/dist/components/receipts/ReceiptList.js.map +1 -0
- package/dist/components/receipts/ReceiptListItem.d.ts +12 -0
- package/dist/components/receipts/ReceiptListItem.js +18 -0
- package/dist/components/receipts/ReceiptListItem.js.map +1 -0
- package/dist/components/receipts/index.d.ts +4 -0
- package/dist/components/receipts/index.js +5 -0
- package/dist/components/receipts/index.js.map +1 -0
- package/dist/components/renderer/FormElementOptions.d.ts +3 -1
- package/dist/components/renderer/FormElementOptions.js +2 -2
- package/dist/components/renderer/FormElementOptions.js.map +1 -1
- package/dist/components/renderer/OneBlinkFormElements.js +7 -7
- package/dist/components/renderer/OneBlinkFormElements.js.map +1 -1
- package/dist/form-elements/FormElementAutocomplete.d.ts +3 -3
- package/dist/form-elements/FormElementAutocomplete.js +5 -5
- package/dist/form-elements/FormElementAutocomplete.js.map +1 -1
- package/dist/form-elements/FormElementCheckBoxes.d.ts +3 -3
- package/dist/form-elements/FormElementCheckBoxes.js +3 -3
- package/dist/form-elements/FormElementCheckBoxes.js.map +1 -1
- package/dist/form-elements/FormElementCompliance.d.ts +3 -3
- package/dist/form-elements/FormElementCompliance.js +3 -3
- package/dist/form-elements/FormElementCompliance.js.map +1 -1
- package/dist/form-elements/FormElementRadio.d.ts +3 -3
- package/dist/form-elements/FormElementRadio.js +3 -3
- package/dist/form-elements/FormElementRadio.js.map +1 -1
- package/dist/form-elements/FormElementSelect.d.ts +3 -3
- package/dist/form-elements/FormElementSelect.js +3 -3
- package/dist/form-elements/FormElementSelect.js.map +1 -1
- package/dist/hooks/useFormElementOptions.d.ts +3 -3
- package/dist/hooks/useFormElementOptions.js +11 -3
- package/dist/hooks/useFormElementOptions.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/styles/list.scss +109 -0
- package/dist/styles/receipt.scss +24 -0
- package/dist/styles.css +121 -0
- package/dist/styles.css.map +1 -1
- package/dist/styles.scss +6 -0
- package/dist/types/form.d.ts +4 -2
- package/dist/types/form.js.map +1 -1
- package/package.json +2 -2
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"FormElementRadio.js","sourceRoot":"","sources":["../../src/form-elements/FormElementRadio.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAErC,OAAO,kBAAkB,MAAM,2CAA2C,CAAA;AAC1E,OAAO,qBAAqB,MAAM,gCAAgC,CAAA;AAClE,OAAO,eAAe,MAAM,0BAA0B,CAAA;AAEtD,OAAO,YAAY,MAAM,gBAAgB,CAAA;AACzC,OAAO,yBAAyB,MAAM,kDAAkD,CAAA;
|
1
|
+
{"version":3,"file":"FormElementRadio.js","sourceRoot":"","sources":["../../src/form-elements/FormElementRadio.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport clsx from 'clsx'\nimport { Radio } from '@mui/material'\n\nimport FormElementOptions from '../components/renderer/FormElementOptions'\nimport useFormElementOptions from '../hooks/useFormElementOptions'\nimport useBooleanState from '../hooks/useBooleanState'\nimport { FormTypes } from '@oneblink/types'\nimport OptionButton from './OptionButton'\nimport FormElementLabelContainer from '../components/renderer/FormElementLabelContainer'\nimport {\n FormElementValueChangeHandler,\n FormElementConditionallyShownElement,\n} from '../types/form'\n\ntype Props = {\n id: string\n element: FormTypes.RadioButtonElement\n value: unknown\n onChange: FormElementValueChangeHandler<string>\n displayValidationMessage: boolean\n validationMessage: string | undefined\n conditionallyShownOptionsElement:\n | FormElementConditionallyShownElement\n | undefined\n}\n\nfunction FormElementRadio({\n id,\n element,\n value,\n onChange,\n conditionallyShownOptionsElement,\n validationMessage,\n displayValidationMessage,\n}: Props) {\n const [isDirty, setIsDirty] = useBooleanState(false)\n const filteredOptions = useFormElementOptions({\n element,\n value,\n onChange,\n conditionallyShownOptionsElement,\n })\n\n return (\n <div className=\"cypress-radio-element\">\n <FormElementLabelContainer\n className=\"ob-radio\"\n id={id}\n element={element}\n required={element.required}\n >\n <FormElementOptions\n options={element.options}\n conditionallyShownOptionsElement={conditionallyShownOptionsElement}\n >\n {!element.buttons ? (\n <div>\n {filteredOptions.map((option) => (\n <div className=\"control\" key={option.value}>\n <label\n className=\"radio ob-radio__input-label cypress-radio-label\"\n htmlFor={`${id}_${option.value}`}\n >\n <Radio\n color=\"primary\"\n className=\"ob-radio__input cypress-radio-control\"\n classes={{\n checked: 'ob-radio__input-checked',\n }}\n disableRipple\n value={option.value || ''}\n id={`${id}_${option.value}`}\n disabled={element.readOnly}\n checked={value === option.value}\n onChange={(e) => {\n setIsDirty()\n onChange(element, e.target.value)\n }}\n />\n {` ${option.label}`}\n </label>\n </div>\n ))}\n </div>\n ) : (\n <div className=\"buttons ob-buttons ob-buttons-radio cypress-radio-button-group\">\n {filteredOptions.map((option) => {\n const isSelected = value === option.value\n return (\n <div className=\"ob-button-radio-container\" key={option.value}>\n <OptionButton\n element={element}\n option={option}\n isSelected={isSelected}\n onClick={() => {\n setIsDirty()\n onChange(element, option.value)\n }}\n className={clsx(\n 'button ob-button ob-button__input ob-radio__button cypress-radio-button-control',\n {\n 'is-primary': isSelected,\n 'is-light': !isSelected,\n },\n )}\n />\n </div>\n )\n })}\n </div>\n )}\n </FormElementOptions>\n\n {(isDirty || displayValidationMessage) && !!validationMessage && (\n <div role=\"alert\" className=\"has-margin-top-8\">\n <div className=\"has-text-danger ob-error__text cypress-validation-message\">\n {validationMessage}\n </div>\n </div>\n )}\n </FormElementLabelContainer>\n </div>\n )\n}\nexport default React.memo(FormElementRadio)\n"]}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import * as React from 'react';
|
2
2
|
import { FormTypes } from '@oneblink/types';
|
3
|
-
import { FormElementValueChangeHandler } from '../types/form';
|
3
|
+
import { FormElementValueChangeHandler, FormElementConditionallyShownElement } from '../types/form';
|
4
4
|
declare type Props = {
|
5
5
|
id: string;
|
6
6
|
element: FormTypes.SelectElement;
|
@@ -8,8 +8,8 @@ declare type Props = {
|
|
8
8
|
onChange: FormElementValueChangeHandler<string | string[]>;
|
9
9
|
displayValidationMessage: boolean;
|
10
10
|
validationMessage: string | undefined;
|
11
|
-
|
11
|
+
conditionallyShownOptionsElement: FormElementConditionallyShownElement | undefined;
|
12
12
|
};
|
13
|
-
declare function FormElementSelect({ id, element, value, onChange, validationMessage, displayValidationMessage,
|
13
|
+
declare function FormElementSelect({ id, element, value, onChange, validationMessage, displayValidationMessage, conditionallyShownOptionsElement, }: Props): JSX.Element;
|
14
14
|
declare const _default: React.MemoExoticComponent<typeof FormElementSelect>;
|
15
15
|
export default _default;
|
@@ -5,13 +5,13 @@ import useFormElementOptions from '../hooks/useFormElementOptions';
|
|
5
5
|
import LookupButton from '../components/renderer/LookupButton';
|
6
6
|
import FormElementLabelContainer from '../components/renderer/FormElementLabelContainer';
|
7
7
|
import ToggleAllCheckbox from '../components/renderer/ToggleAllCheckbox';
|
8
|
-
function FormElementSelect({ id, element, value, onChange, validationMessage, displayValidationMessage,
|
8
|
+
function FormElementSelect({ id, element, value, onChange, validationMessage, displayValidationMessage, conditionallyShownOptionsElement, }) {
|
9
9
|
const [isDirty, setIsDirty] = useBooleanState(false);
|
10
10
|
const filteredOptions = useFormElementOptions({
|
11
11
|
element,
|
12
12
|
value,
|
13
13
|
onChange,
|
14
|
-
|
14
|
+
conditionallyShownOptionsElement,
|
15
15
|
});
|
16
16
|
const selectedValuesAsArray = React.useMemo(() => {
|
17
17
|
if (Array.isArray(value))
|
@@ -22,7 +22,7 @@ function FormElementSelect({ id, element, value, onChange, validationMessage, di
|
|
22
22
|
}, [value]);
|
23
23
|
return (React.createElement("div", { className: "cypress-select-element" },
|
24
24
|
React.createElement(FormElementLabelContainer, { className: "ob-select", id: id, element: element, required: element.required },
|
25
|
-
React.createElement(FormElementOptions, { options: element.options },
|
25
|
+
React.createElement(FormElementOptions, { options: element.options, conditionallyShownOptionsElement: conditionallyShownOptionsElement },
|
26
26
|
element.multi && element.canToggleAll && (React.createElement(ToggleAllCheckbox, { id: id, element: element, options: filteredOptions, selected: selectedValuesAsArray, disabled: element.readOnly, onChange: onChange })),
|
27
27
|
!element.multi ? (React.createElement("div", { className: "field has-addons" },
|
28
28
|
React.createElement("div", { className: "control is-expanded" },
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"FormElementSelect.js","sourceRoot":"","sources":["../../src/form-elements/FormElementSelect.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,eAAe,MAAM,0BAA0B,CAAA;AACtD,OAAO,kBAAkB,MAAM,2CAA2C,CAAA;AAC1E,OAAO,qBAAqB,MAAM,gCAAgC,CAAA;AAClE,OAAO,YAAY,MAAM,qCAAqC,CAAA;AAE9D,OAAO,yBAAyB,MAAM,kDAAkD,CAAA;AACxF,OAAO,iBAAiB,MAAM,0CAA0C,CAAA;
|
1
|
+
{"version":3,"file":"FormElementSelect.js","sourceRoot":"","sources":["../../src/form-elements/FormElementSelect.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react'\n\nimport useBooleanState from '../hooks/useBooleanState'\nimport FormElementOptions from '../components/renderer/FormElementOptions'\nimport useFormElementOptions from '../hooks/useFormElementOptions'\nimport LookupButton from '../components/renderer/LookupButton'\nimport { FormTypes } from '@oneblink/types'\nimport FormElementLabelContainer from '../components/renderer/FormElementLabelContainer'\nimport ToggleAllCheckbox from '../components/renderer/ToggleAllCheckbox'\nimport {\n FormElementValueChangeHandler,\n FormElementConditionallyShownElement,\n} from '../types/form'\n\ntype Props = {\n id: string\n element: FormTypes.SelectElement\n value: unknown | undefined\n onChange: FormElementValueChangeHandler<string | string[]>\n displayValidationMessage: boolean\n validationMessage: string | undefined\n conditionallyShownOptionsElement:\n | FormElementConditionallyShownElement\n | undefined\n}\n\nfunction FormElementSelect({\n id,\n element,\n value,\n onChange,\n validationMessage,\n displayValidationMessage,\n conditionallyShownOptionsElement,\n}: Props) {\n const [isDirty, setIsDirty] = useBooleanState(false)\n\n const filteredOptions = useFormElementOptions({\n element,\n value,\n onChange,\n conditionallyShownOptionsElement,\n })\n\n const selectedValuesAsArray = React.useMemo(() => {\n if (Array.isArray(value)) return value\n if (typeof value === 'string') return [value]\n return []\n }, [value])\n\n return (\n <div className=\"cypress-select-element\">\n <FormElementLabelContainer\n className=\"ob-select\"\n id={id}\n element={element}\n required={element.required}\n >\n <FormElementOptions\n options={element.options}\n conditionallyShownOptionsElement={conditionallyShownOptionsElement}\n >\n {element.multi && element.canToggleAll && (\n <ToggleAllCheckbox\n id={id}\n element={element}\n options={filteredOptions}\n selected={selectedValuesAsArray}\n disabled={element.readOnly}\n onChange={onChange as FormElementValueChangeHandler<string[]>}\n />\n )}\n {!element.multi ? (\n <div className=\"field has-addons\">\n <div className=\"control is-expanded\">\n <div className=\"select is-fullwidth\">\n <select\n id={id}\n name={element.name}\n className=\"cypress-select-single-control ob-input ob-select__single\"\n value={typeof value === 'string' ? value : ''}\n onChange={(e) =>\n onChange(element, e.target.value || undefined)\n }\n required={element.required}\n disabled={element.readOnly}\n onBlur={setIsDirty}\n >\n <option value=\"\">Please choose</option>\n {filteredOptions.map(({ label, value }) => (\n <option key={value} value={value}>\n {label}\n </option>\n ))}\n </select>\n </div>\n </div>\n </div>\n ) : (\n <div className=\"select is-multiple control\">\n <select\n multiple\n id={id}\n name={element.name}\n className=\"cypress-select-multiple-control ob-input ob-select__multi\"\n value={Array.isArray(value) ? value : []}\n onChange={(e) => {\n const vals = []\n for (let i = 0; i < e.target.selectedOptions.length; i++) {\n vals.push(e.target.selectedOptions[i].value)\n }\n onChange(element, vals.length ? vals : undefined)\n }}\n required={element.required}\n disabled={element.readOnly}\n onBlur={setIsDirty}\n >\n {filteredOptions.map(({ label, value }) => (\n <option key={value} value={value}>\n {label}\n </option>\n ))}\n </select>\n\n <LookupButton\n hasMarginTop\n value={value}\n validationMessage={validationMessage}\n />\n </div>\n )}\n\n {(isDirty || displayValidationMessage) && !!validationMessage && (\n <div role=\"alert\" className=\"has-margin-top-8\">\n <div className=\"has-text-danger ob-error__text cypress-validation-message\">\n {validationMessage}\n </div>\n </div>\n )}\n </FormElementOptions>\n </FormElementLabelContainer>\n </div>\n )\n}\n\nexport default React.memo(FormElementSelect)\n"]}
|
@@ -1,9 +1,9 @@
|
|
1
1
|
import { FormTypes } from '@oneblink/types';
|
2
|
-
import { FormElementValueChangeHandler } from '../types/form';
|
3
|
-
export default function useFormElementOptions<T>({ element, value, onChange,
|
2
|
+
import { FormElementValueChangeHandler, FormElementConditionallyShownElement } from '../types/form';
|
3
|
+
export default function useFormElementOptions<T>({ element, value, onChange, conditionallyShownOptionsElement, onFilter, }: {
|
4
4
|
element: FormTypes.FormElementWithOptions;
|
5
5
|
value: unknown | undefined;
|
6
6
|
onChange: FormElementValueChangeHandler<T>;
|
7
|
-
|
7
|
+
conditionallyShownOptionsElement: FormElementConditionallyShownElement | undefined;
|
8
8
|
onFilter?: (choiceElementOption: FormTypes.ChoiceElementOption) => boolean;
|
9
9
|
}): FormTypes.ChoiceElementOption[];
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import * as React from 'react';
|
2
|
-
export default function useFormElementOptions({ element, value, onChange,
|
2
|
+
export default function useFormElementOptions({ element, value, onChange, conditionallyShownOptionsElement, onFilter, }) {
|
3
|
+
const conditionallyShownOptions = conditionallyShownOptionsElement === null || conditionallyShownOptionsElement === void 0 ? void 0 : conditionallyShownOptionsElement.options;
|
3
4
|
//options that are shown due to conditional logic
|
4
5
|
const shownOptions = React.useMemo(() => {
|
5
6
|
if (!element.options) {
|
@@ -16,7 +17,8 @@ export default function useFormElementOptions({ element, value, onChange, condit
|
|
16
17
|
//options that are shown based on conditional logic and user input
|
17
18
|
const filteredOptions = React.useMemo(() => shownOptions.filter((option) => !onFilter || onFilter(option)), [shownOptions, onFilter]);
|
18
19
|
React.useEffect(() => {
|
19
|
-
if (!element.options
|
20
|
+
if (!element.options ||
|
21
|
+
(conditionallyShownOptionsElement === null || conditionallyShownOptionsElement === void 0 ? void 0 : conditionallyShownOptionsElement.dependencyIsLoading)) {
|
20
22
|
return;
|
21
23
|
}
|
22
24
|
if (typeof value === 'string' &&
|
@@ -32,7 +34,13 @@ export default function useFormElementOptions({ element, value, onChange, condit
|
|
32
34
|
onChange(element, newValueArray);
|
33
35
|
}
|
34
36
|
}
|
35
|
-
}, [
|
37
|
+
}, [
|
38
|
+
element,
|
39
|
+
shownOptions,
|
40
|
+
onChange,
|
41
|
+
value,
|
42
|
+
conditionallyShownOptionsElement === null || conditionallyShownOptionsElement === void 0 ? void 0 : conditionallyShownOptionsElement.dependencyIsLoading,
|
43
|
+
]);
|
36
44
|
return filteredOptions;
|
37
45
|
}
|
38
46
|
//# sourceMappingURL=useFormElementOptions.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useFormElementOptions.js","sourceRoot":"","sources":["../../src/hooks/useFormElementOptions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;
|
1
|
+
{"version":3,"file":"useFormElementOptions.js","sourceRoot":"","sources":["../../src/hooks/useFormElementOptions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAM9B,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAAI,EAC/C,OAAO,EACP,KAAK,EACL,QAAQ,EACR,gCAAgC,EAChC,QAAQ,GAST;IACC,MAAM,yBAAyB,GAAG,gCAAgC,aAAhC,gCAAgC,uBAAhC,gCAAgC,CAAE,OAAO,CAAA;IAC3E,iDAAiD;IACjD,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAkC,GAAG,EAAE;QACvE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YACpB,OAAO,EAAE,CAAA;SACV;QACD,IAAI,CAAC,yBAAyB,IAAI,CAAC,QAAQ,EAAE;YAC3C,OAAO,OAAO,CAAC,OAAO,CAAA;SACvB;QACD,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;YACvC,OAAO,CACL,CAAC,yBAAyB;gBAC1B,yBAAyB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,CAC7D,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,EAAE,CAAC,yBAAyB,EAAE,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAA;IAE1D,kEAAkE;IAClE,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,CACnC,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,EACpE,CAAC,YAAY,EAAE,QAAQ,CAAC,CACzB,CAAA;IAED,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IACE,CAAC,OAAO,CAAC,OAAO;aAChB,gCAAgC,aAAhC,gCAAgC,uBAAhC,gCAAgC,CAAE,mBAAmB,CAAA,EACrD;YACA,OAAM;SACP;QAED,IACE,OAAO,KAAK,KAAK,QAAQ;YACzB,KAAK;YACL,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC,EACtD;YACA,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;YAC5B,OAAM;SACP;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACxB,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,EAAE,CAC9C,YAAY,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,aAAa,KAAK,MAAM,CAAC,KAAK,CAAC,CAC9D,CAAA;YACD,IAAI,QAAQ,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE;gBACpC,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAA;gBAC5D,QAAQ,CAAC,OAAO,EAAE,aAA8B,CAAC,CAAA;aAClD;SACF;IACH,CAAC,EAAE;QACD,OAAO;QACP,YAAY;QACZ,QAAQ;QACR,KAAK;QACL,gCAAgC,aAAhC,gCAAgC,uBAAhC,gCAAgC,CAAE,mBAAmB;KACtD,CAAC,CAAA;IAEF,OAAO,eAAe,CAAA;AACxB,CAAC","sourcesContent":["import { FormTypes } from '@oneblink/types'\nimport * as React from 'react'\nimport {\n FormElementValueChangeHandler,\n FormElementConditionallyShownElement,\n} from '../types/form'\n\nexport default function useFormElementOptions<T>({\n element,\n value,\n onChange,\n conditionallyShownOptionsElement,\n onFilter,\n}: {\n element: FormTypes.FormElementWithOptions\n value: unknown | undefined\n onChange: FormElementValueChangeHandler<T>\n conditionallyShownOptionsElement:\n | FormElementConditionallyShownElement\n | undefined\n onFilter?: (choiceElementOption: FormTypes.ChoiceElementOption) => boolean\n}) {\n const conditionallyShownOptions = conditionallyShownOptionsElement?.options\n //options that are shown due to conditional logic\n const shownOptions = React.useMemo<FormTypes.ChoiceElementOption[]>(() => {\n if (!element.options) {\n return []\n }\n if (!conditionallyShownOptions && !onFilter) {\n return element.options\n }\n return element.options.filter((option) => {\n return (\n !conditionallyShownOptions ||\n conditionallyShownOptions.some(({ id }) => id === option.id)\n )\n })\n }, [conditionallyShownOptions, element.options, onFilter])\n\n //options that are shown based on conditional logic and user input\n const filteredOptions = React.useMemo<FormTypes.ChoiceElementOption[]>(\n () => shownOptions.filter((option) => !onFilter || onFilter(option)),\n [shownOptions, onFilter],\n )\n\n React.useEffect(() => {\n if (\n !element.options ||\n conditionallyShownOptionsElement?.dependencyIsLoading\n ) {\n return\n }\n\n if (\n typeof value === 'string' &&\n value &&\n !shownOptions.some((option) => value === option.value)\n ) {\n onChange(element, undefined)\n return\n }\n\n if (Array.isArray(value)) {\n const newValue = value.filter((selectedValue) =>\n shownOptions.some((option) => selectedValue === option.value),\n )\n if (newValue.length !== value.length) {\n const newValueArray = newValue.length ? newValue : undefined\n onChange(element, newValueArray as T | undefined)\n }\n }\n }, [\n element,\n shownOptions,\n onChange,\n value,\n conditionallyShownOptionsElement?.dependencyIsLoading,\n ])\n\n return filteredOptions\n}\n"]}
|
package/dist/index.d.ts
CHANGED
@@ -21,3 +21,4 @@ export { default as MuiV4CompatibleDatePicker } from './components/pickers/V4Com
|
|
21
21
|
export { default as MuiV4CompatibleDateTimePicker } from './components/pickers/V4CompatibleDateTimePicker';
|
22
22
|
export { default as MuiV4CompatibleTimePicker } from './components/pickers/V4CompatibleTimePicker';
|
23
23
|
export { default as ProgressBar } from './components/renderer/ProgressBar';
|
24
|
+
export { default as PaymentReceipt } from './PaymentReceipt';
|
package/dist/index.js
CHANGED
@@ -21,4 +21,5 @@ export { default as MuiV4CompatibleDatePicker } from './components/pickers/V4Com
|
|
21
21
|
export { default as MuiV4CompatibleDateTimePicker } from './components/pickers/V4CompatibleDateTimePicker';
|
22
22
|
export { default as MuiV4CompatibleTimePicker } from './components/pickers/V4CompatibleTimePicker';
|
23
23
|
export { default as ProgressBar } from './components/renderer/ProgressBar';
|
24
|
+
export { default as PaymentReceipt } from './PaymentReceipt';
|
24
25
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,IAAI,YAAY,EACxC,sBAAsB,GACvB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AACxE,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AACxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,kDAAkD,CAAA;AAC5F,OAAO,EAAE,OAAO,IAAI,mCAAmC,EAAE,MAAM,4DAA4D,CAAA;AAC3H,OAAO,EAAE,OAAO,IAAI,8BAA8B,EAAE,MAAM,uDAAuD,CAAA;AACjH,OAAO,EAAE,OAAO,IAAI,+BAA+B,EAAE,MAAM,wDAAwD,CAAA;AACnH,OAAO,EAAE,OAAO,IAAI,8BAA8B,EAAE,MAAM,uDAAuD,CAAA;AACjH,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,+CAA+C,CAAA;AAEjG,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAC9D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACpE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AACtE,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,gCAAgC,CAAA;AAClF,OAAO,EACL,OAAO,IAAI,YAAY,EACvB,wBAAwB,GACzB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AACzE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AACtE,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,gCAAgC,CAAA;AAClF,OAAO,EAAE,OAAO,IAAI,8BAA8B,EAAE,MAAM,wCAAwC,CAAA;AAElG,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,6CAA6C,CAAA;AAClG,OAAO,EAAE,OAAO,IAAI,6BAA6B,EAAE,MAAM,iDAAiD,CAAA;AAC1G,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,6CAA6C,CAAA;AAClG,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,mCAAmC,CAAA","sourcesContent":["export {\n OneBlinkFormUncontrolled as OneBlinkForm,\n OneBlinkFormControlled,\n} from './OneBlinkForm'\nexport { default as OneBlinkAutoSaveForm } from './OneBlinkAutoSaveForm'\nexport { default as OneBlinkReadOnlyForm } from './OneBlinkReadOnlyForm'\nexport { OneBlinkFormStoreProvider } from './components/formStore/OneBlinkFormStoreProvider'\nexport { default as OneBlinkFormStoreClearFiltersButton } from './components/formStore/OneBlinkFormStoreClearFiltersButton'\nexport { default as OneBlinkFormStoreColumnsButton } from './components/formStore/OneBlinkFormStoreColumnsButton'\nexport { default as OneBlinkFormStoreDownloadButton } from './components/formStore/OneBlinkFormStoreDownloadButton'\nexport { default as OneBlinkFormStoreRefreshButton } from './components/formStore/OneBlinkFormStoreRefreshButton'\nexport { default as OneBlinkFormStoreTable } from './components/formStore/OneBlinkFormStoreTable'\n\nexport { default as useIsMounted } from './hooks/useIsMounted'\nexport { default as useBooleanState } from './hooks/useBooleanState'\nexport { default as useNullableState } from './hooks/useNullableState'\nexport { default as useClickOutsideElement } from './hooks/useClickOutsideElement'\nexport {\n default as useIsOffline,\n IsOfflineContextProvider,\n} from './hooks/useIsOffline'\nexport { default as useLogin } from './hooks/useLogin'\nexport { default as useAuth, AuthContextProvider } from './hooks/useAuth'\nexport { default as useLoadDataState } from './hooks/useLoadDataState'\nexport { default as useFormSubmissionState } from './hooks/useFormSubmissionState'\nexport { default as useFormSubmissionAutoSaveState } from './hooks/useFormSubmissionAutoSaveState'\n\nexport { default as MuiV4CompatibleDatePicker } from './components/pickers/V4CompatibleDatePicker'\nexport { default as MuiV4CompatibleDateTimePicker } from './components/pickers/V4CompatibleDateTimePicker'\nexport { default as MuiV4CompatibleTimePicker } from './components/pickers/V4CompatibleTimePicker'\nexport { default as ProgressBar } from './components/renderer/ProgressBar'\n"]}
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,IAAI,YAAY,EACxC,sBAAsB,GACvB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AACxE,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AACxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,kDAAkD,CAAA;AAC5F,OAAO,EAAE,OAAO,IAAI,mCAAmC,EAAE,MAAM,4DAA4D,CAAA;AAC3H,OAAO,EAAE,OAAO,IAAI,8BAA8B,EAAE,MAAM,uDAAuD,CAAA;AACjH,OAAO,EAAE,OAAO,IAAI,+BAA+B,EAAE,MAAM,wDAAwD,CAAA;AACnH,OAAO,EAAE,OAAO,IAAI,8BAA8B,EAAE,MAAM,uDAAuD,CAAA;AACjH,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,+CAA+C,CAAA;AAEjG,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAC9D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACpE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AACtE,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,gCAAgC,CAAA;AAClF,OAAO,EACL,OAAO,IAAI,YAAY,EACvB,wBAAwB,GACzB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AACzE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AACtE,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,gCAAgC,CAAA;AAClF,OAAO,EAAE,OAAO,IAAI,8BAA8B,EAAE,MAAM,wCAAwC,CAAA;AAElG,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,6CAA6C,CAAA;AAClG,OAAO,EAAE,OAAO,IAAI,6BAA6B,EAAE,MAAM,iDAAiD,CAAA;AAC1G,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,6CAA6C,CAAA;AAClG,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,mCAAmC,CAAA;AAC1E,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAA","sourcesContent":["export {\n OneBlinkFormUncontrolled as OneBlinkForm,\n OneBlinkFormControlled,\n} from './OneBlinkForm'\nexport { default as OneBlinkAutoSaveForm } from './OneBlinkAutoSaveForm'\nexport { default as OneBlinkReadOnlyForm } from './OneBlinkReadOnlyForm'\nexport { OneBlinkFormStoreProvider } from './components/formStore/OneBlinkFormStoreProvider'\nexport { default as OneBlinkFormStoreClearFiltersButton } from './components/formStore/OneBlinkFormStoreClearFiltersButton'\nexport { default as OneBlinkFormStoreColumnsButton } from './components/formStore/OneBlinkFormStoreColumnsButton'\nexport { default as OneBlinkFormStoreDownloadButton } from './components/formStore/OneBlinkFormStoreDownloadButton'\nexport { default as OneBlinkFormStoreRefreshButton } from './components/formStore/OneBlinkFormStoreRefreshButton'\nexport { default as OneBlinkFormStoreTable } from './components/formStore/OneBlinkFormStoreTable'\n\nexport { default as useIsMounted } from './hooks/useIsMounted'\nexport { default as useBooleanState } from './hooks/useBooleanState'\nexport { default as useNullableState } from './hooks/useNullableState'\nexport { default as useClickOutsideElement } from './hooks/useClickOutsideElement'\nexport {\n default as useIsOffline,\n IsOfflineContextProvider,\n} from './hooks/useIsOffline'\nexport { default as useLogin } from './hooks/useLogin'\nexport { default as useAuth, AuthContextProvider } from './hooks/useAuth'\nexport { default as useLoadDataState } from './hooks/useLoadDataState'\nexport { default as useFormSubmissionState } from './hooks/useFormSubmissionState'\nexport { default as useFormSubmissionAutoSaveState } from './hooks/useFormSubmissionAutoSaveState'\n\nexport { default as MuiV4CompatibleDatePicker } from './components/pickers/V4CompatibleDatePicker'\nexport { default as MuiV4CompatibleDateTimePicker } from './components/pickers/V4CompatibleDateTimePicker'\nexport { default as MuiV4CompatibleTimePicker } from './components/pickers/V4CompatibleTimePicker'\nexport { default as ProgressBar } from './components/renderer/ProgressBar'\nexport { default as PaymentReceipt } from './PaymentReceipt'\n"]}
|
@@ -0,0 +1,109 @@
|
|
1
|
+
.ob-list {
|
2
|
+
width: 100%;
|
3
|
+
|
4
|
+
&.has-dividers {
|
5
|
+
.ob-list__item:not(:last-child) {
|
6
|
+
border-bottom: 1px solid $grey-lighter;
|
7
|
+
}
|
8
|
+
}
|
9
|
+
|
10
|
+
&.has-borders {
|
11
|
+
border: 1px solid $grey-lighter;
|
12
|
+
}
|
13
|
+
|
14
|
+
&.has-shadow {
|
15
|
+
background-color: $white;
|
16
|
+
box-shadow: $elevation-1;
|
17
|
+
}
|
18
|
+
}
|
19
|
+
|
20
|
+
.ob-list__item {
|
21
|
+
display: flex;
|
22
|
+
width: 100%;
|
23
|
+
padding: $size-8;
|
24
|
+
|
25
|
+
&.is-clickable {
|
26
|
+
cursor: pointer;
|
27
|
+
|
28
|
+
&:hover {
|
29
|
+
background-color: $white-bis;
|
30
|
+
}
|
31
|
+
|
32
|
+
&:focus {
|
33
|
+
outline: none;
|
34
|
+
}
|
35
|
+
}
|
36
|
+
}
|
37
|
+
|
38
|
+
.ob-list__avatar {
|
39
|
+
display: flex;
|
40
|
+
justify-content: center;
|
41
|
+
align-items: center;
|
42
|
+
min-width: $size-5;
|
43
|
+
min-height: $size-5;
|
44
|
+
padding-left: $size-8;
|
45
|
+
padding-right: $size-6;
|
46
|
+
}
|
47
|
+
|
48
|
+
.ob-list__content {
|
49
|
+
flex: 1;
|
50
|
+
display: flex;
|
51
|
+
flex-direction: column;
|
52
|
+
justify-content: center;
|
53
|
+
min-width: 0;
|
54
|
+
}
|
55
|
+
|
56
|
+
.ob-list__actions {
|
57
|
+
display: flex;
|
58
|
+
justify-content: center;
|
59
|
+
align-items: center;
|
60
|
+
padding-left: $size-6;
|
61
|
+
|
62
|
+
&:focus {
|
63
|
+
outline: none;
|
64
|
+
}
|
65
|
+
}
|
66
|
+
|
67
|
+
.ob-list__text-primary {
|
68
|
+
color: $black;
|
69
|
+
}
|
70
|
+
|
71
|
+
.ob-list__text-tertiary,
|
72
|
+
.ob-list__text-secondary {
|
73
|
+
font-size: 0.8rem;
|
74
|
+
color: $grey;
|
75
|
+
}
|
76
|
+
|
77
|
+
.ob-button.ob-list__button {
|
78
|
+
min-width: unset;
|
79
|
+
}
|
80
|
+
|
81
|
+
.ob-list__key {
|
82
|
+
padding-right: $size-6;
|
83
|
+
width: 120px;
|
84
|
+
color: $black;
|
85
|
+
word-break: break-word;
|
86
|
+
}
|
87
|
+
|
88
|
+
.ob-list__content-wrapper {
|
89
|
+
display: flex;
|
90
|
+
flex-grow: 1;
|
91
|
+
flex-direction: row;
|
92
|
+
}
|
93
|
+
|
94
|
+
@media only screen and (max-width: $mobile) {
|
95
|
+
.ob-list__content-wrapper {
|
96
|
+
flex-direction: column;
|
97
|
+
}
|
98
|
+
|
99
|
+
.ob-list__key {
|
100
|
+
padding-right: 0;
|
101
|
+
width: 100%;
|
102
|
+
}
|
103
|
+
|
104
|
+
.section .ob-list {
|
105
|
+
margin-right: -$section-padding-mobile-x;
|
106
|
+
margin-left: -$section-padding-mobile-x;
|
107
|
+
width: calc(100% + #{$section-padding-mobile-x * 2});
|
108
|
+
}
|
109
|
+
}
|
@@ -0,0 +1,24 @@
|
|
1
|
+
$lighterWarning: hsl(38, 100%, 50%);
|
2
|
+
|
3
|
+
.ob-receipt {
|
4
|
+
max-width: 400px;
|
5
|
+
margin: auto;
|
6
|
+
}
|
7
|
+
|
8
|
+
.ob-receipt__button {
|
9
|
+
flex: 1;
|
10
|
+
}
|
11
|
+
|
12
|
+
.ob-payment-receipt__warning .ob-list__text-secondary {
|
13
|
+
color: $black;
|
14
|
+
font-weight: bold;
|
15
|
+
font-size: 1rem;
|
16
|
+
}
|
17
|
+
|
18
|
+
.ob-payment-receipt__warning .ob-list__content-wrapper {
|
19
|
+
padding: 1rem;
|
20
|
+
}
|
21
|
+
|
22
|
+
.ob-payment-receipt__warning {
|
23
|
+
background-color: $lighterWarning;
|
24
|
+
}
|
package/dist/styles.css
CHANGED
@@ -9321,6 +9321,127 @@ textarea:disabled {
|
|
9321
9321
|
width: 100%;
|
9322
9322
|
}
|
9323
9323
|
|
9324
|
+
.ob-list {
|
9325
|
+
width: 100%;
|
9326
|
+
}
|
9327
|
+
.ob-list.has-dividers .ob-list__item:not(:last-child) {
|
9328
|
+
border-bottom: 1px solid hsl(0deg, 0%, 86%);
|
9329
|
+
}
|
9330
|
+
.ob-list.has-borders {
|
9331
|
+
border: 1px solid hsl(0deg, 0%, 86%);
|
9332
|
+
}
|
9333
|
+
.ob-list.has-shadow {
|
9334
|
+
background-color: hsl(0deg, 0%, 100%);
|
9335
|
+
box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 2px 1px -1px rgba(0, 0, 0, 0.12);
|
9336
|
+
}
|
9337
|
+
|
9338
|
+
.ob-list__item {
|
9339
|
+
display: flex;
|
9340
|
+
width: 100%;
|
9341
|
+
padding: 0.5rem;
|
9342
|
+
}
|
9343
|
+
.ob-list__item.is-clickable {
|
9344
|
+
cursor: pointer;
|
9345
|
+
}
|
9346
|
+
.ob-list__item.is-clickable:hover {
|
9347
|
+
background-color: hsl(0deg, 0%, 98%);
|
9348
|
+
}
|
9349
|
+
.ob-list__item.is-clickable:focus {
|
9350
|
+
outline: none;
|
9351
|
+
}
|
9352
|
+
|
9353
|
+
.ob-list__avatar {
|
9354
|
+
display: flex;
|
9355
|
+
justify-content: center;
|
9356
|
+
align-items: center;
|
9357
|
+
min-width: 1.25rem;
|
9358
|
+
min-height: 1.25rem;
|
9359
|
+
padding-left: 0.5rem;
|
9360
|
+
padding-right: 1rem;
|
9361
|
+
}
|
9362
|
+
|
9363
|
+
.ob-list__content {
|
9364
|
+
flex: 1;
|
9365
|
+
display: flex;
|
9366
|
+
flex-direction: column;
|
9367
|
+
justify-content: center;
|
9368
|
+
min-width: 0;
|
9369
|
+
}
|
9370
|
+
|
9371
|
+
.ob-list__actions {
|
9372
|
+
display: flex;
|
9373
|
+
justify-content: center;
|
9374
|
+
align-items: center;
|
9375
|
+
padding-left: 1rem;
|
9376
|
+
}
|
9377
|
+
.ob-list__actions:focus {
|
9378
|
+
outline: none;
|
9379
|
+
}
|
9380
|
+
|
9381
|
+
.ob-list__text-primary {
|
9382
|
+
color: hsl(0deg, 0%, 4%);
|
9383
|
+
}
|
9384
|
+
|
9385
|
+
.ob-list__text-tertiary,
|
9386
|
+
.ob-list__text-secondary {
|
9387
|
+
font-size: 0.8rem;
|
9388
|
+
color: hsl(0deg, 0%, 48%);
|
9389
|
+
}
|
9390
|
+
|
9391
|
+
.ob-button.ob-list__button {
|
9392
|
+
min-width: unset;
|
9393
|
+
}
|
9394
|
+
|
9395
|
+
.ob-list__key {
|
9396
|
+
padding-right: 1rem;
|
9397
|
+
width: 120px;
|
9398
|
+
color: hsl(0deg, 0%, 4%);
|
9399
|
+
word-break: break-word;
|
9400
|
+
}
|
9401
|
+
|
9402
|
+
.ob-list__content-wrapper {
|
9403
|
+
display: flex;
|
9404
|
+
flex-grow: 1;
|
9405
|
+
flex-direction: row;
|
9406
|
+
}
|
9407
|
+
|
9408
|
+
@media only screen and (max-width: 767px) {
|
9409
|
+
.ob-list__content-wrapper {
|
9410
|
+
flex-direction: column;
|
9411
|
+
}
|
9412
|
+
.ob-list__key {
|
9413
|
+
padding-right: 0;
|
9414
|
+
width: 100%;
|
9415
|
+
}
|
9416
|
+
.section .ob-list {
|
9417
|
+
margin-right: -0.5rem;
|
9418
|
+
margin-left: -0.5rem;
|
9419
|
+
width: calc(100% + 1rem);
|
9420
|
+
}
|
9421
|
+
}
|
9422
|
+
.ob-receipt {
|
9423
|
+
max-width: 400px;
|
9424
|
+
margin: auto;
|
9425
|
+
}
|
9426
|
+
|
9427
|
+
.ob-receipt__button {
|
9428
|
+
flex: 1;
|
9429
|
+
}
|
9430
|
+
|
9431
|
+
.ob-payment-receipt__warning .ob-list__text-secondary {
|
9432
|
+
color: hsl(0deg, 0%, 4%);
|
9433
|
+
font-weight: bold;
|
9434
|
+
font-size: 1rem;
|
9435
|
+
}
|
9436
|
+
|
9437
|
+
.ob-payment-receipt__warning .ob-list__content-wrapper {
|
9438
|
+
padding: 1rem;
|
9439
|
+
}
|
9440
|
+
|
9441
|
+
.ob-payment-receipt__warning {
|
9442
|
+
background-color: hsl(38deg, 100%, 50%);
|
9443
|
+
}
|
9444
|
+
|
9324
9445
|
.flatpickr-calendar {
|
9325
9446
|
background: transparent;
|
9326
9447
|
opacity: 0;
|