column-helper.js 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. /**
  2. * @fileoverview added by tsickle
  3. * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
  4. */
  5. import * as tslib_1 from "tslib";
  6. import { camelCase, deCamelCase } from './camel-case';
  7. import { id } from './id';
  8. import { getterForProp } from './column-prop-getters';
  9. /**
  10. * Sets the column defaults
  11. * @param {?} columns
  12. * @return {?}
  13. */
  14. export function setColumnDefaults(columns) {
  15. var e_1, _a;
  16. if (!columns)
  17. return;
  18. // Only one column should hold the tree view
  19. // Thus if multiple columns are provided with
  20. // isTreeColumn as true we take only the first one
  21. /** @type {?} */
  22. var treeColumnFound = false;
  23. try {
  24. for (var columns_1 = tslib_1.__values(columns), columns_1_1 = columns_1.next(); !columns_1_1.done; columns_1_1 = columns_1.next()) {
  25. var column = columns_1_1.value;
  26. if (!column.$$id) {
  27. column.$$id = id();
  28. }
  29. // prop can be numeric; zero is valid not a missing prop
  30. // translate name => prop
  31. if (isNullOrUndefined(column.prop) && column.name) {
  32. column.prop = camelCase(column.name);
  33. }
  34. if (!column.$$valueGetter) {
  35. column.$$valueGetter = getterForProp(column.prop);
  36. }
  37. // format props if no name passed
  38. if (!isNullOrUndefined(column.prop) && isNullOrUndefined(column.name)) {
  39. column.name = deCamelCase(String(column.prop));
  40. }
  41. if (isNullOrUndefined(column.prop) && isNullOrUndefined(column.name)) {
  42. column.name = ''; // Fixes IE and Edge displaying `null`
  43. }
  44. if (!column.hasOwnProperty('resizeable')) {
  45. column.resizeable = true;
  46. }
  47. if (!column.hasOwnProperty('sortable')) {
  48. column.sortable = true;
  49. }
  50. if (!column.hasOwnProperty('draggable')) {
  51. column.draggable = true;
  52. }
  53. if (!column.hasOwnProperty('canAutoResize')) {
  54. column.canAutoResize = true;
  55. }
  56. if (!column.hasOwnProperty('width')) {
  57. column.width = 150;
  58. }
  59. if (!column.hasOwnProperty('isTreeColumn')) {
  60. column.isTreeColumn = false;
  61. }
  62. else {
  63. if (column.isTreeColumn && !treeColumnFound) {
  64. // If the first column with isTreeColumn is true found
  65. // we mark that treeCoulmn is found
  66. treeColumnFound = true;
  67. }
  68. else {
  69. // After that isTreeColumn property for any other column
  70. // will be set as false
  71. column.isTreeColumn = false;
  72. }
  73. }
  74. }
  75. }
  76. catch (e_1_1) { e_1 = { error: e_1_1 }; }
  77. finally {
  78. try {
  79. if (columns_1_1 && !columns_1_1.done && (_a = columns_1.return)) _a.call(columns_1);
  80. }
  81. finally { if (e_1) throw e_1.error; }
  82. }
  83. }
  84. /**
  85. * @template T
  86. * @param {?} value
  87. * @return {?}
  88. */
  89. export function isNullOrUndefined(value) {
  90. return value === null || value === undefined;
  91. }
  92. /**
  93. * Translates templates definitions to objects
  94. * @param {?} templates
  95. * @return {?}
  96. */
  97. export function translateTemplates(templates) {
  98. var e_2, _a, e_3, _b;
  99. /** @type {?} */
  100. var result = [];
  101. try {
  102. for (var templates_1 = tslib_1.__values(templates), templates_1_1 = templates_1.next(); !templates_1_1.done; templates_1_1 = templates_1.next()) {
  103. var temp = templates_1_1.value;
  104. /** @type {?} */
  105. var col = {};
  106. /** @type {?} */
  107. var props = Object.getOwnPropertyNames(temp);
  108. try {
  109. for (var props_1 = (e_3 = void 0, tslib_1.__values(props)), props_1_1 = props_1.next(); !props_1_1.done; props_1_1 = props_1.next()) {
  110. var prop = props_1_1.value;
  111. col[prop] = temp[prop];
  112. }
  113. }
  114. catch (e_3_1) { e_3 = { error: e_3_1 }; }
  115. finally {
  116. try {
  117. if (props_1_1 && !props_1_1.done && (_b = props_1.return)) _b.call(props_1);
  118. }
  119. finally { if (e_3) throw e_3.error; }
  120. }
  121. if (temp.headerTemplate) {
  122. col.headerTemplate = temp.headerTemplate;
  123. }
  124. if (temp.cellTemplate) {
  125. col.cellTemplate = temp.cellTemplate;
  126. }
  127. if (temp.summaryFunc) {
  128. col.summaryFunc = temp.summaryFunc;
  129. }
  130. if (temp.summaryTemplate) {
  131. col.summaryTemplate = temp.summaryTemplate;
  132. }
  133. result.push(col);
  134. }
  135. }
  136. catch (e_2_1) { e_2 = { error: e_2_1 }; }
  137. finally {
  138. try {
  139. if (templates_1_1 && !templates_1_1.done && (_a = templates_1.return)) _a.call(templates_1);
  140. }
  141. finally { if (e_2) throw e_2.error; }
  142. }
  143. return result;
  144. }
  145. //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLWhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bzd2ltbGFuZS9uZ3gtZGF0YXRhYmxlLyIsInNvdXJjZXMiOlsibGliL3V0aWxzL2NvbHVtbi1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN0RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7O0FBT3RELE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxPQUFzQjs7SUFDdEQsSUFBSSxDQUFDLE9BQU87UUFBRSxPQUFPOzs7OztRQUtqQixlQUFlLEdBQVksS0FBSzs7UUFFcEMsS0FBcUIsSUFBQSxZQUFBLGlCQUFBLE9BQU8sQ0FBQSxnQ0FBQSxxREFBRTtZQUF6QixJQUFNLE1BQU0sb0JBQUE7WUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRTtnQkFDaEIsTUFBTSxDQUFDLElBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQzthQUNwQjtZQUVELHdEQUF3RDtZQUN4RCx5QkFBeUI7WUFDekIsSUFBSSxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksRUFBRTtnQkFDakQsTUFBTSxDQUFDLElBQUksR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3RDO1lBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUU7Z0JBQ3pCLE1BQU0sQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNuRDtZQUVELGlDQUFpQztZQUNqQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMs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QU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDbEI7Ozs7Ozs7OztJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjYW1lbENhc2UsIGRlQ2FtZWxDYXNlIH0gZnJvbSAnLi9jYW1lbC1jYXNlJztcbmltcG9ydCB7IGlkIH0gZnJvbSAnLi9pZCc7XG5pbXBvcnQgeyBnZXR0ZXJGb3JQcm9wIH0gZnJvbSAnLi9jb2x1bW4tcHJvcC1nZXR0ZXJzJztcbmltcG9ydCB7IFRhYmxlQ29sdW1uIH0gZnJvbSAnLi4vdHlwZXMvdGFibGUtY29sdW1uLnR5cGUnO1xuaW1wb3J0IHsgRGF0YVRhYmxlQ29sdW1uRGlyZWN0aXZlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9jb2x1bW5zL2NvbHVtbi5kaXJlY3RpdmUnO1xuXG4vKipcbiAqIFNldHMgdGhlIGNvbHVtbiBkZWZhdWx0c1xuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0Q29sdW1uRGVmYXVsdHMoY29sdW1uczogVGFibGVDb2x1bW5bXSkge1xuICBpZiAoIWNvbHVtbnMpIHJldHVybjtcblxuICAvLyBPbmx5IG9uZSBjb2x1bW4gc2hvdWxkIGhvbGQgdGhlIHRyZWUgdmlld1xuICAvLyBUaHVzIGlmIG11bHRpcGxlIGNvbHVtbnMgYXJlIHByb3ZpZGVkIHdpdGhcbiAgLy8gaXNUcmVlQ29sdW1uIGFzIHRydWUgd2UgdGFrZSBvbmx5IHRoZSBmaXJzdCBvbmVcbiAgbGV0IHRyZWVDb2x1bW5Gb3VuZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGZvciAoY29uc3QgY29sdW1uIG9mIGNvbHVtbnMpIHtcbiAgICBpZiAoIWNvbHVtbi4kJGlkKSB7XG4gICAgICBjb2x1bW4uJCRpZCA9IGlkKCk7XG4gICAgfVxuXG4gICAgLy8gcHJvcCBjYW4gYmUgbnVtZXJpYzsgemVybyBpcyB2YWxpZCBub3QgYSBtaXNzaW5nIHByb3BcbiAgICAvLyB0cmFuc2xhdGUgbmFtZSA9PiBwcm9wXG4gICAgaWYgKGlzTnVsbE9yVW5kZWZpbmVkKGNvbHVtbi5wcm9wKSAmJiBjb2x1bW4ubmFtZSkge1xuICAgICAgY29sdW1uLnByb3AgPSBjYW1lbENhc2UoY29sdW1uLm5hbWUpO1xuICAgIH1cblxuICAgIGlmICghY29sdW1uLiQkdmFsdWVHZXR0ZXIpIHtcbiAgICAgIGNvbHVtbi4kJHZhbHVlR2V0dGVyID0gZ2V0dGVyRm9yUHJvcChjb2x1bW4ucHJvcCk7XG4gICAgfVxuXG4gICAgLy8gZm9ybWF0IHByb3BzIGlmIG5vIG5hbWUgcGFzc2VkXG4gICAgaWYgKCFpc051bGxPclVuZGVmaW5lZChjb2x1bW4ucHJvcCkgJiYgaXNOdWxsT3JVbmRlZmluZWQoY29sdW1uLm5hbWUpKSB7XG4gICAgICBjb2x1bW4ubmFtZSA9IGRlQ2FtZWxDYXNlKFN0cmluZyhjb2x1bW4ucHJvcCkpO1xuICAgIH1cblxuICAgIGlmIChpc051bGxPclVuZGVmaW5lZChjb2x1bW4ucHJvcCkgJiYgaXNOdWxsT3JVbmRlZmluZWQoY29sdW1uLm5hbWUpKSB7XG4gICAgICBjb2x1bW4ubmFtZSA9ICcnOyAvLyBGaXhlcyBJRSBhbmQgRWRnZSBkaXNwbGF5aW5nIGBudWxsYFxuICAgIH1cblxuICAgIGlmICghY29sdW1uLmhhc093blByb3BlcnR5KCdyZXNpemVhYmxlJykpIHtcbiAgICAgIGNvbHVtbi5yZXNpemVhYmxlID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoIWNvbHVtbi5oYXNPd25Qcm9wZXJ0eSgnc29ydGFibGUnKSkge1xuICAgICAgY29sdW1uLnNvcnRhYmxlID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoIWNvbHVtbi5oYXNPd25Qcm9wZXJ0eSgnZHJhZ2dhYmxlJykpIHtcbiAgICAgIGNvbHVtbi5kcmFnZ2FibGUgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmICghY29sdW1uLmhhc093blByb3BlcnR5KCdjYW5BdXRvUmVzaXplJykpIHtcbiAgICAgIGNvbHVtbi5jYW5BdXRvUmVzaXplID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoIWNvbHVtbi5oYXNPd25Qcm9wZXJ0eSgnd2lkdGgnKSkge1xuICAgICAgY29sdW1uLndpZHRoID0gMTUwO1xuICAgIH1cblxuICAgIGlmICghY29sdW1uLmhhc093blByb3BlcnR5KCdpc1RyZWVDb2x1bW4nKSkge1xuICAgICAgY29sdW1uLmlzVHJlZUNvbHVtbiA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoY29sdW1uLmlzVHJlZUNvbHVtbiAmJiAhdHJlZUNvbHVtbkZvdW5kKSB7XG4gICAgICAgIC8vIElmIHRoZSBmaXJzdCBjb2x1bW4gd2l0aCBpc1RyZWVDb2x1bW4gaXMgdHJ1ZSBmb3VuZFxuICAgICAgICAvLyB3ZSBtYXJrIHRoYXQgdHJlZUNvdWxtbiBpcyBmb3VuZFxuICAgICAgICB0cmVlQ29sdW1uRm91bmQgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gQWZ0ZXIgdGhhdCBpc1RyZWVDb2x1bW4gcHJvcGVydHkgZm9yIGFueSBvdGhlciBjb2x1bW5cbiAgICAgICAgLy8gd2lsbCBiZSBzZXQgYXMgZmFsc2VcbiAgICAgICAgY29sdW1uLmlzVHJlZUNvbHVtbiA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNOdWxsT3JVbmRlZmluZWQ8VD4odmFsdWU6IFQgfCBudWxsIHwgdW5kZWZpbmVkKTogdmFsdWUgaXMgbnVsbCB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIFRyYW5zbGF0ZXMgdGVtcGxhdGVzIGRlZmluaXRpb25zIHRvIG9iamVjdHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zbGF0ZVRlbXBsYXRlcyh0ZW1wbGF0ZXM6IERhdGFUYWJsZUNvbHVtbkRpcmVjdGl2ZVtdKTogYW55W10ge1xuICBjb25zdCByZXN1bHQ6IGFueVtdID0gW107XG4gIGZvciAoY29uc3QgdGVtcCBvZiB0ZW1wbGF0ZXMpIHtcbiAgICBjb25zdCBjb2w6IGFueSA9IHt9O1xuXG4gICAgY29uc3QgcHJvcHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0ZW1wKTtcbiAgICBmb3IgKGNvbnN0IHByb3Agb2YgcHJvcHMpIHtcbiAgICAgIGNvbFtwcm9wXSA9IHRlbXBbcHJvcF07XG4gICAgfVxuXG4gICAgaWYgKHRlbXAuaGVhZGVyVGVtcGxhdGUpIHtcbiAgICAgIGNvbC5oZWFkZXJUZW1wbGF0ZSA9IHRlbXAuaGVhZGVyVGVtcGxhdGU7XG4gICAgfVxuXG4gICAgaWYgKHRlbXAuY2VsbFRlbXBsYXRlKSB7XG4gICAgICBjb2wuY2VsbFRlbXBsYXRlID0gdGVtcC5jZWxsVGVtcGxhdGU7XG4gICAgfVxuXG4gICAgaWYgKHRlbXAuc3VtbWFyeUZ1bmMpIHtcbiAgICAgIGNvbC5zdW1tYXJ5RnVuYyA9IHRlbXAuc3VtbWFyeUZ1bmM7XG4gICAgfVxuXG4gICAgaWYgKHRlbXAuc3VtbWFyeVRlbXBsYXRlKSB7XG4gICAgICBjb2wuc3VtbWFyeVRlbXBsYXRlID0gdGVtcC5zdW1tYXJ5VGVtcGxhdGU7XG4gICAgfVxuXG4gICAgcmVzdWx0LnB1c2goY29sKTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG4iXX0=