dtable-utils 0.0.2 → 0.0.3-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.
Files changed (150) hide show
  1. package/README.md +30 -2
  2. package/dist/index.js +1 -1
  3. package/es/cell-value-get/cell-value.js +227 -19
  4. package/es/cell-value-get/collaborator.js +9 -3
  5. package/es/cell-value-get/digital-sign.js +1 -1
  6. package/es/cell-value-get/geolocation.js +29 -5
  7. package/es/cell-value-get/long-text.js +1 -1
  8. package/es/cell-value-get/number.js +42 -18
  9. package/es/cell-value-get/option.js +17 -7
  10. package/es/cell-value-get/rate.js +6 -0
  11. package/es/cell-value-set/date.js +20 -0
  12. package/es/cell-value-set/number.js +53 -1
  13. package/es/color/gradient-color.js +100 -0
  14. package/es/column/color.js +415 -0
  15. package/es/column/{common.js → core.js} +3 -15
  16. package/es/column/date.js +2 -3
  17. package/es/column/number.js +3 -5
  18. package/es/column/option.js +115 -0
  19. package/es/common.js +10 -1
  20. package/es/constants/color.js +16 -0
  21. package/es/constants/column-permission.js +7 -0
  22. package/es/constants/column.js +127 -2
  23. package/es/constants/filter/index.js +5 -1
  24. package/es/constants/grid-header.js +6 -0
  25. package/es/constants/group.js +23 -0
  26. package/es/constants/limit.js +3 -0
  27. package/es/constants/reg.js +4 -0
  28. package/es/constants/row-color.js +11 -0
  29. package/es/constants/sort.js +11 -0
  30. package/es/date.js +1 -1
  31. package/es/filter/core.js +287 -0
  32. package/es/filter/filter-column/array.js +82 -0
  33. package/es/filter/filter-column/checkbox.js +8 -0
  34. package/es/filter/filter-column/collaborator.js +67 -0
  35. package/es/filter/filter-column/creator.js +50 -0
  36. package/es/filter/filter-column/date.js +59 -0
  37. package/es/filter/filter-column/digital-sign.js +26 -0
  38. package/es/filter/filter-column/file.js +24 -0
  39. package/es/filter/filter-column/formula.js +49 -0
  40. package/es/filter/filter-column/geolocation.js +53 -0
  41. package/es/filter/filter-column/link.js +12 -0
  42. package/es/filter/filter-column/long-text.js +25 -0
  43. package/es/filter/filter-column/multiple-select.js +60 -0
  44. package/es/filter/filter-column/number.js +93 -0
  45. package/es/filter/filter-column/single-select.js +41 -0
  46. package/es/filter/filter-column/text.js +55 -0
  47. package/es/filter/filter-row.js +198 -0
  48. package/es/group/core.js +107 -0
  49. package/es/group/group-row.js +366 -0
  50. package/es/index.js +62 -10
  51. package/es/link/core.js +78 -0
  52. package/es/number.js +13 -0
  53. package/es/row/color.js +278 -0
  54. package/es/row/core.js +161 -0
  55. package/es/sort/core.js +32 -0
  56. package/es/sort/sort-column/array.js +63 -0
  57. package/es/sort/sort-column/checkbox.js +15 -0
  58. package/es/sort/sort-column/collaborator.js +9 -0
  59. package/es/sort/sort-column/date.js +25 -0
  60. package/es/sort/sort-column/formula.js +40 -0
  61. package/es/sort/sort-column/link.js +23 -0
  62. package/es/sort/sort-column/multiple-select.js +45 -0
  63. package/es/sort/sort-column/number.js +18 -0
  64. package/es/sort/sort-column/single-select.js +22 -0
  65. package/es/sort/sort-column/text.js +47 -0
  66. package/es/sort/sort-row.js +126 -0
  67. package/es/table/column.js +27 -0
  68. package/es/table/core.js +14 -0
  69. package/es/table/index.js +14 -0
  70. package/es/table/row.js +25 -0
  71. package/es/validate/filter.js +1 -1
  72. package/es/validate/geolocation.js +5 -0
  73. package/es/view/core.js +135 -0
  74. package/es/view/formula.js +143 -0
  75. package/es/view/group.js +32 -0
  76. package/es/view/summaries.js +179 -0
  77. package/lib/cell-value-get/cell-value.js +231 -18
  78. package/lib/cell-value-get/collaborator.js +9 -2
  79. package/lib/cell-value-get/digital-sign.js +1 -1
  80. package/lib/cell-value-get/geolocation.js +30 -5
  81. package/lib/cell-value-get/long-text.js +1 -1
  82. package/lib/cell-value-get/number.js +42 -17
  83. package/lib/cell-value-get/option.js +18 -6
  84. package/lib/cell-value-get/rate.js +10 -0
  85. package/lib/cell-value-set/date.js +24 -0
  86. package/lib/cell-value-set/number.js +53 -0
  87. package/lib/color/gradient-color.js +110 -0
  88. package/lib/column/color.js +424 -0
  89. package/lib/column/{common.js → core.js} +3 -16
  90. package/lib/column/date.js +2 -3
  91. package/lib/column/number.js +3 -5
  92. package/lib/column/option.js +123 -0
  93. package/lib/common.js +14 -0
  94. package/lib/constants/color.js +20 -0
  95. package/lib/constants/column-permission.js +11 -0
  96. package/lib/constants/column.js +134 -1
  97. package/lib/constants/filter/index.js +5 -0
  98. package/lib/constants/grid-header.js +10 -0
  99. package/lib/constants/group.js +36 -0
  100. package/lib/constants/limit.js +7 -0
  101. package/lib/constants/reg.js +9 -0
  102. package/lib/constants/row-color.js +17 -0
  103. package/lib/constants/sort.js +18 -0
  104. package/lib/filter/core.js +301 -0
  105. package/lib/filter/filter-column/array.js +86 -0
  106. package/lib/filter/filter-column/checkbox.js +12 -0
  107. package/lib/filter/filter-column/collaborator.js +75 -0
  108. package/lib/filter/filter-column/creator.js +54 -0
  109. package/lib/filter/filter-column/date.js +63 -0
  110. package/lib/filter/filter-column/digital-sign.js +30 -0
  111. package/lib/filter/filter-column/file.js +28 -0
  112. package/lib/filter/filter-column/formula.js +53 -0
  113. package/lib/filter/filter-column/geolocation.js +57 -0
  114. package/lib/filter/filter-column/link.js +16 -0
  115. package/lib/filter/filter-column/long-text.js +29 -0
  116. package/lib/filter/filter-column/multiple-select.js +68 -0
  117. package/lib/filter/filter-column/number.js +97 -0
  118. package/lib/filter/filter-column/single-select.js +45 -0
  119. package/lib/filter/filter-column/text.js +59 -0
  120. package/lib/filter/filter-row.js +204 -0
  121. package/lib/group/core.js +117 -0
  122. package/lib/group/group-row.js +377 -0
  123. package/lib/index.js +176 -6
  124. package/lib/link/core.js +90 -0
  125. package/lib/number.js +18 -0
  126. package/lib/row/color.js +286 -0
  127. package/lib/row/core.js +170 -0
  128. package/lib/sort/core.js +37 -0
  129. package/lib/sort/sort-column/array.js +67 -0
  130. package/lib/sort/sort-column/checkbox.js +19 -0
  131. package/lib/sort/sort-column/collaborator.js +13 -0
  132. package/lib/sort/sort-column/date.js +29 -0
  133. package/lib/sort/sort-column/formula.js +44 -0
  134. package/lib/sort/sort-column/link.js +27 -0
  135. package/lib/sort/sort-column/multiple-select.js +50 -0
  136. package/lib/sort/sort-column/number.js +22 -0
  137. package/lib/sort/sort-column/single-select.js +26 -0
  138. package/lib/sort/sort-column/text.js +52 -0
  139. package/lib/sort/sort-row.js +136 -0
  140. package/lib/table/column.js +32 -0
  141. package/lib/table/core.js +18 -0
  142. package/lib/table/index.js +18 -0
  143. package/lib/table/row.js +30 -0
  144. package/lib/validate/filter.js +3 -3
  145. package/lib/validate/geolocation.js +9 -0
  146. package/lib/view/core.js +144 -0
  147. package/lib/view/formula.js +150 -0
  148. package/lib/view/group.js +36 -0
  149. package/lib/view/summaries.js +185 -0
  150. package/package.json +4 -2
package/lib/index.js CHANGED
@@ -7,7 +7,21 @@ var column = require('./constants/column.js');
7
7
  var index = require('./constants/filter/index.js');
8
8
  var formula = require('./constants/formula.js');
9
9
  var selectOption = require('./constants/select-option.js');
10
+ var sort = require('./constants/sort.js');
11
+ var group = require('./constants/group.js');
12
+ var columnPermission = require('./constants/column-permission.js');
13
+ var reg = require('./constants/reg.js');
14
+ var color = require('./constants/color.js');
15
+ var gridHeader = require('./constants/grid-header.js');
10
16
  var common = require('./common.js');
17
+ var index$1 = require('./table/index.js');
18
+ var core = require('./row/core.js');
19
+ var color$1 = require('./row/color.js');
20
+ var core$1 = require('./view/core.js');
21
+ var summaries = require('./view/summaries.js');
22
+ var formula$1 = require('./view/formula.js');
23
+ var group$1 = require('./view/group.js');
24
+ var core$2 = require('./link/core.js');
11
25
  var date = require('./cell-value-get/date.js');
12
26
  var duration = require('./cell-value-get/duration.js');
13
27
  var number = require('./cell-value-get/number.js');
@@ -17,59 +31,211 @@ var geolocation = require('./cell-value-get/geolocation.js');
17
31
  var digitalSign = require('./cell-value-get/digital-sign.js');
18
32
  var longText = require('./cell-value-get/long-text.js');
19
33
  var cellValue = require('./cell-value-get/cell-value.js');
34
+ var rate = require('./cell-value-get/rate.js');
20
35
  var number$1 = require('./cell-value-set/number.js');
21
- var common$1 = require('./column/common.js');
22
- var date$1 = require('./column/date.js');
36
+ var date$1 = require('./cell-value-set/date.js');
37
+ var option$1 = require('./column/option.js');
38
+ var date$2 = require('./column/date.js');
23
39
  var number$2 = require('./column/number.js');
24
- var date$2 = require('./date.js');
40
+ var color$2 = require('./column/color.js');
41
+ var date$3 = require('./date.js');
42
+ var number$3 = require('./number.js');
25
43
  var filter = require('./validate/filter.js');
26
44
  var email = require('./validate/email.js');
45
+ var geolocation$1 = require('./validate/geolocation.js');
46
+ var core$3 = require('./filter/core.js');
47
+ var checkbox = require('./filter/filter-column/checkbox.js');
48
+ var collaborator$1 = require('./filter/filter-column/collaborator.js');
49
+ var creator = require('./filter/filter-column/creator.js');
50
+ var date$4 = require('./filter/filter-column/date.js');
51
+ var digitalSign$1 = require('./filter/filter-column/digital-sign.js');
52
+ var file = require('./filter/filter-column/file.js');
53
+ var formula$2 = require('./filter/filter-column/formula.js');
54
+ var geolocation$2 = require('./filter/filter-column/geolocation.js');
55
+ var text = require('./filter/filter-column/text.js');
56
+ var longText$1 = require('./filter/filter-column/long-text.js');
57
+ var multipleSelect = require('./filter/filter-column/multiple-select.js');
58
+ var number$4 = require('./filter/filter-column/number.js');
59
+ var singleSelect = require('./filter/filter-column/single-select.js');
60
+ var link = require('./filter/filter-column/link.js');
61
+ var filterRow = require('./filter/filter-row.js');
62
+ var core$4 = require('./sort/core.js');
63
+ var checkbox$1 = require('./sort/sort-column/checkbox.js');
64
+ var collaborator$2 = require('./sort/sort-column/collaborator.js');
65
+ var date$5 = require('./sort/sort-column/date.js');
66
+ var array = require('./sort/sort-column/array.js');
67
+ var formula$3 = require('./sort/sort-column/formula.js');
68
+ var link$1 = require('./sort/sort-column/link.js');
69
+ var multipleSelect$1 = require('./sort/sort-column/multiple-select.js');
70
+ var number$5 = require('./sort/sort-column/number.js');
71
+ var singleSelect$1 = require('./sort/sort-column/single-select.js');
72
+ var text$1 = require('./sort/sort-column/text.js');
73
+ var sortRow = require('./sort/sort-row.js');
74
+ var core$5 = require('./group/core.js');
75
+ var groupRow = require('./group/group-row.js');
76
+ var gradientColor = require('./color/gradient-color.js');
27
77
  var filterColumnOptions = require('./constants/filter/filter-column-options.js');
28
78
  var filterModifier = require('./constants/filter/filter-modifier.js');
29
79
  var filterPredicate = require('./constants/filter/filter-predicate.js');
30
80
  var filterIsWithin = require('./constants/filter/filter-is-within.js');
81
+ var column$1 = require('./table/column.js');
82
+ var row = require('./table/row.js');
31
83
 
32
84
 
33
85
 
34
86
  exports.CellType = cellType.CellType;
35
87
  exports.COLLABORATOR_COLUMN_TYPES = column.COLLABORATOR_COLUMN_TYPES;
36
88
  exports.COLUMNS_ICON_CONFIG = column.COLUMNS_ICON_CONFIG;
89
+ exports.COLUMN_OPTIONS = column.COLUMN_OPTIONS;
37
90
  exports.DATE_COLUMN_OPTIONS = column.DATE_COLUMN_OPTIONS;
91
+ exports.DATE_DEFAULT_TYPES = column.DATE_DEFAULT_TYPES;
92
+ exports.DATE_FORMAT_MAP = column.DATE_FORMAT_MAP;
93
+ exports.DATE_UNIT = column.DATE_UNIT;
38
94
  exports.DEFAULT_DATE_FORMAT = column.DEFAULT_DATE_FORMAT;
39
95
  exports.DEFAULT_NUMBER_FORMAT = column.DEFAULT_NUMBER_FORMAT;
40
96
  exports.DURATION_DECIMAL_DIGITS = column.DURATION_DECIMAL_DIGITS;
41
97
  exports.DURATION_FORMATS = column.DURATION_FORMATS;
42
98
  exports.DURATION_FORMATS_MAP = column.DURATION_FORMATS_MAP;
43
99
  exports.DURATION_ZERO_DISPLAY = column.DURATION_ZERO_DISPLAY;
100
+ exports.FILL_DEFAULT_VALUE_COLUMNS_TYPE = column.FILL_DEFAULT_VALUE_COLUMNS_TYPE;
101
+ exports.MULTIPLE_CELL_VALUE_COLUMN_TYPE_MAP = column.MULTIPLE_CELL_VALUE_COLUMN_TYPE_MAP;
102
+ exports.NOT_SUPPORT_EDIT_COLUMN_TYPE_MAP = column.NOT_SUPPORT_EDIT_COLUMN_TYPE_MAP;
44
103
  exports.NUMERIC_COLUMNS_TYPES = column.NUMERIC_COLUMNS_TYPES;
104
+ exports.SINGLE_CELL_VALUE_COLUMN_TYPE_MAP = column.SINGLE_CELL_VALUE_COLUMN_TYPE_MAP;
105
+ exports.UTC_FORMAT_DEFAULT = column.UTC_FORMAT_DEFAULT;
106
+ exports.FILTER_CONJUNCTION_TYPE = index.FILTER_CONJUNCTION_TYPE;
45
107
  exports.FILTER_ERR_MSG = index.FILTER_ERR_MSG;
46
108
  exports.FORMULA_COLUMN_TYPES_MAP = formula.FORMULA_COLUMN_TYPES_MAP;
47
109
  exports.FORMULA_RESULT_TYPE = formula.FORMULA_RESULT_TYPE;
48
110
  exports.HIGHLIGHT_COLORS = selectOption.HIGHLIGHT_COLORS;
49
111
  exports.SELECT_OPTION_COLORS = selectOption.SELECT_OPTION_COLORS;
112
+ exports.NUMBER_SORTER_COLUMN_TYPES = sort.NUMBER_SORTER_COLUMN_TYPES;
113
+ exports.SORT_COLUMN_OPTIONS = sort.SORT_COLUMN_OPTIONS;
114
+ exports.SORT_TYPE = sort.SORT_TYPE;
115
+ exports.TEXT_SORTER_COLUMN_TYPES = sort.TEXT_SORTER_COLUMN_TYPES;
116
+ exports.DISPLAY_GROUP_DATE_GRANULARITY = group.DISPLAY_GROUP_DATE_GRANULARITY;
117
+ exports.DISPLAY_GROUP_GEOLOCATION_GRANULARITY = group.DISPLAY_GROUP_GEOLOCATION_GRANULARITY;
118
+ exports.GROUP_DATE_GRANULARITY = group.GROUP_DATE_GRANULARITY;
119
+ exports.GROUP_GEOLOCATION_GRANULARITY = group.GROUP_GEOLOCATION_GRANULARITY;
120
+ exports.MAX_GROUP_LEVEL = group.MAX_GROUP_LEVEL;
121
+ exports.SUPPORT_GROUP_COLUMN_TYPES = group.SUPPORT_GROUP_COLUMN_TYPES;
122
+ exports.COLUMN_PERMISSION_TYPE = columnPermission.COLUMN_PERMISSION_TYPE;
123
+ exports.REG_NUMBER_DIGIT = reg.REG_NUMBER_DIGIT;
124
+ exports.REG_STRING_NUMBER_PARTS = reg.REG_STRING_NUMBER_PARTS;
125
+ exports.COLOR_GRADATION_OPTIONS = color.COLOR_GRADATION_OPTIONS;
126
+ exports.HEADER_HEIGHT_TYPE = gridHeader.HEADER_HEIGHT_TYPE;
50
127
  exports.generatorBase64Code = common.generatorBase64Code;
128
+ exports.isEmpty = common.isEmpty;
129
+ exports.getTableById = index$1.getTableById;
130
+ exports.convertRow = core.convertRow;
131
+ exports.isTableRows = core.isTableRows;
132
+ exports.RowColorUtils = color$1["default"];
133
+ exports.getLinkColumnsUsedInFilters = core$1.getLinkColumnsUsedInFilters;
134
+ exports.getViewById = core$1.getViewById;
135
+ exports.isDefaultView = core$1.isDefaultView;
136
+ exports.isFilterView = core$1.isFilterView;
137
+ exports.isGroupView = core$1.isGroupView;
138
+ exports.isSortView = core$1.isSortView;
139
+ exports.getSummaries = summaries.getSummaries;
140
+ exports.getSummariesWithSubgroups = summaries.getSummariesWithSubgroups;
141
+ exports.updateGroupSummaries = summaries.updateGroupSummaries;
142
+ exports.getFormulaColumnsContainLinks = formula$1.getFormulaColumnsContainLinks;
143
+ exports.getSortedFormulaColumns = formula$1.getSortedFormulaColumns;
144
+ exports.getSortedFormulaColumnsContainLinks = formula$1.getSortedFormulaColumnsContainLinks;
145
+ exports.transLink2LinkFormula = formula$1.transLink2LinkFormula;
146
+ exports.getGroupByPath = group$1.getGroupByPath;
147
+ exports.getLinkById = core$2.getLinkById;
148
+ exports.getLinkCellValue = core$2.getLinkCellValue;
149
+ exports.getLinkTableID = core$2.getLinkTableID;
150
+ exports.getLinkedTableID = core$2.getLinkedTableID;
151
+ exports.isValidLink = core$2.isValidLink;
51
152
  exports.getDateDisplayString = date.getDateDisplayString;
52
153
  exports.getDurationDisplayString = duration.getDurationDisplayString;
53
154
  exports.getNumberDisplayString = number.getNumberDisplayString;
155
+ exports.getPrecisionNumber = number.getPrecisionNumber;
54
156
  exports.replaceNumberNotAllowInput = number.replaceNumberNotAllowInput;
157
+ exports.getColumnOptionNameById = option.getColumnOptionNameById;
55
158
  exports.getMultipleOptionName = option.getMultipleOptionName;
159
+ exports.getOption = option.getOption;
56
160
  exports.getOptionName = option.getOptionName;
161
+ exports.getCollaborator = collaborator.getCollaborator;
57
162
  exports.getCollaboratorsName = collaborator.getCollaboratorsName;
58
163
  exports.getCollaboratorsNames = collaborator.getCollaboratorsNames;
164
+ exports.getGeolocationByGranularity = geolocation.getGeolocationByGranularity;
59
165
  exports.getGeolocationDisplayString = geolocation.getGeolocationDisplayString;
60
166
  exports.getDigitalSignImageUrl = digitalSign.getDigitalSignImageUrl;
61
167
  exports.getLongtextDisplayString = longText.getLongtextDisplayString;
62
168
  exports.getCellValueDisplayString = cellValue.getCellValueDisplayString;
169
+ exports.getCellValueStringResult = cellValue.getCellValueStringResult;
63
170
  exports.getFormulaDisplayString = cellValue.getFormulaDisplayString;
171
+ exports.getRateDisplayString = rate.getRateDisplayString;
172
+ exports.formatDurationToNumber = number$1.formatDurationToNumber;
64
173
  exports.formatStringToNumber = number$1.formatStringToNumber;
65
174
  exports.getFloatNumber = number$1.getFloatNumber;
66
- exports.getColumnOptions = common$1.getColumnOptions;
67
- exports.isDateColumn = date$1.isDateColumn;
175
+ exports.formatTextToDate = date$1.formatTextToDate;
176
+ exports.createOption = option$1.createOption;
177
+ exports.generateOptionID = option$1.generateOptionID;
178
+ exports.generatorCellOption = option$1.generatorCellOption;
179
+ exports.generatorCellOptions = option$1.generatorCellOptions;
180
+ exports.getColumnOptions = option$1.getColumnOptions;
181
+ exports.isDateColumn = date$2.isDateColumn;
68
182
  exports.isNumberColumn = number$2.isNumberColumn;
69
183
  exports.isNumericColumn = number$2.isNumericColumn;
70
- exports.DateUtils = date$2.DateUtils;
184
+ exports.ColumnColorUtils = color$2["default"];
185
+ exports.DateUtils = date$3.DateUtils;
186
+ exports.isNumber = number$3.isNumber;
187
+ exports.isNumberEqual = number$3.isNumberEqual;
71
188
  exports.ValidateFilter = filter.ValidateFilter;
72
189
  exports.isValidEmail = email.isValidEmail;
190
+ exports.isValidPosition = geolocation$1.isValidPosition;
191
+ exports.deleteInvalidFilter = core$3.deleteInvalidFilter;
192
+ exports.getFormattedFilter = core$3.getFormattedFilter;
193
+ exports.getFormattedFilterOtherDate = core$3.getFormattedFilterOtherDate;
194
+ exports.getFormattedFilters = core$3.getFormattedFilters;
195
+ exports.getValidFilters = core$3.getValidFilters;
196
+ exports.getValidFiltersWithoutError = core$3.getValidFiltersWithoutError;
197
+ exports.otherDate = core$3.otherDate;
198
+ exports.checkboxFilter = checkbox.checkboxFilter;
199
+ exports.collaboratorFilter = collaborator$1.collaboratorFilter;
200
+ exports.creatorFilter = creator.creatorFilter;
201
+ exports.dateFilter = date$4.dateFilter;
202
+ exports.digitalSignFilter = digitalSign$1.digitalSignFilter;
203
+ exports.fileFilter = file.fileFilter;
204
+ exports.formulaFilter = formula$2.formulaFilter;
205
+ exports.geolocationFilter = geolocation$2.geolocationFilter;
206
+ exports.textFilter = text.textFilter;
207
+ exports.longTextFilter = longText$1.longTextFilter;
208
+ exports.multipleSelectFilter = multipleSelect.multipleSelectFilter;
209
+ exports.numberFilter = number$4.numberFilter;
210
+ exports.singleSelectFilter = singleSelect.singleSelectFilter;
211
+ exports.linkFilter = link.linkFilter;
212
+ exports.filterRow = filterRow.filterRow;
213
+ exports.filterRows = filterRow.filterRows;
214
+ exports.getFilteredRowsWithoutFormulaCalculation = filterRow.getFilteredRowsWithoutFormulaCalculation;
215
+ exports.getValidSorts = core$4.getValidSorts;
216
+ exports.isValidSort = core$4.isValidSort;
217
+ exports.sortCheckbox = checkbox$1.sortCheckbox;
218
+ exports.sortCollaborator = collaborator$2.sortCollaborator;
219
+ exports.sortDate = date$5.sortDate;
220
+ exports.sortByArrayType = array.sortByArrayType;
221
+ exports.sortFormula = formula$3.sortFormula;
222
+ exports.sortLink = link$1.sortLink;
223
+ exports.getMultipleIndexesOrderbyOptions = multipleSelect$1.getMultipleIndexesOrderbyOptions;
224
+ exports.sortMultipleSelect = multipleSelect$1.sortMultipleSelect;
225
+ exports.sortNumber = number$5.sortNumber;
226
+ exports.sortSingleSelect = singleSelect$1.sortSingleSelect;
227
+ exports.compareString = text$1.compareString;
228
+ exports.sortText = text$1.sortText;
229
+ exports.deleteInvalidSort = sortRow.deleteInvalidSort;
230
+ exports.sortRowsWithMultiSorts = sortRow.sortRowsWithMultiSorts;
231
+ exports.sortTableRows = sortRow.sortTableRows;
232
+ exports.deleteInvalidGroupby = core$5.deleteInvalidGroupby;
233
+ exports.getValidGroupbys = core$5.getValidGroupbys;
234
+ exports.isValidGroupby = core$5.isValidGroupby;
235
+ exports.getGroupedRowsWithoutFormulaCalculation = groupRow.getGroupedRowsWithoutFormulaCalculation;
236
+ exports.groupTableRows = groupRow.groupTableRows;
237
+ exports.groupViewRows = groupRow.groupViewRows;
238
+ exports.GradientColorUtils = gradientColor["default"];
73
239
  exports.FILTER_COLUMN_OPTIONS = filterColumnOptions.FILTER_COLUMN_OPTIONS;
74
240
  exports.FILTER_TERM_MODIFIER_SHOW = filterModifier.FILTER_TERM_MODIFIER_SHOW;
75
241
  exports.FILTER_TERM_MODIFIER_TYPE = filterModifier.FILTER_TERM_MODIFIER_TYPE;
@@ -77,3 +243,7 @@ exports.FILTER_PREDICATE_SHOW = filterPredicate.FILTER_PREDICATE_SHOW;
77
243
  exports.FILTER_PREDICATE_TYPE = filterPredicate.FILTER_PREDICATE_TYPE;
78
244
  exports.filterTermModifierIsWithin = filterIsWithin.filterTermModifierIsWithin;
79
245
  exports.filterTermModifierNotWithin = filterIsWithin.filterTermModifierNotWithin;
246
+ exports.getTableColumnByKey = column$1.getTableColumnByKey;
247
+ exports.getTableColumnByName = column$1.getTableColumnByName;
248
+ exports.getRowById = row.getRowById;
249
+ exports.getRowsByIds = row.getRowsByIds;
@@ -0,0 +1,90 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
6
+
7
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
+
9
+ var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
10
+
11
+ /**
12
+ * get link by id
13
+ * @param {array} links [{ _id, ... }]
14
+ * @param {string} linkId
15
+ * @returns object
16
+ */
17
+ var getLinkById = function getLinkById(links, linkId) {
18
+ if (!Array.isArray(links) || !linkId) return null;
19
+ return links.find(function (link) {
20
+ return link._id === linkId;
21
+ });
22
+ };
23
+
24
+ /**
25
+ * check is valid link by link column's data
26
+ * @param {object} columnData
27
+ * @returns boolean
28
+ */
29
+ var isValidLink = function isValidLink(linkColumnData) {
30
+ if (!linkColumnData) return false;
31
+ var link_id = linkColumnData.link_id,
32
+ table_id = linkColumnData.table_id,
33
+ other_table_id = linkColumnData.other_table_id,
34
+ display_column_key = linkColumnData.display_column_key;
35
+ return !!(link_id && table_id && other_table_id && display_column_key);
36
+ };
37
+
38
+ /**
39
+ * get current table's id
40
+ * @param {string} currentTableID
41
+ * @param {string} tableID
42
+ * @param {string} otherTableID
43
+ * @returns string
44
+ */
45
+ var getLinkTableID = function getLinkTableID(currentTableID, tableID, otherTableID) {
46
+ return currentTableID === tableID ? tableID : otherTableID;
47
+ };
48
+
49
+ /**
50
+ * get linked table's id
51
+ * @param {string} currentTableID
52
+ * @param {string} tableID
53
+ * @param {string} otherTableID
54
+ * @returns string
55
+ */
56
+ var getLinkedTableID = function getLinkedTableID(currentTableID, tableID, otherTableID) {
57
+ return currentTableID === tableID ? otherTableID : tableID;
58
+ };
59
+
60
+ /**
61
+ * get linked rows ids of the row id
62
+ * @param {array} links [ { _id: '', table1_id, table2_id: '', table1_table2_map: {}, table2_table1_map: {} }, ... ]
63
+ * @param {string} link_id
64
+ * @param {string} table1Id
65
+ * @param {string} table2Id
66
+ * @param {string} rowId
67
+ * @returns array, linked rows ids
68
+ */
69
+ var getLinkCellValue = function getLinkCellValue(links, linkId, table1Id, table2Id, rowId) {
70
+ if (!Array.isArray(links) || links.length === 0 || !table1Id || !table2Id || !rowId) return [];
71
+ var linkBetween2Tables = getLinkById(links, linkId);
72
+ if (!linkBetween2Tables) return [];
73
+ var linkMap = {};
74
+ if (table1Id === table2Id) {
75
+ linkMap = linkBetween2Tables.table2_table1_map;
76
+ } else {
77
+ linkMap = linkBetween2Tables.table1_id === table1Id ? linkBetween2Tables.table1_table2_map : linkBetween2Tables.table2_table1_map;
78
+ }
79
+ var linkedRowIds = linkMap[rowId];
80
+ if (!linkedRowIds) {
81
+ return [];
82
+ }
83
+ return _toConsumableArray__default["default"](linkedRowIds);
84
+ };
85
+
86
+ exports.getLinkById = getLinkById;
87
+ exports.getLinkCellValue = getLinkCellValue;
88
+ exports.getLinkTableID = getLinkTableID;
89
+ exports.getLinkedTableID = getLinkedTableID;
90
+ exports.isValidLink = isValidLink;
package/lib/number.js ADDED
@@ -0,0 +1,18 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ /**
6
+ * check whether is number
7
+ * @param {number} number
8
+ * @returns boolean
9
+ */
10
+ var isNumber = function isNumber(number) {
11
+ return (number || number === 0) && Object.prototype.toString.call(number) === '[object Number]';
12
+ };
13
+ var isNumberEqual = function isNumberEqual(number1, number2) {
14
+ return number1 === number2 || Math.abs(number1 - number2) < 0.00001;
15
+ };
16
+
17
+ exports.isNumber = isNumber;
18
+ exports.isNumberEqual = isNumberEqual;
@@ -0,0 +1,286 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
6
+ var column = require('../table/column.js');
7
+ var row = require('../table/row.js');
8
+ var core$1 = require('./core.js');
9
+ var option = require('../column/option.js');
10
+ var geolocation = require('../cell-value-get/geolocation.js');
11
+ var filter = require('../validate/filter.js');
12
+ var core = require('../filter/core.js');
13
+ var filterRow = require('../filter/filter-row.js');
14
+ var rowColor = require('../constants/row-color.js');
15
+ var cellType = require('../constants/cell-type.js');
16
+
17
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
18
+
19
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
20
+
21
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
22
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
23
+ var isValidRowColorRule = function isValidRowColorRule(rule, columns) {
24
+ var filters = rule.filters;
25
+ if (!filters || filters.length === 0) return false;
26
+ return filters.some(function (filter$1) {
27
+ return !filter.ValidateFilter.validate(filter$1, columns).error_message;
28
+ });
29
+ };
30
+ var getValidRowColorRules = function getValidRowColorRules(colorRules, columns) {
31
+ return colorRules.filter(function (colorRule) {
32
+ return isValidRowColorRule(colorRule, columns);
33
+ });
34
+ };
35
+ var getOptionIdMap = function getOptionIdMap(options) {
36
+ if (!Array.isArray(options) || options.length === 0) return {};
37
+ var optionsMap = {};
38
+ options.forEach(function (option) {
39
+ optionsMap[option.id] = true;
40
+ });
41
+ return optionsMap;
42
+ };
43
+ var getFormattedDuplicateColumns = function getFormattedDuplicateColumns(columns, duplicateColumnKeys, _ref) {
44
+ var collaborators = _ref.collaborators;
45
+ var formattedColumns = [];
46
+ var _loop = function _loop() {
47
+ var key = duplicateColumnKeys[i];
48
+ var currColumn = columns.find(function (column) {
49
+ return column.key === key;
50
+ });
51
+ if (!currColumn) return "continue";
52
+ var type = currColumn.type,
53
+ data = currColumn.data;
54
+ var formattedColumnData = data;
55
+ if (!rowColor.SUPPORT_CHECKING_DUPLICATE_COLUMNS_TYPES.includes(type)) return "continue";
56
+ if (type === cellType.CellType.SINGLE_SELECT || type === cellType.CellType.MULTIPLE_SELECT) {
57
+ var options = option.getColumnOptions(currColumn);
58
+ formattedColumnData = getOptionIdMap(options);
59
+ } else if (type === cellType.CellType.COLLABORATOR) {
60
+ var optionsMap = {};
61
+ if (Array.isArray(collaborators)) {
62
+ collaborators.forEach(function (collaborator) {
63
+ optionsMap[collaborator.email] = true;
64
+ });
65
+ }
66
+ formattedColumnData = optionsMap;
67
+ }
68
+ formattedColumns.push({
69
+ key: key,
70
+ type: type,
71
+ data: formattedColumnData
72
+ });
73
+ };
74
+ for (var i = 0; i < duplicateColumnKeys.length; i++) {
75
+ var _ret = _loop();
76
+ if (_ret === "continue") continue;
77
+ }
78
+ return formattedColumns;
79
+ };
80
+ var getDuplicateRowValue = function getDuplicateRowValue(row, columns, formulaRow) {
81
+ if (!row) return '';
82
+ var rowValue = columns.map(function (column) {
83
+ var type = column.type,
84
+ data = column.data,
85
+ key = column.key;
86
+ var cellValue = row[key];
87
+ switch (type) {
88
+ case cellType.CellType.SINGLE_SELECT:
89
+ {
90
+ return data[cellValue] ? cellValue : '';
91
+ }
92
+ case cellType.CellType.MULTIPLE_SELECT:
93
+ case cellType.CellType.COLLABORATOR:
94
+ {
95
+ if (!Array.isArray(cellValue) || cellValue.length === 0) return '';
96
+ return cellValue.filter(function (item) {
97
+ return data[item];
98
+ }).sort().join('');
99
+ }
100
+ case cellType.CellType.GEOLOCATION:
101
+ {
102
+ if (!cellValue) return '';
103
+ return geolocation.getGeolocationDisplayString(cellValue, data) || '';
104
+ }
105
+ case cellType.CellType.NUMBER:
106
+ {
107
+ if (!cellValue && cellValue !== 0) return '';
108
+ return cellValue;
109
+ }
110
+ case cellType.CellType.FORMULA:
111
+ {
112
+ if (!formulaRow) return '';
113
+ cellValue = formulaRow[key];
114
+ return cellValue;
115
+ }
116
+ default:
117
+ {
118
+ return cellValue || '';
119
+ }
120
+ }
121
+ }).join('_seatable_join_key_');
122
+ if (!rowValue) return '';
123
+ if (typeof ''.replaceAll !== 'function') {
124
+ // eslint-disable-next-line
125
+ String.prototype.replaceAll = function (s1, s2) {
126
+ return this.replace(new RegExp(s1, 'gm'), s2);
127
+ };
128
+ }
129
+ if (!rowValue.replaceAll('_seatable_join_key_', '')) return '';
130
+ return rowValue;
131
+ };
132
+ var getRowsColorBySingleSelectColumn = function getRowsColorBySingleSelectColumn(rows, columnKey, table) {
133
+ var colors = {};
134
+ var column$1 = column.getTableColumnByKey(table, columnKey);
135
+ var options = option.getColumnOptions(column$1);
136
+ if (!Array.isArray(options) || options.length === 0) return {};
137
+ var option_id_color_map = {};
138
+ options.forEach(function (option) {
139
+ option_id_color_map[option.id] = option.color;
140
+ });
141
+ rows.forEach(function (row) {
142
+ var optionId = row[columnKey];
143
+ var color = optionId ? option_id_color_map[optionId] : '';
144
+ if (color) {
145
+ colors[row._id] = color;
146
+ }
147
+ });
148
+ return colors;
149
+ };
150
+ var getRowsColorByRules = function getRowsColorByRules(rows, view, table) {
151
+ var _ref2 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {},
152
+ username = _ref2.username,
153
+ userId = _ref2.userId;
154
+ var formula_rows = view.formula_rows,
155
+ colorbys = view.colorbys;
156
+ var _ref3 = colorbys || {},
157
+ type = _ref3.type,
158
+ color_by_rules = _ref3.color_by_rules;
159
+ if (type !== rowColor.ROW_COLOR_TYPE.BY_RULES) return {};
160
+ var columns = table.columns;
161
+ var validColorRules = getValidRowColorRules(color_by_rules, columns);
162
+ var colorRulesLen = validColorRules.length;
163
+ var colors = {};
164
+ if (colorRulesLen === 0) return {};
165
+ validColorRules = validColorRules.map(function (colorRule) {
166
+ var filters = colorRule.filters;
167
+ var validFilters;
168
+ try {
169
+ validFilters = core.deleteInvalidFilter(filters, columns);
170
+ } catch (err) {
171
+ validFilters = [];
172
+ }
173
+ validFilters = core.getFormattedFilters(validFilters);
174
+ return _objectSpread(_objectSpread({}, colorRule), {}, {
175
+ filters: validFilters
176
+ });
177
+ });
178
+ rows.forEach(function (row) {
179
+ var rowId = row._id;
180
+ var formulaRow = formula_rows && formula_rows[rowId] || {};
181
+ for (var i = 0; i < colorRulesLen; i++) {
182
+ var colorRule = validColorRules[i];
183
+ var color = colorRule.color,
184
+ filter_conjunction = colorRule.filter_conjunction,
185
+ filters = colorRule.filters;
186
+ if (filterRow.filterRow(row, filter_conjunction, filters, {
187
+ formulaRow: formulaRow,
188
+ username: username,
189
+ userId: userId
190
+ })) {
191
+ colors[rowId] = color;
192
+ break;
193
+ }
194
+ }
195
+ });
196
+ return colors;
197
+ };
198
+ var getRowsColorByDuplicateValues = function getRowsColorByDuplicateValues(rows, view, table, _ref4) {
199
+ var collaborators = _ref4.collaborators;
200
+ var colorbys = view.colorbys,
201
+ formula_rows = view.formula_rows;
202
+ var color_by_duplicate_column_keys = colorbys.color_by_duplicate_column_keys;
203
+ if (!Array.isArray(color_by_duplicate_column_keys) || color_by_duplicate_column_keys.length === 0) return {};
204
+ var columns = table.columns;
205
+ var formattedColumns = getFormattedDuplicateColumns(columns, color_by_duplicate_column_keys, {
206
+ collaborators: collaborators
207
+ });
208
+ if (formattedColumns.length === 0) return {};
209
+ var colors = {};
210
+ var duplicate_rows_ids_map = {}; // row value: [ row_id ]
211
+ for (var i = 0; i < rows.length; i++) {
212
+ var row = rows[i];
213
+ var rowId = row._id;
214
+ var formulaRow = formula_rows && formula_rows[rowId];
215
+ var rowValue = getDuplicateRowValue(row, formattedColumns, formulaRow);
216
+ if (!rowValue) continue;
217
+ var validRowIds = duplicate_rows_ids_map[rowValue];
218
+ if (validRowIds && validRowIds.length > 0) {
219
+ colors[rowId] = rowColor.ROW_COLOR_FOR_DUPLICATE_VALUES;
220
+ validRowIds.push(rowId);
221
+ var firstDuplicateRowId = validRowIds[0];
222
+ if (!colors[firstDuplicateRowId]) {
223
+ colors[firstDuplicateRowId] = rowColor.ROW_COLOR_FOR_DUPLICATE_VALUES;
224
+ }
225
+ } else {
226
+ duplicate_rows_ids_map[rowValue] = [rowId];
227
+ }
228
+ }
229
+ return {
230
+ colors: colors,
231
+ duplicate_rows_ids_map: duplicate_rows_ids_map
232
+ };
233
+ };
234
+ var getRowsColor = function getRowsColor(rows, view, table, value) {
235
+ var _ref5 = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {},
236
+ username = _ref5.username,
237
+ userId = _ref5.userId;
238
+ var colorbys = view.colorbys;
239
+ if (!colorbys) return {};
240
+ var tableRows = core$1.isTableRows(rows) ? rows : row.getRowsByIds(table, rows);
241
+ if (tableRows.length === 0) return {};
242
+ var type = colorbys.type,
243
+ color_by_column = colorbys.color_by_column;
244
+ switch (type) {
245
+ case rowColor.ROW_COLOR_TYPE.BY_COLUMN:
246
+ {
247
+ return {
248
+ colors: getRowsColorBySingleSelectColumn(tableRows, color_by_column, table)
249
+ };
250
+ }
251
+ case rowColor.ROW_COLOR_TYPE.BY_RULES:
252
+ {
253
+ return {
254
+ colors: getRowsColorByRules(tableRows, view, table, {
255
+ username: username,
256
+ userId: userId
257
+ })
258
+ };
259
+ }
260
+ case rowColor.ROW_COLOR_TYPE.BY_DUPLICATE_VALUES:
261
+ {
262
+ var _ref6 = value || {},
263
+ _ref6$collaborators = _ref6.collaborators,
264
+ collaborators = _ref6$collaborators === void 0 ? [] : _ref6$collaborators;
265
+ return getRowsColorByDuplicateValues(tableRows, view, table, {
266
+ collaborators: collaborators
267
+ });
268
+ }
269
+ default:
270
+ {
271
+ return {};
272
+ }
273
+ }
274
+ };
275
+ var RowColorUtils = {
276
+ isValidRowColorRule: isValidRowColorRule,
277
+ getValidRowColorRules: getValidRowColorRules,
278
+ getRowsColor: getRowsColor,
279
+ getFormattedDuplicateColumns: getFormattedDuplicateColumns,
280
+ getDuplicateRowValue: getDuplicateRowValue,
281
+ getRowsColorBySingleSelectColumn: getRowsColorBySingleSelectColumn,
282
+ getRowsColorByRules: getRowsColorByRules,
283
+ getRowsColorByDuplicateValues: getRowsColorByDuplicateValues
284
+ };
285
+
286
+ exports["default"] = RowColorUtils;