@igo2/common 1.14.2 → 1.14.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/esm2020/lib/action/actionbar/actionbar.component.mjs +2 -2
  2. package/esm2020/lib/action/index.mjs +1 -1
  3. package/esm2020/lib/action/shared/action.enums.mjs +1 -1
  4. package/esm2020/lib/action/shared/index.mjs +1 -1
  5. package/esm2020/lib/backdrop/backdrop.component.mjs +2 -2
  6. package/esm2020/lib/backdrop/index.mjs +1 -1
  7. package/esm2020/lib/badge-icon/index.mjs +1 -1
  8. package/esm2020/lib/clickout/index.mjs +1 -1
  9. package/esm2020/lib/clone/index.mjs +1 -1
  10. package/esm2020/lib/custom-html/custom-html.component.mjs +2 -2
  11. package/esm2020/lib/dom/dom.interfaces.mjs +1 -1
  12. package/esm2020/lib/dom/index.mjs +1 -1
  13. package/esm2020/lib/drag-drop/index.mjs +1 -1
  14. package/esm2020/lib/dynamic-component/dynamic-outlet/dynamic-outlet.component.mjs +2 -2
  15. package/esm2020/lib/dynamic-component/index.mjs +1 -1
  16. package/esm2020/lib/dynamic-component/shared/dynamic-component.interfaces.mjs +1 -1
  17. package/esm2020/lib/dynamic-component/shared/index.mjs +1 -1
  18. package/esm2020/lib/entity/shared/entity.enums.mjs +1 -1
  19. package/esm2020/lib/entity/shared/index.mjs +1 -1
  20. package/esm2020/lib/entity/shared/strategies/index.mjs +1 -1
  21. package/esm2020/lib/flexible/flexible.component.mjs +2 -2
  22. package/esm2020/lib/flexible/flexible.type.mjs +1 -1
  23. package/esm2020/lib/flexible/index.mjs +1 -1
  24. package/esm2020/lib/form/shared/form-field-component.mjs +1 -1
  25. package/esm2020/lib/form/shared/index.mjs +1 -1
  26. package/esm2020/lib/home-button/home-button.component.mjs +2 -2
  27. package/esm2020/lib/home-button/index.mjs +1 -1
  28. package/esm2020/lib/image/secure-image.pipe.mjs +1 -1
  29. package/esm2020/lib/interactive-tour/index.mjs +1 -1
  30. package/esm2020/lib/json-dialog/index.mjs +1 -1
  31. package/esm2020/lib/keyvalue/index.mjs +1 -1
  32. package/esm2020/lib/panel/index.mjs +1 -1
  33. package/esm2020/lib/sidenav/index.mjs +1 -1
  34. package/esm2020/lib/table/index.mjs +1 -1
  35. package/esm2020/lib/table/table-action-color.enum.mjs +1 -1
  36. package/esm2020/lib/table/table-database.mjs +1 -1
  37. package/esm2020/lib/tool/index.mjs +1 -1
  38. package/esm2020/lib/tool/shared/index.mjs +1 -1
  39. package/esm2020/lib/tool/shared/tool.service.mjs +1 -1
  40. package/esm2020/lib/tool/toolbox/toolbox.component.mjs +3 -3
  41. package/esm2020/lib/widget/index.mjs +1 -1
  42. package/esm2020/lib/widget/shared/index.mjs +1 -1
  43. package/esm2020/lib/widget/shared/widget.interfaces.mjs +1 -1
  44. package/esm2020/lib/widget/shared/widget.mjs +1 -1
  45. package/esm2020/lib/workspace/shared/index.mjs +1 -1
  46. package/fesm2015/igo2-common.mjs +12 -12
  47. package/fesm2015/igo2-common.mjs.map +1 -1
  48. package/fesm2020/igo2-common.mjs +12 -12
  49. package/fesm2020/igo2-common.mjs.map +1 -1
  50. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"igo2-common.mjs","sources":["../../../packages/common/src/lib/entity/shared/entity.enums.ts","../../../packages/common/src/lib/entity/shared/entity.utils.ts","../../../packages/common/src/lib/entity/shared/state.ts","../../../packages/common/src/lib/entity/shared/view.ts","../../../packages/common/src/lib/entity/shared/store.ts","../../../packages/common/src/lib/entity/shared/watcher.ts","../../../packages/common/src/lib/entity/shared/transaction.ts","../../../packages/common/src/lib/entity/shared/strategies/strategy.ts","../../../packages/common/src/lib/entity/shared/strategies/filter-custom-function.ts","../../../packages/common/src/lib/entity/shared/strategies/filter-selection.ts","../../../packages/common/src/lib/entity/entity-selector/entity-selector.component.html","../../../packages/common/src/lib/entity/entity-selector/entity-selector.component.ts","../../../packages/common/src/lib/stop-propagation/stop-propagation.directive.ts","../../../packages/common/src/lib/entity/entity-table-paginator/entity-table-paginator.component.ts","../../../packages/common/src/lib/entity/entity-table-paginator/entity-table-paginator.component.html","../../../packages/common/src/lib/image/image-error.directive.ts","../../../packages/common/src/lib/entity/entity-table/entity-table-row.directive.ts","../../../packages/common/src/lib/custom-html/custom-html.pipe.ts","../../../packages/common/src/lib/image/secure-image.pipe.ts","../../../packages/common/src/lib/entity/entity-table/entity-table.component.html","../../../packages/common/src/lib/entity/entity-table/entity-table.component.ts","../../../packages/common/src/lib/action/shared/action.enums.ts","../../../packages/common/src/lib/action/actionbar/actionbar-item.component.html","../../../packages/common/src/lib/action/actionbar/actionbar-item.component.ts","../../../packages/common/src/lib/action/actionbar/actionbar.component.html","../../../packages/common/src/lib/action/actionbar/actionbar.component.ts","../../../packages/common/src/lib/action/actionbar/actionbar.module.ts","../../../packages/common/src/lib/action/action.module.ts","../../../packages/common/src/lib/backdrop/backdrop.component.ts","../../../packages/common/src/lib/backdrop/backdrop.component.html","../../../packages/common/src/lib/backdrop/backdrop.module.ts","../../../packages/common/src/lib/badge-icon/badge-icon.directive.ts","../../../packages/common/src/lib/badge-icon/badge-icon.module.ts","../../../packages/common/src/lib/clickout/clickout.directive.ts","../../../packages/common/src/lib/clickout/clickout.module.ts","../../../packages/common/src/lib/clone/clone.pipe.ts","../../../packages/common/src/lib/clone/clone.module.ts","../../../packages/common/src/lib/collapsible/collapse.directive.ts","../../../packages/common/src/lib/collapsible/collapsible.component.ts","../../../packages/common/src/lib/collapsible/collapsible.component.html","../../../packages/common/src/lib/collapsible/collapsible.module.ts","../../../packages/common/src/lib/confirm-dialog/confirm-dialog.component.ts","../../../packages/common/src/lib/confirm-dialog/confirm-dialog.component.html","../../../packages/common/src/lib/confirm-dialog/confirm-dialog.service.ts","../../../packages/common/src/lib/confirm-dialog/confirm-dialog.module.ts","../../../packages/common/src/lib/context-menu/context-menu.directive.ts","../../../packages/common/src/lib/context-menu/long-press.directive.ts","../../../packages/common/src/lib/context-menu/context-menu.module.ts","../../../packages/common/src/lib/custom-html/custom-html.component.ts","../../../packages/common/src/lib/custom-html/custom-html.component.html","../../../packages/common/src/lib/custom-html/custom-html.module.ts","../../../packages/common/src/lib/dom/dom.service.ts","../../../packages/common/src/lib/dom/dom.module.ts","../../../packages/common/src/lib/drag-drop/drag-drop.directive.ts","../../../packages/common/src/lib/drag-drop/drag-drop.module.ts","../../../packages/common/src/lib/dynamic-component/shared/dynamic-component.ts","../../../packages/common/src/lib/dynamic-component/shared/dynamic-component.service.ts","../../../packages/common/src/lib/dynamic-component/dynamic-outlet/dynamic-outlet.component.ts","../../../packages/common/src/lib/dynamic-component/dynamic-outlet/dynamic-outlet.component.html","../../../packages/common/src/lib/dynamic-component/dynamic-outlet/dynamic-outlet.module.ts","../../../packages/common/src/lib/dynamic-component/dynamic-component.module.ts","../../../packages/common/src/lib/flexible/flexible.component.ts","../../../packages/common/src/lib/flexible/flexible.component.html","../../../packages/common/src/lib/flexible/flexible.module.ts","../../../packages/common/src/lib/form/shared/form.utils.ts","../../../packages/common/src/lib/form/form/form.component.ts","../../../packages/common/src/lib/form/form/form.component.html","../../../packages/common/src/lib/form/form/form.module.ts","../../../packages/common/src/lib/form/shared/form.service.ts","../../../packages/common/src/lib/form/shared/form-field.service.ts","../../../packages/common/src/lib/form/shared/form-field-component.ts","../../../packages/common/src/lib/form/form-field/form-field.component.html","../../../packages/common/src/lib/form/form-field/form-field.component.ts","../../../packages/common/src/lib/form/form-field/form-field-select.component.html","../../../packages/common/src/lib/form/form-field/form-field-select.component.ts","../../../packages/common/src/lib/form/form-field/form-field-text.component.html","../../../packages/common/src/lib/form/form-field/form-field-text.component.ts","../../../packages/common/src/lib/form/form-field/form-field-textarea.component.html","../../../packages/common/src/lib/form/form-field/form-field-textarea.component.ts","../../../packages/common/src/lib/form/form-field/form-field.module.ts","../../../packages/common/src/lib/form/form-group/form-group.component.html","../../../packages/common/src/lib/form/form-group/form-group.component.ts","../../../packages/common/src/lib/form/form-group/form-group.module.ts","../../../packages/common/src/lib/form/form.module.ts","../../../packages/common/src/lib/home-button/home-button.component.ts","../../../packages/common/src/lib/home-button/home-button.component.html","../../../packages/common/src/lib/home-button/home-button.module.ts","../../../packages/common/src/lib/entity/entity-selector/entity-selector.module.ts","../../../packages/common/src/lib/stop-propagation/stop-drop-propagation.directive.ts","../../../packages/common/src/lib/stop-propagation/stop-propagation.module.ts","../../../packages/common/src/lib/entity/entity-table-paginator/entity-table-paginator.module.ts","../../../packages/common/src/lib/image/image.module.ts","../../../packages/common/src/lib/entity/entity-table/entity-table.module.ts","../../../packages/common/src/lib/entity/entity.module.ts","../../../packages/common/src/lib/interactive-tour/interactive-tour.loader.ts","../../../packages/common/src/lib/interactive-tour/interactive-tour.service.ts","../../../packages/common/src/lib/tool/shared/toolbox.ts","../../../packages/common/src/lib/tool/shared/tool.service.ts","../../../packages/common/src/lib/interactive-tour/interactive-tour.component.html","../../../packages/common/src/lib/interactive-tour/interactive-tour.component.ts","../../../packages/common/src/lib/interactive-tour/interactive-tour.module.ts","../../../packages/common/src/lib/keyvalue/keyvalue.pipe.ts","../../../packages/common/src/lib/keyvalue/keyvalue.module.ts","../../../packages/common/src/lib/json-dialog/json-dialog.component.html","../../../packages/common/src/lib/json-dialog/json-dialog.component.ts","../../../packages/common/src/lib/json-dialog/json-dialog.service.ts","../../../packages/common/src/lib/json-dialog/json-dialog.module.ts","../../../packages/common/src/lib/list/list-item.directive.ts","../../../packages/common/src/lib/list/list.component.ts","../../../packages/common/src/lib/list/list.component.html","../../../packages/common/src/lib/list/list.module.ts","../../../packages/common/src/lib/panel/panel.component.html","../../../packages/common/src/lib/panel/panel.component.ts","../../../packages/common/src/lib/panel/panel.module.ts","../../../packages/common/src/lib/sidenav/sidenav-shim.directive.ts","../../../packages/common/src/lib/sidenav/sidenav.module.ts","../../../packages/common/src/lib/spinner/spinner.component.ts","../../../packages/common/src/lib/spinner/spinner.component.html","../../../packages/common/src/lib/spinner/spinner-activity.directive.ts","../../../packages/common/src/lib/spinner/spinner.module.ts","../../../packages/common/src/lib/table/table-datasource.ts","../../../packages/common/src/lib/table/table-action-color.enum.ts","../../../packages/common/src/lib/table/table.component.html","../../../packages/common/src/lib/table/table.component.ts","../../../packages/common/src/lib/table/table.module.ts","../../../packages/common/src/lib/action/shared/store.ts","../../../packages/common/src/lib/tool/shared/toolbox.enums.ts","../../../packages/common/src/lib/tool/toolbox/toolbox.animation.ts","../../../packages/common/src/lib/tool/toolbox/toolbox.component.html","../../../packages/common/src/lib/tool/toolbox/toolbox.component.ts","../../../packages/common/src/lib/tool/toolbox/toolbox.module.ts","../../../packages/common/src/lib/tool/tool.module.ts","../../../packages/common/src/lib/widget/widget-outlet/widget-outlet.component.html","../../../packages/common/src/lib/widget/widget-outlet/widget-outlet.component.ts","../../../packages/common/src/lib/widget/widget-outlet/widget-outlet.module.ts","../../../packages/common/src/lib/widget/shared/widget.service.ts","../../../packages/common/src/lib/widget/widget.module.ts","../../../packages/common/src/lib/workspace/workspace-selector/workspace-selector.component.ts","../../../packages/common/src/lib/workspace/workspace-selector/workspace-selector.component.html","../../../packages/common/src/lib/workspace/workspace-selector/workspace-selector.module.ts","../../../packages/common/src/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.component.html","../../../packages/common/src/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.component.ts","../../../packages/common/src/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.module.ts","../../../packages/common/src/lib/workspace/workspace.module.ts","../../../packages/common/src/lib/table/table-database.ts","../../../packages/common/src/lib/tool/shared/tool-component.ts","../../../packages/common/src/lib/widget/shared/widget.ts","../../../packages/common/src/lib/workspace/shared/store.ts","../../../packages/common/src/lib/workspace/shared/workspace.ts","../../../packages/common/src/public_api.ts","../../../packages/common/src/igo2-common.ts"],"sourcesContent":["export enum EntityOperationType {\n Insert = 'Insert',\n Update = 'Update',\n Delete = 'Delete'\n}\n\nexport enum EntityTableColumnRenderer {\n Default = 'Default',\n HTML = 'HTML',\n UnsanitizedHTML = 'UnsanitizedHTML',\n Editable = 'Editable',\n Icon = 'Icon',\n ButtonGroup = 'ButtonGroup'\n}\n\nexport enum EntityTableScrollBehavior {\n Auto = 'auto',\n Instant = 'instant',\n Smooth = 'smooth'\n}\n\nexport enum EntityTableSelectionState {\n None = 'None',\n All = 'All',\n Some = 'Some'\n}\n","import { t } from 'typy';\n\nimport { EntityKey } from './entity.interfaces';\n\n/**\n * Get an entity's named property. Nested properties are supported\n * with the dotted notation. (i.e 'author.name')\n *\n * Note: this method is a 'best attempt' at getting an entity's property.\n * It fits the most common cases but you might need to explicitely define\n * a property getter when using an EntityStore, for example.\n * @param entity Entity\n * @param property Property name\n * @returns Property value\n */\nexport function getEntityProperty(entity: object, property: string): any {\n return t(entity, property).safeObject;\n}\n\n/**\n * Get an entity's id. An entity's id can be one of:\n * 'entity.meta.id', 'entity.meta.idProperty' or 'entity.id'.\n *\n * Note: See the note in the 'getEntityProperty' documentation.\n * @param entity Entity\n * @returns Entity id\n */\nexport function getEntityId(entity: object): EntityKey {\n const meta = (entity as any).meta || {};\n return meta.id ? meta.id : getEntityProperty(entity, meta.idProperty || 'id');\n}\n\n/**\n * Get an entity's title. An entity's title can be one of:\n * 'entity.meta.title', 'entity.meta.titleProperty' or 'entity.title'.\n * @param entity Entity\n * @returns Entity title\n */\nexport function getEntityTitle(entity: object): string {\n const meta = (entity as any).meta || {};\n return meta.title ? meta.title : getEntityProperty(entity, meta.titleProperty || 'title');\n}\n\n/**\n * Get an entity's HTML title. An entity's HTML title can be one of:\n * 'entity.meta.titleHtml', 'entity.meta.titleHtmlProperty' or 'entity.titleHtml'.\n * @param entity Entity\n * @returns Entity HTML title\n */\nexport function getEntityTitleHtml(entity: object): string {\n const meta = (entity as any).meta || {};\n return meta.titleHtml ? meta.titleHtml : getEntityProperty(entity, meta.titleHtmlProperty || 'titleHtml');\n}\n\n/**\n * Get an entity's icon. An entity's icon can be one of:\n * 'entity.meta.icon', 'entity.meta.iconProperty' or 'entity.icon'.\n * @param entity Entity\n * @returns Entity icon\n */\nexport function getEntityIcon(entity: object): string {\n const meta = (entity as any).meta || {};\n return meta.icon ? meta.icon : getEntityProperty(entity, meta.iconProperty || 'icon');\n}\n\n/**\n * Get an entity's revision.\n * @param entity Entity\n * @returns Entity revision\n */\nexport function getEntityRevision(entity: object): number {\n const meta = (entity as any).meta || {};\n return meta.revision || 0;\n}\n","import { ReplaySubject } from 'rxjs';\n\nimport { EntityKey, EntityState, EntityStateManagerOptions } from './entity.interfaces';\nimport { getEntityId } from './entity.utils';\nimport { EntityStore } from './store';\n\n/**\n * This class is used to track a store's entities state\n */\nexport class EntityStateManager<E extends object, S extends EntityState = EntityState> {\n\n /**\n * State index\n */\n readonly index = new Map<EntityKey, S>();\n\n /**\n * Change emitter\n */\n readonly change$ = new ReplaySubject<void>(1);\n\n /**\n * Method to get an entity's id\n */\n readonly getKey: (E) => EntityKey;\n\n private store: EntityStore<object> | undefined;\n\n constructor(options: EntityStateManagerOptions = {}) {\n this.store = options.store ? options.store : undefined;\n this.getKey = options.getKey\n ? options.getKey\n : (this.store ? this.store.getKey : getEntityId);\n this.next();\n }\n\n /**\n * Clear state\n */\n clear() {\n if (this.index.size > 0) {\n this.index.clear();\n this.next();\n }\n }\n\n /**\n * Get an entity's state\n * @param entity Entity\n * @returns State\n */\n get(entity: E): S {\n return (this.index.get(this.getKey(entity)) || {}) as S;\n }\n\n /**\n * Set an entity's state\n * @param entity Entity\n * @param state State\n */\n set(entity: E, state: S) {\n this.setMany([entity], state);\n }\n\n /**\n * Set many entitie's state\n * @param entitie Entities\n * @param state State\n */\n setMany(entities: E[], state: S) {\n entities.forEach((entity: E) => {\n this.index.set(this.getKey(entity), Object.assign({}, state));\n });\n this.next();\n }\n\n /**\n * Set state of all entities that already have a state. This is not\n * the same as setting the state of all the store's entities.\n * @param state State\n */\n setAll(state: S) {\n Array.from(this.index.keys()).forEach((key: EntityKey) => {\n this.index.set(key, Object.assign({}, state));\n });\n this.next();\n }\n\n /**\n * Update an entity's state\n * @param entity Entity\n * @param changes State changes\n */\n update(entity: E, changes: Partial<S>, exclusive = false) {\n this.updateMany([entity], changes, exclusive);\n }\n\n /**\n * Update many entitie's state\n * @param entitie Entities\n * @param changes State changes\n */\n updateMany(entities: E[], changes: Partial<S>, exclusive = false) {\n if (exclusive === true) {\n return this.updateManyExclusive(entities, changes);\n }\n\n entities.forEach((entity: E) => {\n const state = Object.assign({}, this.get(entity), changes);\n this.index.set(this.getKey(entity), state);\n });\n this.next();\n }\n\n /**\n * Reversee an entity's state\n * @param entity Entity\n * @param keys State keys to reverse\n */\n reverse(entity: E, keys: string[]) {\n this.reverseMany([entity], keys);\n }\n\n /**\n * Reverse many entitie's state\n * @param entitie Entities\n * @param keys State keys to reverse\n */\n reverseMany(entities: E[], keys: string[]) {\n entities.forEach((entity: E) => {\n const currentState = this.get(entity);\n const changes = keys.reduce((acc: {[key: string]: boolean}, key: string) => {\n acc[key] = currentState[key] || false;\n return acc;\n }, {}) as Partial<S>;\n const reversedChanges = this.reverseChanges(changes);\n const state = Object.assign({}, currentState, reversedChanges);\n this.index.set(this.getKey(entity), state);\n });\n this.next();\n }\n\n /**\n * Update state of all entities that already have a state. This is not\n * the same as updating the state of all the store's entities.\n * @param changes State\n */\n updateAll(changes: Partial<S>) {\n const allKeys = this.getAllKeys();\n Array.from(allKeys).forEach((key: EntityKey) => {\n const state = Object.assign({}, this.index.get(key), changes);\n this.index.set(key, state);\n });\n this.next();\n }\n\n /**\n * When some state changes are flagged as 'exclusive', reverse\n * the state of all other entities. Changes are reversable when\n * they are boolean.\n * @param entitie Entities\n * @param changes State changes\n */\n private updateManyExclusive(entities: E[], changes: Partial<S>) {\n const reverseChanges = this.reverseChanges(changes);\n\n const keys = entities.map((entity: E) => this.getKey(entity));\n const allKeys = new Set(keys.concat(Array.from(this.getAllKeys())));\n allKeys.forEach((key: EntityKey) => {\n const state = this.index.get(key) || {} as S;\n\n if (keys.indexOf(key) >= 0) {\n this.index.set(key, Object.assign({}, state, changes));\n } else {\n // Update only if the reverse changes would modify\n // a key already present in the current state\n const shouldUpdate = Object.keys(reverseChanges).some((changeKey: string) => {\n return state[changeKey] !== undefined &&\n state[changeKey] !== reverseChanges[changeKey];\n });\n if (shouldUpdate === true) {\n this.index.set(key, Object.assign({}, state, reverseChanges));\n }\n }\n });\n\n this.next();\n }\n\n /**\n * Compute a 'reversed' version of some state changes.\n * Changes are reversable when they are boolean.\n * @param changes State changes\n * @returns Reversed state changes\n */\n private reverseChanges(changes: Partial<S>): Partial<S> {\n return Object.entries(changes).reduce((reverseChanges: Partial<S>, bunch: [string, any]) => {\n const [changeKey, value] = bunch;\n if (typeof value === typeof true) {\n (reverseChanges as object)[changeKey] = !value;\n }\n return reverseChanges;\n }, {});\n }\n\n /**\n * Return all the keys in that state and in the store it's bound to, if any.\n * @returns Set of keys\n */\n private getAllKeys(): Set<EntityKey> {\n const storeKeys = this.store ? Array.from(this.store.index.keys()) : [];\n return new Set(Array.from(this.index.keys()).concat(storeKeys));\n }\n\n /**\n * Emit 'change' event\n */\n private next() {\n this.change$.next();\n }\n\n}\n","import { BehaviorSubject, Observable, Subscription, combineLatest } from 'rxjs';\nimport { debounceTime, map, skip } from 'rxjs/operators';\n\nimport { ObjectUtils, uuid } from '@igo2/utils';\nimport {\n EntityKey,\n EntityFilterClause,\n EntitySortClause,\n EntityJoinClause\n} from './entity.interfaces';\n\n/**\n * An entity view streams entities from an observable source. These entities\n * can be filtered or sorted without affecting the source. A view can also\n * combine data from multiple sources, joined together.\n */\nexport class EntityView<E extends object, V extends object = E> {\n\n /**\n * Observable stream of values\n */\n readonly values$ = new BehaviorSubject<V[]>([]);\n\n /**\n * Subscription to the source (and joined sources) values\n */\n private values$$: Subscription;\n\n /**\n * Whether this view has been lifted\n */\n private lifted = false;\n\n /**\n * Join clauses\n */\n private joins: EntityJoinClause[] = [];\n\n /**\n * Observable of a filter clause\n */\n private filter$ = new BehaviorSubject(undefined);\n\n /**\n * Observable of filter clauses\n */\n private filters$: BehaviorSubject<EntityFilterClause[]> = new BehaviorSubject([]);\n\n /**\n * Filters index\n */\n private filterIndex: Map<string, EntityFilterClause> = new Map();\n\n /**\n * Observable of a sort clause\n */\n private sort$ = new BehaviorSubject(undefined);\n\n /**\n * Method for indexing\n */\n get getKey(): (V) => EntityKey { return this.getKey$.value; }\n private getKey$: BehaviorSubject<(V) => EntityKey> = new BehaviorSubject(undefined);\n\n /**\n * Number of entities\n */\n readonly count$ = new BehaviorSubject<number>(0);\n get count(): number { return this.count$.value; }\n\n /**\n * Whether the store is empty\n */\n readonly empty$ = new BehaviorSubject<boolean>(true);\n get empty(): boolean { return this.empty$.value; }\n\n /**\n * Store index\n */\n get index(): Map<EntityKey, V> { return this._index; }\n private _index: Map<EntityKey, V>;\n\n constructor(private source$: BehaviorSubject<E[]>) {}\n\n /**\n * Get a value from the view by key\n * @param key Key\n * @returns Value\n */\n get(key: EntityKey): V {\n if (this._index === undefined) {\n throw new Error('This view has no index, therefore, this method is unavailable.');\n }\n return this.index.get(key);\n }\n\n /**\n * Get all the values\n * @returns Array of values\n */\n all(): V[] {\n return this.values$.value;\n }\n\n /**\n * Observe all the values\n * @returns Observable of values\n */\n all$(): BehaviorSubject<V[]> {\n return this.values$;\n }\n\n /**\n * Get the first value that respects a criteria\n * @returns A value\n */\n firstBy(clause: EntityFilterClause<V>): V {\n return this.values$.value.find(clause);\n }\n\n /**\n * Observe the first value that respects a criteria\n * @returns Observable of a value\n */\n firstBy$(clause: EntityFilterClause<V>): Observable<V> {\n return this.values$.pipe(map((values: V[]) => values.find(clause)));\n }\n\n /**\n * Get all the values that respect a criteria\n * @returns Array of values\n */\n manyBy(clause: EntityFilterClause<V>): V[] {\n return this.values$.value.filter(clause);\n }\n\n /**\n * Observe all the values that respect a criteria\n * @returns Observable of values\n */\n manyBy$(clause: EntityFilterClause<V>): Observable<V[]> {\n return this.values$.pipe(map((values: V[]) => values.filter(clause)));\n }\n\n /**\n * Clear the filter and sort and unsubscribe from the source\n */\n clear() {\n this.filter(undefined);\n this.sort(undefined);\n }\n\n destroy() {\n if (this.values$$ !== undefined) {\n this.values$$.unsubscribe();\n }\n this.clear();\n }\n\n /**\n * Create an index\n * @param getKey Method to get a value's id\n * @returns The view\n */\n createIndex(getKey: (E) => EntityKey): EntityView<E, V> {\n this._index = new Map();\n this.getKey$.next(getKey);\n return this;\n }\n\n /**\n * Join another source to the stream (chainable)\n * @param clause Join clause\n * @returns The view\n */\n join(clause: EntityJoinClause): EntityView<E, V> {\n if (this.lifted === true) {\n throw new Error('This view has already been lifted, therefore, no join is allowed.');\n }\n this.joins.push(clause);\n return this;\n }\n\n /**\n * Filter values (chainable)\n * @param clause Filter clause\n * @returns The view\n */\n filter(clause: EntityFilterClause<V>): EntityView<E, V> {\n this.filter$.next(clause);\n return this;\n }\n\n /**\n * @param clause Filter clause\n * @returns The filter id\n */\n addFilter(clause: EntityFilterClause<V>): string {\n const id = uuid();\n this.filterIndex.set(id, clause);\n this.filters$.next(Array.from(this.filterIndex.values()));\n return id;\n }\n\n /**\n * Remove a filter by id\n * @param clause Filter clause\n */\n removeFilter(id: string) {\n this.filterIndex.delete(id);\n this.filters$.next(Array.from(this.filterIndex.values()));\n }\n\n /**\n * Sort values (chainable)\n * @param clauseSort clause\n * @returns The view\n */\n sort(clause: EntitySortClause<V>): EntityView<E, V> {\n this.sort$.next(clause);\n return this;\n }\n\n /**\n * Create the final observable\n * @returns Observable\n */\n lift() {\n this.lifted = true;\n const source$ = this.joins.length > 0 ? this.liftJoinedSource() : this.liftSource();\n const observables$ = [\n source$,\n this.filters$,\n this.filter$,\n this.sort$,\n this.getKey$\n ];\n\n this.values$$ = combineLatest(observables$)\n .pipe(skip(1), debounceTime(5))\n .subscribe((bunch: any[]) => {\n const [_values, filters, filter, sort, getKey] = bunch;\n const values = this.processValues(_values, filters, filter, sort);\n const generateIndex = getKey !== undefined;\n this.setValues(values, generateIndex);\n });\n }\n\n /**\n * Create the source observable when no joins are defined\n * @returns Observable\n */\n private liftSource(): Observable<V[]> {\n return this.source$ as any as Observable<V[]>;\n }\n\n /**\n * Create the source observable when joins are defined\n * @returns Observable\n */\n private liftJoinedSource(): Observable<V[]> {\n const sources$ = [this.source$, combineLatest(\n this.joins.map((join: EntityJoinClause) => join.source)\n )];\n\n return combineLatest(sources$)\n .pipe(\n map((bunch: [E[], any[]]) => {\n const [entities, joinData] = bunch;\n return entities.reduce((values: V[], entity: E) => {\n const value = this.computeJoinedValue(entity, joinData);\n if (value !== undefined) {\n values.push(value);\n }\n return values;\n }, []);\n })\n );\n }\n\n /**\n * Apply joins to a source's entity and return the final value\n * @returns Final value\n */\n private computeJoinedValue(entity: E, joinData: any[]): V | undefined {\n let value = entity as Partial<V>;\n let joinIndex = 0;\n while (value !== undefined && joinIndex < this.joins.length) {\n value = this.joins[joinIndex].reduce(value, joinData[joinIndex]);\n joinIndex += 1;\n }\n return value as V;\n }\n\n /**\n * Filter and sort values before streaming them\n * @param values Values\n * @param filters Filter clauses\n * @param filter Filter clause\n * @param sort Sort clause\n * @returns Filtered and sorted values\n */\n private processValues(\n values: V[], filters: EntityFilterClause[], filter: EntityFilterClause, sort: EntitySortClause\n ): V[] {\n values = values.slice(0);\n values = this.filterValues(values, filters.concat([filter]));\n values = this.sortValues(values, sort);\n return values;\n }\n\n /**\n * Filter values\n * @param values Values\n * @param filters Filter clauses\n * @returns Filtered values\n */\n private filterValues(values: V[], clauses: EntityFilterClause[]): V[] {\n if (clauses.length === 0) { return values; }\n\n return values\n .filter((value: V) => {\n return clauses\n .filter((clause: EntityFilterClause) => clause !== undefined)\n .every((clause: EntityFilterClause) => clause(value));\n });\n }\n\n /**\n * Sort values\n * @param values Values\n * @param sort Sort clause\n * @returns Sorted values\n */\n private sortValues(values: V[], clause: EntitySortClause): V[] {\n if (clause === undefined) { return values; }\n return values.sort((v1: V, v2: V) => {\n return ObjectUtils.naturalCompare(\n clause.valueAccessor(v1),\n clause.valueAccessor(v2),\n clause.direction,\n clause.nullsFirst\n );\n });\n }\n\n /**\n * Set value and optionally generate an index\n * @param values Values\n * @param generateIndex boolean\n */\n private setValues(values: V[], generateIndex: boolean) {\n if (generateIndex === true) {\n this._index = this.generateIndex(values);\n }\n\n this.values$.next(values);\n\n const count = values.length;\n const empty = count === 0;\n this.count$.next(count);\n this.empty$.next(empty);\n }\n\n /**\n * Generate a complete index of all the values\n * @param entities Entities\n * @returns Index\n */\n private generateIndex(values: V[]): Map<EntityKey, V> {\n const entries = values.map((value: V) => [this.getKey(value), value]);\n return new Map(entries as [EntityKey, V][]);\n }\n}\n","import { BehaviorSubject } from 'rxjs';\n\nimport { EntityStateManager } from './state';\nimport { EntityView } from './view';\nimport { EntityKey, EntityState, EntityRecord, EntityStoreOptions } from './entity.interfaces';\nimport { getEntityId, getEntityProperty } from './entity.utils';\nimport { EntityStoreStrategy } from './strategies/strategy';\n\n/**\n * An entity store class holds any number of entities\n * as well as their state. It can be observed, filtered and sorted and\n * provides methods to insert, update or delete entities.\n */\nexport class EntityStore<E extends object = object, S extends EntityState = EntityState> {\n\n /**\n * Observable of the raw entities\n */\n readonly entities$ = new BehaviorSubject<E[]>([]);\n\n /**\n * Number of entities\n */\n readonly count$ = new BehaviorSubject<number>(0);\n get count(): number { return this.count$.value; }\n\n /**\n * Whether the store is empty\n */\n readonly empty$ = new BehaviorSubject<boolean>(true);\n get empty(): boolean { return this.empty$.value; }\n\n /**\n * Entity store state\n */\n readonly state: EntityStateManager<E, S>;\n\n /**\n * View of all the entities\n */\n readonly view: EntityView<E>;\n\n /**\n * View of all the entities and their state\n */\n readonly stateView: EntityView<E, EntityRecord<E, S>>;\n\n /**\n * Method to get an entity's id\n */\n readonly getKey: (E) => EntityKey;\n\n /**\n * Method to get an entity's named property\n */\n readonly getProperty: (E, prop: string) => any;\n\n /**\n * Store index\n */\n get index(): Map<EntityKey, E> { return this._index; }\n private _index: Map<EntityKey, E>;\n\n /**\n * Store index\n */\n get pristine(): boolean { return this._pristine; }\n private _pristine: boolean = true;\n\n /**\n * Strategies\n */\n private strategies: EntityStoreStrategy[] = [];\n\n constructor(entities: E[], options: EntityStoreOptions = {}) {\n this.getKey = options.getKey ? options.getKey : getEntityId;\n this.getProperty = options.getProperty ? options.getProperty : getEntityProperty;\n\n this.state = this.createStateManager();\n this.view = this.createDataView();\n this.stateView = this.createStateView();\n\n this.view.lift();\n this.stateView.lift();\n\n if (entities.length > 0) {\n this.load(entities);\n } else {\n this._index = this.generateIndex(entities);\n }\n }\n\n /**\n * Get an entity from the store by key\n * @param key Key\n * @returns Entity\n */\n get(key: EntityKey): E {\n return this.index.get(key);\n }\n\n /**\n * Get all entities in the store\n * @returns Array of entities\n */\n all(): E[] {\n return this.entities$.value;\n }\n\n /**\n * Set this store's entities\n * @param entities Entities\n */\n load(entities: E[], pristine: boolean = true) {\n this._index = this.generateIndex(entities);\n this._pristine = pristine;\n this.next();\n }\n\n /**\n * Clear the store's entities but keep the state and views intact.\n * Views won't return any data but future data will be subject to the\n * current views filter and sort\n */\n softClear() {\n if (this.index && this.index.size > 0) {\n this.index.clear();\n this._pristine = true;\n this.next();\n } else if (this.index) {\n this.updateCount();\n }\n }\n\n /**\n * Clear the store's entities, state and views\n */\n clear() {\n this.stateView.clear();\n this.view.clear();\n this.state.clear();\n this.softClear();\n }\n\n destroy() {\n this.stateView.destroy();\n this.view.destroy();\n this.clear();\n }\n\n /**\n * Insert an entity into the store\n * @param entity Entity\n */\n insert(entity: E) {\n this.insertMany([entity]);\n }\n\n /**\n * Insert many entities into the store\n * @param entities Entities\n */\n insertMany(entities: E[]) {\n entities.forEach((entity: E) => this.index.set(this.getKey(entity), entity));\n this._pristine = false;\n this.next();\n }\n\n /**\n * Update or insert an entity into the store\n * @param entity Entity\n */\n update(entity: E) {\n this.updateMany([entity]);\n }\n\n /**\n * Update or insert many entities into the store\n * @param entities Entities\n */\n updateMany(entities: E[]) {\n entities.forEach((entity: E) => this.index.set(this.getKey(entity), entity));\n this._pristine = false;\n this.next();\n }\n\n /**\n * Delete an entity from the store\n * @param entity Entity\n */\n delete(entity: E) {\n this.deleteMany([entity]);\n }\n\n /**\n * Delete many entities from the store\n * @param entities Entities\n */\n deleteMany(entities: E[]) {\n entities.forEach((entity: E) => this.index.delete(this.getKey(entity)));\n this._pristine = false;\n this.next();\n }\n\n /**\n * Add a strategy to this store\n * @param strategy Entity store strategy\n * @returns Entity store\n */\n addStrategy(strategy: EntityStoreStrategy, activate: boolean = false): EntityStore {\n const existingStrategy = this.strategies.find((_strategy: EntityStoreStrategy) => {\n return strategy.constructor === _strategy.constructor;\n });\n if (existingStrategy !== undefined) {\n throw new Error('A strategy of this type already exists on that EntityStore.');\n }\n\n this.strategies.push(strategy);\n strategy.bindStore(this);\n\n if (activate === true) {\n strategy.activate();\n }\n\n return this;\n }\n\n /**\n * Remove a strategy from this store\n * @param strategy Entity store strategy\n * @returns Entity store\n */\n removeStrategy(strategy: EntityStoreStrategy): EntityStore {\n const index = this.strategies.indexOf(strategy);\n if (index >= 0) {\n this.strategies.splice(index, 1);\n strategy.unbindStore(this);\n }\n return this;\n }\n\n /**\n * Return strategies of a given type\n * @param type Entity store strategy class\n * @returns Strategies\n */\n getStrategyOfType(type: typeof EntityStoreStrategy): EntityStoreStrategy {\n return this.strategies.find((strategy: EntityStoreStrategy) => {\n return strategy instanceof type;\n });\n }\n\n /**\n * Activate strategies of a given type\n * @param type Entity store strategy class\n */\n activateStrategyOfType(type: typeof EntityStoreStrategy) {\n const strategy = this.getStrategyOfType(type);\n if (strategy !== undefined) {\n strategy.activate();\n }\n }\n\n /**\n * Deactivate strategies of a given type\n * @param type Entity store strategy class\n */\n deactivateStrategyOfType(type: typeof EntityStoreStrategy) {\n const strategy = this.getStrategyOfType(type);\n if (strategy !== undefined) {\n strategy.deactivate();\n }\n }\n\n /**\n * Generate a complete index of all the entities\n * @param entities Entities\n * @returns Index\n */\n private generateIndex(entities: E[]): Map<EntityKey, E> {\n const entries = entities.map((entity: E) => [this.getKey(entity), entity]);\n return new Map(entries as [EntityKey, E][]);\n }\n\n /**\n * Push the index's entities into the entities$ observable\n */\n private next() {\n this.entities$.next(Array.from(this.index.values()));\n this.updateCount();\n }\n\n /**\n * Update the store's count and empty\n */\n private updateCount() {\n const count = this.index.size;\n const empty = count === 0;\n this.count$.next(count);\n this.empty$.next(empty);\n }\n\n /**\n * Create the entity state manager\n * @returns EntityStateManager\n */\n private createStateManager() {\n return new EntityStateManager<E, S>({store: this});\n }\n\n /**\n * Create the data view\n * @returns EntityView<E>\n */\n private createDataView() {\n return new EntityView<E>(this.entities$);\n }\n\n /**\n * Create the state view\n * @returns EntityView<EntityRecord<E>>\n */\n private createStateView() {\n return new EntityView<E, EntityRecord<E, S>>(this.view.all$())\n .join({\n source: this.state.change$,\n reduce: (entity: E): EntityRecord<E, S> => {\n const key = this.getKey(entity);\n const state = this.state.get(entity);\n const currentRecord = this.stateView.get(key);\n\n if (\n currentRecord !== undefined &&\n currentRecord.entity === entity &&\n this.statesAreTheSame(currentRecord.state, state)\n ) {\n return currentRecord;\n }\n\n const revision = currentRecord ? currentRecord.revision + 1 : 1;\n const ref = `${key}-${revision}`;\n return {entity, state, revision, ref};\n }\n })\n .createIndex((record: EntityRecord<E, S>) => this.getKey(record.entity));\n }\n\n private statesAreTheSame(currentState: S, newState: S): boolean {\n if (currentState === newState) {\n return true;\n }\n\n const currentStateIsEmpty = Object.keys(currentState).length === 0;\n const newStateIsEmpty = Object.keys(newState).length === 0;\n return currentStateIsEmpty && newStateIsEmpty;\n }\n\n}\n","import { ChangeDetectorRef } from '@angular/core';\n\nimport { Subscription } from 'rxjs';\nimport { skip } from 'rxjs/operators';\n\nimport { ObjectUtils } from '@igo2/utils';\nimport { EntityKey } from './entity.interfaces';\n\nimport { EntityStore } from './store';\n\n/**\n * This class is used to synchronize a component's changes\n * detection with an EntityStore changes. For example, it is frequent\n * to have a component subscribe to a store's selected entity and, at the same time,\n * this component provides a way to select an entity with, let's say, a click.\n *\n * This class automatically handles those case and triggers the compoent's\n * change detection when needed.\n *\n * Note: If the component observes the store's stateView, a workspace is\n * probably not required because the stateView catches any changes to the\n * entities and their state.\n */\nexport class EntityStoreWatcher<E extends object> {\n\n /**\n * Component change detector\n */\n private cdRef: ChangeDetectorRef;\n\n /**\n * Entity store\n */\n private store: EntityStore<E>;\n\n /**\n * Component inner state\n */\n private innerStateIndex = new Map<EntityKey, {[key: string]: any}>();\n\n /**\n * Subscription to the store's entities\n */\n private entities$$: Subscription;\n\n /**\n * Subscription to the store's state\n */\n private state$$: Subscription;\n\n constructor(store?: EntityStore<E>, cdRef?: ChangeDetectorRef) {\n this.setChangeDetector(cdRef);\n this.setStore(store);\n }\n\n destroy() {\n this.setChangeDetector(undefined);\n this.setStore(undefined);\n }\n\n /**\n * Bind this workspace to a store and start watching for changes\n * @param store Entity store\n */\n setStore(store?: EntityStore<E>) {\n if (store === undefined) {\n this.teardownObservers();\n this.innerStateIndex.clear();\n this.store = undefined;\n return;\n }\n\n this.setStore(undefined);\n this.store = store;\n this.setupObservers();\n this.detectChanges();\n }\n\n /**\n * Bind this workspace to a component's change detector\n * @param cdRef Change detector\n */\n setChangeDetector(cdRef?: ChangeDetectorRef) {\n this.cdRef = cdRef;\n }\n\n /**\n * Set up observers on a store's entities and their state\n * @param store Entity store\n */\n private setupObservers() {\n this.teardownObservers();\n\n this.entities$$ = this.store.entities$\n .subscribe((entities: E[]) => this.onEntitiesChange(entities));\n\n this.state$$ = this.store.state.change$\n .pipe(skip(1))\n .subscribe(() => this.onStateChange());\n }\n\n /**\n * Teardown store observers\n */\n private teardownObservers() {\n if (this.entities$$ !== undefined) {\n this.entities$$.unsubscribe();\n }\n if (this.state$$ !== undefined) {\n this.state$$.unsubscribe();\n }\n this.entities$$ = undefined;\n this.state$$ = undefined;\n }\n\n /**\n * When the entities change, always trigger the changes detection\n */\n private onEntitiesChange(entities: E[]) {\n this.detectChanges();\n }\n\n /**\n * When the entities state change, trigger the change detection\n * only if the component has not handled these changes yet. For example,\n * the component might have initiated thoses changes itself.\n */\n private onStateChange() {\n let changesDetected = false;\n const storeIndex = this.store.state.index;\n const innerIndex = this.innerStateIndex;\n\n if (storeIndex.size !== innerIndex.size) {\n changesDetected = this.detectChanges();\n }\n\n const storeKeys = Array.from(storeIndex.keys());\n for (const key of storeKeys) {\n const storeValue = storeIndex.get(key);\n const innerValue = innerIndex.get(key);\n if (changesDetected === false) {\n if (innerValue === undefined) {\n changesDetected = this.detectChanges();\n } else if (!ObjectUtils.objectsAreEquivalent(storeValue, innerValue)) {\n changesDetected = this.detectChanges();\n }\n }\n\n this.innerStateIndex.set(key, Object.assign({}, storeValue));\n }\n }\n\n /**\n * Trigger the change detection of the workspace is bound to a change detector\n */\n private detectChanges() {\n if (this.cdRef !== undefined) {\n this.cdRef.detectChanges();\n }\n return true;\n }\n\n}\n","import { Observable, of } from 'rxjs';\nimport { catchError, tap } from 'rxjs/operators';\n\nimport { BehaviorSubject } from 'rxjs';\n\nimport {\n EntityKey,\n EntityTransactionOptions,\n EntityOperation,\n EntityOperationState\n} from './entity.interfaces';\nimport { EntityStore } from './store';\nimport { EntityOperationType } from './entity.enums';\nimport { getEntityId } from './entity.utils';\n\nexport type EntityTransactionCommitHandler = (\n transaction: EntityTransaction,\n operations: EntityOperation[]\n) => Observable<any>;\n\n/**\n * This class holds a reference to the insert, update and delete\n * operations performed on a store. This is useful to commit\n * these operations in a single pass or to cancel them.\n */\nexport class EntityTransaction {\n\n /**\n * Store holding the operations on another store\n */\n readonly operations: EntityStore<EntityOperation, EntityOperationState>;\n\n /**\n * Method to get an entity's id\n */\n readonly getKey: (E) => EntityKey;\n\n /**\n * Whether there are pending operations\n */\n get empty$(): BehaviorSubject<boolean> { return this.operations.empty$; }\n\n /**\n * Whether there are pending operations\n */\n get empty(): boolean { return this.empty$.value; }\n\n /**\n * Whether thise store is in commit phase\n */\n get inCommitPhase(): boolean { return this.inCommitPhase$.value; }\n readonly inCommitPhase$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n\n constructor(options: EntityTransactionOptions = {}) {\n this.getKey = options.getKey ? options.getKey : getEntityId;\n this.operations = new EntityStore<EntityOperation, EntityOperationState>([], {\n getKey: (operation: EntityOperation) => operation.key\n });\n }\n\n destroy() {\n this.operations.destroy();\n }\n\n /**\n * Insert an entity into a store. If no store is specified, an insert\n * operation is still created but the transaction won't add the new\n * entity to the store.\n * @param current The entity to insert\n * @param store Optional: The store to insert the entity into\n * @param meta Optional: Any metadata on the operation\n */\n insert(current: object, store?: EntityStore<object>, meta?: {[key: string]: any}) {\n const existingOperation = this.getOperationByEntity(current);\n if (existingOperation !== undefined) {\n this.removeOperation(existingOperation);\n }\n\n this.doInsert(current, store, meta);\n }\n\n /**\n * Update an entity in a store. If no store is specified, an update\n * operation is still created but the transaction won't update the\n * entity into the store.\n * @param previous The entity before update\n * @param current The entity after update\n * @param store Optional: The store to update the entity into\n * @param meta Optional: Any metadata on the operation\n */\n update(previous: object, current: object, store?: EntityStore<object>, meta?: {[key: string]: any}) {\n const existingOperation = this.getOperationByEntity(current);\n if (existingOperation !== undefined) {\n this.removeOperation(existingOperation);\n if (existingOperation.type === EntityOperationType.Insert) {\n this.doInsert(current, store, meta);\n return;\n } else if (existingOperation.type === EntityOperationType.Update) {\n previous = existingOperation.previous;\n }\n }\n\n this.doUpdate(previous, current, store, meta);\n }\n\n /**\n * Delete an entity from a store. If no store is specified, a delete\n * operation is still created but the transaction won't remove the\n * entity from the store.\n * @param previous The entity before delete\n * @param store Optional: The store to delete the entity from\n * @param meta Optional: Any metadata on the operation\n */\n delete(previous: object, store?: EntityStore<object>, meta?: {[key: string]: any}) {\n const existingOperation = this.getOperationByEntity(previous);\n if (existingOperation !== undefined) {\n this.removeOperation(existingOperation);\n if (existingOperation.type === EntityOperationType.Insert) {\n if (store !== undefined) {\n store.delete(previous);\n }\n return;\n }\n }\n\n this.doDelete(previous, store, meta);\n }\n\n /**\n * Commit operations the transaction. This method doesn't do much\n * in itself. The handler it receives does the hard work and it's\n * implementation is left to the caller. This method simply wraps\n * the handler into an error catching mechanism to update\n * the transaction afterward. The caller needs to subscribe to this\n * method's output (observable) for the commit to be performed.\n * @param operations Operations to commit\n * @param handler Function that handles the commit operation\n * @returns The handler output (observable)\n */\n commit(operations: EntityOperation[], handler: EntityTransactionCommitHandler): Observable<any> {\n this.inCommitPhase$.next(true);\n\n return handler(this, operations)\n .pipe(\n catchError(() => of(new Error())),\n tap((result: any) => {\n if (result instanceof Error) {\n this.onCommitError(operations);\n } else {\n this.onCommitSuccess(operations);\n }\n })\n );\n }\n\n /**\n * Commit all the operations of the transaction.\n * @param handler Function that handles the commit operation\n * @returns The handler output (observable)\n */\n commitAll(handler: EntityTransactionCommitHandler): Observable<any> {\n const operations = this.getOperationsInCommit();\n return this.commit(operations, handler);\n }\n\n /**\n * Rollback this transaction\n */\n rollback() {\n this.rollbackOperations(this.operations.all());\n }\n\n /**\n * Rollback specific operations\n */\n rollbackOperations(operations: EntityOperation[]) {\n this.checkInCommitPhase();\n\n const operationsFactory = () => new Map([\n [EntityOperationType.Delete, []],\n [EntityOperationType.Update, []],\n [EntityOperationType.Insert, []]\n ]);\n const storesOperations = new Map();\n\n // Group operations by store and by operation type.\n // Grouping operations allows us to revert them in bacth, thus, triggering\n // observables only one per operation type.\n for (const operation of operations) {\n const store = operation.store;\n if (operation.store === undefined) { continue; }\n\n let storeOperations = storesOperations.get(store);\n if (storeOperations === undefined) {\n storeOperations = operationsFactory();\n storesOperations.set(store, storeOperations);\n }\n storeOperations.get(operation.type).push(operation);\n }\n\n Array.from(storesOperations.keys()).forEach((store: EntityStore<object>) => {\n const storeOperations = storesOperations.get(store);\n\n const deletes = storeOperations.get(EntityOperationType.Delete);\n store.insertMany(deletes.map((_delete: EntityOperation) => _delete.previous));\n\n const updates = storeOperations.get(EntityOperationType.Update);\n store.updateMany(updates.map((_update: EntityOperation) => _update.previous));\n\n const inserts = storeOperations.get(EntityOperationType.Insert);\n store.deleteMany(inserts.map((_insert: EntityOperation) => _insert.current));\n });\n\n this.operations.deleteMany(operations);\n this.inCommitPhase$.next(false);\n }\n\n /**\n * Clear this transaction\n * @todo Raise event and synchronize stores?\n */\n clear() {\n this.operations.clear();\n this.inCommitPhase$.next(false);\n }\n\n /**\n * Get any existing operation on an entity\n * @param entity Entity\n * @returns Either an insert, update or delete operation\n */\n getOperationByEntity(entity: object): EntityOperation {\n return this.operations.get(this.getKey(entity));\n }\n\n /**\n * Merge another transaction in this one\n * @param transaction Another transaction\n */\n mergeTransaction(transaction: EntityTransaction) {\n this.checkInCommitPhase();\n\n const operations = transaction.operations.all();\n operations.forEach((operation: EntityOperation) => {\n this.addOperation(operation);\n });\n }\n\n /**\n * Create an insert operation and add an entity to the store\n * @param current The entity to insert\n * @param store Optional: The store to insert the entity into\n * @param meta Optional: Any metadata on the operation\n */\n private doInsert(current: object, store?: EntityStore<object>, meta?: {[key: string]: any}) {\n this.addOperation({\n key: this.getKey(current),\n type: EntityOperationType.Insert,\n previous: undefined,\n current,\n store,\n meta\n });\n\n if (store !== undefined) {\n store.insert(current);\n }\n }\n\n /**\n * Create an update operation and update an entity into the store\n * @param previous The entity before update\n * @param current The entity after update\n * @param store Optional: The store to update the entity into\n * @param meta Optional: Any metadata on the operation\n */\n private doUpdate(previous: object, current: object, store?: EntityStore<object>, meta?: {[key: string]: any}) {\n this.addOperation({\n key: this.getKey(current),\n type: EntityOperationType.Update,\n previous,\n current,\n store,\n meta\n });\n\n if (store !== undefined) {\n store.update(current);\n }\n }\n\n /**\n * Create a delete operation and delete an entity from the store\n * @param previous The entity before delete\n * @param store Optional: The store to delete the entity from\n * @param meta Optional: Any metadata on the operation\n */\n private doDelete(previous: object, store?: EntityStore<object>, meta?: {[key: string]: any}) {\n this.addOperation({\n key: this.getKey(previous),\n type: EntityOperationType.Delete,\n previous,\n current: undefined,\n store,\n meta\n });\n\n if (store !== undefined) {\n store.delete(previous);\n }\n }\n\n /**\n * Remove committed operations from store\n * @param operations Commited operations\n * @todo Raise event and synchronize stores?\n */\n private resolveOperations(operations: EntityOperation[]) {\n this.operations.deleteMany(operations);\n }\n\n /**\n * On commit success, resolve commited operations and exit commit phase\n * @param operations Commited operations\n */\n private onCommitSuccess(operations: EntityOperation[]) {\n this.resolveOperations(operations);\n this.inCommitPhase$.next(false);\n }\n\n /**\n * On commit error, abort transaction\n * @param operations Commited operations\n */\n private onCommitError(operations: EntityOperation[]) {\n this.inCommitPhase$.next(false);\n }\n\n /**\n * Add an operation to the operations store\n * @param operation Operation to add\n */\n private addOperation(operation: EntityOperation) {\n this.checkInCommitPhase();\n\n this.operations.insert(operation);\n this.operations.state.update(operation, {added: true});\n }\n\n /**\n * Remove an operation from the operations store\n * @param operation Operation to remove\n */\n private removeOperation(operation: EntityOperation) {\n this.checkInCommitPhase();\n\n this.operations.delete(operation);\n this.operations.state.update(operation, {added: false});\n }\n\n /**\n * Get all the operations to commit\n * @returns Operations to commit\n */\n private getOperationsInCommit(): EntityOperation[] {\n return this.operations.stateView\n .manyBy((value: {entity: EntityOperation, state: EntityOperationState}) => {\n return value.state.added === true;\n })\n .map((value: {entity: EntityOperation, state: EntityOperationState}) => value.entity);\n }\n\n /**\n * Check if the transaction is in the commit phase and throw an error if it is\n */\n private checkInCommitPhase() {\n if (this.inCommitPhase === true) {\n throw new Error('This transaction is in the commit phase. Cannot complete this operation.');\n }\n }\n}\n","import { BehaviorSubject } from 'rxjs';\n\nimport { EntityStoreStrategyOptions } from '../entity.interfaces';\nimport { EntityStore } from '../store';\n\n/**\n * Entity store strategies. They can do pretty much anything during a store's\n * lifetime. For example, they may act as triggers when something happens.\n * Sharing a strategy is a good idea when multiple strategies would have\n * on cancelling effect on each other.\n *\n * At creation, strategy is inactive and needs to be manually activated.\n */\nexport class EntityStoreStrategy {\n\n /**\n * Feature store\n * @internal\n */\n protected stores: EntityStore[] = [];\n\n /**\n * Whether this strategy is active\n * @internal\n */\n get active(): boolean { return this.active$.value; }\n readonly active$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n\n constructor(protected options: EntityStoreStrategyOptions = {}) {\n this.options = options;\n }\n\n /**\n * Activate the strategy. If it's already active, it'll be deactivated\n * and activated again.\n */\n activate() {\n if (this.active === true) {\n this.doDeactivate();\n }\n this.active$.next(true);\n this.doActivate();\n }\n\n /**\n * Activate the strategy. If it's already active, it'll be deactivated\n * and activated again.\n */\n deactivate() {\n this.active$.next(false);\n this.doDeactivate();\n }\n\n /**\n * Bind this strategy to a store\n * @param store Feature store\n */\n bindStore(store: EntityStore) {\n if (this.stores.indexOf(store) < 0) {\n this.stores.push(store);\n }\n }\n\n /**\n * Unbind this strategy from store\n * @param store Feature store\n */\n unbindStore(store: EntityStore) {\n const index = this.stores.indexOf(store);\n if (index >= 0) {\n this.stores.splice(index, 1);\n }\n }\n\n /**\n * Do the stataegy activation\n * @internal\n */\n protected doActivate() {}\n\n /**\n * Do the strategy deactivation\n * @internal\n */\n protected doDeactivate() {}\n\n}\n","import { EntityStoreStrategyFuncOptions } from '../entity.interfaces';\nimport { EntityStore } from '../store';\nimport { EntityStoreStrategy } from './strategy';\n\n/**\n * When active, this strategy filters a store's stateView to return\n * selected entities only.\n */\nexport class EntityStoreFilterCustomFuncStrategy extends EntityStoreStrategy {\n\n constructor(protected options: EntityStoreStrategyFuncOptions) {\n super(options);\n }\n\n /**\n * Store / filter ids map\n */\n private filters: Map<EntityStore, string> = new Map();\n\n /**\n * Bind this strategy to a store and start filtering it\n * @param store Entity store\n */\n bindStore(store: EntityStore) {\n super.bindStore(store);\n if (this.active === true) {\n this.filterStore(store);\n }\n }\n\n /**\n * Unbind this strategy from a store and stop filtering it\n * @param store Entity store\n */\n unbindStore(store: EntityStore) {\n super.unbindStore(store);\n if (this.active === true) {\n this.unfilterStore(store);\n }\n }\n\n /**\n * Start filtering all stores\n * @internal\n */\n protected doActivate() {\n this.filterAll();\n }\n\n /**\n * Stop filtering all stores\n * @internal\n */\n protected doDeactivate() {\n this.unfilterAll();\n }\n\n /**\n * Filter all stores\n */\n private filterAll() {\n this.stores.forEach((store: EntityStore) => this.filterStore(store));\n }\n\n /**\n * Unfilter all stores\n */\n private unfilterAll() {\n this.stores.forEach((store: EntityStore) => this.unfilterStore(store));\n }\n\n /**\n * Filter a store and add it to the filters map\n */\n private filterStore(store: EntityStore) {\n this.filters.set(store, store.stateView.addFilter(this.options.filterClauseFunc));\n }\n\n /**\n * Unfilter a store and delete it from the filters map\n */\n private unfilterStore(store: EntityStore) {\n const filterId = this.filters.get(store);\n if (filterId === undefined) {\n return;\n }\n\n store.stateView.removeFilter(filterId);\n this.filters.delete(store);\n }\n}\n","import { EntityRecord } from '../entity.interfaces';\nimport { EntityStore } from '../store';\nimport { EntityStoreStrategy } from './strategy';\n\n/**\n * When active, this strategy filters a store's stateView to return\n * selected entities only.\n */\nexport class EntityStoreFilterSelectionStrategy extends EntityStoreStrategy {\n\n /**\n * Store / filter ids map\n */\n private filters: Map<EntityStore, string> = new Map();\n\n /**\n * Bind this strategy to a store and start filtering it\n * @param store Entity store\n */\n bindStore(store: EntityStore) {\n super.bindStore(store);\n if (this.active === true) {\n this.filterStore(store);\n }\n }\n\n /**\n * Unbind this strategy from a store and stop filtering it\n * @param store Entity store\n */\n unbindStore(store: EntityStore) {\n super.unbindStore(store);\n if (this.active === true) {\n this.unfilterStore(store);\n }\n }\n\n /**\n * Start filtering all stores\n * @internal\n */\n protected doActivate() {\n this.filterAll();\n }\n\n /**\n * Stop filtering all stores\n * @internal\n */\n protected doDeactivate() {\n this.unfilterAll();\n }\n\n /**\n * Filter all stores\n */\n private filterAll() {\n this.stores.forEach((store: EntityStore) => this.filterStore(store));\n }\n\n /**\n * Unfilter all stores\n */\n private unfilterAll() {\n this.stores.forEach((store: EntityStore) => this.unfilterStore(store));\n }\n\n /**\n * Filter a store and add it to the filters map\n */\n private filterStore(store: EntityStore) {\n if (this.filters.has(store)) {\n return;\n }\n\n const filter = (record: EntityRecord<object>) => {\n return record.state.selected === true;\n };\n this.filters.set(store, store.stateView.addFilter(filter));\n }\n\n /**\n * Unfilter a store and delete it from the filters map\n */\n private unfilterStore(store: EntityStore) {\n const filterId = this.filters.get(store);\n if (filterId === undefined) {\n return;\n }\n\n store.stateView.removeFilter(filterId);\n this.filters.delete(store);\n }\n}\n","<mat-form-field class=\"igo-entity-selector\">\n <mat-select\n [disabled]=\"disabled\"\n [value]=\"selected$ | async\"\n [multiple]=\"multi\"\n [placeholder]=\"placeholder\"\n (selectionChange)=\"onSelectionChange($event)\">\n <mat-option *ngIf=\"emptyText !== undefined && multi === false\" [value]=\"emptyValue\">{{emptyText}}</mat-option>\n <mat-option *ngIf=\"multi === true\" [value]=\"multiSelectValue\">{{multiText$ | async}}</mat-option>\n <ng-template ngFor let-record [ngForOf]=\"store.stateView.all$() | async\">\n <mat-option [value]=\"record.entity\">\n {{titleAccessor(record.entity)}}\n </mat-option>\n </ng-template>\n </mat-select>\n</mat-form-field>\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n OnInit,\n OnDestroy\n} from '@angular/core';\n\nimport { BehaviorSubject, Subscription } from 'rxjs';\n\nimport { EntityRecord } from '../shared/entity.interfaces';\nimport { EntityStore } from '../shared/store';\nimport { EntityStoreWatcher } from '../shared/watcher';\nimport { getEntityTitle } from '../shared/entity.utils';\n\n@Component({\n selector: 'igo-entity-selector',\n templateUrl: './entity-selector.component.html',\n styleUrls: ['./entity-selector.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EntitySelectorComponent implements OnInit, OnDestroy {\n\n /**\n * The selected entity\n * @internal\n */\n readonly selected$ = new BehaviorSubject<object>(undefined);\n\n /**\n * The current multi select option text\n * @internal\n */\n readonly multiText$ = new BehaviorSubject<string>(undefined);\n\n readonly multiSelectValue = {id: 'IGO_MULTI_SELECT'};\n\n readonly emptyValue = {id: 'IGO_EMPTY_SELECT'};\n\n /**\n * Subscription to the selected entity\n */\n private selected$$: Subscription;\n\n /**\n * Store watcher\n */\n private watcher: EntityStoreWatcher<object>;\n\n /**\n * Entity store\n */\n @Input() store: EntityStore<object>;\n\n /**\n * Title accessor\n */\n @Input() titleAccessor: (object) => string = getEntityTitle;\n\n /**\n * Text to display when nothing is selected\n */\n @Input() emptyText: string = undefined;\n\n /**\n * Wheter selecting many entities is allowed\n */\n @Input() multi: boolean = false;\n\n /**\n * Text to display for the select all option\n */\n @Input() multiAllText: string = 'All';\n\n /**\n * Text to display for the select none option\n */\n @Input() multiNoneText: string = 'None';\n\n /**\n * Field placeholder\n */\n @Input() placeholder: string;\n\n /**\n * Wheter the selector is disabled or not\n */\n @Input() disabled: boolean = false;\n\n /**\n * Event emitted when the selection changes\n */\n @Output() selectedChange = new EventEmitter<{\n selected: boolean;\n value: object | object[];\n }>();\n\n constructor(private cdRef: ChangeDetectorRef) {}\n\n /**\n * Create a store watcher and subscribe to the selected entity\n * @internal\n */\n ngOnInit() {\n this.watcher = new EntityStoreWatcher(this.store, this.cdRef);\n\n this.selected$$ = this.store.stateView\n .manyBy$((record: EntityRecord<object>) => record.state.selected === true)\n .subscribe((records: EntityRecord<object>[]) => {\n const entities = records.map((record: EntityRecord<object>) => record.entity);\n this.onSelectFromStore(entities);\n });\n }\n\n /**\n * Unsubscribe to the selected entity and destroy the store watcher\n * @internal\n */\n ngOnDestroy() {\n this.watcher.destroy();\n this.selected$$.unsubscribe();\n }\n\n /**\n * On selection change, update the store's state and emit an event\n * @internal\n */\n onSelectionChange(event: {value: object | undefined}) {\n const values = event.value instanceof Array ? event.value : [event.value];\n\n const multiSelect = values.find((_value: object) => _value === this.multiSelectValue);\n let entities = values.filter((_value: object) => _value !== this.multiSelectValue);\n if (multiSelect !== undefined) {\n if (entities.length === this.store.count) {\n entities = [];\n } else if (entities.length < this.store.count) {\n entities = this.store.all();\n }\n }\n\n entities = entities.filter((entity: object) => entity !== this.emptyValue);\n if (entities.length === 0) {\n this.store.state.updateAll({selected: false});\n } else {\n this.store.state.updateMany(entities, {selected: true}, true);\n }\n\n const value = this.multi ? entities : event.value;\n this.selectedChange.emit({selected: true, value});\n }\n\n private onSelectFromStore(entities: object[]) {\n if (this.multi === true) {\n this.selected$.next(entities);\n } else {\n const entity = entities.length > 0 ? entities[0] : undefined;\n this.selected$.next(entity);\n }\n\n this.updateMultiToggleWithEntities(entities);\n }\n\n private updateMultiToggleWithEntities(entities: object[]) {\n if (entities.length === this.store.count && this.multiText$.value !== this.multiNoneText) {\n this.multiText$.next(this.multiNoneText);\n } else if (entities.length < this.store.count && this.multiText$.value !== this.multiAllText) {\n this.multiText$.next(this.multiAllText);\n }\n }\n\n}\n","import { Directive, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[igoStopPropagation]'\n})\nexport class StopPropagationDirective {\n @HostListener('click', ['$event'])\n public onClick(event: any): void {\n event.stopPropagation();\n }\n}\n","import {\n Component,\n Input,\n ChangeDetectionStrategy,\n OnChanges,\n ViewChild,\n Output,\n EventEmitter,\n OnDestroy\n} from '@angular/core';\n\nimport {\n EntityStore\n} from '../shared';\nimport { MatPaginator, PageEvent } from '@angular/material/paginator';\nimport { BehaviorSubject, Subscription } from 'rxjs';\nimport { LanguageService, MediaService } from '@igo2/core';\nimport { EntityTablePaginatorOptions } from './entity-table-paginator.interface';\n\n@Component({\n selector: 'igo-entity-table-paginator',\n templateUrl: './entity-table-paginator.component.html',\n styleUrls: ['./entity-table-paginator.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EntityTablePaginatorComponent implements OnChanges, OnDestroy {\n\n public disabled: boolean = false;\n public hidePageSize: boolean = false;\n public pageIndex: number = 0;\n public pageSize: number = 50;\n public pageSizeOptions: number[] = [5, 10, 20, 50, 100, 200];\n public showFirstLastButtons: boolean = true;\n private count$$: Subscription;\n private entitySortChange$$: Subscription;\n private paginationLabelTranslation$$: Subscription[] = [];\n\n @Input() entitySortChange$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n /**\n * Entity store\n */\n @Input() store: EntityStore<object>;\n\n /**\n * Paginator options\n */\n @Input()\n paginatorOptions: EntityTablePaginatorOptions;\n\n /**\n * Event emitted when the paginator changes the page size or page index.\n */\n @Output() page: EventEmitter<PageEvent>;\n\n public length: number = 0;\n\n /**\n * Paginator emitted.\n */\n @Output() paginatorChange: EventEmitter<MatPaginator> = new EventEmitter<MatPaginator>();\n\n constructor(private languageService: LanguageService, private mediaService: MediaService) {}\n\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\n\n ngOnChanges() {\n this.unsubscribeAll();\n this.count$$ = this.store.stateView.count$.subscribe((count) => {\n this.length = count;\n this.emitPaginator();\n });\n this.entitySortChange$$ = this.entitySortChange$.subscribe(() => {\n if (this.paginator) {\n this.paginator.firstPage();\n }\n });\n this.initPaginatorOptions();\n this.translateLabels();\n }\n\n initPaginatorOptions() {\n this.disabled = this.paginatorOptions?.disabled || this.disabled;\n this.pageIndex = this.paginatorOptions?.pageIndex || this.pageIndex;\n this.pageSize = this.paginatorOptions?.pageSize || this.pageSize;\n this.pageSizeOptions = this.paginatorOptions?.pageSizeOptions || this.pageSizeOptions;\n if (this.mediaService.isMobile()) {\n this.showFirstLastButtons = false;\n this.hidePageSize = true;\n } else {\n this.showFirstLastButtons = this.paginatorOptions?.showFirstLastButtons || this.showFirstLastButtons;\n this.hidePageSize = this.paginatorOptions?.hidePageSize || this.hidePageSize;\n }\n }\n\n translateLabels() {\n\n this.paginationLabelTranslation$$.push(\n this.languageService.translate.get('igo.common.paginator.firstPageLabel').subscribe((label: string) => {\n this.paginator._intl.firstPageLabel = label;\n }));\n\n this.paginator._intl.getRangeLabel = this.rangeLabel;\n\n this.paginationLabelTranslation$$.push(\n this.languageService.translate.get('igo.common.paginator.itemsPerPageLabel').subscribe((label: string) => {\n this.paginator._intl.itemsPerPageLabel = label;\n }));\n this.paginationLabelTranslation$$.push(\n this.languageService.translate.get('igo.common.paginator.lastPageLabel').subscribe((label: string) => {\n this.paginator._intl.lastPageLabel = label;\n }));\n this.paginationLabelTranslation$$.push(\n this.languageService.translate.get('igo.common.paginator.nextPageLabel').subscribe((label: string) => {\n this.paginator._intl.nextPageLabel = label;\n }));\n this.paginationLabelTranslation$$.push(\n this.languageService.translate.get('igo.common.paginator.previousPageLabel').subscribe((label: string) => {\n this.paginator._intl.previousPageLabel = label;\n }));\n }\n\n rangeLabel = (page: number, pageSize: number, length: number) => {\n const of: BehaviorSubject<string> = new BehaviorSubject('');\n\n this.paginationLabelTranslation$$.push(\n this.languageService.translate.get('igo.common.paginator.of').subscribe((label: string) => {\n of.next(label);\n }));\n if (length === 0 || pageSize === 0) { return `0 ${of.value} ${length}`; }\n length = Math.max(length, 0);\n const startIndex = page * pageSize;\n const endIndex = startIndex < length ?\n Math.min(startIndex + pageSize, length) :\n startIndex + pageSize;\n return `${startIndex + 1} - ${endIndex} ${of.value} ${length}`;\n };\n\n private unsubscribeAll() {\n this.paginationLabelTranslation$$.map(sub => sub.unsubscribe());\n if (this.count$$) { this.count$$.unsubscribe(); }\n if (this.entitySortChange$$) { this.entitySortChange$$.unsubscribe(); }\n }\n\n ngOnDestroy(): void {\n this.unsubscribeAll();\n }\n\n emitPaginator() {\n this.paginatorChange.emit(this.paginator);\n }\n}\n","<mat-paginator \n [disabled]=\"disabled\"\n [hidePageSize]=\"hidePageSize\"\n [length]=\"length\"\n [pageIndex]=\"pageIndex\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n [showFirstLastButtons]=\"showFirstLastButtons\"\n (page)=\"emitPaginator()\">\n</mat-paginator>\n","import {\n Directive,\n HostListener,\n Input,\n ElementRef\n} from '@angular/core';\n\n@Directive({\n selector: '[igoImageError]'\n})\nexport class ImageErrorDirective {\n\n @Input() errorImageUrl: string = './assets/igo2/common/images/na.png';\n @Input() hideError: boolean = false;\n\n constructor(private el: ElementRef) {}\n\n @HostListener(\"error\", ['$event'])\n public onError(event: any): void {\n if (this.hideError) {\n this.el.nativeElement.style.display = \"none\";\n } else {\n event.target.src = this.errorImageUrl;\n }\n\n }\n\n}\n","import {\n Directive,\n Input,\n ElementRef,\n Renderer2,\n EventEmitter,\n Output,\n HostListener\n} from '@angular/core';\n\nimport scrollIntoView from 'scroll-into-view-if-needed';\n\nimport { EntityTableScrollBehavior } from '../shared/entity.enums';\n\n/**\n * Directive that handles an entity table row click and selection.\n */\n@Directive({\n selector: '[igoEntityTableRow]'\n})\nexport class EntityTableRowDirective {\n\n /**\n * Class added to a selected row\n */\n static selectedCls = 'igo-entity-table-row-selected';\n\n /**\n * Class added to a highlighted row\n */\n static highlightedCls = 'igo-entity-table-row-highlighted';\n\n /**\n * Whether a row supports selection\n */\n @Input() selection = false;\n\n /**\n * Whether clicking a row should select it (if selection is true)\n */\n @Input() selectOnClick: boolean = true;\n\n /**\n * Whether the selected row should be highlighted\n */\n @Input() highlightSelection: boolean = true;\n\n /**\n * Whether a row is selected\n */\n @Input()\n set selected(value: boolean) {\n if (this.selection === false) { return; }\n if (value === this._selected) { return; }\n\n this.toggleSelected(value);\n this.scroll();\n }\n get selected(): boolean {\n return this._selected;\n }\n private _selected = false;\n\n /**\n * Scroll behavior on selection\n */\n @Input()\n scrollBehavior: EntityTableScrollBehavior = EntityTableScrollBehavior.Auto;\n\n /**\n * Event emitted when a row is selected\n */\n @Output() select = new EventEmitter<EntityTableRowDirective>();\n\n /**\n * When a row is clicked, select it if it's supported\n * @ignore\n */\n @HostListener('click')\n onClick() {\n if (this.selection === false || this.selectOnClick === false) {\n return;\n }\n\n this.toggleSelected(true);\n this.select.emit(this);\n }\n\n constructor(private renderer: Renderer2, private el: ElementRef) {}\n\n /**\n * Select a row and add or remove the selected class from it\n * @param selected Whether the row should be selected\n */\n private toggleSelected(selected: boolean) {\n this._selected = selected;\n if (selected === true) {\n this.addCls(EntityTableRowDirective.selectedCls);\n if (this.highlightSelection === true) {\n this.addCls(EntityTableRowDirective.highlightedCls);\n }\n } else {\n this.removeCls(EntityTableRowDirective.selectedCls);\n this.removeCls(EntityTableRowDirective.highlightedCls);\n }\n }\n\n /**\n * Scroll to the selected row\n */\n private scroll() {\n if (this._selected === true) {\n scrollIntoView(this.el.nativeElement, {\n scrollMode: 'if-needed',\n behavior: 'smooth',\n block: 'end',\n inline: 'nearest'\n });\n }\n }\n\n /**\n * Add the selected CSS class\n */\n private addCls(cls: string) {\n this.renderer.addClass(this.el.nativeElement, cls);\n }\n\n /**\n * Remove the selected CSS class\n */\n private removeCls(cls: string) {\n this.renderer.removeClass(this.el.nativeElement, cls);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Pipe({ name: 'sanitizeHtml' })\nexport class SanitizeHtmlPipe implements PipeTransform {\n constructor(private _sanitizer: DomSanitizer) {\n }\n transform(v: string): SafeHtml {\n return this._sanitizer.bypassSecurityTrustHtml(v);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\n\nimport { Cacheable } from 'ts-cacheable';\nimport { Observable } from 'rxjs';\nimport { catchError, switchMap } from 'rxjs/operators';\nimport { ConfigService } from '@igo2/core';\n\n@Pipe({\n name: 'secureImage'\n})\nexport class SecureImagePipe implements PipeTransform {\n constructor(\n private http: HttpClient,\n private configService?: ConfigService) {}\n\n @Cacheable({\n maxCacheCount: 20\n })\n transform(url: string): Observable<string> {\n const headers = new HttpHeaders({\n 'Content-Type': 'text/plain',\n activityInterceptor: 'false',\n interceptError: 'false'\n });\n\n const regexDepot = new RegExp(this.configService?.getConfig('depot.url') + '.*?(?=\"|$)');\n if (regexDepot.test(url)) {\n url = url.match(regexDepot)[0];\n }\n\n return this.http\n .get(url, {\n headers,\n responseType: 'blob'\n })\n .pipe(\n catchError((err) => {\n err.error.caught = true;\n err.error.toDisplay = false;\n throw err;\n }),\n switchMap((blob) => {\n return new Observable((observer) => {\n const reader = new FileReader();\n reader.readAsDataURL(blob);\n reader.onloadend = () => {\n observer.next(reader.result);\n observer.complete();\n };\n });\n })\n ) as Observable<string>;\n }\n}\n","<div class=\"table-container\" [ngStyle]=\"{'height': tableHeight}\">\n <table mat-table matSort [ngClass]=\"getTableClass()\" [dataSource]=\"dataSource\" [trackBy]=\"getTrackByFunction()\" (matSortChange)=\"onSort($event)\">\n <ng-container matColumnDef=\"selectionCheckbox\" class=\"mat-cell-checkbox\">\n <th mat-header-cell *matHeaderCellDef>\n <ng-container *ngIf=\"selectMany\">\n <ng-container *ngIf=\"selectionState$ | async as selectionState\">\n <mat-checkbox (change)=\"onToggleRows($event.checked)\" [checked]=\"selectionState === entityTableSelectionState.All\"\n [indeterminate]=\"selectionState === entityTableSelectionState.Some\">\n </mat-checkbox>\n </ng-container>\n </ng-container>\n </th>\n <td mat-cell *matCellDef=\"let record\">\n <mat-checkbox (mousedown)=\"$event.shiftKey ? $event.preventDefault() : null\" (click)=\"$event.shiftKey ?\n onShiftToggleRow(!rowIsSelected(record), record, $event) : $event.stopPropagation()\" (change)=\"onToggleRow($event.checked,record)\"\n [checked]=\"rowIsSelected(record)\">\n </mat-checkbox>\n </td>\n </ng-container>\n\n <ng-container [matColumnDef]=\"column.name\" *ngFor=\"let column of template.columns\">\n <ng-container *ngIf=\"columnIsSortable(column)\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header [matTooltip]=\"column.tooltip ? column.tooltip : undefined\">\n {{column.title}}\n </th>\n </ng-container>\n\n <ng-container *ngIf=\"!columnIsSortable(column)\">\n <th mat-header-cell *matHeaderCellDef [matTooltip]=\"column.tooltip ? column.tooltip : undefined\">\n {{column.title}}\n </th>\n </ng-container>\n\n <ng-container *ngIf=\"getColumnRenderer(column) as columnRenderer\">\n <ng-container *ngIf=\"columnRenderer === entityTableColumnRenderer.Default\">\n <ng-container *matCellDef=\"let record\">\n <td mat-cell class=\"mat-cell-text\" *ngIf=\"!isUrl(getValue(record, column));else isAnUrlDefault\" [ngClass]=\"getCellClass(record, column)\">\n {{getValue(record, column)}}\n </td>\n <ng-template #isAnUrlDefault>\n <td mat-cell class=\"mat-cell-text\" [ngClass]=\"getCellClass(record, column)\">\n <a href=\"{{getValue(record, column)}}\" target='_blank' rel=\"noopener noreferrer\" (click)=\"$event.stopPropagation()\">\n <img igoImageError *ngIf=\"isImg(getValue(record, column));else notImg\" src=\"{{(getValue(record, column) | secureImage) | async}}\" width=\"50\" heigth=\"auto\">\n <ng-template #notImg><span>{{\n 'igo.common.entity-table.targetHtmlUrl' | translate }}\n </span></ng-template>\n </a>\n </td>\n </ng-template>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"columnRenderer === entityTableColumnRenderer.HTML\">\n <ng-container *matCellDef=\"let record\">\n <td mat-cell class=\"mat-cell-text\" *ngIf=\"!isUrl(getValue(record, column));else isAnUrlHTML\" [ngClass]=\"getCellClass(record, column)\"\n [innerHTML]=\"getValue(record, column)\">\n </td>\n <ng-template #isAnUrlHTML>\n <td mat-cell class=\"mat-cell-text\" [ngClass]=\"getCellClass(record, column)\">\n <a href=\"{{getValue(record, column)}}\" target='_blank' rel=\"noopener noreferrer\" (click)=\"$event.stopPropagation()\">\n <img igoImageError *ngIf=\"isImg(getValue(record, column));else notImg\" src=\"{{(getValue(record, column) | secureImage) | async}}\" width=\"50\" heigth=\"auto\">\n <ng-template #notImg><span>{{ 'igo.geo.targetHtmlUrl' |\n translate }} </span></ng-template>\n </a>\n </td>\n </ng-template>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"columnRenderer === entityTableColumnRenderer.UnsanitizedHTML\">\n <ng-container *matCellDef=\"let record\">\n <td mat-cell class=\"mat-cell-text edition\" [formGroup]=\"formGroup\" *ngIf=\"isEdition(record);else isUnsanitizedHTML\"\n [ngClass]=\"getCellClass(record, column)\">\n <div class=\"date-picker\" *ngIf=\"column.type === 'date'\">\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <input matInput [matDatepicker]=\"picker\" [formControlName]=\"column.name\" value=\"{{getValue(record, column)}}\"\n (dateChange)=\"onDateChange(column.name, record, $event)\">\n <mat-datepicker #picker></mat-datepicker>\n </div>\n <input matInput type=\"time\" *ngIf=\"column.type === 'time'\" [formControlName]=\"column.name\" step=\"900\" (focus)=\"column.onFocus($event)\"\n (keypress)=\"column.onChange($event)\" (blur)=\"column.onBlur($event)\">\n <input matInput type=\"number\" class=\"class_number_edition\" *ngIf=\"column.type === 'number'\" [formControlName]=\"column.name\" step=\"{{column.step}}\"\n value=\"{{getValue(record,column)}}\" (input)=\"onValueChange(column.name, record, $event)\"\n readonly=\"{{getValidationAttributeValue(column, 'readonly')}}\" required=\"{{getValidationAttributeValue(column, 'mandatory')}}\"\n min=\"{{getValidationAttributeValue(column, 'minValue')}}\" max=\"{{getValidationAttributeValue(column, 'maxValue')}}\">\n <input matInput type=\"text\" *ngIf=\"!column.type || column.type ==='string'\" [formControlName]=\"column.name\"\n value=\"{{getValue(record, column)}}\" (input)=\"onValueChange(column.name, record, $event)\"\n readonly=\"{{getValidationAttributeValue(column, 'readonly')}}\" required=\"{{getValidationAttributeValue(column, 'mandatory')}}\">\n <mat-checkbox *ngIf=\"column.type === 'boolean'\" [formControlName]=\"column.name\" [checked]=\"getValue(record,column)\"\n (change)=\"onBooleanValueChange(column.name, record,$event)\"></mat-checkbox>\n <mat-select *ngIf=\"column.type === 'list'\" required=\"{{getValidationAttributeValue(column, 'mandatory')}}\"\n [formControlName]=\"column.name\" [multiple]=\"column.multiple\" (selectionChange)=\"onSelectValueChange(column.name, record, $event)\"\n [value]=\"getValue(record, column)\">\n <mat-option *ngFor=\"let option of column.domainValues\" [value]=\"option.id\" [disabled]=\"option.disabled\">\n {{ option.value }}\n </mat-option>\n </mat-select>\n <input matInput type=\"text\" [formControlName]=\"column.name\" *ngIf=\"column.type === 'autocomplete'\" [matAutocomplete]=\"auto\"\n required=\"{{getValidationAttributeValue(column, 'mandatory')}}\" value=\"{{getValue(record, column)}}\"\n readonly=\"{{getValidationAttributeValue(column, 'readonly')}}\">\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"onAutocompleteValueChange(column, record, $event)\"\n panelWidth=\"430px\">\n <mat-option *ngFor=\"let option of filteredOptions[column.name] | async\"\n [value]=\"option.id\">\n {{ option.value }}\n </mat-option>\n </mat-autocomplete>\n </td>\n <ng-template #isUnsanitizedHTML>\n <td mat-cell class=\"mat-cell-text\" *ngIf=\"!isUrl(getValue(record, column));else isAnUrlUnsanitizedHTML\" [ngClass]=\"getCellClass(record, column)\"\n [innerHTML]=\"getValue(record, column) | sanitizeHtml\">\n </td>\n <ng-template #isAnUrlUnsanitizedHTML>\n <td mat-cell class=\"mat-cell-text\" [ngClass]=\"getCellClass(record, column)\">\n <a href=\"{{getValue(record, column)}}\" target='_blank' rel=\"noopener noreferrer\" (click)=\"$event.stopPropagation()\">\n <img igoImageError *ngIf=\"isImg(getValue(record, column));else notImg\" src=\"{{(getValue(record, column) | secureImage) | async}}\" width=\"50\" heigth=\"auto\">\n <ng-template #notImg><span>{{ 'igo.geo.targetHtmlUrl' | translate }} </span></ng-template>\n </a>\n </td>\n </ng-template>\n </ng-template>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"columnRenderer === entityTableColumnRenderer.Icon\">\n <td mat-cell *matCellDef=\"let record\" class=\"mat-cell-text\" [ngClass]=\"getCellClass(record, column)\">\n <mat-icon *ngIf=\"column.onClick\" svgIcon=\"{{getValue(record, column)|| column.icon}}\" (click)=\"column.onClick($event)\"></mat-icon>\n <mat-icon *ngIf=\"!column.onClick\" svgIcon=\"{{getValue(record, column)|| column.icon}}\"></mat-icon>\n </td>\n </ng-container>\n <ng-container *ngIf=\"columnRenderer === entityTableColumnRenderer.ButtonGroup\">\n <ng-container *matCellDef=\"let record\">\n <td mat-cell class=\"mat-cell-text\" [ngClass]=\"getCellClass(record, column)\">\n <span *ngFor=\"let button of getValue(record, column)\">\n <ng-container *ngIf=\"isEdition(record) === button.editMode || button.editMode === undefined\">\n <button *ngIf=\"button.style === 'mat-icon-button'\" igoStopPropagation mat-icon-button\n [color]=\"button.color\" (mousedown)=\"onButtonClick(button.click, record)\" [disabled]=\"button.disabled\">\n <mat-icon svgIcon=\"{{button.icon}}\"></mat-icon>\n </button>\n <button *ngIf=\"button.style !== 'mat-icon-button'\" igoStopPropagation mat-mini-fab\n [color]=\"button.color\" (mousedown)=\"onButtonClick(button.click, record)\" [disabled]=\"button.disabled\">\n <mat-icon svgIcon=\"{{button.icon}}\"></mat-icon>\n </button>\n </ng-container>\n </span>\n </td>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"headers; sticky: fixedHeader\" [ngClass]=\"getHeaderClass()\">\n </tr>\n <tr mat-row igoEntityTableRow *matRowDef=\"let record; columns: headers;\" [scrollBehavior]=\"scrollBehavior\" [ngClass]=\"getRowClass(record)\" [selection]=\"selection\" [selected]=\"rowIsSelected(record)\" (select)=\"onRowSelect(record)\" (click)=\"onRowClick(record)\">\n </tr>\n </table>\n <igo-entity-table-paginator *ngIf=\"withPaginator\" [store]=\"store\" [paginatorOptions]=\"paginatorOptions\" [entitySortChange$]=\"entitySortChange$\" (paginatorChange)=\"paginatorChange($event)\">\n </igo-entity-table-paginator>\n</div>","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n OnInit,\n OnDestroy,\n OnChanges,\n SimpleChanges,\n ElementRef,\n Optional,\n Self\n} from '@angular/core';\n\nimport { BehaviorSubject, Observable, Subscription } from 'rxjs';\n\nimport {\n EntityKey,\n EntityRecord,\n EntityState,\n EntityStore,\n EntityTableTemplate,\n EntityTableColumn,\n EntityTableColumnRenderer,\n EntityTableSelectionState,\n EntityTableScrollBehavior\n} from '../shared';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { EntityTablePaginatorOptions } from '../entity-table-paginator/entity-table-paginator.interface';\nimport { MatFormFieldControl } from '@angular/material/form-field';\nimport { UntypedFormBuilder, NgControl, NgForm, FormControlName, UntypedFormGroup } from '@angular/forms';\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { DateAdapter, ErrorStateMatcher } from '@angular/material/core';\nimport { map } from 'rxjs/operators';\nimport { default as moment } from 'moment';\n\n@Component({\n selector: 'igo-entity-table',\n templateUrl: './entity-table.component.html',\n styleUrls: ['./entity-table.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: MatFormFieldControl, useExisting: EntityTableComponent }]\n})\nexport class EntityTableComponent implements OnInit, OnChanges, OnDestroy {\n\n entitySortChange$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n\n public formGroup: UntypedFormGroup = new UntypedFormGroup({});\n\n public filteredOptions = {};\n\n /**\n * Reference to the column renderer types\n * @internal\n */\n entityTableColumnRenderer = EntityTableColumnRenderer;\n\n /**\n * Reference to the selection's state\n * @internal\n */\n entityTableSelectionState = EntityTableSelectionState;\n\n /**\n * Observable of the selection,s state\n * @internal\n */\n readonly selectionState$: BehaviorSubject<EntityTableSelectionState> = new BehaviorSubject(undefined);\n\n /**\n * Subscription to the store's selection\n */\n private selection$$: Subscription;\n\n /**\n * Subscription to the dataSource\n */\n private dataSource$$: Subscription;\n\n /**\n * The last record checked. Useful for selecting\n * multiple records by holding the shift key and checking\n * checkboxes.\n */\n private lastRecordCheckedKey: EntityKey;\n\n /**\n * Entity store\n */\n @Input() store: EntityStore<object>;\n\n /**\n * Table paginator\n */\n @Input() set paginator(value: MatPaginator) {\n this._paginator = value;\n this.dataSource.paginator = value;\n }\n\n get paginator(): MatPaginator {\n return this._paginator;\n }\n private _paginator: MatPaginator;\n\n /**\n * Table template\n */\n @Input() template: EntityTableTemplate;\n\n /**\n * Scroll behavior on selection\n */\n @Input()\n scrollBehavior: EntityTableScrollBehavior = EntityTableScrollBehavior.Auto;\n\n /**\n * Whether nulls should be first when sorting\n */\n @Input()\n sortNullsFirst: boolean = false;\n\n /**\n * Show the table paginator or not. False by default.\n */\n @Input()\n withPaginator: boolean = false;\n\n /**\n * Paginator options\n */\n @Input()\n paginatorOptions: EntityTablePaginatorOptions;\n\n /**\n * Event emitted when an entity (row) is clicked\n */\n @Output() entityClick = new EventEmitter<object>();\n\n /**\n * Event emitted when an entity (row) is selected\n */\n @Output() entitySelectChange = new EventEmitter<{\n added: object[];\n }>();\n\n /**\n * Event emitted when the table sort is changed.\n */\n @Output() entitySortChange: EventEmitter<{column: EntityTableColumn, direction: string}> = new EventEmitter(undefined);\n\n /**\n * Table headers\n * @internal\n */\n get headers(): string[] {\n let columns = this.template.columns\n .filter((column: EntityTableColumn) => column.visible !== false)\n .map((column: EntityTableColumn) => column.name);\n\n if (this.selectionCheckbox === true) {\n columns = ['selectionCheckbox'].concat(columns);\n }\n\n return columns;\n }\n\n /**\n * Data source consumable by the underlying material table\n * @internal\n */\n dataSource = new MatTableDataSource<object>();\n\n /**\n * Whether selection is supported\n * @internal\n */\n get selection(): boolean { return this.template.selection || false; }\n\n /**\n * Whether a selection checkbox should be displayed\n * @internal\n */\n get selectionCheckbox(): boolean { return this.template.selectionCheckbox || false; }\n\n /**\n * Whether selection many entities should eb supported\n * @internal\n */\n get selectMany(): boolean { return this.template.selectMany || false; }\n\n /**\n * Whether selection many entities should eb supported\n * @internal\n */\n get fixedHeader(): boolean { return this.template.fixedHeader === undefined ? true : this.template.fixedHeader; }\n\n get tableHeight(): string { return this.template.tableHeight ? this.template.tableHeight : 'auto'; }\n\n constructor(private cdRef: ChangeDetectorRef,\n private formBuilder: UntypedFormBuilder,\n protected _focusMonitor: FocusMonitor,\n protected _elementRef: ElementRef<HTMLElement>,\n @Optional() @Self() public ngControl: NgControl,\n @Optional() protected _parentForm: NgForm,\n @Optional() protected _controlName: FormControlName,\n protected _defaultErrorStateMatcher: ErrorStateMatcher,\n private dateAdapter: DateAdapter<Date>\n ) {\n this.dateAdapter.setLocale('fr-CA');\n }\n\n /**\n * Track the selection state to properly display the selection checkboxes\n * @internal\n */\n ngOnInit() {\n this.handleDatasource();\n this.dataSource.paginator = this.paginator;\n }\n\n /**\n * @internal\n */\n ngOnChanges(changes: SimpleChanges) {\n const store = changes.store;\n if (store && store.currentValue !== store.previousValue) {\n this.handleDatasource();\n }\n }\n\n /**\n * Process text or number value change (edition)\n */\n onValueChange(column: string, record: EntityRecord<any>, event) {\n const key = this.getColumnKeyWithoutPropertiesTag(column);\n record.entity.properties[key] = event.target.value;\n }\n\n /**\n * Process boolean value change (edition)\n */\n onBooleanValueChange(column: string, record: EntityRecord<any>, event) {\n const key = this.getColumnKeyWithoutPropertiesTag(column);\n record.entity.properties[key] = event.checked;\n }\n\n /**\n * Process select value change (edition)\n */\n onSelectValueChange(column: string, record: EntityRecord<any>, event) {\n const key = this.getColumnKeyWithoutPropertiesTag(column);\n record.entity.properties[key] = event.value;\n }\n\n /**\n * Process autocomplete value change (edition)\n */\n onAutocompleteValueChange(column: EntityTableColumn, record: EntityRecord<any>, event) {\n this.formGroup.controls[column.name].setValue(event.option.viewValue);\n const key = this.getColumnKeyWithoutPropertiesTag(column.name);\n record.entity.properties[key] = event.option.value;\n }\n\n /**\n * Process date value change (edition)\n */\n onDateChange(column: string, record: EntityRecord<any>, event) {\n const format = \"YYYY-MM-DD\";\n const value = moment(event.value).format(format);\n const key = this.getColumnKeyWithoutPropertiesTag(column);\n record.entity.properties[key] = value;\n }\n\n /**\n * Enable edition mode for one row\n * More than one row can be edited at the same time\n */\n private enableEdit(record: EntityRecord<any>) {\n const item = record.entity.properties || record.entity;\n this.template.columns.forEach(column => {\n column.title = column.validation?.mandatory && !column.title.includes('*') ? column.title + ' *' : column.title;\n\n const key = this.getColumnKeyWithoutPropertiesTag(column.name);\n if (column.type === 'boolean') {\n if (!item[key] || item[key] === null) {\n item[key] = false;\n } else if (typeof item[key] === 'string') {\n item[key] = JSON.parse(item[key].toLowerCase());\n }\n this.formGroup.setControl(column.name, this.formBuilder.control(\n item[key]\n ));\n } else if (column.type === 'list') {\n if (column.multiple) {\n this.formGroup.setControl(column.name, this.formBuilder.control(\n [item[key]]\n ));\n } else {\n this.formGroup.setControl(column.name, this.formBuilder.control(\n item[key]\n ));\n\n typeof item[key] === 'string' ?\n this.formGroup.controls[column.name].setValue(parseInt(item[key])) :\n this.formGroup.controls[column.name].setValue(item[key]);\n }\n } else if (column.type === 'autocomplete') {\n this.formGroup.setControl(column.name, this.formBuilder.control(\n item[key]\n ));\n\n this.filteredOptions[column.name] = new Observable<any[]>();\n this.filteredOptions[column.name] =\n this.formGroup.controls[column.name].valueChanges.pipe(\n map(value => {\n if (value?.length) {\n return column.domainValues?.filter((option) => {\n const filterNormalized = value ? value.toLowerCase().normalize('NFD').replace(/[\\u0300-\\u036f]/g, '') : '';\n const featureNameNormalized = option.value.toLowerCase().normalize('NFD').replace(/[\\u0300-\\u036f]/g, '');\n return featureNameNormalized.includes(filterNormalized);\n });\n }\n })\n );\n\n let formControlValue = item[key];\n column.domainValues.forEach(option => {\n if (typeof formControlValue === 'string' && /^\\d+$/.test(formControlValue)) {\n formControlValue = parseInt(formControlValue);\n }\n if (option.value === formControlValue || option.id === formControlValue) {\n formControlValue = option.value;\n }\n });\n\n this.formGroup.controls[column.name].setValue(formControlValue);\n if (this.isEdition(record) && column.linkColumnForce) {\n const entity = record.entity as any;\n this.formGroup.controls[column.name].setValue(\n entity?.properties[this.getColumnKeyWithoutPropertiesTag(column.linkColumnForce)]\n );\n }\n } else if (column.type === 'date') {\n if (column.visible !== false) {\n if (item[key]) {\n let date = moment(item[key]);\n item[key] = date.utc().format('YYYY-MM-DD');\n this.formGroup.setControl(column.name, this.formBuilder.control(\n item[key]\n ));\n } else {\n const newKey = this.getColumnKeyWithoutPropertiesTag(column.name);\n record.entity.properties[newKey] = null;\n this.formGroup.setControl(column.name, this.formBuilder.control(\n null\n ));\n }\n }\n } else {\n this.formGroup.setControl(column.name, this.formBuilder.control(\n item[key]\n ));\n }\n\n if (this.formGroup.controls[column.name] && this.getValidationAttributeValue(column, 'readonly')) {\n this.formGroup.controls[column.name].disable();\n }\n });\n }\n\n private handleDatasource() {\n this.unsubscribeStore();\n this.selection$$ = this.store.stateView\n .manyBy$((record: EntityRecord<object>) => record.state.selected === true)\n .subscribe((records: EntityRecord<object>[]) => {\n const firstSelected = records[0];\n const firstSelectedStateviewPosition = this.store.stateView.all().indexOf(firstSelected);\n const pageMax = this.paginator ? this.paginator.pageSize * (this.paginator.pageIndex + 1) : 0;\n const pageMin = this.paginator ? pageMax - this.paginator.pageSize : 0;\n\n if (\n this.paginator &&\n (firstSelectedStateviewPosition < pageMin ||\n firstSelectedStateviewPosition >= pageMax)) {\n const pageToReach = Math.floor(firstSelectedStateviewPosition / this.paginator.pageSize);\n this.dataSource.paginator.pageIndex = pageToReach;\n }\n this.selectionState$.next(this.computeSelectionState(records));\n });\n this.dataSource$$ = this.store.stateView.all$().subscribe((all) => {\n if (all[0]) {\n this.enableEdit(all[0]);\n }\n this.dataSource.data = all;\n });\n\n }\n\n /**\n * Unbind the store watcher\n * @internal\n */\n ngOnDestroy() {\n this.unsubscribeStore();\n }\n\n private unsubscribeStore() {\n if (this.selection$$) {\n this.selection$$.unsubscribe();\n }\n if (this.dataSource$$) {\n this.dataSource$$.unsubscribe();\n }\n }\n\n /**\n * Trackby function\n * @param record Record\n * @param index Record index\n * @internal\n */\n getTrackByFunction() {\n return (index: number, record: EntityRecord<object, EntityState>) => {\n return record.ref;\n };\n }\n\n /**\n * Trigger a refresh of thre table. This can be useful when\n * the data source doesn't emit a new value but for some reason\n * the records need an update.\n * @internal\n */\n refresh() {\n this.cdRef.detectChanges();\n }\n\n paginatorChange(event: MatPaginator) {\n this.paginator = event;\n }\n\n /**\n * On sort, sort the store\n * @param event Sort event\n * @internal\n */\n onSort(event: {active: string, direction: string}) {\n const direction = event.direction;\n const column = this.template.columns\n .find((c: EntityTableColumn) => c.name === event.active);\n\n if (direction === 'asc' || direction === 'desc') {\n this.store.stateView.sort({\n valueAccessor: (record: EntityRecord<object>) => this.getValue(record, column),\n direction,\n nullsFirst: this.sortNullsFirst\n });\n this.entitySortChange.emit({column, direction});\n this.entitySortChange$.next(true);\n } else {\n this.store.stateView.sort(undefined);\n }\n }\n\n /**\n * When an entity is clicked, emit an event\n * @param record Record\n * @internal\n */\n onRowClick(record: EntityRecord<object>) {\n this.lastRecordCheckedKey = this.store.stateView.getKey(record);\n this.entityClick.emit(record.entity);\n }\n\n /**\n * When an entity is selected, select it in the store and emit an event. Even if\n * \"many\" is set to true, this method always select a single, exclusive row. Selecting\n * multiple rows should be achieved by using the checkboxes.\n * @param record Record\n * @internal\n */\n onRowSelect(record: EntityRecord<object>) {\n if (this.selection === false) { return; }\n\n const entity = record.entity;\n this.store.state.update(entity, {selected: true}, true);\n this.entitySelectChange.emit({added: [entity]});\n }\n\n /**\n * Select or unselect all rows at once. On select, emit an event.\n * @param toggle Select or unselect\n * @internal\n */\n onToggleRows(toggle: boolean) {\n if (this.selection === false) { return; }\n\n this.store.state.updateAll({selected: toggle});\n if (toggle === true) {\n const entities = this.store.stateView\n .all()\n .map((record: EntityRecord<object>) => record.entity);\n this.entitySelectChange.emit({added: [entities]});\n }\n }\n\n /**\n * When an entity is toggled, select or unselect it in the store. On select,\n * emit an event.\n * @param toggle Select or unselect\n * @param record Record\n * @internal\n */\n onToggleRow(toggle: boolean, record: EntityRecord<object>) {\n if (this.selection === false) { return; }\n\n const entity = record.entity;\n const exclusive = toggle === true && !this.selectMany;\n this.store.state.update(entity, {selected: toggle}, exclusive);\n if (toggle === true) {\n this.entitySelectChange.emit({added: [entity]});\n }\n this.lastRecordCheckedKey = this.store.stateView.getKey(record);\n }\n\n /**\n * When an entity is toggled, select or unselect it in the store. On select,\n * emit an event.\n * @param toggle Select or unselect\n * @param record Record\n * @internal\n */\n onShiftToggleRow(toggle: boolean, record: EntityRecord<object>, event: MouseEvent) {\n if (this.selection === false) { return; }\n\n if (this.selectMany === false || this.lastRecordCheckedKey === undefined) {\n this.onToggleRow(toggle, record);\n return;\n }\n\n // This is a workaround mat checkbox wrong behavior\n // when the shift key is held.\n // See https://github.com/angular/components/issues/6232\n const range = window.document.createRange();\n range.selectNode(event.target as HTMLElement);\n window.getSelection().removeAllRanges();\n window.getSelection().addRange(range);\n event.stopImmediatePropagation();\n\n const records = this.store.stateView.all();\n const recordIndex = records.indexOf(record);\n const lastRecordChecked = this.store.stateView.get(this.lastRecordCheckedKey);\n const lastRecordIndex = records.indexOf(lastRecordChecked);\n const indexes = [recordIndex, lastRecordIndex];\n const selectRecords = records.slice(Math.min(...indexes), Math.max(...indexes) + 1);\n\n const entities = selectRecords.map((_record: EntityRecord<object>) => _record.entity);\n this.store.state.updateMany(entities, {selected: toggle});\n if (toggle === true) {\n this.entitySelectChange.emit({added: entities});\n }\n this.lastRecordCheckedKey = this.store.stateView.getKey(record);\n }\n\n /**\n * Compute the selection state\n * @returns Whether all, some or no rows are selected\n * @internal\n */\n private computeSelectionState(selectedRecords: EntityRecord<object>[]): EntityTableSelectionState {\n const states = EntityTableSelectionState;\n const selectionCount = selectedRecords.length;\n return selectionCount === 0 ?\n states.None :\n (selectionCount === this.store.stateView.count ? states.All : states.Some);\n }\n\n /**\n * Whether a column is sortable\n * @param column Column\n * @returns True if a column is sortable\n * @internal\n */\n columnIsSortable(column: EntityTableColumn): boolean {\n let sortable = column.sort;\n if (sortable === undefined) {\n sortable = this.template.sort === undefined ? false : this.template.sort;\n }\n return sortable;\n }\n\n /**\n * Whether a row is should be selected based on the underlying entity state\n * @param record Record\n * @returns True if a row should be selected\n * @internal\n */\n rowIsSelected(record: EntityRecord<object>): boolean {\n const state = record.state;\n return state.selected ? state.selected : false;\n }\n\n isImg(value) {\n if (this.isUrl(value)) {\n return (\n ['jpg', 'png', 'gif'].indexOf(value.split('.').pop().toLowerCase()) !== -1\n );\n } else {\n return false;\n }\n }\n\n isUrl(value) {\n if (typeof value === 'string') {\n return (\n value.slice(0, 8) === 'https://' || value.slice(0, 7) === 'http://'\n );\n } else {\n return false;\n }\n }\n\n /**\n * Method to access an entity's values\n * @param record Record\n * @param column Column\n * @returns Any value\n * @internal\n */\n getValue(record: EntityRecord<object>, column: EntityTableColumn): any {\n const entity = record.entity;\n let value;\n if (column.valueAccessor !== undefined) {\n return column.valueAccessor(entity, record);\n }\n if (this.template.valueAccessor !== undefined) {\n return this.template.valueAccessor(entity, column.name, record);\n }\n value = this.store.getProperty(entity, column.name);\n\n if (column.type === 'boolean') {\n if (value === undefined || value === null || value === '') {\n value = false;\n } else if (typeof value !== 'boolean' && value !== undefined) {\n if (typeof value === 'number'){\n value = Boolean(value);\n } else {\n value = JSON.parse(value.toLowerCase());\n }\n }\n if (!this.isEdition(record)){\n value = value ? '&#10003;' : ''; // check mark\n }\n } else if (column.type === 'list' && value && column.domainValues) {\n const entity = record.entity as any;\n if (column.multiple) {\n let list_id;\n typeof value === 'string' ? list_id = value.match(/[\\w.-]+/g).map(Number) : list_id = value;\n let list_option = [];\n\n column.domainValues.forEach(option => {\n if (list_id.includes(option.id)) {\n if (record.edition) {\n list_option.push(option.id);\n } else {\n list_option.push(option.value);\n }\n }\n });\n\n this.isEdition(record) ? value = list_id : value = list_option;\n } else {\n if (!this.isEdition(record) && column.linkColumnForce) {\n value = entity?.properties[this.getColumnKeyWithoutPropertiesTag(column.linkColumnForce)];\n } else {\n column.domainValues.forEach(option => {\n if (typeof value === 'string' && /^\\d+$/.test(value)) {\n value = parseInt(value);\n }\n if (option.value === value || option.id === value) {\n this.isEdition(record) ? value = option.id : value = option.value;\n }\n });\n }\n }\n } else if (column.type === 'autocomplete' && value && column.domainValues) {\n const entity = record.entity as any;\n if (!this.isEdition(record) && column.linkColumnForce) {\n value = entity?.properties[this.getColumnKeyWithoutPropertiesTag(column.linkColumnForce)];\n } else {\n column.domainValues.forEach(option => {\n if (typeof value === 'string' && /^\\d+$/.test(value)) {\n value = parseInt(value);\n }\n if (option.value === value || option.id === value) {\n value = option.value;\n }\n });\n }\n } else if (column.type === 'date') {\n if (this.isEdition(record)) {\n if (value) {\n let date = moment(value);\n value = date.format();\n this.formGroup.controls[column.name].setValue(value);\n }\n } else if (!this.isEdition(record) && value === null) {\n value = \"\";\n }\n }\n\n if (value === undefined) {\n value = '';\n }\n\n return value;\n }\n\n /**\n * Method to access an entity's validation values\n * @param column Column\n * @param validationType string\n * @returns Any value (false if no validation or not the one concerned)\n * @internal\n */\n getValidationAttributeValue(column: EntityTableColumn, validationType: string): any {\n if (column.validation !== undefined && column.validation[validationType] !== undefined) {\n return column.validation[validationType];\n } else {\n return false;\n }\n }\n\n public isEdition(record) {\n return record.entity.edition ? true : false;\n }\n\n /**\n * Return the type of renderer of a column\n * @param column Column\n * @returns Renderer type\n * @internal\n */\n getColumnRenderer(column: EntityTableColumn): EntityTableColumnRenderer {\n if (column.renderer !== undefined) {\n return column.renderer;\n }\n return EntityTableColumnRenderer.Default;\n }\n\n /**\n * Return the table ngClass\n * @returns ngClass\n * @internal\n */\n getTableClass(): {[key: string]: boolean} {\n return {\n 'igo-entity-table-with-selection': this.selection\n };\n }\n\n /**\n * Return a header ngClass\n * @returns ngClass\n * @internal\n */\n getHeaderClass(): {[key: string]: boolean} {\n const func = this.template.headerClassFunc;\n if (func instanceof Function) {\n return func();\n }\n return {};\n }\n\n /**\n * Return a row ngClass\n * @param record Record\n * @returns ngClass\n * @internal\n */\n getRowClass(record: EntityRecord<object>): {[key: string]: boolean} {\n const entity = record.entity;\n const func = this.template.rowClassFunc;\n if (func instanceof Function) {\n return func(entity, record);\n }\n return {};\n }\n\n /**\n * Return a row ngClass\n * @param record Record\n * @param column Column\n * @returns ngClass\n * @internal\n */\n getCellClass(record: EntityRecord<object>, column: EntityTableColumn): {[key: string]: boolean} {\n const entity = record.entity;\n const cls = {};\n\n const tableFunc = this.template.cellClassFunc;\n if (tableFunc instanceof Function) {\n Object.assign(cls, tableFunc(entity, column, record));\n }\n\n const columnFunc = column.cellClassFunc;\n if (columnFunc instanceof Function) {\n Object.assign(cls, columnFunc(entity, record));\n }\n\n return cls;\n }\n\n /**\n * When a button is clicked\n * @param func Function\n * @param record Record\n * @internal\n */\n onButtonClick(\n clickFunc: (entity: object, record?: EntityRecord<object>) => void,\n record: EntityRecord<object>\n ) {\n this.enableEdit(record);\n if (typeof clickFunc === 'function') {\n clickFunc(record.entity, record);\n }\n }\n\n /**\n * Retrieve column name without his \"properties\" tag (useful for edition workspace properties)\n */\n public getColumnKeyWithoutPropertiesTag(column: string) {\n if (column.includes('properties.')) {\n return column.split('.')[1];\n }\n return column;\n }\n}\n","export enum ActionbarMode {\n Dock = 'dock',\n Overlay = 'overlay',\n Context = 'context'\n}\n","<mat-list-item *ngIf=\"!action.checkbox\"\n matTooltipClass=\"actionbarItemTooltip\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"withTooltip ? ((tooltip$ | async) || title | translate) : ''\"\n [ngClass]=\"ngClass$ | async\"\n (click)=\"onClick()\">\n <button *ngIf=\"withIcon\"\n mat-list-avatar\n mat-icon-button\n [color]=\"color\"\n [disabled]=\"disabled$ | async\">\n <mat-icon *ngIf=\"withIcon\" svgIcon=\"{{icon$ | async}}\"></mat-icon>\n </button>\n <h4 *ngIf=\"withTitle\" matLine>{{title | translate}}</h4>\n</mat-list-item>\n\n<mat-list-item class=\"item-checkbox\" *ngIf=\"action.checkbox\"\n matTooltipClass=\"actionbarItemTooltip\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"withTooltip ? ((tooltip$ | async) || title | translate) : ''\"\n [ngClass]=\"ngClass$ | async\">\n <mat-checkbox *ngIf=\"withTitle\"\n (change)=\"action.handler()\"\n [checked]=\"checkCondition$ | async\">\n {{title | translate}}\n </mat-checkbox>\n</mat-list-item>\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ChangeDetectionStrategy,\n OnInit,\n OnDestroy\n} from '@angular/core';\n\nimport { BehaviorSubject, Subscription, isObservable } from 'rxjs';\n\nimport { Action } from '../shared/action.interfaces';\n\n /**\n * An action button\n */\n@Component({\n selector: 'igo-actionbar-item',\n templateUrl: './actionbar-item.component.html',\n styleUrls: ['./actionbar-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ActionbarItemComponent implements OnInit, OnDestroy {\n\n readonly disabled$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n\n readonly checkCondition$: BehaviorSubject<boolean> = new BehaviorSubject(undefined);\n\n readonly icon$: BehaviorSubject<string> = new BehaviorSubject(undefined);\n\n readonly tooltip$: BehaviorSubject<string> = new BehaviorSubject(undefined);\n\n readonly noDisplay$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n\n readonly ngClass$: BehaviorSubject<{[key: string]: boolean}> = new BehaviorSubject({});\n\n private ngClass$$: Subscription;\n\n private disabled$$: Subscription;\n\n private availability$$: Subscription;\n\n private icon$$: Subscription;\n\n private checkCondition$$: Subscription;\n\n private tooltip$$: Subscription;\n\n private noDisplay$$: Subscription;\n\n private display$$: Subscription;\n\n /**\n * Action\n */\n @Input() action: Action;\n\n /**\n * Color\n */\n @Input() color = 'default';\n\n /**\n * Whether the action title is displayed\n */\n @Input() withTitle = true;\n\n /**\n * Whether the action icon is displayed\n */\n @Input() withIcon = true;\n\n /**\n * Whether a tooltip should be shown\n */\n @Input() withTooltip = true;\n\n /**\n * Whether the action is disabled\n */\n @Input()\n set disabled(value: boolean) { this.disabled$.next(value); }\n get disabled(): boolean { return this.disabled$.value; }\n\n /**\n * Whether the action is display or not\n */\n @Input()\n set noDisplay(value: boolean) { this.noDisplay$.next(value); }\n get noDisplay(): boolean { return this.noDisplay$.value; }\n\n /**\n * Event emitted when the action button is clicked\n */\n @Output() trigger: EventEmitter<Action> = new EventEmitter();\n\n /**\n * @internal\n */\n get title(): string { return this.action.title; }\n\n constructor() {}\n\n ngOnInit() {\n const args = this.action.args || [];\n\n if (this.action.ngClass !== undefined) {\n this.ngClass$$ = this.action.ngClass(...args)\n .subscribe((ngClass: {[key: string]: boolean}) => this.updateNgClass(ngClass));\n }\n\n if (isObservable(this.action.icon)) {\n this.icon$$ = this.action.icon\n .subscribe((icon: string) => this.updateIcon(icon));\n } else {\n this.updateIcon(this.action.icon);\n }\n\n if (isObservable(this.action.checkCondition)) {\n this.checkCondition$$ = this.action.checkCondition\n .subscribe((checkCondition: boolean) => this.updateCheckCondition(checkCondition));\n } else {\n this.updateCheckCondition(this.action.checkCondition);\n }\n\n if (isObservable(this.action.tooltip)) {\n this.tooltip$$ = this.action.tooltip\n .subscribe((tooltip: string) => this.updateTooltip(tooltip));\n } else {\n this.updateTooltip(this.action.tooltip);\n }\n\n if (this.action.availability !== undefined) {\n this.availability$$ = this.action.availability(...args)\n .subscribe((available: boolean) => this.disabled = !available);\n }\n\n this.disabled$$ = this.disabled$\n .subscribe((disabled: boolean) => this.updateNgClass({'igo-actionbar-item-disabled': disabled}));\n\n if (this.action.display !== undefined) {\n this.display$$ = this.action.display(...args)\n .subscribe((display: boolean) => this.noDisplay = !display);\n }\n\n this.noDisplay$$ = this.noDisplay$\n .subscribe((noDisplay: boolean) => this.updateNgClass({'igo-actionbar-item-no-display': noDisplay}));\n }\n\n ngOnDestroy() {\n if (this.ngClass$$ !== undefined) {\n this.ngClass$$.unsubscribe();\n this.ngClass$$ = undefined;\n }\n\n if (this.availability$$ !== undefined) {\n this.availability$$.unsubscribe();\n this.availability$$ = undefined;\n }\n\n if (this.display$$ !== undefined) {\n this.display$$.unsubscribe();\n this.display$$ = undefined;\n }\n\n if (this.checkCondition$$ !== undefined) {\n this.checkCondition$$.unsubscribe();\n this.checkCondition$$ = undefined;\n }\n\n if (this.icon$$ !== undefined) {\n this.icon$$.unsubscribe();\n this.icon$$ = undefined;\n }\n\n if (this.tooltip$$ !== undefined) {\n this.tooltip$$.unsubscribe();\n this.tooltip$$ = undefined;\n }\n\n this.disabled$$.unsubscribe();\n this.noDisplay$$.unsubscribe();\n }\n\n /**\n * When the action button is clicked, emit the 'trigger' event but don't\n * invoke the action handler. This is handled by the parent component.\n * @internal\n */\n onClick() {\n if (this.disabled === true) {\n return;\n }\n this.trigger.emit(this.action);\n }\n\n private updateNgClass(ngClass: {[key: string]: boolean}) {\n this.ngClass$.next(Object.assign({}, this.ngClass$.value, ngClass));\n }\n\n private updateTooltip(tooltip: string) {\n this.tooltip$.next(tooltip);\n }\n\n private updateCheckCondition(checkCondition: boolean) {\n this.checkCondition$.next(checkCondition);\n }\n\n private updateIcon(icon: string) {\n this.icon$.next(icon);\n }\n}\n","<mat-list *ngIf=\"mode === actionbarMode.Dock\">\n\n <div *ngIf=\"heightCondition && positionConditionTop && isDesktop\"\n id=\"topChevron\">\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.common.actionbar.scrollUp' | translate\"\n (click)=\"scrollUp()\">\n <mat-icon svgIcon=\"chevron-up\"></mat-icon>\n </button>\n </div>\n\n <igo-actionbar-item\n *ngIf=\"withToggleButton\"\n color=\"accent\"\n [withTitle]=\"false\"\n [withIcon]=\"true\"\n [color]=\"color\"\n [disabled]=\"store.view.empty\"\n [action]=\"toggleCollapseAction\"\n (trigger)=\"onTriggerAction(toggleCollapseAction)\">\n </igo-actionbar-item>\n\n <ng-template #buttonContent *ngIf=\"!collapsed\" ngFor let-action [ngForOf]=\"store.view.all$() | async\">\n <igo-actionbar-item\n color=\"accent\"\n [withTitle]=\"withTitle\"\n [withIcon]=\"withIcon\"\n [withTooltip]=\"withTooltip\"\n [color]=\"color\"\n [disabled]=\"store.state.get(action).disabled\"\n [action]=\"action\"\n (trigger)=\"onTriggerAction(action)\">\n </igo-actionbar-item>\n </ng-template>\n\n <div *ngIf=\"heightCondition && positionConditionLow && isDesktop\"\n id=\"lowChevron\">\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.common.actionbar.scrollDown' | translate\"\n (click)=\"scrollDown()\">\n <mat-icon svgIcon=\"chevron-down\"></mat-icon>\n </button>\n </div>\n\n</mat-list>\n\n<div *ngIf=\"mode === actionbarMode.Overlay\">\n <button class=\"buttonOverlay\"\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.common.actionbar.icon' | translate\"\n [matMenuTriggerFor]=\"actionbarMenu\"\n [disabled]=\"store.view.empty\"\n [color]=\"iconColor\">\n <mat-icon [svgIcon]=\"icon\"></mat-icon>\n </button>\n\n <mat-menu\n #actionbarMenu=\"matMenu\"\n class=\"igo-compact-menu igo-no-min-width-menu\"\n overlapTrigger=\"true\"\n [xPosition]=\"xPosition\"\n [yPosition]=\"yPosition\"\n [class]=\"overlayClass\">\n\n <mat-list>\n <ng-template ngFor let-action [ngForOf]=\"store.view.all$() | async\">\n <igo-actionbar-item\n color=\"accent\"\n [withTitle]=\"withTitle\"\n [withIcon]=\"withIcon\"\n [color]=\"color\"\n [action]=\"action\"\n (trigger)=\"onTriggerAction(action)\">\n </igo-actionbar-item>\n </ng-template>\n </mat-list>\n </mat-menu>\n</div>\n<mat-card *ngIf=\"mode === actionbarMode.Context\" class=\"context-menu-card mat-elevation-z4\">\n <mat-list>\n <ng-template ngFor let-action [ngForOf]=\"store.view.all$() | async\">\n <igo-actionbar-item\n color=\"accent\"\n [withTitle]=\"withTitle\"\n [withIcon]=\"withIcon\"\n [color]=\"color\"\n [action]=\"action\"\n (trigger)=\"onTriggerAction(action)\">\n </igo-actionbar-item>\n <br/>\n </ng-template>\n </mat-list>\n</mat-card>\n","import {\n Component,\n Input,\n HostBinding,\n ChangeDetectorRef,\n ChangeDetectionStrategy,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n ElementRef\n} from '@angular/core';\n\nimport { MediaService, Media } from '@igo2/core';\nimport { EntityStoreWatcher } from '../../entity';\nimport { Action } from '../shared/action.interfaces';\nimport { ActionbarMode } from '../shared/action.enums';\nimport { ActionStore } from '../shared/store';\nimport { Overlay } from '@angular/cdk/overlay';\nimport { BehaviorSubject } from 'rxjs';\n\n/**\n * A list of action buttons.\n * This component can be displayed in one of two way: 'dock' or 'overlay'\n */\n@Component({\n selector: 'igo-actionbar',\n templateUrl: './actionbar.component.html',\n styleUrls: ['./actionbar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ActionbarComponent implements OnDestroy, OnChanges {\n\n /**\n * Reference to the ActionbarMode enum for use in the template\n * @internal\n */\n actionbarMode = ActionbarMode;\n\n /**\n * Whether the actionbar is collapsed (Dock mode)\n * @internal\n */\n collapsed = false;\n\n /**\n * Toggle collapse action (Dock)\n * @internal\n */\n toggleCollapseAction = {\n id: 'actionbar_toggle',\n icon: 'dots-vertical',\n handler: () => {\n this.collapsed = !this.collapsed;\n }\n };\n\n /**\n * Action store watcher\n * @internal\n */\n private watcher: EntityStoreWatcher<Action>;\n\n /**\n * Height Condition for scroll button\n */\n heightCondition$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n\n /**\n * Position Condition for top scroll button\n */\n positionConditionTop$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(true);\n\n /**\n * Position Condition for low scroll button\n */\n positionConditionLow$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(true);\n\n /**\n * Action store\n */\n @Input() store: ActionStore;\n\n /**\n * Actionbar mode\n */\n @Input() mode: ActionbarMode = ActionbarMode.Dock;\n\n /**\n * Whether a toggle button should be displayed (Dock mode)\n */\n @Input() withToggleButton = false;\n\n /**\n * Whether a the actionbar should display buttons horizontally\n */\n @Input() horizontal = false;\n\n /**\n * Color\n */\n @Input() color = 'default';\n\n /**\n * Color of the button if action mode === overlay\n */\n @Input() iconColor = 'default';\n\n /**\n * Whether action titles are displayed\n */\n @Input() withTitle = true;\n\n /**\n * Whether action tooltips are displayed\n */\n @Input() withTooltip = true;\n\n /**\n * Whether action titles are displayed (condition for scroll button)\n */\n @Input() scrollActive = true;\n\n /**\n * Whether action icons are displayed\n */\n @Input() withIcon = true;\n\n /**\n * Which icon want to be shown\n */\n @Input() icon = 'dots-horizontal';\n\n /**\n * Overlay X position\n */\n @Input() xPosition = 'before';\n\n /**\n * Overlay Y position\n */\n @Input() yPosition = 'above';\n\n /**\n * Class to add to the actionbar overlay\n */\n @Input()\n set overlayClass(value: string) {\n this._overlayClass = value;\n }\n get overlayClass(): string {\n return [this._overlayClass, 'igo-actionbar-overlay'].join(' ');\n }\n private _overlayClass = '';\n\n /**\n * @ignore\n */\n @HostBinding('class.with-title')\n get withTitleClass() {\n return this.withTitle;\n }\n\n /**\n * @ignore\n */\n @HostBinding('class.with-icon')\n get withIconClass() {\n return this.withIcon;\n }\n\n /**\n * @ignore\n */\n @HostBinding('class.horizontal')\n get horizontalClass() {\n return this.horizontal;\n }\n\n get heightCondition(): boolean {\n const el = this.elRef.nativeElement;\n if (this.scrollActive === false) {\n if (el.clientHeight < el.scrollHeight) {\n return true;\n }\n }\n return false;\n }\n\n get positionConditionTop(): boolean {\n if (this.elRef.nativeElement.scrollTop === 0) {\n return false;\n }\n return true;\n }\n\n get positionConditionLow(): boolean {\n const el = this.elRef.nativeElement;\n if (el.scrollTop >= (el.scrollHeight - el.clientHeight)) {\n return false;\n }\n return true;\n }\n\n get isDesktop(): boolean {\n return this.mediaService.getMedia() === Media.Desktop;\n }\n\n constructor(\n public overlay: Overlay,\n private elRef: ElementRef,\n private cdRef: ChangeDetectorRef,\n public mediaService: MediaService) {}\n\n /**\n * @internal\n */\n ngOnChanges(changes: SimpleChanges) {\n const store = changes.store;\n if (store && store.currentValue !== store.previousValue) {\n if (this.watcher !== undefined) {\n this.watcher.destroy();\n }\n this.watcher = new EntityStoreWatcher(this.store, this.cdRef);\n }\n }\n\n /**\n * @internal\n */\n ngOnDestroy() {\n this.watcher.destroy();\n }\n\n /**\n * Invoke the action handler\n * @internal\n */\n onTriggerAction(action: Action) {\n const args = action.args || [];\n action.handler(...args);\n }\n\n scrollDown() {\n this.elRef.nativeElement.scrollBy(0, 52);\n }\n\n scrollUp() {\n this.elRef.nativeElement.scrollBy(0, -52);\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule } from '@angular/material/list';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nimport { IgoLanguageModule } from '@igo2/core';\n\nimport { ActionbarComponent } from './actionbar.component';\nimport { ActionbarItemComponent } from './actionbar-item.component';\n\n/**\n * @ignore\n */\n@NgModule({\n imports: [\n CommonModule,\n IgoLanguageModule,\n MatButtonModule,\n MatIconModule,\n MatTooltipModule,\n MatMenuModule,\n MatListModule,\n MatCardModule,\n MatCheckboxModule\n ],\n exports: [ActionbarComponent],\n declarations: [ActionbarComponent, ActionbarItemComponent]\n})\nexport class IgoActionbarModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { IgoActionbarModule } from './actionbar/actionbar.module';\n\n@NgModule({\n imports: [\n CommonModule,\n IgoActionbarModule\n ],\n exports: [\n IgoActionbarModule\n ],\n declarations: [],\n providers: []\n})\nexport class IgoActionModule {}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'igo-backdrop',\n templateUrl: './backdrop.component.html',\n styleUrls: ['./backdrop.component.scss']\n})\nexport class BackdropComponent {\n @Input()\n get shown(): boolean {\n return this._shown;\n }\n set shown(value: boolean) {\n this._shown = value;\n }\n private _shown: boolean;\n\n constructor() {}\n}\n","<div [ngClass]=\"{'igo-backdrop-shown': shown}\"></div>\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { BackdropComponent } from './backdrop.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [BackdropComponent],\n exports: [BackdropComponent]\n})\nexport class IgoBackdropModule {\n static forRoot(): ModuleWithProviders<IgoBackdropModule> {\n return {\n ngModule: IgoBackdropModule,\n providers: []\n };\n }\n}\n","import { Directive, Input, ElementRef, OnInit } from '@angular/core';\nimport { MatIconRegistry } from '@angular/material/icon';\n\n\n/**\n * This directive allow to add an icon inside a matBadge.\n * A value must be set into the matBadge directive ex: matBadge=\"icon\".\n * The badge content will be overrided by this current directive.\n */\n@Directive({\n selector: '[igoMatBadgeIcon]'\n})\nexport class IgoBadgeIconDirective implements OnInit {\n @Input()\n set igoMatBadgeIcon(value: string) {\n this.matIconRegistry.getNamedSvgIcon(value).subscribe((svgObj) => {\n this.svg = svgObj;\n this.updateSvg();\n });\n }\n private svg: SVGElement;\n\n @Input()\n set matBadgeHidden(value: boolean) {\n this.hidden = value;\n this.updateHidden();\n }\n private hidden = false;\n\n @Input()\n set matBadgeDisabled(value: boolean) {\n this.disabled = value;\n this.updateDisabled();\n }\n private disabled = false;\n\n @Input()\n set igoMatBadgeInverseColor(value: boolean) {\n this.inverseColor = value;\n this.updateColor();\n }\n private inverseColor = false;\n\n @Input()\n set igoMatBadgeInheritColor(value: boolean) {\n this.inheritColor = value;\n this.updateColor();\n }\n private inheritColor = false;\n\n @Input()\n set igoMatBadgeColor(value: string) {\n this.color = value;\n this.updateColor();\n }\n private color;\n\n @Input()\n set igoMatBadgeBackgroundColor(value: string) {\n this.backgroundColor = value;\n this.updateColor();\n }\n private backgroundColor;\n\n get badge() {\n return this.el.nativeElement.querySelector('.mat-badge-content');\n }\n\n private originalColor: string;\n\n constructor(\n private el: ElementRef,\n private matIconRegistry: MatIconRegistry\n ) {}\n\n ngOnInit() {\n this.badge.style.alignItems = 'center';\n this.badge.style.justifyContent = 'center';\n\n this.updateHidden();\n this.updateColor();\n this.updateSvg();\n }\n\n private updateSvg() {\n if (!this.badge) {\n return;\n }\n this.badge.innerHTML = '';\n if (this.svg) {\n this.badge.appendChild(this.svg);\n }\n }\n private updateColor() {\n if (!this.badge) {\n return;\n }\n\n if (this.color || this.backgroundColor) {\n this.badge.style.color = this.color ? this.color : '';\n this.badge.style.background = this.backgroundColor ? this.backgroundColor : '';\n } else if (this.inheritColor) {\n if (this.inverseColor) {\n this.badge.style.color = 'currentColor';\n this.badge.style.background = 'none';\n } else {\n this.badge.style.color = '';\n this.badge.style.background = 'currentColor';\n }\n } else if (!this.inheritColor) {\n if (this.inverseColor) {\n this.badge.style.color = window\n .getComputedStyle(this.badge, null)\n .getPropertyValue('background-color');\n this.badge.style.background = 'none';\n } else {\n this.badge.style.color = '';\n this.badge.style.background = '';\n }\n }\n this.originalColor = this.badge.style.color;\n this.updateDisabled();\n }\n\n private updateHidden() {\n if (!this.badge) {\n return;\n }\n this.badge.style.display = this.hidden ? 'none' : 'flex';\n }\n\n private updateDisabled() {\n if (!this.badge || !this.inverseColor) {\n return;\n }\n if (this.disabled) {\n this.originalColor = this.badge.style.color;\n this.badge.style.color = '#b9b9b9';\n } else {\n this.badge.style.color = this.originalColor;\n }\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { IgoBadgeIconDirective } from './badge-icon.directive';\nimport { MatBadgeModule } from '@angular/material/badge';\nimport { MatIconModule } from '@angular/material/icon';\n\n@NgModule({\n imports: [MatBadgeModule, MatIconModule],\n declarations: [IgoBadgeIconDirective],\n exports: [MatBadgeModule, IgoBadgeIconDirective]\n})\nexport class IgoMatBadgeIconModule {\n static forRoot(): ModuleWithProviders<IgoMatBadgeIconModule> {\n return {\n ngModule: IgoMatBadgeIconModule,\n providers: []\n };\n }\n}\n","import {\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Output\n} from '@angular/core';\n\n@Directive({\n selector: '[igoClickout]'\n})\nexport class ClickoutDirective {\n @Output() clickout = new EventEmitter<MouseEvent>();\n\n @HostListener('document:click', ['$event', '$event.target'])\n handleMouseClick(event: MouseEvent, target: HTMLElement) {\n if (!target) {\n return;\n }\n\n if (!this.el.nativeElement.contains(target)) {\n this.clickout.emit(event);\n }\n }\n\n constructor(private el: ElementRef) {}\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { ClickoutDirective } from './clickout.directive';\n\n@NgModule({\n imports: [],\n declarations: [ClickoutDirective],\n exports: [ClickoutDirective]\n})\nexport class IgoClickoutModule {\n static forRoot(): ModuleWithProviders<IgoClickoutModule> {\n return {\n ngModule: IgoClickoutModule,\n providers: []\n };\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'clone'\n})\nexport class ClonePipe implements PipeTransform {\n transform(value: any, args?: any): any {\n if (value === undefined) {\n return value;\n }\n\n if (value instanceof Array) {\n return value.map(obj => Object.assign(Object.create(obj), obj));\n } else {\n return Object.assign(Object.create(value), value);\n }\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { ClonePipe } from './clone.pipe';\n\n@NgModule({\n imports: [],\n declarations: [ClonePipe],\n exports: [ClonePipe]\n})\nexport class IgoCloneModule {\n static forRoot(): ModuleWithProviders<IgoCloneModule> {\n return {\n ngModule: IgoCloneModule,\n providers: []\n };\n }\n}\n","import {\n Directive,\n Input,\n Output,\n EventEmitter,\n HostListener,\n ElementRef,\n Renderer2\n} from '@angular/core';\n\n@Directive({\n selector: '[igoCollapse]'\n})\nexport class CollapseDirective {\n @Input()\n get target() {\n return this._target;\n }\n set target(value: Element) {\n this._target = value;\n }\n private _target: Element;\n\n @Input()\n get collapsed(): boolean {\n return this._collapsed;\n }\n set collapsed(collapsed: boolean) {\n collapsed ? this.collapseTarget() : this.expandTarget();\n this._collapsed = collapsed;\n this.toggle.emit(collapsed);\n }\n private _collapsed = false;\n\n @Output() toggle: EventEmitter<boolean> = new EventEmitter();\n\n @HostListener('click')\n click() {\n this.collapsed = !this.collapsed;\n }\n\n constructor(private renderer: Renderer2, private el: ElementRef) {}\n\n private collapseTarget() {\n this.renderer.addClass(this.target, 'igo-collapsed');\n this.renderer.addClass(this.el.nativeElement, 'collapsed');\n }\n\n private expandTarget() {\n this.renderer.removeClass(this.target, 'igo-collapsed');\n this.renderer.removeClass(this.el.nativeElement, 'collapsed');\n }\n}\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'igo-collapsible',\n templateUrl: './collapsible.component.html',\n styleUrls: ['./collapsible.component.scss']\n})\nexport class CollapsibleComponent {\n @Input()\n get title() {\n return this._title;\n }\n set title(value: string) {\n this._title = value;\n }\n private _title = '';\n\n @Input()\n get collapsed() {\n return this._collapsed;\n }\n set collapsed(value: boolean) {\n this._collapsed = value;\n this.toggle.emit(value);\n }\n private _collapsed = false;\n\n @Output() toggle: EventEmitter<boolean> = new EventEmitter();\n}\n","<mat-list-item>\n <mat-icon\n svgIcon=\"chevron-up\" \n class=\"igo-chevron\"\n mat-list-avatar\n igoCollapse\n [target]=\"content\"\n [collapsed]=\"collapsed\"\n (toggle)=\"collapsed = $event\">\n </mat-icon>\n <h4 matLine>{{title}}</h4>\n</mat-list-item>\n\n<div #content>\n <ng-content></ng-content>\n</div>\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule } from '@angular/material/list';\n\nimport { CollapseDirective } from './collapse.directive';\nimport { CollapsibleComponent } from './collapsible.component';\n\n@NgModule({\n imports: [MatIconModule, MatListModule],\n declarations: [CollapsibleComponent, CollapseDirective],\n exports: [CollapsibleComponent, CollapseDirective]\n})\nexport class IgoCollapsibleModule {\n static forRoot(): ModuleWithProviders<IgoCollapsibleModule> {\n return {\n ngModule: IgoCollapsibleModule,\n providers: []\n };\n }\n}\n","import { Component } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'igo-confirm-dialog',\n templateUrl: './confirm-dialog.component.html',\n styleUrls: ['./confirm-dialog.component.scss']\n})\nexport class ConfirmDialogComponent {\n public confirmMessage: string;\n\n constructor(public dialogRef: MatDialogRef<ConfirmDialogComponent>) {}\n}\n","<h2 mat-dialog-title class=\"mat-typography\">{{'igo.common.confirmDialog.title' | translate}}</h2>\n<div mat-dialog-content class=\"mat-typography\">{{confirmMessage}}</div>\n<div mat-dialog-actions>\n <button mat-button color=\"primary\" (click)=\"dialogRef.close(true)\">{{'igo.common.confirmDialog.confirmBtn' | translate}}</button>\n <button mat-button (click)=\"dialogRef.close(false)\">{{'igo.common.confirmDialog.cancelBtn' | translate}}</button>\n</div>\n","import { Injectable } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\n\nimport { Observable } from 'rxjs';\n\nimport { ConfirmDialogComponent } from './confirm-dialog.component';\n\n@Injectable()\nexport class ConfirmDialogService {\n constructor(private dialog: MatDialog) {}\n\n public open(message: string): Observable<any> {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n disableClose: false\n });\n dialogRef.componentInstance.confirmMessage = message;\n\n return dialogRef.afterClosed();\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\n\nimport { IgoLanguageModule } from '@igo2/core';\n\nimport { ConfirmDialogComponent } from './confirm-dialog.component';\nimport { ConfirmDialogService } from './confirm-dialog.service';\n\n@NgModule({\n imports: [MatButtonModule, MatDialogModule, IgoLanguageModule],\n declarations: [ConfirmDialogComponent],\n exports: [ConfirmDialogComponent],\n providers: [ConfirmDialogService]\n})\nexport class IgoConfirmDialogModule {\n static forRoot(): ModuleWithProviders<IgoConfirmDialogModule> {\n return {\n ngModule: IgoConfirmDialogModule,\n providers: []\n };\n }\n}\n","import {\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n Output,\n ViewContainerRef\n} from '@angular/core';\nimport type { TemplateRef } from '@angular/core';\n\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { fromEvent, Subscription } from 'rxjs';\nimport { filter, take } from 'rxjs/operators';\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\n\n@Directive({\n selector: '[igoContextMenu]'\n})\nexport class ContextMenuDirective {\n private overlayRef: OverlayRef | null;\n private sub: Subscription;\n\n @Input('igoContextMenu') menuContext: TemplateRef<any>;\n @Output() menuPosition = new EventEmitter<{ x: number; y: number }>();\n\n constructor(\n public overlay: Overlay,\n public viewContainerRef: ViewContainerRef,\n private elementRef: ElementRef\n ) {}\n\n @HostListener('longpress', ['$event'])\n @HostListener('contextmenu', ['$event'])\n public onContextMenu(e: MouseEvent | TouchEvent): void {\n let x;\n let y;\n if (e instanceof TouchEvent) {\n x = e.touches[0].pageX;\n y = e.touches[0].pageY;\n } else if (e instanceof MouseEvent) {\n x = e.x;\n y = e.y;\n }\n if (!x || !y) {\n return;\n }\n\n this.close();\n e.preventDefault();\n this.menuPosition.emit({ x, y });\n this.overlayRef = null;\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo({ x, y })\n .withPositions([\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top'\n }\n ]);\n this.overlayRef = this.overlay.create({\n positionStrategy,\n scrollStrategy: this.overlay.scrollStrategies.close()\n });\n this.overlayRef.attach(\n new TemplatePortal(this.menuContext, this.viewContainerRef, {\n $implicit: undefined\n })\n );\n\n this.sub = fromEvent<MouseEvent>(document, 'click')\n .pipe(\n filter(event => {\n const clickTarget = event.target as HTMLElement;\n this.close();\n return (\n !!this.overlayRef &&\n !this.overlayRef.overlayElement.contains(clickTarget)\n );\n }),\n take(1)\n )\n .subscribe(() => this.close());\n\n this.sub = fromEvent<MouseEvent>(document, 'contextmenu')\n .pipe(\n filter(event => {\n const clickTarget = event.target as HTMLElement;\n if (\n clickTarget &&\n !this.elementRef.nativeElement.contains(clickTarget) &&\n !this.overlayRef.overlayElement.contains(clickTarget)\n ) {\n return true;\n } else {\n event.preventDefault();\n }\n }),\n take(1)\n )\n .subscribe(() => this.close());\n }\n\n close() {\n if (this.overlayRef) {\n this.overlayRef.dispose();\n this.overlayRef = null;\n }\n if (this.sub) {\n this.sub.unsubscribe();\n }\n }\n}\n","import { Directive, HostListener, Output, EventEmitter, Input } from '@angular/core';\nimport { userAgent } from '@igo2/utils';\n\n\n/**\n * IgoLongPress trigger longpress event after a define duration.\n * This directive exist to patch the unavailable contextmenu event on iOS.\n * @param touchDuration touch duration in ms, default value is 400ms\n * @param iOSOnly define if longpress is triggered only for iOS, default value = true\n */\n@Directive({\n selector: '[igoLongPress]'\n})\nexport class LongPressDirective {\n private touchTimeout: any;\n @Input() touchDuration: number = 400;\n @Input() onlyIOS: boolean = true;\n @Output() longpress = new EventEmitter();\n\n constructor() { }\n\n\n @HostListener('touchstart', ['$event'])\n public touchstart(e: TouchEvent) {\n this.touchTimeout = setTimeout(() => {\n if (this.onlyIOS) {\n if (userAgent.getOSName() === 'iOS') {\n this.longpress.emit(e);\n }\n } else {\n this.longpress.emit(e);\n }\n }, this.touchDuration);\n }\n @HostListener('touchmove')\n @HostListener('touchcancel')\n @HostListener('touchend')\n public touchend() {\n this.touchEnd();\n }\n\n\n private touchEnd() {\n clearTimeout(this.touchTimeout);\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { ContextMenuDirective } from './context-menu.directive';\nimport { LongPressDirective } from './long-press.directive';\n\n@NgModule({\n imports: [],\n declarations: [ContextMenuDirective, LongPressDirective],\n exports: [ContextMenuDirective, LongPressDirective]\n})\nexport class IgoContextMenuModule {\n static forRoot(): ModuleWithProviders<IgoContextMenuModule> {\n return {\n ngModule: IgoContextMenuModule,\n providers: []\n };\n }\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'igo-custom-html',\n templateUrl: './custom-html.component.html',\n styleUrls: ['./custom-html.component.scss']\n})\nexport class CustomHtmlComponent {\n @Input()\n get html(): string {\n return this._html;\n }\n set html(value: string) {\n this._html = value;\n }\n private _html = '';\n\n constructor() {}\n}\n","<div class=\"custom-html\" [innerHTML]=\"html | sanitizeHtml\"></div>\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nimport { IgoLanguageModule } from '@igo2/core';\n\nimport { CustomHtmlComponent } from './custom-html.component';\nimport { SanitizeHtmlPipe } from './custom-html.pipe';\n\n@NgModule({\n imports: [\n CommonModule,\n MatIconModule,\n MatTooltipModule,\n MatInputModule,\n MatButtonModule,\n IgoLanguageModule\n ],\n exports: [SanitizeHtmlPipe, CustomHtmlComponent],\n declarations: [SanitizeHtmlPipe, CustomHtmlComponent]\n})\nexport class IgoCustomHtmlModule {\n static forRoot(): ModuleWithProviders<IgoCustomHtmlModule> {\n return {\n ngModule: IgoCustomHtmlModule\n };\n }\n}\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { catchError, map } from 'rxjs/operators';\nimport { throwError } from 'rxjs';\n\nimport { DOMOptions, DOMValue } from './dom.interfaces';\nimport { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DOMService {\n\n constructor(private http: HttpClient) {}\n\n async getDom(dom: DOMOptions): Promise<DOMValue[]> {\n const url = dom.url;\n let result: DOMValue[];\n\n await this.http.get<any>(url).pipe(\n map(response => {\n result = response;\n return response;\n }),\n catchError((err: HttpErrorResponse) => {\n return throwError(err);\n })\n ).toPromise();\n\n return result;\n }\n\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { DOMService } from './dom.service';\n\n@NgModule({\n providers: [DOMService]\n})\nexport class IgoDOMModule {\n static forRoot(): ModuleWithProviders<IgoDOMModule> {\n return {\n ngModule: IgoDOMModule,\n providers: [\n DOMService\n ]\n };\n }\n}\n","import {\r\n Directive,\r\n HostListener,\r\n HostBinding,\r\n EventEmitter,\r\n Output,\r\n Input\r\n} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[igoDragAndDrop]'\r\n})\r\nexport class DragAndDropDirective {\r\n\r\n @Input() allowedExtensions: Array<string> = [];\r\n\r\n @Output() protected filesDropped: EventEmitter<File[]> = new EventEmitter();\r\n\r\n @Output() protected filesInvalid: EventEmitter<File[]> = new EventEmitter();\r\n\r\n @HostBinding('style.background') private background = 'inherit';\r\n\r\n @HostListener('dragover', ['$event'])\r\n public onDragOver(evt) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n this.background = '#999';\r\n }\r\n\r\n @HostListener('dragleave', ['$event'])\r\n public onDragLeave(evt) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n this.background = 'inherit';\r\n }\r\n\r\n @HostListener('drop', ['$event'])\r\n public onDrop(evt) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n if (evt.alreadyFired) {\r\n return;\r\n }\r\n evt.alreadyFired = true;\r\n\r\n this.background = 'inherit';\r\n const filesObj = this.validExtensions(evt);\r\n if (filesObj.valid.length) {\r\n this.filesDropped.emit(filesObj.valid);\r\n }\r\n if (filesObj.invalid.length) {\r\n this.filesInvalid.emit(filesObj.invalid);\r\n }\r\n }\r\n\r\n private validExtensions(evt) {\r\n const files = evt.dataTransfer.files;\r\n const filesObj = {\r\n valid: [],\r\n invalid: []\r\n };\r\n if (files.length > 0) {\r\n for (const file of files) {\r\n const ext = file.name.split('.')[file.name.split('.').length - 1];\r\n if (\r\n this.allowedExtensions.length === 0 ||\r\n (\r\n this.allowedExtensions.lastIndexOf(ext) !== -1 &&\r\n file.size !== 0\r\n )\r\n ) {\r\n filesObj.valid.push(file);\r\n } else {\r\n filesObj.invalid.push(file);\r\n }\r\n }\r\n }\r\n\r\n return filesObj;\r\n }\r\n}\r\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { DragAndDropDirective } from './drag-drop.directive';\n\n@NgModule({\n imports: [],\n declarations: [DragAndDropDirective],\n exports: [DragAndDropDirective]\n})\nexport class IgoDrapDropModule {\n static forRoot(): ModuleWithProviders<IgoDrapDropModule> {\n return {\n ngModule: IgoDrapDropModule,\n providers: []\n };\n }\n}\n","import {\n ComponentFactory,\n ComponentRef,\n ViewContainerRef\n} from '@angular/core';\n\nimport { Observable, Subscription } from 'rxjs';\n\n/**\n * This class is used in the DynamicComponentOutlet component. It holds\n * a reference to a component factory and can render that component\n * in a target element on demand. It's also possible to set inputs\n * and to subscribe to outputs.\n */\nexport class DynamicComponent<C> {\n\n /**\n * Component reference\n */\n private componentRef: ComponentRef<C>;\n\n /**\n * Subscriptions to the component's outputs. Those need\n * to be unsubscribed when the component is destroyed.\n */\n private subscriptions: Subscription[] = [];\n\n /**\n * Component target element\n */\n private target: ViewContainerRef;\n\n /**\n * Component inputs\n */\n private inputs: {[key: string]: any} = {};\n\n /**\n * Subscriptions to the component's async inputs\n */\n private inputs$$: {[key: string]: Subscription} = {};\n\n /**\n * Subscribers to the component's outputs\n */\n private subscribers: {[key: string]: (event: any) => void} = {};\n\n constructor(private componentFactory: ComponentFactory<C>) {}\n\n /**\n * Render the component to a target element.\n * Set it's inputs and subscribe to it's outputs.\n * @param target Target element\n */\n setTarget(target: ViewContainerRef) {\n this.target = target;\n this.componentRef = target.createComponent(this.componentFactory);\n this.updateInputs(this.inputs);\n this.updateSubscribers(this.subscribers);\n }\n\n /**\n * Destroy this component. That means, removing from it's target\n * element and unsubscribing to it's outputs.\n */\n destroy() {\n if (this.target !== undefined) {\n this.target.clear();\n }\n if (this.componentRef !== undefined) {\n this.componentRef.destroy();\n this.componentRef = undefined;\n }\n this.unobserveAllInputs();\n this.unsubscribeAll();\n }\n\n /**\n * Update the component inputs. This is an update so any\n * key not defined won't be overwritten.\n */\n updateInputs(inputs: {[key: string]: any}) {\n this.inputs = inputs;\n if (this.componentRef === undefined) {\n return;\n }\n\n const instance = this.componentRef.instance;\n const allowedInputs = this.componentFactory.inputs;\n allowedInputs.forEach((value: {propName: string; templateName: string; }) => {\n const key = value.propName;\n\n this.unobserveInput(key);\n\n const inputValue = inputs[key];\n if (inputs.hasOwnProperty(key)) {\n if (inputValue instanceof Observable) {\n this.observeInput(key, inputValue);\n } else {\n this.setInputValue(instance, key, inputValue);\n }\n }\n });\n\n if (typeof (instance as any).onUpdateInputs === 'function') {\n (instance as any).onUpdateInputs();\n }\n }\n\n /**\n * Set an instance's input value\n * @param instance Component instance\n * @param key Input key\n * @param value Input value\n */\n private setInputValue(instance: C, key: string, value: any) {\n const currentValue = instance[key];\n if (value === currentValue) {\n return;\n }\n\n const prototype = Object.getPrototypeOf(instance);\n const descriptor = Object.getOwnPropertyDescriptor(prototype, key);\n if (descriptor !== undefined && descriptor.set !== undefined) {\n descriptor.set.call(instance, value);\n } else {\n instance[key] = value;\n }\n }\n\n /**\n * Update the component subscribers. This is an update so any\n * key not defined won't be overwritten.\n */\n updateSubscribers(subscribers: {[key: string]: (event: any) => void}) {\n this.subscribers = subscribers;\n if (this.componentRef === undefined) {\n return;\n }\n\n const instance = this.componentRef.instance;\n const allowedSubscribers = this.componentFactory.outputs;\n allowedSubscribers.forEach((value: {propName: string; templateName: string; }) => {\n const key = value.propName;\n if (subscribers.hasOwnProperty(key)) {\n const emitter = instance[key];\n const subscriber = subscribers[key];\n if (Array.isArray(subscriber)) {\n subscriber.forEach((_subscriber) => {\n this.subscriptions.push(emitter.subscribe(_subscriber));\n });\n } else {\n this.subscriptions.push(emitter.subscribe(subscriber));\n }\n }\n });\n }\n\n /**\n * Subscribe to an observable input and update the component's input value\n * accordingly\n * @param key Input key\n * @param observable Observable\n */\n private observeInput(key: string, observable: Observable<any>) {\n this.inputs$$[key] = observable.subscribe((value: any) => {\n const instance = this.componentRef.instance;\n this.setInputValue(instance, key, value);\n\n if (typeof (instance as any).onUpdateInputs === 'function') {\n (instance as any).onUpdateInputs();\n }\n });\n }\n\n /**\n * Unsubscribe to an observable input\n * @param key Input key\n */\n private unobserveInput(key: string) {\n if (this.inputs$$[key] !== undefined) {\n this.inputs$$[key].unsubscribe();\n this.inputs$$[key] = undefined;\n }\n }\n\n /**\n * Unsubscribe to all outputs.\n */\n private unobserveAllInputs() {\n Object.values(this.inputs$$).forEach((s: Subscription | undefined) => {\n if (s !== undefined) {\n s.unsubscribe();\n }\n });\n this.inputs$$ = {};\n }\n\n /**\n * Unsubscribe to all outputs.\n */\n private unsubscribeAll() {\n this.subscriptions.forEach((s: Subscription) => s.unsubscribe());\n this.subscriptions = [];\n }\n\n}\n","import {\n ComponentFactoryResolver,\n Injectable\n} from '@angular/core';\n\nimport { DynamicComponent } from './dynamic-component';\n\n/**\n * Service to creates DynamicComponent instances from base component classes\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DynamicComponentService {\n\n constructor(private resolver: ComponentFactoryResolver) {}\n\n /**\n * Creates a DynamicComponent instance from a base component class\n * @param componentCls The component class\n * @returns DynamicComponent instance\n */\n create(componentCls: any): DynamicComponent<any> {\n const factory = this.resolver.resolveComponentFactory(componentCls as any);\n return new DynamicComponent<typeof componentCls>(factory);\n }\n}\n","import {\n Input,\n ChangeDetectorRef,\n ChangeDetectionStrategy,\n Component,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n ViewContainerRef,\n ViewChild\n} from '@angular/core';\n\nimport { ObjectUtils } from '@igo2/utils';\n\nimport { DynamicComponent } from '../shared/dynamic-component';\nimport { DynamicComponentService } from '../shared/dynamic-component.service';\n\n@Component({\n selector: 'igo-dynamic-outlet',\n templateUrl: 'dynamic-outlet.component.html',\n styleUrls: ['dynamic-outlet.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DynamicOutletComponent implements OnChanges, OnDestroy {\n /**\n * The dynamic component base class or the dynamic component itself\n */\n @Input() component: DynamicComponent<any> | any;\n\n /**\n * The dynamic component inputs\n */\n @Input() inputs: { [key: string]: any } = {};\n\n /**\n * The subscribers to the dynamic component outputs\n */\n @Input() subscribers: { [key: string]: (event: any) => void } = {};\n\n /**\n * The dynamic component\n */\n private dynamicComponent: DynamicComponent<any>;\n\n /**\n * The view element to render the component to\n * @ignore\n */\n @ViewChild('target', { read: ViewContainerRef, static: true })\n private target: ViewContainerRef;\n\n constructor(\n private dynamicComponentService: DynamicComponentService,\n private cdRef: ChangeDetectorRef\n ) {}\n\n /**\n * If the dynamic component changes, create it.\n * If the inputs or subscribers change, update the current component's\n * inputs or subscribers.\n * @internal\n */\n ngOnChanges(changes: SimpleChanges) {\n const component = changes.component;\n const inputs = changes.inputs;\n const subscribers = changes.subscribers;\n const eq = ObjectUtils.objectsAreEquivalent;\n\n if (!component || !component.currentValue) {\n return;\n }\n\n if (component.currentValue !== component.previousValue) {\n this.createComponent(component.currentValue);\n } else {\n const inputsAreEquivalents =\n inputs && eq(inputs.currentValue || {}, inputs.previousValue || {});\n const subscribersAreEquivalents =\n subscribers &&\n eq(subscribers.currentValue || {}, subscribers.previousValue || {});\n\n if (inputsAreEquivalents === false) {\n this.updateInputs();\n }\n\n if (subscribersAreEquivalents === false) {\n this.updateSubscribers();\n }\n }\n this.cdRef.detectChanges();\n }\n\n /**\n * Destroy the dynamic component and all it's subscribers\n * @internal\n */\n ngOnDestroy() {\n if (this.dynamicComponent) {\n this.dynamicComponent.destroy();\n }\n }\n\n /**\n * Create a DynamicComponent out of the component class and render it.\n * @internal\n */\n private createComponent(component: DynamicComponent<any> | any) {\n if (this.dynamicComponent !== undefined) {\n this.dynamicComponent.destroy();\n }\n this.dynamicComponent =\n component instanceof DynamicComponent\n ? component\n : this.dynamicComponentService.create(component);\n this.renderComponent();\n }\n\n /**\n * Create and render the dynamic component. Set it's inputs and subscribers\n * @internal\n */\n private renderComponent() {\n this.updateInputs();\n this.updateSubscribers();\n this.dynamicComponent.setTarget(this.target);\n }\n\n /**\n * Update the dynamic component inputs. This is an update so any\n * key not defined won't be overwritten.\n * @internal\n */\n private updateInputs() {\n this.dynamicComponent.updateInputs(this.inputs);\n }\n\n /**\n * Update the dynamic component subscribers. This is an update so any\n * key not defined won't be overwritten.\n * @internal\n */\n private updateSubscribers() {\n this.dynamicComponent.updateSubscribers(this.subscribers);\n }\n}\n","<ng-template #target></ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { DynamicOutletComponent } from './dynamic-outlet.component';\n\n/**\n * @ignore\n */\n@NgModule({\n imports: [\n CommonModule\n ],\n exports: [\n DynamicOutletComponent\n ],\n declarations: [\n DynamicOutletComponent\n ]\n})\nexport class IgoDynamicOutletModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { IgoDynamicOutletModule } from './dynamic-outlet/dynamic-outlet.module';\nimport { DynamicComponentService } from './shared/dynamic-component.service';\n\n@NgModule({\n imports: [\n CommonModule,\n IgoDynamicOutletModule\n ],\n exports: [\n IgoDynamicOutletModule\n ],\n providers: [\n DynamicComponentService\n ]\n})\nexport class IgoDynamicComponentModule {}\n","import { Component, OnInit, OnDestroy, Input, ViewChild, ElementRef } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { Media, MediaService } from '@igo2/core';\n\nimport { FlexibleState, FlexibleDirection } from './flexible.type';\n\n@Component({\n selector: 'igo-flexible',\n templateUrl: './flexible.component.html',\n styleUrls: ['./flexible.component.scss']\n})\nexport class FlexibleComponent implements OnInit, OnDestroy {\n static transitionTime = 250;\n\n @ViewChild('flexibleMain', { static: true }) main;\n\n @Input()\n get initial(): string {\n return this._initial;\n }\n set initial(value: string) {\n this._initial = value;\n }\n private _initial = '0';\n\n @Input()\n get collapsed(): string {\n return this._collapsed;\n }\n set collapsed(value: string) {\n this._collapsed = value;\n }\n private _collapsed = '0';\n\n @Input()\n get expanded(): string {\n return this._expanded;\n }\n set expanded(value: string) {\n this._expanded = value;\n }\n private _expanded = '100%';\n\n @Input()\n get initialMobile(): string {\n return this._initialMobile;\n }\n set initialMobile(value: string) {\n this._initialMobile = value;\n }\n private _initialMobile: string = this.expanded;\n\n @Input()\n get collapsedMobile(): string {\n return this._collapsedMobile;\n }\n set collapsedMobile(value: string) {\n this._collapsedMobile = value;\n }\n private _collapsedMobile: string = this.collapsed;\n\n @Input()\n get expandedMobile(): string {\n return this._expandedMobile;\n }\n set expandedMobile(value: string) {\n this._expandedMobile = value;\n }\n private _expandedMobile: string = this.expanded;\n\n @Input()\n get direction(): FlexibleDirection {\n return this._direction;\n }\n set direction(value: FlexibleDirection) {\n this._direction = value;\n }\n private _direction: FlexibleDirection = 'column';\n\n @Input()\n get state(): FlexibleState {\n return this._state;\n }\n set state(value: FlexibleState) {\n const sizes = {\n initial: this.initial,\n collapsed: this.collapsed,\n expanded: this.expanded\n };\n\n if (this.mediaService.isMobile()) {\n Object.assign(sizes, {\n initial: this.initialMobile,\n collapsed: this.collapsedMobile,\n expanded: this.expandedMobile\n });\n }\n\n const size = sizes[value];\n if (size !== undefined) {\n this.setSize(size);\n setTimeout(() => {\n this._state = value;\n }, FlexibleComponent.transitionTime);\n }\n }\n private _state: FlexibleState = 'initial';\n\n private mediaService$$: Subscription;\n\n constructor(private el: ElementRef, private mediaService: MediaService) {}\n\n ngOnInit() {\n this.el.nativeElement.className += this.direction;\n\n // Since this component supports different sizes\n // on mobile, force a redraw when the media changes\n this.mediaService$$ = this.mediaService.media$.subscribe(\n (media: Media) => (this.state = this.state)\n );\n }\n\n ngOnDestroy() {\n if (this.mediaService$$) {\n this.mediaService$$.unsubscribe();\n }\n }\n\n private setSize(size: string) {\n this._state = 'transition';\n\n if (this.direction === 'column') {\n this.main.nativeElement.style.height = size;\n } else if (this.direction === 'row') {\n this.main.nativeElement.style.width = size;\n }\n }\n}\n","<div #flexibleMain class=\"igo-flexible-main {{state}} {{direction}}\">\n <div class=\"igo-container\">\n <ng-content></ng-content>\n </div>\n</div>\n<div class=\"igo-flexible-fill\">\n <div>\n \t<div class=\"igo-container\">\n <ng-content select=\"[igoFlexibleFill]\"></ng-content>\n </div>\n </div>\n</div>\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { FlexibleComponent } from './flexible.component';\n\n@NgModule({\n imports: [],\n declarations: [FlexibleComponent],\n exports: [FlexibleComponent]\n})\nexport class IgoFlexibleModule {\n static forRoot(): ModuleWithProviders<IgoFlexibleModule> {\n return {\n ngModule: IgoFlexibleModule,\n providers: []\n };\n }\n}\n","import { AbstractControl } from '@angular/forms';\n\nimport { Form, FormField, FormFieldGroup } from './form.interfaces';\n\nexport function formControlIsRequired(control: AbstractControl): boolean {\n if (control.validator) {\n const validator = control.validator({} as AbstractControl);\n if (validator && validator.required) {\n return true;\n }\n }\n\n if ((control as any).controls) {\n const requiredControl = Object.keys((control as any).controls).find((key: string) => {\n return formControlIsRequired((control as any).controls[key]);\n });\n return requiredControl !== undefined;\n }\n\n return false;\n}\n\nexport function getDefaultErrorMessages(): {[key: string]: string} {\n return {\n required: 'igo.common.form.errors.required'\n };\n}\n\nexport function getControlErrorMessage(control: AbstractControl, messages: {[key: string]: string}): string {\n const errors = control.errors || {};\n const errorKeys = Object.keys(errors);\n const errorMessages = errorKeys\n .map((key: string) => messages[key])\n .filter((message: string) => message !== undefined);\n return errorMessages.length > 0 ? errorMessages[0] : '';\n}\n\nexport function getAllFormFields(form: Form): FormField[] {\n return form.groups.reduce((acc: FormField[], group: FormFieldGroup) => {\n return acc.concat(group.fields);\n }, [].concat(form.fields));\n}\n\nexport function getFormFieldByName(form: Form, name: string): FormField {\n const fields = getAllFormFields(form);\n return fields.find((field: FormField) => {\n return field.name === name;\n });\n}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n OnChanges,\n SimpleChanges,\n ChangeDetectionStrategy,\n ViewChild,\n ElementRef\n} from '@angular/core';\n\nimport { t } from 'typy';\n\nimport { Form, FormField, FormFieldGroup } from '../shared/form.interfaces';\nimport { getAllFormFields } from '../shared/form.utils';\n\n/**\n * A configurable form\n */\n@Component({\n selector: 'igo-form',\n templateUrl: './form.component.html',\n styleUrls: ['./form.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormComponent implements OnChanges {\n\n /**\n * Form\n */\n @Input() form: Form;\n\n /**\n * Input data\n */\n @Input() formData: { [key: string]: any};\n\n /**\n * Form autocomplete\n */\n @Input() autocomplete: string = 'off';\n\n /**\n * Event emitted when the form is submitted\n */\n @Output() submitForm = new EventEmitter<{[key: string]: any}>();\n\n @ViewChild('buttons', { static: true }) buttons: ElementRef;\n\n get hasButtons(): boolean {\n return this.buttons.nativeElement.children.length !== 0;\n }\n\n constructor() {}\n\n /**\n * Is the entity or the template change, recreate the form or repopulate it.\n * @internal\n */\n ngOnChanges(changes: SimpleChanges) {\n const formData = changes.formData;\n if (formData && formData.currentValue !== formData.previousValue) {\n if (formData.currentValue === undefined) {\n this.clear();\n } else {\n this.setData(formData.currentValue);\n }\n }\n }\n\n /**\n * Transform the form data to a feature and emit an event\n * @param event Form submit event\n * @internal\n */\n onSubmit() {\n this.submitForm.emit(this.getData());\n }\n\n getData(): { [key: string]: any} {\n const data = {};\n getAllFormFields(this.form).forEach((field: FormField) => {\n this.updateDataWithFormField(data, field);\n });\n return data;\n }\n\n private setData(data: {[key: string]: any}) {\n this.form.fields.forEach((field: FormField) => {\n field.control.setValue(t(data, field.name).safeObject);\n });\n\n this.form.groups.forEach((group: FormFieldGroup) => {\n group.fields.forEach((field: FormField) => {\n field.control.setValue(t(data, field.name).safeObject);\n });\n });\n }\n\n private updateDataWithFormField(data: { [key: string]: any}, field: FormField) {\n const control = field.control;\n if (!control.disabled) {\n data[field.name] = control.value;\n }\n }\n\n /**\n * Clear form\n */\n private clear() {\n this.form.control.reset();\n }\n\n}\n","\n<form\n [autocomplete]=\"autocomplete\"\n [formGroup]=\"form.control\"\n (ngSubmit)=\"onSubmit()\">\n <div class=\"igo-form-body\" [ngClass]=\"{'igo-form-body-with-buttons': hasButtons}\">\n <div class=\"igo-form-content\">\n <ng-content></ng-content>\n </div>\n <div #buttons class=\"igo-form-buttons\">\n <ng-content select=\"[formButtons]\"></ng-content>\n </div>\n </div>\n</form>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { FormComponent } from './form.component';\n\n/**\n * @ignore\n */\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule\n ],\n exports: [\n FormComponent,\n FormsModule,\n ReactiveFormsModule\n ],\n declarations: [\n FormComponent\n ]\n})\nexport class IgoFormFormModule {}\n","import { Injectable } from '@angular/core';\nimport { UntypedFormBuilder, Validators, ValidatorFn } from '@angular/forms';\n\nimport {\n Form,\n FormField,\n FormFieldConfig,\n FormFieldGroup,\n FormFieldGroupConfig\n} from './form.interfaces';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FormService {\n\n constructor(private formBuilder: UntypedFormBuilder) {}\n\n form(fields: FormField[], groups: FormFieldGroup[]): Form {\n const control = this.formBuilder.group({});\n fields.forEach((field: FormField) => {\n control.addControl(field.name, field.control);\n });\n groups.forEach((group: FormFieldGroup) => {\n control.addControl(group.name, group.control);\n });\n\n return {fields, groups, control};\n }\n\n group(config: FormFieldGroupConfig, fields: FormField[]): FormFieldGroup {\n const options = config.options || {};\n const control = this.formBuilder.group({});\n fields.forEach((field: FormField) => {\n control.addControl(field.name, field.control);\n });\n\n if (options.validator) {\n const validators = this.getValidators(options.validator); // convert string to actual validator\n control.setValidators(validators);\n }\n\n return Object.assign({}, config, {fields, control}) as FormFieldGroup;\n }\n\n field(config: FormFieldConfig): FormField {\n const options = config.options || {};\n const state = {\n value: '',\n disabled: options.disabled\n };\n const control = this.formBuilder.control(state);\n\n if (options.validator) {\n const validators = this.getValidators(options.validator); // convert string to actual validator\n control.setValidators(validators);\n }\n\n return Object.assign({type: 'text'}, config, {control}) as FormField;\n }\n\n extendFieldConfig(config: FormFieldConfig, partial: Partial<FormFieldConfig>): FormFieldConfig {\n const options = Object.assign({}, config.options || {}, partial.options || {});\n const inputs = Object.assign({}, config.inputs || {}, partial.inputs || {});\n const subscribers = Object.assign({}, config.subscribers || {}, partial.subscribers || {});\n return Object.assign({}, config, {options, inputs, subscribers});\n }\n\n private getValidators(validatorOption: string | string[] | ValidatorFn): ValidatorFn | ValidatorFn[] {\n if (Array.isArray(validatorOption)) {\n return validatorOption.map((validatorStr) => {\n return this.getValidator(validatorStr);\n });\n }\n\n return this.getValidator(validatorOption);\n }\n\n private getValidator(validatorStr: string | ValidatorFn): ValidatorFn {\n if (typeof validatorStr !== 'string') {\n return validatorStr;\n }\n\n // regex pattern to extract arguments from string for e.g applying on \"minLength(8)\" would extract 8\n const re = /^([a-zA-Z]{3,15})\\((.{0,20})\\)$/;\n const match = validatorStr.match(re);\n\n if (!match) {\n return Validators[validatorStr];\n }\n\n const name = match[1];\n const args = match[2];\n return Validators[name](args);\n }\n\n}\n","import { Injectable } from '@angular/core';\n\n/**\n * Service where all available form fields are registered.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class FormFieldService {\n\n static fields: {[key: string]: any} = {};\n\n static register(type: string, component: any) {\n FormFieldService.fields[type] = component;\n }\n\n constructor() {}\n\n /**\n * Return field component by type\n * @param type Field type\n * @returns Field component\n */\n getFieldByType(type: string): any {\n return FormFieldService.fields[type];\n }\n\n}\n","import { FormFieldService } from './form-field.service';\n\nexport function IgoFormFieldComponent(type: string): (cls: any) => any {\n return (compType: any) => {\n FormFieldService.register(type, compType);\n };\n}\n","\n\n<ng-container *ngIf=\"field !== undefined\">\n <igo-dynamic-outlet\n [component]=\"getFieldComponent()\"\n [inputs]=\"getFieldInputs()\"\n [subscribers]=\"getFieldSubscribers()\">\n </igo-dynamic-outlet>\n</ng-container>\n","import {\n Component,\n Input,\n ChangeDetectionStrategy\n} from '@angular/core';\n\nimport { FormField, FormFieldInputs, FormFieldOptions } from '../shared/form.interfaces';\nimport { FormFieldService } from '../shared/form-field.service';\nimport { getDefaultErrorMessages } from '../shared';\n\n/**\n * This component renders the proper form input based on\n * the field configuration it receives.\n */\n@Component({\n selector: 'igo-form-field',\n templateUrl: './form-field.component.html',\n styleUrls: ['./form-field.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormFieldComponent {\n\n /**\n * Field configuration\n */\n @Input() field: FormField;\n\n /**\n * Field inputs cache\n */\n private fieldInputs: FormFieldInputs = undefined;\n\n /**\n * Field subscribers cache\n */\n private fieldSubscribers: {[key: string]: ({field: FormField, control: FormControl}) => void } = undefined;\n\n get fieldOptions(): FormFieldOptions {\n return this.field.options || {};\n }\n\n constructor(private formFieldService: FormFieldService) {}\n\n getFieldComponent(): any {\n return this.formFieldService.getFieldByType(this.field.type || 'text');\n }\n\n getFieldInputs(): FormFieldInputs {\n if (this.fieldInputs !== undefined) {\n return this.fieldInputs;\n }\n\n const errors = this.fieldOptions.errors || {};\n this.fieldInputs = Object.assign(\n {\n placeholder: this.field.title,\n disableSwitch: this.fieldOptions.disableSwitch || false\n },\n Object.assign({}, this.field.inputs || {}),\n {\n formControl: this.field.control,\n errors: Object.assign({}, getDefaultErrorMessages(), errors)\n }\n );\n return this.fieldInputs;\n }\n\n getFieldSubscribers(): {[key: string]: ({field: FormField, control: FormControl}) => void } {\n if (this.fieldSubscribers !== undefined) {\n return this.fieldSubscribers;\n }\n\n this.fieldSubscribers = Object.assign({}, this.field.subscribers || {});\n return this.fieldSubscribers;\n }\n}\n","<mat-form-field>\n <mat-select\n [required]=\"required\"\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\">\n <mat-option *ngFor=\"let choice of choices$ | async\" [value]=\"choice.value\">\n {{choice.title}}\n </mat-option>\n </mat-select>\n <mat-icon\n *ngIf=\"disableSwitch === true\"\n class=\"igo-form-disable-switch\"\n [svgIcon]=\"(disabled$ | async) === true ? 'checkbox-blank-outline' : 'checkbox-marked-outline'\"\n (click)=\"onDisableSwitchClick()\"\n matPrefix>\n </mat-icon>\n <mat-error *ngIf=\"formControl.errors\">{{getErrorMessage() | translate}}</mat-error>\n</mat-form-field>\n","import {\n Input,\n Component,\n ChangeDetectionStrategy,\n OnInit\n} from '@angular/core';\nimport type { UntypedFormControl } from '@angular/forms';\n\nimport { BehaviorSubject, } from 'rxjs';\n\nimport { formControlIsRequired, getControlErrorMessage } from '../shared/form.utils';\nimport { FormFieldSelectChoice } from '../shared/form.interfaces';\nimport { IgoFormFieldComponent } from '../shared/form-field-component';\n\n/**\n * This component renders a select field\n */\n@IgoFormFieldComponent('select')\n@Component({\n selector: 'igo-form-field-select',\n templateUrl: './form-field-select.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormFieldSelectComponent implements OnInit {\n\n readonly disabled$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n\n /**\n * Select input choices\n */\n @Input()\n set choices(value: FormFieldSelectChoice[]) { this.choices$.next(value); }\n get choices(): FormFieldSelectChoice[] { return this.choices$.value; }\n readonly choices$: BehaviorSubject<FormFieldSelectChoice[]> = new BehaviorSubject([]);\n\n /**\n * The field's form control\n */\n @Input() formControl: UntypedFormControl;\n\n /**\n * Field placeholder\n */\n @Input() placeholder: string;\n\n /**\n * Field placeholder\n */\n @Input() errors: {[key: string]: string};\n\n /**\n * Wheter a disable switch should be available\n */\n @Input() disableSwitch: boolean = false;\n\n /**\n * Whether the field is required\n */\n get required(): boolean {\n return formControlIsRequired(this.formControl);\n }\n\n ngOnInit() {\n this.disabled$.next(this.formControl.disabled);\n }\n\n /**\n * Get error message\n */\n getErrorMessage(): string {\n return getControlErrorMessage(this.formControl, this.errors);\n }\n\n onDisableSwitchClick() {\n this.toggleDisabled();\n }\n\n private toggleDisabled() {\n const disabled = !this.disabled$.value;\n if (disabled === true) {\n this.formControl.disable();\n } else {\n this.formControl.enable();\n }\n this.disabled$.next(disabled);\n }\n\n}\n","<mat-form-field>\n <input\n matInput\n [required]=\"required\"\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\">\n <mat-icon\n *ngIf=\"disableSwitch === true\"\n class=\"igo-form-disable-switch\"\n [svgIcon]=\"(disabled$ | async) === true ? 'checkbox-blank-outline' : 'checkbox-marked-outline'\"\n (click)=\"onDisableSwitchClick()\"\n matPrefix>\n </mat-icon>\n <mat-error *ngIf=\"formControl.errors\">{{getErrorMessage() | translate}}</mat-error>\n</mat-form-field>\n","import {\n Input,\n Component,\n ChangeDetectionStrategy,\n OnInit\n} from '@angular/core';\nimport type { UntypedFormControl } from '@angular/forms';\n\nimport { BehaviorSubject } from 'rxjs';\n\nimport {\n formControlIsRequired,\n getControlErrorMessage\n} from '../shared/form.utils';\nimport { IgoFormFieldComponent } from '../shared/form-field-component';\n\n/**\n * This component renders a text field\n */\n@IgoFormFieldComponent('text')\n@Component({\n selector: 'igo-form-field-text',\n templateUrl: './form-field-text.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormFieldTextComponent implements OnInit {\n\n disabled$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n\n /**\n * The field's form control\n */\n @Input() formControl: UntypedFormControl;\n\n /**\n * Field placeholder\n */\n @Input() placeholder: string;\n\n /**\n * Field placeholder\n */\n @Input() errors: {[key: string]: string};\n\n /**\n * Wheter a disable switch should be available\n */\n @Input() disableSwitch: boolean = false;\n\n /**\n * Whether the field is required\n */\n get required(): boolean {\n return formControlIsRequired(this.formControl);\n }\n\n ngOnInit() {\n this.disabled$.next(this.formControl.disabled);\n }\n\n /**\n * Get error message\n */\n getErrorMessage(): string {\n return getControlErrorMessage(this.formControl, this.errors);\n }\n\n onDisableSwitchClick() {\n this.toggleDisabled();\n }\n\n private toggleDisabled() {\n const disabled = !this.disabled$.value;\n if (disabled === true) {\n this.formControl.disable();\n } else {\n this.formControl.enable();\n }\n this.disabled$.next(disabled);\n }\n\n}\n","<mat-form-field>\n <textarea\n matInput\n [required]=\"required\"\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\">\n </textarea>\n <mat-icon\n *ngIf=\"disableSwitch === true\"\n class=\"igo-form-disable-switch\"\n [svgIcon]=\"(disabled$ | async) === true ? 'checkbox-blank-outline' : 'checkbox-marked-outline'\"\n (click)=\"onDisableSwitchClick()\"\n matPrefix>\n </mat-icon>\n <mat-error *ngIf=\"formControl.errors\">{{getErrorMessage() | translate}}</mat-error>\n</mat-form-field>\n","import {\n Input,\n Component,\n ChangeDetectionStrategy,\n OnInit\n} from '@angular/core';\nimport type { UntypedFormControl } from '@angular/forms';\n\nimport { BehaviorSubject } from 'rxjs';\n\nimport { formControlIsRequired, getControlErrorMessage } from '../shared/form.utils';\nimport { IgoFormFieldComponent } from '../shared/form-field-component';\n\n/**\n * This component renders a textarea field\n */\n@IgoFormFieldComponent('textarea')\n@Component({\n selector: 'igo-form-field-textarea',\n templateUrl: './form-field-textarea.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormFieldTextareaComponent implements OnInit {\n\n disabled$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n\n /**\n * The field's form control\n */\n @Input() formControl: UntypedFormControl;\n\n /**\n * Field placeholder\n */\n @Input() placeholder: string;\n\n /**\n * Field placeholder\n */\n @Input() errors: {[key: string]: string};\n\n /**\n * Wheter a disable switch should be available\n */\n @Input() disableSwitch: boolean = false;\n\n /**\n * Whether the field is required\n */\n get required(): boolean {\n return formControlIsRequired(this.formControl);\n }\n\n ngOnInit() {\n this.disabled$.next(this.formControl.disabled);\n }\n\n /**\n * Get error message\n */\n getErrorMessage(): string {\n return getControlErrorMessage(this.formControl, this.errors);\n }\n\n onDisableSwitchClick() {\n this.toggleDisabled();\n }\n\n private toggleDisabled() {\n const disabled = !this.disabled$.value;\n if (disabled === true) {\n this.formControl.disable();\n } else {\n this.formControl.enable();\n }\n this.disabled$.next(disabled);\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\n\nimport { IgoLanguageModule } from '@igo2/core';\nimport { IgoDynamicOutletModule } from '../../dynamic-component/dynamic-outlet/dynamic-outlet.module';\n\nimport { FormFieldComponent } from './form-field.component';\nimport { FormFieldSelectComponent } from './form-field-select.component';\nimport { FormFieldTextComponent } from './form-field-text.component';\nimport { FormFieldTextareaComponent } from './form-field-textarea.component';\n\n/**\n * @ignore\n */\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n MatIconModule,\n MatFormFieldModule,\n MatInputModule,\n MatSelectModule,\n IgoLanguageModule,\n IgoDynamicOutletModule\n ],\n exports: [\n FormFieldComponent,\n FormFieldSelectComponent,\n FormFieldTextComponent,\n FormFieldTextareaComponent\n ],\n declarations: [\n FormFieldComponent,\n FormFieldSelectComponent,\n FormFieldTextComponent,\n FormFieldTextareaComponent\n ]\n})\nexport class IgoFormFieldModule {}\n","<div\n *ngIf=\"group && group.fields.length > 0\"\n class=\"igo-form-group-fields\">\n <div\n *ngFor=\"let field of group.fields\"\n class=\"igo-form-field-wrapper\"\n [ngClass]=\"getFieldNgClass(field)\">\n <igo-form-field [field]=\"field\"></igo-form-field>\n </div>\n</div>\n\n<div class=\"igo-form-group-extra-content\">\n <ng-content></ng-content>\n</div>\n\n<mat-error *ngIf=\"formControl.errors\">{{getErrorMessage() | translate}}</mat-error>\n","import {\n Component,\n Input,\n ChangeDetectionStrategy\n} from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\n\nimport { getControlErrorMessage } from '../shared/form.utils';\nimport { FormField, FormFieldGroup } from '../shared/form.interfaces';\n\n/**\n * A configurable form, optionnally bound to an entity\n * (for example in case of un update). Submitting that form\n * emits an event with the form data but no other operation is performed.\n */\n@Component({\n selector: 'igo-form-group',\n templateUrl: './form-group.component.html',\n styleUrls: ['./form-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormGroupComponent {\n\n /**\n * Form field group\n */\n @Input() group: FormFieldGroup;\n\n /**\n * Field placeholder\n */\n @Input() errors: {[key: string]: string};\n\n /**\n * Form group control\n */\n get formControl(): UntypedFormGroup { return this.group.control; }\n\n constructor() {}\n\n /**\n * Return the number of columns a field should occupy.\n * The maximum allowed is 2, even if the field config says more.\n * @param field Field\n * @returns Number of columns\n * @internal\n */\n getFieldColSpan(field: FormField): number {\n let colSpan = 2;\n const options = field.options || {};\n if (options.cols && options.cols > 0) {\n colSpan = Math.min(options.cols, 2);\n }\n\n return colSpan;\n }\n\n /**\n * Return the number of columns a field should occupy.\n * The maximum allowed is 2, even if the field config says more.\n * @param field Field\n * @returns Number of columns\n * @internal\n */\n getFieldNgClass(field: FormField): {[key: string]: boolean} {\n const colspan = this.getFieldColSpan(field);\n return {[`igo-form-field-colspan-${colspan}`]: true};\n }\n\n /**\n * Get error message\n */\n getErrorMessage(): string {\n const options = this.group.options || {};\n return getControlErrorMessage(this.formControl, options.errors || {});\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatFormFieldModule } from '@angular/material/form-field';\n\nimport { IgoLanguageModule } from '@igo2/core';\n\nimport { IgoFormFieldModule } from '../form-field/form-field.module';\nimport { FormGroupComponent } from './form-group.component';\n\n/**\n * @ignore\n */\n@NgModule({\n imports: [\n CommonModule,\n MatFormFieldModule,\n IgoLanguageModule,\n IgoFormFieldModule\n ],\n exports: [\n FormGroupComponent\n ],\n declarations: [\n FormGroupComponent\n ]\n})\nexport class IgoFormGroupModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { IgoFormFormModule } from './form/form.module';\nimport { IgoFormGroupModule } from './form-group/form-group.module';\nimport { IgoFormFieldModule } from './form-field/form-field.module';\nimport { FormService } from './shared/form.service';\nimport { FormFieldService } from './shared/form-field.service';\n\n/**\n * @ignore\n */\n@NgModule({\n imports: [\n CommonModule,\n IgoFormGroupModule,\n IgoFormFieldModule\n ],\n exports: [\n IgoFormFormModule,\n IgoFormGroupModule,\n IgoFormFieldModule\n ],\n declarations: [],\n providers: [\n FormService,\n FormFieldService\n ]\n})\nexport class IgoFormModule {}\n","import { Component, EventEmitter, Output } from '@angular/core';\n\n@Component({\n selector: 'igo-home-button',\n templateUrl: './home-button.component.html',\n styleUrls: ['./home-button.component.scss']\n})\nexport class HomeButtonComponent {\n\n @Output() unselectButton = new EventEmitter<any>();\n\n constructor() {}\n\n onUnselectButtonClick() {\n this.unselectButton.emit();\n }\n}\n","<button\n id=\"homeButton\"\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.context.sidenav.mainMenu' | translate\"\n (click)=\"onUnselectButtonClick()\">\n <mat-icon svgIcon=\"home\"></mat-icon>\n</button>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IgoLanguageModule } from '@igo2/core';\n\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nimport { HomeButtonComponent } from './home-button.component';\n\n/**\n * @ignore\n */\n@NgModule({\n imports: [\n CommonModule,\n MatIconModule,\n MatButtonModule,\n MatTooltipModule,\n IgoLanguageModule\n ],\n exports: [HomeButtonComponent],\n declarations: [HomeButtonComponent],\n providers: []\n})\nexport class IgoHomeButtonModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { MatSelectModule } from '@angular/material/select';\n\nimport { EntitySelectorComponent } from './entity-selector.component';\n\n/**\n * @ignore\n */\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n MatSelectModule\n ],\n exports: [EntitySelectorComponent],\n declarations: [EntitySelectorComponent]\n})\nexport class IgoEntitySelectorModule {}\n","import { Directive, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[igoStopDropPropagation]'\n})\nexport class StopDropPropagationDirective {\n @HostListener('drop', ['$event'])\n public onDrop(event: any): void {\n event.preventDefault();\n event.stopPropagation();\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { StopDropPropagationDirective } from './stop-drop-propagation.directive';\nimport { StopPropagationDirective } from './stop-propagation.directive';\n\n@NgModule({\n imports: [],\n declarations: [StopDropPropagationDirective, StopPropagationDirective],\n exports: [StopDropPropagationDirective, StopPropagationDirective]\n})\nexport class IgoStopPropagationModule {\n static forRoot(): ModuleWithProviders<IgoStopPropagationModule> {\n return {\n ngModule: IgoStopPropagationModule,\n providers: []\n };\n }\n}\n","import { NgModule } from '@angular/core';\nimport { EntityTablePaginatorComponent } from './entity-table-paginator.component';\nimport { MatPaginatorModule } from '@angular/material/paginator';\n\n/**\n * @ignore\n */\n@NgModule({\n imports: [\n MatPaginatorModule,\n ],\n exports: [\n EntityTablePaginatorComponent\n ],\n declarations: [\n EntityTablePaginatorComponent,\n ]\n})\nexport class IgoEntityTablePaginatorModule {}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { ImageErrorDirective } from './image-error.directive';\nimport { SecureImagePipe } from './secure-image.pipe';\n\n@NgModule({\n imports: [],\n declarations: [SecureImagePipe, ImageErrorDirective],\n exports: [SecureImagePipe, ImageErrorDirective]\n})\nexport class IgoImageModule {\n static forRoot(): ModuleWithProviders<IgoImageModule> {\n return {\n ngModule: IgoImageModule,\n providers: []\n };\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\n\nimport { IgoStopPropagationModule } from '../../stop-propagation/stop-propagation.module';\nimport { IgoCustomHtmlModule } from '../../custom-html/custom-html.module';\nimport { EntityTableRowDirective } from './entity-table-row.directive';\nimport { EntityTableComponent } from './entity-table.component';\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { IgoEntityTablePaginatorModule } from '../entity-table-paginator/entity-table-paginator.module';\nimport { IgoImageModule } from '../../image/image.module';\nimport { IgoLanguageModule } from '@igo2/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatSelectModule } from '@angular/material/select';\n\n/**\n * @ignore\n */\n@NgModule({\n imports: [\n CommonModule,\n MatTableModule,\n MatAutocompleteModule,\n MatSortModule,\n MatIconModule,\n MatButtonModule,\n MatCheckboxModule,\n MatPaginatorModule,\n MatSelectModule,\n IgoStopPropagationModule,\n IgoCustomHtmlModule,\n IgoEntityTablePaginatorModule,\n IgoImageModule,\n IgoLanguageModule,\n FormsModule,\n ReactiveFormsModule,\n MatInputModule,\n MatDatepickerModule,\n MatTooltipModule\n ],\n exports: [\n EntityTableComponent\n ],\n declarations: [\n EntityTableComponent,\n EntityTableRowDirective\n ]\n})\nexport class IgoEntityTableModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { IgoEntitySelectorModule } from './entity-selector/entity-selector.module';\nimport { IgoEntityTableModule } from './entity-table/entity-table.module';\nimport { IgoEntityTablePaginatorModule } from './entity-table-paginator/entity-table-paginator.module';\n\n@NgModule({\n imports: [\n CommonModule\n ],\n exports: [\n IgoEntitySelectorModule,\n IgoEntityTableModule,\n IgoEntityTablePaginatorModule\n ],\n declarations: []\n})\nexport class IgoEntityModule {}\n","import { catchError } from 'rxjs/operators';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { Injectable } from '@angular/core';\nimport { InteractiveTourOptions } from './interactive-tour.interface';\nimport { ConfigService } from '@igo2/core';\n\n@Injectable()\nexport class InteractiveTourLoader {\n private jsonURL: string;\n private allToursOptions;\n\n constructor(private http: HttpClient, private configService: ConfigService) {\n this.jsonURL = this.getPathToConfigFile();\n }\n\n public loadConfigTour() {\n this.getJSON()\n .subscribe(\n (data) => {\n this.allToursOptions = data;\n },\n (err) => {\n throw new Error(`Problem with Interactive tour configuration file: interactiveTour.json not find. Check if the file and is path is set correctly.`);\n }\n );\n }\n\n public getPathToConfigFile(): string {\n return (\n this.configService.getConfig('interactiveTour.pathToConfigFile') ||\n './config/interactiveTour.json'\n );\n }\n\n public getJSON(): Observable<any> {\n return this.http.get(this.jsonURL).pipe(\n catchError((e) => {\n e.error.caught = true;\n throw e;\n })\n );\n }\n\n public getTourOptionData(toolName): InteractiveTourOptions {\n if (this.allToursOptions === undefined) {\n return undefined;\n }\n let nameInConfigFile = toolName;\n nameInConfigFile = nameInConfigFile.replace(/\\s/g, '');\n return this.allToursOptions[nameInConfigFile];\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ShepherdService } from 'angular-shepherd';\n\nimport { ConfigService, MediaService, LanguageService } from '@igo2/core';\nimport { InteractiveTourLoader } from './interactive-tour.loader';\nimport {\n InteractiveTourOptions,\n InteractiveTourStep,\n InteractiveTourAction\n} from './interactive-tour.interface';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class InteractiveTourService {\n private previousStep: InteractiveTourStep;\n private nextIndex = 1;\n\n constructor(\n private configService: ConfigService,\n private mediaService: MediaService,\n private languageService: LanguageService,\n private interactiveTourLoader: InteractiveTourLoader,\n private shepherdService: ShepherdService\n ) {\n if (this.isAppHaveTour()) {\n this.interactiveTourLoader.loadConfigTour();\n }\n }\n\n public isAppHaveTour() {\n const haveTour = this.configService.getConfig('interactiveTour.activateInteractiveTour');\n if (haveTour === undefined) {\n return true;\n } else {\n return haveTour;\n }\n }\n\n public isToolHaveTourConfig(toolName: string): boolean {\n const checkTourActiveOptions = this.interactiveTourLoader.getTourOptionData(\n toolName\n );\n if (checkTourActiveOptions === undefined) {\n return false;\n } else {\n return true;\n }\n }\n\n public disabledTourButton(toolName: string): boolean {\n const stepConfig: InteractiveTourOptions = this.interactiveTourLoader.getTourOptionData(\n toolName\n );\n\n if (stepConfig?.conditions) {\n for (const condition of stepConfig?.conditions) {\n if (document.querySelector(condition) === null) {\n return true;\n }\n }\n }\n return false;\n }\n\n public isMobile(): boolean {\n return this.mediaService.isMobile();\n }\n\n public isTourDisplayInMobile(): boolean {\n const showInMobile = this.configService.getConfig(\n 'interactiveTour.tourInMobile'\n );\n if (showInMobile === undefined) {\n return true;\n }\n return this.configService.getConfig('interactiveTour.tourInMobile');\n }\n\n private getButtons(buttonKind?: 'first' | 'last' | 'noBackButton') {\n if (buttonKind === 'noBackButton') {\n return [\n {\n classes: 'shepherd-button-primary',\n text: this.languageService.translate.instant(\n 'igo.common.interactiveTour.nextButton'\n ),\n type: 'next'\n }\n ];\n }\n if (buttonKind === 'first') {\n return [\n {\n classes: 'shepherd-button-secondary',\n text: this.languageService.translate.instant(\n 'igo.common.interactiveTour.exitButton'\n ),\n type: 'cancel'\n },\n {\n classes: 'shepherd-button-primary',\n text: this.languageService.translate.instant(\n 'igo.common.interactiveTour.nextButton'\n ),\n type: 'next'\n }\n ];\n }\n\n if (buttonKind === 'last') {\n return [\n {\n classes: 'shepherd-button-secondary',\n text: this.languageService.translate.instant(\n 'igo.common.interactiveTour.backButton'\n ),\n type: 'back'\n },\n {\n classes: 'shepherd-button-primary',\n text: this.languageService.translate.instant(\n 'igo.common.interactiveTour.exitButton'\n ),\n type: 'cancel'\n }\n ];\n }\n\n return [\n {\n classes: 'shepherd-button-secondary',\n text: this.languageService.translate.instant(\n 'igo.common.interactiveTour.backButton'\n ),\n type: 'back'\n },\n {\n classes: 'shepherd-button-primary',\n text: this.languageService.translate.instant(\n 'igo.common.interactiveTour.nextButton'\n ),\n type: 'next'\n }\n ];\n }\n\n private getAction(actionName: string) {\n const action = {\n click: 'click'\n };\n return action[actionName.toLowerCase()];\n }\n\n private addProgress() {\n const self = this as any;\n let nbTry = 0;\n const maxTry = 21;\n const checkExist = setInterval(() => {\n if (self.getCurrentStep()) {\n if (self.getCurrentStep().options.attachTo.element && !document.querySelector(self.getCurrentStep().options.attachTo.element)) {\n self.cancel();\n clearInterval(checkExist);\n return;\n } else {\n const currentStepElement = self.getCurrentStep().getElement();\n if (currentStepElement) {\n const shepherdList = currentStepElement.querySelectorAll('.shepherd-content, .shepherd-text');\n shepherdList.forEach(element => {\n element.classList.add('mat-typography');\n });\n }\n const header = currentStepElement\n ? currentStepElement.querySelector('.shepherd-header')\n : undefined;\n\n nbTry++;\n if (header || nbTry > maxTry) {\n clearInterval(checkExist);\n }\n\n if (header) {\n const stepsArray = self.steps;\n const progress = document.createElement('span');\n progress.className = 'shepherd-progress';\n progress.innerText = `${\n stepsArray.indexOf(self.getCurrentStep()) + 1\n }/${stepsArray.length}`;\n header.insertBefore(\n progress,\n currentStepElement.querySelector('.shepherd-cancel-icon')\n );\n }\n }\n }\n }, 100);\n }\n\n private checkNext(index, tour, service) {\n if (tour.getCurrentStep()) {\n if (tour.getCurrentStep().options.attachTo.element && document.querySelector(tour.getCurrentStep().options.attachTo.element)) {\n tour.complete();\n return;\n }\n\n if (index.index === tour.steps.length - 1) {\n tour.complete();\n return;\n }\n\n tour.steps.splice(index.index, 1);\n const nextStep = tour.steps[index.index];\n if (nextStep.options.attachTo.element && !document.querySelector(nextStep.options.attachTo.element)) {\n service.checkNext(index, tour, service);\n } else {\n tour._setupModal();\n tour.show(nextStep.id);\n }\n }\n }\n\n private executeAction(\n step: InteractiveTourStep,\n actionConfig: InteractiveTourAction\n ) {\n if (!actionConfig) {\n return;\n }\n\n if (\n actionConfig.condition &&\n ((actionConfig.condition.charAt(0) === '!' &&\n document.querySelector(actionConfig.condition.slice(1))) ||\n (actionConfig.condition.charAt(0) !== '!' &&\n !document.querySelector(actionConfig.condition)))\n ) {\n return;\n }\n\n const element: HTMLElement = document.querySelector(\n actionConfig.element || step.element\n ) as HTMLElement;\n const action = this.getAction(actionConfig.action);\n if (element && action) {\n element[action]();\n }\n }\n\n private executeActionPromise(\n step: InteractiveTourStep,\n actionConfig: InteractiveTourAction\n ) {\n return new Promise<void>((resolve) => {\n this.executeAction(step, actionConfig);\n if (!actionConfig || !actionConfig.waitFor) {\n resolve();\n return;\n }\n let nbTry = 0;\n const maxTry = actionConfig.maxWait ? actionConfig.maxWait / 100 : 20;\n const checkExist = setInterval(() => {\n nbTry++;\n if (nbTry > maxTry || document.querySelector(actionConfig.waitFor)) {\n clearInterval(checkExist);\n resolve();\n }\n }, 100);\n });\n }\n\n private getShepherdSteps(stepConfig: InteractiveTourOptions) {\n const shepherdSteps = [];\n\n let i = 0;\n for (const step of stepConfig.steps) {\n shepherdSteps.push({\n attachTo: {\n element: step.element,\n on: step.position || stepConfig.position\n },\n popperOptions: {\n modifiers: [{ name: 'offset', options: { offset: [0, 15] } }]\n },\n beforeShowPromise: () => {\n return Promise.all([\n this.executeActionPromise(\n this.previousStep,\n this.previousStep ? this.previousStep.beforeChange : undefined\n ),\n this.executeActionPromise(step, step.beforeShow)\n ]);\n },\n buttons: this.getButtons(\n i === 0\n ? 'first'\n : i + 1 === stepConfig.steps.length\n ? 'last'\n : stepConfig.steps[i].noBackButton\n ? 'noBackButton'\n : undefined\n ),\n classes: step.class,\n highlightClass: step.highlightClass,\n scrollTo: step.scrollToElement || stepConfig.scrollToElement || true,\n canClickTarget: step.disableInteraction\n ? !step.disableInteraction\n : undefined,\n title: this.languageService.translate.instant(\n step.title || stepConfig.title\n ),\n text: [this.languageService.translate.instant(step.text)],\n when: {\n show: () => {\n this.executeAction(step, step.onShow);\n },\n hide: () => {\n this.previousStep = step;\n this.executeAction(step, step.onHide);\n }\n }\n });\n i++;\n }\n\n return shepherdSteps;\n }\n\n public startTour(toolName: string) {\n const stepConfig: InteractiveTourOptions = this.interactiveTourLoader.getTourOptionData(\n toolName\n );\n\n this.shepherdService.defaultStepOptions = {\n classes: stepConfig.class,\n highlightClass: stepConfig.highlightClass,\n canClickTarget: stepConfig.disableInteraction\n ? !stepConfig.disableInteraction\n : true,\n cancelIcon: {\n enabled: true\n }\n };\n\n const shepherdSteps = this.getShepherdSteps(stepConfig);\n\n this.shepherdService.modal = true;\n this.shepherdService.confirmCancel = false;\n this.shepherdService.addSteps(shepherdSteps);\n\n this.shepherdService.tourObject.on('show', this.addProgress);\n this.shepherdService.tourObject.on('cancel', (index) => {\n this.checkNext(index, this.shepherdService.tourObject, this);\n });\n\n this.shepherdService.start();\n }\n}\n","import { EntityRecord, EntityStore } from '../../entity';\nimport { Tool, ToolboxOptions } from './tool.interface';\nimport { BehaviorSubject, Subscription } from 'rxjs';\n\n/**\n * Service where all available tools and their component are registered.\n */\nexport class Toolbox {\n /**\n * Observable of the active tool\n */\n activeTool$: BehaviorSubject<Tool> = new BehaviorSubject(undefined);\n\n /**\n * Ordered list of tool names to display in a toolbar\n */\n toolbar$: BehaviorSubject<string[]> = new BehaviorSubject([]);\n\n /**\n * Observable of the active tool\n */\n private activeTool$$: Subscription;\n\n /**\n * Active tool history. Useful for activating the previous tool.\n */\n private activeToolHistory: string[] = [];\n\n /**\n * Tool store\n */\n private store = new EntityStore<Tool>([], {\n getKey: (tool: Tool) => tool.name\n });\n\n get tools$(): BehaviorSubject<Tool[]> {\n return this.store.entities$;\n }\n\n constructor(private options: ToolboxOptions = {}) {\n this.setToolbar(options.toolbar);\n this.initStore();\n }\n\n /**\n * Destroy the toolbox\n */\n destroy() {\n this.activeTool$$.unsubscribe();\n this.store.destroy();\n }\n\n /**\n * Return a tool\n * @param name Tool name\n * @returns tool Tool\n */\n getTool(name: string): Tool {\n return this.store.get(name);\n }\n\n /**\n * Return all tools\n * @returns Array of tools\n */\n getTools(): Tool[] {\n return this.store.all();\n }\n\n /**\n * Set tool configurations\n * @param tools Tools\n */\n setTools(tools: Tool[]) {\n this.store.load(tools);\n }\n\n /**\n * Get toolbar\n * @returns Toolbar value\n */\n getToolbar(): string[] {\n return this.toolbar$.getValue();\n }\n\n /**\n * Set toolbar\n * @param toolbar A list of tool names\n */\n setToolbar(toolbar: string[]) {\n this.toolbar$.next(toolbar || []);\n }\n\n /**\n * Activate a tool (and deactivate other tools)\n * @param name Tool name\n * @param options Tool options\n */\n activateTool(name: string, options: { [key: string]: any } = {}) {\n const tool = this.getTool(name);\n if (tool === undefined) {\n return;\n }\n\n this.store.state.update(tool, { active: true, options }, true);\n }\n\n /**\n * Activate the previous tool, if any\n */\n activatePreviousTool() {\n if (this.activeToolHistory.length <= 1) {\n this.deactivateTool();\n return;\n }\n const [previous, current] = this.activeToolHistory.splice(-2, 2);\n this.activateTool(previous);\n }\n\n /**\n * Activate the tool below, if any\n */\n /* activateBelowTool() {\n const arrayTools = this.getToolbar();\n const index = arrayTools.findIndex(t => t === this.activeTool$.getValue().name);\n if (arrayTools[index + 1] !== undefined) {\n this.deactivateTool();\n const below = arrayTools[index + 1];\n this.activateTool(below);\n } else {\n this.deactivateTool();\n const below = arrayTools[0];\n this.activateTool(below);\n }\n } */\n\n /**\n * Activate the tool above, if any\n */\n /* activateAboveTool() {\n const arrayTools = this.getToolbar();\n const index = arrayTools.findIndex(t => t === this.activeTool$.getValue().name);\n if (arrayTools[index - 1] !== undefined) {\n this.deactivateTool();\n const above = arrayTools[index - 1];\n this.activateTool(above);\n } else {\n this.deactivateTool();\n const above = arrayTools[arrayTools.length - 1];\n this.activateTool(above);\n }\n } */\n\n /**\n * Deactivate the active tool\n */\n deactivateTool() {\n this.clearActiveToolHistory();\n this.store.state.updateAll({ active: false });\n }\n\n /**\n * Initialize the tool store and start observing the active tool\n */\n private initStore() {\n this.store = new EntityStore<Tool>([], {\n getKey: (entity: Tool) => entity.name\n });\n\n this.activeTool$$ = this.store.stateView\n .firstBy$((record: EntityRecord<Tool>) => record.state.active === true)\n .subscribe((record: EntityRecord<Tool>) => {\n if (record === undefined) {\n this.setActiveTool(undefined);\n return;\n }\n\n const tool = record.entity;\n const options = Object.assign(\n {},\n tool.options || {},\n record.state.options || {}\n );\n this.setActiveTool(Object.assign({}, tool, { options }));\n });\n }\n\n /**\n * Set the active tool and update the tool history\n * @param tool Tool\n */\n private setActiveTool(tool: Tool | undefined) {\n this.activeTool$.next(tool);\n if (tool === undefined) {\n this.clearActiveToolHistory();\n } else {\n this.activeToolHistory = this.activeToolHistory\n .filter((name: string) => name !== tool.name)\n .concat([tool.name]);\n }\n }\n\n /**\n * Clear the tool history\n */\n private clearActiveToolHistory() {\n this.activeToolHistory = [];\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Tool } from './tool.interface';\nimport { Toolbox } from './toolbox';\n\n/**\n * Service where runtime tool configurations are registered\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class ToolService {\n static tools: { [key: string]: Tool } = {};\n\n /**\n * Toolbox that holds main tools\n */\n public toolbox: Toolbox = new Toolbox();\n\n static register(tool: Tool) {\n ToolService.tools[tool.name] = tool;\n }\n\n constructor() {\n this.toolbox.setTools(this.getTools());\n }\n\n /**\n * Return a tool\n * @param name Tool name\n * @returns tool Tool\n */\n getTool(name: string): Tool {\n return ToolService.tools[name];\n }\n\n /**\n * Return all tools\n * @returns tTols\n */\n getTools(): Tool[] {\n return Object.values(ToolService.tools);\n }\n}\n","<button *ngIf=\"showTourButton\"\n (click) = \"startInteractiveTour()\"\n [ngClass]=\"getClass()\"\n mat-raised-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [disabled]=disabledTourButton>\n <span class=\"interactive-tour-button-title\">{{'igo.common.interactiveTour.buttonTitle' | translate}} {{(discoverTitleInLocale$ | async) | translate}}</span>\n <mat-icon\n svgIcon=\"presentation-play\"\n [matTooltip]=\"disabledTourButton ?\n ('igo.common.interactiveTour.disaledTooltipTourToolButton' | translate) :\n ('igo.common.interactiveTour.tooltipTourToolButton' | translate)\">\n </mat-icon>\n</button>\n","import { Component, ViewEncapsulation, Input } from '@angular/core';\nimport { InteractiveTourService } from './interactive-tour.service';\nimport { ToolService } from '../tool/shared/tool.service';\nimport { Observable, of } from 'rxjs';\n\n@Component({\n selector: 'igo-interactive-tour',\n templateUrl: './interactive-tour.component.html',\n styleUrls: ['./interactive-tour.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class InteractiveTourComponent {\n /**\n * Toolbox that holds main tools\n */\n @Input() tourToStart: string = '';\n @Input() styleButton: string;\n @Input() discoverTitleInLocale$: Observable<string> = of('IGO');\n\n getClass() {\n return {\n 'tour-button-tool-icon': this.styleButton === 'icon',\n 'tour-button-tool': this.styleButton === 'raised'\n };\n }\n\n get toolbox() {\n return this.toolService.toolbox;\n }\n\n getTourToStart() {\n if (this.tourToStart) {\n return this.tourToStart;\n } else {\n return this.activeToolName;\n }\n }\n\n get activeToolName() {\n if (this.toolbox) {\n if (this.isActiveTool) {\n return this.toolbox.activeTool$.getValue().name;\n } else {\n return 'global';\n }\n } else {\n return undefined;\n }\n }\n\n get isActiveTool(): boolean {\n if (this.toolbox) {\n return this.toolbox.activeTool$.getValue() !== undefined;\n } else {\n return undefined;\n }\n }\n\n get isToolHaveTour(): boolean {\n if (this.activeToolName === 'about' && !this.tourToStart) {\n return false;\n }\n return this.interactiveTourService.isToolHaveTourConfig(\n this.getTourToStart()\n );\n }\n\n get showTourButton(): boolean {\n // 2 conditions to show: have Tour on tool in Config file and if we are in mobile displayInMobile= true\n let haveTour: boolean;\n haveTour = this.isToolHaveTour;\n if (haveTour === false) {\n return false;\n }\n\n let inMobileAndShow: boolean;\n if (this.interactiveTourService.isMobile()) {\n inMobileAndShow = this.isTourDisplayInMobile;\n if (inMobileAndShow === false) {\n return false;\n }\n }\n return true;\n }\n\n get isTourDisplayInMobile(): boolean {\n return this.interactiveTourService.isTourDisplayInMobile();\n }\n\n get disabledTourButton(): boolean {\n return this.interactiveTourService.disabledTourButton(this.activeToolName);\n }\n\n constructor(\n private interactiveTourService: InteractiveTourService,\n private toolService: ToolService\n ) {}\n\n startInteractiveTour() {\n const tour = this.getTourToStart();\n if (tour) {\n this.interactiveTourService.startTour(tour);\n } else {\n return;\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\n\nimport { IgoLanguageModule } from '@igo2/core';\nimport { InteractiveTourService } from './interactive-tour.service';\nimport { InteractiveTourComponent } from './interactive-tour.component';\nimport { InteractiveTourLoader } from './interactive-tour.loader';\n\n@NgModule({\n declarations: [InteractiveTourComponent],\n imports: [\n CommonModule,\n MatIconModule,\n MatButtonModule,\n MatTooltipModule,\n IgoLanguageModule\n ],\n providers: [InteractiveTourService, InteractiveTourLoader],\n exports: [InteractiveTourComponent]\n})\nexport class IgoInteractiveTourModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'keyvalue'\n})\nexport class KeyValuePipe implements PipeTransform {\n transform(value: any, args?: any): any {\n const keyValues = [];\n Object.getOwnPropertyNames(value).forEach((key: string) =>\n keyValues.push({ key, value: value[key] })\n );\n\n return keyValues;\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { KeyValuePipe } from './keyvalue.pipe';\n\n@NgModule({\n imports: [],\n declarations: [KeyValuePipe],\n exports: [KeyValuePipe]\n})\nexport class IgoKeyValueModule {\n static forRoot(): ModuleWithProviders<IgoKeyValueModule> {\n return {\n ngModule: IgoKeyValueModule,\n providers: []\n };\n }\n}\n","<h1 mat-dialog-title class=\"mat-typography\">{{ title }}</h1>\n\n<div mat-dialog-content class=\"mat-typography\">\n <ng-container *ngTemplateOutlet=\"loopObject;context:{ obj: data }\"></ng-container>\n\n <ng-template #loopObject let-obj='obj' let-baseKey='baseKey'>\n <ng-container *ngFor=\"let property of obj | keyvalue\">\n <ng-container *ngIf=\"ignoreKeys.indexOf(getKey(baseKey, property.key)) === -1\">\n\n <ng-container *ngIf=\"isObject(property.value); else notObject\">\n <ng-container *ngTemplateOutlet=\"loopObject;context:{ obj: property.value, baseKey: getKey(baseKey, property.key) }\"></ng-container>\n </ng-container>\n\n <ng-template #notObject>\n <p><span><b>{{getKey(baseKey, property.key)}}</b> : </span><span class=\"propertyValue\" [innerHtml]=\"property.value\"></span></p>\n </ng-template>\n\n </ng-container>\n </ng-container>\n </ng-template>\n</div>\n\n<div mat-dialog-actions>\n <button mat-button color=\"primary\"\n (click)=\"dialogRef.close(false)\">\n OK\n </button>\n</div>\n","import { Component } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'igo-json-dialog',\n templateUrl: './json-dialog.component.html'\n})\nexport class JsonDialogComponent {\n public title: string;\n public data: any;\n public ignoreKeys: string[];\n\n constructor(public dialogRef: MatDialogRef<JsonDialogComponent>) {}\n\n isObject(val) {\n return typeof val === 'object' && !Array.isArray(val);\n }\n\n getKey(baseKey, key) {\n return (baseKey ? baseKey + '.' : '') + key;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\n\nimport { Observable } from 'rxjs';\n\nimport { JsonDialogComponent } from './json-dialog.component';\n\n@Injectable()\nexport class JsonDialogService {\n constructor(private dialog: MatDialog) {}\n\n public open(title: any, data, ignoreKeys?: string[]): Observable<any> {\n const dialogRef = this.dialog.open(JsonDialogComponent, {\n disableClose: false\n });\n dialogRef.componentInstance.data = data;\n dialogRef.componentInstance.title = title;\n dialogRef.componentInstance.ignoreKeys = ignoreKeys;\n\n return dialogRef.afterClosed();\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\n\nimport { IgoKeyValueModule } from '../keyvalue/keyvalue.module';\n\nimport { JsonDialogComponent } from './json-dialog.component';\nimport { JsonDialogService } from './json-dialog.service';\n\n@NgModule({\n imports: [CommonModule, MatButtonModule, MatDialogModule, IgoKeyValueModule],\n exports: [JsonDialogComponent],\n declarations: [JsonDialogComponent],\n providers: [JsonDialogService]\n})\nexport class IgoJsonDialogModule {\n static forRoot(): ModuleWithProviders<IgoJsonDialogModule> {\n return {\n ngModule: IgoJsonDialogModule\n };\n }\n}\n","import {\n Directive,\n Input,\n Output,\n ElementRef,\n Renderer2,\n HostListener,\n EventEmitter\n} from '@angular/core';\n\n@Directive({\n selector: '[igoListItem]'\n})\nexport class ListItemDirective {\n\n static focusedCls = 'igo-list-item-focused';\n static selectedCls = 'igo-list-item-selected';\n static disabledCls = 'igo-list-item-disabled';\n\n @Input()\n get color() {\n return this._color;\n }\n set color(value: string) {\n this._color = value;\n }\n private _color = 'primary';\n\n @Input()\n get focused() {\n return this._focused;\n }\n set focused(value: boolean) {\n if (value === this._focused) {\n return;\n }\n if (this.disabled) {\n return;\n }\n\n value ? this.beforeFocus.emit(this) : this.beforeUnfocus.emit(this);\n\n this._focused = value;\n if (this.selected !== true) {\n this.toggleFocusedClass();\n }\n\n value ? this.focus.emit(this) : this.unfocus.emit(this);\n }\n private _focused = false;\n\n @Input()\n get selected() {\n return this._selected;\n }\n set selected(value: boolean) {\n if (value === this._selected) {\n return;\n }\n if (this.disabled) {\n return;\n }\n\n value ? this.beforeSelect.emit(this) : this.beforeUnselect.emit(this);\n\n this._selected = value;\n this._focused = value;\n this.toggleSelectedClass();\n\n value ? this.select.emit(this) : this.unselect.emit(this);\n }\n private _selected = false;\n\n @Input()\n get disabled() {\n return this._disabled;\n }\n set disabled(value: boolean) {\n if (value === this._disabled) {\n return;\n }\n\n if (value === true) {\n this.selected = false;\n }\n\n value ? this.beforeDisable.emit(this) : this.beforeEnable.emit(this);\n\n this._disabled = value;\n this.toggleDisabledClass();\n\n value ? this.disable.emit(this) : this.enable.emit(this);\n }\n private _disabled = false;\n\n @Output() beforeSelect = new EventEmitter<ListItemDirective>();\n @Output() beforeFocus = new EventEmitter<ListItemDirective>();\n @Output() beforeUnselect = new EventEmitter<ListItemDirective>();\n @Output() beforeUnfocus = new EventEmitter<ListItemDirective>();\n @Output() beforeDisable = new EventEmitter<ListItemDirective>();\n @Output() beforeEnable = new EventEmitter<ListItemDirective>();\n @Output() focus = new EventEmitter<ListItemDirective>();\n @Output() unfocus = new EventEmitter<ListItemDirective>();\n @Output() select = new EventEmitter<ListItemDirective>();\n @Output() unselect = new EventEmitter<ListItemDirective>();\n @Output() disable = new EventEmitter<ListItemDirective>();\n @Output() enable = new EventEmitter<ListItemDirective>();\n\n @HostListener('click')\n onClick() {\n this.selected = true;\n }\n\n constructor(public renderer: Renderer2, public el: ElementRef) {}\n\n getOffsetTop(): number {\n const padding = 5;\n\n return this.el.nativeElement.offsetTop - padding;\n }\n\n private toggleFocusedClass() {\n if (this.focused) {\n this.addCls(ListItemDirective.focusedCls);\n } else {\n this.removeCls(ListItemDirective.focusedCls);\n }\n }\n\n private toggleSelectedClass() {\n if (this.selected) {\n this.addCls(ListItemDirective.selectedCls);\n this.removeCls(ListItemDirective.focusedCls);\n } else {\n this.removeCls(ListItemDirective.selectedCls);\n }\n }\n\n private toggleDisabledClass() {\n if (this.disabled) {\n this.addCls(ListItemDirective.disabledCls);\n } else {\n this.removeCls(ListItemDirective.disabledCls);\n }\n }\n\n private addCls(cls: string) {\n this.renderer.addClass(this.el.nativeElement, cls);\n }\n\n private removeCls(cls: string) {\n this.renderer.removeClass(this.el.nativeElement, cls);\n }\n}\n","import {\n Component,\n AfterViewInit,\n OnInit,\n OnDestroy,\n Input,\n ContentChildren,\n HostListener,\n ElementRef\n} from '@angular/core';\nimport type { QueryList } from '@angular/core';\n\nimport { Subscription } from 'rxjs';\n\nimport { ListItemDirective } from './list-item.directive';\n\n@Component({\n selector: 'igo-list',\n templateUrl: './list.component.html',\n styleUrls: ['./list.component.scss']\n})\nexport class ListComponent implements AfterViewInit, OnInit, OnDestroy {\n @Input()\n get navigation() {\n return this._navigation;\n }\n set navigation(value: boolean) {\n this._navigation = value;\n }\n private _navigation = true;\n\n @Input()\n get selection() {\n return this._selection;\n }\n set selection(value: boolean) {\n this._selection = value;\n }\n private _selection = true;\n\n get selectedItem() {\n return this._selectedItem;\n }\n set selectedItem(value: ListItemDirective) {\n this.focusedItem = value;\n this._selectedItem = value;\n }\n private _selectedItem: ListItemDirective;\n\n get focusedItem() {\n return this._focusedItem;\n }\n set focusedItem(value: ListItemDirective) {\n this._focusedItem = value;\n }\n private _focusedItem: ListItemDirective;\n\n private navigationEnabled: boolean;\n private listItems$$: Subscription;\n private subscriptions: Subscription[] = [];\n\n @ContentChildren(ListItemDirective, { descendants: true })\n listItems: QueryList<ListItemDirective>;\n\n @HostListener('document:keydown', ['$event'])\n @HostListener('document:enter', ['$event'])\n handleKeyboardEvent(event: KeyboardEvent) {\n // It would be nice to be able to unsubscribe to the event\n // completely but until ES7 this won't be possible because\n // document events are not observables\n if (this.navigationEnabled) {\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\n event.preventDefault();\n this.navigate(event.key);\n } else if (event.key === 'Enter') {\n this.select(this.focusedItem);\n }\n }\n }\n\n constructor(private el: ElementRef) {}\n\n ngOnInit() {\n this.enableNavigation();\n }\n\n ngAfterViewInit() {\n if (this.listItems.length) {\n this.init();\n }\n\n this.listItems$$ = this.listItems.changes.subscribe(\n (items: ListItemDirective[]) => this.init()\n );\n }\n\n ngOnDestroy() {\n this.listItems$$.unsubscribe();\n }\n\n focus(item?: ListItemDirective) {\n if (!this.selection) {\n return;\n }\n\n this.unfocus();\n\n // We need to make this check because dynamic\n // lists such as in the search results list may fail\n if (item !== undefined) {\n item.focused = true;\n }\n }\n\n unfocus() {\n if (this.focusedItem !== undefined) {\n this.focusedItem.focused = false;\n }\n\n this.focusedItem = undefined;\n }\n\n focusNext() {\n const items = this.listItems.toArray();\n let item;\n const igoList = this.el.nativeElement;\n let disabled = true;\n let index = this.getFocusedIndex();\n if (index === undefined) {\n index = -1;\n }\n\n while (disabled && index < items.length - 1) {\n index += 1;\n item = items[index];\n disabled = item.disabled;\n }\n\n if (item !== undefined) {\n this.focus(item);\n }\n\n if (!items[index + 1]) {\n igoList.scrollTop = igoList.scrollHeight - igoList.clientHeight;\n return;\n }\n\n if (item !== undefined && !this.isScrolledIntoView(item.el.nativeElement)) {\n igoList.scrollTop =\n item.el.nativeElement.offsetTop +\n item.el.nativeElement.children[0].offsetHeight -\n igoList.clientHeight;\n }\n }\n\n focusPrevious() {\n const items = this.listItems.toArray();\n let item: ListItemDirective;\n const igoList = this.el.nativeElement;\n let disabled = true;\n let index = this.getFocusedIndex();\n\n while (disabled && index > 0) {\n index -= 1;\n item = items[index];\n disabled = item.disabled;\n }\n\n if (item !== undefined) {\n this.focus(item);\n }\n\n if (!items[index - 1]) {\n igoList.scrollTop = 0;\n return;\n }\n\n if (item !== undefined && !this.isScrolledIntoView(item.el.nativeElement)) {\n const padding = 3;\n igoList.scrollTop = item.el.nativeElement.offsetTop - padding;\n }\n }\n\n select(item?: ListItemDirective) {\n if (!this.selection) {\n return;\n }\n\n this.unselect();\n\n if (item !== undefined) {\n item.selected = true;\n }\n }\n\n unselect() {\n this.unfocus();\n\n if (this.selectedItem !== undefined) {\n this.selectedItem.selected = false;\n }\n\n this.selectedItem = undefined;\n }\n\n enableNavigation() {\n if (this.navigation) {\n this.navigationEnabled = true;\n }\n }\n\n disableNavigation() {\n this.navigationEnabled = false;\n }\n\n scrollToItem(item: ListItemDirective) {\n this.el.nativeElement.scrollTop = item.getOffsetTop();\n }\n\n isScrolledIntoView(elem) {\n const docViewTop =\n this.el.nativeElement.scrollTop + this.el.nativeElement.offsetTop;\n const docViewBottom = docViewTop + this.el.nativeElement.clientHeight;\n\n const elemTop = elem.offsetTop;\n const elemBottom = elemTop + elem.children[0].offsetHeight;\n return elemBottom <= docViewBottom && elemTop >= docViewTop;\n }\n\n private init() {\n this.subscribe();\n\n this.selectedItem = this.findSelectedItem();\n this.focusedItem = this.findFocusedItem();\n\n this.enableNavigation();\n }\n\n private subscribe() {\n this.unsubscribe();\n\n this.listItems.toArray().forEach(item => {\n this.subscriptions.push(\n item.beforeSelect.subscribe((item2: ListItemDirective) =>\n this.handleItemBeforeSelect(item2)\n )\n );\n\n this.subscriptions.push(\n item.select.subscribe((item2: ListItemDirective) =>\n this.handleItemSelect(item2)\n )\n );\n\n this.subscriptions.push(\n item.beforeFocus.subscribe((item2: ListItemDirective) =>\n this.handleItemBeforeFocus(item2)\n )\n );\n\n this.subscriptions.push(\n item.focus.subscribe((item2: ListItemDirective) =>\n this.handleItemFocus(item2)\n )\n );\n }, this);\n }\n\n private unsubscribe() {\n this.subscriptions.forEach((sub: Subscription) => sub.unsubscribe());\n this.subscriptions = [];\n }\n\n private handleItemBeforeFocus(item: ListItemDirective) {\n if (item !== this.focusedItem) {\n this.unfocus();\n }\n }\n\n private handleItemFocus(item: ListItemDirective) {\n this.focusedItem = item;\n }\n\n private handleItemBeforeSelect(item: ListItemDirective) {\n if (item !== this.focusedItem) {\n this.unselect();\n }\n }\n\n private handleItemSelect(item: ListItemDirective) {\n this.selectedItem = item;\n }\n\n private findSelectedItem() {\n return this.listItems.toArray().find(item => item.selected);\n }\n\n private findFocusedItem() {\n return this.listItems.toArray().find(item => item.focused);\n }\n\n private getFocusedIndex() {\n return this.listItems\n .toArray()\n .findIndex(item => item === this.focusedItem);\n }\n\n private navigate(key: string) {\n switch (key) {\n case 'ArrowUp':\n this.focusPrevious();\n break;\n case 'ArrowDown':\n this.focusNext();\n break;\n default:\n break;\n }\n }\n}\n","<mat-list\n igoClickout\n [ngClass]=\"{'selectable': selection}\"\n (clickout)=\"disableNavigation()\"\n (click)=\"enableNavigation()\">\n <ng-content></ng-content>\n</mat-list>\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule } from '@angular/material/list';\n\nimport { IgoClickoutModule } from '../clickout/clickout.module';\n\nimport { ListItemDirective } from './list-item.directive';\nimport { ListComponent } from './list.component';\n\n@NgModule({\n imports: [CommonModule, MatIconModule, MatListModule, IgoClickoutModule],\n declarations: [ListItemDirective, ListComponent],\n exports: [ListItemDirective, ListComponent]\n})\nexport class IgoListModule {\n static forRoot(): ModuleWithProviders<IgoListModule> {\n return {\n ngModule: IgoListModule,\n providers: []\n };\n }\n}\n","<div *ngIf=\"withHeader\" class=\"igo-panel-header mat-typography\" title=\"\" [ngClass]=\"{'igo-cursor-pointer': cursorPointer === true}\">\n <h3>\n <ng-content select=\"[panelLeftButton]\"></ng-content>\n <div class=\"igo-panel-title\">\n {{ title }}\n <ng-content select=\"[panelHeader]\"></ng-content>\n </div>\n <ng-content select=\"[panelRightButton]\"></ng-content>\n </h3>\n</div>\n<div class=\"igo-panel-content\" title=\"\">\n <ng-content></ng-content>\n</div>\n","import {\n Component,\n Input,\n ChangeDetectionStrategy,\n HostBinding\n} from '@angular/core';\n\n@Component({\n selector: 'igo-panel',\n templateUrl: './panel.component.html',\n styleUrls: ['./panel.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PanelComponent {\n @Input() title: string;\n\n @Input()\n @HostBinding('class.igo-panel-with-header')\n get withHeader(): boolean {\n return this._withHeader;\n }\n set withHeader(value: boolean) {\n this._withHeader = value;\n }\n private _withHeader = true;\n\n @Input() cursorPointer: boolean = false;\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PanelComponent } from './panel.component';\n\n@NgModule({\n imports: [CommonModule],\n exports: [PanelComponent],\n declarations: [PanelComponent]\n})\nexport class IgoPanelModule {}\n","import { Directive, Self, HostListener, Renderer2 } from '@angular/core';\nimport { MatSidenav } from '@angular/material/sidenav';\n\n/**\n * <igoSidenavShim> directive.\n *\n * This directive prevents a material sidenav with mode=\"side\"\n * from focusing an element after it's closed\n */\n@Directive({\n selector: '[igoSidenavShim]'\n})\nexport class SidenavShimDirective {\n private focusedElement: HTMLElement;\n private blurElement: HTMLElement;\n\n @HostListener('open', ['$event'])\n onOpen() {\n this.focusedElement = document.activeElement as HTMLElement;\n }\n\n @HostListener('close-start', ['$event'])\n onCloseStart() {\n const focusedElement = document.activeElement as HTMLElement;\n if (focusedElement !== this.focusedElement) {\n this.blurElement = this.focusedElement;\n } else {\n this.blurElement = undefined;\n }\n }\n\n @HostListener('close', ['$event'])\n onClose() {\n if (this.blurElement) {\n this.renderer.selectRootElement(this.blurElement).blur();\n }\n\n this.blurElement = undefined;\n this.focusedElement = undefined;\n }\n\n constructor(@Self() component: MatSidenav, private renderer: Renderer2) {}\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { SidenavShimDirective } from './sidenav-shim.directive';\n\n@NgModule({\n imports: [],\n declarations: [SidenavShimDirective],\n exports: [SidenavShimDirective]\n})\nexport class IgoSidenavModule {\n static forRoot(): ModuleWithProviders<IgoSidenavModule> {\n return {\n ngModule: IgoSidenavModule,\n providers: []\n };\n }\n}\n","import { Component, Input } from '@angular/core';\n\nimport { BehaviorSubject } from 'rxjs';\n\n@Component({\n selector: 'igo-spinner',\n templateUrl: './spinner.component.html',\n styleUrls: ['./spinner.component.scss']\n})\nexport class SpinnerComponent {\n\n public shown$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n\n @Input()\n set shown(value: boolean) { this.shown$.next(value); }\n get shown(): boolean { return this.shown$.value; }\n\n constructor() {}\n\n show() {\n this.shown = true;\n }\n\n hide() {\n this.shown = false;\n }\n}\n","<div\n [ngClass]=\"{'igo-spinner-container': true, 'igo-spinner-shown': (shown$ | async)}\">\n <div class=\"igo-spinner-background\"></div>\n <mat-progress-spinner diameter=\"40\" mode=\"indeterminate\"></mat-progress-spinner>\n</div>\n","import { Directive, Self, OnInit, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\nimport { ActivityService } from '@igo2/core';\nimport { SpinnerComponent } from './spinner.component';\n\n/**\n * A directive to bind a SpinnerComponent to the activity service.\n * The activity service tracks any HTTP request and this directive\n * will display the spinner it's attached to when the activity counter\n * is greater than 0.\n */\n@Directive({\n selector: '[igoSpinnerActivity]'\n})\nexport class SpinnerActivityDirective implements OnInit, OnDestroy {\n /**\n * Subscription to the activity service counter\n */\n private counter$$: Subscription;\n\n constructor(\n @Self() private spinner: SpinnerComponent,\n private activityService: ActivityService\n ) {}\n\n /**\n * Subscribe to the activity service counter and display the spinner\n * when it's is greater than 0.\n * @internal\n */\n ngOnInit() {\n this.counter$$ = this.activityService.counter$\n .pipe(debounceTime(50))\n .subscribe((count: number) => {\n count > 0 ? this.spinner.show() : this.spinner.hide();\n });\n }\n\n /**\n * Unsubcribe to the activity service counter.\n * @internal\n */\n ngOnDestroy() {\n this.counter$$.unsubscribe();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\n\nimport { SpinnerActivityDirective } from './spinner-activity.directive';\nimport { SpinnerComponent } from './spinner.component';\n\n@NgModule({\n imports: [CommonModule, MatProgressSpinnerModule],\n declarations: [SpinnerActivityDirective, SpinnerComponent],\n exports: [SpinnerActivityDirective, SpinnerComponent]\n})\nexport class IgoSpinnerModule {}\n","import { DataSource } from '@angular/cdk/table';\nimport { MatSort } from '@angular/material/sort';\n\nimport { Observable, BehaviorSubject, merge } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { ObjectUtils } from '@igo2/utils';\n\nimport { TableDatabase, TableModel } from './index';\n\nexport class TableDataSource extends DataSource<any> {\n get filter(): string {\n return this._filterChange.value;\n }\n set filter(filter: string) {\n this._filterChange.next(filter);\n }\n private _filterChange = new BehaviorSubject('');\n\n constructor(\n private _database: TableDatabase,\n private _model: TableModel,\n private _sort: MatSort\n ) {\n super();\n }\n\n // Connect function called by the table to retrieve one stream containing\n // the data to render.\n connect(): Observable<any[]> {\n if (!this._database) {\n return merge([]);\n }\n const displayDataChanges = [\n this._database.dataChange,\n this._filterChange,\n this._sort.sortChange\n ];\n\n return merge(...displayDataChanges).pipe(\n map(() => {\n return this.getFilteredData(this._database.data);\n }),\n map(data => {\n return this.getSortedData(data);\n })\n );\n }\n\n disconnect() {}\n\n getFilteredData(data): any[] {\n if (!this.filter) {\n return data;\n }\n return data.slice().filter((item: any) => {\n const searchStr: string = this._model.columns\n .filter(c => c.filterable)\n .map(c => ObjectUtils.resolve(item, c.name))\n .join(' ')\n .toLowerCase();\n\n return searchStr.indexOf(this.filter.toLowerCase()) !== -1;\n });\n }\n\n getSortedData(data): any[] {\n if (!this._sort.active || this._sort.direction === '') {\n return data;\n }\n\n return data.sort((a, b) => {\n const propertyA: number | string = ObjectUtils.resolve(\n a,\n this._sort.active\n );\n const propertyB: number | string = ObjectUtils.resolve(\n b,\n this._sort.active\n );\n\n return ObjectUtils.naturalCompare(\n propertyB,\n propertyA,\n this._sort.direction\n );\n });\n }\n}\n","export enum TableActionColor {\n primary,\n accent,\n warn\n}\n","<div class='table-box'>\n <div class='table-header' *ngIf=\"hasFilterInput\">\n <mat-form-field floatPlaceholder='never'>\n <input matInput #filter [placeholder]=\"'igo.common.table.filter' | translate\">\n </mat-form-field>\n </div>\n\n <div class='table-container'>\n <table mat-table #table [dataSource]='dataSource' matSort>\n\n <!-- Checkbox Column -->\n <ng-container matColumnDef=\"selectionCheckbox\">\n <th mat-header-cell *matHeaderCellDef>\n <mat-checkbox (change)=\"$event ? masterToggle() : null\"\n [checked]=\"selection.hasValue() && isAllSelected()\"\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\">\n </mat-checkbox>\n </th>\n <td mat-cell *matCellDef=\"let row\">\n <mat-checkbox (click)=\"$event.stopPropagation()\"\n (change)=\"$event ? selection.toggle(row) : null\"\n [checked]=\"selection.isSelected(row)\">\n </mat-checkbox>\n </td>\n </ng-container>\n\n <ng-container [matColumnDef]='column.name' *ngFor='let column of model.columns'>\n <ng-container *ngIf='column.sortable'>\n <th mat-header-cell *matHeaderCellDef mat-sort-header> {{column.title}} </th>\n </ng-container>\n\n <ng-container *ngIf='!column.sortable'>\n <th mat-header-cell *matHeaderCellDef> {{column.title}} </th>\n </ng-container>\n\n <ng-container *ngIf=\"!column.html; else cellHTML\">\n <td mat-cell *matCellDef='let row' class=\"mat-cell-text\"\n [ngClass]=\"model.cellClassFunc ? model.cellClassFunc(row, column) : {}\">\n {{getValue(row, column.name)}}\n </td>\n </ng-container>\n\n <ng-template #cellHTML>\n <td mat-cell *matCellDef='let row' class=\"mat-cell-text\"\n [ngClass]=\"model.cellClassFunc ? model.cellClassFunc(row, column) : {}\"\n [innerHTML]=\"getValue(row, column.name)\">\n </td>\n </ng-template>\n </ng-container>\n\n <!-- Action Column -->\n <ng-container matColumnDef='action'>\n <th mat-header-cell *matHeaderCellDef></th>\n <td mat-cell *matCellDef='let row'>\n <button *ngFor='let action of model.actions'\n mat-mini-fab\n [color]='getActionColor(action.color)'\n (click)='handleClickAction($event, action, row)'>\n <mat-icon svgIcon=\"{{action.icon}}\"></mat-icon>\n </button>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef='displayedColumns;'></tr>\n <tr mat-row\n *matRowDef='let row; columns: displayedColumns;'\n [ngClass]=\"model.rowClassFunc ? model.rowClassFunc(row) : {}\"\n (click)=\"selection.toggle(row)\">\n </tr>\n\n </table>\n </div>\n\n</div>\n","import {\n Component,\n ElementRef,\n ViewChild,\n Input,\n Output,\n OnChanges,\n OnInit,\n AfterViewInit,\n EventEmitter\n} from '@angular/core';\nimport { MatSort } from '@angular/material/sort';\nimport { SelectionModel } from '@angular/cdk/collections';\n\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\nimport { fromEvent } from 'rxjs';\n\nimport { ObjectUtils } from '@igo2/utils';\n\nimport { TableModel } from './table-model.interface';\nimport { TableDatabase } from './table-database';\nimport { TableDataSource } from './table-datasource';\nimport { TableActionColor } from './table-action-color.enum';\n\n@Component({\n selector: 'igo-table',\n templateUrl: './table.component.html',\n styleUrls: ['./table.component.scss']\n})\nexport class TableComponent implements OnChanges, OnInit, AfterViewInit {\n @Input()\n get database(): TableDatabase {\n return this._database;\n }\n set database(value: TableDatabase) {\n this._database = value;\n }\n private _database: TableDatabase;\n\n @Input()\n get model(): TableModel {\n return this._model;\n }\n set model(value: TableModel) {\n this._model = value;\n }\n private _model: TableModel;\n\n @Input()\n get hasFilterInput(): boolean {\n return this._hasFIlterInput;\n }\n set hasFilterInput(value: boolean) {\n this._hasFIlterInput = value;\n }\n private _hasFIlterInput = true;\n\n public displayedColumns;\n public dataSource: TableDataSource | null;\n public selection = new SelectionModel<any>(true, []);\n\n @Output()\n select = new EventEmitter<{\n added: any[];\n removed: any[];\n source: SelectionModel<any>;\n }>();\n\n @ViewChild('filter') filter: ElementRef;\n @ViewChild(MatSort, { static: true }) sort: MatSort;\n\n ngOnInit() {\n this.dataSource = new TableDataSource(this.database, this.model, this.sort);\n\n if (this.model) {\n this.displayedColumns = this.model.columns\n .filter(c => c.displayed !== false)\n .map(c => c.name);\n\n if (this.model.selectionCheckbox) {\n this.displayedColumns.unshift('selectionCheckbox');\n }\n if (this.model.actions && this.model.actions.length) {\n this.displayedColumns.push('action');\n }\n }\n\n this.selection.changed.subscribe(e => this.select.emit(e));\n }\n\n ngAfterViewInit() {\n if (this.filter) {\n fromEvent(this.filter.nativeElement, 'keyup')\n .pipe(\n debounceTime(150),\n distinctUntilChanged()\n )\n .subscribe(() => {\n if (!this.dataSource) {\n return;\n }\n this.dataSource.filter = this.filter.nativeElement.value;\n });\n }\n }\n\n ngOnChanges(change) {\n if (change.database) {\n this.dataSource = new TableDataSource(\n this.database,\n this.model,\n this.sort\n );\n this.selection.clear();\n }\n }\n\n getActionColor(colorId: number): string {\n return TableActionColor[colorId];\n }\n\n getValue(row, key) {\n return ObjectUtils.resolve(row, key);\n }\n\n /** Whether the number of selected elements matches the total number of rows. */\n isAllSelected() {\n const numSelected = this.selection.selected.length;\n const numRows = this.database.data.length;\n return numSelected === numRows;\n }\n\n /** Selects all rows if they are not all selected; otherwise clear selection. */\n masterToggle() {\n this.isAllSelected()\n ? this.selection.clear()\n : this.database.data.forEach(row => this.selection.select(row));\n }\n\n handleClickAction(event, action, row) {\n event.stopPropagation();\n action.click(row);\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { CdkTableModule } from '@angular/cdk/table';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatTableModule } from '@angular/material/table';\n\nimport { IgoLanguageModule } from '@igo2/core';\n\nimport { TableComponent } from './table.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n CdkTableModule,\n MatIconModule,\n MatButtonModule,\n MatTableModule,\n MatFormFieldModule,\n MatInputModule,\n MatSortModule,\n MatCheckboxModule,\n IgoLanguageModule\n ],\n declarations: [TableComponent],\n exports: [TableComponent]\n})\nexport class IgoTableModule {\n static forRoot(): ModuleWithProviders<IgoTableModule> {\n return {\n ngModule: IgoTableModule,\n providers: []\n };\n }\n}\n","import { EntityStore } from '../../entity';\nimport { Action } from './action.interfaces';\n\n/**\n * The class is a specialized version of an EntityStore that stores\n * actions.\n */\nexport class ActionStore extends EntityStore<Action> {\n\n}\n","export enum ToolboxColor {\n White = 'white',\n Grey = 'grey',\n Primary = 'primary'\n}\n","import {\n trigger,\n state,\n style,\n transition,\n animate,\n AnimationTriggerMetadata\n} from '@angular/animations';\n\nexport function toolSlideInOut(\n speed = '300ms',\n type = 'ease-in-out'\n): AnimationTriggerMetadata {\n return trigger('toolSlideInOut', [\n state(\n 'enter',\n style({\n transform: 'translate3d(0, 0, 0)'\n })\n ),\n transition('void => enter', animate(speed + ' ' + type))\n ]);\n}\n","<igo-actionbar\n *ngIf=\"(toolbar$ | async).length > 0\"\n [store]=\"actionStore\"\n [withIcon]=\"true\"\n [withTitle]=\"toolbarWithTitle$ | async\"\n [withTooltip]=\"(toolbarWithTitle$ | async) === false\"\n [scrollActive]=\"toolbarWithTitle$ | async\"\n [horizontal]=\"false\">\n</igo-actionbar>\n\n<div\n *ngIf=\"activeTool$ | async as tool\"\n class=\"igo-tool-container\"\n [ngClass]=\"{'igo-tool-container-with-toolbar': !actionStore.empty, 'igo-tool-container-with-animation': animate}\"\n [@toolSlideInOut]=\"animation$ | async\"\n (@toolSlideInOut.start)=\"onAnimationStart()\"\n (@toolSlideInOut.done)=\"onAnimationComplete()\">\n\n <igo-dynamic-outlet\n [component]=\"tool.component\"\n [inputs]=\"getToolInputs(tool)\">\n </igo-dynamic-outlet>\n\n</div>\n","import {\n Component,\n Input,\n OnDestroy,\n OnInit,\n HostBinding,\n ChangeDetectionStrategy\n} from '@angular/core';\n\nimport { Subscription, BehaviorSubject, Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { Action, ActionStore } from '../../action';\nimport { Tool } from '../shared/tool.interface';\nimport { ToolboxColor } from '../shared/toolbox.enums';\nimport { Toolbox } from '../shared/toolbox';\nimport { toolSlideInOut } from './toolbox.animation';\n\n@Component({\n selector: 'igo-toolbox',\n templateUrl: 'toolbox.component.html',\n styleUrls: ['toolbox.component.scss'],\n animations: [toolSlideInOut()],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ToolboxComponent implements OnInit, OnDestroy {\n /**\n * Observable of the active tool\n */\n activeTool$: BehaviorSubject<Tool> = new BehaviorSubject(undefined);\n\n /**\n * Store of actions that toggle tools\n */\n actionStore: ActionStore = new ActionStore([]);\n\n /**\n * Observable of he anmation state\n */\n animation$: BehaviorSubject<string> = new BehaviorSubject('none');\n\n /**\n * Observable of the toolbar\n */\n toolbar$: BehaviorSubject<string[]> = new BehaviorSubject([]);\n\n /**\n * Whether the Toolbar should display actions' titles\n */\n toolbarWithTitle$: Observable<boolean> = this.activeTool$.pipe(\n map((tool: Tool | undefined) => tool === undefined)\n );\n\n /**\n * Subscription to the active tool\n */\n private activeTool$$: Subscription;\n\n /**\n * Subscription to the toolbar\n */\n private toolbar$$: Subscription;\n\n /**\n * Observable of the ongoing animation. This is useful when\n * multiple animations are triggered at once i.e. when the user clicks\n * too fast on different actions\n */\n private animating$ = new BehaviorSubject<boolean>(false);\n\n /**\n * Subscription to the ongoing animation\n */\n private animating$$: Subscription;\n\n /**\n * Toolbox\n */\n @Input() toolbox: Toolbox;\n\n /**\n * Whether the toolbox should animate the first tool entering\n */\n @Input() animate: boolean = false;\n\n /**\n * Color of Toolbox\n */\n @Input() color: ToolboxColor = ToolboxColor.White;\n\n /**\n * @ignore\n */\n @HostBinding('class.color-grey')\n get classColorGrey() {\n return this.color === ToolboxColor.Grey;\n }\n\n /**\n * @ignore\n */\n @HostBinding('class.color-primary')\n get classColorPrimary() {\n return this.color === ToolboxColor.Primary;\n }\n\n /**\n * Initialize the toolbar and subscribe to the active tool\n * @internal\n */\n ngOnInit() {\n this.toolbar$$ = this.toolbox.toolbar$.subscribe((toolbar: string[]) =>\n this.onToolbarChange(toolbar)\n );\n this.activeTool$$ = this.toolbox.activeTool$.subscribe((tool: Tool) =>\n this.onActiveToolChange(tool)\n );\n }\n\n /**\n * Unsubscribe to the active tool and destroy the action store\n * @internal\n */\n ngOnDestroy() {\n this.toolbar$$.unsubscribe();\n this.activeTool$$.unsubscribe();\n this.actionStore.destroy();\n }\n\n /**\n * Track the starting animation\n * @internal\n */\n onAnimationStart() {\n this.animating$.next(true);\n }\n\n /**\n * Untrack the completed animation\n * @internal\n */\n onAnimationComplete() {\n this.animating$.next(false);\n }\n\n /**\n * Return a tool's inputs\n * @param tool Tool\n * @returns Tool inputs\n * @internal\n */\n getToolInputs(tool: Tool): { [key: string]: any } {\n return tool.options || {};\n }\n\n /**\n * Initialize an action store\n * @param toolbar Toolbar\n */\n private onToolbarChange(toolbar: string[]) {\n this.setToolbar(toolbar);\n }\n\n /**\n * Activate a tool and trigger an animation or not\n * @param tool Tool to activate\n */\n private onActiveToolChange(tool: Tool) {\n if (!this.animate) {\n this.setActiveTool(tool);\n return;\n }\n this.onAnimate(() => this.setActiveTool(tool));\n }\n\n /**\n * Set the active tool\n * @param tool Tool to activate\n */\n private setActiveTool(tool: Tool | undefined) {\n if (tool === undefined) {\n this.actionStore.state.updateAll({ active: false });\n } else {\n const action = this.actionStore.get(tool.name);\n if (action !== undefined) {\n this.actionStore.state.update(action, { active: true }, true);\n }\n }\n\n this.activeTool$.next(tool);\n if (this.animate) {\n this.animation$.next('enter');\n }\n }\n\n /**\n * Initialize the toolbar\n */\n private setToolbar(toolbar: string[]) {\n const actions = toolbar.reduce((acc: Action[], toolName: string) => {\n const tool = this.toolbox.getTool(toolName);\n if (tool === undefined) {\n return acc;\n }\n\n acc.push({\n id: tool.name,\n title: tool.title,\n icon: tool.icon,\n // iconImage: tool.iconImage,\n tooltip: tool.tooltip,\n args: [tool, this.toolbox],\n handler: (_tool: Tool, _toolbox: Toolbox) => {\n _toolbox.activateTool(_tool.name);\n },\n ngClass: (_tool: Tool, _toolbox: Toolbox) => {\n return this.toolbox.activeTool$.pipe(\n map((activeTool: Tool) => {\n let toolActivated = false;\n if (activeTool !== undefined && _tool.name === activeTool.name) {\n toolActivated = true;\n }\n\n let childrenToolActivated = false;\n if (\n activeTool !== undefined &&\n _tool.name === activeTool.parent\n ) {\n childrenToolActivated = true;\n }\n\n return {\n 'tool-activated': toolActivated,\n 'children-tool-activated': childrenToolActivated\n };\n })\n );\n }\n });\n return acc;\n }, []);\n this.actionStore.load(actions);\n this.toolbar$.next(toolbar);\n }\n\n /**\n * Observe the ongoing animation and ignore any incoming animation\n * while one is still ongoing.\n * @param callback Callback to execute when the animation completes\n */\n private onAnimate(callback: () => void) {\n this.unAnimate();\n this.animating$$ = this.animating$.subscribe((animation: boolean) => {\n if (!animation) {\n callback.call(this);\n this.unAnimate();\n }\n });\n }\n\n /**\n * Stop observing an animation when it's complete\n */\n private unAnimate() {\n if (this.animating$$) {\n this.animating$$.unsubscribe();\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { IgoActionModule } from '../../action/action.module';\nimport {\n IgoDynamicComponentModule\n} from '../../dynamic-component/dynamic-component.module';\n\nimport { ToolboxComponent } from './toolbox.component';\n\n/**\n * @ignore\n */\n@NgModule({\n imports: [\n CommonModule,\n IgoActionModule,\n IgoDynamicComponentModule\n ],\n exports: [\n ToolboxComponent\n ],\n declarations: [\n ToolboxComponent\n ]\n})\nexport class IgoToolboxModule {}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { ToolService } from './shared/tool.service';\nimport { IgoToolboxModule } from './toolbox/toolbox.module';\n\n@NgModule({\n imports: [\n CommonModule\n ],\n exports: [\n IgoToolboxModule\n ],\n declarations: []\n})\nexport class IgoToolModule {\n static forRoot(): ModuleWithProviders<IgoToolModule> {\n return {\n ngModule: IgoToolModule,\n providers: [\n ToolService\n ]\n };\n }\n}\n","<igo-dynamic-outlet\n *ngIf=\"widget\"\n [component]=\"widget\"\n [inputs]=\"inputs\"\n [subscribers]=\"getEffectiveSubscribers()\">\n</igo-dynamic-outlet>\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ChangeDetectionStrategy,\n OnDestroy\n} from '@angular/core';\n\nimport { DynamicComponent } from '../../dynamic-component';\n\nimport { WidgetComponent } from '../shared/widget.interfaces';\n\n/**\n * This component dynamically renders a widget. It also subscribes\n * to the widget's 'cancel' and 'complete' events and destroys it\n * when any of those event is emitted.\n */\n@Component({\n selector: 'igo-widget-outlet',\n templateUrl: './widget-outlet.component.html',\n styleUrls: ['./widget-outlet.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class WidgetOutletComponent implements OnDestroy {\n\n /**\n * Widget subscribers to 'cancel' and 'complete'\n * @internal\n */\n private baseSubscribers = {\n cancel: (event: any) => this.onCancel(event),\n complete: (event: any) => this.onComplete(event)\n };\n\n /**\n * Widget\n */\n @Input() widget: DynamicComponent<WidgetComponent>;\n\n /**\n * Widget inputs\n */\n @Input() inputs: {[key: string]: any};\n\n /**\n * Widget subscribers\n */\n @Input() subscribers: {[key: string]: (event: any) => void} = {};\n\n /**\n * Event emitted when the widget emits 'complete'\n */\n @Output() complete = new EventEmitter<any>();\n\n /**\n * Event emitted when the widget emits 'cancel'\n */\n @Output() cancel = new EventEmitter<any>();\n\n constructor() {}\n\n /**\n * Destroy the current widget and all it's inner subscriptions\n * @internal\n */\n ngOnDestroy() {\n this.destroyWidget();\n }\n\n /**\n * Get the effective subscribers. That means a combination of the base\n * subscribers and any subscriber given as input.\n * @returns Combined subscribers\n * @internal\n */\n getEffectiveSubscribers(): {[key: string]: (event: any) => void} {\n const subscribers = Object.assign({}, this.subscribers);\n\n // Base subscribers\n Object.keys(this.baseSubscribers).forEach((key: string) => {\n const subscriber = subscribers[key];\n const baseSubscriber = this.baseSubscribers[key];\n if (subscriber !== undefined) {\n subscribers[key] = (event: any) => {\n subscriber(event);\n baseSubscriber(event);\n };\n } else {\n subscribers[key] = baseSubscriber;\n }\n });\n\n return subscribers;\n }\n\n /**\n * When the widget emits 'cancel', propagate that event and destroy\n * the widget\n */\n private onCancel(event: any) {\n this.cancel.emit(event);\n this.destroyWidget();\n }\n\n /**\n * When the widget emits 'complete', propagate that event and destroy\n * the widget\n */\n private onComplete(event: any) {\n this.complete.emit(event);\n this.destroyWidget();\n }\n\n /**\n * Destroy the current widget\n */\n private destroyWidget() {\n if (this.widget !== undefined) {\n this.widget.destroy();\n }\n this.widget = undefined;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport {\n IgoDynamicComponentModule\n} from '../../dynamic-component/dynamic-component.module';\n\nimport { WidgetOutletComponent } from './widget-outlet.component';\n\n/**\n * @ignore\n */\n@NgModule({\n imports: [\n CommonModule,\n IgoDynamicComponentModule\n ],\n exports: [\n WidgetOutletComponent\n ],\n declarations: [\n WidgetOutletComponent\n ]\n})\nexport class IgoWidgetOutletModule {}\n","import { Injectable } from '@angular/core';\n\nimport { DynamicComponentService } from '../../dynamic-component/shared/dynamic-component.service';\n\nimport { Widget } from './widget';\nimport { WidgetComponent } from './widget.interfaces';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WidgetService {\n\n constructor(private dynamicComponentService: DynamicComponentService) {}\n\n create(widgetCls: any): Widget {\n return this.dynamicComponentService.create(widgetCls as WidgetComponent);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { IgoWidgetOutletModule } from './widget-outlet/widget-outlet.module';\nimport { WidgetService } from './shared/widget.service';\n\n@NgModule({\n imports: [\n CommonModule,\n IgoWidgetOutletModule\n ],\n exports: [\n IgoWidgetOutletModule\n ],\n declarations: [],\n providers: [\n WidgetService\n ]\n})\nexport class IgoWidgetModule {}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ChangeDetectionStrategy\n} from '@angular/core';\n\nimport { getEntityTitle } from '../../entity';\nimport { Workspace } from '../shared/workspace';\nimport { WorkspaceStore } from '../shared/store';\n\n/**\n * Drop list that activates the selected workspace emit an event.\n */\n@Component({\n selector: 'igo-workspace-selector',\n templateUrl: './workspace-selector.component.html',\n styleUrls: ['./workspace-selector.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class WorkspaceSelectorComponent {\n\n /**\n * Store that holds the available workspaces.\n */\n @Input() store: WorkspaceStore;\n\n /**\n * Wheither the selector must be disabled or not.\n */\n @Input() disabled: boolean;\n\n /**\n * Event emitted when an workspace is selected or unselected\n */\n @Output() selectedChange = new EventEmitter<{\n selected: boolean;\n value: Workspace;\n }>();\n\n /**\n * @internal\n */\n getWorkspaceTitle(workspace: Workspace): string {\n return getEntityTitle(workspace);\n }\n\n /**\n * When an workspace is manually selected, select it into the\n * store and emit an event.\n * @internal\n * @param event The selection change event\n */\n onSelectedChange(event: {value: Workspace}) {\n const workspace = event.value;\n this.store.activateWorkspace(workspace);\n this.selectedChange.emit({selected: true, value: workspace});\n }\n\n}\n","<igo-entity-selector\n [store]=\"store\"\n [multi]=\"false\"\n [titleAccessor]=\"getWorkspaceTitle\"\n [disabled]=\"disabled\"\n (selectedChange)=\"onSelectedChange($event)\">\n</igo-entity-selector>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { IgoEntitySelectorModule } from '../../entity/entity-selector/entity-selector.module';\nimport { WorkspaceSelectorComponent } from './workspace-selector.component';\n\n/**\n * @ignore\n */\n@NgModule({\n imports: [\n CommonModule,\n IgoEntitySelectorModule\n ],\n exports: [\n WorkspaceSelectorComponent\n ],\n declarations: [\n WorkspaceSelectorComponent\n ]\n})\nexport class IgoWorkspaceSelectorModule {}\n","<ng-container *ngIf=\"widget$ | async as widget\">\n <igo-widget-outlet\n [widget]=\"widget\"\n [inputs]=\"widgetInputs$ | async\"\n [subscribers]=\"widgetSubscribers$ | async\"\n (cancel)=\"onWidgetCancel(widget)\"\n (complete)=\"onWidgetComplete(widget)\">\n </igo-widget-outlet>\n</ng-container>\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ChangeDetectionStrategy\n} from '@angular/core';\n\nimport { BehaviorSubject } from 'rxjs';\n\nimport { Widget } from '../../widget';\nimport { Workspace } from '../shared/workspace';\n\n/**\n * This component dynamically render an Workspace's active widget.\n * It also deactivate that widget whenever the widget's component\n * emit the 'cancel' or 'complete' event.\n */\n@Component({\n selector: 'igo-workspace-widget-outlet',\n templateUrl: './workspace-widget-outlet.component.html',\n styleUrls: ['./workspace-widget-outlet.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class WorkspaceWidgetOutletComponent {\n\n /**\n * Workspace\n */\n @Input() workspace: Workspace;\n\n /**\n * Event emitted when a widget is deactivate which happens\n * when the widget's component emits the 'cancel' or 'complete' event.\n */\n @Output() deactivateWidget = new EventEmitter<Widget>();\n\n /**\n * Observable of the workspace's active widget\n * @internal\n */\n get widget$(): BehaviorSubject<Widget> { return this.workspace.widget$; }\n\n /**\n * Observable of the workspace's widget inputs\n * @internal\n */\n get widgetInputs$(): BehaviorSubject<{[key: string]: any}> {\n return this.workspace.widgetInputs$;\n }\n\n /**\n * Observable of the workspace's widget inputs\n * @internal\n */\n get widgetSubscribers$(): BehaviorSubject<{[key: string]: (event: any) => void}> {\n return this.workspace.widgetSubscribers$;\n }\n\n constructor() {}\n\n /**\n * When a widget's component emit the 'cancel' event,\n * deactivate that widget and emit the 'deactivateWidget' event.\n * @param widget Widget\n * @internal\n */\n onWidgetCancel(widget: Widget) {\n this.workspace.deactivateWidget();\n this.deactivateWidget.emit(widget);\n }\n\n /**\n * When a widget's component emit the 'cancel' event,\n * deactivate that widget and emit the 'deactivateWidget' event.\n * @param widget Widget\n * @internal\n */\n onWidgetComplete(widget: Widget) {\n this.workspace.deactivateWidget();\n this.deactivateWidget.emit(widget);\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { IgoWidgetOutletModule } from '../../widget/widget-outlet/widget-outlet.module';\n\nimport { WorkspaceWidgetOutletComponent } from './workspace-widget-outlet.component';\n\n/**\n * @ignore\n */\n@NgModule({\n imports: [\n CommonModule,\n IgoWidgetOutletModule\n ],\n exports: [\n WorkspaceWidgetOutletComponent\n ],\n declarations: [\n WorkspaceWidgetOutletComponent\n ]\n})\nexport class IgoWorkspaceWidgetOutletModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { IgoWorkspaceSelectorModule } from './workspace-selector/workspace-selector.module';\nimport { IgoWorkspaceWidgetOutletModule } from './workspace-widget-outlet/workspace-widget-outlet.module';\n\n@NgModule({\n imports: [\n CommonModule\n ],\n exports: [\n IgoWorkspaceSelectorModule,\n IgoWorkspaceWidgetOutletModule\n ],\n declarations: []\n})\nexport class IgoWorkspaceModule {}\n","import { BehaviorSubject } from 'rxjs';\n\nexport class TableDatabase {\n /** Stream that emits whenever the data has been modified. */\n dataChange: BehaviorSubject<any[]> = new BehaviorSubject<any[]>([]);\n get data(): any[] {\n return this.dataChange.value;\n }\n\n constructor(data?) {\n if (data) {\n this.dataChange.next(data);\n }\n }\n\n set(data) {\n this.dataChange.next(data);\n }\n\n add(item) {\n const copiedData = this.data.slice();\n copiedData.push(item);\n this.set(copiedData);\n }\n\n remove(item) {\n const copiedData = this.data.slice();\n const index = copiedData.indexOf(item);\n copiedData.splice(index, 1);\n this.set(copiedData);\n }\n}\n","import { Tool } from './tool.interface';\nimport { ToolService } from './tool.service';\n\nexport function ToolComponent(tool: Partial<Tool>): (cls: any) => any {\n return (compType: any) => {\n ToolService.register(Object.assign({}, tool, {\n component: compType\n } as Tool));\n };\n}\n","import { DynamicComponent } from '../../dynamic-component/shared/dynamic-component';\nimport { WidgetComponent } from './widget.interfaces';\n\nexport class Widget extends DynamicComponent<WidgetComponent> {}\n","import { EntityStore } from '../../entity';\nimport { Workspace } from './workspace';\nimport { BehaviorSubject } from 'rxjs';\n\n/**\n * The class is a specialized version of an EntityStore that stores\n * workspaces.\n */\nexport class WorkspaceStore extends EntityStore<Workspace> {\n\n activeWorkspace$: BehaviorSubject<Workspace> = new BehaviorSubject(undefined);\n\n /**\n * Activate the an workspace workspace and deactivate the one currently active\n * @param workspace Workspace\n */\n activateWorkspace(workspace: Workspace) {\n const active = this.activeWorkspace$.value;\n if (active !== undefined) {\n active.deactivate();\n }\n\n this.deactivateWorkspace();\n if (workspace !== undefined) {\n this.state.update(workspace, {active: true, selected: true}, true);\n this.activeWorkspace$.next(workspace);\n workspace.activate();\n }\n }\n\n /**\n * Deactivate the current workspace\n * @param workspace Workspace\n */\n deactivateWorkspace() {\n const active = this.activeWorkspace$.value;\n if (active !== undefined) {\n active.deactivate();\n this.activeWorkspace$.next(undefined);\n }\n }\n\n}\n","import { Subscription, BehaviorSubject, Subject } from 'rxjs';\n\nimport { ActionStore } from '../../action';\nimport { Widget } from '../../widget';\nimport { EntityStore } from '../../entity';\n\nimport { WorkspaceOptions } from './workspace.interfaces';\n\n/**\n * This class is responsible of managing the relations between\n * entities and the actions that consume them. It also defines an\n * entity table template that may be used by an entity table component.\n */\nexport class Workspace<E extends object = object> {\n\n /**\n * Observable of the selected widget\n */\n readonly widget$ = new BehaviorSubject<Widget>(undefined);\n\n /**\n * Observable of the selected widget's inputs\n */\n readonly widgetInputs$ = new BehaviorSubject<{[key: string]: any}>({});\n\n /**\n * Observable of the selected widget's subscribers\n */\n readonly widgetSubscribers$ = new BehaviorSubject<{[key: string]: (event: any) => void}>({});\n\n /**\n * Subscription to the selected entity\n */\n private entities$$: Subscription;\n\n /**\n * State change that trigger an update of the actions availability\n */\n private change: Subject<void> = new Subject();\n\n /**\n * Subscription to state changes\n */\n private change$: Subscription;\n\n /**\n * Workspace id\n */\n get id(): string { return this.options.id; }\n\n /**\n * Workspace title\n */\n get title(): string { return this.options.title; }\n\n /**\n * Workspace title\n */\n get meta(): {[key: string]: any} { return this.options.meta || {}; }\n\n /**\n * Entities store\n */\n get entityStore(): EntityStore<E> { return this.options.entityStore as EntityStore<E>; }\n\n /**\n * Actions store (some actions activate a widget)\n */\n get actionStore(): ActionStore { return this.options.actionStore; }\n\n /**\n * Selected widget\n */\n get widget(): Widget { return this.widget$.value; }\n\n /**\n * Whether a widget is selected\n */\n get hasWidget(): boolean { return this.widget !== undefined; }\n\n constructor(protected options: WorkspaceOptions) {}\n\n /**\n * Whether this strategy is active\n * @internal\n */\n get active(): boolean { return this.active$.value; }\n readonly active$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n\n /**\n * Activate the workspace. By doing that, the workspace will observe\n * the selected entity (from the store) and update the actions availability.\n * For example, some actions require an entity to be selected.\n */\n activate() {\n if (this.active === true) {\n this.deactivate();\n }\n this.active$.next(true);\n\n if (this.entityStore !== undefined) {\n this.entities$$ = this.entityStore.stateView.all$()\n .subscribe(() => this.onStateChange());\n }\n\n this.change.next();\n }\n\n /**\n * Deactivate the workspace. Unsubcribe to the selected entity.\n */\n deactivate() {\n this.active$.next(false);\n this.deactivateWidget();\n\n if (this.entities$$ !== undefined) {\n this.entities$$.unsubscribe();\n }\n if (this.change$ !== undefined) {\n this.change$.unsubscribe();\n }\n }\n\n /**\n * Activate a widget. In itself, activating a widget doesn't render it but,\n * if an WorkspaceWidgetOutlet component is bound to this workspace, the widget will\n * show up.\n * @param widget Widget\n * @param inputs Inputs the widget will receive\n */\n activateWidget(\n widget: Widget,\n inputs: {[key: string]: any} = {},\n subscribers: {[key: string]: (event: any) => void} = {}\n ) {\n this.widget$.next(widget);\n this.widgetInputs$.next(inputs);\n this.widgetSubscribers$.next(subscribers);\n this.change.next();\n }\n\n /**\n * Deactivate a widget.\n */\n deactivateWidget() {\n this.widget$.next(undefined);\n this.change.next();\n }\n\n /**\n * When the state changes, update the actions availability.\n */\n private onStateChange() {\n this.change.next();\n }\n\n}\n","/*\n * Public API Surface of common\n */\n\nexport * from './lib/action/action.module';\nexport * from './lib/action/actionbar/actionbar.module';\nexport * from './lib/backdrop/backdrop.module';\nexport * from './lib/badge-icon/badge-icon.module';\nexport * from './lib/clickout/clickout.module';\nexport * from './lib/clone/clone.module';\nexport * from './lib/collapsible/collapsible.module';\nexport * from './lib/confirm-dialog/confirm-dialog.module';\nexport * from './lib/context-menu/context-menu.module';\nexport * from './lib/custom-html/custom-html.module';\nexport * from './lib/dom/dom.module';\nexport * from './lib/drag-drop/drag-drop.module';\nexport * from './lib/dynamic-component/dynamic-component.module';\nexport * from './lib/dynamic-component/dynamic-outlet/dynamic-outlet.module';\nexport * from './lib/flexible/flexible.module';\nexport * from './lib/form/form.module';\nexport * from './lib/form/form/form.module';\nexport * from './lib/home-button/home-button.module';\nexport * from './lib/form/form-field/form-field.module';\nexport * from './lib/form/form-group/form-group.module';\nexport * from './lib/entity/entity.module';\nexport * from './lib/entity/entity-selector/entity-selector.module';\nexport * from './lib/entity/entity-table/entity-table.module';\nexport * from './lib/entity/entity-table-paginator/entity-table-paginator.module';\nexport * from './lib/image/image.module';\nexport * from './lib/interactive-tour/interactive-tour.module';\nexport * from './lib/json-dialog/json-dialog.module';\nexport * from './lib/keyvalue/keyvalue.module';\nexport * from './lib/list/list.module';\nexport * from './lib/panel/panel.module';\nexport * from './lib/sidenav/sidenav.module';\nexport * from './lib/spinner/spinner.module';\nexport * from './lib/stop-propagation/stop-propagation.module';\nexport * from './lib/table/table.module';\nexport * from './lib/tool/tool.module';\nexport * from './lib/tool/toolbox/toolbox.module';\nexport * from './lib/widget/widget.module';\nexport * from './lib/widget/widget-outlet/widget-outlet.module';\nexport * from './lib/workspace/workspace.module';\nexport * from './lib/workspace/workspace-selector/workspace-selector.module';\nexport * from './lib/workspace/workspace-widget-outlet/workspace-widget-outlet.module';\n\nexport * from './lib/action';\nexport * from './lib/backdrop';\nexport * from './lib/badge-icon';\nexport * from './lib/clickout';\nexport * from './lib/clone';\nexport * from './lib/collapsible';\nexport * from './lib/confirm-dialog';\nexport * from './lib/context-menu';\nexport * from './lib/custom-html';\nexport * from './lib/drag-drop';\nexport * from './lib/dom';\nexport * from './lib/dynamic-component';\nexport * from './lib/form';\nexport * from './lib/home-button';\nexport * from './lib/entity';\nexport * from './lib/flexible';\nexport * from './lib/image';\nexport * from './lib/interactive-tour';\nexport * from './lib/json-dialog';\nexport * from './lib/keyvalue';\nexport * from './lib/list';\nexport * from './lib/panel';\nexport * from './lib/sidenav';\nexport * from './lib/spinner';\nexport * from './lib/stop-propagation';\nexport * from './lib/table';\nexport * from './lib/tool';\nexport * from './lib/widget';\nexport * from './lib/workspace';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1","i2","i3","_c0","i1.DynamicComponentService","_c2","i1.FormFieldService","i2.InteractiveTourLoader","i1.InteractiveTourService","i2.ToolService","_c1","i1.SpinnerComponent"],"mappings":"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"}
1
+ {"version":3,"file":"igo2-common.mjs","sources":["../../../packages/common/src/lib/entity/shared/entity.enums.ts","../../../packages/common/src/lib/entity/shared/entity.utils.ts","../../../packages/common/src/lib/entity/shared/state.ts","../../../packages/common/src/lib/entity/shared/view.ts","../../../packages/common/src/lib/entity/shared/store.ts","../../../packages/common/src/lib/entity/shared/watcher.ts","../../../packages/common/src/lib/entity/shared/transaction.ts","../../../packages/common/src/lib/entity/shared/strategies/strategy.ts","../../../packages/common/src/lib/entity/shared/strategies/filter-custom-function.ts","../../../packages/common/src/lib/entity/shared/strategies/filter-selection.ts","../../../packages/common/src/lib/entity/entity-selector/entity-selector.component.html","../../../packages/common/src/lib/entity/entity-selector/entity-selector.component.ts","../../../packages/common/src/lib/stop-propagation/stop-propagation.directive.ts","../../../packages/common/src/lib/entity/entity-table-paginator/entity-table-paginator.component.ts","../../../packages/common/src/lib/entity/entity-table-paginator/entity-table-paginator.component.html","../../../packages/common/src/lib/image/image-error.directive.ts","../../../packages/common/src/lib/entity/entity-table/entity-table-row.directive.ts","../../../packages/common/src/lib/custom-html/custom-html.pipe.ts","../../../packages/common/src/lib/image/secure-image.pipe.ts","../../../packages/common/src/lib/entity/entity-table/entity-table.component.html","../../../packages/common/src/lib/entity/entity-table/entity-table.component.ts","../../../packages/common/src/lib/action/shared/action.enums.ts","../../../packages/common/src/lib/action/actionbar/actionbar-item.component.html","../../../packages/common/src/lib/action/actionbar/actionbar-item.component.ts","../../../packages/common/src/lib/action/actionbar/actionbar.component.html","../../../packages/common/src/lib/action/actionbar/actionbar.component.ts","../../../packages/common/src/lib/action/actionbar/actionbar.module.ts","../../../packages/common/src/lib/action/action.module.ts","../../../packages/common/src/lib/backdrop/backdrop.component.ts","../../../packages/common/src/lib/backdrop/backdrop.component.html","../../../packages/common/src/lib/backdrop/backdrop.module.ts","../../../packages/common/src/lib/badge-icon/badge-icon.directive.ts","../../../packages/common/src/lib/badge-icon/badge-icon.module.ts","../../../packages/common/src/lib/clickout/clickout.directive.ts","../../../packages/common/src/lib/clickout/clickout.module.ts","../../../packages/common/src/lib/clone/clone.pipe.ts","../../../packages/common/src/lib/clone/clone.module.ts","../../../packages/common/src/lib/collapsible/collapse.directive.ts","../../../packages/common/src/lib/collapsible/collapsible.component.ts","../../../packages/common/src/lib/collapsible/collapsible.component.html","../../../packages/common/src/lib/collapsible/collapsible.module.ts","../../../packages/common/src/lib/confirm-dialog/confirm-dialog.component.ts","../../../packages/common/src/lib/confirm-dialog/confirm-dialog.component.html","../../../packages/common/src/lib/confirm-dialog/confirm-dialog.service.ts","../../../packages/common/src/lib/confirm-dialog/confirm-dialog.module.ts","../../../packages/common/src/lib/context-menu/context-menu.directive.ts","../../../packages/common/src/lib/context-menu/long-press.directive.ts","../../../packages/common/src/lib/context-menu/context-menu.module.ts","../../../packages/common/src/lib/custom-html/custom-html.component.ts","../../../packages/common/src/lib/custom-html/custom-html.component.html","../../../packages/common/src/lib/custom-html/custom-html.module.ts","../../../packages/common/src/lib/dom/dom.service.ts","../../../packages/common/src/lib/dom/dom.module.ts","../../../packages/common/src/lib/drag-drop/drag-drop.directive.ts","../../../packages/common/src/lib/drag-drop/drag-drop.module.ts","../../../packages/common/src/lib/dynamic-component/shared/dynamic-component.ts","../../../packages/common/src/lib/dynamic-component/shared/dynamic-component.service.ts","../../../packages/common/src/lib/dynamic-component/dynamic-outlet/dynamic-outlet.component.ts","../../../packages/common/src/lib/dynamic-component/dynamic-outlet/dynamic-outlet.component.html","../../../packages/common/src/lib/dynamic-component/dynamic-outlet/dynamic-outlet.module.ts","../../../packages/common/src/lib/dynamic-component/dynamic-component.module.ts","../../../packages/common/src/lib/flexible/flexible.component.ts","../../../packages/common/src/lib/flexible/flexible.component.html","../../../packages/common/src/lib/flexible/flexible.module.ts","../../../packages/common/src/lib/form/shared/form.utils.ts","../../../packages/common/src/lib/form/form/form.component.ts","../../../packages/common/src/lib/form/form/form.component.html","../../../packages/common/src/lib/form/form/form.module.ts","../../../packages/common/src/lib/form/shared/form.service.ts","../../../packages/common/src/lib/form/shared/form-field.service.ts","../../../packages/common/src/lib/form/shared/form-field-component.ts","../../../packages/common/src/lib/form/form-field/form-field.component.html","../../../packages/common/src/lib/form/form-field/form-field.component.ts","../../../packages/common/src/lib/form/form-field/form-field-select.component.html","../../../packages/common/src/lib/form/form-field/form-field-select.component.ts","../../../packages/common/src/lib/form/form-field/form-field-text.component.html","../../../packages/common/src/lib/form/form-field/form-field-text.component.ts","../../../packages/common/src/lib/form/form-field/form-field-textarea.component.html","../../../packages/common/src/lib/form/form-field/form-field-textarea.component.ts","../../../packages/common/src/lib/form/form-field/form-field.module.ts","../../../packages/common/src/lib/form/form-group/form-group.component.html","../../../packages/common/src/lib/form/form-group/form-group.component.ts","../../../packages/common/src/lib/form/form-group/form-group.module.ts","../../../packages/common/src/lib/form/form.module.ts","../../../packages/common/src/lib/home-button/home-button.component.ts","../../../packages/common/src/lib/home-button/home-button.component.html","../../../packages/common/src/lib/home-button/home-button.module.ts","../../../packages/common/src/lib/entity/entity-selector/entity-selector.module.ts","../../../packages/common/src/lib/stop-propagation/stop-drop-propagation.directive.ts","../../../packages/common/src/lib/stop-propagation/stop-propagation.module.ts","../../../packages/common/src/lib/entity/entity-table-paginator/entity-table-paginator.module.ts","../../../packages/common/src/lib/image/image.module.ts","../../../packages/common/src/lib/entity/entity-table/entity-table.module.ts","../../../packages/common/src/lib/entity/entity.module.ts","../../../packages/common/src/lib/interactive-tour/interactive-tour.loader.ts","../../../packages/common/src/lib/interactive-tour/interactive-tour.service.ts","../../../packages/common/src/lib/tool/shared/toolbox.ts","../../../packages/common/src/lib/tool/shared/tool.service.ts","../../../packages/common/src/lib/interactive-tour/interactive-tour.component.html","../../../packages/common/src/lib/interactive-tour/interactive-tour.component.ts","../../../packages/common/src/lib/interactive-tour/interactive-tour.module.ts","../../../packages/common/src/lib/keyvalue/keyvalue.pipe.ts","../../../packages/common/src/lib/keyvalue/keyvalue.module.ts","../../../packages/common/src/lib/json-dialog/json-dialog.component.html","../../../packages/common/src/lib/json-dialog/json-dialog.component.ts","../../../packages/common/src/lib/json-dialog/json-dialog.service.ts","../../../packages/common/src/lib/json-dialog/json-dialog.module.ts","../../../packages/common/src/lib/list/list-item.directive.ts","../../../packages/common/src/lib/list/list.component.ts","../../../packages/common/src/lib/list/list.component.html","../../../packages/common/src/lib/list/list.module.ts","../../../packages/common/src/lib/panel/panel.component.html","../../../packages/common/src/lib/panel/panel.component.ts","../../../packages/common/src/lib/panel/panel.module.ts","../../../packages/common/src/lib/sidenav/sidenav-shim.directive.ts","../../../packages/common/src/lib/sidenav/sidenav.module.ts","../../../packages/common/src/lib/spinner/spinner.component.ts","../../../packages/common/src/lib/spinner/spinner.component.html","../../../packages/common/src/lib/spinner/spinner-activity.directive.ts","../../../packages/common/src/lib/spinner/spinner.module.ts","../../../packages/common/src/lib/table/table-datasource.ts","../../../packages/common/src/lib/table/table-action-color.enum.ts","../../../packages/common/src/lib/table/table.component.html","../../../packages/common/src/lib/table/table.component.ts","../../../packages/common/src/lib/table/table.module.ts","../../../packages/common/src/lib/action/shared/store.ts","../../../packages/common/src/lib/tool/shared/toolbox.enums.ts","../../../packages/common/src/lib/tool/toolbox/toolbox.animation.ts","../../../packages/common/src/lib/tool/toolbox/toolbox.component.html","../../../packages/common/src/lib/tool/toolbox/toolbox.component.ts","../../../packages/common/src/lib/tool/toolbox/toolbox.module.ts","../../../packages/common/src/lib/tool/tool.module.ts","../../../packages/common/src/lib/widget/widget-outlet/widget-outlet.component.html","../../../packages/common/src/lib/widget/widget-outlet/widget-outlet.component.ts","../../../packages/common/src/lib/widget/widget-outlet/widget-outlet.module.ts","../../../packages/common/src/lib/widget/shared/widget.service.ts","../../../packages/common/src/lib/widget/widget.module.ts","../../../packages/common/src/lib/workspace/workspace-selector/workspace-selector.component.ts","../../../packages/common/src/lib/workspace/workspace-selector/workspace-selector.component.html","../../../packages/common/src/lib/workspace/workspace-selector/workspace-selector.module.ts","../../../packages/common/src/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.component.html","../../../packages/common/src/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.component.ts","../../../packages/common/src/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.module.ts","../../../packages/common/src/lib/workspace/workspace.module.ts","../../../packages/common/src/lib/table/table-database.ts","../../../packages/common/src/lib/tool/shared/tool-component.ts","../../../packages/common/src/lib/widget/shared/widget.ts","../../../packages/common/src/lib/workspace/shared/store.ts","../../../packages/common/src/lib/workspace/shared/workspace.ts","../../../packages/common/src/public_api.ts","../../../packages/common/src/igo2-common.ts"],"sourcesContent":["export enum EntityOperationType {\r\n Insert = 'Insert',\r\n Update = 'Update',\r\n Delete = 'Delete'\r\n}\r\n\r\nexport enum EntityTableColumnRenderer {\r\n Default = 'Default',\r\n HTML = 'HTML',\r\n UnsanitizedHTML = 'UnsanitizedHTML',\r\n Editable = 'Editable',\r\n Icon = 'Icon',\r\n ButtonGroup = 'ButtonGroup'\r\n}\r\n\r\nexport enum EntityTableScrollBehavior {\r\n Auto = 'auto',\r\n Instant = 'instant',\r\n Smooth = 'smooth'\r\n}\r\n\r\nexport enum EntityTableSelectionState {\r\n None = 'None',\r\n All = 'All',\r\n Some = 'Some'\r\n}\r\n","import { t } from 'typy';\n\nimport { EntityKey } from './entity.interfaces';\n\n/**\n * Get an entity's named property. Nested properties are supported\n * with the dotted notation. (i.e 'author.name')\n *\n * Note: this method is a 'best attempt' at getting an entity's property.\n * It fits the most common cases but you might need to explicitely define\n * a property getter when using an EntityStore, for example.\n * @param entity Entity\n * @param property Property name\n * @returns Property value\n */\nexport function getEntityProperty(entity: object, property: string): any {\n return t(entity, property).safeObject;\n}\n\n/**\n * Get an entity's id. An entity's id can be one of:\n * 'entity.meta.id', 'entity.meta.idProperty' or 'entity.id'.\n *\n * Note: See the note in the 'getEntityProperty' documentation.\n * @param entity Entity\n * @returns Entity id\n */\nexport function getEntityId(entity: object): EntityKey {\n const meta = (entity as any).meta || {};\n return meta.id ? meta.id : getEntityProperty(entity, meta.idProperty || 'id');\n}\n\n/**\n * Get an entity's title. An entity's title can be one of:\n * 'entity.meta.title', 'entity.meta.titleProperty' or 'entity.title'.\n * @param entity Entity\n * @returns Entity title\n */\nexport function getEntityTitle(entity: object): string {\n const meta = (entity as any).meta || {};\n return meta.title ? meta.title : getEntityProperty(entity, meta.titleProperty || 'title');\n}\n\n/**\n * Get an entity's HTML title. An entity's HTML title can be one of:\n * 'entity.meta.titleHtml', 'entity.meta.titleHtmlProperty' or 'entity.titleHtml'.\n * @param entity Entity\n * @returns Entity HTML title\n */\nexport function getEntityTitleHtml(entity: object): string {\n const meta = (entity as any).meta || {};\n return meta.titleHtml ? meta.titleHtml : getEntityProperty(entity, meta.titleHtmlProperty || 'titleHtml');\n}\n\n/**\n * Get an entity's icon. An entity's icon can be one of:\n * 'entity.meta.icon', 'entity.meta.iconProperty' or 'entity.icon'.\n * @param entity Entity\n * @returns Entity icon\n */\nexport function getEntityIcon(entity: object): string {\n const meta = (entity as any).meta || {};\n return meta.icon ? meta.icon : getEntityProperty(entity, meta.iconProperty || 'icon');\n}\n\n/**\n * Get an entity's revision.\n * @param entity Entity\n * @returns Entity revision\n */\nexport function getEntityRevision(entity: object): number {\n const meta = (entity as any).meta || {};\n return meta.revision || 0;\n}\n","import { ReplaySubject } from 'rxjs';\n\nimport { EntityKey, EntityState, EntityStateManagerOptions } from './entity.interfaces';\nimport { getEntityId } from './entity.utils';\nimport { EntityStore } from './store';\n\n/**\n * This class is used to track a store's entities state\n */\nexport class EntityStateManager<E extends object, S extends EntityState = EntityState> {\n\n /**\n * State index\n */\n readonly index = new Map<EntityKey, S>();\n\n /**\n * Change emitter\n */\n readonly change$ = new ReplaySubject<void>(1);\n\n /**\n * Method to get an entity's id\n */\n readonly getKey: (E) => EntityKey;\n\n private store: EntityStore<object> | undefined;\n\n constructor(options: EntityStateManagerOptions = {}) {\n this.store = options.store ? options.store : undefined;\n this.getKey = options.getKey\n ? options.getKey\n : (this.store ? this.store.getKey : getEntityId);\n this.next();\n }\n\n /**\n * Clear state\n */\n clear() {\n if (this.index.size > 0) {\n this.index.clear();\n this.next();\n }\n }\n\n /**\n * Get an entity's state\n * @param entity Entity\n * @returns State\n */\n get(entity: E): S {\n return (this.index.get(this.getKey(entity)) || {}) as S;\n }\n\n /**\n * Set an entity's state\n * @param entity Entity\n * @param state State\n */\n set(entity: E, state: S) {\n this.setMany([entity], state);\n }\n\n /**\n * Set many entitie's state\n * @param entitie Entities\n * @param state State\n */\n setMany(entities: E[], state: S) {\n entities.forEach((entity: E) => {\n this.index.set(this.getKey(entity), Object.assign({}, state));\n });\n this.next();\n }\n\n /**\n * Set state of all entities that already have a state. This is not\n * the same as setting the state of all the store's entities.\n * @param state State\n */\n setAll(state: S) {\n Array.from(this.index.keys()).forEach((key: EntityKey) => {\n this.index.set(key, Object.assign({}, state));\n });\n this.next();\n }\n\n /**\n * Update an entity's state\n * @param entity Entity\n * @param changes State changes\n */\n update(entity: E, changes: Partial<S>, exclusive = false) {\n this.updateMany([entity], changes, exclusive);\n }\n\n /**\n * Update many entitie's state\n * @param entitie Entities\n * @param changes State changes\n */\n updateMany(entities: E[], changes: Partial<S>, exclusive = false) {\n if (exclusive === true) {\n return this.updateManyExclusive(entities, changes);\n }\n\n entities.forEach((entity: E) => {\n const state = Object.assign({}, this.get(entity), changes);\n this.index.set(this.getKey(entity), state);\n });\n this.next();\n }\n\n /**\n * Reversee an entity's state\n * @param entity Entity\n * @param keys State keys to reverse\n */\n reverse(entity: E, keys: string[]) {\n this.reverseMany([entity], keys);\n }\n\n /**\n * Reverse many entitie's state\n * @param entitie Entities\n * @param keys State keys to reverse\n */\n reverseMany(entities: E[], keys: string[]) {\n entities.forEach((entity: E) => {\n const currentState = this.get(entity);\n const changes = keys.reduce((acc: {[key: string]: boolean}, key: string) => {\n acc[key] = currentState[key] || false;\n return acc;\n }, {}) as Partial<S>;\n const reversedChanges = this.reverseChanges(changes);\n const state = Object.assign({}, currentState, reversedChanges);\n this.index.set(this.getKey(entity), state);\n });\n this.next();\n }\n\n /**\n * Update state of all entities that already have a state. This is not\n * the same as updating the state of all the store's entities.\n * @param changes State\n */\n updateAll(changes: Partial<S>) {\n const allKeys = this.getAllKeys();\n Array.from(allKeys).forEach((key: EntityKey) => {\n const state = Object.assign({}, this.index.get(key), changes);\n this.index.set(key, state);\n });\n this.next();\n }\n\n /**\n * When some state changes are flagged as 'exclusive', reverse\n * the state of all other entities. Changes are reversable when\n * they are boolean.\n * @param entitie Entities\n * @param changes State changes\n */\n private updateManyExclusive(entities: E[], changes: Partial<S>) {\n const reverseChanges = this.reverseChanges(changes);\n\n const keys = entities.map((entity: E) => this.getKey(entity));\n const allKeys = new Set(keys.concat(Array.from(this.getAllKeys())));\n allKeys.forEach((key: EntityKey) => {\n const state = this.index.get(key) || {} as S;\n\n if (keys.indexOf(key) >= 0) {\n this.index.set(key, Object.assign({}, state, changes));\n } else {\n // Update only if the reverse changes would modify\n // a key already present in the current state\n const shouldUpdate = Object.keys(reverseChanges).some((changeKey: string) => {\n return state[changeKey] !== undefined &&\n state[changeKey] !== reverseChanges[changeKey];\n });\n if (shouldUpdate === true) {\n this.index.set(key, Object.assign({}, state, reverseChanges));\n }\n }\n });\n\n this.next();\n }\n\n /**\n * Compute a 'reversed' version of some state changes.\n * Changes are reversable when they are boolean.\n * @param changes State changes\n * @returns Reversed state changes\n */\n private reverseChanges(changes: Partial<S>): Partial<S> {\n return Object.entries(changes).reduce((reverseChanges: Partial<S>, bunch: [string, any]) => {\n const [changeKey, value] = bunch;\n if (typeof value === typeof true) {\n (reverseChanges as object)[changeKey] = !value;\n }\n return reverseChanges;\n }, {});\n }\n\n /**\n * Return all the keys in that state and in the store it's bound to, if any.\n * @returns Set of keys\n */\n private getAllKeys(): Set<EntityKey> {\n const storeKeys = this.store ? Array.from(this.store.index.keys()) : [];\n return new Set(Array.from(this.index.keys()).concat(storeKeys));\n }\n\n /**\n * Emit 'change' event\n */\n private next() {\n this.change$.next();\n }\n\n}\n","import { BehaviorSubject, Observable, Subscription, combineLatest } from 'rxjs';\nimport { debounceTime, map, skip } from 'rxjs/operators';\n\nimport { ObjectUtils, uuid } from '@igo2/utils';\nimport {\n EntityKey,\n EntityFilterClause,\n EntitySortClause,\n EntityJoinClause\n} from './entity.interfaces';\n\n/**\n * An entity view streams entities from an observable source. These entities\n * can be filtered or sorted without affecting the source. A view can also\n * combine data from multiple sources, joined together.\n */\nexport class EntityView<E extends object, V extends object = E> {\n\n /**\n * Observable stream of values\n */\n readonly values$ = new BehaviorSubject<V[]>([]);\n\n /**\n * Subscription to the source (and joined sources) values\n */\n private values$$: Subscription;\n\n /**\n * Whether this view has been lifted\n */\n private lifted = false;\n\n /**\n * Join clauses\n */\n private joins: EntityJoinClause[] = [];\n\n /**\n * Observable of a filter clause\n */\n private filter$ = new BehaviorSubject(undefined);\n\n /**\n * Observable of filter clauses\n */\n private filters$: BehaviorSubject<EntityFilterClause[]> = new BehaviorSubject([]);\n\n /**\n * Filters index\n */\n private filterIndex: Map<string, EntityFilterClause> = new Map();\n\n /**\n * Observable of a sort clause\n */\n private sort$ = new BehaviorSubject(undefined);\n\n /**\n * Method for indexing\n */\n get getKey(): (V) => EntityKey { return this.getKey$.value; }\n private getKey$: BehaviorSubject<(V) => EntityKey> = new BehaviorSubject(undefined);\n\n /**\n * Number of entities\n */\n readonly count$ = new BehaviorSubject<number>(0);\n get count(): number { return this.count$.value; }\n\n /**\n * Whether the store is empty\n */\n readonly empty$ = new BehaviorSubject<boolean>(true);\n get empty(): boolean { return this.empty$.value; }\n\n /**\n * Store index\n */\n get index(): Map<EntityKey, V> { return this._index; }\n private _index: Map<EntityKey, V>;\n\n constructor(private source$: BehaviorSubject<E[]>) {}\n\n /**\n * Get a value from the view by key\n * @param key Key\n * @returns Value\n */\n get(key: EntityKey): V {\n if (this._index === undefined) {\n throw new Error('This view has no index, therefore, this method is unavailable.');\n }\n return this.index.get(key);\n }\n\n /**\n * Get all the values\n * @returns Array of values\n */\n all(): V[] {\n return this.values$.value;\n }\n\n /**\n * Observe all the values\n * @returns Observable of values\n */\n all$(): BehaviorSubject<V[]> {\n return this.values$;\n }\n\n /**\n * Get the first value that respects a criteria\n * @returns A value\n */\n firstBy(clause: EntityFilterClause<V>): V {\n return this.values$.value.find(clause);\n }\n\n /**\n * Observe the first value that respects a criteria\n * @returns Observable of a value\n */\n firstBy$(clause: EntityFilterClause<V>): Observable<V> {\n return this.values$.pipe(map((values: V[]) => values.find(clause)));\n }\n\n /**\n * Get all the values that respect a criteria\n * @returns Array of values\n */\n manyBy(clause: EntityFilterClause<V>): V[] {\n return this.values$.value.filter(clause);\n }\n\n /**\n * Observe all the values that respect a criteria\n * @returns Observable of values\n */\n manyBy$(clause: EntityFilterClause<V>): Observable<V[]> {\n return this.values$.pipe(map((values: V[]) => values.filter(clause)));\n }\n\n /**\n * Clear the filter and sort and unsubscribe from the source\n */\n clear() {\n this.filter(undefined);\n this.sort(undefined);\n }\n\n destroy() {\n if (this.values$$ !== undefined) {\n this.values$$.unsubscribe();\n }\n this.clear();\n }\n\n /**\n * Create an index\n * @param getKey Method to get a value's id\n * @returns The view\n */\n createIndex(getKey: (E) => EntityKey): EntityView<E, V> {\n this._index = new Map();\n this.getKey$.next(getKey);\n return this;\n }\n\n /**\n * Join another source to the stream (chainable)\n * @param clause Join clause\n * @returns The view\n */\n join(clause: EntityJoinClause): EntityView<E, V> {\n if (this.lifted === true) {\n throw new Error('This view has already been lifted, therefore, no join is allowed.');\n }\n this.joins.push(clause);\n return this;\n }\n\n /**\n * Filter values (chainable)\n * @param clause Filter clause\n * @returns The view\n */\n filter(clause: EntityFilterClause<V>): EntityView<E, V> {\n this.filter$.next(clause);\n return this;\n }\n\n /**\n * @param clause Filter clause\n * @returns The filter id\n */\n addFilter(clause: EntityFilterClause<V>): string {\n const id = uuid();\n this.filterIndex.set(id, clause);\n this.filters$.next(Array.from(this.filterIndex.values()));\n return id;\n }\n\n /**\n * Remove a filter by id\n * @param clause Filter clause\n */\n removeFilter(id: string) {\n this.filterIndex.delete(id);\n this.filters$.next(Array.from(this.filterIndex.values()));\n }\n\n /**\n * Sort values (chainable)\n * @param clauseSort clause\n * @returns The view\n */\n sort(clause: EntitySortClause<V>): EntityView<E, V> {\n this.sort$.next(clause);\n return this;\n }\n\n /**\n * Create the final observable\n * @returns Observable\n */\n lift() {\n this.lifted = true;\n const source$ = this.joins.length > 0 ? this.liftJoinedSource() : this.liftSource();\n const observables$ = [\n source$,\n this.filters$,\n this.filter$,\n this.sort$,\n this.getKey$\n ];\n\n this.values$$ = combineLatest(observables$)\n .pipe(skip(1), debounceTime(5))\n .subscribe((bunch: any[]) => {\n const [_values, filters, filter, sort, getKey] = bunch;\n const values = this.processValues(_values, filters, filter, sort);\n const generateIndex = getKey !== undefined;\n this.setValues(values, generateIndex);\n });\n }\n\n /**\n * Create the source observable when no joins are defined\n * @returns Observable\n */\n private liftSource(): Observable<V[]> {\n return this.source$ as any as Observable<V[]>;\n }\n\n /**\n * Create the source observable when joins are defined\n * @returns Observable\n */\n private liftJoinedSource(): Observable<V[]> {\n const sources$ = [this.source$, combineLatest(\n this.joins.map((join: EntityJoinClause) => join.source)\n )];\n\n return combineLatest(sources$)\n .pipe(\n map((bunch: [E[], any[]]) => {\n const [entities, joinData] = bunch;\n return entities.reduce((values: V[], entity: E) => {\n const value = this.computeJoinedValue(entity, joinData);\n if (value !== undefined) {\n values.push(value);\n }\n return values;\n }, []);\n })\n );\n }\n\n /**\n * Apply joins to a source's entity and return the final value\n * @returns Final value\n */\n private computeJoinedValue(entity: E, joinData: any[]): V | undefined {\n let value = entity as Partial<V>;\n let joinIndex = 0;\n while (value !== undefined && joinIndex < this.joins.length) {\n value = this.joins[joinIndex].reduce(value, joinData[joinIndex]);\n joinIndex += 1;\n }\n return value as V;\n }\n\n /**\n * Filter and sort values before streaming them\n * @param values Values\n * @param filters Filter clauses\n * @param filter Filter clause\n * @param sort Sort clause\n * @returns Filtered and sorted values\n */\n private processValues(\n values: V[], filters: EntityFilterClause[], filter: EntityFilterClause, sort: EntitySortClause\n ): V[] {\n values = values.slice(0);\n values = this.filterValues(values, filters.concat([filter]));\n values = this.sortValues(values, sort);\n return values;\n }\n\n /**\n * Filter values\n * @param values Values\n * @param filters Filter clauses\n * @returns Filtered values\n */\n private filterValues(values: V[], clauses: EntityFilterClause[]): V[] {\n if (clauses.length === 0) { return values; }\n\n return values\n .filter((value: V) => {\n return clauses\n .filter((clause: EntityFilterClause) => clause !== undefined)\n .every((clause: EntityFilterClause) => clause(value));\n });\n }\n\n /**\n * Sort values\n * @param values Values\n * @param sort Sort clause\n * @returns Sorted values\n */\n private sortValues(values: V[], clause: EntitySortClause): V[] {\n if (clause === undefined) { return values; }\n return values.sort((v1: V, v2: V) => {\n return ObjectUtils.naturalCompare(\n clause.valueAccessor(v1),\n clause.valueAccessor(v2),\n clause.direction,\n clause.nullsFirst\n );\n });\n }\n\n /**\n * Set value and optionally generate an index\n * @param values Values\n * @param generateIndex boolean\n */\n private setValues(values: V[], generateIndex: boolean) {\n if (generateIndex === true) {\n this._index = this.generateIndex(values);\n }\n\n this.values$.next(values);\n\n const count = values.length;\n const empty = count === 0;\n this.count$.next(count);\n this.empty$.next(empty);\n }\n\n /**\n * Generate a complete index of all the values\n * @param entities Entities\n * @returns Index\n */\n private generateIndex(values: V[]): Map<EntityKey, V> {\n const entries = values.map((value: V) => [this.getKey(value), value]);\n return new Map(entries as [EntityKey, V][]);\n }\n}\n","import { BehaviorSubject } from 'rxjs';\n\nimport { EntityStateManager } from './state';\nimport { EntityView } from './view';\nimport { EntityKey, EntityState, EntityRecord, EntityStoreOptions } from './entity.interfaces';\nimport { getEntityId, getEntityProperty } from './entity.utils';\nimport { EntityStoreStrategy } from './strategies/strategy';\n\n/**\n * An entity store class holds any number of entities\n * as well as their state. It can be observed, filtered and sorted and\n * provides methods to insert, update or delete entities.\n */\nexport class EntityStore<E extends object = object, S extends EntityState = EntityState> {\n\n /**\n * Observable of the raw entities\n */\n readonly entities$ = new BehaviorSubject<E[]>([]);\n\n /**\n * Number of entities\n */\n readonly count$ = new BehaviorSubject<number>(0);\n get count(): number { return this.count$.value; }\n\n /**\n * Whether the store is empty\n */\n readonly empty$ = new BehaviorSubject<boolean>(true);\n get empty(): boolean { return this.empty$.value; }\n\n /**\n * Entity store state\n */\n readonly state: EntityStateManager<E, S>;\n\n /**\n * View of all the entities\n */\n readonly view: EntityView<E>;\n\n /**\n * View of all the entities and their state\n */\n readonly stateView: EntityView<E, EntityRecord<E, S>>;\n\n /**\n * Method to get an entity's id\n */\n readonly getKey: (E) => EntityKey;\n\n /**\n * Method to get an entity's named property\n */\n readonly getProperty: (E, prop: string) => any;\n\n /**\n * Store index\n */\n get index(): Map<EntityKey, E> { return this._index; }\n private _index: Map<EntityKey, E>;\n\n /**\n * Store index\n */\n get pristine(): boolean { return this._pristine; }\n private _pristine: boolean = true;\n\n /**\n * Strategies\n */\n private strategies: EntityStoreStrategy[] = [];\n\n constructor(entities: E[], options: EntityStoreOptions = {}) {\n this.getKey = options.getKey ? options.getKey : getEntityId;\n this.getProperty = options.getProperty ? options.getProperty : getEntityProperty;\n\n this.state = this.createStateManager();\n this.view = this.createDataView();\n this.stateView = this.createStateView();\n\n this.view.lift();\n this.stateView.lift();\n\n if (entities.length > 0) {\n this.load(entities);\n } else {\n this._index = this.generateIndex(entities);\n }\n }\n\n /**\n * Get an entity from the store by key\n * @param key Key\n * @returns Entity\n */\n get(key: EntityKey): E {\n return this.index.get(key);\n }\n\n /**\n * Get all entities in the store\n * @returns Array of entities\n */\n all(): E[] {\n return this.entities$.value;\n }\n\n /**\n * Set this store's entities\n * @param entities Entities\n */\n load(entities: E[], pristine: boolean = true) {\n this._index = this.generateIndex(entities);\n this._pristine = pristine;\n this.next();\n }\n\n /**\n * Clear the store's entities but keep the state and views intact.\n * Views won't return any data but future data will be subject to the\n * current views filter and sort\n */\n softClear() {\n if (this.index && this.index.size > 0) {\n this.index.clear();\n this._pristine = true;\n this.next();\n } else if (this.index) {\n this.updateCount();\n }\n }\n\n /**\n * Clear the store's entities, state and views\n */\n clear() {\n this.stateView.clear();\n this.view.clear();\n this.state.clear();\n this.softClear();\n }\n\n destroy() {\n this.stateView.destroy();\n this.view.destroy();\n this.clear();\n }\n\n /**\n * Insert an entity into the store\n * @param entity Entity\n */\n insert(entity: E) {\n this.insertMany([entity]);\n }\n\n /**\n * Insert many entities into the store\n * @param entities Entities\n */\n insertMany(entities: E[]) {\n entities.forEach((entity: E) => this.index.set(this.getKey(entity), entity));\n this._pristine = false;\n this.next();\n }\n\n /**\n * Update or insert an entity into the store\n * @param entity Entity\n */\n update(entity: E) {\n this.updateMany([entity]);\n }\n\n /**\n * Update or insert many entities into the store\n * @param entities Entities\n */\n updateMany(entities: E[]) {\n entities.forEach((entity: E) => this.index.set(this.getKey(entity), entity));\n this._pristine = false;\n this.next();\n }\n\n /**\n * Delete an entity from the store\n * @param entity Entity\n */\n delete(entity: E) {\n this.deleteMany([entity]);\n }\n\n /**\n * Delete many entities from the store\n * @param entities Entities\n */\n deleteMany(entities: E[]) {\n entities.forEach((entity: E) => this.index.delete(this.getKey(entity)));\n this._pristine = false;\n this.next();\n }\n\n /**\n * Add a strategy to this store\n * @param strategy Entity store strategy\n * @returns Entity store\n */\n addStrategy(strategy: EntityStoreStrategy, activate: boolean = false): EntityStore {\n const existingStrategy = this.strategies.find((_strategy: EntityStoreStrategy) => {\n return strategy.constructor === _strategy.constructor;\n });\n if (existingStrategy !== undefined) {\n throw new Error('A strategy of this type already exists on that EntityStore.');\n }\n\n this.strategies.push(strategy);\n strategy.bindStore(this);\n\n if (activate === true) {\n strategy.activate();\n }\n\n return this;\n }\n\n /**\n * Remove a strategy from this store\n * @param strategy Entity store strategy\n * @returns Entity store\n */\n removeStrategy(strategy: EntityStoreStrategy): EntityStore {\n const index = this.strategies.indexOf(strategy);\n if (index >= 0) {\n this.strategies.splice(index, 1);\n strategy.unbindStore(this);\n }\n return this;\n }\n\n /**\n * Return strategies of a given type\n * @param type Entity store strategy class\n * @returns Strategies\n */\n getStrategyOfType(type: typeof EntityStoreStrategy): EntityStoreStrategy {\n return this.strategies.find((strategy: EntityStoreStrategy) => {\n return strategy instanceof type;\n });\n }\n\n /**\n * Activate strategies of a given type\n * @param type Entity store strategy class\n */\n activateStrategyOfType(type: typeof EntityStoreStrategy) {\n const strategy = this.getStrategyOfType(type);\n if (strategy !== undefined) {\n strategy.activate();\n }\n }\n\n /**\n * Deactivate strategies of a given type\n * @param type Entity store strategy class\n */\n deactivateStrategyOfType(type: typeof EntityStoreStrategy) {\n const strategy = this.getStrategyOfType(type);\n if (strategy !== undefined) {\n strategy.deactivate();\n }\n }\n\n /**\n * Generate a complete index of all the entities\n * @param entities Entities\n * @returns Index\n */\n private generateIndex(entities: E[]): Map<EntityKey, E> {\n const entries = entities.map((entity: E) => [this.getKey(entity), entity]);\n return new Map(entries as [EntityKey, E][]);\n }\n\n /**\n * Push the index's entities into the entities$ observable\n */\n private next() {\n this.entities$.next(Array.from(this.index.values()));\n this.updateCount();\n }\n\n /**\n * Update the store's count and empty\n */\n private updateCount() {\n const count = this.index.size;\n const empty = count === 0;\n this.count$.next(count);\n this.empty$.next(empty);\n }\n\n /**\n * Create the entity state manager\n * @returns EntityStateManager\n */\n private createStateManager() {\n return new EntityStateManager<E, S>({store: this});\n }\n\n /**\n * Create the data view\n * @returns EntityView<E>\n */\n private createDataView() {\n return new EntityView<E>(this.entities$);\n }\n\n /**\n * Create the state view\n * @returns EntityView<EntityRecord<E>>\n */\n private createStateView() {\n return new EntityView<E, EntityRecord<E, S>>(this.view.all$())\n .join({\n source: this.state.change$,\n reduce: (entity: E): EntityRecord<E, S> => {\n const key = this.getKey(entity);\n const state = this.state.get(entity);\n const currentRecord = this.stateView.get(key);\n\n if (\n currentRecord !== undefined &&\n currentRecord.entity === entity &&\n this.statesAreTheSame(currentRecord.state, state)\n ) {\n return currentRecord;\n }\n\n const revision = currentRecord ? currentRecord.revision + 1 : 1;\n const ref = `${key}-${revision}`;\n return {entity, state, revision, ref};\n }\n })\n .createIndex((record: EntityRecord<E, S>) => this.getKey(record.entity));\n }\n\n private statesAreTheSame(currentState: S, newState: S): boolean {\n if (currentState === newState) {\n return true;\n }\n\n const currentStateIsEmpty = Object.keys(currentState).length === 0;\n const newStateIsEmpty = Object.keys(newState).length === 0;\n return currentStateIsEmpty && newStateIsEmpty;\n }\n\n}\n","import { ChangeDetectorRef } from '@angular/core';\n\nimport { Subscription } from 'rxjs';\nimport { skip } from 'rxjs/operators';\n\nimport { ObjectUtils } from '@igo2/utils';\nimport { EntityKey } from './entity.interfaces';\n\nimport { EntityStore } from './store';\n\n/**\n * This class is used to synchronize a component's changes\n * detection with an EntityStore changes. For example, it is frequent\n * to have a component subscribe to a store's selected entity and, at the same time,\n * this component provides a way to select an entity with, let's say, a click.\n *\n * This class automatically handles those case and triggers the compoent's\n * change detection when needed.\n *\n * Note: If the component observes the store's stateView, a workspace is\n * probably not required because the stateView catches any changes to the\n * entities and their state.\n */\nexport class EntityStoreWatcher<E extends object> {\n\n /**\n * Component change detector\n */\n private cdRef: ChangeDetectorRef;\n\n /**\n * Entity store\n */\n private store: EntityStore<E>;\n\n /**\n * Component inner state\n */\n private innerStateIndex = new Map<EntityKey, {[key: string]: any}>();\n\n /**\n * Subscription to the store's entities\n */\n private entities$$: Subscription;\n\n /**\n * Subscription to the store's state\n */\n private state$$: Subscription;\n\n constructor(store?: EntityStore<E>, cdRef?: ChangeDetectorRef) {\n this.setChangeDetector(cdRef);\n this.setStore(store);\n }\n\n destroy() {\n this.setChangeDetector(undefined);\n this.setStore(undefined);\n }\n\n /**\n * Bind this workspace to a store and start watching for changes\n * @param store Entity store\n */\n setStore(store?: EntityStore<E>) {\n if (store === undefined) {\n this.teardownObservers();\n this.innerStateIndex.clear();\n this.store = undefined;\n return;\n }\n\n this.setStore(undefined);\n this.store = store;\n this.setupObservers();\n this.detectChanges();\n }\n\n /**\n * Bind this workspace to a component's change detector\n * @param cdRef Change detector\n */\n setChangeDetector(cdRef?: ChangeDetectorRef) {\n this.cdRef = cdRef;\n }\n\n /**\n * Set up observers on a store's entities and their state\n * @param store Entity store\n */\n private setupObservers() {\n this.teardownObservers();\n\n this.entities$$ = this.store.entities$\n .subscribe((entities: E[]) => this.onEntitiesChange(entities));\n\n this.state$$ = this.store.state.change$\n .pipe(skip(1))\n .subscribe(() => this.onStateChange());\n }\n\n /**\n * Teardown store observers\n */\n private teardownObservers() {\n if (this.entities$$ !== undefined) {\n this.entities$$.unsubscribe();\n }\n if (this.state$$ !== undefined) {\n this.state$$.unsubscribe();\n }\n this.entities$$ = undefined;\n this.state$$ = undefined;\n }\n\n /**\n * When the entities change, always trigger the changes detection\n */\n private onEntitiesChange(entities: E[]) {\n this.detectChanges();\n }\n\n /**\n * When the entities state change, trigger the change detection\n * only if the component has not handled these changes yet. For example,\n * the component might have initiated thoses changes itself.\n */\n private onStateChange() {\n let changesDetected = false;\n const storeIndex = this.store.state.index;\n const innerIndex = this.innerStateIndex;\n\n if (storeIndex.size !== innerIndex.size) {\n changesDetected = this.detectChanges();\n }\n\n const storeKeys = Array.from(storeIndex.keys());\n for (const key of storeKeys) {\n const storeValue = storeIndex.get(key);\n const innerValue = innerIndex.get(key);\n if (changesDetected === false) {\n if (innerValue === undefined) {\n changesDetected = this.detectChanges();\n } else if (!ObjectUtils.objectsAreEquivalent(storeValue, innerValue)) {\n changesDetected = this.detectChanges();\n }\n }\n\n this.innerStateIndex.set(key, Object.assign({}, storeValue));\n }\n }\n\n /**\n * Trigger the change detection of the workspace is bound to a change detector\n */\n private detectChanges() {\n if (this.cdRef !== undefined) {\n this.cdRef.detectChanges();\n }\n return true;\n }\n\n}\n","import { Observable, of } from 'rxjs';\nimport { catchError, tap } from 'rxjs/operators';\n\nimport { BehaviorSubject } from 'rxjs';\n\nimport {\n EntityKey,\n EntityTransactionOptions,\n EntityOperation,\n EntityOperationState\n} from './entity.interfaces';\nimport { EntityStore } from './store';\nimport { EntityOperationType } from './entity.enums';\nimport { getEntityId } from './entity.utils';\n\nexport type EntityTransactionCommitHandler = (\n transaction: EntityTransaction,\n operations: EntityOperation[]\n) => Observable<any>;\n\n/**\n * This class holds a reference to the insert, update and delete\n * operations performed on a store. This is useful to commit\n * these operations in a single pass or to cancel them.\n */\nexport class EntityTransaction {\n\n /**\n * Store holding the operations on another store\n */\n readonly operations: EntityStore<EntityOperation, EntityOperationState>;\n\n /**\n * Method to get an entity's id\n */\n readonly getKey: (E) => EntityKey;\n\n /**\n * Whether there are pending operations\n */\n get empty$(): BehaviorSubject<boolean> { return this.operations.empty$; }\n\n /**\n * Whether there are pending operations\n */\n get empty(): boolean { return this.empty$.value; }\n\n /**\n * Whether thise store is in commit phase\n */\n get inCommitPhase(): boolean { return this.inCommitPhase$.value; }\n readonly inCommitPhase$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n\n constructor(options: EntityTransactionOptions = {}) {\n this.getKey = options.getKey ? options.getKey : getEntityId;\n this.operations = new EntityStore<EntityOperation, EntityOperationState>([], {\n getKey: (operation: EntityOperation) => operation.key\n });\n }\n\n destroy() {\n this.operations.destroy();\n }\n\n /**\n * Insert an entity into a store. If no store is specified, an insert\n * operation is still created but the transaction won't add the new\n * entity to the store.\n * @param current The entity to insert\n * @param store Optional: The store to insert the entity into\n * @param meta Optional: Any metadata on the operation\n */\n insert(current: object, store?: EntityStore<object>, meta?: {[key: string]: any}) {\n const existingOperation = this.getOperationByEntity(current);\n if (existingOperation !== undefined) {\n this.removeOperation(existingOperation);\n }\n\n this.doInsert(current, store, meta);\n }\n\n /**\n * Update an entity in a store. If no store is specified, an update\n * operation is still created but the transaction won't update the\n * entity into the store.\n * @param previous The entity before update\n * @param current The entity after update\n * @param store Optional: The store to update the entity into\n * @param meta Optional: Any metadata on the operation\n */\n update(previous: object, current: object, store?: EntityStore<object>, meta?: {[key: string]: any}) {\n const existingOperation = this.getOperationByEntity(current);\n if (existingOperation !== undefined) {\n this.removeOperation(existingOperation);\n if (existingOperation.type === EntityOperationType.Insert) {\n this.doInsert(current, store, meta);\n return;\n } else if (existingOperation.type === EntityOperationType.Update) {\n previous = existingOperation.previous;\n }\n }\n\n this.doUpdate(previous, current, store, meta);\n }\n\n /**\n * Delete an entity from a store. If no store is specified, a delete\n * operation is still created but the transaction won't remove the\n * entity from the store.\n * @param previous The entity before delete\n * @param store Optional: The store to delete the entity from\n * @param meta Optional: Any metadata on the operation\n */\n delete(previous: object, store?: EntityStore<object>, meta?: {[key: string]: any}) {\n const existingOperation = this.getOperationByEntity(previous);\n if (existingOperation !== undefined) {\n this.removeOperation(existingOperation);\n if (existingOperation.type === EntityOperationType.Insert) {\n if (store !== undefined) {\n store.delete(previous);\n }\n return;\n }\n }\n\n this.doDelete(previous, store, meta);\n }\n\n /**\n * Commit operations the transaction. This method doesn't do much\n * in itself. The handler it receives does the hard work and it's\n * implementation is left to the caller. This method simply wraps\n * the handler into an error catching mechanism to update\n * the transaction afterward. The caller needs to subscribe to this\n * method's output (observable) for the commit to be performed.\n * @param operations Operations to commit\n * @param handler Function that handles the commit operation\n * @returns The handler output (observable)\n */\n commit(operations: EntityOperation[], handler: EntityTransactionCommitHandler): Observable<any> {\n this.inCommitPhase$.next(true);\n\n return handler(this, operations)\n .pipe(\n catchError(() => of(new Error())),\n tap((result: any) => {\n if (result instanceof Error) {\n this.onCommitError(operations);\n } else {\n this.onCommitSuccess(operations);\n }\n })\n );\n }\n\n /**\n * Commit all the operations of the transaction.\n * @param handler Function that handles the commit operation\n * @returns The handler output (observable)\n */\n commitAll(handler: EntityTransactionCommitHandler): Observable<any> {\n const operations = this.getOperationsInCommit();\n return this.commit(operations, handler);\n }\n\n /**\n * Rollback this transaction\n */\n rollback() {\n this.rollbackOperations(this.operations.all());\n }\n\n /**\n * Rollback specific operations\n */\n rollbackOperations(operations: EntityOperation[]) {\n this.checkInCommitPhase();\n\n const operationsFactory = () => new Map([\n [EntityOperationType.Delete, []],\n [EntityOperationType.Update, []],\n [EntityOperationType.Insert, []]\n ]);\n const storesOperations = new Map();\n\n // Group operations by store and by operation type.\n // Grouping operations allows us to revert them in bacth, thus, triggering\n // observables only one per operation type.\n for (const operation of operations) {\n const store = operation.store;\n if (operation.store === undefined) { continue; }\n\n let storeOperations = storesOperations.get(store);\n if (storeOperations === undefined) {\n storeOperations = operationsFactory();\n storesOperations.set(store, storeOperations);\n }\n storeOperations.get(operation.type).push(operation);\n }\n\n Array.from(storesOperations.keys()).forEach((store: EntityStore<object>) => {\n const storeOperations = storesOperations.get(store);\n\n const deletes = storeOperations.get(EntityOperationType.Delete);\n store.insertMany(deletes.map((_delete: EntityOperation) => _delete.previous));\n\n const updates = storeOperations.get(EntityOperationType.Update);\n store.updateMany(updates.map((_update: EntityOperation) => _update.previous));\n\n const inserts = storeOperations.get(EntityOperationType.Insert);\n store.deleteMany(inserts.map((_insert: EntityOperation) => _insert.current));\n });\n\n this.operations.deleteMany(operations);\n this.inCommitPhase$.next(false);\n }\n\n /**\n * Clear this transaction\n * @todo Raise event and synchronize stores?\n */\n clear() {\n this.operations.clear();\n this.inCommitPhase$.next(false);\n }\n\n /**\n * Get any existing operation on an entity\n * @param entity Entity\n * @returns Either an insert, update or delete operation\n */\n getOperationByEntity(entity: object): EntityOperation {\n return this.operations.get(this.getKey(entity));\n }\n\n /**\n * Merge another transaction in this one\n * @param transaction Another transaction\n */\n mergeTransaction(transaction: EntityTransaction) {\n this.checkInCommitPhase();\n\n const operations = transaction.operations.all();\n operations.forEach((operation: EntityOperation) => {\n this.addOperation(operation);\n });\n }\n\n /**\n * Create an insert operation and add an entity to the store\n * @param current The entity to insert\n * @param store Optional: The store to insert the entity into\n * @param meta Optional: Any metadata on the operation\n */\n private doInsert(current: object, store?: EntityStore<object>, meta?: {[key: string]: any}) {\n this.addOperation({\n key: this.getKey(current),\n type: EntityOperationType.Insert,\n previous: undefined,\n current,\n store,\n meta\n });\n\n if (store !== undefined) {\n store.insert(current);\n }\n }\n\n /**\n * Create an update operation and update an entity into the store\n * @param previous The entity before update\n * @param current The entity after update\n * @param store Optional: The store to update the entity into\n * @param meta Optional: Any metadata on the operation\n */\n private doUpdate(previous: object, current: object, store?: EntityStore<object>, meta?: {[key: string]: any}) {\n this.addOperation({\n key: this.getKey(current),\n type: EntityOperationType.Update,\n previous,\n current,\n store,\n meta\n });\n\n if (store !== undefined) {\n store.update(current);\n }\n }\n\n /**\n * Create a delete operation and delete an entity from the store\n * @param previous The entity before delete\n * @param store Optional: The store to delete the entity from\n * @param meta Optional: Any metadata on the operation\n */\n private doDelete(previous: object, store?: EntityStore<object>, meta?: {[key: string]: any}) {\n this.addOperation({\n key: this.getKey(previous),\n type: EntityOperationType.Delete,\n previous,\n current: undefined,\n store,\n meta\n });\n\n if (store !== undefined) {\n store.delete(previous);\n }\n }\n\n /**\n * Remove committed operations from store\n * @param operations Commited operations\n * @todo Raise event and synchronize stores?\n */\n private resolveOperations(operations: EntityOperation[]) {\n this.operations.deleteMany(operations);\n }\n\n /**\n * On commit success, resolve commited operations and exit commit phase\n * @param operations Commited operations\n */\n private onCommitSuccess(operations: EntityOperation[]) {\n this.resolveOperations(operations);\n this.inCommitPhase$.next(false);\n }\n\n /**\n * On commit error, abort transaction\n * @param operations Commited operations\n */\n private onCommitError(operations: EntityOperation[]) {\n this.inCommitPhase$.next(false);\n }\n\n /**\n * Add an operation to the operations store\n * @param operation Operation to add\n */\n private addOperation(operation: EntityOperation) {\n this.checkInCommitPhase();\n\n this.operations.insert(operation);\n this.operations.state.update(operation, {added: true});\n }\n\n /**\n * Remove an operation from the operations store\n * @param operation Operation to remove\n */\n private removeOperation(operation: EntityOperation) {\n this.checkInCommitPhase();\n\n this.operations.delete(operation);\n this.operations.state.update(operation, {added: false});\n }\n\n /**\n * Get all the operations to commit\n * @returns Operations to commit\n */\n private getOperationsInCommit(): EntityOperation[] {\n return this.operations.stateView\n .manyBy((value: {entity: EntityOperation, state: EntityOperationState}) => {\n return value.state.added === true;\n })\n .map((value: {entity: EntityOperation, state: EntityOperationState}) => value.entity);\n }\n\n /**\n * Check if the transaction is in the commit phase and throw an error if it is\n */\n private checkInCommitPhase() {\n if (this.inCommitPhase === true) {\n throw new Error('This transaction is in the commit phase. Cannot complete this operation.');\n }\n }\n}\n","import { BehaviorSubject } from 'rxjs';\n\nimport { EntityStoreStrategyOptions } from '../entity.interfaces';\nimport { EntityStore } from '../store';\n\n/**\n * Entity store strategies. They can do pretty much anything during a store's\n * lifetime. For example, they may act as triggers when something happens.\n * Sharing a strategy is a good idea when multiple strategies would have\n * on cancelling effect on each other.\n *\n * At creation, strategy is inactive and needs to be manually activated.\n */\nexport class EntityStoreStrategy {\n\n /**\n * Feature store\n * @internal\n */\n protected stores: EntityStore[] = [];\n\n /**\n * Whether this strategy is active\n * @internal\n */\n get active(): boolean { return this.active$.value; }\n readonly active$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n\n constructor(protected options: EntityStoreStrategyOptions = {}) {\n this.options = options;\n }\n\n /**\n * Activate the strategy. If it's already active, it'll be deactivated\n * and activated again.\n */\n activate() {\n if (this.active === true) {\n this.doDeactivate();\n }\n this.active$.next(true);\n this.doActivate();\n }\n\n /**\n * Activate the strategy. If it's already active, it'll be deactivated\n * and activated again.\n */\n deactivate() {\n this.active$.next(false);\n this.doDeactivate();\n }\n\n /**\n * Bind this strategy to a store\n * @param store Feature store\n */\n bindStore(store: EntityStore) {\n if (this.stores.indexOf(store) < 0) {\n this.stores.push(store);\n }\n }\n\n /**\n * Unbind this strategy from store\n * @param store Feature store\n */\n unbindStore(store: EntityStore) {\n const index = this.stores.indexOf(store);\n if (index >= 0) {\n this.stores.splice(index, 1);\n }\n }\n\n /**\n * Do the stataegy activation\n * @internal\n */\n protected doActivate() {}\n\n /**\n * Do the strategy deactivation\n * @internal\n */\n protected doDeactivate() {}\n\n}\n","import { EntityStoreStrategyFuncOptions } from '../entity.interfaces';\nimport { EntityStore } from '../store';\nimport { EntityStoreStrategy } from './strategy';\n\n/**\n * When active, this strategy filters a store's stateView to return\n * selected entities only.\n */\nexport class EntityStoreFilterCustomFuncStrategy extends EntityStoreStrategy {\n\n constructor(protected options: EntityStoreStrategyFuncOptions) {\n super(options);\n }\n\n /**\n * Store / filter ids map\n */\n private filters: Map<EntityStore, string> = new Map();\n\n /**\n * Bind this strategy to a store and start filtering it\n * @param store Entity store\n */\n bindStore(store: EntityStore) {\n super.bindStore(store);\n if (this.active === true) {\n this.filterStore(store);\n }\n }\n\n /**\n * Unbind this strategy from a store and stop filtering it\n * @param store Entity store\n */\n unbindStore(store: EntityStore) {\n super.unbindStore(store);\n if (this.active === true) {\n this.unfilterStore(store);\n }\n }\n\n /**\n * Start filtering all stores\n * @internal\n */\n protected doActivate() {\n this.filterAll();\n }\n\n /**\n * Stop filtering all stores\n * @internal\n */\n protected doDeactivate() {\n this.unfilterAll();\n }\n\n /**\n * Filter all stores\n */\n private filterAll() {\n this.stores.forEach((store: EntityStore) => this.filterStore(store));\n }\n\n /**\n * Unfilter all stores\n */\n private unfilterAll() {\n this.stores.forEach((store: EntityStore) => this.unfilterStore(store));\n }\n\n /**\n * Filter a store and add it to the filters map\n */\n private filterStore(store: EntityStore) {\n this.filters.set(store, store.stateView.addFilter(this.options.filterClauseFunc));\n }\n\n /**\n * Unfilter a store and delete it from the filters map\n */\n private unfilterStore(store: EntityStore) {\n const filterId = this.filters.get(store);\n if (filterId === undefined) {\n return;\n }\n\n store.stateView.removeFilter(filterId);\n this.filters.delete(store);\n }\n}\n","import { EntityRecord } from '../entity.interfaces';\nimport { EntityStore } from '../store';\nimport { EntityStoreStrategy } from './strategy';\n\n/**\n * When active, this strategy filters a store's stateView to return\n * selected entities only.\n */\nexport class EntityStoreFilterSelectionStrategy extends EntityStoreStrategy {\n\n /**\n * Store / filter ids map\n */\n private filters: Map<EntityStore, string> = new Map();\n\n /**\n * Bind this strategy to a store and start filtering it\n * @param store Entity store\n */\n bindStore(store: EntityStore) {\n super.bindStore(store);\n if (this.active === true) {\n this.filterStore(store);\n }\n }\n\n /**\n * Unbind this strategy from a store and stop filtering it\n * @param store Entity store\n */\n unbindStore(store: EntityStore) {\n super.unbindStore(store);\n if (this.active === true) {\n this.unfilterStore(store);\n }\n }\n\n /**\n * Start filtering all stores\n * @internal\n */\n protected doActivate() {\n this.filterAll();\n }\n\n /**\n * Stop filtering all stores\n * @internal\n */\n protected doDeactivate() {\n this.unfilterAll();\n }\n\n /**\n * Filter all stores\n */\n private filterAll() {\n this.stores.forEach((store: EntityStore) => this.filterStore(store));\n }\n\n /**\n * Unfilter all stores\n */\n private unfilterAll() {\n this.stores.forEach((store: EntityStore) => this.unfilterStore(store));\n }\n\n /**\n * Filter a store and add it to the filters map\n */\n private filterStore(store: EntityStore) {\n if (this.filters.has(store)) {\n return;\n }\n\n const filter = (record: EntityRecord<object>) => {\n return record.state.selected === true;\n };\n this.filters.set(store, store.stateView.addFilter(filter));\n }\n\n /**\n * Unfilter a store and delete it from the filters map\n */\n private unfilterStore(store: EntityStore) {\n const filterId = this.filters.get(store);\n if (filterId === undefined) {\n return;\n }\n\n store.stateView.removeFilter(filterId);\n this.filters.delete(store);\n }\n}\n","<mat-form-field class=\"igo-entity-selector\">\n <mat-select\n [disabled]=\"disabled\"\n [value]=\"selected$ | async\"\n [multiple]=\"multi\"\n [placeholder]=\"placeholder\"\n (selectionChange)=\"onSelectionChange($event)\">\n <mat-option *ngIf=\"emptyText !== undefined && multi === false\" [value]=\"emptyValue\">{{emptyText}}</mat-option>\n <mat-option *ngIf=\"multi === true\" [value]=\"multiSelectValue\">{{multiText$ | async}}</mat-option>\n <ng-template ngFor let-record [ngForOf]=\"store.stateView.all$() | async\">\n <mat-option [value]=\"record.entity\">\n {{titleAccessor(record.entity)}}\n </mat-option>\n </ng-template>\n </mat-select>\n</mat-form-field>\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n OnInit,\n OnDestroy\n} from '@angular/core';\n\nimport { BehaviorSubject, Subscription } from 'rxjs';\n\nimport { EntityRecord } from '../shared/entity.interfaces';\nimport { EntityStore } from '../shared/store';\nimport { EntityStoreWatcher } from '../shared/watcher';\nimport { getEntityTitle } from '../shared/entity.utils';\n\n@Component({\n selector: 'igo-entity-selector',\n templateUrl: './entity-selector.component.html',\n styleUrls: ['./entity-selector.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EntitySelectorComponent implements OnInit, OnDestroy {\n\n /**\n * The selected entity\n * @internal\n */\n readonly selected$ = new BehaviorSubject<object>(undefined);\n\n /**\n * The current multi select option text\n * @internal\n */\n readonly multiText$ = new BehaviorSubject<string>(undefined);\n\n readonly multiSelectValue = {id: 'IGO_MULTI_SELECT'};\n\n readonly emptyValue = {id: 'IGO_EMPTY_SELECT'};\n\n /**\n * Subscription to the selected entity\n */\n private selected$$: Subscription;\n\n /**\n * Store watcher\n */\n private watcher: EntityStoreWatcher<object>;\n\n /**\n * Entity store\n */\n @Input() store: EntityStore<object>;\n\n /**\n * Title accessor\n */\n @Input() titleAccessor: (object) => string = getEntityTitle;\n\n /**\n * Text to display when nothing is selected\n */\n @Input() emptyText: string = undefined;\n\n /**\n * Wheter selecting many entities is allowed\n */\n @Input() multi: boolean = false;\n\n /**\n * Text to display for the select all option\n */\n @Input() multiAllText: string = 'All';\n\n /**\n * Text to display for the select none option\n */\n @Input() multiNoneText: string = 'None';\n\n /**\n * Field placeholder\n */\n @Input() placeholder: string;\n\n /**\n * Wheter the selector is disabled or not\n */\n @Input() disabled: boolean = false;\n\n /**\n * Event emitted when the selection changes\n */\n @Output() selectedChange = new EventEmitter<{\n selected: boolean;\n value: object | object[];\n }>();\n\n constructor(private cdRef: ChangeDetectorRef) {}\n\n /**\n * Create a store watcher and subscribe to the selected entity\n * @internal\n */\n ngOnInit() {\n this.watcher = new EntityStoreWatcher(this.store, this.cdRef);\n\n this.selected$$ = this.store.stateView\n .manyBy$((record: EntityRecord<object>) => record.state.selected === true)\n .subscribe((records: EntityRecord<object>[]) => {\n const entities = records.map((record: EntityRecord<object>) => record.entity);\n this.onSelectFromStore(entities);\n });\n }\n\n /**\n * Unsubscribe to the selected entity and destroy the store watcher\n * @internal\n */\n ngOnDestroy() {\n this.watcher.destroy();\n this.selected$$.unsubscribe();\n }\n\n /**\n * On selection change, update the store's state and emit an event\n * @internal\n */\n onSelectionChange(event: {value: object | undefined}) {\n const values = event.value instanceof Array ? event.value : [event.value];\n\n const multiSelect = values.find((_value: object) => _value === this.multiSelectValue);\n let entities = values.filter((_value: object) => _value !== this.multiSelectValue);\n if (multiSelect !== undefined) {\n if (entities.length === this.store.count) {\n entities = [];\n } else if (entities.length < this.store.count) {\n entities = this.store.all();\n }\n }\n\n entities = entities.filter((entity: object) => entity !== this.emptyValue);\n if (entities.length === 0) {\n this.store.state.updateAll({selected: false});\n } else {\n this.store.state.updateMany(entities, {selected: true}, true);\n }\n\n const value = this.multi ? entities : event.value;\n this.selectedChange.emit({selected: true, value});\n }\n\n private onSelectFromStore(entities: object[]) {\n if (this.multi === true) {\n this.selected$.next(entities);\n } else {\n const entity = entities.length > 0 ? entities[0] : undefined;\n this.selected$.next(entity);\n }\n\n this.updateMultiToggleWithEntities(entities);\n }\n\n private updateMultiToggleWithEntities(entities: object[]) {\n if (entities.length === this.store.count && this.multiText$.value !== this.multiNoneText) {\n this.multiText$.next(this.multiNoneText);\n } else if (entities.length < this.store.count && this.multiText$.value !== this.multiAllText) {\n this.multiText$.next(this.multiAllText);\n }\n }\n\n}\n","import { Directive, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[igoStopPropagation]'\n})\nexport class StopPropagationDirective {\n @HostListener('click', ['$event'])\n public onClick(event: any): void {\n event.stopPropagation();\n }\n}\n","import {\n Component,\n Input,\n ChangeDetectionStrategy,\n OnChanges,\n ViewChild,\n Output,\n EventEmitter,\n OnDestroy\n} from '@angular/core';\n\nimport {\n EntityStore\n} from '../shared';\nimport { MatPaginator, PageEvent } from '@angular/material/paginator';\nimport { BehaviorSubject, Subscription } from 'rxjs';\nimport { LanguageService, MediaService } from '@igo2/core';\nimport { EntityTablePaginatorOptions } from './entity-table-paginator.interface';\n\n@Component({\n selector: 'igo-entity-table-paginator',\n templateUrl: './entity-table-paginator.component.html',\n styleUrls: ['./entity-table-paginator.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EntityTablePaginatorComponent implements OnChanges, OnDestroy {\n\n public disabled: boolean = false;\n public hidePageSize: boolean = false;\n public pageIndex: number = 0;\n public pageSize: number = 50;\n public pageSizeOptions: number[] = [5, 10, 20, 50, 100, 200];\n public showFirstLastButtons: boolean = true;\n private count$$: Subscription;\n private entitySortChange$$: Subscription;\n private paginationLabelTranslation$$: Subscription[] = [];\n\n @Input() entitySortChange$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n /**\n * Entity store\n */\n @Input() store: EntityStore<object>;\n\n /**\n * Paginator options\n */\n @Input()\n paginatorOptions: EntityTablePaginatorOptions;\n\n /**\n * Event emitted when the paginator changes the page size or page index.\n */\n @Output() page: EventEmitter<PageEvent>;\n\n public length: number = 0;\n\n /**\n * Paginator emitted.\n */\n @Output() paginatorChange: EventEmitter<MatPaginator> = new EventEmitter<MatPaginator>();\n\n constructor(private languageService: LanguageService, private mediaService: MediaService) {}\n\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\n\n ngOnChanges() {\n this.unsubscribeAll();\n this.count$$ = this.store.stateView.count$.subscribe((count) => {\n this.length = count;\n this.emitPaginator();\n });\n this.entitySortChange$$ = this.entitySortChange$.subscribe(() => {\n if (this.paginator) {\n this.paginator.firstPage();\n }\n });\n this.initPaginatorOptions();\n this.translateLabels();\n }\n\n initPaginatorOptions() {\n this.disabled = this.paginatorOptions?.disabled || this.disabled;\n this.pageIndex = this.paginatorOptions?.pageIndex || this.pageIndex;\n this.pageSize = this.paginatorOptions?.pageSize || this.pageSize;\n this.pageSizeOptions = this.paginatorOptions?.pageSizeOptions || this.pageSizeOptions;\n if (this.mediaService.isMobile()) {\n this.showFirstLastButtons = false;\n this.hidePageSize = true;\n } else {\n this.showFirstLastButtons = this.paginatorOptions?.showFirstLastButtons || this.showFirstLastButtons;\n this.hidePageSize = this.paginatorOptions?.hidePageSize || this.hidePageSize;\n }\n }\n\n translateLabels() {\n\n this.paginationLabelTranslation$$.push(\n this.languageService.translate.get('igo.common.paginator.firstPageLabel').subscribe((label: string) => {\n this.paginator._intl.firstPageLabel = label;\n }));\n\n this.paginator._intl.getRangeLabel = this.rangeLabel;\n\n this.paginationLabelTranslation$$.push(\n this.languageService.translate.get('igo.common.paginator.itemsPerPageLabel').subscribe((label: string) => {\n this.paginator._intl.itemsPerPageLabel = label;\n }));\n this.paginationLabelTranslation$$.push(\n this.languageService.translate.get('igo.common.paginator.lastPageLabel').subscribe((label: string) => {\n this.paginator._intl.lastPageLabel = label;\n }));\n this.paginationLabelTranslation$$.push(\n this.languageService.translate.get('igo.common.paginator.nextPageLabel').subscribe((label: string) => {\n this.paginator._intl.nextPageLabel = label;\n }));\n this.paginationLabelTranslation$$.push(\n this.languageService.translate.get('igo.common.paginator.previousPageLabel').subscribe((label: string) => {\n this.paginator._intl.previousPageLabel = label;\n }));\n }\n\n rangeLabel = (page: number, pageSize: number, length: number) => {\n const of: BehaviorSubject<string> = new BehaviorSubject('');\n\n this.paginationLabelTranslation$$.push(\n this.languageService.translate.get('igo.common.paginator.of').subscribe((label: string) => {\n of.next(label);\n }));\n if (length === 0 || pageSize === 0) { return `0 ${of.value} ${length}`; }\n length = Math.max(length, 0);\n const startIndex = page * pageSize;\n const endIndex = startIndex < length ?\n Math.min(startIndex + pageSize, length) :\n startIndex + pageSize;\n return `${startIndex + 1} - ${endIndex} ${of.value} ${length}`;\n };\n\n private unsubscribeAll() {\n this.paginationLabelTranslation$$.map(sub => sub.unsubscribe());\n if (this.count$$) { this.count$$.unsubscribe(); }\n if (this.entitySortChange$$) { this.entitySortChange$$.unsubscribe(); }\n }\n\n ngOnDestroy(): void {\n this.unsubscribeAll();\n }\n\n emitPaginator() {\n this.paginatorChange.emit(this.paginator);\n }\n}\n","<mat-paginator \n [disabled]=\"disabled\"\n [hidePageSize]=\"hidePageSize\"\n [length]=\"length\"\n [pageIndex]=\"pageIndex\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n [showFirstLastButtons]=\"showFirstLastButtons\"\n (page)=\"emitPaginator()\">\n</mat-paginator>\n","import {\n Directive,\n HostListener,\n Input,\n ElementRef\n} from '@angular/core';\n\n@Directive({\n selector: '[igoImageError]'\n})\nexport class ImageErrorDirective {\n\n @Input() errorImageUrl: string = './assets/igo2/common/images/na.png';\n @Input() hideError: boolean = false;\n\n constructor(private el: ElementRef) {}\n\n @HostListener(\"error\", ['$event'])\n public onError(event: any): void {\n if (this.hideError) {\n this.el.nativeElement.style.display = \"none\";\n } else {\n event.target.src = this.errorImageUrl;\n }\n\n }\n\n}\n","import {\n Directive,\n Input,\n ElementRef,\n Renderer2,\n EventEmitter,\n Output,\n HostListener\n} from '@angular/core';\n\nimport scrollIntoView from 'scroll-into-view-if-needed';\n\nimport { EntityTableScrollBehavior } from '../shared/entity.enums';\n\n/**\n * Directive that handles an entity table row click and selection.\n */\n@Directive({\n selector: '[igoEntityTableRow]'\n})\nexport class EntityTableRowDirective {\n\n /**\n * Class added to a selected row\n */\n static selectedCls = 'igo-entity-table-row-selected';\n\n /**\n * Class added to a highlighted row\n */\n static highlightedCls = 'igo-entity-table-row-highlighted';\n\n /**\n * Whether a row supports selection\n */\n @Input() selection = false;\n\n /**\n * Whether clicking a row should select it (if selection is true)\n */\n @Input() selectOnClick: boolean = true;\n\n /**\n * Whether the selected row should be highlighted\n */\n @Input() highlightSelection: boolean = true;\n\n /**\n * Whether a row is selected\n */\n @Input()\n set selected(value: boolean) {\n if (this.selection === false) { return; }\n if (value === this._selected) { return; }\n\n this.toggleSelected(value);\n this.scroll();\n }\n get selected(): boolean {\n return this._selected;\n }\n private _selected = false;\n\n /**\n * Scroll behavior on selection\n */\n @Input()\n scrollBehavior: EntityTableScrollBehavior = EntityTableScrollBehavior.Auto;\n\n /**\n * Event emitted when a row is selected\n */\n @Output() select = new EventEmitter<EntityTableRowDirective>();\n\n /**\n * When a row is clicked, select it if it's supported\n * @ignore\n */\n @HostListener('click')\n onClick() {\n if (this.selection === false || this.selectOnClick === false) {\n return;\n }\n\n this.toggleSelected(true);\n this.select.emit(this);\n }\n\n constructor(private renderer: Renderer2, private el: ElementRef) {}\n\n /**\n * Select a row and add or remove the selected class from it\n * @param selected Whether the row should be selected\n */\n private toggleSelected(selected: boolean) {\n this._selected = selected;\n if (selected === true) {\n this.addCls(EntityTableRowDirective.selectedCls);\n if (this.highlightSelection === true) {\n this.addCls(EntityTableRowDirective.highlightedCls);\n }\n } else {\n this.removeCls(EntityTableRowDirective.selectedCls);\n this.removeCls(EntityTableRowDirective.highlightedCls);\n }\n }\n\n /**\n * Scroll to the selected row\n */\n private scroll() {\n if (this._selected === true) {\n scrollIntoView(this.el.nativeElement, {\n scrollMode: 'if-needed',\n behavior: 'smooth',\n block: 'end',\n inline: 'nearest'\n });\n }\n }\n\n /**\n * Add the selected CSS class\n */\n private addCls(cls: string) {\n this.renderer.addClass(this.el.nativeElement, cls);\n }\n\n /**\n * Remove the selected CSS class\n */\n private removeCls(cls: string) {\n this.renderer.removeClass(this.el.nativeElement, cls);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Pipe({ name: 'sanitizeHtml' })\nexport class SanitizeHtmlPipe implements PipeTransform {\n constructor(private _sanitizer: DomSanitizer) {\n }\n transform(v: string): SafeHtml {\n return this._sanitizer.bypassSecurityTrustHtml(v);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\n\nimport { Cacheable } from 'ts-cacheable';\nimport { Observable } from 'rxjs';\nimport { catchError, switchMap } from 'rxjs/operators';\nimport { ConfigService } from '@igo2/core';\n\n@Pipe({\n name: 'secureImage'\n})\nexport class SecureImagePipe implements PipeTransform {\n constructor(\n private http: HttpClient,\n private configService?: ConfigService) {}\n\n @Cacheable({\n maxCacheCount: 20\n })\n transform(url: string): Observable<string> {\n const headers = new HttpHeaders({\n 'Content-Type': 'text/plain',\n activityInterceptor: 'false',\n interceptError: 'false'\n });\n\n const regexDepot = new RegExp(this.configService?.getConfig('depot.url') + '.*?(?=\"|$)');\n if (regexDepot.test(url)) {\n url = url.match(regexDepot)[0];\n }\n\n return this.http\n .get(url, {\n headers,\n responseType: 'blob'\n })\n .pipe(\n catchError((err) => {\n err.error.caught = true;\n err.error.toDisplay = false;\n throw err;\n }),\n switchMap((blob) => {\n return new Observable((observer) => {\n const reader = new FileReader();\n reader.readAsDataURL(blob);\n reader.onloadend = () => {\n observer.next(reader.result);\n observer.complete();\n };\n });\n })\n ) as Observable<string>;\n }\n}\n","<div class=\"table-container\" [ngStyle]=\"{'height': tableHeight}\">\n <table mat-table matSort [ngClass]=\"getTableClass()\" [dataSource]=\"dataSource\" [trackBy]=\"getTrackByFunction()\" (matSortChange)=\"onSort($event)\">\n <ng-container matColumnDef=\"selectionCheckbox\" class=\"mat-cell-checkbox\">\n <th mat-header-cell *matHeaderCellDef>\n <ng-container *ngIf=\"selectMany\">\n <ng-container *ngIf=\"selectionState$ | async as selectionState\">\n <mat-checkbox (change)=\"onToggleRows($event.checked)\" [checked]=\"selectionState === entityTableSelectionState.All\"\n [indeterminate]=\"selectionState === entityTableSelectionState.Some\">\n </mat-checkbox>\n </ng-container>\n </ng-container>\n </th>\n <td mat-cell *matCellDef=\"let record\">\n <mat-checkbox (mousedown)=\"$event.shiftKey ? $event.preventDefault() : null\" (click)=\"$event.shiftKey ?\n onShiftToggleRow(!rowIsSelected(record), record, $event) : $event.stopPropagation()\" (change)=\"onToggleRow($event.checked,record)\"\n [checked]=\"rowIsSelected(record)\">\n </mat-checkbox>\n </td>\n </ng-container>\n\n <ng-container [matColumnDef]=\"column.name\" *ngFor=\"let column of template.columns\">\n <ng-container *ngIf=\"columnIsSortable(column)\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header [matTooltip]=\"column.tooltip ? column.tooltip : undefined\">\n {{column.title}}\n </th>\n </ng-container>\n\n <ng-container *ngIf=\"!columnIsSortable(column)\">\n <th mat-header-cell *matHeaderCellDef [matTooltip]=\"column.tooltip ? column.tooltip : undefined\">\n {{column.title}}\n </th>\n </ng-container>\n\n <ng-container *ngIf=\"getColumnRenderer(column) as columnRenderer\">\n <ng-container *ngIf=\"columnRenderer === entityTableColumnRenderer.Default\">\n <ng-container *matCellDef=\"let record\">\n <td mat-cell class=\"mat-cell-text\" *ngIf=\"!isUrl(getValue(record, column));else isAnUrlDefault\" [ngClass]=\"getCellClass(record, column)\">\n {{getValue(record, column)}}\n </td>\n <ng-template #isAnUrlDefault>\n <td mat-cell class=\"mat-cell-text\" [ngClass]=\"getCellClass(record, column)\">\n <a href=\"{{getValue(record, column)}}\" target='_blank' rel=\"noopener noreferrer\" (click)=\"$event.stopPropagation()\">\n <img igoImageError *ngIf=\"isImg(getValue(record, column));else notImg\" src=\"{{(getValue(record, column) | secureImage) | async}}\" width=\"50\" heigth=\"auto\">\n <ng-template #notImg><span>{{\n 'igo.common.entity-table.targetHtmlUrl' | translate }}\n </span></ng-template>\n </a>\n </td>\n </ng-template>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"columnRenderer === entityTableColumnRenderer.HTML\">\n <ng-container *matCellDef=\"let record\">\n <td mat-cell class=\"mat-cell-text\" *ngIf=\"!isUrl(getValue(record, column));else isAnUrlHTML\" [ngClass]=\"getCellClass(record, column)\"\n [innerHTML]=\"getValue(record, column)\">\n </td>\n <ng-template #isAnUrlHTML>\n <td mat-cell class=\"mat-cell-text\" [ngClass]=\"getCellClass(record, column)\">\n <a href=\"{{getValue(record, column)}}\" target='_blank' rel=\"noopener noreferrer\" (click)=\"$event.stopPropagation()\">\n <img igoImageError *ngIf=\"isImg(getValue(record, column));else notImg\" src=\"{{(getValue(record, column) | secureImage) | async}}\" width=\"50\" heigth=\"auto\">\n <ng-template #notImg><span>{{ 'igo.geo.targetHtmlUrl' |\n translate }} </span></ng-template>\n </a>\n </td>\n </ng-template>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"columnRenderer === entityTableColumnRenderer.UnsanitizedHTML\">\n <ng-container *matCellDef=\"let record\">\n <td mat-cell class=\"mat-cell-text edition\" [formGroup]=\"formGroup\" *ngIf=\"isEdition(record);else isUnsanitizedHTML\"\n [ngClass]=\"getCellClass(record, column)\">\n <div class=\"date-picker\" *ngIf=\"column.type === 'date'\">\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <input matInput [matDatepicker]=\"picker\" [formControlName]=\"column.name\" value=\"{{getValue(record, column)}}\"\n (dateChange)=\"onDateChange(column.name, record, $event)\">\n <mat-datepicker #picker></mat-datepicker>\n </div>\n <input matInput type=\"time\" *ngIf=\"column.type === 'time'\" [formControlName]=\"column.name\" step=\"900\" (focus)=\"column.onFocus($event)\"\n (keypress)=\"column.onChange($event)\" (blur)=\"column.onBlur($event)\">\n <input matInput type=\"number\" class=\"class_number_edition\" *ngIf=\"column.type === 'number'\" [formControlName]=\"column.name\" step=\"{{column.step}}\"\n value=\"{{getValue(record,column)}}\" (input)=\"onValueChange(column.name, record, $event)\"\n readonly=\"{{getValidationAttributeValue(column, 'readonly')}}\" required=\"{{getValidationAttributeValue(column, 'mandatory')}}\"\n min=\"{{getValidationAttributeValue(column, 'minValue')}}\" max=\"{{getValidationAttributeValue(column, 'maxValue')}}\">\n <input matInput type=\"text\" *ngIf=\"!column.type || column.type ==='string'\" [formControlName]=\"column.name\"\n value=\"{{getValue(record, column)}}\" (input)=\"onValueChange(column.name, record, $event)\"\n readonly=\"{{getValidationAttributeValue(column, 'readonly')}}\" required=\"{{getValidationAttributeValue(column, 'mandatory')}}\">\n <mat-checkbox *ngIf=\"column.type === 'boolean'\" [formControlName]=\"column.name\" [checked]=\"getValue(record,column)\"\n (change)=\"onBooleanValueChange(column.name, record,$event)\"></mat-checkbox>\n <mat-select *ngIf=\"column.type === 'list'\" required=\"{{getValidationAttributeValue(column, 'mandatory')}}\"\n [formControlName]=\"column.name\" [multiple]=\"column.multiple\" (selectionChange)=\"onSelectValueChange(column.name, record, $event)\"\n [value]=\"getValue(record, column)\">\n <mat-option *ngFor=\"let option of column.domainValues\" [value]=\"option.id\" [disabled]=\"option.disabled\">\n {{ option.value }}\n </mat-option>\n </mat-select>\n <input matInput type=\"text\" [formControlName]=\"column.name\" *ngIf=\"column.type === 'autocomplete'\" [matAutocomplete]=\"auto\"\n required=\"{{getValidationAttributeValue(column, 'mandatory')}}\" value=\"{{getValue(record, column)}}\"\n readonly=\"{{getValidationAttributeValue(column, 'readonly')}}\">\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"onAutocompleteValueChange(column, record, $event)\"\n panelWidth=\"430px\">\n <mat-option *ngFor=\"let option of filteredOptions[column.name] | async\"\n [value]=\"option.id\">\n {{ option.value }}\n </mat-option>\n </mat-autocomplete>\n </td>\n <ng-template #isUnsanitizedHTML>\n <td mat-cell class=\"mat-cell-text\" *ngIf=\"!isUrl(getValue(record, column));else isAnUrlUnsanitizedHTML\" [ngClass]=\"getCellClass(record, column)\"\n [innerHTML]=\"getValue(record, column) | sanitizeHtml\">\n </td>\n <ng-template #isAnUrlUnsanitizedHTML>\n <td mat-cell class=\"mat-cell-text\" [ngClass]=\"getCellClass(record, column)\">\n <a href=\"{{getValue(record, column)}}\" target='_blank' rel=\"noopener noreferrer\" (click)=\"$event.stopPropagation()\">\n <img igoImageError *ngIf=\"isImg(getValue(record, column));else notImg\" src=\"{{(getValue(record, column) | secureImage) | async}}\" width=\"50\" heigth=\"auto\">\n <ng-template #notImg><span>{{ 'igo.geo.targetHtmlUrl' | translate }} </span></ng-template>\n </a>\n </td>\n </ng-template>\n </ng-template>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"columnRenderer === entityTableColumnRenderer.Icon\">\n <td mat-cell *matCellDef=\"let record\" class=\"mat-cell-text\" [ngClass]=\"getCellClass(record, column)\">\n <mat-icon *ngIf=\"column.onClick\" svgIcon=\"{{getValue(record, column)|| column.icon}}\" (click)=\"column.onClick($event)\"></mat-icon>\n <mat-icon *ngIf=\"!column.onClick\" svgIcon=\"{{getValue(record, column)|| column.icon}}\"></mat-icon>\n </td>\n </ng-container>\n <ng-container *ngIf=\"columnRenderer === entityTableColumnRenderer.ButtonGroup\">\n <ng-container *matCellDef=\"let record\">\n <td mat-cell class=\"mat-cell-text\" [ngClass]=\"getCellClass(record, column)\">\n <span *ngFor=\"let button of getValue(record, column)\">\n <ng-container *ngIf=\"isEdition(record) === button.editMode || button.editMode === undefined\">\n <button *ngIf=\"button.style === 'mat-icon-button'\" igoStopPropagation mat-icon-button\n [color]=\"button.color\" (mousedown)=\"onButtonClick(button.click, record)\" [disabled]=\"button.disabled\">\n <mat-icon svgIcon=\"{{button.icon}}\"></mat-icon>\n </button>\n <button *ngIf=\"button.style !== 'mat-icon-button'\" igoStopPropagation mat-mini-fab\n [color]=\"button.color\" (mousedown)=\"onButtonClick(button.click, record)\" [disabled]=\"button.disabled\">\n <mat-icon svgIcon=\"{{button.icon}}\"></mat-icon>\n </button>\n </ng-container>\n </span>\n </td>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"headers; sticky: fixedHeader\" [ngClass]=\"getHeaderClass()\">\n </tr>\n <tr mat-row igoEntityTableRow *matRowDef=\"let record; columns: headers;\" [scrollBehavior]=\"scrollBehavior\" [ngClass]=\"getRowClass(record)\" [selection]=\"selection\" [selected]=\"rowIsSelected(record)\" (select)=\"onRowSelect(record)\" (click)=\"onRowClick(record)\">\n </tr>\n </table>\n <igo-entity-table-paginator *ngIf=\"withPaginator\" [store]=\"store\" [paginatorOptions]=\"paginatorOptions\" [entitySortChange$]=\"entitySortChange$\" (paginatorChange)=\"paginatorChange($event)\">\n </igo-entity-table-paginator>\n</div>","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n OnInit,\n OnDestroy,\n OnChanges,\n SimpleChanges,\n ElementRef,\n Optional,\n Self\n} from '@angular/core';\n\nimport { BehaviorSubject, Observable, Subscription } from 'rxjs';\n\nimport {\n EntityKey,\n EntityRecord,\n EntityState,\n EntityStore,\n EntityTableTemplate,\n EntityTableColumn,\n EntityTableColumnRenderer,\n EntityTableSelectionState,\n EntityTableScrollBehavior\n} from '../shared';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { EntityTablePaginatorOptions } from '../entity-table-paginator/entity-table-paginator.interface';\nimport { MatFormFieldControl } from '@angular/material/form-field';\nimport { UntypedFormBuilder, NgControl, NgForm, FormControlName, UntypedFormGroup } from '@angular/forms';\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { DateAdapter, ErrorStateMatcher } from '@angular/material/core';\nimport { map } from 'rxjs/operators';\nimport { default as moment } from 'moment';\n\n@Component({\n selector: 'igo-entity-table',\n templateUrl: './entity-table.component.html',\n styleUrls: ['./entity-table.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: MatFormFieldControl, useExisting: EntityTableComponent }]\n})\nexport class EntityTableComponent implements OnInit, OnChanges, OnDestroy {\n\n entitySortChange$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n\n public formGroup: UntypedFormGroup = new UntypedFormGroup({});\n\n public filteredOptions = {};\n\n /**\n * Reference to the column renderer types\n * @internal\n */\n entityTableColumnRenderer = EntityTableColumnRenderer;\n\n /**\n * Reference to the selection's state\n * @internal\n */\n entityTableSelectionState = EntityTableSelectionState;\n\n /**\n * Observable of the selection,s state\n * @internal\n */\n readonly selectionState$: BehaviorSubject<EntityTableSelectionState> = new BehaviorSubject(undefined);\n\n /**\n * Subscription to the store's selection\n */\n private selection$$: Subscription;\n\n /**\n * Subscription to the dataSource\n */\n private dataSource$$: Subscription;\n\n /**\n * The last record checked. Useful for selecting\n * multiple records by holding the shift key and checking\n * checkboxes.\n */\n private lastRecordCheckedKey: EntityKey;\n\n /**\n * Entity store\n */\n @Input() store: EntityStore<object>;\n\n /**\n * Table paginator\n */\n @Input() set paginator(value: MatPaginator) {\n this._paginator = value;\n this.dataSource.paginator = value;\n }\n\n get paginator(): MatPaginator {\n return this._paginator;\n }\n private _paginator: MatPaginator;\n\n /**\n * Table template\n */\n @Input() template: EntityTableTemplate;\n\n /**\n * Scroll behavior on selection\n */\n @Input()\n scrollBehavior: EntityTableScrollBehavior = EntityTableScrollBehavior.Auto;\n\n /**\n * Whether nulls should be first when sorting\n */\n @Input()\n sortNullsFirst: boolean = false;\n\n /**\n * Show the table paginator or not. False by default.\n */\n @Input()\n withPaginator: boolean = false;\n\n /**\n * Paginator options\n */\n @Input()\n paginatorOptions: EntityTablePaginatorOptions;\n\n /**\n * Event emitted when an entity (row) is clicked\n */\n @Output() entityClick = new EventEmitter<object>();\n\n /**\n * Event emitted when an entity (row) is selected\n */\n @Output() entitySelectChange = new EventEmitter<{\n added: object[];\n }>();\n\n /**\n * Event emitted when the table sort is changed.\n */\n @Output() entitySortChange: EventEmitter<{column: EntityTableColumn, direction: string}> = new EventEmitter(undefined);\n\n /**\n * Table headers\n * @internal\n */\n get headers(): string[] {\n let columns = this.template.columns\n .filter((column: EntityTableColumn) => column.visible !== false)\n .map((column: EntityTableColumn) => column.name);\n\n if (this.selectionCheckbox === true) {\n columns = ['selectionCheckbox'].concat(columns);\n }\n\n return columns;\n }\n\n /**\n * Data source consumable by the underlying material table\n * @internal\n */\n dataSource = new MatTableDataSource<object>();\n\n /**\n * Whether selection is supported\n * @internal\n */\n get selection(): boolean { return this.template.selection || false; }\n\n /**\n * Whether a selection checkbox should be displayed\n * @internal\n */\n get selectionCheckbox(): boolean { return this.template.selectionCheckbox || false; }\n\n /**\n * Whether selection many entities should eb supported\n * @internal\n */\n get selectMany(): boolean { return this.template.selectMany || false; }\n\n /**\n * Whether selection many entities should eb supported\n * @internal\n */\n get fixedHeader(): boolean { return this.template.fixedHeader === undefined ? true : this.template.fixedHeader; }\n\n get tableHeight(): string { return this.template.tableHeight ? this.template.tableHeight : 'auto'; }\n\n constructor(private cdRef: ChangeDetectorRef,\n private formBuilder: UntypedFormBuilder,\n protected _focusMonitor: FocusMonitor,\n protected _elementRef: ElementRef<HTMLElement>,\n @Optional() @Self() public ngControl: NgControl,\n @Optional() protected _parentForm: NgForm,\n @Optional() protected _controlName: FormControlName,\n protected _defaultErrorStateMatcher: ErrorStateMatcher,\n private dateAdapter: DateAdapter<Date>\n ) {\n this.dateAdapter.setLocale('fr-CA');\n }\n\n /**\n * Track the selection state to properly display the selection checkboxes\n * @internal\n */\n ngOnInit() {\n this.handleDatasource();\n this.dataSource.paginator = this.paginator;\n }\n\n /**\n * @internal\n */\n ngOnChanges(changes: SimpleChanges) {\n const store = changes.store;\n if (store && store.currentValue !== store.previousValue) {\n this.handleDatasource();\n }\n }\n\n /**\n * Process text or number value change (edition)\n */\n onValueChange(column: string, record: EntityRecord<any>, event) {\n const key = this.getColumnKeyWithoutPropertiesTag(column);\n record.entity.properties[key] = event.target.value;\n }\n\n /**\n * Process boolean value change (edition)\n */\n onBooleanValueChange(column: string, record: EntityRecord<any>, event) {\n const key = this.getColumnKeyWithoutPropertiesTag(column);\n record.entity.properties[key] = event.checked;\n }\n\n /**\n * Process select value change (edition)\n */\n onSelectValueChange(column: string, record: EntityRecord<any>, event) {\n const key = this.getColumnKeyWithoutPropertiesTag(column);\n record.entity.properties[key] = event.value;\n }\n\n /**\n * Process autocomplete value change (edition)\n */\n onAutocompleteValueChange(column: EntityTableColumn, record: EntityRecord<any>, event) {\n this.formGroup.controls[column.name].setValue(event.option.viewValue);\n const key = this.getColumnKeyWithoutPropertiesTag(column.name);\n record.entity.properties[key] = event.option.value;\n }\n\n /**\n * Process date value change (edition)\n */\n onDateChange(column: string, record: EntityRecord<any>, event) {\n const format = \"YYYY-MM-DD\";\n const value = moment(event.value).format(format);\n const key = this.getColumnKeyWithoutPropertiesTag(column);\n record.entity.properties[key] = value;\n }\n\n /**\n * Enable edition mode for one row\n * More than one row can be edited at the same time\n */\n private enableEdit(record: EntityRecord<any>) {\n const item = record.entity.properties || record.entity;\n this.template.columns.forEach(column => {\n column.title = column.validation?.mandatory && !column.title.includes('*') ? column.title + ' *' : column.title;\n\n const key = this.getColumnKeyWithoutPropertiesTag(column.name);\n if (column.type === 'boolean') {\n if (!item[key] || item[key] === null) {\n item[key] = false;\n } else if (typeof item[key] === 'string') {\n item[key] = JSON.parse(item[key].toLowerCase());\n }\n this.formGroup.setControl(column.name, this.formBuilder.control(\n item[key]\n ));\n } else if (column.type === 'list') {\n if (column.multiple) {\n this.formGroup.setControl(column.name, this.formBuilder.control(\n [item[key]]\n ));\n } else {\n this.formGroup.setControl(column.name, this.formBuilder.control(\n item[key]\n ));\n\n typeof item[key] === 'string' ?\n this.formGroup.controls[column.name].setValue(parseInt(item[key])) :\n this.formGroup.controls[column.name].setValue(item[key]);\n }\n } else if (column.type === 'autocomplete') {\n this.formGroup.setControl(column.name, this.formBuilder.control(\n item[key]\n ));\n\n this.filteredOptions[column.name] = new Observable<any[]>();\n this.filteredOptions[column.name] =\n this.formGroup.controls[column.name].valueChanges.pipe(\n map(value => {\n if (value?.length) {\n return column.domainValues?.filter((option) => {\n const filterNormalized = value ? value.toLowerCase().normalize('NFD').replace(/[\\u0300-\\u036f]/g, '') : '';\n const featureNameNormalized = option.value.toLowerCase().normalize('NFD').replace(/[\\u0300-\\u036f]/g, '');\n return featureNameNormalized.includes(filterNormalized);\n });\n }\n })\n );\n\n let formControlValue = item[key];\n column.domainValues.forEach(option => {\n if (typeof formControlValue === 'string' && /^\\d+$/.test(formControlValue)) {\n formControlValue = parseInt(formControlValue);\n }\n if (option.value === formControlValue || option.id === formControlValue) {\n formControlValue = option.value;\n }\n });\n\n this.formGroup.controls[column.name].setValue(formControlValue);\n if (this.isEdition(record) && column.linkColumnForce) {\n const entity = record.entity as any;\n this.formGroup.controls[column.name].setValue(\n entity?.properties[this.getColumnKeyWithoutPropertiesTag(column.linkColumnForce)]\n );\n }\n } else if (column.type === 'date') {\n if (column.visible !== false) {\n if (item[key]) {\n let date = moment(item[key]);\n item[key] = date.utc().format('YYYY-MM-DD');\n this.formGroup.setControl(column.name, this.formBuilder.control(\n item[key]\n ));\n } else {\n const newKey = this.getColumnKeyWithoutPropertiesTag(column.name);\n record.entity.properties[newKey] = null;\n this.formGroup.setControl(column.name, this.formBuilder.control(\n null\n ));\n }\n }\n } else {\n this.formGroup.setControl(column.name, this.formBuilder.control(\n item[key]\n ));\n }\n\n if (this.formGroup.controls[column.name] && this.getValidationAttributeValue(column, 'readonly')) {\n this.formGroup.controls[column.name].disable();\n }\n });\n }\n\n private handleDatasource() {\n this.unsubscribeStore();\n this.selection$$ = this.store.stateView\n .manyBy$((record: EntityRecord<object>) => record.state.selected === true)\n .subscribe((records: EntityRecord<object>[]) => {\n const firstSelected = records[0];\n const firstSelectedStateviewPosition = this.store.stateView.all().indexOf(firstSelected);\n const pageMax = this.paginator ? this.paginator.pageSize * (this.paginator.pageIndex + 1) : 0;\n const pageMin = this.paginator ? pageMax - this.paginator.pageSize : 0;\n\n if (\n this.paginator &&\n (firstSelectedStateviewPosition < pageMin ||\n firstSelectedStateviewPosition >= pageMax)) {\n const pageToReach = Math.floor(firstSelectedStateviewPosition / this.paginator.pageSize);\n this.dataSource.paginator.pageIndex = pageToReach;\n }\n this.selectionState$.next(this.computeSelectionState(records));\n });\n this.dataSource$$ = this.store.stateView.all$().subscribe((all) => {\n if (all[0]) {\n this.enableEdit(all[0]);\n }\n this.dataSource.data = all;\n });\n\n }\n\n /**\n * Unbind the store watcher\n * @internal\n */\n ngOnDestroy() {\n this.unsubscribeStore();\n }\n\n private unsubscribeStore() {\n if (this.selection$$) {\n this.selection$$.unsubscribe();\n }\n if (this.dataSource$$) {\n this.dataSource$$.unsubscribe();\n }\n }\n\n /**\n * Trackby function\n * @param record Record\n * @param index Record index\n * @internal\n */\n getTrackByFunction() {\n return (index: number, record: EntityRecord<object, EntityState>) => {\n return record.ref;\n };\n }\n\n /**\n * Trigger a refresh of thre table. This can be useful when\n * the data source doesn't emit a new value but for some reason\n * the records need an update.\n * @internal\n */\n refresh() {\n this.cdRef.detectChanges();\n }\n\n paginatorChange(event: MatPaginator) {\n this.paginator = event;\n }\n\n /**\n * On sort, sort the store\n * @param event Sort event\n * @internal\n */\n onSort(event: {active: string, direction: string}) {\n const direction = event.direction;\n const column = this.template.columns\n .find((c: EntityTableColumn) => c.name === event.active);\n\n if (direction === 'asc' || direction === 'desc') {\n this.store.stateView.sort({\n valueAccessor: (record: EntityRecord<object>) => this.getValue(record, column),\n direction,\n nullsFirst: this.sortNullsFirst\n });\n this.entitySortChange.emit({column, direction});\n this.entitySortChange$.next(true);\n } else {\n this.store.stateView.sort(undefined);\n }\n }\n\n /**\n * When an entity is clicked, emit an event\n * @param record Record\n * @internal\n */\n onRowClick(record: EntityRecord<object>) {\n this.lastRecordCheckedKey = this.store.stateView.getKey(record);\n this.entityClick.emit(record.entity);\n }\n\n /**\n * When an entity is selected, select it in the store and emit an event. Even if\n * \"many\" is set to true, this method always select a single, exclusive row. Selecting\n * multiple rows should be achieved by using the checkboxes.\n * @param record Record\n * @internal\n */\n onRowSelect(record: EntityRecord<object>) {\n if (this.selection === false) { return; }\n\n const entity = record.entity;\n this.store.state.update(entity, {selected: true}, true);\n this.entitySelectChange.emit({added: [entity]});\n }\n\n /**\n * Select or unselect all rows at once. On select, emit an event.\n * @param toggle Select or unselect\n * @internal\n */\n onToggleRows(toggle: boolean) {\n if (this.selection === false) { return; }\n\n this.store.state.updateAll({selected: toggle});\n if (toggle === true) {\n const entities = this.store.stateView\n .all()\n .map((record: EntityRecord<object>) => record.entity);\n this.entitySelectChange.emit({added: [entities]});\n }\n }\n\n /**\n * When an entity is toggled, select or unselect it in the store. On select,\n * emit an event.\n * @param toggle Select or unselect\n * @param record Record\n * @internal\n */\n onToggleRow(toggle: boolean, record: EntityRecord<object>) {\n if (this.selection === false) { return; }\n\n const entity = record.entity;\n const exclusive = toggle === true && !this.selectMany;\n this.store.state.update(entity, {selected: toggle}, exclusive);\n if (toggle === true) {\n this.entitySelectChange.emit({added: [entity]});\n }\n this.lastRecordCheckedKey = this.store.stateView.getKey(record);\n }\n\n /**\n * When an entity is toggled, select or unselect it in the store. On select,\n * emit an event.\n * @param toggle Select or unselect\n * @param record Record\n * @internal\n */\n onShiftToggleRow(toggle: boolean, record: EntityRecord<object>, event: MouseEvent) {\n if (this.selection === false) { return; }\n\n if (this.selectMany === false || this.lastRecordCheckedKey === undefined) {\n this.onToggleRow(toggle, record);\n return;\n }\n\n // This is a workaround mat checkbox wrong behavior\n // when the shift key is held.\n // See https://github.com/angular/components/issues/6232\n const range = window.document.createRange();\n range.selectNode(event.target as HTMLElement);\n window.getSelection().removeAllRanges();\n window.getSelection().addRange(range);\n event.stopImmediatePropagation();\n\n const records = this.store.stateView.all();\n const recordIndex = records.indexOf(record);\n const lastRecordChecked = this.store.stateView.get(this.lastRecordCheckedKey);\n const lastRecordIndex = records.indexOf(lastRecordChecked);\n const indexes = [recordIndex, lastRecordIndex];\n const selectRecords = records.slice(Math.min(...indexes), Math.max(...indexes) + 1);\n\n const entities = selectRecords.map((_record: EntityRecord<object>) => _record.entity);\n this.store.state.updateMany(entities, {selected: toggle});\n if (toggle === true) {\n this.entitySelectChange.emit({added: entities});\n }\n this.lastRecordCheckedKey = this.store.stateView.getKey(record);\n }\n\n /**\n * Compute the selection state\n * @returns Whether all, some or no rows are selected\n * @internal\n */\n private computeSelectionState(selectedRecords: EntityRecord<object>[]): EntityTableSelectionState {\n const states = EntityTableSelectionState;\n const selectionCount = selectedRecords.length;\n return selectionCount === 0 ?\n states.None :\n (selectionCount === this.store.stateView.count ? states.All : states.Some);\n }\n\n /**\n * Whether a column is sortable\n * @param column Column\n * @returns True if a column is sortable\n * @internal\n */\n columnIsSortable(column: EntityTableColumn): boolean {\n let sortable = column.sort;\n if (sortable === undefined) {\n sortable = this.template.sort === undefined ? false : this.template.sort;\n }\n return sortable;\n }\n\n /**\n * Whether a row is should be selected based on the underlying entity state\n * @param record Record\n * @returns True if a row should be selected\n * @internal\n */\n rowIsSelected(record: EntityRecord<object>): boolean {\n const state = record.state;\n return state.selected ? state.selected : false;\n }\n\n isImg(value) {\n if (this.isUrl(value)) {\n return (\n ['jpg', 'png', 'gif'].indexOf(value.split('.').pop().toLowerCase()) !== -1\n );\n } else {\n return false;\n }\n }\n\n isUrl(value) {\n if (typeof value === 'string') {\n return (\n value.slice(0, 8) === 'https://' || value.slice(0, 7) === 'http://'\n );\n } else {\n return false;\n }\n }\n\n /**\n * Method to access an entity's values\n * @param record Record\n * @param column Column\n * @returns Any value\n * @internal\n */\n getValue(record: EntityRecord<object>, column: EntityTableColumn): any {\n const entity = record.entity;\n let value;\n if (column.valueAccessor !== undefined) {\n return column.valueAccessor(entity, record);\n }\n if (this.template.valueAccessor !== undefined) {\n return this.template.valueAccessor(entity, column.name, record);\n }\n value = this.store.getProperty(entity, column.name);\n\n if (column.type === 'boolean') {\n if (value === undefined || value === null || value === '') {\n value = false;\n } else if (typeof value !== 'boolean' && value !== undefined) {\n if (typeof value === 'number'){\n value = Boolean(value);\n } else {\n value = JSON.parse(value.toLowerCase());\n }\n }\n if (!this.isEdition(record)){\n value = value ? '&#10003;' : ''; // check mark\n }\n } else if (column.type === 'list' && value && column.domainValues) {\n const entity = record.entity as any;\n if (column.multiple) {\n let list_id;\n typeof value === 'string' ? list_id = value.match(/[\\w.-]+/g).map(Number) : list_id = value;\n let list_option = [];\n\n column.domainValues.forEach(option => {\n if (list_id.includes(option.id)) {\n if (record.edition) {\n list_option.push(option.id);\n } else {\n list_option.push(option.value);\n }\n }\n });\n\n this.isEdition(record) ? value = list_id : value = list_option;\n } else {\n if (!this.isEdition(record) && column.linkColumnForce) {\n value = entity?.properties[this.getColumnKeyWithoutPropertiesTag(column.linkColumnForce)];\n } else {\n column.domainValues.forEach(option => {\n if (typeof value === 'string' && /^\\d+$/.test(value)) {\n value = parseInt(value);\n }\n if (option.value === value || option.id === value) {\n this.isEdition(record) ? value = option.id : value = option.value;\n }\n });\n }\n }\n } else if (column.type === 'autocomplete' && value && column.domainValues) {\n const entity = record.entity as any;\n if (!this.isEdition(record) && column.linkColumnForce) {\n value = entity?.properties[this.getColumnKeyWithoutPropertiesTag(column.linkColumnForce)];\n } else {\n column.domainValues.forEach(option => {\n if (typeof value === 'string' && /^\\d+$/.test(value)) {\n value = parseInt(value);\n }\n if (option.value === value || option.id === value) {\n value = option.value;\n }\n });\n }\n } else if (column.type === 'date') {\n if (this.isEdition(record)) {\n if (value) {\n let date = moment(value);\n value = date.format();\n this.formGroup.controls[column.name].setValue(value);\n }\n } else if (!this.isEdition(record) && value === null) {\n value = \"\";\n }\n }\n\n if (value === undefined) {\n value = '';\n }\n\n return value;\n }\n\n /**\n * Method to access an entity's validation values\n * @param column Column\n * @param validationType string\n * @returns Any value (false if no validation or not the one concerned)\n * @internal\n */\n getValidationAttributeValue(column: EntityTableColumn, validationType: string): any {\n if (column.validation !== undefined && column.validation[validationType] !== undefined) {\n return column.validation[validationType];\n } else {\n return false;\n }\n }\n\n public isEdition(record) {\n return record.entity.edition ? true : false;\n }\n\n /**\n * Return the type of renderer of a column\n * @param column Column\n * @returns Renderer type\n * @internal\n */\n getColumnRenderer(column: EntityTableColumn): EntityTableColumnRenderer {\n if (column.renderer !== undefined) {\n return column.renderer;\n }\n return EntityTableColumnRenderer.Default;\n }\n\n /**\n * Return the table ngClass\n * @returns ngClass\n * @internal\n */\n getTableClass(): {[key: string]: boolean} {\n return {\n 'igo-entity-table-with-selection': this.selection\n };\n }\n\n /**\n * Return a header ngClass\n * @returns ngClass\n * @internal\n */\n getHeaderClass(): {[key: string]: boolean} {\n const func = this.template.headerClassFunc;\n if (func instanceof Function) {\n return func();\n }\n return {};\n }\n\n /**\n * Return a row ngClass\n * @param record Record\n * @returns ngClass\n * @internal\n */\n getRowClass(record: EntityRecord<object>): {[key: string]: boolean} {\n const entity = record.entity;\n const func = this.template.rowClassFunc;\n if (func instanceof Function) {\n return func(entity, record);\n }\n return {};\n }\n\n /**\n * Return a row ngClass\n * @param record Record\n * @param column Column\n * @returns ngClass\n * @internal\n */\n getCellClass(record: EntityRecord<object>, column: EntityTableColumn): {[key: string]: boolean} {\n const entity = record.entity;\n const cls = {};\n\n const tableFunc = this.template.cellClassFunc;\n if (tableFunc instanceof Function) {\n Object.assign(cls, tableFunc(entity, column, record));\n }\n\n const columnFunc = column.cellClassFunc;\n if (columnFunc instanceof Function) {\n Object.assign(cls, columnFunc(entity, record));\n }\n\n return cls;\n }\n\n /**\n * When a button is clicked\n * @param func Function\n * @param record Record\n * @internal\n */\n onButtonClick(\n clickFunc: (entity: object, record?: EntityRecord<object>) => void,\n record: EntityRecord<object>\n ) {\n this.enableEdit(record);\n if (typeof clickFunc === 'function') {\n clickFunc(record.entity, record);\n }\n }\n\n /**\n * Retrieve column name without his \"properties\" tag (useful for edition workspace properties)\n */\n public getColumnKeyWithoutPropertiesTag(column: string) {\n if (column.includes('properties.')) {\n return column.split('.')[1];\n }\n return column;\n }\n}\n","export enum ActionbarMode {\r\n Dock = 'dock',\r\n Overlay = 'overlay',\r\n Context = 'context'\r\n}\r\n","<mat-list-item *ngIf=\"!action.checkbox\"\n matTooltipClass=\"actionbarItemTooltip\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"withTooltip ? ((tooltip$ | async) || title | translate) : ''\"\n [ngClass]=\"ngClass$ | async\"\n (click)=\"onClick()\">\n <button *ngIf=\"withIcon\"\n mat-list-avatar\n mat-icon-button\n [color]=\"color\"\n [disabled]=\"disabled$ | async\">\n <mat-icon *ngIf=\"withIcon\" svgIcon=\"{{icon$ | async}}\"></mat-icon>\n </button>\n <h4 *ngIf=\"withTitle\" matLine>{{title | translate}}</h4>\n</mat-list-item>\n\n<mat-list-item class=\"item-checkbox\" *ngIf=\"action.checkbox\"\n matTooltipClass=\"actionbarItemTooltip\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"withTooltip ? ((tooltip$ | async) || title | translate) : ''\"\n [ngClass]=\"ngClass$ | async\">\n <mat-checkbox *ngIf=\"withTitle\"\n (change)=\"action.handler()\"\n [checked]=\"checkCondition$ | async\">\n {{title | translate}}\n </mat-checkbox>\n</mat-list-item>\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ChangeDetectionStrategy,\n OnInit,\n OnDestroy\n} from '@angular/core';\n\nimport { BehaviorSubject, Subscription, isObservable } from 'rxjs';\n\nimport { Action } from '../shared/action.interfaces';\n\n /**\n * An action button\n */\n@Component({\n selector: 'igo-actionbar-item',\n templateUrl: './actionbar-item.component.html',\n styleUrls: ['./actionbar-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ActionbarItemComponent implements OnInit, OnDestroy {\n\n readonly disabled$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n\n readonly checkCondition$: BehaviorSubject<boolean> = new BehaviorSubject(undefined);\n\n readonly icon$: BehaviorSubject<string> = new BehaviorSubject(undefined);\n\n readonly tooltip$: BehaviorSubject<string> = new BehaviorSubject(undefined);\n\n readonly noDisplay$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n\n readonly ngClass$: BehaviorSubject<{[key: string]: boolean}> = new BehaviorSubject({});\n\n private ngClass$$: Subscription;\n\n private disabled$$: Subscription;\n\n private availability$$: Subscription;\n\n private icon$$: Subscription;\n\n private checkCondition$$: Subscription;\n\n private tooltip$$: Subscription;\n\n private noDisplay$$: Subscription;\n\n private display$$: Subscription;\n\n /**\n * Action\n */\n @Input() action: Action;\n\n /**\n * Color\n */\n @Input() color = 'default';\n\n /**\n * Whether the action title is displayed\n */\n @Input() withTitle = true;\n\n /**\n * Whether the action icon is displayed\n */\n @Input() withIcon = true;\n\n /**\n * Whether a tooltip should be shown\n */\n @Input() withTooltip = true;\n\n /**\n * Whether the action is disabled\n */\n @Input()\n set disabled(value: boolean) { this.disabled$.next(value); }\n get disabled(): boolean { return this.disabled$.value; }\n\n /**\n * Whether the action is display or not\n */\n @Input()\n set noDisplay(value: boolean) { this.noDisplay$.next(value); }\n get noDisplay(): boolean { return this.noDisplay$.value; }\n\n /**\n * Event emitted when the action button is clicked\n */\n @Output() trigger: EventEmitter<Action> = new EventEmitter();\n\n /**\n * @internal\n */\n get title(): string { return this.action.title; }\n\n constructor() {}\n\n ngOnInit() {\n const args = this.action.args || [];\n\n if (this.action.ngClass !== undefined) {\n this.ngClass$$ = this.action.ngClass(...args)\n .subscribe((ngClass: {[key: string]: boolean}) => this.updateNgClass(ngClass));\n }\n\n if (isObservable(this.action.icon)) {\n this.icon$$ = this.action.icon\n .subscribe((icon: string) => this.updateIcon(icon));\n } else {\n this.updateIcon(this.action.icon);\n }\n\n if (isObservable(this.action.checkCondition)) {\n this.checkCondition$$ = this.action.checkCondition\n .subscribe((checkCondition: boolean) => this.updateCheckCondition(checkCondition));\n } else {\n this.updateCheckCondition(this.action.checkCondition);\n }\n\n if (isObservable(this.action.tooltip)) {\n this.tooltip$$ = this.action.tooltip\n .subscribe((tooltip: string) => this.updateTooltip(tooltip));\n } else {\n this.updateTooltip(this.action.tooltip);\n }\n\n if (this.action.availability !== undefined) {\n this.availability$$ = this.action.availability(...args)\n .subscribe((available: boolean) => this.disabled = !available);\n }\n\n this.disabled$$ = this.disabled$\n .subscribe((disabled: boolean) => this.updateNgClass({'igo-actionbar-item-disabled': disabled}));\n\n if (this.action.display !== undefined) {\n this.display$$ = this.action.display(...args)\n .subscribe((display: boolean) => this.noDisplay = !display);\n }\n\n this.noDisplay$$ = this.noDisplay$\n .subscribe((noDisplay: boolean) => this.updateNgClass({'igo-actionbar-item-no-display': noDisplay}));\n }\n\n ngOnDestroy() {\n if (this.ngClass$$ !== undefined) {\n this.ngClass$$.unsubscribe();\n this.ngClass$$ = undefined;\n }\n\n if (this.availability$$ !== undefined) {\n this.availability$$.unsubscribe();\n this.availability$$ = undefined;\n }\n\n if (this.display$$ !== undefined) {\n this.display$$.unsubscribe();\n this.display$$ = undefined;\n }\n\n if (this.checkCondition$$ !== undefined) {\n this.checkCondition$$.unsubscribe();\n this.checkCondition$$ = undefined;\n }\n\n if (this.icon$$ !== undefined) {\n this.icon$$.unsubscribe();\n this.icon$$ = undefined;\n }\n\n if (this.tooltip$$ !== undefined) {\n this.tooltip$$.unsubscribe();\n this.tooltip$$ = undefined;\n }\n\n this.disabled$$.unsubscribe();\n this.noDisplay$$.unsubscribe();\n }\n\n /**\n * When the action button is clicked, emit the 'trigger' event but don't\n * invoke the action handler. This is handled by the parent component.\n * @internal\n */\n onClick() {\n if (this.disabled === true) {\n return;\n }\n this.trigger.emit(this.action);\n }\n\n private updateNgClass(ngClass: {[key: string]: boolean}) {\n this.ngClass$.next(Object.assign({}, this.ngClass$.value, ngClass));\n }\n\n private updateTooltip(tooltip: string) {\n this.tooltip$.next(tooltip);\n }\n\n private updateCheckCondition(checkCondition: boolean) {\n this.checkCondition$.next(checkCondition);\n }\n\n private updateIcon(icon: string) {\n this.icon$.next(icon);\n }\n}\n","<mat-list *ngIf=\"mode === actionbarMode.Dock\">\n\n <div *ngIf=\"heightCondition && positionConditionTop && isDesktop\"\n id=\"topChevron\">\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.common.actionbar.scrollUp' | translate\"\n (click)=\"scrollUp()\">\n <mat-icon svgIcon=\"chevron-up\"></mat-icon>\n </button>\n </div>\n\n <igo-actionbar-item\n *ngIf=\"withToggleButton\"\n color=\"accent\"\n [withTitle]=\"false\"\n [withIcon]=\"true\"\n [color]=\"color\"\n [disabled]=\"store.view.empty\"\n [action]=\"toggleCollapseAction\"\n (trigger)=\"onTriggerAction(toggleCollapseAction)\">\n </igo-actionbar-item>\n\n <ng-template #buttonContent *ngIf=\"!collapsed\" ngFor let-action [ngForOf]=\"store.view.all$() | async\">\n <igo-actionbar-item\n color=\"accent\"\n [withTitle]=\"withTitle\"\n [withIcon]=\"withIcon\"\n [withTooltip]=\"withTooltip\"\n [color]=\"color\"\n [disabled]=\"store.state.get(action).disabled\"\n [action]=\"action\"\n (trigger)=\"onTriggerAction(action)\">\n </igo-actionbar-item>\n </ng-template>\n\n <div *ngIf=\"heightCondition && positionConditionLow && isDesktop\"\n id=\"lowChevron\">\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.common.actionbar.scrollDown' | translate\"\n (click)=\"scrollDown()\">\n <mat-icon svgIcon=\"chevron-down\"></mat-icon>\n </button>\n </div>\n\n</mat-list>\n\n<div *ngIf=\"mode === actionbarMode.Overlay\">\n <button class=\"buttonOverlay\"\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.common.actionbar.icon' | translate\"\n [matMenuTriggerFor]=\"actionbarMenu\"\n [disabled]=\"store.view.empty\"\n [color]=\"iconColor\">\n <mat-icon [svgIcon]=\"icon\"></mat-icon>\n </button>\n\n <mat-menu\n #actionbarMenu=\"matMenu\"\n class=\"igo-compact-menu igo-no-min-width-menu\"\n overlapTrigger=\"true\"\n [xPosition]=\"xPosition\"\n [yPosition]=\"yPosition\"\n [class]=\"overlayClass\">\n\n <mat-list>\n <ng-template ngFor let-action [ngForOf]=\"store.view.all$() | async\">\n <igo-actionbar-item\n color=\"accent\"\n [withTitle]=\"withTitle\"\n [withIcon]=\"withIcon\"\n [color]=\"color\"\n [action]=\"action\"\n (trigger)=\"onTriggerAction(action)\">\n </igo-actionbar-item>\n </ng-template>\n </mat-list>\n </mat-menu>\n</div>\n<mat-card *ngIf=\"mode === actionbarMode.Context\" class=\"context-menu-card mat-elevation-z4\">\n <mat-list>\n <ng-template ngFor let-action [ngForOf]=\"store.view.all$() | async\">\n <igo-actionbar-item\n color=\"accent\"\n [withTitle]=\"withTitle\"\n [withIcon]=\"withIcon\"\n [color]=\"color\"\n [action]=\"action\"\n (trigger)=\"onTriggerAction(action)\">\n </igo-actionbar-item>\n <br/>\n </ng-template>\n </mat-list>\n</mat-card>\n","import {\n Component,\n Input,\n HostBinding,\n ChangeDetectorRef,\n ChangeDetectionStrategy,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n ElementRef\n} from '@angular/core';\n\nimport { MediaService, Media } from '@igo2/core';\nimport { EntityStoreWatcher } from '../../entity';\nimport { Action } from '../shared/action.interfaces';\nimport { ActionbarMode } from '../shared/action.enums';\nimport { ActionStore } from '../shared/store';\nimport { Overlay } from '@angular/cdk/overlay';\nimport { BehaviorSubject } from 'rxjs';\n\n/**\n * A list of action buttons.\n * This component can be displayed in one of two way: 'dock' or 'overlay'\n */\n@Component({\n selector: 'igo-actionbar',\n templateUrl: './actionbar.component.html',\n styleUrls: ['./actionbar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ActionbarComponent implements OnDestroy, OnChanges {\n\n /**\n * Reference to the ActionbarMode enum for use in the template\n * @internal\n */\n actionbarMode = ActionbarMode;\n\n /**\n * Whether the actionbar is collapsed (Dock mode)\n * @internal\n */\n collapsed = false;\n\n /**\n * Toggle collapse action (Dock)\n * @internal\n */\n toggleCollapseAction = {\n id: 'actionbar_toggle',\n icon: 'dots-vertical',\n handler: () => {\n this.collapsed = !this.collapsed;\n }\n };\n\n /**\n * Action store watcher\n * @internal\n */\n private watcher: EntityStoreWatcher<Action>;\n\n /**\n * Height Condition for scroll button\n */\n heightCondition$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n\n /**\n * Position Condition for top scroll button\n */\n positionConditionTop$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(true);\n\n /**\n * Position Condition for low scroll button\n */\n positionConditionLow$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(true);\n\n /**\n * Action store\n */\n @Input() store: ActionStore;\n\n /**\n * Actionbar mode\n */\n @Input() mode: ActionbarMode = ActionbarMode.Dock;\n\n /**\n * Whether a toggle button should be displayed (Dock mode)\n */\n @Input() withToggleButton = false;\n\n /**\n * Whether a the actionbar should display buttons horizontally\n */\n @Input() horizontal = false;\n\n /**\n * Color\n */\n @Input() color = 'default';\n\n /**\n * Color of the button if action mode === overlay\n */\n @Input() iconColor = 'default';\n\n /**\n * Whether action titles are displayed\n */\n @Input() withTitle = true;\n\n /**\n * Whether action tooltips are displayed\n */\n @Input() withTooltip = true;\n\n /**\n * Whether action titles are displayed (condition for scroll button)\n */\n @Input() scrollActive = true;\n\n /**\n * Whether action icons are displayed\n */\n @Input() withIcon = true;\n\n /**\n * Which icon want to be shown\n */\n @Input() icon = 'dots-horizontal';\n\n /**\n * Overlay X position\n */\n @Input() xPosition = 'before';\n\n /**\n * Overlay Y position\n */\n @Input() yPosition = 'above';\n\n /**\n * Class to add to the actionbar overlay\n */\n @Input()\n set overlayClass(value: string) {\n this._overlayClass = value;\n }\n get overlayClass(): string {\n return [this._overlayClass, 'igo-actionbar-overlay'].join(' ');\n }\n private _overlayClass = '';\n\n /**\n * @ignore\n */\n @HostBinding('class.with-title')\n get withTitleClass() {\n return this.withTitle;\n }\n\n /**\n * @ignore\n */\n @HostBinding('class.with-icon')\n get withIconClass() {\n return this.withIcon;\n }\n\n /**\n * @ignore\n */\n @HostBinding('class.horizontal')\n get horizontalClass() {\n return this.horizontal;\n }\n\n get heightCondition(): boolean {\n const el = this.elRef.nativeElement;\n if (this.scrollActive === false) {\n if (el.clientHeight < el.scrollHeight) {\n return true;\n }\n }\n return false;\n }\n\n get positionConditionTop(): boolean {\n if (this.elRef.nativeElement.scrollTop === 0) {\n return false;\n }\n return true;\n }\n\n get positionConditionLow(): boolean {\n const el = this.elRef.nativeElement;\n if (el.scrollTop >= (el.scrollHeight - el.clientHeight)) {\n return false;\n }\n return true;\n }\n\n get isDesktop(): boolean {\n return this.mediaService.getMedia() === Media.Desktop;\n }\n\n constructor(\n public overlay: Overlay,\n private elRef: ElementRef,\n private cdRef: ChangeDetectorRef,\n public mediaService: MediaService) {}\n\n /**\n * @internal\n */\n ngOnChanges(changes: SimpleChanges) {\n const store = changes.store;\n if (store && store.currentValue !== store.previousValue) {\n if (this.watcher !== undefined) {\n this.watcher.destroy();\n }\n this.watcher = new EntityStoreWatcher(this.store, this.cdRef);\n }\n }\n\n /**\n * @internal\n */\n ngOnDestroy() {\n this.watcher.destroy();\n }\n\n /**\n * Invoke the action handler\n * @internal\n */\n onTriggerAction(action: Action) {\n const args = action.args || [];\n action.handler(...args);\n }\n\n scrollDown() {\n this.elRef.nativeElement.scrollBy(0, 52);\n }\n\n scrollUp() {\n this.elRef.nativeElement.scrollBy(0, -52);\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule } from '@angular/material/list';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nimport { IgoLanguageModule } from '@igo2/core';\n\nimport { ActionbarComponent } from './actionbar.component';\nimport { ActionbarItemComponent } from './actionbar-item.component';\n\n/**\n * @ignore\n */\n@NgModule({\n imports: [\n CommonModule,\n IgoLanguageModule,\n MatButtonModule,\n MatIconModule,\n MatTooltipModule,\n MatMenuModule,\n MatListModule,\n MatCardModule,\n MatCheckboxModule\n ],\n exports: [ActionbarComponent],\n declarations: [ActionbarComponent, ActionbarItemComponent]\n})\nexport class IgoActionbarModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { IgoActionbarModule } from './actionbar/actionbar.module';\n\n@NgModule({\n imports: [\n CommonModule,\n IgoActionbarModule\n ],\n exports: [\n IgoActionbarModule\n ],\n declarations: [],\n providers: []\n})\nexport class IgoActionModule {}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'igo-backdrop',\n templateUrl: './backdrop.component.html',\n styleUrls: ['./backdrop.component.scss']\n})\nexport class BackdropComponent {\n @Input()\n get shown(): boolean {\n return this._shown;\n }\n set shown(value: boolean) {\n this._shown = value;\n }\n private _shown: boolean;\n\n constructor() {}\n}\n","<div [ngClass]=\"{'igo-backdrop-shown': shown}\"></div>\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { BackdropComponent } from './backdrop.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [BackdropComponent],\n exports: [BackdropComponent]\n})\nexport class IgoBackdropModule {\n static forRoot(): ModuleWithProviders<IgoBackdropModule> {\n return {\n ngModule: IgoBackdropModule,\n providers: []\n };\n }\n}\n","import { Directive, Input, ElementRef, OnInit } from '@angular/core';\nimport { MatIconRegistry } from '@angular/material/icon';\n\n\n/**\n * This directive allow to add an icon inside a matBadge.\n * A value must be set into the matBadge directive ex: matBadge=\"icon\".\n * The badge content will be overrided by this current directive.\n */\n@Directive({\n selector: '[igoMatBadgeIcon]'\n})\nexport class IgoBadgeIconDirective implements OnInit {\n @Input()\n set igoMatBadgeIcon(value: string) {\n this.matIconRegistry.getNamedSvgIcon(value).subscribe((svgObj) => {\n this.svg = svgObj;\n this.updateSvg();\n });\n }\n private svg: SVGElement;\n\n @Input()\n set matBadgeHidden(value: boolean) {\n this.hidden = value;\n this.updateHidden();\n }\n private hidden = false;\n\n @Input()\n set matBadgeDisabled(value: boolean) {\n this.disabled = value;\n this.updateDisabled();\n }\n private disabled = false;\n\n @Input()\n set igoMatBadgeInverseColor(value: boolean) {\n this.inverseColor = value;\n this.updateColor();\n }\n private inverseColor = false;\n\n @Input()\n set igoMatBadgeInheritColor(value: boolean) {\n this.inheritColor = value;\n this.updateColor();\n }\n private inheritColor = false;\n\n @Input()\n set igoMatBadgeColor(value: string) {\n this.color = value;\n this.updateColor();\n }\n private color;\n\n @Input()\n set igoMatBadgeBackgroundColor(value: string) {\n this.backgroundColor = value;\n this.updateColor();\n }\n private backgroundColor;\n\n get badge() {\n return this.el.nativeElement.querySelector('.mat-badge-content');\n }\n\n private originalColor: string;\n\n constructor(\n private el: ElementRef,\n private matIconRegistry: MatIconRegistry\n ) {}\n\n ngOnInit() {\n this.badge.style.alignItems = 'center';\n this.badge.style.justifyContent = 'center';\n\n this.updateHidden();\n this.updateColor();\n this.updateSvg();\n }\n\n private updateSvg() {\n if (!this.badge) {\n return;\n }\n this.badge.innerHTML = '';\n if (this.svg) {\n this.badge.appendChild(this.svg);\n }\n }\n private updateColor() {\n if (!this.badge) {\n return;\n }\n\n if (this.color || this.backgroundColor) {\n this.badge.style.color = this.color ? this.color : '';\n this.badge.style.background = this.backgroundColor ? this.backgroundColor : '';\n } else if (this.inheritColor) {\n if (this.inverseColor) {\n this.badge.style.color = 'currentColor';\n this.badge.style.background = 'none';\n } else {\n this.badge.style.color = '';\n this.badge.style.background = 'currentColor';\n }\n } else if (!this.inheritColor) {\n if (this.inverseColor) {\n this.badge.style.color = window\n .getComputedStyle(this.badge, null)\n .getPropertyValue('background-color');\n this.badge.style.background = 'none';\n } else {\n this.badge.style.color = '';\n this.badge.style.background = '';\n }\n }\n this.originalColor = this.badge.style.color;\n this.updateDisabled();\n }\n\n private updateHidden() {\n if (!this.badge) {\n return;\n }\n this.badge.style.display = this.hidden ? 'none' : 'flex';\n }\n\n private updateDisabled() {\n if (!this.badge || !this.inverseColor) {\n return;\n }\n if (this.disabled) {\n this.originalColor = this.badge.style.color;\n this.badge.style.color = '#b9b9b9';\n } else {\n this.badge.style.color = this.originalColor;\n }\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { IgoBadgeIconDirective } from './badge-icon.directive';\nimport { MatBadgeModule } from '@angular/material/badge';\nimport { MatIconModule } from '@angular/material/icon';\n\n@NgModule({\n imports: [MatBadgeModule, MatIconModule],\n declarations: [IgoBadgeIconDirective],\n exports: [MatBadgeModule, IgoBadgeIconDirective]\n})\nexport class IgoMatBadgeIconModule {\n static forRoot(): ModuleWithProviders<IgoMatBadgeIconModule> {\n return {\n ngModule: IgoMatBadgeIconModule,\n providers: []\n };\n }\n}\n","import {\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Output\n} from '@angular/core';\n\n@Directive({\n selector: '[igoClickout]'\n})\nexport class ClickoutDirective {\n @Output() clickout = new EventEmitter<MouseEvent>();\n\n @HostListener('document:click', ['$event', '$event.target'])\n handleMouseClick(event: MouseEvent, target: HTMLElement) {\n if (!target) {\n return;\n }\n\n if (!this.el.nativeElement.contains(target)) {\n this.clickout.emit(event);\n }\n }\n\n constructor(private el: ElementRef) {}\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { ClickoutDirective } from './clickout.directive';\n\n@NgModule({\n imports: [],\n declarations: [ClickoutDirective],\n exports: [ClickoutDirective]\n})\nexport class IgoClickoutModule {\n static forRoot(): ModuleWithProviders<IgoClickoutModule> {\n return {\n ngModule: IgoClickoutModule,\n providers: []\n };\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'clone'\n})\nexport class ClonePipe implements PipeTransform {\n transform(value: any, args?: any): any {\n if (value === undefined) {\n return value;\n }\n\n if (value instanceof Array) {\n return value.map(obj => Object.assign(Object.create(obj), obj));\n } else {\n return Object.assign(Object.create(value), value);\n }\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { ClonePipe } from './clone.pipe';\n\n@NgModule({\n imports: [],\n declarations: [ClonePipe],\n exports: [ClonePipe]\n})\nexport class IgoCloneModule {\n static forRoot(): ModuleWithProviders<IgoCloneModule> {\n return {\n ngModule: IgoCloneModule,\n providers: []\n };\n }\n}\n","import {\n Directive,\n Input,\n Output,\n EventEmitter,\n HostListener,\n ElementRef,\n Renderer2\n} from '@angular/core';\n\n@Directive({\n selector: '[igoCollapse]'\n})\nexport class CollapseDirective {\n @Input()\n get target() {\n return this._target;\n }\n set target(value: Element) {\n this._target = value;\n }\n private _target: Element;\n\n @Input()\n get collapsed(): boolean {\n return this._collapsed;\n }\n set collapsed(collapsed: boolean) {\n collapsed ? this.collapseTarget() : this.expandTarget();\n this._collapsed = collapsed;\n this.toggle.emit(collapsed);\n }\n private _collapsed = false;\n\n @Output() toggle: EventEmitter<boolean> = new EventEmitter();\n\n @HostListener('click')\n click() {\n this.collapsed = !this.collapsed;\n }\n\n constructor(private renderer: Renderer2, private el: ElementRef) {}\n\n private collapseTarget() {\n this.renderer.addClass(this.target, 'igo-collapsed');\n this.renderer.addClass(this.el.nativeElement, 'collapsed');\n }\n\n private expandTarget() {\n this.renderer.removeClass(this.target, 'igo-collapsed');\n this.renderer.removeClass(this.el.nativeElement, 'collapsed');\n }\n}\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'igo-collapsible',\n templateUrl: './collapsible.component.html',\n styleUrls: ['./collapsible.component.scss']\n})\nexport class CollapsibleComponent {\n @Input()\n get title() {\n return this._title;\n }\n set title(value: string) {\n this._title = value;\n }\n private _title = '';\n\n @Input()\n get collapsed() {\n return this._collapsed;\n }\n set collapsed(value: boolean) {\n this._collapsed = value;\n this.toggle.emit(value);\n }\n private _collapsed = false;\n\n @Output() toggle: EventEmitter<boolean> = new EventEmitter();\n}\n","<mat-list-item>\n <mat-icon\n svgIcon=\"chevron-up\" \n class=\"igo-chevron\"\n mat-list-avatar\n igoCollapse\n [target]=\"content\"\n [collapsed]=\"collapsed\"\n (toggle)=\"collapsed = $event\">\n </mat-icon>\n <h4 matLine>{{title}}</h4>\n</mat-list-item>\n\n<div #content>\n <ng-content></ng-content>\n</div>\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule } from '@angular/material/list';\n\nimport { CollapseDirective } from './collapse.directive';\nimport { CollapsibleComponent } from './collapsible.component';\n\n@NgModule({\n imports: [MatIconModule, MatListModule],\n declarations: [CollapsibleComponent, CollapseDirective],\n exports: [CollapsibleComponent, CollapseDirective]\n})\nexport class IgoCollapsibleModule {\n static forRoot(): ModuleWithProviders<IgoCollapsibleModule> {\n return {\n ngModule: IgoCollapsibleModule,\n providers: []\n };\n }\n}\n","import { Component } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'igo-confirm-dialog',\n templateUrl: './confirm-dialog.component.html',\n styleUrls: ['./confirm-dialog.component.scss']\n})\nexport class ConfirmDialogComponent {\n public confirmMessage: string;\n\n constructor(public dialogRef: MatDialogRef<ConfirmDialogComponent>) {}\n}\n","<h2 mat-dialog-title class=\"mat-typography\">{{'igo.common.confirmDialog.title' | translate}}</h2>\n<div mat-dialog-content class=\"mat-typography\">{{confirmMessage}}</div>\n<div mat-dialog-actions>\n <button mat-button color=\"primary\" (click)=\"dialogRef.close(true)\">{{'igo.common.confirmDialog.confirmBtn' | translate}}</button>\n <button mat-button (click)=\"dialogRef.close(false)\">{{'igo.common.confirmDialog.cancelBtn' | translate}}</button>\n</div>\n","import { Injectable } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\n\nimport { Observable } from 'rxjs';\n\nimport { ConfirmDialogComponent } from './confirm-dialog.component';\n\n@Injectable()\nexport class ConfirmDialogService {\n constructor(private dialog: MatDialog) {}\n\n public open(message: string): Observable<any> {\n const dialogRef = this.dialog.open(ConfirmDialogComponent, {\n disableClose: false\n });\n dialogRef.componentInstance.confirmMessage = message;\n\n return dialogRef.afterClosed();\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\n\nimport { IgoLanguageModule } from '@igo2/core';\n\nimport { ConfirmDialogComponent } from './confirm-dialog.component';\nimport { ConfirmDialogService } from './confirm-dialog.service';\n\n@NgModule({\n imports: [MatButtonModule, MatDialogModule, IgoLanguageModule],\n declarations: [ConfirmDialogComponent],\n exports: [ConfirmDialogComponent],\n providers: [ConfirmDialogService]\n})\nexport class IgoConfirmDialogModule {\n static forRoot(): ModuleWithProviders<IgoConfirmDialogModule> {\n return {\n ngModule: IgoConfirmDialogModule,\n providers: []\n };\n }\n}\n","import {\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n Output,\n ViewContainerRef\n} from '@angular/core';\nimport type { TemplateRef } from '@angular/core';\n\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { fromEvent, Subscription } from 'rxjs';\nimport { filter, take } from 'rxjs/operators';\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\n\n@Directive({\n selector: '[igoContextMenu]'\n})\nexport class ContextMenuDirective {\n private overlayRef: OverlayRef | null;\n private sub: Subscription;\n\n @Input('igoContextMenu') menuContext: TemplateRef<any>;\n @Output() menuPosition = new EventEmitter<{ x: number; y: number }>();\n\n constructor(\n public overlay: Overlay,\n public viewContainerRef: ViewContainerRef,\n private elementRef: ElementRef\n ) {}\n\n @HostListener('longpress', ['$event'])\n @HostListener('contextmenu', ['$event'])\n public onContextMenu(e: MouseEvent | TouchEvent): void {\n let x;\n let y;\n if (e instanceof TouchEvent) {\n x = e.touches[0].pageX;\n y = e.touches[0].pageY;\n } else if (e instanceof MouseEvent) {\n x = e.x;\n y = e.y;\n }\n if (!x || !y) {\n return;\n }\n\n this.close();\n e.preventDefault();\n this.menuPosition.emit({ x, y });\n this.overlayRef = null;\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo({ x, y })\n .withPositions([\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top'\n }\n ]);\n this.overlayRef = this.overlay.create({\n positionStrategy,\n scrollStrategy: this.overlay.scrollStrategies.close()\n });\n this.overlayRef.attach(\n new TemplatePortal(this.menuContext, this.viewContainerRef, {\n $implicit: undefined\n })\n );\n\n this.sub = fromEvent<MouseEvent>(document, 'click')\n .pipe(\n filter(event => {\n const clickTarget = event.target as HTMLElement;\n this.close();\n return (\n !!this.overlayRef &&\n !this.overlayRef.overlayElement.contains(clickTarget)\n );\n }),\n take(1)\n )\n .subscribe(() => this.close());\n\n this.sub = fromEvent<MouseEvent>(document, 'contextmenu')\n .pipe(\n filter(event => {\n const clickTarget = event.target as HTMLElement;\n if (\n clickTarget &&\n !this.elementRef.nativeElement.contains(clickTarget) &&\n !this.overlayRef.overlayElement.contains(clickTarget)\n ) {\n return true;\n } else {\n event.preventDefault();\n }\n }),\n take(1)\n )\n .subscribe(() => this.close());\n }\n\n close() {\n if (this.overlayRef) {\n this.overlayRef.dispose();\n this.overlayRef = null;\n }\n if (this.sub) {\n this.sub.unsubscribe();\n }\n }\n}\n","import { Directive, HostListener, Output, EventEmitter, Input } from '@angular/core';\nimport { userAgent } from '@igo2/utils';\n\n\n/**\n * IgoLongPress trigger longpress event after a define duration.\n * This directive exist to patch the unavailable contextmenu event on iOS.\n * @param touchDuration touch duration in ms, default value is 400ms\n * @param iOSOnly define if longpress is triggered only for iOS, default value = true\n */\n@Directive({\n selector: '[igoLongPress]'\n})\nexport class LongPressDirective {\n private touchTimeout: any;\n @Input() touchDuration: number = 400;\n @Input() onlyIOS: boolean = true;\n @Output() longpress = new EventEmitter();\n\n constructor() { }\n\n\n @HostListener('touchstart', ['$event'])\n public touchstart(e: TouchEvent) {\n this.touchTimeout = setTimeout(() => {\n if (this.onlyIOS) {\n if (userAgent.getOSName() === 'iOS') {\n this.longpress.emit(e);\n }\n } else {\n this.longpress.emit(e);\n }\n }, this.touchDuration);\n }\n @HostListener('touchmove')\n @HostListener('touchcancel')\n @HostListener('touchend')\n public touchend() {\n this.touchEnd();\n }\n\n\n private touchEnd() {\n clearTimeout(this.touchTimeout);\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { ContextMenuDirective } from './context-menu.directive';\nimport { LongPressDirective } from './long-press.directive';\n\n@NgModule({\n imports: [],\n declarations: [ContextMenuDirective, LongPressDirective],\n exports: [ContextMenuDirective, LongPressDirective]\n})\nexport class IgoContextMenuModule {\n static forRoot(): ModuleWithProviders<IgoContextMenuModule> {\n return {\n ngModule: IgoContextMenuModule,\n providers: []\n };\n }\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'igo-custom-html',\n templateUrl: './custom-html.component.html',\n styleUrls: ['./custom-html.component.scss']\n})\nexport class CustomHtmlComponent {\n @Input()\n get html(): string {\n return this._html;\n }\n set html(value: string) {\n this._html = value;\n }\n private _html = '';\n\n constructor() {}\n}\n","<div class=\"custom-html\" [innerHTML]=\"html | sanitizeHtml\"></div>\r\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nimport { IgoLanguageModule } from '@igo2/core';\n\nimport { CustomHtmlComponent } from './custom-html.component';\nimport { SanitizeHtmlPipe } from './custom-html.pipe';\n\n@NgModule({\n imports: [\n CommonModule,\n MatIconModule,\n MatTooltipModule,\n MatInputModule,\n MatButtonModule,\n IgoLanguageModule\n ],\n exports: [SanitizeHtmlPipe, CustomHtmlComponent],\n declarations: [SanitizeHtmlPipe, CustomHtmlComponent]\n})\nexport class IgoCustomHtmlModule {\n static forRoot(): ModuleWithProviders<IgoCustomHtmlModule> {\n return {\n ngModule: IgoCustomHtmlModule\n };\n }\n}\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { catchError, map } from 'rxjs/operators';\nimport { throwError } from 'rxjs';\n\nimport { DOMOptions, DOMValue } from './dom.interfaces';\nimport { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DOMService {\n\n constructor(private http: HttpClient) {}\n\n async getDom(dom: DOMOptions): Promise<DOMValue[]> {\n const url = dom.url;\n let result: DOMValue[];\n\n await this.http.get<any>(url).pipe(\n map(response => {\n result = response;\n return response;\n }),\n catchError((err: HttpErrorResponse) => {\n return throwError(err);\n })\n ).toPromise();\n\n return result;\n }\n\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { DOMService } from './dom.service';\n\n@NgModule({\n providers: [DOMService]\n})\nexport class IgoDOMModule {\n static forRoot(): ModuleWithProviders<IgoDOMModule> {\n return {\n ngModule: IgoDOMModule,\n providers: [\n DOMService\n ]\n };\n }\n}\n","import {\r\n Directive,\r\n HostListener,\r\n HostBinding,\r\n EventEmitter,\r\n Output,\r\n Input\r\n} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[igoDragAndDrop]'\r\n})\r\nexport class DragAndDropDirective {\r\n\r\n @Input() allowedExtensions: Array<string> = [];\r\n\r\n @Output() protected filesDropped: EventEmitter<File[]> = new EventEmitter();\r\n\r\n @Output() protected filesInvalid: EventEmitter<File[]> = new EventEmitter();\r\n\r\n @HostBinding('style.background') private background = 'inherit';\r\n\r\n @HostListener('dragover', ['$event'])\r\n public onDragOver(evt) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n this.background = '#999';\r\n }\r\n\r\n @HostListener('dragleave', ['$event'])\r\n public onDragLeave(evt) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n this.background = 'inherit';\r\n }\r\n\r\n @HostListener('drop', ['$event'])\r\n public onDrop(evt) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n if (evt.alreadyFired) {\r\n return;\r\n }\r\n evt.alreadyFired = true;\r\n\r\n this.background = 'inherit';\r\n const filesObj = this.validExtensions(evt);\r\n if (filesObj.valid.length) {\r\n this.filesDropped.emit(filesObj.valid);\r\n }\r\n if (filesObj.invalid.length) {\r\n this.filesInvalid.emit(filesObj.invalid);\r\n }\r\n }\r\n\r\n private validExtensions(evt) {\r\n const files = evt.dataTransfer.files;\r\n const filesObj = {\r\n valid: [],\r\n invalid: []\r\n };\r\n if (files.length > 0) {\r\n for (const file of files) {\r\n const ext = file.name.split('.')[file.name.split('.').length - 1];\r\n if (\r\n this.allowedExtensions.length === 0 ||\r\n (\r\n this.allowedExtensions.lastIndexOf(ext) !== -1 &&\r\n file.size !== 0\r\n )\r\n ) {\r\n filesObj.valid.push(file);\r\n } else {\r\n filesObj.invalid.push(file);\r\n }\r\n }\r\n }\r\n\r\n return filesObj;\r\n }\r\n}\r\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { DragAndDropDirective } from './drag-drop.directive';\n\n@NgModule({\n imports: [],\n declarations: [DragAndDropDirective],\n exports: [DragAndDropDirective]\n})\nexport class IgoDrapDropModule {\n static forRoot(): ModuleWithProviders<IgoDrapDropModule> {\n return {\n ngModule: IgoDrapDropModule,\n providers: []\n };\n }\n}\n","import {\n ComponentFactory,\n ComponentRef,\n ViewContainerRef\n} from '@angular/core';\n\nimport { Observable, Subscription } from 'rxjs';\n\n/**\n * This class is used in the DynamicComponentOutlet component. It holds\n * a reference to a component factory and can render that component\n * in a target element on demand. It's also possible to set inputs\n * and to subscribe to outputs.\n */\nexport class DynamicComponent<C> {\n\n /**\n * Component reference\n */\n private componentRef: ComponentRef<C>;\n\n /**\n * Subscriptions to the component's outputs. Those need\n * to be unsubscribed when the component is destroyed.\n */\n private subscriptions: Subscription[] = [];\n\n /**\n * Component target element\n */\n private target: ViewContainerRef;\n\n /**\n * Component inputs\n */\n private inputs: {[key: string]: any} = {};\n\n /**\n * Subscriptions to the component's async inputs\n */\n private inputs$$: {[key: string]: Subscription} = {};\n\n /**\n * Subscribers to the component's outputs\n */\n private subscribers: {[key: string]: (event: any) => void} = {};\n\n constructor(private componentFactory: ComponentFactory<C>) {}\n\n /**\n * Render the component to a target element.\n * Set it's inputs and subscribe to it's outputs.\n * @param target Target element\n */\n setTarget(target: ViewContainerRef) {\n this.target = target;\n this.componentRef = target.createComponent(this.componentFactory);\n this.updateInputs(this.inputs);\n this.updateSubscribers(this.subscribers);\n }\n\n /**\n * Destroy this component. That means, removing from it's target\n * element and unsubscribing to it's outputs.\n */\n destroy() {\n if (this.target !== undefined) {\n this.target.clear();\n }\n if (this.componentRef !== undefined) {\n this.componentRef.destroy();\n this.componentRef = undefined;\n }\n this.unobserveAllInputs();\n this.unsubscribeAll();\n }\n\n /**\n * Update the component inputs. This is an update so any\n * key not defined won't be overwritten.\n */\n updateInputs(inputs: {[key: string]: any}) {\n this.inputs = inputs;\n if (this.componentRef === undefined) {\n return;\n }\n\n const instance = this.componentRef.instance;\n const allowedInputs = this.componentFactory.inputs;\n allowedInputs.forEach((value: {propName: string; templateName: string; }) => {\n const key = value.propName;\n\n this.unobserveInput(key);\n\n const inputValue = inputs[key];\n if (inputs.hasOwnProperty(key)) {\n if (inputValue instanceof Observable) {\n this.observeInput(key, inputValue);\n } else {\n this.setInputValue(instance, key, inputValue);\n }\n }\n });\n\n if (typeof (instance as any).onUpdateInputs === 'function') {\n (instance as any).onUpdateInputs();\n }\n }\n\n /**\n * Set an instance's input value\n * @param instance Component instance\n * @param key Input key\n * @param value Input value\n */\n private setInputValue(instance: C, key: string, value: any) {\n const currentValue = instance[key];\n if (value === currentValue) {\n return;\n }\n\n const prototype = Object.getPrototypeOf(instance);\n const descriptor = Object.getOwnPropertyDescriptor(prototype, key);\n if (descriptor !== undefined && descriptor.set !== undefined) {\n descriptor.set.call(instance, value);\n } else {\n instance[key] = value;\n }\n }\n\n /**\n * Update the component subscribers. This is an update so any\n * key not defined won't be overwritten.\n */\n updateSubscribers(subscribers: {[key: string]: (event: any) => void}) {\n this.subscribers = subscribers;\n if (this.componentRef === undefined) {\n return;\n }\n\n const instance = this.componentRef.instance;\n const allowedSubscribers = this.componentFactory.outputs;\n allowedSubscribers.forEach((value: {propName: string; templateName: string; }) => {\n const key = value.propName;\n if (subscribers.hasOwnProperty(key)) {\n const emitter = instance[key];\n const subscriber = subscribers[key];\n if (Array.isArray(subscriber)) {\n subscriber.forEach((_subscriber) => {\n this.subscriptions.push(emitter.subscribe(_subscriber));\n });\n } else {\n this.subscriptions.push(emitter.subscribe(subscriber));\n }\n }\n });\n }\n\n /**\n * Subscribe to an observable input and update the component's input value\n * accordingly\n * @param key Input key\n * @param observable Observable\n */\n private observeInput(key: string, observable: Observable<any>) {\n this.inputs$$[key] = observable.subscribe((value: any) => {\n const instance = this.componentRef.instance;\n this.setInputValue(instance, key, value);\n\n if (typeof (instance as any).onUpdateInputs === 'function') {\n (instance as any).onUpdateInputs();\n }\n });\n }\n\n /**\n * Unsubscribe to an observable input\n * @param key Input key\n */\n private unobserveInput(key: string) {\n if (this.inputs$$[key] !== undefined) {\n this.inputs$$[key].unsubscribe();\n this.inputs$$[key] = undefined;\n }\n }\n\n /**\n * Unsubscribe to all outputs.\n */\n private unobserveAllInputs() {\n Object.values(this.inputs$$).forEach((s: Subscription | undefined) => {\n if (s !== undefined) {\n s.unsubscribe();\n }\n });\n this.inputs$$ = {};\n }\n\n /**\n * Unsubscribe to all outputs.\n */\n private unsubscribeAll() {\n this.subscriptions.forEach((s: Subscription) => s.unsubscribe());\n this.subscriptions = [];\n }\n\n}\n","import {\n ComponentFactoryResolver,\n Injectable\n} from '@angular/core';\n\nimport { DynamicComponent } from './dynamic-component';\n\n/**\n * Service to creates DynamicComponent instances from base component classes\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DynamicComponentService {\n\n constructor(private resolver: ComponentFactoryResolver) {}\n\n /**\n * Creates a DynamicComponent instance from a base component class\n * @param componentCls The component class\n * @returns DynamicComponent instance\n */\n create(componentCls: any): DynamicComponent<any> {\n const factory = this.resolver.resolveComponentFactory(componentCls as any);\n return new DynamicComponent<typeof componentCls>(factory);\n }\n}\n","import {\n Input,\n ChangeDetectorRef,\n ChangeDetectionStrategy,\n Component,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n ViewContainerRef,\n ViewChild\n} from '@angular/core';\n\nimport { ObjectUtils } from '@igo2/utils';\n\nimport { DynamicComponent } from '../shared/dynamic-component';\nimport { DynamicComponentService } from '../shared/dynamic-component.service';\n\n@Component({\n selector: 'igo-dynamic-outlet',\n templateUrl: 'dynamic-outlet.component.html',\n styleUrls: ['dynamic-outlet.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DynamicOutletComponent implements OnChanges, OnDestroy {\n /**\n * The dynamic component base class or the dynamic component itself\n */\n @Input() component: DynamicComponent<any> | any;\n\n /**\n * The dynamic component inputs\n */\n @Input() inputs: { [key: string]: any } = {};\n\n /**\n * The subscribers to the dynamic component outputs\n */\n @Input() subscribers: { [key: string]: (event: any) => void } = {};\n\n /**\n * The dynamic component\n */\n private dynamicComponent: DynamicComponent<any>;\n\n /**\n * The view element to render the component to\n * @ignore\n */\n @ViewChild('target', { read: ViewContainerRef, static: true })\n private target: ViewContainerRef;\n\n constructor(\n private dynamicComponentService: DynamicComponentService,\n private cdRef: ChangeDetectorRef\n ) {}\n\n /**\n * If the dynamic component changes, create it.\n * If the inputs or subscribers change, update the current component's\n * inputs or subscribers.\n * @internal\n */\n ngOnChanges(changes: SimpleChanges) {\n const component = changes.component;\n const inputs = changes.inputs;\n const subscribers = changes.subscribers;\n const eq = ObjectUtils.objectsAreEquivalent;\n\n if (!component || !component.currentValue) {\n return;\n }\n\n if (component.currentValue !== component.previousValue) {\n this.createComponent(component.currentValue);\n } else {\n const inputsAreEquivalents =\n inputs && eq(inputs.currentValue || {}, inputs.previousValue || {});\n const subscribersAreEquivalents =\n subscribers &&\n eq(subscribers.currentValue || {}, subscribers.previousValue || {});\n\n if (inputsAreEquivalents === false) {\n this.updateInputs();\n }\n\n if (subscribersAreEquivalents === false) {\n this.updateSubscribers();\n }\n }\n this.cdRef.detectChanges();\n }\n\n /**\n * Destroy the dynamic component and all it's subscribers\n * @internal\n */\n ngOnDestroy() {\n if (this.dynamicComponent) {\n this.dynamicComponent.destroy();\n }\n }\n\n /**\n * Create a DynamicComponent out of the component class and render it.\n * @internal\n */\n private createComponent(component: DynamicComponent<any> | any) {\n if (this.dynamicComponent !== undefined) {\n this.dynamicComponent.destroy();\n }\n this.dynamicComponent =\n component instanceof DynamicComponent\n ? component\n : this.dynamicComponentService.create(component);\n this.renderComponent();\n }\n\n /**\n * Create and render the dynamic component. Set it's inputs and subscribers\n * @internal\n */\n private renderComponent() {\n this.updateInputs();\n this.updateSubscribers();\n this.dynamicComponent.setTarget(this.target);\n }\n\n /**\n * Update the dynamic component inputs. This is an update so any\n * key not defined won't be overwritten.\n * @internal\n */\n private updateInputs() {\n this.dynamicComponent.updateInputs(this.inputs);\n }\n\n /**\n * Update the dynamic component subscribers. This is an update so any\n * key not defined won't be overwritten.\n * @internal\n */\n private updateSubscribers() {\n this.dynamicComponent.updateSubscribers(this.subscribers);\n }\n}\n","<ng-template #target></ng-template>\r\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { DynamicOutletComponent } from './dynamic-outlet.component';\n\n/**\n * @ignore\n */\n@NgModule({\n imports: [\n CommonModule\n ],\n exports: [\n DynamicOutletComponent\n ],\n declarations: [\n DynamicOutletComponent\n ]\n})\nexport class IgoDynamicOutletModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { IgoDynamicOutletModule } from './dynamic-outlet/dynamic-outlet.module';\nimport { DynamicComponentService } from './shared/dynamic-component.service';\n\n@NgModule({\n imports: [\n CommonModule,\n IgoDynamicOutletModule\n ],\n exports: [\n IgoDynamicOutletModule\n ],\n providers: [\n DynamicComponentService\n ]\n})\nexport class IgoDynamicComponentModule {}\n","import { Component, OnInit, OnDestroy, Input, ViewChild, ElementRef } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { Media, MediaService } from '@igo2/core';\n\nimport { FlexibleState, FlexibleDirection } from './flexible.type';\n\n@Component({\n selector: 'igo-flexible',\n templateUrl: './flexible.component.html',\n styleUrls: ['./flexible.component.scss']\n})\nexport class FlexibleComponent implements OnInit, OnDestroy {\n static transitionTime = 250;\n\n @ViewChild('flexibleMain', { static: true }) main;\n\n @Input()\n get initial(): string {\n return this._initial;\n }\n set initial(value: string) {\n this._initial = value;\n }\n private _initial = '0';\n\n @Input()\n get collapsed(): string {\n return this._collapsed;\n }\n set collapsed(value: string) {\n this._collapsed = value;\n }\n private _collapsed = '0';\n\n @Input()\n get expanded(): string {\n return this._expanded;\n }\n set expanded(value: string) {\n this._expanded = value;\n }\n private _expanded = '100%';\n\n @Input()\n get initialMobile(): string {\n return this._initialMobile;\n }\n set initialMobile(value: string) {\n this._initialMobile = value;\n }\n private _initialMobile: string = this.expanded;\n\n @Input()\n get collapsedMobile(): string {\n return this._collapsedMobile;\n }\n set collapsedMobile(value: string) {\n this._collapsedMobile = value;\n }\n private _collapsedMobile: string = this.collapsed;\n\n @Input()\n get expandedMobile(): string {\n return this._expandedMobile;\n }\n set expandedMobile(value: string) {\n this._expandedMobile = value;\n }\n private _expandedMobile: string = this.expanded;\n\n @Input()\n get direction(): FlexibleDirection {\n return this._direction;\n }\n set direction(value: FlexibleDirection) {\n this._direction = value;\n }\n private _direction: FlexibleDirection = 'column';\n\n @Input()\n get state(): FlexibleState {\n return this._state;\n }\n set state(value: FlexibleState) {\n const sizes = {\n initial: this.initial,\n collapsed: this.collapsed,\n expanded: this.expanded\n };\n\n if (this.mediaService.isMobile()) {\n Object.assign(sizes, {\n initial: this.initialMobile,\n collapsed: this.collapsedMobile,\n expanded: this.expandedMobile\n });\n }\n\n const size = sizes[value];\n if (size !== undefined) {\n this.setSize(size);\n setTimeout(() => {\n this._state = value;\n }, FlexibleComponent.transitionTime);\n }\n }\n private _state: FlexibleState = 'initial';\n\n private mediaService$$: Subscription;\n\n constructor(private el: ElementRef, private mediaService: MediaService) {}\n\n ngOnInit() {\n this.el.nativeElement.className += this.direction;\n\n // Since this component supports different sizes\n // on mobile, force a redraw when the media changes\n this.mediaService$$ = this.mediaService.media$.subscribe(\n (media: Media) => (this.state = this.state)\n );\n }\n\n ngOnDestroy() {\n if (this.mediaService$$) {\n this.mediaService$$.unsubscribe();\n }\n }\n\n private setSize(size: string) {\n this._state = 'transition';\n\n if (this.direction === 'column') {\n this.main.nativeElement.style.height = size;\n } else if (this.direction === 'row') {\n this.main.nativeElement.style.width = size;\n }\n }\n}\n","<div #flexibleMain class=\"igo-flexible-main {{state}} {{direction}}\">\n <div class=\"igo-container\">\n <ng-content></ng-content>\n </div>\n</div>\n<div class=\"igo-flexible-fill\">\n <div>\n \t<div class=\"igo-container\">\n <ng-content select=\"[igoFlexibleFill]\"></ng-content>\n </div>\n </div>\n</div>\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { FlexibleComponent } from './flexible.component';\n\n@NgModule({\n imports: [],\n declarations: [FlexibleComponent],\n exports: [FlexibleComponent]\n})\nexport class IgoFlexibleModule {\n static forRoot(): ModuleWithProviders<IgoFlexibleModule> {\n return {\n ngModule: IgoFlexibleModule,\n providers: []\n };\n }\n}\n","import { AbstractControl } from '@angular/forms';\n\nimport { Form, FormField, FormFieldGroup } from './form.interfaces';\n\nexport function formControlIsRequired(control: AbstractControl): boolean {\n if (control.validator) {\n const validator = control.validator({} as AbstractControl);\n if (validator && validator.required) {\n return true;\n }\n }\n\n if ((control as any).controls) {\n const requiredControl = Object.keys((control as any).controls).find((key: string) => {\n return formControlIsRequired((control as any).controls[key]);\n });\n return requiredControl !== undefined;\n }\n\n return false;\n}\n\nexport function getDefaultErrorMessages(): {[key: string]: string} {\n return {\n required: 'igo.common.form.errors.required'\n };\n}\n\nexport function getControlErrorMessage(control: AbstractControl, messages: {[key: string]: string}): string {\n const errors = control.errors || {};\n const errorKeys = Object.keys(errors);\n const errorMessages = errorKeys\n .map((key: string) => messages[key])\n .filter((message: string) => message !== undefined);\n return errorMessages.length > 0 ? errorMessages[0] : '';\n}\n\nexport function getAllFormFields(form: Form): FormField[] {\n return form.groups.reduce((acc: FormField[], group: FormFieldGroup) => {\n return acc.concat(group.fields);\n }, [].concat(form.fields));\n}\n\nexport function getFormFieldByName(form: Form, name: string): FormField {\n const fields = getAllFormFields(form);\n return fields.find((field: FormField) => {\n return field.name === name;\n });\n}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n OnChanges,\n SimpleChanges,\n ChangeDetectionStrategy,\n ViewChild,\n ElementRef\n} from '@angular/core';\n\nimport { t } from 'typy';\n\nimport { Form, FormField, FormFieldGroup } from '../shared/form.interfaces';\nimport { getAllFormFields } from '../shared/form.utils';\n\n/**\n * A configurable form\n */\n@Component({\n selector: 'igo-form',\n templateUrl: './form.component.html',\n styleUrls: ['./form.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormComponent implements OnChanges {\n\n /**\n * Form\n */\n @Input() form: Form;\n\n /**\n * Input data\n */\n @Input() formData: { [key: string]: any};\n\n /**\n * Form autocomplete\n */\n @Input() autocomplete: string = 'off';\n\n /**\n * Event emitted when the form is submitted\n */\n @Output() submitForm = new EventEmitter<{[key: string]: any}>();\n\n @ViewChild('buttons', { static: true }) buttons: ElementRef;\n\n get hasButtons(): boolean {\n return this.buttons.nativeElement.children.length !== 0;\n }\n\n constructor() {}\n\n /**\n * Is the entity or the template change, recreate the form or repopulate it.\n * @internal\n */\n ngOnChanges(changes: SimpleChanges) {\n const formData = changes.formData;\n if (formData && formData.currentValue !== formData.previousValue) {\n if (formData.currentValue === undefined) {\n this.clear();\n } else {\n this.setData(formData.currentValue);\n }\n }\n }\n\n /**\n * Transform the form data to a feature and emit an event\n * @param event Form submit event\n * @internal\n */\n onSubmit() {\n this.submitForm.emit(this.getData());\n }\n\n getData(): { [key: string]: any} {\n const data = {};\n getAllFormFields(this.form).forEach((field: FormField) => {\n this.updateDataWithFormField(data, field);\n });\n return data;\n }\n\n private setData(data: {[key: string]: any}) {\n this.form.fields.forEach((field: FormField) => {\n field.control.setValue(t(data, field.name).safeObject);\n });\n\n this.form.groups.forEach((group: FormFieldGroup) => {\n group.fields.forEach((field: FormField) => {\n field.control.setValue(t(data, field.name).safeObject);\n });\n });\n }\n\n private updateDataWithFormField(data: { [key: string]: any}, field: FormField) {\n const control = field.control;\n if (!control.disabled) {\n data[field.name] = control.value;\n }\n }\n\n /**\n * Clear form\n */\n private clear() {\n this.form.control.reset();\n }\n\n}\n","\n<form\n [autocomplete]=\"autocomplete\"\n [formGroup]=\"form.control\"\n (ngSubmit)=\"onSubmit()\">\n <div class=\"igo-form-body\" [ngClass]=\"{'igo-form-body-with-buttons': hasButtons}\">\n <div class=\"igo-form-content\">\n <ng-content></ng-content>\n </div>\n <div #buttons class=\"igo-form-buttons\">\n <ng-content select=\"[formButtons]\"></ng-content>\n </div>\n </div>\n</form>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { FormComponent } from './form.component';\n\n/**\n * @ignore\n */\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule\n ],\n exports: [\n FormComponent,\n FormsModule,\n ReactiveFormsModule\n ],\n declarations: [\n FormComponent\n ]\n})\nexport class IgoFormFormModule {}\n","import { Injectable } from '@angular/core';\nimport { UntypedFormBuilder, Validators, ValidatorFn } from '@angular/forms';\n\nimport {\n Form,\n FormField,\n FormFieldConfig,\n FormFieldGroup,\n FormFieldGroupConfig\n} from './form.interfaces';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FormService {\n\n constructor(private formBuilder: UntypedFormBuilder) {}\n\n form(fields: FormField[], groups: FormFieldGroup[]): Form {\n const control = this.formBuilder.group({});\n fields.forEach((field: FormField) => {\n control.addControl(field.name, field.control);\n });\n groups.forEach((group: FormFieldGroup) => {\n control.addControl(group.name, group.control);\n });\n\n return {fields, groups, control};\n }\n\n group(config: FormFieldGroupConfig, fields: FormField[]): FormFieldGroup {\n const options = config.options || {};\n const control = this.formBuilder.group({});\n fields.forEach((field: FormField) => {\n control.addControl(field.name, field.control);\n });\n\n if (options.validator) {\n const validators = this.getValidators(options.validator); // convert string to actual validator\n control.setValidators(validators);\n }\n\n return Object.assign({}, config, {fields, control}) as FormFieldGroup;\n }\n\n field(config: FormFieldConfig): FormField {\n const options = config.options || {};\n const state = {\n value: '',\n disabled: options.disabled\n };\n const control = this.formBuilder.control(state);\n\n if (options.validator) {\n const validators = this.getValidators(options.validator); // convert string to actual validator\n control.setValidators(validators);\n }\n\n return Object.assign({type: 'text'}, config, {control}) as FormField;\n }\n\n extendFieldConfig(config: FormFieldConfig, partial: Partial<FormFieldConfig>): FormFieldConfig {\n const options = Object.assign({}, config.options || {}, partial.options || {});\n const inputs = Object.assign({}, config.inputs || {}, partial.inputs || {});\n const subscribers = Object.assign({}, config.subscribers || {}, partial.subscribers || {});\n return Object.assign({}, config, {options, inputs, subscribers});\n }\n\n private getValidators(validatorOption: string | string[] | ValidatorFn): ValidatorFn | ValidatorFn[] {\n if (Array.isArray(validatorOption)) {\n return validatorOption.map((validatorStr) => {\n return this.getValidator(validatorStr);\n });\n }\n\n return this.getValidator(validatorOption);\n }\n\n private getValidator(validatorStr: string | ValidatorFn): ValidatorFn {\n if (typeof validatorStr !== 'string') {\n return validatorStr;\n }\n\n // regex pattern to extract arguments from string for e.g applying on \"minLength(8)\" would extract 8\n const re = /^([a-zA-Z]{3,15})\\((.{0,20})\\)$/;\n const match = validatorStr.match(re);\n\n if (!match) {\n return Validators[validatorStr];\n }\n\n const name = match[1];\n const args = match[2];\n return Validators[name](args);\n }\n\n}\n","import { Injectable } from '@angular/core';\n\n/**\n * Service where all available form fields are registered.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class FormFieldService {\n\n static fields: {[key: string]: any} = {};\n\n static register(type: string, component: any) {\n FormFieldService.fields[type] = component;\n }\n\n constructor() {}\n\n /**\n * Return field component by type\n * @param type Field type\n * @returns Field component\n */\n getFieldByType(type: string): any {\n return FormFieldService.fields[type];\n }\n\n}\n","import { FormFieldService } from './form-field.service';\r\n\r\nexport function IgoFormFieldComponent(type: string): (cls: any) => any {\r\n return (compType: any) => {\r\n FormFieldService.register(type, compType);\r\n };\r\n}\r\n","\n\n<ng-container *ngIf=\"field !== undefined\">\n <igo-dynamic-outlet\n [component]=\"getFieldComponent()\"\n [inputs]=\"getFieldInputs()\"\n [subscribers]=\"getFieldSubscribers()\">\n </igo-dynamic-outlet>\n</ng-container>\n","import {\n Component,\n Input,\n ChangeDetectionStrategy\n} from '@angular/core';\n\nimport { FormField, FormFieldInputs, FormFieldOptions } from '../shared/form.interfaces';\nimport { FormFieldService } from '../shared/form-field.service';\nimport { getDefaultErrorMessages } from '../shared';\n\n/**\n * This component renders the proper form input based on\n * the field configuration it receives.\n */\n@Component({\n selector: 'igo-form-field',\n templateUrl: './form-field.component.html',\n styleUrls: ['./form-field.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormFieldComponent {\n\n /**\n * Field configuration\n */\n @Input() field: FormField;\n\n /**\n * Field inputs cache\n */\n private fieldInputs: FormFieldInputs = undefined;\n\n /**\n * Field subscribers cache\n */\n private fieldSubscribers: {[key: string]: ({field: FormField, control: FormControl}) => void } = undefined;\n\n get fieldOptions(): FormFieldOptions {\n return this.field.options || {};\n }\n\n constructor(private formFieldService: FormFieldService) {}\n\n getFieldComponent(): any {\n return this.formFieldService.getFieldByType(this.field.type || 'text');\n }\n\n getFieldInputs(): FormFieldInputs {\n if (this.fieldInputs !== undefined) {\n return this.fieldInputs;\n }\n\n const errors = this.fieldOptions.errors || {};\n this.fieldInputs = Object.assign(\n {\n placeholder: this.field.title,\n disableSwitch: this.fieldOptions.disableSwitch || false\n },\n Object.assign({}, this.field.inputs || {}),\n {\n formControl: this.field.control,\n errors: Object.assign({}, getDefaultErrorMessages(), errors)\n }\n );\n return this.fieldInputs;\n }\n\n getFieldSubscribers(): {[key: string]: ({field: FormField, control: FormControl}) => void } {\n if (this.fieldSubscribers !== undefined) {\n return this.fieldSubscribers;\n }\n\n this.fieldSubscribers = Object.assign({}, this.field.subscribers || {});\n return this.fieldSubscribers;\n }\n}\n","<mat-form-field>\n <mat-select\n [required]=\"required\"\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\">\n <mat-option *ngFor=\"let choice of choices$ | async\" [value]=\"choice.value\">\n {{choice.title}}\n </mat-option>\n </mat-select>\n <mat-icon\n *ngIf=\"disableSwitch === true\"\n class=\"igo-form-disable-switch\"\n [svgIcon]=\"(disabled$ | async) === true ? 'checkbox-blank-outline' : 'checkbox-marked-outline'\"\n (click)=\"onDisableSwitchClick()\"\n matPrefix>\n </mat-icon>\n <mat-error *ngIf=\"formControl.errors\">{{getErrorMessage() | translate}}</mat-error>\n</mat-form-field>\n","import {\n Input,\n Component,\n ChangeDetectionStrategy,\n OnInit\n} from '@angular/core';\nimport type { UntypedFormControl } from '@angular/forms';\n\nimport { BehaviorSubject, } from 'rxjs';\n\nimport { formControlIsRequired, getControlErrorMessage } from '../shared/form.utils';\nimport { FormFieldSelectChoice } from '../shared/form.interfaces';\nimport { IgoFormFieldComponent } from '../shared/form-field-component';\n\n/**\n * This component renders a select field\n */\n@IgoFormFieldComponent('select')\n@Component({\n selector: 'igo-form-field-select',\n templateUrl: './form-field-select.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormFieldSelectComponent implements OnInit {\n\n readonly disabled$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n\n /**\n * Select input choices\n */\n @Input()\n set choices(value: FormFieldSelectChoice[]) { this.choices$.next(value); }\n get choices(): FormFieldSelectChoice[] { return this.choices$.value; }\n readonly choices$: BehaviorSubject<FormFieldSelectChoice[]> = new BehaviorSubject([]);\n\n /**\n * The field's form control\n */\n @Input() formControl: UntypedFormControl;\n\n /**\n * Field placeholder\n */\n @Input() placeholder: string;\n\n /**\n * Field placeholder\n */\n @Input() errors: {[key: string]: string};\n\n /**\n * Wheter a disable switch should be available\n */\n @Input() disableSwitch: boolean = false;\n\n /**\n * Whether the field is required\n */\n get required(): boolean {\n return formControlIsRequired(this.formControl);\n }\n\n ngOnInit() {\n this.disabled$.next(this.formControl.disabled);\n }\n\n /**\n * Get error message\n */\n getErrorMessage(): string {\n return getControlErrorMessage(this.formControl, this.errors);\n }\n\n onDisableSwitchClick() {\n this.toggleDisabled();\n }\n\n private toggleDisabled() {\n const disabled = !this.disabled$.value;\n if (disabled === true) {\n this.formControl.disable();\n } else {\n this.formControl.enable();\n }\n this.disabled$.next(disabled);\n }\n\n}\n","<mat-form-field>\n <input\n matInput\n [required]=\"required\"\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\">\n <mat-icon\n *ngIf=\"disableSwitch === true\"\n class=\"igo-form-disable-switch\"\n [svgIcon]=\"(disabled$ | async) === true ? 'checkbox-blank-outline' : 'checkbox-marked-outline'\"\n (click)=\"onDisableSwitchClick()\"\n matPrefix>\n </mat-icon>\n <mat-error *ngIf=\"formControl.errors\">{{getErrorMessage() | translate}}</mat-error>\n</mat-form-field>\n","import {\n Input,\n Component,\n ChangeDetectionStrategy,\n OnInit\n} from '@angular/core';\nimport type { UntypedFormControl } from '@angular/forms';\n\nimport { BehaviorSubject } from 'rxjs';\n\nimport {\n formControlIsRequired,\n getControlErrorMessage\n} from '../shared/form.utils';\nimport { IgoFormFieldComponent } from '../shared/form-field-component';\n\n/**\n * This component renders a text field\n */\n@IgoFormFieldComponent('text')\n@Component({\n selector: 'igo-form-field-text',\n templateUrl: './form-field-text.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormFieldTextComponent implements OnInit {\n\n disabled$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n\n /**\n * The field's form control\n */\n @Input() formControl: UntypedFormControl;\n\n /**\n * Field placeholder\n */\n @Input() placeholder: string;\n\n /**\n * Field placeholder\n */\n @Input() errors: {[key: string]: string};\n\n /**\n * Wheter a disable switch should be available\n */\n @Input() disableSwitch: boolean = false;\n\n /**\n * Whether the field is required\n */\n get required(): boolean {\n return formControlIsRequired(this.formControl);\n }\n\n ngOnInit() {\n this.disabled$.next(this.formControl.disabled);\n }\n\n /**\n * Get error message\n */\n getErrorMessage(): string {\n return getControlErrorMessage(this.formControl, this.errors);\n }\n\n onDisableSwitchClick() {\n this.toggleDisabled();\n }\n\n private toggleDisabled() {\n const disabled = !this.disabled$.value;\n if (disabled === true) {\n this.formControl.disable();\n } else {\n this.formControl.enable();\n }\n this.disabled$.next(disabled);\n }\n\n}\n","<mat-form-field>\n <textarea\n matInput\n [required]=\"required\"\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\">\n </textarea>\n <mat-icon\n *ngIf=\"disableSwitch === true\"\n class=\"igo-form-disable-switch\"\n [svgIcon]=\"(disabled$ | async) === true ? 'checkbox-blank-outline' : 'checkbox-marked-outline'\"\n (click)=\"onDisableSwitchClick()\"\n matPrefix>\n </mat-icon>\n <mat-error *ngIf=\"formControl.errors\">{{getErrorMessage() | translate}}</mat-error>\n</mat-form-field>\n","import {\n Input,\n Component,\n ChangeDetectionStrategy,\n OnInit\n} from '@angular/core';\nimport type { UntypedFormControl } from '@angular/forms';\n\nimport { BehaviorSubject } from 'rxjs';\n\nimport { formControlIsRequired, getControlErrorMessage } from '../shared/form.utils';\nimport { IgoFormFieldComponent } from '../shared/form-field-component';\n\n/**\n * This component renders a textarea field\n */\n@IgoFormFieldComponent('textarea')\n@Component({\n selector: 'igo-form-field-textarea',\n templateUrl: './form-field-textarea.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormFieldTextareaComponent implements OnInit {\n\n disabled$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n\n /**\n * The field's form control\n */\n @Input() formControl: UntypedFormControl;\n\n /**\n * Field placeholder\n */\n @Input() placeholder: string;\n\n /**\n * Field placeholder\n */\n @Input() errors: {[key: string]: string};\n\n /**\n * Wheter a disable switch should be available\n */\n @Input() disableSwitch: boolean = false;\n\n /**\n * Whether the field is required\n */\n get required(): boolean {\n return formControlIsRequired(this.formControl);\n }\n\n ngOnInit() {\n this.disabled$.next(this.formControl.disabled);\n }\n\n /**\n * Get error message\n */\n getErrorMessage(): string {\n return getControlErrorMessage(this.formControl, this.errors);\n }\n\n onDisableSwitchClick() {\n this.toggleDisabled();\n }\n\n private toggleDisabled() {\n const disabled = !this.disabled$.value;\n if (disabled === true) {\n this.formControl.disable();\n } else {\n this.formControl.enable();\n }\n this.disabled$.next(disabled);\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\n\nimport { IgoLanguageModule } from '@igo2/core';\nimport { IgoDynamicOutletModule } from '../../dynamic-component/dynamic-outlet/dynamic-outlet.module';\n\nimport { FormFieldComponent } from './form-field.component';\nimport { FormFieldSelectComponent } from './form-field-select.component';\nimport { FormFieldTextComponent } from './form-field-text.component';\nimport { FormFieldTextareaComponent } from './form-field-textarea.component';\n\n/**\n * @ignore\n */\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n MatIconModule,\n MatFormFieldModule,\n MatInputModule,\n MatSelectModule,\n IgoLanguageModule,\n IgoDynamicOutletModule\n ],\n exports: [\n FormFieldComponent,\n FormFieldSelectComponent,\n FormFieldTextComponent,\n FormFieldTextareaComponent\n ],\n declarations: [\n FormFieldComponent,\n FormFieldSelectComponent,\n FormFieldTextComponent,\n FormFieldTextareaComponent\n ]\n})\nexport class IgoFormFieldModule {}\n","<div\n *ngIf=\"group && group.fields.length > 0\"\n class=\"igo-form-group-fields\">\n <div\n *ngFor=\"let field of group.fields\"\n class=\"igo-form-field-wrapper\"\n [ngClass]=\"getFieldNgClass(field)\">\n <igo-form-field [field]=\"field\"></igo-form-field>\n </div>\n</div>\n\n<div class=\"igo-form-group-extra-content\">\n <ng-content></ng-content>\n</div>\n\n<mat-error *ngIf=\"formControl.errors\">{{getErrorMessage() | translate}}</mat-error>\n","import {\n Component,\n Input,\n ChangeDetectionStrategy\n} from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\n\nimport { getControlErrorMessage } from '../shared/form.utils';\nimport { FormField, FormFieldGroup } from '../shared/form.interfaces';\n\n/**\n * A configurable form, optionnally bound to an entity\n * (for example in case of un update). Submitting that form\n * emits an event with the form data but no other operation is performed.\n */\n@Component({\n selector: 'igo-form-group',\n templateUrl: './form-group.component.html',\n styleUrls: ['./form-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormGroupComponent {\n\n /**\n * Form field group\n */\n @Input() group: FormFieldGroup;\n\n /**\n * Field placeholder\n */\n @Input() errors: {[key: string]: string};\n\n /**\n * Form group control\n */\n get formControl(): UntypedFormGroup { return this.group.control; }\n\n constructor() {}\n\n /**\n * Return the number of columns a field should occupy.\n * The maximum allowed is 2, even if the field config says more.\n * @param field Field\n * @returns Number of columns\n * @internal\n */\n getFieldColSpan(field: FormField): number {\n let colSpan = 2;\n const options = field.options || {};\n if (options.cols && options.cols > 0) {\n colSpan = Math.min(options.cols, 2);\n }\n\n return colSpan;\n }\n\n /**\n * Return the number of columns a field should occupy.\n * The maximum allowed is 2, even if the field config says more.\n * @param field Field\n * @returns Number of columns\n * @internal\n */\n getFieldNgClass(field: FormField): {[key: string]: boolean} {\n const colspan = this.getFieldColSpan(field);\n return {[`igo-form-field-colspan-${colspan}`]: true};\n }\n\n /**\n * Get error message\n */\n getErrorMessage(): string {\n const options = this.group.options || {};\n return getControlErrorMessage(this.formControl, options.errors || {});\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatFormFieldModule } from '@angular/material/form-field';\n\nimport { IgoLanguageModule } from '@igo2/core';\n\nimport { IgoFormFieldModule } from '../form-field/form-field.module';\nimport { FormGroupComponent } from './form-group.component';\n\n/**\n * @ignore\n */\n@NgModule({\n imports: [\n CommonModule,\n MatFormFieldModule,\n IgoLanguageModule,\n IgoFormFieldModule\n ],\n exports: [\n FormGroupComponent\n ],\n declarations: [\n FormGroupComponent\n ]\n})\nexport class IgoFormGroupModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { IgoFormFormModule } from './form/form.module';\nimport { IgoFormGroupModule } from './form-group/form-group.module';\nimport { IgoFormFieldModule } from './form-field/form-field.module';\nimport { FormService } from './shared/form.service';\nimport { FormFieldService } from './shared/form-field.service';\n\n/**\n * @ignore\n */\n@NgModule({\n imports: [\n CommonModule,\n IgoFormGroupModule,\n IgoFormFieldModule\n ],\n exports: [\n IgoFormFormModule,\n IgoFormGroupModule,\n IgoFormFieldModule\n ],\n declarations: [],\n providers: [\n FormService,\n FormFieldService\n ]\n})\nexport class IgoFormModule {}\n","import { Component, EventEmitter, Output } from '@angular/core';\n\n@Component({\n selector: 'igo-home-button',\n templateUrl: './home-button.component.html',\n styleUrls: ['./home-button.component.scss']\n})\nexport class HomeButtonComponent {\n\n @Output() unselectButton = new EventEmitter<any>();\n\n constructor() {}\n\n onUnselectButtonClick() {\n this.unselectButton.emit();\n }\n}\n","<button\n id=\"homeButton\"\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.context.sidenav.mainMenu' | translate\"\n (click)=\"onUnselectButtonClick()\">\n <mat-icon svgIcon=\"home\"></mat-icon>\n</button>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IgoLanguageModule } from '@igo2/core';\n\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nimport { HomeButtonComponent } from './home-button.component';\n\n/**\n * @ignore\n */\n@NgModule({\n imports: [\n CommonModule,\n MatIconModule,\n MatButtonModule,\n MatTooltipModule,\n IgoLanguageModule\n ],\n exports: [HomeButtonComponent],\n declarations: [HomeButtonComponent],\n providers: []\n})\nexport class IgoHomeButtonModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { MatSelectModule } from '@angular/material/select';\n\nimport { EntitySelectorComponent } from './entity-selector.component';\n\n/**\n * @ignore\n */\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n MatSelectModule\n ],\n exports: [EntitySelectorComponent],\n declarations: [EntitySelectorComponent]\n})\nexport class IgoEntitySelectorModule {}\n","import { Directive, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[igoStopDropPropagation]'\n})\nexport class StopDropPropagationDirective {\n @HostListener('drop', ['$event'])\n public onDrop(event: any): void {\n event.preventDefault();\n event.stopPropagation();\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { StopDropPropagationDirective } from './stop-drop-propagation.directive';\nimport { StopPropagationDirective } from './stop-propagation.directive';\n\n@NgModule({\n imports: [],\n declarations: [StopDropPropagationDirective, StopPropagationDirective],\n exports: [StopDropPropagationDirective, StopPropagationDirective]\n})\nexport class IgoStopPropagationModule {\n static forRoot(): ModuleWithProviders<IgoStopPropagationModule> {\n return {\n ngModule: IgoStopPropagationModule,\n providers: []\n };\n }\n}\n","import { NgModule } from '@angular/core';\nimport { EntityTablePaginatorComponent } from './entity-table-paginator.component';\nimport { MatPaginatorModule } from '@angular/material/paginator';\n\n/**\n * @ignore\n */\n@NgModule({\n imports: [\n MatPaginatorModule,\n ],\n exports: [\n EntityTablePaginatorComponent\n ],\n declarations: [\n EntityTablePaginatorComponent,\n ]\n})\nexport class IgoEntityTablePaginatorModule {}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { ImageErrorDirective } from './image-error.directive';\nimport { SecureImagePipe } from './secure-image.pipe';\n\n@NgModule({\n imports: [],\n declarations: [SecureImagePipe, ImageErrorDirective],\n exports: [SecureImagePipe, ImageErrorDirective]\n})\nexport class IgoImageModule {\n static forRoot(): ModuleWithProviders<IgoImageModule> {\n return {\n ngModule: IgoImageModule,\n providers: []\n };\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\n\nimport { IgoStopPropagationModule } from '../../stop-propagation/stop-propagation.module';\nimport { IgoCustomHtmlModule } from '../../custom-html/custom-html.module';\nimport { EntityTableRowDirective } from './entity-table-row.directive';\nimport { EntityTableComponent } from './entity-table.component';\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { IgoEntityTablePaginatorModule } from '../entity-table-paginator/entity-table-paginator.module';\nimport { IgoImageModule } from '../../image/image.module';\nimport { IgoLanguageModule } from '@igo2/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatSelectModule } from '@angular/material/select';\n\n/**\n * @ignore\n */\n@NgModule({\n imports: [\n CommonModule,\n MatTableModule,\n MatAutocompleteModule,\n MatSortModule,\n MatIconModule,\n MatButtonModule,\n MatCheckboxModule,\n MatPaginatorModule,\n MatSelectModule,\n IgoStopPropagationModule,\n IgoCustomHtmlModule,\n IgoEntityTablePaginatorModule,\n IgoImageModule,\n IgoLanguageModule,\n FormsModule,\n ReactiveFormsModule,\n MatInputModule,\n MatDatepickerModule,\n MatTooltipModule\n ],\n exports: [\n EntityTableComponent\n ],\n declarations: [\n EntityTableComponent,\n EntityTableRowDirective\n ]\n})\nexport class IgoEntityTableModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { IgoEntitySelectorModule } from './entity-selector/entity-selector.module';\nimport { IgoEntityTableModule } from './entity-table/entity-table.module';\nimport { IgoEntityTablePaginatorModule } from './entity-table-paginator/entity-table-paginator.module';\n\n@NgModule({\n imports: [\n CommonModule\n ],\n exports: [\n IgoEntitySelectorModule,\n IgoEntityTableModule,\n IgoEntityTablePaginatorModule\n ],\n declarations: []\n})\nexport class IgoEntityModule {}\n","import { catchError } from 'rxjs/operators';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { Injectable } from '@angular/core';\nimport { InteractiveTourOptions } from './interactive-tour.interface';\nimport { ConfigService } from '@igo2/core';\n\n@Injectable()\nexport class InteractiveTourLoader {\n private jsonURL: string;\n private allToursOptions;\n\n constructor(private http: HttpClient, private configService: ConfigService) {\n this.jsonURL = this.getPathToConfigFile();\n }\n\n public loadConfigTour() {\n this.getJSON()\n .subscribe(\n (data) => {\n this.allToursOptions = data;\n },\n (err) => {\n throw new Error(`Problem with Interactive tour configuration file: interactiveTour.json not find. Check if the file and is path is set correctly.`);\n }\n );\n }\n\n public getPathToConfigFile(): string {\n return (\n this.configService.getConfig('interactiveTour.pathToConfigFile') ||\n './config/interactiveTour.json'\n );\n }\n\n public getJSON(): Observable<any> {\n return this.http.get(this.jsonURL).pipe(\n catchError((e) => {\n e.error.caught = true;\n throw e;\n })\n );\n }\n\n public getTourOptionData(toolName): InteractiveTourOptions {\n if (this.allToursOptions === undefined) {\n return undefined;\n }\n let nameInConfigFile = toolName;\n nameInConfigFile = nameInConfigFile.replace(/\\s/g, '');\n return this.allToursOptions[nameInConfigFile];\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ShepherdService } from 'angular-shepherd';\n\nimport { ConfigService, MediaService, LanguageService } from '@igo2/core';\nimport { InteractiveTourLoader } from './interactive-tour.loader';\nimport {\n InteractiveTourOptions,\n InteractiveTourStep,\n InteractiveTourAction\n} from './interactive-tour.interface';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class InteractiveTourService {\n private previousStep: InteractiveTourStep;\n private nextIndex = 1;\n\n constructor(\n private configService: ConfigService,\n private mediaService: MediaService,\n private languageService: LanguageService,\n private interactiveTourLoader: InteractiveTourLoader,\n private shepherdService: ShepherdService\n ) {\n if (this.isAppHaveTour()) {\n this.interactiveTourLoader.loadConfigTour();\n }\n }\n\n public isAppHaveTour() {\n const haveTour = this.configService.getConfig('interactiveTour.activateInteractiveTour');\n if (haveTour === undefined) {\n return true;\n } else {\n return haveTour;\n }\n }\n\n public isToolHaveTourConfig(toolName: string): boolean {\n const checkTourActiveOptions = this.interactiveTourLoader.getTourOptionData(\n toolName\n );\n if (checkTourActiveOptions === undefined) {\n return false;\n } else {\n return true;\n }\n }\n\n public disabledTourButton(toolName: string): boolean {\n const stepConfig: InteractiveTourOptions = this.interactiveTourLoader.getTourOptionData(\n toolName\n );\n\n if (stepConfig?.conditions) {\n for (const condition of stepConfig?.conditions) {\n if (document.querySelector(condition) === null) {\n return true;\n }\n }\n }\n return false;\n }\n\n public isMobile(): boolean {\n return this.mediaService.isMobile();\n }\n\n public isTourDisplayInMobile(): boolean {\n const showInMobile = this.configService.getConfig(\n 'interactiveTour.tourInMobile'\n );\n if (showInMobile === undefined) {\n return true;\n }\n return this.configService.getConfig('interactiveTour.tourInMobile');\n }\n\n private getButtons(buttonKind?: 'first' | 'last' | 'noBackButton') {\n if (buttonKind === 'noBackButton') {\n return [\n {\n classes: 'shepherd-button-primary',\n text: this.languageService.translate.instant(\n 'igo.common.interactiveTour.nextButton'\n ),\n type: 'next'\n }\n ];\n }\n if (buttonKind === 'first') {\n return [\n {\n classes: 'shepherd-button-secondary',\n text: this.languageService.translate.instant(\n 'igo.common.interactiveTour.exitButton'\n ),\n type: 'cancel'\n },\n {\n classes: 'shepherd-button-primary',\n text: this.languageService.translate.instant(\n 'igo.common.interactiveTour.nextButton'\n ),\n type: 'next'\n }\n ];\n }\n\n if (buttonKind === 'last') {\n return [\n {\n classes: 'shepherd-button-secondary',\n text: this.languageService.translate.instant(\n 'igo.common.interactiveTour.backButton'\n ),\n type: 'back'\n },\n {\n classes: 'shepherd-button-primary',\n text: this.languageService.translate.instant(\n 'igo.common.interactiveTour.exitButton'\n ),\n type: 'cancel'\n }\n ];\n }\n\n return [\n {\n classes: 'shepherd-button-secondary',\n text: this.languageService.translate.instant(\n 'igo.common.interactiveTour.backButton'\n ),\n type: 'back'\n },\n {\n classes: 'shepherd-button-primary',\n text: this.languageService.translate.instant(\n 'igo.common.interactiveTour.nextButton'\n ),\n type: 'next'\n }\n ];\n }\n\n private getAction(actionName: string) {\n const action = {\n click: 'click'\n };\n return action[actionName.toLowerCase()];\n }\n\n private addProgress() {\n const self = this as any;\n let nbTry = 0;\n const maxTry = 21;\n const checkExist = setInterval(() => {\n if (self.getCurrentStep()) {\n if (self.getCurrentStep().options.attachTo.element && !document.querySelector(self.getCurrentStep().options.attachTo.element)) {\n self.cancel();\n clearInterval(checkExist);\n return;\n } else {\n const currentStepElement = self.getCurrentStep().getElement();\n if (currentStepElement) {\n const shepherdList = currentStepElement.querySelectorAll('.shepherd-content, .shepherd-text');\n shepherdList.forEach(element => {\n element.classList.add('mat-typography');\n });\n }\n const header = currentStepElement\n ? currentStepElement.querySelector('.shepherd-header')\n : undefined;\n\n nbTry++;\n if (header || nbTry > maxTry) {\n clearInterval(checkExist);\n }\n\n if (header) {\n const stepsArray = self.steps;\n const progress = document.createElement('span');\n progress.className = 'shepherd-progress';\n progress.innerText = `${\n stepsArray.indexOf(self.getCurrentStep()) + 1\n }/${stepsArray.length}`;\n header.insertBefore(\n progress,\n currentStepElement.querySelector('.shepherd-cancel-icon')\n );\n }\n }\n }\n }, 100);\n }\n\n private checkNext(index, tour, service) {\n if (tour.getCurrentStep()) {\n if (tour.getCurrentStep().options.attachTo.element && document.querySelector(tour.getCurrentStep().options.attachTo.element)) {\n tour.complete();\n return;\n }\n\n if (index.index === tour.steps.length - 1) {\n tour.complete();\n return;\n }\n\n tour.steps.splice(index.index, 1);\n const nextStep = tour.steps[index.index];\n if (nextStep.options.attachTo.element && !document.querySelector(nextStep.options.attachTo.element)) {\n service.checkNext(index, tour, service);\n } else {\n tour._setupModal();\n tour.show(nextStep.id);\n }\n }\n }\n\n private executeAction(\n step: InteractiveTourStep,\n actionConfig: InteractiveTourAction\n ) {\n if (!actionConfig) {\n return;\n }\n\n if (\n actionConfig.condition &&\n ((actionConfig.condition.charAt(0) === '!' &&\n document.querySelector(actionConfig.condition.slice(1))) ||\n (actionConfig.condition.charAt(0) !== '!' &&\n !document.querySelector(actionConfig.condition)))\n ) {\n return;\n }\n\n const element: HTMLElement = document.querySelector(\n actionConfig.element || step.element\n ) as HTMLElement;\n const action = this.getAction(actionConfig.action);\n if (element && action) {\n element[action]();\n }\n }\n\n private executeActionPromise(\n step: InteractiveTourStep,\n actionConfig: InteractiveTourAction\n ) {\n return new Promise<void>((resolve) => {\n this.executeAction(step, actionConfig);\n if (!actionConfig || !actionConfig.waitFor) {\n resolve();\n return;\n }\n let nbTry = 0;\n const maxTry = actionConfig.maxWait ? actionConfig.maxWait / 100 : 20;\n const checkExist = setInterval(() => {\n nbTry++;\n if (nbTry > maxTry || document.querySelector(actionConfig.waitFor)) {\n clearInterval(checkExist);\n resolve();\n }\n }, 100);\n });\n }\n\n private getShepherdSteps(stepConfig: InteractiveTourOptions) {\n const shepherdSteps = [];\n\n let i = 0;\n for (const step of stepConfig.steps) {\n shepherdSteps.push({\n attachTo: {\n element: step.element,\n on: step.position || stepConfig.position\n },\n popperOptions: {\n modifiers: [{ name: 'offset', options: { offset: [0, 15] } }]\n },\n beforeShowPromise: () => {\n return Promise.all([\n this.executeActionPromise(\n this.previousStep,\n this.previousStep ? this.previousStep.beforeChange : undefined\n ),\n this.executeActionPromise(step, step.beforeShow)\n ]);\n },\n buttons: this.getButtons(\n i === 0\n ? 'first'\n : i + 1 === stepConfig.steps.length\n ? 'last'\n : stepConfig.steps[i].noBackButton\n ? 'noBackButton'\n : undefined\n ),\n classes: step.class,\n highlightClass: step.highlightClass,\n scrollTo: step.scrollToElement || stepConfig.scrollToElement || true,\n canClickTarget: step.disableInteraction\n ? !step.disableInteraction\n : undefined,\n title: this.languageService.translate.instant(\n step.title || stepConfig.title\n ),\n text: [this.languageService.translate.instant(step.text)],\n when: {\n show: () => {\n this.executeAction(step, step.onShow);\n },\n hide: () => {\n this.previousStep = step;\n this.executeAction(step, step.onHide);\n }\n }\n });\n i++;\n }\n\n return shepherdSteps;\n }\n\n public startTour(toolName: string) {\n const stepConfig: InteractiveTourOptions = this.interactiveTourLoader.getTourOptionData(\n toolName\n );\n\n this.shepherdService.defaultStepOptions = {\n classes: stepConfig.class,\n highlightClass: stepConfig.highlightClass,\n canClickTarget: stepConfig.disableInteraction\n ? !stepConfig.disableInteraction\n : true,\n cancelIcon: {\n enabled: true\n }\n };\n\n const shepherdSteps = this.getShepherdSteps(stepConfig);\n\n this.shepherdService.modal = true;\n this.shepherdService.confirmCancel = false;\n this.shepherdService.addSteps(shepherdSteps);\n\n this.shepherdService.tourObject.on('show', this.addProgress);\n this.shepherdService.tourObject.on('cancel', (index) => {\n this.checkNext(index, this.shepherdService.tourObject, this);\n });\n\n this.shepherdService.start();\n }\n}\n","import { EntityRecord, EntityStore } from '../../entity';\nimport { Tool, ToolboxOptions } from './tool.interface';\nimport { BehaviorSubject, Subscription } from 'rxjs';\n\n/**\n * Service where all available tools and their component are registered.\n */\nexport class Toolbox {\n /**\n * Observable of the active tool\n */\n activeTool$: BehaviorSubject<Tool> = new BehaviorSubject(undefined);\n\n /**\n * Ordered list of tool names to display in a toolbar\n */\n toolbar$: BehaviorSubject<string[]> = new BehaviorSubject([]);\n\n /**\n * Observable of the active tool\n */\n private activeTool$$: Subscription;\n\n /**\n * Active tool history. Useful for activating the previous tool.\n */\n private activeToolHistory: string[] = [];\n\n /**\n * Tool store\n */\n private store = new EntityStore<Tool>([], {\n getKey: (tool: Tool) => tool.name\n });\n\n get tools$(): BehaviorSubject<Tool[]> {\n return this.store.entities$;\n }\n\n constructor(private options: ToolboxOptions = {}) {\n this.setToolbar(options.toolbar);\n this.initStore();\n }\n\n /**\n * Destroy the toolbox\n */\n destroy() {\n this.activeTool$$.unsubscribe();\n this.store.destroy();\n }\n\n /**\n * Return a tool\n * @param name Tool name\n * @returns tool Tool\n */\n getTool(name: string): Tool {\n return this.store.get(name);\n }\n\n /**\n * Return all tools\n * @returns Array of tools\n */\n getTools(): Tool[] {\n return this.store.all();\n }\n\n /**\n * Set tool configurations\n * @param tools Tools\n */\n setTools(tools: Tool[]) {\n this.store.load(tools);\n }\n\n /**\n * Get toolbar\n * @returns Toolbar value\n */\n getToolbar(): string[] {\n return this.toolbar$.getValue();\n }\n\n /**\n * Set toolbar\n * @param toolbar A list of tool names\n */\n setToolbar(toolbar: string[]) {\n this.toolbar$.next(toolbar || []);\n }\n\n /**\n * Activate a tool (and deactivate other tools)\n * @param name Tool name\n * @param options Tool options\n */\n activateTool(name: string, options: { [key: string]: any } = {}) {\n const tool = this.getTool(name);\n if (tool === undefined) {\n return;\n }\n\n this.store.state.update(tool, { active: true, options }, true);\n }\n\n /**\n * Activate the previous tool, if any\n */\n activatePreviousTool() {\n if (this.activeToolHistory.length <= 1) {\n this.deactivateTool();\n return;\n }\n const [previous, current] = this.activeToolHistory.splice(-2, 2);\n this.activateTool(previous);\n }\n\n /**\n * Activate the tool below, if any\n */\n /* activateBelowTool() {\n const arrayTools = this.getToolbar();\n const index = arrayTools.findIndex(t => t === this.activeTool$.getValue().name);\n if (arrayTools[index + 1] !== undefined) {\n this.deactivateTool();\n const below = arrayTools[index + 1];\n this.activateTool(below);\n } else {\n this.deactivateTool();\n const below = arrayTools[0];\n this.activateTool(below);\n }\n } */\n\n /**\n * Activate the tool above, if any\n */\n /* activateAboveTool() {\n const arrayTools = this.getToolbar();\n const index = arrayTools.findIndex(t => t === this.activeTool$.getValue().name);\n if (arrayTools[index - 1] !== undefined) {\n this.deactivateTool();\n const above = arrayTools[index - 1];\n this.activateTool(above);\n } else {\n this.deactivateTool();\n const above = arrayTools[arrayTools.length - 1];\n this.activateTool(above);\n }\n } */\n\n /**\n * Deactivate the active tool\n */\n deactivateTool() {\n this.clearActiveToolHistory();\n this.store.state.updateAll({ active: false });\n }\n\n /**\n * Initialize the tool store and start observing the active tool\n */\n private initStore() {\n this.store = new EntityStore<Tool>([], {\n getKey: (entity: Tool) => entity.name\n });\n\n this.activeTool$$ = this.store.stateView\n .firstBy$((record: EntityRecord<Tool>) => record.state.active === true)\n .subscribe((record: EntityRecord<Tool>) => {\n if (record === undefined) {\n this.setActiveTool(undefined);\n return;\n }\n\n const tool = record.entity;\n const options = Object.assign(\n {},\n tool.options || {},\n record.state.options || {}\n );\n this.setActiveTool(Object.assign({}, tool, { options }));\n });\n }\n\n /**\n * Set the active tool and update the tool history\n * @param tool Tool\n */\n private setActiveTool(tool: Tool | undefined) {\n this.activeTool$.next(tool);\n if (tool === undefined) {\n this.clearActiveToolHistory();\n } else {\n this.activeToolHistory = this.activeToolHistory\n .filter((name: string) => name !== tool.name)\n .concat([tool.name]);\n }\n }\n\n /**\n * Clear the tool history\n */\n private clearActiveToolHistory() {\n this.activeToolHistory = [];\n }\n}\n","import { Injectable } from '@angular/core';\r\n\r\nimport { Tool } from './tool.interface';\r\nimport { Toolbox } from './toolbox';\r\n\r\n/**\r\n * Service where runtime tool configurations are registered\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ToolService {\r\n static tools: { [key: string]: Tool } = {};\r\n\r\n /**\r\n * Toolbox that holds main tools\r\n */\r\n public toolbox: Toolbox = new Toolbox();\r\n\r\n static register(tool: Tool) {\r\n ToolService.tools[tool.name] = tool;\r\n }\r\n\r\n constructor() {\r\n this.toolbox.setTools(this.getTools());\r\n }\r\n\r\n /**\r\n * Return a tool\r\n * @param name Tool name\r\n * @returns tool Tool\r\n */\r\n getTool(name: string): Tool {\r\n return ToolService.tools[name];\r\n }\r\n\r\n /**\r\n * Return all tools\r\n * @returns tTols\r\n */\r\n getTools(): Tool[] {\r\n return Object.values(ToolService.tools);\r\n }\r\n}\r\n","<button *ngIf=\"showTourButton\"\n (click) = \"startInteractiveTour()\"\n [ngClass]=\"getClass()\"\n mat-raised-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [disabled]=disabledTourButton>\n <span class=\"interactive-tour-button-title\">{{'igo.common.interactiveTour.buttonTitle' | translate}} {{(discoverTitleInLocale$ | async) | translate}}</span>\n <mat-icon\n svgIcon=\"presentation-play\"\n [matTooltip]=\"disabledTourButton ?\n ('igo.common.interactiveTour.disaledTooltipTourToolButton' | translate) :\n ('igo.common.interactiveTour.tooltipTourToolButton' | translate)\">\n </mat-icon>\n</button>\n","import { Component, ViewEncapsulation, Input } from '@angular/core';\nimport { InteractiveTourService } from './interactive-tour.service';\nimport { ToolService } from '../tool/shared/tool.service';\nimport { Observable, of } from 'rxjs';\n\n@Component({\n selector: 'igo-interactive-tour',\n templateUrl: './interactive-tour.component.html',\n styleUrls: ['./interactive-tour.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class InteractiveTourComponent {\n /**\n * Toolbox that holds main tools\n */\n @Input() tourToStart: string = '';\n @Input() styleButton: string;\n @Input() discoverTitleInLocale$: Observable<string> = of('IGO');\n\n getClass() {\n return {\n 'tour-button-tool-icon': this.styleButton === 'icon',\n 'tour-button-tool': this.styleButton === 'raised'\n };\n }\n\n get toolbox() {\n return this.toolService.toolbox;\n }\n\n getTourToStart() {\n if (this.tourToStart) {\n return this.tourToStart;\n } else {\n return this.activeToolName;\n }\n }\n\n get activeToolName() {\n if (this.toolbox) {\n if (this.isActiveTool) {\n return this.toolbox.activeTool$.getValue().name;\n } else {\n return 'global';\n }\n } else {\n return undefined;\n }\n }\n\n get isActiveTool(): boolean {\n if (this.toolbox) {\n return this.toolbox.activeTool$.getValue() !== undefined;\n } else {\n return undefined;\n }\n }\n\n get isToolHaveTour(): boolean {\n if (this.activeToolName === 'about' && !this.tourToStart) {\n return false;\n }\n return this.interactiveTourService.isToolHaveTourConfig(\n this.getTourToStart()\n );\n }\n\n get showTourButton(): boolean {\n // 2 conditions to show: have Tour on tool in Config file and if we are in mobile displayInMobile= true\n let haveTour: boolean;\n haveTour = this.isToolHaveTour;\n if (haveTour === false) {\n return false;\n }\n\n let inMobileAndShow: boolean;\n if (this.interactiveTourService.isMobile()) {\n inMobileAndShow = this.isTourDisplayInMobile;\n if (inMobileAndShow === false) {\n return false;\n }\n }\n return true;\n }\n\n get isTourDisplayInMobile(): boolean {\n return this.interactiveTourService.isTourDisplayInMobile();\n }\n\n get disabledTourButton(): boolean {\n return this.interactiveTourService.disabledTourButton(this.activeToolName);\n }\n\n constructor(\n private interactiveTourService: InteractiveTourService,\n private toolService: ToolService\n ) {}\n\n startInteractiveTour() {\n const tour = this.getTourToStart();\n if (tour) {\n this.interactiveTourService.startTour(tour);\n } else {\n return;\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\n\nimport { IgoLanguageModule } from '@igo2/core';\nimport { InteractiveTourService } from './interactive-tour.service';\nimport { InteractiveTourComponent } from './interactive-tour.component';\nimport { InteractiveTourLoader } from './interactive-tour.loader';\n\n@NgModule({\n declarations: [InteractiveTourComponent],\n imports: [\n CommonModule,\n MatIconModule,\n MatButtonModule,\n MatTooltipModule,\n IgoLanguageModule\n ],\n providers: [InteractiveTourService, InteractiveTourLoader],\n exports: [InteractiveTourComponent]\n})\nexport class IgoInteractiveTourModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'keyvalue'\n})\nexport class KeyValuePipe implements PipeTransform {\n transform(value: any, args?: any): any {\n const keyValues = [];\n Object.getOwnPropertyNames(value).forEach((key: string) =>\n keyValues.push({ key, value: value[key] })\n );\n\n return keyValues;\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { KeyValuePipe } from './keyvalue.pipe';\n\n@NgModule({\n imports: [],\n declarations: [KeyValuePipe],\n exports: [KeyValuePipe]\n})\nexport class IgoKeyValueModule {\n static forRoot(): ModuleWithProviders<IgoKeyValueModule> {\n return {\n ngModule: IgoKeyValueModule,\n providers: []\n };\n }\n}\n","<h1 mat-dialog-title class=\"mat-typography\">{{ title }}</h1>\n\n<div mat-dialog-content class=\"mat-typography\">\n <ng-container *ngTemplateOutlet=\"loopObject;context:{ obj: data }\"></ng-container>\n\n <ng-template #loopObject let-obj='obj' let-baseKey='baseKey'>\n <ng-container *ngFor=\"let property of obj | keyvalue\">\n <ng-container *ngIf=\"ignoreKeys.indexOf(getKey(baseKey, property.key)) === -1\">\n\n <ng-container *ngIf=\"isObject(property.value); else notObject\">\n <ng-container *ngTemplateOutlet=\"loopObject;context:{ obj: property.value, baseKey: getKey(baseKey, property.key) }\"></ng-container>\n </ng-container>\n\n <ng-template #notObject>\n <p><span><b>{{getKey(baseKey, property.key)}}</b> : </span><span class=\"propertyValue\" [innerHtml]=\"property.value\"></span></p>\n </ng-template>\n\n </ng-container>\n </ng-container>\n </ng-template>\n</div>\n\n<div mat-dialog-actions>\n <button mat-button color=\"primary\"\n (click)=\"dialogRef.close(false)\">\n OK\n </button>\n</div>\n","import { Component } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'igo-json-dialog',\n templateUrl: './json-dialog.component.html'\n})\nexport class JsonDialogComponent {\n public title: string;\n public data: any;\n public ignoreKeys: string[];\n\n constructor(public dialogRef: MatDialogRef<JsonDialogComponent>) {}\n\n isObject(val) {\n return typeof val === 'object' && !Array.isArray(val);\n }\n\n getKey(baseKey, key) {\n return (baseKey ? baseKey + '.' : '') + key;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\n\nimport { Observable } from 'rxjs';\n\nimport { JsonDialogComponent } from './json-dialog.component';\n\n@Injectable()\nexport class JsonDialogService {\n constructor(private dialog: MatDialog) {}\n\n public open(title: any, data, ignoreKeys?: string[]): Observable<any> {\n const dialogRef = this.dialog.open(JsonDialogComponent, {\n disableClose: false\n });\n dialogRef.componentInstance.data = data;\n dialogRef.componentInstance.title = title;\n dialogRef.componentInstance.ignoreKeys = ignoreKeys;\n\n return dialogRef.afterClosed();\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\n\nimport { IgoKeyValueModule } from '../keyvalue/keyvalue.module';\n\nimport { JsonDialogComponent } from './json-dialog.component';\nimport { JsonDialogService } from './json-dialog.service';\n\n@NgModule({\n imports: [CommonModule, MatButtonModule, MatDialogModule, IgoKeyValueModule],\n exports: [JsonDialogComponent],\n declarations: [JsonDialogComponent],\n providers: [JsonDialogService]\n})\nexport class IgoJsonDialogModule {\n static forRoot(): ModuleWithProviders<IgoJsonDialogModule> {\n return {\n ngModule: IgoJsonDialogModule\n };\n }\n}\n","import {\n Directive,\n Input,\n Output,\n ElementRef,\n Renderer2,\n HostListener,\n EventEmitter\n} from '@angular/core';\n\n@Directive({\n selector: '[igoListItem]'\n})\nexport class ListItemDirective {\n\n static focusedCls = 'igo-list-item-focused';\n static selectedCls = 'igo-list-item-selected';\n static disabledCls = 'igo-list-item-disabled';\n\n @Input()\n get color() {\n return this._color;\n }\n set color(value: string) {\n this._color = value;\n }\n private _color = 'primary';\n\n @Input()\n get focused() {\n return this._focused;\n }\n set focused(value: boolean) {\n if (value === this._focused) {\n return;\n }\n if (this.disabled) {\n return;\n }\n\n value ? this.beforeFocus.emit(this) : this.beforeUnfocus.emit(this);\n\n this._focused = value;\n if (this.selected !== true) {\n this.toggleFocusedClass();\n }\n\n value ? this.focus.emit(this) : this.unfocus.emit(this);\n }\n private _focused = false;\n\n @Input()\n get selected() {\n return this._selected;\n }\n set selected(value: boolean) {\n if (value === this._selected) {\n return;\n }\n if (this.disabled) {\n return;\n }\n\n value ? this.beforeSelect.emit(this) : this.beforeUnselect.emit(this);\n\n this._selected = value;\n this._focused = value;\n this.toggleSelectedClass();\n\n value ? this.select.emit(this) : this.unselect.emit(this);\n }\n private _selected = false;\n\n @Input()\n get disabled() {\n return this._disabled;\n }\n set disabled(value: boolean) {\n if (value === this._disabled) {\n return;\n }\n\n if (value === true) {\n this.selected = false;\n }\n\n value ? this.beforeDisable.emit(this) : this.beforeEnable.emit(this);\n\n this._disabled = value;\n this.toggleDisabledClass();\n\n value ? this.disable.emit(this) : this.enable.emit(this);\n }\n private _disabled = false;\n\n @Output() beforeSelect = new EventEmitter<ListItemDirective>();\n @Output() beforeFocus = new EventEmitter<ListItemDirective>();\n @Output() beforeUnselect = new EventEmitter<ListItemDirective>();\n @Output() beforeUnfocus = new EventEmitter<ListItemDirective>();\n @Output() beforeDisable = new EventEmitter<ListItemDirective>();\n @Output() beforeEnable = new EventEmitter<ListItemDirective>();\n @Output() focus = new EventEmitter<ListItemDirective>();\n @Output() unfocus = new EventEmitter<ListItemDirective>();\n @Output() select = new EventEmitter<ListItemDirective>();\n @Output() unselect = new EventEmitter<ListItemDirective>();\n @Output() disable = new EventEmitter<ListItemDirective>();\n @Output() enable = new EventEmitter<ListItemDirective>();\n\n @HostListener('click')\n onClick() {\n this.selected = true;\n }\n\n constructor(public renderer: Renderer2, public el: ElementRef) {}\n\n getOffsetTop(): number {\n const padding = 5;\n\n return this.el.nativeElement.offsetTop - padding;\n }\n\n private toggleFocusedClass() {\n if (this.focused) {\n this.addCls(ListItemDirective.focusedCls);\n } else {\n this.removeCls(ListItemDirective.focusedCls);\n }\n }\n\n private toggleSelectedClass() {\n if (this.selected) {\n this.addCls(ListItemDirective.selectedCls);\n this.removeCls(ListItemDirective.focusedCls);\n } else {\n this.removeCls(ListItemDirective.selectedCls);\n }\n }\n\n private toggleDisabledClass() {\n if (this.disabled) {\n this.addCls(ListItemDirective.disabledCls);\n } else {\n this.removeCls(ListItemDirective.disabledCls);\n }\n }\n\n private addCls(cls: string) {\n this.renderer.addClass(this.el.nativeElement, cls);\n }\n\n private removeCls(cls: string) {\n this.renderer.removeClass(this.el.nativeElement, cls);\n }\n}\n","import {\n Component,\n AfterViewInit,\n OnInit,\n OnDestroy,\n Input,\n ContentChildren,\n HostListener,\n ElementRef\n} from '@angular/core';\nimport type { QueryList } from '@angular/core';\n\nimport { Subscription } from 'rxjs';\n\nimport { ListItemDirective } from './list-item.directive';\n\n@Component({\n selector: 'igo-list',\n templateUrl: './list.component.html',\n styleUrls: ['./list.component.scss']\n})\nexport class ListComponent implements AfterViewInit, OnInit, OnDestroy {\n @Input()\n get navigation() {\n return this._navigation;\n }\n set navigation(value: boolean) {\n this._navigation = value;\n }\n private _navigation = true;\n\n @Input()\n get selection() {\n return this._selection;\n }\n set selection(value: boolean) {\n this._selection = value;\n }\n private _selection = true;\n\n get selectedItem() {\n return this._selectedItem;\n }\n set selectedItem(value: ListItemDirective) {\n this.focusedItem = value;\n this._selectedItem = value;\n }\n private _selectedItem: ListItemDirective;\n\n get focusedItem() {\n return this._focusedItem;\n }\n set focusedItem(value: ListItemDirective) {\n this._focusedItem = value;\n }\n private _focusedItem: ListItemDirective;\n\n private navigationEnabled: boolean;\n private listItems$$: Subscription;\n private subscriptions: Subscription[] = [];\n\n @ContentChildren(ListItemDirective, { descendants: true })\n listItems: QueryList<ListItemDirective>;\n\n @HostListener('document:keydown', ['$event'])\n @HostListener('document:enter', ['$event'])\n handleKeyboardEvent(event: KeyboardEvent) {\n // It would be nice to be able to unsubscribe to the event\n // completely but until ES7 this won't be possible because\n // document events are not observables\n if (this.navigationEnabled) {\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\n event.preventDefault();\n this.navigate(event.key);\n } else if (event.key === 'Enter') {\n this.select(this.focusedItem);\n }\n }\n }\n\n constructor(private el: ElementRef) {}\n\n ngOnInit() {\n this.enableNavigation();\n }\n\n ngAfterViewInit() {\n if (this.listItems.length) {\n this.init();\n }\n\n this.listItems$$ = this.listItems.changes.subscribe(\n (items: ListItemDirective[]) => this.init()\n );\n }\n\n ngOnDestroy() {\n this.listItems$$.unsubscribe();\n }\n\n focus(item?: ListItemDirective) {\n if (!this.selection) {\n return;\n }\n\n this.unfocus();\n\n // We need to make this check because dynamic\n // lists such as in the search results list may fail\n if (item !== undefined) {\n item.focused = true;\n }\n }\n\n unfocus() {\n if (this.focusedItem !== undefined) {\n this.focusedItem.focused = false;\n }\n\n this.focusedItem = undefined;\n }\n\n focusNext() {\n const items = this.listItems.toArray();\n let item;\n const igoList = this.el.nativeElement;\n let disabled = true;\n let index = this.getFocusedIndex();\n if (index === undefined) {\n index = -1;\n }\n\n while (disabled && index < items.length - 1) {\n index += 1;\n item = items[index];\n disabled = item.disabled;\n }\n\n if (item !== undefined) {\n this.focus(item);\n }\n\n if (!items[index + 1]) {\n igoList.scrollTop = igoList.scrollHeight - igoList.clientHeight;\n return;\n }\n\n if (item !== undefined && !this.isScrolledIntoView(item.el.nativeElement)) {\n igoList.scrollTop =\n item.el.nativeElement.offsetTop +\n item.el.nativeElement.children[0].offsetHeight -\n igoList.clientHeight;\n }\n }\n\n focusPrevious() {\n const items = this.listItems.toArray();\n let item: ListItemDirective;\n const igoList = this.el.nativeElement;\n let disabled = true;\n let index = this.getFocusedIndex();\n\n while (disabled && index > 0) {\n index -= 1;\n item = items[index];\n disabled = item.disabled;\n }\n\n if (item !== undefined) {\n this.focus(item);\n }\n\n if (!items[index - 1]) {\n igoList.scrollTop = 0;\n return;\n }\n\n if (item !== undefined && !this.isScrolledIntoView(item.el.nativeElement)) {\n const padding = 3;\n igoList.scrollTop = item.el.nativeElement.offsetTop - padding;\n }\n }\n\n select(item?: ListItemDirective) {\n if (!this.selection) {\n return;\n }\n\n this.unselect();\n\n if (item !== undefined) {\n item.selected = true;\n }\n }\n\n unselect() {\n this.unfocus();\n\n if (this.selectedItem !== undefined) {\n this.selectedItem.selected = false;\n }\n\n this.selectedItem = undefined;\n }\n\n enableNavigation() {\n if (this.navigation) {\n this.navigationEnabled = true;\n }\n }\n\n disableNavigation() {\n this.navigationEnabled = false;\n }\n\n scrollToItem(item: ListItemDirective) {\n this.el.nativeElement.scrollTop = item.getOffsetTop();\n }\n\n isScrolledIntoView(elem) {\n const docViewTop =\n this.el.nativeElement.scrollTop + this.el.nativeElement.offsetTop;\n const docViewBottom = docViewTop + this.el.nativeElement.clientHeight;\n\n const elemTop = elem.offsetTop;\n const elemBottom = elemTop + elem.children[0].offsetHeight;\n return elemBottom <= docViewBottom && elemTop >= docViewTop;\n }\n\n private init() {\n this.subscribe();\n\n this.selectedItem = this.findSelectedItem();\n this.focusedItem = this.findFocusedItem();\n\n this.enableNavigation();\n }\n\n private subscribe() {\n this.unsubscribe();\n\n this.listItems.toArray().forEach(item => {\n this.subscriptions.push(\n item.beforeSelect.subscribe((item2: ListItemDirective) =>\n this.handleItemBeforeSelect(item2)\n )\n );\n\n this.subscriptions.push(\n item.select.subscribe((item2: ListItemDirective) =>\n this.handleItemSelect(item2)\n )\n );\n\n this.subscriptions.push(\n item.beforeFocus.subscribe((item2: ListItemDirective) =>\n this.handleItemBeforeFocus(item2)\n )\n );\n\n this.subscriptions.push(\n item.focus.subscribe((item2: ListItemDirective) =>\n this.handleItemFocus(item2)\n )\n );\n }, this);\n }\n\n private unsubscribe() {\n this.subscriptions.forEach((sub: Subscription) => sub.unsubscribe());\n this.subscriptions = [];\n }\n\n private handleItemBeforeFocus(item: ListItemDirective) {\n if (item !== this.focusedItem) {\n this.unfocus();\n }\n }\n\n private handleItemFocus(item: ListItemDirective) {\n this.focusedItem = item;\n }\n\n private handleItemBeforeSelect(item: ListItemDirective) {\n if (item !== this.focusedItem) {\n this.unselect();\n }\n }\n\n private handleItemSelect(item: ListItemDirective) {\n this.selectedItem = item;\n }\n\n private findSelectedItem() {\n return this.listItems.toArray().find(item => item.selected);\n }\n\n private findFocusedItem() {\n return this.listItems.toArray().find(item => item.focused);\n }\n\n private getFocusedIndex() {\n return this.listItems\n .toArray()\n .findIndex(item => item === this.focusedItem);\n }\n\n private navigate(key: string) {\n switch (key) {\n case 'ArrowUp':\n this.focusPrevious();\n break;\n case 'ArrowDown':\n this.focusNext();\n break;\n default:\n break;\n }\n }\n}\n","<mat-list\n igoClickout\n [ngClass]=\"{'selectable': selection}\"\n (clickout)=\"disableNavigation()\"\n (click)=\"enableNavigation()\">\n <ng-content></ng-content>\n</mat-list>\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule } from '@angular/material/list';\n\nimport { IgoClickoutModule } from '../clickout/clickout.module';\n\nimport { ListItemDirective } from './list-item.directive';\nimport { ListComponent } from './list.component';\n\n@NgModule({\n imports: [CommonModule, MatIconModule, MatListModule, IgoClickoutModule],\n declarations: [ListItemDirective, ListComponent],\n exports: [ListItemDirective, ListComponent]\n})\nexport class IgoListModule {\n static forRoot(): ModuleWithProviders<IgoListModule> {\n return {\n ngModule: IgoListModule,\n providers: []\n };\n }\n}\n","<div *ngIf=\"withHeader\" class=\"igo-panel-header mat-typography\" title=\"\" [ngClass]=\"{'igo-cursor-pointer': cursorPointer === true}\">\n <h3>\n <ng-content select=\"[panelLeftButton]\"></ng-content>\n <div class=\"igo-panel-title\">\n {{ title }}\n <ng-content select=\"[panelHeader]\"></ng-content>\n </div>\n <ng-content select=\"[panelRightButton]\"></ng-content>\n </h3>\n</div>\n<div class=\"igo-panel-content\" title=\"\">\n <ng-content></ng-content>\n</div>\n","import {\n Component,\n Input,\n ChangeDetectionStrategy,\n HostBinding\n} from '@angular/core';\n\n@Component({\n selector: 'igo-panel',\n templateUrl: './panel.component.html',\n styleUrls: ['./panel.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PanelComponent {\n @Input() title: string;\n\n @Input()\n @HostBinding('class.igo-panel-with-header')\n get withHeader(): boolean {\n return this._withHeader;\n }\n set withHeader(value: boolean) {\n this._withHeader = value;\n }\n private _withHeader = true;\n\n @Input() cursorPointer: boolean = false;\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PanelComponent } from './panel.component';\n\n@NgModule({\n imports: [CommonModule],\n exports: [PanelComponent],\n declarations: [PanelComponent]\n})\nexport class IgoPanelModule {}\n","import { Directive, Self, HostListener, Renderer2 } from '@angular/core';\nimport { MatSidenav } from '@angular/material/sidenav';\n\n/**\n * <igoSidenavShim> directive.\n *\n * This directive prevents a material sidenav with mode=\"side\"\n * from focusing an element after it's closed\n */\n@Directive({\n selector: '[igoSidenavShim]'\n})\nexport class SidenavShimDirective {\n private focusedElement: HTMLElement;\n private blurElement: HTMLElement;\n\n @HostListener('open', ['$event'])\n onOpen() {\n this.focusedElement = document.activeElement as HTMLElement;\n }\n\n @HostListener('close-start', ['$event'])\n onCloseStart() {\n const focusedElement = document.activeElement as HTMLElement;\n if (focusedElement !== this.focusedElement) {\n this.blurElement = this.focusedElement;\n } else {\n this.blurElement = undefined;\n }\n }\n\n @HostListener('close', ['$event'])\n onClose() {\n if (this.blurElement) {\n this.renderer.selectRootElement(this.blurElement).blur();\n }\n\n this.blurElement = undefined;\n this.focusedElement = undefined;\n }\n\n constructor(@Self() component: MatSidenav, private renderer: Renderer2) {}\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { SidenavShimDirective } from './sidenav-shim.directive';\n\n@NgModule({\n imports: [],\n declarations: [SidenavShimDirective],\n exports: [SidenavShimDirective]\n})\nexport class IgoSidenavModule {\n static forRoot(): ModuleWithProviders<IgoSidenavModule> {\n return {\n ngModule: IgoSidenavModule,\n providers: []\n };\n }\n}\n","import { Component, Input } from '@angular/core';\n\nimport { BehaviorSubject } from 'rxjs';\n\n@Component({\n selector: 'igo-spinner',\n templateUrl: './spinner.component.html',\n styleUrls: ['./spinner.component.scss']\n})\nexport class SpinnerComponent {\n\n public shown$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n\n @Input()\n set shown(value: boolean) { this.shown$.next(value); }\n get shown(): boolean { return this.shown$.value; }\n\n constructor() {}\n\n show() {\n this.shown = true;\n }\n\n hide() {\n this.shown = false;\n }\n}\n","<div\n [ngClass]=\"{'igo-spinner-container': true, 'igo-spinner-shown': (shown$ | async)}\">\n <div class=\"igo-spinner-background\"></div>\n <mat-progress-spinner diameter=\"40\" mode=\"indeterminate\"></mat-progress-spinner>\n</div>\n","import { Directive, Self, OnInit, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\nimport { ActivityService } from '@igo2/core';\nimport { SpinnerComponent } from './spinner.component';\n\n/**\n * A directive to bind a SpinnerComponent to the activity service.\n * The activity service tracks any HTTP request and this directive\n * will display the spinner it's attached to when the activity counter\n * is greater than 0.\n */\n@Directive({\n selector: '[igoSpinnerActivity]'\n})\nexport class SpinnerActivityDirective implements OnInit, OnDestroy {\n /**\n * Subscription to the activity service counter\n */\n private counter$$: Subscription;\n\n constructor(\n @Self() private spinner: SpinnerComponent,\n private activityService: ActivityService\n ) {}\n\n /**\n * Subscribe to the activity service counter and display the spinner\n * when it's is greater than 0.\n * @internal\n */\n ngOnInit() {\n this.counter$$ = this.activityService.counter$\n .pipe(debounceTime(50))\n .subscribe((count: number) => {\n count > 0 ? this.spinner.show() : this.spinner.hide();\n });\n }\n\n /**\n * Unsubcribe to the activity service counter.\n * @internal\n */\n ngOnDestroy() {\n this.counter$$.unsubscribe();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\n\nimport { SpinnerActivityDirective } from './spinner-activity.directive';\nimport { SpinnerComponent } from './spinner.component';\n\n@NgModule({\n imports: [CommonModule, MatProgressSpinnerModule],\n declarations: [SpinnerActivityDirective, SpinnerComponent],\n exports: [SpinnerActivityDirective, SpinnerComponent]\n})\nexport class IgoSpinnerModule {}\n","import { DataSource } from '@angular/cdk/table';\nimport { MatSort } from '@angular/material/sort';\n\nimport { Observable, BehaviorSubject, merge } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { ObjectUtils } from '@igo2/utils';\n\nimport { TableDatabase, TableModel } from './index';\n\nexport class TableDataSource extends DataSource<any> {\n get filter(): string {\n return this._filterChange.value;\n }\n set filter(filter: string) {\n this._filterChange.next(filter);\n }\n private _filterChange = new BehaviorSubject('');\n\n constructor(\n private _database: TableDatabase,\n private _model: TableModel,\n private _sort: MatSort\n ) {\n super();\n }\n\n // Connect function called by the table to retrieve one stream containing\n // the data to render.\n connect(): Observable<any[]> {\n if (!this._database) {\n return merge([]);\n }\n const displayDataChanges = [\n this._database.dataChange,\n this._filterChange,\n this._sort.sortChange\n ];\n\n return merge(...displayDataChanges).pipe(\n map(() => {\n return this.getFilteredData(this._database.data);\n }),\n map(data => {\n return this.getSortedData(data);\n })\n );\n }\n\n disconnect() {}\n\n getFilteredData(data): any[] {\n if (!this.filter) {\n return data;\n }\n return data.slice().filter((item: any) => {\n const searchStr: string = this._model.columns\n .filter(c => c.filterable)\n .map(c => ObjectUtils.resolve(item, c.name))\n .join(' ')\n .toLowerCase();\n\n return searchStr.indexOf(this.filter.toLowerCase()) !== -1;\n });\n }\n\n getSortedData(data): any[] {\n if (!this._sort.active || this._sort.direction === '') {\n return data;\n }\n\n return data.sort((a, b) => {\n const propertyA: number | string = ObjectUtils.resolve(\n a,\n this._sort.active\n );\n const propertyB: number | string = ObjectUtils.resolve(\n b,\n this._sort.active\n );\n\n return ObjectUtils.naturalCompare(\n propertyB,\n propertyA,\n this._sort.direction\n );\n });\n }\n}\n","export enum TableActionColor {\r\n primary,\r\n accent,\r\n warn\r\n}\r\n","<div class='table-box'>\n <div class='table-header' *ngIf=\"hasFilterInput\">\n <mat-form-field floatPlaceholder='never'>\n <input matInput #filter [placeholder]=\"'igo.common.table.filter' | translate\">\n </mat-form-field>\n </div>\n\n <div class='table-container'>\n <table mat-table #table [dataSource]='dataSource' matSort>\n\n <!-- Checkbox Column -->\n <ng-container matColumnDef=\"selectionCheckbox\">\n <th mat-header-cell *matHeaderCellDef>\n <mat-checkbox (change)=\"$event ? masterToggle() : null\"\n [checked]=\"selection.hasValue() && isAllSelected()\"\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\">\n </mat-checkbox>\n </th>\n <td mat-cell *matCellDef=\"let row\">\n <mat-checkbox (click)=\"$event.stopPropagation()\"\n (change)=\"$event ? selection.toggle(row) : null\"\n [checked]=\"selection.isSelected(row)\">\n </mat-checkbox>\n </td>\n </ng-container>\n\n <ng-container [matColumnDef]='column.name' *ngFor='let column of model.columns'>\n <ng-container *ngIf='column.sortable'>\n <th mat-header-cell *matHeaderCellDef mat-sort-header> {{column.title}} </th>\n </ng-container>\n\n <ng-container *ngIf='!column.sortable'>\n <th mat-header-cell *matHeaderCellDef> {{column.title}} </th>\n </ng-container>\n\n <ng-container *ngIf=\"!column.html; else cellHTML\">\n <td mat-cell *matCellDef='let row' class=\"mat-cell-text\"\n [ngClass]=\"model.cellClassFunc ? model.cellClassFunc(row, column) : {}\">\n {{getValue(row, column.name)}}\n </td>\n </ng-container>\n\n <ng-template #cellHTML>\n <td mat-cell *matCellDef='let row' class=\"mat-cell-text\"\n [ngClass]=\"model.cellClassFunc ? model.cellClassFunc(row, column) : {}\"\n [innerHTML]=\"getValue(row, column.name)\">\n </td>\n </ng-template>\n </ng-container>\n\n <!-- Action Column -->\n <ng-container matColumnDef='action'>\n <th mat-header-cell *matHeaderCellDef></th>\n <td mat-cell *matCellDef='let row'>\n <button *ngFor='let action of model.actions'\n mat-mini-fab\n [color]='getActionColor(action.color)'\n (click)='handleClickAction($event, action, row)'>\n <mat-icon svgIcon=\"{{action.icon}}\"></mat-icon>\n </button>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef='displayedColumns;'></tr>\n <tr mat-row\n *matRowDef='let row; columns: displayedColumns;'\n [ngClass]=\"model.rowClassFunc ? model.rowClassFunc(row) : {}\"\n (click)=\"selection.toggle(row)\">\n </tr>\n\n </table>\n </div>\n\n</div>\n","import {\n Component,\n ElementRef,\n ViewChild,\n Input,\n Output,\n OnChanges,\n OnInit,\n AfterViewInit,\n EventEmitter\n} from '@angular/core';\nimport { MatSort } from '@angular/material/sort';\nimport { SelectionModel } from '@angular/cdk/collections';\n\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\nimport { fromEvent } from 'rxjs';\n\nimport { ObjectUtils } from '@igo2/utils';\n\nimport { TableModel } from './table-model.interface';\nimport { TableDatabase } from './table-database';\nimport { TableDataSource } from './table-datasource';\nimport { TableActionColor } from './table-action-color.enum';\n\n@Component({\n selector: 'igo-table',\n templateUrl: './table.component.html',\n styleUrls: ['./table.component.scss']\n})\nexport class TableComponent implements OnChanges, OnInit, AfterViewInit {\n @Input()\n get database(): TableDatabase {\n return this._database;\n }\n set database(value: TableDatabase) {\n this._database = value;\n }\n private _database: TableDatabase;\n\n @Input()\n get model(): TableModel {\n return this._model;\n }\n set model(value: TableModel) {\n this._model = value;\n }\n private _model: TableModel;\n\n @Input()\n get hasFilterInput(): boolean {\n return this._hasFIlterInput;\n }\n set hasFilterInput(value: boolean) {\n this._hasFIlterInput = value;\n }\n private _hasFIlterInput = true;\n\n public displayedColumns;\n public dataSource: TableDataSource | null;\n public selection = new SelectionModel<any>(true, []);\n\n @Output()\n select = new EventEmitter<{\n added: any[];\n removed: any[];\n source: SelectionModel<any>;\n }>();\n\n @ViewChild('filter') filter: ElementRef;\n @ViewChild(MatSort, { static: true }) sort: MatSort;\n\n ngOnInit() {\n this.dataSource = new TableDataSource(this.database, this.model, this.sort);\n\n if (this.model) {\n this.displayedColumns = this.model.columns\n .filter(c => c.displayed !== false)\n .map(c => c.name);\n\n if (this.model.selectionCheckbox) {\n this.displayedColumns.unshift('selectionCheckbox');\n }\n if (this.model.actions && this.model.actions.length) {\n this.displayedColumns.push('action');\n }\n }\n\n this.selection.changed.subscribe(e => this.select.emit(e));\n }\n\n ngAfterViewInit() {\n if (this.filter) {\n fromEvent(this.filter.nativeElement, 'keyup')\n .pipe(\n debounceTime(150),\n distinctUntilChanged()\n )\n .subscribe(() => {\n if (!this.dataSource) {\n return;\n }\n this.dataSource.filter = this.filter.nativeElement.value;\n });\n }\n }\n\n ngOnChanges(change) {\n if (change.database) {\n this.dataSource = new TableDataSource(\n this.database,\n this.model,\n this.sort\n );\n this.selection.clear();\n }\n }\n\n getActionColor(colorId: number): string {\n return TableActionColor[colorId];\n }\n\n getValue(row, key) {\n return ObjectUtils.resolve(row, key);\n }\n\n /** Whether the number of selected elements matches the total number of rows. */\n isAllSelected() {\n const numSelected = this.selection.selected.length;\n const numRows = this.database.data.length;\n return numSelected === numRows;\n }\n\n /** Selects all rows if they are not all selected; otherwise clear selection. */\n masterToggle() {\n this.isAllSelected()\n ? this.selection.clear()\n : this.database.data.forEach(row => this.selection.select(row));\n }\n\n handleClickAction(event, action, row) {\n event.stopPropagation();\n action.click(row);\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { CdkTableModule } from '@angular/cdk/table';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatTableModule } from '@angular/material/table';\n\nimport { IgoLanguageModule } from '@igo2/core';\n\nimport { TableComponent } from './table.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n CdkTableModule,\n MatIconModule,\n MatButtonModule,\n MatTableModule,\n MatFormFieldModule,\n MatInputModule,\n MatSortModule,\n MatCheckboxModule,\n IgoLanguageModule\n ],\n declarations: [TableComponent],\n exports: [TableComponent]\n})\nexport class IgoTableModule {\n static forRoot(): ModuleWithProviders<IgoTableModule> {\n return {\n ngModule: IgoTableModule,\n providers: []\n };\n }\n}\n","import { EntityStore } from '../../entity';\nimport { Action } from './action.interfaces';\n\n/**\n * The class is a specialized version of an EntityStore that stores\n * actions.\n */\nexport class ActionStore extends EntityStore<Action> {\n\n}\n","export enum ToolboxColor {\n White = 'white',\n Grey = 'grey',\n Primary = 'primary'\n}\n","import {\n trigger,\n state,\n style,\n transition,\n animate,\n AnimationTriggerMetadata\n} from '@angular/animations';\n\nexport function toolSlideInOut(\n speed = '300ms',\n type = 'ease-in-out'\n): AnimationTriggerMetadata {\n return trigger('toolSlideInOut', [\n state(\n 'enter',\n style({\n transform: 'translate3d(0, 0, 0)'\n })\n ),\n transition('void => enter', animate(speed + ' ' + type))\n ]);\n}\n","<igo-actionbar\n *ngIf=\"(toolbar$ | async).length > 0\"\n [store]=\"actionStore\"\n [withIcon]=\"true\"\n [withTitle]=\"toolbarWithTitle$ | async\"\n [withTooltip]=\"(toolbarWithTitle$ | async) === false\"\n [scrollActive]=\"toolbarWithTitle$ | async\"\n [horizontal]=\"false\">\n</igo-actionbar>\n\n<div\n *ngIf=\"activeTool$ | async as tool\"\n class=\"igo-tool-container\"\n [ngClass]=\"{'igo-tool-container-with-toolbar': !actionStore.empty, 'igo-tool-container-with-animation': animate}\"\n [@toolSlideInOut]=\"animation$ | async\"\n (@toolSlideInOut.start)=\"onAnimationStart()\"\n (@toolSlideInOut.done)=\"onAnimationComplete()\">\n\n <igo-dynamic-outlet\n [component]=\"tool.component\"\n [inputs]=\"getToolInputs(tool)\">\n </igo-dynamic-outlet>\n\n</div>\n","import {\n Component,\n Input,\n OnDestroy,\n OnInit,\n HostBinding,\n ChangeDetectionStrategy\n} from '@angular/core';\n\nimport { Subscription, BehaviorSubject, Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { Action, ActionStore } from '../../action';\nimport { Tool } from '../shared/tool.interface';\nimport { ToolboxColor } from '../shared/toolbox.enums';\nimport { Toolbox } from '../shared/toolbox';\nimport { toolSlideInOut } from './toolbox.animation';\n\n@Component({\n selector: 'igo-toolbox',\n templateUrl: 'toolbox.component.html',\n styleUrls: ['toolbox.component.scss'],\n animations: [toolSlideInOut()],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ToolboxComponent implements OnInit, OnDestroy {\n /**\n * Observable of the active tool\n */\n activeTool$: BehaviorSubject<Tool> = new BehaviorSubject(undefined);\n\n /**\n * Store of actions that toggle tools\n */\n actionStore: ActionStore = new ActionStore([]);\n\n /**\n * Observable of he anmation state\n */\n animation$: BehaviorSubject<string> = new BehaviorSubject('none');\n\n /**\n * Observable of the toolbar\n */\n toolbar$: BehaviorSubject<string[]> = new BehaviorSubject([]);\n\n /**\n * Whether the Toolbar should display actions' titles\n */\n toolbarWithTitle$: Observable<boolean> = this.activeTool$.pipe(\n map((tool: Tool | undefined) => tool === undefined)\n );\n\n /**\n * Subscription to the active tool\n */\n private activeTool$$: Subscription;\n\n /**\n * Subscription to the toolbar\n */\n private toolbar$$: Subscription;\n\n /**\n * Observable of the ongoing animation. This is useful when\n * multiple animations are triggered at once i.e. when the user clicks\n * too fast on different actions\n */\n private animating$ = new BehaviorSubject<boolean>(false);\n\n /**\n * Subscription to the ongoing animation\n */\n private animating$$: Subscription;\n\n /**\n * Toolbox\n */\n @Input() toolbox: Toolbox;\n\n /**\n * Whether the toolbox should animate the first tool entering\n */\n @Input() animate: boolean = false;\n\n /**\n * Color of Toolbox\n */\n @Input() color: ToolboxColor = ToolboxColor.White;\n\n /**\n * @ignore\n */\n @HostBinding('class.color-grey')\n get classColorGrey() {\n return this.color === ToolboxColor.Grey;\n }\n\n /**\n * @ignore\n */\n @HostBinding('class.color-primary')\n get classColorPrimary() {\n return this.color === ToolboxColor.Primary;\n }\n\n /**\n * Initialize the toolbar and subscribe to the active tool\n * @internal\n */\n ngOnInit() {\n this.toolbar$$ = this.toolbox.toolbar$.subscribe((toolbar: string[]) =>\n this.onToolbarChange(toolbar)\n );\n this.activeTool$$ = this.toolbox.activeTool$.subscribe((tool: Tool) =>\n this.onActiveToolChange(tool)\n );\n }\n\n /**\n * Unsubscribe to the active tool and destroy the action store\n * @internal\n */\n ngOnDestroy() {\n this.toolbar$$.unsubscribe();\n this.activeTool$$.unsubscribe();\n this.actionStore.destroy();\n }\n\n /**\n * Track the starting animation\n * @internal\n */\n onAnimationStart() {\n this.animating$.next(true);\n }\n\n /**\n * Untrack the completed animation\n * @internal\n */\n onAnimationComplete() {\n this.animating$.next(false);\n }\n\n /**\n * Return a tool's inputs\n * @param tool Tool\n * @returns Tool inputs\n * @internal\n */\n getToolInputs(tool: Tool): { [key: string]: any } {\n return tool.options || {};\n }\n\n /**\n * Initialize an action store\n * @param toolbar Toolbar\n */\n private onToolbarChange(toolbar: string[]) {\n this.setToolbar(toolbar);\n }\n\n /**\n * Activate a tool and trigger an animation or not\n * @param tool Tool to activate\n */\n private onActiveToolChange(tool: Tool) {\n if (!this.animate) {\n this.setActiveTool(tool);\n return;\n }\n this.onAnimate(() => this.setActiveTool(tool));\n }\n\n /**\n * Set the active tool\n * @param tool Tool to activate\n */\n private setActiveTool(tool: Tool | undefined) {\n if (tool === undefined) {\n this.actionStore.state.updateAll({ active: false });\n } else {\n const action = this.actionStore.get(tool.name);\n if (action !== undefined) {\n this.actionStore.state.update(action, { active: true }, true);\n }\n }\n\n this.activeTool$.next(tool);\n if (this.animate) {\n this.animation$.next('enter');\n }\n }\n\n /**\n * Initialize the toolbar\n */\n private setToolbar(toolbar: string[]) {\n const actions = toolbar.reduce((acc: Action[], toolName: string) => {\n const tool = this.toolbox.getTool(toolName);\n if (tool === undefined) {\n return acc;\n }\n\n acc.push({\n id: tool.name,\n title: tool.title,\n icon: tool.icon,\n // iconImage: tool.iconImage,\n tooltip: tool.tooltip,\n args: [tool, this.toolbox],\n handler: (_tool: Tool, _toolbox: Toolbox) => {\n _toolbox.activateTool(_tool.name);\n },\n ngClass: (_tool: Tool, _toolbox: Toolbox) => {\n return this.toolbox.activeTool$.pipe(\n map((activeTool: Tool) => {\n let toolActivated = false;\n if (activeTool !== undefined && _tool.name === activeTool.name) {\n toolActivated = true;\n }\n\n let childrenToolActivated = false;\n if (\n activeTool !== undefined &&\n _tool.name === activeTool.parent\n ) {\n childrenToolActivated = true;\n }\n\n return {\n 'tool-activated': toolActivated,\n 'children-tool-activated': childrenToolActivated\n };\n })\n );\n }\n });\n return acc;\n }, []);\n this.actionStore.load(actions);\n this.toolbar$.next(toolbar);\n }\n\n /**\n * Observe the ongoing animation and ignore any incoming animation\n * while one is still ongoing.\n * @param callback Callback to execute when the animation completes\n */\n private onAnimate(callback: () => void) {\n this.unAnimate();\n this.animating$$ = this.animating$.subscribe((animation: boolean) => {\n if (!animation) {\n callback.call(this);\n this.unAnimate();\n }\n });\n }\n\n /**\n * Stop observing an animation when it's complete\n */\n private unAnimate() {\n if (this.animating$$) {\n this.animating$$.unsubscribe();\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { IgoActionModule } from '../../action/action.module';\nimport {\n IgoDynamicComponentModule\n} from '../../dynamic-component/dynamic-component.module';\n\nimport { ToolboxComponent } from './toolbox.component';\n\n/**\n * @ignore\n */\n@NgModule({\n imports: [\n CommonModule,\n IgoActionModule,\n IgoDynamicComponentModule\n ],\n exports: [\n ToolboxComponent\n ],\n declarations: [\n ToolboxComponent\n ]\n})\nexport class IgoToolboxModule {}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { ToolService } from './shared/tool.service';\nimport { IgoToolboxModule } from './toolbox/toolbox.module';\n\n@NgModule({\n imports: [\n CommonModule\n ],\n exports: [\n IgoToolboxModule\n ],\n declarations: []\n})\nexport class IgoToolModule {\n static forRoot(): ModuleWithProviders<IgoToolModule> {\n return {\n ngModule: IgoToolModule,\n providers: [\n ToolService\n ]\n };\n }\n}\n","<igo-dynamic-outlet\n *ngIf=\"widget\"\n [component]=\"widget\"\n [inputs]=\"inputs\"\n [subscribers]=\"getEffectiveSubscribers()\">\n</igo-dynamic-outlet>\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ChangeDetectionStrategy,\n OnDestroy\n} from '@angular/core';\n\nimport { DynamicComponent } from '../../dynamic-component';\n\nimport { WidgetComponent } from '../shared/widget.interfaces';\n\n/**\n * This component dynamically renders a widget. It also subscribes\n * to the widget's 'cancel' and 'complete' events and destroys it\n * when any of those event is emitted.\n */\n@Component({\n selector: 'igo-widget-outlet',\n templateUrl: './widget-outlet.component.html',\n styleUrls: ['./widget-outlet.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class WidgetOutletComponent implements OnDestroy {\n\n /**\n * Widget subscribers to 'cancel' and 'complete'\n * @internal\n */\n private baseSubscribers = {\n cancel: (event: any) => this.onCancel(event),\n complete: (event: any) => this.onComplete(event)\n };\n\n /**\n * Widget\n */\n @Input() widget: DynamicComponent<WidgetComponent>;\n\n /**\n * Widget inputs\n */\n @Input() inputs: {[key: string]: any};\n\n /**\n * Widget subscribers\n */\n @Input() subscribers: {[key: string]: (event: any) => void} = {};\n\n /**\n * Event emitted when the widget emits 'complete'\n */\n @Output() complete = new EventEmitter<any>();\n\n /**\n * Event emitted when the widget emits 'cancel'\n */\n @Output() cancel = new EventEmitter<any>();\n\n constructor() {}\n\n /**\n * Destroy the current widget and all it's inner subscriptions\n * @internal\n */\n ngOnDestroy() {\n this.destroyWidget();\n }\n\n /**\n * Get the effective subscribers. That means a combination of the base\n * subscribers and any subscriber given as input.\n * @returns Combined subscribers\n * @internal\n */\n getEffectiveSubscribers(): {[key: string]: (event: any) => void} {\n const subscribers = Object.assign({}, this.subscribers);\n\n // Base subscribers\n Object.keys(this.baseSubscribers).forEach((key: string) => {\n const subscriber = subscribers[key];\n const baseSubscriber = this.baseSubscribers[key];\n if (subscriber !== undefined) {\n subscribers[key] = (event: any) => {\n subscriber(event);\n baseSubscriber(event);\n };\n } else {\n subscribers[key] = baseSubscriber;\n }\n });\n\n return subscribers;\n }\n\n /**\n * When the widget emits 'cancel', propagate that event and destroy\n * the widget\n */\n private onCancel(event: any) {\n this.cancel.emit(event);\n this.destroyWidget();\n }\n\n /**\n * When the widget emits 'complete', propagate that event and destroy\n * the widget\n */\n private onComplete(event: any) {\n this.complete.emit(event);\n this.destroyWidget();\n }\n\n /**\n * Destroy the current widget\n */\n private destroyWidget() {\n if (this.widget !== undefined) {\n this.widget.destroy();\n }\n this.widget = undefined;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport {\n IgoDynamicComponentModule\n} from '../../dynamic-component/dynamic-component.module';\n\nimport { WidgetOutletComponent } from './widget-outlet.component';\n\n/**\n * @ignore\n */\n@NgModule({\n imports: [\n CommonModule,\n IgoDynamicComponentModule\n ],\n exports: [\n WidgetOutletComponent\n ],\n declarations: [\n WidgetOutletComponent\n ]\n})\nexport class IgoWidgetOutletModule {}\n","import { Injectable } from '@angular/core';\n\nimport { DynamicComponentService } from '../../dynamic-component/shared/dynamic-component.service';\n\nimport { Widget } from './widget';\nimport { WidgetComponent } from './widget.interfaces';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WidgetService {\n\n constructor(private dynamicComponentService: DynamicComponentService) {}\n\n create(widgetCls: any): Widget {\n return this.dynamicComponentService.create(widgetCls as WidgetComponent);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { IgoWidgetOutletModule } from './widget-outlet/widget-outlet.module';\nimport { WidgetService } from './shared/widget.service';\n\n@NgModule({\n imports: [\n CommonModule,\n IgoWidgetOutletModule\n ],\n exports: [\n IgoWidgetOutletModule\n ],\n declarations: [],\n providers: [\n WidgetService\n ]\n})\nexport class IgoWidgetModule {}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ChangeDetectionStrategy\n} from '@angular/core';\n\nimport { getEntityTitle } from '../../entity';\nimport { Workspace } from '../shared/workspace';\nimport { WorkspaceStore } from '../shared/store';\n\n/**\n * Drop list that activates the selected workspace emit an event.\n */\n@Component({\n selector: 'igo-workspace-selector',\n templateUrl: './workspace-selector.component.html',\n styleUrls: ['./workspace-selector.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class WorkspaceSelectorComponent {\n\n /**\n * Store that holds the available workspaces.\n */\n @Input() store: WorkspaceStore;\n\n /**\n * Wheither the selector must be disabled or not.\n */\n @Input() disabled: boolean;\n\n /**\n * Event emitted when an workspace is selected or unselected\n */\n @Output() selectedChange = new EventEmitter<{\n selected: boolean;\n value: Workspace;\n }>();\n\n /**\n * @internal\n */\n getWorkspaceTitle(workspace: Workspace): string {\n return getEntityTitle(workspace);\n }\n\n /**\n * When an workspace is manually selected, select it into the\n * store and emit an event.\n * @internal\n * @param event The selection change event\n */\n onSelectedChange(event: {value: Workspace}) {\n const workspace = event.value;\n this.store.activateWorkspace(workspace);\n this.selectedChange.emit({selected: true, value: workspace});\n }\n\n}\n","<igo-entity-selector\n [store]=\"store\"\n [multi]=\"false\"\n [titleAccessor]=\"getWorkspaceTitle\"\n [disabled]=\"disabled\"\n (selectedChange)=\"onSelectedChange($event)\">\n</igo-entity-selector>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { IgoEntitySelectorModule } from '../../entity/entity-selector/entity-selector.module';\nimport { WorkspaceSelectorComponent } from './workspace-selector.component';\n\n/**\n * @ignore\n */\n@NgModule({\n imports: [\n CommonModule,\n IgoEntitySelectorModule\n ],\n exports: [\n WorkspaceSelectorComponent\n ],\n declarations: [\n WorkspaceSelectorComponent\n ]\n})\nexport class IgoWorkspaceSelectorModule {}\n","<ng-container *ngIf=\"widget$ | async as widget\">\n <igo-widget-outlet\n [widget]=\"widget\"\n [inputs]=\"widgetInputs$ | async\"\n [subscribers]=\"widgetSubscribers$ | async\"\n (cancel)=\"onWidgetCancel(widget)\"\n (complete)=\"onWidgetComplete(widget)\">\n </igo-widget-outlet>\n</ng-container>\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ChangeDetectionStrategy\n} from '@angular/core';\n\nimport { BehaviorSubject } from 'rxjs';\n\nimport { Widget } from '../../widget';\nimport { Workspace } from '../shared/workspace';\n\n/**\n * This component dynamically render an Workspace's active widget.\n * It also deactivate that widget whenever the widget's component\n * emit the 'cancel' or 'complete' event.\n */\n@Component({\n selector: 'igo-workspace-widget-outlet',\n templateUrl: './workspace-widget-outlet.component.html',\n styleUrls: ['./workspace-widget-outlet.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class WorkspaceWidgetOutletComponent {\n\n /**\n * Workspace\n */\n @Input() workspace: Workspace;\n\n /**\n * Event emitted when a widget is deactivate which happens\n * when the widget's component emits the 'cancel' or 'complete' event.\n */\n @Output() deactivateWidget = new EventEmitter<Widget>();\n\n /**\n * Observable of the workspace's active widget\n * @internal\n */\n get widget$(): BehaviorSubject<Widget> { return this.workspace.widget$; }\n\n /**\n * Observable of the workspace's widget inputs\n * @internal\n */\n get widgetInputs$(): BehaviorSubject<{[key: string]: any}> {\n return this.workspace.widgetInputs$;\n }\n\n /**\n * Observable of the workspace's widget inputs\n * @internal\n */\n get widgetSubscribers$(): BehaviorSubject<{[key: string]: (event: any) => void}> {\n return this.workspace.widgetSubscribers$;\n }\n\n constructor() {}\n\n /**\n * When a widget's component emit the 'cancel' event,\n * deactivate that widget and emit the 'deactivateWidget' event.\n * @param widget Widget\n * @internal\n */\n onWidgetCancel(widget: Widget) {\n this.workspace.deactivateWidget();\n this.deactivateWidget.emit(widget);\n }\n\n /**\n * When a widget's component emit the 'cancel' event,\n * deactivate that widget and emit the 'deactivateWidget' event.\n * @param widget Widget\n * @internal\n */\n onWidgetComplete(widget: Widget) {\n this.workspace.deactivateWidget();\n this.deactivateWidget.emit(widget);\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { IgoWidgetOutletModule } from '../../widget/widget-outlet/widget-outlet.module';\n\nimport { WorkspaceWidgetOutletComponent } from './workspace-widget-outlet.component';\n\n/**\n * @ignore\n */\n@NgModule({\n imports: [\n CommonModule,\n IgoWidgetOutletModule\n ],\n exports: [\n WorkspaceWidgetOutletComponent\n ],\n declarations: [\n WorkspaceWidgetOutletComponent\n ]\n})\nexport class IgoWorkspaceWidgetOutletModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { IgoWorkspaceSelectorModule } from './workspace-selector/workspace-selector.module';\nimport { IgoWorkspaceWidgetOutletModule } from './workspace-widget-outlet/workspace-widget-outlet.module';\n\n@NgModule({\n imports: [\n CommonModule\n ],\n exports: [\n IgoWorkspaceSelectorModule,\n IgoWorkspaceWidgetOutletModule\n ],\n declarations: []\n})\nexport class IgoWorkspaceModule {}\n","import { BehaviorSubject } from 'rxjs';\r\n\r\nexport class TableDatabase {\r\n /** Stream that emits whenever the data has been modified. */\r\n dataChange: BehaviorSubject<any[]> = new BehaviorSubject<any[]>([]);\r\n get data(): any[] {\r\n return this.dataChange.value;\r\n }\r\n\r\n constructor(data?) {\r\n if (data) {\r\n this.dataChange.next(data);\r\n }\r\n }\r\n\r\n set(data) {\r\n this.dataChange.next(data);\r\n }\r\n\r\n add(item) {\r\n const copiedData = this.data.slice();\r\n copiedData.push(item);\r\n this.set(copiedData);\r\n }\r\n\r\n remove(item) {\r\n const copiedData = this.data.slice();\r\n const index = copiedData.indexOf(item);\r\n copiedData.splice(index, 1);\r\n this.set(copiedData);\r\n }\r\n}\r\n","import { Tool } from './tool.interface';\nimport { ToolService } from './tool.service';\n\nexport function ToolComponent(tool: Partial<Tool>): (cls: any) => any {\n return (compType: any) => {\n ToolService.register(Object.assign({}, tool, {\n component: compType\n } as Tool));\n };\n}\n","import { DynamicComponent } from '../../dynamic-component/shared/dynamic-component';\r\nimport { WidgetComponent } from './widget.interfaces';\r\n\r\nexport class Widget extends DynamicComponent<WidgetComponent> {}\r\n","import { EntityStore } from '../../entity';\nimport { Workspace } from './workspace';\nimport { BehaviorSubject } from 'rxjs';\n\n/**\n * The class is a specialized version of an EntityStore that stores\n * workspaces.\n */\nexport class WorkspaceStore extends EntityStore<Workspace> {\n\n activeWorkspace$: BehaviorSubject<Workspace> = new BehaviorSubject(undefined);\n\n /**\n * Activate the an workspace workspace and deactivate the one currently active\n * @param workspace Workspace\n */\n activateWorkspace(workspace: Workspace) {\n const active = this.activeWorkspace$.value;\n if (active !== undefined) {\n active.deactivate();\n }\n\n this.deactivateWorkspace();\n if (workspace !== undefined) {\n this.state.update(workspace, {active: true, selected: true}, true);\n this.activeWorkspace$.next(workspace);\n workspace.activate();\n }\n }\n\n /**\n * Deactivate the current workspace\n * @param workspace Workspace\n */\n deactivateWorkspace() {\n const active = this.activeWorkspace$.value;\n if (active !== undefined) {\n active.deactivate();\n this.activeWorkspace$.next(undefined);\n }\n }\n\n}\n","import { Subscription, BehaviorSubject, Subject } from 'rxjs';\n\nimport { ActionStore } from '../../action';\nimport { Widget } from '../../widget';\nimport { EntityStore } from '../../entity';\n\nimport { WorkspaceOptions } from './workspace.interfaces';\n\n/**\n * This class is responsible of managing the relations between\n * entities and the actions that consume them. It also defines an\n * entity table template that may be used by an entity table component.\n */\nexport class Workspace<E extends object = object> {\n\n /**\n * Observable of the selected widget\n */\n readonly widget$ = new BehaviorSubject<Widget>(undefined);\n\n /**\n * Observable of the selected widget's inputs\n */\n readonly widgetInputs$ = new BehaviorSubject<{[key: string]: any}>({});\n\n /**\n * Observable of the selected widget's subscribers\n */\n readonly widgetSubscribers$ = new BehaviorSubject<{[key: string]: (event: any) => void}>({});\n\n /**\n * Subscription to the selected entity\n */\n private entities$$: Subscription;\n\n /**\n * State change that trigger an update of the actions availability\n */\n private change: Subject<void> = new Subject();\n\n /**\n * Subscription to state changes\n */\n private change$: Subscription;\n\n /**\n * Workspace id\n */\n get id(): string { return this.options.id; }\n\n /**\n * Workspace title\n */\n get title(): string { return this.options.title; }\n\n /**\n * Workspace title\n */\n get meta(): {[key: string]: any} { return this.options.meta || {}; }\n\n /**\n * Entities store\n */\n get entityStore(): EntityStore<E> { return this.options.entityStore as EntityStore<E>; }\n\n /**\n * Actions store (some actions activate a widget)\n */\n get actionStore(): ActionStore { return this.options.actionStore; }\n\n /**\n * Selected widget\n */\n get widget(): Widget { return this.widget$.value; }\n\n /**\n * Whether a widget is selected\n */\n get hasWidget(): boolean { return this.widget !== undefined; }\n\n constructor(protected options: WorkspaceOptions) {}\n\n /**\n * Whether this strategy is active\n * @internal\n */\n get active(): boolean { return this.active$.value; }\n readonly active$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n\n /**\n * Activate the workspace. By doing that, the workspace will observe\n * the selected entity (from the store) and update the actions availability.\n * For example, some actions require an entity to be selected.\n */\n activate() {\n if (this.active === true) {\n this.deactivate();\n }\n this.active$.next(true);\n\n if (this.entityStore !== undefined) {\n this.entities$$ = this.entityStore.stateView.all$()\n .subscribe(() => this.onStateChange());\n }\n\n this.change.next();\n }\n\n /**\n * Deactivate the workspace. Unsubcribe to the selected entity.\n */\n deactivate() {\n this.active$.next(false);\n this.deactivateWidget();\n\n if (this.entities$$ !== undefined) {\n this.entities$$.unsubscribe();\n }\n if (this.change$ !== undefined) {\n this.change$.unsubscribe();\n }\n }\n\n /**\n * Activate a widget. In itself, activating a widget doesn't render it but,\n * if an WorkspaceWidgetOutlet component is bound to this workspace, the widget will\n * show up.\n * @param widget Widget\n * @param inputs Inputs the widget will receive\n */\n activateWidget(\n widget: Widget,\n inputs: {[key: string]: any} = {},\n subscribers: {[key: string]: (event: any) => void} = {}\n ) {\n this.widget$.next(widget);\n this.widgetInputs$.next(inputs);\n this.widgetSubscribers$.next(subscribers);\n this.change.next();\n }\n\n /**\n * Deactivate a widget.\n */\n deactivateWidget() {\n this.widget$.next(undefined);\n this.change.next();\n }\n\n /**\n * When the state changes, update the actions availability.\n */\n private onStateChange() {\n this.change.next();\n }\n\n}\n","/*\n * Public API Surface of common\n */\n\nexport * from './lib/action/action.module';\nexport * from './lib/action/actionbar/actionbar.module';\nexport * from './lib/backdrop/backdrop.module';\nexport * from './lib/badge-icon/badge-icon.module';\nexport * from './lib/clickout/clickout.module';\nexport * from './lib/clone/clone.module';\nexport * from './lib/collapsible/collapsible.module';\nexport * from './lib/confirm-dialog/confirm-dialog.module';\nexport * from './lib/context-menu/context-menu.module';\nexport * from './lib/custom-html/custom-html.module';\nexport * from './lib/dom/dom.module';\nexport * from './lib/drag-drop/drag-drop.module';\nexport * from './lib/dynamic-component/dynamic-component.module';\nexport * from './lib/dynamic-component/dynamic-outlet/dynamic-outlet.module';\nexport * from './lib/flexible/flexible.module';\nexport * from './lib/form/form.module';\nexport * from './lib/form/form/form.module';\nexport * from './lib/home-button/home-button.module';\nexport * from './lib/form/form-field/form-field.module';\nexport * from './lib/form/form-group/form-group.module';\nexport * from './lib/entity/entity.module';\nexport * from './lib/entity/entity-selector/entity-selector.module';\nexport * from './lib/entity/entity-table/entity-table.module';\nexport * from './lib/entity/entity-table-paginator/entity-table-paginator.module';\nexport * from './lib/image/image.module';\nexport * from './lib/interactive-tour/interactive-tour.module';\nexport * from './lib/json-dialog/json-dialog.module';\nexport * from './lib/keyvalue/keyvalue.module';\nexport * from './lib/list/list.module';\nexport * from './lib/panel/panel.module';\nexport * from './lib/sidenav/sidenav.module';\nexport * from './lib/spinner/spinner.module';\nexport * from './lib/stop-propagation/stop-propagation.module';\nexport * from './lib/table/table.module';\nexport * from './lib/tool/tool.module';\nexport * from './lib/tool/toolbox/toolbox.module';\nexport * from './lib/widget/widget.module';\nexport * from './lib/widget/widget-outlet/widget-outlet.module';\nexport * from './lib/workspace/workspace.module';\nexport * from './lib/workspace/workspace-selector/workspace-selector.module';\nexport * from './lib/workspace/workspace-widget-outlet/workspace-widget-outlet.module';\n\nexport * from './lib/action';\nexport * from './lib/backdrop';\nexport * from './lib/badge-icon';\nexport * from './lib/clickout';\nexport * from './lib/clone';\nexport * from './lib/collapsible';\nexport * from './lib/confirm-dialog';\nexport * from './lib/context-menu';\nexport * from './lib/custom-html';\nexport * from './lib/drag-drop';\nexport * from './lib/dom';\nexport * from './lib/dynamic-component';\nexport * from './lib/form';\nexport * from './lib/home-button';\nexport * from './lib/entity';\nexport * from './lib/flexible';\nexport * from './lib/image';\nexport * from './lib/interactive-tour';\nexport * from './lib/json-dialog';\nexport * from './lib/keyvalue';\nexport * from './lib/list';\nexport * from './lib/panel';\nexport * from './lib/sidenav';\nexport * from './lib/spinner';\nexport * from './lib/stop-propagation';\nexport * from './lib/table';\nexport * from './lib/tool';\nexport * from './lib/widget';\nexport * from './lib/workspace';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1","i2","i3","_c0","i1.DynamicComponentService","_c2","i1.FormFieldService","i2.InteractiveTourLoader","i1.InteractiveTourService","i2.ToolService","_c1","i1.SpinnerComponent"],"mappings":"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"}