postcss-sort-media-queries 5.0.0 → 5.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. package/browser.js +54 -54
  2. package/index.js +52 -52
  3. package/package.json +7 -7
  4. package/README-UZ.md +0 -266
package/browser.js CHANGED
@@ -1,54 +1,54 @@
1
- function sortAtRules(queries, sort, sortCSSmq) {
2
- if (typeof sort !== 'function') {
3
- sort = sort === 'desktop-first' ? sortCSSmq.desktopFirst : sortCSSmq
4
- }
5
-
6
- return queries.sort(sort)
7
- }
8
-
9
- module.exports = (opts = {}) => {
10
-
11
- opts = Object.assign(
12
- {
13
- sort: 'mobile-first',
14
- configuration: {
15
- unitlessMqAlwaysFirst: false,
16
- },
17
- },
18
- opts
19
- )
20
-
21
- const createSort = require('sort-css-media-queries/lib/create-sort');
22
- const sortCSSmq = createSort(opts.configuration);
23
-
24
- return {
25
- postcssPlugin: 'postcss-sort-media-queries',
26
- OnceExit(root, { AtRule }) {
27
-
28
- let atRules = [];
29
-
30
- root.walkAtRules('media', atRule => {
31
- let query = atRule.params
32
-
33
- if (!atRules[query]) {
34
- atRules[query] = new AtRule({
35
- name: atRule.name,
36
- params: atRule.params,
37
- source: atRule.source
38
- })
39
- }
40
-
41
- atRule.nodes.forEach(node => {
42
- atRules[query].append(node.clone())
43
- })
44
-
45
- atRule.remove()
46
- })
47
-
48
- sortAtRules(Object.keys(atRules), opts.sort, sortCSSmq).forEach(query => {
49
- root.append(atRules[query])
50
- })
51
- }
52
- }
53
- }
54
- module.exports.postcss = true
1
+ function sortAtRules(queries, sort, sortCSSmq) {
2
+ if (typeof sort !== 'function') {
3
+ sort = sort === 'desktop-first' ? sortCSSmq.desktopFirst : sortCSSmq
4
+ }
5
+
6
+ return queries.sort(sort)
7
+ }
8
+
9
+ module.exports = (opts = {}) => {
10
+
11
+ opts = Object.assign(
12
+ {
13
+ sort: 'mobile-first',
14
+ configuration: {
15
+ unitlessMqAlwaysFirst: false,
16
+ },
17
+ },
18
+ opts
19
+ )
20
+
21
+ const createSort = require('sort-css-media-queries/lib/create-sort');
22
+ const sortCSSmq = createSort(opts.configuration);
23
+
24
+ return {
25
+ postcssPlugin: 'postcss-sort-media-queries',
26
+ OnceExit(root, { AtRule }) {
27
+
28
+ let atRules = [];
29
+
30
+ root.walkAtRules('media', atRule => {
31
+ let query = atRule.params
32
+
33
+ if (!atRules[query]) {
34
+ atRules[query] = new AtRule({
35
+ name: atRule.name,
36
+ params: atRule.params,
37
+ source: atRule.source
38
+ })
39
+ }
40
+
41
+ atRule.nodes.forEach(node => {
42
+ atRules[query].append(node.clone())
43
+ })
44
+
45
+ atRule.remove()
46
+ })
47
+
48
+ sortAtRules(Object.keys(atRules), opts.sort, sortCSSmq).forEach(query => {
49
+ root.append(atRules[query])
50
+ })
51
+ }
52
+ }
53
+ }
54
+ module.exports.postcss = true
package/index.js CHANGED
@@ -1,52 +1,52 @@
1
- function sortAtRules(queries, sort, sortCSSmq) {
2
- if (typeof sort !== 'function') {
3
- sort = sort === 'desktop-first' ? sortCSSmq.desktopFirst : sortCSSmq
4
- }
5
-
6
- return queries.sort(sort)
7
- }
8
-
9
- module.exports = (opts = {}) => {
10
-
11
- opts = Object.assign(
12
- {
13
- sort: 'mobile-first',
14
- configuration: false,
15
- },
16
- opts
17
- )
18
-
19
- const createSort = require('sort-css-media-queries/lib/create-sort');
20
- const sortCSSmq = opts.configuration ? createSort(opts.configuration) : require('sort-css-media-queries');
21
-
22
- return {
23
- postcssPlugin: 'postcss-sort-media-queries',
24
- OnceExit (root, { AtRule }) {
25
-
26
- let atRules = [];
27
-
28
- root.walkAtRules('media', atRule => {
29
- let query = atRule.params
30
-
31
- if (!atRules[query]) {
32
- atRules[query] = new AtRule({
33
- name: atRule.name,
34
- params: atRule.params,
35
- source: atRule.source
36
- })
37
- }
38
-
39
- atRule.nodes.forEach(node => {
40
- atRules[query].append(node.clone())
41
- })
42
-
43
- atRule.remove()
44
- })
45
-
46
- sortAtRules(Object.keys(atRules), opts.sort, sortCSSmq).forEach(query => {
47
- root.append(atRules[query])
48
- })
49
- }
50
- }
51
- }
52
- module.exports.postcss = true
1
+ function sortAtRules(queries, sort, sortCSSmq) {
2
+ if (typeof sort !== 'function') {
3
+ sort = sort === 'desktop-first' ? sortCSSmq.desktopFirst : sortCSSmq
4
+ }
5
+
6
+ return queries.sort(sort)
7
+ }
8
+
9
+ module.exports = (opts = {}) => {
10
+
11
+ opts = Object.assign(
12
+ {
13
+ sort: 'mobile-first',
14
+ configuration: false,
15
+ },
16
+ opts
17
+ )
18
+
19
+ const createSort = require('sort-css-media-queries/lib/create-sort');
20
+ const sortCSSmq = opts.configuration ? createSort(opts.configuration) : require('sort-css-media-queries');
21
+
22
+ return {
23
+ postcssPlugin: 'postcss-sort-media-queries',
24
+ OnceExit (root, { AtRule }) {
25
+
26
+ let atRules = [];
27
+
28
+ root.walkAtRules('media', atRule => {
29
+ let query = atRule.params
30
+
31
+ if (!atRules[query]) {
32
+ atRules[query] = new AtRule({
33
+ name: atRule.name,
34
+ params: atRule.params,
35
+ source: atRule.source
36
+ })
37
+ }
38
+
39
+ atRule.nodes.forEach(node => {
40
+ atRules[query].append(node.clone())
41
+ })
42
+
43
+ atRule.remove()
44
+ })
45
+
46
+ sortAtRules(Object.keys(atRules), opts.sort, sortCSSmq).forEach(query => {
47
+ root.append(atRules[query])
48
+ })
49
+ }
50
+ }
51
+ }
52
+ module.exports.postcss = true
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "postcss-sort-media-queries",
3
- "version": "5.0.0",
3
+ "version": "5.1.0",
4
4
  "description": "PostCSS plugin for sorting and combining CSS media queries with mobile first / **desktop first methodologies",
5
5
  "keywords": [
6
6
  "postcss",
@@ -23,18 +23,18 @@
23
23
  "license": "MIT",
24
24
  "repository": {
25
25
  "type": "git",
26
- "url": "https://github.com/solversgroup/postcss-sort-media-queries.git"
26
+ "url": "https://github.com/yunusga/postcss-sort-media-queries.git"
27
27
  },
28
28
  "bugs": {
29
- "url": "https://github.com/solversgroup/postcss-sort-media-queries/issues"
29
+ "url": "https://github.com/yunusga/postcss-sort-media-queries/issues"
30
30
  },
31
- "homepage": "https://github.com/solversgroup/postcss-sort-media-queries",
31
+ "homepage": "https://github.com/yunusga/postcss-sort-media-queries",
32
32
  "scripts": {
33
- "test": "jest-ci --coverage && eslint-ci .",
33
+ "test": "jest-ci --coverage && eslint",
34
34
  "refresh-deps": "rm -rf node_modules && rm package-lock.json && npm i"
35
35
  },
36
36
  "engines": {
37
- "node": ">=10.0.0"
37
+ "node": ">=14.0.0"
38
38
  },
39
39
  "dependencies": {
40
40
  "sort-css-media-queries": "2.2.0"
@@ -48,7 +48,7 @@
48
48
  "jest": "^27.3.1",
49
49
  "jest-ci": "^0.1.1",
50
50
  "jest-cli": "^27.3.1",
51
- "lint-staged": "^12.1.2",
51
+ "lint-staged": "^13.2.1",
52
52
  "postcss": "^8.4.23",
53
53
  "postcss-flexbugs-fixes": "^5.0.2",
54
54
  "postcss-media-minmax": "^5.0.0",
package/README-UZ.md DELETED
@@ -1,266 +0,0 @@
1
- # PostCSS tartiblash media so'rovlari
2
-
3
- [PostCSS]: https://github.com/postcss/postcss
4
- [MIT]: https://github.com/yunusga/postcss-sort-media-queries/blob/master/LICENSE
5
- [official docs]: https://github.com/postcss/postcss#usage
6
- [Releases history]: https://github.com/yunusga/postcss-sort-media-queries/blob/master/CHANGELOG.md
7
-
8
- [![npm](https://img.shields.io/npm/v/postcss-sort-media-queries.svg)](https://www.npmjs.com/package/postcss-sort-media-queries) [![Node.js CI](https://github.com/yunusga/postcss-sort-media-queries/actions/workflows/test.yml/badge.svg?branch=main&event=status)](https://github.com/yunusga/postcss-sort-media-queries/actions/workflows/test.yml)
9
- ![license](https://img.shields.io/badge/License-MIT-orange.svg)
10
- [![npm](https://img.shields.io/npm/dt/postcss-sort-media-queries.svg)](https://www.npmjs.com/package/postcss-sort-media-queries)
11
-
12
- <img src="logo.svg?sanitize=true" align="right" title="PostCSS sort media queries logotype" width="100" height="100">
13
-
14
- 🌏 [**English**](README.md) ▫ **O'zbek**
15
-
16
- [PostCSS] CSS media so'rovlarini **mobil qurilma** va **ish stoli kompyuter** metodologiyalari bilan ularni saralash va birlashtirish uchun xizmat qiladi.
17
-
18
-
19
-
20
- > 5.0.0 plaginini qo'llab-quvvatlaydigan [Media funksiyasi turlari: “diapazon”](https://www.w3.org/TR/mediaqueries-4/#mq-ranges)
21
-
22
-
23
- ## Mundarija
24
-
25
- - [Onlayn demo](#onlayn-demo)
26
- - [Misollar](#misollar)
27
- - [Mobil qurilmalarni tartiblash](#mobil-qurilmalarni-tartiblash)
28
- - [Ish stoli kompyuter qurilmalarni tartiblash](#ish-stoli-kompyuter-qurilmalarni-tartiblash)
29
- - [O'rnatish](#ornatish)
30
- - [Foydalanish](#foydalanish)
31
- - [Optsiyalar](#optsiyalar)
32
- - [Saralash](#saralash)
33
- - [Maxsus tartiblash funksiyasi](#maxsus-tartiblash-funksiyasi)
34
- - [Saralash konfiguratsiyasi](#saralash-konfiguratsiyasi)
35
- - [O'zgarishlar jurnali](#ozgarishlar-jurnali)
36
- - [Litsenziya](#litsenziya)
37
- - [Boshqa PostCSS plaginlari](#boshqa-postcss-plaginlari)
38
- - [Rahmat 💪](#rahmat)
39
-
40
-
41
- ## Onlayn demo
42
-
43
- Bu yerda: [onlayn demo](https://postcss-sort-media-queries.github.io)
44
-
45
-
46
- ## Misollar
47
-
48
- ### Mobil qurilmalarni tartiblash
49
-
50
- **oldin**
51
-
52
- ```css
53
- @media screen and (max-width: 640px) {
54
- .head { color: #cfcfcf }
55
- }
56
- @media screen and (max-width: 768px) {
57
- .footer { color: #cfcfcf }
58
- }
59
- @media screen and (max-width: 640px) {
60
- .main { color: #cfcfcf }
61
- }
62
- @media screen and (min-width: 1280px) {
63
- .mobile-first { color: #cfcfcf }
64
- }
65
- @media screen and (width > 640px) {
66
- .mobile-first { color: #cfcfcf }
67
- }
68
- @media screen and (max-width: 640px) {
69
- .footer { color: #cfcfcf }
70
- }
71
- ```
72
-
73
- **keyin**
74
-
75
- ```css
76
- @media screen and (width > 640px) {
77
- .mobile-first { color: #cfcfcf }
78
- }
79
- @media screen and (min-width: 1280px) {
80
- .mobile-first { color: #cfcfcf }
81
- }
82
- @media screen and (max-width: 768px) {
83
- .footer { color: #cfcfcf }
84
- }
85
- @media screen and (max-width: 640px) {
86
- /* combined */
87
- .head { color: #cfcfcf }
88
- .main { color: #cfcfcf }
89
- .footer { color: #cfcfcf }
90
- }
91
- ```
92
-
93
- ### Ish stoli kompyuter qurilmalarni tartiblash
94
-
95
- **oldin**
96
- ```css
97
- @media screen and (width < 640px) {
98
- .header { color: #cdcdcd }
99
- }
100
- @media screen and (min-width: 760px) {
101
- .desktop-first { color: #cdcdcd }
102
- }
103
- @media screen and (width < 640px) {
104
- .main { color: #cdcdcd }
105
- }
106
- @media screen and (min-width: 1280px) {
107
- .desktop-first { color: #cdcdcd }
108
- }
109
- @media screen and (max-width: 760px) {
110
- .footer { color: #cdcdcd }
111
- }
112
- @media screen and (max-width: 640px) {
113
- .footer { color: #cdcdcd }
114
- }
115
- ```
116
-
117
- **keyin**
118
-
119
- ```css
120
- @media screen and (max-width: 760px) {
121
- .footer { color: #cdcdcd }
122
- }
123
- @media screen and (width < 640px) {
124
- /* combined */
125
- .header { color: #cdcdcd }
126
- .main { color: #cdcdcd }
127
- .footer { color: #cdcdcd }
128
- }
129
- @media screen and (min-width: 760px) {
130
- .desktop-first { color: #cdcdcd }
131
- }
132
- @media screen and (min-width: 1280px) {
133
- .desktop-first { color: #cdcdcd }
134
- }
135
- ```
136
-
137
- ## O'rnatish
138
-
139
- Birinchi navbatda, modulni o'rnating:
140
-
141
- ```
142
- npm install postcss postcss-sort-media-queries --save-dev
143
- ```
144
-
145
- ## Foydalanish
146
-
147
- Mavjud PostCSS konfiguratsiyasi uchun loyihangizni tekshiring: `postcss.config.js`
148
- loyiha ildizida, `package.json` ichidagi `"postcss"` bo`limida
149
- yoki to'plam konfiguratsiyasida "postcss".
150
-
151
- Agar siz allaqachon PostCSS-dan foydalansangiz, plaginni plaginlar ro'yxatiga qo'shing:
152
-
153
- ```diff
154
- module.exports = {
155
- plugins: [
156
- + require('postcss-sort-media-queries')({
157
- + sort: 'mobile-first', // default value
158
- + }),
159
- require('autoprefixer')
160
- ]
161
- }
162
- ```
163
-
164
- yoki maxsus tartiblash funksiyasi bilan
165
- ```diff
166
- module.exports = {
167
- plugins: [
168
- + require('postcss-sort-media-queries')({
169
- + sort: function(a, b) {
170
- + // custom sorting function
171
- + }
172
- + }),
173
- require('autoprefixer')
174
- ]
175
- }
176
- ```
177
-
178
- Agar siz PostCSS-dan foydalanmasangiz, uni [official docs] ga
179
- muvofiq qo'shing va sozlamalarda ushbu plaginni o'rnating.
180
-
181
-
182
- ## Optsiyalar
183
-
184
- > Saralash asosida ishlaydi, funktsiyasi [dutchenkoOleg/sort-css-media-queries](https://github.com/dutchenkoOleg/sort-css-media-queries)
185
-
186
- ### Saralash
187
-
188
- Ushbu parametr **string** yoki **funktsiya** qiymatlarini qo'llab-quvvatlaydi.
189
-
190
- - `{string}` `'mobile-first'` - (standart) mobil qurilmalarni tartiblash
191
- - `{string}` `'desktop-first'` - kompyuter qurilmalarni tartiblash
192
- - `{function}` o'zingizning saralash funksiyangiz
193
-
194
- #### `'mobil-qurilmalar'`
195
-
196
- ```js
197
- postcss([
198
- sortMediaQueries({
199
- sort: 'mobile-first' // standart
200
- })
201
- ]).process(css);
202
- ```
203
-
204
- #### `'kompyuter-qurilmalar'`
205
-
206
- ```js
207
- postcss([
208
- sortMediaQueries({
209
- sort: 'desktop-first'
210
- })
211
- ]).process(css);
212
- ```
213
-
214
- ### Maxsus tartiblash funksiyasi
215
- ```js
216
- postcss([
217
- sortMediaQueries({
218
- function(a, b) {
219
- return a.localeCompare(b);
220
- }
221
- })
222
- ]).process(css);
223
- ```
224
-
225
- Ishbu misolda barcha media so'rovlaringiz A dan Z gacha tartib bo'yicha saralanadi
226
-
227
- Ushbu tartiblash funksiyasi to'g'ridan-to'g'ri barcha media so'rovlaringiz qatorini Array#sort() usuliga o'tkaziladi.
228
-
229
- ### Saralash konfiguratsiyasi
230
-
231
- Ushbu konfiguratsiya orqali siz tartiblash xatti-harakatlarini boshqarishingiz mumkin.
232
-
233
- ```js
234
- postcss([
235
- sortMediaQueries({
236
- configuration: {
237
- unitlessMqAlwaysFirst: true, // yoki false
238
- }
239
- })
240
- ]).process(css);
241
- ```
242
-
243
- Yoki muqobil ravishda loyihangiz ildizida “sort-css-mq.config.json” faylini yarating. Yoki “package.json”ingizga “sortCssMQ: {}” xususiyatini qo‘shing.
244
-
245
- ---
246
-
247
- ## O'zgarishlar jurnali
248
-
249
- Bu yerda: [Releases history]
250
-
251
- ## Litsenziya
252
-
253
- [MIT]
254
-
255
- ## Boshqa PostCSS plaginlari
256
-
257
- - [`postcss-momentum-scrolling`](https://github.com/yunusga/postcss-momentum-scrolling) - iOS tizimida toʻlib-toshgan (aylantirish, avtomatik) elementlar uchun **momentum** uslubidagi aylantirish harakatini qoʻshish uchun plagin (`-webkit-overflow-scrolling:touch`)
258
-
259
- ## Rahmat
260
-
261
- - Andrey Sitnik [@ai](https://github.com/ai)
262
- - Oleh Dutchenko [@dutchenkoOleg](https://github.com/dutchenkoOleg)
263
- - Jakub Caban [@Lustmored](https://github.com/Lustmored)
264
- - Dmytro Symonov [@Kassaila](https://github.com/Kassaila)
265
- - Kai Falkowski [@SassNinja](https://github.com/SassNinja)
266
- - Khayot Razzakov [@Khayotbek1](https://github.com/Khayotbek1)