장선근
5 years ago
225 changed files with 30860 additions and 23260 deletions
-
104_src/admin/js/admin.js
-
118_src/admin/js/dx.all.js
-
285_src/admin/js/dx.messages.ko.js
-
861_src/admin/js/jquery.formatter.js
-
2_src/admin/js/modules/board.js
-
212_src/admin/js/modules/datagrid.js
-
23_src/admin/js/modules/toast.js
-
18_src/admin/scss/_variables.scss
-
18_src/admin/scss/admin.scss
-
51_src/admin/scss/boot/_fonts.scss
-
30_src/admin/scss/common/_layout.scss
-
71_src/admin/scss/common/_utility.scss
-
2_src/admin/scss/components/_buttons.scss
-
92_src/admin/scss/components/_form.scss
-
18_src/admin/scss/components/_grid.scss
-
4_src/admin/scss/components/_label.scss
-
37_src/admin/scss/plugins/_plugins_custom.scss
-
769_src/admin/scss/plugins/ax5ui/_ax5grid.scss
-
256_src/admin/scss/plugins/ax5ui/_ax5toast.scss
-
7403_src/admin/scss/plugins/devextreme/dx.common.scss
-
13343_src/admin/scss/plugins/devextreme/dx.light.compact.scss
-
23_src/admin/scss/plugins/fontawesome5/_rotated-flipped.scss
-
21_src/admin/scss/plugins/fontawesome5/brands.scss
-
16_src/admin/scss/plugins/fontawesome5/fontawesome.scss
-
22_src/admin/scss/plugins/fontawesome5/light.scss
-
23_src/admin/scss/plugins/fontawesome5/solid.scss
-
569_src/admin/scss/plugins/jquery.datetimepicker.css
-
1_src/common/css/global.css
-
200_src/common/css/toastr.css
-
30_src/common/js/global.js
-
0_src/common/js/modules/board.js
-
126_src/common/js/modules/components.js
-
0_src/common/js/modules/dropdown.js
-
98_src/common/js/modules/formatter.js
-
0_src/common/js/modules/member.js
-
194_src/common/js/modules/modal.js
-
28_src/common/js/modules/popup.js
-
49_src/common/js/modules/regex.js
-
288_src/common/js/plugins/autosize.js
-
5_src/common/scss/_function.scss
-
33_src/common/scss/_mixins.scss
-
124_src/common/scss/_reset.scss
-
98_src/common/scss/_utility.scss
-
15_src/common/scss/global.scss
-
0_src/common/scss/plugins/_toastr.scss
-
0_src/common/scss/plugins/ax5ui/_ax5.scss
-
0_src/common/scss/plugins/ax5ui/_ax5mask.scss
-
0_src/common/scss/plugins/ax5ui/_ax5modal.scss
-
0_src/common/scss/plugins/ax5ui/_bourbon_support.scss
-
0_src/common/scss/plugins/ax5ui/_mixin.scss
-
0_src/common/scss/plugins/fontawesome5/_animated.scss
-
0_src/common/scss/plugins/fontawesome5/_bordered-pulled.scss
-
0_src/common/scss/plugins/fontawesome5/_core.scss
-
0_src/common/scss/plugins/fontawesome5/_fixed-width.scss
-
293_src/common/scss/plugins/fontawesome5/_icons.scss
-
0_src/common/scss/plugins/fontawesome5/_larger.scss
-
0_src/common/scss/plugins/fontawesome5/_list.scss
-
1_src/common/scss/plugins/fontawesome5/_mixins.scss
-
5_src/common/scss/plugins/fontawesome5/_rotated-flipped.scss
-
0_src/common/scss/plugins/fontawesome5/_screen-reader.scss
-
0_src/common/scss/plugins/fontawesome5/_shims.scss
-
0_src/common/scss/plugins/fontawesome5/_stacked.scss
-
296_src/common/scss/plugins/fontawesome5/_variables.scss
-
3_src/common/scss/plugins/fontawesome5/brands.scss
-
2_src/common/scss/plugins/fontawesome5/fontawesome.scss
-
3_src/common/scss/plugins/fontawesome5/light.scss
-
3_src/common/scss/plugins/fontawesome5/regular.scss
-
3_src/common/scss/plugins/fontawesome5/solid.scss
-
2_src/common/scss/plugins/fontawesome5/v4-shims.scss
-
5_src/desktop/scss/boot/_function.scss
-
56_src/desktop/scss/boot/_mixins.scss
-
74_src/desktop/scss/common/_utility.scss
-
10_src/desktop/scss/desktop.scss
-
20_src/desktop/scss/plugins/fontawesome5/_animated.scss
-
20_src/desktop/scss/plugins/fontawesome5/_bordered-pulled.scss
-
20_src/desktop/scss/plugins/fontawesome5/_core.scss
-
6_src/desktop/scss/plugins/fontawesome5/_fixed-width.scss
-
1786_src/desktop/scss/plugins/fontawesome5/_icons.scss
-
23_src/desktop/scss/plugins/fontawesome5/_larger.scss
-
18_src/desktop/scss/plugins/fontawesome5/_list.scss
-
57_src/desktop/scss/plugins/fontawesome5/_mixins.scss
-
5_src/desktop/scss/plugins/fontawesome5/_screen-reader.scss
-
2062_src/desktop/scss/plugins/fontawesome5/_shims.scss
-
31_src/desktop/scss/plugins/fontawesome5/_stacked.scss
-
1800_src/desktop/scss/plugins/fontawesome5/_variables.scss
-
16_src/desktop/scss/plugins/fontawesome5/fontawesome.scss
-
22_src/desktop/scss/plugins/fontawesome5/light.scss
-
22_src/desktop/scss/plugins/fontawesome5/regular.scss
-
6_src/desktop/scss/plugins/fontawesome5/v4-shims.scss
-
5_src/mobile/scss/boot/_function.scss
-
56_src/mobile/scss/boot/_mixins.scss
-
30_src/mobile/scss/common/_utility.scss
-
10_src/mobile/scss/mobile.scss
-
220_src/mobile/scss/plugins/_toastr.scss
-
20_src/mobile/scss/plugins/fontawesome5/_animated.scss
-
20_src/mobile/scss/plugins/fontawesome5/_bordered-pulled.scss
-
20_src/mobile/scss/plugins/fontawesome5/_core.scss
-
6_src/mobile/scss/plugins/fontawesome5/_fixed-width.scss
-
1786_src/mobile/scss/plugins/fontawesome5/_icons.scss
-
23_src/mobile/scss/plugins/fontawesome5/_larger.scss
118
_src/admin/js/dx.all.js
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,285 @@ |
|||
/*! |
|||
* DevExtreme (dx.messages.en.js) |
|||
* Version: 19.1.4 |
|||
* Build date: Mon Jun 17 2019 |
|||
* |
|||
* Copyright (c) 2012 - 2019 Developer Express Inc. ALL RIGHTS RESERVED |
|||
* Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
|
|||
*/ |
|||
"use strict"; |
|||
|
|||
! function(root, factory) { |
|||
if ("function" === typeof define && define.amd) { |
|||
define(function(require) { |
|||
factory(require("devextreme/localization")) |
|||
}) |
|||
} else { |
|||
if ("object" === typeof module && module.exports) { |
|||
factory(require("devextreme/localization")) |
|||
} else { |
|||
factory(DevExpress.localization) |
|||
} |
|||
} |
|||
}(this, function(localization) { |
|||
localization.loadMessages({ |
|||
ko: { |
|||
Yes: "확인", |
|||
No: "아니오", |
|||
Cancel: "취소", |
|||
Clear: "초기화", |
|||
Done: "완료", |
|||
Loading: "불러오는중...", |
|||
Select: "선택...", |
|||
Search: "검색", |
|||
Back: "뒤로가기", |
|||
OK: "확인", |
|||
"dxCollectionWidget-noDataText": "No data to display", |
|||
"validation-required": "Required", |
|||
"validation-required-formatted": "{0} is required", |
|||
"validation-numeric": "Value must be a number", |
|||
"validation-numeric-formatted": "{0} must be a number", |
|||
"validation-range": "Value is out of range", |
|||
"validation-range-formatted": "{0} is out of range", |
|||
"validation-stringLength": "The length of the value is not correct", |
|||
"validation-stringLength-formatted": "The length of {0} is not correct", |
|||
"validation-custom": "Value is invalid", |
|||
"validation-custom-formatted": "{0} is invalid", |
|||
"validation-compare": "Values do not match", |
|||
"validation-compare-formatted": "{0} does not match", |
|||
"validation-pattern": "Value does not match pattern", |
|||
"validation-pattern-formatted": "{0} does not match pattern", |
|||
"validation-email": "Email is invalid", |
|||
"validation-email-formatted": "{0} is invalid", |
|||
"validation-mask": "Value is invalid", |
|||
"dxLookup-searchPlaceholder": "Minimum character number: {0}", |
|||
"dxList-pullingDownText": "Pull down to refresh...", |
|||
"dxList-pulledDownText": "Release to refresh...", |
|||
"dxList-refreshingText": "Refreshing...", |
|||
"dxList-pageLoadingText": "Loading...", |
|||
"dxList-nextButtonText": "More", |
|||
"dxList-selectAll": "Select All", |
|||
"dxListEditDecorator-delete": "Delete", |
|||
"dxListEditDecorator-more": "More", |
|||
"dxScrollView-pullingDownText": "Pull down to refresh...", |
|||
"dxScrollView-pulledDownText": "Release to refresh...", |
|||
"dxScrollView-refreshingText": "Refreshing...", |
|||
"dxScrollView-reachBottomText": "Loading...", |
|||
"dxDateBox-simulatedDataPickerTitleTime": "시간을 선택하세요", |
|||
"dxDateBox-simulatedDataPickerTitleDate": "날짜를 선택하세요", |
|||
"dxDateBox-simulatedDataPickerTitleDateTime": "날짜와 시간을 선택하세요.", |
|||
"dxDateBox-validation-datetime": "올바른 형식의 날짜나 시간 형식이 아닙니다.", |
|||
"dxFileUploader-selectFile": "Select file", |
|||
"dxFileUploader-dropFile": "or Drop file here", |
|||
"dxFileUploader-bytes": "bytes", |
|||
"dxFileUploader-kb": "kb", |
|||
"dxFileUploader-Mb": "Mb", |
|||
"dxFileUploader-Gb": "Gb", |
|||
"dxFileUploader-upload": "Upload", |
|||
"dxFileUploader-uploaded": "Uploaded", |
|||
"dxFileUploader-readyToUpload": "Ready to upload", |
|||
"dxFileUploader-uploadFailedMessage": "Upload failed", |
|||
"dxFileUploader-invalidFileExtension": "File type is not allowed", |
|||
"dxFileUploader-invalidMaxFileSize": "File is too large", |
|||
"dxFileUploader-invalidMinFileSize": "File is too small", |
|||
"dxRangeSlider-ariaFrom": "From", |
|||
"dxRangeSlider-ariaTill": "Till", |
|||
"dxSwitch-switchedOnText": "ON", |
|||
"dxSwitch-switchedOffText": "OFF", |
|||
"dxForm-optionalMark": "optional", |
|||
"dxForm-requiredMessage": "{0} is required", |
|||
"dxNumberBox-invalidValueMessage": "Value must be a number", |
|||
"dxDataGrid-columnChooserTitle": "Column Chooser", |
|||
"dxDataGrid-columnChooserEmptyText": "Drag a column here to hide it", |
|||
"dxDataGrid-groupContinuesMessage": "Continues on the next page", |
|||
"dxDataGrid-groupContinuedMessage": "Continued from the previous page", |
|||
"dxDataGrid-groupHeaderText": "Group by This Column", |
|||
"dxDataGrid-ungroupHeaderText": "Ungroup", |
|||
"dxDataGrid-ungroupAllText": "Ungroup All", |
|||
"dxDataGrid-editingEditRow": "Edit", |
|||
"dxDataGrid-editingSaveRowChanges": "Save", |
|||
"dxDataGrid-editingCancelRowChanges": "Cancel", |
|||
"dxDataGrid-editingDeleteRow": "Delete", |
|||
"dxDataGrid-editingUndeleteRow": "Undelete", |
|||
"dxDataGrid-editingConfirmDeleteMessage": "Are you sure you want to delete this record?", |
|||
"dxDataGrid-validationCancelChanges": "Cancel changes", |
|||
"dxDataGrid-groupPanelEmptyText": "Drag a column header here to group by that column", |
|||
"dxDataGrid-noDataText": "No data", |
|||
"dxDataGrid-searchPanelPlaceholder": "Search...", |
|||
"dxDataGrid-filterRowShowAllText": "(All)", |
|||
"dxDataGrid-filterRowResetOperationText": "Reset", |
|||
"dxDataGrid-filterRowOperationEquals": "Equals", |
|||
"dxDataGrid-filterRowOperationNotEquals": "Does not equal", |
|||
"dxDataGrid-filterRowOperationLess": "Less than", |
|||
"dxDataGrid-filterRowOperationLessOrEquals": "Less than or equal to", |
|||
"dxDataGrid-filterRowOperationGreater": "Greater than", |
|||
"dxDataGrid-filterRowOperationGreaterOrEquals": "Greater than or equal to", |
|||
"dxDataGrid-filterRowOperationStartsWith": "Starts with", |
|||
"dxDataGrid-filterRowOperationContains": "Contains", |
|||
"dxDataGrid-filterRowOperationNotContains": "Does not contain", |
|||
"dxDataGrid-filterRowOperationEndsWith": "Ends with", |
|||
"dxDataGrid-filterRowOperationBetween": "Between", |
|||
"dxDataGrid-filterRowOperationBetweenStartText": "Start", |
|||
"dxDataGrid-filterRowOperationBetweenEndText": "End", |
|||
"dxDataGrid-applyFilterText": "Apply filter", |
|||
"dxDataGrid-trueText": "true", |
|||
"dxDataGrid-falseText": "false", |
|||
"dxDataGrid-sortingAscendingText": "Sort Ascending", |
|||
"dxDataGrid-sortingDescendingText": "Sort Descending", |
|||
"dxDataGrid-sortingClearText": "Clear Sorting", |
|||
"dxDataGrid-editingSaveAllChanges": "Save changes", |
|||
"dxDataGrid-editingCancelAllChanges": "Discard changes", |
|||
"dxDataGrid-editingAddRow": "Add a row", |
|||
"dxDataGrid-summaryMin": "Min: {0}", |
|||
"dxDataGrid-summaryMinOtherColumn": "Min of {1} is {0}", |
|||
"dxDataGrid-summaryMax": "Max: {0}", |
|||
"dxDataGrid-summaryMaxOtherColumn": "Max of {1} is {0}", |
|||
"dxDataGrid-summaryAvg": "Avg: {0}", |
|||
"dxDataGrid-summaryAvgOtherColumn": "Avg of {1} is {0}", |
|||
"dxDataGrid-summarySum": "Sum: {0}", |
|||
"dxDataGrid-summarySumOtherColumn": "Sum of {1} is {0}", |
|||
"dxDataGrid-summaryCount": "Count: {0}", |
|||
"dxDataGrid-columnFixingFix": "Fix", |
|||
"dxDataGrid-columnFixingUnfix": "Unfix", |
|||
"dxDataGrid-columnFixingLeftPosition": "To the left", |
|||
"dxDataGrid-columnFixingRightPosition": "To the right", |
|||
"dxDataGrid-exportTo": "Export", |
|||
"dxDataGrid-exportToExcel": "Export to Excel file", |
|||
"dxDataGrid-excelFormat": "Excel file", |
|||
"dxDataGrid-selectedRows": "Selected rows", |
|||
"dxDataGrid-exportSelectedRows": "Export selected rows", |
|||
"dxDataGrid-exportAll": "Export all data", |
|||
"dxDataGrid-headerFilterEmptyValue": "(Blanks)", |
|||
"dxDataGrid-headerFilterOK": "OK", |
|||
"dxDataGrid-headerFilterCancel": "Cancel", |
|||
"dxDataGrid-ariaColumn": "Column", |
|||
"dxDataGrid-ariaValue": "Value", |
|||
"dxDataGrid-ariaFilterCell": "Filter cell", |
|||
"dxDataGrid-ariaCollapse": "Collapse", |
|||
"dxDataGrid-ariaExpand": "Expand", |
|||
"dxDataGrid-ariaDataGrid": "Data grid", |
|||
"dxDataGrid-ariaSearchInGrid": "Search in data grid", |
|||
"dxDataGrid-ariaSelectAll": "Select all", |
|||
"dxDataGrid-ariaSelectRow": "Select row", |
|||
"dxDataGrid-filterBuilderPopupTitle": "Filter Builder", |
|||
"dxDataGrid-filterPanelCreateFilter": "Create Filter", |
|||
"dxDataGrid-filterPanelClearFilter": "Clear", |
|||
"dxDataGrid-filterPanelFilterEnabledHint": "Enable the filter", |
|||
"dxTreeList-ariaTreeList": "Tree list", |
|||
"dxTreeList-editingAddRowToNode": "Add", |
|||
"dxPager-infoText": "Page {0} of {1} ({2} items)", |
|||
"dxPager-pagesCountText": "of", |
|||
"dxPivotGrid-grandTotal": "Grand Total", |
|||
"dxPivotGrid-total": "{0} Total", |
|||
"dxPivotGrid-fieldChooserTitle": "Field Chooser", |
|||
"dxPivotGrid-showFieldChooser": "Show Field Chooser", |
|||
"dxPivotGrid-expandAll": "Expand All", |
|||
"dxPivotGrid-collapseAll": "Collapse All", |
|||
"dxPivotGrid-sortColumnBySummary": 'Sort "{0}" by This Column', |
|||
"dxPivotGrid-sortRowBySummary": 'Sort "{0}" by This Row', |
|||
"dxPivotGrid-removeAllSorting": "Remove All Sorting", |
|||
"dxPivotGrid-dataNotAvailable": "N/A", |
|||
"dxPivotGrid-rowFields": "Row Fields", |
|||
"dxPivotGrid-columnFields": "Column Fields", |
|||
"dxPivotGrid-dataFields": "Data Fields", |
|||
"dxPivotGrid-filterFields": "Filter Fields", |
|||
"dxPivotGrid-allFields": "All Fields", |
|||
"dxPivotGrid-columnFieldArea": "Drop Column Fields Here", |
|||
"dxPivotGrid-dataFieldArea": "Drop Data Fields Here", |
|||
"dxPivotGrid-rowFieldArea": "Drop Row Fields Here", |
|||
"dxPivotGrid-filterFieldArea": "Drop Filter Fields Here", |
|||
"dxScheduler-editorLabelTitle": "Subject", |
|||
"dxScheduler-editorLabelStartDate": "Start Date", |
|||
"dxScheduler-editorLabelEndDate": "End Date", |
|||
"dxScheduler-editorLabelDescription": "Description", |
|||
"dxScheduler-editorLabelRecurrence": "Repeat", |
|||
"dxScheduler-openAppointment": "Open appointment", |
|||
"dxScheduler-recurrenceNever": "Never", |
|||
"dxScheduler-recurrenceDaily": "Daily", |
|||
"dxScheduler-recurrenceWeekly": "Weekly", |
|||
"dxScheduler-recurrenceMonthly": "Monthly", |
|||
"dxScheduler-recurrenceYearly": "Yearly", |
|||
"dxScheduler-recurrenceRepeatEvery": "Repeat Every", |
|||
"dxScheduler-recurrenceRepeatOn": "Repeat On", |
|||
"dxScheduler-recurrenceEnd": "End repeat", |
|||
"dxScheduler-recurrenceAfter": "After", |
|||
"dxScheduler-recurrenceOn": "On", |
|||
"dxScheduler-recurrenceRepeatDaily": "day(s)", |
|||
"dxScheduler-recurrenceRepeatWeekly": "week(s)", |
|||
"dxScheduler-recurrenceRepeatMonthly": "month(s)", |
|||
"dxScheduler-recurrenceRepeatYearly": "year(s)", |
|||
"dxScheduler-switcherDay": "Day", |
|||
"dxScheduler-switcherWeek": "Week", |
|||
"dxScheduler-switcherWorkWeek": "Work Week", |
|||
"dxScheduler-switcherMonth": "Month", |
|||
"dxScheduler-switcherAgenda": "Agenda", |
|||
"dxScheduler-switcherTimelineDay": "Timeline Day", |
|||
"dxScheduler-switcherTimelineWeek": "Timeline Week", |
|||
"dxScheduler-switcherTimelineWorkWeek": "Timeline Work Week", |
|||
"dxScheduler-switcherTimelineMonth": "Timeline Month", |
|||
"dxScheduler-recurrenceRepeatOnDate": "on date", |
|||
"dxScheduler-recurrenceRepeatCount": "occurrence(s)", |
|||
"dxScheduler-allDay": "All day", |
|||
"dxScheduler-confirmRecurrenceEditMessage": "Do you want to edit only this appointment or the whole series?", |
|||
"dxScheduler-confirmRecurrenceDeleteMessage": "Do you want to delete only this appointment or the whole series?", |
|||
"dxScheduler-confirmRecurrenceEditSeries": "Edit series", |
|||
"dxScheduler-confirmRecurrenceDeleteSeries": "Delete series", |
|||
"dxScheduler-confirmRecurrenceEditOccurrence": "Edit appointment", |
|||
"dxScheduler-confirmRecurrenceDeleteOccurrence": "Delete appointment", |
|||
"dxScheduler-noTimezoneTitle": "No timezone", |
|||
"dxScheduler-moreAppointments": "{0} more", |
|||
"dxCalendar-todayButtonText": "오늘", |
|||
"dxCalendar-ariaWidgetName": "달력", |
|||
"dxColorView-ariaRed": "Red", |
|||
"dxColorView-ariaGreen": "Green", |
|||
"dxColorView-ariaBlue": "Blue", |
|||
"dxColorView-ariaAlpha": "Transparency", |
|||
"dxColorView-ariaHex": "Color code", |
|||
"dxTagBox-selected": "{0} selected", |
|||
"dxTagBox-allSelected": "All selected ({0})", |
|||
"dxTagBox-moreSelected": "{0} more", |
|||
"vizExport-printingButtonText": "Print", |
|||
"vizExport-titleMenuText": "Exporting/Printing", |
|||
"vizExport-exportButtonText": "{0} file", |
|||
"dxFilterBuilder-and": "And", |
|||
"dxFilterBuilder-or": "Or", |
|||
"dxFilterBuilder-notAnd": "Not And", |
|||
"dxFilterBuilder-notOr": "Not Or", |
|||
"dxFilterBuilder-addCondition": "Add Condition", |
|||
"dxFilterBuilder-addGroup": "Add Group", |
|||
"dxFilterBuilder-enterValueText": "<enter a value>", |
|||
"dxFilterBuilder-filterOperationEquals": "Equals", |
|||
"dxFilterBuilder-filterOperationNotEquals": "Does not equal", |
|||
"dxFilterBuilder-filterOperationLess": "Is less than", |
|||
"dxFilterBuilder-filterOperationLessOrEquals": "Is less than or equal to", |
|||
"dxFilterBuilder-filterOperationGreater": "Is greater than", |
|||
"dxFilterBuilder-filterOperationGreaterOrEquals": "Is greater than or equal to", |
|||
"dxFilterBuilder-filterOperationStartsWith": "Starts with", |
|||
"dxFilterBuilder-filterOperationContains": "Contains", |
|||
"dxFilterBuilder-filterOperationNotContains": "Does not contain", |
|||
"dxFilterBuilder-filterOperationEndsWith": "Ends with", |
|||
"dxFilterBuilder-filterOperationIsBlank": "Is blank", |
|||
"dxFilterBuilder-filterOperationIsNotBlank": "Is not blank", |
|||
"dxFilterBuilder-filterOperationBetween": "Is between", |
|||
"dxFilterBuilder-filterOperationAnyOf": "Is any of", |
|||
"dxFilterBuilder-filterOperationNoneOf": "Is none of", |
|||
"dxHtmlEditor-dialogColorCaption": "Change Font Color", |
|||
"dxHtmlEditor-dialogBackgroundCaption": "Change Background Color", |
|||
"dxHtmlEditor-dialogLinkCaption": "Add Link", |
|||
"dxHtmlEditor-dialogLinkUrlField": "URL", |
|||
"dxHtmlEditor-dialogLinkTextField": "Text", |
|||
"dxHtmlEditor-dialogLinkTargetField": "Open link in new window", |
|||
"dxHtmlEditor-dialogImageCaption": "Add Image", |
|||
"dxHtmlEditor-dialogImageUrlField": "URL", |
|||
"dxHtmlEditor-dialogImageAltField": "Alternate text", |
|||
"dxHtmlEditor-dialogImageWidthField": "Width (px)", |
|||
"dxHtmlEditor-dialogImageHeightField": "Height (px)", |
|||
"dxHtmlEditor-heading": "Heading", |
|||
"dxHtmlEditor-normalText": "Normal text", |
|||
"dxFileManager-errorNoAccess": "Access denied. The operation cannot be completed.", |
|||
"dxFileManager-errorDirectoryExistsFormat": "Directory '{0}' already exists.", |
|||
"dxFileManager-errorFileExistsFormat": "File '{0}' already exists.", |
|||
"dxFileManager-errorFileNotFoundFormat": "File '{0}' not found", |
|||
"dxFileManager-errorDefault": "Unspecified error." |
|||
} |
|||
}) |
|||
}); |
@ -1,861 +0,0 @@ |
|||
/*! |
|||
* v0.1.5 |
|||
* Copyright (c) 2014 First Opinion |
|||
* formatter.js is open sourced under the MIT license. |
|||
* |
|||
* thanks to digitalBush/jquery.maskedinput for some of the trickier |
|||
* keycode handling |
|||
*/ |
|||
|
|||
//
|
|||
// Uses CommonJS, AMD or browser globals to create a jQuery plugin.
|
|||
//
|
|||
// Similar to jqueryPlugin.js but also tries to
|
|||
// work in a CommonJS environment.
|
|||
// It is unlikely jQuery will run in a CommonJS
|
|||
// environment. See jqueryPlugin.js if you do
|
|||
// not want to add the extra CommonJS detection.
|
|||
//
|
|||
(function (root, factory) { |
|||
if (typeof define === 'function' && define.amd) { |
|||
// AMD. Register as an anonymous module.
|
|||
define(['jQuery'], factory); |
|||
} else if (typeof exports === 'object') { |
|||
factory(require('jQuery')); |
|||
} else { |
|||
// Browser globals
|
|||
factory(root.jQuery); |
|||
} |
|||
}(this, function (jQuery) { |
|||
|
|||
|
|||
/* |
|||
* pattern.js |
|||
* |
|||
* Utilities to parse str pattern and return info |
|||
* |
|||
*/ |
|||
var pattern = function () { |
|||
// Define module
|
|||
var pattern = {}; |
|||
// Match information
|
|||
var DELIM_SIZE = 4; |
|||
// Our regex used to parse
|
|||
var regexp = new RegExp('{{([^}]+)}}', 'g'); |
|||
//
|
|||
// Helper method to parse pattern str
|
|||
//
|
|||
var getMatches = function (pattern) { |
|||
// Populate array of matches
|
|||
var matches = [], match; |
|||
while (match = regexp.exec(pattern)) { |
|||
matches.push(match); |
|||
} |
|||
return matches; |
|||
}; |
|||
//
|
|||
// Create an object holding all formatted characters
|
|||
// with corresponding positions
|
|||
//
|
|||
pattern.parse = function (pattern) { |
|||
// Our obj to populate
|
|||
var info = { |
|||
inpts: {}, |
|||
chars: {} |
|||
}; |
|||
// Pattern information
|
|||
var matches = getMatches(pattern), pLength = pattern.length; |
|||
// Counters
|
|||
var mCount = 0, iCount = 0, i = 0; |
|||
// Add inpts, move to end of match, and process
|
|||
var processMatch = function (val) { |
|||
var valLength = val.length; |
|||
for (var j = 0; j < valLength; j++) { |
|||
info.inpts[iCount] = val.charAt(j); |
|||
iCount++; |
|||
} |
|||
mCount++; |
|||
i += val.length + DELIM_SIZE - 1; |
|||
}; |
|||
// Process match or add chars
|
|||
for (i; i < pLength; i++) { |
|||
if (mCount < matches.length && i === matches[mCount].index) { |
|||
processMatch(matches[mCount][1]); |
|||
} else { |
|||
info.chars[i - mCount * DELIM_SIZE] = pattern.charAt(i); |
|||
} |
|||
} |
|||
// Set mLength and return
|
|||
info.mLength = i - mCount * DELIM_SIZE; |
|||
return info; |
|||
}; |
|||
// Expose
|
|||
return pattern; |
|||
}(); |
|||
/* |
|||
* utils.js |
|||
* |
|||
* Independent helper methods (cross browser, etc..) |
|||
* |
|||
*/ |
|||
var utils = function () { |
|||
// Define module
|
|||
var utils = {}; |
|||
// Useragent info for keycode handling
|
|||
var uAgent = typeof navigator !== 'undefined' ? navigator.userAgent : null; |
|||
//
|
|||
// Shallow copy properties from n objects to destObj
|
|||
//
|
|||
utils.extend = function (destObj) { |
|||
for (var i = 1; i < arguments.length; i++) { |
|||
for (var key in arguments[i]) { |
|||
destObj[key] = arguments[i][key]; |
|||
} |
|||
} |
|||
return destObj; |
|||
}; |
|||
//
|
|||
// Add a given character to a string at a defined pos
|
|||
//
|
|||
utils.addChars = function (str, chars, pos) { |
|||
return str.substr(0, pos) + chars + str.substr(pos, str.length); |
|||
}; |
|||
//
|
|||
// Remove a span of characters
|
|||
//
|
|||
utils.removeChars = function (str, start, end) { |
|||
return str.substr(0, start) + str.substr(end, str.length); |
|||
}; |
|||
//
|
|||
// Return true/false is num false between bounds
|
|||
//
|
|||
utils.isBetween = function (num, bounds) { |
|||
bounds.sort(function (a, b) { |
|||
return a - b; |
|||
}); |
|||
return num > bounds[0] && num < bounds[1]; |
|||
}; |
|||
//
|
|||
// Helper method for cross browser event listeners
|
|||
//
|
|||
utils.addListener = function (el, evt, handler) { |
|||
return typeof el.addEventListener !== 'undefined' ? el.addEventListener(evt, handler, false) : el.attachEvent('on' + evt, handler); |
|||
}; |
|||
//
|
|||
// Helper method for cross browser implementation of preventDefault
|
|||
//
|
|||
utils.preventDefault = function (evt) { |
|||
return evt.preventDefault ? evt.preventDefault() : evt.returnValue = false; |
|||
}; |
|||
//
|
|||
// Helper method for cross browser implementation for grabbing
|
|||
// clipboard data
|
|||
//
|
|||
utils.getClip = function (evt) { |
|||
if (evt.clipboardData) { |
|||
return evt.clipboardData.getData('Text'); |
|||
} |
|||
if (window.clipboardData) { |
|||
return window.clipboardData.getData('Text'); |
|||
} |
|||
}; |
|||
//
|
|||
// Loop over object and checking for matching properties
|
|||
//
|
|||
utils.getMatchingKey = function (which, keyCode, keys) { |
|||
// Loop over and return if matched.
|
|||
for (var k in keys) { |
|||
var key = keys[k]; |
|||
if (which === key.which && keyCode === key.keyCode) { |
|||
return k; |
|||
} |
|||
} |
|||
}; |
|||
//
|
|||
// Returns true/false if k is a del keyDown
|
|||
//
|
|||
utils.isDelKeyDown = function (which, keyCode) { |
|||
var keys = { |
|||
'backspace': { |
|||
'which': 8, |
|||
'keyCode': 8 |
|||
}, |
|||
'delete': { |
|||
'which': 46, |
|||
'keyCode': 46 |
|||
} |
|||
}; |
|||
return utils.getMatchingKey(which, keyCode, keys); |
|||
}; |
|||
//
|
|||
// Returns true/false if k is a del keyPress
|
|||
//
|
|||
utils.isDelKeyPress = function (which, keyCode) { |
|||
var keys = { |
|||
'backspace': { |
|||
'which': 8, |
|||
'keyCode': 8, |
|||
'shiftKey': false |
|||
}, |
|||
'delete': { |
|||
'which': 0, |
|||
'keyCode': 46 |
|||
} |
|||
}; |
|||
return utils.getMatchingKey(which, keyCode, keys); |
|||
}; |
|||
// //
|
|||
// // Determine if keydown relates to specialKey
|
|||
// //
|
|||
// utils.isSpecialKeyDown = function (which, keyCode) {
|
|||
// var keys = {
|
|||
// 'tab': { 'which': 9, 'keyCode': 9 },
|
|||
// 'enter': { 'which': 13, 'keyCode': 13 },
|
|||
// 'end': { 'which': 35, 'keyCode': 35 },
|
|||
// 'home': { 'which': 36, 'keyCode': 36 },
|
|||
// 'leftarrow': { 'which': 37, 'keyCode': 37 },
|
|||
// 'uparrow': { 'which': 38, 'keyCode': 38 },
|
|||
// 'rightarrow': { 'which': 39, 'keyCode': 39 },
|
|||
// 'downarrow': { 'which': 40, 'keyCode': 40 },
|
|||
// 'F5': { 'which': 116, 'keyCode': 116 }
|
|||
// };
|
|||
// return utils.getMatchingKey(which, keyCode, keys);
|
|||
// };
|
|||
//
|
|||
// Determine if keypress relates to specialKey
|
|||
//
|
|||
utils.isSpecialKeyPress = function (which, keyCode) { |
|||
var keys = { |
|||
'tab': { |
|||
'which': 0, |
|||
'keyCode': 9 |
|||
}, |
|||
'enter': { |
|||
'which': 13, |
|||
'keyCode': 13 |
|||
}, |
|||
'end': { |
|||
'which': 0, |
|||
'keyCode': 35 |
|||
}, |
|||
'home': { |
|||
'which': 0, |
|||
'keyCode': 36 |
|||
}, |
|||
'leftarrow': { |
|||
'which': 0, |
|||
'keyCode': 37 |
|||
}, |
|||
'uparrow': { |
|||
'which': 0, |
|||
'keyCode': 38 |
|||
}, |
|||
'rightarrow': { |
|||
'which': 0, |
|||
'keyCode': 39 |
|||
}, |
|||
'downarrow': { |
|||
'which': 0, |
|||
'keyCode': 40 |
|||
}, |
|||
'F5': { |
|||
'which': 116, |
|||
'keyCode': 116 |
|||
} |
|||
}; |
|||
return utils.getMatchingKey(which, keyCode, keys); |
|||
}; |
|||
//
|
|||
// Returns true/false if modifier key is held down
|
|||
//
|
|||
utils.isModifier = function (evt) { |
|||
return evt.ctrlKey || evt.altKey || evt.metaKey; |
|||
}; |
|||
//
|
|||
// Iterates over each property of object or array.
|
|||
//
|
|||
utils.forEach = function (collection, callback, thisArg) { |
|||
if (collection.hasOwnProperty('length')) { |
|||
for (var index = 0, len = collection.length; index < len; index++) { |
|||
if (callback.call(thisArg, collection[index], index, collection) === false) { |
|||
break; |
|||
} |
|||
} |
|||
} else { |
|||
for (var key in collection) { |
|||
if (collection.hasOwnProperty(key)) { |
|||
if (callback.call(thisArg, collection[key], key, collection) === false) { |
|||
break; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
}; |
|||
// Expose
|
|||
return utils; |
|||
}(); |
|||
/* |
|||
* pattern-matcher.js |
|||
* |
|||
* Parses a pattern specification and determines appropriate pattern for an |
|||
* input string |
|||
* |
|||
*/ |
|||
var patternMatcher = function (pattern, utils) { |
|||
//
|
|||
// Parse a matcher string into a RegExp. Accepts valid regular
|
|||
// expressions and the catchall '*'.
|
|||
// @private
|
|||
//
|
|||
var parseMatcher = function (matcher) { |
|||
if (matcher === '*') { |
|||
return /.*/; |
|||
} |
|||
return new RegExp(matcher); |
|||
}; |
|||
//
|
|||
// Parse a pattern spec and return a function that returns a pattern
|
|||
// based on user input. The first matching pattern will be chosen.
|
|||
// Pattern spec format:
|
|||
// Array [
|
|||
// Object: { Matcher(RegExp String) : Pattern(Pattern String) },
|
|||
// ...
|
|||
// ]
|
|||
function patternMatcher(patternSpec) { |
|||
var matchers = [], patterns = []; |
|||
// Iterate over each pattern in order.
|
|||
utils.forEach(patternSpec, function (patternMatcher) { |
|||
// Process single property object to obtain pattern and matcher.
|
|||
utils.forEach(patternMatcher, function (patternStr, matcherStr) { |
|||
var parsedPattern = pattern.parse(patternStr), regExpMatcher = parseMatcher(matcherStr); |
|||
matchers.push(regExpMatcher); |
|||
patterns.push(parsedPattern); |
|||
// Stop after one iteration.
|
|||
return false; |
|||
}); |
|||
}); |
|||
var getPattern = function (input) { |
|||
var matchedIndex; |
|||
utils.forEach(matchers, function (matcher, index) { |
|||
if (matcher.test(input)) { |
|||
matchedIndex = index; |
|||
return false; |
|||
} |
|||
}); |
|||
return matchedIndex === undefined ? null : patterns[matchedIndex]; |
|||
}; |
|||
return { |
|||
getPattern: getPattern, |
|||
patterns: patterns, |
|||
matchers: matchers |
|||
}; |
|||
} |
|||
// Expose
|
|||
return patternMatcher; |
|||
}(pattern, utils); |
|||
/* |
|||
* inpt-sel.js |
|||
* |
|||
* Cross browser implementation to get and set input selections |
|||
* |
|||
*/ |
|||
var inptSel = function () { |
|||
// Define module
|
|||
var inptSel = {}; |
|||
//
|
|||
// Get begin and end positions of selected input. Return 0's
|
|||
// if there is no selectiion data
|
|||
//
|
|||
inptSel.get = function (el) { |
|||
// If normal browser return with result
|
|||
if (typeof el.selectionStart === 'number') { |
|||
return { |
|||
begin: el.selectionStart, |
|||
end: el.selectionEnd |
|||
}; |
|||
} |
|||
// Uh-Oh. We must be IE. Fun with TextRange!!
|
|||
var range = document.selection.createRange(); |
|||
// Determine if there is a selection
|
|||
if (range && range.parentElement() === el) { |
|||
var inputRange = el.createTextRange(), endRange = el.createTextRange(), length = el.value.length; |
|||
// Create a working TextRange for the input selection
|
|||
inputRange.moveToBookmark(range.getBookmark()); |
|||
// Move endRange begin pos to end pos (hence endRange)
|
|||
endRange.collapse(false); |
|||
// If we are at the very end of the input, begin and end
|
|||
// must both be the length of the el.value
|
|||
if (inputRange.compareEndPoints('StartToEnd', endRange) > -1) { |
|||
return { |
|||
begin: length, |
|||
end: length |
|||
}; |
|||
} |
|||
// Note: moveStart usually returns the units moved, which
|
|||
// one may think is -length, however, it will stop when it
|
|||
// gets to the begin of the range, thus giving us the
|
|||
// negative value of the pos.
|
|||
return { |
|||
begin: -inputRange.moveStart('character', -length), |
|||
end: -inputRange.moveEnd('character', -length) |
|||
}; |
|||
} |
|||
//Return 0's on no selection data
|
|||
return { |
|||
begin: 0, |
|||
end: 0 |
|||
}; |
|||
}; |
|||
//
|
|||
// Set the caret position at a specified location
|
|||
//
|
|||
inptSel.set = function (el, pos) { |
|||
// Normalize pos
|
|||
if (typeof pos !== 'object') { |
|||
pos = { |
|||
begin: pos, |
|||
end: pos |
|||
}; |
|||
} |
|||
// If normal browser
|
|||
if (el.setSelectionRange) { |
|||
el.focus(); |
|||
el.setSelectionRange(pos.begin, pos.end); |
|||
} else if (el.createTextRange) { |
|||
var range = el.createTextRange(); |
|||
range.collapse(true); |
|||
range.moveEnd('character', pos.end); |
|||
range.moveStart('character', pos.begin); |
|||
range.select(); |
|||
} |
|||
}; |
|||
// Expose
|
|||
return inptSel; |
|||
}(); |
|||
/* |
|||
* formatter.js |
|||
* |
|||
* Class used to format input based on passed pattern |
|||
* |
|||
*/ |
|||
var formatter = function (patternMatcher, inptSel, utils) { |
|||
// Defaults
|
|||
var defaults = { |
|||
persistent: false, |
|||
repeat: false, |
|||
placeholder: ' ' |
|||
}; |
|||
// Regexs for input validation
|
|||
var inptRegs = { |
|||
'9': /[0-9]/, |
|||
'a': /[A-Za-z]/, |
|||
'*': /[A-Za-z0-9]/ |
|||
}; |
|||
//
|
|||
// Class Constructor - Called with new Formatter(el, opts)
|
|||
// Responsible for setting up required instance variables, and
|
|||
// attaching the event listener to the element.
|
|||
//
|
|||
function Formatter(el, opts) { |
|||
// Cache this
|
|||
var self = this; |
|||
// Make sure we have an element. Make accesible to instance
|
|||
self.el = el; |
|||
if (!self.el) { |
|||
throw new TypeError('Must provide an existing element'); |
|||
} |
|||
// Merge opts with defaults
|
|||
self.opts = utils.extend({}, defaults, opts); |
|||
// 1 pattern is special case
|
|||
if (typeof self.opts.pattern !== 'undefined') { |
|||
self.opts.patterns = self._specFromSinglePattern(self.opts.pattern); |
|||
delete self.opts.pattern; |
|||
} |
|||
// Make sure we have valid opts
|
|||
if (typeof self.opts.patterns === 'undefined') { |
|||
throw new TypeError('Must provide a pattern or array of patterns'); |
|||
} |
|||
self.patternMatcher = patternMatcher(self.opts.patterns); |
|||
// Upate pattern with initial value
|
|||
self._updatePattern(); |
|||
// Init values
|
|||
self.hldrs = {}; |
|||
self.focus = 0; |
|||
// Add Listeners
|
|||
utils.addListener(self.el, 'keydown', function (evt) { |
|||
self._keyDown(evt); |
|||
}); |
|||
utils.addListener(self.el, 'keypress', function (evt) { |
|||
self._keyPress(evt); |
|||
}); |
|||
utils.addListener(self.el, 'paste', function (evt) { |
|||
self._paste(evt); |
|||
}); |
|||
// Persistence
|
|||
if (self.opts.persistent) { |
|||
// Format on start
|
|||
self._processKey('', false); |
|||
self.el.blur(); |
|||
// Add Listeners
|
|||
utils.addListener(self.el, 'focus', function (evt) { |
|||
self._focus(evt); |
|||
}); |
|||
utils.addListener(self.el, 'click', function (evt) { |
|||
self._focus(evt); |
|||
}); |
|||
utils.addListener(self.el, 'touchstart', function (evt) { |
|||
self._focus(evt); |
|||
}); |
|||
} |
|||
} |
|||
//
|
|||
// @public
|
|||
// Add new char
|
|||
//
|
|||
Formatter.addInptType = function (chr, reg) { |
|||
inptRegs[chr] = reg; |
|||
}; |
|||
//
|
|||
// @public
|
|||
// Apply the given pattern to the current input without moving caret.
|
|||
//
|
|||
Formatter.prototype.resetPattern = function (str) { |
|||
// Update opts to hold new pattern
|
|||
this.opts.patterns = str ? this._specFromSinglePattern(str) : this.opts.patterns; |
|||
// Get current state
|
|||
this.sel = inptSel.get(this.el); |
|||
this.val = this.el.value; |
|||
// Init values
|
|||
this.delta = 0; |
|||
// Remove all formatted chars from val
|
|||
this._removeChars(); |
|||
this.patternMatcher = patternMatcher(this.opts.patterns); |
|||
// Update pattern
|
|||
var newPattern = this.patternMatcher.getPattern(this.val); |
|||
this.mLength = newPattern.mLength; |
|||
this.chars = newPattern.chars; |
|||
this.inpts = newPattern.inpts; |
|||
// Format on start
|
|||
this._processKey('', false, true); |
|||
}; |
|||
//
|
|||
// @private
|
|||
// Determine correct format pattern based on input val
|
|||
//
|
|||
Formatter.prototype._updatePattern = function () { |
|||
// Determine appropriate pattern
|
|||
var newPattern = this.patternMatcher.getPattern(this.val); |
|||
// Only update the pattern if there is an appropriate pattern for the value.
|
|||
// Otherwise, leave the current pattern (and likely delete the latest character.)
|
|||
if (newPattern) { |
|||
// Get info about the given pattern
|
|||
this.mLength = newPattern.mLength; |
|||
this.chars = newPattern.chars; |
|||
this.inpts = newPattern.inpts; |
|||
} |
|||
}; |
|||
//
|
|||
// @private
|
|||
// Handler called on all keyDown strokes. All keys trigger
|
|||
// this handler. Only process delete keys.
|
|||
//
|
|||
Formatter.prototype._keyDown = function (evt) { |
|||
// The first thing we need is the character code
|
|||
var k = evt.which || evt.keyCode; |
|||
// If delete key
|
|||
if (k && utils.isDelKeyDown(evt.which, evt.keyCode)) { |
|||
// Process the keyCode and prevent default
|
|||
this._processKey(null, k); |
|||
return utils.preventDefault(evt); |
|||
} |
|||
}; |
|||
//
|
|||
// @private
|
|||
// Handler called on all keyPress strokes. Only processes
|
|||
// character keys (as long as no modifier key is in use).
|
|||
//
|
|||
Formatter.prototype._keyPress = function (evt) { |
|||
// The first thing we need is the character code
|
|||
var k, isSpecial; |
|||
// Mozilla will trigger on special keys and assign the the value 0
|
|||
// We want to use that 0 rather than the keyCode it assigns.
|
|||
k = evt.which || evt.keyCode; |
|||
isSpecial = utils.isSpecialKeyPress(evt.which, evt.keyCode); |
|||
// Process the keyCode and prevent default
|
|||
if (!utils.isDelKeyPress(evt.which, evt.keyCode) && !isSpecial && !utils.isModifier(evt)) { |
|||
this._processKey(String.fromCharCode(k), false); |
|||
return utils.preventDefault(evt); |
|||
} |
|||
}; |
|||
//
|
|||
// @private
|
|||
// Handler called on paste event.
|
|||
//
|
|||
Formatter.prototype._paste = function (evt) { |
|||
// Process the clipboard paste and prevent default
|
|||
this._processKey(utils.getClip(evt), false); |
|||
return utils.preventDefault(evt); |
|||
}; |
|||
//
|
|||
// @private
|
|||
// Handle called on focus event.
|
|||
//
|
|||
Formatter.prototype._focus = function () { |
|||
// Wrapped in timeout so that we can grab input selection
|
|||
var self = this; |
|||
setTimeout(function () { |
|||
// Grab selection
|
|||
var selection = inptSel.get(self.el); |
|||
// Char check
|
|||
var isAfterStart = selection.end > self.focus, isFirstChar = selection.end === 0; |
|||
// If clicked in front of start, refocus to start
|
|||
if (isAfterStart || isFirstChar) { |
|||
inptSel.set(self.el, self.focus); |
|||
} |
|||
}, 0); |
|||
}; |
|||
//
|
|||
// @private
|
|||
// Using the provided key information, alter el value.
|
|||
//
|
|||
Formatter.prototype._processKey = function (chars, delKey, ignoreCaret) { |
|||
// Get current state
|
|||
this.sel = inptSel.get(this.el); |
|||
this.val = this.el.value; |
|||
// Init values
|
|||
this.delta = 0; |
|||
// If chars were highlighted, we need to remove them
|
|||
if (this.sel.begin !== this.sel.end) { |
|||
this.delta = -1 * Math.abs(this.sel.begin - this.sel.end); |
|||
this.val = utils.removeChars(this.val, this.sel.begin, this.sel.end); |
|||
} else if (delKey && delKey === 46) { |
|||
this._delete(); |
|||
} else if (delKey && this.sel.begin - 1 >= 0) { |
|||
// Always have a delta of at least -1 for the character being deleted.
|
|||
this.val = utils.removeChars(this.val, this.sel.end - 1, this.sel.end); |
|||
this.delta -= 1; |
|||
} else if (delKey) { |
|||
return true; |
|||
} |
|||
// If the key is not a del key, it should convert to a str
|
|||
if (!delKey) { |
|||
// Add char at position and increment delta
|
|||
this.val = utils.addChars(this.val, chars, this.sel.begin); |
|||
this.delta += chars.length; |
|||
} |
|||
// Format el.value (also handles updating caret position)
|
|||
this._formatValue(ignoreCaret); |
|||
}; |
|||
//
|
|||
// @private
|
|||
// Deletes the character in front of it
|
|||
//
|
|||
Formatter.prototype._delete = function () { |
|||
// Adjust focus to make sure its not on a formatted char
|
|||
while (this.chars[this.sel.begin]) { |
|||
this._nextPos(); |
|||
} |
|||
// As long as we are not at the end
|
|||
if (this.sel.begin < this.val.length) { |
|||
// We will simulate a delete by moving the caret to the next char
|
|||
// and then deleting
|
|||
this._nextPos(); |
|||
this.val = utils.removeChars(this.val, this.sel.end - 1, this.sel.end); |
|||
this.delta = -1; |
|||
} |
|||
}; |
|||
//
|
|||
// @private
|
|||
// Quick helper method to move the caret to the next pos
|
|||
//
|
|||
Formatter.prototype._nextPos = function () { |
|||
this.sel.end++; |
|||
this.sel.begin++; |
|||
}; |
|||
//
|
|||
// @private
|
|||
// Alter element value to display characters matching the provided
|
|||
// instance pattern. Also responsible for updating
|
|||
//
|
|||
Formatter.prototype._formatValue = function (ignoreCaret) { |
|||
// Set caret pos
|
|||
this.newPos = this.sel.end + this.delta; |
|||
// Remove all formatted chars from val
|
|||
this._removeChars(); |
|||
// Switch to first matching pattern based on val
|
|||
this._updatePattern(); |
|||
// Validate inputs
|
|||
this._validateInpts(); |
|||
// Add formatted characters
|
|||
this._addChars(); |
|||
// Set value and adhere to maxLength
|
|||
this.el.value = this.val.substr(0, this.mLength); |
|||
// Set new caret position
|
|||
if (typeof ignoreCaret === 'undefined' || ignoreCaret === false) { |
|||
inptSel.set(this.el, this.newPos); |
|||
} |
|||
}; |
|||
//
|
|||
// @private
|
|||
// Remove all formatted before and after a specified pos
|
|||
//
|
|||
Formatter.prototype._removeChars = function () { |
|||
// Delta shouldn't include placeholders
|
|||
if (this.sel.end > this.focus) { |
|||
this.delta += this.sel.end - this.focus; |
|||
} |
|||
// Account for shifts during removal
|
|||
var shift = 0; |
|||
// Loop through all possible char positions
|
|||
for (var i = 0; i <= this.mLength; i++) { |
|||
// Get transformed position
|
|||
var curChar = this.chars[i], curHldr = this.hldrs[i], pos = i + shift, val; |
|||
// If after selection we need to account for delta
|
|||
pos = i >= this.sel.begin ? pos + this.delta : pos; |
|||
val = this.val.charAt(pos); |
|||
// Remove char and account for shift
|
|||
if (curChar && curChar === val || curHldr && curHldr === val) { |
|||
this.val = utils.removeChars(this.val, pos, pos + 1); |
|||
shift--; |
|||
} |
|||
} |
|||
// All hldrs should be removed now
|
|||
this.hldrs = {}; |
|||
// Set focus to last character
|
|||
this.focus = this.val.length; |
|||
}; |
|||
//
|
|||
// @private
|
|||
// Make sure all inpts are valid, else remove and update delta
|
|||
//
|
|||
Formatter.prototype._validateInpts = function () { |
|||
// Loop over each char and validate
|
|||
for (var i = 0; i < this.val.length; i++) { |
|||
// Get char inpt type
|
|||
var inptType = this.inpts[i]; |
|||
// Checks
|
|||
var isBadType = !inptRegs[inptType], isInvalid = !isBadType && !inptRegs[inptType].test(this.val.charAt(i)), inBounds = this.inpts[i]; |
|||
// Remove if incorrect and inbounds
|
|||
if ((isBadType || isInvalid) && inBounds) { |
|||
this.val = utils.removeChars(this.val, i, i + 1); |
|||
this.focusStart--; |
|||
this.newPos--; |
|||
this.delta--; |
|||
i--; |
|||
} |
|||
} |
|||
}; |
|||
//
|
|||
// @private
|
|||
// Loop over val and add formatted chars as necessary
|
|||
//
|
|||
Formatter.prototype._addChars = function () { |
|||
if (this.opts.persistent) { |
|||
// Loop over all possible characters
|
|||
for (var i = 0; i <= this.mLength; i++) { |
|||
if (!this.val.charAt(i)) { |
|||
// Add placeholder at pos
|
|||
this.val = utils.addChars(this.val, this.opts.placeholder, i); |
|||
this.hldrs[i] = this.opts.placeholder; |
|||
} |
|||
this._addChar(i); |
|||
} |
|||
// Adjust focus to make sure its not on a formatted char
|
|||
while (this.chars[this.focus]) { |
|||
this.focus++; |
|||
} |
|||
} else { |
|||
// Avoid caching val.length, as they may change in _addChar.
|
|||
for (var j = 0; j <= this.val.length; j++) { |
|||
// When moving backwards there are some race conditions where we
|
|||
// dont want to add the character
|
|||
if (this.delta <= 0 && j === this.focus) { |
|||
return true; |
|||
} |
|||
// Place character in current position of the formatted string.
|
|||
this._addChar(j); |
|||
} |
|||
} |
|||
}; |
|||
//
|
|||
// @private
|
|||
// Add formattted char at position
|
|||
//
|
|||
Formatter.prototype._addChar = function (i) { |
|||
// If char exists at position
|
|||
var chr = this.chars[i]; |
|||
if (!chr) { |
|||
return true; |
|||
} |
|||
// If chars are added in between the old pos and new pos
|
|||
// we need to increment pos and delta
|
|||
if (utils.isBetween(i, [ |
|||
this.sel.begin - 1, |
|||
this.newPos + 1 |
|||
])) { |
|||
this.newPos++; |
|||
this.delta++; |
|||
} |
|||
// If character added before focus, incr
|
|||
if (i <= this.focus) { |
|||
this.focus++; |
|||
} |
|||
// Updateholder
|
|||
if (this.hldrs[i]) { |
|||
delete this.hldrs[i]; |
|||
this.hldrs[i + 1] = this.opts.placeholder; |
|||
} |
|||
// Update value
|
|||
this.val = utils.addChars(this.val, chr, i); |
|||
}; |
|||
//
|
|||
// @private
|
|||
// Create a patternSpec for passing into patternMatcher that
|
|||
// has exactly one catch all pattern.
|
|||
//
|
|||
Formatter.prototype._specFromSinglePattern = function (patternStr) { |
|||
return [{ '*': patternStr }]; |
|||
}; |
|||
// Expose
|
|||
return Formatter; |
|||
}(patternMatcher, inptSel, utils); |
|||
|
|||
|
|||
|
|||
// A really lightweight plugin wrapper around the constructor,
|
|||
// preventing against multiple instantiations
|
|||
var pluginName = 'formatter'; |
|||
|
|||
$.fn[pluginName] = function (options) { |
|||
|
|||
// Initiate plugin if options passed
|
|||
if (typeof options == 'object') { |
|||
this.each(function () { |
|||
if (!$.data(this, 'plugin_' + pluginName)) { |
|||
$.data(this, 'plugin_' + pluginName, |
|||
new formatter(this, options)); |
|||
} |
|||
}); |
|||
} |
|||
|
|||
// Add resetPattern method to plugin
|
|||
this.resetPattern = function (str) { |
|||
this.each(function () { |
|||
var formatted = $.data(this, 'plugin_' + pluginName); |
|||
// resetPattern for instance
|
|||
if (formatted) { formatted.resetPattern(str); } |
|||
}); |
|||
// Chainable please
|
|||
return this; |
|||
}; |
|||
|
|||
// Chainable please
|
|||
return this; |
|||
}; |
|||
|
|||
$.fn[pluginName].addInptType = function (chr, regexp) { |
|||
formatter.addInptType(chr, regexp); |
|||
}; |
|||
|
|||
|
|||
})); |
@ -0,0 +1,212 @@ |
|||
/** |
|||
* GRID Element 생성자 |
|||
* @param element |
|||
* @param options |
|||
* @constructor |
|||
*/ |
|||
function GRID (element, addOptions) { |
|||
this.element = element; |
|||
var self = this; |
|||
this.defaultOptions = { |
|||
key : null, |
|||
cacheEnabled: false, |
|||
statusField : { |
|||
key : '', |
|||
values : [] |
|||
}, |
|||
colorField : [], |
|||
loadPanel: { enabled: true }, |
|||
remoteOperations: { |
|||
groupPaging: true, |
|||
sorting:true, |
|||
paging:true |
|||
}, |
|||
paging: { |
|||
pageSize: 30, |
|||
showNavigationButtons: true |
|||
}, |
|||
selection : { |
|||
mode: 'single', |
|||
selectAllMode : 'page' |
|||
}, |
|||
scrolling: { |
|||
showScrollbar: 'onHover' |
|||
}, |
|||
focusedRowEnabled: true, |
|||
columns: null, |
|||
dataSource: null, |
|||
showRowLines:true, |
|||
showColumnLines:true, |
|||
allowColumnResizing: true, |
|||
noDataText: '검색된 데이타가 없습니다.', |
|||
allowColumnReordering: true, |
|||
columnResizingMode: 'widget', |
|||
editing: { |
|||
allowUpdating: false, |
|||
allowAdding: false, |
|||
allowDeleting: false |
|||
}, |
|||
onRowClick: function(e) { |
|||
self.OnRowSingleClick(e.data); |
|||
}, |
|||
onRowDblClick: function(e) { |
|||
self.OnRowDoubleClick(e.data); |
|||
}, |
|||
onRowPrepared: function(e) { |
|||
if(e.rowType == 'data') { |
|||
var k = self.options.statusField.key, |
|||
v = self.options.statusField.values, |
|||
t = typeof v; |
|||
if( k && ( (t == 'string' && v) || (t == 'object' && v.length > 0)) ) { |
|||
if( (t == 'string' && e.data[k] == v) || (t == 'object' && $.inArray( e.data[k], v) > -1) ) { |
|||
e.rowElement.addClass('unused'); |
|||
} |
|||
} |
|||
self.OnRowPrepared(e); |
|||
} |
|||
}, |
|||
onContextMenuPreparing: function(e) { |
|||
if(e.rowType == 'data') self.OnContextMenuPreparing(e); |
|||
}, |
|||
onSelectionChanged:function(e) { |
|||
self.OnSelectionChanged(e); |
|||
}, |
|||
onCellPrepared: function(e) { |
|||
if(e.rowType == 'data') { |
|||
if(typeof self.options.colorField == 'object' && self.options.colorField.length > 0) |
|||
{ |
|||
for(var i in self.options.colorField) { |
|||
if( self.options.colorField[i].key && self.options.colorField[i].color && e.column.dataField == self.options.colorField[i].key ) { |
|||
e.cellElement.css("background-color", self.options.colorField[i].color); |
|||
} |
|||
} |
|||
} |
|||
self.OnCellPrepared(e); |
|||
} |
|||
} |
|||
}; |
|||
this.options = $.extend({}, this.defaultOptions, addOptions); |
|||
} |
|||
|
|||
GRID.prototype.instance = function() { |
|||
return $(this.element).dxDataGrid('instance'); |
|||
} |
|||
/** |
|||
* 그리드를 초기화한다. |
|||
*/ |
|||
GRID.prototype.init = function() { |
|||
// 그리드 초기화
|
|||
$(this.element).dxDataGrid(this.options); |
|||
var that = this; |
|||
if( $('[data-column]').length > 0 ) { |
|||
$('[data-column]').change(function(e) { |
|||
var field = $(this).data('column'), |
|||
visible = $(this).prop('checked'); |
|||
$(that.element).dxDataGrid('columnOption', field, 'visible', visible); |
|||
}).change(); |
|||
} |
|||
}; |
|||
|
|||
GRID.prototype.SetPage = function(pageIndex) { |
|||
$(this.element).dxDataGrid('instance').pageIndex(pageIndex - 1); |
|||
}; |
|||
|
|||
GRID.prototype.getSearchParam = function(loadOptions) { |
|||
var params = {}; |
|||
|
|||
["skip","take","requireTotalCount","requireGroupCount","sort","filter","totalSummary","group","groupSummary"].forEach(function(i) { |
|||
if(i in loadOptions && loadOptions[i] !== undefined && loadOptions[i] !== null && loadOptions[i] !== '') |
|||
params[i] = JSON.stringify(loadOptions[i]); |
|||
}); |
|||
|
|||
if( $('[data-grid-search]').length > 0 ) { |
|||
var $form = $('[data-grid-search]'); |
|||
$('input', $form).not('[type="checkbox"]').not('[type="radio"]').each(function() { |
|||
var name = $(this).attr('name'), |
|||
value = $(this).val(); |
|||
params[name] = value; |
|||
}); |
|||
$('input[type="checkbox"]', $form).each(function() { |
|||
if( $(this).prop('checked') ) { |
|||
var name = $(this).attr('name'), |
|||
value = $(this).val(); |
|||
params[name] = value; |
|||
} |
|||
}); |
|||
$('input[type="radio"]:checked', $form).each(function() { |
|||
var name = $(this).attr('name'), |
|||
value = $(this).val(); |
|||
params[name] = value; |
|||
}); |
|||
$('select', $form).each(function() { |
|||
var name = $(this).attr('name'), |
|||
value = $(this).find('option:selected').val(); |
|||
params[name] = value; |
|||
}) |
|||
} |
|||
|
|||
return params; |
|||
} |
|||
|
|||
/** |
|||
* 그리드를 새로고침한다. |
|||
*/ |
|||
GRID.prototype.refresh = function(pageIndex) { |
|||
pageIndex = typeof pageIndex == 'number' && pageIndex > 0 ? pageIndex : null; |
|||
if(pageIndex) { |
|||
$(this.element).dxDataGrid('instance').pageIndex(pageIndex - 1); |
|||
} |
|||
$(this.element).dxDataGrid('instance').refresh(); |
|||
}; |
|||
|
|||
/** |
|||
* 컬럼을 감추고 숨길수 있다 |
|||
* @param field |
|||
* @param visible |
|||
* @constructor |
|||
*/ |
|||
GRID.prototype.SetColumnVisible = function(field, visible) { |
|||
|
|||
}; |
|||
|
|||
/** |
|||
* 마우스 한번 클릭시 실행되는 이벤트 |
|||
* @param e |
|||
* @constructor |
|||
*/ |
|||
GRID.prototype.OnRowSingleClick = function(e) {}; |
|||
|
|||
/** |
|||
* 마우스 더블클릭시 실행되는 이벤트 |
|||
* @param e |
|||
* @constructor |
|||
*/ |
|||
GRID.prototype.OnRowDoubleClick = function(e) {}; |
|||
|
|||
/** |
|||
* 행이 준비되었을때 실행되는 이벤트 |
|||
* @param e |
|||
* @constructor |
|||
*/ |
|||
GRID.prototype.OnRowPrepared = function(e) {}; |
|||
|
|||
/** |
|||
* 마우스 우클릭시 나타나는 바로가기 메뉴 |
|||
* @param e |
|||
* @constructor |
|||
*/ |
|||
GRID.prototype.OnContextMenuPreparing = function(e) {}; |
|||
|
|||
/** |
|||
* 행 선택이 바뀌었을때 실행되는 이벤트 |
|||
* @param e |
|||
* @constructor |
|||
*/ |
|||
GRID.prototype.OnSelectionChanged = function(e) {}; |
|||
|
|||
/** |
|||
* 셀이 준비되었을때 실행되는 이벤트 |
|||
* @param e |
|||
* @constructor |
|||
*/ |
|||
GRID.prototype.OnCellPrepared = function(e) {}; |
@ -1,23 +0,0 @@ |
|||
APP.TOAST = { |
|||
confirm : function(msg) { |
|||
APP.toast.push({ |
|||
theme : 'default', |
|||
icon : '<i class="far fa-bell"></i>', |
|||
msg : msg |
|||
}); |
|||
}, |
|||
error : function(msg) { |
|||
APP.toast.push({ |
|||
theme : 'danger', |
|||
icon : '<i class="far fa-exclamation-circle"></i>', |
|||
msg : msg |
|||
}); |
|||
}, |
|||
success: function(msg) { |
|||
APP.toast.push({ |
|||
theme : 'success', |
|||
icon : '<i class="far fa-check-circle"></i>', |
|||
msg : msg |
|||
}) |
|||
} |
|||
}; |
@ -1,69 +1,14 @@ |
|||
.ellipsis { text-overflow:ellipsis; white-space:nowrap; word-wrap:normal; overflow:hidden; } |
|||
.admin-help-wrap { |
|||
width:700px; margin:0 auto; |
|||
li > img {width:700px;} |
|||
.point-color {color:#e60035} |
|||
} |
|||
|
|||
/* 높이/너비/마진/패딩 */ |
|||
@for $i from 1 to 100 { |
|||
.H#{$i * 5} { |
|||
height: 5px * $i !important; |
|||
} |
|||
} |
|||
@for $i from 1 to 100{ |
|||
.W#{$i * 5} { |
|||
width: 5px * $i !important; |
|||
} |
|||
} |
|||
@for $i from 1 to 10 { |
|||
.M#{$i * 5} { |
|||
margin:5px * $i; |
|||
} |
|||
.MT#{$i * 5} { |
|||
margin-top:5px * $i; |
|||
} |
|||
.MR#{$i*5} { |
|||
margin-right:5px * $i; |
|||
} |
|||
.MB#{$i * 5} { |
|||
margin-bottom:5px * $i; |
|||
} |
|||
.ML#{$i * 5} { |
|||
margin-left:5px * $i; |
|||
} |
|||
.PT#{$i * 5} { |
|||
padding-top:5px * $i; |
|||
} |
|||
.PR#{$i * 5} { |
|||
padding-right:5px * $i; |
|||
} |
|||
.PB#{$i * 5} { |
|||
padding-bottom:5px * $i; |
|||
} |
|||
.PL#{$i * 5} { |
|||
padding-left:5px * $i; |
|||
} |
|||
.P#{$i * 5} { |
|||
padding:5px * $i; |
|||
} |
|||
} |
|||
|
|||
.text-center { |
|||
text-align:center !important; |
|||
} |
|||
|
|||
.text-left { |
|||
text-align:left !important; |
|||
@each $color, $value in $theme-colors { |
|||
.text-#{$color} { |
|||
color:$value; |
|||
} |
|||
|
|||
.text-right { |
|||
text-align:right !important; |
|||
} |
|||
|
|||
.alert { |
|||
padding: 5px 7px; |
|||
|
|||
@each $color, $value in $theme-colors { |
|||
.text-#{$color} { |
|||
color:$value; |
|||
&.alert-danger { |
|||
border: 1px solid #e32815; |
|||
color: #e32815; |
|||
} |
|||
} |
@ -0,0 +1,4 @@ |
|||
.label { |
|||
margin-bottom:0; |
|||
font-size:12px; |
|||
} |
@ -1,769 +0,0 @@ |
|||
//== |
|||
$ax5grid-border: 1px solid #ccc !default; |
|||
$ax5grid-bg: #fff !default; |
|||
$ax5grid-font-size: 12px !default; |
|||
$ax5grid-column-border: 1px solid #ccc !default; |
|||
|
|||
//== header |
|||
$ax5grid-header-column-color: #222 !default; |
|||
$ax5grid-header-column-border: 1px solid #ccc !default; |
|||
$ax5grid-header-column-box-shadow: inset 1px 1px 0px 0px #fff !default; |
|||
$ax5grid-header-column-bg-colors: (#FFFFFF, #F0F0F0) !default; |
|||
$ax5grid-header-column-hover-bg-colors: (#eee, #eee) !default; |
|||
$ax5grid-header-column-resizer-color: #ff3300 !default; |
|||
$ax5grid-header-column-resizer-size: 4px !default; |
|||
$ax5grid-header-sorter-size: 9px !default; |
|||
$ax5grid-header-sorter-color: #000 !default; |
|||
|
|||
//== aside |
|||
$ax5grid-aside-border: 1px solid darken(#ccc, 0%) !default; |
|||
$ax5grid-aside-bg: #f2f2f2 !default; |
|||
$ax5grid-aside-column-shadow: inset 1px 1px 0px 0px #fff !default; |
|||
|
|||
$ax5grid-frozen-line-border: 1px solid darken(#ccc, 10%) !default; |
|||
|
|||
//== footsum |
|||
$ax5grid-footsum-bg: #ffe7e2 !default; |
|||
$ax5grid-footsum-line-border: 1px solid darken(#ccc, 10%) !default; |
|||
|
|||
//== page |
|||
$ax5grid-page-border: 1px solid #ccc !default; |
|||
$ax5grid-page-bg-colors: (#FFFFFF, #F0F0F0) !default; |
|||
$ax5grid-page-navigation-padding: 5px !default; |
|||
$ax5grid-page-navigation-font-size: 12px !default; |
|||
$ax5grid-page-navigation-btn-min-width: 20px !default; |
|||
$ax5grid-page-navigation-btn-border: 0px none !default; |
|||
$ax5grid-page-navigation-btn-border-radius: 5px !default; |
|||
$ax5grid-page-navigation-btn-bg: transparent !default; |
|||
$ax5grid-page-navigation-btn-font-size: 11px !default; |
|||
$ax5grid-page-navigation-btn-color: #222 !default; |
|||
$ax5grid-page-navigation-btn-hover-bg: #888 !default; |
|||
$ax5grid-page-navigation-btn-hover-color: #fff !default; |
|||
|
|||
$ax5grid-page-status-font-size: 12px !default; |
|||
$ax5grid-page-status-padding: 10px !default; |
|||
$ax5grid-page-status-color: #222 !default; |
|||
|
|||
//== scroll |
|||
$ax5grid-scroll-track-border: 1px solid #ccc !default; |
|||
$ax5grid-scroll-track-bg: #f3f3f3 !default; |
|||
$ax5grid-scroll-corner-bg: #EAEDEF !default; |
|||
|
|||
$ax5grid-scroll-bar-border-radius: 10px !default; |
|||
$ax5grid-scroll-bar-border: 0px solid #fff !default; |
|||
$ax5grid-scroll-bar-bg: #ccc !default; |
|||
$ax5grid-scroll-bar-hover-border: 0px solid #ccc !default; |
|||
$ax5grid-scroll-bar-hover-bg: #bababa !default; |
|||
|
|||
//== body.row |
|||
$ax5grid-row-bg-0: #f3f3f3 !default; |
|||
$ax5grid-row-bg-1: #fff !default; |
|||
$ax5grid-row-bg-2: #f3f3f3 !default; |
|||
$ax5grid-row-bg-3: #fff !default; |
|||
$ax5grid-row-hover-bg: lighten(#cce2f3, 5%) !default; |
|||
$ax5grid-row-grouping-bg: #ffffe7 !default; |
|||
$ax5grid-row-selected: lighten(#b1d7fe, 10%) !default; |
|||
|
|||
//== body.cell |
|||
$ax5grid-cell-padding-row-selector: 5px !default; |
|||
$ax5grid-cell-padding: 3px 5px !default; |
|||
|
|||
$ax5grid-cell-checkbox-border: 1px solid #ccc !default; |
|||
$ax5grid-cell-checkbox-border-radius: 3px !default; |
|||
$ax5grid-cell-checkbox-bg-colors: (#FFFFFF, #F0F0F0) !default; |
|||
$ax5grid-cell-disable-checkbox-bg-colors: (darken(nth($ax5grid-cell-checkbox-bg-colors, 2), 10%), darken(nth($ax5grid-cell-checkbox-bg-colors, 1), 10%)) !default; |
|||
$ax5grid-cell-checkbox-arrow-color: $brand-primary !default; |
|||
|
|||
$ax5grid-cell-focused-box-shadow: inset 0px 0px 1px 1px #0581f2 !default; |
|||
$ax5grid-cell-focused-bg: lighten(#b1d7fe, 10%) !default; |
|||
$ax5grid-cell-focused-color: #000 !default; |
|||
|
|||
$ax5grid-cell-selected-border-color: #ccc !default; |
|||
$ax5grid-cell-selected-bg: #b1d7fe !default; |
|||
$ax5grid-cell-selected-color: #000 !default; |
|||
|
|||
//== resizer |
|||
$ax5grid-resizer-color: #ff3300 !default; |
|||
$ax5grid-resizer-size: 2px !default; |
|||
|
|||
|
|||
// mixins |
|||
@mixin gridBoxModal() { |
|||
margin: 0; |
|||
padding: 0; |
|||
} |
|||
|
|||
@mixin gridColumn($container) { |
|||
|
|||
box-sizing: border-box; |
|||
overflow: hidden; |
|||
position: relative; |
|||
padding: 0; |
|||
font-size: $ax5grid-font-size; |
|||
border: 0 none; |
|||
|
|||
&.hasBorder { |
|||
border-right: $ax5grid-column-border; |
|||
border-bottom: $ax5grid-column-border; |
|||
} |
|||
&.isLastColumn { |
|||
|
|||
} |
|||
&.lineNumberColumn { |
|||
|
|||
} |
|||
&.focused { |
|||
box-shadow: $ax5grid-cell-focused-box-shadow; |
|||
} |
|||
|
|||
@if ($container == "header") { |
|||
cursor: pointer; |
|||
box-shadow: $ax5grid-header-column-box-shadow; |
|||
&:hover { |
|||
@include ax-background(top, $ax5grid-header-column-hover-bg-colors); |
|||
} |
|||
&[data-ax5grid-column-row="null"] { |
|||
box-shadow: none; |
|||
} |
|||
} |
|||
|
|||
&[data-ax5grid-column-row="null"] { |
|||
border-right: 0 none; |
|||
} |
|||
|
|||
&[data-ax5grid-column-selected] { |
|||
background: $ax5grid-cell-selected-bg; |
|||
border-color: $ax5grid-cell-selected-border-color; |
|||
color: $ax5grid-cell-selected-color; |
|||
} |
|||
|
|||
&[data-ax5grid-column-focused] { |
|||
box-shadow: $ax5grid-cell-focused-box-shadow; |
|||
background: $ax5grid-cell-focused-bg; |
|||
color: $ax5grid-cell-focused-color; |
|||
} |
|||
|
|||
&[data-ax5grid-column-attr="rowSelector"] { |
|||
cursor: pointer; |
|||
[data-ax5grid-cellHolder] { |
|||
padding: $ax5grid-cell-padding-row-selector; |
|||
} |
|||
|
|||
.checkBox { |
|||
display: inline-block; |
|||
position: relative; |
|||
border: $ax5grid-cell-checkbox-border; |
|||
border-radius: $ax5grid-cell-checkbox-border-radius; |
|||
@include ax-background(top, $ax5grid-cell-checkbox-bg-colors); |
|||
height: 100%; |
|||
width: 100%; |
|||
&:after { |
|||
content: ''; |
|||
width: 60%; |
|||
height: 40%; |
|||
position: absolute; |
|||
top: 20%; |
|||
right: 20%; |
|||
border: 0.2em solid $ax5grid-cell-checkbox-arrow-color; |
|||
border-top: none; |
|||
border-right: none; |
|||
background: transparent; |
|||
opacity: 0.0; |
|||
@include transform(rotate(-50deg)); |
|||
} |
|||
} |
|||
&[data-ax5grid-selected="true"] { |
|||
.checkBox { |
|||
&:after { |
|||
opacity: 1; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
|
|||
&[data-ax5grid-column-attr="lineNumber"] { |
|||
} |
|||
|
|||
[data-ax5grid-cellHolder] { |
|||
// 그리드 셀표현 : 그리드의 컬럼텍스트가 여기에 출력됨 |
|||
display: block; |
|||
box-sizing: border-box; |
|||
padding: $ax5grid-cell-padding; |
|||
font-size: $ax5grid-font-size; |
|||
|
|||
white-space: nowrap; |
|||
overflow: hidden; |
|||
text-overflow: ellipsis; |
|||
|
|||
@if ($container == "header") { |
|||
//text-align: center; |
|||
} |
|||
|
|||
&[data-ax5grid-text-align="left"] { |
|||
text-align: left; |
|||
} |
|||
&[data-ax5grid-text-align="center"] { |
|||
text-align: center; |
|||
} |
|||
&[data-ax5grid-text-align="right"] { |
|||
text-align: right; |
|||
} |
|||
&[data-ax5grid-cellHolder="multiLine"] { |
|||
white-space: normal; |
|||
} |
|||
|
|||
[data-ax5grid-editor] { |
|||
position: absolute; |
|||
left: 0; |
|||
top: 0; |
|||
width: 100%; |
|||
height: 100%; |
|||
border: 0 none; |
|||
background: $ax5grid-bg; |
|||
&::-ms-clear { |
|||
display: none; |
|||
} |
|||
} |
|||
|
|||
[data-ax5select] { |
|||
position: absolute; |
|||
display: block; |
|||
left: 0; |
|||
top: 0; |
|||
width: 100%; |
|||
height: 100%; |
|||
border: 0px none; |
|||
background: $ax5grid-bg; |
|||
.ax5select-display { |
|||
height: 100%; |
|||
border-radius: 0; |
|||
} |
|||
} |
|||
|
|||
[data-ax5grid-editor="checkbox"] { |
|||
display: inline-block; |
|||
position: relative; |
|||
border: $ax5grid-cell-checkbox-border; |
|||
border-radius: $ax5grid-cell-checkbox-border-radius; |
|||
@include ax-background(top, $ax5grid-cell-checkbox-bg-colors); |
|||
height: 100%; |
|||
&:after { |
|||
content: ''; |
|||
width: 60%; |
|||
height: 40%; |
|||
position: absolute; |
|||
top: 20%; |
|||
right: 20%; |
|||
border: 0.2em solid $ax5grid-cell-checkbox-arrow-color; |
|||
border-top: none; |
|||
border-right: none; |
|||
background: transparent; |
|||
opacity: 0.0; |
|||
@include transform(rotate(-50deg)); |
|||
} |
|||
&[data-ax5grid-checked="true"] { |
|||
&:after { |
|||
opacity: 1.0; |
|||
} |
|||
} |
|||
} |
|||
|
|||
[data-ax5grid-tnode-arrow] { |
|||
display: inline-block; |
|||
box-sizing: content-box; |
|||
text-align: right; |
|||
text-shadow: 0 -1px #fff; |
|||
padding: 0 5px 0 0; |
|||
} |
|||
a[data-ax5grid-tnode-arrow] { |
|||
cursor: pointer; |
|||
text-decoration: none; |
|||
&:hover { |
|||
text-decoration: none; |
|||
} |
|||
} |
|||
[data-ax5grid-tnode-item="group"] { |
|||
display: inline-block; |
|||
} |
|||
[data-ax5grid-tnode-item="item"] { |
|||
display: inline-block; |
|||
} |
|||
} |
|||
} |
|||
|
|||
@mixin gridRowBackground() { |
|||
&.tr-0 { |
|||
background: $ax5grid-row-bg-0; |
|||
} |
|||
&.tr-1 { |
|||
background: $ax5grid-row-bg-1; |
|||
} |
|||
&.tr-2 { |
|||
background: $ax5grid-row-bg-2; |
|||
} |
|||
&.tr-3 { |
|||
background: $ax5grid-row-bg-3; |
|||
} |
|||
&.hover { |
|||
background: $ax5grid-row-hover-bg; |
|||
} |
|||
&[data-ax5grid-grouping-tr="true"] { |
|||
background: $ax5grid-row-grouping-bg; |
|||
} |
|||
&[data-ax5grid-selected="true"] { |
|||
background: $ax5grid-row-selected; |
|||
td { |
|||
//color: #fff; |
|||
//box-shadow: inset 1px 1px 0px 0px #fff; |
|||
&[data-ax5grid-column-attr="rowSelector"], |
|||
&[data-ax5grid-column-attr="lineNumber"] { |
|||
box-shadow: none; |
|||
} |
|||
&[data-ax5grid-column-attr="rowSelector"] { |
|||
.checkBox { |
|||
&:after { |
|||
opacity: 1; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
|||
&[data-ax5grid-disable-selection="true"] { |
|||
// background: $ax5grid-row-selected; |
|||
td { |
|||
&[data-ax5grid-column-attr="rowSelector"] { |
|||
.checkBox { |
|||
cursor: not-allowed; |
|||
@include ax-background(top, $ax5grid-cell-disable-checkbox-bg-colors); |
|||
&:after { |
|||
opacity: 0; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
|||
|
|||
// mergeCells 대상 컬럼 배경생 통일. |
|||
td.merged { |
|||
background: $ax5grid-row-bg-1; |
|||
} |
|||
} |
|||
|
|||
@mixin gridPanel($container) { |
|||
[data-ax5grid-panel] { |
|||
@include gridBoxModal(); |
|||
position: absolute; |
|||
overflow: hidden; |
|||
/* |
|||
overflow: hidden; |
|||
-webkit-overflow-scrolling: touch; |
|||
transform: translate3d(0, 0, 0); |
|||
*/ |
|||
|
|||
table { |
|||
table-layout: fixed; |
|||
border-collapse: separate; |
|||
border-spacing: 0; |
|||
border: 0 none; |
|||
width: 100%; |
|||
@if ($container == "header") { |
|||
height: 100%; |
|||
} |
|||
tr { |
|||
border-bottom: 0 none; |
|||
@include gridRowBackground(); |
|||
td { |
|||
@include gridColumn($container); |
|||
|
|||
} |
|||
} |
|||
} |
|||
|
|||
&[data-ax5grid-panel="aside-header"] { |
|||
border-right: $ax5grid-aside-border; |
|||
table { |
|||
tr { |
|||
td { |
|||
text-align: center; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
&[data-ax5grid-panel="top-aside-body"], |
|||
&[data-ax5grid-panel="aside-body"], |
|||
&[data-ax5grid-panel="bottom-aside-body"] { |
|||
border-right: $ax5grid-aside-border; |
|||
background: $ax5grid-aside-bg; |
|||
table { |
|||
tr { |
|||
background: $ax5grid-aside-bg; |
|||
td { |
|||
text-align: center; |
|||
box-shadow: $ax5grid-aside-column-shadow; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
|
|||
&[data-ax5grid-panel="left-header"], |
|||
&[data-ax5grid-panel="top-left-body"], |
|||
&[data-ax5grid-panel="left-body"], |
|||
&[data-ax5grid-panel="bottom-left-body"] { |
|||
border-right: $ax5grid-frozen-line-border; /// frozen Line color |
|||
} |
|||
|
|||
&[data-ax5grid-panel="top-aside-body"], |
|||
&[data-ax5grid-panel="top-left-body"], |
|||
&[data-ax5grid-panel="top-body"], |
|||
&[data-ax5grid-panel="top-right-body"] { |
|||
border-bottom: $ax5grid-frozen-line-border; /// frozen Line color |
|||
} |
|||
|
|||
&[data-ax5grid-panel="bottom-aside-body"], |
|||
&[data-ax5grid-panel="bottom-left-body"], |
|||
&[data-ax5grid-panel="bottom-body"], |
|||
&[data-ax5grid-panel="bottom-right-body"] { |
|||
border-top: $ax5grid-footsum-line-border; /// footSum Line color |
|||
} |
|||
|
|||
&[data-ax5grid-panel="bottom-aside-body"], |
|||
&[data-ax5grid-panel="bottom-left-body"], |
|||
&[data-ax5grid-panel="bottom-body"], |
|||
&[data-ax5grid-panel="bottom-right-body"] { |
|||
background: $ax5grid-footsum-bg; |
|||
} |
|||
|
|||
[data-ax5grid-panel-scroll] { |
|||
position: absolute; |
|||
left: 0; |
|||
top: 0; |
|||
} |
|||
} |
|||
} |
|||
|
|||
@mixin scrollBar($type) { |
|||
position: absolute; |
|||
top: 0; |
|||
left: 0; |
|||
@include border-top-radius($ax5grid-scroll-bar-border-radius); |
|||
@include border-bottom-radius($ax5grid-scroll-bar-border-radius); |
|||
box-sizing: border-box; |
|||
border: $ax5grid-scroll-bar-border; |
|||
background: $ax5grid-scroll-bar-bg; |
|||
|
|||
@if ($type == "vertical-bar") { |
|||
cursor: ns-resize; |
|||
} @else { |
|||
cursor: ew-resize; |
|||
} |
|||
|
|||
&:hover { |
|||
border: $ax5grid-scroll-bar-hover-border; |
|||
background: $ax5grid-scroll-bar-hover-bg; |
|||
} |
|||
} |
|||
|
|||
@mixin resizer($type: "horizontal") { |
|||
display: none; |
|||
&.live { |
|||
display: block; |
|||
position: absolute; |
|||
top: 0; |
|||
left: 0; |
|||
background: $ax5grid-resizer-color; |
|||
opacity: 0.5; |
|||
|
|||
@if ($type == "vertical") { |
|||
height: $ax5grid-resizer-size; |
|||
width: 100%; |
|||
cursor: row-resize; |
|||
} @else { |
|||
height: 100%; |
|||
width: $ax5grid-resizer-size; |
|||
cursor: col-resize; |
|||
} |
|||
|
|||
} |
|||
} |
|||
|
|||
// body |
|||
[data-ax5grid] { |
|||
box-sizing: border-box; |
|||
*, |
|||
*:before, |
|||
*:after { |
|||
box-sizing: border-box; |
|||
} |
|||
|
|||
[data-ax5grid-container="root"] { |
|||
@include gridBoxModal(); |
|||
position: relative; |
|||
background: $ax5grid-bg; |
|||
border: $ax5grid-border; |
|||
overflow: hidden; |
|||
|
|||
[data-ax5grid-container="hidden"] { |
|||
@include gridBoxModal(); |
|||
position: absolute; |
|||
//z-index: 100; |
|||
left: -100%; |
|||
top: -100%; |
|||
height: 100%; |
|||
width: 100%; |
|||
} |
|||
|
|||
[data-ax5grid-container="header"] { |
|||
user-select: none; |
|||
@include gridBoxModal(); |
|||
position: relative; |
|||
overflow: hidden; |
|||
@include ax-background(top, $ax5grid-header-column-bg-colors); |
|||
border: 0px none; |
|||
border-bottom: $ax5grid-header-column-border; |
|||
@include gridPanel("header"); |
|||
color: $ax5grid-header-column-color; |
|||
[data-ax5grid-column-resizer] { |
|||
position: absolute; |
|||
right: 0; |
|||
top: 0; |
|||
width: $ax5grid-header-column-resizer-size; |
|||
height: 100%; |
|||
cursor: col-resize; |
|||
&:hover { |
|||
background: $ax5grid-header-column-resizer-color; |
|||
opacity: 0.5; |
|||
} |
|||
} |
|||
[data-ax5grid-column-sort] { |
|||
position: relative; |
|||
//right: 0; |
|||
//top: 2px; |
|||
width: 10px; |
|||
height: 10px; |
|||
display: inline-block; |
|||
|
|||
@mixin sort-arrow($arrow-size, $ratio-0, $ratio-1, $arrow-color, $opacity, $direction) { |
|||
position: absolute; |
|||
content: ' '; |
|||
width: 0; |
|||
height: 0; |
|||
display: inline-block; |
|||
border-left: $arrow-size/$ratio-0 solid transparent; |
|||
border-right: $arrow-size/$ratio-0 solid transparent; |
|||
@if ($direction == "up") { |
|||
border-bottom: ($arrow-size)/$ratio-1 solid $arrow-color; |
|||
} @else { |
|||
border-top: ($arrow-size)/$ratio-1 solid $arrow-color; |
|||
} |
|||
background: transparent; |
|||
opacity: $opacity; |
|||
} |
|||
|
|||
&:before { |
|||
top: 0; |
|||
left: 0; |
|||
@include sort-arrow($ax5grid-header-sorter-size, 2.5, 2.2, $ax5grid-header-sorter-color, 0.3, "up"); |
|||
} |
|||
&:after { |
|||
bottom: 0; |
|||
left: 0; |
|||
@include sort-arrow($ax5grid-header-sorter-size, 2.5, 2.2, $ax5grid-header-sorter-color, 0.3, "down"); |
|||
} |
|||
|
|||
&[data-ax5grid-column-sort-order="asc"] { |
|||
&:before { |
|||
top: 2px; |
|||
left: 0; |
|||
@include sort-arrow($ax5grid-header-sorter-size + 1, 2.5, 2.0, $ax5grid-header-sorter-color, 0.8, "up"); |
|||
} |
|||
&:after { |
|||
display: none; |
|||
} |
|||
} |
|||
&[data-ax5grid-column-sort-order="desc"] { |
|||
&:before { |
|||
display: none; |
|||
} |
|||
&:after { |
|||
bottom: 2px; |
|||
left: 0; |
|||
@include sort-arrow($ax5grid-header-sorter-size + 1, 2.5, 2.0, $ax5grid-header-sorter-color, 0.8, "down"); |
|||
} |
|||
} |
|||
|
|||
} |
|||
[data-ax5grid-column-filter] { |
|||
// 개발중.. |
|||
$filter-size: 10px; |
|||
|
|||
position: absolute; |
|||
left: 0; |
|||
top: 0; |
|||
width: 10px; |
|||
height: 10px; |
|||
cursor: pointer; |
|||
|
|||
&:before { |
|||
content: ' '; |
|||
width: 0; |
|||
height: 0; |
|||
display: inline-block; |
|||
border-left: $filter-size/2 solid transparent; |
|||
border-right: $filter-size/2 solid transparent; |
|||
border-top: ($filter-size) solid #000; |
|||
background: transparent; |
|||
opacity: 1; |
|||
} |
|||
|
|||
} |
|||
} |
|||
|
|||
[data-ax5grid-container="body"] { |
|||
@include gridBoxModal(); |
|||
position: relative; |
|||
overflow: hidden; |
|||
@include gridPanel("body"); |
|||
|
|||
/* |
|||
@keyframes fadein { |
|||
from { opacity: 0; } |
|||
to { opacity: 1; } |
|||
} |
|||
|
|||
[data-ax5grid-panel-scroll="body"]{ |
|||
table { |
|||
@include animation(fadein 0.3s); |
|||
} |
|||
} |
|||
*/ |
|||
|
|||
} |
|||
|
|||
[data-ax5grid-container="page"] { |
|||
@include gridBoxModal(); |
|||
position: absolute; |
|||
bottom: 0; |
|||
left: 0; |
|||
width: 100%; |
|||
overflow: hidden; |
|||
@include ax-background(top, $ax5grid-page-bg-colors); |
|||
border: 0px none; |
|||
border-top: $ax5grid-page-border; |
|||
|
|||
[data-ax5grid-page="holder"] { |
|||
@include gridBoxModal(); |
|||
display: table; |
|||
//table-layout: fixed; |
|||
width: 100%; |
|||
height: 100%; |
|||
[data-ax5grid-page="navigation"] { |
|||
@include gridBoxModal(); |
|||
display: table-cell; |
|||
vertical-align: middle; |
|||
text-align: left; |
|||
padding-left: $ax5grid-page-navigation-padding; |
|||
font-size: $ax5grid-page-navigation-font-size; |
|||
|
|||
[data-ax5grid-page-navigation="holder"] { |
|||
display: table; |
|||
[data-ax5grid-page-navigation="cell"], [data-ax5grid-page-navigation="cell-paging"] { |
|||
display: table-cell; |
|||
vertical-align: middle; |
|||
} |
|||
[data-ax5grid-page-navigation="cell-paging"] { |
|||
padding: 0 $ax5grid-page-navigation-padding; |
|||
} |
|||
|
|||
[data-ax5grid-page-move] { |
|||
box-sizing: border-box; |
|||
min-width: $ax5grid-page-navigation-btn-min-width; |
|||
border-radius: $ax5grid-page-navigation-btn-border-radius; |
|||
padding: 1px; |
|||
border: $ax5grid-page-navigation-btn-border; |
|||
background: $ax5grid-page-navigation-btn-bg; |
|||
font-size: $ax5grid-page-navigation-btn-font-size; |
|||
color: $ax5grid-page-navigation-btn-color; |
|||
outline: 0; |
|||
|
|||
&[data-ax5grid-page-selected="true"], &:active { |
|||
background-color: $ax5grid-page-navigation-btn-hover-bg; |
|||
color: $ax5grid-page-navigation-btn-hover-color; |
|||
} |
|||
&:hover { |
|||
text-decoration: underline; |
|||
} |
|||
} |
|||
} |
|||
|
|||
} |
|||
[data-ax5grid-page="status"] { |
|||
@include gridBoxModal(); |
|||
display: table-cell; |
|||
text-align: right; |
|||
vertical-align: middle; |
|||
padding-right: $ax5grid-page-status-padding; |
|||
font-size: $ax5grid-page-status-font-size; |
|||
color: $ax5grid-page-status-color; |
|||
} |
|||
} |
|||
} |
|||
|
|||
[data-ax5grid-container="scroller"] { |
|||
@include gridBoxModal(); |
|||
position: absolute; |
|||
right: 0px; |
|||
bottom: 0px; |
|||
|
|||
$scroller-size: 15px; |
|||
[data-ax5grid-scroller="vertical"] { |
|||
box-sizing: border-box; |
|||
position: absolute; |
|||
display: none; |
|||
right: 0; |
|||
bottom: 0; |
|||
width: $scroller-size; |
|||
height: 100%; |
|||
background: $ax5grid-scroll-track-bg; |
|||
border-left: $ax5grid-scroll-track-border; |
|||
|
|||
[data-ax5grid-scroller="vertical-bar"] { |
|||
@include scrollBar("vertical-bar"); |
|||
} |
|||
} |
|||
[data-ax5grid-scroller="horizontal"] { |
|||
box-sizing: border-box; |
|||
position: absolute; |
|||
display: none; |
|||
right: 0; |
|||
bottom: 0; |
|||
height: $scroller-size; |
|||
width: 100%; |
|||
background: $ax5grid-scroll-track-bg; |
|||
border-top: $ax5grid-scroll-track-border; |
|||
|
|||
[data-ax5grid-scroller="horizontal-bar"] { |
|||
@include scrollBar("horizontal-bar"); |
|||
} |
|||
} |
|||
[data-ax5grid-scroller="corner"] { |
|||
position: absolute; |
|||
display: none; |
|||
right: 0px; |
|||
bottom: 0px; |
|||
width: $scroller-size; |
|||
height: $scroller-size; |
|||
|
|||
background: $ax5grid-scroll-corner-bg; |
|||
border-top: $ax5grid-scroll-track-border; |
|||
border-left: $ax5grid-scroll-track-border; |
|||
} |
|||
} |
|||
|
|||
[data-ax5grid-resizer="horizontal"] { |
|||
@include resizer("horizontal"); |
|||
} |
|||
[data-ax5grid-resizer="vertical"] { |
|||
@include resizer("vertical"); |
|||
} |
|||
} |
|||
} |
@ -1,256 +0,0 @@ |
|||
//============== toast |
|||
$ax5toast-z-index: 2000; |
|||
// 0:left,top / 1:right,top / 2:right,bottom / 3:left,bottom |
|||
$ax5toast-container-width: auto !default; |
|||
$ax5toast-container-padding: 10px !default; |
|||
$ax5toast-box-model: border-box !default; |
|||
$ax5toast-border: 1px solid rgb(255/2, 255/2, 255/2) !default; |
|||
$ax5toast-box-shadow: 0px 0px 5px 0px rgba(0, 0, 0, 0.175) !default; |
|||
$ax5toast-body-padding: 6px !default; |
|||
$ax5toast-border-radius: 8px !default; |
|||
$ax5toast-opacity: 0.9 !default; |
|||
$ax5toast-box-margin: 5px 0px 5px 0px !default; |
|||
$ax5toast-icon-size: 24px; |
|||
$ax5toast-easing: $ease-in-out-quint; |
|||
$ax5toast-easing-time: 0.3s; |
|||
|
|||
//** Border color for elements within toast |
|||
$ax5toast-default-text: #282828 !default; |
|||
$ax5toast-default-bg: #fff !default; |
|||
$ax5toast-default-color: $body-color !default; |
|||
|
|||
$ax5toast-primary-text: $brand-primary !default; |
|||
$ax5toast-primary-bg: #fff !default; |
|||
$ax5toast-primary-color: $brand-primary !default; |
|||
|
|||
$ax5toast-success-text: $brand-success !default; |
|||
$ax5toast-success-bg: #fff !default; |
|||
$ax5toast-success-color: $brand-success !default; |
|||
|
|||
$ax5toast-info-text: $brand-info !default; |
|||
$ax5toast-info-bg: #fff !default; |
|||
$ax5toast-info-color: $brand-info !default; |
|||
|
|||
$ax5toast-warning-text: #fff !default; |
|||
$ax5toast-warning-bg: $brand-warning !default; |
|||
$ax5toast-warning-color: $brand-warning !default; |
|||
|
|||
$ax5toast-danger-text: #fff !default; |
|||
$ax5toast-danger-bg: $brand-warning !default; |
|||
$ax5toast-danger-color: $brand-danger !default; |
|||
|
|||
@mixin ax-toast() { |
|||
box-sizing: $ax5toast-box-model; |
|||
border: $ax5toast-border; |
|||
opacity: $ax5toast-opacity; |
|||
|
|||
@include ax-border-radius($ax5toast-border-radius); |
|||
box-shadow: $ax5toast-box-shadow; |
|||
position: relative; |
|||
margin: $ax5toast-box-margin; |
|||
} |
|||
|
|||
@mixin ax-toast-section() { |
|||
display: table; |
|||
padding: $ax5toast-body-padding; |
|||
.ax-toast-icon { |
|||
display: table-cell; |
|||
padding: $ax5toast-body-padding; |
|||
text-align: left; |
|||
font-size: $ax5toast-icon-size; |
|||
width: $ax5toast-icon-size; |
|||
vertical-align: middle; |
|||
} |
|||
.ax-toast-body { |
|||
display: table-cell; |
|||
padding: $ax5toast-body-padding; |
|||
text-align: left; |
|||
vertical-align: middle; |
|||
} |
|||
.ax-toast-buttons { |
|||
display: table-cell; |
|||
padding: $ax5toast-body-padding; |
|||
text-align: right; |
|||
vertical-align: middle; |
|||
button { |
|||
&:not(:last-child) { |
|||
margin-right: 3px; |
|||
} |
|||
} |
|||
} |
|||
.ax-toast-close { |
|||
display: table-cell; |
|||
padding: $ax5toast-body-padding; |
|||
text-align: right; |
|||
vertical-align: top; |
|||
text-decoration: none; |
|||
cursor: pointer; |
|||
} |
|||
} |
|||
|
|||
@mixin toast-variant($text-color, $bg-color, $color) { |
|||
background: $bg-color; |
|||
color: $text-color; |
|||
.ax-toast-icon { |
|||
color: $color; |
|||
} |
|||
.ax-toast-close { |
|||
color: $text-color; |
|||
} |
|||
} |
|||
|
|||
@include keyframes(ax-toast-bottom) { |
|||
from { |
|||
@include transform(translateY(-100px) scale(0.7)); |
|||
} |
|||
to { |
|||
//@include opacity($mask-bg-opacity); |
|||
@include transform(translateY(0px) scale(1)) |
|||
} |
|||
} |
|||
|
|||
@include keyframes(ax-toast-top) { |
|||
from { |
|||
@include transform(translateY(100px) scale(0.7)); |
|||
} |
|||
to { |
|||
//@include opacity($mask-bg-opacity); |
|||
@include transform(translateY(0px) scale(1)) |
|||
} |
|||
} |
|||
|
|||
@include keyframes(ax-toast-removed-bottom) { |
|||
from { |
|||
@include transform(translateY(0px)); |
|||
opacity: 1.0; |
|||
} |
|||
to { |
|||
@include transform(translateY(10px) scale(0.7)); |
|||
opacity: 0.0; |
|||
} |
|||
} |
|||
|
|||
@include keyframes(ax-toast-removed-top) { |
|||
from { |
|||
@include transform(translateY(0px)); |
|||
opacity: 1.0; |
|||
} |
|||
to { |
|||
@include transform(translateY(-10px) scale(0.7)); |
|||
opacity: 0.0; |
|||
} |
|||
} |
|||
|
|||
@include keyframes(ax-toast-destroy) { |
|||
from { |
|||
@include transform(scale(1)); |
|||
opacity: 1.0; |
|||
} |
|||
to { |
|||
@include transform(scale(1.5)); |
|||
opacity: 0.0; |
|||
} |
|||
} |
|||
|
|||
// mixins --------------------------------------------- end |
|||
|
|||
.ax5-ui-toast-container { |
|||
z-index: $ax5toast-z-index; |
|||
position: fixed; |
|||
width: $ax5toast-container-width; |
|||
padding: $ax5toast-container-padding; |
|||
|
|||
box-sizing: border-box; |
|||
*, |
|||
*:before, |
|||
*:after { |
|||
box-sizing: border-box; |
|||
} |
|||
|
|||
.ax5-ui-toast { |
|||
@include ax-toast(); |
|||
@include ax-toast-section(); |
|||
@include transition(all $ax5toast-easing-time ease-in-out); |
|||
|
|||
@include toast-variant($ax5toast-default-text, $ax5toast-default-bg, $ax5toast-default-color); |
|||
|
|||
&.primary { |
|||
@include toast-variant($ax5toast-primary-text, $ax5toast-primary-bg, $ax5toast-primary-color); |
|||
} |
|||
&.success { |
|||
@include toast-variant($ax5toast-success-text, $ax5toast-success-bg, $ax5toast-success-color); |
|||
} |
|||
&.info { |
|||
@include toast-variant($ax5toast-info-text, $ax5toast-info-bg, $ax5toast-info-color); |
|||
} |
|||
&.warning { |
|||
@include toast-variant($ax5toast-warning-text, $ax5toast-warning-bg, $ax5toast-warning-color); |
|||
} |
|||
&.danger { |
|||
@include toast-variant($ax5toast-danger-text, $ax5toast-danger-bg, $ax5toast-danger-color); |
|||
} |
|||
} |
|||
|
|||
&.bottom-left { |
|||
left: 0; |
|||
bottom: 0; |
|||
|
|||
.ax5-ui-toast { |
|||
@include animation(ax-toast-top $ax5toast-easing-time $ax5toast-easing); |
|||
&.removed { |
|||
@include animation(ax-toast-removed-bottom $ax5toast-easing-time ease forwards); |
|||
} |
|||
&.destroy { |
|||
@include animation(ax-toast-destroy $ax5toast-easing-time ease forwards); |
|||
} |
|||
} |
|||
} |
|||
&.bottom-right { |
|||
right: 0; |
|||
bottom: 0; |
|||
|
|||
.ax5-ui-toast { |
|||
@include animation(ax-toast-top $ax5toast-easing-time $ax5toast-easing); |
|||
&.removed { |
|||
@include animation(ax-toast-removed-bottom $ax5toast-easing-time ease forwards); |
|||
} |
|||
&.destroy { |
|||
@include animation(ax-toast-destroy $ax5toast-easing-time ease forwards); |
|||
} |
|||
} |
|||
|
|||
} |
|||
|
|||
&.top-left { |
|||
left: 0; |
|||
top: 0; |
|||
|
|||
.ax5-ui-toast { |
|||
@include animation(ax-toast-bottom $ax5toast-easing-time $ax5toast-easing); |
|||
|
|||
&.removed { |
|||
@include animation(ax-toast-removed-top $ax5toast-easing-time ease forwards); |
|||
} |
|||
&.destroy { |
|||
@include animation(ax-toast-destroy $ax5toast-easing-time ease forwards); |
|||
} |
|||
} |
|||
} |
|||
|
|||
&.top-right { |
|||
right: 0; |
|||
top: 0; |
|||
|
|||
.ax5-ui-toast { |
|||
@include animation(ax-toast-bottom $ax5toast-easing-time $ax5toast-easing); |
|||
&.removed { |
|||
@include animation(ax-toast-removed-top $ax5toast-easing-time ease forwards); |
|||
} |
|||
&.destroy { |
|||
@include animation(ax-toast-destroy $ax5toast-easing-time ease forwards); |
|||
} |
|||
} |
|||
} |
|||
|
|||
} |
|||
|
7403
_src/admin/scss/plugins/devextreme/dx.common.scss
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
13343
_src/admin/scss/plugins/devextreme/dx.light.compact.scss
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -1,23 +0,0 @@ |
|||
// Rotated & Flipped Icons |
|||
// ------------------------- |
|||
|
|||
.#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); } |
|||
.#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); } |
|||
.#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); } |
|||
|
|||
.#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); } |
|||
.#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); } |
|||
.#{$fa-css-prefix}-flip-horizontal.#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(-1, -1, 2); } |
|||
|
|||
// Hook for IE8-9 |
|||
// ------------------------- |
|||
|
|||
:root { |
|||
.#{$fa-css-prefix}-rotate-90, |
|||
.#{$fa-css-prefix}-rotate-180, |
|||
.#{$fa-css-prefix}-rotate-270, |
|||
.#{$fa-css-prefix}-flip-horizontal, |
|||
.#{$fa-css-prefix}-flip-vertical { |
|||
filter: none; |
|||
} |
|||
} |
@ -1,21 +0,0 @@ |
|||
/*! |
|||
* Font Awesome Pro 5.5.0 by @fontawesome - https://fontawesome.com |
|||
* License - https://fontawesome.com/license (Commercial License) |
|||
*/ |
|||
@import 'variables'; |
|||
|
|||
@font-face { |
|||
font-family: 'Font Awesome 5 Brands'; |
|||
font-style: normal; |
|||
font-weight: normal; |
|||
src: url('#{$fa-font-path}/fa-brands-400.eot'); |
|||
src: url('#{$fa-font-path}/fa-brands-400.eot?#iefix') format('embedded-opentype'), |
|||
url('#{$fa-font-path}/fa-brands-400.woff2') format('woff2'), |
|||
url('#{$fa-font-path}/fa-brands-400.woff') format('woff'), |
|||
url('#{$fa-font-path}/fa-brands-400.ttf') format('truetype'), |
|||
url('#{$fa-font-path}/fa-brands-400.svg#fontawesome') format('svg'); |
|||
} |
|||
|
|||
.fab { |
|||
font-family: 'Font Awesome 5 Brands'; |
|||
} |
@ -1,16 +0,0 @@ |
|||
/*! |
|||
* Font Awesome Pro 5.5.0 by @fontawesome - https://fontawesome.com |
|||
* License - https://fontawesome.com/license (Commercial License) |
|||
*/ |
|||
@import 'variables'; |
|||
@import 'mixins'; |
|||
@import 'core'; |
|||
@import 'larger'; |
|||
@import 'fixed-width'; |
|||
@import 'list'; |
|||
@import 'bordered-pulled'; |
|||
@import 'animated'; |
|||
@import 'rotated-flipped'; |
|||
@import 'stacked'; |
|||
@import 'icons'; |
|||
@import 'screen-reader'; |
@ -1,22 +0,0 @@ |
|||
/*! |
|||
* Font Awesome Pro 5.5.0 by @fontawesome - https://fontawesome.com |
|||
* License - https://fontawesome.com/license (Commercial License) |
|||
*/ |
|||
@import 'variables'; |
|||
|
|||
@font-face { |
|||
font-family: 'Font Awesome 5 Pro'; |
|||
font-style: normal; |
|||
font-weight: 300; |
|||
src: url('#{$fa-font-path}/fa-light-300.eot'); |
|||
src: url('#{$fa-font-path}/fa-light-300.eot?#iefix') format('embedded-opentype'), |
|||
url('#{$fa-font-path}/fa-light-300.woff2') format('woff2'), |
|||
url('#{$fa-font-path}/fa-light-300.woff') format('woff'), |
|||
url('#{$fa-font-path}/fa-light-300.ttf') format('truetype'), |
|||
url('#{$fa-font-path}/fa-light-300.svg#fontawesome') format('svg'); |
|||
} |
|||
|
|||
.fal { |
|||
font-family: 'Font Awesome 5 Pro'; |
|||
font-weight: 300; |
|||
} |
@ -1,23 +0,0 @@ |
|||
/*! |
|||
* Font Awesome Pro 5.5.0 by @fontawesome - https://fontawesome.com |
|||
* License - https://fontawesome.com/license (Commercial License) |
|||
*/ |
|||
@import 'variables'; |
|||
|
|||
@font-face { |
|||
font-family: 'Font Awesome 5 Pro'; |
|||
font-style: normal; |
|||
font-weight: 900; |
|||
src: url('#{$fa-font-path}/fa-solid-900.eot'); |
|||
src: url('#{$fa-font-path}/fa-solid-900.eot?#iefix') format('embedded-opentype'), |
|||
url('#{$fa-font-path}/fa-solid-900.woff2') format('woff2'), |
|||
url('#{$fa-font-path}/fa-solid-900.woff') format('woff'), |
|||
url('#{$fa-font-path}/fa-solid-900.ttf') format('truetype'), |
|||
url('#{$fa-font-path}/fa-solid-900.svg#fontawesome') format('svg'); |
|||
} |
|||
|
|||
.fa, |
|||
.fas { |
|||
font-family: 'Font Awesome 5 Pro'; |
|||
font-weight: 900; |
|||
} |
@ -1,569 +0,0 @@ |
|||
|
|||
.xdsoft_datetimepicker { |
|||
box-shadow: 0 5px 15px -5px rgba(0, 0, 0, 0.506); |
|||
background: #fff; |
|||
border-bottom: 1px solid #bbb; |
|||
border-left: 1px solid #ccc; |
|||
border-right: 1px solid #ccc; |
|||
border-top: 1px solid #ccc; |
|||
color: #333; |
|||
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; |
|||
padding: 8px; |
|||
padding-left: 0; |
|||
padding-top: 2px; |
|||
position: absolute; |
|||
z-index: 9999; |
|||
-moz-box-sizing: border-box; |
|||
box-sizing: border-box; |
|||
display: none; |
|||
} |
|||
.xdsoft_datetimepicker.xdsoft_rtl { |
|||
padding: 8px 0 8px 8px; |
|||
} |
|||
|
|||
.xdsoft_datetimepicker iframe { |
|||
position: absolute; |
|||
left: 0; |
|||
top: 0; |
|||
width: 75px; |
|||
height: 210px; |
|||
background: transparent; |
|||
border: none; |
|||
} |
|||
|
|||
/*For IE8 or lower*/ |
|||
.xdsoft_datetimepicker button { |
|||
border: none !important; |
|||
} |
|||
|
|||
.xdsoft_noselect { |
|||
-webkit-touch-callout: none; |
|||
-webkit-user-select: none; |
|||
-khtml-user-select: none; |
|||
-moz-user-select: none; |
|||
-ms-user-select: none; |
|||
-o-user-select: none; |
|||
user-select: none; |
|||
} |
|||
|
|||
.xdsoft_noselect::selection { background: transparent } |
|||
.xdsoft_noselect::-moz-selection { background: transparent } |
|||
|
|||
.xdsoft_datetimepicker.xdsoft_inline { |
|||
display: inline-block; |
|||
position: static; |
|||
box-shadow: none; |
|||
} |
|||
|
|||
.xdsoft_datetimepicker * { |
|||
-moz-box-sizing: border-box; |
|||
box-sizing: border-box; |
|||
padding: 0; |
|||
margin: 0; |
|||
} |
|||
|
|||
.xdsoft_datetimepicker .xdsoft_datepicker, .xdsoft_datetimepicker .xdsoft_timepicker { |
|||
display: none; |
|||
} |
|||
|
|||
.xdsoft_datetimepicker .xdsoft_datepicker.active, .xdsoft_datetimepicker .xdsoft_timepicker.active { |
|||
display: block; |
|||
} |
|||
|
|||
.xdsoft_datetimepicker .xdsoft_datepicker { |
|||
width: 224px; |
|||
float: left; |
|||
margin-left: 8px; |
|||
} |
|||
.xdsoft_datetimepicker.xdsoft_rtl .xdsoft_datepicker { |
|||
float: right; |
|||
margin-right: 8px; |
|||
margin-left: 0; |
|||
} |
|||
|
|||
.xdsoft_datetimepicker.xdsoft_showweeks .xdsoft_datepicker { |
|||
width: 256px; |
|||
} |
|||
|
|||
.xdsoft_datetimepicker .xdsoft_timepicker { |
|||
width: 58px; |
|||
float: left; |
|||
text-align: center; |
|||
margin-left: 8px; |
|||
margin-top: 0; |
|||
} |
|||
.xdsoft_datetimepicker.xdsoft_rtl .xdsoft_timepicker { |
|||
float: right; |
|||
margin-right: 8px; |
|||
margin-left: 0; |
|||
} |
|||
|
|||
.xdsoft_datetimepicker .xdsoft_datepicker.active+.xdsoft_timepicker { |
|||
margin-top: 8px; |
|||
margin-bottom: 3px |
|||
} |
|||
|
|||
.xdsoft_datetimepicker .xdsoft_monthpicker { |
|||
position: relative; |
|||
text-align: center; |
|||
} |
|||
|
|||
.xdsoft_datetimepicker .xdsoft_label i, |
|||
.xdsoft_datetimepicker .xdsoft_prev, |
|||
.xdsoft_datetimepicker .xdsoft_next, |
|||
.xdsoft_datetimepicker .xdsoft_today_button { |
|||
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAAeCAYAAADaW7vzAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6Q0NBRjI1NjM0M0UwMTFFNDk4NkFGMzJFQkQzQjEwRUIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6Q0NBRjI1NjQ0M0UwMTFFNDk4NkFGMzJFQkQzQjEwRUIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDQ0FGMjU2MTQzRTAxMUU0OTg2QUYzMkVCRDNCMTBFQiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpDQ0FGMjU2MjQzRTAxMUU0OTg2QUYzMkVCRDNCMTBFQiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PoNEP54AAAIOSURBVHja7Jq9TsMwEMcxrZD4WpBYeKUCe+kTMCACHZh4BFfHO/AAIHZGFhYkBBsSEqxsLCAgXKhbXYOTxh9pfJVP+qutnZ5s/5Lz2Y5I03QhWji2GIcgAokWgfCxNvcOCCGKqiSqhUp0laHOne05vdEyGMfkdxJDVjgwDlEQgYQBgx+ULJaWSXXS6r/ER5FBVR8VfGftTKcITNs+a1XpcFoExREIDF14AVIFxgQUS+h520cdud6wNkC0UBw6BCO/HoCYwBhD8QCkQ/x1mwDyD4plh4D6DDV0TAGyo4HcawLIBBSLDkHeH0Mg2yVP3l4TQMZQDDsEOl/MgHQqhMNuE0D+oBh0CIr8MAKyazBH9WyBuKxDWgbXfjNf32TZ1KWm/Ap1oSk/R53UtQ5xTh3LUlMmT8gt6g51Q9p+SobxgJQ/qmsfZhWywGFSl0yBjCLJCMgXail3b7+rumdVJ2YRss4cN+r6qAHDkPWjPjdJCF4n9RmAD/V9A/Wp4NQassDjwlB6XBiCxcJQWmZZb8THFilfy/lfrTvLghq2TqTHrRMTKNJ0sIhdo15RT+RpyWwFdY96UZ/LdQKBGjcXpcc1AlSFEfLmouD+1knuxBDUVrvOBmoOC/rEcN7OQxKVeJTCiAdUzUJhA2Oez9QTkp72OTVcxDcXY8iKNkxGAJXmJCOQwOa6dhyXsOa6XwEGAKdeb5ET3rQdAAAAAElFTkSuQmCC); |
|||
} |
|||
|
|||
.xdsoft_datetimepicker .xdsoft_label i { |
|||
opacity: 0.5; |
|||
background-position: -92px -19px; |
|||
display: inline-block; |
|||
width: 9px; |
|||
height: 20px; |
|||
vertical-align: middle; |
|||
} |
|||
|
|||
.xdsoft_datetimepicker .xdsoft_prev { |
|||
float: left; |
|||
background-position: -20px 0; |
|||
} |
|||
.xdsoft_datetimepicker .xdsoft_today_button { |
|||
float: left; |
|||
background-position: -70px 0; |
|||
margin-left: 5px; |
|||
} |
|||
|
|||
.xdsoft_datetimepicker .xdsoft_next { |
|||
float: right; |
|||
background-position: 0 0; |
|||
} |
|||
|
|||
.xdsoft_datetimepicker .xdsoft_next, |
|||
.xdsoft_datetimepicker .xdsoft_prev , |
|||
.xdsoft_datetimepicker .xdsoft_today_button { |
|||
background-color: transparent; |
|||
background-repeat: no-repeat; |
|||
border: 0 none; |
|||
cursor: pointer; |
|||
display: block; |
|||
height: 30px; |
|||
opacity: 0.5; |
|||
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"; |
|||
outline: medium none; |
|||
overflow: hidden; |
|||
padding: 0; |
|||
position: relative; |
|||
text-indent: 100%; |
|||
white-space: nowrap; |
|||
width: 20px; |
|||
min-width: 0; |
|||
} |
|||
|
|||
.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_prev, |
|||
.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_next { |
|||
float: none; |
|||
background-position: -40px -15px; |
|||
height: 15px; |
|||
width: 30px; |
|||
display: block; |
|||
margin-left: 14px; |
|||
margin-top: 7px; |
|||
} |
|||
.xdsoft_datetimepicker.xdsoft_rtl .xdsoft_timepicker .xdsoft_prev, |
|||
.xdsoft_datetimepicker.xdsoft_rtl .xdsoft_timepicker .xdsoft_next { |
|||
float: none; |
|||
margin-left: 0; |
|||
margin-right: 14px; |
|||
} |
|||
|
|||
.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_prev { |
|||
background-position: -40px 0; |
|||
margin-bottom: 7px; |
|||
margin-top: 0; |
|||
} |
|||
|
|||
.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box { |
|||
height: 151px; |
|||
overflow: hidden; |
|||
border-bottom: 1px solid #ddd; |
|||
} |
|||
|
|||
.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div >div { |
|||
background: #f5f5f5; |
|||
border-top: 1px solid #ddd; |
|||
color: #666; |
|||
font-size: 12px; |
|||
text-align: center; |
|||
border-collapse: collapse; |
|||
cursor: pointer; |
|||
border-bottom-width: 0; |
|||
height: 25px; |
|||
line-height: 25px; |
|||
} |
|||
|
|||
.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div > div:first-child { |
|||
border-top-width: 0; |
|||
} |
|||
|
|||
.xdsoft_datetimepicker .xdsoft_today_button:hover, |
|||
.xdsoft_datetimepicker .xdsoft_next:hover, |
|||
.xdsoft_datetimepicker .xdsoft_prev:hover { |
|||
opacity: 1; |
|||
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; |
|||
} |
|||
|
|||
.xdsoft_datetimepicker .xdsoft_label { |
|||
display: inline; |
|||
position: relative; |
|||
z-index: 9999; |
|||
margin: 0; |
|||
padding: 5px 3px; |
|||
font-size: 14px; |
|||
line-height: 20px; |
|||
font-weight: bold; |
|||
background-color: #fff; |
|||
float: left; |
|||
width: 182px; |
|||
text-align: center; |
|||
cursor: pointer; |
|||
} |
|||
|
|||
.xdsoft_datetimepicker .xdsoft_label:hover>span { |
|||
text-decoration: underline; |
|||
} |
|||
|
|||
.xdsoft_datetimepicker .xdsoft_label:hover i { |
|||
opacity: 1.0; |
|||
} |
|||
|
|||
.xdsoft_datetimepicker .xdsoft_label > .xdsoft_select { |
|||
border: 1px solid #ccc; |
|||
position: absolute; |
|||
right: 0; |
|||
top: 30px; |
|||
z-index: 101; |
|||
display: none; |
|||
background: #fff; |
|||
max-height: 160px; |
|||
overflow-y: hidden; |
|||
} |
|||
|
|||
.xdsoft_datetimepicker .xdsoft_label > .xdsoft_select.xdsoft_monthselect{ right: -7px } |
|||
.xdsoft_datetimepicker .xdsoft_label > .xdsoft_select.xdsoft_yearselect{ right: 2px } |
|||
.xdsoft_datetimepicker .xdsoft_label > .xdsoft_select > div > .xdsoft_option:hover { |
|||
color: #fff; |
|||
background: #ff8000; |
|||
} |
|||
|
|||
.xdsoft_datetimepicker .xdsoft_label > .xdsoft_select > div > .xdsoft_option { |
|||
padding: 2px 10px 2px 5px; |
|||
text-decoration: none !important; |
|||
} |
|||
|
|||
.xdsoft_datetimepicker .xdsoft_label > .xdsoft_select > div > .xdsoft_option.xdsoft_current { |
|||
background: #33aaff; |
|||
box-shadow: #178fe5 0 1px 3px 0 inset; |
|||
color: #fff; |
|||
font-weight: 700; |
|||
} |
|||
|
|||
.xdsoft_datetimepicker .xdsoft_month { |
|||
width: 100px; |
|||
text-align: right; |
|||
} |
|||
|
|||
.xdsoft_datetimepicker .xdsoft_calendar { |
|||
clear: both; |
|||
} |
|||
|
|||
.xdsoft_datetimepicker .xdsoft_year{ |
|||
width: 48px; |
|||
margin-left: 5px; |
|||
} |
|||
|
|||
.xdsoft_datetimepicker .xdsoft_calendar table { |
|||
border-collapse: collapse; |
|||
width: 100%; |
|||
|
|||
} |
|||
|
|||
.xdsoft_datetimepicker .xdsoft_calendar td > div { |
|||
padding-right: 5px; |
|||
} |
|||
|
|||
.xdsoft_datetimepicker .xdsoft_calendar th { |
|||
height: 25px; |
|||
} |
|||
|
|||
.xdsoft_datetimepicker .xdsoft_calendar td,.xdsoft_datetimepicker .xdsoft_calendar th { |
|||
width: 14.2857142%; |
|||
background: #f5f5f5; |
|||
border: 1px solid #ddd; |
|||
color: #666; |
|||
font-size: 12px; |
|||
text-align: right; |
|||
vertical-align: middle; |
|||
padding: 0; |
|||
border-collapse: collapse; |
|||
cursor: pointer; |
|||
height: 25px; |
|||
} |
|||
.xdsoft_datetimepicker.xdsoft_showweeks .xdsoft_calendar td,.xdsoft_datetimepicker.xdsoft_showweeks .xdsoft_calendar th { |
|||
width: 12.5%; |
|||
} |
|||
|
|||
.xdsoft_datetimepicker .xdsoft_calendar th { |
|||
background: #f1f1f1; |
|||
} |
|||
|
|||
.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_today { |
|||
color: #33aaff; |
|||
} |
|||
|
|||
.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_highlighted_default { |
|||
background: #ffe9d2; |
|||
box-shadow: #ffb871 0 1px 4px 0 inset; |
|||
color: #000; |
|||
} |
|||
.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_highlighted_mint { |
|||
background: #c1ffc9; |
|||
box-shadow: #00dd1c 0 1px 4px 0 inset; |
|||
color: #000; |
|||
} |
|||
|
|||
.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_default, |
|||
.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_current, |
|||
.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div >div.xdsoft_current { |
|||
background: #33aaff; |
|||
box-shadow: #178fe5 0 1px 3px 0 inset; |
|||
color: #fff; |
|||
font-weight: 700; |
|||
} |
|||
|
|||
.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_other_month, |
|||
.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_disabled, |
|||
.xdsoft_datetimepicker .xdsoft_time_box >div >div.xdsoft_disabled { |
|||
opacity: 0.5; |
|||
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"; |
|||
cursor: default; |
|||
} |
|||
|
|||
.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_other_month.xdsoft_disabled { |
|||
opacity: 0.2; |
|||
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=20)"; |
|||
} |
|||
|
|||
.xdsoft_datetimepicker .xdsoft_calendar td:hover, |
|||
.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div >div:hover { |
|||
color: #fff !important; |
|||
background: #ff8000 !important; |
|||
box-shadow: none !important; |
|||
} |
|||
|
|||
.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_current.xdsoft_disabled:hover, |
|||
.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box>div>div.xdsoft_current.xdsoft_disabled:hover { |
|||
background: #33aaff !important; |
|||
box-shadow: #178fe5 0 1px 3px 0 inset !important; |
|||
color: #fff !important; |
|||
} |
|||
|
|||
.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_disabled:hover, |
|||
.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div >div.xdsoft_disabled:hover { |
|||
color: inherit !important; |
|||
background: inherit !important; |
|||
box-shadow: inherit !important; |
|||
} |
|||
|
|||
.xdsoft_datetimepicker .xdsoft_calendar th { |
|||
font-weight: 700; |
|||
text-align: center; |
|||
color: #999; |
|||
cursor: default; |
|||
} |
|||
|
|||
.xdsoft_datetimepicker .xdsoft_copyright { |
|||
color: #ccc !important; |
|||
font-size: 10px; |
|||
clear: both; |
|||
float: none; |
|||
margin-left: 8px; |
|||
} |
|||
|
|||
.xdsoft_datetimepicker .xdsoft_copyright a { color: #eee !important } |
|||
.xdsoft_datetimepicker .xdsoft_copyright a:hover { color: #aaa !important } |
|||
|
|||
.xdsoft_time_box { |
|||
position: relative; |
|||
border: 1px solid #ccc; |
|||
} |
|||
.xdsoft_scrollbar >.xdsoft_scroller { |
|||
background: #ccc !important; |
|||
height: 20px; |
|||
border-radius: 3px; |
|||
} |
|||
.xdsoft_scrollbar { |
|||
position: absolute; |
|||
width: 7px; |
|||
right: 0; |
|||
top: 0; |
|||
bottom: 0; |
|||
cursor: pointer; |
|||
} |
|||
.xdsoft_datetimepicker.xdsoft_rtl .xdsoft_scrollbar { |
|||
left: 0; |
|||
right: auto; |
|||
} |
|||
.xdsoft_scroller_box { |
|||
position: relative; |
|||
} |
|||
|
|||
.xdsoft_datetimepicker.xdsoft_dark { |
|||
box-shadow: 0 5px 15px -5px rgba(255, 255, 255, 0.506); |
|||
background: #000; |
|||
border-bottom: 1px solid #444; |
|||
border-left: 1px solid #333; |
|||
border-right: 1px solid #333; |
|||
border-top: 1px solid #333; |
|||
color: #ccc; |
|||
} |
|||
|
|||
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_timepicker .xdsoft_time_box { |
|||
border-bottom: 1px solid #222; |
|||
} |
|||
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_timepicker .xdsoft_time_box >div >div { |
|||
background: #0a0a0a; |
|||
border-top: 1px solid #222; |
|||
color: #999; |
|||
} |
|||
|
|||
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_label { |
|||
background-color: #000; |
|||
} |
|||
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_label > .xdsoft_select { |
|||
border: 1px solid #333; |
|||
background: #000; |
|||
} |
|||
|
|||
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_label > .xdsoft_select > div > .xdsoft_option:hover { |
|||
color: #000; |
|||
background: #007fff; |
|||
} |
|||
|
|||
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_label > .xdsoft_select > div > .xdsoft_option.xdsoft_current { |
|||
background: #cc5500; |
|||
box-shadow: #b03e00 0 1px 3px 0 inset; |
|||
color: #000; |
|||
} |
|||
|
|||
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_label i, |
|||
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_prev, |
|||
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_next, |
|||
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_today_button { |
|||
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAAeCAYAAADaW7vzAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QUExQUUzOTA0M0UyMTFFNDlBM0FFQTJENTExRDVBODYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QUExQUUzOTE0M0UyMTFFNDlBM0FFQTJENTExRDVBODYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBQTFBRTM4RTQzRTIxMUU0OUEzQUVBMkQ1MTFENUE4NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBQTFBRTM4RjQzRTIxMUU0OUEzQUVBMkQ1MTFENUE4NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pp0VxGEAAAIASURBVHja7JrNSgMxEMebtgh+3MSLr1T1Xn2CHoSKB08+QmR8Bx9A8e7RixdB9CKCoNdexIugxFlJa7rNZneTbLIpM/CnNLsdMvNjM8l0mRCiQ9Ye61IKCAgZAUnH+mU3MMZaHYChBnJUDzWOFZdVfc5+ZFLbrWDeXPwbxIqrLLfaeS0hEBVGIRQCEiZoHQwtlGSByCCdYBl8g8egTTAWoKQMRBRBcZxYlhzhKegqMOageErsCHVkk3hXIFooDgHB1KkHIHVgzKB4ADJQ/A1jAFmAYhkQqA5TOBtocrKrgXwQA8gcFIuAIO8sQSA7hidvPwaQGZSaAYHOUWJABhWWw2EMIH9QagQERU4SArJXo0ZZL18uvaxejXt/Em8xjVBXmvFr1KVm/AJ10tRe2XnraNqaJvKE3KHuUbfK1E+VHB0q40/y3sdQSxY4FHWeKJCunP8UyDdqJZenT3ntVV5jIYCAh20vT7ioP8tpf6E2lfEMwERe+whV1MHjwZB7PBiCxcGQWwKZKD62lfGNnP/1poFAA60T7rF1UgcKd2id3KDeUS+oLWV8DfWAepOfq00CgQabi9zjcgJVYVD7PVzQUAUGAQkbNJTBICDhgwYTjDYD6XeW08ZKh+A4pYkzenOxXUbvZcWz7E8ykRMnIHGX1XPl+1m2vPYpL+2qdb8CDAARlKFEz/ZVkAAAAABJRU5ErkJggg==); |
|||
} |
|||
|
|||
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td, |
|||
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar th { |
|||
background: #0a0a0a; |
|||
border: 1px solid #222; |
|||
color: #999; |
|||
} |
|||
|
|||
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar th { |
|||
background: #0e0e0e; |
|||
} |
|||
|
|||
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_today { |
|||
color: #cc5500; |
|||
} |
|||
|
|||
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_highlighted_default { |
|||
background: #ffe9d2; |
|||
box-shadow: #ffb871 0 1px 4px 0 inset; |
|||
color:#000; |
|||
} |
|||
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_highlighted_mint { |
|||
background: #c1ffc9; |
|||
box-shadow: #00dd1c 0 1px 4px 0 inset; |
|||
color:#000; |
|||
} |
|||
|
|||
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_default, |
|||
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_current, |
|||
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_timepicker .xdsoft_time_box >div >div.xdsoft_current { |
|||
background: #cc5500; |
|||
box-shadow: #b03e00 0 1px 3px 0 inset; |
|||
color: #000; |
|||
} |
|||
|
|||
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td:hover, |
|||
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_timepicker .xdsoft_time_box >div >div:hover { |
|||
color: #000 !important; |
|||
background: #007fff !important; |
|||
} |
|||
|
|||
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar th { |
|||
color: #666; |
|||
} |
|||
|
|||
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_copyright { color: #333 !important } |
|||
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_copyright a { color: #111 !important } |
|||
.xdsoft_datetimepicker.xdsoft_dark .xdsoft_copyright a:hover { color: #555 !important } |
|||
|
|||
.xdsoft_dark .xdsoft_time_box { |
|||
border: 1px solid #333; |
|||
} |
|||
|
|||
.xdsoft_dark .xdsoft_scrollbar >.xdsoft_scroller { |
|||
background: #333 !important; |
|||
} |
|||
.xdsoft_datetimepicker .xdsoft_save_selected { |
|||
display: block; |
|||
border: 1px solid #dddddd !important; |
|||
margin-top: 5px; |
|||
width: 100%; |
|||
color: #454551; |
|||
font-size: 13px; |
|||
} |
|||
.xdsoft_datetimepicker .blue-gradient-button { |
|||
font-family: "museo-sans", "Book Antiqua", sans-serif; |
|||
font-size: 12px; |
|||
font-weight: 300; |
|||
color: #82878c; |
|||
height: 28px; |
|||
position: relative; |
|||
padding: 4px 17px 4px 33px; |
|||
border: 1px solid #d7d8da; |
|||
background: -moz-linear-gradient(top, #fff 0%, #f4f8fa 73%); |
|||
/* FF3.6+ */ |
|||
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fff), color-stop(73%, #f4f8fa)); |
|||
/* Chrome,Safari4+ */ |
|||
background: -webkit-linear-gradient(top, #fff 0%, #f4f8fa 73%); |
|||
/* Chrome10+,Safari5.1+ */ |
|||
background: -o-linear-gradient(top, #fff 0%, #f4f8fa 73%); |
|||
/* Opera 11.10+ */ |
|||
background: -ms-linear-gradient(top, #fff 0%, #f4f8fa 73%); |
|||
/* IE10+ */ |
|||
background: linear-gradient(to bottom, #fff 0%, #f4f8fa 73%); |
|||
/* W3C */ |
|||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fff', endColorstr='#f4f8fa',GradientType=0 ); |
|||
/* IE6-9 */ |
|||
} |
|||
.xdsoft_datetimepicker .blue-gradient-button:hover, .xdsoft_datetimepicker .blue-gradient-button:focus, .xdsoft_datetimepicker .blue-gradient-button:hover span, .xdsoft_datetimepicker .blue-gradient-button:focus span { |
|||
color: #454551; |
|||
background: -moz-linear-gradient(top, #f4f8fa 0%, #FFF 73%); |
|||
/* FF3.6+ */ |
|||
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #f4f8fa), color-stop(73%, #FFF)); |
|||
/* Chrome,Safari4+ */ |
|||
background: -webkit-linear-gradient(top, #f4f8fa 0%, #FFF 73%); |
|||
/* Chrome10+,Safari5.1+ */ |
|||
background: -o-linear-gradient(top, #f4f8fa 0%, #FFF 73%); |
|||
/* Opera 11.10+ */ |
|||
background: -ms-linear-gradient(top, #f4f8fa 0%, #FFF 73%); |
|||
/* IE10+ */ |
|||
background: linear-gradient(to bottom, #f4f8fa 0%, #FFF 73%); |
|||
/* W3C */ |
|||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f4f8fa', endColorstr='#FFF',GradientType=0 ); |
|||
/* IE6-9 */ |
|||
} |
@ -1 +0,0 @@ |
|||
html, body { min-height:100%; } |
@ -1,200 +0,0 @@ |
|||
.toast-title { |
|||
font-weight: bold; |
|||
} |
|||
.toast-message { |
|||
-ms-word-wrap: break-word; |
|||
word-wrap: break-word; |
|||
} |
|||
.toast-message a, |
|||
.toast-message label { |
|||
color: #ffffff; |
|||
} |
|||
.toast-message a:hover { |
|||
color: #cccccc; |
|||
text-decoration: none; |
|||
} |
|||
.toast-close-button { |
|||
position: relative; |
|||
right: -0.3em; |
|||
top: -0.3em; |
|||
float: right; |
|||
font-size: 20px; |
|||
font-weight: bold; |
|||
color: #ffffff; |
|||
-webkit-text-shadow: 0 1px 0 #ffffff; |
|||
text-shadow: 0 1px 0 #ffffff; |
|||
opacity: 0.8; |
|||
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80); |
|||
filter: alpha(opacity=80); |
|||
} |
|||
.toast-close-button:hover, |
|||
.toast-close-button:focus { |
|||
color: #000000; |
|||
text-decoration: none; |
|||
cursor: pointer; |
|||
opacity: 0.4; |
|||
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=40); |
|||
filter: alpha(opacity=40); |
|||
} |
|||
/*Additional properties for button version |
|||
iOS requires the button element instead of an anchor tag. |
|||
If you want the anchor version, it requires `href="#"`.*/ |
|||
button.toast-close-button { |
|||
padding: 0; |
|||
cursor: pointer; |
|||
background: transparent; |
|||
border: 0; |
|||
-webkit-appearance: none; |
|||
} |
|||
.toast-top-center { |
|||
top: 0; |
|||
right: 0; |
|||
width: 100%; |
|||
} |
|||
.toast-bottom-center { |
|||
bottom: 0; |
|||
right: 0; |
|||
width: 100%; |
|||
} |
|||
.toast-top-full-width { |
|||
top: 0; |
|||
right: 0; |
|||
width: 100%; |
|||
} |
|||
.toast-bottom-full-width { |
|||
bottom: 0; |
|||
right: 0; |
|||
width: 100%; |
|||
} |
|||
.toast-top-left { |
|||
top: 12px; |
|||
left: 12px; |
|||
} |
|||
.toast-top-right { |
|||
top: 12px; |
|||
right: 12px; |
|||
} |
|||
.toast-bottom-right { |
|||
right: 12px; |
|||
bottom: 12px; |
|||
} |
|||
.toast-bottom-left { |
|||
bottom: 12px; |
|||
left: 12px; |
|||
} |
|||
#toast-container { |
|||
position: fixed; |
|||
z-index: 999999; |
|||
pointer-events: none; |
|||
/*overrides*/ |
|||
} |
|||
#toast-container * { |
|||
-moz-box-sizing: border-box; |
|||
-webkit-box-sizing: border-box; |
|||
box-sizing: border-box; |
|||
} |
|||
#toast-container > div { |
|||
position: relative; |
|||
pointer-events: auto; |
|||
overflow: hidden; |
|||
margin: 0 0 6px; |
|||
padding: 15px 15px 15px 50px; |
|||
width: 300px; |
|||
-moz-border-radius: 3px 3px 3px 3px; |
|||
-webkit-border-radius: 3px 3px 3px 3px; |
|||
border-radius: 3px 3px 3px 3px; |
|||
background-position: 15px center; |
|||
background-repeat: no-repeat; |
|||
-moz-box-shadow: 0 0 12px #999999; |
|||
-webkit-box-shadow: 0 0 12px #999999; |
|||
box-shadow: 0 0 12px #999999; |
|||
color: #ffffff; |
|||
opacity: 0.8; |
|||
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80); |
|||
filter: alpha(opacity=80); |
|||
} |
|||
#toast-container > :hover { |
|||
-moz-box-shadow: 0 0 12px #000000; |
|||
-webkit-box-shadow: 0 0 12px #000000; |
|||
box-shadow: 0 0 12px #000000; |
|||
opacity: 1; |
|||
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100); |
|||
filter: alpha(opacity=100); |
|||
cursor: pointer; |
|||
} |
|||
#toast-container > .toast-info { |
|||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=") !important; |
|||
} |
|||
#toast-container > .toast-error { |
|||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=") !important; |
|||
} |
|||
#toast-container > .toast-success { |
|||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==") !important; |
|||
} |
|||
#toast-container > .toast-warning { |
|||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=") !important; |
|||
} |
|||
#toast-container.toast-top-center > div, |
|||
#toast-container.toast-bottom-center > div { |
|||
width: 300px; |
|||
margin-left: auto; |
|||
margin-right: auto; |
|||
} |
|||
#toast-container.toast-top-full-width > div, |
|||
#toast-container.toast-bottom-full-width > div { |
|||
width: 96%; |
|||
margin-left: auto; |
|||
margin-right: auto; |
|||
} |
|||
.toast { |
|||
background-color: #030303; |
|||
} |
|||
.toast-success { |
|||
background-color: #51a351; |
|||
} |
|||
.toast-error { |
|||
background-color: #bd362f; |
|||
} |
|||
.toast-info { |
|||
background-color: #2f96b4; |
|||
} |
|||
.toast-warning { |
|||
background-color: #f89406; |
|||
} |
|||
.toast-progress { |
|||
position: absolute; |
|||
left: 0; |
|||
bottom: 0; |
|||
height: 4px; |
|||
background-color: #000000; |
|||
opacity: 0.4; |
|||
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=40); |
|||
filter: alpha(opacity=40); |
|||
} |
|||
/*Responsive Design*/ |
|||
@media all and (max-width: 240px) { |
|||
#toast-container > div { |
|||
padding: 8px 8px 8px 50px; |
|||
width: 11em; |
|||
} |
|||
#toast-container .toast-close-button { |
|||
right: -0.2em; |
|||
top: -0.2em; |
|||
} |
|||
} |
|||
@media all and (min-width: 241px) and (max-width: 480px) { |
|||
#toast-container > div { |
|||
padding: 8px 8px 8px 50px; |
|||
width: 18em; |
|||
} |
|||
#toast-container .toast-close-button { |
|||
right: -0.2em; |
|||
top: -0.2em; |
|||
} |
|||
} |
|||
@media all and (min-width: 481px) and (max-width: 768px) { |
|||
#toast-container > div { |
|||
padding: 15px 15px 15px 50px; |
|||
width: 25em; |
|||
} |
|||
} |
@ -0,0 +1,126 @@ |
|||
/*********************************************************************************** |
|||
* AJAX Error 및 BlockUI 처리 |
|||
***********************************************************************************/ |
|||
$(function() { |
|||
$(document).ajaxError(function(event, request, settings){ |
|||
var message = '알수없는 오류가 발생하였습니다.'; |
|||
if( typeof request.responseJSON != 'undefined' && typeof request.responseJSON.message != 'undefined' ) { |
|||
message = request.responseJSON.message; |
|||
} |
|||
else { |
|||
if( request.status == 500 ) message = '서버 코드 오류가 발생하였습니다.\n관리자에게 문의하세요'; |
|||
else if ( request.status == 401 ) message = '해당 명령을 실행할 권한이 없습니다.'; |
|||
} |
|||
toastr.error(message, '오류 발생'); |
|||
}).ajaxStart(function(){ |
|||
$.blockUI({ |
|||
css: {width:'25px',top:'49%',left:'49%',border:'0px none',backgroundColor:'transparent',cursor:'wait'}, |
|||
message : '<img src="/assets/images/common/ajax-loader.gif" alt="로딩중">', |
|||
baseZ : 10000, |
|||
overlayCSS : {opacity : 0} |
|||
}); |
|||
}).ajaxComplete(function(){ |
|||
$.unblockUI(); |
|||
}); |
|||
}); |
|||
|
|||
/*********************************************************************************************************************** |
|||
* 전체체크박스 / 체크박스 연동 |
|||
***********************************************************************************************************************/ |
|||
$(function() { |
|||
$(document).on('change', '[data-checkbox]', function() { |
|||
var $check = $(this); |
|||
var is_all = $check.data('checkbox-all') != null ? true : false; |
|||
var name = $check.data('checkbox'); |
|||
var checked = $check.prop('checked'); |
|||
var $allCheck = is_all ? $check : $('[data-checkbox="'+name+'"][data-checkbox-all]'); |
|||
|
|||
if( is_all ) { |
|||
$('[data-checkbox="'+name+'"]').prop('checked', checked ); |
|||
} |
|||
else { |
|||
$allCheck.prop('checked', $('[data-checkbox="'+name+'"]').not('[data-checkbox-all]').length == $('[data-checkbox="'+name+'"]:checked').not('[data-checkbox-all]').length); |
|||
} |
|||
}); |
|||
}); |
|||
|
|||
/*********************************************************************************************************************** |
|||
* 숫자 3자리마다 Comma 자동 입력 |
|||
***********************************************************************************************************************/ |
|||
$(function() { |
|||
$(document).on('keypress', '[data-number-format]', function(e) { |
|||
$(this).val( $(this).val().trim().unNumberFormat().numberFormat() ); |
|||
}) |
|||
}); |
|||
|
|||
/*********************************************************************************************************************** |
|||
* 숫자만 입력가능한 Input |
|||
***********************************************************************************************************************/ |
|||
$(function() { |
|||
$(document).on('keypress', '[data-number-only]', function(e) { |
|||
if (e.which != 8 && e.which != 0 && e.which != 45 && (e.which < 48 || e.which > 57)) { |
|||
e.preventDefault(); |
|||
} |
|||
}) |
|||
}); |
|||
|
|||
/*********************************************************************************************************************** |
|||
* 높이 자동조절되는 Textarea |
|||
***********************************************************************************************************************/ |
|||
$(function() { |
|||
$(document).on('keyup','textarea[data-autosize]', function(e) { |
|||
autosize($(this)); |
|||
}); |
|||
$('textarea[data-autosize]').keyup(); |
|||
}); |
|||
|
|||
$(function() { |
|||
/*********************************************************************************************************************** |
|||
* 핸드폰 번호 Input |
|||
***********************************************************************************************************************/ |
|||
$('body').on('keypress', '[data-regex="phone-number"]', function(e){ |
|||
if (e.which != 8 && e.which != 0 && e.which != 45 && (e.which < 48 || e.which > 57)) { |
|||
e.preventDefault(); |
|||
} |
|||
}).on('blur','[data-regex="phone-number"]', function(e){ |
|||
if($(this).val() == '') return; |
|||
var transNum = $(this).val().regex('phone'); |
|||
if( transNum === false ) { |
|||
toastr.error('유효하지 않은 전화번호 입니다.'); |
|||
$(this).val(""); |
|||
$(this).focus(); |
|||
return; |
|||
} |
|||
$(this).val(transNum); |
|||
}); |
|||
|
|||
/*********************************************************************************************************************** |
|||
* 전화번호 Input |
|||
***********************************************************************************************************************/ |
|||
$('body').on('blur', '[data-regex="tel-number"]', function(e){ |
|||
if($(this).val() == '') return; |
|||
var transNum = $(this).val().regex('tel'); |
|||
if( transNum === false ) { |
|||
toastr.error('유효하지 않은 전화번호 입니다.'); |
|||
$(this).val(""); |
|||
$(this).focus(); |
|||
return; |
|||
} |
|||
$(this).val(transNum); |
|||
}); |
|||
|
|||
/*********************************************************************************************************************** |
|||
* 이메일주소 Input |
|||
***********************************************************************************************************************/ |
|||
$('body').on('blur', '[data-regex="email-address"]', function(e){ |
|||
if($(this).val() == '') return; |
|||
var trans_num = $(this).val().regex('email'); |
|||
|
|||
if(! trans_num) { |
|||
toastr.error('유효하지 않은 이메일주소 입니다.'); |
|||
$(this).val(""); |
|||
$(this).focus(); |
|||
} |
|||
}); |
|||
}); |
|||
|
@ -0,0 +1,98 @@ |
|||
/********************************************************************************************************************** |
|||
* 숫자에 컴마를 붙여서 리턴한다 |
|||
* @returns {*} |
|||
*********************************************************************************************************************/ |
|||
Number.prototype.numberFormat = function(){ |
|||
if(this==0) return 0; |
|||
|
|||
var reg = /(^[+-]?\d+)(\d{3})/; |
|||
var n = (this + ''); |
|||
|
|||
while (reg.test(n)) n = n.replace(reg, '$1' + ',' + '$2'); |
|||
|
|||
return n; |
|||
}; |
|||
String.prototype.numberFormat = function() { return isNaN( parseFloat(this) ) ? "0" : (parseFloat(this)).numberFormat(); }; |
|||
|
|||
/********************************************************************************************************************** |
|||
* 컴마가 붙어있는 숫자에서 콤마를 삭제하고 숫자로 반환한다. |
|||
* @returns {*} |
|||
*********************************************************************************************************************/ |
|||
String.prototype.unNumberFormat = function() { |
|||
var str = this; |
|||
if(typeof str == 'number') return str; |
|||
str = ("" + str).replace(/,/gi,''); // 콤마 제거
|
|||
str = str.replace(/(^\s*)|(\s*$)/g, ""); // trim
|
|||
|
|||
var returnStr = new Number(str); |
|||
return isNaN(returnStr) ? str : returnStr; |
|||
}; |
|||
Number.prototype.unNumberFormat = function() { |
|||
return this; |
|||
}; |
|||
|
|||
/********************************************************************************************************************** |
|||
* 날짜를 원하는 포맷 형식으로 출력 |
|||
* @param f |
|||
* @returns {*} |
|||
*********************************************************************************************************************/ |
|||
Date.prototype.dateFormat = function(f) { |
|||
if (!this.valueOf()) return " "; |
|||
if (!f) return this; |
|||
|
|||
var weekName = ["일요일", "월요일", "화요일", "수요일", "목요일", "금요일", "토요일"], |
|||
shortWeekName = ["일", "월", "화", "수", "목", "금", "토"], |
|||
d = this; |
|||
|
|||
return f.replace(/(yyyy|yy|MM|dd|E|hh|mm|ss|a\/p)/gi, function($1) { |
|||
switch ($1) { |
|||
case "yyyy": return d.getFullYear(); |
|||
case "yy": return (d.getFullYear() % 1000).zf(2); |
|||
case "MM": return (d.getMonth() + 1).zf(2); |
|||
case "dd": return d.getDate().zf(2); |
|||
case "E": return weekName[d.getDay()]; |
|||
case "e": return shortWeekName[d.getDay()]; |
|||
case "HH": return d.getHours().zf(2); |
|||
case "hh": return ((h = d.getHours() % 12) ? h : 12).zf(2); |
|||
case "mm": return d.getMinutes().zf(2); |
|||
case "ss": return d.getSeconds().zf(2); |
|||
case "a/p": return d.getHours() < 12 ? "오전" : "오후"; |
|||
default: return $1; |
|||
} |
|||
}); |
|||
}; |
|||
String.prototype.string = function(len){var s = '', i = 0; while (i++ < len) { s += this; } return s;}; |
|||
String.prototype.zf = function(len){return "0".string(len - this.length) + this;}; |
|||
Number.prototype.zf = function(len){return this.toString().zf(len);}; |
|||
String.prototype.dateFormat = function(f) { |
|||
var d = new Date(this); |
|||
return ( d == 'Invalid Date') ? '' : d.dateFormat(f); |
|||
} |
|||
|
|||
/********************************************************************************************************************** |
|||
* 숫자를 한글명으로 바꿔서 보여줍니다. |
|||
*********************************************************************************************************************/ |
|||
Number.prototype.toKorean = function() { |
|||
var hanA = new Array("","일","이","삼","사","오","육","칠","팔","구","십"), |
|||
danA = new Array("","십","백","천","","십","백","천","","십","백","천","","십","백","천"), |
|||
num = new String(this), |
|||
result = ''; |
|||
|
|||
for(var i=0; i<num.length; i++) { |
|||
var str = "", |
|||
han = hanA[num.charAt(num.length-(i+1))]; |
|||
|
|||
if(han != "") str += han+danA[i]; |
|||
|
|||
if(i == 4) str += "만"; |
|||
if(i == 8) str += "억"; |
|||
if(i == 12) str += "조"; |
|||
|
|||
result = str + result; |
|||
} |
|||
|
|||
return result; |
|||
} |
|||
String.prototype.toKorean = function() { |
|||
return (this.unNumberFormat()).toKorean(); |
|||
} |
@ -0,0 +1,194 @@ |
|||
APP.MODAL = function() { |
|||
var modalCallback = {}; |
|||
|
|||
var defaultCss = { |
|||
width: 400, |
|||
height: 400, |
|||
position: { |
|||
left: "center", |
|||
top: "middle" |
|||
} |
|||
}; |
|||
|
|||
var defaultOption = $.extend(true, {}, defaultCss, { |
|||
iframeLoadingMsg: "", |
|||
iframe: { |
|||
method: "get", |
|||
url: "#" |
|||
}, |
|||
closeToEsc: true, |
|||
onStateChanged: function onStateChanged() { |
|||
// mask
|
|||
if (this.state === "open") { |
|||
APP.MASK.open(); |
|||
} else if (this.state === "close") { |
|||
APP.MASK.close(); |
|||
} |
|||
}, |
|||
animateTime: 100, |
|||
zIndex: 1001, |
|||
absolute: true, |
|||
fullScreen: false, |
|||
header: { |
|||
title: "새로운 윈도우", |
|||
btns: { |
|||
close: { |
|||
label: '<i class="far fa-times"></i>', onClick: function onClick() { |
|||
APP.MODAL.callback(); |
|||
} |
|||
} |
|||
} |
|||
} |
|||
}); |
|||
|
|||
var open = function(modalConfig) { |
|||
|
|||
modalConfig = $.extend(true, {}, defaultOption, modalConfig); |
|||
$(document.body).addClass("modalOpened"); |
|||
|
|||
this.modalCallback = modalConfig.callback; |
|||
this.modalSendData = modalConfig.sendData; |
|||
|
|||
APP.modal.open(modalConfig); |
|||
}; |
|||
|
|||
var css = function css(modalCss) { |
|||
modalCss = $.extend(true, {}, defaultCss, modalCss); |
|||
APP.modal.css(modalCss); |
|||
}; |
|||
var align = function align(modalAlign) { |
|||
APP.modal.align(modalAlign); |
|||
}; |
|||
var close = function close(data) { |
|||
APP.modal.close(); |
|||
setTimeout(function () { |
|||
$(document.body).removeClass("modalOpened"); |
|||
}, 500); |
|||
}; |
|||
var minimize = function minimize() { |
|||
APP.modal.minimize(); |
|||
}; |
|||
var maximize = function maximize() { |
|||
APP.modal.maximize(); |
|||
}; |
|||
var callback = function callback(data) { |
|||
if (this.modalCallback) { |
|||
this.modalCallback(data); |
|||
} |
|||
this.close(data); |
|||
}; |
|||
var getData = function getData() { |
|||
if (this.modalSendData) { |
|||
return this.modalSendData(); |
|||
} |
|||
}; |
|||
|
|||
return { |
|||
"open": open, |
|||
"css": css, |
|||
"align": align, |
|||
"close": close, |
|||
"minimize": minimize, |
|||
"maximize": maximize, |
|||
"callback": callback, |
|||
"modalCallback": modalCallback, |
|||
"getData": getData |
|||
}; |
|||
}(); |
|||
APP.MODAL2 = function() { |
|||
var modalCallback = {}; |
|||
|
|||
var defaultCss = { |
|||
width: 400, |
|||
height: 400, |
|||
position: { |
|||
left: "center", |
|||
top: "middle" |
|||
} |
|||
}; |
|||
|
|||
var defaultOption = $.extend(true, {}, defaultCss, { |
|||
iframeLoadingMsg: "", |
|||
iframe: { |
|||
method: "get", |
|||
url: "#" |
|||
}, |
|||
closeToEsc: true, |
|||
onStateChanged: function onStateChanged() { |
|||
// mask
|
|||
if (this.state === "open") { |
|||
APP.MASK2.open(); |
|||
} else if (this.state === "close") { |
|||
APP.MASK2.close(); |
|||
} |
|||
}, |
|||
animateTime: 100, |
|||
zIndex: 2001, |
|||
absolute: true, |
|||
fullScreen: false, |
|||
header: { |
|||
title: "새로운 윈도우", |
|||
btns: { |
|||
close: { |
|||
label: '<i class="far fa-times"></i>', onClick: function onClick() { |
|||
APP.MODAL2.callback(); |
|||
} |
|||
} |
|||
} |
|||
} |
|||
}); |
|||
|
|||
var open = function(modalConfig) { |
|||
|
|||
modalConfig = $.extend(true, {}, defaultOption, modalConfig); |
|||
$(document.body).addClass("modalOpened"); |
|||
|
|||
this.modalCallback = modalConfig.callback; |
|||
this.modalSendData = modalConfig.sendData; |
|||
|
|||
APP.modal2.open(modalConfig); |
|||
}; |
|||
|
|||
var css = function css(modalCss) { |
|||
modalCss = $.extend(true, {}, defaultCss, modalCss); |
|||
APP.modal2.css(modalCss); |
|||
}; |
|||
var align = function align(modalAlign) { |
|||
APP.modal2.align(modalAlign); |
|||
}; |
|||
var close = function close(data) { |
|||
APP.modal2.close(); |
|||
setTimeout(function () { |
|||
$(document.body).removeClass("modalOpened"); |
|||
}, 500); |
|||
}; |
|||
var minimize = function minimize() { |
|||
APP.modal2.minimize(); |
|||
}; |
|||
var maximize = function maximize() { |
|||
APP.modal2.maximize(); |
|||
}; |
|||
var callback = function callback(data) { |
|||
if (this.modalCallback) { |
|||
this.modalCallback(data); |
|||
} |
|||
this.close(data); |
|||
}; |
|||
var getData = function getData() { |
|||
if (this.modalSendData) { |
|||
return this.modalSendData(); |
|||
} |
|||
}; |
|||
|
|||
return { |
|||
"open": open, |
|||
"css": css, |
|||
"align": align, |
|||
"close": close, |
|||
"minimize": minimize, |
|||
"maximize": maximize, |
|||
"callback": callback, |
|||
"modalCallback": modalCallback, |
|||
"getData": getData |
|||
}; |
|||
}(); |
@ -0,0 +1,28 @@ |
|||
APP.POPUP = null; |
|||
(function($) { |
|||
APP.POPUP = function(option) { |
|||
var defaults={ |
|||
title : '_blank', |
|||
width : 800, |
|||
height : 600, |
|||
url : '' |
|||
}; |
|||
|
|||
var options = $.extend({}, defaults, option); |
|||
|
|||
cw = screen.availWidth; |
|||
ch = screen.availHeight; |
|||
sw = options.width; |
|||
sh = options.height; |
|||
|
|||
ml = (cw - sw) / 2; |
|||
mt = (ch - sh) / 2; |
|||
var option = 'width='+sw+',height='+sh+',top='+mt+',left='+ml+',scrollbars=yes,resizable=no'; |
|||
var win = window.open(options.url, options.title, option); |
|||
if (win == null || typeof(win) == "undefined" || (win == null && win.outerWidth == 0) || (win != null && win.outerHeight == 0)) |
|||
{ |
|||
alert("팝업 차단 기능이 설정되어있습니다\n\n차단 기능을 해제(팝업허용) 한 후 다시 이용해 주십시오."); |
|||
return; |
|||
} |
|||
}; |
|||
})(jQuery); |
@ -0,0 +1,49 @@ |
|||
/************************************************************************************************************************ |
|||
* 해당 문자열의 regex 검사 |
|||
* @param regexType |
|||
*************************************************************************************************************************/ |
|||
String.prototype.regex = function(regexType) { |
|||
var phoneRegex = /^(01[016789]{1}|02|0[3-9]{1}[0-9]{1})([0-9]{3,4})([0-9]{4})$/, |
|||
phoneWithHypenRegex = /^(01[016789]{1}|02|0[3-9]{1}[0-9]{1})-?([0-9]{3,4})-?([0-9]{4})$/, |
|||
telRegex = /(^02.{0}|^01.{1}|[0-9]{3})([0-9]{3,4})([0-9]{4})/, |
|||
telCheckRegex = /^\d{2,3}-\d{3,4}-\d{4}$/, |
|||
uniqueID = /^[a-z][a-z0-9_]{2,19}$/g, |
|||
emailRegex = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/, |
|||
str = this; |
|||
|
|||
switch(regexType) { |
|||
case "phone" : |
|||
var transNum = str.replace(/\s/gi, '').replace(/-/gi,''); |
|||
if(transNum.length == 11 || transNum.length == 10) { |
|||
if( phoneRegex.test(transNum) ) { |
|||
transNum = transNum.replace(phoneWithHypenRegex, '$1-$2-$3'); |
|||
return transNum; |
|||
} |
|||
} |
|||
return false; |
|||
case "tel": |
|||
var transNum = str.replace(/\s/gi, '').replace(/-/gi,''); |
|||
transNum = transNum.replace(telRegex, '$1-$2-$3'); |
|||
if(telCheckRegex.test(transNum)) { |
|||
return transNum; |
|||
} |
|||
return false; |
|||
case "email": |
|||
return emailRegex.test(str); |
|||
case "biznum" : |
|||
var checkID = new Array(1, 3, 7, 1, 3, 7, 1, 3, 5, 1), |
|||
tmpBizID, i, chkSum=0, c2, remander, |
|||
bizID = str.replace(/-/gi,''); |
|||
|
|||
for (i=0; i<=7; i++) chkSum += checkID[i] * bizID.charAt(i); |
|||
c2 = "0" + (checkID[8] * bizID.charAt(8)); |
|||
c2 = c2.substring(c2.length - 2, c2.length); |
|||
chkSum += Math.floor(c2.charAt(0)) + Math.floor(c2.charAt(1)); |
|||
remander = (10 - (chkSum % 10)) % 10 ; |
|||
|
|||
if (Math.floor(bizID.charAt(9)) == remander) return bizID.replace(/(\d{3})(\d{2})(\d{5})/, '$1-$2-$3'); |
|||
return false; |
|||
case "uniqid" : |
|||
return uniqueID.test(str); |
|||
} |
|||
}; |
@ -0,0 +1,288 @@ |
|||
/*! |
|||
autosize 4.0.2 |
|||
license: MIT |
|||
http://www.jacklmoore.com/autosize
|
|||
*/ |
|||
(function (global, factory) { |
|||
if (typeof define === "function" && define.amd) { |
|||
define(['module', 'exports'], factory); |
|||
} else if (typeof exports !== "undefined") { |
|||
factory(module, exports); |
|||
} else { |
|||
var mod = { |
|||
exports: {} |
|||
}; |
|||
factory(mod, mod.exports); |
|||
global.autosize = mod.exports; |
|||
} |
|||
})(this, function (module, exports) { |
|||
'use strict'; |
|||
|
|||
var map = typeof Map === "function" ? new Map() : function () { |
|||
var keys = []; |
|||
var values = []; |
|||
|
|||
return { |
|||
has: function has(key) { |
|||
return keys.indexOf(key) > -1; |
|||
}, |
|||
get: function get(key) { |
|||
return values[keys.indexOf(key)]; |
|||
}, |
|||
set: function set(key, value) { |
|||
if (keys.indexOf(key) === -1) { |
|||
keys.push(key); |
|||
values.push(value); |
|||
} |
|||
}, |
|||
delete: function _delete(key) { |
|||
var index = keys.indexOf(key); |
|||
if (index > -1) { |
|||
keys.splice(index, 1); |
|||
values.splice(index, 1); |
|||
} |
|||
} |
|||
}; |
|||
}(); |
|||
|
|||
var createEvent = function createEvent(name) { |
|||
return new Event(name, { bubbles: true }); |
|||
}; |
|||
try { |
|||
new Event('test'); |
|||
} catch (e) { |
|||
// IE does not support `new Event()`
|
|||
createEvent = function createEvent(name) { |
|||
var evt = document.createEvent('Event'); |
|||
evt.initEvent(name, true, false); |
|||
return evt; |
|||
}; |
|||
} |
|||
|
|||
function assign(ta) { |
|||
if (!ta || !ta.nodeName || ta.nodeName !== 'TEXTAREA' || map.has(ta)) return; |
|||
|
|||
var heightOffset = null; |
|||
var clientWidth = null; |
|||
var cachedHeight = null; |
|||
|
|||
function init() { |
|||
var style = window.getComputedStyle(ta, null); |
|||
|
|||
if (style.resize === 'vertical') { |
|||
ta.style.resize = 'none'; |
|||
} else if (style.resize === 'both') { |
|||
ta.style.resize = 'horizontal'; |
|||
} |
|||
|
|||
if (style.boxSizing === 'content-box') { |
|||
heightOffset = -(parseFloat(style.paddingTop) + parseFloat(style.paddingBottom)); |
|||
} else { |
|||
heightOffset = parseFloat(style.borderTopWidth) + parseFloat(style.borderBottomWidth); |
|||
} |
|||
// Fix when a textarea is not on document body and heightOffset is Not a Number
|
|||
if (isNaN(heightOffset)) { |
|||
heightOffset = 0; |
|||
} |
|||
|
|||
update(); |
|||
} |
|||
|
|||
function changeOverflow(value) { |
|||
{ |
|||
// Chrome/Safari-specific fix:
|
|||
// When the textarea y-overflow is hidden, Chrome/Safari do not reflow the text to account for the space
|
|||
// made available by removing the scrollbar. The following forces the necessary text reflow.
|
|||
var width = ta.style.width; |
|||
ta.style.width = '0px'; |
|||
// Force reflow:
|
|||
/* jshint ignore:start */ |
|||
ta.offsetWidth; |
|||
/* jshint ignore:end */ |
|||
ta.style.width = width; |
|||
} |
|||
|
|||
ta.style.overflowY = value; |
|||
} |
|||
|
|||
function getParentOverflows(el) { |
|||
var arr = []; |
|||
|
|||
while (el && el.parentNode && el.parentNode instanceof Element) { |
|||
if (el.parentNode.scrollTop) { |
|||
arr.push({ |
|||
node: el.parentNode, |
|||
scrollTop: el.parentNode.scrollTop |
|||
}); |
|||
} |
|||
el = el.parentNode; |
|||
} |
|||
|
|||
return arr; |
|||
} |
|||
|
|||
function resize() { |
|||
if (ta.scrollHeight === 0) { |
|||
// If the scrollHeight is 0, then the element probably has display:none or is detached from the DOM.
|
|||
return; |
|||
} |
|||
|
|||
var overflows = getParentOverflows(ta); |
|||
var docTop = document.documentElement && document.documentElement.scrollTop; // Needed for Mobile IE (ticket #240)
|
|||
|
|||
ta.style.height = ''; |
|||
ta.style.height = ta.scrollHeight + heightOffset + 'px'; |
|||
|
|||
// used to check if an update is actually necessary on window.resize
|
|||
clientWidth = ta.clientWidth; |
|||
|
|||
// prevents scroll-position jumping
|
|||
overflows.forEach(function (el) { |
|||
el.node.scrollTop = el.scrollTop; |
|||
}); |
|||
|
|||
if (docTop) { |
|||
document.documentElement.scrollTop = docTop; |
|||
} |
|||
} |
|||
|
|||
function update() { |
|||
resize(); |
|||
|
|||
var styleHeight = Math.round(parseFloat(ta.style.height)); |
|||
var computed = window.getComputedStyle(ta, null); |
|||
|
|||
// Using offsetHeight as a replacement for computed.height in IE, because IE does not account use of border-box
|
|||
var actualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(computed.height)) : ta.offsetHeight; |
|||
|
|||
// The actual height not matching the style height (set via the resize method) indicates that
|
|||
// the max-height has been exceeded, in which case the overflow should be allowed.
|
|||
if (actualHeight < styleHeight) { |
|||
if (computed.overflowY === 'hidden') { |
|||
changeOverflow('scroll'); |
|||
resize(); |
|||
actualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(window.getComputedStyle(ta, null).height)) : ta.offsetHeight; |
|||
} |
|||
} else { |
|||
// Normally keep overflow set to hidden, to avoid flash of scrollbar as the textarea expands.
|
|||
if (computed.overflowY !== 'hidden') { |
|||
changeOverflow('hidden'); |
|||
resize(); |
|||
actualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(window.getComputedStyle(ta, null).height)) : ta.offsetHeight; |
|||
} |
|||
} |
|||
|
|||
if (cachedHeight !== actualHeight) { |
|||
cachedHeight = actualHeight; |
|||
var evt = createEvent('autosize:resized'); |
|||
try { |
|||
ta.dispatchEvent(evt); |
|||
} catch (err) { |
|||
// Firefox will throw an error on dispatchEvent for a detached element
|
|||
// https://bugzilla.mozilla.org/show_bug.cgi?id=889376
|
|||
} |
|||
} |
|||
} |
|||
|
|||
var pageResize = function pageResize() { |
|||
if (ta.clientWidth !== clientWidth) { |
|||
update(); |
|||
} |
|||
}; |
|||
|
|||
var destroy = function (style) { |
|||
window.removeEventListener('resize', pageResize, false); |
|||
ta.removeEventListener('input', update, false); |
|||
ta.removeEventListener('keyup', update, false); |
|||
ta.removeEventListener('autosize:destroy', destroy, false); |
|||
ta.removeEventListener('autosize:update', update, false); |
|||
|
|||
Object.keys(style).forEach(function (key) { |
|||
ta.style[key] = style[key]; |
|||
}); |
|||
|
|||
map.delete(ta); |
|||
}.bind(ta, { |
|||
height: ta.style.height, |
|||
resize: ta.style.resize, |
|||
overflowY: ta.style.overflowY, |
|||
overflowX: ta.style.overflowX, |
|||
wordWrap: ta.style.wordWrap |
|||
}); |
|||
|
|||
ta.addEventListener('autosize:destroy', destroy, false); |
|||
|
|||
// IE9 does not fire onpropertychange or oninput for deletions,
|
|||
// so binding to onkeyup to catch most of those events.
|
|||
// There is no way that I know of to detect something like 'cut' in IE9.
|
|||
if ('onpropertychange' in ta && 'oninput' in ta) { |
|||
ta.addEventListener('keyup', update, false); |
|||
} |
|||
|
|||
window.addEventListener('resize', pageResize, false); |
|||
ta.addEventListener('input', update, false); |
|||
ta.addEventListener('autosize:update', update, false); |
|||
ta.style.overflowX = 'hidden'; |
|||
ta.style.wordWrap = 'break-word'; |
|||
|
|||
map.set(ta, { |
|||
destroy: destroy, |
|||
update: update |
|||
}); |
|||
|
|||
init(); |
|||
} |
|||
|
|||
function destroy(ta) { |
|||
var methods = map.get(ta); |
|||
if (methods) { |
|||
methods.destroy(); |
|||
} |
|||
} |
|||
|
|||
function update(ta) { |
|||
var methods = map.get(ta); |
|||
if (methods) { |
|||
methods.update(); |
|||
} |
|||
} |
|||
|
|||
var autosize = null; |
|||
|
|||
// Do nothing in Node.js environment and IE8 (or lower)
|
|||
if (typeof window === 'undefined' || typeof window.getComputedStyle !== 'function') { |
|||
autosize = function autosize(el) { |
|||
return el; |
|||
}; |
|||
autosize.destroy = function (el) { |
|||
return el; |
|||
}; |
|||
autosize.update = function (el) { |
|||
return el; |
|||
}; |
|||
} else { |
|||
autosize = function autosize(el, options) { |
|||
if (el) { |
|||
Array.prototype.forEach.call(el.length ? el : [el], function (x) { |
|||
return assign(x, options); |
|||
}); |
|||
} |
|||
return el; |
|||
}; |
|||
autosize.destroy = function (el) { |
|||
if (el) { |
|||
Array.prototype.forEach.call(el.length ? el : [el], destroy); |
|||
} |
|||
return el; |
|||
}; |
|||
autosize.update = function (el) { |
|||
if (el) { |
|||
Array.prototype.forEach.call(el.length ? el : [el], update); |
|||
} |
|||
return el; |
|||
}; |
|||
} |
|||
|
|||
exports.default = autosize; |
|||
module.exports = exports['default']; |
|||
}); |
@ -0,0 +1,98 @@ |
|||
.ellipsis { text-overflow:ellipsis; white-space:nowrap; word-wrap:normal; overflow:hidden; } |
|||
.admin-help-wrap { |
|||
width:700px; margin:0 auto; |
|||
li > img {width:700px;} |
|||
.point-color {color:#e60035} |
|||
} |
|||
.sr-only { |
|||
position: absolute; |
|||
width: 1px; |
|||
height: 1px; |
|||
padding: 0; |
|||
overflow: hidden; |
|||
clip: rect(0, 0, 0, 0); |
|||
white-space: nowrap; |
|||
border: 0; |
|||
|
|||
&.sr-only-focusable { |
|||
&:active, |
|||
&:focus { |
|||
position: static; |
|||
width: auto; |
|||
height: auto; |
|||
overflow: visible; |
|||
clip: auto; |
|||
white-space: normal; |
|||
} |
|||
} |
|||
} |
|||
|
|||
.clearfix { |
|||
&, |
|||
&:before, |
|||
&:after { |
|||
@include clear-fix(); |
|||
} |
|||
} |
|||
|
|||
|
|||
/* 높이/너비/마진/패딩 */ |
|||
@for $i from 1 to 201 { |
|||
.H#{$i * 5} { |
|||
height: 5px * $i !important; |
|||
} |
|||
} |
|||
@for $i from 1 to 201{ |
|||
.W#{$i * 5} { |
|||
width: 5px * $i !important; |
|||
} |
|||
} |
|||
@for $i from 1 to 10 { |
|||
.M#{$i * 5} { |
|||
margin:5px * $i; |
|||
} |
|||
.MT#{$i * 5} { |
|||
margin-top:5px * $i; |
|||
} |
|||
.MR#{$i*5} { |
|||
margin-right:5px * $i; |
|||
} |
|||
.MB#{$i * 5} { |
|||
margin-bottom:5px * $i; |
|||
} |
|||
.ML#{$i * 5} { |
|||
margin-left:5px * $i; |
|||
} |
|||
.PT#{$i * 5} { |
|||
padding-top:5px * $i; |
|||
} |
|||
.PR#{$i * 5} { |
|||
padding-right:5px * $i; |
|||
} |
|||
.PB#{$i * 5} { |
|||
padding-bottom:5px * $i; |
|||
} |
|||
.PL#{$i * 5} { |
|||
padding-left:5px * $i; |
|||
} |
|||
.P#{$i * 5} { |
|||
padding:5px * $i; |
|||
} |
|||
} |
|||
|
|||
.text-center { |
|||
text-align:center !important; |
|||
} |
|||
|
|||
.text-left { |
|||
text-align:left !important; |
|||
} |
|||
|
|||
.text-right { |
|||
text-align:right !important; |
|||
} |
|||
|
|||
.margin-auto { |
|||
margin-left:auto; |
|||
margin-right:auto; |
|||
} |
@ -0,0 +1,15 @@ |
|||
@import "reset"; |
|||
@import "mixins"; |
|||
@import "function"; |
|||
|
|||
@import "plugins/fontawesome5/fontawesome"; |
|||
@import "plugins/fontawesome5/regular"; |
|||
@import "plugins/fontawesome5/light"; |
|||
@import "plugins/fontawesome5/solid"; |
|||
@import "plugins/fontawesome5/brands"; |
|||
@import "plugins/toastr"; |
|||
@import "plugins/ax5ui/ax5"; |
|||
@import "plugins/ax5ui/ax5mask"; |
|||
@import "plugins/ax5ui/ax5modal"; |
|||
|
|||
@import "utility"; |
293
_src/common/scss/plugins/fontawesome5/_icons.scss
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
296
_src/common/scss/plugins/fontawesome5/_variables.scss
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -1,5 +1,5 @@ |
|||
/*! |
|||
* Font Awesome Pro 5.5.0 by @fontawesome - https://fontawesome.com |
|||
* Font Awesome Pro 5.9.0 by @fontawesome - https://fontawesome.com |
|||
* License - https://fontawesome.com/license (Commercial License) |
|||
*/ |
|||
@import 'variables'; |
@ -1,5 +1,5 @@ |
|||
/*! |
|||
* Font Awesome Pro 5.5.0 by @fontawesome - https://fontawesome.com |
|||
* Font Awesome Pro 5.9.0 by @fontawesome - https://fontawesome.com |
|||
* License - https://fontawesome.com/license (Commercial License) |
|||
*/ |
|||
@import 'variables'; |
@ -1,5 +0,0 @@ |
|||
// 기본 픽셀 사이즈를 rem 단위 사이즈로 변환 |
|||
@function REM($pxSize:16px){ |
|||
$remSize : $pxSize / $font-size-base !global; |
|||
@return #{$remSize}rem; |
|||
} |
@ -1,56 +0,0 @@ |
|||
// Clear FIX |
|||
@mixin clear-fix() { |
|||
display:block; |
|||
clear:both; |
|||
content:""; |
|||
} |
|||
|
|||
// Button Default Style |
|||
@mixin button-default() { |
|||
display: inline-block; |
|||
margin:0; |
|||
font-weight: normal; |
|||
text-align: center; |
|||
white-space: nowrap; |
|||
user-select: none; |
|||
text-decoration: none; |
|||
outline:0; |
|||
vertical-align:middle; |
|||
|
|||
&:disabled, |
|||
&.disabled { |
|||
opacity:0.65; |
|||
} |
|||
|
|||
&:not([disabled]):not(.disabled) { |
|||
cursor: pointer; |
|||
} |
|||
} |
|||
|
|||
// background Image |
|||
@mixin background-image( $image_url, $bg_color:transparent, $background-repeat:no-repeat, $background-position-x:center, $background-position-y:center ) |
|||
{ |
|||
background-color:$bg_color; |
|||
background-image:url($image_url); |
|||
background-repeat: $background-repeat; |
|||
background-position-x:$background-position-x; |
|||
background-position-y:$background-position-y; |
|||
} |
|||
|
|||
// Global Transition |
|||
@mixin transition($second:.3s, $target:all, $animation:$default-animation) |
|||
{ |
|||
-webkit-transition: $target $second $animation; |
|||
-moz-transition: $target $second $animation; |
|||
-ms-transition: $target $second $animation; |
|||
-o-transition: $target $second $animation; |
|||
transition: $target $second $animation; |
|||
} |
|||
|
|||
// Display flex & Prefix |
|||
@mixin display-flex() |
|||
{ |
|||
-webkit-display:flex; |
|||
display:-ms-flex; |
|||
display:flex; |
|||
} |
@ -1,77 +1,3 @@ |
|||
/*************************************************************************************** |
|||
* 유틸리티 |
|||
****************************************************************************************/ |
|||
.sr-only { |
|||
position: absolute; |
|||
width: 1px; |
|||
height: 1px; |
|||
padding: 0; |
|||
overflow: hidden; |
|||
clip: rect(0, 0, 0, 0); |
|||
white-space: nowrap; |
|||
border: 0; |
|||
|
|||
&.sr-only-focusable { |
|||
&:active, |
|||
&:focus { |
|||
position: static; |
|||
width: auto; |
|||
height: auto; |
|||
overflow: visible; |
|||
clip: auto; |
|||
white-space: normal; |
|||
} |
|||
} |
|||
} |
|||
|
|||
.clearfix { |
|||
&, |
|||
&:before, |
|||
&:after { |
|||
@include clear-fix(); |
|||
} |
|||
} |
|||
|
|||
/* 높이/너비/마진/패딩 */ |
|||
@for $i from 2 to 10 { |
|||
.H#{$i * 5} { |
|||
height: 5px * $i !important; |
|||
} |
|||
} |
|||
@for $i from 2 to 20 { |
|||
.W#{$i * 25} { |
|||
width: 25px * $i !important; |
|||
} |
|||
} |
|||
@for $i from 1 to 10 { |
|||
.M#{$i * 5} { |
|||
margin:5px * $i; |
|||
} |
|||
.MT#{$i * 5} { |
|||
margin-top:5px * $i; |
|||
} |
|||
.MR#{$i*5} { |
|||
margin-right:5px * $i; |
|||
} |
|||
.MB#{$i * 5} { |
|||
margin-bottom:5px * $i; |
|||
} |
|||
.ML#{$i * 5} { |
|||
margin-left:5px * $i; |
|||
} |
|||
.PT#{$i * 5} { |
|||
padding-top:5px * $i; |
|||
} |
|||
.PR#{$i * 5} { |
|||
padding-right:5px * $i; |
|||
} |
|||
.PB#{$i * 5} { |
|||
padding-bottom:5px * $i; |
|||
} |
|||
.PL#{$i * 5} { |
|||
padding-left:5px * $i; |
|||
} |
|||
.P#{$i * 5} { |
|||
padding:5px * $i; |
|||
} |
|||
} |
@ -1,20 +0,0 @@ |
|||
// Animated Icons |
|||
// -------------------------- |
|||
|
|||
.#{$fa-css-prefix}-spin { |
|||
animation: fa-spin 2s infinite linear; |
|||
} |
|||
|
|||
.#{$fa-css-prefix}-pulse { |
|||
animation: fa-spin 1s infinite steps(8); |
|||
} |
|||
|
|||
@keyframes fa-spin { |
|||
0% { |
|||
transform: rotate(0deg); |
|||
} |
|||
|
|||
100% { |
|||
transform: rotate(360deg); |
|||
} |
|||
} |
@ -1,20 +0,0 @@ |
|||
// Bordered & Pulled |
|||
// ------------------------- |
|||
|
|||
.#{$fa-css-prefix}-border { |
|||
border: solid .08em $fa-border-color; |
|||
border-radius: .1em; |
|||
padding: .2em .25em .15em; |
|||
} |
|||
|
|||
.#{$fa-css-prefix}-pull-left { float: left; } |
|||
.#{$fa-css-prefix}-pull-right { float: right; } |
|||
|
|||
.#{$fa-css-prefix}, |
|||
.fas, |
|||
.far, |
|||
.fal, |
|||
.fab { |
|||
&.#{$fa-css-prefix}-pull-left { margin-right: .3em; } |
|||
&.#{$fa-css-prefix}-pull-right { margin-left: .3em; } |
|||
} |
@ -1,20 +0,0 @@ |
|||
// Base Class Definition |
|||
// ------------------------- |
|||
|
|||
.#{$fa-css-prefix}, |
|||
.fas, |
|||
.far, |
|||
.fal, |
|||
.fab { |
|||
-moz-osx-font-smoothing: grayscale; |
|||
-webkit-font-smoothing: antialiased; |
|||
display: inline-block; |
|||
font-style: normal; |
|||
font-variant: normal; |
|||
text-rendering: auto; |
|||
line-height: 1; |
|||
} |
|||
|
|||
%fa-icon { |
|||
@include fa-icon; |
|||
} |
@ -1,6 +0,0 @@ |
|||
// Fixed Width Icons |
|||
// ------------------------- |
|||
.#{$fa-css-prefix}-fw { |
|||
text-align: center; |
|||
width: $fa-fw-width; |
|||
} |
1786
_src/desktop/scss/plugins/fontawesome5/_icons.scss
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -1,23 +0,0 @@ |
|||
// Icon Sizes |
|||
// ------------------------- |
|||
|
|||
// makes the font 33% larger relative to the icon container |
|||
.#{$fa-css-prefix}-lg { |
|||
font-size: (4em / 3); |
|||
line-height: (3em / 4); |
|||
vertical-align: -.0667em; |
|||
} |
|||
|
|||
.#{$fa-css-prefix}-xs { |
|||
font-size: .75em; |
|||
} |
|||
|
|||
.#{$fa-css-prefix}-sm { |
|||
font-size: .875em; |
|||
} |
|||
|
|||
@for $i from 1 through 10 { |
|||
.#{$fa-css-prefix}-#{$i}x { |
|||
font-size: $i * 1em; |
|||
} |
|||
} |
@ -1,18 +0,0 @@ |
|||
// List Icons |
|||
// ------------------------- |
|||
|
|||
.#{$fa-css-prefix}-ul { |
|||
list-style-type: none; |
|||
margin-left: $fa-li-width * 5/4; |
|||
padding-left: 0; |
|||
|
|||
> li { position: relative; } |
|||
} |
|||
|
|||
.#{$fa-css-prefix}-li { |
|||
left: -$fa-li-width; |
|||
position: absolute; |
|||
text-align: center; |
|||
width: $fa-li-width; |
|||
line-height: inherit; |
|||
} |
@ -1,57 +0,0 @@ |
|||
// Mixins |
|||
// -------------------------- |
|||
|
|||
@mixin fa-icon { |
|||
-webkit-font-smoothing: antialiased; |
|||
-moz-osx-font-smoothing: grayscale; |
|||
display: inline-block; |
|||
font-style: normal; |
|||
font-variant: normal; |
|||
font-weight: normal; |
|||
line-height: 1; |
|||
vertical-align: -.125em; |
|||
} |
|||
|
|||
@mixin fa-icon-rotate($degrees, $rotation) { |
|||
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation})"; |
|||
transform: rotate($degrees); |
|||
} |
|||
|
|||
@mixin fa-icon-flip($horiz, $vert, $rotation) { |
|||
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}, mirror=1)"; |
|||
transform: scale($horiz, $vert); |
|||
} |
|||
|
|||
|
|||
// Only display content to screen readers. A la Bootstrap 4. |
|||
// |
|||
// See: http://a11yproject.com/posts/how-to-hide-content/ |
|||
|
|||
@mixin sr-only { |
|||
border: 0; |
|||
clip: rect(0, 0, 0, 0); |
|||
height: 1px; |
|||
margin: -1px; |
|||
overflow: hidden; |
|||
padding: 0; |
|||
position: absolute; |
|||
width: 1px; |
|||
} |
|||
|
|||
// Use in conjunction with .sr-only to only display content when it's focused. |
|||
// |
|||
// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1 |
|||
// |
|||
// Credit: HTML5 Boilerplate |
|||
|
|||
@mixin sr-only-focusable { |
|||
&:active, |
|||
&:focus { |
|||
clip: auto; |
|||
height: auto; |
|||
margin: 0; |
|||
overflow: visible; |
|||
position: static; |
|||
width: auto; |
|||
} |
|||
} |
@ -1,5 +0,0 @@ |
|||
// Screen Readers |
|||
// ------------------------- |
|||
|
|||
.sr-only { @include sr-only; } |
|||
.sr-only-focusable { @include sr-only-focusable; } |
2062
_src/desktop/scss/plugins/fontawesome5/_shims.scss
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -1,31 +0,0 @@ |
|||
// Stacked Icons |
|||
// ------------------------- |
|||
|
|||
.#{$fa-css-prefix}-stack { |
|||
display: inline-block; |
|||
height: 2em; |
|||
line-height: 2em; |
|||
position: relative; |
|||
vertical-align: middle; |
|||
width: ($fa-fw-width*2); |
|||
} |
|||
|
|||
.#{$fa-css-prefix}-stack-1x, |
|||
.#{$fa-css-prefix}-stack-2x { |
|||
left: 0; |
|||
position: absolute; |
|||
text-align: center; |
|||
width: 100%; |
|||
} |
|||
|
|||
.#{$fa-css-prefix}-stack-1x { |
|||
line-height: inherit; |
|||
} |
|||
|
|||
.#{$fa-css-prefix}-stack-2x { |
|||
font-size: 2em; |
|||
} |
|||
|
|||
.#{$fa-css-prefix}-inverse { |
|||
color: $fa-inverse; |
|||
} |
1800
_src/desktop/scss/plugins/fontawesome5/_variables.scss
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -1,16 +0,0 @@ |
|||
/*! |
|||
* Font Awesome Pro 5.5.0 by @fontawesome - https://fontawesome.com |
|||
* License - https://fontawesome.com/license (Commercial License) |
|||
*/ |
|||
@import 'variables'; |
|||
@import 'mixins'; |
|||
@import 'core'; |
|||
@import 'larger'; |
|||
@import 'fixed-width'; |
|||
@import 'list'; |
|||
@import 'bordered-pulled'; |
|||
@import 'animated'; |
|||
@import 'rotated-flipped'; |
|||
@import 'stacked'; |
|||
@import 'icons'; |
|||
@import 'screen-reader'; |
@ -1,22 +0,0 @@ |
|||
/*! |
|||
* Font Awesome Pro 5.5.0 by @fontawesome - https://fontawesome.com |
|||
* License - https://fontawesome.com/license (Commercial License) |
|||
*/ |
|||
@import 'variables'; |
|||
|
|||
@font-face { |
|||
font-family: 'Font Awesome 5 Pro'; |
|||
font-style: normal; |
|||
font-weight: 300; |
|||
src: url('#{$fa-font-path}/fa-light-300.eot'); |
|||
src: url('#{$fa-font-path}/fa-light-300.eot?#iefix') format('embedded-opentype'), |
|||
url('#{$fa-font-path}/fa-light-300.woff2') format('woff2'), |
|||
url('#{$fa-font-path}/fa-light-300.woff') format('woff'), |
|||
url('#{$fa-font-path}/fa-light-300.ttf') format('truetype'), |
|||
url('#{$fa-font-path}/fa-light-300.svg#fontawesome') format('svg'); |
|||
} |
|||
|
|||
.fal { |
|||
font-family: 'Font Awesome 5 Pro'; |
|||
font-weight: 300; |
|||
} |
@ -1,22 +0,0 @@ |
|||
/*! |
|||
* Font Awesome Pro 5.5.0 by @fontawesome - https://fontawesome.com |
|||
* License - https://fontawesome.com/license (Commercial License) |
|||
*/ |
|||
@import 'variables'; |
|||
|
|||
@font-face { |
|||
font-family: 'Font Awesome 5 Pro'; |
|||
font-style: normal; |
|||
font-weight: 400; |
|||
src: url('#{$fa-font-path}/fa-regular-400.eot'); |
|||
src: url('#{$fa-font-path}/fa-regular-400.eot?#iefix') format('embedded-opentype'), |
|||
url('#{$fa-font-path}/fa-regular-400.woff2') format('woff2'), |
|||
url('#{$fa-font-path}/fa-regular-400.woff') format('woff'), |
|||
url('#{$fa-font-path}/fa-regular-400.ttf') format('truetype'), |
|||
url('#{$fa-font-path}/fa-regular-400.svg#fontawesome') format('svg'); |
|||
} |
|||
|
|||
.far { |
|||
font-family: 'Font Awesome 5 Pro'; |
|||
font-weight: 400; |
|||
} |
@ -1,6 +0,0 @@ |
|||
/*! |
|||
* Font Awesome Pro 5.5.0 by @fontawesome - https://fontawesome.com |
|||
* License - https://fontawesome.com/license (Commercial License) |
|||
*/ |
|||
@import 'variables'; |
|||
@import 'shims'; |
@ -1,5 +0,0 @@ |
|||
// 기본 픽셀 사이즈를 rem 단위 사이즈로 변환 |
|||
@function REM($pxSize:16px){ |
|||
$remSize : $pxSize / $font-size-base !global; |
|||
@return #{$remSize}rem; |
|||
} |
@ -1,56 +0,0 @@ |
|||
// Clear FIX |
|||
@mixin clear-fix() { |
|||
display:block; |
|||
clear:both; |
|||
content:""; |
|||
} |
|||
|
|||
// Button Default Style |
|||
@mixin button-default() { |
|||
display: inline-block; |
|||
margin:0; |
|||
font-weight: normal; |
|||
text-align: center; |
|||
white-space: nowrap; |
|||
user-select: none; |
|||
text-decoration: none; |
|||
outline:0; |
|||
vertical-align:middle; |
|||
|
|||
&:disabled, |
|||
&.disabled { |
|||
opacity:0.65; |
|||
} |
|||
|
|||
&:not([disabled]):not(.disabled) { |
|||
cursor: pointer; |
|||
} |
|||
} |
|||
|
|||
// background Image |
|||
@mixin background-image( $image_url, $bg_color:transparent, $background-repeat:no-repat, $background-position-x:center, $background-position-y:center ) |
|||
{ |
|||
background-color:$bg_color; |
|||
background-image:url($image_url); |
|||
background-repeat: $background-repeat; |
|||
background-position-x:$background-position-x; |
|||
background-position-y:$background-position-y; |
|||
} |
|||
|
|||
// Global Transition |
|||
@mixin transition($second:.3s, $target:all, $animation:$default-animation) |
|||
{ |
|||
-webkit-transition: $target $second $animation; |
|||
-moz-transition: $target $second $animation; |
|||
-ms-transition: $target $second $animation; |
|||
-o-transition: $target $second $animation; |
|||
transition: $target $second $animation; |
|||
} |
|||
|
|||
// Display flex & Prefix |
|||
@mixin display-flex() |
|||
{ |
|||
-webkit-display:flex; |
|||
display:-ms-flex; |
|||
display:flex; |
|||
} |
@ -1,33 +1,3 @@ |
|||
/*************************************************************************************** |
|||
* 유틸리티 |
|||
****************************************************************************************/ |
|||
.sr-only { |
|||
position: absolute; |
|||
width: 1px; |
|||
height: 1px; |
|||
padding: 0; |
|||
overflow: hidden; |
|||
clip: rect(0, 0, 0, 0); |
|||
white-space: nowrap; |
|||
border: 0; |
|||
|
|||
&.sr-only-focusable { |
|||
&:active, |
|||
&:focus { |
|||
position: static; |
|||
width: auto; |
|||
height: auto; |
|||
overflow: visible; |
|||
clip: auto; |
|||
white-space: normal; |
|||
} |
|||
} |
|||
} |
|||
|
|||
.clearfix { |
|||
&, |
|||
&:before, |
|||
&:after { |
|||
@include clear-fix(); |
|||
} |
|||
} |
@ -1,220 +0,0 @@ |
|||
.toast-title { |
|||
font-weight: bold; |
|||
} |
|||
.toast-message { |
|||
-ms-word-wrap: break-word; |
|||
word-wrap: break-word; |
|||
a, |
|||
label { |
|||
color: #ffffff; |
|||
} |
|||
a { |
|||
&:hover { |
|||
color: #cccccc; |
|||
text-decoration: none; |
|||
} |
|||
} |
|||
} |
|||
.toast-close-button { |
|||
position: relative; |
|||
right: -0.3em; |
|||
top: -0.3em; |
|||
float: right; |
|||
font-size: 20px; |
|||
font-weight: bold; |
|||
color: #ffffff; |
|||
-webkit-text-shadow: 0 1px 0 #ffffff; |
|||
text-shadow: 0 1px 0 #ffffff; |
|||
opacity: 0.8; |
|||
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80); |
|||
filter: alpha(opacity=80); |
|||
|
|||
&:hover, |
|||
&:focus { |
|||
color: #000000; |
|||
text-decoration: none; |
|||
cursor: pointer; |
|||
opacity: 0.4; |
|||
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=40); |
|||
filter: alpha(opacity=40); |
|||
} |
|||
} |
|||
|
|||
button.toast-close-button { |
|||
|
|||
padding: 0; |
|||
cursor: pointer; |
|||
background: transparent; |
|||
border: 0; |
|||
-webkit-appearance: none; |
|||
} |
|||
|
|||
#toast-container { |
|||
position: fixed; |
|||
z-index: 999999; |
|||
pointer-events: none; |
|||
|
|||
* { |
|||
-moz-box-sizing: border-box; |
|||
-webkit-box-sizing: border-box; |
|||
box-sizing: border-box; |
|||
} |
|||
|
|||
> div { |
|||
position: relative; |
|||
pointer-events: auto; |
|||
overflow: hidden; |
|||
margin: 0 0 6px; |
|||
padding: 15px 15px 15px 50px; |
|||
width: 300px; |
|||
-moz-border-radius: 3px 3px 3px 3px; |
|||
-webkit-border-radius: 3px 3px 3px 3px; |
|||
border-radius: 3px 3px 3px 3px; |
|||
background-position: 15px center; |
|||
background-repeat: no-repeat; |
|||
-moz-box-shadow: 0 0 12px #999999; |
|||
-webkit-box-shadow: 0 0 12px #999999; |
|||
box-shadow: 0 0 12px #999999; |
|||
color: #ffffff; |
|||
opacity: 0.8; |
|||
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80); |
|||
filter: alpha(opacity=80); |
|||
} |
|||
|
|||
> :hover { |
|||
-moz-box-shadow: 0 0 12px #000000; |
|||
-webkit-box-shadow: 0 0 12px #000000; |
|||
box-shadow: 0 0 12px #000000; |
|||
opacity: 1; |
|||
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100); |
|||
filter: alpha(opacity=100); |
|||
cursor: pointer; |
|||
} |
|||
|
|||
> .toast-info { |
|||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=") !important; |
|||
} |
|||
|
|||
> .toast-error { |
|||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=") !important; |
|||
} |
|||
|
|||
> .toast-success { |
|||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==") !important; |
|||
} |
|||
|
|||
> .toast-warning { |
|||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=") !important; |
|||
} |
|||
|
|||
&.toast-top-center { |
|||
top: 0; |
|||
right: 0; |
|||
width: 100%; |
|||
} |
|||
|
|||
&.toast-bottom-center { |
|||
bottom: 0; |
|||
right: 0; |
|||
width: 100%; |
|||
} |
|||
|
|||
&.toast-top-full-width { |
|||
top: 0; |
|||
right: 0; |
|||
width: 100%; |
|||
} |
|||
|
|||
&.toast-bottom-full-width { |
|||
bottom: 0; |
|||
right: 0; |
|||
width: 100%; |
|||
} |
|||
|
|||
&.toast-top-left { |
|||
top: 12px; |
|||
left: 12px; |
|||
} |
|||
|
|||
&.toast-top-right { |
|||
top: 12px; |
|||
right: 12px; |
|||
} |
|||
|
|||
&.toast-bottom-right { |
|||
right: 12px; |
|||
bottom: 12px; |
|||
} |
|||
|
|||
&.toast-bottom-left { |
|||
bottom: 12px; |
|||
left: 12px; |
|||
} |
|||
|
|||
&.toast-top-center > div, |
|||
&.toast-bottom-center > div { |
|||
width: 300px; |
|||
margin-left: auto; |
|||
margin-right: auto; |
|||
} |
|||
|
|||
&.toast-top-full-width > div, |
|||
&.toast-bottom-full-width > div { |
|||
width: 96%; |
|||
margin-left: auto; |
|||
margin-right: auto; |
|||
} |
|||
} |
|||
|
|||
.toast { |
|||
background-color: #030303; |
|||
} |
|||
.toast-success { |
|||
background-color: #51a351; |
|||
} |
|||
.toast-error { |
|||
background-color: #bd362f; |
|||
} |
|||
.toast-info { |
|||
background-color: #2f96b4; |
|||
} |
|||
.toast-warning { |
|||
background-color: #f89406; |
|||
} |
|||
.toast-progress { |
|||
position: absolute; |
|||
left: 0; |
|||
bottom: 0; |
|||
height: 4px; |
|||
background-color: #000000; |
|||
opacity: 0.4; |
|||
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=40); |
|||
filter: alpha(opacity=40); |
|||
} |
|||
/*Responsive Design*/ |
|||
@media all and (max-width: 240px) { |
|||
#toast-container > div { |
|||
padding: 8px 8px 8px 50px; |
|||
width: 11em; |
|||
} |
|||
#toast-container .toast-close-button { |
|||
right: -0.2em; |
|||
top: -0.2em; |
|||
} |
|||
} |
|||
@media all and (min-width: 241px) and (max-width: 480px) { |
|||
#toast-container > div { |
|||
padding: 8px 8px 8px 50px; |
|||
width: 18em; |
|||
} |
|||
#toast-container .toast-close-button { |
|||
right: -0.2em; |
|||
top: -0.2em; |
|||
} |
|||
} |
|||
@media all and (min-width: 481px) and (max-width: 768px) { |
|||
#toast-container > div { |
|||
padding: 15px 15px 15px 50px; |
|||
width: 25em; |
|||
} |
|||
} |
@ -1,20 +0,0 @@ |
|||
// Animated Icons |
|||
// -------------------------- |
|||
|
|||
.#{$fa-css-prefix}-spin { |
|||
animation: fa-spin 2s infinite linear; |
|||
} |
|||
|
|||
.#{$fa-css-prefix}-pulse { |
|||
animation: fa-spin 1s infinite steps(8); |
|||
} |
|||
|
|||
@keyframes fa-spin { |
|||
0% { |
|||
transform: rotate(0deg); |
|||
} |
|||
|
|||
100% { |
|||
transform: rotate(360deg); |
|||
} |
|||
} |
@ -1,20 +0,0 @@ |
|||
// Bordered & Pulled |
|||
// ------------------------- |
|||
|
|||
.#{$fa-css-prefix}-border { |
|||
border: solid .08em $fa-border-color; |
|||
border-radius: .1em; |
|||
padding: .2em .25em .15em; |
|||
} |
|||
|
|||
.#{$fa-css-prefix}-pull-left { float: left; } |
|||
.#{$fa-css-prefix}-pull-right { float: right; } |
|||
|
|||
.#{$fa-css-prefix}, |
|||
.fas, |
|||
.far, |
|||
.fal, |
|||
.fab { |
|||
&.#{$fa-css-prefix}-pull-left { margin-right: .3em; } |
|||
&.#{$fa-css-prefix}-pull-right { margin-left: .3em; } |
|||
} |
@ -1,20 +0,0 @@ |
|||
// Base Class Definition |
|||
// ------------------------- |
|||
|
|||
.#{$fa-css-prefix}, |
|||
.fas, |
|||
.far, |
|||
.fal, |
|||
.fab { |
|||
-moz-osx-font-smoothing: grayscale; |
|||
-webkit-font-smoothing: antialiased; |
|||
display: inline-block; |
|||
font-style: normal; |
|||
font-variant: normal; |
|||
text-rendering: auto; |
|||
line-height: 1; |
|||
} |
|||
|
|||
%fa-icon { |
|||
@include fa-icon; |
|||
} |
@ -1,6 +0,0 @@ |
|||
// Fixed Width Icons |
|||
// ------------------------- |
|||
.#{$fa-css-prefix}-fw { |
|||
text-align: center; |
|||
width: $fa-fw-width; |
|||
} |
1786
_src/mobile/scss/plugins/fontawesome5/_icons.scss
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -1,23 +0,0 @@ |
|||
// Icon Sizes |
|||
// ------------------------- |
|||
|
|||
// makes the font 33% larger relative to the icon container |
|||
.#{$fa-css-prefix}-lg { |
|||
font-size: (4em / 3); |
|||
line-height: (3em / 4); |
|||
vertical-align: -.0667em; |
|||
} |
|||
|
|||
.#{$fa-css-prefix}-xs { |
|||
font-size: .75em; |
|||
} |
|||
|
|||
.#{$fa-css-prefix}-sm { |
|||
font-size: .875em; |
|||
} |
|||
|
|||
@for $i from 1 through 10 { |
|||
.#{$fa-css-prefix}-#{$i}x { |
|||
font-size: $i * 1em; |
|||
} |
|||
} |
Some files were not shown because too many files changed in this diff
Write
Preview
Loading…
Cancel
Save
Reference in new issue