ode-explorer 1.4.8 → 1.4.9-develop.202406101930

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.
package/dist/index.html CHANGED
@@ -15,22 +15,18 @@
15
15
  <div id="portal"></div>
16
16
  <!-- SET INITIALISATION CONFIG -->
17
17
  <script>
18
- var WORFLOW_ACCESS =
19
- "net.atos.entng.mindmap.controllers.MindmapController|view";
18
+ var WORFLOW_ACCESS = "org.entcore.blog.controllers.BlogController|blog";
20
19
  var WORKFLOW_CREATE =
21
- "net.atos.entng.mindmap.controllers.MindmapController|create";
22
- var WORKFLOW_PRINT =
23
- "net.atos.entng.mindmap.controllers.MindmapController|printView";
24
- var WORKFLOW_EXPORT_PNG =
25
- "net.atos.entng.mindmap.controllers.MindmapController|exportPngMindmap";
26
- var WORKFLOW_EXPORT_SVG =
27
- "net.atos.entng.mindmap.controllers.MindmapController|exportSvgMindmap";
20
+ "org.entcore.blog.controllers.BlogController|create";
21
+ var WORKFLOW_CREATE_PUBLIC =
22
+ "org.entcore.blog.controllers.BlogController|createPublicBlog";
23
+ var WORKFLOW_PRINT = "org.entcore.blog.controllers.BlogController|print";
28
24
  var WORKFLOW_PUBLISH =
29
- "net.atos.entng.mindmap.controllers.MindmapController|publish";
25
+ "org.entcore.blog.controllers.BlogController|publish";
30
26
  var explorerConfig = {
31
- app: "mindmap",
32
- types: ["mindmap"],
33
- libraryAppFilter: "MindMap",
27
+ app: "blog",
28
+ types: ["blog"],
29
+ enableOnboarding: false,
34
30
  filters: [
35
31
  { id: "owner", defaultValue: true },
36
32
  { id: "public", defaultValue: false },
@@ -65,10 +61,9 @@
65
61
  target: "tree",
66
62
  },
67
63
  {
68
- id: "copy",
69
- workflow: WORFLOW_ACCESS,
70
- target: "actionbar",
71
- right: "read",
64
+ id: "createPublic",
65
+ workflow: WORKFLOW_CREATE_PUBLIC,
66
+ target: "tree",
72
67
  },
73
68
  {
74
69
  id: "move",
@@ -111,7 +106,6 @@
111
106
  right: "manager",
112
107
  },
113
108
  ],
114
- enableOnboarding: true,
115
109
  };
116
110
  ////
117
111
  var rootElement = document.querySelector("[data-explorer-config]");
package/dist/index.js CHANGED
@@ -96,8 +96,8 @@ function _mergeNamespaces(n2, m2) {
96
96
  fetch(link.href, fetchOpts);
97
97
  }
98
98
  })();
99
- var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
100
- function getDefaultExportFromCjs(x2) {
99
+ var commonjsGlobal$1 = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
100
+ function getDefaultExportFromCjs$1(x2) {
101
101
  return x2 && x2.__esModule && Object.prototype.hasOwnProperty.call(x2, "default") ? x2["default"] : x2;
102
102
  }
103
103
  function getAugmentedNamespace(n2) {
@@ -415,7 +415,7 @@ react_production_min.version = "18.2.0";
415
415
  react.exports = react_production_min;
416
416
  }
417
417
  var reactExports = react.exports;
418
- const React = /* @__PURE__ */ getDefaultExportFromCjs(reactExports);
418
+ const React = /* @__PURE__ */ getDefaultExportFromCjs$1(reactExports);
419
419
  const React$1 = /* @__PURE__ */ _mergeNamespaces({
420
420
  __proto__: null,
421
421
  default: React
@@ -2993,7 +2993,7 @@ function requireBrowserPonyfill() {
2993
2993
  return browserPonyfill.exports;
2994
2994
  hasRequiredBrowserPonyfill = 1;
2995
2995
  (function(module, exports) {
2996
- var __global__ = typeof globalThis !== "undefined" && globalThis || typeof self !== "undefined" && self || typeof commonjsGlobal !== "undefined" && commonjsGlobal;
2996
+ var __global__ = typeof globalThis !== "undefined" && globalThis || typeof self !== "undefined" && self || typeof commonjsGlobal$1 !== "undefined" && commonjsGlobal$1;
2997
2997
  var __globalThis__ = function() {
2998
2998
  function F2() {
2999
2999
  this.fetch = false;
@@ -3514,8 +3514,8 @@ function requireBrowserPonyfill() {
3514
3514
  (function(module, exports) {
3515
3515
  var fetchApi2;
3516
3516
  if (typeof fetch === "function") {
3517
- if (typeof commonjsGlobal !== "undefined" && commonjsGlobal.fetch) {
3518
- fetchApi2 = commonjsGlobal.fetch;
3517
+ if (typeof commonjsGlobal$1 !== "undefined" && commonjsGlobal$1.fetch) {
3518
+ fetchApi2 = commonjsGlobal$1.fetch;
3519
3519
  } else if (typeof window !== "undefined" && window.fetch) {
3520
3520
  fetchApi2 = window.fetch;
3521
3521
  } else {
@@ -3531,7 +3531,7 @@ function requireBrowserPonyfill() {
3531
3531
  }
3532
3532
  })(getFetch$1, getFetch$1.exports);
3533
3533
  var getFetchExports = getFetch$1.exports;
3534
- const getFetch = /* @__PURE__ */ getDefaultExportFromCjs(getFetchExports);
3534
+ const getFetch = /* @__PURE__ */ getDefaultExportFromCjs$1(getFetchExports);
3535
3535
  const fetchNode = /* @__PURE__ */ _mergeNamespaces({
3536
3536
  __proto__: null,
3537
3537
  default: getFetch
@@ -6661,7 +6661,7 @@ var dayjs_min = { exports: {} };
6661
6661
  (function(module, exports) {
6662
6662
  !function(t2, e2) {
6663
6663
  module.exports = e2();
6664
- }(commonjsGlobal, function() {
6664
+ }(commonjsGlobal$1, function() {
6665
6665
  var t2 = 1e3, e2 = 6e4, n2 = 36e5, r2 = "millisecond", i2 = "second", s2 = "minute", u2 = "hour", a2 = "day", o2 = "week", c6 = "month", f2 = "quarter", h2 = "year", d2 = "date", l2 = "Invalid Date", $2 = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/, y2 = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g, M2 = { name: "en", weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), ordinal: function(t3) {
6666
6666
  var e3 = ["th", "st", "nd", "rd"], n3 = t3 % 100;
6667
6667
  return "[" + t3 + (e3[(n3 - 20) % 10] || e3[n3] || e3[0]) + "]";
@@ -6948,12 +6948,12 @@ var dayjs_min = { exports: {} };
6948
6948
  });
6949
6949
  })(dayjs_min);
6950
6950
  var dayjs_minExports = dayjs_min.exports;
6951
- const dayjs = /* @__PURE__ */ getDefaultExportFromCjs(dayjs_minExports);
6951
+ const dayjs = /* @__PURE__ */ getDefaultExportFromCjs$1(dayjs_minExports);
6952
6952
  var customParseFormat$1 = { exports: {} };
6953
6953
  (function(module, exports) {
6954
6954
  !function(e2, t2) {
6955
6955
  module.exports = t2();
6956
- }(commonjsGlobal, function() {
6956
+ }(commonjsGlobal$1, function() {
6957
6957
  var e2 = { LTS: "h:mm:ss A", LT: "h:mm A", L: "MM/DD/YYYY", LL: "MMMM D, YYYY", LLL: "MMMM D, YYYY h:mm A", LLLL: "dddd, MMMM D, YYYY h:mm A" }, t2 = /(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g, n2 = /\d\d/, r2 = /\d\d?/, i2 = /\d*[^-_:/,()\s\d]+/, o2 = {}, s2 = function(e3) {
6958
6958
  return (e3 = +e3) + (e3 > 68 ? 1900 : 2e3);
6959
6959
  };
@@ -7083,12 +7083,12 @@ var customParseFormat$1 = { exports: {} };
7083
7083
  });
7084
7084
  })(customParseFormat$1);
7085
7085
  var customParseFormatExports = customParseFormat$1.exports;
7086
- const customParseFormat = /* @__PURE__ */ getDefaultExportFromCjs(customParseFormatExports);
7086
+ const customParseFormat = /* @__PURE__ */ getDefaultExportFromCjs$1(customParseFormatExports);
7087
7087
  var relativeTime$1 = { exports: {} };
7088
7088
  (function(module, exports) {
7089
7089
  !function(r2, e2) {
7090
7090
  module.exports = e2();
7091
- }(commonjsGlobal, function() {
7091
+ }(commonjsGlobal$1, function() {
7092
7092
  return function(r2, e2, t2) {
7093
7093
  r2 = r2 || {};
7094
7094
  var n2 = e2.prototype, o2 = { future: "in %s", past: "%s ago", s: "a few seconds", m: "a minute", mm: "%d minutes", h: "an hour", hh: "%d hours", d: "a day", dd: "%d days", M: "a month", MM: "%d months", y: "a year", yy: "%d years" };
@@ -7128,12 +7128,12 @@ var relativeTime$1 = { exports: {} };
7128
7128
  });
7129
7129
  })(relativeTime$1);
7130
7130
  var relativeTimeExports = relativeTime$1.exports;
7131
- const relativeTime = /* @__PURE__ */ getDefaultExportFromCjs(relativeTimeExports);
7131
+ const relativeTime = /* @__PURE__ */ getDefaultExportFromCjs$1(relativeTimeExports);
7132
7132
  var de$2 = { exports: {} };
7133
7133
  (function(module, exports) {
7134
7134
  !function(e2, n2) {
7135
7135
  module.exports = n2(dayjs_minExports);
7136
- }(commonjsGlobal, function(e2) {
7136
+ }(commonjsGlobal$1, function(e2) {
7137
7137
  function n2(e3) {
7138
7138
  return e3 && "object" == typeof e3 && "default" in e3 ? e3 : { default: e3 };
7139
7139
  }
@@ -7152,7 +7152,7 @@ var es = { exports: {} };
7152
7152
  (function(module, exports) {
7153
7153
  !function(e2, o2) {
7154
7154
  module.exports = o2(dayjs_minExports);
7155
- }(commonjsGlobal, function(e2) {
7155
+ }(commonjsGlobal$1, function(e2) {
7156
7156
  function o2(e3) {
7157
7157
  return e3 && "object" == typeof e3 && "default" in e3 ? e3 : { default: e3 };
7158
7158
  }
@@ -7166,7 +7166,7 @@ var fr = { exports: {} };
7166
7166
  (function(module, exports) {
7167
7167
  !function(e2, n2) {
7168
7168
  module.exports = n2(dayjs_minExports);
7169
- }(commonjsGlobal, function(e2) {
7169
+ }(commonjsGlobal$1, function(e2) {
7170
7170
  function n2(e3) {
7171
7171
  return e3 && "object" == typeof e3 && "default" in e3 ? e3 : { default: e3 };
7172
7172
  }
@@ -7180,7 +7180,7 @@ var it = { exports: {} };
7180
7180
  (function(module, exports) {
7181
7181
  !function(e2, o2) {
7182
7182
  module.exports = o2(dayjs_minExports);
7183
- }(commonjsGlobal, function(e2) {
7183
+ }(commonjsGlobal$1, function(e2) {
7184
7184
  function o2(e3) {
7185
7185
  return e3 && "object" == typeof e3 && "default" in e3 ? e3 : { default: e3 };
7186
7186
  }
@@ -7194,7 +7194,7 @@ var pt = { exports: {} };
7194
7194
  (function(module, exports) {
7195
7195
  !function(e2, a2) {
7196
7196
  module.exports = a2(dayjs_minExports);
7197
- }(commonjsGlobal, function(e2) {
7197
+ }(commonjsGlobal$1, function(e2) {
7198
7198
  function a2(e3) {
7199
7199
  return e3 && "object" == typeof e3 && "default" in e3 ? e3 : { default: e3 };
7200
7200
  }
@@ -8443,7 +8443,7 @@ var uaParser = { exports: {} };
8443
8443
  }
8444
8444
  };
8445
8445
  }
8446
- })(typeof window === "object" ? window : commonjsGlobal);
8446
+ })(typeof window === "object" ? window : commonjsGlobal$1);
8447
8447
  })(uaParser, uaParser.exports);
8448
8448
  let e$2 = { data: "" }, t$3 = (t2) => "object" == typeof window ? ((t2 ? t2.querySelector("#_goober") : window._goober) || Object.assign((t2 || document.head).appendChild(document.createElement("style")), { innerHTML: " ", id: "_goober" })).firstChild : t2 || e$2, l$2 = /(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g, a$1 = /\/\*[^]*?\*\/| +/g, n$4 = /\n+/g, o$1 = (e2, t2) => {
8449
8449
  let r2 = "", l2 = "", a2 = "";
@@ -25056,7 +25056,7 @@ var reactFastCompare = function isEqual(a2, b2) {
25056
25056
  throw error;
25057
25057
  }
25058
25058
  };
25059
- const isEqual2 = /* @__PURE__ */ getDefaultExportFromCjs(reactFastCompare);
25059
+ const isEqual2 = /* @__PURE__ */ getDefaultExportFromCjs$1(reactFastCompare);
25060
25060
  var EMPTY_MODIFIERS = [];
25061
25061
  var usePopper = function usePopper2(referenceElement, popperElement, options) {
25062
25062
  if (options === void 0) {
@@ -35042,7 +35042,7 @@ var eventemitter3 = { exports: {} };
35042
35042
  }
35043
35043
  })(eventemitter3);
35044
35044
  var eventemitter3Exports = eventemitter3.exports;
35045
- const EventEmitter2 = /* @__PURE__ */ getDefaultExportFromCjs(eventemitter3Exports);
35045
+ const EventEmitter2 = /* @__PURE__ */ getDefaultExportFromCjs$1(eventemitter3Exports);
35046
35046
  var earcut$2 = { exports: {} };
35047
35047
  earcut$2.exports = earcut;
35048
35048
  earcut$2.exports.default = earcut;
@@ -35504,7 +35504,7 @@ earcut.flatten = function(data) {
35504
35504
  return result;
35505
35505
  };
35506
35506
  var earcutExports = earcut$2.exports;
35507
- const earcut$1 = /* @__PURE__ */ getDefaultExportFromCjs(earcutExports);
35507
+ const earcut$1 = /* @__PURE__ */ getDefaultExportFromCjs$1(earcutExports);
35508
35508
  var punycode$1 = { exports: {} };
35509
35509
  /*! https://mths.be/punycode v1.4.1 by @mathias */
35510
35510
  punycode$1.exports;
@@ -35512,7 +35512,7 @@ punycode$1.exports;
35512
35512
  (function(root2) {
35513
35513
  var freeExports = exports && !exports.nodeType && exports;
35514
35514
  var freeModule = module && !module.nodeType && module;
35515
- var freeGlobal = typeof commonjsGlobal == "object" && commonjsGlobal;
35515
+ var freeGlobal = typeof commonjsGlobal$1 == "object" && commonjsGlobal$1;
35516
35516
  if (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal || freeGlobal.self === freeGlobal) {
35517
35517
  root2 = freeGlobal;
35518
35518
  }
@@ -35744,7 +35744,7 @@ punycode$1.exports;
35744
35744
  } else {
35745
35745
  root2.punycode = punycode2;
35746
35746
  }
35747
- })(commonjsGlobal);
35747
+ })(commonjsGlobal$1);
35748
35748
  })(punycode$1, punycode$1.exports);
35749
35749
  var punycodeExports = punycode$1.exports;
35750
35750
  var esErrors = Error;
@@ -36599,7 +36599,7 @@ var objectInspect = function inspect_(obj, options, depth, seen2) {
36599
36599
  if (typeof window !== "undefined" && obj === window) {
36600
36600
  return "{ [object Window] }";
36601
36601
  }
36602
- if (obj === commonjsGlobal) {
36602
+ if (obj === commonjsGlobal$1) {
36603
36603
  return "{ [object globalThis] }";
36604
36604
  }
36605
36605
  if (!isDate(obj) && !isRegExp$1(obj)) {
@@ -60053,15 +60053,13 @@ function useConf({
60053
60053
  }) {
60054
60054
  return useQuery({
60055
60055
  queryKey: ["conf"],
60056
- queryFn: async () => await odeServices.conf().getConf(appCode),
60057
- suspense: true
60056
+ queryFn: async () => await odeServices.conf().getConf(appCode)
60058
60057
  });
60059
60058
  }
60060
60059
  function useSession() {
60061
60060
  return useQuery({
60062
60061
  queryKey: ["session"],
60063
- queryFn: async () => await odeServices.session().getSession(),
60064
- suspense: true
60062
+ queryFn: async () => await odeServices.session().getSession()
60065
60063
  });
60066
60064
  }
60067
60065
  const OdeClientContext = /* @__PURE__ */ reactExports.createContext(null);
@@ -60160,16 +60158,6 @@ const MockedDataContext = /* @__PURE__ */ reactExports.createContext(null);
60160
60158
  function useMockedData() {
60161
60159
  return reactExports.useContext(MockedDataContext);
60162
60160
  }
60163
- function mergeRefs(...refs) {
60164
- return (val) => {
60165
- setRef(val, ...refs);
60166
- };
60167
- }
60168
- function setRef(val, ...refs) {
60169
- refs.forEach((ref2) => {
60170
- typeof ref2 == "function" ? ref2(val) : ref2 != null && (ref2.current = val);
60171
- });
60172
- }
60173
60161
  const isActionAvailable = (workflow, actions) => {
60174
60162
  const found = actions == null ? void 0 : actions.filter((action) => action.id === workflow && action.available);
60175
60163
  return found && found.length > 0;
@@ -60182,6 +60170,16 @@ const isActionAvailable = (workflow, actions) => {
60182
60170
  wiki: "Wiki",
60183
60171
  exercizer: "Exercizer"
60184
60172
  };
60173
+ function mergeRefs(...refs) {
60174
+ return (val) => {
60175
+ setRef(val, ...refs);
60176
+ };
60177
+ }
60178
+ function setRef(val, ...refs) {
60179
+ refs.forEach((ref2) => {
60180
+ typeof ref2 == "function" ? ref2(val) : ref2 != null && (ref2.current = val);
60181
+ });
60182
+ }
60185
60183
  function useHasWorkflow(workflow) {
60186
60184
  const mock = useMockedData(), [state, setState] = reactExports.useState();
60187
60185
  return reactExports.useEffect(() => {
@@ -60235,8 +60233,38 @@ const useConversation = () => {
60235
60233
  zimbraWorkflow
60236
60234
  };
60237
60235
  }, useConversation$1 = useConversation;
60236
+ var commonjsGlobal = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {};
60237
+ function getDefaultExportFromCjs(x2) {
60238
+ return x2 && x2.__esModule && Object.prototype.hasOwnProperty.call(x2, "default") ? x2.default : x2;
60239
+ }
60240
+ var localizedFormat$1 = { exports: {} };
60241
+ (function(module, exports) {
60242
+ (function(e2, t2) {
60243
+ module.exports = t2();
60244
+ })(commonjsGlobal, function() {
60245
+ var e2 = { LTS: "h:mm:ss A", LT: "h:mm A", L: "MM/DD/YYYY", LL: "MMMM D, YYYY", LLL: "MMMM D, YYYY h:mm A", LLLL: "dddd, MMMM D, YYYY h:mm A" };
60246
+ return function(t2, o2, n2) {
60247
+ var r2 = o2.prototype, i2 = r2.format;
60248
+ n2.en.formats = e2, r2.format = function(t22) {
60249
+ t22 === void 0 && (t22 = "YYYY-MM-DDTHH:mm:ssZ");
60250
+ var o22 = this.$locale().formats, n22 = function(t3, o3) {
60251
+ return t3.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g, function(t4, n3, r22) {
60252
+ var i22 = r22 && r22.toUpperCase();
60253
+ return n3 || o3[r22] || e2[r22] || o3[i22].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g, function(e22, t5, o4) {
60254
+ return t5 || o4.slice(1);
60255
+ });
60256
+ });
60257
+ }(t22, o22 === void 0 ? {} : o22);
60258
+ return i2.call(this, n22);
60259
+ };
60260
+ };
60261
+ });
60262
+ })(localizedFormat$1);
60263
+ var localizedFormatExports = localizedFormat$1.exports;
60264
+ const localizedFormat = /* @__PURE__ */ getDefaultExportFromCjs(localizedFormatExports);
60238
60265
  dayjs.extend(relativeTime);
60239
60266
  dayjs.extend(customParseFormat);
60267
+ dayjs.extend(localizedFormat);
60240
60268
  function useDate() {
60241
60269
  const {
60242
60270
  currentLanguage
@@ -60256,10 +60284,27 @@ function useDate() {
60256
60284
  } catch {
60257
60285
  return "";
60258
60286
  }
60259
- }, [currentLanguage, parseDate]), formatDate = reactExports.useCallback((date, format) => {
60287
+ }, [currentLanguage, parseDate]), formatDate = reactExports.useCallback((date, format = "short") => {
60260
60288
  let computedDate = dayjs();
60261
60289
  try {
60262
- return typeof date > "u" ? "" : (typeof date == "string" ? computedDate = parseDate(date) : typeof date.$date == "number" ? computedDate = dayjs(new Date(date.$date)).locale(currentLanguage) : typeof date.$date == "string" && (computedDate = parseDate(date.$date)), computedDate.isValid() ? computedDate.locale(currentLanguage).format(format || "D MMMM YYYY HH:mm:ss") : "");
60290
+ if (typeof date > "u")
60291
+ return "";
60292
+ typeof date == "string" ? computedDate = parseDate(date) : typeof date.$date == "number" ? computedDate = dayjs(new Date(date.$date)).locale(currentLanguage) : typeof date.$date == "string" && (computedDate = parseDate(date.$date));
60293
+ let dayjsFormat = "";
60294
+ switch (format) {
60295
+ case "short":
60296
+ dayjsFormat = "L";
60297
+ break;
60298
+ case "long":
60299
+ dayjsFormat = "LL";
60300
+ break;
60301
+ case "abbr":
60302
+ dayjsFormat = "ll";
60303
+ break;
60304
+ default:
60305
+ dayjsFormat = format;
60306
+ }
60307
+ return computedDate.isValid() ? computedDate.locale(currentLanguage).format(dayjsFormat) : "";
60263
60308
  } catch {
60264
60309
  return "";
60265
60310
  }
@@ -61782,9 +61827,9 @@ const TextArea = /* @__PURE__ */ reactExports.forwardRef(({
61782
61827
  }), TextArea$1 = TextArea;
61783
61828
  function useTreeItemEvents(nodeId, label, expanded, setExpanded, onItemSelect, onItemFold, onItemUnfold, onItemFocus, onItemBlur) {
61784
61829
  const handleItemClick = (event) => {
61785
- event.preventDefault(), onItemSelect == null || onItemSelect(nodeId), event.stopPropagation();
61830
+ event.preventDefault(), onItemSelect == null || onItemSelect(nodeId), itemFoldUnfold(), event.stopPropagation();
61786
61831
  }, handleItemKeyDown = (event) => {
61787
- (event.code === "Enter" || event.code === "Space") && (event.preventDefault(), onItemSelect == null || onItemSelect(nodeId), event.stopPropagation());
61832
+ (event.code === "Enter" || event.code === "Space") && (event.preventDefault(), onItemSelect == null || onItemSelect(nodeId), itemFoldUnfold(), event.stopPropagation());
61788
61833
  }, itemFoldUnfold = () => {
61789
61834
  setExpanded(!expanded), expanded ? onItemFold == null || onItemFold(nodeId) : onItemUnfold == null || onItemUnfold(nodeId);
61790
61835
  };
@@ -61838,8 +61883,8 @@ const TreeItem = (props) => {
61838
61883
  const rafterSize = section ? 16 : 12, renderItem = () => /* @__PURE__ */ jsxRuntimeExports.jsx("li", { id: `listitem_${nodeId}`, role: "treeitem", "aria-selected": selected, "aria-expanded": expanded, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
61839
61884
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "action-container d-flex align-items-center gap-8 px-2", children: [
61840
61885
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: `py-8 ${Array.isArray(children) ? null : "invisible"}`, tabIndex: 0, role: "button", onClick: handleItemFoldUnfoldClick, onKeyDown: handleItemFoldUnfoldKeyDown, "aria-label": t2("foldUnfold"), children: [
61841
- Array.isArray(children) && !expanded && /* @__PURE__ */ jsxRuntimeExports.jsx(SvgRafterRight$1, { title: t2("foldUnfold"), width: rafterSize, height: rafterSize }),
61842
- Array.isArray(children) && expanded && /* @__PURE__ */ jsxRuntimeExports.jsx(SvgRafterDown$1, { title: t2("foldUnfold"), width: rafterSize, height: rafterSize }),
61886
+ Array.isArray(children) && !!children.length && !expanded && /* @__PURE__ */ jsxRuntimeExports.jsx(SvgRafterRight$1, { title: t2("foldUnfold"), width: rafterSize, height: rafterSize }),
61887
+ Array.isArray(children) && !!children.length && expanded && /* @__PURE__ */ jsxRuntimeExports.jsx(SvgRafterDown$1, { title: t2("foldUnfold"), width: rafterSize, height: rafterSize }),
61843
61888
  !Array.isArray(children) && /* @__PURE__ */ jsxRuntimeExports.jsx(SvgRafterRight$1, { title: t2("foldUnfold"), width: rafterSize, height: rafterSize, "aria-hidden": "true" })
61844
61889
  ] }),
61845
61890
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { tabIndex: 0, role: "button", className: "flex-fill d-flex align-items-center text-truncate gap-8 py-8", onClick: handleItemClick, onKeyDown: handleItemKeyDown, onFocus: handleItemFocus, onBlur: handleItemBlur, children: [
@@ -61885,25 +61930,25 @@ const TreeItem = (props) => {
61885
61930
  }), TreeView$1 = TreeView, VisuallyHidden = /* @__PURE__ */ reactExports.forwardRef(({
61886
61931
  children
61887
61932
  }, ref2) => /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "visually-hidden", ref: ref2, children })), VisuallyHidden$1 = VisuallyHidden, getOnboardingTrash = async (key) => await odeServices.conf().getPreference(key), saveOnboardingTrash = async (key) => await odeServices.conf().savePreference(key, JSON.stringify({
61888
- showOnboardingTrash: false
61933
+ key: false
61889
61934
  })), useOnboardingModal = (id2) => {
61890
- const [isOpen, setIsOpen] = reactExports.useState(true), [isOnboardingTrash, setIsOnboardingTrash] = reactExports.useState(false);
61935
+ const [isOpen, setIsOpen] = reactExports.useState(true), [isOnboarding, setIsOnboarding] = reactExports.useState(false);
61891
61936
  return reactExports.useEffect(() => {
61892
61937
  (async () => {
61893
61938
  const response = await getOnboardingTrash(id2);
61894
61939
  if (response) {
61895
61940
  const {
61896
- showOnboardingTrash
61941
+ key
61897
61942
  } = response;
61898
- setIsOnboardingTrash(showOnboardingTrash);
61943
+ setIsOnboarding(key);
61899
61944
  return;
61900
61945
  }
61901
- setIsOnboardingTrash(true);
61946
+ setIsOnboarding(true);
61902
61947
  })();
61903
61948
  }, [id2]), {
61904
61949
  isOpen,
61905
61950
  setIsOpen,
61906
- isOnboardingTrash,
61951
+ isOnboarding,
61907
61952
  handleSavePreference: async () => {
61908
61953
  await saveOnboardingTrash(id2), setIsOpen(false);
61909
61954
  }
@@ -61915,7 +61960,7 @@ const TreeItem = (props) => {
61915
61960
  }) => {
61916
61961
  const [imagePath] = usePaths(), [swiperInstance, setSwiperInstance] = reactExports.useState(), [swiperProgress, setSwiperprogress] = reactExports.useState(0), {
61917
61962
  isOpen,
61918
- isOnboardingTrash,
61963
+ isOnboarding,
61919
61964
  setIsOpen,
61920
61965
  handleSavePreference
61921
61966
  } = useOnboardingModal(id2);
@@ -61933,7 +61978,7 @@ const TreeItem = (props) => {
61933
61978
  closeText,
61934
61979
  nextText
61935
61980
  } = modalOptions;
61936
- return isOnboardingTrash ? /* @__PURE__ */ reactDomExports.createPortal(/* @__PURE__ */ jsxRuntimeExports.jsxs(Modal$1, { id: "onboarding-modal", size: "md", isOpen, focusId: "nextButtonId", onModalClose: () => setIsOpen(false), children: [
61981
+ return isOnboarding ? /* @__PURE__ */ reactDomExports.createPortal(/* @__PURE__ */ jsxRuntimeExports.jsxs(Modal$1, { id: "onboarding-modal", size: "md", isOpen, focusId: "nextButtonId", onModalClose: () => setIsOpen(false), children: [
61937
61982
  /* @__PURE__ */ jsxRuntimeExports.jsx(Modal$1.Header, { onModalClose: () => setIsOpen(false), children: t2(title || "explorer.modal.onboarding.trash.title") }),
61938
61983
  /* @__PURE__ */ jsxRuntimeExports.jsx(Modal$1.Body, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(Swiper2, { modules: [Pagination], onSwiper: (swiper) => {
61939
61984
  setSwiperInstance(swiper);
@@ -63736,52 +63781,11 @@ function useCookiesConsent() {
63736
63781
  }
63737
63782
  };
63738
63783
  }
63739
- const NavItem = /* @__PURE__ */ reactExports.forwardRef(({
63740
- children,
63741
- className,
63742
- ...restProps
63743
- }, ref2) => {
63744
- const classes2 = clsx("nav-item", className);
63745
- return /* @__PURE__ */ jsxRuntimeExports.jsx("li", { ref: ref2, className: classes2, ...restProps, children });
63746
- }), SearchEngine = () => {
63747
- const [searchRef, isSearchHovered] = useHover(), inputRef = reactExports.useRef(null), popoverSearchId = reactExports.useId(), {
63748
- t: t2
63749
- } = useTranslation();
63750
- function redirectToSearch() {
63751
- if (inputRef.current) {
63752
- const value = inputRef.current.value;
63753
- window.location.href = `/searchengine#/${value}`;
63754
- }
63755
- }
63756
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(NavItem, { id: popoverSearchId, ref: searchRef, className: "position-relative", "aria-haspopup": "true", "aria-expanded": isSearchHovered, children: [
63757
- /* @__PURE__ */ jsxRuntimeExports.jsxs("a", { href: "/searchengine", className: "nav-link dropdown-item", children: [
63758
- /* @__PURE__ */ jsxRuntimeExports.jsx(SvgSearch$1, { className: "icon search" }),
63759
- /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "nav-text", children: t2("navbar.search") })
63760
- ] }),
63761
- /* @__PURE__ */ jsxRuntimeExports.jsx(Popover, { id: popoverSearchId, isVisible: isSearchHovered, className: "d-none d-md-flex", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(FormControl$1, { id: "my-search-input", className: "search-text input-group py-8 px-12", children: [
63762
- /* @__PURE__ */ jsxRuntimeExports.jsx(FormControl$1.Input, { ref: inputRef, size: "sm", type: "text", name: "my-search-input", placeholder: "Rechercher" }),
63763
- /* @__PURE__ */ jsxRuntimeExports.jsx(SearchButton$1, { type: "submit", size: "sm", onClick: redirectToSearch, "aria-label": t2("navbar.search") })
63764
- ] }) })
63765
- ] });
63766
- }, SearchEngine$1 = SearchEngine;
63767
63784
  function Badge({
63768
63785
  children
63769
63786
  }) {
63770
63787
  return /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "position-absolute badge rounded-pill bg-warning", children });
63771
63788
  }
63772
- function NavLink({
63773
- link,
63774
- className,
63775
- children,
63776
- translate: translate2,
63777
- ...restProps
63778
- }) {
63779
- const classes2 = clsx("nav-link", className);
63780
- return /* @__PURE__ */ jsxRuntimeExports.jsxs("a", { href: link, className: classes2, ...restProps, children: [
63781
- children,
63782
- translate2 && /* @__PURE__ */ jsxRuntimeExports.jsx(VisuallyHidden$1, { children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "nav-text", children: translate2 }) })
63783
- ] });
63784
- }
63785
63789
  function Navbar({
63786
63790
  children,
63787
63791
  className,
@@ -63798,6 +63802,27 @@ function NavBarNav({
63798
63802
  const classes2 = clsx("navbar-nav", className);
63799
63803
  return /* @__PURE__ */ jsxRuntimeExports.jsx("ul", { className: classes2, ...restProps, children });
63800
63804
  }
63805
+ const NavItem = /* @__PURE__ */ reactExports.forwardRef(({
63806
+ children,
63807
+ className,
63808
+ ...restProps
63809
+ }, ref2) => {
63810
+ const classes2 = clsx("nav-item", className);
63811
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("li", { ref: ref2, className: classes2, ...restProps, children });
63812
+ });
63813
+ function NavLink({
63814
+ link,
63815
+ className,
63816
+ children,
63817
+ translate: translate2,
63818
+ ...restProps
63819
+ }) {
63820
+ const classes2 = clsx("nav-link", className);
63821
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("a", { href: link, className: classes2, ...restProps, children: [
63822
+ children,
63823
+ translate2 && /* @__PURE__ */ jsxRuntimeExports.jsx(VisuallyHidden$1, { children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "nav-text", children: translate2 }) })
63824
+ ] });
63825
+ }
63801
63826
  const WidgetAppsFooter = () => {
63802
63827
  const {
63803
63828
  t: t2
@@ -63813,7 +63838,27 @@ const WidgetAppsFooter = () => {
63813
63838
  !bookmarkedApps.length && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-dark", children: t2("navbar.myapps.more") }),
63814
63839
  bookmarkedApps.slice(0, 6).map((app, index2) => /* @__PURE__ */ jsxRuntimeExports.jsx("a", { href: app.address, className: "bookmarked-app", children: /* @__PURE__ */ jsxRuntimeExports.jsx(AppIcon$1, { app, size: "32" }) }, index2))
63815
63840
  ] });
63816
- }, Header$1 = ({
63841
+ }, SearchEngine = () => {
63842
+ const [searchRef, isSearchHovered] = useHover(), inputRef = reactExports.useRef(null), popoverSearchId = reactExports.useId(), {
63843
+ t: t2
63844
+ } = useTranslation();
63845
+ function redirectToSearch() {
63846
+ if (inputRef.current) {
63847
+ const value = inputRef.current.value;
63848
+ window.location.href = `/searchengine#/${value}`;
63849
+ }
63850
+ }
63851
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(NavItem, { id: popoverSearchId, ref: searchRef, className: "position-relative", "aria-haspopup": "true", "aria-expanded": isSearchHovered, children: [
63852
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("a", { href: "/searchengine", className: "nav-link dropdown-item", children: [
63853
+ /* @__PURE__ */ jsxRuntimeExports.jsx(SvgSearch$1, { className: "icon search" }),
63854
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "nav-text", children: t2("navbar.search") })
63855
+ ] }),
63856
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Popover, { id: popoverSearchId, isVisible: isSearchHovered, className: "d-none d-md-flex", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(FormControl$1, { id: "my-search-input", className: "search-text input-group py-8 px-12", children: [
63857
+ /* @__PURE__ */ jsxRuntimeExports.jsx(FormControl$1.Input, { ref: inputRef, size: "sm", type: "text", name: "my-search-input", placeholder: "Rechercher" }),
63858
+ /* @__PURE__ */ jsxRuntimeExports.jsx(SearchButton$1, { type: "submit", size: "sm", onClick: redirectToSearch, "aria-label": t2("navbar.search") })
63859
+ ] }) })
63860
+ ] });
63861
+ }, SearchEngine$1 = SearchEngine, Header$1 = ({
63817
63862
  is1d = false,
63818
63863
  src = ""
63819
63864
  }) => {
@@ -63948,7 +63993,7 @@ const WidgetAppsFooter = () => {
63948
63993
  "container-fluid": !headless,
63949
63994
  "rounded-4 border": (theme == null ? void 0 : theme.is1d) && !headless,
63950
63995
  "mt-24": (theme == null ? void 0 : theme.is1d) && !headless
63951
- }), renderHeader = headless ? null : /* @__PURE__ */ jsxRuntimeExports.jsx(Header$2, { is1d: theme == null ? void 0 : theme.is1d, src: theme == null ? void 0 : theme.basePath }), renderCookies = showCookiesConsent && /* @__PURE__ */ jsxRuntimeExports.jsx(Alert$1, { type: "info", className: "m-12", isConfirm: true, position: "bottom-right", button: /* @__PURE__ */ jsxRuntimeExports.jsx(Button$1, { color: "tertiary", variant: "ghost", onClick: handleConsultCookies, children: t2("rgpd.cookies.banner.button.consult") }), onClose: handleCloseCookiesConsent, children: t2("rgpd.cookies.banner.text1") }), renderToaster = /* @__PURE__ */ jsxRuntimeExports.jsx(Ie$1, { toastOptions: {
63996
+ }), renderHeader = headless ? null : /* @__PURE__ */ jsxRuntimeExports.jsx(Header$2, { is1d: theme == null ? void 0 : theme.is1d, src: theme == null ? void 0 : theme.basePath }), renderCookies = showCookiesConsent && /* @__PURE__ */ jsxRuntimeExports.jsx(Alert$1, { type: "info", className: "m-12", isConfirm: true, position: "bottom-right", button: /* @__PURE__ */ jsxRuntimeExports.jsx(Button$1, { color: "tertiary", variant: "ghost", onClick: handleConsultCookies, children: t2("rgpd.cookies.banner.button.consult") }), onClose: handleCloseCookiesConsent, children: t2("rgpd.cookies.banner.text1") }), renderToaster = /* @__PURE__ */ jsxRuntimeExports.jsx(Ie$1, { containerClassName: "toaster-container", toastOptions: {
63952
63997
  position: "top-right"
63953
63998
  } });
63954
63999
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
@@ -64181,7 +64226,7 @@ withSelector_production_min.useSyncExternalStoreWithSelector = function(a2, b2,
64181
64226
  withSelector.exports = withSelector_production_min;
64182
64227
  }
64183
64228
  var withSelectorExports = withSelector.exports;
64184
- const useSyncExternalStoreExports = /* @__PURE__ */ getDefaultExportFromCjs(withSelectorExports);
64229
+ const useSyncExternalStoreExports = /* @__PURE__ */ getDefaultExportFromCjs$1(withSelectorExports);
64185
64230
  var define_import_meta_env_default = { BASE_URL: "/", MODE: "production", DEV: false, PROD: true, SSR: false };
64186
64231
  const { useDebugValue } = React;
64187
64232
  const { useSyncExternalStoreWithSelector } = useSyncExternalStoreExports;
package/dist/version.txt CHANGED
@@ -1 +1 @@
1
- ode-explorer=1.0-b2school-SNAPSHOT 28/05/2024 16:43:49
1
+ ode-explorer=1.0-b2school-SNAPSHOT 10/06/2024 19:31:29
@@ -4,9 +4,9 @@ import { Card as c, Image as B, AppIcon as $, Avatar as D, Tooltip as y, useOdeC
4
4
  import { useSpring as q, animated as T } from "@react-spring/web";
5
5
  import E from "clsx";
6
6
  import { useTranslation as F } from "react-i18next";
7
- import { Users as H, Globe as J } from "@edifice-ui/icons";
8
- import { OneProfile as K } from "@edifice-ui/icons/nav";
9
- import { d as Q, h as V, i as W, u as X, e as Y } from "./index2.js";
7
+ import { d as H, h as J, i as K, u as Q, e as V } from "./index2.js";
8
+ import { Users as W, Globe as X } from "@edifice-ui/icons";
9
+ import { OneProfile as Y } from "@edifice-ui/icons/nav";
10
10
  import "edifice-ts-client";
11
11
  import "i18next";
12
12
  import "zustand";
@@ -41,16 +41,16 @@ const C = ({
41
41
  ] }),
42
42
  /* @__PURE__ */ n(c.Footer, { children: [
43
43
  /* @__PURE__ */ n("div", { className: "d-inline-flex align-items-center gap-8 text-truncate", children: [
44
- o ? /* @__PURE__ */ i(D, { alt: (t == null ? void 0 : t.creatorName) || "", size: "xs", src: o, variant: "circle", width: "24", height: "24" }) : /* @__PURE__ */ i(K, {}),
44
+ o ? /* @__PURE__ */ i(D, { alt: (t == null ? void 0 : t.creatorName) || "", size: "xs", src: o, variant: "circle", width: "24", height: "24" }) : /* @__PURE__ */ i(Y, {}),
45
45
  /* @__PURE__ */ i(c.Text, { children: t == null ? void 0 : t.creatorName })
46
46
  ] }),
47
47
  /* @__PURE__ */ n("div", { className: "d-inline-flex align-items-center gap-8", children: [
48
48
  r && /* @__PURE__ */ i(y, { message: g("tooltip.shared", {
49
49
  ns: l
50
- }), placement: "top", children: /* @__PURE__ */ i(H, { width: 16, height: 16 }) }),
50
+ }), placement: "top", children: /* @__PURE__ */ i(W, { width: 16, height: 16 }) }),
51
51
  R && /* @__PURE__ */ i(y, { message: g("tooltip.public", {
52
52
  ns: l
53
- }), placement: "top", children: /* @__PURE__ */ i(J, { width: 16, height: 16 }) })
53
+ }), placement: "top", children: /* @__PURE__ */ i(X, { width: 16, height: 16 }) })
54
54
  ] })
55
55
  ] })
56
56
  ] }) });
@@ -66,12 +66,12 @@ const rt = ({
66
66
  t: x
67
67
  } = F(), {
68
68
  fromNow: u
69
- } = L(), d = Q(), s = V(), o = W(), {
69
+ } = L(), d = H(), s = J(), o = K(), {
70
70
  setSelectedResources: m,
71
71
  setResourceIds: r,
72
72
  openResource: R,
73
73
  setResourceIsTrash: g
74
- } = X(), l = Y(), v = q({
74
+ } = Q(), l = V(), v = q({
75
75
  from: {
76
76
  opacity: 0
77
77
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ode-explorer",
3
- "version": "1.4.8",
3
+ "version": "1.4.9-develop.202406101930",
4
4
  "description": "Edifice Explorer",
5
5
  "homepage": "https://github.com/edificeio/explorer#readme",
6
6
  "bugs": {
@@ -36,8 +36,8 @@
36
36
  ]
37
37
  },
38
38
  "dependencies": {
39
- "@edifice-ui/icons": "1.5.5",
40
- "@edifice-ui/react": "1.5.5",
39
+ "@edifice-ui/icons": "develop",
40
+ "@edifice-ui/react": "develop",
41
41
  "@react-spring/web": "9.7.3",
42
42
  "@tanstack/react-query": "5.8.4",
43
43
  "clsx": "2.1.0",
@@ -65,8 +65,8 @@
65
65
  "@vitejs/plugin-react-swc": "3.5.0",
66
66
  "concurrently": "8.2.2",
67
67
  "csstype": "3.1.3",
68
- "edifice-bootstrap": "1.5.5",
69
- "edifice-ts-client": "1.5.5",
68
+ "edifice-bootstrap": "develop",
69
+ "edifice-ts-client": "develop",
70
70
  "eslint": "8.56.0",
71
71
  "eslint-config-prettier": "9.1.0",
72
72
  "eslint-plugin-import": "2.29.1",
@@ -1,3 +0,0 @@
1
- import clsx from "clsx";
2
- import dayjs from "dayjs";
3
- export { clsx, dayjs };