@dereekb/dbx-form 11.1.8 → 12.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/calendar/lib/calendar.module.d.ts +1 -14
- package/calendar/lib/calendar.schedule.selection.cell.component.d.ts +8 -5
- package/calendar/lib/calendar.schedule.selection.component.d.ts +13 -10
- package/calendar/lib/calendar.schedule.selection.d.ts +6 -6
- package/calendar/lib/calendar.schedule.selection.days.component.d.ts +1 -1
- package/calendar/lib/calendar.schedule.selection.days.form.component.d.ts +1 -1
- package/calendar/lib/calendar.schedule.selection.dialog.button.component.d.ts +4 -4
- package/calendar/lib/calendar.schedule.selection.dialog.component.d.ts +5 -5
- package/calendar/lib/calendar.schedule.selection.popover.button.component.d.ts +4 -2
- package/calendar/lib/calendar.schedule.selection.popover.component.d.ts +1 -1
- package/calendar/lib/calendar.schedule.selection.popover.content.component.d.ts +1 -1
- package/calendar/lib/calendar.schedule.selection.range.component.d.ts +19 -17
- package/calendar/lib/calendar.schedule.selection.store.d.ts +2 -2
- package/calendar/lib/calendar.schedule.selection.store.provide.d.ts +1 -1
- package/calendar/lib/calendar.schedule.selection.toggle.button.component.d.ts +8 -12
- package/calendar/lib/field/schedule/calendar.schedule.field.component.d.ts +22 -22
- package/calendar/lib/field/schedule/calendar.schedule.module.d.ts +2 -10
- package/esm2022/calendar/lib/calendar.module.mjs +19 -101
- package/esm2022/calendar/lib/calendar.schedule.selection.cell.component.mjs +27 -28
- package/esm2022/calendar/lib/calendar.schedule.selection.component.mjs +38 -55
- package/esm2022/calendar/lib/calendar.schedule.selection.days.component.mjs +17 -13
- package/esm2022/calendar/lib/calendar.schedule.selection.days.form.component.mjs +11 -12
- package/esm2022/calendar/lib/calendar.schedule.selection.dialog.button.component.mjs +18 -21
- package/esm2022/calendar/lib/calendar.schedule.selection.dialog.component.mjs +12 -9
- package/esm2022/calendar/lib/calendar.schedule.selection.mjs +3 -2
- package/esm2022/calendar/lib/calendar.schedule.selection.popover.button.component.mjs +22 -18
- package/esm2022/calendar/lib/calendar.schedule.selection.popover.component.mjs +12 -9
- package/esm2022/calendar/lib/calendar.schedule.selection.popover.content.component.mjs +13 -10
- package/esm2022/calendar/lib/calendar.schedule.selection.range.component.mjs +52 -70
- package/esm2022/calendar/lib/calendar.schedule.selection.store.mjs +5 -5
- package/esm2022/calendar/lib/calendar.schedule.selection.store.provide.mjs +9 -8
- package/esm2022/calendar/lib/calendar.schedule.selection.toggle.button.component.mjs +48 -50
- package/esm2022/calendar/lib/field/schedule/calendar.schedule.field.component.mjs +17 -14
- package/esm2022/calendar/lib/field/schedule/calendar.schedule.module.mjs +8 -40
- package/esm2022/lib/form/action/form.action.directive.mjs +58 -55
- package/esm2022/lib/form/action/form.action.module.mjs +9 -9
- package/esm2022/lib/form/action/transition/form.action.transition.module.mjs +9 -8
- package/esm2022/lib/form/action/transition/form.action.transition.safety.directive.mjs +14 -11
- package/esm2022/lib/form/form.mjs +1 -1
- package/esm2022/lib/form/form.module.mjs +4 -4
- package/esm2022/lib/form/io/form.changes.directive.mjs +11 -16
- package/esm2022/lib/form/io/form.input.directive.mjs +24 -38
- package/esm2022/lib/form/io/form.io.module.mjs +15 -9
- package/esm2022/lib/form/io/form.loading.directive.mjs +22 -42
- package/esm2022/lib/form.module.mjs +4 -4
- package/esm2022/lib/form.providers.mjs +32 -0
- package/esm2022/lib/formly/field/checklist/checklist.field.mjs +5 -5
- package/esm2022/lib/formly/field/checklist/checklist.item.field.component.mjs +51 -47
- package/esm2022/lib/formly/field/checklist/checklist.item.field.content.default.component.mjs +41 -29
- package/esm2022/lib/formly/field/checklist/checklist.item.field.mjs +3 -3
- package/esm2022/lib/formly/field/checklist/checklist.item.field.module.mjs +8 -45
- package/esm2022/lib/formly/field/checklist/checklist.item.mjs +1 -1
- package/esm2022/lib/formly/field/component/component.field.component.mjs +11 -8
- package/esm2022/lib/formly/field/component/component.field.module.mjs +8 -14
- package/esm2022/lib/formly/field/field.mjs +1 -1
- package/esm2022/lib/formly/field/form.field.module.mjs +4 -4
- package/esm2022/lib/formly/field/selection/list/list.field.component.mjs +17 -14
- package/esm2022/lib/formly/field/selection/list/list.field.module.mjs +8 -58
- package/esm2022/lib/formly/field/selection/pickable/pickable.chip.field.component.mjs +17 -13
- package/esm2022/lib/formly/field/selection/pickable/pickable.field.directive.mjs +16 -16
- package/esm2022/lib/formly/field/selection/pickable/pickable.field.module.mjs +8 -68
- package/esm2022/lib/formly/field/selection/pickable/pickable.list.field.component.mjs +71 -54
- package/esm2022/lib/formly/field/selection/pickable/pickable.util.mjs +2 -2
- package/esm2022/lib/formly/field/selection/searchable/searchable.chip.field.component.mjs +21 -16
- package/esm2022/lib/formly/field/selection/searchable/searchable.field.autocomplete.item.component.mjs +51 -49
- package/esm2022/lib/formly/field/selection/searchable/searchable.field.directive.mjs +35 -27
- package/esm2022/lib/formly/field/selection/searchable/searchable.field.mjs +1 -1
- package/esm2022/lib/formly/field/selection/searchable/searchable.field.module.mjs +8 -65
- package/esm2022/lib/formly/field/selection/searchable/searchable.mjs +1 -1
- package/esm2022/lib/formly/field/selection/searchable/searchable.text.field.component.mjs +48 -30
- package/esm2022/lib/formly/field/selection/searchable/text.chip.field.mjs +2 -2
- package/esm2022/lib/formly/field/selection/selection.field.mjs +1 -1
- package/esm2022/lib/formly/field/selection/selection.mjs +1 -1
- package/esm2022/lib/formly/field/selection/selection.module.mjs +4 -4
- package/esm2022/lib/formly/field/selection/sourceselect/sourceselect.field.component.mjs +20 -21
- package/esm2022/lib/formly/field/selection/sourceselect/sourceselect.field.module.mjs +6 -73
- package/esm2022/lib/formly/field/selection/sourceselect/sourceselect.mjs +1 -1
- package/esm2022/lib/formly/field/texteditor/texteditor.field.component.mjs +37 -22
- package/esm2022/lib/formly/field/texteditor/texteditor.field.mjs +2 -2
- package/esm2022/lib/formly/field/texteditor/texteditor.field.module.mjs +8 -33
- package/esm2022/lib/formly/field/value/array/array.field.component.mjs +72 -50
- package/esm2022/lib/formly/field/value/array/array.field.module.mjs +8 -44
- package/esm2022/lib/formly/field/value/boolean/boolean.field.mjs +2 -2
- package/esm2022/lib/formly/field/value/boolean/boolean.field.module.mjs +4 -4
- package/esm2022/lib/formly/field/value/date/date.field.module.mjs +5 -9
- package/esm2022/lib/formly/field/value/date/date.value.mjs +1 -1
- package/esm2022/lib/formly/field/value/date/datetime.field.component.mjs +8 -8
- package/esm2022/lib/formly/field/value/date/datetime.field.service.mjs +4 -4
- package/esm2022/lib/formly/field/value/date/datetime.mjs +1 -1
- package/esm2022/lib/formly/field/value/date/fixeddaterange.field.component.mjs +8 -8
- package/esm2022/lib/formly/field/value/number/number.field.mjs +1 -1
- package/esm2022/lib/formly/field/value/number/number.field.module.mjs +4 -4
- package/esm2022/lib/formly/field/value/phone/phone.field.component.mjs +4 -4
- package/esm2022/lib/formly/field/value/phone/phone.field.module.mjs +4 -4
- package/esm2022/lib/formly/field/value/text/text.address.field.mjs +1 -1
- package/esm2022/lib/formly/field/value/text/text.field.mjs +1 -1
- package/esm2022/lib/formly/field/value/text/text.field.module.mjs +4 -4
- package/esm2022/lib/formly/field/value/value.module.mjs +4 -4
- package/esm2022/lib/formly/field/wrapper/autotouch.wrapper.component.mjs +9 -7
- package/esm2022/lib/formly/field/wrapper/expand.wrapper.component.mjs +19 -24
- package/esm2022/lib/formly/field/wrapper/expand.wrapper.delegate.mjs +7 -4
- package/esm2022/lib/formly/field/wrapper/flex.wrapper.component.mjs +11 -8
- package/esm2022/lib/formly/field/wrapper/form.wrapper.module.mjs +8 -39
- package/esm2022/lib/formly/field/wrapper/index.mjs +2 -1
- package/esm2022/lib/formly/field/wrapper/info.wrapper.component.mjs +19 -16
- package/esm2022/lib/formly/field/wrapper/section.wrapper.component.mjs +11 -7
- package/esm2022/lib/formly/field/wrapper/style.wrapper.component.mjs +16 -11
- package/esm2022/lib/formly/field/wrapper/subsection.wrapper.component.mjs +11 -8
- package/esm2022/lib/formly/field/wrapper/toggle.wrapper.component.mjs +21 -17
- package/esm2022/lib/formly/field/wrapper/working.wrapper.component.mjs +11 -8
- package/esm2022/lib/formly/field/wrapper/wrapper.mjs +1 -1
- package/esm2022/lib/formly/form/form.form.module.mjs +4 -4
- package/esm2022/lib/formly/form/search.form.component.mjs +4 -4
- package/esm2022/lib/formly/formly.component.template.mjs +29 -0
- package/esm2022/lib/formly/formly.context.directive.mjs +6 -5
- package/esm2022/lib/formly/formly.context.mjs +12 -8
- package/esm2022/lib/formly/formly.directive.mjs +29 -44
- package/esm2022/lib/formly/formly.form.component.mjs +24 -18
- package/esm2022/lib/formly/formly.module.mjs +10 -14
- package/esm2022/lib/formly/index.mjs +2 -1
- package/esm2022/lib/formly/template/login.mjs +1 -1
- package/esm2022/lib/formly/template/timezone.mjs +1 -1
- package/esm2022/lib/index.mjs +2 -1
- package/esm2022/lib/layout/form.layout.module.mjs +4 -4
- package/esm2022/lib/layout/form.spacer.component.mjs +3 -3
- package/esm2022/lib/validator/available.mjs +1 -1
- package/esm2022/lib/validator/boolean.mjs +1 -1
- package/esm2022/lib/validator/field.mjs +2 -2
- package/esm2022/lib/validator/number.mjs +1 -1
- package/esm2022/lib/validator/phone.mjs +1 -1
- package/esm2022/mapbox/lib/field/latlng/latlng.field.component.mjs +65 -47
- package/esm2022/mapbox/lib/field/latlng/latlng.field.marker.component.mjs +13 -10
- package/esm2022/mapbox/lib/field/latlng/latlng.module.mjs +10 -43
- package/esm2022/mapbox/lib/field/zoom/zoom.field.component.mjs +32 -26
- package/esm2022/mapbox/lib/field/zoom/zoom.module.mjs +8 -36
- package/esm2022/mapbox/lib/mapbox.module.mjs +4 -4
- package/fesm2022/dereekb-dbx-form-calendar.mjs +340 -457
- package/fesm2022/dereekb-dbx-form-calendar.mjs.map +1 -1
- package/fesm2022/dereekb-dbx-form-mapbox.mjs +114 -141
- package/fesm2022/dereekb-dbx-form-mapbox.mjs.map +1 -1
- package/fesm2022/dereekb-dbx-form.mjs +935 -1106
- package/fesm2022/dereekb-dbx-form.mjs.map +1 -1
- package/lib/extension/calendar/_calendar.scss +3 -3
- package/lib/form/_form.scss +3 -3
- package/lib/form/action/form.action.directive.d.ts +35 -16
- package/lib/form/action/form.action.module.d.ts +4 -3
- package/lib/form/action/transition/form.action.transition.module.d.ts +4 -2
- package/lib/form/action/transition/form.action.transition.safety.directive.d.ts +4 -2
- package/lib/form/io/form.changes.directive.d.ts +3 -4
- package/lib/form/io/form.input.directive.d.ts +7 -10
- package/lib/form/io/form.io.module.d.ts +8 -2
- package/lib/form/io/form.loading.directive.d.ts +10 -11
- package/lib/form.providers.d.ts +8 -0
- package/lib/formly/_formly.scss +3 -3
- package/lib/formly/field/checklist/_checklist.scss +3 -3
- package/lib/formly/field/checklist/checklist.field.d.ts +7 -7
- package/lib/formly/field/checklist/checklist.item.d.ts +7 -9
- package/lib/formly/field/checklist/checklist.item.field.component.d.ts +19 -18
- package/lib/formly/field/checklist/checklist.item.field.content.default.component.d.ts +5 -5
- package/lib/formly/field/checklist/checklist.item.field.d.ts +1 -1
- package/lib/formly/field/checklist/checklist.item.field.module.d.ts +3 -11
- package/lib/formly/field/component/_component.scss +3 -3
- package/lib/formly/field/component/component.field.component.d.ts +1 -1
- package/lib/formly/field/component/component.field.module.d.ts +2 -4
- package/lib/formly/field/field.d.ts +8 -5
- package/lib/formly/field/selection/list/_list.scss +3 -3
- package/lib/formly/field/selection/list/list.field.component.d.ts +7 -5
- package/lib/formly/field/selection/list/list.field.module.d.ts +2 -12
- package/lib/formly/field/selection/pickable/_pickable.scss +3 -3
- package/lib/formly/field/selection/pickable/pickable.chip.field.component.d.ts +1 -1
- package/lib/formly/field/selection/pickable/pickable.field.directive.d.ts +25 -23
- package/lib/formly/field/selection/pickable/pickable.field.module.d.ts +2 -13
- package/lib/formly/field/selection/pickable/pickable.list.field.component.d.ts +15 -14
- package/lib/formly/field/selection/searchable/_searchable.scss +3 -3
- package/lib/formly/field/selection/searchable/searchable.chip.field.component.d.ts +4 -4
- package/lib/formly/field/selection/searchable/searchable.d.ts +3 -3
- package/lib/formly/field/selection/searchable/searchable.field.autocomplete.item.component.d.ts +8 -12
- package/lib/formly/field/selection/searchable/searchable.field.directive.d.ts +30 -25
- package/lib/formly/field/selection/searchable/searchable.field.module.d.ts +2 -13
- package/lib/formly/field/selection/searchable/searchable.text.field.component.d.ts +6 -8
- package/lib/formly/field/selection/selection.d.ts +5 -5
- package/lib/formly/field/selection/sourceselect/_sourceselect.scss +3 -3
- package/lib/formly/field/selection/sourceselect/sourceselect.d.ts +1 -1
- package/lib/formly/field/selection/sourceselect/sourceselect.field.component.d.ts +5 -3
- package/lib/formly/field/selection/sourceselect/sourceselect.field.module.d.ts +2 -17
- package/lib/formly/field/texteditor/_texteditor.scss +9 -9
- package/lib/formly/field/texteditor/texteditor.field.component.d.ts +5 -4
- package/lib/formly/field/texteditor/texteditor.field.module.d.ts +2 -8
- package/lib/formly/field/value/array/_array.scss +5 -5
- package/lib/formly/field/value/array/array.field.component.d.ts +16 -18
- package/lib/formly/field/value/array/array.field.d.ts +8 -5
- package/lib/formly/field/value/array/array.field.module.d.ts +2 -10
- package/lib/formly/field/value/boolean/_boolean.scss +3 -3
- package/lib/formly/field/value/date/_date.scss +5 -5
- package/lib/formly/field/value/date/date.field.module.d.ts +8 -9
- package/lib/formly/field/value/date/datetime.field.service.d.ts +1 -1
- package/lib/formly/field/value/date/fixeddaterange.field.component.d.ts +13 -13
- package/lib/formly/field/value/number/_number.scss +2 -2
- package/lib/formly/field/value/phone/_phone.scss +6 -6
- package/lib/formly/field/value/phone/phone.field.component.d.ts +6 -5
- package/lib/formly/field/value/text/_text.scss +3 -3
- package/lib/formly/field/wrapper/_wrapper.scss +3 -3
- package/lib/formly/field/wrapper/autotouch.wrapper.component.d.ts +1 -1
- package/lib/formly/field/wrapper/expand.wrapper.component.d.ts +1 -1
- package/lib/formly/field/wrapper/expand.wrapper.delegate.d.ts +2 -0
- package/lib/formly/field/wrapper/flex.wrapper.component.d.ts +4 -4
- package/lib/formly/field/wrapper/form.wrapper.module.d.ts +2 -8
- package/lib/formly/field/wrapper/index.d.ts +1 -0
- package/lib/formly/field/wrapper/info.wrapper.component.d.ts +2 -2
- package/lib/formly/field/wrapper/section.wrapper.component.d.ts +1 -1
- package/lib/formly/field/wrapper/style.wrapper.component.d.ts +5 -3
- package/lib/formly/field/wrapper/subsection.wrapper.component.d.ts +1 -1
- package/lib/formly/field/wrapper/toggle.wrapper.component.d.ts +2 -1
- package/lib/formly/field/wrapper/working.wrapper.component.d.ts +2 -2
- package/lib/formly/form/_form.scss +3 -3
- package/lib/formly/formly.component.template.d.ts +19 -0
- package/lib/formly/formly.context.d.ts +11 -7
- package/lib/formly/formly.context.directive.d.ts +2 -2
- package/lib/formly/formly.directive.d.ts +10 -10
- package/lib/formly/formly.form.component.d.ts +18 -13
- package/lib/formly/formly.module.d.ts +1 -1
- package/lib/formly/index.d.ts +1 -0
- package/lib/index.d.ts +1 -0
- package/lib/layout/_layout.scss +3 -3
- package/lib/style/_all-typography.scss +1 -1
- package/lib/style/_theming.scss +1 -1
- package/mapbox/lib/field/latlng/latlng.field.component.d.ts +25 -23
- package/mapbox/lib/field/latlng/latlng.field.marker.component.d.ts +2 -1
- package/mapbox/lib/field/latlng/latlng.module.d.ts +2 -11
- package/mapbox/lib/field/zoom/zoom.field.component.d.ts +13 -13
- package/mapbox/lib/field/zoom/zoom.module.d.ts +3 -10
- package/package.json +10 -11
- package/mapbox/esm2022/dereekb-dbx-form-mapbox.mjs +0 -5
- package/mapbox/esm2022/index.mjs +0 -3
- package/mapbox/esm2022/lib/field/index.mjs +0 -3
- package/mapbox/esm2022/lib/field/latlng/index.mjs +0 -5
- package/mapbox/esm2022/lib/field/latlng/latlng.field.component.mjs +0 -244
- package/mapbox/esm2022/lib/field/latlng/latlng.field.marker.component.mjs +0 -31
- package/mapbox/esm2022/lib/field/latlng/latlng.field.mjs +0 -35
- package/mapbox/esm2022/lib/field/latlng/latlng.module.mjs +0 -59
- package/mapbox/esm2022/lib/field/zoom/index.mjs +0 -4
- package/mapbox/esm2022/lib/field/zoom/zoom.field.component.mjs +0 -140
- package/mapbox/esm2022/lib/field/zoom/zoom.field.mjs +0 -23
- package/mapbox/esm2022/lib/field/zoom/zoom.module.mjs +0 -57
- package/mapbox/esm2022/lib/mapbox.module.mjs +0 -16
- package/mapbox/fesm2022/dereekb-dbx-form-mapbox.mjs +0 -566
- package/mapbox/fesm2022/dereekb-dbx-form-mapbox.mjs.map +0 -1
- package/mapbox/package.json +0 -21
package/mapbox/esm2022/index.mjs
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export * from './lib/field';
|
|
2
|
-
export * from './lib/mapbox.module';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9tYXBib3gvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMscUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9maWVsZCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXBib3gubW9kdWxlJztcbiJdfQ==
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export * from './latlng';
|
|
2
|
-
export * from './zoom';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9tYXBib3gvc3JjL2xpYi9maWVsZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGF0bG5nJztcbmV4cG9ydCAqIGZyb20gJy4vem9vbSc7XG4iXX0=
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export * from './latlng.field';
|
|
2
|
-
export * from './latlng.field.component';
|
|
3
|
-
export * from './latlng.field.marker.component';
|
|
4
|
-
export * from './latlng.module';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9tYXBib3gvc3JjL2xpYi9maWVsZC9sYXRsbmcvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGF0bG5nLmZpZWxkJztcbmV4cG9ydCAqIGZyb20gJy4vbGF0bG5nLmZpZWxkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xhdGxuZy5maWVsZC5tYXJrZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGF0bG5nLm1vZHVsZSc7XG4iXX0=
|
|
@@ -1,244 +0,0 @@
|
|
|
1
|
-
import { CompactContextStore, mapCompactModeObs } from '@dereekb/dbx-web';
|
|
2
|
-
import { Component, Injector, NgZone, inject } from '@angular/core';
|
|
3
|
-
import { FieldType } from '@ngx-formly/material';
|
|
4
|
-
import { skip, first, BehaviorSubject, filter, shareReplay, startWith, switchMap, map, throttleTime, skipWhile, of, distinctUntilChanged } from 'rxjs';
|
|
5
|
-
import { asObservableFromGetter, filterMaybe, SubscriptionObject } from '@dereekb/rxjs';
|
|
6
|
-
import { latLngStringFunction, latLngPointFunction, isDefaultLatLngPoint, isValidLatLngPoint, isSameLatLngPoint } from '@dereekb/util';
|
|
7
|
-
import { GeolocationService } from '@ng-web-apis/geolocation';
|
|
8
|
-
import { DbxMapboxInjectionStore, DbxMapboxMapStore, provideMapboxStoreIfParentIsUnavailable } from '@dereekb/dbx-web/mapbox';
|
|
9
|
-
import { DbxFormMapboxLatLngFieldMarkerComponent } from './latlng.field.marker.component';
|
|
10
|
-
import * as i0 from "@angular/core";
|
|
11
|
-
import * as i1 from "@angular/common";
|
|
12
|
-
import * as i2 from "@angular/material/icon";
|
|
13
|
-
import * as i3 from "@angular/material/button";
|
|
14
|
-
import * as i4 from "@dereekb/dbx-web/mapbox";
|
|
15
|
-
import * as i5 from "@angular/forms";
|
|
16
|
-
import * as i6 from "@angular/material/input";
|
|
17
|
-
import * as i7 from "@angular/material/form-field";
|
|
18
|
-
import * as i8 from "ngx-mapbox-gl";
|
|
19
|
-
export const DEFAULT_DBX_FORM_MAPBOX_LAT_LNG_FIELD_INJECTION_KEY = 'DbxFormMapboxLatLngFieldComponent';
|
|
20
|
-
export const DEFAULT_DBX_FORM_MAPBOX_LAT_LNG_MARKER_CONFIG = {
|
|
21
|
-
icon: 'pin_drop'
|
|
22
|
-
};
|
|
23
|
-
/*
|
|
24
|
-
TODO: Re-add menu for picking a new location, including using the current location.
|
|
25
|
-
<button mat-icon-button (click)="useCurrentLocation()" [disabled]="isReadonlyOrDisabled || (useCurrentLocationDisabled$ | async)">
|
|
26
|
-
<mat-icon>my_location</mat-icon>
|
|
27
|
-
</button>
|
|
28
|
-
*/
|
|
29
|
-
export class DbxFormMapboxLatLngFieldComponent extends FieldType {
|
|
30
|
-
_geolocationService = inject(GeolocationService);
|
|
31
|
-
compact = inject(CompactContextStore, { optional: true });
|
|
32
|
-
dbxMapboxInjectionStore = inject(DbxMapboxInjectionStore, { optional: true });
|
|
33
|
-
dbxMapboxMapStore = inject(DbxMapboxMapStore);
|
|
34
|
-
ngZone = inject(NgZone);
|
|
35
|
-
injector = inject(Injector);
|
|
36
|
-
_latLngStringFunction;
|
|
37
|
-
_latLngPointFunction;
|
|
38
|
-
compactClass$ = mapCompactModeObs(this.compact?.mode$, {
|
|
39
|
-
compact: 'dbx-mapbox-input-field-compact'
|
|
40
|
-
});
|
|
41
|
-
_useCurrentLocationDisabled = new BehaviorSubject(false);
|
|
42
|
-
useCurrentLocationDisabled$ = this._useCurrentLocationDisabled.asObservable();
|
|
43
|
-
_sub = new SubscriptionObject();
|
|
44
|
-
_geoSub = new SubscriptionObject();
|
|
45
|
-
_centerSub = new SubscriptionObject();
|
|
46
|
-
_flyToCenterSub = new SubscriptionObject();
|
|
47
|
-
_clickSub = new SubscriptionObject();
|
|
48
|
-
_zoom = new BehaviorSubject(12);
|
|
49
|
-
_markerConfig = new BehaviorSubject(of(DEFAULT_DBX_FORM_MAPBOX_LAT_LNG_MARKER_CONFIG));
|
|
50
|
-
_formControlObs = new BehaviorSubject(undefined);
|
|
51
|
-
formControl$ = this._formControlObs.pipe(filterMaybe());
|
|
52
|
-
value$ = this.formControl$.pipe(switchMap((control) => control.valueChanges.pipe(startWith(control.value))), shareReplay(1));
|
|
53
|
-
latLng$ = this.value$.pipe(filterMaybe(), map((x) => this._latLngPointFunction(x)), distinctUntilChanged(isSameLatLngPoint), shareReplay(1));
|
|
54
|
-
nonZeroLatLng$ = this.latLng$.pipe(
|
|
55
|
-
/**
|
|
56
|
-
* Center observable passed to the store. Do not pass invalid points.
|
|
57
|
-
*
|
|
58
|
-
* Also skip any initial 0,0 values so the center doesn't potentially "whip" from 0,0 to a final loaded value.
|
|
59
|
-
*/
|
|
60
|
-
skipWhile(isDefaultLatLngPoint), filter(isValidLatLngPoint));
|
|
61
|
-
zoom$ = this._zoom.asObservable();
|
|
62
|
-
markerConfig$ = this._markerConfig.asObservable().pipe(switchMap((x) => x), shareReplay(1));
|
|
63
|
-
get zoom() {
|
|
64
|
-
return Math.min(this.field.props.zoom || 12, 18);
|
|
65
|
-
}
|
|
66
|
-
get formGroupName() {
|
|
67
|
-
return this.field.key;
|
|
68
|
-
}
|
|
69
|
-
get formGroup() {
|
|
70
|
-
return this.form;
|
|
71
|
-
}
|
|
72
|
-
get label() {
|
|
73
|
-
return this.field.props?.label;
|
|
74
|
-
}
|
|
75
|
-
get description() {
|
|
76
|
-
return this.props.description;
|
|
77
|
-
}
|
|
78
|
-
get isReadonlyOrDisabled() {
|
|
79
|
-
return this.props.readonly || this.disabled;
|
|
80
|
-
}
|
|
81
|
-
get showMap() {
|
|
82
|
-
return this.field.props.showMap ?? true;
|
|
83
|
-
}
|
|
84
|
-
get selectLocationOnMapDrag() {
|
|
85
|
-
return this.field.props.selectLocationOnMapDrag ?? true;
|
|
86
|
-
}
|
|
87
|
-
get selectLocationOnMapClick() {
|
|
88
|
-
return this.field.props.selectLocationOnMapClick ?? false;
|
|
89
|
-
}
|
|
90
|
-
get setCenterOnLocationSet() {
|
|
91
|
-
return this.field.props.setCenterOnLocationSet ?? true;
|
|
92
|
-
}
|
|
93
|
-
get showCenterButton() {
|
|
94
|
-
return !this.selectLocationOnMapDrag && this.props.showCenterButton !== false;
|
|
95
|
-
}
|
|
96
|
-
get recenterTime() {
|
|
97
|
-
return this.field.props.recenterTime || 10 * 1000;
|
|
98
|
-
}
|
|
99
|
-
get useCurrentLocationDisabled() {
|
|
100
|
-
return this._useCurrentLocationDisabled;
|
|
101
|
-
}
|
|
102
|
-
get mapInjectionKey() {
|
|
103
|
-
return this.field.props.mapInjectionKey;
|
|
104
|
-
}
|
|
105
|
-
get markerConfig() {
|
|
106
|
-
return this.field.props.markerConfig;
|
|
107
|
-
}
|
|
108
|
-
ngOnInit() {
|
|
109
|
-
const latLngPointConfig = { ...this.field.props.latLngConfig, wrap: this.field.props.latLngConfig?.wrap || false, validate: this.field.props.latLngConfig?.validate || false, precisionRounding: this.field.props.latLngConfig?.precisionRounding ?? 'round' };
|
|
110
|
-
this._latLngStringFunction = latLngStringFunction(latLngPointConfig);
|
|
111
|
-
this._latLngPointFunction = latLngPointFunction(latLngPointConfig);
|
|
112
|
-
this._formControlObs.next(this.formControl);
|
|
113
|
-
this._zoom.next(this.zoom);
|
|
114
|
-
if (this.setCenterOnLocationSet) {
|
|
115
|
-
this._centerSub.subscription = this.dbxMapboxMapStore.setCenter(this.nonZeroLatLng$);
|
|
116
|
-
}
|
|
117
|
-
if (this.showMap) {
|
|
118
|
-
// Set zoom only if showMap is true
|
|
119
|
-
this.dbxMapboxMapStore.setZoom(this.zoom$);
|
|
120
|
-
// recenter periodically
|
|
121
|
-
if (this.recenterTime > 0) {
|
|
122
|
-
this._flyToCenterSub.subscription = this.dbxMapboxMapStore.center$.pipe(skip(1), throttleTime(this.recenterTime, undefined, { leading: false, trailing: true })).subscribe(() => {
|
|
123
|
-
this.flyToMarker();
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
else {
|
|
128
|
-
// use the center of the map to set locations
|
|
129
|
-
if (this.selectLocationOnMapDrag) {
|
|
130
|
-
this._sub.subscription = this.dbxMapboxMapStore.center$.subscribe((center) => {
|
|
131
|
-
this.dbxMapboxMapStore.centerGivenMargin$.pipe(first()).subscribe(() => {
|
|
132
|
-
if (!this.isReadonlyOrDisabled) {
|
|
133
|
-
this.ngZone.run(() => {
|
|
134
|
-
this.setValue(center);
|
|
135
|
-
});
|
|
136
|
-
}
|
|
137
|
-
});
|
|
138
|
-
});
|
|
139
|
-
}
|
|
140
|
-
// enable selecting the location on a map click
|
|
141
|
-
if (this.selectLocationOnMapClick) {
|
|
142
|
-
this._clickSub.subscription = this.dbxMapboxMapStore.clickEvent$.subscribe((x) => {
|
|
143
|
-
if (x?.type === 'click') {
|
|
144
|
-
this.setValue(x.lngLat);
|
|
145
|
-
}
|
|
146
|
-
});
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
if (this.props.readonly) {
|
|
150
|
-
this.formControl.disable();
|
|
151
|
-
}
|
|
152
|
-
// Add the marker to the injection store for display
|
|
153
|
-
if (this.dbxMapboxInjectionStore) {
|
|
154
|
-
if (this.markerConfig != null) {
|
|
155
|
-
this._markerConfig.next(this.markerConfig === false ? of(false) : asObservableFromGetter(this.markerConfig, this));
|
|
156
|
-
}
|
|
157
|
-
this.dbxMapboxInjectionStore.addInjectionConfig({
|
|
158
|
-
key: this.mapInjectionKey || DEFAULT_DBX_FORM_MAPBOX_LAT_LNG_FIELD_INJECTION_KEY,
|
|
159
|
-
injectionConfig: {
|
|
160
|
-
componentClass: DbxFormMapboxLatLngFieldMarkerComponent,
|
|
161
|
-
providers: [{ provide: DbxFormMapboxLatLngFieldComponent, useValue: this }]
|
|
162
|
-
}
|
|
163
|
-
});
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
ngOnDestroy() {
|
|
167
|
-
super.ngOnDestroy();
|
|
168
|
-
this._zoom.complete();
|
|
169
|
-
this._markerConfig.complete();
|
|
170
|
-
this._formControlObs.complete();
|
|
171
|
-
this._sub.destroy();
|
|
172
|
-
this._geoSub.destroy();
|
|
173
|
-
this._centerSub.destroy();
|
|
174
|
-
this._flyToCenterSub.destroy();
|
|
175
|
-
this._clickSub.destroy();
|
|
176
|
-
}
|
|
177
|
-
flyToMarker() {
|
|
178
|
-
this.dbxMapboxMapStore.easeTo(this.nonZeroLatLng$.pipe(first(), map((x) => ({ center: x }))));
|
|
179
|
-
}
|
|
180
|
-
useCurrentLocation() {
|
|
181
|
-
this._geoSub.subscription = this._geolocationService.pipe(first()).subscribe({
|
|
182
|
-
next: (position) => {
|
|
183
|
-
if (position) {
|
|
184
|
-
const { latitude: lat, longitude: lng } = position.coords;
|
|
185
|
-
this.setValue({ lat, lng });
|
|
186
|
-
}
|
|
187
|
-
},
|
|
188
|
-
error: () => {
|
|
189
|
-
this._useCurrentLocationDisabled.next(true);
|
|
190
|
-
}
|
|
191
|
-
});
|
|
192
|
-
}
|
|
193
|
-
onMarkerDragEnd(marker) {
|
|
194
|
-
this.setValue(marker.getLngLat());
|
|
195
|
-
}
|
|
196
|
-
setValue(latLng) {
|
|
197
|
-
this.formControl.setValue(latLng ? this._latLngStringFunction(latLng) : latLng);
|
|
198
|
-
this.formControl.markAsTouched();
|
|
199
|
-
this.formControl.markAsDirty();
|
|
200
|
-
}
|
|
201
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormMapboxLatLngFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
202
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DbxFormMapboxLatLngFieldComponent, selector: "ng-component", providers: [provideMapboxStoreIfParentIsUnavailable()], usesInheritance: true, ngImport: i0, template: `
|
|
203
|
-
<div class="dbx-mapbox-input-field" [ngClass]="(compactClass$ | async) ?? ''" [formGroup]="formGroup">
|
|
204
|
-
<div *ngIf="showMap" class="dbx-mapbox-input-field-map">
|
|
205
|
-
<mgl-map dbxMapboxMap>
|
|
206
|
-
<mgl-marker [lngLat]="(latLng$ | async) || [0, 0]" [draggable]="!isReadonlyOrDisabled" (markerDragEnd)="onMarkerDragEnd($event)"></mgl-marker>
|
|
207
|
-
</mgl-map>
|
|
208
|
-
</div>
|
|
209
|
-
<div class="dbx-mapbox-input-field-input">
|
|
210
|
-
<button *ngIf="showCenterButton" mat-icon-button (click)="flyToMarker()">
|
|
211
|
-
<mat-icon>my_location</mat-icon>
|
|
212
|
-
</button>
|
|
213
|
-
<mat-form-field class="dbx-mapbox-input-field-input-field">
|
|
214
|
-
<mat-label>Coordinates</mat-label>
|
|
215
|
-
<input type="text" matInput [placeholder]="placeholder" [formControl]="formControl" />
|
|
216
|
-
<mat-hint class="dbx-hint dbx-warn" *ngIf="useCurrentLocationDisabled$ | async">Could not access your current location.</mat-hint>
|
|
217
|
-
</mat-form-field>
|
|
218
|
-
</div>
|
|
219
|
-
</div>
|
|
220
|
-
`, isInline: true, styles: [".dbx-mapbox-input-field .dbx-mapbox-input-field-map{height:220px;width:100%}.dbx-mapbox-input-field .dbx-mapbox-input-field-map mgl-map{height:100%;width:100%}.dbx-mapbox-input-field .dbx-mapbox-input-field-input{display:flex;align-items:center}.dbx-mapbox-input-field .dbx-mapbox-input-field-input .dbx-mapbox-input-field-input-field{width:calc(100% - 40px)}.dbx-mapbox-input-field-compact .dbx-latlng-field-input{min-height:120px;height:300px;max-height:calc(var(--vh100) * .5)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i4.DbxMapboxMapDirective, selector: "[dbxMapboxMap]" }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "component", type: i8.MapComponent, selector: "mgl-map", inputs: ["accessToken", "collectResourceTiming", "crossSourceCollisions", "customMapboxApiUrl", "fadeDuration", "hash", "refreshExpiredTiles", "failIfMajorPerformanceCaveat", "bearingSnap", "interactive", "pitchWithRotate", "clickTolerance", "attributionControl", "logoPosition", "maxTileCacheSize", "localIdeographFontFamily", "preserveDrawingBuffer", "trackResize", "transformRequest", "bounds", "antialias", "locale", "cooperativeGestures", "minZoom", "maxZoom", "minPitch", "maxPitch", "scrollZoom", "dragRotate", "touchPitch", "touchZoomRotate", "doubleClickZoom", "keyboard", "dragPan", "boxZoom", "style", "center", "maxBounds", "zoom", "bearing", "pitch", "fitBoundsOptions", "renderWorldCopies", "projection", "movingMethod", "movingOptions", "fitBounds", "fitScreenCoordinates", "centerWithPanTo", "panToOptions", "cursorStyle"], outputs: ["mapResize", "mapRemove", "mapMouseDown", "mapMouseUp", "mapMouseMove", "mapClick", "mapDblClick", "mapMouseOver", "mapMouseOut", "mapContextMenu", "mapTouchStart", "mapTouchEnd", "mapTouchMove", "mapTouchCancel", "mapWheel", "moveStart", "move", "moveEnd", "mapDragStart", "mapDrag", "mapDragEnd", "zoomStart", "zoomEvt", "zoomEnd", "rotateStart", "rotate", "rotateEnd", "pitchStart", "pitchEvt", "pitchEnd", "boxZoomStart", "boxZoomEnd", "boxZoomCancel", "webGlContextLost", "webGlContextRestored", "mapLoad", "mapCreate", "idle", "render", "mapError", "data", "styleData", "sourceData", "dataLoading", "styleDataLoading", "sourceDataLoading", "styleImageMissing", "resize", "remove", "mouseDown", "mouseUp", "mouseMove", "click", "dblClick", "mouseOver", "mouseOut", "contextMenu", "touchStart", "touchEnd", "touchMove", "touchCancel", "wheel", "dragStart", "drag", "dragEnd", "load", "error"] }, { kind: "component", type: i8.MarkerComponent, selector: "mgl-marker", inputs: ["offset", "anchor", "clickTolerance", "feature", "lngLat", "draggable", "popupShown", "className", "pitchAlignment", "rotationAlignment"], outputs: ["markerDragStart", "markerDragEnd", "markerDrag", "dragStart", "dragEnd", "drag"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
|
|
221
|
-
}
|
|
222
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormMapboxLatLngFieldComponent, decorators: [{
|
|
223
|
-
type: Component,
|
|
224
|
-
args: [{ template: `
|
|
225
|
-
<div class="dbx-mapbox-input-field" [ngClass]="(compactClass$ | async) ?? ''" [formGroup]="formGroup">
|
|
226
|
-
<div *ngIf="showMap" class="dbx-mapbox-input-field-map">
|
|
227
|
-
<mgl-map dbxMapboxMap>
|
|
228
|
-
<mgl-marker [lngLat]="(latLng$ | async) || [0, 0]" [draggable]="!isReadonlyOrDisabled" (markerDragEnd)="onMarkerDragEnd($event)"></mgl-marker>
|
|
229
|
-
</mgl-map>
|
|
230
|
-
</div>
|
|
231
|
-
<div class="dbx-mapbox-input-field-input">
|
|
232
|
-
<button *ngIf="showCenterButton" mat-icon-button (click)="flyToMarker()">
|
|
233
|
-
<mat-icon>my_location</mat-icon>
|
|
234
|
-
</button>
|
|
235
|
-
<mat-form-field class="dbx-mapbox-input-field-input-field">
|
|
236
|
-
<mat-label>Coordinates</mat-label>
|
|
237
|
-
<input type="text" matInput [placeholder]="placeholder" [formControl]="formControl" />
|
|
238
|
-
<mat-hint class="dbx-hint dbx-warn" *ngIf="useCurrentLocationDisabled$ | async">Could not access your current location.</mat-hint>
|
|
239
|
-
</mat-form-field>
|
|
240
|
-
</div>
|
|
241
|
-
</div>
|
|
242
|
-
`, providers: [provideMapboxStoreIfParentIsUnavailable()], styles: [".dbx-mapbox-input-field .dbx-mapbox-input-field-map{height:220px;width:100%}.dbx-mapbox-input-field .dbx-mapbox-input-field-map mgl-map{height:100%;width:100%}.dbx-mapbox-input-field .dbx-mapbox-input-field-input{display:flex;align-items:center}.dbx-mapbox-input-field .dbx-mapbox-input-field-input .dbx-mapbox-input-field-input-field{width:calc(100% - 40px)}.dbx-mapbox-input-field-compact .dbx-latlng-field-input{min-height:120px;height:300px;max-height:calc(var(--vh100) * .5)}\n"] }]
|
|
243
|
-
}] });
|
|
244
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF0bG5nLmZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1mb3JtL21hcGJveC9zcmMvbGliL2ZpZWxkL2xhdGxuZy9sYXRsbmcuZmllbGQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBYyxZQUFZLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuSyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsV0FBVyxFQUFzQyxrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1SCxPQUFPLEVBQXVFLG9CQUFvQixFQUFnQixtQkFBbUIsRUFBRSxvQkFBb0IsRUFBRSxrQkFBa0IsRUFBdUIsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL08sT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFOUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUErRCx1Q0FBdUMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzNMLE9BQU8sRUFBRSx1Q0FBdUMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7Ozs7O0FBRTFGLE1BQU0sQ0FBQyxNQUFNLG1EQUFtRCxHQUFHLG1DQUFtQyxDQUFDO0FBRXZH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RUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztpQkFDN0I7WUFDSCxDQUFDO1lBQ0QsS0FBSyxFQUFFLEdBQUcsRUFBRTtnQkFDVixJQUFJLENBQUMsMkJBQTJCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzlDLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsZUFBZSxDQUFDLE1BQWM7UUFDNUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQTJCO1FBQ2xDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNoRixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDakMsQ0FBQzt3R0FuT1UsaUNBQWlDOzRGQUFqQyxpQ0FBaUMsdUNBSGpDLENBQUMsdUNBQXVDLEVBQUUsQ0FBQyxpREFuQjVDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQlQ7OzRGQUlVLGlDQUFpQztrQkF2QjdDLFNBQVM7K0JBQ0U7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCVCxhQUNVLENBQUMsdUNBQXVDLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29tcGFjdENvbnRleHRTdG9yZSwgbWFwQ29tcGFjdE1vZGVPYnMgfSBmcm9tICdAZGVyZWVrYi9kYngtd2ViJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0b3IsIE5nWm9uZSwgT25EZXN0cm95LCBPbkluaXQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmllbGRUeXBlQ29uZmlnLCBGb3JtbHlGaWVsZFByb3BzIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQgeyBGaWVsZFR5cGUgfSBmcm9tICdAbmd4LWZvcm1seS9tYXRlcmlhbCc7XG5pbXBvcnQgeyBza2lwLCBmaXJzdCwgQmVoYXZpb3JTdWJqZWN0LCBmaWx0ZXIsIHNoYXJlUmVwbGF5LCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgbWFwLCBPYnNlcnZhYmxlLCB0aHJvdHRsZVRpbWUsIHNraXBXaGlsZSwgb2YsIGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBhc09ic2VydmFibGVGcm9tR2V0dGVyLCBmaWx0ZXJNYXliZSwgT2JzZXJ2YWJsZUZhY3RvcnlXaXRoUmVxdWlyZWRJbnB1dCwgU3Vic2NyaXB0aW9uT2JqZWN0IH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBNYXliZSwgTGF0TG5nUG9pbnQsIExhdExuZ1BvaW50RnVuY3Rpb25Db25maWcsIExhdExuZ1N0cmluZ0Z1bmN0aW9uLCBsYXRMbmdTdHJpbmdGdW5jdGlvbiwgTWlsbGlzZWNvbmRzLCBsYXRMbmdQb2ludEZ1bmN0aW9uLCBpc0RlZmF1bHRMYXRMbmdQb2ludCwgaXNWYWxpZExhdExuZ1BvaW50LCBMYXRMbmdQb2ludEZ1bmN0aW9uLCBpc1NhbWVMYXRMbmdQb2ludCB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgR2VvbG9jYXRpb25TZXJ2aWNlIH0gZnJvbSAnQG5nLXdlYi1hcGlzL2dlb2xvY2F0aW9uJztcbmltcG9ydCB7IE1hcmtlciB9IGZyb20gJ21hcGJveC1nbCc7XG5pbXBvcnQgeyBEYnhNYXBib3hJbmplY3Rpb25TdG9yZSwgRGJ4TWFwYm94TWFwU3RvcmUsIERieE1hcGJveE1hcmtlckRpc3BsYXlDb25maWcsIE1hcGJveEVhc2VUbywgTWFwYm94Wm9vbUxldmVsLCBwcm92aWRlTWFwYm94U3RvcmVJZlBhcmVudElzVW5hdmFpbGFibGUgfSBmcm9tICdAZGVyZWVrYi9kYngtd2ViL21hcGJveCc7XG5pbXBvcnQgeyBEYnhGb3JtTWFwYm94TGF0TG5nRmllbGRNYXJrZXJDb21wb25lbnQgfSBmcm9tICcuL2xhdGxuZy5maWVsZC5tYXJrZXIuY29tcG9uZW50JztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfREJYX0ZPUk1fTUFQQk9YX0xBVF9MTkdfRklFTERfSU5KRUNUSU9OX0tFWSA9ICdEYnhGb3JtTWFwYm94TGF0TG5nRmllbGRDb21wb25lbnQnO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9EQlhfRk9STV9NQVBCT1hfTEFUX0xOR19NQVJLRVJfQ09ORklHOiBEYnhNYXBib3hNYXJrZXJEaXNwbGF5Q29uZmlnID0ge1xuICBpY29uOiAncGluX2Ryb3AnXG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIERieEZvcm1NYXBib3hMYXRMbmdDb21wb25lbnRGaWVsZFByb3BzIGV4dGVuZHMgRm9ybWx5RmllbGRQcm9wcyB7XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIFdoZXRoZXIgb3Igbm90IHRoZSBzaG93IHRoZSBtYXAuIElmIHRoZSBtYXAgaXMgbm90IHNob3duLCByZWxpZXMgb24gdGhlIGNlbnRlciBvZiB0aGUgcGFyZW50IG1hcCB0byBkZXRlcm1pbmUgcG9zaXRpb24uXG4gICAqXG4gICAqIERlZmF1bHRzIHRvIHRydWUuXG4gICAqXG4gICAqIENhc2VzIHdoZXJlIHRoaXMgd291bGQgYmUgc2V0IGZhbHNlIGlzIGlmIGFub3RoZXIgbWFwIGlzIGJlaW5nIHVzZWQuXG4gICAqL1xuICBzaG93TWFwPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIGRpc3BsYXkgdGhlIGNlbnRlciBidXR0b24uIElzIHNldCB0byBmYWxzZSBpZiBzZWxlY3RMb2NhdGlvbk9uTWFwRHJhZyBpcyB0cnVlLlxuICAgKi9cbiAgc2hvd0NlbnRlckJ1dHRvbj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBzZXQgdGhlIGNlbnRlciBvZiB0aGUgbWFwIG9uIHRoZSBsb2NhdGlvbiB3aGVuIHNldC4gRGVmYXVsdHMgdG8gdHJ1ZS5cbiAgICovXG4gIHNldENlbnRlck9uTG9jYXRpb25TZXQ/OiBib29sZWFuO1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gZW5hYmxlIGRyYWdnaW5nIHRoZSBtYXAgdG8gc2VsZWN0IHRoZSBsb2NhdGlvbi4gRGVmYXVsdHMgdG8gdHJ1ZS5cbiAgICpcbiAgICogT25seSBhcHBsaWNhYmxlIHdoZW4gc2hvd01hcCBpcyBmYWxzZS5cbiAgICovXG4gIHNlbGVjdExvY2F0aW9uT25NYXBEcmFnPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIGVuYWJsZSBjbGlja2luZyB0aGUgbWFwIHRvIHNlbGVjdCB0aGUgbG9jYXRpb24uIERlZmF1bHRzIHRvIGZhbHNlLlxuICAgKlxuICAgKiBPbmx5IGFwcGxpY2FibGUgd2hlbiBzaG93TWFwIGlzIGZhbHNlLlxuICAgKi9cbiAgc2VsZWN0TG9jYXRpb25Pbk1hcENsaWNrPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgWm9vbSB0byBzdGFydCB0aGUgbWFwIGF0LiBJZ25vcmVkIGlmIHRoZSBzaG93TWFwIGlzIGZhbHNlLlxuICAgKi9cbiAgem9vbT86IE1hcGJveFpvb21MZXZlbDtcbiAgLyoqXG4gICAqIFRpbWUgdW50aWwgcmVjZW50ZXJpbmcgb24gdGhlIG1hcmtlci4gSWYgdGhlIHRpbWUgaXMgMCB0aGVuIHRoZSByZWNlbnRlcmluZyBpcyBkaXNhYmxlZC5cbiAgICovXG4gIHJlY2VudGVyVGltZT86IE1pbGxpc2Vjb25kcztcbiAgbGF0TG5nQ29uZmlnPzogTGF0TG5nUG9pbnRGdW5jdGlvbkNvbmZpZztcbiAgLyoqXG4gICAqIFVuaXF1ZSBpbmplY3Rpb24ga2V5LlxuICAgKlxuICAgKiBJZiBub3QgZGVmaW5lZCwgdGhlIGRlZmF1bHQga2V5IHdpbGwgYmUgdXNlZC5cbiAgICpcbiAgICogSWYgZmFsc2UgaXMgcGFzc2VkLCB0aGUgbWFya2VyIHdpbGwgbm90IGJlIGNvbmZpZ3VyZWQgaW4gdGhlIGluamVjdGlvbiBzdG9yZS5cbiAgICovXG4gIG1hcEluamVjdGlvbktleT86IE1heWJlPHN0cmluZyB8IGZhbHNlPjtcbiAgLyoqXG4gICAqIE1hcmtlciBjb25maWd1cmF0aW9uIG9yIGZhY3RvcnkuIElmIGZhbHNlIGlzIHBhc3NlZCwgdGhlIG1hcmtlciB3aWxsIG5vdCBiZSBkaXNwbGF5ZWQuXG4gICAqL1xuICBtYXJrZXJDb25maWc/OiBmYWxzZSB8IE9ic2VydmFibGVGYWN0b3J5V2l0aFJlcXVpcmVkSW5wdXQ8RGJ4TWFwYm94TWFya2VyRGlzcGxheUNvbmZpZyB8IGZhbHNlLCBEYnhGb3JtTWFwYm94TGF0TG5nRmllbGRDb21wb25lbnQ+O1xufVxuXG4vKlxuICBUT0RPOiBSZS1hZGQgbWVudSBmb3IgcGlja2luZyBhIG5ldyBsb2NhdGlvbiwgaW5jbHVkaW5nIHVzaW5nIHRoZSBjdXJyZW50IGxvY2F0aW9uLlxuIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJ1c2VDdXJyZW50TG9jYXRpb24oKVwiIFtkaXNhYmxlZF09XCJpc1JlYWRvbmx5T3JEaXNhYmxlZCB8fCAodXNlQ3VycmVudExvY2F0aW9uRGlzYWJsZWQkIHwgYXN5bmMpXCI+XG4gICAgICAgICAgPG1hdC1pY29uPm15X2xvY2F0aW9uPC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gKi9cblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImRieC1tYXBib3gtaW5wdXQtZmllbGRcIiBbbmdDbGFzc109XCIoY29tcGFjdENsYXNzJCB8IGFzeW5jKSA/PyAnJ1wiIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwic2hvd01hcFwiIGNsYXNzPVwiZGJ4LW1hcGJveC1pbnB1dC1maWVsZC1tYXBcIj5cbiAgICAgICAgPG1nbC1tYXAgZGJ4TWFwYm94TWFwPlxuICAgICAgICAgIDxtZ2wtbWFya2VyIFtsbmdMYXRdPVwiKGxhdExuZyQgfCBhc3luYykgfHwgWzAsIDBdXCIgW2RyYWdnYWJsZV09XCIhaXNSZWFkb25seU9yRGlzYWJsZWRcIiAobWFya2VyRHJhZ0VuZCk9XCJvbk1hcmtlckRyYWdFbmQoJGV2ZW50KVwiPjwvbWdsLW1hcmtlcj5cbiAgICAgICAgPC9tZ2wtbWFwPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZGJ4LW1hcGJveC1pbnB1dC1maWVsZC1pbnB1dFwiPlxuICAgICAgICA8YnV0dG9uICpuZ0lmPVwic2hvd0NlbnRlckJ1dHRvblwiIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiZmx5VG9NYXJrZXIoKVwiPlxuICAgICAgICAgIDxtYXQtaWNvbj5teV9sb2NhdGlvbjwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJkYngtbWFwYm94LWlucHV0LWZpZWxkLWlucHV0LWZpZWxkXCI+XG4gICAgICAgICAgPG1hdC1sYWJlbD5Db29yZGluYXRlczwvbWF0LWxhYmVsPlxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIG1hdElucHV0IFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiIC8+XG4gICAgICAgICAgPG1hdC1oaW50IGNsYXNzPVwiZGJ4LWhpbnQgZGJ4LXdhcm5cIiAqbmdJZj1cInVzZUN1cnJlbnRMb2NhdGlvbkRpc2FibGVkJCB8IGFzeW5jXCI+Q291bGQgbm90IGFjY2VzcyB5b3VyIGN1cnJlbnQgbG9jYXRpb24uPC9tYXQtaGludD5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICBgLFxuICBwcm92aWRlcnM6IFtwcm92aWRlTWFwYm94U3RvcmVJZlBhcmVudElzVW5hdmFpbGFibGUoKV0sXG4gIHN0eWxlVXJsczogWycuLi9tYXBib3guZmllbGQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBEYnhGb3JtTWFwYm94TGF0TG5nRmllbGRDb21wb25lbnQ8VCBleHRlbmRzIERieEZvcm1NYXBib3hMYXRMbmdDb21wb25lbnRGaWVsZFByb3BzID0gRGJ4Rm9ybU1hcGJveExhdExuZ0NvbXBvbmVudEZpZWxkUHJvcHM+IGV4dGVuZHMgRmllbGRUeXBlPEZpZWxkVHlwZUNvbmZpZzxUPj4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2dlb2xvY2F0aW9uU2VydmljZSA9IGluamVjdChHZW9sb2NhdGlvblNlcnZpY2UpO1xuXG4gIHJlYWRvbmx5IGNvbXBhY3QgPSBpbmplY3QoQ29tcGFjdENvbnRleHRTdG9yZSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgcmVhZG9ubHkgZGJ4TWFwYm94SW5qZWN0aW9uU3RvcmUgPSBpbmplY3QoRGJ4TWFwYm94SW5qZWN0aW9uU3RvcmUsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gIHJlYWRvbmx5IGRieE1hcGJveE1hcFN0b3JlID0gaW5qZWN0KERieE1hcGJveE1hcFN0b3JlKTtcbiAgcmVhZG9ubHkgbmdab25lID0gaW5qZWN0KE5nWm9uZSk7XG4gIHJlYWRvbmx5IGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblxuICBwcml2YXRlIF9sYXRMbmdTdHJpbmdGdW5jdGlvbiE6IExhdExuZ1N0cmluZ0Z1bmN0aW9uO1xuICBwcml2YXRlIF9sYXRMbmdQb2ludEZ1bmN0aW9uITogTGF0TG5nUG9pbnRGdW5jdGlvbjtcblxuICByZWFkb25seSBjb21wYWN0Q2xhc3MkID0gbWFwQ29tcGFjdE1vZGVPYnModGhpcy5jb21wYWN0Py5tb2RlJCwge1xuICAgIGNvbXBhY3Q6ICdkYngtbWFwYm94LWlucHV0LWZpZWxkLWNvbXBhY3QnXG4gIH0pO1xuXG4gIHByaXZhdGUgX3VzZUN1cnJlbnRMb2NhdGlvbkRpc2FibGVkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IHVzZUN1cnJlbnRMb2NhdGlvbkRpc2FibGVkJCA9IHRoaXMuX3VzZUN1cnJlbnRMb2NhdGlvbkRpc2FibGVkLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIHByaXZhdGUgX3N1YiA9IG5ldyBTdWJzY3JpcHRpb25PYmplY3QoKTtcbiAgcHJpdmF0ZSBfZ2VvU3ViID0gbmV3IFN1YnNjcmlwdGlvbk9iamVjdCgpO1xuICBwcml2YXRlIF9jZW50ZXJTdWIgPSBuZXcgU3Vic2NyaXB0aW9uT2JqZWN0KCk7XG4gIHByaXZhdGUgX2ZseVRvQ2VudGVyU3ViID0gbmV3IFN1YnNjcmlwdGlvbk9iamVjdCgpO1xuICBwcml2YXRlIF9jbGlja1N1YiA9IG5ldyBTdWJzY3JpcHRpb25PYmplY3QoKTtcbiAgcHJpdmF0ZSBfem9vbSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWFwYm94Wm9vbUxldmVsPigxMik7XG4gIHByaXZhdGUgX21hcmtlckNvbmZpZyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8T2JzZXJ2YWJsZTxEYnhNYXBib3hNYXJrZXJEaXNwbGF5Q29uZmlnIHwgZmFsc2U+PihvZihERUZBVUxUX0RCWF9GT1JNX01BUEJPWF9MQVRfTE5HX01BUktFUl9DT05GSUcpKTtcblxuICBwcml2YXRlIF9mb3JtQ29udHJvbE9icyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWF5YmU8QWJzdHJhY3RDb250cm9sPj4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgZm9ybUNvbnRyb2wkID0gdGhpcy5fZm9ybUNvbnRyb2xPYnMucGlwZShmaWx0ZXJNYXliZSgpKTtcblxuICByZWFkb25seSB2YWx1ZSQgPSB0aGlzLmZvcm1Db250cm9sJC5waXBlKFxuICAgIHN3aXRjaE1hcCgoY29udHJvbCkgPT4gY29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShzdGFydFdpdGgoY29udHJvbC52YWx1ZSkpKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGxhdExuZyQ6IE9ic2VydmFibGU8TGF0TG5nUG9pbnQ+ID0gdGhpcy52YWx1ZSQucGlwZShcbiAgICBmaWx0ZXJNYXliZSgpLFxuICAgIG1hcCgoeCkgPT4gdGhpcy5fbGF0TG5nUG9pbnRGdW5jdGlvbih4KSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQ8TGF0TG5nUG9pbnQ+KGlzU2FtZUxhdExuZ1BvaW50KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IG5vblplcm9MYXRMbmckOiBPYnNlcnZhYmxlPExhdExuZ1BvaW50PiA9IHRoaXMubGF0TG5nJC5waXBlKFxuICAgIC8qKlxuICAgICAqIENlbnRlciBvYnNlcnZhYmxlIHBhc3NlZCB0byB0aGUgc3RvcmUuIERvIG5vdCBwYXNzIGludmFsaWQgcG9pbnRzLlxuICAgICAqXG4gICAgICogQWxzbyBza2lwIGFueSBpbml0aWFsIDAsMCB2YWx1ZXMgc28gdGhlIGNlbnRlciBkb2Vzbid0IHBvdGVudGlhbGx5IFwid2hpcFwiIGZyb20gMCwwIHRvIGEgZmluYWwgbG9hZGVkIHZhbHVlLlxuICAgICAqL1xuICAgIHNraXBXaGlsZTxMYXRMbmdQb2ludD4oaXNEZWZhdWx0TGF0TG5nUG9pbnQpLFxuICAgIGZpbHRlcihpc1ZhbGlkTGF0TG5nUG9pbnQpXG4gICk7XG5cbiAgcmVhZG9ubHkgem9vbSQgPSB0aGlzLl96b29tLmFzT2JzZXJ2YWJsZSgpO1xuICByZWFkb25seSBtYXJrZXJDb25maWckID0gdGhpcy5fbWFya2VyQ29uZmlnLmFzT2JzZXJ2YWJsZSgpLnBpcGUoXG4gICAgc3dpdGNoTWFwKCh4KSA9PiB4KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIGdldCB6b29tKCk6IE1hcGJveFpvb21MZXZlbCB7XG4gICAgcmV0dXJuIE1hdGgubWluKHRoaXMuZmllbGQucHJvcHMuem9vbSB8fCAxMiwgMTgpO1xuICB9XG5cbiAgZ2V0IGZvcm1Hcm91cE5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZC5rZXkgYXMgc3RyaW5nO1xuICB9XG5cbiAgZ2V0IGZvcm1Hcm91cCgpOiBGb3JtR3JvdXAge1xuICAgIHJldHVybiB0aGlzLmZvcm0gYXMgRm9ybUdyb3VwO1xuICB9XG5cbiAgZ2V0IGxhYmVsKCk6IE1heWJlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLmZpZWxkLnByb3BzPy5sYWJlbDtcbiAgfVxuXG4gIGdldCBkZXNjcmlwdGlvbigpOiBNYXliZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5kZXNjcmlwdGlvbjtcbiAgfVxuXG4gIGdldCBpc1JlYWRvbmx5T3JEaXNhYmxlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5yZWFkb25seSB8fCB0aGlzLmRpc2FibGVkO1xuICB9XG5cbiAgZ2V0IHNob3dNYXAoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGQucHJvcHMuc2hvd01hcCA/PyB0cnVlO1xuICB9XG5cbiAgZ2V0IHNlbGVjdExvY2F0aW9uT25NYXBEcmFnKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZpZWxkLnByb3BzLnNlbGVjdExvY2F0aW9uT25NYXBEcmFnID8/IHRydWU7XG4gIH1cblxuICBnZXQgc2VsZWN0TG9jYXRpb25Pbk1hcENsaWNrKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZpZWxkLnByb3BzLnNlbGVjdExvY2F0aW9uT25NYXBDbGljayA/PyBmYWxzZTtcbiAgfVxuXG4gIGdldCBzZXRDZW50ZXJPbkxvY2F0aW9uU2V0KCkge1xuICAgIHJldHVybiB0aGlzLmZpZWxkLnByb3BzLnNldENlbnRlck9uTG9jYXRpb25TZXQgPz8gdHJ1ZTtcbiAgfVxuXG4gIGdldCBzaG93Q2VudGVyQnV0dG9uKCkge1xuICAgIHJldHVybiAhdGhpcy5zZWxlY3RMb2NhdGlvbk9uTWFwRHJhZyAmJiB0aGlzLnByb3BzLnNob3dDZW50ZXJCdXR0b24gIT09IGZhbHNlO1xuICB9XG5cbiAgZ2V0IHJlY2VudGVyVGltZSgpOiBNaWxsaXNlY29uZHMge1xuICAgIHJldHVybiB0aGlzLmZpZWxkLnByb3BzLnJlY2VudGVyVGltZSB8fCAxMCAqIDEwMDA7XG4gIH1cblxuICBnZXQgdXNlQ3VycmVudExvY2F0aW9uRGlzYWJsZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3VzZUN1cnJlbnRMb2NhdGlvbkRpc2FibGVkO1xuICB9XG5cbiAgZ2V0IG1hcEluamVjdGlvbktleSgpIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZC5wcm9wcy5tYXBJbmplY3Rpb25LZXk7XG4gIH1cblxuICBnZXQgbWFya2VyQ29uZmlnKCkge1xuICAgIHJldHVybiB0aGlzLmZpZWxkLnByb3BzLm1hcmtlckNvbmZpZztcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IGxhdExuZ1BvaW50Q29uZmlnID0geyAuLi50aGlzLmZpZWxkLnByb3BzLmxhdExuZ0NvbmZpZywgd3JhcDogdGhpcy5maWVsZC5wcm9wcy5sYXRMbmdDb25maWc/LndyYXAgfHwgZmFsc2UsIHZhbGlkYXRlOiB0aGlzLmZpZWxkLnByb3BzLmxhdExuZ0NvbmZpZz8udmFsaWRhdGUgfHwgZmFsc2UsIHByZWNpc2lvblJvdW5kaW5nOiB0aGlzLmZpZWxkLnByb3BzLmxhdExuZ0NvbmZpZz8ucHJlY2lzaW9uUm91bmRpbmcgPz8gJ3JvdW5kJyB9O1xuICAgIHRoaXMuX2xhdExuZ1N0cmluZ0Z1bmN0aW9uID0gbGF0TG5nU3RyaW5nRnVuY3Rpb24obGF0TG5nUG9pbnRDb25maWcpO1xuICAgIHRoaXMuX2xhdExuZ1BvaW50RnVuY3Rpb24gPSBsYXRMbmdQb2ludEZ1bmN0aW9uKGxhdExuZ1BvaW50Q29uZmlnKTtcblxuICAgIHRoaXMuX2Zvcm1Db250cm9sT2JzLm5leHQodGhpcy5mb3JtQ29udHJvbCk7XG4gICAgdGhpcy5fem9vbS5uZXh0KHRoaXMuem9vbSk7XG5cbiAgICBpZiAodGhpcy5zZXRDZW50ZXJPbkxvY2F0aW9uU2V0KSB7XG4gICAgICB0aGlzLl9jZW50ZXJTdWIuc3Vic2NyaXB0aW9uID0gdGhpcy5kYnhNYXBib3hNYXBTdG9yZS5zZXRDZW50ZXIodGhpcy5ub25aZXJvTGF0TG5nJCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2hvd01hcCkge1xuICAgICAgLy8gU2V0IHpvb20gb25seSBpZiBzaG93TWFwIGlzIHRydWVcbiAgICAgIHRoaXMuZGJ4TWFwYm94TWFwU3RvcmUuc2V0Wm9vbSh0aGlzLnpvb20kKTtcblxuICAgICAgLy8gcmVjZW50ZXIgcGVyaW9kaWNhbGx5XG4gICAgICBpZiAodGhpcy5yZWNlbnRlclRpbWUgPiAwKSB7XG4gICAgICAgIHRoaXMuX2ZseVRvQ2VudGVyU3ViLnN1YnNjcmlwdGlvbiA9IHRoaXMuZGJ4TWFwYm94TWFwU3RvcmUuY2VudGVyJC5waXBlKHNraXAoMSksIHRocm90dGxlVGltZSh0aGlzLnJlY2VudGVyVGltZSwgdW5kZWZpbmVkLCB7IGxlYWRpbmc6IGZhbHNlLCB0cmFpbGluZzogdHJ1ZSB9KSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmZseVRvTWFya2VyKCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyB1c2UgdGhlIGNlbnRlciBvZiB0aGUgbWFwIHRvIHNldCBsb2NhdGlvbnNcbiAgICAgIGlmICh0aGlzLnNlbGVjdExvY2F0aW9uT25NYXBEcmFnKSB7XG4gICAgICAgIHRoaXMuX3N1Yi5zdWJzY3JpcHRpb24gPSB0aGlzLmRieE1hcGJveE1hcFN0b3JlLmNlbnRlciQuc3Vic2NyaWJlKChjZW50ZXIpID0+IHtcbiAgICAgICAgICB0aGlzLmRieE1hcGJveE1hcFN0b3JlLmNlbnRlckdpdmVuTWFyZ2luJC5waXBlKGZpcnN0KCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNSZWFkb25seU9yRGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFZhbHVlKGNlbnRlcik7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgLy8gZW5hYmxlIHNlbGVjdGluZyB0aGUgbG9jYXRpb24gb24gYSBtYXAgY2xpY2tcbiAgICAgIGlmICh0aGlzLnNlbGVjdExvY2F0aW9uT25NYXBDbGljaykge1xuICAgICAgICB0aGlzLl9jbGlja1N1Yi5zdWJzY3JpcHRpb24gPSB0aGlzLmRieE1hcGJveE1hcFN0b3JlLmNsaWNrRXZlbnQkLnN1YnNjcmliZSgoeCkgPT4ge1xuICAgICAgICAgIGlmICh4Py50eXBlID09PSAnY2xpY2snKSB7XG4gICAgICAgICAgICB0aGlzLnNldFZhbHVlKHgubG5nTGF0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLnByb3BzLnJlYWRvbmx5KSB7XG4gICAgICB0aGlzLmZvcm1Db250cm9sLmRpc2FibGUoKTtcbiAgICB9XG5cbiAgICAvLyBBZGQgdGhlIG1hcmtlciB0byB0aGUgaW5qZWN0aW9uIHN0b3JlIGZvciBkaXNwbGF5XG4gICAgaWYgKHRoaXMuZGJ4TWFwYm94SW5qZWN0aW9uU3RvcmUpIHtcbiAgICAgIGlmICh0aGlzLm1hcmtlckNvbmZpZyAhPSBudWxsKSB7XG4gICAgICAgIHRoaXMuX21hcmtlckNvbmZpZy5uZXh0KHRoaXMubWFya2VyQ29uZmlnID09PSBmYWxzZSA/IG9mKGZhbHNlKSA6IGFzT2JzZXJ2YWJsZUZyb21HZXR0ZXIodGhpcy5tYXJrZXJDb25maWcsIHRoaXMpKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5kYnhNYXBib3hJbmplY3Rpb25TdG9yZS5hZGRJbmplY3Rpb25Db25maWcoe1xuICAgICAgICBrZXk6IHRoaXMubWFwSW5qZWN0aW9uS2V5IHx8IERFRkFVTFRfREJYX0ZPUk1fTUFQQk9YX0xBVF9MTkdfRklFTERfSU5KRUNUSU9OX0tFWSxcbiAgICAgICAgaW5qZWN0aW9uQ29uZmlnOiB7XG4gICAgICAgICAgY29tcG9uZW50Q2xhc3M6IERieEZvcm1NYXBib3hMYXRMbmdGaWVsZE1hcmtlckNvbXBvbmVudCxcbiAgICAgICAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IERieEZvcm1NYXBib3hMYXRMbmdGaWVsZENvbXBvbmVudCwgdXNlVmFsdWU6IHRoaXMgfV1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB0aGlzLl96b29tLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fbWFya2VyQ29uZmlnLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fZm9ybUNvbnRyb2xPYnMuY29tcGxldGUoKTtcbiAgICB0aGlzLl9zdWIuZGVzdHJveSgpO1xuICAgIHRoaXMuX2dlb1N1Yi5kZXN0cm95KCk7XG4gICAgdGhpcy5fY2VudGVyU3ViLmRlc3Ryb3koKTtcbiAgICB0aGlzLl9mbHlUb0NlbnRlclN1Yi5kZXN0cm95KCk7XG4gICAgdGhpcy5fY2xpY2tTdWIuZGVzdHJveSgpO1xuICB9XG5cbiAgZmx5VG9NYXJrZXIoKSB7XG4gICAgdGhpcy5kYnhNYXBib3hNYXBTdG9yZS5lYXNlVG8oXG4gICAgICB0aGlzLm5vblplcm9MYXRMbmckLnBpcGUoXG4gICAgICAgIGZpcnN0KCksXG4gICAgICAgIG1hcCgoeCkgPT4gKHsgY2VudGVyOiB4IH0gYXMgTWFwYm94RWFzZVRvKSlcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgdXNlQ3VycmVudExvY2F0aW9uKCkge1xuICAgIHRoaXMuX2dlb1N1Yi5zdWJzY3JpcHRpb24gPSB0aGlzLl9nZW9sb2NhdGlvblNlcnZpY2UucGlwZShmaXJzdCgpKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHBvc2l0aW9uKSA9PiB7XG4gICAgICAgIGlmIChwb3NpdGlvbikge1xuICAgICAgICAgIGNvbnN0IHsgbGF0aXR1ZGU6IGxhdCwgbG9uZ2l0dWRlOiBsbmcgfSA9IHBvc2l0aW9uLmNvb3JkcztcbiAgICAgICAgICB0aGlzLnNldFZhbHVlKHsgbGF0LCBsbmcgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICB0aGlzLl91c2VDdXJyZW50TG9jYXRpb25EaXNhYmxlZC5uZXh0KHRydWUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgb25NYXJrZXJEcmFnRW5kKG1hcmtlcjogTWFya2VyKSB7XG4gICAgdGhpcy5zZXRWYWx1ZShtYXJrZXIuZ2V0TG5nTGF0KCkpO1xuICB9XG5cbiAgc2V0VmFsdWUobGF0TG5nPzogTWF5YmU8TGF0TG5nUG9pbnQ+KSB7XG4gICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZShsYXRMbmcgPyB0aGlzLl9sYXRMbmdTdHJpbmdGdW5jdGlvbihsYXRMbmcpIDogbGF0TG5nKTtcbiAgICB0aGlzLmZvcm1Db250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICB0aGlzLmZvcm1Db250cm9sLm1hcmtBc0RpcnR5KCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, inject } from '@angular/core';
|
|
2
|
-
import { shareReplay, map, combineLatest } from 'rxjs';
|
|
3
|
-
import { DbxFormMapboxLatLngFieldComponent } from './latlng.field.component';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@dereekb/dbx-web/mapbox";
|
|
6
|
-
import * as i2 from "@angular/common";
|
|
7
|
-
export class DbxFormMapboxLatLngFieldMarkerComponent {
|
|
8
|
-
fieldComponent = inject(DbxFormMapboxLatLngFieldComponent);
|
|
9
|
-
marker$ = combineLatest([this.fieldComponent.latLng$, this.fieldComponent.markerConfig$]).pipe(map(([latLng, markerConfig]) => {
|
|
10
|
-
if (markerConfig !== false) {
|
|
11
|
-
return { latLng, ...markerConfig };
|
|
12
|
-
}
|
|
13
|
-
else {
|
|
14
|
-
return undefined;
|
|
15
|
-
}
|
|
16
|
-
}), shareReplay(1));
|
|
17
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormMapboxLatLngFieldMarkerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
18
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DbxFormMapboxLatLngFieldMarkerComponent, selector: "ng-component", ngImport: i0, template: `
|
|
19
|
-
<dbx-mapbox-marker [marker]="marker$ | async"></dbx-mapbox-marker>
|
|
20
|
-
`, isInline: true, dependencies: [{ kind: "component", type: i1.DbxMapboxMarkerComponent, selector: "dbx-mapbox-marker", inputs: ["marker"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
21
|
-
}
|
|
22
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormMapboxLatLngFieldMarkerComponent, decorators: [{
|
|
23
|
-
type: Component,
|
|
24
|
-
args: [{
|
|
25
|
-
template: `
|
|
26
|
-
<dbx-mapbox-marker [marker]="marker$ | async"></dbx-mapbox-marker>
|
|
27
|
-
`,
|
|
28
|
-
changeDetection: ChangeDetectionStrategy.OnPush
|
|
29
|
-
}]
|
|
30
|
-
}] });
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF0bG5nLmZpZWxkLm1hcmtlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9tYXBib3gvc3JjL2xpYi9maWVsZC9sYXRsbmcvbGF0bG5nLmZpZWxkLm1hcmtlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxHQUFHLEVBQWMsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRW5FLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7O0FBUzdFLE1BQU0sT0FBTyx1Q0FBdUM7SUFDekMsY0FBYyxHQUFHLE1BQU0sQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0lBRTNELE9BQU8sR0FBdUMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDekksR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLEVBQUUsRUFBRTtRQUM3QixJQUFJLFlBQVksS0FBSyxLQUFLLEVBQUU7WUFDMUIsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLFlBQVksRUFBRSxDQUFDO1NBQ3BDO2FBQU07WUFDTCxPQUFPLFNBQVMsQ0FBQztTQUNsQjtJQUNILENBQUMsQ0FBQyxFQUNGLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO3dHQVpTLHVDQUF1Qzs0RkFBdkMsdUNBQXVDLG9EQUx4Qzs7R0FFVDs7NEZBR1UsdUNBQXVDO2tCQU5uRCxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRTs7R0FFVDtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHNoYXJlUmVwbGF5LCBtYXAsIE9ic2VydmFibGUsIGNvbWJpbmVMYXRlc3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERieE1hcGJveE1hcmtlciB9IGZyb20gJ0BkZXJlZWtiL2RieC13ZWIvbWFwYm94JztcbmltcG9ydCB7IERieEZvcm1NYXBib3hMYXRMbmdGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vbGF0bG5nLmZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyB0eXBlIE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZTogYFxuICAgIDxkYngtbWFwYm94LW1hcmtlciBbbWFya2VyXT1cIm1hcmtlciQgfCBhc3luY1wiPjwvZGJ4LW1hcGJveC1tYXJrZXI+XG4gIGAsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIERieEZvcm1NYXBib3hMYXRMbmdGaWVsZE1hcmtlckNvbXBvbmVudCB7XG4gIHJlYWRvbmx5IGZpZWxkQ29tcG9uZW50ID0gaW5qZWN0KERieEZvcm1NYXBib3hMYXRMbmdGaWVsZENvbXBvbmVudCk7XG5cbiAgcmVhZG9ubHkgbWFya2VyJDogT2JzZXJ2YWJsZTxNYXliZTxEYnhNYXBib3hNYXJrZXI+PiA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuZmllbGRDb21wb25lbnQubGF0TG5nJCwgdGhpcy5maWVsZENvbXBvbmVudC5tYXJrZXJDb25maWckXSkucGlwZShcbiAgICBtYXAoKFtsYXRMbmcsIG1hcmtlckNvbmZpZ10pID0+IHtcbiAgICAgIGlmIChtYXJrZXJDb25maWcgIT09IGZhbHNlKSB7XG4gICAgICAgIHJldHVybiB7IGxhdExuZywgLi4ubWFya2VyQ29uZmlnIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgIH0pLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG59XG4iXX0=
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { DEFAULT_LAT_LNG_TEXT_FIELD_PATTERN_MESSAGE, DEFAULT_LAT_LNG_TEXT_FIELD_PLACEHOLDER, formlyField, propsAndConfigForFieldConfig, validatorsForFieldConfig } from '@dereekb/dbx-form';
|
|
2
|
-
import { LAT_LNG_PATTERN } from '@dereekb/util';
|
|
3
|
-
export function mapboxLatLngField(config = {}) {
|
|
4
|
-
const { key = 'latLng', latLngConfig, showMap, zoom, recenterTime, showCenterButton, setCenterOnLocationSet, selectLocationOnMapDrag, selectLocationOnMapClick, markerConfig } = config;
|
|
5
|
-
const classGetter = 'dbx-mat-form-field-disable-underline';
|
|
6
|
-
const fieldConfig = {
|
|
7
|
-
...formlyField({
|
|
8
|
-
key,
|
|
9
|
-
type: 'mapbox-latlng-picker',
|
|
10
|
-
...propsAndConfigForFieldConfig(config, {
|
|
11
|
-
classGetter,
|
|
12
|
-
label: config.label ?? 'Location',
|
|
13
|
-
placeholder: DEFAULT_LAT_LNG_TEXT_FIELD_PLACEHOLDER,
|
|
14
|
-
pattern: LAT_LNG_PATTERN,
|
|
15
|
-
autocomplete: false,
|
|
16
|
-
showMap,
|
|
17
|
-
zoom,
|
|
18
|
-
latLngConfig,
|
|
19
|
-
recenterTime,
|
|
20
|
-
selectLocationOnMapDrag,
|
|
21
|
-
selectLocationOnMapClick,
|
|
22
|
-
showCenterButton,
|
|
23
|
-
setCenterOnLocationSet,
|
|
24
|
-
markerConfig
|
|
25
|
-
})
|
|
26
|
-
}),
|
|
27
|
-
...validatorsForFieldConfig({
|
|
28
|
-
messages: {
|
|
29
|
-
pattern: DEFAULT_LAT_LNG_TEXT_FIELD_PATTERN_MESSAGE
|
|
30
|
-
}
|
|
31
|
-
})
|
|
32
|
-
};
|
|
33
|
-
return fieldConfig;
|
|
34
|
-
}
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF0bG5nLmZpZWxkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZvcm0vbWFwYm94L3NyYy9saWIvZmllbGQvbGF0bG5nL2xhdGxuZy5maWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsMENBQTBDLEVBQUUsc0NBQXNDLEVBQXVDLFdBQVcsRUFBc0IsNEJBQTRCLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNyUCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBTWhELE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxTQUFrQyxFQUFFO0lBQ3BFLE1BQU0sRUFBRSxHQUFHLEdBQUcsUUFBUSxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxzQkFBc0IsRUFBRSx1QkFBdUIsRUFBRSx3QkFBd0IsRUFBRSxZQUFZLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFFeEwsTUFBTSxXQUFXLEdBQUcsc0NBQXNDLENBQUM7SUFDM0QsTUFBTSxXQUFXLEdBQXNCO1FBQ3JDLEdBQUcsV0FBVyxDQUFDO1lBQ2IsR0FBRztZQUNILElBQUksRUFBRSxzQkFBc0I7WUFDNUIsR0FBRyw0QkFBNEIsQ0FBQyxNQUFNLEVBQUU7Z0JBQ3RDLFdBQVc7Z0JBQ1gsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLElBQUksVUFBVTtnQkFDakMsV0FBVyxFQUFFLHNDQUFzQztnQkFDbkQsT0FBTyxFQUFFLGVBQWU7Z0JBQ3hCLFlBQVksRUFBRSxLQUFLO2dCQUNuQixPQUFPO2dCQUNQLElBQUk7Z0JBQ0osWUFBWTtnQkFDWixZQUFZO2dCQUNaLHVCQUF1QjtnQkFDdkIsd0JBQXdCO2dCQUN4QixnQkFBZ0I7Z0JBQ2hCLHNCQUFzQjtnQkFDdEIsWUFBWTthQUNiLENBQUM7U0FDSCxDQUFDO1FBQ0YsR0FBRyx3QkFBd0IsQ0FBQztZQUMxQixRQUFRLEVBQUU7Z0JBQ1IsT0FBTyxFQUFFLDBDQUEwQzthQUNwRDtTQUNGLENBQUM7S0FDSCxDQUFDO0lBRUYsT0FBTyxXQUFXLENBQUM7QUFDckIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERFRkFVTFRfTEFUX0xOR19URVhUX0ZJRUxEX1BBVFRFUk5fTUVTU0FHRSwgREVGQVVMVF9MQVRfTE5HX1RFWFRfRklFTERfUExBQ0VIT0xERVIsIERlc2NyaXB0aW9uRmllbGRDb25maWcsIEZpZWxkQ29uZmlnLCBmb3JtbHlGaWVsZCwgTGFiZWxlZEZpZWxkQ29uZmlnLCBwcm9wc0FuZENvbmZpZ0ZvckZpZWxkQ29uZmlnLCB2YWxpZGF0b3JzRm9yRmllbGRDb25maWcgfSBmcm9tICdAZGVyZWVrYi9kYngtZm9ybSc7XG5pbXBvcnQgeyBMQVRfTE5HX1BBVFRFUk4gfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IEZvcm1seUZpZWxkQ29uZmlnIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQgeyBEYnhGb3JtTWFwYm94TGF0TG5nQ29tcG9uZW50RmllbGRQcm9wcyB9IGZyb20gJy4vbGF0bG5nLmZpZWxkLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFwYm94TGF0TG5nRmllbGRDb25maWcgZXh0ZW5kcyBPbWl0PExhYmVsZWRGaWVsZENvbmZpZywgJ2tleSc+LCBEZXNjcmlwdGlvbkZpZWxkQ29uZmlnLCBQYXJ0aWFsPEZpZWxkQ29uZmlnPiwgUGljazxEYnhGb3JtTWFwYm94TGF0TG5nQ29tcG9uZW50RmllbGRQcm9wcywgJ3Nob3dNYXAnIHwgJ3pvb20nIHwgJ2xhdExuZ0NvbmZpZycgfCAncmVjZW50ZXJUaW1lJyB8ICdzZXRDZW50ZXJPbkxvY2F0aW9uU2V0JyB8ICdzaG93Q2VudGVyQnV0dG9uJyB8ICdzZWxlY3RMb2NhdGlvbk9uTWFwRHJhZycgfCAnc2VsZWN0TG9jYXRpb25Pbk1hcENsaWNrJyB8ICdtYXJrZXJDb25maWcnPiB7fVxuXG5leHBvcnQgZnVuY3Rpb24gbWFwYm94TGF0TG5nRmllbGQoY29uZmlnOiBNYXBib3hMYXRMbmdGaWVsZENvbmZpZyA9IHt9KTogRm9ybWx5RmllbGRDb25maWcge1xuICBjb25zdCB7IGtleSA9ICdsYXRMbmcnLCBsYXRMbmdDb25maWcsIHNob3dNYXAsIHpvb20sIHJlY2VudGVyVGltZSwgc2hvd0NlbnRlckJ1dHRvbiwgc2V0Q2VudGVyT25Mb2NhdGlvblNldCwgc2VsZWN0TG9jYXRpb25Pbk1hcERyYWcsIHNlbGVjdExvY2F0aW9uT25NYXBDbGljaywgbWFya2VyQ29uZmlnIH0gPSBjb25maWc7XG5cbiAgY29uc3QgY2xhc3NHZXR0ZXIgPSAnZGJ4LW1hdC1mb3JtLWZpZWxkLWRpc2FibGUtdW5kZXJsaW5lJztcbiAgY29uc3QgZmllbGRDb25maWc6IEZvcm1seUZpZWxkQ29uZmlnID0ge1xuICAgIC4uLmZvcm1seUZpZWxkKHtcbiAgICAgIGtleSxcbiAgICAgIHR5cGU6ICdtYXBib3gtbGF0bG5nLXBpY2tlcicsXG4gICAgICAuLi5wcm9wc0FuZENvbmZpZ0ZvckZpZWxkQ29uZmlnKGNvbmZpZywge1xuICAgICAgICBjbGFzc0dldHRlcixcbiAgICAgICAgbGFiZWw6IGNvbmZpZy5sYWJlbCA/PyAnTG9jYXRpb24nLFxuICAgICAgICBwbGFjZWhvbGRlcjogREVGQVVMVF9MQVRfTE5HX1RFWFRfRklFTERfUExBQ0VIT0xERVIsXG4gICAgICAgIHBhdHRlcm46IExBVF9MTkdfUEFUVEVSTixcbiAgICAgICAgYXV0b2NvbXBsZXRlOiBmYWxzZSxcbiAgICAgICAgc2hvd01hcCxcbiAgICAgICAgem9vbSxcbiAgICAgICAgbGF0TG5nQ29uZmlnLFxuICAgICAgICByZWNlbnRlclRpbWUsXG4gICAgICAgIHNlbGVjdExvY2F0aW9uT25NYXBEcmFnLFxuICAgICAgICBzZWxlY3RMb2NhdGlvbk9uTWFwQ2xpY2ssXG4gICAgICAgIHNob3dDZW50ZXJCdXR0b24sXG4gICAgICAgIHNldENlbnRlck9uTG9jYXRpb25TZXQsXG4gICAgICAgIG1hcmtlckNvbmZpZ1xuICAgICAgfSlcbiAgICB9KSxcbiAgICAuLi52YWxpZGF0b3JzRm9yRmllbGRDb25maWcoe1xuICAgICAgbWVzc2FnZXM6IHtcbiAgICAgICAgcGF0dGVybjogREVGQVVMVF9MQVRfTE5HX1RFWFRfRklFTERfUEFUVEVSTl9NRVNTQUdFXG4gICAgICB9XG4gICAgfSlcbiAgfTtcblxuICByZXR1cm4gZmllbGRDb25maWc7XG59XG4iXX0=
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { DbxFormMapboxLatLngFieldComponent } from './latlng.field.component';
|
|
4
|
-
import { FormlyModule } from '@ngx-formly/core';
|
|
5
|
-
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
6
|
-
import { MatInputModule } from '@angular/material/input';
|
|
7
|
-
import { DbxTextModule } from '@dereekb/dbx-web';
|
|
8
|
-
import { NgxMapboxGLModule } from 'ngx-mapbox-gl';
|
|
9
|
-
import { MatIconModule } from '@angular/material/icon';
|
|
10
|
-
import { MatButtonModule } from '@angular/material/button';
|
|
11
|
-
import { DbxMapboxModule } from '@dereekb/dbx-web/mapbox';
|
|
12
|
-
import { DbxFormMapboxLatLngFieldMarkerComponent } from './latlng.field.marker.component';
|
|
13
|
-
import * as i0 from "@angular/core";
|
|
14
|
-
import * as i1 from "@ngx-formly/core";
|
|
15
|
-
export class DbxFormMapboxLatLngModule {
|
|
16
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormMapboxLatLngModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
17
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DbxFormMapboxLatLngModule, declarations: [DbxFormMapboxLatLngFieldComponent, DbxFormMapboxLatLngFieldMarkerComponent], imports: [CommonModule,
|
|
18
|
-
MatIconModule,
|
|
19
|
-
MatButtonModule,
|
|
20
|
-
DbxTextModule,
|
|
21
|
-
DbxMapboxModule,
|
|
22
|
-
FormsModule,
|
|
23
|
-
ReactiveFormsModule,
|
|
24
|
-
MatInputModule, i1.FormlyModule, NgxMapboxGLModule], exports: [DbxFormMapboxLatLngFieldMarkerComponent] });
|
|
25
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormMapboxLatLngModule, imports: [CommonModule,
|
|
26
|
-
MatIconModule,
|
|
27
|
-
MatButtonModule,
|
|
28
|
-
DbxTextModule,
|
|
29
|
-
DbxMapboxModule,
|
|
30
|
-
FormsModule,
|
|
31
|
-
ReactiveFormsModule,
|
|
32
|
-
MatInputModule,
|
|
33
|
-
FormlyModule.forChild({
|
|
34
|
-
types: [{ name: 'mapbox-latlng-picker', component: DbxFormMapboxLatLngFieldComponent, wrappers: ['style', 'form-field'] }]
|
|
35
|
-
}),
|
|
36
|
-
NgxMapboxGLModule] });
|
|
37
|
-
}
|
|
38
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormMapboxLatLngModule, decorators: [{
|
|
39
|
-
type: NgModule,
|
|
40
|
-
args: [{
|
|
41
|
-
imports: [
|
|
42
|
-
CommonModule,
|
|
43
|
-
MatIconModule,
|
|
44
|
-
MatButtonModule,
|
|
45
|
-
DbxTextModule,
|
|
46
|
-
DbxMapboxModule,
|
|
47
|
-
FormsModule,
|
|
48
|
-
ReactiveFormsModule,
|
|
49
|
-
MatInputModule,
|
|
50
|
-
FormlyModule.forChild({
|
|
51
|
-
types: [{ name: 'mapbox-latlng-picker', component: DbxFormMapboxLatLngFieldComponent, wrappers: ['style', 'form-field'] }]
|
|
52
|
-
}),
|
|
53
|
-
NgxMapboxGLModule
|
|
54
|
-
],
|
|
55
|
-
declarations: [DbxFormMapboxLatLngFieldComponent, DbxFormMapboxLatLngFieldMarkerComponent],
|
|
56
|
-
exports: [DbxFormMapboxLatLngFieldMarkerComponent]
|
|
57
|
-
}]
|
|
58
|
-
}] });
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF0bG5nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1mb3JtL21hcGJveC9zcmMvbGliL2ZpZWxkL2xhdGxuZy9sYXRsbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHVDQUF1QyxFQUFFLE1BQU0saUNBQWlDLENBQUM7OztBQW9CMUYsTUFBTSxPQUFPLHlCQUF5Qjt3R0FBekIseUJBQXlCO3lHQUF6Qix5QkFBeUIsaUJBSHJCLGlDQUFpQyxFQUFFLHVDQUF1QyxhQWJ2RixZQUFZO1lBQ1osYUFBYTtZQUNiLGVBQWU7WUFDZixhQUFhO1lBQ2IsZUFBZTtZQUNmLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsY0FBYyxtQkFJZCxpQkFBaUIsYUFHVCx1Q0FBdUM7eUdBRXRDLHlCQUF5QixZQWhCbEMsWUFBWTtZQUNaLGFBQWE7WUFDYixlQUFlO1lBQ2YsYUFBYTtZQUNiLGVBQWU7WUFDZixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLGNBQWM7WUFDZCxZQUFZLENBQUMsUUFBUSxDQUFDO2dCQUNwQixLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxzQkFBc0IsRUFBRSxTQUFTLEVBQUUsaUNBQWlDLEVBQUUsUUFBUSxFQUFFLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxFQUFFLENBQUM7YUFDM0gsQ0FBQztZQUNGLGlCQUFpQjs7NEZBS1IseUJBQXlCO2tCQWxCckMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixlQUFlO3dCQUNmLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixjQUFjO3dCQUNkLFlBQVksQ0FBQyxRQUFRLENBQUM7NEJBQ3BCLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLHNCQUFzQixFQUFFLFNBQVMsRUFBRSxpQ0FBaUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLEVBQUUsQ0FBQzt5QkFDM0gsQ0FBQzt3QkFDRixpQkFBaUI7cUJBQ2xCO29CQUNELFlBQVksRUFBRSxDQUFDLGlDQUFpQyxFQUFFLHVDQUF1QyxDQUFDO29CQUMxRixPQUFPLEVBQUUsQ0FBQyx1Q0FBdUMsQ0FBQztpQkFDbkQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERieEZvcm1NYXBib3hMYXRMbmdGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vbGF0bG5nLmZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtbHlNb2R1bGUgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBEYnhUZXh0TW9kdWxlIH0gZnJvbSAnQGRlcmVla2IvZGJ4LXdlYic7XG5pbXBvcnQgeyBOZ3hNYXBib3hHTE1vZHVsZSB9IGZyb20gJ25neC1tYXBib3gtZ2wnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IERieE1hcGJveE1vZHVsZSB9IGZyb20gJ0BkZXJlZWtiL2RieC13ZWIvbWFwYm94JztcbmltcG9ydCB7IERieEZvcm1NYXBib3hMYXRMbmdGaWVsZE1hcmtlckNvbXBvbmVudCB9IGZyb20gJy4vbGF0bG5nLmZpZWxkLm1hcmtlci5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIERieFRleHRNb2R1bGUsXG4gICAgRGJ4TWFwYm94TW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgRm9ybWx5TW9kdWxlLmZvckNoaWxkKHtcbiAgICAgIHR5cGVzOiBbeyBuYW1lOiAnbWFwYm94LWxhdGxuZy1waWNrZXInLCBjb21wb25lbnQ6IERieEZvcm1NYXBib3hMYXRMbmdGaWVsZENvbXBvbmVudCwgd3JhcHBlcnM6IFsnc3R5bGUnLCAnZm9ybS1maWVsZCddIH1dXG4gICAgfSksXG4gICAgTmd4TWFwYm94R0xNb2R1bGVcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbRGJ4Rm9ybU1hcGJveExhdExuZ0ZpZWxkQ29tcG9uZW50LCBEYnhGb3JtTWFwYm94TGF0TG5nRmllbGRNYXJrZXJDb21wb25lbnRdLFxuICBleHBvcnRzOiBbRGJ4Rm9ybU1hcGJveExhdExuZ0ZpZWxkTWFya2VyQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBEYnhGb3JtTWFwYm94TGF0TG5nTW9kdWxlIHt9XG4iXX0=
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export * from './zoom.field';
|
|
2
|
-
export * from './zoom.field.component';
|
|
3
|
-
export * from './zoom.module';
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9tYXBib3gvc3JjL2xpYi9maWVsZC96b29tL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3pvb20uZmllbGQnO1xuZXhwb3J0ICogZnJvbSAnLi96b29tLmZpZWxkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3pvb20ubW9kdWxlJztcbiJdfQ==
|