@guajiritos/theme-picker 17.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.
@@ -0,0 +1,373 @@
1
+ import * as i0 from '@angular/core';
2
+ import { signal, EventEmitter, Component, Input, Output, forwardRef } from '@angular/core';
3
+ import * as i1 from '@angular/material/icon';
4
+ import { MatIconModule } from '@angular/material/icon';
5
+ import * as i4 from '@angular/common';
6
+ import { CommonModule } from '@angular/common';
7
+ import * as i2 from '@angular/material/menu';
8
+ import { MatMenuModule } from '@angular/material/menu';
9
+ import * as i3 from '@angular/material/button';
10
+ import { MatButtonModule } from '@angular/material/button';
11
+ import * as i5 from '@angular/material/form-field';
12
+ import { MatFormFieldModule } from '@angular/material/form-field';
13
+ import * as i6 from '@angular/material/autocomplete';
14
+ import { MatAutocompleteModule } from '@angular/material/autocomplete';
15
+ import * as i8 from '@angular/forms';
16
+ import { UntypedFormControl, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';
17
+ import * as i9 from '@angular/material/input';
18
+ import { MatInputModule } from '@angular/material/input';
19
+ import * as i7 from '@angular/material/core';
20
+
21
+ var GUAJIRITOS_PALETTE;
22
+ (function (GUAJIRITOS_PALETTE) {
23
+ GUAJIRITOS_PALETTE["OCEAN_GREEN"] = "ocean-green";
24
+ GUAJIRITOS_PALETTE["BRIGHT_YELLOW"] = "bright-yellow";
25
+ GUAJIRITOS_PALETTE["APPLE"] = "apple";
26
+ GUAJIRITOS_PALETTE["GREEN"] = "green";
27
+ GUAJIRITOS_PALETTE["DOUBAN_BLUE"] = "douban-blue";
28
+ GUAJIRITOS_PALETTE["BLIZZARD_BLUE"] = "blizzard-blue";
29
+ GUAJIRITOS_PALETTE["SASQUATCH_SOCKS"] = "sasquatch-socks";
30
+ GUAJIRITOS_PALETTE["SAPPHIRE"] = "sapphire";
31
+ GUAJIRITOS_PALETTE["ATENEO_BLUE"] = "ateneo-blue";
32
+ GUAJIRITOS_PALETTE["BRILLIANT_AZURE"] = "brilliant-azure";
33
+ GUAJIRITOS_PALETTE["DEEP_CARMINE_PINK"] = "deep-carmine-pink";
34
+ GUAJIRITOS_PALETTE["MUSTARD_YELLOW"] = "mustard-yellow";
35
+ GUAJIRITOS_PALETTE["BLUE_BOLT"] = "blue-bolt";
36
+ GUAJIRITOS_PALETTE["DARK_TURQUOISE"] = "dark-turquoise";
37
+ GUAJIRITOS_PALETTE["JELLY_BEAN_BLUE"] = "jelly-bean-blue";
38
+ })(GUAJIRITOS_PALETTE || (GUAJIRITOS_PALETTE = {}));
39
+ const PALETTES = [
40
+ {
41
+ name: 'Ocean Green',
42
+ palette: GUAJIRITOS_PALETTE.OCEAN_GREEN,
43
+ show: true
44
+ },
45
+ {
46
+ name: 'Bright Yellow',
47
+ palette: GUAJIRITOS_PALETTE.BRIGHT_YELLOW,
48
+ show: true
49
+ },
50
+ {
51
+ name: 'Apple',
52
+ palette: GUAJIRITOS_PALETTE.APPLE,
53
+ show: true
54
+ },
55
+ {
56
+ name: 'Green',
57
+ palette: GUAJIRITOS_PALETTE.GREEN,
58
+ show: true
59
+ },
60
+ {
61
+ name: 'Douban Blue',
62
+ palette: GUAJIRITOS_PALETTE.DOUBAN_BLUE,
63
+ show: true
64
+ },
65
+ {
66
+ name: 'Blizzard Blue',
67
+ palette: GUAJIRITOS_PALETTE.BLIZZARD_BLUE,
68
+ show: true
69
+ },
70
+ {
71
+ name: 'Sasquatch Socks',
72
+ palette: GUAJIRITOS_PALETTE.SASQUATCH_SOCKS,
73
+ show: true
74
+ },
75
+ {
76
+ name: 'Sapphire',
77
+ palette: GUAJIRITOS_PALETTE.SAPPHIRE,
78
+ show: true
79
+ },
80
+ {
81
+ name: 'Ateneo Blue',
82
+ palette: GUAJIRITOS_PALETTE.ATENEO_BLUE,
83
+ show: true
84
+ },
85
+ {
86
+ name: 'Brilliant Azure',
87
+ palette: GUAJIRITOS_PALETTE.BRILLIANT_AZURE,
88
+ show: true
89
+ },
90
+ {
91
+ name: 'Deep Carmine Pink',
92
+ palette: GUAJIRITOS_PALETTE.DEEP_CARMINE_PINK,
93
+ show: true
94
+ },
95
+ {
96
+ name: 'Mustard Yellow',
97
+ palette: GUAJIRITOS_PALETTE.MUSTARD_YELLOW,
98
+ show: true
99
+ },
100
+ {
101
+ name: 'Blue Bolt',
102
+ palette: GUAJIRITOS_PALETTE.BLUE_BOLT,
103
+ show: true
104
+ },
105
+ {
106
+ name: 'Dark Turquoise',
107
+ palette: GUAJIRITOS_PALETTE.DARK_TURQUOISE,
108
+ show: true
109
+ },
110
+ {
111
+ name: 'Jelly Bean Blue',
112
+ palette: GUAJIRITOS_PALETTE.JELLY_BEAN_BLUE,
113
+ show: true
114
+ }
115
+ ];
116
+
117
+ class GuajiritosThemePickerMenu {
118
+ constructor() {
119
+ this.menuPalettes = signal((PALETTES));
120
+ this.paletteChanged = new EventEmitter();
121
+ }
122
+ set activePalettes(palettes) {
123
+ if (palettes?.length) {
124
+ this.menuPalettes.update((patts) => {
125
+ patts.forEach((palette) => {
126
+ palette.show = palettes.includes(palette.palette);
127
+ });
128
+ return patts;
129
+ });
130
+ }
131
+ }
132
+ selectPalette(palette) {
133
+ this.paletteChanged.emit(palette);
134
+ }
135
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: GuajiritosThemePickerMenu, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
136
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: GuajiritosThemePickerMenu, isStandalone: true, selector: "guajiritos-theme-picker-menu", inputs: { color: "color", activePalettes: "activePalettes" }, outputs: { paletteChanged: "paletteChanged" }, ngImport: i0, template: `
137
+ <button mat-icon-button [matMenuTriggerFor]="menu" aria-label="theme picker" [color]="color">
138
+ <mat-icon>format_color_fill</mat-icon>
139
+ </button>
140
+ <mat-menu #menu="matMenu">
141
+ @for (palette of menuPalettes(); track palette.palette) {
142
+ @if (palette.show) {
143
+ <button mat-menu-item (click)="selectPalette(palette)">
144
+ <div class="guajiritos-theme-item">
145
+ <span>{{ palette.name }}</span>
146
+ <svg width="80" height="80" viewBox="0 0 80 80" [class]="palette.palette">
147
+ <path
148
+ d="M77.87 0C79.05 0 80 .95 80 2.13v75.74c0 1.17-.95 2.13-2.13 2.13H2.13C.96 80 0 79.04 0 77.87V2.13C0 .95.96 0 2.13 0h75.74z"
149
+ fill="#fffbff"></path>
150
+ <path
151
+ d="M54 40c3.32 0 6 2.69 6 6 0 1.2 0-1.2 0 0 0 3.31-2.68 6-6 6H26c-3.31 0-6-2.69-6-6 0-1.2 0 1.2 0 0 0-3.31 2.69-6 6-6h28z"
152
+ fill="" class="svg-color"></path>
153
+ <path d="M0 0h80v17.24H0V0z" class="svg-color" fill=""></path>
154
+ </svg>
155
+ </div>
156
+ </button>
157
+ }
158
+ }
159
+ </mat-menu>
160
+ `, isInline: true, styles: [".guajiritos-theme-item{display:flex;justify-content:space-between;align-items:center;gap:1rem}.guajiritos-theme-item svg{width:24px;height:24px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i2.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i2.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }] }); }
161
+ }
162
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: GuajiritosThemePickerMenu, decorators: [{
163
+ type: Component,
164
+ args: [{ selector: 'guajiritos-theme-picker-menu', standalone: true, imports: [
165
+ CommonModule,
166
+ MatIconModule,
167
+ MatMenuModule,
168
+ MatButtonModule
169
+ ], template: `
170
+ <button mat-icon-button [matMenuTriggerFor]="menu" aria-label="theme picker" [color]="color">
171
+ <mat-icon>format_color_fill</mat-icon>
172
+ </button>
173
+ <mat-menu #menu="matMenu">
174
+ @for (palette of menuPalettes(); track palette.palette) {
175
+ @if (palette.show) {
176
+ <button mat-menu-item (click)="selectPalette(palette)">
177
+ <div class="guajiritos-theme-item">
178
+ <span>{{ palette.name }}</span>
179
+ <svg width="80" height="80" viewBox="0 0 80 80" [class]="palette.palette">
180
+ <path
181
+ d="M77.87 0C79.05 0 80 .95 80 2.13v75.74c0 1.17-.95 2.13-2.13 2.13H2.13C.96 80 0 79.04 0 77.87V2.13C0 .95.96 0 2.13 0h75.74z"
182
+ fill="#fffbff"></path>
183
+ <path
184
+ d="M54 40c3.32 0 6 2.69 6 6 0 1.2 0-1.2 0 0 0 3.31-2.68 6-6 6H26c-3.31 0-6-2.69-6-6 0-1.2 0 1.2 0 0 0-3.31 2.69-6 6-6h28z"
185
+ fill="" class="svg-color"></path>
186
+ <path d="M0 0h80v17.24H0V0z" class="svg-color" fill=""></path>
187
+ </svg>
188
+ </div>
189
+ </button>
190
+ }
191
+ }
192
+ </mat-menu>
193
+ `, styles: [".guajiritos-theme-item{display:flex;justify-content:space-between;align-items:center;gap:1rem}.guajiritos-theme-item svg{width:24px;height:24px}\n"] }]
194
+ }], propDecorators: { color: [{
195
+ type: Input
196
+ }], activePalettes: [{
197
+ type: Input
198
+ }], paletteChanged: [{
199
+ type: Output
200
+ }] } });
201
+ class GuajiritosThemePicker {
202
+ constructor() {
203
+ this.PALETTES = PALETTES;
204
+ this.form = new UntypedFormControl({ value: null, disabled: false });
205
+ this.appearance = "outline";
206
+ this.color = "accent";
207
+ this.subscriptSizing = "dynamic";
208
+ this.floatLabelType = "always";
209
+ this.requireSelection = true;
210
+ this.height = '44px';
211
+ this.width = '44px';
212
+ this.emitOnlyPalette = false;
213
+ this.propagateChange = (_) => {
214
+ };
215
+ }
216
+ displayFn(palette) {
217
+ return palette?.name ?? '';
218
+ }
219
+ registerOnChange(fn) {
220
+ this.propagateChange = fn;
221
+ }
222
+ registerOnTouched() {
223
+ }
224
+ writeValue(palette) {
225
+ if (palette) {
226
+ this.form.setValue(palette, { emitEvent: false });
227
+ }
228
+ }
229
+ setDisabledState(isDisabled) {
230
+ if (isDisabled) {
231
+ this.form.disable();
232
+ }
233
+ else {
234
+ this.form.enable();
235
+ }
236
+ }
237
+ optionSelected($event) {
238
+ if ($event?.option?.value) {
239
+ this.propagateChange(this.emitOnlyPalette ? $event.option.value?.palette : $event.option.value);
240
+ }
241
+ }
242
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: GuajiritosThemePicker, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
243
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: GuajiritosThemePicker, isStandalone: true, selector: "guajiritos-theme-picker", inputs: { appearance: "appearance", color: "color", subscriptSizing: "subscriptSizing", floatLabelType: "floatLabelType", requireSelection: "requireSelection", height: "height", width: "width", emitOnlyPalette: "emitOnlyPalette" }, providers: [
244
+ {
245
+ provide: NG_VALUE_ACCESSOR,
246
+ useExisting: forwardRef(() => GuajiritosThemePicker),
247
+ multi: true
248
+ }
249
+ ], ngImport: i0, template: `
250
+ <div class="guajiritos-theme-picker">
251
+ <mat-form-field class="w-100" [appearance]="appearance" [color]="color" [floatLabel]="floatLabelType"
252
+ [subscriptSizing]="subscriptSizing">
253
+ <mat-label>Assignee</mat-label>
254
+ <input type="text" matInput [formControl]="form" [matAutocomplete]="auto">
255
+ <mat-autocomplete #auto="matAutocomplete" [displayWith]="displayFn" (optionSelected)="optionSelected($event)"
256
+ [requireSelection]="requireSelection">
257
+ @for (palette of PALETTES; track palette.palette) {
258
+ <mat-option [value]="palette">
259
+ <div class="guajiritos-theme-item w-100">
260
+ <svg width="80" height="80" viewBox="0 0 80 80" [class]="palette.palette">
261
+ <path
262
+ d="M77.87 0C79.05 0 80 .95 80 2.13v75.74c0 1.17-.95 2.13-2.13 2.13H2.13C.96 80 0 79.04 0 77.87V2.13C0 .95.96 0 2.13 0h75.74z"
263
+ fill="#fffbff"></path>
264
+ <path
265
+ d="M54 40c3.32 0 6 2.69 6 6 0 1.2 0-1.2 0 0 0 3.31-2.68 6-6 6H26c-3.31 0-6-2.69-6-6 0-1.2 0 1.2 0 0 0-3.31 2.69-6 6-6h28z"
266
+ fill="" class="svg-color"></path>
267
+ <path d="M0 0h80v17.24H0V0z" class="svg-color" fill=""></path>
268
+ </svg>
269
+ <span>{{ palette.name }}</span>
270
+ </div>
271
+ </mat-option>
272
+ }
273
+ </mat-autocomplete>
274
+ </mat-form-field>
275
+
276
+ @if (form.value?.palette) {
277
+ <svg width="80" height="80" viewBox="0 0 80 80" [class]="form.value.palette"
278
+ [ngStyle]="{'width': width, 'height': height}" id="activePalette">
279
+ <path
280
+ d="M77.87 0C79.05 0 80 .95 80 2.13v75.74c0 1.17-.95 2.13-2.13 2.13H2.13C.96 80 0 79.04 0 77.87V2.13C0 .95.96 0 2.13 0h75.74z"
281
+ fill="#fffbff"></path>
282
+ <path
283
+ d="M54 40c3.32 0 6 2.69 6 6 0 1.2 0-1.2 0 0 0 3.31-2.68 6-6 6H26c-3.31 0-6-2.69-6-6 0-1.2 0 1.2 0 0 0-3.31 2.69-6 6-6h28z"
284
+ fill="" class="svg-color"></path>
285
+ <path d="M0 0h80v17.24H0V0z" class="svg-color" fill=""></path>
286
+ </svg>
287
+ }
288
+ </div>
289
+ `, isInline: true, styles: [".w-100{width:100%}.guajiritos-theme-picker,.guajiritos-theme-item{display:flex;justify-content:space-between;align-items:center;gap:1rem}.guajiritos-theme-item svg{width:24px;height:24px}#activePalette{border-radius:4px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i6.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i7.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i6.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i8.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }] }); }
290
+ }
291
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: GuajiritosThemePicker, decorators: [{
292
+ type: Component,
293
+ args: [{ selector: 'guajiritos-theme-picker', standalone: true, imports: [
294
+ CommonModule,
295
+ MatFormFieldModule,
296
+ MatAutocompleteModule,
297
+ ReactiveFormsModule,
298
+ MatInputModule
299
+ ], template: `
300
+ <div class="guajiritos-theme-picker">
301
+ <mat-form-field class="w-100" [appearance]="appearance" [color]="color" [floatLabel]="floatLabelType"
302
+ [subscriptSizing]="subscriptSizing">
303
+ <mat-label>Assignee</mat-label>
304
+ <input type="text" matInput [formControl]="form" [matAutocomplete]="auto">
305
+ <mat-autocomplete #auto="matAutocomplete" [displayWith]="displayFn" (optionSelected)="optionSelected($event)"
306
+ [requireSelection]="requireSelection">
307
+ @for (palette of PALETTES; track palette.palette) {
308
+ <mat-option [value]="palette">
309
+ <div class="guajiritos-theme-item w-100">
310
+ <svg width="80" height="80" viewBox="0 0 80 80" [class]="palette.palette">
311
+ <path
312
+ d="M77.87 0C79.05 0 80 .95 80 2.13v75.74c0 1.17-.95 2.13-2.13 2.13H2.13C.96 80 0 79.04 0 77.87V2.13C0 .95.96 0 2.13 0h75.74z"
313
+ fill="#fffbff"></path>
314
+ <path
315
+ d="M54 40c3.32 0 6 2.69 6 6 0 1.2 0-1.2 0 0 0 3.31-2.68 6-6 6H26c-3.31 0-6-2.69-6-6 0-1.2 0 1.2 0 0 0-3.31 2.69-6 6-6h28z"
316
+ fill="" class="svg-color"></path>
317
+ <path d="M0 0h80v17.24H0V0z" class="svg-color" fill=""></path>
318
+ </svg>
319
+ <span>{{ palette.name }}</span>
320
+ </div>
321
+ </mat-option>
322
+ }
323
+ </mat-autocomplete>
324
+ </mat-form-field>
325
+
326
+ @if (form.value?.palette) {
327
+ <svg width="80" height="80" viewBox="0 0 80 80" [class]="form.value.palette"
328
+ [ngStyle]="{'width': width, 'height': height}" id="activePalette">
329
+ <path
330
+ d="M77.87 0C79.05 0 80 .95 80 2.13v75.74c0 1.17-.95 2.13-2.13 2.13H2.13C.96 80 0 79.04 0 77.87V2.13C0 .95.96 0 2.13 0h75.74z"
331
+ fill="#fffbff"></path>
332
+ <path
333
+ d="M54 40c3.32 0 6 2.69 6 6 0 1.2 0-1.2 0 0 0 3.31-2.68 6-6 6H26c-3.31 0-6-2.69-6-6 0-1.2 0 1.2 0 0 0-3.31 2.69-6 6-6h28z"
334
+ fill="" class="svg-color"></path>
335
+ <path d="M0 0h80v17.24H0V0z" class="svg-color" fill=""></path>
336
+ </svg>
337
+ }
338
+ </div>
339
+ `, providers: [
340
+ {
341
+ provide: NG_VALUE_ACCESSOR,
342
+ useExisting: forwardRef(() => GuajiritosThemePicker),
343
+ multi: true
344
+ }
345
+ ], styles: [".w-100{width:100%}.guajiritos-theme-picker,.guajiritos-theme-item{display:flex;justify-content:space-between;align-items:center;gap:1rem}.guajiritos-theme-item svg{width:24px;height:24px}#activePalette{border-radius:4px}\n"] }]
346
+ }], propDecorators: { appearance: [{
347
+ type: Input
348
+ }], color: [{
349
+ type: Input
350
+ }], subscriptSizing: [{
351
+ type: Input
352
+ }], floatLabelType: [{
353
+ type: Input
354
+ }], requireSelection: [{
355
+ type: Input
356
+ }], height: [{
357
+ type: Input
358
+ }], width: [{
359
+ type: Input
360
+ }], emitOnlyPalette: [{
361
+ type: Input
362
+ }] } });
363
+
364
+ /*
365
+ * Public API Surface of material-themes-picker
366
+ */
367
+
368
+ /**
369
+ * Generated bundle index. Do not edit.
370
+ */
371
+
372
+ export { GUAJIRITOS_PALETTE, GuajiritosThemePicker, GuajiritosThemePickerMenu, PALETTES };
373
+ //# sourceMappingURL=guajiritos-theme-picker.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guajiritos-theme-picker.mjs","sources":["../../../projects/material-theme-picker/src/lib/models/models.ts","../../../projects/material-theme-picker/src/lib/material-theme-picker.component.ts","../../../projects/material-theme-picker/src/public-api.ts","../../../projects/material-theme-picker/src/guajiritos-theme-picker.ts"],"sourcesContent":["export enum GUAJIRITOS_PALETTE {\r\n OCEAN_GREEN = 'ocean-green',\r\n BRIGHT_YELLOW = 'bright-yellow',\r\n APPLE = 'apple',\r\n GREEN = 'green',\r\n DOUBAN_BLUE = 'douban-blue',\r\n BLIZZARD_BLUE = 'blizzard-blue',\r\n SASQUATCH_SOCKS = 'sasquatch-socks',\r\n SAPPHIRE = 'sapphire',\r\n ATENEO_BLUE = 'ateneo-blue',\r\n BRILLIANT_AZURE = 'brilliant-azure',\r\n DEEP_CARMINE_PINK = 'deep-carmine-pink',\r\n MUSTARD_YELLOW = 'mustard-yellow',\r\n BLUE_BOLT = 'blue-bolt',\r\n DARK_TURQUOISE = 'dark-turquoise',\r\n JELLY_BEAN_BLUE = 'jelly-bean-blue'\r\n}\r\n\r\nexport interface GuajiritosPalette {\r\n name: string;\r\n palette: GUAJIRITOS_PALETTE;\r\n show?: boolean;\r\n}\r\n\r\nexport const PALETTES: GuajiritosPalette[] = [\r\n {\r\n name: 'Ocean Green',\r\n palette: GUAJIRITOS_PALETTE.OCEAN_GREEN,\r\n show: true\r\n },\r\n {\r\n name: 'Bright Yellow',\r\n palette: GUAJIRITOS_PALETTE.BRIGHT_YELLOW,\r\n show: true\r\n },\r\n {\r\n name: 'Apple',\r\n palette: GUAJIRITOS_PALETTE.APPLE,\r\n show: true\r\n },\r\n {\r\n name: 'Green',\r\n palette: GUAJIRITOS_PALETTE.GREEN,\r\n show: true\r\n },\r\n {\r\n name: 'Douban Blue',\r\n palette: GUAJIRITOS_PALETTE.DOUBAN_BLUE,\r\n show: true\r\n },\r\n {\r\n name: 'Blizzard Blue',\r\n palette: GUAJIRITOS_PALETTE.BLIZZARD_BLUE,\r\n show: true\r\n },\r\n {\r\n name: 'Sasquatch Socks',\r\n palette: GUAJIRITOS_PALETTE.SASQUATCH_SOCKS,\r\n show: true\r\n },\r\n {\r\n name: 'Sapphire',\r\n palette: GUAJIRITOS_PALETTE.SAPPHIRE,\r\n show: true\r\n },\r\n {\r\n name: 'Ateneo Blue',\r\n palette: GUAJIRITOS_PALETTE.ATENEO_BLUE,\r\n show: true\r\n },\r\n {\r\n name: 'Brilliant Azure',\r\n palette: GUAJIRITOS_PALETTE.BRILLIANT_AZURE,\r\n show: true\r\n },\r\n {\r\n name: 'Deep Carmine Pink',\r\n palette: GUAJIRITOS_PALETTE.DEEP_CARMINE_PINK,\r\n show: true\r\n },\r\n {\r\n name: 'Mustard Yellow',\r\n palette: GUAJIRITOS_PALETTE.MUSTARD_YELLOW,\r\n show: true\r\n },\r\n {\r\n name: 'Blue Bolt',\r\n palette: GUAJIRITOS_PALETTE.BLUE_BOLT,\r\n show: true\r\n },\r\n {\r\n name: 'Dark Turquoise',\r\n palette: GUAJIRITOS_PALETTE.DARK_TURQUOISE,\r\n show: true\r\n },\r\n {\r\n name: 'Jelly Bean Blue',\r\n palette: GUAJIRITOS_PALETTE.JELLY_BEAN_BLUE,\r\n show: true\r\n }\r\n];\r\n","import {Component, EventEmitter, forwardRef, Input, Output, signal, WritableSignal} from '@angular/core';\r\nimport {MatIconModule} from \"@angular/material/icon\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {MatMenuModule} from \"@angular/material/menu\";\r\nimport {MatButtonModule} from \"@angular/material/button\";\r\nimport {ThemePalette} from \"@angular/material/core\";\r\nimport {\r\n FloatLabelType,\r\n MatFormFieldAppearance,\r\n MatFormFieldModule,\r\n SubscriptSizing\r\n} from \"@angular/material/form-field\";\r\nimport {MatAutocompleteModule} from \"@angular/material/autocomplete\";\r\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR, ReactiveFormsModule, UntypedFormControl} from \"@angular/forms\";\r\nimport {MatInputModule} from \"@angular/material/input\";\r\n\r\nimport {GUAJIRITOS_PALETTE, GuajiritosPalette, PALETTES} from './models/models';\r\n\r\n@Component({\r\n selector: 'guajiritos-theme-picker-menu',\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n MatIconModule,\r\n MatMenuModule,\r\n MatButtonModule\r\n ],\r\n template: `\r\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" aria-label=\"theme picker\" [color]=\"color\">\r\n <mat-icon>format_color_fill</mat-icon>\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n @for (palette of menuPalettes(); track palette.palette) {\r\n @if (palette.show) {\r\n <button mat-menu-item (click)=\"selectPalette(palette)\">\r\n <div class=\"guajiritos-theme-item\">\r\n <span>{{ palette.name }}</span>\r\n <svg width=\"80\" height=\"80\" viewBox=\"0 0 80 80\" [class]=\"palette.palette\">\r\n <path\r\n d=\"M77.87 0C79.05 0 80 .95 80 2.13v75.74c0 1.17-.95 2.13-2.13 2.13H2.13C.96 80 0 79.04 0 77.87V2.13C0 .95.96 0 2.13 0h75.74z\"\r\n fill=\"#fffbff\"></path>\r\n <path\r\n d=\"M54 40c3.32 0 6 2.69 6 6 0 1.2 0-1.2 0 0 0 3.31-2.68 6-6 6H26c-3.31 0-6-2.69-6-6 0-1.2 0 1.2 0 0 0-3.31 2.69-6 6-6h28z\"\r\n fill=\"\" class=\"svg-color\"></path>\r\n <path d=\"M0 0h80v17.24H0V0z\" class=\"svg-color\" fill=\"\"></path>\r\n </svg>\r\n </div>\r\n </button>\r\n }\r\n }\r\n </mat-menu>\r\n `,\r\n styles: `\r\n .guajiritos-theme-item {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n gap: 1rem;\r\n\r\n svg {\r\n width: 24px;\r\n height: 24px;\r\n }\r\n }\r\n `\r\n})\r\nexport class GuajiritosThemePickerMenu {\r\n public menuPalettes: WritableSignal<GuajiritosPalette[]> = signal((PALETTES));\r\n\r\n @Input() color: ThemePalette;\r\n\r\n @Input() set activePalettes(palettes: GUAJIRITOS_PALETTE[]) {\r\n if (palettes?.length) {\r\n this.menuPalettes.update((patts: GuajiritosPalette[]) => {\r\n patts.forEach((palette: GuajiritosPalette): void => {\r\n palette.show = palettes.includes(palette.palette);\r\n })\r\n return patts;\r\n })\r\n }\r\n }\r\n\r\n @Output() paletteChanged = new EventEmitter<GuajiritosPalette>();\r\n\r\n public selectPalette(palette: GuajiritosPalette): void {\r\n this.paletteChanged.emit(palette);\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'guajiritos-theme-picker',\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n MatFormFieldModule,\r\n MatAutocompleteModule,\r\n ReactiveFormsModule,\r\n MatInputModule\r\n ],\r\n template: `\r\n <div class=\"guajiritos-theme-picker\">\r\n <mat-form-field class=\"w-100\" [appearance]=\"appearance\" [color]=\"color\" [floatLabel]=\"floatLabelType\"\r\n [subscriptSizing]=\"subscriptSizing\">\r\n <mat-label>Assignee</mat-label>\r\n <input type=\"text\" matInput [formControl]=\"form\" [matAutocomplete]=\"auto\">\r\n <mat-autocomplete #auto=\"matAutocomplete\" [displayWith]=\"displayFn\" (optionSelected)=\"optionSelected($event)\"\r\n [requireSelection]=\"requireSelection\">\r\n @for (palette of PALETTES; track palette.palette) {\r\n <mat-option [value]=\"palette\">\r\n <div class=\"guajiritos-theme-item w-100\">\r\n <svg width=\"80\" height=\"80\" viewBox=\"0 0 80 80\" [class]=\"palette.palette\">\r\n <path\r\n d=\"M77.87 0C79.05 0 80 .95 80 2.13v75.74c0 1.17-.95 2.13-2.13 2.13H2.13C.96 80 0 79.04 0 77.87V2.13C0 .95.96 0 2.13 0h75.74z\"\r\n fill=\"#fffbff\"></path>\r\n <path\r\n d=\"M54 40c3.32 0 6 2.69 6 6 0 1.2 0-1.2 0 0 0 3.31-2.68 6-6 6H26c-3.31 0-6-2.69-6-6 0-1.2 0 1.2 0 0 0-3.31 2.69-6 6-6h28z\"\r\n fill=\"\" class=\"svg-color\"></path>\r\n <path d=\"M0 0h80v17.24H0V0z\" class=\"svg-color\" fill=\"\"></path>\r\n </svg>\r\n <span>{{ palette.name }}</span>\r\n </div>\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n\r\n @if (form.value?.palette) {\r\n <svg width=\"80\" height=\"80\" viewBox=\"0 0 80 80\" [class]=\"form.value.palette\"\r\n [ngStyle]=\"{'width': width, 'height': height}\" id=\"activePalette\">\r\n <path\r\n d=\"M77.87 0C79.05 0 80 .95 80 2.13v75.74c0 1.17-.95 2.13-2.13 2.13H2.13C.96 80 0 79.04 0 77.87V2.13C0 .95.96 0 2.13 0h75.74z\"\r\n fill=\"#fffbff\"></path>\r\n <path\r\n d=\"M54 40c3.32 0 6 2.69 6 6 0 1.2 0-1.2 0 0 0 3.31-2.68 6-6 6H26c-3.31 0-6-2.69-6-6 0-1.2 0 1.2 0 0 0-3.31 2.69-6 6-6h28z\"\r\n fill=\"\" class=\"svg-color\"></path>\r\n <path d=\"M0 0h80v17.24H0V0z\" class=\"svg-color\" fill=\"\"></path>\r\n </svg>\r\n }\r\n </div>\r\n `,\r\n styles: [\r\n `\r\n .w-100 {\r\n width: 100%;\r\n }\r\n\r\n .guajiritos-theme-picker {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n gap: 1rem;\r\n }\r\n\r\n .guajiritos-theme-item {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n gap: 1rem;\r\n\r\n svg {\r\n width: 24px;\r\n height: 24px;\r\n }\r\n }\r\n\r\n #activePalette {\r\n border-radius: 4px;\r\n }\r\n `\r\n ],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => GuajiritosThemePicker),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class GuajiritosThemePicker implements ControlValueAccessor {\r\n protected readonly PALETTES: GuajiritosPalette[] = PALETTES;\r\n\r\n public form: UntypedFormControl = new UntypedFormControl({value: null, disabled: false});\r\n\r\n @Input() appearance: MatFormFieldAppearance = \"outline\";\r\n @Input() color: ThemePalette = \"accent\";\r\n @Input() subscriptSizing: SubscriptSizing = \"dynamic\";\r\n @Input() floatLabelType: FloatLabelType = \"always\";\r\n @Input() requireSelection: boolean = true;\r\n\r\n @Input() height: string = '44px';\r\n @Input() width: string = '44px';\r\n @Input() emitOnlyPalette: boolean = false;\r\n\r\n displayFn(palette: GuajiritosPalette): string {\r\n return palette?.name ?? '';\r\n }\r\n\r\n propagateChange = (_: any): void => {\r\n };\r\n\r\n registerOnChange(fn: (_: any) => void): void {\r\n this.propagateChange = fn;\r\n }\r\n\r\n registerOnTouched(): void {\r\n }\r\n\r\n writeValue(palette: GuajiritosPalette): void {\r\n if (palette) {\r\n this.form.setValue(palette, {emitEvent: false});\r\n }\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n if (isDisabled) {\r\n this.form.disable();\r\n } else {\r\n this.form.enable();\r\n }\r\n }\r\n\r\n public optionSelected($event: any): void {\r\n if ($event?.option?.value) {\r\n this.propagateChange(this.emitOnlyPalette ? $event.option.value?.palette : $event.option.value);\r\n }\r\n }\r\n}\r\n","/*\r\n * Public API Surface of material-themes-picker\r\n */\r\n\r\nexport * from './lib/material-theme-picker.component';\r\nexport * from './lib/models/models';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/index.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@guajiritos/theme-picker" />
5
+ export * from './public-api';
@@ -0,0 +1,36 @@
1
+ import { EventEmitter, WritableSignal } from '@angular/core';
2
+ import { ThemePalette } from "@angular/material/core";
3
+ import { FloatLabelType, MatFormFieldAppearance, SubscriptSizing } from "@angular/material/form-field";
4
+ import { ControlValueAccessor, UntypedFormControl } from "@angular/forms";
5
+ import { GUAJIRITOS_PALETTE, GuajiritosPalette } from './models/models';
6
+ import * as i0 from "@angular/core";
7
+ export declare class GuajiritosThemePickerMenu {
8
+ menuPalettes: WritableSignal<GuajiritosPalette[]>;
9
+ color: ThemePalette;
10
+ set activePalettes(palettes: GUAJIRITOS_PALETTE[]);
11
+ paletteChanged: EventEmitter<GuajiritosPalette>;
12
+ selectPalette(palette: GuajiritosPalette): void;
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<GuajiritosThemePickerMenu, never>;
14
+ static ɵcmp: i0.ɵɵComponentDeclaration<GuajiritosThemePickerMenu, "guajiritos-theme-picker-menu", never, { "color": { "alias": "color"; "required": false; }; "activePalettes": { "alias": "activePalettes"; "required": false; }; }, { "paletteChanged": "paletteChanged"; }, never, never, true, never>;
15
+ }
16
+ export declare class GuajiritosThemePicker implements ControlValueAccessor {
17
+ protected readonly PALETTES: GuajiritosPalette[];
18
+ form: UntypedFormControl;
19
+ appearance: MatFormFieldAppearance;
20
+ color: ThemePalette;
21
+ subscriptSizing: SubscriptSizing;
22
+ floatLabelType: FloatLabelType;
23
+ requireSelection: boolean;
24
+ height: string;
25
+ width: string;
26
+ emitOnlyPalette: boolean;
27
+ displayFn(palette: GuajiritosPalette): string;
28
+ propagateChange: (_: any) => void;
29
+ registerOnChange(fn: (_: any) => void): void;
30
+ registerOnTouched(): void;
31
+ writeValue(palette: GuajiritosPalette): void;
32
+ setDisabledState(isDisabled: boolean): void;
33
+ optionSelected($event: any): void;
34
+ static ɵfac: i0.ɵɵFactoryDeclaration<GuajiritosThemePicker, never>;
35
+ static ɵcmp: i0.ɵɵComponentDeclaration<GuajiritosThemePicker, "guajiritos-theme-picker", never, { "appearance": { "alias": "appearance"; "required": false; }; "color": { "alias": "color"; "required": false; }; "subscriptSizing": { "alias": "subscriptSizing"; "required": false; }; "floatLabelType": { "alias": "floatLabelType"; "required": false; }; "requireSelection": { "alias": "requireSelection"; "required": false; }; "height": { "alias": "height"; "required": false; }; "width": { "alias": "width"; "required": false; }; "emitOnlyPalette": { "alias": "emitOnlyPalette"; "required": false; }; }, {}, never, never, true, never>;
36
+ }
@@ -0,0 +1,23 @@
1
+ export declare enum GUAJIRITOS_PALETTE {
2
+ OCEAN_GREEN = "ocean-green",
3
+ BRIGHT_YELLOW = "bright-yellow",
4
+ APPLE = "apple",
5
+ GREEN = "green",
6
+ DOUBAN_BLUE = "douban-blue",
7
+ BLIZZARD_BLUE = "blizzard-blue",
8
+ SASQUATCH_SOCKS = "sasquatch-socks",
9
+ SAPPHIRE = "sapphire",
10
+ ATENEO_BLUE = "ateneo-blue",
11
+ BRILLIANT_AZURE = "brilliant-azure",
12
+ DEEP_CARMINE_PINK = "deep-carmine-pink",
13
+ MUSTARD_YELLOW = "mustard-yellow",
14
+ BLUE_BOLT = "blue-bolt",
15
+ DARK_TURQUOISE = "dark-turquoise",
16
+ JELLY_BEAN_BLUE = "jelly-bean-blue"
17
+ }
18
+ export interface GuajiritosPalette {
19
+ name: string;
20
+ palette: GUAJIRITOS_PALETTE;
21
+ show?: boolean;
22
+ }
23
+ export declare const PALETTES: GuajiritosPalette[];
package/package.json ADDED
@@ -0,0 +1,32 @@
1
+ {
2
+ "name": "@guajiritos/theme-picker",
3
+ "version": "17.0.1",
4
+ "peerDependencies": {
5
+ "@angular/common": "^17.3.0",
6
+ "@angular/core": "^17.3.0",
7
+ "@angular/material": "^17.3.0"
8
+ },
9
+ "dependencies": {
10
+ "tslib": "^2.3.0"
11
+ },
12
+ "sideEffects": false,
13
+ "exports": {
14
+ "./palettes": {
15
+ "sass": "./palettes.scss"
16
+ },
17
+ "./theme": {
18
+ "sass": "./theme.scss"
19
+ },
20
+ "./package.json": {
21
+ "default": "./package.json"
22
+ },
23
+ ".": {
24
+ "types": "./index.d.ts",
25
+ "esm2022": "./esm2022/guajiritos-theme-picker.mjs",
26
+ "esm": "./esm2022/guajiritos-theme-picker.mjs",
27
+ "default": "./fesm2022/guajiritos-theme-picker.mjs"
28
+ }
29
+ },
30
+ "module": "fesm2022/guajiritos-theme-picker.mjs",
31
+ "typings": "index.d.ts"
32
+ }