├── .gitattributes ├── .gitignore ├── Docs ├── create_template_db.png ├── create_template_site_2.png ├── create_template_site_3.png └── create_template_web.png ├── LICENSE ├── README.md └── src ├── .nuget ├── NuGet.Config ├── NuGet.exe └── NuGet.targets ├── .vs └── AbpCompanyName.AbpProjectName │ ├── DesignTimeBuild │ └── .dtbcache │ └── v15 │ └── sqlite3 │ └── storage.ide ├── AbpCompanyName.AbpProjectName.Application ├── AbpCompanyName.AbpProjectName.Application.csproj ├── AbpProjectNameAppServiceBase.cs ├── AbpProjectNameApplicationModule.cs ├── FodyWeavers.xml ├── FodyWeavers.xsd ├── Properties │ └── AssemblyInfo.cs ├── app.config └── packages.config ├── AbpCompanyName.AbpProjectName.Core ├── AbpCompanyName.AbpProjectName.Core.csproj ├── AbpProjectNameConsts.cs ├── AbpProjectNameCoreModule.cs ├── FodyWeavers.xml ├── FodyWeavers.xsd ├── Properties │ └── AssemblyInfo.cs ├── app.config └── packages.config ├── AbpCompanyName.AbpProjectName.EntityFramework ├── AbpCompanyName.AbpProjectName.EntityFramework.csproj ├── AbpProjectNameDataModule.cs ├── App.config ├── EntityFramework │ ├── AbpProjectNameDbContext.cs │ └── Repositories │ │ └── AbpProjectNameRepositoryBase.cs ├── FodyWeavers.xml ├── FodyWeavers.xsd ├── Migrations │ └── Configuration.cs ├── Properties │ └── AssemblyInfo.cs └── packages.config ├── AbpCompanyName.AbpProjectName.NHibernate ├── AbpCompanyName.AbpProjectName.NHibernate.csproj ├── AbpProjectNameDataModule.cs ├── DbMigrations │ └── VersionTable.cs ├── FodyWeavers.xml ├── FodyWeavers.xsd ├── NHibernate │ └── Repositories │ │ └── AbpProjectNameRepositoryBase.cs ├── Properties │ └── AssemblyInfo.cs ├── RunMigrations.bat ├── app.config └── packages.config ├── AbpCompanyName.AbpProjectName.WebApi ├── AbpCompanyName.AbpProjectName.WebApi.csproj ├── AbpProjectNameWebApiModule.cs ├── FodyWeavers.xml ├── FodyWeavers.xsd ├── Properties │ └── AssemblyInfo.cs ├── app.config └── packages.config ├── AbpCompanyName.AbpProjectName.WebMpa ├── Abp │ └── Framework │ │ ├── scripts │ │ ├── abp.d.ts │ │ ├── abp.js │ │ ├── abp.min.js │ │ ├── libs │ │ │ ├── abp.blockUI.js │ │ │ ├── abp.blockUI.min.js │ │ │ ├── abp.jquery.d.ts │ │ │ ├── abp.jquery.js │ │ │ ├── abp.jquery.min.js │ │ │ ├── abp.jtable.js │ │ │ ├── abp.jtable.min.js │ │ │ ├── abp.moment.js │ │ │ ├── abp.moment.min.js │ │ │ ├── abp.signalr-client.js │ │ │ ├── abp.signalr-client.min.js │ │ │ ├── abp.signalr.d.ts │ │ │ ├── abp.signalr.js │ │ │ ├── abp.signalr.min.js │ │ │ ├── abp.spin.js │ │ │ ├── abp.spin.min.js │ │ │ ├── abp.sweet-alert.js │ │ │ ├── abp.sweet-alert.min.js │ │ │ ├── abp.toastr.js │ │ │ ├── abp.toastr.min.js │ │ │ ├── angularjs │ │ │ │ ├── abp.ng.js │ │ │ │ └── abp.ng.min.js │ │ │ └── requirejs │ │ │ │ └── plugins │ │ │ │ ├── service.js │ │ │ │ └── service.min.js │ │ └── utils │ │ │ ├── ie10fix.js │ │ │ └── ie10fix.min.js │ │ └── styles │ │ ├── abp.css │ │ ├── abp.css.map │ │ ├── abp.less │ │ ├── abp.min.css │ │ ├── abp.mixings.css │ │ ├── abp.mixings.css.map │ │ ├── abp.mixings.less │ │ ├── abp.mixings.min.css │ │ └── utils │ │ └── ie10fix.css ├── AbpCompanyName.AbpProjectName.WebMpa.csproj ├── App_Start │ ├── AbpProjectNameNavigationProvider.cs │ ├── AbpProjectNameWebModule.cs │ ├── BundleConfig.cs │ └── RouteConfig.cs ├── Content │ ├── bootstrap-cosmo.min.css │ ├── bootstrap-grid.css │ ├── bootstrap-grid.css.map │ ├── bootstrap-grid.min.css │ ├── bootstrap-grid.min.css.map │ ├── bootstrap-reboot.css │ ├── bootstrap-reboot.css.map │ ├── bootstrap-reboot.min.css │ ├── bootstrap-reboot.min.css.map │ ├── bootstrap.css │ ├── bootstrap.css.map │ ├── bootstrap.min.css │ ├── bootstrap.min.css.map │ ├── flags │ │ ├── famfamfam-flags.css │ │ └── famfamfam-flags.png │ ├── font-awesome.css │ ├── font-awesome.min.css │ ├── themes │ │ └── base │ │ │ ├── accordion.css │ │ │ ├── all.css │ │ │ ├── autocomplete.css │ │ │ ├── base.css │ │ │ ├── button.css │ │ │ ├── core.css │ │ │ ├── datepicker.css │ │ │ ├── dialog.css │ │ │ ├── draggable.css │ │ │ ├── images │ │ │ ├── ui-bg_flat_0_aaaaaa_40x100.png │ │ │ ├── ui-bg_flat_75_ffffff_40x100.png │ │ │ ├── ui-bg_glass_55_fbf9ee_1x400.png │ │ │ ├── ui-bg_glass_65_ffffff_1x400.png │ │ │ ├── ui-bg_glass_75_dadada_1x400.png │ │ │ ├── ui-bg_glass_75_e6e6e6_1x400.png │ │ │ ├── ui-bg_glass_95_fef1ec_1x400.png │ │ │ ├── ui-bg_highlight-soft_75_cccccc_1x100.png │ │ │ ├── ui-icons_222222_256x240.png │ │ │ ├── ui-icons_2e83ff_256x240.png │ │ │ ├── ui-icons_444444_256x240.png │ │ │ ├── ui-icons_454545_256x240.png │ │ │ ├── ui-icons_555555_256x240.png │ │ │ ├── ui-icons_777620_256x240.png │ │ │ ├── ui-icons_777777_256x240.png │ │ │ ├── ui-icons_888888_256x240.png │ │ │ ├── ui-icons_cc0000_256x240.png │ │ │ ├── ui-icons_cd0a0a_256x240.png │ │ │ └── ui-icons_ffffff_256x240.png │ │ │ ├── jquery-ui.css │ │ │ ├── jquery-ui.min.css │ │ │ ├── menu.css │ │ │ ├── progressbar.css │ │ │ ├── resizable.css │ │ │ ├── selectable.css │ │ │ ├── selectmenu.css │ │ │ ├── slider.css │ │ │ ├── sortable.css │ │ │ ├── spinner.css │ │ │ ├── tabs.css │ │ │ ├── theme.css │ │ │ └── tooltip.css │ ├── toastr.css │ ├── toastr.less │ ├── toastr.min.css │ └── toastr.scss ├── Controllers │ ├── AboutController.cs │ ├── AbpProjectNameControllerBase.cs │ ├── HomeController.cs │ └── LayoutController.cs ├── FodyWeavers.xml ├── FodyWeavers.xsd ├── Global.asax ├── Global.asax.cs ├── Localization │ └── AbpProjectName │ │ ├── AbpProjectName-zh-CN.xml │ │ ├── AbpProjectName.ja.xml │ │ ├── AbpProjectName.tr.xml │ │ └── AbpProjectName.xml ├── Models │ └── Layout │ │ ├── LanguageSelectionViewModel.cs │ │ └── TopMenuViewModel.cs ├── Properties │ └── AssemblyInfo.cs ├── Scripts │ ├── README.md │ ├── bootstrap.bundle.js │ ├── bootstrap.bundle.js.map │ ├── bootstrap.bundle.min.js │ ├── bootstrap.bundle.min.js.map │ ├── bootstrap.js │ ├── bootstrap.js.map │ ├── bootstrap.min.js │ ├── bootstrap.min.js.map │ ├── esm │ │ ├── popper-utils.js │ │ ├── popper-utils.js.map │ │ ├── popper-utils.min.js │ │ ├── popper-utils.min.js.map │ │ ├── popper.js │ │ ├── popper.js.map │ │ ├── popper.min.js │ │ └── popper.min.js.map │ ├── index.d.ts │ ├── index.js.flow │ ├── jquery-3.6.0.intellisense.js │ ├── jquery-3.6.0.js │ ├── jquery-3.6.0.min.js │ ├── jquery-3.6.0.min.map │ ├── jquery-3.6.0.slim.js │ ├── jquery-3.6.0.slim.min.js │ ├── jquery-3.6.0.slim.min.map │ ├── jquery-ui-1.13.0.js │ ├── jquery-ui-1.13.0.min.js │ ├── jquery.blockUI.js │ ├── jquery.validate-vsdoc.js │ ├── jquery.validate.js │ ├── jquery.validate.min.js │ ├── jquery.validate.unobtrusive.js │ ├── jquery.validate.unobtrusive.min.js │ ├── json2.js │ ├── json2.min.js │ ├── modernizr-2.8.3.js │ ├── moment-with-locales.js │ ├── moment-with-locales.min.js │ ├── moment-with-locales.min.js.map │ ├── moment.js │ ├── moment.min.js │ ├── moment.min.js.map │ ├── others │ │ ├── html5shiv.js │ │ ├── respond.min.js │ │ ├── respond.src.js │ │ └── spinjs │ │ │ ├── jquery.spin.js │ │ │ └── spin.js │ ├── popper-utils.js │ ├── popper-utils.js.map │ ├── popper-utils.min.js │ ├── popper-utils.min.js.map │ ├── popper.js │ ├── popper.js.map │ ├── popper.min.js │ ├── popper.min.js.map │ ├── src │ │ ├── index.js │ │ ├── methods │ │ │ ├── defaults.js │ │ │ ├── destroy.js │ │ │ ├── disableEventListeners.js │ │ │ ├── enableEventListeners.js │ │ │ ├── placements.js │ │ │ └── update.js │ │ ├── modifiers │ │ │ ├── applyStyle.js │ │ │ ├── arrow.js │ │ │ ├── computeStyle.js │ │ │ ├── flip.js │ │ │ ├── hide.js │ │ │ ├── index.js │ │ │ ├── inner.js │ │ │ ├── keepTogether.js │ │ │ ├── offset.js │ │ │ ├── preventOverflow.js │ │ │ └── shift.js │ │ └── utils │ │ │ ├── clockwise.js │ │ │ ├── computeAutoPlacement.js │ │ │ ├── debounce.js │ │ │ ├── find.js │ │ │ ├── findCommonOffsetParent.js │ │ │ ├── findIndex.js │ │ │ ├── getBordersSize.js │ │ │ ├── getBoundaries.js │ │ │ ├── getBoundingClientRect.js │ │ │ ├── getClientRect.js │ │ │ ├── getFixedPositionOffsetParent.js │ │ │ ├── getOffsetParent.js │ │ │ ├── getOffsetRect.js │ │ │ ├── getOffsetRectRelativeToArbitraryNode.js │ │ │ ├── getOppositePlacement.js │ │ │ ├── getOppositeVariation.js │ │ │ ├── getOuterSizes.js │ │ │ ├── getParentNode.js │ │ │ ├── getPopperOffsets.js │ │ │ ├── getReferenceNode.js │ │ │ ├── getReferenceOffsets.js │ │ │ ├── getRoot.js │ │ │ ├── getRoundedOffsets.js │ │ │ ├── getScroll.js │ │ │ ├── getScrollParent.js │ │ │ ├── getStyleComputedProperty.js │ │ │ ├── getSupportedPropertyName.js │ │ │ ├── getViewportOffsetRectRelativeToArtbitraryNode.js │ │ │ ├── getWindow.js │ │ │ ├── getWindowSizes.js │ │ │ ├── includeScroll.js │ │ │ ├── index.js │ │ │ ├── isBrowser.js │ │ │ ├── isFixed.js │ │ │ ├── isFunction.js │ │ │ ├── isIE.js │ │ │ ├── isModifierEnabled.js │ │ │ ├── isModifierRequired.js │ │ │ ├── isNumeric.js │ │ │ ├── isOffsetContainer.js │ │ │ ├── removeEventListeners.js │ │ │ ├── runModifiers.js │ │ │ ├── setAttributes.js │ │ │ ├── setStyles.js │ │ │ └── setupEventListeners.js │ ├── sweetalert │ │ ├── ie9.css │ │ ├── sweet-alert.css │ │ ├── sweet-alert.html │ │ ├── sweet-alert.js │ │ ├── sweet-alert.min.js │ │ └── sweet-alert.scss │ ├── toastr.js │ ├── toastr.min.js │ └── umd │ │ ├── popper-utils.js │ │ ├── popper-utils.js.map │ │ ├── popper-utils.min.js │ │ ├── popper-utils.min.js.map │ │ ├── popper.js │ │ ├── popper.js.flow │ │ ├── popper.js.map │ │ ├── popper.min.js │ │ └── popper.min.js.map ├── Views │ ├── About │ │ └── Index.cshtml │ ├── AbpProjectNameWebViewPageBase.cs │ ├── Home │ │ └── Index.cshtml │ ├── Layout │ │ ├── _LanguageSelection.cshtml │ │ └── _TopMenu.cshtml │ ├── Shared │ │ ├── Error.cshtml │ │ ├── _Layout.cshtml │ │ └── _TopBar.cshtml │ ├── UrlChecker.cs │ ├── _ViewStart.cshtml │ └── web.config ├── Web.Debug.config ├── Web.Release.config ├── Web.config ├── css │ ├── main.css │ ├── main.css.map │ ├── main.less │ └── main.min.css ├── favicon.ico ├── fonts │ ├── FontAwesome.otf │ ├── fontawesome-webfont.eot │ ├── fontawesome-webfont.svg │ ├── fontawesome-webfont.ttf │ ├── fontawesome-webfont.woff │ └── fontawesome-webfont.woff2 ├── images │ └── abp-logo.png ├── js │ └── main.js ├── log4net.Production.config ├── log4net.config └── packages.config ├── AbpCompanyName.AbpProjectName.WebSpaAngular ├── Abp │ └── Framework │ │ ├── scripts │ │ ├── abp.d.ts │ │ ├── abp.js │ │ ├── abp.min.js │ │ ├── libs │ │ │ ├── abp.blockUI.js │ │ │ ├── abp.blockUI.min.js │ │ │ ├── abp.jquery.d.ts │ │ │ ├── abp.jquery.js │ │ │ ├── abp.jquery.min.js │ │ │ ├── abp.jtable.js │ │ │ ├── abp.jtable.min.js │ │ │ ├── abp.moment.js │ │ │ ├── abp.moment.min.js │ │ │ ├── abp.signalr-client.js │ │ │ ├── abp.signalr-client.min.js │ │ │ ├── abp.signalr.d.ts │ │ │ ├── abp.signalr.js │ │ │ ├── abp.signalr.min.js │ │ │ ├── abp.spin.js │ │ │ ├── abp.spin.min.js │ │ │ ├── abp.sweet-alert.js │ │ │ ├── abp.sweet-alert.min.js │ │ │ ├── abp.toastr.js │ │ │ ├── abp.toastr.min.js │ │ │ ├── angularjs │ │ │ │ ├── abp.ng.js │ │ │ │ └── abp.ng.min.js │ │ │ └── requirejs │ │ │ │ └── plugins │ │ │ │ ├── service.js │ │ │ │ └── service.min.js │ │ └── utils │ │ │ ├── ie10fix.js │ │ │ └── ie10fix.min.js │ │ └── styles │ │ ├── abp.css │ │ ├── abp.css.map │ │ ├── abp.less │ │ ├── abp.min.css │ │ ├── abp.mixings.css │ │ ├── abp.mixings.css.map │ │ ├── abp.mixings.less │ │ ├── abp.mixings.min.css │ │ └── utils │ │ └── ie10fix.css ├── AbpCompanyName.AbpProjectName.WebSpaAngular.csproj ├── App │ └── Main │ │ ├── app.js │ │ ├── images │ │ └── abp-logo.png │ │ ├── main.css │ │ ├── main.less │ │ ├── main.min.css │ │ ├── views │ │ ├── about │ │ │ ├── about.cshtml │ │ │ └── about.js │ │ ├── home │ │ │ ├── home.cshtml │ │ │ └── home.js │ │ └── layout │ │ │ ├── header.cshtml │ │ │ ├── header.js │ │ │ ├── layout.cshtml │ │ │ └── layout.js │ │ └── web.config ├── App_Start │ ├── AbpProjectNameNavigationProvider.cs │ ├── AbpProjectNameWebModule.cs │ ├── BundleConfig.cs │ └── RouteConfig.cs ├── Content │ ├── bootstrap-cosmo.min.css │ ├── bootstrap-grid.css │ ├── bootstrap-grid.css.map │ ├── bootstrap-grid.min.css │ ├── bootstrap-grid.min.css.map │ ├── bootstrap-reboot.css │ ├── bootstrap-reboot.css.map │ ├── bootstrap-reboot.min.css │ ├── bootstrap-reboot.min.css.map │ ├── bootstrap.css │ ├── bootstrap.css.map │ ├── bootstrap.min.css │ ├── bootstrap.min.css.map │ ├── flags │ │ ├── famfamfam-flags.css │ │ └── famfamfam-flags.png │ ├── font-awesome.css │ ├── font-awesome.min.css │ ├── themes │ │ └── base │ │ │ ├── accordion.css │ │ │ ├── all.css │ │ │ ├── autocomplete.css │ │ │ ├── base.css │ │ │ ├── button.css │ │ │ ├── core.css │ │ │ ├── datepicker.css │ │ │ ├── dialog.css │ │ │ ├── draggable.css │ │ │ ├── images │ │ │ ├── ui-bg_flat_0_aaaaaa_40x100.png │ │ │ ├── ui-bg_flat_75_ffffff_40x100.png │ │ │ ├── ui-bg_glass_55_fbf9ee_1x400.png │ │ │ ├── ui-bg_glass_65_ffffff_1x400.png │ │ │ ├── ui-bg_glass_75_dadada_1x400.png │ │ │ ├── ui-bg_glass_75_e6e6e6_1x400.png │ │ │ ├── ui-bg_glass_95_fef1ec_1x400.png │ │ │ ├── ui-bg_highlight-soft_75_cccccc_1x100.png │ │ │ ├── ui-icons_222222_256x240.png │ │ │ ├── ui-icons_2e83ff_256x240.png │ │ │ ├── ui-icons_444444_256x240.png │ │ │ ├── ui-icons_454545_256x240.png │ │ │ ├── ui-icons_555555_256x240.png │ │ │ ├── ui-icons_777620_256x240.png │ │ │ ├── ui-icons_777777_256x240.png │ │ │ ├── ui-icons_888888_256x240.png │ │ │ ├── ui-icons_cc0000_256x240.png │ │ │ ├── ui-icons_cd0a0a_256x240.png │ │ │ └── ui-icons_ffffff_256x240.png │ │ │ ├── jquery-ui.css │ │ │ ├── jquery-ui.min.css │ │ │ ├── menu.css │ │ │ ├── progressbar.css │ │ │ ├── resizable.css │ │ │ ├── selectable.css │ │ │ ├── selectmenu.css │ │ │ ├── slider.css │ │ │ ├── sortable.css │ │ │ ├── spinner.css │ │ │ ├── tabs.css │ │ │ ├── theme.css │ │ │ └── tooltip.css │ ├── toastr.css │ ├── toastr.less │ ├── toastr.min.css │ ├── toastr.scss │ └── ui-bootstrap-csp.css ├── Controllers │ ├── AbpProjectNameControllerBase.cs │ └── HomeController.cs ├── FodyWeavers.xml ├── FodyWeavers.xsd ├── Global.asax ├── Global.asax.cs ├── Localization │ └── AbpProjectName │ │ ├── AbpProjectName-zh-CN.xml │ │ ├── AbpProjectName.ja.xml │ │ ├── AbpProjectName.tr.xml │ │ └── AbpProjectName.xml ├── Properties │ └── AssemblyInfo.cs ├── Scripts │ ├── README.md │ ├── angular-animate.js │ ├── angular-animate.min.js │ ├── angular-animate.min.js.map │ ├── angular-aria.js │ ├── angular-aria.min.js │ ├── angular-aria.min.js.map │ ├── angular-cookies.js │ ├── angular-cookies.min.js │ ├── angular-cookies.min.js.map │ ├── angular-csp.css │ ├── angular-loader.js │ ├── angular-loader.min.js │ ├── angular-loader.min.js.map │ ├── angular-message-format.js │ ├── angular-message-format.min.js │ ├── angular-message-format.min.js.map │ ├── angular-messages.js │ ├── angular-messages.min.js │ ├── angular-messages.min.js.map │ ├── angular-mocks.js │ ├── angular-parse-ext.js │ ├── angular-parse-ext.min.js │ ├── angular-parse-ext.min.js.map │ ├── angular-resource.js │ ├── angular-resource.min.js │ ├── angular-resource.min.js.map │ ├── angular-route.js │ ├── angular-route.min.js │ ├── angular-route.min.js.map │ ├── angular-sanitize.js │ ├── angular-sanitize.min.js │ ├── angular-sanitize.min.js.map │ ├── angular-touch.js │ ├── angular-touch.min.js │ ├── angular-touch.min.js.map │ ├── angular-ui-router.js │ ├── angular-ui-router.min.js │ ├── angular-ui │ │ ├── ui-bootstrap-tpls.js │ │ ├── ui-bootstrap-tpls.min.js │ │ ├── ui-bootstrap.js │ │ ├── ui-bootstrap.min.js │ │ ├── ui-utils-ieshiv.js │ │ ├── ui-utils-ieshiv.min.js │ │ ├── ui-utils.js │ │ └── ui-utils.min.js │ ├── angular.js │ ├── angular.min.js │ ├── angular.min.js.map │ ├── bootstrap.bundle.js │ ├── bootstrap.bundle.js.map │ ├── bootstrap.bundle.min.js │ ├── bootstrap.bundle.min.js.map │ ├── bootstrap.js │ ├── bootstrap.js.map │ ├── bootstrap.min.js │ ├── bootstrap.min.js.map │ ├── errors.json │ ├── esm │ │ ├── popper-utils.js │ │ ├── popper-utils.js.map │ │ ├── popper-utils.min.js │ │ ├── popper-utils.min.js.map │ │ ├── popper.js │ │ ├── popper.js.map │ │ ├── popper.min.js │ │ └── popper.min.js.map │ ├── i18n │ │ ├── angular-locale_af-na.js │ │ ├── angular-locale_af-za.js │ │ ├── angular-locale_af.js │ │ ├── angular-locale_agq-cm.js │ │ ├── angular-locale_agq.js │ │ ├── angular-locale_ak-gh.js │ │ ├── angular-locale_ak.js │ │ ├── angular-locale_am-et.js │ │ ├── angular-locale_am.js │ │ ├── angular-locale_ar-001.js │ │ ├── angular-locale_ar-ae.js │ │ ├── angular-locale_ar-bh.js │ │ ├── angular-locale_ar-dj.js │ │ ├── angular-locale_ar-dz.js │ │ ├── angular-locale_ar-eg.js │ │ ├── angular-locale_ar-eh.js │ │ ├── angular-locale_ar-er.js │ │ ├── angular-locale_ar-il.js │ │ ├── angular-locale_ar-iq.js │ │ ├── angular-locale_ar-jo.js │ │ ├── angular-locale_ar-km.js │ │ ├── angular-locale_ar-kw.js │ │ ├── angular-locale_ar-lb.js │ │ ├── angular-locale_ar-ly.js │ │ ├── angular-locale_ar-ma.js │ │ ├── angular-locale_ar-mr.js │ │ ├── angular-locale_ar-om.js │ │ ├── angular-locale_ar-ps.js │ │ ├── angular-locale_ar-qa.js │ │ ├── angular-locale_ar-sa.js │ │ ├── angular-locale_ar-sd.js │ │ ├── angular-locale_ar-so.js │ │ ├── angular-locale_ar-ss.js │ │ ├── angular-locale_ar-sy.js │ │ ├── angular-locale_ar-td.js │ │ ├── angular-locale_ar-tn.js │ │ ├── angular-locale_ar-xb.js │ │ ├── angular-locale_ar-ye.js │ │ ├── angular-locale_ar.js │ │ ├── angular-locale_as-in.js │ │ ├── angular-locale_as.js │ │ ├── angular-locale_asa-tz.js │ │ ├── angular-locale_asa.js │ │ ├── angular-locale_ast-es.js │ │ ├── angular-locale_ast.js │ │ ├── angular-locale_az-cyrl-az.js │ │ ├── angular-locale_az-cyrl.js │ │ ├── angular-locale_az-latn-az.js │ │ ├── angular-locale_az-latn.js │ │ ├── angular-locale_az.js │ │ ├── angular-locale_bas-cm.js │ │ ├── angular-locale_bas.js │ │ ├── angular-locale_be-by.js │ │ ├── angular-locale_be.js │ │ ├── angular-locale_bem-zm.js │ │ ├── angular-locale_bem.js │ │ ├── angular-locale_bez-tz.js │ │ ├── angular-locale_bez.js │ │ ├── angular-locale_bg-bg.js │ │ ├── angular-locale_bg.js │ │ ├── angular-locale_bm-ml.js │ │ ├── angular-locale_bm.js │ │ ├── angular-locale_bn-bd.js │ │ ├── angular-locale_bn-in.js │ │ ├── angular-locale_bn.js │ │ ├── angular-locale_bo-cn.js │ │ ├── angular-locale_bo-in.js │ │ ├── angular-locale_bo.js │ │ ├── angular-locale_br-fr.js │ │ ├── angular-locale_br.js │ │ ├── angular-locale_brx-in.js │ │ ├── angular-locale_brx.js │ │ ├── angular-locale_bs-cyrl-ba.js │ │ ├── angular-locale_bs-cyrl.js │ │ ├── angular-locale_bs-latn-ba.js │ │ ├── angular-locale_bs-latn.js │ │ ├── angular-locale_bs.js │ │ ├── angular-locale_ca-ad.js │ │ ├── angular-locale_ca-es-valencia.js │ │ ├── angular-locale_ca-es.js │ │ ├── angular-locale_ca-fr.js │ │ ├── angular-locale_ca-it.js │ │ ├── angular-locale_ca.js │ │ ├── angular-locale_ce-ru.js │ │ ├── angular-locale_ce.js │ │ ├── angular-locale_cgg-ug.js │ │ ├── angular-locale_cgg.js │ │ ├── angular-locale_chr-us.js │ │ ├── angular-locale_chr.js │ │ ├── angular-locale_ckb-arab-iq.js │ │ ├── angular-locale_ckb-arab-ir.js │ │ ├── angular-locale_ckb-arab.js │ │ ├── angular-locale_ckb-iq.js │ │ ├── angular-locale_ckb-ir.js │ │ ├── angular-locale_ckb-latn-iq.js │ │ ├── angular-locale_ckb-latn.js │ │ ├── angular-locale_ckb.js │ │ ├── angular-locale_cs-cz.js │ │ ├── angular-locale_cs.js │ │ ├── angular-locale_cu-ru.js │ │ ├── angular-locale_cu.js │ │ ├── angular-locale_cy-gb.js │ │ ├── angular-locale_cy.js │ │ ├── angular-locale_da-dk.js │ │ ├── angular-locale_da-gl.js │ │ ├── angular-locale_da.js │ │ ├── angular-locale_dav-ke.js │ │ ├── angular-locale_dav.js │ │ ├── angular-locale_de-at.js │ │ ├── angular-locale_de-be.js │ │ ├── angular-locale_de-ch.js │ │ ├── angular-locale_de-de.js │ │ ├── angular-locale_de-it.js │ │ ├── angular-locale_de-li.js │ │ ├── angular-locale_de-lu.js │ │ ├── angular-locale_de.js │ │ ├── angular-locale_dje-ne.js │ │ ├── angular-locale_dje.js │ │ ├── angular-locale_dsb-de.js │ │ ├── angular-locale_dsb.js │ │ ├── angular-locale_dua-cm.js │ │ ├── angular-locale_dua.js │ │ ├── angular-locale_dyo-sn.js │ │ ├── angular-locale_dyo.js │ │ ├── angular-locale_dz-bt.js │ │ ├── angular-locale_dz.js │ │ ├── angular-locale_ebu-ke.js │ │ ├── angular-locale_ebu.js │ │ ├── angular-locale_ee-gh.js │ │ ├── angular-locale_ee-tg.js │ │ ├── angular-locale_ee.js │ │ ├── angular-locale_el-cy.js │ │ ├── angular-locale_el-gr.js │ │ ├── angular-locale_el.js │ │ ├── angular-locale_en-001.js │ │ ├── angular-locale_en-150.js │ │ ├── angular-locale_en-ag.js │ │ ├── angular-locale_en-ai.js │ │ ├── angular-locale_en-as.js │ │ ├── angular-locale_en-at.js │ │ ├── angular-locale_en-au.js │ │ ├── angular-locale_en-bb.js │ │ ├── angular-locale_en-be.js │ │ ├── angular-locale_en-bi.js │ │ ├── angular-locale_en-bm.js │ │ ├── angular-locale_en-bs.js │ │ ├── angular-locale_en-bw.js │ │ ├── angular-locale_en-bz.js │ │ ├── angular-locale_en-ca.js │ │ ├── angular-locale_en-cc.js │ │ ├── angular-locale_en-ch.js │ │ ├── angular-locale_en-ck.js │ │ ├── angular-locale_en-cm.js │ │ ├── angular-locale_en-cx.js │ │ ├── angular-locale_en-cy.js │ │ ├── angular-locale_en-de.js │ │ ├── angular-locale_en-dg.js │ │ ├── angular-locale_en-dk.js │ │ ├── angular-locale_en-dm.js │ │ ├── angular-locale_en-er.js │ │ ├── angular-locale_en-fi.js │ │ ├── angular-locale_en-fj.js │ │ ├── angular-locale_en-fk.js │ │ ├── angular-locale_en-fm.js │ │ ├── angular-locale_en-gb.js │ │ ├── angular-locale_en-gd.js │ │ ├── angular-locale_en-gg.js │ │ ├── angular-locale_en-gh.js │ │ ├── angular-locale_en-gi.js │ │ ├── angular-locale_en-gm.js │ │ ├── angular-locale_en-gu.js │ │ ├── angular-locale_en-gy.js │ │ ├── angular-locale_en-hk.js │ │ ├── angular-locale_en-ie.js │ │ ├── angular-locale_en-il.js │ │ ├── angular-locale_en-im.js │ │ ├── angular-locale_en-in.js │ │ ├── angular-locale_en-io.js │ │ ├── angular-locale_en-iso.js │ │ ├── angular-locale_en-je.js │ │ ├── angular-locale_en-jm.js │ │ ├── angular-locale_en-ke.js │ │ ├── angular-locale_en-ki.js │ │ ├── angular-locale_en-kn.js │ │ ├── angular-locale_en-ky.js │ │ ├── angular-locale_en-lc.js │ │ ├── angular-locale_en-lr.js │ │ ├── angular-locale_en-ls.js │ │ ├── angular-locale_en-mg.js │ │ ├── angular-locale_en-mh.js │ │ ├── angular-locale_en-mo.js │ │ ├── angular-locale_en-mp.js │ │ ├── angular-locale_en-ms.js │ │ ├── angular-locale_en-mt.js │ │ ├── angular-locale_en-mu.js │ │ ├── angular-locale_en-mw.js │ │ ├── angular-locale_en-my.js │ │ ├── angular-locale_en-na.js │ │ ├── angular-locale_en-nf.js │ │ ├── angular-locale_en-ng.js │ │ ├── angular-locale_en-nl.js │ │ ├── angular-locale_en-nr.js │ │ ├── angular-locale_en-nu.js │ │ ├── angular-locale_en-nz.js │ │ ├── angular-locale_en-pg.js │ │ ├── angular-locale_en-ph.js │ │ ├── angular-locale_en-pk.js │ │ ├── angular-locale_en-pn.js │ │ ├── angular-locale_en-pr.js │ │ ├── angular-locale_en-pw.js │ │ ├── angular-locale_en-rw.js │ │ ├── angular-locale_en-sb.js │ │ ├── angular-locale_en-sc.js │ │ ├── angular-locale_en-sd.js │ │ ├── angular-locale_en-se.js │ │ ├── angular-locale_en-sg.js │ │ ├── angular-locale_en-sh.js │ │ ├── angular-locale_en-si.js │ │ ├── angular-locale_en-sl.js │ │ ├── angular-locale_en-ss.js │ │ ├── angular-locale_en-sx.js │ │ ├── angular-locale_en-sz.js │ │ ├── angular-locale_en-tc.js │ │ ├── angular-locale_en-tk.js │ │ ├── angular-locale_en-to.js │ │ ├── angular-locale_en-tt.js │ │ ├── angular-locale_en-tv.js │ │ ├── angular-locale_en-tz.js │ │ ├── angular-locale_en-ug.js │ │ ├── angular-locale_en-um.js │ │ ├── angular-locale_en-us-posix.js │ │ ├── angular-locale_en-us.js │ │ ├── angular-locale_en-vc.js │ │ ├── angular-locale_en-vg.js │ │ ├── angular-locale_en-vi.js │ │ ├── angular-locale_en-vu.js │ │ ├── angular-locale_en-ws.js │ │ ├── angular-locale_en-xa.js │ │ ├── angular-locale_en-za.js │ │ ├── angular-locale_en-zm.js │ │ ├── angular-locale_en-zw.js │ │ ├── angular-locale_en.js │ │ ├── angular-locale_eo-001.js │ │ ├── angular-locale_eo.js │ │ ├── angular-locale_es-419.js │ │ ├── angular-locale_es-ar.js │ │ ├── angular-locale_es-bo.js │ │ ├── angular-locale_es-br.js │ │ ├── angular-locale_es-bz.js │ │ ├── angular-locale_es-cl.js │ │ ├── angular-locale_es-co.js │ │ ├── angular-locale_es-cr.js │ │ ├── angular-locale_es-cu.js │ │ ├── angular-locale_es-do.js │ │ ├── angular-locale_es-ea.js │ │ ├── angular-locale_es-ec.js │ │ ├── angular-locale_es-es.js │ │ ├── angular-locale_es-gq.js │ │ ├── angular-locale_es-gt.js │ │ ├── angular-locale_es-hn.js │ │ ├── angular-locale_es-ic.js │ │ ├── angular-locale_es-mx.js │ │ ├── angular-locale_es-ni.js │ │ ├── angular-locale_es-pa.js │ │ ├── angular-locale_es-pe.js │ │ ├── angular-locale_es-ph.js │ │ ├── angular-locale_es-pr.js │ │ ├── angular-locale_es-py.js │ │ ├── angular-locale_es-sv.js │ │ ├── angular-locale_es-us.js │ │ ├── angular-locale_es-uy.js │ │ ├── angular-locale_es-ve.js │ │ ├── angular-locale_es.js │ │ ├── angular-locale_et-ee.js │ │ ├── angular-locale_et.js │ │ ├── angular-locale_eu-es.js │ │ ├── angular-locale_eu.js │ │ ├── angular-locale_ewo-cm.js │ │ ├── angular-locale_ewo.js │ │ ├── angular-locale_fa-af.js │ │ ├── angular-locale_fa-ir.js │ │ ├── angular-locale_fa.js │ │ ├── angular-locale_ff-cm.js │ │ ├── angular-locale_ff-gn.js │ │ ├── angular-locale_ff-mr.js │ │ ├── angular-locale_ff-sn.js │ │ ├── angular-locale_ff.js │ │ ├── angular-locale_fi-fi.js │ │ ├── angular-locale_fi.js │ │ ├── angular-locale_fil-ph.js │ │ ├── angular-locale_fil.js │ │ ├── angular-locale_fo-dk.js │ │ ├── angular-locale_fo-fo.js │ │ ├── angular-locale_fo.js │ │ ├── angular-locale_fr-be.js │ │ ├── angular-locale_fr-bf.js │ │ ├── angular-locale_fr-bi.js │ │ ├── angular-locale_fr-bj.js │ │ ├── angular-locale_fr-bl.js │ │ ├── angular-locale_fr-ca.js │ │ ├── angular-locale_fr-cd.js │ │ ├── angular-locale_fr-cf.js │ │ ├── angular-locale_fr-cg.js │ │ ├── angular-locale_fr-ch.js │ │ ├── angular-locale_fr-ci.js │ │ ├── angular-locale_fr-cm.js │ │ ├── angular-locale_fr-dj.js │ │ ├── angular-locale_fr-dz.js │ │ ├── angular-locale_fr-fr.js │ │ ├── angular-locale_fr-ga.js │ │ ├── angular-locale_fr-gf.js │ │ ├── angular-locale_fr-gn.js │ │ ├── angular-locale_fr-gp.js │ │ ├── angular-locale_fr-gq.js │ │ ├── angular-locale_fr-ht.js │ │ ├── angular-locale_fr-km.js │ │ ├── angular-locale_fr-lu.js │ │ ├── angular-locale_fr-ma.js │ │ ├── angular-locale_fr-mc.js │ │ ├── angular-locale_fr-mf.js │ │ ├── angular-locale_fr-mg.js │ │ ├── angular-locale_fr-ml.js │ │ ├── angular-locale_fr-mq.js │ │ ├── angular-locale_fr-mr.js │ │ ├── angular-locale_fr-mu.js │ │ ├── angular-locale_fr-nc.js │ │ ├── angular-locale_fr-ne.js │ │ ├── angular-locale_fr-pf.js │ │ ├── angular-locale_fr-pm.js │ │ ├── angular-locale_fr-re.js │ │ ├── angular-locale_fr-rw.js │ │ ├── angular-locale_fr-sc.js │ │ ├── angular-locale_fr-sn.js │ │ ├── angular-locale_fr-sy.js │ │ ├── angular-locale_fr-td.js │ │ ├── angular-locale_fr-tg.js │ │ ├── angular-locale_fr-tn.js │ │ ├── angular-locale_fr-vu.js │ │ ├── angular-locale_fr-wf.js │ │ ├── angular-locale_fr-yt.js │ │ ├── angular-locale_fr.js │ │ ├── angular-locale_fur-it.js │ │ ├── angular-locale_fur.js │ │ ├── angular-locale_fy-nl.js │ │ ├── angular-locale_fy.js │ │ ├── angular-locale_ga-ie.js │ │ ├── angular-locale_ga.js │ │ ├── angular-locale_gd-gb.js │ │ ├── angular-locale_gd.js │ │ ├── angular-locale_gl-es.js │ │ ├── angular-locale_gl.js │ │ ├── angular-locale_gsw-ch.js │ │ ├── angular-locale_gsw-fr.js │ │ ├── angular-locale_gsw-li.js │ │ ├── angular-locale_gsw.js │ │ ├── angular-locale_gu-in.js │ │ ├── angular-locale_gu.js │ │ ├── angular-locale_guz-ke.js │ │ ├── angular-locale_guz.js │ │ ├── angular-locale_gv-im.js │ │ ├── angular-locale_gv.js │ │ ├── angular-locale_ha-gh.js │ │ ├── angular-locale_ha-ne.js │ │ ├── angular-locale_ha-ng.js │ │ ├── angular-locale_ha.js │ │ ├── angular-locale_haw-us.js │ │ ├── angular-locale_haw.js │ │ ├── angular-locale_he-il.js │ │ ├── angular-locale_he.js │ │ ├── angular-locale_hi-in.js │ │ ├── angular-locale_hi.js │ │ ├── angular-locale_hr-ba.js │ │ ├── angular-locale_hr-hr.js │ │ ├── angular-locale_hr.js │ │ ├── angular-locale_hsb-de.js │ │ ├── angular-locale_hsb.js │ │ ├── angular-locale_hu-hu.js │ │ ├── angular-locale_hu.js │ │ ├── angular-locale_hy-am.js │ │ ├── angular-locale_hy.js │ │ ├── angular-locale_id-id.js │ │ ├── angular-locale_id.js │ │ ├── angular-locale_ig-ng.js │ │ ├── angular-locale_ig.js │ │ ├── angular-locale_ii-cn.js │ │ ├── angular-locale_ii.js │ │ ├── angular-locale_in.js │ │ ├── angular-locale_is-is.js │ │ ├── angular-locale_is.js │ │ ├── angular-locale_it-ch.js │ │ ├── angular-locale_it-it.js │ │ ├── angular-locale_it-sm.js │ │ ├── angular-locale_it-va.js │ │ ├── angular-locale_it.js │ │ ├── angular-locale_iw.js │ │ ├── angular-locale_ja-jp.js │ │ ├── angular-locale_ja.js │ │ ├── angular-locale_jgo-cm.js │ │ ├── angular-locale_jgo.js │ │ ├── angular-locale_jmc-tz.js │ │ ├── angular-locale_jmc.js │ │ ├── angular-locale_ka-ge.js │ │ ├── angular-locale_ka.js │ │ ├── angular-locale_kab-dz.js │ │ ├── angular-locale_kab.js │ │ ├── angular-locale_kam-ke.js │ │ ├── angular-locale_kam.js │ │ ├── angular-locale_kde-tz.js │ │ ├── angular-locale_kde.js │ │ ├── angular-locale_kea-cv.js │ │ ├── angular-locale_kea.js │ │ ├── angular-locale_khq-ml.js │ │ ├── angular-locale_khq.js │ │ ├── angular-locale_ki-ke.js │ │ ├── angular-locale_ki.js │ │ ├── angular-locale_kk-kz.js │ │ ├── angular-locale_kk.js │ │ ├── angular-locale_kkj-cm.js │ │ ├── angular-locale_kkj.js │ │ ├── angular-locale_kl-gl.js │ │ ├── angular-locale_kl.js │ │ ├── angular-locale_kln-ke.js │ │ ├── angular-locale_kln.js │ │ ├── angular-locale_km-kh.js │ │ ├── angular-locale_km.js │ │ ├── angular-locale_kn-in.js │ │ ├── angular-locale_kn.js │ │ ├── angular-locale_ko-kp.js │ │ ├── angular-locale_ko-kr.js │ │ ├── angular-locale_ko.js │ │ ├── angular-locale_kok-in.js │ │ ├── angular-locale_kok.js │ │ ├── angular-locale_ks-in.js │ │ ├── angular-locale_ks.js │ │ ├── angular-locale_ksb-tz.js │ │ ├── angular-locale_ksb.js │ │ ├── angular-locale_ksf-cm.js │ │ ├── angular-locale_ksf.js │ │ ├── angular-locale_ksh-de.js │ │ ├── angular-locale_ksh.js │ │ ├── angular-locale_kw-gb.js │ │ ├── angular-locale_kw.js │ │ ├── angular-locale_ky-kg.js │ │ ├── angular-locale_ky.js │ │ ├── angular-locale_lag-tz.js │ │ ├── angular-locale_lag.js │ │ ├── angular-locale_lb-lu.js │ │ ├── angular-locale_lb.js │ │ ├── angular-locale_lg-ug.js │ │ ├── angular-locale_lg.js │ │ ├── angular-locale_lkt-us.js │ │ ├── angular-locale_lkt.js │ │ ├── angular-locale_ln-ao.js │ │ ├── angular-locale_ln-cd.js │ │ ├── angular-locale_ln-cf.js │ │ ├── angular-locale_ln-cg.js │ │ ├── angular-locale_ln.js │ │ ├── angular-locale_lo-la.js │ │ ├── angular-locale_lo.js │ │ ├── angular-locale_lrc-iq.js │ │ ├── angular-locale_lrc-ir.js │ │ ├── angular-locale_lrc.js │ │ ├── angular-locale_lt-lt.js │ │ ├── angular-locale_lt.js │ │ ├── angular-locale_lu-cd.js │ │ ├── angular-locale_lu.js │ │ ├── angular-locale_luo-ke.js │ │ ├── angular-locale_luo.js │ │ ├── angular-locale_luy-ke.js │ │ ├── angular-locale_luy.js │ │ ├── angular-locale_lv-lv.js │ │ ├── angular-locale_lv.js │ │ ├── angular-locale_mas-ke.js │ │ ├── angular-locale_mas-tz.js │ │ ├── angular-locale_mas.js │ │ ├── angular-locale_mer-ke.js │ │ ├── angular-locale_mer.js │ │ ├── angular-locale_mfe-mu.js │ │ ├── angular-locale_mfe.js │ │ ├── angular-locale_mg-mg.js │ │ ├── angular-locale_mg.js │ │ ├── angular-locale_mgh-mz.js │ │ ├── angular-locale_mgh.js │ │ ├── angular-locale_mgo-cm.js │ │ ├── angular-locale_mgo.js │ │ ├── angular-locale_mk-mk.js │ │ ├── angular-locale_mk.js │ │ ├── angular-locale_ml-in.js │ │ ├── angular-locale_ml.js │ │ ├── angular-locale_mn-mn.js │ │ ├── angular-locale_mn.js │ │ ├── angular-locale_mo.js │ │ ├── angular-locale_mr-in.js │ │ ├── angular-locale_mr.js │ │ ├── angular-locale_ms-bn.js │ │ ├── angular-locale_ms-my.js │ │ ├── angular-locale_ms-sg.js │ │ ├── angular-locale_ms.js │ │ ├── angular-locale_mt-mt.js │ │ ├── angular-locale_mt.js │ │ ├── angular-locale_mua-cm.js │ │ ├── angular-locale_mua.js │ │ ├── angular-locale_my-mm.js │ │ ├── angular-locale_my.js │ │ ├── angular-locale_mzn-ir.js │ │ ├── angular-locale_mzn.js │ │ ├── angular-locale_naq-na.js │ │ ├── angular-locale_naq.js │ │ ├── angular-locale_nb-no.js │ │ ├── angular-locale_nb-sj.js │ │ ├── angular-locale_nb.js │ │ ├── angular-locale_nd-zw.js │ │ ├── angular-locale_nd.js │ │ ├── angular-locale_nds-de.js │ │ ├── angular-locale_nds-nl.js │ │ ├── angular-locale_nds.js │ │ ├── angular-locale_ne-in.js │ │ ├── angular-locale_ne-np.js │ │ ├── angular-locale_ne.js │ │ ├── angular-locale_nl-aw.js │ │ ├── angular-locale_nl-be.js │ │ ├── angular-locale_nl-bq.js │ │ ├── angular-locale_nl-cw.js │ │ ├── angular-locale_nl-nl.js │ │ ├── angular-locale_nl-sr.js │ │ ├── angular-locale_nl-sx.js │ │ ├── angular-locale_nl.js │ │ ├── angular-locale_nmg-cm.js │ │ ├── angular-locale_nmg.js │ │ ├── angular-locale_nn-no.js │ │ ├── angular-locale_nn.js │ │ ├── angular-locale_nnh-cm.js │ │ ├── angular-locale_nnh.js │ │ ├── angular-locale_no-no.js │ │ ├── angular-locale_no.js │ │ ├── angular-locale_nus-ss.js │ │ ├── angular-locale_nus.js │ │ ├── angular-locale_nyn-ug.js │ │ ├── angular-locale_nyn.js │ │ ├── angular-locale_om-et.js │ │ ├── angular-locale_om-ke.js │ │ ├── angular-locale_om.js │ │ ├── angular-locale_or-in.js │ │ ├── angular-locale_or.js │ │ ├── angular-locale_os-ge.js │ │ ├── angular-locale_os-ru.js │ │ ├── angular-locale_os.js │ │ ├── angular-locale_pa-arab-pk.js │ │ ├── angular-locale_pa-arab.js │ │ ├── angular-locale_pa-guru-in.js │ │ ├── angular-locale_pa-guru.js │ │ ├── angular-locale_pa.js │ │ ├── angular-locale_pl-pl.js │ │ ├── angular-locale_pl.js │ │ ├── angular-locale_prg-001.js │ │ ├── angular-locale_prg.js │ │ ├── angular-locale_ps-af.js │ │ ├── angular-locale_ps.js │ │ ├── angular-locale_pt-ao.js │ │ ├── angular-locale_pt-br.js │ │ ├── angular-locale_pt-ch.js │ │ ├── angular-locale_pt-cv.js │ │ ├── angular-locale_pt-gq.js │ │ ├── angular-locale_pt-gw.js │ │ ├── angular-locale_pt-lu.js │ │ ├── angular-locale_pt-mo.js │ │ ├── angular-locale_pt-mz.js │ │ ├── angular-locale_pt-pt.js │ │ ├── angular-locale_pt-st.js │ │ ├── angular-locale_pt-tl.js │ │ ├── angular-locale_pt.js │ │ ├── angular-locale_qu-bo.js │ │ ├── angular-locale_qu-ec.js │ │ ├── angular-locale_qu-pe.js │ │ ├── angular-locale_qu.js │ │ ├── angular-locale_rm-ch.js │ │ ├── angular-locale_rm.js │ │ ├── angular-locale_rn-bi.js │ │ ├── angular-locale_rn.js │ │ ├── angular-locale_ro-md.js │ │ ├── angular-locale_ro-ro.js │ │ ├── angular-locale_ro.js │ │ ├── angular-locale_rof-tz.js │ │ ├── angular-locale_rof.js │ │ ├── angular-locale_ru-by.js │ │ ├── angular-locale_ru-kg.js │ │ ├── angular-locale_ru-kz.js │ │ ├── angular-locale_ru-md.js │ │ ├── angular-locale_ru-ru.js │ │ ├── angular-locale_ru-ua.js │ │ ├── angular-locale_ru.js │ │ ├── angular-locale_rw-rw.js │ │ ├── angular-locale_rw.js │ │ ├── angular-locale_rwk-tz.js │ │ ├── angular-locale_rwk.js │ │ ├── angular-locale_sah-ru.js │ │ ├── angular-locale_sah.js │ │ ├── angular-locale_saq-ke.js │ │ ├── angular-locale_saq.js │ │ ├── angular-locale_sbp-tz.js │ │ ├── angular-locale_sbp.js │ │ ├── angular-locale_se-fi.js │ │ ├── angular-locale_se-no.js │ │ ├── angular-locale_se-se.js │ │ ├── angular-locale_se.js │ │ ├── angular-locale_seh-mz.js │ │ ├── angular-locale_seh.js │ │ ├── angular-locale_ses-ml.js │ │ ├── angular-locale_ses.js │ │ ├── angular-locale_sg-cf.js │ │ ├── angular-locale_sg.js │ │ ├── angular-locale_sh.js │ │ ├── angular-locale_shi-latn-ma.js │ │ ├── angular-locale_shi-latn.js │ │ ├── angular-locale_shi-tfng-ma.js │ │ ├── angular-locale_shi-tfng.js │ │ ├── angular-locale_shi.js │ │ ├── angular-locale_si-lk.js │ │ ├── angular-locale_si.js │ │ ├── angular-locale_sk-sk.js │ │ ├── angular-locale_sk.js │ │ ├── angular-locale_sl-si.js │ │ ├── angular-locale_sl.js │ │ ├── angular-locale_smn-fi.js │ │ ├── angular-locale_smn.js │ │ ├── angular-locale_sn-zw.js │ │ ├── angular-locale_sn.js │ │ ├── angular-locale_so-dj.js │ │ ├── angular-locale_so-et.js │ │ ├── angular-locale_so-ke.js │ │ ├── angular-locale_so-so.js │ │ ├── angular-locale_so.js │ │ ├── angular-locale_sq-al.js │ │ ├── angular-locale_sq-mk.js │ │ ├── angular-locale_sq-xk.js │ │ ├── angular-locale_sq.js │ │ ├── angular-locale_sr-cyrl-ba.js │ │ ├── angular-locale_sr-cyrl-me.js │ │ ├── angular-locale_sr-cyrl-rs.js │ │ ├── angular-locale_sr-cyrl-xk.js │ │ ├── angular-locale_sr-cyrl.js │ │ ├── angular-locale_sr-latn-ba.js │ │ ├── angular-locale_sr-latn-me.js │ │ ├── angular-locale_sr-latn-rs.js │ │ ├── angular-locale_sr-latn-xk.js │ │ ├── angular-locale_sr-latn.js │ │ ├── angular-locale_sr.js │ │ ├── angular-locale_sv-ax.js │ │ ├── angular-locale_sv-fi.js │ │ ├── angular-locale_sv-se.js │ │ ├── angular-locale_sv.js │ │ ├── angular-locale_sw-cd.js │ │ ├── angular-locale_sw-ke.js │ │ ├── angular-locale_sw-tz.js │ │ ├── angular-locale_sw-ug.js │ │ ├── angular-locale_sw.js │ │ ├── angular-locale_ta-in.js │ │ ├── angular-locale_ta-lk.js │ │ ├── angular-locale_ta-my.js │ │ ├── angular-locale_ta-sg.js │ │ ├── angular-locale_ta.js │ │ ├── angular-locale_te-in.js │ │ ├── angular-locale_te.js │ │ ├── angular-locale_teo-ke.js │ │ ├── angular-locale_teo-ug.js │ │ ├── angular-locale_teo.js │ │ ├── angular-locale_th-th.js │ │ ├── angular-locale_th.js │ │ ├── angular-locale_ti-er.js │ │ ├── angular-locale_ti-et.js │ │ ├── angular-locale_ti.js │ │ ├── angular-locale_tk-tm.js │ │ ├── angular-locale_tk.js │ │ ├── angular-locale_tl.js │ │ ├── angular-locale_to-to.js │ │ ├── angular-locale_to.js │ │ ├── angular-locale_tr-cy.js │ │ ├── angular-locale_tr-tr.js │ │ ├── angular-locale_tr.js │ │ ├── angular-locale_twq-ne.js │ │ ├── angular-locale_twq.js │ │ ├── angular-locale_tzm-ma.js │ │ ├── angular-locale_tzm.js │ │ ├── angular-locale_ug-cn.js │ │ ├── angular-locale_ug.js │ │ ├── angular-locale_uk-ua.js │ │ ├── angular-locale_uk.js │ │ ├── angular-locale_ur-in.js │ │ ├── angular-locale_ur-pk.js │ │ ├── angular-locale_ur.js │ │ ├── angular-locale_uz-arab-af.js │ │ ├── angular-locale_uz-arab.js │ │ ├── angular-locale_uz-cyrl-uz.js │ │ ├── angular-locale_uz-cyrl.js │ │ ├── angular-locale_uz-latn-uz.js │ │ ├── angular-locale_uz-latn.js │ │ ├── angular-locale_uz.js │ │ ├── angular-locale_vai-latn-lr.js │ │ ├── angular-locale_vai-latn.js │ │ ├── angular-locale_vai-vaii-lr.js │ │ ├── angular-locale_vai-vaii.js │ │ ├── angular-locale_vai.js │ │ ├── angular-locale_vi-vn.js │ │ ├── angular-locale_vi.js │ │ ├── angular-locale_vo-001.js │ │ ├── angular-locale_vo.js │ │ ├── angular-locale_vun-tz.js │ │ ├── angular-locale_vun.js │ │ ├── angular-locale_wae-ch.js │ │ ├── angular-locale_wae.js │ │ ├── angular-locale_xog-ug.js │ │ ├── angular-locale_xog.js │ │ ├── angular-locale_yav-cm.js │ │ ├── angular-locale_yav.js │ │ ├── angular-locale_yi-001.js │ │ ├── angular-locale_yi.js │ │ ├── angular-locale_yo-bj.js │ │ ├── angular-locale_yo-ng.js │ │ ├── angular-locale_yo.js │ │ ├── angular-locale_yue-hk.js │ │ ├── angular-locale_yue.js │ │ ├── angular-locale_zgh-ma.js │ │ ├── angular-locale_zgh.js │ │ ├── angular-locale_zh-cn.js │ │ ├── angular-locale_zh-hans-cn.js │ │ ├── angular-locale_zh-hans-hk.js │ │ ├── angular-locale_zh-hans-mo.js │ │ ├── angular-locale_zh-hans-sg.js │ │ ├── angular-locale_zh-hans.js │ │ ├── angular-locale_zh-hant-hk.js │ │ ├── angular-locale_zh-hant-mo.js │ │ ├── angular-locale_zh-hant-tw.js │ │ ├── angular-locale_zh-hant.js │ │ ├── angular-locale_zh-hk.js │ │ ├── angular-locale_zh-tw.js │ │ ├── angular-locale_zh.js │ │ ├── angular-locale_zu-za.js │ │ └── angular-locale_zu.js │ ├── index.d.ts │ ├── index.js.flow │ ├── jquery-3.6.0.intellisense.js │ ├── jquery-3.6.0.js │ ├── jquery-3.6.0.min.js │ ├── jquery-3.6.0.min.map │ ├── jquery-3.6.0.slim.js │ ├── jquery-3.6.0.slim.min.js │ ├── jquery-3.6.0.slim.min.map │ ├── jquery-ui-1.13.0.js │ ├── jquery-ui-1.13.0.min.js │ ├── jquery.blockUI.js │ ├── jquery.validate-vsdoc.js │ ├── jquery.validate.js │ ├── jquery.validate.min.js │ ├── json2.js │ ├── json2.min.js │ ├── modernizr-2.8.3.js │ ├── moment-with-locales.js │ ├── moment-with-locales.min.js │ ├── moment-with-locales.min.js.map │ ├── moment.js │ ├── moment.min.js │ ├── moment.min.js.map │ ├── others │ │ ├── html5shiv.js │ │ ├── respond.min.js │ │ ├── respond.src.js │ │ └── spinjs │ │ │ ├── jquery.spin.js │ │ │ └── spin.js │ ├── popper-utils.js │ ├── popper-utils.js.map │ ├── popper-utils.min.js │ ├── popper-utils.min.js.map │ ├── popper.js │ ├── popper.js.map │ ├── popper.min.js │ ├── popper.min.js.map │ ├── sitemap.xml │ ├── src │ │ ├── index.js │ │ ├── methods │ │ │ ├── defaults.js │ │ │ ├── destroy.js │ │ │ ├── disableEventListeners.js │ │ │ ├── enableEventListeners.js │ │ │ ├── placements.js │ │ │ └── update.js │ │ ├── modifiers │ │ │ ├── applyStyle.js │ │ │ ├── arrow.js │ │ │ ├── computeStyle.js │ │ │ ├── flip.js │ │ │ ├── hide.js │ │ │ ├── index.js │ │ │ ├── inner.js │ │ │ ├── keepTogether.js │ │ │ ├── offset.js │ │ │ ├── preventOverflow.js │ │ │ └── shift.js │ │ └── utils │ │ │ ├── clockwise.js │ │ │ ├── computeAutoPlacement.js │ │ │ ├── debounce.js │ │ │ ├── find.js │ │ │ ├── findCommonOffsetParent.js │ │ │ ├── findIndex.js │ │ │ ├── getBordersSize.js │ │ │ ├── getBoundaries.js │ │ │ ├── getBoundingClientRect.js │ │ │ ├── getClientRect.js │ │ │ ├── getFixedPositionOffsetParent.js │ │ │ ├── getOffsetParent.js │ │ │ ├── getOffsetRect.js │ │ │ ├── getOffsetRectRelativeToArbitraryNode.js │ │ │ ├── getOppositePlacement.js │ │ │ ├── getOppositeVariation.js │ │ │ ├── getOuterSizes.js │ │ │ ├── getParentNode.js │ │ │ ├── getPopperOffsets.js │ │ │ ├── getReferenceNode.js │ │ │ ├── getReferenceOffsets.js │ │ │ ├── getRoot.js │ │ │ ├── getRoundedOffsets.js │ │ │ ├── getScroll.js │ │ │ ├── getScrollParent.js │ │ │ ├── getStyleComputedProperty.js │ │ │ ├── getSupportedPropertyName.js │ │ │ ├── getViewportOffsetRectRelativeToArtbitraryNode.js │ │ │ ├── getWindow.js │ │ │ ├── getWindowSizes.js │ │ │ ├── includeScroll.js │ │ │ ├── index.js │ │ │ ├── isBrowser.js │ │ │ ├── isFixed.js │ │ │ ├── isFunction.js │ │ │ ├── isIE.js │ │ │ ├── isModifierEnabled.js │ │ │ ├── isModifierRequired.js │ │ │ ├── isNumeric.js │ │ │ ├── isOffsetContainer.js │ │ │ ├── removeEventListeners.js │ │ │ ├── runModifiers.js │ │ │ ├── setAttributes.js │ │ │ ├── setStyles.js │ │ │ └── setupEventListeners.js │ ├── sweetalert │ │ ├── ie9.css │ │ ├── sweet-alert.css │ │ ├── sweet-alert.html │ │ ├── sweet-alert.js │ │ ├── sweet-alert.min.js │ │ └── sweet-alert.scss │ ├── test-bundles │ │ ├── angular-aria.js │ │ ├── angular-cookies.js │ │ ├── angular-message-format.js │ │ ├── angular-messages.js │ │ ├── angular-resource.js │ │ ├── angular-route.js │ │ ├── angular-sanitize.js │ │ └── angular-touch.js │ ├── toastr.js │ ├── toastr.min.js │ ├── umd │ │ ├── popper-utils.js │ │ ├── popper-utils.js.map │ │ ├── popper-utils.min.js │ │ ├── popper-utils.min.js.map │ │ ├── popper.js │ │ ├── popper.js.flow │ │ ├── popper.js.map │ │ ├── popper.min.js │ │ └── popper.min.js.map │ └── version.json ├── Views │ ├── AbpProjectNameWebViewPageBase.cs │ ├── Shared │ │ ├── Error.cshtml │ │ └── _Layout.cshtml │ ├── _ViewStart.cshtml │ └── web.config ├── Web.Debug.config ├── Web.Release.config ├── Web.config ├── favicon.ico ├── fonts │ ├── FontAwesome.otf │ ├── fontawesome-webfont.eot │ ├── fontawesome-webfont.svg │ ├── fontawesome-webfont.ttf │ ├── fontawesome-webfont.woff │ └── fontawesome-webfont.woff2 ├── log4net.Production.config ├── log4net.config └── packages.config └── AbpCompanyName.AbpProjectName.sln /.gitattributes: -------------------------------------------------------------------------------- 1 | **/Scripts/** linguist-vendored 2 | **/Content/** linguist-vendored 3 | -------------------------------------------------------------------------------- /Docs/create_template_db.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/Docs/create_template_db.png -------------------------------------------------------------------------------- /Docs/create_template_site_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/Docs/create_template_site_2.png -------------------------------------------------------------------------------- /Docs/create_template_site_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/Docs/create_template_site_3.png -------------------------------------------------------------------------------- /Docs/create_template_web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/Docs/create_template_web.png -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 ASP.NET Boilerplate 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Important 2 | 3 | Issues of this repository are tracked on https://github.com/aspnetboilerplate/aspnetboilerplate. Please create your issues on https://github.com/aspnetboilerplate/aspnetboilerplate/issues. 4 | 5 | # ASP.NET Boilerplate Templates 6 | 7 | 8 | This document explains preparing a running Web Application from ASP.NET Boilerplate templates in 3 simple steps. 9 | 10 | #### Step 1 11 | 12 | Go to http://www.aspnetboilerplate.com/Templates, select your architecture and ORM framework, enter a solution name and create your project. 13 | 14 | ![ScreenShot](https://raw.github.com/aspnetboilerplate/templates/master/Docs/create_template_site_3.png) 15 | 16 | A zip file will be created and downloaded automatically for you. 17 | 18 | #### Step 2 19 | 20 | To be able to run the application, you need to create an empty database in SQL Server. Database's name in your solution's name plus 'Db' suffix: 21 | 22 | ![ScreenShot](https://raw.github.com/aspnetboilerplate/templates/master/Docs/create_template_db.png) 23 | 24 | #### Step 3 25 | 26 | Open your solution in Visual Studio and run it: 27 | 28 | ![ScreenShot](https://raw.github.com/aspnetboilerplate/templates/master/Docs/create_template_web.png) 29 | 30 | That's it! Your solution is ready and running. 31 | 32 | What's next? Read documentation on http://www.aspnetboilerplate.com/Pages/Documents 33 | -------------------------------------------------------------------------------- /src/.nuget/NuGet.Config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/.nuget/NuGet.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/.nuget/NuGet.exe -------------------------------------------------------------------------------- /src/.vs/AbpCompanyName.AbpProjectName/DesignTimeBuild/.dtbcache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/.vs/AbpCompanyName.AbpProjectName/DesignTimeBuild/.dtbcache -------------------------------------------------------------------------------- /src/.vs/AbpCompanyName.AbpProjectName/v15/sqlite3/storage.ide: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/.vs/AbpCompanyName.AbpProjectName/v15/sqlite3/storage.ide -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.Application/AbpProjectNameAppServiceBase.cs: -------------------------------------------------------------------------------- 1 | using Abp.Application.Services; 2 | 3 | namespace AbpCompanyName.AbpProjectName 4 | { 5 | /// 6 | /// Derive your application services from this class. 7 | /// 8 | public abstract class AbpProjectNameAppServiceBase : ApplicationService 9 | { 10 | protected AbpProjectNameAppServiceBase() 11 | { 12 | LocalizationSourceName = AbpProjectNameConsts.LocalizationSourceName; 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.Application/AbpProjectNameApplicationModule.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using Abp.Modules; 3 | 4 | namespace AbpCompanyName.AbpProjectName 5 | { 6 | [DependsOn(typeof(AbpProjectNameCoreModule))] 7 | public class AbpProjectNameApplicationModule : AbpModule 8 | { 9 | public override void Initialize() 10 | { 11 | IocManager.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly()); 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.Application/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.Core/AbpProjectNameConsts.cs: -------------------------------------------------------------------------------- 1 | namespace AbpCompanyName.AbpProjectName 2 | { 3 | public class AbpProjectNameConsts 4 | { 5 | public const string LocalizationSourceName = "AbpProjectName"; 6 | 7 | /// 8 | /// Default pass phrase for SimpleStringCipher decrypt/encrypt operations 9 | /// 10 | public const string DefaultPassPhrase = "{{DEFAULT_PASS_PHRASE_HERE}}"; 11 | } 12 | } -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.Core/AbpProjectNameCoreModule.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using Abp.Modules; 3 | 4 | namespace AbpCompanyName.AbpProjectName 5 | { 6 | public class AbpProjectNameCoreModule : AbpModule 7 | { 8 | public override void PreInitialize() 9 | { 10 | Configuration.Settings.SettingEncryptionConfiguration.DefaultPassPhrase = AbpProjectNameConsts.DefaultPassPhrase; 11 | } 12 | 13 | public override void Initialize() 14 | { 15 | IocManager.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly()); 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.Core/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.EntityFramework/AbpProjectNameDataModule.cs: -------------------------------------------------------------------------------- 1 | using System.Data.Entity; 2 | using System.Reflection; 3 | using Abp.EntityFramework; 4 | using Abp.Modules; 5 | using AbpCompanyName.AbpProjectName.EntityFramework; 6 | 7 | namespace AbpCompanyName.AbpProjectName 8 | { 9 | [DependsOn(typeof(AbpEntityFrameworkModule), typeof(AbpProjectNameCoreModule))] 10 | public class AbpProjectNameDataModule : AbpModule 11 | { 12 | public override void PreInitialize() 13 | { 14 | Configuration.DefaultNameOrConnectionString = "Default"; 15 | } 16 | 17 | public override void Initialize() 18 | { 19 | IocManager.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly()); 20 | Database.SetInitializer(null); 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.EntityFramework/EntityFramework/Repositories/AbpProjectNameRepositoryBase.cs: -------------------------------------------------------------------------------- 1 | using Abp.Domain.Entities; 2 | using Abp.EntityFramework; 3 | using Abp.EntityFramework.Repositories; 4 | 5 | namespace AbpCompanyName.AbpProjectName.EntityFramework.Repositories 6 | { 7 | public abstract class AbpProjectNameRepositoryBase : EfRepositoryBase 8 | where TEntity : class, IEntity 9 | { 10 | protected AbpProjectNameRepositoryBase(IDbContextProvider dbContextProvider) 11 | : base(dbContextProvider) 12 | { 13 | 14 | } 15 | 16 | //add common methods for all repositories 17 | } 18 | 19 | public abstract class AbpProjectNameRepositoryBase : AbpProjectNameRepositoryBase 20 | where TEntity : class, IEntity 21 | { 22 | protected AbpProjectNameRepositoryBase(IDbContextProvider dbContextProvider) 23 | : base(dbContextProvider) 24 | { 25 | 26 | } 27 | 28 | //do not add any method here, add to the class above (since this inherits it) 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.EntityFramework/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.EntityFramework/Migrations/Configuration.cs: -------------------------------------------------------------------------------- 1 | using System.Data.Entity.Migrations; 2 | 3 | namespace AbpCompanyName.AbpProjectName.Migrations 4 | { 5 | internal sealed class Configuration : DbMigrationsConfiguration 6 | { 7 | public Configuration() 8 | { 9 | AutomaticMigrationsEnabled = false; 10 | ContextKey = "AbpProjectName"; 11 | } 12 | 13 | protected override void Seed(AbpProjectName.EntityFramework.AbpProjectNameDbContext context) 14 | { 15 | // This method will be called every time after migrating to the latest version. 16 | // You can add any seed data here... 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.NHibernate/AbpProjectNameDataModule.cs: -------------------------------------------------------------------------------- 1 | using System.Configuration; 2 | using System.Reflection; 3 | using Abp.Configuration.Startup; 4 | using Abp.Modules; 5 | using Abp.NHibernate; 6 | using FluentNHibernate.Cfg.Db; 7 | 8 | namespace AbpCompanyName.AbpProjectName 9 | { 10 | [DependsOn(typeof(AbpNHibernateModule), typeof(AbpProjectNameCoreModule))] 11 | public class AbpProjectNameDataModule : AbpModule 12 | { 13 | public override void PreInitialize() 14 | { 15 | Configuration.DefaultNameOrConnectionString = ConfigurationManager.ConnectionStrings["Default"].ConnectionString; 16 | Configuration.Modules.AbpNHibernate().FluentConfiguration 17 | .Database(MsSqlConfiguration.MsSql2008.ConnectionString(Configuration.DefaultNameOrConnectionString)) 18 | .Mappings(m => m.FluentMappings.AddFromAssembly(Assembly.GetExecutingAssembly())); 19 | } 20 | 21 | public override void Initialize() 22 | { 23 | IocManager.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly()); 24 | } 25 | } 26 | } -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.NHibernate/DbMigrations/VersionTable.cs: -------------------------------------------------------------------------------- 1 | using FluentMigrator.Runner.VersionTableInfo; 2 | 3 | namespace AbpCompanyName.AbpProjectName.DbMigrations 4 | { 5 | [VersionTableMetaData] 6 | public class VersionTable : DefaultVersionTableMetaData 7 | { 8 | public override string TableName 9 | { 10 | get 11 | { 12 | return "MyAppVersionInfo"; 13 | } 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.NHibernate/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.NHibernate/RunMigrations.bat: -------------------------------------------------------------------------------- 1 | ..\packages\FluentMigrator.1.6.2\tools\Migrate.exe /connection "Server=localhost; Database=AbpProjectName; Trusted_Connection=True;" /db sqlserver /target "bin\Debug\AbpCompanyName.AbpProjectName.NHibernate.dll" 2 | pause -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebApi/AbpProjectNameWebApiModule.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using Abp.Application.Services; 3 | using Abp.Configuration.Startup; 4 | using Abp.Modules; 5 | using Abp.WebApi; 6 | 7 | namespace AbpCompanyName.AbpProjectName 8 | { 9 | [DependsOn(typeof(AbpWebApiModule), typeof(AbpProjectNameApplicationModule))] 10 | public class AbpProjectNameWebApiModule : AbpModule 11 | { 12 | public override void Initialize() 13 | { 14 | IocManager.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly()); 15 | 16 | Configuration.Modules.AbpWebApi().DynamicApiControllerBuilder 17 | .ForAll(typeof(AbpProjectNameApplicationModule).Assembly, "app") 18 | .Build(); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebApi/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Abp/Framework/scripts/libs/abp.blockUI.js: -------------------------------------------------------------------------------- 1 | var abp = abp || {}; 2 | (function () { 3 | 4 | if (!$.blockUI) { 5 | return; 6 | } 7 | 8 | $.extend($.blockUI.defaults, { 9 | message: ' ', 10 | css: { }, 11 | overlayCSS: { 12 | backgroundColor: '#AAA', 13 | opacity: 0.3, 14 | cursor: 'wait' 15 | } 16 | }); 17 | 18 | abp.ui.block = function (elm) { 19 | if (!elm) { 20 | $.blockUI(); 21 | } else { 22 | $(elm).block(); 23 | } 24 | }; 25 | 26 | abp.ui.unblock = function (elm) { 27 | if (!elm) { 28 | $.unblockUI(); 29 | } else { 30 | $(elm).unblock(); 31 | } 32 | }; 33 | 34 | })(); -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Abp/Framework/scripts/libs/abp.blockUI.min.js: -------------------------------------------------------------------------------- 1 | var abp=abp||{};(function(){$.blockUI&&($.extend($.blockUI.defaults,{message:" ",css:{},overlayCSS:{backgroundColor:"#AAA",opacity:.3,cursor:"wait"}}),abp.ui.block=function(n){n?$(n).block():$.blockUI()},abp.ui.unblock=function(n){n?$(n).unblock():$.unblockUI()})})(); -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Abp/Framework/scripts/libs/abp.jquery.d.ts: -------------------------------------------------------------------------------- 1 | declare namespace abp { 2 | 3 | //TODO: Gets JQuery.AjaxOptions and returns JQuery.Promise 4 | 5 | function ajax(userOptions: any): any; 6 | 7 | } -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Abp/Framework/scripts/libs/abp.moment.js: -------------------------------------------------------------------------------- 1 | var abp = abp || {}; 2 | (function () { 3 | if (!moment || !moment.tz) { 4 | return; 5 | } 6 | 7 | /* DEFAULTS *************************************************/ 8 | 9 | abp.timing = abp.timing || {}; 10 | 11 | /* FUNCTIONS **************************************************/ 12 | 13 | abp.timing.convertToUserTimezone = function (date) { 14 | var momentDate = moment(date); 15 | var targetDate = momentDate.clone().tz(abp.timing.timeZoneInfo.iana.timeZoneId); 16 | return targetDate; 17 | }; 18 | 19 | })(); -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Abp/Framework/scripts/libs/abp.moment.min.js: -------------------------------------------------------------------------------- 1 | var abp=abp||{};(function(){moment&&moment.tz&&(abp.timing=abp.timing||{},abp.timing.convertToUserTimezone=function(n){var t=moment(n);return t.clone().tz(abp.timing.timeZoneInfo.iana.timeZoneId)})})(); -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Abp/Framework/scripts/libs/abp.signalr.d.ts: -------------------------------------------------------------------------------- 1 | declare namespace abp { 2 | 3 | namespace signalr { 4 | 5 | let autoConnect: boolean; 6 | 7 | let qs: string; 8 | 9 | let remoteServiceBaseUrl: string; 10 | 11 | let url: string; 12 | 13 | function connect(): any; 14 | 15 | function startConnection(url: string, configureConnection: Function): Promise; 16 | 17 | namespace hubs { 18 | 19 | let common: any; 20 | 21 | } 22 | 23 | } 24 | 25 | } -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Abp/Framework/scripts/libs/abp.signalr.min.js: -------------------------------------------------------------------------------- 1 | var abp=abp||{};(function(n){if(n&&n.connection){abp.signalr=abp.signalr||{};abp.signalr.hubs=abp.signalr.hubs||{};abp.signalr.hubs.common=n.connection.abpCommonHub;var t=abp.signalr.hubs.common;t&&(t.client.getNotification=function(n){abp.event.trigger("abp.notifications.received",n)},abp.signalr.connect=function(){n.connection.hub.start().done(function(){abp.log.debug("Connected to SignalR server!");abp.event.trigger("abp.signalr.connected");t.server.register().done(function(){abp.log.debug("Registered to the SignalR server!")})})},abp.signalr.autoConnect===undefined&&(abp.signalr.autoConnect=!0),abp.signalr.autoConnect&&abp.signalr.connect(),n.connection.hub.disconnected(function(){abp.signalr.autoConnect&&setTimeout(function(){n.connection.hub.state===n.signalR.connectionState.disconnected&&n.connection.hub.start()},5e3)}))}})(jQuery); -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Abp/Framework/scripts/libs/abp.spin.min.js: -------------------------------------------------------------------------------- 1 | var abp=abp||{};(function(){$.fn.spin&&(abp.libs=abp.libs||{},abp.libs.spinjs={spinner_config:{lines:11,length:0,width:10,radius:20,corners:1,trail:60,speed:1.2},spinner_config_inner_busy_indicator:{lines:11,length:0,width:4,radius:7,corners:1,trail:60,speed:1.2}},abp.ui.setBusy=function(n,t){var i,r,u;t=t||{};(t.always||t["finally"])&&(t={promise:t});i=$.extend({},t);n?(r=$(n),u=r.find(".abp-busy-indicator"),u.length?u.spin(abp.libs.spinjs.spinner_config_inner_busy_indicator):(i.blockUI!=!1&&abp.ui.block(n),r.spin(abp.libs.spinjs.spinner_config))):(i.blockUI!=!1&&abp.ui.block(),$("body").spin(abp.libs.spinjs.spinner_config));i.promise&&(i.promise.always?i.promise.always(function(){abp.ui.clearBusy(n)}):i.promise["finally"]&&i.promise["finally"](function(){abp.ui.clearBusy(n)}))},abp.ui.clearBusy=function(n){if(n){var t=$(n),i=t.find(".abp-busy-indicator");i.length?i.spin(!1):(abp.ui.unblock(n),t.spin(!1))}else abp.ui.unblock(),$("body").spin(!1)})})(); -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Abp/Framework/scripts/libs/abp.sweet-alert.min.js: -------------------------------------------------------------------------------- 1 | var abp=abp||{};(function(n){if(sweetAlert&&n){abp.libs=abp.libs||{};abp.libs.sweetAlert={config:{"default":{},info:{icon:"info"},success:{icon:"success"},warn:{icon:"warning"},error:{icon:"error"},confirm:{icon:"warning",title:"Are you sure?",buttons:["Cancel","Yes"]}}};var t=function(t,i,r,u,f){var e,o,s;return f=f||{},e={},r&&(e.title=r),f.isHtml?(delete f.isHtml,o=document.createElement("div"),o.style="position: relative;",o.innerHTML=i,e.content=o):e.text=i,s=n.extend({},abp.libs.sweetAlert.config["default"],abp.libs.sweetAlert.config[t],e,f),n.Deferred(function(n){sweetAlert(s).then(function(t){u&&u(t);n.resolve(t)})})};abp.message.info=function(n,i,r){return t("info",n,i,null,r)};abp.message.success=function(n,i,r){return t("success",n,i,null,r)};abp.message.warn=function(n,i,r){return t("warn",n,i,null,r)};abp.message.error=function(n,i,r){return t("error",n,i,null,r)};abp.message.confirm=function(n,i,r,u){return t("confirm",n,i,r,u)};abp.event.on("abp.dynamicScriptsInitialized",function(){abp.libs.sweetAlert.config.confirm.title=abp.localization.abpWeb("AreYouSure");abp.libs.sweetAlert.config.confirm.buttons=[abp.localization.abpWeb("Cancel"),abp.localization.abpWeb("Yes")]})}})(jQuery); -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Abp/Framework/scripts/libs/abp.toastr.min.js: -------------------------------------------------------------------------------- 1 | (function(n){n(["toastr","abp-web-resources"],function(n,t){return function(){if(n&&t){n.options.positionClass="toast-bottom-right";var i=function(t,i,r,u){n[t](i,r,u)};return t.notify.success=function(n,t,r){i("success",n,t,r)},t.notify.info=function(n,t,r){i("info",n,t,r)},t.notify.warn=function(n,t,r){i("warning",n,t,r)},t.notify.error=function(n,t,r){i("error",n,t,r)},t}}()})})(typeof define=="function"&&define.amd?define:function(n,t){typeof module!="undefined"&&module.exports?module.exports=t(require("toastr"),require("abp-web-resources")):window.abp=t(window.toastr,window.abp)}); -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Abp/Framework/scripts/libs/requirejs/plugins/service.js: -------------------------------------------------------------------------------- 1 | define(function () { 2 | return { 3 | load: function (name, req, onload, config) { 4 | var url = abp.appPath + 'api/AbpServiceProxies/Get?name=' + name; 5 | req([url], function (value) { 6 | onload(value); 7 | }); 8 | } 9 | }; 10 | }); -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Abp/Framework/scripts/libs/requirejs/plugins/service.min.js: -------------------------------------------------------------------------------- 1 | define(function(){return{load:function(n,t,i){var r=abp.appPath+"api/AbpServiceProxies/Get?name="+n;t([r],function(n){i(n)})}}}); -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Abp/Framework/scripts/utils/ie10fix.js: -------------------------------------------------------------------------------- 1 | //Windows Phone 8 and Internet Explorer 10 FIX 2 | if (navigator.userAgent.match(/IEMobile\/10\.0/)) { 3 | var msViewportStyle = document.createElement("style"); 4 | msViewportStyle.appendChild( 5 | document.createTextNode( 6 | "@-ms-viewport{width:auto!important}" 7 | ) 8 | ); 9 | 10 | document.getElementsByTagName("head")[0].appendChild(msViewportStyle); 11 | } -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Abp/Framework/scripts/utils/ie10fix.min.js: -------------------------------------------------------------------------------- 1 | if(navigator.userAgent.match(/IEMobile\/10\.0/)){var msViewportStyle=document.createElement("style");msViewportStyle.appendChild(document.createTextNode("@-ms-viewport{width:auto!important}"));document.getElementsByTagName("head")[0].appendChild(msViewportStyle)} -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Abp/Framework/styles/abp.css: -------------------------------------------------------------------------------- 1 | .abp-clickable { 2 | cursor: pointer; 3 | } 4 | .abp-dock-top { 5 | left: 0; 6 | top: 0; 7 | right: 0; 8 | position: absolute; 9 | margin: 0; 10 | } 11 | .abp-dock-right { 12 | right: 0; 13 | top: 0; 14 | bottom: 0; 15 | position: absolute; 16 | margin: 0; 17 | } 18 | .abp-dock-bottom { 19 | left: 0; 20 | right: 0; 21 | bottom: 0; 22 | position: absolute; 23 | margin: 0; 24 | } 25 | .abp-dock-left { 26 | left: 0; 27 | top: 0; 28 | bottom: 0; 29 | position: absolute; 30 | margin: 0; 31 | } 32 | .abp-busy-indicator-small { 33 | width: 36px; 34 | height: 36px; 35 | } 36 | .abp-busy-indicator-small.abp-dock-left, 37 | .abp-busy-indicator-small.abp-dock-right { 38 | height: auto; 39 | } 40 | /*# sourceMappingURL=abp.css.map */ -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Abp/Framework/styles/abp.css.map: -------------------------------------------------------------------------------- 1 | "{\"version\":3,\"sources\":[\"abp.less\",\"abp.mixings.less\"],\"names\":[],\"mappings\":\"AAIA;EACI,eAAA;;AAKJ;ECSI,OAAA;EACA,MAAA;EACA,QAAA;EA0CA,kBAAA;EACA,SAAA;;ADlDJ;ECWI,QAAA;EACA,MAAA;EACA,SAAA;EAoCA,kBAAA;EACA,SAAA;;AD9CJ;ECaI,OAAA;EACA,QAAA;EACA,SAAA;EA8BA,kBAAA;EACA,SAAA;;AD1CJ;ECeI,OAAA;EACA,MAAA;EACA,SAAA;EAwBA,kBAAA;EACA,SAAA;;ADhCJ;EACI,WAAA;EACA,YAAA;;AAEA,yBAAC;AACD,yBAAC;EACG,YAAA\",\"file\":\"abp.css\"}" -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Abp/Framework/styles/abp.less: -------------------------------------------------------------------------------- 1 | @import "abp.mixings.less"; 2 | 3 | // COMMON STYLES ////////////////////////////////////////////////////////////// 4 | 5 | .abp-clickable { 6 | cursor: pointer; 7 | } 8 | 9 | // Docking 10 | 11 | .abp-dock-top { 12 | .abp-dock(top); 13 | } 14 | 15 | .abp-dock-right { 16 | .abp-dock(right); 17 | } 18 | 19 | .abp-dock-bottom { 20 | .abp-dock(bottom); 21 | } 22 | 23 | .abp-dock-left { 24 | .abp-dock(left); 25 | } 26 | 27 | //Busy indicator 28 | 29 | .abp-busy-indicator { 30 | 31 | } 32 | 33 | .abp-busy-indicator-small { 34 | width: 36px; 35 | height: 36px; 36 | 37 | &.abp-dock-left, 38 | &.abp-dock-right { 39 | height: auto; 40 | } 41 | } -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Abp/Framework/styles/abp.min.css: -------------------------------------------------------------------------------- 1 | .abp-clickable{cursor:pointer}.abp-dock-top{left:0;top:0;right:0;position:absolute;margin:0}.abp-dock-right{right:0;top:0;bottom:0;position:absolute;margin:0}.abp-dock-bottom{left:0;right:0;bottom:0;position:absolute;margin:0}.abp-dock-left{left:0;top:0;bottom:0;position:absolute;margin:0}.abp-busy-indicator-small{width:36px;height:36px}.abp-busy-indicator-small.abp-dock-left,.abp-busy-indicator-small.abp-dock-right{height:auto} -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Abp/Framework/styles/abp.mixings.css: -------------------------------------------------------------------------------- 1 | /*# sourceMappingURL=abp.mixings.css.map */ -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Abp/Framework/styles/abp.mixings.css.map: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Abp/Framework/styles/abp.mixings.min.css: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Abp/Framework/styles/utils/ie10fix.css: -------------------------------------------------------------------------------- 1 | @-webkit-viewport { 2 | width: device-width; 3 | } 4 | 5 | @-moz-viewport { 6 | width: device-width; 7 | } 8 | 9 | @-ms-viewport { 10 | width: device-width; 11 | } 12 | 13 | @-o-viewport { 14 | width: device-width; 15 | } 16 | 17 | @viewport 18 | 19 | { 20 | width: device-width; 21 | } -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/App_Start/AbpProjectNameNavigationProvider.cs: -------------------------------------------------------------------------------- 1 | using Abp.Application.Navigation; 2 | using Abp.Localization; 3 | 4 | namespace AbpCompanyName.AbpProjectName.WebMpa 5 | { 6 | /// 7 | /// This class defines menus for the application. 8 | /// It uses ABP's menu system. 9 | /// When you add menu items here, they are automatically appear in angular application. 10 | /// See Views/Layout/_TopMenu.cshtml file to know how to render menu. 11 | /// 12 | public class AbpProjectNameNavigationProvider : NavigationProvider 13 | { 14 | public override void SetNavigation(INavigationProviderContext context) 15 | { 16 | context.Manager.MainMenu 17 | .AddItem( 18 | new MenuItemDefinition( 19 | "Home", 20 | new LocalizableString("HomePage", AbpProjectNameConsts.LocalizationSourceName), 21 | url: "", 22 | icon: "fa fa-home" 23 | ) 24 | ).AddItem( 25 | new MenuItemDefinition( 26 | "About", 27 | new LocalizableString("About", AbpProjectNameConsts.LocalizationSourceName), 28 | url: "About", 29 | icon: "fa fa-info" 30 | ) 31 | ); 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/App_Start/RouteConfig.cs: -------------------------------------------------------------------------------- 1 | using System.Web.Http; 2 | using System.Web.Mvc; 3 | using System.Web.Routing; 4 | 5 | namespace AbpCompanyName.AbpProjectName.WebMpa 6 | { 7 | public class RouteConfig 8 | { 9 | public static void RegisterRoutes(RouteCollection routes) 10 | { 11 | routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 12 | 13 | //ASP.NET Web API Route Config 14 | routes.MapHttpRoute( 15 | name: "DefaultApi", 16 | routeTemplate: "api/{controller}/{id}", 17 | defaults: new { id = RouteParameter.Optional } 18 | ); 19 | 20 | routes.MapRoute( 21 | name: "Default", 22 | url: "{controller}/{action}/{id}", 23 | defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 24 | ); 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Content/flags/famfamfam-flags.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/AbpCompanyName.AbpProjectName.WebMpa/Content/flags/famfamfam-flags.png -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Content/themes/base/accordion.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery UI Accordion 1.11.4 3 | * http://jqueryui.com 4 | * 5 | * Copyright jQuery Foundation and other contributors 6 | * Released under the MIT license. 7 | * http://jquery.org/license 8 | * 9 | * http://api.jqueryui.com/accordion/#theming 10 | */ 11 | .ui-accordion .ui-accordion-header { 12 | display: block; 13 | cursor: pointer; 14 | position: relative; 15 | margin: 2px 0 0 0; 16 | padding: .5em .5em .5em .7em; 17 | min-height: 0; /* support: IE7 */ 18 | font-size: 100%; 19 | } 20 | .ui-accordion .ui-accordion-icons { 21 | padding-left: 2.2em; 22 | } 23 | .ui-accordion .ui-accordion-icons .ui-accordion-icons { 24 | padding-left: 2.2em; 25 | } 26 | .ui-accordion .ui-accordion-header .ui-accordion-header-icon { 27 | position: absolute; 28 | left: .5em; 29 | top: 50%; 30 | margin-top: -8px; 31 | } 32 | .ui-accordion .ui-accordion-content { 33 | padding: 1em 2.2em; 34 | border-top: 0; 35 | overflow: auto; 36 | } 37 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Content/themes/base/all.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery UI CSS Framework 1.11.4 3 | * http://jqueryui.com 4 | * 5 | * Copyright jQuery Foundation and other contributors 6 | * Released under the MIT license. 7 | * http://jquery.org/license 8 | * 9 | * http://api.jqueryui.com/category/theming/ 10 | */ 11 | @import "base.css"; 12 | @import "theme.css"; 13 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Content/themes/base/autocomplete.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery UI Autocomplete 1.11.4 3 | * http://jqueryui.com 4 | * 5 | * Copyright jQuery Foundation and other contributors 6 | * Released under the MIT license. 7 | * http://jquery.org/license 8 | * 9 | * http://api.jqueryui.com/autocomplete/#theming 10 | */ 11 | .ui-autocomplete { 12 | position: absolute; 13 | top: 0; 14 | left: 0; 15 | cursor: default; 16 | } 17 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Content/themes/base/base.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery UI CSS Framework 1.11.4 3 | * http://jqueryui.com 4 | * 5 | * Copyright jQuery Foundation and other contributors 6 | * Released under the MIT license. 7 | * http://jquery.org/license 8 | * 9 | * http://api.jqueryui.com/category/theming/ 10 | */ 11 | @import url("core.css"); 12 | 13 | @import url("accordion.css"); 14 | @import url("autocomplete.css"); 15 | @import url("button.css"); 16 | @import url("datepicker.css"); 17 | @import url("dialog.css"); 18 | @import url("draggable.css"); 19 | @import url("menu.css"); 20 | @import url("progressbar.css"); 21 | @import url("resizable.css"); 22 | @import url("selectable.css"); 23 | @import url("selectmenu.css"); 24 | @import url("sortable.css"); 25 | @import url("slider.css"); 26 | @import url("spinner.css"); 27 | @import url("tabs.css"); 28 | @import url("tooltip.css"); 29 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Content/themes/base/draggable.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery UI Draggable 1.11.4 3 | * http://jqueryui.com 4 | * 5 | * Copyright jQuery Foundation and other contributors 6 | * Released under the MIT license. 7 | * http://jquery.org/license 8 | */ 9 | .ui-draggable-handle { 10 | -ms-touch-action: none; 11 | touch-action: none; 12 | } 13 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Content/themes/base/images/ui-bg_flat_0_aaaaaa_40x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/AbpCompanyName.AbpProjectName.WebMpa/Content/themes/base/images/ui-bg_flat_0_aaaaaa_40x100.png -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Content/themes/base/images/ui-bg_flat_75_ffffff_40x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/AbpCompanyName.AbpProjectName.WebMpa/Content/themes/base/images/ui-bg_flat_75_ffffff_40x100.png -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Content/themes/base/images/ui-bg_glass_55_fbf9ee_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/AbpCompanyName.AbpProjectName.WebMpa/Content/themes/base/images/ui-bg_glass_55_fbf9ee_1x400.png -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Content/themes/base/images/ui-bg_glass_65_ffffff_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/AbpCompanyName.AbpProjectName.WebMpa/Content/themes/base/images/ui-bg_glass_65_ffffff_1x400.png -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Content/themes/base/images/ui-bg_glass_75_dadada_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/AbpCompanyName.AbpProjectName.WebMpa/Content/themes/base/images/ui-bg_glass_75_dadada_1x400.png -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Content/themes/base/images/ui-bg_glass_75_e6e6e6_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/AbpCompanyName.AbpProjectName.WebMpa/Content/themes/base/images/ui-bg_glass_75_e6e6e6_1x400.png -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Content/themes/base/images/ui-bg_glass_95_fef1ec_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/AbpCompanyName.AbpProjectName.WebMpa/Content/themes/base/images/ui-bg_glass_95_fef1ec_1x400.png -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Content/themes/base/images/ui-bg_highlight-soft_75_cccccc_1x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/AbpCompanyName.AbpProjectName.WebMpa/Content/themes/base/images/ui-bg_highlight-soft_75_cccccc_1x100.png -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Content/themes/base/images/ui-icons_222222_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/AbpCompanyName.AbpProjectName.WebMpa/Content/themes/base/images/ui-icons_222222_256x240.png -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Content/themes/base/images/ui-icons_2e83ff_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/AbpCompanyName.AbpProjectName.WebMpa/Content/themes/base/images/ui-icons_2e83ff_256x240.png -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Content/themes/base/images/ui-icons_444444_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/AbpCompanyName.AbpProjectName.WebMpa/Content/themes/base/images/ui-icons_444444_256x240.png -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Content/themes/base/images/ui-icons_454545_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/AbpCompanyName.AbpProjectName.WebMpa/Content/themes/base/images/ui-icons_454545_256x240.png -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Content/themes/base/images/ui-icons_555555_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/AbpCompanyName.AbpProjectName.WebMpa/Content/themes/base/images/ui-icons_555555_256x240.png -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Content/themes/base/images/ui-icons_777620_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/AbpCompanyName.AbpProjectName.WebMpa/Content/themes/base/images/ui-icons_777620_256x240.png -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Content/themes/base/images/ui-icons_777777_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/AbpCompanyName.AbpProjectName.WebMpa/Content/themes/base/images/ui-icons_777777_256x240.png -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Content/themes/base/images/ui-icons_888888_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/AbpCompanyName.AbpProjectName.WebMpa/Content/themes/base/images/ui-icons_888888_256x240.png -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Content/themes/base/images/ui-icons_cc0000_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/AbpCompanyName.AbpProjectName.WebMpa/Content/themes/base/images/ui-icons_cc0000_256x240.png -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Content/themes/base/images/ui-icons_cd0a0a_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/AbpCompanyName.AbpProjectName.WebMpa/Content/themes/base/images/ui-icons_cd0a0a_256x240.png -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Content/themes/base/images/ui-icons_ffffff_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/AbpCompanyName.AbpProjectName.WebMpa/Content/themes/base/images/ui-icons_ffffff_256x240.png -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Content/themes/base/menu.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery UI Menu 1.11.4 3 | * http://jqueryui.com 4 | * 5 | * Copyright jQuery Foundation and other contributors 6 | * Released under the MIT license. 7 | * http://jquery.org/license 8 | * 9 | * http://api.jqueryui.com/menu/#theming 10 | */ 11 | .ui-menu { 12 | list-style: none; 13 | padding: 0; 14 | margin: 0; 15 | display: block; 16 | outline: none; 17 | } 18 | .ui-menu .ui-menu { 19 | position: absolute; 20 | } 21 | .ui-menu .ui-menu-item { 22 | position: relative; 23 | margin: 0; 24 | padding: 3px 1em 3px .4em; 25 | cursor: pointer; 26 | min-height: 0; /* support: IE7 */ 27 | /* support: IE10, see #8844 */ 28 | list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"); 29 | } 30 | .ui-menu .ui-menu-divider { 31 | margin: 5px 0; 32 | height: 0; 33 | font-size: 0; 34 | line-height: 0; 35 | border-width: 1px 0 0 0; 36 | } 37 | .ui-menu .ui-state-focus, 38 | .ui-menu .ui-state-active { 39 | margin: -1px; 40 | } 41 | 42 | /* icon support */ 43 | .ui-menu-icons { 44 | position: relative; 45 | } 46 | .ui-menu-icons .ui-menu-item { 47 | padding-left: 2em; 48 | } 49 | 50 | /* left-aligned */ 51 | .ui-menu .ui-icon { 52 | position: absolute; 53 | top: 0; 54 | bottom: 0; 55 | left: .2em; 56 | margin: auto 0; 57 | } 58 | 59 | /* right-aligned */ 60 | .ui-menu .ui-menu-icon { 61 | left: auto; 62 | right: 0; 63 | } 64 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Content/themes/base/selectable.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery UI Selectable 1.11.4 3 | * http://jqueryui.com 4 | * 5 | * Copyright jQuery Foundation and other contributors 6 | * Released under the MIT license. 7 | * http://jquery.org/license 8 | */ 9 | .ui-selectable { 10 | -ms-touch-action: none; 11 | touch-action: none; 12 | } 13 | .ui-selectable-helper { 14 | position: absolute; 15 | z-index: 100; 16 | border: 1px dotted black; 17 | } 18 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Content/themes/base/selectmenu.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery UI Selectmenu 1.11.4 3 | * http://jqueryui.com 4 | * 5 | * Copyright jQuery Foundation and other contributors 6 | * Released under the MIT license. 7 | * http://jquery.org/license 8 | * 9 | * http://api.jqueryui.com/selectmenu/#theming 10 | */ 11 | .ui-selectmenu-menu { 12 | padding: 0; 13 | margin: 0; 14 | position: absolute; 15 | top: 0; 16 | left: 0; 17 | display: none; 18 | } 19 | .ui-selectmenu-menu .ui-menu { 20 | overflow: auto; 21 | /* Support: IE7 */ 22 | overflow-x: hidden; 23 | padding-bottom: 1px; 24 | } 25 | .ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup { 26 | font-size: 1em; 27 | font-weight: bold; 28 | line-height: 1.5; 29 | padding: 2px 0.4em; 30 | margin: 0.5em 0 0 0; 31 | height: auto; 32 | border: 0; 33 | } 34 | .ui-selectmenu-open { 35 | display: block; 36 | } 37 | .ui-selectmenu-button { 38 | display: inline-block; 39 | overflow: hidden; 40 | position: relative; 41 | text-decoration: none; 42 | cursor: pointer; 43 | } 44 | .ui-selectmenu-button span.ui-icon { 45 | right: 0.5em; 46 | left: auto; 47 | margin-top: -8px; 48 | position: absolute; 49 | top: 50%; 50 | } 51 | .ui-selectmenu-button span.ui-selectmenu-text { 52 | text-align: left; 53 | padding: 0.4em 2.1em 0.4em 1em; 54 | display: block; 55 | line-height: 1.4; 56 | overflow: hidden; 57 | text-overflow: ellipsis; 58 | white-space: nowrap; 59 | } 60 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Content/themes/base/sortable.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery UI Sortable 1.11.4 3 | * http://jqueryui.com 4 | * 5 | * Copyright jQuery Foundation and other contributors 6 | * Released under the MIT license. 7 | * http://jquery.org/license 8 | */ 9 | .ui-sortable-handle { 10 | -ms-touch-action: none; 11 | touch-action: none; 12 | } 13 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Content/themes/base/tabs.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery UI Tabs 1.11.4 3 | * http://jqueryui.com 4 | * 5 | * Copyright jQuery Foundation and other contributors 6 | * Released under the MIT license. 7 | * http://jquery.org/license 8 | * 9 | * http://api.jqueryui.com/tabs/#theming 10 | */ 11 | .ui-tabs { 12 | position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ 13 | padding: .2em; 14 | } 15 | .ui-tabs .ui-tabs-nav { 16 | margin: 0; 17 | padding: .2em .2em 0; 18 | } 19 | .ui-tabs .ui-tabs-nav li { 20 | list-style: none; 21 | float: left; 22 | position: relative; 23 | top: 0; 24 | margin: 1px .2em 0 0; 25 | border-bottom-width: 0; 26 | padding: 0; 27 | white-space: nowrap; 28 | } 29 | .ui-tabs .ui-tabs-nav .ui-tabs-anchor { 30 | float: left; 31 | padding: .5em 1em; 32 | text-decoration: none; 33 | } 34 | .ui-tabs .ui-tabs-nav li.ui-tabs-active { 35 | margin-bottom: -1px; 36 | padding-bottom: 1px; 37 | } 38 | .ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor, 39 | .ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor, 40 | .ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor { 41 | cursor: text; 42 | } 43 | .ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor { 44 | cursor: pointer; 45 | } 46 | .ui-tabs .ui-tabs-panel { 47 | display: block; 48 | border-width: 0; 49 | padding: 1em 1.4em; 50 | background: none; 51 | } 52 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Content/themes/base/tooltip.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery UI Tooltip 1.11.4 3 | * http://jqueryui.com 4 | * 5 | * Copyright jQuery Foundation and other contributors 6 | * Released under the MIT license. 7 | * http://jquery.org/license 8 | * 9 | * http://api.jqueryui.com/tooltip/#theming 10 | */ 11 | .ui-tooltip { 12 | padding: 8px; 13 | position: absolute; 14 | z-index: 9999; 15 | max-width: 300px; 16 | -webkit-box-shadow: 0 0 5px #aaa; 17 | box-shadow: 0 0 5px #aaa; 18 | } 19 | body .ui-tooltip { 20 | border-width: 2px; 21 | } 22 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Controllers/AboutController.cs: -------------------------------------------------------------------------------- 1 | using System.Web.Mvc; 2 | 3 | namespace AbpCompanyName.AbpProjectName.WebMpa.Controllers 4 | { 5 | public class AboutController : AbpProjectNameControllerBase 6 | { 7 | public ActionResult Index() 8 | { 9 | return View(); 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Controllers/AbpProjectNameControllerBase.cs: -------------------------------------------------------------------------------- 1 | using Abp.Web.Mvc.Controllers; 2 | 3 | namespace AbpCompanyName.AbpProjectName.WebMpa.Controllers 4 | { 5 | /// 6 | /// Derive all Controllers from this class. 7 | /// 8 | public abstract class AbpProjectNameControllerBase : AbpController 9 | { 10 | protected AbpProjectNameControllerBase() 11 | { 12 | LocalizationSourceName = AbpProjectNameConsts.LocalizationSourceName; 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Controllers/HomeController.cs: -------------------------------------------------------------------------------- 1 | using System.Web.Mvc; 2 | 3 | namespace AbpCompanyName.AbpProjectName.WebMpa.Controllers 4 | { 5 | public class HomeController : AbpProjectNameControllerBase 6 | { 7 | public ActionResult Index() 8 | { 9 | return View(); 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Global.asax: -------------------------------------------------------------------------------- 1 | <%@ Application Codebehind="Global.asax.cs" Inherits="AbpCompanyName.AbpProjectName.WebMpa.MvcApplication" Language="C#" %> 2 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Global.asax.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Abp.Castle.Logging.Log4Net; 3 | using Abp.Web; 4 | using Castle.Facilities.Logging; 5 | 6 | namespace AbpCompanyName.AbpProjectName.WebMpa 7 | { 8 | public class MvcApplication : AbpWebApplication 9 | { 10 | protected override void Application_Start(object sender, EventArgs e) 11 | { 12 | #if DEBUG 13 | AbpBootstrapper.IocManager.IocContainer.AddFacility( 14 | f => f.UseAbpLog4Net().WithConfig(Server.MapPath("log4net.config")) 15 | ); 16 | #else 17 | AbpBootstrapper.IocManager.IocContainer.AddFacility( 18 | f => f.UseAbpLog4Net().WithConfig(Server.MapPath("log4net.Production.config")) 19 | ); 20 | #endif 21 | 22 | base.Application_Start(sender, e); 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Localization/AbpProjectName/AbpProjectName-zh-CN.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Localization/AbpProjectName/AbpProjectName.ja.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Models/Layout/LanguageSelectionViewModel.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using Abp.Localization; 3 | 4 | namespace AbpCompanyName.AbpProjectName.WebMpa.Models.Layout 5 | { 6 | public class LanguageSelectionViewModel 7 | { 8 | public LanguageInfo CurrentLanguage { get; set; } 9 | 10 | public IReadOnlyList Languages { get; set; } 11 | } 12 | } -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Models/Layout/TopMenuViewModel.cs: -------------------------------------------------------------------------------- 1 | using Abp.Application.Navigation; 2 | 3 | namespace AbpCompanyName.AbpProjectName.WebMpa.Models.Layout 4 | { 5 | public class TopMenuViewModel 6 | { 7 | public UserMenu MainMenu { get; set; } 8 | 9 | public string ActiveMenuItemName { get; set; } 10 | } 11 | } -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Scripts/src/methods/destroy.js: -------------------------------------------------------------------------------- 1 | import isModifierEnabled from '../utils/isModifierEnabled'; 2 | import getSupportedPropertyName from '../utils/getSupportedPropertyName'; 3 | 4 | /** 5 | * Destroys the popper. 6 | * @method 7 | * @memberof Popper 8 | */ 9 | export default function destroy() { 10 | this.state.isDestroyed = true; 11 | 12 | // touch DOM only if `applyStyle` modifier is enabled 13 | if (isModifierEnabled(this.modifiers, 'applyStyle')) { 14 | this.popper.removeAttribute('x-placement'); 15 | this.popper.style.position = ''; 16 | this.popper.style.top = ''; 17 | this.popper.style.left = ''; 18 | this.popper.style.right = ''; 19 | this.popper.style.bottom = ''; 20 | this.popper.style.willChange = ''; 21 | this.popper.style[getSupportedPropertyName('transform')] = ''; 22 | } 23 | 24 | this.disableEventListeners(); 25 | 26 | // remove the popper if user explicitly asked for the deletion on destroy 27 | // do not use `remove` because IE11 doesn't support it 28 | if (this.options.removeOnDestroy) { 29 | this.popper.parentNode.removeChild(this.popper); 30 | } 31 | return this; 32 | } 33 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Scripts/src/methods/disableEventListeners.js: -------------------------------------------------------------------------------- 1 | import removeEventListeners from '../utils/removeEventListeners'; 2 | 3 | /** 4 | * It will remove resize/scroll events and won't recalculate popper position 5 | * when they are triggered. It also won't trigger `onUpdate` callback anymore, 6 | * unless you call `update` method manually. 7 | * @method 8 | * @memberof Popper 9 | */ 10 | export default function disableEventListeners() { 11 | if (this.state.eventsEnabled) { 12 | cancelAnimationFrame(this.scheduleUpdate); 13 | this.state = removeEventListeners(this.reference, this.state); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Scripts/src/methods/enableEventListeners.js: -------------------------------------------------------------------------------- 1 | import setupEventListeners from '../utils/setupEventListeners'; 2 | 3 | /** 4 | * It will add resize/scroll events and start recalculating 5 | * position of the popper element when they are triggered. 6 | * @method 7 | * @memberof Popper 8 | */ 9 | export default function enableEventListeners() { 10 | if (!this.state.eventsEnabled) { 11 | this.state = setupEventListeners( 12 | this.reference, 13 | this.options, 14 | this.state, 15 | this.scheduleUpdate 16 | ); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Scripts/src/methods/placements.js: -------------------------------------------------------------------------------- 1 | /** 2 | * List of accepted placements to use as values of the `placement` option.
3 | * Valid placements are: 4 | * - `auto` 5 | * - `top` 6 | * - `right` 7 | * - `bottom` 8 | * - `left` 9 | * 10 | * Each placement can have a variation from this list: 11 | * - `-start` 12 | * - `-end` 13 | * 14 | * Variations are interpreted easily if you think of them as the left to right 15 | * written languages. Horizontally (`top` and `bottom`), `start` is left and `end` 16 | * is right.
17 | * Vertically (`left` and `right`), `start` is top and `end` is bottom. 18 | * 19 | * Some valid examples are: 20 | * - `top-end` (on top of reference, right aligned) 21 | * - `right-start` (on right of reference, top aligned) 22 | * - `bottom` (on bottom, centered) 23 | * - `auto-end` (on the side with more space available, alignment depends by placement) 24 | * 25 | * @static 26 | * @type {Array} 27 | * @enum {String} 28 | * @readonly 29 | * @method placements 30 | * @memberof Popper 31 | */ 32 | export default [ 33 | 'auto-start', 34 | 'auto', 35 | 'auto-end', 36 | 'top-start', 37 | 'top', 38 | 'top-end', 39 | 'right-start', 40 | 'right', 41 | 'right-end', 42 | 'bottom-end', 43 | 'bottom', 44 | 'bottom-start', 45 | 'left-end', 46 | 'left', 47 | 'left-start', 48 | ]; 49 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Scripts/src/modifiers/hide.js: -------------------------------------------------------------------------------- 1 | import isModifierRequired from '../utils/isModifierRequired'; 2 | import find from '../utils/find'; 3 | 4 | /** 5 | * @function 6 | * @memberof Modifiers 7 | * @argument {Object} data - The data object generated by update method 8 | * @argument {Object} options - Modifiers configuration and options 9 | * @returns {Object} The data object, properly modified 10 | */ 11 | export default function hide(data) { 12 | if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) { 13 | return data; 14 | } 15 | 16 | const refRect = data.offsets.reference; 17 | const bound = find( 18 | data.instance.modifiers, 19 | modifier => modifier.name === 'preventOverflow' 20 | ).boundaries; 21 | 22 | if ( 23 | refRect.bottom < bound.top || 24 | refRect.left > bound.right || 25 | refRect.top > bound.bottom || 26 | refRect.right < bound.left 27 | ) { 28 | // Avoid unnecessary DOM access if visibility hasn't changed 29 | if (data.hide === true) { 30 | return data; 31 | } 32 | 33 | data.hide = true; 34 | data.attributes['x-out-of-boundaries'] = ''; 35 | } else { 36 | // Avoid unnecessary DOM access if visibility hasn't changed 37 | if (data.hide === false) { 38 | return data; 39 | } 40 | 41 | data.hide = false; 42 | data.attributes['x-out-of-boundaries'] = false; 43 | } 44 | 45 | return data; 46 | } 47 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Scripts/src/modifiers/inner.js: -------------------------------------------------------------------------------- 1 | import getClientRect from '../utils/getClientRect'; 2 | import getOppositePlacement from '../utils/getOppositePlacement'; 3 | 4 | /** 5 | * @function 6 | * @memberof Modifiers 7 | * @argument {Object} data - The data object generated by `update` method 8 | * @argument {Object} options - Modifiers configuration and options 9 | * @returns {Object} The data object, properly modified 10 | */ 11 | export default function inner(data) { 12 | const placement = data.placement; 13 | const basePlacement = placement.split('-')[0]; 14 | const { popper, reference } = data.offsets; 15 | const isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1; 16 | 17 | const subtractLength = ['top', 'left'].indexOf(basePlacement) === -1; 18 | 19 | popper[isHoriz ? 'left' : 'top'] = 20 | reference[basePlacement] - 21 | (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0); 22 | 23 | data.placement = getOppositePlacement(placement); 24 | data.offsets.popper = getClientRect(popper); 25 | 26 | return data; 27 | } 28 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Scripts/src/modifiers/keepTogether.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @function 3 | * @memberof Modifiers 4 | * @argument {Object} data - The data object generated by update method 5 | * @argument {Object} options - Modifiers configuration and options 6 | * @returns {Object} The data object, properly modified 7 | */ 8 | export default function keepTogether(data) { 9 | const { popper, reference } = data.offsets; 10 | const placement = data.placement.split('-')[0]; 11 | const floor = Math.floor; 12 | const isVertical = ['top', 'bottom'].indexOf(placement) !== -1; 13 | const side = isVertical ? 'right' : 'bottom'; 14 | const opSide = isVertical ? 'left' : 'top'; 15 | const measurement = isVertical ? 'width' : 'height'; 16 | 17 | if (popper[side] < floor(reference[opSide])) { 18 | data.offsets.popper[opSide] = 19 | floor(reference[opSide]) - popper[measurement]; 20 | } 21 | if (popper[opSide] > floor(reference[side])) { 22 | data.offsets.popper[opSide] = floor(reference[side]); 23 | } 24 | 25 | return data; 26 | } 27 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Scripts/src/modifiers/shift.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @function 3 | * @memberof Modifiers 4 | * @argument {Object} data - The data object generated by `update` method 5 | * @argument {Object} options - Modifiers configuration and options 6 | * @returns {Object} The data object, properly modified 7 | */ 8 | export default function shift(data) { 9 | const placement = data.placement; 10 | const basePlacement = placement.split('-')[0]; 11 | const shiftvariation = placement.split('-')[1]; 12 | 13 | // if shift shiftvariation is specified, run the modifier 14 | if (shiftvariation) { 15 | const { reference, popper } = data.offsets; 16 | const isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1; 17 | const side = isVertical ? 'left' : 'top'; 18 | const measurement = isVertical ? 'width' : 'height'; 19 | 20 | const shiftOffsets = { 21 | start: { [side]: reference[side] }, 22 | end: { 23 | [side]: reference[side] + reference[measurement] - popper[measurement], 24 | }, 25 | }; 26 | 27 | data.offsets.popper = { ...popper, ...shiftOffsets[shiftvariation] }; 28 | } 29 | 30 | return data; 31 | } 32 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Scripts/src/utils/clockwise.js: -------------------------------------------------------------------------------- 1 | import placements from '../methods/placements'; 2 | 3 | // Get rid of `auto` `auto-start` and `auto-end` 4 | const validPlacements = placements.slice(3); 5 | 6 | /** 7 | * Given an initial placement, returns all the subsequent placements 8 | * clockwise (or counter-clockwise). 9 | * 10 | * @method 11 | * @memberof Popper.Utils 12 | * @argument {String} placement - A valid placement (it accepts variations) 13 | * @argument {Boolean} counter - Set to true to walk the placements counterclockwise 14 | * @returns {Array} placements including their variations 15 | */ 16 | export default function clockwise(placement, counter = false) { 17 | const index = validPlacements.indexOf(placement); 18 | const arr = validPlacements 19 | .slice(index + 1) 20 | .concat(validPlacements.slice(0, index)); 21 | return counter ? arr.reverse() : arr; 22 | } 23 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Scripts/src/utils/debounce.js: -------------------------------------------------------------------------------- 1 | import isBrowser from './isBrowser'; 2 | 3 | const timeoutDuration = (function(){ 4 | const longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox']; 5 | for (let i = 0; i < longerTimeoutBrowsers.length; i += 1) { 6 | if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) { 7 | return 1; 8 | } 9 | } 10 | return 0; 11 | }()); 12 | 13 | export function microtaskDebounce(fn) { 14 | let called = false 15 | return () => { 16 | if (called) { 17 | return 18 | } 19 | called = true 20 | window.Promise.resolve().then(() => { 21 | called = false 22 | fn() 23 | }) 24 | } 25 | } 26 | 27 | export function taskDebounce(fn) { 28 | let scheduled = false; 29 | return () => { 30 | if (!scheduled) { 31 | scheduled = true; 32 | setTimeout(() => { 33 | scheduled = false; 34 | fn(); 35 | }, timeoutDuration); 36 | } 37 | }; 38 | } 39 | 40 | const supportsMicroTasks = isBrowser && window.Promise 41 | 42 | 43 | /** 44 | * Create a debounced version of a method, that's asynchronously deferred 45 | * but called in the minimum time possible. 46 | * 47 | * @method 48 | * @memberof Popper.Utils 49 | * @argument {Function} fn 50 | * @returns {Function} 51 | */ 52 | export default (supportsMicroTasks 53 | ? microtaskDebounce 54 | : taskDebounce); 55 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Scripts/src/utils/find.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Mimics the `find` method of Array 3 | * @method 4 | * @memberof Popper.Utils 5 | * @argument {Array} arr 6 | * @argument prop 7 | * @argument value 8 | * @returns index or -1 9 | */ 10 | export default function find(arr, check) { 11 | // use native find if supported 12 | if (Array.prototype.find) { 13 | return arr.find(check); 14 | } 15 | 16 | // use `filter` to obtain the same behavior of `find` 17 | return arr.filter(check)[0]; 18 | } 19 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Scripts/src/utils/findIndex.js: -------------------------------------------------------------------------------- 1 | import find from './find'; 2 | 3 | /** 4 | * Return the index of the matching object 5 | * @method 6 | * @memberof Popper.Utils 7 | * @argument {Array} arr 8 | * @argument prop 9 | * @argument value 10 | * @returns index or -1 11 | */ 12 | export default function findIndex(arr, prop, value) { 13 | // use native findIndex if supported 14 | if (Array.prototype.findIndex) { 15 | return arr.findIndex(cur => cur[prop] === value); 16 | } 17 | 18 | // use `find` + `indexOf` if `findIndex` isn't supported 19 | const match = find(arr, obj => obj[prop] === value); 20 | return arr.indexOf(match); 21 | } 22 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Scripts/src/utils/getBordersSize.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Helper to detect borders of a given element 3 | * @method 4 | * @memberof Popper.Utils 5 | * @param {CSSStyleDeclaration} styles 6 | * Result of `getStyleComputedProperty` on the given element 7 | * @param {String} axis - `x` or `y` 8 | * @return {number} borders - The borders size of the given axis 9 | */ 10 | 11 | export default function getBordersSize(styles, axis) { 12 | const sideA = axis === 'x' ? 'Left' : 'Top'; 13 | const sideB = sideA === 'Left' ? 'Right' : 'Bottom'; 14 | 15 | return ( 16 | parseFloat(styles[`border${sideA}Width`]) + 17 | parseFloat(styles[`border${sideB}Width`]) 18 | ); 19 | } 20 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Scripts/src/utils/getClientRect.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Given element offsets, generate an output similar to getBoundingClientRect 3 | * @method 4 | * @memberof Popper.Utils 5 | * @argument {Object} offsets 6 | * @returns {Object} ClientRect like output 7 | */ 8 | export default function getClientRect(offsets) { 9 | return { 10 | ...offsets, 11 | right: offsets.left + offsets.width, 12 | bottom: offsets.top + offsets.height, 13 | }; 14 | } 15 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Scripts/src/utils/getFixedPositionOffsetParent.js: -------------------------------------------------------------------------------- 1 | import getStyleComputedProperty from './getStyleComputedProperty'; 2 | import isIE from './isIE'; 3 | /** 4 | * Finds the first parent of an element that has a transformed property defined 5 | * @method 6 | * @memberof Popper.Utils 7 | * @argument {Element} element 8 | * @returns {Element} first transformed parent or documentElement 9 | */ 10 | 11 | export default function getFixedPositionOffsetParent(element) { 12 | // This check is needed to avoid errors in case one of the elements isn't defined for any reason 13 | if (!element || !element.parentElement || isIE()) { 14 | return document.documentElement; 15 | } 16 | let el = element.parentElement; 17 | while (el && getStyleComputedProperty(el, 'transform') === 'none') { 18 | el = el.parentElement; 19 | } 20 | return el || document.documentElement; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Scripts/src/utils/getOffsetParent.js: -------------------------------------------------------------------------------- 1 | import getStyleComputedProperty from './getStyleComputedProperty'; 2 | import isIE from './isIE'; 3 | /** 4 | * Returns the offset parent of the given element 5 | * @method 6 | * @memberof Popper.Utils 7 | * @argument {Element} element 8 | * @returns {Element} offset parent 9 | */ 10 | export default function getOffsetParent(element) { 11 | if (!element) { 12 | return document.documentElement; 13 | } 14 | 15 | const noOffsetParent = isIE(10) ? document.body : null; 16 | 17 | // NOTE: 1 DOM access here 18 | let offsetParent = element.offsetParent || null; 19 | // Skip hidden elements which don't have an offsetParent 20 | while (offsetParent === noOffsetParent && element.nextElementSibling) { 21 | offsetParent = (element = element.nextElementSibling).offsetParent; 22 | } 23 | 24 | const nodeName = offsetParent && offsetParent.nodeName; 25 | 26 | if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') { 27 | return element ? element.ownerDocument.documentElement : document.documentElement; 28 | } 29 | 30 | // .offsetParent will return the closest TH, TD or TABLE in case 31 | // no offsetParent is present, I hate this job... 32 | if ( 33 | ['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && 34 | getStyleComputedProperty(offsetParent, 'position') === 'static' 35 | ) { 36 | return getOffsetParent(offsetParent); 37 | } 38 | 39 | return offsetParent; 40 | } 41 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Scripts/src/utils/getOffsetRect.js: -------------------------------------------------------------------------------- 1 | import getWindowSizes from './getWindowSizes'; 2 | import getClientRect from './getClientRect'; 3 | 4 | /** 5 | * Get the position of the given element, relative to its offset parent 6 | * @method 7 | * @memberof Popper.Utils 8 | * @param {Element} element 9 | * @return {Object} position - Coordinates of the element and its `scrollTop` 10 | */ 11 | export default function getOffsetRect(element) { 12 | let elementRect; 13 | if (element.nodeName === 'HTML') { 14 | const { width, height } = getWindowSizes(element.ownerDocument); 15 | elementRect = { 16 | width, 17 | height, 18 | left: 0, 19 | top: 0, 20 | }; 21 | } else { 22 | elementRect = { 23 | width: element.offsetWidth, 24 | height: element.offsetHeight, 25 | left: element.offsetLeft, 26 | top: element.offsetTop, 27 | }; 28 | } 29 | 30 | // position 31 | return getClientRect(elementRect); 32 | } 33 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Scripts/src/utils/getOppositePlacement.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Get the opposite placement of the given one 3 | * @method 4 | * @memberof Popper.Utils 5 | * @argument {String} placement 6 | * @returns {String} flipped placement 7 | */ 8 | export default function getOppositePlacement(placement) { 9 | const hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' }; 10 | return placement.replace(/left|right|bottom|top/g, matched => hash[matched]); 11 | } 12 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Scripts/src/utils/getOppositeVariation.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Get the opposite placement variation of the given one 3 | * @method 4 | * @memberof Popper.Utils 5 | * @argument {String} placement variation 6 | * @returns {String} flipped placement variation 7 | */ 8 | export default function getOppositeVariation(variation) { 9 | if (variation === 'end') { 10 | return 'start'; 11 | } else if (variation === 'start') { 12 | return 'end'; 13 | } 14 | return variation; 15 | } 16 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Scripts/src/utils/getOuterSizes.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Get the outer sizes of the given element (offset size + margins) 3 | * @method 4 | * @memberof Popper.Utils 5 | * @argument {Element} element 6 | * @returns {Object} object containing width and height properties 7 | */ 8 | export default function getOuterSizes(element) { 9 | const window = element.ownerDocument.defaultView; 10 | const styles = window.getComputedStyle(element); 11 | const x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0); 12 | const y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0); 13 | const result = { 14 | width: element.offsetWidth + y, 15 | height: element.offsetHeight + x, 16 | }; 17 | return result; 18 | } 19 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Scripts/src/utils/getParentNode.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Returns the parentNode or the host of the element 3 | * @method 4 | * @memberof Popper.Utils 5 | * @argument {Element} element 6 | * @returns {Element} parent 7 | */ 8 | export default function getParentNode(element) { 9 | if (element.nodeName === 'HTML') { 10 | return element; 11 | } 12 | return element.parentNode || element.host; 13 | } 14 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Scripts/src/utils/getReferenceNode.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Returns the reference node of the reference object, or the reference object itself. 3 | * @method 4 | * @memberof Popper.Utils 5 | * @param {Element|Object} reference - the reference element (the popper will be relative to this) 6 | * @returns {Element} parent 7 | */ 8 | export default function getReferenceNode(reference) { 9 | return reference && reference.referenceNode ? reference.referenceNode : reference; 10 | } 11 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Scripts/src/utils/getReferenceOffsets.js: -------------------------------------------------------------------------------- 1 | import findCommonOffsetParent from './findCommonOffsetParent'; 2 | import getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode'; 3 | import getFixedPositionOffsetParent from './getFixedPositionOffsetParent'; 4 | import getReferenceNode from './getReferenceNode'; 5 | 6 | /** 7 | * Get offsets to the reference element 8 | * @method 9 | * @memberof Popper.Utils 10 | * @param {Object} state 11 | * @param {Element} popper - the popper element 12 | * @param {Element} reference - the reference element (the popper will be relative to this) 13 | * @param {Element} fixedPosition - is in fixed position mode 14 | * @returns {Object} An object containing the offsets which will be applied to the popper 15 | */ 16 | export default function getReferenceOffsets(state, popper, reference, fixedPosition = null) { 17 | const commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference)); 18 | return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition); 19 | } 20 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Scripts/src/utils/getRoot.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Finds the root node (document, shadowDOM root) of the given element 3 | * @method 4 | * @memberof Popper.Utils 5 | * @argument {Element} node 6 | * @returns {Element} root node 7 | */ 8 | export default function getRoot(node) { 9 | if (node.parentNode !== null) { 10 | return getRoot(node.parentNode); 11 | } 12 | 13 | return node; 14 | } 15 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Scripts/src/utils/getScroll.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Gets the scroll value of the given element in the given side (top and left) 3 | * @method 4 | * @memberof Popper.Utils 5 | * @argument {Element} element 6 | * @argument {String} side `top` or `left` 7 | * @returns {number} amount of scrolled pixels 8 | */ 9 | export default function getScroll(element, side = 'top') { 10 | const upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft'; 11 | const nodeName = element.nodeName; 12 | 13 | if (nodeName === 'BODY' || nodeName === 'HTML') { 14 | const html = element.ownerDocument.documentElement; 15 | const scrollingElement = element.ownerDocument.scrollingElement || html; 16 | return scrollingElement[upperSide]; 17 | } 18 | 19 | return element[upperSide]; 20 | } 21 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Scripts/src/utils/getScrollParent.js: -------------------------------------------------------------------------------- 1 | import getStyleComputedProperty from './getStyleComputedProperty'; 2 | import getParentNode from './getParentNode'; 3 | 4 | /** 5 | * Returns the scrolling parent of the given element 6 | * @method 7 | * @memberof Popper.Utils 8 | * @argument {Element} element 9 | * @returns {Element} scroll parent 10 | */ 11 | export default function getScrollParent(element) { 12 | // Return body, `getScroll` will take care to get the correct `scrollTop` from it 13 | if (!element) { 14 | return document.body 15 | } 16 | 17 | switch (element.nodeName) { 18 | case 'HTML': 19 | case 'BODY': 20 | return element.ownerDocument.body 21 | case '#document': 22 | return element.body 23 | } 24 | 25 | // Firefox want us to check `-x` and `-y` variations as well 26 | const { overflow, overflowX, overflowY } = getStyleComputedProperty(element); 27 | if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) { 28 | return element; 29 | } 30 | 31 | return getScrollParent(getParentNode(element)); 32 | } 33 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Scripts/src/utils/getStyleComputedProperty.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Get CSS computed property of the given element 3 | * @method 4 | * @memberof Popper.Utils 5 | * @argument {Eement} element 6 | * @argument {String} property 7 | */ 8 | export default function getStyleComputedProperty(element, property) { 9 | if (element.nodeType !== 1) { 10 | return []; 11 | } 12 | // NOTE: 1 DOM access here 13 | const window = element.ownerDocument.defaultView; 14 | const css = window.getComputedStyle(element, null); 15 | return property ? css[property] : css; 16 | } 17 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Scripts/src/utils/getSupportedPropertyName.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Get the prefixed supported property name 3 | * @method 4 | * @memberof Popper.Utils 5 | * @argument {String} property (camelCase) 6 | * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix) 7 | */ 8 | export default function getSupportedPropertyName(property) { 9 | const prefixes = [false, 'ms', 'Webkit', 'Moz', 'O']; 10 | const upperProp = property.charAt(0).toUpperCase() + property.slice(1); 11 | 12 | for (let i = 0; i < prefixes.length; i++) { 13 | const prefix = prefixes[i]; 14 | const toCheck = prefix ? `${prefix}${upperProp}` : property; 15 | if (typeof document.body.style[toCheck] !== 'undefined') { 16 | return toCheck; 17 | } 18 | } 19 | return null; 20 | } 21 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Scripts/src/utils/getViewportOffsetRectRelativeToArtbitraryNode.js: -------------------------------------------------------------------------------- 1 | import getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode'; 2 | import getScroll from './getScroll'; 3 | import getClientRect from './getClientRect'; 4 | 5 | export default function getViewportOffsetRectRelativeToArtbitraryNode(element, excludeScroll = false) { 6 | const html = element.ownerDocument.documentElement; 7 | const relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html); 8 | const width = Math.max(html.clientWidth, window.innerWidth || 0); 9 | const height = Math.max(html.clientHeight, window.innerHeight || 0); 10 | 11 | const scrollTop = !excludeScroll ? getScroll(html) : 0; 12 | const scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0; 13 | 14 | const offset = { 15 | top: scrollTop - relativeOffset.top + relativeOffset.marginTop, 16 | left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft, 17 | width, 18 | height, 19 | }; 20 | 21 | return getClientRect(offset); 22 | } 23 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Scripts/src/utils/getWindow.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Get the window associated with the element 3 | * @argument {Element} element 4 | * @returns {Window} 5 | */ 6 | export default function getWindow(element) { 7 | const ownerDocument = element.ownerDocument; 8 | return ownerDocument ? ownerDocument.defaultView : window; 9 | } 10 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Scripts/src/utils/getWindowSizes.js: -------------------------------------------------------------------------------- 1 | import isIE from './isIE'; 2 | 3 | function getSize(axis, body, html, computedStyle) { 4 | return Math.max( 5 | body[`offset${axis}`], 6 | body[`scroll${axis}`], 7 | html[`client${axis}`], 8 | html[`offset${axis}`], 9 | html[`scroll${axis}`], 10 | isIE(10) 11 | ? (parseInt(html[`offset${axis}`]) + 12 | parseInt(computedStyle[`margin${axis === 'Height' ? 'Top' : 'Left'}`]) + 13 | parseInt(computedStyle[`margin${axis === 'Height' ? 'Bottom' : 'Right'}`])) 14 | : 0 15 | ); 16 | } 17 | 18 | export default function getWindowSizes(document) { 19 | const body = document.body; 20 | const html = document.documentElement; 21 | const computedStyle = isIE(10) && getComputedStyle(html); 22 | 23 | return { 24 | height: getSize('Height', body, html, computedStyle), 25 | width: getSize('Width', body, html, computedStyle), 26 | }; 27 | } 28 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Scripts/src/utils/includeScroll.js: -------------------------------------------------------------------------------- 1 | import getScroll from './getScroll'; 2 | 3 | /* 4 | * Sum or subtract the element scroll values (left and top) from a given rect object 5 | * @method 6 | * @memberof Popper.Utils 7 | * @param {Object} rect - Rect object you want to change 8 | * @param {HTMLElement} element - The element from the function reads the scroll values 9 | * @param {Boolean} subtract - set to true if you want to subtract the scroll values 10 | * @return {Object} rect - The modifier rect object 11 | */ 12 | export default function includeScroll(rect, element, subtract = false) { 13 | const scrollTop = getScroll(element, 'top'); 14 | const scrollLeft = getScroll(element, 'left'); 15 | const modifier = subtract ? -1 : 1; 16 | rect.top += scrollTop * modifier; 17 | rect.bottom += scrollTop * modifier; 18 | rect.left += scrollLeft * modifier; 19 | rect.right += scrollLeft * modifier; 20 | return rect; 21 | } 22 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Scripts/src/utils/isBrowser.js: -------------------------------------------------------------------------------- 1 | export default typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined'; 2 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Scripts/src/utils/isFixed.js: -------------------------------------------------------------------------------- 1 | import getStyleComputedProperty from './getStyleComputedProperty'; 2 | import getParentNode from './getParentNode'; 3 | 4 | /** 5 | * Check if the given element is fixed or is inside a fixed parent 6 | * @method 7 | * @memberof Popper.Utils 8 | * @argument {Element} element 9 | * @argument {Element} customContainer 10 | * @returns {Boolean} answer to "isFixed?" 11 | */ 12 | export default function isFixed(element) { 13 | const nodeName = element.nodeName; 14 | if (nodeName === 'BODY' || nodeName === 'HTML') { 15 | return false; 16 | } 17 | if (getStyleComputedProperty(element, 'position') === 'fixed') { 18 | return true; 19 | } 20 | const parentNode = getParentNode(element); 21 | if (!parentNode) { 22 | return false; 23 | } 24 | return isFixed(parentNode); 25 | } 26 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Scripts/src/utils/isFunction.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Check if the given variable is a function 3 | * @method 4 | * @memberof Popper.Utils 5 | * @argument {Any} functionToCheck - variable to check 6 | * @returns {Boolean} answer to: is a function? 7 | */ 8 | export default function isFunction(functionToCheck) { 9 | const getType = {}; 10 | return ( 11 | functionToCheck && 12 | getType.toString.call(functionToCheck) === '[object Function]' 13 | ); 14 | } 15 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Scripts/src/utils/isIE.js: -------------------------------------------------------------------------------- 1 | import isBrowser from './isBrowser'; 2 | 3 | const isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode); 4 | const isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent); 5 | 6 | /** 7 | * Determines if the browser is Internet Explorer 8 | * @method 9 | * @memberof Popper.Utils 10 | * @param {Number} version to check 11 | * @returns {Boolean} isIE 12 | */ 13 | export default function isIE(version) { 14 | if (version === 11) { 15 | return isIE11; 16 | } 17 | if (version === 10) { 18 | return isIE10; 19 | } 20 | return isIE11 || isIE10; 21 | } 22 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Scripts/src/utils/isModifierEnabled.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Helper used to know if the given modifier is enabled. 3 | * @method 4 | * @memberof Popper.Utils 5 | * @returns {Boolean} 6 | */ 7 | export default function isModifierEnabled(modifiers, modifierName) { 8 | return modifiers.some( 9 | ({ name, enabled }) => enabled && name === modifierName 10 | ); 11 | } 12 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Scripts/src/utils/isModifierRequired.js: -------------------------------------------------------------------------------- 1 | import find from './find'; 2 | 3 | /** 4 | * Helper used to know if the given modifier depends from another one.
5 | * It checks if the needed modifier is listed and enabled. 6 | * @method 7 | * @memberof Popper.Utils 8 | * @param {Array} modifiers - list of modifiers 9 | * @param {String} requestingName - name of requesting modifier 10 | * @param {String} requestedName - name of requested modifier 11 | * @returns {Boolean} 12 | */ 13 | export default function isModifierRequired( 14 | modifiers, 15 | requestingName, 16 | requestedName 17 | ) { 18 | const requesting = find(modifiers, ({ name }) => name === requestingName); 19 | 20 | const isRequired = 21 | !!requesting && 22 | modifiers.some(modifier => { 23 | return ( 24 | modifier.name === requestedName && 25 | modifier.enabled && 26 | modifier.order < requesting.order 27 | ); 28 | }); 29 | 30 | if (!isRequired) { 31 | const requesting = `\`${requestingName}\``; 32 | const requested = `\`${requestedName}\``; 33 | console.warn( 34 | `${requested} modifier is required by ${requesting} modifier in order to work, be sure to include it before ${requesting}!` 35 | ); 36 | } 37 | return isRequired; 38 | } 39 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Scripts/src/utils/isNumeric.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Tells if a given input is a number 3 | * @method 4 | * @memberof Popper.Utils 5 | * @param {*} input to check 6 | * @return {Boolean} 7 | */ 8 | export default function isNumeric(n) { 9 | return n !== '' && !isNaN(parseFloat(n)) && isFinite(n); 10 | } 11 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Scripts/src/utils/isOffsetContainer.js: -------------------------------------------------------------------------------- 1 | import getOffsetParent from './getOffsetParent'; 2 | 3 | export default function isOffsetContainer(element) { 4 | const { nodeName } = element; 5 | if (nodeName === 'BODY') { 6 | return false; 7 | } 8 | return ( 9 | nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element 10 | ); 11 | } 12 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Scripts/src/utils/removeEventListeners.js: -------------------------------------------------------------------------------- 1 | import getWindow from './getWindow'; 2 | 3 | /** 4 | * Remove event listeners used to update the popper position 5 | * @method 6 | * @memberof Popper.Utils 7 | * @private 8 | */ 9 | export default function removeEventListeners(reference, state) { 10 | // Remove resize event listener on window 11 | getWindow(reference).removeEventListener('resize', state.updateBound); 12 | 13 | // Remove scroll event listener on scroll parents 14 | state.scrollParents.forEach(target => { 15 | target.removeEventListener('scroll', state.updateBound); 16 | }); 17 | 18 | // Reset state 19 | state.updateBound = null; 20 | state.scrollParents = []; 21 | state.scrollElement = null; 22 | state.eventsEnabled = false; 23 | return state; 24 | } 25 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Scripts/src/utils/setAttributes.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Set the attributes to the given popper 3 | * @method 4 | * @memberof Popper.Utils 5 | * @argument {Element} element - Element to apply the attributes to 6 | * @argument {Object} styles 7 | * Object with a list of properties and values which will be applied to the element 8 | */ 9 | export default function setAttributes(element, attributes) { 10 | Object.keys(attributes).forEach(function(prop) { 11 | const value = attributes[prop]; 12 | if (value !== false) { 13 | element.setAttribute(prop, attributes[prop]); 14 | } else { 15 | element.removeAttribute(prop); 16 | } 17 | }); 18 | } 19 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Scripts/src/utils/setStyles.js: -------------------------------------------------------------------------------- 1 | import isNumeric from './isNumeric'; 2 | 3 | /** 4 | * Set the style to the given popper 5 | * @method 6 | * @memberof Popper.Utils 7 | * @argument {Element} element - Element to apply the style to 8 | * @argument {Object} styles 9 | * Object with a list of properties and values which will be applied to the element 10 | */ 11 | export default function setStyles(element, styles) { 12 | Object.keys(styles).forEach(prop => { 13 | let unit = ''; 14 | // add unit if the value is numeric and is one of the following 15 | if ( 16 | ['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== 17 | -1 && 18 | isNumeric(styles[prop]) 19 | ) { 20 | unit = 'px'; 21 | } 22 | element.style[prop] = styles[prop] + unit; 23 | }); 24 | } 25 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Scripts/src/utils/setupEventListeners.js: -------------------------------------------------------------------------------- 1 | import getScrollParent from './getScrollParent'; 2 | import getWindow from './getWindow'; 3 | 4 | function attachToScrollParents(scrollParent, event, callback, scrollParents) { 5 | const isBody = scrollParent.nodeName === 'BODY'; 6 | const target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent; 7 | target.addEventListener(event, callback, { passive: true }); 8 | 9 | if (!isBody) { 10 | attachToScrollParents( 11 | getScrollParent(target.parentNode), 12 | event, 13 | callback, 14 | scrollParents 15 | ); 16 | } 17 | scrollParents.push(target); 18 | } 19 | 20 | /** 21 | * Setup needed event listeners used to update the popper position 22 | * @method 23 | * @memberof Popper.Utils 24 | * @private 25 | */ 26 | export default function setupEventListeners( 27 | reference, 28 | options, 29 | state, 30 | updateBound 31 | ) { 32 | // Resize event listener on window 33 | state.updateBound = updateBound; 34 | getWindow(reference).addEventListener('resize', state.updateBound, { passive: true }); 35 | 36 | // Scroll event listener on scroll parents 37 | const scrollElement = getScrollParent(reference); 38 | attachToScrollParents( 39 | scrollElement, 40 | 'scroll', 41 | state.updateBound, 42 | state.scrollParents 43 | ); 44 | state.scrollElement = scrollElement; 45 | state.eventsEnabled = true; 46 | 47 | return state; 48 | } 49 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Scripts/sweetalert/ie9.css: -------------------------------------------------------------------------------- 1 | /* Internet Explorer 9 has some special quirks that are fixed here */ 2 | /* The icons are not animated. */ 3 | /* This file is automatically merged into sweet-alert.min.js through Gulp */ 4 | 5 | /* Error icon */ 6 | .sweet-alert .icon.error .line.left { 7 | -ms-transform: rotate(45deg)\9; 8 | } 9 | .sweet-alert .icon.error .line.right { 10 | -ms-transform: rotate(-45deg)\9; 11 | } 12 | 13 | 14 | /* Success icon */ 15 | .sweet-alert .icon.success { 16 | border-color: transparent\9; 17 | } 18 | .sweet-alert .icon.success .line.tip { 19 | -ms-transform: rotate(45deg)\9; 20 | } 21 | .sweet-alert .icon.success .line.long { 22 | -ms-transform: rotate(-45deg)\9; 23 | } -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Scripts/sweetalert/sweet-alert.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 | 7 |
8 | 9 |
10 | 11 | 12 | 13 | 14 |
15 | 16 |
17 | 18 | 19 |
20 | 21 |
22 | 23 |
24 | 25 | 26 |
27 |
28 |
29 | 30 |
31 | 32 | 33 |

Title

34 |

Text

35 | 36 | 37 |
-------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Views/About/Index.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewBag.ActiveMenu = "About"; //The menu item will be active for this page. 3 | } 4 |
5 |

@string.Format(L("AboutFormat"), "ASP.NET Boilerplate")

6 |

@Html.Raw(L("About_AspNetBoilerplateDescription"))

7 |

@L("ForMoreInformation"): aspnetboilerplate.com.

8 |
-------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Views/AbpProjectNameWebViewPageBase.cs: -------------------------------------------------------------------------------- 1 | using Abp.Web.Mvc.Views; 2 | 3 | namespace AbpCompanyName.AbpProjectName.WebMpa.Views 4 | { 5 | public abstract class AbpProjectNameWebViewPageBase : AbpProjectNameWebViewPageBase 6 | { 7 | 8 | } 9 | 10 | public abstract class AbpProjectNameWebViewPageBase : AbpWebViewPage 11 | { 12 | protected AbpProjectNameWebViewPageBase() 13 | { 14 | LocalizationSourceName = AbpProjectNameConsts.LocalizationSourceName; 15 | } 16 | } 17 | } -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Views/Home/Index.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewBag.ActiveMenu = "Home"; //The menu item will be active for this page. 3 | } 4 |
5 |

@L("WelcomeMessage")!

6 |

@L("Home_ThisIsATemplate")

7 |
8 |
9 |

ASP.NET MVC

10 |

11 | @L("Home_AspNetDescription") 12 |

13 | @L("LearnMore").. 14 |
15 |
16 |

ASP.NET Boilerplate

17 |

18 | @L("Home_AspNetBoilerplateDescription") 19 |

20 | @L("LearnMore").. 21 |
22 |
23 |

@L("Others")

24 |

25 | @L("Home_OtherTools") 26 |

27 |
28 |
29 |
-------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Views/Layout/_LanguageSelection.cshtml: -------------------------------------------------------------------------------- 1 | @model AbpCompanyName.AbpProjectName.WebMpa.Models.Layout.LanguageSelectionViewModel 2 | 18 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Views/Shared/Error.cshtml: -------------------------------------------------------------------------------- 1 | @using Abp.Collections.Extensions 2 | @model Abp.Web.Mvc.Models.ErrorViewModel 3 |
4 |
5 |
6 |
7 |

@Model.ErrorInfo.Message

8 |
9 |
10 |

11 | @(!string.IsNullOrEmpty(Model.ErrorInfo.Details) ? Model.ErrorInfo.Details : Model.ErrorInfo.Message) 12 |

13 | @* Show validation errors *@ 14 | @if (!Model.ErrorInfo.ValidationErrors.IsNullOrEmpty()) 15 | { 16 |
    17 | @foreach (var validationError in Model.ErrorInfo.ValidationErrors) 18 | { 19 |
  • 20 | @validationError.Message 21 | @if (validationError.Members != null && validationError.Members.Any()) 22 | { 23 | (@string.Join(", ", validationError.Members)) 24 | } 25 |
  • 26 | } 27 |
28 | } 29 |
30 |
31 |
32 |
33 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Views/Shared/_TopBar.cshtml: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Views/UrlChecker.cs: -------------------------------------------------------------------------------- 1 | using System.Text.RegularExpressions; 2 | 3 | namespace AbpCompanyName.AbpProjectName.WebMpa.Views 4 | { 5 | public static class UrlChecker 6 | { 7 | private static readonly Regex UrlWithProtocolRegex = new Regex("^.{1,10}://.*$"); 8 | 9 | public static bool IsRooted(string url) 10 | { 11 | if (url.StartsWith("/")) 12 | { 13 | return true; 14 | } 15 | 16 | if (UrlWithProtocolRegex.IsMatch(url)) 17 | { 18 | return true; 19 | } 20 | 21 | return false; 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "~/Views/Shared/_Layout.cshtml"; 3 | } -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Web.Debug.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 17 | 18 | 29 | 30 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/Web.Release.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 17 | 18 | 19 | 30 | 31 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/css/main.css: -------------------------------------------------------------------------------- 1 | body { 2 | padding-top: 80px; 3 | } 4 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/css/main.css.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"main.css","sources":["main.less"],"names":[],"mappings":"AAAA;EACI,iBAAA"} -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/css/main.less: -------------------------------------------------------------------------------- 1 | body { 2 | padding-top: 80px; 3 | } -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/css/main.min.css: -------------------------------------------------------------------------------- 1 | body{padding-top:80px} -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/AbpCompanyName.AbpProjectName.WebMpa/favicon.ico -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/AbpCompanyName.AbpProjectName.WebMpa/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/AbpCompanyName.AbpProjectName.WebMpa/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/AbpCompanyName.AbpProjectName.WebMpa/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/AbpCompanyName.AbpProjectName.WebMpa/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/AbpCompanyName.AbpProjectName.WebMpa/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/images/abp-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/AbpCompanyName.AbpProjectName.WebMpa/images/abp-logo.png -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/js/main.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | abp.event.on('abp.notifications.received', function (userNotification) { 3 | abp.notifications.showUiNotifyForUserNotification(userNotification); 4 | }); 5 | })(); -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/log4net.Production.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebMpa/log4net.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Abp/Framework/scripts/libs/abp.blockUI.js: -------------------------------------------------------------------------------- 1 | var abp = abp || {}; 2 | (function () { 3 | 4 | if (!$.blockUI) { 5 | return; 6 | } 7 | 8 | $.extend($.blockUI.defaults, { 9 | message: ' ', 10 | css: { }, 11 | overlayCSS: { 12 | backgroundColor: '#AAA', 13 | opacity: 0.3, 14 | cursor: 'wait' 15 | } 16 | }); 17 | 18 | abp.ui.block = function (elm) { 19 | if (!elm) { 20 | $.blockUI(); 21 | } else { 22 | $(elm).block(); 23 | } 24 | }; 25 | 26 | abp.ui.unblock = function (elm) { 27 | if (!elm) { 28 | $.unblockUI(); 29 | } else { 30 | $(elm).unblock(); 31 | } 32 | }; 33 | 34 | })(); -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Abp/Framework/scripts/libs/abp.blockUI.min.js: -------------------------------------------------------------------------------- 1 | var abp=abp||{};(function(){$.blockUI&&($.extend($.blockUI.defaults,{message:" ",css:{},overlayCSS:{backgroundColor:"#AAA",opacity:.3,cursor:"wait"}}),abp.ui.block=function(n){n?$(n).block():$.blockUI()},abp.ui.unblock=function(n){n?$(n).unblock():$.unblockUI()})})(); -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Abp/Framework/scripts/libs/abp.jquery.d.ts: -------------------------------------------------------------------------------- 1 | declare namespace abp { 2 | 3 | //TODO: Gets JQuery.AjaxOptions and returns JQuery.Promise 4 | 5 | function ajax(userOptions: any): any; 6 | 7 | } -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Abp/Framework/scripts/libs/abp.moment.js: -------------------------------------------------------------------------------- 1 | var abp = abp || {}; 2 | (function () { 3 | if (!moment || !moment.tz) { 4 | return; 5 | } 6 | 7 | /* DEFAULTS *************************************************/ 8 | 9 | abp.timing = abp.timing || {}; 10 | 11 | /* FUNCTIONS **************************************************/ 12 | 13 | abp.timing.convertToUserTimezone = function (date) { 14 | var momentDate = moment(date); 15 | var targetDate = momentDate.clone().tz(abp.timing.timeZoneInfo.iana.timeZoneId); 16 | return targetDate; 17 | }; 18 | 19 | })(); -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Abp/Framework/scripts/libs/abp.moment.min.js: -------------------------------------------------------------------------------- 1 | var abp=abp||{};(function(){moment&&moment.tz&&(abp.timing=abp.timing||{},abp.timing.convertToUserTimezone=function(n){var t=moment(n);return t.clone().tz(abp.timing.timeZoneInfo.iana.timeZoneId)})})(); -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Abp/Framework/scripts/libs/abp.signalr.d.ts: -------------------------------------------------------------------------------- 1 | declare namespace abp { 2 | 3 | namespace signalr { 4 | 5 | let autoConnect: boolean; 6 | 7 | let qs: string; 8 | 9 | let remoteServiceBaseUrl: string; 10 | 11 | let url: string; 12 | 13 | function connect(): any; 14 | 15 | function startConnection(url: string, configureConnection: Function): Promise; 16 | 17 | namespace hubs { 18 | 19 | let common: any; 20 | 21 | } 22 | 23 | } 24 | 25 | } -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Abp/Framework/scripts/libs/abp.signalr.min.js: -------------------------------------------------------------------------------- 1 | var abp=abp||{};(function(n){if(n&&n.connection){abp.signalr=abp.signalr||{};abp.signalr.hubs=abp.signalr.hubs||{};abp.signalr.hubs.common=n.connection.abpCommonHub;var t=abp.signalr.hubs.common;t&&(t.client.getNotification=function(n){abp.event.trigger("abp.notifications.received",n)},abp.signalr.connect=function(){n.connection.hub.start().done(function(){abp.log.debug("Connected to SignalR server!");abp.event.trigger("abp.signalr.connected");t.server.register().done(function(){abp.log.debug("Registered to the SignalR server!")})})},abp.signalr.autoConnect===undefined&&(abp.signalr.autoConnect=!0),abp.signalr.autoConnect&&abp.signalr.connect(),n.connection.hub.disconnected(function(){abp.signalr.autoConnect&&setTimeout(function(){n.connection.hub.state===n.signalR.connectionState.disconnected&&n.connection.hub.start()},5e3)}))}})(jQuery); -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Abp/Framework/scripts/libs/abp.spin.min.js: -------------------------------------------------------------------------------- 1 | var abp=abp||{};(function(){$.fn.spin&&(abp.libs=abp.libs||{},abp.libs.spinjs={spinner_config:{lines:11,length:0,width:10,radius:20,corners:1,trail:60,speed:1.2},spinner_config_inner_busy_indicator:{lines:11,length:0,width:4,radius:7,corners:1,trail:60,speed:1.2}},abp.ui.setBusy=function(n,t){var i,r,u;t=t||{};(t.always||t["finally"])&&(t={promise:t});i=$.extend({},t);n?(r=$(n),u=r.find(".abp-busy-indicator"),u.length?u.spin(abp.libs.spinjs.spinner_config_inner_busy_indicator):(i.blockUI!=!1&&abp.ui.block(n),r.spin(abp.libs.spinjs.spinner_config))):(i.blockUI!=!1&&abp.ui.block(),$("body").spin(abp.libs.spinjs.spinner_config));i.promise&&(i.promise.always?i.promise.always(function(){abp.ui.clearBusy(n)}):i.promise["finally"]&&i.promise["finally"](function(){abp.ui.clearBusy(n)}))},abp.ui.clearBusy=function(n){if(n){var t=$(n),i=t.find(".abp-busy-indicator");i.length?i.spin(!1):(abp.ui.unblock(n),t.spin(!1))}else abp.ui.unblock(),$("body").spin(!1)})})(); -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Abp/Framework/scripts/libs/abp.sweet-alert.min.js: -------------------------------------------------------------------------------- 1 | var abp=abp||{};(function(n){if(sweetAlert&&n){abp.libs=abp.libs||{};abp.libs.sweetAlert={config:{"default":{},info:{icon:"info"},success:{icon:"success"},warn:{icon:"warning"},error:{icon:"error"},confirm:{icon:"warning",title:"Are you sure?",buttons:["Cancel","Yes"]}}};var t=function(t,i,r,u,f){var e,o,s;return f=f||{},e={},r&&(e.title=r),f.isHtml?(delete f.isHtml,o=document.createElement("div"),o.style="position: relative;",o.innerHTML=i,e.content=o):e.text=i,s=n.extend({},abp.libs.sweetAlert.config["default"],abp.libs.sweetAlert.config[t],e,f),n.Deferred(function(n){sweetAlert(s).then(function(t){u&&u(t);n.resolve(t)})})};abp.message.info=function(n,i,r){return t("info",n,i,null,r)};abp.message.success=function(n,i,r){return t("success",n,i,null,r)};abp.message.warn=function(n,i,r){return t("warn",n,i,null,r)};abp.message.error=function(n,i,r){return t("error",n,i,null,r)};abp.message.confirm=function(n,i,r,u){return t("confirm",n,i,r,u)};abp.event.on("abp.dynamicScriptsInitialized",function(){abp.libs.sweetAlert.config.confirm.title=abp.localization.abpWeb("AreYouSure");abp.libs.sweetAlert.config.confirm.buttons=[abp.localization.abpWeb("Cancel"),abp.localization.abpWeb("Yes")]})}})(jQuery); -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Abp/Framework/scripts/libs/abp.toastr.min.js: -------------------------------------------------------------------------------- 1 | (function(n){n(["toastr","abp-web-resources"],function(n,t){return function(){if(n&&t){n.options.positionClass="toast-bottom-right";var i=function(t,i,r,u){n[t](i,r,u)};return t.notify.success=function(n,t,r){i("success",n,t,r)},t.notify.info=function(n,t,r){i("info",n,t,r)},t.notify.warn=function(n,t,r){i("warning",n,t,r)},t.notify.error=function(n,t,r){i("error",n,t,r)},t}}()})})(typeof define=="function"&&define.amd?define:function(n,t){typeof module!="undefined"&&module.exports?module.exports=t(require("toastr"),require("abp-web-resources")):window.abp=t(window.toastr,window.abp)}); -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Abp/Framework/scripts/libs/requirejs/plugins/service.js: -------------------------------------------------------------------------------- 1 | define(function () { 2 | return { 3 | load: function (name, req, onload, config) { 4 | var url = abp.appPath + 'api/AbpServiceProxies/Get?name=' + name; 5 | req([url], function (value) { 6 | onload(value); 7 | }); 8 | } 9 | }; 10 | }); -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Abp/Framework/scripts/libs/requirejs/plugins/service.min.js: -------------------------------------------------------------------------------- 1 | define(function(){return{load:function(n,t,i){var r=abp.appPath+"api/AbpServiceProxies/Get?name="+n;t([r],function(n){i(n)})}}}); -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Abp/Framework/scripts/utils/ie10fix.js: -------------------------------------------------------------------------------- 1 | //Windows Phone 8 and Internet Explorer 10 FIX 2 | if (navigator.userAgent.match(/IEMobile\/10\.0/)) { 3 | var msViewportStyle = document.createElement("style"); 4 | msViewportStyle.appendChild( 5 | document.createTextNode( 6 | "@-ms-viewport{width:auto!important}" 7 | ) 8 | ); 9 | 10 | document.getElementsByTagName("head")[0].appendChild(msViewportStyle); 11 | } -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Abp/Framework/scripts/utils/ie10fix.min.js: -------------------------------------------------------------------------------- 1 | if(navigator.userAgent.match(/IEMobile\/10\.0/)){var msViewportStyle=document.createElement("style");msViewportStyle.appendChild(document.createTextNode("@-ms-viewport{width:auto!important}"));document.getElementsByTagName("head")[0].appendChild(msViewportStyle)} -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Abp/Framework/styles/abp.css: -------------------------------------------------------------------------------- 1 | .abp-clickable { 2 | cursor: pointer; 3 | } 4 | .abp-dock-top { 5 | left: 0; 6 | top: 0; 7 | right: 0; 8 | position: absolute; 9 | margin: 0; 10 | } 11 | .abp-dock-right { 12 | right: 0; 13 | top: 0; 14 | bottom: 0; 15 | position: absolute; 16 | margin: 0; 17 | } 18 | .abp-dock-bottom { 19 | left: 0; 20 | right: 0; 21 | bottom: 0; 22 | position: absolute; 23 | margin: 0; 24 | } 25 | .abp-dock-left { 26 | left: 0; 27 | top: 0; 28 | bottom: 0; 29 | position: absolute; 30 | margin: 0; 31 | } 32 | .abp-busy-indicator-small { 33 | width: 36px; 34 | height: 36px; 35 | } 36 | .abp-busy-indicator-small.abp-dock-left, 37 | .abp-busy-indicator-small.abp-dock-right { 38 | height: auto; 39 | } 40 | /*# sourceMappingURL=abp.css.map */ -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Abp/Framework/styles/abp.css.map: -------------------------------------------------------------------------------- 1 | "{\"version\":3,\"sources\":[\"abp.less\",\"abp.mixings.less\"],\"names\":[],\"mappings\":\"AAIA;EACI,eAAA;;AAKJ;ECSI,OAAA;EACA,MAAA;EACA,QAAA;EA0CA,kBAAA;EACA,SAAA;;ADlDJ;ECWI,QAAA;EACA,MAAA;EACA,SAAA;EAoCA,kBAAA;EACA,SAAA;;AD9CJ;ECaI,OAAA;EACA,QAAA;EACA,SAAA;EA8BA,kBAAA;EACA,SAAA;;AD1CJ;ECeI,OAAA;EACA,MAAA;EACA,SAAA;EAwBA,kBAAA;EACA,SAAA;;ADhCJ;EACI,WAAA;EACA,YAAA;;AAEA,yBAAC;AACD,yBAAC;EACG,YAAA\",\"file\":\"abp.css\"}" -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Abp/Framework/styles/abp.less: -------------------------------------------------------------------------------- 1 | @import "abp.mixings.less"; 2 | 3 | // COMMON STYLES ////////////////////////////////////////////////////////////// 4 | 5 | .abp-clickable { 6 | cursor: pointer; 7 | } 8 | 9 | // Docking 10 | 11 | .abp-dock-top { 12 | .abp-dock(top); 13 | } 14 | 15 | .abp-dock-right { 16 | .abp-dock(right); 17 | } 18 | 19 | .abp-dock-bottom { 20 | .abp-dock(bottom); 21 | } 22 | 23 | .abp-dock-left { 24 | .abp-dock(left); 25 | } 26 | 27 | //Busy indicator 28 | 29 | .abp-busy-indicator { 30 | 31 | } 32 | 33 | .abp-busy-indicator-small { 34 | width: 36px; 35 | height: 36px; 36 | 37 | &.abp-dock-left, 38 | &.abp-dock-right { 39 | height: auto; 40 | } 41 | } -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Abp/Framework/styles/abp.min.css: -------------------------------------------------------------------------------- 1 | .abp-clickable{cursor:pointer}.abp-dock-top{left:0;top:0;right:0;position:absolute;margin:0}.abp-dock-right{right:0;top:0;bottom:0;position:absolute;margin:0}.abp-dock-bottom{left:0;right:0;bottom:0;position:absolute;margin:0}.abp-dock-left{left:0;top:0;bottom:0;position:absolute;margin:0}.abp-busy-indicator-small{width:36px;height:36px}.abp-busy-indicator-small.abp-dock-left,.abp-busy-indicator-small.abp-dock-right{height:auto} -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Abp/Framework/styles/abp.mixings.css: -------------------------------------------------------------------------------- 1 | /*# sourceMappingURL=abp.mixings.css.map */ -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Abp/Framework/styles/abp.mixings.css.map: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Abp/Framework/styles/abp.mixings.min.css: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Abp/Framework/styles/utils/ie10fix.css: -------------------------------------------------------------------------------- 1 | @-webkit-viewport { 2 | width: device-width; 3 | } 4 | 5 | @-moz-viewport { 6 | width: device-width; 7 | } 8 | 9 | @-ms-viewport { 10 | width: device-width; 11 | } 12 | 13 | @-o-viewport { 14 | width: device-width; 15 | } 16 | 17 | @viewport 18 | 19 | { 20 | width: device-width; 21 | } -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/App/Main/app.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | 'use strict'; 3 | 4 | var app = angular.module('app', [ 5 | 'ngAnimate', 6 | 'ngSanitize', 7 | 8 | 'ui.router', 9 | 'ui.bootstrap', 10 | 'ui.jq', 11 | 12 | 'abp' 13 | ]); 14 | 15 | //Configuration for Angular UI routing. 16 | app.config([ 17 | '$stateProvider', '$urlRouterProvider', '$locationProvider', '$qProvider', 18 | function ($stateProvider, $urlRouterProvider, $locationProvider, $qProvider) { 19 | $locationProvider.hashPrefix(''); 20 | $urlRouterProvider.otherwise('/'); 21 | $qProvider.errorOnUnhandledRejections(false); 22 | 23 | $stateProvider 24 | .state('home', { 25 | url: '/', 26 | templateUrl: '/App/Main/views/home/home.cshtml', 27 | menu: 'Home' //Matches to name of 'Home' menu in AbpProjectNameNavigationProvider 28 | }) 29 | .state('about', { 30 | url: '/about', 31 | templateUrl: '/App/Main/views/about/about.cshtml', 32 | menu: 'About' //Matches to name of 'About' menu in AbpProjectNameNavigationProvider 33 | }); 34 | } 35 | ]); 36 | })(); -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/App/Main/images/abp-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/AbpCompanyName.AbpProjectName.WebSpaAngular/App/Main/images/abp-logo.png -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/App/Main/main.css: -------------------------------------------------------------------------------- 1 | /* Application specific styles */ 2 | body { 3 | padding-top: 80px; 4 | } 5 | /* Styles for angular ui transition animations */ 6 | .angular-animation-container { 7 | position: relative; 8 | } 9 | .shuffle-animation.ng-enter, 10 | .shuffle-animation.ng-leave { 11 | position: absolute; 12 | } 13 | .shuffle-animation.ng-enter { 14 | -moz-transition: ease-out all 0.3s 0.4s; 15 | -o-transition: ease-out all 0.3s 0.4s; 16 | -webkit-transition: ease-out all 0.3s 0.4s; 17 | transition: ease-out all 0.3s 0.4s; 18 | left: 2em; 19 | opacity: 0; 20 | } 21 | .shuffle-animation.ng-enter.ng-enter-active { 22 | left: 0; 23 | opacity: 1; 24 | } 25 | .shuffle-animation.ng-leave { 26 | -moz-transition: 0.3s ease-out all; 27 | -o-transition: 0.3s ease-out all; 28 | -webkit-transition: 0.3s ease-out all; 29 | transition: 0.3s ease-out all; 30 | left: 0; 31 | opacity: 1; 32 | } 33 | .shuffle-animation.ng-leave.ng-leave-active { 34 | left: 2em; 35 | opacity: 0; 36 | } 37 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/App/Main/main.less: -------------------------------------------------------------------------------- 1 | /* Application specific styles */ 2 | 3 | body { 4 | padding-top: 80px; 5 | } 6 | 7 | /* Styles for angular ui transition animations */ 8 | 9 | .angular-animation-container { 10 | position: relative; 11 | } 12 | 13 | .shuffle-animation.ng-enter, 14 | .shuffle-animation.ng-leave { 15 | position: absolute; 16 | } 17 | 18 | .shuffle-animation.ng-enter { 19 | -moz-transition: ease-out all 0.3s 0.4s; 20 | -o-transition: ease-out all 0.3s 0.4s; 21 | -webkit-transition: ease-out all 0.3s 0.4s; 22 | transition: ease-out all 0.3s 0.4s; 23 | left: 2em; 24 | opacity: 0; 25 | 26 | &.ng-enter-active { 27 | left: 0; 28 | opacity: 1; 29 | } 30 | } 31 | 32 | .shuffle-animation.ng-leave { 33 | -moz-transition: 0.3s ease-out all; 34 | -o-transition: 0.3s ease-out all; 35 | -webkit-transition: 0.3s ease-out all; 36 | transition: 0.3s ease-out all; 37 | left: 0; 38 | opacity: 1; 39 | 40 | &.ng-leave-active { 41 | left: 2em; 42 | opacity: 0; 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/App/Main/main.min.css: -------------------------------------------------------------------------------- 1 | body{padding-top:80px}.angular-animation-container{position:relative}.shuffle-animation.ng-enter,.shuffle-animation.ng-leave{position:absolute}.shuffle-animation.ng-enter{-moz-transition:ease-out all .3s .4s;-o-transition:ease-out all .3s .4s;-webkit-transition:ease-out all .3s .4s;transition:ease-out all .3s .4s;left:2em;opacity:0}.shuffle-animation.ng-enter.ng-enter-active{left:0;opacity:1}.shuffle-animation.ng-leave{-moz-transition:.3s ease-out all;-o-transition:.3s ease-out all;-webkit-transition:.3s ease-out all;transition:.3s ease-out all;left:0;opacity:1}.shuffle-animation.ng-leave.ng-leave-active{left:2em;opacity:0} -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/App/Main/views/about/about.cshtml: -------------------------------------------------------------------------------- 1 | 
2 |

@string.Format(L("AboutFormat"), "ASP.NET Boilerplate")

3 |

@Html.Raw(L("About_AspNetBoilerplateDescription"))

4 |

@L("ForMoreInformation"): aspnetboilerplate.com.

5 |
-------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/App/Main/views/about/about.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | var controllerId = 'app.views.about'; 3 | angular.module('app').controller(controllerId, [ 4 | '$scope', function ($scope) { 5 | var vm = this; 6 | //About logic... 7 | } 8 | ]); 9 | })(); -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/App/Main/views/home/home.cshtml: -------------------------------------------------------------------------------- 1 | 
2 |

@L("WelcomeMessage")

3 |

@L("Home_ThisIsATemplate")

4 |
5 |
6 |

ASP.NET MVC

7 |

8 | @L("Home_AspNetDescription") 9 |

10 | @L("LearnMore").. 11 |
12 |
13 |

ASP.NET Boilerplate

14 |

15 | @L("Home_AspNetBoilerplateDescription") 16 |

17 | @L("LearnMore").. 18 |
19 |
20 |

Angularjs

21 |

22 | @L("Home_AngularDescription") 23 |

24 | @L("LearnMore").. 25 |
26 |
27 |
-------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/App/Main/views/home/home.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | var controllerId = 'app.views.home'; 3 | angular.module('app').controller(controllerId, [ 4 | '$scope', function($scope) { 5 | var vm = this; 6 | //Home logic... 7 | } 8 | ]); 9 | })(); -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/App/Main/views/layout/header.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | var controllerId = 'app.views.layout.header'; 3 | angular.module('app').controller(controllerId, [ 4 | '$rootScope', '$state', function ($rootScope, $state) { 5 | var vm = this; 6 | 7 | vm.languages = abp.localization.languages; 8 | vm.currentLanguage = abp.localization.currentLanguage; 9 | 10 | vm.menu = abp.nav.menus.MainMenu; 11 | vm.currentMenuName = $state.current.menu; 12 | 13 | $rootScope.$on('$stateChangeSuccess', function (event, toState, toParams, fromState, fromParams) { 14 | vm.currentMenuName = toState.menu; 15 | }); 16 | 17 | abp.event.on('abp.notifications.received', function (userNotification) { 18 | abp.notifications.showUiNotifyForUserNotification(userNotification); 19 | }); 20 | } 21 | ]); 22 | })(); -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/App/Main/views/layout/layout.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | var controllerId = 'app.views.layout'; 3 | angular.module('app').controller(controllerId, [ 4 | '$scope', function ($scope) { 5 | var vm = this; 6 | //Layout logic... 7 | }]); 8 | })(); -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/App_Start/RouteConfig.cs: -------------------------------------------------------------------------------- 1 | using System.Web.Http; 2 | using System.Web.Mvc; 3 | using System.Web.Routing; 4 | 5 | namespace AbpCompanyName.AbpProjectName.WebSpaAngular 6 | { 7 | public static class RouteConfig 8 | { 9 | public static void RegisterRoutes(RouteCollection routes) 10 | { 11 | routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 12 | 13 | //ASP.NET Web API Route Config 14 | routes.MapHttpRoute( 15 | name: "DefaultApi", 16 | routeTemplate: "api/{controller}/{id}", 17 | defaults: new { id = RouteParameter.Optional } 18 | ); 19 | 20 | routes.MapRoute( 21 | name: "Default", 22 | url: "{controller}/{action}/{id}", 23 | defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 24 | ); 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Content/flags/famfamfam-flags.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/AbpCompanyName.AbpProjectName.WebSpaAngular/Content/flags/famfamfam-flags.png -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Content/themes/base/accordion.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery UI Accordion 1.11.4 3 | * http://jqueryui.com 4 | * 5 | * Copyright jQuery Foundation and other contributors 6 | * Released under the MIT license. 7 | * http://jquery.org/license 8 | * 9 | * http://api.jqueryui.com/accordion/#theming 10 | */ 11 | .ui-accordion .ui-accordion-header { 12 | display: block; 13 | cursor: pointer; 14 | position: relative; 15 | margin: 2px 0 0 0; 16 | padding: .5em .5em .5em .7em; 17 | min-height: 0; /* support: IE7 */ 18 | font-size: 100%; 19 | } 20 | .ui-accordion .ui-accordion-icons { 21 | padding-left: 2.2em; 22 | } 23 | .ui-accordion .ui-accordion-icons .ui-accordion-icons { 24 | padding-left: 2.2em; 25 | } 26 | .ui-accordion .ui-accordion-header .ui-accordion-header-icon { 27 | position: absolute; 28 | left: .5em; 29 | top: 50%; 30 | margin-top: -8px; 31 | } 32 | .ui-accordion .ui-accordion-content { 33 | padding: 1em 2.2em; 34 | border-top: 0; 35 | overflow: auto; 36 | } 37 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Content/themes/base/all.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery UI CSS Framework 1.11.4 3 | * http://jqueryui.com 4 | * 5 | * Copyright jQuery Foundation and other contributors 6 | * Released under the MIT license. 7 | * http://jquery.org/license 8 | * 9 | * http://api.jqueryui.com/category/theming/ 10 | */ 11 | @import "base.css"; 12 | @import "theme.css"; 13 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Content/themes/base/autocomplete.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery UI Autocomplete 1.11.4 3 | * http://jqueryui.com 4 | * 5 | * Copyright jQuery Foundation and other contributors 6 | * Released under the MIT license. 7 | * http://jquery.org/license 8 | * 9 | * http://api.jqueryui.com/autocomplete/#theming 10 | */ 11 | .ui-autocomplete { 12 | position: absolute; 13 | top: 0; 14 | left: 0; 15 | cursor: default; 16 | } 17 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Content/themes/base/base.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery UI CSS Framework 1.11.4 3 | * http://jqueryui.com 4 | * 5 | * Copyright jQuery Foundation and other contributors 6 | * Released under the MIT license. 7 | * http://jquery.org/license 8 | * 9 | * http://api.jqueryui.com/category/theming/ 10 | */ 11 | @import url("core.css"); 12 | 13 | @import url("accordion.css"); 14 | @import url("autocomplete.css"); 15 | @import url("button.css"); 16 | @import url("datepicker.css"); 17 | @import url("dialog.css"); 18 | @import url("draggable.css"); 19 | @import url("menu.css"); 20 | @import url("progressbar.css"); 21 | @import url("resizable.css"); 22 | @import url("selectable.css"); 23 | @import url("selectmenu.css"); 24 | @import url("sortable.css"); 25 | @import url("slider.css"); 26 | @import url("spinner.css"); 27 | @import url("tabs.css"); 28 | @import url("tooltip.css"); 29 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Content/themes/base/draggable.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery UI Draggable 1.11.4 3 | * http://jqueryui.com 4 | * 5 | * Copyright jQuery Foundation and other contributors 6 | * Released under the MIT license. 7 | * http://jquery.org/license 8 | */ 9 | .ui-draggable-handle { 10 | -ms-touch-action: none; 11 | touch-action: none; 12 | } 13 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Content/themes/base/images/ui-bg_flat_0_aaaaaa_40x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/AbpCompanyName.AbpProjectName.WebSpaAngular/Content/themes/base/images/ui-bg_flat_0_aaaaaa_40x100.png -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Content/themes/base/images/ui-bg_flat_75_ffffff_40x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/AbpCompanyName.AbpProjectName.WebSpaAngular/Content/themes/base/images/ui-bg_flat_75_ffffff_40x100.png -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Content/themes/base/images/ui-bg_glass_55_fbf9ee_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/AbpCompanyName.AbpProjectName.WebSpaAngular/Content/themes/base/images/ui-bg_glass_55_fbf9ee_1x400.png -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Content/themes/base/images/ui-bg_glass_65_ffffff_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/AbpCompanyName.AbpProjectName.WebSpaAngular/Content/themes/base/images/ui-bg_glass_65_ffffff_1x400.png -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Content/themes/base/images/ui-bg_glass_75_dadada_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/AbpCompanyName.AbpProjectName.WebSpaAngular/Content/themes/base/images/ui-bg_glass_75_dadada_1x400.png -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Content/themes/base/images/ui-bg_glass_75_e6e6e6_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/AbpCompanyName.AbpProjectName.WebSpaAngular/Content/themes/base/images/ui-bg_glass_75_e6e6e6_1x400.png -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Content/themes/base/images/ui-bg_glass_95_fef1ec_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/AbpCompanyName.AbpProjectName.WebSpaAngular/Content/themes/base/images/ui-bg_glass_95_fef1ec_1x400.png -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Content/themes/base/images/ui-bg_highlight-soft_75_cccccc_1x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/AbpCompanyName.AbpProjectName.WebSpaAngular/Content/themes/base/images/ui-bg_highlight-soft_75_cccccc_1x100.png -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Content/themes/base/images/ui-icons_222222_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/AbpCompanyName.AbpProjectName.WebSpaAngular/Content/themes/base/images/ui-icons_222222_256x240.png -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Content/themes/base/images/ui-icons_2e83ff_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/AbpCompanyName.AbpProjectName.WebSpaAngular/Content/themes/base/images/ui-icons_2e83ff_256x240.png -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Content/themes/base/images/ui-icons_444444_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/AbpCompanyName.AbpProjectName.WebSpaAngular/Content/themes/base/images/ui-icons_444444_256x240.png -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Content/themes/base/images/ui-icons_454545_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/AbpCompanyName.AbpProjectName.WebSpaAngular/Content/themes/base/images/ui-icons_454545_256x240.png -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Content/themes/base/images/ui-icons_555555_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/AbpCompanyName.AbpProjectName.WebSpaAngular/Content/themes/base/images/ui-icons_555555_256x240.png -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Content/themes/base/images/ui-icons_777620_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/AbpCompanyName.AbpProjectName.WebSpaAngular/Content/themes/base/images/ui-icons_777620_256x240.png -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Content/themes/base/images/ui-icons_777777_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/AbpCompanyName.AbpProjectName.WebSpaAngular/Content/themes/base/images/ui-icons_777777_256x240.png -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Content/themes/base/images/ui-icons_888888_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/AbpCompanyName.AbpProjectName.WebSpaAngular/Content/themes/base/images/ui-icons_888888_256x240.png -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Content/themes/base/images/ui-icons_cc0000_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/AbpCompanyName.AbpProjectName.WebSpaAngular/Content/themes/base/images/ui-icons_cc0000_256x240.png -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Content/themes/base/images/ui-icons_cd0a0a_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/AbpCompanyName.AbpProjectName.WebSpaAngular/Content/themes/base/images/ui-icons_cd0a0a_256x240.png -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Content/themes/base/images/ui-icons_ffffff_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/AbpCompanyName.AbpProjectName.WebSpaAngular/Content/themes/base/images/ui-icons_ffffff_256x240.png -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Content/themes/base/menu.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery UI Menu 1.11.4 3 | * http://jqueryui.com 4 | * 5 | * Copyright jQuery Foundation and other contributors 6 | * Released under the MIT license. 7 | * http://jquery.org/license 8 | * 9 | * http://api.jqueryui.com/menu/#theming 10 | */ 11 | .ui-menu { 12 | list-style: none; 13 | padding: 0; 14 | margin: 0; 15 | display: block; 16 | outline: none; 17 | } 18 | .ui-menu .ui-menu { 19 | position: absolute; 20 | } 21 | .ui-menu .ui-menu-item { 22 | position: relative; 23 | margin: 0; 24 | padding: 3px 1em 3px .4em; 25 | cursor: pointer; 26 | min-height: 0; /* support: IE7 */ 27 | /* support: IE10, see #8844 */ 28 | list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"); 29 | } 30 | .ui-menu .ui-menu-divider { 31 | margin: 5px 0; 32 | height: 0; 33 | font-size: 0; 34 | line-height: 0; 35 | border-width: 1px 0 0 0; 36 | } 37 | .ui-menu .ui-state-focus, 38 | .ui-menu .ui-state-active { 39 | margin: -1px; 40 | } 41 | 42 | /* icon support */ 43 | .ui-menu-icons { 44 | position: relative; 45 | } 46 | .ui-menu-icons .ui-menu-item { 47 | padding-left: 2em; 48 | } 49 | 50 | /* left-aligned */ 51 | .ui-menu .ui-icon { 52 | position: absolute; 53 | top: 0; 54 | bottom: 0; 55 | left: .2em; 56 | margin: auto 0; 57 | } 58 | 59 | /* right-aligned */ 60 | .ui-menu .ui-menu-icon { 61 | left: auto; 62 | right: 0; 63 | } 64 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Content/themes/base/selectable.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery UI Selectable 1.11.4 3 | * http://jqueryui.com 4 | * 5 | * Copyright jQuery Foundation and other contributors 6 | * Released under the MIT license. 7 | * http://jquery.org/license 8 | */ 9 | .ui-selectable { 10 | -ms-touch-action: none; 11 | touch-action: none; 12 | } 13 | .ui-selectable-helper { 14 | position: absolute; 15 | z-index: 100; 16 | border: 1px dotted black; 17 | } 18 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Content/themes/base/selectmenu.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery UI Selectmenu 1.11.4 3 | * http://jqueryui.com 4 | * 5 | * Copyright jQuery Foundation and other contributors 6 | * Released under the MIT license. 7 | * http://jquery.org/license 8 | * 9 | * http://api.jqueryui.com/selectmenu/#theming 10 | */ 11 | .ui-selectmenu-menu { 12 | padding: 0; 13 | margin: 0; 14 | position: absolute; 15 | top: 0; 16 | left: 0; 17 | display: none; 18 | } 19 | .ui-selectmenu-menu .ui-menu { 20 | overflow: auto; 21 | /* Support: IE7 */ 22 | overflow-x: hidden; 23 | padding-bottom: 1px; 24 | } 25 | .ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup { 26 | font-size: 1em; 27 | font-weight: bold; 28 | line-height: 1.5; 29 | padding: 2px 0.4em; 30 | margin: 0.5em 0 0 0; 31 | height: auto; 32 | border: 0; 33 | } 34 | .ui-selectmenu-open { 35 | display: block; 36 | } 37 | .ui-selectmenu-button { 38 | display: inline-block; 39 | overflow: hidden; 40 | position: relative; 41 | text-decoration: none; 42 | cursor: pointer; 43 | } 44 | .ui-selectmenu-button span.ui-icon { 45 | right: 0.5em; 46 | left: auto; 47 | margin-top: -8px; 48 | position: absolute; 49 | top: 50%; 50 | } 51 | .ui-selectmenu-button span.ui-selectmenu-text { 52 | text-align: left; 53 | padding: 0.4em 2.1em 0.4em 1em; 54 | display: block; 55 | line-height: 1.4; 56 | overflow: hidden; 57 | text-overflow: ellipsis; 58 | white-space: nowrap; 59 | } 60 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Content/themes/base/sortable.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery UI Sortable 1.11.4 3 | * http://jqueryui.com 4 | * 5 | * Copyright jQuery Foundation and other contributors 6 | * Released under the MIT license. 7 | * http://jquery.org/license 8 | */ 9 | .ui-sortable-handle { 10 | -ms-touch-action: none; 11 | touch-action: none; 12 | } 13 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Content/themes/base/tabs.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery UI Tabs 1.11.4 3 | * http://jqueryui.com 4 | * 5 | * Copyright jQuery Foundation and other contributors 6 | * Released under the MIT license. 7 | * http://jquery.org/license 8 | * 9 | * http://api.jqueryui.com/tabs/#theming 10 | */ 11 | .ui-tabs { 12 | position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ 13 | padding: .2em; 14 | } 15 | .ui-tabs .ui-tabs-nav { 16 | margin: 0; 17 | padding: .2em .2em 0; 18 | } 19 | .ui-tabs .ui-tabs-nav li { 20 | list-style: none; 21 | float: left; 22 | position: relative; 23 | top: 0; 24 | margin: 1px .2em 0 0; 25 | border-bottom-width: 0; 26 | padding: 0; 27 | white-space: nowrap; 28 | } 29 | .ui-tabs .ui-tabs-nav .ui-tabs-anchor { 30 | float: left; 31 | padding: .5em 1em; 32 | text-decoration: none; 33 | } 34 | .ui-tabs .ui-tabs-nav li.ui-tabs-active { 35 | margin-bottom: -1px; 36 | padding-bottom: 1px; 37 | } 38 | .ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor, 39 | .ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor, 40 | .ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor { 41 | cursor: text; 42 | } 43 | .ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor { 44 | cursor: pointer; 45 | } 46 | .ui-tabs .ui-tabs-panel { 47 | display: block; 48 | border-width: 0; 49 | padding: 1em 1.4em; 50 | background: none; 51 | } 52 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Content/themes/base/tooltip.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery UI Tooltip 1.11.4 3 | * http://jqueryui.com 4 | * 5 | * Copyright jQuery Foundation and other contributors 6 | * Released under the MIT license. 7 | * http://jquery.org/license 8 | * 9 | * http://api.jqueryui.com/tooltip/#theming 10 | */ 11 | .ui-tooltip { 12 | padding: 8px; 13 | position: absolute; 14 | z-index: 9999; 15 | max-width: 300px; 16 | -webkit-box-shadow: 0 0 5px #aaa; 17 | box-shadow: 0 0 5px #aaa; 18 | } 19 | body .ui-tooltip { 20 | border-width: 2px; 21 | } 22 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Controllers/AbpProjectNameControllerBase.cs: -------------------------------------------------------------------------------- 1 | using Abp.Web.Mvc.Controllers; 2 | 3 | namespace AbpCompanyName.AbpProjectName.WebSpaAngular.Controllers 4 | { 5 | /// 6 | /// Derive all Controllers from this class. 7 | /// 8 | public abstract class AbpProjectNameControllerBase : AbpController 9 | { 10 | protected AbpProjectNameControllerBase() 11 | { 12 | LocalizationSourceName = AbpProjectNameConsts.LocalizationSourceName; 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Controllers/HomeController.cs: -------------------------------------------------------------------------------- 1 | using System.Web.Mvc; 2 | 3 | namespace AbpCompanyName.AbpProjectName.WebSpaAngular.Controllers 4 | { 5 | public class HomeController : AbpProjectNameControllerBase 6 | { 7 | public ActionResult Index() 8 | { 9 | return View("~/App/Main/views/layout/layout.cshtml"); //Layout of the angular application. 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Global.asax: -------------------------------------------------------------------------------- 1 | <%@ Application Codebehind="Global.asax.cs" Inherits="AbpCompanyName.AbpProjectName.WebSpaAngular.MvcApplication" Language="C#" %> 2 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Global.asax.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Abp.Castle.Logging.Log4Net; 3 | using Abp.Web; 4 | using Castle.Facilities.Logging; 5 | 6 | namespace AbpCompanyName.AbpProjectName.WebSpaAngular 7 | { 8 | public class MvcApplication : AbpWebApplication 9 | { 10 | protected override void Application_Start(object sender, EventArgs e) 11 | { 12 | #if DEBUG 13 | AbpBootstrapper.IocManager.IocContainer.AddFacility( 14 | f => f.UseAbpLog4Net().WithConfig(Server.MapPath("log4net.config")) 15 | ); 16 | #else 17 | AbpBootstrapper.IocManager.IocContainer.AddFacility( 18 | f => f.UseAbpLog4Net().WithConfig(Server.MapPath("log4net.Production.config")) 19 | ); 20 | #endif 21 | 22 | base.Application_Start(sender, e); 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Localization/AbpProjectName/AbpProjectName-zh-CN.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Localization/AbpProjectName/AbpProjectName.ja.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Scripts/angular-cookies.min.js: -------------------------------------------------------------------------------- 1 | /* 2 | AngularJS v1.8.2 3 | (c) 2010-2020 Google LLC. http://angularjs.org 4 | License: MIT 5 | */ 6 | (function(n,e){'use strict';function m(d,k,l){var a=l.baseHref(),h=d[0];return function(f,b,c){var d,g;c=c||{};g=c.expires;d=e.isDefined(c.path)?c.path:a;e.isUndefined(b)&&(g="Thu, 01 Jan 1970 00:00:00 GMT",b="");e.isString(g)&&(g=new Date(g));b=encodeURIComponent(f)+"="+encodeURIComponent(b);b=b+(d?";path="+d:"")+(c.domain?";domain="+c.domain:"");b+=g?";expires="+g.toUTCString():"";b+=c.secure?";secure":"";b+=c.samesite?";samesite="+c.samesite:"";c=b.length+1;4096 4096 bytes)!");h.cookie=b}}e.module("ngCookies",["ng"]).info({angularVersion:"1.8.2"}).provider("$cookies",[function(){var d=this.defaults={};this.$get=["$$cookieReader","$$cookieWriter",function(k,l){return{get:function(a){return k()[a]},getObject:function(a){return(a=this.get(a))?e.fromJson(a):a},getAll:function(){return k()},put:function(a,h,f){l(a,h,f?e.extend({},d,f):d)},putObject:function(a,d,f){this.put(a,e.toJson(d),f)},remove:function(a,h){l(a,void 0,h?e.extend({},d,h):d)}}}]}]);m.$inject= 8 | ["$document","$log","$browser"];e.module("ngCookies").provider("$$cookieWriter",function(){this.$get=m})})(window,window.angular); 9 | //# sourceMappingURL=angular-cookies.min.js.map 10 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Scripts/angular-csp.css: -------------------------------------------------------------------------------- 1 | /* Include this file in your html if you are using the CSP mode. */ 2 | 3 | @charset "UTF-8"; 4 | 5 | [ng\:cloak], 6 | [ng-cloak], 7 | [data-ng-cloak], 8 | [x-ng-cloak], 9 | .ng-cloak, 10 | .x-ng-cloak, 11 | .ng-hide:not(.ng-hide-animate) { 12 | display: none !important; 13 | } 14 | 15 | ng\:form { 16 | display: block; 17 | } 18 | 19 | .ng-animate-shim { 20 | visibility:hidden; 21 | } 22 | 23 | .ng-anchor { 24 | position:absolute; 25 | } 26 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Scripts/angular-ui/ui-utils-ieshiv.min.js: -------------------------------------------------------------------------------- 1 | /** 2 | * angular-ui-utils - Swiss-Army-Knife of AngularJS tools (with no external dependencies!) 3 | * @version v0.2.3 - 2015-03-30 4 | * @link http://angular-ui.github.com 5 | * @license MIT License, http://www.opensource.org/licenses/MIT 6 | */ 7 | !function(a,b){"use strict";var c=["ngInclude","ngPluralize","ngView","ngSwitch","uiCurrency","uiCodemirror","uiDate","uiEvent","uiKeypress","uiKeyup","uiKeydown","uiMask","uiMapInfoWindow","uiMapMarker","uiMapPolyline","uiMapPolygon","uiMapRectangle","uiMapCircle","uiMapGroundOverlay","uiModal","uiReset","uiScrollfix","uiSelect2","uiShow","uiHide","uiToggle","uiSortable","uiTinymce"];a.myCustomTags=a.myCustomTags||[],c.push.apply(c,a.myCustomTags);for(var d=function(a){var b=[],c=a.replace(/([A-Z])/g,function(a){return" "+a.toLowerCase()}),d=c.split(" ");if(1===d.length){var e=d[0];b.push(e),b.push("x-"+e),b.push("data-"+e)}else{var f=d[0],g=d.slice(1).join("-");b.push(f+":"+g),b.push(f+"-"+g),b.push("x-"+f+"-"+g),b.push("data-"+f+"-"+g)}return b},e=0,f=c.length;f>e;e++)for(var g=d(c[e]),h=0,i=g.length;i>h;h++){var j=g[h];b.createElement(j)}}(window,document); -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Scripts/src/methods/destroy.js: -------------------------------------------------------------------------------- 1 | import isModifierEnabled from '../utils/isModifierEnabled'; 2 | import getSupportedPropertyName from '../utils/getSupportedPropertyName'; 3 | 4 | /** 5 | * Destroys the popper. 6 | * @method 7 | * @memberof Popper 8 | */ 9 | export default function destroy() { 10 | this.state.isDestroyed = true; 11 | 12 | // touch DOM only if `applyStyle` modifier is enabled 13 | if (isModifierEnabled(this.modifiers, 'applyStyle')) { 14 | this.popper.removeAttribute('x-placement'); 15 | this.popper.style.position = ''; 16 | this.popper.style.top = ''; 17 | this.popper.style.left = ''; 18 | this.popper.style.right = ''; 19 | this.popper.style.bottom = ''; 20 | this.popper.style.willChange = ''; 21 | this.popper.style[getSupportedPropertyName('transform')] = ''; 22 | } 23 | 24 | this.disableEventListeners(); 25 | 26 | // remove the popper if user explicitly asked for the deletion on destroy 27 | // do not use `remove` because IE11 doesn't support it 28 | if (this.options.removeOnDestroy) { 29 | this.popper.parentNode.removeChild(this.popper); 30 | } 31 | return this; 32 | } 33 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Scripts/src/methods/disableEventListeners.js: -------------------------------------------------------------------------------- 1 | import removeEventListeners from '../utils/removeEventListeners'; 2 | 3 | /** 4 | * It will remove resize/scroll events and won't recalculate popper position 5 | * when they are triggered. It also won't trigger `onUpdate` callback anymore, 6 | * unless you call `update` method manually. 7 | * @method 8 | * @memberof Popper 9 | */ 10 | export default function disableEventListeners() { 11 | if (this.state.eventsEnabled) { 12 | cancelAnimationFrame(this.scheduleUpdate); 13 | this.state = removeEventListeners(this.reference, this.state); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Scripts/src/methods/enableEventListeners.js: -------------------------------------------------------------------------------- 1 | import setupEventListeners from '../utils/setupEventListeners'; 2 | 3 | /** 4 | * It will add resize/scroll events and start recalculating 5 | * position of the popper element when they are triggered. 6 | * @method 7 | * @memberof Popper 8 | */ 9 | export default function enableEventListeners() { 10 | if (!this.state.eventsEnabled) { 11 | this.state = setupEventListeners( 12 | this.reference, 13 | this.options, 14 | this.state, 15 | this.scheduleUpdate 16 | ); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Scripts/src/methods/placements.js: -------------------------------------------------------------------------------- 1 | /** 2 | * List of accepted placements to use as values of the `placement` option.
3 | * Valid placements are: 4 | * - `auto` 5 | * - `top` 6 | * - `right` 7 | * - `bottom` 8 | * - `left` 9 | * 10 | * Each placement can have a variation from this list: 11 | * - `-start` 12 | * - `-end` 13 | * 14 | * Variations are interpreted easily if you think of them as the left to right 15 | * written languages. Horizontally (`top` and `bottom`), `start` is left and `end` 16 | * is right.
17 | * Vertically (`left` and `right`), `start` is top and `end` is bottom. 18 | * 19 | * Some valid examples are: 20 | * - `top-end` (on top of reference, right aligned) 21 | * - `right-start` (on right of reference, top aligned) 22 | * - `bottom` (on bottom, centered) 23 | * - `auto-end` (on the side with more space available, alignment depends by placement) 24 | * 25 | * @static 26 | * @type {Array} 27 | * @enum {String} 28 | * @readonly 29 | * @method placements 30 | * @memberof Popper 31 | */ 32 | export default [ 33 | 'auto-start', 34 | 'auto', 35 | 'auto-end', 36 | 'top-start', 37 | 'top', 38 | 'top-end', 39 | 'right-start', 40 | 'right', 41 | 'right-end', 42 | 'bottom-end', 43 | 'bottom', 44 | 'bottom-start', 45 | 'left-end', 46 | 'left', 47 | 'left-start', 48 | ]; 49 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Scripts/src/modifiers/hide.js: -------------------------------------------------------------------------------- 1 | import isModifierRequired from '../utils/isModifierRequired'; 2 | import find from '../utils/find'; 3 | 4 | /** 5 | * @function 6 | * @memberof Modifiers 7 | * @argument {Object} data - The data object generated by update method 8 | * @argument {Object} options - Modifiers configuration and options 9 | * @returns {Object} The data object, properly modified 10 | */ 11 | export default function hide(data) { 12 | if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) { 13 | return data; 14 | } 15 | 16 | const refRect = data.offsets.reference; 17 | const bound = find( 18 | data.instance.modifiers, 19 | modifier => modifier.name === 'preventOverflow' 20 | ).boundaries; 21 | 22 | if ( 23 | refRect.bottom < bound.top || 24 | refRect.left > bound.right || 25 | refRect.top > bound.bottom || 26 | refRect.right < bound.left 27 | ) { 28 | // Avoid unnecessary DOM access if visibility hasn't changed 29 | if (data.hide === true) { 30 | return data; 31 | } 32 | 33 | data.hide = true; 34 | data.attributes['x-out-of-boundaries'] = ''; 35 | } else { 36 | // Avoid unnecessary DOM access if visibility hasn't changed 37 | if (data.hide === false) { 38 | return data; 39 | } 40 | 41 | data.hide = false; 42 | data.attributes['x-out-of-boundaries'] = false; 43 | } 44 | 45 | return data; 46 | } 47 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Scripts/src/modifiers/inner.js: -------------------------------------------------------------------------------- 1 | import getClientRect from '../utils/getClientRect'; 2 | import getOppositePlacement from '../utils/getOppositePlacement'; 3 | 4 | /** 5 | * @function 6 | * @memberof Modifiers 7 | * @argument {Object} data - The data object generated by `update` method 8 | * @argument {Object} options - Modifiers configuration and options 9 | * @returns {Object} The data object, properly modified 10 | */ 11 | export default function inner(data) { 12 | const placement = data.placement; 13 | const basePlacement = placement.split('-')[0]; 14 | const { popper, reference } = data.offsets; 15 | const isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1; 16 | 17 | const subtractLength = ['top', 'left'].indexOf(basePlacement) === -1; 18 | 19 | popper[isHoriz ? 'left' : 'top'] = 20 | reference[basePlacement] - 21 | (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0); 22 | 23 | data.placement = getOppositePlacement(placement); 24 | data.offsets.popper = getClientRect(popper); 25 | 26 | return data; 27 | } 28 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Scripts/src/modifiers/keepTogether.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @function 3 | * @memberof Modifiers 4 | * @argument {Object} data - The data object generated by update method 5 | * @argument {Object} options - Modifiers configuration and options 6 | * @returns {Object} The data object, properly modified 7 | */ 8 | export default function keepTogether(data) { 9 | const { popper, reference } = data.offsets; 10 | const placement = data.placement.split('-')[0]; 11 | const floor = Math.floor; 12 | const isVertical = ['top', 'bottom'].indexOf(placement) !== -1; 13 | const side = isVertical ? 'right' : 'bottom'; 14 | const opSide = isVertical ? 'left' : 'top'; 15 | const measurement = isVertical ? 'width' : 'height'; 16 | 17 | if (popper[side] < floor(reference[opSide])) { 18 | data.offsets.popper[opSide] = 19 | floor(reference[opSide]) - popper[measurement]; 20 | } 21 | if (popper[opSide] > floor(reference[side])) { 22 | data.offsets.popper[opSide] = floor(reference[side]); 23 | } 24 | 25 | return data; 26 | } 27 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Scripts/src/modifiers/shift.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @function 3 | * @memberof Modifiers 4 | * @argument {Object} data - The data object generated by `update` method 5 | * @argument {Object} options - Modifiers configuration and options 6 | * @returns {Object} The data object, properly modified 7 | */ 8 | export default function shift(data) { 9 | const placement = data.placement; 10 | const basePlacement = placement.split('-')[0]; 11 | const shiftvariation = placement.split('-')[1]; 12 | 13 | // if shift shiftvariation is specified, run the modifier 14 | if (shiftvariation) { 15 | const { reference, popper } = data.offsets; 16 | const isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1; 17 | const side = isVertical ? 'left' : 'top'; 18 | const measurement = isVertical ? 'width' : 'height'; 19 | 20 | const shiftOffsets = { 21 | start: { [side]: reference[side] }, 22 | end: { 23 | [side]: reference[side] + reference[measurement] - popper[measurement], 24 | }, 25 | }; 26 | 27 | data.offsets.popper = { ...popper, ...shiftOffsets[shiftvariation] }; 28 | } 29 | 30 | return data; 31 | } 32 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Scripts/src/utils/clockwise.js: -------------------------------------------------------------------------------- 1 | import placements from '../methods/placements'; 2 | 3 | // Get rid of `auto` `auto-start` and `auto-end` 4 | const validPlacements = placements.slice(3); 5 | 6 | /** 7 | * Given an initial placement, returns all the subsequent placements 8 | * clockwise (or counter-clockwise). 9 | * 10 | * @method 11 | * @memberof Popper.Utils 12 | * @argument {String} placement - A valid placement (it accepts variations) 13 | * @argument {Boolean} counter - Set to true to walk the placements counterclockwise 14 | * @returns {Array} placements including their variations 15 | */ 16 | export default function clockwise(placement, counter = false) { 17 | const index = validPlacements.indexOf(placement); 18 | const arr = validPlacements 19 | .slice(index + 1) 20 | .concat(validPlacements.slice(0, index)); 21 | return counter ? arr.reverse() : arr; 22 | } 23 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Scripts/src/utils/debounce.js: -------------------------------------------------------------------------------- 1 | import isBrowser from './isBrowser'; 2 | 3 | const timeoutDuration = (function(){ 4 | const longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox']; 5 | for (let i = 0; i < longerTimeoutBrowsers.length; i += 1) { 6 | if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) { 7 | return 1; 8 | } 9 | } 10 | return 0; 11 | }()); 12 | 13 | export function microtaskDebounce(fn) { 14 | let called = false 15 | return () => { 16 | if (called) { 17 | return 18 | } 19 | called = true 20 | window.Promise.resolve().then(() => { 21 | called = false 22 | fn() 23 | }) 24 | } 25 | } 26 | 27 | export function taskDebounce(fn) { 28 | let scheduled = false; 29 | return () => { 30 | if (!scheduled) { 31 | scheduled = true; 32 | setTimeout(() => { 33 | scheduled = false; 34 | fn(); 35 | }, timeoutDuration); 36 | } 37 | }; 38 | } 39 | 40 | const supportsMicroTasks = isBrowser && window.Promise 41 | 42 | 43 | /** 44 | * Create a debounced version of a method, that's asynchronously deferred 45 | * but called in the minimum time possible. 46 | * 47 | * @method 48 | * @memberof Popper.Utils 49 | * @argument {Function} fn 50 | * @returns {Function} 51 | */ 52 | export default (supportsMicroTasks 53 | ? microtaskDebounce 54 | : taskDebounce); 55 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Scripts/src/utils/find.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Mimics the `find` method of Array 3 | * @method 4 | * @memberof Popper.Utils 5 | * @argument {Array} arr 6 | * @argument prop 7 | * @argument value 8 | * @returns index or -1 9 | */ 10 | export default function find(arr, check) { 11 | // use native find if supported 12 | if (Array.prototype.find) { 13 | return arr.find(check); 14 | } 15 | 16 | // use `filter` to obtain the same behavior of `find` 17 | return arr.filter(check)[0]; 18 | } 19 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Scripts/src/utils/findIndex.js: -------------------------------------------------------------------------------- 1 | import find from './find'; 2 | 3 | /** 4 | * Return the index of the matching object 5 | * @method 6 | * @memberof Popper.Utils 7 | * @argument {Array} arr 8 | * @argument prop 9 | * @argument value 10 | * @returns index or -1 11 | */ 12 | export default function findIndex(arr, prop, value) { 13 | // use native findIndex if supported 14 | if (Array.prototype.findIndex) { 15 | return arr.findIndex(cur => cur[prop] === value); 16 | } 17 | 18 | // use `find` + `indexOf` if `findIndex` isn't supported 19 | const match = find(arr, obj => obj[prop] === value); 20 | return arr.indexOf(match); 21 | } 22 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Scripts/src/utils/getBordersSize.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Helper to detect borders of a given element 3 | * @method 4 | * @memberof Popper.Utils 5 | * @param {CSSStyleDeclaration} styles 6 | * Result of `getStyleComputedProperty` on the given element 7 | * @param {String} axis - `x` or `y` 8 | * @return {number} borders - The borders size of the given axis 9 | */ 10 | 11 | export default function getBordersSize(styles, axis) { 12 | const sideA = axis === 'x' ? 'Left' : 'Top'; 13 | const sideB = sideA === 'Left' ? 'Right' : 'Bottom'; 14 | 15 | return ( 16 | parseFloat(styles[`border${sideA}Width`]) + 17 | parseFloat(styles[`border${sideB}Width`]) 18 | ); 19 | } 20 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Scripts/src/utils/getClientRect.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Given element offsets, generate an output similar to getBoundingClientRect 3 | * @method 4 | * @memberof Popper.Utils 5 | * @argument {Object} offsets 6 | * @returns {Object} ClientRect like output 7 | */ 8 | export default function getClientRect(offsets) { 9 | return { 10 | ...offsets, 11 | right: offsets.left + offsets.width, 12 | bottom: offsets.top + offsets.height, 13 | }; 14 | } 15 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Scripts/src/utils/getFixedPositionOffsetParent.js: -------------------------------------------------------------------------------- 1 | import getStyleComputedProperty from './getStyleComputedProperty'; 2 | import isIE from './isIE'; 3 | /** 4 | * Finds the first parent of an element that has a transformed property defined 5 | * @method 6 | * @memberof Popper.Utils 7 | * @argument {Element} element 8 | * @returns {Element} first transformed parent or documentElement 9 | */ 10 | 11 | export default function getFixedPositionOffsetParent(element) { 12 | // This check is needed to avoid errors in case one of the elements isn't defined for any reason 13 | if (!element || !element.parentElement || isIE()) { 14 | return document.documentElement; 15 | } 16 | let el = element.parentElement; 17 | while (el && getStyleComputedProperty(el, 'transform') === 'none') { 18 | el = el.parentElement; 19 | } 20 | return el || document.documentElement; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Scripts/src/utils/getOffsetParent.js: -------------------------------------------------------------------------------- 1 | import getStyleComputedProperty from './getStyleComputedProperty'; 2 | import isIE from './isIE'; 3 | /** 4 | * Returns the offset parent of the given element 5 | * @method 6 | * @memberof Popper.Utils 7 | * @argument {Element} element 8 | * @returns {Element} offset parent 9 | */ 10 | export default function getOffsetParent(element) { 11 | if (!element) { 12 | return document.documentElement; 13 | } 14 | 15 | const noOffsetParent = isIE(10) ? document.body : null; 16 | 17 | // NOTE: 1 DOM access here 18 | let offsetParent = element.offsetParent || null; 19 | // Skip hidden elements which don't have an offsetParent 20 | while (offsetParent === noOffsetParent && element.nextElementSibling) { 21 | offsetParent = (element = element.nextElementSibling).offsetParent; 22 | } 23 | 24 | const nodeName = offsetParent && offsetParent.nodeName; 25 | 26 | if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') { 27 | return element ? element.ownerDocument.documentElement : document.documentElement; 28 | } 29 | 30 | // .offsetParent will return the closest TH, TD or TABLE in case 31 | // no offsetParent is present, I hate this job... 32 | if ( 33 | ['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && 34 | getStyleComputedProperty(offsetParent, 'position') === 'static' 35 | ) { 36 | return getOffsetParent(offsetParent); 37 | } 38 | 39 | return offsetParent; 40 | } 41 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Scripts/src/utils/getOffsetRect.js: -------------------------------------------------------------------------------- 1 | import getWindowSizes from './getWindowSizes'; 2 | import getClientRect from './getClientRect'; 3 | 4 | /** 5 | * Get the position of the given element, relative to its offset parent 6 | * @method 7 | * @memberof Popper.Utils 8 | * @param {Element} element 9 | * @return {Object} position - Coordinates of the element and its `scrollTop` 10 | */ 11 | export default function getOffsetRect(element) { 12 | let elementRect; 13 | if (element.nodeName === 'HTML') { 14 | const { width, height } = getWindowSizes(element.ownerDocument); 15 | elementRect = { 16 | width, 17 | height, 18 | left: 0, 19 | top: 0, 20 | }; 21 | } else { 22 | elementRect = { 23 | width: element.offsetWidth, 24 | height: element.offsetHeight, 25 | left: element.offsetLeft, 26 | top: element.offsetTop, 27 | }; 28 | } 29 | 30 | // position 31 | return getClientRect(elementRect); 32 | } 33 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Scripts/src/utils/getOppositePlacement.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Get the opposite placement of the given one 3 | * @method 4 | * @memberof Popper.Utils 5 | * @argument {String} placement 6 | * @returns {String} flipped placement 7 | */ 8 | export default function getOppositePlacement(placement) { 9 | const hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' }; 10 | return placement.replace(/left|right|bottom|top/g, matched => hash[matched]); 11 | } 12 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Scripts/src/utils/getOppositeVariation.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Get the opposite placement variation of the given one 3 | * @method 4 | * @memberof Popper.Utils 5 | * @argument {String} placement variation 6 | * @returns {String} flipped placement variation 7 | */ 8 | export default function getOppositeVariation(variation) { 9 | if (variation === 'end') { 10 | return 'start'; 11 | } else if (variation === 'start') { 12 | return 'end'; 13 | } 14 | return variation; 15 | } 16 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Scripts/src/utils/getOuterSizes.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Get the outer sizes of the given element (offset size + margins) 3 | * @method 4 | * @memberof Popper.Utils 5 | * @argument {Element} element 6 | * @returns {Object} object containing width and height properties 7 | */ 8 | export default function getOuterSizes(element) { 9 | const window = element.ownerDocument.defaultView; 10 | const styles = window.getComputedStyle(element); 11 | const x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0); 12 | const y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0); 13 | const result = { 14 | width: element.offsetWidth + y, 15 | height: element.offsetHeight + x, 16 | }; 17 | return result; 18 | } 19 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Scripts/src/utils/getParentNode.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Returns the parentNode or the host of the element 3 | * @method 4 | * @memberof Popper.Utils 5 | * @argument {Element} element 6 | * @returns {Element} parent 7 | */ 8 | export default function getParentNode(element) { 9 | if (element.nodeName === 'HTML') { 10 | return element; 11 | } 12 | return element.parentNode || element.host; 13 | } 14 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Scripts/src/utils/getReferenceNode.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Returns the reference node of the reference object, or the reference object itself. 3 | * @method 4 | * @memberof Popper.Utils 5 | * @param {Element|Object} reference - the reference element (the popper will be relative to this) 6 | * @returns {Element} parent 7 | */ 8 | export default function getReferenceNode(reference) { 9 | return reference && reference.referenceNode ? reference.referenceNode : reference; 10 | } 11 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Scripts/src/utils/getReferenceOffsets.js: -------------------------------------------------------------------------------- 1 | import findCommonOffsetParent from './findCommonOffsetParent'; 2 | import getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode'; 3 | import getFixedPositionOffsetParent from './getFixedPositionOffsetParent'; 4 | import getReferenceNode from './getReferenceNode'; 5 | 6 | /** 7 | * Get offsets to the reference element 8 | * @method 9 | * @memberof Popper.Utils 10 | * @param {Object} state 11 | * @param {Element} popper - the popper element 12 | * @param {Element} reference - the reference element (the popper will be relative to this) 13 | * @param {Element} fixedPosition - is in fixed position mode 14 | * @returns {Object} An object containing the offsets which will be applied to the popper 15 | */ 16 | export default function getReferenceOffsets(state, popper, reference, fixedPosition = null) { 17 | const commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference)); 18 | return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition); 19 | } 20 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Scripts/src/utils/getRoot.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Finds the root node (document, shadowDOM root) of the given element 3 | * @method 4 | * @memberof Popper.Utils 5 | * @argument {Element} node 6 | * @returns {Element} root node 7 | */ 8 | export default function getRoot(node) { 9 | if (node.parentNode !== null) { 10 | return getRoot(node.parentNode); 11 | } 12 | 13 | return node; 14 | } 15 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Scripts/src/utils/getScroll.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Gets the scroll value of the given element in the given side (top and left) 3 | * @method 4 | * @memberof Popper.Utils 5 | * @argument {Element} element 6 | * @argument {String} side `top` or `left` 7 | * @returns {number} amount of scrolled pixels 8 | */ 9 | export default function getScroll(element, side = 'top') { 10 | const upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft'; 11 | const nodeName = element.nodeName; 12 | 13 | if (nodeName === 'BODY' || nodeName === 'HTML') { 14 | const html = element.ownerDocument.documentElement; 15 | const scrollingElement = element.ownerDocument.scrollingElement || html; 16 | return scrollingElement[upperSide]; 17 | } 18 | 19 | return element[upperSide]; 20 | } 21 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Scripts/src/utils/getScrollParent.js: -------------------------------------------------------------------------------- 1 | import getStyleComputedProperty from './getStyleComputedProperty'; 2 | import getParentNode from './getParentNode'; 3 | 4 | /** 5 | * Returns the scrolling parent of the given element 6 | * @method 7 | * @memberof Popper.Utils 8 | * @argument {Element} element 9 | * @returns {Element} scroll parent 10 | */ 11 | export default function getScrollParent(element) { 12 | // Return body, `getScroll` will take care to get the correct `scrollTop` from it 13 | if (!element) { 14 | return document.body 15 | } 16 | 17 | switch (element.nodeName) { 18 | case 'HTML': 19 | case 'BODY': 20 | return element.ownerDocument.body 21 | case '#document': 22 | return element.body 23 | } 24 | 25 | // Firefox want us to check `-x` and `-y` variations as well 26 | const { overflow, overflowX, overflowY } = getStyleComputedProperty(element); 27 | if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) { 28 | return element; 29 | } 30 | 31 | return getScrollParent(getParentNode(element)); 32 | } 33 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Scripts/src/utils/getStyleComputedProperty.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Get CSS computed property of the given element 3 | * @method 4 | * @memberof Popper.Utils 5 | * @argument {Eement} element 6 | * @argument {String} property 7 | */ 8 | export default function getStyleComputedProperty(element, property) { 9 | if (element.nodeType !== 1) { 10 | return []; 11 | } 12 | // NOTE: 1 DOM access here 13 | const window = element.ownerDocument.defaultView; 14 | const css = window.getComputedStyle(element, null); 15 | return property ? css[property] : css; 16 | } 17 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Scripts/src/utils/getSupportedPropertyName.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Get the prefixed supported property name 3 | * @method 4 | * @memberof Popper.Utils 5 | * @argument {String} property (camelCase) 6 | * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix) 7 | */ 8 | export default function getSupportedPropertyName(property) { 9 | const prefixes = [false, 'ms', 'Webkit', 'Moz', 'O']; 10 | const upperProp = property.charAt(0).toUpperCase() + property.slice(1); 11 | 12 | for (let i = 0; i < prefixes.length; i++) { 13 | const prefix = prefixes[i]; 14 | const toCheck = prefix ? `${prefix}${upperProp}` : property; 15 | if (typeof document.body.style[toCheck] !== 'undefined') { 16 | return toCheck; 17 | } 18 | } 19 | return null; 20 | } 21 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Scripts/src/utils/getViewportOffsetRectRelativeToArtbitraryNode.js: -------------------------------------------------------------------------------- 1 | import getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode'; 2 | import getScroll from './getScroll'; 3 | import getClientRect from './getClientRect'; 4 | 5 | export default function getViewportOffsetRectRelativeToArtbitraryNode(element, excludeScroll = false) { 6 | const html = element.ownerDocument.documentElement; 7 | const relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html); 8 | const width = Math.max(html.clientWidth, window.innerWidth || 0); 9 | const height = Math.max(html.clientHeight, window.innerHeight || 0); 10 | 11 | const scrollTop = !excludeScroll ? getScroll(html) : 0; 12 | const scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0; 13 | 14 | const offset = { 15 | top: scrollTop - relativeOffset.top + relativeOffset.marginTop, 16 | left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft, 17 | width, 18 | height, 19 | }; 20 | 21 | return getClientRect(offset); 22 | } 23 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Scripts/src/utils/getWindow.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Get the window associated with the element 3 | * @argument {Element} element 4 | * @returns {Window} 5 | */ 6 | export default function getWindow(element) { 7 | const ownerDocument = element.ownerDocument; 8 | return ownerDocument ? ownerDocument.defaultView : window; 9 | } 10 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Scripts/src/utils/getWindowSizes.js: -------------------------------------------------------------------------------- 1 | import isIE from './isIE'; 2 | 3 | function getSize(axis, body, html, computedStyle) { 4 | return Math.max( 5 | body[`offset${axis}`], 6 | body[`scroll${axis}`], 7 | html[`client${axis}`], 8 | html[`offset${axis}`], 9 | html[`scroll${axis}`], 10 | isIE(10) 11 | ? (parseInt(html[`offset${axis}`]) + 12 | parseInt(computedStyle[`margin${axis === 'Height' ? 'Top' : 'Left'}`]) + 13 | parseInt(computedStyle[`margin${axis === 'Height' ? 'Bottom' : 'Right'}`])) 14 | : 0 15 | ); 16 | } 17 | 18 | export default function getWindowSizes(document) { 19 | const body = document.body; 20 | const html = document.documentElement; 21 | const computedStyle = isIE(10) && getComputedStyle(html); 22 | 23 | return { 24 | height: getSize('Height', body, html, computedStyle), 25 | width: getSize('Width', body, html, computedStyle), 26 | }; 27 | } 28 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Scripts/src/utils/includeScroll.js: -------------------------------------------------------------------------------- 1 | import getScroll from './getScroll'; 2 | 3 | /* 4 | * Sum or subtract the element scroll values (left and top) from a given rect object 5 | * @method 6 | * @memberof Popper.Utils 7 | * @param {Object} rect - Rect object you want to change 8 | * @param {HTMLElement} element - The element from the function reads the scroll values 9 | * @param {Boolean} subtract - set to true if you want to subtract the scroll values 10 | * @return {Object} rect - The modifier rect object 11 | */ 12 | export default function includeScroll(rect, element, subtract = false) { 13 | const scrollTop = getScroll(element, 'top'); 14 | const scrollLeft = getScroll(element, 'left'); 15 | const modifier = subtract ? -1 : 1; 16 | rect.top += scrollTop * modifier; 17 | rect.bottom += scrollTop * modifier; 18 | rect.left += scrollLeft * modifier; 19 | rect.right += scrollLeft * modifier; 20 | return rect; 21 | } 22 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Scripts/src/utils/isBrowser.js: -------------------------------------------------------------------------------- 1 | export default typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined'; 2 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Scripts/src/utils/isFixed.js: -------------------------------------------------------------------------------- 1 | import getStyleComputedProperty from './getStyleComputedProperty'; 2 | import getParentNode from './getParentNode'; 3 | 4 | /** 5 | * Check if the given element is fixed or is inside a fixed parent 6 | * @method 7 | * @memberof Popper.Utils 8 | * @argument {Element} element 9 | * @argument {Element} customContainer 10 | * @returns {Boolean} answer to "isFixed?" 11 | */ 12 | export default function isFixed(element) { 13 | const nodeName = element.nodeName; 14 | if (nodeName === 'BODY' || nodeName === 'HTML') { 15 | return false; 16 | } 17 | if (getStyleComputedProperty(element, 'position') === 'fixed') { 18 | return true; 19 | } 20 | const parentNode = getParentNode(element); 21 | if (!parentNode) { 22 | return false; 23 | } 24 | return isFixed(parentNode); 25 | } 26 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Scripts/src/utils/isFunction.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Check if the given variable is a function 3 | * @method 4 | * @memberof Popper.Utils 5 | * @argument {Any} functionToCheck - variable to check 6 | * @returns {Boolean} answer to: is a function? 7 | */ 8 | export default function isFunction(functionToCheck) { 9 | const getType = {}; 10 | return ( 11 | functionToCheck && 12 | getType.toString.call(functionToCheck) === '[object Function]' 13 | ); 14 | } 15 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Scripts/src/utils/isIE.js: -------------------------------------------------------------------------------- 1 | import isBrowser from './isBrowser'; 2 | 3 | const isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode); 4 | const isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent); 5 | 6 | /** 7 | * Determines if the browser is Internet Explorer 8 | * @method 9 | * @memberof Popper.Utils 10 | * @param {Number} version to check 11 | * @returns {Boolean} isIE 12 | */ 13 | export default function isIE(version) { 14 | if (version === 11) { 15 | return isIE11; 16 | } 17 | if (version === 10) { 18 | return isIE10; 19 | } 20 | return isIE11 || isIE10; 21 | } 22 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Scripts/src/utils/isModifierEnabled.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Helper used to know if the given modifier is enabled. 3 | * @method 4 | * @memberof Popper.Utils 5 | * @returns {Boolean} 6 | */ 7 | export default function isModifierEnabled(modifiers, modifierName) { 8 | return modifiers.some( 9 | ({ name, enabled }) => enabled && name === modifierName 10 | ); 11 | } 12 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Scripts/src/utils/isModifierRequired.js: -------------------------------------------------------------------------------- 1 | import find from './find'; 2 | 3 | /** 4 | * Helper used to know if the given modifier depends from another one.
5 | * It checks if the needed modifier is listed and enabled. 6 | * @method 7 | * @memberof Popper.Utils 8 | * @param {Array} modifiers - list of modifiers 9 | * @param {String} requestingName - name of requesting modifier 10 | * @param {String} requestedName - name of requested modifier 11 | * @returns {Boolean} 12 | */ 13 | export default function isModifierRequired( 14 | modifiers, 15 | requestingName, 16 | requestedName 17 | ) { 18 | const requesting = find(modifiers, ({ name }) => name === requestingName); 19 | 20 | const isRequired = 21 | !!requesting && 22 | modifiers.some(modifier => { 23 | return ( 24 | modifier.name === requestedName && 25 | modifier.enabled && 26 | modifier.order < requesting.order 27 | ); 28 | }); 29 | 30 | if (!isRequired) { 31 | const requesting = `\`${requestingName}\``; 32 | const requested = `\`${requestedName}\``; 33 | console.warn( 34 | `${requested} modifier is required by ${requesting} modifier in order to work, be sure to include it before ${requesting}!` 35 | ); 36 | } 37 | return isRequired; 38 | } 39 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Scripts/src/utils/isNumeric.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Tells if a given input is a number 3 | * @method 4 | * @memberof Popper.Utils 5 | * @param {*} input to check 6 | * @return {Boolean} 7 | */ 8 | export default function isNumeric(n) { 9 | return n !== '' && !isNaN(parseFloat(n)) && isFinite(n); 10 | } 11 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Scripts/src/utils/isOffsetContainer.js: -------------------------------------------------------------------------------- 1 | import getOffsetParent from './getOffsetParent'; 2 | 3 | export default function isOffsetContainer(element) { 4 | const { nodeName } = element; 5 | if (nodeName === 'BODY') { 6 | return false; 7 | } 8 | return ( 9 | nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element 10 | ); 11 | } 12 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Scripts/src/utils/removeEventListeners.js: -------------------------------------------------------------------------------- 1 | import getWindow from './getWindow'; 2 | 3 | /** 4 | * Remove event listeners used to update the popper position 5 | * @method 6 | * @memberof Popper.Utils 7 | * @private 8 | */ 9 | export default function removeEventListeners(reference, state) { 10 | // Remove resize event listener on window 11 | getWindow(reference).removeEventListener('resize', state.updateBound); 12 | 13 | // Remove scroll event listener on scroll parents 14 | state.scrollParents.forEach(target => { 15 | target.removeEventListener('scroll', state.updateBound); 16 | }); 17 | 18 | // Reset state 19 | state.updateBound = null; 20 | state.scrollParents = []; 21 | state.scrollElement = null; 22 | state.eventsEnabled = false; 23 | return state; 24 | } 25 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Scripts/src/utils/setAttributes.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Set the attributes to the given popper 3 | * @method 4 | * @memberof Popper.Utils 5 | * @argument {Element} element - Element to apply the attributes to 6 | * @argument {Object} styles 7 | * Object with a list of properties and values which will be applied to the element 8 | */ 9 | export default function setAttributes(element, attributes) { 10 | Object.keys(attributes).forEach(function(prop) { 11 | const value = attributes[prop]; 12 | if (value !== false) { 13 | element.setAttribute(prop, attributes[prop]); 14 | } else { 15 | element.removeAttribute(prop); 16 | } 17 | }); 18 | } 19 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Scripts/src/utils/setStyles.js: -------------------------------------------------------------------------------- 1 | import isNumeric from './isNumeric'; 2 | 3 | /** 4 | * Set the style to the given popper 5 | * @method 6 | * @memberof Popper.Utils 7 | * @argument {Element} element - Element to apply the style to 8 | * @argument {Object} styles 9 | * Object with a list of properties and values which will be applied to the element 10 | */ 11 | export default function setStyles(element, styles) { 12 | Object.keys(styles).forEach(prop => { 13 | let unit = ''; 14 | // add unit if the value is numeric and is one of the following 15 | if ( 16 | ['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== 17 | -1 && 18 | isNumeric(styles[prop]) 19 | ) { 20 | unit = 'px'; 21 | } 22 | element.style[prop] = styles[prop] + unit; 23 | }); 24 | } 25 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Scripts/src/utils/setupEventListeners.js: -------------------------------------------------------------------------------- 1 | import getScrollParent from './getScrollParent'; 2 | import getWindow from './getWindow'; 3 | 4 | function attachToScrollParents(scrollParent, event, callback, scrollParents) { 5 | const isBody = scrollParent.nodeName === 'BODY'; 6 | const target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent; 7 | target.addEventListener(event, callback, { passive: true }); 8 | 9 | if (!isBody) { 10 | attachToScrollParents( 11 | getScrollParent(target.parentNode), 12 | event, 13 | callback, 14 | scrollParents 15 | ); 16 | } 17 | scrollParents.push(target); 18 | } 19 | 20 | /** 21 | * Setup needed event listeners used to update the popper position 22 | * @method 23 | * @memberof Popper.Utils 24 | * @private 25 | */ 26 | export default function setupEventListeners( 27 | reference, 28 | options, 29 | state, 30 | updateBound 31 | ) { 32 | // Resize event listener on window 33 | state.updateBound = updateBound; 34 | getWindow(reference).addEventListener('resize', state.updateBound, { passive: true }); 35 | 36 | // Scroll event listener on scroll parents 37 | const scrollElement = getScrollParent(reference); 38 | attachToScrollParents( 39 | scrollElement, 40 | 'scroll', 41 | state.updateBound, 42 | state.scrollParents 43 | ); 44 | state.scrollElement = scrollElement; 45 | state.eventsEnabled = true; 46 | 47 | return state; 48 | } 49 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Scripts/sweetalert/ie9.css: -------------------------------------------------------------------------------- 1 | /* Internet Explorer 9 has some special quirks that are fixed here */ 2 | /* The icons are not animated. */ 3 | /* This file is automatically merged into sweet-alert.min.js through Gulp */ 4 | 5 | /* Error icon */ 6 | .sweet-alert .icon.error .line.left { 7 | -ms-transform: rotate(45deg)\9; 8 | } 9 | .sweet-alert .icon.error .line.right { 10 | -ms-transform: rotate(-45deg)\9; 11 | } 12 | 13 | 14 | /* Success icon */ 15 | .sweet-alert .icon.success { 16 | border-color: transparent\9; 17 | } 18 | .sweet-alert .icon.success .line.tip { 19 | -ms-transform: rotate(45deg)\9; 20 | } 21 | .sweet-alert .icon.success .line.long { 22 | -ms-transform: rotate(-45deg)\9; 23 | } -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Scripts/sweetalert/sweet-alert.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 | 7 |
8 | 9 |
10 | 11 | 12 | 13 | 14 |
15 | 16 |
17 | 18 | 19 |
20 | 21 |
22 | 23 |
24 | 25 | 26 |
27 |
28 |
29 | 30 |
31 | 32 | 33 |

Title

34 |

Text

35 | 36 | 37 |
-------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Scripts/version.json: -------------------------------------------------------------------------------- 1 | {"raw":"v1.8.2","major":1,"minor":8,"patch":2,"prerelease":[],"build":[],"version":"1.8.2","codeName":"meteoric-mining","full":"1.8.2","branch":"v1.8.x","cdn":{"raw":"v1.8.1","major":1,"minor":8,"patch":1,"prerelease":[],"build":[],"version":"1.8.1","docsUrl":"http://code.angularjs.org/1.8.1/docs"}} -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Views/AbpProjectNameWebViewPageBase.cs: -------------------------------------------------------------------------------- 1 | using Abp.Web.Mvc.Views; 2 | 3 | namespace AbpCompanyName.AbpProjectName.WebSpaAngular.Views 4 | { 5 | public abstract class AbpProjectNameWebViewPageBase : AbpProjectNameWebViewPageBase 6 | { 7 | 8 | } 9 | 10 | public abstract class AbpProjectNameWebViewPageBase : AbpWebViewPage 11 | { 12 | protected AbpProjectNameWebViewPageBase() 13 | { 14 | LocalizationSourceName = AbpProjectNameConsts.LocalizationSourceName; 15 | } 16 | } 17 | } -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Views/Shared/Error.cshtml: -------------------------------------------------------------------------------- 1 | @using Abp.Collections.Extensions 2 | @model Abp.Web.Mvc.Models.ErrorViewModel 3 |
4 |
5 |
6 |
7 |

@Model.ErrorInfo.Message

8 |
9 |
10 |

11 | @(!string.IsNullOrEmpty(Model.ErrorInfo.Details) ? Model.ErrorInfo.Details : Model.ErrorInfo.Message) 12 |

13 | @* Show validation errors *@ 14 | @if (!Model.ErrorInfo.ValidationErrors.IsNullOrEmpty()) 15 | { 16 |
    17 | @foreach (var validationError in Model.ErrorInfo.ValidationErrors) 18 | { 19 |
  • 20 | @validationError.Message 21 | @if (validationError.Members != null && validationError.Members.Any()) 22 | { 23 | (@string.Join(", ", validationError.Members)) 24 | } 25 |
  • 26 | } 27 |
28 | } 29 |
30 |
31 |
32 |
33 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "~/Views/Shared/_Layout.cshtml"; 3 | } -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Web.Debug.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 17 | 18 | 29 | 30 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/Web.Release.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 17 | 18 | 19 | 30 | 31 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/AbpCompanyName.AbpProjectName.WebSpaAngular/favicon.ico -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/AbpCompanyName.AbpProjectName.WebSpaAngular/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/AbpCompanyName.AbpProjectName.WebSpaAngular/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/AbpCompanyName.AbpProjectName.WebSpaAngular/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/AbpCompanyName.AbpProjectName.WebSpaAngular/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnetboilerplate/aspnetboilerplate-templates/62824a68c4b7d0cfa774bd2cbfeaabb97484582d/src/AbpCompanyName.AbpProjectName.WebSpaAngular/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/log4net.Production.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /src/AbpCompanyName.AbpProjectName.WebSpaAngular/log4net.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | --------------------------------------------------------------------------------