# Package IGD.Core

## History

### 3.5.0

-   extended SessionData
-   added json schema for igxr

### 3.4.0

-   added Localization.detectLocaleFromNavigator
-   IGXE: added PropertyGroup types

### 3.4.0-alpha.1

-   added Localization.detectLocaleFromNavigator

### 3.4.0-alpha.0

-   IGXE: added PropertyGroup types

### 3.3.0

-   IGXE: added Section property to Property values

### 3.3.0-alpha.0

-   IGXE: added Section property to Property values

### 3.2.0

-   removed IGXCFactory
-   IGXE: added some comments
-   added esnext building

### 3.2.0-alpha.0

-   removed IGXCFactory
-   IGXE: added some comments
-   updated dependencies
-   added esnext building

### 3.1.0

-   IGXE: integrated ordered property changes
-   ProjectService: changed session stats values to also allow string arrays
-   IGXB: added traverse
-   added stats support to sessiondata
-   moved IGXE unit manipulation functions into IGXE.Units
-   added articleNumber to igxb article item
-   IGXB, IGXE: added support for price ranges

### 3.1.0-alpha.4

-   integrated ordered property changes
-   ProjectService: changed session stats values to also allow string arrays

### 3.1.0-alpha.3

-   IGXB: added traverse

### 3.1.0-alpha.2

-   added stats support to sessiondata

### 3.1.0-alpha.1

-   moved IGXE unit manipulation functions into IGXE.Units

### 3.1.0-alpha.0

-   added articleNumber to igxb article item
-   IGXB, IGXE: added support for price ranges

### 3.0.2

### 3.0.1

-   IGXE: changed property path delimiter to be @@
-   IGXE: added createFakeValueFromProperty

### 3.0.0

-   IGXE: added createActiveSubPropertyInjectedProperties
-   IGXE: added helper functions
-   IGXE: removed Type property from IPropertyValue
-   IGXE: added Image and SubProperties to IProperty
-   IGXA: changed createTagGroups sort mode to be configurable
-   IGXA: added sorting of rest tag groups to the end
-   IGXA: changed CatalogItem and WizardItem to extend BaseItem
-   IGXA: fixed empty tags being handled differently than missing tags
-   IGXA: added createTagGroups
-   IGXR: added hidden to manufacturer
-   IGXA: added extractLocalizedText
-   IGXA: added Tags
-   IGXA: added IWizardItem
-   added getLocalizedText to IGXR file
-   added Disabled, DisabledReason and Hidden to IGXR.ICatalog
-   added price formatter
-   added Type to IGXE.IPropertyValue and ParentPropertyKey to IGXE.IProperty
-   added generics to ProjectService
-   added pricehelper
-   added disabled property to IGXA.IBaseItem
-   added ArticleName to IGXB.IBaseArticleItem
-   added Name property to IGXA.IBaseItem
-   added finishSession to project service
-   renamed IProjectService.generateSessionPDFLInk to getSessionPDFUrl
-   changed return of IProjectService.getSession... to Promise<string>
-   fixed igxc factory typeof checks
-   added compatibility with 2.x gfx version
-   removed NotificationCenter
-   removed undefined from IGXE.IArticleConfiguration values
-   moved data to IGXB.IBaseArticleItem
-   added ICloseableConnection primitive
-   renamed configuration service to ProjectService

### 3.0.0-alpha.15

-   IGXE: added createActiveSubPropertyInjectedProperties
-   IGXE: added helper functions
-   IGXE: removed Type property from IPropertyValue
-   IGXE: added Image and SubProperties to IProperty

### 3.0.0-alpha.14

-   IGXA: changed createTagGroups sort mode to be configurable

### 3.0.0-alpha.13

-   IGXA: added sorting of rest tag groups to the end
-   IGXA: changed CatalogItem and WizardItem to extend BaseItem
-   IGXA: fixed empty tags being handled differently than missing tags

### 3.0.0-alpha.12

-   IGXA: added createTagGroups
-   IGXR: added hidden to manufacturer
-   IGXA: added extractLocalizedText
-   IGXA: added Tags
-   IGXA: added IWizardItem

### 3.0.0-alpha.11

-   added getLocalizedText to IGXR file
-   added Disabled, DisabledReason and Hidden to IGXR.ICatalog

### 3.0.0-alpha.10

-   added price formatter

### 3.0.0-alpha.9

-   added Type to IGXE.IPropertyValue and ParentPropertyKey to IGXE.IProperty

### 3.0.0-alpha.8

-   added generics to ProjectService

### 3.0.0-alpha.7

-   [*] updated version logs
-   added pricehelper

### 3.0.0-alpha.6

-   added disabled property to IGXA.IBaseItem
-   added ArticleName to IGXB.IBaseArticleItem
-   added Name property to IGXA.IBaseItem

### 3.0.0-alpha.5

-   added finishSession to project service
-   renamed IProjectService.generateSessionPDFLInk to getSessionPDFUrl
-   changed return of IProjectService.getSession... to Promise<string>

### 3.0.0-alpha.4

-   fixed igxc factory typeof checks

### 3.0.0-alpha.3

-   added compatibility with 2.x gfx version

### 3.0.0-alpha.0

-   removed NotificationCenter
-   removed undefined from IGXE.IArticleConfiguration values
-   moved data to IGXB.IBaseArticleItem
-   added ICloseableConnection primitive
-   renamed configuration service to ProjectService

### 2.5.0

-   updated dependencies
-   incremented igxb minor version:
-   changed article rotation from radians (specified as degrees) to actual degrees
-   added convertIGXB to convert igxbs to the current version

### 2.5.0-alpha.0

-   updated dependencies
-   incremented igxb minor version:
-   changed article rotation from radians (specified as degrees) to actual degrees
-   added convertIGXB to convert igxbs to the current version

### 2.4.10

-   updated dependencies

### 2.4.9

-   updated version logs

### 2.4.8

-   updated dependencies

### 2.4.7

**features**

-   added wizard to igxr catalog settings
-   added configuration backend abstraction

### 2.4.0

-   removed backend specific types
-   changed IGXA.ICatalogItem

### 2.3.8

-   added IGXA.ISetItem

### 2.3.5

-   removed ArticleRestored callback from NotificationCenter

### 2.3.4

-   added ArticleRestored callback to NotificationCenter

### 2.3.3

-   added optional Visible property to IGXA Article Items
-   added optional Hidden Property to igxb items

### 2.3.2

-   added stricter typing

### 2.3.1

-   added identifier property to igxb groups

### 2.3.0

-   replaced all custom IGXA id properties with a generic ID property
-   added impressionitems to IGXB

### 2.2.0

-   replaced EServerType enum with string literal

### 2.1.0

**NotificationCenter**

-   replaced old enum-based calls with string literal ones in order to increase type safety
-   changed signature of .subscribe
-   added new **on** method for single event subscriptions

NotificationCenter.send now returns a promise, which will resolve after all listeners have been executed, if awaitListeners is enabled on NotificationCenter.

Notifcation.on and Notification.subscribe now return a subscription object, which can be used to remove the subscription and to send notifications.

**Logger**

IGD.Core.Logger is now officially deprecated. Please stop using it and switch to a module scoped IG.Utilities logger instance.

### 2.0.8

-   changed values of enum EPropertyValueUnitGroup to strings

### 2.0.0

-   new Module System

### 1.3.2

-   IGXA: new optional field "FolderData" on FolderItem
-   IGXR: new EAIWS Setting "NonCommercial"

### 1.3.1

-   removed access from the page to the host (window-parent) during intialization

### 1.3.0

-   IGXB: new optional property "Data" on article items
-   IGXR Format supports a lot more settings like MultiArticles, Overriding EAIWS catalogs and materials
-   IGXE: removed "Length" PropertyType, introduced PropertyValueUnit specification
-   new IGXB Article flag "IsCommercial". Set to false for items that are not commercially relevant
-   Page.getTextFile() can request multiple files at once
-   Logging object improvements, works now independent from IGD Host (using IGD.LogStore)
-   I18N object
-   got rid of IGD.Core_Def sub-package
-   new page interface to save state session-independendly on the client (web: localStorage)

### 1.2.2

-   EProductDataType += XcalibuR
-   rename of PDM configurations, e.g. IProductDataManagerConfiguration
-   IArticleItem += Position, Rotation
-   IGXB (file) += ProjectData
-   IGXB: += IProjectData
-   IGXB (file): += tag CustomData for custom project data
-   Product Managers, Imports, Exports, etc.: mods to support mod'ed IGXB
-   IGXB (file): incompatible mods: - format now string (Major.Minor) - *ID -> *Id - *Tag -> *Id - _Tag: any -> string - Configuration_ -> ComId - HeadCalculation -> HeaderCalculation
-   += Logger
-   ENotitication += ArticleFocus
-   Page.initialize()

### 1.2.1

-   += [store|add|request]ClientState

### 1.2.1

-   += IGD.Core.IGXR interface (registry format)
-   += IGD.Core.IGXA.Image (Catalog image)

### 1.2.1

-   changed signature of NotificationCenter.sendArticleConfigured()

### 1.2.1

-   got rid of IGD.Core_Def - just use in webhost- or non-IGD environments

### 1.2.1

-   Notification Manager improvements

### 1.2.0

-   += EPageToHostCmd.InitiateImportFromJSBU, InitiateLoadFromJSBU, InitiateSaveToJSBU (+ page functions) to communicate with new outside API
-   += IGXA Module (Catalog format)
-   += IGXB Module (BOM format)
-   += IGXE Module (Product data format)
-   modified Page.getJsonFile to accept an array of files to load them all in parallel
-   Fix for old IE versions that don't understand <HTMLElement>.dataset

### 1.2.0

-   += EPageToHostCmd.SaveModuleState, \*.LoadModuleState incl. related methods in Page
-   new notification ENotification.ArticleGfxInserted

### 1.1.0

-   IGXC.Scene += updateGeometries()
-   IGXC.Scene += MaterialAssignments
-   += IGXD support
-   ESessionState += CAD_MAT

### 1.0.0

-   += NotificationCenter, (E)Notification, INotificationCallback - Notification support
-   BOMPosition += ediData
-   BOMPosition += visibility
-   += EBOMVisibility
-   += EPageToHostCmd.ShowMessageBox
-   += EDialogTypes.ts
-   += Page.showMessageBox
-   += UserData.listUserRoles
-   += EPageToHostCmd.RequestTextFile, Page.getTextFile()
-   += UserData, ESessionState.UserData
-   BOM += getPositions()
-   BOM += findPositionByUid()
-   += EConnectivity and ESessionState.Connectivity
-   += ESessionState.HashTag
-   += IGXC.Context
-   IGXC.Object += Interactor, Evaluator and \*Parameters
-   IGXC.Object += path as constructor parameter
-   IGXC.Transform - initialization of properties (unit scale, no offset)
-   IGXC.Vector - initialization of properties (0)
-   BOM deprecated methods create console.warn's, was: errors

### 1.0.0

-   BOMPosition getSinglePrice(), getFinalPrice(), addSubPosition(), compare() (was: equals()) now static, previous methods marked as deprecated but still there
-   BOM addPosition(), toFlat(), getAttachments(), getTotalPrice() now static, previous methods marked as deprecated but still there
-   BOM += replacePlaceholders()
-   BOM += lineBreak
-   IGXC.Object += GeoParameters
-   BOMPosition += uid
-   BOM += getAttachments()
-   ESessionState: merge of 3D and 2D tags to 'CAD' tag
-   ESessionState: now dictionaries for 2D/3D rather than singletons
-   += EAttachmentType
-   BOMPosition += attachments
-   += IGXC.{Scene,Object,Material,etc.}
-   ESessionState += PageCount
-   BOM += createFromObject()
-   BOMPosition += equals()
-   BOM += toFlat()
-   BOM.addPosition() added, replaces add()
-   BOMPosition: public methods now starting with lower case (JS method style)
-   re-org of EPageToHostCmd, ESessionState and EBOMPositionType
-   BOMPosition += AddSubPosition()
-   BOMPosition += GetSingle/FinalPrice(), += currency
-   Page += submit() and cancel()
-   EPageToHostCmd += FinishModuleSubmitData, CancelModule
-   new enum EBOMPositionType
-   Page += validateUserCredentials()
-   new EPageToHostCmd ValidateUserCredentials
-   new ESessionState enums
-   added BOM and BOMPosition
-   EPageToHostCmd.LoadPage/Page.jumpToPage() has optional parameter rollBackHistory
-   Page/IConnector - support for image files
-   IConnector: requirement that locale must be added to session state
-   Page/IConnector - support for JSON files
-   Page/IConnector - support for localized resources

### 1.0.0

-   initial release
-   includes API with basic functionality
-   includes IGD.Driver.Web for Hosts running in web browsers
