@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.
Files changed (32) hide show
  1. package/bundles/datarailsshared-datarailsshared.umd.js +344 -52
  2. package/bundles/datarailsshared-datarailsshared.umd.js.map +1 -1
  3. package/datarailsshared-datarailsshared-1.4.122.tgz +0 -0
  4. package/datarailsshared-datarailsshared.d.ts +23 -20
  5. package/datarailsshared-datarailsshared.metadata.json +1 -1
  6. package/esm2015/datarailsshared-datarailsshared.js +24 -21
  7. package/esm2015/lib/dr-dialog/components/dialog-modal-wrapper/dialog-modal-wrapper.component.js +1 -1
  8. package/esm2015/lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component.js +1 -1
  9. package/esm2015/lib/dr-dialog/interfaces/dialog-data.js +2 -1
  10. package/esm2015/lib/dr-dynamic-tag/dr-dynamic-tag.component.js +91 -0
  11. package/esm2015/lib/dr-dynamic-tag/dr-dynamic-tag.module.js +19 -0
  12. package/esm2015/lib/dr-inputs/dr-input/dr-input.component.js +7 -3
  13. package/esm2015/lib/dr-inputs/dr-inputs.module.js +4 -2
  14. package/esm2015/lib/dr-inputs/dr-select/dr-select.component.js +7 -2
  15. package/esm2015/lib/dr-inputs/dr-select-add-item/dr-select-add-item.component.js +65 -0
  16. package/esm2015/lib/dr-tags/dr-tag.component.js +102 -6
  17. package/esm2015/lib/dr-tags/dr-tag.module.js +4 -2
  18. package/esm2015/lib/models/serverTags.js +8 -2
  19. package/esm2015/public-api.js +2 -1
  20. package/fesm2015/datarailsshared-datarailsshared.js +310 -32
  21. package/fesm2015/datarailsshared-datarailsshared.js.map +1 -1
  22. package/lib/dr-dialog/interfaces/dialog-data.d.ts +2 -1
  23. package/lib/dr-dynamic-tag/dr-dynamic-tag.component.d.ts +20 -0
  24. package/lib/dr-dynamic-tag/dr-dynamic-tag.module.d.ts +2 -0
  25. package/lib/dr-inputs/dr-input/dr-input.component.d.ts +2 -0
  26. package/lib/dr-inputs/dr-select/dr-select.component.d.ts +2 -0
  27. package/lib/dr-inputs/dr-select-add-item/dr-select-add-item.component.d.ts +21 -0
  28. package/lib/dr-tags/dr-tag.component.d.ts +17 -1
  29. package/lib/models/serverTags.d.ts +13 -1
  30. package/package.json +1 -1
  31. package/public-api.d.ts +1 -1
  32. 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==