@webiny/app-record-locking 5.42.1-beta.0 → 5.42.1-beta.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.
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
- import { IRecordLockingIdentity, IRecordLockingLockRecord } from "../../types";
3
- import { IncomingGenericData } from "@webiny/app-websockets";
2
+ import type { IRecordLockingIdentity, IRecordLockingLockRecord } from "../../types";
3
+ import type { IncomingGenericData } from "@webiny/app-websockets";
4
4
  import { CmsContentEntry, CmsModel } from "@webiny/app-headless-cms/types";
5
5
  export interface IContentEntryLockerProps {
6
6
  entry: CmsContentEntry;
@@ -24,7 +24,7 @@ var Bold = /*#__PURE__*/(0, _base.default)("span", process.env.NODE_ENV === "pro
24
24
  } : {
25
25
  name: "16ceglb",
26
26
  styles: "font-weight:600",
27
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNvbnRlbnRFbnRyeUxvY2tlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBYXdCIiwiZmlsZSI6IkNvbnRlbnRFbnRyeUxvY2tlci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VSZWYgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZVJlY29yZExvY2tpbmcgfSBmcm9tIFwifi9ob29rc1wiO1xuaW1wb3J0IHsgSUlzUmVjb3JkTG9ja2VkUGFyYW1zLCBJUmVjb3JkTG9ja2luZ0lkZW50aXR5LCBJUmVjb3JkTG9ja2luZ0xvY2tSZWNvcmQgfSBmcm9tIFwifi90eXBlc1wiO1xuaW1wb3J0IHtcbiAgICBJbmNvbWluZ0dlbmVyaWNEYXRhLFxuICAgIElXZWJzb2NrZXRzU3Vic2NyaXB0aW9uLFxuICAgIHVzZVdlYnNvY2tldHNcbn0gZnJvbSBcIkB3ZWJpbnkvYXBwLXdlYnNvY2tldHNcIjtcbmltcG9ydCB7IHBhcnNlSWRlbnRpZmllciB9IGZyb20gXCJAd2ViaW55L3V0aWxzXCI7XG5pbXBvcnQgeyB1c2VEaWFsb2dzIH0gZnJvbSBcIkB3ZWJpbnkvYXBwLWFkbWluXCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7IENtc0NvbnRlbnRFbnRyeSwgQ21zTW9kZWwgfSBmcm9tIFwiQHdlYmlueS9hcHAtaGVhZGxlc3MtY21zL3R5cGVzXCI7XG5cbmNvbnN0IEJvbGQgPSBzdHlsZWQuc3BhbmBcbiAgICBmb250LXdlaWdodDogNjAwO1xuYDtcblxuZXhwb3J0IGludGVyZmFjZSBJQ29udGVudEVudHJ5TG9ja2VyUHJvcHMge1xuICAgIGVudHJ5OiBDbXNDb250ZW50RW50cnk7XG4gICAgbW9kZWw6IENtc01vZGVsO1xuICAgIG9uRW50cnlVbmxvY2tlZDogKCkgPT4gdm9pZDtcbiAgICBvbkRpc2FibGVQcm9tcHQ6IChmbGFnOiBib29sZWFuKSA9PiB2b2lkO1xuICAgIGNoaWxkcmVuOiBSZWFjdC5SZWFjdEVsZW1lbnQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUtpY2tPdXRXZWJzb2NrZXRzTWVzc2FnZSBleHRlbmRzIEluY29taW5nR2VuZXJpY0RhdGEge1xuICAgIGRhdGE6IHtcbiAgICAgICAgcmVjb3JkOiBJUmVjb3JkTG9ja2luZ0xvY2tSZWNvcmQ7XG4gICAgICAgIHVzZXI6IElSZWNvcmRMb2NraW5nSWRlbnRpdHk7XG4gICAgfTtcbn1cbmludGVyZmFjZSBJRm9yY2VVbmxvY2tlZFByb3BzIHtcbiAgICB1c2VyOiBJUmVjb3JkTG9ja2luZ0lkZW50aXR5O1xufVxuY29uc3QgRm9yY2VVbmxvY2tlZCA9ICh7IHVzZXIgfTogSUZvcmNlVW5sb2NrZWRQcm9wcykgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICAgIDw+XG4gICAgICAgICAgICBUaGUgZW50cnkgeW91IHdlcmUgZWRpdGluZyB3YXMgZm9yY2VmdWxseSB1bmxvY2tlZCBieXtcIiBcIn1cbiAgICAgICAgICAgIDxCb2xkPnt1c2VyLmRpc3BsYXlOYW1lIHx8IFwiVW5rbm93biB1c2VyXCJ9PC9Cb2xkPi4gVW5mb3J0dW5hdGVseSwgdGhpcyBtZWFucyB5b3UgbG9zdFxuICAgICAgICAgICAgdGhlIHVuc2F2ZWQgY2hhbmdlcy5cbiAgICAgICAgPC8+XG4gICAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBDb250ZW50RW50cnlMb2NrZXIgPSAoe1xuICAgIG9uRW50cnlVbmxvY2tlZCxcbiAgICBvbkRpc2FibGVQcm9tcHQsXG4gICAgZW50cnksXG4gICAgbW9kZWwsXG4gICAgY2hpbGRyZW5cbn06IElDb250ZW50RW50cnlMb2NrZXJQcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgdXBkYXRlRW50cnlMb2NrLCB1bmxvY2tFbnRyeSwgZmV0Y2hMb2NrZWRFbnRyeUxvY2tSZWNvcmQsIHJlbW92ZUVudHJ5TG9jayB9ID1cbiAgICAgICAgdXNlUmVjb3JkTG9ja2luZygpO1xuXG4gICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gdXNlUmVmPElXZWJzb2NrZXRzU3Vic2NyaXB0aW9uPGFueT4+KCk7XG5cbiAgICBjb25zdCB3ZWJzb2NrZXRzID0gdXNlV2Vic29ja2V0cygpO1xuXG4gICAgY29uc3QgeyBzaG93RGlhbG9nIH0gPSB1c2VEaWFsb2dzKCk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIWVudHJ5LmlkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH0gZWxzZSBpZiAoc3Vic2NyaXB0aW9uLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbi5jdXJyZW50Lm9mZigpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgaWQ6IGVudHJ5SWQgfSA9IHBhcnNlSWRlbnRpZmllcihlbnRyeS5pZCk7XG5cbiAgICAgICAgc3Vic2NyaXB0aW9uLmN1cnJlbnQgPSB3ZWJzb2NrZXRzLm9uTWVzc2FnZTxJS2lja091dFdlYnNvY2tldHNNZXNzYWdlPihcbiAgICAgICAgICAgIGByZWNvcmRMb2NraW5nLmVudHJ5LmtpY2tPdXQuJHtlbnRyeUlkfWAsXG4gICAgICAgICAgICBhc3luYyBpbmNvbWluZyA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyB1c2VyIH0gPSBpbmNvbWluZy5kYXRhO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlY29yZDogSUlzUmVjb3JkTG9ja2VkUGFyYW1zID0ge1xuICAgICAgICAgICAgICAgICAgICBpZDogZW50cnlJZCxcbiAgICAgICAgICAgICAgICAgICAgJGxvY2tpbmdUeXBlOiBtb2RlbC5tb2RlbElkXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICByZW1vdmVFbnRyeUxvY2socmVjb3JkKTtcbiAgICAgICAgICAgICAgICBvbkRpc2FibGVQcm9tcHQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgc2hvd0RpYWxvZyh7XG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiBcIkVudHJ5IHdhcyBmb3JjZWZ1bGx5IHVubG9ja2VkIVwiLFxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiA8Rm9yY2VVbmxvY2tlZCB1c2VyPXt1c2VyfSAvPixcbiAgICAgICAgICAgICAgICAgICAgYWNjZXB0TGFiZWw6IFwiT2tcIixcbiAgICAgICAgICAgICAgICAgICAgb25DbG9zZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICBjYW5jZWxMYWJlbDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgb25FbnRyeVVubG9ja2VkKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIGlmICghc3Vic2NyaXB0aW9uLmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzdWJzY3JpcHRpb24uY3VycmVudC5vZmYoKTtcbiAgICAgICAgfTtcbiAgICB9LCBbZW50cnkuaWQsIG9uRW50cnlVbmxvY2tlZCwgbW9kZWwubW9kZWxJZF0pO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKCFlbnRyeS5pZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVjb3JkOiBJSXNSZWNvcmRMb2NrZWRQYXJhbXMgPSB7XG4gICAgICAgICAgICBpZDogZW50cnkuaWQsXG4gICAgICAgICAgICAkbG9ja2luZ1R5cGU6IG1vZGVsLm1vZGVsSWRcbiAgICAgICAgfTtcbiAgICAgICAgdXBkYXRlRW50cnlMb2NrKHJlY29yZCk7XG5cbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZmV0Y2hMb2NrZWRFbnRyeUxvY2tSZWNvcmQocmVjb3JkKTtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdW5sb2NrRW50cnkocmVjb3JkKTtcbiAgICAgICAgICAgIH0pKCk7XG4gICAgICAgIH07XG4gICAgfSwgW2VudHJ5LmlkXSk7XG5cbiAgICByZXR1cm4gPD57Y2hpbGRyZW59PC8+O1xufTtcbiJdfQ== */",
27
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNvbnRlbnRFbnRyeUxvY2tlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBY3dCIiwiZmlsZSI6IkNvbnRlbnRFbnRyeUxvY2tlci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1c2VSZWNvcmRMb2NraW5nIH0gZnJvbSBcIn4vaG9va3NcIjtcbmltcG9ydCB0eXBlIHtcbiAgICBJSXNSZWNvcmRMb2NrZWRQYXJhbXMsXG4gICAgSVJlY29yZExvY2tpbmdJZGVudGl0eSxcbiAgICBJUmVjb3JkTG9ja2luZ0xvY2tSZWNvcmRcbn0gZnJvbSBcIn4vdHlwZXNcIjtcbmltcG9ydCB0eXBlIHsgSW5jb21pbmdHZW5lcmljRGF0YSB9IGZyb20gXCJAd2ViaW55L2FwcC13ZWJzb2NrZXRzXCI7XG5pbXBvcnQgeyB1c2VXZWJzb2NrZXRzIH0gZnJvbSBcIkB3ZWJpbnkvYXBwLXdlYnNvY2tldHNcIjtcbmltcG9ydCB7IHBhcnNlSWRlbnRpZmllciB9IGZyb20gXCJAd2ViaW55L3V0aWxzXCI7XG5pbXBvcnQgeyB1c2VEaWFsb2dzIH0gZnJvbSBcIkB3ZWJpbnkvYXBwLWFkbWluXCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7IENtc0NvbnRlbnRFbnRyeSwgQ21zTW9kZWwgfSBmcm9tIFwiQHdlYmlueS9hcHAtaGVhZGxlc3MtY21zL3R5cGVzXCI7XG5cbmNvbnN0IEJvbGQgPSBzdHlsZWQuc3BhbmBcbiAgICBmb250LXdlaWdodDogNjAwO1xuYDtcblxuZXhwb3J0IGludGVyZmFjZSBJQ29udGVudEVudHJ5TG9ja2VyUHJvcHMge1xuICAgIGVudHJ5OiBDbXNDb250ZW50RW50cnk7XG4gICAgbW9kZWw6IENtc01vZGVsO1xuICAgIG9uRW50cnlVbmxvY2tlZDogKCkgPT4gdm9pZDtcbiAgICBvbkRpc2FibGVQcm9tcHQ6IChmbGFnOiBib29sZWFuKSA9PiB2b2lkO1xuICAgIGNoaWxkcmVuOiBSZWFjdC5SZWFjdEVsZW1lbnQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUtpY2tPdXRXZWJzb2NrZXRzTWVzc2FnZSBleHRlbmRzIEluY29taW5nR2VuZXJpY0RhdGEge1xuICAgIGRhdGE6IHtcbiAgICAgICAgcmVjb3JkOiBJUmVjb3JkTG9ja2luZ0xvY2tSZWNvcmQ7XG4gICAgICAgIHVzZXI6IElSZWNvcmRMb2NraW5nSWRlbnRpdHk7XG4gICAgfTtcbn1cbmludGVyZmFjZSBJRm9yY2VVbmxvY2tlZFByb3BzIHtcbiAgICB1c2VyOiBJUmVjb3JkTG9ja2luZ0lkZW50aXR5O1xufVxuY29uc3QgRm9yY2VVbmxvY2tlZCA9ICh7IHVzZXIgfTogSUZvcmNlVW5sb2NrZWRQcm9wcykgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICAgIDw+XG4gICAgICAgICAgICBUaGUgZW50cnkgeW91IHdlcmUgZWRpdGluZyB3YXMgZm9yY2VmdWxseSB1bmxvY2tlZCBieXtcIiBcIn1cbiAgICAgICAgICAgIDxCb2xkPnt1c2VyLmRpc3BsYXlOYW1lIHx8IFwiVW5rbm93biB1c2VyXCJ9PC9Cb2xkPi4gVW5mb3J0dW5hdGVseSwgdGhpcyBtZWFucyB5b3UgbG9zdFxuICAgICAgICAgICAgdGhlIHVuc2F2ZWQgY2hhbmdlcy5cbiAgICAgICAgPC8+XG4gICAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBDb250ZW50RW50cnlMb2NrZXIgPSAoe1xuICAgIG9uRW50cnlVbmxvY2tlZCxcbiAgICBvbkRpc2FibGVQcm9tcHQsXG4gICAgZW50cnksXG4gICAgbW9kZWwsXG4gICAgY2hpbGRyZW5cbn06IElDb250ZW50RW50cnlMb2NrZXJQcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgdXBkYXRlRW50cnlMb2NrLCB1bmxvY2tFbnRyeSwgZmV0Y2hMb2NrZWRFbnRyeUxvY2tSZWNvcmQsIHJlbW92ZUVudHJ5TG9jayB9ID1cbiAgICAgICAgdXNlUmVjb3JkTG9ja2luZygpO1xuICAgIGNvbnN0IHdlYnNvY2tldHMgPSB1c2VXZWJzb2NrZXRzKCk7XG4gICAgY29uc3QgeyBzaG93RGlhbG9nIH0gPSB1c2VEaWFsb2dzKCk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIWVudHJ5LmlkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeyBpZDogZW50cnlJZCB9ID0gcGFyc2VJZGVudGlmaWVyKGVudHJ5LmlkKTtcblxuICAgICAgICBjb25zdCByZW1vdmVFbnRyeUxvY2tDYiA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlY29yZDogSUlzUmVjb3JkTG9ja2VkUGFyYW1zID0ge1xuICAgICAgICAgICAgICAgIGlkOiBlbnRyeUlkLFxuICAgICAgICAgICAgICAgICRsb2NraW5nVHlwZTogbW9kZWwubW9kZWxJZFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJlbW92ZUVudHJ5TG9jayhyZWNvcmQpO1xuICAgICAgICAgICAgYXdhaXQgdW5sb2NrRW50cnkocmVjb3JkKTtcbiAgICAgICAgfTtcblxuICAgICAgICBsZXQgb25NZXNzYWdlU3ViID0gd2Vic29ja2V0cy5vbk1lc3NhZ2U8SUtpY2tPdXRXZWJzb2NrZXRzTWVzc2FnZT4oXG4gICAgICAgICAgICBgcmVjb3JkTG9ja2luZy5lbnRyeS5raWNrT3V0LiR7ZW50cnlJZH1gLFxuICAgICAgICAgICAgYXN5bmMgaW5jb21pbmcgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgdXNlciB9ID0gaW5jb21pbmcuZGF0YTtcbiAgICAgICAgICAgICAgICBvbkRpc2FibGVQcm9tcHQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgYXdhaXQgcmVtb3ZlRW50cnlMb2NrQ2IoKTtcbiAgICAgICAgICAgICAgICBzaG93RGlhbG9nKHtcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFwiRW50cnkgd2FzIGZvcmNlZnVsbHkgdW5sb2NrZWQhXCIsXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IDxGb3JjZVVubG9ja2VkIHVzZXI9e3VzZXJ9IC8+LFxuICAgICAgICAgICAgICAgICAgICBhY2NlcHRMYWJlbDogXCJPa1wiLFxuICAgICAgICAgICAgICAgICAgICBvbkNsb3NlOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgIGNhbmNlbExhYmVsOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBvbkVudHJ5VW5sb2NrZWQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgb25NZXNzYWdlU3ViLm9mZigpO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBMZXRzIG51bGwgc3Vic2NyaXB0aW9ucywganVzdCBpbiBjYXNlIGl0Li4uXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICAgICAgICAgIG9uTWVzc2FnZVN1YiA9IG51bGw7XG4gICAgICAgIH07XG4gICAgfSwgW2VudHJ5LmlkLCBvbkVudHJ5VW5sb2NrZWQsIG1vZGVsLm1vZGVsSWRdKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICghZW50cnkuaWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJlY29yZDogSUlzUmVjb3JkTG9ja2VkUGFyYW1zID0ge1xuICAgICAgICAgICAgaWQ6IGVudHJ5LmlkLFxuICAgICAgICAgICAgJGxvY2tpbmdUeXBlOiBtb2RlbC5tb2RlbElkXG4gICAgICAgIH07XG4gICAgICAgIHVwZGF0ZUVudHJ5TG9jayhyZWNvcmQpO1xuXG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICAoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGZldGNoTG9ja2VkRW50cnlMb2NrUmVjb3JkKHJlY29yZCk7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJlbW92ZUVudHJ5TG9jayhyZWNvcmQpO1xuICAgICAgICAgICAgICAgIGF3YWl0IHVubG9ja0VudHJ5KHJlY29yZCk7XG4gICAgICAgICAgICB9KSgpO1xuICAgICAgICB9O1xuICAgIH0sIFtlbnRyeS5pZF0pO1xuXG4gICAgcmV0dXJuIDw+e2NoaWxkcmVufTwvPjtcbn07XG4iXX0= */",
28
28
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
29
29
  });
30
30
  var ForceUnlocked = function ForceUnlocked(_ref) {
@@ -42,26 +42,27 @@ var ContentEntryLocker = exports.ContentEntryLocker = function ContentEntryLocke
42
42
  unlockEntry = _useRecordLocking.unlockEntry,
43
43
  fetchLockedEntryLockRecord = _useRecordLocking.fetchLockedEntryLockRecord,
44
44
  removeEntryLock = _useRecordLocking.removeEntryLock;
45
- var subscription = (0, _react.useRef)();
46
45
  var websockets = (0, _appWebsockets.useWebsockets)();
47
46
  var _useDialogs = (0, _appAdmin.useDialogs)(),
48
47
  showDialog = _useDialogs.showDialog;
49
48
  (0, _react.useEffect)(function () {
50
49
  if (!entry.id) {
51
50
  return;
52
- } else if (subscription.current) {
53
- subscription.current.off();
54
51
  }
55
52
  var _parseIdentifier = (0, _utils.parseIdentifier)(entry.id),
56
53
  entryId = _parseIdentifier.id;
57
- subscription.current = websockets.onMessage("recordLocking.entry.kickOut.".concat(entryId), async function (incoming) {
58
- var user = incoming.data.user;
54
+ var removeEntryLockCb = async function removeEntryLockCb() {
59
55
  var record = {
60
56
  id: entryId,
61
57
  $lockingType: model.modelId
62
58
  };
63
59
  removeEntryLock(record);
60
+ await unlockEntry(record);
61
+ };
62
+ var onMessageSub = websockets.onMessage("recordLocking.entry.kickOut.".concat(entryId), async function (incoming) {
63
+ var user = incoming.data.user;
64
64
  onDisablePrompt(true);
65
+ await removeEntryLockCb();
65
66
  showDialog({
66
67
  title: "Entry was forcefully unlocked!",
67
68
  content: /*#__PURE__*/_react.default.createElement(ForceUnlocked, {
@@ -74,10 +75,12 @@ var ContentEntryLocker = exports.ContentEntryLocker = function ContentEntryLocke
74
75
  onEntryUnlocked();
75
76
  });
76
77
  return function () {
77
- if (!subscription.current) {
78
- return;
79
- }
80
- subscription.current.off();
78
+ onMessageSub.off();
79
+ /**
80
+ * Lets null subscriptions, just in case it...
81
+ */
82
+ // @ts-expect-error
83
+ onMessageSub = null;
81
84
  };
82
85
  }, [entry.id, onEntryUnlocked, model.modelId]);
83
86
  (0, _react.useEffect)(function () {
@@ -95,7 +98,8 @@ var ContentEntryLocker = exports.ContentEntryLocker = function ContentEntryLocke
95
98
  if (result) {
96
99
  return;
97
100
  }
98
- unlockEntry(record);
101
+ removeEntryLock(record);
102
+ await unlockEntry(record);
99
103
  })();
100
104
  };
101
105
  }, [entry.id]);
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_hooks","_appWebsockets","_utils","_appAdmin","_EMOTION_STRINGIFIED_CSS_ERROR__","Bold","_base","default","process","env","NODE_ENV","target","label","name","styles","map","toString","ForceUnlocked","_ref","user","createElement","Fragment","displayName","ContentEntryLocker","exports","_ref2","onEntryUnlocked","onDisablePrompt","entry","model","children","_useRecordLocking","useRecordLocking","updateEntryLock","unlockEntry","fetchLockedEntryLockRecord","removeEntryLock","subscription","useRef","websockets","useWebsockets","_useDialogs","useDialogs","showDialog","useEffect","id","current","off","_parseIdentifier","parseIdentifier","entryId","onMessage","concat","incoming","data","record","$lockingType","modelId","title","content","acceptLabel","onClose","undefined","cancelLabel","result"],"sources":["ContentEntryLocker.tsx"],"sourcesContent":["import React, { useEffect, useRef } from \"react\";\nimport { useRecordLocking } from \"~/hooks\";\nimport { IIsRecordLockedParams, IRecordLockingIdentity, IRecordLockingLockRecord } from \"~/types\";\nimport {\n IncomingGenericData,\n IWebsocketsSubscription,\n useWebsockets\n} from \"@webiny/app-websockets\";\nimport { parseIdentifier } from \"@webiny/utils\";\nimport { useDialogs } from \"@webiny/app-admin\";\nimport styled from \"@emotion/styled\";\nimport { CmsContentEntry, CmsModel } from \"@webiny/app-headless-cms/types\";\n\nconst Bold = styled.span`\n font-weight: 600;\n`;\n\nexport interface IContentEntryLockerProps {\n entry: CmsContentEntry;\n model: CmsModel;\n onEntryUnlocked: () => void;\n onDisablePrompt: (flag: boolean) => void;\n children: React.ReactElement;\n}\n\nexport interface IKickOutWebsocketsMessage extends IncomingGenericData {\n data: {\n record: IRecordLockingLockRecord;\n user: IRecordLockingIdentity;\n };\n}\ninterface IForceUnlockedProps {\n user: IRecordLockingIdentity;\n}\nconst ForceUnlocked = ({ user }: IForceUnlockedProps) => {\n return (\n <>\n The entry you were editing was forcefully unlocked by{\" \"}\n <Bold>{user.displayName || \"Unknown user\"}</Bold>. Unfortunately, this means you lost\n the unsaved changes.\n </>\n );\n};\n\nexport const ContentEntryLocker = ({\n onEntryUnlocked,\n onDisablePrompt,\n entry,\n model,\n children\n}: IContentEntryLockerProps) => {\n const { updateEntryLock, unlockEntry, fetchLockedEntryLockRecord, removeEntryLock } =\n useRecordLocking();\n\n const subscription = useRef<IWebsocketsSubscription<any>>();\n\n const websockets = useWebsockets();\n\n const { showDialog } = useDialogs();\n\n useEffect(() => {\n if (!entry.id) {\n return;\n } else if (subscription.current) {\n subscription.current.off();\n }\n const { id: entryId } = parseIdentifier(entry.id);\n\n subscription.current = websockets.onMessage<IKickOutWebsocketsMessage>(\n `recordLocking.entry.kickOut.${entryId}`,\n async incoming => {\n const { user } = incoming.data;\n const record: IIsRecordLockedParams = {\n id: entryId,\n $lockingType: model.modelId\n };\n removeEntryLock(record);\n onDisablePrompt(true);\n showDialog({\n title: \"Entry was forcefully unlocked!\",\n content: <ForceUnlocked user={user} />,\n acceptLabel: \"Ok\",\n onClose: undefined,\n cancelLabel: undefined\n });\n onEntryUnlocked();\n }\n );\n\n return () => {\n if (!subscription.current) {\n return;\n }\n subscription.current.off();\n };\n }, [entry.id, onEntryUnlocked, model.modelId]);\n\n useEffect(() => {\n if (!entry.id) {\n return;\n }\n\n const record: IIsRecordLockedParams = {\n id: entry.id,\n $lockingType: model.modelId\n };\n updateEntryLock(record);\n\n return () => {\n (async () => {\n const result = await fetchLockedEntryLockRecord(record);\n if (result) {\n return;\n }\n unlockEntry(record);\n })();\n };\n }, [entry.id]);\n\n return <>{children}</>;\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_hooks","_appWebsockets","_utils","_appAdmin","_EMOTION_STRINGIFIED_CSS_ERROR__","Bold","_base","default","process","env","NODE_ENV","target","label","name","styles","map","toString","ForceUnlocked","_ref","user","createElement","Fragment","displayName","ContentEntryLocker","exports","_ref2","onEntryUnlocked","onDisablePrompt","entry","model","children","_useRecordLocking","useRecordLocking","updateEntryLock","unlockEntry","fetchLockedEntryLockRecord","removeEntryLock","websockets","useWebsockets","_useDialogs","useDialogs","showDialog","useEffect","id","_parseIdentifier","parseIdentifier","entryId","removeEntryLockCb","record","$lockingType","modelId","onMessageSub","onMessage","concat","incoming","data","title","content","acceptLabel","onClose","undefined","cancelLabel","off","result"],"sources":["ContentEntryLocker.tsx"],"sourcesContent":["import React, { useEffect } from \"react\";\nimport { useRecordLocking } from \"~/hooks\";\nimport type {\n IIsRecordLockedParams,\n IRecordLockingIdentity,\n IRecordLockingLockRecord\n} from \"~/types\";\nimport type { IncomingGenericData } from \"@webiny/app-websockets\";\nimport { useWebsockets } from \"@webiny/app-websockets\";\nimport { parseIdentifier } from \"@webiny/utils\";\nimport { useDialogs } from \"@webiny/app-admin\";\nimport styled from \"@emotion/styled\";\nimport { CmsContentEntry, CmsModel } from \"@webiny/app-headless-cms/types\";\n\nconst Bold = styled.span`\n font-weight: 600;\n`;\n\nexport interface IContentEntryLockerProps {\n entry: CmsContentEntry;\n model: CmsModel;\n onEntryUnlocked: () => void;\n onDisablePrompt: (flag: boolean) => void;\n children: React.ReactElement;\n}\n\nexport interface IKickOutWebsocketsMessage extends IncomingGenericData {\n data: {\n record: IRecordLockingLockRecord;\n user: IRecordLockingIdentity;\n };\n}\ninterface IForceUnlockedProps {\n user: IRecordLockingIdentity;\n}\nconst ForceUnlocked = ({ user }: IForceUnlockedProps) => {\n return (\n <>\n The entry you were editing was forcefully unlocked by{\" \"}\n <Bold>{user.displayName || \"Unknown user\"}</Bold>. Unfortunately, this means you lost\n the unsaved changes.\n </>\n );\n};\n\nexport const ContentEntryLocker = ({\n onEntryUnlocked,\n onDisablePrompt,\n entry,\n model,\n children\n}: IContentEntryLockerProps) => {\n const { updateEntryLock, unlockEntry, fetchLockedEntryLockRecord, removeEntryLock } =\n useRecordLocking();\n const websockets = useWebsockets();\n const { showDialog } = useDialogs();\n\n useEffect(() => {\n if (!entry.id) {\n return;\n }\n const { id: entryId } = parseIdentifier(entry.id);\n\n const removeEntryLockCb = async () => {\n const record: IIsRecordLockedParams = {\n id: entryId,\n $lockingType: model.modelId\n };\n removeEntryLock(record);\n await unlockEntry(record);\n };\n\n let onMessageSub = websockets.onMessage<IKickOutWebsocketsMessage>(\n `recordLocking.entry.kickOut.${entryId}`,\n async incoming => {\n const { user } = incoming.data;\n onDisablePrompt(true);\n await removeEntryLockCb();\n showDialog({\n title: \"Entry was forcefully unlocked!\",\n content: <ForceUnlocked user={user} />,\n acceptLabel: \"Ok\",\n onClose: undefined,\n cancelLabel: undefined\n });\n onEntryUnlocked();\n }\n );\n\n return () => {\n onMessageSub.off();\n /**\n * Lets null subscriptions, just in case it...\n */\n // @ts-expect-error\n onMessageSub = null;\n };\n }, [entry.id, onEntryUnlocked, model.modelId]);\n\n useEffect(() => {\n if (!entry.id) {\n return;\n }\n\n const record: IIsRecordLockedParams = {\n id: entry.id,\n $lockingType: model.modelId\n };\n updateEntryLock(record);\n\n return () => {\n (async () => {\n const result = await fetchLockedEntryLockRecord(record);\n if (result) {\n return;\n }\n removeEntryLock(record);\n await unlockEntry(record);\n })();\n };\n }, [entry.id]);\n\n return <>{children}</>;\n};\n"],"mappings":"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","ignoreList":[]}
@@ -27,7 +27,7 @@ var Wrapper = /*#__PURE__*/(0, _base.default)("div", process.env.NODE_ENV === "p
27
27
  } : {
28
28
  name: "38ejjw",
29
29
  styles: "padding:0;background-color:white",
30
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkxvY2tlZFJlY29yZEZvcmNlVW5sb2NrLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFVZ0IiLCJmaWxlIjoiTG9ja2VkUmVjb3JkRm9yY2VVbmxvY2sudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7IElSZWNvcmRMb2NraW5nRXJyb3IsIElSZWNvcmRMb2NraW5nSWRlbnRpdHkgfSBmcm9tIFwifi90eXBlc1wiO1xuaW1wb3J0IHsgdXNlQ29uZmlybWF0aW9uRGlhbG9nLCB1c2VTbmFja2JhciB9IGZyb20gXCJAd2ViaW55L2FwcC1hZG1pblwiO1xuaW1wb3J0IHsgdXNlUmVjb3JkTG9ja2luZywgdXNlUGVybWlzc2lvbiB9IGZyb20gXCJ+L2hvb2tzXCI7XG5pbXBvcnQgeyB1c2VSb3V0ZXIgfSBmcm9tIFwiQHdlYmlueS9yZWFjdC1yb3V0ZXJcIjtcbmltcG9ydCB7IHVzZUNvbnRlbnRFbnRyaWVzTGlzdCB9IGZyb20gXCJAd2ViaW55L2FwcC1oZWFkbGVzcy1jbXNcIjtcbmltcG9ydCB7IEFsZXJ0IH0gZnJvbSBcIkB3ZWJpbnkvdWkvQWxlcnRcIjtcbmltcG9ydCB7IEJ1dHRvblByaW1hcnkgfSBmcm9tIFwiQHdlYmlueS91aS9CdXR0b25cIjtcblxuY29uc3QgV3JhcHBlciA9IHN0eWxlZChcImRpdlwiKSh7XG4gICAgcGFkZGluZzogXCIwXCIsXG4gICAgYmFja2dyb3VuZENvbG9yOiBcIndoaXRlXCJcbn0pO1xuXG5jb25zdCBUZXh0ID0gc3R5bGVkKFwicFwiKSh7XG4gICAgbGluZUhlaWdodDogXCIxMjUlXCJcbn0pO1xuXG5jb25zdCBCb2xkID0gc3R5bGVkKFwic3BhblwiKSh7XG4gICAgZm9udFdlaWdodDogNjAwXG59KTtcblxuZXhwb3J0IGludGVyZmFjZSBJTG9ja2VkUmVjb3JkRm9yY2VVbmxvY2tQcm9wcyB7XG4gICAgaWQ6IHN0cmluZztcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBsb2NrZWRCeT86IElSZWNvcmRMb2NraW5nSWRlbnRpdHk7XG59XG5cbmNvbnN0IEVycm9yTWVzc2FnZSA9IChwcm9wczogSUxvY2tlZFJlY29yZEZvcmNlVW5sb2NrUHJvcHMpID0+IHtcbiAgICBjb25zdCB7IHRpdGxlLCBsb2NrZWRCeSB9ID0gcHJvcHM7XG4gICAgcmV0dXJuIChcbiAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxBbGVydCB0eXBlPVwid2FybmluZ1wiIHRpdGxlPVwiV2FybmluZ1wiPlxuICAgICAgICAgICAgICAgIDxCb2xkPntsb2NrZWRCeT8uZGlzcGxheU5hbWUgfHwgXCJVbmtub3duIHVzZXJcIn08L0JvbGQ+IGlzIGN1cnJlbnRseSBlZGl0aW5nIHRoaXNcbiAgICAgICAgICAgICAgICByZWNvcmQuXG4gICAgICAgICAgICAgICAgPGJyIC8+IElmIHlvdSBmb3JjZSB1bmxvY2sgaXQsIHRoZXkgY291bGQgcG90ZW50aWFsbHkgbG9zZSB0aGVpciBjaGFuZ2VzLlxuICAgICAgICAgICAgPC9BbGVydD5cbiAgICAgICAgICAgIDxiciAvPlxuICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgWW91IGFyZSBhYm91dCB0byBmb3JjZWZ1bGx5IHVubG9jayB0aGUgPEJvbGQ+e3RpdGxlfTwvQm9sZD4gZW50cnkuXG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8cD5BcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gY29udGludWU/PC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICApO1xufTtcblxuZXhwb3J0IGNvbnN0IExvY2tlZFJlY29yZEZvcmNlVW5sb2NrID0gKHByb3BzOiBJTG9ja2VkUmVjb3JkRm9yY2VVbmxvY2tQcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgdW5sb2NrRW50cnlGb3JjZSB9ID0gdXNlUmVjb3JkTG9ja2luZygpO1xuXG4gICAgY29uc3QgeyBuYXZpZ2F0ZVRvIH0gPSB1c2VDb250ZW50RW50cmllc0xpc3QoKTtcbiAgICBjb25zdCB7IHNob3dDb25maXJtYXRpb246IHNob3dGb3JjZVVubG9ja0NvbmZpcm1hdGlvbiB9ID0gdXNlQ29uZmlybWF0aW9uRGlhbG9nKHtcbiAgICAgICAgdGl0bGU6IFwiRm9yY2UgdW5sb2NrIHRoZSBlbnRyeVwiLFxuICAgICAgICBtZXNzYWdlOiA8RXJyb3JNZXNzYWdlIHsuLi5wcm9wc30gLz5cbiAgICB9KTtcbiAgICBjb25zdCB7IHNob3dTbmFja2JhciB9ID0gdXNlU25hY2tiYXIoKTtcblxuICAgIGNvbnN0IHsgaGlzdG9yeSB9ID0gdXNlUm91dGVyKCk7XG5cbiAgICBjb25zdCBbZXJyb3IsIHNldEVycm9yXSA9IHVzZVN0YXRlPElSZWNvcmRMb2NraW5nRXJyb3I+KCk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIWVycm9yPy5tZXNzYWdlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgIHNob3dTbmFja2JhcihlcnJvci5tZXNzYWdlKTtcbiAgICB9LCBbZXJyb3I/Lm1lc3NhZ2VdKTtcblxuICAgIGNvbnN0IG9uQ2xpY2sgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIHNob3dGb3JjZVVubG9ja0NvbmZpcm1hdGlvbihhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB1bmxvY2tFbnRyeUZvcmNlKHtcbiAgICAgICAgICAgICAgICBpZDogcHJvcHMuaWQsXG4gICAgICAgICAgICAgICAgJGxvY2tpbmdUeXBlOiBwcm9wcy50eXBlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmICghcmVzdWx0LmVycm9yKSB7XG4gICAgICAgICAgICAgICAgbmF2aWdhdGVUbygpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNldEVycm9yKHJlc3VsdC5lcnJvcik7XG4gICAgICAgIH0pO1xuICAgIH0sIFtwcm9wcy5pZCwgaGlzdG9yeSwgbmF2aWdhdGVUb10pO1xuXG4gICAgY29uc3QgeyBoYXNGdWxsQWNjZXNzIH0gPSB1c2VQZXJtaXNzaW9uKCk7XG4gICAgaWYgKCFoYXNGdWxsQWNjZXNzKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICAgIDxXcmFwcGVyPlxuICAgICAgICAgICAgPFRleHQ+XG4gICAgICAgICAgICAgICAgQmVjYXVzZSB5b3UgaGF2ZSBhIGZ1bGwgYWNjZXNzIHRvIHRoZSBzeXN0ZW0sIHlvdSBjYW4gZm9yY2UgdW5sb2NrIHRoZSByZWNvcmQuXG4gICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgICA8YnIgLz5cbiAgICAgICAgICAgIDxCdXR0b25QcmltYXJ5IG9uQ2xpY2s9e29uQ2xpY2t9PlVubG9jayBhbmQgZ28gYmFjazwvQnV0dG9uUHJpbWFyeT5cbiAgICAgICAgPC9XcmFwcGVyPlxuICAgICk7XG59O1xuIl19 */",
30
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkxvY2tlZFJlY29yZEZvcmNlVW5sb2NrLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFVZ0IiLCJmaWxlIjoiTG9ja2VkUmVjb3JkRm9yY2VVbmxvY2sudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7IElSZWNvcmRMb2NraW5nRXJyb3IsIElSZWNvcmRMb2NraW5nSWRlbnRpdHkgfSBmcm9tIFwifi90eXBlc1wiO1xuaW1wb3J0IHsgdXNlQ29uZmlybWF0aW9uRGlhbG9nLCB1c2VTbmFja2JhciB9IGZyb20gXCJAd2ViaW55L2FwcC1hZG1pblwiO1xuaW1wb3J0IHsgdXNlUmVjb3JkTG9ja2luZywgdXNlUGVybWlzc2lvbiB9IGZyb20gXCJ+L2hvb2tzXCI7XG5pbXBvcnQgeyB1c2VSb3V0ZXIgfSBmcm9tIFwiQHdlYmlueS9yZWFjdC1yb3V0ZXJcIjtcbmltcG9ydCB7IHVzZUNvbnRlbnRFbnRyaWVzTGlzdCB9IGZyb20gXCJAd2ViaW55L2FwcC1oZWFkbGVzcy1jbXNcIjtcbmltcG9ydCB7IEFsZXJ0IH0gZnJvbSBcIkB3ZWJpbnkvdWkvQWxlcnRcIjtcbmltcG9ydCB7IEJ1dHRvblByaW1hcnkgfSBmcm9tIFwiQHdlYmlueS91aS9CdXR0b25cIjtcblxuY29uc3QgV3JhcHBlciA9IHN0eWxlZChcImRpdlwiKSh7XG4gICAgcGFkZGluZzogXCIwXCIsXG4gICAgYmFja2dyb3VuZENvbG9yOiBcIndoaXRlXCJcbn0pO1xuXG5jb25zdCBUZXh0ID0gc3R5bGVkKFwicFwiKSh7XG4gICAgbGluZUhlaWdodDogXCIxMjUlXCJcbn0pO1xuXG5jb25zdCBCb2xkID0gc3R5bGVkKFwic3BhblwiKSh7XG4gICAgZm9udFdlaWdodDogNjAwXG59KTtcblxuZXhwb3J0IGludGVyZmFjZSBJTG9ja2VkUmVjb3JkRm9yY2VVbmxvY2tQcm9wcyB7XG4gICAgaWQ6IHN0cmluZztcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBsb2NrZWRCeT86IElSZWNvcmRMb2NraW5nSWRlbnRpdHk7XG59XG5cbmNvbnN0IEVycm9yTWVzc2FnZSA9IChwcm9wczogSUxvY2tlZFJlY29yZEZvcmNlVW5sb2NrUHJvcHMpID0+IHtcbiAgICBjb25zdCB7IHRpdGxlLCBsb2NrZWRCeSB9ID0gcHJvcHM7XG4gICAgcmV0dXJuIChcbiAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxBbGVydCB0eXBlPVwid2FybmluZ1wiIHRpdGxlPVwiV2FybmluZ1wiPlxuICAgICAgICAgICAgICAgIDxCb2xkPntsb2NrZWRCeT8uZGlzcGxheU5hbWUgfHwgXCJVbmtub3duIHVzZXJcIn08L0JvbGQ+IGlzIGN1cnJlbnRseSBlZGl0aW5nIHRoaXNcbiAgICAgICAgICAgICAgICByZWNvcmQuXG4gICAgICAgICAgICAgICAgPGJyIC8+IElmIHlvdSBmb3JjZSB1bmxvY2sgaXQsIHRoZXkgY291bGQgcG90ZW50aWFsbHkgbG9zZSB0aGVpciBjaGFuZ2VzLlxuICAgICAgICAgICAgPC9BbGVydD5cbiAgICAgICAgICAgIDxiciAvPlxuICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgWW91IGFyZSBhYm91dCB0byBmb3JjZWZ1bGx5IHVubG9jayB0aGUgPEJvbGQ+e3RpdGxlfTwvQm9sZD4gZW50cnkuXG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8cD5BcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gY29udGludWU/PC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICApO1xufTtcblxuZXhwb3J0IGNvbnN0IExvY2tlZFJlY29yZEZvcmNlVW5sb2NrID0gKHByb3BzOiBJTG9ja2VkUmVjb3JkRm9yY2VVbmxvY2tQcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgdW5sb2NrRW50cnlGb3JjZSB9ID0gdXNlUmVjb3JkTG9ja2luZygpO1xuXG4gICAgY29uc3QgeyBuYXZpZ2F0ZVRvIH0gPSB1c2VDb250ZW50RW50cmllc0xpc3QoKTtcbiAgICBjb25zdCB7IHNob3dDb25maXJtYXRpb246IHNob3dGb3JjZVVubG9ja0NvbmZpcm1hdGlvbiB9ID0gdXNlQ29uZmlybWF0aW9uRGlhbG9nKHtcbiAgICAgICAgdGl0bGU6IFwiRm9yY2UgdW5sb2NrIHRoZSBlbnRyeVwiLFxuICAgICAgICBtZXNzYWdlOiA8RXJyb3JNZXNzYWdlIHsuLi5wcm9wc30gLz5cbiAgICB9KTtcbiAgICBjb25zdCB7IHNob3dTbmFja2JhciB9ID0gdXNlU25hY2tiYXIoKTtcblxuICAgIGNvbnN0IHsgaGlzdG9yeSB9ID0gdXNlUm91dGVyKCk7XG5cbiAgICBjb25zdCBbZXJyb3IsIHNldEVycm9yXSA9IHVzZVN0YXRlPElSZWNvcmRMb2NraW5nRXJyb3I+KCk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIWVycm9yPy5tZXNzYWdlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgIHNob3dTbmFja2JhcihlcnJvci5tZXNzYWdlKTtcbiAgICB9LCBbZXJyb3I/Lm1lc3NhZ2VdKTtcblxuICAgIGNvbnN0IG9uQ2xpY2sgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIHNob3dGb3JjZVVubG9ja0NvbmZpcm1hdGlvbihhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB1bmxvY2tFbnRyeUZvcmNlKHtcbiAgICAgICAgICAgICAgICBpZDogcHJvcHMuaWQsXG4gICAgICAgICAgICAgICAgJGxvY2tpbmdUeXBlOiBwcm9wcy50eXBlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmICghcmVzdWx0LmVycm9yKSB7XG4gICAgICAgICAgICAgICAgbmF2aWdhdGVUbygpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNldEVycm9yKHJlc3VsdC5lcnJvcik7XG4gICAgICAgIH0pO1xuICAgIH0sIFtwcm9wcy5pZCwgaGlzdG9yeSwgbmF2aWdhdGVUb10pO1xuXG4gICAgY29uc3QgeyBjYW5Gb3JjZVVubG9jayB9ID0gdXNlUGVybWlzc2lvbigpO1xuICAgIGlmICghY2FuRm9yY2VVbmxvY2spIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPFdyYXBwZXI+XG4gICAgICAgICAgICA8VGV4dD5cbiAgICAgICAgICAgICAgICBCZWNhdXNlIHlvdSBoYXZlIGEgZnVsbCBhY2Nlc3MgdG8gdGhlIHN5c3RlbSwgeW91IGNhbiBmb3JjZSB1bmxvY2sgdGhlIHJlY29yZC5cbiAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICAgIDxiciAvPlxuICAgICAgICAgICAgPEJ1dHRvblByaW1hcnkgb25DbGljaz17b25DbGlja30+VW5sb2NrIGFuZCBnbyBiYWNrPC9CdXR0b25QcmltYXJ5PlxuICAgICAgICA8L1dyYXBwZXI+XG4gICAgKTtcbn07XG4iXX0= */",
31
31
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
32
32
  });
33
33
  var Text = /*#__PURE__*/(0, _base.default)("p", process.env.NODE_ENV === "production" ? {
@@ -41,7 +41,7 @@ var Text = /*#__PURE__*/(0, _base.default)("p", process.env.NODE_ENV === "produc
41
41
  } : {
42
42
  name: "sqtwzz",
43
43
  styles: "line-height:125%",
44
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkxvY2tlZFJlY29yZEZvcmNlVW5sb2NrLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFlYSIsImZpbGUiOiJMb2NrZWRSZWNvcmRGb3JjZVVubG9jay50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHsgSVJlY29yZExvY2tpbmdFcnJvciwgSVJlY29yZExvY2tpbmdJZGVudGl0eSB9IGZyb20gXCJ+L3R5cGVzXCI7XG5pbXBvcnQgeyB1c2VDb25maXJtYXRpb25EaWFsb2csIHVzZVNuYWNrYmFyIH0gZnJvbSBcIkB3ZWJpbnkvYXBwLWFkbWluXCI7XG5pbXBvcnQgeyB1c2VSZWNvcmRMb2NraW5nLCB1c2VQZXJtaXNzaW9uIH0gZnJvbSBcIn4vaG9va3NcIjtcbmltcG9ydCB7IHVzZVJvdXRlciB9IGZyb20gXCJAd2ViaW55L3JlYWN0LXJvdXRlclwiO1xuaW1wb3J0IHsgdXNlQ29udGVudEVudHJpZXNMaXN0IH0gZnJvbSBcIkB3ZWJpbnkvYXBwLWhlYWRsZXNzLWNtc1wiO1xuaW1wb3J0IHsgQWxlcnQgfSBmcm9tIFwiQHdlYmlueS91aS9BbGVydFwiO1xuaW1wb3J0IHsgQnV0dG9uUHJpbWFyeSB9IGZyb20gXCJAd2ViaW55L3VpL0J1dHRvblwiO1xuXG5jb25zdCBXcmFwcGVyID0gc3R5bGVkKFwiZGl2XCIpKHtcbiAgICBwYWRkaW5nOiBcIjBcIixcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IFwid2hpdGVcIlxufSk7XG5cbmNvbnN0IFRleHQgPSBzdHlsZWQoXCJwXCIpKHtcbiAgICBsaW5lSGVpZ2h0OiBcIjEyNSVcIlxufSk7XG5cbmNvbnN0IEJvbGQgPSBzdHlsZWQoXCJzcGFuXCIpKHtcbiAgICBmb250V2VpZ2h0OiA2MDBcbn0pO1xuXG5leHBvcnQgaW50ZXJmYWNlIElMb2NrZWRSZWNvcmRGb3JjZVVubG9ja1Byb3BzIHtcbiAgICBpZDogc3RyaW5nO1xuICAgIHR5cGU6IHN0cmluZztcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIGxvY2tlZEJ5PzogSVJlY29yZExvY2tpbmdJZGVudGl0eTtcbn1cblxuY29uc3QgRXJyb3JNZXNzYWdlID0gKHByb3BzOiBJTG9ja2VkUmVjb3JkRm9yY2VVbmxvY2tQcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgdGl0bGUsIGxvY2tlZEJ5IH0gPSBwcm9wcztcbiAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPEFsZXJ0IHR5cGU9XCJ3YXJuaW5nXCIgdGl0bGU9XCJXYXJuaW5nXCI+XG4gICAgICAgICAgICAgICAgPEJvbGQ+e2xvY2tlZEJ5Py5kaXNwbGF5TmFtZSB8fCBcIlVua25vd24gdXNlclwifTwvQm9sZD4gaXMgY3VycmVudGx5IGVkaXRpbmcgdGhpc1xuICAgICAgICAgICAgICAgIHJlY29yZC5cbiAgICAgICAgICAgICAgICA8YnIgLz4gSWYgeW91IGZvcmNlIHVubG9jayBpdCwgdGhleSBjb3VsZCBwb3RlbnRpYWxseSBsb3NlIHRoZWlyIGNoYW5nZXMuXG4gICAgICAgICAgICA8L0FsZXJ0PlxuICAgICAgICAgICAgPGJyIC8+XG4gICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICBZb3UgYXJlIGFib3V0IHRvIGZvcmNlZnVsbHkgdW5sb2NrIHRoZSA8Qm9sZD57dGl0bGV9PC9Cb2xkPiBlbnRyeS5cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDxwPkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBjb250aW51ZT88L3A+XG4gICAgICAgIDwvZGl2PlxuICAgICk7XG59O1xuXG5leHBvcnQgY29uc3QgTG9ja2VkUmVjb3JkRm9yY2VVbmxvY2sgPSAocHJvcHM6IElMb2NrZWRSZWNvcmRGb3JjZVVubG9ja1Byb3BzKSA9PiB7XG4gICAgY29uc3QgeyB1bmxvY2tFbnRyeUZvcmNlIH0gPSB1c2VSZWNvcmRMb2NraW5nKCk7XG5cbiAgICBjb25zdCB7IG5hdmlnYXRlVG8gfSA9IHVzZUNvbnRlbnRFbnRyaWVzTGlzdCgpO1xuICAgIGNvbnN0IHsgc2hvd0NvbmZpcm1hdGlvbjogc2hvd0ZvcmNlVW5sb2NrQ29uZmlybWF0aW9uIH0gPSB1c2VDb25maXJtYXRpb25EaWFsb2coe1xuICAgICAgICB0aXRsZTogXCJGb3JjZSB1bmxvY2sgdGhlIGVudHJ5XCIsXG4gICAgICAgIG1lc3NhZ2U6IDxFcnJvck1lc3NhZ2Ugey4uLnByb3BzfSAvPlxuICAgIH0pO1xuICAgIGNvbnN0IHsgc2hvd1NuYWNrYmFyIH0gPSB1c2VTbmFja2JhcigpO1xuXG4gICAgY29uc3QgeyBoaXN0b3J5IH0gPSB1c2VSb3V0ZXIoKTtcblxuICAgIGNvbnN0IFtlcnJvciwgc2V0RXJyb3JdID0gdXNlU3RhdGU8SVJlY29yZExvY2tpbmdFcnJvcj4oKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICghZXJyb3I/Lm1lc3NhZ2UpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgICAgc2hvd1NuYWNrYmFyKGVycm9yLm1lc3NhZ2UpO1xuICAgIH0sIFtlcnJvcj8ubWVzc2FnZV0pO1xuXG4gICAgY29uc3Qgb25DbGljayA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgc2hvd0ZvcmNlVW5sb2NrQ29uZmlybWF0aW9uKGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHVubG9ja0VudHJ5Rm9yY2Uoe1xuICAgICAgICAgICAgICAgIGlkOiBwcm9wcy5pZCxcbiAgICAgICAgICAgICAgICAkbG9ja2luZ1R5cGU6IHByb3BzLnR5cGVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKCFyZXN1bHQuZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2V0RXJyb3IocmVzdWx0LmVycm9yKTtcbiAgICAgICAgfSk7XG4gICAgfSwgW3Byb3BzLmlkLCBoaXN0b3J5LCBuYXZpZ2F0ZVRvXSk7XG5cbiAgICBjb25zdCB7IGhhc0Z1bGxBY2Nlc3MgfSA9IHVzZVBlcm1pc3Npb24oKTtcbiAgICBpZiAoIWhhc0Z1bGxBY2Nlc3MpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPFdyYXBwZXI+XG4gICAgICAgICAgICA8VGV4dD5cbiAgICAgICAgICAgICAgICBCZWNhdXNlIHlvdSBoYXZlIGEgZnVsbCBhY2Nlc3MgdG8gdGhlIHN5c3RlbSwgeW91IGNhbiBmb3JjZSB1bmxvY2sgdGhlIHJlY29yZC5cbiAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICAgIDxiciAvPlxuICAgICAgICAgICAgPEJ1dHRvblByaW1hcnkgb25DbGljaz17b25DbGlja30+VW5sb2NrIGFuZCBnbyBiYWNrPC9CdXR0b25QcmltYXJ5PlxuICAgICAgICA8L1dyYXBwZXI+XG4gICAgKTtcbn07XG4iXX0= */",
44
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkxvY2tlZFJlY29yZEZvcmNlVW5sb2NrLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFlYSIsImZpbGUiOiJMb2NrZWRSZWNvcmRGb3JjZVVubG9jay50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHsgSVJlY29yZExvY2tpbmdFcnJvciwgSVJlY29yZExvY2tpbmdJZGVudGl0eSB9IGZyb20gXCJ+L3R5cGVzXCI7XG5pbXBvcnQgeyB1c2VDb25maXJtYXRpb25EaWFsb2csIHVzZVNuYWNrYmFyIH0gZnJvbSBcIkB3ZWJpbnkvYXBwLWFkbWluXCI7XG5pbXBvcnQgeyB1c2VSZWNvcmRMb2NraW5nLCB1c2VQZXJtaXNzaW9uIH0gZnJvbSBcIn4vaG9va3NcIjtcbmltcG9ydCB7IHVzZVJvdXRlciB9IGZyb20gXCJAd2ViaW55L3JlYWN0LXJvdXRlclwiO1xuaW1wb3J0IHsgdXNlQ29udGVudEVudHJpZXNMaXN0IH0gZnJvbSBcIkB3ZWJpbnkvYXBwLWhlYWRsZXNzLWNtc1wiO1xuaW1wb3J0IHsgQWxlcnQgfSBmcm9tIFwiQHdlYmlueS91aS9BbGVydFwiO1xuaW1wb3J0IHsgQnV0dG9uUHJpbWFyeSB9IGZyb20gXCJAd2ViaW55L3VpL0J1dHRvblwiO1xuXG5jb25zdCBXcmFwcGVyID0gc3R5bGVkKFwiZGl2XCIpKHtcbiAgICBwYWRkaW5nOiBcIjBcIixcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IFwid2hpdGVcIlxufSk7XG5cbmNvbnN0IFRleHQgPSBzdHlsZWQoXCJwXCIpKHtcbiAgICBsaW5lSGVpZ2h0OiBcIjEyNSVcIlxufSk7XG5cbmNvbnN0IEJvbGQgPSBzdHlsZWQoXCJzcGFuXCIpKHtcbiAgICBmb250V2VpZ2h0OiA2MDBcbn0pO1xuXG5leHBvcnQgaW50ZXJmYWNlIElMb2NrZWRSZWNvcmRGb3JjZVVubG9ja1Byb3BzIHtcbiAgICBpZDogc3RyaW5nO1xuICAgIHR5cGU6IHN0cmluZztcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIGxvY2tlZEJ5PzogSVJlY29yZExvY2tpbmdJZGVudGl0eTtcbn1cblxuY29uc3QgRXJyb3JNZXNzYWdlID0gKHByb3BzOiBJTG9ja2VkUmVjb3JkRm9yY2VVbmxvY2tQcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgdGl0bGUsIGxvY2tlZEJ5IH0gPSBwcm9wcztcbiAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPEFsZXJ0IHR5cGU9XCJ3YXJuaW5nXCIgdGl0bGU9XCJXYXJuaW5nXCI+XG4gICAgICAgICAgICAgICAgPEJvbGQ+e2xvY2tlZEJ5Py5kaXNwbGF5TmFtZSB8fCBcIlVua25vd24gdXNlclwifTwvQm9sZD4gaXMgY3VycmVudGx5IGVkaXRpbmcgdGhpc1xuICAgICAgICAgICAgICAgIHJlY29yZC5cbiAgICAgICAgICAgICAgICA8YnIgLz4gSWYgeW91IGZvcmNlIHVubG9jayBpdCwgdGhleSBjb3VsZCBwb3RlbnRpYWxseSBsb3NlIHRoZWlyIGNoYW5nZXMuXG4gICAgICAgICAgICA8L0FsZXJ0PlxuICAgICAgICAgICAgPGJyIC8+XG4gICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICBZb3UgYXJlIGFib3V0IHRvIGZvcmNlZnVsbHkgdW5sb2NrIHRoZSA8Qm9sZD57dGl0bGV9PC9Cb2xkPiBlbnRyeS5cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDxwPkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBjb250aW51ZT88L3A+XG4gICAgICAgIDwvZGl2PlxuICAgICk7XG59O1xuXG5leHBvcnQgY29uc3QgTG9ja2VkUmVjb3JkRm9yY2VVbmxvY2sgPSAocHJvcHM6IElMb2NrZWRSZWNvcmRGb3JjZVVubG9ja1Byb3BzKSA9PiB7XG4gICAgY29uc3QgeyB1bmxvY2tFbnRyeUZvcmNlIH0gPSB1c2VSZWNvcmRMb2NraW5nKCk7XG5cbiAgICBjb25zdCB7IG5hdmlnYXRlVG8gfSA9IHVzZUNvbnRlbnRFbnRyaWVzTGlzdCgpO1xuICAgIGNvbnN0IHsgc2hvd0NvbmZpcm1hdGlvbjogc2hvd0ZvcmNlVW5sb2NrQ29uZmlybWF0aW9uIH0gPSB1c2VDb25maXJtYXRpb25EaWFsb2coe1xuICAgICAgICB0aXRsZTogXCJGb3JjZSB1bmxvY2sgdGhlIGVudHJ5XCIsXG4gICAgICAgIG1lc3NhZ2U6IDxFcnJvck1lc3NhZ2Ugey4uLnByb3BzfSAvPlxuICAgIH0pO1xuICAgIGNvbnN0IHsgc2hvd1NuYWNrYmFyIH0gPSB1c2VTbmFja2JhcigpO1xuXG4gICAgY29uc3QgeyBoaXN0b3J5IH0gPSB1c2VSb3V0ZXIoKTtcblxuICAgIGNvbnN0IFtlcnJvciwgc2V0RXJyb3JdID0gdXNlU3RhdGU8SVJlY29yZExvY2tpbmdFcnJvcj4oKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICghZXJyb3I/Lm1lc3NhZ2UpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgICAgc2hvd1NuYWNrYmFyKGVycm9yLm1lc3NhZ2UpO1xuICAgIH0sIFtlcnJvcj8ubWVzc2FnZV0pO1xuXG4gICAgY29uc3Qgb25DbGljayA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgc2hvd0ZvcmNlVW5sb2NrQ29uZmlybWF0aW9uKGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHVubG9ja0VudHJ5Rm9yY2Uoe1xuICAgICAgICAgICAgICAgIGlkOiBwcm9wcy5pZCxcbiAgICAgICAgICAgICAgICAkbG9ja2luZ1R5cGU6IHByb3BzLnR5cGVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKCFyZXN1bHQuZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2V0RXJyb3IocmVzdWx0LmVycm9yKTtcbiAgICAgICAgfSk7XG4gICAgfSwgW3Byb3BzLmlkLCBoaXN0b3J5LCBuYXZpZ2F0ZVRvXSk7XG5cbiAgICBjb25zdCB7IGNhbkZvcmNlVW5sb2NrIH0gPSB1c2VQZXJtaXNzaW9uKCk7XG4gICAgaWYgKCFjYW5Gb3JjZVVubG9jaykge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8V3JhcHBlcj5cbiAgICAgICAgICAgIDxUZXh0PlxuICAgICAgICAgICAgICAgIEJlY2F1c2UgeW91IGhhdmUgYSBmdWxsIGFjY2VzcyB0byB0aGUgc3lzdGVtLCB5b3UgY2FuIGZvcmNlIHVubG9jayB0aGUgcmVjb3JkLlxuICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAgPGJyIC8+XG4gICAgICAgICAgICA8QnV0dG9uUHJpbWFyeSBvbkNsaWNrPXtvbkNsaWNrfT5VbmxvY2sgYW5kIGdvIGJhY2s8L0J1dHRvblByaW1hcnk+XG4gICAgICAgIDwvV3JhcHBlcj5cbiAgICApO1xufTtcbiJdfQ== */",
45
45
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
46
46
  });
47
47
  var Bold = /*#__PURE__*/(0, _base.default)("span", process.env.NODE_ENV === "production" ? {
@@ -55,7 +55,7 @@ var Bold = /*#__PURE__*/(0, _base.default)("span", process.env.NODE_ENV === "pro
55
55
  } : {
56
56
  name: "16ceglb",
57
57
  styles: "font-weight:600",
58
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkxvY2tlZFJlY29yZEZvcmNlVW5sb2NrLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQmEiLCJmaWxlIjoiTG9ja2VkUmVjb3JkRm9yY2VVbmxvY2sudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7IElSZWNvcmRMb2NraW5nRXJyb3IsIElSZWNvcmRMb2NraW5nSWRlbnRpdHkgfSBmcm9tIFwifi90eXBlc1wiO1xuaW1wb3J0IHsgdXNlQ29uZmlybWF0aW9uRGlhbG9nLCB1c2VTbmFja2JhciB9IGZyb20gXCJAd2ViaW55L2FwcC1hZG1pblwiO1xuaW1wb3J0IHsgdXNlUmVjb3JkTG9ja2luZywgdXNlUGVybWlzc2lvbiB9IGZyb20gXCJ+L2hvb2tzXCI7XG5pbXBvcnQgeyB1c2VSb3V0ZXIgfSBmcm9tIFwiQHdlYmlueS9yZWFjdC1yb3V0ZXJcIjtcbmltcG9ydCB7IHVzZUNvbnRlbnRFbnRyaWVzTGlzdCB9IGZyb20gXCJAd2ViaW55L2FwcC1oZWFkbGVzcy1jbXNcIjtcbmltcG9ydCB7IEFsZXJ0IH0gZnJvbSBcIkB3ZWJpbnkvdWkvQWxlcnRcIjtcbmltcG9ydCB7IEJ1dHRvblByaW1hcnkgfSBmcm9tIFwiQHdlYmlueS91aS9CdXR0b25cIjtcblxuY29uc3QgV3JhcHBlciA9IHN0eWxlZChcImRpdlwiKSh7XG4gICAgcGFkZGluZzogXCIwXCIsXG4gICAgYmFja2dyb3VuZENvbG9yOiBcIndoaXRlXCJcbn0pO1xuXG5jb25zdCBUZXh0ID0gc3R5bGVkKFwicFwiKSh7XG4gICAgbGluZUhlaWdodDogXCIxMjUlXCJcbn0pO1xuXG5jb25zdCBCb2xkID0gc3R5bGVkKFwic3BhblwiKSh7XG4gICAgZm9udFdlaWdodDogNjAwXG59KTtcblxuZXhwb3J0IGludGVyZmFjZSBJTG9ja2VkUmVjb3JkRm9yY2VVbmxvY2tQcm9wcyB7XG4gICAgaWQ6IHN0cmluZztcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBsb2NrZWRCeT86IElSZWNvcmRMb2NraW5nSWRlbnRpdHk7XG59XG5cbmNvbnN0IEVycm9yTWVzc2FnZSA9IChwcm9wczogSUxvY2tlZFJlY29yZEZvcmNlVW5sb2NrUHJvcHMpID0+IHtcbiAgICBjb25zdCB7IHRpdGxlLCBsb2NrZWRCeSB9ID0gcHJvcHM7XG4gICAgcmV0dXJuIChcbiAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxBbGVydCB0eXBlPVwid2FybmluZ1wiIHRpdGxlPVwiV2FybmluZ1wiPlxuICAgICAgICAgICAgICAgIDxCb2xkPntsb2NrZWRCeT8uZGlzcGxheU5hbWUgfHwgXCJVbmtub3duIHVzZXJcIn08L0JvbGQ+IGlzIGN1cnJlbnRseSBlZGl0aW5nIHRoaXNcbiAgICAgICAgICAgICAgICByZWNvcmQuXG4gICAgICAgICAgICAgICAgPGJyIC8+IElmIHlvdSBmb3JjZSB1bmxvY2sgaXQsIHRoZXkgY291bGQgcG90ZW50aWFsbHkgbG9zZSB0aGVpciBjaGFuZ2VzLlxuICAgICAgICAgICAgPC9BbGVydD5cbiAgICAgICAgICAgIDxiciAvPlxuICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgWW91IGFyZSBhYm91dCB0byBmb3JjZWZ1bGx5IHVubG9jayB0aGUgPEJvbGQ+e3RpdGxlfTwvQm9sZD4gZW50cnkuXG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8cD5BcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gY29udGludWU/PC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICApO1xufTtcblxuZXhwb3J0IGNvbnN0IExvY2tlZFJlY29yZEZvcmNlVW5sb2NrID0gKHByb3BzOiBJTG9ja2VkUmVjb3JkRm9yY2VVbmxvY2tQcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgdW5sb2NrRW50cnlGb3JjZSB9ID0gdXNlUmVjb3JkTG9ja2luZygpO1xuXG4gICAgY29uc3QgeyBuYXZpZ2F0ZVRvIH0gPSB1c2VDb250ZW50RW50cmllc0xpc3QoKTtcbiAgICBjb25zdCB7IHNob3dDb25maXJtYXRpb246IHNob3dGb3JjZVVubG9ja0NvbmZpcm1hdGlvbiB9ID0gdXNlQ29uZmlybWF0aW9uRGlhbG9nKHtcbiAgICAgICAgdGl0bGU6IFwiRm9yY2UgdW5sb2NrIHRoZSBlbnRyeVwiLFxuICAgICAgICBtZXNzYWdlOiA8RXJyb3JNZXNzYWdlIHsuLi5wcm9wc30gLz5cbiAgICB9KTtcbiAgICBjb25zdCB7IHNob3dTbmFja2JhciB9ID0gdXNlU25hY2tiYXIoKTtcblxuICAgIGNvbnN0IHsgaGlzdG9yeSB9ID0gdXNlUm91dGVyKCk7XG5cbiAgICBjb25zdCBbZXJyb3IsIHNldEVycm9yXSA9IHVzZVN0YXRlPElSZWNvcmRMb2NraW5nRXJyb3I+KCk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIWVycm9yPy5tZXNzYWdlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgIHNob3dTbmFja2JhcihlcnJvci5tZXNzYWdlKTtcbiAgICB9LCBbZXJyb3I/Lm1lc3NhZ2VdKTtcblxuICAgIGNvbnN0IG9uQ2xpY2sgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIHNob3dGb3JjZVVubG9ja0NvbmZpcm1hdGlvbihhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB1bmxvY2tFbnRyeUZvcmNlKHtcbiAgICAgICAgICAgICAgICBpZDogcHJvcHMuaWQsXG4gICAgICAgICAgICAgICAgJGxvY2tpbmdUeXBlOiBwcm9wcy50eXBlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmICghcmVzdWx0LmVycm9yKSB7XG4gICAgICAgICAgICAgICAgbmF2aWdhdGVUbygpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNldEVycm9yKHJlc3VsdC5lcnJvcik7XG4gICAgICAgIH0pO1xuICAgIH0sIFtwcm9wcy5pZCwgaGlzdG9yeSwgbmF2aWdhdGVUb10pO1xuXG4gICAgY29uc3QgeyBoYXNGdWxsQWNjZXNzIH0gPSB1c2VQZXJtaXNzaW9uKCk7XG4gICAgaWYgKCFoYXNGdWxsQWNjZXNzKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICAgIDxXcmFwcGVyPlxuICAgICAgICAgICAgPFRleHQ+XG4gICAgICAgICAgICAgICAgQmVjYXVzZSB5b3UgaGF2ZSBhIGZ1bGwgYWNjZXNzIHRvIHRoZSBzeXN0ZW0sIHlvdSBjYW4gZm9yY2UgdW5sb2NrIHRoZSByZWNvcmQuXG4gICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgICA8YnIgLz5cbiAgICAgICAgICAgIDxCdXR0b25QcmltYXJ5IG9uQ2xpY2s9e29uQ2xpY2t9PlVubG9jayBhbmQgZ28gYmFjazwvQnV0dG9uUHJpbWFyeT5cbiAgICAgICAgPC9XcmFwcGVyPlxuICAgICk7XG59O1xuIl19 */",
58
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkxvY2tlZFJlY29yZEZvcmNlVW5sb2NrLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQmEiLCJmaWxlIjoiTG9ja2VkUmVjb3JkRm9yY2VVbmxvY2sudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7IElSZWNvcmRMb2NraW5nRXJyb3IsIElSZWNvcmRMb2NraW5nSWRlbnRpdHkgfSBmcm9tIFwifi90eXBlc1wiO1xuaW1wb3J0IHsgdXNlQ29uZmlybWF0aW9uRGlhbG9nLCB1c2VTbmFja2JhciB9IGZyb20gXCJAd2ViaW55L2FwcC1hZG1pblwiO1xuaW1wb3J0IHsgdXNlUmVjb3JkTG9ja2luZywgdXNlUGVybWlzc2lvbiB9IGZyb20gXCJ+L2hvb2tzXCI7XG5pbXBvcnQgeyB1c2VSb3V0ZXIgfSBmcm9tIFwiQHdlYmlueS9yZWFjdC1yb3V0ZXJcIjtcbmltcG9ydCB7IHVzZUNvbnRlbnRFbnRyaWVzTGlzdCB9IGZyb20gXCJAd2ViaW55L2FwcC1oZWFkbGVzcy1jbXNcIjtcbmltcG9ydCB7IEFsZXJ0IH0gZnJvbSBcIkB3ZWJpbnkvdWkvQWxlcnRcIjtcbmltcG9ydCB7IEJ1dHRvblByaW1hcnkgfSBmcm9tIFwiQHdlYmlueS91aS9CdXR0b25cIjtcblxuY29uc3QgV3JhcHBlciA9IHN0eWxlZChcImRpdlwiKSh7XG4gICAgcGFkZGluZzogXCIwXCIsXG4gICAgYmFja2dyb3VuZENvbG9yOiBcIndoaXRlXCJcbn0pO1xuXG5jb25zdCBUZXh0ID0gc3R5bGVkKFwicFwiKSh7XG4gICAgbGluZUhlaWdodDogXCIxMjUlXCJcbn0pO1xuXG5jb25zdCBCb2xkID0gc3R5bGVkKFwic3BhblwiKSh7XG4gICAgZm9udFdlaWdodDogNjAwXG59KTtcblxuZXhwb3J0IGludGVyZmFjZSBJTG9ja2VkUmVjb3JkRm9yY2VVbmxvY2tQcm9wcyB7XG4gICAgaWQ6IHN0cmluZztcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBsb2NrZWRCeT86IElSZWNvcmRMb2NraW5nSWRlbnRpdHk7XG59XG5cbmNvbnN0IEVycm9yTWVzc2FnZSA9IChwcm9wczogSUxvY2tlZFJlY29yZEZvcmNlVW5sb2NrUHJvcHMpID0+IHtcbiAgICBjb25zdCB7IHRpdGxlLCBsb2NrZWRCeSB9ID0gcHJvcHM7XG4gICAgcmV0dXJuIChcbiAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxBbGVydCB0eXBlPVwid2FybmluZ1wiIHRpdGxlPVwiV2FybmluZ1wiPlxuICAgICAgICAgICAgICAgIDxCb2xkPntsb2NrZWRCeT8uZGlzcGxheU5hbWUgfHwgXCJVbmtub3duIHVzZXJcIn08L0JvbGQ+IGlzIGN1cnJlbnRseSBlZGl0aW5nIHRoaXNcbiAgICAgICAgICAgICAgICByZWNvcmQuXG4gICAgICAgICAgICAgICAgPGJyIC8+IElmIHlvdSBmb3JjZSB1bmxvY2sgaXQsIHRoZXkgY291bGQgcG90ZW50aWFsbHkgbG9zZSB0aGVpciBjaGFuZ2VzLlxuICAgICAgICAgICAgPC9BbGVydD5cbiAgICAgICAgICAgIDxiciAvPlxuICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgWW91IGFyZSBhYm91dCB0byBmb3JjZWZ1bGx5IHVubG9jayB0aGUgPEJvbGQ+e3RpdGxlfTwvQm9sZD4gZW50cnkuXG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8cD5BcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gY29udGludWU/PC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICApO1xufTtcblxuZXhwb3J0IGNvbnN0IExvY2tlZFJlY29yZEZvcmNlVW5sb2NrID0gKHByb3BzOiBJTG9ja2VkUmVjb3JkRm9yY2VVbmxvY2tQcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgdW5sb2NrRW50cnlGb3JjZSB9ID0gdXNlUmVjb3JkTG9ja2luZygpO1xuXG4gICAgY29uc3QgeyBuYXZpZ2F0ZVRvIH0gPSB1c2VDb250ZW50RW50cmllc0xpc3QoKTtcbiAgICBjb25zdCB7IHNob3dDb25maXJtYXRpb246IHNob3dGb3JjZVVubG9ja0NvbmZpcm1hdGlvbiB9ID0gdXNlQ29uZmlybWF0aW9uRGlhbG9nKHtcbiAgICAgICAgdGl0bGU6IFwiRm9yY2UgdW5sb2NrIHRoZSBlbnRyeVwiLFxuICAgICAgICBtZXNzYWdlOiA8RXJyb3JNZXNzYWdlIHsuLi5wcm9wc30gLz5cbiAgICB9KTtcbiAgICBjb25zdCB7IHNob3dTbmFja2JhciB9ID0gdXNlU25hY2tiYXIoKTtcblxuICAgIGNvbnN0IHsgaGlzdG9yeSB9ID0gdXNlUm91dGVyKCk7XG5cbiAgICBjb25zdCBbZXJyb3IsIHNldEVycm9yXSA9IHVzZVN0YXRlPElSZWNvcmRMb2NraW5nRXJyb3I+KCk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIWVycm9yPy5tZXNzYWdlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgIHNob3dTbmFja2JhcihlcnJvci5tZXNzYWdlKTtcbiAgICB9LCBbZXJyb3I/Lm1lc3NhZ2VdKTtcblxuICAgIGNvbnN0IG9uQ2xpY2sgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIHNob3dGb3JjZVVubG9ja0NvbmZpcm1hdGlvbihhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB1bmxvY2tFbnRyeUZvcmNlKHtcbiAgICAgICAgICAgICAgICBpZDogcHJvcHMuaWQsXG4gICAgICAgICAgICAgICAgJGxvY2tpbmdUeXBlOiBwcm9wcy50eXBlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmICghcmVzdWx0LmVycm9yKSB7XG4gICAgICAgICAgICAgICAgbmF2aWdhdGVUbygpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNldEVycm9yKHJlc3VsdC5lcnJvcik7XG4gICAgICAgIH0pO1xuICAgIH0sIFtwcm9wcy5pZCwgaGlzdG9yeSwgbmF2aWdhdGVUb10pO1xuXG4gICAgY29uc3QgeyBjYW5Gb3JjZVVubG9jayB9ID0gdXNlUGVybWlzc2lvbigpO1xuICAgIGlmICghY2FuRm9yY2VVbmxvY2spIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPFdyYXBwZXI+XG4gICAgICAgICAgICA8VGV4dD5cbiAgICAgICAgICAgICAgICBCZWNhdXNlIHlvdSBoYXZlIGEgZnVsbCBhY2Nlc3MgdG8gdGhlIHN5c3RlbSwgeW91IGNhbiBmb3JjZSB1bmxvY2sgdGhlIHJlY29yZC5cbiAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICAgIDxiciAvPlxuICAgICAgICAgICAgPEJ1dHRvblByaW1hcnkgb25DbGljaz17b25DbGlja30+VW5sb2NrIGFuZCBnbyBiYWNrPC9CdXR0b25QcmltYXJ5PlxuICAgICAgICA8L1dyYXBwZXI+XG4gICAgKTtcbn07XG4iXX0= */",
59
59
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
60
60
  });
61
61
  var ErrorMessage = function ErrorMessage(props) {
@@ -105,8 +105,8 @@ var LockedRecordForceUnlock = exports.LockedRecordForceUnlock = function LockedR
105
105
  });
106
106
  }, [props.id, history, navigateTo]);
107
107
  var _usePermission = (0, _hooks.usePermission)(),
108
- hasFullAccess = _usePermission.hasFullAccess;
109
- if (!hasFullAccess) {
108
+ canForceUnlock = _usePermission.canForceUnlock;
109
+ if (!canForceUnlock) {
110
110
  return null;
111
111
  }
112
112
  return /*#__PURE__*/_react.default.createElement(Wrapper, null, /*#__PURE__*/_react.default.createElement(Text, null, "Because you have a full access to the system, you can force unlock the record."), /*#__PURE__*/_react.default.createElement("br", null), /*#__PURE__*/_react.default.createElement(_Button.ButtonPrimary, {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_appAdmin","_hooks","_reactRouter","_appHeadlessCms","_Alert","_Button","_EMOTION_STRINGIFIED_CSS_ERROR__","Wrapper","_base","default","process","env","NODE_ENV","target","label","name","styles","map","toString","Text","Bold","ErrorMessage","props","title","lockedBy","createElement","Alert","type","displayName","LockedRecordForceUnlock","exports","_useRecordLocking","useRecordLocking","unlockEntryForce","_useContentEntriesLis","useContentEntriesList","navigateTo","_useConfirmationDialo","useConfirmationDialog","message","showForceUnlockConfirmation","showConfirmation","_useSnackbar","useSnackbar","showSnackbar","_useRouter","useRouter","history","_useState","useState","_useState2","_slicedToArray2","error","setError","useEffect","console","onClick","useCallback","result","id","$lockingType","_usePermission","usePermission","hasFullAccess","ButtonPrimary"],"sources":["LockedRecordForceUnlock.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useState } from \"react\";\nimport styled from \"@emotion/styled\";\nimport { IRecordLockingError, IRecordLockingIdentity } from \"~/types\";\nimport { useConfirmationDialog, useSnackbar } from \"@webiny/app-admin\";\nimport { useRecordLocking, usePermission } from \"~/hooks\";\nimport { useRouter } from \"@webiny/react-router\";\nimport { useContentEntriesList } from \"@webiny/app-headless-cms\";\nimport { Alert } from \"@webiny/ui/Alert\";\nimport { ButtonPrimary } from \"@webiny/ui/Button\";\n\nconst Wrapper = styled(\"div\")({\n padding: \"0\",\n backgroundColor: \"white\"\n});\n\nconst Text = styled(\"p\")({\n lineHeight: \"125%\"\n});\n\nconst Bold = styled(\"span\")({\n fontWeight: 600\n});\n\nexport interface ILockedRecordForceUnlockProps {\n id: string;\n type: string;\n title: string;\n lockedBy?: IRecordLockingIdentity;\n}\n\nconst ErrorMessage = (props: ILockedRecordForceUnlockProps) => {\n const { title, lockedBy } = props;\n return (\n <div>\n <Alert type=\"warning\" title=\"Warning\">\n <Bold>{lockedBy?.displayName || \"Unknown user\"}</Bold> is currently editing this\n record.\n <br /> If you force unlock it, they could potentially lose their changes.\n </Alert>\n <br />\n <p>\n You are about to forcefully unlock the <Bold>{title}</Bold> entry.\n </p>\n <p>Are you sure you want to continue?</p>\n </div>\n );\n};\n\nexport const LockedRecordForceUnlock = (props: ILockedRecordForceUnlockProps) => {\n const { unlockEntryForce } = useRecordLocking();\n\n const { navigateTo } = useContentEntriesList();\n const { showConfirmation: showForceUnlockConfirmation } = useConfirmationDialog({\n title: \"Force unlock the entry\",\n message: <ErrorMessage {...props} />\n });\n const { showSnackbar } = useSnackbar();\n\n const { history } = useRouter();\n\n const [error, setError] = useState<IRecordLockingError>();\n\n useEffect(() => {\n if (!error?.message) {\n return;\n }\n console.error(error);\n showSnackbar(error.message);\n }, [error?.message]);\n\n const onClick = useCallback(() => {\n showForceUnlockConfirmation(async () => {\n const result = await unlockEntryForce({\n id: props.id,\n $lockingType: props.type\n });\n if (!result.error) {\n navigateTo();\n return;\n }\n setError(result.error);\n });\n }, [props.id, history, navigateTo]);\n\n const { hasFullAccess } = usePermission();\n if (!hasFullAccess) {\n return null;\n }\n\n return (\n <Wrapper>\n <Text>\n Because you have a full access to the system, you can force unlock the record.\n </Text>\n <br />\n <ButtonPrimary onClick={onClick}>Unlock and go back</ButtonPrimary>\n </Wrapper>\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_appAdmin","_hooks","_reactRouter","_appHeadlessCms","_Alert","_Button","_EMOTION_STRINGIFIED_CSS_ERROR__","Wrapper","_base","default","process","env","NODE_ENV","target","label","name","styles","map","toString","Text","Bold","ErrorMessage","props","title","lockedBy","createElement","Alert","type","displayName","LockedRecordForceUnlock","exports","_useRecordLocking","useRecordLocking","unlockEntryForce","_useContentEntriesLis","useContentEntriesList","navigateTo","_useConfirmationDialo","useConfirmationDialog","message","showForceUnlockConfirmation","showConfirmation","_useSnackbar","useSnackbar","showSnackbar","_useRouter","useRouter","history","_useState","useState","_useState2","_slicedToArray2","error","setError","useEffect","console","onClick","useCallback","result","id","$lockingType","_usePermission","usePermission","canForceUnlock","ButtonPrimary"],"sources":["LockedRecordForceUnlock.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useState } from \"react\";\nimport styled from \"@emotion/styled\";\nimport { IRecordLockingError, IRecordLockingIdentity } from \"~/types\";\nimport { useConfirmationDialog, useSnackbar } from \"@webiny/app-admin\";\nimport { useRecordLocking, usePermission } from \"~/hooks\";\nimport { useRouter } from \"@webiny/react-router\";\nimport { useContentEntriesList } from \"@webiny/app-headless-cms\";\nimport { Alert } from \"@webiny/ui/Alert\";\nimport { ButtonPrimary } from \"@webiny/ui/Button\";\n\nconst Wrapper = styled(\"div\")({\n padding: \"0\",\n backgroundColor: \"white\"\n});\n\nconst Text = styled(\"p\")({\n lineHeight: \"125%\"\n});\n\nconst Bold = styled(\"span\")({\n fontWeight: 600\n});\n\nexport interface ILockedRecordForceUnlockProps {\n id: string;\n type: string;\n title: string;\n lockedBy?: IRecordLockingIdentity;\n}\n\nconst ErrorMessage = (props: ILockedRecordForceUnlockProps) => {\n const { title, lockedBy } = props;\n return (\n <div>\n <Alert type=\"warning\" title=\"Warning\">\n <Bold>{lockedBy?.displayName || \"Unknown user\"}</Bold> is currently editing this\n record.\n <br /> If you force unlock it, they could potentially lose their changes.\n </Alert>\n <br />\n <p>\n You are about to forcefully unlock the <Bold>{title}</Bold> entry.\n </p>\n <p>Are you sure you want to continue?</p>\n </div>\n );\n};\n\nexport const LockedRecordForceUnlock = (props: ILockedRecordForceUnlockProps) => {\n const { unlockEntryForce } = useRecordLocking();\n\n const { navigateTo } = useContentEntriesList();\n const { showConfirmation: showForceUnlockConfirmation } = useConfirmationDialog({\n title: \"Force unlock the entry\",\n message: <ErrorMessage {...props} />\n });\n const { showSnackbar } = useSnackbar();\n\n const { history } = useRouter();\n\n const [error, setError] = useState<IRecordLockingError>();\n\n useEffect(() => {\n if (!error?.message) {\n return;\n }\n console.error(error);\n showSnackbar(error.message);\n }, [error?.message]);\n\n const onClick = useCallback(() => {\n showForceUnlockConfirmation(async () => {\n const result = await unlockEntryForce({\n id: props.id,\n $lockingType: props.type\n });\n if (!result.error) {\n navigateTo();\n return;\n }\n setError(result.error);\n });\n }, [props.id, history, navigateTo]);\n\n const { canForceUnlock } = usePermission();\n if (!canForceUnlock) {\n return null;\n }\n\n return (\n <Wrapper>\n <Text>\n Because you have a full access to the system, you can force unlock the record.\n </Text>\n <br />\n <ButtonPrimary onClick={onClick}>Unlock and go back</ButtonPrimary>\n </Wrapper>\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -7,7 +7,7 @@
7
7
  <polygon opacity="0.87" points="0 0 24 0 24 24 0 24"/>
8
8
  </g>
9
9
  <path d="M18,8 L17,8 L17,6 C17,3.24 14.76,1 12,1 C9.24,1 7,3.24 7,6 L7,8 L6,8 C4.9,8 4,8.9 4,10 L4,20 C4,21.1 4.9,22 6,22 L18,22 C19.1,22 20,21.1 20,20 L20,10 C20,8.9 19.1,8 18,8 Z M12,17 C10.9,17 10,16.1 10,15 C10,13.9 10.9,13 12,13 C13.1,13 14,13.9 14,15 C14,16.1 13.1,17 12,17 Z M9,8 L9,6 C9,4.34 10.34,3 12,3 C13.66,3 15,4.34 15,6 L15,8 L9,8 Z"
10
- fill="#D8D8D8" fill-rule="nonzero"/>
10
+ fill="rgba(0, 0, 0, 0.54)" fill-rule="nonzero"/>
11
11
  </g>
12
12
  </g>
13
13
  </svg>
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ import { RecordLockingSecurityPermission } from "../../types";
3
+ export interface RecordLockingPermissionsProps {
4
+ value: RecordLockingSecurityPermission[];
5
+ onChange: (value: RecordLockingSecurityPermission[]) => void;
6
+ }
7
+ export declare const RecordLockingPermissions: ({ value, onChange }: RecordLockingPermissionsProps) => React.JSX.Element;
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.RecordLockingPermissions = void 0;
9
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
10
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
+ var _react = _interopRequireWildcard(require("react"));
12
+ var _Grid = require("@webiny/ui/Grid");
13
+ var _Select = require("@webiny/ui/Select");
14
+ var _i18n = require("@webiny/app/i18n");
15
+ var _Permissions = require("@webiny/app-admin/components/Permissions");
16
+ var _form = require("@webiny/form");
17
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4;
18
+ var t = _i18n.i18n.ns("app-record-locking/components/permissionRenderer");
19
+ var RECORD_LOCKING_PERMISSION = "recordLocking";
20
+ var RecordLockingPermissions = exports.RecordLockingPermissions = function RecordLockingPermissions(_ref) {
21
+ var value = _ref.value,
22
+ onChange = _ref.onChange;
23
+ var onFormChange = (0, _react.useCallback)(function (data) {
24
+ var newValue = value.filter(function (p) {
25
+ return p.name.startsWith(RECORD_LOCKING_PERMISSION) === false;
26
+ });
27
+ if (!data.canForceUnlock || data.canForceUnlock === "no") {
28
+ onChange(newValue);
29
+ return;
30
+ }
31
+ onChange([].concat((0, _toConsumableArray2.default)(newValue), [{
32
+ name: "recordLocking",
33
+ canForceUnlock: "yes"
34
+ }]));
35
+ }, [value]);
36
+ var formData = (0, _react.useMemo)(function () {
37
+ if (!Array.isArray(value)) {
38
+ return {};
39
+ }
40
+ var hasFullAccess = value.some(function (item) {
41
+ return item.name === "*";
42
+ });
43
+ if (hasFullAccess) {
44
+ return {
45
+ canForceUnlock: "yes"
46
+ };
47
+ }
48
+ var permissions = value.filter(function (item) {
49
+ return item.name.startsWith(RECORD_LOCKING_PERMISSION);
50
+ });
51
+ if (!permissions.length || !permissions.some(function (item) {
52
+ return !!item.canForceUnlock;
53
+ })) {
54
+ return {};
55
+ }
56
+ return {
57
+ canForceUnlock: "yes"
58
+ };
59
+ }, []);
60
+ return /*#__PURE__*/_react.default.createElement(_form.Form, {
61
+ data: formData,
62
+ onChange: onFormChange
63
+ }, function (_ref2) {
64
+ var Bind = _ref2.Bind;
65
+ return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(_Grid.Grid, {
66
+ className: _Permissions.gridNoPaddingClass
67
+ }, /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
68
+ span: 6
69
+ }, /*#__PURE__*/_react.default.createElement(_Permissions.PermissionInfo, {
70
+ title: t(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["Advanced Record Locking"])))
71
+ })), /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
72
+ span: 6
73
+ }, /*#__PURE__*/_react.default.createElement(Bind, {
74
+ name: "canForceUnlock"
75
+ }, /*#__PURE__*/_react.default.createElement(_Select.Select, {
76
+ label: t(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["Advanced Record Locking"])))
77
+ }, /*#__PURE__*/_react.default.createElement("option", {
78
+ value: ""
79
+ }, t(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["No Access"])))), /*#__PURE__*/_react.default.createElement("option", {
80
+ value: "yes"
81
+ }, t(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["Full Access"])))))))));
82
+ });
83
+ };
84
+
85
+ //# sourceMappingURL=RecordLockingPermissions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_Grid","_Select","_i18n","_Permissions","_form","_templateObject","_templateObject2","_templateObject3","_templateObject4","t","i18n","ns","RECORD_LOCKING_PERMISSION","RecordLockingPermissions","exports","_ref","value","onChange","onFormChange","useCallback","data","newValue","filter","p","name","startsWith","canForceUnlock","concat","_toConsumableArray2","default","formData","useMemo","Array","isArray","hasFullAccess","some","item","permissions","length","createElement","Form","_ref2","Bind","Fragment","Grid","className","gridNoPaddingClass","Cell","span","PermissionInfo","title","_taggedTemplateLiteral2","Select","label"],"sources":["RecordLockingPermissions.tsx"],"sourcesContent":["import React, { Fragment, useCallback, useMemo } from \"react\";\nimport { Cell, Grid } from \"@webiny/ui/Grid\";\nimport { Select } from \"@webiny/ui/Select\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { gridNoPaddingClass, PermissionInfo } from \"@webiny/app-admin/components/Permissions\";\nimport { Form } from \"@webiny/form\";\nimport { RecordLockingSecurityPermission } from \"~/types\";\n\nconst t = i18n.ns(\"app-record-locking/components/permissionRenderer\");\n\nconst RECORD_LOCKING_PERMISSION = \"recordLocking\";\n\nexport interface RecordLockingPermissionsProps {\n value: RecordLockingSecurityPermission[];\n onChange: (value: RecordLockingSecurityPermission[]) => void;\n}\n\nexport const RecordLockingPermissions = ({ value, onChange }: RecordLockingPermissionsProps) => {\n const onFormChange = useCallback(\n (data: RecordLockingSecurityPermission) => {\n const newValue = value.filter(p => {\n return p.name.startsWith(RECORD_LOCKING_PERMISSION) === false;\n });\n\n if (!data.canForceUnlock || data.canForceUnlock === \"no\") {\n onChange(newValue);\n return;\n }\n\n onChange([\n ...newValue,\n {\n name: \"recordLocking\",\n canForceUnlock: \"yes\"\n }\n ]);\n },\n [value]\n );\n\n const formData = useMemo(() => {\n if (!Array.isArray(value)) {\n return {};\n }\n\n const hasFullAccess = value.some(item => item.name === \"*\");\n\n if (hasFullAccess) {\n return {\n canForceUnlock: \"yes\"\n };\n }\n\n const permissions = value.filter(item => item.name.startsWith(RECORD_LOCKING_PERMISSION));\n\n if (!permissions.length || !permissions.some(item => !!item.canForceUnlock)) {\n return {};\n }\n\n return {\n canForceUnlock: \"yes\"\n };\n }, []);\n\n return (\n <Form<RecordLockingSecurityPermission> data={formData} onChange={onFormChange}>\n {({ Bind }) => {\n return (\n <Fragment>\n <Grid className={gridNoPaddingClass}>\n <Cell span={6}>\n <PermissionInfo title={t`Advanced Record Locking`} />\n </Cell>\n <Cell span={6}>\n <Bind name={\"canForceUnlock\"}>\n <Select label={t`Advanced Record Locking`}>\n <option value={\"\"}>{t`No Access`}</option>\n <option value={\"yes\"}>{t`Full Access`}</option>\n </Select>\n </Bind>\n </Cell>\n </Grid>\n </Fragment>\n );\n }}\n </Form>\n );\n};\n"],"mappings":";;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AACA,IAAAI,YAAA,GAAAJ,OAAA;AACA,IAAAK,KAAA,GAAAL,OAAA;AAAoC,IAAAM,eAAA,EAAAC,gBAAA,EAAAC,gBAAA,EAAAC,gBAAA;AAGpC,IAAMC,CAAC,GAAGC,UAAI,CAACC,EAAE,CAAC,kDAAkD,CAAC;AAErE,IAAMC,yBAAyB,GAAG,eAAe;AAO1C,IAAMC,wBAAwB,GAAAC,OAAA,CAAAD,wBAAA,GAAG,SAA3BA,wBAAwBA,CAAAE,IAAA,EAA2D;EAAA,IAArDC,KAAK,GAAAD,IAAA,CAALC,KAAK;IAAEC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;EACtD,IAAMC,YAAY,GAAG,IAAAC,kBAAW,EAC5B,UAACC,IAAqC,EAAK;IACvC,IAAMC,QAAQ,GAAGL,KAAK,CAACM,MAAM,CAAC,UAAAC,CAAC,EAAI;MAC/B,OAAOA,CAAC,CAACC,IAAI,CAACC,UAAU,CAACb,yBAAyB,CAAC,KAAK,KAAK;IACjE,CAAC,CAAC;IAEF,IAAI,CAACQ,IAAI,CAACM,cAAc,IAAIN,IAAI,CAACM,cAAc,KAAK,IAAI,EAAE;MACtDT,QAAQ,CAACI,QAAQ,CAAC;MAClB;IACJ;IAEAJ,QAAQ,IAAAU,MAAA,KAAAC,mBAAA,CAAAC,OAAA,EACDR,QAAQ,IACX;MACIG,IAAI,EAAE,eAAe;MACrBE,cAAc,EAAE;IACpB,CAAC,EACJ,CAAC;EACN,CAAC,EACD,CAACV,KAAK,CACV,CAAC;EAED,IAAMc,QAAQ,GAAG,IAAAC,cAAO,EAAC,YAAM;IAC3B,IAAI,CAACC,KAAK,CAACC,OAAO,CAACjB,KAAK,CAAC,EAAE;MACvB,OAAO,CAAC,CAAC;IACb;IAEA,IAAMkB,aAAa,GAAGlB,KAAK,CAACmB,IAAI,CAAC,UAAAC,IAAI;MAAA,OAAIA,IAAI,CAACZ,IAAI,KAAK,GAAG;IAAA,EAAC;IAE3D,IAAIU,aAAa,EAAE;MACf,OAAO;QACHR,cAAc,EAAE;MACpB,CAAC;IACL;IAEA,IAAMW,WAAW,GAAGrB,KAAK,CAACM,MAAM,CAAC,UAAAc,IAAI;MAAA,OAAIA,IAAI,CAACZ,IAAI,CAACC,UAAU,CAACb,yBAAyB,CAAC;IAAA,EAAC;IAEzF,IAAI,CAACyB,WAAW,CAACC,MAAM,IAAI,CAACD,WAAW,CAACF,IAAI,CAAC,UAAAC,IAAI;MAAA,OAAI,CAAC,CAACA,IAAI,CAACV,cAAc;IAAA,EAAC,EAAE;MACzE,OAAO,CAAC,CAAC;IACb;IAEA,OAAO;MACHA,cAAc,EAAE;IACpB,CAAC;EACL,CAAC,EAAE,EAAE,CAAC;EAEN,oBACI7B,MAAA,CAAAgC,OAAA,CAAAU,aAAA,CAACnC,KAAA,CAAAoC,IAAI;IAAkCpB,IAAI,EAAEU,QAAS;IAACb,QAAQ,EAAEC;EAAa,GACzE,UAAAuB,KAAA,EAAc;IAAA,IAAXC,IAAI,GAAAD,KAAA,CAAJC,IAAI;IACJ,oBACI7C,MAAA,CAAAgC,OAAA,CAAAU,aAAA,CAAC1C,MAAA,CAAA8C,QAAQ,qBACL9C,MAAA,CAAAgC,OAAA,CAAAU,aAAA,CAACvC,KAAA,CAAA4C,IAAI;MAACC,SAAS,EAAEC;IAAmB,gBAChCjD,MAAA,CAAAgC,OAAA,CAAAU,aAAA,CAACvC,KAAA,CAAA+C,IAAI;MAACC,IAAI,EAAE;IAAE,gBACVnD,MAAA,CAAAgC,OAAA,CAAAU,aAAA,CAACpC,YAAA,CAAA8C,cAAc;MAACC,KAAK,EAAEzC,CAAC,CAAAJ,eAAA,KAAAA,eAAA,OAAA8C,uBAAA,CAAAtB,OAAA;IAA0B,CAAE,CAClD,CAAC,eACPhC,MAAA,CAAAgC,OAAA,CAAAU,aAAA,CAACvC,KAAA,CAAA+C,IAAI;MAACC,IAAI,EAAE;IAAE,gBACVnD,MAAA,CAAAgC,OAAA,CAAAU,aAAA,CAACG,IAAI;MAAClB,IAAI,EAAE;IAAiB,gBACzB3B,MAAA,CAAAgC,OAAA,CAAAU,aAAA,CAACtC,OAAA,CAAAmD,MAAM;MAACC,KAAK,EAAE5C,CAAC,CAAAH,gBAAA,KAAAA,gBAAA,OAAA6C,uBAAA,CAAAtB,OAAA;IAA0B,gBACtChC,MAAA,CAAAgC,OAAA,CAAAU,aAAA;MAAQvB,KAAK,EAAE;IAAG,GAAEP,CAAC,CAAAF,gBAAA,KAAAA,gBAAA,OAAA4C,uBAAA,CAAAtB,OAAA,kBAAoB,CAAC,eAC1ChC,MAAA,CAAAgC,OAAA,CAAAU,aAAA;MAAQvB,KAAK,EAAE;IAAM,GAAEP,CAAC,CAAAD,gBAAA,KAAAA,gBAAA,OAAA2C,uBAAA,CAAAtB,OAAA,oBAAsB,CAC1C,CACN,CACJ,CACJ,CACA,CAAC;EAEnB,CACE,CAAC;AAEf,CAAC","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import { AdminAppPermissionRendererPlugin } from "@webiny/app-admin/types";
2
+ export declare const recordLockingPermissionRenderer: AdminAppPermissionRendererPlugin;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.recordLockingPermissionRenderer = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _Accordion = require("@webiny/ui/Accordion");
10
+ var _lock = require("../assets/lock.svg");
11
+ var _RecordLockingPermissions = require("./RecordLockingPermissions");
12
+ var recordLockingPermissionRenderer = exports.recordLockingPermissionRenderer = {
13
+ type: "admin-app-permissions-renderer",
14
+ name: "admin-app-permissions-renderer-record-locking",
15
+ render: function render(props) {
16
+ return /*#__PURE__*/_react.default.createElement(_Accordion.AccordionItem, {
17
+ icon: /*#__PURE__*/_react.default.createElement(_lock.ReactComponent, null),
18
+ title: "Record Locking",
19
+ description: "Manage Record Locking Permissions.",
20
+ "data-testid": "permission.recordLocking"
21
+ }, /*#__PURE__*/_react.default.createElement(_RecordLockingPermissions.RecordLockingPermissions, props));
22
+ }
23
+ };
24
+
25
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_Accordion","_lock","_RecordLockingPermissions","recordLockingPermissionRenderer","exports","type","name","render","props","default","createElement","AccordionItem","icon","ReactComponent","title","description","RecordLockingPermissions"],"sources":["index.tsx"],"sourcesContent":["import React from \"react\";\nimport { AccordionItem } from \"@webiny/ui/Accordion\";\nimport { AdminAppPermissionRendererPlugin } from \"@webiny/app-admin/types\";\nimport { ReactComponent as Icon } from \"../assets/lock.svg\";\nimport { RecordLockingPermissions } from \"./RecordLockingPermissions\";\n\nexport const recordLockingPermissionRenderer: AdminAppPermissionRendererPlugin = {\n type: \"admin-app-permissions-renderer\",\n name: \"admin-app-permissions-renderer-record-locking\",\n render(props) {\n return (\n <AccordionItem\n icon={<Icon />}\n title={\"Record Locking\"}\n description={\"Manage Record Locking Permissions.\"}\n data-testid={\"permission.recordLocking\"}\n >\n <RecordLockingPermissions {...props} />\n </AccordionItem>\n );\n }\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAEA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,yBAAA,GAAAH,OAAA;AAEO,IAAMI,+BAAiE,GAAAC,OAAA,CAAAD,+BAAA,GAAG;EAC7EE,IAAI,EAAE,gCAAgC;EACtCC,IAAI,EAAE,+CAA+C;EACrDC,MAAM,WAANA,MAAMA,CAACC,KAAK,EAAE;IACV,oBACIX,MAAA,CAAAY,OAAA,CAAAC,aAAA,CAACV,UAAA,CAAAW,aAAa;MACVC,IAAI,eAAEf,MAAA,CAAAY,OAAA,CAAAC,aAAA,CAACT,KAAA,CAAAY,cAAI,MAAE,CAAE;MACfC,KAAK,EAAE,gBAAiB;MACxBC,WAAW,EAAE,oCAAqC;MAClD,eAAa;IAA2B,gBAExClB,MAAA,CAAAY,OAAA,CAAAC,aAAA,CAACR,yBAAA,CAAAc,wBAAwB,EAAKR,KAAQ,CAC3B,CAAC;EAExB;AACJ,CAAC","ignoreList":[]}
@@ -1,3 +1,3 @@
1
1
  export declare const usePermission: () => {
2
- hasFullAccess: boolean;
2
+ canForceUnlock: boolean;
3
3
  };
@@ -10,11 +10,16 @@ var usePermission = exports.usePermission = function usePermission() {
10
10
  var _useSecurity = (0, _appSecurity.useSecurity)(),
11
11
  identity = _useSecurity.identity,
12
12
  getPermission = _useSecurity.getPermission;
13
- var hasFullAccess = (0, _react.useMemo)(function () {
14
- return !!getPermission("recordLocking.*");
15
- }, [identity]);
13
+ var canForceUnlock = (0, _react.useMemo)(function () {
14
+ var hasFullAccess = !!getPermission("recordLocking.*");
15
+ if (hasFullAccess) {
16
+ return true;
17
+ }
18
+ var permission = getPermission("recordLocking");
19
+ return permission?.canForceUnlock === "yes";
20
+ }, [identity?.permissions]);
16
21
  return {
17
- hasFullAccess: hasFullAccess
22
+ canForceUnlock: canForceUnlock
18
23
  };
19
24
  };
20
25
 
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_appSecurity","usePermission","exports","_useSecurity","useSecurity","identity","getPermission","hasFullAccess","useMemo"],"sources":["usePermission.ts"],"sourcesContent":["import { useMemo } from \"react\";\nimport { useSecurity } from \"@webiny/app-security\";\n\nexport const usePermission = () => {\n const { identity, getPermission } = useSecurity();\n\n const hasFullAccess = useMemo(() => {\n return !!getPermission(\"recordLocking.*\");\n }, [identity]);\n\n return {\n hasFullAccess\n };\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEO,IAAME,aAAa,GAAAC,OAAA,CAAAD,aAAA,GAAG,SAAhBA,aAAaA,CAAA,EAAS;EAC/B,IAAAE,YAAA,GAAoC,IAAAC,wBAAW,EAAC,CAAC;IAAzCC,QAAQ,GAAAF,YAAA,CAARE,QAAQ;IAAEC,aAAa,GAAAH,YAAA,CAAbG,aAAa;EAE/B,IAAMC,aAAa,GAAG,IAAAC,cAAO,EAAC,YAAM;IAChC,OAAO,CAAC,CAACF,aAAa,CAAC,iBAAiB,CAAC;EAC7C,CAAC,EAAE,CAACD,QAAQ,CAAC,CAAC;EAEd,OAAO;IACHE,aAAa,EAAbA;EACJ,CAAC;AACL,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_appSecurity","usePermission","exports","_useSecurity","useSecurity","identity","getPermission","canForceUnlock","useMemo","hasFullAccess","permission","permissions"],"sources":["usePermission.ts"],"sourcesContent":["import { useMemo } from \"react\";\nimport { useSecurity } from \"@webiny/app-security\";\n\nexport const usePermission = () => {\n const { identity, getPermission } = useSecurity();\n\n const canForceUnlock = useMemo(() => {\n const hasFullAccess = !!getPermission(\"recordLocking.*\");\n if (hasFullAccess) {\n return true;\n }\n const permission = getPermission(\"recordLocking\");\n return permission?.canForceUnlock === \"yes\";\n }, [identity?.permissions]);\n\n return {\n canForceUnlock\n };\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEO,IAAME,aAAa,GAAAC,OAAA,CAAAD,aAAA,GAAG,SAAhBA,aAAaA,CAAA,EAAS;EAC/B,IAAAE,YAAA,GAAoC,IAAAC,wBAAW,EAAC,CAAC;IAAzCC,QAAQ,GAAAF,YAAA,CAARE,QAAQ;IAAEC,aAAa,GAAAH,YAAA,CAAbG,aAAa;EAE/B,IAAMC,cAAc,GAAG,IAAAC,cAAO,EAAC,YAAM;IACjC,IAAMC,aAAa,GAAG,CAAC,CAACH,aAAa,CAAC,iBAAiB,CAAC;IACxD,IAAIG,aAAa,EAAE;MACf,OAAO,IAAI;IACf;IACA,IAAMC,UAAU,GAAGJ,aAAa,CAAC,eAAe,CAAC;IACjD,OAAOI,UAAU,EAAEH,cAAc,KAAK,KAAK;EAC/C,CAAC,EAAE,CAACF,QAAQ,EAAEM,WAAW,CAAC,CAAC;EAE3B,OAAO;IACHJ,cAAc,EAAdA;EACJ,CAAC;AACL,CAAC","ignoreList":[]}
package/index.js CHANGED
@@ -25,6 +25,8 @@ Object.keys(_RecordLockingProvider).forEach(function (key) {
25
25
  var _HeadlessCmsActionsAcoCell = require("./components/HeadlessCmsActionsAcoCell");
26
26
  var _HeadlessCmsContentEntry = require("./components/HeadlessCmsContentEntry");
27
27
  var _appWcp = require("@webiny/app-wcp");
28
+ var _plugins = require("@webiny/plugins");
29
+ var _permissionRenderer = require("./components/permissionRenderer");
28
30
  var _hooks = require("./hooks");
29
31
  Object.keys(_hooks).forEach(function (key) {
30
32
  if (key === "default" || key === "__esModule") return;
@@ -48,6 +50,7 @@ var RecordLocking = exports.RecordLocking = function RecordLocking() {
48
50
  if (!wcp.canUseRecordLocking()) {
49
51
  return null;
50
52
  }
53
+ _plugins.plugins.register(_permissionRenderer.recordLockingPermissionRenderer);
51
54
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_app.Provider, {
52
55
  hoc: RecordLockingHoc
53
56
  }), /*#__PURE__*/_react.default.createElement(_HeadlessCmsActionsAcoCell.HeadlessCmsActionsAcoCell, null), /*#__PURE__*/_react.default.createElement(_HeadlessCmsContentEntry.HeadlessCmsContentEntry, null));
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_app","_RecordLockingProvider","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_HeadlessCmsActionsAcoCell","_HeadlessCmsContentEntry","_appWcp","_hooks","RecordLockingHoc","Component","RecordLockingProvider","_ref","children","default","createElement","RecordLocking","wcp","useWcp","canUseRecordLocking","Fragment","Provider","hoc","HeadlessCmsActionsAcoCell","HeadlessCmsContentEntry"],"sources":["index.tsx"],"sourcesContent":["import React from \"react\";\nimport { Provider } from \"@webiny/app\";\nimport { RecordLockingProvider as RecordLockingProviderComponent } from \"~/components/RecordLockingProvider\";\nimport { HeadlessCmsActionsAcoCell } from \"~/components/HeadlessCmsActionsAcoCell\";\nimport { HeadlessCmsContentEntry } from \"~/components/HeadlessCmsContentEntry\";\nimport { useWcp } from \"@webiny/app-wcp\";\n\nexport * from \"~/components/RecordLockingProvider\";\nexport * from \"~/hooks\";\n\nexport interface RecordLockingProviderProps {\n children: React.ReactNode;\n}\n\nconst RecordLockingHoc = (Component: React.ComponentType<RecordLockingProviderProps>) => {\n return function RecordLockingProvider({ children }: RecordLockingProviderProps) {\n return (\n <Component>\n <RecordLockingProviderComponent>{children}</RecordLockingProviderComponent>\n </Component>\n );\n };\n};\n\nexport const RecordLocking = () => {\n const wcp = useWcp();\n\n if (!wcp.canUseRecordLocking()) {\n return null;\n }\n\n return (\n <>\n <Provider hoc={RecordLockingHoc} />\n <HeadlessCmsActionsAcoCell />\n <HeadlessCmsContentEntry />\n </>\n );\n};\n"],"mappings":";;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,IAAA,GAAAD,OAAA;AACA,IAAAE,sBAAA,GAAAF,OAAA;AAKAG,MAAA,CAAAC,IAAA,CAAAF,sBAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,sBAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAZ,sBAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AAJA,IAAAS,0BAAA,GAAAf,OAAA;AACA,IAAAgB,wBAAA,GAAAhB,OAAA;AACA,IAAAiB,OAAA,GAAAjB,OAAA;AAGA,IAAAkB,MAAA,GAAAlB,OAAA;AAAAG,MAAA,CAAAC,IAAA,CAAAc,MAAA,EAAAb,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAY,MAAA,CAAAZ,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAI,MAAA,CAAAZ,GAAA;IAAA;EAAA;AAAA;AAMA,IAAMa,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIC,SAA0D,EAAK;EACrF,OAAO,SAASC,qBAAqBA,CAAAC,IAAA,EAA2C;IAAA,IAAxCC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IAC5C,oBACIzB,MAAA,CAAA0B,OAAA,CAAAC,aAAA,CAACL,SAAS,qBACNtB,MAAA,CAAA0B,OAAA,CAAAC,aAAA,CAACvB,sBAAA,CAAAmB,qBAA8B,QAAEE,QAAyC,CACnE,CAAC;EAEpB,CAAC;AACL,CAAC;AAEM,IAAMG,aAAa,GAAAf,OAAA,CAAAe,aAAA,GAAG,SAAhBA,aAAaA,CAAA,EAAS;EAC/B,IAAMC,GAAG,GAAG,IAAAC,cAAM,EAAC,CAAC;EAEpB,IAAI,CAACD,GAAG,CAACE,mBAAmB,CAAC,CAAC,EAAE;IAC5B,OAAO,IAAI;EACf;EAEA,oBACI/B,MAAA,CAAA0B,OAAA,CAAAC,aAAA,CAAA3B,MAAA,CAAA0B,OAAA,CAAAM,QAAA,qBACIhC,MAAA,CAAA0B,OAAA,CAAAC,aAAA,CAACxB,IAAA,CAAA8B,QAAQ;IAACC,GAAG,EAAEb;EAAiB,CAAE,CAAC,eACnCrB,MAAA,CAAA0B,OAAA,CAAAC,aAAA,CAACV,0BAAA,CAAAkB,yBAAyB,MAAE,CAAC,eAC7BnC,MAAA,CAAA0B,OAAA,CAAAC,aAAA,CAACT,wBAAA,CAAAkB,uBAAuB,MAAE,CAC5B,CAAC;AAEX,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_app","_RecordLockingProvider","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_HeadlessCmsActionsAcoCell","_HeadlessCmsContentEntry","_appWcp","_plugins","_permissionRenderer","_hooks","RecordLockingHoc","Component","RecordLockingProvider","_ref","children","default","createElement","RecordLocking","wcp","useWcp","canUseRecordLocking","plugins","register","recordLockingPermissionRenderer","Fragment","Provider","hoc","HeadlessCmsActionsAcoCell","HeadlessCmsContentEntry"],"sources":["index.tsx"],"sourcesContent":["import React from \"react\";\nimport { Provider } from \"@webiny/app\";\nimport { RecordLockingProvider as RecordLockingProviderComponent } from \"~/components/RecordLockingProvider\";\nimport { HeadlessCmsActionsAcoCell } from \"~/components/HeadlessCmsActionsAcoCell\";\nimport { HeadlessCmsContentEntry } from \"~/components/HeadlessCmsContentEntry\";\nimport { useWcp } from \"@webiny/app-wcp\";\nimport { plugins } from \"@webiny/plugins\";\nimport { recordLockingPermissionRenderer } from \"~/components/permissionRenderer\";\n\nexport * from \"~/components/RecordLockingProvider\";\nexport * from \"~/hooks\";\n\nexport interface RecordLockingProviderProps {\n children: React.ReactNode;\n}\n\nconst RecordLockingHoc = (Component: React.ComponentType<RecordLockingProviderProps>) => {\n return function RecordLockingProvider({ children }: RecordLockingProviderProps) {\n return (\n <Component>\n <RecordLockingProviderComponent>{children}</RecordLockingProviderComponent>\n </Component>\n );\n };\n};\n\nexport const RecordLocking = () => {\n const wcp = useWcp();\n\n if (!wcp.canUseRecordLocking()) {\n return null;\n }\n plugins.register(recordLockingPermissionRenderer);\n\n return (\n <>\n <Provider hoc={RecordLockingHoc} />\n <HeadlessCmsActionsAcoCell />\n <HeadlessCmsContentEntry />\n </>\n );\n};\n"],"mappings":";;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,IAAA,GAAAD,OAAA;AACA,IAAAE,sBAAA,GAAAF,OAAA;AAOAG,MAAA,CAAAC,IAAA,CAAAF,sBAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,sBAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAZ,sBAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AANA,IAAAS,0BAAA,GAAAf,OAAA;AACA,IAAAgB,wBAAA,GAAAhB,OAAA;AACA,IAAAiB,OAAA,GAAAjB,OAAA;AACA,IAAAkB,QAAA,GAAAlB,OAAA;AACA,IAAAmB,mBAAA,GAAAnB,OAAA;AAGA,IAAAoB,MAAA,GAAApB,OAAA;AAAAG,MAAA,CAAAC,IAAA,CAAAgB,MAAA,EAAAf,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAc,MAAA,CAAAd,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAM,MAAA,CAAAd,GAAA;IAAA;EAAA;AAAA;AAMA,IAAMe,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIC,SAA0D,EAAK;EACrF,OAAO,SAASC,qBAAqBA,CAAAC,IAAA,EAA2C;IAAA,IAAxCC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IAC5C,oBACI3B,MAAA,CAAA4B,OAAA,CAAAC,aAAA,CAACL,SAAS,qBACNxB,MAAA,CAAA4B,OAAA,CAAAC,aAAA,CAACzB,sBAAA,CAAAqB,qBAA8B,QAAEE,QAAyC,CACnE,CAAC;EAEpB,CAAC;AACL,CAAC;AAEM,IAAMG,aAAa,GAAAjB,OAAA,CAAAiB,aAAA,GAAG,SAAhBA,aAAaA,CAAA,EAAS;EAC/B,IAAMC,GAAG,GAAG,IAAAC,cAAM,EAAC,CAAC;EAEpB,IAAI,CAACD,GAAG,CAACE,mBAAmB,CAAC,CAAC,EAAE;IAC5B,OAAO,IAAI;EACf;EACAC,gBAAO,CAACC,QAAQ,CAACC,mDAA+B,CAAC;EAEjD,oBACIpC,MAAA,CAAA4B,OAAA,CAAAC,aAAA,CAAA7B,MAAA,CAAA4B,OAAA,CAAAS,QAAA,qBACIrC,MAAA,CAAA4B,OAAA,CAAAC,aAAA,CAAC1B,IAAA,CAAAmC,QAAQ;IAACC,GAAG,EAAEhB;EAAiB,CAAE,CAAC,eACnCvB,MAAA,CAAA4B,OAAA,CAAAC,aAAA,CAACZ,0BAAA,CAAAuB,yBAAyB,MAAE,CAAC,eAC7BxC,MAAA,CAAA4B,OAAA,CAAAC,aAAA,CAACX,wBAAA,CAAAuB,uBAAuB,MAAE,CAC5B,CAAC;AAEX,CAAC","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/app-record-locking",
3
- "version": "5.42.1-beta.0",
3
+ "version": "5.42.1-beta.2",
4
4
  "main": "index.js",
5
5
  "repository": {
6
6
  "type": "git",
@@ -16,17 +16,19 @@
16
16
  "@apollo/react-hooks": "3.1.5",
17
17
  "@emotion/styled": "11.10.6",
18
18
  "@material-design-icons/svg": "0.14.13",
19
- "@webiny/app": "5.42.1-beta.0",
20
- "@webiny/app-aco": "5.42.1-beta.0",
21
- "@webiny/app-admin": "5.42.1-beta.0",
22
- "@webiny/app-headless-cms": "5.42.1-beta.0",
23
- "@webiny/app-security": "5.42.1-beta.0",
24
- "@webiny/app-wcp": "5.42.1-beta.0",
25
- "@webiny/app-websockets": "5.42.1-beta.0",
26
- "@webiny/error": "5.42.1-beta.0",
27
- "@webiny/react-router": "5.42.1-beta.0",
28
- "@webiny/ui": "5.42.1-beta.0",
29
- "@webiny/utils": "5.42.1-beta.0",
19
+ "@webiny/app": "5.42.1-beta.2",
20
+ "@webiny/app-aco": "5.42.1-beta.2",
21
+ "@webiny/app-admin": "5.42.1-beta.2",
22
+ "@webiny/app-headless-cms": "5.42.1-beta.2",
23
+ "@webiny/app-security": "5.42.1-beta.2",
24
+ "@webiny/app-wcp": "5.42.1-beta.2",
25
+ "@webiny/app-websockets": "5.42.1-beta.2",
26
+ "@webiny/error": "5.42.1-beta.2",
27
+ "@webiny/form": "5.42.1-beta.2",
28
+ "@webiny/plugins": "5.42.1-beta.2",
29
+ "@webiny/react-router": "5.42.1-beta.2",
30
+ "@webiny/ui": "5.42.1-beta.2",
31
+ "@webiny/utils": "5.42.1-beta.2",
30
32
  "apollo-client": "2.6.10",
31
33
  "apollo-link": "1.2.14",
32
34
  "crypto-hash": "3.0.0",
@@ -35,8 +37,8 @@
35
37
  "react-dom": "18.2.0"
36
38
  },
37
39
  "devDependencies": {
38
- "@webiny/cli": "5.42.1-beta.0",
39
- "@webiny/project-utils": "5.42.1-beta.0",
40
+ "@webiny/cli": "5.42.1-beta.2",
41
+ "@webiny/project-utils": "5.42.1-beta.2",
40
42
  "rimraf": "6.0.1",
41
43
  "ttypescript": "1.5.15",
42
44
  "typescript": "4.9.5"
@@ -49,5 +51,5 @@
49
51
  "build": "yarn webiny run build",
50
52
  "watch": "yarn webiny run watch"
51
53
  },
52
- "gitHead": "16fb9009f44f242bbc8ba0e02c1d49b1f7ab935b"
54
+ "gitHead": "86931bade22e9407f297bb69e3a898e2b7e2450a"
53
55
  }
package/types.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { EntryTableItem } from "@webiny/app-headless-cms/types";
2
2
  import { GenericRecord } from "@webiny/app/types";
3
3
  import { IRecordLockingUnlockEntryResult } from "./domain/abstractions/IRecordLockingUnlockEntry";
4
+ import { SecurityPermission } from "@webiny/app-security/types";
4
5
  export interface IRecordLockingIdentity {
5
6
  id: string;
6
7
  displayName: string;
@@ -70,3 +71,6 @@ export interface IRecordLockingError<T = GenericRecord> {
70
71
  code: string;
71
72
  data?: T;
72
73
  }
74
+ export interface RecordLockingSecurityPermission extends SecurityPermission {
75
+ canForceUnlock?: string;
76
+ }
package/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import { EntryTableItem } from \"@webiny/app-headless-cms/types\";\nimport { GenericRecord } from \"@webiny/app/types\";\nimport { IRecordLockingUnlockEntryResult } from \"~/domain/abstractions/IRecordLockingUnlockEntry\";\n\nexport interface IRecordLockingIdentity {\n id: string;\n displayName: string;\n type: string;\n}\n\nexport interface IRecordLockingRecordLocked {\n lockedBy: IRecordLockingIdentity;\n lockedOn: string;\n expiresOn: string;\n actions: IRecordLockingLockRecordAction[];\n}\n\nexport interface IPossiblyRecordLockingRecord extends EntryTableItem {\n $lockingType?: string;\n entryId: string;\n $locked?: IRecordLockingRecordLocked | null;\n}\n\nexport interface IRecordLockingRecord extends IPossiblyRecordLockingRecord {\n entryId: string;\n $lockingType: string;\n}\n\nexport type IIsRecordLockedParams = Pick<IRecordLockingRecord, \"id\" | \"$lockingType\">;\n\nexport type IUpdateEntryLockParams = Pick<IRecordLockingRecord, \"id\" | \"$lockingType\">;\n\nexport type IUnlockEntryParams = Pick<IRecordLockingRecord, \"id\" | \"$lockingType\">;\n\nexport type IFetchLockRecordParams = Pick<IRecordLockingRecord, \"id\" | \"$lockingType\">;\n\nexport type IFetchLockedEntryLockRecordParams = Pick<IRecordLockingRecord, \"id\" | \"$lockingType\">;\n\nexport interface IFetchLockRecordResult {\n data: IRecordLockingLockRecord | null;\n error: IRecordLockingError | null;\n}\n\nexport interface IRecordLockingContext<\n T extends IPossiblyRecordLockingRecord = IPossiblyRecordLockingRecord\n> {\n readonly loading: boolean;\n readonly records: IPossiblyRecordLockingRecord[];\n readonly error?: IRecordLockingError | null;\n setRecords(folderId: string, type: string, records: T[]): Promise<void>;\n updateEntryLock(params: IUpdateEntryLockParams): Promise<void>;\n isRecordLocked(params?: IIsRecordLockedParams): boolean;\n getLockRecordEntry(id: string): IRecordLockingRecord | undefined;\n fetchLockRecord(params: IFetchLockRecordParams): Promise<IFetchLockRecordResult>;\n fetchLockedEntryLockRecord(\n params: IFetchLockedEntryLockRecordParams\n ): Promise<IRecordLockingLockRecord | null>;\n unlockEntry(params: IUnlockEntryParams): Promise<IRecordLockingUnlockEntryResult>;\n removeEntryLock(params: IUnlockEntryParams): void;\n unlockEntryForce(params: IUnlockEntryParams): Promise<IRecordLockingUnlockEntryResult>;\n isLockExpired(input: Date | string): boolean;\n}\n\nexport interface IRecordLockingLockRecordAction {\n type: string;\n message: string;\n createdBy: IRecordLockingIdentity;\n createdOn: string;\n}\n\nexport interface IRecordLockingLockRecord {\n id: string;\n lockedOn: string;\n expiresOn: string;\n lockedBy: IRecordLockingIdentity;\n targetId: string;\n type: string;\n actions: IRecordLockingLockRecordAction[];\n}\n\nexport interface IRecordLockingMeta {\n totalCount: number;\n cursor: string | null;\n hasMoreItems: boolean;\n}\n\nexport interface IRecordLockingError<T = GenericRecord> {\n message: string;\n code: string;\n data?: T;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import { EntryTableItem } from \"@webiny/app-headless-cms/types\";\nimport { GenericRecord } from \"@webiny/app/types\";\nimport { IRecordLockingUnlockEntryResult } from \"~/domain/abstractions/IRecordLockingUnlockEntry\";\nimport { SecurityPermission } from \"@webiny/app-security/types\";\n\nexport interface IRecordLockingIdentity {\n id: string;\n displayName: string;\n type: string;\n}\n\nexport interface IRecordLockingRecordLocked {\n lockedBy: IRecordLockingIdentity;\n lockedOn: string;\n expiresOn: string;\n actions: IRecordLockingLockRecordAction[];\n}\n\nexport interface IPossiblyRecordLockingRecord extends EntryTableItem {\n $lockingType?: string;\n entryId: string;\n $locked?: IRecordLockingRecordLocked | null;\n}\n\nexport interface IRecordLockingRecord extends IPossiblyRecordLockingRecord {\n entryId: string;\n $lockingType: string;\n}\n\nexport type IIsRecordLockedParams = Pick<IRecordLockingRecord, \"id\" | \"$lockingType\">;\n\nexport type IUpdateEntryLockParams = Pick<IRecordLockingRecord, \"id\" | \"$lockingType\">;\n\nexport type IUnlockEntryParams = Pick<IRecordLockingRecord, \"id\" | \"$lockingType\">;\n\nexport type IFetchLockRecordParams = Pick<IRecordLockingRecord, \"id\" | \"$lockingType\">;\n\nexport type IFetchLockedEntryLockRecordParams = Pick<IRecordLockingRecord, \"id\" | \"$lockingType\">;\n\nexport interface IFetchLockRecordResult {\n data: IRecordLockingLockRecord | null;\n error: IRecordLockingError | null;\n}\n\nexport interface IRecordLockingContext<\n T extends IPossiblyRecordLockingRecord = IPossiblyRecordLockingRecord\n> {\n readonly loading: boolean;\n readonly records: IPossiblyRecordLockingRecord[];\n readonly error?: IRecordLockingError | null;\n setRecords(folderId: string, type: string, records: T[]): Promise<void>;\n updateEntryLock(params: IUpdateEntryLockParams): Promise<void>;\n isRecordLocked(params?: IIsRecordLockedParams): boolean;\n getLockRecordEntry(id: string): IRecordLockingRecord | undefined;\n fetchLockRecord(params: IFetchLockRecordParams): Promise<IFetchLockRecordResult>;\n fetchLockedEntryLockRecord(\n params: IFetchLockedEntryLockRecordParams\n ): Promise<IRecordLockingLockRecord | null>;\n unlockEntry(params: IUnlockEntryParams): Promise<IRecordLockingUnlockEntryResult>;\n removeEntryLock(params: IUnlockEntryParams): void;\n unlockEntryForce(params: IUnlockEntryParams): Promise<IRecordLockingUnlockEntryResult>;\n isLockExpired(input: Date | string): boolean;\n}\n\nexport interface IRecordLockingLockRecordAction {\n type: string;\n message: string;\n createdBy: IRecordLockingIdentity;\n createdOn: string;\n}\n\nexport interface IRecordLockingLockRecord {\n id: string;\n lockedOn: string;\n expiresOn: string;\n lockedBy: IRecordLockingIdentity;\n targetId: string;\n type: string;\n actions: IRecordLockingLockRecordAction[];\n}\n\nexport interface IRecordLockingMeta {\n totalCount: number;\n cursor: string | null;\n hasMoreItems: boolean;\n}\n\nexport interface IRecordLockingError<T = GenericRecord> {\n message: string;\n code: string;\n data?: T;\n}\n\nexport interface RecordLockingSecurityPermission extends SecurityPermission {\n canForceUnlock?: string;\n}\n"],"mappings":"","ignoreList":[]}