@dereekb/dbx-form 0.0.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 (217) hide show
  1. package/README.md +6 -0
  2. package/dereekb-dbx-form.d.ts +5 -0
  3. package/esm2020/dereekb-dbx-form.mjs +5 -0
  4. package/esm2020/index.mjs +2 -0
  5. package/esm2020/lib/form/action/form.action.directive.mjs +131 -0
  6. package/esm2020/lib/form/action/form.action.module.mjs +30 -0
  7. package/esm2020/lib/form/action/index.mjs +3 -0
  8. package/esm2020/lib/form/form.changes.directive.mjs +33 -0
  9. package/esm2020/lib/form/form.input.directive.mjs +49 -0
  10. package/esm2020/lib/form/form.mjs +20 -0
  11. package/esm2020/lib/form/form.module.mjs +36 -0
  12. package/esm2020/lib/form/index.mjs +7 -0
  13. package/esm2020/lib/form/loading/form.loading.directive.mjs +52 -0
  14. package/esm2020/lib/form/loading/index.mjs +2 -0
  15. package/esm2020/lib/formly/field/checklist/checklist.item.field.component.mjs +91 -0
  16. package/esm2020/lib/formly/field/checklist/checklist.item.field.content.default.component.mjs +38 -0
  17. package/esm2020/lib/formly/field/checklist/checklist.item.field.mjs +119 -0
  18. package/esm2020/lib/formly/field/checklist/checklist.item.field.module.mjs +81 -0
  19. package/esm2020/lib/formly/field/checklist/checklist.item.mjs +2 -0
  20. package/esm2020/lib/formly/field/checklist/index.mjs +6 -0
  21. package/esm2020/lib/formly/field/component/component.field.component.mjs +35 -0
  22. package/esm2020/lib/formly/field/component/component.field.mjs +7 -0
  23. package/esm2020/lib/formly/field/component/component.field.module.mjs +42 -0
  24. package/esm2020/lib/formly/field/component/index.mjs +4 -0
  25. package/esm2020/lib/formly/field/field.mjs +21 -0
  26. package/esm2020/lib/formly/field/index.mjs +7 -0
  27. package/esm2020/lib/formly/field/selection/index.mjs +4 -0
  28. package/esm2020/lib/formly/field/selection/pickable/index.mjs +6 -0
  29. package/esm2020/lib/formly/field/selection/pickable/pickable.chip.field.component.mjs +30 -0
  30. package/esm2020/lib/formly/field/selection/pickable/pickable.field.directive.mjs +244 -0
  31. package/esm2020/lib/formly/field/selection/pickable/pickable.field.module.mjs +96 -0
  32. package/esm2020/lib/formly/field/selection/pickable/pickable.list.field.component.mjs +30 -0
  33. package/esm2020/lib/formly/field/selection/pickable/pickable.mjs +2 -0
  34. package/esm2020/lib/formly/field/selection/searchable/index.mjs +9 -0
  35. package/esm2020/lib/formly/field/selection/searchable/searchable.chip.field.component.mjs +45 -0
  36. package/esm2020/lib/formly/field/selection/searchable/searchable.field.autocomplete.item.component.mjs +73 -0
  37. package/esm2020/lib/formly/field/selection/searchable/searchable.field.directive.mjs +237 -0
  38. package/esm2020/lib/formly/field/selection/searchable/searchable.field.mjs +45 -0
  39. package/esm2020/lib/formly/field/selection/searchable/searchable.field.module.mjs +107 -0
  40. package/esm2020/lib/formly/field/selection/searchable/searchable.mjs +2 -0
  41. package/esm2020/lib/formly/field/selection/searchable/searchable.text.field.component.mjs +31 -0
  42. package/esm2020/lib/formly/field/selection/searchable/text.chip.field.mjs +15 -0
  43. package/esm2020/lib/formly/field/selection/selection.mjs +2 -0
  44. package/esm2020/lib/formly/field/value/array/array.field.component.mjs +87 -0
  45. package/esm2020/lib/formly/field/value/array/array.field.module.mjs +52 -0
  46. package/esm2020/lib/formly/field/value/array/index.mjs +3 -0
  47. package/esm2020/lib/formly/field/value/boolean/boolean.field.mjs +50 -0
  48. package/esm2020/lib/formly/field/value/boolean/boolean.field.module.mjs +16 -0
  49. package/esm2020/lib/formly/field/value/boolean/index.mjs +3 -0
  50. package/esm2020/lib/formly/field/value/date/date.field.mjs +36 -0
  51. package/esm2020/lib/formly/field/value/date/date.field.module.mjs +87 -0
  52. package/esm2020/lib/formly/field/value/date/datetime.field.component.mjs +226 -0
  53. package/esm2020/lib/formly/field/value/date/index.mjs +4 -0
  54. package/esm2020/lib/formly/field/value/enum/enum.field.mjs +18 -0
  55. package/esm2020/lib/formly/field/value/enum/enum.mjs +2 -0
  56. package/esm2020/lib/formly/field/value/enum/index.mjs +4 -0
  57. package/esm2020/lib/formly/field/value/hidden.field.mjs +8 -0
  58. package/esm2020/lib/formly/field/value/index.mjs +8 -0
  59. package/esm2020/lib/formly/field/value/phone/index.mjs +4 -0
  60. package/esm2020/lib/formly/field/value/phone/phone.field.component.mjs +44 -0
  61. package/esm2020/lib/formly/field/value/phone/phone.field.mjs +64 -0
  62. package/esm2020/lib/formly/field/value/phone/phone.field.module.mjs +67 -0
  63. package/esm2020/lib/formly/field/value/text/index.mjs +4 -0
  64. package/esm2020/lib/formly/field/value/text/text.address.field.mjs +65 -0
  65. package/esm2020/lib/formly/field/value/text/text.field.mjs +125 -0
  66. package/esm2020/lib/formly/field/value/text/text.field.module.mjs +19 -0
  67. package/esm2020/lib/formly/field/wrapper/autotouch.wrapper.component.mjs +26 -0
  68. package/esm2020/lib/formly/field/wrapper/expandable.wrapper.component.mjs +83 -0
  69. package/esm2020/lib/formly/field/wrapper/flex.wrapper.component.mjs +22 -0
  70. package/esm2020/lib/formly/field/wrapper/flex.wrapper.layout.mjs +20 -0
  71. package/esm2020/lib/formly/field/wrapper/form.wrapper.module.mjs +84 -0
  72. package/esm2020/lib/formly/field/wrapper/index.mjs +11 -0
  73. package/esm2020/lib/formly/field/wrapper/info.wrapper.component.mjs +47 -0
  74. package/esm2020/lib/formly/field/wrapper/section.wrapper.component.mjs +35 -0
  75. package/esm2020/lib/formly/field/wrapper/subsection.wrapper.component.mjs +35 -0
  76. package/esm2020/lib/formly/field/wrapper/toggle.wrapper.component.mjs +58 -0
  77. package/esm2020/lib/formly/field/wrapper/toggle.wrapper.mjs +10 -0
  78. package/esm2020/lib/formly/formly.component.mjs +134 -0
  79. package/esm2020/lib/formly/formly.context.mjs +111 -0
  80. package/esm2020/lib/formly/formly.directive.mjs +101 -0
  81. package/esm2020/lib/formly/formly.module.mjs +59 -0
  82. package/esm2020/lib/formly/index.mjs +6 -0
  83. package/esm2020/lib/index.mjs +5 -0
  84. package/esm2020/lib/layout/form.layout.module.mjs +26 -0
  85. package/esm2020/lib/layout/form.spacer.component.mjs +17 -0
  86. package/esm2020/lib/layout/index.mjs +3 -0
  87. package/esm2020/lib/validator/boolean.mjs +12 -0
  88. package/esm2020/lib/validator/email.mjs +6 -0
  89. package/esm2020/lib/validator/index.mjs +4 -0
  90. package/esm2020/lib/validator/number.mjs +21 -0
  91. package/fesm2015/dereekb-dbx-form.mjs +3295 -0
  92. package/fesm2015/dereekb-dbx-form.mjs.map +1 -0
  93. package/fesm2020/dereekb-dbx-form.mjs +3289 -0
  94. package/fesm2020/dereekb-dbx-form.mjs.map +1 -0
  95. package/index.d.ts +1 -0
  96. package/lib/form/action/form.action.directive.d.ts +44 -0
  97. package/lib/form/action/form.action.module.d.ts +9 -0
  98. package/lib/form/action/index.d.ts +2 -0
  99. package/lib/form/form.changes.directive.d.ts +15 -0
  100. package/lib/form/form.d.ts +51 -0
  101. package/lib/form/form.input.directive.d.ts +18 -0
  102. package/lib/form/form.module.d.ts +10 -0
  103. package/lib/form/index.d.ts +6 -0
  104. package/lib/form/loading/form.loading.directive.d.ts +19 -0
  105. package/lib/form/loading/index.d.ts +1 -0
  106. package/lib/formly/field/checklist/checklist.item.d.ts +38 -0
  107. package/lib/formly/field/checklist/checklist.item.field.component.d.ts +48 -0
  108. package/lib/formly/field/checklist/checklist.item.field.content.default.component.d.ts +10 -0
  109. package/lib/formly/field/checklist/checklist.item.field.d.ts +50 -0
  110. package/lib/formly/field/checklist/checklist.item.field.module.d.ts +18 -0
  111. package/lib/formly/field/checklist/index.d.ts +5 -0
  112. package/lib/formly/field/component/component.field.component.d.ts +22 -0
  113. package/lib/formly/field/component/component.field.d.ts +6 -0
  114. package/lib/formly/field/component/component.field.module.d.ts +10 -0
  115. package/lib/formly/field/component/index.d.ts +3 -0
  116. package/lib/formly/field/field.d.ts +31 -0
  117. package/lib/formly/field/index.d.ts +6 -0
  118. package/lib/formly/field/selection/index.d.ts +3 -0
  119. package/lib/formly/field/selection/pickable/index.d.ts +5 -0
  120. package/lib/formly/field/selection/pickable/pickable.chip.field.component.d.ts +10 -0
  121. package/lib/formly/field/selection/pickable/pickable.d.ts +28 -0
  122. package/lib/formly/field/selection/pickable/pickable.field.directive.d.ts +155 -0
  123. package/lib/formly/field/selection/pickable/pickable.field.module.d.ts +20 -0
  124. package/lib/formly/field/selection/pickable/pickable.list.field.component.d.ts +11 -0
  125. package/lib/formly/field/selection/searchable/index.d.ts +8 -0
  126. package/lib/formly/field/selection/searchable/searchable.chip.field.component.d.ts +16 -0
  127. package/lib/formly/field/selection/searchable/searchable.d.ts +40 -0
  128. package/lib/formly/field/selection/searchable/searchable.field.autocomplete.item.component.d.ts +20 -0
  129. package/lib/formly/field/selection/searchable/searchable.field.d.ts +16 -0
  130. package/lib/formly/field/selection/searchable/searchable.field.directive.d.ts +131 -0
  131. package/lib/formly/field/selection/searchable/searchable.field.module.d.ts +21 -0
  132. package/lib/formly/field/selection/searchable/searchable.text.field.component.d.ts +15 -0
  133. package/lib/formly/field/selection/searchable/text.chip.field.d.ts +9 -0
  134. package/lib/formly/field/selection/selection.d.ts +25 -0
  135. package/lib/formly/field/value/array/array.field.component.d.ts +22 -0
  136. package/lib/formly/field/value/array/array.field.module.d.ts +13 -0
  137. package/lib/formly/field/value/array/index.d.ts +2 -0
  138. package/lib/formly/field/value/boolean/boolean.field.d.ts +8 -0
  139. package/lib/formly/field/value/boolean/boolean.field.module.d.ts +6 -0
  140. package/lib/formly/field/value/boolean/index.d.ts +2 -0
  141. package/lib/formly/field/value/date/date.field.d.ts +13 -0
  142. package/lib/formly/field/value/date/date.field.module.d.ts +21 -0
  143. package/lib/formly/field/value/date/datetime.field.component.d.ts +105 -0
  144. package/lib/formly/field/value/date/index.d.ts +3 -0
  145. package/lib/formly/field/value/enum/enum.d.ts +4 -0
  146. package/lib/formly/field/value/enum/enum.field.d.ts +14 -0
  147. package/lib/formly/field/value/enum/index.d.ts +2 -0
  148. package/lib/formly/field/value/hidden.field.d.ts +5 -0
  149. package/lib/formly/field/value/index.d.ts +7 -0
  150. package/lib/formly/field/value/phone/index.d.ts +3 -0
  151. package/lib/formly/field/value/phone/phone.field.component.d.ts +24 -0
  152. package/lib/formly/field/value/phone/phone.field.d.ts +26 -0
  153. package/lib/formly/field/value/phone/phone.field.module.d.ts +16 -0
  154. package/lib/formly/field/value/text/index.d.ts +3 -0
  155. package/lib/formly/field/value/text/text.address.field.d.ts +12 -0
  156. package/lib/formly/field/value/text/text.field.d.ts +42 -0
  157. package/lib/formly/field/value/text/text.field.module.d.ts +7 -0
  158. package/lib/formly/field/wrapper/autotouch.wrapper.component.d.ts +11 -0
  159. package/lib/formly/field/wrapper/expandable.wrapper.component.d.ts +43 -0
  160. package/lib/formly/field/wrapper/flex.wrapper.component.d.ts +6 -0
  161. package/lib/formly/field/wrapper/flex.wrapper.layout.d.ts +10 -0
  162. package/lib/formly/field/wrapper/form.wrapper.module.d.ts +19 -0
  163. package/lib/formly/field/wrapper/index.d.ts +10 -0
  164. package/lib/formly/field/wrapper/info.wrapper.component.d.ts +17 -0
  165. package/lib/formly/field/wrapper/section.wrapper.component.d.ts +8 -0
  166. package/lib/formly/field/wrapper/subsection.wrapper.component.d.ts +8 -0
  167. package/lib/formly/field/wrapper/toggle.wrapper.component.d.ts +24 -0
  168. package/lib/formly/field/wrapper/toggle.wrapper.d.ts +7 -0
  169. package/lib/formly/formly.component.d.ts +36 -0
  170. package/lib/formly/formly.context.d.ts +57 -0
  171. package/lib/formly/formly.directive.d.ts +50 -0
  172. package/lib/formly/formly.module.d.ts +11 -0
  173. package/lib/formly/index.d.ts +5 -0
  174. package/lib/index.d.ts +4 -0
  175. package/lib/layout/form.layout.module.d.ts +8 -0
  176. package/lib/layout/form.spacer.component.d.ts +8 -0
  177. package/lib/layout/index.d.ts +2 -0
  178. package/lib/validator/boolean.d.ts +2 -0
  179. package/lib/validator/email.d.ts +3 -0
  180. package/lib/validator/index.d.ts +3 -0
  181. package/lib/validator/number.d.ts +2 -0
  182. package/package.json +67 -0
  183. package/src/_index.scss +11 -0
  184. package/src/lib/form/_form.scss +26 -0
  185. package/src/lib/formly/_formly.scss +26 -0
  186. package/src/lib/formly/field/_field.scss +33 -0
  187. package/src/lib/formly/field/checklist/_checklist.scss +26 -0
  188. package/src/lib/formly/field/checklist/checklist.item_TODO.scss +57 -0
  189. package/src/lib/formly/field/component/_component.scss +26 -0
  190. package/src/lib/formly/field/fields_TODO.scss +4 -0
  191. package/src/lib/formly/field/selection/_selection.scss +17 -0
  192. package/src/lib/formly/field/selection/generic_TODO.scss +36 -0
  193. package/src/lib/formly/field/selection/pickable/_pickable.scss +26 -0
  194. package/src/lib/formly/field/selection/searchable/_searchable.scss +26 -0
  195. package/src/lib/formly/field/texteditor/_texteditor.scss +26 -0
  196. package/src/lib/formly/field/texteditor/texteditor_TODO.scss +32 -0
  197. package/src/lib/formly/field/value/_value.scss +33 -0
  198. package/src/lib/formly/field/value/array/_array.scss +26 -0
  199. package/src/lib/formly/field/value/boolean/_boolean.scss +26 -0
  200. package/src/lib/formly/field/value/date/_date.scss +26 -0
  201. package/src/lib/formly/field/value/date/date_TODO.scss +27 -0
  202. package/src/lib/formly/field/value/enum/_enum.scss +26 -0
  203. package/src/lib/formly/field/value/phone/_phone.scss +26 -0
  204. package/src/lib/formly/field/value/phone/phone_TODO.scss +10 -0
  205. package/src/lib/formly/field/value/text/_text.scss +26 -0
  206. package/src/lib/formly/field/wrapper/_wrapper.scss +26 -0
  207. package/src/lib/formly/field/wrapper/wrapper_TODO.scss +34 -0
  208. package/src/lib/formly/form_TODO.scss +153 -0
  209. package/src/lib/layout/_layout.scss +26 -0
  210. package/src/lib/style/_all-core.scss +12 -0
  211. package/src/lib/style/_all-theme.scss +12 -0
  212. package/src/lib/style/_all-typography.scss +12 -0
  213. package/src/lib/style/_config.scss +20 -0
  214. package/src/lib/style/_core.scss +9 -0
  215. package/src/lib/style/_mixin.scss +3 -0
  216. package/src/lib/style/_theming.scss +19 -0
  217. package/src/lib/style/_variables.scss +1 -0
package/README.md ADDED
@@ -0,0 +1,6 @@
1
+ @dereekb/dbx-form
2
+ =======
3
+
4
+ The sources for this package are in the main [@dereekb/dbcomponents](https://github.com/dereekb/dbcomponents) repo. Please file issues and pull requests against that repo.
5
+
6
+ License: MIT
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@dereekb/dbx-form" />
5
+ export * from './index';
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVyZWVrYi1kYngtZm9ybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1mb3JtL3NyYy9kZXJlZWtiLWRieC1mb3JtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
@@ -0,0 +1,2 @@
1
+ export * from './lib';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxPQUFPLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYic7XG4iXX0=
@@ -0,0 +1,131 @@
1
+ import { Directive, Host, Input } from '@angular/core';
2
+ import { addSeconds, isPast } from 'date-fns';
3
+ import { of, combineLatest } from 'rxjs';
4
+ import { catchError, filter, first, map, switchMap } from 'rxjs/operators';
5
+ import { ActionContextStoreSourceInstance } from '@dereekb/dbx-core';
6
+ import { SubscriptionObject, LockSet } from '@dereekb/rxjs';
7
+ import { DbxForm, DbxFormState } from '../../form/form';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "../../form/form";
10
+ import * as i2 from "@dereekb/dbx-core";
11
+ export const APP_ACTION_FORM_DISABLED_KEY = 'actionForm';
12
+ /**
13
+ * Used with an action to bind a form to an action as it's value source.
14
+ *
15
+ * If the form has errors when the action is trigger, it will reject the action.
16
+ *
17
+ * If the source is not considered modified, the trigger will be ignored.
18
+ */
19
+ export class DbxActionFormDirective {
20
+ constructor(form, source) {
21
+ this.form = form;
22
+ this.source = source;
23
+ this.lockSet = new LockSet();
24
+ this._triggeredSub = new SubscriptionObject();
25
+ this._isCompleteSub = new SubscriptionObject();
26
+ if (form.lockSet) {
27
+ this.lockSet.addChildLockSet(form.lockSet, 'form');
28
+ }
29
+ this.lockSet.addChildLockSet(source.lockSet, 'source');
30
+ }
31
+ ngOnInit() {
32
+ // Pass data from the form to the source when triggered.
33
+ this._triggeredSub.subscription = this.source.triggered$.pipe(switchMap(() => {
34
+ const doNothing = {}; // nothing, form not complete
35
+ if (this.form.isComplete) {
36
+ const value = this.form.value;
37
+ return this.preCheckReadyValue(value).pipe(first(), switchMap((canContinue) => {
38
+ if (canContinue) {
39
+ return this.readyValue(value).pipe(first());
40
+ }
41
+ else {
42
+ return of(doNothing);
43
+ }
44
+ }), catchError((error) => of({ error })));
45
+ }
46
+ else {
47
+ return of(doNothing);
48
+ }
49
+ })).subscribe((result) => {
50
+ if (result.reject) {
51
+ this.source.reject(result.reject);
52
+ }
53
+ else if (result.value != null) {
54
+ this.source.readyValue(result.value);
55
+ }
56
+ else {
57
+ // value isn't ready
58
+ }
59
+ });
60
+ // Update the enabled/disabled state
61
+ this._isCompleteSub.subscription = this.form.stream$.pipe(filter((x) => x.state !== DbxFormState.INITIALIZING), switchMap((event) => {
62
+ // Use both changes count and whether or not something was in the past to guage whether or not the item has been touched.
63
+ // Angular Form's untouched is whether or not focus has been lost but we can still recieve value updates.
64
+ // More than a certain amount of updates implies that it is being typed into.
65
+ const isProbablyTouched = !event.untouched ||
66
+ ((event.changesCount ?? 0) > 3 && isPast(addSeconds(event.lastResetAt ?? new Date(), 2)));
67
+ // console.log('Event: ', event, isProbablyTouched);
68
+ const value = this.form.value;
69
+ let validatorObs;
70
+ const initialIsValidCheck = event.isComplete;
71
+ if (initialIsValidCheck) {
72
+ validatorObs = (this.appActionFormValidator) ? this.appActionFormValidator(value) : of(true);
73
+ }
74
+ else {
75
+ validatorObs = of(false);
76
+ }
77
+ let modifiedObs;
78
+ const isConsideredModified = (event.pristine === false && isProbablyTouched);
79
+ if (isConsideredModified) {
80
+ modifiedObs = (this.appActionFormModified) ? this.appActionFormModified(value) : of(true);
81
+ }
82
+ else {
83
+ modifiedObs = of(false);
84
+ }
85
+ return combineLatest([
86
+ validatorObs,
87
+ modifiedObs
88
+ ]).pipe(first(), map(([valid, modified]) => ({ valid, modified, event })));
89
+ })).subscribe(({ valid, modified, event }) => {
90
+ // Update Modified State
91
+ this.source.setIsModified(modified);
92
+ // Disable if the form is not yet complete/valid.
93
+ this.source.enable(APP_ACTION_FORM_DISABLED_KEY, valid);
94
+ });
95
+ // TODO: Watch the working state and stop allowing input on working..?
96
+ // TODO: Watch the disabled state for when another disabled key disables this form.
97
+ }
98
+ ngOnDestroy() {
99
+ this.source.enable(APP_ACTION_FORM_DISABLED_KEY);
100
+ this.lockSet.destroyOnNextUnlock(() => {
101
+ this._triggeredSub.destroy();
102
+ this._isCompleteSub.destroy();
103
+ });
104
+ }
105
+ preCheckReadyValue(value) {
106
+ let validatorObs = (this.appActionFormValidator) ? this.appActionFormValidator(value) : of(true);
107
+ let modifiedObs = (this.appActionFormModified) ? this.appActionFormModified(value) : of(true);
108
+ return combineLatest([
109
+ validatorObs,
110
+ modifiedObs
111
+ ]).pipe(first(), map(([valid, modified]) => valid && modified));
112
+ }
113
+ readyValue(value) {
114
+ return of({ value });
115
+ }
116
+ }
117
+ DbxActionFormDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbxActionFormDirective, deps: [{ token: i1.DbxForm, host: true }, { token: i2.ActionContextStoreSourceInstance }], target: i0.ɵɵFactoryTarget.Directive });
118
+ DbxActionFormDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: DbxActionFormDirective, selector: "[dbxActionForm]", inputs: { appActionFormValidator: "appActionFormValidator", appActionFormModified: "appActionFormModified" }, ngImport: i0 });
119
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbxActionFormDirective, decorators: [{
120
+ type: Directive,
121
+ args: [{
122
+ selector: '[dbxActionForm]'
123
+ }]
124
+ }], ctorParameters: function () { return [{ type: i1.DbxForm, decorators: [{
125
+ type: Host
126
+ }] }, { type: i2.ActionContextStoreSourceInstance }]; }, propDecorators: { appActionFormValidator: [{
127
+ type: Input
128
+ }], appActionFormModified: [{
129
+ type: Input
130
+ }] } });
131
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5hY3Rpb24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZvcm0vc3JjL2xpYi9mb3JtL2FjdGlvbi9mb3JtLmFjdGlvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQXFCLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM5QyxPQUFPLEVBQWMsRUFBRSxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXJFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQVV4RCxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxZQUFZLENBQUM7QUFFekQ7Ozs7OztHQU1HO0FBSUgsTUFBTSxPQUFPLHNCQUFzQjtJQW9CakMsWUFBb0MsSUFBYSxFQUFrQixNQUFxRDtRQUFwRixTQUFJLEdBQUosSUFBSSxDQUFTO1FBQWtCLFdBQU0sR0FBTixNQUFNLENBQStDO1FBbEIvRyxZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQWV6QixrQkFBYSxHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztRQUN6QyxtQkFBYyxHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztRQUdoRCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEIs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LHFCQUFxQjtzQkFEcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdCwgT25Jbml0LCBPbkRlc3Ryb3ksIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBhZGRTZWNvbmRzLCBpc1Bhc3QgfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiwgY29tYmluZUxhdGVzdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZmlsdGVyLCBmaXJzdCwgbWFwLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBY3Rpb25Db250ZXh0U3RvcmVTb3VyY2VJbnN0YW5jZSB9IGZyb20gJ0BkZXJlZWtiL2RieC1jb3JlJztcbmltcG9ydCB7IFJlYWRhYmxlRXJyb3IgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbk9iamVjdCwgTG9ja1NldCB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuaW1wb3J0IHsgRGJ4Rm9ybSwgRGJ4Rm9ybVN0YXRlIH0gZnJvbSAnLi4vLi4vZm9ybS9mb3JtJztcblxuZXhwb3J0IGludGVyZmFjZSBEYnhBY3Rpb25Gb3JtVHJpZ2dlclJlc3VsdCB7XG4gIHZhbHVlPzogYW55O1xuICByZWplY3Q/OiBSZWFkYWJsZUVycm9yO1xufVxuXG5leHBvcnQgdHlwZSBEYnhBY3Rpb25Gb3JtVmFsaWRhdGVGbjxUID0gYW55PiA9ICh2YWx1ZTogVCkgPT4gT2JzZXJ2YWJsZTxib29sZWFuPjtcbmV4cG9ydCB0eXBlIERieEFjdGlvbkZvcm1Nb2RpZmllZEZuPFQgPSBhbnk+ID0gKHZhbHVlOiBUKSA9PiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG5leHBvcnQgY29uc3QgQVBQX0FDVElPTl9GT1JNX0RJU0FCTEVEX0tFWSA9ICdhY3Rpb25Gb3JtJztcblxuLyoqXG4gKiBVc2VkIHdpdGggYW4gYWN0aW9uIHRvIGJpbmQgYSBmb3JtIHRvIGFuIGFjdGlvbiBhcyBpdCdzIHZhbHVlIHNvdXJjZS5cbiAqXG4gKiBJZiB0aGUgZm9ybSBoYXMgZXJyb3JzIHdoZW4gdGhlIGFjdGlvbiBpcyB0cmlnZ2VyLCBpdCB3aWxsIHJlamVjdCB0aGUgYWN0aW9uLlxuICpcbiAqIElmIHRoZSBzb3VyY2UgaXMgbm90IGNvbnNpZGVyZWQgbW9kaWZpZWQsIHRoZSB0cmlnZ2VyIHdpbGwgYmUgaWdub3JlZC5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2RieEFjdGlvbkZvcm1dJ1xufSlcbmV4cG9ydCBjbGFzcyBEYnhBY3Rpb25Gb3JtRGlyZWN0aXZlPFQgPSBhbnk+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIHJlYWRvbmx5IGxvY2tTZXQgPSBuZXcgTG9ja1NldCgpO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCB2YWxpZGF0b3IgdGhhdCBjaGVja3Mgd2hldGhlciBvciBub3QgdGhlIHZhbHVlIGlzXG4gICAqIHJlYWR5IHRvIHNlbmQgYmVmb3JlIHRoZSBjb250ZXh0IHN0b3JlIGlzIG1hcmtlZCBlbmFibGVkLlxuICAgKi9cbiAgQElucHV0KClcbiAgYXBwQWN0aW9uRm9ybVZhbGlkYXRvcj86IERieEFjdGlvbkZvcm1WYWxpZGF0ZUZuPFQ+O1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBmdW5jdGlvbiB0aGF0IGNoZWNrcyB3aGV0aGVyIG9yIG5vdCB0aGUgdmFsdWUgaGFzIGJlZW4gbW9kaWZpZWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBhcHBBY3Rpb25Gb3JtTW9kaWZpZWQ/OiBEYnhBY3Rpb25Gb3JtTW9kaWZpZWRGbjxUPjtcblxuICBwcml2YXRlIF90cmlnZ2VyZWRTdWIgPSBuZXcgU3Vic2NyaXB0aW9uT2JqZWN0KCk7XG4gIHByaXZhdGUgX2lzQ29tcGxldGVTdWIgPSBuZXcgU3Vic2NyaXB0aW9uT2JqZWN0KCk7XG5cbiAgY29uc3RydWN0b3IoQEhvc3QoKSBwdWJsaWMgcmVhZG9ubHkgZm9ybTogRGJ4Rm9ybSwgcHVibGljIHJlYWRvbmx5IHNvdXJjZTogQWN0aW9uQ29udGV4dFN0b3JlU291cmNlSW5zdGFuY2U8b2JqZWN0LCBhbnk+KSB7XG4gICAgaWYgKGZvcm0ubG9ja1NldCkge1xuICAgICAgdGhpcy5sb2NrU2V0LmFkZENoaWxkTG9ja1NldChmb3JtLmxvY2tTZXQsICdmb3JtJyk7XG4gICAgfVxuXG4gICAgdGhpcy5sb2NrU2V0LmFkZENoaWxkTG9ja1NldChzb3VyY2UubG9ja1NldCwgJ3NvdXJjZScpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG5cbiAgICAvLyBQYXNzIGRhdGEgZnJvbSB0aGUgZm9ybSB0byB0aGUgc291cmNlIHdoZW4gdHJpZ2dlcmVkLlxuICAgIHRoaXMuX3RyaWdnZXJlZFN1Yi5zdWJzY3JpcHRpb24gPSB0aGlzLnNvdXJjZS50cmlnZ2VyZWQkLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xuICAgICAgICBjb25zdCBkb05vdGhpbmcgPSB7fTsgLy8gbm90aGluZywgZm9ybSBub3QgY29tcGxldGVcblxuICAgICAgICBpZiAodGhpcy5mb3JtLmlzQ29tcGxldGUpIHtcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZm9ybS52YWx1ZTtcblxuICAgICAgICAgIHJldHVybiB0aGlzLnByZUNoZWNrUmVhZHlWYWx1ZSh2YWx1ZSkucGlwZShcbiAgICAgICAgICAgIGZpcnN0KCksXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKGNhbkNvbnRpbnVlKSA9PiB7XG4gICAgICAgICAgICAgIGlmIChjYW5Db250aW51ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnJlYWR5VmFsdWUodmFsdWUpLnBpcGUoZmlyc3QoKSk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9mKGRvTm90aGluZyk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IG9mKHsgZXJyb3IgfSBhcyBEYnhBY3Rpb25Gb3JtVHJpZ2dlclJlc3VsdCkpXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gb2YoZG9Ob3RoaW5nKTtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgKS5zdWJzY3JpYmUoKHJlc3VsdDogRGJ4QWN0aW9uRm9ybVRyaWdnZXJSZXN1bHQpID0+IHtcbiAgICAgIGlmIChyZXN1bHQucmVqZWN0KSB7XG4gICAgICAgIHRoaXMuc291cmNlLnJlamVjdChyZXN1bHQucmVqZWN0KTtcbiAgICAgIH0gZWxzZSBpZiAocmVzdWx0LnZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgdGhpcy5zb3VyY2UucmVhZHlWYWx1ZShyZXN1bHQudmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gdmFsdWUgaXNuJ3QgcmVhZHlcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIFVwZGF0ZSB0aGUgZW5hYmxlZC9kaXNhYmxlZCBzdGF0ZVxuICAgIHRoaXMuX2lzQ29tcGxldGVTdWIuc3Vic2NyaXB0aW9uID0gdGhpcy5mb3JtLnN0cmVhbSQucGlwZShcbiAgICAgIGZpbHRlcigoeCkgPT4geC5zdGF0ZSAhPT0gRGJ4Rm9ybVN0YXRlLklOSVRJQUxJWklORyksXG4gICAgICBzd2l0Y2hNYXAoKGV2ZW50KSA9PiB7XG5cbiAgICAgICAgLy8gVXNlIGJvdGggY2hhbmdlcyBjb3VudCBhbmQgd2hldGhlciBvciBub3Qgc29tZXRoaW5nIHdhcyBpbiB0aGUgcGFzdCB0byBndWFnZSB3aGV0aGVyIG9yIG5vdCB0aGUgaXRlbSBoYXMgYmVlbiB0b3VjaGVkLlxuICAgICAgICAvLyBBbmd1bGFyIEZvcm0ncyB1bnRvdWNoZWQgaXMgd2hldGhlciBvciBub3QgZm9jdXMgaGFzIGJlZW4gbG9zdCBidXQgd2UgY2FuIHN0aWxsIHJlY2lldmUgdmFsdWUgdXBkYXRlcy5cbiAgICAgICAgLy8gTW9yZSB0aGFuIGEgY2VydGFpbiBhbW91bnQgb2YgdXBkYXRlcyBpbXBsaWVzIHRoYXQgaXQgaXMgYmVpbmcgdHlwZWQgaW50by5cbiAgICAgICAgY29uc3QgaXNQcm9iYWJseVRvdWNoZWQgPSAhZXZlbnQudW50b3VjaGVkIHx8XG4gICAgICAgICAgKChldmVudC5jaGFuZ2VzQ291bnQgPz8gMCkgPiAzICYmIGlzUGFzdChhZGRTZWNvbmRzKGV2ZW50Lmxhc3RSZXNldEF0ID8/IG5ldyBEYXRlKCksIDIpKSk7XG5cbiAgICAgICAgLy8gY29uc29sZS5sb2coJ0V2ZW50OiAnLCBldmVudCwgaXNQcm9iYWJseVRvdWNoZWQpO1xuXG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5mb3JtLnZhbHVlO1xuXG4gICAgICAgIGxldCB2YWxpZGF0b3JPYnM6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgICAgICAgY29uc3QgaW5pdGlhbElzVmFsaWRDaGVjayA9IGV2ZW50LmlzQ29tcGxldGU7XG4gICAgICAgIGlmIChpbml0aWFsSXNWYWxpZENoZWNrKSB7XG4gICAgICAgICAgdmFsaWRhdG9yT2JzID0gKHRoaXMuYXBwQWN0aW9uRm9ybVZhbGlkYXRvcikgPyB0aGlzLmFwcEFjdGlvbkZvcm1WYWxpZGF0b3IodmFsdWUpIDogb2YodHJ1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdmFsaWRhdG9yT2JzID0gb2YoZmFsc2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IG1vZGlmaWVkT2JzOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gICAgICAgIGNvbnN0IGlzQ29uc2lkZXJlZE1vZGlmaWVkID0gKGV2ZW50LnByaXN0aW5lID09PSBmYWxzZSAmJiBpc1Byb2JhYmx5VG91Y2hlZCk7XG4gICAgICAgIGlmIChpc0NvbnNpZGVyZWRNb2RpZmllZCkge1xuICAgICAgICAgIG1vZGlmaWVkT2JzID0gKHRoaXMuYXBwQWN0aW9uRm9ybU1vZGlmaWVkKSA/IHRoaXMuYXBwQWN0aW9uRm9ybU1vZGlmaWVkKHZhbHVlKSA6IG9mKHRydWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG1vZGlmaWVkT2JzID0gb2YoZmFsc2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgIHZhbGlkYXRvck9icyxcbiAgICAgICAgICBtb2RpZmllZE9ic1xuICAgICAgICBdKS5waXBlKFxuICAgICAgICAgIGZpcnN0KCksXG4gICAgICAgICAgbWFwKChbdmFsaWQsIG1vZGlmaWVkXTogW2Jvb2xlYW4sIGJvb2xlYW5dKSA9PiAoeyB2YWxpZCwgbW9kaWZpZWQsIGV2ZW50IH0pKVxuICAgICAgICApO1xuICAgICAgfSlcbiAgICApLnN1YnNjcmliZSgoeyB2YWxpZCwgbW9kaWZpZWQsIGV2ZW50IH0pID0+IHtcblxuICAgICAgLy8gVXBkYXRlIE1vZGlmaWVkIFN0YXRlXG4gICAgICB0aGlzLnNvdXJjZS5zZXRJc01vZGlmaWVkKG1vZGlmaWVkKTtcblxuICAgICAgLy8gRGlzYWJsZSBpZiB0aGUgZm9ybSBpcyBub3QgeWV0IGNvbXBsZXRlL3ZhbGlkLlxuICAgICAgdGhpcy5zb3VyY2UuZW5hYmxlKEFQUF9BQ1RJT05fRk9STV9ESVNBQkxFRF9LRVksIHZhbGlkKTtcbiAgICB9KTtcblxuICAgIC8vIFRPRE86IFdhdGNoIHRoZSB3b3JraW5nIHN0YXRlIGFuZCBzdG9wIGFsbG93aW5nIGlucHV0IG9uIHdvcmtpbmcuLj9cbiAgICAvLyBUT0RPOiBXYXRjaCB0aGUgZGlzYWJsZWQgc3RhdGUgZm9yIHdoZW4gYW5vdGhlciBkaXNhYmxlZCBrZXkgZGlzYWJsZXMgdGhpcyBmb3JtLlxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zb3VyY2UuZW5hYmxlKEFQUF9BQ1RJT05fRk9STV9ESVNBQkxFRF9LRVkpO1xuICAgIHRoaXMubG9ja1NldC5kZXN0cm95T25OZXh0VW5sb2NrKCgpID0+IHtcbiAgICAgIHRoaXMuX3RyaWdnZXJlZFN1Yi5kZXN0cm95KCk7XG4gICAgICB0aGlzLl9pc0NvbXBsZXRlU3ViLmRlc3Ryb3koKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwcmVDaGVja1JlYWR5VmFsdWUodmFsdWU6IFQpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICBsZXQgdmFsaWRhdG9yT2JzOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gKHRoaXMuYXBwQWN0aW9uRm9ybVZhbGlkYXRvcikgPyB0aGlzLmFwcEFjdGlvbkZvcm1WYWxpZGF0b3IodmFsdWUpIDogb2YodHJ1ZSk7XG4gICAgbGV0IG1vZGlmaWVkT2JzOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gKHRoaXMuYXBwQWN0aW9uRm9ybU1vZGlmaWVkKSA/IHRoaXMuYXBwQWN0aW9uRm9ybU1vZGlmaWVkKHZhbHVlKSA6IG9mKHRydWUpO1xuXG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdmFsaWRhdG9yT2JzLFxuICAgICAgbW9kaWZpZWRPYnNcbiAgICBdKS5waXBlKFxuICAgICAgZmlyc3QoKSxcbiAgICAgIG1hcCgoW3ZhbGlkLCBtb2RpZmllZF06IFtib29sZWFuLCBib29sZWFuXSkgPT4gdmFsaWQgJiYgbW9kaWZpZWQpXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZWFkeVZhbHVlKHZhbHVlOiBUKTogT2JzZXJ2YWJsZTxEYnhBY3Rpb25Gb3JtVHJpZ2dlclJlc3VsdD4ge1xuICAgIHJldHVybiBvZih7IHZhbHVlIH0pO1xuICB9XG5cbn1cbiJdfQ==
@@ -0,0 +1,30 @@
1
+ import { MatDialogModule } from '@angular/material/dialog';
2
+ import { NgModule } from '@angular/core';
3
+ import { CommonModule } from '@angular/common';
4
+ import { DbxActionFormDirective } from './form.action.directive';
5
+ import * as i0 from "@angular/core";
6
+ export class DbxFormlyActionModule {
7
+ }
8
+ DbxFormlyActionModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbxFormlyActionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ DbxFormlyActionModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbxFormlyActionModule, declarations: [DbxActionFormDirective], imports: [CommonModule,
10
+ MatDialogModule], exports: [DbxActionFormDirective] });
11
+ DbxFormlyActionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbxFormlyActionModule, imports: [[
12
+ CommonModule,
13
+ MatDialogModule
14
+ ]] });
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbxFormlyActionModule, decorators: [{
16
+ type: NgModule,
17
+ args: [{
18
+ imports: [
19
+ CommonModule,
20
+ MatDialogModule
21
+ ],
22
+ declarations: [
23
+ DbxActionFormDirective
24
+ ],
25
+ exports: [
26
+ DbxActionFormDirective
27
+ ]
28
+ }]
29
+ }] });
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5hY3Rpb24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZvcm0vc3JjL2xpYi9mb3JtL2FjdGlvbi9mb3JtLmFjdGlvbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQWNqRSxNQUFNLE9BQU8scUJBQXFCOztrSEFBckIscUJBQXFCO21IQUFyQixxQkFBcUIsaUJBTjlCLHNCQUFzQixhQUp0QixZQUFZO1FBQ1osZUFBZSxhQU1mLHNCQUFzQjttSEFHYixxQkFBcUIsWUFYdkI7WUFDUCxZQUFZO1lBQ1osZUFBZTtTQUNoQjsyRkFRVSxxQkFBcUI7a0JBWmpDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osZUFBZTtxQkFDaEI7b0JBQ0QsWUFBWSxFQUFFO3dCQUNaLHNCQUFzQjtxQkFDdkI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLHNCQUFzQjtxQkFDdkI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNYXREaWFsb2dNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBEYnhBY3Rpb25Gb3JtRGlyZWN0aXZlIH0gZnJvbSAnLi9mb3JtLmFjdGlvbi5kaXJlY3RpdmUnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE1hdERpYWxvZ01vZHVsZVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBEYnhBY3Rpb25Gb3JtRGlyZWN0aXZlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBEYnhBY3Rpb25Gb3JtRGlyZWN0aXZlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRGJ4Rm9ybWx5QWN0aW9uTW9kdWxlIHsgfVxuIl19
@@ -0,0 +1,3 @@
1
+ export * from './form.action.module';
2
+ export * from './form.action.directive';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9zcmMvbGliL2Zvcm0vYWN0aW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZm9ybS5hY3Rpb24ubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vZm9ybS5hY3Rpb24uZGlyZWN0aXZlJztcbiJdfQ==
@@ -0,0 +1,33 @@
1
+ import { Directive, EventEmitter, Host, Output } from '@angular/core';
2
+ import { AbstractSubscriptionDirective } from '@dereekb/dbx-core';
3
+ import { DbxForm } from './form';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "./form";
6
+ /**
7
+ * Used to see form value changes.
8
+ */
9
+ export class DbxFormValueChangesDirective extends AbstractSubscriptionDirective {
10
+ constructor(form) {
11
+ super();
12
+ this.form = form;
13
+ this.dbxFormValueChange = new EventEmitter();
14
+ }
15
+ ngOnInit() {
16
+ this.sub = this.form.stream$.subscribe((x) => {
17
+ this.dbxFormValueChange.next(this.form.value);
18
+ });
19
+ }
20
+ }
21
+ DbxFormValueChangesDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbxFormValueChangesDirective, deps: [{ token: i1.DbxForm, host: true }], target: i0.ɵɵFactoryTarget.Directive });
22
+ DbxFormValueChangesDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: DbxFormValueChangesDirective, selector: "[dbxFormValueChange]", outputs: { dbxFormValueChange: "dbxFormValueChange" }, usesInheritance: true, ngImport: i0 });
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbxFormValueChangesDirective, decorators: [{
24
+ type: Directive,
25
+ args: [{
26
+ selector: '[dbxFormValueChange]'
27
+ }]
28
+ }], ctorParameters: function () { return [{ type: i1.DbxForm, decorators: [{
29
+ type: Host
30
+ }] }]; }, propDecorators: { dbxFormValueChange: [{
31
+ type: Output
32
+ }] } });
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jaGFuZ2VzLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1mb3JtL3NyYy9saWIvZm9ybS9mb3JtLmNoYW5nZXMuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDOUUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFFBQVEsQ0FBQzs7O0FBRWpDOztHQUVHO0FBSUgsTUFBTSxPQUFPLDRCQUFxRCxTQUFRLDZCQUE2QjtJQUtyRyxZQUFvQyxJQUFhO1FBQy9DLEtBQUssRUFBRSxDQUFDO1FBRDBCLFNBQUksR0FBSixJQUFJLENBQVM7UUFGeEMsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQUssQ0FBQztJQUlwRCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDM0MsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7eUhBYlUsNEJBQTRCOzZHQUE1Qiw0QkFBNEI7MkZBQTVCLDRCQUE0QjtrQkFIeEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsc0JBQXNCO2lCQUNqQzs7MEJBTWMsSUFBSTs0Q0FGUixrQkFBa0I7c0JBRDFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSG9zdCwgT3V0cHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0U3Vic2NyaXB0aW9uRGlyZWN0aXZlIH0gZnJvbSAnQGRlcmVla2IvZGJ4LWNvcmUnO1xuaW1wb3J0IHsgRGJ4Rm9ybSB9IGZyb20gJy4vZm9ybSc7XG5cbi8qKlxuICogVXNlZCB0byBzZWUgZm9ybSB2YWx1ZSBjaGFuZ2VzLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZGJ4Rm9ybVZhbHVlQ2hhbmdlXSdcbn0pXG5leHBvcnQgY2xhc3MgRGJ4Rm9ybVZhbHVlQ2hhbmdlc0RpcmVjdGl2ZTxUIGV4dGVuZHMgb2JqZWN0ID0gYW55PiBleHRlbmRzIEFic3RyYWN0U3Vic2NyaXB0aW9uRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgZGJ4Rm9ybVZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUPigpO1xuXG4gIGNvbnN0cnVjdG9yKEBIb3N0KCkgcHVibGljIHJlYWRvbmx5IGZvcm06IERieEZvcm0pIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdWIgPSB0aGlzLmZvcm0uc3RyZWFtJC5zdWJzY3JpYmUoKHgpID0+IHtcbiAgICAgIHRoaXMuZGJ4Rm9ybVZhbHVlQ2hhbmdlLm5leHQodGhpcy5mb3JtLnZhbHVlKTtcbiAgICB9KTtcbiAgfVxuXG59XG4iXX0=
@@ -0,0 +1,49 @@
1
+ import { Observable, combineLatest } from 'rxjs';
2
+ import { Directive, Host, Input } from '@angular/core';
3
+ import { AbstractSubscriptionDirective } from '@dereekb/dbx-core';
4
+ import { DbxForm, DbxFormState } from '../form/form';
5
+ import { distinctUntilChanged, filter, first, map } from 'rxjs/operators';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../form/form";
8
+ /**
9
+ * Used with a FormComponent to set the value based on the input value.
10
+ */
11
+ export class DbxFormSourceDirective extends AbstractSubscriptionDirective {
12
+ constructor(form) {
13
+ super();
14
+ this.form = form;
15
+ }
16
+ /**
17
+ * Sets a LoadingContext that is watched for the loading state.
18
+ */
19
+ set obs(obs) {
20
+ this._setObs(obs);
21
+ }
22
+ _setObs(obs) {
23
+ let subscription;
24
+ if (obs) {
25
+ subscription = combineLatest([
26
+ // Emit the first time initializing isn't there.
27
+ this.form.stream$.pipe(filter((x) => x.state !== DbxFormState.INITIALIZING), first()),
28
+ obs
29
+ ]).pipe(map((x) => x[1]), distinctUntilChanged((x, y) => x === y)).subscribe((x) => {
30
+ this.form.setValue(x);
31
+ });
32
+ }
33
+ this.sub = subscription;
34
+ }
35
+ }
36
+ DbxFormSourceDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbxFormSourceDirective, deps: [{ token: i1.DbxForm, host: true }], target: i0.ɵɵFactoryTarget.Directive });
37
+ DbxFormSourceDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: DbxFormSourceDirective, selector: "[dbxFormSource]", inputs: { obs: ["dbxFormSource", "obs"] }, usesInheritance: true, ngImport: i0 });
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbxFormSourceDirective, decorators: [{
39
+ type: Directive,
40
+ args: [{
41
+ selector: '[dbxFormSource]'
42
+ }]
43
+ }], ctorParameters: function () { return [{ type: i1.DbxForm, decorators: [{
44
+ type: Host
45
+ }] }]; }, propDecorators: { obs: [{
46
+ type: Input,
47
+ args: ['dbxFormSource']
48
+ }] } });
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5pbnB1dC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9zcmMvbGliL2Zvcm0vZm9ybS5pbnB1dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3JELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFFMUU7O0dBRUc7QUFJSCxNQUFNLE9BQU8sc0JBQStDLFNBQVEsNkJBQTZCO0lBRS9GLFlBQW9DLElBQWE7UUFDL0MsS0FBSyxFQUFFLENBQUM7UUFEMEIsU0FBSSxHQUFKLElBQUksQ0FBUztJQUVqRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUNJLEdBQUcsQ0FBQyxHQUFrQjtRQUN4QixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFFTyxPQUFPLENBQUMsR0FBa0I7UUFDaEMsSUFBSSxZQUFZLENBQUM7UUFFakIsSUFBSSxHQUFHLEVBQUU7WUFDUCxZQUFZLEdBQUcsYUFBYSxDQUFDO2dCQUMzQixnREFBZ0Q7Z0JBQ2hELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDcEIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLFlBQVksQ0FBQyxZQUFZLENBQUMsRUFDcEQsS0FBSyxFQUFFLENBQ1I7Z0JBQ0QsR0FBRzthQUNKLENBQUMsQ0FBQyxJQUFJLENBQ0wsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDaEIsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQ3hDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3hCLENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFFRCxJQUFJLENBQUMsR0FBRyxHQUFHLFlBQVksQ0FBQztJQUMxQixDQUFDOzttSEFsQ1Usc0JBQXNCO3VHQUF0QixzQkFBc0I7MkZBQXRCLHNCQUFzQjtrQkFIbEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2lCQUM1Qjs7MEJBR2MsSUFBSTs0Q0FRYixHQUFHO3NCQUROLEtBQUs7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIGNvbWJpbmVMYXRlc3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0U3Vic2NyaXB0aW9uRGlyZWN0aXZlIH0gZnJvbSAnQGRlcmVla2IvZGJ4LWNvcmUnO1xuaW1wb3J0IHsgRGJ4Rm9ybSwgRGJ4Rm9ybVN0YXRlIH0gZnJvbSAnLi4vZm9ybS9mb3JtJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIGZpcnN0LCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbi8qKlxuICogVXNlZCB3aXRoIGEgRm9ybUNvbXBvbmVudCB0byBzZXQgdGhlIHZhbHVlIGJhc2VkIG9uIHRoZSBpbnB1dCB2YWx1ZS5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2RieEZvcm1Tb3VyY2VdJ1xufSlcbmV4cG9ydCBjbGFzcyBEYnhGb3JtU291cmNlRGlyZWN0aXZlPFQgZXh0ZW5kcyBvYmplY3QgPSBhbnk+IGV4dGVuZHMgQWJzdHJhY3RTdWJzY3JpcHRpb25EaXJlY3RpdmUge1xuXG4gIGNvbnN0cnVjdG9yKEBIb3N0KCkgcHVibGljIHJlYWRvbmx5IGZvcm06IERieEZvcm0pIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgYSBMb2FkaW5nQ29udGV4dCB0aGF0IGlzIHdhdGNoZWQgZm9yIHRoZSBsb2FkaW5nIHN0YXRlLlxuICAgKi9cbiAgQElucHV0KCdkYnhGb3JtU291cmNlJylcbiAgc2V0IG9icyhvYnM6IE9ic2VydmFibGU8VD4pIHtcbiAgICB0aGlzLl9zZXRPYnMob2JzKTtcbiAgfVxuXG4gIHByaXZhdGUgX3NldE9icyhvYnM6IE9ic2VydmFibGU8VD4pOiB2b2lkIHtcbiAgICBsZXQgc3Vic2NyaXB0aW9uO1xuXG4gICAgaWYgKG9icykge1xuICAgICAgc3Vic2NyaXB0aW9uID0gY29tYmluZUxhdGVzdChbXG4gICAgICAgIC8vIEVtaXQgdGhlIGZpcnN0IHRpbWUgaW5pdGlhbGl6aW5nIGlzbid0IHRoZXJlLlxuICAgICAgICB0aGlzLmZvcm0uc3RyZWFtJC5waXBlKFxuICAgICAgICAgIGZpbHRlcigoeCkgPT4geC5zdGF0ZSAhPT0gRGJ4Rm9ybVN0YXRlLklOSVRJQUxJWklORyksXG4gICAgICAgICAgZmlyc3QoKVxuICAgICAgICApLFxuICAgICAgICBvYnNcbiAgICAgIF0pLnBpcGUoXG4gICAgICAgIG1hcCgoeCkgPT4geFsxXSksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCh4LCB5KSA9PiB4ID09PSB5KSxcbiAgICAgICkuc3Vic2NyaWJlKCh4KSA9PiB7XG4gICAgICAgIHRoaXMuZm9ybS5zZXRWYWx1ZSh4KTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMuc3ViID0gc3Vic2NyaXB0aW9uO1xuICB9XG5cbn1cbiJdfQ==
@@ -0,0 +1,20 @@
1
+ import { forwardRef } from '@angular/core';
2
+ /**
3
+ * Current state of a DbxForm
4
+ */
5
+ export var DbxFormState;
6
+ (function (DbxFormState) {
7
+ DbxFormState[DbxFormState["INITIALIZING"] = -1] = "INITIALIZING";
8
+ DbxFormState[DbxFormState["INCOMPLETE"] = 0] = "INCOMPLETE";
9
+ DbxFormState[DbxFormState["COMPLETE"] = 1] = "COMPLETE";
10
+ DbxFormState[DbxFormState["RESET"] = 2] = "RESET";
11
+ })(DbxFormState || (DbxFormState = {}));
12
+ /**
13
+ * Form that has an event stream, value, and state items.
14
+ */
15
+ export class DbxForm {
16
+ }
17
+ export function ProvideDbxForm(sourceType) {
18
+ return [{ provide: DbxForm, useExisting: forwardRef(() => sourceType) }];
19
+ }
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1mb3JtL3NyYy9saWIvZm9ybS9mb3JtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWtCLE1BQU0sZUFBZSxDQUFDO0FBSTNEOztHQUVHO0FBQ0gsTUFBTSxDQUFOLElBQVksWUFLWDtBQUxELFdBQVksWUFBWTtJQUN0QixnRUFBaUIsQ0FBQTtJQUNqQiwyREFBYyxDQUFBO0lBQ2QsdURBQVksQ0FBQTtJQUNaLGlEQUFTLENBQUE7QUFDWCxDQUFDLEVBTFcsWUFBWSxLQUFaLFlBQVksUUFLdkI7QUFjRDs7R0FFRztBQUNILE1BQU0sT0FBZ0IsT0FBTztDQWU1QjtBQVdELE1BQU0sVUFBVSxjQUFjLENBQW9CLFVBQW1CO0lBQ25FLE9BQU8sQ0FBQyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDM0UsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZvcndhcmRSZWYsIFByb3ZpZGVyLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBMb2NrU2V0IH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5cbi8qKlxuICogQ3VycmVudCBzdGF0ZSBvZiBhIERieEZvcm1cbiAqL1xuZXhwb3J0IGVudW0gRGJ4Rm9ybVN0YXRlIHtcbiAgSU5JVElBTElaSU5HID0gLTEsXG4gIElOQ09NUExFVEUgPSAwLFxuICBDT01QTEVURSA9IDEsXG4gIFJFU0VUID0gMlxufVxuXG4vKipcbiAqIERieEZvcm0gc3RyZWFtIGV2ZW50XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4Rm9ybUV2ZW50IHtcbiAgcmVhZG9ubHkgaXNDb21wbGV0ZTogYm9vbGVhbjtcbiAgcmVhZG9ubHkgc3RhdGU6IERieEZvcm1TdGF0ZTtcbiAgcmVhZG9ubHkgcHJpc3RpbmU/OiBib29sZWFuO1xuICByZWFkb25seSB1bnRvdWNoZWQ/OiBib29sZWFuO1xuICByZWFkb25seSBsYXN0UmVzZXRBdD86IERhdGU7XG4gIHJlYWRvbmx5IGNoYW5nZXNDb3VudD86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBGb3JtIHRoYXQgaGFzIGFuIGV2ZW50IHN0cmVhbSwgdmFsdWUsIGFuZCBzdGF0ZSBpdGVtcy5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIERieEZvcm0ge1xuICAvKipcbiAgICogTG9ja1NldCBmb3IgdGhlIGZvcm0uXG4gICAqL1xuICBhYnN0cmFjdCByZWFkb25seSBsb2NrU2V0OiBMb2NrU2V0O1xuICAvKipcbiAgICogVHJ1ZSBpZiB0aGUgZm9ybSBpcyBjb21wbGV0ZS92YWxpZC5cbiAgICovXG4gIGFic3RyYWN0IHJlYWRvbmx5IGlzQ29tcGxldGU6IGJvb2xlYW47XG4gIGFic3RyYWN0IHJlYWRvbmx5IHN0YXRlOiBEYnhGb3JtU3RhdGU7XG4gIGFic3RyYWN0IHJlYWRvbmx5IHN0cmVhbSQ6IE9ic2VydmFibGU8RGJ4Rm9ybUV2ZW50PjtcbiAgYWJzdHJhY3QgcmVhZG9ubHkgdmFsdWU6IGFueTtcbiAgYWJzdHJhY3Qgc2V0VmFsdWUodmFsdWU6IGFueSk6IHZvaWQ7XG4gIGFic3RyYWN0IHJlc2V0Rm9ybSgpOiB2b2lkO1xuICBhYnN0cmFjdCBmb3JjZUZvcm1VcGRhdGUoKTogdm9pZDtcbn1cblxuLyoqXG4gKiBBIHR5cGVkIERieEZvcm1cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUeXBlZERieEZvcm08VD4gZXh0ZW5kcyBEYnhGb3JtIHtcbiAgcmVhZG9ubHkgdmFsdWU6IFQ7XG4gIHNldFZhbHVlKHZhbHVlOiBUKTogdm9pZDtcbiAgcmVzZXRGb3JtKCk6IHZvaWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBQcm92aWRlRGJ4Rm9ybTxTIGV4dGVuZHMgRGJ4Rm9ybT4oc291cmNlVHlwZTogVHlwZTxTPik6IFByb3ZpZGVyW10ge1xuICByZXR1cm4gW3sgcHJvdmlkZTogRGJ4Rm9ybSwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gc291cmNlVHlwZSkgfV07XG59XG4iXX0=
@@ -0,0 +1,36 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { DbxFormValueChangesDirective } from './form.changes.directive';
4
+ import { DbxFormSourceDirective } from './form.input.directive';
5
+ import { DbxFormLoadingPairSourceDirective } from './loading/form.loading.directive';
6
+ import * as i0 from "@angular/core";
7
+ export class DbxFormModule {
8
+ }
9
+ DbxFormModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbxFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
+ DbxFormModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbxFormModule, declarations: [DbxFormSourceDirective,
11
+ DbxFormValueChangesDirective,
12
+ DbxFormLoadingPairSourceDirective], imports: [CommonModule], exports: [DbxFormSourceDirective,
13
+ DbxFormValueChangesDirective,
14
+ DbxFormLoadingPairSourceDirective] });
15
+ DbxFormModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbxFormModule, imports: [[
16
+ CommonModule
17
+ ]] });
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbxFormModule, decorators: [{
19
+ type: NgModule,
20
+ args: [{
21
+ imports: [
22
+ CommonModule
23
+ ],
24
+ declarations: [
25
+ DbxFormSourceDirective,
26
+ DbxFormValueChangesDirective,
27
+ DbxFormLoadingPairSourceDirective
28
+ ],
29
+ exports: [
30
+ DbxFormSourceDirective,
31
+ DbxFormValueChangesDirective,
32
+ DbxFormLoadingPairSourceDirective
33
+ ]
34
+ }]
35
+ }] });
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9zcmMvbGliL2Zvcm0vZm9ybS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDeEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7O0FBaUJyRixNQUFNLE9BQU8sYUFBYTs7MEdBQWIsYUFBYTsyR0FBYixhQUFhLGlCQVZ0QixzQkFBc0I7UUFDdEIsNEJBQTRCO1FBQzVCLGlDQUFpQyxhQUxqQyxZQUFZLGFBUVosc0JBQXNCO1FBQ3RCLDRCQUE0QjtRQUM1QixpQ0FBaUM7MkdBR3hCLGFBQWEsWUFkZjtZQUNQLFlBQVk7U0FDYjsyRkFZVSxhQUFhO2tCQWZ6QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3FCQUNiO29CQUNELFlBQVksRUFBRTt3QkFDWixzQkFBc0I7d0JBQ3RCLDRCQUE0Qjt3QkFDNUIsaUNBQWlDO3FCQUNsQztvQkFDRCxPQUFPLEVBQUU7d0JBQ1Asc0JBQXNCO3dCQUN0Qiw0QkFBNEI7d0JBQzVCLGlDQUFpQztxQkFDbEM7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERieEZvcm1WYWx1ZUNoYW5nZXNEaXJlY3RpdmUgfSBmcm9tICcuL2Zvcm0uY2hhbmdlcy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRGJ4Rm9ybVNvdXJjZURpcmVjdGl2ZSB9IGZyb20gJy4vZm9ybS5pbnB1dC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRGJ4Rm9ybUxvYWRpbmdQYWlyU291cmNlRGlyZWN0aXZlIH0gZnJvbSAnLi9sb2FkaW5nL2Zvcm0ubG9hZGluZy5kaXJlY3RpdmUnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIERieEZvcm1Tb3VyY2VEaXJlY3RpdmUsXG4gICAgRGJ4Rm9ybVZhbHVlQ2hhbmdlc0RpcmVjdGl2ZSxcbiAgICBEYnhGb3JtTG9hZGluZ1BhaXJTb3VyY2VEaXJlY3RpdmVcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIERieEZvcm1Tb3VyY2VEaXJlY3RpdmUsXG4gICAgRGJ4Rm9ybVZhbHVlQ2hhbmdlc0RpcmVjdGl2ZSxcbiAgICBEYnhGb3JtTG9hZGluZ1BhaXJTb3VyY2VEaXJlY3RpdmVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBEYnhGb3JtTW9kdWxlIHsgfVxuIl19
@@ -0,0 +1,7 @@
1
+ export * from './action';
2
+ export * from './loading';
3
+ export * from './form.changes.directive';
4
+ export * from './form.input.directive';
5
+ export * from './form.module';
6
+ export * from './form';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9zcmMvbGliL2Zvcm0vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9sb2FkaW5nJztcbmV4cG9ydCAqIGZyb20gJy4vZm9ybS5jaGFuZ2VzLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2Zvcm0uaW5wdXQuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZm9ybS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtJztcbiJdfQ==
@@ -0,0 +1,52 @@
1
+ import { Observable, combineLatest } from 'rxjs';
2
+ import { Directive, Host, Input } from '@angular/core';
3
+ import { AbstractSubscriptionDirective } from '@dereekb/dbx-core';
4
+ import { DbxForm, DbxFormState } from '../../form/form';
5
+ import { distinctUntilChanged, filter, first, map } from 'rxjs/operators';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../../form/form";
8
+ /**
9
+ * Used with a FormComponent to set the value from a LoadingState when the value is available.
10
+ */
11
+ export class DbxFormLoadingPairSourceDirective extends AbstractSubscriptionDirective {
12
+ constructor(form) {
13
+ super();
14
+ this.form = form;
15
+ }
16
+ /**
17
+ * Sets a LoadingContext that is watched for the loading state.
18
+ */
19
+ set obs(obs) {
20
+ this._setObs(obs);
21
+ }
22
+ _setObs(obs) {
23
+ let subscription;
24
+ if (obs) {
25
+ subscription = combineLatest([
26
+ // Emit the first time initializing isn't there.
27
+ this.form.stream$.pipe(filter((x) => x.state !== DbxFormState.INITIALIZING), first()),
28
+ obs
29
+ ]).pipe(map((x) => x[1]), filter((x) => Boolean(x)), distinctUntilChanged((x, y) => x.value === y.value)).subscribe((x) => {
30
+ if (!x.error && !x.loading) {
31
+ // console.log('Setting value: ', x.model);
32
+ this.form.setValue(x.value);
33
+ }
34
+ });
35
+ }
36
+ this.sub = subscription;
37
+ }
38
+ }
39
+ DbxFormLoadingPairSourceDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbxFormLoadingPairSourceDirective, deps: [{ token: i1.DbxForm, host: true }], target: i0.ɵɵFactoryTarget.Directive });
40
+ DbxFormLoadingPairSourceDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: DbxFormLoadingPairSourceDirective, selector: "[dbxFormLoadingPairSource]", inputs: { obs: ["dbxFormLoadingPairSource", "obs"] }, usesInheritance: true, ngImport: i0 });
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbxFormLoadingPairSourceDirective, decorators: [{
42
+ type: Directive,
43
+ args: [{
44
+ selector: '[dbxFormLoadingPairSource]'
45
+ }]
46
+ }], ctorParameters: function () { return [{ type: i1.DbxForm, decorators: [{
47
+ type: Host
48
+ }] }]; }, propDecorators: { obs: [{
49
+ type: Input,
50
+ args: ['dbxFormLoadingPairSource']
51
+ }] } });
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5sb2FkaW5nLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1mb3JtL3NyYy9saWIvZm9ybS9sb2FkaW5nL2Zvcm0ubG9hZGluZy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFeEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUUxRTs7R0FFRztBQUlILE1BQU0sT0FBTyxpQ0FBMEQsU0FBUSw2QkFBNkI7SUFFMUcsWUFBb0MsSUFBYTtRQUMvQyxLQUFLLEVBQUUsQ0FBQztRQUQwQixTQUFJLEdBQUosSUFBSSxDQUFTO0lBRWpELENBQUM7SUFFRDs7T0FFRztJQUNILElBQ0ksR0FBRyxDQUFDLEdBQWdDO1FBQ3RDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDcEIsQ0FBQztJQUVPLE9BQU8sQ0FBQyxHQUFnQztRQUM5QyxJQUFJLFlBQVksQ0FBQztRQUVqQixJQUFJLEdBQUcsRUFBRTtZQUNQLFlBQVksR0FBRyxhQUFhLENBQUM7Z0JBQzNCLGdEQUFnRDtnQkFDaEQsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUNwQixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssWUFBWSxDQUFDLFlBQVksQ0FBQyxFQUNwRCxLQUFLLEVBQUUsQ0FDUjtnQkFDRCxHQUFHO2FBQ0osQ0FBQyxDQUFDLElBQUksQ0FDTCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUNoQixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUN6QixvQkFBb0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUNwRCxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNoQixJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUU7b0JBQzFCLDJDQUEyQztvQkFDM0MsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUM3QjtZQUNILENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFFRCxJQUFJLENBQUMsR0FBRyxHQUFHLFlBQVksQ0FBQztJQUMxQixDQUFDOzs4SEF0Q1UsaUNBQWlDO2tIQUFqQyxpQ0FBaUM7MkZBQWpDLGlDQUFpQztrQkFIN0MsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsNEJBQTRCO2lCQUN2Qzs7MEJBR2MsSUFBSTs0Q0FRYixHQUFHO3NCQUROLEtBQUs7dUJBQUMsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSwgY29tYmluZUxhdGVzdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RTdWJzY3JpcHRpb25EaXJlY3RpdmUgfSBmcm9tICdAZGVyZWVrYi9kYngtY29yZSc7XG5pbXBvcnQgeyBEYnhGb3JtLCBEYnhGb3JtU3RhdGUgfSBmcm9tICcuLi8uLi9mb3JtL2Zvcm0nO1xuaW1wb3J0IHsgTG9hZGluZ1N0YXRlIH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBmaXJzdCwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG4vKipcbiAqIFVzZWQgd2l0aCBhIEZvcm1Db21wb25lbnQgdG8gc2V0IHRoZSB2YWx1ZSBmcm9tIGEgTG9hZGluZ1N0YXRlIHdoZW4gdGhlIHZhbHVlIGlzIGF2YWlsYWJsZS5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2RieEZvcm1Mb2FkaW5nUGFpclNvdXJjZV0nXG59KVxuZXhwb3J0IGNsYXNzIERieEZvcm1Mb2FkaW5nUGFpclNvdXJjZURpcmVjdGl2ZTxUIGV4dGVuZHMgb2JqZWN0ID0gYW55PiBleHRlbmRzIEFic3RyYWN0U3Vic2NyaXB0aW9uRGlyZWN0aXZlIHtcblxuICBjb25zdHJ1Y3RvcihASG9zdCgpIHB1YmxpYyByZWFkb25seSBmb3JtOiBEYnhGb3JtKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIGEgTG9hZGluZ0NvbnRleHQgdGhhdCBpcyB3YXRjaGVkIGZvciB0aGUgbG9hZGluZyBzdGF0ZS5cbiAgICovXG4gIEBJbnB1dCgnZGJ4Rm9ybUxvYWRpbmdQYWlyU291cmNlJylcbiAgc2V0IG9icyhvYnM6IE9ic2VydmFibGU8TG9hZGluZ1N0YXRlPFQ+Pikge1xuICAgIHRoaXMuX3NldE9icyhvYnMpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0T2JzKG9iczogT2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGU8VD4+KTogdm9pZCB7XG4gICAgbGV0IHN1YnNjcmlwdGlvbjtcblxuICAgIGlmIChvYnMpIHtcbiAgICAgIHN1YnNjcmlwdGlvbiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAvLyBFbWl0IHRoZSBmaXJzdCB0aW1lIGluaXRpYWxpemluZyBpc24ndCB0aGVyZS5cbiAgICAgICAgdGhpcy5mb3JtLnN0cmVhbSQucGlwZShcbiAgICAgICAgICBmaWx0ZXIoKHgpID0+IHguc3RhdGUgIT09IERieEZvcm1TdGF0ZS5JTklUSUFMSVpJTkcpLFxuICAgICAgICAgIGZpcnN0KClcbiAgICAgICAgKSxcbiAgICAgICAgb2JzXG4gICAgICBdKS5waXBlKFxuICAgICAgICBtYXAoKHgpID0+IHhbMV0pLFxuICAgICAgICBmaWx0ZXIoKHgpID0+IEJvb2xlYW4oeCkpLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgoeCwgeSkgPT4geC52YWx1ZSA9PT0geS52YWx1ZSksXG4gICAgICApLnN1YnNjcmliZSgoeCkgPT4ge1xuICAgICAgICBpZiAoIXguZXJyb3IgJiYgIXgubG9hZGluZykge1xuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdTZXR0aW5nIHZhbHVlOiAnLCB4Lm1vZGVsKTtcbiAgICAgICAgICB0aGlzLmZvcm0uc2V0VmFsdWUoeC52YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMuc3ViID0gc3Vic2NyaXB0aW9uO1xuICB9XG5cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './form.loading.directive';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9zcmMvbGliL2Zvcm0vbG9hZGluZy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDBCQUEwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9mb3JtLmxvYWRpbmcuZGlyZWN0aXZlJztcbiJdfQ==
@@ -0,0 +1,91 @@
1
+ import { switchMapMaybeObs } from '@dereekb/rxjs';
2
+ import { shareReplay, distinctUntilChanged, map } from 'rxjs/operators';
3
+ import { BehaviorSubject } from 'rxjs';
4
+ import { Component, ComponentFactoryResolver, NgZone, ViewChild, ViewContainerRef } from '@angular/core';
5
+ import { FieldType } from '@ngx-formly/core';
6
+ import { DbxDefaultChecklistItemFieldDisplayComponent } from './checklist.item.field.content.default.component';
7
+ import { AbstractSubscriptionDirective } from '@dereekb/dbx-core';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@angular/material/checkbox";
10
+ import * as i2 from "@dereekb/dbx-web";
11
+ import * as i3 from "@angular/material/icon";
12
+ import * as i4 from "@angular/forms";
13
+ import * as i5 from "@angular/common";
14
+ import * as i6 from "@angular/material/core";
15
+ export class DbxChecklistItemFieldComponent extends FieldType {
16
+ constructor() {
17
+ super(...arguments);
18
+ this._displayContent = new BehaviorSubject(undefined);
19
+ this.displayContent$ = this._displayContent.pipe(switchMapMaybeObs(), distinctUntilChanged(), shareReplay(1));
20
+ this.anchor$ = this.displayContent$.pipe(map(x => x.anchor), shareReplay(1));
21
+ this.rippleDisabled$ = this.displayContent$.pipe(map(x => x.ripple === false || (x.ripple !== true && !x.anchor)), distinctUntilChanged(), shareReplay(1));
22
+ }
23
+ get formGroup() {
24
+ return this.form;
25
+ }
26
+ get checkboxFieldKey() {
27
+ return this.key;
28
+ }
29
+ get label() {
30
+ return this.field.templateOptions?.label;
31
+ }
32
+ get description() {
33
+ return this.field.templateOptions?.description;
34
+ }
35
+ get required() {
36
+ return this.field.templateOptions?.required;
37
+ }
38
+ get errors() {
39
+ return this.field.formControl?.errors;
40
+ }
41
+ get componentClass() {
42
+ return this.field.componentClass ?? DbxDefaultChecklistItemFieldDisplayComponent;
43
+ }
44
+ ngOnInit() {
45
+ this._displayContent.next(this.field.displayContentObs);
46
+ }
47
+ ngOnDestroy() {
48
+ this._displayContent.complete();
49
+ }
50
+ }
51
+ DbxChecklistItemFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbxChecklistItemFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
52
+ DbxChecklistItemFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.0", type: DbxChecklistItemFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-checklist-item-wrapper\" [formGroup]=\"formGroup\">\n <div *ngIf=\"label\" class=\"dbx-checklist-item-label\">{{ label }}</div>\n <div class=\"dbx-checklist-item\">\n <div class=\"dbx-checklist-item-check\">\n <mat-checkbox [formControlName]=\"checkboxFieldKey\"></mat-checkbox>\n </div>\n <div class=\"dbx-checklist-item-content-wrapper\">\n <dbx-anchor [block]=\"true\" [anchor]=\"anchor$ | async\">\n <div class=\"dbx-checklist-item-content\" matRipple [matRippleDisabled]=\"(rippleDisabled$ | async) ?? false\">\n <dbx-checklist-item-content-component></dbx-checklist-item-content-component>\n <span class=\"spacer\"></span>\n <mat-icon>navigate_next</mat-icon>\n </div>\n </dbx-anchor>\n </div>\n </div>\n <div *ngIf=\"description\" class=\"dbx-hint\">{{ description }}</div>\n</div>\n", components: [{ type: i0.forwardRef(function () { return i1.MatCheckbox; }), selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i0.forwardRef(function () { return i2.DbxAnchorComponent; }), selector: "dbx-anchor, [dbx-anchor]", inputs: ["block"] }, { type: i0.forwardRef(function () { return DbxChecklistItemContentComponent; }), selector: "dbx-checklist-item-content-component" }, { type: i0.forwardRef(function () { return i3.MatIcon; }), selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i0.forwardRef(function () { return i4.NgControlStatusGroup; }), selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i0.forwardRef(function () { return i4.FormGroupDirective; }), selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i0.forwardRef(function () { return i5.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i0.forwardRef(function () { return i4.NgControlStatus; }), selector: "[formControlName],[ngModel],[formControl]" }, { type: i0.forwardRef(function () { return i4.FormControlName; }), selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i0.forwardRef(function () { return i6.MatRipple; }), selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }], pipes: { "async": i0.forwardRef(function () { return i5.AsyncPipe; }) } });
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbxChecklistItemFieldComponent, decorators: [{
54
+ type: Component,
55
+ args: [{ template: "<div class=\"dbx-checklist-item-wrapper\" [formGroup]=\"formGroup\">\n <div *ngIf=\"label\" class=\"dbx-checklist-item-label\">{{ label }}</div>\n <div class=\"dbx-checklist-item\">\n <div class=\"dbx-checklist-item-check\">\n <mat-checkbox [formControlName]=\"checkboxFieldKey\"></mat-checkbox>\n </div>\n <div class=\"dbx-checklist-item-content-wrapper\">\n <dbx-anchor [block]=\"true\" [anchor]=\"anchor$ | async\">\n <div class=\"dbx-checklist-item-content\" matRipple [matRippleDisabled]=\"(rippleDisabled$ | async) ?? false\">\n <dbx-checklist-item-content-component></dbx-checklist-item-content-component>\n <span class=\"spacer\"></span>\n <mat-icon>navigate_next</mat-icon>\n </div>\n </dbx-anchor>\n </div>\n </div>\n <div *ngIf=\"description\" class=\"dbx-hint\">{{ description }}</div>\n</div>\n" }]
56
+ }] });
57
+ export class DbxChecklistItemContentComponent extends AbstractSubscriptionDirective {
58
+ constructor(checklistItemFieldComponent, resolver, ngZone) {
59
+ super();
60
+ this.checklistItemFieldComponent = checklistItemFieldComponent;
61
+ this.resolver = resolver;
62
+ this.ngZone = ngZone;
63
+ this.displayContent$ = this.checklistItemFieldComponent.displayContent$;
64
+ this.isLoading$ = this.checklistItemFieldComponent.displayContent$;
65
+ }
66
+ ngOnInit() {
67
+ this.contentRef.clear();
68
+ const componentClass = this.checklistItemFieldComponent.componentClass;
69
+ const componentRef = this.contentRef.createComponent(componentClass);
70
+ this.sub = this.checklistItemFieldComponent.displayContent$.subscribe((x) => {
71
+ this.ngZone.run(() => componentRef.instance.displayContent = x);
72
+ });
73
+ }
74
+ }
75
+ DbxChecklistItemContentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbxChecklistItemContentComponent, deps: [{ token: DbxChecklistItemFieldComponent }, { token: i0.ComponentFactoryResolver }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
76
+ DbxChecklistItemContentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.0", type: DbxChecklistItemContentComponent, selector: "dbx-checklist-item-content-component", viewQueries: [{ propertyName: "contentRef", first: true, predicate: ["content"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, ngImport: i0, template: `
77
+ <ng-template #content></ng-template>
78
+ `, isInline: true });
79
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DbxChecklistItemContentComponent, decorators: [{
80
+ type: Component,
81
+ args: [{
82
+ selector: 'dbx-checklist-item-content-component',
83
+ template: `
84
+ <ng-template #content></ng-template>
85
+ `
86
+ }]
87
+ }], ctorParameters: function () { return [{ type: DbxChecklistItemFieldComponent }, { type: i0.ComponentFactoryResolver }, { type: i0.NgZone }]; }, propDecorators: { contentRef: [{
88
+ type: ViewChild,
89
+ args: ['content', { static: true, read: ViewContainerRef }]
90
+ }] } });
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tsaXN0Lml0ZW0uZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZvcm0vc3JjL2xpYi9mb3JtbHkvZmllbGQvY2hlY2tsaXN0L2NoZWNrbGlzdC5pdGVtLmZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1mb3JtL3NyYy9saWIvZm9ybWx5L2ZpZWxkL2NoZWNrbGlzdC9jaGVja2xpc3QuaXRlbS5maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxvQkFBb0IsRUFBYSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFDTCxTQUFTLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxFQUEyQixTQUFTLEVBQUUsZ0JBQWdCLEVBQ2xHLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sa0JBQWtCLENBQUM7QUFFaEUsT0FBTyxFQUFFLDRDQUE0QyxFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDaEgsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7Ozs7O0FBbUJsRSxNQUFNLE9BQU8sOEJBQXdDLFNBQVEsU0FBNEM7SUFIekc7O1FBS1Usb0JBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBZ0QsU0FBUyxDQUFDLENBQUM7UUFFL0Ysb0JBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FDbEQsaUJBQWlCLEVBQUUsRUFDbkIsb0JBQW9CLEVBQUUsRUFDdEIsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNm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LGtCQVNILDhCQUE4QjtpSEFUM0QsZ0NBQWdDLDhKQUtDLGdCQUFnQixrRUFUbEQ7O0dBRVQ7MkZBRVUsZ0NBQWdDO2tCQU41QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxzQ0FBc0M7b0JBQ2hELFFBQVEsRUFBRTs7R0FFVDtpQkFDRjswREFVeUMsOEJBQThCLHNGQUh0RSxVQUFVO3NCQURULFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmaWx0ZXJNYXliZSwgc3dpdGNoTWFwTWF5YmVPYnMgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IHNoYXJlUmVwbGF5LCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgc3dpdGNoTWFwLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBOZ1pvbmUsIE9uRGVzdHJveSwgT25Jbml0LCBUeXBlLCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3JzLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGaWVsZFR5cGUsIEZvcm1seUZpZWxkQ29uZmlnIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQgeyBDaGVja2xpc3RJdGVtRmllbGREaXNwbGF5Q29tcG9uZW50LCBDaGVja2xpc3RJdGVtRmllbGREaXNwbGF5Q29udGVudE9icyB9IGZyb20gJy4vY2hlY2tsaXN0Lml0ZW0nO1xuaW1wb3J0IHsgRGJ4RGVmYXVsdENoZWNrbGlzdEl0ZW1GaWVsZERpc3BsYXlDb21wb25lbnQgfSBmcm9tICcuL2NoZWNrbGlzdC5pdGVtLmZpZWxkLmNvbnRlbnQuZGVmYXVsdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWJzdHJhY3RTdWJzY3JpcHRpb25EaXJlY3RpdmUgfSBmcm9tICdAZGVyZWVrYi9kYngtY29yZSc7XG5pbXBvcnQgeyBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERieENoZWNrbGlzdEl0ZW1GaWVsZENvbmZpZzxUID0gYW55PiB7XG4gIC8qKlxuICAgKiBPYnNlcnZhYmxlIHVzZWQgdG8gcmV0cmlldmUgY29udGVudCB0byBkaXNwbGF5IGZvciB0aGUgaXRlbS5cbiAgICovXG4gIGRpc3BsYXlDb250ZW50T2JzOiBDaGVja2xpc3RJdGVtRmllbGREaXNwbGF5Q29udGVudE9iczxUPjtcbiAgLyoqXG4gICAqIEN1c3RvbSBjb21wb25lbnQgY2xhc3MgdG8gdXNlIGJ5IGRlZmF1bHQuXG4gICAqL1xuICBjb21wb25lbnRDbGFzcz86IFR5cGU8Q2hlY2tsaXN0SXRlbUZpZWxkRGlzcGxheUNvbXBvbmVudDxUPj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hlY2tsaXN0SXRlbUZvcm1seUZpZWxkQ29uZmlnPFQgPSBhbnk+IGV4dGVuZHMgRGJ4Q2hlY2tsaXN0SXRlbUZpZWxkQ29uZmlnPFQ+LCBGb3JtbHlGaWVsZENvbmZpZyB7IH1cblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAnY2hlY2tsaXN0Lml0ZW0uZmllbGQuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIERieENoZWNrbGlzdEl0ZW1GaWVsZENvbXBvbmVudDxUID0gYW55PiBleHRlbmRzIEZpZWxkVHlwZTxDaGVja2xpc3RJdGVtRm9ybWx5RmllbGRDb25maWc8VD4+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgX2Rpc3BsYXlDb250ZW50ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXliZTxDaGVja2xpc3RJdGVtRmllbGREaXNwbGF5Q29udGVudE9iczxUPj4+KHVuZGVmaW5lZCk7XG5cbiAgcmVhZG9ubHkgZGlzcGxheUNvbnRlbnQkID0gdGhpcy5fZGlzcGxheUNvbnRlbnQucGlwZShcbiAgICBzd2l0Y2hNYXBNYXliZU9icygpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBhbmNob3IkID0gdGhpcy5kaXNwbGF5Q29udGVudCQucGlwZShcbiAgICBtYXAoeCA9PiB4LmFuY2hvciksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSByaXBwbGVEaXNhYmxlZCQgPSB0aGlzLmRpc3BsYXlDb250ZW50JC5waXBlKFxuICAgIG1hcCh4ID0+IHgucmlwcGxlID09PSBmYWxzZSB8fCAoeC5yaXBwbGUgIT09IHRydWUgJiYgIXguYW5jaG9yKSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIGdldCBmb3JtR3JvdXAoKTogRm9ybUdyb3VwIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtIGFzIEZvcm1Hcm91cDtcbiAgfVxuXG4gIGdldCBjaGVja2JveEZpZWxkS2V5KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMua2V5IGFzIHN0cmluZztcbiAgfVxuXG4gIGdldCBsYWJlbCgpOiBNYXliZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5maWVsZC50ZW1wbGF0ZU9wdGlvbnM/LmxhYmVsO1xuICB9XG5cbiAgZ2V0IGRlc2NyaXB0aW9uKCk6IE1heWJlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLmZpZWxkLnRlbXBsYXRlT3B0aW9ucz8uZGVzY3JpcHRpb247XG4gIH1cblxuICBnZXQgcmVxdWlyZWQoKTogTWF5YmU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLmZpZWxkLnRlbXBsYXRlT3B0aW9ucz8ucmVxdWlyZWQ7XG4gIH1cblxuICBnZXQgZXJyb3JzKCk6IE1heWJlPFZhbGlkYXRpb25FcnJvcnM+IHtcbiAgICByZXR1cm4gdGhpcy5maWVsZC5mb3JtQ29udHJvbD8uZXJyb3JzO1xuICB9XG5cbiAgZ2V0IGNvbXBvbmVudENsYXNzKCk6IFR5cGU8Q2hlY2tsaXN0SXRlbUZpZWxkRGlzcGxheUNvbXBvbmVudDxUPj4ge1xuICAgIHJldHVybiB0aGlzLmZpZWxkLmNvbXBvbmVudENsYXNzID8/IERieERlZmF1bHRDaGVja2xpc3RJdGVtRmllbGREaXNwbGF5Q29tcG9uZW50O1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5fZGlzcGxheUNvbnRlbnQubmV4dCh0aGlzLmZpZWxkLmRpc3BsYXlDb250ZW50T2JzKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX2Rpc3BsYXlDb250ZW50LmNvbXBsZXRlKCk7XG4gIH1cblxufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkYngtY2hlY2tsaXN0LWl0ZW0tY29udGVudC1jb21wb25lbnQnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxuZy10ZW1wbGF0ZSAjY29udGVudD48L25nLXRlbXBsYXRlPlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIERieENoZWNrbGlzdEl0ZW1Db250ZW50Q29tcG9uZW50PFQgPSBhbnk+IGV4dGVuZHMgQWJzdHJhY3RTdWJzY3JpcHRpb25EaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHJlYWRvbmx5IGRpc3BsYXlDb250ZW50JCA9IHRoaXMuY2hlY2tsaXN0SXRlbUZpZWxkQ29tcG9uZW50LmRpc3BsYXlDb250ZW50JDtcbiAgcmVhZG9ubHkgaXNMb2FkaW5nJCA9IHRoaXMuY2hlY2tsaXN0SXRlbUZpZWxkQ29tcG9uZW50LmRpc3BsYXlDb250ZW50JFxuXG4gIEBWaWV3Q2hpbGQoJ2NvbnRlbnQnLCB7IHN0YXRpYzogdHJ1ZSwgcmVhZDogVmlld0NvbnRhaW5lclJlZiB9KVxuICBjb250ZW50UmVmITogVmlld0NvbnRhaW5lclJlZjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICByZWFkb25seSBjaGVja2xpc3RJdGVtRmllbGRDb21wb25lbnQ6IERieENoZWNrbGlzdEl0ZW1GaWVsZENvbXBvbmVudDxUPixcbiAgICByZWFkb25seSByZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIHJlYWRvbmx5IG5nWm9uZTogTmdab25lXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRlbnRSZWYuY2xlYXIoKTtcbiAgICBjb25zdCBjb21wb25lbnRDbGFzcyA9IHRoaXMuY2hlY2tsaXN0SXRlbUZpZWxkQ29tcG9uZW50LmNvbXBvbmVudENsYXNzO1xuICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMuY29udGVudFJlZi5jcmVhdGVDb21wb25lbnQoY29tcG9uZW50Q2xhc3MpO1xuXG4gICAgdGhpcy5zdWIgPSB0aGlzLmNoZWNrbGlzdEl0ZW1GaWVsZENvbXBvbmVudC5kaXNwbGF5Q29udGVudCQuc3Vic2NyaWJlKCh4KSA9PiB7XG4gICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4gY29tcG9uZW50UmVmLmluc3RhbmNlLmRpc3BsYXlDb250ZW50ID0geCk7XG4gICAgfSk7XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cImRieC1jaGVja2xpc3QtaXRlbS13cmFwcGVyXCIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIj5cbiAgPGRpdiAqbmdJZj1cImxhYmVsXCIgY2xhc3M9XCJkYngtY2hlY2tsaXN0LWl0ZW0tbGFiZWxcIj57eyBsYWJlbCB9fTwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZGJ4LWNoZWNrbGlzdC1pdGVtXCI+XG4gICAgPGRpdiBjbGFzcz1cImRieC1jaGVja2xpc3QtaXRlbS1jaGVja1wiPlxuICAgICAgPG1hdC1jaGVja2JveCBbZm9ybUNvbnRyb2xOYW1lXT1cImNoZWNrYm94RmllbGRLZXlcIj48L21hdC1jaGVja2JveD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZGJ4LWNoZWNrbGlzdC1pdGVtLWNvbnRlbnQtd3JhcHBlclwiPlxuICAgICAgPGRieC1hbmNob3IgW2Jsb2NrXT1cInRydWVcIiBbYW5jaG9yXT1cImFuY2hvciQgfCBhc3luY1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGJ4LWNoZWNrbGlzdC1pdGVtLWNvbnRlbnRcIiBtYXRSaXBwbGUgW21hdFJpcHBsZURpc2FibGVkXT1cIihyaXBwbGVEaXNhYmxlZCQgfCBhc3luYykgPz8gZmFsc2VcIj5cbiAgICAgICAgICA8ZGJ4LWNoZWNrbGlzdC1pdGVtLWNvbnRlbnQtY29tcG9uZW50PjwvZGJ4LWNoZWNrbGlzdC1pdGVtLWNvbnRlbnQtY29tcG9uZW50PlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3BhY2VyXCI+PC9zcGFuPlxuICAgICAgICAgIDxtYXQtaWNvbj5uYXZpZ2F0ZV9uZXh0PC9tYXQtaWNvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2RieC1hbmNob3I+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwiZGVzY3JpcHRpb25cIiBjbGFzcz1cImRieC1oaW50XCI+e3sgZGVzY3JpcHRpb24gfX08L2Rpdj5cbjwvZGl2PlxuIl19