@enigmatry/entry-components 15.0.1-preview.6 → 15.1.0-preview.2
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/README.md +5 -0
- package/esm2020/modules/entry-components.module.mjs +5 -1
- package/esm2020/public-api.mjs +2 -1
- package/esm2020/search-filter/autocomplete/autocomplete-search-filter.component.mjs +50 -0
- package/esm2020/search-filter/autocomplete/autocomplete-search-filter.model.mjs +19 -0
- package/esm2020/search-filter/control-type.mjs +7 -0
- package/esm2020/search-filter/entry-search-filter.component.mjs +19 -6
- package/esm2020/search-filter/entry-search-filter.module.mjs +14 -8
- package/esm2020/search-filter/public-api.mjs +6 -5
- package/esm2020/search-filter/search-filter-base.model.mjs +26 -0
- package/esm2020/search-filter/select/select-search-filter.component.mjs +28 -0
- package/esm2020/search-filter/select/select-search-filter.model.mjs +23 -0
- package/esm2020/search-filter/select-option.model.mjs +12 -0
- package/esm2020/search-filter/text/text-search-filter.component.mjs +18 -0
- package/esm2020/search-filter/text/text-search-filter.model.mjs +12 -0
- package/esm2020/spinner/enigmatry-entry-components-spinner.mjs +5 -0
- package/esm2020/spinner/entry-spinner/spinner.component.mjs +81 -0
- package/esm2020/spinner/public-api.mjs +3 -0
- package/esm2020/spinner/spinner-overlay-container.mjs +42 -0
- package/esm2020/spinner/spinner.module.mjs +32 -0
- package/fesm2015/enigmatry-entry-components-search-filter.mjs +116 -33
- package/fesm2015/enigmatry-entry-components-search-filter.mjs.map +1 -1
- package/fesm2015/enigmatry-entry-components-spinner.mjs +156 -0
- package/fesm2015/enigmatry-entry-components-spinner.mjs.map +1 -0
- package/fesm2015/enigmatry-entry-components.mjs +5 -0
- package/fesm2015/enigmatry-entry-components.mjs.map +1 -1
- package/fesm2020/enigmatry-entry-components-search-filter.mjs +115 -33
- package/fesm2020/enigmatry-entry-components-search-filter.mjs.map +1 -1
- package/fesm2020/enigmatry-entry-components-spinner.mjs +153 -0
- package/fesm2020/enigmatry-entry-components-spinner.mjs.map +1 -0
- package/fesm2020/enigmatry-entry-components.mjs +5 -0
- package/fesm2020/enigmatry-entry-components.mjs.map +1 -1
- package/modules/entry-components.module.d.ts +3 -2
- package/package.json +9 -1
- package/public-api.d.ts +1 -0
- package/search-filter/README.md +45 -17
- package/search-filter/autocomplete/autocomplete-search-filter.component.d.ts +21 -0
- package/search-filter/autocomplete/autocomplete-search-filter.model.d.ts +19 -0
- package/search-filter/control-type.d.ts +5 -0
- package/search-filter/entry-search-filter.component.d.ts +9 -1
- package/search-filter/entry-search-filter.module.d.ts +11 -9
- package/search-filter/public-api.d.ts +5 -4
- package/search-filter/{search-filter-input/search-filter-base.model.d.ts → search-filter-base.model.d.ts} +3 -2
- package/search-filter/select/select-search-filter.component.d.ts +14 -0
- package/search-filter/{search-filter-input/inputs → select}/select-search-filter.model.d.ts +5 -4
- package/search-filter/{search-filter-input/inputs/select-filter-option.model.d.ts → select-option.model.d.ts} +2 -2
- package/search-filter/text/text-search-filter.component.d.ts +10 -0
- package/search-filter/{search-filter-input/inputs → text}/text-search-filter.model.d.ts +2 -1
- package/spinner/README.md +37 -0
- package/spinner/entry-spinner/spinner.component.d.ts +24 -0
- package/spinner/index.d.ts +5 -0
- package/spinner/public-api.d.ts +2 -0
- package/spinner/spinner-overlay-container.d.ts +17 -0
- package/spinner/spinner.module.d.ts +10 -0
- package/styles/modules/_default-theme.scss +12 -4
- package/styles/modules/vendors/angular-material/_typography-generator.scss +14 -7
- package/esm2020/search-filter/search-filter-input/control-type.model.mjs +0 -5
- package/esm2020/search-filter/search-filter-input/inputs/select-filter-option.model.mjs +0 -12
- package/esm2020/search-filter/search-filter-input/inputs/select-search-filter.model.mjs +0 -23
- package/esm2020/search-filter/search-filter-input/inputs/text-search-filter.model.mjs +0 -12
- package/esm2020/search-filter/search-filter-input/search-filter-base.model.mjs +0 -25
- package/esm2020/search-filter/search-filter-input/search-filter-input.component.mjs +0 -36
- package/search-filter/search-filter-input/control-type.model.d.ts +0 -4
- package/search-filter/search-filter-input/search-filter-input.component.d.ts +0 -18
|
@@ -10,6 +10,8 @@ import { EntryPermissionService, EntryPermissionModule } from '@enigmatry/entry-
|
|
|
10
10
|
export * from '@enigmatry/entry-components/permissions';
|
|
11
11
|
import { EntrySearchFilterModule } from '@enigmatry/entry-components/search-filter';
|
|
12
12
|
export * from '@enigmatry/entry-components/search-filter';
|
|
13
|
+
import { EntrySpinnerModule } from '@enigmatry/entry-components/spinner';
|
|
14
|
+
export * from '@enigmatry/entry-components/spinner';
|
|
13
15
|
import { EntryValidationModule } from '@enigmatry/entry-components/validation';
|
|
14
16
|
export * from '@enigmatry/entry-components/validation';
|
|
15
17
|
import { EntryTableModule } from '@enigmatry/entry-components/table';
|
|
@@ -44,6 +46,7 @@ EntryComponentsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", v
|
|
|
44
46
|
EntryValidationModule,
|
|
45
47
|
EntryPermissionModule,
|
|
46
48
|
EntrySearchFilterModule,
|
|
49
|
+
EntrySpinnerModule,
|
|
47
50
|
EntryTableModule] });
|
|
48
51
|
EntryComponentsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: EntryComponentsModule, imports: [EntryButtonModule,
|
|
49
52
|
EntryCommonModule,
|
|
@@ -52,6 +55,7 @@ EntryComponentsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", v
|
|
|
52
55
|
EntryValidationModule,
|
|
53
56
|
EntryPermissionModule,
|
|
54
57
|
EntrySearchFilterModule,
|
|
58
|
+
EntrySpinnerModule,
|
|
55
59
|
EntryTableModule] });
|
|
56
60
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: EntryComponentsModule, decorators: [{
|
|
57
61
|
type: NgModule,
|
|
@@ -65,6 +69,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
65
69
|
EntryValidationModule,
|
|
66
70
|
EntryPermissionModule,
|
|
67
71
|
EntrySearchFilterModule,
|
|
72
|
+
EntrySpinnerModule,
|
|
68
73
|
EntryTableModule
|
|
69
74
|
]
|
|
70
75
|
}]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enigmatry-entry-components.mjs","sources":["../../../../libs/entry-components/modules/entry-components.module.ts","../../../../libs/entry-components/public-api.ts","../../../../libs/entry-components/enigmatry-entry-components.ts"],"sourcesContent":["import { ModuleWithProviders, NgModule, Provider, Type } from '@angular/core';\r\nimport { EntryButtonModule } from '@enigmatry/entry-components/button';\r\nimport { EntryDialogModule } from '@enigmatry/entry-components/dialog';\r\nimport { EntryPermissionModule, EntryPermissionService } from '@enigmatry/entry-components/permissions';\r\nimport { EntrySearchFilterModule } from '@enigmatry/entry-components/search-filter';\r\nimport { EntryValidationModule } from '@enigmatry/entry-components/validation';\r\nimport { EntryFileInputModule } from '@enigmatry/entry-components/file-input';\r\nimport { EntryTableModule } from '@enigmatry/entry-components/table';\r\nimport { EntryCommonModule, NG_EVENT_PLUGINS } from '@enigmatry/entry-components/common';\r\n\r\ninterface EntryComponentsModuleOptions {\r\n permissionService?: Type<any>;\r\n}\r\n\r\n/**\r\n * Exports all entry components.\r\n *\r\n * Usage\r\n * import EntryComponentsModule in shared.module.ts to have access to all components, directives, pipes.\r\n * import EntryComponentsModule.forRoot() in app.module.ts to register root module providers.\r\n */\r\n@NgModule({\r\n declarations: [],\r\n exports: [\r\n EntryButtonModule,\r\n EntryCommonModule,\r\n EntryDialogModule,\r\n EntryFileInputModule,\r\n EntryValidationModule,\r\n EntryPermissionModule,\r\n EntrySearchFilterModule,\r\n EntryTableModule\r\n ]\r\n})\r\nexport class EntryComponentsModule {\r\n static forRoot(options: EntryComponentsModuleOptions = {}): ModuleWithProviders<EntryComponentsModule> {\r\n\r\n const permissionServiceProvider: Provider[] = options.permissionService\r\n ? [{ provide: EntryPermissionService, useClass: options.permissionService }]\r\n : [];\r\n\r\n const providers: Provider[] = [...permissionServiceProvider, ...NG_EVENT_PLUGINS];\r\n return {\r\n ngModule: EntryComponentsModule,\r\n providers\r\n };\r\n }\r\n}\r\n","\n/*\n * Public API Surface of entry-components\n */\nexport * from '@enigmatry/entry-components/button';\nexport * from '@enigmatry/entry-components/common';\nexport * from '@enigmatry/entry-components/dialog';\nexport * from '@enigmatry/entry-components/file-input';\nexport * from '@enigmatry/entry-components/permissions';\nexport * from '@enigmatry/entry-components/search-filter';\nexport * from '@enigmatry/entry-components/validation';\nexport * from '@enigmatry/entry-components/table';\n\nexport { EntryComponentsModule } from './modules/entry-components.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"enigmatry-entry-components.mjs","sources":["../../../../libs/entry-components/modules/entry-components.module.ts","../../../../libs/entry-components/public-api.ts","../../../../libs/entry-components/enigmatry-entry-components.ts"],"sourcesContent":["import { ModuleWithProviders, NgModule, Provider, Type } from '@angular/core';\r\nimport { EntryButtonModule } from '@enigmatry/entry-components/button';\r\nimport { EntryDialogModule } from '@enigmatry/entry-components/dialog';\r\nimport { EntryPermissionModule, EntryPermissionService } from '@enigmatry/entry-components/permissions';\r\nimport { EntrySearchFilterModule } from '@enigmatry/entry-components/search-filter';\r\nimport { EntryValidationModule } from '@enigmatry/entry-components/validation';\r\nimport { EntryFileInputModule } from '@enigmatry/entry-components/file-input';\r\nimport { EntryTableModule } from '@enigmatry/entry-components/table';\r\nimport { EntryCommonModule, NG_EVENT_PLUGINS } from '@enigmatry/entry-components/common';\r\nimport { EntrySpinnerModule } from '@enigmatry/entry-components/spinner';\r\n\r\ninterface EntryComponentsModuleOptions {\r\n permissionService?: Type<any>;\r\n}\r\n\r\n/**\r\n * Exports all entry components.\r\n *\r\n * Usage\r\n * import EntryComponentsModule in shared.module.ts to have access to all components, directives, pipes.\r\n * import EntryComponentsModule.forRoot() in app.module.ts to register root module providers.\r\n */\r\n@NgModule({\r\n declarations: [],\r\n exports: [\r\n EntryButtonModule,\r\n EntryCommonModule,\r\n EntryDialogModule,\r\n EntryFileInputModule,\r\n EntryValidationModule,\r\n EntryPermissionModule,\r\n EntrySearchFilterModule,\r\n EntrySpinnerModule,\r\n EntryTableModule\r\n ]\r\n})\r\nexport class EntryComponentsModule {\r\n static forRoot(options: EntryComponentsModuleOptions = {}): ModuleWithProviders<EntryComponentsModule> {\r\n\r\n const permissionServiceProvider: Provider[] = options.permissionService\r\n ? [{ provide: EntryPermissionService, useClass: options.permissionService }]\r\n : [];\r\n\r\n const providers: Provider[] = [...permissionServiceProvider, ...NG_EVENT_PLUGINS];\r\n return {\r\n ngModule: EntryComponentsModule,\r\n providers\r\n };\r\n }\r\n}\r\n","\n/*\n * Public API Surface of entry-components\n */\nexport * from '@enigmatry/entry-components/button';\nexport * from '@enigmatry/entry-components/common';\nexport * from '@enigmatry/entry-components/dialog';\nexport * from '@enigmatry/entry-components/file-input';\nexport * from '@enigmatry/entry-components/permissions';\nexport * from '@enigmatry/entry-components/search-filter';\nexport * from '@enigmatry/entry-components/spinner';\nexport * from '@enigmatry/entry-components/validation';\nexport * from '@enigmatry/entry-components/table';\n\nexport { EntryComponentsModule } from './modules/entry-components.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAeA;;;;;;AAMG;MAeU,qBAAqB,CAAA;AAChC,IAAA,OAAO,OAAO,CAAC,OAAA,GAAwC,EAAE,EAAA;AAEvD,QAAA,MAAM,yBAAyB,GAAe,OAAO,CAAC,iBAAiB;AACrE,cAAE,CAAC,EAAE,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,OAAO,CAAC,iBAAiB,EAAE,CAAC;cAC1E,EAAE,CAAC;QAEP,MAAM,SAAS,GAAe,CAAC,GAAG,yBAAyB,EAAE,GAAG,gBAAgB,CAAC,CAAC;QAClF,OAAO;AACL,YAAA,QAAQ,EAAE,qBAAqB;YAC/B,SAAS;SACV,CAAC;KACH;;mHAZU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAArB,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,YAX9B,iBAAiB;QACjB,iBAAiB;QACjB,iBAAiB;QACjB,oBAAoB;QACpB,qBAAqB;QACrB,qBAAqB;QACrB,uBAAuB;QACvB,kBAAkB;QAClB,gBAAgB,CAAA,EAAA,CAAA,CAAA;AAGP,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,YAX9B,iBAAiB;QACjB,iBAAiB;QACjB,iBAAiB;QACjB,oBAAoB;QACpB,qBAAqB;QACrB,qBAAqB;QACrB,uBAAuB;QACvB,kBAAkB;QAClB,gBAAgB,CAAA,EAAA,CAAA,CAAA;4FAGP,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAdjC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,EAAE;AAChB,oBAAA,OAAO,EAAE;wBACP,iBAAiB;wBACjB,iBAAiB;wBACjB,iBAAiB;wBACjB,oBAAoB;wBACpB,qBAAqB;wBACrB,qBAAqB;wBACrB,uBAAuB;wBACvB,kBAAkB;wBAClB,gBAAgB;AACjB,qBAAA;AACF,iBAAA,CAAA;;;AClCD;;AAEG;;ACHH;;AAEG;;;;"}
|
|
@@ -7,7 +7,8 @@ import * as i4 from "@enigmatry/entry-components/file-input";
|
|
|
7
7
|
import * as i5 from "@enigmatry/entry-components/validation";
|
|
8
8
|
import * as i6 from "@enigmatry/entry-components/permissions";
|
|
9
9
|
import * as i7 from "@enigmatry/entry-components/search-filter";
|
|
10
|
-
import * as i8 from "@enigmatry/entry-components/
|
|
10
|
+
import * as i8 from "@enigmatry/entry-components/spinner";
|
|
11
|
+
import * as i9 from "@enigmatry/entry-components/table";
|
|
11
12
|
interface EntryComponentsModuleOptions {
|
|
12
13
|
permissionService?: Type<any>;
|
|
13
14
|
}
|
|
@@ -21,7 +22,7 @@ interface EntryComponentsModuleOptions {
|
|
|
21
22
|
export declare class EntryComponentsModule {
|
|
22
23
|
static forRoot(options?: EntryComponentsModuleOptions): ModuleWithProviders<EntryComponentsModule>;
|
|
23
24
|
static ɵfac: i0.ɵɵFactoryDeclaration<EntryComponentsModule, never>;
|
|
24
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<EntryComponentsModule, never, never, [typeof i1.EntryButtonModule, typeof i2.EntryCommonModule, typeof i3.EntryDialogModule, typeof i4.EntryFileInputModule, typeof i5.EntryValidationModule, typeof i6.EntryPermissionModule, typeof i7.EntrySearchFilterModule, typeof i8.EntryTableModule]>;
|
|
25
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<EntryComponentsModule, never, never, [typeof i1.EntryButtonModule, typeof i2.EntryCommonModule, typeof i3.EntryDialogModule, typeof i4.EntryFileInputModule, typeof i5.EntryValidationModule, typeof i6.EntryPermissionModule, typeof i7.EntrySearchFilterModule, typeof i8.EntrySpinnerModule, typeof i9.EntryTableModule]>;
|
|
25
26
|
static ɵinj: i0.ɵɵInjectorDeclaration<EntryComponentsModule>;
|
|
26
27
|
}
|
|
27
28
|
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@enigmatry/entry-components",
|
|
3
|
-
"version": "15.0
|
|
3
|
+
"version": "15.1.0-preview.2",
|
|
4
4
|
"author": "Enigmatry",
|
|
5
5
|
"description": "Enigmatry entry angular material components",
|
|
6
6
|
"homepage": "https://github.com/enigmatry/entry-angular-building-blocks/tree/master/libs/entry-components#readme",
|
|
@@ -91,6 +91,14 @@
|
|
|
91
91
|
"node": "./fesm2015/enigmatry-entry-components-search-filter.mjs",
|
|
92
92
|
"default": "./fesm2020/enigmatry-entry-components-search-filter.mjs"
|
|
93
93
|
},
|
|
94
|
+
"./spinner": {
|
|
95
|
+
"types": "./spinner/index.d.ts",
|
|
96
|
+
"esm2020": "./esm2020/spinner/enigmatry-entry-components-spinner.mjs",
|
|
97
|
+
"es2020": "./fesm2020/enigmatry-entry-components-spinner.mjs",
|
|
98
|
+
"es2015": "./fesm2015/enigmatry-entry-components-spinner.mjs",
|
|
99
|
+
"node": "./fesm2015/enigmatry-entry-components-spinner.mjs",
|
|
100
|
+
"default": "./fesm2020/enigmatry-entry-components-spinner.mjs"
|
|
101
|
+
},
|
|
94
102
|
"./table": {
|
|
95
103
|
"types": "./table/index.d.ts",
|
|
96
104
|
"esm2020": "./esm2020/table/enigmatry-entry-components-table.mjs",
|
package/public-api.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export * from '@enigmatry/entry-components/dialog';
|
|
|
4
4
|
export * from '@enigmatry/entry-components/file-input';
|
|
5
5
|
export * from '@enigmatry/entry-components/permissions';
|
|
6
6
|
export * from '@enigmatry/entry-components/search-filter';
|
|
7
|
+
export * from '@enigmatry/entry-components/spinner';
|
|
7
8
|
export * from '@enigmatry/entry-components/validation';
|
|
8
9
|
export * from '@enigmatry/entry-components/table';
|
|
9
10
|
export { EntryComponentsModule } from './modules/entry-components.module';
|
package/search-filter/README.md
CHANGED
|
@@ -4,43 +4,70 @@ Entry component for providing standard filtering capabilities that can be consum
|
|
|
4
4
|
|
|
5
5
|
* Text filter
|
|
6
6
|
* Select filter (supports fixed and dynamic (Observable) options)
|
|
7
|
+
* Autocomplete filter
|
|
7
8
|
|
|
8
9
|
## Integration
|
|
9
10
|
|
|
10
|
-
```npm
|
|
11
|
-
npm i @enigmatry/entry-components
|
|
12
|
-
```
|
|
13
|
-
|
|
14
11
|
Import component package:
|
|
15
12
|
|
|
16
13
|
```ts
|
|
17
14
|
import { EntrySearchFilterModule } from '@enigmatry/entry-components/search-filter';
|
|
18
15
|
```
|
|
19
16
|
|
|
20
|
-
|
|
17
|
+
## Basic usage
|
|
21
18
|
|
|
22
|
-
|
|
23
|
-
@use 'entry-components/styles/generate' as entry;
|
|
19
|
+
Provide filters
|
|
24
20
|
|
|
25
|
-
|
|
21
|
+
```ts
|
|
22
|
+
import {
|
|
23
|
+
AutocompleteSearchFilter,
|
|
24
|
+
SelectOption,
|
|
25
|
+
SelectSearchFilter,
|
|
26
|
+
TextSearchFilter,
|
|
27
|
+
} from '@enigmatry/entry-components/search-filter';
|
|
28
|
+
|
|
29
|
+
@Component({...})
|
|
30
|
+
export class ExampleComponent {
|
|
31
|
+
|
|
32
|
+
filters = [
|
|
33
|
+
new TextSearchFilter({
|
|
34
|
+
key: 'name',
|
|
35
|
+
label: 'Name',
|
|
36
|
+
placeholder: 'Name',
|
|
37
|
+
maxLength: 25
|
|
38
|
+
}),
|
|
39
|
+
new SelectSearchFilter({
|
|
40
|
+
key: 'username',
|
|
41
|
+
label: 'Username',
|
|
42
|
+
placeholder: 'Select username',
|
|
43
|
+
multiSelect: false,
|
|
44
|
+
options$: this._usersService
|
|
45
|
+
.getUsernames()
|
|
46
|
+
.pipe(map(usernames => usernames.map(un => new SelectOption(un, un))))
|
|
47
|
+
}),
|
|
48
|
+
new AutocompleteSearchFilter({
|
|
49
|
+
key: 'country',
|
|
50
|
+
label: 'Country',
|
|
51
|
+
placeholder: 'Select country',
|
|
52
|
+
minimumCharacters: 0,
|
|
53
|
+
search: (input: string) => of(Object.values(Country)
|
|
54
|
+
.filter(value => value.toLocaleLowerCase().includes(input.toLocaleLowerCase()))
|
|
55
|
+
.map((country => new SelectOption(country, country))))
|
|
56
|
+
})
|
|
57
|
+
];
|
|
58
|
+
}
|
|
26
59
|
```
|
|
27
60
|
|
|
28
|
-
Where `APP_THEME` represents application theming configuration, while `APP_TYPOGRAPHY` represents application fonts configuration.
|
|
29
|
-
|
|
30
|
-
## Basic usage
|
|
31
|
-
|
|
32
|
-
`entry-search-filter` is used to provide simple configuration and usage of data filtering:
|
|
33
|
-
|
|
34
61
|
```html
|
|
35
62
|
<entry-search-filter
|
|
36
|
-
[searchFilters]="
|
|
63
|
+
[searchFilters]="filters"
|
|
37
64
|
(searchFilterChange)="searchFilterChange($event)">
|
|
38
65
|
</entry-search-filter>
|
|
39
66
|
```
|
|
40
67
|
|
|
41
68
|
## Configuration
|
|
42
69
|
|
|
43
|
-
|
|
70
|
+
Optional configuration used to override defaults.
|
|
44
71
|
|
|
45
72
|
```ts
|
|
46
73
|
import { EntrySearchFilterModule, provideEntrySearchFilterConfig } from '@enigmatry/entry-components/search-filter';
|
|
@@ -52,7 +79,8 @@ import { EntrySearchFilterModule, provideEntrySearchFilterConfig } from '@enigma
|
|
|
52
79
|
],
|
|
53
80
|
providers: [
|
|
54
81
|
provideEntrySearchFilterConfig({
|
|
55
|
-
applyButtonText: 'Filter'
|
|
82
|
+
applyButtonText: 'Filter',
|
|
83
|
+
noneSelectedOptionText: '-'
|
|
56
84
|
})
|
|
57
85
|
]
|
|
58
86
|
})
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { AfterViewInit, ChangeDetectorRef, OnDestroy } from '@angular/core';
|
|
2
|
+
import { FormControlName, UntypedFormGroup } from '@angular/forms';
|
|
3
|
+
import { Observable, Subject } from 'rxjs';
|
|
4
|
+
import { SelectOption } from '../select-option.model';
|
|
5
|
+
import { AutocompleteSearchFilter } from './autocomplete-search-filter.model';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export declare class AutocompleteSearchFilterComponent<T> implements AfterViewInit, OnDestroy {
|
|
8
|
+
private cdr;
|
|
9
|
+
searchFilter: AutocompleteSearchFilter<T>;
|
|
10
|
+
form: UntypedFormGroup;
|
|
11
|
+
searchField: FormControlName;
|
|
12
|
+
options$: Observable<SelectOption<T>[]>;
|
|
13
|
+
options: SelectOption<T>[];
|
|
14
|
+
destroy$: Subject<void>;
|
|
15
|
+
constructor(cdr: ChangeDetectorRef);
|
|
16
|
+
ngAfterViewInit(): void;
|
|
17
|
+
ngOnDestroy(): void;
|
|
18
|
+
displayFn: (selectedKey: T) => string;
|
|
19
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AutocompleteSearchFilterComponent<any>, never>;
|
|
20
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AutocompleteSearchFilterComponent<any>, "entry-autocomplete-search-filter", never, { "searchFilter": "searchFilter"; "form": "form"; }, {}, never, never, false, never>;
|
|
21
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ControlType } from '../control-type';
|
|
2
|
+
import { SearchFilterBase } from '../search-filter-base.model';
|
|
3
|
+
import { SelectOption } from '../select-option.model';
|
|
4
|
+
import { Observable } from 'rxjs';
|
|
5
|
+
/**
|
|
6
|
+
* Search filter autocomplete field configuration. Options for the autocomplete are provided
|
|
7
|
+
* indirectly via the search function that takes a string and returns an observable array of
|
|
8
|
+
* SelectOption<T>
|
|
9
|
+
*/
|
|
10
|
+
export declare class AutocompleteSearchFilter<T> extends SearchFilterBase<T> {
|
|
11
|
+
controlType: ControlType;
|
|
12
|
+
/** Callback function for autocomplete options */
|
|
13
|
+
search: (input: string) => Observable<SelectOption<T>[]>;
|
|
14
|
+
/** Minimum number of characters that must enter to trigger the search function(default is 3) */
|
|
15
|
+
minimumCharacters: number;
|
|
16
|
+
/** Delay in typing before triggering the search function in milliseconds(default is 300) */
|
|
17
|
+
debounceTime: number;
|
|
18
|
+
constructor(options?: Partial<AutocompleteSearchFilter<T>>);
|
|
19
|
+
}
|
|
@@ -2,7 +2,11 @@ import { EventEmitter, OnInit } from '@angular/core';
|
|
|
2
2
|
import { UntypedFormGroup } from '@angular/forms';
|
|
3
3
|
import { SearchFilterParams } from './search-filter-params.type';
|
|
4
4
|
import { EntrySearchFilterConfig } from './search-filter-config.model';
|
|
5
|
-
import { SearchFilterBase } from './search-filter-
|
|
5
|
+
import { SearchFilterBase } from './search-filter-base.model';
|
|
6
|
+
import { TextSearchFilter } from './text/text-search-filter.model';
|
|
7
|
+
import { SelectSearchFilter } from './select/select-search-filter.model';
|
|
8
|
+
import { AutocompleteSearchFilter } from './autocomplete/autocomplete-search-filter.model';
|
|
9
|
+
import { ControlType } from './control-type';
|
|
6
10
|
import * as i0 from "@angular/core";
|
|
7
11
|
/**
|
|
8
12
|
* Entry SearchFilter component.
|
|
@@ -16,10 +20,14 @@ export declare class EntrySearchFilterComponent implements OnInit {
|
|
|
16
20
|
*/
|
|
17
21
|
searchFilterChange: EventEmitter<SearchFilterParams>;
|
|
18
22
|
searchFilterForm: UntypedFormGroup;
|
|
23
|
+
controlType: typeof ControlType;
|
|
19
24
|
constructor(config: EntrySearchFilterConfig);
|
|
20
25
|
ngOnInit(): void;
|
|
21
26
|
onSubmit(): void;
|
|
22
27
|
toFormGroup(searchFilters: SearchFilterBase<any>[]): UntypedFormGroup;
|
|
28
|
+
asTextSearchFilter(searchFilter: SearchFilterBase<any>): TextSearchFilter;
|
|
29
|
+
asSelectSearchFilter<T>(searchFilter: SearchFilterBase<T>): SelectSearchFilter<T>;
|
|
30
|
+
asAutocompleteSearchFilter<T>(searchFilter: SearchFilterBase<T>): AutocompleteSearchFilter<T>;
|
|
23
31
|
static ɵfac: i0.ɵɵFactoryDeclaration<EntrySearchFilterComponent, never>;
|
|
24
32
|
static ɵcmp: i0.ɵɵComponentDeclaration<EntrySearchFilterComponent, "entry-search-filter", never, { "searchFilters": "searchFilters"; }, { "searchFilterChange": "searchFilterChange"; }, never, never, false, never>;
|
|
25
33
|
}
|
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
2
|
import * as i1 from "./entry-search-filter.component";
|
|
3
|
-
import * as i2 from "./
|
|
4
|
-
import * as i3 from "
|
|
5
|
-
import * as i4 from "
|
|
6
|
-
import * as i5 from "@angular/
|
|
7
|
-
import * as i6 from "@angular/
|
|
8
|
-
import * as i7 from "@
|
|
9
|
-
import * as i8 from "@angular/material/
|
|
10
|
-
import * as i9 from "@
|
|
3
|
+
import * as i2 from "./text/text-search-filter.component";
|
|
4
|
+
import * as i3 from "./select/select-search-filter.component";
|
|
5
|
+
import * as i4 from "./autocomplete/autocomplete-search-filter.component";
|
|
6
|
+
import * as i5 from "@angular/common";
|
|
7
|
+
import * as i6 from "@angular/forms";
|
|
8
|
+
import * as i7 from "@angular/material/input";
|
|
9
|
+
import * as i8 from "@angular/material/button";
|
|
10
|
+
import * as i9 from "@enigmatry/entry-components/button";
|
|
11
|
+
import * as i10 from "@angular/material/select";
|
|
12
|
+
import * as i11 from "@angular/material/autocomplete";
|
|
11
13
|
export declare class EntrySearchFilterModule {
|
|
12
14
|
static ɵfac: i0.ɵɵFactoryDeclaration<EntrySearchFilterModule, never>;
|
|
13
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<EntrySearchFilterModule, [typeof i1.EntrySearchFilterComponent, typeof i2.
|
|
15
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<EntrySearchFilterModule, [typeof i1.EntrySearchFilterComponent, typeof i2.TextSearchFilterComponent, typeof i3.SelectSearchFilterComponent, typeof i4.AutocompleteSearchFilterComponent], [typeof i5.CommonModule, typeof i6.FormsModule, typeof i6.ReactiveFormsModule, typeof i7.MatInputModule, typeof i8.MatButtonModule, typeof i9.EntryButtonModule, typeof i10.MatSelectModule, typeof i11.MatAutocompleteModule], [typeof i1.EntrySearchFilterComponent]>;
|
|
14
16
|
static ɵinj: i0.ɵɵInjectorDeclaration<EntrySearchFilterModule>;
|
|
15
17
|
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
export { EntrySearchFilterComponent } from './entry-search-filter.component';
|
|
2
2
|
export { SearchFilterParams } from './search-filter-params.type';
|
|
3
|
-
export { SearchFilterBase } from './search-filter-
|
|
4
|
-
export { TextSearchFilter } from './
|
|
5
|
-
export { SelectSearchFilter } from './
|
|
6
|
-
export {
|
|
3
|
+
export { SearchFilterBase } from './search-filter-base.model';
|
|
4
|
+
export { TextSearchFilter } from './text/text-search-filter.model';
|
|
5
|
+
export { SelectSearchFilter } from './select/select-search-filter.model';
|
|
6
|
+
export { AutocompleteSearchFilter } from './autocomplete/autocomplete-search-filter.model';
|
|
7
|
+
export { SelectOption } from './select-option.model';
|
|
7
8
|
export { EntrySearchFilterModule } from './entry-search-filter.module';
|
|
8
9
|
export { ENTRY_SEARCH_FILTER_CONFIG, EntrySearchFilterConfig, provideEntrySearchFilterConfig } from './search-filter-config.model';
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { FormControl } from '@angular/forms';
|
|
2
|
+
import { ControlType } from './control-type';
|
|
2
3
|
/**
|
|
3
4
|
* Base Entry search filter input component.
|
|
4
5
|
*/
|
|
@@ -11,10 +12,10 @@ export declare class SearchFilterBase<T> {
|
|
|
11
12
|
label: string;
|
|
12
13
|
/** Placeholder text for search-filter input control */
|
|
13
14
|
placeholder: string;
|
|
14
|
-
/** Type of input control e.g. 'email' */
|
|
15
|
+
/** Type of input control e.g. 'text' or 'email' */
|
|
15
16
|
type: string;
|
|
16
17
|
/** Control type to be overridden in implementing class, used to render the proper input type e.g. 'text-input' */
|
|
17
|
-
controlType:
|
|
18
|
+
controlType: ControlType;
|
|
18
19
|
/** Max text length to be entered in the input component (default is 256) */
|
|
19
20
|
maxLength: number;
|
|
20
21
|
/** A reference to the form control it represents */
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { SelectSearchFilter } from './select-search-filter.model';
|
|
2
|
+
import { UntypedFormGroup } from '@angular/forms';
|
|
3
|
+
import { EntrySearchFilterConfig } from '../search-filter-config.model';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class SelectSearchFilterComponent<T> {
|
|
6
|
+
config: EntrySearchFilterConfig;
|
|
7
|
+
/** Configuration of the search filters inputs that will be displayed in the search-filter component. */
|
|
8
|
+
searchFilter: SelectSearchFilter<T>;
|
|
9
|
+
/** Form group to which the search-filter input component will be added. */
|
|
10
|
+
form: UntypedFormGroup;
|
|
11
|
+
constructor(config: EntrySearchFilterConfig);
|
|
12
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SelectSearchFilterComponent<any>, never>;
|
|
13
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SelectSearchFilterComponent<any>, "entry-select-search-filter", never, { "searchFilter": "searchFilter"; "form": "form"; }, {}, never, never, false, never>;
|
|
14
|
+
}
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import { Observable } from 'rxjs';
|
|
2
2
|
import { SearchFilterBase } from '../search-filter-base.model';
|
|
3
|
-
import {
|
|
3
|
+
import { ControlType } from '../control-type';
|
|
4
|
+
import { SelectOption } from '../select-option.model';
|
|
4
5
|
/**
|
|
5
6
|
* Search filter select input field configuration. Select options can be provided as fixed list (`options`)
|
|
6
7
|
* or observable (dynamic) list (`options$`).
|
|
7
8
|
*/
|
|
8
9
|
export declare class SelectSearchFilter<T> extends SearchFilterBase<T> {
|
|
9
|
-
controlType:
|
|
10
|
+
controlType: ControlType;
|
|
10
11
|
/** Fixed list of select filter options (default is empty list) */
|
|
11
|
-
options:
|
|
12
|
+
options: SelectOption<T>[];
|
|
12
13
|
/** Observable (dynamic) list of select filter options */
|
|
13
|
-
options$: Observable<
|
|
14
|
+
options$: Observable<SelectOption<T>[]> | undefined;
|
|
14
15
|
/**
|
|
15
16
|
* Enables selection of multiple options (default is true).
|
|
16
17
|
* If it is set to false, 'none selected' option becomes available as a first option.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/** Model used to populate select
|
|
2
|
-
export declare class
|
|
1
|
+
/** Model used to populate select or autocomplete options. */
|
|
2
|
+
export declare class SelectOption<T> {
|
|
3
3
|
/** Key used as a value for selected option */
|
|
4
4
|
key: T;
|
|
5
5
|
/** String value used as display label of select option */
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { UntypedFormGroup } from '@angular/forms';
|
|
2
|
+
import { TextSearchFilter } from './text-search-filter.model';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class TextSearchFilterComponent {
|
|
5
|
+
searchFilter: TextSearchFilter;
|
|
6
|
+
/** Form group to which the search-filter input component will be added. */
|
|
7
|
+
form: UntypedFormGroup;
|
|
8
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TextSearchFilterComponent, never>;
|
|
9
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TextSearchFilterComponent, "entry-text-search-filter", never, { "searchFilter": "searchFilter"; "form": "form"; }, {}, never, never, false, never>;
|
|
10
|
+
}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { SearchFilterBase } from '../search-filter-base.model';
|
|
2
|
+
import { ControlType } from '../control-type';
|
|
2
3
|
/**
|
|
3
4
|
* Search filter text input filed configuration.
|
|
4
5
|
*/
|
|
5
6
|
export declare class TextSearchFilter extends SearchFilterBase<string> {
|
|
6
|
-
controlType:
|
|
7
|
+
controlType: ControlType;
|
|
7
8
|
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Entry spinner
|
|
2
|
+
|
|
3
|
+
Loading spinner that is intended to inform the user that an operation is in progress.
|
|
4
|
+
|
|
5
|
+
## Integration
|
|
6
|
+
|
|
7
|
+
Import component module in your shared module:
|
|
8
|
+
|
|
9
|
+
```ts
|
|
10
|
+
import { EntrySpinnerModule } from '@enigmatry/entry-components/spinner';
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Usage
|
|
14
|
+
|
|
15
|
+
Show spinner:
|
|
16
|
+
|
|
17
|
+
```html
|
|
18
|
+
<entry-spinner *ngIf="loading"></entry-spinner>
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Show spinner positioned in the center of the screen and with background overlay:
|
|
22
|
+
|
|
23
|
+
```html
|
|
24
|
+
<entry-spinner *ngIf="loading" [fullscreen]="true" [hasBackgroundOverlay]="true"></entry-spinner>
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
### Spinner inputs
|
|
29
|
+
|
|
30
|
+
- color: `ThemePalette ` *default* `primary`
|
|
31
|
+
- 'primary' | 'accent' | 'warn'
|
|
32
|
+
- diameter: `number` *default* `30`
|
|
33
|
+
- Diameter of the progress spinner (will set width and height of svg)
|
|
34
|
+
- fullscreen: `boolean` *default* `false`
|
|
35
|
+
- Show spinner in full screen or relative to the container.
|
|
36
|
+
- hasBackgroundOverlay: `boolean` *default* `true`
|
|
37
|
+
- Show spinner with or without a background overlay.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Overlay, OverlayContainer } from '@angular/cdk/overlay';
|
|
2
|
+
import { ElementRef, OnDestroy, OnInit, ViewContainerRef } from '@angular/core';
|
|
3
|
+
import { ThemePalette } from '@angular/material/core';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class EntrySpinnerComponent implements OnInit, OnDestroy {
|
|
6
|
+
private overlay;
|
|
7
|
+
private viewContainerRef;
|
|
8
|
+
private overlayContainer;
|
|
9
|
+
private elementRef;
|
|
10
|
+
color: ThemePalette;
|
|
11
|
+
diameter: number;
|
|
12
|
+
fullscreen: boolean;
|
|
13
|
+
hasBackgroundOverlay: boolean;
|
|
14
|
+
private templateRef;
|
|
15
|
+
private overlayRef;
|
|
16
|
+
constructor(overlay: Overlay, viewContainerRef: ViewContainerRef, overlayContainer: OverlayContainer, elementRef: ElementRef<HTMLElement>);
|
|
17
|
+
ngOnInit(): void;
|
|
18
|
+
ngOnDestroy(): void;
|
|
19
|
+
private createOverlay;
|
|
20
|
+
private configureOverlayContainer;
|
|
21
|
+
private disposeOverlayRef;
|
|
22
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<EntrySpinnerComponent, never>;
|
|
23
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<EntrySpinnerComponent, "entry-spinner", never, { "color": "color"; "diameter": "diameter"; "fullscreen": "fullscreen"; "hasBackgroundOverlay": "hasBackgroundOverlay"; }, {}, never, never, false, never>;
|
|
24
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { OverlayContainer } from '@angular/cdk/overlay';
|
|
2
|
+
import { Platform } from '@angular/cdk/platform';
|
|
3
|
+
import { OnDestroy } from '@angular/core';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class SpinnerOverlayContainer extends OverlayContainer implements OnDestroy {
|
|
6
|
+
private _appendTo;
|
|
7
|
+
private _options;
|
|
8
|
+
constructor(document: Document, platform: Platform);
|
|
9
|
+
configure(appendTo: HTMLElement, options: {
|
|
10
|
+
fullscreen: boolean;
|
|
11
|
+
}): void;
|
|
12
|
+
getContainerElement(): HTMLElement;
|
|
13
|
+
ngOnDestroy(): void;
|
|
14
|
+
private createContainer;
|
|
15
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SpinnerOverlayContainer, never>;
|
|
16
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<SpinnerOverlayContainer>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import * as i1 from "./entry-spinner/spinner.component";
|
|
3
|
+
import * as i2 from "@angular/common";
|
|
4
|
+
import * as i3 from "@angular/cdk/overlay";
|
|
5
|
+
import * as i4 from "@angular/material/progress-spinner";
|
|
6
|
+
export declare class EntrySpinnerModule {
|
|
7
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<EntrySpinnerModule, never>;
|
|
8
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<EntrySpinnerModule, [typeof i1.EntrySpinnerComponent], [typeof i2.CommonModule, typeof i3.OverlayModule, typeof i4.MatProgressSpinnerModule], [typeof i1.EntrySpinnerComponent]>;
|
|
9
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<EntrySpinnerModule>;
|
|
10
|
+
}
|
|
@@ -16,19 +16,27 @@ $theme: (
|
|
|
16
16
|
fonts: (
|
|
17
17
|
hero-titles: (
|
|
18
18
|
family: '',
|
|
19
|
-
size:
|
|
19
|
+
size: null,
|
|
20
|
+
letter-spacing: null
|
|
21
|
+
|
|
20
22
|
),
|
|
21
23
|
titles: (
|
|
22
24
|
family: '',
|
|
23
|
-
size:
|
|
25
|
+
size: null,
|
|
26
|
+
letter-spacing: null
|
|
27
|
+
|
|
24
28
|
),
|
|
25
29
|
body: (
|
|
26
30
|
family: '',
|
|
27
|
-
size:
|
|
31
|
+
size: null,
|
|
32
|
+
letter-spacing: null
|
|
33
|
+
|
|
28
34
|
),
|
|
29
35
|
buttons: (
|
|
30
36
|
family: '',
|
|
31
|
-
size:
|
|
37
|
+
size: null,
|
|
38
|
+
letter-spacing: null
|
|
39
|
+
|
|
32
40
|
)
|
|
33
41
|
),
|
|
34
42
|
spacing: (
|
|
@@ -16,23 +16,30 @@
|
|
|
16
16
|
$fonts: map.get($theme, 'general', 'fonts');
|
|
17
17
|
$typography: theming.define-typography-config();
|
|
18
18
|
|
|
19
|
-
$typography: -set-font-
|
|
20
|
-
$typography: -set-font-
|
|
21
|
-
$typography: -set-font-
|
|
19
|
+
$typography: -set-font-for('body', $typography, $fonts, ('body-1', 'body-2'));
|
|
20
|
+
$typography: -set-font-for('buttons', $typography, $fonts, ('button'));
|
|
21
|
+
$typography: -set-font-for('hero-titles',$typography,$fonts,('headline-1', 'headline-2',
|
|
22
22
|
'headline-3', 'headline-4', 'headline-5', 'headline-6'));
|
|
23
|
-
$typography: -set-font-
|
|
23
|
+
$typography: -set-font-for('titles', $typography, $fonts, ('subtitle-1', 'subtitle-2'));
|
|
24
24
|
$typography: -set-font-family($typography, $fonts);
|
|
25
25
|
|
|
26
26
|
@return $typography;
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
@function -set-font-
|
|
29
|
+
@function -set-font-for($selector, $typography, $fonts, $desired-size-settings) {
|
|
30
30
|
$desired-size: map.get($fonts, $selector, 'size');
|
|
31
|
+
$desired-spacing: map.get($fonts, $selector, 'letter-spacing');
|
|
31
32
|
|
|
32
|
-
@
|
|
33
|
-
|
|
33
|
+
@each $setting in $desired-size-settings {
|
|
34
|
+
/* stylelint-disable-next-line scss/at-if-no-null */
|
|
35
|
+
@if $desired-size != null {
|
|
34
36
|
$typography: map.set($typography, $setting, 'font-size', $desired-size);
|
|
35
37
|
}
|
|
38
|
+
|
|
39
|
+
/* stylelint-disable-next-line scss/at-if-no-null */
|
|
40
|
+
@if $desired-spacing != null {
|
|
41
|
+
$typography: map.set($typography, $setting, 'letter-spacing', $desired-spacing);
|
|
42
|
+
}
|
|
36
43
|
}
|
|
37
44
|
|
|
38
45
|
@return $typography;
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export class ControlType {
|
|
2
|
-
}
|
|
3
|
-
ControlType.text = 'text-input';
|
|
4
|
-
ControlType.select = 'select-input';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC10eXBlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9lbnRyeS1jb21wb25lbnRzL3NlYXJjaC1maWx0ZXIvc2VhcmNoLWZpbHRlci1pbnB1dC9jb250cm9sLXR5cGUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLFdBQVc7O0FBQ2IsZ0JBQUksR0FBRyxZQUFZLENBQUM7QUFDcEIsa0JBQU0sR0FBRyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgQ29udHJvbFR5cGUge1xuICAgIHN0YXRpYyB0ZXh0ID0gJ3RleHQtaW5wdXQnO1xuICAgIHN0YXRpYyBzZWxlY3QgPSAnc2VsZWN0LWlucHV0Jztcbn1cbiJdfQ==
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/** Model used to populate select filter options. */
|
|
2
|
-
export class SelectFilterOption {
|
|
3
|
-
constructor(
|
|
4
|
-
/** Key used as a value for selected option */
|
|
5
|
-
key,
|
|
6
|
-
/** String value used as display label of select option */
|
|
7
|
-
label) {
|
|
8
|
-
this.key = key;
|
|
9
|
-
this.label = label;
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWZpbHRlci1vcHRpb24ubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2VudHJ5LWNvbXBvbmVudHMvc2VhcmNoLWZpbHRlci9zZWFyY2gtZmlsdGVyLWlucHV0L2lucHV0cy9zZWxlY3QtZmlsdGVyLW9wdGlvbi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvREFBb0Q7QUFDcEQsTUFBTSxPQUFPLGtCQUFrQjtJQUMzQjtJQUNJLDhDQUE4QztJQUN2QyxHQUFNO0lBQ2IsMERBQTBEO0lBQ25ELEtBQWE7UUFGYixRQUFHLEdBQUgsR0FBRyxDQUFHO1FBRU4sVUFBSyxHQUFMLEtBQUssQ0FBUTtJQUFHLENBQUM7Q0FDL0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogTW9kZWwgdXNlZCB0byBwb3B1bGF0ZSBzZWxlY3QgZmlsdGVyIG9wdGlvbnMuICovXG5leHBvcnQgY2xhc3MgU2VsZWN0RmlsdGVyT3B0aW9uPFQ+IHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgLyoqIEtleSB1c2VkIGFzIGEgdmFsdWUgZm9yIHNlbGVjdGVkIG9wdGlvbiAqL1xuICAgICAgICBwdWJsaWMga2V5OiBULFxuICAgICAgICAvKiogU3RyaW5nIHZhbHVlIHVzZWQgYXMgZGlzcGxheSBsYWJlbCBvZiBzZWxlY3Qgb3B0aW9uICovXG4gICAgICAgIHB1YmxpYyBsYWJlbDogc3RyaW5nKSB7fVxufVxuIl19
|