@olympeio-extensions/reactgrid 2.9.2

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 (34) hide show
  1. package/codeAsData/import_order.json +1 -0
  2. package/codeAsData/olympeio-extensions.reactgrid/Olympe_Libraries/Extensions/UI/ReactGrid/.ReactGrid.newInst.json +73 -0
  3. package/codeAsData/olympeio-extensions.reactgrid/Olympe_Libraries/Extensions/UI/ReactGrid/.ReactGrid.newRel.json +283 -0
  4. package/codeAsData/olympeio-extensions.reactgrid/Olympe_Libraries/Extensions/UI/ReactGrid/RG58_Create_Column_Config.newInst.json +186 -0
  5. package/codeAsData/olympeio-extensions.reactgrid/Olympe_Libraries/Extensions/UI/ReactGrid/RG58_Create_Column_Config.newRel.json +481 -0
  6. package/codeAsData/olympeio-extensions.reactgrid/Olympe_Libraries/Extensions/UI/ReactGrid/RG58_Create_Column_Config.updateInst.json +17 -0
  7. package/codeAsData/olympeio-extensions.reactgrid/Olympe_Libraries/Extensions/UI/ReactGrid/RG58_Get_Change_Metadata.newInst.json +116 -0
  8. package/codeAsData/olympeio-extensions.reactgrid/Olympe_Libraries/Extensions/UI/ReactGrid/RG58_Get_Change_Metadata.newRel.json +301 -0
  9. package/codeAsData/olympeio-extensions.reactgrid/Olympe_Libraries/Extensions/UI/ReactGrid/RG58_Get_Change_Properties.newInst.json +100 -0
  10. package/codeAsData/olympeio-extensions.reactgrid/Olympe_Libraries/Extensions/UI/ReactGrid/RG58_Get_Change_Properties.newRel.json +259 -0
  11. package/codeAsData/olympeio-extensions.reactgrid/Olympe_Libraries/Extensions/UI/ReactGrid/RG58_Group_Tuples_by_Indexes.newInst.json +70 -0
  12. package/codeAsData/olympeio-extensions.reactgrid/Olympe_Libraries/Extensions/UI/ReactGrid/RG58_Group_Tuples_by_Indexes.newRel.json +175 -0
  13. package/codeAsData/olympeio-extensions.reactgrid/Olympe_Libraries/Extensions/UI/ReactGrid/RG58_Process_Changes_Signature.newInst.json +84 -0
  14. package/codeAsData/olympeio-extensions.reactgrid/Olympe_Libraries/Extensions/UI/ReactGrid/RG58_Process_Changes_Signature.newRel.json +247 -0
  15. package/codeAsData/olympeio-extensions.reactgrid/Olympe_Libraries/Extensions/UI/ReactGrid/RG58_Process_Changes_for_CloudObjects.newInst.json +99 -0
  16. package/codeAsData/olympeio-extensions.reactgrid/Olympe_Libraries/Extensions/UI/ReactGrid/RG58_Process_Changes_for_CloudObjects.newRel.json +259 -0
  17. package/codeAsData/olympeio-extensions.reactgrid/Olympe_Libraries/Extensions/UI/ReactGrid/RG58_Process_Changes_for_JSON_String.newInst.json +113 -0
  18. package/codeAsData/olympeio-extensions.reactgrid/Olympe_Libraries/Extensions/UI/ReactGrid/RG58_Process_Changes_for_JSON_String.newRel.json +301 -0
  19. package/codeAsData/olympeio-extensions.reactgrid/Olympe_Libraries/Extensions/UI/ReactGrid/RG58_Process_Changes_for_Objects.newInst.json +114 -0
  20. package/codeAsData/olympeio-extensions.reactgrid/Olympe_Libraries/Extensions/UI/ReactGrid/RG58_Process_Changes_for_Objects.newRel.json +301 -0
  21. package/codeAsData/olympeio-extensions.reactgrid/Olympe_Libraries/Extensions/UI/ReactGrid/RG58_Public_Config_Types.newInst.json +246 -0
  22. package/codeAsData/olympeio-extensions.reactgrid/Olympe_Libraries/Extensions/UI/ReactGrid/RG58_Public_Config_Types.newRel.json +631 -0
  23. package/codeAsData/olympeio-extensions.reactgrid/Olympe_Libraries/Extensions/UI/ReactGrid/RG58_Public_Enums.newInst.json +147 -0
  24. package/codeAsData/olympeio-extensions.reactgrid/Olympe_Libraries/Extensions/UI/ReactGrid/RG58_Public_Enums.newRel.json +397 -0
  25. package/codeAsData/olympeio-extensions.reactgrid/Olympe_Libraries/Extensions/UI/ReactGrid/RG58_ReactGrid.newInst.json +465 -0
  26. package/codeAsData/olympeio-extensions.reactgrid/Olympe_Libraries/Extensions/UI/ReactGrid/RG58_ReactGrid.newRel.json +1357 -0
  27. package/codeAsData/olympeio-extensions.reactgrid/Olympe_Libraries/Extensions/UI/ReactGrid/RG58_ReactGrid.updateInst.json +17 -0
  28. package/codeAsData/olympeio-extensions.reactgrid/Olympe_Libraries/Extensions/UI/ReactGrid/RG58_Wrap_Object.newInst.json +71 -0
  29. package/codeAsData/olympeio-extensions.reactgrid/Olympe_Libraries/Extensions/UI/ReactGrid/RG58_Wrap_Object.newRel.json +175 -0
  30. package/main-node.js +2056 -0
  31. package/main-node.js.map +1 -0
  32. package/main-web.js +2258 -0
  33. package/main-web.js.map +1 -0
  34. package/package.json +1 -0
package/main-web.js ADDED
@@ -0,0 +1,2258 @@
1
+ (function webpackUniversalModuleDefinition(root, factory) {
2
+ if(typeof exports === 'object' && typeof module === 'object')
3
+ module.exports = factory(require("olympe"));
4
+ else if(typeof define === 'function' && define.amd)
5
+ define(["olympe"], factory);
6
+ else if(typeof exports === 'object')
7
+ exports["@olympeio-extensions/reactgrid"] = factory(require("olympe"));
8
+ else
9
+ root["@olympeio-extensions/reactgrid"] = factory(root["olympe"]);
10
+ })(this, (__WEBPACK_EXTERNAL_MODULE_olympe__) => {
11
+ return /******/ (() => { // webpackBootstrap
12
+ /******/ "use strict";
13
+ /******/ var __webpack_modules__ = ({
14
+
15
+ /***/ "./src/web/RGReactGrid.jsx":
16
+ /*!*********************************!*\
17
+ !*** ./src/web/RGReactGrid.jsx ***!
18
+ \*********************************/
19
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
20
+
21
+ __webpack_require__.r(__webpack_exports__);
22
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
23
+ /* harmony export */ "default": () => (/* binding */ RGReactGrid)
24
+ /* harmony export */ });
25
+ /* harmony import */ var styled_jsx_style__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! styled-jsx/style */ "styled-jsx/style");
26
+ /* harmony import */ var styled_jsx_style__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(styled_jsx_style__WEBPACK_IMPORTED_MODULE_0__);
27
+ /* harmony import */ var olympe__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! olympe */ "olympe");
28
+ /* harmony import */ var olympe__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(olympe__WEBPACK_IMPORTED_MODULE_1__);
29
+ /* harmony import */ var _olympeio_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @olympeio/core */ "@olympeio/core");
30
+ /* harmony import */ var _olympeio_core__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_olympeio_core__WEBPACK_IMPORTED_MODULE_2__);
31
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ "react");
32
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);
33
+ /* harmony import */ var _silevis_reactgrid__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @silevis/reactgrid */ "@silevis/reactgrid");
34
+ /* harmony import */ var _silevis_reactgrid__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_silevis_reactgrid__WEBPACK_IMPORTED_MODULE_4__);
35
+ /* harmony import */ var _silevis_reactgrid_styles_css__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @silevis/reactgrid/styles.css */ "@silevis/reactgrid/styles.css");
36
+ /* harmony import */ var _silevis_reactgrid_styles_css__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_silevis_reactgrid_styles_css__WEBPACK_IMPORTED_MODULE_5__);
37
+ /* harmony import */ var _common_internal_data__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../common/internal/data */ "./src/common/internal/data.js");
38
+ /* harmony import */ var _common_internal_wrappers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../common/internal/wrappers */ "./src/common/internal/wrappers.js");
39
+ /* harmony import */ var _common_internal_columns__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../common/internal/columns */ "./src/common/internal/columns.js");
40
+ /* harmony import */ var _common_internal_rows__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../common/internal/rows */ "./src/common/internal/rows.js");
41
+ /* harmony import */ var _common_internal_box__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../common/internal/box */ "./src/common/internal/box.js");
42
+ /* harmony import */ var _common_internal_changes__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../common/internal/changes */ "./src/common/internal/changes.js");
43
+ /* harmony import */ var _common_internal_triggers__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../common/internal/triggers */ "./src/common/internal/triggers.js");
44
+ /* harmony import */ var _common_internal_scroll__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../common/internal/scroll */ "./src/common/internal/scroll.js");
45
+ /* harmony import */ var _common_internal_cells__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../common/internal/cells */ "./src/common/internal/cells.js");
46
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
47
+
48
+ function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
49
+ function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
50
+ function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
51
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
52
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
53
+ function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
54
+ function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); }
55
+ function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
56
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
57
+ function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }
58
+ function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); }
59
+ function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
60
+ // Olympe
61
+
62
+
63
+
64
+ // React
65
+
66
+
67
+
68
+
69
+ // Internal
70
+
71
+
72
+
73
+
74
+
75
+
76
+
77
+
78
+
79
+ var RGReactGrid = /*#__PURE__*/function (_ReactBrick) {
80
+ function RGReactGrid() {
81
+ _classCallCheck(this, RGReactGrid);
82
+ return _callSuper(this, RGReactGrid, arguments);
83
+ }
84
+ _inherits(RGReactGrid, _ReactBrick);
85
+ return _createClass(RGReactGrid, [{
86
+ key: "init",
87
+ value:
88
+ /**
89
+ * @override
90
+ */
91
+ function init($) {
92
+ // Data/Config to Rows/Columns flow
93
+ (0,_common_internal_cells__WEBPACK_IMPORTED_MODULE_14__.initCells)($);
94
+ var _reload = (0,_common_internal_triggers__WEBPACK_IMPORTED_MODULE_12__.initTriggers)($);
95
+ var _data = (0,_common_internal_data__WEBPACK_IMPORTED_MODULE_6__.initData)($, _reload);
96
+ var _wrappers = (0,_common_internal_wrappers__WEBPACK_IMPORTED_MODULE_7__.initWrappers)($, _data);
97
+ var _filteredColumns = (0,_common_internal_columns__WEBPACK_IMPORTED_MODULE_8__.initFilteredColumns)($, _wrappers);
98
+ (0,_common_internal_rows__WEBPACK_IMPORTED_MODULE_9__.initRows)($, _wrappers, _filteredColumns);
99
+
100
+ // Bounding box flow
101
+ (0,_common_internal_box__WEBPACK_IMPORTED_MODULE_10__.initBox)($);
102
+
103
+ // Scroll
104
+ (0,_common_internal_scroll__WEBPACK_IMPORTED_MODULE_13__.initScroll)($);
105
+ }
106
+
107
+ /**
108
+ * @override
109
+ */
110
+ }], [{
111
+ key: "getReactComponent",
112
+ value: function getReactComponent($) {
113
+ return function () {
114
+ // Display
115
+ var box = (0,_common_internal_box__WEBPACK_IMPORTED_MODULE_10__.useBox)($);
116
+ var hidden = (0,_olympeio_core__WEBPACK_IMPORTED_MODULE_2__.useProperty)($, 'Hidden');
117
+ var allowContentOverflow = (0,_olympeio_core__WEBPACK_IMPORTED_MODULE_2__.useProperty)($, 'Allow Content Overflow');
118
+
119
+ // Data
120
+ var rows = (0,_common_internal_rows__WEBPACK_IMPORTED_MODULE_9__.useRows)($);
121
+ var columns = (0,_common_internal_columns__WEBPACK_IMPORTED_MODULE_8__.useColumns)($);
122
+
123
+ // Behaviors
124
+ var rangeSelection = (0,_olympeio_core__WEBPACK_IMPORTED_MODULE_2__.useProperty)($, 'Enable Range Selection');
125
+ var rowSelection = (0,_olympeio_core__WEBPACK_IMPORTED_MODULE_2__.useProperty)($, 'Enable Row Selection');
126
+ var colSelection = (0,_olympeio_core__WEBPACK_IMPORTED_MODULE_2__.useProperty)($, 'Enable Column Selection');
127
+ var fillHandle = (0,_olympeio_core__WEBPACK_IMPORTED_MODULE_2__.useProperty)($, 'Enable Fill Handle');
128
+
129
+ // Sticky
130
+ var stickTop = (0,_olympeio_core__WEBPACK_IMPORTED_MODULE_2__.useProperty)($, 'Sticky Top Rows');
131
+ var stickBottom = (0,_olympeio_core__WEBPACK_IMPORTED_MODULE_2__.useProperty)($, 'Sticky Bottom Rows');
132
+ var stickLeft = (0,_olympeio_core__WEBPACK_IMPORTED_MODULE_2__.useProperty)($, 'Sticky Left Columns');
133
+ var stickRight = (0,_olympeio_core__WEBPACK_IMPORTED_MODULE_2__.useProperty)($, 'Sticky Right Columns');
134
+
135
+ // Redraw hook
136
+ var containerRef = (0,react__WEBPACK_IMPORTED_MODULE_3__.useRef)(null);
137
+ (0,_common_internal_scroll__WEBPACK_IMPORTED_MODULE_13__.useRedrawAfterScroll)($, containerRef);
138
+ (0,_common_internal_triggers__WEBPACK_IMPORTED_MODULE_12__.useRedraw)($);
139
+
140
+ // Render the grid
141
+ return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement("div", {
142
+ ref: containerRef,
143
+ className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_0___default().dynamic([["2269089546", [hidden ? 'none' : 'inline-block', box.width, box.height, allowContentOverflow ? 'visible' : 'scroll', -box.x, -box.y]]])
144
+ }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_silevis_reactgrid__WEBPACK_IMPORTED_MODULE_4__.ReactGrid
145
+ // Data
146
+ , {
147
+ rows: rows,
148
+ columns: columns,
149
+ onCellsChanged: _common_internal_changes__WEBPACK_IMPORTED_MODULE_11__.handleOnCellsChanged.bind(undefined, $),
150
+ enableFillHandle: fillHandle
151
+
152
+ // Sticky
153
+ ,
154
+ stickyLeftColumns: stickLeft,
155
+ stickyRightColumns: stickRight,
156
+ stickyTopRows: stickTop,
157
+ stickyBottomRows: stickBottom
158
+
159
+ // Selection
160
+ ,
161
+ enableRangeSelection: rangeSelection,
162
+ enableColumnSelection: colSelection,
163
+ enableRowSelection: rowSelection
164
+
165
+ // Resizing
166
+ ,
167
+ onColumnResized: _common_internal_columns__WEBPACK_IMPORTED_MODULE_8__.handleOnColumnResized.bind(undefined, $)
168
+
169
+ // Reordering
170
+ ,
171
+ onColumnsReordered: _common_internal_columns__WEBPACK_IMPORTED_MODULE_8__.handleOnColumnsReordered.bind(undefined, $)
172
+ }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement((styled_jsx_style__WEBPACK_IMPORTED_MODULE_0___default()), {
173
+ id: "2269089546",
174
+ dynamic: [hidden ? 'none' : 'inline-block', box.width, box.height, allowContentOverflow ? 'visible' : 'scroll', -box.x, -box.y]
175
+ }, "div.__jsx-style-dynamic-selector{display:".concat(hidden ? 'none' : 'inline-block', ";width:").concat(box.width, "px;height:").concat(box.height, "px;overflow:").concat(allowContentOverflow ? 'visible' : 'scroll', ";font-family:'Roboto',sans-serif;}div.__jsx-style-dynamic-selector .rg-celleditor{-webkit-transform:translate(").concat(-box.x, "px,").concat(-box.y, "px);-ms-transform:translate(").concat(-box.x, "px,").concat(-box.y, "px);transform:translate(").concat(-box.x, "px,").concat(-box.y, "px);}div.__jsx-style-dynamic-selector .rg-pane{box-shadow:0px 4px 6px rgba(0,0,0,0.1);background-color:#fff;}div.__jsx-style-dynamic-selector .rg-cell{padding:10px;border-bottom:1px solid #e0e0e0;font-size:14px;color:rgba(0,0,0,0.87);-webkit-transition:background-color 0.2s ease-in-out;transition:background-color 0.2s ease-in-out;}div.__jsx-style-dynamic-selector .rg-header-cell{background-color:#f5f5f5;font-weight:500;color:rgba(0,0,0,0.87);font-size:14px;border-bottom:1px solid #e0e0e0;padding:12px;}div.__jsx-style-dynamic-selector .rg-number-cell{text-align:right;padding-right:12px;font-family:'Roboto Mono',monospace;color:rgba(0,0,0,0.87);}div.__jsx-style-dynamic-selector .rg-text-cell{text-align:left;font-size:14px;color:rgba(0,0,0,0.87);padding-left:12px;}div.__jsx-style-dynamic-selector .rg-cell:hover{background-color:#f5f5f5;}div.__jsx-style-dynamic-selector::-webkit-scrollbar{display:block;width:8px;height:8px;}div.__jsx-style-dynamic-selector::-webkit-scrollbar-thumb{background-color:rgba(0,0,0,0.2);border-radius:4px;}div.__jsx-style-dynamic-selector::-webkit-scrollbar-track{background-color:#f0f0f0;}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvbWFya2V0cGxhY2UvcmVhY3RncmlkL3NyYy93ZWIvUkdSZWFjdEdyaWQuanN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXNHZ0MsQUFJa0UsQUFTK0MsQUFLMUMsQUFNN0IsQUFTWSxBQVVSLEFBUUQsQUFRUyxBQUtYLEFBS3NCLEFBSVgsYUFoRE8sQ0F3Q3RCLEVBYkssQ0FSSSxPQXNCUixDQWhDSyxBQTBCcEIsQUFjQSxNQXJCOEIsRUFpQlIsRUFIdEIsQ0F0QnlDLENBeENBLEVBY2YsRUFnQkksSUFUWCxNQTZDbkIsR0FqQnNCLE1BM0JRLENBUDlCLEdBZ0JtQixRQVVXLEFBUzlCLEVBakQwQyxLQStCTixJQVRhLFlBbUJqRCxnQkFUaUIsQ0EvQnlCLFlBZ0MxQywwQkEvQnFDLCtCQXFCckMsQ0FwQkEsK0VBS0EiLCJmaWxlIjoiL2J1aWxkcy9tYXJrZXRwbGFjZS9yZWFjdGdyaWQvc3JjL3dlYi9SR1JlYWN0R3JpZC5qc3giLCJzb3VyY2VzQ29udGVudCI6WyIvLyBPbHltcGVcbmltcG9ydCB7IHJlZ2lzdGVyQnJpY2sgfSBmcm9tICdvbHltcGUnO1xuaW1wb3J0IHsgUmVhY3RCcmljaywgdXNlUHJvcGVydHkgfSBmcm9tICdAb2x5bXBlaW8vY29yZSc7XG5cbi8vIFJlYWN0XG5pbXBvcnQgUmVhY3QsIHsgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgUmVhY3RHcmlkIH0gZnJvbSAnQHNpbGV2aXMvcmVhY3RncmlkJztcbmltcG9ydCAnQHNpbGV2aXMvcmVhY3RncmlkL3N0eWxlcy5jc3MnO1xuXG4vLyBJbnRlcm5hbFxuaW1wb3J0IHsgaW5pdERhdGEgfSBmcm9tICcuLi9jb21tb24vaW50ZXJuYWwvZGF0YSc7XG5pbXBvcnQgeyBpbml0V3JhcHBlcnMgfSBmcm9tICcuLi9jb21tb24vaW50ZXJuYWwvd3JhcHBlcnMnO1xuaW1wb3J0IHsgaW5pdEZpbHRlcmVkQ29sdW1ucywgdXNlQ29sdW1ucywgaGFuZGxlT25Db2x1bW5SZXNpemVkLCBoYW5kbGVPbkNvbHVtbnNSZW9yZGVyZWQgfSBmcm9tICcuLi9jb21tb24vaW50ZXJuYWwvY29sdW1ucyc7XG5pbXBvcnQgeyBpbml0Um93cywgdXNlUm93cyB9IGZyb20gJy4uL2NvbW1vbi9pbnRlcm5hbC9yb3dzJztcbmltcG9ydCB7IGluaXRCb3gsIHVzZUJveCB9IGZyb20gJy4uL2NvbW1vbi9pbnRlcm5hbC9ib3gnO1xuaW1wb3J0IHsgaGFuZGxlT25DZWxsc0NoYW5nZWQgfSBmcm9tICcuLi9jb21tb24vaW50ZXJuYWwvY2hhbmdlcyc7XG5pbXBvcnQgeyBpbml0VHJpZ2dlcnMsIHVzZVJlZHJhdyB9IGZyb20gJy4uL2NvbW1vbi9pbnRlcm5hbC90cmlnZ2Vycyc7XG5pbXBvcnQgeyBpbml0U2Nyb2xsLCB1c2VSZWRyYXdBZnRlclNjcm9sbCB9IGZyb20gJy4uL2NvbW1vbi9pbnRlcm5hbC9zY3JvbGwnO1xuaW1wb3J0IHsgaW5pdENlbGxzIH0gZnJvbSAnLi4vY29tbW9uL2ludGVybmFsL2NlbGxzJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUkdSZWFjdEdyaWQgZXh0ZW5kcyBSZWFjdEJyaWNrIHtcblxuICAgIC8qKlxuICAgICAqIEBvdmVycmlkZVxuICAgICAqL1xuICAgIGluaXQoJCkge1xuICAgICAgICAvLyBEYXRhL0NvbmZpZyB0byBSb3dzL0NvbHVtbnMgZmxvd1xuICAgICAgICBpbml0Q2VsbHMoJCk7XG4gICAgICAgIGNvbnN0IF9yZWxvYWQgPSBpbml0VHJpZ2dlcnMoJCk7XG4gICAgICAgIGNvbnN0IF9kYXRhID0gaW5pdERhdGEoJCwgX3JlbG9hZCk7XG4gICAgICAgIGNvbnN0IF93cmFwcGVycyA9IGluaXRXcmFwcGVycygkLCBfZGF0YSk7XG4gICAgICAgIGNvbnN0IF9maWx0ZXJlZENvbHVtbnMgPSBpbml0RmlsdGVyZWRDb2x1bW5zKCQsIF93cmFwcGVycyk7XG4gICAgICAgIGluaXRSb3dzKCQsIF93cmFwcGVycywgX2ZpbHRlcmVkQ29sdW1ucyk7XG5cbiAgICAgICAgLy8gQm91bmRpbmcgYm94IGZsb3dcbiAgICAgICAgaW5pdEJveCgkKTtcblxuICAgICAgICAvLyBTY3JvbGwgXG4gICAgICAgIGluaXRTY3JvbGwoJCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQG92ZXJyaWRlXG4gICAgICovXG4gICAgc3RhdGljIGdldFJlYWN0Q29tcG9uZW50KCQpIHtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIC8vIERpc3BsYXlcbiAgICAgICAgICAgIGNvbnN0IGJveCA9IHVzZUJveCgkKTtcbiAgICAgICAgICAgIGNvbnN0IGhpZGRlbiA9IHVzZVByb3BlcnR5KCQsICdIaWRkZW4nKTtcbiAgICAgICAgICAgIGNvbnN0IGFsbG93Q29udGVudE92ZXJmbG93ID0gdXNlUHJvcGVydHkoJCwgJ0FsbG93IENvbnRlbnQgT3ZlcmZsb3cnKTtcblxuICAgICAgICAgICAgLy8gRGF0YVxuICAgICAgICAgICAgY29uc3Qgcm93cyA9IHVzZVJvd3MoJCk7XG4gICAgICAgICAgICBjb25zdCBjb2x1bW5zID0gdXNlQ29sdW1ucygkKTtcblxuICAgICAgICAgICAgLy8gQmVoYXZpb3JzXG4gICAgICAgICAgICBjb25zdCByYW5nZVNlbGVjdGlvbiA9IHVzZVByb3BlcnR5KCQsICdFbmFibGUgUmFuZ2UgU2VsZWN0aW9uJyk7XG4gICAgICAgICAgICBjb25zdCByb3dTZWxlY3Rpb24gPSB1c2VQcm9wZXJ0eSgkLCAnRW5hYmxlIFJvdyBTZWxlY3Rpb24nKTtcbiAgICAgICAgICAgIGNvbnN0IGNvbFNlbGVjdGlvbiA9IHVzZVByb3BlcnR5KCQsICdFbmFibGUgQ29sdW1uIFNlbGVjdGlvbicpO1xuICAgICAgICAgICAgY29uc3QgZmlsbEhhbmRsZSA9IHVzZVByb3BlcnR5KCQsICdFbmFibGUgRmlsbCBIYW5kbGUnKTtcblxuICAgICAgICAgICAgLy8gU3RpY2t5XG4gICAgICAgICAgICBjb25zdCBzdGlja1RvcCA9IHVzZVByb3BlcnR5KCQsICdTdGlja3kgVG9wIFJvd3MnKTtcbiAgICAgICAgICAgIGNvbnN0IHN0aWNrQm90dG9tID0gdXNlUHJvcGVydHkoJCwgJ1N0aWNreSBCb3R0b20gUm93cycpO1xuICAgICAgICAgICAgY29uc3Qgc3RpY2tMZWZ0ID0gdXNlUHJvcGVydHkoJCwgJ1N0aWNreSBMZWZ0IENvbHVtbnMnKTtcbiAgICAgICAgICAgIGNvbnN0IHN0aWNrUmlnaHQgPSB1c2VQcm9wZXJ0eSgkLCAnU3RpY2t5IFJpZ2h0IENvbHVtbnMnKTtcblxuICAgICAgICAgICAgLy8gUmVkcmF3IGhvb2tcbiAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lclJlZiA9IHVzZVJlZihudWxsKTtcbiAgICAgICAgICAgIHVzZVJlZHJhd0FmdGVyU2Nyb2xsKCQsIGNvbnRhaW5lclJlZik7XG4gICAgICAgICAgICB1c2VSZWRyYXcoJCk7XG5cbiAgICAgICAgICAgIC8vIFJlbmRlciB0aGUgZ3JpZFxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICA8ZGl2IHJlZj17Y29udGFpbmVyUmVmfT5cbiAgICAgICAgICAgICAgICAgICAgey8qIFJlYWN0R3JpZCBjb21wb25lbnQgKi99XG4gICAgICAgICAgICAgICAgICAgIDxSZWFjdEdyaWRcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIERhdGFcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3M9e3Jvd3N9XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5zPXtjb2x1bW5zfVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DZWxsc0NoYW5nZWQ9e2hhbmRsZU9uQ2VsbHNDaGFuZ2VkLmJpbmQodW5kZWZpbmVkLCAkKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVuYWJsZUZpbGxIYW5kbGU9e2ZpbGxIYW5kbGV9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN0aWNreVxuICAgICAgICAgICAgICAgICAgICAgICAgc3RpY2t5TGVmdENvbHVtbnM9e3N0aWNrTGVmdH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHN0aWNreVJpZ2h0Q29sdW1ucz17c3RpY2tSaWdodH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHN0aWNreVRvcFJvd3M9e3N0aWNrVG9wfVxuICAgICAgICAgICAgICAgICAgICAgICAgc3RpY2t5Qm90dG9tUm93cz17c3RpY2tCb3R0b219XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNlbGVjdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgZW5hYmxlUmFuZ2VTZWxlY3Rpb249e3JhbmdlU2VsZWN0aW9ufVxuICAgICAgICAgICAgICAgICAgICAgICAgZW5hYmxlQ29sdW1uU2VsZWN0aW9uPXtjb2xTZWxlY3Rpb259XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmFibGVSb3dTZWxlY3Rpb249e3Jvd1NlbGVjdGlvbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmVzaXppbmdcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ29sdW1uUmVzaXplZD17aGFuZGxlT25Db2x1bW5SZXNpemVkLmJpbmQodW5kZWZpbmVkLCAkKX1cblxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmVvcmRlcmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgb25Db2x1bW5zUmVvcmRlcmVkPXtoYW5kbGVPbkNvbHVtbnNSZW9yZGVyZWQuYmluZCh1bmRlZmluZWQsICQpfVxuICAgICAgICAgICAgICAgICAgICAvPlxuXG4gICAgICAgICAgICAgICAgICAgIHsvKiBTdHlsaW5nICovfVxuICAgICAgICAgICAgICAgICAgICA8c3R5bGUganN4PntgXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBXcmFwcGVyIHN0eWxpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpdiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogJHtoaWRkZW4gPyAnbm9uZScgOiAnaW5saW5lLWJsb2NrJ307XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICR7Ym94LndpZHRofXB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogJHtib3guaGVpZ2h0fXB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiAke2FsbG93Q29udGVudE92ZXJmbG93ID8gJ3Zpc2libGUnIDogJ3Njcm9sbCd9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnUm9ib3RvJywgc2Fucy1zZXJpZjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSGFjazogcHV0IHRoZSBlZGl0b3IgY2VsbCBpbiB0aGUgcmlnaHQgcGxhY2VcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpdiA6Z2xvYmFsKC5yZy1jZWxsZWRpdG9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoJHstYm94Lnh9cHgsICR7LWJveC55fXB4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gUGFuZSBzdHlsaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXYgOmdsb2JhbCgucmctcGFuZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDBweCA0cHggNnB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gR2VuZXJhbCBjZWxsIHN0eWxpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpdiA6Z2xvYmFsKC5yZy1jZWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2UwZTBlMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjJzIGVhc2UtaW4tb3V0O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBIZWFkZXIgY2VsbCBzdHlsaW5nIHRvIG1hdGNoIE1VSSBUYWJsZSBoZWFkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpdiA6Z2xvYmFsKC5yZy1oZWFkZXItY2VsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlMGUwZTA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTJweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gTnVtYmVyIGNlbGwgc3R5bGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgZGl2IDpnbG9iYWwoLnJnLW51bWJlci1jZWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMTJweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LWZhbWlseTogJ1JvYm90byBNb25vJywgbW9ub3NwYWNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBUZXh0IGNlbGwgc3R5bGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgZGl2IDpnbG9iYWwoLnJnLXRleHQtY2VsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMTJweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSG92ZXIgZWZmZWN0IGZvciBjZWxscyB0byBsb29rIGxpa2UgTVVJIFRhYmxlIHJvd3NcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpdiA6Z2xvYmFsKC5yZy1jZWxsKTpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2Nyb2xsYmFyIHN0eWxpbmcgdG8gbWF0Y2ggTVVJJ3Mgc2Nyb2xsYmFyc1xuICAgICAgICAgICAgICAgICAgICAgICAgZGl2Ojotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDhweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDhweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpdjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBgfTwvc3R5bGU+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApO1xuICAgICAgICB9O1xuICAgIH1cbn1cblxucmVnaXN0ZXJCcmljaygnMDE5MTU0YzQ2MDA3OThmMTA1YWEnLCBSR1JlYWN0R3JpZCk7XG4iXX0= */\n/*@ sourceURL=/builds/marketplace/reactgrid/src/web/RGReactGrid.jsx */")));
176
+ };
177
+ }
178
+ }]);
179
+ }(_olympeio_core__WEBPACK_IMPORTED_MODULE_2__.ReactBrick);
180
+
181
+ (0,olympe__WEBPACK_IMPORTED_MODULE_1__.registerBrick)('019154c4600798f105aa', RGReactGrid);
182
+
183
+ /***/ }),
184
+
185
+ /***/ "./src/common/RGCreateColumnConfig.js":
186
+ /*!********************************************!*\
187
+ !*** ./src/common/RGCreateColumnConfig.js ***!
188
+ \********************************************/
189
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
190
+
191
+ __webpack_require__.r(__webpack_exports__);
192
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
193
+ /* harmony export */ "default": () => (/* binding */ RGCreateColumnConfig)
194
+ /* harmony export */ });
195
+ /* harmony import */ var olympe__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! olympe */ "olympe");
196
+ /* harmony import */ var olympe__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(olympe__WEBPACK_IMPORTED_MODULE_0__);
197
+ /* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./helpers */ "./src/common/helpers.js");
198
+
199
+
200
+
201
+ class RGCreateColumnConfig extends olympe__WEBPACK_IMPORTED_MODULE_0__.Brick {
202
+
203
+ /**
204
+ * @override
205
+ * @protected
206
+ * @param {!BrickContext} $
207
+ * @param {number} rank
208
+ * @param {string} propertyPath
209
+ * @param {string} header
210
+ * @param {number} width
211
+ * @param {string} type
212
+ * @param {string|!Object} options
213
+ * @param {boolean} editable
214
+ * @param {boolean} resizable
215
+ * @param {number} level
216
+ * @param {function(!Object)} setObject
217
+ */
218
+ update(_$, [rank, propertyPath, header, width, type, options, editable, resizable, level], [setObject]) {
219
+ setObject({
220
+ Rank: rank,
221
+ 'Property Path': propertyPath,
222
+ Header: header,
223
+ Width: width,
224
+ Type: type,
225
+ Options: (0,_helpers__WEBPACK_IMPORTED_MODULE_1__.fromJson)(options)[0],
226
+ Editable: editable,
227
+ Resizable: resizable,
228
+ Level: level
229
+ });
230
+ }
231
+ }
232
+
233
+ (0,olympe__WEBPACK_IMPORTED_MODULE_0__.registerBrick)('01921d9038d9eb72f609', RGCreateColumnConfig);
234
+
235
+
236
+ /***/ }),
237
+
238
+ /***/ "./src/common/RGGetChangeMetadata.js":
239
+ /*!*******************************************!*\
240
+ !*** ./src/common/RGGetChangeMetadata.js ***!
241
+ \*******************************************/
242
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
243
+
244
+ __webpack_require__.r(__webpack_exports__);
245
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
246
+ /* harmony export */ "default": () => (/* binding */ RGGetChangeMetadata)
247
+ /* harmony export */ });
248
+ /* harmony import */ var olympe__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! olympe */ "olympe");
249
+ /* harmony import */ var olympe__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(olympe__WEBPACK_IMPORTED_MODULE_0__);
250
+
251
+
252
+ class RGGetChangeMetadata extends olympe__WEBPACK_IMPORTED_MODULE_0__.Brick {
253
+
254
+ /**
255
+ * @override
256
+ * @protected
257
+ * @param {!BrickContext} $
258
+ * @param {!RGChange} change
259
+ * @param {function(!Object)} setNewCell
260
+ * @param {function(!Object)} setPreviousCell
261
+ * @param {function(string|number)} setRowId
262
+ * @param {function(string|number)} setColumnId
263
+ * @param {function(string)} setType
264
+ */
265
+ update(_$, [change], [setNewCell, setPreviousCell, setRowId, setColumnId, setType]) {
266
+ setNewCell(change.metadata.newCell);
267
+ setPreviousCell(change.metadata.previousCell);
268
+ setRowId(change.metadata.rowId);
269
+ setColumnId(change.metadata.columnId);
270
+ setType(change.metadata.type);
271
+ }
272
+ }
273
+
274
+ (0,olympe__WEBPACK_IMPORTED_MODULE_0__.registerBrick)('01920a4d4d8390252c91', RGGetChangeMetadata);
275
+
276
+
277
+ /***/ }),
278
+
279
+ /***/ "./src/common/RGGetChangeProperties.js":
280
+ /*!*********************************************!*\
281
+ !*** ./src/common/RGGetChangeProperties.js ***!
282
+ \*********************************************/
283
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
284
+
285
+ __webpack_require__.r(__webpack_exports__);
286
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
287
+ /* harmony export */ "default": () => (/* binding */ RGGetChangeProperties)
288
+ /* harmony export */ });
289
+ /* harmony import */ var olympe__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! olympe */ "olympe");
290
+ /* harmony import */ var olympe__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(olympe__WEBPACK_IMPORTED_MODULE_0__);
291
+
292
+
293
+ class RGGetChangeProperties extends olympe__WEBPACK_IMPORTED_MODULE_0__.Brick {
294
+
295
+ /**
296
+ * @override
297
+ * @protected
298
+ * @param {!BrickContext} $
299
+ * @param {!RGChange} change
300
+ * @param {function(!Object|!CloudObject)} setObject
301
+ * @param {function(!Object|!CloudObject)} setProperty
302
+ * @param {function(!*)} setNewValue
303
+ * @param {function(!*)} setOldValue
304
+ */
305
+ update(_$, [change], [setObject, setProperty, setNewValue, setOldValue]) {
306
+ setObject(change.object);
307
+ setProperty(change.property);
308
+ setNewValue(change.newValue);
309
+ setOldValue(change.oldValue);
310
+ }
311
+ }
312
+
313
+ (0,olympe__WEBPACK_IMPORTED_MODULE_0__.registerBrick)('0192055d7857bd08279c', RGGetChangeProperties);
314
+
315
+
316
+ /***/ }),
317
+
318
+ /***/ "./src/common/RGGroupTuplesByIndexes.js":
319
+ /*!**********************************************!*\
320
+ !*** ./src/common/RGGroupTuplesByIndexes.js ***!
321
+ \**********************************************/
322
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
323
+
324
+ __webpack_require__.r(__webpack_exports__);
325
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
326
+ /* harmony export */ "default": () => (/* binding */ RGGroupTuplesByIndexes)
327
+ /* harmony export */ });
328
+ /* harmony import */ var olympe__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! olympe */ "olympe");
329
+ /* harmony import */ var olympe__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(olympe__WEBPACK_IMPORTED_MODULE_0__);
330
+ /* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./helpers */ "./src/common/helpers.js");
331
+
332
+
333
+
334
+ class RGGroupTuplesByIndexes extends olympe__WEBPACK_IMPORTED_MODULE_0__.Brick {
335
+
336
+ /**
337
+ * @override
338
+ * @protected
339
+ * @param {!BrickContext} $
340
+ * @param {!Array} data
341
+ * @param {string} indexes
342
+ * @param {function(!Array)} setGroupedData
343
+ */
344
+ update(_$, [data, indexes], [setGroupedData]) {
345
+ // Get the indexes and make the grouping recursively
346
+ const _indexes = indexes.split(',').map(index => parseInt(index));
347
+ setGroupedData(groupBy(data.map(d => (0,_helpers__WEBPACK_IMPORTED_MODULE_1__.rgWrap)(d)), _indexes, 0));
348
+ }
349
+ }
350
+
351
+ (0,olympe__WEBPACK_IMPORTED_MODULE_0__.registerBrick)('0192288806aa3cc82b95', RGGroupTuplesByIndexes);
352
+
353
+ /**
354
+ * Group data by indexes, for the given level
355
+ * @param {!Array} wrappers
356
+ * @param {!Array<number>} indexes
357
+ * @param {number} level
358
+ * @return {!Array}
359
+ */
360
+ function groupBy(wrappers, indexes, level) {
361
+ // End of recursion
362
+ if(level >= indexes.length || !Array.isArray(wrappers)) {
363
+ return wrappers;
364
+ }
365
+
366
+ // Get the current working index
367
+ const index = indexes[level] - level;
368
+
369
+ // Group the data in a Map
370
+ const groupedWrappers = wrappers.reduce((parents, wrapper) => {
371
+ // Split the tuple into parts
372
+ const [wrapped, child] = splitTuple(wrapper, index, level);
373
+ const key = wrapped.rgGetKey();
374
+
375
+ // If this key is not in a group yet
376
+ if(!parents.has(key)) {
377
+ // Create the new group
378
+ parents.set(key, wrapped);
379
+ }
380
+
381
+ // If there is a child, add it to the group
382
+ // (group the child itself also)
383
+ if(child) {
384
+ const parent = parents.get(key);
385
+ parent.rgChildren.push(child);
386
+ }
387
+
388
+ // Done
389
+ return parents;
390
+ }, new Map());
391
+
392
+ // Apply the grouping on the children
393
+ return Array.from(groupedWrappers.values()).map(({ rgChildren, ...others }) => ({
394
+ rgChildren: groupBy(rgChildren.map(c => (0,_helpers__WEBPACK_IMPORTED_MODULE_1__.rgWrap)(c, level + 1)), indexes, level + 1),
395
+ ...others
396
+ }));
397
+ }
398
+
399
+ /**
400
+ * @param {!RGWrapper} wrapper
401
+ * @param {number} index
402
+ * @param {number} level
403
+ * @return {[!RGWrapper, *]}
404
+ */
405
+ function splitTuple(wrapper, index, level) {
406
+ // Real tuple case
407
+ if(wrapper._rgType === 'tuple') {
408
+ // Extract the info
409
+ const tuple = wrapper.rgObject;
410
+ const wrapped = (0,_helpers__WEBPACK_IMPORTED_MODULE_1__.rgWrap)(tuple[index], level);
411
+ const before = tuple.slice(0, index);
412
+ const after = tuple.slice(index + 1);
413
+ const child = [...before, ...after];
414
+
415
+ // Handle all cases
416
+ if(child.length > 1) {
417
+ return [wrapped, child];
418
+ }
419
+ else if(child.length > 0) {
420
+ return [wrapped, child[0]];
421
+ }
422
+ else {
423
+ return [wrapped, null];
424
+ }
425
+ }
426
+
427
+ // Not a tuple case
428
+ else {
429
+ return [wrapper, null];
430
+ }
431
+ }
432
+
433
+
434
+ /***/ }),
435
+
436
+ /***/ "./src/common/RGProcessChangesForCloudObjects.js":
437
+ /*!*******************************************************!*\
438
+ !*** ./src/common/RGProcessChangesForCloudObjects.js ***!
439
+ \*******************************************************/
440
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
441
+
442
+ __webpack_require__.r(__webpack_exports__);
443
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
444
+ /* harmony export */ "default": () => (/* binding */ RGProcessChangesForCloudObjects)
445
+ /* harmony export */ });
446
+ /* harmony import */ var olympe__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! olympe */ "olympe");
447
+ /* harmony import */ var olympe__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(olympe__WEBPACK_IMPORTED_MODULE_0__);
448
+
449
+
450
+ class RGProcessChangesForCloudObjects extends olympe__WEBPACK_IMPORTED_MODULE_0__.ActionBrick {
451
+
452
+ /**
453
+ * @override
454
+ * @protected
455
+ * @param {!BrickContext} $
456
+ * @param {!Array<!RGChange>} changes
457
+ * @param {boolean} executeAsLarge
458
+ * @param {function()} forwardEvent
459
+ * @param {function(!ErrorFlow)} setErrorFlow
460
+ */
461
+ update(_$, [changes, executeAsLarge], [forwardEvent, setErrorFlow]) {
462
+ const t = new olympe__WEBPACK_IMPORTED_MODULE_0__.Transaction();
463
+ const errors = ['No changes applied because:'];
464
+ changes.forEach(change => {
465
+ if(change.metadata.newCell.validator?.(change.newValue) ?? true) {
466
+ t.update(change.object, change.property, change.newValue);
467
+ }
468
+ else {
469
+ errors.push(`This value is not valid: ${change.newValue}`);
470
+ }
471
+ });
472
+ if(errors.length > 1) {
473
+ setErrorFlow(olympe__WEBPACK_IMPORTED_MODULE_0__.ErrorFlow.create(errors.join('\n'), 1));
474
+ return;
475
+ }
476
+ const promise = executeAsLarge ? t.executeAsLarge() : t.execute();
477
+ promise.then(forwardEvent)
478
+ .catch(error => setErrorFlow(olympe__WEBPACK_IMPORTED_MODULE_0__.ErrorFlow.create(error.message, 0)));
479
+ }
480
+ }
481
+
482
+ (0,olympe__WEBPACK_IMPORTED_MODULE_0__.registerBrick)('01920a8134e1cf0fa551', RGProcessChangesForCloudObjects);
483
+
484
+
485
+ /***/ }),
486
+
487
+ /***/ "./src/common/RGProcessChangesForJSONString.js":
488
+ /*!*****************************************************!*\
489
+ !*** ./src/common/RGProcessChangesForJSONString.js ***!
490
+ \*****************************************************/
491
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
492
+
493
+ __webpack_require__.r(__webpack_exports__);
494
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
495
+ /* harmony export */ "default": () => (/* binding */ RGProcessChangesForJSONString)
496
+ /* harmony export */ });
497
+ /* harmony import */ var olympe__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! olympe */ "olympe");
498
+ /* harmony import */ var olympe__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(olympe__WEBPACK_IMPORTED_MODULE_0__);
499
+ /* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./helpers */ "./src/common/helpers.js");
500
+
501
+
502
+
503
+ class RGProcessChangesForJSONString extends olympe__WEBPACK_IMPORTED_MODULE_0__.ActionBrick {
504
+
505
+ /**
506
+ * @override
507
+ * @protected
508
+ * @param {!BrickContext} $
509
+ * @param {!Array<!RGChange>} changes
510
+ * @param {string} json
511
+ * @param {function()} forwardEvent
512
+ * @param {function(!ErrorFlow)} setErrorFlow
513
+ * @param {function(string)} setNewJson
514
+ */
515
+ update(_$, [changes, json], [forwardEvent, setErrorFlow, setNewJson]) {
516
+ const [data, error] = (0,_helpers__WEBPACK_IMPORTED_MODULE_1__.fromJson)(json);
517
+ if(!error) {
518
+ const errors = ['No changes applied because:'];
519
+ changes.forEach(change => {
520
+ if(change.metadata.newCell.validator?.(change.newValue) ?? true) {
521
+ data[change.metadata.rowId][change.property] = change.newValue;
522
+ }
523
+ else {
524
+ errors.push(`This value is not valid: ${change.newValue}`);
525
+ }
526
+ });
527
+ if(errors.length > 1) {
528
+ setErrorFlow(olympe__WEBPACK_IMPORTED_MODULE_0__.ErrorFlow.create(errors.join('\n'), 1));
529
+ return;
530
+ }
531
+ setNewJson(JSON.stringify(data));
532
+ forwardEvent();
533
+ }
534
+ else {
535
+ setErrorFlow(olympe__WEBPACK_IMPORTED_MODULE_0__.ErrorFlow.create(`input 'json' is not valid, error: ${error.message}`, 0));
536
+ }
537
+ }
538
+ }
539
+
540
+ (0,olympe__WEBPACK_IMPORTED_MODULE_0__.registerBrick)('01921e064dbe25faec55', RGProcessChangesForJSONString);
541
+
542
+
543
+ /***/ }),
544
+
545
+ /***/ "./src/common/RGProcessChangesForObjects.js":
546
+ /*!**************************************************!*\
547
+ !*** ./src/common/RGProcessChangesForObjects.js ***!
548
+ \**************************************************/
549
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
550
+
551
+ __webpack_require__.r(__webpack_exports__);
552
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
553
+ /* harmony export */ "default": () => (/* binding */ RGProcessChangesForObjects)
554
+ /* harmony export */ });
555
+ /* harmony import */ var olympe__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! olympe */ "olympe");
556
+ /* harmony import */ var olympe__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(olympe__WEBPACK_IMPORTED_MODULE_0__);
557
+
558
+
559
+ class RGProcessChangesForObjects extends olympe__WEBPACK_IMPORTED_MODULE_0__.ActionBrick {
560
+
561
+ /**
562
+ * @override
563
+ * @protected
564
+ * @param {!BrickContext} $
565
+ * @param {!Array<!RGChange>} changes
566
+ * @param {boolean} inPlace
567
+ * @param {Array} data
568
+ * @param {function()} forwardEvent
569
+ * @param {function(!ErrorFlow)} setErrorFlow
570
+ */
571
+ update(_$, [changes, inPlace, data], [forwardEvent, setErrorFlow]) {
572
+ const errors = ['No changes applied because:'];
573
+ changes.forEach(change => {
574
+ if(!(change.metadata.newCell.validator?.(change.newValue) ?? true)) {
575
+ errors.push(`This value is not valid: ${change.newValue}`);
576
+ }
577
+ });
578
+ if(errors.length > 1) {
579
+ setErrorFlow(olympe__WEBPACK_IMPORTED_MODULE_0__.ErrorFlow.create(errors.join('\n'), 1));
580
+ return;
581
+ }
582
+ if(inPlace) {
583
+ changes.forEach(change => {
584
+ change.object[change.property] = change.newValue;
585
+ });
586
+ }
587
+ else {
588
+ changes.forEach(change => {
589
+ data[change.metadata.rowId][change.property] = change.newValue;
590
+ });
591
+ }
592
+ forwardEvent();
593
+ }
594
+ }
595
+
596
+ (0,olympe__WEBPACK_IMPORTED_MODULE_0__.registerBrick)('01921e0d2b383c95bd22', RGProcessChangesForObjects);
597
+
598
+
599
+ /***/ }),
600
+
601
+ /***/ "./src/common/RGWrapObject.js":
602
+ /*!************************************!*\
603
+ !*** ./src/common/RGWrapObject.js ***!
604
+ \************************************/
605
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
606
+
607
+ __webpack_require__.r(__webpack_exports__);
608
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
609
+ /* harmony export */ "default": () => (/* binding */ RGWrapObject)
610
+ /* harmony export */ });
611
+ /* harmony import */ var olympe__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! olympe */ "olympe");
612
+ /* harmony import */ var olympe__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(olympe__WEBPACK_IMPORTED_MODULE_0__);
613
+ /* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./helpers */ "./src/common/helpers.js");
614
+
615
+
616
+
617
+ class RGWrapObject extends olympe__WEBPACK_IMPORTED_MODULE_0__.Brick {
618
+
619
+ /**
620
+ * @override
621
+ * @protected
622
+ * @param {!BrickContext} $
623
+ * @param {!*} object
624
+ * @param {number} level
625
+ * @param {function(!RGWrapper)} setWrapped
626
+ */
627
+ update(_$, [object, level], [setWrapped]) {
628
+ setWrapped((0,_helpers__WEBPACK_IMPORTED_MODULE_1__.rgWrap)(object, level));
629
+ }
630
+ }
631
+
632
+ (0,olympe__WEBPACK_IMPORTED_MODULE_0__.registerBrick)('019232c3d1873de0d259', RGWrapObject);
633
+
634
+
635
+ /***/ }),
636
+
637
+ /***/ "./src/common/helpers.js":
638
+ /*!*******************************!*\
639
+ !*** ./src/common/helpers.js ***!
640
+ \*******************************/
641
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
642
+
643
+ __webpack_require__.r(__webpack_exports__);
644
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
645
+ /* harmony export */ RGChange: () => (/* reexport safe */ _internal_changes__WEBPACK_IMPORTED_MODULE_1__.RGChange),
646
+ /* harmony export */ RGWrapper: () => (/* reexport safe */ _internal_wrappers__WEBPACK_IMPORTED_MODULE_0__.RGWrapper),
647
+ /* harmony export */ fromJson: () => (/* reexport safe */ _internal_helpers__WEBPACK_IMPORTED_MODULE_2__.fromJson),
648
+ /* harmony export */ rgWrap: () => (/* reexport safe */ _internal_wrappers__WEBPACK_IMPORTED_MODULE_0__.rgWrap)
649
+ /* harmony export */ });
650
+ /* harmony import */ var _internal_wrappers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/wrappers */ "./src/common/internal/wrappers.js");
651
+ /* harmony import */ var _internal_changes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/changes */ "./src/common/internal/changes.js");
652
+ /* harmony import */ var _internal_helpers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/helpers */ "./src/common/internal/helpers.js");
653
+ // Re-export
654
+
655
+
656
+
657
+
658
+
659
+ /***/ }),
660
+
661
+ /***/ "./src/common/internal/box.js":
662
+ /*!************************************!*\
663
+ !*** ./src/common/internal/box.js ***!
664
+ \************************************/
665
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
666
+
667
+ __webpack_require__.r(__webpack_exports__);
668
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
669
+ /* harmony export */ initBox: () => (/* binding */ initBox),
670
+ /* harmony export */ useBox: () => (/* binding */ useBox)
671
+ /* harmony export */ });
672
+ /* harmony import */ var _olympeio_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @olympeio/core */ "@olympeio/core");
673
+ /* harmony import */ var _olympeio_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_olympeio_core__WEBPACK_IMPORTED_MODULE_0__);
674
+ /* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs */ "rxjs");
675
+ /* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(rxjs__WEBPACK_IMPORTED_MODULE_1__);
676
+ // Olympe
677
+
678
+
679
+ // Rxjs
680
+
681
+
682
+ /**
683
+ * Init the bounding box
684
+ * @param {!BrickContext} $
685
+ */
686
+ function initBox($) {
687
+ // Listen to the component position and size
688
+ (0,rxjs__WEBPACK_IMPORTED_MODULE_1__.combineLatest)([$.observe('X'), $.observe('Y'), $.observe('Width'), $.observe('Height')])
689
+
690
+ // Debounce the changes to avoid to many rerendering
691
+ .pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_1__.throttleTime)(100, undefined, { leading: true, trailing: true }))
692
+
693
+ // Set the final box
694
+ .pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_1__.tap)(([x, y, width, height]) => $.set('_rgBox', { x, y, width, height })))
695
+
696
+ // Run
697
+ .subscribe();
698
+ }
699
+
700
+ /**
701
+ * @param {!BrickContext}
702
+ * @return {!*}
703
+ */
704
+ function useBox($) {
705
+ return (0,_olympeio_core__WEBPACK_IMPORTED_MODULE_0__.useProperty)($, '_rgBox')
706
+ ?? { x: $.get('X'), y: $.get('Y'), width: $.get('Width'), height: $.get('Height') };
707
+ }
708
+
709
+
710
+
711
+ /***/ }),
712
+
713
+ /***/ "./src/common/internal/cells.js":
714
+ /*!**************************************!*\
715
+ !*** ./src/common/internal/cells.js ***!
716
+ \**************************************/
717
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
718
+
719
+ __webpack_require__.r(__webpack_exports__);
720
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
721
+ /* harmony export */ generateCell: () => (/* binding */ generateCell),
722
+ /* harmony export */ getCellStyle: () => (/* binding */ getCellStyle),
723
+ /* harmony export */ getCellValue: () => (/* binding */ getCellValue),
724
+ /* harmony export */ handleChevronCellChange: () => (/* binding */ handleChevronCellChange),
725
+ /* harmony export */ handleDropdownCellChange: () => (/* binding */ handleDropdownCellChange),
726
+ /* harmony export */ initCells: () => (/* binding */ initCells),
727
+ /* harmony export */ isChevronCellExpanded: () => (/* binding */ isChevronCellExpanded)
728
+ /* harmony export */ });
729
+ /* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./helpers */ "./src/common/internal/helpers.js");
730
+ // Internal
731
+
732
+
733
+ /**
734
+ * @param {!BrickContext} $
735
+ */
736
+ function initCells($) {
737
+ $.set('_rgDropdownIsOpen', '');
738
+ $.set('_rgDropdownInputValue', '');
739
+ }
740
+
741
+ /**
742
+ * Generate a cell for the defined wrapper/column
743
+ * @param {!BrickContext} $
744
+ * @param {!RGWrapper} wrapper
745
+ * @param {number} rowId
746
+ * @param {!Object} column
747
+ * @param {boolean} cellEdition
748
+ * @return {!Object}
749
+ */
750
+ function generateCell($, wrapper, rowId, column, cellEdition) {
751
+ try {
752
+ // Get the cell value
753
+ const value = wrapper.__rgGetValue(column['Property Path'] ?? '');
754
+
755
+ // Get the options
756
+ const [options, optionsError] = (0,_helpers__WEBPACK_IMPORTED_MODULE_0__.fromJson)(column.Options);
757
+ if(optionsError) {
758
+ warn(`cannot parse column options, error: ${optionsError.message}`);
759
+ }
760
+ const validator = options.validator ? s => new RegExp(options.validator).test(s) : undefined;
761
+ const common = {
762
+ nonEditable: cellEdition === 'DISABLED' || (cellEdition === 'USE CONFIG' && !column.Editable),
763
+ style: getCellStyle($)
764
+ };
765
+
766
+ // Generate the cell depending on the type
767
+ switch(column.Type) {
768
+ case 'TEXT': return generateTextCell(value, options, common, column, validator);
769
+ case 'NUMBER': return generateNumberCell(value, options, common);
770
+ case 'EMAIL': return generateEmailCell(value, common, validator);
771
+ case 'DATE':
772
+ case 'TIME': return generateDateTimeCell(value, options, common, column);
773
+ case 'CHECKBOX': return generateCheckboxCell(value, options, common);
774
+ case 'DROPDOWN': return generateDropdownCell(value, options, common, column, $, rowId);
775
+ case 'HEADER': return generateHeaderCell(value, options, common);
776
+ case 'CHEVRON': return generateChevronCell(value, options, common, wrapper, $);
777
+
778
+ // AUTO case
779
+ default:
780
+ if(value instanceof Date) {
781
+ return generateCell($, wrapper, rowId, { ...column, Type: 'DATE' }, cellEdition);
782
+ }
783
+ switch(typeof value) {
784
+ case 'number': return generateCell($, wrapper, rowId, { ...column, Type: 'NUMBER' }, cellEdition);
785
+ case 'boolean': return generateCell($, wrapper, rowId, { ...column, Type: 'CHECKBOX' }, cellEdition);
786
+ default: return generateCell($, wrapper, rowId, { ...column, Type: 'TEXT', _cast: true }, cellEdition);
787
+ }
788
+ }
789
+ }
790
+ catch(err) {
791
+ (0,_helpers__WEBPACK_IMPORTED_MODULE_0__.error)(`cannot generate cell, error: ${err.message}`);
792
+ return errorCell();
793
+ }
794
+ }
795
+
796
+ /**
797
+ * Get the cell value, depending on its type
798
+ * @param {!Object} cell
799
+ * @return {*}
800
+ */
801
+ function getCellValue(cell) {
802
+ switch(cell.type) {
803
+ case 'number': return cell.value;
804
+ case 'date': return cell.date;
805
+ case 'time': return cell.time;
806
+ case 'checkbox': return cell.checked;
807
+ case 'dropdown': return cell.selectedValue;
808
+ default: return cell.text;
809
+ }
810
+ }
811
+
812
+ /**
813
+ * @param {*} value
814
+ * @param {!Object} options
815
+ * @param {!Object} common
816
+ * @param {!Object} column
817
+ * @param {function(string):boolean} validator
818
+ * @return {!TextCell}
819
+ */
820
+ function generateTextCell(value, options, common, column, validator) {
821
+ return {
822
+ type: 'text',
823
+ text: (column._cast ? String(value ?? '') : value ?? ''),
824
+ placeholder: options.placeholder,
825
+ validator: validator,
826
+ ...common
827
+ };
828
+ }
829
+
830
+ /**
831
+ * @param {*} value
832
+ * @param {!Object} options
833
+ * @param {!Object} common
834
+ * @return {!NumberCell}
835
+ */
836
+ function generateNumberCell(value, options, common) {
837
+ return {
838
+ type: 'number',
839
+ value: value,
840
+ format: new Intl.NumberFormat(options.locale, options.format),
841
+ nanToZero: options.nanToZero,
842
+ hideZero: options.hideZero,
843
+ ...common
844
+ };
845
+ }
846
+
847
+ /**
848
+ * @param {*} value
849
+ * @param {!Object} common
850
+ * @param {function(string):boolean} validator
851
+ * @return {!EmailCell}
852
+ */
853
+ function generateEmailCell(value, common, validator) {
854
+ return {
855
+ type: 'email',
856
+ text: value ?? '',
857
+ validator: validator ?? _helpers__WEBPACK_IMPORTED_MODULE_0__.validateEmail,
858
+ ...common
859
+ };
860
+ }
861
+
862
+ /**
863
+ * @param {*} value
864
+ * @param {!Object} options
865
+ * @param {!Object} common
866
+ * @param {!Object} column
867
+ * @return {!DateCell|!TimeCell}
868
+ */
869
+ function generateDateTimeCell(value, options, common, column) {
870
+ const type = column.Type.toLowerCase();
871
+ return {
872
+ type: type,
873
+ [type]: value instanceof Date ? value : new Date(value),
874
+ format: new Intl.DateTimeFormat(options.locale, options.format ?? { [`${type}Style`]: 'short' }),
875
+ ...common
876
+ };
877
+ }
878
+
879
+ /**
880
+ * @param {*} value
881
+ * @param {!Object} options
882
+ * @param {!Object} common
883
+ * @return {!CheckboxCell}
884
+ */
885
+ function generateCheckboxCell(value, options, common) {
886
+ return {
887
+ type: 'checkbox',
888
+ checked: Boolean(value ?? false),
889
+ checkedText: options.checkedText,
890
+ uncheckedText: options.uncheckedText,
891
+ ...common
892
+ };
893
+ }
894
+
895
+ /**
896
+ * @param {*} value
897
+ * @param {!Object} options
898
+ * @param {!Object} common
899
+ * @param {!Object} column
900
+ * @param {!BrickContext} $
901
+ * @param {number} rowId
902
+ * @return {!DropdownCell}
903
+ */
904
+ function generateDropdownCell(value, options, common, column, $, rowId) {
905
+ const id = `${rowId}.${column.columnId}`;
906
+ const isOpen = id === $.get('_rgDropdownIsOpen');
907
+ const inputValue = isOpen ? $.get('_rgDropdownInputValue') : '';
908
+ return {
909
+ type: 'dropdown',
910
+ selectedValue: value,
911
+ values: options.values ?? [],
912
+ isDisabled: options.isDisabled,
913
+ isOpen: isOpen,
914
+ inputValue: inputValue,
915
+ ...common
916
+ };
917
+ }
918
+
919
+ /**
920
+ * Handle the dropdowns internal states
921
+ * @param {!BrickContext} $
922
+ * @param {!CellChange} change
923
+ */
924
+ function handleDropdownCellChange($, change) {
925
+ const id = `${change.rowId}.${change.columnId}`;
926
+ if(change.newCell.isOpen && !change.newCell.isDisabled) {
927
+ $.set('_rgDropdownIsOpen', id);
928
+ $.set('_rgDropdownInputValue', change.newCell.inputValue);
929
+ }
930
+ else {
931
+ $.set('_rgDropdownIsOpen', '');
932
+ $.set('_rgDropdownInputValue', '');
933
+ }
934
+ }
935
+
936
+ /**
937
+ * @param {*} value
938
+ * @param {!Object} options
939
+ * @param {!Object} common
940
+ * @return {!HeaderCell}
941
+ */
942
+ function generateHeaderCell(value, options, common) {
943
+ return {
944
+ type: 'header',
945
+ text: value ?? options.text ?? '',
946
+ ...common
947
+ };
948
+ }
949
+
950
+ /**
951
+ * @param {*} value
952
+ * @param {!Object} options
953
+ * @param {!Object} common
954
+ * @param {!RGWrapper} wrapper
955
+ * @param {!BrickContext} $
956
+ * @return {!ChevronCell}
957
+ */
958
+ function generateChevronCell(value, options, common, wrapper, $) {
959
+ const id = `_rgChevron.${wrapper.rgGetKey()}`;
960
+ if(!$.has(id)) {
961
+ $.set(id, { isExpanded: options.isExpanded ?? false });
962
+ }
963
+ const state = $.get(id);
964
+ return {
965
+ type: 'chevron',
966
+ text: value ?? options.text ?? '',
967
+ indent: options.indent,
968
+ hasChildren: wrapper.rgChildren.length > 0,
969
+ ...state,
970
+ ...common
971
+ };
972
+ }
973
+
974
+ /**
975
+ * Handle the chevrons internal states
976
+ * @param {!BrickContext} $
977
+ * @param {!CellChange} change
978
+ * @param {!RGWrapper} wrapper
979
+ */
980
+ function handleChevronCellChange($, change, wrapper) {
981
+ const id = `_rgChevron.${wrapper.rgGetKey()}`;
982
+ $.set(id, { isExpanded: change.newCell.isExpanded });
983
+ }
984
+
985
+ /**
986
+ * @param {!BrickContext} $
987
+ * @param {!RGWrapper} wrapper
988
+ * @return {boolean}
989
+ */
990
+ function isChevronCellExpanded($, wrapper) {
991
+ const id = `_rgChevron.${wrapper.rgGetKey()}`;
992
+ return $.get(id)?.isExpanded ?? false;
993
+ }
994
+
995
+ /**
996
+ * @param {!BrickContext} $
997
+ * @return {!Object}
998
+ */
999
+ function getCellStyle($) {
1000
+ const borderStyle = {
1001
+ color: $.get('Border Color'),
1002
+ width: $.get('Border Width')
1003
+ };
1004
+ return {
1005
+ background: $.get('Default Color'),
1006
+ border: {
1007
+ left: borderStyle,
1008
+ top: borderStyle,
1009
+ right: borderStyle,
1010
+ bottom: borderStyle
1011
+ }
1012
+ };
1013
+ }
1014
+
1015
+ /**
1016
+ * @return {!TextCell}
1017
+ */
1018
+ function errorCell() {
1019
+ return {
1020
+ type: 'text',
1021
+ text: '!ERROR',
1022
+ nonEditable: true,
1023
+ style: {
1024
+ color: 'red'
1025
+ }
1026
+ };
1027
+ }
1028
+
1029
+
1030
+ /***/ }),
1031
+
1032
+ /***/ "./src/common/internal/changes.js":
1033
+ /*!****************************************!*\
1034
+ !*** ./src/common/internal/changes.js ***!
1035
+ \****************************************/
1036
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1037
+
1038
+ __webpack_require__.r(__webpack_exports__);
1039
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1040
+ /* harmony export */ RGChange: () => (/* binding */ RGChange),
1041
+ /* harmony export */ handleOnCellsChanged: () => (/* binding */ handleOnCellsChanged)
1042
+ /* harmony export */ });
1043
+ /* harmony import */ var olympe__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! olympe */ "olympe");
1044
+ /* harmony import */ var olympe__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(olympe__WEBPACK_IMPORTED_MODULE_0__);
1045
+ /* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./helpers */ "./src/common/internal/helpers.js");
1046
+ /* harmony import */ var _wrappers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./wrappers */ "./src/common/internal/wrappers.js");
1047
+ /* harmony import */ var _cells__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./cells */ "./src/common/internal/cells.js");
1048
+ /* harmony import */ var _columns__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./columns */ "./src/common/internal/columns.js");
1049
+ /* harmony import */ var _triggers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./triggers */ "./src/common/internal/triggers.js");
1050
+ // Olympe
1051
+
1052
+
1053
+ // Internal
1054
+
1055
+
1056
+
1057
+
1058
+
1059
+
1060
+ /**
1061
+ * @typedef {Object} RGChange
1062
+ * @property {(!Object|!CloudObject)} object
1063
+ * @property {(string|!PropertyModel)} property
1064
+ * @property {*} oldValue
1065
+ * @property {*} newValue
1066
+ * @property {!CellChange} metadata
1067
+ */
1068
+ const RGChange = {};
1069
+
1070
+ /**
1071
+ * Process the changes event from the reactgrid, and forward it to a lambda
1072
+ * @param {!BrickContext} $
1073
+ * @param {!Array} changes
1074
+ */
1075
+ function handleOnCellsChanged($, changes) {
1076
+ // Only process changes when a lambda is defined
1077
+ const processor = $.get('Process Changes');
1078
+ if(!processor) {
1079
+ (0,_helpers__WEBPACK_IMPORTED_MODULE_1__.warn)('no change is processed, the `Process Changes` lambda is no defined');
1080
+ return;
1081
+ }
1082
+
1083
+ // Adapt the changes to olympe
1084
+ let internalStateChanged = false;
1085
+ const flattenWrappers = (0,_wrappers__WEBPACK_IMPORTED_MODULE_2__.getFlattenWrappers)($);
1086
+ const _changes = changes
1087
+ // Transform the changes to work well with Olympe
1088
+ .map(change => {
1089
+ // Get the required data
1090
+ const wrapper = flattenWrappers[change.rowId].wrapper;
1091
+ const columns = (0,_columns__WEBPACK_IMPORTED_MODULE_4__.getColumns)($, wrapper._rgLevel);
1092
+ const column = columns.find(c => c.Rank === change.columnId);
1093
+
1094
+ // Guard
1095
+ if(column === undefined) {
1096
+ (0,_helpers__WEBPACK_IMPORTED_MODULE_1__.warn)(`no column found for level ${wrapper._rgLevel} and rank ${change.columnId}`);
1097
+ return null;
1098
+ }
1099
+
1100
+ // Handle dropdowns states
1101
+ if(change.type === 'dropdown') {
1102
+ (0,_cells__WEBPACK_IMPORTED_MODULE_3__.handleDropdownCellChange)($, change);
1103
+ internalStateChanged = true;
1104
+ }
1105
+
1106
+ // Handle chevrons states
1107
+ else if(change.type === 'chevron') {
1108
+ (0,_cells__WEBPACK_IMPORTED_MODULE_3__.handleChevronCellChange)($, change, wrapper);
1109
+ internalStateChanged = true;
1110
+ }
1111
+
1112
+ // Create the RGChange object
1113
+ return {
1114
+ object: wrapper.__rgGetObject(column['Property Path']),
1115
+ property: wrapper.__rgGetProperty(column['Property Path']),
1116
+ oldValue: (0,_cells__WEBPACK_IMPORTED_MODULE_3__.getCellValue)(change.previousCell),
1117
+ newValue: (0,_cells__WEBPACK_IMPORTED_MODULE_3__.getCellValue)(change.newCell),
1118
+ metadata: change
1119
+ };
1120
+ })
1121
+ // Filter out null change
1122
+ .filter(change => change !== null)
1123
+ // Filter out the dropdown change that are only about the internal state
1124
+ .filter(change => change.metadata.type !== 'dropdown' || change.newValue !== change.oldValue)
1125
+ // Filter out the chevron change that are only about the internal state
1126
+ .filter(change => change.metadata.type !== 'chevron' || change.newValue !== change.oldValue)
1127
+ // Filter out changes with no value, only if there is change with value -> hack to fix paste from excel until a better solution
1128
+ .filter((change, _index, all) => change.newValue !== "" || all.every(c => c.newValue === ""));
1129
+
1130
+ // Guard
1131
+ if(_changes.length === 0) {
1132
+ if(internalStateChanged) {
1133
+ (0,_triggers__WEBPACK_IMPORTED_MODULE_5__.triggerReload)($);
1134
+ }
1135
+ return;
1136
+ }
1137
+
1138
+ // Call the lambda
1139
+ const [iFlow, iChanges] = processor.getInputs();
1140
+ const [oFlow, oErrorFlow] = processor.getOutputs();
1141
+ const processor$ = $.runner(processor);
1142
+ processor$.set(iChanges, _changes);
1143
+ processor$.trigger(iFlow);
1144
+
1145
+ // Wait for the end of it
1146
+ Promise.race([
1147
+ processor$.waitFor(oFlow),
1148
+ processor$.waitFor(oErrorFlow)
1149
+ ])
1150
+ .then(value => {
1151
+ // In case of error, throw it again
1152
+ if(value instanceof olympe__WEBPACK_IMPORTED_MODULE_0__.ErrorFlow) {
1153
+ $.throw(value);
1154
+ }
1155
+
1156
+ // Success
1157
+ else {
1158
+ (0,_triggers__WEBPACK_IMPORTED_MODULE_5__.triggerReload)($);
1159
+ }
1160
+ })
1161
+
1162
+ // Free the lambda
1163
+ .finally(() => processor$.destroy());
1164
+ }
1165
+
1166
+
1167
+ /***/ }),
1168
+
1169
+ /***/ "./src/common/internal/cloudobjects.js":
1170
+ /*!*********************************************!*\
1171
+ !*** ./src/common/internal/cloudobjects.js ***!
1172
+ \*********************************************/
1173
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1174
+
1175
+ __webpack_require__.r(__webpack_exports__);
1176
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1177
+ /* harmony export */ findObjectProperty: () => (/* binding */ findObjectProperty),
1178
+ /* harmony export */ getModelPropertiesName: () => (/* binding */ getModelPropertiesName)
1179
+ /* harmony export */ });
1180
+ /* harmony import */ var olympe__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! olympe */ "olympe");
1181
+ /* harmony import */ var olympe__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(olympe__WEBPACK_IMPORTED_MODULE_0__);
1182
+
1183
+
1184
+ /**
1185
+ * Find an object property based on its name
1186
+ * @param {!CloudObject} object
1187
+ * @param {string} path
1188
+ * @return {!PropertyModel}
1189
+ */
1190
+ function findObjectProperty(object, path) {
1191
+ const mapping = getModelPropertiesMapping(object);
1192
+ return mapping.get(path);
1193
+ }
1194
+
1195
+ /**
1196
+ * Get all properties name of an object
1197
+ * @param {!CloudObject} object
1198
+ * @return {!Array<string>}
1199
+ */
1200
+ function getModelPropertiesName(object) {
1201
+ const mapping = getModelPropertiesMapping(object);
1202
+ return Array.from(mapping.keys());
1203
+ }
1204
+
1205
+ /**
1206
+ * Get an object model properties mapping
1207
+ * @param {!CloudObject} object
1208
+ * @return {!Map<string, PropertyModel>}
1209
+ */
1210
+ function getModelPropertiesMapping(object) {
1211
+ const model = object.getModel();
1212
+ if(!modelProperties.has(model.getTag())) {
1213
+ const mapping = new Map();
1214
+ model.query()
1215
+ .follow(olympe__WEBPACK_IMPORTED_MODULE_0__.CloudObject.propertyRel)
1216
+ .executeFromCache()
1217
+ .forEach(property => mapping.set(property.name(), property));
1218
+ modelProperties.set(model.getTag(), mapping);
1219
+ }
1220
+ return modelProperties.get(model.getTag());
1221
+ }
1222
+
1223
+ /**
1224
+ * Singleton map for model properties mapping (name <-> instance)
1225
+ * @type {!Map<string, !Map<string, PropertyModel>>}
1226
+ */
1227
+ const modelProperties = new Map();
1228
+
1229
+
1230
+
1231
+ /***/ }),
1232
+
1233
+ /***/ "./src/common/internal/columns.js":
1234
+ /*!****************************************!*\
1235
+ !*** ./src/common/internal/columns.js ***!
1236
+ \****************************************/
1237
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1238
+
1239
+ __webpack_require__.r(__webpack_exports__);
1240
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1241
+ /* harmony export */ getColumns: () => (/* binding */ getColumns),
1242
+ /* harmony export */ handleOnColumnResized: () => (/* binding */ handleOnColumnResized),
1243
+ /* harmony export */ handleOnColumnsReordered: () => (/* binding */ handleOnColumnsReordered),
1244
+ /* harmony export */ initFilteredColumns: () => (/* binding */ initFilteredColumns),
1245
+ /* harmony export */ useColumns: () => (/* binding */ useColumns)
1246
+ /* harmony export */ });
1247
+ /* harmony import */ var olympe__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! olympe */ "olympe");
1248
+ /* harmony import */ var olympe__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(olympe__WEBPACK_IMPORTED_MODULE_0__);
1249
+ /* harmony import */ var _olympeio_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @olympeio/core */ "@olympeio/core");
1250
+ /* harmony import */ var _olympeio_core__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_olympeio_core__WEBPACK_IMPORTED_MODULE_1__);
1251
+ /* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs */ "rxjs");
1252
+ /* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(rxjs__WEBPACK_IMPORTED_MODULE_2__);
1253
+ /* harmony import */ var _wrappers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./wrappers */ "./src/common/internal/wrappers.js");
1254
+ /* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./helpers */ "./src/common/internal/helpers.js");
1255
+ // Olympe
1256
+
1257
+
1258
+
1259
+ // Rxjs
1260
+
1261
+
1262
+ // Internal
1263
+
1264
+
1265
+
1266
+ /**
1267
+ * Init the columns
1268
+ * @param {!BrickContext} $
1269
+ * @param {!Observable} _wrappers
1270
+ * @return {!Observable}
1271
+ */
1272
+ function initFilteredColumns($, _wrappers) {
1273
+ // Internal states
1274
+ $.set('_rgColumnWidth', {}); // Column width overrides
1275
+ $.set('_rgColumnOrder', {}); // Column order (rank) overrides
1276
+
1277
+ // Listen to the config and the _wrappers first object properties
1278
+ return (0,rxjs__WEBPACK_IMPORTED_MODULE_2__.combineLatest)([
1279
+ $.observe('Config', false),
1280
+ _wrappers
1281
+ .pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_2__.map)(wrappers => (wrappers[0] ?? (0,_wrappers__WEBPACK_IMPORTED_MODULE_3__.defaultWrap)()).__rgProperties()))
1282
+ .pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_2__.distinctUntilChanged)()),
1283
+ $.observe('Enable Column Reordering', false),
1284
+ $.observe('_rgColumnWidth'),
1285
+ $.observe('_rgColumnOrder'),
1286
+ $.observe('Default Width')
1287
+ ])
1288
+
1289
+ // Build the columns
1290
+ .pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_2__.map)(([config, properties, ...others]) => {
1291
+ // Config is set by the user
1292
+ if (config) {
1293
+ return [config, ...others];
1294
+ }
1295
+
1296
+ // Config is auto-generated from the data
1297
+ if (properties.length > 0) {
1298
+ return [
1299
+ properties.map((path, index) => ({ 'Property Path': path, Type: 'AUTO', Rank: index })),
1300
+ ...others
1301
+ ];
1302
+ }
1303
+
1304
+ // Empty config
1305
+ return [[], ...others];
1306
+ }))
1307
+
1308
+ // Transform to an array of objects
1309
+ .pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_2__.map)(([config, reorderableColumns, columnWidth, columnOrder, defaultWidth]) => {
1310
+ return config
1311
+ .map(column => column instanceof olympe__WEBPACK_IMPORTED_MODULE_0__.CloudObject ? column.toObject(true, true) : column)
1312
+ .sort((a, b) => getColumnRank(a, columnOrder) - getColumnRank(b, columnOrder))
1313
+ .map(column => generateColumn(column, reorderableColumns, columnWidth, defaultWidth));
1314
+ }))
1315
+
1316
+ // Cache the filtered columns (per level) for quick access
1317
+ .pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_2__.map)(columns => {
1318
+ const filteredColumns = filterLevelledColumns(columns);
1319
+ $.set('_rgFilteredColumns', filteredColumns);
1320
+ return filteredColumns;
1321
+ }));
1322
+ }
1323
+
1324
+ /**
1325
+ * @param {!BrickContext} $
1326
+ * @return {!*}
1327
+ */
1328
+ function useColumns($) {
1329
+ const filteredColumns = (0,_olympeio_core__WEBPACK_IMPORTED_MODULE_1__.useProperty)($, '_rgFilteredColumns');
1330
+ return filteredColumns?.get(0) ?? [];
1331
+ }
1332
+
1333
+ /**
1334
+ * @param {!BrickContext} $
1335
+ * @param {number} level
1336
+ * @return {!Array}
1337
+ */
1338
+ function getColumns($, level) {
1339
+ const filteredColumns = $.get('_rgFilteredColumns');
1340
+ return filteredColumns?.get(level ?? 0) ?? [];
1341
+ }
1342
+
1343
+ /**
1344
+ * Handle the resizing of columns
1345
+ * @param {!BrickContext} $
1346
+ * @param {string} columnId
1347
+ * @param {number} width
1348
+ */
1349
+ function handleOnColumnResized($, columnId, width) {
1350
+ const currentCols = { ...$.get('_rgColumnWidth') };
1351
+ currentCols[columnId] = width;
1352
+ $.set('_rgColumnWidth', currentCols);
1353
+ }
1354
+
1355
+ /**
1356
+ * @param {!Array} columns
1357
+ * @return {!Map<number, !Array>}
1358
+ */
1359
+ function filterLevelledColumns(columns) {
1360
+ // Group the columns by rank and save all levels
1361
+ const levels = new Set();
1362
+ const perRank = columns.reduce((acc, cur) => {
1363
+ const rank = cur.Rank ?? 0;
1364
+ if(!acc.has(rank)) {
1365
+ acc.set(rank, []);
1366
+ }
1367
+ acc.get(rank).push(cur);
1368
+ levels.add(cur.Level ?? 0);
1369
+ return acc;
1370
+ }, new Map());
1371
+ const allRanks = Array.from(perRank.keys());
1372
+
1373
+ // Get the columns for each level
1374
+ const filterLevel = level => {
1375
+ return allRanks.map(rank => {
1376
+ const rankColumns = perRank.get(rank);
1377
+ const atLevel = rankColumns.find(column => (column.Level ?? 0) === level);
1378
+ const generic = rankColumns.find(column => (column.Level ?? 0) === -1);
1379
+ return atLevel ?? generic ?? rankColumns[0];
1380
+ });
1381
+ };
1382
+
1383
+ // Return all levels
1384
+ return Array.from(levels.values()).reduce((acc, cur) => acc.set(cur, filterLevel(cur)), new Map());
1385
+ }
1386
+
1387
+ /**
1388
+ * @param {!Object} column
1389
+ * @param {boolean} reorderableColumns
1390
+ * @param {!Object} columnWidth
1391
+ * @param {number} defaultWidth
1392
+ * @return {!Object}
1393
+ */
1394
+ function generateColumn(column, reorderableColumns, columnWidth, defaultWidth) {
1395
+ if(typeof column.Rank !== 'number') {
1396
+ (0,_helpers__WEBPACK_IMPORTED_MODULE_4__.warn)(`column rank is missing, using 0 as fallback (column: ${column.Header ?? column['Property Path']})`);
1397
+ }
1398
+ const rank = column.Rank ?? 0;
1399
+ return {
1400
+ columnId: rank,
1401
+ reorderable: reorderableColumns,
1402
+ width: columnWidth?.[rank] ?? column.Width ?? defaultWidth ?? 150,
1403
+ resizable: column.Resizable,
1404
+ Level: column.Level ?? 0,
1405
+ ...column
1406
+ };
1407
+ }
1408
+
1409
+ /**
1410
+ * @param {!BrickContext} $
1411
+ * @param {number} targetColumnId
1412
+ * @param {!Array} columnIds
1413
+ */
1414
+ function handleOnColumnsReordered($, targetColumnId, columnIds) {
1415
+ const columns = getColumns($, 0);
1416
+ const ranks = columns.map(column => column.Rank);
1417
+ const targetIndex = ranks.indexOf(targetColumnId);
1418
+ const movingIndexes = columnIds.map(id => ranks.indexOf(id));
1419
+ const newRanks = (0,_helpers__WEBPACK_IMPORTED_MODULE_4__.reorderObject)(ranks, movingIndexes, targetIndex);
1420
+ const newOrder = newRanks.reduce((acc, cur, index) => ({ [cur]: index, ...acc }), {});
1421
+ $.set('_rgColumnOrder', newOrder);
1422
+ }
1423
+
1424
+ /**
1425
+ * @param {!Object} column
1426
+ * @param {!Object} overrides
1427
+ * @return {number}
1428
+ */
1429
+ function getColumnRank(column, overrides) {
1430
+ return overrides[column.Rank] ?? column.Rank;
1431
+ }
1432
+
1433
+
1434
+ /***/ }),
1435
+
1436
+ /***/ "./src/common/internal/data.js":
1437
+ /*!*************************************!*\
1438
+ !*** ./src/common/internal/data.js ***!
1439
+ \*************************************/
1440
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1441
+
1442
+ __webpack_require__.r(__webpack_exports__);
1443
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1444
+ /* harmony export */ initData: () => (/* binding */ initData)
1445
+ /* harmony export */ });
1446
+ /* harmony import */ var olympe__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! olympe */ "olympe");
1447
+ /* harmony import */ var olympe__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(olympe__WEBPACK_IMPORTED_MODULE_0__);
1448
+ /* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs */ "rxjs");
1449
+ /* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(rxjs__WEBPACK_IMPORTED_MODULE_1__);
1450
+ /* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./helpers */ "./src/common/internal/helpers.js");
1451
+ // Olympe
1452
+
1453
+
1454
+ // Rxjs
1455
+
1456
+
1457
+ // Internal
1458
+
1459
+
1460
+ /**
1461
+ * Init the internal data state, make sure it is an array
1462
+ * @param {!BrickContext} $
1463
+ * @param {!Observable} _reload
1464
+ * @return {!Observable}
1465
+ */
1466
+ function initData($, _reload) {
1467
+ // Listen to the data and for any refresh
1468
+ return (0,rxjs__WEBPACK_IMPORTED_MODULE_1__.combineLatest)([
1469
+ $.observe('Data', false),
1470
+ _reload
1471
+ ])
1472
+
1473
+ // Default values
1474
+ .pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_1__.map)(([data]) => data ? data : []))
1475
+
1476
+ // Transform to an array
1477
+ .pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_1__.map)(data => {
1478
+ // The data is already an array
1479
+ if (Array.isArray(data)) {
1480
+ return data;
1481
+ }
1482
+
1483
+ // QueryResult case
1484
+ if (data instanceof olympe__WEBPACK_IMPORTED_MODULE_0__.QueryResult) {
1485
+ return data.toArray();
1486
+ }
1487
+
1488
+ // JSON case
1489
+ if (typeof data === 'string') {
1490
+ const [json, error] = (0,_helpers__WEBPACK_IMPORTED_MODULE_2__.fromJson)(data);
1491
+ if (!error && Array.isArray(json)) {
1492
+ return json;
1493
+ }
1494
+ }
1495
+
1496
+ // Type is not supported
1497
+ (0,_helpers__WEBPACK_IMPORTED_MODULE_2__.warn)('the `Data` property is not convertible to an array');
1498
+ return [];
1499
+ }))
1500
+
1501
+ // Set the transformed data into _Data
1502
+ .pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_1__.tap)(data => $.set('_rgData', data)));
1503
+ }
1504
+
1505
+
1506
+
1507
+ /***/ }),
1508
+
1509
+ /***/ "./src/common/internal/helpers.js":
1510
+ /*!****************************************!*\
1511
+ !*** ./src/common/internal/helpers.js ***!
1512
+ \****************************************/
1513
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1514
+
1515
+ __webpack_require__.r(__webpack_exports__);
1516
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1517
+ /* harmony export */ error: () => (/* binding */ error),
1518
+ /* harmony export */ fromJson: () => (/* binding */ fromJson),
1519
+ /* harmony export */ reorderObject: () => (/* binding */ reorderObject),
1520
+ /* harmony export */ trimPath: () => (/* binding */ trimPath),
1521
+ /* harmony export */ validateEmail: () => (/* binding */ validateEmail),
1522
+ /* harmony export */ warn: () => (/* binding */ warn)
1523
+ /* harmony export */ });
1524
+ /* harmony import */ var _olympeio_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @olympeio/core */ "@olympeio/core");
1525
+ /* harmony import */ var _olympeio_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_olympeio_core__WEBPACK_IMPORTED_MODULE_0__);
1526
+ // Olympe
1527
+
1528
+
1529
+ /**
1530
+ * Parse a json string without throwing an exception
1531
+ * @param {string|!Object} json
1532
+ * @return {!Array}
1533
+ */
1534
+ function fromJson(json) {
1535
+ try {
1536
+ return typeof json === 'string'
1537
+ ? [JSON.parse(json), null]
1538
+ : [json ?? {}, null];
1539
+ }
1540
+ catch(err) {
1541
+ return [{}, err];
1542
+ }
1543
+ }
1544
+
1545
+ /**
1546
+ * Warn message with a default format
1547
+ * @param {string} message
1548
+ */
1549
+ function warn(message) {
1550
+ (0,_olympeio_core__WEBPACK_IMPORTED_MODULE_0__.getLogger)('ReactGrid').warn(`ReactGrid: ${message}`);
1551
+ }
1552
+
1553
+ /**
1554
+ * Error message with a default format
1555
+ * @param {string} message
1556
+ */
1557
+ function error(message) {
1558
+ (0,_olympeio_core__WEBPACK_IMPORTED_MODULE_0__.getLogger)('ReactGrid').error(`ReactGrid: ${message}`);
1559
+ }
1560
+
1561
+ /**
1562
+ * Make a jsonpath-plus path readable
1563
+ * @param {string} path
1564
+ * @return {string}
1565
+ */
1566
+ function trimPath(path) {
1567
+ if(path.startsWith('$') || path.startsWith('.')) {
1568
+ return trimPath(path.substring(1));
1569
+ }
1570
+ if(path.startsWith('[')) {
1571
+ return trimPath(path.substring(path.indexOf(']') + 1));
1572
+ }
1573
+ return path;
1574
+ }
1575
+
1576
+ /**
1577
+ * Test for email format
1578
+ * @param {string} text
1579
+ * @return {boolean}
1580
+ */
1581
+ function validateEmail(text) {
1582
+ return emailRegex.test(text);
1583
+ }
1584
+
1585
+ // Email regex (https://emailregex.com/)
1586
+ const emailRegex = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
1587
+
1588
+ /**
1589
+ * Reorders elements in an object by moving specific elements to a new position.
1590
+ *
1591
+ * @param {Array} values - The original array to reorder.
1592
+ * @param {number[]} ids - An array of indices representing the elements to move.
1593
+ * @param {number} to - The target index where the selected elements should be moved.
1594
+ * @return {Object} - A new object with the specified elements reordered.
1595
+ */
1596
+ function reorderObject(values, ids, to) {
1597
+ const reorderedValues = [...values];
1598
+
1599
+ // Get elements to move based on the ids
1600
+ const elementsToMove = ids.map(index => reorderedValues[index]);
1601
+ ids.sort((a, b) => b - a).forEach(index => {
1602
+ reorderedValues.splice(index, 1);
1603
+ });
1604
+
1605
+ // Adjust the target id based on moving forward or backward
1606
+ const adjustedTargetId = to >= Math.min(...ids) ? to - elementsToMove.length + 1 : to;
1607
+
1608
+ // Insert the elements in target id
1609
+ if (elementsToMove.length > 0) {
1610
+ reorderedValues.splice(adjustedTargetId, 0, ...elementsToMove);
1611
+ }
1612
+
1613
+ return reorderedValues;
1614
+ }
1615
+
1616
+
1617
+
1618
+ /***/ }),
1619
+
1620
+ /***/ "./src/common/internal/rows.js":
1621
+ /*!*************************************!*\
1622
+ !*** ./src/common/internal/rows.js ***!
1623
+ \*************************************/
1624
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1625
+
1626
+ __webpack_require__.r(__webpack_exports__);
1627
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1628
+ /* harmony export */ initRows: () => (/* binding */ initRows),
1629
+ /* harmony export */ useRows: () => (/* binding */ useRows)
1630
+ /* harmony export */ });
1631
+ /* harmony import */ var _olympeio_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @olympeio/core */ "@olympeio/core");
1632
+ /* harmony import */ var _olympeio_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_olympeio_core__WEBPACK_IMPORTED_MODULE_0__);
1633
+ /* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs */ "rxjs");
1634
+ /* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(rxjs__WEBPACK_IMPORTED_MODULE_1__);
1635
+ /* harmony import */ var _cells__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./cells */ "./src/common/internal/cells.js");
1636
+ /* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./helpers */ "./src/common/internal/helpers.js");
1637
+ /* harmony import */ var _columns__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./columns */ "./src/common/internal/columns.js");
1638
+ /* harmony import */ var _wrappers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./wrappers */ "./src/common/internal/wrappers.js");
1639
+ // Olympe
1640
+
1641
+
1642
+ // Rxjs
1643
+
1644
+
1645
+ // Internal
1646
+
1647
+
1648
+
1649
+
1650
+
1651
+ /**
1652
+ * Init the rows
1653
+ * @param {!BrickContext} $
1654
+ * @param {!Observable} _wrappers
1655
+ * @param {!Observable} _filteredColumns
1656
+ */
1657
+ function initRows($, _wrappers, _filteredColumns) {
1658
+ // Listen to the _data and the _columns
1659
+ (0,rxjs__WEBPACK_IMPORTED_MODULE_1__.combineLatest)([
1660
+ _wrappers,
1661
+ _filteredColumns
1662
+ .pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_1__.distinctUntilChanged)(undefined, filteredColumns => {
1663
+ // Avoid updating the rows for some changes on the column config: width, resizable, etc.
1664
+ return Array.from(filteredColumns.values())
1665
+ .flat()
1666
+ .map(c => `${c.Header}${c['Property Path']}${c.Type}${c.Options}${c.Rank}${c.Editable}${c.Level}`)
1667
+ .join('');
1668
+ })),
1669
+ $.observe('Row Height', false),
1670
+ $.observe('Cell Edition', false),
1671
+ $.observe('Disable Header Row', false),
1672
+ $.observe('Default Color', false),
1673
+ $.observe('Border Color', false),
1674
+ $.observe('Border Width', false)
1675
+ ])
1676
+
1677
+ // Use the reactgrid format for rows
1678
+ .pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_1__.map)(([_wrappers, _filteredColumns, rowHeight, cellEdition, removeHeaderRow]) => {
1679
+ // Optional header row
1680
+ const headerRow = removeHeaderRow ? [] : [{
1681
+ rowId: '_header',
1682
+ height: rowHeight,
1683
+ cells: (0,_columns__WEBPACK_IMPORTED_MODULE_4__.getColumns)($, 0).map(column => {
1684
+ const text = column.Header ?? (0,_helpers__WEBPACK_IMPORTED_MODULE_3__.trimPath)(column['Property Path'] ?? '');
1685
+ const finalText = column.Level === 0 ? text : '';
1686
+ return { type: 'header', text: finalText, style: (0,_cells__WEBPACK_IMPORTED_MODULE_2__.getCellStyle)($) };
1687
+ })
1688
+ }];
1689
+
1690
+ // Generate all the rows
1691
+ const rows = (0,_wrappers__WEBPACK_IMPORTED_MODULE_5__.getFlattenWrappers)($).map(({ wrapper, level }, index) => {
1692
+ const rowColumns = (0,_columns__WEBPACK_IMPORTED_MODULE_4__.getColumns)($, level);
1693
+ return generateRow(wrapper, rowColumns, index, $, rowHeight, cellEdition);
1694
+ });
1695
+
1696
+ // Final rows
1697
+ return [headerRow, rows].flat();
1698
+ }))
1699
+
1700
+ // Set the final rows
1701
+ .pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_1__.tap)(rows => $.set('_rgRows', rows)))
1702
+
1703
+ // Run
1704
+ .subscribe();
1705
+ }
1706
+
1707
+ /**
1708
+ * @param {!BrickContext}
1709
+ * @return {!*}
1710
+ */
1711
+ function useRows($) {
1712
+ return (0,_olympeio_core__WEBPACK_IMPORTED_MODULE_0__.useProperty)($, '_rgRows') ?? [];
1713
+ }
1714
+
1715
+ /**
1716
+ * @param {!RGWrapper} wrapper
1717
+ * @param {!Array} columns
1718
+ * @param {number} index
1719
+ * @param {!BrickContext} $
1720
+ * @param {number} rowHeight
1721
+ * @param {boolean} cellEdition
1722
+ * @return {!Object}
1723
+ */
1724
+ function generateRow(wrapper, columns, index, $, rowHeight, cellEdition) {
1725
+ return {
1726
+ rowId: index,
1727
+ height: rowHeight,
1728
+ cells: columns.map(column => (0,_cells__WEBPACK_IMPORTED_MODULE_2__.generateCell)($, wrapper, index, column, cellEdition))
1729
+ };
1730
+ }
1731
+
1732
+
1733
+ /***/ }),
1734
+
1735
+ /***/ "./src/common/internal/scroll.js":
1736
+ /*!***************************************!*\
1737
+ !*** ./src/common/internal/scroll.js ***!
1738
+ \***************************************/
1739
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1740
+
1741
+ __webpack_require__.r(__webpack_exports__);
1742
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1743
+ /* harmony export */ initScroll: () => (/* binding */ initScroll),
1744
+ /* harmony export */ useRedrawAfterScroll: () => (/* binding */ useRedrawAfterScroll)
1745
+ /* harmony export */ });
1746
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
1747
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
1748
+ /* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs */ "rxjs");
1749
+ /* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(rxjs__WEBPACK_IMPORTED_MODULE_1__);
1750
+ /* harmony import */ var _triggers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./triggers */ "./src/common/internal/triggers.js");
1751
+ // React
1752
+
1753
+
1754
+
1755
+ // Internal
1756
+
1757
+
1758
+ /**
1759
+ * @param {!BrickContext} $
1760
+ */
1761
+ function initScroll($) {
1762
+ // Auto-redraw on scroll (fix fast scrolling issue)
1763
+ $.set('_rgLastScroll', 0);
1764
+ $.set('_rgLastScrollRedraw', 0);
1765
+ (0,rxjs__WEBPACK_IMPORTED_MODULE_1__.interval)(1000)
1766
+ .pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_1__.tap)(() => {
1767
+ if($.get('_rgLastScroll') !== $.get('_rgLastScrollRedraw')) {
1768
+ $.set('_rgLastScrollRedraw', $.get('_rgLastScroll'));
1769
+ (0,_triggers__WEBPACK_IMPORTED_MODULE_2__.triggerRedraw)($);
1770
+ }
1771
+ }))
1772
+ .subscribe();
1773
+ }
1774
+
1775
+ /**
1776
+ * @param {!BrickContext} $
1777
+ * @param {!*} ref
1778
+ */
1779
+ function useRedrawAfterScroll($, ref) {
1780
+ const registerScroll = () => $.set('_rgLastScroll', Date.now());
1781
+ (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
1782
+ if (ref.current) {
1783
+ ref.current.parentElement.style.overflow = 'visible';
1784
+ ref.current.addEventListener('scroll', registerScroll);
1785
+ }
1786
+ return () => {
1787
+ if (ref.current) {
1788
+ ref.current.removeEventListener('scroll', registerScroll);
1789
+ }
1790
+ };
1791
+ }, [ref]);
1792
+ }
1793
+
1794
+
1795
+
1796
+ /***/ }),
1797
+
1798
+ /***/ "./src/common/internal/triggers.js":
1799
+ /*!*****************************************!*\
1800
+ !*** ./src/common/internal/triggers.js ***!
1801
+ \*****************************************/
1802
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1803
+
1804
+ __webpack_require__.r(__webpack_exports__);
1805
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1806
+ /* harmony export */ initTriggers: () => (/* binding */ initTriggers),
1807
+ /* harmony export */ triggerRedraw: () => (/* binding */ triggerRedraw),
1808
+ /* harmony export */ triggerReload: () => (/* binding */ triggerReload),
1809
+ /* harmony export */ useRedraw: () => (/* binding */ useRedraw)
1810
+ /* harmony export */ });
1811
+ /* harmony import */ var _olympeio_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @olympeio/core */ "@olympeio/core");
1812
+ /* harmony import */ var _olympeio_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_olympeio_core__WEBPACK_IMPORTED_MODULE_0__);
1813
+ // Olympe
1814
+
1815
+
1816
+ /**
1817
+ * @param {!BrickContext} $
1818
+ * @return {!Observable}
1819
+ */
1820
+ function initTriggers($) {
1821
+ return $.observe('Reload', false);
1822
+ }
1823
+
1824
+ /**
1825
+ * @param {!BrickContext} $
1826
+ */
1827
+ function useRedraw($) {
1828
+ (0,_olympeio_core__WEBPACK_IMPORTED_MODULE_0__.useProperty)($, 'Redraw');
1829
+ }
1830
+
1831
+ /**
1832
+ * @param {!BrickContext} $
1833
+ */
1834
+ function triggerRedraw($) {
1835
+ $.trigger('Redraw');
1836
+ }
1837
+
1838
+ /**
1839
+ * @param {!BrickContext} $
1840
+ */
1841
+ function triggerReload($) {
1842
+ $.trigger('Reload');
1843
+ }
1844
+
1845
+
1846
+
1847
+ /***/ }),
1848
+
1849
+ /***/ "./src/common/internal/wrappers.js":
1850
+ /*!*****************************************!*\
1851
+ !*** ./src/common/internal/wrappers.js ***!
1852
+ \*****************************************/
1853
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1854
+
1855
+ __webpack_require__.r(__webpack_exports__);
1856
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1857
+ /* harmony export */ RGWrapper: () => (/* binding */ RGWrapper),
1858
+ /* harmony export */ defaultWrap: () => (/* binding */ defaultWrap),
1859
+ /* harmony export */ getFlattenWrappers: () => (/* binding */ getFlattenWrappers),
1860
+ /* harmony export */ initWrappers: () => (/* binding */ initWrappers),
1861
+ /* harmony export */ rgWrap: () => (/* binding */ rgWrap)
1862
+ /* harmony export */ });
1863
+ /* harmony import */ var olympe__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! olympe */ "olympe");
1864
+ /* harmony import */ var olympe__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(olympe__WEBPACK_IMPORTED_MODULE_0__);
1865
+ /* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rxjs */ "rxjs");
1866
+ /* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(rxjs__WEBPACK_IMPORTED_MODULE_1__);
1867
+ /* harmony import */ var jsonpath_plus__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! jsonpath-plus */ "jsonpath-plus");
1868
+ /* harmony import */ var jsonpath_plus__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(jsonpath_plus__WEBPACK_IMPORTED_MODULE_2__);
1869
+ /* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./helpers */ "./src/common/internal/helpers.js");
1870
+ /* harmony import */ var _cloudobjects__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./cloudobjects */ "./src/common/internal/cloudobjects.js");
1871
+ /* harmony import */ var _cells__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./cells */ "./src/common/internal/cells.js");
1872
+ // Olympe
1873
+
1874
+
1875
+ // Rxjs
1876
+
1877
+
1878
+ // Json
1879
+
1880
+
1881
+ // Internal
1882
+
1883
+
1884
+
1885
+
1886
+ /**
1887
+ * @typedef RGWrapper
1888
+ * @property {!*} rgObject - The wrapped object
1889
+ * @property {!Array} rgChildren - Potential children of the object
1890
+ * @property {function():string} rgGetKey - Get a unique key
1891
+ * @property {string} _rgType - The type of the wrapped object
1892
+ * @property {number} _rgLevel - The level in the hierarchy
1893
+ * @property {function():!Array<string>} __rgProperties - Get all the properties name
1894
+ * @property {function(string):!*} __rgGetProperty - Get a property by its path
1895
+ * @property {function(string):!*} __rgGetValue - Get a value for a path
1896
+ * @property {function(string):!*} __rgGetObject - Get the object for a path
1897
+ */
1898
+ const RGWrapper = {};
1899
+
1900
+ /**
1901
+ * Init the internal data state, make sure it is an array
1902
+ * @param {!BrickContext} $
1903
+ * @param {!Observable} _data
1904
+ * @return {!Observable}
1905
+ */
1906
+ function initWrappers($, _data) {
1907
+ // Observe the data
1908
+ return _data
1909
+
1910
+ // Wrap all objects
1911
+ .pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_1__.map)(data => data.map(d => rgWrap(d))))
1912
+
1913
+ // Set the transformed data into _Data
1914
+ .pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_1__.tap)(wrappers => $.set('_rgWrappers', wrappers)));
1915
+ }
1916
+
1917
+ /**
1918
+ * @param {!*} object
1919
+ * @param {number=} level
1920
+ * @return {!RGWrapper}
1921
+ */
1922
+ function rgWrap(object, level) {
1923
+ // Already wrapped -> rewrap missing properties
1924
+ if(object.hasOwnProperty('rgObject')) {
1925
+ const missingProps = ['rgChildren', 'rgGetKey', '_rgType', '_rgLevel',
1926
+ '__rgProperties', '__rgGetProperty', '__rgGetValue',
1927
+ '__rgGetObject'].filter(prop => !object.hasOwnProperty(prop));
1928
+ if(missingProps.length > 0) {
1929
+ const wrapped = rgWrap(object.rgObject, level ?? 0);
1930
+ return missingProps.reduce((acc, cur) => {
1931
+ acc[cur] = wrapped[cur];
1932
+ return acc;
1933
+ }, object);
1934
+ }
1935
+ return object;
1936
+ }
1937
+
1938
+ // Tuple case
1939
+ if(Array.isArray(object)) {
1940
+ return wrapTuple(object, level ?? 0);
1941
+ }
1942
+
1943
+ // CloudObject case
1944
+ if(object instanceof olympe__WEBPACK_IMPORTED_MODULE_0__.CloudObject) {
1945
+ return wrapCloudObject(object, level ?? 0);
1946
+ }
1947
+
1948
+ // Object case
1949
+ if(typeof object === 'object') {
1950
+ return wrapObject(object, level ?? 0);
1951
+ }
1952
+
1953
+ // Wrong type
1954
+ (0,_helpers__WEBPACK_IMPORTED_MODULE_3__.warn)('some data are not of the following type: Object, CloudObject, Array');
1955
+ return defaultWrap(level ?? 0);
1956
+ }
1957
+
1958
+ /**
1959
+ * @param {!Object} object
1960
+ * @param {number} level
1961
+ * @return {!RGWrapper}
1962
+ */
1963
+ function wrapObject(object, level) {
1964
+ return {
1965
+ rgObject: object,
1966
+ rgChildren: [],
1967
+ rgGetKey: () => Object.values(object).join('.'),
1968
+ _rgType: 'object',
1969
+ _rgLevel: level,
1970
+ __rgProperties: () => Object.keys(object),
1971
+ __rgGetProperty: path => (0,_helpers__WEBPACK_IMPORTED_MODULE_3__.trimPath)(path),
1972
+ __rgGetValue: path => (0,jsonpath_plus__WEBPACK_IMPORTED_MODULE_2__.JSONPath)({ path, json: object, wrap: false }),
1973
+ __rgGetObject: () => object
1974
+ };
1975
+ }
1976
+
1977
+ /**
1978
+ * @param {!CloudObject} object
1979
+ * @param {number} level
1980
+ * @return {!RGWrapper}
1981
+ */
1982
+ function wrapCloudObject(object, level) {
1983
+ return {
1984
+ rgObject: object,
1985
+ rgChildren: [],
1986
+ rgGetKey: () => object.getTag(),
1987
+ _rgType: 'cloudobject',
1988
+ _rgLevel: level,
1989
+ __rgProperties: () => (0,_cloudobjects__WEBPACK_IMPORTED_MODULE_4__.getModelPropertiesName)(object),
1990
+ __rgGetProperty: path => (0,_cloudobjects__WEBPACK_IMPORTED_MODULE_4__.findObjectProperty)(object, path),
1991
+ __rgGetValue: path => object.get((0,_cloudobjects__WEBPACK_IMPORTED_MODULE_4__.findObjectProperty)(object, path)),
1992
+ __rgGetObject: () => object
1993
+ };
1994
+ }
1995
+
1996
+ /**
1997
+ * @param {!Array} object
1998
+ * @param {number} level
1999
+ * @return {!RGWrapper}
2000
+ */
2001
+ function wrapTuple(object, level) {
2002
+ const wrapped = object.map(o => rgWrap(o, level + 1));
2003
+ return {
2004
+ rgObject: object,
2005
+ rgChildren: [],
2006
+ rgGetKey: () => `[${wrapped.map(w => w.rgGetKey()).join('.')}]`,
2007
+ _rgType: 'tuple',
2008
+ _rgLevel: level,
2009
+ __rgProperties: () => wrapped.map((w, i) => w.__rgProperties().map(p => `$[${i}].${p}`)).flat(),
2010
+ __rgGetProperty: path => {
2011
+ const [index, subPath] = splitTuplePath(path);
2012
+ return wrapped[index].__rgGetProperty(subPath);
2013
+ },
2014
+ __rgGetValue: path => {
2015
+ const [index, subPath] = splitTuplePath(path);
2016
+ return wrapped[index].__rgGetValue(subPath);
2017
+ },
2018
+ __rgGetObject: path => {
2019
+ const [index, subPath] = splitTuplePath(path);
2020
+ return wrapped[index].__rgGetObject(subPath);
2021
+ }
2022
+ };
2023
+ }
2024
+
2025
+ /**
2026
+ * @param {number=} level
2027
+ * @return {!RGWrapper}
2028
+ */
2029
+ function defaultWrap(level) {
2030
+ return wrapObject({}, level ?? 0);
2031
+ }
2032
+
2033
+ /**
2034
+ * @param {string} path
2035
+ * @returns {![number, string]}
2036
+ */
2037
+ function splitTuplePath(path) {
2038
+ const endBracket = path.indexOf(']');
2039
+ const index = parseInt(path.substring(path.indexOf('[') + 1, endBracket));
2040
+ const subPath = (0,_helpers__WEBPACK_IMPORTED_MODULE_3__.trimPath)(path.substring(endBracket + 1));
2041
+ return [index, subPath];
2042
+ }
2043
+
2044
+ /**
2045
+ * @param {!BrickContext} $
2046
+ * @param {!Array} wrappers
2047
+ * @param {number} level
2048
+ * @return {!Array}
2049
+ */
2050
+ function flatten($, wrappers, level) {
2051
+ return wrappers.flatMap(wrapper => {
2052
+ const isExpanded = (0,_cells__WEBPACK_IMPORTED_MODULE_5__.isChevronCellExpanded)($, wrapper);
2053
+ const children = isExpanded ? flatten($, wrapper.rgChildren, level + 1) : [];
2054
+ return [{ wrapper, level }, ...children];
2055
+ });
2056
+ }
2057
+
2058
+ /**
2059
+ * @param {!BrickContext} $
2060
+ * @return {!Array}
2061
+ */
2062
+ function getFlattenWrappers($) {
2063
+ return flatten($, $.get('_rgWrappers'), 0);
2064
+ }
2065
+
2066
+
2067
+ /***/ }),
2068
+
2069
+ /***/ "@olympeio/core":
2070
+ /*!*********************************!*\
2071
+ !*** external "@olympeio/core" ***!
2072
+ \*********************************/
2073
+ /***/ ((module) => {
2074
+
2075
+ module.exports = require("@olympeio/core");
2076
+
2077
+ /***/ }),
2078
+
2079
+ /***/ "@silevis/reactgrid":
2080
+ /*!*************************************!*\
2081
+ !*** external "@silevis/reactgrid" ***!
2082
+ \*************************************/
2083
+ /***/ ((module) => {
2084
+
2085
+ module.exports = require("@silevis/reactgrid");
2086
+
2087
+ /***/ }),
2088
+
2089
+ /***/ "@silevis/reactgrid/styles.css":
2090
+ /*!************************************************!*\
2091
+ !*** external "@silevis/reactgrid/styles.css" ***!
2092
+ \************************************************/
2093
+ /***/ ((module) => {
2094
+
2095
+ module.exports = require("@silevis/reactgrid/styles.css");
2096
+
2097
+ /***/ }),
2098
+
2099
+ /***/ "jsonpath-plus":
2100
+ /*!********************************!*\
2101
+ !*** external "jsonpath-plus" ***!
2102
+ \********************************/
2103
+ /***/ ((module) => {
2104
+
2105
+ module.exports = require("jsonpath-plus");
2106
+
2107
+ /***/ }),
2108
+
2109
+ /***/ "react":
2110
+ /*!************************!*\
2111
+ !*** external "react" ***!
2112
+ \************************/
2113
+ /***/ ((module) => {
2114
+
2115
+ module.exports = require("react");
2116
+
2117
+ /***/ }),
2118
+
2119
+ /***/ "rxjs":
2120
+ /*!***********************!*\
2121
+ !*** external "rxjs" ***!
2122
+ \***********************/
2123
+ /***/ ((module) => {
2124
+
2125
+ module.exports = require("rxjs");
2126
+
2127
+ /***/ }),
2128
+
2129
+ /***/ "styled-jsx/style":
2130
+ /*!***********************************!*\
2131
+ !*** external "styled-jsx/style" ***!
2132
+ \***********************************/
2133
+ /***/ ((module) => {
2134
+
2135
+ module.exports = require("styled-jsx/style");
2136
+
2137
+ /***/ }),
2138
+
2139
+ /***/ "olympe":
2140
+ /*!*************************!*\
2141
+ !*** external "olympe" ***!
2142
+ \*************************/
2143
+ /***/ ((module) => {
2144
+
2145
+ module.exports = __WEBPACK_EXTERNAL_MODULE_olympe__;
2146
+
2147
+ /***/ })
2148
+
2149
+ /******/ });
2150
+ /************************************************************************/
2151
+ /******/ // The module cache
2152
+ /******/ var __webpack_module_cache__ = {};
2153
+ /******/
2154
+ /******/ // The require function
2155
+ /******/ function __webpack_require__(moduleId) {
2156
+ /******/ // Check if module is in cache
2157
+ /******/ var cachedModule = __webpack_module_cache__[moduleId];
2158
+ /******/ if (cachedModule !== undefined) {
2159
+ /******/ return cachedModule.exports;
2160
+ /******/ }
2161
+ /******/ // Create a new module (and put it into the cache)
2162
+ /******/ var module = __webpack_module_cache__[moduleId] = {
2163
+ /******/ // no module.id needed
2164
+ /******/ // no module.loaded needed
2165
+ /******/ exports: {}
2166
+ /******/ };
2167
+ /******/
2168
+ /******/ // Execute the module function
2169
+ /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
2170
+ /******/
2171
+ /******/ // Return the exports of the module
2172
+ /******/ return module.exports;
2173
+ /******/ }
2174
+ /******/
2175
+ /************************************************************************/
2176
+ /******/ /* webpack/runtime/compat get default export */
2177
+ /******/ (() => {
2178
+ /******/ // getDefaultExport function for compatibility with non-harmony modules
2179
+ /******/ __webpack_require__.n = (module) => {
2180
+ /******/ var getter = module && module.__esModule ?
2181
+ /******/ () => (module['default']) :
2182
+ /******/ () => (module);
2183
+ /******/ __webpack_require__.d(getter, { a: getter });
2184
+ /******/ return getter;
2185
+ /******/ };
2186
+ /******/ })();
2187
+ /******/
2188
+ /******/ /* webpack/runtime/define property getters */
2189
+ /******/ (() => {
2190
+ /******/ // define getter functions for harmony exports
2191
+ /******/ __webpack_require__.d = (exports, definition) => {
2192
+ /******/ for(var key in definition) {
2193
+ /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
2194
+ /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
2195
+ /******/ }
2196
+ /******/ }
2197
+ /******/ };
2198
+ /******/ })();
2199
+ /******/
2200
+ /******/ /* webpack/runtime/hasOwnProperty shorthand */
2201
+ /******/ (() => {
2202
+ /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
2203
+ /******/ })();
2204
+ /******/
2205
+ /******/ /* webpack/runtime/make namespace object */
2206
+ /******/ (() => {
2207
+ /******/ // define __esModule on exports
2208
+ /******/ __webpack_require__.r = (exports) => {
2209
+ /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
2210
+ /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2211
+ /******/ }
2212
+ /******/ Object.defineProperty(exports, '__esModule', { value: true });
2213
+ /******/ };
2214
+ /******/ })();
2215
+ /******/
2216
+ /************************************************************************/
2217
+ var __webpack_exports__ = {};
2218
+ /*!*************************!*\
2219
+ !*** ./src/main-web.js ***!
2220
+ \*************************/
2221
+ __webpack_require__.r(__webpack_exports__);
2222
+ /* harmony import */ var olympe__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! olympe */ "olympe");
2223
+ /* harmony import */ var olympe__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(olympe__WEBPACK_IMPORTED_MODULE_0__);
2224
+ /* harmony import */ var _common_helpers_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./common/helpers.js */ "./src/common/helpers.js");
2225
+ /* harmony import */ var _common_internal_box_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./common/internal/box.js */ "./src/common/internal/box.js");
2226
+ /* harmony import */ var _common_internal_cells_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./common/internal/cells.js */ "./src/common/internal/cells.js");
2227
+ /* harmony import */ var _common_internal_changes_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./common/internal/changes.js */ "./src/common/internal/changes.js");
2228
+ /* harmony import */ var _common_internal_cloudobjects_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./common/internal/cloudobjects.js */ "./src/common/internal/cloudobjects.js");
2229
+ /* harmony import */ var _common_internal_columns_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./common/internal/columns.js */ "./src/common/internal/columns.js");
2230
+ /* harmony import */ var _common_internal_data_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./common/internal/data.js */ "./src/common/internal/data.js");
2231
+ /* harmony import */ var _common_internal_helpers_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./common/internal/helpers.js */ "./src/common/internal/helpers.js");
2232
+ /* harmony import */ var _common_internal_rows_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./common/internal/rows.js */ "./src/common/internal/rows.js");
2233
+ /* harmony import */ var _common_internal_scroll_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./common/internal/scroll.js */ "./src/common/internal/scroll.js");
2234
+ /* harmony import */ var _common_internal_triggers_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./common/internal/triggers.js */ "./src/common/internal/triggers.js");
2235
+ /* harmony import */ var _common_internal_wrappers_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./common/internal/wrappers.js */ "./src/common/internal/wrappers.js");
2236
+ /* harmony import */ var _common_RGCreateColumnConfig_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./common/RGCreateColumnConfig.js */ "./src/common/RGCreateColumnConfig.js");
2237
+ /* harmony import */ var _common_RGGetChangeMetadata_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./common/RGGetChangeMetadata.js */ "./src/common/RGGetChangeMetadata.js");
2238
+ /* harmony import */ var _common_RGGetChangeProperties_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./common/RGGetChangeProperties.js */ "./src/common/RGGetChangeProperties.js");
2239
+ /* harmony import */ var _common_RGGroupTuplesByIndexes_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./common/RGGroupTuplesByIndexes.js */ "./src/common/RGGroupTuplesByIndexes.js");
2240
+ /* harmony import */ var _common_RGProcessChangesForCloudObjects_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./common/RGProcessChangesForCloudObjects.js */ "./src/common/RGProcessChangesForCloudObjects.js");
2241
+ /* harmony import */ var _common_RGProcessChangesForJSONString_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./common/RGProcessChangesForJSONString.js */ "./src/common/RGProcessChangesForJSONString.js");
2242
+ /* harmony import */ var _common_RGProcessChangesForObjects_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./common/RGProcessChangesForObjects.js */ "./src/common/RGProcessChangesForObjects.js");
2243
+ /* harmony import */ var _common_RGWrapObject_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./common/RGWrapObject.js */ "./src/common/RGWrapObject.js");
2244
+ /* harmony import */ var _web_RGReactGrid_jsx__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./web/RGReactGrid.jsx */ "./src/web/RGReactGrid.jsx");
2245
+ // Import Olympe runtime or DRAW
2246
+
2247
+
2248
+ // Import project bricks (we use webpack-import-glob-loader to import all bricks)
2249
+
2250
+ ;
2251
+
2252
+
2253
+
2254
+ /******/ return __webpack_exports__;
2255
+ /******/ })()
2256
+ ;
2257
+ });
2258
+ //# sourceMappingURL=main-web.js.map