@rolster/react-components 18.22.1 → 18.22.3

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.
@@ -514,6 +514,15 @@
514
514
  transition: all 160ms 0ms var(--rls-standard-curve);
515
515
  } /*# sourceMappingURL=CheckBox.css.map */
516
516
 
517
+ .rls-image {
518
+ content-visibility: auto;
519
+ background-color: var(--rls-theme-color-600);
520
+ opacity: 0;
521
+ }
522
+ .rls-image--complet {
523
+ opacity: 1;
524
+ } /*# sourceMappingURL=Image.css.map */
525
+
517
526
  .rls-input {
518
527
  --pvt-font-color: var(--rlc-input-font-color, var(--rls-app-color-900));
519
528
  --pvt-font-size: var(--rlc-input-font-size, var(--rls-input-font-size));
@@ -2609,10 +2618,10 @@
2609
2618
  .rls-image-chooser__modal {
2610
2619
  --rlc-image-editor-footer-padding: 0rem var(--rls-sizing-x12)
2611
2620
  var(--rls-sizing-x12) var(--rls-sizing-x12);
2612
- --rlc-modal-max-width: calc(100% - var(--rls-sizing-x16));
2621
+ --rlc-modal-max-width: calc(250rem - var(--rls-sizing-x16));
2613
2622
  width: 100%;
2614
2623
  }
2615
- @media only screen and (max-width: 420px) {
2624
+ @media only screen and (max-width: 480px) {
2616
2625
  .rls-image-chooser__modal {
2617
2626
  --rlc-image-editor-footer-padding: 0rem var(--rls-sizing-x8)
2618
2627
  var(--rls-sizing-x8) var(--rls-sizing-x8);
package/dist/es/index.js CHANGED
@@ -1552,6 +1552,24 @@ function RlsCheckBoxControl({ formControl, disabled, identifier, rlsTheme }) {
1552
1552
  return (jsxRuntimeExports.jsx(RlsCheckBox, { identifier: identifier, checked: !!formControl.value, disabled: disabled, onClick: onClick, rlsTheme: rlsTheme }));
1553
1553
  }
1554
1554
 
1555
+ function RlsImage({ src }) {
1556
+ const [isComplet, setIsComplet] = useState(false);
1557
+ const refSrc = useRef(src);
1558
+ const className = useMemo(() => {
1559
+ return renderClassStatus('rls-image', { complet: isComplet });
1560
+ }, [isComplet]);
1561
+ useEffect(() => {
1562
+ if (refSrc.current !== src) {
1563
+ setIsComplet(false);
1564
+ refSrc.current = src;
1565
+ }
1566
+ }, [src]);
1567
+ const onLoad = useCallback(() => {
1568
+ setIsComplet(true);
1569
+ }, []);
1570
+ return jsxRuntimeExports.jsx("img", { className: className, src: src, onLoad: onLoad });
1571
+ }
1572
+
1555
1573
  function RlsInput({ children, decimals, disabled, formControl, identifier, onBlur, onEnter, onFocus, onKeyDown, onKeyUp, onValue, placeholder, readOnly, type, value }) {
1556
1574
  const valueInitial = formControl?.value ?? value ? String(value) : '';
1557
1575
  const [valueInput, setValueInput] = useState(valueInitial);
@@ -3376,25 +3394,28 @@ function RlsImageEditor(props) {
3376
3394
  refOverlayLeft.current.style.width = `calc(${left}px)`;
3377
3395
  }, []);
3378
3396
  const refreshSelectionFromWidth = useCallback((rateSelection) => {
3379
- const _ratio = rateSelection * getRatioFactor(props.ratio || '1:1');
3380
- let width = (refImage.current.offsetWidth * rateSelection) / 100;
3381
- let height = (refImage.current.offsetWidth * _ratio) / 100;
3382
- if (height > refImage.current.offsetHeight) {
3383
- height = refImage.current.offsetHeight;
3384
- width =
3385
- (height * refImage.current.offsetHeight) /
3386
- refImage.current.offsetHeight;
3397
+ const ratioFactor = getRatioFactor(props.ratio || '1:1');
3398
+ const _ratio = rateSelection * ratioFactor;
3399
+ const offsetWidth = refImage.current?.offsetWidth || 0;
3400
+ const offsetHeight = refImage.current?.offsetHeight || 0;
3401
+ let width = (offsetWidth * rateSelection) / 100;
3402
+ let height = (offsetWidth * _ratio) / 100;
3403
+ if (height > offsetHeight) {
3404
+ height = offsetHeight;
3405
+ width = height / ratioFactor;
3387
3406
  }
3388
3407
  return { height, width };
3389
3408
  }, [props.ratio]);
3390
3409
  const refreshSelectionFromHeight = useCallback((rateSelection) => {
3391
- const _ratio = rateSelection * getRatioFactor(props.ratio || '1:1');
3392
- let height = (refImage.current.offsetHeight * rateSelection) / 100;
3393
- let width = (refImage.current.offsetHeight * _ratio) / 100;
3394
- if (width > refImage.current.offsetWidth) {
3395
- width = refImage.current.offsetWidth;
3396
- height =
3397
- (width * refImage.current.offsetWidth) / refImage.current.offsetWidth;
3410
+ const ratioFactor = getRatioFactor(props.ratio || '1:1');
3411
+ const _ratio = rateSelection * ratioFactor;
3412
+ const offsetWidth = refImage.current?.offsetWidth || 0;
3413
+ const offsetHeight = refImage.current?.offsetHeight || 0;
3414
+ let height = (offsetHeight * rateSelection) / 100;
3415
+ let width = (offsetHeight * _ratio) / 100;
3416
+ if (width > offsetWidth) {
3417
+ width = offsetWidth;
3418
+ height = width / ratioFactor;
3398
3419
  }
3399
3420
  return { height, width };
3400
3421
  }, [props.ratio]);
@@ -3497,13 +3518,14 @@ function RlsImageEditor(props) {
3497
3518
  props.formControl?.setValue(value);
3498
3519
  };
3499
3520
  }
3500
- }, props.mimeType || 'image/jpeg', 1);
3521
+ }, props.mimeType || 'image/jpeg', props.imgQuality || 1);
3501
3522
  }, [
3502
3523
  props.ratio,
3503
3524
  props.mimeType,
3504
3525
  props.onValue,
3505
3526
  props.formControl,
3506
- props.imgWidth
3527
+ props.imgWidth,
3528
+ props.imgQuality
3507
3529
  ]);
3508
3530
  const onRestore = useCallback(() => {
3509
3531
  const context = refCanvas.current.getContext('2d');
@@ -3565,7 +3587,7 @@ function RlsImageChooser(props) {
3565
3587
  const onCancel = useCallback(() => {
3566
3588
  setSrcEditor(undefined);
3567
3589
  }, []);
3568
- return (jsxRuntimeExports.jsxs("div", { className: "rls-image-chooser", children: [jsxRuntimeExports.jsx("div", { className: "rls-image-chooser__avatar", onClick: onSelect, children: src && jsxRuntimeExports.jsx("img", { src: src }) }), srcEditor && (jsxRuntimeExports.jsx(RlsModal, { className: "rls-image-chooser__modal", visible: true, children: jsxRuntimeExports.jsx(RlsImageEditor, { src: srcEditor, formControl: props.formControl, imgWidth: props.imgWidth, onValue: onEditorValue, children: jsxRuntimeExports.jsx(RlsButton, { type: "flat", rlsTheme: "danger", onClick: onCancel, disabled: props.disabled, children: labels.actionCancel }) }) })), jsxRuntimeExports.jsx("input", { ref: refInput, type: "file", disabled: props.disabled })] }));
3590
+ return (jsxRuntimeExports.jsxs("div", { className: "rls-image-chooser", children: [jsxRuntimeExports.jsx("div", { className: "rls-image-chooser__avatar", onClick: onSelect, children: src && jsxRuntimeExports.jsx("img", { src: src }) }), srcEditor && (jsxRuntimeExports.jsx(RlsModal, { className: "rls-image-chooser__modal", visible: true, children: jsxRuntimeExports.jsx(RlsImageEditor, { src: srcEditor, formControl: props.formControl, imgWidth: props.imgWidth, imgQuality: props.imgQuality, onValue: onEditorValue, children: jsxRuntimeExports.jsx(RlsButton, { type: "flat", rlsTheme: "danger", onClick: onCancel, disabled: props.disabled, children: labels.actionCancel }) }) })), jsxRuntimeExports.jsx("input", { ref: refInput, type: "file", disabled: props.disabled })] }));
3569
3591
  }
3570
3592
 
3571
3593
  const DURATION_ANIMATION = 240;
@@ -3654,5 +3676,5 @@ function RlsApplication({ children }) {
3654
3676
  }, children: [jsxRuntimeExports.jsxs("div", { className: className, children: [children, RlsSnackbar] }), RlsConfirmation] }));
3655
3677
  }
3656
3678
 
3657
- export { ConfirmationResult, RlsAlert, RlsAmount, RlsApplication, RlsAvatar, RlsBadge, RlsBallot, RlsBreadcrumb, RlsButton, RlsButtonAction, RlsButtonProgress, RlsButtonToggle, RlsCard, RlsCheckBox, RlsCheckBoxControl, RlsConfirmation, RlsContext, RlsDatatable, RlsDatatableCell, RlsDatatableData, RlsDatatableFloating, RlsDatatableHeader, RlsDatatableRecord, RlsDatatableSubheader, RlsDatatableTitle, RlsDatatableTotals, RlsFieldAutocomplete, RlsFieldAutocompleteTemplate, RlsFieldDate, RlsFieldDateRange, RlsFieldMoney, RlsFieldNumber, RlsFieldPassword, RlsFieldReadonly, RlsFieldSelect, RlsFieldSelectTemplate, RlsFieldText, RlsFormNavigation, RlsIcon, RlsImageChooser, RlsImageEditor, RlsInput, RlsInputMoney, RlsInputNumber, RlsInputPassword, RlsInputSearch, RlsInputText, RlsLabel, RlsLabelCheckBox, RlsLabelRadioButton, RlsLabelSwitch, RlsMessageFormError, RlsMessageIcon, RlsModal, RlsPagination, RlsPickerDate, RlsPickerDateRange, RlsPickerDay, RlsPickerDayRange, RlsPickerMonth, RlsPickerSelectorTitle, RlsPickerYear, RlsPoster, RlsProgressBar, RlsProgressCircular, RlsRadioButton, RlsSkeleton, RlsSkeletonText, RlsSlider, RlsSnackbar, RlsSwitch, RlsSwitchControl, RlsTabularText, RlsToolbar, rangeFormatTemplate, renderClassStatus, setErrorsI18n, useConfirmation, useDatatable, useFieldAutocomplete, useFieldSelect, useListController, useRelocationOnComponent, useResize, useSnackbar };
3679
+ export { ConfirmationResult, RlsAlert, RlsAmount, RlsApplication, RlsAvatar, RlsBadge, RlsBallot, RlsBreadcrumb, RlsButton, RlsButtonAction, RlsButtonProgress, RlsButtonToggle, RlsCard, RlsCheckBox, RlsCheckBoxControl, RlsConfirmation, RlsContext, RlsDatatable, RlsDatatableCell, RlsDatatableData, RlsDatatableFloating, RlsDatatableHeader, RlsDatatableRecord, RlsDatatableSubheader, RlsDatatableTitle, RlsDatatableTotals, RlsFieldAutocomplete, RlsFieldAutocompleteTemplate, RlsFieldDate, RlsFieldDateRange, RlsFieldMoney, RlsFieldNumber, RlsFieldPassword, RlsFieldReadonly, RlsFieldSelect, RlsFieldSelectTemplate, RlsFieldText, RlsFormNavigation, RlsIcon, RlsImage, RlsImageChooser, RlsImageEditor, RlsInput, RlsInputMoney, RlsInputNumber, RlsInputPassword, RlsInputSearch, RlsInputText, RlsLabel, RlsLabelCheckBox, RlsLabelRadioButton, RlsLabelSwitch, RlsMessageFormError, RlsMessageIcon, RlsModal, RlsPagination, RlsPickerDate, RlsPickerDateRange, RlsPickerDay, RlsPickerDayRange, RlsPickerMonth, RlsPickerSelectorTitle, RlsPickerYear, RlsPoster, RlsProgressBar, RlsProgressCircular, RlsRadioButton, RlsSkeleton, RlsSkeletonText, RlsSlider, RlsSnackbar, RlsSwitch, RlsSwitchControl, RlsTabularText, RlsToolbar, rangeFormatTemplate, renderClassStatus, setErrorsI18n, useConfirmation, useDatatable, useFieldAutocomplete, useFieldSelect, useListController, useRelocationOnComponent, useResize, useSnackbar };
3658
3680
  //# sourceMappingURL=index.js.map