Add project files.

This commit is contained in:
2025-07-23 18:54:59 +03:30
parent 429fe73799
commit a0852dd7d8
3356 changed files with 1632271 additions and 0 deletions

View File

@ -0,0 +1,21 @@
"use strict";
// Class definition
var KTBootstrapMarkdown = function () {
// Private functions
var demos = function () {
}
return {
// public functions
init: function() {
demos();
}
};
}();
// Initialization
jQuery(document).ready(function() {
KTBootstrapMarkdown.init();
});

View File

@ -0,0 +1,64 @@
"use strict";
// Class definition
var KTCkeditorBalloonBlock = function () {
// Private functions
var demos = function () {
BalloonEditor
.create( document.querySelector( '#kt-ckeditor-1' ) )
.then( editor => {
console.log( editor );
} )
.catch( error => {
console.error( error );
} );
BalloonEditor
.create( document.querySelector( '#kt-ckeditor-2' ) )
.then( editor => {
console.log( editor );
} )
.catch( error => {
console.error( error );
} );
BalloonEditor
.create( document.querySelector( '#kt-ckeditor-3' ) )
.then( editor => {
console.log( editor );
} )
.catch( error => {
console.error( error );
} );
BalloonEditor
.create( document.querySelector( '#kt-ckeditor-4' ) )
.then( editor => {
console.log( editor );
} )
.catch( error => {
console.error( error );
} );
BalloonEditor
.create( document.querySelector( '#kt-ckeditor-5' ) )
.then( editor => {
console.log( editor );
} )
.catch( error => {
console.error( error );
} );
}
return {
// public functions
init: function() {
demos();
}
};
}();
// Initialization
jQuery(document).ready(function() {
KTCkeditorBalloonBlock.init();
});

View File

@ -0,0 +1,64 @@
"use strict";
// Class definition
var KTCkeditorBalloon = function () {
// Private functions
var demos = function () {
BalloonEditor
.create( document.querySelector( '#kt-ckeditor-1' ) )
.then( editor => {
console.log( editor );
} )
.catch( error => {
console.error( error );
} );
BalloonEditor
.create( document.querySelector( '#kt-ckeditor-2' ) )
.then( editor => {
console.log( editor );
} )
.catch( error => {
console.error( error );
} );
BalloonEditor
.create( document.querySelector( '#kt-ckeditor-3' ) )
.then( editor => {
console.log( editor );
} )
.catch( error => {
console.error( error );
} );
BalloonEditor
.create( document.querySelector( '#kt-ckeditor-4' ) )
.then( editor => {
console.log( editor );
} )
.catch( error => {
console.error( error );
} );
BalloonEditor
.create( document.querySelector( '#kt-ckeditor-5' ) )
.then( editor => {
console.log( editor );
} )
.catch( error => {
console.error( error );
} );
}
return {
// public functions
init: function() {
demos();
}
};
}();
// Initialization
jQuery(document).ready(function() {
KTCkeditorBalloon.init();
});

View File

@ -0,0 +1,64 @@
"use strict";
// Class definition
var KTCkeditor = function () {
// Private functions
var demos = function () {
ClassicEditor
.create( document.querySelector( '#kt-ckeditor-1' ) )
.then( editor => {
console.log( editor );
} )
.catch( error => {
console.error( error );
} );
ClassicEditor
.create( document.querySelector( '#kt-ckeditor-2' ) )
.then( editor => {
console.log( editor );
} )
.catch( error => {
console.error( error );
} );
ClassicEditor
.create( document.querySelector( '#kt-ckeditor-3' ) )
.then( editor => {
console.log( editor );
} )
.catch( error => {
console.error( error );
} );
ClassicEditor
.create( document.querySelector( '#kt-ckeditor-4' ) )
.then( editor => {
console.log( editor );
} )
.catch( error => {
console.error( error );
} );
ClassicEditor
.create( document.querySelector( '#kt-ckeditor-5' ) )
.then( editor => {
console.log( editor );
} )
.catch( error => {
console.error( error );
} );
}
return {
// public functions
init: function() {
demos();
}
};
}();
// Initialization
jQuery(document).ready(function() {
KTCkeditor.init();
});

View File

@ -0,0 +1,52 @@
"use strict";
// Class definition
var KTCkeditorDocument = function () {
// Private functions
var demos = function () {
DecoupledEditor
.create( document.querySelector( '#kt-ckeditor-1' ) )
.then( editor => {
const toolbarContainer = document.querySelector( '#kt-ckeditor-1-toolbar' );
toolbarContainer.appendChild( editor.ui.view.toolbar.element );
} )
.catch( error => {
console.error( error );
} );
DecoupledEditor
.create( document.querySelector( '#kt-ckeditor-2' ) )
.then( editor => {
const toolbarContainer = document.querySelector( '#kt-ckeditor-2-toolbar' );
toolbarContainer.appendChild( editor.ui.view.toolbar.element );
} )
.catch( error => {
console.error( error );
} );
DecoupledEditor
.create( document.querySelector( '#kt-ckeditor-3' ) )
.then( editor => {
const toolbarContainer = document.querySelector( '#kt-ckeditor-3-toolbar' );
toolbarContainer.appendChild( editor.ui.view.toolbar.element );
} )
.catch( error => {
console.error( error );
} );
}
return {
// public functions
init: function() {
demos();
}
};
}();
// Initialization
jQuery(document).ready(function() {
KTCkeditorDocument.init();
});

View File

@ -0,0 +1,64 @@
"use strict";
// Class definition
var KTCkeditorInline = function () {
// Private functions
var demos = function () {
InlineEditor
.create( document.querySelector( '#kt-ckeditor-1' ) )
.then( editor => {
console.log( editor );
} )
.catch( error => {
console.error( error );
} );
InlineEditor
.create( document.querySelector( '#kt-ckeditor-2' ) )
.then( editor => {
console.log( editor );
} )
.catch( error => {
console.error( error );
} );
InlineEditor
.create( document.querySelector( '#kt-ckeditor-3' ) )
.then( editor => {
console.log( editor );
} )
.catch( error => {
console.error( error );
} );
InlineEditor
.create( document.querySelector( '#kt-ckeditor-4' ) )
.then( editor => {
console.log( editor );
} )
.catch( error => {
console.error( error );
} );
InlineEditor
.create( document.querySelector( '#kt-ckeditor-5' ) )
.then( editor => {
console.log( editor );
} )
.catch( error => {
console.error( error );
} );
}
return {
// public functions
init: function() {
demos();
}
};
}();
// Initialization
jQuery(document).ready(function() {
KTCkeditorInline.init();
});

View File

@ -0,0 +1,75 @@
// Class definition
var KTQuilDemos = function() {
// Private functions
var demo1 = function() {
var quill = new Quill('#kt_quil_1', {
modules: {
toolbar: [
[{
header: [1, 2, false]
}],
['bold', 'italic', 'underline'],
['image', 'code-block']
]
},
placeholder: 'Type your text here...',
theme: 'snow' // or 'bubble'
});
}
var demo2 = function() {
var Delta = Quill.import('delta');
var quill = new Quill('#kt_quil_2', {
modules: {
toolbar: true
},
placeholder: 'Type your text here...',
theme: 'snow'
});
// Store accumulated changes
var change = new Delta();
quill.on('text-change', function(delta) {
change = change.compose(delta);
});
// Save periodically
setInterval(function() {
if (change.length() > 0) {
console.log('Saving changes', change);
/*
Send partial changes
$.post('/your-endpoint', {
partial: JSON.stringify(change)
});
Send entire document
$.post('/your-endpoint', {
doc: JSON.stringify(quill.getContents())
});
*/
change = new Delta();
}
}, 5 * 1000);
// Check for unsaved data
window.onbeforeunload = function() {
if (change.length() > 0) {
return 'There are unsaved changes. Are you sure you want to leave?';
}
}
}
return {
// public functions
init: function() {
demo1();
demo2();
}
};
}();
jQuery(document).ready(function() {
KTQuilDemos.init();
});

View File

@ -0,0 +1,24 @@
"use strict";
// Class definition
var KTSummernoteDemo = function () {
// Private functions
var demos = function () {
$('.summernote').summernote({
height: 400,
tabsize: 2
});
}
return {
// public functions
init: function() {
demos();
}
};
}();
// Initialization
jQuery(document).ready(function() {
KTSummernoteDemo.init();
});

View File

@ -0,0 +1,45 @@
"use strict";
// Class definition
var KTTinymce = function () {
// Private functions
var demos = function () {
tinymce.init({
selector: '#kt-tinymce-1',
toolbar: false,
statusbar: false
});
tinymce.init({
selector: '#kt-tinymce-2'
});
tinymce.init({
selector: '#kt-tinymce-3',
toolbar: 'advlist | autolink | link image | lists charmap | print preview',
plugins : 'advlist autolink link image lists charmap print preview'
});
tinymce.init({
selector: '#kt-tinymce-4',
menubar: false,
toolbar: ['styleselect fontselect fontsizeselect',
'undo redo | cut copy paste | bold italic | link image | alignleft aligncenter alignright alignjustify',
'bullist numlist | outdent indent | blockquote subscript superscript | advlist | autolink | lists charmap | print preview | code'],
plugins : 'advlist autolink link image lists charmap print preview code'
});
}
return {
// public functions
init: function() {
demos();
}
};
}();
// Initialization
jQuery(document).ready(function() {
KTTinymce.init();
});

View File

@ -0,0 +1,263 @@
// Class definition
var KTFormControls = function () {
// Private functions
var _initDemo1 = function () {
FormValidation.formValidation(
document.getElementById('kt_form_1'),
{
fields: {
email: {
validators: {
notEmpty: {
message: 'ایمیل لازم است'
},
emailAddress: {
message: "مقدار یک آدرس ایمیل معتبر نیست"
}
}
},
url: {
validators: {
notEmpty: {
message: 'آدرس وب سایت لازم است'
},
uri: {
message: "آدرس وب سایت معتبر نیست"
}
}
},
digits: {
validators: {
notEmpty: {
message: 'ارقام لازم است'
},
digits: {
message: "مقدار یک رقم معتبر نیست"
}
}
},
creditcard: {
validators: {
notEmpty: {
message: "شماره کارت اعتباری لازم است"
},
creditCard: {
message: "شماره کارت اعتباری معتبر نیست"
}
}
},
phone: {
validators: {
notEmpty: {
message: 'شماره تلفن ایالات متحده مورد نیاز است'
},
phone: {
country: 'US',
message: "این مقدار شماره تلفن معتبر ایالات متحده نیست"
}
}
},
option: {
validators: {
notEmpty: {
message: 'لطفا یک گزینه را انتخاب کنید'
}
}
},
options: {
validators: {
choice: {
min:2,
max:5,
message: "لطفا حداقل 2 و حداکثر 5 گزینه را انتخاب کنید"
}
}
},
memo: {
validators: {
notEmpty: {
message: "لطفا متن یادداشت را وارد کنید"
},
stringLength: {
min:50,
max:100,
message: "لطفاً یک فهرست را در محدوده متن 50 و 100 وارد کنید"
}
}
},
checkbox: {
validators: {
choice: {
min:1,
message: "لطفا با مهربانی این را بررسی کنید"
}
}
},
checkboxes: {
validators: {
choice: {
min:2,
max:5,
message: "لطفا حداقل 1 و حداکثر 2 گزینه را بررسی کنید"
}
}
},
radios: {
validators: {
choice: {
min:1,
message: "لطفا با مهربانی این را بررسی کنید"
}
}
},
},
plugins: { //Learn more: https://formvalidation.io/guide/plugins
trigger: new FormValidation.plugins.Trigger(),
// Bootstrap Framework Integration
bootstrap: new FormValidation.plugins.Bootstrap(),
// Validate fields when clicking the Submit button
submitButton: new FormValidation.plugins.SubmitButton(),
// Submit the form when all fields are valid
defaultSubmit: new FormValidation.plugins.DefaultSubmit(),
}
}
);
}
var _initDemo2 = function () {
FormValidation.formValidation(
document.getElementById('kt_form_2'),
{
fields: {
billing_card_name: {
validators: {
notEmpty: {
message: "نام دارنده کارت لازم است"
}
}
},
billing_card_number: {
validators: {
notEmpty: {
message: "شماره کارت اعتباری لازم است"
},
creditCard: {
message: "شماره کارت اعتباری معتبر نیست"
}
}
},
billing_card_exp_month: {
validators: {
notEmpty: {
message: "ماه انقضا لازم است"
}
}
},
billing_card_exp_year: {
validators: {
notEmpty: {
message: "سال انقضا لازم است"
}
}
},
billing_card_cvv: {
validators: {
notEmpty: {
message: "CVV لازم است"
},
digits: {
message: 'مقدار CVV یک رقم معتبر نیست'
}
}
},
billing_address_1: {
validators: {
notEmpty: {
message: 'آدرس 1 الزامی است'
}
}
},
billing_city: {
validators: {
notEmpty: {
message: 'شهر 1 مورد نیاز است'
}
}
},
billing_state: {
validators: {
notEmpty: {
message: "حالت 1 لازم است"
}
}
},
billing_zip: {
validators: {
notEmpty: {
message: 'کد پستی لازم است'
},
zipCode: {
country: 'US',
message: "مقدار کد پستی نامعتبر است"
}
}
},
billing_delivery: {
validators: {
choice: {
min:1,
message: 'لطفا نوع تحویل را لطفاً انتخاب کنید'
}
}
},
package: {
validators: {
choice: {
min:1,
message: "لطفاً نوع بسته را انتخاب کنید"
}
}
}
},
plugins: {
trigger: new FormValidation.plugins.Trigger(),
// Validate fields when clicking the Submit button
submitButton: new FormValidation.plugins.SubmitButton(),
// Submit the form when all fields are valid
defaultSubmit: new FormValidation.plugins.DefaultSubmit(),
// Bootstrap Framework Integration
bootstrap: new FormValidation.plugins.Bootstrap({
eleInvalidClass: '',
eleValidClass: '',
})
}
}
);
}
return {
// public functions
init: function() {
_initDemo1();
_initDemo2();
}
};
}();
jQuery(document).ready(function() {
KTFormControls.init();
});

View File

@ -0,0 +1,199 @@
// Class definition
var KTFormWidgetsValidation = function () {
// Private functions
var validator;
var _initWidgets = function() {
// Initialize Plugins
// Datepicker
$('#kt_datepicker').datepicker({
todayHighlight: true,
templates: {
leftArrow: '<i class=\"la la-angle-left\"></i>',
rightArrow: '<i class=\"la la-angle-right\"></i>'
}
}).on('changeDate', function(e) {
// Revalidate field
validator.revalidateField('date');
});
// Datetimepicker
$('#kt_datetimepicker').datetimepicker({
pickerPosition: 'bottom-left',
todayHighlight: true,
autoclose: true,
format: 'yyyy.mm.dd hh:ii'
});
$('#kt_datetimepicker').change(function() {
// Revalidate field
validator.revalidateField('datetime');
});
// Timepicker
$('#kt_timepicker').timepicker({
minuteStep: 1,
showSeconds: true,
showMeridian: true
});
$('#kt_timepicker').change(function() {
// Revalidate field
validator.revalidateField('time');
});
// Daterangepicker
$('#kt_daterangepicker').daterangepicker({
buttonClasses: ' btn',
applyClass: 'btn-primary',
cancelClass: 'btn-light-primary'
}, function(start, end, label) {
var input = $('#kt_daterangepicker').find('.form-control');
input.val( start.format('YYYY/MM/DD') + ' / ' + end.format('YYYY/MM/DD'));
// Revalidate field
validator.revalidateField('daterangepicker');
});
// Bootstrap Switch
$('[data-switch=true]').bootstrapSwitch();
$('[data-switch=true]').on('switchChange.bootstrapSwitch', function() {
// Revalidate field
validator.revalidateField('switch');
});
// Bootstrap Select
$('#kt_bootstrap_select').selectpicker();
$('#kt_bootstrap_select').on('changed.bs.select', function() {
// Revalidate field
validator.revalidateField('select');
});
// Select2
$('#kt_select2').select2({
placeholder: "انتخاب یک گزینه",
});
$('#kt_select2').on('change', function(){
// Revalidate field
validator.revalidateField('select2');
});
// Typeahead
var countries = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.whitespace,
queryTokenizer: Bloodhound.tokenizers.whitespace,
prefetch: HOST_URL + '/api/?file=typeahead/countries.json'
});
$('#kt_typeahead').typeahead(null, {
name: 'countries',
source: countries
});
$('#kt_typeahead').bind('typeahead:select', function(ev, suggestion) {
// Revalidate field
validator.revalidateField('typeahead');
});
}
var _initValidation = function () {
// Validation Rules
validator = FormValidation.formValidation(
document.getElementById('kt_form'),
{
fields: {
date: {
validators: {
notEmpty: {
message: 'تاریخ لازم است'
}
}
},
daterangepicker: {
validators: {
notEmpty: {
message: 'رنج تاریخ را وارد کنید'
}
}
},
datetime: {
validators: {
notEmpty: {
message: "تاریخ و زمان لازم است"
}
}
},
time: {
validators: {
notEmpty: {
message: 'زمان لازم است'
}
}
},
select: {
validators: {
notEmpty: {
message: "انتخاب لازم است"
}
}
},
select2: {
validators: {
notEmpty: {
message: "انتخاب لازم است"
}
}
},
typeahead: {
validators: {
notEmpty: {
message: 'تایپ پیش نیاز است'
}
}
},
switch: {
validators: {
notEmpty: {
message: 'تایپ پیش نیاز است'
}
}
},
markdown: {
validators: {
notEmpty: {
message: 'تایپ پیش نیاز است'
}
}
},
},
plugins: {
trigger: new FormValidation.plugins.Trigger(),
// Validate fields when clicking the Submit button
submitButton: new FormValidation.plugins.SubmitButton(),
// Submit the form when all fields are valid
defaultSubmit: new FormValidation.plugins.DefaultSubmit(),
// Bootstrap Framework Integration
bootstrap: new FormValidation.plugins.Bootstrap({
eleInvalidClass: '',
eleValidClass: '',
})
}
}
);
}
return {
// public functions
init: function() {
_initWidgets();
_initValidation();
}
};
}();
jQuery(document).ready(function() {
KTFormWidgetsValidation.init();
});

View File

@ -0,0 +1,27 @@
// Class definition
var KTAutosize = function () {
// Private functions
var demos = function () {
// basic demo
var demo1 = $('#kt_autosize_1');
var demo2 = $('#kt_autosize_2');
autosize(demo1);
autosize(demo2);
autosize.update(demo2);
}
return {
// public functions
init: function() {
demos();
}
};
}();
jQuery(document).ready(function() {
KTAutosize.init();
});

View File

@ -0,0 +1,124 @@
// Class definition
var KTBootstrapDatepicker = function () {
var arrows;
if (KTUtil.isRTL()) {
arrows = {
leftArrow: '<i class="la la-angle-right"></i>',
rightArrow: '<i class="la la-angle-left"></i>'
}
} else {
arrows = {
leftArrow: '<i class="la la-angle-left"></i>',
rightArrow: '<i class="la la-angle-right"></i>'
}
}
// Private functions
var demos = function () {
// minimum setup
$('#kt_datepicker_1, #kt_datepicker_1_validate').datepicker({
rtl: KTUtil.isRTL(),
todayHighlight: true,
orientation: "bottom left",
templates: arrows
});
// minimum setup for modal demo
$('#kt_datepicker_1_modal').datepicker({
rtl: KTUtil.isRTL(),
todayHighlight: true,
orientation: "bottom left",
templates: arrows
});
// input group layout
$('#kt_datepicker_2, #kt_datepicker_2_validate').datepicker({
rtl: KTUtil.isRTL(),
todayHighlight: true,
orientation: "bottom left",
templates: arrows
});
// input group layout for modal demo
$('#kt_datepicker_2_modal').datepicker({
rtl: KTUtil.isRTL(),
todayHighlight: true,
orientation: "bottom left",
templates: arrows
});
// enable clear button
$('#kt_datepicker_3, #kt_datepicker_3_validate').datepicker({
rtl: KTUtil.isRTL(),
todayBtn: "linked",
clearBtn: true,
todayHighlight: true,
templates: arrows
});
// enable clear button for modal demo
$('#kt_datepicker_3_modal').datepicker({
rtl: KTUtil.isRTL(),
todayBtn: "linked",
clearBtn: true,
todayHighlight: true,
templates: arrows
});
// orientation
$('#kt_datepicker_4_1').datepicker({
rtl: KTUtil.isRTL(),
orientation: "top left",
todayHighlight: true,
templates: arrows
});
$('#kt_datepicker_4_2').datepicker({
rtl: KTUtil.isRTL(),
orientation: "top right",
todayHighlight: true,
templates: arrows
});
$('#kt_datepicker_4_3').datepicker({
rtl: KTUtil.isRTL(),
orientation: "bottom left",
todayHighlight: true,
templates: arrows
});
$('#kt_datepicker_4_4').datepicker({
rtl: KTUtil.isRTL(),
orientation: "bottom right",
todayHighlight: true,
templates: arrows
});
// range picker
$('#kt_datepicker_5').datepicker({
rtl: KTUtil.isRTL(),
todayHighlight: true,
templates: arrows
});
// inline picker
$('#kt_datepicker_6').datepicker({
rtl: KTUtil.isRTL(),
todayHighlight: true,
templates: arrows
});
}
return {
// public functions
init: function() {
demos();
}
};
}();
jQuery(document).ready(function() {
KTBootstrapDatepicker.init();
});

View File

@ -0,0 +1,143 @@
// Class definition
var KTBootstrapDaterangepicker = function () {
// Private functions
var demos = function () {
// minimum setup
$('#kt_daterangepicker_1, #kt_daterangepicker_1_modal').daterangepicker({
buttonClasses: ' btn',
applyClass: 'btn-primary',
cancelClass: 'btn-secondary'
});
// input group and left alignment setup
$('#kt_daterangepicker_2').daterangepicker({
buttonClasses: ' btn',
applyClass: 'btn-primary',
cancelClass: 'btn-secondary'
}, function(start, end, label) {
$('#kt_daterangepicker_2 .form-control').val( start.format('YYYY-MM-DD') + ' / ' + end.format('YYYY-MM-DD'));
});
$('#kt_daterangepicker_2_modal').daterangepicker({
buttonClasses: ' btn',
applyClass: 'btn-primary',
cancelClass: 'btn-secondary'
}, function(start, end, label) {
$('#kt_daterangepicker_2 .form-control').val( start.format('YYYY-MM-DD') + ' / ' + end.format('YYYY-MM-DD'));
});
// left alignment setup
$('#kt_daterangepicker_3').daterangepicker({
buttonClasses: ' btn',
applyClass: 'btn-primary',
cancelClass: 'btn-secondary'
}, function(start, end, label) {
$('#kt_daterangepicker_3 .form-control').val( start.format('YYYY-MM-DD') + ' / ' + end.format('YYYY-MM-DD'));
});
$('#kt_daterangepicker_3_modal').daterangepicker({
buttonClasses: ' btn',
applyClass: 'btn-primary',
cancelClass: 'btn-secondary'
}, function(start, end, label) {
$('#kt_daterangepicker_3 .form-control').val( start.format('YYYY-MM-DD') + ' / ' + end.format('YYYY-MM-DD'));
});
// date & time
$('#kt_daterangepicker_4').daterangepicker({
buttonClasses: ' btn',
applyClass: 'btn-primary',
cancelClass: 'btn-secondary',
timePicker: true,
timePickerIncrement: 30,
locale: {
format: 'MM/DD/YYYY h:mm A'
}
}, function(start, end, label) {
$('#kt_daterangepicker_4 .form-control').val( start.format('MM/DD/YYYY h:mm A') + ' / ' + end.format('MM/DD/YYYY h:mm A'));
});
// date picker
$('#kt_daterangepicker_5').daterangepicker({
buttonClasses: ' btn',
applyClass: 'btn-primary',
cancelClass: 'btn-secondary',
singleDatePicker: true,
showDropdowns: true,
locale: {
format: 'MM/DD/YYYY'
}
}, function(start, end, label) {
$('#kt_daterangepicker_5 .form-control').val( start.format('MM/DD/YYYY') + ' / ' + end.format('MM/DD/YYYY'));
});
// predefined ranges
var start = moment().subtract(29, 'days');
var end = moment();
$('#kt_daterangepicker_6').daterangepicker({
buttonClasses: ' btn',
applyClass: 'btn-primary',
cancelClass: 'btn-secondary',
startDate: start,
endDate: end,
ranges: {
'Today': [moment(), moment()],
'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],
'Last 7 Days': [moment().subtract(6, 'days'), moment()],
'Last 30 Days': [moment().subtract(29, 'days'), moment()],
'This Month': [moment().startOf('month'), moment().endOf('month')],
'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')]
}
}, function(start, end, label) {
$('#kt_daterangepicker_6 .form-control').val( start.format('MM/DD/YYYY') + ' / ' + end.format('MM/DD/YYYY'));
});
}
var validationDemos = function() {
// input group and left alignment setup
$('#kt_daterangepicker_1_validate').daterangepicker({
buttonClasses: ' btn',
applyClass: 'btn-primary',
cancelClass: 'btn-secondary'
}, function(start, end, label) {
$('#kt_daterangepicker_1_validate .form-control').val( start.format('YYYY-MM-DD') + ' / ' + end.format('YYYY-MM-DD'));
});
// input group and left alignment setup
$('#kt_daterangepicker_2_validate').daterangepicker({
buttonClasses: ' btn',
applyClass: 'btn-primary',
cancelClass: 'btn-secondary'
}, function(start, end, label) {
$('#kt_daterangepicker_3_validate .form-control').val( start.format('YYYY-MM-DD') + ' / ' + end.format('YYYY-MM-DD'));
});
// input group and left alignment setup
$('#kt_daterangepicker_3_validate').daterangepicker({
buttonClasses: ' btn',
applyClass: 'btn-primary',
cancelClass: 'btn-secondary'
}, function(start, end, label) {
$('#kt_daterangepicker_3_validate .form-control').val( start.format('YYYY-MM-DD') + ' / ' + end.format('YYYY-MM-DD'));
});
}
return {
// public functions
init: function() {
demos();
validationDemos();
}
};
}();
jQuery(document).ready(function() {
KTBootstrapDaterangepicker.init();
});

View File

@ -0,0 +1,91 @@
// Class definition
var KTBootstrapDatetimepicker = function () {
// Private functions
var baseDemos = function () {
// Demo 1
$('#kt_datetimepicker_1').datetimepicker();
// Demo 2
$('#kt_datetimepicker_2').datetimepicker({
locale: 'de'
});
// Demo 3
$('#kt_datetimepicker_3').datetimepicker({
format: 'L'
});
// Demo 4
$('#kt_datetimepicker_4').datetimepicker({
format: 'LT'
});
// Demo 5
$('#kt_datetimepicker_5').datetimepicker();
// Demo 6
$('#kt_datetimepicker_6').datetimepicker({
defaultDate: '11/1/2020',
disabledDates: [
moment('12/25/2020'),
new Date(2020, 11 - 1, 21),
'11/22/2022 00:53'
]
});
// Demo 7
$('#kt_datetimepicker_7_1').datetimepicker();
$('#kt_datetimepicker_7_2').datetimepicker({
useCurrent: false
});
$('#kt_datetimepicker_7_1').on('change.datetimepicker', function (e) {
$('#kt_datetimepicker_7_2').datetimepicker('minDate', e.date);
});
$('#kt_datetimepicker_7_2').on('change.datetimepicker', function (e) {
$('#kt_datetimepicker_7_1').datetimepicker('maxDate', e.date);
});
// Demo 8
$('#kt_datetimepicker_8').datetimepicker({
inline: true,
});
}
var modalDemos = function () {
// Demo 9
$('#kt_datetimepicker_9').datetimepicker();
// Demo 10
$('#kt_datetimepicker_10').datetimepicker({
locale: 'de'
});
// Demo 11
$('#kt_datetimepicker_11').datetimepicker({
format: 'L'
});
}
var validationDemos = function () {
// Demo 12
$('#kt_datetimepicker_12').datetimepicker();
// Demo 13
$('#kt_datetimepicker_13').datetimepicker();
}
return {
// Public functions
init: function() {
baseDemos();
modalDemos();
validationDemos();
}
};
}();
jQuery(document).ready(function() {
KTBootstrapDatetimepicker.init();
});

View File

@ -0,0 +1,128 @@
// Class definition
var KTBootstrapMaxlength = function () {
// Private functions
var demos = function () {
// minimum setup
$('#kt_maxlength_1').maxlength({
warningClass: "label label-warning label-rounded label-inline",
limitReachedClass: "label label-success label-rounded label-inline"
});
// threshold value
$('#kt_maxlength_2').maxlength({
threshold: 5,
warningClass: "label label-warning label-rounded label-inline",
limitReachedClass: "label label-success label-rounded label-inline"
});
// always show
$('#kt_maxlength_3').maxlength({
alwaysShow: true,
threshold: 5,
warningClass: "label label-danger label-rounded label-inline",
limitReachedClass: "label label-primary label-rounded label-inline"
});
// custom text
$('#kt_maxlength_4').maxlength({
threshold: 3,
warningClass: "label label-danger label-rounded label-inline",
limitReachedClass: "label label-success label-rounded label-inline",
separator: ' of ',
preText: 'You have ',
postText: ' chars remaining.',
validate: true
});
// textarea example
$('#kt_maxlength_5').maxlength({
threshold: 5,
warningClass: "label label-danger label-rounded label-inline",
limitReachedClass: "label label-primary label-rounded label-inline"
});
// position examples
$('#kt_maxlength_6_1').maxlength({
alwaysShow: true,
threshold: 5,
placement: 'top-left',
warningClass: "label label-danger label-rounded label-inline",
limitReachedClass: "label label-primary label-rounded label-inline"
});
$('#kt_maxlength_6_2').maxlength({
alwaysShow: true,
threshold: 5,
placement: 'top-right',
warningClass: "label label-success label-rounded label-inline",
limitReachedClass: "label label-primary label-rounded label-inline"
});
$('#kt_maxlength_6_3').maxlength({
alwaysShow: true,
threshold: 5,
placement: 'bottom-left',
warningClass: "label label-warning label-rounded label-inline",
limitReachedClass: "label label-primary label-rounded label-inline"
});
$('#kt_maxlength_6_4').maxlength({
alwaysShow: true,
threshold: 5,
placement: 'bottom-right',
warningClass: "label label-danger label-rounded label-inline",
limitReachedClass: "label label-primary label-rounded label-inline"
});
// Modal Examples
// minimum setup
$('#kt_maxlength_1_modal').maxlength({
warningClass: "label label-warning label-rounded label-inline",
limitReachedClass: "label label-success label-rounded label-inline",
appendToParent: true
});
// threshold value
$('#kt_maxlength_2_modal').maxlength({
threshold: 5,
warningClass: "label label-danger label-rounded label-inline",
limitReachedClass: "label label-success label-rounded label-inline",
appendToParent: true
});
// always show
// textarea example
$('#kt_maxlength_5_modal').maxlength({
threshold: 5,
warningClass: "label label-danger label-rounded label-inline",
limitReachedClass: "label label-primary label-rounded label-inline",
appendToParent: true
});
// custom text
$('#kt_maxlength_4_modal').maxlength({
threshold: 3,
warningClass: "label label-danger label-rounded label-inline",
limitReachedClass: "label label-success label-rounded label-inline",
appendToParent: true,
separator: ' of ',
preText: 'You have ',
postText: ' chars remaining.',
validate: true
});
}
return {
// public functions
init: function() {
demos();
}
};
}();
jQuery(document).ready(function() {
KTBootstrapMaxlength.init();
});

View File

@ -0,0 +1,21 @@
// Class definition
var KTBootstrapMultipleSelectsplitter = function () {
// Private functions
var demos = function () {
// minimum setup
$('#kt_multipleselectsplitter_1, #kt_multipleselectsplitter_2').multiselectsplitter();
}
return {
// public functions
init: function() {
demos();
}
};
}();
jQuery(document).ready(function() {
KTBootstrapMultipleSelectsplitter.init();
});

View File

@ -0,0 +1,21 @@
// Class definition
var KTBootstrapSelect = function () {
// Private functions
var demos = function () {
// minimum setup
$('.kt-selectpicker').selectpicker();
}
return {
// public functions
init: function() {
demos();
}
};
}();
jQuery(document).ready(function() {
KTBootstrapSelect.init();
});

View File

@ -0,0 +1,21 @@
// Class definition
var KTBootstrapSwitch = function() {
// Private functions
var demos = function() {
// minimum setup
$('[data-switch=true]').bootstrapSwitch();
};
return {
// public functions
init: function() {
demos();
},
};
}();
jQuery(document).ready(function() {
KTBootstrapSwitch.init();
});

View File

@ -0,0 +1,55 @@
// Class definition
var KTBootstrapTimepicker = function () {
// Private functions
var demos = function () {
// minimum setup
$('#kt_timepicker_1, #kt_timepicker_1_modal').timepicker();
// minimum setup
$('#kt_timepicker_2, #kt_timepicker_2_modal').timepicker({
minuteStep: 1,
defaultTime: '',
showSeconds: true,
showMeridian: false,
snapToStep: true
});
// default time
$('#kt_timepicker_3, #kt_timepicker_3_modal').timepicker({
defaultTime: '11:45:20 AM',
minuteStep: 1,
showSeconds: true,
showMeridian: true
});
// default time
$('#kt_timepicker_4, #kt_timepicker_4_modal').timepicker({
defaultTime: '10:30:20 AM',
minuteStep: 1,
showSeconds: true,
showMeridian: true
});
// validation state demos
// minimum setup
$('#kt_timepicker_1_validate, #kt_timepicker_2_validate, #kt_timepicker_3_validate').timepicker({
minuteStep: 1,
showSeconds: true,
showMeridian: false,
snapToStep: true
});
}
return {
// public functions
init: function() {
demos();
}
};
}();
jQuery(document).ready(function() {
KTBootstrapTimepicker.init();
});

View File

@ -0,0 +1,109 @@
"use strict";
// Class definition
var KTKBootstrapTouchspin = function() {
// Private functions
var demos = function() {
// minimum setup
$('#kt_touchspin_1, #kt_touchspin_2_1').TouchSpin({
buttondown_class: 'btn btn-secondary',
buttonup_class: 'btn btn-secondary',
min: 0,
max: 100,
step: 0.1,
decimals: 2,
boostat: 5,
maxboostedstep: 10,
});
// with prefix
$('#kt_touchspin_2, #kt_touchspin_2_2').TouchSpin({
buttondown_class: 'btn btn-secondary',
buttonup_class: 'btn btn-secondary',
min: -1000000000,
max: 1000000000,
stepinterval: 50,
maxboostedstep: 10000000,
prefix: '$'
});
// vertical button alignment:
$('#kt_touchspin_3, #kt_touchspin_2_3').TouchSpin({
buttondown_class: 'btn btn-secondary',
buttonup_class: 'btn btn-secondary',
min: -1000000000,
max: 1000000000,
stepinterval: 50,
maxboostedstep: 10000000,
postfix: '$'
});
// vertical buttons with custom icons:
$('#kt_touchspin_4, #kt_touchspin_2_4').TouchSpin({
buttondown_class: 'btn btn-secondary',
buttonup_class: 'btn btn-secondary',
verticalbuttons: true,
verticalup: '<i class="ki ki-plus"></i>',
verticaldown: '<i class="ki ki-minus"></i>'
});
// vertical buttons with custom icons:
$('#kt_touchspin_5, #kt_touchspin_2_5').TouchSpin({
buttondown_class: 'btn btn-secondary',
buttonup_class: 'btn btn-secondary',
verticalbuttons: true,
verticalup: '<i class="ki ki-arrow-up"></i>',
verticaldown: '<i class="ki ki-arrow-down"></i>'
});
}
var validationStateDemos = function() {
// validation state demos
$('#kt_touchspin_1_validate').TouchSpin({
buttondown_class: 'btn btn-secondary',
buttonup_class: 'btn btn-secondary',
min: -1000000000,
max: 1000000000,
stepinterval: 50,
maxboostedstep: 10000000,
prefix: '$'
});
// vertical buttons with custom icons:
$('#kt_touchspin_2_validate').TouchSpin({
buttondown_class: 'btn btn-secondary',
buttonup_class: 'btn btn-secondary',
min: 0,
max: 100,
step: 0.1,
decimals: 2,
boostat: 5,
maxboostedstep: 10,
});
$('#kt_touchspin_3_validate').TouchSpin({
buttondown_class: 'btn btn-secondary',
buttonup_class: 'btn btn-secondary',
verticalbuttons: true,
verticalupclass: 'ki ki-plus',
verticaldownclass: 'ki ki-minus'
});
}
return {
// public functions
init: function() {
demos();
validationStateDemos();
}
};
}();
jQuery(document).ready(function() {
KTKBootstrapTouchspin.init();
});

View File

@ -0,0 +1,25 @@
"use strict";
// Class definition
var KTClipboardDemo = function () {
// Private functions
var demos = function () {
// basic example
new ClipboardJS('[data-clipboard=true]').on('success', function(e) {
e.clearSelection();
alert('Copied!');
});
}
return {
// public functions
init: function() {
demos();
}
};
}();
jQuery(document).ready(function() {
KTClipboardDemo.init();
});

View File

@ -0,0 +1,134 @@
// Class definition
var KTFormRepeater = function() {
// Private functions
var demo1 = function() {
$('#kt_repeater_1').repeater({
initEmpty: false,
defaultValues: {
'text-input': 'foo'
},
show: function () {
$(this).slideDown();
},
hide: function (deleteElement) {
$(this).slideUp(deleteElement);
}
});
}
var demo2 = function() {
$('#kt_repeater_2').repeater({
initEmpty: false,
defaultValues: {
'text-input': 'foo'
},
show: function() {
$(this).slideDown();
},
hide: function(deleteElement) {
if(confirm("آیا مطمئن هستید که می خواهید این عنصر را حذف کنید؟")) {
$(this).slideUp(deleteElement);
}
}
});
}
var demo3 = function() {
$('#kt_repeater_3').repeater({
initEmpty: false,
defaultValues: {
'text-input': 'foo'
},
show: function() {
$(this).slideDown();
},
hide: function(deleteElement) {
if(confirm("آیا مطمئن هستید که می خواهید این عنصر را حذف کنید؟")) {
$(this).slideUp(deleteElement);
}
}
});
}
var demo4 = function() {
$('#kt_repeater_4').repeater({
initEmpty: false,
defaultValues: {
'text-input': 'foo'
},
show: function() {
$(this).slideDown();
},
hide: function(deleteElement) {
$(this).slideUp(deleteElement);
}
});
}
var demo5 = function() {
$('#kt_repeater_5').repeater({
initEmpty: false,
defaultValues: {
'text-input': 'foo'
},
show: function() {
$(this).slideDown();
},
hide: function(deleteElement) {
$(this).slideUp(deleteElement);
}
});
}
var demo6 = function() {
$('#kt_repeater_6').repeater({
initEmpty: false,
defaultValues: {
'text-input': 'foo'
},
show: function() {
$(this).slideDown();
},
hide: function(deleteElement) {
$(this).slideUp(deleteElement);
}
});
}
return {
// public functions
init: function() {
demo1();
demo2();
demo3();
demo4();
demo5();
demo6();
}
};
}();
jQuery(document).ready(function() {
KTFormRepeater.init();
});

View File

@ -0,0 +1,21 @@
// Class definition
var KTRecaptcha = function () {
// Private functions
var demos = function () {
// minimum setup
//$('#kt_timepicker_1, #kt_timepicker_1_modal').timepicker();
}
return {
// public functions
init: function() {
demos();
}
};
}();
jQuery(document).ready(function() {
KTRecaptcha.init();
});

View File

@ -0,0 +1,79 @@
// Class definition
var KTInputmask = function () {
// Private functions
var demos = function () {
// date format
$("#kt_inputmask_1").inputmask("99/99/9999", {
"placeholder": "mm/dd/yyyy",
autoUnmask: true
});
// custom placeholder
$("#kt_inputmask_2").inputmask("99/99/9999", {
"placeholder": "mm/dd/yyyy",
});
// phone number format
$("#kt_inputmask_3").inputmask("mask", {
"mask": "(999) 999-9999"
});
// empty placeholder
$("#kt_inputmask_4").inputmask({
"mask": "99-9999999",
placeholder: "" // remove underscores from the input mask
});
// repeating mask
$("#kt_inputmask_5").inputmask({
"mask": "9",
"repeat": 10,
"greedy": false
}); // ~ mask "9" or mask "99" or ... mask "9999999999"
// decimal format
$("#kt_inputmask_6").inputmask('decimal', {
rightAlignNumerics: false
});
// currency format
$("#kt_inputmask_7").inputmask('€ 999.999.999,99', {
numericInput: true
}); //123456 => € ___.__1.234,56
//ip address
$("#kt_inputmask_8").inputmask({
"mask": "999.999.999.999"
});
//email address
$("#kt_inputmask_9").inputmask({
mask: "*{1,20}[.*{1,20}][.*{1,20}][.*{1,20}]@*{1,20}[.*{2,6}][.*{1,2}]",
greedy: false,
onBeforePaste: function (pastedValue, opts) {
pastedValue = pastedValue.toLowerCase();
return pastedValue.replace("mailto:", "");
},
definitions: {
'*': {
validator: "[0-9A-Za-z!#$%&'*+/=?^_`{|}~\-]",
cardinality: 1,
casing: "lower"
}
}
});
}
return {
// public functions
init: function() {
demos();
}
};
}();
jQuery(document).ready(function() {
KTInputmask.init();
});

View File

@ -0,0 +1,83 @@
// Class definition
var KTIONRangeSlider = function () {
// Private functions
var demos = function () {
// basic demo
$('#kt_slider_1').ionRangeSlider();
// min & max values
$('#kt_slider_2').ionRangeSlider({
min: 100,
max: 1000,
from: 550
});
// custom prefix
$('#kt_slider_3').ionRangeSlider({
type: "double",
grid: true,
min: 0,
max: 1000,
from: 200,
to: 800,
prefix: "$"
});
// range & step
$('#kt_slider_4').ionRangeSlider({
type: "double",
grid: true,
min: -1000,
max: 1000,
from: -500,
to: 500
});
// fractional step
$('#kt_slider_5').ionRangeSlider({
type: "double",
grid: true,
min: -12.8,
max: 12.8,
from: -3.2,
to: 3.2,
step: 0.1
});
// using postfixes
$('#kt_slider_6').ionRangeSlider({
type: "single",
grid: true,
min: -90,
max: 90,
from: 0,
postfix: "°"
});
// using text
$('#kt_slider_7').ionRangeSlider({
type: "double",
min: 100,
max: 200,
from: 145,
to: 155,
prefix: "Weight: ",
postfix: " million pounds",
decorate_both: true
});
}
return {
// public functions
init: function() {
demos();
}
};
}();
jQuery(document).ready(function() {
KTIONRangeSlider.init();
});

View File

@ -0,0 +1,312 @@
// Class definition
var KTnoUiSliderDemos = function() {
// Private functions
var demo1 = function() {
// init slider
var slider = document.getElementById('kt_nouislider_1');
noUiSlider.create(slider, {
start: [ 0 ],
step: 2,
range: {
'min': [ 0 ],
'max': [ 10 ]
},
format: wNumb({
decimals: 0
})
});
// init slider input
var sliderInput = document.getElementById('kt_nouislider_1_input');
slider.noUiSlider.on('update', function( values, handle ) {
sliderInput.value = values[handle];
});
sliderInput.addEventListener('change', function(){
slider.noUiSlider.set(this.value);
});
}
var demo2 = function() {
// init slider
var slider = document.getElementById('kt_nouislider_2');
noUiSlider.create(slider, {
start: [ 20000 ],
connect: [true, false],
step: 1000,
range: {
'min': [ 20000 ],
'max': [ 80000 ]
},
format: wNumb({
decimals: 3,
thousand: '.',
postfix: ' (US $)',
})
});
// init slider input
var sliderInput = document.getElementById('kt_nouislider_2_input');
slider.noUiSlider.on('update', function( values, handle ) {
sliderInput.value = values[handle];
});
sliderInput.addEventListener('change', function(){
slider.noUiSlider.set(this.value);
});
}
var demo3 = function() {
// init slider
var slider = document.getElementById('kt_nouislider_3');
noUiSlider.create(slider, {
start: [20, 80],
connect: true,
direction: 'rtl',
tooltips: [true, wNumb({ decimals: 1 })],
range: {
'min': [0],
'10%': [10, 10],
'50%': [80, 50],
'80%': 150,
'max': 200
}
});
// init slider input
var sliderInput0 = document.getElementById('kt_nouislider_3_input');
var sliderInput1 = document.getElementById('kt_nouislider_3.1_input');
var sliderInputs = [sliderInput1, sliderInput0];
slider.noUiSlider.on('update', function( values, handle ) {
sliderInputs[handle].value = values[handle];
});
}
var demo4 = function() {
var slider = document.getElementById('kt_nouislider_input_select');
// Append the option elements
for ( var i = -20; i <= 40; i++ ){
var option = document.createElement("option");
option.text = i;
option.value = i;
slider.appendChild(option);
}
// init slider
var html5Slider = document.getElementById('kt_nouislider_4');
noUiSlider.create(html5Slider, {
start: [ 10, 30 ],
connect: true,
range: {
'min': -20,
'max': 40
}
});
// init slider input
var inputNumber = document.getElementById('kt_nouislider_input_number');
html5Slider.noUiSlider.on('update', function( values, handle ) {
var value = values[handle];
if ( handle ) {
inputNumber.value = value;
} else {
slider.value = Math.round(value);
}
});
slider.addEventListener('change', function(){
html5Slider.noUiSlider.set([this.value, null]);
});
inputNumber.addEventListener('change', function(){
html5Slider.noUiSlider.set([null, this.value]);
});
}
var demo5 = function() {
// init slider
var slider = document.getElementById('kt_nouislider_5');
noUiSlider.create(slider, {
start: 20,
range: {
min: 0,
max: 100
},
pips: {
mode: 'values',
values: [20, 80],
density: 4
}
});
var sliderInput = document.getElementById('kt_nouislider_5_input');
slider.noUiSlider.on('update', function( values, handle ) {
sliderInput.value = values[handle];
});
sliderInput.addEventListener('change', function(){
slider.noUiSlider.set(this.value);
});
slider.noUiSlider.on('change', function ( values, handle ) {
if ( values[handle] < 20 ) {
slider.noUiSlider.set(20);
} else if ( values[handle] > 80 ) {
slider.noUiSlider.set(80);
}
});
}
var demo6 = function() {
// init slider
var verticalSlider = document.getElementById('kt_nouislider_6');
noUiSlider.create(verticalSlider, {
start: 40,
orientation: 'vertical',
range: {
'min': 0,
'max': 100
}
});
// init slider input
var sliderInput = document.getElementById('kt_nouislider_6_input');
verticalSlider.noUiSlider.on('update', function( values, handle ) {
sliderInput.value = values[handle];
});
sliderInput.addEventListener('change', function(){
verticalSlider.noUiSlider.set(this.value);
});
}
// Modal demo
var modaldemo1 = function() {
var slider = document.getElementById('kt_nouislider_modal1');
noUiSlider.create(slider, {
start: [ 0 ],
step: 2,
range: {
'min': [ 0 ],
'max': [ 10 ]
},
format: wNumb({
decimals: 0
})
});
// init slider input
var sliderInput = document.getElementById('kt_nouislider_modal1_input');
slider.noUiSlider.on('update', function( values, handle ) {
sliderInput.value = values[handle];
});
sliderInput.addEventListener('change', function(){
slider.noUiSlider.set(this.value);
});
}
var modaldemo2 = function() {
var slider = document.getElementById('kt_nouislider_modal2');
noUiSlider.create(slider, {
start: [ 20000 ],
connect: [true, false],
step: 1000,
range: {
'min': [ 20000 ],
'max': [ 80000 ]
},
format: wNumb({
decimals: 3,
thousand: '.',
postfix: ' (US $)',
})
});
// init slider input
var sliderInput = document.getElementById('kt_nouislider_modal2_input');
slider.noUiSlider.on('update', function( values, handle ) {
sliderInput.value = values[handle];
});
sliderInput.addEventListener('change', function(){
slider.noUiSlider.set(this.value);
});
}
var modaldemo3 = function() {
var slider = document.getElementById('kt_nouislider_modal3');
noUiSlider.create(slider, {
start: [20, 80],
connect: true,
direction: 'rtl',
tooltips: [true, wNumb({ decimals: 1 })],
range: {
'min': [0],
'10%': [10, 10],
'50%': [80, 50],
'80%': 150,
'max': 200
}
});
// init slider input
var sliderInput0 = document.getElementById('kt_nouislider_modal1.1_input');
var sliderInput1 = document.getElementById('kt_nouislider_modal1.2_input');
var sliderInputs = [sliderInput1, sliderInput0];
slider.noUiSlider.on('update', function( values, handle ) {
sliderInputs[handle].value = values[handle];
});
}
return {
// public functions
init: function() {
demo1();
demo2();
demo3();
demo4();
demo5();
demo6();
modaldemo1();
modaldemo2();
modaldemo3();
}
};
}();
jQuery(document).ready(function() {
KTnoUiSliderDemos.init();
});

View File

@ -0,0 +1,187 @@
// Class definition
var KTSelect2 = function() {
// Private functions
var demos = function() {
// basic
$('#kt_select2_1, #kt_select2_1_validate').select2({
placeholder: 'انتخاب گزینه'
});
// nested
$('#kt_select2_2, #kt_select2_2_validate').select2({
placeholder: 'انتخاب گزینه'
});
// multi select
$('#kt_select2_3, #kt_select2_3_validate').select2({
placeholder: 'انتخاب گزینه',
});
// basic
$('#kt_select2_4').select2({
placeholder: "انتخاب گزینه",
allowClear: true
});
// loading data from array
var data = [{
id: 0,
text: 'مدیر سایت'
}, {
id: 1,
text: 'وردپرس کار'
}, {
id: 2,
text: 'تولید محتوا'
}, {
id: 3,
text: 'گرافیست'
}, {
id: 4,
text: 'سئو کار'
}];
$('#kt_select2_5').select2({
placeholder: "انتخاب گزینه",
data: data
});
// loading remote data
function formatRepo(repo) {
if (repo.loading) return repo.text;
var markup = "<div class='select2-result-repository clearfix'>" +
"<div class='select2-result-repository__meta'>" +
"<div class='select2-result-repository__title'>" + repo.full_name + "</div>";
if (repo.description) {
markup += "<div class='select2-result-repository__description'>" + repo.description + "</div>";
}
markup += "<div class='select2-result-repository__statistics'>" +
"<div class='select2-result-repository__forks'><i class='fa fa-flash'></i> " + repo.forks_count + " لایک</div>" +
"<div class='select2-result-repository__stargazers'><i class='fa fa-star'></i> " + repo.stargazers_count + " ستاره ها</div>" +
"<div class='select2-result-repository__watchers'><i class='fa fa-eye'></i> " + repo.watchers_count + " بازدید</div>" +
"</div>" +
"</div></div>";
return markup;
}
function formatRepoSelection(repo) {
return repo.full_name || repo.text;
}
$("#kt_select2_6").select2({
placeholder: "جستجو...",
allowClear: true,
ajax: {
url: "https://api.github.com/search/repositories",
dataType: 'json',
delay: 250,
data: function(params) {
return {
q: params.term, // search term
page: params.page
};
},
processResults: function(data, params) {
// parse the results into the format expected by Select2
// since we are using custom formatting functions we do not need to
// alter the remote JSON data, except to indicate that infinite
// scrolling can be used
params.page = params.page || 1;
return {
results: data.items,
pagination: {
more: (params.page * 30) < data.total_count
}
};
},
cache: true
},
escapeMarkup: function(markup) {
return markup;
}, // let our custom formatter work
minimumInputLength: 1,
templateResult: formatRepo, // omitted for brevity, see the source of this page
templateSelection: formatRepoSelection // omitted for brevity, see the source of this page
});
// custom styles
// tagging support
$('#kt_select2_12_1, #kt_select2_12_2, #kt_select2_12_3, #kt_select2_12_4').select2({
placeholder: "انتخاب گزینه",
});
// disabled mode
$('#kt_select2_7').select2({
placeholder: "انتخاب گزینه"
});
// disabled results
$('#kt_select2_8').select2({
placeholder: "انتخاب گزینه"
});
// limiting the number of selections
$('#kt_select2_9').select2({
placeholder: "انتخاب گزینه",
maximumSelectionLength: 2
});
// hiding the search box
$('#kt_select2_10').select2({
placeholder: "انتخاب گزینه",
minimumResultsForSearch: Infinity
});
// tagging support
$('#kt_select2_11').select2({
placeholder: "افزودن برچسب",
tags: true
});
// disabled results
$('.kt-select2-general').select2({
placeholder: "انتخاب گزینه"
});
}
var modalDemos = function() {
$('#kt_select2_modal').on('shown.bs.modal', function () {
// basic
$('#kt_select2_1_modal').select2({
placeholder: "انتخاب گزینه"
});
// nested
$('#kt_select2_2_modal').select2({
placeholder: "انتخاب گزینه"
});
// multi select
$('#kt_select2_3_modal').select2({
placeholder: "انتخاب گزینه",
});
// basic
$('#kt_select2_4_modal').select2({
placeholder: "انتخاب گزینه",
allowClear: true
});
});
}
// Public functions
return {
init: function() {
demos();
modalDemos();
}
};
}();
// Initialization
jQuery(document).ready(function() {
KTSelect2.init();
});

View File

@ -0,0 +1,297 @@
// Class definition
var KTTagifyDemos = function() {
// Private functions
var demo1 = function() {
var input = document.getElementById('kt_tagify_1'),
// init Tagify script on the above inputs
tagify = new Tagify(input, {
whitelist: ["A# .NET", "A# (Axiom)", "A-0 System", "A+", "A++", "ABAP", "ABC", "ABC ALGOL", "ABSET", "ABSYS", "ACC", "Accent", "Ace DASL", "ACL2", "Avicsoft", "ACT-III", "Action!", "ActionScript", "Ada", "Adenine", "Agda", "Agilent VEE", "Agora", "AIMMS", "Alef", "ALF", "ALGOL 58", "ALGOL 60", "ALGOL 68", "ALGOL W", "Alice", "Alma-0", "AmbientTalk", "Amiga E", "AMOS", "AMPL", "Apex (Salesforce.com)", "APL", "AppleScript", "Arc", "ARexx", "Argus", "AspectJ", "Assembly language", "ATS", "Ateji PX", "AutoHotkey", "Autocoder", "AutoIt", "AutoLISP / Visual LISP", "Averest", "AWK", "Axum", "Active Server Pages", "ASP.NET", "B", "Babbage", "Bash", "BASIC", "bc", "BCPL", "BeanShell", "Batch (Windows/Dos)", "Bertrand", "BETA", "Bigwig", "Bistro", "BitC", "BLISS", "Blockly", "BlooP", "Blue", "Boo", "Boomerang", "Bourne shell (including bash and ksh)", "BREW", "BPEL", "B", "C--", "C++ ISO/IEC 14882", "C# ISO/IEC 23270", "C/AL", "Caché ObjectScript", "C Shell", "Caml", "Cayenne", "CDuce", "Cecil", "Cesil", "Céu", "Ceylon", "CFEngine", "CFML", "Cg", "Ch", "Chapel", "Charity", "Charm", "Chef", "CHILL", "CHIP-8", "chomski", "ChucK", "CICS", "Cilk", "Citrine (programming language)", "CL (IBM)", "Claire", "Clarion", "Clean", "Clipper", "CLIPS", "CLIST", "Clojure", "CLU", "CMS-2", "COBOL ISO/IEC 1989", "CobolScript COBOL Scripting language", "Cobra", "CODE", "CoffeeScript", "ColdFusion", "COMAL", "Combined Programming Language (CPL)", "COMIT", "Common Intermediate Language (CIL)", "Common Lisp (also known as CL)", "COMPASS", "Component Pascal", "Constraint Handling Rules (CHR)", "COMTRAN", "Converge", "Cool", "Coq", "Coral 66", "Corn", "CorVision", "COWSEL", "CPL", "CPL", "Cryptol", "csh", "Csound", "CSP", "CUDA", "Curl", "Curry", "Cybil", "Cyclone", "Cython", "Java", "Javascript", "M2001", "M4", "M#", "Machine code", "MAD (Michigan Algorithm Decoder)", "MAD/I", "Magik", "Magma", "make", "Maple", "MAPPER now part of BIS", "MARK-IV now VISION:BUILDER", "Mary", "MASM Microsoft Assembly x86", "MATH-MATIC", "Mathematica", "MATLAB", "Maxima (see also Macsyma)", "Max (Max Msp Graphical Programming Environment)", "Maya (MEL)", "MDL", "Mercury", "Mesa", "Metafont", "Microcode", "MicroScript", "MIIS", "Milk (programming language)", "MIMIC", "Mirah", "Miranda", "MIVA Script", "ML", "Model 204", "Modelica", "Modula", "Modula-2", "Modula-3", "Mohol", "MOO", "Mortran", "Mouse", "MPD", "Mathcad", "MSIL deprecated name for CIL", "MSL", "MUMPS", "Mystic Programming L"],
blacklist: [".NET", "PHP"], // <-- passed as an attribute in this demo
})
// "remove all tags" button event listener
document.getElementById('kt_tagify_1_remove').addEventListener('click', tagify.removeAllTags.bind(tagify));
// Chainable event listeners
tagify.on('add', onAddTag)
.on('remove', onRemoveTag)
.on('input', onInput)
.on('edit', onTagEdit)
.on('invalid', onInvalidTag)
.on('click', onTagClick)
.on('dropdown:show', onDropdownShow)
.on('dropdown:hide', onDropdownHide)
// tag added callback
function onAddTag(e) {
console.log("onAddTag: ", e.detail);
console.log("original input value: ", input.value)
tagify.off('add', onAddTag) // exmaple of removing a custom Tagify event
}
// tag remvoed callback
function onRemoveTag(e) {
console.log(e.detail);
console.log("tagify instance value:", tagify.value)
}
// on character(s) added/removed (user is typing/deleting)
function onInput(e) {
console.log(e.detail);
console.log("onInput: ", e.detail);
}
function onTagEdit(e) {
console.log("onTagEdit: ", e.detail);
}
// invalid tag added callback
function onInvalidTag(e) {
console.log("onInvalidTag: ", e.detail);
}
// invalid tag added callback
function onTagClick(e) {
console.log(e.detail);
console.log("onTagClick: ", e.detail);
}
function onDropdownShow(e) {
console.log("onDropdownShow: ", e.detail)
}
function onDropdownHide(e) {
console.log("onDropdownHide: ", e.detail)
}
}
var demo1Readonly = function() {
// Readonly Mode
var input = document.getElementById('kt_tagify_1_1'),
tagify = new Tagify(input);
tagify.addTags([{value:"laravel", color:"yellow", readonly: true}]);
}
var demo2 = function() {
var input = document.getElementById('kt_tagify_2');
var tagify = new Tagify(input, {
enforceWhitelist: true,
whitelist: ["The Shawshank Redemption", "The Godfather", "The Godfather: Part II", "The Dark Knight", "12 Angry Men", "Schindler's List", "Pulp Fiction", "The Lord of the Rings: The Return of the King", "The Good, the Bad and the Ugly", "Fight Club", "The Lord of the Rings: The Fellowship of the Ring", "Star Wars: Episode V - The Empire Strikes Back", "Forrest Gump", "Inception", "The Lord of the Rings: The Two Towers", "One Flew Over the Cuckoo's Nest", "Goodfellas", "The Matrix", "Seven Samurai", "Star Wars: Episode IV - A New Hope", "City of God", "Se7en", "The Silence of the Lambs", "It's a Wonderful Life", "The Usual Suspects", "Life Is Beautiful", "Léon: The Professional", "Spirited Away", "Saving Private Ryan", "La La Land", "Once Upon a Time in the West", "American History X", "Interstellar", "Casablanca", "Psycho", "City Lights", "The Green Mile", "Raiders of the Lost Ark", "The Intouchables", "Modern Times", "Rear Window", "The Pianist", "The Departed", "Terminator 2: Judgment Day", "Back to the Future", "Whiplash", "Gladiator", "Memento", "Apocalypse Now", "The Prestige", "The Lion King", "Alien", "Dr. Strangelove or: How I Learned to Stop Worrying and Love the Bomb", "Sunset Boulevard", "The Great Dictator", "Cinema Paradiso", "The Lives of Others", "Paths of Glory", "Grave of the Fireflies", "Django Unchained", "The Shining", "WALL·E", "American Beauty", "The Dark Knight Rises", "Princess Mononoke", "Aliens", "Oldboy", "Once Upon a Time in America", "Citizen Kane", "Das Boot", "Witness for the Prosecution", "North by Northwest", "Vertigo", "Star Wars: Episode VI - Return of the Jedi", "Reservoir Dogs", "M", "Braveheart", "Amélie", "Requiem for a Dream", "A Clockwork Orange", "Taxi Driver", "Lawrence of Arabia", "Like Stars on Earth", "Double Indemnity", "To Kill a Mockingbird", "Eternal Sunshine of the Spotless Mind", "Toy Story 3", "Amadeus", "My Father and My Son", "Full Metal Jacket", "The Sting", "2001: A Space Odyssey", "Singin' in the Rain", "Bicycle Thieves", "Toy Story", "Dangal", "The Kid", "Inglourious Basterds", "Snatch", "Monty Python and the Holy Grail", "Hacksaw Ridge", "3 Idiots", "L.A. Confidential", "For a Few Dollars More", "Scarface", "Rashomon", "The Apartment", "The Hunt", "Good Will Hunting", "Indiana Jones and the Last Crusade", "A Separation", "Metropolis", "Yojimbo", "All About Eve", "Batman Begins", "Up", "Some Like It Hot", "The Treasure of the Sierra Madre", "Unforgiven", "Downfall", "Raging Bull", "The Third Man", "Die Hard", "Children of Heaven", "The Great Escape", "Heat", "Chinatown", "Inside Out", "Pan's Labyrinth", "Ikiru", "My Neighbor Totoro", "On the Waterfront", "Room", "Ran", "The Gold Rush", "The Secret in Their Eyes", "The Bridge on the River Kwai", "Blade Runner", "Mr. Smith Goes to Washington", "The Seventh Seal", "Howl's Moving Castle", "Lock, Stock and Two Smoking Barrels", "Judgment at Nuremberg", "Casino", "The Bandit", "Incendies", "A Beautiful Mind", "A Wednesday", "The General", "The Elephant Man", "Wild Strawberries", "Arrival", "V for Vendetta", "Warrior", "The Wolf of Wall Street", "Manchester by the Sea", "Sunrise", "The Passion of Joan of Arc", "Gran Torino", "Rang De Basanti", "Trainspotting", "Dial M for Murder", "The Big Lebowski", "The Deer Hunter", "Tokyo Story", "Gone with the Wind", "Fargo", "Finding Nemo", "The Sixth Sense", "The Thing", "Hera Pheri", "Cool Hand Luke", "Andaz Apna Apna", "Rebecca", "No Country for Old Men", "How to Train Your Dragon", "Munna Bhai M.B.B.S.", "Sholay", "Kill Bill: Vol. 1", "Into the Wild", "Mary and Max", "Gone Girl", "There Will Be Blood", "Come and See", "It Happened One Night", "Life of Brian", "Rush", "Hotel Rwanda", "Platoon", "Shutter Island", "Network", "The Wages of Fear", "Stand by Me", "Wild Tales", "In the Name of the Father", "Spotlight", "Star Wars: The Force Awakens", "The Nights of Cabiria", "The 400 Blows", "Butch Cassidy and the Sundance Kid", "Mad Max: Fury Road", "The Maltese Falcon", "12 Years a Slave", "Ben-Hur", "The Grand Budapest Hotel", "Persona", "Million Dollar Baby", "Amores Perros", "Jurassic Park", "The Princess Bride", "Hachi: A Dog's Tale", "Memories of Murder", "Stalker", "Nausicaä of the Valley of the Wind", "Drishyam", "The Truman Show", "The Grapes of Wrath", "Before Sunrise", "Touch of Evil", "Annie Hall", "The Message", "Rocky", "Gandhi", "Harry Potter and the Deathly Hallows: Part 2", "The Bourne Ultimatum", "Diabolique", "Donnie Darko", "Monsters, Inc.", "Prisoners", "8½", "The Terminator", "The Wizard of Oz", "Catch Me If You Can", "Groundhog Day", "Twelve Monkeys", "Zootopia", "La Haine", "Barry Lyndon", "Jaws", "The Best Years of Our Lives", "Infernal Affairs", "Udaan", "The Battle of Algiers", "Strangers on a Train", "Dog Day Afternoon", "Sin City", "Kind Hearts and Coronets", "Gangs of Wasseypur", "The Help"],
callbacks: {
add: console.log, // callback when adding a tag
remove: console.log // callback when removing a tag
}
});
}
var demo3 = function() {
var input = document.getElementById('kt_tagify_3');
// init Tagify script on the above inputs
var tagify = new Tagify(input);
// add a class to Tagify's input element
//tagify.DOM.input.classList.remove('tagify__input');
tagify.DOM.input.classList.add('form-control');
tagify.DOM.input.setAttribute('placeholder', 'enter tag...');
// re-place Tagify's input element outside of the element (tagify.DOM.scope), just before it
tagify.DOM.scope.parentNode.insertBefore(tagify.DOM.input, tagify.DOM.scope);
}
var demo4 = function() {
var input = document.getElementById('kt_tagify_4');
var tagify = new Tagify(input, {
pattern: /^.{0,20}$/, // Validate typed tag(s) by Regex. Here maximum chars length is defined as "20"
delimiters: ", ", // add new tags when a comma or a space character is entered
maxTags: 6,
blacklist: ["fuck", "shit", "pussy"],
keepInvalidTags: true, // do not remove invalid tags (but keep them marked as invalid)
whitelist: ["temple", "stun", "detective", "sign", "passion", "routine", "deck", "discriminate", "relaxation", "fraud", "attractive", "soft", "forecast", "point", "thank", "stage", "eliminate", "effective", "flood", "passive", "skilled", "separation", "contact", "compromise", "reality", "district", "nationalist", "leg", "porter", "conviction", "worker", "vegetable", "commerce", "conception", "particle", "honor", "stick", "tail", "pumpkin", "core", "mouse", "egg", "population", "unique", "behavior", "onion", "disaster", "cute", "pipe", "sock", "dialect", "horse", "swear", "owner", "cope", "global", "improvement", "artist", "shed", "constant", "bond", "brink", "shower", "spot", "inject", "bowel", "homosexual", "trust", "exclude", "tough", "sickness", "prevalence", "sister", "resolution", "cattle", "cultural", "innocent", "burial", "bundle", "thaw", "respectable", "thirsty", "exposure", "team", "creed", "facade", "calendar", "filter", "utter", "dominate", "predator", "discover", "theorist", "hospitality", "damage", "woman", "rub", "crop", "unpleasant", "halt", "inch", "birthday", "lack", "throne", "maximum", "pause", "digress", "fossil", "policy", "instrument", "trunk", "frame", "measure", "hall", "support", "convenience", "house", "partnership", "inspector", "looting", "ranch", "asset", "rally", "explicit", "leak", "monarch", "ethics", "applied", "aviation", "dentist", "great", "ethnic", "sodium", "truth", "constellation", "lease", "guide", "break", "conclusion", "button", "recording", "horizon", "council", "paradox", "bride", "weigh", "like", "noble", "transition", "accumulation", "arrow", "stitch", "academy", "glimpse", "case", "researcher", "constitutional", "notion", "bathroom", "revolutionary", "soldier", "vehicle", "betray", "gear", "pan", "quarter", "embarrassment", "golf", "shark", "constitution", "club", "college", "duty", "eaux", "know", "collection", "burst", "fun", "animal", "expectation", "persist", "insure", "tick", "account", "initiative", "tourist", "member", "example", "plant", "river", "ratio", "view", "coast", "latest", "invite", "help", "falsify", "allocation", "degree", "feel", "resort", "means", "excuse", "injury", "pupil", "shaft", "allow", "ton", "tube", "dress", "speaker", "double", "theater", "opposed", "holiday", "screw", "cutting", "picture", "laborer", "conservation", "kneel", "miracle", "primary", "nomination", "characteristic", "referral", "carbon", "valley", "hot", "climb", "wrestle", "motorist", "update", "loot", "mosquito", "delivery", "eagle", "guideline", "hurt", "feedback", "finish", "traffic", "competence", "serve", "archive", "feeling", "hope", "seal", "ear", "oven", "vote", "ballot", "study", "negative", "declaration", "particular", "pattern", "suburb", "intervention", "brake", "frequency", "drink", "affair", "contemporary", "prince", "dry", "mole", "lazy", "undermine", "radio", "legislation", "circumstance", "bear", "left", "pony", "industry", "mastermind", "criticism", "sheep", "failure", "chain", "depressed", "launch", "script", "green", "weave", "please", "surprise", "doctor", "revive", "banquet", "belong", "correction", "door", "image", "integrity", "intermediate", "sense", "formal", "cane", "gloom", "toast", "pension", "exception", "prey", "random", "nose", "predict", "needle", "satisfaction", "establish", "fit", "vigorous", "urgency", "X-ray", "equinox", "variety", "proclaim", "conceive", "bulb", "vegetarian", "available", "stake", "publicity", "strikebreaker", "portrait", "sink", "frog", "ruin", "studio", "match", "electron", "captain", "channel", "navy", "set", "recommend", "appoint", "liberal", "missile", "sample", "result", "poor", "efflux", "glance", "timetable", "advertise", "personality", "aunt", "dog"],
transformTag: transformTag,
dropdown: {
enabled: 3,
}
});
function transformTag(tagData) {
var states = [
'success',
'primary',
'danger',
'success',
'warning',
'dark',
'primary',
'info'];
tagData.class = 'tagify__tag tagify__tag--' + states[KTUtil.getRandomInt(0, 7)];
if (tagData.value.toLowerCase() == 'shit') {
tagData.value = 's✲✲t'
}
}
tagify.on('add', function(e) {
console.log(e.detail)
});
tagify.on('invalid', function(e) {
console.log(e, e.detail);
});
}
var demo5 = function() {
// Init autocompletes
var toEl = document.getElementById('kt_tagify_5');
var tagifyTo = new Tagify(toEl, {
delimiters: ", ", // add new tags when a comma or a space character is entered
maxTags: 10,
blacklist: ["fuck", "shit", "pussy"],
keepInvalidTags: true, // do not remove invalid tags (but keep them marked as invalid)
whitelist: [
{
value : 'Chris Muller',
email : 'chris.muller@wix.com',
initials: '',
initialsState: '',
pic: './assets/media/users/100_11.jpg',
class : 'tagify__tag--primary'
}, {
value : 'Nick Bold',
email : 'nick.seo@gmail.com',
initials: 'SS',
initialsState: 'warning',
pic: ''
}, {
value : 'Alon Silko',
email : 'alon@keenthemes.com',
initials: '',
initialsState: '',
pic: './assets/media/users/100_6.jpg'
}, {
value : 'Sam Seanic',
email : 'sam.senic@loop.com',
initials: '',
initialsState: '',
pic: './assets/media/users/100_8.jpg'
}, {
value : 'Sara Loran',
email : 'sara.loran@tilda.com',
initials: '',
initialsState: '',
pic: './assets/media/users/100_9.jpg'
}, {
value : 'Eric Davok',
email : 'davok@mix.com',
initials: '',
initialsState: '',
pic: './assets/media/users/100_13.jpg'
}, {
value : 'Sam Seanic',
email : 'sam.senic@loop.com',
initials: '',
initialsState: '',
pic: './assets/media/users/100_13.jpg'
}, {
value : 'Lina Nilson',
email : 'lina.nilson@loop.com',
initials: 'LN',
initialsState: 'danger',
pic: './assets/media/users/100_15.jpg'
}],
templates: {
dropdownItem : function(tagData){
try {
var html = '';
html += '<div class="tagify__dropdown__item">';
html += ' <div class="d-flex align-items-center">';
html += ' <span class="symbol sumbol-' + (tagData.initialsState ? tagData.initialsState : '') + ' mr-2">';
html += ' <span class="symbol-label" style="background-image: url(\''+ (tagData.pic ? tagData.pic : '') + '\')">' + (tagData.initials ? tagData.initials : '') + '</span>';
html += ' </span>';
html += ' <div class="d-flex flex-column">';
html += ' <a href="#" class="text-dark-75 text-hover-primary font-weight-bold">'+ (tagData.value ? tagData.value : '') + '</a>';
html += ' <span class="text-muted font-weight-bold">' + (tagData.email ? tagData.email : '') + '</span>';
html += ' </div>';
html += ' </div>';
html += '</div>';
return html;
} catch (err) {}
}
},
transformTag: function(tagData) {
tagData.class = 'tagify__tag tagify__tag--primary';
},
dropdown : {
classname : "color-blue",
enabled : 1,
maxItems : 5
}
});
}
var demo6 = function() {
var input = document.getElementById('kt_tagify_6');
var tagify = new Tagify(input, {
pattern: /^.{0,20}$/, // Validate typed tag(s) by Regex. Here maximum chars length is defined as "20"
delimiters: ", ", // add new tags when a comma or a space character is entered
maxTags: 6,
blacklist: ["fuck", "shit", "pussy"],
keepInvalidTags: true, // do not remove invalid tags (but keep them marked as invalid)
whitelist: ["temple", "stun", "detective", "sign", "passion", "routine", "deck", "discriminate", "relaxation", "fraud", "attractive", "soft", "forecast", "point", "thank", "stage", "eliminate", "effective", "flood", "passive", "skilled", "separation", "contact", "compromise", "reality", "district", "nationalist", "leg", "porter", "conviction", "worker", "vegetable", "commerce", "conception", "particle", "honor", "stick", "tail", "pumpkin", "core", "mouse", "egg", "population", "unique", "behavior", "onion", "disaster", "cute", "pipe", "sock", "dialect", "horse", "swear", "owner", "cope", "global", "improvement", "artist", "shed", "constant", "bond", "brink", "shower", "spot", "inject", "bowel", "homosexual", "trust", "exclude", "tough", "sickness", "prevalence", "sister", "resolution", "cattle", "cultural", "innocent", "burial", "bundle", "thaw", "respectable", "thirsty", "exposure", "team", "creed", "facade", "calendar", "filter", "utter", "dominate", "predator", "discover", "theorist", "hospitality", "damage", "woman", "rub", "crop", "unpleasant", "halt", "inch", "birthday", "lack", "throne", "maximum", "pause", "digress", "fossil", "policy", "instrument", "trunk", "frame", "measure", "hall", "support", "convenience", "house", "partnership", "inspector", "looting", "ranch", "asset", "rally", "explicit", "leak", "monarch", "ethics", "applied", "aviation", "dentist", "great", "ethnic", "sodium", "truth", "constellation", "lease", "guide", "break", "conclusion", "button", "recording", "horizon", "council", "paradox", "bride", "weigh", "like", "noble", "transition", "accumulation", "arrow", "stitch", "academy", "glimpse", "case", "researcher", "constitutional", "notion", "bathroom", "revolutionary", "soldier", "vehicle", "betray", "gear", "pan", "quarter", "embarrassment", "golf", "shark", "constitution", "club", "college", "duty", "eaux", "know", "collection", "burst", "fun", "animal", "expectation", "persist", "insure", "tick", "account", "initiative", "tourist", "member", "example", "plant", "river", "ratio", "view", "coast", "latest", "invite", "help", "falsify", "allocation", "degree", "feel", "resort", "means", "excuse", "injury", "pupil", "shaft", "allow", "ton", "tube", "dress", "speaker", "double", "theater", "opposed", "holiday", "screw", "cutting", "picture", "laborer", "conservation", "kneel", "miracle", "primary", "nomination", "characteristic", "referral", "carbon", "valley", "hot", "climb", "wrestle", "motorist", "update", "loot", "mosquito", "delivery", "eagle", "guideline", "hurt", "feedback", "finish", "traffic", "competence", "serve", "archive", "feeling", "hope", "seal", "ear", "oven", "vote", "ballot", "study", "negative", "declaration", "particular", "pattern", "suburb", "intervention", "brake", "frequency", "drink", "affair", "contemporary", "prince", "dry", "mole", "lazy", "undermine", "radio", "legislation", "circumstance", "bear", "left", "pony", "industry", "mastermind", "criticism", "sheep", "failure", "chain", "depressed", "launch", "script", "green", "weave", "please", "surprise", "doctor", "revive", "banquet", "belong", "correction", "door", "image", "integrity", "intermediate", "sense", "formal", "cane", "gloom", "toast", "pension", "exception", "prey", "random", "nose", "predict", "needle", "satisfaction", "establish", "fit", "vigorous", "urgency", "X-ray", "equinox", "variety", "proclaim", "conceive", "bulb", "vegetarian", "available", "stake", "publicity", "strikebreaker", "portrait", "sink", "frog", "ruin", "studio", "match", "electron", "captain", "channel", "navy", "set", "recommend", "appoint", "liberal", "missile", "sample", "result", "poor", "efflux", "glance", "timetable", "advertise", "personality", "aunt", "dog"],
transformTag: transformTag,
dropdown: {
enabled: 3,
}
});
function transformTag(tagData) {
var states = [
'success',
'primary',
'danger',
'success',
'warning',
'dark',
'primary',
'info'];
tagData.class = 'tagify__tag tagify__tag-light--' + states[KTUtil.getRandomInt(0, 7)];
if (tagData.value.toLowerCase() == 'shit') {
tagData.value = 's✲✲t'
}
}
tagify.on('add', function(e) {
console.log(e.detail)
});
tagify.on('invalid', function(e) {
console.log(e, e.detail);
});
}
return {
// public functions
init: function() {
demo1();
demo1Readonly();
demo2();
demo3();
demo4();
demo5();
demo6();
}
};
}();
jQuery(document).ready(function() {
KTTagifyDemos.init();
});

View File

@ -0,0 +1,151 @@
// Class definition
var KTTypeahead = function() {
var states = ['Alabama', 'Alaska', 'Arizona', 'Arkansas', 'California',
'Colorado', 'Connecticut', 'Delaware', 'Florida', 'Georgia', 'Hawaii',
'Idaho', 'Illinois', 'Indiana', 'Iowa', 'Kansas', 'Kentucky', 'Louisiana',
'Maine', 'Maryland', 'Massachusetts', 'Michigan', 'Minnesota',
'Mississippi', 'Missouri', 'Montana', 'Nebraska', 'Nevada', 'New Hampshire',
'New Jersey', 'New Mexico', 'New York', 'North Carolina', 'North Dakota',
'Ohio', 'Oklahoma', 'Oregon', 'Pennsylvania', 'Rhode Island',
'South Carolina', 'South Dakota', 'Tennessee', 'Texas', 'Utah', 'Vermont',
'Virginia', 'Washington', 'West Virginia', 'Wisconsin', 'Wyoming' ];
// Private functions
var demo1 = function() {
var substringMatcher = function(strs) {
return function findMatches(q, cb) {
var matches, substringRegex;
// an array that will be populated with substring matches
matches = [];
// regex used to determine if a string contains the substring `q`
substrRegex = new RegExp(q, 'i');
// iterate through the pool of strings and for any string that
// contains the substring `q`, add it to the `matches` array
$.each(strs, function(i, str) {
if (substrRegex.test(str)) {
matches.push(str);
}
});
cb(matches);
};
};
$('#kt_typeahead_1, #kt_typeahead_1_modal').typeahead({
hint: true,
highlight: true,
minLength: 1
}, {
name: 'states',
source: substringMatcher(states)
});
}
var demo2 = function() {
// constructs the suggestion engine
var bloodhound = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.whitespace,
queryTokenizer: Bloodhound.tokenizers.whitespace,
// `states` is an array of state names defined in \"The Basics\"
local: states
});
$('#kt_typeahead_2, #kt_typeahead_2_modal').typeahead({
hint: true,
highlight: true,
minLength: 1
}, {
name: 'states',
source: bloodhound
});
}
var demo3 = function() {
var countries = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.whitespace,
queryTokenizer: Bloodhound.tokenizers.whitespace,
// url points to a json file that contains an array of country names, see
// https://github.com/twitter/typeahead.js/blob/gh-pages/data/countries.json
prefetch: HOST_URL + '/api/?file=typeahead/countries.json'
});
// passing in `null` for the `options` arguments will result in the default
// options being used
$('#kt_typeahead_3, #kt_typeahead_3_modal').typeahead(null, {
name: 'countries',
source: countries
});
}
var demo4 = function() {
var bestPictures = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
prefetch: HOST_URL + '/api/?file=typeahead/movies.json'
});
$('#kt_typeahead_4').typeahead(null, {
name: 'best-pictures',
display: 'value',
source: bestPictures,
templates: {
empty: [
'<div class=\"empty-message\" style=\"padding: 10px 15px; text-align: center;\">',
'unable to find any Best Picture winners that match the current query',
'</div>'
].join('\n'),
suggestion: Handlebars.compile('<div><strong>{{value}}</strong> {{year}}</div>')
}
});
}
var demo5 = function() {
var nbaTeams = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('team'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
prefetch: HOST_URL + '/api/?file=typeahead/nba.json'
});
var nhlTeams = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('team'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
prefetch: HOST_URL + '/api/?file=typeahead/nhl.json'
});
$('#kt_typeahead_5').typeahead({
highlight: true
}, {
name: 'nba-teams',
display: 'team',
source: nbaTeams,
templates: {
header: '<h3 class=\"league-name\" style=\"padding: 5px 15px; font-size: 1.2rem; margin:0;\">NBA Teams</h3>'
}
}, {
name: 'nhl-teams',
display: 'team',
source: nhlTeams,
templates: {
header: '<h3 class=\"league-name\" style=\"padding: 5px 15px; font-size: 1.2rem; margin:0;\">NHL Teams</h3>'
}
});
}
return {
// public functions
init: function() {
demo1();
demo2();
demo3();
demo4();
demo5();
}
};
}();
jQuery(document).ready(function() {
KTTypeahead.init();
});