@dereekb/dbx-form 12.6.21 → 13.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/LICENSE +1 -1
- package/fesm2022/dereekb-dbx-form-calendar.mjs +86 -86
- package/fesm2022/dereekb-dbx-form-calendar.mjs.map +1 -1
- package/fesm2022/dereekb-dbx-form-mapbox.mjs +28 -28
- package/fesm2022/dereekb-dbx-form-mapbox.mjs.map +1 -1
- package/fesm2022/dereekb-dbx-form.mjs +429 -600
- package/fesm2022/dereekb-dbx-form.mjs.map +1 -1
- package/lib/formly/field/value/phone/_phone.scss +1 -0
- package/lib/style/_theming.scss +196 -1
- package/package.json +26 -32
- package/types/dereekb-dbx-form-calendar.d.ts +679 -0
- package/types/dereekb-dbx-form-mapbox.d.ts +216 -0
- package/types/dereekb-dbx-form.d.ts +3050 -0
- package/calendar/index.d.ts +0 -1
- package/calendar/lib/calendar.module.d.ts +0 -19
- package/calendar/lib/calendar.schedule.selection.cell.component.d.ts +0 -16
- package/calendar/lib/calendar.schedule.selection.component.d.ts +0 -74
- package/calendar/lib/calendar.schedule.selection.d.ts +0 -29
- package/calendar/lib/calendar.schedule.selection.days.component.d.ts +0 -15
- package/calendar/lib/calendar.schedule.selection.days.form.component.d.ts +0 -10
- package/calendar/lib/calendar.schedule.selection.dialog.button.component.d.ts +0 -15
- package/calendar/lib/calendar.schedule.selection.dialog.component.d.ts +0 -24
- package/calendar/lib/calendar.schedule.selection.form.d.ts +0 -4
- package/calendar/lib/calendar.schedule.selection.popover.button.component.d.ts +0 -17
- package/calendar/lib/calendar.schedule.selection.popover.component.d.ts +0 -14
- package/calendar/lib/calendar.schedule.selection.popover.content.component.d.ts +0 -5
- package/calendar/lib/calendar.schedule.selection.range.component.d.ts +0 -52
- package/calendar/lib/calendar.schedule.selection.store.d.ts +0 -282
- package/calendar/lib/calendar.schedule.selection.store.provide.d.ts +0 -23
- package/calendar/lib/calendar.schedule.selection.toggle.button.component.d.ts +0 -18
- package/calendar/lib/field/index.d.ts +0 -1
- package/calendar/lib/field/schedule/calendar.schedule.field.component.d.ts +0 -102
- package/calendar/lib/field/schedule/calendar.schedule.field.d.ts +0 -6
- package/calendar/lib/field/schedule/calendar.schedule.module.d.ts +0 -8
- package/calendar/lib/field/schedule/index.d.ts +0 -3
- package/calendar/lib/index.d.ts +0 -17
- package/esm2022/calendar/dereekb-dbx-form-calendar.mjs +0 -5
- package/esm2022/calendar/index.mjs +0 -2
- package/esm2022/calendar/lib/calendar.module.mjs +0 -84
- package/esm2022/calendar/lib/calendar.schedule.selection.cell.component.mjs +0 -42
- package/esm2022/calendar/lib/calendar.schedule.selection.component.mjs +0 -156
- package/esm2022/calendar/lib/calendar.schedule.selection.days.component.mjs +0 -47
- package/esm2022/calendar/lib/calendar.schedule.selection.days.form.component.mjs +0 -22
- package/esm2022/calendar/lib/calendar.schedule.selection.dialog.button.component.mjs +0 -32
- package/esm2022/calendar/lib/calendar.schedule.selection.dialog.component.mjs +0 -59
- package/esm2022/calendar/lib/calendar.schedule.selection.form.mjs +0 -15
- package/esm2022/calendar/lib/calendar.schedule.selection.mjs +0 -31
- package/esm2022/calendar/lib/calendar.schedule.selection.popover.button.component.mjs +0 -50
- package/esm2022/calendar/lib/calendar.schedule.selection.popover.component.mjs +0 -41
- package/esm2022/calendar/lib/calendar.schedule.selection.popover.content.component.mjs +0 -34
- package/esm2022/calendar/lib/calendar.schedule.selection.range.component.mjs +0 -165
- package/esm2022/calendar/lib/calendar.schedule.selection.store.mjs +0 -785
- package/esm2022/calendar/lib/calendar.schedule.selection.store.provide.mjs +0 -48
- package/esm2022/calendar/lib/calendar.schedule.selection.toggle.button.component.mjs +0 -67
- package/esm2022/calendar/lib/field/index.mjs +0 -3
- package/esm2022/calendar/lib/field/schedule/calendar.schedule.field.component.mjs +0 -154
- package/esm2022/calendar/lib/field/schedule/calendar.schedule.field.mjs +0 -28
- package/esm2022/calendar/lib/field/schedule/calendar.schedule.module.mjs +0 -26
- package/esm2022/calendar/lib/field/schedule/index.mjs +0 -4
- package/esm2022/calendar/lib/index.mjs +0 -18
- package/esm2022/dereekb-dbx-form.mjs +0 -5
- package/esm2022/index.mjs +0 -2
- package/esm2022/lib/form/action/form.action.dialog.component.mjs +0 -79
- package/esm2022/lib/form/action/form.action.directive.mjs +0 -167
- package/esm2022/lib/form/action/form.action.module.mjs +0 -19
- package/esm2022/lib/form/action/index.mjs +0 -5
- package/esm2022/lib/form/action/transition/form.action.transition.module.mjs +0 -19
- package/esm2022/lib/form/action/transition/form.action.transition.safety.directive.mjs +0 -28
- package/esm2022/lib/form/action/transition/index.mjs +0 -3
- package/esm2022/lib/form/form.angular.util.mjs +0 -13
- package/esm2022/lib/form/form.mjs +0 -42
- package/esm2022/lib/form/form.module.mjs +0 -17
- package/esm2022/lib/form/index.mjs +0 -6
- package/esm2022/lib/form/io/form.change.directive.mjs +0 -36
- package/esm2022/lib/form/io/form.input.directive.mjs +0 -95
- package/esm2022/lib/form/io/form.io.module.mjs +0 -26
- package/esm2022/lib/form/io/form.loading.directive.mjs +0 -36
- package/esm2022/lib/form/io/index.mjs +0 -5
- package/esm2022/lib/form.module.mjs +0 -18
- package/esm2022/lib/form.providers.mjs +0 -32
- package/esm2022/lib/formly/config/index.mjs +0 -2
- package/esm2022/lib/formly/config/validation.mjs +0 -23
- package/esm2022/lib/formly/field/checklist/checklist.field.mjs +0 -102
- package/esm2022/lib/formly/field/checklist/checklist.item.field.component.mjs +0 -86
- package/esm2022/lib/formly/field/checklist/checklist.item.field.content.default.component.mjs +0 -50
- package/esm2022/lib/formly/field/checklist/checklist.item.field.mjs +0 -14
- package/esm2022/lib/formly/field/checklist/checklist.item.field.module.mjs +0 -30
- package/esm2022/lib/formly/field/checklist/checklist.item.mjs +0 -2
- package/esm2022/lib/formly/field/checklist/index.mjs +0 -7
- package/esm2022/lib/formly/field/component/component.field.component.mjs +0 -25
- package/esm2022/lib/formly/field/component/component.field.mjs +0 -7
- package/esm2022/lib/formly/field/component/component.field.module.mjs +0 -26
- package/esm2022/lib/formly/field/component/index.mjs +0 -4
- package/esm2022/lib/formly/field/field.mjs +0 -97
- package/esm2022/lib/formly/field/form.field.module.mjs +0 -22
- package/esm2022/lib/formly/field/index.mjs +0 -9
- package/esm2022/lib/formly/field/selection/index.mjs +0 -8
- package/esm2022/lib/formly/field/selection/list/index.mjs +0 -4
- package/esm2022/lib/formly/field/selection/list/list.field.component.mjs +0 -90
- package/esm2022/lib/formly/field/selection/list/list.field.mjs +0 -15
- package/esm2022/lib/formly/field/selection/list/list.field.module.mjs +0 -26
- package/esm2022/lib/formly/field/selection/pickable/index.mjs +0 -8
- package/esm2022/lib/formly/field/selection/pickable/pickable.chip.field.component.mjs +0 -37
- package/esm2022/lib/formly/field/selection/pickable/pickable.field.directive.mjs +0 -272
- package/esm2022/lib/formly/field/selection/pickable/pickable.field.mjs +0 -26
- package/esm2022/lib/formly/field/selection/pickable/pickable.field.module.mjs +0 -33
- package/esm2022/lib/formly/field/selection/pickable/pickable.list.field.component.mjs +0 -130
- package/esm2022/lib/formly/field/selection/pickable/pickable.mjs +0 -2
- package/esm2022/lib/formly/field/selection/pickable/pickable.util.mjs +0 -35
- package/esm2022/lib/formly/field/selection/searchable/index.mjs +0 -9
- package/esm2022/lib/formly/field/selection/searchable/searchable.chip.field.component.mjs +0 -70
- package/esm2022/lib/formly/field/selection/searchable/searchable.field.autocomplete.item.component.mjs +0 -90
- package/esm2022/lib/formly/field/selection/searchable/searchable.field.directive.mjs +0 -288
- package/esm2022/lib/formly/field/selection/searchable/searchable.field.mjs +0 -69
- package/esm2022/lib/formly/field/selection/searchable/searchable.field.module.mjs +0 -34
- package/esm2022/lib/formly/field/selection/searchable/searchable.mjs +0 -2
- package/esm2022/lib/formly/field/selection/searchable/searchable.text.field.component.mjs +0 -72
- package/esm2022/lib/formly/field/selection/searchable/text.chip.field.mjs +0 -15
- package/esm2022/lib/formly/field/selection/selection.field.mjs +0 -39
- package/esm2022/lib/formly/field/selection/selection.mjs +0 -2
- package/esm2022/lib/formly/field/selection/selection.module.mjs +0 -28
- package/esm2022/lib/formly/field/selection/sourceselect/index.mjs +0 -5
- package/esm2022/lib/formly/field/selection/sourceselect/sourceselect.field.component.mjs +0 -325
- package/esm2022/lib/formly/field/selection/sourceselect/sourceselect.field.mjs +0 -14
- package/esm2022/lib/formly/field/selection/sourceselect/sourceselect.field.module.mjs +0 -26
- package/esm2022/lib/formly/field/selection/sourceselect/sourceselect.mjs +0 -2
- package/esm2022/lib/formly/field/texteditor/index.mjs +0 -4
- package/esm2022/lib/formly/field/texteditor/texteditor.field.component.mjs +0 -97
- package/esm2022/lib/formly/field/texteditor/texteditor.field.mjs +0 -21
- package/esm2022/lib/formly/field/texteditor/texteditor.field.module.mjs +0 -26
- package/esm2022/lib/formly/field/value/array/array.field.component.mjs +0 -231
- package/esm2022/lib/formly/field/value/array/array.field.mjs +0 -28
- package/esm2022/lib/formly/field/value/array/array.field.module.mjs +0 -26
- package/esm2022/lib/formly/field/value/array/index.mjs +0 -4
- package/esm2022/lib/formly/field/value/boolean/boolean.field.mjs +0 -51
- package/esm2022/lib/formly/field/value/boolean/boolean.field.module.mjs +0 -19
- package/esm2022/lib/formly/field/value/boolean/index.mjs +0 -3
- package/esm2022/lib/formly/field/value/date/date.field.module.mjs +0 -36
- package/esm2022/lib/formly/field/value/date/date.value.mjs +0 -133
- package/esm2022/lib/formly/field/value/date/datetime.field.component.mjs +0 -737
- package/esm2022/lib/formly/field/value/date/datetime.field.mjs +0 -151
- package/esm2022/lib/formly/field/value/date/datetime.field.service.mjs +0 -23
- package/esm2022/lib/formly/field/value/date/datetime.mjs +0 -26
- package/esm2022/lib/formly/field/value/date/datetime.preset.mjs +0 -31
- package/esm2022/lib/formly/field/value/date/fixeddaterange.field.component.mjs +0 -521
- package/esm2022/lib/formly/field/value/date/index.mjs +0 -10
- package/esm2022/lib/formly/field/value/hidden.field.mjs +0 -8
- package/esm2022/lib/formly/field/value/index.mjs +0 -9
- package/esm2022/lib/formly/field/value/number/index.mjs +0 -3
- package/esm2022/lib/formly/field/value/number/number.field.mjs +0 -75
- package/esm2022/lib/formly/field/value/number/number.field.module.mjs +0 -18
- package/esm2022/lib/formly/field/value/phone/index.mjs +0 -4
- package/esm2022/lib/formly/field/value/phone/phone.field.component.mjs +0 -104
- package/esm2022/lib/formly/field/value/phone/phone.field.mjs +0 -66
- package/esm2022/lib/formly/field/value/phone/phone.field.module.mjs +0 -26
- package/esm2022/lib/formly/field/value/text/index.mjs +0 -5
- package/esm2022/lib/formly/field/value/text/text.additional.field.mjs +0 -114
- package/esm2022/lib/formly/field/value/text/text.address.field.mjs +0 -73
- package/esm2022/lib/formly/field/value/text/text.field.mjs +0 -47
- package/esm2022/lib/formly/field/value/text/text.field.module.mjs +0 -20
- package/esm2022/lib/formly/field/value/value.module.mjs +0 -31
- package/esm2022/lib/formly/field/wrapper/autotouch.wrapper.component.mjs +0 -32
- package/esm2022/lib/formly/field/wrapper/expand.wrapper.component.mjs +0 -34
- package/esm2022/lib/formly/field/wrapper/expand.wrapper.delegate.mjs +0 -58
- package/esm2022/lib/formly/field/wrapper/flex.wrapper.component.mjs +0 -38
- package/esm2022/lib/formly/field/wrapper/index.mjs +0 -13
- package/esm2022/lib/formly/field/wrapper/info.wrapper.component.mjs +0 -48
- package/esm2022/lib/formly/field/wrapper/section.wrapper.component.mjs +0 -31
- package/esm2022/lib/formly/field/wrapper/style.wrapper.component.mjs +0 -53
- package/esm2022/lib/formly/field/wrapper/subsection.wrapper.component.mjs +0 -30
- package/esm2022/lib/formly/field/wrapper/toggle.wrapper.component.mjs +0 -55
- package/esm2022/lib/formly/field/wrapper/working.wrapper.component.mjs +0 -45
- package/esm2022/lib/formly/field/wrapper/wrapper.key.mjs +0 -10
- package/esm2022/lib/formly/field/wrapper/wrapper.mjs +0 -77
- package/esm2022/lib/formly/field/wrapper/wrapper.module.mjs +0 -101
- package/esm2022/lib/formly/form/form.form.mjs +0 -17
- package/esm2022/lib/formly/form/form.form.module.mjs +0 -20
- package/esm2022/lib/formly/form/index.mjs +0 -4
- package/esm2022/lib/formly/form/search.form.component.mjs +0 -35
- package/esm2022/lib/formly/formly.component.template.mjs +0 -29
- package/esm2022/lib/formly/formly.context.directive.mjs +0 -23
- package/esm2022/lib/formly/formly.context.mjs +0 -102
- package/esm2022/lib/formly/formly.directive.mjs +0 -84
- package/esm2022/lib/formly/formly.form.component.mjs +0 -194
- package/esm2022/lib/formly/formly.module.mjs +0 -40
- package/esm2022/lib/formly/formly.providers.mjs +0 -8
- package/esm2022/lib/formly/index.mjs +0 -12
- package/esm2022/lib/formly/template/available.mjs +0 -18
- package/esm2022/lib/formly/template/available.module.mjs +0 -18
- package/esm2022/lib/formly/template/index.mjs +0 -8
- package/esm2022/lib/formly/template/login.mjs +0 -92
- package/esm2022/lib/formly/template/login.module.mjs +0 -17
- package/esm2022/lib/formly/template/timezone.mjs +0 -46
- package/esm2022/lib/formly/template/timezone.module.mjs +0 -17
- package/esm2022/lib/formly/template/website.mjs +0 -25
- package/esm2022/lib/index.mjs +0 -7
- package/esm2022/lib/layout/form.layout.module.mjs +0 -20
- package/esm2022/lib/layout/form.spacer.directive.mjs +0 -20
- package/esm2022/lib/layout/index.mjs +0 -3
- package/esm2022/lib/validator/available.mjs +0 -31
- package/esm2022/lib/validator/boolean.mjs +0 -12
- package/esm2022/lib/validator/email.mjs +0 -6
- package/esm2022/lib/validator/field.mjs +0 -31
- package/esm2022/lib/validator/index.mjs +0 -8
- package/esm2022/lib/validator/number.mjs +0 -53
- package/esm2022/lib/validator/phone.mjs +0 -61
- package/esm2022/lib/validator/website.mjs +0 -68
- package/esm2022/mapbox/dereekb-dbx-form-mapbox.mjs +0 -5
- package/esm2022/mapbox/index.mjs +0 -3
- package/esm2022/mapbox/lib/field/index.mjs +0 -3
- package/esm2022/mapbox/lib/field/latlng/index.mjs +0 -5
- package/esm2022/mapbox/lib/field/latlng/latlng.field.component.mjs +0 -262
- package/esm2022/mapbox/lib/field/latlng/latlng.field.marker.component.mjs +0 -34
- package/esm2022/mapbox/lib/field/latlng/latlng.field.mjs +0 -35
- package/esm2022/mapbox/lib/field/latlng/latlng.module.mjs +0 -26
- package/esm2022/mapbox/lib/field/zoom/index.mjs +0 -4
- package/esm2022/mapbox/lib/field/zoom/zoom.field.component.mjs +0 -146
- package/esm2022/mapbox/lib/field/zoom/zoom.field.mjs +0 -23
- package/esm2022/mapbox/lib/field/zoom/zoom.module.mjs +0 -26
- package/esm2022/mapbox/lib/mapbox.module.mjs +0 -16
- package/index.d.ts +0 -1
- package/lib/form/action/form.action.dialog.component.d.ts +0 -63
- package/lib/form/action/form.action.directive.d.ts +0 -66
- package/lib/form/action/form.action.module.d.ts +0 -10
- package/lib/form/action/index.d.ts +0 -4
- package/lib/form/action/transition/form.action.transition.module.d.ts +0 -10
- package/lib/form/action/transition/form.action.transition.safety.directive.d.ts +0 -17
- package/lib/form/action/transition/index.d.ts +0 -2
- package/lib/form/form.angular.util.d.ts +0 -15
- package/lib/form/form.d.ts +0 -92
- package/lib/form/form.module.d.ts +0 -9
- package/lib/form/index.d.ts +0 -5
- package/lib/form/io/form.change.directive.d.ts +0 -17
- package/lib/form/io/form.input.directive.d.ts +0 -28
- package/lib/form/io/form.io.module.d.ts +0 -16
- package/lib/form/io/form.loading.directive.d.ts +0 -23
- package/lib/form/io/index.d.ts +0 -4
- package/lib/form.module.d.ts +0 -10
- package/lib/form.providers.d.ts +0 -8
- package/lib/formly/config/index.d.ts +0 -1
- package/lib/formly/config/validation.d.ts +0 -23
- package/lib/formly/field/checklist/checklist.field.d.ts +0 -44
- package/lib/formly/field/checklist/checklist.item.d.ts +0 -36
- package/lib/formly/field/checklist/checklist.item.field.component.d.ts +0 -43
- package/lib/formly/field/checklist/checklist.item.field.content.default.component.d.ts +0 -10
- package/lib/formly/field/checklist/checklist.item.field.d.ts +0 -7
- package/lib/formly/field/checklist/checklist.item.field.module.d.ts +0 -10
- package/lib/formly/field/checklist/index.d.ts +0 -6
- package/lib/formly/field/component/component.field.component.d.ts +0 -12
- package/lib/formly/field/component/component.field.d.ts +0 -3
- package/lib/formly/field/component/component.field.module.d.ts +0 -8
- package/lib/formly/field/component/index.d.ts +0 -3
- package/lib/formly/field/field.d.ts +0 -99
- package/lib/formly/field/form.field.module.d.ts +0 -12
- package/lib/formly/field/index.d.ts +0 -8
- package/lib/formly/field/selection/index.d.ts +0 -7
- package/lib/formly/field/selection/list/index.d.ts +0 -3
- package/lib/formly/field/selection/list/list.field.component.d.ts +0 -55
- package/lib/formly/field/selection/list/list.field.d.ts +0 -8
- package/lib/formly/field/selection/list/list.field.module.d.ts +0 -8
- package/lib/formly/field/selection/pickable/index.d.ts +0 -7
- package/lib/formly/field/selection/pickable/pickable.chip.field.component.d.ts +0 -10
- package/lib/formly/field/selection/pickable/pickable.d.ts +0 -26
- package/lib/formly/field/selection/pickable/pickable.field.d.ts +0 -8
- package/lib/formly/field/selection/pickable/pickable.field.directive.d.ts +0 -169
- package/lib/formly/field/selection/pickable/pickable.field.module.d.ts +0 -9
- package/lib/formly/field/selection/pickable/pickable.list.field.component.d.ts +0 -39
- package/lib/formly/field/selection/pickable/pickable.util.d.ts +0 -14
- package/lib/formly/field/selection/searchable/index.d.ts +0 -8
- package/lib/formly/field/selection/searchable/searchable.chip.field.component.d.ts +0 -28
- package/lib/formly/field/selection/searchable/searchable.d.ts +0 -39
- package/lib/formly/field/selection/searchable/searchable.field.autocomplete.item.component.d.ts +0 -22
- package/lib/formly/field/selection/searchable/searchable.field.d.ts +0 -25
- package/lib/formly/field/selection/searchable/searchable.field.directive.d.ts +0 -163
- package/lib/formly/field/selection/searchable/searchable.field.module.d.ts +0 -10
- package/lib/formly/field/selection/searchable/searchable.text.field.component.d.ts +0 -24
- package/lib/formly/field/selection/searchable/text.chip.field.d.ts +0 -8
- package/lib/formly/field/selection/selection.d.ts +0 -26
- package/lib/formly/field/selection/selection.field.d.ts +0 -38
- package/lib/formly/field/selection/selection.module.d.ts +0 -18
- package/lib/formly/field/selection/sourceselect/index.d.ts +0 -4
- package/lib/formly/field/selection/sourceselect/sourceselect.d.ts +0 -116
- package/lib/formly/field/selection/sourceselect/sourceselect.field.component.d.ts +0 -95
- package/lib/formly/field/selection/sourceselect/sourceselect.field.d.ts +0 -7
- package/lib/formly/field/selection/sourceselect/sourceselect.field.module.d.ts +0 -8
- package/lib/formly/field/texteditor/index.d.ts +0 -3
- package/lib/formly/field/texteditor/texteditor.field.component.d.ts +0 -24
- package/lib/formly/field/texteditor/texteditor.field.d.ts +0 -6
- package/lib/formly/field/texteditor/texteditor.field.module.d.ts +0 -8
- package/lib/formly/field/value/array/array.field.component.d.ts +0 -89
- package/lib/formly/field/value/array/array.field.d.ts +0 -40
- package/lib/formly/field/value/array/array.field.module.d.ts +0 -8
- package/lib/formly/field/value/array/index.d.ts +0 -3
- package/lib/formly/field/value/boolean/boolean.field.d.ts +0 -8
- package/lib/formly/field/value/boolean/boolean.field.module.d.ts +0 -9
- package/lib/formly/field/value/boolean/index.d.ts +0 -2
- package/lib/formly/field/value/date/date.field.module.d.ts +0 -10
- package/lib/formly/field/value/date/date.value.d.ts +0 -32
- package/lib/formly/field/value/date/datetime.d.ts +0 -56
- package/lib/formly/field/value/date/datetime.field.component.d.ts +0 -307
- package/lib/formly/field/value/date/datetime.field.d.ts +0 -31
- package/lib/formly/field/value/date/datetime.field.service.d.ts +0 -12
- package/lib/formly/field/value/date/datetime.preset.d.ts +0 -2
- package/lib/formly/field/value/date/fixeddaterange.field.component.d.ts +0 -163
- package/lib/formly/field/value/date/index.d.ts +0 -9
- package/lib/formly/field/value/hidden.field.d.ts +0 -4
- package/lib/formly/field/value/index.d.ts +0 -8
- package/lib/formly/field/value/number/index.d.ts +0 -2
- package/lib/formly/field/value/number/number.field.d.ts +0 -46
- package/lib/formly/field/value/number/number.field.module.d.ts +0 -8
- package/lib/formly/field/value/phone/index.d.ts +0 -3
- package/lib/formly/field/value/phone/phone.field.component.d.ts +0 -35
- package/lib/formly/field/value/phone/phone.field.d.ts +0 -28
- package/lib/formly/field/value/phone/phone.field.module.d.ts +0 -8
- package/lib/formly/field/value/text/index.d.ts +0 -4
- package/lib/formly/field/value/text/text.additional.field.d.ts +0 -24
- package/lib/formly/field/value/text/text.address.field.d.ts +0 -43
- package/lib/formly/field/value/text/text.field.d.ts +0 -21
- package/lib/formly/field/value/text/text.field.module.d.ts +0 -10
- package/lib/formly/field/value/value.module.d.ts +0 -21
- package/lib/formly/field/wrapper/autotouch.wrapper.component.d.ts +0 -11
- package/lib/formly/field/wrapper/expand.wrapper.component.d.ts +0 -14
- package/lib/formly/field/wrapper/expand.wrapper.delegate.d.ts +0 -31
- package/lib/formly/field/wrapper/flex.wrapper.component.d.ts +0 -25
- package/lib/formly/field/wrapper/index.d.ts +0 -12
- package/lib/formly/field/wrapper/info.wrapper.component.d.ts +0 -11
- package/lib/formly/field/wrapper/section.wrapper.component.d.ts +0 -10
- package/lib/formly/field/wrapper/style.wrapper.component.d.ts +0 -27
- package/lib/formly/field/wrapper/subsection.wrapper.component.d.ts +0 -10
- package/lib/formly/field/wrapper/toggle.wrapper.component.d.ts +0 -17
- package/lib/formly/field/wrapper/working.wrapper.component.d.ts +0 -21
- package/lib/formly/field/wrapper/wrapper.d.ts +0 -35
- package/lib/formly/field/wrapper/wrapper.key.d.ts +0 -9
- package/lib/formly/field/wrapper/wrapper.module.d.ts +0 -17
- package/lib/formly/form/form.form.d.ts +0 -11
- package/lib/formly/form/form.form.module.d.ts +0 -10
- package/lib/formly/form/index.d.ts +0 -3
- package/lib/formly/form/search.form.component.d.ts +0 -13
- package/lib/formly/formly.component.template.d.ts +0 -19
- package/lib/formly/formly.context.d.ts +0 -57
- package/lib/formly/formly.context.directive.d.ts +0 -18
- package/lib/formly/formly.directive.d.ts +0 -56
- package/lib/formly/formly.form.component.d.ts +0 -52
- package/lib/formly/formly.module.d.ts +0 -15
- package/lib/formly/formly.providers.d.ts +0 -1
- package/lib/formly/index.d.ts +0 -11
- package/lib/formly/template/available.d.ts +0 -7
- package/lib/formly/template/available.module.d.ts +0 -8
- package/lib/formly/template/index.d.ts +0 -7
- package/lib/formly/template/login.d.ts +0 -66
- package/lib/formly/template/login.module.d.ts +0 -7
- package/lib/formly/template/timezone.d.ts +0 -20
- package/lib/formly/template/timezone.module.d.ts +0 -7
- package/lib/formly/template/website.d.ts +0 -15
- package/lib/index.d.ts +0 -6
- package/lib/layout/form.layout.module.d.ts +0 -10
- package/lib/layout/form.spacer.directive.d.ts +0 -8
- package/lib/layout/index.d.ts +0 -2
- package/lib/validator/available.d.ts +0 -30
- package/lib/validator/boolean.d.ts +0 -2
- package/lib/validator/email.d.ts +0 -2
- package/lib/validator/field.d.ts +0 -32
- package/lib/validator/index.d.ts +0 -7
- package/lib/validator/number.d.ts +0 -23
- package/lib/validator/phone.d.ts +0 -16
- package/lib/validator/website.d.ts +0 -31
- package/mapbox/index.d.ts +0 -2
- package/mapbox/lib/field/index.d.ts +0 -2
- package/mapbox/lib/field/latlng/index.d.ts +0 -4
- package/mapbox/lib/field/latlng/latlng.field.component.d.ts +0 -116
- package/mapbox/lib/field/latlng/latlng.field.d.ts +0 -6
- package/mapbox/lib/field/latlng/latlng.field.marker.component.d.ts +0 -12
- package/mapbox/lib/field/latlng/latlng.module.d.ts +0 -8
- package/mapbox/lib/field/zoom/index.d.ts +0 -3
- package/mapbox/lib/field/zoom/zoom.field.component.d.ts +0 -68
- package/mapbox/lib/field/zoom/zoom.field.d.ts +0 -6
- package/mapbox/lib/field/zoom/zoom.module.d.ts +0 -8
- package/mapbox/lib/mapbox.module.d.ts +0 -8
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { of } from 'rxjs';
|
|
2
|
-
import { searchableChipField } from './searchable.field';
|
|
3
|
-
export function chipTextField(config) {
|
|
4
|
-
const convertStringValue = config.caseSensitive ? (x) => x : (x) => x?.toLowerCase();
|
|
5
|
-
return searchableChipField({
|
|
6
|
-
search: () => of([]), // no search by default
|
|
7
|
-
...config,
|
|
8
|
-
allowStringValues: true,
|
|
9
|
-
convertStringValue,
|
|
10
|
-
displayForValue: (values) => {
|
|
11
|
-
return of(values.map((x) => ({ ...x, label: x.value })));
|
|
12
|
-
}
|
|
13
|
-
});
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5jaGlwLmZpZWxkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZvcm0vc3JjL2xpYi9mb3JtbHkvZmllbGQvc2VsZWN0aW9uL3NlYXJjaGFibGUvdGV4dC5jaGlwLmZpZWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHMUIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFPekQsTUFBTSxVQUFVLGFBQWEsQ0FBQyxNQUEyQjtJQUN2RCxNQUFNLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFFckcsT0FBTyxtQkFBbUIsQ0FBQztRQUN6QixNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLHVCQUF1QjtRQUM3QyxHQUFHLE1BQU07UUFDVCxpQkFBaUIsRUFBRSxJQUFJO1FBQ3ZCLGtCQUFrQjtRQUNsQixlQUFlLEVBQUUsQ0FBQyxNQUEyQyxFQUFFLEVBQUU7WUFDL0QsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0QsQ0FBQztLQUNGLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdHlwZSBMYWJlbGVkRmllbGRDb25maWcgfSBmcm9tICcuLi8uLi9maWVsZCc7XG5pbXBvcnQgeyB0eXBlIFNlYXJjaGFibGVWYWx1ZUZpZWxkVmFsdWUgfSBmcm9tICcuL3NlYXJjaGFibGUnO1xuaW1wb3J0IHsgc2VhcmNoYWJsZUNoaXBGaWVsZCB9IGZyb20gJy4vc2VhcmNoYWJsZS5maWVsZCc7XG5pbXBvcnQgeyB0eXBlIFN0cmluZ1ZhbHVlRmllbGRzRmllbGRQcm9wcyB9IGZyb20gJy4vc2VhcmNoYWJsZS5maWVsZC5kaXJlY3RpdmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENoaXBUZXh0RmllbGRDb25maWcgZXh0ZW5kcyBMYWJlbGVkRmllbGRDb25maWcsIFN0cmluZ1ZhbHVlRmllbGRzRmllbGRQcm9wcyB7XG4gIGNhc2VTZW5zaXRpdmU/OiBib29sZWFuO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2hpcFRleHRGaWVsZChjb25maWc6IENoaXBUZXh0RmllbGRDb25maWcpIHtcbiAgY29uc3QgY29udmVydFN0cmluZ1ZhbHVlID0gY29uZmlnLmNhc2VTZW5zaXRpdmUgPyAoeDogc3RyaW5nKSA9PiB4IDogKHg6IHN0cmluZykgPT4geD8udG9Mb3dlckNhc2UoKTtcblxuICByZXR1cm4gc2VhcmNoYWJsZUNoaXBGaWVsZCh7XG4gICAgc2VhcmNoOiAoKSA9PiBvZihbXSksIC8vIG5vIHNlYXJjaCBieSBkZWZhdWx0XG4gICAgLi4uY29uZmlnLFxuICAgIGFsbG93U3RyaW5nVmFsdWVzOiB0cnVlLFxuICAgIGNvbnZlcnRTdHJpbmdWYWx1ZSxcbiAgICBkaXNwbGF5Rm9yVmFsdWU6ICh2YWx1ZXM6IFNlYXJjaGFibGVWYWx1ZUZpZWxkVmFsdWU8c3RyaW5nPltdKSA9PiB7XG4gICAgICByZXR1cm4gb2YodmFsdWVzLm1hcCgoeCkgPT4gKHsgLi4ueCwgbGFiZWw6IHgudmFsdWUgfSkpKTtcbiAgICB9XG4gIH0pO1xufVxuIl19
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { asObservable } from '@dereekb/rxjs';
|
|
2
|
-
import { convertMaybeToArray, firstValue } from '@dereekb/util';
|
|
3
|
-
import { map } from 'rxjs';
|
|
4
|
-
import { formlyField, propsAndConfigForFieldConfig } from '../field';
|
|
5
|
-
export function valueSelectionField(config) {
|
|
6
|
-
const { key, native = false, addClearOption = false, selectAllOption: inputSelectAllOption, options: inputOptions, materialFormField } = config;
|
|
7
|
-
let selectAllOptionConfig;
|
|
8
|
-
if (inputSelectAllOption) {
|
|
9
|
-
selectAllOptionConfig = {
|
|
10
|
-
selectAllOption: typeof inputSelectAllOption === 'boolean' ? 'Select All' : inputSelectAllOption
|
|
11
|
-
};
|
|
12
|
-
}
|
|
13
|
-
const options = addClearOption ? asObservable(inputOptions).pipe(map(addValueSelectionOptionFunction(typeof addClearOption === 'string' ? addClearOption : undefined))) : inputOptions;
|
|
14
|
-
let parsers = undefined;
|
|
15
|
-
parsers = config.multiple !== true ? [firstValue] : [convertMaybeToArray];
|
|
16
|
-
return formlyField({
|
|
17
|
-
key,
|
|
18
|
-
type: native ? 'native-select' : 'select',
|
|
19
|
-
...propsAndConfigForFieldConfig(config, {
|
|
20
|
-
...materialFormField,
|
|
21
|
-
options,
|
|
22
|
-
multiple: config.multiple,
|
|
23
|
-
...selectAllOptionConfig
|
|
24
|
-
}),
|
|
25
|
-
parsers
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
export function addValueSelectionOptionFunction(label) {
|
|
29
|
-
return (options) => {
|
|
30
|
-
const hasClear = options.findIndex((x) => x.clear) !== -1;
|
|
31
|
-
if (hasClear) {
|
|
32
|
-
return options;
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
35
|
-
return [{ label, clear: true }, ...options];
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLmZpZWxkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZvcm0vc3JjL2xpYi9mb3JtbHkvZmllbGQvc2VsZWN0aW9uL3NlbGVjdGlvbi5maWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUEwQixNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFpQyxNQUFNLGVBQWUsQ0FBQztBQUUvRixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNCLE9BQU8sRUFBK0IsV0FBVyxFQUFpRiw0QkFBNEIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQXNDakwsTUFBTSxVQUFVLG1CQUFtQixDQUFJLE1BQW9DO0lBQ3pFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxHQUFHLEtBQUssRUFBRSxjQUFjLEdBQUcsS0FBSyxFQUFFLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLEdBQUcsTUFBTSxDQUFDO0lBQ2hKLElBQUkscUJBQXlELENBQUM7SUFFOUQsSUFBSSxvQkFBb0IsRUFBRSxDQUFDO1FBQ3pCLHFCQUFxQixHQUFHO1lBQ3RCLGVBQWUsRUFBRSxPQUFPLG9CQUFvQixLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBRSxvQkFBK0I7U0FDN0csQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLE9BQU8sR0FBRyxjQUFjLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLCtCQUErQixDQUFDLE9BQU8sY0FBYyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztJQUN2TCxJQUFJLE9BQU8sR0FBb0MsU0FBUyxDQUFDO0lBRXpELE9BQU8sR0FBRyxNQUFNLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBRTFFLE9BQU8sV0FBVyxDQUFDO1FBQ2pCLEdBQUc7UUFDSCxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLFFBQVE7UUFDekMsR0FBRyw0QkFBNEIsQ0FBQyxNQUFNLEVBQUU7WUFDdEMsR0FBRyxpQkFBaUI7WUFDcEIsT0FBTztZQUNQLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUTtZQUN6QixHQUFHLHFCQUFxQjtTQUN6QixDQUFDO1FBQ0YsT0FBTztLQUNSLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsK0JBQStCLENBQUksS0FBMEI7SUFDM0UsT0FBTyxDQUFDLE9BQWtDLEVBQUUsRUFBRTtRQUM1QyxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBRSxDQUErQixDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBRXpGLElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQztRQUM5QyxDQUFDO0lBQ0gsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFzT2JzZXJ2YWJsZSwgdHlwZSBPYnNlcnZhYmxlT3JWYWx1ZSB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuaW1wb3J0IHsgY29udmVydE1heWJlVG9BcnJheSwgZmlyc3RWYWx1ZSwgdHlwZSBMYWJlbGVkVmFsdWUsIHR5cGUgTWF5YmUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IHR5cGUgRm9ybWx5RmllbGRDb25maWcgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdHlwZSBEZXNjcmlwdGlvbkZpZWxkQ29uZmlnLCBmb3JtbHlGaWVsZCwgdHlwZSBGb3JtbHlWYWx1ZVBhcnNlciwgdHlwZSBMYWJlbGVkRmllbGRDb25maWcsIHR5cGUgTWF0ZXJpYWxGb3JtRmllbGRDb25maWcsIHByb3BzQW5kQ29uZmlnRm9yRmllbGRDb25maWcgfSBmcm9tICcuLi9maWVsZCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmFsdWVTZWxlY3Rpb25PcHRpb25XaXRoVmFsdWU8VD4gZXh0ZW5kcyBMYWJlbGVkVmFsdWU8VD4ge1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmFsdWVTZWxlY3Rpb25PcHRpb25DbGVhciB7XG4gIGxhYmVsPzogc3RyaW5nO1xuICBjbGVhcjogdHJ1ZTtcbn1cblxuZXhwb3J0IHR5cGUgVmFsdWVTZWxlY3Rpb25PcHRpb248VD4gPSBWYWx1ZVNlbGVjdGlvbk9wdGlvbldpdGhWYWx1ZTxUPiB8IFZhbHVlU2VsZWN0aW9uT3B0aW9uQ2xlYXI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmFsdWVTZWxlY3Rpb25GaWVsZENvbmZpZzxUPiBleHRlbmRzIExhYmVsZWRGaWVsZENvbmZpZywgRGVzY3JpcHRpb25GaWVsZENvbmZpZywgTWF0ZXJpYWxGb3JtRmllbGRDb25maWcge1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gdXNlIHRoZSBuYXRpdmUgc2VsZWN0LlxuICAgKlxuICAgKiBCZSBzdXJlIHRvIGltcG9ydCBGb3JtbHlNYXROYXRpdmVTZWxlY3RNb2R1bGUuXG4gICAqL1xuICByZWFkb25seSBuYXRpdmU/OiBib29sZWFuO1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gYWRkIGEgY2xlYXIgb3B0aW9uIHRvIHRoZSBpbnB1dCB2YWx1ZXMuXG4gICAqL1xuICByZWFkb25seSBhZGRDbGVhck9wdGlvbj86IHN0cmluZyB8IGJvb2xlYW47XG4gIC8qKlxuICAgKiBWYWx1ZXMgdG8gc2VsZWN0IGZyb20uXG4gICAqL1xuICByZWFkb25seSBvcHRpb25zOiBPYnNlcnZhYmxlT3JWYWx1ZTxWYWx1ZVNlbGVjdGlvbk9wdGlvbjxUPltdPjtcbiAgLyoqXG4gICAqIEFsbG93IHNlbGVjdGluZyBtdWx0aXBsZSB2YWx1ZXMgYW5kIHJldHVybiBhbiBhcnJheS5cbiAgICovXG4gIHJlYWRvbmx5IG11bHRpcGxlPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFRoZSBzZWxlY3QgYWxsIG9wdGlvbiBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VsZWN0QWxsT3B0aW9uPzogdHJ1ZSB8IHN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbHVlU2VsZWN0aW9uRmllbGQ8VD4oY29uZmlnOiBWYWx1ZVNlbGVjdGlvbkZpZWxkQ29uZmlnPFQ+KTogRm9ybWx5RmllbGRDb25maWcge1xuICBjb25zdCB7IGtleSwgbmF0aXZlID0gZmFsc2UsIGFkZENsZWFyT3B0aW9uID0gZmFsc2UsIHNlbGVjdEFsbE9wdGlvbjogaW5wdXRTZWxlY3RBbGxPcHRpb24sIG9wdGlvbnM6IGlucHV0T3B0aW9ucywgbWF0ZXJpYWxGb3JtRmllbGQgfSA9IGNvbmZpZztcbiAgbGV0IHNlbGVjdEFsbE9wdGlvbkNvbmZpZzogTWF5YmU8eyBzZWxlY3RBbGxPcHRpb246IHN0cmluZyB9PjtcblxuICBpZiAoaW5wdXRTZWxlY3RBbGxPcHRpb24pIHtcbiAgICBzZWxlY3RBbGxPcHRpb25Db25maWcgPSB7XG4gICAgICBzZWxlY3RBbGxPcHRpb246IHR5cGVvZiBpbnB1dFNlbGVjdEFsbE9wdGlvbiA9PT0gJ2Jvb2xlYW4nID8gJ1NlbGVjdCBBbGwnIDogKGlucHV0U2VsZWN0QWxsT3B0aW9uIGFzIHN0cmluZylcbiAgICB9O1xuICB9XG5cbiAgY29uc3Qgb3B0aW9ucyA9IGFkZENsZWFyT3B0aW9uID8gYXNPYnNlcnZhYmxlKGlucHV0T3B0aW9ucykucGlwZShtYXAoYWRkVmFsdWVTZWxlY3Rpb25PcHRpb25GdW5jdGlvbih0eXBlb2YgYWRkQ2xlYXJPcHRpb24gPT09ICdzdHJpbmcnID8gYWRkQ2xlYXJPcHRpb24gOiB1bmRlZmluZWQpKSkgOiBpbnB1dE9wdGlvbnM7XG4gIGxldCBwYXJzZXJzOiBGb3JtbHlWYWx1ZVBhcnNlcltdIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXG4gIHBhcnNlcnMgPSBjb25maWcubXVsdGlwbGUgIT09IHRydWUgPyBbZmlyc3RWYWx1ZV0gOiBbY29udmVydE1heWJlVG9BcnJheV07XG5cbiAgcmV0dXJuIGZvcm1seUZpZWxkKHtcbiAgICBrZXksXG4gICAgdHlwZTogbmF0aXZlID8gJ25hdGl2ZS1zZWxlY3QnIDogJ3NlbGVjdCcsXG4gICAgLi4ucHJvcHNBbmRDb25maWdGb3JGaWVsZENvbmZpZyhjb25maWcsIHtcbiAgICAgIC4uLm1hdGVyaWFsRm9ybUZpZWxkLFxuICAgICAgb3B0aW9ucyxcbiAgICAgIG11bHRpcGxlOiBjb25maWcubXVsdGlwbGUsXG4gICAgICAuLi5zZWxlY3RBbGxPcHRpb25Db25maWdcbiAgICB9KSxcbiAgICBwYXJzZXJzXG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYWRkVmFsdWVTZWxlY3Rpb25PcHRpb25GdW5jdGlvbjxUPihsYWJlbD86IHN0cmluZyB8IHVuZGVmaW5lZCk6IChvcHRpb25zOiBWYWx1ZVNlbGVjdGlvbk9wdGlvbjxUPltdKSA9PiBWYWx1ZVNlbGVjdGlvbk9wdGlvbjxUPltdIHtcbiAgcmV0dXJuIChvcHRpb25zOiBWYWx1ZVNlbGVjdGlvbk9wdGlvbjxUPltdKSA9PiB7XG4gICAgY29uc3QgaGFzQ2xlYXIgPSBvcHRpb25zLmZpbmRJbmRleCgoeCkgPT4gKHggYXMgVmFsdWVTZWxlY3Rpb25PcHRpb25DbGVhcikuY2xlYXIpICE9PSAtMTtcblxuICAgIGlmIChoYXNDbGVhcikge1xuICAgICAgcmV0dXJuIG9wdGlvbnM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBbeyBsYWJlbCwgY2xlYXI6IHRydWUgfSwgLi4ub3B0aW9uc107XG4gICAgfVxuICB9O1xufVxuIl19
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZvcm0vc3JjL2xpYi9mb3JtbHkvZmllbGQvc2VsZWN0aW9uL3NlbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBQcmltYXRpdmVLZXksIHR5cGUgTWF5YmUsIHR5cGUgTWFwRnVuY3Rpb24sIHR5cGUgTGFiZWxSZWYgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcblxuZXhwb3J0IGludGVyZmFjZSBTZWxlY3Rpb25WYWx1ZTxULCBNID0gdW5rbm93bj4ge1xuICAvKipcbiAgICogVmFsdWUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgZmllbGQuXG4gICAqL1xuICByZWFkb25seSB2YWx1ZTogVDtcbiAgLyoqXG4gICAqIE9wdGlvbmFsIG1ldGFkYXRhIG9uIHRoZSBmaWVsZC5cbiAgICovXG4gIHJlYWRvbmx5IG1ldGE/OiBNYXliZTxNPjtcbn1cblxuLyoqXG4gKiBEaXNwbGF5ZWQgdmFsdWUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0aW9uRGlzcGxheVZhbHVlPFQsIE0gPSB1bmtub3duPiBleHRlbmRzIFNlbGVjdGlvblZhbHVlPFQsIE0+LCBMYWJlbFJlZiB7XG4gIHJlYWRvbmx5IHN1YmxhYmVsPzogc3RyaW5nO1xuICByZWFkb25seSBpY29uPzogc3RyaW5nO1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdGhlIHZhbHVlIGlzIGtub3duLlxuICAgKi9cbiAgcmVhZG9ubHkgaXNVbmtub3duPzogTWF5YmU8Ym9vbGVhbj47XG59XG5cbi8qKlxuICogVXNlZCB0byBoYXNoIHRoZSB2YWx1ZSBmcm9tIHRoZSBpbnB1dCBwaWNrYWJsZSB2YWx1ZS5cbiAqL1xuZXhwb3J0IHR5cGUgU2VsZWN0aW9uVmFsdWVIYXNoRnVuY3Rpb248VCwgSCBleHRlbmRzIFByaW1hdGl2ZUtleSA9IFByaW1hdGl2ZUtleT4gPSBNYXBGdW5jdGlvbjxULCBIPjtcbiJdfQ==
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { DbxFormFormlyPickableFieldModule } from './pickable/pickable.field.module';
|
|
3
|
-
import { DbxFormFormlySearchableFieldModule } from './searchable/searchable.field.module';
|
|
4
|
-
import { DbxFormFormlyDbxListFieldModule } from './list/list.field.module';
|
|
5
|
-
import { DbxFormFormlySourceSelectModule } from './sourceselect/sourceselect.field.module';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
const importsAndExports = [DbxFormFormlyDbxListFieldModule, DbxFormFormlyPickableFieldModule, DbxFormFormlySearchableFieldModule, DbxFormFormlySourceSelectModule];
|
|
8
|
-
/**
|
|
9
|
-
* @deprecated import the modules directly instead
|
|
10
|
-
*
|
|
11
|
-
* @see DbxFormFormlyDbxListFieldModule
|
|
12
|
-
* @see DbxFormFormlyPickableFieldModule
|
|
13
|
-
* @see DbxFormFormlySearchableFieldModule
|
|
14
|
-
* @see DbxFormFormlySourceSelectModule
|
|
15
|
-
*/
|
|
16
|
-
export class DbxFormFormlySelectionModule {
|
|
17
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlySelectionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
18
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlySelectionModule, imports: [DbxFormFormlyDbxListFieldModule, DbxFormFormlyPickableFieldModule, DbxFormFormlySearchableFieldModule, DbxFormFormlySourceSelectModule], exports: [DbxFormFormlyDbxListFieldModule, DbxFormFormlyPickableFieldModule, DbxFormFormlySearchableFieldModule, DbxFormFormlySourceSelectModule] });
|
|
19
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlySelectionModule, imports: [importsAndExports, DbxFormFormlyDbxListFieldModule, DbxFormFormlyPickableFieldModule, DbxFormFormlySearchableFieldModule, DbxFormFormlySourceSelectModule] });
|
|
20
|
-
}
|
|
21
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlySelectionModule, decorators: [{
|
|
22
|
-
type: NgModule,
|
|
23
|
-
args: [{
|
|
24
|
-
imports: importsAndExports,
|
|
25
|
-
exports: importsAndExports
|
|
26
|
-
}]
|
|
27
|
-
}] });
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1mb3JtL3NyYy9saWIvZm9ybWx5L2ZpZWxkL3NlbGVjdGlvbi9zZWxlY3Rpb24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDcEYsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDMUYsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0UsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sMENBQTBDLENBQUM7O0FBRTNGLE1BQU0saUJBQWlCLEdBQUcsQ0FBQywrQkFBK0IsRUFBRSxnQ0FBZ0MsRUFBRSxrQ0FBa0MsRUFBRSwrQkFBK0IsQ0FBQyxDQUFDO0FBRW5LOzs7Ozs7O0dBT0c7QUFLSCxNQUFNLE9BQU8sNEJBQTRCO3dHQUE1Qiw0QkFBNEI7eUdBQTVCLDRCQUE0QixZQWRkLCtCQUErQixFQUFFLGdDQUFnQyxFQUFFLGtDQUFrQyxFQUFFLCtCQUErQixhQUF0SSwrQkFBK0IsRUFBRSxnQ0FBZ0MsRUFBRSxrQ0FBa0MsRUFBRSwrQkFBK0I7eUdBY3BKLDRCQUE0QixZQUg5QixpQkFBaUIsRUFYRCwrQkFBK0IsRUFBRSxnQ0FBZ0MsRUFBRSxrQ0FBa0MsRUFBRSwrQkFBK0I7OzRGQWNwSiw0QkFBNEI7a0JBSnhDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLGlCQUFpQjtvQkFDMUIsT0FBTyxFQUFFLGlCQUFpQjtpQkFDM0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGJ4Rm9ybUZvcm1seVBpY2thYmxlRmllbGRNb2R1bGUgfSBmcm9tICcuL3BpY2thYmxlL3BpY2thYmxlLmZpZWxkLm1vZHVsZSc7XG5pbXBvcnQgeyBEYnhGb3JtRm9ybWx5U2VhcmNoYWJsZUZpZWxkTW9kdWxlIH0gZnJvbSAnLi9zZWFyY2hhYmxlL3NlYXJjaGFibGUuZmllbGQubW9kdWxlJztcbmltcG9ydCB7IERieEZvcm1Gb3JtbHlEYnhMaXN0RmllbGRNb2R1bGUgfSBmcm9tICcuL2xpc3QvbGlzdC5maWVsZC5tb2R1bGUnO1xuaW1wb3J0IHsgRGJ4Rm9ybUZvcm1seVNvdXJjZVNlbGVjdE1vZHVsZSB9IGZyb20gJy4vc291cmNlc2VsZWN0L3NvdXJjZXNlbGVjdC5maWVsZC5tb2R1bGUnO1xuXG5jb25zdCBpbXBvcnRzQW5kRXhwb3J0cyA9IFtEYnhGb3JtRm9ybWx5RGJ4TGlzdEZpZWxkTW9kdWxlLCBEYnhGb3JtRm9ybWx5UGlja2FibGVGaWVsZE1vZHVsZSwgRGJ4Rm9ybUZvcm1seVNlYXJjaGFibGVGaWVsZE1vZHVsZSwgRGJ4Rm9ybUZvcm1seVNvdXJjZVNlbGVjdE1vZHVsZV07XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgaW1wb3J0IHRoZSBtb2R1bGVzIGRpcmVjdGx5IGluc3RlYWRcbiAqXG4gKiBAc2VlIERieEZvcm1Gb3JtbHlEYnhMaXN0RmllbGRNb2R1bGVcbiAqIEBzZWUgRGJ4Rm9ybUZvcm1seVBpY2thYmxlRmllbGRNb2R1bGVcbiAqIEBzZWUgRGJ4Rm9ybUZvcm1seVNlYXJjaGFibGVGaWVsZE1vZHVsZVxuICogQHNlZSBEYnhGb3JtRm9ybWx5U291cmNlU2VsZWN0TW9kdWxlXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IGltcG9ydHNBbmRFeHBvcnRzLFxuICBleHBvcnRzOiBpbXBvcnRzQW5kRXhwb3J0c1xufSlcbmV4cG9ydCBjbGFzcyBEYnhGb3JtRm9ybWx5U2VsZWN0aW9uTW9kdWxlIHt9XG4iXX0=
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export * from './sourceselect.field.component';
|
|
2
|
-
export * from './sourceselect.field';
|
|
3
|
-
export * from './sourceselect.field.module';
|
|
4
|
-
export * from './sourceselect';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9zcmMvbGliL2Zvcm1seS9maWVsZC9zZWxlY3Rpb24vc291cmNlc2VsZWN0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NvdXJjZXNlbGVjdC5maWVsZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zb3VyY2VzZWxlY3QuZmllbGQnO1xuZXhwb3J0ICogZnJvbSAnLi9zb3VyY2VzZWxlY3QuZmllbGQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vc291cmNlc2VsZWN0JztcbiJdfQ==
|
|
@@ -1,325 +0,0 @@
|
|
|
1
|
-
import { filterMaybe, isLoadingStateWithDefinedValue, isLoadingStateLoading, startWithBeginLoading, SubscriptionObject, successResult, beginLoading, mapLoadingStateValueWithOperator, loadingStateContext, valueFromFinishedLoadingState } from '@dereekb/rxjs';
|
|
2
|
-
import { ChangeDetectionStrategy, Component, ElementRef, viewChild } from '@angular/core';
|
|
3
|
-
import { distinctUntilChanged, map, switchMap, shareReplay, startWith, mergeMap, scan, BehaviorSubject, tap, first, combineLatest, of } from 'rxjs';
|
|
4
|
-
import { addToSetCopy, asArray, convertMaybeToArray, filterMaybeArrayValues, lastValue, makeValuesGroupMap, mergeArrays, separateValues, setContainsAllValues, setsAreEquivalent, sortByStringFunction } from '@dereekb/util';
|
|
5
|
-
import { FieldType } from '@ngx-formly/material/form-field';
|
|
6
|
-
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
7
|
-
import { toSignal } from '@angular/core/rxjs-interop';
|
|
8
|
-
import { MatOptgroup, MatOption, MatSelect } from '@angular/material/select';
|
|
9
|
-
import { DbxActionModule, DbxButtonComponent, DbxButtonSpacerDirective, DbxLoadingComponent } from '@dereekb/dbx-web';
|
|
10
|
-
import * as i0 from "@angular/core";
|
|
11
|
-
import * as i1 from "@angular/forms";
|
|
12
|
-
import * as i2 from "@dereekb/dbx-core";
|
|
13
|
-
/**
|
|
14
|
-
* Component that displays a select view (multi or not)
|
|
15
|
-
*/
|
|
16
|
-
export class DbxFormSourceSelectFieldComponent extends FieldType {
|
|
17
|
-
_cacheMetaSub = new SubscriptionObject();
|
|
18
|
-
_clearDisplayHashMapSub = new SubscriptionObject();
|
|
19
|
-
_valueMetaHashMap = new BehaviorSubject(new Map());
|
|
20
|
-
_displayHashMap = new BehaviorSubject(new Map());
|
|
21
|
-
_formControlObs = new BehaviorSubject(undefined);
|
|
22
|
-
_fromOpenSource = new BehaviorSubject({ values: [], valuesSet: new Set() });
|
|
23
|
-
_loadSources = new BehaviorSubject(undefined);
|
|
24
|
-
buttonElement = viewChild('button', { read: (ElementRef) });
|
|
25
|
-
formControl$ = this._formControlObs.pipe(filterMaybe());
|
|
26
|
-
currentFormControlValue$ = this.formControl$.pipe(switchMap((control) => control.valueChanges.pipe(startWith(control.value))), shareReplay(1));
|
|
27
|
-
values$ = this.currentFormControlValue$.pipe(map(convertMaybeToArray), shareReplay(1));
|
|
28
|
-
allValuesEverSelected$ = this.values$.pipe(scan((acc, values) => {
|
|
29
|
-
let result = acc;
|
|
30
|
-
if (!setContainsAllValues(acc, values)) {
|
|
31
|
-
result = addToSetCopy(acc, values);
|
|
32
|
-
}
|
|
33
|
-
return result;
|
|
34
|
-
}, new Set()), distinctUntilChanged(), map((x) => Array.from(x)), shareReplay(1));
|
|
35
|
-
sourceSelectValuesFromValuesState$ = this.allValuesEverSelected$.pipe(distinctUntilChanged(), switchMap((values) => this.loadSourceSelectValueForValues(values)), shareReplay(1));
|
|
36
|
-
loadSources$ = this._loadSources.pipe(filterMaybe(), switchMap((loadSource) => {
|
|
37
|
-
const { valueReader } = this;
|
|
38
|
-
return loadSource.pipe(switchMap((sources) => {
|
|
39
|
-
const sourceObs = sources.map((x) => x.meta.pipe(map((metaState) => ({ ...metaState, label: x.label }))));
|
|
40
|
-
if (sourceObs.length === 0) {
|
|
41
|
-
return of(successResult([]));
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
return combineLatest(sourceObs).pipe(map((x) => {
|
|
45
|
-
const statesWithValues = x.filter((y) => isLoadingStateWithDefinedValue(y));
|
|
46
|
-
const loading = x.findIndex(isLoadingStateLoading) !== -1;
|
|
47
|
-
const value = statesWithValues.map((y) => {
|
|
48
|
-
const group = {
|
|
49
|
-
label: y.label,
|
|
50
|
-
values: y.value.map((meta) => ({ meta, value: valueReader(meta) }))
|
|
51
|
-
};
|
|
52
|
-
return group;
|
|
53
|
-
});
|
|
54
|
-
return {
|
|
55
|
-
loading,
|
|
56
|
-
value
|
|
57
|
-
};
|
|
58
|
-
}));
|
|
59
|
-
}
|
|
60
|
-
}));
|
|
61
|
-
}));
|
|
62
|
-
fromOpenSource$ = this._fromOpenSource.pipe(distinctUntilChanged((a, b) => setsAreEquivalent(a.valuesSet, b.valuesSet)), map((x) => {
|
|
63
|
-
const group = {
|
|
64
|
-
label: '',
|
|
65
|
-
values: x.values
|
|
66
|
-
};
|
|
67
|
-
return group;
|
|
68
|
-
}), shareReplay(1));
|
|
69
|
-
valueGroupsFromSourcesState$ = combineLatest([this.fromOpenSource$, this.loadSources$]).pipe(map(([fromOpenSourceGroup, loadSources]) => {
|
|
70
|
-
const loadSourcesValue = loadSources.value ?? [];
|
|
71
|
-
const value = [fromOpenSourceGroup, ...loadSourcesValue];
|
|
72
|
-
const result = {
|
|
73
|
-
loading: loadSources.loading,
|
|
74
|
-
value
|
|
75
|
-
};
|
|
76
|
-
return result;
|
|
77
|
-
}), shareReplay(1));
|
|
78
|
-
allValueGroupsState$ = this.sourceSelectValuesFromValuesState$.pipe(switchMap((sourceSelectValuesFromValues) => {
|
|
79
|
-
if (isLoadingStateWithDefinedValue(sourceSelectValuesFromValues)) {
|
|
80
|
-
const valuesFromValuesGroup = {
|
|
81
|
-
label: '',
|
|
82
|
-
values: sourceSelectValuesFromValues.value
|
|
83
|
-
};
|
|
84
|
-
return this.valueGroupsFromSourcesState$.pipe(map((sourcesState) => {
|
|
85
|
-
const allGroups = [valuesFromValuesGroup, ...sourcesState.value];
|
|
86
|
-
const result = {
|
|
87
|
-
loading: sourceSelectValuesFromValues.loading || sourcesState.loading,
|
|
88
|
-
value: allGroups
|
|
89
|
-
};
|
|
90
|
-
return result;
|
|
91
|
-
}));
|
|
92
|
-
}
|
|
93
|
-
else {
|
|
94
|
-
return of(beginLoading({}));
|
|
95
|
-
}
|
|
96
|
-
}), shareReplay(1));
|
|
97
|
-
allOptionGroupsState$ = this.allValueGroupsState$.pipe(mapLoadingStateValueWithOperator(switchMap((groups) => {
|
|
98
|
-
const allGroupsReducedByLabel = makeValuesGroupMap(groups, (x) => x.label);
|
|
99
|
-
const valuesEncountered = new Set();
|
|
100
|
-
const allUniqueValues = [];
|
|
101
|
-
const simplifiedValuesGroups = [];
|
|
102
|
-
// sort to put the blank label first
|
|
103
|
-
Array.from(allGroupsReducedByLabel.entries())
|
|
104
|
-
.sort(sortByStringFunction((x) => x[0]))
|
|
105
|
-
.forEach(([label, groups]) => {
|
|
106
|
-
const values = [];
|
|
107
|
-
groups.forEach((group) => {
|
|
108
|
-
group.values.forEach((selectValue) => {
|
|
109
|
-
if (!valuesEncountered.has(selectValue.value)) {
|
|
110
|
-
values.push(selectValue);
|
|
111
|
-
allUniqueValues.push(selectValue);
|
|
112
|
-
valuesEncountered.add(selectValue.value);
|
|
113
|
-
}
|
|
114
|
-
});
|
|
115
|
-
});
|
|
116
|
-
if (values.length > 0) {
|
|
117
|
-
simplifiedValuesGroups.push({
|
|
118
|
-
label,
|
|
119
|
-
values
|
|
120
|
-
});
|
|
121
|
-
}
|
|
122
|
-
});
|
|
123
|
-
const obs = this.getDisplayValuesForSelectValues(allUniqueValues).pipe(map((displayValues) => {
|
|
124
|
-
const displayValuesMap = new Map(displayValues.map((x) => [x.value, x]));
|
|
125
|
-
const displayGroups = simplifiedValuesGroups.map((valueGroup) => {
|
|
126
|
-
const values = filterMaybeArrayValues(valueGroup.values.map((x) => displayValuesMap.get(x.value)));
|
|
127
|
-
return {
|
|
128
|
-
label: valueGroup.label,
|
|
129
|
-
values
|
|
130
|
-
};
|
|
131
|
-
});
|
|
132
|
-
return displayGroups;
|
|
133
|
-
}));
|
|
134
|
-
return obs;
|
|
135
|
-
})), shareReplay(1));
|
|
136
|
-
allOptionGroups$ = this.allOptionGroupsState$.pipe(valueFromFinishedLoadingState(), map((x) => x ?? []), shareReplay(1));
|
|
137
|
-
options$ = this.allOptionGroups$.pipe(map((x) => {
|
|
138
|
-
const { included: groupedValues, excluded: nonGroupedGroup } = separateValues(x, (y) => Boolean(y.label));
|
|
139
|
-
const result = {
|
|
140
|
-
nonGroupedValues: nonGroupedGroup[0]?.values ?? [],
|
|
141
|
-
groupedValues
|
|
142
|
-
};
|
|
143
|
-
return result;
|
|
144
|
-
}), shareReplay(1));
|
|
145
|
-
nonGroupedValues$ = this.options$.pipe(map((x) => x.nonGroupedValues));
|
|
146
|
-
groupedOptions$ = this.options$.pipe(map((x) => x.groupedValues));
|
|
147
|
-
nonGroupedValuesSignal = toSignal(this.nonGroupedValues$);
|
|
148
|
-
groupedOptionsSignal = toSignal(this.groupedOptions$);
|
|
149
|
-
get sourceSelectField() {
|
|
150
|
-
return this.props;
|
|
151
|
-
}
|
|
152
|
-
get openSource() {
|
|
153
|
-
return this.props.openSource;
|
|
154
|
-
}
|
|
155
|
-
get showOpenSourceButton() {
|
|
156
|
-
return Boolean(this.openSource);
|
|
157
|
-
}
|
|
158
|
-
get loadSources() {
|
|
159
|
-
return this.props.loadSources;
|
|
160
|
-
}
|
|
161
|
-
get valueReader() {
|
|
162
|
-
return this.props.valueReader;
|
|
163
|
-
}
|
|
164
|
-
get metaLoader() {
|
|
165
|
-
return this.props.metaLoader;
|
|
166
|
-
}
|
|
167
|
-
get displayForValue() {
|
|
168
|
-
return this.props.displayForValue;
|
|
169
|
-
}
|
|
170
|
-
get selectButtonIcon() {
|
|
171
|
-
return this.props.selectButtonIcon ?? 'add';
|
|
172
|
-
}
|
|
173
|
-
get multiple() {
|
|
174
|
-
return this.props.multiple || false;
|
|
175
|
-
}
|
|
176
|
-
get refreshDisplayValues$() {
|
|
177
|
-
return this.props.refreshDisplayValues$;
|
|
178
|
-
}
|
|
179
|
-
loadSourceSelectValueForValues(values) {
|
|
180
|
-
return this.getSourceSelectValueForValues(values).pipe(map((sourceSelectValues) => successResult(sourceSelectValues)), startWithBeginLoading(), shareReplay(1));
|
|
181
|
-
}
|
|
182
|
-
getSourceSelectValueForValues(values) {
|
|
183
|
-
const { valueReader } = this;
|
|
184
|
-
return this._valueMetaHashMap.pipe(mergeMap((metaMap) => {
|
|
185
|
-
const mappingResult = values.map((hash, i) => [i, hash, metaMap.get(hash)]);
|
|
186
|
-
const {
|
|
187
|
-
//
|
|
188
|
-
included: hasMeta, excluded: needsMeta } = separateValues(mappingResult, (x) => Boolean(x[2]));
|
|
189
|
-
let obs;
|
|
190
|
-
if (needsMeta.length > 0) {
|
|
191
|
-
// Go get the meta value.
|
|
192
|
-
const metaValuesObs = this.metaLoader(needsMeta.map((x) => x[1]));
|
|
193
|
-
obs = metaValuesObs.pipe(first(), map((metaResults) => {
|
|
194
|
-
const metaResultsMapping = metaResults.map((meta) => ({ meta, value: valueReader(meta) }));
|
|
195
|
-
const valueIndexHashMap = new Map(metaResultsMapping.map((x) => [x.value, x]));
|
|
196
|
-
// Update metaMap. No need to push an update notification.
|
|
197
|
-
metaResultsMapping.forEach((x) => metaMap.set(x.value, x));
|
|
198
|
-
// Zip values back together.
|
|
199
|
-
const newDisplayValues = mappingResult.map((x) => x[2] ?? valueIndexHashMap.get(x[1]));
|
|
200
|
-
// Return display values.
|
|
201
|
-
return newDisplayValues;
|
|
202
|
-
}));
|
|
203
|
-
}
|
|
204
|
-
else {
|
|
205
|
-
// If all display values are hashed return them
|
|
206
|
-
obs = of(hasMeta.map((x) => x[2]));
|
|
207
|
-
}
|
|
208
|
-
return obs;
|
|
209
|
-
}));
|
|
210
|
-
}
|
|
211
|
-
loadDisplayValuesForSelectValues(values) {
|
|
212
|
-
return this.getDisplayValuesForSelectValues(values).pipe(map((displayValues) => successResult(displayValues)), startWithBeginLoading(), shareReplay(1));
|
|
213
|
-
}
|
|
214
|
-
getDisplayValuesForSelectValues(values) {
|
|
215
|
-
return this._displayHashMap.pipe(mergeMap((metaMap) => {
|
|
216
|
-
const mappingResult = values.map((x) => [x, x.value]).map(([x, hash], i) => [i, hash, x, metaMap.get(hash)]);
|
|
217
|
-
const hasDisplay = mappingResult.filter((x) => Boolean(x[3]));
|
|
218
|
-
const needsDisplay = mappingResult.filter((x) => !x[3]);
|
|
219
|
-
let obs;
|
|
220
|
-
if (needsDisplay.length > 0) {
|
|
221
|
-
// Go get the display value.
|
|
222
|
-
const displayValuesObs = this.displayForValue(needsDisplay.map((x) => x[2]));
|
|
223
|
-
obs = displayValuesObs.pipe(first(), map((displayResults) => {
|
|
224
|
-
const displayResultsMapping = displayResults.map((x) => [x, x.value]);
|
|
225
|
-
const valueIndexHashMap = new Map(displayResultsMapping.map(([x, hash]) => [hash, x]));
|
|
226
|
-
// Update metaMap. No need to push an update notification.
|
|
227
|
-
displayResultsMapping.forEach(([x, hash]) => metaMap.set(hash, x));
|
|
228
|
-
// Zip values back together.
|
|
229
|
-
const newDisplayValues = mappingResult.map((x) => x[3] ?? valueIndexHashMap.get(x[1]));
|
|
230
|
-
// Return display values.
|
|
231
|
-
return newDisplayValues;
|
|
232
|
-
}));
|
|
233
|
-
}
|
|
234
|
-
else {
|
|
235
|
-
// If all display values are hashed return that.
|
|
236
|
-
obs = of(hasDisplay.map((x) => x[3]));
|
|
237
|
-
}
|
|
238
|
-
return obs;
|
|
239
|
-
}));
|
|
240
|
-
}
|
|
241
|
-
context = loadingStateContext({ obs: this.allOptionGroupsState$ });
|
|
242
|
-
ngOnInit() {
|
|
243
|
-
const { loadSources } = this;
|
|
244
|
-
this._loadSources.next(loadSources?.() || of([]));
|
|
245
|
-
if (this.refreshDisplayValues$ != null) {
|
|
246
|
-
this._clearDisplayHashMapSub.subscription = this.refreshDisplayValues$.subscribe(() => this._displayHashMap.next(new Map()));
|
|
247
|
-
}
|
|
248
|
-
this._formControlObs.next(this.formControl);
|
|
249
|
-
// copy all values from the sources into the values hash map to prevent reloading
|
|
250
|
-
this._cacheMetaSub.subscription = this.valueGroupsFromSourcesState$.subscribe((x) => {
|
|
251
|
-
const hashMap = this._valueMetaHashMap.value;
|
|
252
|
-
x.value.forEach((x) => x.values.forEach((y) => hashMap.set(y.value, y)));
|
|
253
|
-
});
|
|
254
|
-
}
|
|
255
|
-
ngOnDestroy() {
|
|
256
|
-
super.ngOnDestroy();
|
|
257
|
-
this._cacheMetaSub.destroy();
|
|
258
|
-
this._clearDisplayHashMapSub.destroy();
|
|
259
|
-
this._valueMetaHashMap.complete();
|
|
260
|
-
this._displayHashMap.complete();
|
|
261
|
-
this._formControlObs.complete();
|
|
262
|
-
this._fromOpenSource.complete();
|
|
263
|
-
this._loadSources.complete();
|
|
264
|
-
this.context.destroy();
|
|
265
|
-
}
|
|
266
|
-
handleSelectOptions = (_, context) => {
|
|
267
|
-
const { openSource } = this;
|
|
268
|
-
const origin = this.buttonElement();
|
|
269
|
-
if (openSource && origin) {
|
|
270
|
-
const sourceObs = openSource({ origin });
|
|
271
|
-
context.startWorkingWithObservable(sourceObs.pipe(first(), tap((result) => {
|
|
272
|
-
const valuesToAdd = mergeArrays([result.select, result.options]);
|
|
273
|
-
if (valuesToAdd.length) {
|
|
274
|
-
this.addToOpenSourceMap(valuesToAdd);
|
|
275
|
-
}
|
|
276
|
-
if (result.set) {
|
|
277
|
-
this.setCurrentValue(result.set.map((x) => this.valueReader(x)));
|
|
278
|
-
}
|
|
279
|
-
else if (result.select) {
|
|
280
|
-
this.addToCurrentValue(result.select.map((x) => this.valueReader(x)));
|
|
281
|
-
}
|
|
282
|
-
})));
|
|
283
|
-
}
|
|
284
|
-
else {
|
|
285
|
-
context.reject();
|
|
286
|
-
}
|
|
287
|
-
};
|
|
288
|
-
addToOpenSourceMap(input) {
|
|
289
|
-
const { valueReader } = this;
|
|
290
|
-
const { values: meta, valuesSet: initialValues } = this._fromOpenSource.value;
|
|
291
|
-
const newMetaFromInput = [];
|
|
292
|
-
const valuesSet = new Set(initialValues);
|
|
293
|
-
input.forEach((x) => {
|
|
294
|
-
const value = valueReader(x);
|
|
295
|
-
if (!valuesSet.has(value)) {
|
|
296
|
-
newMetaFromInput.push({ meta: x, value });
|
|
297
|
-
valuesSet.add(value);
|
|
298
|
-
}
|
|
299
|
-
});
|
|
300
|
-
if (newMetaFromInput.length > 0) {
|
|
301
|
-
this._fromOpenSource.next({
|
|
302
|
-
values: [...meta, ...newMetaFromInput],
|
|
303
|
-
valuesSet: valuesSet
|
|
304
|
-
});
|
|
305
|
-
}
|
|
306
|
-
}
|
|
307
|
-
addToCurrentValue(values) {
|
|
308
|
-
const currentValue = asArray(this.formControl.value);
|
|
309
|
-
const newValueArray = [...currentValue, ...values];
|
|
310
|
-
this.setCurrentValue(newValueArray);
|
|
311
|
-
}
|
|
312
|
-
setCurrentValue(newValueArray) {
|
|
313
|
-
const value = this.multiple ? newValueArray : lastValue(newValueArray); // pick last value, as the last value added is the newest value.
|
|
314
|
-
this.formControl.setValue(value);
|
|
315
|
-
this.formControl.markAsDirty();
|
|
316
|
-
this.formControl.markAsTouched();
|
|
317
|
-
}
|
|
318
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormSourceSelectFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
319
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxFormSourceSelectFieldComponent, isStandalone: true, selector: "dbx-form-sourceselectfield", viewQueries: [{ propertyName: "buttonElement", first: true, predicate: ["button"], descendants: true, read: ElementRef, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-source-select-field\">\n <div class=\"dbx-source-select-field-content\">\n <mat-select class=\"dbx-source-select-field-select\" [id]=\"id\" [formControl]=\"formControl\" [multiple]=\"props.multiple\">\n @for (value of nonGroupedValuesSignal(); track value.value) {\n <mat-option [value]=\"value.value\">\n {{ value.label }}\n </mat-option>\n }\n @for (optionGroup of groupedOptionsSignal(); track optionGroup.label) {\n <mat-optgroup [label]=\"optionGroup.label\">\n @for (value of optionGroup.values; track value.value) {\n <mat-option [value]=\"value.value\">\n {{ value.label }}\n </mat-option>\n }\n </mat-optgroup>\n }\n </mat-select>\n @if (showOpenSourceButton) {\n <dbx-button-spacer></dbx-button-spacer>\n <dbx-action dbxActionValue [dbxActionHandler]=\"handleSelectOptions\" class=\"dbx-source-select-field-button\">\n <dbx-button #button dbxActionButton [fab]=\"true\" [iconOnly]=\"true\" [icon]=\"selectButtonIcon\"></dbx-button>\n </dbx-action>\n }\n </div>\n <dbx-loading class=\"dbx-source-select-field-loading\" [linear]=\"true\" [context]=\"context\"></dbx-loading>\n</div>\n", dependencies: [{ kind: "component", type: MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["bar", "type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "raised", "stroked", "flat", "iconOnly", "fab", "mode"] }, { kind: "component", type: MatOptgroup, selector: "mat-optgroup", inputs: ["label", "disabled"], exportAs: ["matOptgroup"] }, { kind: "directive", type: DbxButtonSpacerDirective, selector: "dbx-button-spacer,[dbxButtonSpacer]" }, { kind: "ngmodule", type: DbxActionModule }, { kind: "directive", type: i2.DbxActionDirective, selector: "dbx-action,[dbxAction],dbx-action-context,[dbxActionContext]", exportAs: ["action", "dbxAction"] }, { kind: "directive", type: i2.DbxActionHandlerDirective, selector: "[dbxActionHandler]", inputs: ["dbxActionHandler"] }, { kind: "directive", type: i2.DbxActionValueDirective, selector: "dbxActionValue,[dbxActionValue]", inputs: ["dbxActionValue"] }, { kind: "directive", type: i2.DbxActionButtonDirective, selector: "[dbxActionButton]" }, { kind: "component", type: DbxLoadingComponent, selector: "dbx-loading", inputs: ["padding", "show", "text", "mode", "color", "diameter", "linear", "loading", "error", "context"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
320
|
-
}
|
|
321
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormSourceSelectFieldComponent, decorators: [{
|
|
322
|
-
type: Component,
|
|
323
|
-
args: [{ selector: 'dbx-form-sourceselectfield', changeDetection: ChangeDetectionStrategy.OnPush, imports: [MatSelect, MatOption, FormsModule, ReactiveFormsModule, DbxButtonComponent, MatOptgroup, DbxButtonSpacerDirective, DbxActionModule, DbxLoadingComponent], standalone: true, template: "<div class=\"dbx-source-select-field\">\n <div class=\"dbx-source-select-field-content\">\n <mat-select class=\"dbx-source-select-field-select\" [id]=\"id\" [formControl]=\"formControl\" [multiple]=\"props.multiple\">\n @for (value of nonGroupedValuesSignal(); track value.value) {\n <mat-option [value]=\"value.value\">\n {{ value.label }}\n </mat-option>\n }\n @for (optionGroup of groupedOptionsSignal(); track optionGroup.label) {\n <mat-optgroup [label]=\"optionGroup.label\">\n @for (value of optionGroup.values; track value.value) {\n <mat-option [value]=\"value.value\">\n {{ value.label }}\n </mat-option>\n }\n </mat-optgroup>\n }\n </mat-select>\n @if (showOpenSourceButton) {\n <dbx-button-spacer></dbx-button-spacer>\n <dbx-action dbxActionValue [dbxActionHandler]=\"handleSelectOptions\" class=\"dbx-source-select-field-button\">\n <dbx-button #button dbxActionButton [fab]=\"true\" [iconOnly]=\"true\" [icon]=\"selectButtonIcon\"></dbx-button>\n </dbx-action>\n }\n </div>\n <dbx-loading class=\"dbx-source-select-field-loading\" [linear]=\"true\" [context]=\"context\"></dbx-loading>\n</div>\n" }]
|
|
324
|
-
}] });
|
|
325
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlc2VsZWN0LmZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1mb3JtL3NyYy9saWIvZm9ybWx5L2ZpZWxkL3NlbGVjdGlvbi9zb3VyY2VzZWxlY3Qvc291cmNlc2VsZWN0LmZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1mb3JtL3NyYy9saWIvZm9ybWx5L2ZpZWxkL3NlbGVjdGlvbi9zb3VyY2VzZWxlY3Qvc291cmNlc2VsZWN0LmZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQWdCLDhCQUE4QixFQUFFLHFCQUFxQixFQUFnQyxxQkFBcUIsRUFBRSxrQkFBa0IsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLGdDQUFnQyxFQUFFLG1CQUFtQixFQUFvQiw2QkFBNkIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvVCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBcUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBYyxhQUFhLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hLLE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLHNCQUFzQixFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBUyxXQUFXLEVBQWdCLGNBQWMsRUFBRSxvQkFBb0IsRUFBRSxpQkFBaUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuUCxPQUFPLEVBQUUsU0FB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QWUsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRU8sZUFBZSxDQUFDLGFBQWtCO1FBQ3hDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsZ0VBQWdFO1FBQ3hJLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUNuQyxDQUFDO3dHQXJjVSxpQ0FBaUM7NEZBQWpDLGlDQUFpQywwS0FVMEMsVUFBVSxvRUN4RWxHLDB1Q0EyQkEsNENEZ0NZLFNBQVMsd2VBQUUsU0FBUyxvSkFBRSxXQUFXLHNJQUFFLG1CQUFtQixrTkFBRSxrQkFBa0IsdVBBQUUsV0FBVyxtSEFBRSx3QkFBd0IsK0VBQUUsZUFBZSxvaEJBQUUsbUJBQW1COzs0RkFHdEosaUNBQWlDO2tCQVA3QyxTQUFTOytCQUNFLDRCQUE0QixtQkFFckIsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLFdBQVcsRUFBRSx3QkFBd0IsRUFBRSxlQUFlLEVBQUUsbUJBQW1CLENBQUMsY0FDdEosSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZpbHRlck1heWJlLCBMb2FkaW5nU3RhdGUsIGlzTG9hZGluZ1N0YXRlV2l0aERlZmluZWRWYWx1ZSwgaXNMb2FkaW5nU3RhdGVMb2FkaW5nLCBMb2FkaW5nU3RhdGVXaXRoRGVmaW5lZFZhbHVlLCBzdGFydFdpdGhCZWdpbkxvYWRpbmcsIFN1YnNjcmlwdGlvbk9iamVjdCwgc3VjY2Vzc1Jlc3VsdCwgYmVnaW5Mb2FkaW5nLCBtYXBMb2FkaW5nU3RhdGVWYWx1ZVdpdGhPcGVyYXRvciwgbG9hZGluZ1N0YXRlQ29udGV4dCwgV29ya1VzaW5nQ29udGV4dCwgdmFsdWVGcm9tRmluaXNoZWRMb2FkaW5nU3RhdGUgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSwgT25Jbml0LCB2aWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHN3aXRjaE1hcCwgc2hhcmVSZXBsYXksIHN0YXJ0V2l0aCwgbWVyZ2VNYXAsIHNjYW4sIEJlaGF2aW9yU3ViamVjdCwgdGFwLCBmaXJzdCwgT2JzZXJ2YWJsZSwgY29tYmluZUxhdGVzdCwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGFkZFRvU2V0Q29weSwgYXNBcnJheSwgY29udmVydE1heWJlVG9BcnJheSwgZmlsdGVyTWF5YmVBcnJheVZhbHVlcywgbGFzdFZhbHVlLCBtYWtlVmFsdWVzR3JvdXBNYXAsIE1heWJlLCBtZXJnZUFycmF5cywgUHJpbWF0aXZlS2V5LCBzZXBhcmF0ZVZhbHVlcywgc2V0Q29udGFpbnNBbGxWYWx1ZXMsIHNldHNBcmVFcXVpdmFsZW50LCBzb3J0QnlTdHJpbmdGdW5jdGlvbiB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgRmllbGRUeXBlLCBGb3JtbHlGaWVsZFByb3BzIH0gZnJvbSAnQG5neC1mb3JtbHkvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBGaWVsZFR5cGVDb25maWcgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7IFNvdXJjZVNlbGVjdFZhbHVlTWV0YUxvYWRlciwgU291cmNlU2VsZWN0TWV0YVZhbHVlUmVhZGVyLCBTb3VyY2VTZWxlY3RPcGVuRnVuY3Rpb24sIFNvdXJjZVNlbGVjdExvYWRTb3VyY2VzRnVuY3Rpb24sIFNvdXJjZVNlbGVjdExvYWRTb3VyY2UsIFNvdXJjZVNlbGVjdExvYWRTb3VyY2VMb2FkaW5nU3RhdGUsIFNvdXJjZVNlbGVjdERpc3BsYXlWYWx1ZSwgU291cmNlU2VsZWN0VmFsdWUsIFNvdXJjZVNlbGVjdERpc3BsYXlGdW5jdGlvbiwgU291cmNlU2VsZWN0RGlzcGxheVZhbHVlR3JvdXAsIFNvdXJjZVNlbGVjdFZhbHVlR3JvdXAsIFNvdXJjZVNlbGVjdE9wdGlvbnMsIFNvdXJjZVNlbGVjdE9wZW5Tb3VyY2VSZXN1bHQgfSBmcm9tICcuL3NvdXJjZXNlbGVjdCc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBNYXRPcHRncm91cCwgTWF0T3B0aW9uLCBNYXRTZWxlY3QgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHsgRGJ4QWN0aW9uTW9kdWxlLCBEYnhCdXR0b25Db21wb25lbnQsIERieEJ1dHRvblNwYWNlckRpcmVjdGl2ZSwgRGJ4TG9hZGluZ0NvbXBvbmVudCB9IGZyb20gJ0BkZXJlZWtiL2RieC13ZWInO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNvdXJjZVNlbGVjdEZpZWxkUHJvcHM8VCBleHRlbmRzIFByaW1hdGl2ZUtleSA9IFByaW1hdGl2ZUtleSwgTSA9IHVua25vd24+IGV4dGVuZHMgRm9ybWx5RmllbGRQcm9wcyB7XG4gIC8qKlxuICAgKiBGdW5jdGlvbiB0byBvcGVuIHRoZSBzb3VyY2UgYW5kIHJlcXVlc3QgdmFsdWVzLlxuICAgKi9cbiAgcmVhZG9ubHkgb3BlblNvdXJjZT86IFNvdXJjZVNlbGVjdE9wZW5GdW5jdGlvbjxNPjtcbiAgLyoqXG4gICAqIExvYWRzIHRoZSBzb3VyY2VzIHRvIGRpc3BsYXkgZW50cmllcyBmcm9tLlxuICAgKi9cbiAgcmVhZG9ubHkgbG9hZFNvdXJjZXM/OiBTb3VyY2VTZWxlY3RMb2FkU291cmNlc0Z1bmN0aW9uPE0+O1xuICAvKipcbiAgICogUmVhZHMgdGhlIHZhbHVlIGZyb20gYSBtZXRhIHZhbHVlLlxuICAgKi9cbiAgcmVhZG9ubHkgdmFsdWVSZWFkZXI6IFNvdXJjZVNlbGVjdE1ldGFWYWx1ZVJlYWRlcjxULCBNPjtcbiAgLyoqXG4gICAqIExvYWRzIG1ldGFkYXRhIGZvciB0aGUgaW5wdXQgdmFsdWVzLlxuICAgKi9cbiAgcmVhZG9ubHkgbWV0YUxvYWRlcjogU291cmNlU2VsZWN0VmFsdWVNZXRhTG9hZGVyPFQsIE0+O1xuICAvKipcbiAgICogVXNlZCBmb3IgYnVpbGRpbmcgYSBkaXNwbGF5IHZhbHVlIGdpdmVuIHRoZSBpbnB1dC5cbiAgICovXG4gIHJlYWRvbmx5IGRpc3BsYXlGb3JWYWx1ZTogU291cmNlU2VsZWN0RGlzcGxheUZ1bmN0aW9uPFQsIE0+O1xuICAvKipcbiAgICogU2VsZWN0IGJ1dHRvbiBpY29uXG4gICAqL1xuICByZWFkb25seSBzZWxlY3RCdXR0b25JY29uPzogc3RyaW5nO1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdGhlIHNlbGVjdGlvbiBpcyBhcyBhbiBhcnJheS5cbiAgICovXG4gIHJlYWRvbmx5IG11bHRpcGxlPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgb2JzZXJ2YWJsZSB0aGF0IHdpbGwgdHJpZ2dlciB0aGUgY2xlYXJpbmcgb2YgYWxsIGNhY2hlZCBkaXNwbGF5IHZhbHVlcy5cbiAgICovXG4gIHJlYWRvbmx5IHJlZnJlc2hEaXNwbGF5VmFsdWVzJD86IE9ic2VydmFibGU8dW5rbm93bj47XG59XG5cbmludGVyZmFjZSBTZWxlY3RGaWVsZE9wZW5Tb3VyY2VNYXA8VCBleHRlbmRzIFByaW1hdGl2ZUtleSA9IFByaW1hdGl2ZUtleSwgTSA9IHVua25vd24+IHtcbiAgcmVhZG9ubHkgdmFsdWVzOiBTb3VyY2VTZWxlY3RWYWx1ZTxULCBNPltdO1xuICByZWFkb25seSB2YWx1ZXNTZXQ6IFNldDxUPjtcbn1cblxuLyoqXG4gKiBDb21wb25lbnQgdGhhdCBkaXNwbGF5cyBhIHNlbGVjdCB2aWV3IChtdWx0aSBvciBub3QpXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RieC1mb3JtLXNvdXJjZXNlbGVjdGZpZWxkJyxcbiAgdGVtcGxhdGVVcmw6ICdzb3VyY2VzZWxlY3QuZmllbGQuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW01hdFNlbGVjdCwgTWF0T3B0aW9uLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgRGJ4QnV0dG9uQ29tcG9uZW50LCBNYXRPcHRncm91cCwgRGJ4QnV0dG9uU3BhY2VyRGlyZWN0aXZlLCBEYnhBY3Rpb25Nb2R1bGUsIERieExvYWRpbmdDb21wb25lbnRdLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIERieEZvcm1Tb3VyY2VTZWxlY3RGaWVsZENvbXBvbmVudDxUIGV4dGVuZHMgUHJpbWF0aXZlS2V5ID0gUHJpbWF0aXZlS2V5LCBNID0gdW5rbm93bj4gZXh0ZW5kcyBGaWVsZFR5cGU8RmllbGRUeXBlQ29uZmlnPFNvdXJjZVNlbGVjdEZpZWxkUHJvcHM8VCwgTT4+PiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfY2FjaGVNZXRhU3ViID0gbmV3IFN1YnNjcmlwdGlvbk9iamVjdCgpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9jbGVhckRpc3BsYXlIYXNoTWFwU3ViID0gbmV3IFN1YnNjcmlwdGlvbk9iamVjdCgpO1xuICBwcml2YXRlIHJlYWRvbmx5IF92YWx1ZU1ldGFIYXNoTWFwID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXA8VCwgU291cmNlU2VsZWN0VmFsdWU8VCwgTT4+PihuZXcgTWFwKCkpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9kaXNwbGF5SGFzaE1hcCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWFwPFQsIFNvdXJjZVNlbGVjdERpc3BsYXlWYWx1ZTxULCBNPj4+KG5ldyBNYXAoKSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZm9ybUNvbnRyb2xPYnMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1heWJlPEFic3RyYWN0Q29udHJvbDxUW10+Pj4odW5kZWZpbmVkKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZnJvbU9wZW5Tb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNlbGVjdEZpZWxkT3BlblNvdXJjZU1hcDxULCBNPj4oeyB2YWx1ZXM6IFtdLCB2YWx1ZXNTZXQ6IG5ldyBTZXQoKSB9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBfbG9hZFNvdXJjZXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1heWJlPE9ic2VydmFibGU8U291cmNlU2VsZWN0TG9hZFNvdXJjZTxNPltdPj4+KHVuZGVmaW5lZCk7XG5cbiAgcmVhZG9ubHkgYnV0dG9uRWxlbWVudCA9IHZpZXdDaGlsZDxzdHJpbmcsIEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PignYnV0dG9uJywgeyByZWFkOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiB9KTtcblxuICByZWFkb25seSBmb3JtQ29udHJvbCQgPSB0aGlzLl9mb3JtQ29udHJvbE9icy5waXBlKGZpbHRlck1heWJlKCkpO1xuXG4gIHJlYWRvbmx5IGN1cnJlbnRGb3JtQ29udHJvbFZhbHVlJCA9IHRoaXMuZm9ybUNvbnRyb2wkLnBpcGUoXG4gICAgc3dpdGNoTWFwKChjb250cm9sKSA9PiBjb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKHN0YXJ0V2l0aChjb250cm9sLnZhbHVlKSkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgdmFsdWVzJDogT2JzZXJ2YWJsZTxUW10+ID0gdGhpcy5jdXJyZW50Rm9ybUNvbnRyb2xWYWx1ZSQucGlwZShtYXAoY29udmVydE1heWJlVG9BcnJheSksIHNoYXJlUmVwbGF5KDEpKTtcblxuICByZWFkb25seSBhbGxWYWx1ZXNFdmVyU2VsZWN0ZWQkOiBPYnNlcnZhYmxlPFRbXT4gPSB0aGlzLnZhbHVlcyQucGlwZShcbiAgICBzY2FuKChhY2MsIHZhbHVlcykgPT4ge1xuICAgICAgbGV0IHJlc3VsdDogU2V0PFQ+ID0gYWNjO1xuXG4gICAgICBpZiAoIXNldENvbnRhaW5zQWxsVmFsdWVzKGFjYywgdmFsdWVzKSkge1xuICAgICAgICByZXN1bHQgPSBhZGRUb1NldENvcHkoYWNjLCB2YWx1ZXMpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0sIG5ldyBTZXQ8VD4oKSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBtYXAoKHgpID0+IEFycmF5LmZyb20oeCkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgc291cmNlU2VsZWN0VmFsdWVzRnJvbVZhbHVlc1N0YXRlJDogT2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGU8U291cmNlU2VsZWN0VmFsdWU8VCwgTT5bXT4+ID0gdGhpcy5hbGxWYWx1ZXNFdmVyU2VsZWN0ZWQkLnBpcGUoXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzd2l0Y2hNYXAoKHZhbHVlczogVFtdKSA9PiB0aGlzLmxvYWRTb3VyY2VTZWxlY3RWYWx1ZUZvclZhbHVlcyh2YWx1ZXMpKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGxvYWRTb3VyY2VzJDogT2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGU8U291cmNlU2VsZWN0VmFsdWVHcm91cDxULCBNPltdPj4gPSB0aGlzLl9sb2FkU291cmNlcy5waXBlKFxuICAgIGZpbHRlck1heWJlKCksXG4gICAgc3dpdGNoTWFwKChsb2FkU291cmNlKSA9PiB7XG4gICAgICBjb25zdCB7IHZhbHVlUmVhZGVyIH0gPSB0aGlzO1xuXG4gICAgICByZXR1cm4gbG9hZFNvdXJjZS5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKHNvdXJjZXM6IFNvdXJjZVNlbGVjdExvYWRTb3VyY2U8TT5bXSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHNvdXJjZU9iczogT2JzZXJ2YWJsZTxTb3VyY2VTZWxlY3RMb2FkU291cmNlTG9hZGluZ1N0YXRlPE0+PltdID0gc291cmNlcy5tYXAoKHgpID0+IHgubWV0YS5waXBlKG1hcCgobWV0YVN0YXRlKSA9PiAoeyAuLi5tZXRhU3RhdGUsIGxhYmVsOiB4LmxhYmVsIH0pKSkpO1xuXG4gICAgICAgICAgaWYgKHNvdXJjZU9icy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBvZihzdWNjZXNzUmVzdWx0KFtdKSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KHNvdXJjZU9icykucGlwZShcbiAgICAgICAgICAgICAgbWFwKCh4KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhdGVzV2l0aFZhbHVlcyA9IHguZmlsdGVyKCh5KSA9PiBpc0xvYWRpbmdTdGF0ZVdpdGhEZWZpbmVkVmFsdWUoeSkpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGxvYWRpbmcgPSB4LmZpbmRJbmRleChpc0xvYWRpbmdTdGF0ZUxvYWRpbmcpICE9PSAtMTtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZTogU291cmNlU2VsZWN0VmFsdWVHcm91cDxULCBNPltdID0gc3RhdGVzV2l0aFZhbHVlcy5tYXAoKHkpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwOiBTb3VyY2VTZWxlY3RWYWx1ZUdyb3VwPFQsIE0+ID0ge1xuICAgICAgICAgICAgICAgICAgICBsYWJlbDogeS5sYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWVzOiAoeS52YWx1ZSBhcyBNW10pLm1hcCgobWV0YSkgPT4gKHsgbWV0YSwgdmFsdWU6IHZhbHVlUmVhZGVyKG1ldGEpIH0pKVxuICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgcmV0dXJuIGdyb3VwO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgIGxvYWRpbmcsXG4gICAgICAgICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSlcbiAgKTtcblxuICByZWFkb25seSBmcm9tT3BlblNvdXJjZSQ6IE9ic2VydmFibGU8U291cmNlU2VsZWN0VmFsdWVHcm91cDxULCBNPj4gPSB0aGlzLl9mcm9tT3BlblNvdXJjZS5waXBlKFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChhLCBiKSA9PiBzZXRzQXJlRXF1aXZhbGVudChhLnZhbHVlc1NldCwgYi52YWx1ZXNTZXQpKSxcbiAgICBtYXAoKHgpID0+IHtcbiAgICAgIGNvbnN0IGdyb3VwOiBTb3VyY2VTZWxlY3RWYWx1ZUdyb3VwPFQsIE0+ID0ge1xuICAgICAgICBsYWJlbDogJycsXG4gICAgICAgIHZhbHVlczogeC52YWx1ZXNcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBncm91cDtcbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IHZhbHVlR3JvdXBzRnJvbVNvdXJjZXNTdGF0ZSQ6IE9ic2VydmFibGU8TG9hZGluZ1N0YXRlV2l0aERlZmluZWRWYWx1ZTxTb3VyY2VTZWxlY3RWYWx1ZUdyb3VwPFQsIE0+W10+PiA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuZnJvbU9wZW5Tb3VyY2UkLCB0aGlzLmxvYWRTb3VyY2VzJF0pLnBpcGUoXG4gICAgbWFwKChbZnJvbU9wZW5Tb3VyY2VHcm91cCwgbG9hZFNvdXJjZXNdKSA9PiB7XG4gICAgICBjb25zdCBsb2FkU291cmNlc1ZhbHVlID0gbG9hZFNvdXJjZXMudmFsdWUgPz8gW107XG4gICAgICBjb25zdCB2YWx1ZTogU291cmNlU2VsZWN0VmFsdWVHcm91cDxULCBNPltdID0gW2Zyb21PcGVuU291cmNlR3JvdXAsIC4uLmxvYWRTb3VyY2VzVmFsdWVdO1xuXG4gICAgICBjb25zdCByZXN1bHQ6IExvYWRpbmdTdGF0ZVdpdGhEZWZpbmVkVmFsdWU8U291cmNlU2VsZWN0VmFsdWVHcm91cDxULCBNPltdPiA9IHtcbiAgICAgICAgbG9hZGluZzogbG9hZFNvdXJjZXMubG9hZGluZyxcbiAgICAgICAgdmFsdWVcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBhbGxWYWx1ZUdyb3Vwc1N0YXRlJDogT2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGU8U291cmNlU2VsZWN0VmFsdWVHcm91cDxULCBNPltdPj4gPSB0aGlzLnNvdXJjZVNlbGVjdFZhbHVlc0Zyb21WYWx1ZXNTdGF0ZSQucGlwZShcbiAgICBzd2l0Y2hNYXAoKHNvdXJjZVNlbGVjdFZhbHVlc0Zyb21WYWx1ZXM6IExvYWRpbmdTdGF0ZTxTb3VyY2VTZWxlY3RWYWx1ZTxULCBNPltdPikgPT4ge1xuICAgICAgaWYgKGlzTG9hZGluZ1N0YXRlV2l0aERlZmluZWRWYWx1ZShzb3VyY2VTZWxlY3RWYWx1ZXNGcm9tVmFsdWVzKSkge1xuICAgICAgICBjb25zdCB2YWx1ZXNGcm9tVmFsdWVzR3JvdXA6IFNvdXJjZVNlbGVjdFZhbHVlR3JvdXA8VCwgTT4gPSB7XG4gICAgICAgICAgbGFiZWw6ICcnLFxuICAgICAgICAgIHZhbHVlczogc291cmNlU2VsZWN0VmFsdWVzRnJvbVZhbHVlcy52YWx1ZVxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlR3JvdXBzRnJvbVNvdXJjZXNTdGF0ZSQucGlwZShcbiAgICAgICAgICBtYXAoKHNvdXJjZXNTdGF0ZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYWxsR3JvdXBzOiBTb3VyY2VTZWxlY3RWYWx1ZUdyb3VwPFQsIE0+W10gPSBbdmFsdWVzRnJvbVZhbHVlc0dyb3VwLCAuLi5zb3VyY2VzU3RhdGUudmFsdWVdO1xuXG4gICAgICAgICAgICBjb25zdCByZXN1bHQ6IExvYWRpbmdTdGF0ZTxTb3VyY2VTZWxlY3RWYWx1ZUdyb3VwPFQsIE0+W10+ID0ge1xuICAgICAgICAgICAgICBsb2FkaW5nOiBzb3VyY2VTZWxlY3RWYWx1ZXNGcm9tVmFsdWVzLmxvYWRpbmcgfHwgc291cmNlc1N0YXRlLmxvYWRpbmcsXG4gICAgICAgICAgICAgIHZhbHVlOiBhbGxHcm91cHNcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBvZihiZWdpbkxvYWRpbmc8U291cmNlU2VsZWN0VmFsdWVHcm91cDxULCBNPltdPih7fSkpO1xuICAgICAgfVxuICAgIH0pLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgYWxsT3B0aW9uR3JvdXBzU3RhdGUkOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxTb3VyY2VTZWxlY3REaXNwbGF5VmFsdWVHcm91cDxULCBNPltdPj4gPSB0aGlzLmFsbFZhbHVlR3JvdXBzU3RhdGUkLnBpcGUoXG4gICAgbWFwTG9hZGluZ1N0YXRlVmFsdWVXaXRoT3BlcmF0b3IoXG4gICAgICBzd2l0Y2hNYXAoKGdyb3VwczogU291cmNlU2VsZWN0VmFsdWVHcm91cDxULCBNPltdKSA9PiB7XG4gICAgICAgIGNvbnN0IGFsbEdyb3Vwc1JlZHVjZWRCeUxhYmVsID0gbWFrZVZhbHVlc0dyb3VwTWFwKGdyb3VwcywgKHgpID0+IHgubGFiZWwpIGFzIE1hcDxzdHJpbmcsIFNvdXJjZVNlbGVjdFZhbHVlR3JvdXA8VCwgTT5bXT47XG5cbiAgICAgICAgY29uc3QgdmFsdWVzRW5jb3VudGVyZWQgPSBuZXcgU2V0PFQ+KCk7XG4gICAgICAgIGNvbnN0IGFsbFVuaXF1ZVZhbHVlczogU291cmNlU2VsZWN0VmFsdWU8VCwgTT5bXSA9IFtdO1xuXG4gICAgICAgIGNvbnN0IHNpbXBsaWZpZWRWYWx1ZXNHcm91cHM6IFNvdXJjZVNlbGVjdFZhbHVlR3JvdXA8VCwgTT5bXSA9IFtdO1xuXG4gICAgICAgIC8vIHNvcnQgdG8gcHV0IHRoZSBibGFuayBsYWJlbCBmaXJzdFxuICAgICAgICBBcnJheS5mcm9tKGFsbEdyb3Vwc1JlZHVjZWRCeUxhYmVsLmVudHJpZXMoKSlcbiAgICAgICAgICAuc29ydChzb3J0QnlTdHJpbmdGdW5jdGlvbigoeCkgPT4geFswXSkpXG4gICAgICAgICAgLmZvckVhY2goKFtsYWJlbCwgZ3JvdXBzXSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdmFsdWVzOiBTb3VyY2VTZWxlY3RWYWx1ZTxULCBNPltdID0gW107XG5cbiAgICAgICAgICAgIGdyb3Vwcy5mb3JFYWNoKChncm91cCkgPT4ge1xuICAgICAgICAgICAgICBncm91cC52YWx1ZXMuZm9yRWFjaCgoc2VsZWN0VmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXZhbHVlc0VuY291bnRlcmVkLmhhcyhzZWxlY3RWYWx1ZS52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKHNlbGVjdFZhbHVlKTtcbiAgICAgICAgICAgICAgICAgIGFsbFVuaXF1ZVZhbHVlcy5wdXNoKHNlbGVjdFZhbHVlKTtcbiAgICAgICAgICAgICAgICAgIHZhbHVlc0VuY291bnRlcmVkLmFkZChzZWxlY3RWYWx1ZS52YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBpZiAodmFsdWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgc2ltcGxpZmllZFZhbHVlc0dyb3Vwcy5wdXNoKHtcbiAgICAgICAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICAgICAgICB2YWx1ZXNcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3Qgb2JzID0gdGhpcy5nZXREaXNwbGF5VmFsdWVzRm9yU2VsZWN0VmFsdWVzKGFsbFVuaXF1ZVZhbHVlcykucGlwZShcbiAgICAgICAgICBtYXAoKGRpc3BsYXlWYWx1ZXMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGRpc3BsYXlWYWx1ZXNNYXAgPSBuZXcgTWFwKGRpc3BsYXlWYWx1ZXMubWFwKCh4KSA9PiBbeC52YWx1ZSwgeF0pKTtcblxuICAgICAgICAgICAgY29uc3QgZGlzcGxheUdyb3VwczogU291cmNlU2VsZWN0RGlzcGxheVZhbHVlR3JvdXA8VCwgTT5bXSA9IHNpbXBsaWZpZWRWYWx1ZXNHcm91cHMubWFwKCh2YWx1ZUdyb3VwKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHZhbHVlcyA9IGZpbHRlck1heWJlQXJyYXlWYWx1ZXModmFsdWVHcm91cC52YWx1ZXMubWFwKCh4KSA9PiBkaXNwbGF5VmFsdWVzTWFwLmdldCh4LnZhbHVlKSkpO1xuXG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgbGFiZWw6IHZhbHVlR3JvdXAubGFiZWwsXG4gICAgICAgICAgICAgICAgdmFsdWVzXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgcmV0dXJuIGRpc3BsYXlHcm91cHM7XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gb2JzO1xuICAgICAgfSlcbiAgICApLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgYWxsT3B0aW9uR3JvdXBzJDogT2JzZXJ2YWJsZTxTb3VyY2VTZWxlY3REaXNwbGF5VmFsdWVHcm91cDxULCBNPltdPiA9IHRoaXMuYWxsT3B0aW9uR3JvdXBzU3RhdGUkLnBpcGUoXG4gICAgdmFsdWVGcm9tRmluaXNoZWRMb2FkaW5nU3RhdGUoKSxcbiAgICBtYXAoKHgpID0+IHggPz8gW10pLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgb3B0aW9ucyQ6IE9ic2VydmFibGU8U291cmNlU2VsZWN0T3B0aW9uczxULCBNPj4gPSB0aGlzLmFsbE9wdGlvbkdyb3VwcyQucGlwZShcbiAgICBtYXAoKHgpID0+IHtcbiAgICAgIGNvbnN0IHsgaW5jbHVkZWQ6IGdyb3VwZWRWYWx1ZXMsIGV4Y2x1ZGVkOiBub25Hcm91cGVkR3JvdXAgfSA9IHNlcGFyYXRlVmFsdWVzKHgsICh5KSA9PiBCb29sZWFuKHkubGFiZWwpKTtcblxuICAgICAgY29uc3QgcmVzdWx0OiBTb3VyY2VTZWxlY3RPcHRpb25zPFQsIE0+ID0ge1xuICAgICAgICBub25Hcm91cGVkVmFsdWVzOiBub25Hcm91cGVkR3JvdXBbMF0/LnZhbHVlcyA/PyBbXSxcbiAgICAgICAgZ3JvdXBlZFZhbHVlc1xuICAgICAgfTtcblxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IG5vbkdyb3VwZWRWYWx1ZXMkID0gdGhpcy5vcHRpb25zJC5waXBlKG1hcCgoeCkgPT4geC5ub25Hcm91cGVkVmFsdWVzKSk7XG4gIHJlYWRvbmx5IGdyb3VwZWRPcHRpb25zJCA9IHRoaXMub3B0aW9ucyQucGlwZShtYXAoKHgpID0+IHguZ3JvdXBlZFZhbHVlcykpO1xuXG4gIHJlYWRvbmx5IG5vbkdyb3VwZWRWYWx1ZXNTaWduYWwgPSB0b1NpZ25hbCh0aGlzLm5vbkdyb3VwZWRWYWx1ZXMkKTtcbiAgcmVhZG9ubHkgZ3JvdXBlZE9wdGlvbnNTaWduYWwgPSB0b1NpZ25hbCh0aGlzLmdyb3VwZWRPcHRpb25zJCk7XG5cbiAgZ2V0IHNvdXJjZVNlbGVjdEZpZWxkKCk6IFNvdXJjZVNlbGVjdEZpZWxkUHJvcHM8VCwgTT4ge1xuICAgIHJldHVybiB0aGlzLnByb3BzO1xuICB9XG5cbiAgZ2V0IG9wZW5Tb3VyY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMub3BlblNvdXJjZTtcbiAgfVxuXG4gIGdldCBzaG93T3BlblNvdXJjZUJ1dHRvbigpIHtcbiAgICByZXR1cm4gQm9vbGVhbih0aGlzLm9wZW5Tb3VyY2UpO1xuICB9XG5cbiAgZ2V0IGxvYWRTb3VyY2VzKCkge1xuICAgIHJldHVybiB0aGlzLnByb3BzLmxvYWRTb3VyY2VzO1xuICB9XG5cbiAgZ2V0IHZhbHVlUmVhZGVyKCkge1xuICAgIHJldHVybiB0aGlzLnByb3BzLnZhbHVlUmVhZGVyO1xuICB9XG5cbiAgZ2V0IG1ldGFMb2FkZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMubWV0YUxvYWRlcjtcbiAgfVxuXG4gIGdldCBkaXNwbGF5Rm9yVmFsdWUoKTogU291cmNlU2VsZWN0RGlzcGxheUZ1bmN0aW9uPFQsIE0+IHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5kaXNwbGF5Rm9yVmFsdWU7XG4gIH1cblxuICBnZXQgc2VsZWN0QnV0dG9uSWNvbigpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5zZWxlY3RCdXR0b25JY29uID8/ICdhZGQnO1xuICB9XG5cbiAgZ2V0IG11bHRpcGxlKCkge1xuICAgIHJldHVybiB0aGlzLnByb3BzLm11bHRpcGxlIHx8IGZhbHNlO1xuICB9XG5cbiAgZ2V0IHJlZnJlc2hEaXNwbGF5VmFsdWVzJCgpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5yZWZyZXNoRGlzcGxheVZhbHVlcyQ7XG4gIH1cblxuICBsb2FkU291cmNlU2VsZWN0VmFsdWVGb3JWYWx1ZXModmFsdWVzOiBUW10pOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxTb3VyY2VTZWxlY3RWYWx1ZTxULCBNPltdPj4ge1xuICAgIHJldHVybiB0aGlzLmdldFNvdXJjZVNlbGVjdFZhbHVlRm9yVmFsdWVzKHZhbHVlcykucGlwZShcbiAgICAgIG1hcCgoc291cmNlU2VsZWN0VmFsdWVzOiBTb3VyY2VTZWxlY3RWYWx1ZTxULCBNPltdKSA9PiBzdWNjZXNzUmVzdWx0KHNvdXJjZVNlbGVjdFZhbHVlcykpLFxuICAgICAgc3RhcnRXaXRoQmVnaW5Mb2FkaW5nKCksXG4gICAgICBzaGFyZVJlcGxheSgxKVxuICAgICk7XG4gIH1cblxuICBnZXRTb3VyY2VTZWxlY3RWYWx1ZUZvclZhbHVlcyh2YWx1ZXM6IFRbXSk6IE9ic2VydmFibGU8U291cmNlU2VsZWN0VmFsdWU8VCwgTT5bXT4ge1xuICAgIGNvbnN0IHsgdmFsdWVSZWFkZXIgfSA9IHRoaXM7XG5cbiAgICByZXR1cm4gdGhpcy5fdmFsdWVNZXRhSGFzaE1hcC5waXBlKFxuICAgICAgbWVyZ2VNYXAoKG1ldGFNYXApID0+IHtcbiAgICAgICAgY29uc3QgbWFwcGluZ1Jlc3VsdCA9IHZhbHVlcy5tYXAoKGhhc2gsIGkpID0+IFtpLCBoYXNoLCBtZXRhTWFwLmdldChoYXNoKV0gYXMgW251bWJlciwgVCwgU291cmNlU2VsZWN0VmFsdWU8VCwgTT5dKTtcblxuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgLy9cbiAgICAgICAgICBpbmNsdWRlZDogaGFzTWV0YSxcbiAgICAgICAgICBleGNsdWRlZDogbmVlZHNNZXRhXG4gICAgICAgIH0gPSBzZXBhcmF0ZVZhbHVlcyhtYXBwaW5nUmVzdWx0LCAoeCkgPT4gQm9vbGVhbih4WzJdKSk7XG5cbiAgICAgICAgbGV0IG9iczogT2JzZXJ2YWJsZTxTb3VyY2VTZWxlY3RWYWx1ZTxULCBNPltdPjtcblxuICAgICAgICBpZiAobmVlZHNNZXRhLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAvLyBHbyBnZXQgdGhlIG1ldGEgdmFsdWUuXG4gICAgICAgICAgY29uc3QgbWV0YVZhbHVlc09icyA9IHRoaXMubWV0YUxvYWRlcihuZWVkc01ldGEubWFwKCh4KSA9PiB4WzFdKSk7XG5cbiAgICAgICAgICBvYnMgPSBtZXRhVmFsdWVzT2JzLnBpcGUoXG4gICAgICAgICAgICBmaXJzdCgpLFxuICAgICAgICAgICAgbWFwKChtZXRhUmVzdWx0cykgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBtZXRhUmVzdWx0c01hcHBpbmc6IFNvdXJjZVNlbGVjdFZhbHVlPFQsIE0+W10gPSBtZXRhUmVzdWx0cy5tYXAoKG1ldGEpID0+ICh7IG1ldGEsIHZhbHVlOiB2YWx1ZVJlYWRlcihtZXRhKSB9KSk7XG4gICAgICAgICAgICAgIGNvbnN0IHZhbHVlSW5kZXhIYXNoTWFwID0gbmV3IE1hcChtZXRhUmVzdWx0c01hcHBpbmcubWFwKCh4KSA9PiBbeC52YWx1ZSwgeF0pKTtcblxuICAgICAgICAgICAgICAvLyBVcGRhdGUgbWV0YU1hcC4gTm8gbmVlZCB0byBwdXNoIGFuIHVwZGF0ZSBub3RpZmljYXRpb24uXG4gICAgICAgICAgICAgIG1ldGFSZXN1bHRzTWFwcGluZy5mb3JFYWNoKCh4KSA9PiBtZXRhTWFwLnNldCh4LnZhbHVlLCB4KSk7XG5cbiAgICAgICAgICAgICAgLy8gWmlwIHZhbHVlcyBiYWNrIHRvZ2V0aGVyLlxuICAgICAgICAgICAgICBjb25zdCBuZXdEaXNwbGF5VmFsdWVzID0gbWFwcGluZ1Jlc3VsdC5tYXAoKHgpID0+IHhbMl0gPz8gdmFsdWVJbmRleEhhc2hNYXAuZ2V0KHhbMV0pKTtcblxuICAgICAgICAgICAgICAvLyBSZXR1cm4gZGlzcGxheSB2YWx1ZXMuXG4gICAgICAgICAgICAgIHJldHVybiBuZXdEaXNwbGF5VmFsdWVzO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIElmIGFsbCBkaXNwbGF5IHZhbHVlcyBhcmUgaGFzaGVkIHJldHVybiB0aGVtXG4gICAgICAgICAgb2JzID0gb2YoaGFzTWV0YS5tYXAoKHgpID0+IHhbMl0pKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvYnM7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBsb2FkRGlzcGxheVZhbHVlc0ZvclNlbGVjdFZhbHVlcyh2YWx1ZXM6IFNvdXJjZVNlbGVjdFZhbHVlPFQsIE0+W10pOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxTb3VyY2VTZWxlY3REaXNwbGF5VmFsdWU8VCwgTT5bXT4+IHtcbiAgICByZXR1cm4gdGhpcy5nZXREaXNwbGF5VmFsdWVzRm9yU2VsZWN0VmFsdWVzKHZhbHVlcykucGlwZShcbiAgICAgIG1hcCgoZGlzcGxheVZhbHVlczogU291cmNlU2VsZWN0RGlzcGxheVZhbHVlPFQsIE0+W10pID0+IHN1Y2Nlc3NSZXN1bHQoZGlzcGxheVZhbHVlcykpLFxuICAgICAgc3RhcnRXaXRoQmVnaW5Mb2FkaW5nKCksXG4gICAgICBzaGFyZVJlcGxheSgxKVxuICAgICk7XG4gIH1cblxuICBnZXREaXNwbGF5VmFsdWVzRm9yU2VsZWN0VmFsdWVzKHZhbHVlczogU291cmNlU2VsZWN0VmFsdWU8VCwgTT5bXSk6IE9ic2VydmFibGU8U291cmNlU2VsZWN0RGlzcGxheVZhbHVlPFQsIE0+W10+IHtcbiAgICByZXR1cm4gdGhpcy5fZGlzcGxheUhhc2hNYXAucGlwZShcbiAgICAgIG1lcmdlTWFwKChtZXRhTWFwKSA9PiB7XG4gICAgICAgIGNvbnN0IG1hcHBpbmdSZXN1bHQgPSB2YWx1ZXMubWFwKCh4KSA9PiBbeCwgeC52YWx1ZV0gYXMgW1NvdXJjZVNlbGVjdFZhbHVlPFQsIE0+LCBUXSkubWFwKChbeCwgaGFzaF0sIGkpID0+IFtpLCBoYXNoLCB4LCBtZXRhTWFwLmdldChoYXNoKV0gYXMgW251bWJlciwgVCwgU291cmNlU2VsZWN0VmFsdWU8VCwgTT4sIFNvdXJjZVNlbGVjdERpc3BsYXlWYWx1ZTxULCBNPl0pO1xuXG4gICAgICAgIGNvbnN0IGhhc0Rpc3BsYXkgPSBtYXBwaW5nUmVzdWx0LmZpbHRlcigoeCkgPT4gQm9vbGVhbih4WzNdKSk7XG4gICAgICAgIGNvbnN0IG5lZWRzRGlzcGxheSA9IG1hcHBpbmdSZXN1bHQuZmlsdGVyKCh4KSA9PiAheFszXSk7XG4gICAgICAgIGxldCBvYnM6IE9ic2VydmFibGU8U291cmNlU2VsZWN0RGlzcGxheVZhbHVlPFQsIE0+W10+O1xuXG4gICAgICAgIGlmIChuZWVkc0Rpc3BsYXkubGVuZ3RoID4gMCkge1xuICAgICAgICAgIC8vIEdvIGdldCB0aGUgZGlzcGxheSB2YWx1ZS5cbiAgICAgICAgICBjb25zdCBkaXNwbGF5VmFsdWVzT2JzID0gdGhpcy5kaXNwbGF5Rm9yVmFsdWUobmVlZHNEaXNwbGF5Lm1hcCgoeCkgPT4geFsyXSkpO1xuXG4gICAgICAgICAgb2JzID0gZGlzcGxheVZhbHVlc09icy5waXBlKFxuICAgICAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgICAgIG1hcCgoZGlzcGxheVJlc3VsdHMpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgZGlzcGxheVJlc3VsdHNNYXBwaW5nOiBbU291cmNlU2VsZWN0RGlzcGxheVZhbHVlPFQsIE0+LCBUXVtdID0gKGRpc3BsYXlSZXN1bHRzIGFzIFNvdXJjZVNlbGVjdERpc3BsYXlWYWx1ZTxULCBNPltdKS5tYXAoKHgpID0+IFt4LCB4LnZhbHVlXSk7XG4gICAgICAgICAgICAgIGNvbnN0IHZhbHVlSW5kZXhIYXNoTWFwID0gbmV3IE1hcChkaXNwbGF5UmVzdWx0c01hcHBpbmcubWFwKChbeCwgaGFzaF0pID0+IFtoYXNoLCB4XSkpO1xuXG4gICAgICAgICAgICAgIC8vIFVwZGF0ZSBtZXRhTWFwLiBObyBuZWVkIHRvIHB1c2ggYW4gdXBkYXRlIG5vdGlmaWNhdGlvbi5cbiAgICAgICAgICAgICAgZGlzcGxheVJlc3VsdHNNYXBwaW5nLmZvckVhY2goKFt4LCBoYXNoXSkgPT4gbWV0YU1hcC5zZXQoaGFzaCwgeCkpO1xuXG4gICAgICAgICAgICAgIC8vIFppcCB2YWx1ZXMgYmFjayB0b2dldGhlci5cbiAgICAgICAgICAgICAgY29uc3QgbmV3RGlzcGxheVZhbHVlcyA9IG1hcHBpbmdSZXN1bHQubWFwKCh4KSA9PiB4WzNdID8/IHZhbHVlSW5kZXhIYXNoTWFwLmdldCh4WzFdKSk7XG5cbiAgICAgICAgICAgICAgLy8gUmV0dXJuIGRpc3BsYXkgdmFsdWVzLlxuICAgICAgICAgICAgICByZXR1cm4gbmV3RGlzcGxheVZhbHVlcztcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBJZiBhbGwgZGlzcGxheSB2YWx1ZXMgYXJlIGhhc2hlZCByZXR1cm4gdGhhdC5cbiAgICAgICAgICBvYnMgPSBvZihoYXNEaXNwbGF5Lm1hcCgoeCkgPT4geFszXSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG9icztcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHJlYWRvbmx5IGNvbnRleHQgPSBsb2FkaW5nU3RhdGVDb250ZXh0KHsgb2JzOiB0aGlzLmFsbE9wdGlvbkdyb3Vwc1N0YXRlJCB9KTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCB7IGxvYWRTb3VyY2VzIH0gPSB0aGlzO1xuXG4gICAgdGhpcy5fbG9hZFNvdXJjZXMubmV4dChsb2FkU291cmNlcz8uKCkgfHwgb2YoW10pKTtcblxuICAgIGlmICh0aGlzLnJlZnJlc2hEaXNwbGF5VmFsdWVzJCAhPSBudWxsKSB7XG4gICAgICB0aGlzLl9jbGVhckRpc3BsYXlIYXNoTWFwU3ViLnN1YnNjcmlwdGlvbiA9IHRoaXMucmVmcmVzaERpc3BsYXlWYWx1ZXMkLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9kaXNwbGF5SGFzaE1hcC5uZXh0KG5ldyBNYXAoKSkpO1xuICAgIH1cblxuICAgIHRoaXMuX2Zvcm1Db250cm9sT2JzLm5leHQodGhpcy5mb3JtQ29udHJvbCk7XG5cbiAgICAvLyBjb3B5IGFsbCB2YWx1ZXMgZnJvbSB0aGUgc291cmNlcyBpbnRvIHRoZSB2YWx1ZXMgaGFzaCBtYXAgdG8gcHJldmVudCByZWxvYWRpbmdcbiAgICB0aGlzLl9jYWNoZU1ldGFTdWIuc3Vic2NyaXB0aW9uID0gdGhpcy52YWx1ZUdyb3Vwc0Zyb21Tb3VyY2VzU3RhdGUkLnN1YnNjcmliZSgoeCkgPT4ge1xuICAgICAgY29uc3QgaGFzaE1hcCA9IHRoaXMuX3ZhbHVlTWV0YUhhc2hNYXAudmFsdWU7XG4gICAgICB4LnZhbHVlLmZvckVhY2goKHgpID0+IHgudmFsdWVzLmZvckVhY2goKHkpID0+IGhhc2hNYXAuc2V0KHkudmFsdWUsIHkpKSk7XG4gICAgfSk7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIHRoaXMuX2NhY2hlTWV0YVN1Yi5kZXN0cm95KCk7XG4gICAgdGhpcy5fY2xlYXJEaXNwbGF5SGFzaE1hcFN1Yi5kZXN0cm95KCk7XG4gICAgdGhpcy5fdmFsdWVNZXRhSGFzaE1hcC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX2Rpc3BsYXlIYXNoTWFwLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fZm9ybUNvbnRyb2xPYnMuY29tcGxldGUoKTtcbiAgICB0aGlzLl9mcm9tT3BlblNvdXJjZS5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX2xvYWRTb3VyY2VzLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5jb250ZXh0LmRlc3Ryb3koKTtcbiAgfVxuXG4gIHJlYWRvbmx5IGhhbmRsZVNlbGVjdE9wdGlvbnM6IFdvcmtVc2luZ0NvbnRleHQ8dW5rbm93bj4gPSAoXywgY29udGV4dCkgPT4ge1xuICAgIGNvbnN0IHsgb3BlblNvdXJjZSB9ID0gdGhpcztcbiAgICBjb25zdCBvcmlnaW4gPSB0aGlzLmJ1dHRvbkVsZW1lbnQoKTtcblxuICAgIGlmIChvcGVuU291cmNlICYmIG9yaWdpbikge1xuICAgICAgY29uc3Qgc291cmNlT2JzID0gb3BlblNvdXJjZSh7IG9yaWdpbiB9KTtcbiAgICAgIGNvbnRleHQuc3RhcnRXb3JraW5nV2l0aE9ic2VydmFibGUoXG4gICAgICAgIHNvdXJjZU9icy5waXBlKFxuICAgICAgICAgIGZpcnN0KCksXG4gICAgICAgICAgdGFwKChyZXN1bHQ6IFNvdXJjZVNlbGVjdE9wZW5Tb3VyY2VSZXN1bHQ8TT4pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlc1RvQWRkID0gbWVyZ2VBcnJheXMoW3Jlc3VsdC5zZWxlY3QsIHJlc3VsdC5vcHRpb25zXSk7XG5cbiAgICAgICAgICAgIGlmICh2YWx1ZXNUb0FkZC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgdGhpcy5hZGRUb09wZW5Tb3VyY2VNYXAodmFsdWVzVG9BZGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAocmVzdWx0LnNldCkge1xuICAgICAgICAgICAgICB0aGlzLnNldEN1cnJlbnRWYWx1ZShyZXN1bHQuc2V0Lm1hcCgoeCkgPT4gdGhpcy52YWx1ZVJlYWRlcih4KSkpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQuc2VsZWN0KSB7XG4gICAgICAgICAgICAgIHRoaXMuYWRkVG9DdXJyZW50VmFsdWUocmVzdWx0LnNlbGVjdC5tYXAoKHgpID0+IHRoaXMudmFsdWVSZWFkZXIoeCkpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb250ZXh0LnJlamVjdCgpO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIGFkZFRvT3BlblNvdXJjZU1hcChpbnB1dDogTVtdKSB7XG4gICAgY29uc3QgeyB2YWx1ZVJlYWRlciB9ID0gdGhpcztcbiAgICBjb25zdCB7IHZhbHVlczogbWV0YSwgdmFsdWVzU2V0OiBpbml0aWFsVmFsdWVzIH0gPSB0aGlzLl9mcm9tT3BlblNvdXJjZS52YWx1ZTtcblxuICAgIGNvbnN0IG5ld01ldGFGcm9tSW5wdXQ6IFNvdXJjZVNlbGVjdFZhbHVlPFQsIE0+W10gPSBbXTtcbiAgICBjb25zdCB2YWx1ZXNTZXQgPSBuZXcgU2V0KGluaXRpYWxWYWx1ZXMpO1xuXG4gICAgaW5wdXQuZm9yRWFjaCgoeCkgPT4ge1xuICAgICAgY29uc3QgdmFsdWUgPSB2YWx1ZVJlYWRlcih4KTtcblxuICAgICAgaWYgKCF2YWx1ZXNTZXQuaGFzKHZhbHVlKSkge1xuICAgICAgICBuZXdNZXRhRnJvbUlucHV0LnB1c2goeyBtZXRhOiB4LCB2YWx1ZSB9KTtcbiAgICAgICAgdmFsdWVzU2V0LmFkZCh2YWx1ZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAobmV3TWV0YUZyb21JbnB1dC5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLl9mcm9tT3BlblNvdXJjZS5uZXh0KHtcbiAgICAgICAgdmFsdWVzOiBbLi4ubWV0YSwgLi4ubmV3TWV0YUZyb21JbnB1dF0sXG4gICAgICAgIHZhbHVlc1NldDogdmFsdWVzU2V0XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFkZFRvQ3VycmVudFZhbHVlKHZhbHVlczogVFtdKSB7XG4gICAgY29uc3QgY3VycmVudFZhbHVlID0gYXNBcnJheSh0aGlzLmZvcm1Db250cm9sLnZhbHVlKTtcbiAgICBjb25zdCBuZXdWYWx1ZUFycmF5ID0gWy4uLmN1cnJlbnRWYWx1ZSwgLi4udmFsdWVzXTtcbiAgICB0aGlzLnNldEN1cnJlbnRWYWx1ZShuZXdWYWx1ZUFycmF5KTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Q3VycmVudFZhbHVlKG5ld1ZhbHVlQXJyYXk6IFRbXSkge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5tdWx0aXBsZSA/IG5ld1ZhbHVlQXJyYXkgOiBsYXN0VmFsdWUobmV3VmFsdWVBcnJheSk7IC8vIHBpY2sgbGFzdCB2YWx1ZSwgYXMgdGhlIGxhc3QgdmFsdWUgYWRkZWQgaXMgdGhlIG5ld2VzdCB2YWx1ZS5cbiAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKHZhbHVlKTtcbiAgICB0aGlzLmZvcm1Db250cm9sLm1hcmtBc0RpcnR5KCk7XG4gICAgdGhpcy5mb3JtQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkYngtc291cmNlLXNlbGVjdC1maWVsZFwiPlxuICA8ZGl2IGNsYXNzPVwiZGJ4LXNvdXJjZS1zZWxlY3QtZmllbGQtY29udGVudFwiPlxuICAgIDxtYXQtc2VsZWN0IGNsYXNzPVwiZGJ4LXNvdXJjZS1zZWxlY3QtZmllbGQtc2VsZWN0XCIgW2lkXT1cImlkXCIgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sXCIgW211bHRpcGxlXT1cInByb3BzLm11bHRpcGxlXCI+XG4gICAgICBAZm9yICh2YWx1ZSBvZiBub25Hcm91cGVkVmFsdWVzU2lnbmFsKCk7IHRyYWNrIHZhbHVlLnZhbHVlKSB7XG4gICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJ2YWx1ZS52YWx1ZVwiPlxuICAgICAgICAgIHt7IHZhbHVlLmxhYmVsIH19XG4gICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgIH1cbiAgICAgIEBmb3IgKG9wdGlvbkdyb3VwIG9mIGdyb3VwZWRPcHRpb25zU2lnbmFsKCk7IHRyYWNrIG9wdGlvbkdyb3VwLmxhYmVsKSB7XG4gICAgICAgIDxtYXQtb3B0Z3JvdXAgW2xhYmVsXT1cIm9wdGlvbkdyb3VwLmxhYmVsXCI+XG4gICAgICAgICAgQGZvciAodmFsdWUgb2Ygb3B0aW9uR3JvdXAudmFsdWVzOyB0cmFjayB2YWx1ZS52YWx1ZSkge1xuICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cInZhbHVlLnZhbHVlXCI+XG4gICAgICAgICAgICAgIHt7IHZhbHVlLmxhYmVsIH19XG4gICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgfVxuICAgICAgICA8L21hdC1vcHRncm91cD5cbiAgICAgIH1cbiAgICA8L21hdC1zZWxlY3Q+XG4gICAgQGlmIChzaG93T3BlblNvdXJjZUJ1dHRvbikge1xuICAgICAgPGRieC1idXR0b24tc3BhY2VyPjwvZGJ4LWJ1dHRvbi1zcGFjZXI+XG4gICAgICA8ZGJ4LWFjdGlvbiBkYnhBY3Rpb25WYWx1ZSBbZGJ4QWN0aW9uSGFuZGxlcl09XCJoYW5kbGVTZWxlY3RPcHRpb25zXCIgY2xhc3M9XCJkYngtc291cmNlLXNlbGVjdC1maWVsZC1idXR0b25cIj5cbiAgICAgICAgPGRieC1idXR0b24gI2J1dHRvbiBkYnhBY3Rpb25CdXR0b24gW2ZhYl09XCJ0cnVlXCIgW2ljb25Pbmx5XT1cInRydWVcIiBbaWNvbl09XCJzZWxlY3RCdXR0b25JY29uXCI+PC9kYngtYnV0dG9uPlxuICAgICAgPC9kYngtYWN0aW9uPlxuICAgIH1cbiAgPC9kaXY+XG4gIDxkYngtbG9hZGluZyBjbGFzcz1cImRieC1zb3VyY2Utc2VsZWN0LWZpZWxkLWxvYWRpbmdcIiBbbGluZWFyXT1cInRydWVcIiBbY29udGV4dF09XCJjb250ZXh0XCI+PC9kYngtbG9hZGluZz5cbjwvZGl2PlxuIl19
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { formlyField, propsAndConfigForFieldConfig } from '../../field';
|
|
2
|
-
export function sourceSelectField(config) {
|
|
3
|
-
const { key, materialFormField } = config;
|
|
4
|
-
return formlyField({
|
|
5
|
-
key,
|
|
6
|
-
type: 'sourceselectfield',
|
|
7
|
-
...propsAndConfigForFieldConfig(config, {
|
|
8
|
-
...materialFormField,
|
|
9
|
-
...config,
|
|
10
|
-
autocomplete: false
|
|
11
|
-
})
|
|
12
|
-
});
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlc2VsZWN0LmZpZWxkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZvcm0vc3JjL2xpYi9mb3JtbHkvZmllbGQvc2VsZWN0aW9uL3NvdXJjZXNlbGVjdC9zb3VyY2VzZWxlY3QuZmllbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUEyQixXQUFXLEVBQUUsNEJBQTRCLEVBQTZELE1BQU0sYUFBYSxDQUFDO0FBTTVKLE1BQU0sVUFBVSxpQkFBaUIsQ0FBcUQsTUFBcUM7SUFDekgsTUFBTSxFQUFFLEdBQUcsRUFBRSxpQkFBaUIsRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUMxQyxPQUFPLFdBQVcsQ0FBQztRQUNqQixHQUFHO1FBQ0gsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixHQUFHLDRCQUE0QixDQUFDLE1BQU0sRUFBRTtZQUN0QyxHQUFHLGlCQUFpQjtZQUNwQixHQUFHLE1BQU07WUFDVCxZQUFZLEVBQUUsS0FBSztTQUNwQixDQUFDO0tBQ0gsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgUHJpbWF0aXZlS2V5IH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyB0eXBlIEZvcm1seUZpZWxkQ29uZmlnIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQgeyB0eXBlIExhYmVsZWRGaWVsZENvbmZpZywgZm9ybWx5RmllbGQsIHByb3BzQW5kQ29uZmlnRm9yRmllbGRDb25maWcsIHR5cGUgRGVzY3JpcHRpb25GaWVsZENvbmZpZywgdHlwZSBNYXRlcmlhbEZvcm1GaWVsZENvbmZpZyB9IGZyb20gJy4uLy4uL2ZpZWxkJztcbmltcG9ydCB7IHR5cGUgU291cmNlU2VsZWN0RmllbGRQcm9wcyB9IGZyb20gJy4vc291cmNlc2VsZWN0LmZpZWxkLmNvbXBvbmVudCc7XG5cbi8vIE1BUks6IFRleHRcbmV4cG9ydCBpbnRlcmZhY2UgU291cmNlU2VsZWN0RmllbGRDb25maWc8VCBleHRlbmRzIFByaW1hdGl2ZUtleSA9IFByaW1hdGl2ZUtleSwgTSA9IHVua25vd24+IGV4dGVuZHMgTGFiZWxlZEZpZWxkQ29uZmlnLCBEZXNjcmlwdGlvbkZpZWxkQ29uZmlnLCBNYXRlcmlhbEZvcm1GaWVsZENvbmZpZywgU291cmNlU2VsZWN0RmllbGRQcm9wczxULCBNPiB7fVxuXG5leHBvcnQgZnVuY3Rpb24gc291cmNlU2VsZWN0RmllbGQ8VCBleHRlbmRzIFByaW1hdGl2ZUtleSA9IFByaW1hdGl2ZUtleSwgTSA9IHVua25vd24+KGNvbmZpZzogU291cmNlU2VsZWN0RmllbGRDb25maWc8VCwgTT4pOiBGb3JtbHlGaWVsZENvbmZpZyB7XG4gIGNvbnN0IHsga2V5LCBtYXRlcmlhbEZvcm1GaWVsZCB9ID0gY29uZmlnO1xuICByZXR1cm4gZm9ybWx5RmllbGQoe1xuICAgIGtleSxcbiAgICB0eXBlOiAnc291cmNlc2VsZWN0ZmllbGQnLFxuICAgIC4uLnByb3BzQW5kQ29uZmlnRm9yRmllbGRDb25maWcoY29uZmlnLCB7XG4gICAgICAuLi5tYXRlcmlhbEZvcm1GaWVsZCxcbiAgICAgIC4uLmNvbmZpZyxcbiAgICAgIGF1dG9jb21wbGV0ZTogZmFsc2VcbiAgICB9KVxuICB9KTtcbn1cbiJdfQ==
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { FormlyModule } from '@ngx-formly/core';
|
|
3
|
-
import { DbxFormSourceSelectFieldComponent } from './sourceselect.field.component';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@ngx-formly/core";
|
|
6
|
-
export class DbxFormFormlySourceSelectModule {
|
|
7
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlySourceSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
8
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlySourceSelectModule, imports: [DbxFormSourceSelectFieldComponent, i1.FormlyModule], exports: [DbxFormSourceSelectFieldComponent] });
|
|
9
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlySourceSelectModule, imports: [DbxFormSourceSelectFieldComponent,
|
|
10
|
-
FormlyModule.forChild({
|
|
11
|
-
types: [{ name: 'sourceselectfield', component: DbxFormSourceSelectFieldComponent, wrappers: ['form-field'] }]
|
|
12
|
-
})] });
|
|
13
|
-
}
|
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlySourceSelectModule, decorators: [{
|
|
15
|
-
type: NgModule,
|
|
16
|
-
args: [{
|
|
17
|
-
imports: [
|
|
18
|
-
DbxFormSourceSelectFieldComponent,
|
|
19
|
-
FormlyModule.forChild({
|
|
20
|
-
types: [{ name: 'sourceselectfield', component: DbxFormSourceSelectFieldComponent, wrappers: ['form-field'] }]
|
|
21
|
-
})
|
|
22
|
-
],
|
|
23
|
-
exports: [DbxFormSourceSelectFieldComponent]
|
|
24
|
-
}]
|
|
25
|
-
}] });
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlc2VsZWN0LmZpZWxkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1mb3JtL3NyYy9saWIvZm9ybWx5L2ZpZWxkL3NlbGVjdGlvbi9zb3VyY2VzZWxlY3Qvc291cmNlc2VsZWN0LmZpZWxkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7O0FBV25GLE1BQU0sT0FBTywrQkFBK0I7d0dBQS9CLCtCQUErQjt5R0FBL0IsK0JBQStCLFlBUHhDLGlDQUFpQyw4QkFLekIsaUNBQWlDO3lHQUVoQywrQkFBK0IsWUFQeEMsaUNBQWlDO1lBQ2pDLFlBQVksQ0FBQyxRQUFRLENBQUM7Z0JBQ3BCLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLG1CQUFtQixFQUFFLFNBQVMsRUFBRSxpQ0FBaUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO2FBQy9HLENBQUM7OzRGQUlPLCtCQUErQjtrQkFUM0MsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsaUNBQWlDO3dCQUNqQyxZQUFZLENBQUMsUUFBUSxDQUFDOzRCQUNwQixLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxTQUFTLEVBQUUsaUNBQWlDLEVBQUUsUUFBUSxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQzt5QkFDL0csQ0FBQztxQkFDSDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxpQ0FBaUMsQ0FBQztpQkFDN0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybWx5TW9kdWxlIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQgeyBEYnhGb3JtU291cmNlU2VsZWN0RmllbGRDb21wb25lbnQgfSBmcm9tICcuL3NvdXJjZXNlbGVjdC5maWVsZC5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgRGJ4Rm9ybVNvdXJjZVNlbGVjdEZpZWxkQ29tcG9uZW50LFxuICAgIEZvcm1seU1vZHVsZS5mb3JDaGlsZCh7XG4gICAgICB0eXBlczogW3sgbmFtZTogJ3NvdXJjZXNlbGVjdGZpZWxkJywgY29tcG9uZW50OiBEYnhGb3JtU291cmNlU2VsZWN0RmllbGRDb21wb25lbnQsIHdyYXBwZXJzOiBbJ2Zvcm0tZmllbGQnXSB9XVxuICAgIH0pXG4gIF0sXG4gIGV4cG9ydHM6IFtEYnhGb3JtU291cmNlU2VsZWN0RmllbGRDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIERieEZvcm1Gb3JtbHlTb3VyY2VTZWxlY3RNb2R1bGUge31cbiJdfQ==
|