@igo2/common 20.0.1 → 20.1.0-next.10
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/index.d.ts +22 -22
- package/clickout/index.d.ts +2 -2
- package/collapsible/index.d.ts +6 -10
- package/color/index.d.ts +3 -4
- package/context-menu/index.d.ts +9 -9
- package/datepicker/index.d.ts +65 -0
- package/drag-drop/index.d.ts +21 -23
- package/dynamic-component/index.d.ts +7 -7
- package/entity/index.d.ts +135 -72
- package/fesm2022/igo2-common-action.mjs +60 -97
- package/fesm2022/igo2-common-action.mjs.map +1 -1
- package/fesm2022/igo2-common-backdrop.mjs +7 -7
- package/fesm2022/igo2-common-badge.mjs +7 -7
- package/fesm2022/igo2-common-clickout.mjs +10 -12
- package/fesm2022/igo2-common-clickout.mjs.map +1 -1
- package/fesm2022/igo2-common-clone.mjs +7 -7
- package/fesm2022/igo2-common-collapsible.mjs +18 -39
- package/fesm2022/igo2-common-collapsible.mjs.map +1 -1
- package/fesm2022/igo2-common-color.mjs +14 -18
- package/fesm2022/igo2-common-color.mjs.map +1 -1
- package/fesm2022/igo2-common-confirm-dialog.mjs +10 -10
- package/fesm2022/igo2-common-context-menu.mjs +22 -31
- package/fesm2022/igo2-common-context-menu.mjs.map +1 -1
- package/fesm2022/igo2-common-custom-html.mjs +10 -10
- package/fesm2022/igo2-common-datepicker.mjs +316 -0
- package/fesm2022/igo2-common-datepicker.mjs.map +1 -0
- package/fesm2022/igo2-common-dom.mjs +7 -7
- package/fesm2022/igo2-common-drag-drop.mjs +59 -75
- package/fesm2022/igo2-common-drag-drop.mjs.map +1 -1
- package/fesm2022/igo2-common-dynamic-component.mjs +34 -52
- package/fesm2022/igo2-common-dynamic-component.mjs.map +1 -1
- package/fesm2022/igo2-common-entity.mjs +284 -220
- package/fesm2022/igo2-common-entity.mjs.map +1 -1
- package/fesm2022/igo2-common-flexible.mjs +13 -16
- package/fesm2022/igo2-common-flexible.mjs.map +1 -1
- package/fesm2022/igo2-common-form.mjs +120 -174
- package/fesm2022/igo2-common-form.mjs.map +1 -1
- package/fesm2022/igo2-common-home-button.mjs +11 -12
- package/fesm2022/igo2-common-home-button.mjs.map +1 -1
- package/fesm2022/igo2-common-icon.mjs +18 -24
- package/fesm2022/igo2-common-icon.mjs.map +1 -1
- package/fesm2022/igo2-common-image.mjs +16 -20
- package/fesm2022/igo2-common-image.mjs.map +1 -1
- package/fesm2022/igo2-common-interactive-tour.mjs +28 -33
- package/fesm2022/igo2-common-interactive-tour.mjs.map +1 -1
- package/fesm2022/igo2-common-json-dialog.mjs +11 -11
- package/fesm2022/igo2-common-json-dialog.mjs.map +1 -1
- package/fesm2022/igo2-common-keyvalue.mjs +7 -7
- package/fesm2022/igo2-common-list.mjs +49 -66
- package/fesm2022/igo2-common-list.mjs.map +1 -1
- package/fesm2022/igo2-common-panel.mjs +15 -28
- package/fesm2022/igo2-common-panel.mjs.map +1 -1
- package/fesm2022/igo2-common-resizable-bar.mjs +25 -32
- package/fesm2022/igo2-common-resizable-bar.mjs.map +1 -1
- package/fesm2022/igo2-common-select-value-dialog.mjs +10 -10
- package/fesm2022/igo2-common-sidenav.mjs +7 -7
- package/fesm2022/igo2-common-spinner.mjs +11 -11
- package/fesm2022/igo2-common-spinner.mjs.map +1 -1
- package/fesm2022/igo2-common-stop-propagation.mjs +10 -10
- package/fesm2022/igo2-common-table.mjs +57 -87
- package/fesm2022/igo2-common-table.mjs.map +1 -1
- package/fesm2022/igo2-common-timepicker.mjs +105 -0
- package/fesm2022/igo2-common-timepicker.mjs.map +1 -0
- package/fesm2022/igo2-common-tool.mjs +29 -35
- package/fesm2022/igo2-common-tool.mjs.map +1 -1
- package/fesm2022/igo2-common-widget.mjs +27 -36
- package/fesm2022/igo2-common-widget.mjs.map +1 -1
- package/fesm2022/igo2-common-workspace.mjs +34 -44
- package/fesm2022/igo2-common-workspace.mjs.map +1 -1
- package/flexible/index.d.ts +2 -2
- package/form/index.d.ts +31 -33
- package/home-button/index.d.ts +1 -2
- package/icon/index.d.ts +4 -5
- package/image/index.d.ts +3 -3
- package/interactive-tour/index.d.ts +5 -5
- package/list/index.d.ts +23 -23
- package/package.json +13 -4
- package/panel/index.d.ts +4 -6
- package/resizable-bar/index.d.ts +11 -13
- package/table/index.d.ts +13 -19
- package/timepicker/index.d.ts +33 -0
- package/tool/index.d.ts +5 -5
- package/widget/index.d.ts +9 -9
- package/workspace/index.d.ts +13 -12
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, Renderer2, ElementRef,
|
|
2
|
+
import { inject, Renderer2, ElementRef, output, HostListener, Input, Directive, effect, contentChildren, Component, NgModule } from '@angular/core';
|
|
3
3
|
import { NgClass } from '@angular/common';
|
|
4
4
|
import * as i1 from '@angular/material/list';
|
|
5
5
|
import { MatListModule } from '@angular/material/list';
|
|
@@ -69,18 +69,18 @@ class ListItemDirective {
|
|
|
69
69
|
value ? this.disable.emit(this) : this.enable.emit(this);
|
|
70
70
|
}
|
|
71
71
|
_disabled = false;
|
|
72
|
-
beforeSelect =
|
|
73
|
-
beforeFocus =
|
|
74
|
-
beforeUnselect =
|
|
75
|
-
beforeUnfocus =
|
|
76
|
-
beforeDisable =
|
|
77
|
-
beforeEnable =
|
|
78
|
-
focus =
|
|
79
|
-
unfocus =
|
|
80
|
-
select =
|
|
81
|
-
unselect =
|
|
82
|
-
disable =
|
|
83
|
-
enable =
|
|
72
|
+
beforeSelect = output();
|
|
73
|
+
beforeFocus = output();
|
|
74
|
+
beforeUnselect = output();
|
|
75
|
+
beforeUnfocus = output();
|
|
76
|
+
beforeDisable = output();
|
|
77
|
+
beforeEnable = output();
|
|
78
|
+
focus = output();
|
|
79
|
+
unfocus = output();
|
|
80
|
+
select = output();
|
|
81
|
+
unselect = output();
|
|
82
|
+
disable = output();
|
|
83
|
+
enable = output();
|
|
84
84
|
onClick() {
|
|
85
85
|
this.selected = true;
|
|
86
86
|
}
|
|
@@ -119,10 +119,10 @@ class ListItemDirective {
|
|
|
119
119
|
removeCls(cls) {
|
|
120
120
|
this.renderer.removeClass(this.el.nativeElement, cls);
|
|
121
121
|
}
|
|
122
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
123
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.
|
|
122
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ListItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
123
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.16", type: ListItemDirective, isStandalone: true, selector: "[igoListItem]", inputs: { color: "color", focused: "focused", selected: "selected", disabled: "disabled" }, outputs: { beforeSelect: "beforeSelect", beforeFocus: "beforeFocus", beforeUnselect: "beforeUnselect", beforeUnfocus: "beforeUnfocus", beforeDisable: "beforeDisable", beforeEnable: "beforeEnable", focus: "focus", unfocus: "unfocus", select: "select", unselect: "unselect", disable: "disable", enable: "enable" }, host: { listeners: { "click": "onClick()" } }, ngImport: i0 });
|
|
124
124
|
}
|
|
125
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
125
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ListItemDirective, decorators: [{
|
|
126
126
|
type: Directive,
|
|
127
127
|
args: [{
|
|
128
128
|
selector: '[igoListItem]',
|
|
@@ -136,31 +136,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
|
|
|
136
136
|
type: Input
|
|
137
137
|
}], disabled: [{
|
|
138
138
|
type: Input
|
|
139
|
-
}], beforeSelect: [{
|
|
140
|
-
type: Output
|
|
141
|
-
}], beforeFocus: [{
|
|
142
|
-
type: Output
|
|
143
|
-
}], beforeUnselect: [{
|
|
144
|
-
type: Output
|
|
145
|
-
}], beforeUnfocus: [{
|
|
146
|
-
type: Output
|
|
147
|
-
}], beforeDisable: [{
|
|
148
|
-
type: Output
|
|
149
|
-
}], beforeEnable: [{
|
|
150
|
-
type: Output
|
|
151
|
-
}], focus: [{
|
|
152
|
-
type: Output
|
|
153
|
-
}], unfocus: [{
|
|
154
|
-
type: Output
|
|
155
|
-
}], select: [{
|
|
156
|
-
type: Output
|
|
157
|
-
}], unselect: [{
|
|
158
|
-
type: Output
|
|
159
|
-
}], disable: [{
|
|
160
|
-
type: Output
|
|
161
|
-
}], enable: [{
|
|
162
|
-
type: Output
|
|
163
|
-
}], onClick: [{
|
|
139
|
+
}], beforeSelect: [{ type: i0.Output, args: ["beforeSelect"] }], beforeFocus: [{ type: i0.Output, args: ["beforeFocus"] }], beforeUnselect: [{ type: i0.Output, args: ["beforeUnselect"] }], beforeUnfocus: [{ type: i0.Output, args: ["beforeUnfocus"] }], beforeDisable: [{ type: i0.Output, args: ["beforeDisable"] }], beforeEnable: [{ type: i0.Output, args: ["beforeEnable"] }], focus: [{ type: i0.Output, args: ["focus"] }], unfocus: [{ type: i0.Output, args: ["unfocus"] }], select: [{ type: i0.Output, args: ["select"] }], unselect: [{ type: i0.Output, args: ["unselect"] }], disable: [{ type: i0.Output, args: ["disable"] }], enable: [{ type: i0.Output, args: ["enable"] }], onClick: [{
|
|
164
140
|
type: HostListener,
|
|
165
141
|
args: ['click']
|
|
166
142
|
}] } });
|
|
@@ -197,9 +173,15 @@ class ListComponent {
|
|
|
197
173
|
}
|
|
198
174
|
_focusedItem;
|
|
199
175
|
navigationEnabled;
|
|
200
|
-
|
|
176
|
+
// Accept both rxjs Subscription and Angular signal OutputRefSubscription
|
|
201
177
|
subscriptions = [];
|
|
202
|
-
|
|
178
|
+
listItemsEffect = effect(() => {
|
|
179
|
+
this.listItems();
|
|
180
|
+
this.init();
|
|
181
|
+
}, ...(ngDevMode ? [{ debugName: "listItemsEffect" }] : []));
|
|
182
|
+
listItems = contentChildren(ListItemDirective, ...(ngDevMode ? [{ debugName: "listItems", descendants: true }] : [{
|
|
183
|
+
descendants: true
|
|
184
|
+
}]));
|
|
203
185
|
handleKeyboardEvent(event) {
|
|
204
186
|
// It would be nice to be able to unsubscribe to the event
|
|
205
187
|
// completely but until ES7 this won't be possible because
|
|
@@ -218,13 +200,17 @@ class ListComponent {
|
|
|
218
200
|
this.enableNavigation();
|
|
219
201
|
}
|
|
220
202
|
ngAfterViewInit() {
|
|
221
|
-
|
|
203
|
+
const listItems = this.listItems();
|
|
204
|
+
if (listItems.length) {
|
|
222
205
|
this.init();
|
|
223
206
|
}
|
|
224
|
-
this.listItems$$ = this.listItems.changes.subscribe(() => this.init());
|
|
225
207
|
}
|
|
226
208
|
ngOnDestroy() {
|
|
227
|
-
this.
|
|
209
|
+
this.unsubscribe();
|
|
210
|
+
if (this.listItemsEffect) {
|
|
211
|
+
this.listItemsEffect.destroy();
|
|
212
|
+
this.listItemsEffect = undefined;
|
|
213
|
+
}
|
|
228
214
|
}
|
|
229
215
|
focus(item) {
|
|
230
216
|
if (!this.selection) {
|
|
@@ -244,7 +230,7 @@ class ListComponent {
|
|
|
244
230
|
this.focusedItem = undefined;
|
|
245
231
|
}
|
|
246
232
|
focusNext() {
|
|
247
|
-
const items = this.listItems
|
|
233
|
+
const items = this.listItems();
|
|
248
234
|
let item;
|
|
249
235
|
const igoList = this.el.nativeElement;
|
|
250
236
|
let disabled = true;
|
|
@@ -272,7 +258,7 @@ class ListComponent {
|
|
|
272
258
|
}
|
|
273
259
|
}
|
|
274
260
|
focusPrevious() {
|
|
275
|
-
const items = this.listItems
|
|
261
|
+
const items = this.listItems();
|
|
276
262
|
let item;
|
|
277
263
|
const igoList = this.el.nativeElement;
|
|
278
264
|
let disabled = true;
|
|
@@ -336,7 +322,7 @@ class ListComponent {
|
|
|
336
322
|
}
|
|
337
323
|
subscribe() {
|
|
338
324
|
this.unsubscribe();
|
|
339
|
-
this.listItems
|
|
325
|
+
this.listItems().forEach((item) => {
|
|
340
326
|
this.subscriptions.push(item.beforeSelect.subscribe((item2) => this.handleItemBeforeSelect(item2)));
|
|
341
327
|
this.subscriptions.push(item.select.subscribe((item2) => this.handleItemSelect(item2)));
|
|
342
328
|
this.subscriptions.push(item.beforeFocus.subscribe((item2) => this.handleItemBeforeFocus(item2)));
|
|
@@ -364,15 +350,13 @@ class ListComponent {
|
|
|
364
350
|
this.selectedItem = item;
|
|
365
351
|
}
|
|
366
352
|
findSelectedItem() {
|
|
367
|
-
return this.listItems
|
|
353
|
+
return this.listItems().find((item) => item.selected);
|
|
368
354
|
}
|
|
369
355
|
findFocusedItem() {
|
|
370
|
-
return this.listItems
|
|
356
|
+
return this.listItems().find((item) => item.focused);
|
|
371
357
|
}
|
|
372
358
|
getFocusedIndex() {
|
|
373
|
-
return this.listItems
|
|
374
|
-
.toArray()
|
|
375
|
-
.findIndex((item) => item === this.focusedItem);
|
|
359
|
+
return this.listItems().findIndex((item) => item === this.focusedItem);
|
|
376
360
|
}
|
|
377
361
|
navigate(key) {
|
|
378
362
|
switch (key) {
|
|
@@ -386,20 +370,19 @@ class ListComponent {
|
|
|
386
370
|
break;
|
|
387
371
|
}
|
|
388
372
|
}
|
|
389
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
390
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
373
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
374
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.3.16", type: ListComponent, isStandalone: true, selector: "igo-list", inputs: { navigation: "navigation", selection: "selection" }, host: { listeners: { "document:keydown": "handleKeyboardEvent($event)", "document:enter": "handleKeyboardEvent($event)" } }, queries: [{ propertyName: "listItems", predicate: ListItemDirective, descendants: true, isSignal: true }], ngImport: i0, template: "<mat-list\n igoClickout\n [ngClass]=\"{ selectable: selection }\"\n (clickout)=\"disableNavigation()\"\n (click)=\"enableNavigation()\"\n>\n <ng-content />\n</mat-list>\n", styles: [":host{display:block;height:100%;overflow:auto;position:relative}:host mat-list{padding-top:0}:host ::ng-deep [igolistitem][color=primary].igo-list-item-selected>mat-list-item{background-color:var(--mat-sys-primary-fixed);color:var(--mat-sys-on-primary-fixed)}:host ::ng-deep [igolistitem][color=primary]:not(.igo-list-item-disabled):hover>mat-list-item,:host ::ng-deep [igolistitem][color=primary].igo-list-item-focused>mat-list-item{background-color:var(--mat-sys-primary-fixed-dim);color:var(--mat-sys-on-primary-fixed)}:host ::ng-deep [igolistitem][color=accent].igo-list-item-selected>mat-list-item{background-color:var(--mat-sys-secondary-fixed-dim);color:var(--mat-sys-on-secondary-fixed)}:host ::ng-deep [igolistitem][color=accent]:not(.igo-list-item-disabled):hover>mat-list-item,:host ::ng-deep [igolistitem][color=accent].igo-list-item-focused>mat-list-item{background-color:var(--mat-sys-secondary-fixed);color:var(--mat-sys-on-secondary-fixed)}:host ::ng-deep [igolistitem].igo-list-item-disabled>mat-list-item{color:#00000061}:host ::ng-deep [igolistitem]:focus{outline:none}:host ::ng-deep .mat-mdc-list .mat-mdc-list-item .mdc-list-item__primary-text{white-space:normal;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;max-height:36px;line-height:18px;-webkit-box-orient:vertical;-webkit-line-clamp:2}:host ::ng-deep .mat-mdc-list .mat-mdc-list-item.mdc-list-item--with-leading-icon{height:48px}:host ::ng-deep .mat-mdc-list ::ng-deep igo-collapsible>.mat-mdc-list-item>.mdc-list-item__primary-text>.mat-mdc-list-item{font-weight:700;opacity:.9}:host ::ng-deep mat-list.selectable ::ng-deep [igolistitem]:not(.igo-list-item-disabled) mat-list-item:hover{cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: MatListModule }, { kind: "component", type: i1.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "directive", type: ClickoutDirective, selector: "[igoClickout]", outputs: ["clickout"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
391
375
|
}
|
|
392
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
376
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ListComponent, decorators: [{
|
|
393
377
|
type: Component,
|
|
394
|
-
args: [{ selector: 'igo-list', imports: [MatListModule, ClickoutDirective, NgClass], template: "<mat-list\n igoClickout\n [ngClass]=\"{ selectable: selection }\"\n (clickout)=\"disableNavigation()\"\n (click)=\"enableNavigation()\"\n>\n <ng-content
|
|
378
|
+
args: [{ selector: 'igo-list', imports: [MatListModule, ClickoutDirective, NgClass], template: "<mat-list\n igoClickout\n [ngClass]=\"{ selectable: selection }\"\n (clickout)=\"disableNavigation()\"\n (click)=\"enableNavigation()\"\n>\n <ng-content />\n</mat-list>\n", styles: [":host{display:block;height:100%;overflow:auto;position:relative}:host mat-list{padding-top:0}:host ::ng-deep [igolistitem][color=primary].igo-list-item-selected>mat-list-item{background-color:var(--mat-sys-primary-fixed);color:var(--mat-sys-on-primary-fixed)}:host ::ng-deep [igolistitem][color=primary]:not(.igo-list-item-disabled):hover>mat-list-item,:host ::ng-deep [igolistitem][color=primary].igo-list-item-focused>mat-list-item{background-color:var(--mat-sys-primary-fixed-dim);color:var(--mat-sys-on-primary-fixed)}:host ::ng-deep [igolistitem][color=accent].igo-list-item-selected>mat-list-item{background-color:var(--mat-sys-secondary-fixed-dim);color:var(--mat-sys-on-secondary-fixed)}:host ::ng-deep [igolistitem][color=accent]:not(.igo-list-item-disabled):hover>mat-list-item,:host ::ng-deep [igolistitem][color=accent].igo-list-item-focused>mat-list-item{background-color:var(--mat-sys-secondary-fixed);color:var(--mat-sys-on-secondary-fixed)}:host ::ng-deep [igolistitem].igo-list-item-disabled>mat-list-item{color:#00000061}:host ::ng-deep [igolistitem]:focus{outline:none}:host ::ng-deep .mat-mdc-list .mat-mdc-list-item .mdc-list-item__primary-text{white-space:normal;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;max-height:36px;line-height:18px;-webkit-box-orient:vertical;-webkit-line-clamp:2}:host ::ng-deep .mat-mdc-list .mat-mdc-list-item.mdc-list-item--with-leading-icon{height:48px}:host ::ng-deep .mat-mdc-list ::ng-deep igo-collapsible>.mat-mdc-list-item>.mdc-list-item__primary-text>.mat-mdc-list-item{font-weight:700;opacity:.9}:host ::ng-deep mat-list.selectable ::ng-deep [igolistitem]:not(.igo-list-item-disabled) mat-list-item:hover{cursor:pointer}\n"] }]
|
|
395
379
|
}], propDecorators: { navigation: [{
|
|
396
380
|
type: Input
|
|
397
381
|
}], selection: [{
|
|
398
382
|
type: Input
|
|
399
|
-
}], listItems: [{
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
}], handleKeyboardEvent: [{
|
|
383
|
+
}], listItems: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => ListItemDirective), { ...{
|
|
384
|
+
descendants: true
|
|
385
|
+
}, isSignal: true }] }], handleKeyboardEvent: [{
|
|
403
386
|
type: HostListener,
|
|
404
387
|
args: ['document:keydown', ['$event']]
|
|
405
388
|
}, {
|
|
@@ -417,11 +400,11 @@ class IgoListModule {
|
|
|
417
400
|
providers: []
|
|
418
401
|
};
|
|
419
402
|
}
|
|
420
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
421
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
|
422
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.
|
|
403
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: IgoListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
404
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.16", ngImport: i0, type: IgoListModule, imports: [ListItemDirective, ListComponent], exports: [ListItemDirective, ListComponent] });
|
|
405
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: IgoListModule, imports: [ListComponent] });
|
|
423
406
|
}
|
|
424
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
407
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: IgoListModule, decorators: [{
|
|
425
408
|
type: NgModule,
|
|
426
409
|
args: [{
|
|
427
410
|
imports: [ListItemDirective, ListComponent],
|
|
@@ -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 inject\n} from '@angular/core';\n\n@Directive({\n selector: '[igoListItem]',\n standalone: true\n})\nexport class ListItemDirective {\n renderer = inject(Renderer2);\n el = inject(ElementRef);\n\n static focusedCls = 'igo-list-item-focused';\n static selectedCls = 'igo-list-item-selected';\n static disabledCls = 'igo-list-item-disabled';\n\n @Input()\n get color() {\n return this._color;\n }\n set color(value: string) {\n this._color = value;\n }\n private _color = 'primary';\n\n @Input()\n get focused() {\n return this._focused;\n }\n set focused(value: boolean) {\n if (value === this._focused) {\n return;\n }\n if (this.disabled) {\n return;\n }\n\n value ? this.beforeFocus.emit(this) : this.beforeUnfocus.emit(this);\n\n this._focused = value;\n if (this.selected !== true) {\n this.toggleFocusedClass();\n }\n\n value ? this.focus.emit(this) : this.unfocus.emit(this);\n }\n private _focused = false;\n\n @Input()\n get selected() {\n return this._selected;\n }\n set selected(value: boolean) {\n if (value === this._selected) {\n return;\n }\n if (this.disabled) {\n return;\n }\n\n value ? this.beforeSelect.emit(this) : this.beforeUnselect.emit(this);\n\n this._selected = value;\n this._focused = value;\n this.toggleSelectedClass();\n\n value ? this.select.emit(this) : this.unselect.emit(this);\n }\n private _selected = false;\n\n @Input()\n get disabled() {\n return this._disabled;\n }\n set disabled(value: boolean) {\n if (value === this._disabled) {\n return;\n }\n\n if (value === true) {\n this.selected = false;\n }\n\n value ? this.beforeDisable.emit(this) : this.beforeEnable.emit(this);\n\n this._disabled = value;\n this.toggleDisabledClass();\n\n value ? this.disable.emit(this) : this.enable.emit(this);\n }\n private _disabled = false;\n\n @Output() beforeSelect = new EventEmitter<ListItemDirective>();\n @Output() beforeFocus = new EventEmitter<ListItemDirective>();\n @Output() beforeUnselect = new EventEmitter<ListItemDirective>();\n @Output() beforeUnfocus = new EventEmitter<ListItemDirective>();\n @Output() beforeDisable = new EventEmitter<ListItemDirective>();\n @Output() beforeEnable = new EventEmitter<ListItemDirective>();\n @Output() focus = new EventEmitter<ListItemDirective>();\n @Output() unfocus = new EventEmitter<ListItemDirective>();\n @Output() select = new EventEmitter<ListItemDirective>();\n @Output() unselect = new EventEmitter<ListItemDirective>();\n @Output() disable = new EventEmitter<ListItemDirective>();\n @Output() enable = new EventEmitter<ListItemDirective>();\n\n @HostListener('click')\n onClick() {\n this.selected = true;\n }\n\n 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 inject\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 private el = inject(ElementRef);\n\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 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 HostListener,\n Input,\n Renderer2,\n inject,\n output\n} from '@angular/core';\n\n@Directive({\n selector: '[igoListItem]',\n standalone: true\n})\nexport class ListItemDirective {\n renderer = inject(Renderer2);\n el = inject(ElementRef);\n\n static focusedCls = 'igo-list-item-focused';\n static selectedCls = 'igo-list-item-selected';\n static disabledCls = 'igo-list-item-disabled';\n\n @Input()\n get color() {\n return this._color;\n }\n set color(value: string) {\n this._color = value;\n }\n private _color = 'primary';\n\n @Input()\n get focused() {\n return this._focused;\n }\n set focused(value: boolean) {\n if (value === this._focused) {\n return;\n }\n if (this.disabled) {\n return;\n }\n\n value ? this.beforeFocus.emit(this) : this.beforeUnfocus.emit(this);\n\n this._focused = value;\n if (this.selected !== true) {\n this.toggleFocusedClass();\n }\n\n value ? this.focus.emit(this) : this.unfocus.emit(this);\n }\n private _focused = false;\n\n @Input()\n get selected() {\n return this._selected;\n }\n set selected(value: boolean) {\n if (value === this._selected) {\n return;\n }\n if (this.disabled) {\n return;\n }\n\n value ? this.beforeSelect.emit(this) : this.beforeUnselect.emit(this);\n\n this._selected = value;\n this._focused = value;\n this.toggleSelectedClass();\n\n value ? this.select.emit(this) : this.unselect.emit(this);\n }\n private _selected = false;\n\n @Input()\n get disabled() {\n return this._disabled;\n }\n set disabled(value: boolean) {\n if (value === this._disabled) {\n return;\n }\n\n if (value === true) {\n this.selected = false;\n }\n\n value ? this.beforeDisable.emit(this) : this.beforeEnable.emit(this);\n\n this._disabled = value;\n this.toggleDisabledClass();\n\n value ? this.disable.emit(this) : this.enable.emit(this);\n }\n private _disabled = false;\n\n readonly beforeSelect = output<ListItemDirective>();\n readonly beforeFocus = output<ListItemDirective>();\n readonly beforeUnselect = output<ListItemDirective>();\n readonly beforeUnfocus = output<ListItemDirective>();\n readonly beforeDisable = output<ListItemDirective>();\n readonly beforeEnable = output<ListItemDirective>();\n readonly focus = output<ListItemDirective>();\n readonly unfocus = output<ListItemDirective>();\n readonly select = output<ListItemDirective>();\n readonly unselect = output<ListItemDirective>();\n readonly disable = output<ListItemDirective>();\n readonly enable = output<ListItemDirective>();\n\n @HostListener('click')\n onClick() {\n this.selected = true;\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 ElementRef,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n contentChildren,\n effect,\n inject\n} from '@angular/core';\nimport { MatListModule } from '@angular/material/list';\n\nimport { ClickoutDirective } from '@igo2/common/clickout';\n\n// subscriptions can be rxjs Subscription or OutputRefSubscription-like objects\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 private el = inject(ElementRef);\n\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 // Accept both rxjs Subscription and Angular signal OutputRefSubscription\n private subscriptions: { unsubscribe: () => void }[] = [];\n private listItemsEffect = effect(() => {\n this.listItems();\n this.init();\n });\n\n readonly listItems = contentChildren(ListItemDirective, {\n descendants: true\n });\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 ngOnInit() {\n this.enableNavigation();\n }\n\n ngAfterViewInit() {\n const listItems = this.listItems();\n if (listItems.length) {\n this.init();\n }\n }\n\n ngOnDestroy() {\n this.unsubscribe();\n if (this.listItemsEffect) {\n this.listItemsEffect.destroy();\n this.listItemsEffect = undefined;\n }\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();\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();\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().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) => 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().find((item) => item.selected);\n }\n\n private findFocusedItem() {\n return this.listItems().find((item) => item.focused);\n }\n\n private getFocusedIndex() {\n return this.listItems().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 />\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,43 +1,30 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { input, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
|
|
3
3
|
import { NgClass } from '@angular/common';
|
|
4
4
|
|
|
5
5
|
class PanelComponent {
|
|
6
|
-
title;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
this._withHeader = value;
|
|
12
|
-
}
|
|
13
|
-
_withHeader = true;
|
|
14
|
-
cursorPointer = false;
|
|
15
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: PanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
16
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", 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: "@if (withHeader) {\n <div\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}\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: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
6
|
+
title = input(undefined, ...(ngDevMode ? [{ debugName: "title" }] : []));
|
|
7
|
+
withHeader = input(true, ...(ngDevMode ? [{ debugName: "withHeader" }] : []));
|
|
8
|
+
cursorPointer = input(false, ...(ngDevMode ? [{ debugName: "cursorPointer" }] : []));
|
|
9
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: PanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
10
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: PanelComponent, isStandalone: true, selector: "igo-panel", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, withHeader: { classPropertyName: "withHeader", publicName: "withHeader", isSignal: true, isRequired: false, transformFunction: null }, cursorPointer: { classPropertyName: "cursorPointer", publicName: "cursorPointer", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.igo-panel-with-header": "withHeader()" } }, ngImport: i0, template: "@if (withHeader()) {\n <div\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]\" />\n </div>\n <h4 class=\"igo-panel-title\">\n {{ title() }}\n <ng-content select=\"[panelHeader]\" />\n </h4>\n <div class=\"panel-right\">\n <ng-content select=\"[panelRightButton]\" />\n </div>\n </div>\n}\n<div class=\"igo-panel-content\" title=\"\">\n <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: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
17
11
|
}
|
|
18
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: PanelComponent, decorators: [{
|
|
19
13
|
type: Component,
|
|
20
|
-
args: [{ selector: 'igo-panel', changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgClass],
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
type: Input
|
|
25
|
-
}, {
|
|
26
|
-
type: HostBinding,
|
|
27
|
-
args: ['class.igo-panel-with-header']
|
|
28
|
-
}], cursorPointer: [{
|
|
29
|
-
type: Input
|
|
30
|
-
}] } });
|
|
14
|
+
args: [{ selector: 'igo-panel', changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgClass], host: {
|
|
15
|
+
'[class.igo-panel-with-header]': 'withHeader()'
|
|
16
|
+
}, template: "@if (withHeader()) {\n <div\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]\" />\n </div>\n <h4 class=\"igo-panel-title\">\n {{ title() }}\n <ng-content select=\"[panelHeader]\" />\n </h4>\n <div class=\"panel-right\">\n <ng-content select=\"[panelRightButton]\" />\n </div>\n </div>\n}\n<div class=\"igo-panel-content\" title=\"\">\n <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"] }]
|
|
17
|
+
}], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], withHeader: [{ type: i0.Input, args: [{ isSignal: true, alias: "withHeader", required: false }] }], cursorPointer: [{ type: i0.Input, args: [{ isSignal: true, alias: "cursorPointer", required: false }] }] } });
|
|
31
18
|
|
|
32
19
|
/**
|
|
33
20
|
* @deprecated import the PanelComponent directly
|
|
34
21
|
*/
|
|
35
22
|
class IgoPanelModule {
|
|
36
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
37
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
|
38
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.
|
|
23
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: IgoPanelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
24
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.16", ngImport: i0, type: IgoPanelModule, imports: [PanelComponent], exports: [PanelComponent] });
|
|
25
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: IgoPanelModule });
|
|
39
26
|
}
|
|
40
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
27
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: IgoPanelModule, decorators: [{
|
|
41
28
|
type: NgModule,
|
|
42
29
|
args: [{
|
|
43
30
|
imports: [PanelComponent],
|
|
@@ -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 } from '@angular/common';\nimport {
|
|
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 } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, input } 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: [NgClass],\n host: {\n '[class.igo-panel-with-header]': 'withHeader()'\n }\n})\nexport class PanelComponent {\n readonly title = input<string>(undefined);\n readonly withHeader = input(true);\n readonly cursorPointer = input(false);\n}\n","@if (withHeader()) {\n <div\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]\" />\n </div>\n <h4 class=\"igo-panel-title\">\n {{ title() }}\n <ng-content select=\"[panelHeader]\" />\n </h4>\n <div class=\"panel-right\">\n <ng-content select=\"[panelRightButton]\" />\n </div>\n </div>\n}\n<div class=\"igo-panel-content\" title=\"\">\n <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":";;;;MAaa,cAAc,CAAA;AAChB,IAAA,KAAK,GAAG,KAAK,CAAS,SAAS,iDAAC;AAChC,IAAA,UAAU,GAAG,KAAK,CAAC,IAAI,sDAAC;AACxB,IAAA,aAAa,GAAG,KAAK,CAAC,KAAK,yDAAC;wGAH1B,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,6BAAA,EAAA,cAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECb3B,miBAqBA,EAAA,MAAA,EAAA,CAAA,svBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDbY,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;;4FAKN,cAAc,EAAA,UAAA,EAAA,CAAA;kBAV1B,SAAS;+BACE,WAAW,EAAA,eAAA,EAGJ,uBAAuB,CAAC,MAAM,WACtC,CAAC,OAAO,CAAC,EAAA,IAAA,EACZ;AACJ,wBAAA,+BAA+B,EAAE;AAClC,qBAAA,EAAA,QAAA,EAAA,miBAAA,EAAA,MAAA,EAAA,CAAA,svBAAA,CAAA,EAAA;;;AEPH;;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;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { output, HostListener, Directive, input, numberAttribute, HostBinding, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
3
3
|
import { fromEvent } from 'rxjs';
|
|
4
4
|
import { NgClass } from '@angular/common';
|
|
5
5
|
import * as i2 from '@angular/material/button';
|
|
@@ -10,7 +10,7 @@ import { MatIconModule } from '@angular/material/icon';
|
|
|
10
10
|
class ResizeDirective {
|
|
11
11
|
mouseMove$$;
|
|
12
12
|
mouseUp$$;
|
|
13
|
-
change =
|
|
13
|
+
change = output();
|
|
14
14
|
onMouseDown(event) {
|
|
15
15
|
this.mouseUp$$ = fromEvent(document, 'mouseup').subscribe(() => {
|
|
16
16
|
this._unsubscribe();
|
|
@@ -26,17 +26,15 @@ class ResizeDirective {
|
|
|
26
26
|
this.mouseMove$$.unsubscribe();
|
|
27
27
|
this.mouseMove$$ = null;
|
|
28
28
|
}
|
|
29
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
30
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.
|
|
29
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ResizeDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
30
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.16", type: ResizeDirective, isStandalone: true, selector: "[igoResize]", outputs: { change: "change" }, host: { listeners: { "mousedown": "onMouseDown($event)" } }, ngImport: i0 });
|
|
31
31
|
}
|
|
32
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ResizeDirective, decorators: [{
|
|
33
33
|
type: Directive,
|
|
34
34
|
args: [{
|
|
35
35
|
selector: '[igoResize]'
|
|
36
36
|
}]
|
|
37
|
-
}], propDecorators: { change: [{
|
|
38
|
-
type: Output
|
|
39
|
-
}], onMouseDown: [{
|
|
37
|
+
}], propDecorators: { change: [{ type: i0.Output, args: ["change"] }], onMouseDown: [{
|
|
40
38
|
type: HostListener,
|
|
41
39
|
args: ['mousedown', ['$event']]
|
|
42
40
|
}] } });
|
|
@@ -46,46 +44,41 @@ const AlignmentType = ['vertical', 'horizontal'];
|
|
|
46
44
|
class ResizableBarComponent {
|
|
47
45
|
alignement;
|
|
48
46
|
iconRotation;
|
|
49
|
-
anchor = 'right';
|
|
47
|
+
anchor = input('right', ...(ngDevMode ? [{ debugName: "anchor" }] : []));
|
|
50
48
|
/** En pixel */
|
|
51
|
-
min
|
|
49
|
+
min = input(undefined, ...(ngDevMode ? [{ debugName: "min", transform: numberAttribute }] : [{
|
|
50
|
+
transform: numberAttribute
|
|
51
|
+
}]));
|
|
52
52
|
/** En pixel */
|
|
53
|
-
max
|
|
54
|
-
|
|
53
|
+
max = input(undefined, ...(ngDevMode ? [{ debugName: "max", transform: numberAttribute }] : [{
|
|
54
|
+
transform: numberAttribute
|
|
55
|
+
}]));
|
|
56
|
+
change = output();
|
|
55
57
|
get cssClass() {
|
|
56
|
-
return `${this.alignement} ${this.anchor}`;
|
|
58
|
+
return `${this.alignement} ${this.anchor()}`;
|
|
57
59
|
}
|
|
58
60
|
ngOnInit() {
|
|
61
|
+
const anchor = this.anchor();
|
|
59
62
|
this.alignement =
|
|
60
|
-
|
|
61
|
-
? 'horizontal'
|
|
62
|
-
: 'vertical';
|
|
63
|
+
anchor === 'top' || anchor === 'bottom' ? 'horizontal' : 'vertical';
|
|
63
64
|
this.iconRotation = this.alignement === 'vertical' ? 'rotate(90deg)' : '';
|
|
64
65
|
}
|
|
65
66
|
onChange(event) {
|
|
66
67
|
const value = this.alignement === 'horizontal' ? event.clientX : event.clientX;
|
|
67
|
-
|
|
68
|
+
const min = this.min();
|
|
69
|
+
const max = this.max();
|
|
70
|
+
if ((min && value <= min) || (max && value >= max)) {
|
|
68
71
|
return;
|
|
69
72
|
}
|
|
70
73
|
this.change.emit(event);
|
|
71
74
|
}
|
|
72
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
73
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
75
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ResizableBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
76
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.16", type: ResizableBarComponent, isStandalone: true, selector: "igo-resizable-bar", inputs: { anchor: { classPropertyName: "anchor", publicName: "anchor", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null } }, 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], a[mat-mini-fab], button[matMiniFab], a[matMiniFab]", exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: ResizeDirective, selector: "[igoResize]", outputs: ["change"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
74
77
|
}
|
|
75
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
78
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ResizableBarComponent, decorators: [{
|
|
76
79
|
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-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
|
-
}], propDecorators: { anchor: [{
|
|
79
|
-
type: Input
|
|
80
|
-
}], min: [{
|
|
81
|
-
type: Input,
|
|
82
|
-
args: [{ transform: numberAttribute }]
|
|
83
|
-
}], max: [{
|
|
84
|
-
type: Input,
|
|
85
|
-
args: [{ transform: numberAttribute }]
|
|
86
|
-
}], change: [{
|
|
87
|
-
type: Output
|
|
88
|
-
}], cssClass: [{
|
|
80
|
+
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"] }]
|
|
81
|
+
}], propDecorators: { anchor: [{ type: i0.Input, args: [{ isSignal: true, alias: "anchor", required: false }] }], min: [{ type: i0.Input, args: [{ isSignal: true, alias: "min", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], change: [{ type: i0.Output, args: ["change"] }], cssClass: [{
|
|
89
82
|
type: HostBinding,
|
|
90
83
|
args: ['class']
|
|
91
84
|
}] } });
|