@igo2/common 19.0.0-next.29 → 19.0.0-next.30
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.
- package/action/src/action.theming.scss +5 -1
- package/action/src/actionbar/actionbar-item.theming.scss +1 -13
- package/entity/src/entity-selector/entity-selector.theming.scss +1 -1
- package/entity/src/entity-table/entity-table.theming.scss +1 -17
- package/entity/src/entity.theming.scss +6 -1
- package/fesm2022/igo2-common-action.mjs +4 -4
- package/fesm2022/igo2-common-action.mjs.map +1 -1
- package/fesm2022/igo2-common-confirm-dialog.mjs +2 -2
- package/fesm2022/igo2-common-confirm-dialog.mjs.map +1 -1
- package/fesm2022/igo2-common-custom-html.mjs +2 -2
- package/fesm2022/igo2-common-entity.mjs +2 -2
- package/fesm2022/igo2-common-entity.mjs.map +1 -1
- package/fesm2022/igo2-common-home-button.mjs +2 -2
- package/fesm2022/igo2-common-home-button.mjs.map +1 -1
- package/fesm2022/igo2-common-icon.mjs +2 -2
- package/fesm2022/igo2-common-icon.mjs.map +1 -1
- package/fesm2022/igo2-common-interactive-tour.mjs +6 -12
- package/fesm2022/igo2-common-interactive-tour.mjs.map +1 -1
- package/fesm2022/igo2-common-json-dialog.mjs +2 -2
- package/fesm2022/igo2-common-json-dialog.mjs.map +1 -1
- package/fesm2022/igo2-common-list.mjs +2 -2
- package/fesm2022/igo2-common-list.mjs.map +1 -1
- package/fesm2022/igo2-common-panel.mjs +2 -2
- package/fesm2022/igo2-common-panel.mjs.map +1 -1
- package/fesm2022/igo2-common-resizable-bar.mjs +2 -2
- package/fesm2022/igo2-common-resizable-bar.mjs.map +1 -1
- package/fesm2022/igo2-common-tool.mjs +2 -2
- package/fesm2022/igo2-common-tool.mjs.map +1 -1
- package/interactive-tour/interactive-tour.service.d.ts +0 -1
- package/package.json +4 -4
- package/panel/src/panel.theming.scss +1 -11
- package/src/common.theme.scss +18 -0
- package/src/style/partial/common-utils.scss +2 -0
- package/tool/src/toolbox/toolbox.theming.scss +1 -84
- package/action/src/actionbar/actionbar.theming.scss +0 -22
- package/collapsible/src/collapsible.theming.scss +0 -22
- package/home-button/src/home-button.theming.scss +0 -18
- package/interactive-tour/src/interactive-tour.theming.scss +0 -32
- package/list/src/list.theming.scss +0 -58
- package/resizable-bar/src/resizable-bar.theme.scss +0 -23
- package/src/common-theme.scss +0 -22
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"igo2-common-list.mjs","sources":["../../../packages/common/list/src/list-item.directive.ts","../../../packages/common/list/src/list.component.ts","../../../packages/common/list/src/list.component.html","../../../packages/common/list/src/list.module.ts","../../../packages/common/list/src/public_api.ts","../../../packages/common/list/src/igo2-common-list.ts"],"sourcesContent":["import {\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n Output,\n Renderer2\n} from '@angular/core';\n\n@Directive({\n selector: '[igoListItem]',\n standalone: true\n})\nexport class ListItemDirective {\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(\n public renderer: Renderer2,\n public el: ElementRef\n ) {}\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 { NgClass } from '@angular/common';\nimport {\n AfterViewInit,\n Component,\n ContentChildren,\n ElementRef,\n HostListener,\n Input,\n OnDestroy,\n OnInit\n} from '@angular/core';\nimport type { QueryList } from '@angular/core';\nimport { MatListModule } from '@angular/material/list';\n\nimport { ClickoutDirective } from '@igo2/common/clickout';\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 imports: [MatListModule, ClickoutDirective, NgClass]\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(() => this.init());\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>\n <ng-content></ng-content>\n</mat-list>\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { ListItemDirective } from './list-item.directive';\nimport { ListComponent } from './list.component';\n\n/**\n * @deprecated import the components/directives directly or LIST_DIRECTIVES for the set\n */\n@NgModule({\n imports: [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","import { ListItemDirective } from './list-item.directive';\nimport { ListComponent } from './list.component';\n\nexport * from './list.module';\nexport * from './list.component';\nexport * from './list-item.directive';\n\nexport const LIST_DIRECTIVES = [ListItemDirective, ListComponent] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"igo2-common-list.mjs","sources":["../../../packages/common/list/src/list-item.directive.ts","../../../packages/common/list/src/list.component.ts","../../../packages/common/list/src/list.component.html","../../../packages/common/list/src/list.module.ts","../../../packages/common/list/src/public_api.ts","../../../packages/common/list/src/igo2-common-list.ts"],"sourcesContent":["import {\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n Output,\n Renderer2\n} from '@angular/core';\n\n@Directive({\n selector: '[igoListItem]',\n standalone: true\n})\nexport class ListItemDirective {\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(\n public renderer: Renderer2,\n public el: ElementRef\n ) {}\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 { NgClass } from '@angular/common';\nimport {\n AfterViewInit,\n Component,\n ContentChildren,\n ElementRef,\n HostListener,\n Input,\n OnDestroy,\n OnInit\n} from '@angular/core';\nimport type { QueryList } from '@angular/core';\nimport { MatListModule } from '@angular/material/list';\n\nimport { ClickoutDirective } from '@igo2/common/clickout';\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 imports: [MatListModule, ClickoutDirective, NgClass]\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(() => this.init());\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>\n <ng-content></ng-content>\n</mat-list>\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { ListItemDirective } from './list-item.directive';\nimport { ListComponent } from './list.component';\n\n/**\n * @deprecated import the components/directives directly or LIST_DIRECTIVES for the set\n */\n@NgModule({\n imports: [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","import { ListItemDirective } from './list-item.directive';\nimport { ListComponent } from './list.component';\n\nexport * from './list.module';\nexport * from './list.component';\nexport * from './list-item.directive';\n\nexport const LIST_DIRECTIVES = [ListItemDirective, ListComponent] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -13,11 +13,11 @@ class PanelComponent {
|
|
|
13
13
|
_withHeader = true;
|
|
14
14
|
cursorPointer = false;
|
|
15
15
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
16
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: PanelComponent, isStandalone: true, selector: "igo-panel", inputs: { title: "title", withHeader: "withHeader", cursorPointer: "cursorPointer" }, host: { properties: { "class.igo-panel-with-header": "this.withHeader" } }, ngImport: i0, template: "<div\n *ngIf=\"withHeader\"\n class=\"igo-panel-header\"\n title=\"\"\n [ngClass]=\"{ 'igo-cursor-pointer': cursorPointer === true }\"\n>\n <div class=\"panel-left\">\n <ng-content select=\"[panelLeftButton]\"></ng-content>\n </div>\n <
|
|
16
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: PanelComponent, isStandalone: true, selector: "igo-panel", inputs: { title: "title", withHeader: "withHeader", cursorPointer: "cursorPointer" }, host: { properties: { "class.igo-panel-with-header": "this.withHeader" } }, ngImport: i0, template: "<div\n *ngIf=\"withHeader\"\n class=\"igo-panel-header\"\n title=\"\"\n [ngClass]=\"{ 'igo-cursor-pointer': cursorPointer === true }\"\n>\n <div class=\"panel-left\">\n <ng-content select=\"[panelLeftButton]\"></ng-content>\n </div>\n <h4 class=\"igo-panel-title\">\n {{ title }}\n <ng-content select=\"[panelHeader]\"></ng-content>\n </h4>\n <div class=\"panel-right\">\n <ng-content select=\"[panelRightButton]\"></ng-content>\n </div>\n</div>\n<div class=\"igo-panel-content\" title=\"\">\n <ng-content></ng-content>\n</div>\n", styles: [":host{display:flex;flex-direction:column;overflow:hidden}:host>.igo-panel-header{color:var(--mat-sys-on-primary)!important;background-color:var(--mat-sys-on-primary-container)}:host>.igo-panel-header ::ng-deep mat-icon{fill:var(--mat-sys-on-primary);color:var(--mat-sys-on-primary)}:host .igo-panel-header{display:flex;justify-content:space-between;align-items:center;height:48px;text-align:center}:host .igo-panel-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;margin:0;font-weight:600;flex:1;color:var(--mat-sys-on-primary)!important}:host .igo-panel-content{flex:1;overflow:auto}:host .igo-cursor-pointer{cursor:pointer}:host .panel-left,:host .panel-right{display:flex;min-width:40px}:host .panel-right:not(:empty){padding-right:4px}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
17
17
|
}
|
|
18
18
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PanelComponent, decorators: [{
|
|
19
19
|
type: Component,
|
|
20
|
-
args: [{ selector: 'igo-panel', changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgIf, NgClass], template: "<div\n *ngIf=\"withHeader\"\n class=\"igo-panel-header\"\n title=\"\"\n [ngClass]=\"{ 'igo-cursor-pointer': cursorPointer === true }\"\n>\n <div class=\"panel-left\">\n <ng-content select=\"[panelLeftButton]\"></ng-content>\n </div>\n <
|
|
20
|
+
args: [{ selector: 'igo-panel', changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgIf, NgClass], template: "<div\n *ngIf=\"withHeader\"\n class=\"igo-panel-header\"\n title=\"\"\n [ngClass]=\"{ 'igo-cursor-pointer': cursorPointer === true }\"\n>\n <div class=\"panel-left\">\n <ng-content select=\"[panelLeftButton]\"></ng-content>\n </div>\n <h4 class=\"igo-panel-title\">\n {{ title }}\n <ng-content select=\"[panelHeader]\"></ng-content>\n </h4>\n <div class=\"panel-right\">\n <ng-content select=\"[panelRightButton]\"></ng-content>\n </div>\n</div>\n<div class=\"igo-panel-content\" title=\"\">\n <ng-content></ng-content>\n</div>\n", styles: [":host{display:flex;flex-direction:column;overflow:hidden}:host>.igo-panel-header{color:var(--mat-sys-on-primary)!important;background-color:var(--mat-sys-on-primary-container)}:host>.igo-panel-header ::ng-deep mat-icon{fill:var(--mat-sys-on-primary);color:var(--mat-sys-on-primary)}:host .igo-panel-header{display:flex;justify-content:space-between;align-items:center;height:48px;text-align:center}:host .igo-panel-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;margin:0;font-weight:600;flex:1;color:var(--mat-sys-on-primary)!important}:host .igo-panel-content{flex:1;overflow:auto}:host .igo-cursor-pointer{cursor:pointer}:host .panel-left,:host .panel-right{display:flex;min-width:40px}:host .panel-right:not(:empty){padding-right:4px}\n"] }]
|
|
21
21
|
}], propDecorators: { title: [{
|
|
22
22
|
type: Input
|
|
23
23
|
}], withHeader: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"igo2-common-panel.mjs","sources":["../../../packages/common/panel/src/panel.component.ts","../../../packages/common/panel/src/panel.component.html","../../../packages/common/panel/src/panel.module.ts","../../../packages/common/panel/src/igo2-common-panel.ts"],"sourcesContent":["import { NgClass, NgIf } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Input\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 imports: [NgIf, NgClass]\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 = false;\n}\n","<div\n *ngIf=\"withHeader\"\n class=\"igo-panel-header\"\n title=\"\"\n [ngClass]=\"{ 'igo-cursor-pointer': cursorPointer === true }\"\n>\n <div class=\"panel-left\">\n <ng-content select=\"[panelLeftButton]\"></ng-content>\n </div>\n <
|
|
1
|
+
{"version":3,"file":"igo2-common-panel.mjs","sources":["../../../packages/common/panel/src/panel.component.ts","../../../packages/common/panel/src/panel.component.html","../../../packages/common/panel/src/panel.module.ts","../../../packages/common/panel/src/igo2-common-panel.ts"],"sourcesContent":["import { NgClass, NgIf } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Input\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 imports: [NgIf, NgClass]\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 = false;\n}\n","<div\n *ngIf=\"withHeader\"\n class=\"igo-panel-header\"\n title=\"\"\n [ngClass]=\"{ 'igo-cursor-pointer': cursorPointer === true }\"\n>\n <div class=\"panel-left\">\n <ng-content select=\"[panelLeftButton]\"></ng-content>\n </div>\n <h4 class=\"igo-panel-title\">\n {{ title }}\n <ng-content select=\"[panelHeader]\"></ng-content>\n </h4>\n <div class=\"panel-right\">\n <ng-content select=\"[panelRightButton]\"></ng-content>\n </div>\n</div>\n<div class=\"igo-panel-content\" title=\"\">\n <ng-content></ng-content>\n</div>\n","import { NgModule } from '@angular/core';\n\nimport { PanelComponent } from './panel.component';\n\n/**\n * @deprecated import the PanelComponent directly\n */\n@NgModule({\n imports: [PanelComponent],\n exports: [PanelComponent]\n})\nexport class IgoPanelModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;MAea,cAAc,CAAA;AAChB,IAAA,KAAK;AAEd,IAAA,IAEI,UAAU,GAAA;QACZ,OAAO,IAAI,CAAC,WAAW;;IAEzB,IAAI,UAAU,CAAC,KAAc,EAAA;AAC3B,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;;IAElB,WAAW,GAAG,IAAI;IAEjB,aAAa,GAAG,KAAK;wGAbnB,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAd,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,cAAc,ECf3B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,UAAA,EAAA,YAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,6BAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,0iBAoBA,EDPY,MAAA,EAAA,CAAA,svBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAI,6FAAE,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAEZ,cAAc,EAAA,UAAA,EAAA,CAAA;kBAP1B,SAAS;+BACE,WAAW,EAAA,eAAA,EAGJ,uBAAuB,CAAC,MAAM,WACtC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAA,QAAA,EAAA,0iBAAA,EAAA,MAAA,EAAA,CAAA,svBAAA,CAAA,EAAA;8BAGf,KAAK,EAAA,CAAA;sBAAb;gBAIG,UAAU,EAAA,CAAA;sBAFb;;sBACA,WAAW;uBAAC,6BAA6B;gBASjC,aAAa,EAAA,CAAA;sBAArB;;;AExBH;;AAEG;MAKU,cAAc,CAAA;wGAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;yGAAd,cAAc,EAAA,OAAA,EAAA,CAHf,cAAc,CAAA,EAAA,OAAA,EAAA,CACd,cAAc,CAAA,EAAA,CAAA;yGAEb,cAAc,EAAA,CAAA;;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,cAAc,CAAC;oBACzB,OAAO,EAAE,CAAC,cAAc;AACzB,iBAAA;;;ACVD;;AAEG;;;;"}
|
|
@@ -70,11 +70,11 @@ class ResizableBarComponent {
|
|
|
70
70
|
this.change.emit(event);
|
|
71
71
|
}
|
|
72
72
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ResizableBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
73
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.2.15", type: ResizableBarComponent, isStandalone: true, selector: "igo-resizable-bar", inputs: { anchor: "anchor", min: ["min", "min", numberAttribute], max: ["max", "max", numberAttribute] }, outputs: { change: "change" }, host: { properties: { "class": "this.cssClass" } }, ngImport: i0, template: "<div igoResize (change)=\"onChange($event)\" class=\"resize-container\">\n <div class=\"resize-indicator\" [ngClass]=\"[alignement]\"></div>\n\n <div class=\"resize-bar\" [ngClass]=\"[alignement]\">\n <div class=\"resize-item\" [ngClass]=\"[alignement]\"></div>\n </div>\n\n <button mat-mini-fab class=\"expand-btn\" [ngClass]=\"[alignement, anchor]\">\n <mat-icon [style.transform]=\"iconRotation\">drag_handle</mat-icon>\n </button>\n</div>\n", styles: [":host{display:block;position:absolute;transform:translateZ(0);z-index:3000}:host.horizontal{left:0;right:0;height:12px}:host.vertical{top:0;bottom:0;width:3px;height:100%}:host.top{bottom:100%}:host.bottom{bottom:3px}:host.right{left:auto;right:0}:host.left{left:0;right:auto}.resize-container:hover .resize-item,.resize-container:hover .expand-btn{opacity:1}.resize-
|
|
73
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.2.15", type: ResizableBarComponent, isStandalone: true, selector: "igo-resizable-bar", inputs: { anchor: "anchor", min: ["min", "min", numberAttribute], max: ["max", "max", numberAttribute] }, outputs: { change: "change" }, host: { properties: { "class": "this.cssClass" } }, ngImport: i0, template: "<div igoResize (change)=\"onChange($event)\" class=\"resize-container\">\n <div class=\"resize-indicator\" [ngClass]=\"[alignement]\"></div>\n\n <div class=\"resize-bar\" [ngClass]=\"[alignement]\">\n <div class=\"resize-item\" [ngClass]=\"[alignement]\"></div>\n </div>\n\n <button mat-mini-fab class=\"expand-btn\" [ngClass]=\"[alignement, anchor]\">\n <mat-icon [style.transform]=\"iconRotation\">drag_handle</mat-icon>\n </button>\n</div>\n", styles: [":host{display:block;position:absolute;transform:translateZ(0);z-index:3000}:host.horizontal{left:0;right:0;height:12px}:host.vertical{top:0;bottom:0;width:3px;height:100%}:host.top{bottom:100%}:host.bottom{bottom:3px}:host.right{left:auto;right:0}:host.left{left:0;right:auto}.resize-container:hover .resize-item,.resize-container:hover .expand-btn{opacity:1}.resize-indicator{opacity:1;pointer-events:none;position:absolute;transition-duration:.2s;transition-property:left,opacity,width;transition-timing-function:cubic-bezier(.2,0,0,1);background:#0000001a}.resize-indicator.horizontal{left:0;right:0;bottom:-2px;height:3px}.resize-indicator.vertical{top:0;bottom:0;right:-2px;width:3px}.resize-bar{position:relative}.resize-bar.horizontal{cursor:n-resize;width:100%;height:12px;bottom:-3px}.resize-bar.vertical{cursor:e-resize;width:3px;height:100%;right:-3px;position:absolute}.resize-item{opacity:0;position:absolute;background-color:var(--mat-sys-secondary-fixed-dim)}.resize-item.horizontal{height:3px;width:100%;bottom:2px}.resize-item.vertical{height:100%;width:3px;right:2px}.expand-btn{pointer-events:none;position:absolute;width:24px;height:24px;line-height:24px;opacity:0;color:var(--mat-sys-primary);background-color:var(--mat-sys-on-primary);transition:opacity .3s cubic-bezier(.2,0,0,1) 0s,transform .3s cubic-bezier(.2,0,0,1) 0s}.expand-btn.horizontal{top:0;left:50%}.expand-btn.vertical{top:50%}.expand-btn.vertical.right{left:-8px}.expand-btn.vertical.left{right:-8px}.expand-btn .mat-icon{color:inherit;height:20px;width:20px;font-size:20px;transition:color .1s linear}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatMiniFabButton, selector: "button[mat-mini-fab]", exportAs: ["matButton"] }, { kind: "directive", type: ResizeDirective, selector: "[igoResize]", outputs: ["change"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
74
74
|
}
|
|
75
75
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ResizableBarComponent, decorators: [{
|
|
76
76
|
type: Component,
|
|
77
|
-
args: [{ selector: 'igo-resizable-bar', imports: [MatIconModule, MatButtonModule, ResizeDirective, NgClass], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div igoResize (change)=\"onChange($event)\" class=\"resize-container\">\n <div class=\"resize-indicator\" [ngClass]=\"[alignement]\"></div>\n\n <div class=\"resize-bar\" [ngClass]=\"[alignement]\">\n <div class=\"resize-item\" [ngClass]=\"[alignement]\"></div>\n </div>\n\n <button mat-mini-fab class=\"expand-btn\" [ngClass]=\"[alignement, anchor]\">\n <mat-icon [style.transform]=\"iconRotation\">drag_handle</mat-icon>\n </button>\n</div>\n", styles: [":host{display:block;position:absolute;transform:translateZ(0);z-index:3000}:host.horizontal{left:0;right:0;height:12px}:host.vertical{top:0;bottom:0;width:3px;height:100%}:host.top{bottom:100%}:host.bottom{bottom:3px}:host.right{left:auto;right:0}:host.left{left:0;right:auto}.resize-container:hover .resize-item,.resize-container:hover .expand-btn{opacity:1}.resize-
|
|
77
|
+
args: [{ selector: 'igo-resizable-bar', imports: [MatIconModule, MatButtonModule, ResizeDirective, NgClass], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div igoResize (change)=\"onChange($event)\" class=\"resize-container\">\n <div class=\"resize-indicator\" [ngClass]=\"[alignement]\"></div>\n\n <div class=\"resize-bar\" [ngClass]=\"[alignement]\">\n <div class=\"resize-item\" [ngClass]=\"[alignement]\"></div>\n </div>\n\n <button mat-mini-fab class=\"expand-btn\" [ngClass]=\"[alignement, anchor]\">\n <mat-icon [style.transform]=\"iconRotation\">drag_handle</mat-icon>\n </button>\n</div>\n", styles: [":host{display:block;position:absolute;transform:translateZ(0);z-index:3000}:host.horizontal{left:0;right:0;height:12px}:host.vertical{top:0;bottom:0;width:3px;height:100%}:host.top{bottom:100%}:host.bottom{bottom:3px}:host.right{left:auto;right:0}:host.left{left:0;right:auto}.resize-container:hover .resize-item,.resize-container:hover .expand-btn{opacity:1}.resize-indicator{opacity:1;pointer-events:none;position:absolute;transition-duration:.2s;transition-property:left,opacity,width;transition-timing-function:cubic-bezier(.2,0,0,1);background:#0000001a}.resize-indicator.horizontal{left:0;right:0;bottom:-2px;height:3px}.resize-indicator.vertical{top:0;bottom:0;right:-2px;width:3px}.resize-bar{position:relative}.resize-bar.horizontal{cursor:n-resize;width:100%;height:12px;bottom:-3px}.resize-bar.vertical{cursor:e-resize;width:3px;height:100%;right:-3px;position:absolute}.resize-item{opacity:0;position:absolute;background-color:var(--mat-sys-secondary-fixed-dim)}.resize-item.horizontal{height:3px;width:100%;bottom:2px}.resize-item.vertical{height:100%;width:3px;right:2px}.expand-btn{pointer-events:none;position:absolute;width:24px;height:24px;line-height:24px;opacity:0;color:var(--mat-sys-primary);background-color:var(--mat-sys-on-primary);transition:opacity .3s cubic-bezier(.2,0,0,1) 0s,transform .3s cubic-bezier(.2,0,0,1) 0s}.expand-btn.horizontal{top:0;left:50%}.expand-btn.vertical{top:50%}.expand-btn.vertical.right{left:-8px}.expand-btn.vertical.left{right:-8px}.expand-btn .mat-icon{color:inherit;height:20px;width:20px;font-size:20px;transition:color .1s linear}\n"] }]
|
|
78
78
|
}], propDecorators: { anchor: [{
|
|
79
79
|
type: Input
|
|
80
80
|
}], min: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"igo2-common-resizable-bar.mjs","sources":["../../../packages/common/resizable-bar/src/shared/resize.directive.ts","../../../packages/common/resizable-bar/src/resizable-bar.component.ts","../../../packages/common/resizable-bar/src/resizable-bar.component.html","../../../packages/common/resizable-bar/src/igo2-common-resizable-bar.ts"],"sourcesContent":["import { Directive, EventEmitter, HostListener, Output } from '@angular/core';\n\nimport { Subscription, fromEvent } from 'rxjs';\n\n@Directive({\n selector: '[igoResize]'\n})\nexport class ResizeDirective {\n mouseMove$$: Subscription;\n mouseUp$$: Subscription;\n\n @Output() change: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\n\n @HostListener('mousedown', ['$event'])\n onMouseDown(event: MouseEvent) {\n this.mouseUp$$ = fromEvent(document, 'mouseup').subscribe(() => {\n this._unsubscribe();\n });\n\n this.mouseMove$$ = fromEvent(document, 'mousemove').subscribe(\n (moveEvent: MouseEvent) => {\n this.change.emit(moveEvent);\n }\n );\n\n event.preventDefault();\n }\n\n private _unsubscribe(): void {\n this.mouseUp$$.unsubscribe();\n this.mouseUp$$ = null;\n\n this.mouseMove$$.unsubscribe();\n this.mouseMove$$ = null;\n }\n}\n","import { NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n OnInit,\n Output,\n numberAttribute\n} from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { ResizeDirective } from './shared/resize.directive';\n\nexport const ResizeAnchorType = ['top', 'left', 'bottom', 'right'] as const;\nexport type ResizeAnchorType = (typeof ResizeAnchorType)[number];\n\nexport const AlignmentType = ['vertical', 'horizontal'] as const;\nexport type AlignmentType = (typeof AlignmentType)[number];\n\n@Component({\n selector: 'igo-resizable-bar',\n templateUrl: './resizable-bar.component.html',\n styleUrls: ['./resizable-bar.component.scss'],\n imports: [MatIconModule, MatButtonModule, ResizeDirective, NgClass],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ResizableBarComponent implements OnInit {\n alignement: AlignmentType;\n iconRotation: string;\n\n @Input() anchor: ResizeAnchorType = 'right';\n\n /** En pixel */\n @Input({ transform: numberAttribute }) min: number;\n\n /** En pixel */\n @Input({ transform: numberAttribute }) max: number;\n\n @Output() change = new EventEmitter<MouseEvent>();\n\n @HostBinding('class') get cssClass() {\n return `${this.alignement} ${this.anchor}`;\n }\n\n ngOnInit(): void {\n this.alignement =\n this.anchor === 'top' || this.anchor === 'bottom'\n ? 'horizontal'\n : 'vertical';\n\n this.iconRotation = this.alignement === 'vertical' ? 'rotate(90deg)' : '';\n }\n\n onChange(event: MouseEvent): void {\n const value =\n this.alignement === 'horizontal' ? event.clientX : event.clientX;\n if ((this.min && value <= this.min) || (this.max && value >= this.max)) {\n return;\n }\n this.change.emit(event);\n }\n}\n","<div igoResize (change)=\"onChange($event)\" class=\"resize-container\">\n <div class=\"resize-indicator\" [ngClass]=\"[alignement]\"></div>\n\n <div class=\"resize-bar\" [ngClass]=\"[alignement]\">\n <div class=\"resize-item\" [ngClass]=\"[alignement]\"></div>\n </div>\n\n <button mat-mini-fab class=\"expand-btn\" [ngClass]=\"[alignement, anchor]\">\n <mat-icon [style.transform]=\"iconRotation\">drag_handle</mat-icon>\n </button>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"igo2-common-resizable-bar.mjs","sources":["../../../packages/common/resizable-bar/src/shared/resize.directive.ts","../../../packages/common/resizable-bar/src/resizable-bar.component.ts","../../../packages/common/resizable-bar/src/resizable-bar.component.html","../../../packages/common/resizable-bar/src/igo2-common-resizable-bar.ts"],"sourcesContent":["import { Directive, EventEmitter, HostListener, Output } from '@angular/core';\n\nimport { Subscription, fromEvent } from 'rxjs';\n\n@Directive({\n selector: '[igoResize]'\n})\nexport class ResizeDirective {\n mouseMove$$: Subscription;\n mouseUp$$: Subscription;\n\n @Output() change: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\n\n @HostListener('mousedown', ['$event'])\n onMouseDown(event: MouseEvent) {\n this.mouseUp$$ = fromEvent(document, 'mouseup').subscribe(() => {\n this._unsubscribe();\n });\n\n this.mouseMove$$ = fromEvent(document, 'mousemove').subscribe(\n (moveEvent: MouseEvent) => {\n this.change.emit(moveEvent);\n }\n );\n\n event.preventDefault();\n }\n\n private _unsubscribe(): void {\n this.mouseUp$$.unsubscribe();\n this.mouseUp$$ = null;\n\n this.mouseMove$$.unsubscribe();\n this.mouseMove$$ = null;\n }\n}\n","import { NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n OnInit,\n Output,\n numberAttribute\n} from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { ResizeDirective } from './shared/resize.directive';\n\nexport const ResizeAnchorType = ['top', 'left', 'bottom', 'right'] as const;\nexport type ResizeAnchorType = (typeof ResizeAnchorType)[number];\n\nexport const AlignmentType = ['vertical', 'horizontal'] as const;\nexport type AlignmentType = (typeof AlignmentType)[number];\n\n@Component({\n selector: 'igo-resizable-bar',\n templateUrl: './resizable-bar.component.html',\n styleUrls: ['./resizable-bar.component.scss'],\n imports: [MatIconModule, MatButtonModule, ResizeDirective, NgClass],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ResizableBarComponent implements OnInit {\n alignement: AlignmentType;\n iconRotation: string;\n\n @Input() anchor: ResizeAnchorType = 'right';\n\n /** En pixel */\n @Input({ transform: numberAttribute }) min: number;\n\n /** En pixel */\n @Input({ transform: numberAttribute }) max: number;\n\n @Output() change = new EventEmitter<MouseEvent>();\n\n @HostBinding('class') get cssClass() {\n return `${this.alignement} ${this.anchor}`;\n }\n\n ngOnInit(): void {\n this.alignement =\n this.anchor === 'top' || this.anchor === 'bottom'\n ? 'horizontal'\n : 'vertical';\n\n this.iconRotation = this.alignement === 'vertical' ? 'rotate(90deg)' : '';\n }\n\n onChange(event: MouseEvent): void {\n const value =\n this.alignement === 'horizontal' ? event.clientX : event.clientX;\n if ((this.min && value <= this.min) || (this.max && value >= this.max)) {\n return;\n }\n this.change.emit(event);\n }\n}\n","<div igoResize (change)=\"onChange($event)\" class=\"resize-container\">\n <div class=\"resize-indicator\" [ngClass]=\"[alignement]\"></div>\n\n <div class=\"resize-bar\" [ngClass]=\"[alignement]\">\n <div class=\"resize-item\" [ngClass]=\"[alignement]\"></div>\n </div>\n\n <button mat-mini-fab class=\"expand-btn\" [ngClass]=\"[alignement, anchor]\">\n <mat-icon [style.transform]=\"iconRotation\">drag_handle</mat-icon>\n </button>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -462,7 +462,7 @@ class ToolboxComponent {
|
|
|
462
462
|
}
|
|
463
463
|
}
|
|
464
464
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ToolboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
465
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: ToolboxComponent, isStandalone: true, selector: "igo-toolbox", inputs: { toolbox: "toolbox", animate: "animate", color: "color" }, host: { properties: { "class.color-grey": "this.classColorGrey", "class.color-primary": "this.classColorPrimary" } }, ngImport: i0, template: "<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>\n</igo-actionbar>\n\n<div\n *ngIf=\"activeTool$ | async as tool\"\n class=\"igo-tool-container
|
|
465
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: ToolboxComponent, isStandalone: true, selector: "igo-toolbox", inputs: { toolbox: "toolbox", animate: "animate", color: "color" }, host: { properties: { "class.color-grey": "this.classColorGrey", "class.color-primary": "this.classColorPrimary" } }, ngImport: i0, template: "<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>\n</igo-actionbar>\n\n<div\n *ngIf=\"activeTool$ | async as tool\"\n class=\"igo-tool-container\"\n [ngClass]=\"{\n 'igo-tool-container-with-toolbar': !actionStore.empty,\n 'igo-tool-container-with-animation': animate\n }\"\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 >\n </igo-dynamic-outlet>\n</div>\n", styles: [":host{display:block;position:relative;overflow:hidden;width:100%;height:100%}:host .igo-tool-container{position:absolute;inset:0;margin-bottom:0}:host .igo-tool-container-with-animation{transform:translate3d(100%,0,0)}:host .igo-tool-container-with-toolbar{left:50px}:host igo-actionbar{height:100%}:host igo-actionbar.with-title{width:100%;overflow:auto}:host igo-actionbar:not(.with-title){width:48px;overflow:hidden;-moz-box-shadow:2px 0px 2px 0px #dddddd;-webkit-box-shadow:2px 0px 2px 0px #dddddd;-o-box-shadow:2px 0px 2px 0px #dddddd;box-shadow:2px 0 2px #ddd}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){:host igo-actionbar:not(.with-title){overflow:auto}}:host igo-dynamic-outlet{overflow:auto}:host.color-primary igo-actionbar:not(.with-title){color:var(--mat-sys-on-primary);background-color:var(--mat-sys-on-primary-container)}:host.color-primary igo-actionbar:not(.with-title) ::ng-deep button{color:var(--mat-sys-on-primary)}:host.color-primary igo-actionbar:not(.with-title) #lowChevron,:host.color-primary igo-actionbar:not(.with-title) #topChevron{background-color:var(--mat-sys-primary-container);color:#fff}:host ::ng-deep .color-grey>igo-actionbar:not(.with-title){box-shadow:unset;background-color:#737475}:host ::ng-deep .color-grey>igo-actionbar:not(.with-title) #lowChevron,:host ::ng-deep .color-grey>igo-actionbar:not(.with-title) #topChevron{background-color:#737475;color:#fff}:host ::ng-deep .color-primary>igo-actionbar:not(.with-title) mat-list.mat-mdc-list-base .mat-mdc-list-item.mdc-list-item--with-leading-avatar,:host ::ng-deep .color-grey>igo-actionbar:not(.with-title) mat-list.mat-mdc-list-base .mat-mdc-list-item.mdc-list-item--with-leading-avatar{color:#fff}:host ::ng-deep .color-primary>igo-actionbar:not(.with-title) mat-list.mat-mdc-list-base .mat-mdc-list-item.mdc-list-item--with-leading-avatar:hover,:host ::ng-deep .color-grey>igo-actionbar:not(.with-title) mat-list.mat-mdc-list-base .mat-mdc-list-item.mdc-list-item--with-leading-avatar:hover{color:#000}:host ::ng-deep .color-primary>igo-actionbar:not(.with-title) mat-list.mat-mdc-list-base .mat-mdc-list-item.mdc-list-item--with-leading-avatar.tool-activated,:host ::ng-deep .color-primary>igo-actionbar:not(.with-title) mat-list.mat-mdc-list-base .mat-mdc-list-item.mdc-list-item--with-leading-avatar.children-tool-activated,:host ::ng-deep .color-grey>igo-actionbar:not(.with-title) mat-list.mat-mdc-list-base .mat-mdc-list-item.mdc-list-item--with-leading-avatar.tool-activated,:host ::ng-deep .color-grey>igo-actionbar:not(.with-title) mat-list.mat-mdc-list-base .mat-mdc-list-item.mdc-list-item--with-leading-avatar.children-tool-activated{color:var(--mat-sys-on-primary);background-color:var(--mat-sys-on-primary-container);color:#000}:host ::ng-deep>igo-actionbar:not(.with-title)>mat-list>#lowChevron:hover,:host ::ng-deep>igo-actionbar:not(.with-title)>mat-list>#topChevron:hover{background-color:var(--mat-sys-secondary-container);color:#000}:host ::ng-deep>igo-actionbar:not(.with-title)>mat-list mat-list-item{color:var(--mat-sys-on-primary-container)}:host ::ng-deep>igo-actionbar mat-list.mat-mdc-list-base igo-actionbar-item mat-list-item:hover{color:var(--mat-sys-on-primary-container);background-color:var(--mat-sys-primary-container)}:host ::ng-deep>igo-actionbar mat-list.mat-mdc-list-base igo-actionbar-item mat-list-item:hover button{color:var(--mat-sys-on-primary-container)!important}:host ::ng-deep>igo-actionbar mat-list.mat-mdc-list-base igo-actionbar-item mat-list-item.tool-activated,:host ::ng-deep>igo-actionbar mat-list.mat-mdc-list-base igo-actionbar-item mat-list-item.children-tool-activated{color:var(--mat-sys-on-background);background-color:var(--mat-sys-on-primary)}:host ::ng-deep>igo-actionbar mat-list.mat-mdc-list-base igo-actionbar-item mat-list-item.tool-activated button,:host ::ng-deep>igo-actionbar mat-list.mat-mdc-list-base igo-actionbar-item mat-list-item.children-tool-activated button{color:var(--mat-sys-on-background)!important;cursor:default}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ActionbarComponent, selector: "igo-actionbar", inputs: ["store", "mode", "withToggleButton", "horizontal", "color", "iconColor", "withTitle", "withTooltip", "scrollActive", "withIcon", "icon", "xPosition", "yPosition", "overlayClass"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: DynamicOutletComponent, selector: "igo-dynamic-outlet", inputs: ["component", "inputs", "subscribers"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], animations: [toolSlideInOut()], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
466
466
|
}
|
|
467
467
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ToolboxComponent, decorators: [{
|
|
468
468
|
type: Component,
|
|
@@ -472,7 +472,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
472
472
|
NgClass,
|
|
473
473
|
DynamicOutletComponent,
|
|
474
474
|
AsyncPipe
|
|
475
|
-
], template: "<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>\n</igo-actionbar>\n\n<div\n *ngIf=\"activeTool$ | async as tool\"\n class=\"igo-tool-container
|
|
475
|
+
], template: "<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>\n</igo-actionbar>\n\n<div\n *ngIf=\"activeTool$ | async as tool\"\n class=\"igo-tool-container\"\n [ngClass]=\"{\n 'igo-tool-container-with-toolbar': !actionStore.empty,\n 'igo-tool-container-with-animation': animate\n }\"\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 >\n </igo-dynamic-outlet>\n</div>\n", styles: [":host{display:block;position:relative;overflow:hidden;width:100%;height:100%}:host .igo-tool-container{position:absolute;inset:0;margin-bottom:0}:host .igo-tool-container-with-animation{transform:translate3d(100%,0,0)}:host .igo-tool-container-with-toolbar{left:50px}:host igo-actionbar{height:100%}:host igo-actionbar.with-title{width:100%;overflow:auto}:host igo-actionbar:not(.with-title){width:48px;overflow:hidden;-moz-box-shadow:2px 0px 2px 0px #dddddd;-webkit-box-shadow:2px 0px 2px 0px #dddddd;-o-box-shadow:2px 0px 2px 0px #dddddd;box-shadow:2px 0 2px #ddd}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){:host igo-actionbar:not(.with-title){overflow:auto}}:host igo-dynamic-outlet{overflow:auto}:host.color-primary igo-actionbar:not(.with-title){color:var(--mat-sys-on-primary);background-color:var(--mat-sys-on-primary-container)}:host.color-primary igo-actionbar:not(.with-title) ::ng-deep button{color:var(--mat-sys-on-primary)}:host.color-primary igo-actionbar:not(.with-title) #lowChevron,:host.color-primary igo-actionbar:not(.with-title) #topChevron{background-color:var(--mat-sys-primary-container);color:#fff}:host ::ng-deep .color-grey>igo-actionbar:not(.with-title){box-shadow:unset;background-color:#737475}:host ::ng-deep .color-grey>igo-actionbar:not(.with-title) #lowChevron,:host ::ng-deep .color-grey>igo-actionbar:not(.with-title) #topChevron{background-color:#737475;color:#fff}:host ::ng-deep .color-primary>igo-actionbar:not(.with-title) mat-list.mat-mdc-list-base .mat-mdc-list-item.mdc-list-item--with-leading-avatar,:host ::ng-deep .color-grey>igo-actionbar:not(.with-title) mat-list.mat-mdc-list-base .mat-mdc-list-item.mdc-list-item--with-leading-avatar{color:#fff}:host ::ng-deep .color-primary>igo-actionbar:not(.with-title) mat-list.mat-mdc-list-base .mat-mdc-list-item.mdc-list-item--with-leading-avatar:hover,:host ::ng-deep .color-grey>igo-actionbar:not(.with-title) mat-list.mat-mdc-list-base .mat-mdc-list-item.mdc-list-item--with-leading-avatar:hover{color:#000}:host ::ng-deep .color-primary>igo-actionbar:not(.with-title) mat-list.mat-mdc-list-base .mat-mdc-list-item.mdc-list-item--with-leading-avatar.tool-activated,:host ::ng-deep .color-primary>igo-actionbar:not(.with-title) mat-list.mat-mdc-list-base .mat-mdc-list-item.mdc-list-item--with-leading-avatar.children-tool-activated,:host ::ng-deep .color-grey>igo-actionbar:not(.with-title) mat-list.mat-mdc-list-base .mat-mdc-list-item.mdc-list-item--with-leading-avatar.tool-activated,:host ::ng-deep .color-grey>igo-actionbar:not(.with-title) mat-list.mat-mdc-list-base .mat-mdc-list-item.mdc-list-item--with-leading-avatar.children-tool-activated{color:var(--mat-sys-on-primary);background-color:var(--mat-sys-on-primary-container);color:#000}:host ::ng-deep>igo-actionbar:not(.with-title)>mat-list>#lowChevron:hover,:host ::ng-deep>igo-actionbar:not(.with-title)>mat-list>#topChevron:hover{background-color:var(--mat-sys-secondary-container);color:#000}:host ::ng-deep>igo-actionbar:not(.with-title)>mat-list mat-list-item{color:var(--mat-sys-on-primary-container)}:host ::ng-deep>igo-actionbar mat-list.mat-mdc-list-base igo-actionbar-item mat-list-item:hover{color:var(--mat-sys-on-primary-container);background-color:var(--mat-sys-primary-container)}:host ::ng-deep>igo-actionbar mat-list.mat-mdc-list-base igo-actionbar-item mat-list-item:hover button{color:var(--mat-sys-on-primary-container)!important}:host ::ng-deep>igo-actionbar mat-list.mat-mdc-list-base igo-actionbar-item mat-list-item.tool-activated,:host ::ng-deep>igo-actionbar mat-list.mat-mdc-list-base igo-actionbar-item mat-list-item.children-tool-activated{color:var(--mat-sys-on-background);background-color:var(--mat-sys-on-primary)}:host ::ng-deep>igo-actionbar mat-list.mat-mdc-list-base igo-actionbar-item mat-list-item.tool-activated button,:host ::ng-deep>igo-actionbar mat-list.mat-mdc-list-base igo-actionbar-item mat-list-item.children-tool-activated button{color:var(--mat-sys-on-background)!important;cursor:default}\n"] }]
|
|
476
476
|
}], propDecorators: { toolbox: [{
|
|
477
477
|
type: Input
|
|
478
478
|
}], animate: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"igo2-common-tool.mjs","sources":["../../../packages/common/tool/src/shared/toolbox.ts","../../../packages/common/tool/src/shared/tool.service.ts","../../../packages/common/tool/src/shared/tool-component.ts","../../../packages/common/tool/src/toolbox/toolbox.animation.ts","../../../packages/common/tool/src/toolbox/toolbox.component.ts","../../../packages/common/tool/src/toolbox/toolbox.component.html","../../../packages/common/tool/src/toolbox/toolbox.module.ts","../../../packages/common/tool/src/tool.module.ts","../../../packages/common/tool/src/igo2-common-tool.ts"],"sourcesContent":["import { EntityRecord, EntityStore } from '@igo2/common/entity';\n\nimport { BehaviorSubject, Subscription } from 'rxjs';\n\nimport { Tool, ToolboxOptions } from './tool.interface';\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$ = new BehaviorSubject<Tool>(undefined);\n\n /**\n * Ordered list of tool names to display in a toolbar\n */\n toolbar$ = new BehaviorSubject<string[]>([]);\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 private previousToolName: string;\n private currentToolName: 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: Record<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] = this.activeToolHistory.splice(-2, 2);\n this.activateTool(previous);\n }\n\n getCurrentPreviousToolName(): [string, string] {\n return [this.previousToolName, this.currentToolName];\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 this.previousToolName = this.currentToolName;\n this.currentToolName =\n this.activeToolHistory[this.activeToolHistory.length - 1];\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: Record<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","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(\n Object.assign({}, tool, {\n component: compType\n } as Tool)\n );\n };\n}\n","import {\n AnimationTriggerMetadata,\n animate,\n state,\n style,\n transition,\n trigger\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","import { AsyncPipe, NgClass, NgIf } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Input,\n OnDestroy,\n OnInit\n} from '@angular/core';\n\nimport { Action, ActionStore, ActionbarComponent } from '@igo2/common/action';\nimport { DynamicOutletComponent } from '@igo2/common/dynamic-component';\n\nimport { BehaviorSubject, Observable, Subscription } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { Tool } from '../shared/tool.interface';\nimport { Toolbox } from '../shared/toolbox';\nimport { ToolboxColor } from '../shared/toolbox.enums';\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 imports: [\n NgIf,\n ActionbarComponent,\n NgClass,\n DynamicOutletComponent,\n AsyncPipe\n ]\n})\nexport class ToolboxComponent implements OnInit, OnDestroy {\n /**\n * Observable of the active tool\n */\n activeTool$ = new BehaviorSubject<Tool>(undefined);\n\n get isActive(): boolean {\n return !!this.activeTool$.value;\n }\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$ = new BehaviorSubject<string>('none');\n\n /**\n * Observable of the toolbar\n */\n toolbar$ = new BehaviorSubject<string[]>([]);\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 = false;\n\n /**\n * Color of Toolbox\n */\n @Input() color: ToolboxColor = 'white';\n\n /**\n * @ignore\n */\n @HostBinding('class.color-grey')\n get classColorGrey() {\n return this.color === 'grey';\n }\n\n /**\n * @ignore\n */\n @HostBinding('class.color-primary')\n get classColorPrimary() {\n return this.color === '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): Record<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 tooltip: tool.tooltip,\n args: [tool, this.toolbox],\n handler: (_tool: Tool, _toolbox: Toolbox) => {\n _toolbox.activateTool(_tool.name);\n },\n ngClass: (_tool: Tool) => {\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","<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>\n</igo-actionbar>\n\n<div\n *ngIf=\"activeTool$ | async as tool\"\n class=\"igo-tool-container mat-body-1\"\n [ngClass]=\"{\n 'igo-tool-container-with-toolbar': !actionStore.empty,\n 'igo-tool-container-with-animation': animate\n }\"\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 >\n </igo-dynamic-outlet>\n</div>\n","import { NgModule } from '@angular/core';\n\nimport { ToolboxComponent } from './toolbox.component';\n\n/**\n * @deprecated import the ToolboxComponent directly\n */\n@NgModule({\n imports: [ToolboxComponent],\n exports: [ToolboxComponent]\n})\nexport class IgoToolboxModule {}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { ToolService } from './shared/tool.service';\nimport { IgoToolboxModule } from './toolbox/toolbox.module';\n\n/**\n * @deprecated import the ToolboxComponent directly\n */\n@NgModule({\n exports: [IgoToolboxModule]\n})\nexport class IgoToolModule {\n /**\n * @deprecated it has no effect\n */\n static forRoot(): ModuleWithProviders<IgoToolModule> {\n return {\n ngModule: IgoToolModule,\n providers: [ToolService]\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"igo2-common-tool.mjs","sources":["../../../packages/common/tool/src/shared/toolbox.ts","../../../packages/common/tool/src/shared/tool.service.ts","../../../packages/common/tool/src/shared/tool-component.ts","../../../packages/common/tool/src/toolbox/toolbox.animation.ts","../../../packages/common/tool/src/toolbox/toolbox.component.ts","../../../packages/common/tool/src/toolbox/toolbox.component.html","../../../packages/common/tool/src/toolbox/toolbox.module.ts","../../../packages/common/tool/src/tool.module.ts","../../../packages/common/tool/src/igo2-common-tool.ts"],"sourcesContent":["import { EntityRecord, EntityStore } from '@igo2/common/entity';\n\nimport { BehaviorSubject, Subscription } from 'rxjs';\n\nimport { Tool, ToolboxOptions } from './tool.interface';\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$ = new BehaviorSubject<Tool>(undefined);\n\n /**\n * Ordered list of tool names to display in a toolbar\n */\n toolbar$ = new BehaviorSubject<string[]>([]);\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 private previousToolName: string;\n private currentToolName: 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: Record<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] = this.activeToolHistory.splice(-2, 2);\n this.activateTool(previous);\n }\n\n getCurrentPreviousToolName(): [string, string] {\n return [this.previousToolName, this.currentToolName];\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 this.previousToolName = this.currentToolName;\n this.currentToolName =\n this.activeToolHistory[this.activeToolHistory.length - 1];\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: Record<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","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(\n Object.assign({}, tool, {\n component: compType\n } as Tool)\n );\n };\n}\n","import {\n AnimationTriggerMetadata,\n animate,\n state,\n style,\n transition,\n trigger\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","import { AsyncPipe, NgClass, NgIf } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Input,\n OnDestroy,\n OnInit\n} from '@angular/core';\n\nimport { Action, ActionStore, ActionbarComponent } from '@igo2/common/action';\nimport { DynamicOutletComponent } from '@igo2/common/dynamic-component';\n\nimport { BehaviorSubject, Observable, Subscription } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { Tool } from '../shared/tool.interface';\nimport { Toolbox } from '../shared/toolbox';\nimport { ToolboxColor } from '../shared/toolbox.enums';\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 imports: [\n NgIf,\n ActionbarComponent,\n NgClass,\n DynamicOutletComponent,\n AsyncPipe\n ]\n})\nexport class ToolboxComponent implements OnInit, OnDestroy {\n /**\n * Observable of the active tool\n */\n activeTool$ = new BehaviorSubject<Tool>(undefined);\n\n get isActive(): boolean {\n return !!this.activeTool$.value;\n }\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$ = new BehaviorSubject<string>('none');\n\n /**\n * Observable of the toolbar\n */\n toolbar$ = new BehaviorSubject<string[]>([]);\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 = false;\n\n /**\n * Color of Toolbox\n */\n @Input() color: ToolboxColor = 'white';\n\n /**\n * @ignore\n */\n @HostBinding('class.color-grey')\n get classColorGrey() {\n return this.color === 'grey';\n }\n\n /**\n * @ignore\n */\n @HostBinding('class.color-primary')\n get classColorPrimary() {\n return this.color === '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): Record<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 tooltip: tool.tooltip,\n args: [tool, this.toolbox],\n handler: (_tool: Tool, _toolbox: Toolbox) => {\n _toolbox.activateTool(_tool.name);\n },\n ngClass: (_tool: Tool) => {\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","<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>\n</igo-actionbar>\n\n<div\n *ngIf=\"activeTool$ | async as tool\"\n class=\"igo-tool-container\"\n [ngClass]=\"{\n 'igo-tool-container-with-toolbar': !actionStore.empty,\n 'igo-tool-container-with-animation': animate\n }\"\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 >\n </igo-dynamic-outlet>\n</div>\n","import { NgModule } from '@angular/core';\n\nimport { ToolboxComponent } from './toolbox.component';\n\n/**\n * @deprecated import the ToolboxComponent directly\n */\n@NgModule({\n imports: [ToolboxComponent],\n exports: [ToolboxComponent]\n})\nexport class IgoToolboxModule {}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { ToolService } from './shared/tool.service';\nimport { IgoToolboxModule } from './toolbox/toolbox.module';\n\n/**\n * @deprecated import the ToolboxComponent directly\n */\n@NgModule({\n exports: [IgoToolboxModule]\n})\nexport class IgoToolModule {\n /**\n * @deprecated it has no effect\n */\n static forRoot(): ModuleWithProviders<IgoToolModule> {\n return {\n ngModule: IgoToolModule,\n providers: [ToolService]\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,6 @@ export declare class InteractiveTourService {
|
|
|
11
11
|
private interactiveTourLoader;
|
|
12
12
|
private shepherdService;
|
|
13
13
|
private previousStep;
|
|
14
|
-
private nextIndex;
|
|
15
14
|
constructor(configService: ConfigService, mediaService: MediaService, languageService: LanguageService, interactiveTourLoader: InteractiveTourLoader, shepherdService: ShepherdService);
|
|
16
15
|
isAppHaveTour(): any;
|
|
17
16
|
isToolHaveTourConfig(toolName: string): boolean;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@igo2/common",
|
|
3
|
-
"version": "19.0.0-next.
|
|
3
|
+
"version": "19.0.0-next.30",
|
|
4
4
|
"description": "IGO Library",
|
|
5
5
|
"author": "IGO Community",
|
|
6
6
|
"keywords": [
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"style": "./style/style.css"
|
|
25
25
|
},
|
|
26
26
|
"./theme": {
|
|
27
|
-
"sass": "./src/common
|
|
27
|
+
"sass": "./src/common.theme.scss"
|
|
28
28
|
},
|
|
29
29
|
"./partial/*": {
|
|
30
30
|
"sass": "./src/style/partial/*.scss"
|
|
@@ -180,8 +180,8 @@
|
|
|
180
180
|
"@angular/material": "^19.0.0",
|
|
181
181
|
"@angular/platform-browser": "^19.0.0",
|
|
182
182
|
"@floating-ui/utils": "^0.2.0",
|
|
183
|
-
"@igo2/core": "^19.0.0-next.
|
|
184
|
-
"@igo2/utils": "^19.0.0-next.
|
|
183
|
+
"@igo2/core": "^19.0.0-next.30",
|
|
184
|
+
"@igo2/utils": "^19.0.0-next.30",
|
|
185
185
|
"angular-shepherd": "^19.0.0",
|
|
186
186
|
"ngx-color": "^10.0.0",
|
|
187
187
|
"scroll-into-view-if-needed": "^3.1.0",
|
|
@@ -2,21 +2,11 @@
|
|
|
2
2
|
@use '@angular/material' as mat;
|
|
3
3
|
|
|
4
4
|
@mixin theme($theme) {
|
|
5
|
-
@include color($theme);
|
|
6
5
|
@include density($theme);
|
|
7
6
|
}
|
|
8
7
|
|
|
9
|
-
@mixin color($theme) {
|
|
10
|
-
$primary: map.get($theme, primary);
|
|
11
|
-
|
|
12
|
-
igo-panel > .igo-panel-header {
|
|
13
|
-
background-color: mat.m2-get-color-from-palette($primary);
|
|
14
|
-
color: mat.m2-get-color-from-palette($primary, default-contrast);
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
|
|
18
8
|
@mixin density($theme) {
|
|
19
|
-
$density: mat.
|
|
9
|
+
$density: mat.get-theme-density($theme);
|
|
20
10
|
$theme: map.merge(
|
|
21
11
|
$theme,
|
|
22
12
|
(
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
@use '../action/src/action.theming.scss' as action;
|
|
2
|
+
@use '../entity/src/entity.theming.scss' as entity;
|
|
3
|
+
@use '../panel/src/panel.theming.scss' as panel;
|
|
4
|
+
@use '../tool/src/tool.theming.scss' as tool;
|
|
5
|
+
|
|
6
|
+
@mixin themes($theme) {
|
|
7
|
+
@include action.themes($theme);
|
|
8
|
+
@include entity.themes($theme);
|
|
9
|
+
@include panel.theme($theme);
|
|
10
|
+
@include tool.igo-tool-theming($theme);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
@mixin densities($theme) {
|
|
14
|
+
@include action.densities($theme);
|
|
15
|
+
@include entity.densities($theme);
|
|
16
|
+
@include panel.theme($theme);
|
|
17
|
+
@include tool.igo-tool-theming($theme);
|
|
18
|
+
}
|