@masterteam/components 0.0.1

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 (38) hide show
  1. package/README.md +63 -0
  2. package/fesm2022/masterteam-components-src-checkbox-field.mjs +76 -0
  3. package/fesm2022/masterteam-components-src-checkbox-field.mjs.map +1 -0
  4. package/fesm2022/masterteam-components-src-date-field.mjs +82 -0
  5. package/fesm2022/masterteam-components-src-date-field.mjs.map +1 -0
  6. package/fesm2022/masterteam-components-src-icon-field.mjs +219 -0
  7. package/fesm2022/masterteam-components-src-icon-field.mjs.map +1 -0
  8. package/fesm2022/masterteam-components-src-multi-select-field.mjs +92 -0
  9. package/fesm2022/masterteam-components-src-multi-select-field.mjs.map +1 -0
  10. package/fesm2022/masterteam-components-src-number-field.mjs +83 -0
  11. package/fesm2022/masterteam-components-src-number-field.mjs.map +1 -0
  12. package/fesm2022/masterteam-components-src-select-field.mjs +105 -0
  13. package/fesm2022/masterteam-components-src-select-field.mjs.map +1 -0
  14. package/fesm2022/masterteam-components-src-slider-field.mjs +91 -0
  15. package/fesm2022/masterteam-components-src-slider-field.mjs.map +1 -0
  16. package/fesm2022/masterteam-components-src-text-field.mjs +98 -0
  17. package/fesm2022/masterteam-components-src-text-field.mjs.map +1 -0
  18. package/fesm2022/masterteam-components-src-textarea-field.mjs +82 -0
  19. package/fesm2022/masterteam-components-src-textarea-field.mjs.map +1 -0
  20. package/fesm2022/masterteam-components.mjs +211 -0
  21. package/fesm2022/masterteam-components.mjs.map +1 -0
  22. package/index.d.ts +22 -0
  23. package/package.json +73 -0
  24. package/src/assets/mticons/fonts/mticons.svg +483 -0
  25. package/src/assets/mticons/fonts/mticons.ttf +0 -0
  26. package/src/assets/mticons/fonts/mticons.woff +0 -0
  27. package/src/assets/mticons/fonts/mticons.woff2 +0 -0
  28. package/src/assets/mticons/mticons.css +35 -0
  29. package/src/assets/mticons/style.css +1446 -0
  30. package/src/checkbox-field/index.d.ts +30 -0
  31. package/src/date-field/index.d.ts +37 -0
  32. package/src/icon-field/index.d.ts +25 -0
  33. package/src/multi-select-field/index.d.ts +43 -0
  34. package/src/number-field/index.d.ts +38 -0
  35. package/src/select-field/index.d.ts +46 -0
  36. package/src/slider-field/index.d.ts +41 -0
  37. package/src/text-field/index.d.ts +37 -0
  38. package/src/textarea-field/index.d.ts +35 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"masterteam-components-src-icon-field.mjs","sources":["../../../../packages/masterteam/components/src/icon-field/select-icons.ts","../../../../packages/masterteam/components/src/icon-field/icon-field.ts","../../../../packages/masterteam/components/src/icon-field/icon-field.html","../../../../packages/masterteam/components/src/icon-field/masterteam-components-src-icon-field.ts"],"sourcesContent":["export const mtIcons = [\n 'vro-2030',\n 'motlss',\n 'spl',\n 'sair',\n 'sar',\n 'gaca',\n 'mawani',\n 'rga',\n 'tga',\n 'dim',\n 'dollar-bars',\n 'dollar-circle',\n 'finger-up',\n 'globe-pin',\n 'grid-cards',\n 'list-cards',\n 'high-order-kpis',\n 'road-traffic-light',\n 'config',\n 'dashboard',\n 'kpi',\n 'planner',\n 'portfolio',\n 'strategy',\n 'task',\n 'accommodation',\n 'achievement',\n 'address-book-sp',\n 'agile',\n 'alert',\n 'approved',\n 'archive',\n 'arrows',\n 'award',\n 'bar-chart',\n 'bed',\n 'bidding',\n 'blog',\n 'broadband',\n 'budgeting',\n 'business-model',\n 'care',\n 'ceo',\n 'change-management',\n 'clients',\n 'compass-sp',\n 'computer-207',\n 'computer',\n 'creative',\n 'dashboard1',\n 'data-6',\n 'date-124',\n 'deliverable',\n 'details-75',\n 'detective',\n 'diagram',\n 'diamond',\n 'discussion-area',\n 'document-approval',\n 'engineering',\n 'eye-sp',\n 'first-prize-trophy',\n 'flow-chart',\n 'focus',\n 'gear',\n 'global',\n 'goal',\n 'group-management',\n 'group',\n 'growth',\n 'hand-23',\n 'hierarchy-structure-1',\n 'hierarchy-structure',\n 'high-voltage',\n 'history-sp',\n 'iconfont-profile',\n 'idea',\n 'innovation',\n 'institution',\n 'label-137',\n 'layer-6',\n 'manager',\n 'medal',\n 'money-bag',\n 'package',\n 'partner-9',\n 'performance',\n 'permission-configuration',\n 'pillar',\n 'pills',\n 'plan',\n 'playground',\n 'presentation-57',\n 'process-1',\n 'process',\n 'products-and-services',\n 'project-experience',\n 'project-management',\n 'rating',\n 'reading-book',\n 'receipt-5',\n 'return',\n 'rocket',\n 'saving',\n 'search-sp',\n 'seo-marketing-business-01',\n 'setting-9',\n 'settings-1',\n 'settings',\n 'share-129',\n 'siren',\n 'stages',\n 'strategy-1',\n 'strategy1',\n 'switch-user-1',\n 'system-integration',\n 'target-1',\n 'target-68',\n 'target',\n 'task-10',\n 'teaching-education',\n 'team-1',\n 'team-2',\n 'team',\n 'technological-process-18',\n 'timeline-point',\n 'to-work-in-an-office-13',\n 'touch',\n 'transparency',\n 'value-proposal',\n 'value',\n 'vision',\n 'worker',\n 'risk',\n 'issue',\n 'support-needed',\n 'user-pp',\n 'total-budget',\n 'task-pp',\n 'pencel',\n 'flag',\n 'sync',\n 'male',\n 'female',\n 'anti-virus',\n 'budget-v2',\n 'budget-v3',\n 'budget',\n 'building-1',\n 'change-request',\n 'chart',\n 'departments',\n 'folder-gear',\n 'outputs',\n 'progress',\n 'projects',\n 'saudi-flag',\n 'security',\n 'spam',\n 'spent',\n 'timer',\n 'wallet-number',\n 'wallet-money',\n];\n","import { Component, signal, inject, input } from '@angular/core';\nimport {\n ControlValueAccessor,\n FormControl,\n FormsModule,\n NgControl,\n Validators,\n} from '@angular/forms';\nimport { Select } from 'primeng/select';\nimport { mtIcons } from './select-icons';\n\n@Component({\n selector: 'mt-icon-field',\n imports: [FormsModule, Select],\n templateUrl: './icon-field.html',\n styleUrls: ['./icon-field.scss'],\n host: {\n class: 'grid gap-1',\n },\n})\nexport class IconField implements ControlValueAccessor {\n readonly label = input<string>('');\n\n icons: { name: string }[] =\n mtIcons?.map((icon) => ({\n name: icon,\n })) ?? [];\n selectedIcon = signal<string | null>(null);\n requiredValidator = Validators.required;\n\n public ngControl = inject(NgControl, { self: true });\n\n constructor() {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n private onTouched: () => void = () => {};\n private onChange: (icon: string) => void = () => {};\n\n writeValue(value: string) {\n this.selectedIcon.set(value);\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n onChangeIcon(icon: string) {\n this.selectedIcon.set(icon);\n this.onChange(icon);\n }\n\n public validate(c: FormControl) {\n return c.errors;\n }\n}\n","@if (label()) {\n <label\n (click)=\"dropdown.show(); dropdown.focus()\"\n [class.required]=\"ngControl?.control?.hasValidator(requiredValidator)\"\n [for]=\"ngControl?.name || label()\"\n >{{ label() }}</label\n >\n}\n<p-select\n #dropdown\n [options]=\"icons\"\n [filter]=\"false\"\n filterBy=\"name\"\n optionLabel=\"name\"\n optionValue=\"name\"\n [inputId]=\"ngControl?.name ? ngControl?.name?.toString() : label()\"\n [class.ng-invalid]=\"ngControl?.control?.invalid\"\n appendTo=\"body\"\n (ngModelChange)=\"onChangeIcon($event)\"\n [ngModel]=\"selectedIcon()\"\n placeholder=\"Select Icon\"\n styleClass=\"w-full\"\n panelStyleClass=\"icon-select-panel\"\n>\n <ng-template let-icon #selectedItem>\n @if (icon?.name) {\n <div class=\"flex items-center justify-center\">\n <i [class]=\"'text-xl mti mti-' + icon?.name\"></i>\n </div>\n } @else {\n <div class=\"flex items-center justify-center\">Select Icon</div>\n }\n </ng-template>\n <ng-template let-icon #item>\n <div class=\"w-full h-full flex items-center justify-center\">\n <i [class]=\"'mti mti-' + icon.name\"></i>\n </div>\n </ng-template>\n</p-select>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,92 @@
1
+ import * as i0 from '@angular/core';
2
+ import { input, EventEmitter, signal, inject, HostBinding, Output, ViewChild, Component } from '@angular/core';
3
+ import * as i1 from '@angular/forms';
4
+ import { Validators, NgControl, FormsModule } from '@angular/forms';
5
+ import * as i2 from 'primeng/multiselect';
6
+ import { MultiSelectModule } from 'primeng/multiselect';
7
+
8
+ class MultiSelectField {
9
+ multiSelect;
10
+ field = input(true);
11
+ label = input();
12
+ placeholder = input();
13
+ class = input('');
14
+ readonly = input(false);
15
+ pInputs = input();
16
+ options = input();
17
+ optionValue = input();
18
+ optionLabel = input();
19
+ filter = input(false);
20
+ filterBy = input();
21
+ dataKey = input();
22
+ showClear = input(false);
23
+ display = input('chip');
24
+ onChange = new EventEmitter();
25
+ styleClass;
26
+ requiredValidator = Validators.required;
27
+ value = signal(null);
28
+ disabled = signal(false);
29
+ onTouched = () => { };
30
+ onModelChange = () => { };
31
+ ngControl = inject(NgControl, { self: true });
32
+ constructor() {
33
+ if (this.ngControl) {
34
+ this.ngControl.valueAccessor = this;
35
+ }
36
+ }
37
+ applyInputsToMultiSelect() {
38
+ Object.assign(this.multiSelect, this.pInputs());
39
+ }
40
+ ngOnInit() {
41
+ this.styleClass = this.class();
42
+ if (this.pInputs()) {
43
+ this.applyInputsToMultiSelect();
44
+ }
45
+ }
46
+ onValueChange(value) {
47
+ this.onModelChange(value);
48
+ this.value.set(value);
49
+ this.onChange.emit(value);
50
+ }
51
+ ngOnChanges(changes) {
52
+ if (changes['pInputs']) {
53
+ this.applyInputsToMultiSelect();
54
+ }
55
+ }
56
+ writeValue(value) {
57
+ this.value.set(value);
58
+ this.multiSelect.writeValue(value);
59
+ }
60
+ registerOnChange(fn) {
61
+ this.onModelChange = fn;
62
+ }
63
+ registerOnTouched(fn) {
64
+ this.onTouched = fn;
65
+ }
66
+ setDisabledState(disabled) {
67
+ this.disabled.set(disabled);
68
+ }
69
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: MultiSelectField, deps: [], target: i0.ɵɵFactoryTarget.Component });
70
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: MultiSelectField, isStandalone: true, selector: "mt-multi-select-field", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, pInputs: { classPropertyName: "pInputs", publicName: "pInputs", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, optionValue: { classPropertyName: "optionValue", publicName: "optionValue", isSignal: true, isRequired: false, transformFunction: null }, optionLabel: { classPropertyName: "optionLabel", publicName: "optionLabel", isSignal: true, isRequired: false, transformFunction: null }, filter: { classPropertyName: "filter", publicName: "filter", isSignal: true, isRequired: false, transformFunction: null }, filterBy: { classPropertyName: "filterBy", publicName: "filterBy", isSignal: true, isRequired: false, transformFunction: null }, dataKey: { classPropertyName: "dataKey", publicName: "dataKey", isSignal: true, isRequired: false, transformFunction: null }, showClear: { classPropertyName: "showClear", publicName: "showClear", isSignal: true, isRequired: false, transformFunction: null }, display: { classPropertyName: "display", publicName: "display", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onChange: "onChange" }, host: { properties: { "class": "this.styleClass" }, classAttribute: "grid gap-1" }, viewQueries: [{ propertyName: "multiSelect", first: true, predicate: ["multiSelect"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "@if (label()) {\n <label\n (click)=\"multiSelect?.show()\"\n [class.required]=\"ngControl?.control?.hasValidator(requiredValidator)\"\n [for]=\"ngControl?.name || label()\"\n >{{ label() }}</label\n >\n}\n<p-multiSelect\n #multiSelect\n [ngModel]=\"value()\"\n (ngModelChange)=\"onValueChange($event)\"\n [options]=\"options()\"\n [display]=\"display()\"\n [optionLabel]=\"optionLabel()\"\n [optionValue]=\"optionValue()\"\n (onBlur)=\"onTouched()\"\n [disabled]=\"disabled() || readonly()\"\n [inputId]=\"ngControl?.name?.toString() || label()\"\n [class.ng-invalid]=\"ngControl?.control?.invalid\"\n placeholder=\"{{ placeholder() ?? label() ?? '' }}\"\n [filter]=\"filter()\"\n [filterBy]=\"filterBy()\"\n [dataKey]=\"dataKey()\"\n styleClass=\"w-full\"\n appendTo=\"body\"\n [showClear]=\"showClear()\"\n></p-multiSelect>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MultiSelectModule }, { kind: "component", type: i2.MultiSelect, selector: "p-multiSelect, p-multiselect, p-multi-select", inputs: ["id", "ariaLabel", "style", "styleClass", "panelStyle", "panelStyleClass", "inputId", "disabled", "fluid", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "variant", "appendTo", "dataKey", "name", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "chipIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "filterBy", "scrollHeight", "lazy", "virtualScroll", "loading", "virtualScrollItemSize", "loadingIcon", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "autocomplete", "size", "showClear", "autofocus", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "defaultLabel", "placeholder", "options", "filterValue", "itemSize", "selectAll", "focusOnHover", "filterFields", "selectOnFocus", "autoOptionFocus", "highlightOnSelect"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onClear", "onPanelShow", "onPanelHide", "onLazyLoad", "onRemove", "onSelectAllChange"] }] });
71
+ }
72
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: MultiSelectField, decorators: [{
73
+ type: Component,
74
+ args: [{ selector: 'mt-multi-select-field', standalone: true, imports: [FormsModule, MultiSelectModule], host: {
75
+ class: 'grid gap-1',
76
+ }, template: "@if (label()) {\n <label\n (click)=\"multiSelect?.show()\"\n [class.required]=\"ngControl?.control?.hasValidator(requiredValidator)\"\n [for]=\"ngControl?.name || label()\"\n >{{ label() }}</label\n >\n}\n<p-multiSelect\n #multiSelect\n [ngModel]=\"value()\"\n (ngModelChange)=\"onValueChange($event)\"\n [options]=\"options()\"\n [display]=\"display()\"\n [optionLabel]=\"optionLabel()\"\n [optionValue]=\"optionValue()\"\n (onBlur)=\"onTouched()\"\n [disabled]=\"disabled() || readonly()\"\n [inputId]=\"ngControl?.name?.toString() || label()\"\n [class.ng-invalid]=\"ngControl?.control?.invalid\"\n placeholder=\"{{ placeholder() ?? label() ?? '' }}\"\n [filter]=\"filter()\"\n [filterBy]=\"filterBy()\"\n [dataKey]=\"dataKey()\"\n styleClass=\"w-full\"\n appendTo=\"body\"\n [showClear]=\"showClear()\"\n></p-multiSelect>\n" }]
77
+ }], ctorParameters: () => [], propDecorators: { multiSelect: [{
78
+ type: ViewChild,
79
+ args: ['multiSelect', { static: true }]
80
+ }], onChange: [{
81
+ type: Output
82
+ }], styleClass: [{
83
+ type: HostBinding,
84
+ args: ['class']
85
+ }] } });
86
+
87
+ /**
88
+ * Generated bundle index. Do not edit.
89
+ */
90
+
91
+ export { MultiSelectField };
92
+ //# sourceMappingURL=masterteam-components-src-multi-select-field.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"masterteam-components-src-multi-select-field.mjs","sources":["../../../../packages/masterteam/components/src/multi-select-field/multi-select-field.ts","../../../../packages/masterteam/components/src/multi-select-field/multi-select-field.html","../../../../packages/masterteam/components/src/multi-select-field/masterteam-components-src-multi-select-field.ts"],"sourcesContent":["import {\n Component,\n EventEmitter,\n HostBinding,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild,\n signal,\n input,\n inject,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormsModule,\n NgControl,\n Validators,\n} from '@angular/forms';\nimport { MultiSelect } from 'primeng/multiselect';\nimport { MultiSelectModule } from 'primeng/multiselect';\n\n@Component({\n selector: 'mt-multi-select-field',\n templateUrl: './multi-select-field.html',\n styleUrls: ['./multi-select-field.scss'],\n standalone: true,\n imports: [FormsModule, MultiSelectModule],\n host: {\n class: 'grid gap-1',\n },\n})\nexport class MultiSelectField\n implements ControlValueAccessor, OnInit, OnChanges\n{\n @ViewChild('multiSelect', { static: true })\n multiSelect: MultiSelect;\n\n readonly field = input<boolean>(true);\n readonly label = input<string>();\n readonly placeholder = input<string>();\n readonly class = input<string>('');\n readonly readonly = input<boolean>(false);\n readonly pInputs = input<Partial<MultiSelect>>();\n readonly options = input<any[]>();\n readonly optionValue = input<string>();\n readonly optionLabel = input<string>();\n readonly filter = input<boolean>(false);\n readonly filterBy = input<string>();\n readonly dataKey = input<string>();\n readonly showClear = input<boolean>(false);\n readonly display = input<string>('chip');\n @Output() onChange: EventEmitter<any> = new EventEmitter();\n\n @HostBinding('class') styleClass: string;\n\n requiredValidator = Validators.required;\n value = signal<any>(null);\n disabled = signal<boolean>(false);\n\n onTouched: () => void = () => {};\n onModelChange: (value: any) => void = () => {};\n\n public ngControl = inject(NgControl, { self: true });\n\n constructor() {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n applyInputsToMultiSelect() {\n Object.assign(this.multiSelect, this.pInputs());\n }\n\n ngOnInit() {\n this.styleClass = this.class();\n if (this.pInputs()) {\n this.applyInputsToMultiSelect();\n }\n }\n onValueChange(value: any) {\n this.onModelChange(value);\n this.value.set(value);\n this.onChange.emit(value);\n }\n ngOnChanges(changes: SimpleChanges) {\n if (changes['pInputs']) {\n this.applyInputsToMultiSelect();\n }\n }\n\n writeValue(value: any) {\n this.value.set(value);\n this.multiSelect.writeValue(value);\n }\n\n registerOnChange(fn: any) {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n setDisabledState(disabled: boolean) {\n this.disabled.set(disabled);\n }\n}\n","@if (label()) {\n <label\n (click)=\"multiSelect?.show()\"\n [class.required]=\"ngControl?.control?.hasValidator(requiredValidator)\"\n [for]=\"ngControl?.name || label()\"\n >{{ label() }}</label\n >\n}\n<p-multiSelect\n #multiSelect\n [ngModel]=\"value()\"\n (ngModelChange)=\"onValueChange($event)\"\n [options]=\"options()\"\n [display]=\"display()\"\n [optionLabel]=\"optionLabel()\"\n [optionValue]=\"optionValue()\"\n (onBlur)=\"onTouched()\"\n [disabled]=\"disabled() || readonly()\"\n [inputId]=\"ngControl?.name?.toString() || label()\"\n [class.ng-invalid]=\"ngControl?.control?.invalid\"\n placeholder=\"{{ placeholder() ?? label() ?? '' }}\"\n [filter]=\"filter()\"\n [filterBy]=\"filterBy()\"\n [dataKey]=\"dataKey()\"\n styleClass=\"w-full\"\n appendTo=\"body\"\n [showClear]=\"showClear()\"\n></p-multiSelect>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ import * as i0 from '@angular/core';
2
+ import { input, inject, signal, HostBinding, ViewChild, Component } from '@angular/core';
3
+ import * as i1 from '@angular/forms';
4
+ import { NgControl, Validators, FormsModule } from '@angular/forms';
5
+ import * as i2 from 'primeng/inputnumber';
6
+ import { InputNumberModule } from 'primeng/inputnumber';
7
+
8
+ class NumberField {
9
+ inputNumber;
10
+ field = input(true);
11
+ label = input();
12
+ placeholder = input();
13
+ class = input('');
14
+ readonly = input(false);
15
+ pInputs = input();
16
+ format = input(false);
17
+ maxFractionDigits = input(2);
18
+ min = input();
19
+ max = input();
20
+ styleClass;
21
+ ngControl = inject(NgControl, { self: true });
22
+ requiredValidator = Validators.required;
23
+ value = signal(null);
24
+ disabled = signal(false);
25
+ onTouched = () => { };
26
+ onModelChange = () => { };
27
+ constructor() {
28
+ if (this.ngControl) {
29
+ this.ngControl.valueAccessor = this;
30
+ }
31
+ }
32
+ applyInputsToInputNumber() {
33
+ Object.assign(this.inputNumber, this.pInputs());
34
+ }
35
+ ngOnInit() {
36
+ this.styleClass = this.class();
37
+ if (this.pInputs()) {
38
+ this.applyInputsToInputNumber();
39
+ }
40
+ }
41
+ onValueChange(value) {
42
+ this.onModelChange(value);
43
+ this.value.set(value);
44
+ }
45
+ ngOnChanges(changes) {
46
+ if (changes['pInputs']) {
47
+ this.applyInputsToInputNumber();
48
+ }
49
+ }
50
+ writeValue(value) {
51
+ this.value.set(value);
52
+ }
53
+ registerOnChange(fn) {
54
+ this.onModelChange = fn;
55
+ }
56
+ registerOnTouched(fn) {
57
+ this.onTouched = fn;
58
+ }
59
+ setDisabledState(disabled) {
60
+ this.disabled.set(disabled);
61
+ }
62
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: NumberField, deps: [], target: i0.ɵɵFactoryTarget.Component });
63
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: NumberField, isStandalone: true, selector: "mt-number-field", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, pInputs: { classPropertyName: "pInputs", publicName: "pInputs", isSignal: true, isRequired: false, transformFunction: null }, format: { classPropertyName: "format", publicName: "format", isSignal: true, isRequired: false, transformFunction: null }, maxFractionDigits: { classPropertyName: "maxFractionDigits", publicName: "maxFractionDigits", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "this.styleClass" }, classAttribute: "grid gap-1" }, viewQueries: [{ propertyName: "inputNumber", first: true, predicate: ["inputNumber"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "@if (label()) {\n <label\n [class.required]=\"ngControl?.control?.hasValidator(requiredValidator)\"\n [for]=\"ngControl?.name || label()\"\n >{{ label() }}</label\n >\n}\n<p-inputnumber\n #inputNumber\n [ngModel]=\"value()\"\n (ngModelChange)=\"onValueChange($event)\"\n (onBlur)=\"onTouched()\"\n [disabled]=\"disabled() || readonly()\"\n [inputId]=\"ngControl?.name ? ngControl?.name?.toString() : label()\"\n [format]=\"format()\"\n [min]=\"min()\"\n [max]=\"max()\"\n [maxFractionDigits]=\"maxFractionDigits()\"\n [class.ng-invalid]=\"ngControl?.control?.invalid\"\n placeholder=\"{{ placeholder() ?? label() ?? '' }}\"\n styleClass=\"w-full\"\n inputStyleClass=\"w-full\"\n></p-inputnumber>\n", styles: [":host p-inputNumber{display:block;width:100%}:host p-inputNumber input{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: InputNumberModule }, { kind: "component", type: i2.InputNumber, selector: "p-inputNumber, p-inputnumber, p-input-number", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "style", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabelledBy", "ariaDescribedBy", "ariaLabel", "ariaRequired", "name", "required", "autocomplete", "min", "max", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "step", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "variant", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "showClear", "autofocus", "disabled", "fluid"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown", "onClear"] }] });
64
+ }
65
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: NumberField, decorators: [{
66
+ type: Component,
67
+ args: [{ selector: 'mt-number-field', standalone: true, imports: [FormsModule, InputNumberModule], host: {
68
+ class: 'grid gap-1',
69
+ }, template: "@if (label()) {\n <label\n [class.required]=\"ngControl?.control?.hasValidator(requiredValidator)\"\n [for]=\"ngControl?.name || label()\"\n >{{ label() }}</label\n >\n}\n<p-inputnumber\n #inputNumber\n [ngModel]=\"value()\"\n (ngModelChange)=\"onValueChange($event)\"\n (onBlur)=\"onTouched()\"\n [disabled]=\"disabled() || readonly()\"\n [inputId]=\"ngControl?.name ? ngControl?.name?.toString() : label()\"\n [format]=\"format()\"\n [min]=\"min()\"\n [max]=\"max()\"\n [maxFractionDigits]=\"maxFractionDigits()\"\n [class.ng-invalid]=\"ngControl?.control?.invalid\"\n placeholder=\"{{ placeholder() ?? label() ?? '' }}\"\n styleClass=\"w-full\"\n inputStyleClass=\"w-full\"\n></p-inputnumber>\n", styles: [":host p-inputNumber{display:block;width:100%}:host p-inputNumber input{width:100%}\n"] }]
70
+ }], ctorParameters: () => [], propDecorators: { inputNumber: [{
71
+ type: ViewChild,
72
+ args: ['inputNumber', { static: true }]
73
+ }], styleClass: [{
74
+ type: HostBinding,
75
+ args: ['class']
76
+ }] } });
77
+
78
+ /**
79
+ * Generated bundle index. Do not edit.
80
+ */
81
+
82
+ export { NumberField };
83
+ //# sourceMappingURL=masterteam-components-src-number-field.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"masterteam-components-src-number-field.mjs","sources":["../../../../packages/masterteam/components/src/number-field/number-field.ts","../../../../packages/masterteam/components/src/number-field/number-field.html","../../../../packages/masterteam/components/src/number-field/masterteam-components-src-number-field.ts"],"sourcesContent":["import {\n Component,\n HostBinding,\n OnChanges,\n OnInit,\n SimpleChanges,\n ViewChild,\n signal,\n input,\n inject,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormsModule,\n NgControl,\n Validators,\n} from '@angular/forms';\nimport { InputNumberModule, InputNumber } from 'primeng/inputnumber';\n\n@Component({\n selector: 'mt-number-field',\n standalone: true,\n imports: [FormsModule, InputNumberModule],\n templateUrl: './number-field.html',\n styleUrls: ['./number-field.scss'],\n host: {\n class: 'grid gap-1',\n },\n})\nexport class NumberField implements ControlValueAccessor, OnInit, OnChanges {\n @ViewChild('inputNumber', { static: true })\n inputNumber: InputNumber;\n\n readonly field = input<boolean>(true);\n readonly label = input<string>();\n readonly placeholder = input<string>();\n readonly class = input<string>('');\n readonly readonly = input<boolean>(false);\n readonly pInputs = input<Partial<InputNumber>>();\n readonly format = input<boolean>(false);\n readonly maxFractionDigits = input<number>(2);\n readonly min = input<number | undefined>();\n readonly max = input<number | undefined>();\n\n @HostBinding('class') styleClass: string;\n\n public ngControl = inject(NgControl, { self: true });\n\n requiredValidator = Validators.required;\n value = signal<number | null>(null);\n disabled = signal<boolean>(false);\n\n onTouched: () => void = () => {};\n onModelChange: (value: number | null) => void = () => {};\n\n constructor() {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n applyInputsToInputNumber() {\n Object.assign(this.inputNumber, this.pInputs());\n }\n\n ngOnInit() {\n this.styleClass = this.class();\n if (this.pInputs()) {\n this.applyInputsToInputNumber();\n }\n }\n onValueChange(value: number | null) {\n this.onModelChange(value);\n this.value.set(value);\n }\n ngOnChanges(changes: SimpleChanges) {\n if (changes['pInputs']) {\n this.applyInputsToInputNumber();\n }\n }\n\n writeValue(value: number | null) {\n this.value.set(value);\n }\n\n registerOnChange(fn: any) {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n setDisabledState(disabled: boolean) {\n this.disabled.set(disabled);\n }\n}\n","@if (label()) {\n <label\n [class.required]=\"ngControl?.control?.hasValidator(requiredValidator)\"\n [for]=\"ngControl?.name || label()\"\n >{{ label() }}</label\n >\n}\n<p-inputnumber\n #inputNumber\n [ngModel]=\"value()\"\n (ngModelChange)=\"onValueChange($event)\"\n (onBlur)=\"onTouched()\"\n [disabled]=\"disabled() || readonly()\"\n [inputId]=\"ngControl?.name ? ngControl?.name?.toString() : label()\"\n [format]=\"format()\"\n [min]=\"min()\"\n [max]=\"max()\"\n [maxFractionDigits]=\"maxFractionDigits()\"\n [class.ng-invalid]=\"ngControl?.control?.invalid\"\n placeholder=\"{{ placeholder() ?? label() ?? '' }}\"\n styleClass=\"w-full\"\n inputStyleClass=\"w-full\"\n></p-inputnumber>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,105 @@
1
+ import * as i0 from '@angular/core';
2
+ import { inject, ChangeDetectorRef, input, EventEmitter, signal, HostBinding, Output, ViewChild, Component } from '@angular/core';
3
+ import * as i1 from '@angular/forms';
4
+ import { Validators, NgControl, FormsModule } from '@angular/forms';
5
+ import { Select } from 'primeng/select';
6
+ import { Message } from 'primeng/message';
7
+
8
+ class SelectField {
9
+ cdr = inject(ChangeDetectorRef);
10
+ dropdown;
11
+ field = input(true);
12
+ label = input('');
13
+ placeholder = input('');
14
+ hasPlaceholderPrefix = input(true);
15
+ class = input('');
16
+ readonly = input(false);
17
+ pInputs = input();
18
+ options = input(undefined);
19
+ optionValue = input(undefined);
20
+ optionLabel = input(undefined);
21
+ filter = input(undefined);
22
+ filterBy = input(undefined);
23
+ dataKey = input(undefined);
24
+ showClear = input(undefined);
25
+ clearAfterSelect = input(undefined);
26
+ onChange = new EventEmitter();
27
+ styleClass;
28
+ requiredValidator = Validators.required;
29
+ value = signal(null);
30
+ disabled = signal(false);
31
+ onTouched = () => { };
32
+ onModelChange = () => { };
33
+ ngControl = inject(NgControl, { self: true });
34
+ constructor() {
35
+ if (this.ngControl) {
36
+ this.ngControl.valueAccessor = this;
37
+ }
38
+ }
39
+ applyInputsToDropdown() {
40
+ // Object.assign(this.dropdown, this.pInputs());
41
+ }
42
+ ngOnInit() {
43
+ this.styleClass = this.class();
44
+ if (this.pInputs()) {
45
+ this.applyInputsToDropdown();
46
+ }
47
+ }
48
+ onValueChange(value) {
49
+ this.onModelChange(value);
50
+ this.value.set(value);
51
+ this.onChange.emit(value);
52
+ if (this.clearAfterSelect()) {
53
+ this.clearSelection();
54
+ }
55
+ }
56
+ ngOnChanges(changes) {
57
+ if (changes['pInputs']) {
58
+ this.applyInputsToDropdown();
59
+ }
60
+ }
61
+ writeValue(value) {
62
+ this.value.set(value);
63
+ }
64
+ registerOnChange(fn) {
65
+ this.onModelChange = fn;
66
+ }
67
+ registerOnTouched(fn) {
68
+ this.onTouched = fn;
69
+ }
70
+ setDisabledState(disabled) {
71
+ this.disabled.set(disabled);
72
+ }
73
+ // TODO: make this method work
74
+ clearSelection() {
75
+ this.dropdown.clear(this.value());
76
+ this.dropdown.value = null;
77
+ this.value.set(null);
78
+ this.onModelChange(null);
79
+ this.onChange.emit(null);
80
+ this.cdr.detectChanges();
81
+ }
82
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SelectField, deps: [], target: i0.ɵɵFactoryTarget.Component });
83
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: SelectField, isStandalone: true, selector: "mt-select-field", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, hasPlaceholderPrefix: { classPropertyName: "hasPlaceholderPrefix", publicName: "hasPlaceholderPrefix", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, pInputs: { classPropertyName: "pInputs", publicName: "pInputs", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, optionValue: { classPropertyName: "optionValue", publicName: "optionValue", isSignal: true, isRequired: false, transformFunction: null }, optionLabel: { classPropertyName: "optionLabel", publicName: "optionLabel", isSignal: true, isRequired: false, transformFunction: null }, filter: { classPropertyName: "filter", publicName: "filter", isSignal: true, isRequired: false, transformFunction: null }, filterBy: { classPropertyName: "filterBy", publicName: "filterBy", isSignal: true, isRequired: false, transformFunction: null }, dataKey: { classPropertyName: "dataKey", publicName: "dataKey", isSignal: true, isRequired: false, transformFunction: null }, showClear: { classPropertyName: "showClear", publicName: "showClear", isSignal: true, isRequired: false, transformFunction: null }, clearAfterSelect: { classPropertyName: "clearAfterSelect", publicName: "clearAfterSelect", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onChange: "onChange" }, host: { properties: { "class": "this.styleClass" }, classAttribute: "grid gap-1" }, viewQueries: [{ propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "@if (label()) {\n <label\n (click)=\"dropdown.show(); dropdown.focus()\"\n [class.required]=\"ngControl?.control?.hasValidator(requiredValidator)\"\n [for]=\"ngControl?.name || label()\"\n >{{ label() }}</label\n >\n}\n<p-select\n appendTo=\"body\"\n [overlayOptions]=\"{ baseZIndex: 1051 }\"\n #dropdown\n [ngModel]=\"value()\"\n (ngModelChange)=\"onValueChange($event)\"\n [options]=\"options()\"\n [optionLabel]=\"optionLabel()\"\n [optionValue]=\"optionValue()\"\n (onBlur)=\"onTouched()\"\n [disabled]=\"disabled() || readonly()\"\n [inputId]=\"ngControl?.name ? ngControl?.name?.toString() : label()\"\n [id]=\"ngControl?.name ? ngControl?.name?.toString() : label()\"\n [class.p-invalid]=\"ngControl?.control?.invalid && ngControl?.control?.touched\"\n [class.border-red-500!]=\"\n ngControl?.control?.invalid && ngControl?.control?.touched\n \"\n placeholder=\"{{ hasPlaceholderPrefix() ? 'select' : '' }} {{\n placeholder() ?? label() ?? ''\n }}\"\n [filter]=\"filter()\"\n [filterBy]=\"filterBy()\"\n [dataKey]=\"dataKey()\"\n styleClass=\"w-full\"\n [showClear]=\"showClear()\"\n appendTo=\"body\"\n></p-select>\n@if (ngControl?.control?.invalid && ngControl?.control?.touched) {\n <p-message severity=\"error\" variant=\"simple\" size=\"small\"\n >{{ label() }} is required</p-message\n >\n}\n", styles: [""], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: Select, selector: "p-select", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "size", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "fluid", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "component", type: Message, selector: "p-message", inputs: ["severity", "text", "escape", "style", "styleClass", "closable", "icon", "closeIcon", "life", "showTransitionOptions", "hideTransitionOptions", "size", "variant"], outputs: ["onClose"] }] });
84
+ }
85
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SelectField, decorators: [{
86
+ type: Component,
87
+ args: [{ selector: 'mt-select-field', standalone: true, imports: [FormsModule, Select, Message], host: {
88
+ class: 'grid gap-1',
89
+ }, template: "@if (label()) {\n <label\n (click)=\"dropdown.show(); dropdown.focus()\"\n [class.required]=\"ngControl?.control?.hasValidator(requiredValidator)\"\n [for]=\"ngControl?.name || label()\"\n >{{ label() }}</label\n >\n}\n<p-select\n appendTo=\"body\"\n [overlayOptions]=\"{ baseZIndex: 1051 }\"\n #dropdown\n [ngModel]=\"value()\"\n (ngModelChange)=\"onValueChange($event)\"\n [options]=\"options()\"\n [optionLabel]=\"optionLabel()\"\n [optionValue]=\"optionValue()\"\n (onBlur)=\"onTouched()\"\n [disabled]=\"disabled() || readonly()\"\n [inputId]=\"ngControl?.name ? ngControl?.name?.toString() : label()\"\n [id]=\"ngControl?.name ? ngControl?.name?.toString() : label()\"\n [class.p-invalid]=\"ngControl?.control?.invalid && ngControl?.control?.touched\"\n [class.border-red-500!]=\"\n ngControl?.control?.invalid && ngControl?.control?.touched\n \"\n placeholder=\"{{ hasPlaceholderPrefix() ? 'select' : '' }} {{\n placeholder() ?? label() ?? ''\n }}\"\n [filter]=\"filter()\"\n [filterBy]=\"filterBy()\"\n [dataKey]=\"dataKey()\"\n styleClass=\"w-full\"\n [showClear]=\"showClear()\"\n appendTo=\"body\"\n></p-select>\n@if (ngControl?.control?.invalid && ngControl?.control?.touched) {\n <p-message severity=\"error\" variant=\"simple\" size=\"small\"\n >{{ label() }} is required</p-message\n >\n}\n" }]
90
+ }], ctorParameters: () => [], propDecorators: { dropdown: [{
91
+ type: ViewChild,
92
+ args: ['dropdown', { static: true }]
93
+ }], onChange: [{
94
+ type: Output
95
+ }], styleClass: [{
96
+ type: HostBinding,
97
+ args: ['class']
98
+ }] } });
99
+
100
+ /**
101
+ * Generated bundle index. Do not edit.
102
+ */
103
+
104
+ export { SelectField };
105
+ //# sourceMappingURL=masterteam-components-src-select-field.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"masterteam-components-src-select-field.mjs","sources":["../../../../packages/masterteam/components/src/select-field/select-field.ts","../../../../packages/masterteam/components/src/select-field/select-field.html","../../../../packages/masterteam/components/src/select-field/masterteam-components-src-select-field.ts"],"sourcesContent":["import {\n Component,\n EventEmitter,\n HostBinding,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild,\n signal,\n input,\n inject,\n ChangeDetectorRef,\n} from '@angular/core';\n\nimport {\n ControlValueAccessor,\n FormsModule,\n NgControl,\n Validators,\n} from '@angular/forms';\nimport { Select } from 'primeng/select';\nimport { Message } from 'primeng/message';\n\n@Component({\n selector: 'mt-select-field',\n standalone: true,\n imports: [FormsModule, Select, Message],\n templateUrl: './select-field.html',\n styleUrls: ['./select-field.scss'],\n host: {\n class: 'grid gap-1',\n },\n})\nexport class SelectField implements ControlValueAccessor, OnInit, OnChanges {\n cdr = inject(ChangeDetectorRef);\n @ViewChild('dropdown', { static: true })\n dropdown: Select;\n\n readonly field = input<boolean>(true);\n readonly label = input<string>('');\n readonly placeholder = input<string>('');\n readonly hasPlaceholderPrefix = input<boolean>(true);\n readonly class = input<string>('');\n readonly readonly = input<boolean>(false);\n readonly pInputs = input<Partial<Select>>();\n readonly options = input<any[] | undefined>(undefined);\n readonly optionValue = input<string | undefined>(undefined);\n readonly optionLabel = input<string | undefined>(undefined);\n readonly filter = input<boolean | undefined>(undefined);\n readonly filterBy = input<string | undefined>(undefined);\n readonly dataKey = input<string | undefined>(undefined);\n readonly showClear = input<boolean | undefined>(undefined);\n readonly clearAfterSelect = input<boolean | undefined>(undefined);\n @Output() onChange: EventEmitter<any> = new EventEmitter();\n\n @HostBinding('class') styleClass: string;\n\n requiredValidator = Validators.required;\n value = signal<any>(null);\n disabled = signal<boolean>(false);\n\n onTouched: () => void = () => {};\n onModelChange: (value: any) => void = () => {};\n\n public ngControl = inject(NgControl, { self: true });\n\n constructor() {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n applyInputsToDropdown() {\n // Object.assign(this.dropdown, this.pInputs());\n }\n\n ngOnInit() {\n this.styleClass = this.class();\n if (this.pInputs()) {\n this.applyInputsToDropdown();\n }\n }\n\n onValueChange(value: any) {\n this.onModelChange(value);\n this.value.set(value);\n this.onChange.emit(value);\n if (this.clearAfterSelect()) {\n this.clearSelection();\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['pInputs']) {\n this.applyInputsToDropdown();\n }\n }\n\n writeValue(value: string) {\n this.value.set(value);\n }\n\n registerOnChange(fn: any) {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n setDisabledState(disabled: boolean) {\n this.disabled.set(disabled);\n }\n\n // TODO: make this method work\n public clearSelection() {\n this.dropdown.clear(this.value());\n this.dropdown.value = null;\n this.value.set(null);\n this.onModelChange(null);\n this.onChange.emit(null);\n this.cdr.detectChanges();\n }\n}\n","@if (label()) {\n <label\n (click)=\"dropdown.show(); dropdown.focus()\"\n [class.required]=\"ngControl?.control?.hasValidator(requiredValidator)\"\n [for]=\"ngControl?.name || label()\"\n >{{ label() }}</label\n >\n}\n<p-select\n appendTo=\"body\"\n [overlayOptions]=\"{ baseZIndex: 1051 }\"\n #dropdown\n [ngModel]=\"value()\"\n (ngModelChange)=\"onValueChange($event)\"\n [options]=\"options()\"\n [optionLabel]=\"optionLabel()\"\n [optionValue]=\"optionValue()\"\n (onBlur)=\"onTouched()\"\n [disabled]=\"disabled() || readonly()\"\n [inputId]=\"ngControl?.name ? ngControl?.name?.toString() : label()\"\n [id]=\"ngControl?.name ? ngControl?.name?.toString() : label()\"\n [class.p-invalid]=\"ngControl?.control?.invalid && ngControl?.control?.touched\"\n [class.border-red-500!]=\"\n ngControl?.control?.invalid && ngControl?.control?.touched\n \"\n placeholder=\"{{ hasPlaceholderPrefix() ? 'select' : '' }} {{\n placeholder() ?? label() ?? ''\n }}\"\n [filter]=\"filter()\"\n [filterBy]=\"filterBy()\"\n [dataKey]=\"dataKey()\"\n styleClass=\"w-full\"\n [showClear]=\"showClear()\"\n appendTo=\"body\"\n></p-select>\n@if (ngControl?.control?.invalid && ngControl?.control?.touched) {\n <p-message severity=\"error\" variant=\"simple\" size=\"small\"\n >{{ label() }} is required</p-message\n >\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,91 @@
1
+ import * as i0 from '@angular/core';
2
+ import { input, numberAttribute, booleanAttribute, EventEmitter, signal, inject, HostBinding, Output, ViewChild, Component } from '@angular/core';
3
+ import * as i1 from '@angular/forms';
4
+ import { Validators, NgControl, FormsModule } from '@angular/forms';
5
+ import * as i2 from 'primeng/slider';
6
+ import { SliderModule } from 'primeng/slider';
7
+
8
+ class SliderField {
9
+ input;
10
+ field = input(true);
11
+ label = input();
12
+ animate = input(true);
13
+ class = input('');
14
+ min = input(0, { transform: numberAttribute });
15
+ max = input(100, { transform: numberAttribute });
16
+ step = input(undefined, {
17
+ transform: numberAttribute,
18
+ });
19
+ hideNumber = input(false, {
20
+ transform: booleanAttribute,
21
+ });
22
+ unit = input('');
23
+ readonly = input(false);
24
+ pInputs = input();
25
+ onChange = new EventEmitter();
26
+ onSlideEnd = new EventEmitter();
27
+ styleClass;
28
+ requiredValidator = Validators.required;
29
+ value = signal(null);
30
+ disabled = signal(false);
31
+ onTouched = () => { };
32
+ onModelChange = () => { };
33
+ ngControl = inject(NgControl, { self: true });
34
+ constructor() {
35
+ if (this.ngControl) {
36
+ this.ngControl.valueAccessor = this;
37
+ }
38
+ }
39
+ applyInputsToInput() {
40
+ Object.assign(this.input, this.pInputs());
41
+ }
42
+ ngOnInit() {
43
+ this.styleClass = this.class();
44
+ }
45
+ onValueChange(value) {
46
+ this.onModelChange(value);
47
+ this.value.set(value);
48
+ }
49
+ ngOnChanges(changes) {
50
+ if (changes['pInputs']) {
51
+ this.applyInputsToInput();
52
+ }
53
+ }
54
+ writeValue(value) {
55
+ this.value.set(value);
56
+ }
57
+ registerOnChange(fn) {
58
+ this.onModelChange = fn;
59
+ }
60
+ registerOnTouched(fn) {
61
+ this.onTouched = fn;
62
+ }
63
+ setDisabledState(disabled) {
64
+ this.disabled.set(disabled);
65
+ }
66
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SliderField, deps: [], target: i0.ɵɵFactoryTarget.Component });
67
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: SliderField, isStandalone: true, selector: "mt-slider-field", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, animate: { classPropertyName: "animate", publicName: "animate", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, step: { classPropertyName: "step", publicName: "step", isSignal: true, isRequired: false, transformFunction: null }, hideNumber: { classPropertyName: "hideNumber", publicName: "hideNumber", isSignal: true, isRequired: false, transformFunction: null }, unit: { classPropertyName: "unit", publicName: "unit", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, pInputs: { classPropertyName: "pInputs", publicName: "pInputs", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onChange: "onChange", onSlideEnd: "onSlideEnd" }, host: { properties: { "class": "this.styleClass" }, classAttribute: "grid gap-1" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "@if (label()) {\n <label\n [class.required]=\"ngControl?.control?.hasValidator(requiredValidator)\"\n [for]=\"ngControl?.name || label()\"\n [class.mb-3]=\"hideNumber()\"\n >{{ label() }}</label\n >\n}\n<div\n class=\"flex items-center gap-3 w-full\"\n [style.padding-inline-start]=\"'calc(var(--p-slider-handle-width) / 2)'\"\n>\n <p-slider\n #input\n [ngModel]=\"value()\"\n (ngModelChange)=\"onValueChange($event)\"\n (onChange)=\"onChange.emit($event)\"\n (onSlideEnd)=\"onSlideEnd.emit($event)\"\n (blur)=\"onTouched()\"\n [disabled]=\"disabled() || readonly()\"\n [animate]=\"animate()\"\n [id]=\"ngControl?.name || label()\"\n [min]=\"min()\"\n [max]=\"max()\"\n [step]=\"step()\"\n [class.ng-invalid]=\"ngControl?.control?.invalid\"\n class=\"grow\"\n ></p-slider>\n @if (!hideNumber()) {\n <span class=\"leading-none\">{{ value() ? value() + unit() : \"-\" }}</span>\n }\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: SliderModule }, { kind: "component", type: i2.Slider, selector: "p-slider", inputs: ["animate", "disabled", "min", "max", "orientation", "step", "range", "style", "styleClass", "ariaLabel", "ariaLabelledBy", "tabindex", "autofocus"], outputs: ["onChange", "onSlideEnd"] }] });
68
+ }
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SliderField, decorators: [{
70
+ type: Component,
71
+ args: [{ selector: 'mt-slider-field', standalone: true, imports: [FormsModule, SliderModule], host: {
72
+ class: 'grid gap-1',
73
+ }, template: "@if (label()) {\n <label\n [class.required]=\"ngControl?.control?.hasValidator(requiredValidator)\"\n [for]=\"ngControl?.name || label()\"\n [class.mb-3]=\"hideNumber()\"\n >{{ label() }}</label\n >\n}\n<div\n class=\"flex items-center gap-3 w-full\"\n [style.padding-inline-start]=\"'calc(var(--p-slider-handle-width) / 2)'\"\n>\n <p-slider\n #input\n [ngModel]=\"value()\"\n (ngModelChange)=\"onValueChange($event)\"\n (onChange)=\"onChange.emit($event)\"\n (onSlideEnd)=\"onSlideEnd.emit($event)\"\n (blur)=\"onTouched()\"\n [disabled]=\"disabled() || readonly()\"\n [animate]=\"animate()\"\n [id]=\"ngControl?.name || label()\"\n [min]=\"min()\"\n [max]=\"max()\"\n [step]=\"step()\"\n [class.ng-invalid]=\"ngControl?.control?.invalid\"\n class=\"grow\"\n ></p-slider>\n @if (!hideNumber()) {\n <span class=\"leading-none\">{{ value() ? value() + unit() : \"-\" }}</span>\n }\n</div>\n" }]
74
+ }], ctorParameters: () => [], propDecorators: { input: [{
75
+ type: ViewChild,
76
+ args: ['input', { static: true }]
77
+ }], onChange: [{
78
+ type: Output
79
+ }], onSlideEnd: [{
80
+ type: Output
81
+ }], styleClass: [{
82
+ type: HostBinding,
83
+ args: ['class']
84
+ }] } });
85
+
86
+ /**
87
+ * Generated bundle index. Do not edit.
88
+ */
89
+
90
+ export { SliderField };
91
+ //# sourceMappingURL=masterteam-components-src-slider-field.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"masterteam-components-src-slider-field.mjs","sources":["../../../../packages/masterteam/components/src/slider-field/slider-field.ts","../../../../packages/masterteam/components/src/slider-field/slider-field.html","../../../../packages/masterteam/components/src/slider-field/masterteam-components-src-slider-field.ts"],"sourcesContent":["import {\n Component,\n EventEmitter,\n HostBinding,\n Output,\n SimpleChanges,\n ViewChild,\n booleanAttribute,\n input,\n numberAttribute,\n signal,\n OnInit,\n OnChanges,\n inject,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormsModule,\n NgControl,\n Validators,\n} from '@angular/forms';\nimport {\n Slider,\n SliderChangeEvent,\n SliderSlideEndEvent,\n SliderModule,\n} from 'primeng/slider';\n\n@Component({\n selector: 'mt-slider-field',\n standalone: true,\n imports: [FormsModule, SliderModule],\n templateUrl: './slider-field.html',\n styleUrls: ['./slider-field.scss'],\n host: {\n class: 'grid gap-1',\n },\n})\nexport class SliderField implements ControlValueAccessor, OnInit, OnChanges {\n @ViewChild('input', { static: true })\n input: Slider;\n\n readonly field = input<boolean>(true);\n readonly label = input<string>();\n readonly animate = input<boolean>(true);\n readonly class = input<string>('');\n readonly min = input<number, unknown>(0, { transform: numberAttribute });\n readonly max = input<number, unknown>(100, { transform: numberAttribute });\n readonly step = input<number, unknown>(undefined, {\n transform: numberAttribute,\n });\n readonly hideNumber = input<boolean, unknown>(false, {\n transform: booleanAttribute,\n });\n readonly unit = input<string>('');\n readonly readonly = input<boolean>(false);\n readonly pInputs = input<Partial<Slider>>();\n @Output() onChange: EventEmitter<SliderChangeEvent> = new EventEmitter();\n @Output() onSlideEnd: EventEmitter<SliderSlideEndEvent> = new EventEmitter();\n\n @HostBinding('class') styleClass: string;\n\n requiredValidator = Validators.required;\n value = signal<number | null>(null);\n disabled = signal<boolean>(false);\n\n onTouched: () => void = () => {};\n onModelChange: (value: number | null) => void = () => {};\n\n public ngControl = inject(NgControl, { self: true });\n\n constructor() {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n applyInputsToInput() {\n Object.assign(this.input, this.pInputs());\n }\n\n ngOnInit() {\n this.styleClass = this.class();\n }\n onValueChange(value: number | null) {\n this.onModelChange(value);\n this.value.set(value);\n }\n ngOnChanges(changes: SimpleChanges) {\n if (changes['pInputs']) {\n this.applyInputsToInput();\n }\n }\n\n writeValue(value: number) {\n this.value.set(value);\n }\n\n registerOnChange(fn: any) {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n setDisabledState(disabled: boolean) {\n this.disabled.set(disabled);\n }\n}\n","@if (label()) {\n <label\n [class.required]=\"ngControl?.control?.hasValidator(requiredValidator)\"\n [for]=\"ngControl?.name || label()\"\n [class.mb-3]=\"hideNumber()\"\n >{{ label() }}</label\n >\n}\n<div\n class=\"flex items-center gap-3 w-full\"\n [style.padding-inline-start]=\"'calc(var(--p-slider-handle-width) / 2)'\"\n>\n <p-slider\n #input\n [ngModel]=\"value()\"\n (ngModelChange)=\"onValueChange($event)\"\n (onChange)=\"onChange.emit($event)\"\n (onSlideEnd)=\"onSlideEnd.emit($event)\"\n (blur)=\"onTouched()\"\n [disabled]=\"disabled() || readonly()\"\n [animate]=\"animate()\"\n [id]=\"ngControl?.name || label()\"\n [min]=\"min()\"\n [max]=\"max()\"\n [step]=\"step()\"\n [class.ng-invalid]=\"ngControl?.control?.invalid\"\n class=\"grow\"\n ></p-slider>\n @if (!hideNumber()) {\n <span class=\"leading-none\">{{ value() ? value() + unit() : \"-\" }}</span>\n }\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}