@bigbinary/neeto-molecules 1.3.9 → 1.3.11

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 (119) hide show
  1. package/dist/NavigationHeader.js +6 -6
  2. package/dist/NavigationHeader.js.map +1 -1
  3. package/dist/PublishBlock.js +1 -1
  4. package/dist/PublishBlock.js.map +1 -1
  5. package/dist/cjs/Breadcrumbs.js +51 -0
  6. package/dist/cjs/Breadcrumbs.js.map +1 -0
  7. package/dist/cjs/BrowserSupport.js +426 -0
  8. package/dist/cjs/BrowserSupport.js.map +1 -0
  9. package/dist/cjs/Builder.js +712 -0
  10. package/dist/cjs/Builder.js.map +1 -0
  11. package/dist/cjs/CalendarView.js +549 -0
  12. package/dist/cjs/CalendarView.js.map +1 -0
  13. package/dist/cjs/Codeblock.js +251 -0
  14. package/dist/cjs/Codeblock.js.map +1 -0
  15. package/dist/cjs/Columns.js +248 -0
  16. package/dist/cjs/Columns.js.map +1 -0
  17. package/dist/cjs/ConfirmationModal.js +120 -0
  18. package/dist/cjs/ConfirmationModal.js.map +1 -0
  19. package/dist/cjs/Container.js +1218 -0
  20. package/dist/cjs/Container.js.map +1 -0
  21. package/dist/cjs/CopyToClipboardButton.js +215 -0
  22. package/dist/cjs/CopyToClipboardButton.js.map +1 -0
  23. package/dist/cjs/CustomDomain.js +743 -0
  24. package/dist/cjs/CustomDomain.js.map +1 -0
  25. package/dist/cjs/CustomDomainDashboard.js +2348 -0
  26. package/dist/cjs/CustomDomainDashboard.js.map +1 -0
  27. package/dist/cjs/DateFormat.js +53 -0
  28. package/dist/cjs/DateFormat.js.map +1 -0
  29. package/dist/cjs/DateRangeFilter.js +236 -0
  30. package/dist/cjs/DateRangeFilter.js.map +1 -0
  31. package/dist/cjs/DocumentEditor.js +283 -0
  32. package/dist/cjs/DocumentEditor.js.map +1 -0
  33. package/dist/cjs/DownloadMobileAppCallout.js +45 -0
  34. package/dist/cjs/DownloadMobileAppCallout.js.map +1 -0
  35. package/dist/cjs/DynamicVariables.js +189 -0
  36. package/dist/cjs/DynamicVariables.js.map +1 -0
  37. package/dist/cjs/EmailForm.js +2057 -0
  38. package/dist/cjs/EmailForm.js.map +1 -0
  39. package/dist/cjs/EmailPreview.js +1319 -0
  40. package/dist/cjs/EmailPreview.js.map +1 -0
  41. package/dist/cjs/ErrorPage.js +188 -0
  42. package/dist/cjs/ErrorPage.js.map +1 -0
  43. package/dist/cjs/Header.js +179 -0
  44. package/dist/cjs/Header.js.map +1 -0
  45. package/dist/cjs/IconPicker.js +324 -0
  46. package/dist/cjs/IconPicker.js.map +1 -0
  47. package/dist/cjs/ImageWithFallback.js +188 -0
  48. package/dist/cjs/ImageWithFallback.js.map +1 -0
  49. package/dist/cjs/InlineInput.js +734 -0
  50. package/dist/cjs/InlineInput.js.map +1 -0
  51. package/dist/cjs/IntegrationCard.js +400 -0
  52. package/dist/cjs/IntegrationCard.js.map +1 -0
  53. package/dist/cjs/IntegrationDisconnectAlert.js +89 -0
  54. package/dist/cjs/IntegrationDisconnectAlert.js.map +1 -0
  55. package/dist/cjs/IntegrationWalkthroughModal.js +50 -0
  56. package/dist/cjs/IntegrationWalkthroughModal.js.map +1 -0
  57. package/dist/cjs/IpRestriction.js +683 -0
  58. package/dist/cjs/IpRestriction.js.map +1 -0
  59. package/dist/cjs/KeyboardShortcuts.js +370 -0
  60. package/dist/cjs/KeyboardShortcuts.js.map +1 -0
  61. package/dist/cjs/LoginPage.js +620 -0
  62. package/dist/cjs/LoginPage.js.map +1 -0
  63. package/dist/cjs/MenuBar.js +1468 -0
  64. package/dist/cjs/MenuBar.js.map +1 -0
  65. package/dist/cjs/Metadata.js +215 -0
  66. package/dist/cjs/Metadata.js.map +1 -0
  67. package/dist/cjs/MoreDropdown.js +210 -0
  68. package/dist/cjs/MoreDropdown.js.map +1 -0
  69. package/dist/cjs/NavigationHeader.js +867 -0
  70. package/dist/cjs/NavigationHeader.js.map +1 -0
  71. package/dist/cjs/NeetoWidget.js +1078 -0
  72. package/dist/cjs/NeetoWidget.js.map +1 -0
  73. package/dist/cjs/PageLoader.js +159 -0
  74. package/dist/cjs/PageLoader.js.map +1 -0
  75. package/dist/cjs/PhoneNumber.js +492 -0
  76. package/dist/cjs/PhoneNumber.js.map +1 -0
  77. package/dist/cjs/PublishBlock.js +165 -0
  78. package/dist/cjs/PublishBlock.js.map +1 -0
  79. package/dist/cjs/PublishYourItem.js +1239 -0
  80. package/dist/cjs/PublishYourItem.js.map +1 -0
  81. package/dist/cjs/Rename.js +625 -0
  82. package/dist/cjs/Rename.js.map +1 -0
  83. package/dist/cjs/ResponsiveDevicePicker.js +200 -0
  84. package/dist/cjs/ResponsiveDevicePicker.js.map +1 -0
  85. package/dist/cjs/Schedule.js +1130 -0
  86. package/dist/cjs/Schedule.js.map +1 -0
  87. package/dist/cjs/Scrollable.js +129 -0
  88. package/dist/cjs/Scrollable.js.map +1 -0
  89. package/dist/cjs/Search.js +217 -0
  90. package/dist/cjs/Search.js.map +1 -0
  91. package/dist/cjs/Security.js +1930 -0
  92. package/dist/cjs/Security.js.map +1 -0
  93. package/dist/cjs/SendToFields.js +353 -0
  94. package/dist/cjs/SendToFields.js.map +1 -0
  95. package/dist/cjs/Settings.js +492 -0
  96. package/dist/cjs/Settings.js.map +1 -0
  97. package/dist/cjs/ShareViaEmail.js +2005 -0
  98. package/dist/cjs/ShareViaEmail.js.map +1 -0
  99. package/dist/cjs/ShareViaLink.js +729 -0
  100. package/dist/cjs/ShareViaLink.js.map +1 -0
  101. package/dist/cjs/Sidebar.js +930 -0
  102. package/dist/cjs/Sidebar.js.map +1 -0
  103. package/dist/cjs/SubHeader.js +224 -0
  104. package/dist/cjs/SubHeader.js.map +1 -0
  105. package/dist/cjs/SuffixedInput.js +216 -0
  106. package/dist/cjs/SuffixedInput.js.map +1 -0
  107. package/dist/cjs/TableWrapper.js +33 -0
  108. package/dist/cjs/TableWrapper.js.map +1 -0
  109. package/dist/cjs/Taxonomy.js +2125 -0
  110. package/dist/cjs/Taxonomy.js.map +1 -0
  111. package/dist/cjs/ThemeSidebar.js +2052 -0
  112. package/dist/cjs/ThemeSidebar.js.map +1 -0
  113. package/dist/cjs/TimeFormat.js +55 -0
  114. package/dist/cjs/TimeFormat.js.map +1 -0
  115. package/dist/cjs/TimezoneMismatchModal.js +176 -0
  116. package/dist/cjs/TimezoneMismatchModal.js.map +1 -0
  117. package/dist/cjs/ToggleFeatureCard.js +330 -0
  118. package/dist/cjs/ToggleFeatureCard.js.map +1 -0
  119. package/package.json +2 -1
@@ -0,0 +1,549 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var dayGridPlugin = require('@fullcalendar/daygrid');
5
+ var interactionPlugin = require('@fullcalendar/interaction');
6
+ var FullCalendar = require('@fullcalendar/react');
7
+ var timeGridPlugin = require('@fullcalendar/timegrid');
8
+ var dayjs = require('dayjs');
9
+ var neetoCist = require('@bigbinary/neeto-cist');
10
+ var neetoui = require('@bigbinary/neetoui');
11
+ var ramda = require('ramda');
12
+ var reactI18next = require('react-i18next');
13
+ var classnames = require('classnames');
14
+ var neetoIcons = require('@bigbinary/neeto-icons');
15
+ var ManageColumns = require('@bigbinary/neeto-molecules/Columns');
16
+ var neetoFiltersFrontend = require('@bigbinary/neeto-filters-frontend');
17
+ var i18next = require('i18next');
18
+
19
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
20
+
21
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
22
+ var dayGridPlugin__default = /*#__PURE__*/_interopDefaultLegacy(dayGridPlugin);
23
+ var interactionPlugin__default = /*#__PURE__*/_interopDefaultLegacy(interactionPlugin);
24
+ var FullCalendar__default = /*#__PURE__*/_interopDefaultLegacy(FullCalendar);
25
+ var timeGridPlugin__default = /*#__PURE__*/_interopDefaultLegacy(timeGridPlugin);
26
+ var dayjs__default = /*#__PURE__*/_interopDefaultLegacy(dayjs);
27
+ var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
28
+ var ManageColumns__default = /*#__PURE__*/_interopDefaultLegacy(ManageColumns);
29
+
30
+ function _extends() {
31
+ _extends = Object.assign ? Object.assign.bind() : function (target) {
32
+ for (var i = 1; i < arguments.length; i++) {
33
+ var source = arguments[i];
34
+ for (var key in source) {
35
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
36
+ target[key] = source[key];
37
+ }
38
+ }
39
+ }
40
+ return target;
41
+ };
42
+ return _extends.apply(this, arguments);
43
+ }
44
+
45
+ function _typeof(o) {
46
+ "@babel/helpers - typeof";
47
+
48
+ return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
49
+ return typeof o;
50
+ } : function (o) {
51
+ return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
52
+ }, _typeof(o);
53
+ }
54
+
55
+ function _toPrimitive(input, hint) {
56
+ if (_typeof(input) !== "object" || input === null) return input;
57
+ var prim = input[Symbol.toPrimitive];
58
+ if (prim !== undefined) {
59
+ var res = prim.call(input, hint || "default");
60
+ if (_typeof(res) !== "object") return res;
61
+ throw new TypeError("@@toPrimitive must return a primitive value.");
62
+ }
63
+ return (hint === "string" ? String : Number)(input);
64
+ }
65
+
66
+ function _toPropertyKey(arg) {
67
+ var key = _toPrimitive(arg, "string");
68
+ return _typeof(key) === "symbol" ? key : String(key);
69
+ }
70
+
71
+ function _defineProperty(obj, key, value) {
72
+ key = _toPropertyKey(key);
73
+ if (key in obj) {
74
+ Object.defineProperty(obj, key, {
75
+ value: value,
76
+ enumerable: true,
77
+ configurable: true,
78
+ writable: true
79
+ });
80
+ } else {
81
+ obj[key] = value;
82
+ }
83
+ return obj;
84
+ }
85
+
86
+ function _arrayWithHoles(arr) {
87
+ if (Array.isArray(arr)) return arr;
88
+ }
89
+
90
+ function _iterableToArrayLimit(r, l) {
91
+ var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
92
+ if (null != t) {
93
+ var e,
94
+ n,
95
+ i,
96
+ u,
97
+ a = [],
98
+ f = !0,
99
+ o = !1;
100
+ try {
101
+ if (i = (t = t.call(r)).next, 0 === l) {
102
+ if (Object(t) !== t) return;
103
+ f = !1;
104
+ } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
105
+ } catch (r) {
106
+ o = !0, n = r;
107
+ } finally {
108
+ try {
109
+ if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return;
110
+ } finally {
111
+ if (o) throw n;
112
+ }
113
+ }
114
+ return a;
115
+ }
116
+ }
117
+
118
+ function _arrayLikeToArray(arr, len) {
119
+ if (len == null || len > arr.length) len = arr.length;
120
+ for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
121
+ return arr2;
122
+ }
123
+
124
+ function _unsupportedIterableToArray(o, minLen) {
125
+ if (!o) return;
126
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
127
+ var n = Object.prototype.toString.call(o).slice(8, -1);
128
+ if (n === "Object" && o.constructor) n = o.constructor.name;
129
+ if (n === "Map" || n === "Set") return Array.from(o);
130
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
131
+ }
132
+
133
+ function _nonIterableRest() {
134
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
135
+ }
136
+
137
+ function _slicedToArray(arr, i) {
138
+ return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
139
+ }
140
+
141
+ function _objectWithoutPropertiesLoose(source, excluded) {
142
+ if (source == null) return {};
143
+ var target = {};
144
+ var sourceKeys = Object.keys(source);
145
+ var key, i;
146
+ for (i = 0; i < sourceKeys.length; i++) {
147
+ key = sourceKeys[i];
148
+ if (excluded.indexOf(key) >= 0) continue;
149
+ target[key] = source[key];
150
+ }
151
+ return target;
152
+ }
153
+
154
+ function _objectWithoutProperties(source, excluded) {
155
+ if (source == null) return {};
156
+ var target = _objectWithoutPropertiesLoose(source, excluded);
157
+ var key, i;
158
+ if (Object.getOwnPropertySymbols) {
159
+ var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
160
+ for (i = 0; i < sourceSymbolKeys.length; i++) {
161
+ key = sourceSymbolKeys[i];
162
+ if (excluded.indexOf(key) >= 0) continue;
163
+ if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
164
+ target[key] = source[key];
165
+ }
166
+ }
167
+ return target;
168
+ }
169
+
170
+ var _excluded$3 = ["buttonProps"];
171
+ function ownKeys$3(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
172
+ function _objectSpread$3(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$3(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$3(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
173
+ var Columns = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
174
+ var _ref$buttonProps = _ref.buttonProps,
175
+ buttonProps = _ref$buttonProps === void 0 ? {} : _ref$buttonProps,
176
+ props = _objectWithoutProperties(_ref, _excluded$3);
177
+ var _useTranslation = reactI18next.useTranslation(),
178
+ t = _useTranslation.t;
179
+ return /*#__PURE__*/React__default["default"].createElement("div", {
180
+ className: "neeto-molecules-subheader__columns"
181
+ }, /*#__PURE__*/React__default["default"].createElement(ManageColumns__default["default"], _extends({
182
+ buttonProps: _objectSpread$3({
183
+ icon: neetoIcons.Column,
184
+ label: null,
185
+ tooltipProps: {
186
+ content: t("neetoMolecules.columns.columns"),
187
+ position: "bottom"
188
+ },
189
+ "data-testid": "columns-button",
190
+ "data-cy": "columns-dropdown-button"
191
+ }, buttonProps)
192
+ }, _objectSpread$3(_objectSpread$3({}, props), {}, {
193
+ ref: ref
194
+ }))));
195
+ });
196
+ Columns.displayName = "Columns";
197
+
198
+ var DownloadButton = function DownloadButton(_ref) {
199
+ var count = _ref.count,
200
+ onClick = _ref.onClick,
201
+ _ref$dataCy = _ref["data-cy"],
202
+ dataCy = _ref$dataCy === void 0 ? "download-button" : _ref$dataCy;
203
+ var _useTranslation = reactI18next.useTranslation(),
204
+ t = _useTranslation.t;
205
+ return /*#__PURE__*/React__default["default"].createElement("div", {
206
+ className: "neeto-molecules-subheader__download"
207
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
208
+ "data-cy": dataCy,
209
+ "data-testid": "download-button",
210
+ icon: neetoIcons.Download,
211
+ style: "text",
212
+ tooltipProps: {
213
+ content: t("neetoMolecules.common.download"),
214
+ position: "bottom"
215
+ },
216
+ onClick: onClick
217
+ }), count && /*#__PURE__*/React__default["default"].createElement("span", {
218
+ className: "neeto-molecules-subheader__download-count"
219
+ }, count));
220
+ };
221
+
222
+ var _excluded$2 = ["buttonProps"];
223
+ function ownKeys$2(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
224
+ function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
225
+ var FilterButton = function FilterButton(_ref) {
226
+ var buttonProps = _ref.buttonProps,
227
+ props = _objectWithoutProperties(_ref, _excluded$2);
228
+ var _useTranslation = reactI18next.useTranslation(),
229
+ t = _useTranslation.t;
230
+ return /*#__PURE__*/React__default["default"].createElement("div", {
231
+ className: "neeto-molecules-subheader__filter"
232
+ }, /*#__PURE__*/React__default["default"].createElement(neetoFiltersFrontend.Filters, _extends({
233
+ buttonProps: _objectSpread$2({
234
+ "data-testid": "filter-button",
235
+ icon: neetoIcons.Filter,
236
+ style: "text",
237
+ tooltipProps: {
238
+ content: t("neetoMolecules.common.filter"),
239
+ position: "bottom"
240
+ },
241
+ label: null
242
+ }, buttonProps)
243
+ }, props)));
244
+ };
245
+
246
+ var RightBlock = function RightBlock(_ref) {
247
+ var downloadButtonProps = _ref.downloadButtonProps,
248
+ columnsButtonProps = _ref.columnsButtonProps,
249
+ filterProps = _ref.filterProps,
250
+ dataProps = _ref.dataProps;
251
+ var showIcons = neetoCist.isNotPresent(dataProps === null || dataProps === void 0 ? void 0 : dataProps.totalCount) ? true : (dataProps === null || dataProps === void 0 ? void 0 : dataProps.totalCount) > 0;
252
+ return /*#__PURE__*/React__default["default"].createElement("div", {
253
+ "data-testid": "subheader-rightblock-buttons-container",
254
+ className: classnames__default["default"]("neeto-molecules-subheader__right-actions", {
255
+ hidden: ramda.not(showIcons)
256
+ })
257
+ }, downloadButtonProps && /*#__PURE__*/React__default["default"].createElement(DownloadButton, downloadButtonProps), columnsButtonProps && /*#__PURE__*/React__default["default"].createElement(Columns, columnsButtonProps), filterProps && /*#__PURE__*/React__default["default"].createElement(FilterButton, filterProps));
258
+ };
259
+
260
+ var e=[],t=[];function n(n,r){if(n&&"undefined"!=typeof document){var a,s=!0===r.prepend?"prepend":"append",d=!0===r.singleTag,i="string"==typeof r.container?document.querySelector(r.container):document.getElementsByTagName("head")[0];if(d){var u=e.indexOf(i);-1===u&&(u=e.push(i)-1,t[u]={}),a=t[u]&&t[u][s]?t[u][s]:t[u][s]=c();}else a=c();65279===n.charCodeAt(0)&&(n=n.substring(1)),a.styleSheet?a.styleSheet.cssText+=n:a.appendChild(document.createTextNode(n));}function c(){var e=document.createElement("style");if(e.setAttribute("type","text/css"),r.attributes)for(var t=Object.keys(r.attributes),n=0;n<t.length;n++)e.setAttribute(t[n],r.attributes[t[n]]);var a="prepend"===s?"afterbegin":"beforeend";return i.insertAdjacentElement(a,e),e}}
261
+
262
+ var css = ":root{--neeto-molecules-sub-header-height:37px;--neeto-molecules-sub-header-bottom-margin:20px}.neeto-molecules-subheader{align-items:center;background-color:rgb(var(--neeto-ui-white));display:flex;flex-direction:row;flex-shrink:0;gap:16px;justify-content:space-between;margin-bottom:20px;margin-bottom:var(--neeto-molecules-sub-header-bottom-margin);min-height:37px;min-height:var(--neeto-molecules-sub-header-height);width:100%}@media screen and (max-width:768px){.neeto-molecules-subheader{flex-wrap:wrap}}.neeto-molecules-subheader .neeto-molecules-subheader__left-wrapper{display:flex;flex-grow:1}.neeto-molecules-subheader .neeto-molecules-subheader__left-wrapper .neeto-molecules-subheader__left{align-items:center;display:flex;flex-direction:row;justify-content:flex-start}.neeto-molecules-subheader .neeto-molecules-subheader__left-wrapper .neeto-molecules-subheader__left .neeto-molecules-input__prefix{color:rgb(var(--neeto-ui-gray-400))}@media screen and (max-width:360px){.neeto-molecules-subheader .neeto-molecules-subheader__left-wrapper .neeto-molecules-subheader__left h4{font-size:14px}}.neeto-molecules-subheader .neeto-molecules-subheader__left-wrapper .neeto-ui-btn{flex-shrink:0}.neeto-molecules-subheader .neeto-molecules-subheader__right{align-items:center;display:flex;flex-direction:row;gap:12px;justify-content:flex-end}@media screen and (max-width:768px){.neeto-molecules-subheader .neeto-molecules-subheader__right{margin-left:auto}}.neeto-molecules-subheader .neeto-molecules-subheader__right-actions{align-items:center;display:flex;flex-direction:row;gap:8px;justify-content:flex-end}.neeto-molecules-subheader .neeto-molecules-subheader__right-actions>:not([hidden])~:not([hidden]){border-left:thin solid rgb(var(--neeto-ui-gray-300));padding-left:8px}.neeto-molecules-subheader__download{position:relative}.neeto-molecules-subheader__download-count{align-items:center;background-color:rgb(var(--neeto-ui-primary-500));border-radius:var(--neeto-ui-rounded-full);color:rgb(var(--neeto-ui-white));display:inline-flex;font-size:10px;justify-content:center;min-height:16px;min-width:16px;position:absolute;right:-2px;text-align:center;top:-2px;z-index:1}.neeto-molecules-subheader__columns .neeto-ui-dropdown__popup{max-height:calc(100vh - var(--neeto-molecules-main-header-with-breadcrumbs-height) - 57px);max-height:calc(100vh - var(--neeto-molecules-main-header-with-breadcrumbs-height) - var(--neeto-molecules-sub-header-height) - var(--neeto-molecules-sub-header-bottom-margin))}";
263
+ n(css,{});
264
+
265
+ var SubHeader = function SubHeader(_ref) {
266
+ var _ref$className = _ref.className,
267
+ className = _ref$className === void 0 ? "" : _ref$className,
268
+ leftActionBlock = _ref.leftActionBlock,
269
+ rightActionBlock = _ref.rightActionBlock,
270
+ _ref$dataCy = _ref["data-cy"],
271
+ dataCy = _ref$dataCy === void 0 ? "subheader" : _ref$dataCy;
272
+ return /*#__PURE__*/React__default["default"].createElement("div", {
273
+ className: classnames__default["default"](["neeto-molecules-subheader", className]),
274
+ "data-cy": dataCy,
275
+ "data-testid": "subheader"
276
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
277
+ className: "neeto-molecules-subheader__left-wrapper",
278
+ "data-cy": "subheader-left-wrapper"
279
+ }, leftActionBlock && /*#__PURE__*/React__default["default"].createElement("div", {
280
+ className: "neeto-molecules-subheader__left",
281
+ "data-cy": "subheader-left"
282
+ }, leftActionBlock)), rightActionBlock && /*#__PURE__*/React__default["default"].createElement("div", {
283
+ className: "neeto-molecules-subheader__right",
284
+ "data-cy": "subheader-right"
285
+ }, rightActionBlock));
286
+ };
287
+ SubHeader.RightBlock = RightBlock;
288
+
289
+ var WEEKLY_VIEW = i18next.t("neetoMolecules.calendarView.weekly");
290
+ var MONTHLY_VIEW = i18next.t("neetoMolecules.calendarView.monthly");
291
+ var DAILY_VIEW = i18next.t("neetoMolecules.calendarView.daily");
292
+ var VIEW_OPTIONS = _defineProperty(_defineProperty(_defineProperty({}, DAILY_VIEW, {
293
+ label: DAILY_VIEW,
294
+ fullCalendarView: "timeGridDay",
295
+ picker: "day"
296
+ }), WEEKLY_VIEW, {
297
+ label: WEEKLY_VIEW,
298
+ fullCalendarView: "timeGridWeek",
299
+ picker: "week"
300
+ }), MONTHLY_VIEW, {
301
+ label: MONTHLY_VIEW,
302
+ fullCalendarView: "dayGridMonth",
303
+ picker: "month"
304
+ });
305
+
306
+ var getWeekString = function getWeekString(_ref) {
307
+ var date = _ref.date,
308
+ _ref$isStartOfWeek = _ref.isStartOfWeek,
309
+ isStartOfWeek = _ref$isStartOfWeek === void 0 ? true : _ref$isStartOfWeek,
310
+ _ref$showMonth = _ref.showMonth,
311
+ showMonth = _ref$showMonth === void 0 ? false : _ref$showMonth,
312
+ _ref$showYear = _ref.showYear,
313
+ showYear = _ref$showYear === void 0 ? false : _ref$showYear;
314
+ return "".concat(showMonth || isStartOfWeek ? date.format("MMM") : "", " ").concat(date.date(), " ").concat(showYear || !isStartOfWeek ? date.format("YYYY") : "");
315
+ };
316
+ var getStartOfWeek = function getStartOfWeek(date) {
317
+ return dayjs__default["default"](date).startOf("week");
318
+ };
319
+ var getEndOfWeek = function getEndOfWeek(date) {
320
+ return dayjs__default["default"](date).endOf("week");
321
+ };
322
+ var getFormattedMonthStr = function getFormattedMonthStr(date) {
323
+ return date.format("MMM YYYY");
324
+ };
325
+ var getFormattedWeekRangeStr = function getFormattedWeekRangeStr(date) {
326
+ var startOfWeek = getStartOfWeek(date);
327
+ var endOfWeek = getEndOfWeek(date);
328
+ var shouldShowMonthsSeparately = startOfWeek.month() !== endOfWeek.month();
329
+ var shouldShowYearsSeparately = startOfWeek.year() !== endOfWeek.year();
330
+ var startOfWeekStr = getWeekString({
331
+ date: startOfWeek,
332
+ showMonth: shouldShowMonthsSeparately,
333
+ showYear: shouldShowYearsSeparately
334
+ });
335
+ var endOfWeekStr = getWeekString({
336
+ date: endOfWeek,
337
+ isStartOfWeek: false,
338
+ showMonth: shouldShowMonthsSeparately,
339
+ showYear: shouldShowYearsSeparately
340
+ });
341
+ return "".concat(startOfWeekStr, " - ").concat(endOfWeekStr);
342
+ };
343
+ var getFormattedDayStr = function getFormattedDayStr(date) {
344
+ return date.format("DD MMM YYYY");
345
+ };
346
+ var getFormattedRangeStr = function getFormattedRangeStr(date, picker) {
347
+ var formatFunctions = {
348
+ month: getFormattedMonthStr,
349
+ week: getFormattedWeekRangeStr,
350
+ day: getFormattedDayStr
351
+ };
352
+ var selectedFormatter = formatFunctions[picker];
353
+ return selectedFormatter(date);
354
+ };
355
+
356
+ var _excluded$1 = ["selectedDate", "setSelectedDate", "picker"];
357
+ function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
358
+ function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
359
+ var CustomDatePicker = function CustomDatePicker(_ref) {
360
+ var selectedDate = _ref.selectedDate,
361
+ setSelectedDate = _ref.setSelectedDate,
362
+ picker = _ref.picker,
363
+ otherProps = _objectWithoutProperties(_ref, _excluded$1);
364
+ var _useState = React.useState(false),
365
+ _useState2 = _slicedToArray(_useState, 2),
366
+ isOpen = _useState2[0],
367
+ setIsOpen = _useState2[1];
368
+ var datePickerRef = React.useRef(null);
369
+ var buttonRef = React.useRef(null);
370
+ var selectedRangeStr = getFormattedRangeStr(selectedDate, picker);
371
+ var onPrevious = function onPrevious() {
372
+ return setSelectedDate(function (selectedDate) {
373
+ return selectedDate.subtract(1, picker);
374
+ });
375
+ };
376
+ var onNext = function onNext() {
377
+ return setSelectedDate(function (selectedDate) {
378
+ return selectedDate.add(1, picker);
379
+ });
380
+ };
381
+ var onToday = function onToday() {
382
+ return setSelectedDate(dayjs__default["default"]());
383
+ };
384
+ var handleButtonMouseDown = function handleButtonMouseDown(e) {
385
+ if (!(buttonRef.current && buttonRef.current.contains(e.target))) return;
386
+ e.stopPropagation();
387
+ if (isOpen) datePickerRef.current.focus();
388
+ };
389
+ return /*#__PURE__*/React__default["default"].createElement("div", {
390
+ className: "flex items-center justify-start space-x-4"
391
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
392
+ "data-cy": "neeto-molecules-calendar-view-today-button",
393
+ label: "Today",
394
+ style: "secondary",
395
+ onClick: onToday
396
+ }), /*#__PURE__*/React__default["default"].createElement("div", {
397
+ className: "flex"
398
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
399
+ className: "mr-1",
400
+ "data-cy": "neeto-molecules-calendar-view-previous-button",
401
+ icon: neetoIcons.Left,
402
+ style: "text",
403
+ onClick: onPrevious
404
+ }), /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
405
+ icon: neetoIcons.Down,
406
+ ref: buttonRef,
407
+ style: "text",
408
+ onClick: function onClick() {
409
+ return setIsOpen(function (isOpen) {
410
+ return !isOpen;
411
+ });
412
+ },
413
+ onMouseDown: handleButtonMouseDown
414
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
415
+ style: "h5"
416
+ }, selectedRangeStr)), /*#__PURE__*/React__default["default"].createElement(neetoui.DatePicker, _extends({
417
+ className: "invisible w-0 px-0",
418
+ defaultValue: selectedDate,
419
+ open: isOpen,
420
+ placement: "topRight",
421
+ ref: datePickerRef,
422
+ value: selectedDate,
423
+ onChange: setSelectedDate,
424
+ onOpenChange: setIsOpen
425
+ }, _objectSpread$1({
426
+ picker: picker
427
+ }, otherProps))), /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
428
+ className: "ml-1",
429
+ "data-cy": "neeto-molecules-calendar-view-next-button",
430
+ icon: neetoIcons.Right,
431
+ style: "text",
432
+ onClick: onNext
433
+ })));
434
+ };
435
+
436
+ var Header = function Header(_ref) {
437
+ var calendarRef = _ref.calendarRef,
438
+ selectedView = _ref.selectedView,
439
+ setSelectedView = _ref.setSelectedView,
440
+ setSelectedDate = _ref.setSelectedDate,
441
+ selectedDate = _ref.selectedDate,
442
+ calendarViewOptions = _ref.calendarViewOptions;
443
+ var Menu = neetoui.Dropdown.Menu,
444
+ MenuItem = neetoui.Dropdown.MenuItem;
445
+ var handleViewSelection = function handleViewSelection(option) {
446
+ setSelectedView(option);
447
+ calendarRef.current.calendar.changeView(option.fullCalendarView);
448
+ };
449
+ var navigateToSelectedDate = function navigateToSelectedDate() {
450
+ var _calendarRef$current, _calendarRef$current$;
451
+ return calendarRef === null || calendarRef === void 0 ? void 0 : (_calendarRef$current = calendarRef.current) === null || _calendarRef$current === void 0 ? void 0 : (_calendarRef$current$ = _calendarRef$current.calendar) === null || _calendarRef$current$ === void 0 ? void 0 : _calendarRef$current$.gotoDate(selectedDate.format("YYYY-MM-DD"));
452
+ };
453
+ React.useEffect(function () {
454
+ setTimeout(navigateToSelectedDate);
455
+ }, [selectedDate]);
456
+ return /*#__PURE__*/React__default["default"].createElement("div", {
457
+ className: "flex space-x-4"
458
+ }, /*#__PURE__*/React__default["default"].createElement(CustomDatePicker, {
459
+ getPopupContainer: ramda.prop("parentNode"),
460
+ picker: selectedView.picker,
461
+ selectedDate: selectedDate,
462
+ setSelectedDate: setSelectedDate
463
+ }), Object.keys(calendarViewOptions).length > 1 && /*#__PURE__*/React__default["default"].createElement(neetoui.Dropdown, {
464
+ buttonProps: {
465
+ "data-testid": "calendar-view-dropdown"
466
+ },
467
+ buttonStyle: "secondary",
468
+ label: neetoCist.capitalize(selectedView.label)
469
+ }, /*#__PURE__*/React__default["default"].createElement(Menu, null, ramda.values(calendarViewOptions).map(function (option, idx) {
470
+ return /*#__PURE__*/React__default["default"].createElement(MenuItem.Button, {
471
+ isActive: selectedView === option,
472
+ key: idx,
473
+ onClick: function onClick() {
474
+ return handleViewSelection(option);
475
+ }
476
+ }, neetoCist.capitalize(option.label));
477
+ }))));
478
+ };
479
+
480
+ var _excluded = ["viewOptions", "events", "handleDateClick", "handleEventClick", "eventClassNames", "dayCellClassNames", "dayMaxEvents", "eventMaxStack"];
481
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
482
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
483
+ var CalendarView = function CalendarView(_ref) {
484
+ var _ref$viewOptions = _ref.viewOptions,
485
+ viewOptions = _ref$viewOptions === void 0 ? VIEW_OPTIONS : _ref$viewOptions,
486
+ _ref$events = _ref.events,
487
+ events = _ref$events === void 0 ? [] : _ref$events,
488
+ _ref$handleDateClick = _ref.handleDateClick,
489
+ handleDateClick = _ref$handleDateClick === void 0 ? neetoCist.noop : _ref$handleDateClick,
490
+ _ref$handleEventClick = _ref.handleEventClick,
491
+ handleEventClick = _ref$handleEventClick === void 0 ? neetoCist.noop : _ref$handleEventClick,
492
+ _ref$eventClassNames = _ref.eventClassNames,
493
+ eventClassNames = _ref$eventClassNames === void 0 ? "" : _ref$eventClassNames,
494
+ _ref$dayCellClassName = _ref.dayCellClassNames,
495
+ dayCellClassNames = _ref$dayCellClassName === void 0 ? "" : _ref$dayCellClassName,
496
+ dayMaxEvents = _ref.dayMaxEvents,
497
+ eventMaxStack = _ref.eventMaxStack,
498
+ otherProps = _objectWithoutProperties(_ref, _excluded);
499
+ var calendarViewOptions = viewOptions || VIEW_OPTIONS;
500
+ var defaultView = Object.values(calendarViewOptions).find(ramda.prop("default")) || calendarViewOptions[Object.keys(calendarViewOptions)[0]];
501
+ var _useState = React.useState(defaultView),
502
+ _useState2 = _slicedToArray(_useState, 2),
503
+ selectedView = _useState2[0],
504
+ setSelectedView = _useState2[1];
505
+ var _useState3 = React.useState(dayjs__default["default"]()),
506
+ _useState4 = _slicedToArray(_useState3, 2),
507
+ selectedDate = _useState4[0],
508
+ setSelectedDate = _useState4[1];
509
+ var _useTranslation = reactI18next.useTranslation(),
510
+ t = _useTranslation.t;
511
+ var calendarRef = React.useRef();
512
+ return /*#__PURE__*/React__default["default"].createElement("div", {
513
+ className: "flex-col",
514
+ "data-testid": "calendar-view"
515
+ }, /*#__PURE__*/React__default["default"].createElement(SubHeader, {
516
+ leftActionBlock: /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
517
+ style: "h2"
518
+ }, selectedDate.format("MMMM, YYYY")),
519
+ rightActionBlock: /*#__PURE__*/React__default["default"].createElement(Header, {
520
+ calendarRef: calendarRef,
521
+ calendarViewOptions: calendarViewOptions,
522
+ selectedDate: selectedDate,
523
+ selectedView: selectedView,
524
+ setSelectedDate: setSelectedDate,
525
+ setSelectedView: setSelectedView
526
+ })
527
+ }), /*#__PURE__*/React__default["default"].createElement(FullCalendar__default["default"], _extends({
528
+ expandRows: true,
529
+ allDayText: t("neetoMolecules.calendarView.allDay"),
530
+ dateClick: handleDateClick,
531
+ dayHeaderClassNames: "p-2",
532
+ displayEventTime: false,
533
+ eventClick: handleEventClick,
534
+ headerToolbar: false,
535
+ height: "auto",
536
+ initialView: selectedView.fullCalendarView,
537
+ plugins: [dayGridPlugin__default["default"], timeGridPlugin__default["default"], interactionPlugin__default["default"]],
538
+ ref: calendarRef
539
+ }, _objectSpread({
540
+ dayCellClassNames: dayCellClassNames,
541
+ dayMaxEvents: dayMaxEvents,
542
+ eventClassNames: eventClassNames,
543
+ eventMaxStack: eventMaxStack,
544
+ events: events
545
+ }, otherProps))));
546
+ };
547
+
548
+ module.exports = CalendarView;
549
+ //# sourceMappingURL=CalendarView.js.map