react-ui-basics 0.0.186 → 0.0.188

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 (83) hide show
  1. package/Animated.js +20 -20
  2. package/Animated.js.map +1 -1
  3. package/AutocompleteSelect.js +56 -63
  4. package/AutocompleteSelect.js.map +1 -1
  5. package/Button.js +11 -11
  6. package/Button.js.map +1 -1
  7. package/Checkbox.js +7 -7
  8. package/Checkbox.js.map +1 -1
  9. package/CircleProgress.js.map +1 -1
  10. package/CommonFields.js.map +1 -1
  11. package/DNDContainer.js +1 -1
  12. package/DNDDraggable.js +6 -6
  13. package/DNDDraggable.js.map +1 -1
  14. package/DNDDroppable.js +4 -4
  15. package/DNDDroppable.js.map +1 -1
  16. package/DatePicker.css +1 -1
  17. package/Dialog.js +19 -19
  18. package/Dialog.js.map +1 -1
  19. package/DropFileInput.js +5 -5
  20. package/DropFileInput.js.map +1 -1
  21. package/DroppableHorizontalList.js +2 -2
  22. package/DroppableHorizontalList.js.map +1 -1
  23. package/DroppableList.js +2 -2
  24. package/DroppableList.js.map +1 -1
  25. package/Dropzone.js +10 -10
  26. package/Dropzone.js.map +1 -1
  27. package/FilteredList.css +2 -2
  28. package/FilteredList.js +22 -22
  29. package/FilteredList.js.map +1 -1
  30. package/FloatingActionButton.js +4 -4
  31. package/FloatingActionButton.js.map +1 -1
  32. package/FormUploadProgress.js +6 -6
  33. package/FormUploadProgress.js.map +1 -1
  34. package/ImageGallery.js +24 -28
  35. package/ImageGallery.js.map +1 -1
  36. package/MaterialIcon.js +1 -1
  37. package/MaterialIcon.js.map +1 -1
  38. package/Modal.js +14 -15
  39. package/Modal.js.map +1 -1
  40. package/ModalMenu.js +1 -1
  41. package/ModalMenu.js.map +1 -1
  42. package/ReactConstants.d.ts +3 -3
  43. package/ReactConstants.js.map +1 -1
  44. package/ReactCreateElement.js.map +1 -1
  45. package/ReadyListener.js +5 -5
  46. package/ReadyListener.js.map +1 -1
  47. package/Scrollable.js +3 -3
  48. package/Scrollable.js.map +1 -1
  49. package/Size.js.map +1 -1
  50. package/Snackbar.js +5 -5
  51. package/Snackbar.js.map +1 -1
  52. package/SpinningProgress.js.map +1 -1
  53. package/Switch.js +8 -8
  54. package/Switch.js.map +1 -1
  55. package/Table.css +1 -1
  56. package/Table.d.ts +28 -14
  57. package/Table.js +11 -9
  58. package/Table.js.map +1 -1
  59. package/TextField.css +7 -7
  60. package/TextField.js +28 -28
  61. package/TextField.js.map +1 -1
  62. package/Tools.d.ts +14 -5
  63. package/Tools.js +9 -13
  64. package/Tools.js.map +1 -1
  65. package/_virtual/_rollupPluginBabelHelpers.js.map +1 -1
  66. package/bundle.css +778 -778
  67. package/package.json +34 -32
  68. package/router/HistoryTools.js.map +1 -1
  69. package/router/Link.js +2 -2
  70. package/router/Link.js.map +1 -1
  71. package/router/NavLink.js +4 -4
  72. package/router/NavLink.js.map +1 -1
  73. package/router/Route.js +8 -8
  74. package/router/Route.js.map +1 -1
  75. package/router/index.js.map +1 -1
  76. package/src/DatePicker.css +1 -1
  77. package/src/FilteredList.css +2 -2
  78. package/src/ReactConstants.ts +3 -3
  79. package/src/Table.css +1 -1
  80. package/src/Table.tsx +61 -34
  81. package/src/TextField.css +7 -7
  82. package/src/Tools.ts +24 -11
  83. package/store/ProxyTools.js.map +1 -1
package/src/Tools.ts CHANGED
@@ -169,30 +169,40 @@ export const removeEventListener = (el, type, listener, options?) => {
169
169
  export const UNDEFINED = undefined;
170
170
  export const isUndefined = a => a === UNDEFINED;
171
171
 
172
+ export type ComparatorFunction<T> = (a: T, b: T) => number;
173
+ export interface Comparator<T> extends ComparatorFunction<T>{
174
+ inverse : <T>() => Comparator<T>
175
+ and : <T>(comparator: Comparator<T>) => Comparator<T>
176
+ }
177
+
178
+ type SortOrder = 'ASC' | 'DESC';
179
+ type FieldGetter<T> = (t: T) => any;
180
+ type SortField<T> = keyof T | FieldGetter<T>;
172
181
 
173
182
  export class Comparators {
174
- static SORT_ASC = 'ASC';
175
- static SORT_DESC = 'DESC';
183
+ static SORT_ASC: SortOrder = 'ASC';
184
+ static SORT_DESC: SortOrder = 'DESC';
176
185
 
177
- static of = (field, order, data) => {
186
+ static of = <T>(field: SortField<T> | SortField<T>[], order: SortOrder | SortOrder[], data?: T[]): Comparator<T> => {
178
187
  let comparator;
179
188
  if (Array.isArray(field)) {
180
189
  const isOrderArray = Array.isArray(order);
181
190
  comparator = Comparators.chain(field.map((it, i) => Comparators.of(it, (isOrderArray && order[i]) || Comparators.SORT_ASC, data)));
182
191
  } else if (isFunction(field)) {
183
- if (data && data[0] && isString(field(data[0]))) {
192
+ const getter: FieldGetter<T> = field as FieldGetter<T>
193
+ if (data && data[0] && isString(getter(data[0]))) {
184
194
  const collator = new Intl.Collator('default', {sensitivity: 'base'});
185
195
  comparator = (a, b) => {
186
- return collator.compare(field(a), field(b));
196
+ return collator.compare(getter(a), getter(b));
187
197
  }
188
198
  } else
189
199
  comparator = (a, b) => {
190
- const A = field(a);
191
- const B = field(b);
200
+ const A = getter(a);
201
+ const B = getter(b);
192
202
  return (A < B ? -1 : (A > B ? 1 : 0));
193
203
  };
194
204
  } else if (isString(field))
195
- comparator = Comparators.of(it => it[field], Comparators.SORT_ASC, data);
205
+ comparator = Comparators.of(it => it[field as string], Comparators.SORT_ASC, data);
196
206
  else
197
207
  comparator = Comparators.of(it => it, Comparators.SORT_ASC, data);
198
208
 
@@ -202,7 +212,7 @@ export class Comparators {
202
212
 
203
213
  return addComparatorMethods(comparator);
204
214
  };
205
- static chain = (comparators) => addComparatorMethods((a, b) => {
215
+ static chain = <T>(comparators: Comparator<T>[]) => addComparatorMethods((a: T, b: T) => {
206
216
  let result;
207
217
  for (let i = 0; i < comparators.length; i++) {
208
218
  result = comparators[i](a, b);
@@ -213,11 +223,14 @@ export class Comparators {
213
223
  }
214
224
  );
215
225
 
216
- static inverse = (comparator) => addComparatorMethods((a, b) => -comparator(a, b));
226
+ static inverse = <T>(comparator: Comparator<T>) => addComparatorMethods((a: T, b: T) => -comparator(a, b));
217
227
  }
218
228
 
219
- const addComparatorMethods = function (comparator) {
229
+ const addComparatorMethods = <T>(cf: ComparatorFunction<T>): Comparator<T> => {
230
+ const comparator = cf as Comparator<T>
231
+ // @ts-ignore
220
232
  comparator.inverse = () => Comparators.inverse(comparator);
233
+ // @ts-ignore
221
234
  comparator.and = (another) => Comparators.chain([comparator, another]);
222
235
  return comparator;
223
236
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ProxyTools.js","sources":["../src/store/ProxyTools.js"],"sourcesContent":["import {UNDEFINED} from \"../Tools\";\n\nexport const createProxy = (target) => {\n if(!target)\n return target\n if (target.__isProxy)\n return target;\n\n let changedValue = UNDEFINED;\n let deletedKeys = UNDEFINED;\n let innerProxies = UNDEFINED\n const isChanged = () => changedValue || (innerProxies && Object.values(innerProxies).some(it => it.__changed));\n\n return new Proxy(target, {\n get: function (target, prop) {\n if (prop === '__isProxy')\n return true\n if (prop === '__changed')\n return isChanged();\n if (prop === 'bake')\n return () => {\n // console.log('bake', changedValue, innerProxies)\n if (!isChanged())\n return target\n\n if (changedValue && !innerProxies)\n return changedValue\n\n if (innerProxies) {\n const result = changedValue || (Array.isArray(target) ? [...target] : {...target});\n\n for (let key in innerProxies) {\n result[key] = innerProxies[key].bake()\n }\n return result\n }\n\n throw new Error('state not implemented yet')\n }\n\n // console.log('get', {target, prop})\n const innerProxy = innerProxies && innerProxies[prop];\n if (innerProxy)\n return innerProxy\n\n const changed = changedValue && changedValue[prop]\n if (changed !== UNDEFINED)\n return changed\n\n if (deletedKeys && deletedKeys[prop])\n return null\n\n const value = target[prop];\n if (value && typeof value === 'object') {\n !innerProxies && (innerProxies = {})\n return innerProxies[prop] = createProxy(value)\n }\n\n return value;\n },\n set: function (target, prop, newval) {\n // console.log('set', {target, prop, newval})\n if (!changedValue) changedValue = Array.isArray(target) ? [...target] : {...target}\n\n if (newval && typeof newval === 'object') {\n !innerProxies && (innerProxies = {})\n innerProxies[prop] = newval = createProxy(newval)\n } else {\n innerProxies && (delete innerProxies[prop])\n }\n changedValue[prop] = newval\n // console.log('changedValue', changedValue)\n return true;\n },\n deleteProperty: function (target, prop) {\n // console.log('delete', {target, prop})\n !changedValue && (changedValue = Array.isArray(target) ? [...target] : {...target})\n\n if (!prop in changedValue)\n return false;\n\n delete changedValue[prop]\n innerProxies && delete innerProxies[prop]\n !deletedKeys && (deletedKeys = {})\n deletedKeys[prop] = true;\n return true;\n }\n })\n}\n"],"names":["createProxy","target","__isProxy","changedValue","UNDEFINED","deletedKeys","innerProxies","isChanged","Object","values","some","it","__changed","Proxy","get","prop","result","Array","isArray","key","bake","Error","innerProxy","changed","value","set","newval","_objectSpread","deleteProperty"],"mappings":"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"}
1
+ {"version":3,"file":"ProxyTools.js","sources":["../src/store/ProxyTools.js"],"sourcesContent":["import {UNDEFINED} from \"../Tools\";\n\nexport const createProxy = (target) => {\n if(!target)\n return target\n if (target.__isProxy)\n return target;\n\n let changedValue = UNDEFINED;\n let deletedKeys = UNDEFINED;\n let innerProxies = UNDEFINED\n const isChanged = () => changedValue || (innerProxies && Object.values(innerProxies).some(it => it.__changed));\n\n return new Proxy(target, {\n get: function (target, prop) {\n if (prop === '__isProxy')\n return true\n if (prop === '__changed')\n return isChanged();\n if (prop === 'bake')\n return () => {\n // console.log('bake', changedValue, innerProxies)\n if (!isChanged())\n return target\n\n if (changedValue && !innerProxies)\n return changedValue\n\n if (innerProxies) {\n const result = changedValue || (Array.isArray(target) ? [...target] : {...target});\n\n for (let key in innerProxies) {\n result[key] = innerProxies[key].bake()\n }\n return result\n }\n\n throw new Error('state not implemented yet')\n }\n\n // console.log('get', {target, prop})\n const innerProxy = innerProxies && innerProxies[prop];\n if (innerProxy)\n return innerProxy\n\n const changed = changedValue && changedValue[prop]\n if (changed !== UNDEFINED)\n return changed\n\n if (deletedKeys && deletedKeys[prop])\n return null\n\n const value = target[prop];\n if (value && typeof value === 'object') {\n !innerProxies && (innerProxies = {})\n return innerProxies[prop] = createProxy(value)\n }\n\n return value;\n },\n set: function (target, prop, newval) {\n // console.log('set', {target, prop, newval})\n if (!changedValue) changedValue = Array.isArray(target) ? [...target] : {...target}\n\n if (newval && typeof newval === 'object') {\n !innerProxies && (innerProxies = {})\n innerProxies[prop] = newval = createProxy(newval)\n } else {\n innerProxies && (delete innerProxies[prop])\n }\n changedValue[prop] = newval\n // console.log('changedValue', changedValue)\n return true;\n },\n deleteProperty: function (target, prop) {\n // console.log('delete', {target, prop})\n !changedValue && (changedValue = Array.isArray(target) ? [...target] : {...target})\n\n if (!prop in changedValue)\n return false;\n\n delete changedValue[prop]\n innerProxies && delete innerProxies[prop]\n !deletedKeys && (deletedKeys = {})\n deletedKeys[prop] = true;\n return true;\n }\n })\n}\n"],"names":["createProxy","target","__isProxy","changedValue","UNDEFINED","deletedKeys","innerProxies","isChanged","Object","values","some","it","__changed","Proxy","get","prop","result","Array","isArray","key","bake","Error","innerProxy","changed","value","set","newval","_objectSpread","deleteProperty"],"mappings":"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"}