@sd-angular/core 0.0.1038 → 0.0.1042

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/assets/scss/core/color.scss +4 -0
  2. package/badge/sd-angular-core-badge.metadata.json +1 -1
  3. package/bundles/sd-angular-core-badge.umd.js +2 -2
  4. package/bundles/sd-angular-core-badge.umd.js.map +1 -1
  5. package/bundles/sd-angular-core-badge.umd.min.js +1 -1
  6. package/bundles/sd-angular-core-badge.umd.min.js.map +1 -1
  7. package/bundles/sd-angular-core-chip.umd.js +41 -10
  8. package/bundles/sd-angular-core-chip.umd.js.map +1 -1
  9. package/bundles/sd-angular-core-chip.umd.min.js +2 -2
  10. package/bundles/sd-angular-core-chip.umd.min.js.map +1 -1
  11. package/bundles/sd-angular-core-filter.umd.js +703 -0
  12. package/bundles/sd-angular-core-filter.umd.js.map +1 -0
  13. package/bundles/sd-angular-core-filter.umd.min.js +2 -0
  14. package/bundles/sd-angular-core-filter.umd.min.js.map +1 -0
  15. package/bundles/sd-angular-core-grid-material.umd.js +96 -48
  16. package/bundles/sd-angular-core-grid-material.umd.js.map +1 -1
  17. package/bundles/sd-angular-core-grid-material.umd.min.js +1 -1
  18. package/bundles/sd-angular-core-grid-material.umd.min.js.map +1 -1
  19. package/bundles/sd-angular-core-setting.umd.js +176 -117
  20. package/bundles/sd-angular-core-setting.umd.js.map +1 -1
  21. package/bundles/sd-angular-core-setting.umd.min.js +1 -1
  22. package/bundles/sd-angular-core-setting.umd.min.js.map +1 -1
  23. package/bundles/sd-angular-core.umd.js +4 -4
  24. package/bundles/sd-angular-core.umd.min.js +1 -1
  25. package/bundles/sd-angular-core.umd.min.js.map +1 -1
  26. package/chip/sd-angular-core-chip.metadata.json +1 -1
  27. package/chip/src/lib/chip.component.d.ts +8 -1
  28. package/esm2015/badge/src/lib/badge.component.js +3 -3
  29. package/esm2015/chip/src/lib/chip.component.js +34 -4
  30. package/esm2015/chip/src/lib/chip.module.js +6 -3
  31. package/esm2015/filter/index.js +2 -0
  32. package/esm2015/filter/sd-angular-core-filter.js +8 -0
  33. package/esm2015/filter/src/lib/directives/sd-filter-def.directive.js +22 -0
  34. package/esm2015/filter/src/lib/filter.component.js +161 -0
  35. package/esm2015/filter/src/lib/filter.model.js +2 -0
  36. package/esm2015/filter/src/lib/filter.module.js +47 -0
  37. package/esm2015/filter/src/lib/filter.service.js +60 -0
  38. package/esm2015/filter/src/lib/pipes/values-local.pipe.js +19 -0
  39. package/esm2015/filter/src/lib/pipes/values-server.pipe.js +18 -0
  40. package/esm2015/filter/src/public-api.js +8 -0
  41. package/esm2015/grid-material/src/lib/components/column-inline-filter/column-inline-filter.component.js +10 -7
  42. package/esm2015/grid-material/src/lib/components/quick-action/quick-action.component.js +1 -1
  43. package/esm2015/grid-material/src/lib/grid-material.component.js +1 -6
  44. package/esm2015/grid-material/src/lib/models/grid-column.model.js +1 -1
  45. package/esm2015/grid-material/src/lib/services/generated-column/generated-column.service.js +28 -12
  46. package/esm2015/grid-material/src/lib/services/grid-configuration.service.js +50 -21
  47. package/esm2015/public-api.js +2 -1
  48. package/esm2015/setting/src/lib/setting.model.js +1 -1
  49. package/esm2015/setting/src/lib/setting.service.js +119 -58
  50. package/fesm2015/sd-angular-core-badge.js +2 -2
  51. package/fesm2015/sd-angular-core-badge.js.map +1 -1
  52. package/fesm2015/sd-angular-core-chip.js +37 -5
  53. package/fesm2015/sd-angular-core-chip.js.map +1 -1
  54. package/fesm2015/sd-angular-core-filter.js +323 -0
  55. package/fesm2015/sd-angular-core-filter.js.map +1 -0
  56. package/fesm2015/sd-angular-core-grid-material.js +86 -43
  57. package/fesm2015/sd-angular-core-grid-material.js.map +1 -1
  58. package/fesm2015/sd-angular-core-setting.js +119 -58
  59. package/fesm2015/sd-angular-core-setting.js.map +1 -1
  60. package/fesm2015/sd-angular-core.js +1 -0
  61. package/fesm2015/sd-angular-core.js.map +1 -1
  62. package/filter/index.d.ts +1 -0
  63. package/filter/package.json +12 -0
  64. package/filter/sd-angular-core-filter.d.ts +7 -0
  65. package/filter/sd-angular-core-filter.metadata.json +1 -0
  66. package/filter/src/lib/directives/sd-filter-def.directive.d.ts +8 -0
  67. package/filter/src/lib/filter.component.d.ts +31 -0
  68. package/filter/src/lib/filter.model.d.ts +105 -0
  69. package/filter/src/lib/filter.module.d.ts +2 -0
  70. package/filter/src/lib/filter.service.d.ts +9 -0
  71. package/filter/src/lib/pipes/values-local.pipe.d.ts +5 -0
  72. package/filter/src/lib/pipes/values-server.pipe.d.ts +5 -0
  73. package/filter/src/public-api.d.ts +4 -0
  74. package/grid-material/sd-angular-core-grid-material.metadata.json +1 -1
  75. package/grid-material/src/lib/models/grid-column.model.d.ts +1 -0
  76. package/grid-material/src/lib/services/generated-column/generated-column.service.d.ts +3 -2
  77. package/package.json +1 -1
  78. package/public-api.d.ts +1 -0
  79. package/{sd-angular-core-0.0.1038.tgz → sd-angular-core-0.0.1042.tgz} +0 -0
  80. package/setting/sd-angular-core-setting.metadata.json +1 -1
  81. package/setting/src/lib/setting.model.d.ts +20 -6
  82. package/setting/src/lib/setting.service.d.ts +2 -1
@@ -1,34 +1,25 @@
1
1
  import { InjectionToken, ɵɵdefineInjectable, ɵɵinject, Injectable, Inject, Optional } from '@angular/core';
2
- import { __awaiter, __classPrivateFieldGet } from 'tslib';
2
+ import { __classPrivateFieldGet, __awaiter } from 'tslib';
3
3
  import hash from 'object-hash';
4
- import { Subject } from 'rxjs';
4
+ import { BehaviorSubject } from 'rxjs';
5
5
  import { startWith, switchMap } from 'rxjs/operators';
6
6
 
7
7
  const SETTING_CONFIG = new InjectionToken('setting.configuration');
8
8
 
9
- var _cache, _subject, _get, _set, _has, _remove;
9
+ var _cache, _subject, _get, _getServer, _set, _setServer, _has, _hasServer, _remove, _removeServer;
10
10
  class SdSettingService {
11
11
  constructor(configuration) {
12
12
  this.configuration = configuration;
13
13
  _cache.set(this, {});
14
14
  _subject.set(this, {});
15
15
  _get.set(this, (key, option) => {
16
- return () => __awaiter(this, void 0, void 0, function* () {
17
- var _a;
16
+ return () => {
18
17
  let cache = __classPrivateFieldGet(this, _cache)[key];
19
18
  if ((option === null || option === void 0 ? void 0 : option.type) === 'session') {
20
19
  try {
21
20
  cache = JSON.parse(sessionStorage.getItem(key));
22
21
  }
23
- catch (_b) {
24
- cache = undefined;
25
- }
26
- }
27
- else if ((option === null || option === void 0 ? void 0 : option.type) === 'server') {
28
- try {
29
- cache = yield ((_a = this.configuration) === null || _a === void 0 ? void 0 : _a.get(key, option));
30
- }
31
- catch (_c) {
22
+ catch (_a) {
32
23
  cache = undefined;
33
24
  }
34
25
  }
@@ -36,7 +27,7 @@ class SdSettingService {
36
27
  try {
37
28
  cache = JSON.parse(localStorage.getItem(key));
38
29
  }
39
- catch (_d) {
30
+ catch (_b) {
40
31
  cache = undefined;
41
32
  }
42
33
  }
@@ -44,11 +35,26 @@ class SdSettingService {
44
35
  return option === null || option === void 0 ? void 0 : option.default;
45
36
  }
46
37
  return JSON.parse(JSON.stringify(cache.data));
38
+ };
39
+ });
40
+ _getServer.set(this, (key, option) => {
41
+ return () => __awaiter(this, void 0, void 0, function* () {
42
+ var _a;
43
+ let cache = __classPrivateFieldGet(this, _cache)[key];
44
+ try {
45
+ cache = yield ((_a = this.configuration) === null || _a === void 0 ? void 0 : _a.get(key, option));
46
+ }
47
+ catch (_b) {
48
+ cache = undefined;
49
+ }
50
+ if (!cache) {
51
+ return option === null || option === void 0 ? void 0 : option.default;
52
+ }
53
+ return JSON.parse(JSON.stringify(cache.data));
47
54
  });
48
55
  });
49
56
  _set.set(this, (key, option) => {
50
- return (data) => __awaiter(this, void 0, void 0, function* () {
51
- var _a;
57
+ return (data) => {
52
58
  __classPrivateFieldGet(this, _cache)[key] = {
53
59
  data: JSON.parse(JSON.stringify(data)),
54
60
  createdOn: new Date()
@@ -62,15 +68,6 @@ class SdSettingService {
62
68
  console.error(err);
63
69
  }
64
70
  }
65
- else if ((option === null || option === void 0 ? void 0 : option.type) === 'server') {
66
- try {
67
- yield ((_a = this.configuration) === null || _a === void 0 ? void 0 : _a.set(key, __classPrivateFieldGet(this, _cache)[key]));
68
- __classPrivateFieldGet(this, _subject)[key].next(__classPrivateFieldGet(this, _cache)[key].data);
69
- }
70
- catch (err) {
71
- console.error(err);
72
- }
73
- }
74
71
  else {
75
72
  try {
76
73
  localStorage.setItem(key, JSON.stringify(__classPrivateFieldGet(this, _cache)[key]));
@@ -80,25 +77,32 @@ class SdSettingService {
80
77
  console.error(err);
81
78
  }
82
79
  }
80
+ };
81
+ });
82
+ _setServer.set(this, (key, option) => {
83
+ return (data) => __awaiter(this, void 0, void 0, function* () {
84
+ var _a;
85
+ __classPrivateFieldGet(this, _cache)[key] = {
86
+ data: JSON.parse(JSON.stringify(data)),
87
+ createdOn: new Date()
88
+ };
89
+ try {
90
+ yield ((_a = this.configuration) === null || _a === void 0 ? void 0 : _a.set(key, __classPrivateFieldGet(this, _cache)[key]));
91
+ __classPrivateFieldGet(this, _subject)[key].next(__classPrivateFieldGet(this, _cache)[key].data);
92
+ }
93
+ catch (err) {
94
+ console.error(err);
95
+ }
83
96
  });
84
97
  });
85
98
  _has.set(this, (key, option) => {
86
- return () => __awaiter(this, void 0, void 0, function* () {
87
- var _a;
99
+ return () => {
88
100
  let cache = __classPrivateFieldGet(this, _cache)[key];
89
101
  if ((option === null || option === void 0 ? void 0 : option.type) === 'session') {
90
102
  try {
91
103
  cache = JSON.parse(sessionStorage.getItem(key));
92
104
  }
93
- catch (_b) {
94
- cache = undefined;
95
- }
96
- }
97
- else if ((option === null || option === void 0 ? void 0 : option.type) === 'server') {
98
- try {
99
- cache = yield ((_a = this.configuration) === null || _a === void 0 ? void 0 : _a.get(key, option));
100
- }
101
- catch (_c) {
105
+ catch (_a) {
102
106
  cache = undefined;
103
107
  }
104
108
  }
@@ -106,7 +110,7 @@ class SdSettingService {
106
110
  try {
107
111
  cache = JSON.parse(localStorage.getItem(key));
108
112
  }
109
- catch (_d) {
113
+ catch (_b) {
110
114
  cache = undefined;
111
115
  }
112
116
  }
@@ -114,18 +118,30 @@ class SdSettingService {
114
118
  return false;
115
119
  }
116
120
  return true;
121
+ };
122
+ });
123
+ _hasServer.set(this, (key, option) => {
124
+ return () => __awaiter(this, void 0, void 0, function* () {
125
+ var _a;
126
+ let cache = __classPrivateFieldGet(this, _cache)[key];
127
+ try {
128
+ cache = yield ((_a = this.configuration) === null || _a === void 0 ? void 0 : _a.get(key, option));
129
+ }
130
+ catch (_b) {
131
+ cache = undefined;
132
+ }
133
+ if (!cache) {
134
+ return false;
135
+ }
136
+ return true;
117
137
  });
118
138
  });
119
139
  _remove.set(this, (key, option) => {
120
140
  return () => __awaiter(this, void 0, void 0, function* () {
121
- var _a;
122
141
  try {
123
142
  if ((option === null || option === void 0 ? void 0 : option.type) === 'session') {
124
143
  sessionStorage.removeItem(key);
125
144
  }
126
- else if ((option === null || option === void 0 ? void 0 : option.type) === 'server') {
127
- yield ((_a = this.configuration) === null || _a === void 0 ? void 0 : _a.remove(key, option));
128
- }
129
145
  else {
130
146
  localStorage.removeItem(key);
131
147
  }
@@ -137,8 +153,55 @@ class SdSettingService {
137
153
  }
138
154
  });
139
155
  });
156
+ _removeServer.set(this, (key, option) => {
157
+ return () => __awaiter(this, void 0, void 0, function* () {
158
+ var _a;
159
+ try {
160
+ yield ((_a = this.configuration) === null || _a === void 0 ? void 0 : _a.remove(key, option));
161
+ __classPrivateFieldGet(this, _cache)[key] = undefined;
162
+ __classPrivateFieldGet(this, _subject)[key].next(undefined);
163
+ }
164
+ catch (err) {
165
+ console.error(err);
166
+ }
167
+ });
168
+ });
140
169
  }
141
170
  create(key, option) {
171
+ var _a;
172
+ if (!key) {
173
+ throw new Error('Key is required');
174
+ }
175
+ let hashKey = null;
176
+ if (typeof (key) === 'string') {
177
+ hashKey = key;
178
+ }
179
+ else if (typeof (key) === 'object') {
180
+ hashKey = hash(key);
181
+ }
182
+ else {
183
+ throw new Error('Invalid key');
184
+ }
185
+ if ((_a = this.configuration) === null || _a === void 0 ? void 0 : _a.convertKey) {
186
+ hashKey = this.configuration.convertKey(hashKey);
187
+ }
188
+ const get = __classPrivateFieldGet(this, _get).call(this, hashKey, option);
189
+ const set = __classPrivateFieldGet(this, _set).call(this, hashKey, option);
190
+ const has = __classPrivateFieldGet(this, _has).call(this, hashKey, option);
191
+ const remove = __classPrivateFieldGet(this, _remove).call(this, hashKey, option);
192
+ if (!__classPrivateFieldGet(this, _subject)[hashKey]) {
193
+ __classPrivateFieldGet(this, _subject)[hashKey] = new BehaviorSubject(get());
194
+ }
195
+ return {
196
+ get,
197
+ set,
198
+ has,
199
+ remove,
200
+ subject: __classPrivateFieldGet(this, _subject)[hashKey],
201
+ observer: __classPrivateFieldGet(this, _subject)[hashKey].pipe(startWith(__classPrivateFieldGet(this, _subject)[hashKey].getValue()))
202
+ };
203
+ }
204
+ createServer(key, option) {
142
205
  var _a, _b, _c, _d;
143
206
  if (!key) {
144
207
  throw new Error('Key is required');
@@ -156,23 +219,21 @@ class SdSettingService {
156
219
  if ((_a = this.configuration) === null || _a === void 0 ? void 0 : _a.convertKey) {
157
220
  hashKey = this.configuration.convertKey(hashKey);
158
221
  }
159
- if ((option === null || option === void 0 ? void 0 : option.type) === 'server') {
160
- if (!((_b = this.configuration) === null || _b === void 0 ? void 0 : _b.get)) {
161
- throw new Error('Please init setting configuration method get for type server');
162
- }
163
- if (!((_c = this.configuration) === null || _c === void 0 ? void 0 : _c.set)) {
164
- throw new Error('Please init setting configuration method set for type server');
165
- }
166
- if (!((_d = this.configuration) === null || _d === void 0 ? void 0 : _d.remove)) {
167
- throw new Error('Please init setting configuration method remove for type server');
168
- }
222
+ if (!((_b = this.configuration) === null || _b === void 0 ? void 0 : _b.get)) {
223
+ throw new Error('Please init setting configuration method get for type server');
224
+ }
225
+ if (!((_c = this.configuration) === null || _c === void 0 ? void 0 : _c.set)) {
226
+ throw new Error('Please init setting configuration method set for type server');
227
+ }
228
+ if (!((_d = this.configuration) === null || _d === void 0 ? void 0 : _d.remove)) {
229
+ throw new Error('Please init setting configuration method remove for type server');
169
230
  }
170
231
  if (!__classPrivateFieldGet(this, _subject)[hashKey]) {
171
- __classPrivateFieldGet(this, _subject)[hashKey] = new Subject();
232
+ __classPrivateFieldGet(this, _subject)[hashKey] = new BehaviorSubject(option === null || option === void 0 ? void 0 : option.default);
172
233
  }
173
- const get = __classPrivateFieldGet(this, _get).call(this, hashKey, option);
174
- const set = __classPrivateFieldGet(this, _set).call(this, hashKey, option);
175
- const has = __classPrivateFieldGet(this, _has).call(this, hashKey, option);
234
+ const get = __classPrivateFieldGet(this, _getServer).call(this, hashKey, option);
235
+ const set = __classPrivateFieldGet(this, _setServer).call(this, hashKey, option);
236
+ const has = __classPrivateFieldGet(this, _hasServer).call(this, hashKey, option);
176
237
  const remove = __classPrivateFieldGet(this, _remove).call(this, hashKey, option);
177
238
  return {
178
239
  get,
@@ -180,11 +241,11 @@ class SdSettingService {
180
241
  has,
181
242
  remove,
182
243
  subject: __classPrivateFieldGet(this, _subject)[hashKey],
183
- observer: __classPrivateFieldGet(this, _subject)[hashKey].pipe(startWith(option === null || option === void 0 ? void 0 : option.default), switchMap(get))
244
+ observer: __classPrivateFieldGet(this, _subject)[hashKey].pipe(startWith(__classPrivateFieldGet(this, _subject)[hashKey].getValue()), switchMap(get))
184
245
  };
185
246
  }
186
247
  }
187
- _cache = new WeakMap(), _subject = new WeakMap(), _get = new WeakMap(), _set = new WeakMap(), _has = new WeakMap(), _remove = new WeakMap();
248
+ _cache = new WeakMap(), _subject = new WeakMap(), _get = new WeakMap(), _getServer = new WeakMap(), _set = new WeakMap(), _setServer = new WeakMap(), _has = new WeakMap(), _hasServer = new WeakMap(), _remove = new WeakMap(), _removeServer = new WeakMap();
188
249
  SdSettingService.ɵprov = ɵɵdefineInjectable({ factory: function SdSettingService_Factory() { return new SdSettingService(ɵɵinject(SETTING_CONFIG, 8)); }, token: SdSettingService, providedIn: "root" });
189
250
  SdSettingService.decorators = [
190
251
  { type: Injectable, args: [{
@@ -1 +1 @@
1
- {"version":3,"file":"sd-angular-core-setting.js","sources":["../../../../projects/sd-core/setting/src/lib/setting.model.ts","../../../../projects/sd-core/setting/src/lib/setting.service.ts","../../../../projects/sd-core/setting/src/public-api.ts","../../../../projects/sd-core/setting/sd-angular-core-setting.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\nexport interface SdSettingOption<T = any> {\r\n type?: 'session' | 'server';\r\n default?: T;\r\n args?: {\r\n [key: string]: any\r\n };\r\n}\r\n\r\nexport interface SdSetting<T = any> {\r\n get: () => Promise<T>;\r\n set: (data: T) => Promise<void>;\r\n has: () => Promise<boolean>;\r\n remove: () => Promise<void>;\r\n subject: Subject<T>;\r\n observer: Observable<T>;\r\n}\r\n\r\nexport interface ISettingConfiguration {\r\n convertKey?: (key: string) => string;\r\n set?: (key: string, value: { data: any, createdOn: Date }, args?: SdSettingOption) => Promise<void>;\r\n get?: (key: string, args?: SdSettingOption) => Promise<{\r\n data: any,\r\n createdOn: Date\r\n }>;\r\n remove?: (key: string, args?: SdSettingOption) => Promise<void>;\r\n}\r\n\r\nexport const SETTING_CONFIG = new InjectionToken<ISettingConfiguration>('setting.configuration');\r\n","import { Optional } from '@angular/core';\r\nimport { Injectable, Inject } from '@angular/core';\r\nimport hash from 'object-hash';\r\nimport { Subject } from 'rxjs';\r\nimport { startWith, switchMap } from 'rxjs/operators';\r\nimport { SETTING_CONFIG, ISettingConfiguration, SdSettingOption, SdSetting } from './setting.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SdSettingService {\r\n #cache: {\r\n [key: string]: {\r\n data: any,\r\n createdOn: Date\r\n }\r\n } = {};\r\n\r\n #subject: {\r\n [key: string]: Subject<any>;\r\n } = {};\r\n\r\n constructor(@Inject(SETTING_CONFIG) @Optional() private configuration: ISettingConfiguration) { }\r\n\r\n create<T = any>(key: string | object, option?: SdSettingOption<T>): SdSetting<T> {\r\n if (!key) {\r\n throw new Error('Key is required');\r\n }\r\n let hashKey: string = null;\r\n if (typeof (key) === 'string') {\r\n hashKey = key;\r\n } else if (typeof (key) === 'object') {\r\n hashKey = hash(key);\r\n } else {\r\n throw new Error('Invalid key');\r\n }\r\n if (this.configuration?.convertKey) {\r\n hashKey = this.configuration.convertKey(hashKey);\r\n }\r\n if (option?.type === 'server') {\r\n if (!this.configuration?.get) {\r\n throw new Error('Please init setting configuration method get for type server');\r\n }\r\n if (!this.configuration?.set) {\r\n throw new Error('Please init setting configuration method set for type server');\r\n }\r\n if (!this.configuration?.remove) {\r\n throw new Error('Please init setting configuration method remove for type server');\r\n }\r\n }\r\n if (!this.#subject[hashKey]) {\r\n this.#subject[hashKey] = new Subject<any>();\r\n }\r\n const get = this.#get<T>(hashKey, option);\r\n const set = this.#set<T>(hashKey, option);\r\n const has = this.#has(hashKey, option);\r\n const remove = this.#remove(hashKey, option);\r\n return {\r\n get,\r\n set,\r\n has,\r\n remove,\r\n subject: this.#subject[hashKey],\r\n observer: this.#subject[hashKey].pipe(startWith(option?.default), switchMap(get))\r\n };\r\n }\r\n\r\n #get = <T = any>(key: string, option?: SdSettingOption<T>): (() => Promise<T>) => {\r\n return async () => {\r\n let cache = this.#cache[key];\r\n if (option?.type === 'session') {\r\n try {\r\n cache = JSON.parse(sessionStorage.getItem(key));\r\n } catch {\r\n cache = undefined;\r\n }\r\n } else if (option?.type === 'server') {\r\n try {\r\n cache = await this.configuration?.get(key, option);\r\n } catch {\r\n cache = undefined;\r\n }\r\n } else {\r\n try {\r\n cache = JSON.parse(localStorage.getItem(key));\r\n } catch {\r\n cache = undefined;\r\n }\r\n }\r\n if (!cache) {\r\n return option?.default;\r\n }\r\n return JSON.parse(JSON.stringify(cache.data));\r\n };\r\n }\r\n\r\n #set = <T = any>(key: string, option?: SdSettingOption<T>): ((data: T) => Promise<void>) => {\r\n return async (data: T) => {\r\n this.#cache[key] = {\r\n data: JSON.parse(JSON.stringify(data)),\r\n createdOn: new Date()\r\n };\r\n if (option?.type === 'session') {\r\n try {\r\n sessionStorage.setItem(key, JSON.stringify(this.#cache[key]));\r\n this.#subject[key].next(this.#cache[key].data);\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n } else if (option?.type === 'server') {\r\n try {\r\n await this.configuration?.set(key, this.#cache[key]);\r\n this.#subject[key].next(this.#cache[key].data);\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n } else {\r\n try {\r\n localStorage.setItem(key, JSON.stringify(this.#cache[key]));\r\n this.#subject[key].next(this.#cache[key].data);\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n }\r\n };\r\n }\r\n\r\n #has = (key: string, option?: SdSettingOption): (() => Promise<boolean>) => {\r\n return async () => {\r\n let cache = this.#cache[key];\r\n if (option?.type === 'session') {\r\n try {\r\n cache = JSON.parse(sessionStorage.getItem(key));\r\n } catch {\r\n cache = undefined;\r\n }\r\n } else if (option?.type === 'server') {\r\n try {\r\n cache = await this.configuration?.get(key, option);\r\n } catch {\r\n cache = undefined;\r\n }\r\n } else {\r\n try {\r\n cache = JSON.parse(localStorage.getItem(key));\r\n } catch {\r\n cache = undefined;\r\n }\r\n }\r\n if (!cache) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n }\r\n\r\n #remove = (key: string, option?: SdSettingOption): (() => Promise<void>) => {\r\n return async () => {\r\n try {\r\n if (option?.type === 'session') {\r\n sessionStorage.removeItem(key);\r\n } else if (option?.type === 'server') {\r\n await this.configuration?.remove(key, option);\r\n } else {\r\n localStorage.removeItem(key);\r\n }\r\n this.#cache[key] = undefined;\r\n this.#subject[key].next(undefined);\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n };\r\n }\r\n}\r\n","/*\r\n * Public API Surface of superdev-angular-core\r\n */\r\n\r\nexport * from './lib/setting.model';\r\nexport * from './lib/setting.service';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sd-angular-core-setting.js","sources":["../../../../projects/sd-core/setting/src/lib/setting.model.ts","../../../../projects/sd-core/setting/src/lib/setting.service.ts","../../../../projects/sd-core/setting/src/public-api.ts","../../../../projects/sd-core/setting/sd-angular-core-setting.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\r\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\r\n\r\nexport interface SdSettingOption<T = any> {\r\n type?: 'session';\r\n default?: T;\r\n args?: {\r\n [key: string]: any\r\n };\r\n}\r\nexport interface SdSettingOptionServer<T = any> {\r\n default?: T;\r\n args?: {\r\n [key: string]: any\r\n };\r\n}\r\n\r\nexport interface SdSetting<T = any> {\r\n get: () => T;\r\n set: (data: T) => void;\r\n has: () => boolean;\r\n remove: () => void;\r\n subject: BehaviorSubject<T>;\r\n observer: Observable<T>;\r\n}\r\n\r\nexport interface SdSettingServer<T = any> {\r\n get: () => Promise<T>;\r\n set: (data: T) => Promise<void>;\r\n has: () => Promise<boolean>;\r\n remove: () => Promise<void>;\r\n subject: BehaviorSubject<T>;\r\n observer: Observable<T>;\r\n}\r\n\r\nexport interface ISettingConfiguration {\r\n convertKey?: (key: string) => string;\r\n set?: (key: string, value: { data: any, createdOn: Date }, args?: SdSettingOptionServer) => Promise<void>;\r\n get?: (key: string, args?: SdSettingOptionServer) => Promise<{\r\n data: any,\r\n createdOn: Date\r\n }>;\r\n remove?: (key: string, args?: SdSettingOptionServer) => Promise<void>;\r\n}\r\n\r\nexport const SETTING_CONFIG = new InjectionToken<ISettingConfiguration>('setting.configuration');\r\n","import { Optional } from '@angular/core';\r\nimport { Injectable, Inject } from '@angular/core';\r\nimport hash from 'object-hash';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\nimport { startWith, switchMap } from 'rxjs/operators';\r\nimport { SETTING_CONFIG, ISettingConfiguration, SdSettingOption, SdSetting, SdSettingServer, SdSettingOptionServer } from './setting.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SdSettingService {\r\n #cache: {\r\n [key: string]: {\r\n data: any,\r\n createdOn: Date\r\n }\r\n } = {};\r\n\r\n #subject: {\r\n [key: string]: BehaviorSubject<any>;\r\n } = {};\r\n\r\n constructor(@Inject(SETTING_CONFIG) @Optional() private configuration: ISettingConfiguration) { }\r\n\r\n create<T = any>(key: string | object, option?: SdSettingOption<T>): SdSetting<T> {\r\n if (!key) {\r\n throw new Error('Key is required');\r\n }\r\n let hashKey: string = null;\r\n if (typeof (key) === 'string') {\r\n hashKey = key;\r\n } else if (typeof (key) === 'object') {\r\n hashKey = hash(key);\r\n } else {\r\n throw new Error('Invalid key');\r\n }\r\n if (this.configuration?.convertKey) {\r\n hashKey = this.configuration.convertKey(hashKey);\r\n }\r\n \r\n const get = this.#get<T>(hashKey, option);\r\n const set = this.#set<T>(hashKey, option);\r\n const has = this.#has(hashKey, option);\r\n const remove = this.#remove(hashKey, option);\r\n if (!this.#subject[hashKey]) {\r\n this.#subject[hashKey] = new BehaviorSubject<T>(get());\r\n }\r\n return {\r\n get,\r\n set,\r\n has,\r\n remove,\r\n subject: this.#subject[hashKey],\r\n observer: this.#subject[hashKey].pipe(startWith(this.#subject[hashKey].getValue()))\r\n };\r\n }\r\n\r\n createServer<T = any>(key: string | object, option?: SdSettingOptionServer<T>): SdSettingServer<T> {\r\n if (!key) {\r\n throw new Error('Key is required');\r\n }\r\n let hashKey: string = null;\r\n if (typeof (key) === 'string') {\r\n hashKey = key;\r\n } else if (typeof (key) === 'object') {\r\n hashKey = hash(key);\r\n } else {\r\n throw new Error('Invalid key');\r\n }\r\n if (this.configuration?.convertKey) {\r\n hashKey = this.configuration.convertKey(hashKey);\r\n }\r\n if (!this.configuration?.get) {\r\n throw new Error('Please init setting configuration method get for type server');\r\n }\r\n if (!this.configuration?.set) {\r\n throw new Error('Please init setting configuration method set for type server');\r\n }\r\n if (!this.configuration?.remove) {\r\n throw new Error('Please init setting configuration method remove for type server');\r\n }\r\n if (!this.#subject[hashKey]) {\r\n this.#subject[hashKey] = new BehaviorSubject<any>(option?.default);\r\n }\r\n const get = this.#getServer<T>(hashKey, option);\r\n const set = this.#setServer<T>(hashKey, option);\r\n const has = this.#hasServer(hashKey, option);\r\n const remove = this.#remove(hashKey, option);\r\n return {\r\n get,\r\n set,\r\n has,\r\n remove,\r\n subject: this.#subject[hashKey],\r\n observer: this.#subject[hashKey].pipe(startWith(this.#subject[hashKey].getValue()), switchMap(get))\r\n };\r\n }\r\n\r\n #get = <T = any>(key: string, option?: SdSettingOption<T>): (() => T) => {\r\n return () => {\r\n let cache = this.#cache[key];\r\n if (option?.type === 'session') {\r\n try {\r\n cache = JSON.parse(sessionStorage.getItem(key));\r\n } catch {\r\n cache = undefined;\r\n }\r\n } else {\r\n try {\r\n cache = JSON.parse(localStorage.getItem(key));\r\n } catch {\r\n cache = undefined;\r\n }\r\n }\r\n if (!cache) {\r\n return option?.default;\r\n }\r\n return JSON.parse(JSON.stringify(cache.data));\r\n };\r\n }\r\n\r\n #getServer = <T = any>(key: string, option?: SdSettingOptionServer<T>): (() => Promise<T>) => {\r\n return async () => {\r\n let cache = this.#cache[key];\r\n try {\r\n cache = await this.configuration?.get(key, option);\r\n } catch {\r\n cache = undefined;\r\n }\r\n if (!cache) {\r\n return option?.default;\r\n }\r\n return JSON.parse(JSON.stringify(cache.data));\r\n };\r\n }\r\n\r\n #set = <T = any>(key: string, option?: SdSettingOption<T>): ((data: T) => void) => {\r\n return (data: T) => {\r\n this.#cache[key] = {\r\n data: JSON.parse(JSON.stringify(data)),\r\n createdOn: new Date()\r\n };\r\n if (option?.type === 'session') {\r\n try {\r\n sessionStorage.setItem(key, JSON.stringify(this.#cache[key]));\r\n this.#subject[key].next(this.#cache[key].data);\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n } else {\r\n try {\r\n localStorage.setItem(key, JSON.stringify(this.#cache[key]));\r\n this.#subject[key].next(this.#cache[key].data);\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n }\r\n };\r\n }\r\n\r\n #setServer = <T = any>(key: string, option?: SdSettingOption<T>): ((data: T) => Promise<void>) => {\r\n return async (data: T) => {\r\n this.#cache[key] = {\r\n data: JSON.parse(JSON.stringify(data)),\r\n createdOn: new Date()\r\n };\r\n try {\r\n await this.configuration?.set(key, this.#cache[key]);\r\n this.#subject[key].next(this.#cache[key].data);\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n };\r\n }\r\n\r\n #has = (key: string, option?: SdSettingOption): (() => boolean) => {\r\n return () => {\r\n let cache = this.#cache[key];\r\n if (option?.type === 'session') {\r\n try {\r\n cache = JSON.parse(sessionStorage.getItem(key));\r\n } catch {\r\n cache = undefined;\r\n }\r\n } else {\r\n try {\r\n cache = JSON.parse(localStorage.getItem(key));\r\n } catch {\r\n cache = undefined;\r\n }\r\n }\r\n if (!cache) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n }\r\n\r\n #hasServer = (key: string, option?: SdSettingOptionServer): (() => Promise<boolean>) => {\r\n return async () => {\r\n let cache = this.#cache[key];\r\n try {\r\n cache = await this.configuration?.get(key, option);\r\n } catch {\r\n cache = undefined;\r\n }\r\n if (!cache) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n }\r\n\r\n #remove = (key: string, option?: SdSettingOption): (() => Promise<void>) => {\r\n return async () => {\r\n try {\r\n if (option?.type === 'session') {\r\n sessionStorage.removeItem(key);\r\n } else {\r\n localStorage.removeItem(key);\r\n }\r\n this.#cache[key] = undefined;\r\n this.#subject[key].next(undefined);\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n };\r\n }\r\n\r\n #removeServer = (key: string, option?: SdSettingOptionServer): (() => Promise<void>) => {\r\n return async () => {\r\n try {\r\n await this.configuration?.remove(key, option);\r\n this.#cache[key] = undefined;\r\n this.#subject[key].next(undefined);\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n };\r\n }\r\n}\r\n","/*\r\n * Public API Surface of superdev-angular-core\r\n */\r\n\r\nexport * from './lib/setting.model';\r\nexport * from './lib/setting.service';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -13,6 +13,7 @@ import '@sd-angular/core/select';
13
13
  import '@sd-angular/core/quick-action';
14
14
  import '@sd-angular/core/image-preview';
15
15
  import '@sd-angular/core/comment';
16
+ import '@sd-angular/core/filter';
16
17
  import { NgModule, Pipe, EventEmitter, Component, ViewEncapsulation, ChangeDetectorRef, Input, Output, ViewChild, Directive } from '@angular/core';
17
18
  import { CommonModule, DatePipe, DecimalPipe } from '@angular/common';
18
19
  import { HttpClientModule } from '@angular/common/http';
@@ -1 +1 @@
1
- {"version":3,"file":"sd-angular-core.js","sources":["../../../../projects/sd-core/src/lib/material.module.ts","../../../../projects/sd-core/src/lib/pipes/sd-date.pipe.ts","../../../../projects/sd-core/src/lib/controls/date-picker-control/date-picker-control.component.ts","../../../../projects/sd-core/src/lib/controls/ckeditor-control/ckeditor-control.component.ts","../../../../projects/sd-core/src/lib/validators/min-date.validator.ts","../../../../projects/sd-core/src/lib/validators/max-date.validator.ts","../../../../projects/sd-core/src/lib/validators/custom.validator.ts","../../../../projects/sd-core/src/lib/validators/chip-min-item.validator.ts","../../../../projects/sd-core/src/lib/core.module.ts","../../../../projects/sd-core/src/sd-angular-core.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatBottomSheetModule } from '@angular/material/bottom-sheet';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\n\r\n@NgModule({\r\n imports: [\r\n MatTooltipModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatSelectModule,\r\n MatAutocompleteModule,\r\n MatCheckboxModule,\r\n MatSlideToggleModule,\r\n MatRadioModule,\r\n MatIconModule,\r\n MatMenuModule,\r\n MatChipsModule,\r\n MatButtonModule,\r\n MatDialogModule,\r\n MatBottomSheetModule,\r\n MatProgressSpinnerModule,\r\n DragDropModule,\r\n MatExpansionModule,\r\n MatTabsModule,\r\n MatPaginatorModule\r\n ],\r\n exports: [\r\n MatTooltipModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatSelectModule,\r\n MatAutocompleteModule,\r\n MatCheckboxModule,\r\n MatSlideToggleModule,\r\n MatRadioModule,\r\n MatIconModule,\r\n MatMenuModule,\r\n MatChipsModule,\r\n MatButtonModule,\r\n MatDialogModule,\r\n MatBottomSheetModule,\r\n MatProgressSpinnerModule,\r\n DragDropModule,\r\n MatExpansionModule,\r\n MatTabsModule,\r\n MatPaginatorModule\r\n ]\r\n})\r\nexport class MaterialModule { }\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n@Pipe({\r\n name: 'sdDate'\r\n})\r\nexport class SdDatePipe implements PipeTransform {\r\n transform(value: any, format: string): string {\r\n if (!Date.isDate(value)) {\r\n return value;\r\n }\r\n return Date.toFormat(value, format);\r\n }\r\n}\r\n","import {\r\n Component,\r\n ViewChild,\r\n ElementRef,\r\n Input,\r\n EventEmitter,\r\n Output,\r\n OnDestroy,\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport * as uuid from 'uuid';\r\n\r\nimport $ from 'jquery';\r\nimport 'jquery-datetimepicker';\r\nimport { NgForm, NgModel } from '@angular/forms';\r\nimport { DeviceDetectorService } from 'ngx-device-detector';\r\n// Document: https://xdsoft.net/jqplugins/datetimepicker/\r\n\r\n@Component({\r\n selector: 'sd-date-picker-control',\r\n templateUrl: './date-picker-control.component.html',\r\n styleUrls: ['./date-picker-control.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class DatePickerControlComponent implements OnDestroy, AfterViewInit {\r\n private isMobileOrTablet = false;\r\n private initialized = false;\r\n private pDate: any;\r\n pMinDate: any = null;\r\n pMaxDate: any = null;\r\n name = uuid.v4();\r\n @Input() form: NgForm;\r\n @Input() type: 'datetime' | 'date' | 'time' = 'datetime';\r\n @Input() disabled = false;\r\n @Input() required = false;\r\n @Input() label: string;\r\n @Input() placeholder: string;\r\n\r\n @Input() set minDate(date: string | Date | number) {\r\n if (!Date.isDate(date)) {\r\n this.pMinDate = null;\r\n } else {\r\n this.pMinDate = Date.toFormat(date, 'yyyy/MM/dd HH:mm');\r\n }\r\n this.setOption();\r\n }\r\n @Input() set maxDate(date: string | Date | number) {\r\n if (!Date.isDate(date)) {\r\n this.pMaxDate = null;\r\n } else {\r\n this.pMaxDate = Date.toFormat(date, 'yyyy/MM/dd HH:mm'); // this.datePipe.transform(date, 'yyyy/MM/dd HH:mm');\r\n }\r\n this.setOption();\r\n }\r\n @Input() validator: (value: any) => string | Promise<string>;\r\n @Output() sdChange = new EventEmitter();\r\n date: string;\r\n\r\n @Input() set model(val: any) {\r\n if (!Date.isDate(val)) {\r\n this.pDate = null;\r\n } else {\r\n if (this.type === 'datetime') {\r\n this.pDate = Date.toFormat(val, 'dd/MM/yyyy HH:mm');\r\n } else if (this.type === 'date') {\r\n this.pDate = Date.toFormat(val, 'dd/MM/yyyy');\r\n } else {\r\n this.pDate = Date.toFormat(val, 'HH:mm');\r\n }\r\n }\r\n if (this.initialized) {\r\n this.onChanges();\r\n }\r\n this.ref.detectChanges();\r\n }\r\n @Output() modelChange = new EventEmitter();\r\n\r\n @ViewChild('control') control: ElementRef;\r\n @ViewChild('formModel') formModel: NgModel;\r\n constructor(\r\n private ref: ChangeDetectorRef,\r\n deviceService: DeviceDetectorService) {\r\n this.isMobileOrTablet = !deviceService.isDesktop();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.form?.removeControl(this.formModel);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.form?.addControl(this.formModel);\r\n this.onChanges();\r\n this.initialized = true;\r\n this.setOption();\r\n this.ref.detectChanges();\r\n }\r\n\r\n onFocus = () => {\r\n if (this.isMobileOrTablet) {\r\n $(this.control.nativeElement).trigger('blur');\r\n }\r\n }\r\n\r\n private onChanges = () => {\r\n this.date = this.pDate;\r\n }\r\n\r\n private setOption() {\r\n if (this.initialized) {\r\n ($(this.control.nativeElement) as any).datetimepicker({\r\n datepicker: this.type === 'datetime' || this.type === 'date',\r\n timepicker: this.type === 'datetime' || this.type === 'time',\r\n format: this.type === 'datetime' ? 'd/m/Y H:i' : (this.type === 'date' ? 'd/m/Y' : 'H:i'),\r\n step: 15,\r\n minDate: this.pMinDate || undefined,\r\n maxDate: this.pMaxDate || undefined,\r\n scrollMonth: false,\r\n scrollTime: false,\r\n scrollInput: false,\r\n onChangeDateTime: (date: any) => {\r\n if (!date && !this.date) {\r\n return;\r\n }\r\n if (this.type === 'datetime') {\r\n date = Date.toFormat(date, 'dd/MM/yyyy HH:mm');\r\n } else if (this.type === 'time') {\r\n date = Date.toFormat(date, 'HH:mm');\r\n } else {\r\n date = Date.toFormat(date, 'dd/MM/yyyy');\r\n }\r\n if (!this.equal(date, this.date)) {\r\n this.model = this.parse(date);\r\n this.modelChange.emit(this.parse(date));\r\n this.sdChange.emit(this.parse(date));\r\n }\r\n this.ref.detectChanges();\r\n }\r\n });\r\n }\r\n }\r\n\r\n private parse(date: any) {\r\n if (this.type === 'date') {\r\n return Date.parseFrom(date, 'dd/MM/yyyy');\r\n } else if (this.type === 'time') {\r\n return Date.parseFrom(date, 'HH:mm');\r\n }\r\n return Date.parseFrom(date, 'dd/MM/yyyy HH:mm');\r\n }\r\n private equal(date1: any, date2: any) {\r\n return Date.equal(this.parse(date1), this.parse(date2));\r\n }\r\n}\r\n","import {\r\n Component,\r\n Input,\r\n ChangeDetectorRef,\r\n EventEmitter,\r\n Output,\r\n OnInit,\r\n} from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'sd-ckeditor-control',\r\n templateUrl: './ckeditor-control.component.html',\r\n styleUrls: [\r\n './ckeditor-control.component.css',\r\n ],\r\n})\r\nexport class CkeditorControlComponent implements OnInit {\r\n @Input() label: string;\r\n @Input() disabled = false;\r\n @Input() required = false;\r\n @Input() set model(value: string) {\r\n this.cModel = value;\r\n this.ref.detectChanges();\r\n }\r\n @Input() set config(value: any) {\r\n this.cConfig = value;\r\n this.ref.detectChanges();\r\n }\r\n @Output() modelChange = new EventEmitter();\r\n // tslint:disable-next-line: no-output-native\r\n @Output() change = new EventEmitter();\r\n @Output() sdChange = new EventEmitter();\r\n cModel: string;\r\n cConfig: any;\r\n editorUrl = '../../assets/ckeditor/ckeditor.js';\r\n\r\n constructor(private ref: ChangeDetectorRef, private sanitizer: DomSanitizer) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n onChange(value: any) {\r\n this.model = value;\r\n this.modelChange.emit(value);\r\n this.change.emit(value);\r\n this.sdChange.emit(value);\r\n }\r\n}\r\n","import { Directive, Input } from '@angular/core';\r\nimport { NG_VALIDATORS, Validator, ValidationErrors, AbstractControl } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[sdMinDate]',\r\n providers: [{ provide: NG_VALIDATORS, useExisting: SdMinDateValidator, multi: true }]\r\n})\r\nexport class SdMinDateValidator implements Validator {\r\n @Input('sdMinDate') minDate: string | Date;\r\n validate(c: AbstractControl): ValidationErrors {\r\n const date = c.value || null;\r\n const minDate = this.minDate || null;\r\n if (!date) {\r\n return null;\r\n }\r\n if (!minDate) {\r\n return null;\r\n }\r\n if (new Date(Date.parseFrom(date, 'dd/MM/yyyy HH:mm')).getTime() < new Date(minDate).getTime()) {\r\n return {\r\n minDate: true\r\n };\r\n }\r\n return null;\r\n }\r\n}\r\n","import { Directive, Input } from '@angular/core';\r\nimport { NG_VALIDATORS, Validator, ValidationErrors, AbstractControl } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[sdMaxDate]',\r\n providers: [{ provide: NG_VALIDATORS, useExisting: SdMaxDateValidator, multi: true }]\r\n})\r\nexport class SdMaxDateValidator implements Validator {\r\n @Input('sdMaxDate') maxDate: string | Date;\r\n validate(c: AbstractControl): ValidationErrors {\r\n const date = c.value || null;\r\n const maxDate = this.maxDate || null;\r\n if (!date) {\r\n return null;\r\n }\r\n if (!maxDate) {\r\n return null;\r\n }\r\n if (new Date(Date.parseFrom(date, 'dd/MM/yyyy HH:mm')).getTime() > new Date(maxDate).getTime()) {\r\n return {\r\n maxDate: true\r\n };\r\n }\r\n return null;\r\n }\r\n}\r\n","import { Directive, Input } from '@angular/core';\r\nimport { ValidationErrors, AbstractControl, AsyncValidator, NG_ASYNC_VALIDATORS } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[sdCustomValidator]',\r\n providers: [{ provide: NG_ASYNC_VALIDATORS, useExisting: SdCustomValidator, multi: true }]\r\n})\r\nexport class SdCustomValidator implements AsyncValidator {\r\n @Input('sdCustomValidator') func: (value: any) => string | Promise<string>;\r\n async validate(c: AbstractControl): Promise<ValidationErrors> {\r\n const value = c.value || null;\r\n if (this.func && typeof (this.func) === 'function') {\r\n const result = this.func(value);\r\n if (result instanceof Promise) {\r\n const message = await result;\r\n if (message) {\r\n return {\r\n customValidator: message\r\n };\r\n }\r\n return null;\r\n }\r\n if (result) {\r\n return {\r\n customValidator: result\r\n };\r\n }\r\n return null;\r\n }\r\n return null;\r\n }\r\n}\r\n","import { Directive, Input } from '@angular/core';\r\nimport { ValidationErrors, AbstractControl, Validator, NG_VALIDATORS } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[sdChipMinItem]',\r\n providers: [{ provide: NG_VALIDATORS, useExisting: SdChipMinItemValidator, multi: true }]\r\n})\r\nexport class SdChipMinItemValidator implements Validator {\r\n @Input('sdChipMinItem') func: () => string;\r\n validate(c: AbstractControl): ValidationErrors {\r\n if (this.func && typeof (this.func) === 'function') {\r\n const result = this.func();\r\n if (result) {\r\n return {\r\n minItem: result\r\n };\r\n }\r\n return null;\r\n }\r\n return null;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule, DatePipe, DecimalPipe } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CKEditorModule } from 'ckeditor4-angular';\r\nimport { MaterialModule } from './material.module';\r\nimport { DeviceDetectorModule } from 'ngx-device-detector';\r\n\r\nimport { SdDatePipe } from './pipes/sd-date.pipe';\r\nimport { SdServiceModule } from '@sd-angular/core/service';\r\nimport { SdChartModule } from '@sd-angular/core/chart';\r\nimport { SdGridMaterialModule } from '@sd-angular/core/grid-material';\r\nimport { SdEditorModule } from '@sd-angular/core/editor';\r\nimport { SdKonvaModule } from '@sd-angular/core/konva';\r\nimport { DatePickerControlComponent } from './controls/date-picker-control/date-picker-control.component';\r\nimport { CkeditorControlComponent } from './controls/ckeditor-control/ckeditor-control.component';\r\nimport { SdMinDateValidator } from './validators/min-date.validator';\r\nimport { SdMaxDateValidator } from './validators/max-date.validator';\r\nimport { SdCustomValidator } from './validators/custom.validator';\r\nimport { SdChipMinItemValidator } from './validators/chip-min-item.validator';\r\nimport { SdUploadExcelModule } from '@sd-angular/core/upload-excel';\r\nimport { SdGridModule } from '@sd-angular/core/grid';\r\nimport { SdFormModule } from '@sd-angular/core/form';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n HttpClientModule,\r\n MaterialModule,\r\n CKEditorModule,\r\n DeviceDetectorModule.forRoot(),\r\n SdChartModule,\r\n SdKonvaModule,\r\n SdGridMaterialModule,\r\n SdUploadExcelModule,\r\n SdGridModule,\r\n SdFormModule,\r\n SdServiceModule\r\n ],\r\n declarations: [\r\n DatePickerControlComponent,\r\n CkeditorControlComponent,\r\n // // Pipes\r\n SdDatePipe,\r\n // Validators\r\n SdMinDateValidator,\r\n SdMaxDateValidator,\r\n SdCustomValidator,\r\n SdChipMinItemValidator\r\n ],\r\n exports: [\r\n SdChartModule,\r\n SdKonvaModule,\r\n SdGridMaterialModule,\r\n SdEditorModule,\r\n SdUploadExcelModule,\r\n SdGridModule,\r\n SdFormModule,\r\n SdServiceModule,\r\n MaterialModule,\r\n // Controls\r\n DatePickerControlComponent,\r\n CkeditorControlComponent\r\n ],\r\n providers: [\r\n DatePipe,\r\n DecimalPipe\r\n ]\r\n})\r\nexport class SdCoreModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["uuid.v4"],"mappings":"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"}
1
+ {"version":3,"file":"sd-angular-core.js","sources":["../../../../projects/sd-core/src/lib/material.module.ts","../../../../projects/sd-core/src/lib/pipes/sd-date.pipe.ts","../../../../projects/sd-core/src/lib/controls/date-picker-control/date-picker-control.component.ts","../../../../projects/sd-core/src/lib/controls/ckeditor-control/ckeditor-control.component.ts","../../../../projects/sd-core/src/lib/validators/min-date.validator.ts","../../../../projects/sd-core/src/lib/validators/max-date.validator.ts","../../../../projects/sd-core/src/lib/validators/custom.validator.ts","../../../../projects/sd-core/src/lib/validators/chip-min-item.validator.ts","../../../../projects/sd-core/src/lib/core.module.ts","../../../../projects/sd-core/src/sd-angular-core.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatBottomSheetModule } from '@angular/material/bottom-sheet';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\n\r\n@NgModule({\r\n imports: [\r\n MatTooltipModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatSelectModule,\r\n MatAutocompleteModule,\r\n MatCheckboxModule,\r\n MatSlideToggleModule,\r\n MatRadioModule,\r\n MatIconModule,\r\n MatMenuModule,\r\n MatChipsModule,\r\n MatButtonModule,\r\n MatDialogModule,\r\n MatBottomSheetModule,\r\n MatProgressSpinnerModule,\r\n DragDropModule,\r\n MatExpansionModule,\r\n MatTabsModule,\r\n MatPaginatorModule\r\n ],\r\n exports: [\r\n MatTooltipModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatSelectModule,\r\n MatAutocompleteModule,\r\n MatCheckboxModule,\r\n MatSlideToggleModule,\r\n MatRadioModule,\r\n MatIconModule,\r\n MatMenuModule,\r\n MatChipsModule,\r\n MatButtonModule,\r\n MatDialogModule,\r\n MatBottomSheetModule,\r\n MatProgressSpinnerModule,\r\n DragDropModule,\r\n MatExpansionModule,\r\n MatTabsModule,\r\n MatPaginatorModule\r\n ]\r\n})\r\nexport class MaterialModule { }\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n@Pipe({\r\n name: 'sdDate'\r\n})\r\nexport class SdDatePipe implements PipeTransform {\r\n transform(value: any, format: string): string {\r\n if (!Date.isDate(value)) {\r\n return value;\r\n }\r\n return Date.toFormat(value, format);\r\n }\r\n}\r\n","import {\r\n Component,\r\n ViewChild,\r\n ElementRef,\r\n Input,\r\n EventEmitter,\r\n Output,\r\n OnDestroy,\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport * as uuid from 'uuid';\r\n\r\nimport $ from 'jquery';\r\nimport 'jquery-datetimepicker';\r\nimport { NgForm, NgModel } from '@angular/forms';\r\nimport { DeviceDetectorService } from 'ngx-device-detector';\r\n// Document: https://xdsoft.net/jqplugins/datetimepicker/\r\n\r\n@Component({\r\n selector: 'sd-date-picker-control',\r\n templateUrl: './date-picker-control.component.html',\r\n styleUrls: ['./date-picker-control.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class DatePickerControlComponent implements OnDestroy, AfterViewInit {\r\n private isMobileOrTablet = false;\r\n private initialized = false;\r\n private pDate: any;\r\n pMinDate: any = null;\r\n pMaxDate: any = null;\r\n name = uuid.v4();\r\n @Input() form: NgForm;\r\n @Input() type: 'datetime' | 'date' | 'time' = 'datetime';\r\n @Input() disabled = false;\r\n @Input() required = false;\r\n @Input() label: string;\r\n @Input() placeholder: string;\r\n\r\n @Input() set minDate(date: string | Date | number) {\r\n if (!Date.isDate(date)) {\r\n this.pMinDate = null;\r\n } else {\r\n this.pMinDate = Date.toFormat(date, 'yyyy/MM/dd HH:mm');\r\n }\r\n this.setOption();\r\n }\r\n @Input() set maxDate(date: string | Date | number) {\r\n if (!Date.isDate(date)) {\r\n this.pMaxDate = null;\r\n } else {\r\n this.pMaxDate = Date.toFormat(date, 'yyyy/MM/dd HH:mm'); // this.datePipe.transform(date, 'yyyy/MM/dd HH:mm');\r\n }\r\n this.setOption();\r\n }\r\n @Input() validator: (value: any) => string | Promise<string>;\r\n @Output() sdChange = new EventEmitter();\r\n date: string;\r\n\r\n @Input() set model(val: any) {\r\n if (!Date.isDate(val)) {\r\n this.pDate = null;\r\n } else {\r\n if (this.type === 'datetime') {\r\n this.pDate = Date.toFormat(val, 'dd/MM/yyyy HH:mm');\r\n } else if (this.type === 'date') {\r\n this.pDate = Date.toFormat(val, 'dd/MM/yyyy');\r\n } else {\r\n this.pDate = Date.toFormat(val, 'HH:mm');\r\n }\r\n }\r\n if (this.initialized) {\r\n this.onChanges();\r\n }\r\n this.ref.detectChanges();\r\n }\r\n @Output() modelChange = new EventEmitter();\r\n\r\n @ViewChild('control') control: ElementRef;\r\n @ViewChild('formModel') formModel: NgModel;\r\n constructor(\r\n private ref: ChangeDetectorRef,\r\n deviceService: DeviceDetectorService) {\r\n this.isMobileOrTablet = !deviceService.isDesktop();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.form?.removeControl(this.formModel);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.form?.addControl(this.formModel);\r\n this.onChanges();\r\n this.initialized = true;\r\n this.setOption();\r\n this.ref.detectChanges();\r\n }\r\n\r\n onFocus = () => {\r\n if (this.isMobileOrTablet) {\r\n $(this.control.nativeElement).trigger('blur');\r\n }\r\n }\r\n\r\n private onChanges = () => {\r\n this.date = this.pDate;\r\n }\r\n\r\n private setOption() {\r\n if (this.initialized) {\r\n ($(this.control.nativeElement) as any).datetimepicker({\r\n datepicker: this.type === 'datetime' || this.type === 'date',\r\n timepicker: this.type === 'datetime' || this.type === 'time',\r\n format: this.type === 'datetime' ? 'd/m/Y H:i' : (this.type === 'date' ? 'd/m/Y' : 'H:i'),\r\n step: 15,\r\n minDate: this.pMinDate || undefined,\r\n maxDate: this.pMaxDate || undefined,\r\n scrollMonth: false,\r\n scrollTime: false,\r\n scrollInput: false,\r\n onChangeDateTime: (date: any) => {\r\n if (!date && !this.date) {\r\n return;\r\n }\r\n if (this.type === 'datetime') {\r\n date = Date.toFormat(date, 'dd/MM/yyyy HH:mm');\r\n } else if (this.type === 'time') {\r\n date = Date.toFormat(date, 'HH:mm');\r\n } else {\r\n date = Date.toFormat(date, 'dd/MM/yyyy');\r\n }\r\n if (!this.equal(date, this.date)) {\r\n this.model = this.parse(date);\r\n this.modelChange.emit(this.parse(date));\r\n this.sdChange.emit(this.parse(date));\r\n }\r\n this.ref.detectChanges();\r\n }\r\n });\r\n }\r\n }\r\n\r\n private parse(date: any) {\r\n if (this.type === 'date') {\r\n return Date.parseFrom(date, 'dd/MM/yyyy');\r\n } else if (this.type === 'time') {\r\n return Date.parseFrom(date, 'HH:mm');\r\n }\r\n return Date.parseFrom(date, 'dd/MM/yyyy HH:mm');\r\n }\r\n private equal(date1: any, date2: any) {\r\n return Date.equal(this.parse(date1), this.parse(date2));\r\n }\r\n}\r\n","import {\r\n Component,\r\n Input,\r\n ChangeDetectorRef,\r\n EventEmitter,\r\n Output,\r\n OnInit,\r\n} from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'sd-ckeditor-control',\r\n templateUrl: './ckeditor-control.component.html',\r\n styleUrls: [\r\n './ckeditor-control.component.css',\r\n ],\r\n})\r\nexport class CkeditorControlComponent implements OnInit {\r\n @Input() label: string;\r\n @Input() disabled = false;\r\n @Input() required = false;\r\n @Input() set model(value: string) {\r\n this.cModel = value;\r\n this.ref.detectChanges();\r\n }\r\n @Input() set config(value: any) {\r\n this.cConfig = value;\r\n this.ref.detectChanges();\r\n }\r\n @Output() modelChange = new EventEmitter();\r\n // tslint:disable-next-line: no-output-native\r\n @Output() change = new EventEmitter();\r\n @Output() sdChange = new EventEmitter();\r\n cModel: string;\r\n cConfig: any;\r\n editorUrl = '../../assets/ckeditor/ckeditor.js';\r\n\r\n constructor(private ref: ChangeDetectorRef, private sanitizer: DomSanitizer) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n onChange(value: any) {\r\n this.model = value;\r\n this.modelChange.emit(value);\r\n this.change.emit(value);\r\n this.sdChange.emit(value);\r\n }\r\n}\r\n","import { Directive, Input } from '@angular/core';\r\nimport { NG_VALIDATORS, Validator, ValidationErrors, AbstractControl } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[sdMinDate]',\r\n providers: [{ provide: NG_VALIDATORS, useExisting: SdMinDateValidator, multi: true }]\r\n})\r\nexport class SdMinDateValidator implements Validator {\r\n @Input('sdMinDate') minDate: string | Date;\r\n validate(c: AbstractControl): ValidationErrors {\r\n const date = c.value || null;\r\n const minDate = this.minDate || null;\r\n if (!date) {\r\n return null;\r\n }\r\n if (!minDate) {\r\n return null;\r\n }\r\n if (new Date(Date.parseFrom(date, 'dd/MM/yyyy HH:mm')).getTime() < new Date(minDate).getTime()) {\r\n return {\r\n minDate: true\r\n };\r\n }\r\n return null;\r\n }\r\n}\r\n","import { Directive, Input } from '@angular/core';\r\nimport { NG_VALIDATORS, Validator, ValidationErrors, AbstractControl } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[sdMaxDate]',\r\n providers: [{ provide: NG_VALIDATORS, useExisting: SdMaxDateValidator, multi: true }]\r\n})\r\nexport class SdMaxDateValidator implements Validator {\r\n @Input('sdMaxDate') maxDate: string | Date;\r\n validate(c: AbstractControl): ValidationErrors {\r\n const date = c.value || null;\r\n const maxDate = this.maxDate || null;\r\n if (!date) {\r\n return null;\r\n }\r\n if (!maxDate) {\r\n return null;\r\n }\r\n if (new Date(Date.parseFrom(date, 'dd/MM/yyyy HH:mm')).getTime() > new Date(maxDate).getTime()) {\r\n return {\r\n maxDate: true\r\n };\r\n }\r\n return null;\r\n }\r\n}\r\n","import { Directive, Input } from '@angular/core';\r\nimport { ValidationErrors, AbstractControl, AsyncValidator, NG_ASYNC_VALIDATORS } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[sdCustomValidator]',\r\n providers: [{ provide: NG_ASYNC_VALIDATORS, useExisting: SdCustomValidator, multi: true }]\r\n})\r\nexport class SdCustomValidator implements AsyncValidator {\r\n @Input('sdCustomValidator') func: (value: any) => string | Promise<string>;\r\n async validate(c: AbstractControl): Promise<ValidationErrors> {\r\n const value = c.value || null;\r\n if (this.func && typeof (this.func) === 'function') {\r\n const result = this.func(value);\r\n if (result instanceof Promise) {\r\n const message = await result;\r\n if (message) {\r\n return {\r\n customValidator: message\r\n };\r\n }\r\n return null;\r\n }\r\n if (result) {\r\n return {\r\n customValidator: result\r\n };\r\n }\r\n return null;\r\n }\r\n return null;\r\n }\r\n}\r\n","import { Directive, Input } from '@angular/core';\r\nimport { ValidationErrors, AbstractControl, Validator, NG_VALIDATORS } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[sdChipMinItem]',\r\n providers: [{ provide: NG_VALIDATORS, useExisting: SdChipMinItemValidator, multi: true }]\r\n})\r\nexport class SdChipMinItemValidator implements Validator {\r\n @Input('sdChipMinItem') func: () => string;\r\n validate(c: AbstractControl): ValidationErrors {\r\n if (this.func && typeof (this.func) === 'function') {\r\n const result = this.func();\r\n if (result) {\r\n return {\r\n minItem: result\r\n };\r\n }\r\n return null;\r\n }\r\n return null;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule, DatePipe, DecimalPipe } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CKEditorModule } from 'ckeditor4-angular';\r\nimport { MaterialModule } from './material.module';\r\nimport { DeviceDetectorModule } from 'ngx-device-detector';\r\n\r\nimport { SdDatePipe } from './pipes/sd-date.pipe';\r\nimport { SdServiceModule } from '@sd-angular/core/service';\r\nimport { SdChartModule } from '@sd-angular/core/chart';\r\nimport { SdGridMaterialModule } from '@sd-angular/core/grid-material';\r\nimport { SdEditorModule } from '@sd-angular/core/editor';\r\nimport { SdKonvaModule } from '@sd-angular/core/konva';\r\nimport { DatePickerControlComponent } from './controls/date-picker-control/date-picker-control.component';\r\nimport { CkeditorControlComponent } from './controls/ckeditor-control/ckeditor-control.component';\r\nimport { SdMinDateValidator } from './validators/min-date.validator';\r\nimport { SdMaxDateValidator } from './validators/max-date.validator';\r\nimport { SdCustomValidator } from './validators/custom.validator';\r\nimport { SdChipMinItemValidator } from './validators/chip-min-item.validator';\r\nimport { SdUploadExcelModule } from '@sd-angular/core/upload-excel';\r\nimport { SdGridModule } from '@sd-angular/core/grid';\r\nimport { SdFormModule } from '@sd-angular/core/form';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n HttpClientModule,\r\n MaterialModule,\r\n CKEditorModule,\r\n DeviceDetectorModule.forRoot(),\r\n SdChartModule,\r\n SdKonvaModule,\r\n SdGridMaterialModule,\r\n SdUploadExcelModule,\r\n SdGridModule,\r\n SdFormModule,\r\n SdServiceModule\r\n ],\r\n declarations: [\r\n DatePickerControlComponent,\r\n CkeditorControlComponent,\r\n // // Pipes\r\n SdDatePipe,\r\n // Validators\r\n SdMinDateValidator,\r\n SdMaxDateValidator,\r\n SdCustomValidator,\r\n SdChipMinItemValidator\r\n ],\r\n exports: [\r\n SdChartModule,\r\n SdKonvaModule,\r\n SdGridMaterialModule,\r\n SdEditorModule,\r\n SdUploadExcelModule,\r\n SdGridModule,\r\n SdFormModule,\r\n SdServiceModule,\r\n MaterialModule,\r\n // Controls\r\n DatePickerControlComponent,\r\n CkeditorControlComponent\r\n ],\r\n providers: [\r\n DatePipe,\r\n DecimalPipe\r\n ]\r\n})\r\nexport class SdCoreModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["uuid.v4"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAkEa,cAAc;;;YA5C1B,QAAQ,SAAC;gBACR,OAAO,EAAE;oBACP,gBAAgB;oBAChB,kBAAkB;oBAClB,cAAc;oBACd,eAAe;oBACf,qBAAqB;oBACrB,iBAAiB;oBACjB,oBAAoB;oBACpB,cAAc;oBACd,aAAa;oBACb,aAAa;oBACb,cAAc;oBACd,eAAe;oBACf,eAAe;oBACf,oBAAoB;oBACpB,wBAAwB;oBACxB,cAAc;oBACd,kBAAkB;oBAClB,aAAa;oBACb,kBAAkB;iBACnB;gBACD,OAAO,EAAE;oBACP,gBAAgB;oBAChB,kBAAkB;oBAClB,cAAc;oBACd,eAAe;oBACf,qBAAqB;oBACrB,iBAAiB;oBACjB,oBAAoB;oBACpB,cAAc;oBACd,aAAa;oBACb,aAAa;oBACb,cAAc;oBACd,eAAe;oBACf,eAAe;oBACf,oBAAoB;oBACpB,wBAAwB;oBACxB,cAAc;oBACd,kBAAkB;oBAClB,aAAa;oBACb,kBAAkB;iBACnB;aACF;;;MC7DY,UAAU;IACrB,SAAS,CAAC,KAAU,EAAE,MAAc;QAClC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;YACvB,OAAO,KAAK,CAAC;SACd;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;KACrC;;;YATF,IAAI,SAAC;gBACJ,IAAI,EAAE,QAAQ;aACf;;;ACeD;MAQa,0BAA0B;IAuDrC,YACU,GAAsB,EAC9B,aAAoC;QAD5B,QAAG,GAAH,GAAG,CAAmB;QAvDxB,qBAAgB,GAAG,KAAK,CAAC;QACzB,gBAAW,GAAG,KAAK,CAAC;QAE5B,aAAQ,GAAQ,IAAI,CAAC;QACrB,aAAQ,GAAQ,IAAI,CAAC;QACrB,SAAI,GAAGA,EAAO,EAAE,CAAC;QAER,SAAI,GAAiC,UAAU,CAAC;QAChD,aAAQ,GAAG,KAAK,CAAC;QACjB,aAAQ,GAAG,KAAK,CAAC;QAqBhB,aAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;QAoB9B,gBAAW,GAAG,IAAI,YAAY,EAAE,CAAC;QAsB3C,YAAO,GAAG;YACR,IAAI,IAAI,CAAC,gBAAgB,EAAE;gBACzB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;aAC/C;SACF,CAAA;QAEO,cAAS,GAAG;YAClB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;SACxB,CAAA;QAvBC,IAAI,CAAC,gBAAgB,GAAG,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC;KACpD;IA7CD,IAAa,OAAO,CAAC,IAA4B;QAC/C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;SACtB;aAAM;YACL,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;SACzD;QACD,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;IACD,IAAa,OAAO,CAAC,IAA4B;QAC/C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;SACtB;aAAM;YACL,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;SACzD;QACD,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;IAKD,IAAa,KAAK,CAAC,GAAQ;QACzB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;YACrB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;SACnB;aAAM;YACL,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE;gBAC5B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;aACrD;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;gBAC/B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;aAC/C;iBAAM;gBACL,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;aAC1C;SACF;QACD,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB;QACD,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;KAC1B;IAWD,WAAW;;QACT,MAAA,IAAI,CAAC,IAAI,0CAAE,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE;KAC1C;IAED,eAAe;;QACb,MAAA,IAAI,CAAC,IAAI,0CAAE,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE;QACtC,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;KAC1B;IAYO,SAAS;QACf,IAAI,IAAI,CAAC,WAAW,EAAE;YACnB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAS,CAAC,cAAc,CAAC;gBACpD,UAAU,EAAE,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;gBAC5D,UAAU,EAAE,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;gBAC5D,MAAM,EAAE,IAAI,CAAC,IAAI,KAAK,UAAU,GAAG,WAAW,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;gBACzF,IAAI,EAAE,EAAE;gBACR,OAAO,EAAE,IAAI,CAAC,QAAQ,IAAI,SAAS;gBACnC,OAAO,EAAE,IAAI,CAAC,QAAQ,IAAI,SAAS;gBACnC,WAAW,EAAE,KAAK;gBAClB,UAAU,EAAE,KAAK;gBACjB,WAAW,EAAE,KAAK;gBAClB,gBAAgB,EAAE,CAAC,IAAS;oBAC1B,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;wBACvB,OAAO;qBACR;oBACD,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE;wBAC5B,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;qBAChD;yBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;wBAC/B,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;qBACrC;yBAAM;wBACL,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;qBAC1C;oBACD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;wBAChC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBAC9B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;wBACxC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;qBACtC;oBACD,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;iBAC1B;aACF,CAAC,CAAC;SACJ;KACF;IAEO,KAAK,CAAC,IAAS;QACrB,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;YACxB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;SAC3C;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;YAC/B,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;SACtC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;KACjD;IACO,KAAK,CAAC,KAAU,EAAE,KAAU;QAClC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;KACzD;;;YArIF,SAAS,SAAC;gBACT,QAAQ,EAAE,wBAAwB;gBAClC,+yCAAmD;gBAEnD,aAAa,EAAE,iBAAiB,CAAC,IAAI;;aACtC;;;YAhBC,iBAAiB;YAQV,qBAAqB;;;mBAgB3B,KAAK;mBACL,KAAK;uBACL,KAAK;uBACL,KAAK;oBACL,KAAK;0BACL,KAAK;sBAEL,KAAK;sBAQL,KAAK;wBAQL,KAAK;uBACL,MAAM;oBAGN,KAAK;0BAiBL,MAAM;sBAEN,SAAS,SAAC,SAAS;wBACnB,SAAS,SAAC,WAAW;;;MC/DX,wBAAwB;IAoBnC,YAAoB,GAAsB,EAAU,SAAuB;QAAvD,QAAG,GAAH,GAAG,CAAmB;QAAU,cAAS,GAAT,SAAS,CAAc;QAlBlE,aAAQ,GAAG,KAAK,CAAC;QACjB,aAAQ,GAAG,KAAK,CAAC;QAShB,gBAAW,GAAG,IAAI,YAAY,EAAE,CAAC;;QAEjC,WAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC5B,aAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;QAGxC,cAAS,GAAG,mCAAmC,CAAC;KAI/C;IAlBD,IAAa,KAAK,CAAC,KAAa;QAC9B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;KAC1B;IACD,IAAa,MAAM,CAAC,KAAU;QAC5B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;KAC1B;IAaD,QAAQ;KACP;IAED,QAAQ,CAAC,KAAU;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC3B;;;YAvCF,SAAS,SAAC;gBACT,QAAQ,EAAE,qBAAqB;gBAC/B,iSAAgD;;aAIjD;;;YAbC,iBAAiB;YAKV,YAAY;;;oBAUlB,KAAK;uBACL,KAAK;uBACL,KAAK;oBACL,KAAK;qBAIL,KAAK;0BAIL,MAAM;qBAEN,MAAM;uBACN,MAAM;;;MCzBI,kBAAkB;IAE7B,QAAQ,CAAC,CAAkB;QACzB,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC;QACrC,IAAI,CAAC,IAAI,EAAE;YACT,OAAO,IAAI,CAAC;SACb;QACD,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,IAAI,CAAC;SACb;QACD,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC9F,OAAO;gBACL,OAAO,EAAE,IAAI;aACd,CAAC;SACH;QACD,OAAO,IAAI,CAAC;KACb;;;YArBF,SAAS,SAAC;gBACT,QAAQ,EAAE,aAAa;gBACvB,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,kBAAkB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;aACtF;;;sBAEE,KAAK,SAAC,WAAW;;;MCDP,kBAAkB;IAE7B,QAAQ,CAAC,CAAkB;QACzB,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC;QACrC,IAAI,CAAC,IAAI,EAAE;YACT,OAAO,IAAI,CAAC;SACb;QACD,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,IAAI,CAAC;SACb;QACD,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC9F,OAAO;gBACL,OAAO,EAAE,IAAI;aACd,CAAC;SACH;QACD,OAAO,IAAI,CAAC;KACb;;;YArBF,SAAS,SAAC;gBACT,QAAQ,EAAE,aAAa;gBACvB,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,kBAAkB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;aACtF;;;sBAEE,KAAK,SAAC,WAAW;;;MCDP,iBAAiB;IAEtB,QAAQ,CAAC,CAAkB;;YAC/B,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC;YAC9B,IAAI,IAAI,CAAC,IAAI,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,UAAU,EAAE;gBAClD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAChC,IAAI,MAAM,YAAY,OAAO,EAAE;oBAC7B,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC;oBAC7B,IAAI,OAAO,EAAE;wBACX,OAAO;4BACL,eAAe,EAAE,OAAO;yBACzB,CAAC;qBACH;oBACD,OAAO,IAAI,CAAC;iBACb;gBACD,IAAI,MAAM,EAAE;oBACV,OAAO;wBACL,eAAe,EAAE,MAAM;qBACxB,CAAC;iBACH;gBACD,OAAO,IAAI,CAAC;aACb;YACD,OAAO,IAAI,CAAC;SACb;KAAA;;;YA3BF,SAAS,SAAC;gBACT,QAAQ,EAAE,qBAAqB;gBAC/B,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,iBAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;aAC3F;;;mBAEE,KAAK,SAAC,mBAAmB;;;MCDf,sBAAsB;IAEjC,QAAQ,CAAC,CAAkB;QACzB,IAAI,IAAI,CAAC,IAAI,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,UAAU,EAAE;YAClD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAC3B,IAAI,MAAM,EAAE;gBACV,OAAO;oBACL,OAAO,EAAE,MAAM;iBAChB,CAAC;aACH;YACD,OAAO,IAAI,CAAC;SACb;QACD,OAAO,IAAI,CAAC;KACb;;;YAjBF,SAAS,SAAC;gBACT,QAAQ,EAAE,iBAAiB;gBAC3B,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,sBAAsB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;aAC1F;;;mBAEE,KAAK,SAAC,eAAe;;;MC+DX,YAAY;;;YA/CxB,QAAQ,SAAC;gBACR,OAAO,EAAE;oBACP,YAAY;oBACZ,WAAW;oBACX,mBAAmB;oBACnB,gBAAgB;oBAChB,cAAc;oBACd,cAAc;oBACd,oBAAoB,CAAC,OAAO,EAAE;oBAC9B,aAAa;oBACb,aAAa;oBACb,oBAAoB;oBACpB,mBAAmB;oBACnB,YAAY;oBACZ,YAAY;oBACZ,eAAe;iBAChB;gBACD,YAAY,EAAE;oBACZ,0BAA0B;oBAC1B,wBAAwB;;oBAExB,UAAU;;oBAEV,kBAAkB;oBAClB,kBAAkB;oBAClB,iBAAiB;oBACjB,sBAAsB;iBACvB;gBACD,OAAO,EAAE;oBACP,aAAa;oBACb,aAAa;oBACb,oBAAoB;oBACpB,cAAc;oBACd,mBAAmB;oBACnB,YAAY;oBACZ,YAAY;oBACZ,eAAe;oBACf,cAAc;;oBAEd,0BAA0B;oBAC1B,wBAAwB;iBACzB;gBACD,SAAS,EAAE;oBACT,QAAQ;oBACR,WAAW;iBACZ;aACF;;;ACtED;;;;;;"}
@@ -0,0 +1 @@
1
+ export * from './src/public-api';
@@ -0,0 +1,12 @@
1
+ {
2
+ "peerDependencies": {},
3
+ "main": "../bundles/sd-angular-core-filter.umd.js",
4
+ "module": "../fesm2015/sd-angular-core-filter.js",
5
+ "es2015": "../fesm2015/sd-angular-core-filter.js",
6
+ "esm2015": "../esm2015/filter/sd-angular-core-filter.js",
7
+ "fesm2015": "../fesm2015/sd-angular-core-filter.js",
8
+ "typings": "sd-angular-core-filter.d.ts",
9
+ "metadata": "sd-angular-core-filter.metadata.json",
10
+ "sideEffects": false,
11
+ "name": "@sd-angular/core/filter"
12
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ export { SdFilterService as ɵa } from './src/lib/filter.service';
6
+ export { SdValuesLocalPipe as ɵb } from './src/lib/pipes/values-local.pipe';
7
+ export { SdValuesServerPipe as ɵc } from './src/lib/pipes/values-server.pipe';
@@ -0,0 +1 @@
1
+ {"__symbolic":"module","version":4,"metadata":{"SdFilterModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":16,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":18,"character":4},{"__symbolic":"reference","module":"@angular/material/form-field","name":"MatFormFieldModule","line":19,"character":4},{"__symbolic":"reference","module":"@angular/material/input","name":"MatInputModule","line":20,"character":4},{"__symbolic":"reference","module":"@angular/material/icon","name":"MatIconModule","line":21,"character":4},{"__symbolic":"reference","module":"@angular/material/tooltip","name":"MatTooltipModule","line":22,"character":4},{"__symbolic":"reference","module":"@angular/material/button","name":"MatButtonModule","line":23,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/translate","name":"SdTranslateModule","line":24,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/common","name":"SdCommonModule","line":25,"character":4},{"__symbolic":"reference","module":"@sd-angular/core/form","name":"SdFormModule","line":26,"character":4}],"declarations":[{"__symbolic":"reference","name":"SdFilter"},{"__symbolic":"reference","name":"SdFilterDefDirective"},{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵc"}],"providers":[{"__symbolic":"reference","name":"ɵa"}],"exports":[{"__symbolic":"reference","module":"@sd-angular/core/common","name":"SdCommonModule","line":38,"character":4},{"__symbolic":"reference","name":"SdFilterDefDirective"},{"__symbolic":"reference","name":"SdFilter"}]}]}],"members":{}},"SdFilterDefDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":2,"character":1},"arguments":[{"selector":"[sdFilterDef]"}]}],"members":{"sdFilterDef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":6,"character":3}}]}],"_defaultShowing":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":8,"character":3},"arguments":["defaultShowing"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"reference","name":"any"}]}]}]}},"SdFilterOption":{"__symbolic":"interface"},"SdQuickFilter":{"__symbolic":"interface"},"SdFilterInformation":{"__symbolic":"interface"},"Filter":{"__symbolic":"interface"},"BaseFilter":{"__symbolic":"interface"},"StringFilter":{"__symbolic":"interface"},"NumberFilter":{"__symbolic":"interface"},"ValuesLocalFilter":{"__symbolic":"interface"},"ValuesServerFilter":{"__symbolic":"interface"},"DateFilter":{"__symbolic":"interface"},"DateRageFilter":{"__symbolic":"interface"},"BoolFilter":{"__symbolic":"interface"},"FilterObject":{"__symbolic":"interface"},"SdFilter":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":12,"character":1},"arguments":[{"selector":"sd-filter","template":"<div *ngIf=\"information\" class=\"c-container\">\r\n <div class=\"c-header\">\r\n <div class=\"d-flex align-items-center\">\r\n <button class=\"mx-2\" aria-hidden=\"true\" mat-icon-button>\r\n <mat-icon class=\"c-icon\">filter_alt</mat-icon>\r\n </button>\r\n <span>Hiển thị</span>\r\n </div>\r\n <div class=\"d-flex align-items-center\">\r\n <button class=\"mx-2\" aria-hidden=\"true\" mat-icon-button>\r\n <mat-icon class=\"c-icon\">add</mat-icon>\r\n </button>\r\n <button class=\"mx-2\" aria-hidden=\"true\" mat-icon-button>\r\n <mat-icon class=\"c-icon\">settings</mat-icon>\r\n </button>\r\n <button class=\"mx-2\" aria-hidden=\"true\" mat-icon-button>\r\n <mat-icon class=\"c-icon\">download</mat-icon>\r\n </button>\r\n <button class=\"mx-2\" aria-hidden=\"true\" mat-icon-button>\r\n <mat-icon class=\"c-icon\">close</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"c-body row mx-0\">\r\n <ng-container *ngFor=\"let item of filterOption?.filters\">\r\n <div *ngIf=\"information.visible[item.field] !== false\" class=\"col-lg-2 col-md-3 col-sm-6 px-8\">\r\n <sd-input *ngIf=\"item.type === 'string'\" [label]=\"item.title\" type=\"text\"\r\n [(model)]=\"information.filter[item.field]\" (keyupEnter)=\"onFilter(item)\">\r\n </sd-input>\r\n <sd-input *ngIf=\"item.type === 'number'\" [label]=\"item.title\" type=\"number\"\r\n [(model)]=\"information.filter[item.field]\" (keyupEnter)=\"onFilter(item)\">\r\n </sd-input>\r\n <sd-select *ngIf=\"item.type === 'bool'\" [label]=\"item.title\" [items]=\"[{value:true,display:item.option?.displayOnTrue || 'True' },\r\n {value:false,display:item.option?.displayOnFalse || 'False' }]\" valueField=\"value\" displayField=\"display\"\r\n [(model)]=\"information.filter[item.field]\" (sdChange)=\"onFilter(item)\">\r\n </sd-select>\r\n <ng-container *ngIf=\"item.type === 'values-local'\">\r\n <sd-select *ngIf=\"item.option?.selection === 'MULTIPLE'\" [label]=\"item.title\"\r\n [items]=\"item | sdValuesLocal | async\" [valueField]=\"item.option.valueField\"\r\n [displayField]=\"item.option.displayField\" [(model)]=\"information.filter[item.field]\"\r\n (sdChange)=\"onFilter(item)\" [selectAll]=\"item.option.selectAll\" multiple=\"true\">\r\n </sd-select>\r\n <sd-autocomplete *ngIf=\"item.option?.selection === 'AUTOCOMPLETE'\" [label]=\"item.title\"\r\n [items]=\"item | sdValuesLocal | async\" [valueField]=\"item.option.valueField\"\r\n [displayField]=\"item.option.displayField\" [(model)]=\"information.filter[item.field]\"\r\n (sdChange)=\"onFilter(item)\">\r\n </sd-autocomplete>\r\n <sd-select *ngIf=\"item.option?.selection === 'MULTIPLEAUTOCOMPLETE'\" [label]=\"item.title\"\r\n [items]=\"item | sdValuesLocal | async\" [valueField]=\"item.option.valueField\"\r\n [displayField]=\"item.option.displayField\" [(model)]=\"information.filter[item.field]\"\r\n (sdChange)=\"onFilter(item)\" filtered multiple>\r\n </sd-select>\r\n <sd-select *ngIf=\"!item.option?.selection\" [label]=\"item.title\" [items]=\"item | sdValuesLocal | async\"\r\n [valueField]=\"item.option.valueField\" [displayField]=\"item.option.displayField\"\r\n [(model)]=\"information.filter[item.field]\" (sdChange)=\"onFilter(item)\">\r\n </sd-select>\r\n </ng-container>\r\n <ng-container *ngIf=\"item.type === 'values-server'\">\r\n <sd-select *ngIf=\"item.option?.selection === 'MULTIPLE'\" [label]=\"item.title\"\r\n [items]=\"item | sdValuesLocal | async\" [valueField]=\"item.option.valueField\"\r\n [displayField]=\"item.option.displayField\" [(model)]=\"information.filter[item.field]\"\r\n (sdChange)=\"onFilter(item)\" filtered multiple>\r\n </sd-select>\r\n <sd-autocomplete *ngIf=\"!item.option?.selection\" [label]=\"item.title\" [items]=\"item | sdValuesLocal | async\"\r\n [valueField]=\"item.option.valueField\" [displayField]=\"item.option.displayField\"\r\n [(model)]=\"information.filter[item.field]\" (sdChange)=\"onFilter(item)\">\r\n </sd-autocomplete>\r\n </ng-container>\r\n <sd-date-time *ngIf=\"item.type ==='date' || item.type ==='datetime'\" [label]=\"item.title\"\r\n [(model)]=\"information.filter[item.field]\" [type]=\"item.type\" [min]=\"item?.option?.min\"\r\n [max]=\"item?.option?.max\" (sdChange)=\"onFilter(item)\">\r\n </sd-date-time>\r\n <sd-date-range *ngIf=\"item.type ==='daterange'\" [label]=\"item.title\"\r\n [(from)]=\"information.filter[item.field].from\" [(to)]=\"information.filter[item.field].to\"\r\n [min]=\"item?.option?.min\" [max]=\"item?.option?.max\" (sdChange)=\"onFilter(item)\">\r\n </sd-date-range>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n<!-- <sd-popup-filter [columns]=\"columns\" [externalFilters]=\"externalFilters\" (changeFilter)=\"onChangeFilter($event)\"\r\n (clearFilter)=\"onReset()\" [filterDefs]=\"filterDefs\">\r\n </sd-popup-filter> -->","styles":[".c-container .c-header{align-items:center;display:flex;height:48px;justify-content:space-between;padding:0 20px}.c-container mat-icon.c-icon{color:rgba(0,0,0,.54)!important}.c-container button:focus{outline:none}:host ::ng-deep .mat-form-field-wrapper{padding-bottom:0}"]}]}],"members":{"_filterOption":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":3},"arguments":["option"]}]}],"sdFilterDefs":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":30,"character":3},"arguments":[{"__symbolic":"reference","name":"SdFilterDefDirective"}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"ngx-device-detector","name":"DeviceDetectorService","line":36,"character":27},{"__symbolic":"reference","module":"@sd-angular/core/setting","name":"SdSettingService","line":37,"character":28},{"__symbolic":"reference","name":"ɵa"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":5,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@sd-angular/core/setting","name":"SdSettingService","line":8,"character":38}]}]}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":3,"character":1},"arguments":[{"name":"sdValuesLocal"}]}],"members":{}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":3,"character":1},"arguments":[{"name":"sdValuesServer"}]}],"members":{}}},"origins":{"SdFilterModule":"./src/lib/filter.module","SdFilterDefDirective":"./src/lib/directives/sd-filter-def.directive","SdFilterOption":"./src/lib/filter.model","SdQuickFilter":"./src/lib/filter.model","SdFilterInformation":"./src/lib/filter.model","Filter":"./src/lib/filter.model","BaseFilter":"./src/lib/filter.model","StringFilter":"./src/lib/filter.model","NumberFilter":"./src/lib/filter.model","ValuesLocalFilter":"./src/lib/filter.model","ValuesServerFilter":"./src/lib/filter.model","DateFilter":"./src/lib/filter.model","DateRageFilter":"./src/lib/filter.model","BoolFilter":"./src/lib/filter.model","FilterObject":"./src/lib/filter.model","SdFilter":"./src/lib/filter.component","ɵa":"./src/lib/filter.service","ɵb":"./src/lib/pipes/values-local.pipe","ɵc":"./src/lib/pipes/values-server.pipe"},"importAs":"@sd-angular/core/filter"}
@@ -0,0 +1,8 @@
1
+ import { TemplateRef } from '@angular/core';
2
+ export declare class SdFilterDefDirective {
3
+ templateRef: TemplateRef<any>;
4
+ sdFilterDef: string;
5
+ defaultShowing: boolean;
6
+ set _defaultShowing(val: boolean | '');
7
+ constructor(templateRef: TemplateRef<any>);
8
+ }
@@ -0,0 +1,31 @@
1
+ import { AfterViewInit, OnDestroy, QueryList } from '@angular/core';
2
+ import { BehaviorSubject, Observable } from 'rxjs';
3
+ import { DeviceDetectorService } from 'ngx-device-detector';
4
+ import { SdFilterDefDirective } from './directives/sd-filter-def.directive';
5
+ import { Filter, SdFilterInformation, FilterObject, SdFilterOption } from './filter.model';
6
+ import { SdFilterService } from './filter.service';
7
+ import { SdSetting, SdSettingService } from '@sd-angular/core/setting';
8
+ export declare class SdFilter implements AfterViewInit, OnDestroy {
9
+ #private;
10
+ private deviceService;
11
+ private settingService;
12
+ private filterService;
13
+ setting: SdSetting<SdFilterInformation>;
14
+ filterOption: SdFilterOption;
15
+ set _filterOption(option: SdFilterOption);
16
+ sdFilterDefs: QueryList<SdFilterDefDirective>;
17
+ isMobileOrTablet: boolean;
18
+ filterChanges: BehaviorSubject<FilterObject>;
19
+ filterInformation: Observable<SdFilterInformation>;
20
+ information: SdFilterInformation;
21
+ constructor(deviceService: DeviceDetectorService, settingService: SdSettingService, filterService: SdFilterService);
22
+ ngOnInit(): void;
23
+ ngAfterViewInit(): void;
24
+ onFilter: (filter?: Filter) => void;
25
+ onClear: () => void;
26
+ ngOnDestroy(): void;
27
+ setFilter: (args: {
28
+ filter: any;
29
+ filterDef: any;
30
+ }) => void;
31
+ }