react-asc 25.9.0 → 25.10.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/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import React$1, { ReactNode, Component, ComponentProps, ReactElement } from 'react';
3
+ import { UnparseObject, ParseResult } from 'papaparse';
3
4
 
4
5
  declare enum COLOR {
5
6
  primary = "primary",
@@ -1031,4 +1032,59 @@ interface IDictionary<T> {
1031
1032
  [key: string]: T;
1032
1033
  }
1033
1034
 
1034
- export { Alert, AppBar, AppBarTitle, AutoComplete, Backdrop, Badge, Breadcrumb, BreadcrumbItem, Button, ButtonContext, ButtonGroup, COLOR, Card, CardBody, CardFooter, CardImage, CardSubtitle, CardText, CardTitle, CaretDownSolidIcon, CheckSolidIcon, CheckSquareRegularIcon, Checkbox, ChevronDownSolidIcon, ChevronLeftSolidIcon, ChevronRightSolidIcon, ChevronUpSolidIcon, Chip, CircleSolidIcon, Column, ConditionalWrapper, CssTransition, DATEMODE, DatePicker, DateSelect, DaySelect, Dot, Drawer, EmailValidator, ExpansionPanel, ExpansionPanelContent, ExpansionPanelHeader, FileInput, FloatingActionButton, Form, FormControl, FormError, FormGroup, FormHint, FormInput, FormLabel, GlobalModal, HomeSolidIcon, HourSelect, HtmlBaseProps, HtmlInputProps, IAlertProps, IAppBarProps, IAppBarTitleProps, IAutoCompleteProps, IBackdropProps, IBadgeProps, IBreadcrumbItemProps, IBreadcrumbProps, IButtonContext, IButtonGroupProps, IButtonProps, ICheckboxProps, IChipProps, IContainerProps, IControls, IDatePickerProps, IDateSelectProps, IDaySelectProps, IDictionary, IDot, IDrawerProps, IExpansionPanelContentProps, IExpansionPanelHeaderProps, IExpansionPanelProps, IFileInputProps, IFloatingActionButtonProps, IFormAutoCompleteOptions, IFormControlConfig, IFormControlType, IFormInputError, IFormInputEvent, IFormInputOptions, IFormInputProps, IFormProps, IFormSelectOptions, IFormState, IFormTextAreaOptions, IFormValidatorType, IHourProps, IIconButtonProps, IIconProps, IListItemProps, IListProps, ILoadingIndicatorContainerProps, ILoadingIndicatorService, IMenuBodyProps, IMenuProps, IMilliSecondProps, IMinuteProps, IModalButton, IModalOptions, IModalProps$1 as IModalProps, IModalService, IMonthProps, INumberSelectProps, IPortalProps, IProgressBarProps, ISecondProps, ISelectOption, ISelectProps, ISidebarItem, ISkeletonAvatarProps, ISkeletonFooterProps, ISkeletonImageProps, ISkeletonTextProps, ISnackbarOptions, ISnackbarProps, ISnackbarService, ISpeedDialActionProps, ISpeedDialIconProps, ISpeedDialProps, IStepProps, IStepperActionsProps, IStepperProps, ITabPanelProps, ITabProps, ITableCellProps, ITableProps, ITabsProps, ITextareaProps, ITimeSelectProps, ITooltipProps, ITreeItemProps, ITypographyProps, IUseWindowSize, IWrapperProps, IYearProps, Icon, IconButton, IsEmptyValidator, IsEqualValidator, Link, List, ListItem, ListItemAction, ListItemAvatar, ListItemIcon, ListItemText, LoadingIndicator, LoadingIndicatorContainer, MODALBUTTONTYPE, MODALTYPE, MaxValidator, Menu, MenuBody, MenuDivider, MenuItem, MenuPosition, MenuToggle, MilliSecondSelect, MinValidator, MinuteSelect, Modal, ModalBody, ModalFooter, ModalHeader, MonthSelect, NumberSelect, POSITION, PlusSolidIcon, Portal, ProgressBar, Row, SIZE, STATUS, SecondSelect, Select, Sidebar, SkeletonAvatar, SkeletonFooter, SkeletonImage, SkeletonText, Snackbar, SpeedDial, SpeedDialAction, SpeedDialIcon, SpinnerSolidIcon, SquareRegularIcon, Step, Stepper, StepperActions, TIMEMODE, Tab, TabPanel, Table, TableBody, TableCell, TableHead, TableRow, Tabs, Textarea, TimeSelect, TimesCircleSolidIcon, TimesSolidIcon, Tooltip, TooltipPlacement, TreeItem, TreeView, Typography, VARIANT, YearSelect, loadingIndicatorService, modalService, snackbarService, useButtonContext, useConstructor, useCssClasses, useDebounce, useHover, useMobileDetect, useOnDestroy, usePrevious, useWindowSize };
1035
+ declare class ClipboardService {
1036
+ copy(text: string): Promise<void>;
1037
+ }
1038
+ declare const clipboardService: ClipboardService;
1039
+
1040
+ declare class FileService {
1041
+ readAsText(file: File): Promise<ProgressEvent<FileReader>>;
1042
+ readAsBinaryString(file: File): Promise<ProgressEvent<FileReader>>;
1043
+ unparse<T>(data: T[] | UnparseObject<T>, config?: IFileUnparseConfig): string;
1044
+ parse<T>(content: string | File): Promise<ParseResult<T>>;
1045
+ saveAs(content: BlobPart, fileName: string, fileType: string): void;
1046
+ getFileExtension(filename: string): string;
1047
+ }
1048
+ interface IFileUnparseConfig {
1049
+ delimiter?: string;
1050
+ header?: boolean;
1051
+ }
1052
+ declare const fileService: FileService;
1053
+
1054
+ type Nullable<T> = T | null | undefined;
1055
+
1056
+ declare class LocalService {
1057
+ set<T>(key: string, value: T): void;
1058
+ get<T>(key: string): Nullable<T>;
1059
+ remove(key: string): void;
1060
+ removeAll(): void;
1061
+ getKeysBy(key: string): string[];
1062
+ }
1063
+ declare const localService: LocalService;
1064
+
1065
+ interface ILoggerService {
1066
+ log(...args: unknown[]): void;
1067
+ info(...args: unknown[]): void;
1068
+ warn(...args: unknown[]): void;
1069
+ debug(...args: unknown[]): void;
1070
+ error(...args: unknown[]): void;
1071
+ }
1072
+ declare enum LogType {
1073
+ log = "log",
1074
+ info = "info",
1075
+ warn = "warn",
1076
+ debug = "debug",
1077
+ error = "error"
1078
+ }
1079
+ declare class LoggerService implements ILoggerService {
1080
+ logType: typeof LogType;
1081
+ log(...args: unknown[]): void;
1082
+ info(...args: unknown[]): void;
1083
+ warn(...args: unknown[]): void;
1084
+ debug(...args: unknown[]): void;
1085
+ error(...args: unknown[]): void;
1086
+ _doLog(logType: LogType, ...args: unknown[]): void;
1087
+ }
1088
+ declare const loggerService: LoggerService;
1089
+
1090
+ export { Alert, AppBar, AppBarTitle, AutoComplete, Backdrop, Badge, Breadcrumb, BreadcrumbItem, Button, ButtonContext, ButtonGroup, COLOR, Card, CardBody, CardFooter, CardImage, CardSubtitle, CardText, CardTitle, CaretDownSolidIcon, CheckSolidIcon, CheckSquareRegularIcon, Checkbox, ChevronDownSolidIcon, ChevronLeftSolidIcon, ChevronRightSolidIcon, ChevronUpSolidIcon, Chip, CircleSolidIcon, Column, ConditionalWrapper, CssTransition, DATEMODE, DatePicker, DateSelect, DaySelect, Dot, Drawer, EmailValidator, ExpansionPanel, ExpansionPanelContent, ExpansionPanelHeader, FileInput, FileService, FloatingActionButton, Form, FormControl, FormError, FormGroup, FormHint, FormInput, FormLabel, GlobalModal, HomeSolidIcon, HourSelect, HtmlBaseProps, HtmlInputProps, IAlertProps, IAppBarProps, IAppBarTitleProps, IAutoCompleteProps, IBackdropProps, IBadgeProps, IBreadcrumbItemProps, IBreadcrumbProps, IButtonContext, IButtonGroupProps, IButtonProps, ICheckboxProps, IChipProps, IContainerProps, IControls, IDatePickerProps, IDateSelectProps, IDaySelectProps, IDictionary, IDot, IDrawerProps, IExpansionPanelContentProps, IExpansionPanelHeaderProps, IExpansionPanelProps, IFileInputProps, IFileUnparseConfig, IFloatingActionButtonProps, IFormAutoCompleteOptions, IFormControlConfig, IFormControlType, IFormInputError, IFormInputEvent, IFormInputOptions, IFormInputProps, IFormProps, IFormSelectOptions, IFormState, IFormTextAreaOptions, IFormValidatorType, IHourProps, IIconButtonProps, IIconProps, IListItemProps, IListProps, ILoadingIndicatorContainerProps, ILoadingIndicatorService, ILoggerService, IMenuBodyProps, IMenuProps, IMilliSecondProps, IMinuteProps, IModalButton, IModalOptions, IModalProps$1 as IModalProps, IModalService, IMonthProps, INumberSelectProps, IPortalProps, IProgressBarProps, ISecondProps, ISelectOption, ISelectProps, ISidebarItem, ISkeletonAvatarProps, ISkeletonFooterProps, ISkeletonImageProps, ISkeletonTextProps, ISnackbarOptions, ISnackbarProps, ISnackbarService, ISpeedDialActionProps, ISpeedDialIconProps, ISpeedDialProps, IStepProps, IStepperActionsProps, IStepperProps, ITabPanelProps, ITabProps, ITableCellProps, ITableProps, ITabsProps, ITextareaProps, ITimeSelectProps, ITooltipProps, ITreeItemProps, ITypographyProps, IUseWindowSize, IWrapperProps, IYearProps, Icon, IconButton, IsEmptyValidator, IsEqualValidator, Link, List, ListItem, ListItemAction, ListItemAvatar, ListItemIcon, ListItemText, LoadingIndicator, LoadingIndicatorContainer, LogType, MODALBUTTONTYPE, MODALTYPE, MaxValidator, Menu, MenuBody, MenuDivider, MenuItem, MenuPosition, MenuToggle, MilliSecondSelect, MinValidator, MinuteSelect, Modal, ModalBody, ModalFooter, ModalHeader, MonthSelect, Nullable, NumberSelect, POSITION, PlusSolidIcon, Portal, ProgressBar, Row, SIZE, STATUS, SecondSelect, Select, Sidebar, SkeletonAvatar, SkeletonFooter, SkeletonImage, SkeletonText, Snackbar, SpeedDial, SpeedDialAction, SpeedDialIcon, SpinnerSolidIcon, SquareRegularIcon, Step, Stepper, StepperActions, TIMEMODE, Tab, TabPanel, Table, TableBody, TableCell, TableHead, TableRow, Tabs, Textarea, TimeSelect, TimesCircleSolidIcon, TimesSolidIcon, Tooltip, TooltipPlacement, TreeItem, TreeView, Typography, VARIANT, YearSelect, clipboardService, fileService, loadingIndicatorService, localService, loggerService, modalService, snackbarService, useButtonContext, useConstructor, useCssClasses, useDebounce, useHover, useMobileDetect, useOnDestroy, usePrevious, useWindowSize };
package/index.es.js CHANGED
@@ -2,6 +2,8 @@ import { jsx, jsxs, Fragment as Fragment$1 } from 'react/jsx-runtime';
2
2
  import React, { useEffect, useRef, useState, useMemo, createContext, useContext, Component, Fragment as Fragment$2, createRef, cloneElement } from 'react';
3
3
  import reactDom, { createPortal } from 'react-dom';
4
4
  import { createPopper } from '@popperjs/core';
5
+ import saveAs from 'file-saver';
6
+ import { unparse, parse } from 'papaparse';
5
7
 
6
8
  var COLOR;
7
9
  (function (COLOR) {
@@ -7074,4 +7076,136 @@ const TreeItem = (props) => {
7074
7076
  jsx(Checkbox, { checked: _isSelected, onChange: () => handleOnSelect(nodeId) }), label] }), children && _isExpanded ? jsx("ul", { children: children }) : null] }));
7075
7077
  };
7076
7078
 
7077
- export { Alert, AppBar, AppBarTitle, AutoComplete, Backdrop, Badge, Breadcrumb, BreadcrumbItem, Button, ButtonContext, ButtonGroup, COLOR, Card, CardBody, CardFooter, CardImage, CardSubtitle, CardText, CardTitle, CaretDownSolidIcon, CheckSolidIcon, CheckSquareRegularIcon, Checkbox, ChevronDownSolidIcon, ChevronLeftSolidIcon, ChevronRightSolidIcon, ChevronUpSolidIcon, Chip, CircleSolidIcon, Column, ConditionalWrapper, CssTransition, DATEMODE, DatePicker, DateSelect, DaySelect, Dot, Drawer, EmailValidator, ExpansionPanel, ExpansionPanelContent, ExpansionPanelHeader, FileInput, FloatingActionButton, Form, FormControl, FormError, FormGroup, FormHint, FormInput, FormLabel, GlobalModal, HomeSolidIcon, HourSelect, Icon, IconButton, IsEmptyValidator, IsEqualValidator, Link, List, ListItem, ListItemAction, ListItemAvatar, ListItemIcon, ListItemText, LoadingIndicator, LoadingIndicatorContainer, MODALBUTTONTYPE, MODALTYPE, MaxValidator, Menu, MenuBody, MenuDivider, MenuItem, MenuToggle, MilliSecondSelect, MinValidator, MinuteSelect, Modal, ModalBody, ModalFooter, ModalHeader, MonthSelect, NumberSelect, POSITION, PlusSolidIcon, Portal$1 as Portal, ProgressBar, Row, SIZE, STATUS, SecondSelect, Select, Sidebar, SkeletonAvatar, SkeletonFooter, SkeletonImage, SkeletonText, Snackbar, SpeedDial, SpeedDialAction, SpeedDialIcon, SpinnerSolidIcon, SquareRegularIcon, Step, Stepper, StepperActions, TIMEMODE, Tab, TabPanel, Table, TableBody, TableCell, TableHead, TableRow, Tabs, Textarea, TimeSelect, TimesCircleSolidIcon, TimesSolidIcon, Tooltip, TooltipPlacement, TreeItem, TreeView, Typography, VARIANT, YearSelect, loadingIndicatorService, modalService, snackbarService, useButtonContext, useConstructor, useCssClasses, useDebounce, useHover, useMobileDetect, useOnDestroy, usePrevious, useWindowSize };
7079
+ class ClipboardService {
7080
+ copy(text) {
7081
+ return navigator.clipboard.writeText(text);
7082
+ }
7083
+ }
7084
+ const clipboardService = new ClipboardService();
7085
+
7086
+ var LogType;
7087
+ (function (LogType) {
7088
+ LogType["log"] = "log";
7089
+ LogType["info"] = "info";
7090
+ LogType["warn"] = "warn";
7091
+ LogType["debug"] = "debug";
7092
+ LogType["error"] = "error";
7093
+ })(LogType || (LogType = {}));
7094
+ class LoggerService {
7095
+ constructor() {
7096
+ this.logType = LogType;
7097
+ }
7098
+ log(...args) {
7099
+ this._doLog(this.logType.log, args);
7100
+ }
7101
+ info(...args) {
7102
+ this._doLog(this.logType.info, args);
7103
+ }
7104
+ warn(...args) {
7105
+ this._doLog(this.logType.warn, args);
7106
+ }
7107
+ debug(...args) {
7108
+ this._doLog(this.logType.debug, args);
7109
+ }
7110
+ error(...args) {
7111
+ this._doLog(this.logType.error, args);
7112
+ }
7113
+ _doLog(logType, ...args) {
7114
+ console[logType].apply(console, args);
7115
+ }
7116
+ }
7117
+ const loggerService = new LoggerService();
7118
+
7119
+ const CLASSNAME$1 = 'FileService';
7120
+ class FileService {
7121
+ readAsText(file) {
7122
+ loggerService.debug(CLASSNAME$1, 'readAsText');
7123
+ const fileReader = new FileReader();
7124
+ return new Promise((resolve, reject) => {
7125
+ fileReader.onload = (event) => {
7126
+ resolve(event);
7127
+ };
7128
+ fileReader.onerror = (event) => {
7129
+ reject(event);
7130
+ };
7131
+ fileReader.readAsText(file);
7132
+ });
7133
+ }
7134
+ readAsBinaryString(file) {
7135
+ loggerService.debug(CLASSNAME$1, 'readAsBinaryString');
7136
+ const fileReader = new FileReader();
7137
+ return new Promise((resolve, reject) => {
7138
+ fileReader.onload = (event) => {
7139
+ resolve(event);
7140
+ };
7141
+ fileReader.onerror = (event) => {
7142
+ reject(event);
7143
+ };
7144
+ fileReader.readAsBinaryString(file);
7145
+ });
7146
+ }
7147
+ unparse(data, config) {
7148
+ loggerService.debug(CLASSNAME$1, 'unparse');
7149
+ return unparse(data, {
7150
+ delimiter: config && config.delimiter ? config.delimiter : ';',
7151
+ });
7152
+ }
7153
+ parse(content) {
7154
+ loggerService.debug(CLASSNAME$1, 'parse');
7155
+ return new Promise((resolve, reject) => {
7156
+ parse(content, {
7157
+ header: true,
7158
+ complete: (results) => resolve(results),
7159
+ error: (err) => reject(err),
7160
+ });
7161
+ });
7162
+ }
7163
+ saveAs(content, fileName, fileType) {
7164
+ loggerService.debug(CLASSNAME$1, 'saveAs');
7165
+ const blob = new Blob([content], { type: fileType });
7166
+ saveAs(blob, fileName, { autoBom: true });
7167
+ }
7168
+ getFileExtension(filename) {
7169
+ let result = '-';
7170
+ if (/[.]/.exec(filename)) {
7171
+ const regexp = /[^.]+$/.exec(filename);
7172
+ result = `.${regexp?.[0]}`;
7173
+ }
7174
+ return result;
7175
+ }
7176
+ }
7177
+ const fileService = new FileService();
7178
+
7179
+ const CLASSNAME = 'LocalService';
7180
+ class LocalService {
7181
+ set(key, value) {
7182
+ try {
7183
+ localStorage.setItem(key, JSON.stringify(value));
7184
+ }
7185
+ catch (err) {
7186
+ loggerService.error(CLASSNAME, 'set', err);
7187
+ }
7188
+ }
7189
+ get(key) {
7190
+ let result = null;
7191
+ try {
7192
+ result = JSON.parse(localStorage.getItem(key));
7193
+ }
7194
+ catch (err) {
7195
+ loggerService.error(CLASSNAME, 'get', err);
7196
+ }
7197
+ return result;
7198
+ }
7199
+ remove(key) {
7200
+ localStorage.removeItem(key);
7201
+ }
7202
+ removeAll() {
7203
+ localStorage.clear();
7204
+ }
7205
+ getKeysBy(key) {
7206
+ return Object.keys(localStorage).filter(k => k.startsWith(key));
7207
+ }
7208
+ }
7209
+ const localService = new LocalService();
7210
+
7211
+ export { Alert, AppBar, AppBarTitle, AutoComplete, Backdrop, Badge, Breadcrumb, BreadcrumbItem, Button, ButtonContext, ButtonGroup, COLOR, Card, CardBody, CardFooter, CardImage, CardSubtitle, CardText, CardTitle, CaretDownSolidIcon, CheckSolidIcon, CheckSquareRegularIcon, Checkbox, ChevronDownSolidIcon, ChevronLeftSolidIcon, ChevronRightSolidIcon, ChevronUpSolidIcon, Chip, CircleSolidIcon, Column, ConditionalWrapper, CssTransition, DATEMODE, DatePicker, DateSelect, DaySelect, Dot, Drawer, EmailValidator, ExpansionPanel, ExpansionPanelContent, ExpansionPanelHeader, FileInput, FileService, FloatingActionButton, Form, FormControl, FormError, FormGroup, FormHint, FormInput, FormLabel, GlobalModal, HomeSolidIcon, HourSelect, Icon, IconButton, IsEmptyValidator, IsEqualValidator, Link, List, ListItem, ListItemAction, ListItemAvatar, ListItemIcon, ListItemText, LoadingIndicator, LoadingIndicatorContainer, LogType, MODALBUTTONTYPE, MODALTYPE, MaxValidator, Menu, MenuBody, MenuDivider, MenuItem, MenuToggle, MilliSecondSelect, MinValidator, MinuteSelect, Modal, ModalBody, ModalFooter, ModalHeader, MonthSelect, NumberSelect, POSITION, PlusSolidIcon, Portal$1 as Portal, ProgressBar, Row, SIZE, STATUS, SecondSelect, Select, Sidebar, SkeletonAvatar, SkeletonFooter, SkeletonImage, SkeletonText, Snackbar, SpeedDial, SpeedDialAction, SpeedDialIcon, SpinnerSolidIcon, SquareRegularIcon, Step, Stepper, StepperActions, TIMEMODE, Tab, TabPanel, Table, TableBody, TableCell, TableHead, TableRow, Tabs, Textarea, TimeSelect, TimesCircleSolidIcon, TimesSolidIcon, Tooltip, TooltipPlacement, TreeItem, TreeView, Typography, VARIANT, YearSelect, clipboardService, fileService, loadingIndicatorService, localService, loggerService, modalService, snackbarService, useButtonContext, useConstructor, useCssClasses, useDebounce, useHover, useMobileDetect, useOnDestroy, usePrevious, useWindowSize };
package/index.js CHANGED
@@ -4,6 +4,8 @@ var jsxRuntime = require('react/jsx-runtime');
4
4
  var React = require('react');
5
5
  var reactDom = require('react-dom');
6
6
  var core = require('@popperjs/core');
7
+ var saveAs = require('file-saver');
8
+ var papaparse = require('papaparse');
7
9
 
8
10
  exports.COLOR = void 0;
9
11
  (function (COLOR) {
@@ -7076,6 +7078,138 @@ const TreeItem = (props) => {
7076
7078
  jsxRuntime.jsx(Checkbox, { checked: _isSelected, onChange: () => handleOnSelect(nodeId) }), label] }), children && _isExpanded ? jsxRuntime.jsx("ul", { children: children }) : null] }));
7077
7079
  };
7078
7080
 
7081
+ class ClipboardService {
7082
+ copy(text) {
7083
+ return navigator.clipboard.writeText(text);
7084
+ }
7085
+ }
7086
+ const clipboardService = new ClipboardService();
7087
+
7088
+ exports.LogType = void 0;
7089
+ (function (LogType) {
7090
+ LogType["log"] = "log";
7091
+ LogType["info"] = "info";
7092
+ LogType["warn"] = "warn";
7093
+ LogType["debug"] = "debug";
7094
+ LogType["error"] = "error";
7095
+ })(exports.LogType || (exports.LogType = {}));
7096
+ class LoggerService {
7097
+ constructor() {
7098
+ this.logType = exports.LogType;
7099
+ }
7100
+ log(...args) {
7101
+ this._doLog(this.logType.log, args);
7102
+ }
7103
+ info(...args) {
7104
+ this._doLog(this.logType.info, args);
7105
+ }
7106
+ warn(...args) {
7107
+ this._doLog(this.logType.warn, args);
7108
+ }
7109
+ debug(...args) {
7110
+ this._doLog(this.logType.debug, args);
7111
+ }
7112
+ error(...args) {
7113
+ this._doLog(this.logType.error, args);
7114
+ }
7115
+ _doLog(logType, ...args) {
7116
+ console[logType].apply(console, args);
7117
+ }
7118
+ }
7119
+ const loggerService = new LoggerService();
7120
+
7121
+ const CLASSNAME$1 = 'FileService';
7122
+ class FileService {
7123
+ readAsText(file) {
7124
+ loggerService.debug(CLASSNAME$1, 'readAsText');
7125
+ const fileReader = new FileReader();
7126
+ return new Promise((resolve, reject) => {
7127
+ fileReader.onload = (event) => {
7128
+ resolve(event);
7129
+ };
7130
+ fileReader.onerror = (event) => {
7131
+ reject(event);
7132
+ };
7133
+ fileReader.readAsText(file);
7134
+ });
7135
+ }
7136
+ readAsBinaryString(file) {
7137
+ loggerService.debug(CLASSNAME$1, 'readAsBinaryString');
7138
+ const fileReader = new FileReader();
7139
+ return new Promise((resolve, reject) => {
7140
+ fileReader.onload = (event) => {
7141
+ resolve(event);
7142
+ };
7143
+ fileReader.onerror = (event) => {
7144
+ reject(event);
7145
+ };
7146
+ fileReader.readAsBinaryString(file);
7147
+ });
7148
+ }
7149
+ unparse(data, config) {
7150
+ loggerService.debug(CLASSNAME$1, 'unparse');
7151
+ return papaparse.unparse(data, {
7152
+ delimiter: config && config.delimiter ? config.delimiter : ';',
7153
+ });
7154
+ }
7155
+ parse(content) {
7156
+ loggerService.debug(CLASSNAME$1, 'parse');
7157
+ return new Promise((resolve, reject) => {
7158
+ papaparse.parse(content, {
7159
+ header: true,
7160
+ complete: (results) => resolve(results),
7161
+ error: (err) => reject(err),
7162
+ });
7163
+ });
7164
+ }
7165
+ saveAs(content, fileName, fileType) {
7166
+ loggerService.debug(CLASSNAME$1, 'saveAs');
7167
+ const blob = new Blob([content], { type: fileType });
7168
+ saveAs(blob, fileName, { autoBom: true });
7169
+ }
7170
+ getFileExtension(filename) {
7171
+ let result = '-';
7172
+ if (/[.]/.exec(filename)) {
7173
+ const regexp = /[^.]+$/.exec(filename);
7174
+ result = `.${regexp?.[0]}`;
7175
+ }
7176
+ return result;
7177
+ }
7178
+ }
7179
+ const fileService = new FileService();
7180
+
7181
+ const CLASSNAME = 'LocalService';
7182
+ class LocalService {
7183
+ set(key, value) {
7184
+ try {
7185
+ localStorage.setItem(key, JSON.stringify(value));
7186
+ }
7187
+ catch (err) {
7188
+ loggerService.error(CLASSNAME, 'set', err);
7189
+ }
7190
+ }
7191
+ get(key) {
7192
+ let result = null;
7193
+ try {
7194
+ result = JSON.parse(localStorage.getItem(key));
7195
+ }
7196
+ catch (err) {
7197
+ loggerService.error(CLASSNAME, 'get', err);
7198
+ }
7199
+ return result;
7200
+ }
7201
+ remove(key) {
7202
+ localStorage.removeItem(key);
7203
+ }
7204
+ removeAll() {
7205
+ localStorage.clear();
7206
+ }
7207
+ getKeysBy(key) {
7208
+ return Object.keys(localStorage).filter(k => k.startsWith(key));
7209
+ }
7210
+ }
7211
+ const localService = new LocalService();
7212
+
7079
7213
  exports.Alert = Alert;
7080
7214
  exports.AppBar = AppBar;
7081
7215
  exports.AppBarTitle = AppBarTitle;
@@ -7117,6 +7251,7 @@ exports.ExpansionPanel = ExpansionPanel;
7117
7251
  exports.ExpansionPanelContent = ExpansionPanelContent;
7118
7252
  exports.ExpansionPanelHeader = ExpansionPanelHeader;
7119
7253
  exports.FileInput = FileInput;
7254
+ exports.FileService = FileService;
7120
7255
  exports.FloatingActionButton = FloatingActionButton;
7121
7256
  exports.Form = Form;
7122
7257
  exports.FormControl = FormControl;
@@ -7193,7 +7328,11 @@ exports.TreeItem = TreeItem;
7193
7328
  exports.TreeView = TreeView;
7194
7329
  exports.Typography = Typography;
7195
7330
  exports.YearSelect = YearSelect;
7331
+ exports.clipboardService = clipboardService;
7332
+ exports.fileService = fileService;
7196
7333
  exports.loadingIndicatorService = loadingIndicatorService;
7334
+ exports.localService = localService;
7335
+ exports.loggerService = loggerService;
7197
7336
  exports.modalService = modalService;
7198
7337
  exports.snackbarService = snackbarService;
7199
7338
  exports.useButtonContext = useButtonContext;
package/lib/index.d.ts CHANGED
@@ -2,3 +2,5 @@ export * from './components';
2
2
  export * from './hooks';
3
3
  export * from './icons';
4
4
  export * from './interfaces';
5
+ export * from './services';
6
+ export * from './types';
@@ -0,0 +1,5 @@
1
+ declare class ClipboardService {
2
+ copy(text: string): Promise<void>;
3
+ }
4
+ export declare const clipboardService: ClipboardService;
5
+ export {};
@@ -0,0 +1,14 @@
1
+ import type { ParseResult, UnparseObject } from 'papaparse';
2
+ export declare class FileService {
3
+ readAsText(file: File): Promise<ProgressEvent<FileReader>>;
4
+ readAsBinaryString(file: File): Promise<ProgressEvent<FileReader>>;
5
+ unparse<T>(data: T[] | UnparseObject<T>, config?: IFileUnparseConfig): string;
6
+ parse<T>(content: string | File): Promise<ParseResult<T>>;
7
+ saveAs(content: BlobPart, fileName: string, fileType: string): void;
8
+ getFileExtension(filename: string): string;
9
+ }
10
+ export interface IFileUnparseConfig {
11
+ delimiter?: string;
12
+ header?: boolean;
13
+ }
14
+ export declare const fileService: FileService;
@@ -0,0 +1,4 @@
1
+ export * from './clipboard.service';
2
+ export * from './file.service';
3
+ export * from './local.service';
4
+ export * from './logger.service';
@@ -0,0 +1,10 @@
1
+ import type { Nullable } from '../types';
2
+ declare class LocalService {
3
+ set<T>(key: string, value: T): void;
4
+ get<T>(key: string): Nullable<T>;
5
+ remove(key: string): void;
6
+ removeAll(): void;
7
+ getKeysBy(key: string): string[];
8
+ }
9
+ export declare const localService: LocalService;
10
+ export {};
@@ -0,0 +1,25 @@
1
+ export interface ILoggerService {
2
+ log(...args: unknown[]): void;
3
+ info(...args: unknown[]): void;
4
+ warn(...args: unknown[]): void;
5
+ debug(...args: unknown[]): void;
6
+ error(...args: unknown[]): void;
7
+ }
8
+ export declare enum LogType {
9
+ log = "log",
10
+ info = "info",
11
+ warn = "warn",
12
+ debug = "debug",
13
+ error = "error"
14
+ }
15
+ declare class LoggerService implements ILoggerService {
16
+ logType: typeof LogType;
17
+ log(...args: unknown[]): void;
18
+ info(...args: unknown[]): void;
19
+ warn(...args: unknown[]): void;
20
+ debug(...args: unknown[]): void;
21
+ error(...args: unknown[]): void;
22
+ _doLog(logType: LogType, ...args: unknown[]): void;
23
+ }
24
+ export declare const loggerService: LoggerService;
25
+ export {};
@@ -0,0 +1 @@
1
+ export * from './nullable.type';
@@ -0,0 +1 @@
1
+ export type Nullable<T> = T | null | undefined;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-asc",
3
- "version": "25.9.0",
3
+ "version": "25.10.1",
4
4
  "description": "handcrafted react components",
5
5
  "main": "index.js",
6
6
  "module": "index.es.js",
@@ -15,6 +15,12 @@
15
15
  "modern-normalize": "2.0.0",
16
16
  "react-calendar": "4.2.1"
17
17
  },
18
+ "peerDependencies": {
19
+ "@types/file-saver": "^2.0.5",
20
+ "@types/papaparse": "^5.3.8",
21
+ "file-saver": "^2.0.5",
22
+ "papaparse": "^5.4.1"
23
+ },
18
24
  "scripts": {
19
25
  "pub": "npm publish --access public"
20
26
  },