@itwin/appui-abstract 5.10.0-dev.1 → 5.10.0-dev.3

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 +1 @@
1
- {"version":3,"file":"UiLayoutDataProvider.d.ts","sourceRoot":"","sources":["../../../../src/appui-abstract/dialogs/UiLayoutDataProvider.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtG,OAAO,EAAE,oBAAoB,EAAwB,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE9F;;GAEG;AACH,oBAAY,gBAAgB;IAC1B,IAAI,KAAK;IACT,KAAK,UAAU;IACf,EAAE,OAAO;IACT,MAAM,WAAW;IACjB,GAAG,QAAQ;IACX,EAAE,OAAO;IACT,KAAK,UAAU;IACf,IAAI,SAAS;IACb,QAAQ,aAAa;CACtB;AAED;;GAEG;AACH,oBAAY,iBAAiB;IAC3B,IAAI,KAAK;IACT,OAAO,YAAY;IACnB,MAAM,gBAAgB;IACtB,IAAI,wBAAwB;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,qBAAqB;IACrB,IAAI,EAAE,gBAAgB,CAAC;IACvB,gCAAgC;IAChC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,kDAAkD;IAClD,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,yBAAyB;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mBAAmB;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB;AAED;;GAEG;AACH,8BAAsB,oBAAqB,SAAQ,cAAc;IAC/D,OAAO,CAAC,MAAM,CAAwC;IAEtD,kIAAkI;IAClH,kBAAkB,CAAC,UAAU,EAAE,kBAAkB,EAAE,GAAG,oBAAoB;IAM1F,6HAA6H;IAEtH,qBAAqB,kBAAmB,sBAAsB,KAAG,IAAI,CAE1E;IAEF,OAAO,CAAC,KAAK,CAA0B;IAEvC,2BAA2B;IAC3B,IAAW,IAAI,IAAI,SAAS,EAAE,CAK7B;IAED,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,aAAa,CAAC,UAAU,CAAC,GAAG,SAAS;IAKxE,uIAAuI;IAEhI,iBAAiB,IAAI,UAAU,EAAE,GAAG,SAAS;IAIpD,IAAW,KAAK,IAAI,aAAa,CAAC,UAAU,CAAC,CAK5C;IAED,kFAAkF;IAC3E,iBAAiB,CAAC,SAAS,UAAO;IAOzC;;OAEG;IACI,gBAAgB,IAAI,SAAS,EAAE;IAmBtC,uDAAuD;WACzC,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO;IAUzD,mEAAmE;WACrD,yBAAyB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO;IAIlE,sDAAsD;WACxC,oBAAoB,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO;IAa3E,qDAAqD;IACrD,OAAc,iBAAiB,eAAgB,cAAc,KAAG,cAAc,CAK5E;IAEF,oEAAoE;WACtD,6BAA6B,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO;CAQrE;AAED;;;GAGG;AACH,8BAAsB,wBAAyB,SAAQ,oBAAoB;IAClE,sBAAsB,kBAAyB;IAEtD,sFAAsF;IAC/E,4BAA4B;IAI5B,gBAAgB,IAAI,eAAe,EAAE,GAAG,SAAS;CASzD"}
1
+ {"version":3,"file":"UiLayoutDataProvider.d.ts","sourceRoot":"","sources":["../../../../src/appui-abstract/dialogs/UiLayoutDataProvider.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtG,OAAO,EAAE,oBAAoB,EAAwB,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE9F;;GAEG;AACH,oBAAY,gBAAgB;IAC1B,IAAI,KAAK;IACT,KAAK,UAAU;IACf,EAAE,OAAO;IACT,MAAM,WAAW;IACjB,GAAG,QAAQ;IACX,EAAE,OAAO;IACT,KAAK,UAAU;IACf,IAAI,SAAS;IACb,QAAQ,aAAa;CACtB;AAED;;GAEG;AACH,oBAAY,iBAAiB;IAC3B,IAAI,KAAK;IACT,OAAO,YAAY;IACnB,MAAM,gBAAgB;IACtB,IAAI,wBAAwB;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,qBAAqB;IACrB,IAAI,EAAE,gBAAgB,CAAC;IACvB,gCAAgC;IAChC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,kDAAkD;IAClD,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,yBAAyB;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mBAAmB;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB;AAED;;GAEG;AACH,8BAAsB,oBAAqB,SAAQ,cAAc;IAC/D,OAAO,CAAC,MAAM,CAAwC;IAEtD,kIAAkI;IAClH,kBAAkB,CAAC,UAAU,EAAE,kBAAkB,EAAE,GAAG,oBAAoB;IAM1F,6HAA6H;IAEtH,qBAAqB,kBAAmB,sBAAsB,KAAG,IAAI,CAE1E;IAEF,OAAO,CAAC,KAAK,CAA0B;IAEvC,2BAA2B;IAC3B,IAAW,IAAI,IAAI,SAAS,EAAE,CAK7B;IAED,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,aAAa,CAAC,UAAU,CAAC,GAAG,SAAS;IAKxE,uIAAuI;IAEhI,iBAAiB,IAAI,UAAU,EAAE,GAAG,SAAS;IAIpD,IAAW,KAAK,IAAI,aAAa,CAAC,UAAU,CAAC,CAS5C;IAED,kFAAkF;IAC3E,iBAAiB,CAAC,SAAS,UAAO;IAOzC;;OAEG;IACI,gBAAgB,IAAI,SAAS,EAAE;IAmBtC,uDAAuD;WACzC,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO;IAUzD,mEAAmE;WACrD,yBAAyB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO;IAIlE,sDAAsD;WACxC,oBAAoB,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO;IAa3E,qDAAqD;IACrD,OAAc,iBAAiB,eAAgB,cAAc,KAAG,cAAc,CAK5E;IAEF,oEAAoE;WACtD,6BAA6B,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO;CAQrE;AAED;;;GAGG;AACH,8BAAsB,wBAAyB,SAAQ,oBAAoB;IAClE,sBAAsB,kBAAyB;IAEtD,sFAAsF;IAC/E,4BAA4B;IAI5B,gBAAgB,IAAI,eAAe,EAAE,GAAG,SAAS;CASzD"}
@@ -63,7 +63,7 @@ class UiLayoutDataProvider extends UiDataProvider_1.UiDataProvider {
63
63
  return this._rows;
64
64
  }
65
65
  loadItemsInternal(items) {
66
- this._items = items ? items : [];
66
+ this._items = items ?? [];
67
67
  this._rows = this.layoutDialogRows();
68
68
  }
69
69
  /** Called by UI to request available properties that can be bound to user supplied UI components (See Tool1UiProvider for example). */
@@ -72,10 +72,13 @@ class UiLayoutDataProvider extends UiDataProvider_1.UiDataProvider {
72
72
  throw (new Error("Derived UiDataProvider must implement this method to supply set of properties."));
73
73
  }
74
74
  get items() {
75
- if (undefined === this._items) {
76
- this.loadItemsInternal(this.supplyDialogItems());
77
- }
78
- return this._items;
75
+ const items = this._items;
76
+ if (undefined !== items)
77
+ return items;
78
+ this.loadItemsInternal(this.supplyDialogItems());
79
+ // If _items is undefined, the hook above failed to initialize it
80
+ // Deemed more honest to use the non-null assertion than explicit cast
81
+ return this._items; // eslint-disable-line @typescript-eslint/no-non-null-assertion
79
82
  }
80
83
  /** Called to inform listeners that new properties are ready for display in UI. */
81
84
  reloadDialogItems(emitEvent = true) {
@@ -1 +1 @@
1
- {"version":3,"file":"UiLayoutDataProvider.js","sourceRoot":"","sources":["../../../../src/appui-abstract/dialogs/UiLayoutDataProvider.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Dialog\r\n */\r\n\r\nimport { BeUiEvent } from \"@itwin/core-bentley\";\r\nimport { PropertyEditorParams, PropertyEditorParamTypes, SuppressLabelEditorParams } from \"../properties/EditorParams\";\r\nimport { PropertyRecord } from \"../properties/Record\";\r\nimport { PrimitiveValue, PropertyValueFormat } from \"../properties/Value\";\r\nimport { BaseDialogItem, DialogItem, DialogPropertyItem, DialogPropertySyncItem } from \"./DialogItem\";\r\nimport { PropertyChangeResult, PropertyChangeStatus, UiDataProvider } from \"./UiDataProvider\";\r\n\r\n/** Enum for button types. Determines button label, and default button style.\r\n * @public\r\n */\r\nexport enum DialogButtonType {\r\n None = \"\",\r\n Close = \"close\",\r\n OK = \"ok\",\r\n Cancel = \"cancel\",\r\n Yes = \"yes\",\r\n No = \"no\",\r\n Retry = \"retry\",\r\n Next = \"next\",\r\n Previous = \"previous\"\r\n}\r\n\r\n/** Enum for button style.\r\n * @public\r\n */\r\nexport enum DialogButtonStyle {\r\n None = \"\",\r\n Primary = \"iui-cta\",\r\n Hollow = \"iui-default\",\r\n Blue = \"iui-high-visibility\",\r\n}\r\n\r\n/** Interface for a dialog button in a button cluster\r\n * @public\r\n */\r\nexport interface DialogButtonDef {\r\n /** type of button */\r\n type: DialogButtonType;\r\n /** Triggered on button click */\r\n onClick: () => void;\r\n /** Which button style to decorate button width */\r\n buttonStyle?: DialogButtonStyle;\r\n /** Disable the button */\r\n disabled?: boolean;\r\n /** Custom label */\r\n label?: string;\r\n /** Custom CSS class */\r\n className?: string;\r\n}\r\n\r\n/** [[DialogRow]] is the interface that groups dialog items into rows for building UI\r\n * @public\r\n */\r\nexport interface DialogRow {\r\n priority: number;\r\n items: DialogItem[];\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport abstract class UiLayoutDataProvider extends UiDataProvider {\r\n private _items: ReadonlyArray<DialogItem> | undefined;\r\n\r\n /** Applies changes from one or more properties - some dialogs will use this to send a bulk set of changes back to the provider */\r\n public override processChangesInUi(properties: DialogPropertyItem[]): PropertyChangeResult {\r\n // Default implementation is to just pass each property to applyUiPropertyChange\r\n properties.forEach((property) => this.applyUiPropertyChange(property));\r\n return { status: PropertyChangeStatus.Success };\r\n }\r\n\r\n /** Applies change of a single property - this is the default method used when property editors are dynamically generated. */\r\n // istanbul ignore next\r\n public applyUiPropertyChange = (_updatedValue: DialogPropertySyncItem): void => {\r\n throw (new Error(\"Derived UiDataProvider should implement this to apply change to a single property.\"));\r\n };\r\n\r\n private _rows: DialogRow[] | undefined;\r\n\r\n /** Array of dialog rows */\r\n public get rows(): DialogRow[] {\r\n if (!this._rows) {\r\n this._rows = this.layoutDialogRows();\r\n }\r\n return this._rows;\r\n }\r\n\r\n protected loadItemsInternal(items: ReadonlyArray<DialogItem> | undefined) {\r\n this._items = items ? items : [];\r\n this._rows = this.layoutDialogRows();\r\n }\r\n\r\n /** Called by UI to request available properties that can be bound to user supplied UI components (See Tool1UiProvider for example). */\r\n // istanbul ignore next\r\n public supplyDialogItems(): DialogItem[] | undefined {\r\n throw (new Error(\"Derived UiDataProvider must implement this method to supply set of properties.\"));\r\n }\r\n\r\n public get items(): ReadonlyArray<DialogItem> {\r\n if (undefined === this._items) {\r\n this.loadItemsInternal(this.supplyDialogItems());\r\n }\r\n return this._items!;\r\n }\r\n\r\n /** Called to inform listeners that new properties are ready for display in UI. */\r\n public reloadDialogItems(emitEvent = true) {\r\n this.loadItemsInternal(this.supplyDialogItems());\r\n // istanbul ignore else\r\n if (emitEvent)\r\n this.fireItemsReloadedEvent();\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public layoutDialogRows(): DialogRow[] {\r\n const rows: DialogRow[] = [];\r\n\r\n this.items.forEach((item) => {\r\n const row = rows.find((value) => value.priority === item.editorPosition.rowPriority);\r\n if (row) {\r\n row.items.push(item);\r\n } else {\r\n rows.push({ priority: item.editorPosition.rowPriority, items: [item] });\r\n }\r\n });\r\n\r\n // sort rows\r\n rows.sort((a: DialogRow, b: DialogRow) => a.priority - b.priority);\r\n // sort records\r\n rows.forEach((row: DialogRow) => row.items.sort((a: DialogItem, b: DialogItem) => a.editorPosition.columnIndex - b.editorPosition.columnIndex));\r\n return rows;\r\n }\r\n\r\n /** Determines if a dialog item editor wants a label */\r\n public static editorWantsLabel(item: DialogItem): boolean {\r\n if (item.property.editor && item.property.editor.params) {\r\n const params = item.property.editor.params.find((param: PropertyEditorParams) => param.type === PropertyEditorParamTypes.SuppressEditorLabel) as SuppressLabelEditorParams;\r\n // istanbul ignore else\r\n if (params)\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n /** Determines if a dialog items has an associated lock property */\r\n public static hasAssociatedLockProperty(item: DialogItem): boolean {\r\n return !!item.lockProperty;\r\n }\r\n\r\n /** Gets the disabled state for a given dialog item */\r\n public static getItemDisabledState(baseDialogItem: BaseDialogItem): boolean {\r\n const dialogItem = baseDialogItem as DialogItem;\r\n // istanbul ignore else\r\n if (dialogItem === undefined || dialogItem.lockProperty === undefined)\r\n return !!baseDialogItem.isDisabled;\r\n const value = dialogItem.lockProperty.value;\r\n // istanbul ignore next\r\n if (value === undefined)\r\n return !!baseDialogItem.isDisabled;\r\n\r\n return !value.value;\r\n }\r\n\r\n /** Gets a property record for a given dialog item */\r\n public static getPropertyRecord = (dialogItem: BaseDialogItem): PropertyRecord => {\r\n const propertyValue = { valueFormat: PropertyValueFormat.Primitive, value: dialogItem.value.value, displayValue: dialogItem.value.displayValue };\r\n const record = new PropertyRecord(propertyValue as PrimitiveValue, dialogItem.property);\r\n record.isDisabled = UiLayoutDataProvider.getItemDisabledState(dialogItem);\r\n return record;\r\n };\r\n\r\n /** Determines if a dialog row only contains button group editors */\r\n public static onlyContainButtonGroupEditors(row: DialogRow): boolean {\r\n for (const item of row.items) {\r\n // istanbul ignore else\r\n if (UiLayoutDataProvider.hasAssociatedLockProperty(item) || undefined === item.property.editor || \"enum-buttongroup\" !== item.property.editor.name || UiLayoutDataProvider.editorWantsLabel(item))\r\n return false;\r\n }\r\n return true;\r\n }\r\n}\r\n\r\n/** [[DialogLayoutDataProvider]] Abstract class that allows property values to be passed between hosting API and Dialog that generates and arranges components dynamically\r\n * including the buttons at the bottom of the dialog.\r\n * @public\r\n */\r\nexport abstract class DialogLayoutDataProvider extends UiLayoutDataProvider {\r\n public onButtonsReloadedEvent = new BeUiEvent<void>();\r\n\r\n /** Called to inform listeners that modal dialog button data needs to be refreshed. */\r\n public fireDialogButtonsReloadEvent() {\r\n this.onButtonsReloadedEvent.emit();\r\n }\r\n\r\n public supplyButtonData(): DialogButtonDef[] | undefined {\r\n // Derived class should override\r\n const buttons: DialogButtonDef[] = [];\r\n // istanbul ignore next\r\n buttons.push({ type: DialogButtonType.OK, onClick: () => { } });\r\n // istanbul ignore next\r\n buttons.push({ type: DialogButtonType.Cancel, onClick: () => { } });\r\n return buttons;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"UiLayoutDataProvider.js","sourceRoot":"","sources":["../../../../src/appui-abstract/dialogs/UiLayoutDataProvider.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Dialog\r\n */\r\n\r\nimport { BeUiEvent } from \"@itwin/core-bentley\";\r\nimport { PropertyEditorParams, PropertyEditorParamTypes, SuppressLabelEditorParams } from \"../properties/EditorParams\";\r\nimport { PropertyRecord } from \"../properties/Record\";\r\nimport { PrimitiveValue, PropertyValueFormat } from \"../properties/Value\";\r\nimport { BaseDialogItem, DialogItem, DialogPropertyItem, DialogPropertySyncItem } from \"./DialogItem\";\r\nimport { PropertyChangeResult, PropertyChangeStatus, UiDataProvider } from \"./UiDataProvider\";\r\n\r\n/** Enum for button types. Determines button label, and default button style.\r\n * @public\r\n */\r\nexport enum DialogButtonType {\r\n None = \"\",\r\n Close = \"close\",\r\n OK = \"ok\",\r\n Cancel = \"cancel\",\r\n Yes = \"yes\",\r\n No = \"no\",\r\n Retry = \"retry\",\r\n Next = \"next\",\r\n Previous = \"previous\"\r\n}\r\n\r\n/** Enum for button style.\r\n * @public\r\n */\r\nexport enum DialogButtonStyle {\r\n None = \"\",\r\n Primary = \"iui-cta\",\r\n Hollow = \"iui-default\",\r\n Blue = \"iui-high-visibility\",\r\n}\r\n\r\n/** Interface for a dialog button in a button cluster\r\n * @public\r\n */\r\nexport interface DialogButtonDef {\r\n /** type of button */\r\n type: DialogButtonType;\r\n /** Triggered on button click */\r\n onClick: () => void;\r\n /** Which button style to decorate button width */\r\n buttonStyle?: DialogButtonStyle;\r\n /** Disable the button */\r\n disabled?: boolean;\r\n /** Custom label */\r\n label?: string;\r\n /** Custom CSS class */\r\n className?: string;\r\n}\r\n\r\n/** [[DialogRow]] is the interface that groups dialog items into rows for building UI\r\n * @public\r\n */\r\nexport interface DialogRow {\r\n priority: number;\r\n items: DialogItem[];\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport abstract class UiLayoutDataProvider extends UiDataProvider {\r\n private _items: ReadonlyArray<DialogItem> | undefined;\r\n\r\n /** Applies changes from one or more properties - some dialogs will use this to send a bulk set of changes back to the provider */\r\n public override processChangesInUi(properties: DialogPropertyItem[]): PropertyChangeResult {\r\n // Default implementation is to just pass each property to applyUiPropertyChange\r\n properties.forEach((property) => this.applyUiPropertyChange(property));\r\n return { status: PropertyChangeStatus.Success };\r\n }\r\n\r\n /** Applies change of a single property - this is the default method used when property editors are dynamically generated. */\r\n // istanbul ignore next\r\n public applyUiPropertyChange = (_updatedValue: DialogPropertySyncItem): void => {\r\n throw (new Error(\"Derived UiDataProvider should implement this to apply change to a single property.\"));\r\n };\r\n\r\n private _rows: DialogRow[] | undefined;\r\n\r\n /** Array of dialog rows */\r\n public get rows(): DialogRow[] {\r\n if (!this._rows) {\r\n this._rows = this.layoutDialogRows();\r\n }\r\n return this._rows;\r\n }\r\n\r\n protected loadItemsInternal(items: ReadonlyArray<DialogItem> | undefined) {\r\n this._items = items ?? [];\r\n this._rows = this.layoutDialogRows();\r\n }\r\n\r\n /** Called by UI to request available properties that can be bound to user supplied UI components (See Tool1UiProvider for example). */\r\n // istanbul ignore next\r\n public supplyDialogItems(): DialogItem[] | undefined {\r\n throw (new Error(\"Derived UiDataProvider must implement this method to supply set of properties.\"));\r\n }\r\n\r\n public get items(): ReadonlyArray<DialogItem> {\r\n const items = this._items;\r\n if (undefined !== items)\r\n return items;\r\n\r\n this.loadItemsInternal(this.supplyDialogItems());\r\n // If _items is undefined, the hook above failed to initialize it\r\n // Deemed more honest to use the non-null assertion than explicit cast\r\n return this._items!; // eslint-disable-line @typescript-eslint/no-non-null-assertion\r\n }\r\n\r\n /** Called to inform listeners that new properties are ready for display in UI. */\r\n public reloadDialogItems(emitEvent = true) {\r\n this.loadItemsInternal(this.supplyDialogItems());\r\n // istanbul ignore else\r\n if (emitEvent)\r\n this.fireItemsReloadedEvent();\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public layoutDialogRows(): DialogRow[] {\r\n const rows: DialogRow[] = [];\r\n\r\n this.items.forEach((item) => {\r\n const row = rows.find((value) => value.priority === item.editorPosition.rowPriority);\r\n if (row) {\r\n row.items.push(item);\r\n } else {\r\n rows.push({ priority: item.editorPosition.rowPriority, items: [item] });\r\n }\r\n });\r\n\r\n // sort rows\r\n rows.sort((a: DialogRow, b: DialogRow) => a.priority - b.priority);\r\n // sort records\r\n rows.forEach((row: DialogRow) => row.items.sort((a: DialogItem, b: DialogItem) => a.editorPosition.columnIndex - b.editorPosition.columnIndex));\r\n return rows;\r\n }\r\n\r\n /** Determines if a dialog item editor wants a label */\r\n public static editorWantsLabel(item: DialogItem): boolean {\r\n if (item.property.editor && item.property.editor.params) {\r\n const params = item.property.editor.params.find((param: PropertyEditorParams) => param.type === PropertyEditorParamTypes.SuppressEditorLabel) as SuppressLabelEditorParams;\r\n // istanbul ignore else\r\n if (params)\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n /** Determines if a dialog items has an associated lock property */\r\n public static hasAssociatedLockProperty(item: DialogItem): boolean {\r\n return !!item.lockProperty;\r\n }\r\n\r\n /** Gets the disabled state for a given dialog item */\r\n public static getItemDisabledState(baseDialogItem: BaseDialogItem): boolean {\r\n const dialogItem = baseDialogItem as DialogItem;\r\n // istanbul ignore else\r\n if (dialogItem === undefined || dialogItem.lockProperty === undefined)\r\n return !!baseDialogItem.isDisabled;\r\n const value = dialogItem.lockProperty.value;\r\n // istanbul ignore next\r\n if (value === undefined)\r\n return !!baseDialogItem.isDisabled;\r\n\r\n return !value.value;\r\n }\r\n\r\n /** Gets a property record for a given dialog item */\r\n public static getPropertyRecord = (dialogItem: BaseDialogItem): PropertyRecord => {\r\n const propertyValue = { valueFormat: PropertyValueFormat.Primitive, value: dialogItem.value.value, displayValue: dialogItem.value.displayValue };\r\n const record = new PropertyRecord(propertyValue as PrimitiveValue, dialogItem.property);\r\n record.isDisabled = UiLayoutDataProvider.getItemDisabledState(dialogItem);\r\n return record;\r\n };\r\n\r\n /** Determines if a dialog row only contains button group editors */\r\n public static onlyContainButtonGroupEditors(row: DialogRow): boolean {\r\n for (const item of row.items) {\r\n // istanbul ignore else\r\n if (UiLayoutDataProvider.hasAssociatedLockProperty(item) || undefined === item.property.editor || \"enum-buttongroup\" !== item.property.editor.name || UiLayoutDataProvider.editorWantsLabel(item))\r\n return false;\r\n }\r\n return true;\r\n }\r\n}\r\n\r\n/** [[DialogLayoutDataProvider]] Abstract class that allows property values to be passed between hosting API and Dialog that generates and arranges components dynamically\r\n * including the buttons at the bottom of the dialog.\r\n * @public\r\n */\r\nexport abstract class DialogLayoutDataProvider extends UiLayoutDataProvider {\r\n public onButtonsReloadedEvent = new BeUiEvent<void>();\r\n\r\n /** Called to inform listeners that modal dialog button data needs to be refreshed. */\r\n public fireDialogButtonsReloadEvent() {\r\n this.onButtonsReloadedEvent.emit();\r\n }\r\n\r\n public supplyButtonData(): DialogButtonDef[] | undefined {\r\n // Derived class should override\r\n const buttons: DialogButtonDef[] = [];\r\n // istanbul ignore next\r\n buttons.push({ type: DialogButtonType.OK, onClick: () => { } });\r\n // istanbul ignore next\r\n buttons.push({ type: DialogButtonType.Cancel, onClick: () => { } });\r\n return buttons;\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"BaseQuantityDescription.d.ts","sourceRoot":"","sources":["../../../../src/appui-abstract/quantity/BaseQuantityDescription.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpF,OAAO,EAAiD,YAAY,EAA4B,MAAM,4BAA4B,CAAC;AAInI;;;GAGG;AACH,8BAAsB,uBAAwB,YAAW,mBAAmB;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;gBAGvB,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,kBAAkB,CAAC,EAAE,MAAM;IAyB9F,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAEpD,MAAM,gBAAiB,MAAM,KAAG,MAAM,CAE3C;IACF,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY;IAExD,KAAK,cAAe,MAAM,KAAG,YAAY,CAE9C;IAEF,aAAoB,UAAU,IAAI,MAAM,CAAC;CAE1C"}
1
+ {"version":3,"file":"BaseQuantityDescription.d.ts","sourceRoot":"","sources":["../../../../src/appui-abstract/quantity/BaseQuantityDescription.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpF,OAAO,EAAiD,YAAY,EAAkD,MAAM,4BAA4B,CAAC;AAIzJ;;;GAGG;AACH,8BAAsB,uBAAwB,YAAW,mBAAmB;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;gBAEvB,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,kBAAkB,CAAC,EAAE,MAAM;IA2B9F,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAEpD,MAAM,gBAAiB,MAAM,KAAG,MAAM,CAE3C;IACF,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY;IAExD,KAAK,cAAe,MAAM,KAAG,YAAY,CAE9C;IAEF,aAAoB,UAAU,IAAI,MAAM,CAAC;CAE1C"}
@@ -26,14 +26,14 @@ class BaseQuantityDescription {
26
26
  this.displayLabel = displayLabel;
27
27
  this.kindOfQuantityName = kindOfQuantityName;
28
28
  this.typename = StandardTypeNames_1.StandardTypeNames.Number;
29
+ const editorParams = [{
30
+ type: EditorParams_1.PropertyEditorParamTypes.CustomFormattedNumber,
31
+ formatFunction: this.format,
32
+ parseFunction: this.parse,
33
+ }];
29
34
  this.editor = {
30
35
  name: StandardEditorNames_1.StandardEditorNames.NumberCustom,
31
- params: [{
32
- type: EditorParams_1.PropertyEditorParamTypes.CustomFormattedNumber,
33
- formatFunction: this.format,
34
- parseFunction: this.parse,
35
- },
36
- ],
36
+ params: editorParams,
37
37
  };
38
38
  // istanbul ignore else
39
39
  if (iconSpec) {
@@ -41,7 +41,7 @@ class BaseQuantityDescription {
41
41
  type: EditorParams_1.PropertyEditorParamTypes.Icon,
42
42
  definition: { iconSpec },
43
43
  };
44
- this.editor.params.push(params);
44
+ editorParams.push(params);
45
45
  }
46
46
  }
47
47
  format = (numberValue) => {
@@ -1 +1 @@
1
- {"version":3,"file":"BaseQuantityDescription.js","sourceRoot":"","sources":["../../../../src/appui-abstract/quantity/BaseQuantityDescription.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAGH,6DAAmI;AACnI,uEAAoE;AACpE,2EAAwE;AAExE;;;GAGG;AACH,MAAsB,uBAAuB;IACpC,IAAI,CAAS;IACb,YAAY,CAAS;IACrB,QAAQ,CAAS;IACjB,MAAM,CAAqB;IAC3B,kBAAkB,CAAU;IAGnC,YAAY,IAAY,EAAE,YAAoB,EAAE,QAAiB,EAAE,kBAA2B;QAC5F,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,IAAI,CAAC,QAAQ,GAAG,qCAAiB,CAAC,MAAM,CAAC;QACzC,IAAI,CAAC,MAAM,GAAG;YACZ,IAAI,EAAE,yCAAmB,CAAC,YAAY;YACtC,MAAM,EAAE,CAAC;oBACP,IAAI,EAAE,uCAAwB,CAAC,qBAAqB;oBACpD,cAAc,EAAE,IAAI,CAAC,MAAM;oBAC3B,aAAa,EAAE,IAAI,CAAC,KAAK;iBACK;aAC/B;SACF,CAAC;QAEF,uBAAuB;QACvB,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,MAAM,GAAqB;gBAC/B,IAAI,EAAE,uCAAwB,CAAC,IAAI;gBACnC,UAAU,EAAE,EAAE,QAAQ,EAAE;aACzB,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,MAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAIM,MAAM,GAAG,CAAC,WAAmB,EAAU,EAAE;QAC9C,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IACvC,CAAC,CAAC;IAGK,KAAK,GAAG,CAAC,SAAiB,EAAgB,EAAE;QACjD,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACrC,CAAC,CAAC;CAIH;AA9CD,0DA8CC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Properties\r\n */\r\n\r\nimport { PropertyDescription, PropertyEditorInfo } from \"../properties/Description\";\r\nimport { CustomFormattedNumberParams, IconEditorParams, ParseResults, PropertyEditorParamTypes } from \"../properties/EditorParams\";\r\nimport { StandardTypeNames } from \"../properties/StandardTypeNames\";\r\nimport { StandardEditorNames } from \"../properties/StandardEditorNames\";\r\n\r\n/**\r\n * Base Quantity Property Description\r\n * @beta\r\n */\r\nexport abstract class BaseQuantityDescription implements PropertyDescription {\r\n public name: string;\r\n public displayLabel: string;\r\n public typename: string;\r\n public editor: PropertyEditorInfo;\r\n public kindOfQuantityName?: string;\r\n\r\n\r\n constructor(name: string, displayLabel: string, iconSpec?: string, kindOfQuantityName?: string) {\r\n this.name = name;\r\n this.displayLabel = displayLabel;\r\n this.kindOfQuantityName = kindOfQuantityName;\r\n this.typename = StandardTypeNames.Number;\r\n this.editor = {\r\n name: StandardEditorNames.NumberCustom,\r\n params: [{\r\n type: PropertyEditorParamTypes.CustomFormattedNumber,\r\n formatFunction: this.format,\r\n parseFunction: this.parse,\r\n } as CustomFormattedNumberParams,\r\n ],\r\n };\r\n\r\n // istanbul ignore else\r\n if (iconSpec) {\r\n const params: IconEditorParams = {\r\n type: PropertyEditorParamTypes.Icon,\r\n definition: { iconSpec },\r\n };\r\n this.editor.params!.push(params);\r\n }\r\n }\r\n\r\n protected abstract formatValue(numberValue: number): string;\r\n\r\n public format = (numberValue: number): string => {\r\n return this.formatValue(numberValue);\r\n };\r\n protected abstract parseString(userInput: string): ParseResults;\r\n\r\n public parse = (userInput: string): ParseResults => {\r\n return this.parseString(userInput);\r\n };\r\n\r\n public abstract get parseError(): string;\r\n\r\n}\r\n"]}
1
+ {"version":3,"file":"BaseQuantityDescription.js","sourceRoot":"","sources":["../../../../src/appui-abstract/quantity/BaseQuantityDescription.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAGH,6DAAyJ;AACzJ,uEAAoE;AACpE,2EAAwE;AAExE;;;GAGG;AACH,MAAsB,uBAAuB;IACpC,IAAI,CAAS;IACb,YAAY,CAAS;IACrB,QAAQ,CAAS;IACjB,MAAM,CAAqB;IAC3B,kBAAkB,CAAU;IAEnC,YAAY,IAAY,EAAE,YAAoB,EAAE,QAAiB,EAAE,kBAA2B;QAC5F,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,IAAI,CAAC,QAAQ,GAAG,qCAAiB,CAAC,MAAM,CAAC;QAEzC,MAAM,YAAY,GAA2B,CAAC;gBAC5C,IAAI,EAAE,uCAAwB,CAAC,qBAAqB;gBACpD,cAAc,EAAE,IAAI,CAAC,MAAM;gBAC3B,aAAa,EAAE,IAAI,CAAC,KAAK;aACK,CAAC,CAAC;QAElC,IAAI,CAAC,MAAM,GAAG;YACZ,IAAI,EAAE,yCAAmB,CAAC,YAAY;YACtC,MAAM,EAAE,YAAY;SACrB,CAAC;QAEF,uBAAuB;QACvB,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,MAAM,GAAqB;gBAC/B,IAAI,EAAE,uCAAwB,CAAC,IAAI;gBACnC,UAAU,EAAE,EAAE,QAAQ,EAAE;aACzB,CAAC;YACF,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAIM,MAAM,GAAG,CAAC,WAAmB,EAAU,EAAE;QAC9C,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IACvC,CAAC,CAAC;IAGK,KAAK,GAAG,CAAC,SAAiB,EAAgB,EAAE;QACjD,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACrC,CAAC,CAAC;CAIH;AA/CD,0DA+CC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Properties\r\n */\r\n\r\nimport { PropertyDescription, PropertyEditorInfo } from \"../properties/Description\";\r\nimport { CustomFormattedNumberParams, IconEditorParams, ParseResults, PropertyEditorParams, PropertyEditorParamTypes } from \"../properties/EditorParams\";\r\nimport { StandardTypeNames } from \"../properties/StandardTypeNames\";\r\nimport { StandardEditorNames } from \"../properties/StandardEditorNames\";\r\n\r\n/**\r\n * Base Quantity Property Description\r\n * @beta\r\n */\r\nexport abstract class BaseQuantityDescription implements PropertyDescription {\r\n public name: string;\r\n public displayLabel: string;\r\n public typename: string;\r\n public editor: PropertyEditorInfo;\r\n public kindOfQuantityName?: string;\r\n\r\n constructor(name: string, displayLabel: string, iconSpec?: string, kindOfQuantityName?: string) {\r\n this.name = name;\r\n this.displayLabel = displayLabel;\r\n this.kindOfQuantityName = kindOfQuantityName;\r\n this.typename = StandardTypeNames.Number;\r\n\r\n const editorParams: PropertyEditorParams[] = [{\r\n type: PropertyEditorParamTypes.CustomFormattedNumber,\r\n formatFunction: this.format,\r\n parseFunction: this.parse,\r\n } as CustomFormattedNumberParams];\r\n\r\n this.editor = {\r\n name: StandardEditorNames.NumberCustom,\r\n params: editorParams,\r\n };\r\n\r\n // istanbul ignore else\r\n if (iconSpec) {\r\n const params: IconEditorParams = {\r\n type: PropertyEditorParamTypes.Icon,\r\n definition: { iconSpec },\r\n };\r\n editorParams.push(params);\r\n }\r\n }\r\n\r\n protected abstract formatValue(numberValue: number): string;\r\n\r\n public format = (numberValue: number): string => {\r\n return this.formatValue(numberValue);\r\n };\r\n protected abstract parseString(userInput: string): ParseResults;\r\n\r\n public parse = (userInput: string): ParseResults => {\r\n return this.parseString(userInput);\r\n };\r\n\r\n public abstract get parseError(): string;\r\n\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"UiLayoutDataProvider.d.ts","sourceRoot":"","sources":["../../../../src/appui-abstract/dialogs/UiLayoutDataProvider.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtG,OAAO,EAAE,oBAAoB,EAAwB,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE9F;;GAEG;AACH,oBAAY,gBAAgB;IAC1B,IAAI,KAAK;IACT,KAAK,UAAU;IACf,EAAE,OAAO;IACT,MAAM,WAAW;IACjB,GAAG,QAAQ;IACX,EAAE,OAAO;IACT,KAAK,UAAU;IACf,IAAI,SAAS;IACb,QAAQ,aAAa;CACtB;AAED;;GAEG;AACH,oBAAY,iBAAiB;IAC3B,IAAI,KAAK;IACT,OAAO,YAAY;IACnB,MAAM,gBAAgB;IACtB,IAAI,wBAAwB;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,qBAAqB;IACrB,IAAI,EAAE,gBAAgB,CAAC;IACvB,gCAAgC;IAChC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,kDAAkD;IAClD,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,yBAAyB;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mBAAmB;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB;AAED;;GAEG;AACH,8BAAsB,oBAAqB,SAAQ,cAAc;IAC/D,OAAO,CAAC,MAAM,CAAwC;IAEtD,kIAAkI;IAClH,kBAAkB,CAAC,UAAU,EAAE,kBAAkB,EAAE,GAAG,oBAAoB;IAM1F,6HAA6H;IAEtH,qBAAqB,kBAAmB,sBAAsB,KAAG,IAAI,CAE1E;IAEF,OAAO,CAAC,KAAK,CAA0B;IAEvC,2BAA2B;IAC3B,IAAW,IAAI,IAAI,SAAS,EAAE,CAK7B;IAED,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,aAAa,CAAC,UAAU,CAAC,GAAG,SAAS;IAKxE,uIAAuI;IAEhI,iBAAiB,IAAI,UAAU,EAAE,GAAG,SAAS;IAIpD,IAAW,KAAK,IAAI,aAAa,CAAC,UAAU,CAAC,CAK5C;IAED,kFAAkF;IAC3E,iBAAiB,CAAC,SAAS,UAAO;IAOzC;;OAEG;IACI,gBAAgB,IAAI,SAAS,EAAE;IAmBtC,uDAAuD;WACzC,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO;IAUzD,mEAAmE;WACrD,yBAAyB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO;IAIlE,sDAAsD;WACxC,oBAAoB,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO;IAa3E,qDAAqD;IACrD,OAAc,iBAAiB,eAAgB,cAAc,KAAG,cAAc,CAK5E;IAEF,oEAAoE;WACtD,6BAA6B,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO;CAQrE;AAED;;;GAGG;AACH,8BAAsB,wBAAyB,SAAQ,oBAAoB;IAClE,sBAAsB,kBAAyB;IAEtD,sFAAsF;IAC/E,4BAA4B;IAI5B,gBAAgB,IAAI,eAAe,EAAE,GAAG,SAAS;CASzD"}
1
+ {"version":3,"file":"UiLayoutDataProvider.d.ts","sourceRoot":"","sources":["../../../../src/appui-abstract/dialogs/UiLayoutDataProvider.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtG,OAAO,EAAE,oBAAoB,EAAwB,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE9F;;GAEG;AACH,oBAAY,gBAAgB;IAC1B,IAAI,KAAK;IACT,KAAK,UAAU;IACf,EAAE,OAAO;IACT,MAAM,WAAW;IACjB,GAAG,QAAQ;IACX,EAAE,OAAO;IACT,KAAK,UAAU;IACf,IAAI,SAAS;IACb,QAAQ,aAAa;CACtB;AAED;;GAEG;AACH,oBAAY,iBAAiB;IAC3B,IAAI,KAAK;IACT,OAAO,YAAY;IACnB,MAAM,gBAAgB;IACtB,IAAI,wBAAwB;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,qBAAqB;IACrB,IAAI,EAAE,gBAAgB,CAAC;IACvB,gCAAgC;IAChC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,kDAAkD;IAClD,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,yBAAyB;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mBAAmB;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB;AAED;;GAEG;AACH,8BAAsB,oBAAqB,SAAQ,cAAc;IAC/D,OAAO,CAAC,MAAM,CAAwC;IAEtD,kIAAkI;IAClH,kBAAkB,CAAC,UAAU,EAAE,kBAAkB,EAAE,GAAG,oBAAoB;IAM1F,6HAA6H;IAEtH,qBAAqB,kBAAmB,sBAAsB,KAAG,IAAI,CAE1E;IAEF,OAAO,CAAC,KAAK,CAA0B;IAEvC,2BAA2B;IAC3B,IAAW,IAAI,IAAI,SAAS,EAAE,CAK7B;IAED,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,aAAa,CAAC,UAAU,CAAC,GAAG,SAAS;IAKxE,uIAAuI;IAEhI,iBAAiB,IAAI,UAAU,EAAE,GAAG,SAAS;IAIpD,IAAW,KAAK,IAAI,aAAa,CAAC,UAAU,CAAC,CAS5C;IAED,kFAAkF;IAC3E,iBAAiB,CAAC,SAAS,UAAO;IAOzC;;OAEG;IACI,gBAAgB,IAAI,SAAS,EAAE;IAmBtC,uDAAuD;WACzC,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO;IAUzD,mEAAmE;WACrD,yBAAyB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO;IAIlE,sDAAsD;WACxC,oBAAoB,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO;IAa3E,qDAAqD;IACrD,OAAc,iBAAiB,eAAgB,cAAc,KAAG,cAAc,CAK5E;IAEF,oEAAoE;WACtD,6BAA6B,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO;CAQrE;AAED;;;GAGG;AACH,8BAAsB,wBAAyB,SAAQ,oBAAoB;IAClE,sBAAsB,kBAAyB;IAEtD,sFAAsF;IAC/E,4BAA4B;IAI5B,gBAAgB,IAAI,eAAe,EAAE,GAAG,SAAS;CASzD"}
@@ -60,7 +60,7 @@ export class UiLayoutDataProvider extends UiDataProvider {
60
60
  return this._rows;
61
61
  }
62
62
  loadItemsInternal(items) {
63
- this._items = items ? items : [];
63
+ this._items = items ?? [];
64
64
  this._rows = this.layoutDialogRows();
65
65
  }
66
66
  /** Called by UI to request available properties that can be bound to user supplied UI components (See Tool1UiProvider for example). */
@@ -69,10 +69,13 @@ export class UiLayoutDataProvider extends UiDataProvider {
69
69
  throw (new Error("Derived UiDataProvider must implement this method to supply set of properties."));
70
70
  }
71
71
  get items() {
72
- if (undefined === this._items) {
73
- this.loadItemsInternal(this.supplyDialogItems());
74
- }
75
- return this._items;
72
+ const items = this._items;
73
+ if (undefined !== items)
74
+ return items;
75
+ this.loadItemsInternal(this.supplyDialogItems());
76
+ // If _items is undefined, the hook above failed to initialize it
77
+ // Deemed more honest to use the non-null assertion than explicit cast
78
+ return this._items; // eslint-disable-line @typescript-eslint/no-non-null-assertion
76
79
  }
77
80
  /** Called to inform listeners that new properties are ready for display in UI. */
78
81
  reloadDialogItems(emitEvent = true) {
@@ -1 +1 @@
1
- {"version":3,"file":"UiLayoutDataProvider.js","sourceRoot":"","sources":["../../../../src/appui-abstract/dialogs/UiLayoutDataProvider.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Dialog\r\n */\r\n\r\nimport { BeUiEvent } from \"@itwin/core-bentley\";\r\nimport { PropertyEditorParams, PropertyEditorParamTypes, SuppressLabelEditorParams } from \"../properties/EditorParams\";\r\nimport { PropertyRecord } from \"../properties/Record\";\r\nimport { PrimitiveValue, PropertyValueFormat } from \"../properties/Value\";\r\nimport { BaseDialogItem, DialogItem, DialogPropertyItem, DialogPropertySyncItem } from \"./DialogItem\";\r\nimport { PropertyChangeResult, PropertyChangeStatus, UiDataProvider } from \"./UiDataProvider\";\r\n\r\n/** Enum for button types. Determines button label, and default button style.\r\n * @public\r\n */\r\nexport enum DialogButtonType {\r\n None = \"\",\r\n Close = \"close\",\r\n OK = \"ok\",\r\n Cancel = \"cancel\",\r\n Yes = \"yes\",\r\n No = \"no\",\r\n Retry = \"retry\",\r\n Next = \"next\",\r\n Previous = \"previous\"\r\n}\r\n\r\n/** Enum for button style.\r\n * @public\r\n */\r\nexport enum DialogButtonStyle {\r\n None = \"\",\r\n Primary = \"iui-cta\",\r\n Hollow = \"iui-default\",\r\n Blue = \"iui-high-visibility\",\r\n}\r\n\r\n/** Interface for a dialog button in a button cluster\r\n * @public\r\n */\r\nexport interface DialogButtonDef {\r\n /** type of button */\r\n type: DialogButtonType;\r\n /** Triggered on button click */\r\n onClick: () => void;\r\n /** Which button style to decorate button width */\r\n buttonStyle?: DialogButtonStyle;\r\n /** Disable the button */\r\n disabled?: boolean;\r\n /** Custom label */\r\n label?: string;\r\n /** Custom CSS class */\r\n className?: string;\r\n}\r\n\r\n/** [[DialogRow]] is the interface that groups dialog items into rows for building UI\r\n * @public\r\n */\r\nexport interface DialogRow {\r\n priority: number;\r\n items: DialogItem[];\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport abstract class UiLayoutDataProvider extends UiDataProvider {\r\n private _items: ReadonlyArray<DialogItem> | undefined;\r\n\r\n /** Applies changes from one or more properties - some dialogs will use this to send a bulk set of changes back to the provider */\r\n public override processChangesInUi(properties: DialogPropertyItem[]): PropertyChangeResult {\r\n // Default implementation is to just pass each property to applyUiPropertyChange\r\n properties.forEach((property) => this.applyUiPropertyChange(property));\r\n return { status: PropertyChangeStatus.Success };\r\n }\r\n\r\n /** Applies change of a single property - this is the default method used when property editors are dynamically generated. */\r\n // istanbul ignore next\r\n public applyUiPropertyChange = (_updatedValue: DialogPropertySyncItem): void => {\r\n throw (new Error(\"Derived UiDataProvider should implement this to apply change to a single property.\"));\r\n };\r\n\r\n private _rows: DialogRow[] | undefined;\r\n\r\n /** Array of dialog rows */\r\n public get rows(): DialogRow[] {\r\n if (!this._rows) {\r\n this._rows = this.layoutDialogRows();\r\n }\r\n return this._rows;\r\n }\r\n\r\n protected loadItemsInternal(items: ReadonlyArray<DialogItem> | undefined) {\r\n this._items = items ? items : [];\r\n this._rows = this.layoutDialogRows();\r\n }\r\n\r\n /** Called by UI to request available properties that can be bound to user supplied UI components (See Tool1UiProvider for example). */\r\n // istanbul ignore next\r\n public supplyDialogItems(): DialogItem[] | undefined {\r\n throw (new Error(\"Derived UiDataProvider must implement this method to supply set of properties.\"));\r\n }\r\n\r\n public get items(): ReadonlyArray<DialogItem> {\r\n if (undefined === this._items) {\r\n this.loadItemsInternal(this.supplyDialogItems());\r\n }\r\n return this._items!;\r\n }\r\n\r\n /** Called to inform listeners that new properties are ready for display in UI. */\r\n public reloadDialogItems(emitEvent = true) {\r\n this.loadItemsInternal(this.supplyDialogItems());\r\n // istanbul ignore else\r\n if (emitEvent)\r\n this.fireItemsReloadedEvent();\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public layoutDialogRows(): DialogRow[] {\r\n const rows: DialogRow[] = [];\r\n\r\n this.items.forEach((item) => {\r\n const row = rows.find((value) => value.priority === item.editorPosition.rowPriority);\r\n if (row) {\r\n row.items.push(item);\r\n } else {\r\n rows.push({ priority: item.editorPosition.rowPriority, items: [item] });\r\n }\r\n });\r\n\r\n // sort rows\r\n rows.sort((a: DialogRow, b: DialogRow) => a.priority - b.priority);\r\n // sort records\r\n rows.forEach((row: DialogRow) => row.items.sort((a: DialogItem, b: DialogItem) => a.editorPosition.columnIndex - b.editorPosition.columnIndex));\r\n return rows;\r\n }\r\n\r\n /** Determines if a dialog item editor wants a label */\r\n public static editorWantsLabel(item: DialogItem): boolean {\r\n if (item.property.editor && item.property.editor.params) {\r\n const params = item.property.editor.params.find((param: PropertyEditorParams) => param.type === PropertyEditorParamTypes.SuppressEditorLabel) as SuppressLabelEditorParams;\r\n // istanbul ignore else\r\n if (params)\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n /** Determines if a dialog items has an associated lock property */\r\n public static hasAssociatedLockProperty(item: DialogItem): boolean {\r\n return !!item.lockProperty;\r\n }\r\n\r\n /** Gets the disabled state for a given dialog item */\r\n public static getItemDisabledState(baseDialogItem: BaseDialogItem): boolean {\r\n const dialogItem = baseDialogItem as DialogItem;\r\n // istanbul ignore else\r\n if (dialogItem === undefined || dialogItem.lockProperty === undefined)\r\n return !!baseDialogItem.isDisabled;\r\n const value = dialogItem.lockProperty.value;\r\n // istanbul ignore next\r\n if (value === undefined)\r\n return !!baseDialogItem.isDisabled;\r\n\r\n return !value.value;\r\n }\r\n\r\n /** Gets a property record for a given dialog item */\r\n public static getPropertyRecord = (dialogItem: BaseDialogItem): PropertyRecord => {\r\n const propertyValue = { valueFormat: PropertyValueFormat.Primitive, value: dialogItem.value.value, displayValue: dialogItem.value.displayValue };\r\n const record = new PropertyRecord(propertyValue as PrimitiveValue, dialogItem.property);\r\n record.isDisabled = UiLayoutDataProvider.getItemDisabledState(dialogItem);\r\n return record;\r\n };\r\n\r\n /** Determines if a dialog row only contains button group editors */\r\n public static onlyContainButtonGroupEditors(row: DialogRow): boolean {\r\n for (const item of row.items) {\r\n // istanbul ignore else\r\n if (UiLayoutDataProvider.hasAssociatedLockProperty(item) || undefined === item.property.editor || \"enum-buttongroup\" !== item.property.editor.name || UiLayoutDataProvider.editorWantsLabel(item))\r\n return false;\r\n }\r\n return true;\r\n }\r\n}\r\n\r\n/** [[DialogLayoutDataProvider]] Abstract class that allows property values to be passed between hosting API and Dialog that generates and arranges components dynamically\r\n * including the buttons at the bottom of the dialog.\r\n * @public\r\n */\r\nexport abstract class DialogLayoutDataProvider extends UiLayoutDataProvider {\r\n public onButtonsReloadedEvent = new BeUiEvent<void>();\r\n\r\n /** Called to inform listeners that modal dialog button data needs to be refreshed. */\r\n public fireDialogButtonsReloadEvent() {\r\n this.onButtonsReloadedEvent.emit();\r\n }\r\n\r\n public supplyButtonData(): DialogButtonDef[] | undefined {\r\n // Derived class should override\r\n const buttons: DialogButtonDef[] = [];\r\n // istanbul ignore next\r\n buttons.push({ type: DialogButtonType.OK, onClick: () => { } });\r\n // istanbul ignore next\r\n buttons.push({ type: DialogButtonType.Cancel, onClick: () => { } });\r\n return buttons;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"UiLayoutDataProvider.js","sourceRoot":"","sources":["../../../../src/appui-abstract/dialogs/UiLayoutDataProvider.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Dialog\r\n */\r\n\r\nimport { BeUiEvent } from \"@itwin/core-bentley\";\r\nimport { PropertyEditorParams, PropertyEditorParamTypes, SuppressLabelEditorParams } from \"../properties/EditorParams\";\r\nimport { PropertyRecord } from \"../properties/Record\";\r\nimport { PrimitiveValue, PropertyValueFormat } from \"../properties/Value\";\r\nimport { BaseDialogItem, DialogItem, DialogPropertyItem, DialogPropertySyncItem } from \"./DialogItem\";\r\nimport { PropertyChangeResult, PropertyChangeStatus, UiDataProvider } from \"./UiDataProvider\";\r\n\r\n/** Enum for button types. Determines button label, and default button style.\r\n * @public\r\n */\r\nexport enum DialogButtonType {\r\n None = \"\",\r\n Close = \"close\",\r\n OK = \"ok\",\r\n Cancel = \"cancel\",\r\n Yes = \"yes\",\r\n No = \"no\",\r\n Retry = \"retry\",\r\n Next = \"next\",\r\n Previous = \"previous\"\r\n}\r\n\r\n/** Enum for button style.\r\n * @public\r\n */\r\nexport enum DialogButtonStyle {\r\n None = \"\",\r\n Primary = \"iui-cta\",\r\n Hollow = \"iui-default\",\r\n Blue = \"iui-high-visibility\",\r\n}\r\n\r\n/** Interface for a dialog button in a button cluster\r\n * @public\r\n */\r\nexport interface DialogButtonDef {\r\n /** type of button */\r\n type: DialogButtonType;\r\n /** Triggered on button click */\r\n onClick: () => void;\r\n /** Which button style to decorate button width */\r\n buttonStyle?: DialogButtonStyle;\r\n /** Disable the button */\r\n disabled?: boolean;\r\n /** Custom label */\r\n label?: string;\r\n /** Custom CSS class */\r\n className?: string;\r\n}\r\n\r\n/** [[DialogRow]] is the interface that groups dialog items into rows for building UI\r\n * @public\r\n */\r\nexport interface DialogRow {\r\n priority: number;\r\n items: DialogItem[];\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport abstract class UiLayoutDataProvider extends UiDataProvider {\r\n private _items: ReadonlyArray<DialogItem> | undefined;\r\n\r\n /** Applies changes from one or more properties - some dialogs will use this to send a bulk set of changes back to the provider */\r\n public override processChangesInUi(properties: DialogPropertyItem[]): PropertyChangeResult {\r\n // Default implementation is to just pass each property to applyUiPropertyChange\r\n properties.forEach((property) => this.applyUiPropertyChange(property));\r\n return { status: PropertyChangeStatus.Success };\r\n }\r\n\r\n /** Applies change of a single property - this is the default method used when property editors are dynamically generated. */\r\n // istanbul ignore next\r\n public applyUiPropertyChange = (_updatedValue: DialogPropertySyncItem): void => {\r\n throw (new Error(\"Derived UiDataProvider should implement this to apply change to a single property.\"));\r\n };\r\n\r\n private _rows: DialogRow[] | undefined;\r\n\r\n /** Array of dialog rows */\r\n public get rows(): DialogRow[] {\r\n if (!this._rows) {\r\n this._rows = this.layoutDialogRows();\r\n }\r\n return this._rows;\r\n }\r\n\r\n protected loadItemsInternal(items: ReadonlyArray<DialogItem> | undefined) {\r\n this._items = items ?? [];\r\n this._rows = this.layoutDialogRows();\r\n }\r\n\r\n /** Called by UI to request available properties that can be bound to user supplied UI components (See Tool1UiProvider for example). */\r\n // istanbul ignore next\r\n public supplyDialogItems(): DialogItem[] | undefined {\r\n throw (new Error(\"Derived UiDataProvider must implement this method to supply set of properties.\"));\r\n }\r\n\r\n public get items(): ReadonlyArray<DialogItem> {\r\n const items = this._items;\r\n if (undefined !== items)\r\n return items;\r\n\r\n this.loadItemsInternal(this.supplyDialogItems());\r\n // If _items is undefined, the hook above failed to initialize it\r\n // Deemed more honest to use the non-null assertion than explicit cast\r\n return this._items!; // eslint-disable-line @typescript-eslint/no-non-null-assertion\r\n }\r\n\r\n /** Called to inform listeners that new properties are ready for display in UI. */\r\n public reloadDialogItems(emitEvent = true) {\r\n this.loadItemsInternal(this.supplyDialogItems());\r\n // istanbul ignore else\r\n if (emitEvent)\r\n this.fireItemsReloadedEvent();\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public layoutDialogRows(): DialogRow[] {\r\n const rows: DialogRow[] = [];\r\n\r\n this.items.forEach((item) => {\r\n const row = rows.find((value) => value.priority === item.editorPosition.rowPriority);\r\n if (row) {\r\n row.items.push(item);\r\n } else {\r\n rows.push({ priority: item.editorPosition.rowPriority, items: [item] });\r\n }\r\n });\r\n\r\n // sort rows\r\n rows.sort((a: DialogRow, b: DialogRow) => a.priority - b.priority);\r\n // sort records\r\n rows.forEach((row: DialogRow) => row.items.sort((a: DialogItem, b: DialogItem) => a.editorPosition.columnIndex - b.editorPosition.columnIndex));\r\n return rows;\r\n }\r\n\r\n /** Determines if a dialog item editor wants a label */\r\n public static editorWantsLabel(item: DialogItem): boolean {\r\n if (item.property.editor && item.property.editor.params) {\r\n const params = item.property.editor.params.find((param: PropertyEditorParams) => param.type === PropertyEditorParamTypes.SuppressEditorLabel) as SuppressLabelEditorParams;\r\n // istanbul ignore else\r\n if (params)\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n /** Determines if a dialog items has an associated lock property */\r\n public static hasAssociatedLockProperty(item: DialogItem): boolean {\r\n return !!item.lockProperty;\r\n }\r\n\r\n /** Gets the disabled state for a given dialog item */\r\n public static getItemDisabledState(baseDialogItem: BaseDialogItem): boolean {\r\n const dialogItem = baseDialogItem as DialogItem;\r\n // istanbul ignore else\r\n if (dialogItem === undefined || dialogItem.lockProperty === undefined)\r\n return !!baseDialogItem.isDisabled;\r\n const value = dialogItem.lockProperty.value;\r\n // istanbul ignore next\r\n if (value === undefined)\r\n return !!baseDialogItem.isDisabled;\r\n\r\n return !value.value;\r\n }\r\n\r\n /** Gets a property record for a given dialog item */\r\n public static getPropertyRecord = (dialogItem: BaseDialogItem): PropertyRecord => {\r\n const propertyValue = { valueFormat: PropertyValueFormat.Primitive, value: dialogItem.value.value, displayValue: dialogItem.value.displayValue };\r\n const record = new PropertyRecord(propertyValue as PrimitiveValue, dialogItem.property);\r\n record.isDisabled = UiLayoutDataProvider.getItemDisabledState(dialogItem);\r\n return record;\r\n };\r\n\r\n /** Determines if a dialog row only contains button group editors */\r\n public static onlyContainButtonGroupEditors(row: DialogRow): boolean {\r\n for (const item of row.items) {\r\n // istanbul ignore else\r\n if (UiLayoutDataProvider.hasAssociatedLockProperty(item) || undefined === item.property.editor || \"enum-buttongroup\" !== item.property.editor.name || UiLayoutDataProvider.editorWantsLabel(item))\r\n return false;\r\n }\r\n return true;\r\n }\r\n}\r\n\r\n/** [[DialogLayoutDataProvider]] Abstract class that allows property values to be passed between hosting API and Dialog that generates and arranges components dynamically\r\n * including the buttons at the bottom of the dialog.\r\n * @public\r\n */\r\nexport abstract class DialogLayoutDataProvider extends UiLayoutDataProvider {\r\n public onButtonsReloadedEvent = new BeUiEvent<void>();\r\n\r\n /** Called to inform listeners that modal dialog button data needs to be refreshed. */\r\n public fireDialogButtonsReloadEvent() {\r\n this.onButtonsReloadedEvent.emit();\r\n }\r\n\r\n public supplyButtonData(): DialogButtonDef[] | undefined {\r\n // Derived class should override\r\n const buttons: DialogButtonDef[] = [];\r\n // istanbul ignore next\r\n buttons.push({ type: DialogButtonType.OK, onClick: () => { } });\r\n // istanbul ignore next\r\n buttons.push({ type: DialogButtonType.Cancel, onClick: () => { } });\r\n return buttons;\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"BaseQuantityDescription.d.ts","sourceRoot":"","sources":["../../../../src/appui-abstract/quantity/BaseQuantityDescription.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpF,OAAO,EAAiD,YAAY,EAA4B,MAAM,4BAA4B,CAAC;AAInI;;;GAGG;AACH,8BAAsB,uBAAwB,YAAW,mBAAmB;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;gBAGvB,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,kBAAkB,CAAC,EAAE,MAAM;IAyB9F,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAEpD,MAAM,gBAAiB,MAAM,KAAG,MAAM,CAE3C;IACF,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY;IAExD,KAAK,cAAe,MAAM,KAAG,YAAY,CAE9C;IAEF,aAAoB,UAAU,IAAI,MAAM,CAAC;CAE1C"}
1
+ {"version":3,"file":"BaseQuantityDescription.d.ts","sourceRoot":"","sources":["../../../../src/appui-abstract/quantity/BaseQuantityDescription.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpF,OAAO,EAAiD,YAAY,EAAkD,MAAM,4BAA4B,CAAC;AAIzJ;;;GAGG;AACH,8BAAsB,uBAAwB,YAAW,mBAAmB;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;gBAEvB,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,kBAAkB,CAAC,EAAE,MAAM;IA2B9F,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAEpD,MAAM,gBAAiB,MAAM,KAAG,MAAM,CAE3C;IACF,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY;IAExD,KAAK,cAAe,MAAM,KAAG,YAAY,CAE9C;IAEF,aAAoB,UAAU,IAAI,MAAM,CAAC;CAE1C"}
@@ -23,14 +23,14 @@ export class BaseQuantityDescription {
23
23
  this.displayLabel = displayLabel;
24
24
  this.kindOfQuantityName = kindOfQuantityName;
25
25
  this.typename = StandardTypeNames.Number;
26
+ const editorParams = [{
27
+ type: PropertyEditorParamTypes.CustomFormattedNumber,
28
+ formatFunction: this.format,
29
+ parseFunction: this.parse,
30
+ }];
26
31
  this.editor = {
27
32
  name: StandardEditorNames.NumberCustom,
28
- params: [{
29
- type: PropertyEditorParamTypes.CustomFormattedNumber,
30
- formatFunction: this.format,
31
- parseFunction: this.parse,
32
- },
33
- ],
33
+ params: editorParams,
34
34
  };
35
35
  // istanbul ignore else
36
36
  if (iconSpec) {
@@ -38,7 +38,7 @@ export class BaseQuantityDescription {
38
38
  type: PropertyEditorParamTypes.Icon,
39
39
  definition: { iconSpec },
40
40
  };
41
- this.editor.params.push(params);
41
+ editorParams.push(params);
42
42
  }
43
43
  }
44
44
  format = (numberValue) => {
@@ -1 +1 @@
1
- {"version":3,"file":"BaseQuantityDescription.js","sourceRoot":"","sources":["../../../../src/appui-abstract/quantity/BaseQuantityDescription.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAGH,OAAO,EAA+D,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACnI,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAExE;;;GAGG;AACH,MAAM,OAAgB,uBAAuB;IACpC,IAAI,CAAS;IACb,YAAY,CAAS;IACrB,QAAQ,CAAS;IACjB,MAAM,CAAqB;IAC3B,kBAAkB,CAAU;IAGnC,YAAY,IAAY,EAAE,YAAoB,EAAE,QAAiB,EAAE,kBAA2B;QAC5F,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,IAAI,CAAC,QAAQ,GAAG,iBAAiB,CAAC,MAAM,CAAC;QACzC,IAAI,CAAC,MAAM,GAAG;YACZ,IAAI,EAAE,mBAAmB,CAAC,YAAY;YACtC,MAAM,EAAE,CAAC;oBACP,IAAI,EAAE,wBAAwB,CAAC,qBAAqB;oBACpD,cAAc,EAAE,IAAI,CAAC,MAAM;oBAC3B,aAAa,EAAE,IAAI,CAAC,KAAK;iBACK;aAC/B;SACF,CAAC;QAEF,uBAAuB;QACvB,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,MAAM,GAAqB;gBAC/B,IAAI,EAAE,wBAAwB,CAAC,IAAI;gBACnC,UAAU,EAAE,EAAE,QAAQ,EAAE;aACzB,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,MAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAIM,MAAM,GAAG,CAAC,WAAmB,EAAU,EAAE;QAC9C,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IACvC,CAAC,CAAC;IAGK,KAAK,GAAG,CAAC,SAAiB,EAAgB,EAAE;QACjD,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACrC,CAAC,CAAC;CAIH","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Properties\r\n */\r\n\r\nimport { PropertyDescription, PropertyEditorInfo } from \"../properties/Description\";\r\nimport { CustomFormattedNumberParams, IconEditorParams, ParseResults, PropertyEditorParamTypes } from \"../properties/EditorParams\";\r\nimport { StandardTypeNames } from \"../properties/StandardTypeNames\";\r\nimport { StandardEditorNames } from \"../properties/StandardEditorNames\";\r\n\r\n/**\r\n * Base Quantity Property Description\r\n * @beta\r\n */\r\nexport abstract class BaseQuantityDescription implements PropertyDescription {\r\n public name: string;\r\n public displayLabel: string;\r\n public typename: string;\r\n public editor: PropertyEditorInfo;\r\n public kindOfQuantityName?: string;\r\n\r\n\r\n constructor(name: string, displayLabel: string, iconSpec?: string, kindOfQuantityName?: string) {\r\n this.name = name;\r\n this.displayLabel = displayLabel;\r\n this.kindOfQuantityName = kindOfQuantityName;\r\n this.typename = StandardTypeNames.Number;\r\n this.editor = {\r\n name: StandardEditorNames.NumberCustom,\r\n params: [{\r\n type: PropertyEditorParamTypes.CustomFormattedNumber,\r\n formatFunction: this.format,\r\n parseFunction: this.parse,\r\n } as CustomFormattedNumberParams,\r\n ],\r\n };\r\n\r\n // istanbul ignore else\r\n if (iconSpec) {\r\n const params: IconEditorParams = {\r\n type: PropertyEditorParamTypes.Icon,\r\n definition: { iconSpec },\r\n };\r\n this.editor.params!.push(params);\r\n }\r\n }\r\n\r\n protected abstract formatValue(numberValue: number): string;\r\n\r\n public format = (numberValue: number): string => {\r\n return this.formatValue(numberValue);\r\n };\r\n protected abstract parseString(userInput: string): ParseResults;\r\n\r\n public parse = (userInput: string): ParseResults => {\r\n return this.parseString(userInput);\r\n };\r\n\r\n public abstract get parseError(): string;\r\n\r\n}\r\n"]}
1
+ {"version":3,"file":"BaseQuantityDescription.js","sourceRoot":"","sources":["../../../../src/appui-abstract/quantity/BaseQuantityDescription.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAGH,OAAO,EAAqF,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACzJ,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAExE;;;GAGG;AACH,MAAM,OAAgB,uBAAuB;IACpC,IAAI,CAAS;IACb,YAAY,CAAS;IACrB,QAAQ,CAAS;IACjB,MAAM,CAAqB;IAC3B,kBAAkB,CAAU;IAEnC,YAAY,IAAY,EAAE,YAAoB,EAAE,QAAiB,EAAE,kBAA2B;QAC5F,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,IAAI,CAAC,QAAQ,GAAG,iBAAiB,CAAC,MAAM,CAAC;QAEzC,MAAM,YAAY,GAA2B,CAAC;gBAC5C,IAAI,EAAE,wBAAwB,CAAC,qBAAqB;gBACpD,cAAc,EAAE,IAAI,CAAC,MAAM;gBAC3B,aAAa,EAAE,IAAI,CAAC,KAAK;aACK,CAAC,CAAC;QAElC,IAAI,CAAC,MAAM,GAAG;YACZ,IAAI,EAAE,mBAAmB,CAAC,YAAY;YACtC,MAAM,EAAE,YAAY;SACrB,CAAC;QAEF,uBAAuB;QACvB,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,MAAM,GAAqB;gBAC/B,IAAI,EAAE,wBAAwB,CAAC,IAAI;gBACnC,UAAU,EAAE,EAAE,QAAQ,EAAE;aACzB,CAAC;YACF,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAIM,MAAM,GAAG,CAAC,WAAmB,EAAU,EAAE;QAC9C,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IACvC,CAAC,CAAC;IAGK,KAAK,GAAG,CAAC,SAAiB,EAAgB,EAAE;QACjD,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACrC,CAAC,CAAC;CAIH","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Properties\r\n */\r\n\r\nimport { PropertyDescription, PropertyEditorInfo } from \"../properties/Description\";\r\nimport { CustomFormattedNumberParams, IconEditorParams, ParseResults, PropertyEditorParams, PropertyEditorParamTypes } from \"../properties/EditorParams\";\r\nimport { StandardTypeNames } from \"../properties/StandardTypeNames\";\r\nimport { StandardEditorNames } from \"../properties/StandardEditorNames\";\r\n\r\n/**\r\n * Base Quantity Property Description\r\n * @beta\r\n */\r\nexport abstract class BaseQuantityDescription implements PropertyDescription {\r\n public name: string;\r\n public displayLabel: string;\r\n public typename: string;\r\n public editor: PropertyEditorInfo;\r\n public kindOfQuantityName?: string;\r\n\r\n constructor(name: string, displayLabel: string, iconSpec?: string, kindOfQuantityName?: string) {\r\n this.name = name;\r\n this.displayLabel = displayLabel;\r\n this.kindOfQuantityName = kindOfQuantityName;\r\n this.typename = StandardTypeNames.Number;\r\n\r\n const editorParams: PropertyEditorParams[] = [{\r\n type: PropertyEditorParamTypes.CustomFormattedNumber,\r\n formatFunction: this.format,\r\n parseFunction: this.parse,\r\n } as CustomFormattedNumberParams];\r\n\r\n this.editor = {\r\n name: StandardEditorNames.NumberCustom,\r\n params: editorParams,\r\n };\r\n\r\n // istanbul ignore else\r\n if (iconSpec) {\r\n const params: IconEditorParams = {\r\n type: PropertyEditorParamTypes.Icon,\r\n definition: { iconSpec },\r\n };\r\n editorParams.push(params);\r\n }\r\n }\r\n\r\n protected abstract formatValue(numberValue: number): string;\r\n\r\n public format = (numberValue: number): string => {\r\n return this.formatValue(numberValue);\r\n };\r\n protected abstract parseString(userInput: string): ParseResults;\r\n\r\n public parse = (userInput: string): ParseResults => {\r\n return this.parseString(userInput);\r\n };\r\n\r\n public abstract get parseError(): string;\r\n\r\n}\r\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@itwin/appui-abstract",
3
- "version": "5.10.0-dev.1",
3
+ "version": "5.10.0-dev.3",
4
4
  "description": "iTwin.js UI abstractions",
5
5
  "main": "lib/cjs/appui-abstract.js",
6
6
  "module": "lib/esm/appui-abstract.js",
@@ -22,7 +22,7 @@
22
22
  "url": "http://www.bentley.com"
23
23
  },
24
24
  "peerDependencies": {
25
- "@itwin/core-bentley": "5.10.0-dev.1"
25
+ "@itwin/core-bentley": "5.10.0-dev.3"
26
26
  },
27
27
  "//devDependencies": [
28
28
  "NOTE: All peerDependencies should also be listed as devDependencies since peerDependencies are not considered by npm install",
@@ -48,9 +48,9 @@
48
48
  "source-map-loader": "^5.0.0",
49
49
  "typescript": "~5.6.2",
50
50
  "webpack": "^5.97.1",
51
- "@itwin/build-tools": "5.10.0-dev.1",
52
- "@itwin/core-bentley": "5.10.0-dev.1",
53
- "@itwin/certa": "5.10.0-dev.1"
51
+ "@itwin/build-tools": "5.10.0-dev.3",
52
+ "@itwin/certa": "5.10.0-dev.3",
53
+ "@itwin/core-bentley": "5.10.0-dev.3"
54
54
  },
55
55
  "//dependencies": [
56
56
  "NOTE: these dependencies should be only for things that DO NOT APPEAR IN THE API",