@datarailsshared/datarailsshared 1.4.121 → 1.4.122
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/bundles/datarailsshared-datarailsshared.umd.js +344 -52
- package/bundles/datarailsshared-datarailsshared.umd.js.map +1 -1
- package/datarailsshared-datarailsshared-1.4.122.tgz +0 -0
- package/datarailsshared-datarailsshared.d.ts +23 -20
- package/datarailsshared-datarailsshared.metadata.json +1 -1
- package/esm2015/datarailsshared-datarailsshared.js +24 -21
- package/esm2015/lib/dr-dialog/components/dialog-modal-wrapper/dialog-modal-wrapper.component.js +1 -1
- package/esm2015/lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component.js +1 -1
- package/esm2015/lib/dr-dialog/interfaces/dialog-data.js +2 -1
- package/esm2015/lib/dr-dynamic-tag/dr-dynamic-tag.component.js +91 -0
- package/esm2015/lib/dr-dynamic-tag/dr-dynamic-tag.module.js +19 -0
- package/esm2015/lib/dr-inputs/dr-input/dr-input.component.js +7 -3
- package/esm2015/lib/dr-inputs/dr-inputs.module.js +4 -2
- package/esm2015/lib/dr-inputs/dr-select/dr-select.component.js +7 -2
- package/esm2015/lib/dr-inputs/dr-select-add-item/dr-select-add-item.component.js +65 -0
- package/esm2015/lib/dr-tags/dr-tag.component.js +102 -6
- package/esm2015/lib/dr-tags/dr-tag.module.js +4 -2
- package/esm2015/lib/models/serverTags.js +8 -2
- package/esm2015/public-api.js +2 -1
- package/fesm2015/datarailsshared-datarailsshared.js +310 -32
- package/fesm2015/datarailsshared-datarailsshared.js.map +1 -1
- package/lib/dr-dialog/interfaces/dialog-data.d.ts +2 -1
- package/lib/dr-dynamic-tag/dr-dynamic-tag.component.d.ts +20 -0
- package/lib/dr-dynamic-tag/dr-dynamic-tag.module.d.ts +2 -0
- package/lib/dr-inputs/dr-input/dr-input.component.d.ts +2 -0
- package/lib/dr-inputs/dr-select/dr-select.component.d.ts +2 -0
- package/lib/dr-inputs/dr-select-add-item/dr-select-add-item.component.d.ts +21 -0
- package/lib/dr-tags/dr-tag.component.d.ts +17 -1
- package/lib/models/serverTags.d.ts +13 -1
- package/package.json +1 -1
- package/public-api.d.ts +1 -1
- package/datarailsshared-datarailsshared-1.4.121.tgz +0 -0
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
+
import { DrSelectComponent } from '../dr-select/dr-select.component';
|
|
3
|
+
import { reduce as _reduce } from 'lodash';
|
|
4
|
+
export class DrSelectAddItemComponent {
|
|
5
|
+
constructor(drSelect) {
|
|
6
|
+
this.drSelect = drSelect;
|
|
7
|
+
this.dynamicAddLabel = 'Add new';
|
|
8
|
+
this.values = [];
|
|
9
|
+
this.dynamicValueAdded = new EventEmitter();
|
|
10
|
+
}
|
|
11
|
+
set inputRef(input) {
|
|
12
|
+
if (!input)
|
|
13
|
+
return;
|
|
14
|
+
input.focus();
|
|
15
|
+
}
|
|
16
|
+
ngOnChanges(changes) {
|
|
17
|
+
this.calculateCurrentValues();
|
|
18
|
+
}
|
|
19
|
+
ngOnInit() {
|
|
20
|
+
this.calculateCurrentValues();
|
|
21
|
+
}
|
|
22
|
+
onDynamicAdding() {
|
|
23
|
+
this.isDynamicAdding = true;
|
|
24
|
+
}
|
|
25
|
+
onDynamicAddingClose() {
|
|
26
|
+
this.isDynamicAdding = false;
|
|
27
|
+
this.dynamicValue = '';
|
|
28
|
+
}
|
|
29
|
+
onDynamicAdd(value, keydownEvent) {
|
|
30
|
+
const trimmedValue = value === null || value === void 0 ? void 0 : value.trim();
|
|
31
|
+
if (this.currentValues.includes(trimmedValue))
|
|
32
|
+
return;
|
|
33
|
+
if (keydownEvent && keydownEvent.key !== 'Enter')
|
|
34
|
+
return;
|
|
35
|
+
this.onDynamicAddingClose();
|
|
36
|
+
this.drSelect.close();
|
|
37
|
+
this.dynamicValueAdded.emit(trimmedValue);
|
|
38
|
+
}
|
|
39
|
+
calculateCurrentValues() {
|
|
40
|
+
this.currentValues = this.bindValue
|
|
41
|
+
? _reduce(this.values, (acc, curr) => {
|
|
42
|
+
acc.push(curr[this.bindValue]);
|
|
43
|
+
return acc;
|
|
44
|
+
}, [])
|
|
45
|
+
: this.values;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
DrSelectAddItemComponent.decorators = [
|
|
49
|
+
{ type: Component, args: [{
|
|
50
|
+
selector: 'dr-select-add-item',
|
|
51
|
+
template: "<div class=\"dr-select__dynamic-add dynamic-add\">\n <div class=\"dynamic-add__add-item\" (click)=\"onDynamicAdding()\">\n <i class=\"dr-icon-add\"></i>\n <p class=\"dynamic-add__add-item__text\">{{ dynamicAddLabel }}</p>\n </div>\n <div *ngIf=\"isDynamicAdding\" class=\"dynamic-add__field\">\n <dr-input #dynamicInputRef\n class=\"dynamic-add__field__input\"\n [class.dynamic-add__field__input--error]=\"currentValues.includes(dynamicValue)\"\n [(ngModel)]=\"dynamicValue\"\n (keydown)=\"onDynamicAdd(dynamicValue, $event)\"\n placeholder=\"Type...\"></dr-input>\n <div class=\"dynamic-add__field__buttons\">\n <dr-button *ngIf=\"dynamicValue && !currentValues.includes(dynamicValue)\"\n theme=\"icon\"\n icon=\"dr-icon-approve\"\n iconSize=\"18px\"\n (click)=\"onDynamicAdd(dynamicValue)\"></dr-button>\n <dr-button theme=\"icon\"\n icon=\"dr-icon-exit\"\n iconSize=\"18px\"\n (click)=\"onDynamicAddingClose()\"></dr-button>\n </div>\n </div>\n</div>\n",
|
|
52
|
+
styles: [".dynamic-add__add-item{cursor:pointer;display:flex;align-items:center;border-bottom:1px solid #dfe0e3;padding:6px}.dynamic-add__add-item:hover{background:#f9f7ff}.dynamic-add__add-item__text{font-size:14px;line-height:22px;margin:0}.dynamic-add__field{position:relative}.dynamic-add__field__buttons{position:absolute;top:0;right:0;bottom:0;display:flex;align-items:center}::ng-deep .ng-dropdown-panel .ng-dropdown-header:has(.dynamic-add){padding:0;border:none}::ng-deep .dynamic-add__field__input{padding-left:12px!important;height:36px!important;border:none!important;background:#f9f7ff!important;border-radius:0!important}::ng-deep .dynamic-add__field__input>input{background:#f9f7ff}::ng-deep .dynamic-add__field__input>input::placeholder{line-height:22px;font-size:14px;font-weight:400;color:#9ea1aa}::ng-deep .dynamic-add__field__input--error{background:#ffdfe4!important}::ng-deep .dynamic-add__field__input--error>input{background:#ffdfe4}\n"]
|
|
53
|
+
},] }
|
|
54
|
+
];
|
|
55
|
+
DrSelectAddItemComponent.ctorParameters = () => [
|
|
56
|
+
{ type: DrSelectComponent }
|
|
57
|
+
];
|
|
58
|
+
DrSelectAddItemComponent.propDecorators = {
|
|
59
|
+
dynamicAddLabel: [{ type: Input }],
|
|
60
|
+
bindValue: [{ type: Input }],
|
|
61
|
+
values: [{ type: Input }],
|
|
62
|
+
dynamicValueAdded: [{ type: Output }],
|
|
63
|
+
inputRef: [{ type: ViewChild, args: ['dynamicInputRef',] }]
|
|
64
|
+
};
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItc2VsZWN0LWFkZC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyLWlucHV0cy9kci1zZWxlY3QtYWRkLWl0ZW0vZHItc2VsZWN0LWFkZC1pdGVtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBaUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxNQUFNLElBQUksT0FBTyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBUTNDLE1BQU0sT0FBTyx3QkFBd0I7SUFlakMsWUFBb0IsUUFBMkI7UUFBM0IsYUFBUSxHQUFSLFFBQVEsQ0FBbUI7UUFWL0Isb0JBQWUsR0FBVyxTQUFTLENBQUM7UUFFbkMsV0FBTSxHQUFVLEVBQUUsQ0FBQztRQUNsQixzQkFBaUIsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQVFqRixDQUFDO0lBTkQsSUFBa0MsUUFBUSxDQUFDLEtBQXVCO1FBQzlELElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTztRQUNuQixLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUtNLFdBQVcsQ0FBQyxPQUFzQjtRQUNyQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRU0sUUFBUTtRQUNYLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFTSxlQUFlO1FBQ2xCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO0lBQ2hDLENBQUM7SUFFTSxvQkFBb0I7UUFDdkIsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7UUFDN0IsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVNLFlBQVksQ0FBQyxLQUFhLEVBQUUsWUFBNEI7UUFDM0QsTUFBTSxZQUFZLEdBQUcsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLElBQUksRUFBRSxDQUFDO1FBQ25DLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDO1lBQUUsT0FBTztRQUN0RCxJQUFJLFlBQVksSUFBSSxZQUFZLENBQUMsR0FBRyxLQUFLLE9BQU87WUFBRSxPQUFPO1FBRXpELElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRU8sc0JBQXNCO1FBQzFCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVM7WUFDL0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFO2dCQUNqQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztnQkFDL0IsT0FBTyxHQUFHLENBQUM7WUFDZixDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ04sQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdEIsQ0FBQzs7O1lBekRKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsb0JBQW9CO2dCQUM5QiwydkNBQWtEOzthQUVyRDs7O1lBUlEsaUJBQWlCOzs7OEJBY3JCLEtBQUs7d0JBQ0wsS0FBSztxQkFDTCxLQUFLO2dDQUNMLE1BQU07dUJBRU4sU0FBUyxTQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEclNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4uL2RyLXNlbGVjdC9kci1zZWxlY3QuY29tcG9uZW50JztcbmltcG9ydCB7IHJlZHVjZSBhcyBfcmVkdWNlIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IERySW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi9kci1pbnB1dC9kci1pbnB1dC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RyLXNlbGVjdC1hZGQtaXRlbScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RyLXNlbGVjdC1hZGQtaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZHItc2VsZWN0LWFkZC1pdGVtLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRHJTZWxlY3RBZGRJdGVtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAgIHB1YmxpYyBpc0R5bmFtaWNBZGRpbmc6IGJvb2xlYW47XG4gICAgcHVibGljIGR5bmFtaWNWYWx1ZTogc3RyaW5nO1xuICAgIHB1YmxpYyBjdXJyZW50VmFsdWVzOiBhbnlbXTtcblxuICAgIEBJbnB1dCgpIHB1YmxpYyBkeW5hbWljQWRkTGFiZWw6IHN0cmluZyA9ICdBZGQgbmV3JztcbiAgICBASW5wdXQoKSBwdWJsaWMgYmluZFZhbHVlOiBzdHJpbmc7XG4gICAgQElucHV0KCkgcHJpdmF0ZSB2YWx1ZXM6IGFueVtdID0gW107XG4gICAgQE91dHB1dCgpIHByaXZhdGUgZHluYW1pY1ZhbHVlQWRkZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBAVmlld0NoaWxkKCdkeW5hbWljSW5wdXRSZWYnKSBzZXQgaW5wdXRSZWYoaW5wdXQ6IERySW5wdXRDb21wb25lbnQpIHtcbiAgICAgICAgaWYgKCFpbnB1dCkgcmV0dXJuO1xuICAgICAgICBpbnB1dC5mb2N1cygpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZHJTZWxlY3Q6IERyU2VsZWN0Q29tcG9uZW50KSB7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgdGhpcy5jYWxjdWxhdGVDdXJyZW50VmFsdWVzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNhbGN1bGF0ZUN1cnJlbnRWYWx1ZXMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25EeW5hbWljQWRkaW5nKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzRHluYW1pY0FkZGluZyA9IHRydWU7XG4gICAgfVxuXG4gICAgcHVibGljIG9uRHluYW1pY0FkZGluZ0Nsb3NlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzRHluYW1pY0FkZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmR5bmFtaWNWYWx1ZSA9ICcnO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkR5bmFtaWNBZGQodmFsdWU6IHN0cmluZywga2V5ZG93bkV2ZW50PzogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCB0cmltbWVkVmFsdWUgPSB2YWx1ZT8udHJpbSgpO1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50VmFsdWVzLmluY2x1ZGVzKHRyaW1tZWRWYWx1ZSkpIHJldHVybjtcbiAgICAgICAgaWYgKGtleWRvd25FdmVudCAmJiBrZXlkb3duRXZlbnQua2V5ICE9PSAnRW50ZXInKSByZXR1cm47XG5cbiAgICAgICAgdGhpcy5vbkR5bmFtaWNBZGRpbmdDbG9zZSgpO1xuICAgICAgICB0aGlzLmRyU2VsZWN0LmNsb3NlKCk7XG4gICAgICAgIHRoaXMuZHluYW1pY1ZhbHVlQWRkZWQuZW1pdCh0cmltbWVkVmFsdWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2FsY3VsYXRlQ3VycmVudFZhbHVlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jdXJyZW50VmFsdWVzID0gdGhpcy5iaW5kVmFsdWVcbiAgICAgICAgICAgID8gX3JlZHVjZSh0aGlzLnZhbHVlcywgKGFjYywgY3VycikgPT4ge1xuICAgICAgICAgICAgICAgIGFjYy5wdXNoKGN1cnJbdGhpcy5iaW5kVmFsdWVdKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgICAgfSwgW10pXG4gICAgICAgICAgICA6IHRoaXMudmFsdWVzO1xuICAgIH1cbn1cbiJdfQ==
|