장선근
6 years ago
225 changed files with 30860 additions and 23260 deletions
-
106_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
-
73_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
-
136_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; |
|
||||
} |
|
||||
|
|
||||
.text-right { |
|
||||
text-align:right !important; |
|
||||
} |
|
||||
|
|
||||
|
|
||||
@each $color, $value in $theme-colors { |
@each $color, $value in $theme-colors { |
||||
.text-#{$color} { |
.text-#{$color} { |
||||
color:$value; |
color:$value; |
||||
} |
} |
||||
} |
} |
||||
|
|
||||
|
.alert { |
||||
|
padding: 5px 7px; |
||||
|
|
||||
|
&.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) |
* License - https://fontawesome.com/license (Commercial License) |
||||
*/ |
*/ |
||||
@import 'variables'; |
@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) |
* License - https://fontawesome.com/license (Commercial License) |
||||
*/ |
*/ |
||||
@import 'variables'; |
@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