├── Resources ├── DataDictionary.fa-IR.Designer.cs └── Properties │ └── AssemblyInfo.cs ├── MY_WEB_APPLICATION ├── Content │ ├── NewSite.css │ ├── Site.css │ ├── Images │ │ └── DariushTasdighi.jpg │ ├── Site.fa-IR.css │ └── NewSite.fa-IR.css ├── favicon.ico ├── fonts │ ├── Yekan.eot │ ├── Yekan.ttf │ ├── Yekan.woff │ ├── Samim-FD.eot │ ├── Samim-FD.ttf │ ├── Samim-FD.woff │ ├── Samim-FD.woff2 │ ├── Samim-Bold-FD.eot │ ├── Samim-Bold-FD.ttf │ ├── Samim-Bold-FD.woff │ ├── Samim-Bold-FD.woff2 │ └── YekanWeb-Regular.woff ├── Global.asax ├── Scripts │ ├── src │ │ ├── utils │ │ │ ├── isBrowser.js │ │ │ ├── isNumeric.js │ │ │ ├── getWindow.js │ │ │ ├── isModifierEnabled.js │ │ │ ├── isOffsetContainer.js │ │ │ ├── getRoot.js │ │ │ ├── getParentNode.js │ │ │ ├── getClientRect.js │ │ │ ├── getOppositePlacement.js │ │ │ ├── isFunction.js │ │ │ ├── getReferenceNode.js │ │ │ ├── getOppositeVariation.js │ │ │ ├── find.js │ │ │ ├── getStyleComputedProperty.js │ │ │ ├── isIE.js │ │ │ ├── findIndex.js │ │ │ ├── setAttributes.js │ │ │ ├── getBordersSize.js │ │ │ ├── getOuterSizes.js │ │ │ ├── getScroll.js │ │ │ ├── removeEventListeners.js │ │ │ ├── getSupportedPropertyName.js │ │ │ ├── setStyles.js │ │ │ ├── isFixed.js │ │ │ ├── clockwise.js │ │ │ ├── getFixedPositionOffsetParent.js │ │ │ ├── getWindowSizes.js │ │ │ ├── includeScroll.js │ │ │ ├── getOffsetRect.js │ │ │ ├── getViewportOffsetRectRelativeToArtbitraryNode.js │ │ │ ├── getScrollParent.js │ │ │ ├── getReferenceOffsets.js │ │ │ ├── isModifierRequired.js │ │ │ ├── debounce.js │ │ │ ├── setupEventListeners.js │ │ │ ├── getOffsetParent.js │ │ │ ├── runModifiers.js │ │ │ ├── getPopperOffsets.js │ │ │ ├── findCommonOffsetParent.js │ │ │ ├── getRoundedOffsets.js │ │ │ └── computeAutoPlacement.js │ │ ├── methods │ │ │ ├── enableEventListeners.js │ │ │ ├── disableEventListeners.js │ │ │ ├── destroy.js │ │ │ └── placements.js │ │ └── modifiers │ │ │ ├── keepTogether.js │ │ │ ├── inner.js │ │ │ ├── shift.js │ │ │ └── hide.js │ ├── Learning │ │ ├── learn_7700.js │ │ └── learn_6100.js │ └── Dtx │ │ ├── dtx-grid-vue-culture.js │ │ └── dtx-grid-vue-culture.fa-IR.js ├── ViewModels │ ├── Account │ │ └── RegisterViewModel.cs │ ├── MessageViewModel.cs │ ├── PersonViewModel.cs │ ├── General │ │ ├── JsonResultWithDataViewModel.cs │ │ ├── JsonResultForGridViewModel.cs │ │ └── InputGridViewModel.cs │ ├── Home │ │ └── GetData6200InputViewModel.cs │ ├── NewLearning │ │ └── GetPersonDetailsViewModel.cs │ └── LearningDtxGridVue │ │ └── InputGetDataViewModel.cs ├── Views │ ├── NewLearning │ │ ├── Learn_0100.cshtml │ │ ├── Learn_0300.cshtml │ │ ├── Learn_0400.cshtml │ │ ├── Learn_4900.cshtml │ │ ├── Learn_5600.cshtml │ │ ├── Learn_1200.cshtml │ │ ├── Learn_4800.cshtml │ │ ├── Learn_5200.cshtml │ │ ├── Learn_0600.cshtml │ │ ├── Learn_8000.cshtml │ │ ├── Learn_5100.cshtml │ │ ├── Learn_7800.cshtml │ │ ├── Learn_7700.cshtml │ │ ├── Learn_3000.cshtml │ │ ├── Learn_5000.cshtml │ │ ├── Learn_8100.cshtml │ │ ├── Learn_1500.cshtml │ │ ├── Learn_6500.cshtml │ │ ├── Learn_5500.cshtml │ │ ├── Learn_1600.cshtml │ │ ├── Learn_6100.cshtml │ │ ├── Learn_5400.cshtml │ │ ├── Learn_0700.cshtml │ │ ├── Learn_1100.cshtml │ │ ├── Learn_0500.cshtml │ │ ├── Learn_6600.cshtml │ │ ├── Learn_6650.cshtml │ │ ├── Learn_5300.cshtml │ │ ├── Learn_2100.cshtml │ │ ├── Learn_6700.cshtml │ │ ├── Learn_2200.cshtml │ │ ├── Learn_6900.cshtml │ │ ├── Learn_6200.cshtml │ │ ├── Learn_7200.cshtml │ │ ├── Learn_4000.cshtml │ │ ├── Learn_6800.cshtml │ │ ├── Learn_1300.cshtml │ │ ├── Learn_1700.cshtml │ │ ├── Learn_7300.cshtml │ │ ├── Learn_7100.cshtml │ │ ├── Learn_1400.cshtml │ │ └── Learn_7400.cshtml │ ├── Home │ │ ├── Temp.cshtml.BAK │ │ ├── Learn0050.cshtml.BAK │ │ ├── Learn0500.cshtml.BAK │ │ ├── Learn0550.cshtml.BAK │ │ ├── Learn0525.cshtml.BAK │ │ ├── Learn0650.cshtml.BAK │ │ ├── Index.cshtml │ │ ├── Learn0200.cshtml.BAK │ │ ├── Learn0700.cshtml.BAK │ │ ├── Learn0575.cshtml.BAK │ │ ├── Learn0600.cshtml.BAK │ │ ├── Learn0850.cshtml.BAK │ │ ├── Learn0100.cshtml.BAK │ │ ├── Learn0400.cshtml.BAK │ │ ├── Learn7200.cshtml │ │ ├── Learn0750.cshtml.BAK │ │ ├── Learn0800.cshtml.BAK │ │ ├── Test.cshtml.BAK │ │ ├── Learn5100.cshtml.BAK │ │ ├── Learn0900.cshtml.BAK │ │ ├── Learn0932.cshtml.BAK │ │ ├── Learn5000.cshtml.BAK │ │ ├── Learn0933.cshtml.BAK │ │ ├── Learn5200.cshtml.BAK │ │ ├── Learn0910.cshtml.BAK │ │ ├── Learn5350.cshtml.BAK │ │ ├── Learn0675.cshtml.BAK │ │ ├── Learn0300.cshtml.BAK │ │ ├── Learn0875.cshtml.BAK │ │ └── Learn0583.cshtml.BAK │ ├── LearningDtxGridVue │ │ ├── Index.cshtml │ │ ├── Learn_0100.cshtml │ │ ├── Learn_0500.cshtml │ │ ├── Learn_0600.cshtml │ │ ├── Learn_0400.cshtml │ │ ├── Learn_0200.cshtml │ │ ├── Learn_0800.cshtml │ │ └── Learn_0900.cshtml │ └── web.config ├── Dtx │ ├── ViewModels │ │ └── ResultWithDataViewModel.cs │ └── Text │ │ └── Utility.cs ├── Models │ ├── Employee.cs │ ├── Person.cs │ └── BaseEntity.cs ├── Infrastructure │ └── BaseController.cs ├── Global.asax.cs ├── App_Start │ └── RouteConfig.cs ├── packages.config ├── Web.Debug.config ├── Web.Release.config ├── Properties │ └── AssemblyInfo.cs └── Web.config ├── DtxFileManagerVue ├── Documents │ ├── Nugets.txt │ └── راهنمای راه‌اندازی پروژه مدیریت پوشه‌ها و فایل‌ها.docx ├── FileManager │ ├── Enums │ │ └── JsonResultStates.cs │ └── ViewModels │ │ ├── PathAndDirectoriesAndFilesViewModel.cs │ │ ├── PathItemViewModel.cs │ │ ├── CreatedFileAndDirectoriesAndFilesViewModel.cs │ │ ├── PathAndDirectoriesAndFilesAndFileNameViewModel.cs │ │ ├── DirectoryViewModel.cs │ │ ├── FileViewModel.cs │ │ ├── DirectoriesAndFilesViewModel.cs │ │ ├── PathAndDirectoriesAndFilesAndPathCollectionAndUrlViewModel.cs │ │ └── BaseViewModel.cs ├── packages.config ├── ViewEngine.cs ├── Initializer.cs ├── JsonData.cs └── Properties │ └── AssemblyInfo.cs └── README.md /Resources/DataDictionary.fa-IR.Designer.cs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Content/NewSite.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin-top: 16px; 3 | } 4 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Content/Site.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin-top: 16px; 3 | } 4 | 5 | [v-cloak] { 6 | display: none; 7 | } 8 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dariush-Tasdighi/LEARNING_VUE/HEAD/MY_WEB_APPLICATION/favicon.ico -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/fonts/Yekan.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dariush-Tasdighi/LEARNING_VUE/HEAD/MY_WEB_APPLICATION/fonts/Yekan.eot -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/fonts/Yekan.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dariush-Tasdighi/LEARNING_VUE/HEAD/MY_WEB_APPLICATION/fonts/Yekan.ttf -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/fonts/Yekan.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dariush-Tasdighi/LEARNING_VUE/HEAD/MY_WEB_APPLICATION/fonts/Yekan.woff -------------------------------------------------------------------------------- /DtxFileManagerVue/Documents/Nugets.txt: -------------------------------------------------------------------------------- 1 | REFERENCES: 2 | 3 | System.Web.Extensions.dll 4 | 5 | NUGETS: 6 | 7 | Install-Package DotNetZip 8 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Global.asax: -------------------------------------------------------------------------------- 1 | <%@ Application Codebehind="Global.asax.cs" Inherits="MY_WEB_APPLICATION.MvcApplication" Language="C#" %> 2 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/fonts/Samim-FD.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dariush-Tasdighi/LEARNING_VUE/HEAD/MY_WEB_APPLICATION/fonts/Samim-FD.eot -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/fonts/Samim-FD.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dariush-Tasdighi/LEARNING_VUE/HEAD/MY_WEB_APPLICATION/fonts/Samim-FD.ttf -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/fonts/Samim-FD.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dariush-Tasdighi/LEARNING_VUE/HEAD/MY_WEB_APPLICATION/fonts/Samim-FD.woff -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/fonts/Samim-FD.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dariush-Tasdighi/LEARNING_VUE/HEAD/MY_WEB_APPLICATION/fonts/Samim-FD.woff2 -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/fonts/Samim-Bold-FD.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dariush-Tasdighi/LEARNING_VUE/HEAD/MY_WEB_APPLICATION/fonts/Samim-Bold-FD.eot -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/fonts/Samim-Bold-FD.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dariush-Tasdighi/LEARNING_VUE/HEAD/MY_WEB_APPLICATION/fonts/Samim-Bold-FD.ttf -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/fonts/Samim-Bold-FD.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dariush-Tasdighi/LEARNING_VUE/HEAD/MY_WEB_APPLICATION/fonts/Samim-Bold-FD.woff -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/fonts/Samim-Bold-FD.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dariush-Tasdighi/LEARNING_VUE/HEAD/MY_WEB_APPLICATION/fonts/Samim-Bold-FD.woff2 -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/fonts/YekanWeb-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dariush-Tasdighi/LEARNING_VUE/HEAD/MY_WEB_APPLICATION/fonts/YekanWeb-Regular.woff -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Content/Images/DariushTasdighi.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dariush-Tasdighi/LEARNING_VUE/HEAD/MY_WEB_APPLICATION/Content/Images/DariushTasdighi.jpg -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Scripts/src/utils/isBrowser.js: -------------------------------------------------------------------------------- 1 | export default typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined'; 2 | -------------------------------------------------------------------------------- /DtxFileManagerVue/Documents/راهنمای راه‌اندازی پروژه مدیریت پوشه‌ها و فایل‌ها.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dariush-Tasdighi/LEARNING_VUE/HEAD/DtxFileManagerVue/Documents/راهنمای راه‌اندازی پروژه مدیریت پوشه‌ها و فایل‌ها.docx -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/ViewModels/Account/RegisterViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace ViewModels.Account 2 | { 3 | public class RegisterViewModel : object 4 | { 5 | public RegisterViewModel() : base() 6 | { 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /DtxFileManagerVue/FileManager/Enums/JsonResultStates.cs: -------------------------------------------------------------------------------- 1 | namespace Dtx.FileManager.ViewModels 2 | { 3 | public enum JsonResultStates : int 4 | { 5 | Error = 1, 6 | 7 | Success = 0, 8 | 9 | Warning = 2, 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/ViewModels/MessageViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace ViewModels 2 | { 3 | public class MessageViewModel : object 4 | { 5 | public MessageViewModel() : base() 6 | { 7 | } 8 | 9 | public string Message { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/NewLearning/Learn_0100.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Learn 100 6 | 7 | 8 | 9 | 10 | {{10 + 5}} 11 | 12 | 13 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Scripts/Learning/learn_7700.js: -------------------------------------------------------------------------------- 1 | const app = new Vue({ 2 | 3 | el: `#app`, 4 | 5 | data: { 6 | 7 | person: { 8 | children: 1, 9 | fullName: `Mr. Dariush Tasdighi`, 10 | birthDate: { year: 1351, month: 11, day: 28 }, 11 | }, 12 | 13 | }, 14 | 15 | }) 16 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/ViewModels/PersonViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace ViewModels 2 | { 3 | public class PersonViewModel : object 4 | { 5 | public PersonViewModel() : base() 6 | { 7 | } 8 | 9 | public string LastName { get; set; } 10 | 11 | public string FirstName { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/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 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Dtx/ViewModels/ResultWithDataViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace Dtx.ViewModels 2 | { 3 | public class ResultWithDataViewModel : ResultViewModel 4 | { 5 | public ResultWithDataViewModel() : base() 6 | { 7 | } 8 | 9 | // ********** 10 | public T Data { get; set; } 11 | // ********** 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/ViewModels/General/JsonResultWithDataViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace ViewModels.General 2 | { 3 | public class JsonResultViewModel : JsonResultViewModel 4 | { 5 | public JsonResultViewModel() : base() 6 | { 7 | } 8 | 9 | // ********** 10 | public T Data { get; set; } 11 | // ********** 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Models/Employee.cs: -------------------------------------------------------------------------------- 1 | namespace Models 2 | { 3 | public class Employee : object 4 | { 5 | public Employee() : base() 6 | { 7 | } 8 | 9 | // ********** 10 | public string Name { get; set; } 11 | // ********** 12 | 13 | // ********** 14 | public string Family { get; set; } 15 | // ********** 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/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 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/Home/Temp.cshtml.BAK: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = null; 3 | } 4 | 5 | 6 | 7 | 8 | 9 | 10 | Temp 11 | 12 | 13 | 14 | 15 |
16 |
17 | 18 | 19 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/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 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/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 | -------------------------------------------------------------------------------- /DtxFileManagerVue/FileManager/ViewModels/PathAndDirectoriesAndFilesViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace Dtx.FileManager.ViewModels 2 | { 3 | public class PathAndDirectoriesAndFilesViewModel : DirectoriesAndFilesViewModel 4 | { 5 | public PathAndDirectoriesAndFilesViewModel() : base() 6 | { 7 | } 8 | 9 | // ********** 10 | public string Path { get; set; } 11 | // ********** 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Infrastructure/BaseController.cs: -------------------------------------------------------------------------------- 1 | namespace Infrastructure 2 | { 3 | public class BaseController : System.Web.Mvc.Controller 4 | { 5 | public BaseController() : base() 6 | { 7 | } 8 | 9 | protected JsonNetResult JsonNet(object data) 10 | { 11 | var result = 12 | new JsonNetResult() { Data = data }; 13 | 14 | return (result); 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /DtxFileManagerVue/FileManager/ViewModels/PathItemViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace Dtx.FileManager.ViewModels 2 | { 3 | public class PathItemViewModel : object 4 | { 5 | public PathItemViewModel() : base() 6 | { 7 | } 8 | 9 | // ********** 10 | public string Name { get; set; } 11 | // ********** 12 | 13 | // ********** 14 | public string Path { get; set; } 15 | // ********** 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Content/Site.fa-IR.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'webYekan'; 3 | font-style: normal; 4 | font-weight: normal; 5 | font-variant: normal; 6 | src: url('../fonts/YekanWeb-Regular.woff') format('woff'); 7 | } 8 | 9 | body { 10 | /*direction: rtl; 11 | font-weight: normal; 12 | text-align: justify;*/ 13 | margin-top: 16px; 14 | font-family: "webYekan", Tahoma, Arial; 15 | } 16 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Global.asax.cs: -------------------------------------------------------------------------------- 1 | namespace MY_WEB_APPLICATION 2 | { 3 | public class MvcApplication : System.Web.HttpApplication 4 | { 5 | public MvcApplication() : base() 6 | { 7 | } 8 | 9 | protected void Application_Start() 10 | { 11 | System.Web.Mvc.AreaRegistration.RegisterAllAreas(); 12 | RouteConfig.RegisterRoutes(System.Web.Routing.RouteTable.Routes); 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/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 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/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 | -------------------------------------------------------------------------------- /DtxFileManagerVue/FileManager/ViewModels/CreatedFileAndDirectoriesAndFilesViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace Dtx.FileManager.ViewModels 2 | { 3 | public class CreatedFileAndDirectoriesAndFilesViewModel : DirectoriesAndFilesViewModel 4 | { 5 | public CreatedFileAndDirectoriesAndFilesViewModel() : base() 6 | { 7 | } 8 | 9 | // ********** 10 | public FileViewModel CreatedFile { get; set; } 11 | // ********** 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/ViewModels/Home/GetData6200InputViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace ViewModels.Home 2 | { 3 | public class GetData6200InputViewModel : General.InputGridViewModel 4 | { 5 | public GetData6200InputViewModel() : base() 6 | { 7 | } 8 | 9 | // ********** 10 | public string LastName { get; set; } 11 | // ********** 12 | 13 | // ********** 14 | public string FirstName { get; set; } 15 | // ********** 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/ViewModels/NewLearning/GetPersonDetailsViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace ViewModels.NewLearning 2 | { 3 | public class GetPersonDetailsViewModel : object 4 | { 5 | public GetPersonDetailsViewModel() : base() 6 | { 7 | } 8 | 9 | // ********** 10 | public string EmailAddress { get; set; } 11 | // ********** 12 | 13 | // ********** 14 | public string CellPhoneNumber { get; set; } 15 | // ********** 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/ViewModels/LearningDtxGridVue/InputGetDataViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace ViewModels.LearningDtxGridVue 2 | { 3 | public class InputGetDataViewModel : General.InputGridViewModel 4 | { 5 | public InputGetDataViewModel() : base() 6 | { 7 | } 8 | 9 | // ********** 10 | public string LastName { get; set; } 11 | // ********** 12 | 13 | // ********** 14 | public string FirstName { get; set; } 15 | // ********** 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/ViewModels/General/JsonResultForGridViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace ViewModels.General 2 | { 3 | public class JsonResultForGridViewModel : JsonResultViewModel 4 | { 5 | public JsonResultForGridViewModel() : base() 6 | { 7 | } 8 | 9 | // ********** 10 | public int Count { get; set; } 11 | // ********** 12 | 13 | // ********** 14 | public System.Collections.Generic.IList Items { get; set; } 15 | // ********** 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/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 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Dtx/Text/Utility.cs: -------------------------------------------------------------------------------- 1 | namespace Dtx.Text 2 | { 3 | public static class Utility 4 | { 5 | static Utility() 6 | { 7 | } 8 | 9 | public static string Fix(string text) 10 | { 11 | if (string.IsNullOrWhiteSpace(text)) 12 | { 13 | return string.Empty; 14 | } 15 | 16 | text = text.Trim(); 17 | 18 | while (text.Contains(" ")) 19 | { 20 | text = text.Replace(" ", " "); 21 | } 22 | 23 | return text; 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/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 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/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 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/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 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/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 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Scripts/Dtx/dtx-grid-vue-culture.js: -------------------------------------------------------------------------------- 1 | let dtxGridVueCulture = { 2 | 3 | first: 'First', 4 | last: 'Last', 5 | previous: 'Previous', 6 | next: 'Next', 7 | refresh: 'Refresh', 8 | page: 'Page', 9 | pages: ' - Pages', 10 | recordCount: 'Record Count:', 11 | rowNumberTitle: '#', 12 | wait: 'Please Wait!', 13 | loading: 'Loading...', 14 | pageSize: 'Page Size', 15 | close: 'Close', 16 | columns: 'Columns', 17 | select: 'Select', 18 | exportToExcel: 'Export to Excel', 19 | 20 | } 21 | -------------------------------------------------------------------------------- /DtxFileManagerVue/FileManager/ViewModels/PathAndDirectoriesAndFilesAndFileNameViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace Dtx.FileManager.ViewModels 2 | { 3 | public class PathAndDirectoriesAndFilesAndFileNameViewModel : DirectoriesAndFilesViewModel 4 | { 5 | public PathAndDirectoriesAndFilesAndFileNameViewModel() : base() 6 | { 7 | } 8 | 9 | // ********** 10 | public string Path { get; set; } 11 | // ********** 12 | 13 | // ********** 14 | public string FileName { get; set; } 15 | // ********** 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /DtxFileManagerVue/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/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 | -------------------------------------------------------------------------------- /DtxFileManagerVue/FileManager/ViewModels/DirectoryViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace Dtx.FileManager.ViewModels 2 | { 3 | public class DirectoryViewModel : BaseViewModel 4 | { 5 | //public DirectoryViewModel() : base() 6 | //{ 7 | //} 8 | 9 | public DirectoryViewModel(System.IO.DirectoryInfo directoryInfo) : base() 10 | { 11 | Name = directoryInfo.Name; 12 | 13 | CreationTime = directoryInfo.CreationTime; 14 | LastWriteTime = directoryInfo.LastWriteTime; 15 | LastAccessTime = directoryInfo.LastAccessTime; 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Scripts/Dtx/dtx-grid-vue-culture.fa-IR.js: -------------------------------------------------------------------------------- 1 | let dtxGridVueCulture = { 2 | 3 | first: 'اولین', 4 | last: 'آخرین', 5 | previous: 'قبلی', 6 | next: 'بعدی', 7 | refresh: 'به روز رسانی', 8 | page: 'صفحه', 9 | pages: ' - صفحات', 10 | recordCount: 'تعداد اطلاعات:', 11 | rowNumberTitle: 'ردیف', 12 | wait: 'لطفا کمی صبور باشید!', 13 | loading: 'در حال دریافت اطلاعات', 14 | pageSize: 'تعداد در هر صفحه', 15 | close: 'بستن', 16 | columns: 'ستون‌ها', 17 | select: 'انتخاب', 18 | exportToExcel: 'خروجی اکسل', 19 | 20 | } 21 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/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 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/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 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Models/Person.cs: -------------------------------------------------------------------------------- 1 | namespace Models 2 | { 3 | public class Person : BaseEntity 4 | { 5 | public Person() : base() 6 | { 7 | } 8 | 9 | // ********** 10 | public bool IsActive { get; set; } 11 | // ********** 12 | 13 | // ********** 14 | public int Age { get; set; } 15 | // ********** 16 | 17 | // ********** 18 | public int Salary { get; set; } 19 | // ********** 20 | 21 | // ********** 22 | public string LastName { get; set; } 23 | // ********** 24 | 25 | // ********** 26 | public string FirstName { get; set; } 27 | // ********** 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /DtxFileManagerVue/FileManager/ViewModels/FileViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace Dtx.FileManager.ViewModels 2 | { 3 | public class FileViewModel : BaseViewModel 4 | { 5 | //public FileViewModel() : base() 6 | //{ 7 | //} 8 | 9 | public FileViewModel(System.IO.FileInfo fileInfo) : base() 10 | { 11 | Name = fileInfo.Name; 12 | Length = fileInfo.Length; 13 | 14 | CreationTime = fileInfo.CreationTime; 15 | LastWriteTime = fileInfo.LastWriteTime; 16 | LastAccessTime = fileInfo.LastAccessTime; 17 | } 18 | 19 | // ********** 20 | public long Length { get; set; } 21 | // ********** 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/LearningDtxGridVue/Index.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = null; 3 | } 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Index 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 |
21 | 22 |
23 |
24 | 25 |
26 | 27 | 28 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/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 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/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 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/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 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/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 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/NewLearning/Learn_0300.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Learn 300 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | {{ title }} 15 |
16 | 17 | 18 | 19 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/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 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/App_Start/RouteConfig.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | using System.Web.Mvc; 6 | using System.Web.Routing; 7 | 8 | namespace MY_WEB_APPLICATION 9 | { 10 | public class RouteConfig 11 | { 12 | public static void RegisterRoutes(RouteCollection routes) 13 | { 14 | routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 15 | 16 | routes.MapRoute( 17 | name: "Default", 18 | url: "{controller}/{action}/{id}", 19 | defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 20 | ); 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /DtxFileManagerVue/ViewEngine.cs: -------------------------------------------------------------------------------- 1 | using System.Linq; 2 | 3 | namespace FileManager 4 | { 5 | public class ViewEngine : System.Web.Mvc.RazorViewEngine 6 | { 7 | public ViewEngine() : base() 8 | { 9 | string[] strNewPartialViewLocationFormats = { "~/Views/Shared/PartialViews/FileManager/{0}.cshtml" }; 10 | 11 | PartialViewLocationFormats = 12 | PartialViewLocationFormats.Union(strNewPartialViewLocationFormats).ToArray(); 13 | } 14 | } 15 | } 16 | 17 | //protected void Application_Start() 18 | //{ 19 | // System.Web.Mvc.AreaRegistration.RegisterAllAreas(); 20 | 21 | // RouteConfig.RegisterRoutes(System.Web.Routing.RouteTable.Routes); 22 | 23 | // System.Web.Mvc.ViewEngines.Engines.Add(new FileManager.ViewEngine()); 24 | //} 25 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/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 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/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 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/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 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/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 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Models/BaseEntity.cs: -------------------------------------------------------------------------------- 1 | using System.Linq; 2 | 3 | namespace Models 4 | { 5 | public abstract class BaseEntity : object 6 | { 7 | public BaseEntity() : base() 8 | { 9 | Id = System.Guid.NewGuid(); 10 | InsertDateTime = System.DateTime.Now; 11 | } 12 | 13 | // ********** 14 | public System.Guid Id { get; set; } 15 | // ********** 16 | 17 | // ********** 18 | public System.DateTime InsertDateTime { get; set; } 19 | // ********** 20 | 21 | public object GetPropertyValue(string propertyName) 22 | { 23 | var o1 = this.GetType(); 24 | 25 | var o2 = 26 | o1.GetProperties() 27 | .Where(current => string.Compare(current.Name, propertyName, true) == 0) 28 | .FirstOrDefault(); 29 | 30 | object value = o2.GetValue(this, null); 31 | 32 | return value; 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/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 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Content/NewSite.fa-IR.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'Samim'; 3 | src: url('../fonts/Samim-FD.eot'); 4 | src: url('../fonts/Samim-FD.eot?#iefix') format('embedded-opentype'), url('../fonts/Samim-FD.woff') format('woff'), url('../fonts/Samim-FD.ttf') format('truetype'); 5 | font-weight: normal; 6 | } 7 | 8 | @font-face { 9 | font-family: 'Samim'; 10 | src: url('../fonts/Samim-Bold-FD.eot'); 11 | src: url('../fonts/Samim-Bold-FD.eot?#iefix') format('embedded-opentype'), url('../fonts/Samim-Bold-FD.woff') format('woff'), url('../fonts/Samim-Bold-FD.ttf') format('truetype'); 12 | font-weight: bold; 13 | } 14 | 15 | body { 16 | /*direction: rtl; 17 | font-weight: normal; 18 | text-align: justify;*/ 19 | margin-top: 16px; 20 | font-family: 'Samim', Tahoma, Arial; 21 | /*font-family: 'Samim', Tahoma, Arial;*/ 22 | } 23 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/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 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/NewLearning/Learn_0400.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Learn 400 6 | 7 | 8 | 9 | 10 | 11 | 12 | 17 | 18 | 19 |
20 | {{ title }} 21 | 22 |
23 | 24 | Google Chrome -> Console -> Write: app.title = 'Hello, Vue!' -> ENTER 25 |
26 | 27 | 28 | 29 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/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 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/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 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Scripts/Learning/learn_6100.js: -------------------------------------------------------------------------------- 1 | const app = new Vue({ 2 | 3 | el: `#app`, 4 | 5 | data: { 6 | 7 | result: null, 8 | 9 | person: { 10 | lastName: null, 11 | firstName: null 12 | } 13 | 14 | }, 15 | 16 | methods: { 17 | 18 | doSomething: function () { 19 | 20 | this.result = null; 21 | 22 | $(`div#loadingModal`).modal({ backdrop: false, keyboard: false }); 23 | 24 | let url = 25 | `/NewLearning/GetPersonDetails_3`; 26 | 27 | axios.post(url, this.person) 28 | 29 | .then(response => { 30 | 31 | this.result = response.data; 32 | 33 | this.result.hiddenMessages.forEach(item => { 34 | 35 | console.log(item); 36 | 37 | }); 38 | 39 | }) 40 | .catch(error => { 41 | 42 | console.error(error); 43 | 44 | }) 45 | .finally(() => { 46 | 47 | $(`div#loadingModal`).modal(`hide`); 48 | 49 | }); 50 | 51 | } 52 | 53 | } 54 | 55 | }); 56 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/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 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/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 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/Home/Learn0050.cshtml.BAK: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = null; 3 | } 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Index 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | {{ 10 + 5 }} 20 |
21 | {{ 10 - 5 }} 22 |
23 | {{ 10 * 5 }} 24 |
25 | {{ 10 / 5 }} 26 |
27 | 28 | 29 | 30 | 31 | 32 | @**@ 33 | 34 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/Home/Learn0500.cshtml.BAK: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = null; 3 | } 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Index 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | Welcome {{ fullName }}! 20 |
21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/NewLearning/Learn_4900.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Learn 4900 6 | 7 | 8 | 9 | 10 | 11 | 12 | 17 | 18 | 19 |
20 |
    21 | 22 | 23 | 24 | 25 | 26 |
27 |
28 | 29 | 30 | 31 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/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 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/ViewModels/General/InputGridViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace ViewModels.General 2 | { 3 | public class InputGridViewModel : object 4 | { 5 | public InputGridViewModel() : base() 6 | { 7 | } 8 | 9 | // ********** 10 | public int PageSize { get; set; } 11 | // ********** 12 | 13 | // ********** 14 | /// 15 | /// Zero Based 16 | /// 17 | public int PageIndex { get; set; } 18 | // ********** 19 | 20 | // ********** 21 | public string SortFieldName { get; set; } 22 | // ********** 23 | 24 | // ********** 25 | public string SortDirection { get; set; } 26 | // ********** 27 | 28 | // ********** 29 | public int Skip 30 | { 31 | get 32 | { 33 | int result = 34 | PageIndex * PageSize; 35 | 36 | return result; 37 | } 38 | } 39 | // ********** 40 | 41 | // ********** 42 | public int Take 43 | { 44 | get 45 | { 46 | return PageSize; 47 | } 48 | } 49 | // ********** 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/Home/Learn0550.cshtml.BAK: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = null; 3 | } 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Index 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | Welcome {{ fullName }}! 20 |
21 | 22 |
23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/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 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/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 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/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 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/Home/Learn0525.cshtml.BAK: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = null; 3 | } 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Index 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | Welcome {{ fullName }}! 20 |
21 | Welcome {{ fullName | uppercase }}! 22 |
23 | Welcome {{ fullName | lowercase }}! 24 |
25 | 26 |
27 | 28 | 29 | 30 | 31 | 32 | 33 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/Home/Learn0650.cshtml.BAK: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = null; 3 | } 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Index 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
    20 | 21 | 22 | 23 | 24 | 25 |
26 |
27 | 28 | 29 | 30 | 31 | 32 | 33 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/NewLearning/Learn_5600.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Learn 5600 6 | 7 | 8 | 9 | 10 | 11 | 12 | 17 | 18 | 19 |
20 |
21 | بر خلاف 22 |
23 | Angular, AngularJS, React, ... 24 |
25 | Vue validate html of template and will fix it! 26 |
27 | 28 |
29 | 30 | 31 | 32 |
33 |
34 | 35 | 36 | 37 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/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 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/NewLearning/Learn_1200.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Learn 1200 6 | 7 | 8 | 9 | 10 | 11 | 12 | 17 | 18 | 19 |
20 |
21 | Welcome {{ fullName }}! 22 |
23 |
24 | Welcome ! 25 |
26 | Welcome {{ fullName }}>! 27 |
28 | 29 |
30 | 31 |
32 | 33 | 34 | 35 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/Home/Index.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = null; 3 | } 4 | 5 | 6 | 7 | 8 | 9 | 10 | Index 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | Learn 100 19 |
20 | Learn 200 21 |
22 | Learn 300 23 |
24 | Learn 400 25 |
26 | Learn 500 27 |
28 | 29 | Learn 00 30 |
31 | 32 |

33 | Learning Ajax 34 |

35 | 36 | Learn 5000 37 |
38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/NewLearning/Learn_4800.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Learn 4800 6 | 7 | 8 | 9 | 10 | 11 | 12 | 17 | 18 | 19 |
20 |
    21 | @*کار می‌کند*@ 22 | 23 | 24 | @*کار می‌کند*@ 25 | 26 | 27 | @*کار نمی‌کند*@ 28 | 29 | 30 | @*کار نمی‌کند*@ 31 | 32 |
33 |
34 | 35 | 36 | 37 | 56 | 57 | 58 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/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 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/Home/Learn0200.cshtml.BAK: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = null; 3 | } 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Index 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |

20 | {{ message1 }} 21 |

22 | 23 |

24 | {{ message2 }} 25 |

26 |
27 | 28 | 29 | 30 | 31 | 32 | 33 | 55 | 56 | 57 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/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 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/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 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/Home/Learn0700.cshtml.BAK: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = null; 3 | } 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Index 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
    20 | 21 |
22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/Home/Learn0575.cshtml.BAK: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = null; 3 | } 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Index 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | Welcome {{ fullName }}! 20 |
21 | 22 |
23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 | 58 | 59 | 60 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/Home/Learn0600.cshtml.BAK: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = null; 3 | } 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Index 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
    20 | @*کار می‌کند*@ 21 | 22 | 23 | @*کار می‌کند*@ 24 | 25 | 26 | @*کار نمی‌کند*@ 27 | 28 | 29 | @*کار نمی‌کند*@ 30 | 31 |
32 |
33 | 34 | 35 | 36 | 37 | 38 | 39 | 58 | 59 | 60 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/NewLearning/Learn_5200.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Learn 5200 6 | 7 | 8 | 9 | 10 | 11 | 12 | 17 | 18 | 19 |
20 |

21 | Using v-for directive for components (WITH BUG)! 22 |

23 | 24 |
25 | 26 |
    27 | 28 |
29 |
30 | 31 | 32 | 33 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/NewLearning/Learn_0600.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Learn 600 6 | 7 | 8 | 9 | 10 | 11 | 12 | 17 | 18 | 19 |
20 | Full Name: {{ firstName }} {{ lastName }} 21 |
22 | Full Name: {{ firstName + ` ` + lastName }} 23 |
24 | Full Name: {{ firstName.toLowerCase() + ` ` + lastName.toLowerCase() }} 25 |
26 | Full Name: {{ firstName.toUpperCase() + ` ` + lastName.toUpperCase() }} 27 |
28 | Full Name: {{ person.firstName.toUpperCase() + ` ` + person.lastName.toUpperCase() }} 29 |
30 | 31 | 32 | 33 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/NewLearning/Learn_8000.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Learn 8000 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 |
18 | 19 | 20 |
21 | Save 1 22 |
23 |
24 | 25 |
26 | 27 | 28 | 31 | 32 | 33 |
34 | 35 | Save 3 36 | 37 |
38 | 39 | 40 | 41 | 42 | 68 | 69 | 70 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/Home/Learn0850.cshtml.BAK: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = null; 3 | } 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Index 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 | 63 | 64 | 65 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/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 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/Home/Learn0100.cshtml.BAK: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = null; 3 | } 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Index 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | {{ message }} 20 |
21 | 22 | 23 | 24 | 25 | 26 | @**@ 27 | 28 | 75 | 76 | 77 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/NewLearning/Learn_5100.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Learn 5100 6 | 7 | 8 | 9 | 10 | 11 | 12 | 17 | 18 | 19 |
20 |

21 | Using Nested Components! 22 |

23 | 24 |
25 | 26 | 27 |
28 | 29 | 30 | 31 | 66 | 67 | 68 | -------------------------------------------------------------------------------- /DtxFileManagerVue/FileManager/ViewModels/DirectoriesAndFilesViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace Dtx.FileManager.ViewModels 2 | { 3 | public class DirectoriesAndFilesViewModel : object 4 | { 5 | public DirectoriesAndFilesViewModel() : base() 6 | { 7 | } 8 | 9 | // ********** 10 | // ********** 11 | // ********** 12 | private System.Collections.Generic.IList files; 13 | // ********** 14 | 15 | // ********** 16 | public System.Collections.Generic.IList Files 17 | { 18 | get 19 | { 20 | if (files == null) 21 | { 22 | files = 23 | new System.Collections.Generic.List(); 24 | } 25 | 26 | return files; 27 | } 28 | } 29 | // ********** 30 | // ********** 31 | // ********** 32 | 33 | // ********** 34 | // ********** 35 | // ********** 36 | private System.Collections.Generic.IList directories; 37 | // ********** 38 | 39 | // ********** 40 | public System.Collections.Generic.IList Directories 41 | { 42 | get 43 | { 44 | if (directories == null) 45 | { 46 | directories = 47 | new System.Collections.Generic.List(); 48 | } 49 | 50 | return directories; 51 | } 52 | } 53 | // ********** 54 | // ********** 55 | // ********** 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/NewLearning/Learn_7800.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Learn 7800 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 |
16 |
17 |

18 | Panel Title 19 |

20 |
21 | 22 |
23 | Panel Body 24 |
25 | 26 | 29 |
30 | 31 |
32 | 33 |
34 |
35 |

36 | Card Title 37 |

38 |
39 | 40 |
41 | Card Body 42 |
43 | 44 | 47 |
48 | 49 |
50 | 51 | 52 | 53 | 54 | 67 | 68 | 69 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/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 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/Home/Learn0400.cshtml.BAK: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = null; 3 | } 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Index 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 |
21 | 22 |
23 | @**@ 24 | 25 |
26 | 27 |
28 | 29 | 30 | 31 | 32 | 33 | 34 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/NewLearning/Learn_7700.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Learn 7700 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 |
17 | 18 | Full Name: 19 |
20 | {{ person?.fullName }} 21 | 22 |
23 | 24 | Children 25 |
26 | 27 | 28 | Birth Date: 29 |
30 | 31 | 32 |
33 | 34 | Children: {{ person?.children }} 35 |
36 | Birth Date: {{ person?.birthDate.year }} / {{ person?.birthDate.month }} / {{ person?.birthDate.day }} 37 | 38 |
39 |
40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/NewLearning/Learn_3000.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Learn 3000 6 | 7 | 8 | 9 | 10 | 11 | 12 | 17 | 18 | 19 |
20 |

21 | Learning Animation! 22 |

23 | 24 |
25 | 26 | 27 | 28 |
29 | 30 |
31 |
32 |
33 | Header 34 |
35 | 36 |
37 | Body 38 |
39 | 40 | 43 |
44 |
45 |
46 | 47 | 48 | 49 | 76 | 77 | 78 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/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 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Web.Debug.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 17 | 18 | 29 | 30 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/Home/Learn7200.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = null; 3 | } 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Index 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 21 |
22 |
23 | 24 | 25 | @**@ 26 | 27 | 28 | 29 | 30 | 31 | 58 | 59 | 60 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/NewLearning/Learn_5000.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Learn 5000 6 | 7 | 8 | 9 | 10 | 11 | 12 | 17 | 18 | 19 |

20 | Using components in all Vue objects! 21 |

22 | 23 |
24 | 25 |
26 |
    27 | 28 | 29 | 30 | 31 | 32 |
33 |
34 | 35 |
36 | 37 |
38 |
    39 | 40 | 41 | 42 | 43 | 44 |
45 |
46 | 47 | 48 | 49 | 70 | 71 | 72 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/NewLearning/Learn_8100.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Learn 8100 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 |
18 | 19 | Save 20 | 21 |
22 | 23 | Save 24 | 25 |
26 | 27 |
28 | 29 | 30 | 31 | 32 | 78 | 79 | 80 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/Home/Learn0750.cshtml.BAK: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = null; 3 | } 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Index 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
    20 | 22 |
23 | 24 |
25 | 26 |
    27 | 30 |
31 |
32 | 33 | 34 | 35 | 36 | 37 | 38 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/NewLearning/Learn_1500.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Learn 1500 6 | 7 | 8 | 9 | 10 | 11 | 12 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
NamePriceCount
{{ item.name }}{{ item.price }}{{ item.count }}
32 |
33 | 34 | 35 | 36 | 68 | 69 | 70 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/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 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/Home/Learn0800.cshtml.BAK: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = null; 3 | } 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Index 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
    20 | 22 |
23 | 24 |
25 | 26 |
    27 | 30 |
31 |
32 | 33 | 34 | 35 | 36 | 37 | 38 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/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 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Web.Release.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 17 | 18 | 19 | 30 | 31 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/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 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/NewLearning/Learn_6500.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Learn 6500 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 |
16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 79 | 80 | 81 | -------------------------------------------------------------------------------- /DtxFileManagerVue/Initializer.cs: -------------------------------------------------------------------------------- 1 | namespace FileManager 2 | { 3 | public class Initializer : object 4 | { 5 | public Initializer() : base() 6 | { 7 | } 8 | 9 | // ********** 10 | protected virtual string AreaName 11 | { 12 | get 13 | { 14 | object areaName = 15 | System.Web.HttpContext.Current.Request.RequestContext.RouteData.DataTokens["area"]; 16 | 17 | if (areaName == null) 18 | { 19 | return null; 20 | } 21 | else 22 | { 23 | return areaName.ToString(); 24 | } 25 | } 26 | } 27 | // ********** 28 | 29 | // ********** 30 | protected virtual string ControllerName 31 | { 32 | get 33 | { 34 | object controllerName = 35 | System.Web.HttpContext.Current.Request.RequestContext.RouteData.Values["controller"]; 36 | 37 | if (controllerName == null) 38 | { 39 | return null; 40 | } 41 | else 42 | { 43 | return controllerName.ToString(); 44 | } 45 | } 46 | } 47 | // ********** 48 | 49 | // ********** 50 | public string Path 51 | { 52 | get 53 | { 54 | string result = string.Empty; 55 | 56 | if (string.IsNullOrWhiteSpace(AreaName) == false) 57 | { 58 | result = 59 | string.Format("/{0}", AreaName); 60 | } 61 | 62 | if (string.IsNullOrWhiteSpace(ControllerName) == false) 63 | { 64 | result = 65 | string.Format("{0}/{1}", result, ControllerName); 66 | } 67 | 68 | return result; 69 | } 70 | } 71 | // ********** 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Scripts/src/utils/runModifiers.js: -------------------------------------------------------------------------------- 1 | import isFunction from './isFunction'; 2 | import findIndex from './findIndex'; 3 | import getClientRect from '../utils/getClientRect'; 4 | 5 | /** 6 | * Loop trough the list of modifiers and run them in order, 7 | * each of them will then edit the data object. 8 | * @method 9 | * @memberof Popper.Utils 10 | * @param {dataObject} data 11 | * @param {Array} modifiers 12 | * @param {String} ends - Optional modifier name used as stopper 13 | * @returns {dataObject} 14 | */ 15 | export default function runModifiers(modifiers, data, ends) { 16 | const modifiersToRun = ends === undefined 17 | ? modifiers 18 | : modifiers.slice(0, findIndex(modifiers, 'name', ends)); 19 | 20 | modifiersToRun.forEach(modifier => { 21 | if (modifier['function']) { // eslint-disable-line dot-notation 22 | console.warn('`modifier.function` is deprecated, use `modifier.fn`!'); 23 | } 24 | const fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation 25 | if (modifier.enabled && isFunction(fn)) { 26 | // Add properties to offsets to make them a complete clientRect object 27 | // we do this before each modifier to make sure the previous one doesn't 28 | // mess with these values 29 | data.offsets.popper = getClientRect(data.offsets.popper); 30 | data.offsets.reference = getClientRect(data.offsets.reference); 31 | 32 | data = fn(data, modifier); 33 | } 34 | }); 35 | 36 | return data; 37 | } 38 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/Home/Test.cshtml.BAK: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = null; 3 | } 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Index 12 | 13 | 14 | 15 | 16 | 17 | 18 | 35 | 36 |
37 |
38 |
39 |
40 | 41 |
42 |
43 |
44 |
45 | 46 | 47 | 48 | 49 | 50 | @**@ 51 | 52 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/NewLearning/Learn_5500.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Learn 5500 6 | 7 | 8 | 9 | 10 | 11 | 12 | 17 | 18 | 19 |
20 |
21 | 1) Component template should have root element! 22 |
23 | 2) Using [template] as root element! 24 |
25 | 26 |
27 | 28 | 29 | 30 |
31 | 32 | 33 | 34 |
35 | 36 | 37 | 38 |
39 |
40 | 41 | 42 | 43 | 74 | 75 | 76 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("MY_WEB_APPLICATION")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("MY_WEB_APPLICATION")] 13 | [assembly: AssemblyCopyright("Copyright © 2018")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("5f0561f6-85dc-468f-a717-dc5747ddbe79")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Revision and Build Numbers 33 | // by using the '*' as shown below: 34 | [assembly: AssemblyVersion("1.0.0.0")] 35 | [assembly: AssemblyFileVersion("1.0.0.0")] 36 | -------------------------------------------------------------------------------- /DtxFileManagerVue/JsonData.cs: -------------------------------------------------------------------------------- 1 | namespace Dtx.FileManager 2 | { 3 | public class JsonData : object 4 | { 5 | public JsonData() : base() 6 | { 7 | } 8 | 9 | public object Data { get; set; } 10 | 11 | public string MessageText { get; set; } 12 | 13 | public string MessageTitle { get; set; } 14 | 15 | public bool DisplayMessage { get; set; } 16 | 17 | public ViewModels.JsonResultStates State { get; set; } 18 | 19 | public System.Web.Mvc.JsonResult GetJsonResult() 20 | { 21 | //if (DisplayMessage) 22 | //{ 23 | // if (string.IsNullOrWhiteSpace(MessageTitle)) 24 | // { 25 | // switch (State) 26 | // { 27 | // case Enums.JsonResultStates.Error: 28 | // { 29 | // MessageTitle = Resources.Captions.ErrorState; 30 | 31 | // break; 32 | // } 33 | 34 | // case Enums.JsonResultStates.Success: 35 | // { 36 | // MessageTitle = Resources.Captions.SuccessState; 37 | 38 | // break; 39 | // } 40 | 41 | // case Enums.JsonResultStates.Warning: 42 | // { 43 | // MessageTitle = Resources.Captions.WarningState; 44 | 45 | // break; 46 | // } 47 | // } 48 | // } 49 | //} 50 | 51 | System.Web.Mvc.JsonResult jsonResult = new System.Web.Mvc.JsonResult 52 | { 53 | Data = this, 54 | RecursionLimit = null, 55 | MaxJsonLength = int.MaxValue, 56 | ContentEncoding = System.Text.Encoding.UTF8, 57 | JsonRequestBehavior = System.Web.Mvc.JsonRequestBehavior.AllowGet 58 | }; 59 | 60 | return jsonResult; 61 | } 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/NewLearning/Learn_1600.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Learn 1600 6 | 7 | 8 | 9 | 10 | 11 | 12 | 17 | 18 | 19 |
20 |
21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 |
NamePriceCount
{{ item.name }}{{ item.price }}{{ item.count }}
34 |
35 |
36 |
37 | 38 | 39 | 40 | 68 | 69 | 70 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/NewLearning/Learn_6100.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Learn 6100 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | First Name: 20 |
21 | 22 |
23 | Last Name: 24 |
25 | 26 | 27 |
28 | 29 | 30 |
31 |
32 | Cell Phone Number: {{ result.data.cellPhoneNumber }} 33 |
34 | Email Address: {{ result.data.emailAddress }} 35 |
36 |
37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /Resources/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("Resources")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("Resources")] 13 | [assembly: AssemblyCopyright("Copyright © 2019")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("1e6b938a-4e7e-4c89-a435-904566416e81")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/NewLearning/Learn_5400.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Learn 5400 6 | 7 | 8 | 9 | 10 | 11 | 12 | 17 | 18 | 19 |
20 |
21 | 1) Only kabab case will be work in HTML! 22 |
23 | 2) The kabab case will considered as camel case! 24 |
25 | 26 |
27 | 28 |
    29 | 30 |
31 | 32 |
33 | 34 |
    35 | 36 |
37 | 38 |
39 |
40 | 41 | 42 | 43 | 71 | 72 | 73 | -------------------------------------------------------------------------------- /DtxFileManagerVue/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("DtxFileManagerVue")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("DtxFileManagerVue")] 13 | [assembly: AssemblyCopyright("Copyright © 2018")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("4261a6ae-3359-4ef3-bf21-0c81009dae56")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/Home/Learn5100.cshtml.BAK: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = null; 3 | } 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Index 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 |

22 | {{ message }} 23 |

24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 | 74 | 75 | 76 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Learning DtxGridVue (DTX Web Data Grid VUEJS) 2 | 3 | ### A very simple and powerful Web Data Grid based on VUEJS! 4 | 5 | ![dtxgridvue](https://user-images.githubusercontent.com/8329347/46918358-44471a80-cfde-11e8-9ffc-3067e4e7d08f.jpg) 6 | 7 | See LearningDtxGridVueController and its related Views for learning DtxGridVue 8 | 9 |
10 |
11 | 12 |
13 |
14 | 15 | 43 | 44 | ![01](https://user-images.githubusercontent.com/8329347/46260289-c882a380-c4f0-11e8-86b8-4622abeaf0b5.jpg) 45 | 46 | You can see all of samples and features in Learn_0100 to Learn_1700 actiions and views! 47 | 48 | ### Full Features in English: 49 | 50 | ![dtxgridvue 001](https://user-images.githubusercontent.com/8329347/46918428-08f91b80-cfdf-11e8-8fe0-29ae8ff19fe1.jpg) 51 | 52 | ### Full Features in Persian (Farsi): 53 | 54 | ![dtxgridvue 002](https://user-images.githubusercontent.com/8329347/46918460-64c3a480-cfdf-11e8-8cb3-4d2417915a57.jpg) 55 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/LearningDtxGridVue/Learn_0100.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = null; 3 | } 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Learn 100 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 21 |
22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/Home/Learn0900.cshtml.BAK: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = null; 3 | } 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Index 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 |
NamePriceCount
{{ item.name }}{{ item.price }}{{ item.count }}
33 |
34 |
35 |
36 | 37 | 38 | 39 | 40 | 41 | 42 | 63 | 64 | 65 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/NewLearning/Learn_0700.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Learn 700 6 | 7 | 8 | 9 | 10 | 11 | 12 | 17 | 18 | 19 |
20 |

21 | Learning Directive! 22 |

23 | 24 |
25 | 26 |
{{ message1 }}
27 | 28 |
29 | 30 |
31 |
32 | 33 |
34 | 35 |
{{ message2 }}
36 | 37 |
38 | 39 |
40 |
41 | 42 | @*دستورات ذیل غلط است*@ 43 | @*
*@ 44 | @*
*@ 45 | 46 |
47 | 48 | 49 | 50 |
51 | 52 | 53 | 54 |
55 |
56 | 57 | 58 | 59 | 82 | 83 | 84 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/NewLearning/Learn_1100.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Learn 1100 6 | 7 | 8 | 9 | 10 | 11 | 12 | 17 | 18 | 19 |
20 | Welcome {{ fullName }}! 21 |
22 | Welcome {{ fullName.toLowerCase() }}! 23 |
24 | Welcome {{ fullName.toUpperCase() }}! 25 |
26 | 27 |
28 | 29 | 30 |
31 | 32 | @*Person Full Name: {{ person.fullName }}*@ 33 | @*
*@ 34 | 35 |
36 | Person Full Name: {{ person.fullName }} 37 |
38 | 39 |
40 | Person Full Name: {{ person?.fullName }} 41 |
42 | 43 | 44 | 45 | 76 | 77 | 78 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/Home/Learn0932.cshtml.BAK: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = null; 3 | } 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Index 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |

20 | After display in browser! Activate Inspect! Breakpoint in [z] function! Click on doSomething button and Debug it! 21 |

22 |
23 |
24 | 25 | 26 | @*
27 | {{ z }}*@ 28 |
29 | {{ z() }} 30 |
31 | 32 |
33 | {{ t }} 34 |
35 |
36 |
37 | 38 | 39 | 40 | 41 | 42 | 43 | 80 | 81 | 82 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/Home/Learn5000.cshtml.BAK: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = null; 3 | } 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Index 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 |

22 | {{ message }} 23 |

24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 | 76 | 77 | 78 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/NewLearning/Learn_0500.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Learn 500 6 | 7 | 8 | 9 | 10 | 11 | 12 | 17 | 18 | 19 |
20 | {{ title }} 21 |
22 | {{ message1 }} 23 | @*
24 | {{ message2 }}*@ 25 |
26 | 27 |
28 | 29 |
30 | {{ title }} 31 |
32 | {{ message2 }} 33 | @*
34 | {{ message1 }}*@ 35 |
36 | 37 |
38 | 39 |
40 | {{ message3 }} 41 |
42 | 43 |
44 | 45 |
46 | {{ message3 }} 47 |
48 | 49 |
50 | 51 | 52 | 53 | 95 | 96 | 97 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/NewLearning/Learn_6600.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Learn 6600 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 |

15 | Problem: Two Way Binding From Parent to Child! 16 |

17 | 18 |
19 | 20 | 21 |
22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 87 | 88 | 89 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/Home/Learn0933.cshtml.BAK: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = null; 3 | } 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Index 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |

20 | After display in browser! Activate Inspect! Breakpoint in [z] function! Click on doSomething button and Debug it! 21 |

22 |
23 |
24 | 25 | 26 |
27 | {{ z }} 28 | @*
29 | {{ z() }}*@ 30 |
31 | 32 |
33 | {{ t }} 34 |
35 |
36 |
37 | 38 | 39 | 40 | 41 | 42 | 43 | 83 | 84 | 85 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/NewLearning/Learn_6650.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Learn 6650 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 |

15 | Problem: Two Way Binding From Parent to Child! 16 |

17 | 18 |
19 | 20 | 21 |
22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 87 | 88 | 89 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/Home/Learn5200.cshtml.BAK: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = null; 3 | } 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Index 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | Name 20 |
21 | 22 | 23 |
24 | 25 | 26 |

27 | {{ message }} 28 |

29 |
30 | 31 | 32 | 33 | 34 | 35 | 36 | 82 | 83 | 84 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/NewLearning/Learn_5300.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Learn 5300 6 | 7 | 8 | 9 | 10 | 11 | 12 | 17 | 18 | 19 |
20 |

21 | Using input parameters for components (BUG FIXED)! 22 |

23 | 24 |
25 | 26 | 27 | 28 |
29 | 30 |
    31 | 32 |
33 | 34 |
35 | 36 |
    37 | 38 |
39 | 40 |
41 |
42 | 43 | 44 | 45 | 83 | 84 | 85 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/NewLearning/Learn_2100.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Learn 2100 6 | 7 | 8 | 9 | 10 | 11 | 12 | 17 | 18 | 19 |
20 |

21 | Learning Comuted Property (Read Only Property)! 22 |

23 | 24 |
25 | Note: Computed Property definition is similar to methods, but you cannot pass input parameters! 26 |
27 | 28 |

29 | Google Chrome -> 30 | Inspect Elements -> 31 | Breakpoint in [z] function -> 32 | Click on [doSomething] button and Debug it! 33 |

34 | 35 | 36 | 37 | 38 |
39 | 40 | @*!دقت کنید که دستور ذیل کار نمی‌کند ولی در درس بعد اینگونه نیست*@ 41 | @*{{ z }}*@ 42 | 43 | {{ z() }} 44 | 45 |
46 | 47 | 48 | 49 |
50 | 51 | {{ t }} 52 |
53 | 54 | 55 | 56 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/LearningDtxGridVue/Learn_0500.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = null; 3 | } 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Learn 500 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 21 |
22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 69 | 70 | 71 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/NewLearning/Learn_6700.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Learn 6700 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 |

15 | There is not any problem with two way binding from parent to child with reference types! 16 |

17 | 18 |
19 | 20 | 21 |
22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/NewLearning/Learn_2200.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Learn 2200 6 | 7 | 8 | 9 | 10 | 11 | 12 | 17 | 18 | 19 |
20 |

21 | Learning Comuted! 22 |

23 | 24 |
25 | Note: Computed Property definition is similar to methods, but you cannot pass input parameters! 26 |
27 | 28 |

29 | Google Chrome -> 30 | Inspect Elements -> 31 | Breakpoint in [z] function -> 32 | Click on [doSomething] button and Debug it! 33 |

34 | 35 | 36 | 37 | 38 |
39 | 40 | {{ z }} 41 | 42 | @*حالا دستور ذیل کار نمی‌کند*@ 43 | @*{{ z() }}*@ 44 | 45 |
46 | 47 | 48 | 49 |
50 | 51 | {{ t }} 52 |
53 | 54 | 55 | 56 | 97 | 98 | 99 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/NewLearning/Learn_6900.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Learn 6900 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 |

15 | Event Bubbling - With One Parameter! 16 |

17 | 18 |
19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 96 | 97 | 98 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/Home/Learn0910.cshtml.BAK: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = null; 3 | } 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Index 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 |
21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | @**@ 35 | 36 |
NamePriceCountSub Total
{{ item.name }}{{ item.price }}{{ item.count }}{{ item.count * item.price }}{{ item.count }} * {{ item.price }}
37 |
38 |
39 |
40 |
41 | 42 | 43 | 44 | 45 | 46 | 47 | 68 | 69 | 70 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/LearningDtxGridVue/Learn_0600.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = null; 3 | } 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Learn 600 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 21 |
22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 71 | 72 | 73 | -------------------------------------------------------------------------------- /DtxFileManagerVue/FileManager/ViewModels/PathAndDirectoriesAndFilesAndPathCollectionAndUrlViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace Dtx.FileManager.ViewModels 2 | { 3 | public class PathAndDirectoriesAndFilesAndPathCollectionAndUrlViewModel : DirectoriesAndFilesViewModel 4 | { 5 | public PathAndDirectoriesAndFilesAndPathCollectionAndUrlViewModel() : base() 6 | { 7 | } 8 | 9 | // ********** 10 | public string Path { get; set; } 11 | // ********** 12 | 13 | // ********** 14 | [System.Web.Script.Serialization.ScriptIgnore] 15 | public string PreDefinedRootRelativePath { get; set; } 16 | // ********** 17 | 18 | // ********** 19 | public string Url 20 | { 21 | get 22 | { 23 | string url = 24 | System.Web.HttpContext.Current.Request.Url.Scheme + 25 | System.Uri.SchemeDelimiter + 26 | System.Web.HttpContext.Current.Request.Url.Host + 27 | (System.Web.HttpContext.Current.Request.Url.IsDefaultPort ? "" : ":" + System.Web.HttpContext.Current.Request.Url.Port) 28 | ; 29 | 30 | if (PreDefinedRootRelativePath == "~") 31 | { 32 | url += Path; 33 | } 34 | else 35 | { 36 | url += 37 | "/" + 38 | PreDefinedRootRelativePath.Substring(2) + 39 | Path 40 | ; 41 | } 42 | 43 | return url; 44 | } 45 | } 46 | // ********** 47 | 48 | // ********** 49 | // ********** 50 | // ********** 51 | private System.Collections.Generic.IList pathCollection; 52 | // ********** 53 | 54 | // ********** 55 | public System.Collections.Generic.IList PathCollection 56 | { 57 | get 58 | { 59 | if (pathCollection == null) 60 | { 61 | pathCollection = 62 | new System.Collections.Generic.List(); 63 | } 64 | 65 | return pathCollection; 66 | } 67 | } 68 | // ********** 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/LearningDtxGridVue/Learn_0400.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = null; 3 | } 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Learn 400 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 21 |
22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 72 | 73 | 74 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/Home/Learn5350.cshtml.BAK: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = null; 3 | } 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Index 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | Name 20 | @*@(Resources.DataDictionary.FirstName)*@ 21 |
22 | 23 | 24 |
25 |
26 | 27 | Family 28 |
29 | 30 | 31 |
32 |
33 | 34 | 35 | 36 |

37 | {{ message }} 38 |

39 |
40 | 41 | 42 | 43 | 44 | 45 | 46 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /DtxFileManagerVue/FileManager/ViewModels/BaseViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace Dtx.FileManager.ViewModels 2 | { 3 | public class BaseViewModel : object 4 | { 5 | public BaseViewModel() : base() 6 | { 7 | } 8 | 9 | // ********** 10 | public bool IsSelected { get; set; } 11 | // ********** 12 | 13 | // ********** 14 | public string Name { get; set; } 15 | // ********** 16 | 17 | // ********** 18 | public string Message { get; set; } 19 | // ********** 20 | 21 | // ********** 22 | // ********** 23 | // ********** 24 | [System.Web.Script.Serialization.ScriptIgnore] 25 | public System.DateTime CreationTime { get; set; } 26 | // ********** 27 | 28 | // ********** 29 | public string DisplayCreationTime 30 | { 31 | get 32 | { 33 | string result = 34 | CreationTime.ToString("yyyy/MM/dd - HH:mm:ss"); 35 | 36 | return result; 37 | } 38 | } 39 | // ********** 40 | // ********** 41 | // ********** 42 | 43 | // ********** 44 | // ********** 45 | // ********** 46 | [System.Web.Script.Serialization.ScriptIgnore] 47 | public System.DateTime LastWriteTime { get; set; } 48 | // ********** 49 | 50 | // ********** 51 | public string DisplayLastWriteTime 52 | { 53 | get 54 | { 55 | string result = 56 | LastWriteTime.ToString("yyyy/MM/dd - HH:mm:ss"); 57 | 58 | return result; 59 | } 60 | } 61 | // ********** 62 | // ********** 63 | // ********** 64 | 65 | // ********** 66 | // ********** 67 | // ********** 68 | [System.Web.Script.Serialization.ScriptIgnore] 69 | public System.DateTime LastAccessTime { get; set; } 70 | // ********** 71 | 72 | // ********** 73 | public string DisplayLastAccessTime 74 | { 75 | get 76 | { 77 | string result = 78 | LastAccessTime.ToString("yyyy/MM/dd - HH:mm:ss"); 79 | 80 | return result; 81 | } 82 | } 83 | // ********** 84 | } 85 | } 86 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/NewLearning/Learn_6200.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Learn 6200 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 |

15 | Define internal fields for components! 16 |
17 | دقت کنید external-message و externalMessage به 18 |

19 | 20 |
21 | 22 | 23 | 24 | @* 25 | // دستور ذیل عمل نمی‌کند و دچار خطا خواهد شد 26 | 27 | *@ 28 |
29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 91 | 92 | 93 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Scripts/src/utils/getPopperOffsets.js: -------------------------------------------------------------------------------- 1 | import getOuterSizes from './getOuterSizes'; 2 | import getOppositePlacement from './getOppositePlacement'; 3 | 4 | /** 5 | * Get offsets to the popper 6 | * @method 7 | * @memberof Popper.Utils 8 | * @param {Object} position - CSS position the Popper will get applied 9 | * @param {HTMLElement} popper - the popper element 10 | * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this) 11 | * @param {String} placement - one of the valid placement options 12 | * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper 13 | */ 14 | export default function getPopperOffsets(popper, referenceOffsets, placement) { 15 | placement = placement.split('-')[0]; 16 | 17 | // Get popper node sizes 18 | const popperRect = getOuterSizes(popper); 19 | 20 | // Add position, width and height to our offsets object 21 | const popperOffsets = { 22 | width: popperRect.width, 23 | height: popperRect.height, 24 | }; 25 | 26 | // depending by the popper placement we have to compute its offsets slightly differently 27 | const isHoriz = ['right', 'left'].indexOf(placement) !== -1; 28 | const mainSide = isHoriz ? 'top' : 'left'; 29 | const secondarySide = isHoriz ? 'left' : 'top'; 30 | const measurement = isHoriz ? 'height' : 'width'; 31 | const secondaryMeasurement = !isHoriz ? 'height' : 'width'; 32 | 33 | popperOffsets[mainSide] = 34 | referenceOffsets[mainSide] + 35 | referenceOffsets[measurement] / 2 - 36 | popperRect[measurement] / 2; 37 | if (placement === secondarySide) { 38 | popperOffsets[secondarySide] = 39 | referenceOffsets[secondarySide] - popperRect[secondaryMeasurement]; 40 | } else { 41 | popperOffsets[secondarySide] = 42 | referenceOffsets[getOppositePlacement(secondarySide)]; 43 | } 44 | 45 | return popperOffsets; 46 | } 47 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Scripts/src/utils/findCommonOffsetParent.js: -------------------------------------------------------------------------------- 1 | import isOffsetContainer from './isOffsetContainer'; 2 | import getRoot from './getRoot'; 3 | import getOffsetParent from './getOffsetParent'; 4 | 5 | /** 6 | * Finds the offset parent common to the two provided nodes 7 | * @method 8 | * @memberof Popper.Utils 9 | * @argument {Element} element1 10 | * @argument {Element} element2 11 | * @returns {Element} common offset parent 12 | */ 13 | export default function findCommonOffsetParent(element1, element2) { 14 | // This check is needed to avoid errors in case one of the elements isn't defined for any reason 15 | if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) { 16 | return document.documentElement; 17 | } 18 | 19 | // Here we make sure to give as "start" the element that comes first in the DOM 20 | const order = 21 | element1.compareDocumentPosition(element2) & 22 | Node.DOCUMENT_POSITION_FOLLOWING; 23 | const start = order ? element1 : element2; 24 | const end = order ? element2 : element1; 25 | 26 | // Get common ancestor container 27 | const range = document.createRange(); 28 | range.setStart(start, 0); 29 | range.setEnd(end, 0); 30 | const { commonAncestorContainer } = range; 31 | 32 | // Both nodes are inside #document 33 | if ( 34 | (element1 !== commonAncestorContainer && 35 | element2 !== commonAncestorContainer) || 36 | start.contains(end) 37 | ) { 38 | if (isOffsetContainer(commonAncestorContainer)) { 39 | return commonAncestorContainer; 40 | } 41 | 42 | return getOffsetParent(commonAncestorContainer); 43 | } 44 | 45 | // one of the nodes is inside shadowDOM, find which one 46 | const element1root = getRoot(element1); 47 | if (element1root.host) { 48 | return findCommonOffsetParent(element1root.host, element2); 49 | } else { 50 | return findCommonOffsetParent(element1, getRoot(element2).host); 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/Home/Learn0675.cshtml.BAK: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = null; 3 | } 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Index 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | {{ message1 }} 21 |
22 |
23 | {{ message2 }} 24 |
25 |
    26 | 27 |
28 |
29 | 30 |
31 | 32 |
33 |
34 | {{ message1 }} 35 |
36 |
37 | {{ message2 }} 38 |
39 |
    40 | 41 |
42 |
43 | 44 |
45 | 46 |
47 |
48 | {{ message3 }} 49 |
50 |
51 | 52 |
53 | 54 |
55 |
56 | {{ message3 }} 57 |
58 |
59 | 60 | 61 | 62 | 63 | 64 | 65 | 110 | 111 | 112 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/LearningDtxGridVue/Learn_0200.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = null; 3 | } 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Learn 200 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 21 |
22 | 23 |
24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 75 | 76 | 77 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/NewLearning/Learn_7200.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Learn 7200 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 |

15 | Solving Problem: Two Way Binding From Parent to Child! - Step (2) 16 |
17 | Without Function Definition! 18 |

19 | 20 |
21 | 22 | 23 |
24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 97 | 98 | 99 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/NewLearning/Learn_4000.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Learn 4000 6 | 7 | 8 | 9 | 10 | 11 | 12 | 17 | 18 | 19 |
20 |
21 |
22 | {{ message }} 23 |
24 |
25 |
26 | 27 | First Name: 28 |
29 | 30 |
31 | Last Name: 32 |
33 | 34 | 35 |
36 | 37 |
38 | 39 | 40 | 41 | 42 | 99 | 100 | 101 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/NewLearning/Learn_6800.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Learn 6800 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 |

15 | Event Bubbling - Without Parameter! 16 |
17 | We should always use kebab-case for event names. 18 |

19 | 20 |
21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 98 | 99 | 100 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/Home/Learn0300.cshtml.BAK: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = null; 3 | } 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Index 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
    20 |
  • {{ item }}
  • 21 |
22 | 23 |
24 | 25 |
    26 |
  • {{ item }}
  • 27 |
28 | 29 |
30 |
31 | 32 |
    33 |
  • {{ item.id }} - {{ item.text }}
  • 34 |
35 | 36 |
37 | 38 |
    39 |
  • {{ item.id }} - {{ item.text }}
  • 40 |
41 | 42 |
43 |
44 | 45 |
46 |
    47 |
  • {{ item.text }}
  • 48 |
49 |
50 | 51 |
52 | 53 |
54 |
    55 |
  • {{ item.text }}
  • 56 |
57 |
58 |
59 | 60 | 61 | 62 | 63 | 64 | 65 | 96 | 97 | 98 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Scripts/src/utils/getRoundedOffsets.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @function 3 | * @memberof Popper.Utils 4 | * @argument {Object} data - The data object generated by `update` method 5 | * @argument {Boolean} shouldRound - If the offsets should be rounded at all 6 | * @returns {Object} The popper's position offsets rounded 7 | * 8 | * The tale of pixel-perfect positioning. It's still not 100% perfect, but as 9 | * good as it can be within reason. 10 | * Discussion here: https://github.com/FezVrasta/popper.js/pull/715 11 | * 12 | * Low DPI screens cause a popper to be blurry if not using full pixels (Safari 13 | * as well on High DPI screens). 14 | * 15 | * Firefox prefers no rounding for positioning and does not have blurriness on 16 | * high DPI screens. 17 | * 18 | * Only horizontal placement and left/right values need to be considered. 19 | */ 20 | export default function getRoundedOffsets(data, shouldRound) { 21 | const { popper, reference } = data.offsets; 22 | const { round, floor } = Math; 23 | const noRound = v => v; 24 | 25 | const referenceWidth = round(reference.width); 26 | const popperWidth = round(popper.width); 27 | 28 | const isVertical = ['left', 'right'].indexOf(data.placement) !== -1; 29 | const isVariation = data.placement.indexOf('-') !== -1; 30 | const sameWidthParity = referenceWidth % 2 === popperWidth % 2; 31 | const bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1; 32 | 33 | const horizontalToInteger = !shouldRound 34 | ? noRound 35 | : isVertical || isVariation || sameWidthParity 36 | ? round 37 | : floor; 38 | const verticalToInteger = !shouldRound ? noRound : round; 39 | 40 | return { 41 | left: horizontalToInteger( 42 | bothOddWidth && !isVariation && shouldRound 43 | ? popper.left - 1 44 | : popper.left 45 | ), 46 | top: verticalToInteger(popper.top), 47 | bottom: verticalToInteger(popper.bottom), 48 | right: horizontalToInteger(popper.right), 49 | }; 50 | } 51 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/NewLearning/Learn_1300.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Learn 1300 6 | 7 | 8 | 9 | 10 | 11 | 12 | 17 | 18 | 19 |
20 | Welcome {{ fullName }}! 21 |
22 | 23 |
24 | 25 | 26 | 27 | 106 | 107 | 108 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/web.config: -------------------------------------------------------------------------------- 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 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/NewLearning/Learn_1700.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Learn 1700 6 | 7 | 8 | 9 | 10 | 11 | 12 | 17 | 18 | 19 |
20 |
21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 39 | 40 | 41 |
NamePriceCountFunctionsSub Total
{{ item.name }}{{ item.price }}{{ item.count }} 35 | 36 |   37 | 38 | {{ item.count * item.price }}
42 |
43 |
44 |
45 | 46 | 47 | 48 | 88 | 89 | 90 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/NewLearning/Learn_7300.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Learn 7300 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 |

15 | Solving Problem: Two Way Binding From Parent to Child! - Step (3) 16 |
17 | Using v-model -> value prop! 18 |

19 | 20 |
21 | 22 | 23 |
24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 98 | 99 | 100 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Scripts/src/utils/computeAutoPlacement.js: -------------------------------------------------------------------------------- 1 | import getBoundaries from '../utils/getBoundaries'; 2 | 3 | function getArea({ width, height }) { 4 | return width * height; 5 | } 6 | 7 | /** 8 | * Utility used to transform the `auto` placement to the placement with more 9 | * available space. 10 | * @method 11 | * @memberof Popper.Utils 12 | * @argument {Object} data - The data object generated by update method 13 | * @argument {Object} options - Modifiers configuration and options 14 | * @returns {Object} The data object, properly modified 15 | */ 16 | export default function computeAutoPlacement( 17 | placement, 18 | refRect, 19 | popper, 20 | reference, 21 | boundariesElement, 22 | padding = 0 23 | ) { 24 | if (placement.indexOf('auto') === -1) { 25 | return placement; 26 | } 27 | 28 | const boundaries = getBoundaries( 29 | popper, 30 | reference, 31 | padding, 32 | boundariesElement 33 | ); 34 | 35 | const rects = { 36 | top: { 37 | width: boundaries.width, 38 | height: refRect.top - boundaries.top, 39 | }, 40 | right: { 41 | width: boundaries.right - refRect.right, 42 | height: boundaries.height, 43 | }, 44 | bottom: { 45 | width: boundaries.width, 46 | height: boundaries.bottom - refRect.bottom, 47 | }, 48 | left: { 49 | width: refRect.left - boundaries.left, 50 | height: boundaries.height, 51 | }, 52 | }; 53 | 54 | const sortedAreas = Object.keys(rects) 55 | .map(key => ({ 56 | key, 57 | ...rects[key], 58 | area: getArea(rects[key]), 59 | })) 60 | .sort((a, b) => b.area - a.area); 61 | 62 | const filteredAreas = sortedAreas.filter( 63 | ({ width, height }) => 64 | width >= popper.clientWidth && height >= popper.clientHeight 65 | ); 66 | 67 | const computedPlacement = filteredAreas.length > 0 68 | ? filteredAreas[0].key 69 | : sortedAreas[0].key; 70 | 71 | const variation = placement.split('-')[1]; 72 | 73 | return computedPlacement + (variation ? `-${variation}` : ''); 74 | } 75 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/LearningDtxGridVue/Learn_0800.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = null; 3 | } 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Learn 800 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 21 |
22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 87 | 88 | 89 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/Home/Learn0875.cshtml.BAK: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = null; 3 | } 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Index 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | Dollars: 20 | 21 |
22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 | 93 | 94 | 95 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/NewLearning/Learn_7100.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Learn 7100 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 |

15 | Solving Problem: Two Way Binding From Parent to Child! - Step (1) 16 |

17 | 18 |
19 | 20 | 21 |
22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 101 | 102 | 103 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/Home/Learn0583.cshtml.BAK: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = null; 3 | } 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Index 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | Welcome {{ fullName }}! 20 |
21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 | 108 | 109 | 110 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Web.config: -------------------------------------------------------------------------------- 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 | 34 | 35 | 38 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/NewLearning/Learn_1400.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Learn 1400 6 | 7 | 8 | 9 | 10 | 11 | 12 | 17 | 18 | 19 |
20 | Welcome {{ fullName }}! 21 |
22 | 23 | 24 | 25 | 109 | 110 | 111 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/NewLearning/Learn_7400.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Learn 7400 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 |

15 | Solving Problem: Two Way Binding From Parent to Child! - Step (4) 16 |
17 | Amazing Step! 18 |
19 | Using v-model and without Event Bubbling! 20 |

21 | 22 |
23 | 24 | 25 |
26 | 27 |
28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 101 | 102 | 103 | -------------------------------------------------------------------------------- /MY_WEB_APPLICATION/Views/LearningDtxGridVue/Learn_0900.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = null; 3 | } 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Learn 900 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 21 |
22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 88 | 89 | 90 | --------------------------------------------------------------------------------