@orangelogic/design-system 4.16.0 → 4.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/library/assets/validation.worker-DnJlaA8S.js +1 -0
  2. package/library/chunks/{asset-link-format.QScvoSeH.js → asset-link-format.B-wi80wk.js} +1 -1
  3. package/library/chunks/{bicolor-picker.DxvwdlPy.js → bicolor-picker.BHwn7qgI.js} +1 -1
  4. package/library/chunks/{border-input-group.BG6WuXiC.js → border-input-group.DlxLP_Yi.js} +1 -1
  5. package/library/chunks/{color-picker.DVCwSWmW.js → color-picker.NFpX0hDd.js} +2 -2
  6. package/library/chunks/{color-swatch-group.CYwte4Jm.js → color-swatch-group.DHrDL5W4.js} +15 -16
  7. package/library/chunks/{config-manager.Bgo1T59U.js → config-manager.j-83Ts1D.js} +12 -12
  8. package/library/chunks/{config-manager.utils.D7HXAqjy.js → config-manager.utils.C-G0Iimp.js} +246 -233
  9. package/library/chunks/{configs-controller.vXw3EK_q.js → configs-controller.FjT3LVI8.js} +342 -348
  10. package/library/chunks/{confirm-popover.Blq5LRa-.js → confirm-popover.B60_VW9E.js} +1 -1
  11. package/library/chunks/{document-viewer.CdWveLvo.js → document-viewer.BUAq7eW6.js} +3 -3
  12. package/library/chunks/{dropdown.DJXWFtei.js → dropdown.Yz1dFrzN.js} +1 -1
  13. package/library/chunks/{endpoints.Cyg4JQcE.js → endpoints.jOHOmF_t.js} +1 -1
  14. package/library/chunks/{file-on-demand.SOeN9tQJ.js → file-on-demand.DgSknSTy.js} +2 -2
  15. package/library/chunks/{folder-select.rWIoC8P3.js → folder-select.CmyEyzfA.js} +1 -1
  16. package/library/chunks/{menu-item.Dvh8F11T.js → menu-item.BXd8ZyH5.js} +1 -1
  17. package/library/chunks/{menu.qVOsnelB.js → menu.yAc9YFlN.js} +1 -1
  18. package/library/chunks/{shadow-input-group.Dyq74iNl.js → shadow-input-group.ClTseaRz.js} +1 -1
  19. package/library/chunks/{src.AeZ0-viY.js → src.BQQW1rcJ.js} +6 -6
  20. package/library/chunks/{tab-group.8ElFsJYM.js → tab-group.CPL6IRZr.js} +3 -3
  21. package/library/components/asset-link-format.js +1 -1
  22. package/library/components/atoms.js +7 -7
  23. package/library/components/bicolor-picker.js +1 -1
  24. package/library/components/border-input-group.js +1 -1
  25. package/library/components/color-picker.js +1 -1
  26. package/library/components/color-swatch-group.js +1 -1
  27. package/library/components/confirm-popover.js +1 -1
  28. package/library/components/document-viewer.js +1 -1
  29. package/library/components/dropdown.js +1 -1
  30. package/library/components/file-on-demand.js +1 -1
  31. package/library/components/folder-select.js +1 -1
  32. package/library/components/menu-item.js +1 -1
  33. package/library/components/menu.js +1 -1
  34. package/library/components/molecules.js +5 -5
  35. package/library/components/organisms.js +3 -3
  36. package/library/components/shadow-input-group.js +1 -1
  37. package/library/components/tab-group.js +1 -1
  38. package/library/components/types.js +7114 -7106
  39. package/library/package.json +1 -1
  40. package/library/packages/organisms/src/dam-custom-toolbar-buttons-editor/dam-custom-toolbar-buttons-editor.d.ts +16 -1
  41. package/library/packages/organisms/src/downloader/data/core/WorkerProxy.d.ts +1 -0
  42. package/library/packages/organisms/src/downloader/data/core/worker/app/DownloadManager.d.ts +6 -0
  43. package/library/packages/organisms/src/downloader/downloader.d.ts +2 -0
  44. package/library/packages/services/src/api/cms5/cms5.d.ts +9 -0
  45. package/library/packages/services/src/api/cms5/cms5.types.d.ts +3 -0
  46. package/library/packages/services/src/api/endpoints.d.ts +1 -0
  47. package/package.json +1 -1
  48. package/library/assets/validation.worker-BSuTSsWh.js +0 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@orangelogic/design-system",
3
3
  "type": "module",
4
- "version": "4.16.0",
4
+ "version": "4.18.0",
5
5
  "license": "UNLICENSED",
6
6
  "types": "library/types.d.ts",
7
7
  "scripts": {
@@ -73,6 +73,7 @@ export default class CxDamCustomToolbarButtonsEditor extends CortexElement {
73
73
  private apiGetDamViewAvailableForms;
74
74
  private apiGetDamViewAvailableLevelsOfAccess;
75
75
  private apiGetDamViewAvailablePages;
76
+ private apiGetDamViewCustomButtonDetail;
76
77
  /** Tracks whether `subTypesApi` has resolved at least once for the current API. */
77
78
  private subTypesLoaded;
78
79
  /**
@@ -81,6 +82,15 @@ export default class CxDamCustomToolbarButtonsEditor extends CortexElement {
81
82
  * `handleAvailableButtonSelect` to pre-fill the edit form for an existing button.
82
83
  */
83
84
  private availableButtonDetailsByValue;
85
+ /**
86
+ * Tail of the in-flight existing-button additions. Each one may wait on a detail fetch, so they
87
+ * resolve in pick order and the last of them emits them all in one list. Hosts write an emitted
88
+ * list back into `data` later (the content builder after its next update, a server-rendered host
89
+ * after a round trip), so a second list built from `data` before then would drop the first.
90
+ */
91
+ private pendingAvailableButtonSelect;
92
+ /** Buttons resolved by picks that a later, still-pending pick will emit along with its own. */
93
+ private resolvedAvailableButtons;
84
94
  private readonly formApi;
85
95
  private readonly spaceApi;
86
96
  private readonly accessLevelApi;
@@ -133,7 +143,7 @@ export default class CxDamCustomToolbarButtonsEditor extends CortexElement {
133
143
  private get addSelectColumns();
134
144
  private get typeSubtypeOptions();
135
145
  handleCreateNewClick(): void;
136
- handleAvailableButtonSelect(event: CustomEvent<Option>): void;
146
+ handleAvailableButtonSelect(event: CustomEvent<Option>): Promise<void>;
137
147
  handleListEditorEdit(event: CxListEditorRowActionEvent): void;
138
148
  handleListEditorDelete(event: CxListEditorRowActionEvent): void;
139
149
  handleAddClick(): void;
@@ -159,6 +169,11 @@ export default class CxDamCustomToolbarButtonsEditor extends CortexElement {
159
169
  handleSaveClick(): void;
160
170
  handleDialogFormSubmit(event: SubmitEvent): void;
161
171
  private loadSubTypesIfNeeded;
172
+ /**
173
+ * Page-level buttons are listed with a null detail (reading it builds the page's module), so
174
+ * fetch the picked one's configuration; every other option already carries it.
175
+ */
176
+ private resolveAvailableButtonDetail;
162
177
  private createNewButton;
163
178
  private updateEditedItem;
164
179
  /**
@@ -29,6 +29,7 @@ export declare class WorkerProxy implements IDownloadManager {
29
29
  start(enableRocketMode: boolean, keepDownloading: boolean): Promise<void>;
30
30
  restart(): Promise<void>;
31
31
  handleCookiesRejected(): void;
32
+ handleCookiesAccepted(): Promise<void>;
32
33
  registerDownload(transactionID: string): Promise<string | null>;
33
34
  startDownload(transactionID: string, location: string): Promise<void>;
34
35
  pauseFile(fileID: string): Promise<void>;
@@ -35,6 +35,11 @@ export type IDownloadManager = {
35
35
  getChunkSize: () => Promise<number>;
36
36
  getDefaultRootName: () => Promise<string | null>;
37
37
  getFile: (id: string) => Promise<GetFileQuery.QueryResult>;
38
+ /**
39
+ * Do necessary handling when the user has accepted cookies for downloader again
40
+ * after previously rejecting them
41
+ */
42
+ handleCookiesAccepted: () => Promise<void>;
38
43
  /**
39
44
  * Do necessary handling when the user has rejected cookies for downloader
40
45
  */
@@ -81,6 +86,7 @@ export declare class DownloadManager implements IDownloadManager {
81
86
  private databaseDiscarded;
82
87
  constructor(context: DownloadContext, downloadDatabase: DownloadDatabase, downloadTransactionsRepo: IDownloadTransactionsRepository, downloadFilesRepo: IDownloadFilesRepository, downloadChunksRepo: IDownloadChunksRepository, downloadApiClient: IDownloadApiClient, storage: IStorage, eventHub: IEventHub, logger: ILogger, retrier: IRetrier, locker: ILocker);
83
88
  handleCookiesRejected(): void;
89
+ handleCookiesAccepted(): Promise<void>;
84
90
  private setupBackgroundJobs;
85
91
  isRocketModeEnabled(): Promise<boolean>;
86
92
  private internalToggleRocketMode;
@@ -145,6 +145,8 @@ export default class CxDownloader extends CortexElement {
145
145
  setCheckDefaultRootNameInterval(): void;
146
146
  checkCookiesRejectedInterval: NodeJS.Timer | undefined;
147
147
  setCheckCookiesRejectedInterval(): void;
148
+ checkCookiesAcceptedInterval: NodeJS.Timer | undefined;
149
+ setCheckCookiesAcceptedInterval(): void;
148
150
  cancelSingle: (id: string) => void;
149
151
  onCancelAll: () => Promise<void>;
150
152
  onClear: (id: string) => void;
@@ -31,6 +31,15 @@ export declare function apiGetDamViewAvailableForms(params?: {
31
31
  export declare function apiGetDamViewAvailableButtons(params?: {
32
32
  teamspaceModule?: string;
33
33
  }): Promise<GetDamViewAvailableButtonsResponse>;
34
+ /**
35
+ * Resolves one `getavailablebuttons_42JU_v1` option into its full button configuration.
36
+ * Page-level buttons are listed with a null `detail` (reading it builds the page's module),
37
+ * so the one the user picks is fetched here. Returns null when the token matches nothing.
38
+ */
39
+ export declare function apiGetDamViewCustomButtonDetail(params: {
40
+ teamspaceModule?: string;
41
+ value: string;
42
+ }): Promise<DamViewAvailableButtonDetail | null>;
34
43
  /**
35
44
  * Maps the `detail` (backend `QuickAction`) of a `getavailablebuttons_42JU_v1` option
36
45
  * onto the custom-toolbar-button editor's field shape, so selecting an existing button
@@ -131,6 +131,9 @@ export type GetDamViewAvailableButtonsResponse = Array<{
131
131
  type: DamViewCustomButtonSourceType;
132
132
  value: string;
133
133
  }>;
134
+ export type GetDamViewCustomButtonDetailRawResponse = {
135
+ detail: DamViewAvailableButtonDetail | null;
136
+ };
134
137
  export type GetDamViewAssetStatusesRawResponse = {
135
138
  statuses: Array<{
136
139
  categoryId: string;
@@ -55,6 +55,7 @@ export declare enum CMS5_API_ENDPOINT {
55
55
  GET_DAM_VIEW_AVAILABLE_PANELS = "webapi/cms/cms5/damview/getavailablepanels_42JT_v1",
56
56
  GET_DAM_VIEW_AVAILABLE_SPACES = "webapi/cms/cms5/damview/getavailablespaces_42JW_v1",
57
57
  GET_DAM_VIEW_AVAILABLE_TEMPLATES = "webapi/cms/cms5/damview/getavailabletemplates_42JN_v1",
58
+ GET_DAM_VIEW_CUSTOM_BUTTON_DETAIL = "webapi/cms/cms5/damview/getcustombuttondetail_444N_v1",
58
59
  GET_DAM_VIEW_DISPLAY_MODE_OPTIONS = "webapi/cms/cms5/damview/getdisplaymodeoptions_42JS_v1",
59
60
  GET_PAGES_FOR_BLOCK_TEMPLATE = "webapi/cms/cms5/blocktemplate/getpagesforblocktemplate_41ig_v1",
60
61
  GET_PERMISSION = "webapi/cms/cms5/blocktemplate/getpermission_419r_v1",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@orangelogic/design-system",
3
3
  "type": "module",
4
- "version": "4.16.0",
4
+ "version": "4.18.0",
5
5
  "license": "UNLICENSED",
6
6
  "types": "library/types.d.ts",
7
7
  "scripts": {
@@ -1 +0,0 @@
1
- (function(){function e(e){return e===``||e==null}function t(e){return Number.isFinite(Number(e))}function n(e,t){if(!t||typeof t!=`object`)return!0;let n=Number(e);return!(t.min!==void 0&&n<t.min||t.max!==void 0&&n>t.max)}function r(e){return e instanceof Date?e.getTime():typeof e==`number`?Number.isFinite(e)?e:NaN:typeof e==`string`?Date.parse(e):NaN}let i=[{groupName:`year`,token:`YYYY`},{groupName:`month`,token:`MM`},{groupName:`day`,token:`DD`},{groupName:`hour`,token:`HH`},{groupName:`minute`,token:`mm`},{groupName:`second`,token:`ss`}];function a(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function o(e){let t=``,n=0;for(;n<e.length;){let r=i.find(({token:t})=>e.startsWith(t,n));if(r){let e=r.token.length;t+=`(?<${r.groupName}>\\d{${e}})`,n+=e}else t+=a(e[n]),n+=1}return RegExp(`^${t}$`)}function s(e,t){let n=o(t).exec(e);if(!n?.groups)return!1;let r=Number(n.groups.year??`1970`),i=Number(n.groups.month??`1`),a=Number(n.groups.day??`1`),s=Number(n.groups.hour??`0`),c=Number(n.groups.minute??`0`),l=Number(n.groups.second??`0`);if(i<1||i>12||s>23||c>59||l>59)return!1;let u=new Date(r,i-1,a,s,c,l);return u.getFullYear()===r&&u.getMonth()===i-1&&u.getDate()===a}let c={alphanumeric(t){return e(t)?!0:/^[a-z0-9]+$/i.test(String(t))},boolean(t){return e(t)?!0:typeof t==`boolean`||t===`true`||t===`false`},date(t,n){if(e(t))return!0;if(n&&typeof n==`object`&&n.format!==void 0&&!s(String(t),n.format))return!1;let i=r(t);if(Number.isNaN(i))return!1;if(!n||typeof n!=`object`)return!0;if(n.starts!==void 0){let e=r(n.starts);if(Number.isNaN(e)||i<e)return!1}if(n.ends!==void 0){let e=r(n.ends);if(Number.isNaN(e)||i>e)return!1}return!0},ends(t,n){return e(t)?!0:String(t).toLowerCase().endsWith(String(n).toLowerCase())},float(r,i){if(e(r))return!0;let a=Number(r);return t(r)&&a%1!=0&&n(r,i)},in(t,n){if(e(t))return!0;let r=typeof n==`string`?n.split(`|`):n;return Array.isArray(r)&&r.includes(t)},integer(r,i){if(e(r))return!0;let a=Number(r);return t(r)&&Math.floor(a)===a&&n(r,i)},max(t,n){return e(t)?!0:Number.parseFloat(String(t))<=Number(n)},maxLength(t,n){return e(t)?!0:String(t).length<=Number(n)},min(t,n){return e(t)?!0:Number.parseFloat(String(t))>=Number(n)},minLength(t,n){return e(t)?!0:String(t).length>=Number(n)},numeric(t,r){return e(t)?!0:!Number.isNaN(Number(t))&&n(t,r)},regex(t,n){if(e(t))return!0;let r;r=n instanceof RegExp?n:n===void 0?``:String(n);try{return new RegExp(r).test(String(t))}catch{return!1}},required(t){return!e(t)},starts(t,n){return e(t)?!0:String(t).toLowerCase().startsWith(String(n).toLowerCase())},string(t,n){if(e(t))return!0;if(!Number.isNaN(Number(t)))return!1;if(!n||typeof n!=`object`)return!0;let r=String(t).length;return!(n.minLength!==void 0&&r<n.minLength||n.maxLength!==void 0&&r>n.maxLength)},unique(t,n,r){return e(t)||!r?.columnValues?!0:!r.columnValues.some(e=>e===t)}},l=1e3;function u(e){return e===``||e==null}function d(e){let t=/* @__PURE__ */ new Map;return e.forEach(e=>{u(e)||t.set(e,(t.get(e)??0)+1)}),t}function f(e,t,n){let r=[];return t.forEach(t=>{let i;if(t.type===`unique`)i=u(e)||(n.get(e)??0)<=1;else{let n=c[t.type];i=!n||n(e,t.parameters)}i||r.push({message:t.message,parameters:t.parameters,type:t.type})}),r}globalThis.addEventListener(`message`,e=>{if(e.origin!==``||e.data?.type!==`cx-validation-request`)return;let{fields:t,id:n}=e.data.payload,r=t.map(e=>e.rules.some(e=>e.type===`unique`)?d(e.values):/* @__PURE__ */ new Map),i=t.reduce((e,t)=>Math.max(e,t.values.length),0);for(let e=0;e<i||e===0;e+=l){let a=Math.min(e+l,i),o=[];for(let n=e;n<a;n++)t.forEach((e,t)=>{let i=f(e.values[n],e.rules,r[t]);i.length&&o.push({failures:i,fieldIndex:t,rowIndex:n})});let s={done:a>=i,id:n,results:o};if(globalThis.postMessage({payload:s,type:`cx-validation-response`}),a>=i)break}})})();