@wavemaker/app-ng-runtime 12.0.0-next.45752 → 12.0.0-next.46502
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.
- app-ng-runtime/build-task/bundles/index.umd.js +53 -45
- app-ng-runtime/build-task/esm2022/basic/default/anchor/anchor.build.mjs +2 -2
- app-ng-runtime/build-task/esm2022/basic/default/html/html.build.mjs +2 -2
- app-ng-runtime/build-task/esm2022/basic/default/icon/icon.build.mjs +2 -2
- app-ng-runtime/build-task/esm2022/basic/default/label/label.build.mjs +2 -2
- app-ng-runtime/build-task/esm2022/basic/default/picture/picture.build.mjs +2 -2
- app-ng-runtime/build-task/esm2022/basic/default/spinner/spinner.build.mjs +2 -2
- app-ng-runtime/build-task/esm2022/basic/progress/progress-circle/progress-circle.build.mjs +7 -2
- app-ng-runtime/build-task/esm2022/basic/rich-text-editor/rich-text-editor.build.mjs +2 -2
- app-ng-runtime/build-task/esm2022/containers/accordion/accordion-pane/accordion-pane.build.mjs +2 -2
- app-ng-runtime/build-task/esm2022/containers/accordion/accordion.build.mjs +3 -3
- app-ng-runtime/build-task/esm2022/containers/tile/tile.build.mjs +2 -2
- app-ng-runtime/build-task/esm2022/containers/wizard/wizard.build.mjs +2 -2
- app-ng-runtime/build-task/esm2022/data/form/form-field/form-field.build.mjs +4 -4
- app-ng-runtime/build-task/esm2022/device/barcode-scanner/barcode-scanner.build.mjs +2 -2
- app-ng-runtime/build-task/esm2022/device/camera/camera.build.mjs +2 -2
- app-ng-runtime/build-task/esm2022/dialogs/alert-dialog/alert-dialog.build.mjs +2 -2
- app-ng-runtime/build-task/esm2022/input/calendar/calendar.build.mjs +2 -2
- app-ng-runtime/build-task/esm2022/input/chips/chips.build.mjs +2 -2
- app-ng-runtime/build-task/esm2022/input/color-picker/color-picker.build.mjs +3 -3
- app-ng-runtime/build-task/esm2022/input/currency/currency.build.mjs +3 -3
- app-ng-runtime/build-task/esm2022/input/default/button/button.build.mjs +2 -2
- app-ng-runtime/build-task/esm2022/input/default/button-group/button-group.build.mjs +2 -2
- app-ng-runtime/build-task/esm2022/input/default/switch/switch.build.mjs +2 -2
- app-ng-runtime/build-task/esm2022/input/file-upload/file-upload.build.mjs +6 -2
- app-ng-runtime/build-task/esm2022/page/footer/footer.build.mjs +2 -2
- app-ng-runtime/build-task/esm2022/page/header/header.build.mjs +2 -2
- app-ng-runtime/build-task/esm2022/page/layout.build.mjs +2 -2
- app-ng-runtime/build-task/esm2022/page/left-panel/left-panel.build.mjs +2 -2
- app-ng-runtime/build-task/esm2022/page/page.build.mjs +2 -2
- app-ng-runtime/build-task/esm2022/page/right-panel/right-panel.build.mjs +2 -2
- app-ng-runtime/build-task/esm2022/page/top-nav/top-nav.build.mjs +2 -2
- app-ng-runtime/build-task/fesm2022/index.mjs +53 -45
- app-ng-runtime/build-task/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/advanced/carousel/bundles/index.umd.js +1 -1
- app-ng-runtime/components/advanced/carousel/esm2022/carousel.animator.mjs +2 -2
- app-ng-runtime/components/advanced/carousel/fesm2022/index.mjs +1 -1
- app-ng-runtime/components/advanced/carousel/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/base/bundles/index.umd.js +1 -6
- app-ng-runtime/components/base/esm2022/pipes/custom-pipes.mjs +3 -3
- app-ng-runtime/components/base/esm2022/widgets/common/base/base.component.mjs +1 -6
- app-ng-runtime/components/base/fesm2022/index.mjs +1 -6
- app-ng-runtime/components/base/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/base/pipes/custom-pipes.d.ts +1 -1
- app-ng-runtime/components/basic/default/anchor/anchor.component.d.ts +1 -0
- app-ng-runtime/components/basic/default/audio/audio.component.d.ts +3 -0
- app-ng-runtime/components/basic/default/bundles/index.umd.js +39 -19
- app-ng-runtime/components/basic/default/esm2022/anchor/anchor.component.mjs +4 -4
- app-ng-runtime/components/basic/default/esm2022/anchor/anchor.props.mjs +2 -1
- app-ng-runtime/components/basic/default/esm2022/audio/audio.component.mjs +14 -6
- app-ng-runtime/components/basic/default/esm2022/audio/audio.props.mjs +2 -1
- app-ng-runtime/components/basic/default/esm2022/html/html.props.mjs +2 -1
- app-ng-runtime/components/basic/default/esm2022/icon/icon.component.mjs +6 -7
- app-ng-runtime/components/basic/default/esm2022/icon/icon.props.mjs +2 -1
- app-ng-runtime/components/basic/default/esm2022/iframe/iframe.component.mjs +3 -3
- app-ng-runtime/components/basic/default/esm2022/iframe/iframe.props.mjs +3 -2
- app-ng-runtime/components/basic/default/esm2022/label/label.props.mjs +1 -1
- app-ng-runtime/components/basic/default/esm2022/picture/picture.directive.mjs +2 -2
- app-ng-runtime/components/basic/default/esm2022/picture/picture.props.mjs +3 -1
- app-ng-runtime/components/basic/default/esm2022/spinner/spinner.props.mjs +3 -2
- app-ng-runtime/components/basic/default/esm2022/video/video.component.mjs +8 -4
- app-ng-runtime/components/basic/default/esm2022/video/video.props.mjs +2 -1
- app-ng-runtime/components/basic/default/fesm2022/index.mjs +39 -19
- app-ng-runtime/components/basic/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/basic/default/icon/icon.component.d.ts +1 -0
- app-ng-runtime/components/basic/default/iframe/iframe.component.d.ts +1 -0
- app-ng-runtime/components/basic/default/picture/picture.directive.d.ts +2 -1
- app-ng-runtime/components/basic/default/video/video.component.d.ts +2 -0
- app-ng-runtime/components/basic/progress/bundles/index.umd.js +17 -9
- app-ng-runtime/components/basic/progress/esm2022/progress-bar/progress-bar.component.mjs +9 -5
- app-ng-runtime/components/basic/progress/esm2022/progress-bar/progress-bar.props.mjs +2 -1
- app-ng-runtime/components/basic/progress/esm2022/progress-circle/progress-circle.component.mjs +8 -6
- app-ng-runtime/components/basic/progress/esm2022/progress-circle/progress-circle.props.mjs +2 -1
- app-ng-runtime/components/basic/progress/fesm2022/index.mjs +17 -9
- app-ng-runtime/components/basic/progress/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/basic/progress/progress-bar/progress-bar.component.d.ts +2 -0
- app-ng-runtime/components/basic/progress/progress-circle/progress-circle.component.d.ts +3 -1
- app-ng-runtime/components/basic/rich-text-editor/bundles/index.umd.js +2 -0
- app-ng-runtime/components/basic/rich-text-editor/esm2022/rich-text-editor.component.mjs +2 -1
- app-ng-runtime/components/basic/rich-text-editor/esm2022/rich-text-editor.props.mjs +2 -1
- app-ng-runtime/components/basic/rich-text-editor/fesm2022/index.mjs +2 -0
- app-ng-runtime/components/basic/rich-text-editor/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/basic/search/bundles/index.umd.js +16 -9
- app-ng-runtime/components/basic/search/esm2022/search.component.mjs +19 -13
- app-ng-runtime/components/basic/search/esm2022/search.props.mjs +2 -1
- app-ng-runtime/components/basic/search/fesm2022/index.mjs +16 -9
- app-ng-runtime/components/basic/search/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/basic/search/search.component.d.ts +4 -2
- app-ng-runtime/components/chart/bundles/index.umd.js +1 -0
- app-ng-runtime/components/chart/esm2022/chart.utils.mjs +2 -1
- app-ng-runtime/components/chart/fesm2022/index.mjs +1 -0
- app-ng-runtime/components/chart/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/containers/accordion/accordion-pane/accordion-pane.component.d.ts +1 -0
- app-ng-runtime/components/containers/accordion/bundles/index.umd.js +15 -9
- app-ng-runtime/components/containers/accordion/esm2022/accordion-pane/accordion-pane.component.mjs +13 -10
- app-ng-runtime/components/containers/accordion/esm2022/accordion.directive.mjs +4 -1
- app-ng-runtime/components/containers/accordion/fesm2022/index.mjs +15 -9
- app-ng-runtime/components/containers/accordion/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/containers/panel/bundles/index.umd.js +14 -14
- app-ng-runtime/components/containers/panel/esm2022/panel.component.mjs +15 -15
- app-ng-runtime/components/containers/panel/fesm2022/index.mjs +14 -14
- app-ng-runtime/components/containers/panel/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/containers/tabs/bundles/index.umd.js +2 -2
- app-ng-runtime/components/containers/tabs/esm2022/tabs.component.mjs +3 -3
- app-ng-runtime/components/containers/tabs/fesm2022/index.mjs +2 -2
- app-ng-runtime/components/containers/tabs/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/containers/wizard/bundles/index.umd.js +6 -6
- app-ng-runtime/components/containers/wizard/esm2022/wizard.component.mjs +7 -7
- app-ng-runtime/components/containers/wizard/fesm2022/index.mjs +6 -6
- app-ng-runtime/components/containers/wizard/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/list/bundles/index.umd.js +19 -11
- app-ng-runtime/components/data/list/esm2022/list-item.directive.mjs +10 -1
- app-ng-runtime/components/data/list/esm2022/list.component.mjs +12 -12
- app-ng-runtime/components/data/list/fesm2022/index.mjs +20 -12
- app-ng-runtime/components/data/list/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/live-table/bundles/index.umd.js +2 -2
- app-ng-runtime/components/data/live-table/esm2022/live-table.component.mjs +3 -3
- app-ng-runtime/components/data/live-table/fesm2022/index.mjs +2 -2
- app-ng-runtime/components/data/live-table/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/pagination/bundles/index.umd.js +2 -0
- app-ng-runtime/components/data/pagination/esm2022/pagination.component.mjs +3 -1
- app-ng-runtime/components/data/pagination/fesm2022/index.mjs +2 -0
- app-ng-runtime/components/data/pagination/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/table/bundles/index.umd.js +42 -8
- app-ng-runtime/components/data/table/esm2022/table-column/table-column.directive.mjs +14 -5
- app-ng-runtime/components/data/table/esm2022/table.component.mjs +28 -5
- app-ng-runtime/components/data/table/esm2022/table.props.mjs +3 -1
- app-ng-runtime/components/data/table/fesm2022/index.mjs +43 -9
- app-ng-runtime/components/data/table/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/table/table.component.d.ts +7 -0
- app-ng-runtime/components/dialogs/alert-dialog/bundles/index.umd.js +6 -4
- app-ng-runtime/components/dialogs/alert-dialog/esm2022/alert-dialog.component.mjs +7 -5
- app-ng-runtime/components/dialogs/alert-dialog/fesm2022/index.mjs +6 -4
- app-ng-runtime/components/dialogs/alert-dialog/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/confirm-dialog/bundles/index.umd.js +8 -5
- app-ng-runtime/components/dialogs/confirm-dialog/esm2022/confirm-dialog.component.mjs +9 -6
- app-ng-runtime/components/dialogs/confirm-dialog/fesm2022/index.mjs +8 -5
- app-ng-runtime/components/dialogs/confirm-dialog/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/default/bundles/index.umd.js +9 -3
- app-ng-runtime/components/dialogs/default/dialog-header/dialog-header.component.d.ts +2 -1
- app-ng-runtime/components/dialogs/default/esm2022/base-dialog.mjs +2 -1
- app-ng-runtime/components/dialogs/default/esm2022/dialog-header/dialog-header.component.mjs +9 -4
- app-ng-runtime/components/dialogs/default/fesm2022/index.mjs +9 -3
- app-ng-runtime/components/dialogs/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/design-dialog/bundles/index.umd.js +4 -4
- app-ng-runtime/components/dialogs/design-dialog/esm2022/dialog.component.mjs +5 -5
- app-ng-runtime/components/dialogs/design-dialog/fesm2022/index.mjs +4 -4
- app-ng-runtime/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/iframe-dialog/bundles/index.umd.js +9 -5
- app-ng-runtime/components/dialogs/iframe-dialog/esm2022/iframe-dialog.component.mjs +10 -6
- app-ng-runtime/components/dialogs/iframe-dialog/fesm2022/index.mjs +9 -5
- app-ng-runtime/components/dialogs/iframe-dialog/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/partial-dialog/bundles/index.umd.js +9 -5
- app-ng-runtime/components/dialogs/partial-dialog/esm2022/partial-dialog.component.mjs +10 -6
- app-ng-runtime/components/dialogs/partial-dialog/fesm2022/index.mjs +9 -5
- app-ng-runtime/components/dialogs/partial-dialog/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/calendar/bundles/index.umd.js +2 -4
- app-ng-runtime/components/input/calendar/esm2022/calendar.component.mjs +3 -5
- app-ng-runtime/components/input/calendar/fesm2022/index.mjs +2 -4
- app-ng-runtime/components/input/calendar/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/chips/bundles/index.umd.js +25 -7
- app-ng-runtime/components/input/chips/esm2022/chips.component.mjs +25 -8
- app-ng-runtime/components/input/chips/esm2022/chips.props.mjs +2 -1
- app-ng-runtime/components/input/chips/fesm2022/index.mjs +25 -7
- app-ng-runtime/components/input/chips/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/color-picker/bundles/index.umd.js +5 -3
- app-ng-runtime/components/input/color-picker/color-picker.component.d.ts +1 -0
- app-ng-runtime/components/input/color-picker/esm2022/color-picker.component.mjs +6 -5
- app-ng-runtime/components/input/color-picker/esm2022/color-picker.props.mjs +2 -1
- app-ng-runtime/components/input/color-picker/fesm2022/index.mjs +5 -3
- app-ng-runtime/components/input/color-picker/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/currency/bundles/index.umd.js +4 -3
- app-ng-runtime/components/input/currency/currency.component.d.ts +1 -0
- app-ng-runtime/components/input/currency/esm2022/currency.component.mjs +6 -6
- app-ng-runtime/components/input/currency/esm2022/currency.props.mjs +2 -1
- app-ng-runtime/components/input/currency/fesm2022/index.mjs +4 -3
- app-ng-runtime/components/input/currency/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/default/bundles/index.umd.js +171 -94
- app-ng-runtime/components/input/default/button/button.component.d.ts +1 -0
- app-ng-runtime/components/input/default/checkbox/checkbox.component.d.ts +1 -0
- app-ng-runtime/components/input/default/esm2022/base-form.component.mjs +3 -3
- app-ng-runtime/components/input/default/esm2022/button/button.component.mjs +1 -1
- app-ng-runtime/components/input/default/esm2022/button/button.props.mjs +2 -1
- app-ng-runtime/components/input/default/esm2022/caption-position.directive.mjs +8 -7
- app-ng-runtime/components/input/default/esm2022/checkbox/checkbox.component.mjs +7 -7
- app-ng-runtime/components/input/default/esm2022/checkbox/checkbox.props.mjs +2 -1
- app-ng-runtime/components/input/default/esm2022/checkboxset/checkboxset.component.mjs +21 -16
- app-ng-runtime/components/input/default/esm2022/number/number.component.mjs +5 -5
- app-ng-runtime/components/input/default/esm2022/number/number.props.mjs +3 -1
- app-ng-runtime/components/input/default/esm2022/radioset/radioset.component.mjs +28 -23
- app-ng-runtime/components/input/default/esm2022/select/select.component.mjs +7 -7
- app-ng-runtime/components/input/default/esm2022/select/select.props.mjs +2 -1
- app-ng-runtime/components/input/default/esm2022/switch/switch.component.mjs +6 -5
- app-ng-runtime/components/input/default/esm2022/switch/switch.props.mjs +2 -1
- app-ng-runtime/components/input/default/esm2022/text/calendar/input-calendar.component.mjs +5 -5
- app-ng-runtime/components/input/default/esm2022/text/calendar/input-calendar.props.mjs +2 -1
- app-ng-runtime/components/input/default/esm2022/text/color/input-color.component.mjs +5 -5
- app-ng-runtime/components/input/default/esm2022/text/color/input-color.props.mjs +2 -1
- app-ng-runtime/components/input/default/esm2022/text/email/input-email.component.mjs +5 -5
- app-ng-runtime/components/input/default/esm2022/text/email/input-email.props.mjs +2 -1
- app-ng-runtime/components/input/default/esm2022/text/locale/number-locale.mjs +66 -13
- app-ng-runtime/components/input/default/esm2022/text/number/input-number.component.mjs +5 -5
- app-ng-runtime/components/input/default/esm2022/text/number/input-number.props.mjs +2 -1
- app-ng-runtime/components/input/default/esm2022/text/text/input-text.component.mjs +5 -5
- app-ng-runtime/components/input/default/esm2022/text/text/input-text.props.mjs +2 -1
- app-ng-runtime/components/input/default/esm2022/textarea/textarea.component.mjs +6 -6
- app-ng-runtime/components/input/default/esm2022/textarea/textarea.props.mjs +2 -1
- app-ng-runtime/components/input/default/fesm2022/index.mjs +171 -94
- app-ng-runtime/components/input/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/default/number/number.component.d.ts +1 -0
- app-ng-runtime/components/input/default/select/select.component.d.ts +2 -0
- app-ng-runtime/components/input/default/text/calendar/input-calendar.component.d.ts +1 -0
- app-ng-runtime/components/input/default/text/color/input-color.component.d.ts +1 -0
- app-ng-runtime/components/input/default/text/email/input-email.component.d.ts +1 -0
- app-ng-runtime/components/input/default/text/locale/number-locale.d.ts +1 -0
- app-ng-runtime/components/input/default/text/number/input-number.component.d.ts +1 -0
- app-ng-runtime/components/input/default/text/text/input-text.component.d.ts +1 -0
- app-ng-runtime/components/input/default/textarea/textarea.component.d.ts +1 -0
- app-ng-runtime/components/input/epoch/base-date-time.component.d.ts +2 -1
- app-ng-runtime/components/input/epoch/bundles/index.umd.js +28 -21
- app-ng-runtime/components/input/epoch/date/date.component.d.ts +1 -0
- app-ng-runtime/components/input/epoch/date-time/date-time.component.d.ts +2 -1
- app-ng-runtime/components/input/epoch/esm2022/base-date-time.component.mjs +10 -6
- app-ng-runtime/components/input/epoch/esm2022/date/date.component.mjs +8 -8
- app-ng-runtime/components/input/epoch/esm2022/date/date.props.mjs +2 -1
- app-ng-runtime/components/input/epoch/esm2022/date-time/date-time.component.mjs +9 -9
- app-ng-runtime/components/input/epoch/esm2022/date-time/date-time.props.mjs +2 -1
- app-ng-runtime/components/input/epoch/esm2022/time/time.component.mjs +7 -7
- app-ng-runtime/components/input/epoch/esm2022/time/time.props.mjs +2 -1
- app-ng-runtime/components/input/epoch/fesm2022/index.mjs +25 -18
- app-ng-runtime/components/input/epoch/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/epoch/time/time.component.d.ts +1 -0
- app-ng-runtime/components/input/file-upload/bundles/index.umd.js +224 -121
- app-ng-runtime/components/input/file-upload/esm2022/file-upload.component.mjs +220 -123
- app-ng-runtime/components/input/file-upload/esm2022/file-upload.props.mjs +7 -1
- app-ng-runtime/components/input/file-upload/fesm2022/index.mjs +225 -122
- app-ng-runtime/components/input/file-upload/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/file-upload/file-upload.component.d.ts +18 -11
- app-ng-runtime/components/input/rating/bundles/index.umd.js +2 -2
- app-ng-runtime/components/input/rating/esm2022/rating.component.mjs +3 -3
- app-ng-runtime/components/input/rating/fesm2022/index.mjs +2 -2
- app-ng-runtime/components/input/rating/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/slider/bundles/index.umd.js +5 -6
- app-ng-runtime/components/input/slider/esm2022/slider.component.mjs +6 -8
- app-ng-runtime/components/input/slider/esm2022/slider.props.mjs +2 -1
- app-ng-runtime/components/input/slider/fesm2022/index.mjs +5 -6
- app-ng-runtime/components/input/slider/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/slider/slider.component.d.ts +1 -0
- app-ng-runtime/components/navigation/breadcrumb/bundles/index.umd.js +6 -6
- app-ng-runtime/components/navigation/breadcrumb/esm2022/breadcrumb.component.mjs +7 -7
- app-ng-runtime/components/navigation/breadcrumb/fesm2022/index.mjs +6 -6
- app-ng-runtime/components/navigation/breadcrumb/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/navigation/menu/bundles/index.umd.js +8 -6
- app-ng-runtime/components/navigation/menu/esm2022/menu.component.mjs +8 -7
- app-ng-runtime/components/navigation/menu/esm2022/menu.props.mjs +2 -1
- app-ng-runtime/components/navigation/menu/fesm2022/index.mjs +8 -6
- app-ng-runtime/components/navigation/menu/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/navigation/menu/menu.component.d.ts +1 -0
- app-ng-runtime/components/navigation/popover/bundles/index.umd.js +121 -13
- app-ng-runtime/components/navigation/popover/esm2022/popover.component.mjs +122 -15
- app-ng-runtime/components/navigation/popover/esm2022/popover.props.mjs +2 -1
- app-ng-runtime/components/navigation/popover/fesm2022/index.mjs +121 -13
- app-ng-runtime/components/navigation/popover/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/navigation/popover/popover.component.d.ts +15 -3
- app-ng-runtime/components/page/default/bundles/index.umd.js +2 -1
- app-ng-runtime/components/page/default/esm2022/page.props.mjs +4 -3
- app-ng-runtime/components/page/default/fesm2022/index.mjs +2 -1
- app-ng-runtime/components/page/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/page/footer/bundles/index.umd.js +2 -1
- app-ng-runtime/components/page/footer/esm2022/footer.props.mjs +3 -2
- app-ng-runtime/components/page/footer/fesm2022/index.mjs +2 -1
- app-ng-runtime/components/page/footer/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/page/header/bundles/index.umd.js +2 -1
- app-ng-runtime/components/page/header/esm2022/header.props.mjs +3 -2
- app-ng-runtime/components/page/header/fesm2022/index.mjs +2 -1
- app-ng-runtime/components/page/header/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/page/left-panel/bundles/index.umd.js +2 -1
- app-ng-runtime/components/page/left-panel/esm2022/left-panel.props.mjs +3 -2
- app-ng-runtime/components/page/left-panel/fesm2022/index.mjs +2 -1
- app-ng-runtime/components/page/left-panel/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/page/right-panel/bundles/index.umd.js +2 -1
- app-ng-runtime/components/page/right-panel/esm2022/right-panel.props.mjs +3 -2
- app-ng-runtime/components/page/right-panel/fesm2022/index.mjs +2 -1
- app-ng-runtime/components/page/right-panel/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/page/top-nav/bundles/index.umd.js +2 -1
- app-ng-runtime/components/page/top-nav/esm2022/top-nav.props.mjs +3 -2
- app-ng-runtime/components/page/top-nav/fesm2022/index.mjs +2 -1
- app-ng-runtime/components/page/top-nav/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/core/bundles/index.umd.js +15 -13
- app-ng-runtime/core/esm2022/public_api.mjs +2 -2
- app-ng-runtime/core/esm2022/utils/build-utils.mjs +7 -7
- app-ng-runtime/core/esm2022/utils/utils.mjs +4 -5
- app-ng-runtime/core/fesm2022/index.mjs +11 -11
- app-ng-runtime/core/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/core/public_api.d.ts +1 -1
- app-ng-runtime/core/utils/utils.d.ts +1 -1
- app-ng-runtime/mobile/components/device/barcode-scanner/bundles/index.umd.js +2 -1
- app-ng-runtime/mobile/components/device/barcode-scanner/esm2022/barcode-scanner.props.mjs +3 -2
- app-ng-runtime/mobile/components/device/barcode-scanner/fesm2022/index.mjs +2 -1
- app-ng-runtime/mobile/components/device/barcode-scanner/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/device/camera/bundles/index.umd.js +2 -1
- app-ng-runtime/mobile/components/device/camera/esm2022/camera.props.mjs +3 -2
- app-ng-runtime/mobile/components/device/camera/fesm2022/index.mjs +2 -1
- app-ng-runtime/mobile/components/device/camera/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/package.json +1 -1
- app-ng-runtime/runtime/base/bundles/index.umd.js +6 -4
- app-ng-runtime/runtime/base/components/app-component/app.component.d.ts +2 -3
- app-ng-runtime/runtime/base/esm2022/components/app-component/app.component.mjs +5 -5
- app-ng-runtime/runtime/base/esm2022/guards/can-deactivate-page.guard.mjs +5 -4
- app-ng-runtime/runtime/base/fesm2022/index.mjs +6 -4
- app-ng-runtime/runtime/base/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/runtime/base/guards/can-deactivate-page.guard.d.ts +2 -1
- app-ng-runtime/scripts/datatable/datatable.js +32 -31
- app-ng-runtime/variables/bundles/index.umd.js +34 -16
- app-ng-runtime/variables/esm2022/manager/variable/web-socket-variable.manager.mjs +35 -17
- app-ng-runtime/variables/fesm2022/index.mjs +34 -16
- app-ng-runtime/variables/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/variables/manager/variable/web-socket-variable.manager.d.ts +0 -4
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../../projects/runtime-base/src/types/types.ts","../../../../projects/runtime-base/src/services/app.manager.service.ts","../../../../projects/runtime-base/src/util/utils.ts","../../../../projects/runtime-base/src/services/prefab-manager.service.ts","../../../../projects/runtime-base/src/util/fragment-monitor.ts","../../../../projects/runtime-base/src/components/base-partial.component.ts","../../../../projects/runtime-base/src/util/wm-route-reuse-strategy.ts","../../../../projects/runtime-base/src/components/base-page.component.ts","../../../../projects/runtime-base/src/components/base-prefab.component.ts","../../../../projects/runtime-base/src/components/base-layout.component.ts","../../../../projects/runtime-base/src/components/base-spa-page.component.ts","../../../../projects/runtime-base/src/directives/accessroles.directive.ts","../../../../projects/runtime-base/src/components/app-spinner.component.ts","../../../../projects/runtime-base/src/components/custom-toaster.component.ts","../../../../projects/runtime-base/src/components/empty-component/empty-page.component.ts","../../../../projects/runtime-base/src/directives/prefab.directive.ts","../../../../projects/runtime-base/src/services/pipe-provider.service.ts","../../../../projects/runtime-base/src/services/pipe.service.ts","../../../../projects/runtime-base/src/services/app.service.ts","../../../../projects/runtime-base/src/services/toaster.service.ts","../../../../projects/runtime-base/src/services/i18n.service.ts","../../../../projects/runtime-base/src/services/spinner.service.ts","../../../../projects/runtime-base/src/services/navigation.service.ts","../../../../projects/runtime-base/src/services/app-defaults.service.ts","../../../../projects/runtime-base/src/guards/auth.guard.ts","../../../../projects/runtime-base/src/guards/role.guard.ts","../../../../projects/runtime-base/src/guards/page-not-found.guard.ts","../../../../projects/runtime-base/src/resolves/app-js.resolve.ts","../../../../projects/runtime-base/src/resolves/app-extension.resolve.ts","../../../../projects/runtime-base/src/resolves/i18n.resolve.ts","../../../../projects/runtime-base/src/components/app-component/app.component.html","../../../../projects/runtime-base/src/components/app-component/app.component.ts","../../../../projects/runtime-base/src/services/http-interceptor.services.ts","../../../../projects/runtime-base/src/components/prefab-preview.component.ts","../../../../projects/runtime-base/src/services/dynamic-component-ref-provider.service.ts","../../../../projects/runtime-base/src/guards/can-deactivate-page.guard.ts","../../../../projects/runtime-base/src/overrides/wm_shared_styles_host.ts","../../../../projects/runtime-base/src/overrides/wm_dom_renderer.ts","../../../../projects/runtime-base/src/runtime-base.module.ts","../../../../projects/runtime-base/src/resolves/app-variables.resolve.ts","../../../../projects/runtime-base/src/resolves/metadata.resolve.ts","../../../../projects/runtime-base/src/resolves/security-config.resolve.ts","../../../../projects/runtime-base/src/index.ts"],"sourcesContent":["export enum ComponentType {\n PAGE,\n PREFAB,\n PARTIAL\n}\n\nexport abstract class ComponentRefProvider {\n abstract getComponentFactoryRef(componentName: string, componentType: ComponentType): Promise<any>;\n clearComponentFactoryRefCache(): void {};\n}\n\nexport abstract class PrefabConfigProvider {\n abstract getConfig(prefabName: string): Promise<any>;\n}\n\nexport abstract class AppJSProvider {\n abstract getAppScriptFn(): Promise<Function>;\n}\n\nexport abstract class AppVariablesProvider {\n abstract getAppVariables(): Promise<any>;\n}\nexport abstract class AppExtensionProvider {\n abstract loadFormatterConfigScript(callback:Function): void;\n}\n\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { DatePipe } from '@angular/common';\n\nimport {\n AbstractDialogService,\n AbstractHttpService,\n AbstractI18nService,\n AbstractSpinnerService,\n App,\n fetchContent,\n isDefined,\n triggerFn,\n $appDigest\n} from '@wm/core';\nimport { SecurityService } from '@wm/security';\nimport { CONSTANTS, $rootScope, routerService, MetadataService, VariablesService } from '@wm/variables';\nimport {extend, forEach, get, isEmpty, isObject, isUndefined, merge, trim} from \"lodash-es\";\n\nenum POST_MESSAGES {\n HIDE_TEMPLATES_SHOW_CASE = 'hide-templates-show-case',\n SHOW_TEMPLATES_SHOW_CASE = 'show-templates-show-case',\n UPDATE_LOCATION = 'update-location-path',\n SELECT_TEMPLATE = 'select-template',\n TEMPLATEBUNDLE_CONFIG = 'template-bundle-config',\n ON_LOAD = 'on-load'\n}\n\n@Injectable()\nexport class AppManagerService {\n static readonly SERVICE_NAME = 'AppManagerService';\n\n private appVariablesLoaded = false;\n private appVariablesFired = false;\n private _noRedirect = false;\n private templates: Array<any>;\n private lastLoggedUserId;\n\n constructor(\n private $http: AbstractHttpService,\n private $security: SecurityService,\n private $dialog: AbstractDialogService,\n private $router: Router,\n private $app: App,\n private $variables: VariablesService,\n private $metadata: MetadataService,\n private $spinner: AbstractSpinnerService,\n private $i18n: AbstractI18nService,\n private $datePipe: DatePipe,\n ) {\n // register method to invoke on session timeout\n this.$http.registerOnSessionTimeout(this.handle401.bind(this));\n\n this.$variables.registerDependency('appManager', this);\n\n this.$app.subscribe('toggle-variable-state', (data) => {\n const variable = data.variable,\n active = data.active;\n if (!isEmpty(trim(variable.spinnerContext))) {\n if (active) {\n let spinnerExists;\n // WMS-21117 : Do not trigger spinner, if the current variable is same as spinner which is in context\n if (variable._spinnerId && variable._spinnerId.length) {\n forEach(variable._spinnerId, (item) => {\n if (item.slice(0, item.lastIndexOf('_')) === variable._id && (this.$spinner as any).messagesByContext && (this.$spinner as any).messagesByContext[variable.spinnerContext] &&\n (variable.spinnerMessage === (this.$spinner as any).messagesByContext[variable.spinnerContext][\"finalMessage\"] || variable.spinnerMessage === (this.$spinner as any).messagesByContext[variable.spinnerContext][item])) {\n spinnerExists = true;\n return;\n }\n });\n }\n if (!spinnerExists) {\n variable._spinnerId = variable._spinnerId || [];\n const spinnerId = this.$spinner.show(variable.spinnerMessage,\n variable._id + '_' + Date.now(),\n variable.spinnerclass,\n variable.spinnerContext);\n variable._spinnerId.push(spinnerId);\n }\n } else {\n this.$spinner.hide(variable._spinnerId.shift());\n }\n }\n });\n this.$app.subscribe('userLoggedIn', () => {\n this.setLandingPage();\n if (this.lastLoggedUserId) {\n this.$security.getConfig(config => {\n if(config && config.userInfo.userId !== this.lastLoggedUserId) {\n this.$app.clearPageCache();\n }\n }, null);\n }\n });\n this.$app.subscribe('userLoggedOut', () => this.setLandingPage().then(() => {\n this.$app.clearPageCache();\n }));\n this.$app.subscribe('http401', (d = {}) => this.handle401(d.page, d.options));\n }\n\n /**\n * On session timeout, if the session timeout config is set to a dialog, then open login dialog\n */\n private showLoginDialog() {\n this.$spinner.hide('globalSpinner');\n // Removing the close all dialogs call, so the existing dialogs remain open and\n // the login dialog comes on top of it.\n this.$dialog.open('CommonLoginDialog');\n // Since the login dialog is closed and opened its updated property isn't read by angular.\n // Hence we trigger the digest cycle\n $appDigest();\n }\n\n loadAppJS() {\n\n }\n\n loadCommonPage() {\n\n }\n\n loadSecurityConfig(forceFlag?: boolean) {\n return this.$security.load(forceFlag).then((r) => {\n if (!this.$app.landingPageName) {\n this.setLandingPage();\n }\n return r;\n });\n }\n\n loadMetadata() {\n return this.$metadata.load();\n }\n\n loadAppVariables(variables?: any) {\n if (this.appVariablesLoaded) {\n return Promise.resolve();\n }\n\n const init = response => {\n const data = this.$variables.register('app', response, this.$app);\n // not assigning directly to this.$app to keep the reference in tact\n extend(this.$app.Variables, data.Variables);\n extend(this.$app.Actions, data.Actions);\n this.updateLoggedInUserVariable();\n this.updateSupportedLocaleVariable();\n this.appVariablesLoaded = true;\n this.appVariablesFired = false;\n };\n\n if (isDefined(variables)) {\n init(variables);\n return Promise.resolve();\n }\n\n return this.$http.get('./app.variables.json').then(response => init(response));\n }\n\n /**\n * getter and setter for the property appVariablesFired\n * this flag determines if the app variables(with startUpdate:true) have been fired\n * they should get fired only once through app lifecycle\n * @param {boolean} isFired\n * @returns {boolean}\n */\n isAppVariablesFired(isFired?: boolean) {\n if (isDefined(isFired)) {\n this.appVariablesFired = isFired;\n }\n return this.appVariablesFired;\n }\n\n private clearLoggedInUserVariable(variable) {\n variable.isAuthenticated = false;\n variable.roles = [];\n variable.name = undefined;\n variable.id = undefined;\n variable.tenantId = undefined;\n }\n\n private updateLoggedInUserVariable() {\n const loggedInUser = get(this.$app, 'Variables.loggedInUser.dataSet');\n\n // sanity check\n if (!loggedInUser) {\n return;\n }\n return this.$security.load().then(() => {\n const securityConfig = this.$security.get();\n if (securityConfig && securityConfig.securityEnabled && securityConfig.authenticated) {\n loggedInUser.isAuthenticated = securityConfig.authenticated;\n loggedInUser.roles = securityConfig.userInfo.userRoles;\n loggedInUser.name = securityConfig.userInfo.userName;\n loggedInUser.id = securityConfig.userInfo.userId;\n loggedInUser.tenantId = securityConfig.userInfo.tenantId;\n loggedInUser.userAttributes = securityConfig.userInfo.userAttributes; // assign the extra userAttributes for custom usage.\n } else {\n this.clearLoggedInUserVariable(loggedInUser);\n loggedInUser.isSecurityEnabled = securityConfig && securityConfig.securityEnabled;\n throw null;\n }\n return securityConfig;\n }).catch(err => {\n loggedInUser.isAuthenticated = false;\n loggedInUser.roles = [];\n loggedInUser.name = undefined;\n loggedInUser.id = undefined;\n loggedInUser.tenantId = undefined;\n loggedInUser.userAttributes = {};\n });\n }\n\n /**\n * Overriding the app variable supported locale with the wmProperties i18n DataValues\n *\n * TODO[Vibhu]:\n * Can write a simple migration to sync the supportedLocale variable with '_WM_APP_PROPERTIES.supportedLanguages'\n * Hence, this may not be required\n *\n */\n updateSupportedLocaleVariable() {\n const supportedLocaleVar = get(this.$app, 'Variables.supportedLocale');\n }\n\n handleSSOLogin(config) {\n const SSO_URL = 'services/security/ssologin',\n PREVIEW_WINDOW_NAME = 'WM_PREVIEW_WINDOW';\n let page,\n pageParams;\n\n // do not provide redirectTo page if fetching HOME page resulted 401\n // on app load, by default Home page is loaded\n page = this.$security.getRedirectPage(config);\n\n if (CONSTANTS.hasCordova) {\n // get previously loggedInUser name (if any)\n const lastLoggedInUsername = get(this.$security.get(), 'userInfo.userName');\n this.$security.authInBrowser()\n .then(() => this.reloadAppData())\n .then(() => {\n const presentLoggedInUsername = get(this.$security.get(), 'userInfo.userName');\n if (presentLoggedInUsername && presentLoggedInUsername === lastLoggedInUsername) {\n routerService.navigate([page]);\n } else {\n routerService.navigate([`/`]);\n }\n });\n } else {\n page = page ? '?redirectPage=' + encodeURIComponent(page) : '';\n pageParams = this.$security.getQueryString(this.$security.getRedirectedRouteQueryParams());\n pageParams = pageParams ? '?' + pageParams : '';\n // showing a redirecting message\n document.body.textContent = get(this.getAppLocale(), ['MESSAGE_LOGIN_REDIRECTION']) || 'Redirecting to sso login...';\n // appending redirect to page and page params\n const ssoUrl = this.getDeployedURL() + SSO_URL + page + pageParams;\n /*\n * remove iFrame when redirected to IdP login page.\n * this is being done as IDPs do not allow to get themselves loaded into iFrames.\n * remove-toolbar has been assigned with a window name WM_PREVIEW_WINDOW, check if the iframe is our toolbar related and\n * safely change the location of the parent toolbar with current url.\n */\n if (window.self !== window.top) {\n try {\n if (window.parent && window.location.origin === window.parent.origin){\n if(window.parent.name === PREVIEW_WINDOW_NAME) {\n window.parent.location.href = window.self.location.href;\n window.parent.name = \"\"\n }\n } else {\n window.location.href = ssoUrl\n }\n } catch (error) {\n window.location.href = ssoUrl;\n }\n } else {\n window.location.href = ssoUrl;\n }\n }\n }\n\n /**\n * Handles the app when a XHR request returns 401 response\n * If no user was logged in before 401 occurred, First time Login is simulated\n * Else, a session timeout has occurred and the same is simulated\n * @param page if provided, represents the page name for which XHR request returned 401, on re-login\n * if not provided, a service request returned 401\n * @param onSuccess success handler\n * @param onError error handler\n */\n handle401(page?, options?) {\n let sessionTimeoutConfig,\n sessionTimeoutMethod,\n loginConfig,\n loginMethod;\n const LOGIN_METHOD = {\n 'DIALOG' : 'DIALOG',\n 'PAGE' : 'PAGE',\n 'SSO' : 'SSO'\n };\n\n const config = this.$security.get();\n let queryParamsObj = {};\n loginConfig = config.loginConfig;\n this.lastLoggedUserId = config.userInfo && config.userInfo.userId;\n // if user found, 401 was thrown after session time\n if (config.userInfo && config.userInfo.userName) {\n config.authenticated = false;\n sessionTimeoutConfig = loginConfig.sessionTimeout || {'type': LOGIN_METHOD.DIALOG};\n sessionTimeoutMethod = sessionTimeoutConfig.type.toUpperCase();\n switch (sessionTimeoutMethod) {\n case LOGIN_METHOD.DIALOG:\n this.showLoginDialog();\n break;\n case LOGIN_METHOD.PAGE:\n if (!page) {\n page = this.$security.getCurrentRoutePage();\n }\n queryParamsObj['redirectTo'] = page;\n // Adding query params(page params of page being redirected to) to the URL.\n queryParamsObj = merge(queryParamsObj, this.$security.getRedirectedRouteQueryParams());\n // the redirect page should not be same as session timeout login page\n if ( page !== sessionTimeoutConfig.pageName) {\n this.$router.navigate([sessionTimeoutConfig.pageName], {queryParams: queryParamsObj});\n }\n break;\n case LOGIN_METHOD.SSO:\n this.handleSSOLogin(config);\n break;\n }\n this.setLandingPage();\n } else {\n // if no user found, 401 was thrown for first time login\n loginMethod = loginConfig.type.toUpperCase();\n switch (loginMethod) {\n case LOGIN_METHOD.DIALOG:\n // Through loginDialog, user will remain in the current state and failed calls will be executed post login through LoginVariableService.\n // NOTE: user will be redirected to respective landing page only if dialog is opened manually(not through a failed 401 call).\n this.noRedirect(true);\n this.showLoginDialog();\n break;\n case LOGIN_METHOD.PAGE:\n // do not provide redirectTo page if fetching HOME page resulted 401\n // on app load, by default Home page is loaded\n page = this.$security.getRedirectPage(config, page);\n queryParamsObj['redirectTo'] = page;\n const extraQueryParams = (options && options.queryParams) || this.$security.getRedirectedRouteQueryParams();\n queryParamsObj = merge(queryParamsObj, extraQueryParams);\n this.$router.navigate([loginConfig.pageName], {queryParams: queryParamsObj});\n this.$app.landingPageName = loginConfig.pageName;\n break;\n case LOGIN_METHOD.SSO:\n this.handleSSOLogin(config);\n break;\n }\n }\n }\n\n /**\n * Updates data dependent on logged in user\n * Reloads security config, metadata\n * Updates the loggedInUserVariable\n * @returns {Promise<void>}\n */\n reloadAppData() {\n return this.loadSecurityConfig(true).then(() => {\n return this.loadMetadata().then(() => {\n return this.updateLoggedInUserVariable();\n });\n });\n }\n\n noRedirect(value?: boolean) {\n if (isUndefined(value)) {\n return this._noRedirect;\n }\n\n this._noRedirect = value;\n return this._noRedirect;\n }\n\n /**\n * invokes session failure requests\n */\n executeSessionFailureRequests() {\n this.$http.executeSessionFailureRequests();\n }\n\n pushToSessionFailureRequests(callback) {\n this.$http.pushToSessionFailureQueue(callback);\n }\n\n public getDeployedURL() {\n return this.$app.deployedUrl ? this.$app.deployedUrl : $rootScope.project.deployedUrl;\n }\n\n /**\n * Fetches the customurlscheme for a mobile app\n * which is used for redirection back to the app from browser in implicit oAuth flow\n * @returns {string}\n */\n public getCustomUrlScheme() {\n return this.$app.customUrlScheme;\n }\n\n notify(eventName, data) {\n this.$app.notify(eventName, data);\n }\n\n subscribe(eventName, data) {\n return this.$app.subscribe(eventName, data);\n }\n\n getActivePage() {\n return this.$app.activePage;\n }\n\n getAppLocale() {\n return this.$app.appLocale;\n }\n\n getSelectedLocale() {\n return this.$i18n.getSelectedLocale();\n }\n\n notifyApp(template, type, title?) {\n this.$app.notifyApp(template, type, title);\n }\n\n /**\n * Triggers the onBeforeService method defined in app.js of the app\n * @param requestParams\n */\n appOnBeforeServiceCall(requestParams: any) {\n return triggerFn(this.$app.onBeforeServiceCall, requestParams);\n }\n\n /**\n * Triggers the onServiceSuccess method defined in app.js of the app\n * @param data\n * @param xhrObj\n */\n appOnServiceSuccess(data: any, xhrObj: any) {\n return triggerFn(this.$app.onServiceSuccess, data, xhrObj);\n }\n\n /**\n * Triggers the onServiceError method defined in app.js of the app\n * @param data\n * @param xhrOb\n */\n appOnServiceError(data: any, xhrOb?: any) {\n return triggerFn(this.$app.onServiceError, data, xhrOb);\n }\n\n /**\n * Triggers the appVariablesReady method defined in app.js of the app\n */\n appVariablesReady() {\n triggerFn(this.$app.onAppVariablesReady);\n }\n\n /**\n * Triggers the onBeforeAppReady method defined in app.js of the app\n */\n beforeAppReady() {\n triggerFn(this.$app.onBeforeAppReady);\n }\n\n /**\n * Returns the pipe based on the input\n */\n getPipe(pipe) {\n if (pipe === 'date') {\n return this.$datePipe;\n }\n }\n\n private setLandingPage() {\n return this.$security.getPageByLoggedInUser().then(p => this.$app.landingPageName = <string> p);\n }\n\n /**\n * return true if prefab type app\n * @returns {boolean}\n */\n isPrefabType() {\n return this.$app.isPrefabType;\n }\n\n /**\n * return true if template bundle type app\n * @returns {boolean}\n */\n isTemplateBundleType() {\n return this.$app.isTemplateBundleType;\n }\n\n postMessage(content) {\n window.top.postMessage(content, '*');\n }\n\n showTemplate(idx) {\n const template = this.templates[idx];\n // scope.activeTemplateIndex = idx;\n this.$router.navigate([template.id]);\n }\n postTemplateBundleInfo() {\n\n window.onmessage = (evt) => {\n const msgData = evt.data;\n\n if (!isObject(msgData)) {\n return;\n }\n\n // @ts-ignore\n const key = msgData.key;\n\n switch (key) {\n case POST_MESSAGES.HIDE_TEMPLATES_SHOW_CASE:\n // scope.hideShowCase = true;\n break;\n case POST_MESSAGES.SELECT_TEMPLATE:\n // @ts-ignore\n this.showTemplate(msgData.templateIndex);\n break;\n }\n };\n\n setTimeout(() => {\n this.postMessage({key: POST_MESSAGES.ON_LOAD});\n });\n\n return fetchContent('json', './config.json', true, response => {\n this.templates = [];\n if (!response.error) {\n this.templates = response.templates;\n this.postMessage({'key': POST_MESSAGES.TEMPLATEBUNDLE_CONFIG, 'config': response});\n }\n });\n }\n\n postAppTypeInfo() {\n if (this.isTemplateBundleType()) {\n return this.postTemplateBundleInfo();\n }\n }\n}\n","export const isPrefabInPreview = (prefabName: string) => prefabName === '__self__';\n\nexport const getPrefabBaseUrl = (prefabName: string) => isPrefabInPreview(prefabName) ? '.' : `app/prefabs/${prefabName}`;\n\nexport const getPrefabConfigUrl = (prefabName: string) => `${getPrefabBaseUrl(prefabName)}/config.json`;\n\nexport const getPrefabMinJsonUrl = (prefabName: string) => `${getPrefabBaseUrl(prefabName)}/pages/Main/page.min.json`;\n\nexport const getPrefabPartialJsonUrl = (prefabName: string, partialName: string) => `${getPrefabBaseUrl(prefabName)}/pages/${partialName}/page.min.json`;\n","import { Injectable } from '@angular/core';\n\nimport { loadScripts, loadStyleSheets, stringStartsWith } from '@wm/core';\nimport { MetadataService } from '@wm/variables';\n\nimport { PrefabConfigProvider } from '../types/types';\nimport { getPrefabBaseUrl, isPrefabInPreview } from '../util/utils';\nimport {endsWith} from \"lodash-es\";\n\nconst prefabsWithError = new Set<string>();\nconst inProgress = new Map<string, Promise<any>>();\nconst resolvedPrefabs = new Set<string>();\n\nconst getPrefabResourceUrl = (resourcePath, resourceBasePath) => {\n let _url = resourcePath;\n if (!stringStartsWith(resourcePath, 'http://|https://|//')) {\n _url = (resourceBasePath + _url).replace('//', '/');\n }\n return _url;\n};\n\n@Injectable()\nexport class PrefabManagerService {\n\n constructor(\n private $metadata: MetadataService,\n private prefabConfigProvider: PrefabConfigProvider\n ) {}\n\n public getConfig(prefabName): Promise<any> {\n return this.prefabConfigProvider.getConfig(prefabName);\n }\n\n public loadServiceDefs(prefabName): Promise<any> {\n return isPrefabInPreview(prefabName) ? Promise.resolve() : this.$metadata.load(prefabName);\n }\n\n protected loadStyles(prefabName, {resources: {styles}} = {resources: {styles: []}}): Promise<void> {\n const baseUrl = getPrefabBaseUrl(prefabName);\n const _styles = styles.map(url => {\n if (!endsWith(url, '/pages/Main/Main.css')) {\n return getPrefabResourceUrl(url, baseUrl);\n }\n return undefined;\n }).filter(url => !!url);\n\n loadStyleSheets(_styles);\n\n return Promise.resolve();\n }\n\n // TODO [Vinay] - implement onPrefabResourceLoad\n protected loadScripts(prefabName, {resources: {scripts}} = {resources: {scripts: []}}): Promise<any> {\n const baseUrl = getPrefabBaseUrl(prefabName);\n scripts = scripts.filter(script => !script.startsWith('npm://'));\n const _scripts = scripts.map(url => getPrefabResourceUrl(url, baseUrl));\n\n return loadScripts(_scripts, true);\n }\n\n private setInProgress(prefabName: string) {\n let _res;\n let _rej;\n const _promise: any = new Promise((res, rej) => {\n _res = res;\n _rej = rej;\n });\n\n _promise.resolve = _res;\n _promise.reject = _rej;\n\n inProgress.set(prefabName, _promise);\n }\n\n private resolveInProgress(prefabName: string) {\n if (inProgress.get(prefabName)) {\n (inProgress.get(prefabName) as any).resolve();\n inProgress.delete(prefabName);\n }\n }\n\n public loadDependencies(prefabName): Promise<void> {\n\n if (resolvedPrefabs.has(prefabName)) {\n return Promise.resolve();\n }\n\n if (prefabsWithError.has(prefabName)) {\n return Promise.reject('');\n }\n\n if (inProgress.get(prefabName)) {\n return inProgress.get(prefabName);\n }\n\n this.setInProgress(prefabName);\n\n return this.getConfig(prefabName)\n .then(config => {\n return Promise.all([\n this.loadStyles(prefabName, config),\n this.loadScripts(prefabName, config),\n this.loadServiceDefs(prefabName)\n ]).then(() => {\n this.resolveInProgress(prefabName);\n resolvedPrefabs.add(prefabName);\n });\n });\n }\n}\n","import { noop } from '@wm/core';\n\nimport { Subject } from 'rxjs';\nimport { Directive } from \"@angular/core\";\n\n@Directive()\nexport abstract class FragmentMonitor {\n fragments = 0;\n viewInit$: Subject<any>;\n isViewInitialized: boolean;\n isPageComponent: boolean = true;\n\n fragmentsLoaded$ = new Subject();\n\n constructor() {}\n\n init() {\n // console.log(`inside fragmentMonitor: Page-${(this as any).pageName}, Partial-${(this as any).partialName}`);\n\n this.viewInit$.subscribe(noop, noop, () => {\n this.isViewInitialized = true;\n this.isReady();\n });\n }\n\n registerFragment() {\n this.fragments++;\n }\n\n resolveFragment() {\n this.fragments--;\n this.isReady();\n }\n\n isReady() {\n if (this.isViewInitialized && !this.fragments) {\n this.registerFragment = noop;\n this.resolveFragment = noop;\n this.fragmentsLoaded$.complete();\n }\n }\n}\n","import {\n AfterViewInit,\n Injector,\n OnDestroy,\n ViewChild,\n Directive,\n inject\n} from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport { Subject } from 'rxjs';\n\nimport {\n $invokeWatchers,\n AbstractI18nService,\n AbstractNavigationService,\n App,\n noop,\n Viewport,\n ScriptLoaderService,\n UtilsService,\n registerFnByExpr\n} from '@wm/core';\nimport { PartialDirective, WidgetRef} from '@wm/components/base';\nimport { PageDirective, SpaPageDirective } from '@wm/components/page';\nimport {PrefabDirective} from '@wm/components/prefab';\nimport { VariablesService } from '@wm/variables';\n\nimport { FragmentMonitor } from '../util/fragment-monitor';\nimport { AppManagerService } from '../services/app.manager.service';\nimport {each} from \"lodash-es\";\n\nexport const commonPartialWidgets = {};\n\n@Directive()\nexport abstract class BasePartialComponent extends FragmentMonitor implements AfterViewInit, OnDestroy {\n Widgets: any;\n Variables: any;\n Actions: any;\n App: App;\n injector: Injector;\n partialName: string;\n activePageName: string;\n route: ActivatedRoute;\n appManager: AppManagerService;\n navigationService: AbstractNavigationService;\n router: Router;\n pageParams: any;\n containerWidget: any;\n i18nService: AbstractI18nService;\n appLocale: any;\n @ViewChild(PartialDirective) partialDirective;\n pageDirective: PageDirective | SpaPageDirective;\n Prefab: PrefabDirective;\n scriptLoaderService: ScriptLoaderService;\n Viewport: Viewport;\n compileContent = false;\n spa: boolean;\n\n destroy$ = new Subject();\n viewInit$ = new Subject();\n private viewParent: any;\n\n abstract evalUserScript(prefabContext: any, appContext: any, utils: any);\n\n abstract getVariables();\n abstract getExpressions();\n\n getContainerWidgetInjector() {\n return this.containerWidget.inj || this.containerWidget.injector;\n }\n\n init() {\n\n this.App = this.injector ? this.injector.get(App) : inject(App);\n //making the code compatible in both the JIT and AOT modes\n this.containerWidget = this.injector ? this.injector.get(WidgetRef) : inject(WidgetRef);\n this.i18nService = this.injector ? this.injector.get(AbstractI18nService) : inject(AbstractI18nService);\n this.scriptLoaderService = this.injector ? this.injector.get(ScriptLoaderService) : inject(ScriptLoaderService);\n this.Viewport = this.injector ? this.injector.get(Viewport) : inject(Viewport);\n // this.viewContainerRef = this.getContainerWidgetInjector().get(ViewContainerRef);\n // Replacing this.getContainerWidgetInjector().view.component as viewParent\n // this.viewParent = (this.viewContainerRef as any).parentInjector._lView[8];\n this.viewParent = this.containerWidget.viewParent;\n\n if (this.viewParent.registerFragment) {\n this.viewParent.registerFragment();\n }\n\n // register functions for binding evaluation\n this.registerExpressions();\n this.initUserScript();\n\n this.registerWidgets();\n this.initVariables();\n\n this.activePageName = this.App.activePageName; // Todo: remove this\n this.registerPageParams();\n\n this.defineI18nProps();\n\n this.viewInit$.subscribe(noop, noop, () => {\n this.pageParams = this.containerWidget.partialParams;\n });\n\n if(this.spa) {\n this.pageDirective = this.injector ? this.injector.get(SpaPageDirective) : inject(SpaPageDirective);\n } else {\n this.pageDirective = this.injector ? this.injector.get(PageDirective) : inject(PageDirective);\n }\n if (this.pageDirective) {\n this.registerDestroyListener(this.pageDirective.subscribe('attach', data => this.ngOnAttach(data.refreshData)));\n this.registerDestroyListener(this.pageDirective.subscribe('detach', () => this.ngOnDetach()));\n }\n\n super.init();\n }\n\n registerWidgets() {\n if (this.partialName === 'Common') {\n this.Widgets = commonPartialWidgets;\n } else {\n this.Widgets = Object.create(commonPartialWidgets);\n }\n\n this.containerWidget.Widgets = this.Widgets;\n }\n\n registerDestroyListener(fn: Function) {\n this.destroy$.subscribe(noop, noop, () => fn());\n }\n\n initUserScript() {\n try {\n // partials inside prefab should have access to Prefab properties and events\n if (this.viewParent.prefabName) {\n // for partial within partial within prefabs, just assign the parent partial's prefab object\n if (this.viewParent.Prefab) {\n this.Prefab = this.viewParent.Prefab;\n } else {\n this.Prefab = this.viewParent;\n }\n }\n this.evalUserScript(this, this.App, this.injector ? this.injector.get(UtilsService) : inject(UtilsService));\n } catch (e) {\n console.error(`Error in evaluating partial (${this.partialName}) script\\n`, e);\n }\n }\n\n initVariables() {\n const variablesService = this.injector ? this.injector.get(VariablesService) : inject(VariablesService);\n\n // get variables and actions instances for the page\n const variableCollection = variablesService.register(this.partialName, this.getVariables(), this);\n\n // create namespace for Variables nad Actions on page/partial, which inherits the Variables and Actions from App instance\n this.Variables = Object.create(this.App.Variables);\n this.Actions = Object.create(this.App.Actions);\n\n this.containerWidget.Variables = this.Variables;\n this.containerWidget.Actions = this.Actions;\n\n // assign all the page variables to the pageInstance\n Object.entries(variableCollection.Variables).forEach(([name, variable]) => this.Variables[name] = variable);\n Object.entries(variableCollection.Actions).forEach(([name, action]) => this.Actions[name] = action);\n\n\n this.viewInit$.subscribe(noop, noop, () => {\n // TEMP: triggering watchers so variables watching over params are updated\n $invokeWatchers(true, true);\n variableCollection.callback(variableCollection.Variables).catch(noop);\n variableCollection.callback(variableCollection.Actions);\n });\n }\n\n /**\n * function to register bind expressions generated in this partial instance\n * getExpressions function is defined in the generated page.comp.ts file\n * @param expressions, map of bind expression vs generated function\n */\n registerExpressions() {\n const expressions = this.getExpressions();\n each(expressions, (fn, expr) => {\n registerFnByExpr(expr, fn[0], fn[1]);\n });\n }\n\n registerPageParams() {\n this.pageParams = this.containerWidget.partialParams;\n }\n\n defineI18nProps() {\n this.appLocale = this.i18nService.getAppLocale();\n }\n\n invokeOnReady() {\n let params;\n if (this.containerWidget.userComponentParams) {\n params = this.containerWidget.userComponentParams;\n }\n this.onReady(params);\n if (this.viewParent.resolveFragment) {\n this.viewParent.resolveFragment();\n }\n }\n\n private loadScripts() {\n return new Promise<void>((resolve) => {\n const scriptsRequired = this.partialDirective.$element.attr('scripts-to-load');\n if (scriptsRequired) {\n this.scriptLoaderService\n .load(...scriptsRequired.split(','))\n .then(resolve);\n } else {\n resolve();\n }\n });\n }\n\n mute() {\n const m = o => { o && o.mute && o.mute(); };\n each(this.Widgets, m);\n each(this.Variables, m);\n each(this.Actions, m);\n }\n\n unmute() {\n const um = o => { o && o.unmute && o.unmute(); };\n each(this.Widgets, um);\n each(this.Variables, um);\n each(this.Actions, um);\n }\n\n // ngOnInit() {\n // this.init();\n // }\n\n ngAfterViewInit(): void {\n this.loadScripts().then(() => {\n this.compileContent = true;\n setTimeout(() => {\n this.viewInit$.complete();\n\n this.fragmentsLoaded$.subscribe(noop, noop, () => this.invokeOnReady());\n\n }, 100);\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.complete();\n }\n\n ngOnAttach(refreshData) {\n this.unmute();\n if (refreshData) {\n const refresh = v => { v && v.startUpdate && v.invoke && v.invoke(); };\n each(this.Variables, refresh);\n each(this.Actions, refresh);\n }\n each(this.Widgets, w => w && w.ngOnAttach && w.ngOnAttach());\n }\n\n ngOnDetach() {\n this.mute();\n each(this.Widgets, w => w && w.ngOnDetach && w.ngOnDetach());\n }\n\n onReady(params?) {\n }\n}\n","import { Inject } from '@angular/core';\n/*\nCustom Route Reuse Strategies:\n* WmDefaultRouteReuseStrategy: Base Function & Utils\n* WmRouteReseStrategy : For Preview & WaveMaker Deployments\n* WmNgRouteReuseStrategy : For Angular Deployments\n\nWhen a user invokes navigation action from 'Page1' to 'Page2'\nReuse Route : True,\n if the Page1 & Page2 are same with Same Query Params\nReuse Route : False,\n if the Page1 & Page 2 are different,\n if the Page1 & Page 2 are same, but the query params are different\n*/\nimport {\n ActivatedRouteSnapshot,\n DetachedRouteHandle,\n RouteReuseStrategy,\n} from '@angular/router';\n\nimport { LRUCache } from '@wm/core';\nimport {isNil} from \"lodash-es\";\nexport const CACHE_PAGE = '_cache_page';\nexport const MAX_CACHE_SIZE = 'REUSE_ROUTE_STRATEGY.MAX_CACHE_SIZE';\nexport const MAX_CACHE_AGE = 'REUSE_ROUTE_STRATEGY.MAX_CACHE_AGE';\n\n/* Base Strategy with Default implementations */\nexport class WmDefaultRouteReuseStrategy {\n private cache: LRUCache<DetachedRouteHandle>;\n private currentRouteKey: string;\n private paramsToIgnore = [\n 'wm_state', // state persistence,\n CACHE_PAGE // to use page cache\n ];\n\n constructor(@Inject(MAX_CACHE_SIZE) maxCacheSize?: number,\n @Inject(MAX_CACHE_AGE) maxCacheAge?: number) {\n this.cache = new LRUCache<DetachedRouteHandle>(maxCacheSize, maxCacheAge, (key, handle) => {\n if (this.currentRouteKey === key) {\n this.cache.set(key, handle);\n } else {\n (handle as any).componentRef.destroy();\n }\n });\n }\n\n private getKey(route: ActivatedRouteSnapshot) {\n const queryParams = Object.keys(route.queryParams)\n .filter(k => !this.paramsToIgnore.includes(k))\n .map(k => k + '=' + route.queryParams[k])\n .sort().join('&');\n let pageName = route.params.pageName;\n if (route.data.pageName && route.routeConfig.path === '') {\n pageName = route.data.pageName;\n }\n return pageName && (pageName + (queryParams ? `?${queryParams}`: ''));\n }\n\n protected getSize = (obj: object | null): number =>\n obj ? Object.keys(obj).length : 0;\n\n protected isSameQueryParams(future, current): boolean {\n try {\n const fqParams = future.queryParams;\n const cqParams = current.queryParams;\n const fqParamsCount = fqParams ? this.getSize(fqParams) : 0;\n const cqParamsCount = cqParams ? this.getSize(cqParams) : 0;\n\n if (fqParamsCount === 0 && cqParamsCount === 0) {\n return true;\n }\n if (fqParamsCount !== cqParamsCount) {\n return false;\n }\n return JSON.stringify(fqParams) === JSON.stringify(cqParams);\n } catch (e) {\n return false;\n }\n }\n\n private isCacheEnabled(route: ActivatedRouteSnapshot, defaultValue: boolean) {\n const canReuse = route.queryParams[CACHE_PAGE];\n if (!isNil(canReuse)) {\n return (canReuse === 'true' || canReuse === true);\n }\n return defaultValue;\n }\n\n // DefaultRouteReuseStrategy : Begin\n shouldDetach(route: ActivatedRouteSnapshot): boolean {\n const key = this.getKey(route);\n if (this.isCacheEnabled(route, !!route.data[CACHE_PAGE])) {\n return true;\n }\n this.cache.delete(key);\n return false;\n }\n\n shouldAttach(route: ActivatedRouteSnapshot): boolean {\n const key = this.getKey(route);\n this.currentRouteKey = key;\n const cachedHandle = this.cache.get(key) as DetachedRouteHandle;\n if (cachedHandle && this.isCacheEnabled(route, !!(cachedHandle[CACHE_PAGE]))) {\n return true;\n }\n this.cache.delete(key);\n return false;\n }\n\n store(route: ActivatedRouteSnapshot, handle: DetachedRouteHandle): void {\n if (handle) {\n const key = this.getKey(route);\n handle[CACHE_PAGE] = !!route.data[CACHE_PAGE];\n this.cache.set(key, handle);\n }\n }\n\n retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle | null {\n const key = this.getKey(route);\n return this.cache.get(key);\n }\n\n reset(pageName?: string) {\n if (pageName) {\n this.cache.delete(pageName);\n const pageWithParams = pageName += '?';\n const entriesToDelete = [];\n for(let k of this.cache.keys()) {\n if (k.startsWith(pageWithParams)) {\n entriesToDelete.push(k);\n }\n }\n entriesToDelete.forEach(k => this.cache.delete(k));\n } else {\n return this.cache.clear();\n }\n }\n}\n/* Custom Strategy specifically for preview & WaveMaker Deployments */\nexport class WmRouteReuseStrategy extends WmDefaultRouteReuseStrategy\n implements RouteReuseStrategy {\n constructor() {\n super();\n }\n private isSameRoute(future, current): boolean {\n // Incase of prefab project we have only one route So reloading the route everytime\n if (future.routeConfig && future.routeConfig.path === 'prefab-preview') {\n return false;\n }\n /*\n In WM Deployment, Navigation is handled by PageWrapperComponent\n & Route Info is passed as a parameter\n */\n const fParams = future.params;\n const cParams = current.params;\n const fParamsCount = this.getSize(fParams);\n const cParamsCount = this.getSize(cParams);\n if (fParamsCount === 0 && cParamsCount === 0) {\n return true;\n }\n if (fParamsCount !== cParamsCount) {\n return false;\n }\n if (fParams['pageName'] === cParams['pageName']) {\n return this.isSameQueryParams(future, current);\n }\n return false;\n }\n shouldReuseRoute(\n future: ActivatedRouteSnapshot,\n current: ActivatedRouteSnapshot\n ): boolean {\n return this.isSameRoute(future, current);\n }\n}\n/* Custom Strategy specifically for Angular Deployments */\nexport class WmNgRouteReuseStrategy extends WmDefaultRouteReuseStrategy\n implements RouteReuseStrategy {\n constructor() {\n super();\n }\n private isSameRoute(future, current): boolean {\n /*\n In Angular Deployment, Navigation is handled by Angular\n & Route Info is passed by routeConfig\n */\n if (!future.routeConfig && !current.routeConfig) {\n return true;\n }\n if (future.routeConfig !== current.routeConfig) {\n return false;\n }\n if (future.routeConfig === current.routeConfig) {\n //No need to compare query params for layout routeConfig\n if(future.data.layoutName && current.data.layoutName) {\n return true;\n }\n return this.isSameQueryParams(future, current);\n }\n return true;\n }\n shouldReuseRoute(\n future: ActivatedRouteSnapshot,\n current: ActivatedRouteSnapshot\n ): boolean {\n return this.isSameRoute(future, current);\n }\n}\n","import {\n AfterContentInit,\n AfterViewInit,\n Directive,\n HostListener,\n inject,\n Injector,\n OnDestroy,\n ViewChild\n} from '@angular/core';\nimport {ActivatedRoute, Router} from '@angular/router';\n\nimport {\n AbstractI18nService,\n AbstractNavigationService,\n App,\n getWmProjectProperties,\n isAndroid,\n isIos,\n isMobileApp,\n muteWatchers,\n noop,\n registerFnByExpr,\n ScriptLoaderService,\n unMuteWatchers,\n UtilsService,\n Viewport\n} from '@wm/core';\nimport {PageDirective} from '@wm/components/page';\n\nimport {Subject} from 'rxjs';\nimport {commonPartialWidgets} from './base-partial.component';\n\n\nimport {VariablesService} from '@wm/variables';\nimport {AppManagerService} from '../services/app.manager.service';\nimport {FragmentMonitor} from '../util/fragment-monitor';\nimport {CACHE_PAGE} from '../util/wm-route-reuse-strategy';\nimport {each, extend} from \"lodash-es\";\n\ndeclare const $;\ndeclare const html2canvas;\n\n@Directive()\nexport abstract class BasePageComponent extends FragmentMonitor implements AfterViewInit, OnDestroy, AfterContentInit {\n static lastPageSnapShot = null;\n Widgets: any;\n Variables: any;\n Actions: any;\n App: App;\n injector: Injector;\n pageName: string;\n activePageName: string;\n route: ActivatedRoute;\n appManager: AppManagerService;\n navigationService: AbstractNavigationService;\n router: Router;\n pageParams: any;\n showPageContent: boolean;\n i18nService: AbstractI18nService;\n appLocale: any;\n startupVariablesLoaded = false;\n pageTransitionCompleted = false;\n @ViewChild(PageDirective) pageDirective;\n $page;\n scriptLoaderService: ScriptLoaderService;\n Viewport: Viewport;\n\n destroy$ = new Subject();\n viewInit$ = new Subject();\n formatsByLocale = {'timezone': ''};\n\n\n abstract evalUserScript(prefabContext: any, appContext: any, utils: any);\n abstract getVariables();\n abstract getExpressions();\n\n init() {\n\n muteWatchers();\n\n this.App = this.injector ? this.injector.get(App) : inject(App);\n this.route = this.injector ? this.injector.get(ActivatedRoute) : inject(ActivatedRoute);\n this.appManager = this.injector ? this.injector.get(AppManagerService) : inject(AppManagerService);\n this.navigationService = this.injector ? this.injector.get(AbstractNavigationService) : inject(AbstractNavigationService);\n this.scriptLoaderService = this.injector ? this.injector.get(ScriptLoaderService) : inject(ScriptLoaderService);\n this.i18nService = this.injector ? this.injector.get(AbstractI18nService) : inject(AbstractI18nService);\n this.router = this.injector ? this.injector.get(Router) : inject(Router);\n this.Viewport = this.injector ? this.injector.get(Viewport) : inject(Viewport);\n\n // register functions for binding evaluation\n this.registerExpressions();\n this.initUserScript();\n\n this.registerWidgets();\n this.initVariables();\n\n this.App.lastActivePageName = this.App.activePageName;\n this.App.activePageName = this.pageName;\n this.App.activePage = this;\n this.activePageName = this.pageName; // Todo: remove this\n\n this.registerPageParams();\n this.defineI18nProps();\n super.init();\n }\n\n registerWidgets() {\n // common partial widgets should be accessible from page\n this.Widgets = Object.create(commonPartialWidgets);\n\n // expose current page widgets on app\n (this.App as any).Widgets = Object.create(this.Widgets);\n }\n\n initUserScript() {\n try {\n this.evalUserScript(this, this.App, this.injector ? this.injector.get(UtilsService) : inject(UtilsService));\n } catch (e) {\n console.error(`Error in evaluating page (${this.pageName}) script\\n`, e);\n }\n }\n\n registerPageParams() {\n const subscription = this.route.queryParams.subscribe(params => this.pageParams = (this.App as any).pageParams = extend({}, params));\n this.registerDestroyListener(() => subscription.unsubscribe());\n }\n\n registerDestroyListener(fn: Function) {\n this.destroy$.subscribe(noop, noop, () => fn());\n }\n\n defineI18nProps() {\n this.appLocale = this.i18nService.getAppLocale();\n }\n\n initVariables() {\n const variablesService = this.injector ? this.injector.get(VariablesService) : inject(VariablesService);\n\n // get variables and actions instances for the page\n const variableCollection = variablesService.register(this.pageName, this.getVariables(), this);\n\n // create namespace for Variables nad Actions on page/partial, which inherits the Variables and Actions from App instance\n this.Variables = Object.create(this.App.Variables);\n this.Actions = Object.create(this.App.Actions);\n\n // assign all the page variables to the pageInstance\n Object.entries(variableCollection.Variables).forEach(([name, variable]) => this.Variables[name] = variable);\n Object.entries(variableCollection.Actions).forEach(([name, action]) => this.Actions[name] = action);\n\n\n\n const subscription = this.viewInit$.subscribe(noop, noop, () => {\n\n if (!this.appManager.isAppVariablesFired()) {\n variableCollection.callback(this.App.Variables).catch(noop).then(() => {\n this.appManager.notify('app-variables-data-loaded', {pageName: this.pageName});\n });\n variableCollection.callback(this.App.Actions);\n this.appManager.appVariablesReady();\n this.appManager.isAppVariablesFired(true);\n }\n\n variableCollection.callback(variableCollection.Variables)\n .catch(noop)\n .then(() => {\n this.appManager.notify('page-variables-data-loaded', {pageName: this.pageName});\n this.startupVariablesLoaded = true;\n // hide the loader only after the some setTimeout for smooth page load.\n setTimeout(() => {\n this.showPageContent = true;\n }, 100);\n });\n variableCollection.callback(variableCollection.Actions);\n\n subscription.unsubscribe();\n });\n }\n\n setTimezone(locale) {\n this.i18nService.setTimezone(locale, this);\n }\n\n /**\n * function to register bind expressions generated in this page instance\n * getExpressions function is defined in the generated page.comp.ts file\n * @param expressions, map of bind expression vs generated function\n */\n registerExpressions() {\n const expressions = this.getExpressions();\n each(expressions, (fn, expr) => {\n registerFnByExpr(expr, fn[0], fn[1]);\n });\n }\n\n runPageTransition(transition?: string): Promise<void> {\n transition = transition || this.navigationService.getPageTransition();\n const lastPage = BasePageComponent.lastPageSnapShot\n return new Promise<void>(resolve => {\n if (transition\n && !transition.startsWith('none')\n && lastPage) {\n const $target = lastPage.parent();\n const onTransitionEnd = (e) => {\n if (resolve && !(e && e.pseudoElement)) {\n $target.off('animationend', onTransitionEnd);\n $target.removeClass(transition);\n $target.children().first().remove();\n resolve();\n resolve = null;\n }\n };\n transition = 'page-transition page-transition-' + transition;\n lastPage.addClass('page-exit');\n this.$page.addClass('page-entry');\n $target.addClass(transition);\n $target.on('animationend', onTransitionEnd);\n // Wait for a maximum of 1 second for transition to end.\n setTimeout(onTransitionEnd, 1000);\n } else {\n resolve();\n }\n }).then(() => {\n this.$page && this.$page.removeClass('page-entry');\n if (lastPage) {\n lastPage.remove();\n BasePageComponent.lastPageSnapShot = null;\n }\n this.pageTransitionCompleted = true;\n });\n }\n\n invokeOnReady() {\n this.onReady();\n this.appManager.notify('pageReady', {'name' : this.pageName, instance: this});\n (this.App.onPageReady || noop)(this.pageName, this);\n\n const homePage = getWmProjectProperties()?.homePage;\n if (window.top.name !== window.name && homePage === this.pageName) {\n window.top.postMessage({key: 'onHomepageLoad'}, \"*\");\n }\n }\n\n private loadScripts() {\n return new Promise<void>((resolve) => {\n const scriptsRequired = this.pageDirective && this.pageDirective.$element.attr('scripts-to-load');\n if (scriptsRequired) {\n this.scriptLoaderService\n .load(...scriptsRequired.split(','))\n .then(resolve);\n } else {\n resolve();\n }\n });\n }\n\n private restoreLastPageSnapshot() {\n if (isMobileApp() && BasePageComponent.lastPageSnapShot && this.$page) {\n this.$page.parent().prepend(BasePageComponent.lastPageSnapShot);\n }\n }\n\n private savePageSnapShot() {\n if (BasePageComponent.lastPageSnapShot) {\n BasePageComponent.lastPageSnapShot.remove();\n }\n if (isMobileApp() && this.$page) {\n BasePageComponent.lastPageSnapShot = this.$page.clone();\n this.$page.parents('app-root').prepend(BasePageComponent.lastPageSnapShot);\n }\n }\n\n private saveScrollPosition() {\n const fn = ($el, key, recursive = true, $target = $el) => {\n if (recursive) {\n $el.children().each((i, v) => fn($(v), key));\n }\n const scrollData = {\n x: $target.scrollLeft(),\n y: $target.scrollTop()\n };\n if(scrollData.x > 0 || scrollData.y > 0) {\n $el.attr(key, scrollData.x + ',' + scrollData.y);\n }\n };\n fn(this.$page, 'data-scroll-position');\n this.$page.attr('data-window-scroll-position', window.scrollX + ',' + window.scrollY);\n }\n\n private restoreScrollPosition() {\n const fn = ($el, key, recursive = true, $target = $el) => {\n const scrollData = ($el.attr(key) || '').split(',');\n if(scrollData.length > 1) {\n $target.scrollLeft(scrollData[0]);\n $target.scrollTop(scrollData[1]);\n }\n $el.removeAttr(key);\n if (recursive) {\n $el.children().each((i, v) => fn($(v), key));\n }\n };\n fn(this.$page, 'data-scroll-position');\n fn(this.$page, 'data-window-scroll-position', false, $(window));\n }\n\n /**\n * canDeactivate is called before a route change.\n * This will internally call onBeforePageLeave method present\n * at page level and app level in the application and decide\n * whether to change route or not based on return value.\n */\n @HostListener('window:beforeunload')\n canDeactivate() {\n let retVal;\n // Calling onBeforePageLeave method present at page level\n retVal = this.onBeforePageLeave();\n // Calling onBeforePageLeave method present at app level only if page level method return true\n // or if there is no page level method\n if (retVal !== false ) {\n retVal = (this.App.onBeforePageLeave || noop)(this.App.activePageName, this.App.activePage);\n }\n return retVal === undefined ? true : retVal;\n }\n\n ngAfterViewInit(): void {\n this.route.snapshot.data[CACHE_PAGE] = this.canReuse();\n if (this.pageDirective) {\n this.$page = this.pageDirective.$element.parent();\n if (isIos()) {\n this.$page.addClass('ios-page');\n }\n if (isAndroid()) {\n this.$page.addClass('android-page');\n }\n }\n this.restoreLastPageSnapshot();\n this.loadScripts().then(() => {\n this.runPageTransition()\n .then(() => {\n (this as any).compilePageContent = true;\n setTimeout(() => {\n this.onPageContentReady = () => {\n this.fragmentsLoaded$.subscribe(noop, noop, () => {\n this.invokeOnReady();\n });\n unMuteWatchers();\n this.viewInit$.complete();\n this.onPageContentReady = noop;\n };\n }, 0);\n });\n });\n }\n\n ngOnDestroy(): void {\n //this.captureApplicationThumbnail();\n this.savePageSnapShot();\n this.destroy$.complete();\n }\n\n captureApplicationThumbnail() {\n const root = this;\n let captureApplicationThumbnail = localStorage.getItem(\"captureApplicationThumbnail\") === \"true\" ? true : false;\n if (captureApplicationThumbnail && this.App.landingPageName === this.pageName && !(<any>this).App.isApplicationThumbnailCaptured) {\n html2canvas(document.body)\n .then(canvas => {\n try {\n (<any>root).App.isApplicationThumbnailCaptured = true;\n const screenshotUrl = canvas.toDataURL(\"image/png\");\n console.log(screenshotUrl);\n\n const a = document.createElement(\"a\");\n a.href = screenshotUrl;\n a.download = \"screenshot.jpg\";\n a.click();\n } catch (error) {\n console.error('Error in html2canvas then block:', error);\n }\n })\n .catch(error => {\n console.error('Error in html2canvas promise:', error);\n });\n\n }\n }\n\n onReady() {}\n\n onBeforePageReady() {}\n\n onBeforePageLeave() {}\n\n onPageContentReady() {}\n\n canReuse() {\n return !!(this.pageDirective && this.pageDirective.cache);\n }\n\n mute() {\n const m = o => { o && o.mute && o.mute(); };\n each(this.Widgets, m);\n each(this.Variables, m);\n each(this.Actions, m);\n }\n\n unmute(c = this) {\n const um = o => { o && o.unmute && o.unmute(); };\n each(this.Widgets, um);\n each(this.Variables, um);\n each(this.Actions, um);\n }\n\n ngOnAttach() {\n this.route.snapshot.data[CACHE_PAGE] = this.canReuse();\n this.registerPageParams();\n this.App.lastActivePageName = this.App.activePageName;\n this.App.activePageName = this.pageName;\n this.App.activePage = this;\n this.activePageName = this.pageName;\n this.restoreLastPageSnapshot();\n this.unmute();\n // expose current page widgets on app\n (this.App as any).Widgets = Object.create(this.Widgets);\n if(this.pageDirective && this.pageDirective.refreshdataonattach) {\n const refresh = v => { v && v.startUpdate && v.invoke && v.invoke(); };\n each(this.Variables, refresh);\n each(this.Actions, refresh);\n }\n this.runPageTransition().then(() => {\n setTimeout(() => this.restoreScrollPosition(), 100);\n each(this.Widgets, w => w && w.ngOnAttach && w.ngOnAttach());\n this.appManager.notify('pageAttach', {'name' : this.pageName, instance: this});\n });\n }\n\n ngOnDetach() {\n this.saveScrollPosition();\n this.savePageSnapShot();\n this.mute();\n each(this.Widgets, w => w && w.ngOnDetach && w.ngOnDetach());\n this.appManager.notify('pageDetach', {'name' : this.pageName, instance: this});\n }\n\n ngAfterContentInit() {\n this.onBeforePageReady();\n }\n\n static clear() {\n if(BasePageComponent.lastPageSnapShot) {\n BasePageComponent.lastPageSnapShot.remove();\n BasePageComponent.lastPageSnapShot = null;\n }\n }\n}\n","import { AfterViewInit, Injector, inject, OnDestroy, ViewChild, Directive } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nimport {\n $watch,\n AbstractI18nService,\n App,\n isIE,\n noop,\n ScriptLoaderService,\n UtilsService,\n $invokeWatchers,\n Viewport,\n registerFnByExpr\n} from '@wm/core';\nimport { WidgetRef} from '@wm/components/base';\nimport { PageDirective, SpaPageDirective } from '@wm/components/page';\nimport { PrefabContainerDirective } from '@wm/components/prefab';\nimport { VariablesService } from '@wm/variables';\n\nimport { PrefabManagerService } from '../services/prefab-manager.service';\nimport { FragmentMonitor } from '../util/fragment-monitor';\nimport {each, startsWith, trim} from \"lodash-es\";\n\n@Directive()\nexport abstract class BasePrefabComponent extends FragmentMonitor implements AfterViewInit, OnDestroy {\n Widgets: any;\n Variables: any;\n Actions: any;\n App: App;\n injector: Injector;\n containerWidget: any;\n prefabMngr: PrefabManagerService;\n displayName: string;\n prefabName: string;\n i18nService: AbstractI18nService;\n appLocale: any;\n @ViewChild(PrefabContainerDirective) prefabContainerDirective;\n scriptLoaderService: ScriptLoaderService;\n compileContent = false;\n pageDirective: PageDirective | SpaPageDirective;\n Viewport: Viewport;\n spa: boolean;\n\n destroy$ = new Subject();\n viewInit$ = new Subject();\n\n private viewParent: any;\n\n abstract evalUserScript(prefabContext: any, appContext: any, utils: any);\n abstract getVariables();\n abstract getExpressions();\n\n getContainerWidgetInjector() {\n return this.containerWidget.inj || this.containerWidget.injector;\n }\n\n init() {\n this.App = this.injector.get(App);\n //making the code compatible in both the JIT and AOT modes\n this.containerWidget = this.injector ? this.injector.get(WidgetRef) : inject(WidgetRef);\n\n this.prefabMngr = this.injector ? this.injector.get(PrefabManagerService) : inject(PrefabManagerService);\n this.i18nService = this.injector ? this.injector.get(AbstractI18nService) : inject(AbstractI18nService);\n this.scriptLoaderService = this.injector ? this.injector.get(ScriptLoaderService) : inject(ScriptLoaderService);\n this.Viewport = this.injector ? this.injector.get(Viewport) : inject(Viewport);\n\n this.viewParent = this.containerWidget.viewParent;\n\n if (this.viewParent.registerFragment) {\n this.viewParent.registerFragment();\n }\n\n if (this.spa) {\n this.pageDirective = this.injector ? this.injector.get(SpaPageDirective) : inject(SpaPageDirective);\n } else {\n this.pageDirective = this.injector ? this.injector.get(PageDirective) : inject(PageDirective);\n }\n if (this.pageDirective) {\n this.registerDestroyListener(this.pageDirective.subscribe('attach', data => this.ngOnAttach(data.refreshData)));\n this.registerDestroyListener(this.pageDirective.subscribe('detach', () => this.ngOnDetach()));\n }\n\n // register functions for binding evaluation\n this.registerExpressions();\n this.initUserScript();\n\n this.registerWidgets();\n this.initVariables();\n this.registerProps();\n this.defineI18nProps();\n super.init();\n }\n\n registerWidgets() {\n this.Widgets = {};\n this.Widgets = {};this.containerWidget.Widgets = this.Widgets;\n }\n\n initUserScript() {\n try {\n this.evalUserScript(this, this.App, this.injector.get(UtilsService));\n } catch (e) {\n console.error(`Error in evaluating prefab (${this.prefabName}) script\\n`, e);\n }\n }\n\n registerChangeListeners() {\n this.containerWidget.registerPropertyChangeListener(this.onPropertyChange);\n this.containerWidget.registerStyleChangeListener(this.onPropertyChange);\n }\n\n registerDestroyListener(fn: Function) {\n this.destroy$.subscribe(noop, noop, () => fn());\n }\n\n defineI18nProps() {\n this.appLocale = this.i18nService.getPrefabLocaleBundle(this.prefabName);\n }\n\n registerProps() {\n this.prefabMngr.getConfig(this.prefabName)\n .then(config => {\n\n if (config) {\n this.displayName = config.displayName;\n Object.entries((config.properties || {}))\n .forEach(([key, prop]: [string, any]) => {\n let expr;\n const value = trim(prop.value);\n\n if (startsWith(value, 'bind:')) {\n expr = value.replace('bind:', '');\n }\n\n Object.defineProperty(this, key, {\n get: () => this.containerWidget[key],\n set: nv => this.containerWidget.widget[key] = nv\n });\n\n if (expr) {\n //[Todo-CSP]: expr will be generated with prefab.comp.expr.ts\n this.registerDestroyListener(\n $watch(expr, this, {}, nv => this.containerWidget.widget[key] = nv)\n );\n }\n });\n\n Object.entries((config.events || {}))\n .forEach(([key, prop]: [string, any]) => {\n this[key] = (...args) => {\n const eventName = key.substr(2).toLowerCase();\n this.containerWidget.invokeEventCallback(eventName, {$event: args[0], $data: args[1]});\n };\n });\n\n Object.entries((config.methods || {}))\n .forEach(([key, prop]: [string, any]) => {\n this.containerWidget[key] = (...args) => {\n try {\n if (this[key]) {\n return this[key].apply(this, args);\n }\n } catch (e) {\n console.warn(`error in executing prefab-${this.prefabName} method-${key}`);\n }\n };\n });\n }\n this.containerWidget.setProps(config);\n // Reassigning the proxy handler for prefab inbound properties as we\n // will get them only after the prefab config call.\n if (isIE()) {\n this.containerWidget.widget = this.containerWidget.createProxy();\n }\n });\n }\n\n initVariables() {\n const variablesService = this.injector.get(VariablesService);\n\n // get variables and actions instances for the page\n const variableCollection = variablesService.register(this.prefabName, this.getVariables(), this);\n\n // create namespace for Variables nad Actions on page/partial, which inherits the Variables and Actions from App instance\n this.Variables = {};\n this.Actions = {};\n this.containerWidget.Variables = this.Variables;\n this.containerWidget.Actions = this.Actions;\n\n // assign all the page variables to the pageInstance\n Object.entries(variableCollection.Variables).forEach(([name, variable]) => this.Variables[name] = variable);\n Object.entries(variableCollection.Actions).forEach(([name, action]) => this.Actions[name] = action);\n\n\n this.viewInit$.subscribe(noop, noop, () => {\n variableCollection.callback(variableCollection.Variables).catch(noop);\n variableCollection.callback(variableCollection.Actions);\n });\n }\n\n /**\n * function to register bind expressions generated in this page instance\n * getExpressions function is defined in the generated page.comp.ts file\n * @param expressions, map of bind expression vs generated function\n */\n registerExpressions() {\n const expressions = this.getExpressions();\n each(expressions, (fn, expr) => {\n registerFnByExpr(expr, fn[0], fn[1]);\n });\n }\n\n invokeOnReady() {\n // triggering watchers so variables and propertiers watching over an expression are updated\n $invokeWatchers(true, true);\n this.onReady();\n if (this.viewParent.resolveFragment) {\n this.viewParent.resolveFragment();\n }\n this.containerWidget.invokeEventCallback('load');\n }\n\n private loadScripts() {\n return new Promise<void>((resolve) => {\n const scriptsRequired = this.prefabContainerDirective.$element.attr('scripts-to-load');\n if (scriptsRequired) {\n this.scriptLoaderService\n .load(...scriptsRequired.split(','))\n .then(resolve);\n } else {\n resolve();\n }\n });\n }\n\n mute() {\n const m = o => { o && o.mute && o.mute(); };\n each(this.Widgets, m);\n each(this.Variables, m);\n each(this.Actions, m);\n }\n\n unmute() {\n const um = o => { o && o.unmute && o.unmute(); };\n each(this.Widgets, um);\n each(this.Variables, um);\n each(this.Actions, um);\n }\n\n ngOnAttach(refreshData) {\n this.unmute();\n if(refreshData) {\n const refresh = v => { v && v.startUpdate && v.invoke && v.invoke(); };\n each(this.Variables, refresh);\n each(this.Actions, refresh);\n }\n each(this.Widgets, w => w && w.ngOnAttach && w.ngOnAttach());\n }\n\n ngOnDetach() {\n this.mute();\n each(this.Widgets, w => w && w.ngOnDetach && w.ngOnDetach());\n }\n\n\n ngAfterViewInit(): void {\n this.loadScripts().then(() => {\n this.compileContent = true;\n this.registerChangeListeners();\n setTimeout(() => {\n // trigger viewInit$.complete after a timeout so that the widget listeners are ready before Variable xhr call.\n this.viewInit$.complete();\n this.fragmentsLoaded$.subscribe(noop, noop, () => this.invokeOnReady());\n }, 100);\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.complete();\n }\n\n // user overrides this\n onPropertyChange() {}\n\n onReady() {}\n\n}\n","import { AfterViewInit, Injector, OnDestroy, ViewChild, Directive } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\n\nimport { PageDirective } from \"@wm/components/page\";\nimport { registerFnByExpr, App } from \"@wm/core\";\nimport {each, extend} from \"lodash-es\";\n\n@Directive()\nexport abstract class BaseLayoutComponent implements AfterViewInit, OnDestroy {\n injector: Injector;\n App: App;\n layoutName: string;\n layoutPages: string[];\n\n @ViewChild(RouterOutlet) routerOutlet: RouterOutlet;\n @ViewChild(PageDirective) pageDirective: PageDirective;\n\n abstract getExpressions();\n\n /**\n * function to register bind expressions generated in this page instance\n * getExpressions function is defined in the generated page.comp.ts file\n * @param expressions, map of bind expression vs generated function\n */\n registerExpressions() {\n const expressions = this.getExpressions();\n each(expressions, (fn, expr) => {\n registerFnByExpr(expr, fn[0], fn[1]);\n });\n }\n\n private overrideRouterOutlet() {\n //override the attach/detach methods\n const oAttach = this.routerOutlet.attach;\n const oDetach = this.routerOutlet.detach;\n this.routerOutlet.attach = (componentRef: any) => {\n oAttach.call(this.routerOutlet, componentRef);\n componentRef.instance.ngOnAttach();\n };\n this.routerOutlet.detach = () => {\n const componentRef = oDetach.call(this.routerOutlet);\n return componentRef;\n };\n }\n\n ngAfterViewInit() {\n setTimeout(() => {\n this.overrideRouterOutlet();\n }, 10);\n }\n\n init() {\n this.App = this.injector.get(App);\n this.App.activeLayoutName = this.layoutName;\n this.App.layoutPages = this.layoutPages;\n\n // register functions for binding evaluation\n this.registerExpressions();\n }\n\n //TODO: To work cache properly need to implement the below methods and WmRouteReuseStrategy\n ngOnDestroy(): void {\n }\n\n canReuse() {\n }\n\n ngOnAttach() {\n }\n\n ngOnDetach() {\n }\n\n // This will be called when child route (Page component in the layout) is activated\n onActivate(pageComponent: any) {\n //Add page component scope to layout component so that bindings and watchers in the layout will use the page scope\n extend(this, pageComponent);\n }\n}\n","import { AfterViewInit, HostListener, Injector, OnDestroy, ViewChild, Directive, AfterContentInit, inject } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport { isAndroid, isIos, Viewport, ScriptLoaderService, registerFnByExpr } from '@wm/core';\nimport { LayoutDirective, SpaPageDirective } from '@wm/components/page';\n\nimport {Subject, Subscription} from 'rxjs';\n\nimport {\n AbstractI18nService,\n AbstractNavigationService,\n addClass,\n App,\n isMobileApp,\n muteWatchers,\n noop,\n removeClass,\n unMuteWatchers,\n UtilsService\n} from '@wm/core';\nimport { commonPartialWidgets } from './base-partial.component';\n\n\nimport { VariablesService } from '@wm/variables';\nimport { AppManagerService } from '../services/app.manager.service';\nimport { FragmentMonitor } from '../util/fragment-monitor';\nimport { CACHE_PAGE } from '../util/wm-route-reuse-strategy';\nimport {each, extend} from \"lodash-es\";\n\ndeclare const $;\n\n@Directive()\nexport abstract class BaseSpaPageComponent extends FragmentMonitor implements AfterViewInit, OnDestroy, AfterContentInit {\n static lastPageSnapShot = null;\n Widgets: any;\n Variables: any;\n Actions: any;\n App: App;\n injector: Injector;\n pageName: string;\n activePageName: string;\n route: ActivatedRoute;\n appManager: AppManagerService;\n navigationService: AbstractNavigationService;\n router: Router;\n pageParams: any;\n showPageContent: boolean;\n i18nService: AbstractI18nService;\n appLocale: any;\n startupVariablesLoaded = false;\n pageTransitionCompleted = false;\n layoutDirective: LayoutDirective;\n @ViewChild(SpaPageDirective) spaPageDirective;\n $page;\n scriptLoaderService: ScriptLoaderService;\n Viewport: Viewport;\n\n destroy$ = new Subject();\n viewInit$ = new Subject();\n formatsByLocale = {'timezone': ''};\n\n abstract evalUserScript(prefabContext: any, appContext: any, utils: any);\n abstract getVariables();\n abstract getExpressions();\n\n init() {\n\n muteWatchers();\n\n this.App = this.injector ? this.injector.get(App) : inject(App);\n this.route = this.injector ? this.injector.get(ActivatedRoute) : inject(ActivatedRoute);\n this.appManager = this.injector ? this.injector.get(AppManagerService) : inject(AppManagerService);\n this.navigationService = this.injector ? this.injector.get(AbstractNavigationService) : inject(AbstractNavigationService);\n this.scriptLoaderService = this.injector ? this.injector.get(ScriptLoaderService) : inject(ScriptLoaderService);\n this.i18nService = this.injector ? this.injector.get(AbstractI18nService) : inject(AbstractI18nService);\n this.router = this.injector ? this.injector.get(Router) : inject(Router);\n this.Viewport = this.injector ? this.injector.get(Viewport) : inject(Viewport);\n this.layoutDirective = this.injector ? this.injector.get(LayoutDirective) : inject(LayoutDirective);\n\n // register functions for binding evaluation\n this.registerExpressions();\n this.initUserScript();\n\n this.registerWidgets();\n this.initVariables();\n\n this.App.lastActivePageName = this.App.activePageName;\n this.App.activePageName = this.pageName;\n this.App.activePage = this;\n this.activePageName = this.pageName; // Todo: remove this\n\n this.registerPageParams();\n this.defineI18nProps();\n super.init();\n }\n\n registerWidgets() {\n // common partial widgets should be accessible from page\n this.Widgets = Object.create(commonPartialWidgets);\n\n // expose current page widgets on app\n (this.App as any).Widgets = Object.create(this.Widgets);\n }\n\n initUserScript() {\n try {\n this.evalUserScript(this, this.App, this.injector ? this.injector.get(UtilsService) : inject(UtilsService));\n } catch (e) {\n console.error(`Error in evaluating page (${this.pageName}) script\\n`, e);\n }\n }\n\n registerPageParams() {\n const subscription = this.route.queryParams.subscribe(params => this.pageParams = (this.App as any).pageParams = extend({}, params));\n this.registerDestroyListener(() => subscription.unsubscribe());\n }\n\n registerDestroyListener(fn: Function) {\n this.destroy$.subscribe(noop, noop, () => fn());\n }\n\n defineI18nProps() {\n this.appLocale = this.i18nService.getAppLocale();\n }\n\n initVariables() {\n const variablesService = this.injector ? this.injector.get(VariablesService) : inject(VariablesService);\n\n // get variables and actions instances for the page\n const variableCollection = variablesService.register(this.pageName, this.getVariables(), this);\n\n // create namespace for Variables nad Actions on page/partial, which inherits the Variables and Actions from App instance\n this.Variables = Object.create(this.App.Variables);\n this.Actions = Object.create(this.App.Actions);\n\n // assign all the page variables to the pageInstance\n Object.entries(variableCollection.Variables).forEach(([name, variable]) => this.Variables[name] = variable);\n Object.entries(variableCollection.Actions).forEach(([name, action]) => this.Actions[name] = action);\n\n\n\n const subscription = this.viewInit$.subscribe(noop, noop, () => {\n\n if (!this.appManager.isAppVariablesFired()) {\n variableCollection.callback(this.App.Variables).catch(noop).then(() => {\n this.appManager.notify('app-variables-data-loaded', {pageName: this.pageName});\n });\n variableCollection.callback(this.App.Actions);\n this.appManager.appVariablesReady();\n this.appManager.isAppVariablesFired(true);\n }\n\n variableCollection.callback(variableCollection.Variables)\n .catch(noop)\n .then(() => {\n this.appManager.notify('page-variables-data-loaded', {pageName: this.pageName});\n this.startupVariablesLoaded = true;\n // hide the loader only after the some setTimeout for smooth page load.\n setTimeout(() => {\n this.showPageContent = true;\n }, 100);\n });\n variableCollection.callback(variableCollection.Actions);\n\n subscription.unsubscribe();\n });\n }\n\n setTimezone(locale) {\n this.i18nService.setTimezone(locale, this);\n }\n\n /**\n * function to register bind expressions generated in this page instance\n * getExpressions function is defined in the generated page.comp.ts file\n * @param expressions, map of bind expression vs generated function\n */\n registerExpressions() {\n const expressions = this.getExpressions();\n each(expressions, (fn, expr) => {\n registerFnByExpr(expr, fn[0], fn[1]);\n });\n }\n\n runPageTransition(transition?: string): Promise<void> {\n transition = transition || this.navigationService.getPageTransition();\n const lastPage = BaseSpaPageComponent.lastPageSnapShot\n return new Promise<void>(resolve => {\n if (transition\n && !transition.startsWith('none')\n && lastPage) {\n const $target = lastPage.parent();\n const onTransitionEnd = (e) => {\n if (resolve && !(e && e.pseudoElement)) {\n $target.off('animationend', onTransitionEnd);\n $target.removeClass(transition);\n $target.children().first().remove();\n resolve();\n resolve = null;\n }\n };\n transition = 'page-transition page-transition-' + transition;\n lastPage.addClass('page-exit');\n this.$page.addClass('page-entry');\n $target.addClass(transition);\n $target.on('animationend', onTransitionEnd);\n // Wait for a maximum of 1 second for transition to end.\n setTimeout(onTransitionEnd, 1000);\n } else {\n resolve();\n }\n }).then(() => {\n this.$page && this.$page.removeClass('page-entry');\n if (lastPage) {\n lastPage.remove();\n BaseSpaPageComponent.lastPageSnapShot = null;\n }\n this.pageTransitionCompleted = true;\n });\n }\n\n invokeOnReady() {\n this.onReady();\n this.appManager.notify('highlightActiveLink', {'pageName' : this.pageName});\n this.appManager.notify('pageReady', {'name' : this.pageName, instance: this});\n (this.App.onPageReady || noop)(this.pageName, this);\n }\n\n private loadScripts() {\n return new Promise<void>((resolve) => {\n const scriptsRequired = this.spaPageDirective && this.spaPageDirective.$element.attr('scripts-to-load');\n\n if (scriptsRequired) {\n this.scriptLoaderService\n .load(...scriptsRequired.split(','))\n .then(resolve);\n } else {\n resolve();\n }\n });\n }\n\n private restoreLastPageSnapshot() {\n if (isMobileApp() && BaseSpaPageComponent.lastPageSnapShot && this.$page) {\n this.$page.parent().prepend(BaseSpaPageComponent.lastPageSnapShot);\n }\n }\n\n private savePageSnapShot() {\n if (BaseSpaPageComponent.lastPageSnapShot) {\n BaseSpaPageComponent.lastPageSnapShot.remove();\n }\n if (isMobileApp() && this.$page) {\n BaseSpaPageComponent.lastPageSnapShot = this.$page.clone();\n this.$page.parents('app-root').prepend(BaseSpaPageComponent.lastPageSnapShot);\n }\n }\n\n private saveScrollPosition() {\n const fn = ($el, key, recursive = true, $target = $el) => {\n if (recursive) {\n $el.children().each((i, v) => fn($(v), key));\n }\n const scrollData = {\n x: $target.scrollLeft(),\n y: $target.scrollTop()\n };\n if(scrollData.x > 0 || scrollData.y > 0) {\n $el.attr(key, scrollData.x + ',' + scrollData.y);\n }\n };\n fn(this.$page, 'data-scroll-position');\n this.$page.attr('data-window-scroll-position', window.scrollX + ',' + window.scrollY);\n }\n\n private restoreScrollPosition() {\n const fn = ($el, key, recursive = true, $target = $el) => {\n const scrollData = ($el.attr(key) || '').split(',');\n if(scrollData.length > 1) {\n $target.scrollLeft(scrollData[0]);\n $target.scrollTop(scrollData[1]);\n }\n $el.removeAttr(key);\n if (recursive) {\n $el.children().each((i, v) => fn($(v), key));\n }\n };\n fn(this.$page, 'data-scroll-position');\n fn(this.$page, 'data-window-scroll-position', false, $(window));\n }\n\n /**\n * canDeactivate is called before a route change.\n * This will internally call onBeforePageLeave method present\n * at page level and app level in the application and decide\n * whether to change route or not based on return value.\n */\n @HostListener('window:beforeunload')\n canDeactivate() {\n let retVal;\n // Calling onBeforePageLeave method present at page level\n retVal = this.onBeforePageLeave();\n // Calling onBeforePageLeave method present at app level only if page level method return true\n // or if there is no page level method\n if (retVal !== false ) {\n retVal = (this.App.onBeforePageLeave || noop)(this.App.activePageName, this.App.activePage);\n }\n return retVal === undefined ? true : retVal;\n }\n\n ngAfterViewInit(): void {\n this.route.snapshot.data[CACHE_PAGE] = this.canReuse();\n if (this.layoutDirective) {\n this.$page = this.layoutDirective.$element.parent();\n if (isIos()) {\n this.$page.addClass('ios-page');\n }\n if (isAndroid()) {\n this.$page.addClass('android-page');\n }\n }\n this.restoreLastPageSnapshot();\n this.loadScripts().then(() => {\n this.runPageTransition()\n .then(() => {\n (this as any).compilePageContent = true;\n setTimeout(() => {\n this.onPageContentReady = () => {\n this.fragmentsLoaded$.subscribe(noop, noop, () => {\n this.invokeOnReady();\n });\n unMuteWatchers();\n this.viewInit$.complete();\n this.onPageContentReady = noop;\n };\n }, 0);\n });\n });\n }\n\n ngOnDestroy(): void {\n this.savePageSnapShot();\n this.destroy$.complete();\n }\n\n onReady() {}\n\n onBeforePageReady() {}\n\n onBeforePageLeave() {}\n\n onPageContentReady() {}\n\n canReuse() {\n return !!(this.spaPageDirective && this.spaPageDirective.cache);\n }\n\n mute() {\n const m = o => { o && o.mute && o.mute(); };\n each(this.Widgets, m);\n each(this.Variables, m);\n each(this.Actions, m);\n }\n\n unmute(c = this) {\n const um = o => { o && o.unmute && o.unmute(); };\n each(this.Widgets, um);\n each(this.Variables, um);\n each(this.Actions, um);\n }\n\n ngOnAttach() {\n this.route.snapshot.data[CACHE_PAGE] = this.canReuse();\n this.registerPageParams();\n this.App.lastActivePageName = this.App.activePageName;\n this.App.activePageName = this.pageName;\n this.App.activePage = this;\n this.activePageName = this.pageName;\n this.restoreLastPageSnapshot();\n this.unmute();\n // expose current page widgets on app\n (this.App as any).Widgets = Object.create(this.Widgets);\n if(this.spaPageDirective && this.spaPageDirective.refreshdataonattach) {\n const refresh = v => { v && v.startUpdate && v.invoke && v.invoke(); };\n each(this.Variables, refresh);\n each(this.Actions, refresh);\n }\n this.runPageTransition().then(() => {\n setTimeout(() => this.restoreScrollPosition(), 100);\n each(this.Widgets, w => w && w.ngOnAttach && w.ngOnAttach());\n this.appManager.notify('pageAttach', {'name' : this.pageName, instance: this});\n });\n this.appManager.notify('highlightActiveLink', {'pageName': this.pageName});\n }\n\n ngOnDetach() {\n this.saveScrollPosition();\n this.savePageSnapShot();\n this.mute();\n each(this.Widgets, w => w && w.ngOnDetach && w.ngOnDetach());\n this.appManager.notify('pageDetach', {'name' : this.pageName, instance: this});\n }\n\n ngAfterContentInit() {\n this.onBeforePageReady();\n }\n\n static clear() {\n if(BaseSpaPageComponent.lastPageSnapShot) {\n BaseSpaPageComponent.lastPageSnapShot.remove();\n BaseSpaPageComponent.lastPageSnapShot = null;\n }\n }\n}\n","import {Directive, Inject, Injector, Input, Optional, TemplateRef, ViewContainerRef} from '@angular/core';\n\nimport {SecurityService} from '@wm/security';\nimport {extend, get, includes, split, trim} from \"lodash-es\";\n\nenum USER_ROLE {\n EVERYONE = 'Everyone',\n ANONYMOUS = 'Anonymous',\n AUTHENTICATED = 'Authenticated'\n}\n\n@Directive({\n selector: '[accessroles]'\n})\nexport class AccessrolesDirective {\n\n private processed = false;\n private readonly isUserAuthenticated;\n private readonly userRoles;\n private readonly context = {};\n private securityEnabled: boolean;\n\n constructor(\n private templateRef: TemplateRef<any>,\n private viewContainerRef: ViewContainerRef,\n private securityService: SecurityService,\n private inj: Injector,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n ) {\n const securityConfig = this.securityService.get();\n this.securityEnabled = get(securityConfig, 'securityEnabled');\n this.isUserAuthenticated = get(securityConfig, 'authenticated');\n this.userRoles = get(securityConfig, 'userInfo.userRoles');\n extend(this.context, (inj as any)._lView[8], explicitContext);\n }\n\n /**\n * Returns array of roles from comma separated string of roles\n * Handles encoded commas\n * @param val\n * @returns {any}\n */\n private getWidgetRolesArrayFromStr(val) {\n const UNICODE_COMMA_REGEX = /,/g;\n\n val = val || '';\n if (val === '') {\n return [];\n }\n // replace the unicode equivalent of comma with comma\n return split(val, ',').map(function (v) {\n return trim(v).replace(UNICODE_COMMA_REGEX, ',');\n });\n }\n\n /**\n * Returns true if roles in first arrays is\n * @param widgetRoles\n * @param userRoles\n * @returns {any}\n */\n private matchRoles(widgetRoles, userRoles) {\n return widgetRoles.some(function (item) {\n return includes(userRoles, item);\n });\n }\n\n /**\n * Decides whether the current logged in user has access to widget or not\n * @param widgetRoles\n * @param userRoles\n * @returns {any}\n */\n private hasAccessToWidget(widgetRoles, userRoles) {\n // access the widget when 'Everyone' is chosen\n if (includes(widgetRoles, USER_ROLE.EVERYONE)) {\n return true;\n }\n\n // access the widget when 'Anonymous' is chosen and user is not authenticated\n if (includes(widgetRoles, USER_ROLE.ANONYMOUS) && !this.isUserAuthenticated) {\n return true;\n }\n\n // access the widget when 'Only Authenticated Users' is chosen and user is authenticated\n if (includes(widgetRoles, USER_ROLE.AUTHENTICATED) && this.isUserAuthenticated) {\n return true;\n }\n\n // access the widget when widget role and logged in user role matches\n return this.isUserAuthenticated && this.matchRoles(widgetRoles, userRoles);\n }\n\n @Input() set accessroles(roles) {\n // flag to compute the directive only once\n if (this.processed) {\n return;\n }\n\n this.processed = true;\n const widgetRoles = this.getWidgetRolesArrayFromStr(roles);\n const isAccessible = !this.securityEnabled || this.hasAccessToWidget(widgetRoles, this.userRoles);\n if (isAccessible) {\n // [WMS-19294] pass on the previous context as second param.\n this.viewContainerRef.createEmbeddedView(this.templateRef, this.context);\n } else {\n this.viewContainerRef.clear();\n }\n }\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'app-spinner',\n template: `\n <div class=\"app-spinner\" [ngClass]=\"classname\" *ngIf=\"show\">\n <div class=\"spinner-message\">\n <i class=\"spinner-image animated infinite fa fa-circle-o-notch fa-spin\"></i>\n <div class=\"spinner-messages\">\n <p *ngFor=\"let value of spinnermessages\" [textContent]=\"value\"></p>\n </div>\n </div>\n </div>\n `\n})\nexport class AppSpinnerComponent {\n @Input() show: boolean;\n @Input() spinnermessages: Array<string>;\n @Input() classname: string;\n @Input() arialabel: string;\n constructor() {}\n}\n","import { AfterViewInit, Component, ViewChild, ViewContainerRef, TemplateRef, OnDestroy } from '@angular/core';\n\nimport { Toast, ToastPackage, ToastrService } from 'ngx-toastr';\n\nimport { $watch, $appDigest } from '@wm/core';\nimport {forEach, isString} from \"lodash-es\";\n\ndeclare const $;\n\n@Component({\n selector: '[custom-toaster-component]',\n template: `\n <div class=\"parent-custom-toast\"></div>\n <ng-container #customToast></ng-container>\n <ng-template #customToastTmpl>\n <div wmContainer partialContainer content.bind=\"pagename\">\n <div *ngFor=\"let param of params | keyvalue\" wmParam hidden\n [name]=\"param.key\" [value]=\"param.value\"></div>\n </div>\n </ng-template>`,\n preserveWhitespaces: false\n})\nexport class CustomToasterComponent extends Toast implements AfterViewInit, OnDestroy {\n\n @ViewChild('customToast', { static: true, read: ViewContainerRef }) customToastRef: ViewContainerRef;\n @ViewChild('customToastTmpl') customToastTmpl: TemplateRef<any>;\n pagename: any;\n watchers: any = [];\n params: any = {};\n\n // constructor is only necessary when not using AoT\n constructor(\n protected toastrService: ToastrService,\n public toastPackage: ToastPackage\n ) {\n super(toastrService, toastPackage);\n this.pagename = this.message || '';\n this.generateParams();\n }\n\n // Generate the params for partial page. If bound, watch the expression and set the value\n generateParams() {\n forEach((<any>this.options).partialParams, (param) => {\n if (isString(param.value) && param.value.indexOf('bind:') === 0) {\n //[Todo-CSP]: bind expr fn should be generated in the toaster action for this\n this.watchers.push($watch(\n param.value.substr(5),\n (<any>this.options).context,\n {},\n nv => {\n this.params[param.name] = nv;\n $appDigest();\n }\n ));\n } else {\n this.params[param.name] = param.value;\n }\n });\n }\n\n async generateDynamicComponent() {\n const $targetLayout = $('.parent-custom-toast');\n\n this.customToastRef.clear();\n\n $targetLayout[0].appendChild(this.customToastRef.createEmbeddedView(this.customToastTmpl).rootNodes[0]);\n }\n\n ngAfterViewInit() {\n this.generateDynamicComponent();\n }\n\n ngOnDestroy() {\n forEach(this.watchers, watcher => watcher());\n super.ngOnDestroy();\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport { App, getWmProjectProperties } from '@wm/core';\nimport { SecurityService } from '@wm/security';\n\nimport { AppManagerService } from '../../services/app.manager.service';\n\n@Component({\n selector: 'app-empty-page',\n template: '<div></div>'\n})\nexport class EmptyPageComponent implements OnInit {\n\n constructor(\n private route: ActivatedRoute,\n private securityService: SecurityService,\n private router: Router,\n private app: App,\n private appManger: AppManagerService\n ) {}\n\n ngOnInit() {\n if (this.app.isPrefabType) {\n // there is only one route\n this.router.navigate(['prefab-preview']);\n } else if (this.app.isApplicationType) {\n this.securityService.getPageByLoggedInUser().then(page => {\n this.router.navigate([page]);\n });\n } else {\n this.router.navigate([getWmProjectProperties().homePage]);\n this.appManger.postAppTypeInfo();\n }\n }\n}\n","import {\n ComponentFactoryResolver,\n Directive,\n ElementRef,\n Inject,\n Injector,\n Self,\n ViewContainerRef\n} from '@angular/core';\n\nimport { WidgetRef } from '@wm/components/base';\n\nimport { PrefabManagerService } from '../services/prefab-manager.service';\nimport { ComponentRefProvider, ComponentType } from '../types/types';\n\n@Directive({\n selector: '[wmPrefab][prefabname]'\n})\nexport class PrefabDirective {\n\n constructor(\n @Self() @Inject(WidgetRef) public componentInstance,\n public vcRef: ViewContainerRef,\n public elRef: ElementRef,\n private prefabMngr: PrefabManagerService,\n private resolver: ComponentFactoryResolver,\n private injector: Injector,\n private componentRefProvider: ComponentRefProvider\n ) {\n const prefabName = this.componentInstance.prefabName;\n\n this.prefabMngr.loadDependencies(prefabName)\n .then(async () => {\n const componentFactory = await this.componentRefProvider.getComponentFactoryRef(prefabName, ComponentType.PREFAB);\n if (componentFactory) {\n const instanceRef = this.vcRef.createComponent(componentFactory, 0, injector);\n this.elRef.nativeElement.appendChild(instanceRef.location.nativeElement);\n }\n });\n }\n}\n","import { Compiler, Injectable, Injector, ChangeDetectorRef, InjectionToken, KeyValueDiffers, Pipe, Inject } from '@angular/core';\nimport {\n AsyncPipe,\n UpperCasePipe,\n LowerCasePipe,\n JsonPipe,\n SlicePipe,\n DecimalPipe,\n PercentPipe,\n TitleCasePipe,\n CurrencyPipe,\n DatePipe,\n I18nPluralPipe,\n I18nSelectPipe,\n KeyValuePipe,\n NgLocalization\n} from '@angular/common'\nimport {\n SuffixPipe,\n ToDatePipe,\n FileIconClassPipe,\n FileExtensionFromMimePipe,\n FilterPipe,\n FileSizePipe,\n ToNumberPipe,\n ToCurrencyPipe,\n PrefixPipe,\n TimeFromNowPipe,\n NumberToStringPipe,\n StateClassPipe,\n StringToNumberPipe,\n CustomPipe,\n TrustAsPipe,\n SanitizePipe\n} from '@wm/components/base';\nimport { getSessionStorageItem, CustomPipeManager, AbstractI18nService } from '@wm/core';\nimport {DomSanitizer} from \"@angular/platform-browser\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PipeProvider {\n _pipeMeta;\n _locale = getSessionStorageItem('selectedLocale') || 'en';\n formatsByLocale;\n preparePipeMeta = (\n reference: Pipe,\n name: string,\n pure: boolean,\n diDeps = []\n ) => ({\n type: { reference, diDeps },\n name,\n pure\n });\n _pipeData = [];\n\n setPipeData() {\n this._pipeData = [\n // TODO | NEED TO BE TESTED\n this.preparePipeMeta(AsyncPipe, 'async', false, [ChangeDetectorRef]),\n this.preparePipeMeta(SlicePipe, 'slice', false),\n this.preparePipeMeta(PercentPipe, 'percent', true, [this._locale]),\n this.preparePipeMeta(I18nPluralPipe, 'i18nPlural', true, [\n NgLocalization\n ]),\n this.preparePipeMeta(I18nSelectPipe, 'i18nSelect', true),\n this.preparePipeMeta(KeyValuePipe, 'keyvalue', false, [\n KeyValueDiffers\n ]),\n this.preparePipeMeta(FileIconClassPipe, 'fileIconClass', true),\n this.preparePipeMeta(\n FileExtensionFromMimePipe,\n 'fileExtensionFromMime',\n true\n ),\n this.preparePipeMeta(StateClassPipe, 'stateClass', true),\n this.preparePipeMeta(FileSizePipe, 'filesize', true),\n // TESTED\n this.preparePipeMeta(FilterPipe, 'filter', true),\n this.preparePipeMeta(UpperCasePipe, 'uppercase', true),\n this.preparePipeMeta(LowerCasePipe, 'lowercase', true),\n this.preparePipeMeta(JsonPipe, 'json', false),\n this.preparePipeMeta(DecimalPipe, 'number', true, [this._locale]),\n this.preparePipeMeta(TitleCasePipe, 'titlecase', true),\n this.preparePipeMeta(CurrencyPipe, 'currency', true, [this._locale]),\n this.preparePipeMeta(DatePipe, 'date', true, [this._locale]),\n this.preparePipeMeta(ToDatePipe, 'toDate', true, [\n new DatePipe(this._locale), undefined, this.injector.get(CustomPipeManager)\n ]),\n this.preparePipeMeta(ToNumberPipe, 'toNumber', true, [\n new DecimalPipe(this._locale),\n this.i18service\n ]),\n this.preparePipeMeta(ToCurrencyPipe, 'toCurrency', true, [\n new DecimalPipe(this._locale),\n this.i18service\n ]),\n this.preparePipeMeta(PrefixPipe, 'prefix', true),\n this.preparePipeMeta(SuffixPipe, 'suffix', true),\n this.preparePipeMeta(TimeFromNowPipe, 'timeFromNow', true),\n this.preparePipeMeta(NumberToStringPipe, 'numberToString', true, [\n new DecimalPipe(this._locale)\n ]),\n this.preparePipeMeta(StringToNumberPipe, 'stringToNumber', true),\n this.preparePipeMeta(CustomPipe, 'custom', true, [this.injector.get(CustomPipeManager)]),\n this.preparePipeMeta(TrustAsPipe, 'trustAs', true, [this.domSanitizer]),\n this.preparePipeMeta(SanitizePipe, 'sanitize', true, [this.domSanitizer])\n ];\n }\n\n\n unknownPipe(name) {\n throw Error(`The pipe '${name}' could not be found`);\n }\n\n constructor(private compiler: Compiler, private injector: Injector, private domSanitizer:DomSanitizer, private i18service: AbstractI18nService) {\n this._pipeMeta = new Map();\n this.setPipeData();\n this._pipeData.forEach(v => {\n this._pipeMeta.set(v.name, v);\n });\n this.formatsByLocale = this.i18service? this.i18service.getwidgetLocale() : {};\n }\n\n meta(name) {\n const meta = this._pipeMeta.get(name);\n if (!meta) {\n this.unknownPipe(name);\n }\n return meta;\n }\n\n getPipeNameVsIsPureMap() {\n const _map = new Map();\n this._pipeMeta.forEach((v, k) => {\n _map.set(k, v.pure);\n });\n return _map;\n }\n\n resolveDep(dep) {\n return this.injector.get(dep.token.identifier.reference);\n }\n\n getInstance(name) {\n const {\n type: { reference: ref, diDeps: deps }\n } = this.meta(name);\n if (!ref) {\n this.unknownPipe(name);\n }\n\n if (!deps.length) {\n return new ref();\n } else {\n const args = [];\n for (const dep of deps) {\n args.push(dep);\n }\n return new ref(...args);\n }\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { PipeProvider } from \"./pipe-provider.service\";\nimport { App } from \"@wm/core\";\n\n@Injectable({ providedIn: 'root' })\nexport class PipeService {\n constructor(private pipeProvider: PipeProvider,\n private $app: App) {\n if(this.$app.isApplicationType) {\n this.supportedPipes.push('custom');\n }\n }\n\n private supportedPipes = [ \"toDate\", \"toCurrency\", \"prefix\", \"suffix\", \"numberToString\", \"stringToNumber\", \"timeFromNow\", \"trustAs\", \"sanitize\"];\n\n public getPipe(name: string) {\n if(this.supportedPipes.includes(name)) {\n return this.pipeProvider.getInstance(name);\n } else {\n throw Error(`The pipe '${name}' could not be found`);\n }\n }\n}\n","import { Injectable, Injector } from '@angular/core';\nimport { RouteReuseStrategy } from '@angular/router';\n\nimport {\n AbstractDialogService,\n AbstractHttpService,\n AbstractI18nService,\n AbstractSpinnerService,\n AbstractToasterService,\n EventNotifier,\n FieldTypeService,\n FieldWidgetService,\n getWmProjectProperties,\n isDefined,\n ConstantService,\n UtilsService,\n DynamicComponentRefProvider,\n StatePersistence,\n Viewport,\n registerFnByExpr\n} from '@wm/core';\nimport { SecurityService } from '@wm/security';\n\nimport { WmDefaultRouteReuseStrategy } from '../util/wm-route-reuse-strategy';\nimport { PipeService } from \"./pipe.service\";\nimport {each, get, isEmpty, isString} from \"lodash-es\";\n\nconst injectorMap = {\n DialogService: AbstractDialogService,\n i18nService: AbstractI18nService,\n PipeService: PipeService,\n statePersistence: StatePersistence,\n SpinnerService: AbstractSpinnerService,\n StatePersistenceService: StatePersistence,\n Viewport: Viewport,\n ToasterService: AbstractToasterService,\n Utils: UtilsService,\n CONSTANTS: ConstantService,\n FIELD_TYPE: FieldTypeService,\n FIELD_WIDGET: FieldWidgetService,\n DynamicComponentService: DynamicComponentRefProvider\n};\n\nconst enum PROJECT_TYPE {\n APPLICATION = 'APPLICATION',\n PREFAB = 'PREFAB',\n TEMPLATE_BUNDLE = 'TEMPLATEBUNDLE'\n}\n\nconst noop = (...args) => {};\n\n// Wraps httpService to behave as angular 1.x $http service.\nconst getHttpDependency = function() {\n const httpService = this.httpService;\n const fn = function (key, options?) {\n const args = Array.from(arguments).slice(1);\n return Promise.resolve(httpService[key].apply(httpService, args));\n };\n const $http = function () {\n return fn.apply(undefined, ['send', ...Array.from(arguments)]);\n };\n ['get', 'post', 'head', 'put', 'delete', 'jsonp', 'patch'].forEach(key => $http[key] = fn.bind(undefined, key));\n return $http;\n};\n\n@Injectable()\nexport class AppRef {\n Variables: any = {};\n Actions: any = {};\n onAppVariablesReady = noop;\n onBeforeAppReady = noop;\n onSessionTimeout = noop;\n onPageReady = noop;\n onBeforePageLeave = noop;\n onBeforeServiceCall = noop;\n onServiceSuccess = noop;\n onServiceError = noop;\n dynamicComponentContainerRef = {};\n\n projectName: string;\n isPrefabType: boolean;\n isApplicationType: boolean;\n isTabletApplicationType: boolean;\n isTemplateBundleType: boolean;\n\n targetPlatform: string;\n\n appLocale: any;\n\n changeLocale = this.i18nService.setSelectedLocale.bind(this.i18nService);\n getSelectedLocale = this.i18nService.getSelectedLocale.bind(this.i18nService);\n setTimezone = this.i18nService.setTimezone.bind(this.i18nService);\n setwidgetLocale = this.i18nService.setwidgetLocale.bind(this.i18nService);\n\n private _eventNotifier = new EventNotifier();\n\n landingPageName = getWmProjectProperties().homePage;\n\n reload() {\n window.location.reload();\n }\n\n constructor(\n private inj: Injector,\n private i18nService: AbstractI18nService,\n private statePersistence: StatePersistence,\n private httpService: AbstractHttpService,\n private securityService: SecurityService,\n private routeReuseStrategy: RouteReuseStrategy\n ) {\n\n const wmProjectProperties = getWmProjectProperties();\n\n this.projectName = wmProjectProperties.name;\n this.isPrefabType = wmProjectProperties.type === PROJECT_TYPE.PREFAB;\n this.isApplicationType = wmProjectProperties.type === PROJECT_TYPE.APPLICATION;\n this.isTemplateBundleType = wmProjectProperties.type === PROJECT_TYPE.TEMPLATE_BUNDLE;\n this.targetPlatform = wmProjectProperties.platformType;\n\n this.httpService.registerOnSessionTimeout(this.on401.bind(this));\n\n this.appLocale = this.i18nService.getAppLocale();\n this.httpService.setLocale(this.appLocale);\n }\n\n public clearPageCache(pageName?: string) {\n if(this.routeReuseStrategy instanceof WmDefaultRouteReuseStrategy) {\n (this.routeReuseStrategy as WmDefaultRouteReuseStrategy).reset(pageName);\n }\n }\n\n public notify(eventName: string, ...data: Array<any>) {\n this._eventNotifier.notify.apply(this._eventNotifier, arguments);\n }\n\n public getDependency(injToken) {\n if (isString(injToken)) {\n if (injToken === 'HttpService') {\n return getHttpDependency.call(this);\n }\n let providerInstance = injectorMap[injToken] && this.inj.get(injectorMap[injToken]);\n if (!providerInstance && this.inj['records']?.values) {\n const values = this.inj['records'].values();\n let next = values?.next();\n while (next && !next.done) {\n if (next?.value?.value?.constructor?.SERVICE_NAME === injToken) {\n return next.value.value;\n }\n next = values.next();\n }\n }\n return providerInstance;\n }\n return this.inj.get(injToken);\n }\n\n /**\n * triggers the onSessionTimeout callback in app.js\n */\n on401() {\n const userInfo = get(this.securityService.get(), 'userInfo');\n // if a previous user exists, a session time out triggered\n if (!isEmpty(userInfo)) {\n this.onSessionTimeout();\n }\n }\n\n public subscribe(eventName, callback: (data: any) => void): () => void {\n return this._eventNotifier.subscribe(eventName, callback);\n }\n\n public notifyApp(template, type, title) {\n const notificationAction = get(this, 'Actions.appNotification');\n const EXCLUDE_NOTIFICATION_MESSAGES = ['PROCESS_REJECTED_IN_QUEUE'];\n const skipDefaultNotification = EXCLUDE_NOTIFICATION_MESSAGES.indexOf(template) !== -1;\n if (notificationAction) {\n // do not notify the error to the app, just throw it in console\n if (skipDefaultNotification) {\n console.warn('App Error', template);\n return;\n }\n type = type || 'success';\n template = notificationAction.getMessage() || template;\n notificationAction.invoke({\n message: template,\n title: isDefined(title) ? title : type.toUpperCase(),\n class: type,\n // If the type is error do not close the toastr\n duration: type.toUpperCase() === 'ERROR' ? 0 : undefined\n });\n } else {\n console.warn('The default Action \"appNotification\" doesn\\'t exist in the app. App notified following error:\\n', template);\n }\n }\n\n /**\n * function to register bind expressions from app variables\n * it will be called from app.js in generated angular app\n * @param expressions, map of bind expression vs generated function\n */\n public registerExpressions(expressions) {\n each(expressions, (fn, expr) => {\n registerFnByExpr(expr, fn[0], fn[1]);\n });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ToastrService } from 'ngx-toastr';\n\nimport { AbstractToasterService, isDefined } from '@wm/core';\n\nimport { CustomToasterComponent } from '../components/custom-toaster.component';\nimport {isNumber, isObject, merge} from \"lodash-es\";\n\n@Injectable()\nexport class ToasterServiceImpl extends AbstractToasterService {\n\n constructor(private toaster: ToastrService) {\n super();\n }\n\n private _showToaster (type: string, title: string, desc: string, options?: any) {\n // backward compatibility (in 9.x, 4th param is timeout value).\n if (isNumber(options)) {\n options = {timeOut: options};\n }\n\n options = options || {};\n options.timeOut = isDefined(options.timeOut) ? options.timeOut : 0;\n options.enableHtml = isDefined(options.enableHtml);\n options.positionClass = options.positionClass || 'toast-bottom-right';\n options.toastClass = 'toast';\n // pop the toaster only if either title or description are defined\n if (title || desc) {\n // if the desc is an object, stringify it.\n if (!options.bodyOutputType && isObject(desc)) {\n desc = JSON.stringify(desc);\n }\n const fn = this.toaster[type];\n if (fn) {\n return fn.call(this.toaster, desc, title, options);\n }\n }\n }\n\n public success (title, desc) {\n return this._showToaster('success', title, desc, {timeOut: 5000});\n }\n\n public error (title, desc) {\n return this._showToaster('error', title, desc, {timeOut: 0});\n }\n\n public info (title, desc) {\n return this._showToaster('info', title, desc, {timeOut: 0});\n }\n\n public warn (title, desc) {\n return this._showToaster('warning', title, desc, {timeOut: 0});\n }\n\n public show (type, title, desc, options) {\n return this._showToaster(type, title, desc, options);\n }\n\n public hide (toasterObj) {\n // in studio just ignore the toasterObj and hide all the toasters\n if (!toasterObj) {\n this.toaster.clear();\n return;\n }\n this.toaster.clear(toasterObj.toastId);\n }\n\n public showCustom(page, options) {\n if (!page) {\n return;\n }\n options = options || {};\n options.toastComponent = CustomToasterComponent;\n options.toastClass = 'custom-toaster';\n options.timeOut = isDefined(options.timeOut) ? options.timeOut : 0;\n options.enableHtml = isDefined(options.enableHtml);\n options.positionClass = options.positionClass || 'toast-bottom-right';\n options.toastClass = 'toast';\n return this.toaster.show(page, '', options);\n }\n\n /**\n * Updates the Global Toaster options based on the passed object. Useful in cases where\n * a user wants to display multiple toasts at the same time, newest on bottom etc\n * @param {options} Object\n */\n public setToasterConfig(options) {\n if (isObject(options)) {\n merge(this.toaster.toastrConfig, options);\n } else {\n console.warn('Please pass a valid options object, For Example : {maxOpened: 1, autoDismiss: true}');\n }\n }\n}\n","import { Injectable, Injector } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { defineLocale } from 'ngx-bootstrap/chronos';\nimport { BsLocaleService } from 'ngx-bootstrap/datepicker';\n\nimport {\n _WM_APP_PROJECT,\n AbstractI18nService,\n AppDefaults,\n getSessionStorageItem,\n getWmProjectProperties,\n isMobile,\n isMobileApp,\n loadScripts,\n replace,\n setCSS,\n setSessionStorageItem,\n App\n} from '@wm/core';\nimport { CONSTANTS } from '@wm/variables';\nimport {find, forEach, get, includes, intersection, isObject, map, toLower} from \"lodash-es\";\n\ndeclare const moment;\n\nconst APP_LOCALE_ROOT_PATH = 'resources/i18n';\nconst RTL_LANGUAGE_CODES = ['ar', 'ar-001', 'ar-ae', 'ar-bh', 'ar-dz', 'ar-eg', 'ar-iq', 'ar-jo', 'ar-kw', 'ar-lb', 'ar-ly',\n 'ar-ma', 'ar-om', 'ar-qa', 'ar-sa', 'ar-sd', 'ar-sy', 'ar-tn', 'ar-ye', 'arc', 'bcc', 'bqi', 'ckb', 'dv', 'fa', 'glk',\n 'he', 'ku', 'mzn', 'pnb', 'ps', 'sd', 'ug', 'ur', 'yi'];\n\n@Injectable()\nexport class I18nServiceImpl extends AbstractI18nService {\n\n private selectedLocale: string;\n private defaultSupportedLocale = 'en';\n private readonly appLocale: any;\n private readonly prefabLocale: Map<String, any>;\n private messages: any;\n private _isAngularLocaleLoaded = false;\n private formatsByLocale = {'timezone': '', 'number': ''};\n private get app() { return this.inj.get(App) };\n\n private bundleLoaded:{[key:string] : any} = {};\n\n constructor(\n private $http: HttpClient,\n private bsLocaleService: BsLocaleService,\n private appDefaults: AppDefaults,\n private inj: Injector\n ) {\n super();\n this.appLocale = {};\n this.prefabLocale = new Map();\n }\n\n private updateLocaleDirection() {\n let direction: 'ltr' | 'rtl' = 'ltr';\n if (RTL_LANGUAGE_CODES.includes(this.selectedLocale)) {\n direction = 'rtl';\n }\n\n setCSS(document.body, 'direction', direction);\n }\n\n private init() {\n this.messages = {};\n\n Object.setPrototypeOf(this.appLocale, this.messages);\n }\n\n public getSelectedLocale(): string {\n return this.selectedLocale;\n }\n\n public getDefaultSupportedLocale(): string {\n return this.defaultSupportedLocale;\n }\n\n public getAppLocale(): any {\n return this.appLocale;\n }\n\n public getPrefabLocaleBundle(prefabName: string): any {\n if (!this.prefabLocale.has(prefabName)) {\n this.prefabLocale.set(prefabName, Object.create(this.appLocale));\n }\n return this.prefabLocale.get(prefabName);\n }\n\n private extendPrefabMessages(messages: any): void {\n if (!messages.prefabMessages) {\n return;\n }\n\n Object.keys(messages.prefabMessages).forEach((prefabName: string) => {\n let bundle = this.prefabLocale.get(prefabName);\n if (!bundle) {\n bundle = Object.create(this.appLocale);\n this.prefabLocale.set(prefabName, bundle);\n }\n Object.assign(bundle, messages.prefabMessages[prefabName]);\n });\n }\n\n private extendMessages(messages: any): void {\n Object.assign(this.messages, messages);\n }\n\n private loadResource(path): Promise<any> {\n return this.$http.get(path)\n .toPromise()\n .catch(() => {\n console.warn(`error loading locale resource from ${path}`);\n Promise.resolve({});\n });\n }\n\n protected loadAppLocaleBundle() {\n this.loadResource(`${APP_LOCALE_ROOT_PATH}/${this.selectedLocale}.json`)\n .then(bundle => {\n this.extendMessages(bundle.messages);\n this.extendPrefabMessages(bundle);\n this.appDefaults.setFormats(bundle.formats);\n this.bundleLoaded.app = true;\n this.notifyLocaleChanged();\n });\n }\n\n protected loadMomentLocaleBundle(momentLocale) {\n const _cdnUrl = _WM_APP_PROJECT.cdnUrl || _WM_APP_PROJECT.ngDest;\n if (this.selectedLocale === this.defaultSupportedLocale) {\n moment.locale(this.defaultSupportedLocale);\n return;\n }\n const path = _cdnUrl + `locales/moment/${momentLocale}.js`;\n loadScripts([path], true).then(()=>{\n moment.locale(this.selectedLocale);\n\n // For ngx bootstrap locale, get the config from script and apply locale\n // moment.localeData(momentLocale) will return moment locale instance. _config inside will have actual config\n let _config = moment.localeData(momentLocale);\n _config = _config && _config._config;\n defineLocale(this.selectedLocale, _config);\n this.bsLocaleService.use(this.getSelectedLocale() || this.defaultSupportedLocale);\n this.bundleLoaded.moment = true;\n this.notifyLocaleChanged();\n })\n }\n\n protected loadAngularLocaleBundle(angLocale) {\n return new Promise<void>(resolve => {\n const _cdnUrl = _WM_APP_PROJECT.cdnUrl || _WM_APP_PROJECT.ngDest;\n if (this.selectedLocale === this.defaultSupportedLocale) {\n resolve();\n return;\n }\n const path = _cdnUrl + `locales/angular/global/${angLocale}.js`;\n\n loadScripts([path], true).then(()=>{\n this._isAngularLocaleLoaded = true;\n resolve();\n }, resolve);\n });\n }\n\n protected loadCalendarLocaleBundle(calendarLocale, force = false) {\n const _cdnUrl = _WM_APP_PROJECT.cdnUrl || _WM_APP_PROJECT.ngDest;\n let path: string;\n if (calendarLocale) {\n path = _cdnUrl + `locales/fullcalendar/${calendarLocale}.js`;\n } else {\n return Promise.resolve();\n }\n\n // return in case of mobile app or if selected locale is default supported locale.\n if (!force && (isMobile() || isMobileApp() || this.selectedLocale === this.defaultSupportedLocale)) {\n this.bundleLoaded.fullCalendar = true;\n return;\n }\n\n // Call the script. In script, moment defines the loaded locale\n return loadScripts([path], true);\n }\n\n protected loadMomentTimeZoneBundle(locale, compInstance?) {\n return new Promise<void>(resolve => {\n const _cdnUrl = _WM_APP_PROJECT.cdnUrl || _WM_APP_PROJECT.ngDest;\n const path = _cdnUrl + `locales/moment-timezone/moment-timezone-with-data.js`;\n loadScripts([path], true).then(()=>{\n /**\n * If locale is provided in the form of offset and not timezone name, deduce the name.\n * If locale is provided as GMT+9, name will be deduced as Asia/Tokyo\n */\n\n let localeObj = locale;\n locale = localeObj['timezone'];\n const localeIndex = locale.indexOf('+');\n if (localeIndex > -1) {\n if (localeIndex > 0) {\n locale = locale.substr(localeIndex);\n }\n localeObj['timezone'] = find(moment.tz.names(), (timezoneName) => {\n return locale === moment.tz(timezoneName).format('Z');\n });\n }\n moment.tz.setDefault(locale);\n const localeData = compInstance && compInstance.formatsByLocale ? compInstance.formatsByLocale : this.formatsByLocale;\n Object.assign(localeData, localeObj);\n resolve();\n }, resolve);\n });\n }\n\n protected loadLocaleBundles(libLocale) {\n if (libLocale.moment) {\n this.loadMomentLocaleBundle(libLocale.moment);\n } else if (this.selectedLocale === this.defaultSupportedLocale) {\n this.bsLocaleService.use(this.getSelectedLocale() || this.defaultSupportedLocale);\n this.bundleLoaded.moment = true;\n }\n if (libLocale.fullCalendar && window['FullCalendar']) {\n this.loadCalendarLocaleBundle(libLocale.fullCalendar)?.then(() => {\n this.bundleLoaded.fullCalendar = true;\n this.notifyLocaleChanged();\n });\n } else {\n this.bundleLoaded.fullCalendar = true;\n }\n if (libLocale.angular) {\n this.loadAppLocaleBundle();\n }\n return this.loadAngularLocaleBundle(libLocale.angular);\n }\n\n public setTimezone(locale, compInstance?) {\n this.loadMomentTimeZoneBundle(locale, compInstance);\n }\n\n public getTimezone(compInstance?) {\n const pageConfig = get(this.app, 'activePage.formatsByLocale.timezone');\n const compConfig = get(compInstance, 'formatsByLocale.timezone');\n if (compConfig) {\n return compConfig;\n } else if (pageConfig) {\n return pageConfig;\n } else {\n return this.formatsByLocale['timezone'];\n }\n }\n\n public getFormatsByLocale() {\n return this.formatsByLocale;\n }\n\n public setSelectedLocale(locale) {\n\n // check if the event is propagated from the select or any such widget\n if (isObject(locale)) {\n // @ts-ignore\n locale = locale.datavalue;\n }\n\n const libLocale = getWmProjectProperties().supportedLanguages[locale];\n const supportedLocale = Object.keys(getWmProjectProperties().supportedLanguages);\n\n if (!includes(supportedLocale, locale)) {\n return Promise.resolve();\n }\n\n if (!locale || locale === this.selectedLocale) {\n return Promise.resolve();\n }\n\n setSessionStorageItem('selectedLocale', locale);\n\n this.selectedLocale = locale;\n\n // reset the localeData object\n this.init();\n\n this.bundleLoaded.moment = false;\n this.bundleLoaded.fullCalendar = false;\n this.bundleLoaded.app = false;\n this.bundleLoaded.angular = false;\n this.bundleLoaded.libLocale = libLocale;\n\n // load the locale bundles of the selected locale\n return this.loadLocaleBundles(libLocale).then(() => {\n this.updateLocaleDirection();\n this.bundleLoaded.angular = true;\n this.notifyLocaleChanged();\n });\n }\n\n private deduceAppLocale() {\n // computation to find app default locale\n const _acceptLang = this.getAcceptedLanguages();\n const _defaultLanguage = getWmProjectProperties().defaultLanguage;\n _acceptLang.push(_defaultLanguage);\n\n // checks whether user preference is based on browser set languages or default language set in project\n let preferBrowserLang = getWmProjectProperties().preferBrowserLang;\n if (!preferBrowserLang) { // when preferBrowserLang is not defined, set to its default value\n preferBrowserLang = true;\n } else { // convert stringified boolean values recieved from BE to booleans\n preferBrowserLang= (preferBrowserLang === 'true' || preferBrowserLang === true) ? true : false;\n }\n\n let _supportedLang = Object.keys(getWmProjectProperties().supportedLanguages) || [this.defaultSupportedLocale];\n\n // when preference is given to browser set languages, do not populate _selectedDefaultLang variable\n let _selectedDefaultLang = preferBrowserLang ? undefined : _defaultLanguage;\n\n let _appSupportedLang;\n /**\n * for cordova, check for language ignoring the locale\n * As the navigator.languages always returns the language with locale (en-us)\n * The supportedLanguages from BE doesn't include locale (en) which leads to mismatch\n */\n if (CONSTANTS.hasCordova) {\n let supportedLang = [];\n forEach(_acceptLang, function (lang) {\n let matchedLang = find(_supportedLang, (val) => lang === val) || find(_supportedLang, (val) => lang.startsWith(val));\n if (matchedLang) {\n supportedLang.push(matchedLang);\n }\n })\n _appSupportedLang = supportedLang[0];\n }\n // check for the session storage to load any pre-requested locale\n const _defaultLang = getSessionStorageItem('selectedLocale') || _selectedDefaultLang || _appSupportedLang || intersection(_acceptLang, _supportedLang)[0] || this.defaultSupportedLocale;\n // if the supportedLocale is not available set it to defaultLocale\n _supportedLang = _supportedLang || [_defaultLang];\n\n const defaultLanguage = _defaultLang || _supportedLang[0];\n return defaultLanguage;\n }\n\n public loadDefaultLocale() {\n Date.prototype[\"month\"] = Date.prototype.getMonth;\n const locale = this.deduceAppLocale();\n return this.setSelectedLocale(locale);\n }\n\n public getLocalizedMessage(message, ...args) {\n return replace(this.appLocale[message], args);\n }\n\n // This function returns the accepted languages list\n public getAcceptedLanguages() {\n let languages;\n if (CONSTANTS.hasCordova) {\n languages = navigator.languages || [navigator.language];\n } else {\n languages = decodeURIComponent(getWmProjectProperties().preferredLanguage || '');\n /**\n * Accept-Language Header will contain set of supported locale, so try splitting the string to proper locale set\n * Ex: en,en-US;q=0.9,de;q=0.6,ar;q=0.2,hi\n *\n * Split the above into [en,en-us,de,ar,hi]\n * @type {Array}\n */\n languages = languages.split(',').map(function(locale) {\n return locale.split(';')[0];\n });\n }\n return map(languages, toLower);\n }\n\n public initCalendarLocale(): Promise<any> {\n if (this.selectedLocale !== 'en') {\n return this.loadCalendarLocaleBundle(this.selectedLocale, true);\n }\n return Promise.resolve();\n }\n\n public isAngularLocaleLoaded() {\n return this._isAngularLocaleLoaded;\n }\n\n public setwidgetLocale(locale) {\n this.formatsByLocale['number'] = locale['number'];\n }\n\n public getwidgetLocale() {\n return this.formatsByLocale;\n }\n\n private notifyLocaleChanged() {\n if(this.bundleLoaded.moment && this.bundleLoaded.fullCalendar && this.bundleLoaded.angular && this.bundleLoaded.app) {\n this.app.notify( 'locale-changed', this.bundleLoaded.libLocale);\n }\n }\n\n}\n","import { Injectable } from '@angular/core';\n\nimport { Subject } from 'rxjs';\n\nimport { AbstractSpinnerService } from '@wm/core';\nimport {findKey, includes, keys, values} from \"lodash-es\";\n\ndeclare const $;\n\nconst spinnerTemplate = `<div class=\"app-spinner\">\n <div class=\"spinner-message\" aria-label=\"loading gif\">\n <i class=\"spinner-image animated infinite fa fa-circle-o-notch fa-spin\"></i>\n <div class=\"spinner-messages\">\n <p class=\"spinner-messages-container\"></p>\n </div>\n </div>\n </div>`;\n\n@Injectable()\nexport class SpinnerServiceImpl extends AbstractSpinnerService {\n spinnerId = 0;\n messageSource = new Subject();\n messagesByContext = {};\n\n constructor() {\n super();\n }\n\n /**\n * returns the message source subject\n * @returns {Subject<any>}\n */\n getMessageSource() {\n return this.messageSource;\n }\n\n /**\n * show spinner on a container element\n */\n showContextSpinner(ctx: string, message: string, id: string) {\n const ctxMarkup = $('[name=\"' + ctx + '\"]');\n this.messagesByContext[ctx] = this.messagesByContext[ctx] || {};\n // If the spinner already exists on the context\n // then just append the message to the existing spinner message\n // else add a new spinner\n if (Object.keys(this.messagesByContext[ctx]).length !== 0 ) {\n this.messagesByContext[ctx][id] = message;\n this.messagesByContext[ctx]['finalMessage'] = this.messagesByContext[ctx]['finalMessage'] + ' ' + this.messagesByContext[ctx][id];\n ctxMarkup.find('.spinner-messages-container').html(this.messagesByContext[ctx]['finalMessage']);\n } else {\n const ctxSpinnerTemp = $(spinnerTemplate);\n this.messagesByContext[ctx][id] = message;\n this.messagesByContext[ctx]['finalMessage'] = this.messagesByContext[ctx][id];\n ctxSpinnerTemp.find('.spinner-messages-container').html(this.messagesByContext[ctx]['finalMessage']);\n ctxMarkup.prepend(ctxSpinnerTemp);\n }\n return id;\n }\n\n /**\n * show the app spinner with provided message\n * @param msg\n * @returns {string}\n */\n showAppSpinner(msg, id) {\n const ctx = 'page';\n this.messagesByContext[ctx] = this.messagesByContext[ctx] || {};\n this.messagesByContext[ctx][id] = msg;\n\n this.messageSource.next({\n show: true,\n message: msg,\n messages: values(this.messagesByContext[ctx])\n });\n }\n\n /**\n * hides the spinner on a particular container(context)\n * @param ctx\n * @param id\n */\n hideContextSpinner(ctx, id) {\n delete this.messagesByContext[ctx][id];\n if (Object.keys(this.messagesByContext[ctx]).length === 1) {\n this.messagesByContext[ctx] = {};\n }\n const ctxMarkup = $('[name=\"' + ctx + '\"]');\n ctxMarkup.find('.app-spinner').remove();\n }\n\n /**\n * show spinner\n * @param message\n * @param id\n * @param spinnerClass\n * @param spinnerContext\n * @param variableScopeId\n * @returns {any}\n */\n show(message, id?, spinnerClass?, spinnerContext?, variableScopeId?) {\n id = id || ++this.spinnerId;\n // if spinnerContext is passed, then append the spinner to the element(default method for variable calls).\n if (spinnerContext && spinnerContext !== 'page') {\n // return after the compiled spinner is appended to the element reference\n return this.showContextSpinner(spinnerContext, message, id);\n }\n\n this.showAppSpinner(message, id);\n return id;\n }\n\n /**\n * hide the spinner\n * @param spinnerId\n */\n hide(id) {\n // find the spinner context of the id from the messagesByContext\n const ctx = findKey(this.messagesByContext, function (obj) {\n return includes(keys(obj), id);\n }) || 'page';\n\n // if spinnerContext exists just remove the spinner from the reference and destroy the scope associated.\n if (ctx !== 'page') {\n this.hideContextSpinner(ctx, id);\n return;\n }\n\n if (id) {\n delete this.messagesByContext[ctx][id];\n const messages = values(this.messagesByContext[ctx]);\n this.messageSource.next({\n show: messages.length ? true : false,\n messages: values(this.messagesByContext[ctx])\n });\n } else {\n this.messagesByContext[ctx] = {};\n }\n }\n}\n","import { Injectable, NgZone } from '@angular/core';\nimport { NavigationStart, Router } from '@angular/router';\n\nimport { App, NavigationOptions, AbstractNavigationService } from '@wm/core';\nimport { CONSTANTS } from '@wm/variables';\nimport {filter, isEmpty, isEqual} from \"lodash-es\";\n\ndeclare const $;\n\nconst parentSelector = 'body >app-root';\n\n@Injectable()\nexport class NavigationServiceImpl implements AbstractNavigationService {\n private history = new History();\n private transition: string;\n private isPageAddedToHistory = false;\n\n constructor(private app: App, private router: Router, public zone: NgZone) {\n this.router.events.subscribe(event => {\n if (event instanceof NavigationStart) {\n const url = event.url;\n const urlParams = {};\n let pageName;\n if (!this.isPageAddedToHistory) {\n this.isPageAddedToHistory = false;\n if (url.indexOf('?') > 0) {\n url.substr(url.indexOf('?') + 1)\n .split('&')\n .forEach(s => {\n const splits = s.split('=');\n urlParams[splits[0]] = splits[1];\n });\n pageName = url.substr(0, url.indexOf('?'));\n } else {\n pageName = url;\n }\n if (pageName[0] === '/') {\n pageName = pageName.substr(1);\n }\n if (pageName) {\n /*\n * Commenting this code, one client project has Home_Page configured as Login Page.\n * So redirection to Home_Page post login is failing\n // if login page is being loaded and user is logged in, cancel that.\n if ($rs.isApplicationType) {\n stopLoginPagePostLogin($p);\n }\n */\n delete urlParams['name'];\n\n this.history.push(new PageInfo(pageName, urlParams, this.transition));\n }\n }\n }\n });\n }\n\n public getPageTransition() {\n if (isEmpty(this.transition) || isEqual('none', this.transition)) {\n return null;\n }\n return this.transition;\n }\n\n /**\n * Navigates to particular page\n * @param pageName\n * @param options\n */\n public goToPage(pageName: string, options: NavigationOptions) {\n this.transition = options.transition || '';\n // page is added to stack only when currentPage is available.\n if (this.history.getCurrentPage()) {\n this.isPageAddedToHistory = true;\n }\n this.history.push( new PageInfo(pageName, options.urlParams, this.transition));\n /**\n * BrowserAnimcation module has issue with RouterOutlet\n In the result every route appending to previous route instead of replace.\n To fix the issue we are navigating inside the ngZones\n *\n * */\n this.zone.run(() => {\n return this.router.navigate([`/${pageName}`], { queryParams: options.urlParams});\n });\n\n }\n\n /**\n * Navigates to last visited page.\n */\n public goToPrevious() {\n if (this.history.getPagesCount()) {\n this.transition = this.history.getCurrentPage().transition;\n if (!isEmpty(this.transition)) {\n this.transition += '-exit';\n }\n this.history.pop();\n this.isPageAddedToHistory = true;\n window.history.back();\n }\n }\n\n /** Todo[Shubham] Need to handle gotoElement in other partials\n * Navigates to particular view\n * @param viewName\n * @param options\n * @param variable\n */\n public goToView(viewName: string, options: NavigationOptions, variable: any) {\n options = options || {};\n const pageName = options.pageName;\n const transition = options.transition || '';\n const $event = options.$event;\n const activePage = this.app.activePage;\n const prefabName = variable && variable._context && variable._context.prefabName;\n\n // Check if app is Prefab\n if (this.app.isPrefabType) {\n this.goToElementView($(parentSelector).find('[name=\"' + viewName + '\"]'), viewName, pageName, variable);\n } else {\n // checking if the element is present in the page or not, if no show an error toaster\n // if yes check if it is inside a partial/prefab in the page and then highlight the respective element\n // else goto the page in which the element exists and highlight the element\n if (pageName !== activePage.activePageName && !prefabName) {\n if (this.isPartialWithNameExists(pageName)) {\n this.goToElementView($('[partialcontainer][content=\"' + pageName + '\"]').find('[name=\"' + viewName + '\"]'), viewName, pageName, variable);\n } else {\n // Todo[Shubham]: Make an API call to get all pages and check if the page name\n // is a page and then do this call else show an error as:\n // this.app.notifyApp(CONSTANTS.WIDGET_DOESNT_EXIST, 'error');\n this.goToPage(pageName, {\n viewName: viewName,\n $event: $event,\n transition: transition,\n urlParams: options.urlParams\n });\n // subscribe to an event named pageReady which notifies this subscriber\n // when all widgets in page are loaded i.e when page is ready\n const pageReadySubscriber = this.app.subscribe('pageReady', (page) => {\n this.goToElementView($(parentSelector).find('[name=\"' + viewName + '\"]'), viewName, pageName, variable);\n pageReadySubscriber();\n });\n }\n } else if (prefabName && this.isPrefabWithNameExists(prefabName)) {\n this.goToElementView($('[prefabName=\"' + prefabName + '\"]').find('[name=\"' + viewName + '\"]'), viewName, pageName, variable);\n } else if (!pageName || pageName === activePage.activePageName) {\n this.goToElementView($(parentSelector).find('[name=\"' + viewName + '\"]'), viewName, pageName, variable);\n } else {\n this.app.notifyApp(CONSTANTS.WIDGET_DOESNT_EXIST, 'error');\n }\n }\n }\n\n /*\n * navigates the user to a view element with given name\n * if the element not found in the compiled markup, the same is searched in the available dialogs in the page\n */\n private goToElementView(viewElement, viewName: string, pageName: string, variable: any) {\n let $el, parentDialog;\n const activePage = this.app.activePage;\n if (viewElement.length) {\n if (!this.app.isPrefabType && pageName === activePage.activePageName) {\n viewElement = this.getViewElementInActivePage(viewElement);\n }\n\n $el = viewElement[0].widget;\n switch ($el.widgetType) {\n case 'wm-accordionpane':\n this.showAncestors(viewElement, variable);\n $el.expand();\n break;\n case 'wm-tabpane':\n this.showAncestors(viewElement, variable);\n $el.select();\n break;\n case 'wm-segment-content':\n this.showAncestors(viewElement, variable);\n $el.navigate();\n break;\n case 'wm-panel':\n /* flip the active flag */\n $el.expanded = true;\n break;\n }\n } else {\n parentDialog = this.showAncestorDialog(viewName);\n setTimeout(() => {\n if (parentDialog) {\n this.goToElementView($('[name=\"' + viewName + '\"]'), viewName, pageName, variable);\n }\n });\n }\n }\n\n /* If page name is equal to active pageName, this function returns the element in the page.\n The element in the partial page is not selected.*/\n private getViewElementInActivePage($el) {\n let selector;\n if ($el.length > 1) {\n selector = filter($el, (childSelector) => {\n if (isEmpty($(childSelector).closest('[data-role = \"partial\"]')) && isEmpty($(childSelector).closest('[wmprefabcontainer]'))) {\n return childSelector;\n }\n });\n if (selector) {\n $el = $(selector);\n }\n }\n return $el;\n }\n\n /**\n * checks if the pagecontainer has the pageName.\n */\n private isPartialWithNameExists(name: string) {\n return $('[partialcontainer][content=\"' + name + '\"]').length;\n }\n\n /**\n * checks if the pagecontainer has the prefab.\n */\n private isPrefabWithNameExists(prefabName: string) {\n return $('[prefabName=\"' + prefabName + '\"]').length;\n }\n\n /*\n * shows all the parent container view elements for a given view element\n */\n private showAncestors(element, variable) {\n const ancestorSearchQuery = '[wm-navigable-element=\"true\"]';\n\n element\n .parents(ancestorSearchQuery)\n .toArray()\n .reverse()\n .forEach((parent) => {\n const $el = parent.widget;\n switch ($el.widgetType) {\n case 'wm-accordionpane':\n $el.expand();\n break;\n case 'wm-tabpane':\n $el.select();\n break;\n case 'wm-segment-content':\n $el.navigate();\n break;\n case 'wm-panel':\n /* flip the active flag */\n $el.expanded = true;\n break;\n }\n });\n }\n\n\n\n /*\n * searches for a given view element inside the available dialogs in current page\n * if found, the dialog is displayed, the dialog id is returned.\n */\n private showAncestorDialog(viewName: string) {\n let dialogId;\n $('app-root [dialogtype]')\n .each(function () {\n const dialog = $(this);\n if ($(dialog.html()).find('[name=\"' + viewName + '\"]').length) {\n dialogId = dialog.attr('name');\n return false;\n }\n });\n return dialogId;\n }\n}\n\nclass PageInfo {\n\n constructor(public name, public urlParams?, public transition?) {\n this.transition = isEmpty(this.transition) ? null : this.transition;\n }\n\n public isEqual(page1: PageInfo) {\n return page1 && page1.name === this.name && isEqual(page1.urlParams, this.urlParams);\n }\n}\n\nclass History {\n private stack: Array<PageInfo> = [];\n private currentPage: PageInfo;\n\n public getCurrentPage() {\n return this.currentPage;\n }\n\n public getPagesCount() {\n return this.stack.length;\n }\n\n public isLastVisitedPage(page: PageInfo) {\n return this.getLastPage().isEqual(page);\n }\n\n public push(pageInfo: PageInfo) {\n if (this.currentPage) {\n this.stack.push(this.currentPage);\n }\n this.currentPage = pageInfo;\n }\n\n public pop() {\n this.currentPage = this.stack.pop();\n return this.currentPage;\n }\n\n public getLastPage() {\n return this.stack.length > 0 ? this.stack[this.stack.length - 1] : undefined;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { AppDefaults } from '@wm/core';\n\n@Injectable()\nexport class AppDefaultsService implements AppDefaults {\n\n constructor() {\n }\n\n dateFormat: string;\n timeFormat: string;\n dateTimeFormat: string;\n currencyCode: string;\n\n setFormats(formats: any) {\n const dateFormat = formats.date;\n const timeFormat = formats.time;\n const dateTimeFormat = (dateFormat && timeFormat) ? dateFormat + ' ' + timeFormat : undefined;\n const currency = formats.currency;\n\n this.dateFormat = dateFormat;\n this.timeFormat = timeFormat;\n this.dateTimeFormat = dateTimeFormat;\n this.currencyCode = currency;\n }\n}\n","import { ActivatedRouteSnapshot } from '@angular/router';\nimport { Injectable } from '@angular/core';\n\nimport { SecurityService } from '@wm/security';\n\nimport { AppManagerService } from '../services/app.manager.service';\n\nlet securityConfigLoaded = false;\n\n@Injectable()\nexport class AuthGuard {\n\n constructor(private securityService: SecurityService, private appManager: AppManagerService) {}\n\n loadSecurityConfig(): Promise<boolean> {\n if (securityConfigLoaded) {\n return Promise.resolve(true);\n }\n\n return this.appManager.loadSecurityConfig().then(() => securityConfigLoaded = true);\n }\n\n isAuthenticated(): Promise<any> {\n return this.loadSecurityConfig()\n .then(() => {\n return new Promise((resolve, reject) => {\n this.securityService.isAuthenticated(resolve, reject);\n });\n });\n }\n\n canActivate(route: ActivatedRouteSnapshot): Promise<any> {\n return this.isAuthenticated()\n .then(isLoggedIn => {\n if (isLoggedIn) {\n return Promise.resolve(true);\n }\n\n this.appManager.handle401(route.routeConfig.path, {queryParams: route.queryParams});\n\n return Promise.resolve(false);\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot } from '@angular/router';\n\nimport { AbstractToasterService, App } from '@wm/core';\nimport { SecurityService } from '@wm/security';\n\nimport { AuthGuard } from './auth.guard';\nimport { AppManagerService } from '../services/app.manager.service';\nimport {intersection} from \"lodash-es\";\n\n@Injectable()\nexport class RoleGuard {\n\n constructor(\n private securityService: SecurityService,\n private authGuard: AuthGuard,\n private toasterService: AbstractToasterService,\n private app: App,\n private appManager: AppManagerService\n ) {}\n\n canActivate(route: ActivatedRouteSnapshot): Promise<boolean> {\n const allowedRoles = route.data.allowedRoles;\n\n return this.authGuard.isAuthenticated()\n .then((isLoggedIn: boolean) => {\n if (isLoggedIn) {\n const userRoles = this.securityService.get().userInfo.userRoles;\n const hasAccess = intersection(allowedRoles, userRoles).length > 0;\n\n if (hasAccess) {\n return Promise.resolve(true);\n }\n\n // current loggedin user doesn't have access to the page that the user is trying to view\n this.appManager.notifyApp(\n this.app.appLocale.LABEL_ACCESS_DENIED || 'Access Denied',\n 'error'\n );\n\n return Promise.resolve(false);\n\n } else {\n // redirect to Login\n this.appManager.handle401(route.routeConfig.path, {queryParams: route.queryParams});\n\n return Promise.resolve(false);\n }\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot } from '@angular/router';\n\nimport { App } from '@wm/core';\nimport { AppManagerService } from '../services/app.manager.service';\n\n@Injectable()\nexport class PageNotFoundGuard {\n\n constructor(\n private app: App,\n private appManager: AppManagerService\n ) {}\n\n canActivate(route: ActivatedRouteSnapshot): Promise<boolean> {\n this.appManager.notifyApp(\n this.app.appLocale.MESSAGE_PAGE_NOT_FOUND || 'The page you are trying to reach is not available',\n 'error'\n );\n return Promise.resolve(false);\n }\n}\n","import { Injectable, Injector } from '@angular/core';\n\n\nimport { App, UtilsService } from '@wm/core';\n\nimport { AppJSProvider } from '../types/types';\nimport { AppManagerService } from '../services/app.manager.service';\n\nlet appJsLoaded = false;\n\n@Injectable()\nexport class AppJSResolve {\n private appManager;\n\n // AppManagerService: To be make sure this instance available for locale(en.json) calls request to track inside intercepter\n constructor(\n private inj: Injector,\n private app: App,\n private utilService: UtilsService,\n private appJsProvider: AppJSProvider\n ) {\n this.appManager = this.inj.get(AppManagerService);\n }\n\n async resolve() {\n if (appJsLoaded) {\n return true;\n }\n\n try {\n // execute app.js\n const appScriptFn = await this.appJsProvider.getAppScriptFn();\n appScriptFn(this.app, this.utilService, this.inj);\n } catch (e) {\n console.warn('Error in executing app.js', e);\n }\n\n appJsLoaded = true;\n\n return true;\n }\n}\n","import { Injectable, Injector } from '@angular/core';\n\n\nimport { App, UtilsService, CustomPipeManager } from '@wm/core';\n\nimport { AppExtensionProvider } from '../types/types';\nimport { AppManagerService } from '../services/app.manager.service';\n\n\nlet appJsLoaded = false;\n\n\n@Injectable()\nexport class AppExtensionJSResolve {\n\n constructor(\n private appManager: AppManagerService,\n private appJsProvider: AppExtensionProvider,\n private customPipeManager: CustomPipeManager\n ) {}\n\n resolve() {\n if(this.appManager.isPrefabType() || this.appManager.isTemplateBundleType()){\n return true;\n }\n if (!appJsLoaded) {\n this.appJsProvider.loadFormatterConfigScript(this.loadedFormatterScript.bind(this));\n appJsLoaded = true;\n }\n return appJsLoaded;\n }\n\n // Formatters load callback\n loadedFormatterScript(response){\n try {\n let formatterObj = response;\n // If user defined the invalid formatters.\n if(!formatterObj){\n console.warn('Please return valid formatter object');\n }\n\n for(let key in formatterObj){\n this.customPipeManager.setCustomPipe(key, formatterObj[key]);\n }\n } catch (e) {\n console.warn('Error in reading formatters.js', e);\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { AbstractI18nService } from '@wm/core';\n\n@Injectable()\nexport class I18nResolve {\n\n constructor(private i18nService: AbstractI18nService) {}\n\n resolve() {\n return this.i18nService.loadDefaultLocale();\n }\n}\n","<ng-container *ngIf=\"startApp\">\n <router-outlet></router-outlet>\n <div wmContainer partialContainer content=\"Common\" hidden class=\"ng-hide\" *ngIf=\"isApplicationType\"></div>\n <app-spinner name=\"globalspinner\" classname=\"global-spinner\" role=\"alert\" aria-live=\"assertive\" [attr.aria-label]=\"spinner.arialabel || 'Loading'\" [show]=\"spinner.show\" [spinnermessages]=\"spinner.messages\"></app-spinner>\n <div wmDialog name=\"oAuthLoginDialog\" title=\"Application is requesting you to sign in with\"\n close.event=\"closeOAuthDialog()\">\n <ng-template #dialogBody>\n <ul class=\"list-items\">\n <li class=\"list-item\" *ngFor=\"let provider of providersConfig\">\n <button class=\"btn\" (click)=\"provider.invoke()\">{{provider.name}}</button>\n </li>\n </ul>\n </ng-template>\n </div>\n <div wmConfirmDialog name=\"_app-confirm-dialog\" title.bind=\"title\" message.bind=\"message\" oktext.bind=\"oktext\"\n canceltext.bind=\"canceltext\" closable=\"false\" iconclass.bind=\"iconclass\"\n escape.event=\"onEscape()\" ok.event=\"onOk()\" cancel.event=\"onCancel()\" close.event=\"onClose()\" opened.event=\"onOpen()\"></div>\n <div *ngIf=\"!isApplicationType\" wmConfirmDialog name=\"PrefabConfirmDialog\" title.bind=\"title\" message.bind=\"text\" oktext.bind=\"okButtonText\"\n canceltext.bind=\"cancelButtonText\" closable=\"false\" iconclass.bind=\"iconclass\"\n escape.event=\"onEscape()\" ok.event=\"onOk()\" cancel.event=\"onCancel()\" close.event=\"onClose()\" opened.event=\"onOpen()\"></div>\n <div *ngIf=\"!isApplicationType\" wmAlertDialog name=\"PrefabAlertDialog\" title.bind=\"title\" message.bind=\"text\" oktext.bind=\"okButtonText\"\n canceltext.bind=\"cancelButtonText\" closable=\"false\" iconclass.bind=\"iconclass\"\n escape.event=\"onEscape()\" ok.event=\"onOk()\" cancel.event=\"onCancel()\" close.event=\"onClose()\" opened.event=\"onOpen()\"></div>\n <div wmAppExt></div>\n <i id=\"wm-mobile-display\"></i>\n</ng-container>\n<!--Dummy container to create the component dynamically-->\n<ng-container #dynamicComponent></ng-container>\n","import { ApplicationRef, Component, DoCheck, ElementRef, NgZone, ViewEncapsulation, ViewChild, ViewContainerRef, AfterViewInit } from '@angular/core';\nimport { NavigationCancel, NavigationEnd, NavigationError, NavigationStart, Router, RouterOutlet } from '@angular/router';\n\nimport { setTheme } from 'ngx-bootstrap/utils';\n\nimport { CustomIconsLoaderService, noop } from '@wm/core';\nimport { $invokeWatchers, AbstractDialogService, AbstractSpinnerService, getWmProjectProperties, hasCordova, setAppRef, setNgZone, setPipeProvider, App, addClass, removeClass } from '@wm/core';\nimport { OAuthService } from '@wm/oAuth';\nimport { AppManagerService } from '../../services/app.manager.service';\nimport { PipeProvider } from '../../services/pipe-provider.service';\n\ninterface SPINNER {\n show: boolean;\n messages: Array<string>;\n arialabel: string;\n}\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class AppComponent implements DoCheck, AfterViewInit {\n public startApp = false;\n public isApplicationType = false;\n\n @ViewChild(RouterOutlet) routerOutlet: RouterOutlet;\n\n @ViewChild('dynamicComponent', {read: ViewContainerRef}) dynamicComponentContainerRef: ViewContainerRef;\n\n spinner: SPINNER = {show: false, messages: [], arialabel: ''};\n constructor(\n _pipeProvider: PipeProvider,\n _appRef: ApplicationRef,\n private elRef: ElementRef,\n private oAuthService: OAuthService,\n private dialogService: AbstractDialogService,\n private spinnerService: AbstractSpinnerService,\n ngZone: NgZone,\n private router: Router,\n private app: App,\n private appManager: AppManagerService,\n private customIconsLoaderService: CustomIconsLoaderService\n ) {\n setPipeProvider(_pipeProvider);\n setNgZone(ngZone);\n setAppRef(_appRef);\n\n this.isApplicationType = getWmProjectProperties().type === 'APPLICATION';\n if(this.isApplicationType) {\n this.customIconsLoaderService.load();\n }\n\n this.appManager.beforeAppReady();\n\n // subscribe to OAuth changes\n oAuthService.getOAuthProvidersAsObservable().subscribe((providers: any) => {\n this.providersConfig = providers;\n if (providers.length) {\n this.showOAuthDialog();\n } else {\n this.closeOAuthDialog();\n }\n });\n\n // Subscribe to the message source to show/hide app spinner\n this.spinnerService.getMessageSource().asObservable().subscribe((data: any) => {\n // setTimeout is to avoid 'ExpressionChangedAfterItHasBeenCheckedError'\n setTimeout(() => {\n this.spinner.show = data.show;\n this.spinner.messages = data.messages;\n this.spinner.arialabel = data.messages.toString();\n });\n });\n\n // set theme to bs3 on ngx-bootstrap. This avoids runtime calculation to determine bs theme. Thus resolves performance.\n setTheme('bs3');\n\n let spinnerId;\n\n let onPageRendered = noop;\n\n this.router.events.subscribe(e => {\n if (e instanceof NavigationStart) {\n let page = e.url.split('?')[0];\n page = page.substring(1);\n\n if (!page) {\n this.app.activeLayoutName = '';\n this.app.layoutPages = [];\n }\n if(this.app.activeLayoutName && this.app.layoutPages && this.app.layoutPages.length && this.app.layoutPages.includes(page)) {\n spinnerId = this.spinnerService.show('', 'wmRouterOutlet', '', 'wmRouterOutlet');\n } else {\n spinnerId = this.spinnerService.show('', 'globalSpinner');\n }\n\n const node = document.querySelector('app-page-outlet') as HTMLElement;\n if (node) {\n addClass(node, 'page-load-in-progress');\n }\n\n const pageLoadStartTime = Date.now();\n onPageRendered = () => {\n this.spinnerService.hide(spinnerId);\n const node = document.querySelector('app-page-outlet') as HTMLElement;\n if (node) {\n removeClass(node, 'page-load-in-progress');\n }\n onPageRendered = noop;\n this.app.activePageLoadTime = Date.now() - pageLoadStartTime;\n };\n } else if (e instanceof NavigationEnd || e instanceof NavigationCancel || e instanceof NavigationError) {\n setTimeout(() =>{\n onPageRendered();\n }, 1000);\n }\n });\n this.appManager.subscribe('pageReady', () => {\n onPageRendered();\n });\n this.appManager.subscribe('pageAttach', () => {\n onPageRendered();\n });\n }\n\n providersConfig;\n isOAuthDialogOpen = false;\n\n showOAuthDialog() {\n if (!this.isOAuthDialogOpen) {\n this.isOAuthDialogOpen = true;\n this.dialogService.open('oAuthLoginDialog', this);\n }\n }\n\n closeOAuthDialog() {\n if (this.isOAuthDialogOpen) {\n this.isOAuthDialogOpen = false;\n this.dialogService.close('oAuthLoginDialog', this);\n }\n }\n\n private start() {\n //to fix the issue that happens only in the development mode\n //ExpressionChangedAfterItHasBeenCheckedError\n //fix: https://blog.angular-university.io/angular-debugging/\n setTimeout(() => {\n this.startApp = true;\n });\n setTimeout(() => {\n this.app.dynamicComponentContainerRef = this.dynamicComponentContainerRef;\n this.overrideRouterOutlet();\n }, 10);\n }\n\n private overrideRouterOutlet() {\n //override the attach/detach methods\n const oAttach = this.routerOutlet.attach;\n const oDetach = this.routerOutlet.detach;\n this.routerOutlet.attach = (componentRef: any) => {\n oAttach.call(this.routerOutlet, componentRef);\n componentRef.instance.ngOnAttach();\n };\n this.routerOutlet.detach = () => {\n this.app.activePage.ngOnDetach();\n const componentRef = oDetach.call(this.routerOutlet);\n return componentRef;\n };\n }\n\n ngAfterViewInit() {\n if (hasCordova() && !window['wmDeviceReady']) {\n document.addEventListener('wmDeviceReady' , () => this.start());\n } else {\n this.start();\n }\n }\n\n ngDoCheck() {\n $invokeWatchers();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse } from '@angular/common/http';\n\nimport { Observable, Subject } from 'rxjs';\nimport { tap } from 'rxjs/operators';\n\nimport { httpService, appManager } from '@wm/variables';\nimport { WmHttpRequest, WmHttpResponse } from '@wm/http';\nimport {extend} from \"lodash-es\";\n\n/**\n * This Interceptor intercepts all network calls and if a network call fails\n * due to session timeout, then it calls a function to handle session timeout.\n */\n@Injectable()\nexport class HttpCallInterceptor implements HttpInterceptor {\n\n wmHttpRequest: any;\n wmHttpResponse: any;\n\n constructor() {\n this.wmHttpRequest = new WmHttpRequest();\n this.wmHttpResponse = new WmHttpResponse();\n }\n\n createSubject() {\n return new Subject();\n }\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n let modifiedReq;\n let modifiedResp;\n if (appManager && appManager.appOnBeforeServiceCall) {\n // Convert the angular HttpRequest to wm HttpRequest\n const req = this.wmHttpRequest.angularToWmRequest(request);\n // trigger the common onBeforeServiceCall handler present in app.js\n modifiedReq = appManager.appOnBeforeServiceCall(req);\n if (modifiedReq) {\n // Convert the wm HttpRequest to angular HttpRequest\n modifiedReq = this.wmHttpRequest.wmToAngularRequest(modifiedReq);\n request = modifiedReq;\n }\n }\n return next.handle(request).pipe(\n tap((response: any) => {\n if (response && response.type === 4 && appManager && appManager.appOnServiceSuccess) {\n // Convert the angular HttpResponse to wm HttpResponse\n const resp = this.wmHttpResponse.angularToWmResponse(response);\n // trigger the common success handler present in app.js\n modifiedResp = appManager.appOnServiceSuccess(resp.body, resp);\n if (modifiedResp) {\n // Convert the wm HttpResponse to angular HttpResponse\n modifiedResp = this.wmHttpResponse.wmToAngularResponse(modifiedResp);\n extend(response, modifiedResp);\n }\n }\n },\n error => {\n error._401Subscriber = this.createSubject();\n if (httpService.isPlatformSessionTimeout(error)) {\n httpService.handleSessionTimeout(request, error._401Subscriber);\n }\n if (appManager && appManager.appOnServiceError) {\n // Convert the angular HttpResponse to wm HttpResponse\n const err = this.wmHttpResponse.angularToWmResponse(error);\n // trigger the common error handler present in app.js\n modifiedResp = appManager.appOnServiceError(err.message, err);\n if (modifiedResp) {\n // Convert the wm HttpResponse to angular HttpResponse\n modifiedResp = this.wmHttpResponse.wmToAngularResponse(modifiedResp);\n extend(error, modifiedResp);\n }\n }\n }\n )\n );\n }\n}\n","import { AfterViewInit, Component, ViewChild } from '@angular/core';\n\nimport { PrefabDirective } from '@wm/components/prefab';\n\nimport { PrefabManagerService } from '../services/prefab-manager.service';\n\nconst PREFAB = 'PREFAB';\n\n@Component({\n selector: 'wm-prefab-preview',\n template: `\n <div class=\"prefab-preview row\">\n <section wmPrefab name=\"prefab-preview\" prefabname=\"__self__\"></section>\n </div>\n `\n})\nexport class PrefabPreviewComponent implements AfterViewInit {\n private config: any;\n private previewMode: boolean;\n\n @ViewChild(PrefabDirective, { static: true }) prefabInstance;\n\n constructor(private prefabManager: PrefabManagerService) {\n\n window.addEventListener('message', e => {\n const context = e.data && e.data.context;\n\n if (context !== PREFAB) {\n return;\n }\n\n const action = e.data.action;\n const payload = e.data.payload;\n\n if (action === 'init') {\n this.init();\n } else if (action === 'set-property') {\n this.setProperty(payload);\n } else if (action === 'get-outbound-properties') {\n this.getOutboundProps();\n } else if (action === 'invoke-script') {\n this.invokeScript(payload);\n }\n });\n }\n\n postMessage(action, payload?: any) {\n const data = {\n context: PREFAB,\n action,\n payload\n };\n window.top.postMessage(data, '*');\n }\n\n setupEventListeners() {\n this.prefabInstance.invokeEventCallback = (eventName, locals = {}) => {\n this.postMessage('event-log', { name: eventName, data: locals });\n };\n }\n\n init() {\n this.previewMode = true;\n\n this.prefabInstance.readyState.subscribe(\n () => {},\n () => {},\n () => {\n this.prefabManager.getConfig('__self__')\n .then(config => {\n this.config = config;\n this.postMessage('config', config);\n\n this.setupEventListeners();\n });\n }\n );\n }\n\n setProperty(payload: any) {\n this.prefabInstance.widget[payload.name] = payload.value;\n }\n\n isOutBoundProp(info) {\n return info.bindable === 'out-bound' || info.bindable === 'in-out-bound';\n }\n\n getOutboundProps() {\n const payload = {};\n for (const [name, info] of Object.entries(this.config.properties || {})) {\n if (this.isOutBoundProp(info)) {\n payload[name] = this.prefabInstance.widget[name];\n }\n }\n\n this.postMessage('outbound-properties', payload);\n }\n\n invokeScript(payload: any) {\n const script = `\\n return ${payload.script};`;\n\n const fn = new Function('Prefab', script);\n\n const retVal = fn(this.prefabInstance);\n\n this.postMessage('method-output', { methodName: payload.methodName, output: retVal });\n }\n\n ngAfterViewInit() {\n this.setupEventListeners();\n this.postMessage('init');\n }\n}\n\n","import {\n Compiler,\n Component,\n CUSTOM_ELEMENTS_SCHEMA,\n Injectable,\n NgModule,\n NO_ERRORS_SCHEMA,\n ViewEncapsulation\n} from '@angular/core';\n\nimport {App, extendProto, isDefined} from '@wm/core';\nimport {transpile} from '@wm/transpiler';\nimport {initComponentsBuildTask} from '@wm/build-task';\n\nimport {AppManagerService} from './app.manager.service';\nimport {RuntimeBaseModule} from '../runtime-base.module';\nimport {get} from \"lodash-es\";\n\ninitComponentsBuildTask();\n\nconst componentFactoryRefCache = new Map<string, any>();\n\nconst getDynamicModule = (componentRef: any) => {\n return NgModule({\n declarations: [componentRef],\n imports: [\n RuntimeBaseModule,\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA]\n })(class DynamicModule {});\n};\n\nconst getDynamicComponent = (\n selector: any,\n template: string,\n css: string = '') => {\n // @ts-ignore\n return Component({\n template,\n styles: [css],\n encapsulation: ViewEncapsulation.None,\n selector\n })(class DynamicComponent {\n isDynamicComponent: boolean = true;\n });\n};\n\n@Injectable()\nexport class DynamicComponentRefProviderService {\n private counter = 1;\n\n constructor(\n private app: App,\n private appManager: AppManagerService,\n private compiler: Compiler\n ) {}\n\n public async getComponentFactoryRef(selector: string, markup: string, options: any = {}): Promise<any> {\n // check in the cache.\n let componentFactoryRef = componentFactoryRefCache.get(selector);\n\n markup = options.transpile ? transpile(markup).markup : markup;\n if (!componentFactoryRef || options.noCache) {\n const componentDef = getDynamicComponent(selector, markup, options.styles);\n const moduleDef = getDynamicModule(componentDef);\n\n componentFactoryRef = this.compiler\n .compileModuleAndAllComponentsSync(moduleDef)\n .componentFactories\n .filter(factory => factory.componentType === componentDef)[0];\n\n componentFactoryRefCache.set(selector, componentFactoryRef);\n }\n return componentFactoryRef;\n }\n\n /**\n * Creates the component dynamically and add it to the DOM\n * @param target: HTML element where we need to append the created component\n * @param markup: Template of the component\n * @param context: Scope of the component\n * @param options: We have options like\n selector: selector of the component\n transpile: flag for transpiling HTML. By default it is true\n nocache: flag for render it from cache or not. By default it is true\n */\n public async addComponent(target: HTMLElement, markup: string, context = {}, options: any = {}) {\n options.transpile = isDefined(options.transpile) ? options.transpile : true;\n options.noCache = isDefined(options.noCache) ? options.noCache : true;\n options.selector = isDefined(options.selector) ? options.selector : 'wm-dynamic-component-' + this.counter++;\n const componentFactoryRef = await this.getComponentFactoryRef(options.selector, markup, options);\n const component = this.app.dynamicComponentContainerRef.createComponent(componentFactoryRef, 0, get(options, 'inj'));\n extendProto(component.instance, context);\n target.appendChild(component.location.nativeElement);\n }\n}\n","import {Injectable, Injector} from '@angular/core';\nimport {Observable} from 'rxjs';\nimport {noop} from '@wm/core';\n\n\nexport interface CanComponentDeactivate {\n canDeactivate: () => Observable<boolean> | Promise<boolean> | boolean;\n}\n\n/*\n canDeactivate guard for preview/WM deployment.\n [WMS-19159] - Moved CanDeactivate() from page-wrapper.component.ts to base-page.component.ts(which is common for both preview and angular)\n because beforepageleave is not calling for browser/tab close in angularmode\n here component is pagewrapper so adding custom implementation for route change\n */\n@Injectable()\nexport class CanDeactivatePageGuard {\n canDeactivate(component: CanComponentDeactivate) {\n function invokeCompDeactivate() {\n let retVal;\n // Calling onBeforePageLeave method present at page level\n retVal = this.app.activePage && this.app.activePage.onBeforePageLeave();\n // Calling onBeforePageLeave method present at app level only if page level method return true\n // or if there is no page level method\n if (retVal !== false ) {\n retVal = (this.app.onBeforePageLeave || noop)(this.app.activePageName, this.app.activePage);\n }\n return retVal === undefined ? true : retVal;\n }\n return invokeCompDeactivate.apply(component);\n }\n}\n\n\n// [WMS-18847] - canDeactivate guard for angular deployment.\n@Injectable()\nexport class CanDeactivateNgPageGuard {\n canDeactivate(component: CanComponentDeactivate) {\n return component.canDeactivate ? component.canDeactivate() : true;\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {DOCUMENT, ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable, OnDestroy} from '@angular/core';\n\n@Injectable()\nexport class SharedStylesHost {\n /** @internal */\n protected _stylesSet = new Set<string>();\n\n addStyles(styles: string[]): void {\n const additions = new Set<string>();\n styles.forEach(style => {\n if (!this._stylesSet.has(style)) {\n this._stylesSet.add(style);\n additions.add(style);\n }\n });\n this.onStylesAdded(additions);\n }\n\n onStylesAdded(additions: Set<string>): void {}\n\n getAllStyles(): string[] {\n return Array.from(this._stylesSet);\n }\n}\n@Injectable()\nexport class WMDomSharedStylesHost extends SharedStylesHost implements OnDestroy {\n // Maps all registered host nodes to a list of style nodes that have been added to the host node.\n private _hostNodes = new Map<Node, Node[]>();\n\n constructor(@Inject(DOCUMENT) private _doc: any) {\n super();\n this._hostNodes.set(_doc.head, []);\n }\n\n private _addStylesToHost(styles: Set<string>, host: Node, styleNodes: Node[]): void {\n const nonce = document.querySelector('meta[name=\"CSP-NONCE\"]')?.getAttribute('content') || 'wm-csp-nonce';\n styles.forEach((style: string) => {\n const styleEl = this._doc.createElement('style');\n styleEl.textContent = style;\n styleEl.setAttribute('nonce', nonce); //WM: add nonce\n styleNodes.push(host.appendChild(styleEl));\n });\n }\n\n addHost(hostNode: Node): void {\n const styleNodes: Node[] = [];\n this._addStylesToHost(this._stylesSet, hostNode, styleNodes);\n this._hostNodes.set(hostNode, styleNodes);\n }\n\n removeHost(hostNode: Node): void {\n const styleNodes = this._hostNodes.get(hostNode);\n if (styleNodes) {\n styleNodes.forEach(removeStyle);\n }\n this._hostNodes.delete(hostNode);\n }\n\n onStylesAdded(additions: Set<string>): void {\n this._hostNodes.forEach((styleNodes, hostNode) => {\n this._addStylesToHost(additions, hostNode, styleNodes);\n });\n }\n\n ngOnDestroy(): void {\n this._hostNodes.forEach(styleNodes => styleNodes.forEach(removeStyle));\n }\n}\n\nfunction removeStyle(styleNode: Node): void {\n getDOM().remove(styleNode);\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n APP_ID,\n inject,\n Inject,\n Injectable,\n Renderer2,\n RendererFactory2,\n RendererStyleFlags2,\n RendererType2,\n ViewEncapsulation\n} from '@angular/core';\n\nimport {EventManager, ɵSharedStylesHost} from '@angular/platform-browser';\nimport {DOCUMENT, ɵgetDOM as getDOM} from '@angular/common';\n\nexport const NAMESPACE_URIS: {[ns: string]: string} = {\n 'svg': 'http://www.w3.org/2000/svg',\n 'xhtml': 'http://www.w3.org/1999/xhtml',\n 'xlink': 'http://www.w3.org/1999/xlink',\n 'xml': 'http://www.w3.org/XML/1998/namespace',\n 'xmlns': 'http://www.w3.org/2000/xmlns/',\n 'math': 'http://www.w3.org/1998/MathML/',\n};\n\nconst COMPONENT_REGEX = /%COMP%/g;\nconst NG_DEV_MODE = false;\n\nexport const COMPONENT_VARIABLE = '%COMP%';\nexport const HOST_ATTR = `_nghost-${COMPONENT_VARIABLE}`;\nexport const CONTENT_ATTR = `_ngcontent-${COMPONENT_VARIABLE}`;\n\nexport function shimContentAttribute(componentShortId: string): string {\n return CONTENT_ATTR.replace(COMPONENT_REGEX, componentShortId);\n}\n\nexport function shimHostAttribute(componentShortId: string): string {\n return HOST_ATTR.replace(COMPONENT_REGEX, componentShortId);\n}\n\nexport function flattenStyles(\n compId: string, styles: Array<any|any[]>, target: string[]): string[] {\n for (let i = 0; i < styles.length; i++) {\n let style = styles[i];\n\n if (Array.isArray(style)) {\n flattenStyles(compId, style, target);\n } else {\n style = style.replace(COMPONENT_REGEX, compId);\n target.push(style);\n }\n }\n return target;\n}\n\nfunction decoratePreventDefault(eventHandler: Function): Function {\n // `DebugNode.triggerEventHandler` needs to know if the listener was created with\n // decoratePreventDefault or is a listener added outside the Angular context so it can handle the\n // two differently. In the first case, the special '__ngUnwrap__' token is passed to the unwrap\n // the listener (see below).\n return (event: any) => {\n // Ivy uses '__ngUnwrap__' as a special token that allows us to unwrap the function\n // so that it can be invoked programmatically by `DebugNode.triggerEventHandler`. The debug_node\n // can inspect the listener toString contents for the existence of this special token. Because\n // the token is a string literal, it is ensured to not be modified by compiled code.\n if (event === '__ngUnwrap__') {\n return eventHandler;\n }\n\n const allowDefaultBehavior = eventHandler(event);\n if (allowDefaultBehavior === false) {\n // TODO(tbosch): move preventDefault into event plugins...\n event.preventDefault();\n event.returnValue = false;\n }\n\n return undefined;\n };\n}\n\nlet hasLoggedNativeEncapsulationWarning = false;\n\n@Injectable()\nexport class WMDomRendererFactory2 implements RendererFactory2 {\n private rendererByCompId = new Map<string, Renderer2>();\n private defaultRenderer: Renderer2;\n\n constructor(\n private eventManager: EventManager, private sharedStylesHost: ɵSharedStylesHost,\n @Inject(APP_ID) private appId: string, @Inject(DOCUMENT) private readonly doc: Document,) {\n this.defaultRenderer = new WMDefaultDomRenderer2(eventManager, doc);\n }\n\n createRenderer(element: any, type: RendererType2|null): Renderer2 {\n if (!element || !type) {\n return this.defaultRenderer;\n }\n switch (type.encapsulation) {\n case ViewEncapsulation.Emulated: {\n let renderer = this.rendererByCompId.get(type.id);\n if (!renderer) {\n renderer = new EmulatedEncapsulationDomRenderer2(\n this.eventManager, this.sharedStylesHost, type, this.appId, this.doc);\n this.rendererByCompId.set(type.id, renderer);\n }\n (<EmulatedEncapsulationDomRenderer2>renderer).applyToHost(element);\n return renderer;\n }\n // @ts-ignore TODO: Remove as part of FW-2290. TS complains about us dealing with an enum\n // value that is not known (but previously was the value for ViewEncapsulation.Native)\n case 1:\n case ViewEncapsulation.ShadowDom:\n // TODO(FW-2290): remove the `case 1:` fallback logic and the warning in v12.\n if (NG_DEV_MODE &&\n // @ts-ignore TODO: Remove as part of FW-2290. TS complains about us dealing with an\n // enum value that is not known (but previously was the value for\n // ViewEncapsulation.Native)\n !hasLoggedNativeEncapsulationWarning && type.encapsulation === 1) {\n hasLoggedNativeEncapsulationWarning = true;\n console.warn(\n 'ViewEncapsulation.Native is no longer supported. Falling back to ViewEncapsulation.ShadowDom. The fallback will be removed in v12.');\n }\n\n return new ShadowDomRenderer(this.eventManager, this.sharedStylesHost, element, type, this.doc);\n default: {\n if (!this.rendererByCompId.has(type.id)) {\n const styles = flattenStyles(type.id, type.styles, []);\n this.sharedStylesHost.addStyles(styles);\n this.rendererByCompId.set(type.id, this.defaultRenderer);\n }\n return this.defaultRenderer;\n }\n }\n }\n\n begin() {}\n end() {}\n}\n\nclass WMDefaultDomRenderer2 implements Renderer2 {\n data: {[key: string]: any} = Object.create(null);\n constructor(private eventManager: EventManager, @Inject(DOCUMENT) protected readonly doc: Document,) {}\n\n destroy(): void {}\n\n destroyNode = null;\n\n createElement(name: string, namespace?: string): any {\n if (namespace) {\n // TODO: `|| namespace` was added in\n // https://github.com/angular/angular/commit/2b9cc8503d48173492c29f5a271b61126104fbdb to\n // support how Ivy passed around the namespace URI rather than short name at the time. It did\n // not, however extend the support to other parts of the system (setAttribute, setAttribute,\n // and the ServerRenderer). We should decide what exactly the semantics for dealing with\n // namespaces should be and make it consistent.\n // Related issues:\n // https://github.com/angular/angular/issues/44028\n // https://github.com/angular/angular/issues/44883\n return document.createElementNS(NAMESPACE_URIS[namespace] || namespace, name);\n }\n\n return document.createElement(name);\n }\n\n createComment(value: string): any {\n return document.createComment(value);\n }\n\n createText(value: string): any {\n return document.createTextNode(value);\n }\n\n appendChild(parent: any, newChild: any): void {\n const targetParent = isTemplateNode(parent) ? parent.content : parent;\n targetParent.appendChild(newChild);\n }\n\n insertBefore(parent: any, newChild: any, refChild: any): void {\n if (parent) {\n const targetParent = isTemplateNode(parent) ? parent.content : parent;\n targetParent.insertBefore(newChild, refChild);\n }\n }\n\n removeChild(parent: any, oldChild: any): void {\n if (parent) {\n parent.removeChild(oldChild);\n }\n }\n\n selectRootElement(selectorOrNode: string|any, preserveContent?: boolean): any {\n let el: any = typeof selectorOrNode === 'string' ? document.querySelector(selectorOrNode) :\n selectorOrNode;\n if (!el) {\n throw new Error(`The selector \"${selectorOrNode}\" did not match any elements`);\n }\n if (!preserveContent) {\n el.textContent = '';\n }\n return el;\n }\n\n parentNode(node: any): any {\n return node.parentNode;\n }\n\n nextSibling(node: any): any {\n return node.nextSibling;\n }\n\n resetStyles(element: any): void {\n const styleList = [].slice.call(element);\n styleList.forEach(function (propertyName) {\n element.style.removeProperty(propertyName);\n });\n }\n\n applyStyles(element, styleString): void {\n if (styleString) {\n const styles = styleString.split(';');\n styles.forEach(function (styleBit) {\n const parts = styleBit.split(':');\n let property, value;\n if (parts.length === 2) {\n property = parts[0].trim();\n value = parts[1].trim();\n\n element.style[property] = value;\n }\n });\n return styleString;\n }\n }\n\n setAttribute(el: any, name: string, value: string, namespace?: string): void {\n if (namespace) {\n name = namespace + ':' + name;\n const namespaceUri = NAMESPACE_URIS[namespace];\n if (namespaceUri) {\n el.setAttributeNS(namespaceUri, name, value);\n } else {\n el.setAttribute(name, value);\n }\n } else {\n if (name === 'style') {\n this.resetStyles(el);\n this.applyStyles(el, value);\n } else {\n el.setAttribute(name, value);\n }\n }\n }\n\n removeAttribute(el: any, name: string, namespace?: string): void {\n if (namespace) {\n const namespaceUri = NAMESPACE_URIS[namespace];\n if (namespaceUri) {\n el.removeAttributeNS(namespaceUri, name);\n } else {\n el.removeAttribute(`${namespace}:${name}`);\n }\n } else {\n el.removeAttribute(name);\n }\n }\n\n addClass(el: any, name: string): void {\n el.classList.add(name);\n }\n\n removeClass(el: any, name: string): void {\n el.classList.remove(name);\n }\n\n setStyle(el: any, style: string, value: any, flags: RendererStyleFlags2): void {\n if (flags & (RendererStyleFlags2.DashCase | RendererStyleFlags2.Important)) {\n el.style.setProperty(style, value, flags & RendererStyleFlags2.Important ? 'important' : '');\n } else {\n el.style[style] = value;\n }\n }\n\n removeStyle(el: any, style: string, flags: RendererStyleFlags2): void {\n if (flags & RendererStyleFlags2.DashCase) {\n el.style.removeProperty(style);\n } else {\n // IE requires '' instead of null\n // see https://github.com/angular/angular/issues/7916\n el.style[style] = '';\n }\n }\n\n setProperty(el: any, name: string, value: any): void {\n NG_DEV_MODE && checkNoSyntheticProp(name, 'property');\n el[name] = value;\n }\n\n setValue(node: any, value: string): void {\n node.nodeValue = value;\n }\n\n listen(target: 'window'|'document'|'body'|any, event: string, callback: (event: any) => boolean):\n () => void {\n (typeof NG_DEV_MODE === 'undefined' || NG_DEV_MODE) && checkNoSyntheticProp(event, 'listener');\n if (typeof target === 'string') {\n target = getDOM().getGlobalEventTarget(this.doc, target);\n if (!target) {\n throw new Error(`Unsupported event target ${target} for event ${event}`);\n }\n }\n return <() => void>this.eventManager.addEventListener(\n target, event, decoratePreventDefault(callback)) as () => void;\n }\n}\n\nconst AT_CHARCODE = (() => '@'.charCodeAt(0))();\nfunction checkNoSyntheticProp(name: string, nameKind: string) {\n if (name.charCodeAt(0) === AT_CHARCODE) {\n throw new Error(`Unexpected synthetic ${nameKind} ${name} found. Please make sure that:\n - Either \\`BrowserAnimationsModule\\` or \\`NoopAnimationsModule\\` are imported in your application.\n - There is corresponding configuration for the animation named \\`${\n name}\\` defined in the \\`animations\\` field of the \\`@Component\\` decorator (see https://angular.io/api/core/Component#animations).`);\n }\n}\n\nfunction isTemplateNode(node: any): node is HTMLTemplateElement {\n return node.tagName === 'TEMPLATE' && node.content !== undefined;\n}\n\nclass EmulatedEncapsulationDomRenderer2 extends WMDefaultDomRenderer2 {\n private contentAttr: string;\n private hostAttr: string;\n\n constructor(\n eventManager: EventManager, sharedStylesHost: ɵSharedStylesHost,\n private component: RendererType2, appId: string, @Inject(DOCUMENT) protected readonly doc: Document) {\n super(eventManager, doc);\n const styles = flattenStyles(appId + '-' + component.id, component.styles, []);\n sharedStylesHost.addStyles(styles);\n\n this.contentAttr = shimContentAttribute(appId + '-' + component.id);\n this.hostAttr = shimHostAttribute(appId + '-' + component.id);\n }\n\n applyToHost(element: any) {\n super.setAttribute(element, this.hostAttr, '');\n }\n\n createElement(parent: any, name: string): Element {\n const el = super.createElement(parent, name);\n super.setAttribute(el, this.contentAttr, '');\n return el;\n }\n}\n\nclass ShadowDomRenderer extends WMDefaultDomRenderer2 {\n private shadowRoot: any;\n\n constructor(\n eventManager: EventManager, private sharedStylesHost: ɵSharedStylesHost,\n private hostEl: any, component: RendererType2, @Inject(DOCUMENT) protected readonly doc: Document,) {\n super(eventManager, doc);\n this.shadowRoot = (hostEl as any).attachShadow({mode: 'open'});\n this.sharedStylesHost.addHost(this.shadowRoot);\n const styles = flattenStyles(component.id, component.styles, []);\n for (let i = 0; i < styles.length; i++) {\n const styleEl = document.createElement('style');\n styleEl.textContent = styles[i];\n this.shadowRoot.appendChild(styleEl);\n }\n }\n\n private nodeOrShadowRoot(node: any): any {\n return node === this.hostEl ? this.shadowRoot : node;\n }\n\n destroy() {\n this.sharedStylesHost.removeHost(this.shadowRoot);\n }\n\n appendChild(parent: any, newChild: any): void {\n return super.appendChild(this.nodeOrShadowRoot(parent), newChild);\n }\n insertBefore(parent: any, newChild: any, refChild: any): void {\n return super.insertBefore(this.nodeOrShadowRoot(parent), newChild, refChild);\n }\n removeChild(parent: any, oldChild: any): void {\n return super.removeChild(this.nodeOrShadowRoot(parent), oldChild);\n }\n parentNode(node: any): any {\n return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(node)));\n }\n}\n","import {APP_INITIALIZER, LOCALE_ID, ModuleWithProviders, NgModule} from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { CommonModule, DatePipe, DecimalPipe } from '@angular/common';\nimport { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';\nimport { ɵSharedStylesHost } from '@angular/platform-browser';\nimport {ɵDomRendererFactory2} from \"@angular/platform-browser\";\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { ToastrModule } from 'ngx-toastr';\n\nimport {\n _WM_APP_PROJECT,\n $parseExpr,\n AbstractI18nService,\n AbstractNavigationService,\n AbstractSpinnerService,\n AbstractToasterService,\n App,\n AppDefaults,\n CoreModule,\n DynamicComponentRefProvider,\n isObject,\n isIphone,\n isIpod,\n isIpad,\n Viewport,\n hasCordova\n} from '@wm/core';\nimport { WmComponentsModule } from '@wm/components/base';\nimport { DialogModule } from '@wm/components/dialogs';\nimport { ConfirmDialogModule } from '@wm/components/dialogs/confirm-dialog';\nimport { DesignDialogModule } from '@wm/components/dialogs/design-dialog';\nimport { PrefabModule } from '@wm/components/prefab';\nimport { MobileRuntimeModule } from '@wm/mobile/runtime';\nimport { SecurityModule } from '@wm/security';\nimport { HttpServiceModule } from '@wm/http';\nimport { VariablesModule } from '@wm/variables';\nimport { OAuthModule } from '@wm/oAuth';\n\nimport { AccessrolesDirective } from './directives/accessroles.directive';\nimport { AppSpinnerComponent } from './components/app-spinner.component';\nimport { CustomToasterComponent } from './components/custom-toaster.component';\nimport { EmptyPageComponent } from './components/empty-component/empty-page.component';\nimport { PrefabDirective } from './directives/prefab.directive';\nimport { AppRef } from './services/app.service';\nimport { ToasterServiceImpl } from './services/toaster.service';\nimport { I18nServiceImpl } from './services/i18n.service';\nimport { SpinnerServiceImpl } from './services/spinner.service';\nimport { NavigationServiceImpl } from './services/navigation.service';\nimport { PipeService } from \"./services/pipe.service\";\nimport { AppDefaultsService } from './services/app-defaults.service';\nimport { AppManagerService } from './services/app.manager.service';\nimport { PrefabManagerService } from './services/prefab-manager.service';\nimport { AuthGuard } from './guards/auth.guard';\nimport { RoleGuard } from './guards/role.guard';\nimport { PageNotFoundGuard } from './guards/page-not-found.guard';\nimport { AppJSResolve } from './resolves/app-js.resolve';\nimport { AppExtensionJSResolve } from './resolves/app-extension.resolve';\nimport { I18nResolve } from './resolves/i18n.resolve';\nimport { AppComponent } from './components/app-component/app.component';\nimport { HttpCallInterceptor } from './services/http-interceptor.services';\nimport { PrefabPreviewComponent } from './components/prefab-preview.component';\nimport { DynamicComponentRefProviderService } from './services/dynamic-component-ref-provider.service';\nimport { CanDeactivatePageGuard } from './guards/can-deactivate-page.guard';\nimport { MAX_CACHE_AGE, MAX_CACHE_SIZE } from './util/wm-route-reuse-strategy';\n\n//angular overrides\nimport { WMDomSharedStylesHost } from \"./overrides/wm_shared_styles_host\";\nimport { WMDomRendererFactory2 } from \"./overrides/wm_dom_renderer\";\nimport {PageModule} from \"@wm/components/page\";\nimport {FooterModule} from \"@wm/components/page/footer\";\nimport {HeaderModule} from \"@wm/components/page/header\";\nimport {LeftPanelModule} from \"@wm/components/page/left-panel\";\nimport {RightPanelModule} from \"@wm/components/page/right-panel\";\nimport {TopNavModule} from \"@wm/components/page/top-nav\";\nimport {BasicModule} from \"@wm/components/basic\";\nimport {ProgressModule} from \"@wm/components/basic/progress\";\nimport {RichTextEditorModule} from \"@wm/components/basic/rich-text-editor\";\nimport {SearchModule} from \"@wm/components/basic/search\";\nimport {TreeModule} from \"@wm/components/basic/tree\";\nimport {CalendarModule} from \"@wm/components/input/calendar\";\nimport {ChipsModule} from \"@wm/components/input/chips\";\nimport {ColorPickerModule} from \"@wm/components/input/color-picker\";\nimport {CurrencyModule} from \"@wm/components/input/currency\";\nimport {EpochModule} from \"@wm/components/input/epoch\";\nimport {FileUploadModule} from \"@wm/components/input/file-upload\";\nimport {InputModule} from \"@wm/components/input\";\nimport {RatingModule} from \"@wm/components/input/rating\";\nimport {SliderModule} from \"@wm/components/input/slider\";\nimport {CardModule} from \"@wm/components/data/card\";\nimport {FormModule} from \"@wm/components/data/form\";\nimport {ListModule} from \"@wm/components/data/list\";\nimport {LiveTableModule} from \"@wm/components/data/live-table\";\nimport {PaginationModule} from \"@wm/components/data/pagination\";\nimport {TableModule} from \"@wm/components/data/table\";\nimport {ChartModule} from \"@wm/components/chart\";\nimport {AccordionModule} from \"@wm/components/containers/accordion\";\nimport {LinearLayoutModule} from \"@wm/components/containers/linear-layout\";\nimport {LayoutGridModule} from \"@wm/components/containers/layout-grid\";\nimport {PanelModule} from \"@wm/components/containers/panel\";\nimport {TabsModule} from \"@wm/components/containers/tabs\";\nimport {TileModule} from \"@wm/components/containers/tile\";\nimport {WizardModule} from \"@wm/components/containers/wizard\";\nimport {AlertDialogModule} from \"@wm/components/dialogs/alert-dialog\";\nimport {IframeDialogModule} from \"@wm/components/dialogs/iframe-dialog\";\nimport {LoginDialogModule} from \"@wm/components/dialogs/login-dialog\";\nimport {PartialDialogModule} from \"@wm/components/dialogs/partial-dialog\";\nimport {BreadcrumbModule} from \"@wm/components/navigation/breadcrumb\";\nimport {MenuModule} from \"@wm/components/navigation/menu\";\nimport {NavbarModule} from \"@wm/components/navigation/navbar\";\nimport {PopoverModule} from \"@wm/components/navigation/popover\";\nimport {CarouselModule} from \"@wm/components/advanced/carousel\";\nimport {LoginModule} from \"@wm/components/advanced/login\";\nimport {MarqueeModule} from \"@wm/components/advanced/marquee\";\nimport {BsDatepickerModule} from \"ngx-bootstrap/datepicker\";\nimport {TimepickerModule as ngxTimepickerModule} from \"ngx-bootstrap/timepicker\";\nimport {BsDropdownModule} from \"ngx-bootstrap/dropdown\";\nimport {PaginationModule as ngxPaginationModule} from \"ngx-bootstrap/pagination\";\nimport {TypeaheadModule} from \"ngx-bootstrap/typeahead\";\nimport {ProgressbarModule} from \"ngx-bootstrap/progressbar\";\nimport {CarouselModule as ngxCarouselModule} from \"ngx-bootstrap/carousel\";\nimport {PopoverModule as ngxPopoverModule} from \"ngx-bootstrap/popover\";\nimport {NgCircleProgressModule} from \"ng-circle-progress\";\nimport {TooltipModule} from \"ngx-bootstrap/tooltip\";\n\ndeclare const _WM_APP_PROPERTIES;\n\nconst initializeProjectDetails = () => {\n let cdnUrl = document.querySelector('[name=\"deployUrl\"]') && document.querySelector('[name=\"deployUrl\"]').getAttribute('content');\n //for preview\n if(!cdnUrl) {\n cdnUrl = document.querySelector('[name=\"cdnUrl\"]') && document.querySelector('[name=\"cdnUrl\"]').getAttribute('content');\n }\n _WM_APP_PROJECT.id = hasCordova() ? _WM_APP_PROPERTIES.displayName : location.href.split('/')[3];\n // Integration with third party apps like in SSPA/WebComponents, this meta tag with cdnUrl will not be there then default it to ng-bundle/\n _WM_APP_PROJECT.cdnUrl = cdnUrl || 'ng-bundle/';\n _WM_APP_PROJECT.ngDest = 'ng-bundle/';\n try {\n //@ts-ignore\n __webpack_require__.p = __webpack_public_path__ = cdnUrl;\n } catch(e) {\n //for app preview there is no webpack. Don't do anything.\n }\n};\n\nenum OS {\n IOS = 'ios',\n ANDROID = 'android'\n}\n\nexport function getSettingProvider(key: string, defaultValue: any) {\n return {\n provide: key,\n useValue: defaultValue\n };\n};\n\nexport function InitializeApp(I18nService, AppJSResolve) {\n return async () => {\n initializeProjectDetails();\n await AppJSResolve.resolve();\n return I18nService.loadDefaultLocale();\n };\n}\n\nexport function setAngularLocale(I18nService) {\n initializeProjectDetails();\n return I18nService.deduceAppLocale();\n}\n\nconst definitions = [\n AccessrolesDirective,\n AppSpinnerComponent,\n CustomToasterComponent,\n PrefabDirective,\n AppComponent,\n PrefabPreviewComponent,\n EmptyPageComponent\n];\n\nexport const REQUIRED_MODULES_FOR_DYNAMIC_COMPONENTS = [\n ConfirmDialogModule,\n DesignDialogModule,\n DialogModule,\n\n // NGX Bootstrap\n BsDatepickerModule,\n ngxTimepickerModule,\n BsDropdownModule,\n ngxPaginationModule,\n TypeaheadModule,\n ProgressbarModule,\n ngxCarouselModule,\n ngxPopoverModule,\n NgCircleProgressModule,\n TooltipModule,\n\n // Basic widgets\n BasicModule,\n ProgressModule,\n RichTextEditorModule,\n SearchModule,\n TreeModule,\n\n // Input\n CalendarModule,\n ChipsModule,\n ColorPickerModule,\n CurrencyModule,\n EpochModule,\n FileUploadModule,\n InputModule,\n RatingModule,\n SliderModule,\n\n // Data\n CardModule,\n FormModule,\n ListModule,\n LiveTableModule,\n PaginationModule,\n TableModule,\n\n // chart\n ChartModule,\n\n // container modules\n AccordionModule,\n LinearLayoutModule,\n LayoutGridModule,\n PanelModule,\n TabsModule,\n TileModule,\n WizardModule,\n\n // dialogs\n AlertDialogModule,\n IframeDialogModule,\n LoginDialogModule,\n PartialDialogModule,\n\n // navigation\n BreadcrumbModule,\n MenuModule,\n NavbarModule,\n PopoverModule,\n\n // Advanced\n CarouselModule,\n LoginModule,\n MarqueeModule,\n\n PageModule,\n FooterModule,\n HeaderModule,\n LeftPanelModule,\n RightPanelModule,\n TopNavModule,\n PrefabModule\n];\n\n// setting parseExpr as exprEvaluator for swipeAnimation\n($.fn as any).swipeAnimation.expressionEvaluator = $parseExpr;\n\n@NgModule({\n declarations: [ ...definitions ],\n imports: [\n CommonModule,\n RouterModule,\n HttpClientModule,\n FormsModule,\n ReactiveFormsModule,\n\n ToastrModule,\n WmComponentsModule,\n MobileRuntimeModule,\n CoreModule,\n SecurityModule,\n OAuthModule,\n VariablesModule,\n HttpServiceModule,\n ...REQUIRED_MODULES_FOR_DYNAMIC_COMPONENTS\n ],\n exports: [\n FormsModule,\n ReactiveFormsModule,\n\n ...definitions,\n\n CommonModule,\n RouterModule,\n HttpClientModule,\n\n ToastrModule,\n WmComponentsModule,\n MobileRuntimeModule,\n CoreModule,\n SecurityModule,\n OAuthModule,\n VariablesModule,\n HttpServiceModule,\n ...REQUIRED_MODULES_FOR_DYNAMIC_COMPONENTS\n ],\n providers: [\n {provide: ɵSharedStylesHost, useClass: WMDomSharedStylesHost},\n {provide: ɵDomRendererFactory2, useClass: WMDomRendererFactory2}\n ]\n})\nexport class RuntimeBaseModule {\n\n // this polyfill is to add support for CustomEvent in IE11\n static addCustomEventPolyfill() {\n if ( typeof window['CustomEvent'] === 'function' ) {\n return false;\n }\n // Adding type as any to avoid error TS2322\n const CustomEvent: any = (event, params) => {\n params = params || { bubbles: false, cancelable: false, detail: null };\n const evt = document.createEvent( 'CustomEvent' );\n evt.initCustomEvent( event, params.bubbles, params.cancelable, params.detail );\n return evt;\n };\n\n CustomEvent.prototype = window['Event'].prototype;\n // ### ANGULAR9TODO ###\n window['CustomEvent'] = CustomEvent;\n }\n\n static forRoot(): ModuleWithProviders<RuntimeBaseModule> {\n return {\n ngModule: RuntimeBaseModule,\n providers: [\n {provide: App, useClass: AppRef},\n {provide: AbstractToasterService, useClass: ToasterServiceImpl},\n {provide: AbstractI18nService, useClass: I18nServiceImpl},\n {provide: AbstractSpinnerService, useClass: SpinnerServiceImpl},\n {provide: AbstractNavigationService, useClass: NavigationServiceImpl},\n {provide: AppDefaults, useClass: AppDefaultsService},\n {provide: DynamicComponentRefProvider, useClass: DynamicComponentRefProviderService},\n {\n provide: APP_INITIALIZER,\n useFactory: InitializeApp,\n deps: [AbstractI18nService, AppJSResolve],\n multi: true\n },\n {\n provide: LOCALE_ID,\n useFactory: setAngularLocale,\n deps: [AbstractI18nService]\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: HttpCallInterceptor,\n multi: true\n },\n PipeService,\n DecimalPipe,\n DatePipe,\n AppManagerService,\n PrefabManagerService,\n AuthGuard,\n RoleGuard,\n PageNotFoundGuard,\n CanDeactivatePageGuard,\n AppJSResolve,\n AppExtensionJSResolve,\n I18nResolve,\n getSettingProvider(MAX_CACHE_SIZE, 10),\n getSettingProvider(MAX_CACHE_AGE, 30 * 60)\n ]\n };\n }\n\n constructor(mobileRuntimeModule: MobileRuntimeModule,\n app: App,\n viewport: Viewport) {\n RuntimeBaseModule.addCustomEventPolyfill();\n\n this.getDeviceDetails().then(details => {\n app.selectedViewPort = {\n os: details.os,\n category: details.selectedDeviceCategory\n };\n viewport.update(details);\n app.notify('on-viewport-details', details.os);\n });\n }\n\n\n private getDeviceDetails(): Promise<any> {\n return new Promise<any>(function (resolve, reject) {\n const msgContent = {key: 'on-load'};\n // Notify preview window that application is ready. Otherwise, identify the OS.\n if (window.top !== window) {\n window.top.postMessage(msgContent, '*');\n // This is for preview page\n window.onmessage = function (msg) {\n const data = msg.data;\n if (isObject(data) && data.key === 'switch-device') {\n resolve(data.device);\n }\n };\n } else if (isIphone() || isIpod() || isIpad()) {\n resolve({'os': OS.IOS});\n } else {\n resolve({'os': OS.ANDROID});\n }\n });\n }\n}\n\nexport const WM_MODULES_FOR_ROOT = [\n WmComponentsModule.forRoot(),\n MobileRuntimeModule.forRoot(),\n CoreModule.forRoot(),\n SecurityModule.forRoot(),\n OAuthModule.forRoot(),\n VariablesModule.forRoot(),\n HttpServiceModule.forRoot(),\n RuntimeBaseModule.forRoot()\n];\n","import { Injectable } from '@angular/core';\n\n\nimport { AppManagerService } from '../services/app.manager.service';\nimport { AppVariablesProvider } from '../types/types';\n\nlet appVariablesLoaded = false;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AppVariablesResolve {\n\n constructor(\n private appManager: AppManagerService,\n private appVariablesProvider: AppVariablesProvider\n ) {}\n\n resolve() {\n // execute app.js\n if (appVariablesLoaded) {\n return true;\n }\n\n return Promise.all([this.appManager.loadSecurityConfig(), this.appManager.loadMetadata(), this.appVariablesProvider.getAppVariables()])\n .then((data) => this.appManager.loadAppVariables(data[2]))\n .then(() => appVariablesLoaded = true);\n }\n}\n","import { Injectable } from '@angular/core';\n\n\nimport { AppManagerService } from '../services/app.manager.service';\n\nlet metadataResolved = false;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MetadataResolve {\n constructor(private appManager: AppManagerService) {}\n\n resolve() {\n return metadataResolved || this.appManager.loadMetadata().then(() => metadataResolved = true);\n }\n}\n","import { Injectable } from '@angular/core';\n\n\nimport { getWmProjectProperties, isMobileApp } from '@wm/core';\n\nimport { AppManagerService } from '../services/app.manager.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SecurityConfigResolve {\n loaded: boolean;\n\n constructor(private appManager: AppManagerService) {\n\n if (!isMobileApp()) {\n // if the project type is PREFAB, setting this flag will not trigger security/info call\n this.loaded = this.appManager.isPrefabType() || this.appManager.isTemplateBundleType() || !getWmProjectProperties().securityEnabled;\n }\n }\n\n resolve() {\n return this.loaded || this.appManager.loadSecurityConfig().then(() => {\n this.loaded = true;\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i3","i5","i1","i2.PrefabConfigProvider","noop","i4.AppManagerService","i1.PrefabManagerService","i2.ComponentRefProvider","i2","i1.PipeProvider","i2.AppManagerService","i2.AuthGuard","appJsLoaded","i2.AppJSProvider","i1.AppManagerService","i2.AppExtensionProvider","i4","i5.AppManagerService","PrefabDirective","getDOM","ɵSharedStylesHost","ngxTimepickerModule","ngxPaginationModule","ngxCarouselModule","ngxPopoverModule","PaginationModule","PopoverModule","CarouselModule","isObject","ɵDomRendererFactory2","i2.AppVariablesProvider"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../projects/runtime-base/src/types/types.ts","../../../../projects/runtime-base/src/services/app.manager.service.ts","../../../../projects/runtime-base/src/util/utils.ts","../../../../projects/runtime-base/src/services/prefab-manager.service.ts","../../../../projects/runtime-base/src/util/fragment-monitor.ts","../../../../projects/runtime-base/src/components/base-partial.component.ts","../../../../projects/runtime-base/src/util/wm-route-reuse-strategy.ts","../../../../projects/runtime-base/src/components/base-page.component.ts","../../../../projects/runtime-base/src/components/base-prefab.component.ts","../../../../projects/runtime-base/src/components/base-layout.component.ts","../../../../projects/runtime-base/src/components/base-spa-page.component.ts","../../../../projects/runtime-base/src/directives/accessroles.directive.ts","../../../../projects/runtime-base/src/components/app-spinner.component.ts","../../../../projects/runtime-base/src/components/custom-toaster.component.ts","../../../../projects/runtime-base/src/components/empty-component/empty-page.component.ts","../../../../projects/runtime-base/src/directives/prefab.directive.ts","../../../../projects/runtime-base/src/services/pipe-provider.service.ts","../../../../projects/runtime-base/src/services/pipe.service.ts","../../../../projects/runtime-base/src/services/app.service.ts","../../../../projects/runtime-base/src/services/toaster.service.ts","../../../../projects/runtime-base/src/services/i18n.service.ts","../../../../projects/runtime-base/src/services/spinner.service.ts","../../../../projects/runtime-base/src/services/navigation.service.ts","../../../../projects/runtime-base/src/services/app-defaults.service.ts","../../../../projects/runtime-base/src/guards/auth.guard.ts","../../../../projects/runtime-base/src/guards/role.guard.ts","../../../../projects/runtime-base/src/guards/page-not-found.guard.ts","../../../../projects/runtime-base/src/resolves/app-js.resolve.ts","../../../../projects/runtime-base/src/resolves/app-extension.resolve.ts","../../../../projects/runtime-base/src/resolves/i18n.resolve.ts","../../../../projects/runtime-base/src/components/app-component/app.component.html","../../../../projects/runtime-base/src/components/app-component/app.component.ts","../../../../projects/runtime-base/src/services/http-interceptor.services.ts","../../../../projects/runtime-base/src/components/prefab-preview.component.ts","../../../../projects/runtime-base/src/services/dynamic-component-ref-provider.service.ts","../../../../projects/runtime-base/src/guards/can-deactivate-page.guard.ts","../../../../projects/runtime-base/src/overrides/wm_shared_styles_host.ts","../../../../projects/runtime-base/src/overrides/wm_dom_renderer.ts","../../../../projects/runtime-base/src/runtime-base.module.ts","../../../../projects/runtime-base/src/resolves/app-variables.resolve.ts","../../../../projects/runtime-base/src/resolves/metadata.resolve.ts","../../../../projects/runtime-base/src/resolves/security-config.resolve.ts","../../../../projects/runtime-base/src/index.ts"],"sourcesContent":["export enum ComponentType {\n PAGE,\n PREFAB,\n PARTIAL\n}\n\nexport abstract class ComponentRefProvider {\n abstract getComponentFactoryRef(componentName: string, componentType: ComponentType): Promise<any>;\n clearComponentFactoryRefCache(): void {};\n}\n\nexport abstract class PrefabConfigProvider {\n abstract getConfig(prefabName: string): Promise<any>;\n}\n\nexport abstract class AppJSProvider {\n abstract getAppScriptFn(): Promise<Function>;\n}\n\nexport abstract class AppVariablesProvider {\n abstract getAppVariables(): Promise<any>;\n}\nexport abstract class AppExtensionProvider {\n abstract loadFormatterConfigScript(callback:Function): void;\n}\n\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { DatePipe } from '@angular/common';\n\nimport {\n AbstractDialogService,\n AbstractHttpService,\n AbstractI18nService,\n AbstractSpinnerService,\n App,\n fetchContent,\n isDefined,\n triggerFn,\n $appDigest\n} from '@wm/core';\nimport { SecurityService } from '@wm/security';\nimport { CONSTANTS, $rootScope, routerService, MetadataService, VariablesService } from '@wm/variables';\nimport {extend, forEach, get, isEmpty, isObject, isUndefined, merge, trim} from \"lodash-es\";\n\nenum POST_MESSAGES {\n HIDE_TEMPLATES_SHOW_CASE = 'hide-templates-show-case',\n SHOW_TEMPLATES_SHOW_CASE = 'show-templates-show-case',\n UPDATE_LOCATION = 'update-location-path',\n SELECT_TEMPLATE = 'select-template',\n TEMPLATEBUNDLE_CONFIG = 'template-bundle-config',\n ON_LOAD = 'on-load'\n}\n\n@Injectable()\nexport class AppManagerService {\n static readonly SERVICE_NAME = 'AppManagerService';\n\n private appVariablesLoaded = false;\n private appVariablesFired = false;\n private _noRedirect = false;\n private templates: Array<any>;\n private lastLoggedUserId;\n\n constructor(\n private $http: AbstractHttpService,\n private $security: SecurityService,\n private $dialog: AbstractDialogService,\n private $router: Router,\n private $app: App,\n private $variables: VariablesService,\n private $metadata: MetadataService,\n private $spinner: AbstractSpinnerService,\n private $i18n: AbstractI18nService,\n private $datePipe: DatePipe,\n ) {\n // register method to invoke on session timeout\n this.$http.registerOnSessionTimeout(this.handle401.bind(this));\n\n this.$variables.registerDependency('appManager', this);\n\n this.$app.subscribe('toggle-variable-state', (data) => {\n const variable = data.variable,\n active = data.active;\n if (!isEmpty(trim(variable.spinnerContext))) {\n if (active) {\n let spinnerExists;\n // WMS-21117 : Do not trigger spinner, if the current variable is same as spinner which is in context\n if (variable._spinnerId && variable._spinnerId.length) {\n forEach(variable._spinnerId, (item) => {\n if (item.slice(0, item.lastIndexOf('_')) === variable._id && (this.$spinner as any).messagesByContext && (this.$spinner as any).messagesByContext[variable.spinnerContext] &&\n (variable.spinnerMessage === (this.$spinner as any).messagesByContext[variable.spinnerContext][\"finalMessage\"] || variable.spinnerMessage === (this.$spinner as any).messagesByContext[variable.spinnerContext][item])) {\n spinnerExists = true;\n return;\n }\n });\n }\n if (!spinnerExists) {\n variable._spinnerId = variable._spinnerId || [];\n const spinnerId = this.$spinner.show(variable.spinnerMessage,\n variable._id + '_' + Date.now(),\n variable.spinnerclass,\n variable.spinnerContext);\n variable._spinnerId.push(spinnerId);\n }\n } else {\n this.$spinner.hide(variable._spinnerId.shift());\n }\n }\n });\n this.$app.subscribe('userLoggedIn', () => {\n this.setLandingPage();\n if (this.lastLoggedUserId) {\n this.$security.getConfig(config => {\n if(config && config.userInfo.userId !== this.lastLoggedUserId) {\n this.$app.clearPageCache();\n }\n }, null);\n }\n });\n this.$app.subscribe('userLoggedOut', () => this.setLandingPage().then(() => {\n this.$app.clearPageCache();\n }));\n this.$app.subscribe('http401', (d = {}) => this.handle401(d.page, d.options));\n }\n\n /**\n * On session timeout, if the session timeout config is set to a dialog, then open login dialog\n */\n private showLoginDialog() {\n this.$spinner.hide('globalSpinner');\n // Removing the close all dialogs call, so the existing dialogs remain open and\n // the login dialog comes on top of it.\n this.$dialog.open('CommonLoginDialog');\n // Since the login dialog is closed and opened its updated property isn't read by angular.\n // Hence we trigger the digest cycle\n $appDigest();\n }\n\n loadAppJS() {\n\n }\n\n loadCommonPage() {\n\n }\n\n loadSecurityConfig(forceFlag?: boolean) {\n return this.$security.load(forceFlag).then((r) => {\n if (!this.$app.landingPageName) {\n this.setLandingPage();\n }\n return r;\n });\n }\n\n loadMetadata() {\n return this.$metadata.load();\n }\n\n loadAppVariables(variables?: any) {\n if (this.appVariablesLoaded) {\n return Promise.resolve();\n }\n\n const init = response => {\n const data = this.$variables.register('app', response, this.$app);\n // not assigning directly to this.$app to keep the reference in tact\n extend(this.$app.Variables, data.Variables);\n extend(this.$app.Actions, data.Actions);\n this.updateLoggedInUserVariable();\n this.updateSupportedLocaleVariable();\n this.appVariablesLoaded = true;\n this.appVariablesFired = false;\n };\n\n if (isDefined(variables)) {\n init(variables);\n return Promise.resolve();\n }\n\n return this.$http.get('./app.variables.json').then(response => init(response));\n }\n\n /**\n * getter and setter for the property appVariablesFired\n * this flag determines if the app variables(with startUpdate:true) have been fired\n * they should get fired only once through app lifecycle\n * @param {boolean} isFired\n * @returns {boolean}\n */\n isAppVariablesFired(isFired?: boolean) {\n if (isDefined(isFired)) {\n this.appVariablesFired = isFired;\n }\n return this.appVariablesFired;\n }\n\n private clearLoggedInUserVariable(variable) {\n variable.isAuthenticated = false;\n variable.roles = [];\n variable.name = undefined;\n variable.id = undefined;\n variable.tenantId = undefined;\n }\n\n private updateLoggedInUserVariable() {\n const loggedInUser = get(this.$app, 'Variables.loggedInUser.dataSet');\n\n // sanity check\n if (!loggedInUser) {\n return;\n }\n return this.$security.load().then(() => {\n const securityConfig = this.$security.get();\n if (securityConfig && securityConfig.securityEnabled && securityConfig.authenticated) {\n loggedInUser.isAuthenticated = securityConfig.authenticated;\n loggedInUser.roles = securityConfig.userInfo.userRoles;\n loggedInUser.name = securityConfig.userInfo.userName;\n loggedInUser.id = securityConfig.userInfo.userId;\n loggedInUser.tenantId = securityConfig.userInfo.tenantId;\n loggedInUser.userAttributes = securityConfig.userInfo.userAttributes; // assign the extra userAttributes for custom usage.\n } else {\n this.clearLoggedInUserVariable(loggedInUser);\n loggedInUser.isSecurityEnabled = securityConfig && securityConfig.securityEnabled;\n throw null;\n }\n return securityConfig;\n }).catch(err => {\n loggedInUser.isAuthenticated = false;\n loggedInUser.roles = [];\n loggedInUser.name = undefined;\n loggedInUser.id = undefined;\n loggedInUser.tenantId = undefined;\n loggedInUser.userAttributes = {};\n });\n }\n\n /**\n * Overriding the app variable supported locale with the wmProperties i18n DataValues\n *\n * TODO[Vibhu]:\n * Can write a simple migration to sync the supportedLocale variable with '_WM_APP_PROPERTIES.supportedLanguages'\n * Hence, this may not be required\n *\n */\n updateSupportedLocaleVariable() {\n const supportedLocaleVar = get(this.$app, 'Variables.supportedLocale');\n }\n\n handleSSOLogin(config) {\n const SSO_URL = 'services/security/ssologin',\n PREVIEW_WINDOW_NAME = 'WM_PREVIEW_WINDOW';\n let page,\n pageParams;\n\n // do not provide redirectTo page if fetching HOME page resulted 401\n // on app load, by default Home page is loaded\n page = this.$security.getRedirectPage(config);\n\n if (CONSTANTS.hasCordova) {\n // get previously loggedInUser name (if any)\n const lastLoggedInUsername = get(this.$security.get(), 'userInfo.userName');\n this.$security.authInBrowser()\n .then(() => this.reloadAppData())\n .then(() => {\n const presentLoggedInUsername = get(this.$security.get(), 'userInfo.userName');\n if (presentLoggedInUsername && presentLoggedInUsername === lastLoggedInUsername) {\n routerService.navigate([page]);\n } else {\n routerService.navigate([`/`]);\n }\n });\n } else {\n page = page ? '?redirectPage=' + encodeURIComponent(page) : '';\n pageParams = this.$security.getQueryString(this.$security.getRedirectedRouteQueryParams());\n pageParams = pageParams ? '?' + pageParams : '';\n // showing a redirecting message\n document.body.textContent = get(this.getAppLocale(), ['MESSAGE_LOGIN_REDIRECTION']) || 'Redirecting to sso login...';\n // appending redirect to page and page params\n const ssoUrl = this.getDeployedURL() + SSO_URL + page + pageParams;\n /*\n * remove iFrame when redirected to IdP login page.\n * this is being done as IDPs do not allow to get themselves loaded into iFrames.\n * remove-toolbar has been assigned with a window name WM_PREVIEW_WINDOW, check if the iframe is our toolbar related and\n * safely change the location of the parent toolbar with current url.\n */\n if (window.self !== window.top) {\n try {\n if (window.parent && window.location.origin === window.parent.origin){\n if(window.parent.name === PREVIEW_WINDOW_NAME) {\n window.parent.location.href = window.self.location.href;\n window.parent.name = \"\"\n }\n } else {\n window.location.href = ssoUrl\n }\n } catch (error) {\n window.location.href = ssoUrl;\n }\n } else {\n window.location.href = ssoUrl;\n }\n }\n }\n\n /**\n * Handles the app when a XHR request returns 401 response\n * If no user was logged in before 401 occurred, First time Login is simulated\n * Else, a session timeout has occurred and the same is simulated\n * @param page if provided, represents the page name for which XHR request returned 401, on re-login\n * if not provided, a service request returned 401\n * @param onSuccess success handler\n * @param onError error handler\n */\n handle401(page?, options?) {\n let sessionTimeoutConfig,\n sessionTimeoutMethod,\n loginConfig,\n loginMethod;\n const LOGIN_METHOD = {\n 'DIALOG' : 'DIALOG',\n 'PAGE' : 'PAGE',\n 'SSO' : 'SSO'\n };\n\n const config = this.$security.get();\n let queryParamsObj = {};\n loginConfig = config.loginConfig;\n this.lastLoggedUserId = config.userInfo && config.userInfo.userId;\n // if user found, 401 was thrown after session time\n if (config.userInfo && config.userInfo.userName) {\n config.authenticated = false;\n sessionTimeoutConfig = loginConfig.sessionTimeout || {'type': LOGIN_METHOD.DIALOG};\n sessionTimeoutMethod = sessionTimeoutConfig.type.toUpperCase();\n switch (sessionTimeoutMethod) {\n case LOGIN_METHOD.DIALOG:\n this.showLoginDialog();\n break;\n case LOGIN_METHOD.PAGE:\n if (!page) {\n page = this.$security.getCurrentRoutePage();\n }\n queryParamsObj['redirectTo'] = page;\n // Adding query params(page params of page being redirected to) to the URL.\n queryParamsObj = merge(queryParamsObj, this.$security.getRedirectedRouteQueryParams());\n // the redirect page should not be same as session timeout login page\n if ( page !== sessionTimeoutConfig.pageName) {\n this.$router.navigate([sessionTimeoutConfig.pageName], {queryParams: queryParamsObj});\n }\n break;\n case LOGIN_METHOD.SSO:\n this.handleSSOLogin(config);\n break;\n }\n this.setLandingPage();\n } else {\n // if no user found, 401 was thrown for first time login\n loginMethod = loginConfig.type.toUpperCase();\n switch (loginMethod) {\n case LOGIN_METHOD.DIALOG:\n // Through loginDialog, user will remain in the current state and failed calls will be executed post login through LoginVariableService.\n // NOTE: user will be redirected to respective landing page only if dialog is opened manually(not through a failed 401 call).\n this.noRedirect(true);\n this.showLoginDialog();\n break;\n case LOGIN_METHOD.PAGE:\n // do not provide redirectTo page if fetching HOME page resulted 401\n // on app load, by default Home page is loaded\n page = this.$security.getRedirectPage(config, page);\n queryParamsObj['redirectTo'] = page;\n const extraQueryParams = (options && options.queryParams) || this.$security.getRedirectedRouteQueryParams();\n queryParamsObj = merge(queryParamsObj, extraQueryParams);\n this.$router.navigate([loginConfig.pageName], {queryParams: queryParamsObj});\n this.$app.landingPageName = loginConfig.pageName;\n break;\n case LOGIN_METHOD.SSO:\n this.handleSSOLogin(config);\n break;\n }\n }\n }\n\n /**\n * Updates data dependent on logged in user\n * Reloads security config, metadata\n * Updates the loggedInUserVariable\n * @returns {Promise<void>}\n */\n reloadAppData() {\n return this.loadSecurityConfig(true).then(() => {\n return this.loadMetadata().then(() => {\n return this.updateLoggedInUserVariable();\n });\n });\n }\n\n noRedirect(value?: boolean) {\n if (isUndefined(value)) {\n return this._noRedirect;\n }\n\n this._noRedirect = value;\n return this._noRedirect;\n }\n\n /**\n * invokes session failure requests\n */\n executeSessionFailureRequests() {\n this.$http.executeSessionFailureRequests();\n }\n\n pushToSessionFailureRequests(callback) {\n this.$http.pushToSessionFailureQueue(callback);\n }\n\n public getDeployedURL() {\n return this.$app.deployedUrl ? this.$app.deployedUrl : $rootScope.project.deployedUrl;\n }\n\n /**\n * Fetches the customurlscheme for a mobile app\n * which is used for redirection back to the app from browser in implicit oAuth flow\n * @returns {string}\n */\n public getCustomUrlScheme() {\n return this.$app.customUrlScheme;\n }\n\n notify(eventName, data) {\n this.$app.notify(eventName, data);\n }\n\n subscribe(eventName, data) {\n return this.$app.subscribe(eventName, data);\n }\n\n getActivePage() {\n return this.$app.activePage;\n }\n\n getAppLocale() {\n return this.$app.appLocale;\n }\n\n getSelectedLocale() {\n return this.$i18n.getSelectedLocale();\n }\n\n notifyApp(template, type, title?) {\n this.$app.notifyApp(template, type, title);\n }\n\n /**\n * Triggers the onBeforeService method defined in app.js of the app\n * @param requestParams\n */\n appOnBeforeServiceCall(requestParams: any) {\n return triggerFn(this.$app.onBeforeServiceCall, requestParams);\n }\n\n /**\n * Triggers the onServiceSuccess method defined in app.js of the app\n * @param data\n * @param xhrObj\n */\n appOnServiceSuccess(data: any, xhrObj: any) {\n return triggerFn(this.$app.onServiceSuccess, data, xhrObj);\n }\n\n /**\n * Triggers the onServiceError method defined in app.js of the app\n * @param data\n * @param xhrOb\n */\n appOnServiceError(data: any, xhrOb?: any) {\n return triggerFn(this.$app.onServiceError, data, xhrOb);\n }\n\n /**\n * Triggers the appVariablesReady method defined in app.js of the app\n */\n appVariablesReady() {\n triggerFn(this.$app.onAppVariablesReady);\n }\n\n /**\n * Triggers the onBeforeAppReady method defined in app.js of the app\n */\n beforeAppReady() {\n triggerFn(this.$app.onBeforeAppReady);\n }\n\n /**\n * Returns the pipe based on the input\n */\n getPipe(pipe) {\n if (pipe === 'date') {\n return this.$datePipe;\n }\n }\n\n private setLandingPage() {\n return this.$security.getPageByLoggedInUser().then(p => this.$app.landingPageName = <string> p);\n }\n\n /**\n * return true if prefab type app\n * @returns {boolean}\n */\n isPrefabType() {\n return this.$app.isPrefabType;\n }\n\n /**\n * return true if template bundle type app\n * @returns {boolean}\n */\n isTemplateBundleType() {\n return this.$app.isTemplateBundleType;\n }\n\n postMessage(content) {\n window.top.postMessage(content, '*');\n }\n\n showTemplate(idx) {\n const template = this.templates[idx];\n // scope.activeTemplateIndex = idx;\n this.$router.navigate([template.id]);\n }\n postTemplateBundleInfo() {\n\n window.onmessage = (evt) => {\n const msgData = evt.data;\n\n if (!isObject(msgData)) {\n return;\n }\n\n // @ts-ignore\n const key = msgData.key;\n\n switch (key) {\n case POST_MESSAGES.HIDE_TEMPLATES_SHOW_CASE:\n // scope.hideShowCase = true;\n break;\n case POST_MESSAGES.SELECT_TEMPLATE:\n // @ts-ignore\n this.showTemplate(msgData.templateIndex);\n break;\n }\n };\n\n setTimeout(() => {\n this.postMessage({key: POST_MESSAGES.ON_LOAD});\n });\n\n return fetchContent('json', './config.json', true, response => {\n this.templates = [];\n if (!response.error) {\n this.templates = response.templates;\n this.postMessage({'key': POST_MESSAGES.TEMPLATEBUNDLE_CONFIG, 'config': response});\n }\n });\n }\n\n postAppTypeInfo() {\n if (this.isTemplateBundleType()) {\n return this.postTemplateBundleInfo();\n }\n }\n}\n","export const isPrefabInPreview = (prefabName: string) => prefabName === '__self__';\n\nexport const getPrefabBaseUrl = (prefabName: string) => isPrefabInPreview(prefabName) ? '.' : `app/prefabs/${prefabName}`;\n\nexport const getPrefabConfigUrl = (prefabName: string) => `${getPrefabBaseUrl(prefabName)}/config.json`;\n\nexport const getPrefabMinJsonUrl = (prefabName: string) => `${getPrefabBaseUrl(prefabName)}/pages/Main/page.min.json`;\n\nexport const getPrefabPartialJsonUrl = (prefabName: string, partialName: string) => `${getPrefabBaseUrl(prefabName)}/pages/${partialName}/page.min.json`;\n","import { Injectable } from '@angular/core';\n\nimport { loadScripts, loadStyleSheets, stringStartsWith } from '@wm/core';\nimport { MetadataService } from '@wm/variables';\n\nimport { PrefabConfigProvider } from '../types/types';\nimport { getPrefabBaseUrl, isPrefabInPreview } from '../util/utils';\nimport {endsWith} from \"lodash-es\";\n\nconst prefabsWithError = new Set<string>();\nconst inProgress = new Map<string, Promise<any>>();\nconst resolvedPrefabs = new Set<string>();\n\nconst getPrefabResourceUrl = (resourcePath, resourceBasePath) => {\n let _url = resourcePath;\n if (!stringStartsWith(resourcePath, 'http://|https://|//')) {\n _url = (resourceBasePath + _url).replace('//', '/');\n }\n return _url;\n};\n\n@Injectable()\nexport class PrefabManagerService {\n\n constructor(\n private $metadata: MetadataService,\n private prefabConfigProvider: PrefabConfigProvider\n ) {}\n\n public getConfig(prefabName): Promise<any> {\n return this.prefabConfigProvider.getConfig(prefabName);\n }\n\n public loadServiceDefs(prefabName): Promise<any> {\n return isPrefabInPreview(prefabName) ? Promise.resolve() : this.$metadata.load(prefabName);\n }\n\n protected loadStyles(prefabName, {resources: {styles}} = {resources: {styles: []}}): Promise<void> {\n const baseUrl = getPrefabBaseUrl(prefabName);\n const _styles = styles.map(url => {\n if (!endsWith(url, '/pages/Main/Main.css')) {\n return getPrefabResourceUrl(url, baseUrl);\n }\n return undefined;\n }).filter(url => !!url);\n\n loadStyleSheets(_styles);\n\n return Promise.resolve();\n }\n\n // TODO [Vinay] - implement onPrefabResourceLoad\n protected loadScripts(prefabName, {resources: {scripts}} = {resources: {scripts: []}}): Promise<any> {\n const baseUrl = getPrefabBaseUrl(prefabName);\n scripts = scripts.filter(script => !script.startsWith('npm://'));\n const _scripts = scripts.map(url => getPrefabResourceUrl(url, baseUrl));\n\n return loadScripts(_scripts, true);\n }\n\n private setInProgress(prefabName: string) {\n let _res;\n let _rej;\n const _promise: any = new Promise((res, rej) => {\n _res = res;\n _rej = rej;\n });\n\n _promise.resolve = _res;\n _promise.reject = _rej;\n\n inProgress.set(prefabName, _promise);\n }\n\n private resolveInProgress(prefabName: string) {\n if (inProgress.get(prefabName)) {\n (inProgress.get(prefabName) as any).resolve();\n inProgress.delete(prefabName);\n }\n }\n\n public loadDependencies(prefabName): Promise<void> {\n\n if (resolvedPrefabs.has(prefabName)) {\n return Promise.resolve();\n }\n\n if (prefabsWithError.has(prefabName)) {\n return Promise.reject('');\n }\n\n if (inProgress.get(prefabName)) {\n return inProgress.get(prefabName);\n }\n\n this.setInProgress(prefabName);\n\n return this.getConfig(prefabName)\n .then(config => {\n return Promise.all([\n this.loadStyles(prefabName, config),\n this.loadScripts(prefabName, config),\n this.loadServiceDefs(prefabName)\n ]).then(() => {\n this.resolveInProgress(prefabName);\n resolvedPrefabs.add(prefabName);\n });\n });\n }\n}\n","import { noop } from '@wm/core';\n\nimport { Subject } from 'rxjs';\nimport { Directive } from \"@angular/core\";\n\n@Directive()\nexport abstract class FragmentMonitor {\n fragments = 0;\n viewInit$: Subject<any>;\n isViewInitialized: boolean;\n isPageComponent: boolean = true;\n\n fragmentsLoaded$ = new Subject();\n\n constructor() {}\n\n init() {\n // console.log(`inside fragmentMonitor: Page-${(this as any).pageName}, Partial-${(this as any).partialName}`);\n\n this.viewInit$.subscribe(noop, noop, () => {\n this.isViewInitialized = true;\n this.isReady();\n });\n }\n\n registerFragment() {\n this.fragments++;\n }\n\n resolveFragment() {\n this.fragments--;\n this.isReady();\n }\n\n isReady() {\n if (this.isViewInitialized && !this.fragments) {\n this.registerFragment = noop;\n this.resolveFragment = noop;\n this.fragmentsLoaded$.complete();\n }\n }\n}\n","import {\n AfterViewInit,\n Injector,\n OnDestroy,\n ViewChild,\n Directive,\n inject\n} from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport { Subject } from 'rxjs';\n\nimport {\n $invokeWatchers,\n AbstractI18nService,\n AbstractNavigationService,\n App,\n noop,\n Viewport,\n ScriptLoaderService,\n UtilsService,\n registerFnByExpr\n} from '@wm/core';\nimport { PartialDirective, WidgetRef} from '@wm/components/base';\nimport { PageDirective, SpaPageDirective } from '@wm/components/page';\nimport {PrefabDirective} from '@wm/components/prefab';\nimport { VariablesService } from '@wm/variables';\n\nimport { FragmentMonitor } from '../util/fragment-monitor';\nimport { AppManagerService } from '../services/app.manager.service';\nimport {each} from \"lodash-es\";\n\nexport const commonPartialWidgets = {};\n\n@Directive()\nexport abstract class BasePartialComponent extends FragmentMonitor implements AfterViewInit, OnDestroy {\n Widgets: any;\n Variables: any;\n Actions: any;\n App: App;\n injector: Injector;\n partialName: string;\n activePageName: string;\n route: ActivatedRoute;\n appManager: AppManagerService;\n navigationService: AbstractNavigationService;\n router: Router;\n pageParams: any;\n containerWidget: any;\n i18nService: AbstractI18nService;\n appLocale: any;\n @ViewChild(PartialDirective) partialDirective;\n pageDirective: PageDirective | SpaPageDirective;\n Prefab: PrefabDirective;\n scriptLoaderService: ScriptLoaderService;\n Viewport: Viewport;\n compileContent = false;\n spa: boolean;\n\n destroy$ = new Subject();\n viewInit$ = new Subject();\n private viewParent: any;\n\n abstract evalUserScript(prefabContext: any, appContext: any, utils: any);\n\n abstract getVariables();\n abstract getExpressions();\n\n getContainerWidgetInjector() {\n return this.containerWidget.inj || this.containerWidget.injector;\n }\n\n init() {\n\n this.App = this.injector ? this.injector.get(App) : inject(App);\n //making the code compatible in both the JIT and AOT modes\n this.containerWidget = this.injector ? this.injector.get(WidgetRef) : inject(WidgetRef);\n this.i18nService = this.injector ? this.injector.get(AbstractI18nService) : inject(AbstractI18nService);\n this.scriptLoaderService = this.injector ? this.injector.get(ScriptLoaderService) : inject(ScriptLoaderService);\n this.Viewport = this.injector ? this.injector.get(Viewport) : inject(Viewport);\n // this.viewContainerRef = this.getContainerWidgetInjector().get(ViewContainerRef);\n // Replacing this.getContainerWidgetInjector().view.component as viewParent\n // this.viewParent = (this.viewContainerRef as any).parentInjector._lView[8];\n this.viewParent = this.containerWidget.viewParent;\n\n if (this.viewParent.registerFragment) {\n this.viewParent.registerFragment();\n }\n\n // register functions for binding evaluation\n this.registerExpressions();\n this.initUserScript();\n\n this.registerWidgets();\n this.initVariables();\n\n this.activePageName = this.App.activePageName; // Todo: remove this\n this.registerPageParams();\n\n this.defineI18nProps();\n\n this.viewInit$.subscribe(noop, noop, () => {\n this.pageParams = this.containerWidget.partialParams;\n });\n\n if(this.spa) {\n this.pageDirective = this.injector ? this.injector.get(SpaPageDirective) : inject(SpaPageDirective);\n } else {\n this.pageDirective = this.injector ? this.injector.get(PageDirective) : inject(PageDirective);\n }\n if (this.pageDirective) {\n this.registerDestroyListener(this.pageDirective.subscribe('attach', data => this.ngOnAttach(data.refreshData)));\n this.registerDestroyListener(this.pageDirective.subscribe('detach', () => this.ngOnDetach()));\n }\n\n super.init();\n }\n\n registerWidgets() {\n if (this.partialName === 'Common') {\n this.Widgets = commonPartialWidgets;\n } else {\n this.Widgets = Object.create(commonPartialWidgets);\n }\n\n this.containerWidget.Widgets = this.Widgets;\n }\n\n registerDestroyListener(fn: Function) {\n this.destroy$.subscribe(noop, noop, () => fn());\n }\n\n initUserScript() {\n try {\n // partials inside prefab should have access to Prefab properties and events\n if (this.viewParent.prefabName) {\n // for partial within partial within prefabs, just assign the parent partial's prefab object\n if (this.viewParent.Prefab) {\n this.Prefab = this.viewParent.Prefab;\n } else {\n this.Prefab = this.viewParent;\n }\n }\n this.evalUserScript(this, this.App, this.injector ? this.injector.get(UtilsService) : inject(UtilsService));\n } catch (e) {\n console.error(`Error in evaluating partial (${this.partialName}) script\\n`, e);\n }\n }\n\n initVariables() {\n const variablesService = this.injector ? this.injector.get(VariablesService) : inject(VariablesService);\n\n // get variables and actions instances for the page\n const variableCollection = variablesService.register(this.partialName, this.getVariables(), this);\n\n // create namespace for Variables nad Actions on page/partial, which inherits the Variables and Actions from App instance\n this.Variables = Object.create(this.App.Variables);\n this.Actions = Object.create(this.App.Actions);\n\n this.containerWidget.Variables = this.Variables;\n this.containerWidget.Actions = this.Actions;\n\n // assign all the page variables to the pageInstance\n Object.entries(variableCollection.Variables).forEach(([name, variable]) => this.Variables[name] = variable);\n Object.entries(variableCollection.Actions).forEach(([name, action]) => this.Actions[name] = action);\n\n\n this.viewInit$.subscribe(noop, noop, () => {\n // TEMP: triggering watchers so variables watching over params are updated\n $invokeWatchers(true, true);\n variableCollection.callback(variableCollection.Variables).catch(noop);\n variableCollection.callback(variableCollection.Actions);\n });\n }\n\n /**\n * function to register bind expressions generated in this partial instance\n * getExpressions function is defined in the generated page.comp.ts file\n * @param expressions, map of bind expression vs generated function\n */\n registerExpressions() {\n const expressions = this.getExpressions();\n each(expressions, (fn, expr) => {\n registerFnByExpr(expr, fn[0], fn[1]);\n });\n }\n\n registerPageParams() {\n this.pageParams = this.containerWidget.partialParams;\n }\n\n defineI18nProps() {\n this.appLocale = this.i18nService.getAppLocale();\n }\n\n invokeOnReady() {\n let params;\n if (this.containerWidget.userComponentParams) {\n params = this.containerWidget.userComponentParams;\n }\n this.onReady(params);\n if (this.viewParent.resolveFragment) {\n this.viewParent.resolveFragment();\n }\n }\n\n private loadScripts() {\n return new Promise<void>((resolve) => {\n const scriptsRequired = this.partialDirective.$element.attr('scripts-to-load');\n if (scriptsRequired) {\n this.scriptLoaderService\n .load(...scriptsRequired.split(','))\n .then(resolve);\n } else {\n resolve();\n }\n });\n }\n\n mute() {\n const m = o => { o && o.mute && o.mute(); };\n each(this.Widgets, m);\n each(this.Variables, m);\n each(this.Actions, m);\n }\n\n unmute() {\n const um = o => { o && o.unmute && o.unmute(); };\n each(this.Widgets, um);\n each(this.Variables, um);\n each(this.Actions, um);\n }\n\n // ngOnInit() {\n // this.init();\n // }\n\n ngAfterViewInit(): void {\n this.loadScripts().then(() => {\n this.compileContent = true;\n setTimeout(() => {\n this.viewInit$.complete();\n\n this.fragmentsLoaded$.subscribe(noop, noop, () => this.invokeOnReady());\n\n }, 100);\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.complete();\n }\n\n ngOnAttach(refreshData) {\n this.unmute();\n if (refreshData) {\n const refresh = v => { v && v.startUpdate && v.invoke && v.invoke(); };\n each(this.Variables, refresh);\n each(this.Actions, refresh);\n }\n each(this.Widgets, w => w && w.ngOnAttach && w.ngOnAttach());\n }\n\n ngOnDetach() {\n this.mute();\n each(this.Widgets, w => w && w.ngOnDetach && w.ngOnDetach());\n }\n\n onReady(params?) {\n }\n}\n","import { Inject } from '@angular/core';\n/*\nCustom Route Reuse Strategies:\n* WmDefaultRouteReuseStrategy: Base Function & Utils\n* WmRouteReseStrategy : For Preview & WaveMaker Deployments\n* WmNgRouteReuseStrategy : For Angular Deployments\n\nWhen a user invokes navigation action from 'Page1' to 'Page2'\nReuse Route : True,\n if the Page1 & Page2 are same with Same Query Params\nReuse Route : False,\n if the Page1 & Page 2 are different,\n if the Page1 & Page 2 are same, but the query params are different\n*/\nimport {\n ActivatedRouteSnapshot,\n DetachedRouteHandle,\n RouteReuseStrategy,\n} from '@angular/router';\n\nimport { LRUCache } from '@wm/core';\nimport {isNil} from \"lodash-es\";\nexport const CACHE_PAGE = '_cache_page';\nexport const MAX_CACHE_SIZE = 'REUSE_ROUTE_STRATEGY.MAX_CACHE_SIZE';\nexport const MAX_CACHE_AGE = 'REUSE_ROUTE_STRATEGY.MAX_CACHE_AGE';\n\n/* Base Strategy with Default implementations */\nexport class WmDefaultRouteReuseStrategy {\n private cache: LRUCache<DetachedRouteHandle>;\n private currentRouteKey: string;\n private paramsToIgnore = [\n 'wm_state', // state persistence,\n CACHE_PAGE // to use page cache\n ];\n\n constructor(@Inject(MAX_CACHE_SIZE) maxCacheSize?: number,\n @Inject(MAX_CACHE_AGE) maxCacheAge?: number) {\n this.cache = new LRUCache<DetachedRouteHandle>(maxCacheSize, maxCacheAge, (key, handle) => {\n if (this.currentRouteKey === key) {\n this.cache.set(key, handle);\n } else {\n (handle as any).componentRef.destroy();\n }\n });\n }\n\n private getKey(route: ActivatedRouteSnapshot) {\n const queryParams = Object.keys(route.queryParams)\n .filter(k => !this.paramsToIgnore.includes(k))\n .map(k => k + '=' + route.queryParams[k])\n .sort().join('&');\n let pageName = route.params.pageName;\n if (route.data.pageName && route.routeConfig.path === '') {\n pageName = route.data.pageName;\n }\n return pageName && (pageName + (queryParams ? `?${queryParams}`: ''));\n }\n\n protected getSize = (obj: object | null): number =>\n obj ? Object.keys(obj).length : 0;\n\n protected isSameQueryParams(future, current): boolean {\n try {\n const fqParams = future.queryParams;\n const cqParams = current.queryParams;\n const fqParamsCount = fqParams ? this.getSize(fqParams) : 0;\n const cqParamsCount = cqParams ? this.getSize(cqParams) : 0;\n\n if (fqParamsCount === 0 && cqParamsCount === 0) {\n return true;\n }\n if (fqParamsCount !== cqParamsCount) {\n return false;\n }\n return JSON.stringify(fqParams) === JSON.stringify(cqParams);\n } catch (e) {\n return false;\n }\n }\n\n private isCacheEnabled(route: ActivatedRouteSnapshot, defaultValue: boolean) {\n const canReuse = route.queryParams[CACHE_PAGE];\n if (!isNil(canReuse)) {\n return (canReuse === 'true' || canReuse === true);\n }\n return defaultValue;\n }\n\n // DefaultRouteReuseStrategy : Begin\n shouldDetach(route: ActivatedRouteSnapshot): boolean {\n const key = this.getKey(route);\n if (this.isCacheEnabled(route, !!route.data[CACHE_PAGE])) {\n return true;\n }\n this.cache.delete(key);\n return false;\n }\n\n shouldAttach(route: ActivatedRouteSnapshot): boolean {\n const key = this.getKey(route);\n this.currentRouteKey = key;\n const cachedHandle = this.cache.get(key) as DetachedRouteHandle;\n if (cachedHandle && this.isCacheEnabled(route, !!(cachedHandle[CACHE_PAGE]))) {\n return true;\n }\n this.cache.delete(key);\n return false;\n }\n\n store(route: ActivatedRouteSnapshot, handle: DetachedRouteHandle): void {\n if (handle) {\n const key = this.getKey(route);\n handle[CACHE_PAGE] = !!route.data[CACHE_PAGE];\n this.cache.set(key, handle);\n }\n }\n\n retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle | null {\n const key = this.getKey(route);\n return this.cache.get(key);\n }\n\n reset(pageName?: string) {\n if (pageName) {\n this.cache.delete(pageName);\n const pageWithParams = pageName += '?';\n const entriesToDelete = [];\n for(let k of this.cache.keys()) {\n if (k.startsWith(pageWithParams)) {\n entriesToDelete.push(k);\n }\n }\n entriesToDelete.forEach(k => this.cache.delete(k));\n } else {\n return this.cache.clear();\n }\n }\n}\n/* Custom Strategy specifically for preview & WaveMaker Deployments */\nexport class WmRouteReuseStrategy extends WmDefaultRouteReuseStrategy\n implements RouteReuseStrategy {\n constructor() {\n super();\n }\n private isSameRoute(future, current): boolean {\n // Incase of prefab project we have only one route So reloading the route everytime\n if (future.routeConfig && future.routeConfig.path === 'prefab-preview') {\n return false;\n }\n /*\n In WM Deployment, Navigation is handled by PageWrapperComponent\n & Route Info is passed as a parameter\n */\n const fParams = future.params;\n const cParams = current.params;\n const fParamsCount = this.getSize(fParams);\n const cParamsCount = this.getSize(cParams);\n if (fParamsCount === 0 && cParamsCount === 0) {\n return true;\n }\n if (fParamsCount !== cParamsCount) {\n return false;\n }\n if (fParams['pageName'] === cParams['pageName']) {\n return this.isSameQueryParams(future, current);\n }\n return false;\n }\n shouldReuseRoute(\n future: ActivatedRouteSnapshot,\n current: ActivatedRouteSnapshot\n ): boolean {\n return this.isSameRoute(future, current);\n }\n}\n/* Custom Strategy specifically for Angular Deployments */\nexport class WmNgRouteReuseStrategy extends WmDefaultRouteReuseStrategy\n implements RouteReuseStrategy {\n constructor() {\n super();\n }\n private isSameRoute(future, current): boolean {\n /*\n In Angular Deployment, Navigation is handled by Angular\n & Route Info is passed by routeConfig\n */\n if (!future.routeConfig && !current.routeConfig) {\n return true;\n }\n if (future.routeConfig !== current.routeConfig) {\n return false;\n }\n if (future.routeConfig === current.routeConfig) {\n //No need to compare query params for layout routeConfig\n if(future.data.layoutName && current.data.layoutName) {\n return true;\n }\n return this.isSameQueryParams(future, current);\n }\n return true;\n }\n shouldReuseRoute(\n future: ActivatedRouteSnapshot,\n current: ActivatedRouteSnapshot\n ): boolean {\n return this.isSameRoute(future, current);\n }\n}\n","import {\n AfterContentInit,\n AfterViewInit,\n Directive,\n HostListener,\n inject,\n Injector,\n OnDestroy,\n ViewChild\n} from '@angular/core';\nimport {ActivatedRoute, Router} from '@angular/router';\n\nimport {\n AbstractI18nService,\n AbstractNavigationService,\n App,\n getWmProjectProperties,\n isAndroid,\n isIos,\n isMobileApp,\n muteWatchers,\n noop,\n registerFnByExpr,\n ScriptLoaderService,\n unMuteWatchers,\n UtilsService,\n Viewport\n} from '@wm/core';\nimport {PageDirective} from '@wm/components/page';\n\nimport {Subject} from 'rxjs';\nimport {commonPartialWidgets} from './base-partial.component';\n\n\nimport {VariablesService} from '@wm/variables';\nimport {AppManagerService} from '../services/app.manager.service';\nimport {FragmentMonitor} from '../util/fragment-monitor';\nimport {CACHE_PAGE} from '../util/wm-route-reuse-strategy';\nimport {each, extend} from \"lodash-es\";\n\ndeclare const $;\ndeclare const html2canvas;\n\n@Directive()\nexport abstract class BasePageComponent extends FragmentMonitor implements AfterViewInit, OnDestroy, AfterContentInit {\n static lastPageSnapShot = null;\n Widgets: any;\n Variables: any;\n Actions: any;\n App: App;\n injector: Injector;\n pageName: string;\n activePageName: string;\n route: ActivatedRoute;\n appManager: AppManagerService;\n navigationService: AbstractNavigationService;\n router: Router;\n pageParams: any;\n showPageContent: boolean;\n i18nService: AbstractI18nService;\n appLocale: any;\n startupVariablesLoaded = false;\n pageTransitionCompleted = false;\n @ViewChild(PageDirective) pageDirective;\n $page;\n scriptLoaderService: ScriptLoaderService;\n Viewport: Viewport;\n\n destroy$ = new Subject();\n viewInit$ = new Subject();\n formatsByLocale = {'timezone': ''};\n\n\n abstract evalUserScript(prefabContext: any, appContext: any, utils: any);\n abstract getVariables();\n abstract getExpressions();\n\n init() {\n\n muteWatchers();\n\n this.App = this.injector ? this.injector.get(App) : inject(App);\n this.route = this.injector ? this.injector.get(ActivatedRoute) : inject(ActivatedRoute);\n this.appManager = this.injector ? this.injector.get(AppManagerService) : inject(AppManagerService);\n this.navigationService = this.injector ? this.injector.get(AbstractNavigationService) : inject(AbstractNavigationService);\n this.scriptLoaderService = this.injector ? this.injector.get(ScriptLoaderService) : inject(ScriptLoaderService);\n this.i18nService = this.injector ? this.injector.get(AbstractI18nService) : inject(AbstractI18nService);\n this.router = this.injector ? this.injector.get(Router) : inject(Router);\n this.Viewport = this.injector ? this.injector.get(Viewport) : inject(Viewport);\n\n // register functions for binding evaluation\n this.registerExpressions();\n this.initUserScript();\n\n this.registerWidgets();\n this.initVariables();\n\n this.App.lastActivePageName = this.App.activePageName;\n this.App.activePageName = this.pageName;\n this.App.activePage = this;\n this.activePageName = this.pageName; // Todo: remove this\n\n this.registerPageParams();\n this.defineI18nProps();\n super.init();\n }\n\n registerWidgets() {\n // common partial widgets should be accessible from page\n this.Widgets = Object.create(commonPartialWidgets);\n\n // expose current page widgets on app\n (this.App as any).Widgets = Object.create(this.Widgets);\n }\n\n initUserScript() {\n try {\n this.evalUserScript(this, this.App, this.injector ? this.injector.get(UtilsService) : inject(UtilsService));\n } catch (e) {\n console.error(`Error in evaluating page (${this.pageName}) script\\n`, e);\n }\n }\n\n registerPageParams() {\n const subscription = this.route.queryParams.subscribe(params => this.pageParams = (this.App as any).pageParams = extend({}, params));\n this.registerDestroyListener(() => subscription.unsubscribe());\n }\n\n registerDestroyListener(fn: Function) {\n this.destroy$.subscribe(noop, noop, () => fn());\n }\n\n defineI18nProps() {\n this.appLocale = this.i18nService.getAppLocale();\n }\n\n initVariables() {\n const variablesService = this.injector ? this.injector.get(VariablesService) : inject(VariablesService);\n\n // get variables and actions instances for the page\n const variableCollection = variablesService.register(this.pageName, this.getVariables(), this);\n\n // create namespace for Variables nad Actions on page/partial, which inherits the Variables and Actions from App instance\n this.Variables = Object.create(this.App.Variables);\n this.Actions = Object.create(this.App.Actions);\n\n // assign all the page variables to the pageInstance\n Object.entries(variableCollection.Variables).forEach(([name, variable]) => this.Variables[name] = variable);\n Object.entries(variableCollection.Actions).forEach(([name, action]) => this.Actions[name] = action);\n\n\n\n const subscription = this.viewInit$.subscribe(noop, noop, () => {\n\n if (!this.appManager.isAppVariablesFired()) {\n variableCollection.callback(this.App.Variables).catch(noop).then(() => {\n this.appManager.notify('app-variables-data-loaded', {pageName: this.pageName});\n });\n variableCollection.callback(this.App.Actions);\n this.appManager.appVariablesReady();\n this.appManager.isAppVariablesFired(true);\n }\n\n variableCollection.callback(variableCollection.Variables)\n .catch(noop)\n .then(() => {\n this.appManager.notify('page-variables-data-loaded', {pageName: this.pageName});\n this.startupVariablesLoaded = true;\n // hide the loader only after the some setTimeout for smooth page load.\n setTimeout(() => {\n this.showPageContent = true;\n }, 100);\n });\n variableCollection.callback(variableCollection.Actions);\n\n subscription.unsubscribe();\n });\n }\n\n setTimezone(locale) {\n this.i18nService.setTimezone(locale, this);\n }\n\n /**\n * function to register bind expressions generated in this page instance\n * getExpressions function is defined in the generated page.comp.ts file\n * @param expressions, map of bind expression vs generated function\n */\n registerExpressions() {\n const expressions = this.getExpressions();\n each(expressions, (fn, expr) => {\n registerFnByExpr(expr, fn[0], fn[1]);\n });\n }\n\n runPageTransition(transition?: string): Promise<void> {\n transition = transition || this.navigationService.getPageTransition();\n const lastPage = BasePageComponent.lastPageSnapShot\n return new Promise<void>(resolve => {\n if (transition\n && !transition.startsWith('none')\n && lastPage) {\n const $target = lastPage.parent();\n const onTransitionEnd = (e) => {\n if (resolve && !(e && e.pseudoElement)) {\n $target.off('animationend', onTransitionEnd);\n $target.removeClass(transition);\n $target.children().first().remove();\n resolve();\n resolve = null;\n }\n };\n transition = 'page-transition page-transition-' + transition;\n lastPage.addClass('page-exit');\n this.$page.addClass('page-entry');\n $target.addClass(transition);\n $target.on('animationend', onTransitionEnd);\n // Wait for a maximum of 1 second for transition to end.\n setTimeout(onTransitionEnd, 1000);\n } else {\n resolve();\n }\n }).then(() => {\n this.$page && this.$page.removeClass('page-entry');\n if (lastPage) {\n lastPage.remove();\n BasePageComponent.lastPageSnapShot = null;\n }\n this.pageTransitionCompleted = true;\n });\n }\n\n invokeOnReady() {\n this.onReady();\n this.appManager.notify('pageReady', {'name' : this.pageName, instance: this});\n (this.App.onPageReady || noop)(this.pageName, this);\n\n const homePage = getWmProjectProperties()?.homePage;\n if (window.top.name !== window.name && homePage === this.pageName) {\n window.top.postMessage({key: 'onHomepageLoad'}, \"*\");\n }\n }\n\n private loadScripts() {\n return new Promise<void>((resolve) => {\n const scriptsRequired = this.pageDirective && this.pageDirective.$element.attr('scripts-to-load');\n if (scriptsRequired) {\n this.scriptLoaderService\n .load(...scriptsRequired.split(','))\n .then(resolve);\n } else {\n resolve();\n }\n });\n }\n\n private restoreLastPageSnapshot() {\n if (isMobileApp() && BasePageComponent.lastPageSnapShot && this.$page) {\n this.$page.parent().prepend(BasePageComponent.lastPageSnapShot);\n }\n }\n\n private savePageSnapShot() {\n if (BasePageComponent.lastPageSnapShot) {\n BasePageComponent.lastPageSnapShot.remove();\n }\n if (isMobileApp() && this.$page) {\n BasePageComponent.lastPageSnapShot = this.$page.clone();\n this.$page.parents('app-root').prepend(BasePageComponent.lastPageSnapShot);\n }\n }\n\n private saveScrollPosition() {\n const fn = ($el, key, recursive = true, $target = $el) => {\n if (recursive) {\n $el.children().each((i, v) => fn($(v), key));\n }\n const scrollData = {\n x: $target.scrollLeft(),\n y: $target.scrollTop()\n };\n if(scrollData.x > 0 || scrollData.y > 0) {\n $el.attr(key, scrollData.x + ',' + scrollData.y);\n }\n };\n fn(this.$page, 'data-scroll-position');\n this.$page.attr('data-window-scroll-position', window.scrollX + ',' + window.scrollY);\n }\n\n private restoreScrollPosition() {\n const fn = ($el, key, recursive = true, $target = $el) => {\n const scrollData = ($el.attr(key) || '').split(',');\n if(scrollData.length > 1) {\n $target.scrollLeft(scrollData[0]);\n $target.scrollTop(scrollData[1]);\n }\n $el.removeAttr(key);\n if (recursive) {\n $el.children().each((i, v) => fn($(v), key));\n }\n };\n fn(this.$page, 'data-scroll-position');\n fn(this.$page, 'data-window-scroll-position', false, $(window));\n }\n\n /**\n * canDeactivate is called before a route change.\n * This will internally call onBeforePageLeave method present\n * at page level and app level in the application and decide\n * whether to change route or not based on return value.\n */\n @HostListener('window:beforeunload')\n canDeactivate() {\n let retVal;\n // Calling onBeforePageLeave method present at page level\n retVal = this.onBeforePageLeave();\n // Calling onBeforePageLeave method present at app level only if page level method return true\n // or if there is no page level method\n if (retVal !== false ) {\n retVal = (this.App.onBeforePageLeave || noop)(this.App.activePageName, this.App.activePage);\n }\n return retVal === undefined ? true : retVal;\n }\n\n ngAfterViewInit(): void {\n this.route.snapshot.data[CACHE_PAGE] = this.canReuse();\n if (this.pageDirective) {\n this.$page = this.pageDirective.$element.parent();\n if (isIos()) {\n this.$page.addClass('ios-page');\n }\n if (isAndroid()) {\n this.$page.addClass('android-page');\n }\n }\n this.restoreLastPageSnapshot();\n this.loadScripts().then(() => {\n this.runPageTransition()\n .then(() => {\n (this as any).compilePageContent = true;\n setTimeout(() => {\n this.onPageContentReady = () => {\n this.fragmentsLoaded$.subscribe(noop, noop, () => {\n this.invokeOnReady();\n });\n unMuteWatchers();\n this.viewInit$.complete();\n this.onPageContentReady = noop;\n };\n }, 0);\n });\n });\n }\n\n ngOnDestroy(): void {\n //this.captureApplicationThumbnail();\n this.savePageSnapShot();\n this.destroy$.complete();\n }\n\n captureApplicationThumbnail() {\n const root = this;\n let captureApplicationThumbnail = localStorage.getItem(\"captureApplicationThumbnail\") === \"true\" ? true : false;\n if (captureApplicationThumbnail && this.App.landingPageName === this.pageName && !(<any>this).App.isApplicationThumbnailCaptured) {\n html2canvas(document.body)\n .then(canvas => {\n try {\n (<any>root).App.isApplicationThumbnailCaptured = true;\n const screenshotUrl = canvas.toDataURL(\"image/png\");\n console.log(screenshotUrl);\n\n const a = document.createElement(\"a\");\n a.href = screenshotUrl;\n a.download = \"screenshot.jpg\";\n a.click();\n } catch (error) {\n console.error('Error in html2canvas then block:', error);\n }\n })\n .catch(error => {\n console.error('Error in html2canvas promise:', error);\n });\n\n }\n }\n\n onReady() {}\n\n onBeforePageReady() {}\n\n onBeforePageLeave() {}\n\n onPageContentReady() {}\n\n canReuse() {\n return !!(this.pageDirective && this.pageDirective.cache);\n }\n\n mute() {\n const m = o => { o && o.mute && o.mute(); };\n each(this.Widgets, m);\n each(this.Variables, m);\n each(this.Actions, m);\n }\n\n unmute(c = this) {\n const um = o => { o && o.unmute && o.unmute(); };\n each(this.Widgets, um);\n each(this.Variables, um);\n each(this.Actions, um);\n }\n\n ngOnAttach() {\n this.route.snapshot.data[CACHE_PAGE] = this.canReuse();\n this.registerPageParams();\n this.App.lastActivePageName = this.App.activePageName;\n this.App.activePageName = this.pageName;\n this.App.activePage = this;\n this.activePageName = this.pageName;\n this.restoreLastPageSnapshot();\n this.unmute();\n // expose current page widgets on app\n (this.App as any).Widgets = Object.create(this.Widgets);\n if(this.pageDirective && this.pageDirective.refreshdataonattach) {\n const refresh = v => { v && v.startUpdate && v.invoke && v.invoke(); };\n each(this.Variables, refresh);\n each(this.Actions, refresh);\n }\n this.runPageTransition().then(() => {\n setTimeout(() => this.restoreScrollPosition(), 100);\n each(this.Widgets, w => w && w.ngOnAttach && w.ngOnAttach());\n this.appManager.notify('pageAttach', {'name' : this.pageName, instance: this});\n });\n }\n\n ngOnDetach() {\n this.saveScrollPosition();\n this.savePageSnapShot();\n this.mute();\n each(this.Widgets, w => w && w.ngOnDetach && w.ngOnDetach());\n this.appManager.notify('pageDetach', {'name' : this.pageName, instance: this});\n }\n\n ngAfterContentInit() {\n this.onBeforePageReady();\n }\n\n static clear() {\n if(BasePageComponent.lastPageSnapShot) {\n BasePageComponent.lastPageSnapShot.remove();\n BasePageComponent.lastPageSnapShot = null;\n }\n }\n}\n","import { AfterViewInit, Injector, inject, OnDestroy, ViewChild, Directive } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nimport {\n $watch,\n AbstractI18nService,\n App,\n isIE,\n noop,\n ScriptLoaderService,\n UtilsService,\n $invokeWatchers,\n Viewport,\n registerFnByExpr\n} from '@wm/core';\nimport { WidgetRef} from '@wm/components/base';\nimport { PageDirective, SpaPageDirective } from '@wm/components/page';\nimport { PrefabContainerDirective } from '@wm/components/prefab';\nimport { VariablesService } from '@wm/variables';\n\nimport { PrefabManagerService } from '../services/prefab-manager.service';\nimport { FragmentMonitor } from '../util/fragment-monitor';\nimport {each, startsWith, trim} from \"lodash-es\";\n\n@Directive()\nexport abstract class BasePrefabComponent extends FragmentMonitor implements AfterViewInit, OnDestroy {\n Widgets: any;\n Variables: any;\n Actions: any;\n App: App;\n injector: Injector;\n containerWidget: any;\n prefabMngr: PrefabManagerService;\n displayName: string;\n prefabName: string;\n i18nService: AbstractI18nService;\n appLocale: any;\n @ViewChild(PrefabContainerDirective) prefabContainerDirective;\n scriptLoaderService: ScriptLoaderService;\n compileContent = false;\n pageDirective: PageDirective | SpaPageDirective;\n Viewport: Viewport;\n spa: boolean;\n\n destroy$ = new Subject();\n viewInit$ = new Subject();\n\n private viewParent: any;\n\n abstract evalUserScript(prefabContext: any, appContext: any, utils: any);\n abstract getVariables();\n abstract getExpressions();\n\n getContainerWidgetInjector() {\n return this.containerWidget.inj || this.containerWidget.injector;\n }\n\n init() {\n this.App = this.injector.get(App);\n //making the code compatible in both the JIT and AOT modes\n this.containerWidget = this.injector ? this.injector.get(WidgetRef) : inject(WidgetRef);\n\n this.prefabMngr = this.injector ? this.injector.get(PrefabManagerService) : inject(PrefabManagerService);\n this.i18nService = this.injector ? this.injector.get(AbstractI18nService) : inject(AbstractI18nService);\n this.scriptLoaderService = this.injector ? this.injector.get(ScriptLoaderService) : inject(ScriptLoaderService);\n this.Viewport = this.injector ? this.injector.get(Viewport) : inject(Viewport);\n\n this.viewParent = this.containerWidget.viewParent;\n\n if (this.viewParent.registerFragment) {\n this.viewParent.registerFragment();\n }\n\n if (this.spa) {\n this.pageDirective = this.injector ? this.injector.get(SpaPageDirective) : inject(SpaPageDirective);\n } else {\n this.pageDirective = this.injector ? this.injector.get(PageDirective) : inject(PageDirective);\n }\n if (this.pageDirective) {\n this.registerDestroyListener(this.pageDirective.subscribe('attach', data => this.ngOnAttach(data.refreshData)));\n this.registerDestroyListener(this.pageDirective.subscribe('detach', () => this.ngOnDetach()));\n }\n\n // register functions for binding evaluation\n this.registerExpressions();\n this.initUserScript();\n\n this.registerWidgets();\n this.initVariables();\n this.registerProps();\n this.defineI18nProps();\n super.init();\n }\n\n registerWidgets() {\n this.Widgets = {};\n this.Widgets = {};this.containerWidget.Widgets = this.Widgets;\n }\n\n initUserScript() {\n try {\n this.evalUserScript(this, this.App, this.injector.get(UtilsService));\n } catch (e) {\n console.error(`Error in evaluating prefab (${this.prefabName}) script\\n`, e);\n }\n }\n\n registerChangeListeners() {\n this.containerWidget.registerPropertyChangeListener(this.onPropertyChange);\n this.containerWidget.registerStyleChangeListener(this.onPropertyChange);\n }\n\n registerDestroyListener(fn: Function) {\n this.destroy$.subscribe(noop, noop, () => fn());\n }\n\n defineI18nProps() {\n this.appLocale = this.i18nService.getPrefabLocaleBundle(this.prefabName);\n }\n\n registerProps() {\n this.prefabMngr.getConfig(this.prefabName)\n .then(config => {\n\n if (config) {\n this.displayName = config.displayName;\n Object.entries((config.properties || {}))\n .forEach(([key, prop]: [string, any]) => {\n let expr;\n const value = trim(prop.value);\n\n if (startsWith(value, 'bind:')) {\n expr = value.replace('bind:', '');\n }\n\n Object.defineProperty(this, key, {\n get: () => this.containerWidget[key],\n set: nv => this.containerWidget.widget[key] = nv\n });\n\n if (expr) {\n //[Todo-CSP]: expr will be generated with prefab.comp.expr.ts\n this.registerDestroyListener(\n $watch(expr, this, {}, nv => this.containerWidget.widget[key] = nv)\n );\n }\n });\n\n Object.entries((config.events || {}))\n .forEach(([key, prop]: [string, any]) => {\n this[key] = (...args) => {\n const eventName = key.substr(2).toLowerCase();\n this.containerWidget.invokeEventCallback(eventName, {$event: args[0], $data: args[1]});\n };\n });\n\n Object.entries((config.methods || {}))\n .forEach(([key, prop]: [string, any]) => {\n this.containerWidget[key] = (...args) => {\n try {\n if (this[key]) {\n return this[key].apply(this, args);\n }\n } catch (e) {\n console.warn(`error in executing prefab-${this.prefabName} method-${key}`);\n }\n };\n });\n }\n this.containerWidget.setProps(config);\n // Reassigning the proxy handler for prefab inbound properties as we\n // will get them only after the prefab config call.\n if (isIE()) {\n this.containerWidget.widget = this.containerWidget.createProxy();\n }\n });\n }\n\n initVariables() {\n const variablesService = this.injector.get(VariablesService);\n\n // get variables and actions instances for the page\n const variableCollection = variablesService.register(this.prefabName, this.getVariables(), this);\n\n // create namespace for Variables nad Actions on page/partial, which inherits the Variables and Actions from App instance\n this.Variables = {};\n this.Actions = {};\n this.containerWidget.Variables = this.Variables;\n this.containerWidget.Actions = this.Actions;\n\n // assign all the page variables to the pageInstance\n Object.entries(variableCollection.Variables).forEach(([name, variable]) => this.Variables[name] = variable);\n Object.entries(variableCollection.Actions).forEach(([name, action]) => this.Actions[name] = action);\n\n\n this.viewInit$.subscribe(noop, noop, () => {\n variableCollection.callback(variableCollection.Variables).catch(noop);\n variableCollection.callback(variableCollection.Actions);\n });\n }\n\n /**\n * function to register bind expressions generated in this page instance\n * getExpressions function is defined in the generated page.comp.ts file\n * @param expressions, map of bind expression vs generated function\n */\n registerExpressions() {\n const expressions = this.getExpressions();\n each(expressions, (fn, expr) => {\n registerFnByExpr(expr, fn[0], fn[1]);\n });\n }\n\n invokeOnReady() {\n // triggering watchers so variables and propertiers watching over an expression are updated\n $invokeWatchers(true, true);\n this.onReady();\n if (this.viewParent.resolveFragment) {\n this.viewParent.resolveFragment();\n }\n this.containerWidget.invokeEventCallback('load');\n }\n\n private loadScripts() {\n return new Promise<void>((resolve) => {\n const scriptsRequired = this.prefabContainerDirective.$element.attr('scripts-to-load');\n if (scriptsRequired) {\n this.scriptLoaderService\n .load(...scriptsRequired.split(','))\n .then(resolve);\n } else {\n resolve();\n }\n });\n }\n\n mute() {\n const m = o => { o && o.mute && o.mute(); };\n each(this.Widgets, m);\n each(this.Variables, m);\n each(this.Actions, m);\n }\n\n unmute() {\n const um = o => { o && o.unmute && o.unmute(); };\n each(this.Widgets, um);\n each(this.Variables, um);\n each(this.Actions, um);\n }\n\n ngOnAttach(refreshData) {\n this.unmute();\n if(refreshData) {\n const refresh = v => { v && v.startUpdate && v.invoke && v.invoke(); };\n each(this.Variables, refresh);\n each(this.Actions, refresh);\n }\n each(this.Widgets, w => w && w.ngOnAttach && w.ngOnAttach());\n }\n\n ngOnDetach() {\n this.mute();\n each(this.Widgets, w => w && w.ngOnDetach && w.ngOnDetach());\n }\n\n\n ngAfterViewInit(): void {\n this.loadScripts().then(() => {\n this.compileContent = true;\n this.registerChangeListeners();\n setTimeout(() => {\n // trigger viewInit$.complete after a timeout so that the widget listeners are ready before Variable xhr call.\n this.viewInit$.complete();\n this.fragmentsLoaded$.subscribe(noop, noop, () => this.invokeOnReady());\n }, 100);\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.complete();\n }\n\n // user overrides this\n onPropertyChange() {}\n\n onReady() {}\n\n}\n","import { AfterViewInit, Injector, OnDestroy, ViewChild, Directive } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\n\nimport { PageDirective } from \"@wm/components/page\";\nimport { registerFnByExpr, App } from \"@wm/core\";\nimport {each, extend} from \"lodash-es\";\n\n@Directive()\nexport abstract class BaseLayoutComponent implements AfterViewInit, OnDestroy {\n injector: Injector;\n App: App;\n layoutName: string;\n layoutPages: string[];\n\n @ViewChild(RouterOutlet) routerOutlet: RouterOutlet;\n @ViewChild(PageDirective) pageDirective: PageDirective;\n\n abstract getExpressions();\n\n /**\n * function to register bind expressions generated in this page instance\n * getExpressions function is defined in the generated page.comp.ts file\n * @param expressions, map of bind expression vs generated function\n */\n registerExpressions() {\n const expressions = this.getExpressions();\n each(expressions, (fn, expr) => {\n registerFnByExpr(expr, fn[0], fn[1]);\n });\n }\n\n private overrideRouterOutlet() {\n //override the attach/detach methods\n const oAttach = this.routerOutlet.attach;\n const oDetach = this.routerOutlet.detach;\n this.routerOutlet.attach = (componentRef: any) => {\n oAttach.call(this.routerOutlet, componentRef);\n componentRef.instance.ngOnAttach();\n };\n this.routerOutlet.detach = () => {\n const componentRef = oDetach.call(this.routerOutlet);\n return componentRef;\n };\n }\n\n ngAfterViewInit() {\n setTimeout(() => {\n this.overrideRouterOutlet();\n }, 10);\n }\n\n init() {\n this.App = this.injector.get(App);\n this.App.activeLayoutName = this.layoutName;\n this.App.layoutPages = this.layoutPages;\n\n // register functions for binding evaluation\n this.registerExpressions();\n }\n\n //TODO: To work cache properly need to implement the below methods and WmRouteReuseStrategy\n ngOnDestroy(): void {\n }\n\n canReuse() {\n }\n\n ngOnAttach() {\n }\n\n ngOnDetach() {\n }\n\n // This will be called when child route (Page component in the layout) is activated\n onActivate(pageComponent: any) {\n //Add page component scope to layout component so that bindings and watchers in the layout will use the page scope\n extend(this, pageComponent);\n }\n}\n","import { AfterViewInit, HostListener, Injector, OnDestroy, ViewChild, Directive, AfterContentInit, inject } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport { isAndroid, isIos, Viewport, ScriptLoaderService, registerFnByExpr } from '@wm/core';\nimport { LayoutDirective, SpaPageDirective } from '@wm/components/page';\n\nimport {Subject, Subscription} from 'rxjs';\n\nimport {\n AbstractI18nService,\n AbstractNavigationService,\n addClass,\n App,\n isMobileApp,\n muteWatchers,\n noop,\n removeClass,\n unMuteWatchers,\n UtilsService\n} from '@wm/core';\nimport { commonPartialWidgets } from './base-partial.component';\n\n\nimport { VariablesService } from '@wm/variables';\nimport { AppManagerService } from '../services/app.manager.service';\nimport { FragmentMonitor } from '../util/fragment-monitor';\nimport { CACHE_PAGE } from '../util/wm-route-reuse-strategy';\nimport {each, extend} from \"lodash-es\";\n\ndeclare const $;\n\n@Directive()\nexport abstract class BaseSpaPageComponent extends FragmentMonitor implements AfterViewInit, OnDestroy, AfterContentInit {\n static lastPageSnapShot = null;\n Widgets: any;\n Variables: any;\n Actions: any;\n App: App;\n injector: Injector;\n pageName: string;\n activePageName: string;\n route: ActivatedRoute;\n appManager: AppManagerService;\n navigationService: AbstractNavigationService;\n router: Router;\n pageParams: any;\n showPageContent: boolean;\n i18nService: AbstractI18nService;\n appLocale: any;\n startupVariablesLoaded = false;\n pageTransitionCompleted = false;\n layoutDirective: LayoutDirective;\n @ViewChild(SpaPageDirective) spaPageDirective;\n $page;\n scriptLoaderService: ScriptLoaderService;\n Viewport: Viewport;\n\n destroy$ = new Subject();\n viewInit$ = new Subject();\n formatsByLocale = {'timezone': ''};\n\n abstract evalUserScript(prefabContext: any, appContext: any, utils: any);\n abstract getVariables();\n abstract getExpressions();\n\n init() {\n\n muteWatchers();\n\n this.App = this.injector ? this.injector.get(App) : inject(App);\n this.route = this.injector ? this.injector.get(ActivatedRoute) : inject(ActivatedRoute);\n this.appManager = this.injector ? this.injector.get(AppManagerService) : inject(AppManagerService);\n this.navigationService = this.injector ? this.injector.get(AbstractNavigationService) : inject(AbstractNavigationService);\n this.scriptLoaderService = this.injector ? this.injector.get(ScriptLoaderService) : inject(ScriptLoaderService);\n this.i18nService = this.injector ? this.injector.get(AbstractI18nService) : inject(AbstractI18nService);\n this.router = this.injector ? this.injector.get(Router) : inject(Router);\n this.Viewport = this.injector ? this.injector.get(Viewport) : inject(Viewport);\n this.layoutDirective = this.injector ? this.injector.get(LayoutDirective) : inject(LayoutDirective);\n\n // register functions for binding evaluation\n this.registerExpressions();\n this.initUserScript();\n\n this.registerWidgets();\n this.initVariables();\n\n this.App.lastActivePageName = this.App.activePageName;\n this.App.activePageName = this.pageName;\n this.App.activePage = this;\n this.activePageName = this.pageName; // Todo: remove this\n\n this.registerPageParams();\n this.defineI18nProps();\n super.init();\n }\n\n registerWidgets() {\n // common partial widgets should be accessible from page\n this.Widgets = Object.create(commonPartialWidgets);\n\n // expose current page widgets on app\n (this.App as any).Widgets = Object.create(this.Widgets);\n }\n\n initUserScript() {\n try {\n this.evalUserScript(this, this.App, this.injector ? this.injector.get(UtilsService) : inject(UtilsService));\n } catch (e) {\n console.error(`Error in evaluating page (${this.pageName}) script\\n`, e);\n }\n }\n\n registerPageParams() {\n const subscription = this.route.queryParams.subscribe(params => this.pageParams = (this.App as any).pageParams = extend({}, params));\n this.registerDestroyListener(() => subscription.unsubscribe());\n }\n\n registerDestroyListener(fn: Function) {\n this.destroy$.subscribe(noop, noop, () => fn());\n }\n\n defineI18nProps() {\n this.appLocale = this.i18nService.getAppLocale();\n }\n\n initVariables() {\n const variablesService = this.injector ? this.injector.get(VariablesService) : inject(VariablesService);\n\n // get variables and actions instances for the page\n const variableCollection = variablesService.register(this.pageName, this.getVariables(), this);\n\n // create namespace for Variables nad Actions on page/partial, which inherits the Variables and Actions from App instance\n this.Variables = Object.create(this.App.Variables);\n this.Actions = Object.create(this.App.Actions);\n\n // assign all the page variables to the pageInstance\n Object.entries(variableCollection.Variables).forEach(([name, variable]) => this.Variables[name] = variable);\n Object.entries(variableCollection.Actions).forEach(([name, action]) => this.Actions[name] = action);\n\n\n\n const subscription = this.viewInit$.subscribe(noop, noop, () => {\n\n if (!this.appManager.isAppVariablesFired()) {\n variableCollection.callback(this.App.Variables).catch(noop).then(() => {\n this.appManager.notify('app-variables-data-loaded', {pageName: this.pageName});\n });\n variableCollection.callback(this.App.Actions);\n this.appManager.appVariablesReady();\n this.appManager.isAppVariablesFired(true);\n }\n\n variableCollection.callback(variableCollection.Variables)\n .catch(noop)\n .then(() => {\n this.appManager.notify('page-variables-data-loaded', {pageName: this.pageName});\n this.startupVariablesLoaded = true;\n // hide the loader only after the some setTimeout for smooth page load.\n setTimeout(() => {\n this.showPageContent = true;\n }, 100);\n });\n variableCollection.callback(variableCollection.Actions);\n\n subscription.unsubscribe();\n });\n }\n\n setTimezone(locale) {\n this.i18nService.setTimezone(locale, this);\n }\n\n /**\n * function to register bind expressions generated in this page instance\n * getExpressions function is defined in the generated page.comp.ts file\n * @param expressions, map of bind expression vs generated function\n */\n registerExpressions() {\n const expressions = this.getExpressions();\n each(expressions, (fn, expr) => {\n registerFnByExpr(expr, fn[0], fn[1]);\n });\n }\n\n runPageTransition(transition?: string): Promise<void> {\n transition = transition || this.navigationService.getPageTransition();\n const lastPage = BaseSpaPageComponent.lastPageSnapShot\n return new Promise<void>(resolve => {\n if (transition\n && !transition.startsWith('none')\n && lastPage) {\n const $target = lastPage.parent();\n const onTransitionEnd = (e) => {\n if (resolve && !(e && e.pseudoElement)) {\n $target.off('animationend', onTransitionEnd);\n $target.removeClass(transition);\n $target.children().first().remove();\n resolve();\n resolve = null;\n }\n };\n transition = 'page-transition page-transition-' + transition;\n lastPage.addClass('page-exit');\n this.$page.addClass('page-entry');\n $target.addClass(transition);\n $target.on('animationend', onTransitionEnd);\n // Wait for a maximum of 1 second for transition to end.\n setTimeout(onTransitionEnd, 1000);\n } else {\n resolve();\n }\n }).then(() => {\n this.$page && this.$page.removeClass('page-entry');\n if (lastPage) {\n lastPage.remove();\n BaseSpaPageComponent.lastPageSnapShot = null;\n }\n this.pageTransitionCompleted = true;\n });\n }\n\n invokeOnReady() {\n this.onReady();\n this.appManager.notify('highlightActiveLink', {'pageName' : this.pageName});\n this.appManager.notify('pageReady', {'name' : this.pageName, instance: this});\n (this.App.onPageReady || noop)(this.pageName, this);\n }\n\n private loadScripts() {\n return new Promise<void>((resolve) => {\n const scriptsRequired = this.spaPageDirective && this.spaPageDirective.$element.attr('scripts-to-load');\n\n if (scriptsRequired) {\n this.scriptLoaderService\n .load(...scriptsRequired.split(','))\n .then(resolve);\n } else {\n resolve();\n }\n });\n }\n\n private restoreLastPageSnapshot() {\n if (isMobileApp() && BaseSpaPageComponent.lastPageSnapShot && this.$page) {\n this.$page.parent().prepend(BaseSpaPageComponent.lastPageSnapShot);\n }\n }\n\n private savePageSnapShot() {\n if (BaseSpaPageComponent.lastPageSnapShot) {\n BaseSpaPageComponent.lastPageSnapShot.remove();\n }\n if (isMobileApp() && this.$page) {\n BaseSpaPageComponent.lastPageSnapShot = this.$page.clone();\n this.$page.parents('app-root').prepend(BaseSpaPageComponent.lastPageSnapShot);\n }\n }\n\n private saveScrollPosition() {\n const fn = ($el, key, recursive = true, $target = $el) => {\n if (recursive) {\n $el.children().each((i, v) => fn($(v), key));\n }\n const scrollData = {\n x: $target.scrollLeft(),\n y: $target.scrollTop()\n };\n if(scrollData.x > 0 || scrollData.y > 0) {\n $el.attr(key, scrollData.x + ',' + scrollData.y);\n }\n };\n fn(this.$page, 'data-scroll-position');\n this.$page.attr('data-window-scroll-position', window.scrollX + ',' + window.scrollY);\n }\n\n private restoreScrollPosition() {\n const fn = ($el, key, recursive = true, $target = $el) => {\n const scrollData = ($el.attr(key) || '').split(',');\n if(scrollData.length > 1) {\n $target.scrollLeft(scrollData[0]);\n $target.scrollTop(scrollData[1]);\n }\n $el.removeAttr(key);\n if (recursive) {\n $el.children().each((i, v) => fn($(v), key));\n }\n };\n fn(this.$page, 'data-scroll-position');\n fn(this.$page, 'data-window-scroll-position', false, $(window));\n }\n\n /**\n * canDeactivate is called before a route change.\n * This will internally call onBeforePageLeave method present\n * at page level and app level in the application and decide\n * whether to change route or not based on return value.\n */\n @HostListener('window:beforeunload')\n canDeactivate() {\n let retVal;\n // Calling onBeforePageLeave method present at page level\n retVal = this.onBeforePageLeave();\n // Calling onBeforePageLeave method present at app level only if page level method return true\n // or if there is no page level method\n if (retVal !== false ) {\n retVal = (this.App.onBeforePageLeave || noop)(this.App.activePageName, this.App.activePage);\n }\n return retVal === undefined ? true : retVal;\n }\n\n ngAfterViewInit(): void {\n this.route.snapshot.data[CACHE_PAGE] = this.canReuse();\n if (this.layoutDirective) {\n this.$page = this.layoutDirective.$element.parent();\n if (isIos()) {\n this.$page.addClass('ios-page');\n }\n if (isAndroid()) {\n this.$page.addClass('android-page');\n }\n }\n this.restoreLastPageSnapshot();\n this.loadScripts().then(() => {\n this.runPageTransition()\n .then(() => {\n (this as any).compilePageContent = true;\n setTimeout(() => {\n this.onPageContentReady = () => {\n this.fragmentsLoaded$.subscribe(noop, noop, () => {\n this.invokeOnReady();\n });\n unMuteWatchers();\n this.viewInit$.complete();\n this.onPageContentReady = noop;\n };\n }, 0);\n });\n });\n }\n\n ngOnDestroy(): void {\n this.savePageSnapShot();\n this.destroy$.complete();\n }\n\n onReady() {}\n\n onBeforePageReady() {}\n\n onBeforePageLeave() {}\n\n onPageContentReady() {}\n\n canReuse() {\n return !!(this.spaPageDirective && this.spaPageDirective.cache);\n }\n\n mute() {\n const m = o => { o && o.mute && o.mute(); };\n each(this.Widgets, m);\n each(this.Variables, m);\n each(this.Actions, m);\n }\n\n unmute(c = this) {\n const um = o => { o && o.unmute && o.unmute(); };\n each(this.Widgets, um);\n each(this.Variables, um);\n each(this.Actions, um);\n }\n\n ngOnAttach() {\n this.route.snapshot.data[CACHE_PAGE] = this.canReuse();\n this.registerPageParams();\n this.App.lastActivePageName = this.App.activePageName;\n this.App.activePageName = this.pageName;\n this.App.activePage = this;\n this.activePageName = this.pageName;\n this.restoreLastPageSnapshot();\n this.unmute();\n // expose current page widgets on app\n (this.App as any).Widgets = Object.create(this.Widgets);\n if(this.spaPageDirective && this.spaPageDirective.refreshdataonattach) {\n const refresh = v => { v && v.startUpdate && v.invoke && v.invoke(); };\n each(this.Variables, refresh);\n each(this.Actions, refresh);\n }\n this.runPageTransition().then(() => {\n setTimeout(() => this.restoreScrollPosition(), 100);\n each(this.Widgets, w => w && w.ngOnAttach && w.ngOnAttach());\n this.appManager.notify('pageAttach', {'name' : this.pageName, instance: this});\n });\n this.appManager.notify('highlightActiveLink', {'pageName': this.pageName});\n }\n\n ngOnDetach() {\n this.saveScrollPosition();\n this.savePageSnapShot();\n this.mute();\n each(this.Widgets, w => w && w.ngOnDetach && w.ngOnDetach());\n this.appManager.notify('pageDetach', {'name' : this.pageName, instance: this});\n }\n\n ngAfterContentInit() {\n this.onBeforePageReady();\n }\n\n static clear() {\n if(BaseSpaPageComponent.lastPageSnapShot) {\n BaseSpaPageComponent.lastPageSnapShot.remove();\n BaseSpaPageComponent.lastPageSnapShot = null;\n }\n }\n}\n","import {Directive, Inject, Injector, Input, Optional, TemplateRef, ViewContainerRef} from '@angular/core';\n\nimport {SecurityService} from '@wm/security';\nimport {extend, get, includes, split, trim} from \"lodash-es\";\n\nenum USER_ROLE {\n EVERYONE = 'Everyone',\n ANONYMOUS = 'Anonymous',\n AUTHENTICATED = 'Authenticated'\n}\n\n@Directive({\n selector: '[accessroles]'\n})\nexport class AccessrolesDirective {\n\n private processed = false;\n private readonly isUserAuthenticated;\n private readonly userRoles;\n private readonly context = {};\n private securityEnabled: boolean;\n\n constructor(\n private templateRef: TemplateRef<any>,\n private viewContainerRef: ViewContainerRef,\n private securityService: SecurityService,\n private inj: Injector,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n ) {\n const securityConfig = this.securityService.get();\n this.securityEnabled = get(securityConfig, 'securityEnabled');\n this.isUserAuthenticated = get(securityConfig, 'authenticated');\n this.userRoles = get(securityConfig, 'userInfo.userRoles');\n extend(this.context, (inj as any)._lView[8], explicitContext);\n }\n\n /**\n * Returns array of roles from comma separated string of roles\n * Handles encoded commas\n * @param val\n * @returns {any}\n */\n private getWidgetRolesArrayFromStr(val) {\n const UNICODE_COMMA_REGEX = /,/g;\n\n val = val || '';\n if (val === '') {\n return [];\n }\n // replace the unicode equivalent of comma with comma\n return split(val, ',').map(function (v) {\n return trim(v).replace(UNICODE_COMMA_REGEX, ',');\n });\n }\n\n /**\n * Returns true if roles in first arrays is\n * @param widgetRoles\n * @param userRoles\n * @returns {any}\n */\n private matchRoles(widgetRoles, userRoles) {\n return widgetRoles.some(function (item) {\n return includes(userRoles, item);\n });\n }\n\n /**\n * Decides whether the current logged in user has access to widget or not\n * @param widgetRoles\n * @param userRoles\n * @returns {any}\n */\n private hasAccessToWidget(widgetRoles, userRoles) {\n // access the widget when 'Everyone' is chosen\n if (includes(widgetRoles, USER_ROLE.EVERYONE)) {\n return true;\n }\n\n // access the widget when 'Anonymous' is chosen and user is not authenticated\n if (includes(widgetRoles, USER_ROLE.ANONYMOUS) && !this.isUserAuthenticated) {\n return true;\n }\n\n // access the widget when 'Only Authenticated Users' is chosen and user is authenticated\n if (includes(widgetRoles, USER_ROLE.AUTHENTICATED) && this.isUserAuthenticated) {\n return true;\n }\n\n // access the widget when widget role and logged in user role matches\n return this.isUserAuthenticated && this.matchRoles(widgetRoles, userRoles);\n }\n\n @Input() set accessroles(roles) {\n // flag to compute the directive only once\n if (this.processed) {\n return;\n }\n\n this.processed = true;\n const widgetRoles = this.getWidgetRolesArrayFromStr(roles);\n const isAccessible = !this.securityEnabled || this.hasAccessToWidget(widgetRoles, this.userRoles);\n if (isAccessible) {\n // [WMS-19294] pass on the previous context as second param.\n this.viewContainerRef.createEmbeddedView(this.templateRef, this.context);\n } else {\n this.viewContainerRef.clear();\n }\n }\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'app-spinner',\n template: `\n <div class=\"app-spinner\" [ngClass]=\"classname\" *ngIf=\"show\">\n <div class=\"spinner-message\">\n <i class=\"spinner-image animated infinite fa fa-circle-o-notch fa-spin\"></i>\n <div class=\"spinner-messages\">\n <p *ngFor=\"let value of spinnermessages\" [textContent]=\"value\"></p>\n </div>\n </div>\n </div>\n `\n})\nexport class AppSpinnerComponent {\n @Input() show: boolean;\n @Input() spinnermessages: Array<string>;\n @Input() classname: string;\n @Input() arialabel: string;\n constructor() {}\n}\n","import { AfterViewInit, Component, ViewChild, ViewContainerRef, TemplateRef, OnDestroy } from '@angular/core';\n\nimport { Toast, ToastPackage, ToastrService } from 'ngx-toastr';\n\nimport { $watch, $appDigest } from '@wm/core';\nimport {forEach, isString} from \"lodash-es\";\n\ndeclare const $;\n\n@Component({\n selector: '[custom-toaster-component]',\n template: `\n <div class=\"parent-custom-toast\"></div>\n <ng-container #customToast></ng-container>\n <ng-template #customToastTmpl>\n <div wmContainer partialContainer content.bind=\"pagename\">\n <div *ngFor=\"let param of params | keyvalue\" wmParam hidden\n [name]=\"param.key\" [value]=\"param.value\"></div>\n </div>\n </ng-template>`,\n preserveWhitespaces: false\n})\nexport class CustomToasterComponent extends Toast implements AfterViewInit, OnDestroy {\n\n @ViewChild('customToast', { static: true, read: ViewContainerRef }) customToastRef: ViewContainerRef;\n @ViewChild('customToastTmpl') customToastTmpl: TemplateRef<any>;\n pagename: any;\n watchers: any = [];\n params: any = {};\n\n // constructor is only necessary when not using AoT\n constructor(\n protected toastrService: ToastrService,\n public toastPackage: ToastPackage\n ) {\n super(toastrService, toastPackage);\n this.pagename = this.message || '';\n this.generateParams();\n }\n\n // Generate the params for partial page. If bound, watch the expression and set the value\n generateParams() {\n forEach((<any>this.options).partialParams, (param) => {\n if (isString(param.value) && param.value.indexOf('bind:') === 0) {\n //[Todo-CSP]: bind expr fn should be generated in the toaster action for this\n this.watchers.push($watch(\n param.value.substr(5),\n (<any>this.options).context,\n {},\n nv => {\n this.params[param.name] = nv;\n $appDigest();\n }\n ));\n } else {\n this.params[param.name] = param.value;\n }\n });\n }\n\n async generateDynamicComponent() {\n const $targetLayout = $('.parent-custom-toast');\n\n this.customToastRef.clear();\n\n $targetLayout[0].appendChild(this.customToastRef.createEmbeddedView(this.customToastTmpl).rootNodes[0]);\n }\n\n ngAfterViewInit() {\n this.generateDynamicComponent();\n }\n\n ngOnDestroy() {\n forEach(this.watchers, watcher => watcher());\n super.ngOnDestroy();\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport { App, getWmProjectProperties } from '@wm/core';\nimport { SecurityService } from '@wm/security';\n\nimport { AppManagerService } from '../../services/app.manager.service';\n\n@Component({\n selector: 'app-empty-page',\n template: '<div></div>'\n})\nexport class EmptyPageComponent implements OnInit {\n\n constructor(\n private route: ActivatedRoute,\n private securityService: SecurityService,\n private router: Router,\n private app: App,\n private appManger: AppManagerService\n ) {}\n\n ngOnInit() {\n if (this.app.isPrefabType) {\n // there is only one route\n this.router.navigate(['prefab-preview']);\n } else if (this.app.isApplicationType) {\n this.securityService.getPageByLoggedInUser().then(page => {\n this.router.navigate([page]);\n });\n } else {\n this.router.navigate([getWmProjectProperties().homePage]);\n this.appManger.postAppTypeInfo();\n }\n }\n}\n","import {\n ComponentFactoryResolver,\n Directive,\n ElementRef,\n Inject,\n Injector,\n Self,\n ViewContainerRef\n} from '@angular/core';\n\nimport { WidgetRef } from '@wm/components/base';\n\nimport { PrefabManagerService } from '../services/prefab-manager.service';\nimport { ComponentRefProvider, ComponentType } from '../types/types';\n\n@Directive({\n selector: '[wmPrefab][prefabname]'\n})\nexport class PrefabDirective {\n\n constructor(\n @Self() @Inject(WidgetRef) public componentInstance,\n public vcRef: ViewContainerRef,\n public elRef: ElementRef,\n private prefabMngr: PrefabManagerService,\n private resolver: ComponentFactoryResolver,\n private injector: Injector,\n private componentRefProvider: ComponentRefProvider\n ) {\n const prefabName = this.componentInstance.prefabName;\n\n this.prefabMngr.loadDependencies(prefabName)\n .then(async () => {\n const componentFactory = await this.componentRefProvider.getComponentFactoryRef(prefabName, ComponentType.PREFAB);\n if (componentFactory) {\n const instanceRef = this.vcRef.createComponent(componentFactory, 0, injector);\n this.elRef.nativeElement.appendChild(instanceRef.location.nativeElement);\n }\n });\n }\n}\n","import { Compiler, Injectable, Injector, ChangeDetectorRef, InjectionToken, KeyValueDiffers, Pipe, Inject } from '@angular/core';\nimport {\n AsyncPipe,\n UpperCasePipe,\n LowerCasePipe,\n JsonPipe,\n SlicePipe,\n DecimalPipe,\n PercentPipe,\n TitleCasePipe,\n CurrencyPipe,\n DatePipe,\n I18nPluralPipe,\n I18nSelectPipe,\n KeyValuePipe,\n NgLocalization\n} from '@angular/common'\nimport {\n SuffixPipe,\n ToDatePipe,\n FileIconClassPipe,\n FileExtensionFromMimePipe,\n FilterPipe,\n FileSizePipe,\n ToNumberPipe,\n ToCurrencyPipe,\n PrefixPipe,\n TimeFromNowPipe,\n NumberToStringPipe,\n StateClassPipe,\n StringToNumberPipe,\n CustomPipe,\n TrustAsPipe,\n SanitizePipe\n} from '@wm/components/base';\nimport { getSessionStorageItem, CustomPipeManager, AbstractI18nService } from '@wm/core';\nimport {DomSanitizer} from \"@angular/platform-browser\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PipeProvider {\n _pipeMeta;\n _locale = getSessionStorageItem('selectedLocale') || 'en';\n formatsByLocale;\n preparePipeMeta = (\n reference: Pipe,\n name: string,\n pure: boolean,\n diDeps = []\n ) => ({\n type: { reference, diDeps },\n name,\n pure\n });\n _pipeData = [];\n\n setPipeData() {\n this._pipeData = [\n // TODO | NEED TO BE TESTED\n this.preparePipeMeta(AsyncPipe, 'async', false, [ChangeDetectorRef]),\n this.preparePipeMeta(SlicePipe, 'slice', false),\n this.preparePipeMeta(PercentPipe, 'percent', true, [this._locale]),\n this.preparePipeMeta(I18nPluralPipe, 'i18nPlural', true, [\n NgLocalization\n ]),\n this.preparePipeMeta(I18nSelectPipe, 'i18nSelect', true),\n this.preparePipeMeta(KeyValuePipe, 'keyvalue', false, [\n KeyValueDiffers\n ]),\n this.preparePipeMeta(FileIconClassPipe, 'fileIconClass', true),\n this.preparePipeMeta(\n FileExtensionFromMimePipe,\n 'fileExtensionFromMime',\n true\n ),\n this.preparePipeMeta(StateClassPipe, 'stateClass', true),\n this.preparePipeMeta(FileSizePipe, 'filesize', true),\n // TESTED\n this.preparePipeMeta(FilterPipe, 'filter', true),\n this.preparePipeMeta(UpperCasePipe, 'uppercase', true),\n this.preparePipeMeta(LowerCasePipe, 'lowercase', true),\n this.preparePipeMeta(JsonPipe, 'json', false),\n this.preparePipeMeta(DecimalPipe, 'number', true, [this._locale]),\n this.preparePipeMeta(TitleCasePipe, 'titlecase', true),\n this.preparePipeMeta(CurrencyPipe, 'currency', true, [this._locale]),\n this.preparePipeMeta(DatePipe, 'date', true, [this._locale]),\n this.preparePipeMeta(ToDatePipe, 'toDate', true, [\n new DatePipe(this._locale), undefined, this.injector.get(CustomPipeManager)\n ]),\n this.preparePipeMeta(ToNumberPipe, 'toNumber', true, [\n new DecimalPipe(this._locale),\n this.i18service\n ]),\n this.preparePipeMeta(ToCurrencyPipe, 'toCurrency', true, [\n new DecimalPipe(this._locale),\n this.i18service\n ]),\n this.preparePipeMeta(PrefixPipe, 'prefix', true),\n this.preparePipeMeta(SuffixPipe, 'suffix', true),\n this.preparePipeMeta(TimeFromNowPipe, 'timeFromNow', true),\n this.preparePipeMeta(NumberToStringPipe, 'numberToString', true, [\n new DecimalPipe(this._locale)\n ]),\n this.preparePipeMeta(StringToNumberPipe, 'stringToNumber', true),\n this.preparePipeMeta(CustomPipe, 'custom', true, [this.injector.get(CustomPipeManager)]),\n this.preparePipeMeta(TrustAsPipe, 'trustAs', true, [this.domSanitizer]),\n this.preparePipeMeta(SanitizePipe, 'sanitize', true, [this.domSanitizer])\n ];\n }\n\n\n unknownPipe(name) {\n throw Error(`The pipe '${name}' could not be found`);\n }\n\n constructor(private compiler: Compiler, private injector: Injector, private domSanitizer:DomSanitizer, private i18service: AbstractI18nService) {\n this._pipeMeta = new Map();\n this.setPipeData();\n this._pipeData.forEach(v => {\n this._pipeMeta.set(v.name, v);\n });\n this.formatsByLocale = this.i18service? this.i18service.getwidgetLocale() : {};\n }\n\n meta(name) {\n const meta = this._pipeMeta.get(name);\n if (!meta) {\n this.unknownPipe(name);\n }\n return meta;\n }\n\n getPipeNameVsIsPureMap() {\n const _map = new Map();\n this._pipeMeta.forEach((v, k) => {\n _map.set(k, v.pure);\n });\n return _map;\n }\n\n resolveDep(dep) {\n return this.injector.get(dep.token.identifier.reference);\n }\n\n getInstance(name) {\n const {\n type: { reference: ref, diDeps: deps }\n } = this.meta(name);\n if (!ref) {\n this.unknownPipe(name);\n }\n\n if (!deps.length) {\n return new ref();\n } else {\n const args = [];\n for (const dep of deps) {\n args.push(dep);\n }\n return new ref(...args);\n }\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { PipeProvider } from \"./pipe-provider.service\";\nimport { App } from \"@wm/core\";\n\n@Injectable({ providedIn: 'root' })\nexport class PipeService {\n constructor(private pipeProvider: PipeProvider,\n private $app: App) {\n if(this.$app.isApplicationType) {\n this.supportedPipes.push('custom');\n }\n }\n\n private supportedPipes = [ \"toDate\", \"toCurrency\", \"prefix\", \"suffix\", \"numberToString\", \"stringToNumber\", \"timeFromNow\", \"trustAs\", \"sanitize\"];\n\n public getPipe(name: string) {\n if(this.supportedPipes.includes(name)) {\n return this.pipeProvider.getInstance(name);\n } else {\n throw Error(`The pipe '${name}' could not be found`);\n }\n }\n}\n","import { Injectable, Injector } from '@angular/core';\nimport { RouteReuseStrategy } from '@angular/router';\n\nimport {\n AbstractDialogService,\n AbstractHttpService,\n AbstractI18nService,\n AbstractSpinnerService,\n AbstractToasterService,\n EventNotifier,\n FieldTypeService,\n FieldWidgetService,\n getWmProjectProperties,\n isDefined,\n ConstantService,\n UtilsService,\n DynamicComponentRefProvider,\n StatePersistence,\n Viewport,\n registerFnByExpr\n} from '@wm/core';\nimport { SecurityService } from '@wm/security';\n\nimport { WmDefaultRouteReuseStrategy } from '../util/wm-route-reuse-strategy';\nimport { PipeService } from \"./pipe.service\";\nimport {each, get, isEmpty, isString} from \"lodash-es\";\n\nconst injectorMap = {\n DialogService: AbstractDialogService,\n i18nService: AbstractI18nService,\n PipeService: PipeService,\n statePersistence: StatePersistence,\n SpinnerService: AbstractSpinnerService,\n StatePersistenceService: StatePersistence,\n Viewport: Viewport,\n ToasterService: AbstractToasterService,\n Utils: UtilsService,\n CONSTANTS: ConstantService,\n FIELD_TYPE: FieldTypeService,\n FIELD_WIDGET: FieldWidgetService,\n DynamicComponentService: DynamicComponentRefProvider\n};\n\nconst enum PROJECT_TYPE {\n APPLICATION = 'APPLICATION',\n PREFAB = 'PREFAB',\n TEMPLATE_BUNDLE = 'TEMPLATEBUNDLE'\n}\n\nconst noop = (...args) => {};\n\n// Wraps httpService to behave as angular 1.x $http service.\nconst getHttpDependency = function() {\n const httpService = this.httpService;\n const fn = function (key, options?) {\n const args = Array.from(arguments).slice(1);\n return Promise.resolve(httpService[key].apply(httpService, args));\n };\n const $http = function () {\n return fn.apply(undefined, ['send', ...Array.from(arguments)]);\n };\n ['get', 'post', 'head', 'put', 'delete', 'jsonp', 'patch'].forEach(key => $http[key] = fn.bind(undefined, key));\n return $http;\n};\n\n@Injectable()\nexport class AppRef {\n Variables: any = {};\n Actions: any = {};\n onAppVariablesReady = noop;\n onBeforeAppReady = noop;\n onSessionTimeout = noop;\n onPageReady = noop;\n onBeforePageLeave = noop;\n onBeforeServiceCall = noop;\n onServiceSuccess = noop;\n onServiceError = noop;\n dynamicComponentContainerRef = {};\n\n projectName: string;\n isPrefabType: boolean;\n isApplicationType: boolean;\n isTabletApplicationType: boolean;\n isTemplateBundleType: boolean;\n\n targetPlatform: string;\n\n appLocale: any;\n\n changeLocale = this.i18nService.setSelectedLocale.bind(this.i18nService);\n getSelectedLocale = this.i18nService.getSelectedLocale.bind(this.i18nService);\n setTimezone = this.i18nService.setTimezone.bind(this.i18nService);\n setwidgetLocale = this.i18nService.setwidgetLocale.bind(this.i18nService);\n\n private _eventNotifier = new EventNotifier();\n\n landingPageName = getWmProjectProperties().homePage;\n\n reload() {\n window.location.reload();\n }\n\n constructor(\n private inj: Injector,\n private i18nService: AbstractI18nService,\n private statePersistence: StatePersistence,\n private httpService: AbstractHttpService,\n private securityService: SecurityService,\n private routeReuseStrategy: RouteReuseStrategy\n ) {\n\n const wmProjectProperties = getWmProjectProperties();\n\n this.projectName = wmProjectProperties.name;\n this.isPrefabType = wmProjectProperties.type === PROJECT_TYPE.PREFAB;\n this.isApplicationType = wmProjectProperties.type === PROJECT_TYPE.APPLICATION;\n this.isTemplateBundleType = wmProjectProperties.type === PROJECT_TYPE.TEMPLATE_BUNDLE;\n this.targetPlatform = wmProjectProperties.platformType;\n\n this.httpService.registerOnSessionTimeout(this.on401.bind(this));\n\n this.appLocale = this.i18nService.getAppLocale();\n this.httpService.setLocale(this.appLocale);\n }\n\n public clearPageCache(pageName?: string) {\n if(this.routeReuseStrategy instanceof WmDefaultRouteReuseStrategy) {\n (this.routeReuseStrategy as WmDefaultRouteReuseStrategy).reset(pageName);\n }\n }\n\n public notify(eventName: string, ...data: Array<any>) {\n this._eventNotifier.notify.apply(this._eventNotifier, arguments);\n }\n\n public getDependency(injToken) {\n if (isString(injToken)) {\n if (injToken === 'HttpService') {\n return getHttpDependency.call(this);\n }\n let providerInstance = injectorMap[injToken] && this.inj.get(injectorMap[injToken]);\n if (!providerInstance && this.inj['records']?.values) {\n const values = this.inj['records'].values();\n let next = values?.next();\n while (next && !next.done) {\n if (next?.value?.value?.constructor?.SERVICE_NAME === injToken) {\n return next.value.value;\n }\n next = values.next();\n }\n }\n return providerInstance;\n }\n return this.inj.get(injToken);\n }\n\n /**\n * triggers the onSessionTimeout callback in app.js\n */\n on401() {\n const userInfo = get(this.securityService.get(), 'userInfo');\n // if a previous user exists, a session time out triggered\n if (!isEmpty(userInfo)) {\n this.onSessionTimeout();\n }\n }\n\n public subscribe(eventName, callback: (data: any) => void): () => void {\n return this._eventNotifier.subscribe(eventName, callback);\n }\n\n public notifyApp(template, type, title) {\n const notificationAction = get(this, 'Actions.appNotification');\n const EXCLUDE_NOTIFICATION_MESSAGES = ['PROCESS_REJECTED_IN_QUEUE'];\n const skipDefaultNotification = EXCLUDE_NOTIFICATION_MESSAGES.indexOf(template) !== -1;\n if (notificationAction) {\n // do not notify the error to the app, just throw it in console\n if (skipDefaultNotification) {\n console.warn('App Error', template);\n return;\n }\n type = type || 'success';\n template = notificationAction.getMessage() || template;\n notificationAction.invoke({\n message: template,\n title: isDefined(title) ? title : type.toUpperCase(),\n class: type,\n // If the type is error do not close the toastr\n duration: type.toUpperCase() === 'ERROR' ? 0 : undefined\n });\n } else {\n console.warn('The default Action \"appNotification\" doesn\\'t exist in the app. App notified following error:\\n', template);\n }\n }\n\n /**\n * function to register bind expressions from app variables\n * it will be called from app.js in generated angular app\n * @param expressions, map of bind expression vs generated function\n */\n public registerExpressions(expressions) {\n each(expressions, (fn, expr) => {\n registerFnByExpr(expr, fn[0], fn[1]);\n });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ToastrService } from 'ngx-toastr';\n\nimport { AbstractToasterService, isDefined } from '@wm/core';\n\nimport { CustomToasterComponent } from '../components/custom-toaster.component';\nimport {isNumber, isObject, merge} from \"lodash-es\";\n\n@Injectable()\nexport class ToasterServiceImpl extends AbstractToasterService {\n\n constructor(private toaster: ToastrService) {\n super();\n }\n\n private _showToaster (type: string, title: string, desc: string, options?: any) {\n // backward compatibility (in 9.x, 4th param is timeout value).\n if (isNumber(options)) {\n options = {timeOut: options};\n }\n\n options = options || {};\n options.timeOut = isDefined(options.timeOut) ? options.timeOut : 0;\n options.enableHtml = isDefined(options.enableHtml);\n options.positionClass = options.positionClass || 'toast-bottom-right';\n options.toastClass = 'toast';\n // pop the toaster only if either title or description are defined\n if (title || desc) {\n // if the desc is an object, stringify it.\n if (!options.bodyOutputType && isObject(desc)) {\n desc = JSON.stringify(desc);\n }\n const fn = this.toaster[type];\n if (fn) {\n return fn.call(this.toaster, desc, title, options);\n }\n }\n }\n\n public success (title, desc) {\n return this._showToaster('success', title, desc, {timeOut: 5000});\n }\n\n public error (title, desc) {\n return this._showToaster('error', title, desc, {timeOut: 0});\n }\n\n public info (title, desc) {\n return this._showToaster('info', title, desc, {timeOut: 0});\n }\n\n public warn (title, desc) {\n return this._showToaster('warning', title, desc, {timeOut: 0});\n }\n\n public show (type, title, desc, options) {\n return this._showToaster(type, title, desc, options);\n }\n\n public hide (toasterObj) {\n // in studio just ignore the toasterObj and hide all the toasters\n if (!toasterObj) {\n this.toaster.clear();\n return;\n }\n this.toaster.clear(toasterObj.toastId);\n }\n\n public showCustom(page, options) {\n if (!page) {\n return;\n }\n options = options || {};\n options.toastComponent = CustomToasterComponent;\n options.toastClass = 'custom-toaster';\n options.timeOut = isDefined(options.timeOut) ? options.timeOut : 0;\n options.enableHtml = isDefined(options.enableHtml);\n options.positionClass = options.positionClass || 'toast-bottom-right';\n options.toastClass = 'toast';\n return this.toaster.show(page, '', options);\n }\n\n /**\n * Updates the Global Toaster options based on the passed object. Useful in cases where\n * a user wants to display multiple toasts at the same time, newest on bottom etc\n * @param {options} Object\n */\n public setToasterConfig(options) {\n if (isObject(options)) {\n merge(this.toaster.toastrConfig, options);\n } else {\n console.warn('Please pass a valid options object, For Example : {maxOpened: 1, autoDismiss: true}');\n }\n }\n}\n","import { Injectable, Injector } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { defineLocale } from 'ngx-bootstrap/chronos';\nimport { BsLocaleService } from 'ngx-bootstrap/datepicker';\n\nimport {\n _WM_APP_PROJECT,\n AbstractI18nService,\n AppDefaults,\n getSessionStorageItem,\n getWmProjectProperties,\n isMobile,\n isMobileApp,\n loadScripts,\n replace,\n setCSS,\n setSessionStorageItem,\n App\n} from '@wm/core';\nimport { CONSTANTS } from '@wm/variables';\nimport {find, forEach, get, includes, intersection, isObject, map, toLower} from \"lodash-es\";\n\ndeclare const moment;\n\nconst APP_LOCALE_ROOT_PATH = 'resources/i18n';\nconst RTL_LANGUAGE_CODES = ['ar', 'ar-001', 'ar-ae', 'ar-bh', 'ar-dz', 'ar-eg', 'ar-iq', 'ar-jo', 'ar-kw', 'ar-lb', 'ar-ly',\n 'ar-ma', 'ar-om', 'ar-qa', 'ar-sa', 'ar-sd', 'ar-sy', 'ar-tn', 'ar-ye', 'arc', 'bcc', 'bqi', 'ckb', 'dv', 'fa', 'glk',\n 'he', 'ku', 'mzn', 'pnb', 'ps', 'sd', 'ug', 'ur', 'yi'];\n\n@Injectable()\nexport class I18nServiceImpl extends AbstractI18nService {\n\n private selectedLocale: string;\n private defaultSupportedLocale = 'en';\n private readonly appLocale: any;\n private readonly prefabLocale: Map<String, any>;\n private messages: any;\n private _isAngularLocaleLoaded = false;\n private formatsByLocale = {'timezone': '', 'number': ''};\n private get app() { return this.inj.get(App) };\n\n private bundleLoaded:{[key:string] : any} = {};\n\n constructor(\n private $http: HttpClient,\n private bsLocaleService: BsLocaleService,\n private appDefaults: AppDefaults,\n private inj: Injector\n ) {\n super();\n this.appLocale = {};\n this.prefabLocale = new Map();\n }\n\n private updateLocaleDirection() {\n let direction: 'ltr' | 'rtl' = 'ltr';\n if (RTL_LANGUAGE_CODES.includes(this.selectedLocale)) {\n direction = 'rtl';\n }\n\n setCSS(document.body, 'direction', direction);\n }\n\n private init() {\n this.messages = {};\n\n Object.setPrototypeOf(this.appLocale, this.messages);\n }\n\n public getSelectedLocale(): string {\n return this.selectedLocale;\n }\n\n public getDefaultSupportedLocale(): string {\n return this.defaultSupportedLocale;\n }\n\n public getAppLocale(): any {\n return this.appLocale;\n }\n\n public getPrefabLocaleBundle(prefabName: string): any {\n if (!this.prefabLocale.has(prefabName)) {\n this.prefabLocale.set(prefabName, Object.create(this.appLocale));\n }\n return this.prefabLocale.get(prefabName);\n }\n\n private extendPrefabMessages(messages: any): void {\n if (!messages.prefabMessages) {\n return;\n }\n\n Object.keys(messages.prefabMessages).forEach((prefabName: string) => {\n let bundle = this.prefabLocale.get(prefabName);\n if (!bundle) {\n bundle = Object.create(this.appLocale);\n this.prefabLocale.set(prefabName, bundle);\n }\n Object.assign(bundle, messages.prefabMessages[prefabName]);\n });\n }\n\n private extendMessages(messages: any): void {\n Object.assign(this.messages, messages);\n }\n\n private loadResource(path): Promise<any> {\n return this.$http.get(path)\n .toPromise()\n .catch(() => {\n console.warn(`error loading locale resource from ${path}`);\n Promise.resolve({});\n });\n }\n\n protected loadAppLocaleBundle() {\n this.loadResource(`${APP_LOCALE_ROOT_PATH}/${this.selectedLocale}.json`)\n .then(bundle => {\n this.extendMessages(bundle.messages);\n this.extendPrefabMessages(bundle);\n this.appDefaults.setFormats(bundle.formats);\n this.bundleLoaded.app = true;\n this.notifyLocaleChanged();\n });\n }\n\n protected loadMomentLocaleBundle(momentLocale) {\n const _cdnUrl = _WM_APP_PROJECT.cdnUrl || _WM_APP_PROJECT.ngDest;\n if (this.selectedLocale === this.defaultSupportedLocale) {\n moment.locale(this.defaultSupportedLocale);\n return;\n }\n const path = _cdnUrl + `locales/moment/${momentLocale}.js`;\n loadScripts([path], true).then(()=>{\n moment.locale(this.selectedLocale);\n\n // For ngx bootstrap locale, get the config from script and apply locale\n // moment.localeData(momentLocale) will return moment locale instance. _config inside will have actual config\n let _config = moment.localeData(momentLocale);\n _config = _config && _config._config;\n defineLocale(this.selectedLocale, _config);\n this.bsLocaleService.use(this.getSelectedLocale() || this.defaultSupportedLocale);\n this.bundleLoaded.moment = true;\n this.notifyLocaleChanged();\n })\n }\n\n protected loadAngularLocaleBundle(angLocale) {\n return new Promise<void>(resolve => {\n const _cdnUrl = _WM_APP_PROJECT.cdnUrl || _WM_APP_PROJECT.ngDest;\n if (this.selectedLocale === this.defaultSupportedLocale) {\n resolve();\n return;\n }\n const path = _cdnUrl + `locales/angular/global/${angLocale}.js`;\n\n loadScripts([path], true).then(()=>{\n this._isAngularLocaleLoaded = true;\n resolve();\n }, resolve);\n });\n }\n\n protected loadCalendarLocaleBundle(calendarLocale, force = false) {\n const _cdnUrl = _WM_APP_PROJECT.cdnUrl || _WM_APP_PROJECT.ngDest;\n let path: string;\n if (calendarLocale) {\n path = _cdnUrl + `locales/fullcalendar/${calendarLocale}.js`;\n } else {\n return Promise.resolve();\n }\n\n // return in case of mobile app or if selected locale is default supported locale.\n if (!force && (isMobile() || isMobileApp() || this.selectedLocale === this.defaultSupportedLocale)) {\n this.bundleLoaded.fullCalendar = true;\n return;\n }\n\n // Call the script. In script, moment defines the loaded locale\n return loadScripts([path], true);\n }\n\n protected loadMomentTimeZoneBundle(locale, compInstance?) {\n return new Promise<void>(resolve => {\n const _cdnUrl = _WM_APP_PROJECT.cdnUrl || _WM_APP_PROJECT.ngDest;\n const path = _cdnUrl + `locales/moment-timezone/moment-timezone-with-data.js`;\n loadScripts([path], true).then(()=>{\n /**\n * If locale is provided in the form of offset and not timezone name, deduce the name.\n * If locale is provided as GMT+9, name will be deduced as Asia/Tokyo\n */\n\n let localeObj = locale;\n locale = localeObj['timezone'];\n const localeIndex = locale.indexOf('+');\n if (localeIndex > -1) {\n if (localeIndex > 0) {\n locale = locale.substr(localeIndex);\n }\n localeObj['timezone'] = find(moment.tz.names(), (timezoneName) => {\n return locale === moment.tz(timezoneName).format('Z');\n });\n }\n moment.tz.setDefault(locale);\n const localeData = compInstance && compInstance.formatsByLocale ? compInstance.formatsByLocale : this.formatsByLocale;\n Object.assign(localeData, localeObj);\n resolve();\n }, resolve);\n });\n }\n\n protected loadLocaleBundles(libLocale) {\n if (libLocale.moment) {\n this.loadMomentLocaleBundle(libLocale.moment);\n } else if (this.selectedLocale === this.defaultSupportedLocale) {\n this.bsLocaleService.use(this.getSelectedLocale() || this.defaultSupportedLocale);\n this.bundleLoaded.moment = true;\n }\n if (libLocale.fullCalendar && window['FullCalendar']) {\n this.loadCalendarLocaleBundle(libLocale.fullCalendar)?.then(() => {\n this.bundleLoaded.fullCalendar = true;\n this.notifyLocaleChanged();\n });\n } else {\n this.bundleLoaded.fullCalendar = true;\n }\n if (libLocale.angular) {\n this.loadAppLocaleBundle();\n }\n return this.loadAngularLocaleBundle(libLocale.angular);\n }\n\n public setTimezone(locale, compInstance?) {\n this.loadMomentTimeZoneBundle(locale, compInstance);\n }\n\n public getTimezone(compInstance?) {\n const pageConfig = get(this.app, 'activePage.formatsByLocale.timezone');\n const compConfig = get(compInstance, 'formatsByLocale.timezone');\n if (compConfig) {\n return compConfig;\n } else if (pageConfig) {\n return pageConfig;\n } else {\n return this.formatsByLocale['timezone'];\n }\n }\n\n public getFormatsByLocale() {\n return this.formatsByLocale;\n }\n\n public setSelectedLocale(locale) {\n\n // check if the event is propagated from the select or any such widget\n if (isObject(locale)) {\n // @ts-ignore\n locale = locale.datavalue;\n }\n\n const libLocale = getWmProjectProperties().supportedLanguages[locale];\n const supportedLocale = Object.keys(getWmProjectProperties().supportedLanguages);\n\n if (!includes(supportedLocale, locale)) {\n return Promise.resolve();\n }\n\n if (!locale || locale === this.selectedLocale) {\n return Promise.resolve();\n }\n\n setSessionStorageItem('selectedLocale', locale);\n\n this.selectedLocale = locale;\n\n // reset the localeData object\n this.init();\n\n this.bundleLoaded.moment = false;\n this.bundleLoaded.fullCalendar = false;\n this.bundleLoaded.app = false;\n this.bundleLoaded.angular = false;\n this.bundleLoaded.libLocale = libLocale;\n\n // load the locale bundles of the selected locale\n return this.loadLocaleBundles(libLocale).then(() => {\n this.updateLocaleDirection();\n this.bundleLoaded.angular = true;\n this.notifyLocaleChanged();\n });\n }\n\n private deduceAppLocale() {\n // computation to find app default locale\n const _acceptLang = this.getAcceptedLanguages();\n const _defaultLanguage = getWmProjectProperties().defaultLanguage;\n _acceptLang.push(_defaultLanguage);\n\n // checks whether user preference is based on browser set languages or default language set in project\n let preferBrowserLang = getWmProjectProperties().preferBrowserLang;\n if (!preferBrowserLang) { // when preferBrowserLang is not defined, set to its default value\n preferBrowserLang = true;\n } else { // convert stringified boolean values recieved from BE to booleans\n preferBrowserLang= (preferBrowserLang === 'true' || preferBrowserLang === true) ? true : false;\n }\n\n let _supportedLang = Object.keys(getWmProjectProperties().supportedLanguages) || [this.defaultSupportedLocale];\n\n // when preference is given to browser set languages, do not populate _selectedDefaultLang variable\n let _selectedDefaultLang = preferBrowserLang ? undefined : _defaultLanguage;\n\n let _appSupportedLang;\n /**\n * for cordova, check for language ignoring the locale\n * As the navigator.languages always returns the language with locale (en-us)\n * The supportedLanguages from BE doesn't include locale (en) which leads to mismatch\n */\n if (CONSTANTS.hasCordova) {\n let supportedLang = [];\n forEach(_acceptLang, function (lang) {\n let matchedLang = find(_supportedLang, (val) => lang === val) || find(_supportedLang, (val) => lang.startsWith(val));\n if (matchedLang) {\n supportedLang.push(matchedLang);\n }\n })\n _appSupportedLang = supportedLang[0];\n }\n // check for the session storage to load any pre-requested locale\n const _defaultLang = getSessionStorageItem('selectedLocale') || _selectedDefaultLang || _appSupportedLang || intersection(_acceptLang, _supportedLang)[0] || this.defaultSupportedLocale;\n // if the supportedLocale is not available set it to defaultLocale\n _supportedLang = _supportedLang || [_defaultLang];\n\n const defaultLanguage = _defaultLang || _supportedLang[0];\n return defaultLanguage;\n }\n\n public loadDefaultLocale() {\n Date.prototype[\"month\"] = Date.prototype.getMonth;\n const locale = this.deduceAppLocale();\n return this.setSelectedLocale(locale);\n }\n\n public getLocalizedMessage(message, ...args) {\n return replace(this.appLocale[message], args);\n }\n\n // This function returns the accepted languages list\n public getAcceptedLanguages() {\n let languages;\n if (CONSTANTS.hasCordova) {\n languages = navigator.languages || [navigator.language];\n } else {\n languages = decodeURIComponent(getWmProjectProperties().preferredLanguage || '');\n /**\n * Accept-Language Header will contain set of supported locale, so try splitting the string to proper locale set\n * Ex: en,en-US;q=0.9,de;q=0.6,ar;q=0.2,hi\n *\n * Split the above into [en,en-us,de,ar,hi]\n * @type {Array}\n */\n languages = languages.split(',').map(function(locale) {\n return locale.split(';')[0];\n });\n }\n return map(languages, toLower);\n }\n\n public initCalendarLocale(): Promise<any> {\n if (this.selectedLocale !== 'en') {\n return this.loadCalendarLocaleBundle(this.selectedLocale, true);\n }\n return Promise.resolve();\n }\n\n public isAngularLocaleLoaded() {\n return this._isAngularLocaleLoaded;\n }\n\n public setwidgetLocale(locale) {\n this.formatsByLocale['number'] = locale['number'];\n }\n\n public getwidgetLocale() {\n return this.formatsByLocale;\n }\n\n private notifyLocaleChanged() {\n if(this.bundleLoaded.moment && this.bundleLoaded.fullCalendar && this.bundleLoaded.angular && this.bundleLoaded.app) {\n this.app.notify( 'locale-changed', this.bundleLoaded.libLocale);\n }\n }\n\n}\n","import { Injectable } from '@angular/core';\n\nimport { Subject } from 'rxjs';\n\nimport { AbstractSpinnerService } from '@wm/core';\nimport {findKey, includes, keys, values} from \"lodash-es\";\n\ndeclare const $;\n\nconst spinnerTemplate = `<div class=\"app-spinner\">\n <div class=\"spinner-message\" aria-label=\"loading gif\">\n <i class=\"spinner-image animated infinite fa fa-circle-o-notch fa-spin\"></i>\n <div class=\"spinner-messages\">\n <p class=\"spinner-messages-container\"></p>\n </div>\n </div>\n </div>`;\n\n@Injectable()\nexport class SpinnerServiceImpl extends AbstractSpinnerService {\n spinnerId = 0;\n messageSource = new Subject();\n messagesByContext = {};\n\n constructor() {\n super();\n }\n\n /**\n * returns the message source subject\n * @returns {Subject<any>}\n */\n getMessageSource() {\n return this.messageSource;\n }\n\n /**\n * show spinner on a container element\n */\n showContextSpinner(ctx: string, message: string, id: string) {\n const ctxMarkup = $('[name=\"' + ctx + '\"]');\n this.messagesByContext[ctx] = this.messagesByContext[ctx] || {};\n // If the spinner already exists on the context\n // then just append the message to the existing spinner message\n // else add a new spinner\n if (Object.keys(this.messagesByContext[ctx]).length !== 0 ) {\n this.messagesByContext[ctx][id] = message;\n this.messagesByContext[ctx]['finalMessage'] = this.messagesByContext[ctx]['finalMessage'] + ' ' + this.messagesByContext[ctx][id];\n ctxMarkup.find('.spinner-messages-container').html(this.messagesByContext[ctx]['finalMessage']);\n } else {\n const ctxSpinnerTemp = $(spinnerTemplate);\n this.messagesByContext[ctx][id] = message;\n this.messagesByContext[ctx]['finalMessage'] = this.messagesByContext[ctx][id];\n ctxSpinnerTemp.find('.spinner-messages-container').html(this.messagesByContext[ctx]['finalMessage']);\n ctxMarkup.prepend(ctxSpinnerTemp);\n }\n return id;\n }\n\n /**\n * show the app spinner with provided message\n * @param msg\n * @returns {string}\n */\n showAppSpinner(msg, id) {\n const ctx = 'page';\n this.messagesByContext[ctx] = this.messagesByContext[ctx] || {};\n this.messagesByContext[ctx][id] = msg;\n\n this.messageSource.next({\n show: true,\n message: msg,\n messages: values(this.messagesByContext[ctx])\n });\n }\n\n /**\n * hides the spinner on a particular container(context)\n * @param ctx\n * @param id\n */\n hideContextSpinner(ctx, id) {\n delete this.messagesByContext[ctx][id];\n if (Object.keys(this.messagesByContext[ctx]).length === 1) {\n this.messagesByContext[ctx] = {};\n }\n const ctxMarkup = $('[name=\"' + ctx + '\"]');\n ctxMarkup.find('.app-spinner').remove();\n }\n\n /**\n * show spinner\n * @param message\n * @param id\n * @param spinnerClass\n * @param spinnerContext\n * @param variableScopeId\n * @returns {any}\n */\n show(message, id?, spinnerClass?, spinnerContext?, variableScopeId?) {\n id = id || ++this.spinnerId;\n // if spinnerContext is passed, then append the spinner to the element(default method for variable calls).\n if (spinnerContext && spinnerContext !== 'page') {\n // return after the compiled spinner is appended to the element reference\n return this.showContextSpinner(spinnerContext, message, id);\n }\n\n this.showAppSpinner(message, id);\n return id;\n }\n\n /**\n * hide the spinner\n * @param spinnerId\n */\n hide(id) {\n // find the spinner context of the id from the messagesByContext\n const ctx = findKey(this.messagesByContext, function (obj) {\n return includes(keys(obj), id);\n }) || 'page';\n\n // if spinnerContext exists just remove the spinner from the reference and destroy the scope associated.\n if (ctx !== 'page') {\n this.hideContextSpinner(ctx, id);\n return;\n }\n\n if (id) {\n delete this.messagesByContext[ctx][id];\n const messages = values(this.messagesByContext[ctx]);\n this.messageSource.next({\n show: messages.length ? true : false,\n messages: values(this.messagesByContext[ctx])\n });\n } else {\n this.messagesByContext[ctx] = {};\n }\n }\n}\n","import { Injectable, NgZone } from '@angular/core';\nimport { NavigationStart, Router } from '@angular/router';\n\nimport { App, NavigationOptions, AbstractNavigationService } from '@wm/core';\nimport { CONSTANTS } from '@wm/variables';\nimport {filter, isEmpty, isEqual} from \"lodash-es\";\n\ndeclare const $;\n\nconst parentSelector = 'body >app-root';\n\n@Injectable()\nexport class NavigationServiceImpl implements AbstractNavigationService {\n private history = new History();\n private transition: string;\n private isPageAddedToHistory = false;\n\n constructor(private app: App, private router: Router, public zone: NgZone) {\n this.router.events.subscribe(event => {\n if (event instanceof NavigationStart) {\n const url = event.url;\n const urlParams = {};\n let pageName;\n if (!this.isPageAddedToHistory) {\n this.isPageAddedToHistory = false;\n if (url.indexOf('?') > 0) {\n url.substr(url.indexOf('?') + 1)\n .split('&')\n .forEach(s => {\n const splits = s.split('=');\n urlParams[splits[0]] = splits[1];\n });\n pageName = url.substr(0, url.indexOf('?'));\n } else {\n pageName = url;\n }\n if (pageName[0] === '/') {\n pageName = pageName.substr(1);\n }\n if (pageName) {\n /*\n * Commenting this code, one client project has Home_Page configured as Login Page.\n * So redirection to Home_Page post login is failing\n // if login page is being loaded and user is logged in, cancel that.\n if ($rs.isApplicationType) {\n stopLoginPagePostLogin($p);\n }\n */\n delete urlParams['name'];\n\n this.history.push(new PageInfo(pageName, urlParams, this.transition));\n }\n }\n }\n });\n }\n\n public getPageTransition() {\n if (isEmpty(this.transition) || isEqual('none', this.transition)) {\n return null;\n }\n return this.transition;\n }\n\n /**\n * Navigates to particular page\n * @param pageName\n * @param options\n */\n public goToPage(pageName: string, options: NavigationOptions) {\n this.transition = options.transition || '';\n // page is added to stack only when currentPage is available.\n if (this.history.getCurrentPage()) {\n this.isPageAddedToHistory = true;\n }\n this.history.push( new PageInfo(pageName, options.urlParams, this.transition));\n /**\n * BrowserAnimcation module has issue with RouterOutlet\n In the result every route appending to previous route instead of replace.\n To fix the issue we are navigating inside the ngZones\n *\n * */\n this.zone.run(() => {\n return this.router.navigate([`/${pageName}`], { queryParams: options.urlParams});\n });\n\n }\n\n /**\n * Navigates to last visited page.\n */\n public goToPrevious() {\n if (this.history.getPagesCount()) {\n this.transition = this.history.getCurrentPage().transition;\n if (!isEmpty(this.transition)) {\n this.transition += '-exit';\n }\n this.history.pop();\n this.isPageAddedToHistory = true;\n window.history.back();\n }\n }\n\n /** Todo[Shubham] Need to handle gotoElement in other partials\n * Navigates to particular view\n * @param viewName\n * @param options\n * @param variable\n */\n public goToView(viewName: string, options: NavigationOptions, variable: any) {\n options = options || {};\n const pageName = options.pageName;\n const transition = options.transition || '';\n const $event = options.$event;\n const activePage = this.app.activePage;\n const prefabName = variable && variable._context && variable._context.prefabName;\n\n // Check if app is Prefab\n if (this.app.isPrefabType) {\n this.goToElementView($(parentSelector).find('[name=\"' + viewName + '\"]'), viewName, pageName, variable);\n } else {\n // checking if the element is present in the page or not, if no show an error toaster\n // if yes check if it is inside a partial/prefab in the page and then highlight the respective element\n // else goto the page in which the element exists and highlight the element\n if (pageName !== activePage.activePageName && !prefabName) {\n if (this.isPartialWithNameExists(pageName)) {\n this.goToElementView($('[partialcontainer][content=\"' + pageName + '\"]').find('[name=\"' + viewName + '\"]'), viewName, pageName, variable);\n } else {\n // Todo[Shubham]: Make an API call to get all pages and check if the page name\n // is a page and then do this call else show an error as:\n // this.app.notifyApp(CONSTANTS.WIDGET_DOESNT_EXIST, 'error');\n this.goToPage(pageName, {\n viewName: viewName,\n $event: $event,\n transition: transition,\n urlParams: options.urlParams\n });\n // subscribe to an event named pageReady which notifies this subscriber\n // when all widgets in page are loaded i.e when page is ready\n const pageReadySubscriber = this.app.subscribe('pageReady', (page) => {\n this.goToElementView($(parentSelector).find('[name=\"' + viewName + '\"]'), viewName, pageName, variable);\n pageReadySubscriber();\n });\n }\n } else if (prefabName && this.isPrefabWithNameExists(prefabName)) {\n this.goToElementView($('[prefabName=\"' + prefabName + '\"]').find('[name=\"' + viewName + '\"]'), viewName, pageName, variable);\n } else if (!pageName || pageName === activePage.activePageName) {\n this.goToElementView($(parentSelector).find('[name=\"' + viewName + '\"]'), viewName, pageName, variable);\n } else {\n this.app.notifyApp(CONSTANTS.WIDGET_DOESNT_EXIST, 'error');\n }\n }\n }\n\n /*\n * navigates the user to a view element with given name\n * if the element not found in the compiled markup, the same is searched in the available dialogs in the page\n */\n private goToElementView(viewElement, viewName: string, pageName: string, variable: any) {\n let $el, parentDialog;\n const activePage = this.app.activePage;\n if (viewElement.length) {\n if (!this.app.isPrefabType && pageName === activePage.activePageName) {\n viewElement = this.getViewElementInActivePage(viewElement);\n }\n\n $el = viewElement[0].widget;\n switch ($el.widgetType) {\n case 'wm-accordionpane':\n this.showAncestors(viewElement, variable);\n $el.expand();\n break;\n case 'wm-tabpane':\n this.showAncestors(viewElement, variable);\n $el.select();\n break;\n case 'wm-segment-content':\n this.showAncestors(viewElement, variable);\n $el.navigate();\n break;\n case 'wm-panel':\n /* flip the active flag */\n $el.expanded = true;\n break;\n }\n } else {\n parentDialog = this.showAncestorDialog(viewName);\n setTimeout(() => {\n if (parentDialog) {\n this.goToElementView($('[name=\"' + viewName + '\"]'), viewName, pageName, variable);\n }\n });\n }\n }\n\n /* If page name is equal to active pageName, this function returns the element in the page.\n The element in the partial page is not selected.*/\n private getViewElementInActivePage($el) {\n let selector;\n if ($el.length > 1) {\n selector = filter($el, (childSelector) => {\n if (isEmpty($(childSelector).closest('[data-role = \"partial\"]')) && isEmpty($(childSelector).closest('[wmprefabcontainer]'))) {\n return childSelector;\n }\n });\n if (selector) {\n $el = $(selector);\n }\n }\n return $el;\n }\n\n /**\n * checks if the pagecontainer has the pageName.\n */\n private isPartialWithNameExists(name: string) {\n return $('[partialcontainer][content=\"' + name + '\"]').length;\n }\n\n /**\n * checks if the pagecontainer has the prefab.\n */\n private isPrefabWithNameExists(prefabName: string) {\n return $('[prefabName=\"' + prefabName + '\"]').length;\n }\n\n /*\n * shows all the parent container view elements for a given view element\n */\n private showAncestors(element, variable) {\n const ancestorSearchQuery = '[wm-navigable-element=\"true\"]';\n\n element\n .parents(ancestorSearchQuery)\n .toArray()\n .reverse()\n .forEach((parent) => {\n const $el = parent.widget;\n switch ($el.widgetType) {\n case 'wm-accordionpane':\n $el.expand();\n break;\n case 'wm-tabpane':\n $el.select();\n break;\n case 'wm-segment-content':\n $el.navigate();\n break;\n case 'wm-panel':\n /* flip the active flag */\n $el.expanded = true;\n break;\n }\n });\n }\n\n\n\n /*\n * searches for a given view element inside the available dialogs in current page\n * if found, the dialog is displayed, the dialog id is returned.\n */\n private showAncestorDialog(viewName: string) {\n let dialogId;\n $('app-root [dialogtype]')\n .each(function () {\n const dialog = $(this);\n if ($(dialog.html()).find('[name=\"' + viewName + '\"]').length) {\n dialogId = dialog.attr('name');\n return false;\n }\n });\n return dialogId;\n }\n}\n\nclass PageInfo {\n\n constructor(public name, public urlParams?, public transition?) {\n this.transition = isEmpty(this.transition) ? null : this.transition;\n }\n\n public isEqual(page1: PageInfo) {\n return page1 && page1.name === this.name && isEqual(page1.urlParams, this.urlParams);\n }\n}\n\nclass History {\n private stack: Array<PageInfo> = [];\n private currentPage: PageInfo;\n\n public getCurrentPage() {\n return this.currentPage;\n }\n\n public getPagesCount() {\n return this.stack.length;\n }\n\n public isLastVisitedPage(page: PageInfo) {\n return this.getLastPage().isEqual(page);\n }\n\n public push(pageInfo: PageInfo) {\n if (this.currentPage) {\n this.stack.push(this.currentPage);\n }\n this.currentPage = pageInfo;\n }\n\n public pop() {\n this.currentPage = this.stack.pop();\n return this.currentPage;\n }\n\n public getLastPage() {\n return this.stack.length > 0 ? this.stack[this.stack.length - 1] : undefined;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { AppDefaults } from '@wm/core';\n\n@Injectable()\nexport class AppDefaultsService implements AppDefaults {\n\n constructor() {\n }\n\n dateFormat: string;\n timeFormat: string;\n dateTimeFormat: string;\n currencyCode: string;\n\n setFormats(formats: any) {\n const dateFormat = formats.date;\n const timeFormat = formats.time;\n const dateTimeFormat = (dateFormat && timeFormat) ? dateFormat + ' ' + timeFormat : undefined;\n const currency = formats.currency;\n\n this.dateFormat = dateFormat;\n this.timeFormat = timeFormat;\n this.dateTimeFormat = dateTimeFormat;\n this.currencyCode = currency;\n }\n}\n","import { ActivatedRouteSnapshot } from '@angular/router';\nimport { Injectable } from '@angular/core';\n\nimport { SecurityService } from '@wm/security';\n\nimport { AppManagerService } from '../services/app.manager.service';\n\nlet securityConfigLoaded = false;\n\n@Injectable()\nexport class AuthGuard {\n\n constructor(private securityService: SecurityService, private appManager: AppManagerService) {}\n\n loadSecurityConfig(): Promise<boolean> {\n if (securityConfigLoaded) {\n return Promise.resolve(true);\n }\n\n return this.appManager.loadSecurityConfig().then(() => securityConfigLoaded = true);\n }\n\n isAuthenticated(): Promise<any> {\n return this.loadSecurityConfig()\n .then(() => {\n return new Promise((resolve, reject) => {\n this.securityService.isAuthenticated(resolve, reject);\n });\n });\n }\n\n canActivate(route: ActivatedRouteSnapshot): Promise<any> {\n return this.isAuthenticated()\n .then(isLoggedIn => {\n if (isLoggedIn) {\n return Promise.resolve(true);\n }\n\n this.appManager.handle401(route.routeConfig.path, {queryParams: route.queryParams});\n\n return Promise.resolve(false);\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot } from '@angular/router';\n\nimport { AbstractToasterService, App } from '@wm/core';\nimport { SecurityService } from '@wm/security';\n\nimport { AuthGuard } from './auth.guard';\nimport { AppManagerService } from '../services/app.manager.service';\nimport {intersection} from \"lodash-es\";\n\n@Injectable()\nexport class RoleGuard {\n\n constructor(\n private securityService: SecurityService,\n private authGuard: AuthGuard,\n private toasterService: AbstractToasterService,\n private app: App,\n private appManager: AppManagerService\n ) {}\n\n canActivate(route: ActivatedRouteSnapshot): Promise<boolean> {\n const allowedRoles = route.data.allowedRoles;\n\n return this.authGuard.isAuthenticated()\n .then((isLoggedIn: boolean) => {\n if (isLoggedIn) {\n const userRoles = this.securityService.get().userInfo.userRoles;\n const hasAccess = intersection(allowedRoles, userRoles).length > 0;\n\n if (hasAccess) {\n return Promise.resolve(true);\n }\n\n // current loggedin user doesn't have access to the page that the user is trying to view\n this.appManager.notifyApp(\n this.app.appLocale.LABEL_ACCESS_DENIED || 'Access Denied',\n 'error'\n );\n\n return Promise.resolve(false);\n\n } else {\n // redirect to Login\n this.appManager.handle401(route.routeConfig.path, {queryParams: route.queryParams});\n\n return Promise.resolve(false);\n }\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot } from '@angular/router';\n\nimport { App } from '@wm/core';\nimport { AppManagerService } from '../services/app.manager.service';\n\n@Injectable()\nexport class PageNotFoundGuard {\n\n constructor(\n private app: App,\n private appManager: AppManagerService\n ) {}\n\n canActivate(route: ActivatedRouteSnapshot): Promise<boolean> {\n this.appManager.notifyApp(\n this.app.appLocale.MESSAGE_PAGE_NOT_FOUND || 'The page you are trying to reach is not available',\n 'error'\n );\n return Promise.resolve(false);\n }\n}\n","import { Injectable, Injector } from '@angular/core';\n\n\nimport { App, UtilsService } from '@wm/core';\n\nimport { AppJSProvider } from '../types/types';\nimport { AppManagerService } from '../services/app.manager.service';\n\nlet appJsLoaded = false;\n\n@Injectable()\nexport class AppJSResolve {\n private appManager;\n\n // AppManagerService: To be make sure this instance available for locale(en.json) calls request to track inside intercepter\n constructor(\n private inj: Injector,\n private app: App,\n private utilService: UtilsService,\n private appJsProvider: AppJSProvider\n ) {\n this.appManager = this.inj.get(AppManagerService);\n }\n\n async resolve() {\n if (appJsLoaded) {\n return true;\n }\n\n try {\n // execute app.js\n const appScriptFn = await this.appJsProvider.getAppScriptFn();\n appScriptFn(this.app, this.utilService, this.inj);\n } catch (e) {\n console.warn('Error in executing app.js', e);\n }\n\n appJsLoaded = true;\n\n return true;\n }\n}\n","import { Injectable, Injector } from '@angular/core';\n\n\nimport { App, UtilsService, CustomPipeManager } from '@wm/core';\n\nimport { AppExtensionProvider } from '../types/types';\nimport { AppManagerService } from '../services/app.manager.service';\n\n\nlet appJsLoaded = false;\n\n\n@Injectable()\nexport class AppExtensionJSResolve {\n\n constructor(\n private appManager: AppManagerService,\n private appJsProvider: AppExtensionProvider,\n private customPipeManager: CustomPipeManager\n ) {}\n\n resolve() {\n if(this.appManager.isPrefabType() || this.appManager.isTemplateBundleType()){\n return true;\n }\n if (!appJsLoaded) {\n this.appJsProvider.loadFormatterConfigScript(this.loadedFormatterScript.bind(this));\n appJsLoaded = true;\n }\n return appJsLoaded;\n }\n\n // Formatters load callback\n loadedFormatterScript(response){\n try {\n let formatterObj = response;\n // If user defined the invalid formatters.\n if(!formatterObj){\n console.warn('Please return valid formatter object');\n }\n\n for(let key in formatterObj){\n this.customPipeManager.setCustomPipe(key, formatterObj[key]);\n }\n } catch (e) {\n console.warn('Error in reading formatters.js', e);\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { AbstractI18nService } from '@wm/core';\n\n@Injectable()\nexport class I18nResolve {\n\n constructor(private i18nService: AbstractI18nService) {}\n\n resolve() {\n return this.i18nService.loadDefaultLocale();\n }\n}\n","<ng-container *ngIf=\"startApp\">\n <router-outlet></router-outlet>\n <div wmContainer partialContainer content=\"Common\" hidden class=\"ng-hide\" *ngIf=\"isApplicationType\"></div>\n <app-spinner name=\"globalspinner\" classname=\"global-spinner\" role=\"alert\" aria-live=\"assertive\" [attr.aria-label]=\"spinner.arialabel || 'Loading'\" [show]=\"spinner.show\" [spinnermessages]=\"spinner.messages\"></app-spinner>\n <div wmDialog name=\"oAuthLoginDialog\" title=\"Application is requesting you to sign in with\"\n close.event=\"closeOAuthDialog()\">\n <ng-template #dialogBody>\n <ul class=\"list-items\">\n <li class=\"list-item\" *ngFor=\"let provider of providersConfig\">\n <button class=\"btn\" (click)=\"provider.invoke()\">{{provider.name}}</button>\n </li>\n </ul>\n </ng-template>\n </div>\n <div wmConfirmDialog name=\"_app-confirm-dialog\" title.bind=\"title\" message.bind=\"message\" oktext.bind=\"oktext\"\n canceltext.bind=\"canceltext\" closable=\"false\" iconclass.bind=\"iconclass\"\n escape.event=\"onEscape()\" ok.event=\"onOk()\" cancel.event=\"onCancel()\" close.event=\"onClose()\" opened.event=\"onOpen()\"></div>\n <div *ngIf=\"!isApplicationType\" wmConfirmDialog name=\"PrefabConfirmDialog\" title.bind=\"title\" message.bind=\"text\" oktext.bind=\"okButtonText\"\n canceltext.bind=\"cancelButtonText\" closable=\"false\" iconclass.bind=\"iconclass\"\n escape.event=\"onEscape()\" ok.event=\"onOk()\" cancel.event=\"onCancel()\" close.event=\"onClose()\" opened.event=\"onOpen()\"></div>\n <div *ngIf=\"!isApplicationType\" wmAlertDialog name=\"PrefabAlertDialog\" title.bind=\"title\" message.bind=\"text\" oktext.bind=\"okButtonText\"\n canceltext.bind=\"cancelButtonText\" closable=\"false\" iconclass.bind=\"iconclass\"\n escape.event=\"onEscape()\" ok.event=\"onOk()\" cancel.event=\"onCancel()\" close.event=\"onClose()\" opened.event=\"onOpen()\"></div>\n <div wmAppExt></div>\n <i id=\"wm-mobile-display\"></i>\n</ng-container>\n<!--Dummy container to create the component dynamically-->\n<ng-container #dynamicComponent></ng-container>\n","import {\n AfterViewInit,\n ApplicationRef,\n Component,\n DoCheck,\n ElementRef,\n NgZone,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core';\nimport {NavigationCancel, NavigationEnd, NavigationError, NavigationStart, Router, RouterOutlet} from '@angular/router';\n\nimport {setTheme} from 'ngx-bootstrap/utils';\n\nimport {\n $invokeWatchers,\n AbstractDialogService,\n AbstractSpinnerService,\n addClass,\n App,\n CustomIconsLoaderService,\n getWmProjectProperties,\n hasCordova,\n noop,\n removeClass,\n setAppRef,\n setNgZone,\n setPipeProvider\n} from '@wm/core';\nimport {OAuthService} from '@wm/oAuth';\nimport {AppManagerService} from '../../services/app.manager.service';\nimport {PipeProvider} from '../../services/pipe-provider.service';\n\ninterface SPINNER {\n show: boolean;\n messages: Array<string>;\n arialabel: string;\n}\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class AppComponent implements DoCheck, AfterViewInit {\n public startApp = false;\n public isApplicationType = false;\n\n @ViewChild(RouterOutlet) routerOutlet: RouterOutlet;\n\n @ViewChild('dynamicComponent', {read: ViewContainerRef}) dynamicComponentContainerRef: ViewContainerRef;\n\n spinner: SPINNER = {show: false, messages: [], arialabel: ''};\n constructor(\n _pipeProvider: PipeProvider,\n _appRef: ApplicationRef,\n private elRef: ElementRef,\n private oAuthService: OAuthService,\n private dialogService: AbstractDialogService,\n private spinnerService: AbstractSpinnerService,\n ngZone: NgZone,\n private router: Router,\n private app: App,\n private appManager: AppManagerService,\n private customIconsLoaderService: CustomIconsLoaderService\n ) {\n setPipeProvider(_pipeProvider);\n setNgZone(ngZone);\n setAppRef(_appRef);\n\n this.isApplicationType = getWmProjectProperties().type === 'APPLICATION';\n if(this.isApplicationType) {\n this.customIconsLoaderService.load();\n }\n\n this.appManager.beforeAppReady();\n\n // subscribe to OAuth changes\n oAuthService.getOAuthProvidersAsObservable().subscribe((providers: any) => {\n this.providersConfig = providers;\n if (providers.length) {\n this.showOAuthDialog();\n } else {\n this.closeOAuthDialog();\n }\n });\n\n // Subscribe to the message source to show/hide app spinner\n this.spinnerService.getMessageSource().asObservable().subscribe((data: any) => {\n // setTimeout is to avoid 'ExpressionChangedAfterItHasBeenCheckedError'\n setTimeout(() => {\n this.spinner.show = data.show;\n this.spinner.messages = data.messages;\n this.spinner.arialabel = data.messages.toString();\n });\n });\n\n // set theme to bs3 on ngx-bootstrap. This avoids runtime calculation to determine bs theme. Thus resolves performance.\n setTheme('bs3');\n\n let spinnerId;\n\n let onPageRendered = noop;\n\n this.router.events.subscribe(e => {\n if (e instanceof NavigationStart) {\n let page = e.url.split('?')[0];\n page = page.substring(1);\n\n if (!page) {\n this.app.activeLayoutName = '';\n this.app.layoutPages = [];\n }\n if(this.app.activeLayoutName && this.app.layoutPages && this.app.layoutPages.length && this.app.layoutPages.includes(page)) {\n spinnerId = this.spinnerService.show('', 'wmRouterOutlet', '', 'wmRouterOutlet');\n } else {\n spinnerId = this.spinnerService.show('', 'globalSpinner');\n }\n\n const node = document.querySelector('app-page-outlet') as HTMLElement;\n if (node) {\n addClass(node, 'page-load-in-progress');\n }\n\n const pageLoadStartTime = Date.now();\n onPageRendered = () => {\n this.spinnerService.hide(spinnerId);\n const node = document.querySelector('app-page-outlet') as HTMLElement;\n if (node) {\n removeClass(node, 'page-load-in-progress');\n }\n onPageRendered = noop;\n this.app.activePageLoadTime = Date.now() - pageLoadStartTime;\n };\n } else if (e instanceof NavigationEnd || e instanceof NavigationCancel || e instanceof NavigationError) {\n setTimeout(() =>{\n onPageRendered();\n }, 1000);\n }\n });\n this.appManager.subscribe('pageReady', () => {\n onPageRendered();\n });\n this.appManager.subscribe('pageAttach', () => {\n onPageRendered();\n });\n }\n\n providersConfig;\n isOAuthDialogOpen = false;\n\n showOAuthDialog() {\n if (!this.isOAuthDialogOpen) {\n this.isOAuthDialogOpen = true;\n this.dialogService.open('oAuthLoginDialog', this);\n }\n }\n\n closeOAuthDialog() {\n if (this.isOAuthDialogOpen) {\n this.isOAuthDialogOpen = false;\n this.dialogService.close('oAuthLoginDialog', this);\n }\n }\n\n private start() {\n //to fix the issue that happens only in the development mode\n //ExpressionChangedAfterItHasBeenCheckedError\n //fix: https://blog.angular-university.io/angular-debugging/\n setTimeout(() => {\n this.startApp = true;\n });\n setTimeout(() => {\n this.app.dynamicComponentContainerRef = this.dynamicComponentContainerRef;\n this.overrideRouterOutlet();\n }, 10);\n }\n\n private overrideRouterOutlet() {\n //override the attach/detach methods\n const oAttach = this.routerOutlet.attach;\n const oDetach = this.routerOutlet.detach;\n this.routerOutlet.attach = (componentRef: any) => {\n oAttach.call(this.routerOutlet, componentRef);\n componentRef.instance.ngOnAttach();\n };\n this.routerOutlet.detach = () => {\n this.app.activePage.ngOnDetach();\n const componentRef = oDetach.call(this.routerOutlet);\n return componentRef;\n };\n }\n\n ngAfterViewInit() {\n document.documentElement.setAttribute('lang', getWmProjectProperties().defaultLanguage);\n if (hasCordova() && !window['wmDeviceReady']) {\n document.addEventListener('wmDeviceReady' , () => this.start());\n } else {\n this.start();\n }\n }\n\n ngDoCheck() {\n $invokeWatchers();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse } from '@angular/common/http';\n\nimport { Observable, Subject } from 'rxjs';\nimport { tap } from 'rxjs/operators';\n\nimport { httpService, appManager } from '@wm/variables';\nimport { WmHttpRequest, WmHttpResponse } from '@wm/http';\nimport {extend} from \"lodash-es\";\n\n/**\n * This Interceptor intercepts all network calls and if a network call fails\n * due to session timeout, then it calls a function to handle session timeout.\n */\n@Injectable()\nexport class HttpCallInterceptor implements HttpInterceptor {\n\n wmHttpRequest: any;\n wmHttpResponse: any;\n\n constructor() {\n this.wmHttpRequest = new WmHttpRequest();\n this.wmHttpResponse = new WmHttpResponse();\n }\n\n createSubject() {\n return new Subject();\n }\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n let modifiedReq;\n let modifiedResp;\n if (appManager && appManager.appOnBeforeServiceCall) {\n // Convert the angular HttpRequest to wm HttpRequest\n const req = this.wmHttpRequest.angularToWmRequest(request);\n // trigger the common onBeforeServiceCall handler present in app.js\n modifiedReq = appManager.appOnBeforeServiceCall(req);\n if (modifiedReq) {\n // Convert the wm HttpRequest to angular HttpRequest\n modifiedReq = this.wmHttpRequest.wmToAngularRequest(modifiedReq);\n request = modifiedReq;\n }\n }\n return next.handle(request).pipe(\n tap((response: any) => {\n if (response && response.type === 4 && appManager && appManager.appOnServiceSuccess) {\n // Convert the angular HttpResponse to wm HttpResponse\n const resp = this.wmHttpResponse.angularToWmResponse(response);\n // trigger the common success handler present in app.js\n modifiedResp = appManager.appOnServiceSuccess(resp.body, resp);\n if (modifiedResp) {\n // Convert the wm HttpResponse to angular HttpResponse\n modifiedResp = this.wmHttpResponse.wmToAngularResponse(modifiedResp);\n extend(response, modifiedResp);\n }\n }\n },\n error => {\n error._401Subscriber = this.createSubject();\n if (httpService.isPlatformSessionTimeout(error)) {\n httpService.handleSessionTimeout(request, error._401Subscriber);\n }\n if (appManager && appManager.appOnServiceError) {\n // Convert the angular HttpResponse to wm HttpResponse\n const err = this.wmHttpResponse.angularToWmResponse(error);\n // trigger the common error handler present in app.js\n modifiedResp = appManager.appOnServiceError(err.message, err);\n if (modifiedResp) {\n // Convert the wm HttpResponse to angular HttpResponse\n modifiedResp = this.wmHttpResponse.wmToAngularResponse(modifiedResp);\n extend(error, modifiedResp);\n }\n }\n }\n )\n );\n }\n}\n","import { AfterViewInit, Component, ViewChild } from '@angular/core';\n\nimport { PrefabDirective } from '@wm/components/prefab';\n\nimport { PrefabManagerService } from '../services/prefab-manager.service';\n\nconst PREFAB = 'PREFAB';\n\n@Component({\n selector: 'wm-prefab-preview',\n template: `\n <div class=\"prefab-preview row\">\n <section wmPrefab name=\"prefab-preview\" prefabname=\"__self__\"></section>\n </div>\n `\n})\nexport class PrefabPreviewComponent implements AfterViewInit {\n private config: any;\n private previewMode: boolean;\n\n @ViewChild(PrefabDirective, { static: true }) prefabInstance;\n\n constructor(private prefabManager: PrefabManagerService) {\n\n window.addEventListener('message', e => {\n const context = e.data && e.data.context;\n\n if (context !== PREFAB) {\n return;\n }\n\n const action = e.data.action;\n const payload = e.data.payload;\n\n if (action === 'init') {\n this.init();\n } else if (action === 'set-property') {\n this.setProperty(payload);\n } else if (action === 'get-outbound-properties') {\n this.getOutboundProps();\n } else if (action === 'invoke-script') {\n this.invokeScript(payload);\n }\n });\n }\n\n postMessage(action, payload?: any) {\n const data = {\n context: PREFAB,\n action,\n payload\n };\n window.top.postMessage(data, '*');\n }\n\n setupEventListeners() {\n this.prefabInstance.invokeEventCallback = (eventName, locals = {}) => {\n this.postMessage('event-log', { name: eventName, data: locals });\n };\n }\n\n init() {\n this.previewMode = true;\n\n this.prefabInstance.readyState.subscribe(\n () => {},\n () => {},\n () => {\n this.prefabManager.getConfig('__self__')\n .then(config => {\n this.config = config;\n this.postMessage('config', config);\n\n this.setupEventListeners();\n });\n }\n );\n }\n\n setProperty(payload: any) {\n this.prefabInstance.widget[payload.name] = payload.value;\n }\n\n isOutBoundProp(info) {\n return info.bindable === 'out-bound' || info.bindable === 'in-out-bound';\n }\n\n getOutboundProps() {\n const payload = {};\n for (const [name, info] of Object.entries(this.config.properties || {})) {\n if (this.isOutBoundProp(info)) {\n payload[name] = this.prefabInstance.widget[name];\n }\n }\n\n this.postMessage('outbound-properties', payload);\n }\n\n invokeScript(payload: any) {\n const script = `\\n return ${payload.script};`;\n\n const fn = new Function('Prefab', script);\n\n const retVal = fn(this.prefabInstance);\n\n this.postMessage('method-output', { methodName: payload.methodName, output: retVal });\n }\n\n ngAfterViewInit() {\n this.setupEventListeners();\n this.postMessage('init');\n }\n}\n\n","import {\n Compiler,\n Component,\n CUSTOM_ELEMENTS_SCHEMA,\n Injectable,\n NgModule,\n NO_ERRORS_SCHEMA,\n ViewEncapsulation\n} from '@angular/core';\n\nimport {App, extendProto, isDefined} from '@wm/core';\nimport {transpile} from '@wm/transpiler';\nimport {initComponentsBuildTask} from '@wm/build-task';\n\nimport {AppManagerService} from './app.manager.service';\nimport {RuntimeBaseModule} from '../runtime-base.module';\nimport {get} from \"lodash-es\";\n\ninitComponentsBuildTask();\n\nconst componentFactoryRefCache = new Map<string, any>();\n\nconst getDynamicModule = (componentRef: any) => {\n return NgModule({\n declarations: [componentRef],\n imports: [\n RuntimeBaseModule,\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA]\n })(class DynamicModule {});\n};\n\nconst getDynamicComponent = (\n selector: any,\n template: string,\n css: string = '') => {\n // @ts-ignore\n return Component({\n template,\n styles: [css],\n encapsulation: ViewEncapsulation.None,\n selector\n })(class DynamicComponent {\n isDynamicComponent: boolean = true;\n });\n};\n\n@Injectable()\nexport class DynamicComponentRefProviderService {\n private counter = 1;\n\n constructor(\n private app: App,\n private appManager: AppManagerService,\n private compiler: Compiler\n ) {}\n\n public async getComponentFactoryRef(selector: string, markup: string, options: any = {}): Promise<any> {\n // check in the cache.\n let componentFactoryRef = componentFactoryRefCache.get(selector);\n\n markup = options.transpile ? transpile(markup).markup : markup;\n if (!componentFactoryRef || options.noCache) {\n const componentDef = getDynamicComponent(selector, markup, options.styles);\n const moduleDef = getDynamicModule(componentDef);\n\n componentFactoryRef = this.compiler\n .compileModuleAndAllComponentsSync(moduleDef)\n .componentFactories\n .filter(factory => factory.componentType === componentDef)[0];\n\n componentFactoryRefCache.set(selector, componentFactoryRef);\n }\n return componentFactoryRef;\n }\n\n /**\n * Creates the component dynamically and add it to the DOM\n * @param target: HTML element where we need to append the created component\n * @param markup: Template of the component\n * @param context: Scope of the component\n * @param options: We have options like\n selector: selector of the component\n transpile: flag for transpiling HTML. By default it is true\n nocache: flag for render it from cache or not. By default it is true\n */\n public async addComponent(target: HTMLElement, markup: string, context = {}, options: any = {}) {\n options.transpile = isDefined(options.transpile) ? options.transpile : true;\n options.noCache = isDefined(options.noCache) ? options.noCache : true;\n options.selector = isDefined(options.selector) ? options.selector : 'wm-dynamic-component-' + this.counter++;\n const componentFactoryRef = await this.getComponentFactoryRef(options.selector, markup, options);\n const component = this.app.dynamicComponentContainerRef.createComponent(componentFactoryRef, 0, get(options, 'inj'));\n extendProto(component.instance, context);\n target.appendChild(component.location.nativeElement);\n }\n}\n","import {Injectable} from '@angular/core';\nimport {Observable} from 'rxjs';\nimport {noop} from '@wm/core';\nimport { ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\n\n\nexport interface CanComponentDeactivate {\n canDeactivate: () => Observable<boolean> | Promise<boolean> | boolean;\n}\n\n/*\n canDeactivate guard for preview/WM deployment.\n [WMS-19159] - Moved CanDeactivate() from page-wrapper.component.ts to base-page.component.ts(which is common for both preview and angular)\n because beforepageleave is not calling for browser/tab close in angularmode\n here component is pagewrapper so adding custom implementation for route change\n */\n@Injectable()\nexport class CanDeactivatePageGuard {\n canDeactivate(\n component: CanComponentDeactivate,\n currentRoute: ActivatedRouteSnapshot,\n currentState: RouterStateSnapshot,\n nextState?: RouterStateSnapshot\n ) {\n function invokeCompDeactivate() {\n let retVal;\n const nextRoute = nextState ? nextState.url : undefined;\n // Calling onBeforePageLeave method present at page level\n retVal = this.app.activePage && this.app.activePage.onBeforePageLeave(nextRoute);\n // Calling onBeforePageLeave method present at app level only if page level method return true\n // or if there is no page level method\n if (retVal !== false ) {\n retVal = (this.app.onBeforePageLeave || noop)(this.app.activePageName, this.app.activePage, nextRoute);\n }\n return retVal === undefined ? true : retVal;\n }\n return invokeCompDeactivate.apply(component);\n }\n}\n\n\n// [WMS-18847] - canDeactivate guard for angular deployment.\n@Injectable()\nexport class CanDeactivateNgPageGuard {\n canDeactivate(component: CanComponentDeactivate) {\n return component.canDeactivate ? component.canDeactivate() : true;\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {DOCUMENT, ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable, OnDestroy} from '@angular/core';\n\n@Injectable()\nexport class SharedStylesHost {\n /** @internal */\n protected _stylesSet = new Set<string>();\n\n addStyles(styles: string[]): void {\n const additions = new Set<string>();\n styles.forEach(style => {\n if (!this._stylesSet.has(style)) {\n this._stylesSet.add(style);\n additions.add(style);\n }\n });\n this.onStylesAdded(additions);\n }\n\n onStylesAdded(additions: Set<string>): void {}\n\n getAllStyles(): string[] {\n return Array.from(this._stylesSet);\n }\n}\n@Injectable()\nexport class WMDomSharedStylesHost extends SharedStylesHost implements OnDestroy {\n // Maps all registered host nodes to a list of style nodes that have been added to the host node.\n private _hostNodes = new Map<Node, Node[]>();\n\n constructor(@Inject(DOCUMENT) private _doc: any) {\n super();\n this._hostNodes.set(_doc.head, []);\n }\n\n private _addStylesToHost(styles: Set<string>, host: Node, styleNodes: Node[]): void {\n const nonce = document.querySelector('meta[name=\"CSP-NONCE\"]')?.getAttribute('content') || 'wm-csp-nonce';\n styles.forEach((style: string) => {\n const styleEl = this._doc.createElement('style');\n styleEl.textContent = style;\n styleEl.setAttribute('nonce', nonce); //WM: add nonce\n styleNodes.push(host.appendChild(styleEl));\n });\n }\n\n addHost(hostNode: Node): void {\n const styleNodes: Node[] = [];\n this._addStylesToHost(this._stylesSet, hostNode, styleNodes);\n this._hostNodes.set(hostNode, styleNodes);\n }\n\n removeHost(hostNode: Node): void {\n const styleNodes = this._hostNodes.get(hostNode);\n if (styleNodes) {\n styleNodes.forEach(removeStyle);\n }\n this._hostNodes.delete(hostNode);\n }\n\n onStylesAdded(additions: Set<string>): void {\n this._hostNodes.forEach((styleNodes, hostNode) => {\n this._addStylesToHost(additions, hostNode, styleNodes);\n });\n }\n\n ngOnDestroy(): void {\n this._hostNodes.forEach(styleNodes => styleNodes.forEach(removeStyle));\n }\n}\n\nfunction removeStyle(styleNode: Node): void {\n getDOM().remove(styleNode);\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n APP_ID,\n inject,\n Inject,\n Injectable,\n Renderer2,\n RendererFactory2,\n RendererStyleFlags2,\n RendererType2,\n ViewEncapsulation\n} from '@angular/core';\n\nimport {EventManager, ɵSharedStylesHost} from '@angular/platform-browser';\nimport {DOCUMENT, ɵgetDOM as getDOM} from '@angular/common';\n\nexport const NAMESPACE_URIS: {[ns: string]: string} = {\n 'svg': 'http://www.w3.org/2000/svg',\n 'xhtml': 'http://www.w3.org/1999/xhtml',\n 'xlink': 'http://www.w3.org/1999/xlink',\n 'xml': 'http://www.w3.org/XML/1998/namespace',\n 'xmlns': 'http://www.w3.org/2000/xmlns/',\n 'math': 'http://www.w3.org/1998/MathML/',\n};\n\nconst COMPONENT_REGEX = /%COMP%/g;\nconst NG_DEV_MODE = false;\n\nexport const COMPONENT_VARIABLE = '%COMP%';\nexport const HOST_ATTR = `_nghost-${COMPONENT_VARIABLE}`;\nexport const CONTENT_ATTR = `_ngcontent-${COMPONENT_VARIABLE}`;\n\nexport function shimContentAttribute(componentShortId: string): string {\n return CONTENT_ATTR.replace(COMPONENT_REGEX, componentShortId);\n}\n\nexport function shimHostAttribute(componentShortId: string): string {\n return HOST_ATTR.replace(COMPONENT_REGEX, componentShortId);\n}\n\nexport function flattenStyles(\n compId: string, styles: Array<any|any[]>, target: string[]): string[] {\n for (let i = 0; i < styles.length; i++) {\n let style = styles[i];\n\n if (Array.isArray(style)) {\n flattenStyles(compId, style, target);\n } else {\n style = style.replace(COMPONENT_REGEX, compId);\n target.push(style);\n }\n }\n return target;\n}\n\nfunction decoratePreventDefault(eventHandler: Function): Function {\n // `DebugNode.triggerEventHandler` needs to know if the listener was created with\n // decoratePreventDefault or is a listener added outside the Angular context so it can handle the\n // two differently. In the first case, the special '__ngUnwrap__' token is passed to the unwrap\n // the listener (see below).\n return (event: any) => {\n // Ivy uses '__ngUnwrap__' as a special token that allows us to unwrap the function\n // so that it can be invoked programmatically by `DebugNode.triggerEventHandler`. The debug_node\n // can inspect the listener toString contents for the existence of this special token. Because\n // the token is a string literal, it is ensured to not be modified by compiled code.\n if (event === '__ngUnwrap__') {\n return eventHandler;\n }\n\n const allowDefaultBehavior = eventHandler(event);\n if (allowDefaultBehavior === false) {\n // TODO(tbosch): move preventDefault into event plugins...\n event.preventDefault();\n event.returnValue = false;\n }\n\n return undefined;\n };\n}\n\nlet hasLoggedNativeEncapsulationWarning = false;\n\n@Injectable()\nexport class WMDomRendererFactory2 implements RendererFactory2 {\n private rendererByCompId = new Map<string, Renderer2>();\n private defaultRenderer: Renderer2;\n\n constructor(\n private eventManager: EventManager, private sharedStylesHost: ɵSharedStylesHost,\n @Inject(APP_ID) private appId: string, @Inject(DOCUMENT) private readonly doc: Document,) {\n this.defaultRenderer = new WMDefaultDomRenderer2(eventManager, doc);\n }\n\n createRenderer(element: any, type: RendererType2|null): Renderer2 {\n if (!element || !type) {\n return this.defaultRenderer;\n }\n switch (type.encapsulation) {\n case ViewEncapsulation.Emulated: {\n let renderer = this.rendererByCompId.get(type.id);\n if (!renderer) {\n renderer = new EmulatedEncapsulationDomRenderer2(\n this.eventManager, this.sharedStylesHost, type, this.appId, this.doc);\n this.rendererByCompId.set(type.id, renderer);\n }\n (<EmulatedEncapsulationDomRenderer2>renderer).applyToHost(element);\n return renderer;\n }\n // @ts-ignore TODO: Remove as part of FW-2290. TS complains about us dealing with an enum\n // value that is not known (but previously was the value for ViewEncapsulation.Native)\n case 1:\n case ViewEncapsulation.ShadowDom:\n // TODO(FW-2290): remove the `case 1:` fallback logic and the warning in v12.\n if (NG_DEV_MODE &&\n // @ts-ignore TODO: Remove as part of FW-2290. TS complains about us dealing with an\n // enum value that is not known (but previously was the value for\n // ViewEncapsulation.Native)\n !hasLoggedNativeEncapsulationWarning && type.encapsulation === 1) {\n hasLoggedNativeEncapsulationWarning = true;\n console.warn(\n 'ViewEncapsulation.Native is no longer supported. Falling back to ViewEncapsulation.ShadowDom. The fallback will be removed in v12.');\n }\n\n return new ShadowDomRenderer(this.eventManager, this.sharedStylesHost, element, type, this.doc);\n default: {\n if (!this.rendererByCompId.has(type.id)) {\n const styles = flattenStyles(type.id, type.styles, []);\n this.sharedStylesHost.addStyles(styles);\n this.rendererByCompId.set(type.id, this.defaultRenderer);\n }\n return this.defaultRenderer;\n }\n }\n }\n\n begin() {}\n end() {}\n}\n\nclass WMDefaultDomRenderer2 implements Renderer2 {\n data: {[key: string]: any} = Object.create(null);\n constructor(private eventManager: EventManager, @Inject(DOCUMENT) protected readonly doc: Document,) {}\n\n destroy(): void {}\n\n destroyNode = null;\n\n createElement(name: string, namespace?: string): any {\n if (namespace) {\n // TODO: `|| namespace` was added in\n // https://github.com/angular/angular/commit/2b9cc8503d48173492c29f5a271b61126104fbdb to\n // support how Ivy passed around the namespace URI rather than short name at the time. It did\n // not, however extend the support to other parts of the system (setAttribute, setAttribute,\n // and the ServerRenderer). We should decide what exactly the semantics for dealing with\n // namespaces should be and make it consistent.\n // Related issues:\n // https://github.com/angular/angular/issues/44028\n // https://github.com/angular/angular/issues/44883\n return document.createElementNS(NAMESPACE_URIS[namespace] || namespace, name);\n }\n\n return document.createElement(name);\n }\n\n createComment(value: string): any {\n return document.createComment(value);\n }\n\n createText(value: string): any {\n return document.createTextNode(value);\n }\n\n appendChild(parent: any, newChild: any): void {\n const targetParent = isTemplateNode(parent) ? parent.content : parent;\n targetParent.appendChild(newChild);\n }\n\n insertBefore(parent: any, newChild: any, refChild: any): void {\n if (parent) {\n const targetParent = isTemplateNode(parent) ? parent.content : parent;\n targetParent.insertBefore(newChild, refChild);\n }\n }\n\n removeChild(parent: any, oldChild: any): void {\n if (parent) {\n parent.removeChild(oldChild);\n }\n }\n\n selectRootElement(selectorOrNode: string|any, preserveContent?: boolean): any {\n let el: any = typeof selectorOrNode === 'string' ? document.querySelector(selectorOrNode) :\n selectorOrNode;\n if (!el) {\n throw new Error(`The selector \"${selectorOrNode}\" did not match any elements`);\n }\n if (!preserveContent) {\n el.textContent = '';\n }\n return el;\n }\n\n parentNode(node: any): any {\n return node.parentNode;\n }\n\n nextSibling(node: any): any {\n return node.nextSibling;\n }\n\n resetStyles(element: any): void {\n const styleList = [].slice.call(element);\n styleList.forEach(function (propertyName) {\n element.style.removeProperty(propertyName);\n });\n }\n\n applyStyles(element, styleString): void {\n if (styleString) {\n const styles = styleString.split(';');\n styles.forEach(function (styleBit) {\n const parts = styleBit.split(':');\n let property, value;\n if (parts.length === 2) {\n property = parts[0].trim();\n value = parts[1].trim();\n\n element.style[property] = value;\n }\n });\n return styleString;\n }\n }\n\n setAttribute(el: any, name: string, value: string, namespace?: string): void {\n if (namespace) {\n name = namespace + ':' + name;\n const namespaceUri = NAMESPACE_URIS[namespace];\n if (namespaceUri) {\n el.setAttributeNS(namespaceUri, name, value);\n } else {\n el.setAttribute(name, value);\n }\n } else {\n if (name === 'style') {\n this.resetStyles(el);\n this.applyStyles(el, value);\n } else {\n el.setAttribute(name, value);\n }\n }\n }\n\n removeAttribute(el: any, name: string, namespace?: string): void {\n if (namespace) {\n const namespaceUri = NAMESPACE_URIS[namespace];\n if (namespaceUri) {\n el.removeAttributeNS(namespaceUri, name);\n } else {\n el.removeAttribute(`${namespace}:${name}`);\n }\n } else {\n el.removeAttribute(name);\n }\n }\n\n addClass(el: any, name: string): void {\n el.classList.add(name);\n }\n\n removeClass(el: any, name: string): void {\n el.classList.remove(name);\n }\n\n setStyle(el: any, style: string, value: any, flags: RendererStyleFlags2): void {\n if (flags & (RendererStyleFlags2.DashCase | RendererStyleFlags2.Important)) {\n el.style.setProperty(style, value, flags & RendererStyleFlags2.Important ? 'important' : '');\n } else {\n el.style[style] = value;\n }\n }\n\n removeStyle(el: any, style: string, flags: RendererStyleFlags2): void {\n if (flags & RendererStyleFlags2.DashCase) {\n el.style.removeProperty(style);\n } else {\n // IE requires '' instead of null\n // see https://github.com/angular/angular/issues/7916\n el.style[style] = '';\n }\n }\n\n setProperty(el: any, name: string, value: any): void {\n NG_DEV_MODE && checkNoSyntheticProp(name, 'property');\n el[name] = value;\n }\n\n setValue(node: any, value: string): void {\n node.nodeValue = value;\n }\n\n listen(target: 'window'|'document'|'body'|any, event: string, callback: (event: any) => boolean):\n () => void {\n (typeof NG_DEV_MODE === 'undefined' || NG_DEV_MODE) && checkNoSyntheticProp(event, 'listener');\n if (typeof target === 'string') {\n target = getDOM().getGlobalEventTarget(this.doc, target);\n if (!target) {\n throw new Error(`Unsupported event target ${target} for event ${event}`);\n }\n }\n return <() => void>this.eventManager.addEventListener(\n target, event, decoratePreventDefault(callback)) as () => void;\n }\n}\n\nconst AT_CHARCODE = (() => '@'.charCodeAt(0))();\nfunction checkNoSyntheticProp(name: string, nameKind: string) {\n if (name.charCodeAt(0) === AT_CHARCODE) {\n throw new Error(`Unexpected synthetic ${nameKind} ${name} found. Please make sure that:\n - Either \\`BrowserAnimationsModule\\` or \\`NoopAnimationsModule\\` are imported in your application.\n - There is corresponding configuration for the animation named \\`${\n name}\\` defined in the \\`animations\\` field of the \\`@Component\\` decorator (see https://angular.io/api/core/Component#animations).`);\n }\n}\n\nfunction isTemplateNode(node: any): node is HTMLTemplateElement {\n return node.tagName === 'TEMPLATE' && node.content !== undefined;\n}\n\nclass EmulatedEncapsulationDomRenderer2 extends WMDefaultDomRenderer2 {\n private contentAttr: string;\n private hostAttr: string;\n\n constructor(\n eventManager: EventManager, sharedStylesHost: ɵSharedStylesHost,\n private component: RendererType2, appId: string, @Inject(DOCUMENT) protected readonly doc: Document) {\n super(eventManager, doc);\n const styles = flattenStyles(appId + '-' + component.id, component.styles, []);\n sharedStylesHost.addStyles(styles);\n\n this.contentAttr = shimContentAttribute(appId + '-' + component.id);\n this.hostAttr = shimHostAttribute(appId + '-' + component.id);\n }\n\n applyToHost(element: any) {\n super.setAttribute(element, this.hostAttr, '');\n }\n\n createElement(parent: any, name: string): Element {\n const el = super.createElement(parent, name);\n super.setAttribute(el, this.contentAttr, '');\n return el;\n }\n}\n\nclass ShadowDomRenderer extends WMDefaultDomRenderer2 {\n private shadowRoot: any;\n\n constructor(\n eventManager: EventManager, private sharedStylesHost: ɵSharedStylesHost,\n private hostEl: any, component: RendererType2, @Inject(DOCUMENT) protected readonly doc: Document,) {\n super(eventManager, doc);\n this.shadowRoot = (hostEl as any).attachShadow({mode: 'open'});\n this.sharedStylesHost.addHost(this.shadowRoot);\n const styles = flattenStyles(component.id, component.styles, []);\n for (let i = 0; i < styles.length; i++) {\n const styleEl = document.createElement('style');\n styleEl.textContent = styles[i];\n this.shadowRoot.appendChild(styleEl);\n }\n }\n\n private nodeOrShadowRoot(node: any): any {\n return node === this.hostEl ? this.shadowRoot : node;\n }\n\n destroy() {\n this.sharedStylesHost.removeHost(this.shadowRoot);\n }\n\n appendChild(parent: any, newChild: any): void {\n return super.appendChild(this.nodeOrShadowRoot(parent), newChild);\n }\n insertBefore(parent: any, newChild: any, refChild: any): void {\n return super.insertBefore(this.nodeOrShadowRoot(parent), newChild, refChild);\n }\n removeChild(parent: any, oldChild: any): void {\n return super.removeChild(this.nodeOrShadowRoot(parent), oldChild);\n }\n parentNode(node: any): any {\n return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(node)));\n }\n}\n","import {APP_INITIALIZER, LOCALE_ID, ModuleWithProviders, NgModule} from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { CommonModule, DatePipe, DecimalPipe } from '@angular/common';\nimport { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';\nimport { ɵSharedStylesHost } from '@angular/platform-browser';\nimport {ɵDomRendererFactory2} from \"@angular/platform-browser\";\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { ToastrModule } from 'ngx-toastr';\n\nimport {\n _WM_APP_PROJECT,\n $parseExpr,\n AbstractI18nService,\n AbstractNavigationService,\n AbstractSpinnerService,\n AbstractToasterService,\n App,\n AppDefaults,\n CoreModule,\n DynamicComponentRefProvider,\n isObject,\n isIphone,\n isIpod,\n isIpad,\n Viewport,\n hasCordova\n} from '@wm/core';\nimport { WmComponentsModule } from '@wm/components/base';\nimport { DialogModule } from '@wm/components/dialogs';\nimport { ConfirmDialogModule } from '@wm/components/dialogs/confirm-dialog';\nimport { DesignDialogModule } from '@wm/components/dialogs/design-dialog';\nimport { PrefabModule } from '@wm/components/prefab';\nimport { MobileRuntimeModule } from '@wm/mobile/runtime';\nimport { SecurityModule } from '@wm/security';\nimport { HttpServiceModule } from '@wm/http';\nimport { VariablesModule } from '@wm/variables';\nimport { OAuthModule } from '@wm/oAuth';\n\nimport { AccessrolesDirective } from './directives/accessroles.directive';\nimport { AppSpinnerComponent } from './components/app-spinner.component';\nimport { CustomToasterComponent } from './components/custom-toaster.component';\nimport { EmptyPageComponent } from './components/empty-component/empty-page.component';\nimport { PrefabDirective } from './directives/prefab.directive';\nimport { AppRef } from './services/app.service';\nimport { ToasterServiceImpl } from './services/toaster.service';\nimport { I18nServiceImpl } from './services/i18n.service';\nimport { SpinnerServiceImpl } from './services/spinner.service';\nimport { NavigationServiceImpl } from './services/navigation.service';\nimport { PipeService } from \"./services/pipe.service\";\nimport { AppDefaultsService } from './services/app-defaults.service';\nimport { AppManagerService } from './services/app.manager.service';\nimport { PrefabManagerService } from './services/prefab-manager.service';\nimport { AuthGuard } from './guards/auth.guard';\nimport { RoleGuard } from './guards/role.guard';\nimport { PageNotFoundGuard } from './guards/page-not-found.guard';\nimport { AppJSResolve } from './resolves/app-js.resolve';\nimport { AppExtensionJSResolve } from './resolves/app-extension.resolve';\nimport { I18nResolve } from './resolves/i18n.resolve';\nimport { AppComponent } from './components/app-component/app.component';\nimport { HttpCallInterceptor } from './services/http-interceptor.services';\nimport { PrefabPreviewComponent } from './components/prefab-preview.component';\nimport { DynamicComponentRefProviderService } from './services/dynamic-component-ref-provider.service';\nimport { CanDeactivatePageGuard } from './guards/can-deactivate-page.guard';\nimport { MAX_CACHE_AGE, MAX_CACHE_SIZE } from './util/wm-route-reuse-strategy';\n\n//angular overrides\nimport { WMDomSharedStylesHost } from \"./overrides/wm_shared_styles_host\";\nimport { WMDomRendererFactory2 } from \"./overrides/wm_dom_renderer\";\nimport {PageModule} from \"@wm/components/page\";\nimport {FooterModule} from \"@wm/components/page/footer\";\nimport {HeaderModule} from \"@wm/components/page/header\";\nimport {LeftPanelModule} from \"@wm/components/page/left-panel\";\nimport {RightPanelModule} from \"@wm/components/page/right-panel\";\nimport {TopNavModule} from \"@wm/components/page/top-nav\";\nimport {BasicModule} from \"@wm/components/basic\";\nimport {ProgressModule} from \"@wm/components/basic/progress\";\nimport {RichTextEditorModule} from \"@wm/components/basic/rich-text-editor\";\nimport {SearchModule} from \"@wm/components/basic/search\";\nimport {TreeModule} from \"@wm/components/basic/tree\";\nimport {CalendarModule} from \"@wm/components/input/calendar\";\nimport {ChipsModule} from \"@wm/components/input/chips\";\nimport {ColorPickerModule} from \"@wm/components/input/color-picker\";\nimport {CurrencyModule} from \"@wm/components/input/currency\";\nimport {EpochModule} from \"@wm/components/input/epoch\";\nimport {FileUploadModule} from \"@wm/components/input/file-upload\";\nimport {InputModule} from \"@wm/components/input\";\nimport {RatingModule} from \"@wm/components/input/rating\";\nimport {SliderModule} from \"@wm/components/input/slider\";\nimport {CardModule} from \"@wm/components/data/card\";\nimport {FormModule} from \"@wm/components/data/form\";\nimport {ListModule} from \"@wm/components/data/list\";\nimport {LiveTableModule} from \"@wm/components/data/live-table\";\nimport {PaginationModule} from \"@wm/components/data/pagination\";\nimport {TableModule} from \"@wm/components/data/table\";\nimport {ChartModule} from \"@wm/components/chart\";\nimport {AccordionModule} from \"@wm/components/containers/accordion\";\nimport {LinearLayoutModule} from \"@wm/components/containers/linear-layout\";\nimport {LayoutGridModule} from \"@wm/components/containers/layout-grid\";\nimport {PanelModule} from \"@wm/components/containers/panel\";\nimport {TabsModule} from \"@wm/components/containers/tabs\";\nimport {TileModule} from \"@wm/components/containers/tile\";\nimport {WizardModule} from \"@wm/components/containers/wizard\";\nimport {AlertDialogModule} from \"@wm/components/dialogs/alert-dialog\";\nimport {IframeDialogModule} from \"@wm/components/dialogs/iframe-dialog\";\nimport {LoginDialogModule} from \"@wm/components/dialogs/login-dialog\";\nimport {PartialDialogModule} from \"@wm/components/dialogs/partial-dialog\";\nimport {BreadcrumbModule} from \"@wm/components/navigation/breadcrumb\";\nimport {MenuModule} from \"@wm/components/navigation/menu\";\nimport {NavbarModule} from \"@wm/components/navigation/navbar\";\nimport {PopoverModule} from \"@wm/components/navigation/popover\";\nimport {CarouselModule} from \"@wm/components/advanced/carousel\";\nimport {LoginModule} from \"@wm/components/advanced/login\";\nimport {MarqueeModule} from \"@wm/components/advanced/marquee\";\nimport {BsDatepickerModule} from \"ngx-bootstrap/datepicker\";\nimport {TimepickerModule as ngxTimepickerModule} from \"ngx-bootstrap/timepicker\";\nimport {BsDropdownModule} from \"ngx-bootstrap/dropdown\";\nimport {PaginationModule as ngxPaginationModule} from \"ngx-bootstrap/pagination\";\nimport {TypeaheadModule} from \"ngx-bootstrap/typeahead\";\nimport {ProgressbarModule} from \"ngx-bootstrap/progressbar\";\nimport {CarouselModule as ngxCarouselModule} from \"ngx-bootstrap/carousel\";\nimport {PopoverModule as ngxPopoverModule} from \"ngx-bootstrap/popover\";\nimport {NgCircleProgressModule} from \"ng-circle-progress\";\nimport {TooltipModule} from \"ngx-bootstrap/tooltip\";\n\ndeclare const _WM_APP_PROPERTIES;\n\nconst initializeProjectDetails = () => {\n let cdnUrl = document.querySelector('[name=\"deployUrl\"]') && document.querySelector('[name=\"deployUrl\"]').getAttribute('content');\n //for preview\n if(!cdnUrl) {\n cdnUrl = document.querySelector('[name=\"cdnUrl\"]') && document.querySelector('[name=\"cdnUrl\"]').getAttribute('content');\n }\n _WM_APP_PROJECT.id = hasCordova() ? _WM_APP_PROPERTIES.displayName : location.href.split('/')[3];\n // Integration with third party apps like in SSPA/WebComponents, this meta tag with cdnUrl will not be there then default it to ng-bundle/\n _WM_APP_PROJECT.cdnUrl = cdnUrl || 'ng-bundle/';\n _WM_APP_PROJECT.ngDest = 'ng-bundle/';\n try {\n //@ts-ignore\n __webpack_require__.p = __webpack_public_path__ = cdnUrl;\n } catch(e) {\n //for app preview there is no webpack. Don't do anything.\n }\n};\n\nenum OS {\n IOS = 'ios',\n ANDROID = 'android'\n}\n\nexport function getSettingProvider(key: string, defaultValue: any) {\n return {\n provide: key,\n useValue: defaultValue\n };\n};\n\nexport function InitializeApp(I18nService, AppJSResolve) {\n return async () => {\n initializeProjectDetails();\n await AppJSResolve.resolve();\n return I18nService.loadDefaultLocale();\n };\n}\n\nexport function setAngularLocale(I18nService) {\n initializeProjectDetails();\n return I18nService.deduceAppLocale();\n}\n\nconst definitions = [\n AccessrolesDirective,\n AppSpinnerComponent,\n CustomToasterComponent,\n PrefabDirective,\n AppComponent,\n PrefabPreviewComponent,\n EmptyPageComponent\n];\n\nexport const REQUIRED_MODULES_FOR_DYNAMIC_COMPONENTS = [\n ConfirmDialogModule,\n DesignDialogModule,\n DialogModule,\n\n // NGX Bootstrap\n BsDatepickerModule,\n ngxTimepickerModule,\n BsDropdownModule,\n ngxPaginationModule,\n TypeaheadModule,\n ProgressbarModule,\n ngxCarouselModule,\n ngxPopoverModule,\n NgCircleProgressModule,\n TooltipModule,\n\n // Basic widgets\n BasicModule,\n ProgressModule,\n RichTextEditorModule,\n SearchModule,\n TreeModule,\n\n // Input\n CalendarModule,\n ChipsModule,\n ColorPickerModule,\n CurrencyModule,\n EpochModule,\n FileUploadModule,\n InputModule,\n RatingModule,\n SliderModule,\n\n // Data\n CardModule,\n FormModule,\n ListModule,\n LiveTableModule,\n PaginationModule,\n TableModule,\n\n // chart\n ChartModule,\n\n // container modules\n AccordionModule,\n LinearLayoutModule,\n LayoutGridModule,\n PanelModule,\n TabsModule,\n TileModule,\n WizardModule,\n\n // dialogs\n AlertDialogModule,\n IframeDialogModule,\n LoginDialogModule,\n PartialDialogModule,\n\n // navigation\n BreadcrumbModule,\n MenuModule,\n NavbarModule,\n PopoverModule,\n\n // Advanced\n CarouselModule,\n LoginModule,\n MarqueeModule,\n\n PageModule,\n FooterModule,\n HeaderModule,\n LeftPanelModule,\n RightPanelModule,\n TopNavModule,\n PrefabModule\n];\n\n// setting parseExpr as exprEvaluator for swipeAnimation\n($.fn as any).swipeAnimation.expressionEvaluator = $parseExpr;\n\n@NgModule({\n declarations: [ ...definitions ],\n imports: [\n CommonModule,\n RouterModule,\n HttpClientModule,\n FormsModule,\n ReactiveFormsModule,\n\n ToastrModule,\n WmComponentsModule,\n MobileRuntimeModule,\n CoreModule,\n SecurityModule,\n OAuthModule,\n VariablesModule,\n HttpServiceModule,\n ...REQUIRED_MODULES_FOR_DYNAMIC_COMPONENTS\n ],\n exports: [\n FormsModule,\n ReactiveFormsModule,\n\n ...definitions,\n\n CommonModule,\n RouterModule,\n HttpClientModule,\n\n ToastrModule,\n WmComponentsModule,\n MobileRuntimeModule,\n CoreModule,\n SecurityModule,\n OAuthModule,\n VariablesModule,\n HttpServiceModule,\n ...REQUIRED_MODULES_FOR_DYNAMIC_COMPONENTS\n ],\n providers: [\n {provide: ɵSharedStylesHost, useClass: WMDomSharedStylesHost},\n {provide: ɵDomRendererFactory2, useClass: WMDomRendererFactory2}\n ]\n})\nexport class RuntimeBaseModule {\n\n // this polyfill is to add support for CustomEvent in IE11\n static addCustomEventPolyfill() {\n if ( typeof window['CustomEvent'] === 'function' ) {\n return false;\n }\n // Adding type as any to avoid error TS2322\n const CustomEvent: any = (event, params) => {\n params = params || { bubbles: false, cancelable: false, detail: null };\n const evt = document.createEvent( 'CustomEvent' );\n evt.initCustomEvent( event, params.bubbles, params.cancelable, params.detail );\n return evt;\n };\n\n CustomEvent.prototype = window['Event'].prototype;\n // ### ANGULAR9TODO ###\n window['CustomEvent'] = CustomEvent;\n }\n\n static forRoot(): ModuleWithProviders<RuntimeBaseModule> {\n return {\n ngModule: RuntimeBaseModule,\n providers: [\n {provide: App, useClass: AppRef},\n {provide: AbstractToasterService, useClass: ToasterServiceImpl},\n {provide: AbstractI18nService, useClass: I18nServiceImpl},\n {provide: AbstractSpinnerService, useClass: SpinnerServiceImpl},\n {provide: AbstractNavigationService, useClass: NavigationServiceImpl},\n {provide: AppDefaults, useClass: AppDefaultsService},\n {provide: DynamicComponentRefProvider, useClass: DynamicComponentRefProviderService},\n {\n provide: APP_INITIALIZER,\n useFactory: InitializeApp,\n deps: [AbstractI18nService, AppJSResolve],\n multi: true\n },\n {\n provide: LOCALE_ID,\n useFactory: setAngularLocale,\n deps: [AbstractI18nService]\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: HttpCallInterceptor,\n multi: true\n },\n PipeService,\n DecimalPipe,\n DatePipe,\n AppManagerService,\n PrefabManagerService,\n AuthGuard,\n RoleGuard,\n PageNotFoundGuard,\n CanDeactivatePageGuard,\n AppJSResolve,\n AppExtensionJSResolve,\n I18nResolve,\n getSettingProvider(MAX_CACHE_SIZE, 10),\n getSettingProvider(MAX_CACHE_AGE, 30 * 60)\n ]\n };\n }\n\n constructor(mobileRuntimeModule: MobileRuntimeModule,\n app: App,\n viewport: Viewport) {\n RuntimeBaseModule.addCustomEventPolyfill();\n\n this.getDeviceDetails().then(details => {\n app.selectedViewPort = {\n os: details.os,\n category: details.selectedDeviceCategory\n };\n viewport.update(details);\n app.notify('on-viewport-details', details.os);\n });\n }\n\n\n private getDeviceDetails(): Promise<any> {\n return new Promise<any>(function (resolve, reject) {\n const msgContent = {key: 'on-load'};\n // Notify preview window that application is ready. Otherwise, identify the OS.\n if (window.top !== window) {\n window.top.postMessage(msgContent, '*');\n // This is for preview page\n window.onmessage = function (msg) {\n const data = msg.data;\n if (isObject(data) && data.key === 'switch-device') {\n resolve(data.device);\n }\n };\n } else if (isIphone() || isIpod() || isIpad()) {\n resolve({'os': OS.IOS});\n } else {\n resolve({'os': OS.ANDROID});\n }\n });\n }\n}\n\nexport const WM_MODULES_FOR_ROOT = [\n WmComponentsModule.forRoot(),\n MobileRuntimeModule.forRoot(),\n CoreModule.forRoot(),\n SecurityModule.forRoot(),\n OAuthModule.forRoot(),\n VariablesModule.forRoot(),\n HttpServiceModule.forRoot(),\n RuntimeBaseModule.forRoot()\n];\n","import { Injectable } from '@angular/core';\n\n\nimport { AppManagerService } from '../services/app.manager.service';\nimport { AppVariablesProvider } from '../types/types';\n\nlet appVariablesLoaded = false;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AppVariablesResolve {\n\n constructor(\n private appManager: AppManagerService,\n private appVariablesProvider: AppVariablesProvider\n ) {}\n\n resolve() {\n // execute app.js\n if (appVariablesLoaded) {\n return true;\n }\n\n return Promise.all([this.appManager.loadSecurityConfig(), this.appManager.loadMetadata(), this.appVariablesProvider.getAppVariables()])\n .then((data) => this.appManager.loadAppVariables(data[2]))\n .then(() => appVariablesLoaded = true);\n }\n}\n","import { Injectable } from '@angular/core';\n\n\nimport { AppManagerService } from '../services/app.manager.service';\n\nlet metadataResolved = false;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MetadataResolve {\n constructor(private appManager: AppManagerService) {}\n\n resolve() {\n return metadataResolved || this.appManager.loadMetadata().then(() => metadataResolved = true);\n }\n}\n","import { Injectable } from '@angular/core';\n\n\nimport { getWmProjectProperties, isMobileApp } from '@wm/core';\n\nimport { AppManagerService } from '../services/app.manager.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SecurityConfigResolve {\n loaded: boolean;\n\n constructor(private appManager: AppManagerService) {\n\n if (!isMobileApp()) {\n // if the project type is PREFAB, setting this flag will not trigger security/info call\n this.loaded = this.appManager.isPrefabType() || this.appManager.isTemplateBundleType() || !getWmProjectProperties().securityEnabled;\n }\n }\n\n resolve() {\n return this.loaded || this.appManager.loadSecurityConfig().then(() => {\n this.loaded = true;\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i3","i5","i1","i2.PrefabConfigProvider","noop","i4.AppManagerService","i1.PrefabManagerService","i2.ComponentRefProvider","i2","i1.PipeProvider","i2.AppManagerService","i2.AuthGuard","appJsLoaded","i2.AppJSProvider","i1.AppManagerService","i2.AppExtensionProvider","i4","i5.AppManagerService","PrefabDirective","getDOM","ɵSharedStylesHost","ngxTimepickerModule","ngxPaginationModule","ngxCarouselModule","ngxPopoverModule","PaginationModule","PopoverModule","CarouselModule","isObject","ɵDomRendererFactory2","i2.AppVariablesProvider"],"mappings":"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"}
|