├── .classpath
├── .eslintrc.js
├── .github
├── FUNDING.yml
├── issue_template.md
└── workflows
│ └── release.yml
├── .gitignore
├── .gitmodules
├── .npmrc
├── .prettierignore
├── .prettierrc.js
├── .project
├── .vscode
├── launch.json
├── settings.json
└── tasks.json
├── .yarnrc.yml
├── CHANGELOG.md
├── LICENSE
├── README.md
├── build.gradle
├── config.json
├── demo-snippets
├── App_Resources
│ └── Android
│ │ └── src
│ │ └── main
│ │ └── res
│ │ └── values
│ │ └── styles.xml
├── app.scss
├── ng
│ ├── activity-indicator
│ │ ├── activity-indicator.component.html
│ │ ├── activity-indicator.component.ts
│ │ └── activity-indicator.module.ts
│ ├── bottom-navigation-bar
│ │ ├── bottom-navigation-bar.component.html
│ │ ├── bottom-navigation-bar.component.ts
│ │ ├── bottom-navigation-bar.module.ts
│ │ ├── first-tab
│ │ │ ├── first-tab.component.html
│ │ │ └── first-tab.component.ts
│ │ └── third-tab
│ │ │ ├── third-tab.component.html
│ │ │ └── third-tab.component.ts
│ ├── bottom-sheet
│ │ ├── bottom-sheet.component.html
│ │ ├── bottom-sheet.component.ts
│ │ ├── bottom-sheet.module.ts
│ │ ├── login-options.component.html
│ │ └── login-options.component.ts
│ ├── buttons
│ │ ├── buttons.component.html
│ │ ├── buttons.component.ts
│ │ └── buttons.module.ts
│ ├── cards
│ │ ├── cards.component.html
│ │ ├── cards.component.ts
│ │ └── cards.module.ts
│ ├── install.module.ts
│ ├── progress
│ │ ├── progress.component.html
│ │ ├── progress.component.ts
│ │ └── progress.module.ts
│ ├── ripple
│ │ ├── ripple.component.html
│ │ ├── ripple.component.ts
│ │ └── ripple.module.ts
│ ├── slider
│ │ ├── slider.component.html
│ │ ├── slider.component.ts
│ │ └── slider.module.ts
│ ├── tabs
│ │ ├── tabs.component.html
│ │ ├── tabs.component.ts
│ │ └── tabs.module.ts
│ └── text-field
│ │ ├── text-field.component.html
│ │ ├── text-field.component.ts
│ │ └── text-field.module.ts
├── package.json
├── postinstall.js
├── preuninstall.js
├── scripts
│ └── after-prepare.js
├── svelte
│ ├── Buttons.svelte
│ └── install.ts
├── vue
│ ├── ActivityIndicators.vue
│ ├── BottomNavigation.vue
│ ├── BottomNavigationBar.vue
│ ├── BottomSheet.vue
│ ├── BottomSheetInner.vue
│ ├── BottomSheetInnerFrame.vue
│ ├── BottomSheetInnerKeyboard.vue
│ ├── ButtonIssue.vue
│ ├── Buttons.vue
│ ├── CardViews.vue
│ ├── Dialogs.vue
│ ├── Mixins.vue
│ ├── ProgressBars.vue
│ ├── Ripples.vue
│ ├── Sliders.vue
│ ├── SnackBar.vue
│ ├── Speeddial.vue
│ ├── Tabs.vue
│ ├── TextFields.vue
│ ├── TextView.vue
│ └── install.ts
├── vue3
│ ├── ActivityIndicators.vue
│ ├── BottomNavigation.vue
│ ├── BottomNavigationBar.vue
│ ├── BottomSheet.vue
│ ├── BottomSheetInner.vue
│ ├── BottomSheetInnerKeyboard.vue
│ ├── ButtonIssue.vue
│ ├── Buttons.vue
│ ├── CardViews.vue
│ ├── Dialogs.vue
│ ├── Mixins.vue
│ ├── ProgressBars.vue
│ ├── Ripples.vue
│ ├── Sliders.vue
│ ├── SnackBar.vue
│ ├── Speeddial.vue
│ ├── TextFields.vue
│ ├── TextView.vue
│ └── install.ts
├── webpack.config.ng.js
├── webpack.config.svelte.js
├── webpack.config.vue.js
└── webpack.config.vue3.js
├── docs
├── .nojekyll
├── assets
│ ├── hierarchy.js
│ ├── highlight.css
│ ├── icons.js
│ ├── icons.svg
│ ├── main.js
│ ├── navigation.js
│ ├── search.js
│ └── style.css
├── classes
│ ├── _nativescript-community_ui-material-activityindicator.ActivityIndicator.html
│ ├── _nativescript-community_ui-material-bottomnavigationbar.BottomNavigationBar.html
│ ├── _nativescript-community_ui-material-bottomnavigationbar.BottomNavigationTab.html
│ ├── _nativescript-community_ui-material-bottomsheet.ViewWithBottomSheetBase.html
│ ├── _nativescript-community_ui-material-button.Button.html
│ ├── _nativescript-community_ui-material-cardview.CardView.html
│ ├── _nativescript-community_ui-material-core.Themer.html
│ ├── _nativescript-community_ui-material-dialogs.AlertDialog.html
│ ├── _nativescript-community_ui-material-floatingactionbutton.FloatingActionButton.html
│ ├── _nativescript-community_ui-material-progress.Progress.html
│ ├── _nativescript-community_ui-material-ripple.Ripple.html
│ ├── _nativescript-community_ui-material-slider.Slider.html
│ ├── _nativescript-community_ui-material-snackbar.SnackBar.html
│ ├── _nativescript-community_ui-material-speedial.SpeedDial.html
│ ├── _nativescript-community_ui-material-speedial.SpeedDialButton.html
│ ├── _nativescript-community_ui-material-speedial.SpeedDialItem.html
│ ├── _nativescript-community_ui-material-speedial.SpeedDialItemBase.html
│ ├── _nativescript-community_ui-material-speedial.SpeedDialItemButton.html
│ ├── _nativescript-community_ui-material-speedial.SpeedDialItemTitle.html
│ ├── _nativescript-community_ui-material-switch.Switch.html
│ ├── _nativescript-community_ui-material-tabs.TabContentItem.html
│ ├── _nativescript-community_ui-material-tabs.TabStrip.html
│ ├── _nativescript-community_ui-material-tabs.TabStripItem.html
│ ├── _nativescript-community_ui-material-tabs.Tabs.html
│ ├── _nativescript-community_ui-material-textfield.TextField.html
│ └── _nativescript-community_ui-material-textview.TextView.html
├── enums
│ ├── _nativescript-community_ui-material-bottomnavigationbar.TitleVisibility.html
│ ├── _nativescript-community_ui-material-core.CornerFamily.html
│ ├── _nativescript-community_ui-material-snackbar.DismissReasons.html
│ └── _nativescript-community_ui-material-snackbar.SnackBarAction.html
├── functions
│ ├── _nativescript-community_ui-material-bottomsheet.install.html
│ ├── _nativescript-community_ui-material-core.applyMixins.html
│ ├── _nativescript-community_ui-material-core.cssProperty.html
│ ├── _nativescript-community_ui-material-core.getRippleColor.html
│ ├── _nativescript-community_ui-material-core.install.html
│ ├── _nativescript-community_ui-material-core.installMixins.html
│ ├── _nativescript-community_ui-material-core.mixin.html
│ ├── _nativescript-community_ui-material-dialogs.action.html
│ ├── _nativescript-community_ui-material-dialogs.alert.html
│ ├── _nativescript-community_ui-material-dialogs.confirm.html
│ ├── _nativescript-community_ui-material-dialogs.login.html
│ ├── _nativescript-community_ui-material-dialogs.prompt.html
│ ├── _nativescript-community_ui-material-snackbar.showSnack.html
│ ├── _nativescript-community_ui-material-textfield.initTextInputEditText.html
│ └── _nativescript-community_ui-material-textview.initTextInputEditText.html
├── hierarchy.html
├── index.html
├── interfaces
│ ├── _nativescript-community_ui-material-bottomnavigationbar.TabPressedEventData.html
│ ├── _nativescript-community_ui-material-bottomnavigationbar.TabReselectedEventData.html
│ ├── _nativescript-community_ui-material-bottomnavigationbar.TabSelectedEventData.html
│ ├── _nativescript-community_ui-material-bottomsheet.BottomSheetOptions.html
│ ├── _nativescript-community_ui-material-core.ShapeProperties.html
│ ├── _nativescript-community_ui-material-core.TypographyOptions.html
│ ├── _nativescript-community_ui-material-dialogs.LoginOptions.html
│ ├── _nativescript-community_ui-material-dialogs.MDCAlertControlerOptions.html
│ ├── _nativescript-community_ui-material-dialogs.PromptOptions.html
│ └── _nativescript-community_ui-material-snackbar.SnackBarOptions.html
├── media
│ └── CHANGELOG.md
├── modules.html
├── modules
│ ├── _nativescript-community_ui-material-activityindicator.html
│ ├── _nativescript-community_ui-material-bottomnavigationbar.html
│ ├── _nativescript-community_ui-material-bottomsheet.html
│ ├── _nativescript-community_ui-material-button.html
│ ├── _nativescript-community_ui-material-cardview.html
│ ├── _nativescript-community_ui-material-core.html
│ ├── _nativescript-community_ui-material-dialogs.html
│ ├── _nativescript-community_ui-material-floatingactionbutton.html
│ ├── _nativescript-community_ui-material-progress.html
│ ├── _nativescript-community_ui-material-ripple.html
│ ├── _nativescript-community_ui-material-slider.html
│ ├── _nativescript-community_ui-material-snackbar.html
│ ├── _nativescript-community_ui-material-speedial.html
│ ├── _nativescript-community_ui-material-switch.html
│ ├── _nativescript-community_ui-material-tabs.html
│ ├── _nativescript-community_ui-material-textfield.html
│ └── _nativescript-community_ui-material-textview.html
├── types
│ ├── _nativescript-community_ui-material-tabs.IOSTabBarItemsAlignment.html
│ ├── _nativescript-community_ui-material-textfield.PropType.html
│ ├── _nativescript-community_ui-material-textfield.TextFieldProperties.html
│ ├── _nativescript-community_ui-material-textview.PropType.html
│ └── _nativescript-community_ui-material-textview.TextViewProperties.html
└── variables
│ ├── _nativescript-community_ui-material-core.dynamicElevationOffsetProperty.html
│ ├── _nativescript-community_ui-material-core.elevationProperty.html
│ ├── _nativescript-community_ui-material-core.rippleColorAlphaProperty.html
│ ├── _nativescript-community_ui-material-core.rippleColorProperty.html
│ ├── _nativescript-community_ui-material-core.shapeProperty.html
│ ├── _nativescript-community_ui-material-core.themer-1.html
│ ├── _nativescript-community_ui-material-core.variantProperty.html
│ ├── _nativescript-community_ui-material-tabs.itemsProperty.html
│ ├── _nativescript-community_ui-material-tabs.selectedIndexProperty.html
│ └── _nativescript-community_ui-material-tabs.tabStripProperty.html
├── header.md
├── images
├── demo-activity-indicator.gif
├── demo-bottom-navigation.png
├── demo-bottom-sheet.png
├── demo-button.png
├── demo-cardview.png
├── demo-dialogs.png
├── demo-floatingactionbutton.png
├── demo-progress.gif
├── demo-ripple.gif
├── demo-slider.png
├── demo-snackbar.png
├── demo-speeddial.png
├── demo-tabs.png
├── demo-textfield.png
└── demo-textview.png
├── info.md
├── lerna.json
├── package.json
├── packages
├── activityindicator
│ ├── .npmignore
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── package.json
│ ├── platforms
│ │ ├── android
│ │ │ ├── native-api-usage.json
│ │ │ └── res
│ │ │ │ ├── layout
│ │ │ │ └── ns_material_circular_progress.xml
│ │ │ │ └── values
│ │ │ │ └── materialcircularprogressstyles.xml
│ │ └── ios
│ │ │ └── Podfile
│ └── tsconfig.json
├── bottom-navigation
│ ├── .npmignore
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── package.json
│ ├── platforms
│ │ └── ios
│ │ │ └── Podfile
│ └── tsconfig.json
├── bottomnavigationbar
│ ├── .npmignore
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── package.json
│ ├── platforms
│ │ └── ios
│ │ │ └── Podfile
│ └── tsconfig.json
├── bottomsheet
│ ├── .npmignore
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── package.json
│ ├── platforms
│ │ ├── android
│ │ │ ├── include.gradle
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── nativescript
│ │ │ │ │ └── material
│ │ │ │ │ └── bottomsheet
│ │ │ │ │ ├── BottomSheetDialog.java
│ │ │ │ │ └── BottomSheetDialogFragment.java
│ │ │ └── native-api-usage.json
│ │ └── ios
│ │ │ └── Podfile
│ └── tsconfig.json
├── button
│ ├── .npmignore
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── package.json
│ ├── platforms
│ │ ├── android
│ │ │ ├── include.gradle
│ │ │ ├── native-api-usage.json
│ │ │ └── res
│ │ │ │ ├── layout
│ │ │ │ ├── ns_material_button.xml
│ │ │ │ ├── ns_material_button_flat.xml
│ │ │ │ ├── ns_material_button_flat_icon.xml
│ │ │ │ ├── ns_material_button_icon.xml
│ │ │ │ ├── ns_material_button_outline.xml
│ │ │ │ ├── ns_material_button_outline_icon.xml
│ │ │ │ ├── ns_material_button_text.xml
│ │ │ │ └── ns_material_button_text_icon.xml
│ │ │ │ └── values
│ │ │ │ └── materialbuttonstyles.xml
│ │ └── ios
│ │ │ └── Podfile
│ └── tsconfig.json
├── cardview
│ ├── .npmignore
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── package.json
│ ├── platforms
│ │ ├── android
│ │ │ └── native-api-usage.json
│ │ └── ios
│ │ │ └── Podfile
│ └── tsconfig.json
├── core-tabs
│ ├── .npmignore
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── package.json
│ ├── platforms
│ │ └── android
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── include.gradle
│ │ │ └── java
│ │ │ └── com
│ │ │ └── nativescript
│ │ │ └── material
│ │ │ └── core
│ │ │ ├── BottomNavigationBar.java
│ │ │ ├── TabItemSpec.java
│ │ │ ├── TabStrip.java
│ │ │ └── TabsBar.java
│ └── tsconfig.json
├── core
│ ├── .npmignore
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── package.json
│ ├── platforms
│ │ ├── android
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── include.gradle
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── nativescript
│ │ │ │ │ └── material
│ │ │ │ │ └── core
│ │ │ │ │ └── Utils.java
│ │ │ ├── native-api-usage.json
│ │ │ └── res
│ │ │ │ └── layout
│ │ │ │ └── ns_material_page.xml
│ │ └── ios
│ │ │ └── Podfile
│ ├── tsconfig.hooks.json
│ └── tsconfig.json
├── dialogs
│ ├── .npmignore
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── package.json
│ ├── platforms
│ │ ├── android
│ │ │ ├── native-api-usage.json
│ │ │ └── res
│ │ │ │ └── values
│ │ │ │ └── dialogsstyle.xml
│ │ └── ios
│ │ │ └── Podfile
│ └── tsconfig.json
├── floatingactionbutton
│ ├── .npmignore
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── package.json
│ ├── platforms
│ │ ├── android
│ │ │ └── native-api-usage.json
│ │ └── ios
│ │ │ └── Podfile
│ └── tsconfig.json
├── progress
│ ├── .npmignore
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── package.json
│ ├── platforms
│ │ ├── android
│ │ │ ├── native-api-usage.json
│ │ │ └── res
│ │ │ │ ├── layout
│ │ │ │ └── ns_material_linear_progress.xml
│ │ │ │ └── values
│ │ │ │ └── materialprogressstyles.xml
│ │ └── ios
│ │ │ └── Podfile
│ └── tsconfig.json
├── ripple
│ ├── .npmignore
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── package.json
│ ├── platforms
│ │ ├── android
│ │ │ └── native-api-usage.json
│ │ └── ios
│ │ │ └── Podfile
│ └── tsconfig.json
├── slider
│ ├── .npmignore
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── package.json
│ ├── platforms
│ │ ├── android
│ │ │ └── native-api-usage.json
│ │ └── ios
│ │ │ └── Podfile
│ └── tsconfig.json
├── snackbar
│ ├── .npmignore
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── package.json
│ ├── platforms
│ │ ├── android
│ │ │ ├── include.gradle
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── nativescript
│ │ │ │ │ └── material
│ │ │ │ │ └── snackbar
│ │ │ │ │ └── SnackCallback.java
│ │ │ └── native-api-usage.json
│ │ └── ios
│ │ │ └── Podfile
│ └── tsconfig.json
├── speeddial
│ ├── .npmignore
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── package.json
│ └── tsconfig.json
├── switch
│ ├── .npmignore
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── package.json
│ ├── platforms
│ │ ├── android
│ │ │ └── native-api-usage.json
│ │ └── ios
│ │ │ └── Podfile
│ └── tsconfig.json
├── tabs
│ ├── .npmignore
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── package.json
│ ├── platforms
│ │ ├── android
│ │ │ └── native-api-usage.json
│ │ └── ios
│ │ │ └── Podfile
│ └── tsconfig.json
├── textfield
│ ├── .npmignore
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── package.json
│ ├── platforms
│ │ ├── android
│ │ │ ├── include.gradle
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── nativescript
│ │ │ │ │ └── material
│ │ │ │ │ └── textfield
│ │ │ │ │ └── TextInputEditText.java
│ │ │ ├── native-api-usage.json
│ │ │ └── res
│ │ │ │ ├── layout
│ │ │ │ ├── ns_material_text_field.xml
│ │ │ │ ├── ns_material_text_field_filled.xml
│ │ │ │ └── ns_material_text_field_outline.xml
│ │ │ │ └── values
│ │ │ │ └── textfieldstyles.xml
│ │ └── ios
│ │ │ └── Podfile
│ └── tsconfig.json
└── textview
│ ├── .npmignore
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── package.json
│ ├── platforms
│ ├── android
│ │ ├── include.gradle
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── nativescript
│ │ │ │ └── material
│ │ │ │ └── textview
│ │ │ │ └── TextViewInputEditText.java
│ │ ├── native-api-usage.json
│ │ └── res
│ │ │ ├── layout
│ │ │ ├── ns_material_text_view.xml
│ │ │ ├── ns_material_text_view_filled.xml
│ │ │ └── ns_material_text_view_outline.xml
│ │ │ └── values
│ │ │ └── textviewstyles.xml
│ └── ios
│ │ └── Podfile
│ └── tsconfig.json
├── pnpm-workspace.yaml
├── references.d.ts
├── schema
└── tns.xsd
├── src
├── activityindicator
│ ├── angular
│ │ ├── index.ts
│ │ ├── ng-package.json
│ │ ├── package.json
│ │ └── tsconfig.json
│ ├── index-common.ts
│ ├── index.android.ts
│ ├── index.d.ts
│ ├── index.ios.ts
│ └── vue
│ │ └── index.ts
├── appbar
│ ├── angular
│ │ ├── app-bar.ts
│ │ ├── appbar.directive.ts
│ │ ├── material-components.module.ts
│ │ ├── ng-package.json
│ │ ├── package.json
│ │ ├── references.d.ts
│ │ └── tsconfig.json
│ ├── appbar-common.ts
│ ├── appbar.d.ts
│ └── appbar.ios.ts
├── bottom-navigation
│ ├── angular
│ │ ├── index.ts
│ │ ├── ng-package.json
│ │ ├── package.json
│ │ └── tsconfig.json
│ ├── index.android.ts
│ ├── index.d.ts
│ ├── index.ios.ts
│ ├── react
│ │ └── index.ts
│ └── vue
│ │ ├── component.ts
│ │ └── index.ts
├── bottomnavigationbar
│ ├── angular
│ │ ├── directives.ts
│ │ ├── index.ts
│ │ ├── module.ts
│ │ ├── ng-package.json
│ │ ├── package.json
│ │ └── tsconfig.json
│ ├── bottomnavigationbar-common.ts
│ ├── bottomnavigationbar.android.ts
│ ├── bottomnavigationbar.d.ts
│ ├── bottomnavigationbar.ios.ts
│ └── vue
│ │ └── index.ts
├── bottomsheet
│ ├── angular
│ │ ├── bottomsheet.module.ts
│ │ ├── bottomsheet.service.ts
│ │ ├── index.ts
│ │ ├── ng-package.json
│ │ ├── package.json
│ │ └── tsconfig.json
│ ├── bottomsheet-common.ts
│ ├── bottomsheet.android.ts
│ ├── bottomsheet.d.ts
│ ├── bottomsheet.ios.ts
│ ├── svelte
│ │ └── index.ts
│ ├── vue
│ │ └── index.ts
│ └── vue3
│ │ └── index.ts
├── button
│ ├── angular
│ │ ├── index.ts
│ │ ├── ng-package.json
│ │ ├── package.json
│ │ └── tsconfig.json
│ ├── button-common.ts
│ ├── button.android.ts
│ ├── button.d.ts
│ ├── button.ios.ts
│ ├── svelte
│ │ └── index.ts
│ └── vue
│ │ └── index.ts
├── cardview
│ ├── angular
│ │ ├── index.ts
│ │ ├── ng-package.json
│ │ ├── package.json
│ │ └── tsconfig.json
│ ├── cardview-common.ts
│ ├── cardview.android.ts
│ ├── cardview.d.ts
│ ├── cardview.ios.ts
│ └── vue
│ │ └── index.ts
├── core-tabs
│ ├── react
│ │ └── index.ts
│ ├── tab-content-item
│ │ ├── index.android.ts
│ │ ├── index.d.ts
│ │ ├── index.ios.ts
│ │ └── tab-content-item-common.ts
│ ├── tab-navigation-base
│ │ └── index.ts
│ ├── tab-navigation
│ │ ├── index-common.ts
│ │ ├── index.android.ts
│ │ ├── index.d.ts
│ │ └── index.ios.ts
│ ├── tab-strip-item
│ │ └── index.ts
│ └── tab-strip
│ │ └── index.ts
├── core
│ ├── android
│ │ └── utils.ts
│ ├── cssproperties.ts
│ ├── index.android.ts
│ ├── index.common.ts
│ ├── index.d.ts
│ ├── index.ios.ts
│ └── textbase
│ │ └── cssproperties.ts
├── dialogs
│ ├── dialogs-common.ts
│ ├── dialogs.android.ts
│ ├── dialogs.d.ts
│ └── dialogs.ios.ts
├── floatingactionbutton
│ ├── angular
│ │ ├── index.ts
│ │ ├── ng-package.json
│ │ ├── package.json
│ │ └── tsconfig.json
│ ├── floatingactionbutton-common.ts
│ ├── floatingactionbutton.android.ts
│ ├── floatingactionbutton.d.ts
│ ├── floatingactionbutton.ios.ts
│ └── vue
│ │ └── index.ts
├── page
│ ├── page.android.ts
│ ├── page.d.ts
│ └── page.ios.ts
├── progress
│ ├── angular
│ │ ├── index.ts
│ │ ├── ng-package.json
│ │ ├── package.json
│ │ └── tsconfig.json
│ ├── progress-common.ts
│ ├── progress.android.ts
│ ├── progress.d.ts
│ ├── progress.ios.ts
│ └── vue
│ │ └── index.ts
├── references.d.ts
├── ripple
│ ├── angular
│ │ ├── index.ts
│ │ ├── ng-package.json
│ │ ├── package.json
│ │ └── tsconfig.json
│ ├── ripple-common.ts
│ ├── ripple.android.ts
│ ├── ripple.d.ts
│ ├── ripple.ios.ts
│ └── vue
│ │ └── index.ts
├── slider
│ ├── angular
│ │ ├── index.ts
│ │ ├── ng-package.json
│ │ ├── package.json
│ │ └── tsconfig.json
│ ├── cssproperties.ts
│ ├── slider-common.ts
│ ├── slider.android.ts
│ ├── slider.d.ts
│ ├── slider.ios.ts
│ └── vue
│ │ └── index.ts
├── snackbar
│ ├── snackbar-common.ts
│ ├── snackbar.android.ts
│ ├── snackbar.d.ts
│ └── snackbar.ios.ts
├── speeddial
│ ├── angular
│ │ ├── index.ts
│ │ ├── ng-package.json
│ │ ├── package.json
│ │ └── tsconfig.json
│ ├── index.ts
│ └── vue
│ │ └── index.ts
├── switch
│ ├── angular
│ │ ├── index.ts
│ │ ├── ng-package.json
│ │ ├── package.json
│ │ └── tsconfig.json
│ ├── index-common.ts
│ ├── index.android.ts
│ ├── index.d.ts
│ ├── index.ios.ts
│ └── vue
│ │ └── index.ts
├── tabs
│ ├── angular
│ │ ├── index.ts
│ │ ├── ng-package.json
│ │ ├── package.json
│ │ └── tsconfig.json
│ ├── index.android.ts
│ ├── index.d.ts
│ ├── index.ios.ts
│ ├── react
│ │ └── index.ts
│ └── vue
│ │ ├── component.ts
│ │ └── index.ts
├── textfield
│ ├── angular
│ │ ├── index.ts
│ │ ├── ng-package.json
│ │ ├── package.json
│ │ ├── textvalue-accessor.ts
│ │ └── tsconfig.json
│ ├── textfield.android.ts
│ ├── textfield.common.ts
│ ├── textfield.d.ts
│ ├── textfield.ios.old
│ ├── textfield.ios.ts
│ └── vue
│ │ └── index.ts
├── textview
│ ├── angular
│ │ ├── index.ts
│ │ ├── ng-package.json
│ │ ├── package.json
│ │ ├── textvalue-accessor.ts
│ │ └── tsconfig.json
│ ├── textview.android.ts
│ ├── textview.common.ts
│ ├── textview.d.ts
│ ├── textview.ios.ts
│ └── vue
│ │ └── index.ts
└── typings
│ ├── MaterialComponents.ios.d.ts
│ ├── MaterialTextField.ios.d.ts
│ ├── extensions.android.d.ts
│ ├── mdc.android.d.ts
│ └── mdc.ios.d.ts
├── svelte.config.js
├── tsconfig.json
├── tsconfig.vue3.json
└── yarn.lock
/.classpath:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | extends: './tools/.eslintrc.js'
3 | };
4 |
--------------------------------------------------------------------------------
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | github: [farfromrefug]
2 |
--------------------------------------------------------------------------------
/.github/issue_template.md:
--------------------------------------------------------------------------------
1 | ### Make sure to check the demo app(s) for sample usage
2 |
3 | ### Make sure to check the existing issues in this repository
4 |
5 | ### If the demo apps cannot help and there is no issue for your problem, tell us about it
6 | Please, ensure your title is less than 63 characters long and starts with a capital
7 | letter.
8 |
9 | ### Which platform(s) does your issue occur on?
10 | - iOS/Android/Both
11 | - iOS/Android versions
12 | - emulator or device. What type of device?
13 |
14 | ### Please, provide the following version numbers that your issue occurs with:
15 |
16 | - CLI: (run `tns --version` to fetch it)
17 | - Cross-platform modules: (check the 'version' attribute in the
18 | `node_modules/@nativescript/core/package.json` file in your project)
19 | - Runtime(s): (look for the `"tns-android"` and `"tns-ios"` properties in the `package.json` file of your project)
20 | - Plugin(s): (look for the version numbers in the `package.json` file of your
21 | project and paste your dependencies and devDependencies here)
22 |
23 | ### Please, tell us how to recreate the issue in as much detail as possible.
24 | Describe the steps to reproduce it.
25 |
26 | ### Is there any code involved?
27 | - provide a code example to recreate the problem
28 | - (EVEN BETTER) provide a .zip with application or refer to a repository with application where the problem is reproducible.
29 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # NativeScript
2 | hooks/
3 | node_modules/
4 | platforms
5 |
6 | # NativeScript Template
7 | *.js.map
8 | !ngcc.config.js
9 | !webpack.config.js
10 |
11 | # Logs
12 | logs
13 | *.log
14 | npm-debug.log*
15 | yarn-debug.log*
16 | yarn-error.log*
17 |
18 | # General
19 | .DS_Store
20 | .AppleDouble
21 | .LSOverride
22 | .idea
23 | .cloud
24 | .gradle
25 | .project
26 | .yarn
27 | .cxx
28 | tmp/
29 |
30 | !.eslintrc.js
31 | !.prettierrc.js
32 |
33 | !e2e/*.js
34 | !detox.config.js
35 | devices.js
36 |
37 | *.framework
38 | *.xcframework
39 | **/*.js.map
40 | src/**/*.js
41 | packages/**/*.js
42 | packages/**/*.d.ts
43 | bin
44 | build
45 | Pods
46 | !packages/*/platforms
47 | /packages/**/*.aar
48 | /packages/**/*.framework
49 | /packages/**/*.xcframework
50 | /demo-snippets/**/*.aar
51 | *.xcuserdatad
52 | /packages/README.md
53 | packages/**/*js.map
54 | packages/**/*js
55 | packages/angular
56 | packages/typings
57 | packages/**/angular/*.json
58 | packages/**/*.ngsummary.json
59 | packages/**/*.metadata.json
60 |
61 | .vscode/settings.json
62 |
63 | /blueprint.md
--------------------------------------------------------------------------------
/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "demo-react"]
2 | path = demo-react
3 | url = https://github.com/nativescript-community/plugin-seed-demo-react.git
4 | [submodule "demo-svelte"]
5 | path = demo-svelte
6 | url = https://github.com/nativescript-community/plugin-seed-demo-svelte.git
7 | [submodule "demo-ng"]
8 | path = demo-ng
9 | url = https://github.com/nativescript-community/plugin-seed-demo-ng.git
10 | [submodule "demo-vue"]
11 | path = demo-vue
12 | url = https://github.com/nativescript-community/plugin-seed-demo-vue.git
13 | [submodule "tools"]
14 | path = tools
15 | url = https://github.com/nativescript-community/plugin-seed-tools.git
16 | [submodule "demo-vue3"]
17 | path = demo-vue3
18 | url = https://github.com/nativescript-community/plugin-seed-demo-vue3.git
19 |
--------------------------------------------------------------------------------
/.npmrc:
--------------------------------------------------------------------------------
1 | shamefully-hoist=true
2 | public-hoist-pattern[]=*eslint*
3 | public-hoist-pattern[]=source-map-support
4 | public-hoist-pattern[]=ts-patch
5 | public-hoist-pattern[]=typescript
6 | public-hoist-pattern[]=cpy-cli
7 | strict-peer-dependencies=false
8 | shell-emulator=true
9 | auto-install-peers=false
10 | loglevel=error
11 | engine-strict=true
12 |
--------------------------------------------------------------------------------
/.prettierignore:
--------------------------------------------------------------------------------
1 | package-lock.json
2 | node_modules/
3 | plugin/
4 | docs/
5 |
--------------------------------------------------------------------------------
/.prettierrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | printWidth: 200,
3 | semi: true,
4 | tabWidth: 4,
5 | trailingComma: 'none',
6 | singleQuote: true
7 | };
8 |
--------------------------------------------------------------------------------
/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | nativescript-material
4 | Project nativescript-material created by Buildship.
5 |
6 |
7 |
8 |
9 | org.eclipse.jdt.core.javabuilder
10 |
11 |
12 |
13 |
14 | org.eclipse.buildship.core.gradleprojectbuilder
15 |
16 |
17 |
18 |
19 |
20 | org.eclipse.jdt.core.javanature
21 | org.eclipse.buildship.core.gradleprojectnature
22 |
23 |
24 |
25 | 1682616481632
26 |
27 | 30
28 |
29 | org.eclipse.core.resources.regexFilterMatcher
30 | node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__
31 |
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/.vscode/launch.json:
--------------------------------------------------------------------------------
1 | {
2 | // Use IntelliSense to learn about possible attributes.
3 | // Hover to view descriptions of existing attributes.
4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5 | "version": "0.2.0",
6 | "configurations": [
7 |
8 | {
9 | "name": "Launch on iOS",
10 | "type": "nativescript",
11 | "request": "launch",
12 | "platform": "ios",
13 | "appRoot": "${workspaceRoot}/demo-vue",
14 | "diagnosticLogging": false,
15 | "sourceMaps": true,
16 | "watch": true,
17 | "tnsArgs": ["--env.development"]
18 | },
19 | {
20 | "name": "Attach on iOS",
21 | "type": "nativescript",
22 | "request": "attach",
23 | "platform": "ios",
24 | "appRoot": "${workspaceRoot}/demo-vue",
25 | "sourceMaps": true,
26 | "watch": false
27 | },
28 | {
29 | "name": "Launch on Android",
30 | "type": "nativescript",
31 | "request": "launch",
32 | "platform": "android",
33 | "appRoot": "${workspaceRoot}/demo-vue",
34 | "sourceMaps": true,
35 | "watch": true
36 | },
37 | {
38 | "name": "Attach on Android",
39 | "type": "nativescript",
40 | "request": "attach",
41 | "platform": "android",
42 | "appRoot": "${workspaceRoot}/demo-vue",
43 | "sourceMaps": true,
44 | "watch": false
45 | }
46 | ]
47 | }
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "files.exclude": {
3 | "schema": true
4 | },
5 | "search.exclude": {
6 | "**/platforms": false,
7 | "packages/**/platforms": false
8 | },
9 | "xml.fileAssociations": [
10 | {
11 | "systemId": "/Volumes/data/dev/nativescript/nativescript-material-components/schema/tns.xsd",
12 | "pattern": "**/**/*.xml"
13 | }
14 | ],
15 | "editor.snippetSuggestions": "top",
16 | "NE.enable.snippets": true,
17 | "java.configuration.updateBuildConfiguration": "disabled",
18 | "typescript.tsdk": "node_modules/typescript/lib"
19 | }
20 |
--------------------------------------------------------------------------------
/.vscode/tasks.json:
--------------------------------------------------------------------------------
1 | {
2 | // See https://go.microsoft.com/fwlink/?LinkId=733558
3 | // for the documentation about the tasks.json format
4 | "version": "2.0.0",
5 | "tasks": [
6 | {
7 | "type": "npm",
8 | "script": "build.plugin",
9 | "path": "demo/platforms/ios/build/emulator/demo.app/app/",
10 | "problemMatcher": [
11 | "$lessc"
12 | ]
13 | }
14 | ]
15 | }
--------------------------------------------------------------------------------
/.yarnrc.yml:
--------------------------------------------------------------------------------
1 | compressionLevel: mixed
2 |
3 | nmHoistingLimits: workspaces
4 |
5 | nodeLinker: node-modules
6 |
7 | yarnPath: tools/.yarn/releases/yarn-4.0.1.cjs
8 |
--------------------------------------------------------------------------------
/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'java'
2 |
3 | // Use maven repository
4 | repositories {
5 | mavenCentral()
6 | google()
7 | }
8 | dependencies {
9 | implementation files('/Volumes/dev/androidSDK/platforms/android-28/android.jar')
10 | implementation "androidx.annotation:annotation:1.1.0"
11 | implementation "androidx.viewpager:viewpager:1.0.0"
12 | }
13 | sourceSets {
14 | main {
15 | java {
16 | srcDirs = ["packages/core/platforms/android/java"]
17 | }
18 | }
19 | }
--------------------------------------------------------------------------------
/config.json:
--------------------------------------------------------------------------------
1 | {
2 | "readme": true,
3 | "angular": true,
4 | "demos": [
5 | "ng",
6 | "vue",
7 | "svelte",
8 | "react"
9 | ]
10 | }
--------------------------------------------------------------------------------
/demo-snippets/App_Resources/Android/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
17 |
18 |
20 |
21 |
22 |
29 |
30 |
32 |
33 |
34 |
39 |
40 |
42 |
43 |
--------------------------------------------------------------------------------
/demo-snippets/ng/activity-indicator/activity-indicator.component.html:
--------------------------------------------------------------------------------
1 |
7 |
8 |
12 |
16 |
20 |
24 |
25 |
--------------------------------------------------------------------------------
/demo-snippets/ng/activity-indicator/activity-indicator.component.ts:
--------------------------------------------------------------------------------
1 | import { Component, OnInit } from '@angular/core';
2 |
3 | @Component({
4 | selector: 'ns-activity-indicator',
5 | templateUrl: './activity-indicator.component.html',
6 | moduleId: module.id
7 | })
8 | export class ActivityIndicatorComponent implements OnInit {
9 | constructor() {}
10 |
11 | ngOnInit() {}
12 | }
13 |
--------------------------------------------------------------------------------
/demo-snippets/ng/activity-indicator/activity-indicator.module.ts:
--------------------------------------------------------------------------------
1 | import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';
2 | import { NativeScriptCommonModule } from '@nativescript/angular';
3 | import { NativeScriptMaterialActivityIndicatorModule } from '@nativescript-community/ui-material-activityindicator/angular';
4 | import { ActivityIndicatorComponent } from './activity-indicator.component';
5 |
6 | @NgModule({
7 | declarations: [ActivityIndicatorComponent],
8 | imports: [NativeScriptCommonModule, NativeScriptMaterialActivityIndicatorModule],
9 | schemas: [NO_ERRORS_SCHEMA]
10 | })
11 | export class ActivityIndicatorModule {}
12 |
--------------------------------------------------------------------------------
/demo-snippets/ng/bottom-navigation-bar/bottom-navigation-bar.component.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
10 |
11 |
12 |
21 |
26 |
31 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/demo-snippets/ng/bottom-navigation-bar/bottom-navigation-bar.component.ts:
--------------------------------------------------------------------------------
1 | import { Component, ElementRef, ViewChild } from '@angular/core';
2 | import { BottomNavigationBar, TabPressedEventData, TabReselectedEventData, TabSelectedEventData } from '@nativescript-community/ui-material-bottomnavigationbar';
3 |
4 | @Component({
5 | moduleId: module.id,
6 | selector: 'ns-bottom-navigation-bar',
7 | templateUrl: './bottom-navigation-bar.component.html'
8 | })
9 | export class BottomNavigationBarComponent {
10 | @ViewChild('bottomNavigationBar', { read: ElementRef, static: false })
11 | private _bottomNavigationBar: ElementRef;
12 |
13 | onbottomNavigationBarLoaded(): void {
14 | const bottomNavigationBar = this._bottomNavigationBar.nativeElement;
15 | bottomNavigationBar.showBadge(1);
16 | bottomNavigationBar.showBadge(2, 4);
17 | }
18 |
19 | onBottomNavigationTabPressed(args: TabPressedEventData): void {
20 | alert('This tab has isSelectable: false, and should be used to perform actions');
21 | console.log(`pressed tab index: ${args.index}`);
22 | }
23 |
24 | onBottomNavigationTabSelected(args: TabSelectedEventData): void {
25 | console.log(`old tab index: ${args.oldIndex}`);
26 | console.log(`selected tab index: ${args.newIndex}`);
27 | }
28 |
29 | onBottomNavigationTabReselected(args: TabReselectedEventData): void {
30 | alert('Tab Reselected');
31 | console.log(`reselected tab index: ${args.index}`);
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/demo-snippets/ng/bottom-navigation-bar/bottom-navigation-bar.module.ts:
--------------------------------------------------------------------------------
1 | import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';
2 | import { NativeScriptCommonModule } from '@nativescript/angular';
3 | import { NativeScriptMaterialBottomNavigationBarModule } from '@nativescript-community/ui-material-bottomnavigationbar/angular';
4 |
5 | import { BottomNavigationBarComponent } from './bottom-navigation-bar.component';
6 | import { FirstTabComponent } from './first-tab/first-tab.component';
7 | import { ThirdTabComponent } from './third-tab/third-tab.component';
8 |
9 | @NgModule({
10 | imports: [NativeScriptCommonModule, NativeScriptMaterialBottomNavigationBarModule],
11 | declarations: [BottomNavigationBarComponent, FirstTabComponent, ThirdTabComponent],
12 | schemas: [NO_ERRORS_SCHEMA]
13 | })
14 | export class BottomNavigationBarModule {}
15 |
--------------------------------------------------------------------------------
/demo-snippets/ng/bottom-navigation-bar/first-tab/first-tab.component.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/demo-snippets/ng/bottom-navigation-bar/first-tab/first-tab.component.ts:
--------------------------------------------------------------------------------
1 | import { AfterViewInit, Component } from '@angular/core';
2 |
3 | @Component({
4 | moduleId: module.id,
5 | selector: 'ns-first-tab',
6 | templateUrl: './first-tab.component.html'
7 | })
8 | export class FirstTabComponent implements AfterViewInit {
9 | ngAfterViewInit() {}
10 | }
11 |
--------------------------------------------------------------------------------
/demo-snippets/ng/bottom-navigation-bar/third-tab/third-tab.component.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/demo-snippets/ng/bottom-navigation-bar/third-tab/third-tab.component.ts:
--------------------------------------------------------------------------------
1 | import { AfterViewInit, Component } from '@angular/core';
2 |
3 | @Component({
4 | moduleId: module.id,
5 | selector: 'ns-third-tab',
6 | templateUrl: './third-tab.component.html'
7 | })
8 | export class ThirdTabComponent implements AfterViewInit {
9 | ngAfterViewInit() {}
10 | }
11 |
--------------------------------------------------------------------------------
/demo-snippets/ng/bottom-sheet/bottom-sheet.component.html:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
--------------------------------------------------------------------------------
/demo-snippets/ng/bottom-sheet/bottom-sheet.component.ts:
--------------------------------------------------------------------------------
1 | import { Component, OnInit, ViewContainerRef } from '@angular/core';
2 | import { BottomSheetOptions, BottomSheetService } from '@nativescript-community/ui-material-bottomsheet/angular';
3 | import { LoginOptionsComponent } from './login-options.component';
4 |
5 | @Component({
6 | selector: 'ns-bottom-sheet',
7 | templateUrl: './bottom-sheet.component.html',
8 | moduleId: module.id
9 | })
10 | export class BottomSheetComponent implements OnInit {
11 | constructor(private bottomSheet: BottomSheetService, private containerRef: ViewContainerRef) {}
12 |
13 | ngOnInit() {}
14 |
15 | showLoginOptions() {
16 | const options: BottomSheetOptions = {
17 | viewContainerRef: this.containerRef,
18 | context: ['Facebook', 'Google', 'Twitter']
19 | };
20 |
21 | this.bottomSheet.show(LoginOptionsComponent, options).subscribe(result => {
22 | console.log('Option selected:', result);
23 | // We need to wait until the bottom sheet disappears before show an alert or any dialog
24 | setTimeout(() => alert(`Option selected: ${result}`), 300);
25 | });
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/demo-snippets/ng/bottom-sheet/bottom-sheet.module.ts:
--------------------------------------------------------------------------------
1 | import { NO_ERRORS_SCHEMA, NgModule } from '@angular/core';
2 | import { NativeScriptCommonModule } from '@nativescript/angular';
3 | import { NativeScriptMaterialBottomSheetModule } from '@nativescript-community/ui-material-bottomsheet/angular';
4 |
5 | import { LoginOptionsComponent } from './login-options.component';
6 | import { BottomSheetComponent } from './bottom-sheet.component';
7 |
8 | @NgModule({
9 | declarations: [BottomSheetComponent, LoginOptionsComponent],
10 | // entryComponents: [LoginOptionsComponent],
11 | // Recommendation: The NativeScriptMaterialBottomSheetModule should be imported in your app.module
12 | // Right now the Module doesn't work well with HMR
13 | // so if you are having troubles enable the legacy workflow in your nsconfig.json
14 | imports: [NativeScriptCommonModule, NativeScriptMaterialBottomSheetModule.forRoot()],
15 | schemas: [NO_ERRORS_SCHEMA]
16 | })
17 | export class BottomSheetModule {}
18 |
--------------------------------------------------------------------------------
/demo-snippets/ng/bottom-sheet/login-options.component.html:
--------------------------------------------------------------------------------
1 |
8 |
9 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/demo-snippets/ng/bottom-sheet/login-options.component.ts:
--------------------------------------------------------------------------------
1 | import { Component, OnInit } from '@angular/core';
2 | import { BottomSheetParams } from '@nativescript-community/ui-material-bottomsheet/angular';
3 | import { ItemEventData } from '@nativescript/core/ui/list-view';
4 |
5 | @Component({
6 | selector: 'ns-login-options',
7 | templateUrl: 'login-options.component.html'
8 | })
9 | export class LoginOptionsComponent implements OnInit {
10 | options: string[];
11 |
12 | constructor(private params: BottomSheetParams) {}
13 |
14 | ngOnInit() {
15 | this.options = this.params.context;
16 | }
17 |
18 | onTap({ index }: ItemEventData) {
19 | this.params.closeCallback(this.options[index]);
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/demo-snippets/ng/buttons/buttons.component.ts:
--------------------------------------------------------------------------------
1 | import { Component, OnInit } from '@angular/core';
2 | import { EventData } from '@nativescript/core/data/observable';
3 |
4 | @Component({
5 | selector: 'ns-buttons',
6 | templateUrl: './buttons.component.html',
7 | moduleId: module.id
8 | })
9 | export class ButtonsComponent implements OnInit {
10 | ngOnInit() {}
11 |
12 | onTap(args: EventData) {
13 | console.log('Button clicked', args.eventName);
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/demo-snippets/ng/buttons/buttons.module.ts:
--------------------------------------------------------------------------------
1 | import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';
2 | import { NativeScriptCommonModule } from '@nativescript/angular';
3 | import { NativeScriptMaterialButtonModule } from '@nativescript-community/ui-material-button/angular';
4 | import { ButtonsComponent } from './buttons.component';
5 |
6 | @NgModule({
7 | declarations: [ButtonsComponent],
8 | imports: [NativeScriptCommonModule, NativeScriptMaterialButtonModule],
9 | schemas: [NO_ERRORS_SCHEMA]
10 | })
11 | export class ButtonsModule {}
12 |
--------------------------------------------------------------------------------
/demo-snippets/ng/cards/cards.component.ts:
--------------------------------------------------------------------------------
1 | import { Component, OnInit } from '@angular/core';
2 |
3 | @Component({
4 | selector: 'ns-cards',
5 | templateUrl: './cards.component.html',
6 | moduleId: module.id
7 | })
8 | export class CardsComponent implements OnInit {
9 | constructor() {}
10 |
11 | ngOnInit() {}
12 | }
13 |
--------------------------------------------------------------------------------
/demo-snippets/ng/cards/cards.module.ts:
--------------------------------------------------------------------------------
1 | import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';
2 | import { NativeScriptCommonModule } from '@nativescript/angular';
3 | import { NativeScriptMaterialCardViewModule } from '@nativescript-community/ui-material-cardview/angular';
4 | import { CardsComponent } from './cards.component';
5 |
6 | @NgModule({
7 | declarations: [CardsComponent],
8 | imports: [NativeScriptCommonModule, NativeScriptMaterialCardViewModule],
9 | schemas: [NO_ERRORS_SCHEMA]
10 | })
11 | export class CardsModule {}
12 |
--------------------------------------------------------------------------------
/demo-snippets/ng/progress/progress.component.html:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
--------------------------------------------------------------------------------
/demo-snippets/ng/progress/progress.component.ts:
--------------------------------------------------------------------------------
1 | import { Component, OnInit } from '@angular/core';
2 | import { Progress } from '@nativescript-community/ui-material-progress';
3 |
4 | @Component({
5 | selector: 'ns-progress',
6 | templateUrl: './progress.component.html',
7 | moduleId: module.id
8 | })
9 | export class ProgressComponent implements OnInit {
10 | public progressValue: number;
11 |
12 | ngOnInit() {
13 | this.progressValue = 25;
14 |
15 | setInterval(() => {
16 | this.progressValue += 1;
17 | }, 300);
18 | }
19 |
20 | onValueChanged(args) {
21 | let progressBar =