ngx-techlify-core 11.3.0-beta.1 → 11.3.3
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/bundles/ngx-techlify-core.umd.js +587 -131
- package/bundles/ngx-techlify-core.umd.js.map +1 -1
- package/bundles/ngx-techlify-core.umd.min.js +2 -2
- package/bundles/ngx-techlify-core.umd.min.js.map +1 -1
- package/esm2015/lib/email-subscription/email-subscription-for-user/email-subscription-for-user-routing.module.js +7 -1
- package/esm2015/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list-routing.module.js +9 -1
- package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list-routing.module.js +10 -2
- package/esm2015/lib/material.module.js +24 -56
- package/esm2015/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-config.model.js +15 -0
- package/esm2015/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.component.js +269 -0
- package/esm2015/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.module.js +25 -0
- package/esm2015/lib/techlify-tagger-tag-selector/techlify-tagger-tag-selector.component.js +168 -0
- package/esm2015/lib/techlify-tagger-tag-selector/techlify-tagger-tag-selector.module.js +29 -0
- package/esm2015/lib/timeline-filter/timeline-filter.component.js +21 -5
- package/esm2015/public-api.js +6 -4
- package/fesm2015/ngx-techlify-core.js +486 -135
- package/fesm2015/ngx-techlify-core.js.map +1 -1
- package/lib/email-subscription/email-subscription-for-user/email-subscription-for-user-routing.module.d.ts +5 -0
- package/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list-routing.module.d.ts +7 -0
- package/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list-routing.module.d.ts +7 -0
- package/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-config.model.d.ts +12 -0
- package/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.component.d.ts +76 -0
- package/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.module.d.ts +2 -0
- package/lib/techlify-tagger-tag-selector/techlify-tagger-tag-selector.component.d.ts +58 -0
- package/lib/techlify-tagger-tag-selector/techlify-tagger-tag-selector.module.d.ts +2 -0
- package/lib/timeline-filter/timeline-filter.component.d.ts +4 -2
- package/ngx-techlify-core.metadata.json +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +5 -3
- package/esm2015/lib/image-for-model/image-for-model-routing.module.js +0 -12
- package/esm2015/lib/image-for-model/image-for-model.component.js +0 -94
- package/esm2015/lib/image-for-model/image-for-model.module.js +0 -23
- package/lib/image-for-model/image-for-model-routing.module.d.ts +0 -2
- package/lib/image-for-model/image-for-model.component.d.ts +0 -26
- package/lib/image-for-model/image-for-model.module.d.ts +0 -2
|
@@ -2,11 +2,17 @@ import { NgModule } from '@angular/core';
|
|
|
2
2
|
import { RouterModule } from '@angular/router';
|
|
3
3
|
import { AuthenticationGuard } from '../../core/authentication.guard';
|
|
4
4
|
import { EmailSubscriptionForUserComponent } from './email-subscription-for-user.component';
|
|
5
|
+
export const esfur = {
|
|
6
|
+
permissions: {
|
|
7
|
+
only: ['client_admin']
|
|
8
|
+
}
|
|
9
|
+
};
|
|
5
10
|
const routes = [
|
|
6
11
|
{
|
|
7
12
|
path: '',
|
|
8
13
|
component: EmailSubscriptionForUserComponent,
|
|
9
14
|
canActivate: [AuthenticationGuard],
|
|
15
|
+
data: esfur
|
|
10
16
|
},
|
|
11
17
|
];
|
|
12
18
|
export class EmailSubscriptionForUserRoutingModule {
|
|
@@ -17,4 +23,4 @@ EmailSubscriptionForUserRoutingModule.decorators = [
|
|
|
17
23
|
exports: [RouterModule]
|
|
18
24
|
},] }
|
|
19
25
|
];
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1haWwtc3Vic2NyaXB0aW9uLWZvci11c2VyLXJvdXRpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9lbWFpbC1zdWJzY3JpcHRpb24vZW1haWwtc3Vic2NyaXB0aW9uLWZvci11c2VyL2VtYWlsLXN1YnNjcmlwdGlvbi1mb3ItdXNlci1yb3V0aW5nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBVSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUU1RixNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUc7SUFDbkIsV0FBVyxFQUFFO1FBQ1gsSUFBSSxFQUFFLENBQUMsY0FBYyxDQUFDO0tBQ3ZCO0NBQ0YsQ0FBQztBQUVGLE1BQU0sTUFBTSxHQUFXO0lBQ3JCO1FBQ0UsSUFBSSxFQUFFLEVBQUU7UUFDUixTQUFTLEVBQUUsaUNBQWlDO1FBQzVDLFdBQVcsRUFBRSxDQUFDLG1CQUFtQixDQUFDO1FBQ2xDLElBQUksRUFBRSxLQUFLO0tBQ1o7Q0FDRixDQUFDO0FBTUYsTUFBTSxPQUFPLHFDQUFxQzs7O1lBSmpELFFBQVEsU0FBQztnQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN4QyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7YUFDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVzLCBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQXV0aGVudGljYXRpb25HdWFyZCB9IGZyb20gJy4uLy4uL2NvcmUvYXV0aGVudGljYXRpb24uZ3VhcmQnO1xuaW1wb3J0IHsgRW1haWxTdWJzY3JpcHRpb25Gb3JVc2VyQ29tcG9uZW50IH0gZnJvbSAnLi9lbWFpbC1zdWJzY3JpcHRpb24tZm9yLXVzZXIuY29tcG9uZW50JztcblxuZXhwb3J0IGNvbnN0IGVzZnVyID0ge1xuICBwZXJtaXNzaW9uczoge1xuICAgIG9ubHk6IFsnY2xpZW50X2FkbWluJ11cbiAgfVxufTtcblxuY29uc3Qgcm91dGVzOiBSb3V0ZXMgPSBbXG4gIHtcbiAgICBwYXRoOiAnJyxcbiAgICBjb21wb25lbnQ6IEVtYWlsU3Vic2NyaXB0aW9uRm9yVXNlckNvbXBvbmVudCxcbiAgICBjYW5BY3RpdmF0ZTogW0F1dGhlbnRpY2F0aW9uR3VhcmRdLFxuICAgIGRhdGE6IGVzZnVyXG4gIH0sXG5dO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbUm91dGVyTW9kdWxlLmZvckNoaWxkKHJvdXRlcyldLFxuICBleHBvcnRzOiBbUm91dGVyTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBFbWFpbFN1YnNjcmlwdGlvbkZvclVzZXJSb3V0aW5nTW9kdWxlIHsgfVxuIl19
|
|
@@ -2,11 +2,19 @@ import { NgModule } from '@angular/core';
|
|
|
2
2
|
import { RouterModule } from '@angular/router';
|
|
3
3
|
import { AuthenticationGuard } from '../../../core/authentication.guard';
|
|
4
4
|
import { EmailSubscriptionTypeListComponent } from './email-subscription-type-list.component';
|
|
5
|
+
export const estlr = {
|
|
6
|
+
title: 'Email Subscription Type',
|
|
7
|
+
permissions: {
|
|
8
|
+
only: ['client_admin'],
|
|
9
|
+
redirectTo: '/'
|
|
10
|
+
}
|
|
11
|
+
};
|
|
5
12
|
const routes = [
|
|
6
13
|
{
|
|
7
14
|
path: '',
|
|
8
15
|
component: EmailSubscriptionTypeListComponent,
|
|
9
16
|
canActivate: [AuthenticationGuard],
|
|
17
|
+
data: estlr
|
|
10
18
|
},
|
|
11
19
|
];
|
|
12
20
|
export class EmailSubscriptionTypeListRoutingModule {
|
|
@@ -17,4 +25,4 @@ EmailSubscriptionTypeListRoutingModule.decorators = [
|
|
|
17
25
|
exports: [RouterModule]
|
|
18
26
|
},] }
|
|
19
27
|
];
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1haWwtc3Vic2NyaXB0aW9uLXR5cGUtbGlzdC1yb3V0aW5nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvZW1haWwtc3Vic2NyaXB0aW9uL2VtYWlsLXN1YnNjcmlwdGlvbi10eXBlL2VtYWlsLXN1YnNjcmlwdGlvbi10eXBlLWxpc3QvZW1haWwtc3Vic2NyaXB0aW9uLXR5cGUtbGlzdC1yb3V0aW5nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBVSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUV6RSxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUU5RixNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUc7SUFDbkIsS0FBSyxFQUFFLHlCQUF5QjtJQUNoQyxXQUFXLEVBQUU7UUFDWCxJQUFJLEVBQUUsQ0FBQyxjQUFjLENBQUM7UUFDdEIsVUFBVSxFQUFFLEdBQUc7S0FDaEI7Q0FDRixDQUFDO0FBR0YsTUFBTSxNQUFNLEdBQVc7SUFDckI7UUFDRSxJQUFJLEVBQUUsRUFBRTtRQUNSLFNBQVMsRUFBRSxrQ0FBa0M7UUFDN0MsV0FBVyxFQUFFLENBQUMsbUJBQW1CLENBQUM7UUFDbEMsSUFBSSxFQUFFLEtBQUs7S0FDWjtDQUNGLENBQUM7QUFNRixNQUFNLE9BQU8sc0NBQXNDOzs7WUFKbEQsUUFBUSxTQUFDO2dCQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3hDLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQzthQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXMsIFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGlvbkd1YXJkIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9hdXRoZW50aWNhdGlvbi5ndWFyZCc7XG5cbmltcG9ydCB7IEVtYWlsU3Vic2NyaXB0aW9uVHlwZUxpc3RDb21wb25lbnQgfSBmcm9tICcuL2VtYWlsLXN1YnNjcmlwdGlvbi10eXBlLWxpc3QuY29tcG9uZW50JztcblxuZXhwb3J0IGNvbnN0IGVzdGxyID0ge1xuICB0aXRsZTogJ0VtYWlsIFN1YnNjcmlwdGlvbiBUeXBlJyxcbiAgcGVybWlzc2lvbnM6IHtcbiAgICBvbmx5OiBbJ2NsaWVudF9hZG1pbiddLFxuICAgIHJlZGlyZWN0VG86ICcvJ1xuICB9XG59O1xuXG5cbmNvbnN0IHJvdXRlczogUm91dGVzID0gW1xuICB7XG4gICAgcGF0aDogJycsXG4gICAgY29tcG9uZW50OiBFbWFpbFN1YnNjcmlwdGlvblR5cGVMaXN0Q29tcG9uZW50LFxuICAgIGNhbkFjdGl2YXRlOiBbQXV0aGVudGljYXRpb25HdWFyZF0sXG4gICAgZGF0YTogZXN0bHJcbiAgfSxcbl07XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQocm91dGVzKV0sXG4gIGV4cG9ydHM6IFtSb3V0ZXJNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIEVtYWlsU3Vic2NyaXB0aW9uVHlwZUxpc3RSb3V0aW5nTW9kdWxlIHsgfVxuIl19
|
|
@@ -2,11 +2,19 @@ import { NgModule } from '@angular/core';
|
|
|
2
2
|
import { RouterModule } from '@angular/router';
|
|
3
3
|
import { AuthenticationGuard } from '../../../core/authentication.guard';
|
|
4
4
|
import { EmailSubscriptionUserListComponent } from './email-subscription-user-list.component';
|
|
5
|
+
export const esulr = {
|
|
6
|
+
title: 'Email Subscription Users',
|
|
7
|
+
permissions: {
|
|
8
|
+
only: ['app_admin'],
|
|
9
|
+
redirectTo: '/'
|
|
10
|
+
}
|
|
11
|
+
};
|
|
5
12
|
const routes = [
|
|
6
13
|
{
|
|
7
14
|
path: '',
|
|
8
15
|
component: EmailSubscriptionUserListComponent,
|
|
9
|
-
canActivate: [AuthenticationGuard]
|
|
16
|
+
canActivate: [AuthenticationGuard],
|
|
17
|
+
data: esulr
|
|
10
18
|
},
|
|
11
19
|
];
|
|
12
20
|
export class EmailSubscriptionUserListRoutingModule {
|
|
@@ -17,4 +25,4 @@ EmailSubscriptionUserListRoutingModule.decorators = [
|
|
|
17
25
|
exports: [RouterModule]
|
|
18
26
|
},] }
|
|
19
27
|
];
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1haWwtc3Vic2NyaXB0aW9uLXVzZXItbGlzdC1yb3V0aW5nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvZW1haWwtc3Vic2NyaXB0aW9uL2VtYWlsLXN1YnNjcmlwdGlvbi11c2VyL2VtYWlsLXN1YnNjcmlwdGlvbi11c2VyLWxpc3QvZW1haWwtc3Vic2NyaXB0aW9uLXVzZXItbGlzdC1yb3V0aW5nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBVSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUU5RixNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUc7SUFDbkIsS0FBSyxFQUFFLDBCQUEwQjtJQUNqQyxXQUFXLEVBQUU7UUFDWCxJQUFJLEVBQUUsQ0FBQyxXQUFXLENBQUM7UUFDbkIsVUFBVSxFQUFFLEdBQUc7S0FDaEI7Q0FDRixDQUFDO0FBRUYsTUFBTSxNQUFNLEdBQVc7SUFDckI7UUFDRSxJQUFJLEVBQUUsRUFBRTtRQUNSLFNBQVMsRUFBRSxrQ0FBa0M7UUFDN0MsV0FBVyxFQUFFLENBQUMsbUJBQW1CLENBQUM7UUFDbEMsSUFBSSxFQUFFLEtBQUs7S0FDWjtDQUNGLENBQUM7QUFNRixNQUFNLE9BQU8sc0NBQXNDOzs7WUFKbEQsUUFBUSxTQUFDO2dCQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3hDLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQzthQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXMsIFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGlvbkd1YXJkIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9hdXRoZW50aWNhdGlvbi5ndWFyZCc7XG5pbXBvcnQgeyBFbWFpbFN1YnNjcmlwdGlvblVzZXJMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9lbWFpbC1zdWJzY3JpcHRpb24tdXNlci1saXN0LmNvbXBvbmVudCc7XG5cbmV4cG9ydCBjb25zdCBlc3VsciA9IHtcbiAgdGl0bGU6ICdFbWFpbCBTdWJzY3JpcHRpb24gVXNlcnMnLFxuICBwZXJtaXNzaW9uczoge1xuICAgIG9ubHk6IFsnYXBwX2FkbWluJ10sXG4gICAgcmVkaXJlY3RUbzogJy8nXG4gIH1cbn07XG5cbmNvbnN0IHJvdXRlczogUm91dGVzID0gW1xuICB7XG4gICAgcGF0aDogJycsXG4gICAgY29tcG9uZW50OiBFbWFpbFN1YnNjcmlwdGlvblVzZXJMaXN0Q29tcG9uZW50LFxuICAgIGNhbkFjdGl2YXRlOiBbQXV0aGVudGljYXRpb25HdWFyZF0sXG4gICAgZGF0YTogZXN1bHJcbiAgfSxcbl07XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQocm91dGVzKV0sXG4gIGV4cG9ydHM6IFtSb3V0ZXJNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIEVtYWlsU3Vic2NyaXB0aW9uVXNlckxpc3RSb3V0aW5nTW9kdWxlIHsgfVxuIl19
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
1
2
|
/*
|
|
2
3
|
* This module imports and re-exports all Angular Material modules for convenience,
|
|
3
4
|
* so only 1 module import is needed in your feature modules.
|
|
@@ -5,86 +6,53 @@
|
|
|
5
6
|
*
|
|
6
7
|
* To optimize your production builds, you should only import the components used in your app.
|
|
7
8
|
*/
|
|
8
|
-
import { NgModule } from
|
|
9
|
-
import { MatCommonModule, MatLineModule, MatNativeDateModule, MatOptionModule, MatPseudoCheckboxModule, MatRippleModule } from
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
9
|
+
import { NgModule } from "@angular/core";
|
|
10
|
+
import { MatCommonModule, MatLineModule, MatNativeDateModule, MatOptionModule, MatPseudoCheckboxModule, MatRippleModule } from "@angular/material/core";
|
|
11
|
+
import { MatButtonModule } from "@angular/material/button";
|
|
12
|
+
import { MatCheckboxModule } from "@angular/material/checkbox";
|
|
13
|
+
import { MatDialogModule } from "@angular/material/dialog";
|
|
14
|
+
import { MatFormFieldModule } from "@angular/material/form-field";
|
|
15
|
+
import { MatIconModule } from "@angular/material/icon";
|
|
16
|
+
import { MatInputModule } from "@angular/material/input";
|
|
17
|
+
import { MatMenuModule } from "@angular/material/menu";
|
|
18
|
+
import { MatProgressSpinnerModule } from "@angular/material/progress-spinner";
|
|
19
|
+
import { MatSelectModule } from "@angular/material/select";
|
|
20
|
+
import { MatSortModule } from "@angular/material/sort";
|
|
21
|
+
import { MatTableModule } from "@angular/material/table";
|
|
22
|
+
import { MatCardModule } from "@angular/material/card";
|
|
23
|
+
import { MatDividerModule } from "@angular/material/divider";
|
|
24
|
+
import { MatChipsModule } from "@angular/material/chips";
|
|
17
25
|
import { MatDatepickerModule } from '@angular/material/datepicker';
|
|
18
|
-
import { MatDialogModule } from '@angular/material/dialog';
|
|
19
|
-
import { MatDividerModule } from '@angular/material/divider';
|
|
20
|
-
import { MatExpansionModule } from '@angular/material/expansion';
|
|
21
|
-
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
22
|
-
import { MatGridListModule } from '@angular/material/grid-list';
|
|
23
|
-
import { MatIconModule } from '@angular/material/icon';
|
|
24
|
-
import { MatInputModule } from '@angular/material/input';
|
|
25
26
|
import { MatListModule } from '@angular/material/list';
|
|
26
|
-
import { MatMenuModule } from '@angular/material/menu';
|
|
27
|
-
import { MatPaginatorModule } from '@angular/material/paginator';
|
|
28
|
-
import { MatProgressBarModule } from '@angular/material/progress-bar';
|
|
29
|
-
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
30
|
-
import { MatRadioModule } from '@angular/material/radio';
|
|
31
|
-
import { MatSelectModule } from '@angular/material/select';
|
|
32
|
-
import { MatSidenavModule } from '@angular/material/sidenav';
|
|
33
|
-
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
|
|
34
|
-
import { MatSliderModule } from '@angular/material/slider';
|
|
35
|
-
import { MatSnackBarModule } from '@angular/material/snack-bar';
|
|
36
|
-
import { MatSortModule } from '@angular/material/sort';
|
|
37
|
-
import { MatStepperModule } from '@angular/material/stepper';
|
|
38
|
-
import { MatTableModule } from '@angular/material/table';
|
|
39
|
-
import { MatTabsModule } from '@angular/material/tabs';
|
|
40
|
-
import { MatToolbarModule } from '@angular/material/toolbar';
|
|
41
|
-
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
42
|
-
import { MatTreeModule } from '@angular/material/tree';
|
|
43
27
|
export class MaterialModule {
|
|
44
28
|
}
|
|
45
29
|
MaterialModule.decorators = [
|
|
46
30
|
{ type: NgModule, args: [{
|
|
47
31
|
exports: [
|
|
48
|
-
MatAutocompleteModule,
|
|
49
|
-
MatBadgeModule,
|
|
50
32
|
MatButtonModule,
|
|
51
|
-
MatButtonToggleModule,
|
|
52
|
-
MatCardModule,
|
|
53
33
|
MatCheckboxModule,
|
|
54
|
-
MatChipsModule,
|
|
55
34
|
MatCommonModule,
|
|
56
|
-
MatDatepickerModule,
|
|
57
35
|
MatDialogModule,
|
|
58
|
-
MatDividerModule,
|
|
59
|
-
MatExpansionModule,
|
|
60
36
|
MatFormFieldModule,
|
|
61
|
-
MatGridListModule,
|
|
62
37
|
MatIconModule,
|
|
63
38
|
MatInputModule,
|
|
64
39
|
MatLineModule,
|
|
65
|
-
MatListModule,
|
|
66
40
|
MatMenuModule,
|
|
67
41
|
MatNativeDateModule,
|
|
68
42
|
MatOptionModule,
|
|
69
|
-
MatPaginatorModule,
|
|
70
|
-
MatProgressBarModule,
|
|
71
43
|
MatProgressSpinnerModule,
|
|
72
44
|
MatPseudoCheckboxModule,
|
|
73
|
-
MatRadioModule,
|
|
74
45
|
MatRippleModule,
|
|
75
46
|
MatSelectModule,
|
|
76
|
-
MatSidenavModule,
|
|
77
|
-
MatSlideToggleModule,
|
|
78
|
-
MatSliderModule,
|
|
79
|
-
MatSnackBarModule,
|
|
80
47
|
MatSortModule,
|
|
81
|
-
MatStepperModule,
|
|
82
48
|
MatTableModule,
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
49
|
+
MatCardModule,
|
|
50
|
+
MatDividerModule,
|
|
51
|
+
MatChipsModule,
|
|
52
|
+
MatDatepickerModule,
|
|
53
|
+
MatListModule,
|
|
54
|
+
MatTooltipModule
|
|
87
55
|
]
|
|
88
56
|
},] }
|
|
89
57
|
];
|
|
90
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9tYXRlcmlhbC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0Q7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQ0wsZUFBZSxFQUNmLGFBQWEsRUFDYixtQkFBbUIsRUFDbkIsZUFBZSxFQUNmLHVCQUF1QixFQUN2QixlQUFlLEVBQ2hCLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQThCdEQsTUFBTSxPQUFPLGNBQWM7OztZQTNCMUIsUUFBUSxTQUFDO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCxlQUFlO29CQUNmLGlCQUFpQjtvQkFDakIsZUFBZTtvQkFDZixlQUFlO29CQUNmLGtCQUFrQjtvQkFDbEIsYUFBYTtvQkFDYixjQUFjO29CQUNkLGFBQWE7b0JBQ2IsYUFBYTtvQkFDYixtQkFBbUI7b0JBQ25CLGVBQWU7b0JBQ2Ysd0JBQXdCO29CQUN4Qix1QkFBdUI7b0JBQ3ZCLGVBQWU7b0JBQ2YsZUFBZTtvQkFDZixhQUFhO29CQUNiLGNBQWM7b0JBQ2QsYUFBYTtvQkFDYixnQkFBZ0I7b0JBQ2hCLGNBQWM7b0JBQ2QsbUJBQW1CO29CQUNuQixhQUFhO29CQUNiLGdCQUFnQjtpQkFDakI7YUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbi8qXG4gKiBUaGlzIG1vZHVsZSBpbXBvcnRzIGFuZCByZS1leHBvcnRzIGFsbCBBbmd1bGFyIE1hdGVyaWFsIG1vZHVsZXMgZm9yIGNvbnZlbmllbmNlLFxuICogc28gb25seSAxIG1vZHVsZSBpbXBvcnQgaXMgbmVlZGVkIGluIHlvdXIgZmVhdHVyZSBtb2R1bGVzLlxuICogU2VlIGh0dHBzOi8vbWF0ZXJpYWwuYW5ndWxhci5pby9ndWlkZS9nZXR0aW5nLXN0YXJ0ZWQjc3RlcC0zLWltcG9ydC10aGUtY29tcG9uZW50LW1vZHVsZXMuXG4gKlxuICogVG8gb3B0aW1pemUgeW91ciBwcm9kdWN0aW9uIGJ1aWxkcywgeW91IHNob3VsZCBvbmx5IGltcG9ydCB0aGUgY29tcG9uZW50cyB1c2VkIGluIHlvdXIgYXBwLlxuICovXG5cbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7XG4gIE1hdENvbW1vbk1vZHVsZSxcbiAgTWF0TGluZU1vZHVsZSxcbiAgTWF0TmF0aXZlRGF0ZU1vZHVsZSxcbiAgTWF0T3B0aW9uTW9kdWxlLFxuICBNYXRQc2V1ZG9DaGVja2JveE1vZHVsZSxcbiAgTWF0UmlwcGxlTW9kdWxlXG59IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9jb3JlXCI7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uXCI7XG5pbXBvcnQgeyBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveFwiO1xuaW1wb3J0IHsgTWF0RGlhbG9nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RpYWxvZ1wiO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGRcIjtcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvblwiO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXRcIjtcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudVwiO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXJcIjtcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3RcIjtcbmltcG9ydCB7IE1hdFNvcnRNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydFwiO1xuaW1wb3J0IHsgTWF0VGFibGVNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGVcIjtcbmltcG9ydCB7IE1hdENhcmRNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZFwiO1xuaW1wb3J0IHsgTWF0RGl2aWRlck1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaXZpZGVyXCI7XG5pbXBvcnQgeyBNYXRDaGlwc01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9jaGlwc1wiO1xuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xuaW1wb3J0IHsgTWF0TGlzdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnXG5cblxuQE5nTW9kdWxlKHtcbiAgZXhwb3J0czogW1xuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRDaGVja2JveE1vZHVsZSxcbiAgICBNYXRDb21tb25Nb2R1bGUsXG4gICAgTWF0RGlhbG9nTW9kdWxlLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIE1hdExpbmVNb2R1bGUsXG4gICAgTWF0TWVudU1vZHVsZSxcbiAgICBNYXROYXRpdmVEYXRlTW9kdWxlLFxuICAgIE1hdE9wdGlvbk1vZHVsZSxcbiAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXG4gICAgTWF0UHNldWRvQ2hlY2tib3hNb2R1bGUsXG4gICAgTWF0UmlwcGxlTW9kdWxlLFxuICAgIE1hdFNlbGVjdE1vZHVsZSxcbiAgICBNYXRTb3J0TW9kdWxlLFxuICAgIE1hdFRhYmxlTW9kdWxlLFxuICAgIE1hdENhcmRNb2R1bGUsXG4gICAgTWF0RGl2aWRlck1vZHVsZSxcbiAgICBNYXRDaGlwc01vZHVsZSxcbiAgICBNYXREYXRlcGlja2VyTW9kdWxlLFxuICAgIE1hdExpc3RNb2R1bGUsXG4gICAgTWF0VG9vbHRpcE1vZHVsZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIE1hdGVyaWFsTW9kdWxlIHsgfVxuIl19
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { COMMA, ENTER } from '@angular/cdk/keycodes';
|
|
2
|
+
export class TechlifyTaggerTagFormConfigModel {
|
|
3
|
+
constructor() {
|
|
4
|
+
this.selectable = true;
|
|
5
|
+
this.removable = true;
|
|
6
|
+
this.separatorKeysCodes = [ENTER, COMMA];
|
|
7
|
+
this.placeholder = 'New Tag..';
|
|
8
|
+
this.apiUrl = 'api/techlify-tagger-tags';
|
|
9
|
+
this.createApiUrl = 'api/techlify-tagger-tags';
|
|
10
|
+
this.isCreateable = true;
|
|
11
|
+
this.isCacheTags = false;
|
|
12
|
+
this.isSingle = false;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaGxpZnktdGFnZ2VyLXRhZy1mb3JtLWNvbmZpZy5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvdGVjaGxpZnktdGFnZ2VyLXRhZy1mb3JtLWZpZWxkL3RlY2hsaWZ5LXRhZ2dlci10YWctZm9ybS1jb25maWcubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVyRCxNQUFNLE9BQU8sZ0NBQWdDO0lBV3pDO1FBQ0ksSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQy9CLElBQUksQ0FBQyxNQUFNLEdBQUcsMEJBQTBCLENBQUM7UUFDekMsSUFBSSxDQUFDLFlBQVksR0FBRywwQkFBMEIsQ0FBQztRQUMvQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUMxQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDT01NQSwgRU5URVIgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuXG5leHBvcnQgY2xhc3MgVGVjaGxpZnlUYWdnZXJUYWdGb3JtQ29uZmlnTW9kZWwge1xuICAgIHNlbGVjdGFibGU6IGJvb2xlYW47XG4gICAgcmVtb3ZhYmxlOiBib29sZWFuO1xuICAgIHNlcGFyYXRvcktleXNDb2RlczogbnVtYmVyW107XG4gICAgcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgICBhcGlVcmw6IHN0cmluZztcbiAgICBpc0NyZWF0ZWFibGU6IGJvb2xlYW47XG4gICAgY3JlYXRlQXBpVXJsOiBzdHJpbmc7XG4gICAgaXNDYWNoZVRhZ3M6IGJvb2xlYW47XG4gICAgaXNTaW5nbGU6IGJvb2xlYW47XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RhYmxlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5yZW1vdmFibGUgPSB0cnVlO1xuICAgICAgICB0aGlzLnNlcGFyYXRvcktleXNDb2RlcyA9IFtFTlRFUiwgQ09NTUFdO1xuICAgICAgICB0aGlzLnBsYWNlaG9sZGVyID0gJ05ldyBUYWcuLic7XG4gICAgICAgIHRoaXMuYXBpVXJsID0gJ2FwaS90ZWNobGlmeS10YWdnZXItdGFncyc7XG4gICAgICAgIHRoaXMuY3JlYXRlQXBpVXJsID0gJ2FwaS90ZWNobGlmeS10YWdnZXItdGFncyc7XG4gICAgICAgIHRoaXMuaXNDcmVhdGVhYmxlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5pc0NhY2hlVGFncyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmlzU2luZ2xlID0gZmFsc2U7XG4gICAgfVxufSJdfQ==
|
package/esm2015/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.component.js
ADDED
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
var TechlifyTaggerTagFormFieldComponent_1;
|
|
2
|
+
import { __awaiter, __decorate } from "tslib";
|
|
3
|
+
import { FocusMonitor } from '@angular/cdk/a11y';
|
|
4
|
+
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
5
|
+
import { Component, ElementRef, ViewChild, Input, Inject, Optional, Self } from '@angular/core';
|
|
6
|
+
import { FormControl, NgControl } from '@angular/forms';
|
|
7
|
+
import { MatFormField, MatFormFieldControl, MAT_FORM_FIELD } from '@angular/material/form-field';
|
|
8
|
+
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
|
|
9
|
+
import { Subject } from 'rxjs';
|
|
10
|
+
import { debounceTime } from 'rxjs/operators';
|
|
11
|
+
import { HttpService } from '../core/http.service';
|
|
12
|
+
import { TechlifyTaggerTagFormConfigModel } from './techlify-tagger-tag-form-config.model';
|
|
13
|
+
let TechlifyTaggerTagFormFieldComponent = TechlifyTaggerTagFormFieldComponent_1 = class TechlifyTaggerTagFormFieldComponent {
|
|
14
|
+
constructor(_focusMonitor, _elementRef, httpService, _formField, ngControl) {
|
|
15
|
+
this._focusMonitor = _focusMonitor;
|
|
16
|
+
this._elementRef = _elementRef;
|
|
17
|
+
this.httpService = httpService;
|
|
18
|
+
this._formField = _formField;
|
|
19
|
+
this.ngControl = ngControl;
|
|
20
|
+
this.stateChanges = new Subject();
|
|
21
|
+
this.focused = false;
|
|
22
|
+
this.controlType = 'techlify-tagger-form-field';
|
|
23
|
+
this.id = `techlify-tagger-form-field-${TechlifyTaggerTagFormFieldComponent_1.nextId++}`;
|
|
24
|
+
this.onChange = (_) => { };
|
|
25
|
+
this.onTouched = () => { };
|
|
26
|
+
this.tagInputCtrl = new FormControl();
|
|
27
|
+
/**Pass the configuration for Techlify Tagger */
|
|
28
|
+
this.config = new TechlifyTaggerTagFormConfigModel();
|
|
29
|
+
/**Pass the default list of tags */
|
|
30
|
+
this._allTags = [];
|
|
31
|
+
/**Pass the Categories to filter for a model */
|
|
32
|
+
this.categories = [];
|
|
33
|
+
this._required = false;
|
|
34
|
+
this._disabled = false;
|
|
35
|
+
this._value = [];
|
|
36
|
+
this.tagInputCtrl.valueChanges
|
|
37
|
+
.subscribe(filterValue => {
|
|
38
|
+
this.filterString = filterValue;
|
|
39
|
+
});
|
|
40
|
+
//Set Focus Monitor
|
|
41
|
+
_focusMonitor.monitor(_elementRef, true).subscribe(origin => {
|
|
42
|
+
if (this.focused && !origin) {
|
|
43
|
+
this.onTouched();
|
|
44
|
+
}
|
|
45
|
+
this.focused = !!origin;
|
|
46
|
+
this.stateChanges.next();
|
|
47
|
+
});
|
|
48
|
+
if (this.ngControl != null) {
|
|
49
|
+
this.ngControl.valueAccessor = this;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
get allTags() {
|
|
53
|
+
return this._allTags;
|
|
54
|
+
}
|
|
55
|
+
set allTags(value) {
|
|
56
|
+
this._allTags = value;
|
|
57
|
+
}
|
|
58
|
+
get tags() {
|
|
59
|
+
return this.allTags.filter(x => this.value.some(y => y == x.id));
|
|
60
|
+
}
|
|
61
|
+
//Default Getter and Setters for a Form Field Implementation
|
|
62
|
+
get empty() {
|
|
63
|
+
return this.value.length == 0;
|
|
64
|
+
}
|
|
65
|
+
get shouldLabelFloat() {
|
|
66
|
+
return this.focused || !this.empty || this.tagInputCtrl.value;
|
|
67
|
+
}
|
|
68
|
+
get required() {
|
|
69
|
+
return this._required;
|
|
70
|
+
}
|
|
71
|
+
set required(value) {
|
|
72
|
+
this._required = coerceBooleanProperty(value);
|
|
73
|
+
this.stateChanges.next();
|
|
74
|
+
}
|
|
75
|
+
get disabled() {
|
|
76
|
+
return this._disabled;
|
|
77
|
+
}
|
|
78
|
+
set disabled(value) {
|
|
79
|
+
this._disabled = coerceBooleanProperty(value);
|
|
80
|
+
this._disabled ? this.tagInputCtrl.disable() : this.tagInputCtrl.enable();
|
|
81
|
+
this.stateChanges.next();
|
|
82
|
+
}
|
|
83
|
+
get value() {
|
|
84
|
+
return this._value;
|
|
85
|
+
}
|
|
86
|
+
set value(tagIds) {
|
|
87
|
+
this._value = tagIds || [];
|
|
88
|
+
this.stateChanges.next();
|
|
89
|
+
}
|
|
90
|
+
get errorState() {
|
|
91
|
+
return this.tagInputCtrl.dirty && this.required && (this.value.length == 0);
|
|
92
|
+
}
|
|
93
|
+
get placeholder() {
|
|
94
|
+
return this._placeholder;
|
|
95
|
+
}
|
|
96
|
+
set placeholder(value) {
|
|
97
|
+
this._placeholder = value;
|
|
98
|
+
this.stateChanges.next();
|
|
99
|
+
}
|
|
100
|
+
ngOnInit() {
|
|
101
|
+
}
|
|
102
|
+
ngOnChanges(changes) {
|
|
103
|
+
//API to load all tags for the model type
|
|
104
|
+
if (this.allTags.length == 0) {
|
|
105
|
+
this.httpService
|
|
106
|
+
.cache(!this.config.isCacheTags)
|
|
107
|
+
.get(this.config.apiUrl, {
|
|
108
|
+
params: {
|
|
109
|
+
categories: this.categories.join(','),
|
|
110
|
+
perPage: '1000'
|
|
111
|
+
}
|
|
112
|
+
}).pipe(debounceTime(500), untilDestroyed(this)).subscribe((result) => {
|
|
113
|
+
this.allTags = result.data;
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
//API to load only the selected tags for the model
|
|
117
|
+
if (this.modelId && this.value.length == 0) {
|
|
118
|
+
//Model Id is passed and no tags are present, so we query db for the avilable tags for the model ID.
|
|
119
|
+
this.httpService
|
|
120
|
+
.cache(!this.config.isCacheTags)
|
|
121
|
+
.get(this.config.apiUrl, {
|
|
122
|
+
params: {
|
|
123
|
+
categories: this.categories.join(','),
|
|
124
|
+
model_type: this.modelType,
|
|
125
|
+
model_id: this.modelId,
|
|
126
|
+
perPage: '1000'
|
|
127
|
+
}
|
|
128
|
+
}).pipe(debounceTime(500), untilDestroyed(this)).subscribe((result) => {
|
|
129
|
+
this.value = ((result === null || result === void 0 ? void 0 : result.data) || []).map((x) => x.id);
|
|
130
|
+
this._handleInput();
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
init() {
|
|
135
|
+
if (this.modelId && this.allTags.length == 0) {
|
|
136
|
+
//Model Id is passed and no tags are passed, so we query db for the avilable tags for the model ID.
|
|
137
|
+
this.httpService
|
|
138
|
+
.cache(!this.config.isCacheTags)
|
|
139
|
+
.get(this.config.apiUrl, {
|
|
140
|
+
params: {
|
|
141
|
+
categories: this.categories.join(','),
|
|
142
|
+
model_type: this.modelType,
|
|
143
|
+
model_id: this.modelId
|
|
144
|
+
}
|
|
145
|
+
}).pipe(untilDestroyed(this)).subscribe((result) => {
|
|
146
|
+
this.allTags = result.data;
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
get filteredTags() {
|
|
151
|
+
return this._filter();
|
|
152
|
+
}
|
|
153
|
+
setDescribedByIds(ids) {
|
|
154
|
+
// Just a empty implementation for Mat Form Field Interface
|
|
155
|
+
}
|
|
156
|
+
onContainerClick() {
|
|
157
|
+
// Just a empty implementation for Mat Form Field Interface
|
|
158
|
+
}
|
|
159
|
+
add(event) {
|
|
160
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
161
|
+
const value = (event.value || '').trim();
|
|
162
|
+
// Add our tag
|
|
163
|
+
// Validate for single mode
|
|
164
|
+
if (!this.config.isSingle || (this.value.length === 0)) {
|
|
165
|
+
if (value && this.config.isCreateable) {
|
|
166
|
+
const tags = this.allTags;
|
|
167
|
+
let tag = tags.find((item) => item.title.toLowerCase() == value.toLowerCase());
|
|
168
|
+
if (!tag) {
|
|
169
|
+
//No tag present in the list
|
|
170
|
+
try {
|
|
171
|
+
const result = yield this.httpService.post(this.config.createApiUrl, {
|
|
172
|
+
title: value,
|
|
173
|
+
description: value,
|
|
174
|
+
category_title: (this.categories.length > 0) ? (this.defaultCreateCategory ? this.defaultCreateCategory : this.categories[0]) : ''
|
|
175
|
+
}).toPromise();
|
|
176
|
+
tag = result.item;
|
|
177
|
+
}
|
|
178
|
+
catch (error) {
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
this.allTags.push(tag);
|
|
182
|
+
}
|
|
183
|
+
else {
|
|
184
|
+
//Optionally clean the existing value, to avoid duplicate
|
|
185
|
+
this.remove(tag);
|
|
186
|
+
}
|
|
187
|
+
this.value.push(tag.id);
|
|
188
|
+
this._handleInput();
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
// Clear the input value
|
|
192
|
+
event.input.value = '';
|
|
193
|
+
this.tagInputCtrl.setValue(null);
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
remove(tag) {
|
|
197
|
+
this.value = this.value.filter(x => x !== tag.id);
|
|
198
|
+
this._handleInput();
|
|
199
|
+
}
|
|
200
|
+
selected(event) {
|
|
201
|
+
// Validate for single mode
|
|
202
|
+
if (!this.config.isSingle || (this.value.length === 0)) {
|
|
203
|
+
//Clean the existing value, to avoid duplicate
|
|
204
|
+
this.remove({ id: event.option.value });
|
|
205
|
+
this.value.push(event.option.value);
|
|
206
|
+
this._handleInput();
|
|
207
|
+
}
|
|
208
|
+
this.tagInput.nativeElement.value = '';
|
|
209
|
+
this.tagInputCtrl.setValue(null);
|
|
210
|
+
}
|
|
211
|
+
_filter() {
|
|
212
|
+
const filterValue = this.filterString ? this.filterString.toString().toLowerCase() : null;
|
|
213
|
+
const availableTags = this.allTags.filter((tag) => !this.value.some((item) => item == tag.id));
|
|
214
|
+
return filterValue ? availableTags.filter((tag) => tag.title.toLowerCase().includes(filterValue)) : availableTags;
|
|
215
|
+
}
|
|
216
|
+
writeValue(tagIds) {
|
|
217
|
+
this.value = tagIds || [];
|
|
218
|
+
}
|
|
219
|
+
registerOnChange(fn) {
|
|
220
|
+
this.onChange = fn;
|
|
221
|
+
}
|
|
222
|
+
registerOnTouched(fn) {
|
|
223
|
+
this.onTouched = fn;
|
|
224
|
+
}
|
|
225
|
+
setDisabledState(isDisabled) {
|
|
226
|
+
this.disabled = isDisabled;
|
|
227
|
+
}
|
|
228
|
+
_handleInput() {
|
|
229
|
+
this.onChange(this.value);
|
|
230
|
+
}
|
|
231
|
+
ngOnDestroy() {
|
|
232
|
+
this.stateChanges.complete();
|
|
233
|
+
this._focusMonitor.stopMonitoring(this._elementRef);
|
|
234
|
+
}
|
|
235
|
+
};
|
|
236
|
+
TechlifyTaggerTagFormFieldComponent.nextId = 0;
|
|
237
|
+
TechlifyTaggerTagFormFieldComponent.decorators = [
|
|
238
|
+
{ type: Component, args: [{
|
|
239
|
+
selector: 'app-techlify-tagger-tag-form-field',
|
|
240
|
+
template: "<mat-chip-list #chipList aria-label=\"Tag Selection\">\n <mat-chip *ngFor=\"let tag of tags\" [selectable]=\"config.selectable\" [removable]=\"config.removable\"\n (removed)=\"remove(tag)\">\n {{tag.title}}\n <button matChipRemove *ngIf=\"config.removable\" class=\"border-0\">\n <mat-icon class=\"mat-relative-icon\">cancel</mat-icon>\n </button>\n </mat-chip>\n <input placeholder=\"{{config.isCreateable? config.placeholder:''}}\" #tagInput [formControl]=\"tagInputCtrl\"\n [matAutocomplete]=\"auto\" [matChipInputFor]=\"chipList\"\n [matChipInputSeparatorKeyCodes]=\"config.separatorKeysCodes\" (matChipInputTokenEnd)=\"add($event)\"\n #trigger=\"matAutocompleteTrigger\" (click)=\"trigger.openPanel()\">\n</mat-chip-list>\n<mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"selected($event)\">\n <mat-option *ngFor=\"let tag of filteredTags\" [value]=\"tag.id\">\n {{tag.title}}\n </mat-option>\n</mat-autocomplete>",
|
|
241
|
+
providers: [{ provide: MatFormFieldControl, useExisting: TechlifyTaggerTagFormFieldComponent_1 }],
|
|
242
|
+
styles: [".mat-relative-icon{font-size:20px;position:relative;right:7px;top:-3px}"]
|
|
243
|
+
},] }
|
|
244
|
+
];
|
|
245
|
+
TechlifyTaggerTagFormFieldComponent.ctorParameters = () => [
|
|
246
|
+
{ type: FocusMonitor },
|
|
247
|
+
{ type: ElementRef },
|
|
248
|
+
{ type: HttpService },
|
|
249
|
+
{ type: MatFormField, decorators: [{ type: Optional }, { type: Inject, args: [MAT_FORM_FIELD,] }] },
|
|
250
|
+
{ type: NgControl, decorators: [{ type: Optional }, { type: Self }] }
|
|
251
|
+
];
|
|
252
|
+
TechlifyTaggerTagFormFieldComponent.propDecorators = {
|
|
253
|
+
tagInput: [{ type: ViewChild, args: ['tagInput',] }],
|
|
254
|
+
config: [{ type: Input }],
|
|
255
|
+
modelType: [{ type: Input }],
|
|
256
|
+
modelId: [{ type: Input }],
|
|
257
|
+
allTags: [{ type: Input }],
|
|
258
|
+
categories: [{ type: Input }],
|
|
259
|
+
defaultCreateCategory: [{ type: Input }],
|
|
260
|
+
required: [{ type: Input }],
|
|
261
|
+
disabled: [{ type: Input }],
|
|
262
|
+
value: [{ type: Input }],
|
|
263
|
+
placeholder: [{ type: Input }]
|
|
264
|
+
};
|
|
265
|
+
TechlifyTaggerTagFormFieldComponent = TechlifyTaggerTagFormFieldComponent_1 = __decorate([
|
|
266
|
+
UntilDestroy()
|
|
267
|
+
], TechlifyTaggerTagFormFieldComponent);
|
|
268
|
+
export { TechlifyTaggerTagFormFieldComponent };
|
|
269
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaGxpZnktdGFnZ2VyLXRhZy1mb3JtLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvdGVjaGxpZnktdGFnZ2VyLXRhZy1mb3JtLWZpZWxkL3RlY2hsaWZ5LXRhZ2dlci10YWctZm9ybS1maWVsZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVFLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQWEsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQTRCLE1BQU0sZUFBZSxDQUFDO0FBQzdJLE9BQU8sRUFBd0IsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzlFLE9BQU8sRUFBRSxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDakcsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0seUNBQXlDLENBQUM7SUFTOUUsbUNBQW1DLGlEQUFuQyxtQ0FBbUM7SUFxSzlDLFlBQ1UsYUFBMkIsRUFDM0IsV0FBb0MsRUFDcEMsV0FBd0IsRUFDVyxVQUF3QixFQUN4QyxTQUFvQjtRQUp2QyxrQkFBYSxHQUFiLGFBQWEsQ0FBYztR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QztJQUM1QixDQUFDO0lBS0QsV0FBVztRQUNULElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3RELENBQUM7Q0FFRixDQUFBO0FBN1JRLDBDQUFNLEdBQUcsQ0FBQyxDQUFDOztZQVJuQixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLG9DQUFvQztnQkFDOUMsa2dDQUE4RDtnQkFFOUQsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLHFDQUFtQyxFQUFFLENBQUM7O2FBQ2hHOzs7WUFuQlEsWUFBWTtZQUVELFVBQVU7WUFRckIsV0FBVztZQUpYLFlBQVksdUJBdUxoQixRQUFRLFlBQUksTUFBTSxTQUFDLGNBQWM7WUExTE0sU0FBUyx1QkEyTGhELFFBQVEsWUFBSSxJQUFJOzs7dUJBN0psQixTQUFTLFNBQUMsVUFBVTtxQkFHcEIsS0FBSzt3QkFFTCxLQUFLO3NCQUVMLEtBQUs7c0JBSUwsS0FBSzt5QkFTTCxLQUFLO29DQUVMLEtBQUs7dUJBZUwsS0FBSzt1QkFVTCxLQUFLO29CQWFMLEtBQUs7MEJBYUwsS0FBSzs7QUF0RkssbUNBQW1DO0lBUC9DLFlBQVksRUFBRTtHQU9GLG1DQUFtQyxDQStSL0M7U0EvUlksbUNBQW1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9jdXNNb25pdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBWaWV3Q2hpbGQsIE9uSW5pdCwgSW5wdXQsIE9uRGVzdHJveSwgSW5qZWN0LCBPcHRpb25hbCwgU2VsZiwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUNvbnRyb2wsIE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHsgTWF0Q2hpcElucHV0RXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGlwcyc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGQsIE1hdEZvcm1GaWVsZENvbnRyb2wsIE1BVF9GT1JNX0ZJRUxEIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBVbnRpbERlc3Ryb3ksIHVudGlsRGVzdHJveWVkIH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEh0dHBTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9odHRwLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGVjaGxpZnlUYWdnZXJUYWdGb3JtQ29uZmlnTW9kZWwgfSBmcm9tICcuL3RlY2hsaWZ5LXRhZ2dlci10YWctZm9ybS1jb25maWcubW9kZWwnO1xuXG5AVW50aWxEZXN0cm95KClcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC10ZWNobGlmeS10YWdnZXItdGFnLWZvcm0tZmllbGQnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGVjaGxpZnktdGFnZ2VyLXRhZy1mb3JtLWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGVjaGxpZnktdGFnZ2VyLXRhZy1mb3JtLWZpZWxkLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTWF0Rm9ybUZpZWxkQ29udHJvbCwgdXNlRXhpc3Rpbmc6IFRlY2hsaWZ5VGFnZ2VyVGFnRm9ybUZpZWxkQ29tcG9uZW50IH1dLFxufSlcbmV4cG9ydCBjbGFzcyBUZWNobGlmeVRhZ2dlclRhZ0Zvcm1GaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE1hdEZvcm1GaWVsZENvbnRyb2w8YW55PiwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xuXG4gIHN0YXRpYyBuZXh0SWQgPSAwO1xuICBzdGF0ZUNoYW5nZXMgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBmb2N1c2VkID0gZmFsc2U7XG4gIGNvbnRyb2xUeXBlID0gJ3RlY2hsaWZ5LXRhZ2dlci1mb3JtLWZpZWxkJztcbiAgaWQgPSBgdGVjaGxpZnktdGFnZ2VyLWZvcm0tZmllbGQtJHtUZWNobGlmeVRhZ2dlclRhZ0Zvcm1GaWVsZENvbXBvbmVudC5uZXh0SWQrK31gO1xuXG4gIG9uQ2hhbmdlID0gKF86IGFueSkgPT4geyB9O1xuICBvblRvdWNoZWQgPSAoKSA9PiB7IH07XG5cbiAgdGFnSW5wdXRDdHJsID0gbmV3IEZvcm1Db250cm9sKCk7XG4gIGZpbHRlclN0cmluZzogYW55O1xuICBAVmlld0NoaWxkKCd0YWdJbnB1dCcpIHRhZ0lucHV0OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gIC8qKlBhc3MgdGhlIGNvbmZpZ3VyYXRpb24gZm9yIFRlY2hsaWZ5IFRhZ2dlciAqL1xuICBASW5wdXQoKSBjb25maWc6IFRlY2hsaWZ5VGFnZ2VyVGFnRm9ybUNvbmZpZ01vZGVsID0gbmV3IFRlY2hsaWZ5VGFnZ2VyVGFnRm9ybUNvbmZpZ01vZGVsKCk7XG4gIC8qKlBhc3MgdGhlIE1vZGVsIFR5cGUgZm9yIFRlY2hsaWZ5IFRhZ2dlciwgUmVxdWlyZWQgKi9cbiAgQElucHV0KCkgbW9kZWxUeXBlITogc3RyaW5nO1xuICAvKipQYXNzIHRoZSBNb2RlbCBJRCBmb3IgVGVjaGxpZnkgVGFnZ2VyICovXG4gIEBJbnB1dCgpIG1vZGVsSWQ6IHN0cmluZztcblxuICAvKipQYXNzIHRoZSBkZWZhdWx0IGxpc3Qgb2YgdGFncyAqL1xuICBwcml2YXRlIF9hbGxUYWdzOiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKVxuICBnZXQgYWxsVGFncygpIHtcbiAgICByZXR1cm4gdGhpcy5fYWxsVGFncztcbiAgfVxuICBzZXQgYWxsVGFncyh2YWx1ZSkge1xuICAgIHRoaXMuX2FsbFRhZ3MgPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKlBhc3MgdGhlIENhdGVnb3JpZXMgdG8gZmlsdGVyIGZvciBhIG1vZGVsICovXG4gIEBJbnB1dCgpIGNhdGVnb3JpZXM6IHN0cmluZ1tdID0gW107XG4gIC8qKlBhc3MgZGVmYXVsdCBjYXRlZ29yeSB0byBiZSB1c2VkIGZvciBhc3NpZ25pbmcgdGhlIHRhZ3MsIHdoZW4gd2UgZmlsdGVyIGJ5IG1vcmUgdGhhbiBvbmUgY2F0ZWdvcnkgKi9cbiAgQElucHV0KCkgZGVmYXVsdENyZWF0ZUNhdGVnb3J5OiBzdHJpbmc7XG5cbiAgZ2V0IHRhZ3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWxsVGFncy5maWx0ZXIoeCA9PiB0aGlzLnZhbHVlLnNvbWUoeSA9PiB5ID09IHguaWQpKTtcbiAgfVxuXG4gIC8vRGVmYXVsdCBHZXR0ZXIgYW5kIFNldHRlcnMgZm9yIGEgRm9ybSBGaWVsZCBJbXBsZW1lbnRhdGlvblxuICBnZXQgZW1wdHkoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWUubGVuZ3RoID09IDA7XG4gIH1cblxuICBnZXQgc2hvdWxkTGFiZWxGbG9hdCgpIHtcbiAgICByZXR1cm4gdGhpcy5mb2N1c2VkIHx8ICF0aGlzLmVtcHR5IHx8IHRoaXMudGFnSW5wdXRDdHJsLnZhbHVlO1xuICB9XG5cbiAgQElucHV0KClcbiAgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9yZXF1aXJlZDtcbiAgfVxuICBzZXQgcmVxdWlyZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9yZXF1aXJlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICB9XG4gIHByaXZhdGUgX3JlcXVpcmVkID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcbiAgfVxuICBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgdGhpcy5fZGlzYWJsZWQgPyB0aGlzLnRhZ0lucHV0Q3RybC5kaXNhYmxlKCkgOiB0aGlzLnRhZ0lucHV0Q3RybC5lbmFibGUoKTtcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gIH1cbiAgcHJpdmF0ZSBfZGlzYWJsZWQgPSBmYWxzZTtcblxuXG4gIHByaXZhdGUgX3ZhbHVlOiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKVxuICBnZXQgdmFsdWUoKTogYW55W10ge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgfVxuICBzZXQgdmFsdWUodGFnSWRzOiBhbnlbXSkge1xuICAgIHRoaXMuX3ZhbHVlID0gdGFnSWRzIHx8IFtdO1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgfVxuXG4gIGdldCBlcnJvclN0YXRlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRhZ0lucHV0Q3RybC5kaXJ0eSAmJiB0aGlzLnJlcXVpcmVkICYmICh0aGlzLnZhbHVlLmxlbmd0aCA9PSAwKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGdldCBwbGFjZWhvbGRlcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9wbGFjZWhvbGRlcjtcbiAgfVxuICBzZXQgcGxhY2Vob2xkZXIodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX3BsYWNlaG9sZGVyID0gdmFsdWU7XG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICB9XG4gIHByaXZhdGUgX3BsYWNlaG9sZGVyOiBzdHJpbmc7XG5cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcblxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuXG4gICAgLy9BUEkgdG8gbG9hZCBhbGwgdGFncyBmb3IgdGhlIG1vZGVsIHR5cGVcbiAgICBpZiAodGhpcy5hbGxUYWdzLmxlbmd0aCA9PSAwKSB7XG4gICAgICB0aGlzLmh0dHBTZXJ2aWNlXG4gICAgICAgIC5jYWNoZSghdGhpcy5jb25maWcuaXNDYWNoZVRhZ3MpXG4gICAgICAgIC5nZXQodGhpcy5jb25maWcuYXBpVXJsLCB7XG4gICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICBjYXRlZ29yaWVzOiB0aGlzLmNhdGVnb3JpZXMuam9pbignLCcpLFxuICAgICAgICAgICAgcGVyUGFnZTogJzEwMDAnXG4gICAgICAgICAgfVxuICAgICAgICB9KS5waXBlKFxuICAgICAgICAgIGRlYm91bmNlVGltZSg1MDApLFxuICAgICAgICAgIHVudGlsRGVzdHJveWVkKHRoaXMpXG4gICAgICAgICkuc3Vic2NyaWJlKChyZXN1bHQ6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMuYWxsVGFncyA9IHJlc3VsdC5kYXRhO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvL0FQSSB0byBsb2FkIG9ubHkgdGhlIHNlbGVjdGVkIHRhZ3MgZm9yIHRoZSBtb2RlbFxuICAgIGlmICh0aGlzLm1vZGVsSWQgJiYgdGhpcy52YWx1ZS5sZW5ndGggPT0gMCkge1xuICAgICAgLy9Nb2RlbCBJZCBpcyBwYXNzZWQgYW5kIG5vIHRhZ3MgYXJlIHByZXNlbnQsIHNvIHdlIHF1ZXJ5IGRiIGZvciB0aGUgYXZpbGFibGUgdGFncyBmb3IgdGhlIG1vZGVsIElELlxuICAgICAgdGhpcy5odHRwU2VydmljZVxuICAgICAgICAuY2FjaGUoIXRoaXMuY29uZmlnLmlzQ2FjaGVUYWdzKVxuICAgICAgICAuZ2V0KHRoaXMuY29uZmlnLmFwaVVybCwge1xuICAgICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgY2F0ZWdvcmllczogdGhpcy5jYXRlZ29yaWVzLmpvaW4oJywnKSxcbiAgICAgICAgICAgIG1vZGVsX3R5cGU6IHRoaXMubW9kZWxUeXBlLFxuICAgICAgICAgICAgbW9kZWxfaWQ6IHRoaXMubW9kZWxJZCxcbiAgICAgICAgICAgIHBlclBhZ2U6ICcxMDAwJ1xuICAgICAgICAgIH1cbiAgICAgICAgfSkucGlwZShcbiAgICAgICAgICBkZWJvdW5jZVRpbWUoNTAwKSxcbiAgICAgICAgICB1bnRpbERlc3Ryb3llZCh0aGlzKVxuICAgICAgICApLnN1YnNjcmliZSgocmVzdWx0OiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLnZhbHVlID0gKHJlc3VsdD8uZGF0YSB8fCBbXSkubWFwKCh4OiBhbnkpID0+IHguaWQpO1xuICAgICAgICAgIHRoaXMuX2hhbmRsZUlucHV0KCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGluaXQoKSB7XG4gICAgaWYgKHRoaXMubW9kZWxJZCAmJiB0aGlzLmFsbFRhZ3MubGVuZ3RoID09IDApIHtcbiAgICAgIC8vTW9kZWwgSWQgaXMgcGFzc2VkIGFuZCBubyB0YWdzIGFyZSBwYXNzZWQsIHNvIHdlIHF1ZXJ5IGRiIGZvciB0aGUgYXZpbGFibGUgdGFncyBmb3IgdGhlIG1vZGVsIElELlxuICAgICAgdGhpcy5odHRwU2VydmljZVxuICAgICAgICAuY2FjaGUoIXRoaXMuY29uZmlnLmlzQ2FjaGVUYWdzKVxuICAgICAgICAuZ2V0KHRoaXMuY29uZmlnLmFwaVVybCwge1xuICAgICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgY2F0ZWdvcmllczogdGhpcy5jYXRlZ29yaWVzLmpvaW4oJywnKSxcbiAgICAgICAgICAgIG1vZGVsX3R5cGU6IHRoaXMubW9kZWxUeXBlLFxuICAgICAgICAgICAgbW9kZWxfaWQ6IHRoaXMubW9kZWxJZFxuICAgICAgICAgIH1cbiAgICAgICAgfSkucGlwZShcbiAgICAgICAgICB1bnRpbERlc3Ryb3llZCh0aGlzKVxuICAgICAgICApLnN1YnNjcmliZSgocmVzdWx0OiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLmFsbFRhZ3MgPSByZXN1bHQuZGF0YTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGZpbHRlcmVkVGFncygpOiBhbnlbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbHRlcigpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfZm9jdXNNb25pdG9yOiBGb2N1c01vbml0b3IsXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgcHJpdmF0ZSBodHRwU2VydmljZTogSHR0cFNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChNQVRfRk9STV9GSUVMRCkgcHVibGljIF9mb3JtRmllbGQ6IE1hdEZvcm1GaWVsZCxcbiAgICBAT3B0aW9uYWwoKSBAU2VsZigpIHB1YmxpYyBuZ0NvbnRyb2w6IE5nQ29udHJvbCkge1xuXG4gICAgdGhpcy50YWdJbnB1dEN0cmwudmFsdWVDaGFuZ2VzXG4gICAgICAuc3Vic2NyaWJlKGZpbHRlclZhbHVlID0+IHtcbiAgICAgICAgdGhpcy5maWx0ZXJTdHJpbmcgPSBmaWx0ZXJWYWx1ZTtcbiAgICAgIH0pO1xuXG4gICAgLy9TZXQgRm9jdXMgTW9uaXRvclxuICAgIF9mb2N1c01vbml0b3IubW9uaXRvcihfZWxlbWVudFJlZiwgdHJ1ZSkuc3Vic2NyaWJlKG9yaWdpbiA9PiB7XG4gICAgICBpZiAodGhpcy5mb2N1c2VkICYmICFvcmlnaW4pIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZm9jdXNlZCA9ICEhb3JpZ2luO1xuICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMubmdDb250cm9sICE9IG51bGwpIHtcbiAgICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICAgIH1cbiAgfVxuXG4gIHNldERlc2NyaWJlZEJ5SWRzKGlkczogc3RyaW5nW10pIHtcbiAgICAvLyBKdXN0IGEgZW1wdHkgaW1wbGVtZW50YXRpb24gZm9yIE1hdCBGb3JtIEZpZWxkIEludGVyZmFjZVxuICB9XG5cbiAgb25Db250YWluZXJDbGljaygpIHtcbiAgICAvLyBKdXN0IGEgZW1wdHkgaW1wbGVtZW50YXRpb24gZm9yIE1hdCBGb3JtIEZpZWxkIEludGVyZmFjZVxuICB9XG5cblxuICBhc3luYyBhZGQoZXZlbnQ6IE1hdENoaXBJbnB1dEV2ZW50KSB7XG4gICAgY29uc3QgdmFsdWUgPSAoZXZlbnQudmFsdWUgfHwgJycpLnRyaW0oKTtcbiAgICAvLyBBZGQgb3VyIHRhZ1xuICAgIC8vIFZhbGlkYXRlIGZvciBzaW5nbGUgbW9kZVxuICAgIGlmICghdGhpcy5jb25maWcuaXNTaW5nbGUgfHwgKHRoaXMudmFsdWUubGVuZ3RoID09PSAwKSkge1xuICAgICAgaWYgKHZhbHVlICYmIHRoaXMuY29uZmlnLmlzQ3JlYXRlYWJsZSkge1xuICAgICAgICBjb25zdCB0YWdzID0gdGhpcy5hbGxUYWdzO1xuICAgICAgICBsZXQgdGFnID0gdGFncy5maW5kKChpdGVtOiBhbnkpID0+IGl0ZW0udGl0bGUudG9Mb3dlckNhc2UoKSA9PSB2YWx1ZS50b0xvd2VyQ2FzZSgpKTtcbiAgICAgICAgaWYgKCF0YWcpIHtcbiAgICAgICAgICAvL05vIHRhZyBwcmVzZW50IGluIHRoZSBsaXN0XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdDogYW55ID0gYXdhaXQgdGhpcy5odHRwU2VydmljZS5wb3N0KHRoaXMuY29uZmlnLmNyZWF0ZUFwaVVybCwge1xuICAgICAgICAgICAgICB0aXRsZTogdmFsdWUsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB2YWx1ZSxcbiAgICAgICAgICAgICAgY2F0ZWdvcnlfdGl0bGU6ICh0aGlzLmNhdGVnb3JpZXMubGVuZ3RoID4gMCkgPyAodGhpcy5kZWZhdWx0Q3JlYXRlQ2F0ZWdvcnkgPyB0aGlzLmRlZmF1bHRDcmVhdGVDYXRlZ29yeSA6IHRoaXMuY2F0ZWdvcmllc1swXSkgOiAnJ1xuICAgICAgICAgICAgfSkudG9Qcm9taXNlKCk7XG4gICAgICAgICAgICB0YWcgPSByZXN1bHQuaXRlbTtcbiAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmFsbFRhZ3MucHVzaCh0YWcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vT3B0aW9uYWxseSBjbGVhbiB0aGUgZXhpc3RpbmcgdmFsdWUsIHRvIGF2b2lkIGR1cGxpY2F0ZVxuICAgICAgICAgIHRoaXMucmVtb3ZlKHRhZyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy52YWx1ZS5wdXNoKHRhZy5pZCk7XG4gICAgICAgIHRoaXMuX2hhbmRsZUlucHV0KCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQ2xlYXIgdGhlIGlucHV0IHZhbHVlXG4gICAgZXZlbnQuaW5wdXQudmFsdWUgPSAnJztcblxuICAgIHRoaXMudGFnSW5wdXRDdHJsLnNldFZhbHVlKG51bGwpO1xuICB9XG5cbiAgcmVtb3ZlKHRhZzogYW55KTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHRoaXMudmFsdWUuZmlsdGVyKHggPT4geCAhPT0gdGFnLmlkKTtcbiAgICB0aGlzLl9oYW5kbGVJbnB1dCgpO1xuICB9XG5cbiAgc2VsZWN0ZWQoZXZlbnQ6IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQpOiB2b2lkIHtcbiAgICAvLyBWYWxpZGF0ZSBmb3Igc2luZ2xlIG1vZGVcbiAgICBpZiAoIXRoaXMuY29uZmlnLmlzU2luZ2xlIHx8ICh0aGlzLnZhbHVlLmxlbmd0aCA9PT0gMCkpIHtcbiAgICAgIC8vQ2xlYW4gdGhlIGV4aXN0aW5nIHZhbHVlLCB0byBhdm9pZCBkdXBsaWNhdGVcbiAgICAgIHRoaXMucmVtb3ZlKHsgaWQ6IGV2ZW50Lm9wdGlvbi52YWx1ZSB9KTtcbiAgICAgIHRoaXMudmFsdWUucHVzaChldmVudC5vcHRpb24udmFsdWUpO1xuICAgICAgdGhpcy5faGFuZGxlSW5wdXQoKTtcbiAgICB9XG4gICAgdGhpcy50YWdJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgdGhpcy50YWdJbnB1dEN0cmwuc2V0VmFsdWUobnVsbCk7XG4gIH1cblxuICBwcml2YXRlIF9maWx0ZXIoKTogYW55W10ge1xuICAgIGNvbnN0IGZpbHRlclZhbHVlID0gdGhpcy5maWx0ZXJTdHJpbmcgPyB0aGlzLmZpbHRlclN0cmluZy50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkgOiBudWxsO1xuICAgIGNvbnN0IGF2YWlsYWJsZVRhZ3MgPSB0aGlzLmFsbFRhZ3MuZmlsdGVyKCh0YWc6IGFueSkgPT4gIXRoaXMudmFsdWUuc29tZSgoaXRlbTogYW55KSA9PiBpdGVtID09IHRhZy5pZCkpO1xuICAgIHJldHVybiBmaWx0ZXJWYWx1ZSA/IGF2YWlsYWJsZVRhZ3MuZmlsdGVyKCh0YWc6IGFueSkgPT4gdGFnLnRpdGxlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZmlsdGVyVmFsdWUpKSA6IGF2YWlsYWJsZVRhZ3M7XG4gIH1cblxuICB3cml0ZVZhbHVlKHRhZ0lkczogYW55W10pOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdGFnSWRzIHx8IFtdO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIF9oYW5kbGVJbnB1dCgpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICB9XG5cbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2Rpc2FibGVkOiBCb29sZWFuSW5wdXQ7XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9yZXF1aXJlZDogQm9vbGVhbklucHV0O1xuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fZm9jdXNNb25pdG9yLnN0b3BNb25pdG9yaW5nKHRoaXMuX2VsZW1lbnRSZWYpO1xuICB9XG5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { TechlifyTaggerTagFormFieldComponent } from './techlify-tagger-tag-form-field.component';
|
|
4
|
+
import { FlexLayoutModule } from '@angular/flex-layout';
|
|
5
|
+
import { ReactiveFormsModule } from '@angular/forms';
|
|
6
|
+
import { MatAutocompleteModule } from '@angular/material/autocomplete';
|
|
7
|
+
import { MaterialModule } from '../material.module';
|
|
8
|
+
export class TechlifyTaggerTagFormFieldModule {
|
|
9
|
+
}
|
|
10
|
+
TechlifyTaggerTagFormFieldModule.decorators = [
|
|
11
|
+
{ type: NgModule, args: [{
|
|
12
|
+
declarations: [
|
|
13
|
+
TechlifyTaggerTagFormFieldComponent
|
|
14
|
+
],
|
|
15
|
+
imports: [
|
|
16
|
+
CommonModule,
|
|
17
|
+
MaterialModule,
|
|
18
|
+
FlexLayoutModule,
|
|
19
|
+
MatAutocompleteModule,
|
|
20
|
+
ReactiveFormsModule
|
|
21
|
+
],
|
|
22
|
+
exports: [TechlifyTaggerTagFormFieldComponent]
|
|
23
|
+
},] }
|
|
24
|
+
];
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaGxpZnktdGFnZ2VyLXRhZy1mb3JtLWZpZWxkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvdGVjaGxpZnktdGFnZ2VyLXRhZy1mb3JtLWZpZWxkL3RlY2hsaWZ5LXRhZ2dlci10YWctZm9ybS1maWVsZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDakcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBaUJwRCxNQUFNLE9BQU8sZ0NBQWdDOzs7WUFiNUMsUUFBUSxTQUFDO2dCQUNSLFlBQVksRUFBRTtvQkFDWixtQ0FBbUM7aUJBQ3BDO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxZQUFZO29CQUNaLGNBQWM7b0JBQ2QsZ0JBQWdCO29CQUNoQixxQkFBcUI7b0JBQ3JCLG1CQUFtQjtpQkFDcEI7Z0JBQ0QsT0FBTyxFQUFFLENBQUMsbUNBQW1DLENBQUM7YUFDL0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRlY2hsaWZ5VGFnZ2VyVGFnRm9ybUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi90ZWNobGlmeS10YWdnZXItdGFnLWZvcm0tZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IEZsZXhMYXlvdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mbGV4LWxheW91dCc7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7IE1hdGVyaWFsTW9kdWxlIH0gZnJvbSAnLi4vbWF0ZXJpYWwubW9kdWxlJztcblxuXG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFRlY2hsaWZ5VGFnZ2VyVGFnRm9ybUZpZWxkQ29tcG9uZW50XG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTWF0ZXJpYWxNb2R1bGUsXG4gICAgRmxleExheW91dE1vZHVsZSxcbiAgICBNYXRBdXRvY29tcGxldGVNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbVGVjaGxpZnlUYWdnZXJUYWdGb3JtRmllbGRDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIFRlY2hsaWZ5VGFnZ2VyVGFnRm9ybUZpZWxkTW9kdWxlIHsgfVxuIl19
|