ngx-tethys 20.0.1 → 20.0.2
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/CHANGELOG.md +17 -0
- package/action/index.d.ts +3 -3
- package/affix/index.d.ts +1 -1
- package/alert/index.d.ts +3 -3
- package/anchor/index.d.ts +3 -3
- package/arrow-switcher/index.d.ts +6 -6
- package/autocomplete/index.d.ts +7 -7
- package/avatar/index.d.ts +9 -9
- package/back-top/index.d.ts +3 -3
- package/badge/index.d.ts +6 -6
- package/breadcrumb/index.d.ts +7 -7
- package/button/index.d.ts +19 -19
- package/calendar/index.d.ts +8 -8
- package/card/index.d.ts +6 -6
- package/carousel/index.d.ts +4 -4
- package/cascader/index.d.ts +24 -24
- package/collapse/index.d.ts +4 -4
- package/color-picker/index.d.ts +16 -16
- package/comment/index.d.ts +3 -3
- package/copy/index.d.ts +2 -2
- package/core/index.d.ts +22 -22
- package/date-picker/index.d.ts +111 -111
- package/date-range/index.d.ts +5 -5
- package/dialog/index.d.ts +18 -18
- package/divider/index.d.ts +3 -3
- package/drag-drop/index.d.ts +7 -7
- package/dropdown/index.d.ts +10 -10
- package/empty/index.d.ts +12 -12
- package/fesm2022/ngx-tethys-action.mjs +14 -12
- package/fesm2022/ngx-tethys-action.mjs.map +1 -1
- package/fesm2022/ngx-tethys-affix.mjs +7 -7
- package/fesm2022/ngx-tethys-affix.mjs.map +1 -1
- package/fesm2022/ngx-tethys-alert.mjs +10 -10
- package/fesm2022/ngx-tethys-anchor.mjs +11 -11
- package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
- package/fesm2022/ngx-tethys-arrow-switcher.mjs +7 -7
- package/fesm2022/ngx-tethys-arrow-switcher.mjs.map +1 -1
- package/fesm2022/ngx-tethys-autocomplete.mjs +19 -18
- package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
- package/fesm2022/ngx-tethys-avatar.mjs +23 -22
- package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
- package/fesm2022/ngx-tethys-back-top.mjs +7 -7
- package/fesm2022/ngx-tethys-badge.mjs +7 -7
- package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
- package/fesm2022/ngx-tethys-breadcrumb.mjs +10 -10
- package/fesm2022/ngx-tethys-breadcrumb.mjs.map +1 -1
- package/fesm2022/ngx-tethys-button.mjs +16 -16
- package/fesm2022/ngx-tethys-button.mjs.map +1 -1
- package/fesm2022/ngx-tethys-calendar.mjs +16 -16
- package/fesm2022/ngx-tethys-calendar.mjs.map +1 -1
- package/fesm2022/ngx-tethys-card.mjs +13 -13
- package/fesm2022/ngx-tethys-card.mjs.map +1 -1
- package/fesm2022/ngx-tethys-carousel.mjs +15 -15
- package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
- package/fesm2022/ngx-tethys-cascader.mjs +41 -34
- package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
- package/fesm2022/ngx-tethys-checkbox.mjs +7 -7
- package/fesm2022/ngx-tethys-collapse.mjs +10 -10
- package/fesm2022/ngx-tethys-color-picker.mjs +65 -57
- package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-comment.mjs +13 -13
- package/fesm2022/ngx-tethys-copy.mjs +10 -10
- package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
- package/fesm2022/ngx-tethys-core.mjs +30 -25
- package/fesm2022/ngx-tethys-core.mjs.map +1 -1
- package/fesm2022/ngx-tethys-date-picker.mjs +184 -174
- package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-date-range.mjs +16 -16
- package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dialog.mjs +24 -24
- package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
- package/fesm2022/ngx-tethys-divider.mjs +7 -7
- package/fesm2022/ngx-tethys-divider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dot.mjs +7 -7
- package/fesm2022/ngx-tethys-drag-drop.mjs +24 -24
- package/fesm2022/ngx-tethys-drag-drop.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dropdown.mjs +48 -47
- package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
- package/fesm2022/ngx-tethys-empty.mjs +13 -13
- package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
- package/fesm2022/ngx-tethys-flexible-text.mjs +7 -7
- package/fesm2022/ngx-tethys-flexible-text.mjs.map +1 -1
- package/fesm2022/ngx-tethys-form.mjs +64 -61
- package/fesm2022/ngx-tethys-form.mjs.map +1 -1
- package/fesm2022/ngx-tethys-fullscreen.mjs +18 -15
- package/fesm2022/ngx-tethys-fullscreen.mjs.map +1 -1
- package/fesm2022/ngx-tethys-grid.mjs +34 -33
- package/fesm2022/ngx-tethys-grid.mjs.map +1 -1
- package/fesm2022/ngx-tethys-guider.mjs +25 -24
- package/fesm2022/ngx-tethys-guider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-i18n.mjs +3 -3
- package/fesm2022/ngx-tethys-i18n.mjs.map +1 -1
- package/fesm2022/ngx-tethys-icon.mjs +15 -13
- package/fesm2022/ngx-tethys-icon.mjs.map +1 -1
- package/fesm2022/ngx-tethys-image.mjs +31 -29
- package/fesm2022/ngx-tethys-image.mjs.map +1 -1
- package/fesm2022/ngx-tethys-input-number.mjs +17 -10
- package/fesm2022/ngx-tethys-input-number.mjs.map +1 -1
- package/fesm2022/ngx-tethys-input.mjs +28 -27
- package/fesm2022/ngx-tethys-input.mjs.map +1 -1
- package/fesm2022/ngx-tethys-layout.mjs +63 -63
- package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
- package/fesm2022/ngx-tethys-list.mjs +21 -18
- package/fesm2022/ngx-tethys-list.mjs.map +1 -1
- package/fesm2022/ngx-tethys-loading.mjs +7 -7
- package/fesm2022/ngx-tethys-mention.mjs +35 -31
- package/fesm2022/ngx-tethys-mention.mjs.map +1 -1
- package/fesm2022/ngx-tethys-menu.mjs +26 -26
- package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
- package/fesm2022/ngx-tethys-message.mjs +24 -24
- package/fesm2022/ngx-tethys-message.mjs.map +1 -1
- package/fesm2022/ngx-tethys-nav.mjs +27 -27
- package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
- package/fesm2022/ngx-tethys-notify.mjs +20 -20
- package/fesm2022/ngx-tethys-notify.mjs.map +1 -1
- package/fesm2022/ngx-tethys-pagination.mjs +18 -18
- package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
- package/fesm2022/ngx-tethys-popover.mjs +22 -21
- package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
- package/fesm2022/ngx-tethys-progress.mjs +17 -17
- package/fesm2022/ngx-tethys-progress.mjs.map +1 -1
- package/fesm2022/ngx-tethys-property-operation.mjs +11 -11
- package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
- package/fesm2022/ngx-tethys-property.mjs +12 -11
- package/fesm2022/ngx-tethys-property.mjs.map +1 -1
- package/fesm2022/ngx-tethys-radio.mjs +17 -17
- package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
- package/fesm2022/ngx-tethys-rate.mjs +12 -12
- package/fesm2022/ngx-tethys-rate.mjs.map +1 -1
- package/fesm2022/ngx-tethys-resizable.mjs +21 -18
- package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
- package/fesm2022/ngx-tethys-result.mjs +11 -11
- package/fesm2022/ngx-tethys-result.mjs.map +1 -1
- package/fesm2022/ngx-tethys-segment.mjs +19 -16
- package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
- package/fesm2022/ngx-tethys-select.mjs +60 -38
- package/fesm2022/ngx-tethys-select.mjs.map +1 -1
- package/fesm2022/ngx-tethys-shared.mjs +82 -79
- package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
- package/fesm2022/ngx-tethys-skeleton.mjs +32 -32
- package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
- package/fesm2022/ngx-tethys-slide.mjs +37 -36
- package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
- package/fesm2022/ngx-tethys-slider.mjs +11 -11
- package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-space.mjs +10 -10
- package/fesm2022/ngx-tethys-statistic.mjs +7 -7
- package/fesm2022/ngx-tethys-statistic.mjs.map +1 -1
- package/fesm2022/ngx-tethys-stepper.mjs +22 -22
- package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
- package/fesm2022/ngx-tethys-strength.mjs +7 -7
- package/fesm2022/ngx-tethys-strength.mjs.map +1 -1
- package/fesm2022/ngx-tethys-switch.mjs +7 -7
- package/fesm2022/ngx-tethys-switch.mjs.map +1 -1
- package/fesm2022/ngx-tethys-table.mjs +28 -28
- package/fesm2022/ngx-tethys-table.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tabs.mjs +13 -13
- package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tag.mjs +11 -11
- package/fesm2022/ngx-tethys-tag.mjs.map +1 -1
- package/fesm2022/ngx-tethys-testing.mjs +1 -1
- package/fesm2022/ngx-tethys-testing.mjs.map +1 -1
- package/fesm2022/ngx-tethys-time-picker.mjs +22 -22
- package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-timeline.mjs +14 -14
- package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tooltip.mjs +19 -16
- package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
- package/fesm2022/ngx-tethys-transfer.mjs +15 -15
- package/fesm2022/ngx-tethys-transfer.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tree-select.mjs +17 -17
- package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tree.mjs +50 -43
- package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
- package/fesm2022/ngx-tethys-typography.mjs +16 -16
- package/fesm2022/ngx-tethys-typography.mjs.map +1 -1
- package/fesm2022/ngx-tethys-upload.mjs +26 -25
- package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
- package/fesm2022/ngx-tethys-util.mjs +11 -5
- package/fesm2022/ngx-tethys-util.mjs.map +1 -1
- package/fesm2022/ngx-tethys-vote.mjs +7 -7
- package/fesm2022/ngx-tethys-watermark.mjs +18 -15
- package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
- package/fesm2022/ngx-tethys.mjs +1 -1
- package/fesm2022/ngx-tethys.mjs.map +1 -1
- package/flexible-text/index.d.ts +5 -5
- package/form/index.d.ts +26 -22
- package/fullscreen/index.d.ts +4 -4
- package/grid/index.d.ts +12 -12
- package/guider/index.d.ts +10 -10
- package/i18n/index.d.ts +1 -1
- package/icon/index.d.ts +3 -3
- package/image/index.d.ts +12 -12
- package/input/index.d.ts +22 -22
- package/input-number/index.d.ts +4 -4
- package/layout/index.d.ts +16 -16
- package/list/index.d.ts +16 -15
- package/mention/index.d.ts +4 -4
- package/menu/index.d.ts +7 -7
- package/message/index.d.ts +5 -5
- package/nav/index.d.ts +12 -12
- package/notify/index.d.ts +1 -1
- package/package.json +1 -1
- package/pagination/index.d.ts +21 -17
- package/popover/index.d.ts +8 -8
- package/progress/index.d.ts +18 -18
- package/property/index.d.ts +6 -6
- package/property-operation/index.d.ts +3 -3
- package/radio/index.d.ts +6 -6
- package/rate/index.d.ts +5 -5
- package/resizable/index.d.ts +2 -2
- package/result/index.d.ts +8 -8
- package/schematics/testing/test-workspace.js +1 -0
- package/schematics/version.d.ts +1 -1
- package/schematics/version.js +1 -1
- package/segment/index.d.ts +9 -9
- package/select/index.d.ts +21 -21
- package/shared/index.d.ts +29 -29
- package/skeleton/index.d.ts +52 -52
- package/slide/index.d.ts +5 -5
- package/slider/index.d.ts +6 -6
- package/space/index.d.ts +1 -1
- package/statistic/index.d.ts +18 -18
- package/stepper/index.d.ts +8 -8
- package/switch/index.d.ts +2 -2
- package/table/index.d.ts +24 -24
- package/tabs/index.d.ts +6 -6
- package/testing/index.d.ts +1 -1
- package/time-picker/index.d.ts +21 -21
- package/timeline/index.d.ts +8 -8
- package/tooltip/index.d.ts +12 -12
- package/transfer/index.d.ts +16 -16
- package/tree/index.d.ts +28 -28
- package/tree-select/index.d.ts +13 -13
- package/typography/index.d.ts +3 -3
- package/upload/index.d.ts +4 -4
- package/util/index.d.ts +17 -7
- package/vote/index.d.ts +2 -2
- package/watermark/index.d.ts +2 -2
|
@@ -7,7 +7,7 @@ import { moveItemInArray, transferArrayItem, CdkDropListGroup, CdkDropList, CdkD
|
|
|
7
7
|
import { ThyList, ThyListItem, ThyListModule } from 'ngx-tethys/list';
|
|
8
8
|
import { ThyDragDropDirective, ThySharedModule } from 'ngx-tethys/shared';
|
|
9
9
|
import { injectLocale } from 'ngx-tethys/i18n';
|
|
10
|
-
import { coerceBooleanProperty } from 'ngx-tethys/util';
|
|
10
|
+
import { coerceBooleanProperty, isUndefinedOrNull } from 'ngx-tethys/util';
|
|
11
11
|
import { ThyButtonModule } from 'ngx-tethys/button';
|
|
12
12
|
|
|
13
13
|
var TransferDirection;
|
|
@@ -26,7 +26,7 @@ class ThyTransferList {
|
|
|
26
26
|
this.unlockItems = [];
|
|
27
27
|
this.locale = injectLocale('transfer');
|
|
28
28
|
this.title = input(...(ngDevMode ? [undefined, { debugName: "title" }] : []));
|
|
29
|
-
this.items = input(...(ngDevMode ? [
|
|
29
|
+
this.items = input.required(...(ngDevMode ? [{ debugName: "items" }] : []));
|
|
30
30
|
this.draggable = input(false, ...(ngDevMode ? [{ debugName: "draggable", transform: coerceBooleanProperty }] : [{ transform: coerceBooleanProperty }]));
|
|
31
31
|
this.canLock = input(false, ...(ngDevMode ? [{ debugName: "canLock", transform: coerceBooleanProperty }] : [{ transform: coerceBooleanProperty }]));
|
|
32
32
|
this.maxLock = input(undefined, ...(ngDevMode ? [{ debugName: "maxLock", transform: numberAttribute }] : [{ transform: numberAttribute }]));
|
|
@@ -38,7 +38,7 @@ class ThyTransferList {
|
|
|
38
38
|
this.selectItem = output();
|
|
39
39
|
this.unselectItem = output();
|
|
40
40
|
this.lockListEnterPredicate = () => {
|
|
41
|
-
return this.lockItems.length < this.maxLock();
|
|
41
|
+
return !isUndefinedOrNull(this.maxLock()) && this.lockItems.length < this.maxLock();
|
|
42
42
|
};
|
|
43
43
|
this.unlockListEnterPredicate = (event) => {
|
|
44
44
|
return !event.data.isFixed;
|
|
@@ -135,15 +135,15 @@ class ThyTransferList {
|
|
|
135
135
|
listData: { lock: this.lockItems, unlock: this.unlockItems }
|
|
136
136
|
});
|
|
137
137
|
}
|
|
138
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
139
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
138
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyTransferList, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
139
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: ThyTransferList, isStandalone: true, selector: "thy-transfer-list", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: true, transformFunction: null }, draggable: { classPropertyName: "draggable", publicName: "draggable", isSignal: true, isRequired: false, transformFunction: null }, canLock: { classPropertyName: "canLock", publicName: "canLock", isSignal: true, isRequired: false, transformFunction: null }, maxLock: { classPropertyName: "maxLock", publicName: "maxLock", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, template: { classPropertyName: "template", publicName: "template", isSignal: true, isRequired: false, transformFunction: null }, renderContentRef: { classPropertyName: "renderContentRef", publicName: "renderContentRef", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { draggableUpdate: "draggableUpdate", selectItem: "selectItem", unselectItem: "unselectItem" }, host: { classAttribute: "thy-transfer-list" }, ngImport: i0, template: "<div class=\"thy-transfer-list-header\">\n <span class=\"thy-transfer-list-header-title\"\n >{{ title() }} \u00B7 {{ items()?.length }}\n @if (max()) {\n <span>{{ locale().maxLimit.replace('{max}', max()?.toString() ?? '') }}</span>\n }\n </span>\n</div>\n@if (!renderContentRef()) {\n <div class=\"thy-transfer-list-body\" cdkDropListGroup [cdkDropListGroupDisabled]=\"!draggable()\">\n @if (canLock()) {\n <div class=\"thy-transfer-list-group-name\">{{ locale().maxLockLimit.replace('{maxLock}', maxLock()?.toString() ?? '') }}</div>\n <thy-list\n class=\"thy-transfer-list-content\"\n cdkDropList\n thyDragDrop\n id=\"lock\"\n [cdkDropListData]=\"lockItems\"\n (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListEnterPredicate]=\"lockListEnterPredicate\">\n @if (lockItems.length === 0) {\n <div class=\"cdk-drop-list-empty\"></div>\n }\n @for (item of lockItems; track $index) {\n <thy-list-item\n class=\"thy-transfer-list-content-item text-truncate\"\n cdkDrag\n [cdkDragData]=\"item\"\n [ngClass]=\"{ active: item.checked }\">\n <ng-template [ngTemplateOutlet]=\"template()\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </thy-list-item>\n }\n </thy-list>\n <div class=\"thy-transfer-list-group-name\">{{ locale().unlocked }}</div>\n }\n <thy-list\n class=\"thy-transfer-list-content\"\n cdkDropList\n thyDragDrop\n [cdkDropListDisabled]=\"!draggable()\"\n id=\"unlock\"\n [cdkDropListData]=\"unlockItems\"\n (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListEnterPredicate]=\"unlockListEnterPredicate\">\n @if (unlockItems.length === 0) {\n <div class=\"cdk-drop-list-empty\"></div>\n }\n @for (item of unlockItems; track $index) {\n <thy-list-item\n class=\"thy-transfer-list-content-item text-truncate\"\n cdkDrag\n [cdkDragData]=\"item\"\n [ngClass]=\"{ active: item.checked, disabled: disabled() && item.direction === 'left' }\">\n <ng-template [ngTemplateOutlet]=\"template()\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </thy-list-item>\n }\n </thy-list>\n </div>\n} @else {\n <div class=\"thy-transfer-list-body\">\n <ng-container\n *ngTemplateOutlet=\"\n renderContentRef();\n context: {\n $implicit: items(),\n onSelectItem: onSelectItem,\n onUnselectItem: onUnselectItem\n }\n \"></ng-container>\n </div>\n}\n", dependencies: [{ kind: "directive", type: CdkDropListGroup, selector: "[cdkDropListGroup]", inputs: ["cdkDropListGroupDisabled"], exportAs: ["cdkDropListGroup"] }, { kind: "component", type: ThyList, selector: "thy-list", inputs: ["thyDivided"] }, { kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer", "cdkDropListHasAnchor"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: ThyDragDropDirective, selector: "[thyDragDrop]" }, { kind: "component", type: ThyListItem, selector: "thy-list-item,[thy-list-item]" }, { kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
140
140
|
}
|
|
141
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
141
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyTransferList, decorators: [{
|
|
142
142
|
type: Component,
|
|
143
143
|
args: [{ selector: 'thy-transfer-list', host: {
|
|
144
144
|
class: 'thy-transfer-list'
|
|
145
145
|
}, encapsulation: ViewEncapsulation.None, imports: [CdkDropListGroup, ThyList, CdkDropList, ThyDragDropDirective, ThyListItem, CdkDrag, NgClass, NgTemplateOutlet], template: "<div class=\"thy-transfer-list-header\">\n <span class=\"thy-transfer-list-header-title\"\n >{{ title() }} \u00B7 {{ items()?.length }}\n @if (max()) {\n <span>{{ locale().maxLimit.replace('{max}', max()?.toString() ?? '') }}</span>\n }\n </span>\n</div>\n@if (!renderContentRef()) {\n <div class=\"thy-transfer-list-body\" cdkDropListGroup [cdkDropListGroupDisabled]=\"!draggable()\">\n @if (canLock()) {\n <div class=\"thy-transfer-list-group-name\">{{ locale().maxLockLimit.replace('{maxLock}', maxLock()?.toString() ?? '') }}</div>\n <thy-list\n class=\"thy-transfer-list-content\"\n cdkDropList\n thyDragDrop\n id=\"lock\"\n [cdkDropListData]=\"lockItems\"\n (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListEnterPredicate]=\"lockListEnterPredicate\">\n @if (lockItems.length === 0) {\n <div class=\"cdk-drop-list-empty\"></div>\n }\n @for (item of lockItems; track $index) {\n <thy-list-item\n class=\"thy-transfer-list-content-item text-truncate\"\n cdkDrag\n [cdkDragData]=\"item\"\n [ngClass]=\"{ active: item.checked }\">\n <ng-template [ngTemplateOutlet]=\"template()\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </thy-list-item>\n }\n </thy-list>\n <div class=\"thy-transfer-list-group-name\">{{ locale().unlocked }}</div>\n }\n <thy-list\n class=\"thy-transfer-list-content\"\n cdkDropList\n thyDragDrop\n [cdkDropListDisabled]=\"!draggable()\"\n id=\"unlock\"\n [cdkDropListData]=\"unlockItems\"\n (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListEnterPredicate]=\"unlockListEnterPredicate\">\n @if (unlockItems.length === 0) {\n <div class=\"cdk-drop-list-empty\"></div>\n }\n @for (item of unlockItems; track $index) {\n <thy-list-item\n class=\"thy-transfer-list-content-item text-truncate\"\n cdkDrag\n [cdkDragData]=\"item\"\n [ngClass]=\"{ active: item.checked, disabled: disabled() && item.direction === 'left' }\">\n <ng-template [ngTemplateOutlet]=\"template()\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </thy-list-item>\n }\n </thy-list>\n </div>\n} @else {\n <div class=\"thy-transfer-list-body\">\n <ng-container\n *ngTemplateOutlet=\"\n renderContentRef();\n context: {\n $implicit: items(),\n onSelectItem: onSelectItem,\n onUnselectItem: onUnselectItem\n }\n \"></ng-container>\n </div>\n}\n" }]
|
|
146
|
-
}], ctorParameters: () => [], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required:
|
|
146
|
+
}], ctorParameters: () => [], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: true }] }], draggable: [{ type: i0.Input, args: [{ isSignal: true, alias: "draggable", required: false }] }], canLock: [{ type: i0.Input, args: [{ isSignal: true, alias: "canLock", required: false }] }], maxLock: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxLock", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], template: [{ type: i0.Input, args: [{ isSignal: true, alias: "template", required: false }] }], renderContentRef: [{ type: i0.Input, args: [{ isSignal: true, alias: "renderContentRef", required: false }] }], draggableUpdate: [{ type: i0.Output, args: ["draggableUpdate"] }], selectItem: [{ type: i0.Output, args: ["selectItem"] }], unselectItem: [{ type: i0.Output, args: ["unselectItem"] }] } });
|
|
147
147
|
|
|
148
148
|
/**
|
|
149
149
|
* 穿梭框组件
|
|
@@ -304,19 +304,19 @@ class ThyTransfer {
|
|
|
304
304
|
? [...event.listData.lock, ...event.listData.unlock]
|
|
305
305
|
: [...otherListData.lock, ...otherListData.unlock];
|
|
306
306
|
}
|
|
307
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
308
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
307
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyTransfer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
308
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: ThyTransfer, isStandalone: true, selector: "thy-transfer", inputs: { thyData: { classPropertyName: "thyData", publicName: "thyData", isSignal: true, isRequired: false, transformFunction: null }, thyRenderLeftTemplateRef: { classPropertyName: "thyRenderLeftTemplateRef", publicName: "thyRenderLeftTemplateRef", isSignal: true, isRequired: false, transformFunction: null }, thyRenderRightTemplateRef: { classPropertyName: "thyRenderRightTemplateRef", publicName: "thyRenderRightTemplateRef", isSignal: true, isRequired: false, transformFunction: null }, thyTitles: { classPropertyName: "thyTitles", publicName: "thyTitles", isSignal: true, isRequired: false, transformFunction: null }, thyRightCanLock: { classPropertyName: "thyRightCanLock", publicName: "thyRightCanLock", isSignal: true, isRequired: false, transformFunction: null }, thyRightLockMax: { classPropertyName: "thyRightLockMax", publicName: "thyRightLockMax", isSignal: true, isRequired: false, transformFunction: null }, thyRightMax: { classPropertyName: "thyRightMax", publicName: "thyRightMax", isSignal: true, isRequired: false, transformFunction: null }, thyAutoMove: { classPropertyName: "thyAutoMove", publicName: "thyAutoMove", isSignal: true, isRequired: false, transformFunction: null }, thyLeftDraggable: { classPropertyName: "thyLeftDraggable", publicName: "thyLeftDraggable", isSignal: true, isRequired: false, transformFunction: null }, thyRightDraggable: { classPropertyName: "thyRightDraggable", publicName: "thyRightDraggable", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { thyDraggableUpdate: "thyDraggableUpdate", thyChange: "thyChange" }, host: { classAttribute: "thy-transfer" }, queries: [{ propertyName: "templateRef", first: true, predicate: ["renderTemplate"], descendants: true, isSignal: true }, { propertyName: "leftContentRef", first: true, predicate: ["renderLeftTemplate"], descendants: true, isSignal: true }, { propertyName: "rightContentRef", first: true, predicate: ["renderRightTemplate"], descendants: true, isSignal: true }], ngImport: i0, template: "<thy-transfer-list\n [items]=\"thyData()\"\n [title]=\"leftTitle()\"\n [draggable]=\"thyLeftDraggable()\"\n [disabled]=\"thyRightMax()! <= rightDataSource.length\"\n [renderContentRef]=\"leftContentRef()\"\n (draggableUpdate)=\"onDragUpdate('left', $event)\"\n [template]=\"leftTemplateRef\"\n (selectItem)=\"selectItem($event)\"\n (unselectItem)=\"unselectItem($event)\">\n <ng-template #leftTemplateRef let-item>\n <div (click)=\"onSelect(item.direction === 'left' ? 'left' : 'right', { item: item })\" class=\"list-item-content\">\n @if (thyLeftDraggable()) {\n <thy-icon thyIconName=\"drag\" class=\"drag-handle\"></thy-icon>\n }\n <div class=\"item-name\" [ngClass]=\"{ 'un-select-item': item.direction !== 'right' }\">\n <ng-template [ngTemplateOutlet]=\"thyTransferListItem\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </div>\n @if (item.direction === 'right') {\n <thy-icon class=\"text-primary item-status\" thyIconName=\"check\"></thy-icon>\n }\n </div>\n </ng-template>\n</thy-transfer-list>\n\n<div class=\"thy-transfer-operation\">\n <div class=\"thy-transfer-operation-body\">\n <thy-icon thyIconName=\"angle-right\" class=\"operation-link\"></thy-icon>\n <br />\n <thy-icon thyIconName=\"angle-left\" class=\"operation-link\"></thy-icon>\n </div>\n</div>\n\n<thy-transfer-list\n [items]=\"rightDataSource\"\n [title]=\"rightTitle()\"\n [draggable]=\"thyRightDraggable()\"\n (draggableUpdate)=\"onDragUpdate('right', $event)\"\n [canLock]=\"thyRightCanLock()\"\n [maxLock]=\"thyRightLockMax()\"\n [max]=\"thyRightMax()\"\n [template]=\"rightTemplateRef\"\n [renderContentRef]=\"rightContentRef()\"\n (selectItem)=\"selectItem($event)\"\n (unselectItem)=\"unselectItem($event)\">\n <ng-template #rightTemplateRef let-item>\n @if (thyRightDraggable()) {\n <thy-icon thyIconName=\"drag\" class=\"drag-handle\"></thy-icon>\n }\n <div class=\"item-name\">\n <ng-template [ngTemplateOutlet]=\"thyTransferListItem\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </div>\n @if (item.direction === 'right' && !item.isFixed) {\n <a class=\"link-secondary\" (click)=\"onSelect('right', { item: item })\">\n <thy-icon class=\"item-status\" thyIconName=\"close\"></thy-icon>\n </a>\n }\n </ng-template>\n</thy-transfer-list>\n\n<ng-template #thyTransferListItem let-item>\n @if (templateRef()) {\n <ng-template [ngTemplateOutlet]=\"templateRef()\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n }\n @if (!templateRef()) {\n <thy-flexible-text [thyTooltipContent]=\"item.title\">\n {{ item.title }}\n </thy-flexible-text>\n }\n</ng-template>\n", dependencies: [{ kind: "component", type: ThyTransferList, selector: "thy-transfer-list", inputs: ["title", "items", "draggable", "canLock", "maxLock", "max", "disabled", "template", "renderContentRef"], outputs: ["draggableUpdate", "selectItem", "unselectItem"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ThyFlexibleText, selector: "thy-flexible-text,[thyFlexibleText]", inputs: ["thyTooltipTrigger", "thyContainerClass", "thyTooltipContent", "thyTooltipPlacement", "thyTooltipOffset"], exportAs: ["thyFlexibleText"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
309
309
|
}
|
|
310
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
310
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyTransfer, decorators: [{
|
|
311
311
|
type: Component,
|
|
312
312
|
args: [{ selector: 'thy-transfer', host: {
|
|
313
313
|
class: 'thy-transfer'
|
|
314
|
-
}, encapsulation: ViewEncapsulation.None, imports: [ThyTransferList, ThyIcon, NgClass, NgTemplateOutlet, ThyFlexibleText], template: "<thy-transfer-list\n [items]=\"thyData()\"\n [title]=\"leftTitle()\"\n [draggable]=\"thyLeftDraggable()\"\n [disabled]=\"thyRightMax() <= rightDataSource.length\"\n [renderContentRef]=\"leftContentRef()\"\n (draggableUpdate)=\"onDragUpdate('left', $event)\"\n [template]=\"leftTemplateRef\"\n (selectItem)=\"selectItem($event)\"\n (unselectItem)=\"unselectItem($event)\">\n <ng-template #leftTemplateRef let-item>\n <div (click)=\"onSelect(item.direction === 'left' ? 'left' : 'right', { item: item })\" class=\"list-item-content\">\n @if (thyLeftDraggable()) {\n <thy-icon thyIconName=\"drag\" class=\"drag-handle\"></thy-icon>\n }\n <div class=\"item-name\" [ngClass]=\"{ 'un-select-item': item.direction !== 'right' }\">\n <ng-template [ngTemplateOutlet]=\"thyTransferListItem\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </div>\n @if (item.direction === 'right') {\n <thy-icon class=\"text-primary item-status\" thyIconName=\"check\"></thy-icon>\n }\n </div>\n </ng-template>\n</thy-transfer-list>\n\n<div class=\"thy-transfer-operation\">\n <div class=\"thy-transfer-operation-body\">\n <thy-icon thyIconName=\"angle-right\" class=\"operation-link\"></thy-icon>\n <br />\n <thy-icon thyIconName=\"angle-left\" class=\"operation-link\"></thy-icon>\n </div>\n</div>\n\n<thy-transfer-list\n [items]=\"rightDataSource\"\n [title]=\"rightTitle()\"\n [draggable]=\"thyRightDraggable()\"\n (draggableUpdate)=\"onDragUpdate('right', $event)\"\n [canLock]=\"thyRightCanLock()\"\n [maxLock]=\"thyRightLockMax()\"\n [max]=\"thyRightMax()\"\n [template]=\"rightTemplateRef\"\n [renderContentRef]=\"rightContentRef()\"\n (selectItem)=\"selectItem($event)\"\n (unselectItem)=\"unselectItem($event)\">\n <ng-template #rightTemplateRef let-item>\n @if (thyRightDraggable()) {\n <thy-icon thyIconName=\"drag\" class=\"drag-handle\"></thy-icon>\n }\n <div class=\"item-name\">\n <ng-template [ngTemplateOutlet]=\"thyTransferListItem\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </div>\n @if (item.direction === 'right' && !item.isFixed) {\n <a class=\"link-secondary\" (click)=\"onSelect('right', { item: item })\">\n <thy-icon class=\"item-status\" thyIconName=\"close\"></thy-icon>\n </a>\n }\n </ng-template>\n</thy-transfer-list>\n\n<ng-template #thyTransferListItem let-item>\n @if (templateRef()) {\n <ng-template [ngTemplateOutlet]=\"templateRef()\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n }\n @if (!templateRef()) {\n <thy-flexible-text [thyTooltipContent]=\"item.title\">\n {{ item.title }}\n </thy-flexible-text>\n }\n</ng-template>\n" }]
|
|
314
|
+
}, encapsulation: ViewEncapsulation.None, imports: [ThyTransferList, ThyIcon, NgClass, NgTemplateOutlet, ThyFlexibleText], template: "<thy-transfer-list\n [items]=\"thyData()\"\n [title]=\"leftTitle()\"\n [draggable]=\"thyLeftDraggable()\"\n [disabled]=\"thyRightMax()! <= rightDataSource.length\"\n [renderContentRef]=\"leftContentRef()\"\n (draggableUpdate)=\"onDragUpdate('left', $event)\"\n [template]=\"leftTemplateRef\"\n (selectItem)=\"selectItem($event)\"\n (unselectItem)=\"unselectItem($event)\">\n <ng-template #leftTemplateRef let-item>\n <div (click)=\"onSelect(item.direction === 'left' ? 'left' : 'right', { item: item })\" class=\"list-item-content\">\n @if (thyLeftDraggable()) {\n <thy-icon thyIconName=\"drag\" class=\"drag-handle\"></thy-icon>\n }\n <div class=\"item-name\" [ngClass]=\"{ 'un-select-item': item.direction !== 'right' }\">\n <ng-template [ngTemplateOutlet]=\"thyTransferListItem\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </div>\n @if (item.direction === 'right') {\n <thy-icon class=\"text-primary item-status\" thyIconName=\"check\"></thy-icon>\n }\n </div>\n </ng-template>\n</thy-transfer-list>\n\n<div class=\"thy-transfer-operation\">\n <div class=\"thy-transfer-operation-body\">\n <thy-icon thyIconName=\"angle-right\" class=\"operation-link\"></thy-icon>\n <br />\n <thy-icon thyIconName=\"angle-left\" class=\"operation-link\"></thy-icon>\n </div>\n</div>\n\n<thy-transfer-list\n [items]=\"rightDataSource\"\n [title]=\"rightTitle()\"\n [draggable]=\"thyRightDraggable()\"\n (draggableUpdate)=\"onDragUpdate('right', $event)\"\n [canLock]=\"thyRightCanLock()\"\n [maxLock]=\"thyRightLockMax()\"\n [max]=\"thyRightMax()\"\n [template]=\"rightTemplateRef\"\n [renderContentRef]=\"rightContentRef()\"\n (selectItem)=\"selectItem($event)\"\n (unselectItem)=\"unselectItem($event)\">\n <ng-template #rightTemplateRef let-item>\n @if (thyRightDraggable()) {\n <thy-icon thyIconName=\"drag\" class=\"drag-handle\"></thy-icon>\n }\n <div class=\"item-name\">\n <ng-template [ngTemplateOutlet]=\"thyTransferListItem\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </div>\n @if (item.direction === 'right' && !item.isFixed) {\n <a class=\"link-secondary\" (click)=\"onSelect('right', { item: item })\">\n <thy-icon class=\"item-status\" thyIconName=\"close\"></thy-icon>\n </a>\n }\n </ng-template>\n</thy-transfer-list>\n\n<ng-template #thyTransferListItem let-item>\n @if (templateRef()) {\n <ng-template [ngTemplateOutlet]=\"templateRef()\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n }\n @if (!templateRef()) {\n <thy-flexible-text [thyTooltipContent]=\"item.title\">\n {{ item.title }}\n </thy-flexible-text>\n }\n</ng-template>\n" }]
|
|
315
315
|
}], ctorParameters: () => [], propDecorators: { thyData: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyData", required: false }] }], thyRenderLeftTemplateRef: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyRenderLeftTemplateRef", required: false }] }], thyRenderRightTemplateRef: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyRenderRightTemplateRef", required: false }] }], thyTitles: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyTitles", required: false }] }], thyRightCanLock: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyRightCanLock", required: false }] }], thyRightLockMax: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyRightLockMax", required: false }] }], thyRightMax: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyRightMax", required: false }] }], thyAutoMove: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyAutoMove", required: false }] }], thyLeftDraggable: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyLeftDraggable", required: false }] }], thyRightDraggable: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyRightDraggable", required: false }] }], thyDraggableUpdate: [{ type: i0.Output, args: ["thyDraggableUpdate"] }], thyChange: [{ type: i0.Output, args: ["thyChange"] }], templateRef: [{ type: i0.ContentChild, args: ['renderTemplate', { isSignal: true }] }], leftContentRef: [{ type: i0.ContentChild, args: ['renderLeftTemplate', { isSignal: true }] }], rightContentRef: [{ type: i0.ContentChild, args: ['renderRightTemplate', { isSignal: true }] }] } });
|
|
316
316
|
|
|
317
317
|
class ThyTransferModule {
|
|
318
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
319
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
|
318
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyTransferModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
319
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: ThyTransferModule, imports: [CommonModule,
|
|
320
320
|
ThyButtonModule,
|
|
321
321
|
DragDropModule,
|
|
322
322
|
ThyIconModule,
|
|
@@ -325,7 +325,7 @@ class ThyTransferModule {
|
|
|
325
325
|
ThyFlexibleTextModule,
|
|
326
326
|
ThyTransfer,
|
|
327
327
|
ThyTransferList], exports: [ThyTransfer] }); }
|
|
328
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.
|
|
328
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyTransferModule, imports: [CommonModule,
|
|
329
329
|
ThyButtonModule,
|
|
330
330
|
DragDropModule,
|
|
331
331
|
ThyIconModule,
|
|
@@ -335,7 +335,7 @@ class ThyTransferModule {
|
|
|
335
335
|
ThyTransfer,
|
|
336
336
|
ThyTransferList] }); }
|
|
337
337
|
}
|
|
338
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
338
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyTransferModule, decorators: [{
|
|
339
339
|
type: NgModule,
|
|
340
340
|
args: [{
|
|
341
341
|
imports: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-tethys-transfer.mjs","sources":["../../../src/transfer/transfer.interface.ts","../../../src/transfer/transfer-list.component.ts","../../../src/transfer/transfer-list.component.html","../../../src/transfer/transfer.component.ts","../../../src/transfer/transfer.component.html","../../../src/transfer/transfer.module.ts","../../../src/transfer/ngx-tethys-transfer.ts"],"sourcesContent":["export type Direction = 'left' | 'right';\n\nexport enum TransferDirection {\n left = 'left',\n right = 'right'\n}\n\nexport interface ThyTransferData {\n source: ThyTransferModel;\n target: ThyTransferModel;\n}\n\nexport interface ThyTransferModel {\n title?: string;\n data: Array<any>;\n}\n\n/**\n * @public\n * @order 20\n */\nexport interface ThyTransferItem {\n /**\n * 数据标题\n */\n title: string;\n\n /**\n * 设置方向,可选值 [left,right]\n */\n direction?: Direction;\n\n order?: number;\n\n disabled?: boolean;\n\n /**\n * 选中状态\n */\n checked?: boolean;\n\n isLock?: boolean;\n\n groupId?: string;\n\n isFixed?: boolean;\n\n /**\n * 自定义数据\n */\n [key: string]: any;\n}\n\nexport interface ThyTransferSelectEvent {\n item: ThyTransferItem;\n}\n\nexport interface ThyTransferChangeEvent {\n from?: string;\n to?: string;\n items?: ThyTransferItem[];\n left?: InnerTransferList;\n right?: InnerTransferList;\n}\n\nexport interface ThyTransferDragEvent {\n oldIndex?: number;\n newIndex?: number;\n model?: ThyTransferItem;\n models?: ThyTransferItem[];\n left?: InnerTransferList;\n right?: InnerTransferList;\n}\n\nexport interface InnerTransferDragEvent {\n dragEvent?: ThyTransferDragEvent;\n listData?: InnerTransferList;\n}\n\nexport interface InnerTransferList {\n lock?: ThyTransferItem[];\n unlock?: ThyTransferItem[];\n}\n","import { CdkDrag, CdkDragDrop, CdkDropList, CdkDropListGroup, moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop';\nimport {\n Component,\n DoCheck,\n IterableChanges,\n IterableDiffer,\n IterableDiffers,\n OnInit,\n Signal,\n TemplateRef,\n ViewEncapsulation,\n inject,\n input,\n numberAttribute,\n output\n} from '@angular/core';\n\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { ThyList, ThyListItem } from 'ngx-tethys/list';\nimport { ThyDragDropDirective } from 'ngx-tethys/shared';\nimport { InnerTransferDragEvent, ThyTransferDragEvent, ThyTransferItem, ThyTransferSelectEvent } from './transfer.interface';\nimport { injectLocale, ThyTransferLocale } from 'ngx-tethys/i18n';\nimport { coerceBooleanProperty, ThyBooleanInput } from 'ngx-tethys/util';\n\n/**\n * @private\n */\n@Component({\n selector: 'thy-transfer-list',\n templateUrl: './transfer-list.component.html',\n host: {\n class: 'thy-transfer-list'\n },\n encapsulation: ViewEncapsulation.None,\n imports: [CdkDropListGroup, ThyList, CdkDropList, ThyDragDropDirective, ThyListItem, CdkDrag, NgClass, NgTemplateOutlet]\n})\nexport class ThyTransferList implements OnInit, DoCheck {\n private differs = inject(IterableDiffers);\n\n public lockItems: ThyTransferItem[] = [];\n\n public unlockItems: ThyTransferItem[] = [];\n\n private _diff: IterableDiffer<ThyTransferItem>;\n\n private _lockDiff: IterableDiffer<ThyTransferItem>;\n\n private _unlockDiff: IterableDiffer<ThyTransferItem>;\n\n locale: Signal<ThyTransferLocale> = injectLocale('transfer');\n\n readonly title = input<string>();\n\n readonly items = input<ThyTransferItem[]>();\n\n readonly draggable = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n readonly canLock = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n readonly maxLock = input<number, unknown>(undefined, { transform: numberAttribute });\n\n readonly max = input<number, unknown>(undefined, { transform: numberAttribute });\n\n readonly disabled = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n readonly template = input<TemplateRef<any>>();\n\n readonly renderContentRef = input<TemplateRef<any>>();\n\n readonly draggableUpdate = output<InnerTransferDragEvent>();\n\n readonly selectItem = output<ThyTransferSelectEvent>();\n\n readonly unselectItem = output<ThyTransferSelectEvent>();\n\n constructor() {}\n\n ngOnInit() {\n this._combineTransferData();\n if (this.canLock()) {\n this._lockDiff = this.differs.find(this.lockItems).create();\n this._unlockDiff = this.differs.find(this.unlockItems).create();\n } else {\n this._unlockDiff = this.differs.find(this.unlockItems).create();\n }\n this._diff = this.differs.find(this.items()).create();\n }\n\n private _combineTransferData() {\n this.lockItems = [];\n this.unlockItems = [];\n if (this.canLock()) {\n (this.items() || []).forEach(item => {\n if (item.isLock) {\n this.lockItems.push(item);\n } else {\n this.unlockItems.push(item);\n }\n });\n } else {\n this.unlockItems = this.items();\n }\n }\n\n private _afterChangeItems(changes: IterableChanges<ThyTransferItem>, items: ThyTransferItem[]) {\n // 数据发生变化时,更改order值\n changes.forEachAddedItem(record => {\n record.item.order = record.currentIndex;\n });\n changes.forEachRemovedItem(() => {\n items.forEach((item, index) => {\n item.order = index;\n });\n });\n changes.forEachMovedItem(() => {\n items.forEach((item, index) => {\n item.order = index;\n });\n });\n }\n\n ngDoCheck() {\n const changes = this._diff.diff(this.items());\n if (changes) {\n this._afterChangeItems(changes, this.items());\n this._combineTransferData();\n }\n if (this._lockDiff) {\n const lockChanges = this._lockDiff.diff(this.lockItems);\n if (lockChanges) {\n this._afterChangeItems(lockChanges, this.lockItems);\n }\n }\n const unlockChanges = this._unlockDiff.diff(this.unlockItems);\n if (unlockChanges) {\n this._afterChangeItems(unlockChanges, this.unlockItems);\n }\n }\n\n lockListEnterPredicate = () => {\n return this.lockItems.length < this.maxLock();\n };\n\n unlockListEnterPredicate = (event: CdkDrag<ThyTransferItem>) => {\n return !event.data.isFixed;\n };\n\n onSelectItem = (item: ThyTransferItem) => {\n this.selectItem.emit({ item });\n };\n\n onUnselectItem = (item: ThyTransferItem) => {\n this.unselectItem.emit({ item });\n };\n\n drop(event: CdkDragDrop<ThyTransferItem[]>) {\n if (event.previousContainer === event.container) {\n moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);\n } else {\n transferArrayItem(event.previousContainer.data, event.container.data, event.previousIndex, event.currentIndex);\n (event.previousContainer.data || []).forEach(item => {\n item.isLock = event.previousContainer.id === 'lock';\n });\n\n (event.container.data || []).forEach(item => {\n item.isLock = event.container.id === 'lock';\n });\n }\n const dragEvent: ThyTransferDragEvent = {\n model: event.item.data,\n models: event.container.data,\n oldIndex: event.previousIndex,\n newIndex: event.currentIndex\n };\n this.draggableUpdate.emit({\n dragEvent: dragEvent,\n listData: { lock: this.lockItems, unlock: this.unlockItems }\n });\n }\n}\n","<div class=\"thy-transfer-list-header\">\n <span class=\"thy-transfer-list-header-title\"\n >{{ title() }} · {{ items()?.length }}\n @if (max()) {\n <span>{{ locale().maxLimit.replace('{max}', max()?.toString() ?? '') }}</span>\n }\n </span>\n</div>\n@if (!renderContentRef()) {\n <div class=\"thy-transfer-list-body\" cdkDropListGroup [cdkDropListGroupDisabled]=\"!draggable()\">\n @if (canLock()) {\n <div class=\"thy-transfer-list-group-name\">{{ locale().maxLockLimit.replace('{maxLock}', maxLock()?.toString() ?? '') }}</div>\n <thy-list\n class=\"thy-transfer-list-content\"\n cdkDropList\n thyDragDrop\n id=\"lock\"\n [cdkDropListData]=\"lockItems\"\n (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListEnterPredicate]=\"lockListEnterPredicate\">\n @if (lockItems.length === 0) {\n <div class=\"cdk-drop-list-empty\"></div>\n }\n @for (item of lockItems; track $index) {\n <thy-list-item\n class=\"thy-transfer-list-content-item text-truncate\"\n cdkDrag\n [cdkDragData]=\"item\"\n [ngClass]=\"{ active: item.checked }\">\n <ng-template [ngTemplateOutlet]=\"template()\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </thy-list-item>\n }\n </thy-list>\n <div class=\"thy-transfer-list-group-name\">{{ locale().unlocked }}</div>\n }\n <thy-list\n class=\"thy-transfer-list-content\"\n cdkDropList\n thyDragDrop\n [cdkDropListDisabled]=\"!draggable()\"\n id=\"unlock\"\n [cdkDropListData]=\"unlockItems\"\n (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListEnterPredicate]=\"unlockListEnterPredicate\">\n @if (unlockItems.length === 0) {\n <div class=\"cdk-drop-list-empty\"></div>\n }\n @for (item of unlockItems; track $index) {\n <thy-list-item\n class=\"thy-transfer-list-content-item text-truncate\"\n cdkDrag\n [cdkDragData]=\"item\"\n [ngClass]=\"{ active: item.checked, disabled: disabled() && item.direction === 'left' }\">\n <ng-template [ngTemplateOutlet]=\"template()\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </thy-list-item>\n }\n </thy-list>\n </div>\n} @else {\n <div class=\"thy-transfer-list-body\">\n <ng-container\n *ngTemplateOutlet=\"\n renderContentRef();\n context: {\n $implicit: items(),\n onSelectItem: onSelectItem,\n onUnselectItem: onUnselectItem\n }\n \"></ng-container>\n </div>\n}\n","import {\n Component,\n OnInit,\n TemplateRef,\n ViewEncapsulation,\n computed,\n input,\n output,\n contentChild,\n numberAttribute,\n effect\n} from '@angular/core';\n\nimport {\n Direction,\n InnerTransferDragEvent,\n ThyTransferChangeEvent,\n ThyTransferDragEvent,\n ThyTransferItem,\n ThyTransferSelectEvent,\n TransferDirection\n} from './transfer.interface';\nimport { ThyFlexibleText } from 'ngx-tethys/flexible-text';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { ThyTransferList } from './transfer-list.component';\nimport { coerceBooleanProperty, ThyBooleanInput } from 'ngx-tethys/util';\n\n/**\n * 穿梭框组件\n * @name thy-transfer\n * @order 10\n */\n@Component({\n selector: 'thy-transfer',\n templateUrl: './transfer.component.html',\n host: {\n class: 'thy-transfer'\n },\n encapsulation: ViewEncapsulation.None,\n imports: [ThyTransferList, ThyIcon, NgClass, NgTemplateOutlet, ThyFlexibleText]\n})\nexport class ThyTransfer implements OnInit {\n public leftDataSource: ThyTransferItem[] = [];\n\n public rightDataSource: ThyTransferItem[] = [];\n /**\n * 数据源\n * @type ThyTransferItem[]\n */\n readonly thyData = input<ThyTransferItem[]>([]);\n\n readonly thyRenderLeftTemplateRef = input<TemplateRef<any>>();\n\n readonly thyRenderRightTemplateRef = input<TemplateRef<any>>();\n\n /**\n * title集合,title[0]为左标题,title[1]为右标题\n * @type string[]\n */\n readonly thyTitles = input<string[]>([]);\n\n /**\n * 右侧列表是否可以锁定\n * @default false\n */\n readonly thyRightCanLock = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n /**\n * 右侧锁定最大数量\n */\n readonly thyRightLockMax = input<number, unknown>(undefined, { transform: numberAttribute });\n\n /**\n * 右侧选择最大数量\n */\n readonly thyRightMax = input<number, unknown>(undefined, { transform: numberAttribute });\n\n /**\n * 设置是否自动移动\n * @description.en-us Currently not implemented, in order to support the selections move\n * @default true\n */\n readonly thyAutoMove = input<boolean, ThyBooleanInput>(true, { transform: coerceBooleanProperty });\n\n /**\n * 左侧列表是否拖动\n * @default false\n */\n readonly thyLeftDraggable = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n /**\n * 右侧列表是否拖动\n * @default false\n */\n readonly thyRightDraggable = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n /**\n * @type EventEmitter<ThyTransferDragEvent>\n */\n thyDraggableUpdate = output<ThyTransferDragEvent>();\n\n /**\n * Transfer变化的回调事件\n * @type EventEmitter<ThyTransferChangeEvent>\n */\n thyChange = output<ThyTransferChangeEvent>();\n\n /**\n * 设置自定义Item渲染数据模板\n * @type TemplateRef\n */\n readonly templateRef = contentChild<TemplateRef<any>>('renderTemplate');\n\n /**\n * 设置自定义左侧内容模板\n * @type TemplateRef\n */\n readonly leftContentRef = contentChild<TemplateRef<any>>('renderLeftTemplate');\n\n /**\n * 设置自定义右侧内容模板\n * @type TemplateRef\n */\n readonly rightContentRef = contentChild<TemplateRef<any>>('renderRightTemplate');\n\n readonly leftTitle = computed(() => this.thyTitles()[0] || '');\n\n readonly rightTitle = computed(() => this.thyTitles()[1] || '');\n\n constructor() {\n effect(() => {\n this.initializeTransferData();\n });\n }\n\n ngOnInit() {}\n\n initializeTransferData(data: ThyTransferItem[] = []) {\n this.leftDataSource = [];\n this.rightDataSource = [];\n this.thyData().forEach(item => {\n if (item.direction === TransferDirection.left) {\n this.leftDataSource.push(item);\n }\n if (item.direction === TransferDirection.right) {\n this.rightDataSource.push(item);\n }\n });\n }\n\n onSelect(from: Direction, event: ThyTransferSelectEvent) {\n if (event.item.isFixed) {\n return;\n }\n if (this.thyRightMax() <= this.rightDataSource.length && from === TransferDirection.left) {\n return;\n }\n const to = from === TransferDirection.left ? TransferDirection.right : TransferDirection.left;\n event.item.checked = !event.item.checked;\n if (this.thyAutoMove()) {\n this.onMove(to);\n }\n }\n\n selectItem(event: ThyTransferSelectEvent) {\n this.onSelect(TransferDirection.left, event);\n }\n\n unselectItem(event: ThyTransferSelectEvent) {\n this.onSelect(TransferDirection.right, event);\n }\n\n private groupListByIsLock(list: ThyTransferItem[] = []) {\n const lock: ThyTransferItem[] = [],\n unlock: ThyTransferItem[] = [];\n list.forEach(item => {\n if (item.isLock) {\n lock.push(item);\n } else {\n unlock.push(item);\n }\n });\n return { lock: lock, unlock: unlock };\n }\n\n onMove(to: Direction) {\n const fromDataSource = to === TransferDirection.right ? this.leftDataSource : this.rightDataSource;\n const toDataSource = to === TransferDirection.right ? this.rightDataSource : this.leftDataSource;\n const selections = fromDataSource.filter(item => item.checked);\n const changeEvent: ThyTransferChangeEvent = {\n from: to === TransferDirection.right ? TransferDirection.left : TransferDirection.right,\n to: to,\n items: [...selections]\n };\n selections.forEach(item => {\n const index = fromDataSource.indexOf(item);\n const removed = fromDataSource.splice(index, 1)[0];\n removed.checked = !removed.checked;\n removed.direction = to;\n toDataSource.push(removed);\n });\n this.thyChange.emit({\n ...changeEvent,\n left: this.groupListByIsLock(this.leftDataSource),\n right: this.groupListByIsLock(this.rightDataSource)\n });\n }\n\n onDragUpdate(direction: Direction, event: InnerTransferDragEvent) {\n const otherDirectionData = direction === TransferDirection.left ? this.rightDataSource : this.leftDataSource;\n const otherListData = this.groupListByIsLock(otherDirectionData);\n this.thyDraggableUpdate.emit({\n ...event.dragEvent,\n left: direction === TransferDirection.left ? event.listData : otherListData,\n right: direction === TransferDirection.right ? event.listData : otherListData\n });\n\n this.rightDataSource =\n direction === TransferDirection.right\n ? [...event.listData.lock, ...event.listData.unlock]\n : [...otherListData.lock, ...otherListData.unlock];\n }\n}\n","<thy-transfer-list\n [items]=\"thyData()\"\n [title]=\"leftTitle()\"\n [draggable]=\"thyLeftDraggable()\"\n [disabled]=\"thyRightMax() <= rightDataSource.length\"\n [renderContentRef]=\"leftContentRef()\"\n (draggableUpdate)=\"onDragUpdate('left', $event)\"\n [template]=\"leftTemplateRef\"\n (selectItem)=\"selectItem($event)\"\n (unselectItem)=\"unselectItem($event)\">\n <ng-template #leftTemplateRef let-item>\n <div (click)=\"onSelect(item.direction === 'left' ? 'left' : 'right', { item: item })\" class=\"list-item-content\">\n @if (thyLeftDraggable()) {\n <thy-icon thyIconName=\"drag\" class=\"drag-handle\"></thy-icon>\n }\n <div class=\"item-name\" [ngClass]=\"{ 'un-select-item': item.direction !== 'right' }\">\n <ng-template [ngTemplateOutlet]=\"thyTransferListItem\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </div>\n @if (item.direction === 'right') {\n <thy-icon class=\"text-primary item-status\" thyIconName=\"check\"></thy-icon>\n }\n </div>\n </ng-template>\n</thy-transfer-list>\n\n<div class=\"thy-transfer-operation\">\n <div class=\"thy-transfer-operation-body\">\n <thy-icon thyIconName=\"angle-right\" class=\"operation-link\"></thy-icon>\n <br />\n <thy-icon thyIconName=\"angle-left\" class=\"operation-link\"></thy-icon>\n </div>\n</div>\n\n<thy-transfer-list\n [items]=\"rightDataSource\"\n [title]=\"rightTitle()\"\n [draggable]=\"thyRightDraggable()\"\n (draggableUpdate)=\"onDragUpdate('right', $event)\"\n [canLock]=\"thyRightCanLock()\"\n [maxLock]=\"thyRightLockMax()\"\n [max]=\"thyRightMax()\"\n [template]=\"rightTemplateRef\"\n [renderContentRef]=\"rightContentRef()\"\n (selectItem)=\"selectItem($event)\"\n (unselectItem)=\"unselectItem($event)\">\n <ng-template #rightTemplateRef let-item>\n @if (thyRightDraggable()) {\n <thy-icon thyIconName=\"drag\" class=\"drag-handle\"></thy-icon>\n }\n <div class=\"item-name\">\n <ng-template [ngTemplateOutlet]=\"thyTransferListItem\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </div>\n @if (item.direction === 'right' && !item.isFixed) {\n <a class=\"link-secondary\" (click)=\"onSelect('right', { item: item })\">\n <thy-icon class=\"item-status\" thyIconName=\"close\"></thy-icon>\n </a>\n }\n </ng-template>\n</thy-transfer-list>\n\n<ng-template #thyTransferListItem let-item>\n @if (templateRef()) {\n <ng-template [ngTemplateOutlet]=\"templateRef()\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n }\n @if (!templateRef()) {\n <thy-flexible-text [thyTooltipContent]=\"item.title\">\n {{ item.title }}\n </thy-flexible-text>\n }\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyTransfer } from './transfer.component';\nimport { ThyTransferList } from './transfer-list.component';\nimport { ThyButtonModule } from 'ngx-tethys/button';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyListModule } from 'ngx-tethys/list';\nimport { ThySharedModule } from 'ngx-tethys/shared';\nimport { ThyFlexibleTextModule } from 'ngx-tethys/flexible-text';\n@NgModule({\n imports: [\n CommonModule,\n ThyButtonModule,\n DragDropModule,\n ThyIconModule,\n ThyListModule,\n ThySharedModule,\n ThyFlexibleTextModule,\n ThyTransfer,\n ThyTransferList\n ],\n exports: [ThyTransfer]\n})\nexport class ThyTransferModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngx-tethys-transfer.mjs","sources":["../../../src/transfer/transfer.interface.ts","../../../src/transfer/transfer-list.component.ts","../../../src/transfer/transfer-list.component.html","../../../src/transfer/transfer.component.ts","../../../src/transfer/transfer.component.html","../../../src/transfer/transfer.module.ts","../../../src/transfer/ngx-tethys-transfer.ts"],"sourcesContent":["export type Direction = 'left' | 'right';\n\nexport enum TransferDirection {\n left = 'left',\n right = 'right'\n}\n\nexport interface ThyTransferData {\n source: ThyTransferModel;\n target: ThyTransferModel;\n}\n\nexport interface ThyTransferModel {\n title?: string;\n data: Array<any>;\n}\n\n/**\n * @public\n * @order 20\n */\nexport interface ThyTransferItem {\n /**\n * 数据标题\n */\n title: string;\n\n /**\n * 设置方向,可选值 [left,right]\n */\n direction?: Direction;\n\n order?: number | null;\n\n disabled?: boolean;\n\n /**\n * 选中状态\n */\n checked?: boolean;\n\n isLock?: boolean;\n\n groupId?: string;\n\n isFixed?: boolean;\n\n /**\n * 自定义数据\n */\n [key: string]: any;\n}\n\nexport interface ThyTransferSelectEvent {\n item: ThyTransferItem;\n}\n\nexport interface ThyTransferChangeEvent {\n from?: string;\n to?: string;\n items?: ThyTransferItem[];\n left?: InnerTransferList;\n right?: InnerTransferList;\n}\n\nexport interface ThyTransferDragEvent {\n oldIndex?: number;\n newIndex?: number;\n model?: ThyTransferItem;\n models?: ThyTransferItem[];\n left?: InnerTransferList;\n right?: InnerTransferList;\n}\n\nexport interface InnerTransferDragEvent {\n dragEvent?: ThyTransferDragEvent;\n listData?: InnerTransferList;\n}\n\nexport interface InnerTransferList {\n lock?: ThyTransferItem[];\n unlock?: ThyTransferItem[];\n}\n","import { CdkDrag, CdkDragDrop, CdkDropList, CdkDropListGroup, moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop';\nimport {\n Component,\n DoCheck,\n IterableChanges,\n IterableDiffer,\n IterableDiffers,\n OnInit,\n Signal,\n TemplateRef,\n ViewEncapsulation,\n inject,\n input,\n numberAttribute,\n output\n} from '@angular/core';\n\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { ThyList, ThyListItem } from 'ngx-tethys/list';\nimport { ThyDragDropDirective } from 'ngx-tethys/shared';\nimport { InnerTransferDragEvent, ThyTransferDragEvent, ThyTransferItem, ThyTransferSelectEvent } from './transfer.interface';\nimport { injectLocale, ThyTransferLocale } from 'ngx-tethys/i18n';\nimport { coerceBooleanProperty, isUndefinedOrNull, ThyBooleanInput } from 'ngx-tethys/util';\n\n/**\n * @private\n */\n@Component({\n selector: 'thy-transfer-list',\n templateUrl: './transfer-list.component.html',\n host: {\n class: 'thy-transfer-list'\n },\n encapsulation: ViewEncapsulation.None,\n imports: [CdkDropListGroup, ThyList, CdkDropList, ThyDragDropDirective, ThyListItem, CdkDrag, NgClass, NgTemplateOutlet]\n})\nexport class ThyTransferList implements OnInit, DoCheck {\n private differs = inject(IterableDiffers);\n\n public lockItems: ThyTransferItem[] = [];\n\n public unlockItems: ThyTransferItem[] = [];\n\n private _diff!: IterableDiffer<ThyTransferItem>;\n\n private _lockDiff!: IterableDiffer<ThyTransferItem>;\n\n private _unlockDiff!: IterableDiffer<ThyTransferItem>;\n\n locale: Signal<ThyTransferLocale> = injectLocale('transfer');\n\n readonly title = input<string>();\n\n readonly items = input.required<ThyTransferItem[]>();\n\n readonly draggable = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n readonly canLock = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n readonly maxLock = input<number, unknown>(undefined, { transform: numberAttribute });\n\n readonly max = input<number, unknown>(undefined, { transform: numberAttribute });\n\n readonly disabled = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n readonly template = input<TemplateRef<any>>();\n\n readonly renderContentRef = input<TemplateRef<any>>();\n\n readonly draggableUpdate = output<InnerTransferDragEvent>();\n\n readonly selectItem = output<ThyTransferSelectEvent>();\n\n readonly unselectItem = output<ThyTransferSelectEvent>();\n\n constructor() {}\n\n ngOnInit() {\n this._combineTransferData();\n if (this.canLock()) {\n this._lockDiff = this.differs.find(this.lockItems).create();\n this._unlockDiff = this.differs.find(this.unlockItems).create();\n } else {\n this._unlockDiff = this.differs.find(this.unlockItems).create();\n }\n this._diff = this.differs.find(this.items()).create();\n }\n\n private _combineTransferData() {\n this.lockItems = [];\n this.unlockItems = [];\n if (this.canLock()) {\n (this.items() || []).forEach(item => {\n if (item.isLock) {\n this.lockItems.push(item);\n } else {\n this.unlockItems.push(item);\n }\n });\n } else {\n this.unlockItems = this.items();\n }\n }\n\n private _afterChangeItems(changes: IterableChanges<ThyTransferItem>, items: ThyTransferItem[]) {\n // 数据发生变化时,更改order值\n changes.forEachAddedItem(record => {\n record.item.order = record.currentIndex;\n });\n changes.forEachRemovedItem(() => {\n items.forEach((item, index) => {\n item.order = index;\n });\n });\n changes.forEachMovedItem(() => {\n items.forEach((item, index) => {\n item.order = index;\n });\n });\n }\n\n ngDoCheck() {\n const changes = this._diff.diff(this.items());\n if (changes) {\n this._afterChangeItems(changes, this.items());\n this._combineTransferData();\n }\n if (this._lockDiff) {\n const lockChanges = this._lockDiff.diff(this.lockItems);\n if (lockChanges) {\n this._afterChangeItems(lockChanges, this.lockItems);\n }\n }\n const unlockChanges = this._unlockDiff.diff(this.unlockItems);\n if (unlockChanges) {\n this._afterChangeItems(unlockChanges, this.unlockItems);\n }\n }\n\n lockListEnterPredicate = () => {\n return !isUndefinedOrNull(this.maxLock()) && this.lockItems.length < this.maxLock()!;\n };\n\n unlockListEnterPredicate = (event: CdkDrag<ThyTransferItem>) => {\n return !event.data.isFixed;\n };\n\n onSelectItem = (item: ThyTransferItem) => {\n this.selectItem.emit({ item });\n };\n\n onUnselectItem = (item: ThyTransferItem) => {\n this.unselectItem.emit({ item });\n };\n\n drop(event: CdkDragDrop<ThyTransferItem[]>) {\n if (event.previousContainer === event.container) {\n moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);\n } else {\n transferArrayItem(event.previousContainer.data, event.container.data, event.previousIndex, event.currentIndex);\n (event.previousContainer.data || []).forEach(item => {\n item.isLock = event.previousContainer.id === 'lock';\n });\n\n (event.container.data || []).forEach(item => {\n item.isLock = event.container.id === 'lock';\n });\n }\n const dragEvent: ThyTransferDragEvent = {\n model: event.item.data,\n models: event.container.data,\n oldIndex: event.previousIndex,\n newIndex: event.currentIndex\n };\n this.draggableUpdate.emit({\n dragEvent: dragEvent,\n listData: { lock: this.lockItems, unlock: this.unlockItems }\n });\n }\n}\n","<div class=\"thy-transfer-list-header\">\n <span class=\"thy-transfer-list-header-title\"\n >{{ title() }} · {{ items()?.length }}\n @if (max()) {\n <span>{{ locale().maxLimit.replace('{max}', max()?.toString() ?? '') }}</span>\n }\n </span>\n</div>\n@if (!renderContentRef()) {\n <div class=\"thy-transfer-list-body\" cdkDropListGroup [cdkDropListGroupDisabled]=\"!draggable()\">\n @if (canLock()) {\n <div class=\"thy-transfer-list-group-name\">{{ locale().maxLockLimit.replace('{maxLock}', maxLock()?.toString() ?? '') }}</div>\n <thy-list\n class=\"thy-transfer-list-content\"\n cdkDropList\n thyDragDrop\n id=\"lock\"\n [cdkDropListData]=\"lockItems\"\n (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListEnterPredicate]=\"lockListEnterPredicate\">\n @if (lockItems.length === 0) {\n <div class=\"cdk-drop-list-empty\"></div>\n }\n @for (item of lockItems; track $index) {\n <thy-list-item\n class=\"thy-transfer-list-content-item text-truncate\"\n cdkDrag\n [cdkDragData]=\"item\"\n [ngClass]=\"{ active: item.checked }\">\n <ng-template [ngTemplateOutlet]=\"template()\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </thy-list-item>\n }\n </thy-list>\n <div class=\"thy-transfer-list-group-name\">{{ locale().unlocked }}</div>\n }\n <thy-list\n class=\"thy-transfer-list-content\"\n cdkDropList\n thyDragDrop\n [cdkDropListDisabled]=\"!draggable()\"\n id=\"unlock\"\n [cdkDropListData]=\"unlockItems\"\n (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListEnterPredicate]=\"unlockListEnterPredicate\">\n @if (unlockItems.length === 0) {\n <div class=\"cdk-drop-list-empty\"></div>\n }\n @for (item of unlockItems; track $index) {\n <thy-list-item\n class=\"thy-transfer-list-content-item text-truncate\"\n cdkDrag\n [cdkDragData]=\"item\"\n [ngClass]=\"{ active: item.checked, disabled: disabled() && item.direction === 'left' }\">\n <ng-template [ngTemplateOutlet]=\"template()\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </thy-list-item>\n }\n </thy-list>\n </div>\n} @else {\n <div class=\"thy-transfer-list-body\">\n <ng-container\n *ngTemplateOutlet=\"\n renderContentRef();\n context: {\n $implicit: items(),\n onSelectItem: onSelectItem,\n onUnselectItem: onUnselectItem\n }\n \"></ng-container>\n </div>\n}\n","import {\n Component,\n OnInit,\n TemplateRef,\n ViewEncapsulation,\n computed,\n input,\n output,\n contentChild,\n numberAttribute,\n effect\n} from '@angular/core';\n\nimport {\n Direction,\n InnerTransferDragEvent,\n ThyTransferChangeEvent,\n ThyTransferDragEvent,\n ThyTransferItem,\n ThyTransferSelectEvent,\n TransferDirection\n} from './transfer.interface';\nimport { ThyFlexibleText } from 'ngx-tethys/flexible-text';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { ThyTransferList } from './transfer-list.component';\nimport { coerceBooleanProperty, isUndefinedOrNull, ThyBooleanInput } from 'ngx-tethys/util';\n\n/**\n * 穿梭框组件\n * @name thy-transfer\n * @order 10\n */\n@Component({\n selector: 'thy-transfer',\n templateUrl: './transfer.component.html',\n host: {\n class: 'thy-transfer'\n },\n encapsulation: ViewEncapsulation.None,\n imports: [ThyTransferList, ThyIcon, NgClass, NgTemplateOutlet, ThyFlexibleText]\n})\nexport class ThyTransfer implements OnInit {\n public leftDataSource: ThyTransferItem[] = [];\n\n public rightDataSource: ThyTransferItem[] = [];\n /**\n * 数据源\n * @type ThyTransferItem[]\n */\n readonly thyData = input<ThyTransferItem[]>([]);\n\n readonly thyRenderLeftTemplateRef = input<TemplateRef<any>>();\n\n readonly thyRenderRightTemplateRef = input<TemplateRef<any>>();\n\n /**\n * title集合,title[0]为左标题,title[1]为右标题\n * @type string[]\n */\n readonly thyTitles = input<string[]>([]);\n\n /**\n * 右侧列表是否可以锁定\n * @default false\n */\n readonly thyRightCanLock = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n /**\n * 右侧锁定最大数量\n */\n readonly thyRightLockMax = input<number, unknown>(undefined, { transform: numberAttribute });\n\n /**\n * 右侧选择最大数量\n */\n readonly thyRightMax = input<number, unknown>(undefined, { transform: numberAttribute });\n\n /**\n * 设置是否自动移动\n * @description.en-us Currently not implemented, in order to support the selections move\n * @default true\n */\n readonly thyAutoMove = input<boolean, ThyBooleanInput>(true, { transform: coerceBooleanProperty });\n\n /**\n * 左侧列表是否拖动\n * @default false\n */\n readonly thyLeftDraggable = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n /**\n * 右侧列表是否拖动\n * @default false\n */\n readonly thyRightDraggable = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n /**\n * @type EventEmitter<ThyTransferDragEvent>\n */\n readonly thyDraggableUpdate = output<ThyTransferDragEvent>();\n\n /**\n * Transfer变化的回调事件\n * @type EventEmitter<ThyTransferChangeEvent>\n */\n readonly thyChange = output<ThyTransferChangeEvent>();\n\n /**\n * 设置自定义Item渲染数据模板\n * @type TemplateRef\n */\n readonly templateRef = contentChild<TemplateRef<any>>('renderTemplate');\n\n /**\n * 设置自定义左侧内容模板\n * @type TemplateRef\n */\n readonly leftContentRef = contentChild<TemplateRef<any>>('renderLeftTemplate');\n\n /**\n * 设置自定义右侧内容模板\n * @type TemplateRef\n */\n readonly rightContentRef = contentChild<TemplateRef<any>>('renderRightTemplate');\n\n readonly leftTitle = computed(() => this.thyTitles()[0] || '');\n\n readonly rightTitle = computed(() => this.thyTitles()[1] || '');\n\n constructor() {\n effect(() => {\n this.initializeTransferData();\n });\n }\n\n ngOnInit() {}\n\n initializeTransferData(data: ThyTransferItem[] = []) {\n this.leftDataSource = [];\n this.rightDataSource = [];\n this.thyData().forEach(item => {\n if (item.direction === TransferDirection.left) {\n this.leftDataSource.push(item);\n }\n if (item.direction === TransferDirection.right) {\n this.rightDataSource.push(item);\n }\n });\n }\n\n onSelect(from: Direction, event: ThyTransferSelectEvent) {\n if (event.item.isFixed) {\n return;\n }\n if (this.thyRightMax()! <= this.rightDataSource.length && from === TransferDirection.left) {\n return;\n }\n const to = from === TransferDirection.left ? TransferDirection.right : TransferDirection.left;\n event.item.checked = !event.item.checked;\n if (this.thyAutoMove()) {\n this.onMove(to);\n }\n }\n\n selectItem(event: ThyTransferSelectEvent) {\n this.onSelect(TransferDirection.left, event);\n }\n\n unselectItem(event: ThyTransferSelectEvent) {\n this.onSelect(TransferDirection.right, event);\n }\n\n private groupListByIsLock(list: ThyTransferItem[] = []) {\n const lock: ThyTransferItem[] = [],\n unlock: ThyTransferItem[] = [];\n list.forEach(item => {\n if (item.isLock) {\n lock.push(item);\n } else {\n unlock.push(item);\n }\n });\n return { lock: lock, unlock: unlock };\n }\n\n onMove(to: Direction) {\n const fromDataSource = to === TransferDirection.right ? this.leftDataSource : this.rightDataSource;\n const toDataSource = to === TransferDirection.right ? this.rightDataSource : this.leftDataSource;\n const selections = fromDataSource.filter(item => item.checked);\n const changeEvent: ThyTransferChangeEvent = {\n from: to === TransferDirection.right ? TransferDirection.left : TransferDirection.right,\n to: to,\n items: [...selections]\n };\n selections.forEach(item => {\n const index = fromDataSource.indexOf(item);\n const removed = fromDataSource.splice(index, 1)[0];\n removed.checked = !removed.checked;\n removed.direction = to;\n toDataSource.push(removed);\n });\n this.thyChange.emit({\n ...changeEvent,\n left: this.groupListByIsLock(this.leftDataSource),\n right: this.groupListByIsLock(this.rightDataSource)\n });\n }\n\n onDragUpdate(direction: Direction, event: InnerTransferDragEvent) {\n const otherDirectionData = direction === TransferDirection.left ? this.rightDataSource : this.leftDataSource;\n const otherListData = this.groupListByIsLock(otherDirectionData);\n this.thyDraggableUpdate.emit({\n ...event.dragEvent,\n left: direction === TransferDirection.left ? event.listData : otherListData,\n right: direction === TransferDirection.right ? event.listData : otherListData\n });\n\n this.rightDataSource =\n direction === TransferDirection.right\n ? [...event.listData!.lock!, ...event.listData!.unlock!]\n : [...otherListData.lock, ...otherListData.unlock];\n }\n}\n","<thy-transfer-list\n [items]=\"thyData()\"\n [title]=\"leftTitle()\"\n [draggable]=\"thyLeftDraggable()\"\n [disabled]=\"thyRightMax()! <= rightDataSource.length\"\n [renderContentRef]=\"leftContentRef()\"\n (draggableUpdate)=\"onDragUpdate('left', $event)\"\n [template]=\"leftTemplateRef\"\n (selectItem)=\"selectItem($event)\"\n (unselectItem)=\"unselectItem($event)\">\n <ng-template #leftTemplateRef let-item>\n <div (click)=\"onSelect(item.direction === 'left' ? 'left' : 'right', { item: item })\" class=\"list-item-content\">\n @if (thyLeftDraggable()) {\n <thy-icon thyIconName=\"drag\" class=\"drag-handle\"></thy-icon>\n }\n <div class=\"item-name\" [ngClass]=\"{ 'un-select-item': item.direction !== 'right' }\">\n <ng-template [ngTemplateOutlet]=\"thyTransferListItem\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </div>\n @if (item.direction === 'right') {\n <thy-icon class=\"text-primary item-status\" thyIconName=\"check\"></thy-icon>\n }\n </div>\n </ng-template>\n</thy-transfer-list>\n\n<div class=\"thy-transfer-operation\">\n <div class=\"thy-transfer-operation-body\">\n <thy-icon thyIconName=\"angle-right\" class=\"operation-link\"></thy-icon>\n <br />\n <thy-icon thyIconName=\"angle-left\" class=\"operation-link\"></thy-icon>\n </div>\n</div>\n\n<thy-transfer-list\n [items]=\"rightDataSource\"\n [title]=\"rightTitle()\"\n [draggable]=\"thyRightDraggable()\"\n (draggableUpdate)=\"onDragUpdate('right', $event)\"\n [canLock]=\"thyRightCanLock()\"\n [maxLock]=\"thyRightLockMax()\"\n [max]=\"thyRightMax()\"\n [template]=\"rightTemplateRef\"\n [renderContentRef]=\"rightContentRef()\"\n (selectItem)=\"selectItem($event)\"\n (unselectItem)=\"unselectItem($event)\">\n <ng-template #rightTemplateRef let-item>\n @if (thyRightDraggable()) {\n <thy-icon thyIconName=\"drag\" class=\"drag-handle\"></thy-icon>\n }\n <div class=\"item-name\">\n <ng-template [ngTemplateOutlet]=\"thyTransferListItem\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </div>\n @if (item.direction === 'right' && !item.isFixed) {\n <a class=\"link-secondary\" (click)=\"onSelect('right', { item: item })\">\n <thy-icon class=\"item-status\" thyIconName=\"close\"></thy-icon>\n </a>\n }\n </ng-template>\n</thy-transfer-list>\n\n<ng-template #thyTransferListItem let-item>\n @if (templateRef()) {\n <ng-template [ngTemplateOutlet]=\"templateRef()\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n }\n @if (!templateRef()) {\n <thy-flexible-text [thyTooltipContent]=\"item.title\">\n {{ item.title }}\n </thy-flexible-text>\n }\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyTransfer } from './transfer.component';\nimport { ThyTransferList } from './transfer-list.component';\nimport { ThyButtonModule } from 'ngx-tethys/button';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyListModule } from 'ngx-tethys/list';\nimport { ThySharedModule } from 'ngx-tethys/shared';\nimport { ThyFlexibleTextModule } from 'ngx-tethys/flexible-text';\n@NgModule({\n imports: [\n CommonModule,\n ThyButtonModule,\n DragDropModule,\n ThyIconModule,\n ThyListModule,\n ThySharedModule,\n ThyFlexibleTextModule,\n ThyTransfer,\n ThyTransferList\n ],\n exports: [ThyTransfer]\n})\nexport class ThyTransferModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -97,9 +97,9 @@ class ThyTreeSelect extends TabIndexDisabledControlValueAccessorMixin {
|
|
|
97
97
|
this.searchText = signal('', ...(ngDevMode ? [{ debugName: "searchText" }] : []));
|
|
98
98
|
this.thyTreeSelectTriggerDisplayRef = contentChild('thyTreeSelectTriggerDisplay', ...(ngDevMode ? [{ debugName: "thyTreeSelectTriggerDisplayRef" }] : []));
|
|
99
99
|
this.treeNodeTemplateRef = contentChild('treeNodeTemplate', ...(ngDevMode ? [{ debugName: "treeNodeTemplateRef" }] : []));
|
|
100
|
-
this.cdkOverlayOrigin = viewChild(CdkOverlayOrigin
|
|
101
|
-
this.cdkConnectedOverlay = viewChild(CdkConnectedOverlay
|
|
102
|
-
this.customDisplayTemplate = viewChild('customDisplayTemplate'
|
|
100
|
+
this.cdkOverlayOrigin = viewChild.required(CdkOverlayOrigin);
|
|
101
|
+
this.cdkConnectedOverlay = viewChild.required(CdkConnectedOverlay);
|
|
102
|
+
this.customDisplayTemplate = viewChild.required('customDisplayTemplate');
|
|
103
103
|
/**
|
|
104
104
|
* treeNodes 数据
|
|
105
105
|
* @type ThyTreeSelectNode[]
|
|
@@ -147,7 +147,7 @@ class ThyTreeSelect extends TabIndexDisabledControlValueAccessorMixin {
|
|
|
147
147
|
* 控制树选择的输入框大小
|
|
148
148
|
* @type xs | sm | md | default | lg
|
|
149
149
|
*/
|
|
150
|
-
this.thySize = input(
|
|
150
|
+
this.thySize = input(...(ngDevMode ? [undefined, { debugName: "thySize" }] : []));
|
|
151
151
|
/**
|
|
152
152
|
* 改变空选项的情况下的提示文本
|
|
153
153
|
* @type string
|
|
@@ -182,12 +182,12 @@ class ThyTreeSelect extends TabIndexDisabledControlValueAccessorMixin {
|
|
|
182
182
|
* 图标类型,支持 default | especial,已废弃
|
|
183
183
|
* @deprecated
|
|
184
184
|
*/
|
|
185
|
-
this.thyIconType = input(
|
|
185
|
+
this.thyIconType = input(...(ngDevMode ? [undefined, { debugName: "thyIconType" }] : []));
|
|
186
186
|
/**
|
|
187
187
|
* 设置是否隐藏节点(不可进行任何操作),优先级低于 thyHiddenNodeKey。
|
|
188
188
|
* @default (node: ThyTreeSelectNode) => boolean = (node: ThyTreeSelectNode) => node.hidden
|
|
189
189
|
*/
|
|
190
|
-
this.thyHiddenNodeFn = (node) => node.hidden;
|
|
190
|
+
this.thyHiddenNodeFn = (node) => !!node.hidden;
|
|
191
191
|
/**
|
|
192
192
|
* 设置是否禁用节点(不可进行任何操作),优先级低于 thyDisableNodeKey。
|
|
193
193
|
* @default (node: ThyTreeSelectNode) => boolean = (node: ThyTreeSelectNode) => node.disabled
|
|
@@ -410,8 +410,8 @@ class ThyTreeSelect extends TabIndexDisabledControlValueAccessorMixin {
|
|
|
410
410
|
return result;
|
|
411
411
|
}
|
|
412
412
|
}
|
|
413
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
414
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
413
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyTreeSelect, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
414
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: ThyTreeSelect, isStandalone: true, selector: "thy-tree-select", inputs: { thyTreeNodes: { classPropertyName: "thyTreeNodes", publicName: "thyTreeNodes", isSignal: true, isRequired: false, transformFunction: null }, thyVirtualScroll: { classPropertyName: "thyVirtualScroll", publicName: "thyVirtualScroll", isSignal: true, isRequired: false, transformFunction: null }, thyPrimaryKey: { classPropertyName: "thyPrimaryKey", publicName: "thyPrimaryKey", isSignal: true, isRequired: false, transformFunction: null }, thyShowKey: { classPropertyName: "thyShowKey", publicName: "thyShowKey", isSignal: true, isRequired: false, transformFunction: null }, thyChildCountKey: { classPropertyName: "thyChildCountKey", publicName: "thyChildCountKey", isSignal: true, isRequired: false, transformFunction: null }, thyAllowClear: { classPropertyName: "thyAllowClear", publicName: "thyAllowClear", isSignal: true, isRequired: false, transformFunction: null }, thyMultiple: { classPropertyName: "thyMultiple", publicName: "thyMultiple", isSignal: true, isRequired: false, transformFunction: null }, thyDisable: { classPropertyName: "thyDisable", publicName: "thyDisable", isSignal: true, isRequired: false, transformFunction: null }, thyPlaceholder: { classPropertyName: "thyPlaceholder", publicName: "thyPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, thySize: { classPropertyName: "thySize", publicName: "thySize", isSignal: true, isRequired: false, transformFunction: null }, thyEmptyOptionsText: { classPropertyName: "thyEmptyOptionsText", publicName: "thyEmptyOptionsText", isSignal: true, isRequired: false, transformFunction: null }, thyHiddenNodeKey: { classPropertyName: "thyHiddenNodeKey", publicName: "thyHiddenNodeKey", isSignal: true, isRequired: false, transformFunction: null }, thyDisableNodeKey: { classPropertyName: "thyDisableNodeKey", publicName: "thyDisableNodeKey", isSignal: true, isRequired: false, transformFunction: null }, thyAsyncNode: { classPropertyName: "thyAsyncNode", publicName: "thyAsyncNode", isSignal: true, isRequired: false, transformFunction: null }, thyShowWholeName: { classPropertyName: "thyShowWholeName", publicName: "thyShowWholeName", isSignal: true, isRequired: false, transformFunction: null }, thyShowSearch: { classPropertyName: "thyShowSearch", publicName: "thyShowSearch", isSignal: true, isRequired: false, transformFunction: null }, thyIconType: { classPropertyName: "thyIconType", publicName: "thyIconType", isSignal: true, isRequired: false, transformFunction: null }, thyHiddenNodeFn: { classPropertyName: "thyHiddenNodeFn", publicName: "thyHiddenNodeFn", isSignal: false, isRequired: false, transformFunction: null }, thyDisableNodeFn: { classPropertyName: "thyDisableNodeFn", publicName: "thyDisableNodeFn", isSignal: false, isRequired: false, transformFunction: null }, thyGetNodeChildren: { classPropertyName: "thyGetNodeChildren", publicName: "thyGetNodeChildren", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { thyExpandStatusChange: "thyExpandStatusChange" }, host: { listeners: { "focus": "onFocus($event)", "blur": "onBlur($event)" }, properties: { "class.thy-select-custom--multiple": "thyMultiple()", "class.menu-is-opened": "expandTreeSelectOptions()", "attr.tabindex": "tabIndex" }, classAttribute: "thy-select-custom thy-select" }, providers: [
|
|
415
415
|
{
|
|
416
416
|
provide: NG_VALUE_ACCESSOR,
|
|
417
417
|
useExisting: forwardRef(() => ThyTreeSelect),
|
|
@@ -419,7 +419,7 @@ class ThyTreeSelect extends TabIndexDisabledControlValueAccessorMixin {
|
|
|
419
419
|
}
|
|
420
420
|
], queries: [{ propertyName: "thyTreeSelectTriggerDisplayRef", first: true, predicate: ["thyTreeSelectTriggerDisplay"], descendants: true, isSignal: true }, { propertyName: "treeNodeTemplateRef", first: true, predicate: ["treeNodeTemplate"], descendants: true, isSignal: true }], viewQueries: [{ propertyName: "cdkOverlayOrigin", first: true, predicate: CdkOverlayOrigin, descendants: true, isSignal: true }, { propertyName: "cdkConnectedOverlay", first: true, predicate: CdkConnectedOverlay, descendants: true, isSignal: true }, { propertyName: "customDisplayTemplate", first: true, predicate: ["customDisplayTemplate"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div\n cdkOverlayOrigin\n thySelectControl\n (click)=\"openSelectPop()\"\n #origin=\"cdkOverlayOrigin\"\n [thyPanelOpened]=\"expandTreeSelectOptions()\"\n [thySelectedOptions]=\"selectedValueObject()\"\n [thyIsMultiple]=\"thyMultiple()\"\n [thyAllowClear]=\"thyAllowClear()\"\n [thySize]=\"thySize()\"\n [thyPlaceholder]=\"thyPlaceholder()\"\n [customDisplayTemplate]=\"customDisplayTemplate\"\n [thyShowSearch]=\"thyShowSearch()\"\n [thyDisabled]=\"thyDisable()\"\n (thyOnBlur)=\"onBlur($event)\"\n (thyOnClear)=\"clearSelectedValue($event)\"\n (thyOnRemove)=\"removeMultipleSelectedNode($event)\"\n (thyOnSearch)=\"searchValue($event)\">\n <ng-template #customDisplayTemplate let-node>\n @if (thyTreeSelectTriggerDisplayRef()) {\n <ng-template [ngTemplateOutlet]=\"thyTreeSelectTriggerDisplayRef()\" [ngTemplateOutletContext]=\"{ $implicit: node }\"></ng-template>\n } @else {\n {{ node[thyShowKey()] }}\n }\n </ng-template>\n</div>\n\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayHasBackdrop]=\"false\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayMinWidth]=\"cdkConnectOverlayWidth()\"\n [cdkConnectedOverlayFlexibleDimensions]=\"true\"\n [cdkConnectedOverlayOpen]=\"expandTreeSelectOptions()\"\n cdkConnectedOverlayTransformOriginOn=\".thy-tree-select-dropdown\"\n [cdkConnectedOverlayPositions]=\"expandedDropdownPositions\"\n (detach)=\"close()\">\n <thy-tree-select-nodes\n thyStopPropagation\n [thyVirtualScroll]=\"thyVirtualScroll()\"\n [treeNodes]=\"thyVirtualScroll() ? virtualTreeNodes() : treeNodes()\"\n [@scaleYMotion]=\"'enter'\">\n </thy-tree-select-nodes>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i0.forwardRef(() => CdkOverlayOrigin), selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: i0.forwardRef(() => ThySelectControl), selector: "thy-select-control,[thySelectControl]", inputs: ["inputValue", "thyPanelOpened", "thyIsMultiple", "thyShowSearch", "thySelectedOptions", "thyDisabled", "customDisplayTemplate", "thyAllowClear", "thyPlaceholder", "thySize", "thyMaxTagCount", "thyBorderless", "thyPreset"], outputs: ["inputValueChange", "thyOnSearch", "thyOnRemove", "thyOnClear", "thyOnBlur"] }, { kind: "directive", type: i0.forwardRef(() => NgTemplateOutlet), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i0.forwardRef(() => CdkConnectedOverlay), selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "component", type: i0.forwardRef(() => ThyTreeSelectNodes), selector: "thy-tree-select-nodes", inputs: ["treeNodes", "thyVirtualScroll"] }, { kind: "directive", type: i0.forwardRef(() => ThyStopPropagationDirective), selector: "[thyStopPropagation]", inputs: ["thyStopPropagation"] }], animations: [scaleYMotion] }); }
|
|
421
421
|
}
|
|
422
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
422
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyTreeSelect, decorators: [{
|
|
423
423
|
type: Component,
|
|
424
424
|
args: [{ selector: 'thy-tree-select', providers: [
|
|
425
425
|
{
|
|
@@ -551,7 +551,7 @@ class ThyTreeSelectNodes {
|
|
|
551
551
|
}
|
|
552
552
|
}
|
|
553
553
|
if (node.expand && this.parent.thyAsyncNode()) {
|
|
554
|
-
this.getNodeChildren(node)
|
|
554
|
+
this.getNodeChildren(node)?.subscribe(() => {
|
|
555
555
|
this.parent.setPosition();
|
|
556
556
|
});
|
|
557
557
|
}
|
|
@@ -563,10 +563,10 @@ class ThyTreeSelectNodes {
|
|
|
563
563
|
tabTrackBy(index, item) {
|
|
564
564
|
return index;
|
|
565
565
|
}
|
|
566
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
567
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
566
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyTreeSelectNodes, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
567
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: ThyTreeSelectNodes, isStandalone: true, selector: "thy-tree-select-nodes", inputs: { treeNodes: { classPropertyName: "treeNodes", publicName: "treeNodes", isSignal: true, isRequired: false, transformFunction: null }, thyVirtualScroll: { classPropertyName: "thyVirtualScroll", publicName: "thyVirtualScroll", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.tabindex": "-1", "class.thy-tree-select-dropdown-multiple": "isMultiple()" }, classAttribute: "thy-tree-select-dropdown" }, ngImport: i0, template: "@let nodeList = treeNodes();\n@let hasChildren = hasNodeChildren();\n@let virtualHeight = thyVirtualHeight();\n@let isVirtualScroll = thyVirtualScroll();\n@let showKey = this.parent.thyShowKey();\n\n@if (nodeList?.length > 0) {\n <div class=\"thy-tree-select-options\">\n <div class=\"thy-tree-select-node\">\n @if (!isVirtualScroll) {\n @for (node of nodeList; track $index) {\n <ng-container [ngTemplateOutlet]=\"treeSelectNode\" [ngTemplateOutletContext]=\"{ $implicit: node }\"></ng-container>\n }\n }\n @if (isVirtualScroll) {\n <cdk-virtual-scroll-viewport #viewport [itemSize]=\"defaultItemSize\" [style.height]=\"virtualHeight\">\n <ng-container *cdkVirtualFor=\"let node of nodeList; trackBy: tabTrackBy\">\n <ng-template [ngTemplateOutlet]=\"treeSelectNode\" [ngTemplateOutletContext]=\"{ $implicit: node }\"></ng-template>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n }\n </div>\n </div>\n} @else {\n <thy-empty\n class=\"thy-select-empty-content\"\n thySize=\"sm\"\n [thyMessage]=\"parent.thyEmptyOptionsText()\"\n [thyIconName]=\"emptyIcon()\"></thy-empty>\n}\n\n<ng-template #treeSelectNode let-node>\n <ng-container>\n @if (!treeNodeIsHidden(node)) {\n <a\n class=\"thy-option-item\"\n [ngClass]=\"{ active: treeNodeIsSelected(node), 'pl-0': hasChildren }\"\n [class.disabled]=\"treeNodeIsDisable(node)\"\n [ngStyle]=\"{ 'padding-left.px': 20 * node.level + parent.icons.gap }\"\n (click)=\"selectTreeNode($event, node)\">\n <span\n class=\"thy-tree-select-option-icon\"\n [class.invisible]=\"!(node.children?.length > 0 || (node[childCountKey()] && node[childCountKey()] > 0))\"\n (click)=\"nodeExpandToggle($event, node)\">\n <thy-icon\n class=\"node-expand-icon\"\n [thyIconName]=\"treeNodeIsExpand(node) ? parent.icons.expand : parent.icons.collapse\"></thy-icon>\n </span>\n <span class=\"thy-tree-select-option-text\" [ngClass]=\"{ 'ml-1': hasChildren }\">\n @if (treeNodeTemplateRef()) {\n <ng-template [ngTemplateOutlet]=\"treeNodeTemplateRef()\" [ngTemplateOutletContext]=\"{ $implicit: node }\"></ng-template>\n } @else {\n <span thyFlexibleText [thyTooltipContent]=\"node[showKey]\">{{ node[showKey] }}</span>\n }\n </span>\n @if (isMultiple()) {\n <thy-icon class=\"checked-icon\" thyIconName=\"check\"></thy-icon>\n }\n </a>\n }\n @if (!isVirtualScroll && treeNodeIsExpand(node) && node.children?.length > 0) {\n @for (node of node.children; track $index) {\n <ng-container [ngTemplateOutlet]=\"treeSelectNode\" [ngTemplateOutletContext]=\"{ $implicit: node }\"> </ng-container>\n }\n }\n </ng-container>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: ThyEmpty, selector: "thy-empty", inputs: ["thyMessage", "thyTranslationKey", "thyTranslationValues", "thyEntityName", "thyEntityNameTranslateKey", "thyIconName", "thySize", "thyMarginTop", "thyTopAuto", "thyContainer", "thyImageUrl", "thyImageLoading", "thyImageFetchPriority", "thyDescription"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "component", type: ThyFlexibleText, selector: "thy-flexible-text,[thyFlexibleText]", inputs: ["thyTooltipTrigger", "thyContainerClass", "thyTooltipContent", "thyTooltipPlacement", "thyTooltipOffset"], exportAs: ["thyFlexibleText"] }] }); }
|
|
568
568
|
}
|
|
569
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
569
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyTreeSelectNodes, decorators: [{
|
|
570
570
|
type: Component,
|
|
571
571
|
args: [{ selector: 'thy-tree-select-nodes', imports: [
|
|
572
572
|
NgTemplateOutlet,
|
|
@@ -586,8 +586,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
|
|
|
586
586
|
}], propDecorators: { treeNodes: [{ type: i0.Input, args: [{ isSignal: true, alias: "treeNodes", required: false }] }], thyVirtualScroll: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyVirtualScroll", required: false }] }] } });
|
|
587
587
|
|
|
588
588
|
class ThyTreeSelectModule {
|
|
589
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
590
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
|
589
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyTreeSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
590
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: ThyTreeSelectModule, imports: [CommonModule,
|
|
591
591
|
FormsModule,
|
|
592
592
|
OverlayModule,
|
|
593
593
|
ThyListModule,
|
|
@@ -597,7 +597,7 @@ class ThyTreeSelectModule {
|
|
|
597
597
|
ThySharedModule,
|
|
598
598
|
ThyTreeSelect,
|
|
599
599
|
ThyTreeSelectNodes], exports: [ThyTreeSelect, ThyTreeSelectNodes] }); }
|
|
600
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.
|
|
600
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyTreeSelectModule, imports: [CommonModule,
|
|
601
601
|
FormsModule,
|
|
602
602
|
OverlayModule,
|
|
603
603
|
ThyListModule,
|
|
@@ -608,7 +608,7 @@ class ThyTreeSelectModule {
|
|
|
608
608
|
ThyTreeSelect,
|
|
609
609
|
ThyTreeSelectNodes] }); }
|
|
610
610
|
}
|
|
611
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
611
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyTreeSelectModule, decorators: [{
|
|
612
612
|
type: NgModule,
|
|
613
613
|
args: [{
|
|
614
614
|
imports: [
|