@pacem/pacem-cms 1.0.0-bessel → 1.0.0-dirac

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,5 +1,5 @@
1
1
  /*!
2
- * @pacem/pacem-cms v1.0.0-bessel (https://js.pacem.it)
2
+ * @pacem/pacem-cms v1.0.0-dirac (https://js.pacem.it)
3
3
  * Pacem (https://pacem.it)
4
4
  * Licensed under Apache-2.0
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @pacem/pacem-cms v1.0.0-bessel (https://js.pacem.it)
2
+ * @pacem/pacem-cms v1.0.0-dirac (https://js.pacem.it)
3
3
  * Pacem (https://pacem.it)
4
4
  * Licensed under Apache-2.0
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @pacem/pacem-cms v1.0.0-bessel (https://js.pacem.it)
2
+ * @pacem/pacem-cms v1.0.0-dirac (https://js.pacem.it)
3
3
  * Pacem (https://pacem.it)
4
4
  * Licensed under Apache-2.0
5
5
  */
package/dist/esm/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @pacem/pacem-cms v1.0.0-bessel (https://js.pacem.it)
2
+ * @pacem/pacem-cms v1.0.0-dirac (https://js.pacem.it)
3
3
  * Pacem (https://pacem.it)
4
4
  * Licensed under Apache-2.0
5
5
  */
package/dist/esm/types.js CHANGED
@@ -1,21 +1,29 @@
1
1
  /*!
2
- * @pacem/pacem-cms v1.0.0-bessel (https://js.pacem.it)
2
+ * @pacem/pacem-cms v1.0.0-dirac (https://js.pacem.it)
3
3
  * Pacem (https://pacem.it)
4
4
  * Licensed under Apache-2.0
5
5
  */
6
6
  import { Utils } from '@pacem/pacem-core';
7
7
  export const PermissionEditEventName = 'permissionedit';
8
+ /** Dispatched to request permission-editing UI for the given {@link Permissible} resource. */
8
9
  export class PermissionEditEvent extends CustomEvent {
9
10
  constructor(permissible) {
10
11
  super(PermissionEditEventName, { detail: permissible, cancelable: false, bubbles: true });
11
12
  }
12
13
  }
14
+ /** Static, claim-based authorization checks (edit/read/add/delete/translate) against a {@link Permissible} resource's {@link Permission} list. */
13
15
  export class Permissible {
16
+ /** Gets whether `claims` grants edit (update) permission on `resource`. */
14
17
  static canEdit(claims, resource) { return this._canDoSomethingToResource(claims, resource, p => p.update); }
18
+ /** Gets whether `claims` grants read permission on `resource`. */
15
19
  static canRead(claims, resource) { return this._canDoSomethingToResource(claims, resource, p => p.read); }
20
+ /** Gets whether `claims` grants add (create) permission on `resource`. */
16
21
  static canAdd(claims, resource) { return this._canDoSomethingToResource(claims, resource, p => p.create); }
22
+ /** Gets whether `claims` grants delete permission on `resource`. */
17
23
  static canDelete(claims, resource) { return this._canDoSomethingToResource(claims, resource, p => p.delete); }
24
+ /** Gets whether `claims` grants translate permission on `resource`. */
18
25
  static canTranslate(claims, resource) { return this._canDoSomethingToResource(claims, resource, p => p.translate); }
26
+ /** Returns whether `claims` satisfies `predicate` for at least one of `resource.permissions`; when `resource.permissions` is empty, access is unrestricted (returns `true`). */
19
27
  static _canDoSomethingToResource(claims, resource, predicate) {
20
28
  if (Utils.isNullOrEmpty(claims) || Utils.isNull(resource)) {
21
29
  return false;
package/package.json CHANGED
@@ -4,6 +4,7 @@
4
4
  "dist/browser/*.*",
5
5
  "dist/bundle/*.*",
6
6
  "dist/esm/*.*",
7
+ "dist/docs/*.*",
7
8
  "typings/*.*",
8
9
  "README.md",
9
10
  "LICENSE",
@@ -28,7 +29,7 @@
28
29
  "types": "./typings/index.d.ts"
29
30
  }
30
31
  },
31
- "version": "1.0.0-bessel",
32
+ "version": "1.0.0-dirac",
32
33
  "author": {
33
34
  "name": "Pacem",
34
35
  "url": "https://pacem.it"
@@ -10,8 +10,14 @@ import { Storage as Storage_2 } from '@pacem/pacem-core';
10
10
 
11
11
  declare const ACCESS_TOKEN_METADATA: Scaffolding.PropertyMetadata;
12
12
 
13
+ /**
14
+ * Merges `metadata` on top of {@link DEFAULT_METADATA} (the common `tag` property/display), cellifying every
15
+ * resulting property's display (see `cellifyMetadata`); used by widget constructors to build their `metadata`.
16
+ * @param metadata Widget-specific metadata to merge on top of the defaults.
17
+ */
13
18
  declare function buildWidgetMetadata(metadata?: Scaffolding.TypeMetadata): Scaffolding.TypeMetadata;
14
19
 
20
+ /** Maps a claim type to the set of claim values held by the current user/context. */
15
21
  declare type Claims = {
16
22
  [name: string]: string[];
17
23
  };
@@ -75,12 +81,14 @@ export declare namespace Components {
75
81
  }
76
82
  }
77
83
 
84
+ /** Contract for a container of {@link PacemUiWidgetElement} items, backed by the `Element` (`itemsElement`) their DOM nodes are appended to. */
78
85
  declare interface CompositeWidget extends ItemsContainer<PacemUiWidgetElement> {
79
86
  readonly itemsElement: Element;
80
87
  register(item: PacemUiWidgetElement): boolean;
81
88
  unregister(item: PacemUiWidgetElement): boolean;
82
89
  }
83
90
 
91
+ /** A single rendered column of a data-grid-like widget: its header label, its per-row content (expression, constant, ...) and an optional relative/`'auto'` width. */
84
92
  declare interface DataColumn {
85
93
  header: string;
86
94
  /** expression, constant, ... */
@@ -88,7 +96,14 @@ declare interface DataColumn {
88
96
  width?: number | 'auto';
89
97
  }
90
98
 
91
- /** Default metadata ('expression' field) 'type' factory. */
99
+ /**
100
+ * Default metadata ('expression' field) 'type' factory: renders a `${P}-datacolumns` field bound to the
101
+ * given entity's `prop` (via `extra.properties`, either a property name or a factory function), used to
102
+ * edit the field's underlying {@link DataColumn}[] value.
103
+ * @param host The form field element requesting the markup.
104
+ * @param hostRef Binding-expression reference to `host` (defaults to `:host`).
105
+ * @param hostEntityRef Binding-expression reference to `host.entity` (defaults to `:host.entity`).
106
+ */
92
107
  declare const DATACOLUMNS_METADATA_TYPE: (host: Components_2.Scaffolding.PacemFormFieldElement, hostRef?: string, hostEntityRef?: string) => {
93
108
  tagName: string;
94
109
  attrs: {
@@ -98,7 +113,14 @@ declare const DATACOLUMNS_METADATA_TYPE: (host: Components_2.Scaffolding.PacemFo
98
113
 
99
114
  declare const DEFAULT_METADATA: Scaffolding.TypeMetadata;
100
115
 
101
- /** Default metadata ('expression' field) 'type' factory. */
116
+ /**
117
+ * Default metadata ('expression' field) 'type' factory: renders a `${P}-expression` field bound to the
118
+ * given entity's `prop` attribute (or, for plain objects, the property itself), relaying value changes back
119
+ * through {@link Functions.handleExpressionValueChange} and honoring the field's `extra.selector`/`filter`/`labeler`.
120
+ * @param host The form field element requesting the markup.
121
+ * @param hostRef Binding-expression reference to `host` (defaults to `:host`).
122
+ * @param hostEntityRef Binding-expression reference to `host.entity` (defaults to `:host.entity`).
123
+ */
102
124
  declare const EXPRESSION_METADATA_TYPE: (host: Components_2.Scaffolding.PacemFormFieldElement, hostRef?: string, hostEntityRef?: string) => {
103
125
  tagName: string;
104
126
  attrs: {
@@ -112,6 +134,7 @@ declare const EXPRESSION_WIDGET_METADATA_EXTRA: {
112
134
  labeler: (e: Widget) => string;
113
135
  };
114
136
 
137
+ /** The kind of value a {@link PacemExpressionElement} is currently editing, as picked in its source selector. */
115
138
  declare enum ExpressionSource {
116
139
  Constant = "const",
117
140
  PropertyReference = "property",
@@ -127,6 +150,12 @@ declare const Functions: {
127
150
 
128
151
  declare const GRID_COLUMNS = 12;
129
152
 
153
+ /**
154
+ * Adds the `${PCSS}-cell`/grid CSS classes to `metadata`'s display and to each of its properties' display,
155
+ * so that a generated form lays its fields out as grid cells (used for the datacolumns/fetch-parameters
156
+ * sub-grids editors, as opposed to {@link buildWidgetMetadata} which is used for a widget's own root metadata).
157
+ * @param metadata The metadata to adapt; defaults to an empty `{ props: [] }`-like metadata when omitted.
158
+ */
130
159
  declare function gridifyMetadata(metadata?: Scaffolding.TypeMetadata): Scaffolding.TypeMetadata;
131
160
 
132
161
  declare const LayoutChangeEventName = "layoutchange";
@@ -137,21 +166,34 @@ export declare namespace OpenApi {
137
166
  }
138
167
  }
139
168
 
169
+ /**
170
+ * Base class for widgets that authenticate their own fetch requests with a bearer `accessToken` (turned into
171
+ * an `Authorization: Bearer ...` header on `fetchHeaders`). See {@link PacemWidgetApiManifestElement} and
172
+ * {@link PacemWidgetFetchElement} for the concrete implementations.
173
+ */
140
174
  declare abstract class PacemBearerWidgetElement extends PacemWidgetElement implements Net.OAuthFetchable {
175
+ /** Gets or sets the `credentials` mode used for the widget's fetch requests. */
141
176
  fetchCredentials: RequestCredentials;
177
+ /** Gets or sets the HTTP headers sent with the widget's fetch requests; recomputed from `accessToken` when that changes. */
142
178
  fetchHeaders: {
143
179
  [key: string]: string;
144
180
  };
181
+ /** Gets or sets the bearer token used to authenticate the widget's fetch requests. */
145
182
  accessToken: {
146
183
  [key: string]: string;
147
184
  };
185
+ /** Gets or sets whether a fetch request is currently in flight. */
148
186
  fetching: boolean;
149
187
  propertyChangedCallback(name: string, old: any, val: any, first?: boolean): void;
150
188
  }
151
189
 
190
+ /** Base class for widgets that act as a container ({@link CompositeWidget}) for other {@link PacemUiWidgetElement} widgets. See {@link PacemGridWidgetElement} and `PacemWidgetPickerElement` for concrete implementations. */
152
191
  declare abstract class PacemCompositeWidgetElement extends PacemUiWidgetElement implements CompositeWidget {
192
+ /** @readonly Gets the currently registered child widgets. */
153
193
  items: PacemUiWidgetElement[];
194
+ /** Gets the `Element` new items are appended to; defaults to this widget itself. */
154
195
  get itemsElement(): this;
196
+ /** Gets whether `item` is an acceptable child of this container; overridable by subclasses to narrow the accepted item type. */
155
197
  protected validate(item: PacemUiWidgetElement): boolean;
156
198
  viewActivatedCallback(): void;
157
199
  /**
@@ -171,20 +213,29 @@ declare abstract class PacemCompositeWidgetElement extends PacemUiWidgetElement
171
213
  unregister(item: PacemUiWidgetElement): boolean;
172
214
  }
173
215
 
216
+ /** Single-column editor (header/content) used by {@link PacemDataColumnsElement}, self-scaffolding its inner `${P}-form` against `DATACOLUMN_METADATA`. */
174
217
  declare class PacemDataColumnElement extends Components_3.PacemElement {
218
+ /** Gets or sets the column's header label. */
175
219
  header: string;
220
+ /** Gets or sets the column's content attribute, mirrored from/to `contentExpression`. */
176
221
  content: string;
222
+ /** Gets or sets the column's content as an expression string, mirrored from/to the `content` attribute. */
177
223
  contentExpression: string;
178
224
  private _form;
179
225
  propertyChangedCallback(name: string, old: any, val: any, first?: boolean): void;
180
226
  viewActivatedCallback(): void;
181
227
  }
182
228
 
229
+ /**
230
+ * Form field for authoring a list of {@link DataColumn}s (`value`) by drag-dropping entries from the
231
+ * available `properties` onto the columns strip, each rendered/edited through a nested {@link PacemDataColumnElement}.
232
+ */
183
233
  declare class PacemDataColumnsElement extends Components_2.Scaffolding.PacemBaseElement {
184
234
  private _repeater;
185
235
  private _propDragger;
186
236
  private _colDragger;
187
237
  private _dropTarget;
238
+ /** Gets or sets the properties available to be dragged in as new columns. */
188
239
  properties: Partial<Scaffolding.PropertyMetadata>[];
189
240
  protected get inputFields(): HTMLElement[];
190
241
  protected toggleReadonlyView(readonly: boolean): void;
@@ -198,6 +249,7 @@ declare class PacemDataColumnsElement extends Components_2.Scaffolding.PacemBase
198
249
  private _columnifyMetadata;
199
250
  }
200
251
 
252
+ /** Form field for picking an `Element` (identified by its `id`) among those matching `selector`/`filter`, listed in a `${P}-select`. */
201
253
  declare class PacemElementPickerElement extends PacemElementPickerElementBase {
202
254
  protected get inputFields(): HTMLElement[];
203
255
  protected toggleReadonlyView(readonly: boolean): void;
@@ -211,12 +263,25 @@ declare class PacemElementPickerElement extends PacemElementPickerElementBase {
211
263
  private _databind;
212
264
  }
213
265
 
266
+ /**
267
+ * Base class for form fields that let the user pick an `Element` from the current document, filtered by
268
+ * `selector`/`filter` and displayed through `labeler`. See {@link PacemElementPickerElement} for the concrete
269
+ * `${P}-select`-backed implementation.
270
+ */
214
271
  declare abstract class PacemElementPickerElementBase extends Components_2.Scaffolding.PacemBaseElement {
272
+ /** Gets or sets the CSS selector used to query the candidate elements (defaults to `[pacem]`). */
215
273
  selector: string;
274
+ /** Gets or sets the predicate further restricting the candidate elements queried by `selector`. */
216
275
  filter: (e: Element) => boolean;
276
+ /** Gets or sets the function projecting a candidate element into its display label. */
217
277
  labeler: (e: Element) => string;
218
278
  }
219
279
 
280
+ /**
281
+ * Form field for building a Pacem binding-expression string, either as a plain constant, a picked
282
+ * element/property reference (via {@link PacemElementPickerElementBase}), or a free-hand expression typed
283
+ * into an inner `${P}-textarea`; a live preview of the evaluated `value` is shown alongside the field.
284
+ */
220
285
  declare class PacemExpressionElement extends PacemElementPickerElementBase {
221
286
  converter: PropertyConverter;
222
287
  private _editing;
@@ -239,19 +304,34 @@ declare class PacemExpressionElement extends PacemElementPickerElementBase {
239
304
  private _reverseStructure;
240
305
  }
241
306
 
307
+ /**
308
+ * Composition widget that lays out child {@link PacemUiWidgetElement} widgets in a CSS grid: on `register`
309
+ * it finds a free spot (or grows the grid) for the new item's `column`/`row`/`colspan`/`rowspan`, and while
310
+ * `editing` it enables drag-move/resize behaviors (backed by internal `${P}-drag-drop`/`${P}-rescale`
311
+ * elements) plus an overlay of selectable grid-cell boxes.
312
+ */
242
313
  declare class PacemGridWidgetElement extends PacemCompositeWidgetElement {
243
314
  constructor();
244
315
  register(item: PacemUiWidgetElement): boolean;
245
316
  unregister(item: PacemUiWidgetElement): boolean;
246
317
  private _widgetPropertyChange;
318
+ /** Gets or sets the pixel size of one layout unit (used to convert `marginTop`/`marginBottom`/`rowGap`/`columnGap` into pixels). */
247
319
  unit: number;
320
+ /** Gets or sets the grid's top margin, in `unit`s. */
248
321
  marginTop: number;
322
+ /** Gets or sets the grid's bottom margin, in `unit`s. */
249
323
  marginBottom: number;
324
+ /** Gets or sets the number of grid columns. */
250
325
  columns: number;
326
+ /** Gets or sets the number of grid rows; automatically grown when a child widget needs a new row. */
251
327
  rows: number;
328
+ /** Gets or sets the minimum row height (a CSS length, or a number of pixels). */
252
329
  minRowheight: number | 'string';
330
+ /** Gets or sets the row height (a CSS length, or a number of pixels). */
253
331
  rowheight: number | 'string';
332
+ /** Gets or sets the gap between rows, in `unit`s. */
254
333
  rowGap: number;
334
+ /** Gets or sets the gap between columns, in `unit`s. */
255
335
  columnGap: number;
256
336
  private _dragDrop;
257
337
  private _rescaler;
@@ -270,6 +350,10 @@ declare class PacemGridWidgetElement extends PacemCompositeWidgetElement {
270
350
  private _setGridLines;
271
351
  }
272
352
 
353
+ /**
354
+ * Base class for widgets that occupy a cell of a CSS grid-based layout (`column`/`row`/`colspan`/`rowspan`),
355
+ * self-registering into the nearest ancestor {@link PacemCompositeWidgetElement} container (see `findContainer`).
356
+ */
273
357
  declare abstract class PacemUiWidgetElement extends PacemWidgetElement {
274
358
  constructor(metadata: Scaffolding.TypeMetadata, colspan?: number, role?: string);
275
359
  connectedCallback(): void;
@@ -281,41 +365,65 @@ declare abstract class PacemUiWidgetElement extends PacemWidgetElement {
281
365
  viewActivatedCallback(): void;
282
366
  disconnectedCallback(): void;
283
367
  /** Default configuration (grid) */
368
+ /** Gets or sets the widget's 0-based starting column in the layout grid. */
284
369
  column: number;
370
+ /** Gets or sets the widget's 0-based starting row in the layout grid. */
285
371
  row: number;
372
+ /** Gets or sets how many columns the widget spans. */
286
373
  colspan: number;
374
+ /** Gets or sets how many rows the widget spans. */
287
375
  rowspan: number;
376
+ /** Gets or sets whether the widget's cell is rendered with borders. */
288
377
  borders: boolean;
378
+ /** Gets or sets whether the widget's cell is rendered with rounded corners. */
289
379
  corners: boolean;
290
380
  }
291
381
 
382
+ /** Non-visual helper widget that parses an OpenApi document at `url` (via {@link SwaggerCmsParser}) into a `manifest`, typically referenced by a {@link PacemWidgetFetchElement}. */
292
383
  declare class PacemWidgetApiManifestElement extends PacemBearerWidgetElement {
293
384
  private _openapi;
294
385
  private _cache;
295
386
  constructor(_openapi?: SwaggerCmsParser, _cache?: Storage_2);
387
+ /** Gets or sets the url of the OpenApi (swagger) json configuration to parse. */
296
388
  url: string;
389
+ /** Gets or sets whether the parsed manifest is cached per-url. */
297
390
  usecache: boolean;
391
+ /** @readonly Gets the manifest parsed from `url`. */
298
392
  manifest: Scaffolding.OpenApi.ApiManifest;
299
393
  propertyChangedCallback(name: string, old: any, val: any, first?: boolean): void;
300
394
  viewActivatedCallback(): void;
301
395
  private _scaffold;
302
396
  }
303
397
 
398
+ /** Non-visual helper widget exposing the current timestamp (`time`), refreshed every `interval` milliseconds by an internal `${P}-timer`. */
304
399
  declare class PacemWidgetClockElement extends PacemWidgetElement {
305
400
  constructor();
401
+ /** Gets or sets the tick interval, in milliseconds, at which `time` is refreshed. */
306
402
  interval: number;
403
+ /** @readonly Gets the current timestamp (`Date.now()` at the last tick). */
307
404
  time: number;
308
405
  }
309
406
 
407
+ /** Non-visual helper widget exposing an arbitrary `model` object, typically referenced as a data source by other widgets/expressions. */
310
408
  declare class PacemWidgetDataElement extends PacemWidgetElement {
311
409
  constructor();
410
+ /** Gets or sets the arbitrary data object exposed by this widget. */
312
411
  model: any;
313
412
  }
314
413
 
414
+ /**
415
+ * UI widget rendering `datasource` as a CSS-grid-based data table: one `${P}-repeater`-driven row per item,
416
+ * one head/data cell pair per `columns` entry, with `datarowMetadata` auto-extracted from the first bound
417
+ * item (see `_extractMetadataJustInCase`) whenever it isn't supplied. Its markup is entirely (re)generated
418
+ * as plain `innerHTML` (see `datagridInnerHTML`) whenever `columns` changes.
419
+ */
315
420
  declare class PacemWidgetDataGridElement extends PacemUiWidgetElement {
316
421
  constructor();
422
+ /** Gets or sets the rendered columns (header + per-row content expression); reassigning rebuilds the widget's markup. */
317
423
  columns: DataColumn[];
424
+ /** Gets or sets the rows rendered by the grid. */
318
425
  datasource: any[];
426
+ /** Gets or sets the field metadata describing a `datasource` row; auto-extracted from the first bound item when left unset. */
319
427
  datarowMetadata: Partial<Scaffolding.PropertyMetadata>[];
320
428
  _datatable: HTMLElement;
321
429
  _template: HTMLTemplateElement;
@@ -328,6 +436,12 @@ declare class PacemWidgetDataGridElement extends PacemUiWidgetElement {
328
436
  private _extractMetadataJustInCase;
329
437
  }
330
438
 
439
+ /**
440
+ * Base class for CMS widgets: assigns each instance a stable `id`, exposes an `editing`/`editable` toggle
441
+ * backed by a hover-triggered {@link PacemWidgetToolbarElement} balloon (edit/permissions/remove actions),
442
+ * and carries the `metadata`/`permissionMetadata`/`permissions` used to scaffold its editing forms. See
443
+ * {@link PacemUiWidgetElement} and {@link PacemBearerWidgetElement} for further specialized bases.
444
+ */
331
445
  declare abstract class PacemWidgetElement extends Components_3.PacemElement implements Widget {
332
446
  constructor(metadata: Scaffolding.TypeMetadata, role?: string);
333
447
  connectedCallback(): void;
@@ -340,24 +454,44 @@ declare abstract class PacemWidgetElement extends Components_3.PacemElement impl
340
454
  private _disposeBalloon;
341
455
  /** Gets or sets whether the widget is currently in editing mode. */
342
456
  editing: boolean;
457
+ /** Gets or sets whether the widget might be edited at all; disabling it also tears down its toolbar balloon. */
343
458
  editable: boolean;
459
+ /** Gets or sets the widget's display tag/name, shown by its toolbar. */
344
460
  tag: string;
461
+ /** Gets or sets the widget's {@link Permission} rules. */
345
462
  permissions: Permission[];
463
+ /** Gets or sets the scaffolding metadata describing the widget's own editable properties. */
346
464
  metadata: Scaffolding.TypeMetadata;
465
+ /** Gets or sets the scaffolding metadata describing the widget's permission-editing form. */
347
466
  permissionMetadata: Scaffolding.TypeMetadata;
348
467
  }
349
468
 
469
+ /**
470
+ * Non-visual helper widget that fetches data from a REST endpoint chosen from a {@link PacemWidgetApiManifestElement}
471
+ * `manifest`, using its nested {@link PacemWidgetFetchParameterElement} children (see `_parameters`) as request
472
+ * parameters; the response is exposed as `result`.
473
+ */
350
474
  declare class PacemWidgetFetchElement extends PacemBearerWidgetElement {
351
475
  constructor();
476
+ /** Gets or sets the OpenApi manifest describing the endpoints available to `endpoint`. */
352
477
  manifest: Scaffolding.OpenApi.ApiManifest;
478
+ /** Gets or sets the endpoint, picked from `manifest`, to fetch from; setting it re-derives `url`/`method`/`fields` and syncs the child parameter elements. */
353
479
  endpoint: Scaffolding.OpenApi.ApiEndpoint;
480
+ /** Gets or sets the fetch url, derived from `manifest.baseUrl` and `endpoint.path`. */
354
481
  url: string;
482
+ /** Gets or sets the HTTP method, derived from `endpoint.method`. */
355
483
  method: Net.HttpMethod;
484
+ /** Gets or sets the response's field metadata, derived from `endpoint.response.fields`. */
356
485
  fields: Scaffolding.TypeMetadata | Scaffolding.PropertyMetadata[];
486
+ /** Gets or sets the parameter values (editing-time convenience mirror of the nested {@link PacemWidgetFetchParameterElement} children). */
357
487
  parameters: any[];
488
+ /** @readonly Gets the last fetched result. */
358
489
  result: any[];
490
+ /** @readonly Gets whether a fetch request is currently in flight. */
359
491
  fetching: boolean;
492
+ /** @readonly Gets whether the last fetch request completed successfully. */
360
493
  success: boolean;
494
+ /** @readonly Gets whether the last fetch request failed. */
361
495
  failure: boolean;
362
496
  private _fetcher;
363
497
  private _itemsElement;
@@ -365,16 +499,21 @@ declare class PacemWidgetFetchElement extends PacemBearerWidgetElement {
365
499
  private _onsuccess;
366
500
  private _onresult;
367
501
  get _parameters(): PacemWidgetFetchParameterElement[];
502
+ /** Triggers the request against `endpoint`/`url`, provided all of the endpoint's required parameters are attached and populated; otherwise does nothing. */
368
503
  fetch(): Promise<Response>;
369
504
  viewActivatedCallback(): void;
370
505
  propertyChangedCallback(name: string, old: any, val: any, first?: boolean): void;
371
506
  private _mergeEndpoint;
372
507
  }
373
508
 
509
+ /** A single, named fetch parameter nested under a {@link PacemWidgetFetchElement}; setting `value` re-triggers the owning fetcher's `fetch()`. */
374
510
  declare class PacemWidgetFetchParameterElement extends PacemEventTarget {
375
511
  private _fetcher;
512
+ /** Gets or sets whether the owning endpoint requires this parameter. */
376
513
  required: boolean;
514
+ /** Gets or sets the parameter's name, matched against the endpoint's declared parameters. */
377
515
  name: string;
516
+ /** Gets or sets the parameter's value. */
378
517
  value: any;
379
518
  propertyChangedCallback(name: string, old: any, val: any, first?: boolean): void;
380
519
  viewActivatedCallback(): void;
@@ -388,12 +527,16 @@ declare class PacemWidgetPickerElement extends PacemCompositeWidgetElement {
388
527
  private _dragDrop;
389
528
  }
390
529
 
530
+ /** UI widget rendering a plain (optionally expression-bound) piece of text via an inner `${P}-text`. */
391
531
  declare class PacemWidgetTextElement extends PacemUiWidgetElement {
392
532
  constructor();
533
+ /** Gets or sets the text displayed by the widget. */
393
534
  text: string;
394
535
  }
395
536
 
537
+ /** Floating toolbar (edit/permissions/remove buttons), shown by a {@link PacemWidgetElement}'s balloon while `editing`, that opens the widget's core/permissions edit forms. */
396
538
  declare class PacemWidgetToolbarElement extends Components_3.PacemElement {
539
+ /** Gets or sets the widget this toolbar acts upon. */
397
540
  target: PacemWidgetElement;
398
541
  private _toolbar;
399
542
  private _btnEdit;
@@ -411,22 +554,32 @@ declare class PacemWidgetToolbarElement extends Components_3.PacemElement {
411
554
  private _popoutJustInCase;
412
555
  }
413
556
 
557
+ /** Non-visual helper widget, reserved for translation-related composition (no widget-specific behavior beyond {@link PacemWidgetElement}). */
414
558
  declare class PacemWidgetTranslatorElement extends PacemWidgetElement {
415
559
  }
416
560
 
561
+ /** A resource carrying a list of {@link Permission} rules, checkable via the {@link Permissible} static helpers. */
417
562
  declare interface Permissible {
418
563
  permissions: Permission[];
419
564
  }
420
565
 
566
+ /** Static, claim-based authorization checks (edit/read/add/delete/translate) against a {@link Permissible} resource's {@link Permission} list. */
421
567
  declare class Permissible {
568
+ /** Gets whether `claims` grants edit (update) permission on `resource`. */
422
569
  static canEdit(claims: Claims, resource: Permissible): boolean;
570
+ /** Gets whether `claims` grants read permission on `resource`. */
423
571
  static canRead(claims: Claims, resource: Permissible): boolean;
572
+ /** Gets whether `claims` grants add (create) permission on `resource`. */
424
573
  static canAdd(claims: Claims, resource: Permissible): boolean;
574
+ /** Gets whether `claims` grants delete permission on `resource`. */
425
575
  static canDelete(claims: Claims, resource: Permissible): boolean;
576
+ /** Gets whether `claims` grants translate permission on `resource`. */
426
577
  static canTranslate(claims: Claims, resource: Permissible): boolean;
578
+ /** Returns whether `claims` satisfies `predicate` for at least one of `resource.permissions`; when `resource.permissions` is empty, access is unrestricted (returns `true`). */
427
579
  private static _canDoSomethingToResource;
428
580
  }
429
581
 
582
+ /** A single claim-based authorization rule attached to a {@link Permissible} resource: users holding claim `claimType`/`claimValue` are granted the flagged operations. */
430
583
  declare interface Permission {
431
584
  claimType: string;
432
585
  claimValue: string;
@@ -437,6 +590,7 @@ declare interface Permission {
437
590
  delete: boolean;
438
591
  }
439
592
 
593
+ /** Dispatched to request permission-editing UI for the given {@link Permissible} resource. */
440
594
  declare class PermissionEditEvent extends CustomEvent<Permissible> {
441
595
  constructor(permissible: Permissible);
442
596
  }
@@ -449,15 +603,29 @@ declare interface StorageCache {
449
603
  removeProperty: (name: string) => void;
450
604
  }
451
605
 
606
+ /**
607
+ * Loads an OpenApi manifest (via the underlying {@link Scaffolding.OpenApi.OpenApiParser}) and eagerly
608
+ * enriches every endpoint's request/response schemas into scaffolding-ready {@link Scaffolding.OpenApi.DataField}
609
+ * metadata (fetched from each schema's absolute-url definition key, recursively for nested `$ref`s), optionally
610
+ * caching the per-url metadata fetches through `cache`.
611
+ */
452
612
  declare class SwaggerCmsParser {
453
613
  private _openApi;
454
614
  constructor(_openApi?: Scaffolding.OpenApi.OpenApiParser);
615
+ /** Gets or sets the storage used to cache per-url metadata fetches; when unset, metadata is re-fetched on every `load`. */
455
616
  cache: StorageCache;
617
+ /**
618
+ * Loads the OpenApi manifest at `url` and enriches every endpoint's request/response schemas with their
619
+ * fetched field metadata (see `_enrichSchemas`).
620
+ * @param url The OpenApi (swagger) json configuration's url.
621
+ * @param headers Optional HTTP headers for both the manifest and the per-schema metadata fetches.
622
+ */
456
623
  load(url: string, headers?: {
457
624
  [name: string]: string;
458
625
  }): Promise<Scaffolding.OpenApi.ApiManifest>;
459
626
  private _enrichSchemas;
460
627
  private _cachedMetadataUrls;
628
+ /** Removes from `cache` every metadata entry fetched by this parser so far. */
461
629
  clearCache(): void;
462
630
  /**
463
631
  *
@@ -467,17 +635,23 @@ declare class SwaggerCmsParser {
467
635
  private _fetchMetadata;
468
636
  }
469
637
 
638
+ /** Contract for a CMS widget: its scaffolding metadata, editing state, permissions and identity. Implemented by {@link PacemWidgetElement}. */
470
639
  declare interface Widget extends Permissible {
640
+ /** Gets or sets the scaffolding metadata describing the widget's own editable properties. */
471
641
  metadata: Scaffolding.TypeMetadata;
642
+ /** Gets or sets the scaffolding metadata describing the widget's permission-editing form. */
472
643
  permissionMetadata: Scaffolding.TypeMetadata;
473
644
  /** Gets or sets whether the widget is currently in editing mode. */
474
645
  editing: boolean;
475
646
  /** Gets or sets whether thet widget might be edited or not. */
476
647
  editable: boolean;
648
+ /** Gets or sets the widget's display tag/name, shown by its toolbar. */
477
649
  tag: string;
650
+ /** @readonly Gets the widget's DOM id. */
478
651
  readonly id: string;
479
652
  }
480
653
 
654
+ /** Static lookup helper for {@link PacemWidgetElement} instances in the current document. */
481
655
  declare class Widget {
482
656
  /**
483
657
  * Utility method for widget gathering.
@@ -486,12 +660,14 @@ declare class Widget {
486
660
  static findAll(predicate?: (w: PacemWidgetElement) => boolean): PacemWidgetElement[];
487
661
  }
488
662
 
663
+ /** Dispatched by a {@link PacemCompositeWidgetElement} right after a child widget is successfully registered into it. */
489
664
  declare class WidgetRegisterEvent extends CustomEvent<PacemWidgetElement> {
490
665
  constructor(item: PacemWidgetElement, eventInit?: EventInit);
491
666
  }
492
667
 
493
668
  declare const WidgetRegisterEventName = "widgetregister";
494
669
 
670
+ /** Dispatched by a {@link PacemCompositeWidgetElement} right after a child widget is unregistered from it. */
495
671
  declare class WidgetUnregisterEvent extends CustomEvent<PacemWidgetElement> {
496
672
  constructor(item: PacemWidgetElement, eventInit?: EventInit);
497
673
  }