@natec/mef-dev-ui-kit 16.4.57 → 19.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (161) hide show
  1. package/fesm2022/natec-mef-dev-ui-kit.mjs +10894 -5478
  2. package/fesm2022/natec-mef-dev-ui-kit.mjs.map +1 -1
  3. package/index.d.ts +5527 -5
  4. package/index.d.ts.map +1 -0
  5. package/package.json +6 -7
  6. package/src/lib/styles/pg/_mixins.scss +2 -523
  7. package/src/lib/styles/pg/_var.scss +29 -28
  8. package/src/lib/styles/pg/modules/_buttons.scss +55 -40
  9. package/src/lib/styles/pg/modules/_form_elements.scss +5 -4
  10. package/src/lib/styles/pg/modules/_header.scss +2 -2
  11. package/src/lib/styles/pg/modules/_secondary-sidebar.scss +3 -1
  12. package/src/lib/styles/pg/modules/_select.scss +59 -60
  13. package/src/lib/styles/pg/modules/_sidebar.scss +2 -1
  14. package/src/lib/styles/pg/utils.scss +0 -3
  15. package/esm2022/lib/markup-kit/card/card/card.component.mjs +0 -116
  16. package/esm2022/lib/markup-kit/card/card-long/card-long.component.mjs +0 -169
  17. package/esm2022/lib/markup-kit/card/card-long/cart-type-colors.enum.mjs +0 -7
  18. package/esm2022/lib/markup-kit/card/card-simple/card-simple.component.mjs +0 -50
  19. package/esm2022/lib/markup-kit/card/card.module.mjs +0 -35
  20. package/esm2022/lib/markup-kit/card/index.mjs +0 -6
  21. package/esm2022/lib/markup-kit/collapse/collapse/collapse.component.mjs +0 -149
  22. package/esm2022/lib/markup-kit/collapse/collapse-set/collapse-set.component.mjs +0 -102
  23. package/esm2022/lib/markup-kit/collapse/collapse.module.mjs +0 -25
  24. package/esm2022/lib/markup-kit/collapse/index.mjs +0 -4
  25. package/esm2022/lib/markup-kit/executors/index.mjs +0 -5
  26. package/esm2022/lib/markup-kit/executors/mefdev-executor-page/mefdev-executor-page.component.mjs +0 -112
  27. package/esm2022/lib/markup-kit/executors/stage/stage.component.mjs +0 -27
  28. package/esm2022/lib/markup-kit/executors/step-executor/step-executor.component.mjs +0 -289
  29. package/esm2022/lib/markup-kit/executors/step-executor.module.mjs +0 -42
  30. package/esm2022/lib/markup-kit/modals/fill/fill.component.mjs +0 -137
  31. package/esm2022/lib/markup-kit/modals/index.mjs +0 -7
  32. package/esm2022/lib/markup-kit/modals/markup-kit.module.mjs +0 -39
  33. package/esm2022/lib/markup-kit/modals/modal-size.enum.mjs +0 -2
  34. package/esm2022/lib/markup-kit/modals/right-filter/right-filter.component.mjs +0 -48
  35. package/esm2022/lib/markup-kit/modals/slide-right/slide-right.component.mjs +0 -134
  36. package/esm2022/lib/markup-kit/modals/slide-up/slide-up.component.mjs +0 -118
  37. package/esm2022/lib/markup-kit/page-layouts/central-page/central-page.component.mjs +0 -59
  38. package/esm2022/lib/markup-kit/page-layouts/central-page-row/central-page-row.component.mjs +0 -27
  39. package/esm2022/lib/markup-kit/page-layouts/index.mjs +0 -7
  40. package/esm2022/lib/markup-kit/page-layouts/manage-page/manage-page.component.mjs +0 -73
  41. package/esm2022/lib/markup-kit/page-layouts/page-layouts.module.mjs +0 -41
  42. package/esm2022/lib/markup-kit/page-layouts/profile/profile.component.mjs +0 -137
  43. package/esm2022/lib/markup-kit/page-layouts/table-page/table-page.component.mjs +0 -42
  44. package/esm2022/lib/markup-kit/slider/index.mjs +0 -3
  45. package/esm2022/lib/markup-kit/slider/slider/slider.component.mjs +0 -120
  46. package/esm2022/lib/markup-kit/slider/slider.module.mjs +0 -28
  47. package/esm2022/lib/markup-kit/utils/datepicker/datepicker/datepicker.component.mjs +0 -607
  48. package/esm2022/lib/markup-kit/utils/datepicker/datepicker.module.mjs +0 -21
  49. package/esm2022/lib/markup-kit/utils/datepicker/index.mjs +0 -3
  50. package/esm2022/lib/markup-kit/utils/filtered-field/filtered-field-container/filtered-field-container.component.mjs +0 -72
  51. package/esm2022/lib/markup-kit/utils/filtered-field/filtered-field-item/filtered-field-item.component.mjs +0 -71
  52. package/esm2022/lib/markup-kit/utils/filtered-field/filtered-field.module.mjs +0 -29
  53. package/esm2022/lib/markup-kit/utils/filtered-field/filtered-field.service.mjs +0 -43
  54. package/esm2022/lib/markup-kit/utils/filtered-field/filtred-item.model.mjs +0 -13
  55. package/esm2022/lib/markup-kit/utils/filtered-field/index.mjs +0 -6
  56. package/esm2022/lib/markup-kit/utils/help-block/help-block.component.mjs +0 -72
  57. package/esm2022/lib/markup-kit/utils/help-block/hepl-block.module.mjs +0 -24
  58. package/esm2022/lib/markup-kit/utils/help-block/index.mjs +0 -3
  59. package/esm2022/lib/pg-components/card/card.components.mjs +0 -442
  60. package/esm2022/lib/pg-components/card/card.module.mjs +0 -24
  61. package/esm2022/lib/pg-components/card/index.mjs +0 -3
  62. package/esm2022/lib/pg-components/progress/index.mjs +0 -4
  63. package/esm2022/lib/pg-components/progress/progress.component.mjs +0 -80
  64. package/esm2022/lib/pg-components/progress/progress.config.mjs +0 -12
  65. package/esm2022/lib/pg-components/progress/progress.module.mjs +0 -22
  66. package/esm2022/lib/pg-components/select/index.mjs +0 -5
  67. package/esm2022/lib/pg-components/select/option.component.mjs +0 -93
  68. package/esm2022/lib/pg-components/select/option.pipe.mjs +0 -42
  69. package/esm2022/lib/pg-components/select/select.component.mjs +0 -782
  70. package/esm2022/lib/pg-components/select/select.module.mjs +0 -22
  71. package/esm2022/lib/pg-components/spec-flow-test/index.mjs +0 -3
  72. package/esm2022/lib/pg-components/spec-flow-test/spec-flow-test/spec-flow-test.component.mjs +0 -36
  73. package/esm2022/lib/pg-components/spec-flow-test/spec-flow-test.module.mjs +0 -25
  74. package/esm2022/lib/pg-components/switch/index.mjs +0 -3
  75. package/esm2022/lib/pg-components/switch/switch.component.mjs +0 -293
  76. package/esm2022/lib/pg-components/switch/switch.module.mjs +0 -18
  77. package/esm2022/lib/pg-components/tabs/index.mjs +0 -8
  78. package/esm2022/lib/pg-components/tabs/tab-body.component.mjs +0 -21
  79. package/esm2022/lib/pg-components/tabs/tab-label.directive.mjs +0 -45
  80. package/esm2022/lib/pg-components/tabs/tab.component.mjs +0 -102
  81. package/esm2022/lib/pg-components/tabs/tabs-ink-bar.directive.mjs +0 -81
  82. package/esm2022/lib/pg-components/tabs/tabs-nav.component.mjs +0 -298
  83. package/esm2022/lib/pg-components/tabs/tabs.module.mjs +0 -23
  84. package/esm2022/lib/pg-components/tabs/tabset.component.mjs +0 -252
  85. package/esm2022/lib/pg-components/util/convert.mjs +0 -4
  86. package/esm2022/lib/pg-components/util/request-animation.mjs +0 -26
  87. package/esm2022/natec-mef-dev-ui-kit.mjs +0 -5
  88. package/esm2022/public-api.mjs +0 -17
  89. package/lib/markup-kit/card/card/card.component.d.ts +0 -90
  90. package/lib/markup-kit/card/card-long/card-long.component.d.ts +0 -135
  91. package/lib/markup-kit/card/card-long/cart-type-colors.enum.d.ts +0 -5
  92. package/lib/markup-kit/card/card-simple/card-simple.component.d.ts +0 -37
  93. package/lib/markup-kit/card/card.module.d.ts +0 -17
  94. package/lib/markup-kit/card/index.d.ts +0 -5
  95. package/lib/markup-kit/collapse/collapse/collapse.component.d.ts +0 -74
  96. package/lib/markup-kit/collapse/collapse-set/collapse-set.component.d.ts +0 -68
  97. package/lib/markup-kit/collapse/collapse.module.d.ts +0 -14
  98. package/lib/markup-kit/collapse/index.d.ts +0 -3
  99. package/lib/markup-kit/executors/index.d.ts +0 -4
  100. package/lib/markup-kit/executors/mefdev-executor-page/mefdev-executor-page.component.d.ts +0 -84
  101. package/lib/markup-kit/executors/stage/stage.component.d.ts +0 -12
  102. package/lib/markup-kit/executors/step-executor/step-executor.component.d.ts +0 -186
  103. package/lib/markup-kit/executors/step-executor.module.d.ts +0 -12
  104. package/lib/markup-kit/modals/fill/fill.component.d.ts +0 -80
  105. package/lib/markup-kit/modals/index.d.ts +0 -6
  106. package/lib/markup-kit/modals/markup-kit.module.d.ts +0 -12
  107. package/lib/markup-kit/modals/modal-size.enum.d.ts +0 -5
  108. package/lib/markup-kit/modals/right-filter/right-filter.component.d.ts +0 -27
  109. package/lib/markup-kit/modals/slide-right/slide-right.component.d.ts +0 -76
  110. package/lib/markup-kit/modals/slide-up/slide-up.component.d.ts +0 -64
  111. package/lib/markup-kit/page-layouts/central-page/central-page.component.d.ts +0 -37
  112. package/lib/markup-kit/page-layouts/central-page-row/central-page-row.component.d.ts +0 -21
  113. package/lib/markup-kit/page-layouts/index.d.ts +0 -6
  114. package/lib/markup-kit/page-layouts/manage-page/manage-page.component.d.ts +0 -58
  115. package/lib/markup-kit/page-layouts/page-layouts.module.d.ts +0 -12
  116. package/lib/markup-kit/page-layouts/profile/profile.component.d.ts +0 -107
  117. package/lib/markup-kit/page-layouts/table-page/table-page.component.d.ts +0 -32
  118. package/lib/markup-kit/slider/index.d.ts +0 -2
  119. package/lib/markup-kit/slider/slider/slider.component.d.ts +0 -93
  120. package/lib/markup-kit/slider/slider.module.d.ts +0 -9
  121. package/lib/markup-kit/utils/datepicker/datepicker/datepicker.component.d.ts +0 -421
  122. package/lib/markup-kit/utils/datepicker/datepicker.module.d.ts +0 -10
  123. package/lib/markup-kit/utils/datepicker/index.d.ts +0 -2
  124. package/lib/markup-kit/utils/filtered-field/filtered-field-container/filtered-field-container.component.d.ts +0 -42
  125. package/lib/markup-kit/utils/filtered-field/filtered-field-item/filtered-field-item.component.d.ts +0 -56
  126. package/lib/markup-kit/utils/filtered-field/filtered-field.module.d.ts +0 -9
  127. package/lib/markup-kit/utils/filtered-field/filtered-field.service.d.ts +0 -28
  128. package/lib/markup-kit/utils/filtered-field/filtred-item.model.d.ts +0 -7
  129. package/lib/markup-kit/utils/filtered-field/index.d.ts +0 -5
  130. package/lib/markup-kit/utils/help-block/help-block.component.d.ts +0 -37
  131. package/lib/markup-kit/utils/help-block/hepl-block.module.d.ts +0 -9
  132. package/lib/markup-kit/utils/help-block/index.d.ts +0 -2
  133. package/lib/pg-components/card/card.components.d.ts +0 -241
  134. package/lib/pg-components/card/card.module.d.ts +0 -11
  135. package/lib/pg-components/card/index.d.ts +0 -2
  136. package/lib/pg-components/progress/index.d.ts +0 -3
  137. package/lib/pg-components/progress/progress.component.d.ts +0 -50
  138. package/lib/pg-components/progress/progress.config.d.ts +0 -7
  139. package/lib/pg-components/progress/progress.module.d.ts +0 -10
  140. package/lib/pg-components/select/index.d.ts +0 -4
  141. package/lib/pg-components/select/option.component.d.ts +0 -54
  142. package/lib/pg-components/select/option.pipe.d.ts +0 -8
  143. package/lib/pg-components/select/select.component.d.ts +0 -139
  144. package/lib/pg-components/select/select.module.d.ts +0 -12
  145. package/lib/pg-components/spec-flow-test/index.d.ts +0 -2
  146. package/lib/pg-components/spec-flow-test/spec-flow-test/spec-flow-test.component.d.ts +0 -22
  147. package/lib/pg-components/spec-flow-test/spec-flow-test.module.d.ts +0 -10
  148. package/lib/pg-components/switch/index.d.ts +0 -2
  149. package/lib/pg-components/switch/switch.component.d.ts +0 -185
  150. package/lib/pg-components/switch/switch.module.d.ts +0 -8
  151. package/lib/pg-components/tabs/index.d.ts +0 -7
  152. package/lib/pg-components/tabs/tab-body.component.d.ts +0 -13
  153. package/lib/pg-components/tabs/tab-label.directive.d.ts +0 -15
  154. package/lib/pg-components/tabs/tab.component.d.ts +0 -67
  155. package/lib/pg-components/tabs/tabs-ink-bar.directive.d.ts +0 -23
  156. package/lib/pg-components/tabs/tabs-nav.component.d.ts +0 -79
  157. package/lib/pg-components/tabs/tabs.module.d.ts +0 -13
  158. package/lib/pg-components/tabs/tabset.component.d.ts +0 -137
  159. package/lib/pg-components/util/convert.d.ts +0 -1
  160. package/lib/pg-components/util/request-animation.d.ts +0 -1
  161. package/public-api.d.ts +0 -15
@@ -1,442 +0,0 @@
1
- import { Component, Input, ViewEncapsulation, ViewChild, ContentChild, EventEmitter, Output } from "@angular/core";
2
- import { animate, state, style, transition, trigger } from "@angular/animations";
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common";
5
- import * as i2 from "../progress/progress.component";
6
- /**
7
- * Component representing a custom card.
8
- * It provides various styling and animation options for the card layout.
9
- *
10
- * Example usage:
11
- * ```
12
- * <mefdev-inner-card [Title]="'Card Title'" [Type]="'default'" [MinimalHeader]="false" [ProgressType]="'circle'">
13
- * Card content goes here...
14
- * </mefdev-inner-card>
15
- * ```
16
- */
17
- export class MefdevInnerCard {
18
- // constructor() {
19
- // console.log('1')
20
- // }
21
- /**
22
- * Indicates whether the card is collapsed or not.
23
- * Default: false
24
- */
25
- _isCollapsed = false;
26
- /**
27
- * Indicates whether the card is maximized or not.
28
- * Default: false
29
- */
30
- _isMaximixed = false;
31
- /**
32
- * Indicates whether the card is in loading state or not.
33
- * Default: false
34
- */
35
- _isLoading = false;
36
- /**
37
- * Indicates whether the card has a minimal header or not.
38
- * Default: false
39
- */
40
- _minimalHeader = false;
41
- /**
42
- * The message to be displayed in the card.
43
- */
44
- _message = "";
45
- /**
46
- * The type of message to be displayed in the card (e.g., success, danger, warning).
47
- * Default: "danger"
48
- */
49
- _messageType = "danger";
50
- /**
51
- * Indicates whether the message in the card is visible or not.
52
- * Default: false
53
- */
54
- _messageVisible = false;
55
- /**
56
- * The type of progress indicator to be displayed in the card (e.g., circle, bar, none).
57
- * Default: "circle"
58
- */
59
- _progressType = "circle";
60
- /**
61
- * The color of the progress indicator in the card.
62
- */
63
- _progressColor = "";
64
- /**
65
- * Indicates whether the tools (e.g., refresh, close, maximize) are shown in the card header or not.
66
- * Default: true
67
- */
68
- _showTools = true;
69
- _close_card = false;
70
- _refresh = false;
71
- _refreshColor = "light";
72
- /**
73
- * Indicates whether the close button in the card is visible or not.
74
- * Default: true
75
- */
76
- _close = true;
77
- /**
78
- * Indicates whether the toggle button in the card is visible or not.
79
- * Default: true
80
- */
81
- _toggle = true;
82
- /**
83
- * Indicates whether the maximize button in the card is visible or not.
84
- * Default: true
85
- */
86
- _maximize = true;
87
- /**
88
- * The timeout value in milliseconds for the loading state of the card.
89
- * If set to 0, the loading state will not automatically turn off.
90
- * Default: 0
91
- */
92
- _timeout = 0;
93
- /**
94
- * The title text to be displayed in the card header.
95
- */
96
- _titleText = "";
97
- /**
98
- * The border style of the card.
99
- */
100
- _card_border_style = "";
101
- /**
102
- * The type of the card (e.g., default, bordered, minimal).
103
- * Default: "default"
104
- */
105
- _type = "default";
106
- /**
107
- * Additional CSS class(es) to be added to the card header.
108
- */
109
- _extraHeaderClass = "";
110
- /**
111
- * Additional CSS class(es) to be added to the card body.
112
- */
113
- _extraBodyClass = "";
114
- /**
115
- * Additional CSS class(es) to be added to the card.
116
- */
117
- _additionalClasses = "";
118
- /**
119
- * ViewChild reference to the host content element.
120
- */
121
- _hostContent;
122
- /**
123
- * ViewChild reference to the minimal circle loading element.
124
- */
125
- minimalCircleLoading;
126
- /**
127
- * ViewChild reference to the minimal circle loading trigger element.
128
- */
129
- minimalCircleLoadingTrigger;
130
- /**
131
- * ContentChild reference to the CardTitle template.
132
- */
133
- CardTitle;
134
- /**
135
- * ContentChild reference to the CardExtraControls template.
136
- */
137
- CardExtraControls;
138
- // Input properties
139
- /**
140
- * The title text to be displayed in the card header.
141
- */
142
- set Title(value) {
143
- this._titleText = value;
144
- }
145
- get Title() {
146
- return this._titleText;
147
- }
148
- /**
149
- * The type of the card (e.g., default, bordered, minimal).
150
- * Default: "default"
151
- */
152
- set Type(value) {
153
- this._type = value;
154
- }
155
- /**
156
- * Indicates whether the card has a minimal header or not.
157
- * Default: false
158
- */
159
- set MinimalHeader(value) {
160
- this._minimalHeader = value;
161
- }
162
- /**
163
- * The type of progress indicator to be displayed in the card (e.g., circle, bar, none).
164
- * Default: "circle"
165
- */
166
- set ProgressType(value) {
167
- this._progressType = value;
168
- }
169
- /**
170
- * The color of the progress indicator in the card.
171
- */
172
- set ProgressColor(value) {
173
- this._progressColor = value;
174
- }
175
- /**
176
- * Indicates whether the card should have a refresh button or not.
177
- */
178
- set Refresh(value) {
179
- this._refresh = value;
180
- }
181
- /**
182
- * The color of the refresh button in the card (e.g., light, dark).
183
- * Default: "light"
184
- */
185
- set RefreshColor(value) {
186
- this._refreshColor = value;
187
- }
188
- /**
189
- * Indicates whether the card should have a maximize button or not.
190
- */
191
- set Maximize(value) {
192
- this._maximize = value;
193
- }
194
- /**
195
- * Indicates whether the card should have a close button or not.
196
- */
197
- set Close(value) {
198
- this._close = value;
199
- }
200
- /**
201
- * Indicates whether the card should have a toggle button or not.
202
- */
203
- set Toggle(value) {
204
- this._toggle = value;
205
- }
206
- /**
207
- * Additional CSS class(es) to be added to the card header.
208
- */
209
- set HeaderClass(value) {
210
- this._extraHeaderClass = value;
211
- }
212
- /**
213
- * Additional CSS class(es) to be added to the card body.
214
- */
215
- set BodyClass(value) {
216
- this._extraBodyClass = value;
217
- }
218
- /**
219
- * Additional CSS class(es) to be added to the card.
220
- */
221
- set AdditionalClasses(value) {
222
- this._additionalClasses = value;
223
- }
224
- /**
225
- * Indicates whether the tools (e.g., refresh, close, maximize) are shown in the card header or not.
226
- */
227
- set Controls(value) {
228
- this._showTools = value;
229
- }
230
- /**
231
- * Indicates whether the message in the card is visible or not.
232
- */
233
- set ShowMessage(value) {
234
- this._messageVisible = value;
235
- }
236
- /**
237
- * The message text to be displayed in the card.
238
- */
239
- set Message(value) {
240
- this._message = value;
241
- }
242
- /**
243
- * Indicates whether the loading indicator is shown in the card or not.
244
- */
245
- set Loading(value) {
246
- this._isLoading = value;
247
- }
248
- /**
249
- * The timeout duration for the loading indicator (in milliseconds).
250
- * If set to 0, the loading indicator will be displayed indefinitely until manually dismissed.
251
- * Default: 0
252
- */
253
- set TimeOut(value) {
254
- this._timeout = value;
255
- }
256
- /**
257
- * The border style of the card.
258
- */
259
- set CardBorderStyle(value) {
260
- this._card_border_style = value;
261
- }
262
- // Output properties
263
- /**
264
- * Event emitted when the refresh button is clicked.
265
- */
266
- onRefresh = new EventEmitter();
267
- // Other methods and lifecycle hooks
268
- /**
269
- * Toggles the collapsed state of the card.
270
- */
271
- toggle() {
272
- this._isCollapsed = this._isCollapsed === true ? false : true;
273
- }
274
- /**
275
- * Maximizes or restores the card to its original position.
276
- */
277
- maximize() {
278
- let nativeElement = this._hostContent.nativeElement;
279
- if (this._isMaximixed) {
280
- this._isMaximixed = false;
281
- nativeElement.style.left = null;
282
- nativeElement.style.top = null;
283
- }
284
- else {
285
- this._isMaximixed = true;
286
- let pagecontainer = document.querySelector(".content") ?? new Element();
287
- console.log(pagecontainer);
288
- let rect = pagecontainer.getBoundingClientRect();
289
- let elementRect = nativeElement.getBoundingClientRect();
290
- let style = window.getComputedStyle(pagecontainer);
291
- nativeElement.style.left =
292
- parseFloat(style["marginLeft"]) +
293
- parseFloat(style["paddingLeft"]) +
294
- rect.left +
295
- "px";
296
- nativeElement.style.top =
297
- parseFloat(style["padding-top"]) + rect.top + "px";
298
- }
299
- }
300
- /**
301
- * Dismisses the message in the card.
302
- */
303
- alertDismiss() {
304
- this._messageVisible = false;
305
- }
306
- /**
307
- * Triggers the refresh action of the card.
308
- */
309
- refresh() {
310
- if (!this._isLoading) {
311
- this._isLoading = true;
312
- this.onRefresh.emit();
313
- }
314
- if (this._timeout > 0) {
315
- setTimeout(() => {
316
- this._isLoading = false;
317
- }, this._timeout);
318
- }
319
- }
320
- /**
321
- * Closes the card.
322
- */
323
- close() {
324
- this._close_card = true;
325
- }
326
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MefdevInnerCard, deps: [], target: i0.ɵɵFactoryTarget.Component });
327
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MefdevInnerCard, selector: "mefdev-inner-card", inputs: { Title: "Title", Type: "Type", MinimalHeader: "MinimalHeader", ProgressType: "ProgressType", ProgressColor: "ProgressColor", Refresh: "Refresh", RefreshColor: "RefreshColor", Maximize: "Maximize", Close: "Close", Toggle: "Toggle", HeaderClass: "HeaderClass", BodyClass: "BodyClass", AdditionalClasses: "AdditionalClasses", Controls: "Controls", ShowMessage: "ShowMessage", Message: "Message", Loading: "Loading", TimeOut: "TimeOut", CardBorderStyle: "CardBorderStyle" }, outputs: { onRefresh: "onRefresh" }, queries: [{ propertyName: "CardTitle", first: true, predicate: ["CardTitle"], descendants: true }, { propertyName: "CardExtraControls", first: true, predicate: ["CardExtraControls"], descendants: true }], viewQueries: [{ propertyName: "_hostContent", first: true, predicate: ["hostContent"], descendants: true }, { propertyName: "minimalCircleLoading", first: true, predicate: ["minimalCircleLoading"], descendants: true }, { propertyName: "minimalCircleLoadingTrigger", first: true, predicate: ["minimalCircleLoadingTrigger"], descendants: true }], ngImport: i0, template: "<div class=\"card card-{{ _type }} {{ _additionalClasses }}\" *ngIf=\"!_close_card\" [class.card-collapsed]=\"_isCollapsed\"\r\n [class.card-maximized]=\"_isMaximixed\" #hostContent class=\"col-sm-12 col-md-6 col-lg-4\"\r\n [ngStyle]=\"{'border': _card_border_style}\">\r\n <div class=\"card-header {{ _extraHeaderClass }}\">\r\n <div class=\"card-title\">\r\n <ng-template [ngTemplateOutlet]=\"CardTitle\"></ng-template>\r\n </div>\r\n <div class=\"card-controls\" *ngIf=\"_showTools == true\">\r\n <ng-template [ngTemplateOutlet]=\"CardExtraControls\"></ng-template>\r\n <ul *ngIf=\"_minimalHeader == false; else minimalBlock\">\r\n <li *ngIf=\"_toggle == true\">\r\n <a href=\"javascript:void(0);\" data-toggle class=\"card-collapse\" (click)=\"toggle()\"><i\r\n class=\"pg pg-arrow_maximize\" [class.pg-arrow_minimize]=\"_isCollapsed\"></i></a>\r\n </li>\r\n <li *ngIf=\"_refresh == true\">\r\n <a href=\"javascript:void(0);\" data-toggle class=\"card-refresh\" (click)=\"refresh()\"><i\r\n class=\"card-icon card-icon-refresh\"></i></a>\r\n </li>\r\n <li *ngIf=\"_maximize == true\">\r\n <a href=\"javascript:void(0);\" data-toggle class=\"card-maximize\" (click)=\"maximize()\"><i\r\n class=\"card-icon card-icon-maximize\"></i></a>\r\n </li>\r\n <li *ngIf=\"_close == true\">\r\n <a href=\"javascript:void(0);\" data-toggle class=\"card-close\" (click)=\"close()\"><i\r\n class=\"card-icon card-icon-close\"></i></a>\r\n </li>\r\n </ul>\r\n <!-- <ng-template #minimalBlock>\r\n <ul>\r\n <li>\r\n <a href=\"javascript:void(0);\" (click)=\"refresh()\" class=\"card-refresh minimal\"\r\n [class.refreshing]=\"_isLoading\">\r\n <i #minimalCircleLoadingTrigger class=\"card-icon card-icon-refresh-lg-{{\r\n _refreshColor == 'light' ? 'white' : 'master'\r\n }}\" [class.fade]=\"_isLoading\"></i>\r\n <i #minimalCircleLoading class=\"card-icon-refresh-lg-white-animated\"\r\n style=\"position: absolute;top:0;left:0\" [class.active]=\"_isLoading\"\r\n [class.hide]=\"_isLoading != true\"></i>\r\n </a>\r\n </li>\r\n </ul>\r\n </ng-template> -->\r\n </div>\r\n </div>\r\n <div class=\"card-body {{ _extraBodyClass }}\" [@collapseState]=\"_isCollapsed == true ? 'inactive' : 'active'\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div *ngIf=\"_messageVisible == true\" class=\"pgn-wrapper\" data-position=\"top\">\r\n <div class=\"pgn pgn-bar push-on-sidebar-open\">\r\n <div class=\"alert alert-danger\">\r\n <span>{{ _message }}</span><button class=\"close\" (click)=\"alertDismiss()\" type=\"button\">\r\n <span aria-hidden=\"true\">\u00D7</span><span class=\"sr-only\">{{ 'Close' }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"_messageVisible == true\" class=\"card-progress\" [style.backgroundColor]=\"\r\n _minimalHeader ? 'rgba(0,0,0, 0.6)' : 'rgba(255, 255, 255, 0.8)'\r\n \" style=\" display: block;\"></div>\r\n <div [@fadeAnimation]=\"_isLoading\" class=\"card-progress\" [style.backgroundColor]=\"\r\n _minimalHeader ? 'rgba(0,0,0, 0.6)' : 'rgba(255, 255, 255, 0.8)'\r\n \" style=\"display: block;pointer-events: none\">\r\n <mefdev-progress *ngIf=\"_minimalHeader == false\" type=\"{{ _progressType }}\" color=\"{{ _progressColor }}\"\r\n indeterminate=\"true\" class=\"\"></mefdev-progress>\r\n </div>\r\n</div>", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.MefDevProgressComponent, selector: "mefdev-progress", inputs: ["type", "color", "thick", "indeterminate", "value"] }], animations: [
328
- trigger("collapseState", [
329
- state("inactive", style({
330
- opacity: "0",
331
- height: 0,
332
- paddingBottom: "0"
333
- })),
334
- state("active", style({
335
- opacity: "1",
336
- height: "*",
337
- paddingBottom: "*"
338
- })),
339
- transition("inactive => active", animate("125ms ease-in")),
340
- transition("active => inactive", animate("125ms ease-out"))
341
- ]),
342
- trigger("fadeAnimation", [
343
- state("false", style({
344
- opacity: "0",
345
- visibility: "hidden"
346
- })),
347
- state("true", style({
348
- opacity: "1",
349
- visibility: "visible"
350
- })),
351
- transition("false => true", animate("500ms ease-in")),
352
- transition("true => false", animate("500ms ease-out"))
353
- ])
354
- ], encapsulation: i0.ViewEncapsulation.None });
355
- }
356
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MefdevInnerCard, decorators: [{
357
- type: Component,
358
- args: [{ selector: "mefdev-inner-card", encapsulation: ViewEncapsulation.None, animations: [
359
- trigger("collapseState", [
360
- state("inactive", style({
361
- opacity: "0",
362
- height: 0,
363
- paddingBottom: "0"
364
- })),
365
- state("active", style({
366
- opacity: "1",
367
- height: "*",
368
- paddingBottom: "*"
369
- })),
370
- transition("inactive => active", animate("125ms ease-in")),
371
- transition("active => inactive", animate("125ms ease-out"))
372
- ]),
373
- trigger("fadeAnimation", [
374
- state("false", style({
375
- opacity: "0",
376
- visibility: "hidden"
377
- })),
378
- state("true", style({
379
- opacity: "1",
380
- visibility: "visible"
381
- })),
382
- transition("false => true", animate("500ms ease-in")),
383
- transition("true => false", animate("500ms ease-out"))
384
- ])
385
- ], template: "<div class=\"card card-{{ _type }} {{ _additionalClasses }}\" *ngIf=\"!_close_card\" [class.card-collapsed]=\"_isCollapsed\"\r\n [class.card-maximized]=\"_isMaximixed\" #hostContent class=\"col-sm-12 col-md-6 col-lg-4\"\r\n [ngStyle]=\"{'border': _card_border_style}\">\r\n <div class=\"card-header {{ _extraHeaderClass }}\">\r\n <div class=\"card-title\">\r\n <ng-template [ngTemplateOutlet]=\"CardTitle\"></ng-template>\r\n </div>\r\n <div class=\"card-controls\" *ngIf=\"_showTools == true\">\r\n <ng-template [ngTemplateOutlet]=\"CardExtraControls\"></ng-template>\r\n <ul *ngIf=\"_minimalHeader == false; else minimalBlock\">\r\n <li *ngIf=\"_toggle == true\">\r\n <a href=\"javascript:void(0);\" data-toggle class=\"card-collapse\" (click)=\"toggle()\"><i\r\n class=\"pg pg-arrow_maximize\" [class.pg-arrow_minimize]=\"_isCollapsed\"></i></a>\r\n </li>\r\n <li *ngIf=\"_refresh == true\">\r\n <a href=\"javascript:void(0);\" data-toggle class=\"card-refresh\" (click)=\"refresh()\"><i\r\n class=\"card-icon card-icon-refresh\"></i></a>\r\n </li>\r\n <li *ngIf=\"_maximize == true\">\r\n <a href=\"javascript:void(0);\" data-toggle class=\"card-maximize\" (click)=\"maximize()\"><i\r\n class=\"card-icon card-icon-maximize\"></i></a>\r\n </li>\r\n <li *ngIf=\"_close == true\">\r\n <a href=\"javascript:void(0);\" data-toggle class=\"card-close\" (click)=\"close()\"><i\r\n class=\"card-icon card-icon-close\"></i></a>\r\n </li>\r\n </ul>\r\n <!-- <ng-template #minimalBlock>\r\n <ul>\r\n <li>\r\n <a href=\"javascript:void(0);\" (click)=\"refresh()\" class=\"card-refresh minimal\"\r\n [class.refreshing]=\"_isLoading\">\r\n <i #minimalCircleLoadingTrigger class=\"card-icon card-icon-refresh-lg-{{\r\n _refreshColor == 'light' ? 'white' : 'master'\r\n }}\" [class.fade]=\"_isLoading\"></i>\r\n <i #minimalCircleLoading class=\"card-icon-refresh-lg-white-animated\"\r\n style=\"position: absolute;top:0;left:0\" [class.active]=\"_isLoading\"\r\n [class.hide]=\"_isLoading != true\"></i>\r\n </a>\r\n </li>\r\n </ul>\r\n </ng-template> -->\r\n </div>\r\n </div>\r\n <div class=\"card-body {{ _extraBodyClass }}\" [@collapseState]=\"_isCollapsed == true ? 'inactive' : 'active'\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div *ngIf=\"_messageVisible == true\" class=\"pgn-wrapper\" data-position=\"top\">\r\n <div class=\"pgn pgn-bar push-on-sidebar-open\">\r\n <div class=\"alert alert-danger\">\r\n <span>{{ _message }}</span><button class=\"close\" (click)=\"alertDismiss()\" type=\"button\">\r\n <span aria-hidden=\"true\">\u00D7</span><span class=\"sr-only\">{{ 'Close' }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"_messageVisible == true\" class=\"card-progress\" [style.backgroundColor]=\"\r\n _minimalHeader ? 'rgba(0,0,0, 0.6)' : 'rgba(255, 255, 255, 0.8)'\r\n \" style=\" display: block;\"></div>\r\n <div [@fadeAnimation]=\"_isLoading\" class=\"card-progress\" [style.backgroundColor]=\"\r\n _minimalHeader ? 'rgba(0,0,0, 0.6)' : 'rgba(255, 255, 255, 0.8)'\r\n \" style=\"display: block;pointer-events: none\">\r\n <mefdev-progress *ngIf=\"_minimalHeader == false\" type=\"{{ _progressType }}\" color=\"{{ _progressColor }}\"\r\n indeterminate=\"true\" class=\"\"></mefdev-progress>\r\n </div>\r\n</div>" }]
386
- }], propDecorators: { _hostContent: [{
387
- type: ViewChild,
388
- args: ["hostContent"]
389
- }], minimalCircleLoading: [{
390
- type: ViewChild,
391
- args: ["minimalCircleLoading"]
392
- }], minimalCircleLoadingTrigger: [{
393
- type: ViewChild,
394
- args: ["minimalCircleLoadingTrigger"]
395
- }], CardTitle: [{
396
- type: ContentChild,
397
- args: ["CardTitle"]
398
- }], CardExtraControls: [{
399
- type: ContentChild,
400
- args: ["CardExtraControls"]
401
- }], Title: [{
402
- type: Input
403
- }], Type: [{
404
- type: Input
405
- }], MinimalHeader: [{
406
- type: Input
407
- }], ProgressType: [{
408
- type: Input
409
- }], ProgressColor: [{
410
- type: Input
411
- }], Refresh: [{
412
- type: Input
413
- }], RefreshColor: [{
414
- type: Input
415
- }], Maximize: [{
416
- type: Input
417
- }], Close: [{
418
- type: Input
419
- }], Toggle: [{
420
- type: Input
421
- }], HeaderClass: [{
422
- type: Input
423
- }], BodyClass: [{
424
- type: Input
425
- }], AdditionalClasses: [{
426
- type: Input
427
- }], Controls: [{
428
- type: Input
429
- }], ShowMessage: [{
430
- type: Input
431
- }], Message: [{
432
- type: Input
433
- }], Loading: [{
434
- type: Input
435
- }], TimeOut: [{
436
- type: Input
437
- }], CardBorderStyle: [{
438
- type: Input
439
- }], onRefresh: [{
440
- type: Output
441
- }] } });
442
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC5jb21wb25lbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkta2l0LWxpYi9zcmMvbGliL3BnLWNvbXBvbmVudHMvY2FyZC9jYXJkLmNvbXBvbmVudHMudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1raXQtbGliL3NyYy9saWIvcGctY29tcG9uZW50cy9jYXJkL2NhcmQuY29tcG9uZW50cy5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLGlCQUFpQixFQUVqQixTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUNMLE9BQU8sRUFDUCxLQUFLLEVBQ0wsS0FBSyxFQUNMLFVBQVUsRUFDVixPQUFPLEVBQ1IsTUFBTSxxQkFBcUIsQ0FBQzs7OztBQUU3Qjs7Ozs7Ozs7OztHQVVHO0FBOENILE1BQU0sT0FBTyxlQUFlO0lBRTFCLGtCQUFrQjtJQUNsQixxQkFBcUI7SUFDckIsSUFBSTtJQUVKOzs7TUFHRTtJQUNGLFlBQVksR0FBWSxLQUFLLENBQUM7SUFFOUI7OztNQUdFO0lBQ0YsWUFBWSxHQUFZLEtBQUssQ0FBQztJQUU5Qjs7O01BR0U7SUFDRixVQUFVLEdBQVksS0FBSyxDQUFDO0lBRTVCOzs7TUFHRTtJQUNGLGNBQWMsR0FBWSxLQUFLLENBQUM7SUFFaEM7O01BRUU7SUFDRixRQUFRLEdBQVcsRUFBRSxDQUFDO0lBRXRCOzs7TUFHRTtJQUNGLFlBQVksR0FBVyxRQUFRLENBQUM7SUFFaEM7OztNQUdFO0lBQ0YsZUFBZSxHQUFZLEtBQUssQ0FBQztJQUVqQzs7O01BR0U7SUFDRixhQUFhLEdBQVcsUUFBUSxDQUFDO0lBRWpDOztNQUVFO0lBQ0YsY0FBYyxHQUFXLEVBQUUsQ0FBQztJQUU1Qjs7O01BR0U7SUFDRixVQUFVLEdBQVks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S2IsU0FBUztzQkFBbkMsWUFBWTt1QkFBQyxXQUFXO2dCQUlVLGlCQUFpQjtzQkFBbkQsWUFBWTt1QkFBQyxtQkFBbUI7Z0JBUzdCLEtBQUs7c0JBRFIsS0FBSztnQkFhRixJQUFJO3NCQURQLEtBQUs7Z0JBVUYsYUFBYTtzQkFEaEIsS0FBSztnQkFVRixZQUFZO3NCQURmLEtBQUs7Z0JBU0YsYUFBYTtzQkFEaEIsS0FBSztnQkFTRixPQUFPO3NCQURWLEtBQUs7Z0JBVUYsWUFBWTtzQkFEZixLQUFLO2dCQVNGLFFBQVE7c0JBRFgsS0FBSztnQkFTRixLQUFLO3NCQURSLEtBQUs7Z0JBU0YsTUFBTTtzQkFEVCxLQUFLO2dCQVNGLFdBQVc7c0JBRGQsS0FBSztnQkFTRixTQUFTO3NCQURaLEtBQUs7Z0JBU0YsaUJBQWlCO3NCQURwQixLQUFLO2dCQVNGLFFBQVE7c0JBRFgsS0FBSztnQkFTRixXQUFXO3NCQURkLEtBQUs7Z0JBU0YsT0FBTztzQkFEVixLQUFLO2dCQVNGLE9BQU87c0JBRFYsS0FBSztnQkFXRixPQUFPO3NCQURWLEtBQUs7Z0JBU0YsZUFBZTtzQkFEbEIsS0FBSztnQkFXSSxTQUFTO3NCQUFsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgSW5wdXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgRWxlbWVudFJlZixcclxuICBWaWV3Q2hpbGQsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgQ29udGVudENoaWxkLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBPdXRwdXRcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuaW1wb3J0IHtcclxuICBhbmltYXRlLFxyXG4gIHN0YXRlLFxyXG4gIHN0eWxlLFxyXG4gIHRyYW5zaXRpb24sXHJcbiAgdHJpZ2dlclxyXG59IGZyb20gXCJAYW5ndWxhci9hbmltYXRpb25zXCI7XHJcblxyXG4vKipcclxuICogQ29tcG9uZW50IHJlcHJlc2VudGluZyBhIGN1c3RvbSBjYXJkLlxyXG4gKiBJdCBwcm92aWRlcyB2YXJpb3VzIHN0eWxpbmcgYW5kIGFuaW1hdGlvbiBvcHRpb25zIGZvciB0aGUgY2FyZCBsYXlvdXQuXHJcbiAqXHJcbiAqIEV4YW1wbGUgdXNhZ2U6XHJcbiAqIGBgYFxyXG4gKiA8bWVmZGV2LWlubmVyLWNhcmQgW1RpdGxlXT1cIidDYXJkIFRpdGxlJ1wiIFtUeXBlXT1cIidkZWZhdWx0J1wiIFtNaW5pbWFsSGVhZGVyXT1cImZhbHNlXCIgW1Byb2dyZXNzVHlwZV09XCInY2lyY2xlJ1wiPlxyXG4gKiAgIENhcmQgY29udGVudCBnb2VzIGhlcmUuLi5cclxuICogPC9tZWZkZXYtaW5uZXItY2FyZD5cclxuICogYGBgXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJtZWZkZXYtaW5uZXItY2FyZFwiLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9jYXJkLmNvbXBvbmVudHMuaHRtbFwiLFxyXG4gIGFuaW1hdGlvbnM6IFtcclxuICAgIHRyaWdnZXIoXCJjb2xsYXBzZVN0YXRlXCIsIFtcclxuICAgICAgc3RhdGUoXHJcbiAgICAgICAgXCJpbmFjdGl2ZVwiLFxyXG4gICAgICAgIHN0eWxlKHtcclxuICAgICAgICAgIG9wYWNpdHk6IFwiMFwiLFxyXG4gICAgICAgICAgaGVpZ2h0OiAwLFxyXG4gICAgICAgICAgcGFkZGluZ0JvdHRvbTogXCIwXCJcclxuICAgICAgICB9KVxyXG4gICAgICApLFxyXG4gICAgICBzdGF0ZShcclxuICAgICAgICBcImFjdGl2ZVwiLFxyXG4gICAgICAgIHN0eWxlKHtcclxuICAgICAgICAgIG9wYWNpdHk6IFwiMVwiLFxyXG4gICAgICAgICAgaGVpZ2h0OiBcIipcIixcclxuICAgICAgICAgIHBhZGRpbmdCb3R0b206IFwiKlwiXHJcbiAgICAgICAgfSlcclxuICAgICAgKSxcclxuICAgICAgdHJhbnNpdGlvbihcImluYWN0aXZlID0+IGFjdGl2ZVwiLCBhbmltYXRlKFwiMTI1bXMgZWFzZS1pblwiKSksXHJcbiAgICAgIHRyYW5zaXRpb24oXCJhY3RpdmUgPT4gaW5hY3RpdmVcIiwgYW5pbWF0ZShcIjEyNW1zIGVhc2Utb3V0XCIpKVxyXG4gICAgXSksXHJcbiAgICB0cmlnZ2VyKFwiZmFkZUFuaW1hdGlvblwiLCBbXHJcbiAgICAgIHN0YXRlKFxyXG4gICAgICAgIFwiZmFsc2VcIixcclxuICAgICAgICBzdHlsZSh7XHJcbiAgICAgICAgICBvcGFjaXR5OiBcIjBcIixcclxuICAgICAgICAgIHZpc2liaWxpdHk6IFwiaGlkZGVuXCJcclxuICAgICAgICB9KVxyXG4gICAgICApLFxyXG4gICAgICBzdGF0ZShcclxuICAgICAgICBcInRydWVcIixcclxuICAgICAgICBzdHlsZSh7XHJcbiAgICAgICAgICBvcGFjaXR5OiBcIjFcIixcclxuICAgICAgICAgIHZpc2liaWxpdHk6IFwidmlzaWJsZVwiXHJcbiAgICAgICAgfSlcclxuICAgICAgKSxcclxuICAgICAgdHJhbnNpdGlvbihcImZhbHNlID0+IHRydWVcIiwgYW5pbWF0ZShcIjUwMG1zIGVhc2UtaW5cIikpLFxyXG4gICAgICB0cmFuc2l0aW9uKFwidHJ1ZSA9PiBmYWxzZVwiLCBhbmltYXRlKFwiNTAwbXMgZWFzZS1vdXRcIikpXHJcbiAgICBdKVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIE1lZmRldklubmVyQ2FyZCB7XHJcblxyXG4gIC8vIGNvbnN0cnVjdG9yKCkge1xyXG4gIC8vICAgY29uc29sZS5sb2coJzEnKVxyXG4gIC8vIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGNhcmQgaXMgY29sbGFwc2VkIG9yIG5vdC5cclxuICAgKiBEZWZhdWx0OiBmYWxzZVxyXG4gICovXHJcbiAgX2lzQ29sbGFwc2VkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBjYXJkIGlzIG1heGltaXplZCBvciBub3QuXHJcbiAgICogRGVmYXVsdDogZmFsc2VcclxuICAqL1xyXG4gIF9pc01heGltaXhlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY2FyZCBpcyBpbiBsb2FkaW5nIHN0YXRlIG9yIG5vdC5cclxuICAgKiBEZWZhdWx0OiBmYWxzZVxyXG4gICovXHJcbiAgX2lzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY2FyZCBoYXMgYSBtaW5pbWFsIGhlYWRlciBvciBub3QuXHJcbiAgICogRGVmYXVsdDogZmFsc2VcclxuICAqL1xyXG4gIF9taW5pbWFsSGVhZGVyOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBtZXNzYWdlIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgY2FyZC5cclxuICAqL1xyXG4gIF9tZXNzYWdlOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgdHlwZSBvZiBtZXNzYWdlIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgY2FyZCAoZS5nLiwgc3VjY2VzcywgZGFuZ2VyLCB3YXJuaW5nKS5cclxuICAgKiBEZWZhdWx0OiBcImRhbmdlclwiXHJcbiAgKi9cclxuICBfbWVzc2FnZVR5cGU6IHN0cmluZyA9IFwiZGFuZ2VyXCI7XHJcblxyXG4gIC8qKlxyXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBtZXNzYWdlIGluIHRoZSBjYXJkIGlzIHZpc2libGUgb3Igbm90LlxyXG4gICAqIERlZmF1bHQ6IGZhbHNlXHJcbiAgKi9cclxuICBfbWVzc2FnZVZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIHR5cGUgb2YgcHJvZ3Jlc3MgaW5kaWNhdG9yIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgY2FyZCAoZS5nLiwgY2lyY2xlLCBiYXIsIG5vbmUpLlxyXG4gICAqIERlZmF1bHQ6IFwiY2lyY2xlXCJcclxuICAqL1xyXG4gIF9wcm9ncmVzc1R5cGU6IHN0cmluZyA9IFwiY2lyY2xlXCI7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBjb2xvciBvZiB0aGUgcHJvZ3Jlc3MgaW5kaWNhdG9yIGluIHRoZSBjYXJkLlxyXG4gICovXHJcbiAgX3Byb2dyZXNzQ29sb3I6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gIC8qKlxyXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSB0b29scyAoZS5nLiwgcmVmcmVzaCwgY2xvc2UsIG1heGltaXplKSBhcmUgc2hvd24gaW4gdGhlIGNhcmQgaGVhZGVyIG9yIG5vdC5cclxuICAgKiBEZWZhdWx0OiB0cnVlXHJcbiAgKi9cclxuICBfc2hvd1Rvb2xzOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcblxyXG4gIF9jbG9zZV9jYXJkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgX3JlZnJlc2g6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBfcmVmcmVzaENvbG9yOiBzdHJpbmcgPSBcImxpZ2h0XCI7XHJcblxyXG4gIC8qKlxyXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBjbG9zZSBidXR0b24gaW4gdGhlIGNhcmQgaXMgdmlzaWJsZSBvciBub3QuXHJcbiAgICogRGVmYXVsdDogdHJ1ZVxyXG4gICovXHJcbiAgX2Nsb3NlOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgLyoqXHJcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIHRvZ2dsZSBidXR0b24gaW4gdGhlIGNhcmQgaXMgdmlzaWJsZSBvciBub3QuXHJcbiAgICogRGVmYXVsdDogdHJ1ZVxyXG4gICovXHJcbiAgX3RvZ2dsZTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIC8qKlxyXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBtYXhpbWl6ZSBidXR0b24gaW4gdGhlIGNhcmQgaXMgdmlzaWJsZSBvciBub3QuXHJcbiAgICogRGVmYXVsdDogdHJ1ZVxyXG4gICovXHJcbiAgX21heGltaXplOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIHRpbWVvdXQgdmFsdWUgaW4gbWlsbGlzZWNvbmRzIGZvciB0aGUgbG9hZGluZyBzdGF0ZSBvZiB0aGUgY2FyZC5cclxuICAgKiBJZiBzZXQgdG8gMCwgdGhlIGxvYWRpbmcgc3RhdGUgd2lsbCBub3QgYXV0b21hdGljYWxseSB0dXJuIG9mZi5cclxuICAgKiBEZWZhdWx0OiAwXHJcbiAgKi9cclxuICBfdGltZW91dDogbnVtYmVyID0gMDtcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIHRpdGxlIHRleHQgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBjYXJkIGhlYWRlci5cclxuICAqL1xyXG4gIF90aXRsZVRleHQ6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBib3JkZXIgc3R5bGUgb2YgdGhlIGNhcmQuXHJcbiAgKi9cclxuICBfY2FyZF9ib3JkZXJfc3R5bGU6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSB0eXBlIG9mIHRoZSBjYXJkIChlLmcuLCBkZWZhdWx0LCBib3JkZXJlZCwgbWluaW1hbCkuXHJcbiAgICogRGVmYXVsdDogXCJkZWZhdWx0XCJcclxuICAqL1xyXG4gIF90eXBlOiBzdHJpbmcgPSBcImRlZmF1bHRcIjtcclxuXHJcblxyXG5cclxuICAvKipcclxuICAgKiBBZGRpdGlvbmFsIENTUyBjbGFzcyhlcykgdG8gYmUgYWRkZWQgdG8gdGhlIGNhcmQgaGVhZGVyLlxyXG4gICovXHJcbiAgX2V4dHJhSGVhZGVyQ2xhc3MgPSBcIlwiO1xyXG5cclxuICAvKipcclxuICAgKiBBZGRpdGlvbmFsIENTUyBjbGFzcyhlcykgdG8gYmUgYWRkZWQgdG8gdGhlIGNhcmQgYm9keS5cclxuICAqL1xyXG4gIF9leHRyYUJvZHlDbGFzcyA9IFwiXCI7XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZGl0aW9uYWwgQ1NTIGNsYXNzKGVzKSB0byBiZSBhZGRlZCB0byB0aGUgY2FyZC5cclxuICAqL1xyXG4gIF9hZGRpdGlvbmFsQ2xhc3NlcyA9IFwiXCI7XHJcblxyXG4gIC8qKlxyXG4gICAqIFZpZXdDaGlsZCByZWZlcmVuY2UgdG8gdGhlIGhvc3QgY29udGVudCBlbGVtZW50LlxyXG4gICovXHJcbiAgQFZpZXdDaGlsZChcImhvc3RDb250ZW50XCIpIF9ob3N0Q29udGVudDogRWxlbWVudFJlZjtcclxuICAvKipcclxuICAgKiBWaWV3Q2hpbGQgcmVmZXJlbmNlIHRvIHRoZSBtaW5pbWFsIGNpcmNsZSBsb2FkaW5nIGVsZW1lbnQuXHJcbiAgKi9cclxuICBAVmlld0NoaWxkKFwibWluaW1hbENpcmNsZUxvYWRpbmdcIikgbWluaW1hbENpcmNsZUxvYWRpbmc6IEVsZW1lbnRSZWY7XHJcbiAgLyoqXHJcbiAgICogVmlld0NoaWxkIHJlZmVyZW5jZSB0byB0aGUgbWluaW1hbCBjaXJjbGUgbG9hZGluZyB0cmlnZ2VyIGVsZW1lbnQuXHJcbiAgKi9cclxuICBAVmlld0NoaWxkKFwibWluaW1hbENpcmNsZUxvYWRpbmdUcmlnZ2VyXCIpXHJcbiAgbWluaW1hbENpcmNsZUxvYWRpbmdUcmlnZ2VyOiBFbGVtZW50UmVmO1xyXG4gIC8qKlxyXG4gICAqIENvbnRlbnRDaGlsZCByZWZlcmVuY2UgdG8gdGhlIENhcmRUaXRsZSB0ZW1wbGF0ZS5cclxuICAqL1xyXG4gIEBDb250ZW50Q2hpbGQoXCJDYXJkVGl0bGVcIikgQ2FyZFRpdGxlOiBUZW1wbGF0ZVJlZjx2b2lkPjtcclxuICAvKipcclxuICAgKiBDb250ZW50Q2hpbGQgcmVmZXJlbmNlIHRvIHRoZSBDYXJkRXh0cmFDb250cm9scyB0ZW1wbGF0ZS5cclxuICAqL1xyXG4gIEBDb250ZW50Q2hpbGQoXCJDYXJkRXh0cmFDb250cm9sc1wiKSBDYXJkRXh0cmFDb250cm9sczogVGVtcGxhdGVSZWY8dm9pZD47XHJcblxyXG5cclxuICAgIC8vIElucHV0IHByb3BlcnRpZXNcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIHRpdGxlIHRleHQgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBjYXJkIGhlYWRlci5cclxuICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IFRpdGxlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3RpdGxlVGV4dCA9IHZhbHVlO1xyXG4gIH1cclxuICBnZXQgVGl0bGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fdGl0bGVUZXh0O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIHR5cGUgb2YgdGhlIGNhcmQgKGUuZy4sIGRlZmF1bHQsIGJvcmRlcmVkLCBtaW5pbWFsKS5cclxuICAgKiBEZWZhdWx0OiBcImRlZmF1bHRcIlxyXG4gICovXHJcbiAgQElucHV0KClcclxuICBzZXQgVHlwZSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl90eXBlID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY2FyZCBoYXMgYSBtaW5pbWFsIGhlYWRlciBvciBub3QuXHJcbiAgICogRGVmYXVsdDogZmFsc2VcclxuICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IE1pbmltYWxIZWFkZXIodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX21pbmltYWxIZWFkZXIgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSB0eXBlIG9mIHByb2dyZXNzIGluZGljYXRvciB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIGNhcmQgKGUuZy4sIGNpcmNsZSwgYmFyLCBub25lKS5cclxuICAgKiBEZWZhdWx0OiBcImNpcmNsZVwiXHJcbiAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBQcm9ncmVzc1R5cGUodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fcHJvZ3Jlc3NUeXBlID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUaGUgY29sb3Igb2YgdGhlIHByb2dyZXNzIGluZGljYXRvciBpbiB0aGUgY2FyZC5cclxuICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IFByb2dyZXNzQ29sb3IodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fcHJvZ3Jlc3NDb2xvciA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGNhcmQgc2hvdWxkIGhhdmUgYSByZWZyZXNoIGJ1dHRvbiBvciBub3QuXHJcbiAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBSZWZyZXNoKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9yZWZyZXNoID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUaGUgY29sb3Igb2YgdGhlIHJlZnJlc2ggYnV0dG9uIGluIHRoZSBjYXJkIChlLmcuLCBsaWdodCwgZGFyaykuXHJcbiAgICogRGVmYXVsdDogXCJsaWdodFwiXHJcbiAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBSZWZyZXNoQ29sb3IodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fcmVmcmVzaENvbG9yID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY2FyZCBzaG91bGQgaGF2ZSBhIG1heGltaXplIGJ1dHRvbiBvciBub3QuXHJcbiAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBNYXhpbWl6ZSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fbWF4aW1pemUgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBjYXJkIHNob3VsZCBoYXZlIGEgY2xvc2UgYnV0dG9uIG9yIG5vdC5cclxuICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IENsb3NlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9jbG9zZSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGNhcmQgc2hvdWxkIGhhdmUgYSB0b2dnbGUgYnV0dG9uIG9yIG5vdC5cclxuICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IFRvZ2dsZSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fdG9nZ2xlID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGRpdGlvbmFsIENTUyBjbGFzcyhlcykgdG8gYmUgYWRkZWQgdG8gdGhlIGNhcmQgaGVhZGVyLlxyXG4gICovXHJcbiAgQElucHV0KClcclxuICBzZXQgSGVhZGVyQ2xhc3ModmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fZXh0cmFIZWFkZXJDbGFzcyA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWRkaXRpb25hbCBDU1MgY2xhc3MoZXMpIHRvIGJlIGFkZGVkIHRvIHRoZSBjYXJkIGJvZHkuXHJcbiAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBCb2R5Q2xhc3ModmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fZXh0cmFCb2R5Q2xhc3MgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZGl0aW9uYWwgQ1NTIGNsYXNzKGVzKSB0byBiZSBhZGRlZCB0byB0aGUgY2FyZC5cclxuICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IEFkZGl0aW9uYWxDbGFzc2VzKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX2FkZGl0aW9uYWxDbGFzc2VzID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgdG9vbHMgKGUuZy4sIHJlZnJlc2gsIGNsb3NlLCBtYXhpbWl6ZSkgYXJlIHNob3duIGluIHRoZSBjYXJkIGhlYWRlciBvciBub3QuXHJcbiAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBDb250cm9scyh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fc2hvd1Rvb2xzID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgbWVzc2FnZSBpbiB0aGUgY2FyZCBpcyB2aXNpYmxlIG9yIG5vdC5cclxuICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IFNob3dNZXNzYWdlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9tZXNzYWdlVmlzaWJsZSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIG1lc3NhZ2UgdGV4dCB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIGNhcmQuXHJcbiAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBNZXNzYWdlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX21lc3NhZ2UgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBsb2FkaW5nIGluZGljYXRvciBpcyBzaG93biBpbiB0aGUgY2FyZCBvciBub3QuXHJcbiAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBMb2FkaW5nKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9pc0xvYWRpbmcgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSB0aW1lb3V0IGR1cmF0aW9uIGZvciB0aGUgbG9hZGluZyBpbmRpY2F0b3IgKGluIG1pbGxpc2Vjb25kcykuXHJcbiAgICogSWYgc2V0IHRvIDAsIHRoZSBsb2FkaW5nIGluZGljYXRvciB3aWxsIGJlIGRpc3BsYXllZCBpbmRlZmluaXRlbHkgdW50aWwgbWFudWFsbHkgZGlzbWlzc2VkLlxyXG4gICAqIERlZmF1bHQ6IDBcclxuICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IFRpbWVPdXQodmFsdWU6IG51bWJlcikge1xyXG4gICAgdGhpcy5fdGltZW91dCA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIGJvcmRlciBzdHlsZSBvZiB0aGUgY2FyZC5cclxuICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IENhcmRCb3JkZXJTdHlsZSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9jYXJkX2JvcmRlcl9zdHlsZSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcblxyXG4gIC8vIE91dHB1dCBwcm9wZXJ0aWVzXHJcblxyXG4gIC8qKlxyXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgcmVmcmVzaCBidXR0b24gaXMgY2xpY2tlZC5cclxuICAqL1xyXG4gIEBPdXRwdXQoKSBvblJlZnJlc2g6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgLy8gT3RoZXIgbWV0aG9kcyBhbmQgbGlmZWN5Y2xlIGhvb2tzXHJcblxyXG4gIC8qKlxyXG4gICAqIFRvZ2dsZXMgdGhlIGNvbGxhcHNlZCBzdGF0ZSBvZiB0aGUgY2FyZC5cclxuICAqL1xyXG4gIHRvZ2dsZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2lzQ29sbGFwc2VkID0gdGhpcy5faXNDb2xsYXBzZWQgPT09IHRydWUgPyBmYWxzZSA6IHRydWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNYXhpbWl6ZXMgb3IgcmVzdG9yZXMgdGhlIGNhcmQgdG8gaXRzIG9yaWdpbmFsIHBvc2l0aW9uLlxyXG4gICovXHJcbiAgbWF4aW1pemUoKTogdm9pZCB7XHJcbiAgICBsZXQgbmF0aXZlRWxlbWVudCA9IHRoaXMuX2hvc3RDb250ZW50Lm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICBpZiAodGhpcy5faXNNYXhpbWl4ZWQpIHtcclxuICAgICAgdGhpcy5faXNNYXhpbWl4ZWQgPSBmYWxzZTtcclxuICAgICAgbmF0aXZlRWxlbWVudC5zdHlsZS5sZWZ0ID0gbnVsbDtcclxuICAgICAgbmF0aXZlRWxlbWVudC5zdHlsZS50b3AgPSBudWxsO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faXNNYXhpbWl4ZWQgPSB0cnVlO1xyXG4gICAgICBsZXQgcGFnZWNvbnRhaW5lcjogRWxlbWVudCAgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLmNvbnRlbnRcIikgPz8gbmV3IEVsZW1lbnQoKTtcclxuICAgICAgY29uc29sZS5sb2cocGFnZWNvbnRhaW5lcik7XHJcbiAgICAgIGxldCByZWN0ID0gcGFnZWNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgbGV0IGVsZW1lbnRSZWN0ID0gbmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgbGV0IHN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUocGFnZWNvbnRhaW5lcik7XHJcblxyXG4gICAgICBuYXRpdmVFbGVtZW50LnN0eWxlLmxlZnQgPVxyXG4gICAgICAgIHBhcnNlRmxvYXQoc3R5bGVbXCJtYXJnaW5MZWZ0XCJdKSArXHJcbiAgICAgICAgcGFyc2VGbG9hdChzdHlsZVtcInBhZGRpbmdMZWZ0XCJdKSArXHJcbiAgICAgICAgcmVjdC5sZWZ0ICtcclxuICAgICAgICBcInB4XCI7XHJcbiAgICAgIG5hdGl2ZUVsZW1lbnQuc3R5bGUudG9wID1cclxuICAgICAgICBwYXJzZUZsb2F0KHN0eWxlW1wicGFkZGluZy10b3BcIl0pICsgcmVjdC50b3AgKyBcInB4XCI7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEaXNtaXNzZXMgdGhlIG1lc3NhZ2UgaW4gdGhlIGNhcmQuXHJcbiAgKi9cclxuICBhbGVydERpc21pc3MoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9tZXNzYWdlVmlzaWJsZSA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVHJpZ2dlcnMgdGhlIHJlZnJlc2ggYWN0aW9uIG9mIHRoZSBjYXJkLlxyXG4gICovXHJcbiAgcmVmcmVzaCgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5faXNMb2FkaW5nKSB7XHJcbiAgICAgIHRoaXMuX2lzTG9hZGluZyA9IHRydWU7XHJcbiAgICAgIHRoaXMub25SZWZyZXNoLmVtaXQoKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLl90aW1lb3V0ID4gMCkge1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLl9pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgfSwgdGhpcy5fdGltZW91dCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDbG9zZXMgdGhlIGNhcmQuXHJcbiAgKi9cclxuICBjbG9zZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2Nsb3NlX2NhcmQgPSB0cnVlO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY2FyZCBjYXJkLXt7IF90eXBlIH19IHt7IF9hZGRpdGlvbmFsQ2xhc3NlcyB9fVwiICpuZ0lmPVwiIV9jbG9zZV9jYXJkXCIgW2NsYXNzLmNhcmQtY29sbGFwc2VkXT1cIl9pc0NvbGxhcHNlZFwiXHJcbiAgW2NsYXNzLmNhcmQtbWF4aW1pemVkXT1cIl9pc01heGltaXhlZFwiICNob3N0Q29udGVudCBjbGFzcz1cImNvbC1zbS0xMiBjb2wtbWQtNiBjb2wtbGctNFwiXHJcbiAgW25nU3R5bGVdPVwieydib3JkZXInOiBfY2FyZF9ib3JkZXJfc3R5bGV9XCI+XHJcbiAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIHt7IF9leHRyYUhlYWRlckNsYXNzIH19XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZVwiPlxyXG4gICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiQ2FyZFRpdGxlXCI+PC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtY29udHJvbHNcIiAqbmdJZj1cIl9zaG93VG9vbHMgPT0gdHJ1ZVwiPlxyXG4gICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiQ2FyZEV4dHJhQ29udHJvbHNcIj48L25nLXRlbXBsYXRlPlxyXG4gICAgICA8dWwgKm5nSWY9XCJfbWluaW1hbEhlYWRlciA9PSBmYWxzZTsgZWxzZSBtaW5pbWFsQmxvY2tcIj5cclxuICAgICAgICA8bGkgKm5nSWY9XCJfdG9nZ2xlID09IHRydWVcIj5cclxuICAgICAgICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMCk7XCIgZGF0YS10b2dnbGUgY2xhc3M9XCJjYXJkLWNvbGxhcHNlXCIgKGNsaWNrKT1cInRvZ2dsZSgpXCI+PGlcclxuICAgICAgICAgICAgICBjbGFzcz1cInBnIHBnLWFycm93X21heGltaXplXCIgW2NsYXNzLnBnLWFycm93X21pbmltaXplXT1cIl9pc0NvbGxhcHNlZFwiPjwvaT48L2E+XHJcbiAgICAgICAgPC9saT5cclxuICAgICAgICA8bGkgKm5nSWY9XCJfcmVmcmVzaCA9PSB0cnVlXCI+XHJcbiAgICAgICAgICA8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApO1wiIGRhdGEtdG9nZ2xlIGNsYXNzPVwiY2FyZC1yZWZyZXNoXCIgKGNsaWNrKT1cInJlZnJlc2goKVwiPjxpXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjYXJkLWljb24gY2FyZC1pY29uLXJlZnJlc2hcIj48L2k+PC9hPlxyXG4gICAgICAgIDwvbGk+XHJcbiAgICAgICAgPGxpICpuZ0lmPVwiX21heGltaXplID09IHRydWVcIj5cclxuICAgICAgICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMCk7XCIgZGF0YS10b2dnbGUgY2xhc3M9XCJjYXJkLW1heGltaXplXCIgKGNsaWNrKT1cIm1heGltaXplKClcIj48aVxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2FyZC1pY29uIGNhcmQtaWNvbi1tYXhpbWl6ZVwiPjwvaT48L2E+XHJcbiAgICAgICAgPC9saT5cclxuICAgICAgICA8bGkgKm5nSWY9XCJfY2xvc2UgPT0gdHJ1ZVwiPlxyXG4gICAgICAgICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKTtcIiBkYXRhLXRvZ2dsZSBjbGFzcz1cImNhcmQtY2xvc2VcIiAoY2xpY2spPVwiY2xvc2UoKVwiPjxpXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjYXJkLWljb24gY2FyZC1pY29uLWNsb3NlXCI+PC9pPjwvYT5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICA8L3VsPlxyXG4gICAgICAgPCEtLSA8bmctdGVtcGxhdGUgI21pbmltYWxCbG9jaz5cclxuICAgICAgICA8dWw+XHJcbiAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMCk7XCIgKGNsaWNrKT1cInJlZnJlc2goKVwiIGNsYXNzPVwiY2FyZC1yZWZyZXNoIG1pbmltYWxcIlxyXG4gICAgICAgICAgICAgIFtjbGFzcy5yZWZyZXNoaW5nXT1cIl9pc0xvYWRpbmdcIj5cclxuICAgICAgICAgICAgICA8aSAjbWluaW1hbENpcmNsZUxvYWRpbmdUcmlnZ2VyIGNsYXNzPVwiY2FyZC1pY29uIGNhcmQtaWNvbi1yZWZyZXNoLWxnLXt7XHJcbiAgICAgICAgICAgICAgICAgIF9yZWZyZXNoQ29sb3IgPT0gJ2xpZ2h0JyA/ICd3aGl0ZScgOiAnbWFzdGVyJ1xyXG4gICAgICAgICAgICAgICAgfX1cIiBbY2xhc3MuZmFkZV09XCJfaXNMb2FkaW5nXCI+PC9pPlxyXG4gICAgICAgICAgICAgPGkgI21pbmltYWxDaXJjbGVMb2FkaW5nIGNsYXNzPVwiY2FyZC1pY29uLXJlZnJlc2gtbGctd2hpdGUtYW5pbWF0ZWRcIlxyXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJwb3NpdGlvbjogYWJzb2x1dGU7dG9wOjA7bGVmdDowXCIgW2NsYXNzLmFjdGl2ZV09XCJfaXNMb2FkaW5nXCJcclxuICAgICAgICAgICAgICAgIFtjbGFzcy5oaWRlXT1cIl9pc0xvYWRpbmcgIT0gdHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgPC9saT5cclxuICAgICAgICA8L3VsPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPiAtLT5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkge3sgX2V4dHJhQm9keUNsYXNzIH19XCIgW0Bjb2xsYXBzZVN0YXRlXT1cIl9pc0NvbGxhcHNlZCA9PSB0cnVlID8gJ2luYWN0aXZlJyA6ICdhY3RpdmUnXCI+XHJcbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiAqbmdJZj1cIl9tZXNzYWdlVmlzaWJsZSA9PSB0cnVlXCIgY2xhc3M9XCJwZ24td3JhcHBlclwiIGRhdGEtcG9zaXRpb249XCJ0b3BcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJwZ24gcGduLWJhciBwdXNoLW9uLXNpZGViYXItb3BlblwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYWxlcnQgYWxlcnQtZGFuZ2VyXCI+XHJcbiAgICAgICAgPHNwYW4+e3sgX21lc3NhZ2UgfX08L3NwYW4+PGJ1dHRvbiBjbGFzcz1cImNsb3NlXCIgKGNsaWNrKT1cImFsZXJ0RGlzbWlzcygpXCIgdHlwZT1cImJ1dHRvblwiPlxyXG4gICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+w5c8L3NwYW4+PHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+e3sgJ0Nsb3NlJyB9fTwvc3Bhbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2ICpuZ0lmPVwiX21lc3NhZ2VWaXNpYmxlID09IHRydWVcIiBjbGFzcz1cImNhcmQtcHJvZ3Jlc3NcIiBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cIlxyXG4gICAgICBfbWluaW1hbEhlYWRlciA/ICdyZ2JhKDAsMCwwLCAwLjYpJyA6ICdyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCknXHJcbiAgICBcIiBzdHlsZT1cIiBkaXNwbGF5OiBibG9jaztcIj48L2Rpdj5cclxuICA8ZGl2IFtAZmFkZUFuaW1hdGlvbl09XCJfaXNMb2FkaW5nXCIgY2xhc3M9XCJjYXJkLXByb2dyZXNzXCIgW3N0eWxlLmJhY2tncm91bmRDb2xvcl09XCJcclxuICAgICAgX21pbmltYWxIZWFkZXIgPyAncmdiYSgwLDAsMCwgMC42KScgOiAncmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpJ1xyXG4gICAgXCIgc3R5bGU9XCJkaXNwbGF5OiBibG9jaztwb2ludGVyLWV2ZW50czogbm9uZVwiPlxyXG4gICAgPG1lZmRldi1wcm9ncmVzcyAqbmdJZj1cIl9taW5pbWFsSGVhZGVyID09IGZhbHNlXCIgdHlwZT1cInt7IF9wcm9ncmVzc1R5cGUgfX1cIiBjb2xvcj1cInt7IF9wcm9ncmVzc0NvbG9yIH19XCJcclxuICAgICAgaW5kZXRlcm1pbmF0ZT1cInRydWVcIiBjbGFzcz1cIlwiPjwvbWVmZGV2LXByb2dyZXNzPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj4iXX0=
@@ -1,24 +0,0 @@
1
- import { CommonModule } from "@angular/common";
2
- import { NgModule } from "@angular/core";
3
- import { MefdevInnerCard } from "./card.components";
4
- import { MefDevProgressModule } from "../progress/progress.module";
5
- import * as i0 from "@angular/core";
6
- export class MefdevInnerCardModule {
7
- static forRoot() {
8
- return {
9
- ngModule: MefdevInnerCardModule
10
- };
11
- }
12
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MefdevInnerCardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
13
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: MefdevInnerCardModule, declarations: [MefdevInnerCard], imports: [CommonModule, MefDevProgressModule], exports: [MefdevInnerCard] });
14
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MefdevInnerCardModule, imports: [CommonModule, MefDevProgressModule] });
15
- }
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MefdevInnerCardModule, decorators: [{
17
- type: NgModule,
18
- args: [{
19
- declarations: [MefdevInnerCard],
20
- exports: [MefdevInnerCard],
21
- imports: [CommonModule, MefDevProgressModule]
22
- }]
23
- }] });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1raXQtbGliL3NyYy9saWIvcGctY29tcG9uZW50cy9jYXJkL2NhcmQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUF1QixNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBT25FLE1BQU0sT0FBTyxxQkFBcUI7SUFDaEMsTUFBTSxDQUFDLE9BQU87UUFDWixPQUFPO1lBQ0wsUUFBUSxFQUFFLHFCQUFxQjtTQUNoQyxDQUFDO0lBQ0osQ0FBQzt3R0FMVSxxQkFBcUI7eUdBQXJCLHFCQUFxQixpQkFKakIsZUFBZSxhQUVwQixZQUFZLEVBQUUsb0JBQW9CLGFBRGxDLGVBQWU7eUdBR2QscUJBQXFCLFlBRnRCLFlBQVksRUFBRSxvQkFBb0I7OzRGQUVqQyxxQkFBcUI7a0JBTGpDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsZUFBZSxDQUFDO29CQUMvQixPQUFPLEVBQUUsQ0FBQyxlQUFlLENBQUM7b0JBQzFCLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxvQkFBb0IsQ0FBQztpQkFDOUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7IE5nTW9kdWxlLCBNb2R1bGVXaXRoUHJvdmlkZXJzIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgTWVmZGV2SW5uZXJDYXJkIH0gZnJvbSBcIi4vY2FyZC5jb21wb25lbnRzXCI7XHJcbmltcG9ydCB7IE1lZkRldlByb2dyZXNzTW9kdWxlIH0gZnJvbSBcIi4uL3Byb2dyZXNzL3Byb2dyZXNzLm1vZHVsZVwiO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtNZWZkZXZJbm5lckNhcmRdLFxyXG4gIGV4cG9ydHM6IFtNZWZkZXZJbm5lckNhcmRdLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE1lZkRldlByb2dyZXNzTW9kdWxlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWVmZGV2SW5uZXJDYXJkTW9kdWxlIHtcclxuICBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPE1lZmRldklubmVyQ2FyZE1vZHVsZT4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbmdNb2R1bGU6IE1lZmRldklubmVyQ2FyZE1vZHVsZVxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,3 +0,0 @@
1
- export * from "./card.components";
2
- export * from "./card.module";
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1raXQtbGliL3NyYy9saWIvcGctY29tcG9uZW50cy9jYXJkL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9jYXJkLmNvbXBvbmVudHNcIjtcclxuZXhwb3J0ICogZnJvbSBcIi4vY2FyZC5tb2R1bGVcIjsiXX0=
@@ -1,4 +0,0 @@
1
- export * from "./progress.component";
2
- export * from "./progress.config";
3
- export * from "./progress.module";
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1raXQtbGliL3NyYy9saWIvcGctY29tcG9uZW50cy9wcm9ncmVzcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL3Byb2dyZXNzLmNvbXBvbmVudFwiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9wcm9ncmVzcy5jb25maWdcIjtcclxuZXhwb3J0ICogZnJvbSBcIi4vcHJvZ3Jlc3MubW9kdWxlXCI7Il19
@@ -1,80 +0,0 @@
1
- import { Component, Input } from "@angular/core";
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/common";
4
- /**
5
- * Component representing a progress bar.
6
- *
7
- * Example of usage:
8
- *
9
- * ```
10
- * <mefdev-progress type="linear" color="blue" [thick]="true"></mefdev-progress>
11
- * <mefdev-progress type="circle" color="red" [indeterminate]="true"></mefdev-progress>
12
- * ```
13
- */
14
- export class MefDevProgressComponent {
15
- _value;
16
- _value2;
17
- /**
18
- * The type of progress bar.
19
- * Possible values: "linear" | "circle".
20
- * Default value: "linear".
21
- */
22
- type;
23
- /**
24
- * The color of the progress bar.
25
- * Possible values: any valid CSS color value.
26
- * Default value: none.
27
- */
28
- color;
29
- /**
30
- * Determines whether the progress bar is thick.
31
- * Default value: false.
32
- */
33
- thick;
34
- /**
35
- * Determines whether the progress bar is indeterminate.
36
- * Default value: false.
37
- */
38
- indeterminate;
39
- /**
40
- * The value of the progress bar.
41
- * For the "circle" type, it should be a number between 0 and 100.
42
- */
43
- set value(value) {
44
- if (this.type == "circle") {
45
- this._value = (value / 100) * 360;
46
- if (this.value >= 50) {
47
- this._value2 = true;
48
- }
49
- }
50
- else
51
- this._value = value;
52
- }
53
- get value() {
54
- return this._value;
55
- }
56
- /**
57
- * Additional value property.
58
- */
59
- get value2() {
60
- return this._value2;
61
- }
62
- constructor() { }
63
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MefDevProgressComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
64
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MefDevProgressComponent, selector: "mefdev-progress", inputs: { type: "type", color: "color", thick: "thick", indeterminate: "indeterminate", value: "value" }, ngImport: i0, template: "<div *ngIf=\"type === 'bar'; else circleBlock\">\r\n <div *ngIf=\"indeterminate; else determineBarBlock\">\r\n <div class=\"progress\" [class.progress-small]=\"!thick\">\r\n <div class=\"progress-bar-{{ color }}\" [class.progress-bar-indeterminate]=\"indeterminate\"></div>\r\n </div>\r\n </div>\r\n <ng-template #determineBarBlock>\r\n <div class=\"progress\" [class.progress-small]=\"!thick\">\r\n <div class=\"progress-bar progress-bar-{{ color }}\" [ngStyle]=\"{ width: value + '%' }\"></div>\r\n </div>\r\n </ng-template>\r\n</div>\r\n<ng-template #circleBlock>\r\n <div class=\"progress-circle-{{ color }}\" [class.progress-circle-indeterminate]=\"indeterminate\"\r\n [class.progress-circle]=\"!indeterminate\" [class.progress-circle-thick]=\"thick\">\r\n <div *ngIf=\"indeterminate; else determineBlock\"></div>\r\n <ng-template #determineBlock>\r\n <div class=\"pie\" [ngStyle]=\"_value2 && { clip: 'rect(auto, auto, auto, auto)' }\">\r\n <div class=\"left-side half-circle\" [ngStyle]=\"_value2 && { transform: 'rotate(' + value + 'deg)' }\"></div>\r\n <div class=\"right-side half-circle\" [ngStyle]=\"{\r\n transform:\r\n _value2 === true ? 'rotate(180deg)' : 'rotate(' + value + 'deg)'\r\n }\"></div>\r\n </div>\r\n <div class=\"shadow\"></div>\r\n </ng-template>\r\n </div>\r\n</ng-template>", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
65
- }
66
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MefDevProgressComponent, decorators: [{
67
- type: Component,
68
- args: [{ selector: "mefdev-progress", template: "<div *ngIf=\"type === 'bar'; else circleBlock\">\r\n <div *ngIf=\"indeterminate; else determineBarBlock\">\r\n <div class=\"progress\" [class.progress-small]=\"!thick\">\r\n <div class=\"progress-bar-{{ color }}\" [class.progress-bar-indeterminate]=\"indeterminate\"></div>\r\n </div>\r\n </div>\r\n <ng-template #determineBarBlock>\r\n <div class=\"progress\" [class.progress-small]=\"!thick\">\r\n <div class=\"progress-bar progress-bar-{{ color }}\" [ngStyle]=\"{ width: value + '%' }\"></div>\r\n </div>\r\n </ng-template>\r\n</div>\r\n<ng-template #circleBlock>\r\n <div class=\"progress-circle-{{ color }}\" [class.progress-circle-indeterminate]=\"indeterminate\"\r\n [class.progress-circle]=\"!indeterminate\" [class.progress-circle-thick]=\"thick\">\r\n <div *ngIf=\"indeterminate; else determineBlock\"></div>\r\n <ng-template #determineBlock>\r\n <div class=\"pie\" [ngStyle]=\"_value2 && { clip: 'rect(auto, auto, auto, auto)' }\">\r\n <div class=\"left-side half-circle\" [ngStyle]=\"_value2 && { transform: 'rotate(' + value + 'deg)' }\"></div>\r\n <div class=\"right-side half-circle\" [ngStyle]=\"{\r\n transform:\r\n _value2 === true ? 'rotate(180deg)' : 'rotate(' + value + 'deg)'\r\n }\"></div>\r\n </div>\r\n <div class=\"shadow\"></div>\r\n </ng-template>\r\n </div>\r\n</ng-template>" }]
69
- }], ctorParameters: function () { return []; }, propDecorators: { type: [{
70
- type: Input
71
- }], color: [{
72
- type: Input
73
- }], thick: [{
74
- type: Input
75
- }], indeterminate: [{
76
- type: Input
77
- }], value: [{
78
- type: Input
79
- }] } });
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkta2l0LWxpYi9zcmMvbGliL3BnLWNvbXBvbmVudHMvcHJvZ3Jlc3MvcHJvZ3Jlc3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkta2l0LWxpYi9zcmMvbGliL3BnLWNvbXBvbmVudHMvcHJvZ3Jlc3MvcHJvZ3Jlc3MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUVqRDs7Ozs7Ozs7O0dBU0c7QUFLSCxNQUFNLE9BQU8sdUJBQXVCO0lBQ2xDLE1BQU0sQ0FBUztJQUNmLE9BQU8sQ0FBTTtJQUViOzs7O09BSUc7SUFDTSxJQUFJLENBQVM7SUFFdEI7Ozs7T0FJRztJQUVNLEtBQUssQ0FBUztJQUV2Qjs7O09BR0c7SUFDTSxLQUFLLENBQVU7SUFFeEI7OztPQUdHO0lBQ00sYUFBYSxDQUFVO0lBR2hDOzs7T0FHRztJQUNILElBQWEsS0FBSyxDQUFDLEtBQWE7UUFDOUIsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLFFBQVEsRUFBRTtZQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQztZQUNsQyxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxFQUFFO2dCQUNwQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQzthQUNyQjtTQUNGOztZQUFNLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQzdCLENBQUM7SUFDRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFDRCxnQkFBZSxDQUFDO3dHQXRETCx1QkFBdUI7NEZBQXZCLHVCQUF1QixpS0NoQnBDLGc0Q0EyQmM7OzRGRFhELHVCQUF1QjtrQkFKbkMsU0FBUzsrQkFDRSxpQkFBaUI7MEVBWWxCLElBQUk7c0JBQVosS0FBSztnQkFRRyxLQUFLO3NCQUFiLEtBQUs7Z0JBTUcsS0FBSztzQkFBYixLQUFLO2dCQU1HLGFBQWE7c0JBQXJCLEtBQUs7Z0JBT08sS0FBSztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuLyoqXHJcbiAqIENvbXBvbmVudCByZXByZXNlbnRpbmcgYSBwcm9ncmVzcyBiYXIuXHJcbiAqIFxyXG4gKiBFeGFtcGxlIG9mIHVzYWdlOlxyXG4gKiBcclxuICogYGBgXHJcbiAqIDxtZWZkZXYtcHJvZ3Jlc3MgdHlwZT1cImxpbmVhclwiIGNvbG9yPVwiYmx1ZVwiIFt0aGlja109XCJ0cnVlXCI+PC9tZWZkZXYtcHJvZ3Jlc3M+XHJcbiAqIDxtZWZkZXYtcHJvZ3Jlc3MgdHlwZT1cImNpcmNsZVwiIGNvbG9yPVwicmVkXCIgW2luZGV0ZXJtaW5hdGVdPVwidHJ1ZVwiPjwvbWVmZGV2LXByb2dyZXNzPlxyXG4gKiBgYGBcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcIm1lZmRldi1wcm9ncmVzc1wiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vcHJvZ3Jlc3MuY29tcG9uZW50Lmh0bWxcIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWVmRGV2UHJvZ3Jlc3NDb21wb25lbnQge1xyXG4gIF92YWx1ZTogbnVtYmVyO1xyXG4gIF92YWx1ZTI6IGFueTtcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIHR5cGUgb2YgcHJvZ3Jlc3MgYmFyLlxyXG4gICAqIFBvc3NpYmxlIHZhbHVlczogXCJsaW5lYXJcIiB8IFwiY2lyY2xlXCIuXHJcbiAgICogRGVmYXVsdCB2YWx1ZTogXCJsaW5lYXJcIi5cclxuICAgKi9cclxuICBASW5wdXQoKSB0eXBlOiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBjb2xvciBvZiB0aGUgcHJvZ3Jlc3MgYmFyLlxyXG4gICAqIFBvc3NpYmxlIHZhbHVlczogYW55IHZhbGlkIENTUyBjb2xvciB2YWx1ZS5cclxuICAgKiBEZWZhdWx0IHZhbHVlOiBub25lLlxyXG4gICAqL1xyXG5cclxuICBASW5wdXQoKSBjb2xvcjogc3RyaW5nO1xyXG5cclxuICAvKipcclxuICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIHByb2dyZXNzIGJhciBpcyB0aGljay5cclxuICAgKiBEZWZhdWx0IHZhbHVlOiBmYWxzZS5cclxuICAgKi9cclxuICBASW5wdXQoKSB0aGljazogYm9vbGVhbjtcclxuXHJcbiAgLyoqXHJcbiAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBwcm9ncmVzcyBiYXIgaXMgaW5kZXRlcm1pbmF0ZS5cclxuICAgKiBEZWZhdWx0IHZhbHVlOiBmYWxzZS5cclxuICAgKi9cclxuICBASW5wdXQoKSBpbmRldGVybWluYXRlOiBib29sZWFuO1xyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIHZhbHVlIG9mIHRoZSBwcm9ncmVzcyBiYXIuXHJcbiAgICogRm9yIHRoZSBcImNpcmNsZVwiIHR5cGUsIGl0IHNob3VsZCBiZSBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDEwMC5cclxuICAgKi9cclxuICBASW5wdXQoKSBzZXQgdmFsdWUodmFsdWU6IG51bWJlcikge1xyXG4gICAgaWYgKHRoaXMudHlwZSA9PSBcImNpcmNsZVwiKSB7XHJcbiAgICAgIHRoaXMuX3ZhbHVlID0gKHZhbHVlIC8gMTAwKSAqIDM2MDtcclxuICAgICAgaWYgKHRoaXMudmFsdWUgPj0gNTApIHtcclxuICAgICAgICB0aGlzLl92YWx1ZTIgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcclxuICB9XHJcbiAgZ2V0IHZhbHVlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWRkaXRpb25hbCB2YWx1ZSBwcm9wZXJ0eS5cclxuICAgKi9cclxuICBnZXQgdmFsdWUyKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlMjtcclxuICB9XHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG59XHJcbiIsIjxkaXYgKm5nSWY9XCJ0eXBlID09PSAnYmFyJzsgZWxzZSBjaXJjbGVCbG9ja1wiPlxyXG4gIDxkaXYgKm5nSWY9XCJpbmRldGVybWluYXRlOyBlbHNlIGRldGVybWluZUJhckJsb2NrXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3NcIiBbY2xhc3MucHJvZ3Jlc3Mtc21hbGxdPVwiIXRoaWNrXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJwcm9ncmVzcy1iYXIte3sgY29sb3IgfX1cIiBbY2xhc3MucHJvZ3Jlc3MtYmFyLWluZGV0ZXJtaW5hdGVdPVwiaW5kZXRlcm1pbmF0ZVwiPjwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPG5nLXRlbXBsYXRlICNkZXRlcm1pbmVCYXJCbG9jaz5cclxuICAgIDxkaXYgY2xhc3M9XCJwcm9ncmVzc1wiIFtjbGFzcy5wcm9ncmVzcy1zbWFsbF09XCIhdGhpY2tcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInByb2dyZXNzLWJhciBwcm9ncmVzcy1iYXIte3sgY29sb3IgfX1cIiBbbmdTdHlsZV09XCJ7IHdpZHRoOiB2YWx1ZSArICclJyB9XCI+PC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L2Rpdj5cclxuPG5nLXRlbXBsYXRlICNjaXJjbGVCbG9jaz5cclxuICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3MtY2lyY2xlLXt7IGNvbG9yIH19XCIgW2NsYXNzLnByb2dyZXNzLWNpcmNsZS1pbmRldGVybWluYXRlXT1cImluZGV0ZXJtaW5hdGVcIlxyXG4gICAgW2NsYXNzLnByb2dyZXNzLWNpcmNsZV09XCIhaW5kZXRlcm1pbmF0ZVwiIFtjbGFzcy5wcm9ncmVzcy1jaXJjbGUtdGhpY2tdPVwidGhpY2tcIj5cclxuICAgIDxkaXYgKm5nSWY9XCJpbmRldGVybWluYXRlOyBlbHNlIGRldGVybWluZUJsb2NrXCI+PC9kaXY+XHJcbiAgICA8bmctdGVtcGxhdGUgI2RldGVybWluZUJsb2NrPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicGllXCIgW25nU3R5bGVdPVwiX3ZhbHVlMiAmJiB7IGNsaXA6ICdyZWN0KGF1dG8sIGF1dG8sIGF1dG8sIGF1dG8pJyB9XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImxlZnQtc2lkZSBoYWxmLWNpcmNsZVwiIFtuZ1N0eWxlXT1cIl92YWx1ZTIgJiYgeyB0cmFuc2Zvcm06ICdyb3RhdGUoJyArIHZhbHVlICsgJ2RlZyknIH1cIj48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHQtc2lkZSBoYWxmLWNpcmNsZVwiIFtuZ1N0eWxlXT1cIntcclxuICAgICAgICAgICAgdHJhbnNmb3JtOlxyXG4gICAgICAgICAgICAgIF92YWx1ZTIgPT09IHRydWUgPyAncm90YXRlKDE4MGRlZyknIDogJ3JvdGF0ZSgnICsgdmFsdWUgKyAnZGVnKSdcclxuICAgICAgICAgIH1cIj48L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzaGFkb3dcIj48L2Rpdj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+Il19