@colijnit/corecomponents_v12 300.1.2 → 300.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -10720,6 +10720,7 @@ class PopupWindowShellComponent {
|
|
|
10720
10720
|
popupWindow;
|
|
10721
10721
|
hasMobileSizings;
|
|
10722
10722
|
_viewContainer;
|
|
10723
|
+
_blankViewContainer;
|
|
10723
10724
|
_appPopupButtons;
|
|
10724
10725
|
isError;
|
|
10725
10726
|
isWarning;
|
|
@@ -10762,8 +10763,10 @@ class PopupWindowShellComponent {
|
|
|
10762
10763
|
ngOnDestroy() {
|
|
10763
10764
|
this._close();
|
|
10764
10765
|
this._viewContainer.clear();
|
|
10766
|
+
this._blankViewContainer.clear();
|
|
10765
10767
|
this._popupCompRef = undefined;
|
|
10766
10768
|
this._viewContainer = undefined;
|
|
10769
|
+
this._blankViewContainer = undefined;
|
|
10767
10770
|
this._changeDetector = undefined;
|
|
10768
10771
|
}
|
|
10769
10772
|
async close(eventType) {
|
|
@@ -10795,7 +10798,12 @@ class PopupWindowShellComponent {
|
|
|
10795
10798
|
this.onCloseClick();
|
|
10796
10799
|
};
|
|
10797
10800
|
_createPopupComponent() {
|
|
10798
|
-
|
|
10801
|
+
if (this._viewContainer) {
|
|
10802
|
+
this._popupCompRef = this._viewContainer.createComponent(this.popupWindow.factory);
|
|
10803
|
+
}
|
|
10804
|
+
else {
|
|
10805
|
+
this._popupCompRef = this._blankViewContainer.createComponent(this.popupWindow.factory);
|
|
10806
|
+
}
|
|
10799
10807
|
ObjectUtils.ForOwnProperty(this.popupWindow.inputs, (value, key) => {
|
|
10800
10808
|
this._popupCompRef.instance[key] = value;
|
|
10801
10809
|
});
|
|
@@ -10840,45 +10848,61 @@ class PopupWindowShellComponent {
|
|
|
10840
10848
|
}
|
|
10841
10849
|
}
|
|
10842
10850
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: PopupWindowShellComponent, deps: [{ token: IconCacheService }, { token: i0.ChangeDetectorRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
10843
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
10844
|
-
|
|
10845
|
-
|
|
10846
|
-
|
|
10847
|
-
|
|
10848
|
-
|
|
10849
|
-
|
|
10850
|
-
|
|
10851
|
-
|
|
10852
|
-
|
|
10853
|
-
|
|
10854
|
-
|
|
10851
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: PopupWindowShellComponent, isStandalone: false, selector: "co-popup-window-shell", inputs: { popupWindow: "popupWindow", hasMobileSizings: "hasMobileSizings" }, host: { properties: { "class.mobile-sizings": "this.hasMobileSizings", "class.popup-error": "this.isError", "class.popup-warning": "this.isWarning", "class.popup-notification": "this.isNotification", "class.popup-question": "this.isQuestion", "class.movable": "this.isMovable" } }, viewQueries: [{ propertyName: "_viewContainer", first: true, predicate: ["popupContent"], descendants: true, read: ViewContainerRef }, { propertyName: "_blankViewContainer", first: true, predicate: ["blankPopupContent"], descendants: true, read: ViewContainerRef }, { propertyName: "_appPopupButtons", first: true, predicate: PopupButtonsComponent, descendants: true }], ngImport: i0, template: `
|
|
10852
|
+
@if (!isBlank) {
|
|
10853
|
+
@if (popupWindow?.settings.downloadable) {
|
|
10854
|
+
<co-button class="circle shadowed popup-downloadable" [iconData]="downloadIcon"
|
|
10855
|
+
iconClass="light"
|
|
10856
|
+
(click)="onDownloadClick()"></co-button>
|
|
10857
|
+
}
|
|
10858
|
+
@if (!popupWindow?.settings.hideCloseIcon) {
|
|
10859
|
+
<co-button class="circle shadowed popup-close" [iconData]="closeIcon"
|
|
10860
|
+
iconClass="light"
|
|
10861
|
+
(click)="onCloseClick()"></co-button>
|
|
10862
|
+
}
|
|
10863
|
+
@if (!isBlank) {
|
|
10864
|
+
<div class="popup-wrapper">
|
|
10865
|
+
<div class="popup-title"><h2 [textContent]="popupWindow?.settings.title"></h2></div>
|
|
10866
|
+
<div class="popup-content" (mousedown)="$event.stopImmediatePropagation()">
|
|
10867
|
+
<ng-template #popupContent></ng-template>
|
|
10868
|
+
</div>
|
|
10869
|
+
<co-popup-buttons [popupWindow]="popupWindow" (buttonClick)="onButtonClick($event)"></co-popup-buttons>
|
|
10855
10870
|
</div>
|
|
10856
|
-
|
|
10857
|
-
|
|
10858
|
-
|
|
10859
|
-
|
|
10860
|
-
|
|
10871
|
+
}
|
|
10872
|
+
}
|
|
10873
|
+
@if (isBlank) {
|
|
10874
|
+
<ng-template #blankPopupContent></ng-template>
|
|
10875
|
+
}
|
|
10876
|
+
`, isInline: true, styles: [":host{position:fixed;display:flex;top:50%;left:50%;transform:translate(-50%,-50%)}:host.popup-error div.popup-wrapper{background:#cfd0d1}:host.popup-warning .secondary-font{color:#fff}:host.popup-warning div.popup-wrapper{background:#484f60}:host.popup-warning div.popup-title,:host.popup-warning div.popup-content{color:#fff}:host.popup-notification div.popup-wrapper,:host.popup-question div.popup-wrapper{background:#cfd0d1}co-button.popup-close,co-button.popup-downloadable{position:absolute;transform:translateY(-50%)}co-button.popup-close{right:5px}co-button.popup-downloadable{right:45px}.popup-wrapper{padding:30px;border-radius:5px;box-shadow:0 0 13px -2px #0003;background:#cfd0d1;min-width:320px}.popup-wrapper .popup-title{padding-bottom:20px;border-bottom:1px solid #DAD9D9}.popup-wrapper .popup-content{margin-top:20px;margin-bottom:20px;max-height:50vh;max-width:80vw;overflow:auto}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "co-button", inputs: ["label", "iconData", "iconDataRight", "isToggleButton", "isToggled", "hidden", "disabled"], outputs: ["onClick", "clickedWhileDisabled", "isToggledChange"] }, { kind: "component", type: PopupButtonsComponent, selector: "co-popup-buttons", inputs: ["popupWindow"], outputs: ["buttonClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
10861
10877
|
}
|
|
10862
10878
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: PopupWindowShellComponent, decorators: [{
|
|
10863
10879
|
type: Component,
|
|
10864
10880
|
args: [{ selector: "co-popup-window-shell", template: `
|
|
10865
|
-
|
|
10866
|
-
|
|
10867
|
-
|
|
10868
|
-
|
|
10869
|
-
|
|
10870
|
-
|
|
10871
|
-
|
|
10872
|
-
|
|
10873
|
-
|
|
10874
|
-
|
|
10875
|
-
|
|
10881
|
+
@if (!isBlank) {
|
|
10882
|
+
@if (popupWindow?.settings.downloadable) {
|
|
10883
|
+
<co-button class="circle shadowed popup-downloadable" [iconData]="downloadIcon"
|
|
10884
|
+
iconClass="light"
|
|
10885
|
+
(click)="onDownloadClick()"></co-button>
|
|
10886
|
+
}
|
|
10887
|
+
@if (!popupWindow?.settings.hideCloseIcon) {
|
|
10888
|
+
<co-button class="circle shadowed popup-close" [iconData]="closeIcon"
|
|
10889
|
+
iconClass="light"
|
|
10890
|
+
(click)="onCloseClick()"></co-button>
|
|
10891
|
+
}
|
|
10892
|
+
@if (!isBlank) {
|
|
10893
|
+
<div class="popup-wrapper">
|
|
10894
|
+
<div class="popup-title"><h2 [textContent]="popupWindow?.settings.title"></h2></div>
|
|
10895
|
+
<div class="popup-content" (mousedown)="$event.stopImmediatePropagation()">
|
|
10896
|
+
<ng-template #popupContent></ng-template>
|
|
10897
|
+
</div>
|
|
10898
|
+
<co-popup-buttons [popupWindow]="popupWindow" (buttonClick)="onButtonClick($event)"></co-popup-buttons>
|
|
10876
10899
|
</div>
|
|
10877
|
-
|
|
10878
|
-
|
|
10879
|
-
|
|
10880
|
-
|
|
10881
|
-
|
|
10900
|
+
}
|
|
10901
|
+
}
|
|
10902
|
+
@if (isBlank) {
|
|
10903
|
+
<ng-template #blankPopupContent></ng-template>
|
|
10904
|
+
}
|
|
10905
|
+
`, changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, styles: [":host{position:fixed;display:flex;top:50%;left:50%;transform:translate(-50%,-50%)}:host.popup-error div.popup-wrapper{background:#cfd0d1}:host.popup-warning .secondary-font{color:#fff}:host.popup-warning div.popup-wrapper{background:#484f60}:host.popup-warning div.popup-title,:host.popup-warning div.popup-content{color:#fff}:host.popup-notification div.popup-wrapper,:host.popup-question div.popup-wrapper{background:#cfd0d1}co-button.popup-close,co-button.popup-downloadable{position:absolute;transform:translateY(-50%)}co-button.popup-close{right:5px}co-button.popup-downloadable{right:45px}.popup-wrapper{padding:30px;border-radius:5px;box-shadow:0 0 13px -2px #0003;background:#cfd0d1;min-width:320px}.popup-wrapper .popup-title{padding-bottom:20px;border-bottom:1px solid #DAD9D9}.popup-wrapper .popup-content{margin-top:20px;margin-bottom:20px;max-height:50vh;max-width:80vw;overflow:auto}\n"] }]
|
|
10882
10906
|
}], ctorParameters: () => [{ type: IconCacheService }, { type: i0.ChangeDetectorRef }, { type: i0.ViewContainerRef }], propDecorators: { popupWindow: [{
|
|
10883
10907
|
type: Input
|
|
10884
10908
|
}], hasMobileSizings: [{
|
|
@@ -10889,6 +10913,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
10889
10913
|
}], _viewContainer: [{
|
|
10890
10914
|
type: ViewChild,
|
|
10891
10915
|
args: ["popupContent", { read: ViewContainerRef }]
|
|
10916
|
+
}], _blankViewContainer: [{
|
|
10917
|
+
type: ViewChild,
|
|
10918
|
+
args: ["blankPopupContent", { read: ViewContainerRef }]
|
|
10892
10919
|
}], _appPopupButtons: [{
|
|
10893
10920
|
type: ViewChild,
|
|
10894
10921
|
args: [PopupButtonsComponent]
|
|
@@ -12043,38 +12070,36 @@ class SimpleGridCellComponent {
|
|
|
12043
12070
|
this._changeDetector.detectChanges();
|
|
12044
12071
|
}
|
|
12045
12072
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SimpleGridCellComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.Injector }, { token: FormComponent, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
12046
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
12073
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: SimpleGridCellComponent, isStandalone: false, selector: "co-simple-grid-cell", inputs: { editMode: "editMode", column: "column", row: "row", fieldEditMode: "fieldEditMode" }, outputs: { cellClick: "cellClick" }, host: { listeners: { "click": "handleClick($event)" }, properties: { "class.co-simple-grid-cell": "this.showClass" } }, viewQueries: [{ propertyName: "editTemplateContent", first: true, predicate: ["editTemplate"], descendants: true, read: BaseInputComponent }, { propertyName: "noEditTemplateContent", first: true, predicate: ["noEditTemplate"], descendants: true }, { propertyName: "noTemplateContent", first: true, predicate: ["noTemplate"], descendants: true }], ngImport: i0, template: `
|
|
12047
12074
|
<div class="simple-grid-column-cell-value" [ngClass]="column.textAlign ? column.textAlign : defaultTextAlign">
|
|
12048
|
-
|
|
12049
|
-
|
|
12050
|
-
|
|
12051
|
-
|
|
12052
|
-
|
|
12053
|
-
|
|
12054
|
-
|
|
12055
|
-
|
|
12056
|
-
|
|
12057
|
-
|
|
12058
|
-
|
|
12059
|
-
|
|
12060
|
-
|
|
12061
|
-
|
|
12062
|
-
|
|
12063
|
-
|
|
12064
|
-
|
|
12065
|
-
<
|
|
12066
|
-
|
|
12067
|
-
|
|
12068
|
-
|
|
12069
|
-
|
|
12070
|
-
|
|
12071
|
-
|
|
12072
|
-
|
|
12073
|
-
|
|
12074
|
-
</div>
|
|
12075
|
-
</ng-template>
|
|
12075
|
+
@if (editMode) {
|
|
12076
|
+
<div class="simple-grid-column-cell-field">
|
|
12077
|
+
@if (column.editTemplate) {
|
|
12078
|
+
<ng-container #editTemplate
|
|
12079
|
+
[ngTemplateOutlet]="column.editTemplate"
|
|
12080
|
+
[ngTemplateOutletInjector]="columnInjector"
|
|
12081
|
+
[ngTemplateOutletContext]="{value: row[column.field], row: row}"></ng-container>
|
|
12082
|
+
} @else {
|
|
12083
|
+
@if (column.template) {
|
|
12084
|
+
<ng-container [ngTemplateOutlet]="column.template"
|
|
12085
|
+
[ngTemplateOutletContext]="{value: row[column.field], row: row}"></ng-container>
|
|
12086
|
+
} @else {
|
|
12087
|
+
<co-input-text [(model)]="row[column.field]" [required]="column.required"></co-input-text>
|
|
12088
|
+
}
|
|
12089
|
+
}
|
|
12090
|
+
</div>
|
|
12091
|
+
} @else {
|
|
12092
|
+
<div class="simple-grid-column-cell-field">
|
|
12093
|
+
@if (column.template) {
|
|
12094
|
+
<ng-container [ngTemplateOutlet]="column.template"
|
|
12095
|
+
[ngTemplateOutletContext]="{value: row[column.field], row: row}"></ng-container>
|
|
12096
|
+
} @else {
|
|
12097
|
+
<span [textContent]="column.getFieldValue(row[column.field])" [title]="row[column.field]"></span>
|
|
12098
|
+
}
|
|
12099
|
+
</div>
|
|
12100
|
+
}
|
|
12076
12101
|
</div>
|
|
12077
|
-
|
|
12102
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: InputTextComponent, selector: "co-input-text", inputs: ["useContent", "placeholder", "align", "type", "formatPipe", "min", "max", "pattern", "digitsOnly", "excludePlusMinus", "showClearButton", "keyDownWhiteList", "showPlaceholderOnFocus", "leftIcon", "rightIcon", "leftIconData", "rightIconData", "selectOnFocus", "emptyPlace", "firstDayOfWeek", "noStyle", "hideArrowButtons", "model"], outputs: ["leftIconClick", "leftIconMouseDown", "leftIconMouseUp", "rightIconClick", "rightIconMouseDown", "rightIconMouseUp", "clearIconClick", "isFocused"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
12078
12103
|
}
|
|
12079
12104
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SimpleGridCellComponent, decorators: [{
|
|
12080
12105
|
type: Component,
|
|
@@ -12082,36 +12107,34 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
12082
12107
|
selector: "co-simple-grid-cell",
|
|
12083
12108
|
template: `
|
|
12084
12109
|
<div class="simple-grid-column-cell-value" [ngClass]="column.textAlign ? column.textAlign : defaultTextAlign">
|
|
12085
|
-
|
|
12086
|
-
|
|
12087
|
-
|
|
12088
|
-
|
|
12089
|
-
|
|
12090
|
-
|
|
12091
|
-
|
|
12092
|
-
|
|
12093
|
-
|
|
12094
|
-
|
|
12095
|
-
|
|
12096
|
-
|
|
12097
|
-
|
|
12098
|
-
|
|
12099
|
-
|
|
12100
|
-
|
|
12101
|
-
|
|
12102
|
-
<
|
|
12103
|
-
|
|
12104
|
-
|
|
12105
|
-
|
|
12106
|
-
|
|
12107
|
-
|
|
12108
|
-
|
|
12109
|
-
|
|
12110
|
-
|
|
12111
|
-
</div>
|
|
12112
|
-
</ng-template>
|
|
12110
|
+
@if (editMode) {
|
|
12111
|
+
<div class="simple-grid-column-cell-field">
|
|
12112
|
+
@if (column.editTemplate) {
|
|
12113
|
+
<ng-container #editTemplate
|
|
12114
|
+
[ngTemplateOutlet]="column.editTemplate"
|
|
12115
|
+
[ngTemplateOutletInjector]="columnInjector"
|
|
12116
|
+
[ngTemplateOutletContext]="{value: row[column.field], row: row}"></ng-container>
|
|
12117
|
+
} @else {
|
|
12118
|
+
@if (column.template) {
|
|
12119
|
+
<ng-container [ngTemplateOutlet]="column.template"
|
|
12120
|
+
[ngTemplateOutletContext]="{value: row[column.field], row: row}"></ng-container>
|
|
12121
|
+
} @else {
|
|
12122
|
+
<co-input-text [(model)]="row[column.field]" [required]="column.required"></co-input-text>
|
|
12123
|
+
}
|
|
12124
|
+
}
|
|
12125
|
+
</div>
|
|
12126
|
+
} @else {
|
|
12127
|
+
<div class="simple-grid-column-cell-field">
|
|
12128
|
+
@if (column.template) {
|
|
12129
|
+
<ng-container [ngTemplateOutlet]="column.template"
|
|
12130
|
+
[ngTemplateOutletContext]="{value: row[column.field], row: row}"></ng-container>
|
|
12131
|
+
} @else {
|
|
12132
|
+
<span [textContent]="column.getFieldValue(row[column.field])" [title]="row[column.field]"></span>
|
|
12133
|
+
}
|
|
12134
|
+
</div>
|
|
12135
|
+
}
|
|
12113
12136
|
</div>
|
|
12114
|
-
|
|
12137
|
+
`,
|
|
12115
12138
|
encapsulation: ViewEncapsulation.None,
|
|
12116
12139
|
standalone: false
|
|
12117
12140
|
}]
|
|
@@ -14319,6 +14342,7 @@ class ListOfValuesComponent extends BaseInputComponent {
|
|
|
14319
14342
|
searchPlaceholder = '';
|
|
14320
14343
|
searchDisabled = false;
|
|
14321
14344
|
showChips = true;
|
|
14345
|
+
leftIconClick = new EventEmitter();
|
|
14322
14346
|
showClass() {
|
|
14323
14347
|
return true;
|
|
14324
14348
|
}
|
|
@@ -14578,7 +14602,7 @@ class ListOfValuesComponent extends BaseInputComponent {
|
|
|
14578
14602
|
}
|
|
14579
14603
|
}
|
|
14580
14604
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ListOfValuesComponent, deps: [{ token: FormComponent, optional: true }, { token: IconCacheService }, { token: i0.ChangeDetectorRef }, { token: OverlayService }, { token: FormInputUserModelChangeListenerService }, { token: NgZoneWrapperService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
14581
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: ListOfValuesComponent, isStandalone: false, selector: "co-list-of-values", inputs: { model: "model", multiselect: "multiselect", showToggleAll: "showToggleAll", largeCollection: "largeCollection", displayField: "displayField", optionIcon: "optionIcon", collection: "collection", collectionLoadFn: "collectionLoadFn", collectionLoadFnProp: "collectionLoadFnProp", leftIconData: "leftIconData", searchPlaceholder: "searchPlaceholder", searchDisabled: "searchDisabled", showChips: "showChips" }, host: { properties: { "class.custom-height": "this.multiselect", "class.multi-select": "this.multiselect", "class.co-list-of-values": "this.showClass" } }, providers: [
|
|
14605
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: ListOfValuesComponent, isStandalone: false, selector: "co-list-of-values", inputs: { model: "model", multiselect: "multiselect", showToggleAll: "showToggleAll", largeCollection: "largeCollection", displayField: "displayField", optionIcon: "optionIcon", collection: "collection", collectionLoadFn: "collectionLoadFn", collectionLoadFnProp: "collectionLoadFnProp", leftIconData: "leftIconData", searchPlaceholder: "searchPlaceholder", searchDisabled: "searchDisabled", showChips: "showChips" }, outputs: { leftIconClick: "leftIconClick" }, host: { properties: { "class.custom-height": "this.multiselect", "class.multi-select": "this.multiselect", "class.co-list-of-values": "this.showClass" } }, providers: [
|
|
14582
14606
|
OverlayService,
|
|
14583
14607
|
{
|
|
14584
14608
|
provide: SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME,
|
|
@@ -14613,6 +14637,7 @@ class ListOfValuesComponent extends BaseInputComponent {
|
|
|
14613
14637
|
(click)="openPopup()"
|
|
14614
14638
|
(rightIconClick)="toggleSelect()"
|
|
14615
14639
|
(keydown)="handleInputKeyDown($event)"
|
|
14640
|
+
(leftIconClick)="leftIconClick.emit()"
|
|
14616
14641
|
(clearIconClick)="clearModel($event)"
|
|
14617
14642
|
(blur)="checkModel()">
|
|
14618
14643
|
@if (multiselect && showChips) {
|
|
@@ -14665,6 +14690,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
14665
14690
|
(click)="openPopup()"
|
|
14666
14691
|
(rightIconClick)="toggleSelect()"
|
|
14667
14692
|
(keydown)="handleInputKeyDown($event)"
|
|
14693
|
+
(leftIconClick)="leftIconClick.emit()"
|
|
14668
14694
|
(clearIconClick)="clearModel($event)"
|
|
14669
14695
|
(blur)="checkModel()">
|
|
14670
14696
|
@if (multiselect && showChips) {
|
|
@@ -14730,6 +14756,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
14730
14756
|
type: Input
|
|
14731
14757
|
}], showChips: [{
|
|
14732
14758
|
type: Input
|
|
14759
|
+
}], leftIconClick: [{
|
|
14760
|
+
type: Output
|
|
14733
14761
|
}], showClass: [{
|
|
14734
14762
|
type: HostBinding,
|
|
14735
14763
|
args: ['class.co-list-of-values']
|
|
@@ -19694,6 +19722,7 @@ class HourSchedulingExpandableComponent {
|
|
|
19694
19722
|
hourLabels = [];
|
|
19695
19723
|
scheduledObjects = [];
|
|
19696
19724
|
selectedHour;
|
|
19725
|
+
layouts = [];
|
|
19697
19726
|
resizing = false;
|
|
19698
19727
|
resizeDirection;
|
|
19699
19728
|
initialY;
|
|
@@ -19784,6 +19813,7 @@ class HourSchedulingExpandableComponent {
|
|
|
19784
19813
|
});
|
|
19785
19814
|
}
|
|
19786
19815
|
this.scheduledObjects = schedulingObjects;
|
|
19816
|
+
this.layouts = this.calculateLeftAndWidthOfObjects();
|
|
19787
19817
|
this.cdRef.markForCheck();
|
|
19788
19818
|
this.cdRef.detectChanges();
|
|
19789
19819
|
}
|
|
@@ -19837,6 +19867,7 @@ class HourSchedulingExpandableComponent {
|
|
|
19837
19867
|
this.moveBetweenCalendarsEvent.emit({ hour: hour, data: parsed });
|
|
19838
19868
|
}
|
|
19839
19869
|
}
|
|
19870
|
+
this.layouts = this.calculateLeftAndWidthOfObjects();
|
|
19840
19871
|
}
|
|
19841
19872
|
allowDrop(event, hour) {
|
|
19842
19873
|
event.preventDefault();
|
|
@@ -19914,6 +19945,7 @@ class HourSchedulingExpandableComponent {
|
|
|
19914
19945
|
this.resizing = false;
|
|
19915
19946
|
this.currentResizingObject.selected = false;
|
|
19916
19947
|
this.currentResizingObject = null;
|
|
19948
|
+
this.layouts = this.calculateLeftAndWidthOfObjects();
|
|
19917
19949
|
}
|
|
19918
19950
|
document.removeEventListener("mousemove", this._onMouseMove);
|
|
19919
19951
|
document.removeEventListener("mouseup", this._onMouseUp);
|
|
@@ -19982,6 +20014,48 @@ class HourSchedulingExpandableComponent {
|
|
|
19982
20014
|
this.taskCreationEvent.emit(hour);
|
|
19983
20015
|
this.selectedHour = "";
|
|
19984
20016
|
}
|
|
20017
|
+
calculateLeftAndWidthOfObjects() {
|
|
20018
|
+
const layoutData = new Array(this.scheduledObjects.length);
|
|
20019
|
+
// Helper: check if two time ranges overlap
|
|
20020
|
+
const isOverlapping = (startA, endA, startB, endB) => {
|
|
20021
|
+
return startA < endB && startB < endA;
|
|
20022
|
+
};
|
|
20023
|
+
// Step 1: build overlap groups
|
|
20024
|
+
const overlapGroups = [];
|
|
20025
|
+
const processed = new Set();
|
|
20026
|
+
for (let i = 0; i < this.scheduledObjects.length; i++) {
|
|
20027
|
+
if (processed.has(i)) {
|
|
20028
|
+
continue;
|
|
20029
|
+
}
|
|
20030
|
+
const group = [i];
|
|
20031
|
+
const objA = this.scheduledObjects[i];
|
|
20032
|
+
const startA = new Date(objA.start);
|
|
20033
|
+
const endA = new Date(objA.end);
|
|
20034
|
+
for (let j = i + 1; j < this.scheduledObjects.length; j++) {
|
|
20035
|
+
const objB = this.scheduledObjects[j];
|
|
20036
|
+
const startB = new Date(objB.start);
|
|
20037
|
+
const endB = new Date(objB.end);
|
|
20038
|
+
if (isOverlapping(startA, endA, startB, endB)) {
|
|
20039
|
+
group.push(j);
|
|
20040
|
+
processed.add(j);
|
|
20041
|
+
}
|
|
20042
|
+
}
|
|
20043
|
+
group.forEach(index => processed.add(index));
|
|
20044
|
+
overlapGroups.push(group);
|
|
20045
|
+
}
|
|
20046
|
+
// Step 2: assign layout per group
|
|
20047
|
+
overlapGroups.forEach(group => {
|
|
20048
|
+
const total = group.length;
|
|
20049
|
+
const width = 100 / total;
|
|
20050
|
+
group.forEach((objectIndex, i) => {
|
|
20051
|
+
layoutData[objectIndex] = {
|
|
20052
|
+
leftPercent: i * width,
|
|
20053
|
+
widthPercent: width
|
|
20054
|
+
};
|
|
20055
|
+
});
|
|
20056
|
+
});
|
|
20057
|
+
return layoutData;
|
|
20058
|
+
}
|
|
19985
20059
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: HourSchedulingExpandableComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: IconCacheService }], target: i0.ɵɵFactoryTarget.Component });
|
|
19986
20060
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: HourSchedulingExpandableComponent, isStandalone: false, selector: "co-hour-scheduling-expandable", inputs: { schedule: "schedule", startTimeProp: "startTimeProp", endTimeProp: "endTimeProp", objectsProp: "objectsProp", childProp: "childProp", customTemplate: "customTemplate", idProp: "idProp" }, outputs: { timeChangeEvent: "timeChangeEvent", newObjectPlanEvent: "newObjectPlanEvent", taskCreationEvent: "taskCreationEvent", moveBetweenCalendarsEvent: "moveBetweenCalendarsEvent" }, host: { listeners: { "window:resize": "onResize($event)", "document:click": "clickOut($event)" }, properties: { "class.co-hour-scheduling-expandable": "this.showClass" } }, ngImport: i0, template: `
|
|
19987
20061
|
<div class="wrapper">
|
|
@@ -20016,6 +20090,7 @@ class HourSchedulingExpandableComponent {
|
|
|
20016
20090
|
[ngTemplateOutlet]="customTemplate"
|
|
20017
20091
|
[ngTemplateOutletContext]="{
|
|
20018
20092
|
objects: scheduledObjects,
|
|
20093
|
+
layouts: layouts,
|
|
20019
20094
|
onSelectBlock: this.onSelectBlock.bind(this),
|
|
20020
20095
|
onResizeStart: this.onResizeStart.bind(this),
|
|
20021
20096
|
onResizeEnd: this.onResizeEnd.bind(this),
|
|
@@ -20069,6 +20144,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
20069
20144
|
[ngTemplateOutlet]="customTemplate"
|
|
20070
20145
|
[ngTemplateOutletContext]="{
|
|
20071
20146
|
objects: scheduledObjects,
|
|
20147
|
+
layouts: layouts,
|
|
20072
20148
|
onSelectBlock: this.onSelectBlock.bind(this),
|
|
20073
20149
|
onResizeStart: this.onResizeStart.bind(this),
|
|
20074
20150
|
onResizeEnd: this.onResizeEnd.bind(this),
|
|
@@ -20127,7 +20203,6 @@ class HourSchedulingExpandableTemplateComponent {
|
|
|
20127
20203
|
objectTemplate;
|
|
20128
20204
|
set objects(objects) {
|
|
20129
20205
|
this._objects = objects;
|
|
20130
|
-
this.layouts = this.calculateLeftAndWidthOfObjects();
|
|
20131
20206
|
}
|
|
20132
20207
|
get objects() {
|
|
20133
20208
|
return this._objects;
|
|
@@ -20144,50 +20219,8 @@ class HourSchedulingExpandableTemplateComponent {
|
|
|
20144
20219
|
event.dataTransfer?.setData("text", JSON.stringify(obj));
|
|
20145
20220
|
this.onDragStartCustom?.(obj);
|
|
20146
20221
|
}
|
|
20147
|
-
calculateLeftAndWidthOfObjects() {
|
|
20148
|
-
const layoutData = new Array(this._objects.length);
|
|
20149
|
-
// Helper: check if two time ranges overlap
|
|
20150
|
-
const isOverlapping = (startA, endA, startB, endB) => {
|
|
20151
|
-
return startA < endB && startB < endA;
|
|
20152
|
-
};
|
|
20153
|
-
// Step 1: build overlap groups
|
|
20154
|
-
const overlapGroups = [];
|
|
20155
|
-
const processed = new Set();
|
|
20156
|
-
for (let i = 0; i < this._objects.length; i++) {
|
|
20157
|
-
if (processed.has(i)) {
|
|
20158
|
-
continue;
|
|
20159
|
-
}
|
|
20160
|
-
const group = [i];
|
|
20161
|
-
const objA = this._objects[i];
|
|
20162
|
-
const startA = new Date(objA.start);
|
|
20163
|
-
const endA = new Date(objA.end);
|
|
20164
|
-
for (let j = i + 1; j < this._objects.length; j++) {
|
|
20165
|
-
const objB = this._objects[j];
|
|
20166
|
-
const startB = new Date(objB.start);
|
|
20167
|
-
const endB = new Date(objB.end);
|
|
20168
|
-
if (isOverlapping(startA, endA, startB, endB)) {
|
|
20169
|
-
group.push(j);
|
|
20170
|
-
processed.add(j);
|
|
20171
|
-
}
|
|
20172
|
-
}
|
|
20173
|
-
group.forEach(index => processed.add(index));
|
|
20174
|
-
overlapGroups.push(group);
|
|
20175
|
-
}
|
|
20176
|
-
// Step 2: assign layout per group
|
|
20177
|
-
overlapGroups.forEach(group => {
|
|
20178
|
-
const total = group.length;
|
|
20179
|
-
const width = 100 / total;
|
|
20180
|
-
group.forEach((objectIndex, i) => {
|
|
20181
|
-
layoutData[objectIndex] = {
|
|
20182
|
-
leftPercent: i * width,
|
|
20183
|
-
widthPercent: width
|
|
20184
|
-
};
|
|
20185
|
-
});
|
|
20186
|
-
});
|
|
20187
|
-
return layoutData;
|
|
20188
|
-
}
|
|
20189
20222
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: HourSchedulingExpandableTemplateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
20190
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: HourSchedulingExpandableTemplateComponent, isStandalone: false, selector: "co-hour-scheduling-expandable-template", inputs: { objectTemplate: "objectTemplate", objects: "objects", onDragStartCustom: "onDragStartCustom", onResizeStart: "onResizeStart", onSelectBlock: "onSelectBlock", startTimeProp: "startTimeProp", endTimeProp: "endTimeProp" }, host: { properties: { "class.co-hour-scheduling-expandable-template": "this.showClass" } }, ngImport: i0, template: `
|
|
20223
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: HourSchedulingExpandableTemplateComponent, isStandalone: false, selector: "co-hour-scheduling-expandable-template", inputs: { layouts: "layouts", objectTemplate: "objectTemplate", objects: "objects", onDragStartCustom: "onDragStartCustom", onResizeStart: "onResizeStart", onSelectBlock: "onSelectBlock", startTimeProp: "startTimeProp", endTimeProp: "endTimeProp" }, host: { properties: { "class.co-hour-scheduling-expandable-template": "this.showClass" } }, ngImport: i0, template: `
|
|
20191
20224
|
|
|
20192
20225
|
@for (obj of objects; track obj.id; let i = $index) {
|
|
20193
20226
|
<div
|
|
@@ -20206,7 +20239,7 @@ class HourSchedulingExpandableTemplateComponent {
|
|
|
20206
20239
|
|
|
20207
20240
|
<ng-template
|
|
20208
20241
|
[ngTemplateOutlet]="objectTemplate"
|
|
20209
|
-
[ngTemplateOutletContext]="{object: obj}">
|
|
20242
|
+
[ngTemplateOutletContext]="{object: obj, layouts: layouts}">
|
|
20210
20243
|
</ng-template>
|
|
20211
20244
|
|
|
20212
20245
|
@if (obj.selected) {
|
|
@@ -20239,7 +20272,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
20239
20272
|
|
|
20240
20273
|
<ng-template
|
|
20241
20274
|
[ngTemplateOutlet]="objectTemplate"
|
|
20242
|
-
[ngTemplateOutletContext]="{object: obj}">
|
|
20275
|
+
[ngTemplateOutletContext]="{object: obj, layouts: layouts}">
|
|
20243
20276
|
</ng-template>
|
|
20244
20277
|
|
|
20245
20278
|
@if (obj.selected) {
|
|
@@ -20251,7 +20284,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
20251
20284
|
encapsulation: ViewEncapsulation.None,
|
|
20252
20285
|
standalone: false
|
|
20253
20286
|
}]
|
|
20254
|
-
}], propDecorators: {
|
|
20287
|
+
}], propDecorators: { layouts: [{
|
|
20288
|
+
type: Input
|
|
20289
|
+
}], objectTemplate: [{
|
|
20255
20290
|
type: Input
|
|
20256
20291
|
}], objects: [{
|
|
20257
20292
|
type: Input
|