@latitude-ui/widgets 0.0.33 → 0.0.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/latitude-ui-widgets-button.mjs +34 -16
- package/fesm2022/latitude-ui-widgets-button.mjs.map +1 -1
- package/fesm2022/latitude-ui-widgets-checkbox.mjs +17 -11
- package/fesm2022/latitude-ui-widgets-checkbox.mjs.map +1 -1
- package/fesm2022/latitude-ui-widgets-core.mjs +40 -59
- package/fesm2022/latitude-ui-widgets-core.mjs.map +1 -1
- package/fesm2022/latitude-ui-widgets-icons.mjs +16 -4
- package/fesm2022/latitude-ui-widgets-icons.mjs.map +1 -1
- package/fesm2022/latitude-ui-widgets-input.mjs +9 -3
- package/fesm2022/latitude-ui-widgets-input.mjs.map +1 -1
- package/fesm2022/latitude-ui-widgets-l10n.mjs +104 -0
- package/fesm2022/latitude-ui-widgets-l10n.mjs.map +1 -0
- package/fesm2022/latitude-ui-widgets-listbox.mjs +6 -1
- package/fesm2022/latitude-ui-widgets-listbox.mjs.map +1 -1
- package/fesm2022/latitude-ui-widgets-lookup.mjs +12 -8
- package/fesm2022/latitude-ui-widgets-lookup.mjs.map +1 -1
- package/fesm2022/latitude-ui-widgets-menu.mjs +5 -5
- package/fesm2022/latitude-ui-widgets-menu.mjs.map +1 -1
- package/fesm2022/latitude-ui-widgets-paginate.mjs +100 -0
- package/fesm2022/latitude-ui-widgets-paginate.mjs.map +1 -0
- package/fesm2022/latitude-ui-widgets-scrollable.mjs +9 -5
- package/fesm2022/latitude-ui-widgets-scrollable.mjs.map +1 -1
- package/fesm2022/latitude-ui-widgets-select.mjs +20 -12
- package/fesm2022/latitude-ui-widgets-select.mjs.map +1 -1
- package/fesm2022/latitude-ui-widgets-splitview.mjs +218 -0
- package/fesm2022/latitude-ui-widgets-splitview.mjs.map +1 -0
- package/fesm2022/latitude-ui-widgets-switch.mjs +10 -6
- package/fesm2022/latitude-ui-widgets-switch.mjs.map +1 -1
- package/fesm2022/latitude-ui-widgets-tabs.mjs +23 -26
- package/fesm2022/latitude-ui-widgets-tabs.mjs.map +1 -1
- package/fesm2022/latitude-ui-widgets-textbox.mjs +67 -70
- package/fesm2022/latitude-ui-widgets-textbox.mjs.map +1 -1
- package/fesm2022/latitude-ui-widgets-toolbar.mjs +9 -5
- package/fesm2022/latitude-ui-widgets-toolbar.mjs.map +1 -1
- package/fesm2022/latitude-ui-widgets.mjs +10 -1
- package/fesm2022/latitude-ui-widgets.mjs.map +1 -1
- package/l10n/README.md +3 -0
- package/package.json +13 -1
- package/paginate/README.md +3 -0
- package/splitview/README.md +3 -0
- package/types/latitude-ui-widgets-button.d.ts +25 -8
- package/types/latitude-ui-widgets-checkbox.d.ts +6 -3
- package/types/latitude-ui-widgets-core.d.ts +32 -32
- package/types/latitude-ui-widgets-icons.d.ts +11 -2
- package/types/latitude-ui-widgets-input.d.ts +5 -3
- package/types/latitude-ui-widgets-l10n.d.ts +46 -0
- package/types/latitude-ui-widgets-listbox.d.ts +3 -1
- package/types/latitude-ui-widgets-lookup.d.ts +5 -3
- package/types/latitude-ui-widgets-menu.d.ts +4 -4
- package/types/latitude-ui-widgets-paginate.d.ts +39 -0
- package/types/latitude-ui-widgets-scrollable.d.ts +6 -4
- package/types/latitude-ui-widgets-select.d.ts +5 -3
- package/types/latitude-ui-widgets-splitview.d.ts +76 -0
- package/types/latitude-ui-widgets-switch.d.ts +5 -3
- package/types/latitude-ui-widgets-tabs.d.ts +15 -19
- package/types/latitude-ui-widgets-textbox.d.ts +9 -13
- package/types/latitude-ui-widgets-toolbar.d.ts +3 -1
- package/types/latitude-ui-widgets.d.ts +4 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"latitude-ui-widgets-input.mjs","sources":["../../../../packages/widgets/input/lib/input.
|
|
1
|
+
{"version":3,"file":"latitude-ui-widgets-input.mjs","sources":["../../../../packages/widgets/input/lib/input.ts","../../../../packages/widgets/input/lib/input.html","../../../../packages/widgets/input/lib/label.ts","../../../../packages/widgets/input/lib/label.html","../../../../packages/widgets/input/lib/output.ts","../../../../packages/widgets/input/lib/output.html","../../../../packages/widgets/input/public-api.ts","../../../../packages/widgets/input/latitude-ui-widgets-input.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, inject, ViewEncapsulation } from '@angular/core';\r\n\r\nimport { ARIA_ERRORMESSAGE, ARIA_LABELLEDBY, FormControlContainer } from '@latitude-ui/widgets/core';\r\n\r\n\r\n@Component({\r\n exportAs: 'latInput',\r\n selector: 'lat-input',\r\n templateUrl: './input.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: ARIA_LABELLEDBY,\r\n useFactory: () => inject(InputComponent, { self: true }).labelId\r\n },\r\n {\r\n provide: ARIA_ERRORMESSAGE,\r\n useFactory: () => inject(InputComponent, { self: true }).outputId\r\n },\r\n ]\r\n})\r\nexport class InputComponent<T> extends FormControlContainer<T> {\r\n readonly labelId = computed(() => `lat-label-${this.htmlId()}`);\r\n readonly outputId = computed(() => `lat-output-${this.htmlId()}`);\r\n}\r\n","<ng-content select=\"lat-label\" />\r\n\r\n<ng-content />\r\n\r\n@if (dirty() && errors()) {\r\n <ng-content select=\"lat-output\" />\r\n}\r\n","import { ChangeDetectionStrategy, Component, computed, inject, ViewEncapsulation } from '@angular/core';\r\nimport { InputComponent } from './input';\r\n\r\n@Component({\r\n exportAs: 'latLabel',\r\n selector: 'lat-label',\r\n templateUrl: './label.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n role: 'presentation',\r\n '[attr.id]': 'null'\r\n }\r\n})\r\nexport class LabelComponent<T = unknown> {\r\n readonly input = inject(InputComponent<T>, { host: true });\r\n\r\n readonly id = computed(() => this.input.labelId());\r\n readonly htmlFor = computed(() => this.input.controlId());\r\n readonly required = computed(() => this.input.required());\r\n readonly readonly = computed(() => this.input.readonly());\r\n}\r\n","<label [attr.id]=\"id()\" [attr.for]=\"htmlFor()\">\r\n <ng-content></ng-content>\r\n @if (!readonly() && required()) {\r\n <span class=\"lat-label-asterix\" aria-hidden=\"true\" title=\"required\">*</span>\r\n }\r\n</label>\r\n","import { ChangeDetectionStrategy, Component, computed, inject, ViewEncapsulation } from '@angular/core';\r\nimport { InputComponent } from './input';\r\n\r\n@Component({\r\n exportAs: 'latOutput',\r\n selector: 'lat-output',\r\n templateUrl: './output.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n role: 'presentation',\r\n '[attr.id]': 'null'\r\n }\r\n})\r\nexport class OutputComponent<T = unknown> {\r\n readonly input = inject(InputComponent<T>, { host: true });\r\n\r\n readonly id = computed(() => this.input.outputId());\r\n readonly htmlFor = computed(() => this.input.controlId());\r\n}\r\n","<output [attr.id]=\"id()\" [attr.for]=\"htmlFor()\">\r\n <ng-content></ng-content>\r\n</output>\r\n","import { InputComponent } from './lib/input';\r\nimport { LabelComponent } from './lib/label';\r\nimport { OutputComponent } from './lib/output';\r\n\r\nexport * from './lib/input';\r\nexport * from './lib/label';\r\nexport * from './lib/output';\r\n\r\nexport const InputImports = [\r\n InputComponent,\r\n LabelComponent,\r\n OutputComponent\r\n] as const;\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { InjectionToken, inject, signal, linkedSignal, computed, untracked, LOCALE_ID, Pipe } from '@angular/core';
|
|
3
|
+
|
|
4
|
+
class Language {
|
|
5
|
+
id;
|
|
6
|
+
rtl;
|
|
7
|
+
messages;
|
|
8
|
+
constructor(id, params = {}) {
|
|
9
|
+
this.id = id;
|
|
10
|
+
this.rtl = params.rtl ?? false;
|
|
11
|
+
this.messages = params.messages ?? {};
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
function messages(messages) {
|
|
15
|
+
const output = {};
|
|
16
|
+
const stack = [
|
|
17
|
+
{ key: '', value: messages }
|
|
18
|
+
];
|
|
19
|
+
while (stack.length > 0) {
|
|
20
|
+
const { key, value } = stack.pop();
|
|
21
|
+
if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
|
|
22
|
+
for (const [k, v] of Object.entries(value)) {
|
|
23
|
+
stack.push({ key: key ? `${key}.${k}` : k, value: v });
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
if (key) {
|
|
28
|
+
output[key] = value;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return output;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
const L10N_ENGLISH_LANGUAGE = new Language('en-US', {
|
|
36
|
+
messages: messages({
|
|
37
|
+
paginate: {
|
|
38
|
+
of: 'of',
|
|
39
|
+
rows: 'rows',
|
|
40
|
+
pages: 'pages'
|
|
41
|
+
}
|
|
42
|
+
})
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
const L10N_RUSSIAN_LANGUAGE = new Language('ru-RU', {
|
|
46
|
+
messages: messages({
|
|
47
|
+
paginate: {
|
|
48
|
+
of: 'из',
|
|
49
|
+
rows: 'строк',
|
|
50
|
+
pages: 'стр.'
|
|
51
|
+
}
|
|
52
|
+
})
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
/** @experimentalApi */
|
|
56
|
+
const L10N_SERVICE = new InjectionToken(ngDevMode ? 'L10N_SERVICE' : '');
|
|
57
|
+
/** @experimentalApi */
|
|
58
|
+
const L10N_LANGUAGE = new InjectionToken(ngDevMode ? 'L10N_LANGUAGE' : '');
|
|
59
|
+
/** @experimentalApi */
|
|
60
|
+
class LocalizationService {
|
|
61
|
+
languages = inject(L10N_LANGUAGE);
|
|
62
|
+
lcid = signal('en-US', ...(ngDevMode ? [{ debugName: "lcid" }] : []));
|
|
63
|
+
lang = linkedSignal({ ...(ngDevMode ? { debugName: "lang" } : {}), source: () => this.lcid(),
|
|
64
|
+
computation: (lcid) => {
|
|
65
|
+
return this.languages.find(x => x.id === lcid) ?? L10N_ENGLISH_LANGUAGE;
|
|
66
|
+
} });
|
|
67
|
+
constructor(lcid) {
|
|
68
|
+
this.lcid.set(lcid);
|
|
69
|
+
}
|
|
70
|
+
rtl = computed(() => this.lang().rtl, ...(ngDevMode ? [{ debugName: "rtl" }] : []));
|
|
71
|
+
messages = computed(() => this.lang().messages, ...(ngDevMode ? [{ debugName: "messages" }] : []));
|
|
72
|
+
tr(path) {
|
|
73
|
+
const messages = untracked(this.messages);
|
|
74
|
+
return messages[path];
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/** @experimentalApi */
|
|
78
|
+
function provideLocalization() {
|
|
79
|
+
return [
|
|
80
|
+
{ provide: L10N_LANGUAGE, useValue: L10N_ENGLISH_LANGUAGE, multi: true },
|
|
81
|
+
{ provide: L10N_LANGUAGE, useValue: L10N_RUSSIAN_LANGUAGE, multi: true },
|
|
82
|
+
{ provide: L10N_SERVICE, useFactory: () => new LocalizationService(inject(LOCALE_ID)) }
|
|
83
|
+
];
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
class LocalizationPipe {
|
|
87
|
+
l10n = inject(L10N_SERVICE);
|
|
88
|
+
transform(path) {
|
|
89
|
+
return this.l10n.tr(path);
|
|
90
|
+
}
|
|
91
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: LocalizationPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
92
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.1.3", ngImport: i0, type: LocalizationPipe, isStandalone: true, name: "l10n" });
|
|
93
|
+
}
|
|
94
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: LocalizationPipe, decorators: [{
|
|
95
|
+
type: Pipe,
|
|
96
|
+
args: [{ name: 'l10n' }]
|
|
97
|
+
}] });
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Generated bundle index. Do not edit.
|
|
101
|
+
*/
|
|
102
|
+
|
|
103
|
+
export { L10N_ENGLISH_LANGUAGE, L10N_LANGUAGE, L10N_RUSSIAN_LANGUAGE, L10N_SERVICE, Language, LocalizationPipe, LocalizationService, messages, provideLocalization };
|
|
104
|
+
//# sourceMappingURL=latitude-ui-widgets-l10n.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"latitude-ui-widgets-l10n.mjs","sources":["../../../../packages/widgets/l10n/lib/lang.ts","../../../../packages/widgets/l10n/lib/languages/en.ts","../../../../packages/widgets/l10n/lib/languages/ru.ts","../../../../packages/widgets/l10n/lib/l10n.ts","../../../../packages/widgets/l10n/lib/pipe.ts","../../../../packages/widgets/l10n/latitude-ui-widgets-l10n.ts"],"sourcesContent":["\r\nexport interface LanguageParams {\r\n readonly rtl?: boolean;\r\n readonly messages?: Record<string, string>;\r\n}\r\n\r\nexport class Language {\r\n readonly id: string;\r\n readonly rtl: boolean;\r\n readonly messages: Record<string, string>;\r\n\r\n constructor(id: string, params: LanguageParams = {}) {\r\n this.id = id;\r\n this.rtl = params.rtl ?? false;\r\n this.messages = params.messages ?? {};\r\n }\r\n}\r\n\r\nexport function messages<T extends Record<string, unknown>>(messages: T): Record<string, string> {\r\n const output: Record<string, any> = {};\r\n\r\n const stack: Array<{ key: string; value: any }> = [\r\n { key: '', value: messages }\r\n ];\r\n\r\n while (stack.length > 0) {\r\n const { key, value } = stack.pop() as { key: string; value: any };\r\n\r\n if (typeof value === 'object' && value !== null && !Array.isArray(value)) {\r\n for (const [k, v] of Object.entries(value)) {\r\n stack.push({ key: key ? `${key}.${k}` : k, value: v });\r\n }\r\n } else {\r\n if (key) {\r\n output[key] = value;\r\n }\r\n }\r\n }\r\n\r\n return output;\r\n}\r\n","import { Language, messages } from '../lang';\r\n\r\n\r\nexport const L10N_ENGLISH_LANGUAGE = new Language('en-US', {\r\n messages: messages({\r\n paginate: {\r\n of: 'of',\r\n rows: 'rows',\r\n pages: 'pages'\r\n }\r\n })\r\n});\r\n\r\n","import { Language, messages } from '../lang';\r\n\r\n\r\nexport const L10N_RUSSIAN_LANGUAGE = new Language('ru-RU', {\r\n messages: messages({\r\n paginate: {\r\n of: 'из',\r\n rows: 'строк',\r\n pages: 'стр.'\r\n }\r\n })\r\n});\r\n","import { computed, inject, InjectionToken, linkedSignal, LOCALE_ID, Provider, signal, untracked } from '@angular/core';\r\n\r\nimport { L10N_ENGLISH_LANGUAGE } from './languages/en';\r\nimport { L10N_RUSSIAN_LANGUAGE } from './languages/ru';\r\n\r\nimport { Language } from './lang';\r\n\r\n\r\n/** @experimentalApi */\r\nexport const L10N_SERVICE = new InjectionToken<LocalizationService>(\r\n ngDevMode ? 'L10N_SERVICE' : ''\r\n);\r\n\r\n/** @experimentalApi */\r\nexport const L10N_LANGUAGE = new InjectionToken<Language[]>(\r\n ngDevMode ? 'L10N_LANGUAGE' : ''\r\n);\r\n\r\n\r\n/** @experimentalApi */\r\nexport class LocalizationService {\r\n readonly languages = inject(L10N_LANGUAGE);\r\n\r\n readonly lcid = signal('en-US');\r\n readonly lang = linkedSignal({\r\n source: () => this.lcid(),\r\n computation: (lcid) => {\r\n return this.languages.find(x => x.id === lcid) ?? L10N_ENGLISH_LANGUAGE;\r\n }\r\n });\r\n\r\n constructor(lcid: string) {\r\n this.lcid.set(lcid);\r\n }\r\n\r\n readonly rtl = computed(() => this.lang().rtl);\r\n readonly messages = computed(() => this.lang().messages);\r\n\r\n tr(path: string): string {\r\n const messages = untracked(this.messages);\r\n\r\n return messages[path];\r\n }\r\n}\r\n\r\n\r\n/** @experimentalApi */\r\nexport function provideLocalization(): Provider {\r\n return [\r\n { provide: L10N_LANGUAGE, useValue: L10N_ENGLISH_LANGUAGE, multi: true },\r\n { provide: L10N_LANGUAGE, useValue: L10N_RUSSIAN_LANGUAGE, multi: true },\r\n { provide: L10N_SERVICE, useFactory: () => new LocalizationService(inject(LOCALE_ID)) }\r\n ];\r\n}\r\n","import { inject, Pipe, PipeTransform } from '@angular/core';\r\nimport { L10N_SERVICE } from './l10n';\r\n\r\n\r\n@Pipe({ name: 'l10n' })\r\nexport class LocalizationPipe implements PipeTransform {\r\n readonly l10n = inject(L10N_SERVICE);\r\n\r\n transform(path: string): string {\r\n return this.l10n.tr(path);\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -35,9 +35,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
|
|
|
35
35
|
}, template: "<ng-content />\r\n" }]
|
|
36
36
|
}], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: true }] }], setsize: [{ type: i0.Input, args: [{ isSignal: true, alias: "setsize", required: false }] }], posinset: [{ type: i0.Input, args: [{ isSignal: true, alias: "posinset", required: false }] }], selected: [{ type: i0.Input, args: [{ isSignal: true, alias: "selected", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], checkbox: [{ type: i0.Input, args: [{ isSignal: true, alias: "checkbox", required: false }] }] } });
|
|
37
37
|
|
|
38
|
+
const ListBoxImports = [
|
|
39
|
+
ListBoxComponent,
|
|
40
|
+
OptionComponent
|
|
41
|
+
];
|
|
42
|
+
|
|
38
43
|
/**
|
|
39
44
|
* Generated bundle index. Do not edit.
|
|
40
45
|
*/
|
|
41
46
|
|
|
42
|
-
export { ListBoxComponent, OptionComponent };
|
|
47
|
+
export { ListBoxComponent, ListBoxImports, OptionComponent };
|
|
43
48
|
//# sourceMappingURL=latitude-ui-widgets-listbox.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"latitude-ui-widgets-listbox.mjs","sources":["../../../../packages/widgets/listbox/lib/listbox.
|
|
1
|
+
{"version":3,"file":"latitude-ui-widgets-listbox.mjs","sources":["../../../../packages/widgets/listbox/lib/listbox.ts","../../../../packages/widgets/listbox/lib/listbox.html","../../../../packages/widgets/listbox/lib/option.ts","../../../../packages/widgets/listbox/lib/option.html","../../../../packages/widgets/listbox/public-api.ts","../../../../packages/widgets/listbox/latitude-ui-widgets-listbox.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\r\n\r\n\r\n@Component({\r\n exportAs: 'latListBox',\r\n selector: 'lat-listbox',\r\n templateUrl: './listbox.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n role: 'presentation',\r\n },\r\n})\r\nexport class ListBoxComponent {\r\n}\r\n","<div role=\"listbox\">\r\n <ng-content select=\"lat-option,lat-listbox-option\" />\r\n</div>\r\n","import {\r\n booleanAttribute,\r\n ChangeDetectionStrategy,\r\n Component,\r\n input,\r\n numberAttribute,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\n\r\n@Component({\r\n exportAs: 'latOption',\r\n selector: 'lat-option, lat-listbox-option',\r\n templateUrl: './option.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n role: 'option',\r\n '[attr.title]': 'label()',\r\n '[attr.aria-setsize]': 'setsize()',\r\n '[attr.aria-posinset]': 'posinset()',\r\n '[attr.aria-disabled]': 'disabled()',\r\n '[attr.aria-selected]': 'selected()',\r\n },\r\n})\r\nexport class OptionComponent<T> {\r\n readonly label = input<string>();\r\n readonly value = input.required<T>();\r\n\r\n readonly setsize = input<number, unknown>(undefined, { transform: numberAttribute });\r\n readonly posinset = input<number, unknown>(undefined, { transform: numberAttribute });\r\n readonly selected = input<boolean, unknown>(undefined, { transform: booleanAttribute });\r\n readonly disabled = input<boolean, unknown>(undefined, { transform: booleanAttribute });\r\n readonly checkbox = input<boolean, unknown>(undefined, { transform: booleanAttribute });\r\n}\r\n","<ng-content />\r\n","import { ListBoxComponent } from './lib/listbox';\r\nimport { OptionComponent } from './lib/option';\r\n\r\nexport * from './lib/listbox';\r\nexport * from './lib/option';\r\n\r\nexport const ListBoxImports = [\r\n ListBoxComponent,\r\n OptionComponent\r\n] as const;\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAaa,gBAAgB,CAAA;uGAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAhB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,mJCb7B,mGAGA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FDUa,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAV5B,SAAS;+BACE,YAAY,EAAA,QAAA,EACZ,aAAa,EAAA,aAAA,EAER,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,IAAA,EACzC;AACJ,wBAAA,IAAI,EAAE,cAAc;AACrB,qBAAA,EAAA,QAAA,EAAA,mGAAA,EAAA;;;MEaU,eAAe,CAAA;IACjB,KAAK,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAU;AACvB,IAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,gDAAK;IAE3B,OAAO,GAAG,KAAK,CAAkB,SAAS,oDAAI,SAAS,EAAE,eAAe,EAAA,CAAG;IAC3E,QAAQ,GAAG,KAAK,CAAkB,SAAS,qDAAI,SAAS,EAAE,eAAe,EAAA,CAAG;IAC5E,QAAQ,GAAG,KAAK,CAAmB,SAAS,qDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IAC9E,QAAQ,GAAG,KAAK,CAAmB,SAAS,qDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IAC9E,QAAQ,GAAG,KAAK,CAAmB,SAAS,qDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;uGAR5E,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,mtCCxB5B,oBACA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FDuBa,eAAe,EAAA,UAAA,EAAA,CAAA;kBAf3B,SAAS;+BACE,WAAW,EAAA,QAAA,EACX,gCAAgC,EAAA,aAAA,EAE3B,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,IAAA,EACzC;AACJ,wBAAA,IAAI,EAAE,QAAQ;AACd,wBAAA,cAAc,EAAE,SAAS;AACzB,wBAAA,qBAAqB,EAAE,WAAW;AAClC,wBAAA,sBAAsB,EAAE,YAAY;AACpC,wBAAA,sBAAsB,EAAE,YAAY;AACpC,wBAAA,sBAAsB,EAAE,YAAY;AACrC,qBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA;;;AEhBI,MAAM,cAAc,GAAG;IAC5B,gBAAgB;IAChB;;;ACRF;;AAEG;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { input, forwardRef, ChangeDetectionStrategy, ViewEncapsulation, Component } from '@angular/core';
|
|
3
|
-
import {
|
|
3
|
+
import { FormControlComponent } from '@latitude-ui/widgets/core';
|
|
4
4
|
import { ButtonComponent } from '@latitude-ui/widgets/button';
|
|
5
5
|
import { IconComponent } from '@latitude-ui/widgets/icons';
|
|
6
6
|
|
|
@@ -8,12 +8,12 @@ const DEFAULT_POPOVER = () => {
|
|
|
8
8
|
throw new Error('[lat-lookup]: PopoverOverlay() is not implemented');
|
|
9
9
|
};
|
|
10
10
|
const DEFAULT_STRINGIFY = (value) => value.toString();
|
|
11
|
-
class LookupComponent extends
|
|
11
|
+
class LookupComponent extends FormControlComponent {
|
|
12
12
|
popover = input(DEFAULT_POPOVER, ...(ngDevMode ? [{ debugName: "popover" }] : []));
|
|
13
13
|
stringify = input(DEFAULT_STRINGIFY, ...(ngDevMode ? [{ debugName: "stringify" }] : []));
|
|
14
14
|
onSelect() {
|
|
15
15
|
const taskFn = this.popover();
|
|
16
|
-
taskFn().subscribe((value) => this.
|
|
16
|
+
taskFn().subscribe((value) => this.updateValue(value));
|
|
17
17
|
}
|
|
18
18
|
/** @internal */
|
|
19
19
|
valueStringify(value) {
|
|
@@ -23,27 +23,31 @@ class LookupComponent extends HTMLFormControl {
|
|
|
23
23
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: LookupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
24
24
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.3", type: LookupComponent, isStandalone: true, selector: "lat-lookup", inputs: { popover: { classPropertyName: "popover", publicName: "popover", isSignal: true, isRequired: false, transformFunction: null }, stringify: { classPropertyName: "stringify", publicName: "stringify", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "combobox" }, listeners: { "click": "onSelect()" } }, providers: [
|
|
25
25
|
{
|
|
26
|
-
provide:
|
|
26
|
+
provide: FormControlComponent,
|
|
27
27
|
useExisting: forwardRef(() => LookupComponent),
|
|
28
28
|
},
|
|
29
|
-
], usesInheritance: true, ngImport: i0, template: "<div class=\"lat-lookup-values\">\r\n @if(value()) {\r\n <span class=\"lat-lookup-value\">{{ valueAsString() }}</span>\r\n } @else if(placeholder()) {\r\n <span class=\"lat-lookup-palceholder\">{{ placeholder() }}</span>\r\n }\r\n</div>\r\n\r\n@if (!readonly()) {\r\n <div class=\"lat-lookup-controls\">\r\n <lat-button tabindex=\"-1\" variant=\"inherit\" [size]=\"size()\" [disabled]=\"disabled()\">\r\n <lat-icon name=\"link\"/>\r\n </lat-button>\r\n </div>\r\n}\r\n", dependencies: [{ kind: "component", type: ButtonComponent, selector: "lat-button", inputs: ["role", "size", "variant", "disabled", "tabindex"], exportAs: ["latButton"] }, { kind: "component", type: IconComponent, selector: "lat-icon", inputs: ["url", "name"], exportAs: ["latIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
29
|
+
], usesInheritance: true, ngImport: i0, template: "<div class=\"lat-lookup-values\">\r\n @if(value()) {\r\n <span class=\"lat-lookup-value\">{{ valueAsString() }}</span>\r\n } @else if(placeholder()) {\r\n <span class=\"lat-lookup-palceholder\">{{ placeholder() }}</span>\r\n }\r\n</div>\r\n\r\n@if (!readonly()) {\r\n <div class=\"lat-lookup-controls\">\r\n @if(value()) {\r\n <lat-button tabindex=\"-1\" variant=\"inherit\" [size]=\"size()\" [disabled]=\"disabled()\" (click)=\"writeValue(null)\">\r\n <lat-icon name=\"x\"/>\r\n </lat-button>\r\n }\r\n <lat-button tabindex=\"-1\" variant=\"inherit\" [size]=\"size()\" [disabled]=\"disabled()\">\r\n <lat-icon name=\"link\"/>\r\n </lat-button>\r\n </div>\r\n}\r\n", dependencies: [{ kind: "component", type: ButtonComponent, selector: "lat-button", inputs: ["role", "size", "variant", "disabled", "tabindex"], exportAs: ["latButton"] }, { kind: "component", type: IconComponent, selector: "lat-icon", inputs: ["role", "url", "name"], exportAs: ["latIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
30
30
|
}
|
|
31
31
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: LookupComponent, decorators: [{
|
|
32
32
|
type: Component,
|
|
33
33
|
args: [{ imports: [ButtonComponent, IconComponent], selector: 'lat-lookup', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
34
34
|
{
|
|
35
|
-
provide:
|
|
35
|
+
provide: FormControlComponent,
|
|
36
36
|
useExisting: forwardRef(() => LookupComponent),
|
|
37
37
|
},
|
|
38
38
|
], host: {
|
|
39
39
|
role: 'combobox',
|
|
40
40
|
'(click)': "onSelect()"
|
|
41
|
-
}, template: "<div class=\"lat-lookup-values\">\r\n @if(value()) {\r\n <span class=\"lat-lookup-value\">{{ valueAsString() }}</span>\r\n } @else if(placeholder()) {\r\n <span class=\"lat-lookup-palceholder\">{{ placeholder() }}</span>\r\n }\r\n</div>\r\n\r\n@if (!readonly()) {\r\n <div class=\"lat-lookup-controls\">\r\n <lat-button tabindex=\"-1\" variant=\"inherit\" [size]=\"size()\" [disabled]=\"disabled()\">\r\n <lat-icon name=\"link\"/>\r\n </lat-button>\r\n </div>\r\n}\r\n" }]
|
|
41
|
+
}, template: "<div class=\"lat-lookup-values\">\r\n @if(value()) {\r\n <span class=\"lat-lookup-value\">{{ valueAsString() }}</span>\r\n } @else if(placeholder()) {\r\n <span class=\"lat-lookup-palceholder\">{{ placeholder() }}</span>\r\n }\r\n</div>\r\n\r\n@if (!readonly()) {\r\n <div class=\"lat-lookup-controls\">\r\n @if(value()) {\r\n <lat-button tabindex=\"-1\" variant=\"inherit\" [size]=\"size()\" [disabled]=\"disabled()\" (click)=\"writeValue(null)\">\r\n <lat-icon name=\"x\"/>\r\n </lat-button>\r\n }\r\n <lat-button tabindex=\"-1\" variant=\"inherit\" [size]=\"size()\" [disabled]=\"disabled()\">\r\n <lat-icon name=\"link\"/>\r\n </lat-button>\r\n </div>\r\n}\r\n" }]
|
|
42
42
|
}], propDecorators: { popover: [{ type: i0.Input, args: [{ isSignal: true, alias: "popover", required: false }] }], stringify: [{ type: i0.Input, args: [{ isSignal: true, alias: "stringify", required: false }] }] } });
|
|
43
43
|
|
|
44
|
+
const LookupImports = [
|
|
45
|
+
LookupComponent
|
|
46
|
+
];
|
|
47
|
+
|
|
44
48
|
/**
|
|
45
49
|
* Generated bundle index. Do not edit.
|
|
46
50
|
*/
|
|
47
51
|
|
|
48
|
-
export { DEFAULT_POPOVER, DEFAULT_STRINGIFY, LookupComponent };
|
|
52
|
+
export { DEFAULT_POPOVER, DEFAULT_STRINGIFY, LookupComponent, LookupImports };
|
|
49
53
|
//# sourceMappingURL=latitude-ui-widgets-lookup.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"latitude-ui-widgets-lookup.mjs","sources":["../../../../packages/widgets/lookup/lib/lookup.
|
|
1
|
+
{"version":3,"file":"latitude-ui-widgets-lookup.mjs","sources":["../../../../packages/widgets/lookup/lib/lookup.ts","../../../../packages/widgets/lookup/lib/lookup.html","../../../../packages/widgets/lookup/public-api.ts","../../../../packages/widgets/lookup/latitude-ui-widgets-lookup.ts"],"sourcesContent":["import { Observable } from 'rxjs';\r\n\r\nimport { ChangeDetectionStrategy, Component, forwardRef, input, ViewEncapsulation } from '@angular/core';\r\n\r\nimport { FormControlComponent } from '@latitude-ui/widgets/core';\r\nimport { ButtonComponent } from '@latitude-ui/widgets/button';\r\nimport { IconComponent } from '@latitude-ui/widgets/icons';\r\n\r\nexport type ValueStringify = (value: any) => string;\r\nexport type PopoverOverlay = () => Observable<any | null>;\r\n\r\nexport const DEFAULT_POPOVER: PopoverOverlay = () => {\r\n throw new Error('[lat-lookup]: PopoverOverlay() is not implemented');\r\n};\r\n\r\nexport const DEFAULT_STRINGIFY: ValueStringify = (value) => value.toString();\r\n\r\n@Component({\r\n imports: [ButtonComponent, IconComponent],\r\n selector: 'lat-lookup',\r\n templateUrl: './lookup.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: FormControlComponent,\r\n useExisting: forwardRef(() => LookupComponent),\r\n },\r\n ],\r\n host: {\r\n role: 'combobox',\r\n '(click)': \"onSelect()\"\r\n },\r\n})\r\nexport class LookupComponent<T = any> extends FormControlComponent<T> {\r\n readonly popover = input<PopoverOverlay>(DEFAULT_POPOVER);\r\n readonly stringify = input<ValueStringify>(DEFAULT_STRINGIFY);\r\n\r\n onSelect() {\r\n const taskFn = this.popover();\r\n\r\n taskFn().subscribe((value) => this.updateValue(value));\r\n }\r\n\r\n /** @internal */\r\n override valueStringify(value: unknown): string {\r\n const stringify = this.stringify();\r\n\r\n return value !== null && value !== undefined ? stringify(value) : '';\r\n }\r\n\r\n}\r\n","<div class=\"lat-lookup-values\">\r\n @if(value()) {\r\n <span class=\"lat-lookup-value\">{{ valueAsString() }}</span>\r\n } @else if(placeholder()) {\r\n <span class=\"lat-lookup-palceholder\">{{ placeholder() }}</span>\r\n }\r\n</div>\r\n\r\n@if (!readonly()) {\r\n <div class=\"lat-lookup-controls\">\r\n @if(value()) {\r\n <lat-button tabindex=\"-1\" variant=\"inherit\" [size]=\"size()\" [disabled]=\"disabled()\" (click)=\"writeValue(null)\">\r\n <lat-icon name=\"x\"/>\r\n </lat-button>\r\n }\r\n <lat-button tabindex=\"-1\" variant=\"inherit\" [size]=\"size()\" [disabled]=\"disabled()\">\r\n <lat-icon name=\"link\"/>\r\n </lat-button>\r\n </div>\r\n}\r\n","import { LookupComponent } from './lib/lookup';\r\n\r\nexport * from './lib/lookup';\r\n\r\nexport const LookupImports = [\r\n LookupComponent\r\n] as const;\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -50,11 +50,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
|
|
|
50
50
|
}, template: "<ng-content />\r\n" }]
|
|
51
51
|
}] });
|
|
52
52
|
|
|
53
|
-
class
|
|
54
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type:
|
|
55
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.3", type:
|
|
53
|
+
class MenuTriggerComponent {
|
|
54
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: MenuTriggerComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
55
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.3", type: MenuTriggerComponent, isStandalone: true, selector: "[latMenuTrigger]", exportAs: ["latMenuTrigger"], hostDirectives: [{ directive: i1.MenuTrigger, inputs: ["disabled", "disabled"] }], ngImport: i0 });
|
|
56
56
|
}
|
|
57
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type:
|
|
57
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: MenuTriggerComponent, decorators: [{
|
|
58
58
|
type: Directive,
|
|
59
59
|
args: [{
|
|
60
60
|
exportAs: 'latMenuTrigger',
|
|
@@ -69,5 +69,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
|
|
|
69
69
|
* Generated bundle index. Do not edit.
|
|
70
70
|
*/
|
|
71
71
|
|
|
72
|
-
export { MenuComponent, MenuGroupComponent, MenuItemComponent, MenuLabelComponent,
|
|
72
|
+
export { MenuComponent, MenuGroupComponent, MenuItemComponent, MenuLabelComponent, MenuTriggerComponent };
|
|
73
73
|
//# sourceMappingURL=latitude-ui-widgets-menu.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"latitude-ui-widgets-menu.mjs","sources":["../../../../packages/widgets/menu/lib/menu.
|
|
1
|
+
{"version":3,"file":"latitude-ui-widgets-menu.mjs","sources":["../../../../packages/widgets/menu/lib/menu.ts","../../../../packages/widgets/menu/lib/menu.html","../../../../packages/widgets/menu/lib/menu-group.ts","../../../../packages/widgets/menu/lib/menu-group.html","../../../../packages/widgets/menu/lib/menu-item.ts","../../../../packages/widgets/menu/lib/menu-item.html","../../../../packages/widgets/menu/lib/menu-label.ts","../../../../packages/widgets/menu/lib/menu-label.html","../../../../packages/widgets/menu/lib/menu-trigger.ts","../../../../packages/widgets/menu/latitude-ui-widgets-menu.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\r\nimport { Menu as CdkMenu, MenuContent as CdkMenuContent } from '@angular/aria/menu';\r\n\r\n\r\n@Component({\r\n exportAs: 'latMenu',\r\n selector: 'lat-menu',\r\n templateUrl: './menu.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [CdkMenuContent],\r\n hostDirectives: [\r\n { directive: CdkMenu, inputs: ['id', 'disabled', 'typeaheadDelay'] }\r\n ]\r\n})\r\nexport class MenuComponent {\r\n}\r\n","<ng-template ngMenuContent>\r\n <ng-content select=\"lat-menuitem,lat-menugroup,lat-menulabel\"/>\r\n</ng-template>\r\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\r\n\r\n\r\n@Component({\r\n exportAs: 'latMenuGroup',\r\n selector: 'lat-menugroup',\r\n templateUrl: './menu-group.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n role: 'group'\r\n }\r\n})\r\nexport class MenuGroupComponent {\r\n}\r\n","<ng-content select=\"lat-menuitem,lat-menugroup\"/>\r\n","import { ChangeDetectionStrategy, Component, input, ViewEncapsulation } from '@angular/core';\r\nimport { MenuItem as CdkMenuItem } from '@angular/aria/menu';\r\n\r\n\r\n@Component({\r\n exportAs: 'latMenuItem',\r\n selector: 'lat-menuitem',\r\n templateUrl: './menu-item.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n hostDirectives: [\r\n { directive: CdkMenuItem, inputs: ['id', 'disabled', 'value'] },\r\n ],\r\n host: {\r\n '[attr.role]': 'role()'\r\n }\r\n})\r\nexport class MenuItemComponent {\r\n readonly role = input<string>('menuitem');\r\n}\r\n","@if (role() === 'menuitem') {\r\n <ng-content />\r\n}\r\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\r\n\r\n\r\n@Component({\r\n exportAs: 'latMenuLabel',\r\n selector: 'lat-menulabel',\r\n templateUrl: './menu-label.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n role: 'presentation'\r\n }\r\n})\r\nexport class MenuLabelComponent {\r\n}\r\n","<ng-content />\r\n","import { Directive } from '@angular/core';\r\nimport { MenuTrigger as CdkMenuTrigger } from '@angular/aria/menu';\r\n\r\n\r\n@Directive({\r\n exportAs: 'latMenuTrigger',\r\n selector: '[latMenuTrigger]',\r\n hostDirectives: [\r\n { directive: CdkMenuTrigger, inputs: ['disabled'] }\r\n ],\r\n})\r\nexport class MenuTriggerComponent {\r\n\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["CdkMenuContent","CdkMenu","CdkMenuItem","CdkMenuTrigger"],"mappings":"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"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { input, numberAttribute, model, computed, ChangeDetectionStrategy, Component, inject, untracked, ElementRef, signal } from '@angular/core';
|
|
3
|
+
import * as i1 from '@latitude-ui/widgets/button';
|
|
4
|
+
import { ButtonImports } from '@latitude-ui/widgets/button';
|
|
5
|
+
import * as i2 from '@latitude-ui/widgets/icons';
|
|
6
|
+
import { IconImports } from '@latitude-ui/widgets/icons';
|
|
7
|
+
import { LocalizationPipe } from '@latitude-ui/widgets/l10n';
|
|
8
|
+
import { CdkOverlayOrigin, CdkConnectedOverlay } from '@angular/cdk/overlay';
|
|
9
|
+
|
|
10
|
+
class PaginateComponent {
|
|
11
|
+
pageSizes = input([], ...(ngDevMode ? [{ debugName: "pageSizes" }] : []));
|
|
12
|
+
totalCount = input(undefined, { ...(ngDevMode ? { debugName: "totalCount" } : {}), transform: numberAttribute });
|
|
13
|
+
pageSize = model(...(ngDevMode ? [undefined, { debugName: "pageSize" }] : []));
|
|
14
|
+
pageIndex = model(0, ...(ngDevMode ? [{ debugName: "pageIndex" }] : []));
|
|
15
|
+
pageCount = computed(() => {
|
|
16
|
+
const pageSize = this.pageSize();
|
|
17
|
+
const totalCount = this.totalCount();
|
|
18
|
+
if (totalCount !== undefined && pageSize !== undefined) {
|
|
19
|
+
return totalCount < pageSize ? 1 : Math.ceil(totalCount / pageSize);
|
|
20
|
+
}
|
|
21
|
+
return 1;
|
|
22
|
+
}, ...(ngDevMode ? [{ debugName: "pageCount" }] : []));
|
|
23
|
+
skipUntil = computed(() => {
|
|
24
|
+
const pageSize = this.pageSize();
|
|
25
|
+
const pageIndex = this.pageIndex();
|
|
26
|
+
if (pageSize !== undefined && pageIndex !== undefined) {
|
|
27
|
+
return pageIndex === 0 ? 1 : pageSize * pageIndex;
|
|
28
|
+
}
|
|
29
|
+
return 1;
|
|
30
|
+
}, ...(ngDevMode ? [{ debugName: "skipUntil" }] : []));
|
|
31
|
+
takeUntil = computed(() => {
|
|
32
|
+
const length = this.totalCount();
|
|
33
|
+
const pageSize = this.pageSize();
|
|
34
|
+
const skipUntil = this.skipUntil();
|
|
35
|
+
if (length && pageSize !== undefined) {
|
|
36
|
+
const takeUntil = skipUntil + pageSize;
|
|
37
|
+
return takeUntil > length ? length : takeUntil - 1;
|
|
38
|
+
}
|
|
39
|
+
return length;
|
|
40
|
+
}, ...(ngDevMode ? [{ debugName: "takeUntil" }] : []));
|
|
41
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: PaginateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
42
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.3", type: PaginateComponent, isStandalone: true, selector: "lat-paginate", inputs: { pageSizes: { classPropertyName: "pageSizes", publicName: "pageSizes", isSignal: true, isRequired: false, transformFunction: null }, totalCount: { classPropertyName: "totalCount", publicName: "totalCount", isSignal: true, isRequired: false, transformFunction: null }, pageSize: { classPropertyName: "pageSize", publicName: "pageSize", isSignal: true, isRequired: false, transformFunction: null }, pageIndex: { classPropertyName: "pageIndex", publicName: "pageIndex", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { pageSize: "pageSizeChange", pageIndex: "pageIndexChange" }, exportAs: ["latPaginate"], ngImport: i0, template: "@if (totalCount()) {\r\n <ng-content select=\"lat-paginate-rowsinfo\"/>\r\n}\r\n\r\n<ng-content select=\"lat-paginate-buttons, lat-paginate-pageinfo\"/>\r\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
43
|
+
}
|
|
44
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: PaginateComponent, decorators: [{
|
|
45
|
+
type: Component,
|
|
46
|
+
args: [{ exportAs: 'latPaginate', selector: 'lat-paginate', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (totalCount()) {\r\n <ng-content select=\"lat-paginate-rowsinfo\"/>\r\n}\r\n\r\n<ng-content select=\"lat-paginate-buttons, lat-paginate-pageinfo\"/>\r\n" }]
|
|
47
|
+
}], propDecorators: { pageSizes: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageSizes", required: false }] }], totalCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "totalCount", required: false }] }], pageSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageSize", required: false }] }, { type: i0.Output, args: ["pageSizeChange"] }], pageIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageIndex", required: false }] }, { type: i0.Output, args: ["pageIndexChange"] }] } });
|
|
48
|
+
|
|
49
|
+
class PaginateButtonsComponent {
|
|
50
|
+
paginate = inject(PaginateComponent, { host: true });
|
|
51
|
+
onPageIndexChanged(delta) {
|
|
52
|
+
this.paginate.pageIndex.update((nowvalue) => {
|
|
53
|
+
const newvalue = nowvalue + delta;
|
|
54
|
+
const maxvalue = untracked(this.paginate.pageCount);
|
|
55
|
+
return newvalue < 0 || newvalue > maxvalue - 1 ? nowvalue : newvalue;
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: PaginateButtonsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
59
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.3", type: PaginateButtonsComponent, isStandalone: true, selector: "lat-paginate-buttons", exportAs: ["latPaginateButtons"], ngImport: i0, template: "<lat-button [variant]=\"null\" (click)=\"onPageIndexChanged(-1)\">\r\n <lat-icon name=\"chevron-left\" />\r\n</lat-button>\r\n\r\n<ng-content select=\"lat-paginate-pageinfo\" />\r\n\r\n<lat-button [variant]=\"null\" (click)=\"onPageIndexChanged(+1)\">\r\n <lat-icon name=\"chevron-right\" />\r\n</lat-button>\r\n", dependencies: [{ kind: "component", type: i1.ButtonComponent, selector: "lat-button", inputs: ["role", "size", "variant", "disabled", "tabindex"], exportAs: ["latButton"] }, { kind: "component", type: i2.IconComponent, selector: "lat-icon", inputs: ["role", "url", "name"], exportAs: ["latIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
60
|
+
}
|
|
61
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: PaginateButtonsComponent, decorators: [{
|
|
62
|
+
type: Component,
|
|
63
|
+
args: [{ imports: [ButtonImports, IconImports], exportAs: 'latPaginateButtons', selector: 'lat-paginate-buttons', changeDetection: ChangeDetectionStrategy.OnPush, template: "<lat-button [variant]=\"null\" (click)=\"onPageIndexChanged(-1)\">\r\n <lat-icon name=\"chevron-left\" />\r\n</lat-button>\r\n\r\n<ng-content select=\"lat-paginate-pageinfo\" />\r\n\r\n<lat-button [variant]=\"null\" (click)=\"onPageIndexChanged(+1)\">\r\n <lat-icon name=\"chevron-right\" />\r\n</lat-button>\r\n" }]
|
|
64
|
+
}] });
|
|
65
|
+
|
|
66
|
+
class PaginatePageInfoComponent {
|
|
67
|
+
paginate = inject(PaginateComponent);
|
|
68
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: PaginatePageInfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
69
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.3", type: PaginatePageInfoComponent, isStandalone: true, selector: "lat-paginate-pageinfo", exportAs: ["latPaginatePageInfo"], ngImport: i0, template: "<span>{{ paginate.pageIndex() + 1 }}</span>\r\n<span>{{ 'paginate.of' | l10n }}</span>\r\n<span>{{ paginate.pageCount() }}</span>\r\n<span>{{ 'paginate.pages' | l10n }}</span>\r\n", dependencies: [{ kind: "pipe", type: LocalizationPipe, name: "l10n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
70
|
+
}
|
|
71
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: PaginatePageInfoComponent, decorators: [{
|
|
72
|
+
type: Component,
|
|
73
|
+
args: [{ imports: [LocalizationPipe], exportAs: 'latPaginatePageInfo', selector: 'lat-paginate-pageinfo', changeDetection: ChangeDetectionStrategy.OnPush, template: "<span>{{ paginate.pageIndex() + 1 }}</span>\r\n<span>{{ 'paginate.of' | l10n }}</span>\r\n<span>{{ paginate.pageCount() }}</span>\r\n<span>{{ 'paginate.pages' | l10n }}</span>\r\n" }]
|
|
74
|
+
}] });
|
|
75
|
+
|
|
76
|
+
class PaginateRowsInfoComponent {
|
|
77
|
+
el = inject((ElementRef));
|
|
78
|
+
paginate = inject(PaginateComponent);
|
|
79
|
+
dropdown = signal(false, ...(ngDevMode ? [{ debugName: "dropdown" }] : []));
|
|
80
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: PaginateRowsInfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
81
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.3", type: PaginateRowsInfoComponent, isStandalone: true, selector: "lat-paginate-rowsinfo", exportAs: ["latPaginateRowsInfo"], ngImport: i0, template: "@if (paginate.pageSizes().length) {\r\n <div\r\n cdkOverlayOrigin\r\n #cdkOverlayOrigin=\"cdkOverlayOrigin\"\r\n tabindex=\"0\"\r\n (keyup)=\"dropdown.set(true)\"\r\n (click)=\"dropdown.set(true)\"\r\n >\r\n <span>{{ paginate.skipUntil() }}</span>\r\n <span>-</span>\r\n <span>{{ paginate.takeUntil() }}</span>\r\n </div>\r\n <ng-template\r\n cdkConnectedOverlay\r\n cdkConnectedOverlayPanelClass=\"lat-dropdown\"\r\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\r\n [cdkConnectedOverlayOpen]=\"dropdown()\"\r\n [cdkConnectedOverlayOrigin]=\"cdkOverlayOrigin\"\r\n [cdkConnectedOverlayMinWidth]=\"el.nativeElement.clientWidth\"\r\n [cdkConnectedOverlayHasBackdrop]=\"true\"\r\n (backdropClick)=\"dropdown.set(false)\"\r\n >\r\n <ul>\r\n @for (value of paginate.pageSizes(); track value) {\r\n <li\r\n tabindex=\"0\"\r\n (keyup)=\"void 0\"\r\n (click)=\"paginate.pageSize.set(value); dropdown.set(false)\"\r\n >\r\n {{ value }}\r\n </li>\r\n }\r\n </ul>\r\n </ng-template>\r\n} @else {\r\n <div>\r\n <span>{{ paginate.skipUntil() }}</span>\r\n <span>-</span>\r\n <span>{{ paginate.takeUntil() }}</span>\r\n </div>\r\n}\r\n<span>{{ 'paginate.of' | l10n }}</span>\r\n<span>{{ paginate.totalCount() }}</span>\r\n<span>{{ 'paginate.rows' | l10n }}</span>\r\n", dependencies: [{ kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation", "cdkConnectedOverlayUsePopover", "cdkConnectedOverlayMatchWidth", "cdkConnectedOverlay"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "pipe", type: LocalizationPipe, name: "l10n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
82
|
+
}
|
|
83
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: PaginateRowsInfoComponent, decorators: [{
|
|
84
|
+
type: Component,
|
|
85
|
+
args: [{ imports: [CdkOverlayOrigin, CdkConnectedOverlay, LocalizationPipe], exportAs: 'latPaginateRowsInfo', selector: 'lat-paginate-rowsinfo', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (paginate.pageSizes().length) {\r\n <div\r\n cdkOverlayOrigin\r\n #cdkOverlayOrigin=\"cdkOverlayOrigin\"\r\n tabindex=\"0\"\r\n (keyup)=\"dropdown.set(true)\"\r\n (click)=\"dropdown.set(true)\"\r\n >\r\n <span>{{ paginate.skipUntil() }}</span>\r\n <span>-</span>\r\n <span>{{ paginate.takeUntil() }}</span>\r\n </div>\r\n <ng-template\r\n cdkConnectedOverlay\r\n cdkConnectedOverlayPanelClass=\"lat-dropdown\"\r\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\r\n [cdkConnectedOverlayOpen]=\"dropdown()\"\r\n [cdkConnectedOverlayOrigin]=\"cdkOverlayOrigin\"\r\n [cdkConnectedOverlayMinWidth]=\"el.nativeElement.clientWidth\"\r\n [cdkConnectedOverlayHasBackdrop]=\"true\"\r\n (backdropClick)=\"dropdown.set(false)\"\r\n >\r\n <ul>\r\n @for (value of paginate.pageSizes(); track value) {\r\n <li\r\n tabindex=\"0\"\r\n (keyup)=\"void 0\"\r\n (click)=\"paginate.pageSize.set(value); dropdown.set(false)\"\r\n >\r\n {{ value }}\r\n </li>\r\n }\r\n </ul>\r\n </ng-template>\r\n} @else {\r\n <div>\r\n <span>{{ paginate.skipUntil() }}</span>\r\n <span>-</span>\r\n <span>{{ paginate.takeUntil() }}</span>\r\n </div>\r\n}\r\n<span>{{ 'paginate.of' | l10n }}</span>\r\n<span>{{ paginate.totalCount() }}</span>\r\n<span>{{ 'paginate.rows' | l10n }}</span>\r\n" }]
|
|
86
|
+
}] });
|
|
87
|
+
|
|
88
|
+
const PaginateImports = [
|
|
89
|
+
PaginateComponent,
|
|
90
|
+
PaginateButtonsComponent,
|
|
91
|
+
PaginatePageInfoComponent,
|
|
92
|
+
PaginateRowsInfoComponent
|
|
93
|
+
];
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Generated bundle index. Do not edit.
|
|
97
|
+
*/
|
|
98
|
+
|
|
99
|
+
export { PaginateButtonsComponent, PaginateComponent, PaginateImports, PaginatePageInfoComponent, PaginateRowsInfoComponent };
|
|
100
|
+
//# sourceMappingURL=latitude-ui-widgets-paginate.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"latitude-ui-widgets-paginate.mjs","sources":["../../../../packages/widgets/paginate/lib/paginate.ts","../../../../packages/widgets/paginate/lib/paginate.html","../../../../packages/widgets/paginate/lib/paginate-buttons.ts","../../../../packages/widgets/paginate/lib/paginate-buttons.html","../../../../packages/widgets/paginate/lib/paginate-pageinfo.ts","../../../../packages/widgets/paginate/lib/paginate-pageinfo.html","../../../../packages/widgets/paginate/lib/paginate-rowsinfo.ts","../../../../packages/widgets/paginate/lib/paginate-rowsinfo.html","../../../../packages/widgets/paginate/public-api.ts","../../../../packages/widgets/paginate/latitude-ui-widgets-paginate.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, input, model, numberAttribute } from '@angular/core';\r\n\r\n\r\n@Component({\r\n exportAs: 'latPaginate',\r\n selector: 'lat-paginate',\r\n templateUrl: './paginate.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class PaginateComponent {\r\n\r\n readonly pageSizes = input<number[]>([]);\r\n readonly totalCount = input<number, unknown>(undefined, { transform: numberAttribute });\r\n\r\n readonly pageSize = model<number>();\r\n readonly pageIndex = model<number>(0);\r\n\r\n readonly pageCount = computed(() => {\r\n const pageSize = this.pageSize();\r\n const totalCount = this.totalCount();\r\n\r\n if (totalCount !== undefined && pageSize !== undefined) {\r\n return totalCount < pageSize ? 1 : Math.ceil(totalCount / pageSize);\r\n }\r\n\r\n return 1;\r\n });\r\n\r\n readonly skipUntil = computed(() => {\r\n const pageSize = this.pageSize();\r\n const pageIndex = this.pageIndex();\r\n\r\n if (pageSize !== undefined && pageIndex !== undefined) {\r\n return pageIndex === 0 ? 1 : pageSize * pageIndex;\r\n }\r\n\r\n return 1;\r\n });\r\n\r\n readonly takeUntil = computed(() => {\r\n const length = this.totalCount();\r\n const pageSize = this.pageSize();\r\n const skipUntil = this.skipUntil();\r\n\r\n if (length && pageSize !== undefined) {\r\n const takeUntil = skipUntil + pageSize;\r\n\r\n return takeUntil > length ? length : takeUntil - 1;\r\n }\r\n\r\n return length;\r\n });\r\n\r\n\r\n}\r\n","@if (totalCount()) {\r\n <ng-content select=\"lat-paginate-rowsinfo\"/>\r\n}\r\n\r\n<ng-content select=\"lat-paginate-buttons, lat-paginate-pageinfo\"/>\r\n","import { ChangeDetectionStrategy, Component, inject, untracked } from '@angular/core';\r\n\r\nimport { ButtonImports } from '@latitude-ui/widgets/button';\r\nimport { IconImports } from '@latitude-ui/widgets/icons';\r\n\r\nimport { PaginateComponent } from './paginate';\r\n\r\n\r\n@Component({\r\n imports: [ButtonImports, IconImports],\r\n exportAs: 'latPaginateButtons',\r\n selector: 'lat-paginate-buttons',\r\n templateUrl: './paginate-buttons.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class PaginateButtonsComponent {\r\n readonly paginate = inject(PaginateComponent, { host: true });\r\n\r\n onPageIndexChanged(delta: number) {\r\n this.paginate.pageIndex.update((nowvalue) => {\r\n const newvalue = nowvalue + delta;\r\n const maxvalue = untracked(this.paginate.pageCount);\r\n\r\n return newvalue < 0 || newvalue > maxvalue - 1 ? nowvalue : newvalue;\r\n });\r\n }\r\n}\r\n","<lat-button [variant]=\"null\" (click)=\"onPageIndexChanged(-1)\">\r\n <lat-icon name=\"chevron-left\" />\r\n</lat-button>\r\n\r\n<ng-content select=\"lat-paginate-pageinfo\" />\r\n\r\n<lat-button [variant]=\"null\" (click)=\"onPageIndexChanged(+1)\">\r\n <lat-icon name=\"chevron-right\" />\r\n</lat-button>\r\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\r\nimport { LocalizationPipe } from '@latitude-ui/widgets/l10n';\r\n\r\nimport { PaginateComponent } from './paginate';\r\n\r\n\r\n@Component({\r\n imports: [LocalizationPipe],\r\n exportAs: 'latPaginatePageInfo',\r\n selector: 'lat-paginate-pageinfo',\r\n templateUrl: './paginate-pageinfo.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class PaginatePageInfoComponent {\r\n readonly paginate = inject(PaginateComponent);\r\n}\r\n","<span>{{ paginate.pageIndex() + 1 }}</span>\r\n<span>{{ 'paginate.of' | l10n }}</span>\r\n<span>{{ paginate.pageCount() }}</span>\r\n<span>{{ 'paginate.pages' | l10n }}</span>\r\n","import { ChangeDetectionStrategy, Component, ElementRef, inject, signal } from '@angular/core';\r\nimport { CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay';\r\n\r\nimport { LocalizationPipe } from '@latitude-ui/widgets/l10n';\r\n\r\nimport { PaginateComponent } from './paginate';\r\n\r\n\r\n@Component({\r\n imports: [CdkOverlayOrigin, CdkConnectedOverlay, LocalizationPipe],\r\n exportAs: 'latPaginateRowsInfo',\r\n selector: 'lat-paginate-rowsinfo',\r\n templateUrl: './paginate-rowsinfo.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class PaginateRowsInfoComponent {\r\n readonly el = inject(ElementRef<HTMLElement>);\r\n readonly paginate = inject(PaginateComponent);\r\n\r\n readonly dropdown = signal(false);\r\n}\r\n","@if (paginate.pageSizes().length) {\r\n <div\r\n cdkOverlayOrigin\r\n #cdkOverlayOrigin=\"cdkOverlayOrigin\"\r\n tabindex=\"0\"\r\n (keyup)=\"dropdown.set(true)\"\r\n (click)=\"dropdown.set(true)\"\r\n >\r\n <span>{{ paginate.skipUntil() }}</span>\r\n <span>-</span>\r\n <span>{{ paginate.takeUntil() }}</span>\r\n </div>\r\n <ng-template\r\n cdkConnectedOverlay\r\n cdkConnectedOverlayPanelClass=\"lat-dropdown\"\r\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\r\n [cdkConnectedOverlayOpen]=\"dropdown()\"\r\n [cdkConnectedOverlayOrigin]=\"cdkOverlayOrigin\"\r\n [cdkConnectedOverlayMinWidth]=\"el.nativeElement.clientWidth\"\r\n [cdkConnectedOverlayHasBackdrop]=\"true\"\r\n (backdropClick)=\"dropdown.set(false)\"\r\n >\r\n <ul>\r\n @for (value of paginate.pageSizes(); track value) {\r\n <li\r\n tabindex=\"0\"\r\n (keyup)=\"void 0\"\r\n (click)=\"paginate.pageSize.set(value); dropdown.set(false)\"\r\n >\r\n {{ value }}\r\n </li>\r\n }\r\n </ul>\r\n </ng-template>\r\n} @else {\r\n <div>\r\n <span>{{ paginate.skipUntil() }}</span>\r\n <span>-</span>\r\n <span>{{ paginate.takeUntil() }}</span>\r\n </div>\r\n}\r\n<span>{{ 'paginate.of' | l10n }}</span>\r\n<span>{{ paginate.totalCount() }}</span>\r\n<span>{{ 'paginate.rows' | l10n }}</span>\r\n","import { PaginateComponent } from './lib/paginate';\r\nimport { PaginateButtonsComponent } from './lib/paginate-buttons';\r\nimport { PaginatePageInfoComponent } from './lib/paginate-pageinfo';\r\nimport { PaginateRowsInfoComponent } from './lib/paginate-rowsinfo';\r\n\r\nexport * from './lib/paginate';\r\nexport * from './lib/paginate-buttons';\r\nexport * from './lib/paginate-pageinfo';\r\nexport * from './lib/paginate-rowsinfo';\r\n\r\nexport const PaginateImports = [\r\n PaginateComponent,\r\n PaginateButtonsComponent,\r\n PaginatePageInfoComponent,\r\n PaginateRowsInfoComponent\r\n] as const;\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { inject, ElementRef, Renderer2, HostListener, Directive } from '@angular/core';
|
|
3
3
|
|
|
4
|
-
class
|
|
4
|
+
class ScrollableComponent {
|
|
5
5
|
el = inject((ElementRef));
|
|
6
6
|
renderer = inject(Renderer2);
|
|
7
7
|
scrollbarTrack;
|
|
@@ -74,10 +74,10 @@ class ScrollableDirective {
|
|
|
74
74
|
this.thumbPosition = (scrollElement.scrollTop / (contentHeight - containerHeight)) * maxThumbPosition;
|
|
75
75
|
this.renderer.setStyle(this.scrollbarThumb, 'transform', `translateY(${this.thumbPosition}px)`);
|
|
76
76
|
}
|
|
77
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type:
|
|
78
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.3", type:
|
|
77
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ScrollableComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
78
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.3", type: ScrollableComponent, isStandalone: true, selector: "[latScrollable]", host: { listeners: { "scroll": "onScroll()", "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()" } }, ngImport: i0 });
|
|
79
79
|
}
|
|
80
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type:
|
|
80
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ScrollableComponent, decorators: [{
|
|
81
81
|
type: Directive,
|
|
82
82
|
args: [{
|
|
83
83
|
selector: '[latScrollable]',
|
|
@@ -94,9 +94,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
|
|
|
94
94
|
args: ['mouseleave']
|
|
95
95
|
}] } });
|
|
96
96
|
|
|
97
|
+
const ScrollableImports = [
|
|
98
|
+
ScrollableComponent
|
|
99
|
+
];
|
|
100
|
+
|
|
97
101
|
/**
|
|
98
102
|
* Generated bundle index. Do not edit.
|
|
99
103
|
*/
|
|
100
104
|
|
|
101
|
-
export {
|
|
105
|
+
export { ScrollableComponent, ScrollableImports };
|
|
102
106
|
//# sourceMappingURL=latitude-ui-widgets-scrollable.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"latitude-ui-widgets-scrollable.mjs","sources":["../../../../packages/widgets/scrollable/lib/scrollable.
|
|
1
|
+
{"version":3,"file":"latitude-ui-widgets-scrollable.mjs","sources":["../../../../packages/widgets/scrollable/lib/scrollable.ts","../../../../packages/widgets/scrollable/public-api.ts","../../../../packages/widgets/scrollable/latitude-ui-widgets-scrollable.ts"],"sourcesContent":["import {\r\n Directive,\r\n ElementRef,\r\n HostListener,\r\n AfterViewInit,\r\n Renderer2,\r\n OnDestroy, inject\r\n} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[latScrollable]',\r\n standalone: true,\r\n})\r\nexport class ScrollableComponent implements AfterViewInit, OnDestroy {\r\n readonly el = inject(ElementRef<HTMLElement>);\r\n readonly renderer = inject(Renderer2);\r\n\r\n private scrollbarTrack: HTMLElement;\r\n private scrollbarThumb: HTMLElement;\r\n private thumbHeight = 20;\r\n private thumbPosition = 0;\r\n private resizeObserver: ResizeObserver;\r\n private isScrolling = false;\r\n\r\n constructor() {\r\n this.renderer.setStyle(this.el.nativeElement, 'scrollbar-width', 'none');\r\n this.renderer.setStyle(this.el.nativeElement, '-ms-overflow-style', 'none');\r\n this.renderer.setStyle(this.el.nativeElement, '-webkit-scrollbar', 'none');\r\n\r\n this.scrollbarTrack = this.renderer.createElement('div');\r\n this.renderer.setStyle(this.scrollbarTrack, 'position', 'absolute');\r\n this.renderer.setStyle(this.scrollbarTrack, 'top', '5px');\r\n this.renderer.setStyle(this.scrollbarTrack, 'right', '2px');\r\n this.renderer.setStyle(this.scrollbarTrack, 'width', '6px');\r\n this.renderer.setStyle(this.scrollbarTrack, 'height', '100%');\r\n this.renderer.setStyle(this.scrollbarTrack, 'opacity', '0');\r\n this.renderer.setStyle(this.scrollbarTrack, 'transition', 'opacity 0.3s ease-in-out');\r\n this.renderer.setStyle(this.scrollbarTrack, 'pointer-events', 'none');\r\n this.renderer.setStyle(this.scrollbarTrack, 'z-index', '40');\r\n\r\n this.scrollbarThumb = this.renderer.createElement('div');\r\n this.renderer.setStyle(this.scrollbarThumb, 'width', '100%');\r\n this.renderer.setStyle(this.scrollbarThumb, 'background-color', 'var(--lat-scrollbar-color, #888)',);\r\n this.renderer.setStyle(this.scrollbarThumb, 'border-radius', '4px');\r\n this.renderer.setStyle(this.scrollbarThumb, 'position', 'absolute');\r\n this.renderer.setStyle(this.scrollbarThumb, 'left', '0');\r\n this.renderer.setStyle(this.scrollbarThumb, 'transition', 'transform 0.1s linear');\r\n\r\n this.renderer.appendChild(this.scrollbarTrack, this.scrollbarThumb);\r\n\r\n this.renderer.appendChild(this.el.nativeElement, this.scrollbarTrack);\r\n\r\n this.resizeObserver = new ResizeObserver(() => this.updateScrollbar());\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.updateScrollbar();\r\n this.resizeObserver.observe(this.el.nativeElement);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.resizeObserver.disconnect();\r\n }\r\n\r\n @HostListener('scroll')\r\n onScroll() {\r\n if (!this.isScrolling) {\r\n this.isScrolling = true;\r\n requestAnimationFrame(() => {\r\n this.updateScrollbar();\r\n this.isScrolling = false;\r\n });\r\n }\r\n }\r\n\r\n @HostListener('mouseenter')\r\n onMouseEnter() {\r\n this.renderer.setStyle(this.scrollbarTrack, 'opacity', '1');\r\n }\r\n\r\n @HostListener('mouseleave')\r\n onMouseLeave() {\r\n this.renderer.setStyle(this.scrollbarTrack, 'opacity', '0');\r\n }\r\n\r\n private updateScrollbar() {\r\n const scrollElement = this.el.nativeElement;\r\n const containerHeight = scrollElement.clientHeight;\r\n const contentHeight = scrollElement.scrollHeight;\r\n const parentElement = scrollElement.parentElement;\r\n const parentHeight = parentElement ? parentElement.clientHeight : 0;\r\n\r\n if (contentHeight <= Math.max(containerHeight) || contentHeight <= parentHeight) {\r\n this.renderer.setStyle(this.scrollbarTrack, 'display', 'none');\r\n\r\n return void 0;\r\n }\r\n\r\n this.renderer.setStyle(this.scrollbarTrack, 'display', 'block');\r\n\r\n this.thumbHeight = Math.max(40, (containerHeight / contentHeight) * containerHeight);\r\n this.renderer.setStyle(this.scrollbarThumb, 'height', `${this.thumbHeight}px`);\r\n\r\n const maxThumbPosition = containerHeight - this.thumbHeight;\r\n this.thumbPosition = (scrollElement.scrollTop / (contentHeight - containerHeight)) * maxThumbPosition;\r\n\r\n this.renderer.setStyle(this.scrollbarThumb, 'transform', `translateY(${this.thumbPosition}px)`);\r\n }\r\n}\r\n","import { ScrollableComponent } from './lib/scrollable';\r\n\r\nexport * from './lib/scrollable';\r\n\r\nexport const ScrollableImports = [\r\n ScrollableComponent\r\n] as const;\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAaa,mBAAmB,CAAA;AACrB,IAAA,EAAE,GAAG,MAAM,EAAC,UAAuB,EAAC;AACpC,IAAA,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;AAE7B,IAAA,cAAc;AACd,IAAA,cAAc;IACd,WAAW,GAAG,EAAE;IAChB,aAAa,GAAG,CAAC;AACjB,IAAA,cAAc;IACd,WAAW,GAAG,KAAK;AAE3B,IAAA,WAAA,GAAA;AACE,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,iBAAiB,EAAE,MAAM,CAAC;AACxE,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,oBAAoB,EAAE,MAAM,CAAC;AAC3E,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,mBAAmB,EAAE,MAAM,CAAC;QAE1E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AACxD,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,UAAU,EAAE,UAAU,CAAC;AACnE,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,EAAE,KAAK,CAAC;AACzD,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,KAAK,CAAC;AAC3D,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,KAAK,CAAC;AAC3D,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,EAAE,MAAM,CAAC;AAC7D,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,EAAE,GAAG,CAAC;AAC3D,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,YAAY,EAAE,0BAA0B,CAAC;AACrF,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,gBAAgB,EAAE,MAAM,CAAC;AACrE,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,EAAE,IAAI,CAAC;QAE5D,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AACxD,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,MAAM,CAAC;AAC5D,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,kBAAkB,EAAE,kCAAkC,CAAE;AACpG,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,eAAe,EAAE,KAAK,CAAC;AACnE,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,UAAU,EAAE,UAAU,CAAC;AACnE,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,CAAC;AACxD,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,YAAY,EAAE,uBAAuB,CAAC;AAElF,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC;AAEnE,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC;AAErE,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;IACxE;IAEA,eAAe,GAAA;QACb,IAAI,CAAC,eAAe,EAAE;QACtB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;IACpD;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE;IAClC;IAGA,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACrB,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI;YACvB,qBAAqB,CAAC,MAAK;gBACzB,IAAI,CAAC,eAAe,EAAE;AACtB,gBAAA,IAAI,CAAC,WAAW,GAAG,KAAK;AAC1B,YAAA,CAAC,CAAC;QACJ;IACF;IAGA,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,EAAE,GAAG,CAAC;IAC7D;IAGA,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,EAAE,GAAG,CAAC;IAC7D;IAEQ,eAAe,GAAA;AACrB,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa;AAC3C,QAAA,MAAM,eAAe,GAAG,aAAa,CAAC,YAAY;AAClD,QAAA,MAAM,aAAa,GAAG,aAAa,CAAC,YAAY;AAChD,QAAA,MAAM,aAAa,GAAG,aAAa,CAAC,aAAa;AACjD,QAAA,MAAM,YAAY,GAAG,aAAa,GAAG,aAAa,CAAC,YAAY,GAAG,CAAC;AAEnE,QAAA,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,aAAa,IAAI,YAAY,EAAE;AAC/E,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,EAAE,MAAM,CAAC;YAE9D,OAAO,KAAK,CAAC;QACf;AAEA,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,EAAE,OAAO,CAAC;AAE/D,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,eAAe,GAAG,aAAa,IAAI,eAAe,CAAC;AACpF,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,EAAE,CAAA,EAAG,IAAI,CAAC,WAAW,CAAA,EAAA,CAAI,CAAC;AAE9E,QAAA,MAAM,gBAAgB,GAAG,eAAe,GAAG,IAAI,CAAC,WAAW;AAC3D,QAAA,IAAI,CAAC,aAAa,GAAG,CAAC,aAAa,CAAC,SAAS,IAAI,aAAa,GAAG,eAAe,CAAC,IAAI,gBAAgB;AAErG,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,WAAW,EAAE,CAAA,WAAA,EAAc,IAAI,CAAC,aAAa,CAAA,GAAA,CAAK,CAAC;IACjG;uGA9FW,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,YAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;;sBAoDE,YAAY;uBAAC,QAAQ;;sBAWrB,YAAY;uBAAC,YAAY;;sBAKzB,YAAY;uBAAC,YAAY;;;AC5ErB,MAAM,iBAAiB,GAAG;IAC/B;;;ACLF;;AAEG;;;;"}
|