@edm-sdui/sdui 1.0.69 → 1.0.70
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/edm-sdui-sdui-1.0.70.tgz +0 -0
- package/fesm2022/edm-sdui-sdui.mjs +1360 -516
- package/fesm2022/edm-sdui-sdui.mjs.map +1 -1
- package/package.json +6 -7
- package/types/edm-sdui-sdui.d.ts +1560 -0
- package/types/edm-sdui-sdui.d.ts.map +1 -0
- package/edm-sdui-sdui-1.0.69.tgz +0 -0
- package/edm-sdui-sdui.d.ts.map +0 -1
- package/esm2022/edm-sdui-sdui.mjs +0 -5
- package/esm2022/lib/components/navigation-controls/navigation-controls.component.mjs +0 -27
- package/esm2022/lib/components/uicomponent/button/button.component.mjs +0 -56
- package/esm2022/lib/components/uicomponent/column/column.component.mjs +0 -27
- package/esm2022/lib/components/uicomponent/image/image.component.mjs +0 -61
- package/esm2022/lib/components/uicomponent/image/ranking-svg.mjs +0 -186
- package/esm2022/lib/components/uicomponent/label/label.component.mjs +0 -97
- package/esm2022/lib/components/uicomponent/media-type/media-type.component.mjs +0 -71
- package/esm2022/lib/components/uicomponent/modal/modal.component.mjs +0 -30
- package/esm2022/lib/components/uicomponent/picker/picker.component.mjs +0 -56
- package/esm2022/lib/components/uicomponent/picker-item/picker-item.component.mjs +0 -34
- package/esm2022/lib/components/uicomponent/profile-button/profile-button.component.mjs +0 -115
- package/esm2022/lib/components/uicomponent/progress-bar/progress-bar.component.mjs +0 -42
- package/esm2022/lib/components/uicomponent/row/row.component.mjs +0 -22
- package/esm2022/lib/components/uicomponent/row-divisor/row-divisor.component.mjs +0 -22
- package/esm2022/lib/components/uicomponent/scrollable-column/scrollable-column.component.mjs +0 -33
- package/esm2022/lib/components/uicomponent/scrollable-row/scrollable-row.component.mjs +0 -131
- package/esm2022/lib/components/uicomponent/search-bar/search-bar.component.mjs +0 -102
- package/esm2022/lib/components/uicomponent/search-bar dismiss/search-bar-dismiss.component.mjs +0 -139
- package/esm2022/lib/components/uicomponent/space/space.component.mjs +0 -20
- package/esm2022/lib/components/uicomponent/tag/tag.component.mjs +0 -59
- package/esm2022/lib/components/uicomponent/tags-row/tag/tag.component.mjs +0 -282
- package/esm2022/lib/components/uicomponent/tags-row/tags-row.component.mjs +0 -178
- package/esm2022/lib/components/uicomponent/uicomponent.component.mjs +0 -52
- package/esm2022/lib/components/uicomponent/zstack/zstack.component.mjs +0 -23
- package/esm2022/lib/components/uilayout/centered-content-layout/centered-content-layout.component.mjs +0 -24
- package/esm2022/lib/components/uilayout/fab/fab.component.mjs +0 -42
- package/esm2022/lib/components/uilayout/single-column-layout/single-column-layout.component.mjs +0 -22
- package/esm2022/lib/components/uilayout/uinavigation/uinavigation.component.mjs +0 -15
- package/esm2022/lib/components/uiscreen/uiscreen.component.mjs +0 -31
- package/esm2022/lib/core/services/font-size-mapping.service.mjs +0 -30
- package/esm2022/lib/core/services/modal.service.mjs +0 -30
- package/esm2022/lib/core/services/scroll-spy.service.mjs +0 -102
- package/esm2022/lib/core/services/translation.service.mjs +0 -53
- package/esm2022/lib/core/services/ui-action-handlers.service.mjs +0 -17
- package/esm2022/lib/core/services/ui-action.service.mjs +0 -112
- package/esm2022/lib/core/services/uiscreen.service.mjs +0 -205
- package/esm2022/lib/core/tokens/sdui-config.token.mjs +0 -4
- package/esm2022/lib/core/uicomposition/enums/uicomponent-type.mjs +0 -36
- package/esm2022/lib/core/uicomposition/enums/uiplatform-type.mjs +0 -7
- package/esm2022/lib/core/uicomposition/enums/uiscene.mjs +0 -5
- package/esm2022/lib/core/uicomposition/enums/uiscreen-container-type.mjs +0 -6
- package/esm2022/lib/core/uicomposition/enums/uiscreen-identifier.mjs +0 -6
- package/esm2022/lib/core/uicomposition/mapping/component-mapping.mjs +0 -36
- package/esm2022/lib/core/uicomposition/models/uicentered-content-layout.mjs +0 -2
- package/esm2022/lib/core/uicomposition/models/uicomponent.mjs +0 -2
- package/esm2022/lib/core/uicomposition/models/uielement.mjs +0 -2
- package/esm2022/lib/core/uicomposition/models/uilayout.mjs +0 -2
- package/esm2022/lib/core/uicomposition/models/uinavigation.mjs +0 -2
- package/esm2022/lib/core/uicomposition/models/uiscreen-config.mjs +0 -2
- package/esm2022/lib/core/uicomposition/models/uiscreen.mjs +0 -2
- package/esm2022/lib/core/uicomposition/models/uisingle-column-layout.mjs +0 -2
- package/esm2022/lib/core/uicomposition/models/uitag.mjs +0 -2
- package/esm2022/lib/core/uicomposition/models/uiview.mjs +0 -2
- package/esm2022/lib/core/uitheme/enums/uiaction-type.mjs +0 -17
- package/esm2022/lib/core/uitheme/enums/uialignment-type.mjs +0 -7
- package/esm2022/lib/core/uitheme/enums/uiaspect-type.mjs +0 -6
- package/esm2022/lib/core/uitheme/enums/uiasset.mjs +0 -437
- package/esm2022/lib/core/uitheme/enums/uicolor.mjs +0 -157
- package/esm2022/lib/core/uitheme/enums/uicontent-type.mjs +0 -11
- package/esm2022/lib/core/uitheme/enums/uidimension.mjs +0 -49
- package/esm2022/lib/core/uitheme/enums/uijustify.mjs +0 -9
- package/esm2022/lib/core/uitheme/enums/uipadding-level.mjs +0 -12
- package/esm2022/lib/core/uitheme/enums/uipresentation-style.mjs +0 -7
- package/esm2022/lib/core/uitheme/enums/uiradius-level.mjs +0 -10
- package/esm2022/lib/core/uitheme/enums/uishadow-blur-radius.mjs +0 -5
- package/esm2022/lib/core/uitheme/enums/uishadow-offset.mjs +0 -5
- package/esm2022/lib/core/uitheme/enums/uisize.mjs +0 -22
- package/esm2022/lib/core/uitheme/enums/uispacing-level.mjs +0 -10
- package/esm2022/lib/core/uitheme/enums/uitext-style.mjs +0 -15
- package/esm2022/lib/core/uitheme/mapping/alignment-mapping.mjs +0 -7
- package/esm2022/lib/core/uitheme/mapping/aspect-mapping.mjs +0 -6
- package/esm2022/lib/core/uitheme/mapping/asset-mapping.mjs +0 -437
- package/esm2022/lib/core/uitheme/mapping/color-mapping.mjs +0 -157
- package/esm2022/lib/core/uitheme/mapping/dimension-mapping.mjs +0 -51
- package/esm2022/lib/core/uitheme/mapping/justify-mapping.mjs +0 -9
- package/esm2022/lib/core/uitheme/mapping/pad-mapping.mjs +0 -12
- package/esm2022/lib/core/uitheme/mapping/radius-mapping.mjs +0 -10
- package/esm2022/lib/core/uitheme/mapping/shadow-mapping.mjs +0 -9
- package/esm2022/lib/core/uitheme/mapping/size-mapping.mjs +0 -26
- package/esm2022/lib/core/uitheme/mapping/space-mapping.mjs +0 -10
- package/esm2022/lib/core/uitheme/mapping/text-style-mapping.mjs +0 -33
- package/esm2022/lib/core/uitheme/models/uiaction.mjs +0 -2
- package/esm2022/lib/core/uitheme/models/uialignment.mjs +0 -2
- package/esm2022/lib/core/uitheme/models/uibackground.mjs +0 -2
- package/esm2022/lib/core/uitheme/models/uicontent-inset.mjs +0 -2
- package/esm2022/lib/core/uitheme/models/uihover.mjs +0 -2
- package/esm2022/lib/core/uitheme/models/uipadding.mjs +0 -2
- package/esm2022/lib/core/uitheme/models/uiradius.mjs +0 -2
- package/esm2022/lib/core/uitheme/models/uishadow.mjs +0 -2
- package/esm2022/lib/core/uitheme/models/uispacing.mjs +0 -2
- package/esm2022/lib/core/utils/url-parser.util.mjs +0 -26
- package/esm2022/lib/core/view-models/uiscreen.viewmodel.mjs +0 -106
- package/esm2022/lib/directives/uiview.directive.mjs +0 -401
- package/esm2022/lib/sdui-routing.module.mjs +0 -28
- package/esm2022/lib/sdui.component.mjs +0 -51
- package/esm2022/lib/sdui.module.mjs +0 -139
- package/esm2022/public-api.mjs +0 -13
- package/index.d.ts +0 -6
- package/lib/components/navigation-controls/navigation-controls.component.d.ts +0 -12
- package/lib/components/navigation-controls/navigation-controls.component.d.ts.map +0 -1
- package/lib/components/uicomponent/button/button.component.d.ts +0 -19
- package/lib/components/uicomponent/button/button.component.d.ts.map +0 -1
- package/lib/components/uicomponent/column/column.component.d.ts +0 -12
- package/lib/components/uicomponent/column/column.component.d.ts.map +0 -1
- package/lib/components/uicomponent/image/image.component.d.ts +0 -18
- package/lib/components/uicomponent/image/image.component.d.ts.map +0 -1
- package/lib/components/uicomponent/image/ranking-svg.d.ts +0 -2
- package/lib/components/uicomponent/image/ranking-svg.d.ts.map +0 -1
- package/lib/components/uicomponent/label/label.component.d.ts +0 -18
- package/lib/components/uicomponent/label/label.component.d.ts.map +0 -1
- package/lib/components/uicomponent/media-type/media-type.component.d.ts +0 -24
- package/lib/components/uicomponent/media-type/media-type.component.d.ts.map +0 -1
- package/lib/components/uicomponent/modal/modal.component.d.ts +0 -15
- package/lib/components/uicomponent/modal/modal.component.d.ts.map +0 -1
- package/lib/components/uicomponent/picker/picker.component.d.ts +0 -22
- package/lib/components/uicomponent/picker/picker.component.d.ts.map +0 -1
- package/lib/components/uicomponent/picker-item/picker-item.component.d.ts +0 -16
- package/lib/components/uicomponent/picker-item/picker-item.component.d.ts.map +0 -1
- package/lib/components/uicomponent/profile-button/profile-button.component.d.ts +0 -22
- package/lib/components/uicomponent/profile-button/profile-button.component.d.ts.map +0 -1
- package/lib/components/uicomponent/progress-bar/progress-bar.component.d.ts +0 -15
- package/lib/components/uicomponent/progress-bar/progress-bar.component.d.ts.map +0 -1
- package/lib/components/uicomponent/row/row.component.d.ts +0 -11
- package/lib/components/uicomponent/row/row.component.d.ts.map +0 -1
- package/lib/components/uicomponent/row-divisor/row-divisor.component.d.ts +0 -11
- package/lib/components/uicomponent/row-divisor/row-divisor.component.d.ts.map +0 -1
- package/lib/components/uicomponent/scrollable-column/scrollable-column.component.d.ts +0 -15
- package/lib/components/uicomponent/scrollable-column/scrollable-column.component.d.ts.map +0 -1
- package/lib/components/uicomponent/scrollable-row/scrollable-row.component.d.ts +0 -29
- package/lib/components/uicomponent/scrollable-row/scrollable-row.component.d.ts.map +0 -1
- package/lib/components/uicomponent/search-bar/search-bar.component.d.ts +0 -19
- package/lib/components/uicomponent/search-bar/search-bar.component.d.ts.map +0 -1
- package/lib/components/uicomponent/search-bar dismiss/search-bar-dismiss.component.d.ts +0 -22
- package/lib/components/uicomponent/search-bar dismiss/search-bar-dismiss.component.d.ts.map +0 -1
- package/lib/components/uicomponent/space/space.component.d.ts +0 -11
- package/lib/components/uicomponent/space/space.component.d.ts.map +0 -1
- package/lib/components/uicomponent/tag/tag.component.d.ts +0 -19
- package/lib/components/uicomponent/tag/tag.component.d.ts.map +0 -1
- package/lib/components/uicomponent/tags-row/tag/tag.component.d.ts +0 -39
- package/lib/components/uicomponent/tags-row/tag/tag.component.d.ts.map +0 -1
- package/lib/components/uicomponent/tags-row/tags-row.component.d.ts +0 -37
- package/lib/components/uicomponent/tags-row/tags-row.component.d.ts.map +0 -1
- package/lib/components/uicomponent/uicomponent.component.d.ts +0 -18
- package/lib/components/uicomponent/uicomponent.component.d.ts.map +0 -1
- package/lib/components/uicomponent/zstack/zstack.component.d.ts +0 -11
- package/lib/components/uicomponent/zstack/zstack.component.d.ts.map +0 -1
- package/lib/components/uilayout/centered-content-layout/centered-content-layout.component.d.ts +0 -11
- package/lib/components/uilayout/centered-content-layout/centered-content-layout.component.d.ts.map +0 -1
- package/lib/components/uilayout/fab/fab.component.d.ts +0 -17
- package/lib/components/uilayout/fab/fab.component.d.ts.map +0 -1
- package/lib/components/uilayout/single-column-layout/single-column-layout.component.d.ts +0 -10
- package/lib/components/uilayout/single-column-layout/single-column-layout.component.d.ts.map +0 -1
- package/lib/components/uilayout/uinavigation/uinavigation.component.d.ts +0 -8
- package/lib/components/uilayout/uinavigation/uinavigation.component.d.ts.map +0 -1
- package/lib/components/uiscreen/uiscreen.component.d.ts +0 -13
- package/lib/components/uiscreen/uiscreen.component.d.ts.map +0 -1
- package/lib/core/services/font-size-mapping.service.d.ts +0 -10
- package/lib/core/services/font-size-mapping.service.d.ts.map +0 -1
- package/lib/core/services/modal.service.d.ts +0 -11
- package/lib/core/services/modal.service.d.ts.map +0 -1
- package/lib/core/services/scroll-spy.service.d.ts +0 -31
- package/lib/core/services/scroll-spy.service.d.ts.map +0 -1
- package/lib/core/services/translation.service.d.ts +0 -13
- package/lib/core/services/translation.service.d.ts.map +0 -1
- package/lib/core/services/ui-action-handlers.service.d.ts +0 -9
- package/lib/core/services/ui-action-handlers.service.d.ts.map +0 -1
- package/lib/core/services/ui-action.service.d.ts +0 -17
- package/lib/core/services/ui-action.service.d.ts.map +0 -1
- package/lib/core/services/uiscreen.service.d.ts +0 -26
- package/lib/core/services/uiscreen.service.d.ts.map +0 -1
- package/lib/core/tokens/sdui-config.token.d.ts +0 -4
- package/lib/core/tokens/sdui-config.token.d.ts.map +0 -1
- package/lib/core/uicomposition/enums/uicomponent-type.d.ts +0 -26
- package/lib/core/uicomposition/enums/uicomponent-type.d.ts.map +0 -1
- package/lib/core/uicomposition/enums/uiplatform-type.d.ts +0 -6
- package/lib/core/uicomposition/enums/uiplatform-type.d.ts.map +0 -1
- package/lib/core/uicomposition/enums/uiscene.d.ts +0 -4
- package/lib/core/uicomposition/enums/uiscene.d.ts.map +0 -1
- package/lib/core/uicomposition/enums/uiscreen-container-type.d.ts +0 -5
- package/lib/core/uicomposition/enums/uiscreen-container-type.d.ts.map +0 -1
- package/lib/core/uicomposition/enums/uiscreen-identifier.d.ts +0 -5
- package/lib/core/uicomposition/enums/uiscreen-identifier.d.ts.map +0 -1
- package/lib/core/uicomposition/mapping/component-mapping.d.ts +0 -4
- package/lib/core/uicomposition/mapping/component-mapping.d.ts.map +0 -1
- package/lib/core/uicomposition/models/uicentered-content-layout.d.ts +0 -11
- package/lib/core/uicomposition/models/uicentered-content-layout.d.ts.map +0 -1
- package/lib/core/uicomposition/models/uicomponent.d.ts +0 -12
- package/lib/core/uicomposition/models/uicomponent.d.ts.map +0 -1
- package/lib/core/uicomposition/models/uielement.d.ts +0 -28
- package/lib/core/uicomposition/models/uielement.d.ts.map +0 -1
- package/lib/core/uicomposition/models/uilayout.d.ts +0 -4
- package/lib/core/uicomposition/models/uilayout.d.ts.map +0 -1
- package/lib/core/uicomposition/models/uinavigation.d.ts +0 -6
- package/lib/core/uicomposition/models/uinavigation.d.ts.map +0 -1
- package/lib/core/uicomposition/models/uiscreen-config.d.ts +0 -6
- package/lib/core/uicomposition/models/uiscreen-config.d.ts.map +0 -1
- package/lib/core/uicomposition/models/uiscreen.d.ts +0 -20
- package/lib/core/uicomposition/models/uiscreen.d.ts.map +0 -1
- package/lib/core/uicomposition/models/uisingle-column-layout.d.ts +0 -12
- package/lib/core/uicomposition/models/uisingle-column-layout.d.ts.map +0 -1
- package/lib/core/uicomposition/models/uitag.d.ts +0 -6
- package/lib/core/uicomposition/models/uitag.d.ts.map +0 -1
- package/lib/core/uicomposition/models/uiview.d.ts +0 -33
- package/lib/core/uicomposition/models/uiview.d.ts.map +0 -1
- package/lib/core/uitheme/enums/uiaction-type.d.ts +0 -13
- package/lib/core/uitheme/enums/uiaction-type.d.ts.map +0 -1
- package/lib/core/uitheme/enums/uialignment-type.d.ts +0 -6
- package/lib/core/uitheme/enums/uialignment-type.d.ts.map +0 -1
- package/lib/core/uitheme/enums/uiaspect-type.d.ts +0 -5
- package/lib/core/uitheme/enums/uiaspect-type.d.ts.map +0 -1
- package/lib/core/uitheme/enums/uiasset.d.ts +0 -436
- package/lib/core/uitheme/enums/uiasset.d.ts.map +0 -1
- package/lib/core/uitheme/enums/uicolor.d.ts +0 -156
- package/lib/core/uitheme/enums/uicolor.d.ts.map +0 -1
- package/lib/core/uitheme/enums/uicontent-type.d.ts +0 -10
- package/lib/core/uitheme/enums/uicontent-type.d.ts.map +0 -1
- package/lib/core/uitheme/enums/uidimension.d.ts +0 -48
- package/lib/core/uitheme/enums/uidimension.d.ts.map +0 -1
- package/lib/core/uitheme/enums/uijustify.d.ts +0 -8
- package/lib/core/uitheme/enums/uijustify.d.ts.map +0 -1
- package/lib/core/uitheme/enums/uipadding-level.d.ts +0 -11
- package/lib/core/uitheme/enums/uipadding-level.d.ts.map +0 -1
- package/lib/core/uitheme/enums/uipresentation-style.d.ts +0 -6
- package/lib/core/uitheme/enums/uipresentation-style.d.ts.map +0 -1
- package/lib/core/uitheme/enums/uiradius-level.d.ts +0 -9
- package/lib/core/uitheme/enums/uiradius-level.d.ts.map +0 -1
- package/lib/core/uitheme/enums/uishadow-blur-radius.d.ts +0 -4
- package/lib/core/uitheme/enums/uishadow-blur-radius.d.ts.map +0 -1
- package/lib/core/uitheme/enums/uishadow-offset.d.ts +0 -4
- package/lib/core/uitheme/enums/uishadow-offset.d.ts.map +0 -1
- package/lib/core/uitheme/enums/uisize.d.ts +0 -21
- package/lib/core/uitheme/enums/uisize.d.ts.map +0 -1
- package/lib/core/uitheme/enums/uispacing-level.d.ts +0 -9
- package/lib/core/uitheme/enums/uispacing-level.d.ts.map +0 -1
- package/lib/core/uitheme/enums/uitext-style.d.ts +0 -14
- package/lib/core/uitheme/enums/uitext-style.d.ts.map +0 -1
- package/lib/core/uitheme/mapping/alignment-mapping.d.ts +0 -3
- package/lib/core/uitheme/mapping/alignment-mapping.d.ts.map +0 -1
- package/lib/core/uitheme/mapping/aspect-mapping.d.ts +0 -3
- package/lib/core/uitheme/mapping/aspect-mapping.d.ts.map +0 -1
- package/lib/core/uitheme/mapping/asset-mapping.d.ts +0 -3
- package/lib/core/uitheme/mapping/asset-mapping.d.ts.map +0 -1
- package/lib/core/uitheme/mapping/color-mapping.d.ts +0 -3
- package/lib/core/uitheme/mapping/color-mapping.d.ts.map +0 -1
- package/lib/core/uitheme/mapping/dimension-mapping.d.ts +0 -3
- package/lib/core/uitheme/mapping/dimension-mapping.d.ts.map +0 -1
- package/lib/core/uitheme/mapping/justify-mapping.d.ts +0 -3
- package/lib/core/uitheme/mapping/justify-mapping.d.ts.map +0 -1
- package/lib/core/uitheme/mapping/pad-mapping.d.ts +0 -3
- package/lib/core/uitheme/mapping/pad-mapping.d.ts.map +0 -1
- package/lib/core/uitheme/mapping/radius-mapping.d.ts +0 -3
- package/lib/core/uitheme/mapping/radius-mapping.d.ts.map +0 -1
- package/lib/core/uitheme/mapping/shadow-mapping.d.ts +0 -5
- package/lib/core/uitheme/mapping/shadow-mapping.d.ts.map +0 -1
- package/lib/core/uitheme/mapping/size-mapping.d.ts +0 -12
- package/lib/core/uitheme/mapping/size-mapping.d.ts.map +0 -1
- package/lib/core/uitheme/mapping/space-mapping.d.ts +0 -3
- package/lib/core/uitheme/mapping/space-mapping.d.ts.map +0 -1
- package/lib/core/uitheme/mapping/text-style-mapping.d.ts +0 -5
- package/lib/core/uitheme/mapping/text-style-mapping.d.ts.map +0 -1
- package/lib/core/uitheme/models/uiaction.d.ts +0 -10
- package/lib/core/uitheme/models/uiaction.d.ts.map +0 -1
- package/lib/core/uitheme/models/uialignment.d.ts +0 -5
- package/lib/core/uitheme/models/uialignment.d.ts.map +0 -1
- package/lib/core/uitheme/models/uibackground.d.ts +0 -7
- package/lib/core/uitheme/models/uibackground.d.ts.map +0 -1
- package/lib/core/uitheme/models/uicontent-inset.d.ts +0 -8
- package/lib/core/uitheme/models/uicontent-inset.d.ts.map +0 -1
- package/lib/core/uitheme/models/uihover.d.ts +0 -4
- package/lib/core/uitheme/models/uihover.d.ts.map +0 -1
- package/lib/core/uitheme/models/uipadding.d.ts +0 -8
- package/lib/core/uitheme/models/uipadding.d.ts.map +0 -1
- package/lib/core/uitheme/models/uiradius.d.ts +0 -8
- package/lib/core/uitheme/models/uiradius.d.ts.map +0 -1
- package/lib/core/uitheme/models/uishadow.d.ts +0 -11
- package/lib/core/uitheme/models/uishadow.d.ts.map +0 -1
- package/lib/core/uitheme/models/uispacing.d.ts +0 -5
- package/lib/core/uitheme/models/uispacing.d.ts.map +0 -1
- package/lib/core/utils/url-parser.util.d.ts +0 -3
- package/lib/core/utils/url-parser.util.d.ts.map +0 -1
- package/lib/core/view-models/uiscreen.viewmodel.d.ts +0 -39
- package/lib/core/view-models/uiscreen.viewmodel.d.ts.map +0 -1
- package/lib/directives/uiview.directive.d.ts +0 -54
- package/lib/directives/uiview.directive.d.ts.map +0 -1
- package/lib/sdui-routing.module.d.ts +0 -10
- package/lib/sdui-routing.module.d.ts.map +0 -1
- package/lib/sdui.component.d.ts +0 -17
- package/lib/sdui.component.d.ts.map +0 -1
- package/lib/sdui.module.d.ts +0 -47
- package/lib/sdui.module.d.ts.map +0 -1
- package/public-api.d.ts +0 -7
- package/public-api.d.ts.map +0 -1
|
@@ -1,401 +0,0 @@
|
|
|
1
|
-
import { Directive, ElementRef, HostListener, Input, Optional, Renderer2, } from '@angular/core';
|
|
2
|
-
import { spaceMapping } from '../core/uitheme/mapping/space-mapping';
|
|
3
|
-
import { colorMapping } from '../core/uitheme/mapping/color-mapping';
|
|
4
|
-
import { padMapping } from '../core/uitheme/mapping/pad-mapping';
|
|
5
|
-
import { radiusMapping } from '../core/uitheme/mapping/radius-mapping';
|
|
6
|
-
import { alignmentMapping } from '../core/uitheme/mapping/alignment-mapping';
|
|
7
|
-
import { dimensionMapping } from '../core/uitheme/mapping/dimension-mapping';
|
|
8
|
-
import { shadowOffsetMapping, shadowBlurRadiusMapping, } from '../core/uitheme/mapping/shadow-mapping';
|
|
9
|
-
import { justifyMapping } from '../core/uitheme/mapping/justify-mapping';
|
|
10
|
-
import { Router } from '@angular/router';
|
|
11
|
-
import { UIScreenViewModel } from '../core/view-models/uiscreen.viewmodel';
|
|
12
|
-
import { UIActionService } from '../core/services/ui-action.service';
|
|
13
|
-
import { sizeMapping } from '../core/uitheme/mapping/size-mapping';
|
|
14
|
-
import { UIScreenContainerType } from '../core/uicomposition/enums/uiscreen-container-type';
|
|
15
|
-
import * as i0 from "@angular/core";
|
|
16
|
-
import * as i1 from "@angular/router";
|
|
17
|
-
import * as i2 from "../core/services/ui-action.service";
|
|
18
|
-
import * as i3 from "../core/view-models/uiscreen.viewmodel";
|
|
19
|
-
export class UIViewDirective {
|
|
20
|
-
static { this.EXPLORE_LAST_ANCHOR_KEY = 'exploreLastAnchor'; }
|
|
21
|
-
static { this.EXPLORE_CLICKED_ANCHOR_KEY = 'exploreClickedAnchor'; }
|
|
22
|
-
static { this.EXPLORE_LAST_ROW_INDEX_KEY = 'exploreLastRowIndex'; }
|
|
23
|
-
static { this.EXPLORE_LAST_ROW_SCROLL_LEFT_KEY = 'exploreLastRowScrollLeft'; }
|
|
24
|
-
static { this.EXPLORE_LAST_ITEM_ID_KEY = 'exploreLastItemId'; }
|
|
25
|
-
constructor(elementRef, renderer, router, actionService, screenViewModel) {
|
|
26
|
-
this.elementRef = elementRef;
|
|
27
|
-
this.renderer = renderer;
|
|
28
|
-
this.router = router;
|
|
29
|
-
this.actionService = actionService;
|
|
30
|
-
this.screenViewModel = screenViewModel;
|
|
31
|
-
this.disableClick = false;
|
|
32
|
-
this.lastUiView = null;
|
|
33
|
-
this.wasSmallScreen = this.isSmallScreen();
|
|
34
|
-
this.currentContainer = UIScreenContainerType.CONTAINED;
|
|
35
|
-
if (this.screenViewModel) {
|
|
36
|
-
this.screenViewModel.uiScreen$.subscribe((screen) => {
|
|
37
|
-
this.currentContainer =
|
|
38
|
-
screen?.config?.container ?? UIScreenContainerType.CONTAINED;
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
ngOnChanges(changes) {
|
|
43
|
-
if (this.edmSduiView) {
|
|
44
|
-
this.lastUiView = this.edmSduiView;
|
|
45
|
-
this.applyStyles(this.edmSduiView);
|
|
46
|
-
this.wasSmallScreen = this.isSmallScreen();
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
applyStyles(uiView) {
|
|
50
|
-
if (uiView.id) {
|
|
51
|
-
this.renderer.setAttribute(this.elementRef.nativeElement, 'id', String(uiView.id));
|
|
52
|
-
}
|
|
53
|
-
if (uiView.padding) {
|
|
54
|
-
this.applyPadding(uiView.padding);
|
|
55
|
-
}
|
|
56
|
-
if (uiView.contentInset) {
|
|
57
|
-
this.applyContentInset(uiView.contentInset);
|
|
58
|
-
}
|
|
59
|
-
if (uiView.background) {
|
|
60
|
-
this.applyBackground(uiView.background);
|
|
61
|
-
}
|
|
62
|
-
if (uiView.action) {
|
|
63
|
-
this.applyAction(uiView.action);
|
|
64
|
-
}
|
|
65
|
-
if (uiView.alignment) {
|
|
66
|
-
this.applyAlignment(uiView.alignment);
|
|
67
|
-
}
|
|
68
|
-
if (uiView.shadow) {
|
|
69
|
-
this.applyShadow(uiView.shadow);
|
|
70
|
-
}
|
|
71
|
-
if (uiView.radius) {
|
|
72
|
-
this.applyRadius(uiView.radius);
|
|
73
|
-
}
|
|
74
|
-
if (uiView.spacing) {
|
|
75
|
-
this.applySpacing(uiView.spacing);
|
|
76
|
-
}
|
|
77
|
-
if (uiView.height) {
|
|
78
|
-
this.applyHeight(uiView.height);
|
|
79
|
-
}
|
|
80
|
-
if (uiView.width) {
|
|
81
|
-
this.applyWidth(uiView.width);
|
|
82
|
-
}
|
|
83
|
-
if (uiView.borderWidth) {
|
|
84
|
-
this.applyBorderWidth(uiView.borderWidth);
|
|
85
|
-
}
|
|
86
|
-
if (uiView.borderColor) {
|
|
87
|
-
this.applyBorderColor(uiView.borderColor);
|
|
88
|
-
}
|
|
89
|
-
if (uiView.justify) {
|
|
90
|
-
this.applyJustify(uiView.justify);
|
|
91
|
-
}
|
|
92
|
-
if (uiView.size) {
|
|
93
|
-
this.applySize(uiView.size);
|
|
94
|
-
}
|
|
95
|
-
if (uiView.aspectRatio !== null && uiView.aspectRatio !== undefined) {
|
|
96
|
-
this.applyAspectRatio(uiView.aspectRatio);
|
|
97
|
-
}
|
|
98
|
-
if (uiView.hover) {
|
|
99
|
-
this.applyHoverVars(uiView);
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
applyPadding(uiPadding) {
|
|
103
|
-
if (uiPadding.top) {
|
|
104
|
-
const padValue = padMapping[uiPadding.top];
|
|
105
|
-
this.renderer.setStyle(this.elementRef.nativeElement, 'padding-top', padValue);
|
|
106
|
-
}
|
|
107
|
-
if (uiPadding.left) {
|
|
108
|
-
const padValue = padMapping[uiPadding.left];
|
|
109
|
-
this.renderer.setStyle(this.elementRef.nativeElement, 'padding-left', padValue);
|
|
110
|
-
}
|
|
111
|
-
if (uiPadding.right) {
|
|
112
|
-
const padValue = padMapping[uiPadding.right];
|
|
113
|
-
this.renderer.setStyle(this.elementRef.nativeElement, 'padding-right', padValue);
|
|
114
|
-
}
|
|
115
|
-
if (uiPadding.bottom) {
|
|
116
|
-
const padValue = padMapping[uiPadding.bottom];
|
|
117
|
-
this.renderer.setStyle(this.elementRef.nativeElement, 'padding-bottom', padValue);
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
applyContentInset(uiContentInset) {
|
|
121
|
-
if (uiContentInset.top) {
|
|
122
|
-
const insetValue = spaceMapping[uiContentInset.top];
|
|
123
|
-
this.renderer.setStyle(this.elementRef.nativeElement, 'padding-top', insetValue);
|
|
124
|
-
this.renderer.setStyle(this.elementRef.nativeElement, '--sdui-content-inset-top', insetValue);
|
|
125
|
-
}
|
|
126
|
-
if (uiContentInset.left) {
|
|
127
|
-
const insetValue = spaceMapping[uiContentInset.left];
|
|
128
|
-
this.renderer.setStyle(this.elementRef.nativeElement, 'padding-left', insetValue);
|
|
129
|
-
this.renderer.setStyle(this.elementRef.nativeElement, '--sdui-content-inset-left', insetValue);
|
|
130
|
-
}
|
|
131
|
-
if (uiContentInset.right) {
|
|
132
|
-
const insetValue = spaceMapping[uiContentInset.right];
|
|
133
|
-
this.renderer.setStyle(this.elementRef.nativeElement, 'padding-right', insetValue);
|
|
134
|
-
this.renderer.setStyle(this.elementRef.nativeElement, '--sdui-content-inset-right', insetValue);
|
|
135
|
-
}
|
|
136
|
-
if (uiContentInset.bottom) {
|
|
137
|
-
const insetValue = spaceMapping[uiContentInset.bottom];
|
|
138
|
-
this.renderer.setStyle(this.elementRef.nativeElement, 'padding-bottom', insetValue);
|
|
139
|
-
this.renderer.setStyle(this.elementRef.nativeElement, '--sdui-content-inset-bottom', insetValue);
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
applyBackground(uiBackground) {
|
|
143
|
-
if (uiBackground.backgroundColor) {
|
|
144
|
-
const backgroundColor = colorMapping[uiBackground.backgroundColor];
|
|
145
|
-
this.renderer.setStyle(this.elementRef.nativeElement, 'background-color', backgroundColor);
|
|
146
|
-
}
|
|
147
|
-
if (uiBackground.gradientColor1 && uiBackground.gradientColor2) {
|
|
148
|
-
const gradientColor1 = colorMapping[uiBackground.gradientColor1];
|
|
149
|
-
const gradientColor2 = colorMapping[uiBackground.gradientColor2];
|
|
150
|
-
const gradientStyles = `linear-gradient(45deg, ${gradientColor1}, ${gradientColor2})`;
|
|
151
|
-
this.renderer.setStyle(this.elementRef.nativeElement, 'background', gradientStyles);
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
applyAction(uiAction) {
|
|
155
|
-
if (this.disableClick) {
|
|
156
|
-
return;
|
|
157
|
-
}
|
|
158
|
-
this.renderer.setStyle(this.elementRef.nativeElement, 'cursor', 'pointer');
|
|
159
|
-
}
|
|
160
|
-
applyAlignment(uiAlignment) {
|
|
161
|
-
if (uiAlignment.alignment) {
|
|
162
|
-
const alignment = alignmentMapping[uiAlignment.alignment];
|
|
163
|
-
this.renderer.setStyle(this.elementRef.nativeElement, 'align-items', alignment);
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
applyShadow(uiShadow) {
|
|
167
|
-
if (uiShadow.color && uiShadow.offsetX && uiShadow.offsetY && uiShadow.blurRadius) {
|
|
168
|
-
const color = colorMapping[uiShadow.color];
|
|
169
|
-
const offsetX = shadowOffsetMapping[uiShadow.offsetX];
|
|
170
|
-
const offsetY = shadowOffsetMapping[uiShadow.offsetY];
|
|
171
|
-
const blurRadius = shadowBlurRadiusMapping[uiShadow.blurRadius];
|
|
172
|
-
const opacity = uiShadow.opacity !== undefined ? uiShadow.opacity : 1;
|
|
173
|
-
// Format: box-shadow: offsetX offsetY blurRadius color
|
|
174
|
-
const shadowValue = `${offsetX} ${offsetY} ${blurRadius} ${color}`;
|
|
175
|
-
this.renderer.setStyle(this.elementRef.nativeElement, 'box-shadow', shadowValue);
|
|
176
|
-
if (opacity !== 1) {
|
|
177
|
-
this.renderer.setStyle(this.elementRef.nativeElement, 'opacity', opacity.toString());
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
applyRadius(uiRadius) {
|
|
182
|
-
if (uiRadius.topLeft) {
|
|
183
|
-
const radius = radiusMapping[uiRadius.topLeft];
|
|
184
|
-
this.renderer.setStyle(this.elementRef.nativeElement, 'border-top-left-radius', radius);
|
|
185
|
-
}
|
|
186
|
-
if (uiRadius.topRight) {
|
|
187
|
-
const radius = radiusMapping[uiRadius.topRight];
|
|
188
|
-
this.renderer.setStyle(this.elementRef.nativeElement, 'border-top-right-radius', radius);
|
|
189
|
-
}
|
|
190
|
-
if (uiRadius.bottomLeft) {
|
|
191
|
-
const radius = radiusMapping[uiRadius.bottomLeft];
|
|
192
|
-
this.renderer.setStyle(this.elementRef.nativeElement, 'border-bottom-left-radius', radius);
|
|
193
|
-
}
|
|
194
|
-
if (uiRadius.bottomRight) {
|
|
195
|
-
const radius = radiusMapping[uiRadius.bottomRight];
|
|
196
|
-
this.renderer.setStyle(this.elementRef.nativeElement, 'border-bottom-right-radius', radius);
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
applySpacing(uiSpacing) {
|
|
200
|
-
if (uiSpacing.spacing) {
|
|
201
|
-
const spacingValue = spaceMapping[uiSpacing.spacing];
|
|
202
|
-
this.renderer.setStyle(this.elementRef.nativeElement, 'gap', spacingValue);
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
applyHeight(height) {
|
|
206
|
-
if (height) {
|
|
207
|
-
const heightValue = dimensionMapping[height];
|
|
208
|
-
this.renderer.setStyle(this.elementRef.nativeElement, 'height', heightValue);
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
applyWidth(width) {
|
|
212
|
-
if (width) {
|
|
213
|
-
const widthValue = dimensionMapping[width];
|
|
214
|
-
this.renderer.setStyle(this.elementRef.nativeElement, 'width', widthValue);
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
applyBorderWidth(borderWidth) {
|
|
218
|
-
if (borderWidth !== null && borderWidth !== undefined) {
|
|
219
|
-
this.renderer.setStyle(this.elementRef.nativeElement, 'border-width', `${borderWidth}px`);
|
|
220
|
-
// Ensure border style is set, otherwise border-width won't be visible
|
|
221
|
-
this.renderer.setStyle(this.elementRef.nativeElement, 'border-style', 'solid');
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
applyBorderColor(borderColor) {
|
|
225
|
-
if (borderColor) {
|
|
226
|
-
const color = colorMapping[borderColor];
|
|
227
|
-
this.renderer.setStyle(this.elementRef.nativeElement, 'border-color', color);
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
applyJustify(justify) {
|
|
231
|
-
if (justify) {
|
|
232
|
-
const justifyValue = justifyMapping[justify];
|
|
233
|
-
this.renderer.setStyle(this.elementRef.nativeElement, 'justify-content', justifyValue);
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
applyAspectRatio(aspectRatio) {
|
|
237
|
-
}
|
|
238
|
-
applySize(size) {
|
|
239
|
-
const config = sizeMapping[size];
|
|
240
|
-
if (!config)
|
|
241
|
-
return;
|
|
242
|
-
let { width: widthValue, height: heightValue } = config;
|
|
243
|
-
if (config.scalable && this.isSmallScreen()) {
|
|
244
|
-
widthValue = this.scalePixelValue(widthValue, 1.1);
|
|
245
|
-
heightValue = this.scalePixelValue(heightValue, 1.1);
|
|
246
|
-
}
|
|
247
|
-
this.renderer.setStyle(this.elementRef.nativeElement, 'width', widthValue);
|
|
248
|
-
this.renderer.setStyle(this.elementRef.nativeElement, 'height', heightValue);
|
|
249
|
-
}
|
|
250
|
-
applyHoverVars(uiView) {
|
|
251
|
-
const hover = uiView?.hover ?? uiView?.element?.hover;
|
|
252
|
-
if (!hover)
|
|
253
|
-
return;
|
|
254
|
-
const el = this.elementRef.nativeElement;
|
|
255
|
-
// marca que esse elemento tem hover
|
|
256
|
-
this.renderer.addClass(el, 'edm-hover');
|
|
257
|
-
if (hover.border_color || hover.borderColor) {
|
|
258
|
-
const token = (hover.border_color ?? hover.borderColor).replace(/_/g, '-');
|
|
259
|
-
el.style.setProperty('--edm-hover-border-color', `var(--${token})`);
|
|
260
|
-
}
|
|
261
|
-
if (hover.background_color || hover.backgroundColor) {
|
|
262
|
-
const token = (hover.background_color ?? hover.backgroundColor).replace(/_/g, '-');
|
|
263
|
-
el.style.setProperty('--edm-hover-bg-color', `var(--${token})`);
|
|
264
|
-
}
|
|
265
|
-
}
|
|
266
|
-
isSmallScreen() {
|
|
267
|
-
return typeof window !== 'undefined' && window.innerWidth >= 565;
|
|
268
|
-
}
|
|
269
|
-
scalePixelValue(value, divisor) {
|
|
270
|
-
const match = /^(\d+(?:\.\d+)?)px$/.exec(value);
|
|
271
|
-
if (!match) {
|
|
272
|
-
return value;
|
|
273
|
-
}
|
|
274
|
-
const num = parseFloat(match[1]);
|
|
275
|
-
const scaled = num * divisor;
|
|
276
|
-
return `${scaled}px`;
|
|
277
|
-
}
|
|
278
|
-
onWindowResize() {
|
|
279
|
-
const isSmall = this.isSmallScreen();
|
|
280
|
-
if (this.lastUiView && isSmall !== this.wasSmallScreen) {
|
|
281
|
-
this.applyStyles(this.lastUiView);
|
|
282
|
-
this.wasSmallScreen = isSmall;
|
|
283
|
-
}
|
|
284
|
-
}
|
|
285
|
-
onClick(event) {
|
|
286
|
-
if (this.disableClick)
|
|
287
|
-
return;
|
|
288
|
-
if (this.edmSduiView?.action) {
|
|
289
|
-
this.captureExploreScrollContext();
|
|
290
|
-
event.stopPropagation();
|
|
291
|
-
this.actionService.execute(this.edmSduiView.action);
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
captureExploreScrollContext() {
|
|
295
|
-
if (typeof window === 'undefined' || !this.router.url.includes('/explorar')) {
|
|
296
|
-
return;
|
|
297
|
-
}
|
|
298
|
-
const element = this.elementRef.nativeElement;
|
|
299
|
-
const scrollRow = element.closest('.scrollable-row');
|
|
300
|
-
if (!scrollRow) {
|
|
301
|
-
this.clearExploreHorizontalScrollContext();
|
|
302
|
-
return;
|
|
303
|
-
}
|
|
304
|
-
const section = this.resolveExploreSection(element, scrollRow);
|
|
305
|
-
const activeTag = document.querySelector('.row-tag--selected')?.getAttribute('data-tag');
|
|
306
|
-
const sectionId = section?.id || activeTag || sessionStorage.getItem(UIViewDirective.EXPLORE_LAST_ANCHOR_KEY);
|
|
307
|
-
const rowIndex = this.resolveRowIndex(scrollRow, section);
|
|
308
|
-
const itemId = this.resolveClickedItemId(element, section);
|
|
309
|
-
try {
|
|
310
|
-
if (sectionId) {
|
|
311
|
-
sessionStorage.setItem(UIViewDirective.EXPLORE_LAST_ANCHOR_KEY, sectionId);
|
|
312
|
-
}
|
|
313
|
-
// Salva o anchor do clique separado do scroll spy para não ser sobrescrito durante navegação
|
|
314
|
-
const clickedAnchor = section?.id || activeTag;
|
|
315
|
-
if (clickedAnchor) {
|
|
316
|
-
sessionStorage.setItem(UIViewDirective.EXPLORE_CLICKED_ANCHOR_KEY, clickedAnchor);
|
|
317
|
-
}
|
|
318
|
-
if (rowIndex >= 0) {
|
|
319
|
-
sessionStorage.setItem(UIViewDirective.EXPLORE_LAST_ROW_INDEX_KEY, String(rowIndex));
|
|
320
|
-
}
|
|
321
|
-
sessionStorage.setItem(UIViewDirective.EXPLORE_LAST_ROW_SCROLL_LEFT_KEY, String(Math.round(scrollRow.scrollLeft)));
|
|
322
|
-
if (itemId) {
|
|
323
|
-
sessionStorage.setItem(UIViewDirective.EXPLORE_LAST_ITEM_ID_KEY, itemId);
|
|
324
|
-
}
|
|
325
|
-
else {
|
|
326
|
-
sessionStorage.removeItem(UIViewDirective.EXPLORE_LAST_ITEM_ID_KEY);
|
|
327
|
-
}
|
|
328
|
-
}
|
|
329
|
-
catch { }
|
|
330
|
-
}
|
|
331
|
-
clearExploreHorizontalScrollContext() {
|
|
332
|
-
try {
|
|
333
|
-
sessionStorage.removeItem(UIViewDirective.EXPLORE_LAST_ROW_INDEX_KEY);
|
|
334
|
-
sessionStorage.removeItem(UIViewDirective.EXPLORE_LAST_ROW_SCROLL_LEFT_KEY);
|
|
335
|
-
sessionStorage.removeItem(UIViewDirective.EXPLORE_LAST_ITEM_ID_KEY);
|
|
336
|
-
}
|
|
337
|
-
catch { }
|
|
338
|
-
}
|
|
339
|
-
resolveExploreSection(element, scrollRow) {
|
|
340
|
-
const fromAncestor = scrollRow.closest('[data-anchor-target][id]') ||
|
|
341
|
-
scrollRow.closest('.column[id]') ||
|
|
342
|
-
element.closest('[data-anchor-target][id]') ||
|
|
343
|
-
element.closest('.column[id]');
|
|
344
|
-
if (fromAncestor)
|
|
345
|
-
return fromAncestor;
|
|
346
|
-
// Seções podem ser irmãs do scrollable-row (não ancestrais).
|
|
347
|
-
// Sobe até o wrapper edm-sdui-component e percorre irmãos anteriores.
|
|
348
|
-
const wrapper = scrollRow.closest('edm-sdui-component');
|
|
349
|
-
let sibling = wrapper?.previousElementSibling;
|
|
350
|
-
while (sibling) {
|
|
351
|
-
if (sibling.matches('.column[id]') || sibling.matches('[data-anchor-target][id]')) {
|
|
352
|
-
return sibling;
|
|
353
|
-
}
|
|
354
|
-
const inner = sibling.querySelector('.column[id]') ||
|
|
355
|
-
sibling.querySelector('[data-anchor-target][id]');
|
|
356
|
-
if (inner)
|
|
357
|
-
return inner;
|
|
358
|
-
sibling = sibling.previousElementSibling;
|
|
359
|
-
}
|
|
360
|
-
return null;
|
|
361
|
-
}
|
|
362
|
-
resolveRowIndex(scrollRow, section) {
|
|
363
|
-
const scope = section ?? scrollRow.parentElement;
|
|
364
|
-
if (!scope) {
|
|
365
|
-
return -1;
|
|
366
|
-
}
|
|
367
|
-
return Array.from(scope.querySelectorAll('.scrollable-row')).indexOf(scrollRow);
|
|
368
|
-
}
|
|
369
|
-
resolveClickedItemId(element, section) {
|
|
370
|
-
if (element.id && element.id !== section?.id) {
|
|
371
|
-
return element.id;
|
|
372
|
-
}
|
|
373
|
-
const candidate = element.closest('[id]');
|
|
374
|
-
if (candidate?.id && candidate.id !== section?.id) {
|
|
375
|
-
return candidate.id;
|
|
376
|
-
}
|
|
377
|
-
return null;
|
|
378
|
-
}
|
|
379
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: UIViewDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.Router }, { token: i2.UIActionService }, { token: i3.UIScreenViewModel, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
380
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.14", type: UIViewDirective, isStandalone: false, selector: "[edmSduiView]", inputs: { edmSduiView: "edmSduiView", disableClick: "disableClick" }, host: { listeners: { "window:resize": "onWindowResize()", "click": "onClick($event)" } }, usesOnChanges: true, ngImport: i0 }); }
|
|
381
|
-
}
|
|
382
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: UIViewDirective, decorators: [{
|
|
383
|
-
type: Directive,
|
|
384
|
-
args: [{
|
|
385
|
-
selector: '[edmSduiView]',
|
|
386
|
-
standalone: false,
|
|
387
|
-
}]
|
|
388
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.Router }, { type: i2.UIActionService }, { type: i3.UIScreenViewModel, decorators: [{
|
|
389
|
-
type: Optional
|
|
390
|
-
}] }], propDecorators: { edmSduiView: [{
|
|
391
|
-
type: Input
|
|
392
|
-
}], disableClick: [{
|
|
393
|
-
type: Input
|
|
394
|
-
}], onWindowResize: [{
|
|
395
|
-
type: HostListener,
|
|
396
|
-
args: ['window:resize']
|
|
397
|
-
}], onClick: [{
|
|
398
|
-
type: HostListener,
|
|
399
|
-
args: ['click', ['$event']]
|
|
400
|
-
}] } });
|
|
401
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWl2aWV3LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2R1aS9zcmMvbGliL2RpcmVjdGl2ZXMvdWl2aWV3LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUVMLFFBQVEsRUFDUixTQUFTLEdBRVYsTUFBTSxlQUFlLENBQUM7QUFhdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzdFLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsdUJBQXVCLEdBQ3hCLE1BQU0sd0NBQXdDLENBQUM7QUFDaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFckUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDOzs7OztBQU01RixNQUFNLE9BQU8sZUFBZTthQUdGLDRCQUF1QixHQUFHLG1CQUFtQixBQUF0QixDQUF1QjthQUM5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QU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvRixDQUFDO0lBRU8sb0JBQW9CLENBQUMsT0FBb0IsRUFBRSxPQUEyQjtRQUM1RSxJQUFJLE9BQU8sQ0FBQyxFQUFFLElBQUksT0FBTyxDQUFDLEVBQUUsS0FBSyxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDN0MsT0FBTyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ3BCLENBQUM7UUFFRCxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBdUIsQ0FBQztRQUNoRSxJQUFJLFNBQVMsRUFBRSxFQUFFLElBQUksU0FBUyxDQUFDLEVBQUUsS0FBSyxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDbEQsT0FBTyxTQUFTLENBQUMsRUFBRSxDQUFDO1FBQ3RCLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7K0dBM2lCVSxlQUFlO21HQUFmLGVBQWU7OzRGQUFmLGVBQWU7a0JBSjNCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFVBQVUsRUFBRSxLQUFLO2lCQUNsQjs7MEJBbUJJLFFBQVE7eUNBakJGLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFrYk4sY0FBYztzQkFEYixZQUFZO3VCQUFDLGVBQWU7Z0JBVTdCLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3B0aW9uYWwsXG4gIFJlbmRlcmVyMixcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVSVZpZXcgfSBmcm9tICcuLi9jb3JlL3VpY29tcG9zaXRpb24vbW9kZWxzL3Vpdmlldyc7XG5pbXBvcnQgeyBVSVBhZGRpbmcgfSBmcm9tICcuLi9jb3JlL3VpdGhlbWUvbW9kZWxzL3VpcGFkZGluZyc7XG5pbXBvcnQgeyBVSUJhY2tncm91bmQgfSBmcm9tICcuLi9jb3JlL3VpdGhlbWUvbW9kZWxzL3VpYmFja2dyb3VuZCc7XG5pbXBvcnQgeyBVSUFjdGlvbiB9IGZyb20gJy4uL2NvcmUvdWl0aGVtZS9tb2RlbHMvdWlhY3Rpb24nO1xuaW1wb3J0IHsgVUlBbGlnbm1lbnQgfSBmcm9tICcuLi9jb3JlL3VpdGhlbWUvbW9kZWxzL3VpYWxpZ25tZW50JztcbmltcG9ydCB7IFVJU2hhZG93IH0gZnJvbSAnLi4vY29yZS91aXRoZW1lL21vZGVscy91aXNoYWRvdyc7XG5pbXBvcnQgeyBVSVJhZGl1cyB9IGZyb20gJy4uL2NvcmUvdWl0aGVtZS9tb2RlbHMvdWlyYWRpdXMnO1xuaW1wb3J0IHsgVUlTcGFjaW5nIH0gZnJvbSAnLi4vY29yZS91aXRoZW1lL21vZGVscy91aXNwYWNpbmcnO1xuaW1wb3J0IHsgVUlDb2xvciB9IGZyb20gJy4uL2NvcmUvdWl0aGVtZS9lbnVtcy91aWNvbG9yJztcbmltcG9ydCB7IFVJSnVzdGlmeSB9IGZyb20gJy4uL2NvcmUvdWl0aGVtZS9lbnVtcy91aWp1c3RpZnknO1xuaW1wb3J0IHsgVUlEaW1lbnNpb24gfSBmcm9tICcuLi9jb3JlL3VpdGhlbWUvZW51bXMvdWlkaW1lbnNpb24nO1xuaW1wb3J0IHsgVUlDb250ZW50SW5zZXQgfSBmcm9tICcuLi9jb3JlL3VpdGhlbWUvbW9kZWxzL3VpY29udGVudC1pbnNldCc7XG5pbXBvcnQgeyBzcGFjZU1hcHBpbmcgfSBmcm9tICcuLi9jb3JlL3VpdGhlbWUvbWFwcGluZy9zcGFjZS1tYXBwaW5nJztcbmltcG9ydCB7IGNvbG9yTWFwcGluZyB9IGZyb20gJy4uL2NvcmUvdWl0aGVtZS9tYXBwaW5nL2NvbG9yLW1hcHBpbmcnO1xuaW1wb3J0IHsgcGFkTWFwcGluZyB9IGZyb20gJy4uL2NvcmUvdWl0aGVtZS9tYXBwaW5nL3BhZC1tYXBwaW5nJztcbmltcG9ydCB7IHJhZGl1c01hcHBpbmcgfSBmcm9tICcuLi9jb3JlL3VpdGhlbWUvbWFwcGluZy9yYWRpdXMtbWFwcGluZyc7XG5pbXBvcnQgeyBhbGlnbm1lbnRNYXBwaW5nIH0gZnJvbSAnLi4vY29yZS91aXRoZW1lL21hcHBpbmcvYWxpZ25tZW50LW1hcHBpbmcnO1xuaW1wb3J0IHsgZGltZW5zaW9uTWFwcGluZyB9IGZyb20gJy4uL2NvcmUvdWl0aGVtZS9tYXBwaW5nL2RpbWVuc2lvbi1tYXBwaW5nJztcbmltcG9ydCB7XG4gIHNoYWRvd09mZnNldE1hcHBpbmcsXG4gIHNoYWRvd0JsdXJSYWRpdXNNYXBwaW5nLFxufSBmcm9tICcuLi9jb3JlL3VpdGhlbWUvbWFwcGluZy9zaGFkb3ctbWFwcGluZyc7XG5pbXBvcnQgeyBqdXN0aWZ5TWFwcGluZyB9IGZyb20gJy4uL2NvcmUvdWl0aGVtZS9tYXBwaW5nL2p1c3RpZnktbWFwcGluZyc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgVUlTY3JlZW5WaWV3TW9kZWwgfSBmcm9tICcuLi9jb3JlL3ZpZXctbW9kZWxzL3Vpc2NyZWVuLnZpZXdtb2RlbCc7XG5pbXBvcnQgeyBVSUFjdGlvblNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL3NlcnZpY2VzL3VpLWFjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFVJU2l6ZSB9IGZyb20gJy4uL2NvcmUvdWl0aGVtZS9lbnVtcy91aXNpemUnO1xuaW1wb3J0IHsgc2l6ZU1hcHBpbmcgfSBmcm9tICcuLi9jb3JlL3VpdGhlbWUvbWFwcGluZy9zaXplLW1hcHBpbmcnO1xuaW1wb3J0IHsgVUlTY3JlZW5Db250YWluZXJUeXBlIH0gZnJvbSAnLi4vY29yZS91aWNvbXBvc2l0aW9uL2VudW1zL3Vpc2NyZWVuLWNvbnRhaW5lci10eXBlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2VkbVNkdWlWaWV3XScsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxufSlcbmV4cG9ydCBjbGFzcyBVSVZpZXdEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBlZG1TZHVpVmlldz86IFVJVmlldztcbiAgQElucHV0KCkgZGlzYWJsZUNsaWNrOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IEVYUExPUkVfTEFTVF9BTkNIT1JfS0VZID0gJ2V4cGxvcmVMYXN0QW5jaG9yJztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgRVhQTE9SRV9DTElDS0VEX0FOQ0hPUl9LRVkgPSAnZXhwbG9yZUNsaWNrZWRBbmNob3InO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBFWFBMT1JFX0xBU1RfUk9XX0lOREVYX0tFWSA9ICdleHBsb3JlTGFzdFJvd0luZGV4JztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgRVhQTE9SRV9MQVNUX1JPV19TQ1JPTExfTEVGVF9LRVkgPSAnZXhwbG9yZUxhc3RSb3dTY3JvbGxMZWZ0JztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgRVhQTE9SRV9MQVNUX0lURU1fSURfS0VZID0gJ2V4cGxvcmVMYXN0SXRlbUlkJztcblxuICBwcml2YXRlIGxhc3RVaVZpZXc6IFVJVmlldyB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIHdhc1NtYWxsU2NyZWVuID0gdGhpcy5pc1NtYWxsU2NyZWVuKCk7XG4gIHByaXZhdGUgY3VycmVudENvbnRhaW5lcjogVUlTY3JlZW5Db250YWluZXJUeXBlID0gVUlTY3JlZW5Db250YWluZXJUeXBlLkNPTlRBSU5FRDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBhY3Rpb25TZXJ2aWNlOiBVSUFjdGlvblNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBzY3JlZW5WaWV3TW9kZWw6IFVJU2NyZWVuVmlld01vZGVsXG4gICkge1xuICAgIGlmICh0aGlzLnNjcmVlblZpZXdNb2RlbCkge1xuICAgICAgdGhpcy5zY3JlZW5WaWV3TW9kZWwudWlTY3JlZW4kLnN1YnNjcmliZSgoc2NyZWVuKSA9PiB7XG4gICAgICAgIHRoaXMuY3VycmVudENvbnRhaW5lciA9XG4gICAgICAgICAgc2NyZWVuPy5jb25maWc/LmNvbnRhaW5lciA/PyBVSVNjcmVlbkNvbnRhaW5lclR5cGUuQ09OVEFJTkVEO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmICh0aGlzLmVkbVNkdWlWaWV3KSB7XG4gICAgICB0aGlzLmxhc3RVaVZpZXcgPSB0aGlzLmVkbVNkdWlWaWV3O1xuICAgICAgdGhpcy5hcHBseVN0eWxlcyh0aGlzLmVkbVNkdWlWaWV3KTtcbiAgICAgIHRoaXMud2FzU21hbGxTY3JlZW4gPSB0aGlzLmlzU21hbGxTY3JlZW4oKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFwcGx5U3R5bGVzKHVpVmlldzogVUlWaWV3KSB7XG4gICAgaWYgKHVpVmlldy5pZCkge1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnaWQnLFxuICAgICAgICBTdHJpbmcodWlWaWV3LmlkKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAodWlWaWV3LnBhZGRpbmcpIHtcbiAgICAgIHRoaXMuYXBwbHlQYWRkaW5nKHVpVmlldy5wYWRkaW5nKTtcbiAgICB9XG5cbiAgICBpZiAodWlWaWV3LmNvbnRlbnRJbnNldCkge1xuICAgICAgdGhpcy5hcHBseUNvbnRlbnRJbnNldCh1aVZpZXcuY29udGVudEluc2V0KTtcbiAgICB9XG5cbiAgICBpZiAodWlWaWV3LmJhY2tncm91bmQpIHtcbiAgICAgIHRoaXMuYXBwbHlCYWNrZ3JvdW5kKHVpVmlldy5iYWNrZ3JvdW5kKTtcbiAgICB9XG5cbiAgICBpZiAodWlWaWV3LmFjdGlvbikge1xuICAgICAgdGhpcy5hcHBseUFjdGlvbih1aVZpZXcuYWN0aW9uKTtcbiAgICB9XG5cbiAgICBpZiAodWlWaWV3LmFsaWdubWVudCkge1xuICAgICAgdGhpcy5hcHBseUFsaWdubWVudCh1aVZpZXcuYWxpZ25tZW50KTtcbiAgICB9XG5cbiAgICBpZiAodWlWaWV3LnNoYWRvdykge1xuICAgICAgdGhpcy5hcHBseVNoYWRvdyh1aVZpZXcuc2hhZG93KTtcbiAgICB9XG5cbiAgICBpZiAodWlWaWV3LnJhZGl1cykge1xuICAgICAgdGhpcy5hcHBseVJhZGl1cyh1aVZpZXcucmFkaXVzKTtcbiAgICB9XG5cbiAgICBpZiAodWlWaWV3LnNwYWNpbmcpIHtcbiAgICAgIHRoaXMuYXBwbHlTcGFjaW5nKHVpVmlldy5zcGFjaW5nKTtcbiAgICB9XG5cbiAgICBpZiAodWlWaWV3LmhlaWdodCkge1xuICAgICAgdGhpcy5hcHBseUhlaWdodCh1aVZpZXcuaGVpZ2h0KTtcbiAgICB9XG5cbiAgICBpZiAodWlWaWV3LndpZHRoKSB7XG4gICAgICB0aGlzLmFwcGx5V2lkdGgodWlWaWV3LndpZHRoKTtcbiAgICB9XG5cbiAgICBpZiAodWlWaWV3LmJvcmRlcldpZHRoKSB7XG4gICAgICB0aGlzLmFwcGx5Qm9yZGVyV2lkdGgodWlWaWV3LmJvcmRlcldpZHRoKTtcbiAgICB9XG5cbiAgICBpZiAodWlWaWV3LmJvcmRlckNvbG9yKSB7XG4gICAgICB0aGlzLmFwcGx5Qm9yZGVyQ29sb3IodWlWaWV3LmJvcmRlckNvbG9yKTtcbiAgICB9XG5cbiAgICBpZiAodWlWaWV3Lmp1c3RpZnkpIHtcbiAgICAgIHRoaXMuYXBwbHlKdXN0aWZ5KHVpVmlldy5qdXN0aWZ5KTtcbiAgICB9XG5cbiAgICBpZiAodWlWaWV3LnNpemUpIHtcbiAgICAgIHRoaXMuYXBwbHlTaXplKHVpVmlldy5zaXplKTtcbiAgICB9XG4gICAgaWYgKHVpVmlldy5hc3BlY3RSYXRpbyAhPT0gbnVsbCAmJiB1aVZpZXcuYXNwZWN0UmF0aW8gIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5hcHBseUFzcGVjdFJhdGlvKHVpVmlldy5hc3BlY3RSYXRpbyk7XG4gICAgfVxuXG4gICAgaWYodWlWaWV3LmhvdmVyKXtcbiAgICAgIHRoaXMuYXBwbHlIb3ZlclZhcnModWlWaWV3KTtcbiAgICB9XG5cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlQYWRkaW5nKHVpUGFkZGluZzogVUlQYWRkaW5nKSB7XG4gICAgaWYgKHVpUGFkZGluZy50b3ApIHtcbiAgICAgIGNvbnN0IHBhZFZhbHVlID0gcGFkTWFwcGluZ1t1aVBhZGRpbmcudG9wXTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAncGFkZGluZy10b3AnLFxuICAgICAgICBwYWRWYWx1ZVxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHVpUGFkZGluZy5sZWZ0KSB7XG4gICAgICBjb25zdCBwYWRWYWx1ZSA9IHBhZE1hcHBpbmdbdWlQYWRkaW5nLmxlZnRdO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdwYWRkaW5nLWxlZnQnLFxuICAgICAgICBwYWRWYWx1ZVxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHVpUGFkZGluZy5yaWdodCkge1xuICAgICAgY29uc3QgcGFkVmFsdWUgPSBwYWRNYXBwaW5nW3VpUGFkZGluZy5yaWdodF07XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ3BhZGRpbmctcmlnaHQnLFxuICAgICAgICBwYWRWYWx1ZVxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHVpUGFkZGluZy5ib3R0b20pIHtcbiAgICAgIGNvbnN0IHBhZFZhbHVlID0gcGFkTWFwcGluZ1t1aVBhZGRpbmcuYm90dG9tXTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAncGFkZGluZy1ib3R0b20nLFxuICAgICAgICBwYWRWYWx1ZVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFwcGx5Q29udGVudEluc2V0KHVpQ29udGVudEluc2V0OiBVSUNvbnRlbnRJbnNldCkge1xuICAgIGlmICh1aUNvbnRlbnRJbnNldC50b3ApIHtcbiAgICAgIGNvbnN0IGluc2V0VmFsdWUgPSBzcGFjZU1hcHBpbmdbdWlDb250ZW50SW5zZXQudG9wXTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAncGFkZGluZy10b3AnLFxuICAgICAgICBpbnNldFZhbHVlXG4gICAgICApO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICctLXNkdWktY29udGVudC1pbnNldC10b3AnLFxuICAgICAgICBpbnNldFZhbHVlXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICh1aUNvbnRlbnRJbnNldC5sZWZ0KSB7XG4gICAgICBjb25zdCBpbnNldFZhbHVlID0gc3BhY2VNYXBwaW5nW3VpQ29udGVudEluc2V0LmxlZnRdO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdwYWRkaW5nLWxlZnQnLFxuICAgICAgICBpbnNldFZhbHVlXG4gICAgICApO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICctLXNkdWktY29udGVudC1pbnNldC1sZWZ0JyxcbiAgICAgICAgaW5zZXRWYWx1ZVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAodWlDb250ZW50SW5zZXQucmlnaHQpIHtcbiAgICAgIGNvbnN0IGluc2V0VmFsdWUgPSBzcGFjZU1hcHBpbmdbdWlDb250ZW50SW5zZXQucmlnaHRdO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdwYWRkaW5nLXJpZ2h0JyxcbiAgICAgICAgaW5zZXRWYWx1ZVxuICAgICAgKTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnLS1zZHVpLWNvbnRlbnQtaW5zZXQtcmlnaHQnLFxuICAgICAgICBpbnNldFZhbHVlXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICh1aUNvbnRlbnRJbnNldC5ib3R0b20pIHtcbiAgICAgIGNvbnN0IGluc2V0VmFsdWUgPSBzcGFjZU1hcHBpbmdbdWlDb250ZW50SW5zZXQuYm90dG9tXTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAncGFkZGluZy1ib3R0b20nLFxuICAgICAgICBpbnNldFZhbHVlXG4gICAgICApO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICctLXNkdWktY29udGVudC1pbnNldC1ib3R0b20nLFxuICAgICAgICBpbnNldFZhbHVlXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlCYWNrZ3JvdW5kKHVpQmFja2dyb3VuZDogVUlCYWNrZ3JvdW5kKSB7XG4gICAgaWYgKHVpQmFja2dyb3VuZC5iYWNrZ3JvdW5kQ29sb3IpIHtcbiAgICAgIGNvbnN0IGJhY2tncm91bmRDb2xvciA9IGNvbG9yTWFwcGluZ1t1aUJhY2tncm91bmQuYmFja2dyb3VuZENvbG9yXTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnYmFja2dyb3VuZC1jb2xvcicsXG4gICAgICAgIGJhY2tncm91bmRDb2xvclxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAodWlCYWNrZ3JvdW5kLmdyYWRpZW50Q29sb3IxICYmIHVpQmFja2dyb3VuZC5ncmFkaWVudENvbG9yMikge1xuICAgICAgY29uc3QgZ3JhZGllbnRDb2xvcjEgPSBjb2xvck1hcHBpbmdbdWlCYWNrZ3JvdW5kLmdyYWRpZW50Q29sb3IxXTtcbiAgICAgIGNvbnN0IGdyYWRpZW50Q29sb3IyID0gY29sb3JNYXBwaW5nW3VpQmFja2dyb3VuZC5ncmFkaWVudENvbG9yMl07XG4gICAgICBjb25zdCBncmFkaWVudFN0eWxlcyA9IGBsaW5lYXItZ3JhZGllbnQoNDVkZWcsICR7Z3JhZGllbnRDb2xvcjF9LCAke2dyYWRpZW50Q29sb3IyfSlgXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ2JhY2tncm91bmQnLFxuICAgICAgICBncmFkaWVudFN0eWxlc1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFwcGx5QWN0aW9uKHVpQWN0aW9uOiBVSUFjdGlvbikge1xuICAgIGlmICh0aGlzLmRpc2FibGVDbGljaykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdjdXJzb3InLCAncG9pbnRlcicpO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseUFsaWdubWVudCh1aUFsaWdubWVudDogVUlBbGlnbm1lbnQpIHtcbiAgICBpZiAodWlBbGlnbm1lbnQuYWxpZ25tZW50KSB7XG4gICAgICBjb25zdCBhbGlnbm1lbnQgPSBhbGlnbm1lbnRNYXBwaW5nW3VpQWxpZ25tZW50LmFsaWdubWVudF07XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ2FsaWduLWl0ZW1zJyxcbiAgICAgICAgYWxpZ25tZW50XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlTaGFkb3codWlTaGFkb3c6IFVJU2hhZG93KSB7XG4gICAgaWYgKHVpU2hhZG93LmNvbG9yICYmIHVpU2hhZG93Lm9mZnNldFggJiYgdWlTaGFkb3cub2Zmc2V0WSAmJiB1aVNoYWRvdy5ibHVyUmFkaXVzKSB7XG4gICAgICBjb25zdCBjb2xvciA9IGNvbG9yTWFwcGluZ1t1aVNoYWRvdy5jb2xvcl07XG4gICAgICBjb25zdCBvZmZzZXRYID0gc2hhZG93T2Zmc2V0TWFwcGluZ1t1aVNoYWRvdy5vZmZzZXRYXTtcbiAgICAgIGNvbnN0IG9mZnNldFkgPSBzaGFkb3dPZmZzZXRNYXBwaW5nW3VpU2hhZG93Lm9mZnNldFldO1xuICAgICAgY29uc3QgYmx1clJhZGl1cyA9IHNoYWRvd0JsdXJSYWRpdXNNYXBwaW5nW3VpU2hhZG93LmJsdXJSYWRpdXNdO1xuICAgICAgY29uc3Qgb3BhY2l0eSA9IHVpU2hhZG93Lm9wYWNpdHkgIT09IHVuZGVmaW5lZCA/IHVpU2hhZG93Lm9wYWNpdHkgOiAxO1xuXG4gICAgICAvLyBGb3JtYXQ6IGJveC1zaGFkb3c6IG9mZnNldFggb2Zmc2V0WSBibHVyUmFkaXVzIGNvbG9yXG4gICAgICBjb25zdCBzaGFkb3dWYWx1ZSA9IGAke29mZnNldFh9ICR7b2Zmc2V0WX0gJHtibHVyUmFkaXVzfSAke2NvbG9yfWA7XG5cbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnYm94LXNoYWRvdycsXG4gICAgICAgIHNoYWRvd1ZhbHVlXG4gICAgICApO1xuXG4gICAgICBpZiAob3BhY2l0eSAhPT0gMSkge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICdvcGFjaXR5JyxcbiAgICAgICAgICBvcGFjaXR5LnRvU3RyaW5nKClcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFwcGx5UmFkaXVzKHVpUmFkaXVzOiBVSVJhZGl1cykge1xuICAgIGlmICh1aVJhZGl1cy50b3BMZWZ0KSB7XG4gICAgICBjb25zdCByYWRpdXMgPSByYWRpdXNNYXBwaW5nW3VpUmFkaXVzLnRvcExlZnRdO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdib3JkZXItdG9wLWxlZnQtcmFkaXVzJyxcbiAgICAgICAgcmFkaXVzXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICh1aVJhZGl1cy50b3BSaWdodCkge1xuICAgICAgY29uc3QgcmFkaXVzID0gcmFkaXVzTWFwcGluZ1t1aVJhZGl1cy50b3BSaWdodF07XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ2JvcmRlci10b3AtcmlnaHQtcmFkaXVzJyxcbiAgICAgICAgcmFkaXVzXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICh1aVJhZGl1cy5ib3R0b21MZWZ0KSB7XG4gICAgICBjb25zdCByYWRpdXMgPSByYWRpdXNNYXBwaW5nW3VpUmFkaXVzLmJvdHRvbUxlZnRdO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzJyxcbiAgICAgICAgcmFkaXVzXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICh1aVJhZGl1cy5ib3R0b21SaWdodCkge1xuICAgICAgY29uc3QgcmFkaXVzID0gcmFkaXVzTWFwcGluZ1t1aVJhZGl1cy5ib3R0b21SaWdodF07XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzJyxcbiAgICAgICAgcmFkaXVzXG4gICAgICApO1xuICAgIH1cblxuICB9XG5cbiAgcHJpdmF0ZSBhcHBseVNwYWNpbmcodWlTcGFjaW5nOiBVSVNwYWNpbmcpIHtcbiAgICBpZiAodWlTcGFjaW5nLnNwYWNpbmcpIHtcbiAgICAgIGNvbnN0IHNwYWNpbmdWYWx1ZSA9IHNwYWNlTWFwcGluZ1t1aVNwYWNpbmcuc3BhY2luZ107XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ2dhcCcsXG4gICAgICAgIHNwYWNpbmdWYWx1ZVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFwcGx5SGVpZ2h0KGhlaWdodDogVUlEaW1lbnNpb24pIHtcbiAgICBpZiAoaGVpZ2h0KSB7XG4gICAgICBjb25zdCBoZWlnaHRWYWx1ZSA9IGRpbWVuc2lvbk1hcHBpbmdbaGVpZ2h0XTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnaGVpZ2h0JyxcbiAgICAgICAgaGVpZ2h0VmFsdWVcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhcHBseVdpZHRoKHdpZHRoOiBVSURpbWVuc2lvbikge1xuICAgIGlmICh3aWR0aCkge1xuICAgICAgY29uc3Qgd2lkdGhWYWx1ZSA9IGRpbWVuc2lvbk1hcHBpbmdbd2lkdGhdO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICd3aWR0aCcsXG4gICAgICAgIHdpZHRoVmFsdWVcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhcHBseUJvcmRlcldpZHRoKGJvcmRlcldpZHRoOiBudW1iZXIpIHtcbiAgICBpZiAoYm9yZGVyV2lkdGggIT09IG51bGwgJiYgYm9yZGVyV2lkdGggIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdib3JkZXItd2lkdGgnLFxuICAgICAgICBgJHtib3JkZXJXaWR0aH1weGBcbiAgICAgICk7XG5cbiAgICAgIC8vIEVuc3VyZSBib3JkZXIgc3R5bGUgaXMgc2V0LCBvdGhlcndpc2UgYm9yZGVyLXdpZHRoIHdvbid0IGJlIHZpc2libGVcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnYm9yZGVyLXN0eWxlJyxcbiAgICAgICAgJ3NvbGlkJ1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFwcGx5Qm9yZGVyQ29sb3IoYm9yZGVyQ29sb3I6IFVJQ29sb3IpIHtcbiAgICBpZiAoYm9yZGVyQ29sb3IpIHtcbiAgICAgIGNvbnN0IGNvbG9yID0gY29sb3JNYXBwaW5nW2JvcmRlckNvbG9yXTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnYm9yZGVyLWNvbG9yJyxcbiAgICAgICAgY29sb3JcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhcHBseUp1c3RpZnkoanVzdGlmeTogVUlKdXN0aWZ5KSB7XG4gICAgaWYgKGp1c3RpZnkpIHtcbiAgICAgIGNvbnN0IGp1c3RpZnlWYWx1ZSA9IGp1c3RpZnlNYXBwaW5nW2p1c3RpZnldO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdqdXN0aWZ5LWNvbnRlbnQnLFxuICAgICAgICBqdXN0aWZ5VmFsdWVcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhcHBseUFzcGVjdFJhdGlvKGFzcGVjdFJhdGlvOiBudW1iZXIpIHtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlTaXplKHNpemU6IFVJU2l6ZSkge1xuICAgIGNvbnN0IGNvbmZpZyA9IHNpemVNYXBwaW5nW3NpemVdO1xuICAgIGlmICghY29uZmlnKSByZXR1cm47XG5cbiAgICBsZXQgeyB3aWR0aDogd2lkdGhWYWx1ZSwgaGVpZ2h0OiBoZWlnaHRWYWx1ZSB9ID0gY29uZmlnO1xuXG4gICAgaWYgKGNvbmZpZy5zY2FsYWJsZSAmJiB0aGlzLmlzU21hbGxTY3JlZW4oKSkge1xuICAgICAgd2lkdGhWYWx1ZSA9IHRoaXMuc2NhbGVQaXhlbFZhbHVlKHdpZHRoVmFsdWUsIDEuMSk7XG4gICAgICBoZWlnaHRWYWx1ZSA9IHRoaXMuc2NhbGVQaXhlbFZhbHVlKGhlaWdodFZhbHVlLCAxLjEpO1xuICAgIH1cblxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICd3aWR0aCcsIHdpZHRoVmFsdWUpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdoZWlnaHQnLCBoZWlnaHRWYWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIGFwcGx5SG92ZXJWYXJzKHVpVmlldzogYW55KTogdm9pZCB7XG4gICAgY29uc3QgaG92ZXIgPSB1aVZpZXc/LmhvdmVyID8/IHVpVmlldz8uZWxlbWVudD8uaG92ZXI7XG4gICAgaWYgKCFob3ZlcikgcmV0dXJuO1xuXG4gICAgY29uc3QgZWwgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcblxuICAgIC8vIG1hcmNhIHF1ZSBlc3NlIGVsZW1lbnRvIHRlbSBob3ZlclxuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoZWwsICdlZG0taG92ZXInKTtcblxuICAgIGlmIChob3Zlci5ib3JkZXJfY29sb3IgfHwgaG92ZXIuYm9yZGVyQ29sb3IpIHtcbiAgICAgIGNvbnN0IHRva2VuID0gKGhvdmVyLmJvcmRlcl9jb2xvciA/PyBob3Zlci5ib3JkZXJDb2xvcikucmVwbGFjZSgvXy9nLCAnLScpO1xuICAgICAgZWwuc3R5bGUuc2V0UHJvcGVydHkoJy0tZWRtLWhvdmVyLWJvcmRlci1jb2xvcicsIGB2YXIoLS0ke3Rva2VufSlgKTtcbiAgICB9XG5cbiAgICBpZiAoaG92ZXIuYmFja2dyb3VuZF9jb2xvciB8fCBob3Zlci5iYWNrZ3JvdW5kQ29sb3IpIHtcbiAgICAgIGNvbnN0IHRva2VuID0gKGhvdmVyLmJhY2tncm91bmRfY29sb3IgPz8gaG92ZXIuYmFja2dyb3VuZENvbG9yKS5yZXBsYWNlKC9fL2csICctJyk7XG4gICAgICBlbC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1lZG0taG92ZXItYmctY29sb3InLCBgdmFyKC0tJHt0b2tlbn0pYCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc1NtYWxsU2NyZWVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB3aW5kb3cuaW5uZXJXaWR0aCA+PSA1NjU7XG4gIH1cblxuICBwcml2YXRlIHNjYWxlUGl4ZWxWYWx1ZSh2YWx1ZTogc3RyaW5nLCBkaXZpc29yOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IG1hdGNoID0gL14oXFxkKyg/OlxcLlxcZCspPylweCQvLmV4ZWModmFsdWUpO1xuICAgIGlmICghbWF0Y2gpIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICBjb25zdCBudW0gPSBwYXJzZUZsb2F0KG1hdGNoWzFdKTtcbiAgICBjb25zdCBzY2FsZWQgPSBudW0gKiBkaXZpc29yO1xuICAgIHJldHVybiBgJHtzY2FsZWR9cHhgO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScpXG4gIG9uV2luZG93UmVzaXplKCk6IHZvaWQge1xuICAgIGNvbnN0IGlzU21hbGwgPSB0aGlzLmlzU21hbGxTY3JlZW4oKTtcbiAgICBpZiAodGhpcy5sYXN0VWlWaWV3ICYmIGlzU21hbGwgIT09IHRoaXMud2FzU21hbGxTY3JlZW4pIHtcbiAgICAgIHRoaXMuYXBwbHlTdHlsZXModGhpcy5sYXN0VWlWaWV3KTtcbiAgICAgIHRoaXMud2FzU21hbGxTY3JlZW4gPSBpc1NtYWxsO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgb25DbGljayhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlQ2xpY2spIHJldHVybjtcblxuICAgIGlmICh0aGlzLmVkbVNkdWlWaWV3Py5hY3Rpb24pIHtcbiAgICAgIHRoaXMuY2FwdHVyZUV4cGxvcmVTY3JvbGxDb250ZXh0KCk7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIHRoaXMuYWN0aW9uU2VydmljZS5leGVjdXRlKHRoaXMuZWRtU2R1aVZpZXcuYWN0aW9uKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNhcHR1cmVFeHBsb3JlU2Nyb2xsQ29udGV4dCgpOiB2b2lkIHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgfHwgIXRoaXMucm91dGVyLnVybC5pbmNsdWRlcygnL2V4cGxvcmFyJykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgY29uc3Qgc2Nyb2xsUm93ID0gZWxlbWVudC5jbG9zZXN0KCcuc2Nyb2xsYWJsZS1yb3cnKSBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG5cbiAgICBpZiAoIXNjcm9sbFJvdykge1xuICAgICAgdGhpcy5jbGVhckV4cGxvcmVIb3Jpem9udGFsU2Nyb2xsQ29udGV4dCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHNlY3Rpb24gPSB0aGlzLnJlc29sdmVFeHBsb3JlU2VjdGlvbihlbGVtZW50LCBzY3JvbGxSb3cpO1xuICAgIGNvbnN0IGFjdGl2ZVRhZyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KCcucm93LXRhZy0tc2VsZWN0ZWQnKT8uZ2V0QXR0cmlidXRlKCdkYXRhLXRhZycpO1xuICAgIGNvbnN0IHNlY3Rpb25JZCA9IHNlY3Rpb24/LmlkIHx8IGFjdGl2ZVRhZyB8fCBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFVJVmlld0RpcmVjdGl2ZS5FWFBMT1JFX0xBU1RfQU5DSE9SX0tFWSk7XG4gICAgY29uc3Qgcm93SW5kZXggPSB0aGlzLnJlc29sdmVSb3dJbmRleChzY3JvbGxSb3csIHNlY3Rpb24pO1xuICAgIGNvbnN0IGl0ZW1JZCA9IHRoaXMucmVzb2x2ZUNsaWNrZWRJdGVtSWQoZWxlbWVudCwgc2VjdGlvbik7XG5cbiAgICB0cnkge1xuICAgICAgaWYgKHNlY3Rpb25JZCkge1xuICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFVJVmlld0RpcmVjdGl2ZS5FWFBMT1JFX0xBU1RfQU5DSE9SX0tFWSwgc2VjdGlvbklkKTtcbiAgICAgIH1cbiAgICAgIC8vIFNhbHZhIG8gYW5jaG9yIGRvIGNsaXF1ZSBzZXBhcmFkbyBkbyBzY3JvbGwgc3B5IHBhcmEgbsOjbyBzZXIgc29icmVzY3JpdG8gZHVyYW50ZSBuYXZlZ2HDp8Ojb1xuICAgICAgY29uc3QgY2xpY2tlZEFuY2hvciA9IHNlY3Rpb24/LmlkIHx8IGFjdGl2ZVRhZztcbiAgICAgIGlmIChjbGlja2VkQW5jaG9yKSB7XG4gICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oVUlWaWV3RGlyZWN0aXZlLkVYUExPUkVfQ0xJQ0tFRF9BTkNIT1JfS0VZLCBjbGlja2VkQW5jaG9yKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHJvd0luZGV4ID49IDApIHtcbiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShVSVZpZXdEaXJlY3RpdmUuRVhQTE9SRV9MQVNUX1JPV19JTkRFWF9LRVksIFN0cmluZyhyb3dJbmRleCkpO1xuICAgICAgfVxuXG4gICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFxuICAgICAgICBVSVZpZXdEaXJlY3RpdmUuRVhQTE9SRV9MQVNUX1JPV19TQ1JPTExfTEVGVF9LRVksXG4gICAgICAgIFN0cmluZyhNYXRoLnJvdW5kKHNjcm9sbFJvdy5zY3JvbGxMZWZ0KSlcbiAgICAgICk7XG5cbiAgICAgIGlmIChpdGVtSWQpIHtcbiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShVSVZpZXdEaXJlY3RpdmUuRVhQTE9SRV9MQVNUX0lURU1fSURfS0VZLCBpdGVtSWQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbShVSVZpZXdEaXJlY3RpdmUuRVhQTE9SRV9MQVNUX0lURU1fSURfS0VZKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIHt9XG4gIH1cblxuICBwcml2YXRlIGNsZWFyRXhwbG9yZUhvcml6b250YWxTY3JvbGxDb250ZXh0KCk6IHZvaWQge1xuICAgIHRyeSB7XG4gICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKFVJVmlld0RpcmVjdGl2ZS5FWFBMT1JFX0xBU1RfUk9XX0lOREVYX0tFWSk7XG4gICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKFVJVmlld0RpcmVjdGl2ZS5FWFBMT1JFX0xBU1RfUk9XX1NDUk9MTF9MRUZUX0tFWSk7XG4gICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKFVJVmlld0RpcmVjdGl2ZS5FWFBMT1JFX0xBU1RfSVRFTV9JRF9LRVkpO1xuICAgIH0gY2F0Y2gge31cbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZUV4cGxvcmVTZWN0aW9uKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBzY3JvbGxSb3c6IEhUTUxFbGVtZW50KTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICBjb25zdCBmcm9tQW5jZXN0b3IgPVxuICAgICAgc2Nyb2xsUm93LmNsb3Nlc3QoJ1tkYXRhLWFuY2hvci10YXJnZXRdW2lkXScpIGFzIEhUTUxFbGVtZW50IHwgbnVsbCB8fFxuICAgICAgc2Nyb2xsUm93LmNsb3Nlc3QoJy5jb2x1bW5baWRdJykgYXMgSFRNTEVsZW1lbnQgfCBudWxsIHx8XG4gICAgICBlbGVtZW50LmNsb3Nlc3QoJ1tkYXRhLWFuY2hvci10YXJnZXRdW2lkXScpIGFzIEhUTUxFbGVtZW50IHwgbnVsbCB8fFxuICAgICAgZWxlbWVudC5jbG9zZXN0KCcuY29sdW1uW2lkXScpIGFzIEhUTUxFbGVtZW50IHwgbnVsbDtcblxuICAgIGlmIChmcm9tQW5jZXN0b3IpIHJldHVybiBmcm9tQW5jZXN0b3I7XG5cbiAgICAvLyBTZcOnw7VlcyBwb2RlbSBzZXIgaXJtw6NzIGRvIHNjcm9sbGFibGUtcm93IChuw6NvIGFuY2VzdHJhaXMpLlxuICAgIC8vIFNvYmUgYXTDqSBvIHdyYXBwZXIgZWRtLXNkdWktY29tcG9uZW50IGUgcGVyY29ycmUgaXJtw6NvcyBhbnRlcmlvcmVzLlxuICAgIGNvbnN0IHdyYXBwZXIgPSBzY3JvbGxSb3cuY2xvc2VzdCgnZWRtLXNkdWktY29tcG9uZW50JykgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuICAgIGxldCBzaWJsaW5nID0gd3JhcHBlcj8ucHJldmlvdXNFbGVtZW50U2libGluZyBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG4gICAgd2hpbGUgKHNpYmxpbmcpIHtcbiAgICAgIGlmIChzaWJsaW5nLm1hdGNoZXMoJy5jb2x1bW5baWRdJykgfHwgc2libGluZy5tYXRjaGVzKCdbZGF0YS1hbmNob3ItdGFyZ2V0XVtpZF0nKSkge1xuICAgICAgICByZXR1cm4gc2libGluZztcbiAgICAgIH1cbiAgICAgIGNvbnN0IGlubmVyID0gc2libGluZy5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PignLmNvbHVtbltpZF0nKSB8fFxuICAgICAgICBzaWJsaW5nLnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KCdbZGF0YS1hbmNob3ItdGFyZ2V0XVtpZF0nKTtcbiAgICAgIGlmIChpbm5lcikgcmV0dXJuIGlubmVyO1xuICAgICAgc2libGluZyA9IHNpYmxpbmcucHJldmlvdXNFbGVtZW50U2libGluZyBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVSb3dJbmRleChzY3JvbGxSb3c6IEhUTUxFbGVtZW50LCBzZWN0aW9uOiBIVE1MRWxlbWVudCB8IG51bGwpOiBudW1iZXIge1xuICAgIGNvbnN0IHNjb3BlID0gc2VjdGlvbiA/PyAoc2Nyb2xsUm93LnBhcmVudEVsZW1lbnQgYXMgSFRNTEVsZW1lbnQgfCBudWxsKTtcbiAgICBpZiAoIXNjb3BlKSB7XG4gICAgICByZXR1cm4gLTE7XG4gICAgfVxuXG4gICAgcmV0dXJuIEFycmF5LmZyb20oc2NvcGUucXVlcnlTZWxlY3RvckFsbDxIVE1MRWxlbWVudD4oJy5zY3JvbGxhYmxlLXJvdycpKS5pbmRleE9mKHNjcm9sbFJvdyk7XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVDbGlja2VkSXRlbUlkKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBzZWN0aW9uOiBIVE1MRWxlbWVudCB8IG51bGwpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBpZiAoZWxlbWVudC5pZCAmJiBlbGVtZW50LmlkICE9PSBzZWN0aW9uPy5pZCkge1xuICAgICAgcmV0dXJuIGVsZW1lbnQuaWQ7XG4gICAgfVxuXG4gICAgY29uc3QgY2FuZGlkYXRlID0gZWxlbWVudC5jbG9zZXN0KCdbaWRdJykgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuICAgIGlmIChjYW5kaWRhdGU/LmlkICYmIGNhbmRpZGF0ZS5pZCAhPT0gc2VjdGlvbj8uaWQpIHtcbiAgICAgIHJldHVybiBjYW5kaWRhdGUuaWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { RouterModule } from '@angular/router';
|
|
3
|
-
import { SduiComponent } from './sdui.component';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/router";
|
|
6
|
-
const defaultRoutes = [{ path: 'sdui', component: SduiComponent }];
|
|
7
|
-
export class SduiRoutingModule {
|
|
8
|
-
static forChild(customPath) {
|
|
9
|
-
const routes = customPath
|
|
10
|
-
? [{ path: customPath, component: SduiComponent }]
|
|
11
|
-
: defaultRoutes;
|
|
12
|
-
return {
|
|
13
|
-
ngModule: SduiRoutingModule,
|
|
14
|
-
providers: [],
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SduiRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
18
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.14", ngImport: i0, type: SduiRoutingModule, imports: [i1.RouterModule], exports: [RouterModule] }); }
|
|
19
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SduiRoutingModule, imports: [RouterModule.forChild(defaultRoutes), RouterModule] }); }
|
|
20
|
-
}
|
|
21
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SduiRoutingModule, decorators: [{
|
|
22
|
-
type: NgModule,
|
|
23
|
-
args: [{
|
|
24
|
-
imports: [RouterModule.forChild(defaultRoutes)],
|
|
25
|
-
exports: [RouterModule],
|
|
26
|
-
}]
|
|
27
|
-
}] });
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2R1aS1yb3V0aW5nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvc2R1aS9zcmMvbGliL3NkdWktcm91dGluZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7O0FBRWpELE1BQU0sYUFBYSxHQUFXLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsQ0FBQyxDQUFDO0FBTTNFLE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFtQjtRQUNqQyxNQUFNLE1BQU0sR0FBRyxVQUFVO1lBQ3ZCLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLENBQUM7WUFDbEQsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUVsQixPQUFPO1lBQ0wsUUFBUSxFQUFFLGlCQUFpQjtZQUMzQixTQUFTLEVBQUUsRUFBRTtTQUNkLENBQUM7SUFDSixDQUFDOytHQVZVLGlCQUFpQjtnSEFBakIsaUJBQWlCLHdDQUZsQixZQUFZO2dIQUVYLGlCQUFpQixZQUhsQixZQUFZLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxFQUNwQyxZQUFZOzs0RkFFWCxpQkFBaUI7a0JBSjdCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztvQkFDL0MsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlLCBNb2R1bGVXaXRoUHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUsIFJvdXRlcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTZHVpQ29tcG9uZW50IH0gZnJvbSAnLi9zZHVpLmNvbXBvbmVudCc7XG5cbmNvbnN0IGRlZmF1bHRSb3V0ZXM6IFJvdXRlcyA9IFt7IHBhdGg6ICdzZHVpJywgY29tcG9uZW50OiBTZHVpQ29tcG9uZW50IH1dO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbUm91dGVyTW9kdWxlLmZvckNoaWxkKGRlZmF1bHRSb3V0ZXMpXSxcbiAgZXhwb3J0czogW1JvdXRlck1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNkdWlSb3V0aW5nTW9kdWxlIHtcbiAgc3RhdGljIGZvckNoaWxkKGN1c3RvbVBhdGg/OiBzdHJpbmcpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFNkdWlSb3V0aW5nTW9kdWxlPiB7XG4gICAgY29uc3Qgcm91dGVzID0gY3VzdG9tUGF0aFxuICAgICAgPyBbeyBwYXRoOiBjdXN0b21QYXRoLCBjb21wb25lbnQ6IFNkdWlDb21wb25lbnQgfV1cbiAgICAgIDogZGVmYXVsdFJvdXRlcztcblxuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogU2R1aVJvdXRpbmdNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtdLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
2
|
-
import { ActivatedRoute } from '@angular/router';
|
|
3
|
-
import { UIScreenViewModel, SDUI_URL_PARAM, } from './core/view-models/uiscreen.viewmodel';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/router";
|
|
6
|
-
import * as i2 from "./core/view-models/uiscreen.viewmodel";
|
|
7
|
-
import * as i3 from "@angular/common";
|
|
8
|
-
import * as i4 from "./components/uiscreen/uiscreen.component";
|
|
9
|
-
export class SduiComponent {
|
|
10
|
-
constructor(route, viewModel) {
|
|
11
|
-
this.route = route;
|
|
12
|
-
this.viewModel = viewModel;
|
|
13
|
-
this.currentSduiUrl = null;
|
|
14
|
-
this.initialUrl = null;
|
|
15
|
-
}
|
|
16
|
-
ngOnInit() {
|
|
17
|
-
this.viewModel.currentUrl$.subscribe((url) => {
|
|
18
|
-
this.currentSduiUrl = url;
|
|
19
|
-
});
|
|
20
|
-
this.route.queryParams.subscribe((params) => {
|
|
21
|
-
const paramValue = params[SDUI_URL_PARAM];
|
|
22
|
-
const hasValidParam = this.validateParam(paramValue);
|
|
23
|
-
if (hasValidParam) {
|
|
24
|
-
console.debug('[SduiComponent] carregando sdui do parâmetro...');
|
|
25
|
-
this.viewModel.loadUIScreen(paramValue);
|
|
26
|
-
}
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
ngAfterViewInit() {
|
|
30
|
-
const paramValue = this.route.snapshot.queryParamMap.get(SDUI_URL_PARAM);
|
|
31
|
-
const hasValidParam = this.validateParam(paramValue);
|
|
32
|
-
if (!hasValidParam &&
|
|
33
|
-
this.initialUrl &&
|
|
34
|
-
this.currentSduiUrl !== this.initialUrl) {
|
|
35
|
-
console.debug('[SduiComponent] carregando initialUrl:', this.initialUrl);
|
|
36
|
-
this.viewModel.loadUIScreen(this.initialUrl);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
validateParam(paramValue) {
|
|
40
|
-
return !!paramValue && paramValue.trim() !== '';
|
|
41
|
-
}
|
|
42
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SduiComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.UIScreenViewModel }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
43
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: SduiComponent, isStandalone: false, selector: "edm-sdui", inputs: { initialUrl: "initialUrl" }, ngImport: i0, template: "<div class=\"sdui-container\">\n <edm-sdui-uiscreen *ngIf=\"currentSduiUrl\"></edm-sdui-uiscreen>\n</div>\n", styles: [":host{display:contents}.sdui-container{display:flex;flex-direction:column;min-height:100vh;width:100vw;position:relative}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.UIScreenComponent, selector: "edm-sdui-uiscreen" }] }); }
|
|
44
|
-
}
|
|
45
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SduiComponent, decorators: [{
|
|
46
|
-
type: Component,
|
|
47
|
-
args: [{ selector: 'edm-sdui', standalone: false, template: "<div class=\"sdui-container\">\n <edm-sdui-uiscreen *ngIf=\"currentSduiUrl\"></edm-sdui-uiscreen>\n</div>\n", styles: [":host{display:contents}.sdui-container{display:flex;flex-direction:column;min-height:100vh;width:100vw;position:relative}\n"] }]
|
|
48
|
-
}], ctorParameters: () => [{ type: i1.ActivatedRoute }, { type: i2.UIScreenViewModel }], propDecorators: { initialUrl: [{
|
|
49
|
-
type: Input
|
|
50
|
-
}] } });
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2R1aS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3NkdWkvc3JjL2xpYi9zZHVpLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnMvc2R1aS9zcmMvbGliL3NkdWkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLGNBQWMsR0FDZixNQUFNLHVDQUF1QyxDQUFDOzs7Ozs7QUFRL0MsTUFBTSxPQUFPLGFBQWE7SUFLeEIsWUFDVSxLQUFxQixFQUNyQixTQUE0QjtRQUQ1QixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixjQUFTLEdBQVQsU0FBUyxDQUFtQjtRQU50QyxtQkFBYyxHQUFrQixJQUFJLENBQUM7UUFFNUIsZUFBVSxHQUFrQixJQUFJLENBQUM7SUFLdkMsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUMzQyxJQUFJLENBQUMsY0FBYyxHQUFHLEdBQUcsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQzFDLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUUxQyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3JELElBQUksYUFBYSxFQUFFLENBQUM7Z0JBQ2xCLE9BQU8sQ0FBQyxLQUFLLENBQUMsaURBQWlELENBQUMsQ0FBQztnQkFDakUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDMUMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGVBQWU7UUFDYixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3pFLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFckQsSUFDRSxDQUFDLGFBQWE7WUFDZCxJQUFJLENBQUMsVUFBVTtZQUNmLElBQUksQ0FBQyxjQUFjLEtBQUssSUFBSSxDQUFDLFVBQVUsRUFDdkMsQ0FBQztZQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsd0NBQXdDLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3pFLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMvQyxDQUFDO0lBQ0gsQ0FBQztJQUVPLGFBQWEsQ0FBQyxVQUFlO1FBQ25DLE9BQU8sQ0FBQyxDQUFDLFVBQVUsSUFBSSxVQUFVLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ2xELENBQUM7K0dBMUNVLGFBQWE7bUdBQWIsYUFBYSwyR0NiMUIsOEdBR0E7OzRGRFVhLGFBQWE7a0JBTnpCLFNBQVM7K0JBQ0UsVUFBVSxjQUdSLEtBQUs7bUhBS1IsVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgQWZ0ZXJWaWV3SW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtcbiAgVUlTY3JlZW5WaWV3TW9kZWwsXG4gIFNEVUlfVVJMX1BBUkFNLFxufSBmcm9tICcuL2NvcmUvdmlldy1tb2RlbHMvdWlzY3JlZW4udmlld21vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZWRtLXNkdWknLFxuICB0ZW1wbGF0ZVVybDogJy4vc2R1aS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NkdWkuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG59KVxuZXhwb3J0IGNsYXNzIFNkdWlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICBjdXJyZW50U2R1aVVybDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgQElucHV0KCkgaW5pdGlhbFVybDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSB2aWV3TW9kZWw6IFVJU2NyZWVuVmlld01vZGVsXG4gICkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnZpZXdNb2RlbC5jdXJyZW50VXJsJC5zdWJzY3JpYmUoKHVybCkgPT4ge1xuICAgICAgdGhpcy5jdXJyZW50U2R1aVVybCA9IHVybDtcbiAgICB9KTtcblxuICAgIHRoaXMucm91dGUucXVlcnlQYXJhbXMuc3Vic2NyaWJlKChwYXJhbXMpID0+IHtcbiAgICAgIGNvbnN0IHBhcmFtVmFsdWUgPSBwYXJhbXNbU0RVSV9VUkxfUEFSQU1dO1xuXG4gICAgICBjb25zdCBoYXNWYWxpZFBhcmFtID0gdGhpcy52YWxpZGF0ZVBhcmFtKHBhcmFtVmFsdWUpO1xuICAgICAgaWYgKGhhc1ZhbGlkUGFyYW0pIHtcbiAgICAgICAgY29uc29sZS5kZWJ1ZygnW1NkdWlDb21wb25lbnRdIGNhcnJlZ2FuZG8gc2R1aSBkbyBwYXLDom1ldHJvLi4uJyk7XG4gICAgICAgIHRoaXMudmlld01vZGVsLmxvYWRVSVNjcmVlbihwYXJhbVZhbHVlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBwYXJhbVZhbHVlID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtTWFwLmdldChTRFVJX1VSTF9QQVJBTSk7XG4gICAgY29uc3QgaGFzVmFsaWRQYXJhbSA9IHRoaXMudmFsaWRhdGVQYXJhbShwYXJhbVZhbHVlKTtcblxuICAgIGlmIChcbiAgICAgICFoYXNWYWxpZFBhcmFtICYmXG4gICAgICB0aGlzLmluaXRpYWxVcmwgJiZcbiAgICAgIHRoaXMuY3VycmVudFNkdWlVcmwgIT09IHRoaXMuaW5pdGlhbFVybFxuICAgICkge1xuICAgICAgY29uc29sZS5kZWJ1ZygnW1NkdWlDb21wb25lbnRdIGNhcnJlZ2FuZG8gaW5pdGlhbFVybDonLCB0aGlzLmluaXRpYWxVcmwpO1xuICAgICAgdGhpcy52aWV3TW9kZWwubG9hZFVJU2NyZWVuKHRoaXMuaW5pdGlhbFVybCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZVBhcmFtKHBhcmFtVmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXBhcmFtVmFsdWUgJiYgcGFyYW1WYWx1ZS50cmltKCkgIT09ICcnO1xuICB9XG5cblxufVxuIiwiPGRpdiBjbGFzcz1cInNkdWktY29udGFpbmVyXCI+XG4gIDxlZG0tc2R1aS11aXNjcmVlbiAqbmdJZj1cImN1cnJlbnRTZHVpVXJsXCI+PC9lZG0tc2R1aS11aXNjcmVlbj5cbjwvZGl2PlxuIl19
|