ods-component-lib 1.18.209 → 1.18.211

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.
@@ -16,7 +16,7 @@ import jsPDF from 'jspdf';
16
16
  import { Workbook } from 'exceljs';
17
17
  import { saveAs } from 'file-saver-es';
18
18
  import moment from 'moment';
19
- import { GridIcon, UpArrow5Icon, DownArrow5Icon, Loop1Icon, KebabMenuIcon, EditIcon, Trash1Icon, CopyIcon, DiscountIcon, RefreshIcon, LinkBreakIcon, FloppyDiskIcon, Discount2Icon, Slide1Icon } from 'ods-icon/react/24/outline';
19
+ import { GridIcon, UpArrow5Icon, DownArrow5Icon, Loop1Icon, EditIcon, Trash1Icon, CopyIcon, DiscountIcon, KebabMenuIcon, RefreshIcon, LinkBreakIcon, FloppyDiskIcon, Discount2Icon, Slide1Icon } from 'ods-icon/react/24/outline';
20
20
  import { TreeList, Lookup, DataGrid as DataGrid$2, Toolbar as Toolbar$1 } from 'devextreme-react';
21
21
  import { createStyles } from 'antd-style';
22
22
  import { saveAs as saveAs$1 } from 'file-saver';
@@ -33182,6 +33182,214 @@ var ExportDataGridToExcel = function ExportDataGridToExcel(_ref) {
33182
33182
  });
33183
33183
  };
33184
33184
 
33185
+ var iconComponents = {
33186
+ edit: EditIcon,
33187
+ "delete": Trash1Icon,
33188
+ copy: CopyIcon,
33189
+ discount: DiscountIcon,
33190
+ kebabMenu: KebabMenuIcon,
33191
+ refresh: RefreshIcon,
33192
+ unmap: LinkBreakIcon,
33193
+ save: FloppyDiskIcon,
33194
+ cancel: Loop1Icon,
33195
+ discount2Icon: Discount2Icon
33196
+ };
33197
+ var DynamicIcon = function DynamicIcon(_ref) {
33198
+ var iconName = _ref.iconName;
33199
+ var IconComponent = iconComponents[iconName];
33200
+ if (!IconComponent) {
33201
+ return null;
33202
+ }
33203
+ return React.createElement(IconComponent, null);
33204
+ };
33205
+
33206
+ var useOnActionCellRenderHandler = function useOnActionCellRenderHandler(visibleActionButtons, actionButtonGroup, edit, actionButtonsTooltipType) {
33207
+ var onActionCellRender = useCallback(function (cellData) {
33208
+ if (!cellData || !visibleActionButtons) return null;
33209
+ var kebabMenuButtons = actionButtonGroup && actionButtonGroup.length >= 2 && !edit ? actionButtonGroup.slice(2).map(function (button) {
33210
+ return {
33211
+ icon: button.icon,
33212
+ onClick: function onClick(event) {
33213
+ var customEvent = {
33214
+ column: cellData.column,
33215
+ component: cellData.component,
33216
+ element: cellData.element,
33217
+ event: event,
33218
+ model: cellData.data,
33219
+ row: cellData.row
33220
+ };
33221
+ button.onClick(customEvent);
33222
+ }
33223
+ };
33224
+ }) : [];
33225
+ var buttonElements = visibleActionButtons.map(function (buttonItem) {
33226
+ var isVisible = typeof buttonItem.visible === "function" ? buttonItem.visible({
33227
+ column: cellData.column,
33228
+ component: cellData.component,
33229
+ row: cellData.row
33230
+ }) : buttonItem.visible;
33231
+ return React.createElement(OdsDataGrdiRowButton, Object.assign({
33232
+ key: "action-button-" + buttonItem.name,
33233
+ name: buttonItem.name,
33234
+ hint: buttonItem.hint,
33235
+ visible: isVisible,
33236
+ size: "small",
33237
+ type: "text",
33238
+ disabled: buttonItem.actionPermission === undefined ? false : !buttonItem.actionPermission,
33239
+ icon: buttonItem.icon
33240
+ }, actionButtonsTooltipType === "styled" && {
33241
+ tooltip: buttonItem.hint
33242
+ }, {
33243
+ onClick: function onClick(event) {
33244
+ if (buttonItem.onClick) {
33245
+ var customEvent = {
33246
+ column: cellData.column,
33247
+ component: cellData.component,
33248
+ element: cellData.element,
33249
+ event: event,
33250
+ model: cellData.data,
33251
+ row: cellData.row
33252
+ };
33253
+ buttonItem.onClick(customEvent);
33254
+ }
33255
+ }
33256
+ }));
33257
+ });
33258
+ if (kebabMenuButtons.length > 0) {
33259
+ buttonElements.push(React.createElement(OdsDropdown, {
33260
+ key: "dropdown-" + (cellData.rowIndex || cellData.data.ID),
33261
+ menuItems: kebabMenuButtons
33262
+ }, React.createElement(OdsDataGrdiRowButton, {
33263
+ type: "text",
33264
+ icon: React.createElement(DynamicIcon, {
33265
+ iconName: "kebabMenu"
33266
+ })
33267
+ })));
33268
+ }
33269
+ return React.createElement(React.Fragment, null, buttonElements);
33270
+ }, [visibleActionButtons]);
33271
+ return onActionCellRender;
33272
+ };
33273
+
33274
+ var useOnExportingHandler = function useOnExportingHandler(exportProps, getSummary, callback) {
33275
+ var onExporting = useCallback(function (e) {
33276
+ if (exportProps) {
33277
+ var _exportProps$fileName, _exportProps$activeTe, _exportProps$passiveT;
33278
+ ExportDataGridToExcel({
33279
+ gridComponent: e.component,
33280
+ baseFileName: (_exportProps$fileName = exportProps.fileName) != null ? _exportProps$fileName : "DataGrid",
33281
+ selectedText: exportProps.selectedText,
33282
+ getSummary: getSummary,
33283
+ selectedRowsOnly: e.selectedRowsOnly,
33284
+ activeText: (_exportProps$activeTe = exportProps.activeText) != null ? _exportProps$activeTe : "Active",
33285
+ passiveText: (_exportProps$passiveT = exportProps.passiveText) != null ? _exportProps$passiveT : "Passive"
33286
+ });
33287
+ }
33288
+ if (callback) {
33289
+ callback(e);
33290
+ }
33291
+ }, [getSummary]);
33292
+ return onExporting;
33293
+ };
33294
+
33295
+ var MasterDetailDataGrid = function MasterDetailDataGrid(_ref) {
33296
+ var columns = _ref.columns,
33297
+ dataSource = _ref.dataSource,
33298
+ _ref$masterDetailFeat = _ref.masterDetailFeatures,
33299
+ masterDetailFeatures = _ref$masterDetailFeat === void 0 ? {} : _ref$masterDetailFeat,
33300
+ masterDetailData = _ref.masterDetailData;
33301
+ var visibleActionButtons = useMemo(function () {
33302
+ if (masterDetailFeatures.masterActionButtonGroup && masterDetailFeatures.masterActionButtonGroup.length >= 2) {
33303
+ return masterDetailFeatures.masterActionButtonGroup.slice(0, 2);
33304
+ }
33305
+ return masterDetailFeatures.masterActionButtonGroup || [];
33306
+ }, [masterDetailFeatures.masterActionButtonGroup]);
33307
+ var onActionCellRender = useOnActionCellRenderHandler(visibleActionButtons, masterDetailFeatures.masterActionButtonGroup);
33308
+ var getTotalDataCount = function getTotalDataCount() {
33309
+ return "" + dataSource.length;
33310
+ };
33311
+ var handleExporting = useOnExportingHandler(masterDetailFeatures.exportProps, getTotalDataCount);
33312
+ var effectiveColumns = (masterDetailData === null || masterDetailData === void 0 ? void 0 : masterDetailData.detailGridColumns) || columns || (dataSource[0] ? Object.keys(dataSource[0]).map(function (key) {
33313
+ return {
33314
+ dataField: key,
33315
+ caption: key.charAt(0).toUpperCase() + key.slice(1),
33316
+ allowFiltering: true
33317
+ };
33318
+ }) : []);
33319
+ return React.createElement(DataGrid$1, {
33320
+ style: {
33321
+ maxHeight: masterDetailFeatures.maxHeight ? masterDetailFeatures.maxHeight + "px" : "400px",
33322
+ overflow: "auto"
33323
+ },
33324
+ dataSource: dataSource,
33325
+ showBorders: true,
33326
+ columnAutoWidth: true,
33327
+ allowColumnReordering: true,
33328
+ selection: {
33329
+ mode: masterDetailFeatures.showCheckbox ? "multiple" : "none"
33330
+ },
33331
+ paging: {
33332
+ enabled: true,
33333
+ pageSize: masterDetailFeatures.pageSize || 20
33334
+ },
33335
+ filterRow: {
33336
+ visible: masterDetailFeatures.createFilter
33337
+ },
33338
+ onExporting: handleExporting,
33339
+ onToolbarPreparing: masterDetailFeatures.detailToolbar
33340
+ }, effectiveColumns.map(function (col) {
33341
+ return React.createElement(Column, Object.assign({
33342
+ key: col.dataField
33343
+ }, col, {
33344
+ headerFilter: {
33345
+ visible: col.allowFiltering
33346
+ }
33347
+ }));
33348
+ }), React.createElement(ColumnChooser, {
33349
+ enabled: masterDetailFeatures.columnChooser,
33350
+ mode: "select"
33351
+ }, React.createElement(Position, {
33352
+ my: "right top",
33353
+ at: "right bottom",
33354
+ of: document.querySelector("." + "props.dataGridPageName") ? "." + "props.dataGridPageName" + " .dx-datagrid-column-chooser-button" : ".dx-datagrid-column-chooser-button"
33355
+ }), React.createElement(ColumnChooserSearch, {
33356
+ enabled: true,
33357
+ editorOptions: {
33358
+ placeholder: ""
33359
+ }
33360
+ }), React.createElement(HeaderFilter, {
33361
+ visible: true
33362
+ }), React.createElement(ColumnChooserSelection, {
33363
+ allowSelectAll: true,
33364
+ selectByClick: true,
33365
+ recursive: true
33366
+ })), (masterDetailFeatures === null || masterDetailFeatures === void 0 ? void 0 : masterDetailFeatures.exportEnabled) && React.createElement(Export, Object.assign({}, masterDetailFeatures.exportProps)), masterDetailFeatures.actionColumnEnable && React.createElement(Column, {
33367
+ dataField: "Actions",
33368
+ caption: "",
33369
+ minWidth: 10,
33370
+ width: 160,
33371
+ fixed: true,
33372
+ allowSorting: false,
33373
+ type: "buttons",
33374
+ showInColumnChooser: false,
33375
+ cellRender: onActionCellRender
33376
+ }), React.createElement(FilterRow, {
33377
+ visible: masterDetailFeatures.createFilter
33378
+ }), React.createElement(Selection, {
33379
+ mode: masterDetailFeatures.showCheckbox ? "multiple" : "none"
33380
+ }), React.createElement(SearchPanel, {
33381
+ visible: masterDetailFeatures.showSearchPanel
33382
+ }), React.createElement(Toolbar, null, React.createElement(Item$1, {
33383
+ name: "searchPanel"
33384
+ }), React.createElement(Item$1, {
33385
+ name: "columnChooserButton",
33386
+ cssClass: "toolbarPanelItems"
33387
+ }), React.createElement(Item$1, {
33388
+ name: "exportButton",
33389
+ cssClass: "toolbarPanelItems"
33390
+ })));
33391
+ };
33392
+
33185
33393
  var useToken$1 = theme.useToken;
33186
33394
  var OdsBasicDataGrid = function OdsBasicDataGrid(props) {
33187
33395
  var _props$columnResizing, _props$className, _props$selection, _props$selectOptions, _props$selectOptions$, _props$selectOptions2, _props$selectOptions$2, _props$selectOptions3;
@@ -33197,7 +33405,10 @@ var OdsBasicDataGrid = function OdsBasicDataGrid(props) {
33197
33405
  onFastUpdateButtonClick = props.onFastUpdateButtonClick,
33198
33406
  onFastUpdateFinish = props.onFastUpdateFinish,
33199
33407
  onFastUpdateCancel = props.onFastUpdateCancel,
33200
- onFastUpdateFailed = props.onFastUpdateFailed;
33408
+ onFastUpdateFailed = props.onFastUpdateFailed,
33409
+ detailGridColumns = props.detailGridColumns,
33410
+ detailData = props.detailData,
33411
+ masterDetailFeatures = props.masterDetailFeatures;
33201
33412
  var _useToken = useToken$1(),
33202
33413
  token = _useToken.token;
33203
33414
  var _AntForm$useForm = Form$1.useForm(),
@@ -33769,14 +33980,19 @@ var OdsBasicDataGrid = function OdsBasicDataGrid(props) {
33769
33980
  }
33770
33981
  });
33771
33982
  };
33772
- var detailGrid = function detailGrid(_ref) {
33773
- var data = _ref.data;
33774
- return React.createElement(OdsBasicDataGrid, Object.assign({}, props, {
33775
- showMasterDetail: false,
33776
- columns: props.detailGridColums,
33777
- dataSource: props.detailData[data.key.ID]
33778
- }));
33779
- };
33983
+ var renderMasterDetailGrid = useCallback(function (_ref) {
33984
+ var _dataSource$data;
33985
+ var dataSource = _ref.data;
33986
+ var detailID = dataSource === null || dataSource === void 0 ? void 0 : (_dataSource$data = dataSource.data) === null || _dataSource$data === void 0 ? void 0 : _dataSource$data.ID;
33987
+ if (!detailID || !(detailData !== null && detailData !== void 0 && detailData[detailID])) {
33988
+ return null;
33989
+ }
33990
+ return React.createElement(MasterDetailDataGrid, {
33991
+ columns: detailGridColumns,
33992
+ dataSource: detailData[detailID],
33993
+ masterDetailFeatures: masterDetailFeatures
33994
+ });
33995
+ }, [detailGridColumns, detailData, masterDetailFeatures]);
33780
33996
  var checkIsPropArray = function checkIsPropArray(prop) {
33781
33997
  return prop && Array.isArray(prop);
33782
33998
  };
@@ -33926,7 +34142,7 @@ var OdsBasicDataGrid = function OdsBasicDataGrid(props) {
33926
34142
  }
33927
34143
  }), props.showMasterDetail && React.createElement(MasterDetail, {
33928
34144
  enabled: true,
33929
- component: detailGrid
34145
+ component: renderMasterDetailGrid
33930
34146
  }), props.edit && React.createElement(Editing, {
33931
34147
  mode: props.edit.mode,
33932
34148
  allowUpdating: props.edit.allowUpdating,
@@ -34617,27 +34833,6 @@ var useStyles$2 = createStyles(function (_ref) {
34617
34833
  };
34618
34834
  });
34619
34835
 
34620
- var iconComponents = {
34621
- edit: EditIcon,
34622
- "delete": Trash1Icon,
34623
- copy: CopyIcon,
34624
- discount: DiscountIcon,
34625
- kebabMenu: KebabMenuIcon,
34626
- refresh: RefreshIcon,
34627
- unmap: LinkBreakIcon,
34628
- save: FloppyDiskIcon,
34629
- cancel: Loop1Icon,
34630
- discount2Icon: Discount2Icon
34631
- };
34632
- var DynamicIcon = function DynamicIcon(_ref) {
34633
- var iconName = _ref.iconName;
34634
- var IconComponent = iconComponents[iconName];
34635
- if (!IconComponent) {
34636
- return null;
34637
- }
34638
- return React.createElement(IconComponent, null);
34639
- };
34640
-
34641
34836
  var OdsServerSideDatagrid = function OdsServerSideDatagrid(props) {
34642
34837
  var _props$dataGridRef, _props$dataGridRef$da, _props$dataGridRef$da2, _props$dataGridRef$da3, _props$columnResizing, _props$selection, _props$pagerProps$vis, _props$pagerProps, _props$pagerProps$sho, _props$pagerProps2, _props$pagerProps$sho2, _props$pagerProps3, _props$pagerProps$dis, _props$pagerProps4, _props$pagerProps$inf, _props$pagerProps5, _props$exportProps;
34643
34838
  var rowCount = useRef(0);
@@ -35028,7 +35223,7 @@ var usePageTitleAndToolbarStyles = createStyles(function (_ref2) {
35028
35223
  };
35029
35224
  });
35030
35225
 
35031
- var useOnActionCellRenderHandler = function useOnActionCellRenderHandler(visibleActionButtons, actionButtonGroup, edit, actionButtonsTooltipType) {
35226
+ var useOnActionCellRenderHandler$1 = function useOnActionCellRenderHandler(visibleActionButtons, actionButtonGroup, edit, actionButtonsTooltipType) {
35032
35227
  var onActionCellRender = useCallback(function (cellData) {
35033
35228
  if (!cellData || !visibleActionButtons) return null;
35034
35229
  var kebabMenuButtons = actionButtonGroup && actionButtonGroup.length >= 2 && !edit ? actionButtonGroup.slice(2).map(function (button) {
@@ -35148,7 +35343,7 @@ var useOnEditorPreparedHandler = function useOnEditorPreparedHandler(callback) {
35148
35343
  return onEditorPrepared;
35149
35344
  };
35150
35345
 
35151
- var useOnExportingHandler = function useOnExportingHandler(exportProps, getSummary, callback) {
35346
+ var useOnExportingHandler$1 = function useOnExportingHandler(exportProps, getSummary, callback) {
35152
35347
  var onExporting = useCallback(function (e) {
35153
35348
  if (exportProps) {
35154
35349
  var _exportProps$fileName, _exportProps$activeTe, _exportProps$passiveT;
@@ -35328,7 +35523,7 @@ var OdsInlineEditDataGrid = function OdsInlineEditDataGrid(props) {
35328
35523
  var handleOptionChanged = useOnOptionChangedHandler(dataGridRefFromProps, totalFilteredCount, sortingPropsFromProps, setFilterApplied, setUpdateTrigger, onOptionChangedFromProps);
35329
35524
  useEffect(function () {}, [updateTrigger]);
35330
35525
  var handleEditorPrepared = useOnEditorPreparedHandler(onEditorPreparedFromProps);
35331
- var handleExporting = useOnExportingHandler(exportPropsFromProps, renderTotal, onExportingFromProps);
35526
+ var handleExporting = useOnExportingHandler$1(exportPropsFromProps, renderTotal, onExportingFromProps);
35332
35527
  var handleCellClick = useCallback(function (e) {
35333
35528
  if (e.rowType != "header") {
35334
35529
  e.cellElement.style.backgroundColor = "transparent";
@@ -35346,7 +35541,7 @@ var OdsInlineEditDataGrid = function OdsInlineEditDataGrid(props) {
35346
35541
  }
35347
35542
  return [];
35348
35543
  }, []);
35349
- var ActionCellRenderPartial = useOnActionCellRenderHandler(VisibleActionButtons, actionButtonGroupFromProps, editPropsFromProps, actionButtonsTooltipTypeFromProps);
35544
+ var ActionCellRenderPartial = useOnActionCellRenderHandler$1(VisibleActionButtons, actionButtonGroupFromProps, editPropsFromProps, actionButtonsTooltipTypeFromProps);
35350
35545
  var DataGridOptionsFromProps = useMemo(function () {
35351
35546
  return _extends({}, AllGridOptions, DefaultDataGridOptions, {
35352
35547
  columnResizingMode: columnResizingModeFromProps != null ? columnResizingModeFromProps : "nextColumn"
@@ -35454,193 +35649,6 @@ var OdsInlineEditDataGrid = function OdsInlineEditDataGrid(props) {
35454
35649
  }, React.createElement("p", null, renderTotal())));
35455
35650
  };
35456
35651
 
35457
- var useOnActionCellRenderHandler$1 = function useOnActionCellRenderHandler(visibleActionButtons, actionButtonGroup, edit, actionButtonsTooltipType) {
35458
- var onActionCellRender = useCallback(function (cellData) {
35459
- if (!cellData || !visibleActionButtons) return null;
35460
- var kebabMenuButtons = actionButtonGroup && actionButtonGroup.length >= 2 && !edit ? actionButtonGroup.slice(2).map(function (button) {
35461
- return {
35462
- icon: button.icon,
35463
- onClick: function onClick(event) {
35464
- var customEvent = {
35465
- column: cellData.column,
35466
- component: cellData.component,
35467
- element: cellData.element,
35468
- event: event,
35469
- model: cellData.data,
35470
- row: cellData.row
35471
- };
35472
- button.onClick(customEvent);
35473
- }
35474
- };
35475
- }) : [];
35476
- var buttonElements = visibleActionButtons.map(function (buttonItem) {
35477
- var isVisible = typeof buttonItem.visible === "function" ? buttonItem.visible({
35478
- column: cellData.column,
35479
- component: cellData.component,
35480
- row: cellData.row
35481
- }) : buttonItem.visible;
35482
- return React.createElement(OdsDataGrdiRowButton, Object.assign({
35483
- key: "action-button-" + buttonItem.name,
35484
- name: buttonItem.name,
35485
- hint: buttonItem.hint,
35486
- visible: isVisible,
35487
- size: "small",
35488
- type: "text",
35489
- disabled: buttonItem.actionPermission === undefined ? false : !buttonItem.actionPermission,
35490
- icon: buttonItem.icon
35491
- }, actionButtonsTooltipType === "styled" && {
35492
- tooltip: buttonItem.hint
35493
- }, {
35494
- onClick: function onClick(event) {
35495
- if (buttonItem.onClick) {
35496
- var customEvent = {
35497
- column: cellData.column,
35498
- component: cellData.component,
35499
- element: cellData.element,
35500
- event: event,
35501
- model: cellData.data,
35502
- row: cellData.row
35503
- };
35504
- buttonItem.onClick(customEvent);
35505
- }
35506
- }
35507
- }));
35508
- });
35509
- if (kebabMenuButtons.length > 0) {
35510
- buttonElements.push(React.createElement(OdsDropdown, {
35511
- key: "dropdown-" + (cellData.rowIndex || cellData.data.ID),
35512
- menuItems: kebabMenuButtons
35513
- }, React.createElement(OdsDataGrdiRowButton, {
35514
- type: "text",
35515
- icon: React.createElement(DynamicIcon, {
35516
- iconName: "kebabMenu"
35517
- })
35518
- })));
35519
- }
35520
- return React.createElement(React.Fragment, null, buttonElements);
35521
- }, [visibleActionButtons]);
35522
- return onActionCellRender;
35523
- };
35524
-
35525
- var useOnExportingHandler$1 = function useOnExportingHandler(exportProps, getSummary, callback) {
35526
- var onExporting = useCallback(function (e) {
35527
- if (exportProps) {
35528
- var _exportProps$fileName, _exportProps$activeTe, _exportProps$passiveT;
35529
- ExportDataGridToExcel({
35530
- gridComponent: e.component,
35531
- baseFileName: (_exportProps$fileName = exportProps.fileName) != null ? _exportProps$fileName : "DataGrid",
35532
- selectedText: exportProps.selectedText,
35533
- getSummary: getSummary,
35534
- selectedRowsOnly: e.selectedRowsOnly,
35535
- activeText: (_exportProps$activeTe = exportProps.activeText) != null ? _exportProps$activeTe : "Active",
35536
- passiveText: (_exportProps$passiveT = exportProps.passiveText) != null ? _exportProps$passiveT : "Passive"
35537
- });
35538
- }
35539
- if (callback) {
35540
- callback(e);
35541
- }
35542
- }, [getSummary]);
35543
- return onExporting;
35544
- };
35545
-
35546
- var MasterDetailDataGrid = function MasterDetailDataGrid(_ref) {
35547
- var columns = _ref.columns,
35548
- dataSource = _ref.dataSource,
35549
- _ref$masterDetailFeat = _ref.masterDetailFeatures,
35550
- masterDetailFeatures = _ref$masterDetailFeat === void 0 ? {} : _ref$masterDetailFeat,
35551
- masterDetailData = _ref.masterDetailData;
35552
- var visibleActionButtons = useMemo(function () {
35553
- if (masterDetailFeatures.masterActionButtonGroup && masterDetailFeatures.masterActionButtonGroup.length >= 2) {
35554
- return masterDetailFeatures.masterActionButtonGroup.slice(0, 2);
35555
- }
35556
- return masterDetailFeatures.masterActionButtonGroup || [];
35557
- }, [masterDetailFeatures.masterActionButtonGroup]);
35558
- var onActionCellRender = useOnActionCellRenderHandler$1(visibleActionButtons, masterDetailFeatures.masterActionButtonGroup);
35559
- var getTotalDataCount = function getTotalDataCount() {
35560
- return "" + dataSource.length;
35561
- };
35562
- var handleExporting = useOnExportingHandler$1(masterDetailFeatures.exportProps, getTotalDataCount);
35563
- var effectiveColumns = (masterDetailData === null || masterDetailData === void 0 ? void 0 : masterDetailData.detailGridColumns) || columns || (dataSource[0] ? Object.keys(dataSource[0]).map(function (key) {
35564
- return {
35565
- dataField: key,
35566
- caption: key.charAt(0).toUpperCase() + key.slice(1),
35567
- allowFiltering: true
35568
- };
35569
- }) : []);
35570
- return React.createElement(DataGrid$1, {
35571
- style: {
35572
- maxHeight: masterDetailFeatures.maxHeight ? masterDetailFeatures.maxHeight + "px" : "400px",
35573
- overflow: "auto"
35574
- },
35575
- dataSource: dataSource,
35576
- showBorders: true,
35577
- columnAutoWidth: true,
35578
- allowColumnReordering: true,
35579
- selection: {
35580
- mode: masterDetailFeatures.showCheckbox ? "multiple" : "none"
35581
- },
35582
- paging: {
35583
- enabled: true,
35584
- pageSize: masterDetailFeatures.pageSize || 20
35585
- },
35586
- filterRow: {
35587
- visible: masterDetailFeatures.createFilter
35588
- },
35589
- onExporting: handleExporting,
35590
- onToolbarPreparing: masterDetailFeatures.detailToolbar
35591
- }, effectiveColumns.map(function (col) {
35592
- return React.createElement(Column, Object.assign({
35593
- key: col.dataField
35594
- }, col, {
35595
- headerFilter: {
35596
- visible: col.allowFiltering
35597
- }
35598
- }));
35599
- }), React.createElement(ColumnChooser, {
35600
- enabled: masterDetailFeatures.columnChooser,
35601
- mode: "select"
35602
- }, React.createElement(Position, {
35603
- my: "right top",
35604
- at: "right bottom",
35605
- of: document.querySelector("." + "props.dataGridPageName") ? "." + "props.dataGridPageName" + " .dx-datagrid-column-chooser-button" : ".dx-datagrid-column-chooser-button"
35606
- }), React.createElement(ColumnChooserSearch, {
35607
- enabled: true,
35608
- editorOptions: {
35609
- placeholder: ""
35610
- }
35611
- }), React.createElement(HeaderFilter, {
35612
- visible: true
35613
- }), React.createElement(ColumnChooserSelection, {
35614
- allowSelectAll: true,
35615
- selectByClick: true,
35616
- recursive: true
35617
- })), (masterDetailFeatures === null || masterDetailFeatures === void 0 ? void 0 : masterDetailFeatures.exportEnabled) && React.createElement(Export, Object.assign({}, masterDetailFeatures.exportProps)), masterDetailFeatures.actionColumnEnable && React.createElement(Column, {
35618
- dataField: "Actions",
35619
- caption: "",
35620
- minWidth: 10,
35621
- width: 160,
35622
- fixed: true,
35623
- allowSorting: false,
35624
- type: "buttons",
35625
- showInColumnChooser: false,
35626
- cellRender: onActionCellRender
35627
- }), React.createElement(FilterRow, {
35628
- visible: masterDetailFeatures.createFilter
35629
- }), React.createElement(Selection, {
35630
- mode: masterDetailFeatures.showCheckbox ? "multiple" : "none"
35631
- }), React.createElement(SearchPanel, {
35632
- visible: masterDetailFeatures.showSearchPanel
35633
- }), React.createElement(Toolbar, null, React.createElement(Item$1, {
35634
- name: "searchPanel"
35635
- }), React.createElement(Item$1, {
35636
- name: "columnChooserButton",
35637
- cssClass: "toolbarPanelItems"
35638
- }), React.createElement(Item$1, {
35639
- name: "exportButton",
35640
- cssClass: "toolbarPanelItems"
35641
- })));
35642
- };
35643
-
35644
35652
  var _templateObject$t, _templateObject2$5;
35645
35653
  var useStyles$4 = createStyles(function (_ref) {
35646
35654
  var token = _ref.token,
@@ -35923,7 +35931,36 @@ function OdsTreeSelect(props) {
35923
35931
  }, props)))));
35924
35932
  }
35925
35933
 
35926
- var _excluded$6 = ["currencyOptions", "defaultCurrencyId", "locale", "onChange"];
35934
+ var _excluded$6 = ["currencyOptions", "onSelect", "defaultCurrencyId", "disabled"];
35935
+ var CurrencySelect = function CurrencySelect(_ref) {
35936
+ var currencyOptions = _ref.currencyOptions,
35937
+ onSelect = _ref.onSelect,
35938
+ defaultCurrencyId = _ref.defaultCurrencyId,
35939
+ disabled = _ref.disabled,
35940
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$6);
35941
+ var onSelectHandler = function onSelectHandler(value) {
35942
+ var selectedOption = currencyOptions.find(function (option) {
35943
+ return option.id === Number(value);
35944
+ });
35945
+ onSelect(selectedOption);
35946
+ };
35947
+ return React.createElement(Select, Object.assign({
35948
+ disabled: disabled,
35949
+ defaultValue: defaultCurrencyId,
35950
+ onSelect: onSelectHandler
35951
+ }, props), currencyOptions.map(function (option) {
35952
+ return React.createElement(Select.Option, {
35953
+ key: "" + option.code,
35954
+ value: option.id
35955
+ }, React.createElement(Tooltip$1, {
35956
+ placement: 'right',
35957
+ title: option.name
35958
+ }, option.symbol));
35959
+ }));
35960
+ };
35961
+
35962
+ var _excluded$7 = ["currencyOptions", "defaultCurrencyId", "defaultCurrencyCode", "fixedCurrency"],
35963
+ _excluded2 = ["currencySelectProps", "defaultValue", "locale", "onChange", "dontFormatValue", "min"];
35927
35964
  var _templateObject$w;
35928
35965
  var useStyles$6 = createStyles(function (_ref) {
35929
35966
  var css = _ref.css;
@@ -35932,91 +35969,84 @@ var useStyles$6 = createStyles(function (_ref) {
35932
35969
  };
35933
35970
  });
35934
35971
  var OdsCurrencyInput = function OdsCurrencyInput(_ref2) {
35935
- var _currencyOptions$find;
35936
- var currencyOptions = _ref2.currencyOptions,
35937
- defaultCurrencyId = _ref2.defaultCurrencyId,
35972
+ var _ref2$currencySelectP = _ref2.currencySelectProps,
35973
+ currencyOptions = _ref2$currencySelectP.currencyOptions,
35974
+ defaultCurrencyId = _ref2$currencySelectP.defaultCurrencyId,
35975
+ defaultCurrencyCode = _ref2$currencySelectP.defaultCurrencyCode,
35976
+ _ref2$currencySelectP2 = _ref2$currencySelectP.fixedCurrency,
35977
+ fixedCurrency = _ref2$currencySelectP2 === void 0 ? false : _ref2$currencySelectP2,
35978
+ currencySelectProps = _objectWithoutPropertiesLoose(_ref2$currencySelectP, _excluded$7),
35979
+ _ref2$defaultValue = _ref2.defaultValue,
35980
+ defaultValue = _ref2$defaultValue === void 0 ? "" : _ref2$defaultValue,
35938
35981
  _ref2$locale = _ref2.locale,
35939
35982
  locale = _ref2$locale === void 0 ? 'tr-TR' : _ref2$locale,
35940
35983
  onChange = _ref2.onChange,
35941
- props = _objectWithoutPropertiesLoose(_ref2, _excluded$6);
35984
+ dontFormatValue = _ref2.dontFormatValue,
35985
+ _ref2$min = _ref2.min,
35986
+ min = _ref2$min === void 0 ? 0 : _ref2$min,
35987
+ props = _objectWithoutPropertiesLoose(_ref2, _excluded2);
35942
35988
  var _useStyles = useStyles$6(),
35943
35989
  styles = _useStyles.styles;
35944
- var _useState = useState({
35945
- value: undefined,
35946
- currencyId: defaultCurrencyId,
35947
- currencyLabel: ((_currencyOptions$find = currencyOptions.find(function (option) {
35948
- return option.value === defaultCurrencyId;
35949
- })) === null || _currencyOptions$find === void 0 ? void 0 : _currencyOptions$find.label) || ''
35950
- }),
35951
- result = _useState[0],
35952
- setResult = _useState[1];
35990
+ var defaultCurrency = useMemo(function () {
35991
+ return currencyOptions.find(function (option) {
35992
+ return option.id === defaultCurrencyId || option.code === defaultCurrencyCode;
35993
+ });
35994
+ }, [currencyOptions, defaultCurrencyId, defaultCurrencyCode]);
35995
+ var _useState = useState(defaultValue),
35996
+ value = _useState[0],
35997
+ setValue = _useState[1];
35998
+ var _useState2 = useState(defaultCurrency),
35999
+ currency = _useState2[0],
36000
+ setCurrency = _useState2[1];
35953
36001
  useEffect(function () {
35954
- if (result) {
35955
- onChange === null || onChange === void 0 ? void 0 : onChange(result);
36002
+ if (currency && value !== undefined) {
36003
+ onChange === null || onChange === void 0 ? void 0 : onChange({
36004
+ value: value,
36005
+ currency: currency
36006
+ });
35956
36007
  }
35957
- }, [result]);
35958
- var formatValue = function formatValue(value) {
35959
- if (value === undefined || value === null) return '';
35960
- return new Intl.NumberFormat(locale).format(Number(value));
35961
- };
35962
- var parseValue = function parseValue(stringNumber) {
35963
- var thousandSeparator = Intl.NumberFormat(locale).format(11111).replace(/(?:[0-9\xB2\xB3\xB9\xBC-\xBE\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u09F4-\u09F9\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0B72-\u0B77\u0BE6-\u0BF2\u0C66-\u0C6F\u0C78-\u0C7E\u0CE6-\u0CEF\u0D58-\u0D5E\u0D66-\u0D78\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F33\u1040-\u1049\u1090-\u1099\u1369-\u137C\u16EE-\u16F0\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1946-\u194F\u19D0-\u19DA\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\u2070\u2074-\u2079\u2080-\u2089\u2150-\u2182\u2185-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2CFD\u3007\u3021-\u3029\u3038-\u303A\u3192-\u3195\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\uA620-\uA629\uA6E6-\uA6EF\uA830-\uA835\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19]|\uD800[\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDEE1-\uDEFB\uDF20-\uDF23\uDF41\uDF4A\uDFD1-\uDFD5]|\uD801[\uDCA0-\uDCA9]|\uD802[\uDC58-\uDC5F\uDC79-\uDC7F\uDCA7-\uDCAF\uDCFB-\uDCFF\uDD16-\uDD1B\uDDBC\uDDBD\uDDC0-\uDDCF\uDDD2-\uDDFF\uDE40-\uDE48\uDE7D\uDE7E\uDE9D-\uDE9F\uDEEB-\uDEEF\uDF58-\uDF5F\uDF78-\uDF7F\uDFA9-\uDFAF]|\uD803[\uDCFA-\uDCFF\uDD30-\uDD39\uDE60-\uDE7E\uDF1D-\uDF26\uDF51-\uDF54\uDFC5-\uDFCB]|\uD804[\uDC52-\uDC6F\uDCF0-\uDCF9\uDD36-\uDD3F\uDDD0-\uDDD9\uDDE1-\uDDF4\uDEF0-\uDEF9]|\uD805[\uDC50-\uDC59\uDCD0-\uDCD9\uDE50-\uDE59\uDEC0-\uDEC9\uDF30-\uDF3B]|\uD806[\uDCE0-\uDCF2\uDD50-\uDD59]|\uD807[\uDC50-\uDC6C\uDD50-\uDD59\uDDA0-\uDDA9\uDF50-\uDF59\uDFC0-\uDFD4]|\uD809[\uDC00-\uDC6E]|\uD81A[\uDE60-\uDE69\uDEC0-\uDEC9\uDF50-\uDF59\uDF5B-\uDF61]|\uD81B[\uDE80-\uDE96]|\uD834[\uDEC0-\uDED3\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDFCE-\uDFFF]|\uD838[\uDD40-\uDD49\uDEF0-\uDEF9]|\uD839[\uDCF0-\uDCF9]|\uD83A[\uDCC7-\uDCCF\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9])/g, '');
35964
- var decimalSeparator = Intl.NumberFormat(locale).format(1.1).replace(/(?:[0-9\xB2\xB3\xB9\xBC-\xBE\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u09F4-\u09F9\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0B72-\u0B77\u0BE6-\u0BF2\u0C66-\u0C6F\u0C78-\u0C7E\u0CE6-\u0CEF\u0D58-\u0D5E\u0D66-\u0D78\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F33\u1040-\u1049\u1090-\u1099\u1369-\u137C\u16EE-\u16F0\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1946-\u194F\u19D0-\u19DA\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\u2070\u2074-\u2079\u2080-\u2089\u2150-\u2182\u2185-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2CFD\u3007\u3021-\u3029\u3038-\u303A\u3192-\u3195\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\uA620-\uA629\uA6E6-\uA6EF\uA830-\uA835\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19]|\uD800[\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDEE1-\uDEFB\uDF20-\uDF23\uDF41\uDF4A\uDFD1-\uDFD5]|\uD801[\uDCA0-\uDCA9]|\uD802[\uDC58-\uDC5F\uDC79-\uDC7F\uDCA7-\uDCAF\uDCFB-\uDCFF\uDD16-\uDD1B\uDDBC\uDDBD\uDDC0-\uDDCF\uDDD2-\uDDFF\uDE40-\uDE48\uDE7D\uDE7E\uDE9D-\uDE9F\uDEEB-\uDEEF\uDF58-\uDF5F\uDF78-\uDF7F\uDFA9-\uDFAF]|\uD803[\uDCFA-\uDCFF\uDD30-\uDD39\uDE60-\uDE7E\uDF1D-\uDF26\uDF51-\uDF54\uDFC5-\uDFCB]|\uD804[\uDC52-\uDC6F\uDCF0-\uDCF9\uDD36-\uDD3F\uDDD0-\uDDD9\uDDE1-\uDDF4\uDEF0-\uDEF9]|\uD805[\uDC50-\uDC59\uDCD0-\uDCD9\uDE50-\uDE59\uDEC0-\uDEC9\uDF30-\uDF3B]|\uD806[\uDCE0-\uDCF2\uDD50-\uDD59]|\uD807[\uDC50-\uDC6C\uDD50-\uDD59\uDDA0-\uDDA9\uDF50-\uDF59\uDFC0-\uDFD4]|\uD809[\uDC00-\uDC6E]|\uD81A[\uDE60-\uDE69\uDEC0-\uDEC9\uDF50-\uDF59\uDF5B-\uDF61]|\uD81B[\uDE80-\uDE96]|\uD834[\uDEC0-\uDED3\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDFCE-\uDFFF]|\uD838[\uDD40-\uDD49\uDEF0-\uDEF9]|\uD839[\uDCF0-\uDCF9]|\uD83A[\uDCC7-\uDCCF\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9])/g, '');
35965
- return parseFloat(stringNumber.replace(new RegExp('\\' + thousandSeparator, 'g'), '').replace(new RegExp('\\' + decimalSeparator), '.'));
35966
- };
35967
- return React.createElement(React.Fragment, null, React.createElement(ThemeProvider, {
35968
- theme: lightTheme
35969
- }, React.createElement(ConfigProvider, {
35970
- theme: {
35971
- components: {}
36008
+ }, [currency, value]);
36009
+ var currencySelector = useMemo(function () {
36010
+ if (!currencyOptions || currencyOptions.length === 0) {
36011
+ return undefined;
36012
+ } else if (fixedCurrency) {
36013
+ return defaultCurrency === null || defaultCurrency === void 0 ? void 0 : defaultCurrency.symbol;
35972
36014
  }
35973
- }, React.createElement(InputNumber, Object.assign({
35974
- addonAfter: React.createElement(CurrencySelect, {
36015
+ return React.createElement(CurrencySelect, Object.assign({
35975
36016
  currencyOptions: currencyOptions,
35976
- onSelect: function onSelect(value, selected) {
35977
- setResult(_extends({}, result, {
35978
- currencyId: value,
35979
- currencyLabel: selected.label
35980
- }));
36017
+ onSelect: function onSelect(selected) {
36018
+ return setCurrency(selected);
35981
36019
  },
35982
- defaultCurrencyId: defaultCurrencyId
35983
- }),
35984
- value: result.value,
36020
+ defaultCurrencyId: defaultCurrency === null || defaultCurrency === void 0 ? void 0 : defaultCurrency.id
36021
+ }, currencySelectProps));
36022
+ }, [fixedCurrency, currencyOptions, defaultCurrency]);
36023
+ return React.createElement(React.Fragment, null, React.createElement(ThemeProvider, {
36024
+ theme: lightTheme
36025
+ }, React.createElement(InputNumber, Object.assign({
36026
+ defaultValue: defaultValue,
36027
+ min: min,
36028
+ addonBefore: currencySelector,
36029
+ value: value,
35985
36030
  className: styles.Wrapper,
35986
36031
  onChange: function onChange(value) {
35987
- setResult(_extends({}, result, {
35988
- value: value
35989
- }));
36032
+ return setValue(value);
35990
36033
  },
35991
36034
  formatter: function formatter(value) {
35992
- return formatValue(Number(value));
36035
+ return dontFormatValue ? String(value) : formatValue(Number(value), locale);
35993
36036
  },
35994
36037
  parser: function parser(value) {
35995
- return parseValue(value);
36038
+ return dontFormatValue ? value : parseValue(value, locale);
35996
36039
  }
35997
- }, props)))));
36040
+ }, props))));
35998
36041
  };
35999
- var CurrencySelect = function CurrencySelect(_ref3) {
36000
- var currencyOptions = _ref3.currencyOptions,
36001
- _onSelect = _ref3.onSelect,
36002
- defaultCurrencyId = _ref3.defaultCurrencyId;
36003
- return React.createElement(Select, {
36004
- defaultValue: defaultCurrencyId,
36005
- style: {
36006
- width: 80
36007
- },
36008
- onSelect: function onSelect(value, selected) {
36009
- _onSelect(Number(value), {
36010
- value: Number(selected.value),
36011
- label: selected.key
36012
- });
36013
- }
36014
- }, currencyOptions.map(function (option) {
36015
- return React.createElement(Select.Option, {
36016
- key: option.label,
36017
- value: option.value
36018
- }, option.label);
36019
- }));
36042
+ var formatValue = function formatValue(value, locale) {
36043
+ if (value === undefined || value === null) return '';
36044
+ return new Intl.NumberFormat(locale).format(Number(value));
36045
+ };
36046
+ var parseValue = function parseValue(stringNumber, locale) {
36047
+ var thousandSeparator = Intl.NumberFormat(locale).format(11111).replace(/(?:[0-9\xB2\xB3\xB9\xBC-\xBE\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u09F4-\u09F9\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0B72-\u0B77\u0BE6-\u0BF2\u0C66-\u0C6F\u0C78-\u0C7E\u0CE6-\u0CEF\u0D58-\u0D5E\u0D66-\u0D78\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F33\u1040-\u1049\u1090-\u1099\u1369-\u137C\u16EE-\u16F0\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1946-\u194F\u19D0-\u19DA\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\u2070\u2074-\u2079\u2080-\u2089\u2150-\u2182\u2185-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2CFD\u3007\u3021-\u3029\u3038-\u303A\u3192-\u3195\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\uA620-\uA629\uA6E6-\uA6EF\uA830-\uA835\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19]|\uD800[\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDEE1-\uDEFB\uDF20-\uDF23\uDF41\uDF4A\uDFD1-\uDFD5]|\uD801[\uDCA0-\uDCA9]|\uD802[\uDC58-\uDC5F\uDC79-\uDC7F\uDCA7-\uDCAF\uDCFB-\uDCFF\uDD16-\uDD1B\uDDBC\uDDBD\uDDC0-\uDDCF\uDDD2-\uDDFF\uDE40-\uDE48\uDE7D\uDE7E\uDE9D-\uDE9F\uDEEB-\uDEEF\uDF58-\uDF5F\uDF78-\uDF7F\uDFA9-\uDFAF]|\uD803[\uDCFA-\uDCFF\uDD30-\uDD39\uDE60-\uDE7E\uDF1D-\uDF26\uDF51-\uDF54\uDFC5-\uDFCB]|\uD804[\uDC52-\uDC6F\uDCF0-\uDCF9\uDD36-\uDD3F\uDDD0-\uDDD9\uDDE1-\uDDF4\uDEF0-\uDEF9]|\uD805[\uDC50-\uDC59\uDCD0-\uDCD9\uDE50-\uDE59\uDEC0-\uDEC9\uDF30-\uDF3B]|\uD806[\uDCE0-\uDCF2\uDD50-\uDD59]|\uD807[\uDC50-\uDC6C\uDD50-\uDD59\uDDA0-\uDDA9\uDF50-\uDF59\uDFC0-\uDFD4]|\uD809[\uDC00-\uDC6E]|\uD81A[\uDE60-\uDE69\uDEC0-\uDEC9\uDF50-\uDF59\uDF5B-\uDF61]|\uD81B[\uDE80-\uDE96]|\uD834[\uDEC0-\uDED3\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDFCE-\uDFFF]|\uD838[\uDD40-\uDD49\uDEF0-\uDEF9]|\uD839[\uDCF0-\uDCF9]|\uD83A[\uDCC7-\uDCCF\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9])/g, '');
36048
+ var decimalSeparator = Intl.NumberFormat(locale).format(1.1).replace(/(?:[0-9\xB2\xB3\xB9\xBC-\xBE\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u09F4-\u09F9\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0B72-\u0B77\u0BE6-\u0BF2\u0C66-\u0C6F\u0C78-\u0C7E\u0CE6-\u0CEF\u0D58-\u0D5E\u0D66-\u0D78\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F33\u1040-\u1049\u1090-\u1099\u1369-\u137C\u16EE-\u16F0\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1946-\u194F\u19D0-\u19DA\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\u2070\u2074-\u2079\u2080-\u2089\u2150-\u2182\u2185-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2CFD\u3007\u3021-\u3029\u3038-\u303A\u3192-\u3195\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\uA620-\uA629\uA6E6-\uA6EF\uA830-\uA835\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19]|\uD800[\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDEE1-\uDEFB\uDF20-\uDF23\uDF41\uDF4A\uDFD1-\uDFD5]|\uD801[\uDCA0-\uDCA9]|\uD802[\uDC58-\uDC5F\uDC79-\uDC7F\uDCA7-\uDCAF\uDCFB-\uDCFF\uDD16-\uDD1B\uDDBC\uDDBD\uDDC0-\uDDCF\uDDD2-\uDDFF\uDE40-\uDE48\uDE7D\uDE7E\uDE9D-\uDE9F\uDEEB-\uDEEF\uDF58-\uDF5F\uDF78-\uDF7F\uDFA9-\uDFAF]|\uD803[\uDCFA-\uDCFF\uDD30-\uDD39\uDE60-\uDE7E\uDF1D-\uDF26\uDF51-\uDF54\uDFC5-\uDFCB]|\uD804[\uDC52-\uDC6F\uDCF0-\uDCF9\uDD36-\uDD3F\uDDD0-\uDDD9\uDDE1-\uDDF4\uDEF0-\uDEF9]|\uD805[\uDC50-\uDC59\uDCD0-\uDCD9\uDE50-\uDE59\uDEC0-\uDEC9\uDF30-\uDF3B]|\uD806[\uDCE0-\uDCF2\uDD50-\uDD59]|\uD807[\uDC50-\uDC6C\uDD50-\uDD59\uDDA0-\uDDA9\uDF50-\uDF59\uDFC0-\uDFD4]|\uD809[\uDC00-\uDC6E]|\uD81A[\uDE60-\uDE69\uDEC0-\uDEC9\uDF50-\uDF59\uDF5B-\uDF61]|\uD81B[\uDE80-\uDE96]|\uD834[\uDEC0-\uDED3\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDFCE-\uDFFF]|\uD838[\uDD40-\uDD49\uDEF0-\uDEF9]|\uD839[\uDCF0-\uDCF9]|\uD83A[\uDCC7-\uDCCF\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9])/g, '');
36049
+ return parseFloat(stringNumber.replace(new RegExp('\\' + thousandSeparator, 'g'), '').replace(new RegExp('\\' + decimalSeparator), '.'));
36020
36050
  };
36021
36051
 
36022
36052
  /**