Debuging and repare code
This commit is contained in:
parent
bf9dc01ad5
commit
8897e12464
@ -27,7 +27,7 @@
|
|||||||
<nav>
|
<nav>
|
||||||
<ul class="navlist">
|
<ul class="navlist">
|
||||||
<li><a href="">Home</a></li>
|
<li><a href="">Home</a></li>
|
||||||
<li><a href="/documentation/index.html">Documentation</a></li>
|
<!-- <li><a href="/documentation/index.html">Documentation</a></li> -->
|
||||||
</ul>
|
</ul>
|
||||||
</nav>
|
</nav>
|
||||||
</header>
|
</header>
|
||||||
@ -356,5 +356,5 @@
|
|||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
<script type="module" src="index.js"></script>
|
<script type="module" src="index.js"></script>
|
||||||
<script type="module" src="indexTs.ts"></script>
|
<!-- <script type="module" src="indexTs.ts"></script> -->
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,34 +1,34 @@
|
|||||||
import DropDown from '../index';
|
import { CGSelect } from '../src/cg-selectTS';
|
||||||
import './example';
|
import './example';
|
||||||
|
|
||||||
// ------------------------------Обычный селект--------------------
|
// ------------------------------Обычный селект--------------------
|
||||||
// const dropdown = new DropDown({
|
const dropdown = new CGSelect({
|
||||||
// selector: '.cg-dropdown_one',
|
selector: '.cg-dropdown_one',
|
||||||
// placeholder: 'Выберите авто',
|
placeholder: 'Выберите авто',
|
||||||
// lable: 'EXAMPLE',
|
lable: 'EXAMPLE',
|
||||||
// items: [
|
items: [
|
||||||
// 'BMW',
|
'BMW',
|
||||||
// {
|
{
|
||||||
// id: '213sade',
|
id: '213sade',
|
||||||
// title: 'Opel',
|
title: 'Opel',
|
||||||
// value: 1,
|
value: 1,
|
||||||
// },
|
},
|
||||||
// 'Mersedes',
|
'Mersedes',
|
||||||
// 'MAN',
|
'MAN',
|
||||||
// 'Ferari',
|
'Ferari',
|
||||||
// ],
|
],
|
||||||
// styles: {
|
styles: {
|
||||||
// head: {
|
head: {
|
||||||
// width: '830px',
|
width: '830px',
|
||||||
// },
|
},
|
||||||
// list: {
|
list: {
|
||||||
// width: '824px',
|
width: '824px',
|
||||||
// },
|
},
|
||||||
// },
|
},
|
||||||
// });
|
});
|
||||||
|
|
||||||
// ------------------------------NativeSelect-----------------------
|
// ------------------------------NativeSelect-----------------------
|
||||||
const dropdownNativeSelect = new DropDown({
|
const dropdownNativeSelect = new CGSelect({
|
||||||
selector: '.cg-dropdown_selectNative',
|
selector: '.cg-dropdown_selectNative',
|
||||||
placeholder: 'Выберите авто',
|
placeholder: 'Выберите авто',
|
||||||
nativeSelectMode: true,
|
nativeSelectMode: true,
|
||||||
@ -43,7 +43,7 @@ const dropdownNativeSelect = new DropDown({
|
|||||||
'MAN',
|
'MAN',
|
||||||
'Ferari',
|
'Ferari',
|
||||||
'Kamaz',
|
'Kamaz',
|
||||||
'Ural'
|
'Ural',
|
||||||
],
|
],
|
||||||
styles: {
|
styles: {
|
||||||
head: {
|
head: {
|
||||||
@ -56,7 +56,7 @@ const dropdownNativeSelect = new DropDown({
|
|||||||
});
|
});
|
||||||
|
|
||||||
// ------------------------------listDisplayMode--------------------
|
// ------------------------------listDisplayMode--------------------
|
||||||
const dropdownlistDisplayMode = new DropDown({
|
const dropdownlistDisplayMode = new CGSelect({
|
||||||
selector: '.cg-dropdown_listDisplayMode',
|
selector: '.cg-dropdown_listDisplayMode',
|
||||||
placeholder: 'Выберите авто',
|
placeholder: 'Выберите авто',
|
||||||
listDisplayMode: true,
|
listDisplayMode: true,
|
||||||
@ -81,26 +81,8 @@ const dropdownlistDisplayMode = new DropDown({
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
// ------------------------------URL--------------------
|
|
||||||
const dropdown3 = new DropDown({
|
|
||||||
selector: '.cg-dropdown_three',
|
|
||||||
placeholder: 'URL',
|
|
||||||
url: 'https://jsonplaceholder.typicode.com/users',
|
|
||||||
searchMode: true,
|
|
||||||
darkTheme: false,
|
|
||||||
language: 'ru',
|
|
||||||
styles: {
|
|
||||||
head: {
|
|
||||||
width: '830px',
|
|
||||||
},
|
|
||||||
list: {
|
|
||||||
width: '824px',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
// --------------------------------Категории--------------------------
|
// --------------------------------Категории--------------------------
|
||||||
const dropdown4 = new DropDown({
|
const dropdown4 = new CGSelect({
|
||||||
selector: '.cg-dropdown_categories',
|
selector: '.cg-dropdown_categories',
|
||||||
placeholder: 'Выберите регион',
|
placeholder: 'Выберите регион',
|
||||||
searchMode: true,
|
searchMode: true,
|
||||||
@ -145,7 +127,7 @@ const dropdown4 = new DropDown({
|
|||||||
});
|
});
|
||||||
|
|
||||||
//----------------управление с помощью кнопок----------------------------------
|
//----------------управление с помощью кнопок----------------------------------
|
||||||
const dropdownBtn = new DropDown({
|
const dropdownBtn = new CGSelect({
|
||||||
selector: '.cg-dropdown_usedBtn',
|
selector: '.cg-dropdown_usedBtn',
|
||||||
placeholder: 'Выберите авто',
|
placeholder: 'Выберите авто',
|
||||||
searchMode: true,
|
searchMode: true,
|
||||||
@ -192,7 +174,7 @@ dropdownBtn.buttonControl(buttonOpen, 'open');
|
|||||||
dropdownBtn.buttonControl(buttonClose, 'close');
|
dropdownBtn.buttonControl(buttonClose, 'close');
|
||||||
|
|
||||||
//-------------------------Функция Disabled----------------------------------
|
//-------------------------Функция Disabled----------------------------------
|
||||||
const dropdownDisabled = new DropDown({
|
const dropdownDisabled = new CGSelect({
|
||||||
selector: '.cg-dropdown_checkboxDisable',
|
selector: '.cg-dropdown_checkboxDisable',
|
||||||
placeholder: 'Выберите авто',
|
placeholder: 'Выберите авто',
|
||||||
searchMode: true,
|
searchMode: true,
|
||||||
@ -230,3 +212,22 @@ chbox.addEventListener('click', () => {
|
|||||||
dropdownDisabled.disabled(true);
|
dropdownDisabled.disabled(true);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// ------------------------------URL--------------------
|
||||||
|
const dropdown3 = new CGSelect({
|
||||||
|
selector: '.cg-dropdown_three',
|
||||||
|
placeholder: 'URL',
|
||||||
|
url: 'https://jsonplaceholder.typicode.com/todos',
|
||||||
|
searchMode: true,
|
||||||
|
darkTheme: false,
|
||||||
|
language: 'ru',
|
||||||
|
styles: {
|
||||||
|
head: {
|
||||||
|
width: '830px',
|
||||||
|
},
|
||||||
|
list: {
|
||||||
|
width: '824px',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
multiselect: true,
|
||||||
|
});
|
||||||
|
@ -1,36 +1,234 @@
|
|||||||
import { CGSelect } from '../src/cg-selectTS';
|
// import { CGSelect } from '../src/cg-selectTS';
|
||||||
|
// import './example';
|
||||||
|
|
||||||
const dropdn = new CGSelect({
|
// // ------------------------------Обычный селект--------------------
|
||||||
selector: '.cg-dropdown_one',
|
// const dropdn = new CGSelect({
|
||||||
placeholder: 'Выберите авто',
|
// selector: '.cg-dropdown_one',
|
||||||
items: [
|
// placeholder: 'Выберите авто',
|
||||||
'BMW',
|
// lable: 'EXAMPLE',
|
||||||
{
|
// items: [
|
||||||
id: '213sade',
|
// 'BMW',
|
||||||
title: 'Opel',
|
// {
|
||||||
value: 1,
|
// id: '213sade',
|
||||||
},
|
// title: 'Opel',
|
||||||
'Mersedes',
|
// value: 1,
|
||||||
'MAN',
|
// },
|
||||||
'max',
|
// 'Mersedes',
|
||||||
],
|
// 'MAN',
|
||||||
styles: {
|
// 'Ferari',
|
||||||
head: {
|
// ],
|
||||||
width: '830px',
|
// styles: {
|
||||||
},
|
// head: {
|
||||||
list: {
|
// width: '830px',
|
||||||
width: '824px',
|
// },
|
||||||
},
|
// list: {
|
||||||
placeholder: {
|
// width: '824px',
|
||||||
maxWidth: '500px ',
|
// },
|
||||||
},
|
// },
|
||||||
},
|
// });
|
||||||
// url
|
|
||||||
// listDisplayMode: true,
|
// // ------------------------------NativeSelect-----------------------
|
||||||
// searchMode: true,
|
// const dropdownNativeSelect = new CGSelect({
|
||||||
// nativeSelectMode: true
|
// selector: '.cg-dropdown_selectNative',
|
||||||
// event: 'mouseenter',
|
// placeholder: 'Выберите авто',
|
||||||
// buttonControl
|
// nativeSelectMode: true,
|
||||||
multiselect: true,
|
// items: [
|
||||||
multiselectTag: true,
|
// 'BMW',
|
||||||
});
|
// {
|
||||||
|
// id: '213sade',
|
||||||
|
// title: 'Opel',
|
||||||
|
// value: 1,
|
||||||
|
// },
|
||||||
|
// 'Mersedes',
|
||||||
|
// 'MAN',
|
||||||
|
// 'Ferari',
|
||||||
|
// 'Kamaz',
|
||||||
|
// 'Ural',
|
||||||
|
// ],
|
||||||
|
// styles: {
|
||||||
|
// head: {
|
||||||
|
// width: '830px',
|
||||||
|
// },
|
||||||
|
// list: {
|
||||||
|
// width: '824px',
|
||||||
|
// },
|
||||||
|
// },
|
||||||
|
// });
|
||||||
|
|
||||||
|
// // console.log();
|
||||||
|
|
||||||
|
// // ------------------------------listDisplayMode--------------------
|
||||||
|
// const dropdownlistDisplayMode = new CGSelect({
|
||||||
|
// selector: '.cg-dropdown_listDisplayMode',
|
||||||
|
// placeholder: 'Выберите авто',
|
||||||
|
// listDisplayMode: true,
|
||||||
|
// items: [
|
||||||
|
// 'BMW',
|
||||||
|
// {
|
||||||
|
// id: '213sade',
|
||||||
|
// title: 'Opel',
|
||||||
|
// value: 1,
|
||||||
|
// },
|
||||||
|
// 'Mersedes',
|
||||||
|
// 'MAN',
|
||||||
|
// 'Ferari',
|
||||||
|
// ],
|
||||||
|
// styles: {
|
||||||
|
// head: {
|
||||||
|
// width: '830px',
|
||||||
|
// },
|
||||||
|
// list: {
|
||||||
|
// width: '824px',
|
||||||
|
// },
|
||||||
|
// },
|
||||||
|
// });
|
||||||
|
|
||||||
|
// // ------------------------------URL--------------------
|
||||||
|
// const dropdown3 = new CGSelect({
|
||||||
|
// selector: '.cg-dropdown_three',
|
||||||
|
// placeholder: 'URL',
|
||||||
|
// url: 'https://jsonplaceholder.typicode.com/users',
|
||||||
|
// searchMode: true,
|
||||||
|
// darkTheme: false,
|
||||||
|
// language: 'ru',
|
||||||
|
// styles: {
|
||||||
|
// head: {
|
||||||
|
// width: '830px',
|
||||||
|
// },
|
||||||
|
// list: {
|
||||||
|
// width: '824px',
|
||||||
|
// },
|
||||||
|
// },
|
||||||
|
// });
|
||||||
|
|
||||||
|
// // --------------------------------Категории--------------------------
|
||||||
|
// const dropdown4 = new CGSelect({
|
||||||
|
// selector: '.cg-dropdown_categories',
|
||||||
|
// placeholder: 'Выберите регион',
|
||||||
|
// searchMode: true,
|
||||||
|
// items: [
|
||||||
|
// {
|
||||||
|
// category: 'Russia',
|
||||||
|
// categoryItems: [
|
||||||
|
// {
|
||||||
|
// id: '28qwds',
|
||||||
|
// title: 'Москва',
|
||||||
|
// value: 0,
|
||||||
|
// },
|
||||||
|
// ,
|
||||||
|
// 'Ростов-на-дону',
|
||||||
|
// 'Саратов',
|
||||||
|
// 'Волгоград',
|
||||||
|
// 'Донецк',
|
||||||
|
// ],
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// category: 'USA',
|
||||||
|
// categoryItems: ['Alabama', 'Texas', 'Colorado', 'Klirens', 'Los-Angeles'],
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// category: 'France',
|
||||||
|
// categoryItems: ['Paris'],
|
||||||
|
// },
|
||||||
|
// ],
|
||||||
|
// styles: {
|
||||||
|
// head: {
|
||||||
|
// width: '830px',
|
||||||
|
// },
|
||||||
|
// list: {
|
||||||
|
// width: '824px',
|
||||||
|
// },
|
||||||
|
// placeholder: {
|
||||||
|
// maxWidth: '500px ',
|
||||||
|
// },
|
||||||
|
// },
|
||||||
|
// multiselect: true,
|
||||||
|
// multiselectTag: true,
|
||||||
|
// });
|
||||||
|
|
||||||
|
// //----------------управление с помощью кнопок----------------------------------
|
||||||
|
// const dropdownBtn = new CGSelect({
|
||||||
|
// selector: '.cg-dropdown_usedBtn',
|
||||||
|
// placeholder: 'Выберите авто',
|
||||||
|
// searchMode: true,
|
||||||
|
// items: [
|
||||||
|
// 'BMW',
|
||||||
|
// {
|
||||||
|
// id: '213sade',
|
||||||
|
// title: 'Opel',
|
||||||
|
// value: 1,
|
||||||
|
// },
|
||||||
|
// 'Mersedes',
|
||||||
|
// 'MAN',
|
||||||
|
// 'max',
|
||||||
|
// ],
|
||||||
|
// styles: {
|
||||||
|
// head: {
|
||||||
|
// width: '830px',
|
||||||
|
// color: 'black',
|
||||||
|
// backgroundColor: 'rgb(176 223 167)',
|
||||||
|
// },
|
||||||
|
// list: {
|
||||||
|
// width: '824px',
|
||||||
|
// color: 'black',
|
||||||
|
// backgroundColor: 'rgb(176 223 167)',
|
||||||
|
// },
|
||||||
|
// caret: {
|
||||||
|
// borderTop: '6px solid black',
|
||||||
|
// },
|
||||||
|
// search: {
|
||||||
|
// backgroundColor: '#d7ffff',
|
||||||
|
// borderRadius: '5px',
|
||||||
|
// borderBottom: 'none',
|
||||||
|
// width: '95%',
|
||||||
|
// color: 'black',
|
||||||
|
// },
|
||||||
|
// },
|
||||||
|
// multiselect: true,
|
||||||
|
// });
|
||||||
|
|
||||||
|
// const buttonOpen = document.querySelector('.button__open');
|
||||||
|
// const buttonClose = document.querySelector('.button__close');
|
||||||
|
|
||||||
|
// dropdownBtn.buttonControl(buttonOpen!, 'open');
|
||||||
|
// dropdownBtn.buttonControl(buttonClose!, 'close');
|
||||||
|
|
||||||
|
// //-------------------------Функция Disabled----------------------------------
|
||||||
|
// const dropdownDisabled = new CGSelect({
|
||||||
|
// selector: '.cg-dropdown_checkboxDisable',
|
||||||
|
// placeholder: 'Выберите авто',
|
||||||
|
// searchMode: true,
|
||||||
|
// items: [
|
||||||
|
// 'BMW',
|
||||||
|
// {
|
||||||
|
// id: '213sade',
|
||||||
|
// title: 'Opel',
|
||||||
|
// value: 1,
|
||||||
|
// },
|
||||||
|
// 'Mersedes',
|
||||||
|
// 'MAN',
|
||||||
|
// 'max',
|
||||||
|
// ],
|
||||||
|
// styles: {
|
||||||
|
// head: {
|
||||||
|
// width: '830px',
|
||||||
|
// },
|
||||||
|
// list: {
|
||||||
|
// width: '824px',
|
||||||
|
// },
|
||||||
|
// placeholder: {
|
||||||
|
// maxWidth: '500px ',
|
||||||
|
// },
|
||||||
|
// },
|
||||||
|
// multiselect: true,
|
||||||
|
// });
|
||||||
|
// dropdownDisabled.disabled(true);
|
||||||
|
// let chbox = document.getElementById('checkboxDisable') as HTMLInputElement;
|
||||||
|
|
||||||
|
// chbox!.addEventListener('click', () => {
|
||||||
|
// if (chbox!.checked == true) {
|
||||||
|
// dropdownDisabled.disabled(false);
|
||||||
|
// } else {
|
||||||
|
// dropdownDisabled.disabled(true);
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
"homepage": "https://cg-select.itguild.info",
|
"homepage": "https://cg-select.itguild.info",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "parcel example/index.html -p 4500 --open ",
|
"start": "parcel example/index.html -p 4500 --open ",
|
||||||
"build": "parcel build ./src/cg-selectTS.ts --no-cache",
|
"build": "parcel build example/index.html --no-cache",
|
||||||
"deploy": "gh-pages -d dist",
|
"deploy": "gh-pages -d dist",
|
||||||
"predeploy": "npm run build"
|
"predeploy": "npm run build"
|
||||||
},
|
},
|
||||||
|
@ -230,10 +230,11 @@ export class CGSelect implements ICgSelect {
|
|||||||
|
|
||||||
this.items = [];
|
this.items = [];
|
||||||
|
|
||||||
if (!this.items && this.url) {
|
if (this.url && !items) {
|
||||||
this.renderUrl();
|
this.renderUrl();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
createSelected;
|
createSelected;
|
||||||
|
|
||||||
items.forEach((dataItem: any, index: number) => {
|
items.forEach((dataItem: any, index: number) => {
|
||||||
@ -373,12 +374,9 @@ export class CGSelect implements ICgSelect {
|
|||||||
* @description Рендер елементов в селекте переданных с URL и их настойка
|
* @description Рендер елементов в селекте переданных с URL и их настойка
|
||||||
*/
|
*/
|
||||||
private async renderUrl() {
|
private async renderUrl() {
|
||||||
if (this.items || !this.url) {
|
const response = await fetch(this.url!);
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const response = await fetch(this.url);
|
|
||||||
const dataUrl = await response.json();
|
const dataUrl = await response.json();
|
||||||
|
console.log(dataUrl);
|
||||||
|
|
||||||
const nativeSelect = createNativeSelect();
|
const nativeSelect = createNativeSelect();
|
||||||
|
|
||||||
@ -554,7 +552,10 @@ export class CGSelect implements ICgSelect {
|
|||||||
const select: HTMLElement | null | undefined = this.element?.querySelector('.selected');
|
const select: HTMLElement | null | undefined = this.element?.querySelector('.selected');
|
||||||
const nativeOption = this.element!.querySelectorAll('.nativeSelect__nativeOption');
|
const nativeOption = this.element!.querySelectorAll('.nativeSelect__nativeOption');
|
||||||
|
|
||||||
let selectedItemsClear: ISelectedItems;
|
let selectedItemsClear: ISelectedItems = {
|
||||||
|
placeholder: this.placeholder!,
|
||||||
|
selected: this.selected!,
|
||||||
|
};
|
||||||
|
|
||||||
const ulMultipul = document.createElement('ul');
|
const ulMultipul = document.createElement('ul');
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import { nativeOptionMultiple } from '../utils/utilsTs';
|
import { customStylesFormat, nativeOptionMultiple } from '../utils/utilsTs';
|
||||||
import { ICreateBreadCrumb } from './create-element.interface';
|
import { ICreateBreadCrumb } from './create-element.interface';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -63,8 +63,8 @@ export function createBreadCrumb(
|
|||||||
liChip.appendChild(svgIcon);
|
liChip.appendChild(svgIcon);
|
||||||
|
|
||||||
if (styles) {
|
if (styles) {
|
||||||
// const { chips } = styles;
|
const { chips } = styles;
|
||||||
// customStylesFormat(chips, liChip);
|
customStylesFormat(chips!, liChip);
|
||||||
}
|
}
|
||||||
|
|
||||||
svgIcon.addEventListener('click', (event) => {
|
svgIcon.addEventListener('click', (event) => {
|
||||||
|
@ -48,6 +48,7 @@ export function getSelectText(
|
|||||||
} else {
|
} else {
|
||||||
select!.innerText = 'Select...';
|
select!.innerText = 'Select...';
|
||||||
}
|
}
|
||||||
|
|
||||||
return select!;
|
return select!;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -116,7 +117,7 @@ export function clearSelect(select: HTMLElement, element: Element, dataSelectTex
|
|||||||
svgIcon.appendChild(path1);
|
svgIcon.appendChild(path1);
|
||||||
svgIcon.appendChild(path2);
|
svgIcon.appendChild(path2);
|
||||||
|
|
||||||
if (multiselectTag) {
|
if (multiselectTag && multiselectTag == true) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -162,7 +163,7 @@ export function clearSelect(select: HTMLElement, element: Element, dataSelectTex
|
|||||||
* @param {NodeList} element NodeList нативного селекта
|
* @param {NodeList} element NodeList нативного селекта
|
||||||
* @param {any} item выбранный элемент в кастомном селекте
|
* @param {any} item выбранный элемент в кастомном селекте
|
||||||
*/
|
*/
|
||||||
export function nativeOptionOrdinary(element: NodeListOf<Element> | undefined, item: any) {
|
export function nativeOptionOrdinary(element: NodeListOf<Element> | undefined, item: string) {
|
||||||
element!.forEach((option) => {
|
element!.forEach((option) => {
|
||||||
option.removeAttribute('selected');
|
option.removeAttribute('selected');
|
||||||
if (option.textContent === item) {
|
if (option.textContent === item) {
|
||||||
|
@ -128,4 +128,9 @@ export interface IStyle {
|
|||||||
* @type {object}
|
* @type {object}
|
||||||
*/
|
*/
|
||||||
search?: object;
|
search?: object;
|
||||||
|
/**
|
||||||
|
* Кастомизация чипсов с выбранными элементами
|
||||||
|
* @type {object}
|
||||||
|
*/
|
||||||
|
chips?: object;
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"include": ["src/**/*", "index.ts"],
|
// "include": ["src/**/*", "index.ts"],
|
||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
/* Projects */
|
/* Projects */
|
||||||
// "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */
|
// "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */
|
||||||
|
Loading…
Reference in New Issue
Block a user