@ctlyst.id/internal-ui 5.4.7 → 5.4.9

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/index.mjs CHANGED
@@ -5902,6 +5902,7 @@ import { useCallback as useCallback4, useEffect as useEffect4, useState as useSt
5902
5902
  import { useDropzone } from "react-dropzone";
5903
5903
 
5904
5904
  // src/components/uploader/constants.ts
5905
+ var ONE_MEGA_BYTE = 1e6;
5905
5906
  var messages = {
5906
5907
  dragActive: "Drop file disini...",
5907
5908
  dragInActive: `(Klik atau drag untuk input file)`,
@@ -5915,7 +5916,17 @@ var IMG_EXT = {
5915
5916
  png: "png",
5916
5917
  gif: "gif"
5917
5918
  };
5919
+ var EXCEL_EXT = {
5920
+ xls: "xls",
5921
+ xlsx: "xlsx",
5922
+ csv: "csv"
5923
+ };
5918
5924
  var DEFAULT_IMAGE_MIME_TYPE = [IMG_EXT.jpg, IMG_EXT.jpeg, IMG_EXT.png, IMG_EXT.gif];
5925
+ var DEFAULT_EXCEL_MIME_TYPE = [
5926
+ "application/vnd.ms-excel",
5927
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
5928
+ "text/csv"
5929
+ ];
5919
5930
  var concatList = (list) => {
5920
5931
  let _concatedList = "";
5921
5932
  if (list.length > 1) {
@@ -5985,6 +5996,7 @@ var Uploader = ({
5985
5996
  acceptFormat = {
5986
5997
  validate: DEFAULT_IMAGE_MIME_TYPE
5987
5998
  },
5999
+ acceptFileType,
5988
6000
  maxFileSize,
5989
6001
  customValidation,
5990
6002
  value,
@@ -5995,6 +6007,7 @@ var Uploader = ({
5995
6007
  isShowReupload = true,
5996
6008
  size: size2 = "lg",
5997
6009
  validatorExt,
6010
+ buttonChangeText = "Ubah Foto",
5998
6011
  ...props
5999
6012
  }) => {
6000
6013
  const [filePreview, setFilePreview] = useState5();
@@ -6012,6 +6025,11 @@ var Uploader = ({
6012
6025
  const onDropAccepted = useCallback4(
6013
6026
  (files) => {
6014
6027
  const file = files[0];
6028
+ if (acceptFileType && acceptFileType.includes(file.type)) {
6029
+ setFilePreview(file.name);
6030
+ onHandleUploadFile == null ? void 0 : onHandleUploadFile(file, null);
6031
+ return null;
6032
+ }
6015
6033
  const imageUrl = URL.createObjectURL(file);
6016
6034
  const img = new Image();
6017
6035
  if (file.type === "image/heic") {
@@ -6035,7 +6053,7 @@ var Uploader = ({
6035
6053
  };
6036
6054
  return null;
6037
6055
  },
6038
- [customValidation, dimension, handleRejection, onHandleUploadFile]
6056
+ [customValidation, dimension, handleRejection, onHandleUploadFile, acceptFileType]
6039
6057
  );
6040
6058
  const onDropRejected = useCallback4((fileRejections) => {
6041
6059
  defaultOnHandleRejections(fileRejections, { acceptFormat, maxFileSize }, handleRejection);
@@ -6060,7 +6078,10 @@ var Uploader = ({
6060
6078
  const { getRootProps, getInputProps, isDragActive, acceptedFiles, open } = useDropzone({
6061
6079
  onDropAccepted,
6062
6080
  onDropRejected,
6063
- accept: Object.fromEntries(acceptFile),
6081
+ accept: {
6082
+ ...acceptFormat ? Object.fromEntries(acceptFile) : {},
6083
+ ...acceptFileType ? Object.fromEntries(acceptFileType.map((type) => [type, []])) : {}
6084
+ },
6064
6085
  maxFiles: 1,
6065
6086
  maxSize: maxFileSize == null ? void 0 : maxFileSize.validate,
6066
6087
  noClick: isDisabled || !!filePreview,
@@ -6098,6 +6119,10 @@ var Uploader = ({
6098
6119
  setFilePreview(value.name);
6099
6120
  return;
6100
6121
  }
6122
+ if (acceptFileType == null ? void 0 : acceptFileType.some((type) => type === value.type)) {
6123
+ setFilePreview(value.name);
6124
+ return;
6125
+ }
6101
6126
  setFilePreview(URL.createObjectURL(value));
6102
6127
  }
6103
6128
  } else {
@@ -6160,7 +6185,7 @@ var Uploader = ({
6160
6185
  "data-test-id": `CT_component_base-image-uploader_image-preview${testId ? `_${testId}` : ""}`,
6161
6186
  justify: "center",
6162
6187
  align: "center",
6163
- children: filePreview.includes("blob") ? /* @__PURE__ */ jsx66(
6188
+ children: filePreview.includes("blob") && !acceptFile.some(([type]) => typeof type === "string" && type.includes("image/")) ? /* @__PURE__ */ jsx66(
6164
6189
  ChakraImage,
6165
6190
  {
6166
6191
  h: size2 === "lg" ? "120" : "100",
@@ -6205,7 +6230,7 @@ var Uploader = ({
6205
6230
  size: "sm",
6206
6231
  variant: "outline",
6207
6232
  onClick: open,
6208
- children: "Ubah Foto"
6233
+ children: buttonChangeText
6209
6234
  }
6210
6235
  ) }),
6211
6236
  renderErrorText(errorText),
@@ -8082,6 +8107,8 @@ export {
8082
8107
  Container,
8083
8108
  ContainerProps,
8084
8109
  counter_default as Counter,
8110
+ DEFAULT_EXCEL_MIME_TYPE,
8111
+ DEFAULT_IMAGE_MIME_TYPE,
8085
8112
  data_table_default as DataTable,
8086
8113
  datepicker_month_default as DatePickerMonth,
8087
8114
  datepicker_default as Datepicker,
@@ -8098,6 +8125,7 @@ export {
8098
8125
  ModalOverlay3 as DrawerOverlay,
8099
8126
  DrawerProps,
8100
8127
  DropdownIndicator,
8128
+ EXCEL_EXT,
8101
8129
  empty_state_default as EmptyState,
8102
8130
  error_code_default as ErrorCode,
8103
8131
  Fade2 as Fade,
@@ -8121,6 +8149,7 @@ export {
8121
8149
  HeadingProps,
8122
8150
  Hide,
8123
8151
  HideProps,
8152
+ IMG_EXT,
8124
8153
  Icon3 as Icon,
8125
8154
  IconButton2 as IconButton,
8126
8155
  IconButtonProps,
@@ -8178,6 +8207,7 @@ export {
8178
8207
  Navbar,
8179
8208
  navigation_bar_default as NavigationBar,
8180
8209
  NoOptionsMessage,
8210
+ ONE_MEGA_BYTE,
8181
8211
  OrderedList,
8182
8212
  pagination_default as Pagination,
8183
8213
  pagination_detail_default as PaginationDetail,
@@ -8322,16 +8352,19 @@ export {
8322
8352
  WrapItemProps,
8323
8353
  WrapProps,
8324
8354
  XMSLogo,
8355
+ concatList,
8325
8356
  createExtendTheme,
8326
8357
  defaultOnHandleRejections,
8327
8358
  dimensionValidator,
8328
8359
  extendTheme,
8360
+ formatValidationMessage,
8329
8361
  forwardRef13 as forwardRef,
8330
8362
  getSelectAllCheckboxState,
8331
8363
  getTheme,
8332
8364
  id,
8333
8365
  isCellDisabled,
8334
8366
  isRatioEqual,
8367
+ messages,
8335
8368
  selectStyles,
8336
8369
  theme4 as theme,
8337
8370
  themeSelect,